Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@ngxs-contrib/emitter

Package Overview
Dependencies
Maintainers
3
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ngxs-contrib/emitter - npm Package Compare versions

Comparing version 0.0.4 to 0.0.5

2

bundles/ngxs-contrib-emitter.umd.js

@@ -284,2 +284,2 @@ (function (global, factory) {

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1jb250cmliLWVtaXR0ZXIudW1kLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9Abmd4cy1jb250cmliL2VtaXR0ZXIvbGliL2NvcmUvaW50ZXJuYWwvaW50ZXJuYWxzLnRzIiwibmc6Ly9Abmd4cy1jb250cmliL2VtaXR0ZXIvbGliL2NvcmUvZGVjb3JhdG9ycy9lbWl0dGVyLnRzIixudWxsLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvY29yZS9hY3Rpb25zL2FjdGlvbnMudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvZW1pdC5zZXJ2aWNlLnRzIiwibmc6Ly9Abmd4cy1jb250cmliL2VtaXR0ZXIvbGliL2NvcmUvZGVjb3JhdG9ycy9wYXlsb2FkLWVtaXR0ZXIudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvZW1pdC5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEN1c3RvbSBhY3Rpb24gaW50ZXJmYWNlXG4gKlxuICogQHByb3BlcnR5IHR5cGUgLSBTdGF0aWMgcHJvcGVydHkgdGhhdCBkZWZpbmVzIGFjdGlvbiB0eXBlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQWN0aW9uPFQgPSBhbnksIFUgPSBhbnk+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgbmV3IChwYXlsb2FkPzogVSk6IFQ7XG59XG5cbi8qKlxuICogU3RhdGljIG1ldGFkYXRhIGZvciB0aGUgZW1pdHRlciBmdW5jdGlvblxuICpcbiAqIEBwcm9wZXJ0eSB0eXBlIC0gQWN0aW9uIHR5cGUgKG9wdGlvbmFsKVxuICogQHByb3BlcnR5IGFjdGlvbiAtIEN1c3RvbSBhY3Rpb24gdG8gZGlzcGF0Y2ggKG9wdGlvbmFsKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtaXR0ZXJNZXRhRGF0YTxUIGV4dGVuZHMgRnVuY3Rpb24gPSBhbnk+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgYWN0aW9uOiBDdXN0b21BY3Rpb248VD47XG59XG5cbi8qKlxuICogUGxhaW4gb2JqZWN0IHRoYXQgY29udGFpbnMgYGVtaXRgIGZ1bmN0aW9uIHRoYXQgZGlzcGF0Y2hlcyBwYXlsb2FkXG4gKlxuICogQHByb3BlcnR5IGVtaXQgLSBGdW5jdGlvbiB0aGF0IGRpc3BhdGNoZXMgcGF5bG9hZCB1bmRlciB0aGUgaG9vZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtaXR0YWJsZTxUID0gYW55LCBVID0gYW55PiB7XG4gICAgZW1pdChwYXlsb2FkPzogVCk6IE9ic2VydmFibGU8VT47XG59XG5cbmV4cG9ydCBjb25zdCBNRVRBX0tFWSA9ICdOR1hTX01FVEEnO1xuXG4vKipcbiAqIEBjb25zdCAtIFRoaXMgY29uc3RhbnQgaXMgYSBrZXkgZm9yIGRlZmluaW5nIHN0YXRpYyBtZXRhZGF0YSB1c2luZyBgQEVtaXR0ZXJgXG4gKi9cbmV4cG9ydCBjb25zdCBFTUlUVEVSX01FVEFfS0VZID0gJ05HWFNfRU1JVFRFUl9NRVRBJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVN0b3JlTWV0YWRhdGEodGFyZ2V0OiBGdW5jdGlvbikge1xuICAgIGlmICghdGFyZ2V0Lmhhc093blByb3BlcnR5KE1FVEFfS0VZKSkge1xuICAgICAgICBjb25zdCBkZWZhdWx0TWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBuYW1lOiBudWxsLFxuICAgICAgICAgICAgYWN0aW9uczoge30sXG4gICAgICAgICAgICBkZWZhdWx0czoge30sXG4gICAgICAgICAgICBwYXRoOiBudWxsLFxuICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICAgICAgaW5zdGFuY2U6IG51bGxcbiAgICAgICAgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgTUVUQV9LRVksIHsgdmFsdWU6IGRlZmF1bHRNZXRhZGF0YSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGdldFN0b3JlTWV0YWRhdGEodGFyZ2V0KTtcbn1cblxuZnVuY3Rpb24gZ2V0U3RvcmVNZXRhZGF0YSh0YXJnZXQ6IEZ1bmN0aW9uKSB7XG4gICAgcmV0dXJuIHRhcmdldFtNRVRBX0tFWV07XG59XG4iLCJpbXBvcnQgeyBlbnN1cmVTdG9yZU1ldGFkYXRhLCBFbWl0dGVyTWV0YURhdGEsIEVNSVRURVJfTUVUQV9LRVksIEN1c3RvbUFjdGlvbiB9IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XG5cbi8qKlxuICogRGVjb3JhdGVzIGEgbWV0aG9kIHdpdGggYW4gZW1pdHRlciBpbmZvcm1hdGlvblxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgc3RhdGljIG1ldGFkYXRhXG4gKiBAcmV0dXJucyAtIEZhY3RvcnkgZm9yIGRlY29yYXRpbmcgbWV0aG9kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFbWl0dGVyKG9wdGlvbnM/OiBQYXJ0aWFsPEVtaXR0ZXJNZXRhRGF0YT4pOiBNZXRob2REZWNvcmF0b3Ige1xuICAgIHJldHVybiA8VD4odGFyZ2V0OiBhbnksIGtleTogc3RyaW5nIHwgc3ltYm9sLCBkZXNjcmlwdG9yOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxUPikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGRlc2NyaXB0b3IudmFsdWUgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHRhcmdldFtrZXldICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBPbmx5IHN0YXRpYyBmdW5jdGlvbnMgY2FuIGJlIGRlY29yYXRlZCB3aXRoIEBFbWl0dGVyKCkgZGVjb3JhdG9yYCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N5bWJvbCcpIHtcbiAgICAgICAgICAgIGtleSA9IGtleS50b1N0cmluZygpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWV0YSA9IGVuc3VyZVN0b3JlTWV0YWRhdGEodGFyZ2V0KTtcbiAgICAgICAgY29uc3QgdHlwZTogc3RyaW5nID0gKG9wdGlvbnMgJiYgb3B0aW9ucy50eXBlKSB8fCBgJHt0YXJnZXQubmFtZX0uJHtrZXl9YDtcbiAgICAgICAgY29uc3QgYWN0aW9uOiBDdXN0b21BY3Rpb248YW55LCBhbnk+IHwgdW5kZWZpbmVkID0gb3B0aW9ucyAmJiBvcHRpb25zLmFjdGlvbjtcblxuICAgICAgICBpZiAobWV0YS5hY3Rpb25zW3R5cGVdKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1ldGhvZCBkZWNvcmF0ZWQgd2l0aCBzdWNoIHR5cGUgXFxgJHt0eXBlfVxcYCBhbHJlYWR5IGV4aXN0c2ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlIHVzZXIgcGFzc2VkIGN1c3RvbSBhY3Rpb25cbiAgICAgICAgaWYgKGFjdGlvbikge1xuICAgICAgICAgICAgbWV0YS5hY3Rpb25zW2FjdGlvbi50eXBlXSA9IFt7XG4gICAgICAgICAgICAgICAgZm46IGAke2tleX1gLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHt9LFxuICAgICAgICAgICAgICAgIHR5cGU6IGFjdGlvbi50eXBlXG4gICAgICAgICAgICB9XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1ldGEuYWN0aW9uc1t0eXBlXSA9IFt7XG4gICAgICAgICAgICAgICAgZm46IGAke2tleX1gLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHt9LFxuICAgICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgIH1dO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVzY3JpcHRvci52YWx1ZVtFTUlUVEVSX01FVEFfS0VZXSA9IHtcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBhY3Rpb25cbiAgICAgICAgfTtcblxuICAgICAgICB0YXJnZXQucHJvdG90eXBlW2tleV0gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXRba2V5XS5hcHBseSh0YXJnZXQsIGFyZ3VtZW50cyk7XG4gICAgICAgIH07XG4gICAgfTtcbn1cbiIsIi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlXHJcbnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlXHJcbkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcblxyXG5USElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXHJcbktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRURcclxuV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSxcclxuTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC5cclxuXHJcblNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xyXG5hbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gX19hc3NpZ24odCkge1xyXG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpIHRbcF0gPSBzW3BdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIGlmIChlLmluZGV4T2YocFtpXSkgPCAwKVxyXG4gICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgIHJldHVybiB0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xyXG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XHJcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xyXG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcGFyYW0ocGFyYW1JbmRleCwgZGVjb3JhdG9yKSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7IGRlY29yYXRvcih0YXJnZXQsIGtleSwgcGFyYW1JbmRleCk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHJlc3VsdC52YWx1ZSk7IH0pLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0geVtvcFswXSAmIDIgPyBcInJldHVyblwiIDogb3BbMF0gPyBcInRocm93XCIgOiBcIm5leHRcIl0pICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gWzAsIHQudmFsdWVdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgNDogXy5sYWJlbCsrOyByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDU6IF8ubGFiZWwrKzsgeSA9IG9wWzFdOyBvcCA9IFswXTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7IF8gPSAwOyBjb250aW51ZTsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7IF8ubGFiZWwgPSB0WzFdOyB0ID0gb3A7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsgXy5sYWJlbCA9IHRbMl07IF8ub3BzLnB1c2gob3ApOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgb3AgPSBbNiwgZV07IHkgPSAwOyB9IGZpbmFsbHkgeyBmID0gdCA9IDA7IH1cclxuICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXhwb3J0U3RhcihtLCBleHBvcnRzKSB7XHJcbiAgICBmb3IgKHZhciBwIGluIG0pIGlmICghZXhwb3J0cy5oYXNPd25Qcm9wZXJ0eShwKSkgZXhwb3J0c1twXSA9IG1bcF07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3ZhbHVlcyhvKSB7XHJcbiAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl0sIGkgPSAwO1xyXG4gICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XHJcbiAgICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0KHYpIHtcclxuICAgIHJldHVybiB0aGlzIGluc3RhbmNlb2YgX19hd2FpdCA/ICh0aGlzLnYgPSB2LCB0aGlzKSA6IG5ldyBfX2F3YWl0KHYpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0dlbmVyYXRvcih0aGlzQXJnLCBfYXJndW1lbnRzLCBnZW5lcmF0b3IpIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgZyA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSwgaSwgcSA9IFtdO1xyXG4gICAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiKSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9LCBpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlmIChnW25dKSBpW25dID0gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChhLCBiKSB7IHEucHVzaChbbiwgdiwgYSwgYl0pID4gMSB8fCByZXN1bWUobiwgdik7IH0pOyB9OyB9XHJcbiAgICBmdW5jdGlvbiByZXN1bWUobiwgdikgeyB0cnkgeyBzdGVwKGdbbl0odikpOyB9IGNhdGNoIChlKSB7IHNldHRsZShxWzBdWzNdLCBlKTsgfSB9XHJcbiAgICBmdW5jdGlvbiBzdGVwKHIpIHsgci52YWx1ZSBpbnN0YW5jZW9mIF9fYXdhaXQgPyBQcm9taXNlLnJlc29sdmUoci52YWx1ZS52KS50aGVuKGZ1bGZpbGwsIHJlamVjdCkgOiBzZXR0bGUocVswXVsyXSwgcik7ICB9XHJcbiAgICBmdW5jdGlvbiBmdWxmaWxsKHZhbHVlKSB7IHJlc3VtZShcIm5leHRcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiByZWplY3QodmFsdWUpIHsgcmVzdW1lKFwidGhyb3dcIiwgdmFsdWUpOyB9XHJcbiAgICBmdW5jdGlvbiBzZXR0bGUoZiwgdikgeyBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jRGVsZWdhdG9yKG8pIHtcclxuICAgIHZhciBpLCBwO1xyXG4gICAgcmV0dXJuIGkgPSB7fSwgdmVyYihcIm5leHRcIiksIHZlcmIoXCJ0aHJvd1wiLCBmdW5jdGlvbiAoZSkgeyB0aHJvdyBlOyB9KSwgdmVyYihcInJldHVyblwiKSwgaVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobiwgZikgeyBpZiAob1tuXSkgaVtuXSA9IGZ1bmN0aW9uICh2KSB7IHJldHVybiAocCA9ICFwKSA/IHsgdmFsdWU6IF9fYXdhaXQob1tuXSh2KSksIGRvbmU6IG4gPT09IFwicmV0dXJuXCIgfSA6IGYgPyBmKHYpIDogdjsgfTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY1ZhbHVlcyhvKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIG0gPSBvW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTtcclxuICAgIHJldHVybiBtID8gbS5jYWxsKG8pIDogdHlwZW9mIF9fdmFsdWVzID09PSBcImZ1bmN0aW9uXCIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0U3Rhcihtb2QpIHtcclxuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XHJcbiAgICB2YXIgcmVzdWx0ID0ge307XHJcbiAgICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSBpZiAoT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwobW9kLCBrKSkgcmVzdWx0W2tdID0gbW9kW2tdO1xyXG4gICAgcmVzdWx0LmRlZmF1bHQgPSBtb2Q7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19pbXBvcnREZWZhdWx0KG1vZCkge1xyXG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBkZWZhdWx0OiBtb2QgfTtcclxufVxyXG4iLCIvKipcbiAqIFRoaXMgY2xhc3MgaXMgdXNlZCBhcyBhIGRlZmF1bHQgYWN0aW9uIHdoZW4gdGhlIHVzZXIgZG9lc24ndCBwYXNzIGFueSBjdXN0b20gYWN0aW9uIGFzIGFuIGFyZ3VtZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBFbWl0dGVyQWN0aW9uPFQgPSBhbnk+IHtcbiAgICAvKipcbiAgICAgKiBBY3Rpb24gdHlwZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgdHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIEVtaXR0ZXJBY3Rpb24gaW5zdGFuY2VcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXlsb2FkIC0gRGF0YSB0byBkaXNwYXRjaFxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkPzogVCkge31cbn1cbiIsImltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEVNSVRURVJfTUVUQV9LRVksIEVtaXR0YWJsZSwgRW1pdHRlck1ldGFEYXRhIH0gZnJvbSAnLi9jb3JlL2ludGVybmFsL2ludGVybmFscyc7XG5pbXBvcnQgeyBFbWl0dGVyQWN0aW9uIH0gZnJvbSAnLi9jb3JlL2FjdGlvbnMvYWN0aW9ucyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFbWl0U3RvcmUgZXh0ZW5kcyBTdG9yZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIGVtaXR0ZXIgLSBSZWZlcmVuY2UgdG8gdGhlIHN0YXRpYyBmdW5jdGlvbiBmcm9tIHRoZSBzdG9yZVxuICAgICAqIEByZXR1cm5zIC0gQSBwbGFpbiBvYmplY3Qgd2l0aCBhbiBgZW1pdGAgZnVuY3Rpb24gZm9yIGNhbGxpbmcgZW1pdHRlclxuICAgICAqL1xuICAgIHB1YmxpYyBlbWl0dGVyPFQgPSBhbnksIFUgPSBhbnk+KGVtaXR0ZXI6IEZ1bmN0aW9uKTogRW1pdHRhYmxlPFQsIFU+IHtcbiAgICAgICAgY29uc3QgZW1pdHRlckV2ZW50OiBFbWl0dGVyTWV0YURhdGEgPSBlbWl0dGVyW0VNSVRURVJfTUVUQV9LRVldO1xuXG4gICAgICAgIGlmICghZW1pdHRlckV2ZW50KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VtaXR0ZXIgbWV0aG9kcyBzaG91bGQgYmUgZGVjb3JhdGVkIHVzaW5nIEBFbWl0dGVyKCkgZGVjb3JhdG9yJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW1pdDogKHBheWxvYWQ/OiBUKTogT2JzZXJ2YWJsZTxVPiA9PiB7XG4gICAgICAgICAgICAgICAgRW1pdHRlckFjdGlvbi50eXBlID0gZW1pdHRlckV2ZW50LnR5cGU7XG4gICAgICAgICAgICAgICAgY29uc3QgQWN0aW9uOiBUeXBlPGFueSB8IEVtaXR0ZXJBY3Rpb24+ID0gZW1pdHRlckV2ZW50LmFjdGlvbiA/IGVtaXR0ZXJFdmVudC5hY3Rpb24gOiBFbWl0dGVyQWN0aW9uO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKG5ldyBBY3Rpb24ocGF5bG9hZCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbn1cbiIsImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEVtaXRTdG9yZSB9IGZyb20gJy4uLy4uL2VtaXQuc2VydmljZSc7XG5cbi8qKlxuICogQWxsb3dzIHRoZSBgQFBheWxvYWRFbWl0dGVyKClgIGRlY29yYXRvciB0byBnZXQgYWNjZXNzIHRvIHRoZSBESSBzdG9yZVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGF5bG9hZEVtaXR0ZXJGYWN0b3J5IHtcbiAgICAvKipcbiAgICAgKiBJbmplY3RvciBmb3IgYWNjZXNzaW5nIERJXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBpbmplY3RvcjogSW5qZWN0b3IgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgUGF5bG9hZEVtaXR0ZXJGYWN0b3J5IGluc3RhbmNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgLSBSb290IGluamVjdG9yXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIFBheWxvYWRFbWl0dGVyRmFjdG9yeS5pbmplY3RvciA9IGluamVjdG9yO1xuICAgIH1cbn1cblxuLyoqXG4gKiBEZWNvcmF0ZXMgYSBwcm9wZXJ0eSBhbmQgZGVmaW5lcyBuZXcgZ2V0dGVyXG4gKlxuICogQHBhcmFtIGVtaXR0ZXIgLSBSZWZlcmVuY2UgdG8gdGhlIHN0YXRpYyBmdW5jdGlvblxuICogQHJldHVybnMgLSBGYWN0b3J5IGZ1bmN0aW9uIGZvciBkZWNvcmF0aW5nIHByb3BlcnRpZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFBheWxvYWRFbWl0dGVyKGVtaXR0ZXI6IEZ1bmN0aW9uKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICAgIHJldHVybiAodGFyZ2V0OiBPYmplY3QsIGtleTogc3RyaW5nIHwgc3ltYm9sKSA9PiB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwge1xuICAgICAgICAgICAgZ2V0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RvcmUgPSBQYXlsb2FkRW1pdHRlckZhY3RvcnkuaW5qZWN0b3IhLmdldDxFbWl0U3RvcmU+KEVtaXRTdG9yZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0b3JlLmVtaXR0ZXIoZW1pdHRlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG59XG4iLCJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQYXlsb2FkRW1pdHRlckZhY3RvcnkgfSBmcm9tICcuL2NvcmUvZGVjb3JhdG9ycy9wYXlsb2FkLWVtaXR0ZXInO1xuaW1wb3J0IHsgRW1pdFN0b3JlIH0gZnJvbSAnLi9lbWl0LnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBQYXlsb2FkRW1pdHRlckZhY3RvcnksXG4gICAgICAgIEVtaXRTdG9yZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4c0VtaXRQbHVnaW5Nb2R1bGUge1xuICAgIGNvbnN0cnVjdG9yKHBheWxvYWRFbWl0dGVyRmFjdG9yeTogUGF5bG9hZEVtaXR0ZXJGYWN0b3J5KSB7fVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgLSBBIHdyYXBwZXIgYXJvdW5kIGBOZ01vZHVsZWBcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hzRW1pdFBsdWdpbk1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IE5neHNFbWl0UGx1Z2luTW9kdWxlXG4gICAgICAgIH07XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbInRzbGliXzEuX19leHRlbmRzIiwiSW5qZWN0YWJsZSIsIlN0b3JlIiwiSW5qZWN0b3IiLCJzdG9yZSIsIk5nTW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0lBZ0NPLHFCQUFNLFFBQVEsR0FBRyxXQUFXLENBQUM7Ozs7QUFLcEMsSUFBTyxxQkFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQzs7Ozs7QUFFcEQsaUNBQW9DLE1BQWdCO1FBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2xDLHFCQUFNLGVBQWUsR0FBRztnQkFDcEIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxFQUFFLElBQUk7Z0JBQ1YsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osUUFBUSxFQUFFLElBQUk7YUFDakIsQ0FBQztZQUNGLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLEtB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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1jb250cmliLWVtaXR0ZXIudW1kLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9Abmd4cy1jb250cmliL2VtaXR0ZXIvbGliL2NvcmUvaW50ZXJuYWwvaW50ZXJuYWxzLnRzIiwibmc6Ly9Abmd4cy1jb250cmliL2VtaXR0ZXIvbGliL2NvcmUvZGVjb3JhdG9ycy9lbWl0dGVyLnRzIixudWxsLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvY29yZS9hY3Rpb25zL2FjdGlvbnMudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvZW1pdC5zZXJ2aWNlLnRzIiwibmc6Ly9Abmd4cy1jb250cmliL2VtaXR0ZXIvbGliL2NvcmUvZGVjb3JhdG9ycy9wYXlsb2FkLWVtaXR0ZXIudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvZW1pdC5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogU3RhdGljIG1ldGFkYXRhIGZvciB0aGUgZW1pdHRlciBmdW5jdGlvblxuICpcbiAqIEBwcm9wZXJ0eSB0eXBlIC0gQWN0aW9uIHR5cGUgKG9wdGlvbmFsKVxuICogQHByb3BlcnR5IGFjdGlvbiAtIEN1c3RvbSBhY3Rpb24gdG8gZGlzcGF0Y2ggKG9wdGlvbmFsKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtaXR0ZXJNZXRhRGF0YTxUIGV4dGVuZHMgRnVuY3Rpb24gPSBhbnk+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgYWN0aW9uOiBUeXBlPFQ+O1xufVxuXG4vKipcbiAqIFBsYWluIG9iamVjdCB0aGF0IGNvbnRhaW5zIGBlbWl0YCBmdW5jdGlvbiB0aGF0IGRpc3BhdGNoZXMgcGF5bG9hZFxuICpcbiAqIEBwcm9wZXJ0eSBlbWl0IC0gRnVuY3Rpb24gdGhhdCBkaXNwYXRjaGVzIHBheWxvYWQgdW5kZXIgdGhlIGhvb2RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWl0dGFibGU8VCA9IGFueSwgVSA9IGFueT4ge1xuICAgIGVtaXQocGF5bG9hZD86IFQpOiBPYnNlcnZhYmxlPFU+O1xufVxuXG5leHBvcnQgY29uc3QgTUVUQV9LRVkgPSAnTkdYU19NRVRBJztcblxuLyoqXG4gKiBAY29uc3QgLSBUaGlzIGNvbnN0YW50IGlzIGEga2V5IGZvciBkZWZpbmluZyBzdGF0aWMgbWV0YWRhdGEgdXNpbmcgYEBFbWl0dGVyYFxuICovXG5leHBvcnQgY29uc3QgRU1JVFRFUl9NRVRBX0tFWSA9ICdOR1hTX0VNSVRURVJfTUVUQSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVTdG9yZU1ldGFkYXRhKHRhcmdldDogRnVuY3Rpb24pIHtcbiAgICBpZiAoIXRhcmdldC5oYXNPd25Qcm9wZXJ0eShNRVRBX0tFWSkpIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdE1ldGFkYXRhID0ge1xuICAgICAgICAgICAgbmFtZTogbnVsbCxcbiAgICAgICAgICAgIGFjdGlvbnM6IHt9LFxuICAgICAgICAgICAgZGVmYXVsdHM6IHt9LFxuICAgICAgICAgICAgcGF0aDogbnVsbCxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgIGluc3RhbmNlOiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIE1FVEFfS0VZLCB7IHZhbHVlOiBkZWZhdWx0TWV0YWRhdGEgfSk7XG4gICAgfVxuICAgIHJldHVybiBnZXRTdG9yZU1ldGFkYXRhKHRhcmdldCk7XG59XG5cbmZ1bmN0aW9uIGdldFN0b3JlTWV0YWRhdGEodGFyZ2V0OiBGdW5jdGlvbikge1xuICAgIHJldHVybiB0YXJnZXRbTUVUQV9LRVldO1xufVxuIiwiaW1wb3J0IHsgZW5zdXJlU3RvcmVNZXRhZGF0YSwgRW1pdHRlck1ldGFEYXRhLCBFTUlUVEVSX01FVEFfS0VZIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcblxuLyoqXG4gKiBEZWNvcmF0ZXMgYSBtZXRob2Qgd2l0aCBhbiBlbWl0dGVyIGluZm9ybWF0aW9uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciBjb25maWd1cmluZyBzdGF0aWMgbWV0YWRhdGFcbiAqIEByZXR1cm5zIC0gRmFjdG9yeSBmb3IgZGVjb3JhdGluZyBtZXRob2RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEVtaXR0ZXIob3B0aW9ucz86IFBhcnRpYWw8RW1pdHRlck1ldGFEYXRhPik6IE1ldGhvZERlY29yYXRvciB7XG4gICAgcmV0dXJuIDxUPih0YXJnZXQ6IGFueSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFQ+KSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGVzY3JpcHRvci52YWx1ZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgdGFyZ2V0W2tleV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE9ubHkgc3RhdGljIGZ1bmN0aW9ucyBjYW4gYmUgZGVjb3JhdGVkIHdpdGggQEVtaXR0ZXIoKSBkZWNvcmF0b3JgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3ltYm9sJykge1xuICAgICAgICAgICAga2V5ID0ga2V5LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXRhID0gZW5zdXJlU3RvcmVNZXRhZGF0YSh0YXJnZXQpO1xuICAgICAgICBjb25zdCB0eXBlOiBzdHJpbmcgPSAob3B0aW9ucyAmJiBvcHRpb25zLnR5cGUpIHx8IGAke3RhcmdldC5uYW1lfS4ke2tleX1gO1xuICAgICAgICBjb25zdCBhY3Rpb246IGFueSB8IHVuZGVmaW5lZCA9IG9wdGlvbnMgJiYgb3B0aW9ucy5hY3Rpb247XG5cbiAgICAgICAgaWYgKG1ldGEuYWN0aW9uc1t0eXBlXSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNZXRob2QgZGVjb3JhdGVkIHdpdGggc3VjaCB0eXBlIFxcYCR7dHlwZX1cXGAgYWxyZWFkeSBleGlzdHNgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZSB1c2VyIHBhc3NlZCBjdXN0b20gYWN0aW9uXG4gICAgICAgIGlmIChhY3Rpb24pIHtcbiAgICAgICAgICAgIG1ldGEuYWN0aW9uc1thY3Rpb24udHlwZV0gPSBbe1xuICAgICAgICAgICAgICAgIGZuOiBgJHtrZXl9YCxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICAgICAgICB0eXBlOiBhY3Rpb24udHlwZVxuICAgICAgICAgICAgfV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXRhLmFjdGlvbnNbdHlwZV0gPSBbe1xuICAgICAgICAgICAgICAgIGZuOiBgJHtrZXl9YCxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICB9XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlc2NyaXB0b3IudmFsdWVbRU1JVFRFUl9NRVRBX0tFWV0gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgYWN0aW9uXG4gICAgICAgIH07XG5cbiAgICAgICAgdGFyZ2V0LnByb3RvdHlwZVtrZXldID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0W2tleV0uYXBwbHkodGFyZ2V0LCBhcmd1bWVudHMpO1xuICAgICAgICB9O1xuICAgIH07XG59XG4iLCIvKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90IHVzZVxyXG50aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZVxyXG5MaWNlbnNlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG5cclxuVEhJUyBDT0RFIElTIFBST1ZJREVEIE9OIEFOICpBUyBJUyogQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWVxyXG5LSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIEFOWSBJTVBMSUVEXHJcbldBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsXHJcbk1FUkNIQU5UQUJMSVRZIE9SIE5PTi1JTkZSSU5HRU1FTlQuXHJcblxyXG5TZWUgdGhlIEFwYWNoZSBWZXJzaW9uIDIuMCBMaWNlbnNlIGZvciBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcclxuYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4vKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSAqL1xyXG5cclxudmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcclxuICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZXh0ZW5kcyhkLCBiKSB7XHJcbiAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xyXG4gICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XHJcbiAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xyXG4gICAgICAgIHMgPSBhcmd1bWVudHNbaV07XHJcbiAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgIH1cclxuICAgIHJldHVybiB0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZXN0KHMsIGUpIHtcclxuICAgIHZhciB0ID0ge307XHJcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcclxuICAgICAgICB0W3BdID0gc1twXTtcclxuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcclxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMClcclxuICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZShyZXN1bHQudmFsdWUpOyB9KS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2dlbmVyYXRvcih0aGlzQXJnLCBib2R5KSB7XHJcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xyXG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcclxuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XHJcbiAgICAgICAgd2hpbGUgKF8pIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IHlbb3BbMF0gJiAyID8gXCJyZXR1cm5cIiA6IG9wWzBdID8gXCJ0aHJvd1wiIDogXCJuZXh0XCJdKSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcclxuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFswLCB0LnZhbHVlXTtcclxuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xyXG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XHJcbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgZXhwb3J0cykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAoIWV4cG9ydHMuaGFzT3duUHJvcGVydHkocCkpIGV4cG9ydHNbcF0gPSBtW3BdO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7XHJcbiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZWFkKG8sIG4pIHtcclxuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcclxuICAgIGlmICghbSkgcmV0dXJuIG87XHJcbiAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cclxuICAgIGZpbmFsbHkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaW5hbGx5IHsgaWYgKGUpIHRocm93IGUuZXJyb3I7IH1cclxuICAgIH1cclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkKCkge1xyXG4gICAgZm9yICh2YXIgYXIgPSBbXSwgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XHJcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyBpZiAoZ1tuXSkgaVtuXSA9IGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAoYSwgYikgeyBxLnB1c2goW24sIHYsIGEsIGJdKSA+IDEgfHwgcmVzdW1lKG4sIHYpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gcmVzdW1lKG4sIHYpIHsgdHJ5IHsgc3RlcChnW25dKHYpKTsgfSBjYXRjaCAoZSkgeyBzZXR0bGUocVswXVszXSwgZSk7IH0gfVxyXG4gICAgZnVuY3Rpb24gc3RlcChyKSB7IHIudmFsdWUgaW5zdGFuY2VvZiBfX2F3YWl0ID8gUHJvbWlzZS5yZXNvbHZlKHIudmFsdWUudikudGhlbihmdWxmaWxsLCByZWplY3QpIDogc2V0dGxlKHFbMF1bMl0sIHIpOyAgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaWYgKG9bbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH07IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl07XHJcbiAgICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWFrZVRlbXBsYXRlT2JqZWN0KGNvb2tlZCwgcmF3KSB7XHJcbiAgICBpZiAoT2JqZWN0LmRlZmluZVByb3BlcnR5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb29rZWQsIFwicmF3XCIsIHsgdmFsdWU6IHJhdyB9KTsgfSBlbHNlIHsgY29va2VkLnJhdyA9IHJhdzsgfVxyXG4gICAgcmV0dXJuIGNvb2tlZDtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIHJlc3VsdFtrXSA9IG1vZFtrXTtcclxuICAgIHJlc3VsdC5kZWZhdWx0ID0gbW9kO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9faW1wb3J0RGVmYXVsdChtb2QpIHtcclxuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgZGVmYXVsdDogbW9kIH07XHJcbn1cclxuIiwiLyoqXG4gKiBUaGlzIGNsYXNzIGlzIHVzZWQgYXMgYSBkZWZhdWx0IGFjdGlvbiB3aGVuIHRoZSB1c2VyIGRvZXNuJ3QgcGFzcyBhbnkgY3VzdG9tIGFjdGlvbiBhcyBhbiBhcmd1bWVudFxuICovXG5leHBvcnQgY2xhc3MgRW1pdHRlckFjdGlvbjxUID0gYW55PiB7XG4gICAgLyoqXG4gICAgICogQWN0aW9uIHR5cGVcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHR5cGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBFbWl0dGVyQWN0aW9uIGluc3RhbmNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCAtIERhdGEgdG8gZGlzcGF0Y2hcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZD86IFQpIHt9XG59XG4iLCJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBFTUlUVEVSX01FVEFfS0VZLCBFbWl0dGFibGUsIEVtaXR0ZXJNZXRhRGF0YSB9IGZyb20gJy4vY29yZS9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgRW1pdHRlckFjdGlvbiB9IGZyb20gJy4vY29yZS9hY3Rpb25zL2FjdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRW1pdFN0b3JlIGV4dGVuZHMgU3RvcmUge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBlbWl0dGVyIC0gUmVmZXJlbmNlIHRvIHRoZSBzdGF0aWMgZnVuY3Rpb24gZnJvbSB0aGUgc3RvcmVcbiAgICAgKiBAcmV0dXJucyAtIEEgcGxhaW4gb2JqZWN0IHdpdGggYW4gYGVtaXRgIGZ1bmN0aW9uIGZvciBjYWxsaW5nIGVtaXR0ZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgZW1pdHRlcjxUID0gYW55LCBVID0gYW55PihlbWl0dGVyOiBGdW5jdGlvbik6IEVtaXR0YWJsZTxULCBVPiB7XG4gICAgICAgIGNvbnN0IGVtaXR0ZXJFdmVudDogRW1pdHRlck1ldGFEYXRhID0gZW1pdHRlcltFTUlUVEVSX01FVEFfS0VZXTtcblxuICAgICAgICBpZiAoIWVtaXR0ZXJFdmVudCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbWl0dGVyIG1ldGhvZHMgc2hvdWxkIGJlIGRlY29yYXRlZCB1c2luZyBARW1pdHRlcigpIGRlY29yYXRvcicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVtaXQ6IChwYXlsb2FkPzogVCk6IE9ic2VydmFibGU8VT4gPT4ge1xuICAgICAgICAgICAgICAgIEVtaXR0ZXJBY3Rpb24udHlwZSA9IGVtaXR0ZXJFdmVudC50eXBlO1xuICAgICAgICAgICAgICAgIGNvbnN0IEFjdGlvbjogYW55IHwgdHlwZW9mIEVtaXR0ZXJBY3Rpb24gPSBlbWl0dGVyRXZlbnQuYWN0aW9uID8gZW1pdHRlckV2ZW50LmFjdGlvbiA6IEVtaXR0ZXJBY3Rpb247XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2gobmV3IEFjdGlvbihwYXlsb2FkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRW1pdFN0b3JlIH0gZnJvbSAnLi4vLi4vZW1pdC5zZXJ2aWNlJztcblxuLyoqXG4gKiBBbGxvd3MgdGhlIGBAUGF5bG9hZEVtaXR0ZXIoKWAgZGVjb3JhdG9yIHRvIGdldCBhY2Nlc3MgdG8gdGhlIERJIHN0b3JlXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQYXlsb2FkRW1pdHRlckZhY3Rvcnkge1xuICAgIC8qKlxuICAgICAqIEluamVjdG9yIGZvciBhY2Nlc3NpbmcgRElcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGluamVjdG9yOiBJbmplY3RvciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBQYXlsb2FkRW1pdHRlckZhY3RvcnkgaW5zdGFuY2VcbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbmplY3RvciAtIFJvb3QgaW5qZWN0b3JcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgUGF5bG9hZEVtaXR0ZXJGYWN0b3J5LmluamVjdG9yID0gaW5qZWN0b3I7XG4gICAgfVxufVxuXG4vKipcbiAqIERlY29yYXRlcyBhIHByb3BlcnR5IGFuZCBkZWZpbmVzIG5ldyBnZXR0ZXJcbiAqXG4gKiBAcGFyYW0gZW1pdHRlciAtIFJlZmVyZW5jZSB0byB0aGUgc3RhdGljIGZ1bmN0aW9uXG4gKiBAcmV0dXJucyAtIEZhY3RvcnkgZnVuY3Rpb24gZm9yIGRlY29yYXRpbmcgcHJvcGVydGllc1xuICovXG5leHBvcnQgZnVuY3Rpb24gUGF5bG9hZEVtaXR0ZXIoZW1pdHRlcjogRnVuY3Rpb24pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gICAgcmV0dXJuICh0YXJnZXQ6IE9iamVjdCwga2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCB7XG4gICAgICAgICAgICBnZXQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdG9yZSA9IFBheWxvYWRFbWl0dGVyRmFjdG9yeS5pbmplY3RvciEuZ2V0PEVtaXRTdG9yZT4oRW1pdFN0b3JlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RvcmUuZW1pdHRlcihlbWl0dGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBheWxvYWRFbWl0dGVyRmFjdG9yeSB9IGZyb20gJy4vY29yZS9kZWNvcmF0b3JzL3BheWxvYWQtZW1pdHRlcic7XG5pbXBvcnQgeyBFbWl0U3RvcmUgfSBmcm9tICcuL2VtaXQuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFBheWxvYWRFbWl0dGVyRmFjdG9yeSxcbiAgICAgICAgRW1pdFN0b3JlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hzRW1pdFBsdWdpbk1vZHVsZSB7XG4gICAgY29uc3RydWN0b3IocGF5bG9hZEVtaXR0ZXJGYWN0b3J5OiBQYXlsb2FkRW1pdHRlckZhY3RvcnkpIHt9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyAtIEEgd3JhcHBlciBhcm91bmQgYE5nTW9kdWxlYFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neHNFbWl0UGx1Z2luTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogTmd4c0VtaXRQbHVnaW5Nb2R1bGVcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsidHNsaWJfMS5fX2V4dGVuZHMiLCJJbmplY3RhYmxlIiwiU3RvcmUiLCJJbmplY3RvciIsInN0b3JlIiwiTmdNb2R1bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7SUF3Qk8scUJBQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQzs7OztBQUtwQyxJQUFPLHFCQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDOzs7OztBQUVwRCxpQ0FBb0MsTUFBZ0I7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEMscUJBQU0sZUFBZSxHQUFHO2dCQUNwQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUUsRUFBRTtnQkFDWCxRQUFRLEVBQUUsRUFBRTtnQkFDWixJQUFJLEVBQUUsSUFBSTtnQkFDVixRQUFRLEVBQUUsRUFBRTtnQkFDWixRQUFRLEVBQUUsSUFBSTthQUNqQixDQUFDO1lBQ0YsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7U0FDdkU7UUFDRCxPQUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ25DOzs7OztJQUVELDBCQUEwQixNQUFnQjtRQUN0QyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUMzQjs7Ozs7O0FDaEREOzs7Ozs7QUFRQSxxQkFBd0IsT0FBa0M7UUFDdEQsT0FBTyxVQUFJLE1BQVcsRUFBRSxHQUFvQixFQUFF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

@@ -51,2 +51,2 @@ /**

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci8iLCJzb3VyY2VzIjpbImxpYi9jb3JlL2RlY29yYXRvcnMvZW1pdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixnQkFBZ0IsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQVE3RyxNQUFNLGtCQUFrQixPQUFrQztJQUN0RCxNQUFNLENBQUMsQ0FBSSxNQUFXLEVBQUUsR0FBb0IsRUFBRSxVQUFzQyxFQUFFLEVBQUU7UUFDcEYsRUFBRSxDQUFDLENBQUMsT0FBTyxVQUFVLENBQUMsS0FBSyxLQUFLLFVBQVUsSUFBSSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQzlFLE1BQU0sSUFBSSxTQUFTLENBQUMsa0VBQWtFLENBQUMsQ0FBQztTQUMzRjtRQUVELEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDMUIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN4QjtRQUVELHVCQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6Qyx1QkFBTSxJQUFJLEdBQVcsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMxRSx1QkFBTSxNQUFNLEdBQXVDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO1FBRTdFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLElBQUksbUJBQW1CLENBQUMsQ0FBQztTQUNqRjs7UUFHRCxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztvQkFDekIsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFO29CQUNaLE9BQU8sRUFBRSxFQUFFO29CQUNYLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtpQkFDcEIsQ0FBQyxDQUFDO1NBQ047UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztvQkFDbEIsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFO29CQUNaLE9BQU8sRUFBRSxFQUFFO29CQUNYLElBQUk7aUJBQ1AsQ0FBQyxDQUFDO1NBQ047UUFFRCxVQUFVLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUc7WUFDakMsSUFBSTtZQUNKLE1BQU07U0FDVCxDQUFDO1FBRUYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRztZQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDL0MsQ0FBQztLQUNMLENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuc3VyZVN0b3JlTWV0YWRhdGEsIEVtaXR0ZXJNZXRhRGF0YSwgRU1JVFRFUl9NRVRBX0tFWSwgQ3VzdG9tQWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcblxuLyoqXG4gKiBEZWNvcmF0ZXMgYSBtZXRob2Qgd2l0aCBhbiBlbWl0dGVyIGluZm9ybWF0aW9uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciBjb25maWd1cmluZyBzdGF0aWMgbWV0YWRhdGFcbiAqIEByZXR1cm5zIC0gRmFjdG9yeSBmb3IgZGVjb3JhdGluZyBtZXRob2RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEVtaXR0ZXIob3B0aW9ucz86IFBhcnRpYWw8RW1pdHRlck1ldGFEYXRhPik6IE1ldGhvZERlY29yYXRvciB7XG4gICAgcmV0dXJuIDxUPih0YXJnZXQ6IGFueSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFQ+KSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGVzY3JpcHRvci52YWx1ZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgdGFyZ2V0W2tleV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE9ubHkgc3RhdGljIGZ1bmN0aW9ucyBjYW4gYmUgZGVjb3JhdGVkIHdpdGggQEVtaXR0ZXIoKSBkZWNvcmF0b3JgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3ltYm9sJykge1xuICAgICAgICAgICAga2V5ID0ga2V5LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXRhID0gZW5zdXJlU3RvcmVNZXRhZGF0YSh0YXJnZXQpO1xuICAgICAgICBjb25zdCB0eXBlOiBzdHJpbmcgPSAob3B0aW9ucyAmJiBvcHRpb25zLnR5cGUpIHx8IGAke3RhcmdldC5uYW1lfS4ke2tleX1gO1xuICAgICAgICBjb25zdCBhY3Rpb246IEN1c3RvbUFjdGlvbjxhbnksIGFueT4gfCB1bmRlZmluZWQgPSBvcHRpb25zICYmIG9wdGlvbnMuYWN0aW9uO1xuXG4gICAgICAgIGlmIChtZXRhLmFjdGlvbnNbdHlwZV0pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTWV0aG9kIGRlY29yYXRlZCB3aXRoIHN1Y2ggdHlwZSBcXGAke3R5cGV9XFxgIGFscmVhZHkgZXhpc3RzYCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB0aGUgdXNlciBwYXNzZWQgY3VzdG9tIGFjdGlvblxuICAgICAgICBpZiAoYWN0aW9uKSB7XG4gICAgICAgICAgICBtZXRhLmFjdGlvbnNbYWN0aW9uLnR5cGVdID0gW3tcbiAgICAgICAgICAgICAgICBmbjogYCR7a2V5fWAsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge30sXG4gICAgICAgICAgICAgICAgdHlwZTogYWN0aW9uLnR5cGVcbiAgICAgICAgICAgIH1dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWV0YS5hY3Rpb25zW3R5cGVdID0gW3tcbiAgICAgICAgICAgICAgICBmbjogYCR7a2V5fWAsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge30sXG4gICAgICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICAgfV07XG4gICAgICAgIH1cblxuICAgICAgICBkZXNjcmlwdG9yLnZhbHVlW0VNSVRURVJfTUVUQV9LRVldID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGFjdGlvblxuICAgICAgICB9O1xuXG4gICAgICAgIHRhcmdldC5wcm90b3R5cGVba2V5XSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtrZXldLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTtcbiAgICAgICAgfTtcbiAgICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci8iLCJzb3VyY2VzIjpbImxpYi9jb3JlL2RlY29yYXRvcnMvZW1pdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBUS9GLE1BQU0sa0JBQWtCLE9BQWtDO0lBQ3RELE1BQU0sQ0FBQyxDQUFJLE1BQVcsRUFBRSxHQUFvQixFQUFFLFVBQXNDLEVBQUUsRUFBRTtRQUNwRixFQUFFLENBQUMsQ0FBQyxPQUFPLFVBQVUsQ0FBQyxLQUFLLEtBQUssVUFBVSxJQUFJLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDOUUsTUFBTSxJQUFJLFNBQVMsQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO1NBQzNGO1FBRUQsRUFBRSxDQUFDLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztZQUMxQixHQUFHLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3hCO1FBRUQsdUJBQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLHVCQUFNLElBQUksR0FBVyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzFFLHVCQUFNLE1BQU0sR0FBb0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFMUQsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsSUFBSSxtQkFBbUIsQ0FBQyxDQUFDO1NBQ2pGOztRQUdELEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO29CQUN6QixFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUU7b0JBQ1osT0FBTyxFQUFFLEVBQUU7b0JBQ1gsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2lCQUNwQixDQUFDLENBQUM7U0FDTjtRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO29CQUNsQixFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUU7b0JBQ1osT0FBTyxFQUFFLEVBQUU7b0JBQ1gsSUFBSTtpQkFDUCxDQUFDLENBQUM7U0FDTjtRQUVELFVBQVUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRztZQUNqQyxJQUFJO1lBQ0osTUFBTTtTQUNULENBQUM7UUFFRixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHO1lBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUMvQyxDQUFDO0tBQ0wsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5zdXJlU3RvcmVNZXRhZGF0YSwgRW1pdHRlck1ldGFEYXRhLCBFTUlUVEVSX01FVEFfS0VZIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcblxuLyoqXG4gKiBEZWNvcmF0ZXMgYSBtZXRob2Qgd2l0aCBhbiBlbWl0dGVyIGluZm9ybWF0aW9uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciBjb25maWd1cmluZyBzdGF0aWMgbWV0YWRhdGFcbiAqIEByZXR1cm5zIC0gRmFjdG9yeSBmb3IgZGVjb3JhdGluZyBtZXRob2RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEVtaXR0ZXIob3B0aW9ucz86IFBhcnRpYWw8RW1pdHRlck1ldGFEYXRhPik6IE1ldGhvZERlY29yYXRvciB7XG4gICAgcmV0dXJuIDxUPih0YXJnZXQ6IGFueSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFQ+KSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGVzY3JpcHRvci52YWx1ZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgdGFyZ2V0W2tleV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE9ubHkgc3RhdGljIGZ1bmN0aW9ucyBjYW4gYmUgZGVjb3JhdGVkIHdpdGggQEVtaXR0ZXIoKSBkZWNvcmF0b3JgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3ltYm9sJykge1xuICAgICAgICAgICAga2V5ID0ga2V5LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXRhID0gZW5zdXJlU3RvcmVNZXRhZGF0YSh0YXJnZXQpO1xuICAgICAgICBjb25zdCB0eXBlOiBzdHJpbmcgPSAob3B0aW9ucyAmJiBvcHRpb25zLnR5cGUpIHx8IGAke3RhcmdldC5uYW1lfS4ke2tleX1gO1xuICAgICAgICBjb25zdCBhY3Rpb246IGFueSB8IHVuZGVmaW5lZCA9IG9wdGlvbnMgJiYgb3B0aW9ucy5hY3Rpb247XG5cbiAgICAgICAgaWYgKG1ldGEuYWN0aW9uc1t0eXBlXSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNZXRob2QgZGVjb3JhdGVkIHdpdGggc3VjaCB0eXBlIFxcYCR7dHlwZX1cXGAgYWxyZWFkeSBleGlzdHNgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZSB1c2VyIHBhc3NlZCBjdXN0b20gYWN0aW9uXG4gICAgICAgIGlmIChhY3Rpb24pIHtcbiAgICAgICAgICAgIG1ldGEuYWN0aW9uc1thY3Rpb24udHlwZV0gPSBbe1xuICAgICAgICAgICAgICAgIGZuOiBgJHtrZXl9YCxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICAgICAgICB0eXBlOiBhY3Rpb24udHlwZVxuICAgICAgICAgICAgfV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXRhLmFjdGlvbnNbdHlwZV0gPSBbe1xuICAgICAgICAgICAgICAgIGZuOiBgJHtrZXl9YCxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICB9XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlc2NyaXB0b3IudmFsdWVbRU1JVFRFUl9NRVRBX0tFWV0gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgYWN0aW9uXG4gICAgICAgIH07XG5cbiAgICAgICAgdGFyZ2V0LnByb3RvdHlwZVtrZXldID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0W2tleV0uYXBwbHkodGFyZ2V0LCBhcmd1bWVudHMpO1xuICAgICAgICB9O1xuICAgIH07XG59XG4iXX0=

@@ -5,17 +5,2 @@ /**

*/
/**
* Custom action interface
*
* \@property type - Static property that defines action type
* @record
* @template T, U
*/
export function CustomAction() { }
function CustomAction_tsickle_Closure_declarations() {
/** @type {?} */
CustomAction.prototype.type;
/* TODO: handle strange member:
new (payload?: U): T;
*/
}
// unsupported: template constraints.

@@ -80,2 +65,2 @@ /**

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMtY29udHJpYi9lbWl0dGVyLyIsInNvdXJjZXMiOlsibGliL2NvcmUvaW50ZXJuYWwvaW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0NBLE1BQU0sQ0FBQyx1QkFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDOzs7O0FBS3BDLE1BQU0sQ0FBQyx1QkFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQzs7Ozs7QUFFcEQsTUFBTSw4QkFBOEIsTUFBZ0I7SUFDaEQsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyx1QkFBTSxlQUFlLEdBQUc7WUFDcEIsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRSxFQUFFO1lBQ1osSUFBSSxFQUFFLElBQUk7WUFDVixRQUFRLEVBQUUsRUFBRTtZQUNaLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUM7UUFDRixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztLQUN2RTtJQUNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUNuQzs7Ozs7QUFFRCwwQkFBMEIsTUFBZ0I7SUFDdEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztDQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBDdXN0b20gYWN0aW9uIGludGVyZmFjZVxuICpcbiAqIEBwcm9wZXJ0eSB0eXBlIC0gU3RhdGljIHByb3BlcnR5IHRoYXQgZGVmaW5lcyBhY3Rpb24gdHlwZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUFjdGlvbjxUID0gYW55LCBVID0gYW55PiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIG5ldyAocGF5bG9hZD86IFUpOiBUO1xufVxuXG4vKipcbiAqIFN0YXRpYyBtZXRhZGF0YSBmb3IgdGhlIGVtaXR0ZXIgZnVuY3Rpb25cbiAqXG4gKiBAcHJvcGVydHkgdHlwZSAtIEFjdGlvbiB0eXBlIChvcHRpb25hbClcbiAqIEBwcm9wZXJ0eSBhY3Rpb24gLSBDdXN0b20gYWN0aW9uIHRvIGRpc3BhdGNoIChvcHRpb25hbClcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWl0dGVyTWV0YURhdGE8VCBleHRlbmRzIEZ1bmN0aW9uID0gYW55PiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGFjdGlvbjogQ3VzdG9tQWN0aW9uPFQ+O1xufVxuXG4vKipcbiAqIFBsYWluIG9iamVjdCB0aGF0IGNvbnRhaW5zIGBlbWl0YCBmdW5jdGlvbiB0aGF0IGRpc3BhdGNoZXMgcGF5bG9hZFxuICpcbiAqIEBwcm9wZXJ0eSBlbWl0IC0gRnVuY3Rpb24gdGhhdCBkaXNwYXRjaGVzIHBheWxvYWQgdW5kZXIgdGhlIGhvb2RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWl0dGFibGU8VCA9IGFueSwgVSA9IGFueT4ge1xuICAgIGVtaXQocGF5bG9hZD86IFQpOiBPYnNlcnZhYmxlPFU+O1xufVxuXG5leHBvcnQgY29uc3QgTUVUQV9LRVkgPSAnTkdYU19NRVRBJztcblxuLyoqXG4gKiBAY29uc3QgLSBUaGlzIGNvbnN0YW50IGlzIGEga2V5IGZvciBkZWZpbmluZyBzdGF0aWMgbWV0YWRhdGEgdXNpbmcgYEBFbWl0dGVyYFxuICovXG5leHBvcnQgY29uc3QgRU1JVFRFUl9NRVRBX0tFWSA9ICdOR1hTX0VNSVRURVJfTUVUQSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVTdG9yZU1ldGFkYXRhKHRhcmdldDogRnVuY3Rpb24pIHtcbiAgICBpZiAoIXRhcmdldC5oYXNPd25Qcm9wZXJ0eShNRVRBX0tFWSkpIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdE1ldGFkYXRhID0ge1xuICAgICAgICAgICAgbmFtZTogbnVsbCxcbiAgICAgICAgICAgIGFjdGlvbnM6IHt9LFxuICAgICAgICAgICAgZGVmYXVsdHM6IHt9LFxuICAgICAgICAgICAgcGF0aDogbnVsbCxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgIGluc3RhbmNlOiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIE1FVEFfS0VZLCB7IHZhbHVlOiBkZWZhdWx0TWV0YWRhdGEgfSk7XG4gICAgfVxuICAgIHJldHVybiBnZXRTdG9yZU1ldGFkYXRhKHRhcmdldCk7XG59XG5cbmZ1bmN0aW9uIGdldFN0b3JlTWV0YWRhdGEodGFyZ2V0OiBGdW5jdGlvbikge1xuICAgIHJldHVybiB0YXJnZXRbTUVUQV9LRVldO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMtY29udHJpYi9lbWl0dGVyLyIsInNvdXJjZXMiOlsibGliL2NvcmUvaW50ZXJuYWwvaW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0JBLE1BQU0sQ0FBQyx1QkFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDOzs7O0FBS3BDLE1BQU0sQ0FBQyx1QkFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQzs7Ozs7QUFFcEQsTUFBTSw4QkFBOEIsTUFBZ0I7SUFDaEQsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyx1QkFBTSxlQUFlLEdBQUc7WUFDcEIsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRSxFQUFFO1lBQ1osSUFBSSxFQUFFLElBQUk7WUFDVixRQUFRLEVBQUUsRUFBRTtZQUNaLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUM7UUFDRixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztLQUN2RTtJQUNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUNuQzs7Ozs7QUFFRCwwQkFBMEIsTUFBZ0I7SUFDdEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztDQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFN0YXRpYyBtZXRhZGF0YSBmb3IgdGhlIGVtaXR0ZXIgZnVuY3Rpb25cbiAqXG4gKiBAcHJvcGVydHkgdHlwZSAtIEFjdGlvbiB0eXBlIChvcHRpb25hbClcbiAqIEBwcm9wZXJ0eSBhY3Rpb24gLSBDdXN0b20gYWN0aW9uIHRvIGRpc3BhdGNoIChvcHRpb25hbClcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWl0dGVyTWV0YURhdGE8VCBleHRlbmRzIEZ1bmN0aW9uID0gYW55PiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGFjdGlvbjogVHlwZTxUPjtcbn1cblxuLyoqXG4gKiBQbGFpbiBvYmplY3QgdGhhdCBjb250YWlucyBgZW1pdGAgZnVuY3Rpb24gdGhhdCBkaXNwYXRjaGVzIHBheWxvYWRcbiAqXG4gKiBAcHJvcGVydHkgZW1pdCAtIEZ1bmN0aW9uIHRoYXQgZGlzcGF0Y2hlcyBwYXlsb2FkIHVuZGVyIHRoZSBob29kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW1pdHRhYmxlPFQgPSBhbnksIFUgPSBhbnk+IHtcbiAgICBlbWl0KHBheWxvYWQ/OiBUKTogT2JzZXJ2YWJsZTxVPjtcbn1cblxuZXhwb3J0IGNvbnN0IE1FVEFfS0VZID0gJ05HWFNfTUVUQSc7XG5cbi8qKlxuICogQGNvbnN0IC0gVGhpcyBjb25zdGFudCBpcyBhIGtleSBmb3IgZGVmaW5pbmcgc3RhdGljIG1ldGFkYXRhIHVzaW5nIGBARW1pdHRlcmBcbiAqL1xuZXhwb3J0IGNvbnN0IEVNSVRURVJfTUVUQV9LRVkgPSAnTkdYU19FTUlUVEVSX01FVEEnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlU3RvcmVNZXRhZGF0YSh0YXJnZXQ6IEZ1bmN0aW9uKSB7XG4gICAgaWYgKCF0YXJnZXQuaGFzT3duUHJvcGVydHkoTUVUQV9LRVkpKSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRNZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIG5hbWU6IG51bGwsXG4gICAgICAgICAgICBhY3Rpb25zOiB7fSxcbiAgICAgICAgICAgIGRlZmF1bHRzOiB7fSxcbiAgICAgICAgICAgIHBhdGg6IG51bGwsXG4gICAgICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgICAgICBpbnN0YW5jZTogbnVsbFxuICAgICAgICB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBNRVRBX0tFWSwgeyB2YWx1ZTogZGVmYXVsdE1ldGFkYXRhIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0U3RvcmVNZXRhZGF0YSh0YXJnZXQpO1xufVxuXG5mdW5jdGlvbiBnZXRTdG9yZU1ldGFkYXRhKHRhcmdldDogRnVuY3Rpb24pIHtcbiAgICByZXR1cm4gdGFyZ2V0W01FVEFfS0VZXTtcbn1cbiJdfQ==

@@ -33,2 +33,2 @@ /**

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMtY29udHJpYi9lbWl0dGVyLyIsInNvdXJjZXMiOlsibGliL2VtaXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSXBDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBOEIsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHdkQsTUFBTSxnQkFBaUIsU0FBUSxLQUFLOzs7Ozs7SUFLekIsT0FBTyxDQUFtQixPQUFpQjtRQUM5Qyx1QkFBTSxZQUFZLEdBQW9CLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWhFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGdFQUFnRSxDQUFDLENBQUM7U0FDckY7UUFFRCxNQUFNLENBQUM7WUFDSCxJQUFJLEVBQUUsQ0FBQyxPQUFXLEVBQWlCLEVBQUU7Z0JBQ2pDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDdkMsdUJBQU0sTUFBTSxHQUE4QixZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7Z0JBQ3BHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDN0M7U0FDSixDQUFDOzs7O1lBbkJULFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBFTUlUVEVSX01FVEFfS0VZLCBFbWl0dGFibGUsIEVtaXR0ZXJNZXRhRGF0YSB9IGZyb20gJy4vY29yZS9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgRW1pdHRlckFjdGlvbiB9IGZyb20gJy4vY29yZS9hY3Rpb25zL2FjdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRW1pdFN0b3JlIGV4dGVuZHMgU3RvcmUge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBlbWl0dGVyIC0gUmVmZXJlbmNlIHRvIHRoZSBzdGF0aWMgZnVuY3Rpb24gZnJvbSB0aGUgc3RvcmVcbiAgICAgKiBAcmV0dXJucyAtIEEgcGxhaW4gb2JqZWN0IHdpdGggYW4gYGVtaXRgIGZ1bmN0aW9uIGZvciBjYWxsaW5nIGVtaXR0ZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgZW1pdHRlcjxUID0gYW55LCBVID0gYW55PihlbWl0dGVyOiBGdW5jdGlvbik6IEVtaXR0YWJsZTxULCBVPiB7XG4gICAgICAgIGNvbnN0IGVtaXR0ZXJFdmVudDogRW1pdHRlck1ldGFEYXRhID0gZW1pdHRlcltFTUlUVEVSX01FVEFfS0VZXTtcblxuICAgICAgICBpZiAoIWVtaXR0ZXJFdmVudCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbWl0dGVyIG1ldGhvZHMgc2hvdWxkIGJlIGRlY29yYXRlZCB1c2luZyBARW1pdHRlcigpIGRlY29yYXRvcicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVtaXQ6IChwYXlsb2FkPzogVCk6IE9ic2VydmFibGU8VT4gPT4ge1xuICAgICAgICAgICAgICAgIEVtaXR0ZXJBY3Rpb24udHlwZSA9IGVtaXR0ZXJFdmVudC50eXBlO1xuICAgICAgICAgICAgICAgIGNvbnN0IEFjdGlvbjogVHlwZTxhbnkgfCBFbWl0dGVyQWN0aW9uPiA9IGVtaXR0ZXJFdmVudC5hY3Rpb24gPyBlbWl0dGVyRXZlbnQuYWN0aW9uIDogRW1pdHRlckFjdGlvbjtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChuZXcgQWN0aW9uKHBheWxvYWQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMtY29udHJpYi9lbWl0dGVyLyIsInNvdXJjZXMiOlsibGliL2VtaXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSXBDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBOEIsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHdkQsTUFBTSxnQkFBaUIsU0FBUSxLQUFLOzs7Ozs7SUFLekIsT0FBTyxDQUFtQixPQUFpQjtRQUM5Qyx1QkFBTSxZQUFZLEdBQW9CLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWhFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGdFQUFnRSxDQUFDLENBQUM7U0FDckY7UUFFRCxNQUFNLENBQUM7WUFDSCxJQUFJLEVBQUUsQ0FBQyxPQUFXLEVBQWlCLEVBQUU7Z0JBQ2pDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDdkMsdUJBQU0sTUFBTSxHQUErQixZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7Z0JBQ3JHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDN0M7U0FDSixDQUFDOzs7O1lBbkJULFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBFTUlUVEVSX01FVEFfS0VZLCBFbWl0dGFibGUsIEVtaXR0ZXJNZXRhRGF0YSB9IGZyb20gJy4vY29yZS9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgRW1pdHRlckFjdGlvbiB9IGZyb20gJy4vY29yZS9hY3Rpb25zL2FjdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRW1pdFN0b3JlIGV4dGVuZHMgU3RvcmUge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBlbWl0dGVyIC0gUmVmZXJlbmNlIHRvIHRoZSBzdGF0aWMgZnVuY3Rpb24gZnJvbSB0aGUgc3RvcmVcbiAgICAgKiBAcmV0dXJucyAtIEEgcGxhaW4gb2JqZWN0IHdpdGggYW4gYGVtaXRgIGZ1bmN0aW9uIGZvciBjYWxsaW5nIGVtaXR0ZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgZW1pdHRlcjxUID0gYW55LCBVID0gYW55PihlbWl0dGVyOiBGdW5jdGlvbik6IEVtaXR0YWJsZTxULCBVPiB7XG4gICAgICAgIGNvbnN0IGVtaXR0ZXJFdmVudDogRW1pdHRlck1ldGFEYXRhID0gZW1pdHRlcltFTUlUVEVSX01FVEFfS0VZXTtcblxuICAgICAgICBpZiAoIWVtaXR0ZXJFdmVudCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbWl0dGVyIG1ldGhvZHMgc2hvdWxkIGJlIGRlY29yYXRlZCB1c2luZyBARW1pdHRlcigpIGRlY29yYXRvcicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVtaXQ6IChwYXlsb2FkPzogVCk6IE9ic2VydmFibGU8VT4gPT4ge1xuICAgICAgICAgICAgICAgIEVtaXR0ZXJBY3Rpb24udHlwZSA9IGVtaXR0ZXJFdmVudC50eXBlO1xuICAgICAgICAgICAgICAgIGNvbnN0IEFjdGlvbjogYW55IHwgdHlwZW9mIEVtaXR0ZXJBY3Rpb24gPSBlbWl0dGVyRXZlbnQuYWN0aW9uID8gZW1pdHRlckV2ZW50LmFjdGlvbiA6IEVtaXR0ZXJBY3Rpb247XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2gobmV3IEFjdGlvbihwYXlsb2FkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxufVxuIl19

@@ -51,2 +51,2 @@ /**

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci8iLCJzb3VyY2VzIjpbImxpYi9jb3JlL2RlY29yYXRvcnMvZW1pdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixnQkFBZ0IsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQVE3RyxNQUFNLGtCQUFrQixPQUFrQztJQUN0RCxNQUFNLENBQUMsVUFBSSxNQUFXLEVBQUUsR0FBb0IsRUFBRSxVQUFzQztRQUNoRixFQUFFLENBQUMsQ0FBQyxPQUFPLFVBQVUsQ0FBQyxLQUFLLEtBQUssVUFBVSxJQUFJLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDOUUsTUFBTSxJQUFJLFNBQVMsQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO1NBQzNGO1FBRUQsRUFBRSxDQUFDLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztZQUMxQixHQUFHLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3hCO1FBRUQscUJBQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLHFCQUFNLElBQUksR0FBVyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQU8sTUFBTSxDQUFDLElBQUksU0FBSSxHQUFLLENBQUM7UUFDMUUscUJBQU0sTUFBTSxHQUF1QyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUU3RSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFxQyxJQUFJLHFCQUFtQixDQUFDLENBQUM7U0FDakY7O1FBR0QsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNULElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQ3pCLEVBQUUsRUFBRSxLQUFHLEdBQUs7b0JBQ1osT0FBTyxFQUFFLEVBQUU7b0JBQ1gsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2lCQUNwQixDQUFDLENBQUM7U0FDTjtRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO29CQUNsQixFQUFFLEVBQUUsS0FBRyxHQUFLO29CQUNaLE9BQU8sRUFBRSxFQUFFO29CQUNYLElBQUksTUFBQTtpQkFDUCxDQUFDLENBQUM7U0FDTjtRQUVELFVBQVUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRztZQUNqQyxJQUFJLE1BQUE7WUFDSixNQUFNLFFBQUE7U0FDVCxDQUFDO1FBRUYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRztZQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDL0MsQ0FBQztLQUNMLENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuc3VyZVN0b3JlTWV0YWRhdGEsIEVtaXR0ZXJNZXRhRGF0YSwgRU1JVFRFUl9NRVRBX0tFWSwgQ3VzdG9tQWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcblxuLyoqXG4gKiBEZWNvcmF0ZXMgYSBtZXRob2Qgd2l0aCBhbiBlbWl0dGVyIGluZm9ybWF0aW9uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciBjb25maWd1cmluZyBzdGF0aWMgbWV0YWRhdGFcbiAqIEByZXR1cm5zIC0gRmFjdG9yeSBmb3IgZGVjb3JhdGluZyBtZXRob2RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEVtaXR0ZXIob3B0aW9ucz86IFBhcnRpYWw8RW1pdHRlck1ldGFEYXRhPik6IE1ldGhvZERlY29yYXRvciB7XG4gICAgcmV0dXJuIDxUPih0YXJnZXQ6IGFueSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFQ+KSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGVzY3JpcHRvci52YWx1ZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgdGFyZ2V0W2tleV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE9ubHkgc3RhdGljIGZ1bmN0aW9ucyBjYW4gYmUgZGVjb3JhdGVkIHdpdGggQEVtaXR0ZXIoKSBkZWNvcmF0b3JgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3ltYm9sJykge1xuICAgICAgICAgICAga2V5ID0ga2V5LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXRhID0gZW5zdXJlU3RvcmVNZXRhZGF0YSh0YXJnZXQpO1xuICAgICAgICBjb25zdCB0eXBlOiBzdHJpbmcgPSAob3B0aW9ucyAmJiBvcHRpb25zLnR5cGUpIHx8IGAke3RhcmdldC5uYW1lfS4ke2tleX1gO1xuICAgICAgICBjb25zdCBhY3Rpb246IEN1c3RvbUFjdGlvbjxhbnksIGFueT4gfCB1bmRlZmluZWQgPSBvcHRpb25zICYmIG9wdGlvbnMuYWN0aW9uO1xuXG4gICAgICAgIGlmIChtZXRhLmFjdGlvbnNbdHlwZV0pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTWV0aG9kIGRlY29yYXRlZCB3aXRoIHN1Y2ggdHlwZSBcXGAke3R5cGV9XFxgIGFscmVhZHkgZXhpc3RzYCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB0aGUgdXNlciBwYXNzZWQgY3VzdG9tIGFjdGlvblxuICAgICAgICBpZiAoYWN0aW9uKSB7XG4gICAgICAgICAgICBtZXRhLmFjdGlvbnNbYWN0aW9uLnR5cGVdID0gW3tcbiAgICAgICAgICAgICAgICBmbjogYCR7a2V5fWAsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge30sXG4gICAgICAgICAgICAgICAgdHlwZTogYWN0aW9uLnR5cGVcbiAgICAgICAgICAgIH1dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWV0YS5hY3Rpb25zW3R5cGVdID0gW3tcbiAgICAgICAgICAgICAgICBmbjogYCR7a2V5fWAsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge30sXG4gICAgICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICAgfV07XG4gICAgICAgIH1cblxuICAgICAgICBkZXNjcmlwdG9yLnZhbHVlW0VNSVRURVJfTUVUQV9LRVldID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGFjdGlvblxuICAgICAgICB9O1xuXG4gICAgICAgIHRhcmdldC5wcm90b3R5cGVba2V5XSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtrZXldLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTtcbiAgICAgICAgfTtcbiAgICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci8iLCJzb3VyY2VzIjpbImxpYi9jb3JlL2RlY29yYXRvcnMvZW1pdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBUS9GLE1BQU0sa0JBQWtCLE9BQWtDO0lBQ3RELE1BQU0sQ0FBQyxVQUFJLE1BQVcsRUFBRSxHQUFvQixFQUFFLFVBQXNDO1FBQ2hGLEVBQUUsQ0FBQyxDQUFDLE9BQU8sVUFBVSxDQUFDLEtBQUssS0FBSyxVQUFVLElBQUksT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztZQUM5RSxNQUFNLElBQUksU0FBUyxDQUFDLGtFQUFrRSxDQUFDLENBQUM7U0FDM0Y7UUFFRCxFQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzFCLEdBQUcsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDeEI7UUFFRCxxQkFBTSxJQUFJLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMscUJBQU0sSUFBSSxHQUFXLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBTyxNQUFNLENBQUMsSUFBSSxTQUFJLEdBQUssQ0FBQztRQUMxRSxxQkFBTSxNQUFNLEdBQW9CLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO1FBRTFELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXFDLElBQUkscUJBQW1CLENBQUMsQ0FBQztTQUNqRjs7UUFHRCxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztvQkFDekIsRUFBRSxFQUFFLEtBQUcsR0FBSztvQkFDWixPQUFPLEVBQUUsRUFBRTtvQkFDWCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7aUJBQ3BCLENBQUMsQ0FBQztTQUNOO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQ2xCLEVBQUUsRUFBRSxLQUFHLEdBQUs7b0JBQ1osT0FBTyxFQUFFLEVBQUU7b0JBQ1gsSUFBSSxNQUFBO2lCQUNQLENBQUMsQ0FBQztTQUNOO1FBRUQsVUFBVSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ2pDLElBQUksTUFBQTtZQUNKLE1BQU0sUUFBQTtTQUNULENBQUM7UUFFRixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHO1lBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUMvQyxDQUFDO0tBQ0wsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5zdXJlU3RvcmVNZXRhZGF0YSwgRW1pdHRlck1ldGFEYXRhLCBFTUlUVEVSX01FVEFfS0VZIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcblxuLyoqXG4gKiBEZWNvcmF0ZXMgYSBtZXRob2Qgd2l0aCBhbiBlbWl0dGVyIGluZm9ybWF0aW9uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciBjb25maWd1cmluZyBzdGF0aWMgbWV0YWRhdGFcbiAqIEByZXR1cm5zIC0gRmFjdG9yeSBmb3IgZGVjb3JhdGluZyBtZXRob2RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEVtaXR0ZXIob3B0aW9ucz86IFBhcnRpYWw8RW1pdHRlck1ldGFEYXRhPik6IE1ldGhvZERlY29yYXRvciB7XG4gICAgcmV0dXJuIDxUPih0YXJnZXQ6IGFueSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFQ+KSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGVzY3JpcHRvci52YWx1ZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgdGFyZ2V0W2tleV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE9ubHkgc3RhdGljIGZ1bmN0aW9ucyBjYW4gYmUgZGVjb3JhdGVkIHdpdGggQEVtaXR0ZXIoKSBkZWNvcmF0b3JgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3ltYm9sJykge1xuICAgICAgICAgICAga2V5ID0ga2V5LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXRhID0gZW5zdXJlU3RvcmVNZXRhZGF0YSh0YXJnZXQpO1xuICAgICAgICBjb25zdCB0eXBlOiBzdHJpbmcgPSAob3B0aW9ucyAmJiBvcHRpb25zLnR5cGUpIHx8IGAke3RhcmdldC5uYW1lfS4ke2tleX1gO1xuICAgICAgICBjb25zdCBhY3Rpb246IGFueSB8IHVuZGVmaW5lZCA9IG9wdGlvbnMgJiYgb3B0aW9ucy5hY3Rpb247XG5cbiAgICAgICAgaWYgKG1ldGEuYWN0aW9uc1t0eXBlXSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNZXRob2QgZGVjb3JhdGVkIHdpdGggc3VjaCB0eXBlIFxcYCR7dHlwZX1cXGAgYWxyZWFkeSBleGlzdHNgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZSB1c2VyIHBhc3NlZCBjdXN0b20gYWN0aW9uXG4gICAgICAgIGlmIChhY3Rpb24pIHtcbiAgICAgICAgICAgIG1ldGEuYWN0aW9uc1thY3Rpb24udHlwZV0gPSBbe1xuICAgICAgICAgICAgICAgIGZuOiBgJHtrZXl9YCxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICAgICAgICB0eXBlOiBhY3Rpb24udHlwZVxuICAgICAgICAgICAgfV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXRhLmFjdGlvbnNbdHlwZV0gPSBbe1xuICAgICAgICAgICAgICAgIGZuOiBgJHtrZXl9YCxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICB9XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlc2NyaXB0b3IudmFsdWVbRU1JVFRFUl9NRVRBX0tFWV0gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgYWN0aW9uXG4gICAgICAgIH07XG5cbiAgICAgICAgdGFyZ2V0LnByb3RvdHlwZVtrZXldID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0W2tleV0uYXBwbHkodGFyZ2V0LCBhcmd1bWVudHMpO1xuICAgICAgICB9O1xuICAgIH07XG59XG4iXX0=

@@ -5,17 +5,2 @@ /**

*/
/**
* Custom action interface
*
* \@property type - Static property that defines action type
* @record
* @template T, U
*/
export function CustomAction() { }
function CustomAction_tsickle_Closure_declarations() {
/** @type {?} */
CustomAction.prototype.type;
/* TODO: handle strange member:
new (payload?: U): T;
*/
}
// unsupported: template constraints.

@@ -80,2 +65,2 @@ /**

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMtY29udHJpYi9lbWl0dGVyLyIsInNvdXJjZXMiOlsibGliL2NvcmUvaW50ZXJuYWwvaW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0NBLE1BQU0sQ0FBQyxxQkFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDOzs7O0FBS3BDLE1BQU0sQ0FBQyxxQkFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQzs7Ozs7QUFFcEQsTUFBTSw4QkFBOEIsTUFBZ0I7SUFDaEQsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxxQkFBTSxlQUFlLEdBQUc7WUFDcEIsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRSxFQUFFO1lBQ1osSUFBSSxFQUFFLElBQUk7WUFDVixRQUFRLEVBQUUsRUFBRTtZQUNaLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUM7UUFDRixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztLQUN2RTtJQUNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUNuQzs7Ozs7QUFFRCwwQkFBMEIsTUFBZ0I7SUFDdEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztDQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBDdXN0b20gYWN0aW9uIGludGVyZmFjZVxuICpcbiAqIEBwcm9wZXJ0eSB0eXBlIC0gU3RhdGljIHByb3BlcnR5IHRoYXQgZGVmaW5lcyBhY3Rpb24gdHlwZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUFjdGlvbjxUID0gYW55LCBVID0gYW55PiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIG5ldyAocGF5bG9hZD86IFUpOiBUO1xufVxuXG4vKipcbiAqIFN0YXRpYyBtZXRhZGF0YSBmb3IgdGhlIGVtaXR0ZXIgZnVuY3Rpb25cbiAqXG4gKiBAcHJvcGVydHkgdHlwZSAtIEFjdGlvbiB0eXBlIChvcHRpb25hbClcbiAqIEBwcm9wZXJ0eSBhY3Rpb24gLSBDdXN0b20gYWN0aW9uIHRvIGRpc3BhdGNoIChvcHRpb25hbClcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWl0dGVyTWV0YURhdGE8VCBleHRlbmRzIEZ1bmN0aW9uID0gYW55PiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGFjdGlvbjogQ3VzdG9tQWN0aW9uPFQ+O1xufVxuXG4vKipcbiAqIFBsYWluIG9iamVjdCB0aGF0IGNvbnRhaW5zIGBlbWl0YCBmdW5jdGlvbiB0aGF0IGRpc3BhdGNoZXMgcGF5bG9hZFxuICpcbiAqIEBwcm9wZXJ0eSBlbWl0IC0gRnVuY3Rpb24gdGhhdCBkaXNwYXRjaGVzIHBheWxvYWQgdW5kZXIgdGhlIGhvb2RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWl0dGFibGU8VCA9IGFueSwgVSA9IGFueT4ge1xuICAgIGVtaXQocGF5bG9hZD86IFQpOiBPYnNlcnZhYmxlPFU+O1xufVxuXG5leHBvcnQgY29uc3QgTUVUQV9LRVkgPSAnTkdYU19NRVRBJztcblxuLyoqXG4gKiBAY29uc3QgLSBUaGlzIGNvbnN0YW50IGlzIGEga2V5IGZvciBkZWZpbmluZyBzdGF0aWMgbWV0YWRhdGEgdXNpbmcgYEBFbWl0dGVyYFxuICovXG5leHBvcnQgY29uc3QgRU1JVFRFUl9NRVRBX0tFWSA9ICdOR1hTX0VNSVRURVJfTUVUQSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVTdG9yZU1ldGFkYXRhKHRhcmdldDogRnVuY3Rpb24pIHtcbiAgICBpZiAoIXRhcmdldC5oYXNPd25Qcm9wZXJ0eShNRVRBX0tFWSkpIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdE1ldGFkYXRhID0ge1xuICAgICAgICAgICAgbmFtZTogbnVsbCxcbiAgICAgICAgICAgIGFjdGlvbnM6IHt9LFxuICAgICAgICAgICAgZGVmYXVsdHM6IHt9LFxuICAgICAgICAgICAgcGF0aDogbnVsbCxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgIGluc3RhbmNlOiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIE1FVEFfS0VZLCB7IHZhbHVlOiBkZWZhdWx0TWV0YWRhdGEgfSk7XG4gICAgfVxuICAgIHJldHVybiBnZXRTdG9yZU1ldGFkYXRhKHRhcmdldCk7XG59XG5cbmZ1bmN0aW9uIGdldFN0b3JlTWV0YWRhdGEodGFyZ2V0OiBGdW5jdGlvbikge1xuICAgIHJldHVybiB0YXJnZXRbTUVUQV9LRVldO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMtY29udHJpYi9lbWl0dGVyLyIsInNvdXJjZXMiOlsibGliL2NvcmUvaW50ZXJuYWwvaW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0JBLE1BQU0sQ0FBQyxxQkFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDOzs7O0FBS3BDLE1BQU0sQ0FBQyxxQkFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQzs7Ozs7QUFFcEQsTUFBTSw4QkFBOEIsTUFBZ0I7SUFDaEQsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxxQkFBTSxlQUFlLEdBQUc7WUFDcEIsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRSxFQUFFO1lBQ1osSUFBSSxFQUFFLElBQUk7WUFDVixRQUFRLEVBQUUsRUFBRTtZQUNaLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUM7UUFDRixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztLQUN2RTtJQUNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUNuQzs7Ozs7QUFFRCwwQkFBMEIsTUFBZ0I7SUFDdEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztDQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFN0YXRpYyBtZXRhZGF0YSBmb3IgdGhlIGVtaXR0ZXIgZnVuY3Rpb25cbiAqXG4gKiBAcHJvcGVydHkgdHlwZSAtIEFjdGlvbiB0eXBlIChvcHRpb25hbClcbiAqIEBwcm9wZXJ0eSBhY3Rpb24gLSBDdXN0b20gYWN0aW9uIHRvIGRpc3BhdGNoIChvcHRpb25hbClcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWl0dGVyTWV0YURhdGE8VCBleHRlbmRzIEZ1bmN0aW9uID0gYW55PiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGFjdGlvbjogVHlwZTxUPjtcbn1cblxuLyoqXG4gKiBQbGFpbiBvYmplY3QgdGhhdCBjb250YWlucyBgZW1pdGAgZnVuY3Rpb24gdGhhdCBkaXNwYXRjaGVzIHBheWxvYWRcbiAqXG4gKiBAcHJvcGVydHkgZW1pdCAtIEZ1bmN0aW9uIHRoYXQgZGlzcGF0Y2hlcyBwYXlsb2FkIHVuZGVyIHRoZSBob29kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW1pdHRhYmxlPFQgPSBhbnksIFUgPSBhbnk+IHtcbiAgICBlbWl0KHBheWxvYWQ/OiBUKTogT2JzZXJ2YWJsZTxVPjtcbn1cblxuZXhwb3J0IGNvbnN0IE1FVEFfS0VZID0gJ05HWFNfTUVUQSc7XG5cbi8qKlxuICogQGNvbnN0IC0gVGhpcyBjb25zdGFudCBpcyBhIGtleSBmb3IgZGVmaW5pbmcgc3RhdGljIG1ldGFkYXRhIHVzaW5nIGBARW1pdHRlcmBcbiAqL1xuZXhwb3J0IGNvbnN0IEVNSVRURVJfTUVUQV9LRVkgPSAnTkdYU19FTUlUVEVSX01FVEEnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlU3RvcmVNZXRhZGF0YSh0YXJnZXQ6IEZ1bmN0aW9uKSB7XG4gICAgaWYgKCF0YXJnZXQuaGFzT3duUHJvcGVydHkoTUVUQV9LRVkpKSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRNZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIG5hbWU6IG51bGwsXG4gICAgICAgICAgICBhY3Rpb25zOiB7fSxcbiAgICAgICAgICAgIGRlZmF1bHRzOiB7fSxcbiAgICAgICAgICAgIHBhdGg6IG51bGwsXG4gICAgICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgICAgICBpbnN0YW5jZTogbnVsbFxuICAgICAgICB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBNRVRBX0tFWSwgeyB2YWx1ZTogZGVmYXVsdE1ldGFkYXRhIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0U3RvcmVNZXRhZGF0YSh0YXJnZXQpO1xufVxuXG5mdW5jdGlvbiBnZXRTdG9yZU1ldGFkYXRhKHRhcmdldDogRnVuY3Rpb24pIHtcbiAgICByZXR1cm4gdGFyZ2V0W01FVEFfS0VZXTtcbn1cbiJdfQ==

@@ -46,2 +46,2 @@ /**

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMtY29udHJpYi9lbWl0dGVyLyIsInNvdXJjZXMiOlsibGliL2VtaXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUlwQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQThCLE1BQU0sMkJBQTJCLENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztJQUd4QixxQ0FBSzs7Ozs7Ozs7O0lBS3pCLDJCQUFPOzs7OztjQUFtQixPQUFpQjs7UUFDOUMscUJBQU0sWUFBWSxHQUFvQixPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVoRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO1NBQ3JGO1FBRUQsTUFBTSxDQUFDO1lBQ0gsSUFBSSxFQUFFLFVBQUMsT0FBVztnQkFDZCxhQUFhLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZDLHFCQUFNLE1BQU0sR0FBOEIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO2dCQUNwRyxNQUFNLENBQUMsS0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQzdDO1NBQ0osQ0FBQzs7O2dCQW5CVCxVQUFVOztvQkFSWDtFQVMrQixLQUFLO1NBQXZCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBFTUlUVEVSX01FVEFfS0VZLCBFbWl0dGFibGUsIEVtaXR0ZXJNZXRhRGF0YSB9IGZyb20gJy4vY29yZS9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgRW1pdHRlckFjdGlvbiB9IGZyb20gJy4vY29yZS9hY3Rpb25zL2FjdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRW1pdFN0b3JlIGV4dGVuZHMgU3RvcmUge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBlbWl0dGVyIC0gUmVmZXJlbmNlIHRvIHRoZSBzdGF0aWMgZnVuY3Rpb24gZnJvbSB0aGUgc3RvcmVcbiAgICAgKiBAcmV0dXJucyAtIEEgcGxhaW4gb2JqZWN0IHdpdGggYW4gYGVtaXRgIGZ1bmN0aW9uIGZvciBjYWxsaW5nIGVtaXR0ZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgZW1pdHRlcjxUID0gYW55LCBVID0gYW55PihlbWl0dGVyOiBGdW5jdGlvbik6IEVtaXR0YWJsZTxULCBVPiB7XG4gICAgICAgIGNvbnN0IGVtaXR0ZXJFdmVudDogRW1pdHRlck1ldGFEYXRhID0gZW1pdHRlcltFTUlUVEVSX01FVEFfS0VZXTtcblxuICAgICAgICBpZiAoIWVtaXR0ZXJFdmVudCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbWl0dGVyIG1ldGhvZHMgc2hvdWxkIGJlIGRlY29yYXRlZCB1c2luZyBARW1pdHRlcigpIGRlY29yYXRvcicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVtaXQ6IChwYXlsb2FkPzogVCk6IE9ic2VydmFibGU8VT4gPT4ge1xuICAgICAgICAgICAgICAgIEVtaXR0ZXJBY3Rpb24udHlwZSA9IGVtaXR0ZXJFdmVudC50eXBlO1xuICAgICAgICAgICAgICAgIGNvbnN0IEFjdGlvbjogVHlwZTxhbnkgfCBFbWl0dGVyQWN0aW9uPiA9IGVtaXR0ZXJFdmVudC5hY3Rpb24gPyBlbWl0dGVyRXZlbnQuYWN0aW9uIDogRW1pdHRlckFjdGlvbjtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChuZXcgQWN0aW9uKHBheWxvYWQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMtY29udHJpYi9lbWl0dGVyLyIsInNvdXJjZXMiOlsibGliL2VtaXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUlwQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQThCLE1BQU0sMkJBQTJCLENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztJQUd4QixxQ0FBSzs7Ozs7Ozs7O0lBS3pCLDJCQUFPOzs7OztjQUFtQixPQUFpQjs7UUFDOUMscUJBQU0sWUFBWSxHQUFvQixPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVoRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO1NBQ3JGO1FBRUQsTUFBTSxDQUFDO1lBQ0gsSUFBSSxFQUFFLFVBQUMsT0FBVztnQkFDZCxhQUFhLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZDLHFCQUFNLE1BQU0sR0FBK0IsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO2dCQUNyRyxNQUFNLENBQUMsS0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQzdDO1NBQ0osQ0FBQzs7O2dCQW5CVCxVQUFVOztvQkFSWDtFQVMrQixLQUFLO1NBQXZCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBFTUlUVEVSX01FVEFfS0VZLCBFbWl0dGFibGUsIEVtaXR0ZXJNZXRhRGF0YSB9IGZyb20gJy4vY29yZS9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgRW1pdHRlckFjdGlvbiB9IGZyb20gJy4vY29yZS9hY3Rpb25zL2FjdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRW1pdFN0b3JlIGV4dGVuZHMgU3RvcmUge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBlbWl0dGVyIC0gUmVmZXJlbmNlIHRvIHRoZSBzdGF0aWMgZnVuY3Rpb24gZnJvbSB0aGUgc3RvcmVcbiAgICAgKiBAcmV0dXJucyAtIEEgcGxhaW4gb2JqZWN0IHdpdGggYW4gYGVtaXRgIGZ1bmN0aW9uIGZvciBjYWxsaW5nIGVtaXR0ZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgZW1pdHRlcjxUID0gYW55LCBVID0gYW55PihlbWl0dGVyOiBGdW5jdGlvbik6IEVtaXR0YWJsZTxULCBVPiB7XG4gICAgICAgIGNvbnN0IGVtaXR0ZXJFdmVudDogRW1pdHRlck1ldGFEYXRhID0gZW1pdHRlcltFTUlUVEVSX01FVEFfS0VZXTtcblxuICAgICAgICBpZiAoIWVtaXR0ZXJFdmVudCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbWl0dGVyIG1ldGhvZHMgc2hvdWxkIGJlIGRlY29yYXRlZCB1c2luZyBARW1pdHRlcigpIGRlY29yYXRvcicpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVtaXQ6IChwYXlsb2FkPzogVCk6IE9ic2VydmFibGU8VT4gPT4ge1xuICAgICAgICAgICAgICAgIEVtaXR0ZXJBY3Rpb24udHlwZSA9IGVtaXR0ZXJFdmVudC50eXBlO1xuICAgICAgICAgICAgICAgIGNvbnN0IEFjdGlvbjogYW55IHwgdHlwZW9mIEVtaXR0ZXJBY3Rpb24gPSBlbWl0dGVyRXZlbnQuYWN0aW9uID8gZW1pdHRlckV2ZW50LmFjdGlvbiA6IEVtaXR0ZXJBY3Rpb247XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2gobmV3IEFjdGlvbihwYXlsb2FkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxufVxuIl19

@@ -227,2 +227,2 @@ import { Injectable, Injector, NgModule } from '@angular/core';

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1jb250cmliLWVtaXR0ZXIuanMubWFwIiwic291cmNlcyI6WyJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvY29yZS9pbnRlcm5hbC9pbnRlcm5hbHMudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvY29yZS9kZWNvcmF0b3JzL2VtaXR0ZXIudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvY29yZS9hY3Rpb25zL2FjdGlvbnMudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvZW1pdC5zZXJ2aWNlLnRzIiwibmc6Ly9Abmd4cy1jb250cmliL2VtaXR0ZXIvbGliL2NvcmUvZGVjb3JhdG9ycy9wYXlsb2FkLWVtaXR0ZXIudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvZW1pdC5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEN1c3RvbSBhY3Rpb24gaW50ZXJmYWNlXG4gKlxuICogQHByb3BlcnR5IHR5cGUgLSBTdGF0aWMgcHJvcGVydHkgdGhhdCBkZWZpbmVzIGFjdGlvbiB0eXBlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQWN0aW9uPFQgPSBhbnksIFUgPSBhbnk+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgbmV3IChwYXlsb2FkPzogVSk6IFQ7XG59XG5cbi8qKlxuICogU3RhdGljIG1ldGFkYXRhIGZvciB0aGUgZW1pdHRlciBmdW5jdGlvblxuICpcbiAqIEBwcm9wZXJ0eSB0eXBlIC0gQWN0aW9uIHR5cGUgKG9wdGlvbmFsKVxuICogQHByb3BlcnR5IGFjdGlvbiAtIEN1c3RvbSBhY3Rpb24gdG8gZGlzcGF0Y2ggKG9wdGlvbmFsKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtaXR0ZXJNZXRhRGF0YTxUIGV4dGVuZHMgRnVuY3Rpb24gPSBhbnk+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgYWN0aW9uOiBDdXN0b21BY3Rpb248VD47XG59XG5cbi8qKlxuICogUGxhaW4gb2JqZWN0IHRoYXQgY29udGFpbnMgYGVtaXRgIGZ1bmN0aW9uIHRoYXQgZGlzcGF0Y2hlcyBwYXlsb2FkXG4gKlxuICogQHByb3BlcnR5IGVtaXQgLSBGdW5jdGlvbiB0aGF0IGRpc3BhdGNoZXMgcGF5bG9hZCB1bmRlciB0aGUgaG9vZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtaXR0YWJsZTxUID0gYW55LCBVID0gYW55PiB7XG4gICAgZW1pdChwYXlsb2FkPzogVCk6IE9ic2VydmFibGU8VT47XG59XG5cbmV4cG9ydCBjb25zdCBNRVRBX0tFWSA9ICdOR1hTX01FVEEnO1xuXG4vKipcbiAqIEBjb25zdCAtIFRoaXMgY29uc3RhbnQgaXMgYSBrZXkgZm9yIGRlZmluaW5nIHN0YXRpYyBtZXRhZGF0YSB1c2luZyBgQEVtaXR0ZXJgXG4gKi9cbmV4cG9ydCBjb25zdCBFTUlUVEVSX01FVEFfS0VZID0gJ05HWFNfRU1JVFRFUl9NRVRBJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVN0b3JlTWV0YWRhdGEodGFyZ2V0OiBGdW5jdGlvbikge1xuICAgIGlmICghdGFyZ2V0Lmhhc093blByb3BlcnR5KE1FVEFfS0VZKSkge1xuICAgICAgICBjb25zdCBkZWZhdWx0TWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBuYW1lOiBudWxsLFxuICAgICAgICAgICAgYWN0aW9uczoge30sXG4gICAgICAgICAgICBkZWZhdWx0czoge30sXG4gICAgICAgICAgICBwYXRoOiBudWxsLFxuICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICAgICAgaW5zdGFuY2U6IG51bGxcbiAgICAgICAgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgTUVUQV9LRVksIHsgdmFsdWU6IGRlZmF1bHRNZXRhZGF0YSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGdldFN0b3JlTWV0YWRhdGEodGFyZ2V0KTtcbn1cblxuZnVuY3Rpb24gZ2V0U3RvcmVNZXRhZGF0YSh0YXJnZXQ6IEZ1bmN0aW9uKSB7XG4gICAgcmV0dXJuIHRhcmdldFtNRVRBX0tFWV07XG59XG4iLCJpbXBvcnQgeyBlbnN1cmVTdG9yZU1ldGFkYXRhLCBFbWl0dGVyTWV0YURhdGEsIEVNSVRURVJfTUVUQV9LRVksIEN1c3RvbUFjdGlvbiB9IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XG5cbi8qKlxuICogRGVjb3JhdGVzIGEgbWV0aG9kIHdpdGggYW4gZW1pdHRlciBpbmZvcm1hdGlvblxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgc3RhdGljIG1ldGFkYXRhXG4gKiBAcmV0dXJucyAtIEZhY3RvcnkgZm9yIGRlY29yYXRpbmcgbWV0aG9kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFbWl0dGVyKG9wdGlvbnM/OiBQYXJ0aWFsPEVtaXR0ZXJNZXRhRGF0YT4pOiBNZXRob2REZWNvcmF0b3Ige1xuICAgIHJldHVybiA8VD4odGFyZ2V0OiBhbnksIGtleTogc3RyaW5nIHwgc3ltYm9sLCBkZXNjcmlwdG9yOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxUPikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGRlc2NyaXB0b3IudmFsdWUgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHRhcmdldFtrZXldICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBPbmx5IHN0YXRpYyBmdW5jdGlvbnMgY2FuIGJlIGRlY29yYXRlZCB3aXRoIEBFbWl0dGVyKCkgZGVjb3JhdG9yYCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N5bWJvbCcpIHtcbiAgICAgICAgICAgIGtleSA9IGtleS50b1N0cmluZygpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWV0YSA9IGVuc3VyZVN0b3JlTWV0YWRhdGEodGFyZ2V0KTtcbiAgICAgICAgY29uc3QgdHlwZTogc3RyaW5nID0gKG9wdGlvbnMgJiYgb3B0aW9ucy50eXBlKSB8fCBgJHt0YXJnZXQubmFtZX0uJHtrZXl9YDtcbiAgICAgICAgY29uc3QgYWN0aW9uOiBDdXN0b21BY3Rpb248YW55LCBhbnk+IHwgdW5kZWZpbmVkID0gb3B0aW9ucyAmJiBvcHRpb25zLmFjdGlvbjtcblxuICAgICAgICBpZiAobWV0YS5hY3Rpb25zW3R5cGVdKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1ldGhvZCBkZWNvcmF0ZWQgd2l0aCBzdWNoIHR5cGUgXFxgJHt0eXBlfVxcYCBhbHJlYWR5IGV4aXN0c2ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlIHVzZXIgcGFzc2VkIGN1c3RvbSBhY3Rpb25cbiAgICAgICAgaWYgKGFjdGlvbikge1xuICAgICAgICAgICAgbWV0YS5hY3Rpb25zW2FjdGlvbi50eXBlXSA9IFt7XG4gICAgICAgICAgICAgICAgZm46IGAke2tleX1gLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHt9LFxuICAgICAgICAgICAgICAgIHR5cGU6IGFjdGlvbi50eXBlXG4gICAgICAgICAgICB9XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1ldGEuYWN0aW9uc1t0eXBlXSA9IFt7XG4gICAgICAgICAgICAgICAgZm46IGAke2tleX1gLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHt9LFxuICAgICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgIH1dO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVzY3JpcHRvci52YWx1ZVtFTUlUVEVSX01FVEFfS0VZXSA9IHtcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBhY3Rpb25cbiAgICAgICAgfTtcblxuICAgICAgICB0YXJnZXQucHJvdG90eXBlW2tleV0gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXRba2V5XS5hcHBseSh0YXJnZXQsIGFyZ3VtZW50cyk7XG4gICAgICAgIH07XG4gICAgfTtcbn1cbiIsIi8qKlxuICogVGhpcyBjbGFzcyBpcyB1c2VkIGFzIGEgZGVmYXVsdCBhY3Rpb24gd2hlbiB0aGUgdXNlciBkb2Vzbid0IHBhc3MgYW55IGN1c3RvbSBhY3Rpb24gYXMgYW4gYXJndW1lbnRcbiAqL1xuZXhwb3J0IGNsYXNzIEVtaXR0ZXJBY3Rpb248VCA9IGFueT4ge1xuICAgIC8qKlxuICAgICAqIEFjdGlvbiB0eXBlXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyB0eXBlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgRW1pdHRlckFjdGlvbiBpbnN0YW5jZVxuICAgICAqXG4gICAgICogQHBhcmFtIHBheWxvYWQgLSBEYXRhIHRvIGRpc3BhdGNoXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ/OiBUKSB7fVxufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRU1JVFRFUl9NRVRBX0tFWSwgRW1pdHRhYmxlLCBFbWl0dGVyTWV0YURhdGEgfSBmcm9tICcuL2NvcmUvaW50ZXJuYWwvaW50ZXJuYWxzJztcbmltcG9ydCB7IEVtaXR0ZXJBY3Rpb24gfSBmcm9tICcuL2NvcmUvYWN0aW9ucy9hY3Rpb25zJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVtaXRTdG9yZSBleHRlbmRzIFN0b3JlIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gZW1pdHRlciAtIFJlZmVyZW5jZSB0byB0aGUgc3RhdGljIGZ1bmN0aW9uIGZyb20gdGhlIHN0b3JlXG4gICAgICogQHJldHVybnMgLSBBIHBsYWluIG9iamVjdCB3aXRoIGFuIGBlbWl0YCBmdW5jdGlvbiBmb3IgY2FsbGluZyBlbWl0dGVyXG4gICAgICovXG4gICAgcHVibGljIGVtaXR0ZXI8VCA9IGFueSwgVSA9IGFueT4oZW1pdHRlcjogRnVuY3Rpb24pOiBFbWl0dGFibGU8VCwgVT4ge1xuICAgICAgICBjb25zdCBlbWl0dGVyRXZlbnQ6IEVtaXR0ZXJNZXRhRGF0YSA9IGVtaXR0ZXJbRU1JVFRFUl9NRVRBX0tFWV07XG5cbiAgICAgICAgaWYgKCFlbWl0dGVyRXZlbnQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRW1pdHRlciBtZXRob2RzIHNob3VsZCBiZSBkZWNvcmF0ZWQgdXNpbmcgQEVtaXR0ZXIoKSBkZWNvcmF0b3InKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbWl0OiAocGF5bG9hZD86IFQpOiBPYnNlcnZhYmxlPFU+ID0+IHtcbiAgICAgICAgICAgICAgICBFbWl0dGVyQWN0aW9uLnR5cGUgPSBlbWl0dGVyRXZlbnQudHlwZTtcbiAgICAgICAgICAgICAgICBjb25zdCBBY3Rpb246IFR5cGU8YW55IHwgRW1pdHRlckFjdGlvbj4gPSBlbWl0dGVyRXZlbnQuYWN0aW9uID8gZW1pdHRlckV2ZW50LmFjdGlvbiA6IEVtaXR0ZXJBY3Rpb247XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2gobmV3IEFjdGlvbihwYXlsb2FkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRW1pdFN0b3JlIH0gZnJvbSAnLi4vLi4vZW1pdC5zZXJ2aWNlJztcblxuLyoqXG4gKiBBbGxvd3MgdGhlIGBAUGF5bG9hZEVtaXR0ZXIoKWAgZGVjb3JhdG9yIHRvIGdldCBhY2Nlc3MgdG8gdGhlIERJIHN0b3JlXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQYXlsb2FkRW1pdHRlckZhY3Rvcnkge1xuICAgIC8qKlxuICAgICAqIEluamVjdG9yIGZvciBhY2Nlc3NpbmcgRElcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGluamVjdG9yOiBJbmplY3RvciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBQYXlsb2FkRW1pdHRlckZhY3RvcnkgaW5zdGFuY2VcbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbmplY3RvciAtIFJvb3QgaW5qZWN0b3JcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgUGF5bG9hZEVtaXR0ZXJGYWN0b3J5LmluamVjdG9yID0gaW5qZWN0b3I7XG4gICAgfVxufVxuXG4vKipcbiAqIERlY29yYXRlcyBhIHByb3BlcnR5IGFuZCBkZWZpbmVzIG5ldyBnZXR0ZXJcbiAqXG4gKiBAcGFyYW0gZW1pdHRlciAtIFJlZmVyZW5jZSB0byB0aGUgc3RhdGljIGZ1bmN0aW9uXG4gKiBAcmV0dXJucyAtIEZhY3RvcnkgZnVuY3Rpb24gZm9yIGRlY29yYXRpbmcgcHJvcGVydGllc1xuICovXG5leHBvcnQgZnVuY3Rpb24gUGF5bG9hZEVtaXR0ZXIoZW1pdHRlcjogRnVuY3Rpb24pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gICAgcmV0dXJuICh0YXJnZXQ6IE9iamVjdCwga2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCB7XG4gICAgICAgICAgICBnZXQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdG9yZSA9IFBheWxvYWRFbWl0dGVyRmFjdG9yeS5pbmplY3RvciEuZ2V0PEVtaXRTdG9yZT4oRW1pdFN0b3JlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RvcmUuZW1pdHRlcihlbWl0dGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBheWxvYWRFbWl0dGVyRmFjdG9yeSB9IGZyb20gJy4vY29yZS9kZWNvcmF0b3JzL3BheWxvYWQtZW1pdHRlcic7XG5pbXBvcnQgeyBFbWl0U3RvcmUgfSBmcm9tICcuL2VtaXQuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFBheWxvYWRFbWl0dGVyRmFjdG9yeSxcbiAgICAgICAgRW1pdFN0b3JlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hzRW1pdFBsdWdpbk1vZHVsZSB7XG4gICAgY29uc3RydWN0b3IocGF5bG9hZEVtaXR0ZXJGYWN0b3J5OiBQYXlsb2FkRW1pdHRlckZhY3RvcnkpIHt9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyAtIEEgd3JhcHBlciBhcm91bmQgYE5nTW9kdWxlYFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neHNFbWl0UGx1Z2luTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogTmd4c0VtaXRQbHVnaW5Nb2R1bGVcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQWdDTyx1QkFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDOzs7O0FBS3BDLEFBQU8sdUJBQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUM7Ozs7O0FBRXBELDZCQUFvQyxNQUFnQjtJQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNsQyx1QkFBTSxlQUFlLEdBQUc7WUFDcEIsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRSxFQUFFO1lBQ1osSUFBSSxFQUFFLElBQUk7WUFDVixR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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1jb250cmliLWVtaXR0ZXIuanMubWFwIiwic291cmNlcyI6WyJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvY29yZS9pbnRlcm5hbC9pbnRlcm5hbHMudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvY29yZS9kZWNvcmF0b3JzL2VtaXR0ZXIudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvY29yZS9hY3Rpb25zL2FjdGlvbnMudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvZW1pdC5zZXJ2aWNlLnRzIiwibmc6Ly9Abmd4cy1jb250cmliL2VtaXR0ZXIvbGliL2NvcmUvZGVjb3JhdG9ycy9wYXlsb2FkLWVtaXR0ZXIudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvZW1pdC5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogU3RhdGljIG1ldGFkYXRhIGZvciB0aGUgZW1pdHRlciBmdW5jdGlvblxuICpcbiAqIEBwcm9wZXJ0eSB0eXBlIC0gQWN0aW9uIHR5cGUgKG9wdGlvbmFsKVxuICogQHByb3BlcnR5IGFjdGlvbiAtIEN1c3RvbSBhY3Rpb24gdG8gZGlzcGF0Y2ggKG9wdGlvbmFsKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtaXR0ZXJNZXRhRGF0YTxUIGV4dGVuZHMgRnVuY3Rpb24gPSBhbnk+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgYWN0aW9uOiBUeXBlPFQ+O1xufVxuXG4vKipcbiAqIFBsYWluIG9iamVjdCB0aGF0IGNvbnRhaW5zIGBlbWl0YCBmdW5jdGlvbiB0aGF0IGRpc3BhdGNoZXMgcGF5bG9hZFxuICpcbiAqIEBwcm9wZXJ0eSBlbWl0IC0gRnVuY3Rpb24gdGhhdCBkaXNwYXRjaGVzIHBheWxvYWQgdW5kZXIgdGhlIGhvb2RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWl0dGFibGU8VCA9IGFueSwgVSA9IGFueT4ge1xuICAgIGVtaXQocGF5bG9hZD86IFQpOiBPYnNlcnZhYmxlPFU+O1xufVxuXG5leHBvcnQgY29uc3QgTUVUQV9LRVkgPSAnTkdYU19NRVRBJztcblxuLyoqXG4gKiBAY29uc3QgLSBUaGlzIGNvbnN0YW50IGlzIGEga2V5IGZvciBkZWZpbmluZyBzdGF0aWMgbWV0YWRhdGEgdXNpbmcgYEBFbWl0dGVyYFxuICovXG5leHBvcnQgY29uc3QgRU1JVFRFUl9NRVRBX0tFWSA9ICdOR1hTX0VNSVRURVJfTUVUQSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVTdG9yZU1ldGFkYXRhKHRhcmdldDogRnVuY3Rpb24pIHtcbiAgICBpZiAoIXRhcmdldC5oYXNPd25Qcm9wZXJ0eShNRVRBX0tFWSkpIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdE1ldGFkYXRhID0ge1xuICAgICAgICAgICAgbmFtZTogbnVsbCxcbiAgICAgICAgICAgIGFjdGlvbnM6IHt9LFxuICAgICAgICAgICAgZGVmYXVsdHM6IHt9LFxuICAgICAgICAgICAgcGF0aDogbnVsbCxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgIGluc3RhbmNlOiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIE1FVEFfS0VZLCB7IHZhbHVlOiBkZWZhdWx0TWV0YWRhdGEgfSk7XG4gICAgfVxuICAgIHJldHVybiBnZXRTdG9yZU1ldGFkYXRhKHRhcmdldCk7XG59XG5cbmZ1bmN0aW9uIGdldFN0b3JlTWV0YWRhdGEodGFyZ2V0OiBGdW5jdGlvbikge1xuICAgIHJldHVybiB0YXJnZXRbTUVUQV9LRVldO1xufVxuIiwiaW1wb3J0IHsgZW5zdXJlU3RvcmVNZXRhZGF0YSwgRW1pdHRlck1ldGFEYXRhLCBFTUlUVEVSX01FVEFfS0VZIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcblxuLyoqXG4gKiBEZWNvcmF0ZXMgYSBtZXRob2Qgd2l0aCBhbiBlbWl0dGVyIGluZm9ybWF0aW9uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciBjb25maWd1cmluZyBzdGF0aWMgbWV0YWRhdGFcbiAqIEByZXR1cm5zIC0gRmFjdG9yeSBmb3IgZGVjb3JhdGluZyBtZXRob2RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEVtaXR0ZXIob3B0aW9ucz86IFBhcnRpYWw8RW1pdHRlck1ldGFEYXRhPik6IE1ldGhvZERlY29yYXRvciB7XG4gICAgcmV0dXJuIDxUPih0YXJnZXQ6IGFueSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFQ+KSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGVzY3JpcHRvci52YWx1ZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgdGFyZ2V0W2tleV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE9ubHkgc3RhdGljIGZ1bmN0aW9ucyBjYW4gYmUgZGVjb3JhdGVkIHdpdGggQEVtaXR0ZXIoKSBkZWNvcmF0b3JgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3ltYm9sJykge1xuICAgICAgICAgICAga2V5ID0ga2V5LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXRhID0gZW5zdXJlU3RvcmVNZXRhZGF0YSh0YXJnZXQpO1xuICAgICAgICBjb25zdCB0eXBlOiBzdHJpbmcgPSAob3B0aW9ucyAmJiBvcHRpb25zLnR5cGUpIHx8IGAke3RhcmdldC5uYW1lfS4ke2tleX1gO1xuICAgICAgICBjb25zdCBhY3Rpb246IGFueSB8IHVuZGVmaW5lZCA9IG9wdGlvbnMgJiYgb3B0aW9ucy5hY3Rpb247XG5cbiAgICAgICAgaWYgKG1ldGEuYWN0aW9uc1t0eXBlXSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNZXRob2QgZGVjb3JhdGVkIHdpdGggc3VjaCB0eXBlIFxcYCR7dHlwZX1cXGAgYWxyZWFkeSBleGlzdHNgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZSB1c2VyIHBhc3NlZCBjdXN0b20gYWN0aW9uXG4gICAgICAgIGlmIChhY3Rpb24pIHtcbiAgICAgICAgICAgIG1ldGEuYWN0aW9uc1thY3Rpb24udHlwZV0gPSBbe1xuICAgICAgICAgICAgICAgIGZuOiBgJHtrZXl9YCxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICAgICAgICB0eXBlOiBhY3Rpb24udHlwZVxuICAgICAgICAgICAgfV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXRhLmFjdGlvbnNbdHlwZV0gPSBbe1xuICAgICAgICAgICAgICAgIGZuOiBgJHtrZXl9YCxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICB9XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlc2NyaXB0b3IudmFsdWVbRU1JVFRFUl9NRVRBX0tFWV0gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgYWN0aW9uXG4gICAgICAgIH07XG5cbiAgICAgICAgdGFyZ2V0LnByb3RvdHlwZVtrZXldID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0W2tleV0uYXBwbHkodGFyZ2V0LCBhcmd1bWVudHMpO1xuICAgICAgICB9O1xuICAgIH07XG59XG4iLCIvKipcbiAqIFRoaXMgY2xhc3MgaXMgdXNlZCBhcyBhIGRlZmF1bHQgYWN0aW9uIHdoZW4gdGhlIHVzZXIgZG9lc24ndCBwYXNzIGFueSBjdXN0b20gYWN0aW9uIGFzIGFuIGFyZ3VtZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBFbWl0dGVyQWN0aW9uPFQgPSBhbnk+IHtcbiAgICAvKipcbiAgICAgKiBBY3Rpb24gdHlwZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgdHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIEVtaXR0ZXJBY3Rpb24gaW5zdGFuY2VcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXlsb2FkIC0gRGF0YSB0byBkaXNwYXRjaFxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkPzogVCkge31cbn1cbiIsImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEVNSVRURVJfTUVUQV9LRVksIEVtaXR0YWJsZSwgRW1pdHRlck1ldGFEYXRhIH0gZnJvbSAnLi9jb3JlL2ludGVybmFsL2ludGVybmFscyc7XG5pbXBvcnQgeyBFbWl0dGVyQWN0aW9uIH0gZnJvbSAnLi9jb3JlL2FjdGlvbnMvYWN0aW9ucyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFbWl0U3RvcmUgZXh0ZW5kcyBTdG9yZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIGVtaXR0ZXIgLSBSZWZlcmVuY2UgdG8gdGhlIHN0YXRpYyBmdW5jdGlvbiBmcm9tIHRoZSBzdG9yZVxuICAgICAqIEByZXR1cm5zIC0gQSBwbGFpbiBvYmplY3Qgd2l0aCBhbiBgZW1pdGAgZnVuY3Rpb24gZm9yIGNhbGxpbmcgZW1pdHRlclxuICAgICAqL1xuICAgIHB1YmxpYyBlbWl0dGVyPFQgPSBhbnksIFUgPSBhbnk+KGVtaXR0ZXI6IEZ1bmN0aW9uKTogRW1pdHRhYmxlPFQsIFU+IHtcbiAgICAgICAgY29uc3QgZW1pdHRlckV2ZW50OiBFbWl0dGVyTWV0YURhdGEgPSBlbWl0dGVyW0VNSVRURVJfTUVUQV9LRVldO1xuXG4gICAgICAgIGlmICghZW1pdHRlckV2ZW50KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VtaXR0ZXIgbWV0aG9kcyBzaG91bGQgYmUgZGVjb3JhdGVkIHVzaW5nIEBFbWl0dGVyKCkgZGVjb3JhdG9yJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW1pdDogKHBheWxvYWQ/OiBUKTogT2JzZXJ2YWJsZTxVPiA9PiB7XG4gICAgICAgICAgICAgICAgRW1pdHRlckFjdGlvbi50eXBlID0gZW1pdHRlckV2ZW50LnR5cGU7XG4gICAgICAgICAgICAgICAgY29uc3QgQWN0aW9uOiBhbnkgfCB0eXBlb2YgRW1pdHRlckFjdGlvbiA9IGVtaXR0ZXJFdmVudC5hY3Rpb24gPyBlbWl0dGVyRXZlbnQuYWN0aW9uIDogRW1pdHRlckFjdGlvbjtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChuZXcgQWN0aW9uKHBheWxvYWQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFbWl0U3RvcmUgfSBmcm9tICcuLi8uLi9lbWl0LnNlcnZpY2UnO1xuXG4vKipcbiAqIEFsbG93cyB0aGUgYEBQYXlsb2FkRW1pdHRlcigpYCBkZWNvcmF0b3IgdG8gZ2V0IGFjY2VzcyB0byB0aGUgREkgc3RvcmVcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBheWxvYWRFbWl0dGVyRmFjdG9yeSB7XG4gICAgLyoqXG4gICAgICogSW5qZWN0b3IgZm9yIGFjY2Vzc2luZyBESVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaW5qZWN0b3I6IEluamVjdG9yIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIFBheWxvYWRFbWl0dGVyRmFjdG9yeSBpbnN0YW5jZVxuICAgICAqXG4gICAgICogQHBhcmFtIGluamVjdG9yIC0gUm9vdCBpbmplY3RvclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBQYXlsb2FkRW1pdHRlckZhY3RvcnkuaW5qZWN0b3IgPSBpbmplY3RvcjtcbiAgICB9XG59XG5cbi8qKlxuICogRGVjb3JhdGVzIGEgcHJvcGVydHkgYW5kIGRlZmluZXMgbmV3IGdldHRlclxuICpcbiAqIEBwYXJhbSBlbWl0dGVyIC0gUmVmZXJlbmNlIHRvIHRoZSBzdGF0aWMgZnVuY3Rpb25cbiAqIEByZXR1cm5zIC0gRmFjdG9yeSBmdW5jdGlvbiBmb3IgZGVjb3JhdGluZyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBQYXlsb2FkRW1pdHRlcihlbWl0dGVyOiBGdW5jdGlvbik6IFByb3BlcnR5RGVjb3JhdG9yIHtcbiAgICByZXR1cm4gKHRhcmdldDogT2JqZWN0LCBrZXk6IHN0cmluZyB8IHN5bWJvbCkgPT4ge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcbiAgICAgICAgICAgIGdldDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0b3JlID0gUGF5bG9hZEVtaXR0ZXJGYWN0b3J5LmluamVjdG9yIS5nZXQ8RW1pdFN0b3JlPihFbWl0U3RvcmUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBzdG9yZS5lbWl0dGVyKGVtaXR0ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUGF5bG9hZEVtaXR0ZXJGYWN0b3J5IH0gZnJvbSAnLi9jb3JlL2RlY29yYXRvcnMvcGF5bG9hZC1lbWl0dGVyJztcbmltcG9ydCB7IEVtaXRTdG9yZSB9IGZyb20gJy4vZW1pdC5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgUGF5bG9hZEVtaXR0ZXJGYWN0b3J5LFxuICAgICAgICBFbWl0U3RvcmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5neHNFbWl0UGx1Z2luTW9kdWxlIHtcbiAgICBjb25zdHJ1Y3RvcihwYXlsb2FkRW1pdHRlckZhY3Rvcnk6IFBheWxvYWRFbWl0dGVyRmFjdG9yeSkge31cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIC0gQSB3cmFwcGVyIGFyb3VuZCBgTmdNb2R1bGVgXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Tmd4c0VtaXRQbHVnaW5Nb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBOZ3hzRW1pdFBsdWdpbk1vZHVsZVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBd0JPLHVCQUFNLFFBQVEsR0FBRyxXQUFXLENBQUM7Ozs7QUFLcEMsQUFBTyx1QkFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQzs7Ozs7QUFFcEQsNkJBQW9DLE1BQWdCO0lBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ2xDLHVCQUFNLGVBQWUsR0FBRztZQUNwQixJQUFJLEVBQUUsSUFBSTtZQUNWLE9BQU8sRUFBRSxFQUFFO1lBQ1gsUUFBUSxFQUFFLEVBQUU7WUFDWixJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxFQUFFO1lBQ1osUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQztRQUNGLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZFO0lBQ0QsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUNuQzs7Ozs7QUFFRCwwQkFBMEIsTUFBZ0I7SUFDdEMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Q0FDM0I7Ozs7OztBQ2hERDs7Ozs7O0FBUUEsaUJBQXdCLE9BQWtDO0lBQ3RELE9BQU8sQ0FBSSxNQUFXLEVBQUUsR0FBb0IsRUFBRSxVQUFzQztRQUNoRixJQUFJLE9BQU8sVUFBVSxDQUFDLEtBQUssS0FBSyxVQUFVLElBQUksT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssVUFBVSxFQUFFO1lBQzdFLE1BQU0sSUFBSSxTQUFTLENBQUMsa0VBQWtFLENBQUMsQ0FBQztTQUMzRjtRQUVELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1lBQ3pCLEdBQUcsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDeEI7UUFFRCx1QkFBTSxJQUFJLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsdUJBQU0sSUFBSSxHQUFXLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzFFLHVCQUFNLE1BQU0sR0FBb0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFMUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLElBQUksbUJBQW1CLENBQUMsQ0FBQztTQUNqRjs7UUFHRCxJQUFJLE1BQU0sRUFBRTtZQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQ3pCLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRTtvQkFDWixPQUFPLEVBQUUsRUFBRTtvQkFDWCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7aUJBQ3BCLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQ2xCLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRTtvQkFDWixPQUFPLEVBQUUsRUFBRTtvQkFDWCxJQUFJO2lCQUNQLENBQUMsQ0FBQztTQUNOO1FBRUQsVUFBVSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ2pDLElBQUk7WUFDSixNQUFNO1NBQ1QsQ0FBQztRQUVGLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUc7WUFDcEIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUMvQyxDQUFDO0tBQ0wsQ0FBQztDQUNMOzs7Ozs7Ozs7O0FDL0NEOzs7Ozs7SUFXSSxZQUFtQixPQUFXO1FBQVgsWUFBTyxHQUFQLE9BQU8sQ0FBSTtLQUFJOzs7OztxQkFQRSxJQUFJOzs7Ozs7QUNQNUMsZUFTdUIsU0FBUSxLQUFLOzs7Ozs7SUFLekIsT0FBTyxDQUFtQixPQUFpQjtRQUM5Qyx1QkFBTSxZQUFZLEdBQW9CLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGdFQUFnRSxDQUFDLENBQUM7U0FDckY7UUFFRCxPQUFPO1lBQ0gsSUFBSSxFQUFFLENBQUMsT0FBVztnQkFDZCxhQUFhLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZDLHVCQUFNLE1BQU0sR0FBK0IsWUFBWSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQztnQkFDckcsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDN0M7U0FDSixDQUFDOzs7O1lBbkJULFVBQVU7Ozs7Ozs7QUNSWDs7O0FBUUE7Ozs7OztJQVdJLFlBQVksUUFBa0I7UUFDMUIscUJBQXFCLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztLQUM3Qzs7Ozs7aUNBVHlDLElBQUk7O1lBTGpELFVBQVU7Ozs7WUFQVSxRQUFROzs7Ozs7OztBQThCN0Isd0JBQStCLE9BQWlCO0lBQzVDLE9BQU8sQ0FBQyxNQUFjLEVBQUUsR0FBb0I7UUFDeEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQy9CLEdBQUcsRUFBRTtnQkFDRCx1QkFBTSxLQUFLLHNCQUFHLHFCQUFxQixDQUFDLFFBQVEsR0FBRSxHQUFHLENBQVksU0FBUyxDQUFDLENBQUM7Z0JBQ3hFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNqQztTQUNKLENBQUMsQ0FBQztLQUNOLENBQUM7Q0FDTDs7Ozs7O0FDdkNEOzs7O0lBWUksWUFBWSxxQkFBNEMsS0FBSTs7OztJQUtyRCxPQUFPLE9BQU87UUFDakIsT0FBTztZQUNILFFBQVEsRUFBRSxvQkFBb0I7U0FDakMsQ0FBQzs7OztZQWZULFFBQVEsU0FBQztnQkFDTixTQUFTLEVBQUU7b0JBQ1AscUJBQXFCO29CQUNyQixTQUFTO2lCQUNaO2FBQ0o7Ozs7WUFSUSxxQkFBcUI7Ozs7Ozs7Ozs7Ozs7OzsifQ==

@@ -243,2 +243,2 @@ import { __extends } from 'tslib';

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1jb250cmliLWVtaXR0ZXIuanMubWFwIiwic291cmNlcyI6WyJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvY29yZS9pbnRlcm5hbC9pbnRlcm5hbHMudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvY29yZS9kZWNvcmF0b3JzL2VtaXR0ZXIudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvY29yZS9hY3Rpb25zL2FjdGlvbnMudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvZW1pdC5zZXJ2aWNlLnRzIiwibmc6Ly9Abmd4cy1jb250cmliL2VtaXR0ZXIvbGliL2NvcmUvZGVjb3JhdG9ycy9wYXlsb2FkLWVtaXR0ZXIudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvZW1pdC5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEN1c3RvbSBhY3Rpb24gaW50ZXJmYWNlXG4gKlxuICogQHByb3BlcnR5IHR5cGUgLSBTdGF0aWMgcHJvcGVydHkgdGhhdCBkZWZpbmVzIGFjdGlvbiB0eXBlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQWN0aW9uPFQgPSBhbnksIFUgPSBhbnk+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgbmV3IChwYXlsb2FkPzogVSk6IFQ7XG59XG5cbi8qKlxuICogU3RhdGljIG1ldGFkYXRhIGZvciB0aGUgZW1pdHRlciBmdW5jdGlvblxuICpcbiAqIEBwcm9wZXJ0eSB0eXBlIC0gQWN0aW9uIHR5cGUgKG9wdGlvbmFsKVxuICogQHByb3BlcnR5IGFjdGlvbiAtIEN1c3RvbSBhY3Rpb24gdG8gZGlzcGF0Y2ggKG9wdGlvbmFsKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtaXR0ZXJNZXRhRGF0YTxUIGV4dGVuZHMgRnVuY3Rpb24gPSBhbnk+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgYWN0aW9uOiBDdXN0b21BY3Rpb248VD47XG59XG5cbi8qKlxuICogUGxhaW4gb2JqZWN0IHRoYXQgY29udGFpbnMgYGVtaXRgIGZ1bmN0aW9uIHRoYXQgZGlzcGF0Y2hlcyBwYXlsb2FkXG4gKlxuICogQHByb3BlcnR5IGVtaXQgLSBGdW5jdGlvbiB0aGF0IGRpc3BhdGNoZXMgcGF5bG9hZCB1bmRlciB0aGUgaG9vZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtaXR0YWJsZTxUID0gYW55LCBVID0gYW55PiB7XG4gICAgZW1pdChwYXlsb2FkPzogVCk6IE9ic2VydmFibGU8VT47XG59XG5cbmV4cG9ydCBjb25zdCBNRVRBX0tFWSA9ICdOR1hTX01FVEEnO1xuXG4vKipcbiAqIEBjb25zdCAtIFRoaXMgY29uc3RhbnQgaXMgYSBrZXkgZm9yIGRlZmluaW5nIHN0YXRpYyBtZXRhZGF0YSB1c2luZyBgQEVtaXR0ZXJgXG4gKi9cbmV4cG9ydCBjb25zdCBFTUlUVEVSX01FVEFfS0VZID0gJ05HWFNfRU1JVFRFUl9NRVRBJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVN0b3JlTWV0YWRhdGEodGFyZ2V0OiBGdW5jdGlvbikge1xuICAgIGlmICghdGFyZ2V0Lmhhc093blByb3BlcnR5KE1FVEFfS0VZKSkge1xuICAgICAgICBjb25zdCBkZWZhdWx0TWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBuYW1lOiBudWxsLFxuICAgICAgICAgICAgYWN0aW9uczoge30sXG4gICAgICAgICAgICBkZWZhdWx0czoge30sXG4gICAgICAgICAgICBwYXRoOiBudWxsLFxuICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICAgICAgaW5zdGFuY2U6IG51bGxcbiAgICAgICAgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgTUVUQV9LRVksIHsgdmFsdWU6IGRlZmF1bHRNZXRhZGF0YSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGdldFN0b3JlTWV0YWRhdGEodGFyZ2V0KTtcbn1cblxuZnVuY3Rpb24gZ2V0U3RvcmVNZXRhZGF0YSh0YXJnZXQ6IEZ1bmN0aW9uKSB7XG4gICAgcmV0dXJuIHRhcmdldFtNRVRBX0tFWV07XG59XG4iLCJpbXBvcnQgeyBlbnN1cmVTdG9yZU1ldGFkYXRhLCBFbWl0dGVyTWV0YURhdGEsIEVNSVRURVJfTUVUQV9LRVksIEN1c3RvbUFjdGlvbiB9IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XG5cbi8qKlxuICogRGVjb3JhdGVzIGEgbWV0aG9kIHdpdGggYW4gZW1pdHRlciBpbmZvcm1hdGlvblxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgc3RhdGljIG1ldGFkYXRhXG4gKiBAcmV0dXJucyAtIEZhY3RvcnkgZm9yIGRlY29yYXRpbmcgbWV0aG9kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFbWl0dGVyKG9wdGlvbnM/OiBQYXJ0aWFsPEVtaXR0ZXJNZXRhRGF0YT4pOiBNZXRob2REZWNvcmF0b3Ige1xuICAgIHJldHVybiA8VD4odGFyZ2V0OiBhbnksIGtleTogc3RyaW5nIHwgc3ltYm9sLCBkZXNjcmlwdG9yOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxUPikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGRlc2NyaXB0b3IudmFsdWUgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHRhcmdldFtrZXldICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBPbmx5IHN0YXRpYyBmdW5jdGlvbnMgY2FuIGJlIGRlY29yYXRlZCB3aXRoIEBFbWl0dGVyKCkgZGVjb3JhdG9yYCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N5bWJvbCcpIHtcbiAgICAgICAgICAgIGtleSA9IGtleS50b1N0cmluZygpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWV0YSA9IGVuc3VyZVN0b3JlTWV0YWRhdGEodGFyZ2V0KTtcbiAgICAgICAgY29uc3QgdHlwZTogc3RyaW5nID0gKG9wdGlvbnMgJiYgb3B0aW9ucy50eXBlKSB8fCBgJHt0YXJnZXQubmFtZX0uJHtrZXl9YDtcbiAgICAgICAgY29uc3QgYWN0aW9uOiBDdXN0b21BY3Rpb248YW55LCBhbnk+IHwgdW5kZWZpbmVkID0gb3B0aW9ucyAmJiBvcHRpb25zLmFjdGlvbjtcblxuICAgICAgICBpZiAobWV0YS5hY3Rpb25zW3R5cGVdKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1ldGhvZCBkZWNvcmF0ZWQgd2l0aCBzdWNoIHR5cGUgXFxgJHt0eXBlfVxcYCBhbHJlYWR5IGV4aXN0c2ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlIHVzZXIgcGFzc2VkIGN1c3RvbSBhY3Rpb25cbiAgICAgICAgaWYgKGFjdGlvbikge1xuICAgICAgICAgICAgbWV0YS5hY3Rpb25zW2FjdGlvbi50eXBlXSA9IFt7XG4gICAgICAgICAgICAgICAgZm46IGAke2tleX1gLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHt9LFxuICAgICAgICAgICAgICAgIHR5cGU6IGFjdGlvbi50eXBlXG4gICAgICAgICAgICB9XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1ldGEuYWN0aW9uc1t0eXBlXSA9IFt7XG4gICAgICAgICAgICAgICAgZm46IGAke2tleX1gLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHt9LFxuICAgICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgIH1dO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVzY3JpcHRvci52YWx1ZVtFTUlUVEVSX01FVEFfS0VZXSA9IHtcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBhY3Rpb25cbiAgICAgICAgfTtcblxuICAgICAgICB0YXJnZXQucHJvdG90eXBlW2tleV0gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXRba2V5XS5hcHBseSh0YXJnZXQsIGFyZ3VtZW50cyk7XG4gICAgICAgIH07XG4gICAgfTtcbn1cbiIsIi8qKlxuICogVGhpcyBjbGFzcyBpcyB1c2VkIGFzIGEgZGVmYXVsdCBhY3Rpb24gd2hlbiB0aGUgdXNlciBkb2Vzbid0IHBhc3MgYW55IGN1c3RvbSBhY3Rpb24gYXMgYW4gYXJndW1lbnRcbiAqL1xuZXhwb3J0IGNsYXNzIEVtaXR0ZXJBY3Rpb248VCA9IGFueT4ge1xuICAgIC8qKlxuICAgICAqIEFjdGlvbiB0eXBlXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyB0eXBlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgRW1pdHRlckFjdGlvbiBpbnN0YW5jZVxuICAgICAqXG4gICAgICogQHBhcmFtIHBheWxvYWQgLSBEYXRhIHRvIGRpc3BhdGNoXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ/OiBUKSB7fVxufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRU1JVFRFUl9NRVRBX0tFWSwgRW1pdHRhYmxlLCBFbWl0dGVyTWV0YURhdGEgfSBmcm9tICcuL2NvcmUvaW50ZXJuYWwvaW50ZXJuYWxzJztcbmltcG9ydCB7IEVtaXR0ZXJBY3Rpb24gfSBmcm9tICcuL2NvcmUvYWN0aW9ucy9hY3Rpb25zJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVtaXRTdG9yZSBleHRlbmRzIFN0b3JlIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gZW1pdHRlciAtIFJlZmVyZW5jZSB0byB0aGUgc3RhdGljIGZ1bmN0aW9uIGZyb20gdGhlIHN0b3JlXG4gICAgICogQHJldHVybnMgLSBBIHBsYWluIG9iamVjdCB3aXRoIGFuIGBlbWl0YCBmdW5jdGlvbiBmb3IgY2FsbGluZyBlbWl0dGVyXG4gICAgICovXG4gICAgcHVibGljIGVtaXR0ZXI8VCA9IGFueSwgVSA9IGFueT4oZW1pdHRlcjogRnVuY3Rpb24pOiBFbWl0dGFibGU8VCwgVT4ge1xuICAgICAgICBjb25zdCBlbWl0dGVyRXZlbnQ6IEVtaXR0ZXJNZXRhRGF0YSA9IGVtaXR0ZXJbRU1JVFRFUl9NRVRBX0tFWV07XG5cbiAgICAgICAgaWYgKCFlbWl0dGVyRXZlbnQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRW1pdHRlciBtZXRob2RzIHNob3VsZCBiZSBkZWNvcmF0ZWQgdXNpbmcgQEVtaXR0ZXIoKSBkZWNvcmF0b3InKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbWl0OiAocGF5bG9hZD86IFQpOiBPYnNlcnZhYmxlPFU+ID0+IHtcbiAgICAgICAgICAgICAgICBFbWl0dGVyQWN0aW9uLnR5cGUgPSBlbWl0dGVyRXZlbnQudHlwZTtcbiAgICAgICAgICAgICAgICBjb25zdCBBY3Rpb246IFR5cGU8YW55IHwgRW1pdHRlckFjdGlvbj4gPSBlbWl0dGVyRXZlbnQuYWN0aW9uID8gZW1pdHRlckV2ZW50LmFjdGlvbiA6IEVtaXR0ZXJBY3Rpb247XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2gobmV3IEFjdGlvbihwYXlsb2FkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxufVxuIiwiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRW1pdFN0b3JlIH0gZnJvbSAnLi4vLi4vZW1pdC5zZXJ2aWNlJztcblxuLyoqXG4gKiBBbGxvd3MgdGhlIGBAUGF5bG9hZEVtaXR0ZXIoKWAgZGVjb3JhdG9yIHRvIGdldCBhY2Nlc3MgdG8gdGhlIERJIHN0b3JlXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQYXlsb2FkRW1pdHRlckZhY3Rvcnkge1xuICAgIC8qKlxuICAgICAqIEluamVjdG9yIGZvciBhY2Nlc3NpbmcgRElcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGluamVjdG9yOiBJbmplY3RvciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBQYXlsb2FkRW1pdHRlckZhY3RvcnkgaW5zdGFuY2VcbiAgICAgKlxuICAgICAqIEBwYXJhbSBpbmplY3RvciAtIFJvb3QgaW5qZWN0b3JcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgUGF5bG9hZEVtaXR0ZXJGYWN0b3J5LmluamVjdG9yID0gaW5qZWN0b3I7XG4gICAgfVxufVxuXG4vKipcbiAqIERlY29yYXRlcyBhIHByb3BlcnR5IGFuZCBkZWZpbmVzIG5ldyBnZXR0ZXJcbiAqXG4gKiBAcGFyYW0gZW1pdHRlciAtIFJlZmVyZW5jZSB0byB0aGUgc3RhdGljIGZ1bmN0aW9uXG4gKiBAcmV0dXJucyAtIEZhY3RvcnkgZnVuY3Rpb24gZm9yIGRlY29yYXRpbmcgcHJvcGVydGllc1xuICovXG5leHBvcnQgZnVuY3Rpb24gUGF5bG9hZEVtaXR0ZXIoZW1pdHRlcjogRnVuY3Rpb24pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gICAgcmV0dXJuICh0YXJnZXQ6IE9iamVjdCwga2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCB7XG4gICAgICAgICAgICBnZXQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdG9yZSA9IFBheWxvYWRFbWl0dGVyRmFjdG9yeS5pbmplY3RvciEuZ2V0PEVtaXRTdG9yZT4oRW1pdFN0b3JlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RvcmUuZW1pdHRlcihlbWl0dGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBheWxvYWRFbWl0dGVyRmFjdG9yeSB9IGZyb20gJy4vY29yZS9kZWNvcmF0b3JzL3BheWxvYWQtZW1pdHRlcic7XG5pbXBvcnQgeyBFbWl0U3RvcmUgfSBmcm9tICcuL2VtaXQuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFBheWxvYWRFbWl0dGVyRmFjdG9yeSxcbiAgICAgICAgRW1pdFN0b3JlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hzRW1pdFBsdWdpbk1vZHVsZSB7XG4gICAgY29uc3RydWN0b3IocGF5bG9hZEVtaXR0ZXJGYWN0b3J5OiBQYXlsb2FkRW1pdHRlckZhY3RvcnkpIHt9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyAtIEEgd3JhcHBlciBhcm91bmQgYE5nTW9kdWxlYFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neHNFbWl0UGx1Z2luTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogTmd4c0VtaXRQbHVnaW5Nb2R1bGVcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsidHNsaWJfMS5fX2V4dGVuZHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBZ0NPLHFCQUFNLFFBQVEsR0FBRyxXQUFXLENBQUM7Ozs7QUFLcEMsQUFBTyxxQkFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQzs7Ozs7QUFFcEQsNkJBQW9DLE1BQWdCO0lBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ2xDLHFCQUFNLGVBQWUsR0FBRztZQUNwQixJQUFJLEVBQUUsSUFBSTtZQUNWLE9BQU8sRUFBRSxFQUFFO1lBQ1gsUUFBUSxFQUFFLEVBQUU7WUFDWixJ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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1jb250cmliLWVtaXR0ZXIuanMubWFwIiwic291cmNlcyI6WyJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvY29yZS9pbnRlcm5hbC9pbnRlcm5hbHMudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvY29yZS9kZWNvcmF0b3JzL2VtaXR0ZXIudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvY29yZS9hY3Rpb25zL2FjdGlvbnMudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvZW1pdC5zZXJ2aWNlLnRzIiwibmc6Ly9Abmd4cy1jb250cmliL2VtaXR0ZXIvbGliL2NvcmUvZGVjb3JhdG9ycy9wYXlsb2FkLWVtaXR0ZXIudHMiLCJuZzovL0BuZ3hzLWNvbnRyaWIvZW1pdHRlci9saWIvZW1pdC5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogU3RhdGljIG1ldGFkYXRhIGZvciB0aGUgZW1pdHRlciBmdW5jdGlvblxuICpcbiAqIEBwcm9wZXJ0eSB0eXBlIC0gQWN0aW9uIHR5cGUgKG9wdGlvbmFsKVxuICogQHByb3BlcnR5IGFjdGlvbiAtIEN1c3RvbSBhY3Rpb24gdG8gZGlzcGF0Y2ggKG9wdGlvbmFsKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVtaXR0ZXJNZXRhRGF0YTxUIGV4dGVuZHMgRnVuY3Rpb24gPSBhbnk+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgYWN0aW9uOiBUeXBlPFQ+O1xufVxuXG4vKipcbiAqIFBsYWluIG9iamVjdCB0aGF0IGNvbnRhaW5zIGBlbWl0YCBmdW5jdGlvbiB0aGF0IGRpc3BhdGNoZXMgcGF5bG9hZFxuICpcbiAqIEBwcm9wZXJ0eSBlbWl0IC0gRnVuY3Rpb24gdGhhdCBkaXNwYXRjaGVzIHBheWxvYWQgdW5kZXIgdGhlIGhvb2RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWl0dGFibGU8VCA9IGFueSwgVSA9IGFueT4ge1xuICAgIGVtaXQocGF5bG9hZD86IFQpOiBPYnNlcnZhYmxlPFU+O1xufVxuXG5leHBvcnQgY29uc3QgTUVUQV9LRVkgPSAnTkdYU19NRVRBJztcblxuLyoqXG4gKiBAY29uc3QgLSBUaGlzIGNvbnN0YW50IGlzIGEga2V5IGZvciBkZWZpbmluZyBzdGF0aWMgbWV0YWRhdGEgdXNpbmcgYEBFbWl0dGVyYFxuICovXG5leHBvcnQgY29uc3QgRU1JVFRFUl9NRVRBX0tFWSA9ICdOR1hTX0VNSVRURVJfTUVUQSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVTdG9yZU1ldGFkYXRhKHRhcmdldDogRnVuY3Rpb24pIHtcbiAgICBpZiAoIXRhcmdldC5oYXNPd25Qcm9wZXJ0eShNRVRBX0tFWSkpIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdE1ldGFkYXRhID0ge1xuICAgICAgICAgICAgbmFtZTogbnVsbCxcbiAgICAgICAgICAgIGFjdGlvbnM6IHt9LFxuICAgICAgICAgICAgZGVmYXVsdHM6IHt9LFxuICAgICAgICAgICAgcGF0aDogbnVsbCxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgIGluc3RhbmNlOiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIE1FVEFfS0VZLCB7IHZhbHVlOiBkZWZhdWx0TWV0YWRhdGEgfSk7XG4gICAgfVxuICAgIHJldHVybiBnZXRTdG9yZU1ldGFkYXRhKHRhcmdldCk7XG59XG5cbmZ1bmN0aW9uIGdldFN0b3JlTWV0YWRhdGEodGFyZ2V0OiBGdW5jdGlvbikge1xuICAgIHJldHVybiB0YXJnZXRbTUVUQV9LRVldO1xufVxuIiwiaW1wb3J0IHsgZW5zdXJlU3RvcmVNZXRhZGF0YSwgRW1pdHRlck1ldGFEYXRhLCBFTUlUVEVSX01FVEFfS0VZIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcblxuLyoqXG4gKiBEZWNvcmF0ZXMgYSBtZXRob2Qgd2l0aCBhbiBlbWl0dGVyIGluZm9ybWF0aW9uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciBjb25maWd1cmluZyBzdGF0aWMgbWV0YWRhdGFcbiAqIEByZXR1cm5zIC0gRmFjdG9yeSBmb3IgZGVjb3JhdGluZyBtZXRob2RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEVtaXR0ZXIob3B0aW9ucz86IFBhcnRpYWw8RW1pdHRlck1ldGFEYXRhPik6IE1ldGhvZERlY29yYXRvciB7XG4gICAgcmV0dXJuIDxUPih0YXJnZXQ6IGFueSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFQ+KSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGVzY3JpcHRvci52YWx1ZSAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgdGFyZ2V0W2tleV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE9ubHkgc3RhdGljIGZ1bmN0aW9ucyBjYW4gYmUgZGVjb3JhdGVkIHdpdGggQEVtaXR0ZXIoKSBkZWNvcmF0b3JgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3ltYm9sJykge1xuICAgICAgICAgICAga2V5ID0ga2V5LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXRhID0gZW5zdXJlU3RvcmVNZXRhZGF0YSh0YXJnZXQpO1xuICAgICAgICBjb25zdCB0eXBlOiBzdHJpbmcgPSAob3B0aW9ucyAmJiBvcHRpb25zLnR5cGUpIHx8IGAke3RhcmdldC5uYW1lfS4ke2tleX1gO1xuICAgICAgICBjb25zdCBhY3Rpb246IGFueSB8IHVuZGVmaW5lZCA9IG9wdGlvbnMgJiYgb3B0aW9ucy5hY3Rpb247XG5cbiAgICAgICAgaWYgKG1ldGEuYWN0aW9uc1t0eXBlXSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNZXRob2QgZGVjb3JhdGVkIHdpdGggc3VjaCB0eXBlIFxcYCR7dHlwZX1cXGAgYWxyZWFkeSBleGlzdHNgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZSB1c2VyIHBhc3NlZCBjdXN0b20gYWN0aW9uXG4gICAgICAgIGlmIChhY3Rpb24pIHtcbiAgICAgICAgICAgIG1ldGEuYWN0aW9uc1thY3Rpb24udHlwZV0gPSBbe1xuICAgICAgICAgICAgICAgIGZuOiBgJHtrZXl9YCxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICAgICAgICB0eXBlOiBhY3Rpb24udHlwZVxuICAgICAgICAgICAgfV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXRhLmFjdGlvbnNbdHlwZV0gPSBbe1xuICAgICAgICAgICAgICAgIGZuOiBgJHtrZXl9YCxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICB9XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlc2NyaXB0b3IudmFsdWVbRU1JVFRFUl9NRVRBX0tFWV0gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgYWN0aW9uXG4gICAgICAgIH07XG5cbiAgICAgICAgdGFyZ2V0LnByb3RvdHlwZVtrZXldID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0W2tleV0uYXBwbHkodGFyZ2V0LCBhcmd1bWVudHMpO1xuICAgICAgICB9O1xuICAgIH07XG59XG4iLCIvKipcbiAqIFRoaXMgY2xhc3MgaXMgdXNlZCBhcyBhIGRlZmF1bHQgYWN0aW9uIHdoZW4gdGhlIHVzZXIgZG9lc24ndCBwYXNzIGFueSBjdXN0b20gYWN0aW9uIGFzIGFuIGFyZ3VtZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBFbWl0dGVyQWN0aW9uPFQgPSBhbnk+IHtcbiAgICAvKipcbiAgICAgKiBBY3Rpb24gdHlwZVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgdHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIEVtaXR0ZXJBY3Rpb24gaW5zdGFuY2VcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXlsb2FkIC0gRGF0YSB0byBkaXNwYXRjaFxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkPzogVCkge31cbn1cbiIsImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEVNSVRURVJfTUVUQV9LRVksIEVtaXR0YWJsZSwgRW1pdHRlck1ldGFEYXRhIH0gZnJvbSAnLi9jb3JlL2ludGVybmFsL2ludGVybmFscyc7XG5pbXBvcnQgeyBFbWl0dGVyQWN0aW9uIH0gZnJvbSAnLi9jb3JlL2FjdGlvbnMvYWN0aW9ucyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFbWl0U3RvcmUgZXh0ZW5kcyBTdG9yZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIGVtaXR0ZXIgLSBSZWZlcmVuY2UgdG8gdGhlIHN0YXRpYyBmdW5jdGlvbiBmcm9tIHRoZSBzdG9yZVxuICAgICAqIEByZXR1cm5zIC0gQSBwbGFpbiBvYmplY3Qgd2l0aCBhbiBgZW1pdGAgZnVuY3Rpb24gZm9yIGNhbGxpbmcgZW1pdHRlclxuICAgICAqL1xuICAgIHB1YmxpYyBlbWl0dGVyPFQgPSBhbnksIFUgPSBhbnk+KGVtaXR0ZXI6IEZ1bmN0aW9uKTogRW1pdHRhYmxlPFQsIFU+IHtcbiAgICAgICAgY29uc3QgZW1pdHRlckV2ZW50OiBFbWl0dGVyTWV0YURhdGEgPSBlbWl0dGVyW0VNSVRURVJfTUVUQV9LRVldO1xuXG4gICAgICAgIGlmICghZW1pdHRlckV2ZW50KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VtaXR0ZXIgbWV0aG9kcyBzaG91bGQgYmUgZGVjb3JhdGVkIHVzaW5nIEBFbWl0dGVyKCkgZGVjb3JhdG9yJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW1pdDogKHBheWxvYWQ/OiBUKTogT2JzZXJ2YWJsZTxVPiA9PiB7XG4gICAgICAgICAgICAgICAgRW1pdHRlckFjdGlvbi50eXBlID0gZW1pdHRlckV2ZW50LnR5cGU7XG4gICAgICAgICAgICAgICAgY29uc3QgQWN0aW9uOiBhbnkgfCB0eXBlb2YgRW1pdHRlckFjdGlvbiA9IGVtaXR0ZXJFdmVudC5hY3Rpb24gPyBlbWl0dGVyRXZlbnQuYWN0aW9uIDogRW1pdHRlckFjdGlvbjtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChuZXcgQWN0aW9uKHBheWxvYWQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG59XG4iLCJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFbWl0U3RvcmUgfSBmcm9tICcuLi8uLi9lbWl0LnNlcnZpY2UnO1xuXG4vKipcbiAqIEFsbG93cyB0aGUgYEBQYXlsb2FkRW1pdHRlcigpYCBkZWNvcmF0b3IgdG8gZ2V0IGFjY2VzcyB0byB0aGUgREkgc3RvcmVcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBheWxvYWRFbWl0dGVyRmFjdG9yeSB7XG4gICAgLyoqXG4gICAgICogSW5qZWN0b3IgZm9yIGFjY2Vzc2luZyBESVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaW5qZWN0b3I6IEluamVjdG9yIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIFBheWxvYWRFbWl0dGVyRmFjdG9yeSBpbnN0YW5jZVxuICAgICAqXG4gICAgICogQHBhcmFtIGluamVjdG9yIC0gUm9vdCBpbmplY3RvclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBQYXlsb2FkRW1pdHRlckZhY3RvcnkuaW5qZWN0b3IgPSBpbmplY3RvcjtcbiAgICB9XG59XG5cbi8qKlxuICogRGVjb3JhdGVzIGEgcHJvcGVydHkgYW5kIGRlZmluZXMgbmV3IGdldHRlclxuICpcbiAqIEBwYXJhbSBlbWl0dGVyIC0gUmVmZXJlbmNlIHRvIHRoZSBzdGF0aWMgZnVuY3Rpb25cbiAqIEByZXR1cm5zIC0gRmFjdG9yeSBmdW5jdGlvbiBmb3IgZGVjb3JhdGluZyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBQYXlsb2FkRW1pdHRlcihlbWl0dGVyOiBGdW5jdGlvbik6IFByb3BlcnR5RGVjb3JhdG9yIHtcbiAgICByZXR1cm4gKHRhcmdldDogT2JqZWN0LCBrZXk6IHN0cmluZyB8IHN5bWJvbCkgPT4ge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcbiAgICAgICAgICAgIGdldDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0b3JlID0gUGF5bG9hZEVtaXR0ZXJGYWN0b3J5LmluamVjdG9yIS5nZXQ8RW1pdFN0b3JlPihFbWl0U3RvcmUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBzdG9yZS5lbWl0dGVyKGVtaXR0ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUGF5bG9hZEVtaXR0ZXJGYWN0b3J5IH0gZnJvbSAnLi9jb3JlL2RlY29yYXRvcnMvcGF5bG9hZC1lbWl0dGVyJztcbmltcG9ydCB7IEVtaXRTdG9yZSB9IGZyb20gJy4vZW1pdC5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgUGF5bG9hZEVtaXR0ZXJGYWN0b3J5LFxuICAgICAgICBFbWl0U3RvcmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5neHNFbWl0UGx1Z2luTW9kdWxlIHtcbiAgICBjb25zdHJ1Y3RvcihwYXlsb2FkRW1pdHRlckZhY3Rvcnk6IFBheWxvYWRFbWl0dGVyRmFjdG9yeSkge31cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIC0gQSB3cmFwcGVyIGFyb3VuZCBgTmdNb2R1bGVgXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Tmd4c0VtaXRQbHVnaW5Nb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBOZ3hzRW1pdFBsdWdpbk1vZHVsZVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJ0c2xpYl8xLl9fZXh0ZW5kcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUF3Qk8scUJBQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQzs7OztBQUtwQyxBQUFPLHFCQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDOzs7OztBQUVwRCw2QkFBb0MsTUFBZ0I7SUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDbEMscUJBQU0sZUFBZSxHQUFHO1lBQ3BCLElBQUksRUFBRSxJQUFJO1lBQ1YsT0FBTyxFQUFFLEVBQUU7WUFDWCxRQUFRLEVBQUUsRUFBRTtZQUNaLElBQUksRUFBRSxJQUFJO1lBQ1YsUUFBUSxFQUFFLEVBQUU7WUFDWixRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDO1FBQ0YsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7S0FDdkU7SUFDRCxPQUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0NBQ25DOzs7OztBQUVELDBCQUEwQixN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

@@ -0,12 +1,4 @@

import { Type } from '@angular/core';
import { Observable } from 'rxjs';
/**
* Custom action interface
*
* @property type - Static property that defines action type
*/
export interface CustomAction<T = any, U = any> {
type: string;
new (payload?: U): T;
}
/**
* Static metadata for the emitter function

@@ -19,3 +11,3 @@ *

type: string;
action: CustomAction<T>;
action: Type<T>;
}

@@ -22,0 +14,0 @@ /**

{
"name": "@ngxs-contrib/emitter",
"version": "0.0.4",
"version": "0.0.5",
"peerDependencies": {

@@ -5,0 +5,0 @@ "@angular/common": "^6.0.0-rc.0 || ^6.0.0",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc