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

ngx-row-accordion

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ngx-row-accordion - npm Package Compare versions

Comparing version 1.0.3 to 2.0.0

4

bundles/ngx-row-accordion.umd.js

@@ -282,3 +282,3 @@ (function (global, factory) {

template: "<div fxFill fxLayout=\"row\">\n <div class=\"ngx-row-accordion\">\n <div fxLayout=\"row\" class=\"ngx-row-accordion\">\n <div class=\"title\" (click)=\"toggle()\">\n {{ title }}\n </div>\n\n <div class=\"body\" *ngIf=\"displayBody$ | async\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n",
styles: [".ngx-row-accordion{display:inline-block;height:100%}.ngx-row-accordion .title{padding:16px;-webkit-writing-mode:vertical-rl;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:sideways;background-color:#d8d8d8;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ngx-row-accordion .body{padding:16px;background-color:#f3f3f3;overflow:auto}"],
styles: [""],
},] },

@@ -346,2 +346,2 @@ ];

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJvdy1hY2NvcmRpb24udW1kLmpzLm1hcCIsInNvdXJjZXMiOltudWxsLCJuZzovL25neC1yb3ctYWNjb3JkaW9uL2xpYi9uZ3gtcm93LWFjY29yZGlvbi5zZXJ2aWNlLnRzIiwibmc6Ly9uZ3gtcm93LWFjY29yZGlvbi9saWIvbmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50LnRzIiwibmc6Ly9uZ3gtcm93LWFjY29yZGlvbi9saWIvbmd4LXJvdy1hY2NvcmRpb24ubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlXHJcbnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlXHJcbkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcblxyXG5USElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXHJcbktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRURcclxuV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSxcclxuTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC5cclxuXHJcblNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xyXG5hbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gX19hc3NpZ24odCkge1xyXG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpIHRbcF0gPSBzW3BdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIGlmIChlLmluZGV4T2YocFtpXSkgPCAwKVxyXG4gICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgIHJldHVybiB0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xyXG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XHJcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xyXG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcGFyYW0ocGFyYW1JbmRleCwgZGVjb3JhdG9yKSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7IGRlY29yYXRvcih0YXJnZXQsIGtleSwgcGFyYW1JbmRleCk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IudGhyb3codmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZShyZXN1bHQudmFsdWUpOyB9KS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2dlbmVyYXRvcih0aGlzQXJnLCBib2R5KSB7XHJcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xyXG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcclxuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XHJcbiAgICAgICAgd2hpbGUgKF8pIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IHlbb3BbMF0gJiAyID8gXCJyZXR1cm5cIiA6IG9wWzBdID8gXCJ0aHJvd1wiIDogXCJuZXh0XCJdKSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcclxuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFswLCB0LnZhbHVlXTtcclxuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xyXG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XHJcbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgZXhwb3J0cykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAoIWV4cG9ydHMuaGFzT3duUHJvcGVydHkocCkpIGV4cG9ydHNbcF0gPSBtW3BdO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7XHJcbiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZWFkKG8sIG4pIHtcclxuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcclxuICAgIGlmICghbSkgcmV0dXJuIG87XHJcbiAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cclxuICAgIGZpbmFsbHkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaW5hbGx5IHsgaWYgKGUpIHRocm93IGUuZXJyb3I7IH1cclxuICAgIH1cclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkKCkge1xyXG4gICAgZm9yICh2YXIgYXIgPSBbXSwgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XHJcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyBpZiAoZ1tuXSkgaVtuXSA9IGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAoYSwgYikgeyBxLnB1c2goW24sIHYsIGEsIGJdKSA+IDEgfHwgcmVzdW1lKG4sIHYpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gcmVzdW1lKG4sIHYpIHsgdHJ5IHsgc3RlcChnW25dKHYpKTsgfSBjYXRjaCAoZSkgeyBzZXR0bGUocVswXVszXSwgZSk7IH0gfVxyXG4gICAgZnVuY3Rpb24gc3RlcChyKSB7IHIudmFsdWUgaW5zdGFuY2VvZiBfX2F3YWl0ID8gUHJvbWlzZS5yZXNvbHZlKHIudmFsdWUudikudGhlbihmdWxmaWxsLCByZWplY3QpIDogc2V0dGxlKHFbMF1bMl0sIHIpOyAgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaWYgKG9bbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH07IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl07XHJcbiAgICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKTtcclxufSIsImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXBUbywgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFwLCBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG1hcENoaWxkcmVuSW50b0FycmF5IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyL3NyYy91cmxfdHJlZSc7XG5cbmludGVyZmFjZSBEaWN0aW9ubmFyeTxUPiB7XG4gIFtrZXk6IHN0cmluZ106IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3JkaW9uU3RhdGUge1xuICBmb2xkZWQ6IGJvb2xlYW47XG59XG5cbnR5cGUgR3JvdXBOYW1lID0gc3RyaW5nO1xudHlwZSBBY2NvcmRpb25Db21wb25lbnRJZCA9IHN0cmluZztcblxuaW50ZXJmYWNlIEFjY29yZGlvbkdyb3VwIHtcbiAgLy8gcmVmZXJlbmNlIHRvIGV2ZXJ5IGFjY29yZGlvbnMgb2YgdGhlIGdyb3VwICh0byBhY2Nlc3MgdGhlbSBieSByZWZlcmVuY2UpXG4gIG1hcDogeyBbYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZ106IEFjY29yZGlvblN0YXRlIH07XG4gIC8vIGFycmF5IGNvbnRhaW5pbmcgdGhlIGVsZW1lbnRzIElEcyB0byBrZWVwIHRyYWNrIG9mIHRoZSBvcmRlXG4gIGFycmF5OiBBY2NvcmRpb25Db21wb25lbnRJZFtdO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neFJvd0FjY29yZGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGdyb3VwcyQ6IEJlaGF2aW9yU3ViamVjdDxEaWN0aW9ubmFyeTxBY2NvcmRpb25Hcm91cD4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG4gIHByaXZhdGUgY29tcG9uZW50VG9Hcm91cDogTWFwPEFjY29yZGlvbkNvbXBvbmVudElkLCBHcm91cE5hbWU+ID0gbmV3IE1hcCgpO1xuXG4gIHB1YmxpYyBhZGRDb21wb25lbnRUb0dyb3VwKGFjY29yZGlvbkNvbXBvbmVudElkOiBzdHJpbmcsIGdyb3VwTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gZ2V0IGN1cnJlbnQgZ3JvdXBcbiAgICBjb25zdCBncm91cHMgPSB0aGlzLmdyb3VwcyQuZ2V0VmFsdWUoKTtcbiAgICBsZXQgZ3JvdXA6IEFjY29yZGlvbkdyb3VwID0gZ3JvdXBzW2dyb3VwTmFtZV07XG5cbiAgICAvLyBpZiB0aGUgZ3JvdXAgZG9lcyBub3QgZXhpc3QgeWV0LCBpbml0aWFsaXplIGl0XG4gICAgaWYgKCFncm91cCkge1xuICAgICAgZ3JvdXAgPSB7XG4gICAgICAgIG1hcDoge30sXG4gICAgICAgIGFycmF5OiBbXSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIGFjY29yZGlvbiBJRCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQsIHRocm93XG4gICAgaWYgKCEhZ3JvdXAubWFwW2FjY29yZGlvbkNvbXBvbmVudElkXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIHJvdy1hY2NvcmRpb24gc2hvdWxkIGJlIHJlZ2lzdGVyZWQgb25seSBvbmNlJyk7XG4gICAgfVxuXG4gICAgLy8gYWRkIHRoZSBuZXcgYWNjb3JkaW9uIHRvIHRoZSBncm91cFxuICAgIGNvbnN0IGdyb3VwV2l0aE5ld0FjY29yZGlvbjogQWNjb3JkaW9uR3JvdXAgPSB7XG4gICAgICBtYXA6IHtcbiAgICAgICAgLi4uZ3JvdXAubWFwLFxuICAgICAgICBbYWNjb3JkaW9uQ29tcG9uZW50SWRdOiB7IGZvbGRlZDogZmFsc2UgfSxcbiAgICAgIH0sXG4gICAgICBhcnJheTogWy4uLmdyb3VwLmFycmF5LCBhY2NvcmRpb25Db21wb25lbnRJZF0sXG4gICAgfTtcblxuICAgIHRoaXMuY29tcG9uZW50VG9Hcm91cC5zZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQsIGdyb3VwTmFtZSk7XG5cbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gZ3JvdXBXaXRoTmV3QWNjb3JkaW9uLmFycmF5Lmxlbmd0aCAtIDE7XG5cbiAgICBsZXQgbmV3R3JvdXBXaXRoTmV3U3RhdGU6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPiA9IHtcbiAgICAgIC4uLnRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpLFxuICAgICAgW2dyb3VwTmFtZV06IGdyb3VwV2l0aE5ld0FjY29yZGlvbixcbiAgICB9O1xuXG4gICAgLy8gaWYgYWRkaW5nIGFuIGFjY29yZGlvbiB3aGljaCBpcyBub3QgdGhlIGZpcnN0IG9uZSwgY2xvc2UgdGhlIHByZXZpb3VzIG9uZVxuICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzQ29tcG9uZW50SWQ6IHN0cmluZyA9IGdyb3VwV2l0aE5ld0FjY29yZGlvbi5hcnJheVtpbmRleCAtIDFdO1xuXG4gICAgICBuZXdHcm91cFdpdGhOZXdTdGF0ZSA9IGdldE5ld1N0YXRlKG5ld0dyb3VwV2l0aE5ld1N0YXRlLCBncm91cE5hbWUsIHByZXZpb3VzQ29tcG9uZW50SWQsIHsgZm9sZGVkOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBzJC5uZXh0KG5ld0dyb3VwV2l0aE5ld1N0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDb21wb25lbnRGcm9tR3JvdXAoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpO1xuXG4gICAgY29uc3QgZ3JvdXBOYW1lOiBzdHJpbmcgPSB0aGlzLmNvbXBvbmVudFRvR3JvdXAuZ2V0KGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGlmICghZ3JvdXBOYW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZ3JvdXA6IEFjY29yZGlvbkdyb3VwID0gdGhpcy5ncm91cHMkLmdldFZhbHVlKClbZ3JvdXBOYW1lXTtcblxuICAgIGNvbnN0IHsgW2FjY29yZGlvbkNvbXBvbmVudElkXTogb21pdCwgLi4ubmV3TWFwIH0gPSBncm91cC5tYXA7XG5cbiAgICBjb25zdCBuZXdBcnJheSA9IGdyb3VwLmFycmF5LmZpbHRlcih4ID0+IHggIT09IGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGxldCBuZXdHcm91cHM6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPjtcblxuICAgIGNvbnN0IHsgW2dyb3VwTmFtZV06IGN1cnJlbnRHcm91cCwgLi4ucmVtYWluaW5nR3JvdXBzIH0gPSBncm91cHM7XG5cbiAgICBpZiAobmV3QXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBpZiBjdXJyZW50IGdyb3VwIGlzIG5vdyBlbXB0eSwgcmVtb3ZlIHRoZSBncm91cCBieSBrZWVwaW5nIG9ubHkgdGhlIG90aGVyc1xuICAgICAgbmV3R3JvdXBzID0gcmVtYWluaW5nR3JvdXBzO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmRleENvbXBUb1JlbW92ZTogbnVtYmVyID0gZ3JvdXAuYXJyYXkuZmluZEluZGV4KGlkID0+IGlkID09PSBhY2NvcmRpb25Db21wb25lbnRJZCk7XG4gICAgICBjb25zdCBpZFByZXZpb3VzQ29tcDogc3RyaW5nID0gZ3JvdXAuYXJyYXlbaW5kZXhDb21wVG9SZW1vdmUgLSAxXTtcblxuICAgICAgY29uc3QgbmV3R3JvdXBzQmVmb3JlVW5mb2xkaW5nUHJldmlvdXMgPSB7XG4gICAgICAgIC4uLnJlbWFpbmluZ0dyb3VwcyxcbiAgICAgICAgW2dyb3VwTmFtZV06IHtcbiAgICAgICAgICBtYXA6IG5ld01hcCxcbiAgICAgICAgICBhcnJheTogbmV3QXJyYXksXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBuZXdHcm91cHMgPSBnZXROZXdTdGF0ZShuZXdHcm91cHNCZWZvcmVVbmZvbGRpbmdQcmV2aW91cywgZ3JvdXBOYW1lLCBpZFByZXZpb3VzQ29tcCwgeyBmb2xkZWQ6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBzJC5uZXh0KG5ld0dyb3Vwcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QWNjb3JkaW9uU3RhdGU+IHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuXG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBzJC5waXBlKFxuICAgICAgbWFwKGdyb3VwcyA9PiBncm91cHNbZ3JvdXBOYW1lXSksXG4gICAgICBmaWx0ZXIoZ3JvdXAgPT4gISFncm91cCksXG4gICAgICBtYXAoZ3JvdXAgPT4gZ3JvdXAubWFwW2FjY29yZGlvbkNvbXBvbmVudElkXSksXG4gICAgICBmaWx0ZXIoZ3JvdXAgPT4gISFncm91cCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgZGVsYXkoMClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdGF0ZShhY2NvcmRpb25Db21wb25lbnRJZDogc3RyaW5nLCBuZXdTdGF0ZTogUGFydGlhbDxBY2NvcmRpb25TdGF0ZT4pOiB2b2lkIHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuICAgIGNvbnN0IHN0YXRlOiBBY2NvcmRpb25TdGF0ZSA9IHRoaXMuX2dldFN0YXRlKGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGlmICghIXN0YXRlKSB7XG4gICAgICB0aGlzLmdyb3VwcyQubmV4dChnZXROZXdTdGF0ZSh0aGlzLmdyb3VwcyQuZ2V0VmFsdWUoKSwgZ3JvdXBOYW1lLCBhY2NvcmRpb25Db21wb25lbnRJZCwgbmV3U3RhdGUpKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwTmFtZTogc3RyaW5nID0gdGhpcy5jb21wb25lbnRUb0dyb3VwLmdldChhY2NvcmRpb25Db21wb25lbnRJZCk7XG4gICAgY29uc3Qgc3RhdGU6IEFjY29yZGlvblN0YXRlID0gdGhpcy5fZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuXG4gICAgaWYgKCEhc3RhdGUpIHtcbiAgICAgIGNvbnN0IGZvbGRlZDogYm9vbGVhbiA9IHN0YXRlLmZvbGRlZDtcblxuICAgICAgdGhpcy51cGRhdGVTdGF0ZShhY2NvcmRpb25Db21wb25lbnRJZCwgeyBmb2xkZWQ6ICFmb2xkZWQgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IEFjY29yZGlvblN0YXRlIHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IGdyb3VwOiBBY2NvcmRpb25Hcm91cCA9IGdyb3Vwc1tncm91cE5hbWVdO1xuICAgIGlmICghIWdyb3VwKSB7XG4gICAgICBjb25zdCBzdGF0ZTogQWNjb3JkaW9uU3RhdGUgPSBncm91cC5tYXBbYWNjb3JkaW9uQ29tcG9uZW50SWRdO1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXROZXdTdGF0ZShcbiAgZ3JvdXBzOiBEaWN0aW9ubmFyeTxBY2NvcmRpb25Hcm91cD4sXG4gIGdyb3VwTmFtZTogc3RyaW5nLFxuICBhY2NvcmRpb25Db21wb25lbnRJZDogc3RyaW5nLFxuICBuZXdTdGF0ZTogUGFydGlhbDxBY2NvcmRpb25TdGF0ZT5cbik6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPiB7XG4gIHJldHVybiB7XG4gICAgLi4uZ3JvdXBzLFxuICAgIFtncm91cE5hbWVdOiB7XG4gICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXSxcbiAgICAgIG1hcDoge1xuICAgICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXS5tYXAsXG4gICAgICAgIFthY2NvcmRpb25Db21wb25lbnRJZF06IHtcbiAgICAgICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXS5tYXBbYWNjb3JkaW9uQ29tcG9uZW50SWRdLFxuICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuIiwiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neFJvd0FjY29yZGlvblNlcnZpY2UsIEFjY29yZGlvblN0YXRlIH0gZnJvbSAnLi9uZ3gtcm93LWFjY29yZGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IHRhcCwgdGFrZVVudGlsLCBkZWxheSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXJvdy1hY2NvcmRpb24nLFxuICB0ZW1wbGF0ZTogYDxkaXYgZnhGaWxsIGZ4TGF5b3V0PVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJuZ3gtcm93LWFjY29yZGlvblwiPlxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cIm5neC1yb3ctYWNjb3JkaW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiYm9keVwiICpuZ0lmPVwiZGlzcGxheUJvZHkkIHwgYXN5bmNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbjwvZGl2PlxuYCxcbiAgc3R5bGVzOiBbYC5uZ3gtcm93LWFjY29yZGlvbntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MTAwJX0ubmd4LXJvdy1hY2NvcmRpb24gLnRpdGxle3BhZGRpbmc6MTZweDstd2Via2l0LXdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybDstbXMtd3JpdGluZy1tb2RlOnRiLXJsO3dyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybDt0ZXh0LW9yaWVudGF0aW9uOnNpZGV3YXlzO2JhY2tncm91bmQtY29sb3I6I2Q4ZDhkODtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9Lm5neC1yb3ctYWNjb3JkaW9uIC5ib2R5e3BhZGRpbmc6MTZweDtiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjM7b3ZlcmZsb3c6YXV0b31gXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd4Um93QWNjb3JkaW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAvLyBuYW1lIG9mIHRoZSBncm91cCB0aGlzIGFjY29yZGlvbnMgYmVsb25ncyB0b1xuICBASW5wdXQoKSBncm91cDogc3RyaW5nO1xuXG4gIGRpc3BsYXlCb2R5JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIGlkOiBzdHJpbmcgPSB1dWlkKCk7XG4gIHByaXZhdGUgb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ3hSb3dBY2NvcmRpb25TZXJ2aWNlOiBOZ3hSb3dBY2NvcmRpb25TZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5ncm91cCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbbmd4LXJvdy1hY2NvcmRpb25dIHlvdSBzaG91bGQgYWx3YXlzIHBhc3MgYSBncm91cCB3aGVuIGNyZWF0aW5nIGEgcm93LWFjY29yZGlvbicpO1xuICAgIH1cblxuICAgIHRoaXMubmd4Um93QWNjb3JkaW9uU2VydmljZS5hZGRDb21wb25lbnRUb0dyb3VwKHRoaXMuaWQsIHRoaXMuZ3JvdXApO1xuXG4gICAgdGhpcy5kaXNwbGF5Qm9keSQgPSB0aGlzLm5neFJvd0FjY29yZGlvblNlcnZpY2UuZ2V0U3RhdGUodGhpcy5pZCkucGlwZShtYXAoeCA9PiAheC5mb2xkZWQpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy5uZ3hSb3dBY2NvcmRpb25TZXJ2aWNlLnJlbW92ZUNvbXBvbmVudEZyb21Hcm91cCh0aGlzLmlkKTtcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLm5neFJvd0FjY29yZGlvblNlcnZpY2UudG9nZ2xlKHRoaXMuaWQpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBOZ3hSb3dBY2NvcmRpb25TZXJ2aWNlIH0gZnJvbSAnLi9uZ3gtcm93LWFjY29yZGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hSb3dBY2NvcmRpb25Db21wb25lbnQgfSBmcm9tICcuL25neC1yb3ctYWNjb3JkaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL2NvcmUnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG4vLyBAdG9kbyBSb3V0ZXJNb2R1bGUgc2hvdWxkIGJlIHBhc3NlZCB3aXRoaW4gZm9yUm9vdCB0byBhdm9pZCBjcmVhdGluZyBuZXcgaW5zdGFuY2VzXG4vLyB0aGlzIHdpbGwgcHJldmVudCB1bmV4cGVjdGVkIGJlaGF2aW9yIHdpdGggaW50ZXJjZXB0b3JzIG9uIG1haW4gYXBwXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGbGV4TGF5b3V0TW9kdWxlLCBSb3V0ZXJNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtOZ3hSb3dBY2NvcmRpb25Db21wb25lbnRdLFxuICBleHBvcnRzOiBbTmd4Um93QWNjb3JkaW9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd4Um93QWNjb3JkaW9uTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ3hSb3dBY2NvcmRpb25Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtOZ3hSb3dBY2NvcmRpb25TZXJ2aWNlXSxcbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOlsiQmVoYXZpb3JTdWJqZWN0IiwibWFwIiwiZmlsdGVyIiwiZGlzdGluY3RVbnRpbENoYW5nZWQiLCJkZWxheSIsIkluamVjdGFibGUiLCJ1dWlkIiwiU3ViamVjdCIsIkNvbXBvbmVudCIsIklucHV0IiwiTmdNb2R1bGUiLCJDb21tb25Nb2R1bGUiLCJGbGV4TGF5b3V0TW9kdWxlIiwiUm91dGVyTW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7SUFBQTs7Ozs7Ozs7Ozs7Ozs7QUFjQSxJQVlPLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksa0JBQWtCLENBQUM7UUFDdEQsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDakQsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixLQUFLLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQUUsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hGO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDLENBQUE7QUFFRCxvQkFBdUIsQ0FBQyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1gsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQUUsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FB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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJvdy1hY2NvcmRpb24udW1kLmpzLm1hcCIsInNvdXJjZXMiOltudWxsLCJuZzovL25neC1yb3ctYWNjb3JkaW9uL2xpYi9uZ3gtcm93LWFjY29yZGlvbi5zZXJ2aWNlLnRzIiwibmc6Ly9uZ3gtcm93LWFjY29yZGlvbi9saWIvbmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50LnRzIiwibmc6Ly9uZ3gtcm93LWFjY29yZGlvbi9saWIvbmd4LXJvdy1hY2NvcmRpb24ubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5Db3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlXHJcbnRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlXHJcbkxpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcblxyXG5USElTIENPREUgSVMgUFJPVklERUQgT04gQU4gKkFTIElTKiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZXHJcbktJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZIElNUExJRURcclxuV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSxcclxuTUVSQ0hBTlRBQkxJVFkgT1IgTk9OLUlORlJJTkdFTUVOVC5cclxuXHJcblNlZSB0aGUgQXBhY2hlIFZlcnNpb24gMi4wIExpY2Vuc2UgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xyXG5hbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbi8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlICovXHJcblxyXG52YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gX19hc3NpZ24odCkge1xyXG4gICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcbiAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpIHRbcF0gPSBzW3BdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3Jlc3QocywgZSkge1xyXG4gICAgdmFyIHQgPSB7fTtcclxuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxyXG4gICAgICAgIHRbcF0gPSBzW3BdO1xyXG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIGlmIChlLmluZGV4T2YocFtpXSkgPCAwKVxyXG4gICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgIHJldHVybiB0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xyXG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XHJcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xyXG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcGFyYW0ocGFyYW1JbmRleCwgZGVjb3JhdG9yKSB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7IGRlY29yYXRvcih0YXJnZXQsIGtleSwgcGFyYW1JbmRleCk7IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fbWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpIHtcclxuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IudGhyb3codmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZShyZXN1bHQudmFsdWUpOyB9KS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2dlbmVyYXRvcih0aGlzQXJnLCBib2R5KSB7XHJcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xyXG4gICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksIFwidGhyb3dcIjogdmVyYigxKSwgXCJyZXR1cm5cIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpczsgfSksIGc7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgcmV0dXJuIGZ1bmN0aW9uICh2KSB7IHJldHVybiBzdGVwKFtuLCB2XSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcclxuICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XHJcbiAgICAgICAgd2hpbGUgKF8pIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IHlbb3BbMF0gJiAyID8gXCJyZXR1cm5cIiA6IG9wWzBdID8gXCJ0aHJvd1wiIDogXCJuZXh0XCJdKSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcclxuICAgICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFswLCB0LnZhbHVlXTtcclxuICAgICAgICAgICAgc3dpdGNoIChvcFswXSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAwOiBjYXNlIDE6IHQgPSBvcDsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xyXG4gICAgICAgICAgICAgICAgY2FzZSA1OiBfLmxhYmVsKys7IHkgPSBvcFsxXTsgb3AgPSBbMF07IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA3OiBvcCA9IF8ub3BzLnBvcCgpOyBfLnRyeXMucG9wKCk7IGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgeyBfID0gMDsgY29udGludWU7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IChvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkpIHsgXy5sYWJlbCA9IG9wWzFdOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7IF8ubGFiZWwgPSB0WzJdOyBfLm9wcy5wdXNoKG9wKTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XHJcbiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07IHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgZXhwb3J0cykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAoIWV4cG9ydHMuaGFzT3duUHJvcGVydHkocCkpIGV4cG9ydHNbcF0gPSBtW3BdO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7XHJcbiAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19yZWFkKG8sIG4pIHtcclxuICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9bU3ltYm9sLml0ZXJhdG9yXTtcclxuICAgIGlmICghbSkgcmV0dXJuIG87XHJcbiAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyb3IpIHsgZSA9IHsgZXJyb3I6IGVycm9yIH07IH1cclxuICAgIGZpbmFsbHkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpW1wicmV0dXJuXCJdKSkgbS5jYWxsKGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaW5hbGx5IHsgaWYgKGUpIHRocm93IGUuZXJyb3I7IH1cclxuICAgIH1cclxuICAgIHJldHVybiBhcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fc3ByZWFkKCkge1xyXG4gICAgZm9yICh2YXIgYXIgPSBbXSwgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgYXIgPSBhci5jb25jYXQoX19yZWFkKGFyZ3VtZW50c1tpXSkpO1xyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdCh2KSB7XHJcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNHZW5lcmF0b3IodGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7XHJcbiAgICBpZiAoIVN5bWJvbC5hc3luY0l0ZXJhdG9yKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xyXG4gICAgdmFyIGcgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSksIGksIHEgPSBbXTtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSwgaTtcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyBpZiAoZ1tuXSkgaVtuXSA9IGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAoYSwgYikgeyBxLnB1c2goW24sIHYsIGEsIGJdKSA+IDEgfHwgcmVzdW1lKG4sIHYpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gcmVzdW1lKG4sIHYpIHsgdHJ5IHsgc3RlcChnW25dKHYpKTsgfSBjYXRjaCAoZSkgeyBzZXR0bGUocVswXVszXSwgZSk7IH0gfVxyXG4gICAgZnVuY3Rpb24gc3RlcChyKSB7IHIudmFsdWUgaW5zdGFuY2VvZiBfX2F3YWl0ID8gUHJvbWlzZS5yZXNvbHZlKHIudmFsdWUudikudGhlbihmdWxmaWxsLCByZWplY3QpIDogc2V0dGxlKHFbMF1bMl0sIHIpOyAgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaWYgKG9bbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH07IH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXN5bmNWYWx1ZXMobykge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl07XHJcbiAgICByZXR1cm4gbSA/IG0uY2FsbChvKSA6IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKTtcclxufSIsImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXBUbywgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFwLCBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG1hcENoaWxkcmVuSW50b0FycmF5IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyL3NyYy91cmxfdHJlZSc7XG5cbmludGVyZmFjZSBEaWN0aW9ubmFyeTxUPiB7XG4gIFtrZXk6IHN0cmluZ106IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3JkaW9uU3RhdGUge1xuICBmb2xkZWQ6IGJvb2xlYW47XG59XG5cbnR5cGUgR3JvdXBOYW1lID0gc3RyaW5nO1xudHlwZSBBY2NvcmRpb25Db21wb25lbnRJZCA9IHN0cmluZztcblxuaW50ZXJmYWNlIEFjY29yZGlvbkdyb3VwIHtcbiAgLy8gcmVmZXJlbmNlIHRvIGV2ZXJ5IGFjY29yZGlvbnMgb2YgdGhlIGdyb3VwICh0byBhY2Nlc3MgdGhlbSBieSByZWZlcmVuY2UpXG4gIG1hcDogeyBbYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZ106IEFjY29yZGlvblN0YXRlIH07XG4gIC8vIGFycmF5IGNvbnRhaW5pbmcgdGhlIGVsZW1lbnRzIElEcyB0byBrZWVwIHRyYWNrIG9mIHRoZSBvcmRlXG4gIGFycmF5OiBBY2NvcmRpb25Db21wb25lbnRJZFtdO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neFJvd0FjY29yZGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGdyb3VwcyQ6IEJlaGF2aW9yU3ViamVjdDxEaWN0aW9ubmFyeTxBY2NvcmRpb25Hcm91cD4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG4gIHByaXZhdGUgY29tcG9uZW50VG9Hcm91cDogTWFwPEFjY29yZGlvbkNvbXBvbmVudElkLCBHcm91cE5hbWU+ID0gbmV3IE1hcCgpO1xuXG4gIHB1YmxpYyBhZGRDb21wb25lbnRUb0dyb3VwKGFjY29yZGlvbkNvbXBvbmVudElkOiBzdHJpbmcsIGdyb3VwTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gZ2V0IGN1cnJlbnQgZ3JvdXBcbiAgICBjb25zdCBncm91cHMgPSB0aGlzLmdyb3VwcyQuZ2V0VmFsdWUoKTtcbiAgICBsZXQgZ3JvdXA6IEFjY29yZGlvbkdyb3VwID0gZ3JvdXBzW2dyb3VwTmFtZV07XG5cbiAgICAvLyBpZiB0aGUgZ3JvdXAgZG9lcyBub3QgZXhpc3QgeWV0LCBpbml0aWFsaXplIGl0XG4gICAgaWYgKCFncm91cCkge1xuICAgICAgZ3JvdXAgPSB7XG4gICAgICAgIG1hcDoge30sXG4gICAgICAgIGFycmF5OiBbXSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIGFjY29yZGlvbiBJRCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQsIHRocm93XG4gICAgaWYgKCEhZ3JvdXAubWFwW2FjY29yZGlvbkNvbXBvbmVudElkXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIHJvdy1hY2NvcmRpb24gc2hvdWxkIGJlIHJlZ2lzdGVyZWQgb25seSBvbmNlJyk7XG4gICAgfVxuXG4gICAgLy8gYWRkIHRoZSBuZXcgYWNjb3JkaW9uIHRvIHRoZSBncm91cFxuICAgIGNvbnN0IGdyb3VwV2l0aE5ld0FjY29yZGlvbjogQWNjb3JkaW9uR3JvdXAgPSB7XG4gICAgICBtYXA6IHtcbiAgICAgICAgLi4uZ3JvdXAubWFwLFxuICAgICAgICBbYWNjb3JkaW9uQ29tcG9uZW50SWRdOiB7IGZvbGRlZDogZmFsc2UgfSxcbiAgICAgIH0sXG4gICAgICBhcnJheTogWy4uLmdyb3VwLmFycmF5LCBhY2NvcmRpb25Db21wb25lbnRJZF0sXG4gICAgfTtcblxuICAgIHRoaXMuY29tcG9uZW50VG9Hcm91cC5zZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQsIGdyb3VwTmFtZSk7XG5cbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gZ3JvdXBXaXRoTmV3QWNjb3JkaW9uLmFycmF5Lmxlbmd0aCAtIDE7XG5cbiAgICBsZXQgbmV3R3JvdXBXaXRoTmV3U3RhdGU6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPiA9IHtcbiAgICAgIC4uLnRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpLFxuICAgICAgW2dyb3VwTmFtZV06IGdyb3VwV2l0aE5ld0FjY29yZGlvbixcbiAgICB9O1xuXG4gICAgLy8gaWYgYWRkaW5nIGFuIGFjY29yZGlvbiB3aGljaCBpcyBub3QgdGhlIGZpcnN0IG9uZSwgY2xvc2UgdGhlIHByZXZpb3VzIG9uZVxuICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzQ29tcG9uZW50SWQ6IHN0cmluZyA9IGdyb3VwV2l0aE5ld0FjY29yZGlvbi5hcnJheVtpbmRleCAtIDFdO1xuXG4gICAgICBuZXdHcm91cFdpdGhOZXdTdGF0ZSA9IGdldE5ld1N0YXRlKG5ld0dyb3VwV2l0aE5ld1N0YXRlLCBncm91cE5hbWUsIHByZXZpb3VzQ29tcG9uZW50SWQsIHsgZm9sZGVkOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBzJC5uZXh0KG5ld0dyb3VwV2l0aE5ld1N0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDb21wb25lbnRGcm9tR3JvdXAoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpO1xuXG4gICAgY29uc3QgZ3JvdXBOYW1lOiBzdHJpbmcgPSB0aGlzLmNvbXBvbmVudFRvR3JvdXAuZ2V0KGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGlmICghZ3JvdXBOYW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZ3JvdXA6IEFjY29yZGlvbkdyb3VwID0gdGhpcy5ncm91cHMkLmdldFZhbHVlKClbZ3JvdXBOYW1lXTtcblxuICAgIGNvbnN0IHsgW2FjY29yZGlvbkNvbXBvbmVudElkXTogb21pdCwgLi4ubmV3TWFwIH0gPSBncm91cC5tYXA7XG5cbiAgICBjb25zdCBuZXdBcnJheSA9IGdyb3VwLmFycmF5LmZpbHRlcih4ID0+IHggIT09IGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGxldCBuZXdHcm91cHM6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPjtcblxuICAgIGNvbnN0IHsgW2dyb3VwTmFtZV06IGN1cnJlbnRHcm91cCwgLi4ucmVtYWluaW5nR3JvdXBzIH0gPSBncm91cHM7XG5cbiAgICBpZiAobmV3QXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBpZiBjdXJyZW50IGdyb3VwIGlzIG5vdyBlbXB0eSwgcmVtb3ZlIHRoZSBncm91cCBieSBrZWVwaW5nIG9ubHkgdGhlIG90aGVyc1xuICAgICAgbmV3R3JvdXBzID0gcmVtYWluaW5nR3JvdXBzO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmRleENvbXBUb1JlbW92ZTogbnVtYmVyID0gZ3JvdXAuYXJyYXkuZmluZEluZGV4KGlkID0+IGlkID09PSBhY2NvcmRpb25Db21wb25lbnRJZCk7XG4gICAgICBjb25zdCBpZFByZXZpb3VzQ29tcDogc3RyaW5nID0gZ3JvdXAuYXJyYXlbaW5kZXhDb21wVG9SZW1vdmUgLSAxXTtcblxuICAgICAgY29uc3QgbmV3R3JvdXBzQmVmb3JlVW5mb2xkaW5nUHJldmlvdXMgPSB7XG4gICAgICAgIC4uLnJlbWFpbmluZ0dyb3VwcyxcbiAgICAgICAgW2dyb3VwTmFtZV06IHtcbiAgICAgICAgICBtYXA6IG5ld01hcCxcbiAgICAgICAgICBhcnJheTogbmV3QXJyYXksXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBuZXdHcm91cHMgPSBnZXROZXdTdGF0ZShuZXdHcm91cHNCZWZvcmVVbmZvbGRpbmdQcmV2aW91cywgZ3JvdXBOYW1lLCBpZFByZXZpb3VzQ29tcCwgeyBmb2xkZWQ6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBzJC5uZXh0KG5ld0dyb3Vwcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QWNjb3JkaW9uU3RhdGU+IHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuXG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBzJC5waXBlKFxuICAgICAgbWFwKGdyb3VwcyA9PiBncm91cHNbZ3JvdXBOYW1lXSksXG4gICAgICBmaWx0ZXIoZ3JvdXAgPT4gISFncm91cCksXG4gICAgICBtYXAoZ3JvdXAgPT4gZ3JvdXAubWFwW2FjY29yZGlvbkNvbXBvbmVudElkXSksXG4gICAgICBmaWx0ZXIoZ3JvdXAgPT4gISFncm91cCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgZGVsYXkoMClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdGF0ZShhY2NvcmRpb25Db21wb25lbnRJZDogc3RyaW5nLCBuZXdTdGF0ZTogUGFydGlhbDxBY2NvcmRpb25TdGF0ZT4pOiB2b2lkIHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuICAgIGNvbnN0IHN0YXRlOiBBY2NvcmRpb25TdGF0ZSA9IHRoaXMuX2dldFN0YXRlKGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGlmICghIXN0YXRlKSB7XG4gICAgICB0aGlzLmdyb3VwcyQubmV4dChnZXROZXdTdGF0ZSh0aGlzLmdyb3VwcyQuZ2V0VmFsdWUoKSwgZ3JvdXBOYW1lLCBhY2NvcmRpb25Db21wb25lbnRJZCwgbmV3U3RhdGUpKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwTmFtZTogc3RyaW5nID0gdGhpcy5jb21wb25lbnRUb0dyb3VwLmdldChhY2NvcmRpb25Db21wb25lbnRJZCk7XG4gICAgY29uc3Qgc3RhdGU6IEFjY29yZGlvblN0YXRlID0gdGhpcy5fZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuXG4gICAgaWYgKCEhc3RhdGUpIHtcbiAgICAgIGNvbnN0IGZvbGRlZDogYm9vbGVhbiA9IHN0YXRlLmZvbGRlZDtcblxuICAgICAgdGhpcy51cGRhdGVTdGF0ZShhY2NvcmRpb25Db21wb25lbnRJZCwgeyBmb2xkZWQ6ICFmb2xkZWQgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IEFjY29yZGlvblN0YXRlIHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IGdyb3VwOiBBY2NvcmRpb25Hcm91cCA9IGdyb3Vwc1tncm91cE5hbWVdO1xuICAgIGlmICghIWdyb3VwKSB7XG4gICAgICBjb25zdCBzdGF0ZTogQWNjb3JkaW9uU3RhdGUgPSBncm91cC5tYXBbYWNjb3JkaW9uQ29tcG9uZW50SWRdO1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXROZXdTdGF0ZShcbiAgZ3JvdXBzOiBEaWN0aW9ubmFyeTxBY2NvcmRpb25Hcm91cD4sXG4gIGdyb3VwTmFtZTogc3RyaW5nLFxuICBhY2NvcmRpb25Db21wb25lbnRJZDogc3RyaW5nLFxuICBuZXdTdGF0ZTogUGFydGlhbDxBY2NvcmRpb25TdGF0ZT5cbik6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPiB7XG4gIHJldHVybiB7XG4gICAgLi4uZ3JvdXBzLFxuICAgIFtncm91cE5hbWVdOiB7XG4gICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXSxcbiAgICAgIG1hcDoge1xuICAgICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXS5tYXAsXG4gICAgICAgIFthY2NvcmRpb25Db21wb25lbnRJZF06IHtcbiAgICAgICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXS5tYXBbYWNjb3JkaW9uQ29tcG9uZW50SWRdLFxuICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuIiwiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neFJvd0FjY29yZGlvblNlcnZpY2UsIEFjY29yZGlvblN0YXRlIH0gZnJvbSAnLi9uZ3gtcm93LWFjY29yZGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IHRhcCwgdGFrZVVudGlsLCBkZWxheSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXJvdy1hY2NvcmRpb24nLFxuICB0ZW1wbGF0ZTogYDxkaXYgZnhGaWxsIGZ4TGF5b3V0PVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJuZ3gtcm93LWFjY29yZGlvblwiPlxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cIm5neC1yb3ctYWNjb3JkaW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiYm9keVwiICpuZ0lmPVwiZGlzcGxheUJvZHkkIHwgYXN5bmNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbjwvZGl2PlxuYCxcbiAgc3R5bGVzOiBbYGBdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hSb3dBY2NvcmRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gIC8vIG5hbWUgb2YgdGhlIGdyb3VwIHRoaXMgYWNjb3JkaW9ucyBiZWxvbmdzIHRvXG4gIEBJbnB1dCgpIGdyb3VwOiBzdHJpbmc7XG5cbiAgZGlzcGxheUJvZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgaWQ6IHN0cmluZyA9IHV1aWQoKTtcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5neFJvd0FjY29yZGlvblNlcnZpY2U6IE5neFJvd0FjY29yZGlvblNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmdyb3VwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tuZ3gtcm93LWFjY29yZGlvbl0geW91IHNob3VsZCBhbHdheXMgcGFzcyBhIGdyb3VwIHdoZW4gY3JlYXRpbmcgYSByb3ctYWNjb3JkaW9uJyk7XG4gICAgfVxuXG4gICAgdGhpcy5uZ3hSb3dBY2NvcmRpb25TZXJ2aWNlLmFkZENvbXBvbmVudFRvR3JvdXAodGhpcy5pZCwgdGhpcy5ncm91cCk7XG5cbiAgICB0aGlzLmRpc3BsYXlCb2R5JCA9IHRoaXMubmd4Um93QWNjb3JkaW9uU2VydmljZS5nZXRTdGF0ZSh0aGlzLmlkKS5waXBlKG1hcCh4ID0+ICF4LmZvbGRlZCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLm5neFJvd0FjY29yZGlvblNlcnZpY2UucmVtb3ZlQ29tcG9uZW50RnJvbUdyb3VwKHRoaXMuaWQpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIHRoaXMubmd4Um93QWNjb3JkaW9uU2VydmljZS50b2dnbGUodGhpcy5pZCk7XG4gIH1cbn1cbiIsImltcG9ydCB7IE5neFJvd0FjY29yZGlvblNlcnZpY2UgfSBmcm9tICcuL25neC1yb3ctYWNjb3JkaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neFJvd0FjY29yZGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvY29yZSc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbi8vIEB0b2RvIFJvdXRlck1vZHVsZSBzaG91bGQgYmUgcGFzc2VkIHdpdGhpbiBmb3JSb290IHRvIGF2b2lkIGNyZWF0aW5nIG5ldyBpbnN0YW5jZXNcbi8vIHRoaXMgd2lsbCBwcmV2ZW50IHVuZXhwZWN0ZWQgYmVoYXZpb3Igd2l0aCBpbnRlcmNlcHRvcnMgb24gbWFpbiBhcHBcbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZsZXhMYXlvdXRNb2R1bGUsIFJvdXRlck1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW05neFJvd0FjY29yZGlvbkNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtOZ3hSb3dBY2NvcmRpb25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hSb3dBY2NvcmRpb25Nb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE5neFJvd0FjY29yZGlvbk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW05neFJvd0FjY29yZGlvblNlcnZpY2VdLFxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJCZWhhdmlvclN1YmplY3QiLCJtYXAiLCJmaWx0ZXIiLCJkaXN0aW5jdFVudGlsQ2hhbmdlZCIsImRlbGF5IiwiSW5qZWN0YWJsZSIsInV1aWQiLCJTdWJqZWN0IiwiQ29tcG9uZW50IiwiSW5wdXQiLCJOZ01vZHVsZSIsIkNvbW1vbk1vZHVsZSIsIkZsZXhMYXlvdXRNb2R1bGUiLCJSb3V0ZXJNb2R1bGUiXSwibWFwcGluZ3MiOiI7Ozs7OztJQUFBOzs7Ozs7Ozs7Ozs7OztBQWNBLElBWU8sSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxrQkFB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

@@ -1,2 +0,2 @@

!function(o,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("uuid"),require("@angular/flex-layout"),require("@angular/common"),require("@angular/router")):"function"==typeof define&&define.amd?define("ngx-row-accordion",["exports","@angular/core","rxjs","rxjs/operators","uuid","@angular/flex-layout","@angular/common","@angular/router"],r):r(o["ngx-row-accordion"]={},o.ng.core,o.rxjs,o.rxjs.operators,null,o.ng["flex-layout"],o.ng.common,o.ng.router)}(this,function(o,r,t,e,n,i,a,u){"use strict";var f=Object.assign||function(o){for(var r,t=1,e=arguments.length;t<e;t++)for(var n in r=arguments[t])Object.prototype.hasOwnProperty.call(r,n)&&(o[n]=r[n]);return o};function y(o,r){var t={};for(var e in o)Object.prototype.hasOwnProperty.call(o,e)&&r.indexOf(e)<0&&(t[e]=o[e]);if(null!=o&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(e=Object.getOwnPropertySymbols(o);n<e.length;n++)r.indexOf(e[n])<0&&(t[e[n]]=o[e[n]])}return t}function c(o,r){var t="function"==typeof Symbol&&o[Symbol.iterator];if(!t)return o;var e,n,i=t.call(o),a=[];try{for(;(void 0===r||0<r--)&&!(e=i.next()).done;)a.push(e.value)}catch(u){n={error:u}}finally{try{e&&!e.done&&(t=i["return"])&&t.call(i)}finally{if(n)throw n.error}}return a}var p=function(){function o(){this.groups$=new t.BehaviorSubject({}),this.componentToGroup=new Map}return o.prototype.addComponentToGroup=function(o,r){var t=this.groups$.getValue()[r];if(t||(t={map:{},array:[]}),t.map[o])throw new Error("A row-accordion should be registered only once");var e={map:f({},t.map,(n={},n[o]={folded:!1},n)),array:function(){for(var o=[],r=0;r<arguments.length;r++)o=o.concat(c(arguments[r]));return o}(t.array,[o])};this.componentToGroup.set(o,r);var n,i,a=e.array.length-1,u=f({},this.groups$.getValue(),((i={})[r]=e,i));0<a&&(u=m(u,r,e.array[a-1],{folded:!0}));this.groups$.next(u)},o.prototype.removeComponentFromGroup=function(r){var o=this.groups$.getValue(),t=this.componentToGroup.get(r);if(t){var e,n,i=this.groups$.getValue()[t],a=i.map,u=r,c=(a[u],y(a,["symbol"==typeof u?u:u+""])),p=i.array.filter(function(o){return o!==r}),s=t,l=(o[s],y(o,["symbol"==typeof s?s:s+""]));if(0===p.length)e=l;else{var d=i.array.findIndex(function(o){return o===r}),g=i.array[d-1];e=m(f({},l,((n={})[t]={map:c,array:p},n)),t,g,{folded:!1})}this.groups$.next(e)}},o.prototype.getState=function(r){var t=this.componentToGroup.get(r);return this.groups$.pipe(e.map(function(o){return o[t]}),e.filter(function(o){return!!o}),e.map(function(o){return o.map[r]}),e.filter(function(o){return!!o}),e.distinctUntilChanged(),e.delay(0))},o.prototype.updateState=function(o,r){var t=this.componentToGroup.get(o);this._getState(o)&&this.groups$.next(m(this.groups$.getValue(),t,o,r))},o.prototype.toggle=function(o){this.componentToGroup.get(o);var r=this._getState(o);if(r){var t=r.folded;this.updateState(o,{folded:!t})}},o.prototype._getState=function(o){var r=this.componentToGroup.get(o),t=this.groups$.getValue()[r];if(t)return t.map[o]},o.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],o.ngInjectableDef=r.defineInjectable({factory:function(){return new o},token:o,providedIn:"root"}),o}();function m(o,r,t,e){return f({},o,((n={})[r]=f({},o[r],{map:f({},o[r].map,(i={},i[t]=f({},o[r].map[t],e),i))}),n));var n,i}var s=function(){function o(o){this.ngxRowAccordionService=o,this.id=n.v4(),this.onDestroy$=new t.Subject}return o.prototype.ngOnInit=function(){if(!this.group)throw new Error("[ngx-row-accordion] you should always pass a group when creating a row-accordion");this.ngxRowAccordionService.addComponentToGroup(this.id,this.group),this.displayBody$=this.ngxRowAccordionService.getState(this.id).pipe(e.map(function(o){return!o.folded}))},o.prototype.ngOnDestroy=function(){this.onDestroy$.complete(),this.ngxRowAccordionService.removeComponentFromGroup(this.id)},o.prototype.toggle=function(){this.ngxRowAccordionService.toggle(this.id)},o.decorators=[{type:r.Component,args:[{selector:"ngx-row-accordion",template:'<div fxFill fxLayout="row">\n <div class="ngx-row-accordion">\n <div fxLayout="row" class="ngx-row-accordion">\n <div class="title" (click)="toggle()">\n {{ title }}\n </div>\n\n <div class="body" *ngIf="displayBody$ | async">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n',styles:[".ngx-row-accordion{display:inline-block;height:100%}.ngx-row-accordion .title{padding:16px;-webkit-writing-mode:vertical-rl;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:sideways;background-color:#d8d8d8;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ngx-row-accordion .body{padding:16px;background-color:#f3f3f3;overflow:auto}"]}]}],o.ctorParameters=function(){return[{type:p}]},o.propDecorators={title:[{type:r.Input}],group:[{type:r.Input}]},o}(),l=function(){function o(){}return o.forRoot=function(){return{ngModule:o,providers:[p]}},o.decorators=[{type:r.NgModule,args:[{imports:[a.CommonModule,i.FlexLayoutModule,u.RouterModule],declarations:[s],exports:[s]}]}],o}();o.NgxRowAccordionService=p,o.NgxRowAccordionComponent=s,o.NgxRowAccordionModule=l,Object.defineProperty(o,"__esModule",{value:!0})});
!function(o,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("uuid"),require("@angular/flex-layout"),require("@angular/common"),require("@angular/router")):"function"==typeof define&&define.amd?define("ngx-row-accordion",["exports","@angular/core","rxjs","rxjs/operators","uuid","@angular/flex-layout","@angular/common","@angular/router"],t):t(o["ngx-row-accordion"]={},o.ng.core,o.rxjs,o.rxjs.operators,null,o.ng["flex-layout"],o.ng.common,o.ng.router)}(this,function(o,t,r,e,n,i,a,u){"use strict";var g=Object.assign||function(o){for(var t,r=1,e=arguments.length;r<e;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(o[n]=t[n]);return o};function y(o,t){var r={};for(var e in o)Object.prototype.hasOwnProperty.call(o,e)&&t.indexOf(e)<0&&(r[e]=o[e]);if(null!=o&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(e=Object.getOwnPropertySymbols(o);n<e.length;n++)t.indexOf(e[n])<0&&(r[e[n]]=o[e[n]])}return r}function c(o,t){var r="function"==typeof Symbol&&o[Symbol.iterator];if(!r)return o;var e,n,i=r.call(o),a=[];try{for(;(void 0===t||0<t--)&&!(e=i.next()).done;)a.push(e.value)}catch(u){n={error:u}}finally{try{e&&!e.done&&(r=i["return"])&&r.call(i)}finally{if(n)throw n.error}}return a}var p=function(){function o(){this.groups$=new r.BehaviorSubject({}),this.componentToGroup=new Map}return o.prototype.addComponentToGroup=function(o,t){var r=this.groups$.getValue()[t];if(r||(r={map:{},array:[]}),r.map[o])throw new Error("A row-accordion should be registered only once");var e={map:g({},r.map,(n={},n[o]={folded:!1},n)),array:function(){for(var o=[],t=0;t<arguments.length;t++)o=o.concat(c(arguments[t]));return o}(r.array,[o])};this.componentToGroup.set(o,t);var n,i,a=e.array.length-1,u=g({},this.groups$.getValue(),((i={})[t]=e,i));0<a&&(u=h(u,t,e.array[a-1],{folded:!0}));this.groups$.next(u)},o.prototype.removeComponentFromGroup=function(t){var o=this.groups$.getValue(),r=this.componentToGroup.get(t);if(r){var e,n,i=this.groups$.getValue()[r],a=i.map,u=t,c=(a[u],y(a,["symbol"==typeof u?u:u+""])),p=i.array.filter(function(o){return o!==t}),s=r,l=(o[s],y(o,["symbol"==typeof s?s:s+""]));if(0===p.length)e=l;else{var d=i.array.findIndex(function(o){return o===t}),f=i.array[d-1];e=h(g({},l,((n={})[r]={map:c,array:p},n)),r,f,{folded:!1})}this.groups$.next(e)}},o.prototype.getState=function(t){var r=this.componentToGroup.get(t);return this.groups$.pipe(e.map(function(o){return o[r]}),e.filter(function(o){return!!o}),e.map(function(o){return o.map[t]}),e.filter(function(o){return!!o}),e.distinctUntilChanged(),e.delay(0))},o.prototype.updateState=function(o,t){var r=this.componentToGroup.get(o);this._getState(o)&&this.groups$.next(h(this.groups$.getValue(),r,o,t))},o.prototype.toggle=function(o){this.componentToGroup.get(o);var t=this._getState(o);if(t){var r=t.folded;this.updateState(o,{folded:!r})}},o.prototype._getState=function(o){var t=this.componentToGroup.get(o),r=this.groups$.getValue()[t];if(r)return r.map[o]},o.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],o.ngInjectableDef=t.defineInjectable({factory:function(){return new o},token:o,providedIn:"root"}),o}();function h(o,t,r,e){return g({},o,((n={})[t]=g({},o[t],{map:g({},o[t].map,(i={},i[r]=g({},o[t].map[r],e),i))}),n));var n,i}var s=function(){function o(o){this.ngxRowAccordionService=o,this.id=n.v4(),this.onDestroy$=new r.Subject}return o.prototype.ngOnInit=function(){if(!this.group)throw new Error("[ngx-row-accordion] you should always pass a group when creating a row-accordion");this.ngxRowAccordionService.addComponentToGroup(this.id,this.group),this.displayBody$=this.ngxRowAccordionService.getState(this.id).pipe(e.map(function(o){return!o.folded}))},o.prototype.ngOnDestroy=function(){this.onDestroy$.complete(),this.ngxRowAccordionService.removeComponentFromGroup(this.id)},o.prototype.toggle=function(){this.ngxRowAccordionService.toggle(this.id)},o.decorators=[{type:t.Component,args:[{selector:"ngx-row-accordion",template:'<div fxFill fxLayout="row">\n <div class="ngx-row-accordion">\n <div fxLayout="row" class="ngx-row-accordion">\n <div class="title" (click)="toggle()">\n {{ title }}\n </div>\n\n <div class="body" *ngIf="displayBody$ | async">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n',styles:[""]}]}],o.ctorParameters=function(){return[{type:p}]},o.propDecorators={title:[{type:t.Input}],group:[{type:t.Input}]},o}(),l=function(){function o(){}return o.forRoot=function(){return{ngModule:o,providers:[p]}},o.decorators=[{type:t.NgModule,args:[{imports:[a.CommonModule,i.FlexLayoutModule,u.RouterModule],declarations:[s],exports:[s]}]}],o}();o.NgxRowAccordionService=p,o.NgxRowAccordionComponent=s,o.NgxRowAccordionModule=l,Object.defineProperty(o,"__esModule",{value:!0})});
//# sourceMappingURL=ngx-row-accordion.umd.min.js.map

@@ -62,3 +62,3 @@ /**

`,
styles: [`.ngx-row-accordion{display:inline-block;height:100%}.ngx-row-accordion .title{padding:16px;-webkit-writing-mode:vertical-rl;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:sideways;background-color:#d8d8d8;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ngx-row-accordion .body{padding:16px;background-color:#f3f3f3;overflow:auto}`],
styles: [``],
},] },

@@ -89,2 +89,2 @@ ];

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXJvdy1hY2NvcmRpb24vIiwic291cmNlcyI6WyJsaWIvbmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQWtCLE1BQU0sNkJBQTZCLENBQUM7QUFDckYsT0FBTyxFQUF5QixHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQVMsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBc0JsQyxNQUFNOzs7O0lBVUosWUFBb0Isc0JBQThDO1FBQTlDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7a0JBSDdDLElBQUksRUFBRTswQkFDUyxJQUFJLE9BQU8sRUFBRTtLQUVxQjs7OztJQUV0RSxRQUFRO1FBQ04sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGtGQUFrRixDQUFDLENBQUM7U0FDckc7UUFFRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUM3Rjs7OztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTNCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDL0Q7Ozs7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDN0M7OztZQWxERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Q0FlWDtnQkFDQyxNQUFNLEVBQUUsQ0FBQyxrWkFBa1osQ0FBQzthQUM3Wjs7OztZQXhCUSxzQkFBc0I7OztvQkEwQjVCLEtBQUs7b0JBRUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hSb3dBY2NvcmRpb25TZXJ2aWNlLCBBY2NvcmRpb25TdGF0ZSB9IGZyb20gJy4vbmd4LXJvdy1hY2NvcmRpb24uc2VydmljZSc7XG5pbXBvcnQgeyB0YXAsIHRha2VVbnRpbCwgZGVsYXksIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG1lcmdlLCBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1yb3ctYWNjb3JkaW9uJyxcbiAgdGVtcGxhdGU6IGA8ZGl2IGZ4RmlsbCBmeExheW91dD1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwibmd4LXJvdy1hY2NvcmRpb25cIj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJuZ3gtcm93LWFjY29yZGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgICAgIHt7IHRpdGxlIH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImJvZHlcIiAqbmdJZj1cImRpc3BsYXlCb2R5JCB8IGFzeW5jXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG48L2Rpdj5cbmAsXG4gIHN0eWxlczogW2Aubmd4LXJvdy1hY2NvcmRpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjEwMCV9Lm5neC1yb3ctYWNjb3JkaW9uIC50aXRsZXtwYWRkaW5nOjE2cHg7LXdlYmtpdC13cml0aW5nLW1vZGU6dmVydGljYWwtcmw7LW1zLXdyaXRpbmctbW9kZTp0Yi1ybDt3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7dGV4dC1vcmllbnRhdGlvbjpzaWRld2F5cztiYWNrZ3JvdW5kLWNvbG9yOiNkOGQ4ZDg7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5uZ3gtcm93LWFjY29yZGlvbiAuYm9keXtwYWRkaW5nOjE2cHg7YmFja2dyb3VuZC1jb2xvcjojZjNmM2YzO292ZXJmbG93OmF1dG99YF0sXG59KVxuZXhwb3J0IGNsYXNzIE5neFJvd0FjY29yZGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgLy8gbmFtZSBvZiB0aGUgZ3JvdXAgdGhpcyBhY2NvcmRpb25zIGJlbG9uZ3MgdG9cbiAgQElucHV0KCkgZ3JvdXA6IHN0cmluZztcblxuICBkaXNwbGF5Qm9keSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJpdmF0ZSBpZDogc3RyaW5nID0gdXVpZCgpO1xuICBwcml2YXRlIG9uRGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmd4Um93QWNjb3JkaW9uU2VydmljZTogTmd4Um93QWNjb3JkaW9uU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuZ3JvdXApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignW25neC1yb3ctYWNjb3JkaW9uXSB5b3Ugc2hvdWxkIGFsd2F5cyBwYXNzIGEgZ3JvdXAgd2hlbiBjcmVhdGluZyBhIHJvdy1hY2NvcmRpb24nKTtcbiAgICB9XG5cbiAgICB0aGlzLm5neFJvd0FjY29yZGlvblNlcnZpY2UuYWRkQ29tcG9uZW50VG9Hcm91cCh0aGlzLmlkLCB0aGlzLmdyb3VwKTtcblxuICAgIHRoaXMuZGlzcGxheUJvZHkkID0gdGhpcy5uZ3hSb3dBY2NvcmRpb25TZXJ2aWNlLmdldFN0YXRlKHRoaXMuaWQpLnBpcGUobWFwKHggPT4gIXguZm9sZGVkKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcblxuICAgIHRoaXMubmd4Um93QWNjb3JkaW9uU2VydmljZS5yZW1vdmVDb21wb25lbnRGcm9tR3JvdXAodGhpcy5pZCk7XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5uZ3hSb3dBY2NvcmRpb25TZXJ2aWNlLnRvZ2dsZSh0aGlzLmlkKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXJvdy1hY2NvcmRpb24vIiwic291cmNlcyI6WyJsaWIvbmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQWtCLE1BQU0sNkJBQTZCLENBQUM7QUFDckYsT0FBTyxFQUF5QixHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQVMsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBc0JsQyxNQUFNOzs7O0lBVUosWUFBb0Isc0JBQThDO1FBQTlDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7a0JBSDdDLElBQUksRUFBRTswQkFDUyxJQUFJLE9BQU8sRUFBRTtLQUVxQjs7OztJQUV0RSxRQUFRO1FBQ04sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGtGQUFrRixDQUFDLENBQUM7U0FDckc7UUFFRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUM3Rjs7OztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTNCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDL0Q7Ozs7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDN0M7OztZQWxERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Q0FlWDtnQkFDQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7YUFDYjs7OztZQXhCUSxzQkFBc0I7OztvQkEwQjVCLEtBQUs7b0JBRUwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hSb3dBY2NvcmRpb25TZXJ2aWNlLCBBY2NvcmRpb25TdGF0ZSB9IGZyb20gJy4vbmd4LXJvdy1hY2NvcmRpb24uc2VydmljZSc7XG5pbXBvcnQgeyB0YXAsIHRha2VVbnRpbCwgZGVsYXksIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG1lcmdlLCBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1yb3ctYWNjb3JkaW9uJyxcbiAgdGVtcGxhdGU6IGA8ZGl2IGZ4RmlsbCBmeExheW91dD1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwibmd4LXJvdy1hY2NvcmRpb25cIj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJuZ3gtcm93LWFjY29yZGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG4gICAgICAgIHt7IHRpdGxlIH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImJvZHlcIiAqbmdJZj1cImRpc3BsYXlCb2R5JCB8IGFzeW5jXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG48L2Rpdj5cbmAsXG4gIHN0eWxlczogW2BgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd4Um93QWNjb3JkaW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAvLyBuYW1lIG9mIHRoZSBncm91cCB0aGlzIGFjY29yZGlvbnMgYmVsb25ncyB0b1xuICBASW5wdXQoKSBncm91cDogc3RyaW5nO1xuXG4gIGRpc3BsYXlCb2R5JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIGlkOiBzdHJpbmcgPSB1dWlkKCk7XG4gIHByaXZhdGUgb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ3hSb3dBY2NvcmRpb25TZXJ2aWNlOiBOZ3hSb3dBY2NvcmRpb25TZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5ncm91cCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbbmd4LXJvdy1hY2NvcmRpb25dIHlvdSBzaG91bGQgYWx3YXlzIHBhc3MgYSBncm91cCB3aGVuIGNyZWF0aW5nIGEgcm93LWFjY29yZGlvbicpO1xuICAgIH1cblxuICAgIHRoaXMubmd4Um93QWNjb3JkaW9uU2VydmljZS5hZGRDb21wb25lbnRUb0dyb3VwKHRoaXMuaWQsIHRoaXMuZ3JvdXApO1xuXG4gICAgdGhpcy5kaXNwbGF5Qm9keSQgPSB0aGlzLm5neFJvd0FjY29yZGlvblNlcnZpY2UuZ2V0U3RhdGUodGhpcy5pZCkucGlwZShtYXAoeCA9PiAheC5mb2xkZWQpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy5uZ3hSb3dBY2NvcmRpb25TZXJ2aWNlLnJlbW92ZUNvbXBvbmVudEZyb21Hcm91cCh0aGlzLmlkKTtcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLm5neFJvd0FjY29yZGlvblNlcnZpY2UudG9nZ2xlKHRoaXMuaWQpO1xuICB9XG59XG4iXX0=

@@ -52,3 +52,3 @@ /**

template: "<div fxFill fxLayout=\"row\">\n <div class=\"ngx-row-accordion\">\n <div fxLayout=\"row\" class=\"ngx-row-accordion\">\n <div class=\"title\" (click)=\"toggle()\">\n {{ title }}\n </div>\n\n <div class=\"body\" *ngIf=\"displayBody$ | async\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n",
styles: [".ngx-row-accordion{display:inline-block;height:100%}.ngx-row-accordion .title{padding:16px;-webkit-writing-mode:vertical-rl;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:sideways;background-color:#d8d8d8;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ngx-row-accordion .body{padding:16px;background-color:#f3f3f3;overflow:auto}"],
styles: [""],
},] },

@@ -82,2 +82,2 @@ ];

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXJvdy1hY2NvcmRpb24vIiwic291cmNlcyI6WyJsaWIvbmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQWtCLE1BQU0sNkJBQTZCLENBQUM7QUFDckYsT0FBTyxFQUF5QixHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQVMsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDOztJQWdDaEMsa0NBQW9CLHNCQUE4QztRQUE5QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO2tCQUg3QyxJQUFJLEVBQUU7MEJBQ1MsSUFBSSxPQUFPLEVBQUU7S0FFcUI7Ozs7SUFFdEUsMkNBQVE7OztJQUFSO1FBQ0UsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGtGQUFrRixDQUFDLENBQUM7U0FDckc7UUFFRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFULENBQVMsQ0FBQyxDQUFDLENBQUM7S0FDN0Y7Ozs7SUFFRCw4Q0FBVzs7O0lBQVg7UUFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTNCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDL0Q7Ozs7SUFFRCx5Q0FBTTs7O0lBQU47UUFDRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM3Qzs7Z0JBbERGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUUsb1lBZVg7b0JBQ0MsTUFBTSxFQUFFLENBQUMsa1pBQWtaLENBQUM7aUJBQzdaOzs7O2dCQXhCUSxzQkFBc0I7Ozt3QkEwQjVCLEtBQUs7d0JBRUwsS0FBSzs7bUNBN0JSOztTQTBCYSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4Um93QWNjb3JkaW9uU2VydmljZSwgQWNjb3JkaW9uU3RhdGUgfSBmcm9tICcuL25neC1yb3ctYWNjb3JkaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFwLCB0YWtlVW50aWwsIGRlbGF5LCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtcm93LWFjY29yZGlvbicsXG4gIHRlbXBsYXRlOiBgPGRpdiBmeEZpbGwgZnhMYXlvdXQ9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cIm5neC1yb3ctYWNjb3JkaW9uXCI+XG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwibmd4LXJvdy1hY2NvcmRpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiIChjbGljayk9XCJ0b2dnbGUoKVwiPlxuICAgICAgICB7eyB0aXRsZSB9fVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJib2R5XCIgKm5nSWY9XCJkaXNwbGF5Qm9keSQgfCBhc3luY1wiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuPC9kaXY+XG5gLFxuICBzdHlsZXM6IFtgLm5neC1yb3ctYWNjb3JkaW9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMDAlfS5uZ3gtcm93LWFjY29yZGlvbiAudGl0bGV7cGFkZGluZzoxNnB4Oy13ZWJraXQtd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOy1tcy13cml0aW5nLW1vZGU6dGItcmw7d3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsO3RleHQtb3JpZW50YXRpb246c2lkZXdheXM7YmFja2dyb3VuZC1jb2xvcjojZDhkOGQ4O2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ubmd4LXJvdy1hY2NvcmRpb24gLmJvZHl7cGFkZGluZzoxNnB4O2JhY2tncm91bmQtY29sb3I6I2YzZjNmMztvdmVyZmxvdzphdXRvfWBdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hSb3dBY2NvcmRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gIC8vIG5hbWUgb2YgdGhlIGdyb3VwIHRoaXMgYWNjb3JkaW9ucyBiZWxvbmdzIHRvXG4gIEBJbnB1dCgpIGdyb3VwOiBzdHJpbmc7XG5cbiAgZGlzcGxheUJvZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgaWQ6IHN0cmluZyA9IHV1aWQoKTtcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5neFJvd0FjY29yZGlvblNlcnZpY2U6IE5neFJvd0FjY29yZGlvblNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmdyb3VwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tuZ3gtcm93LWFjY29yZGlvbl0geW91IHNob3VsZCBhbHdheXMgcGFzcyBhIGdyb3VwIHdoZW4gY3JlYXRpbmcgYSByb3ctYWNjb3JkaW9uJyk7XG4gICAgfVxuXG4gICAgdGhpcy5uZ3hSb3dBY2NvcmRpb25TZXJ2aWNlLmFkZENvbXBvbmVudFRvR3JvdXAodGhpcy5pZCwgdGhpcy5ncm91cCk7XG5cbiAgICB0aGlzLmRpc3BsYXlCb2R5JCA9IHRoaXMubmd4Um93QWNjb3JkaW9uU2VydmljZS5nZXRTdGF0ZSh0aGlzLmlkKS5waXBlKG1hcCh4ID0+ICF4LmZvbGRlZCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLm5neFJvd0FjY29yZGlvblNlcnZpY2UucmVtb3ZlQ29tcG9uZW50RnJvbUdyb3VwKHRoaXMuaWQpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIHRoaXMubmd4Um93QWNjb3JkaW9uU2VydmljZS50b2dnbGUodGhpcy5pZCk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXJvdy1hY2NvcmRpb24vIiwic291cmNlcyI6WyJsaWIvbmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQWtCLE1BQU0sNkJBQTZCLENBQUM7QUFDckYsT0FBTyxFQUF5QixHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQVMsT0FBTyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDOztJQWdDaEMsa0NBQW9CLHNCQUE4QztRQUE5QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO2tCQUg3QyxJQUFJLEVBQUU7MEJBQ1MsSUFBSSxPQUFPLEVBQUU7S0FFcUI7Ozs7SUFFdEUsMkNBQVE7OztJQUFSO1FBQ0UsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGtGQUFrRixDQUFDLENBQUM7U0FDckc7UUFFRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFULENBQVMsQ0FBQyxDQUFDLENBQUM7S0FDN0Y7Ozs7SUFFRCw4Q0FBVzs7O0lBQVg7UUFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTNCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDL0Q7Ozs7SUFFRCx5Q0FBTTs7O0lBQU47UUFDRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM3Qzs7Z0JBbERGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUUsb1lBZVg7b0JBQ0MsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUNiOzs7O2dCQXhCUSxzQkFBc0I7Ozt3QkEwQjVCLEtBQUs7d0JBRUwsS0FBSzs7bUNBN0JSOztTQTBCYSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4Um93QWNjb3JkaW9uU2VydmljZSwgQWNjb3JkaW9uU3RhdGUgfSBmcm9tICcuL25neC1yb3ctYWNjb3JkaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFwLCB0YWtlVW50aWwsIGRlbGF5LCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtcm93LWFjY29yZGlvbicsXG4gIHRlbXBsYXRlOiBgPGRpdiBmeEZpbGwgZnhMYXlvdXQ9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cIm5neC1yb3ctYWNjb3JkaW9uXCI+XG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwibmd4LXJvdy1hY2NvcmRpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiIChjbGljayk9XCJ0b2dnbGUoKVwiPlxuICAgICAgICB7eyB0aXRsZSB9fVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJib2R5XCIgKm5nSWY9XCJkaXNwbGF5Qm9keSQgfCBhc3luY1wiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuPC9kaXY+XG5gLFxuICBzdHlsZXM6IFtgYF0sXG59KVxuZXhwb3J0IGNsYXNzIE5neFJvd0FjY29yZGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgLy8gbmFtZSBvZiB0aGUgZ3JvdXAgdGhpcyBhY2NvcmRpb25zIGJlbG9uZ3MgdG9cbiAgQElucHV0KCkgZ3JvdXA6IHN0cmluZztcblxuICBkaXNwbGF5Qm9keSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJpdmF0ZSBpZDogc3RyaW5nID0gdXVpZCgpO1xuICBwcml2YXRlIG9uRGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmd4Um93QWNjb3JkaW9uU2VydmljZTogTmd4Um93QWNjb3JkaW9uU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuZ3JvdXApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignW25neC1yb3ctYWNjb3JkaW9uXSB5b3Ugc2hvdWxkIGFsd2F5cyBwYXNzIGEgZ3JvdXAgd2hlbiBjcmVhdGluZyBhIHJvdy1hY2NvcmRpb24nKTtcbiAgICB9XG5cbiAgICB0aGlzLm5neFJvd0FjY29yZGlvblNlcnZpY2UuYWRkQ29tcG9uZW50VG9Hcm91cCh0aGlzLmlkLCB0aGlzLmdyb3VwKTtcblxuICAgIHRoaXMuZGlzcGxheUJvZHkkID0gdGhpcy5uZ3hSb3dBY2NvcmRpb25TZXJ2aWNlLmdldFN0YXRlKHRoaXMuaWQpLnBpcGUobWFwKHggPT4gIXguZm9sZGVkKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcblxuICAgIHRoaXMubmd4Um93QWNjb3JkaW9uU2VydmljZS5yZW1vdmVDb21wb25lbnRGcm9tR3JvdXAodGhpcy5pZCk7XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5uZ3hSb3dBY2NvcmRpb25TZXJ2aWNlLnRvZ2dsZSh0aGlzLmlkKTtcbiAgfVxufVxuIl19

@@ -201,3 +201,3 @@ import { __rest } from 'tslib';

`,
styles: [`.ngx-row-accordion{display:inline-block;height:100%}.ngx-row-accordion .title{padding:16px;-webkit-writing-mode:vertical-rl;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:sideways;background-color:#d8d8d8;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ngx-row-accordion .body{padding:16px;background-color:#f3f3f3;overflow:auto}`],
styles: [``],
},] },

@@ -249,2 +249,2 @@ ];

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJvdy1hY2NvcmRpb24uanMubWFwIiwic291cmNlcyI6WyJuZzovL25neC1yb3ctYWNjb3JkaW9uL2xpYi9uZ3gtcm93LWFjY29yZGlvbi5zZXJ2aWNlLnRzIiwibmc6Ly9uZ3gtcm93LWFjY29yZGlvbi9saWIvbmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50LnRzIiwibmc6Ly9uZ3gtcm93LWFjY29yZGlvbi9saWIvbmd4LXJvdy1hY2NvcmRpb24ubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXBUbywgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFwLCBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG1hcENoaWxkcmVuSW50b0FycmF5IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyL3NyYy91cmxfdHJlZSc7XG5cbmludGVyZmFjZSBEaWN0aW9ubmFyeTxUPiB7XG4gIFtrZXk6IHN0cmluZ106IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3JkaW9uU3RhdGUge1xuICBmb2xkZWQ6IGJvb2xlYW47XG59XG5cbnR5cGUgR3JvdXBOYW1lID0gc3RyaW5nO1xudHlwZSBBY2NvcmRpb25Db21wb25lbnRJZCA9IHN0cmluZztcblxuaW50ZXJmYWNlIEFjY29yZGlvbkdyb3VwIHtcbiAgLy8gcmVmZXJlbmNlIHRvIGV2ZXJ5IGFjY29yZGlvbnMgb2YgdGhlIGdyb3VwICh0byBhY2Nlc3MgdGhlbSBieSByZWZlcmVuY2UpXG4gIG1hcDogeyBbYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZ106IEFjY29yZGlvblN0YXRlIH07XG4gIC8vIGFycmF5IGNvbnRhaW5pbmcgdGhlIGVsZW1lbnRzIElEcyB0byBrZWVwIHRyYWNrIG9mIHRoZSBvcmRlXG4gIGFycmF5OiBBY2NvcmRpb25Db21wb25lbnRJZFtdO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neFJvd0FjY29yZGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGdyb3VwcyQ6IEJlaGF2aW9yU3ViamVjdDxEaWN0aW9ubmFyeTxBY2NvcmRpb25Hcm91cD4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG4gIHByaXZhdGUgY29tcG9uZW50VG9Hcm91cDogTWFwPEFjY29yZGlvbkNvbXBvbmVudElkLCBHcm91cE5hbWU+ID0gbmV3IE1hcCgpO1xuXG4gIHB1YmxpYyBhZGRDb21wb25lbnRUb0dyb3VwKGFjY29yZGlvbkNvbXBvbmVudElkOiBzdHJpbmcsIGdyb3VwTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gZ2V0IGN1cnJlbnQgZ3JvdXBcbiAgICBjb25zdCBncm91cHMgPSB0aGlzLmdyb3VwcyQuZ2V0VmFsdWUoKTtcbiAgICBsZXQgZ3JvdXA6IEFjY29yZGlvbkdyb3VwID0gZ3JvdXBzW2dyb3VwTmFtZV07XG5cbiAgICAvLyBpZiB0aGUgZ3JvdXAgZG9lcyBub3QgZXhpc3QgeWV0LCBpbml0aWFsaXplIGl0XG4gICAgaWYgKCFncm91cCkge1xuICAgICAgZ3JvdXAgPSB7XG4gICAgICAgIG1hcDoge30sXG4gICAgICAgIGFycmF5OiBbXSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIGFjY29yZGlvbiBJRCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQsIHRocm93XG4gICAgaWYgKCEhZ3JvdXAubWFwW2FjY29yZGlvbkNvbXBvbmVudElkXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIHJvdy1hY2NvcmRpb24gc2hvdWxkIGJlIHJlZ2lzdGVyZWQgb25seSBvbmNlJyk7XG4gICAgfVxuXG4gICAgLy8gYWRkIHRoZSBuZXcgYWNjb3JkaW9uIHRvIHRoZSBncm91cFxuICAgIGNvbnN0IGdyb3VwV2l0aE5ld0FjY29yZGlvbjogQWNjb3JkaW9uR3JvdXAgPSB7XG4gICAgICBtYXA6IHtcbiAgICAgICAgLi4uZ3JvdXAubWFwLFxuICAgICAgICBbYWNjb3JkaW9uQ29tcG9uZW50SWRdOiB7IGZvbGRlZDogZmFsc2UgfSxcbiAgICAgIH0sXG4gICAgICBhcnJheTogWy4uLmdyb3VwLmFycmF5LCBhY2NvcmRpb25Db21wb25lbnRJZF0sXG4gICAgfTtcblxuICAgIHRoaXMuY29tcG9uZW50VG9Hcm91cC5zZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQsIGdyb3VwTmFtZSk7XG5cbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gZ3JvdXBXaXRoTmV3QWNjb3JkaW9uLmFycmF5Lmxlbmd0aCAtIDE7XG5cbiAgICBsZXQgbmV3R3JvdXBXaXRoTmV3U3RhdGU6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPiA9IHtcbiAgICAgIC4uLnRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpLFxuICAgICAgW2dyb3VwTmFtZV06IGdyb3VwV2l0aE5ld0FjY29yZGlvbixcbiAgICB9O1xuXG4gICAgLy8gaWYgYWRkaW5nIGFuIGFjY29yZGlvbiB3aGljaCBpcyBub3QgdGhlIGZpcnN0IG9uZSwgY2xvc2UgdGhlIHByZXZpb3VzIG9uZVxuICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzQ29tcG9uZW50SWQ6IHN0cmluZyA9IGdyb3VwV2l0aE5ld0FjY29yZGlvbi5hcnJheVtpbmRleCAtIDFdO1xuXG4gICAgICBuZXdHcm91cFdpdGhOZXdTdGF0ZSA9IGdldE5ld1N0YXRlKG5ld0dyb3VwV2l0aE5ld1N0YXRlLCBncm91cE5hbWUsIHByZXZpb3VzQ29tcG9uZW50SWQsIHsgZm9sZGVkOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBzJC5uZXh0KG5ld0dyb3VwV2l0aE5ld1N0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDb21wb25lbnRGcm9tR3JvdXAoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpO1xuXG4gICAgY29uc3QgZ3JvdXBOYW1lOiBzdHJpbmcgPSB0aGlzLmNvbXBvbmVudFRvR3JvdXAuZ2V0KGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGlmICghZ3JvdXBOYW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZ3JvdXA6IEFjY29yZGlvbkdyb3VwID0gdGhpcy5ncm91cHMkLmdldFZhbHVlKClbZ3JvdXBOYW1lXTtcblxuICAgIGNvbnN0IHsgW2FjY29yZGlvbkNvbXBvbmVudElkXTogb21pdCwgLi4ubmV3TWFwIH0gPSBncm91cC5tYXA7XG5cbiAgICBjb25zdCBuZXdBcnJheSA9IGdyb3VwLmFycmF5LmZpbHRlcih4ID0+IHggIT09IGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGxldCBuZXdHcm91cHM6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPjtcblxuICAgIGNvbnN0IHsgW2dyb3VwTmFtZV06IGN1cnJlbnRHcm91cCwgLi4ucmVtYWluaW5nR3JvdXBzIH0gPSBncm91cHM7XG5cbiAgICBpZiAobmV3QXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBpZiBjdXJyZW50IGdyb3VwIGlzIG5vdyBlbXB0eSwgcmVtb3ZlIHRoZSBncm91cCBieSBrZWVwaW5nIG9ubHkgdGhlIG90aGVyc1xuICAgICAgbmV3R3JvdXBzID0gcmVtYWluaW5nR3JvdXBzO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmRleENvbXBUb1JlbW92ZTogbnVtYmVyID0gZ3JvdXAuYXJyYXkuZmluZEluZGV4KGlkID0+IGlkID09PSBhY2NvcmRpb25Db21wb25lbnRJZCk7XG4gICAgICBjb25zdCBpZFByZXZpb3VzQ29tcDogc3RyaW5nID0gZ3JvdXAuYXJyYXlbaW5kZXhDb21wVG9SZW1vdmUgLSAxXTtcblxuICAgICAgY29uc3QgbmV3R3JvdXBzQmVmb3JlVW5mb2xkaW5nUHJldmlvdXMgPSB7XG4gICAgICAgIC4uLnJlbWFpbmluZ0dyb3VwcyxcbiAgICAgICAgW2dyb3VwTmFtZV06IHtcbiAgICAgICAgICBtYXA6IG5ld01hcCxcbiAgICAgICAgICBhcnJheTogbmV3QXJyYXksXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBuZXdHcm91cHMgPSBnZXROZXdTdGF0ZShuZXdHcm91cHNCZWZvcmVVbmZvbGRpbmdQcmV2aW91cywgZ3JvdXBOYW1lLCBpZFByZXZpb3VzQ29tcCwgeyBmb2xkZWQ6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBzJC5uZXh0KG5ld0dyb3Vwcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QWNjb3JkaW9uU3RhdGU+IHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuXG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBzJC5waXBlKFxuICAgICAgbWFwKGdyb3VwcyA9PiBncm91cHNbZ3JvdXBOYW1lXSksXG4gICAgICBmaWx0ZXIoZ3JvdXAgPT4gISFncm91cCksXG4gICAgICBtYXAoZ3JvdXAgPT4gZ3JvdXAubWFwW2FjY29yZGlvbkNvbXBvbmVudElkXSksXG4gICAgICBmaWx0ZXIoZ3JvdXAgPT4gISFncm91cCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgZGVsYXkoMClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdGF0ZShhY2NvcmRpb25Db21wb25lbnRJZDogc3RyaW5nLCBuZXdTdGF0ZTogUGFydGlhbDxBY2NvcmRpb25TdGF0ZT4pOiB2b2lkIHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuICAgIGNvbnN0IHN0YXRlOiBBY2NvcmRpb25TdGF0ZSA9IHRoaXMuX2dldFN0YXRlKGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGlmICghIXN0YXRlKSB7XG4gICAgICB0aGlzLmdyb3VwcyQubmV4dChnZXROZXdTdGF0ZSh0aGlzLmdyb3VwcyQuZ2V0VmFsdWUoKSwgZ3JvdXBOYW1lLCBhY2NvcmRpb25Db21wb25lbnRJZCwgbmV3U3RhdGUpKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwTmFtZTogc3RyaW5nID0gdGhpcy5jb21wb25lbnRUb0dyb3VwLmdldChhY2NvcmRpb25Db21wb25lbnRJZCk7XG4gICAgY29uc3Qgc3RhdGU6IEFjY29yZGlvblN0YXRlID0gdGhpcy5fZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuXG4gICAgaWYgKCEhc3RhdGUpIHtcbiAgICAgIGNvbnN0IGZvbGRlZDogYm9vbGVhbiA9IHN0YXRlLmZvbGRlZDtcblxuICAgICAgdGhpcy51cGRhdGVTdGF0ZShhY2NvcmRpb25Db21wb25lbnRJZCwgeyBmb2xkZWQ6ICFmb2xkZWQgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IEFjY29yZGlvblN0YXRlIHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IGdyb3VwOiBBY2NvcmRpb25Hcm91cCA9IGdyb3Vwc1tncm91cE5hbWVdO1xuICAgIGlmICghIWdyb3VwKSB7XG4gICAgICBjb25zdCBzdGF0ZTogQWNjb3JkaW9uU3RhdGUgPSBncm91cC5tYXBbYWNjb3JkaW9uQ29tcG9uZW50SWRdO1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXROZXdTdGF0ZShcbiAgZ3JvdXBzOiBEaWN0aW9ubmFyeTxBY2NvcmRpb25Hcm91cD4sXG4gIGdyb3VwTmFtZTogc3RyaW5nLFxuICBhY2NvcmRpb25Db21wb25lbnRJZDogc3RyaW5nLFxuICBuZXdTdGF0ZTogUGFydGlhbDxBY2NvcmRpb25TdGF0ZT5cbik6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPiB7XG4gIHJldHVybiB7XG4gICAgLi4uZ3JvdXBzLFxuICAgIFtncm91cE5hbWVdOiB7XG4gICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXSxcbiAgICAgIG1hcDoge1xuICAgICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXS5tYXAsXG4gICAgICAgIFthY2NvcmRpb25Db21wb25lbnRJZF06IHtcbiAgICAgICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXS5tYXBbYWNjb3JkaW9uQ29tcG9uZW50SWRdLFxuICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuIiwiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neFJvd0FjY29yZGlvblNlcnZpY2UsIEFjY29yZGlvblN0YXRlIH0gZnJvbSAnLi9uZ3gtcm93LWFjY29yZGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IHRhcCwgdGFrZVVudGlsLCBkZWxheSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXJvdy1hY2NvcmRpb24nLFxuICB0ZW1wbGF0ZTogYDxkaXYgZnhGaWxsIGZ4TGF5b3V0PVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJuZ3gtcm93LWFjY29yZGlvblwiPlxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cIm5neC1yb3ctYWNjb3JkaW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiYm9keVwiICpuZ0lmPVwiZGlzcGxheUJvZHkkIHwgYXN5bmNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbjwvZGl2PlxuYCxcbiAgc3R5bGVzOiBbYC5uZ3gtcm93LWFjY29yZGlvbntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MTAwJX0ubmd4LXJvdy1hY2NvcmRpb24gLnRpdGxle3BhZGRpbmc6MTZweDstd2Via2l0LXdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybDstbXMtd3JpdGluZy1tb2RlOnRiLXJsO3dyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybDt0ZXh0LW9yaWVudGF0aW9uOnNpZGV3YXlzO2JhY2tncm91bmQtY29sb3I6I2Q4ZDhkODtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9Lm5neC1yb3ctYWNjb3JkaW9uIC5ib2R5e3BhZGRpbmc6MTZweDtiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjM7b3ZlcmZsb3c6YXV0b31gXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd4Um93QWNjb3JkaW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAvLyBuYW1lIG9mIHRoZSBncm91cCB0aGlzIGFjY29yZGlvbnMgYmVsb25ncyB0b1xuICBASW5wdXQoKSBncm91cDogc3RyaW5nO1xuXG4gIGRpc3BsYXlCb2R5JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIGlkOiBzdHJpbmcgPSB1dWlkKCk7XG4gIHByaXZhdGUgb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ3hSb3dBY2NvcmRpb25TZXJ2aWNlOiBOZ3hSb3dBY2NvcmRpb25TZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5ncm91cCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbbmd4LXJvdy1hY2NvcmRpb25dIHlvdSBzaG91bGQgYWx3YXlzIHBhc3MgYSBncm91cCB3aGVuIGNyZWF0aW5nIGEgcm93LWFjY29yZGlvbicpO1xuICAgIH1cblxuICAgIHRoaXMubmd4Um93QWNjb3JkaW9uU2VydmljZS5hZGRDb21wb25lbnRUb0dyb3VwKHRoaXMuaWQsIHRoaXMuZ3JvdXApO1xuXG4gICAgdGhpcy5kaXNwbGF5Qm9keSQgPSB0aGlzLm5neFJvd0FjY29yZGlvblNlcnZpY2UuZ2V0U3RhdGUodGhpcy5pZCkucGlwZShtYXAoeCA9PiAheC5mb2xkZWQpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy5uZ3hSb3dBY2NvcmRpb25TZXJ2aWNlLnJlbW92ZUNvbXBvbmVudEZyb21Hcm91cCh0aGlzLmlkKTtcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLm5neFJvd0FjY29yZGlvblNlcnZpY2UudG9nZ2xlKHRoaXMuaWQpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBOZ3hSb3dBY2NvcmRpb25TZXJ2aWNlIH0gZnJvbSAnLi9uZ3gtcm93LWFjY29yZGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hSb3dBY2NvcmRpb25Db21wb25lbnQgfSBmcm9tICcuL25neC1yb3ctYWNjb3JkaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL2NvcmUnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG4vLyBAdG9kbyBSb3V0ZXJNb2R1bGUgc2hvdWxkIGJlIHBhc3NlZCB3aXRoaW4gZm9yUm9vdCB0byBhdm9pZCBjcmVhdGluZyBuZXcgaW5zdGFuY2VzXG4vLyB0aGlzIHdpbGwgcHJldmVudCB1bmV4cGVjdGVkIGJlaGF2aW9yIHdpdGggaW50ZXJjZXB0b3JzIG9uIG1haW4gYXBwXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGbGV4TGF5b3V0TW9kdWxlLCBSb3V0ZXJNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtOZ3hSb3dBY2NvcmRpb25Db21wb25lbnRdLFxuICBleHBvcnRzOiBbTmd4Um93QWNjb3JkaW9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd4Um93QWNjb3JkaW9uTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ3hSb3dBY2NvcmRpb25Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtOZ3hSb3dBY2NvcmRpb25TZXJ2aWNlXSxcbiAgICB9O1xu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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJvdy1hY2NvcmRpb24uanMubWFwIiwic291cmNlcyI6WyJuZzovL25neC1yb3ctYWNjb3JkaW9uL2xpYi9uZ3gtcm93LWFjY29yZGlvbi5zZXJ2aWNlLnRzIiwibmc6Ly9uZ3gtcm93LWFjY29yZGlvbi9saWIvbmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50LnRzIiwibmc6Ly9uZ3gtcm93LWFjY29yZGlvbi9saWIvbmd4LXJvdy1hY2NvcmRpb24ubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXBUbywgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFwLCBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG1hcENoaWxkcmVuSW50b0FycmF5IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyL3NyYy91cmxfdHJlZSc7XG5cbmludGVyZmFjZSBEaWN0aW9ubmFyeTxUPiB7XG4gIFtrZXk6IHN0cmluZ106IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3JkaW9uU3RhdGUge1xuICBmb2xkZWQ6IGJvb2xlYW47XG59XG5cbnR5cGUgR3JvdXBOYW1lID0gc3RyaW5nO1xudHlwZSBBY2NvcmRpb25Db21wb25lbnRJZCA9IHN0cmluZztcblxuaW50ZXJmYWNlIEFjY29yZGlvbkdyb3VwIHtcbiAgLy8gcmVmZXJlbmNlIHRvIGV2ZXJ5IGFjY29yZGlvbnMgb2YgdGhlIGdyb3VwICh0byBhY2Nlc3MgdGhlbSBieSByZWZlcmVuY2UpXG4gIG1hcDogeyBbYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZ106IEFjY29yZGlvblN0YXRlIH07XG4gIC8vIGFycmF5IGNvbnRhaW5pbmcgdGhlIGVsZW1lbnRzIElEcyB0byBrZWVwIHRyYWNrIG9mIHRoZSBvcmRlXG4gIGFycmF5OiBBY2NvcmRpb25Db21wb25lbnRJZFtdO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neFJvd0FjY29yZGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGdyb3VwcyQ6IEJlaGF2aW9yU3ViamVjdDxEaWN0aW9ubmFyeTxBY2NvcmRpb25Hcm91cD4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG4gIHByaXZhdGUgY29tcG9uZW50VG9Hcm91cDogTWFwPEFjY29yZGlvbkNvbXBvbmVudElkLCBHcm91cE5hbWU+ID0gbmV3IE1hcCgpO1xuXG4gIHB1YmxpYyBhZGRDb21wb25lbnRUb0dyb3VwKGFjY29yZGlvbkNvbXBvbmVudElkOiBzdHJpbmcsIGdyb3VwTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gZ2V0IGN1cnJlbnQgZ3JvdXBcbiAgICBjb25zdCBncm91cHMgPSB0aGlzLmdyb3VwcyQuZ2V0VmFsdWUoKTtcbiAgICBsZXQgZ3JvdXA6IEFjY29yZGlvbkdyb3VwID0gZ3JvdXBzW2dyb3VwTmFtZV07XG5cbiAgICAvLyBpZiB0aGUgZ3JvdXAgZG9lcyBub3QgZXhpc3QgeWV0LCBpbml0aWFsaXplIGl0XG4gICAgaWYgKCFncm91cCkge1xuICAgICAgZ3JvdXAgPSB7XG4gICAgICAgIG1hcDoge30sXG4gICAgICAgIGFycmF5OiBbXSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIGFjY29yZGlvbiBJRCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQsIHRocm93XG4gICAgaWYgKCEhZ3JvdXAubWFwW2FjY29yZGlvbkNvbXBvbmVudElkXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIHJvdy1hY2NvcmRpb24gc2hvdWxkIGJlIHJlZ2lzdGVyZWQgb25seSBvbmNlJyk7XG4gICAgfVxuXG4gICAgLy8gYWRkIHRoZSBuZXcgYWNjb3JkaW9uIHRvIHRoZSBncm91cFxuICAgIGNvbnN0IGdyb3VwV2l0aE5ld0FjY29yZGlvbjogQWNjb3JkaW9uR3JvdXAgPSB7XG4gICAgICBtYXA6IHtcbiAgICAgICAgLi4uZ3JvdXAubWFwLFxuICAgICAgICBbYWNjb3JkaW9uQ29tcG9uZW50SWRdOiB7IGZvbGRlZDogZmFsc2UgfSxcbiAgICAgIH0sXG4gICAgICBhcnJheTogWy4uLmdyb3VwLmFycmF5LCBhY2NvcmRpb25Db21wb25lbnRJZF0sXG4gICAgfTtcblxuICAgIHRoaXMuY29tcG9uZW50VG9Hcm91cC5zZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQsIGdyb3VwTmFtZSk7XG5cbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gZ3JvdXBXaXRoTmV3QWNjb3JkaW9uLmFycmF5Lmxlbmd0aCAtIDE7XG5cbiAgICBsZXQgbmV3R3JvdXBXaXRoTmV3U3RhdGU6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPiA9IHtcbiAgICAgIC4uLnRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpLFxuICAgICAgW2dyb3VwTmFtZV06IGdyb3VwV2l0aE5ld0FjY29yZGlvbixcbiAgICB9O1xuXG4gICAgLy8gaWYgYWRkaW5nIGFuIGFjY29yZGlvbiB3aGljaCBpcyBub3QgdGhlIGZpcnN0IG9uZSwgY2xvc2UgdGhlIHByZXZpb3VzIG9uZVxuICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzQ29tcG9uZW50SWQ6IHN0cmluZyA9IGdyb3VwV2l0aE5ld0FjY29yZGlvbi5hcnJheVtpbmRleCAtIDFdO1xuXG4gICAgICBuZXdHcm91cFdpdGhOZXdTdGF0ZSA9IGdldE5ld1N0YXRlKG5ld0dyb3VwV2l0aE5ld1N0YXRlLCBncm91cE5hbWUsIHByZXZpb3VzQ29tcG9uZW50SWQsIHsgZm9sZGVkOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBzJC5uZXh0KG5ld0dyb3VwV2l0aE5ld1N0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDb21wb25lbnRGcm9tR3JvdXAoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpO1xuXG4gICAgY29uc3QgZ3JvdXBOYW1lOiBzdHJpbmcgPSB0aGlzLmNvbXBvbmVudFRvR3JvdXAuZ2V0KGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGlmICghZ3JvdXBOYW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZ3JvdXA6IEFjY29yZGlvbkdyb3VwID0gdGhpcy5ncm91cHMkLmdldFZhbHVlKClbZ3JvdXBOYW1lXTtcblxuICAgIGNvbnN0IHsgW2FjY29yZGlvbkNvbXBvbmVudElkXTogb21pdCwgLi4ubmV3TWFwIH0gPSBncm91cC5tYXA7XG5cbiAgICBjb25zdCBuZXdBcnJheSA9IGdyb3VwLmFycmF5LmZpbHRlcih4ID0+IHggIT09IGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGxldCBuZXdHcm91cHM6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPjtcblxuICAgIGNvbnN0IHsgW2dyb3VwTmFtZV06IGN1cnJlbnRHcm91cCwgLi4ucmVtYWluaW5nR3JvdXBzIH0gPSBncm91cHM7XG5cbiAgICBpZiAobmV3QXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBpZiBjdXJyZW50IGdyb3VwIGlzIG5vdyBlbXB0eSwgcmVtb3ZlIHRoZSBncm91cCBieSBrZWVwaW5nIG9ubHkgdGhlIG90aGVyc1xuICAgICAgbmV3R3JvdXBzID0gcmVtYWluaW5nR3JvdXBzO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmRleENvbXBUb1JlbW92ZTogbnVtYmVyID0gZ3JvdXAuYXJyYXkuZmluZEluZGV4KGlkID0+IGlkID09PSBhY2NvcmRpb25Db21wb25lbnRJZCk7XG4gICAgICBjb25zdCBpZFByZXZpb3VzQ29tcDogc3RyaW5nID0gZ3JvdXAuYXJyYXlbaW5kZXhDb21wVG9SZW1vdmUgLSAxXTtcblxuICAgICAgY29uc3QgbmV3R3JvdXBzQmVmb3JlVW5mb2xkaW5nUHJldmlvdXMgPSB7XG4gICAgICAgIC4uLnJlbWFpbmluZ0dyb3VwcyxcbiAgICAgICAgW2dyb3VwTmFtZV06IHtcbiAgICAgICAgICBtYXA6IG5ld01hcCxcbiAgICAgICAgICBhcnJheTogbmV3QXJyYXksXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBuZXdHcm91cHMgPSBnZXROZXdTdGF0ZShuZXdHcm91cHNCZWZvcmVVbmZvbGRpbmdQcmV2aW91cywgZ3JvdXBOYW1lLCBpZFByZXZpb3VzQ29tcCwgeyBmb2xkZWQ6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBzJC5uZXh0KG5ld0dyb3Vwcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QWNjb3JkaW9uU3RhdGU+IHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuXG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBzJC5waXBlKFxuICAgICAgbWFwKGdyb3VwcyA9PiBncm91cHNbZ3JvdXBOYW1lXSksXG4gICAgICBmaWx0ZXIoZ3JvdXAgPT4gISFncm91cCksXG4gICAgICBtYXAoZ3JvdXAgPT4gZ3JvdXAubWFwW2FjY29yZGlvbkNvbXBvbmVudElkXSksXG4gICAgICBmaWx0ZXIoZ3JvdXAgPT4gISFncm91cCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgZGVsYXkoMClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdGF0ZShhY2NvcmRpb25Db21wb25lbnRJZDogc3RyaW5nLCBuZXdTdGF0ZTogUGFydGlhbDxBY2NvcmRpb25TdGF0ZT4pOiB2b2lkIHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuICAgIGNvbnN0IHN0YXRlOiBBY2NvcmRpb25TdGF0ZSA9IHRoaXMuX2dldFN0YXRlKGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGlmICghIXN0YXRlKSB7XG4gICAgICB0aGlzLmdyb3VwcyQubmV4dChnZXROZXdTdGF0ZSh0aGlzLmdyb3VwcyQuZ2V0VmFsdWUoKSwgZ3JvdXBOYW1lLCBhY2NvcmRpb25Db21wb25lbnRJZCwgbmV3U3RhdGUpKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwTmFtZTogc3RyaW5nID0gdGhpcy5jb21wb25lbnRUb0dyb3VwLmdldChhY2NvcmRpb25Db21wb25lbnRJZCk7XG4gICAgY29uc3Qgc3RhdGU6IEFjY29yZGlvblN0YXRlID0gdGhpcy5fZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuXG4gICAgaWYgKCEhc3RhdGUpIHtcbiAgICAgIGNvbnN0IGZvbGRlZDogYm9vbGVhbiA9IHN0YXRlLmZvbGRlZDtcblxuICAgICAgdGhpcy51cGRhdGVTdGF0ZShhY2NvcmRpb25Db21wb25lbnRJZCwgeyBmb2xkZWQ6ICFmb2xkZWQgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IEFjY29yZGlvblN0YXRlIHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IGdyb3VwOiBBY2NvcmRpb25Hcm91cCA9IGdyb3Vwc1tncm91cE5hbWVdO1xuICAgIGlmICghIWdyb3VwKSB7XG4gICAgICBjb25zdCBzdGF0ZTogQWNjb3JkaW9uU3RhdGUgPSBncm91cC5tYXBbYWNjb3JkaW9uQ29tcG9uZW50SWRdO1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXROZXdTdGF0ZShcbiAgZ3JvdXBzOiBEaWN0aW9ubmFyeTxBY2NvcmRpb25Hcm91cD4sXG4gIGdyb3VwTmFtZTogc3RyaW5nLFxuICBhY2NvcmRpb25Db21wb25lbnRJZDogc3RyaW5nLFxuICBuZXdTdGF0ZTogUGFydGlhbDxBY2NvcmRpb25TdGF0ZT5cbik6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPiB7XG4gIHJldHVybiB7XG4gICAgLi4uZ3JvdXBzLFxuICAgIFtncm91cE5hbWVdOiB7XG4gICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXSxcbiAgICAgIG1hcDoge1xuICAgICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXS5tYXAsXG4gICAgICAgIFthY2NvcmRpb25Db21wb25lbnRJZF06IHtcbiAgICAgICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXS5tYXBbYWNjb3JkaW9uQ29tcG9uZW50SWRdLFxuICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuIiwiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neFJvd0FjY29yZGlvblNlcnZpY2UsIEFjY29yZGlvblN0YXRlIH0gZnJvbSAnLi9uZ3gtcm93LWFjY29yZGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IHRhcCwgdGFrZVVudGlsLCBkZWxheSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXJvdy1hY2NvcmRpb24nLFxuICB0ZW1wbGF0ZTogYDxkaXYgZnhGaWxsIGZ4TGF5b3V0PVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJuZ3gtcm93LWFjY29yZGlvblwiPlxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cIm5neC1yb3ctYWNjb3JkaW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiYm9keVwiICpuZ0lmPVwiZGlzcGxheUJvZHkkIHwgYXN5bmNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbjwvZGl2PlxuYCxcbiAgc3R5bGVzOiBbYGBdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hSb3dBY2NvcmRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gIC8vIG5hbWUgb2YgdGhlIGdyb3VwIHRoaXMgYWNjb3JkaW9ucyBiZWxvbmdzIHRvXG4gIEBJbnB1dCgpIGdyb3VwOiBzdHJpbmc7XG5cbiAgZGlzcGxheUJvZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgaWQ6IHN0cmluZyA9IHV1aWQoKTtcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5neFJvd0FjY29yZGlvblNlcnZpY2U6IE5neFJvd0FjY29yZGlvblNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmdyb3VwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tuZ3gtcm93LWFjY29yZGlvbl0geW91IHNob3VsZCBhbHdheXMgcGFzcyBhIGdyb3VwIHdoZW4gY3JlYXRpbmcgYSByb3ctYWNjb3JkaW9uJyk7XG4gICAgfVxuXG4gICAgdGhpcy5uZ3hSb3dBY2NvcmRpb25TZXJ2aWNlLmFkZENvbXBvbmVudFRvR3JvdXAodGhpcy5pZCwgdGhpcy5ncm91cCk7XG5cbiAgICB0aGlzLmRpc3BsYXlCb2R5JCA9IHRoaXMubmd4Um93QWNjb3JkaW9uU2VydmljZS5nZXRTdGF0ZSh0aGlzLmlkKS5waXBlKG1hcCh4ID0+ICF4LmZvbGRlZCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLm5neFJvd0FjY29yZGlvblNlcnZpY2UucmVtb3ZlQ29tcG9uZW50RnJvbUdyb3VwKHRoaXMuaWQpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIHRoaXMubmd4Um93QWNjb3JkaW9uU2VydmljZS50b2dnbGUodGhpcy5pZCk7XG4gIH1cbn1cbiIsImltcG9ydCB7IE5neFJvd0FjY29yZGlvblNlcnZpY2UgfSBmcm9tICcuL25neC1yb3ctYWNjb3JkaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neFJvd0FjY29yZGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvY29yZSc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbi8vIEB0b2RvIFJvdXRlck1vZHVsZSBzaG91bGQgYmUgcGFzc2VkIHdpdGhpbiBmb3JSb290IHRvIGF2b2lkIGNyZWF0aW5nIG5ldyBpbnN0YW5jZXNcbi8vIHRoaXMgd2lsbCBwcmV2ZW50IHVuZXhwZWN0ZWQgYmVoYXZpb3Igd2l0aCBpbnRlcmNlcHRvcnMgb24gbWFpbiBhcHBcbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZsZXhMYXlvdXRNb2R1bGUsIFJvdXRlck1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW05neFJvd0FjY29yZGlvbkNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtOZ3hSb3dBY2NvcmRpb25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hSb3dBY2NvcmRpb25Nb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE5neFJvd0FjY29yZGlvbk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW05neFJvd0FjY29yZGlvblNlcnZpY2VdLFxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ1dWlkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7dUJBeUJrRSxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUM7Z0NBQ3RCLElBQUksR0FBRyxFQUFFOzs7Ozs7O0lBRW5FLG1CQUFtQixDQUFDLG9CQUE0QixFQUFFLFNBQWlCOztRQUV4RSx1QkFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QyxxQkFBSSxLQUFLLEdBQW1CLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQzs7UUFHOUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLEtBQUssR0FBRztnQkFDTixHQUFHLEVBQUUsRUFBRTtnQkFDUCxLQUFLLEVBQUUsRUFBRTthQUNWLENBQUM7U0FDSDs7UUFHRCxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEVBQUU7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1NBQ25FOztRQUdELHVCQUFNLHFCQUFxQixHQUFtQjtZQUM1QyxHQUFHLG9CQUNFLEtBQUssQ0FBQyxHQUFHLElBQ1osQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FDMUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQUM7U0FDOUMsQ0FBQztRQUVGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFM0QsdUJBQU0sS0FBSyxHQUFXLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRTdELHFCQUFJLG9CQUFvQixxQkFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFDMUIsQ0FBQyxTQUFTLEdBQUcscUJBQXFCLEdBQ25DLENBQUM7O1FBR0YsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsdUJBQU0sbUJBQW1CLEdBQVcscUJBQXFCLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUUzRSxvQkFBb0IsR0FBRyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDNUc7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDOzs7Ozs7SUFHbkMsd0JBQXdCLENBQUMsb0JBQTRCO1FBQzFELHVCQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXZDLHVCQUFNLFNBQVMsR0FBVyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFMUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLE9BQU87U0FDUjtRQUVELHVCQUFNLEtBQUssR0FBbUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVqRSxzQkFBUSx5QkFBc0IsRUFBdEIsYUFBNEIsRUFBRSw0REFBdUIsQ0FBQztRQUU5RCx1QkFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXJFLHFCQUFJLFNBQXNDLENBQUM7UUFFM0MsTUFBUSxjQUFXLEVBQVgseUJBQXlCLEVBQUUseUVBQTZCLENBQUM7UUFFakUsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTs7WUFFekIsU0FBUyxHQUFHLGVBQWUsQ0FBQztTQUM3QjthQUFNO1lBQ0wsdUJBQU0saUJBQWlCLEdBQVcsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzNGLHVCQUFNLGNBQWMsR0FBVyxLQUFLLENBQUMsS0FBSyxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRWxFLHVCQUFNLGdDQUFnQyxxQkFDakMsZUFBZSxJQUNsQixDQUFDLFNBQVMsR0FBRztvQkFDWCxHQUFHLEVBQUUsTUFBTTtvQkFDWCxLQUFLLEVBQUUsUUFBUTtpQkFDaEIsR0FDRixDQUFDO1lBRUYsU0FBUyxHQUFHLFdBQVcsQ0FBQyxnQ0FBZ0MsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDekc7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzs7Ozs7O0lBR3hCLFFBQVEsQ0FBQyxvQkFBNEI7UUFDMUMsdUJBQU0sU0FBUyxHQUFXLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUUxRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUN0QixHQUFHLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUNoQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFDeEIsR0FBRyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFDN0MsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQ3hCLG9CQUFvQixFQUFFLEVBQ3RCLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDVCxDQUFDOzs7Ozs7O0lBR0ksV0FBVyxDQUFDLG9CQUE0QixFQUFFLFFBQWlDO1FBQ2pGLHVCQUFNLFNBQVMsR0FBVyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDMUUsdUJBQU0sS0FBSyxHQUFtQixJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFbkUsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDcEc7Ozs7OztJQUdILE1BQU0sQ0FBQyxvQkFBNEI7UUFDakMsdUJBQU0sU0FBUyxHQUFXLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMxRSx1QkFBTSxLQUFLLEdBQW1CLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDWCx1QkFBTSxNQUFNLEdBQVksS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUVyQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUM3RDtLQUNGOzs7OztJQUVPLFNBQVMsQ0FBQyxvQkFBNEI7UUFDNUMsdUJBQU0sU0FBUyxHQUFXLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMxRSx1QkFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2Qyx1QkFBTSxLQUFLLEdBQW1CLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDWCx1QkFBTSxLQUFLLEdBQW1CLEtBQUssQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUM5RCxPQUFPLEtBQUssQ0FBQztTQUNkOzs7O1lBbklKLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7Ozs7Ozs7Ozs7QUF1SWxDLHFCQUNFLE1BQW1DLEVBQ25DLFNBQWlCLEVBQ2pCLG9CQUE0QixFQUM1QixRQUFpQztJQUVqQyx5QkFDSyxNQUFNLElBQ1QsQ0FBQyxTQUFTLHFCQUNMLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFDcEIsR0FBRyxvQkFDRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxJQUN4QixDQUFDLG9CQUFvQixxQkFDaEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxFQUMzQyxRQUFRLFdBSWpCO0NBQ0g7Ozs7OztBQ2pMRDs7OztJQW9DRSxZQUFvQixzQkFBOEM7UUFBOUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtrQkFIN0NBLEVBQUksRUFBRTswQkFDUyxJQUFJLE9BQU8sRUFBRTtLQUVxQjs7OztJQUV0RSxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGtGQUFrRixDQUFDLENBQUM7U0FDckc7UUFFRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0tBQzdGOzs7O0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUMvRDs7OztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUM3Qzs7O1lBbERGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztDQWVYO2dCQUNDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQzthQUNiOzs7O1lBeEJRLHNCQUFzQjs7O29CQTBCNUIsS0FBSztvQkFFTCxLQUFLOzs7Ozs7O0FDN0JSOzs7O0lBZ0JFLE9BQU8sT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO1NBQ3BDLENBQUM7S0FDSDs7O1lBWEYsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLENBQUM7Z0JBQ3ZELFlBQVksRUFBRSxDQUFDLHdCQUF3QixDQUFDO2dCQUN4QyxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQzthQUNwQzs7Ozs7Ozs7Ozs7Ozs7OyJ9

@@ -221,3 +221,3 @@ import { __assign, __spread, __rest } from 'tslib';

template: "<div fxFill fxLayout=\"row\">\n <div class=\"ngx-row-accordion\">\n <div fxLayout=\"row\" class=\"ngx-row-accordion\">\n <div class=\"title\" (click)=\"toggle()\">\n {{ title }}\n </div>\n\n <div class=\"body\" *ngIf=\"displayBody$ | async\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n",
styles: [".ngx-row-accordion{display:inline-block;height:100%}.ngx-row-accordion .title{padding:16px;-webkit-writing-mode:vertical-rl;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:sideways;background-color:#d8d8d8;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ngx-row-accordion .body{padding:16px;background-color:#f3f3f3;overflow:auto}"],
styles: [""],
},] },

@@ -277,2 +277,2 @@ ];

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJvdy1hY2NvcmRpb24uanMubWFwIiwic291cmNlcyI6WyJuZzovL25neC1yb3ctYWNjb3JkaW9uL2xpYi9uZ3gtcm93LWFjY29yZGlvbi5zZXJ2aWNlLnRzIiwibmc6Ly9uZ3gtcm93LWFjY29yZGlvbi9saWIvbmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50LnRzIiwibmc6Ly9uZ3gtcm93LWFjY29yZGlvbi9saWIvbmd4LXJvdy1hY2NvcmRpb24ubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXBUbywgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFwLCBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG1hcENoaWxkcmVuSW50b0FycmF5IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyL3NyYy91cmxfdHJlZSc7XG5cbmludGVyZmFjZSBEaWN0aW9ubmFyeTxUPiB7XG4gIFtrZXk6IHN0cmluZ106IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3JkaW9uU3RhdGUge1xuICBmb2xkZWQ6IGJvb2xlYW47XG59XG5cbnR5cGUgR3JvdXBOYW1lID0gc3RyaW5nO1xudHlwZSBBY2NvcmRpb25Db21wb25lbnRJZCA9IHN0cmluZztcblxuaW50ZXJmYWNlIEFjY29yZGlvbkdyb3VwIHtcbiAgLy8gcmVmZXJlbmNlIHRvIGV2ZXJ5IGFjY29yZGlvbnMgb2YgdGhlIGdyb3VwICh0byBhY2Nlc3MgdGhlbSBieSByZWZlcmVuY2UpXG4gIG1hcDogeyBbYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZ106IEFjY29yZGlvblN0YXRlIH07XG4gIC8vIGFycmF5IGNvbnRhaW5pbmcgdGhlIGVsZW1lbnRzIElEcyB0byBrZWVwIHRyYWNrIG9mIHRoZSBvcmRlXG4gIGFycmF5OiBBY2NvcmRpb25Db21wb25lbnRJZFtdO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neFJvd0FjY29yZGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGdyb3VwcyQ6IEJlaGF2aW9yU3ViamVjdDxEaWN0aW9ubmFyeTxBY2NvcmRpb25Hcm91cD4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG4gIHByaXZhdGUgY29tcG9uZW50VG9Hcm91cDogTWFwPEFjY29yZGlvbkNvbXBvbmVudElkLCBHcm91cE5hbWU+ID0gbmV3IE1hcCgpO1xuXG4gIHB1YmxpYyBhZGRDb21wb25lbnRUb0dyb3VwKGFjY29yZGlvbkNvbXBvbmVudElkOiBzdHJpbmcsIGdyb3VwTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gZ2V0IGN1cnJlbnQgZ3JvdXBcbiAgICBjb25zdCBncm91cHMgPSB0aGlzLmdyb3VwcyQuZ2V0VmFsdWUoKTtcbiAgICBsZXQgZ3JvdXA6IEFjY29yZGlvbkdyb3VwID0gZ3JvdXBzW2dyb3VwTmFtZV07XG5cbiAgICAvLyBpZiB0aGUgZ3JvdXAgZG9lcyBub3QgZXhpc3QgeWV0LCBpbml0aWFsaXplIGl0XG4gICAgaWYgKCFncm91cCkge1xuICAgICAgZ3JvdXAgPSB7XG4gICAgICAgIG1hcDoge30sXG4gICAgICAgIGFycmF5OiBbXSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIGFjY29yZGlvbiBJRCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQsIHRocm93XG4gICAgaWYgKCEhZ3JvdXAubWFwW2FjY29yZGlvbkNvbXBvbmVudElkXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIHJvdy1hY2NvcmRpb24gc2hvdWxkIGJlIHJlZ2lzdGVyZWQgb25seSBvbmNlJyk7XG4gICAgfVxuXG4gICAgLy8gYWRkIHRoZSBuZXcgYWNjb3JkaW9uIHRvIHRoZSBncm91cFxuICAgIGNvbnN0IGdyb3VwV2l0aE5ld0FjY29yZGlvbjogQWNjb3JkaW9uR3JvdXAgPSB7XG4gICAgICBtYXA6IHtcbiAgICAgICAgLi4uZ3JvdXAubWFwLFxuICAgICAgICBbYWNjb3JkaW9uQ29tcG9uZW50SWRdOiB7IGZvbGRlZDogZmFsc2UgfSxcbiAgICAgIH0sXG4gICAgICBhcnJheTogWy4uLmdyb3VwLmFycmF5LCBhY2NvcmRpb25Db21wb25lbnRJZF0sXG4gICAgfTtcblxuICAgIHRoaXMuY29tcG9uZW50VG9Hcm91cC5zZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQsIGdyb3VwTmFtZSk7XG5cbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gZ3JvdXBXaXRoTmV3QWNjb3JkaW9uLmFycmF5Lmxlbmd0aCAtIDE7XG5cbiAgICBsZXQgbmV3R3JvdXBXaXRoTmV3U3RhdGU6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPiA9IHtcbiAgICAgIC4uLnRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpLFxuICAgICAgW2dyb3VwTmFtZV06IGdyb3VwV2l0aE5ld0FjY29yZGlvbixcbiAgICB9O1xuXG4gICAgLy8gaWYgYWRkaW5nIGFuIGFjY29yZGlvbiB3aGljaCBpcyBub3QgdGhlIGZpcnN0IG9uZSwgY2xvc2UgdGhlIHByZXZpb3VzIG9uZVxuICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzQ29tcG9uZW50SWQ6IHN0cmluZyA9IGdyb3VwV2l0aE5ld0FjY29yZGlvbi5hcnJheVtpbmRleCAtIDFdO1xuXG4gICAgICBuZXdHcm91cFdpdGhOZXdTdGF0ZSA9IGdldE5ld1N0YXRlKG5ld0dyb3VwV2l0aE5ld1N0YXRlLCBncm91cE5hbWUsIHByZXZpb3VzQ29tcG9uZW50SWQsIHsgZm9sZGVkOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBzJC5uZXh0KG5ld0dyb3VwV2l0aE5ld1N0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDb21wb25lbnRGcm9tR3JvdXAoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpO1xuXG4gICAgY29uc3QgZ3JvdXBOYW1lOiBzdHJpbmcgPSB0aGlzLmNvbXBvbmVudFRvR3JvdXAuZ2V0KGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGlmICghZ3JvdXBOYW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZ3JvdXA6IEFjY29yZGlvbkdyb3VwID0gdGhpcy5ncm91cHMkLmdldFZhbHVlKClbZ3JvdXBOYW1lXTtcblxuICAgIGNvbnN0IHsgW2FjY29yZGlvbkNvbXBvbmVudElkXTogb21pdCwgLi4ubmV3TWFwIH0gPSBncm91cC5tYXA7XG5cbiAgICBjb25zdCBuZXdBcnJheSA9IGdyb3VwLmFycmF5LmZpbHRlcih4ID0+IHggIT09IGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGxldCBuZXdHcm91cHM6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPjtcblxuICAgIGNvbnN0IHsgW2dyb3VwTmFtZV06IGN1cnJlbnRHcm91cCwgLi4ucmVtYWluaW5nR3JvdXBzIH0gPSBncm91cHM7XG5cbiAgICBpZiAobmV3QXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBpZiBjdXJyZW50IGdyb3VwIGlzIG5vdyBlbXB0eSwgcmVtb3ZlIHRoZSBncm91cCBieSBrZWVwaW5nIG9ubHkgdGhlIG90aGVyc1xuICAgICAgbmV3R3JvdXBzID0gcmVtYWluaW5nR3JvdXBzO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmRleENvbXBUb1JlbW92ZTogbnVtYmVyID0gZ3JvdXAuYXJyYXkuZmluZEluZGV4KGlkID0+IGlkID09PSBhY2NvcmRpb25Db21wb25lbnRJZCk7XG4gICAgICBjb25zdCBpZFByZXZpb3VzQ29tcDogc3RyaW5nID0gZ3JvdXAuYXJyYXlbaW5kZXhDb21wVG9SZW1vdmUgLSAxXTtcblxuICAgICAgY29uc3QgbmV3R3JvdXBzQmVmb3JlVW5mb2xkaW5nUHJldmlvdXMgPSB7XG4gICAgICAgIC4uLnJlbWFpbmluZ0dyb3VwcyxcbiAgICAgICAgW2dyb3VwTmFtZV06IHtcbiAgICAgICAgICBtYXA6IG5ld01hcCxcbiAgICAgICAgICBhcnJheTogbmV3QXJyYXksXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBuZXdHcm91cHMgPSBnZXROZXdTdGF0ZShuZXdHcm91cHNCZWZvcmVVbmZvbGRpbmdQcmV2aW91cywgZ3JvdXBOYW1lLCBpZFByZXZpb3VzQ29tcCwgeyBmb2xkZWQ6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBzJC5uZXh0KG5ld0dyb3Vwcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QWNjb3JkaW9uU3RhdGU+IHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuXG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBzJC5waXBlKFxuICAgICAgbWFwKGdyb3VwcyA9PiBncm91cHNbZ3JvdXBOYW1lXSksXG4gICAgICBmaWx0ZXIoZ3JvdXAgPT4gISFncm91cCksXG4gICAgICBtYXAoZ3JvdXAgPT4gZ3JvdXAubWFwW2FjY29yZGlvbkNvbXBvbmVudElkXSksXG4gICAgICBmaWx0ZXIoZ3JvdXAgPT4gISFncm91cCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgZGVsYXkoMClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdGF0ZShhY2NvcmRpb25Db21wb25lbnRJZDogc3RyaW5nLCBuZXdTdGF0ZTogUGFydGlhbDxBY2NvcmRpb25TdGF0ZT4pOiB2b2lkIHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuICAgIGNvbnN0IHN0YXRlOiBBY2NvcmRpb25TdGF0ZSA9IHRoaXMuX2dldFN0YXRlKGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGlmICghIXN0YXRlKSB7XG4gICAgICB0aGlzLmdyb3VwcyQubmV4dChnZXROZXdTdGF0ZSh0aGlzLmdyb3VwcyQuZ2V0VmFsdWUoKSwgZ3JvdXBOYW1lLCBhY2NvcmRpb25Db21wb25lbnRJZCwgbmV3U3RhdGUpKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwTmFtZTogc3RyaW5nID0gdGhpcy5jb21wb25lbnRUb0dyb3VwLmdldChhY2NvcmRpb25Db21wb25lbnRJZCk7XG4gICAgY29uc3Qgc3RhdGU6IEFjY29yZGlvblN0YXRlID0gdGhpcy5fZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuXG4gICAgaWYgKCEhc3RhdGUpIHtcbiAgICAgIGNvbnN0IGZvbGRlZDogYm9vbGVhbiA9IHN0YXRlLmZvbGRlZDtcblxuICAgICAgdGhpcy51cGRhdGVTdGF0ZShhY2NvcmRpb25Db21wb25lbnRJZCwgeyBmb2xkZWQ6ICFmb2xkZWQgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IEFjY29yZGlvblN0YXRlIHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IGdyb3VwOiBBY2NvcmRpb25Hcm91cCA9IGdyb3Vwc1tncm91cE5hbWVdO1xuICAgIGlmICghIWdyb3VwKSB7XG4gICAgICBjb25zdCBzdGF0ZTogQWNjb3JkaW9uU3RhdGUgPSBncm91cC5tYXBbYWNjb3JkaW9uQ29tcG9uZW50SWRdO1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXROZXdTdGF0ZShcbiAgZ3JvdXBzOiBEaWN0aW9ubmFyeTxBY2NvcmRpb25Hcm91cD4sXG4gIGdyb3VwTmFtZTogc3RyaW5nLFxuICBhY2NvcmRpb25Db21wb25lbnRJZDogc3RyaW5nLFxuICBuZXdTdGF0ZTogUGFydGlhbDxBY2NvcmRpb25TdGF0ZT5cbik6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPiB7XG4gIHJldHVybiB7XG4gICAgLi4uZ3JvdXBzLFxuICAgIFtncm91cE5hbWVdOiB7XG4gICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXSxcbiAgICAgIG1hcDoge1xuICAgICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXS5tYXAsXG4gICAgICAgIFthY2NvcmRpb25Db21wb25lbnRJZF06IHtcbiAgICAgICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXS5tYXBbYWNjb3JkaW9uQ29tcG9uZW50SWRdLFxuICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuIiwiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neFJvd0FjY29yZGlvblNlcnZpY2UsIEFjY29yZGlvblN0YXRlIH0gZnJvbSAnLi9uZ3gtcm93LWFjY29yZGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IHRhcCwgdGFrZVVudGlsLCBkZWxheSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXJvdy1hY2NvcmRpb24nLFxuICB0ZW1wbGF0ZTogYDxkaXYgZnhGaWxsIGZ4TGF5b3V0PVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJuZ3gtcm93LWFjY29yZGlvblwiPlxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cIm5neC1yb3ctYWNjb3JkaW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiYm9keVwiICpuZ0lmPVwiZGlzcGxheUJvZHkkIHwgYXN5bmNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbjwvZGl2PlxuYCxcbiAgc3R5bGVzOiBbYC5uZ3gtcm93LWFjY29yZGlvbntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MTAwJX0ubmd4LXJvdy1hY2NvcmRpb24gLnRpdGxle3BhZGRpbmc6MTZweDstd2Via2l0LXdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybDstbXMtd3JpdGluZy1tb2RlOnRiLXJsO3dyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybDt0ZXh0LW9yaWVudGF0aW9uOnNpZGV3YXlzO2JhY2tncm91bmQtY29sb3I6I2Q4ZDhkODtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9Lm5neC1yb3ctYWNjb3JkaW9uIC5ib2R5e3BhZGRpbmc6MTZweDtiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjM7b3ZlcmZsb3c6YXV0b31gXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd4Um93QWNjb3JkaW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAvLyBuYW1lIG9mIHRoZSBncm91cCB0aGlzIGFjY29yZGlvbnMgYmVsb25ncyB0b1xuICBASW5wdXQoKSBncm91cDogc3RyaW5nO1xuXG4gIGRpc3BsYXlCb2R5JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIGlkOiBzdHJpbmcgPSB1dWlkKCk7XG4gIHByaXZhdGUgb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ3hSb3dBY2NvcmRpb25TZXJ2aWNlOiBOZ3hSb3dBY2NvcmRpb25TZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5ncm91cCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbbmd4LXJvdy1hY2NvcmRpb25dIHlvdSBzaG91bGQgYWx3YXlzIHBhc3MgYSBncm91cCB3aGVuIGNyZWF0aW5nIGEgcm93LWFjY29yZGlvbicpO1xuICAgIH1cblxuICAgIHRoaXMubmd4Um93QWNjb3JkaW9uU2VydmljZS5hZGRDb21wb25lbnRUb0dyb3VwKHRoaXMuaWQsIHRoaXMuZ3JvdXApO1xuXG4gICAgdGhpcy5kaXNwbGF5Qm9keSQgPSB0aGlzLm5neFJvd0FjY29yZGlvblNlcnZpY2UuZ2V0U3RhdGUodGhpcy5pZCkucGlwZShtYXAoeCA9PiAheC5mb2xkZWQpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy5uZ3hSb3dBY2NvcmRpb25TZXJ2aWNlLnJlbW92ZUNvbXBvbmVudEZyb21Hcm91cCh0aGlzLmlkKTtcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLm5neFJvd0FjY29yZGlvblNlcnZpY2UudG9nZ2xlKHRoaXMuaWQpO1xuICB9XG59XG4iLCJpbXBvcnQgeyBOZ3hSb3dBY2NvcmRpb25TZXJ2aWNlIH0gZnJvbSAnLi9uZ3gtcm93LWFjY29yZGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hSb3dBY2NvcmRpb25Db21wb25lbnQgfSBmcm9tICcuL25neC1yb3ctYWNjb3JkaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL2NvcmUnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG4vLyBAdG9kbyBSb3V0ZXJNb2R1bGUgc2hvdWxkIGJlIHBhc3NlZCB3aXRoaW4gZm9yUm9vdCB0byBhdm9pZCBjcmVhdGluZyBuZXcgaW5zdGFuY2VzXG4vLyB0aGlzIHdpbGwgcHJldmVudCB1bmV4cGVjdGVkIGJlaGF2aW9yIHdpdGggaW50ZXJjZXB0b3JzIG9uIG1haW4gYXBwXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGbGV4TGF5b3V0TW9kdWxlLCBSb3V0ZXJNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtOZ3hSb3dBY2NvcmRpb25Db21wb25lbnRdLFxuICBleHBvcnRzOiBbTmd4Um93QWNjb3JkaW9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd4Um93QWNjb3JkaW9uTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ3hSb3dBY2NvcmRpb25Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtOZ3hSb3dBY2NvcmRpb25TZXJ2aWNlXSxcbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOlsidXVpZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O3VCQXlCa0UsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDO2dDQUN0QixJQUFJLEdBQUcsRUFBRTs7Ozs7OztJQUVuRSxvREFBbUI7Ozs7O2NBQUMsb0JBQTRCLEVBQUUsU0FBaUI7O1FBRXhFLHFCQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZDLHFCQUFJLEtBQUssR0FBbUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDOztRQUc5QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsS0FBSyxHQUFHO2dCQUNOLEdBQUcsRUFBRSxFQUFFO2dCQUNQLEtBQUssRUFBRSxFQUFFO2FBQ1YsQ0FBQztTQUNIOztRQUdELElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsRUFBRTtZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7U0FDbkU7O1FBR0QscUJBQU0scUJBQXFCLEdBQW1CO1lBQzVDLEdBQUcsZUFDRSxLQUFLLENBQUMsR0FBRyxlQUNYLG9CQUFvQixJQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUMxQztZQUNELEtBQUssV0FBTSxLQUFLLENBQUMsS0FBSyxHQUFFLG9CQUFvQixFQUFDO1NBQzlDLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTNELHFCQUFNLEtBQUssR0FBVyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUU3RCxxQkFBSSxvQkFBb0IsZ0JBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLGVBQ3pCLFNBQVMsSUFBRyxxQkFBcUIsTUFDbkMsQ0FBQzs7UUFHRixJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDYixxQkFBTSxtQkFBbUIsR0FBVyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRTNFLG9CQUFvQixHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUM1RztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7Ozs7Ozs7SUFHbkMseURBQXdCOzs7O2NBQUMsb0JBQTRCO1FBQzFELHFCQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXZDLHFCQUFNLFNBQVMsR0FBVyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFMUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLE9BQU87U0FDUjtRQUVELHFCQUFNLEtBQUssR0FBbUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVqRSxvQkFBUSx5QkFBc0IsRUFBdEIsYUFBNEIsRUFBRSw0REFBdUIsQ0FBQztRQUU5RCxxQkFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLEtBQUssb0JBQW9CLEdBQUEsQ0FBQyxDQUFDO1FBRXJFLHFCQUFJLFNBQXNDLENBQUM7UUFFM0MsSUFBUSxjQUFXLEVBQVgseUJBQXlCLEVBQUUseUVBQTZCLENBQUM7UUFFakUsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTs7WUFFekIsU0FBUyxHQUFHLGVBQWUsQ0FBQztTQUM3QjthQUFNO1lBQ0wscUJBQU0saUJBQWlCLEdBQVcsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBQSxFQUFFLElBQUksT0FBQSxFQUFFLEtBQUssb0JBQW9CLEdBQUEsQ0FBQyxDQUFDO1lBQzNGLHFCQUFNLGNBQWMsR0FBVyxLQUFLLENBQUMsS0FBSyxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRWxFLHFCQUFNLGdDQUFnQyxnQkFDakMsZUFBZSxlQUNqQixTQUFTLElBQUc7Z0JBQ1gsR0FBRyxFQUFFLE1BQU07Z0JBQ1gsS0FBSyxFQUFFLFFBQVE7YUFDaEIsTUFDRixDQUFDO1lBRUYsU0FBUyxHQUFHLFdBQVcsQ0FBQyxnQ0FBZ0MsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDekc7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzs7Ozs7OztJQUd4Qix5Q0FBUTs7OztjQUFDLG9CQUE0QjtRQUMxQyxxQkFBTSxTQUFTLEdBQVcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRTFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3RCLEdBQUcsQ0FBQyxVQUFBLE1BQU0sSUFBSSxPQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBQSxDQUFDLEVBQ2hDLE1BQU0sQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLENBQUMsQ0FBQyxLQUFLLEdBQUEsQ0FBQyxFQUN4QixHQUFHLENBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxLQUFLLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEdBQUEsQ0FBQyxFQUM3QyxNQUFNLENBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxDQUFDLENBQUMsS0FBSyxHQUFBLENBQUMsRUFDeEIsb0JBQW9CLEVBQUUsRUFDdEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNULENBQUM7Ozs7Ozs7SUFHSSw0Q0FBVzs7Ozs7Y0FBQyxvQkFBNEIsRUFBRSxRQUFpQztRQUNqRixxQkFBTSxTQUFTLEdBQVcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzFFLHFCQUFNLEtBQUssR0FBbUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRW5FLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ3BHOzs7Ozs7SUFHSCx1Q0FBTTs7OztJQUFOLFVBQU8sb0JBQTRCO1FBQ2pDLHFCQUFNLFNBQVMsR0FBVyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDMUUscUJBQU0sS0FBSyxHQUFtQixJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFbkUsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO1lBQ1gscUJBQU0sTUFBTSxHQUFZLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFFckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDN0Q7S0FDRjs7Ozs7SUFFTywwQ0FBUzs7OztjQUFDLG9CQUE0QjtRQUM1QyxxQkFBTSxTQUFTLEdBQVcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzFFLHFCQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZDLHFCQUFNLEtBQUssR0FBbUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNYLHFCQUFNLEtBQUssR0FBbUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzlELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7OztnQkFuSUosVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7O2lDQXZCbEM7Ozs7Ozs7OztBQThKQSxxQkFDRSxNQUFtQyxFQUNuQyxTQUFpQixFQUNqQixvQkFBNEIsRUFDNUIsUUFBaUM7SUFFakMsb0JBQ0ssTUFBTSxlQUNSLFNBQVMsaUJBQ0wsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUNwQixHQUFHLGVBQ0UsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsZUFDdkIsb0JBQW9CLGlCQUNoQixNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEVBQzNDLFFBQVEsaUJBSWpCOztDQUNIOzs7Ozs7QUNqTEQ7SUFvQ0Usa0NBQW9CLHNCQUE4QztRQUE5QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO2tCQUg3Q0EsRUFBSSxFQUFFOzBCQUNTLElBQUksT0FBTyxFQUFFO0tBRXFCOzs7O0lBRXRFLDJDQUFROzs7SUFBUjtRQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxrRkFBa0YsQ0FBQyxDQUFDO1NBQ3JHO1FBRUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXJFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBQSxDQUFDLENBQUMsQ0FBQztLQUM3Rjs7OztJQUVELDhDQUFXOzs7SUFBWDtRQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUMvRDs7OztJQUVELHlDQUFNOzs7SUFBTjtRQUNFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQzdDOztnQkFsREYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRSxvWUFlWDtvQkFDQyxNQUFNLEVBQUUsQ0FBQyxrWkFBa1osQ0FBQztpQkFDN1o7Ozs7Z0JBeEJRLHNCQUFzQjs7O3dCQTBCNUIsS0FBSzt3QkFFTCxLQUFLOzttQ0E3QlI7Ozs7Ozs7QUNBQTs7Ozs7O0lBZ0JTLDZCQUFPOzs7SUFBZDtRQUNFLE9BQU87WUFDTCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO1NBQ3BDLENBQUM7S0FDSDs7Z0JBWEYsUUFBUSxTQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLENBQUM7b0JBQ3ZELFlBQVksRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDcEM7O2dDQWREOzs7Ozs7Ozs7Ozs7Ozs7In0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJvdy1hY2NvcmRpb24uanMubWFwIiwic291cmNlcyI6WyJuZzovL25neC1yb3ctYWNjb3JkaW9uL2xpYi9uZ3gtcm93LWFjY29yZGlvbi5zZXJ2aWNlLnRzIiwibmc6Ly9uZ3gtcm93LWFjY29yZGlvbi9saWIvbmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50LnRzIiwibmc6Ly9uZ3gtcm93LWFjY29yZGlvbi9saWIvbmd4LXJvdy1hY2NvcmRpb24ubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXBUbywgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFwLCBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG1hcENoaWxkcmVuSW50b0FycmF5IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyL3NyYy91cmxfdHJlZSc7XG5cbmludGVyZmFjZSBEaWN0aW9ubmFyeTxUPiB7XG4gIFtrZXk6IHN0cmluZ106IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3JkaW9uU3RhdGUge1xuICBmb2xkZWQ6IGJvb2xlYW47XG59XG5cbnR5cGUgR3JvdXBOYW1lID0gc3RyaW5nO1xudHlwZSBBY2NvcmRpb25Db21wb25lbnRJZCA9IHN0cmluZztcblxuaW50ZXJmYWNlIEFjY29yZGlvbkdyb3VwIHtcbiAgLy8gcmVmZXJlbmNlIHRvIGV2ZXJ5IGFjY29yZGlvbnMgb2YgdGhlIGdyb3VwICh0byBhY2Nlc3MgdGhlbSBieSByZWZlcmVuY2UpXG4gIG1hcDogeyBbYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZ106IEFjY29yZGlvblN0YXRlIH07XG4gIC8vIGFycmF5IGNvbnRhaW5pbmcgdGhlIGVsZW1lbnRzIElEcyB0byBrZWVwIHRyYWNrIG9mIHRoZSBvcmRlXG4gIGFycmF5OiBBY2NvcmRpb25Db21wb25lbnRJZFtdO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neFJvd0FjY29yZGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGdyb3VwcyQ6IEJlaGF2aW9yU3ViamVjdDxEaWN0aW9ubmFyeTxBY2NvcmRpb25Hcm91cD4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG4gIHByaXZhdGUgY29tcG9uZW50VG9Hcm91cDogTWFwPEFjY29yZGlvbkNvbXBvbmVudElkLCBHcm91cE5hbWU+ID0gbmV3IE1hcCgpO1xuXG4gIHB1YmxpYyBhZGRDb21wb25lbnRUb0dyb3VwKGFjY29yZGlvbkNvbXBvbmVudElkOiBzdHJpbmcsIGdyb3VwTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gZ2V0IGN1cnJlbnQgZ3JvdXBcbiAgICBjb25zdCBncm91cHMgPSB0aGlzLmdyb3VwcyQuZ2V0VmFsdWUoKTtcbiAgICBsZXQgZ3JvdXA6IEFjY29yZGlvbkdyb3VwID0gZ3JvdXBzW2dyb3VwTmFtZV07XG5cbiAgICAvLyBpZiB0aGUgZ3JvdXAgZG9lcyBub3QgZXhpc3QgeWV0LCBpbml0aWFsaXplIGl0XG4gICAgaWYgKCFncm91cCkge1xuICAgICAgZ3JvdXAgPSB7XG4gICAgICAgIG1hcDoge30sXG4gICAgICAgIGFycmF5OiBbXSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIGFjY29yZGlvbiBJRCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQsIHRocm93XG4gICAgaWYgKCEhZ3JvdXAubWFwW2FjY29yZGlvbkNvbXBvbmVudElkXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBIHJvdy1hY2NvcmRpb24gc2hvdWxkIGJlIHJlZ2lzdGVyZWQgb25seSBvbmNlJyk7XG4gICAgfVxuXG4gICAgLy8gYWRkIHRoZSBuZXcgYWNjb3JkaW9uIHRvIHRoZSBncm91cFxuICAgIGNvbnN0IGdyb3VwV2l0aE5ld0FjY29yZGlvbjogQWNjb3JkaW9uR3JvdXAgPSB7XG4gICAgICBtYXA6IHtcbiAgICAgICAgLi4uZ3JvdXAubWFwLFxuICAgICAgICBbYWNjb3JkaW9uQ29tcG9uZW50SWRdOiB7IGZvbGRlZDogZmFsc2UgfSxcbiAgICAgIH0sXG4gICAgICBhcnJheTogWy4uLmdyb3VwLmFycmF5LCBhY2NvcmRpb25Db21wb25lbnRJZF0sXG4gICAgfTtcblxuICAgIHRoaXMuY29tcG9uZW50VG9Hcm91cC5zZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQsIGdyb3VwTmFtZSk7XG5cbiAgICBjb25zdCBpbmRleDogbnVtYmVyID0gZ3JvdXBXaXRoTmV3QWNjb3JkaW9uLmFycmF5Lmxlbmd0aCAtIDE7XG5cbiAgICBsZXQgbmV3R3JvdXBXaXRoTmV3U3RhdGU6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPiA9IHtcbiAgICAgIC4uLnRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpLFxuICAgICAgW2dyb3VwTmFtZV06IGdyb3VwV2l0aE5ld0FjY29yZGlvbixcbiAgICB9O1xuXG4gICAgLy8gaWYgYWRkaW5nIGFuIGFjY29yZGlvbiB3aGljaCBpcyBub3QgdGhlIGZpcnN0IG9uZSwgY2xvc2UgdGhlIHByZXZpb3VzIG9uZVxuICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzQ29tcG9uZW50SWQ6IHN0cmluZyA9IGdyb3VwV2l0aE5ld0FjY29yZGlvbi5hcnJheVtpbmRleCAtIDFdO1xuXG4gICAgICBuZXdHcm91cFdpdGhOZXdTdGF0ZSA9IGdldE5ld1N0YXRlKG5ld0dyb3VwV2l0aE5ld1N0YXRlLCBncm91cE5hbWUsIHByZXZpb3VzQ29tcG9uZW50SWQsIHsgZm9sZGVkOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBzJC5uZXh0KG5ld0dyb3VwV2l0aE5ld1N0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDb21wb25lbnRGcm9tR3JvdXAoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpO1xuXG4gICAgY29uc3QgZ3JvdXBOYW1lOiBzdHJpbmcgPSB0aGlzLmNvbXBvbmVudFRvR3JvdXAuZ2V0KGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGlmICghZ3JvdXBOYW1lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZ3JvdXA6IEFjY29yZGlvbkdyb3VwID0gdGhpcy5ncm91cHMkLmdldFZhbHVlKClbZ3JvdXBOYW1lXTtcblxuICAgIGNvbnN0IHsgW2FjY29yZGlvbkNvbXBvbmVudElkXTogb21pdCwgLi4ubmV3TWFwIH0gPSBncm91cC5tYXA7XG5cbiAgICBjb25zdCBuZXdBcnJheSA9IGdyb3VwLmFycmF5LmZpbHRlcih4ID0+IHggIT09IGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGxldCBuZXdHcm91cHM6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPjtcblxuICAgIGNvbnN0IHsgW2dyb3VwTmFtZV06IGN1cnJlbnRHcm91cCwgLi4ucmVtYWluaW5nR3JvdXBzIH0gPSBncm91cHM7XG5cbiAgICBpZiAobmV3QXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBpZiBjdXJyZW50IGdyb3VwIGlzIG5vdyBlbXB0eSwgcmVtb3ZlIHRoZSBncm91cCBieSBrZWVwaW5nIG9ubHkgdGhlIG90aGVyc1xuICAgICAgbmV3R3JvdXBzID0gcmVtYWluaW5nR3JvdXBzO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmRleENvbXBUb1JlbW92ZTogbnVtYmVyID0gZ3JvdXAuYXJyYXkuZmluZEluZGV4KGlkID0+IGlkID09PSBhY2NvcmRpb25Db21wb25lbnRJZCk7XG4gICAgICBjb25zdCBpZFByZXZpb3VzQ29tcDogc3RyaW5nID0gZ3JvdXAuYXJyYXlbaW5kZXhDb21wVG9SZW1vdmUgLSAxXTtcblxuICAgICAgY29uc3QgbmV3R3JvdXBzQmVmb3JlVW5mb2xkaW5nUHJldmlvdXMgPSB7XG4gICAgICAgIC4uLnJlbWFpbmluZ0dyb3VwcyxcbiAgICAgICAgW2dyb3VwTmFtZV06IHtcbiAgICAgICAgICBtYXA6IG5ld01hcCxcbiAgICAgICAgICBhcnJheTogbmV3QXJyYXksXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBuZXdHcm91cHMgPSBnZXROZXdTdGF0ZShuZXdHcm91cHNCZWZvcmVVbmZvbGRpbmdQcmV2aW91cywgZ3JvdXBOYW1lLCBpZFByZXZpb3VzQ29tcCwgeyBmb2xkZWQ6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBzJC5uZXh0KG5ld0dyb3Vwcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QWNjb3JkaW9uU3RhdGU+IHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuXG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBzJC5waXBlKFxuICAgICAgbWFwKGdyb3VwcyA9PiBncm91cHNbZ3JvdXBOYW1lXSksXG4gICAgICBmaWx0ZXIoZ3JvdXAgPT4gISFncm91cCksXG4gICAgICBtYXAoZ3JvdXAgPT4gZ3JvdXAubWFwW2FjY29yZGlvbkNvbXBvbmVudElkXSksXG4gICAgICBmaWx0ZXIoZ3JvdXAgPT4gISFncm91cCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgZGVsYXkoMClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTdGF0ZShhY2NvcmRpb25Db21wb25lbnRJZDogc3RyaW5nLCBuZXdTdGF0ZTogUGFydGlhbDxBY2NvcmRpb25TdGF0ZT4pOiB2b2lkIHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuICAgIGNvbnN0IHN0YXRlOiBBY2NvcmRpb25TdGF0ZSA9IHRoaXMuX2dldFN0YXRlKGFjY29yZGlvbkNvbXBvbmVudElkKTtcblxuICAgIGlmICghIXN0YXRlKSB7XG4gICAgICB0aGlzLmdyb3VwcyQubmV4dChnZXROZXdTdGF0ZSh0aGlzLmdyb3VwcyQuZ2V0VmFsdWUoKSwgZ3JvdXBOYW1lLCBhY2NvcmRpb25Db21wb25lbnRJZCwgbmV3U3RhdGUpKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwTmFtZTogc3RyaW5nID0gdGhpcy5jb21wb25lbnRUb0dyb3VwLmdldChhY2NvcmRpb25Db21wb25lbnRJZCk7XG4gICAgY29uc3Qgc3RhdGU6IEFjY29yZGlvblN0YXRlID0gdGhpcy5fZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuXG4gICAgaWYgKCEhc3RhdGUpIHtcbiAgICAgIGNvbnN0IGZvbGRlZDogYm9vbGVhbiA9IHN0YXRlLmZvbGRlZDtcblxuICAgICAgdGhpcy51cGRhdGVTdGF0ZShhY2NvcmRpb25Db21wb25lbnRJZCwgeyBmb2xkZWQ6ICFmb2xkZWQgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U3RhdGUoYWNjb3JkaW9uQ29tcG9uZW50SWQ6IHN0cmluZyk6IEFjY29yZGlvblN0YXRlIHtcbiAgICBjb25zdCBncm91cE5hbWU6IHN0cmluZyA9IHRoaXMuY29tcG9uZW50VG9Hcm91cC5nZXQoYWNjb3JkaW9uQ29tcG9uZW50SWQpO1xuICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZ3JvdXBzJC5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IGdyb3VwOiBBY2NvcmRpb25Hcm91cCA9IGdyb3Vwc1tncm91cE5hbWVdO1xuICAgIGlmICghIWdyb3VwKSB7XG4gICAgICBjb25zdCBzdGF0ZTogQWNjb3JkaW9uU3RhdGUgPSBncm91cC5tYXBbYWNjb3JkaW9uQ29tcG9uZW50SWRdO1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXROZXdTdGF0ZShcbiAgZ3JvdXBzOiBEaWN0aW9ubmFyeTxBY2NvcmRpb25Hcm91cD4sXG4gIGdyb3VwTmFtZTogc3RyaW5nLFxuICBhY2NvcmRpb25Db21wb25lbnRJZDogc3RyaW5nLFxuICBuZXdTdGF0ZTogUGFydGlhbDxBY2NvcmRpb25TdGF0ZT5cbik6IERpY3Rpb25uYXJ5PEFjY29yZGlvbkdyb3VwPiB7XG4gIHJldHVybiB7XG4gICAgLi4uZ3JvdXBzLFxuICAgIFtncm91cE5hbWVdOiB7XG4gICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXSxcbiAgICAgIG1hcDoge1xuICAgICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXS5tYXAsXG4gICAgICAgIFthY2NvcmRpb25Db21wb25lbnRJZF06IHtcbiAgICAgICAgICAuLi5ncm91cHNbZ3JvdXBOYW1lXS5tYXBbYWNjb3JkaW9uQ29tcG9uZW50SWRdLFxuICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuIiwiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neFJvd0FjY29yZGlvblNlcnZpY2UsIEFjY29yZGlvblN0YXRlIH0gZnJvbSAnLi9uZ3gtcm93LWFjY29yZGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IHRhcCwgdGFrZVVudGlsLCBkZWxheSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXJvdy1hY2NvcmRpb24nLFxuICB0ZW1wbGF0ZTogYDxkaXYgZnhGaWxsIGZ4TGF5b3V0PVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJuZ3gtcm93LWFjY29yZGlvblwiPlxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cIm5neC1yb3ctYWNjb3JkaW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiYm9keVwiICpuZ0lmPVwiZGlzcGxheUJvZHkkIHwgYXN5bmNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbjwvZGl2PlxuYCxcbiAgc3R5bGVzOiBbYGBdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hSb3dBY2NvcmRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gIC8vIG5hbWUgb2YgdGhlIGdyb3VwIHRoaXMgYWNjb3JkaW9ucyBiZWxvbmdzIHRvXG4gIEBJbnB1dCgpIGdyb3VwOiBzdHJpbmc7XG5cbiAgZGlzcGxheUJvZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgaWQ6IHN0cmluZyA9IHV1aWQoKTtcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5neFJvd0FjY29yZGlvblNlcnZpY2U6IE5neFJvd0FjY29yZGlvblNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmdyb3VwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tuZ3gtcm93LWFjY29yZGlvbl0geW91IHNob3VsZCBhbHdheXMgcGFzcyBhIGdyb3VwIHdoZW4gY3JlYXRpbmcgYSByb3ctYWNjb3JkaW9uJyk7XG4gICAgfVxuXG4gICAgdGhpcy5uZ3hSb3dBY2NvcmRpb25TZXJ2aWNlLmFkZENvbXBvbmVudFRvR3JvdXAodGhpcy5pZCwgdGhpcy5ncm91cCk7XG5cbiAgICB0aGlzLmRpc3BsYXlCb2R5JCA9IHRoaXMubmd4Um93QWNjb3JkaW9uU2VydmljZS5nZXRTdGF0ZSh0aGlzLmlkKS5waXBlKG1hcCh4ID0+ICF4LmZvbGRlZCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLm5neFJvd0FjY29yZGlvblNlcnZpY2UucmVtb3ZlQ29tcG9uZW50RnJvbUdyb3VwKHRoaXMuaWQpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIHRoaXMubmd4Um93QWNjb3JkaW9uU2VydmljZS50b2dnbGUodGhpcy5pZCk7XG4gIH1cbn1cbiIsImltcG9ydCB7IE5neFJvd0FjY29yZGlvblNlcnZpY2UgfSBmcm9tICcuL25neC1yb3ctYWNjb3JkaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neFJvd0FjY29yZGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbmd4LXJvdy1hY2NvcmRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21waWxlci9zcmMvY29yZSc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbi8vIEB0b2RvIFJvdXRlck1vZHVsZSBzaG91bGQgYmUgcGFzc2VkIHdpdGhpbiBmb3JSb290IHRvIGF2b2lkIGNyZWF0aW5nIG5ldyBpbnN0YW5jZXNcbi8vIHRoaXMgd2lsbCBwcmV2ZW50IHVuZXhwZWN0ZWQgYmVoYXZpb3Igd2l0aCBpbnRlcmNlcHRvcnMgb24gbWFpbiBhcHBcbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZsZXhMYXlvdXRNb2R1bGUsIFJvdXRlck1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW05neFJvd0FjY29yZGlvbkNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtOZ3hSb3dBY2NvcmRpb25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hSb3dBY2NvcmRpb25Nb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE5neFJvd0FjY29yZGlvbk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW05neFJvd0FjY29yZGlvblNlcnZpY2VdLFxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ1dWlkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7dUJBeUJrRSxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUM7Z0NBQ3RCLElBQUksR0FBRyxFQUFFOzs7Ozs7O0lBRW5FLG9EQUFtQjs7Ozs7Y0FBQyxvQkFBNEIsRUFBRSxTQUFpQjs7UUFFeEUscUJBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkMscUJBQUksS0FBSyxHQUFtQixNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7O1FBRzlDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixLQUFLLEdBQUc7Z0JBQ04sR0FBRyxFQUFFLEVBQUU7Z0JBQ1AsS0FBSyxFQUFFLEVBQUU7YUFDVixDQUFDO1NBQ0g7O1FBR0QsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FB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

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"AccordionState":{"__symbolic":"interface"},"NgxRowAccordionService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":23,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"addComponentToGroup":[{"__symbolic":"method"}],"removeComponentFromGroup":[{"__symbolic":"method"}],"getState":[{"__symbolic":"method"}],"updateState":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"_getState":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"NgxRowAccordionComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"ngx-row-accordion","template":"<div fxFill fxLayout=\"row\">\n <div class=\"ngx-row-accordion\">\n <div fxLayout=\"row\" class=\"ngx-row-accordion\">\n <div class=\"title\" (click)=\"toggle()\">\n {{ title }}\n </div>\n\n <div class=\"body\" *ngIf=\"displayBody$ | async\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n","styles":[".ngx-row-accordion{display:inline-block;height:100%}.ngx-row-accordion .title{padding:16px;-webkit-writing-mode:vertical-rl;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;text-orientation:sideways;background-color:#d8d8d8;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ngx-row-accordion .body{padding:16px;background-color:#f3f3f3;overflow:auto}"]}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"group":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"NgxRowAccordionService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}]}},"NgxRowAccordionModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":12},{"__symbolic":"reference","module":"@angular/flex-layout","name":"FlexLayoutModule","line":11,"character":26},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":11,"character":44}],"declarations":[{"__symbolic":"reference","name":"NgxRowAccordionComponent"}],"exports":[{"__symbolic":"reference","name":"NgxRowAccordionComponent"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"NgxRowAccordionModule"},"providers":[{"__symbolic":"reference","name":"NgxRowAccordionService"}]}}}}},"origins":{"AccordionState":"./lib/ngx-row-accordion.service","NgxRowAccordionService":"./lib/ngx-row-accordion.service","NgxRowAccordionComponent":"./lib/ngx-row-accordion.component","NgxRowAccordionModule":"./lib/ngx-row-accordion.module"},"importAs":"ngx-row-accordion"}
{"__symbolic":"module","version":4,"metadata":{"AccordionState":{"__symbolic":"interface"},"NgxRowAccordionService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":23,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"addComponentToGroup":[{"__symbolic":"method"}],"removeComponentFromGroup":[{"__symbolic":"method"}],"getState":[{"__symbolic":"method"}],"updateState":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"_getState":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"NgxRowAccordionComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"ngx-row-accordion","template":"<div fxFill fxLayout=\"row\">\n <div class=\"ngx-row-accordion\">\n <div fxLayout=\"row\" class=\"ngx-row-accordion\">\n <div class=\"title\" (click)=\"toggle()\">\n {{ title }}\n </div>\n\n <div class=\"body\" *ngIf=\"displayBody$ | async\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n","styles":[""]}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"group":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"NgxRowAccordionService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}]}},"NgxRowAccordionModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":12},{"__symbolic":"reference","module":"@angular/flex-layout","name":"FlexLayoutModule","line":11,"character":26},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":11,"character":44}],"declarations":[{"__symbolic":"reference","name":"NgxRowAccordionComponent"}],"exports":[{"__symbolic":"reference","name":"NgxRowAccordionComponent"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"NgxRowAccordionModule"},"providers":[{"__symbolic":"reference","name":"NgxRowAccordionService"}]}}}}},"origins":{"AccordionState":"./lib/ngx-row-accordion.service","NgxRowAccordionService":"./lib/ngx-row-accordion.service","NgxRowAccordionComponent":"./lib/ngx-row-accordion.component","NgxRowAccordionModule":"./lib/ngx-row-accordion.module"},"importAs":"ngx-row-accordion"}
{
"name": "ngx-row-accordion",
"version": "1.0.3",
"version": "2.0.0",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "https://github.com/maxime1992/ngx-row-accordion.git"
},
"peerDependencies": {

@@ -8,0 +12,0 @@ "@angular/common": "^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