@mnemonica/tactica 0.1.8 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/analyzer.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/generator.js +1 -1
- package/lib/graph.js +1 -1
- package/lib/index.js +1 -1
- package/lib/topologica-analyzer.js +1 -1
- package/lib/types.js +1 -1
- package/lib/writer.js +1 -1
- package/package.json +1 -1
- package/lib/analyzer.js.map +0 -1
- package/lib/cli.js.map +0 -1
- package/lib/generator.js.map +0 -1
- package/lib/graph.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/topologica-analyzer.js.map +0 -1
- package/lib/types.js.map +0 -1
- package/lib/writer.js.map +0 -1
package/lib/cli.js
CHANGED
|
@@ -539,4 +539,4 @@ function main() {
|
|
|
539
539
|
if (require.main === module) {
|
|
540
540
|
main();
|
|
541
541
|
}
|
|
542
|
-
//# sourceMappingURL=cli.js.map
|
|
542
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsWUFBWSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQStsQlosb0JBQUk7QUFBRSxrQkFBRztBQUFFLHNCQUFLO0FBQUUsOEJBQVM7QUE3bEI1Qix1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLCtDQUFpQztBQUNqQyx5Q0FBK0M7QUFDL0MsK0RBQTJEO0FBQzNELDJDQUE2QztBQUM3QyxxQ0FBdUM7QUF3QnZDOztHQUVHO0FBQ0gsU0FBUyxTQUFTLENBQUUsSUFBYztJQUNqQyxNQUFNLE9BQU8sR0FBZSxFQUFFLENBQUM7SUFFL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN0QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUUsQ0FBQyxDQUFFLENBQUM7UUFFdEIsUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNkLEtBQUssSUFBSSxDQUFDO1lBQ1YsS0FBSyxTQUFTO2dCQUNiLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixNQUFNO1lBQ1AsS0FBSyxJQUFJLENBQUM7WUFDVixLQUFLLFdBQVc7Z0JBQ2YsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUUsRUFBRSxDQUFDLENBQUUsQ0FBQztnQkFDOUIsTUFBTTtZQUNQLEtBQUssSUFBSSxDQUFDO1lBQ1YsS0FBSyxVQUFVO2dCQUNkLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFFLEVBQUUsQ0FBQyxDQUFFLENBQUM7Z0JBQ2hDLE1BQU07WUFDUCxLQUFLLElBQUksQ0FBQztZQUNWLEtBQUssV0FBVztnQkFDZixPQUFPLENBQUMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FB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c3IvYmluL2VudiBub2RlXG4ndXNlIHN0cmljdCc7XG5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7IE1uZW1vbmljYUFuYWx5emVyIH0gZnJvbSAnLi9hbmFseXplcic7XG5pbXBvcnQgeyBUb3BvbG9naWNhQW5hbHl6ZXIgfSBmcm9tICcuL3RvcG9sb2dpY2EtYW5hbHl6ZXInO1xuaW1wb3J0IHsgVHlwZXNHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcic7XG5pbXBvcnQgeyBUeXBlc1dyaXRlciB9IGZyb20gJy4vd3JpdGVyJztcbmltcG9ydCB7XG5cdFRhY3RpY2FDb25maWcsIFR5cGVOb2RlIFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFR5cGVHcmFwaEltcGwgfSBmcm9tICcuL2dyYXBoJztcblxuLyoqXG4gKiBDTEkgZW50cnkgcG9pbnQgZm9yIFRhY3RpY2FcbiAqXG4gKiBDYW4gYmUgdXNlZCBzdGFuZGFsb25lIHdpdGhvdXQgdGhlIExhbmd1YWdlIFNlcnZpY2UgUGx1Z2luXG4gKi9cblxuaW50ZXJmYWNlIENMSU9wdGlvbnMgZXh0ZW5kcyBUYWN0aWNhQ29uZmlnIHtcblx0d2F0Y2g/OiBib29sZWFuO1xuXHRwcm9qZWN0Pzogc3RyaW5nO1xuXHRoZWxwPzogYm9vbGVhbjtcblx0LyoqIEN1c3RvbSB0b3BvbG9naWNhIGRpcmVjdG9yaWVzIHRvIHNjYW4gKi9cblx0dG9wb2xvZ2ljYURpcnM/OiBzdHJpbmdbXTtcblx0LyoqIEFkZCAuanMgZXh0ZW5zaW9ucyB0byByZWxhdGl2ZSBpbXBvcnRzIGZvciBFU00gTm9kZU5leHQgcmVzb2x1dGlvbiAqL1xuXHRlc20/OiBib29sZWFuO1xuXHQvKiogRW5hYmxlIEVEUyAoRXhlY3V0aW9uIERhdGEgU3RvcmFnZSkgdHJhY2tpbmcgKi9cblx0ZWRzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQYXJzZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzXG4gKi9cbmZ1bmN0aW9uIHBhcnNlQXJncyAoYXJnczogc3RyaW5nW10pOiBDTElPcHRpb25zIHtcblx0Y29uc3Qgb3B0aW9uczogQ0xJT3B0aW9ucyA9IHt9O1xuXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuXHRcdGNvbnN0IGFyZyA9IGFyZ3NbIGkgXTtcblxuXHRcdHN3aXRjaCAoYXJnKSB7XG5cdFx0Y2FzZSAnLXcnOlxuXHRcdGNhc2UgJy0td2F0Y2gnOlxuXHRcdFx0b3B0aW9ucy53YXRjaCA9IHRydWU7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlICctcCc6XG5cdFx0Y2FzZSAnLS1wcm9qZWN0Jzpcblx0XHRcdG9wdGlvbnMucHJvamVjdCA9IGFyZ3NbICsraSBdO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSAnLW8nOlxuXHRcdGNhc2UgJy0tb3V0cHV0Jzpcblx0XHRcdG9wdGlvbnMub3V0cHV0RGlyID0gYXJnc1sgKytpIF07XG5cdFx0XHRicmVhaztcblx0XHRjYXNlICctaSc6XG5cdFx0Y2FzZSAnLS1pbmNsdWRlJzpcblx0XHRcdG9wdGlvbnMuaW5jbHVkZSA9IChvcHRpb25zLmluY2x1ZGUgfHwgW10pLmNvbmNhdChhcmdzWyArK2kgXS5zcGxpdCgnLCcpKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgJy1lJzpcblx0XHRjYXNlICctLWV4Y2x1ZGUnOlxuXHRcdFx0b3B0aW9ucy5leGNsdWRlID0gKG9wdGlvbnMuZXhjbHVkZSB8fCBbXSkuY29uY2F0KGFyZ3NbICsraSBdLnNwbGl0KCcsJykpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSAnLW0nOlxuXHRcdGNhc2UgJy0tbW9kdWxlLWF1Z21lbnRhdGlvbic6XG5cdFx0XHRvcHRpb25zLmdsb2JhbEF1Z21lbnRhdGlvbiA9IGZhbHNlO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSAnLXYnOlxuXHRcdGNhc2UgJy0tdmVyYm9zZSc6XG5cdFx0XHRvcHRpb25zLnZlcmJvc2UgPSB0cnVlO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSAnLXQnOlxuXHRcdGNhc2UgJy0tdG9wb2xvZ2ljYSc6XG5cdFx0XHRvcHRpb25zLnRvcG9sb2dpY2FEaXJzID0gKG9wdGlvbnMudG9wb2xvZ2ljYURpcnMgfHwgW10pLmNvbmNhdChhcmdzWyArK2kgXS5zcGxpdCgnLCcpKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgJy0tZXNtJzpcblx0XHRcdG9wdGlvbnMuZXNtID0gdHJ1ZTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgJy0tZWRzJzpcblx0XHRcdG9wdGlvbnMuZWRzID0gdHJ1ZTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgJy0tbm8tZWRzJzpcblx0XHRcdG9wdGlvbnMuZWRzID0gZmFsc2U7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlICctaCc6XG5cdFx0Y2FzZSAnLS1oZWxwJzpcblx0XHRcdG9wdGlvbnMuaGVscCA9IHRydWU7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gb3B0aW9ucztcbn1cblxuLyoqXG4gKiBQcmludCBoZWxwIG1lc3NhZ2VcbiAqL1xuZnVuY3Rpb24gcHJpbnRIZWxwICgpOiB2b2lkIHtcblx0Y29uc29sZS5sb2coYFxuVGFjdGljYSAtIFR5cGVTY3JpcHQgTGFuZ3VhZ2UgU2VydmljZSBQbHVnaW4gZm9yIE1uZW1vbmljYVxuXG5Vc2FnZTogdGFjdGljYSBbb3B0aW9uc11cblxuT3B0aW9uczpcbiAgLXcsIC0td2F0Y2ggICAgICAgICAgICAgICBXYXRjaCBmb3IgZmlsZSBjaGFuZ2VzIGFuZCByZWdlbmVyYXRlIHR5cGVzXG4gIC1wLCAtLXByb2plY3QgICAgICAgICAgICAgUGF0aCB0byB0c2NvbmZpZy5qc29uIChkZWZhdWx0OiAuL3RzY29uZmlnLmpzb24pXG4gIC1vLCAtLW91dHB1dCAgICAgICAgICAgICAgT3V0cHV0IGRpcmVjdG9yeSBmb3IgZ2VuZXJhdGVkIHR5cGVzIChkZWZhdWx0OiAudGFjdGljYSlcbiAgLWksIC0taW5jbHVkZSAgICAgICAgICAgICBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBmaWxlIHBhdHRlcm5zIHRvIGluY2x1ZGVcbiAgLWUsIC0tZXhjbHVkZSAgICAgICAgICAgICBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBmaWxlIHBhdHRlcm5zIHRvIGV4Y2x1ZGVcbiAgLXQsIC0tdG9wb2xvZ2ljYSAgICAgICAgICBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0b3BvbG9naWNhIGRpcmVjdG9yaWVzIHRvIHNjYW5cbiAgLW0sIC0tbW9kdWxlLWF1Z21lbnRhdGlvbiBVc2UgbW9kdWxlIGF1Z21lbnRhdGlvbiBpbnN0ZWFkIG9mIGdsb2JhbCAobGVnYWN5IG1vZGUpXG4gIC0tZXNtICAgICAgICAgICAgICAgICAgICAgQWRkIC5qcyBleHRlbnNpb25zIHRvIHJlbGF0aXZlIGltcG9ydHMgKE5vZGVOZXh0IEVTTSlcbiAgLS1lZHMgICAgICAgICAgICAgICAgICAgICBFbmFibGUgRURTIChFeGVjdXRpb24gRGF0YSBTdG9yYWdlKSB0cmFja2luZ1xuICAtLW5vLWVkcyAgICAgICAgICAgICAgICAgIERpc2FibGUgRURTIHRyYWNraW5nXG4gIC12LCAtLXZlcmJvc2UgICAgICAgICAgICAgRW5hYmxlIHZlcmJvc2UgbG9nZ2luZ1xuICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgIFNob3cgdGhpcyBoZWxwIG1lc3NhZ2VcblxuRXhhbXBsZXM6XG4gIHRhY3RpY2EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEdlbmVyYXRlIHR5cGVzIHdpdGggZ2xvYmFsIGF1Z21lbnRhdGlvbiAoZGVmYXVsdClcbiAgdGFjdGljYSAtLXdhdGNoICAgICAgICAgICAgICAgICAgICAgICMgV2F0Y2ggbW9kZVxuICB0YWN0aWNhIC0tbW9kdWxlLWF1Z21lbnRhdGlvbiAgICAgICAgIyBVc2UgbGVnYWN5IG1vZHVsZSBhdWdtZW50YXRpb24gbW9kZVxuICB0YWN0aWNhIC0tcHJvamVjdCAuL3NyYy90c2NvbmZpZy5qc29uICMgQ3VzdG9tIHRzY29uZmlnIHBhdGhcbiAgdGFjdGljYSAtLW91dHB1dCAuL3R5cGVzL21uZW1vbmljYSAgICMgQ3VzdG9tIG91dHB1dCBkaXJlY3RvcnlcbiAgdGFjdGljYSAtLXRvcG9sb2dpY2EgLi9zcmMvYWktdHlwZXMgICMgU2NhbiBzcGVjaWZpYyB0b3BvbG9naWNhIGRpcmVjdG9yeVxuYCk7XG59XG5cbi8qKlxuICogRmluZCB0c2NvbmZpZy5qc29uXG4gKi9cbmZ1bmN0aW9uIGZpbmRUc0NvbmZpZyAocHJvamVjdFBhdGg/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRpZiAocHJvamVjdFBhdGgpIHtcblx0XHRpZiAoZnMuZXhpc3RzU3luYyhwcm9qZWN0UGF0aCkpIHtcblx0XHRcdHJldHVybiBwcm9qZWN0UGF0aDtcblx0XHR9XG5cdFx0dGhyb3cgbmV3IEVycm9yKGBQcm9qZWN0IGZpbGUgbm90IGZvdW5kOiAke3Byb2plY3RQYXRofWApO1xuXHR9XG5cblx0Ly8gTG9vayBmb3IgdHNjb25maWcuanNvbiBpbiBjdXJyZW50IGRpcmVjdG9yeSBhbmQgcGFyZW50IGRpcmVjdG9yaWVzXG5cdGxldCBjdXJyZW50RGlyID0gcHJvY2Vzcy5jd2QoKTtcblx0d2hpbGUgKGN1cnJlbnREaXIgIT09IHBhdGguZGlybmFtZShjdXJyZW50RGlyKSkge1xuXHRcdGNvbnN0IHRzY29uZmlnUGF0aCA9IHBhdGguam9pbihjdXJyZW50RGlyLCAndHNjb25maWcuanNvbicpO1xuXHRcdGlmIChmcy5leGlzdHNTeW5jKHRzY29uZmlnUGF0aCkpIHtcblx0XHRcdHJldHVybiB0c2NvbmZpZ1BhdGg7XG5cdFx0fVxuXHRcdGN1cnJlbnREaXIgPSBwYXRoLmRpcm5hbWUoY3VycmVudERpcik7XG5cdH1cblxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIExvYWQgVHlwZVNjcmlwdCBwcm9ncmFtIGZyb20gdHNjb25maWdcbiAqL1xuZnVuY3Rpb24gbG9hZFByb2dyYW0gKHRzY29uZmlnUGF0aDogc3RyaW5nKTogdHMuUHJvZ3JhbSB7XG5cdGNvbnN0IGNvbmZpZ0ZpbGUgPSB0cy5yZWFkQ29uZmlnRmlsZSh0c2NvbmZpZ1BhdGgsIHRzLnN5cy5yZWFkRmlsZSk7XG5cblx0aWYgKGNvbmZpZ0ZpbGUuZXJyb3IpIHtcblx0XHRjb25zdCBlcnJvclRleHQgPSB0cy5mbGF0dGVuRGlhZ25vc3RpY01lc3NhZ2VUZXh0KFxuXHRcdFx0Y29uZmlnRmlsZS5lcnJvci5tZXNzYWdlVGV4dCxcblx0XHRcdCdcXG4nXG5cdFx0KTtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYEVycm9yIHJlYWRpbmcgdHNjb25maWc6ICR7ZXJyb3JUZXh0fWApO1xuXHR9XG5cblx0Y29uc3QgcGFyc2VkQ29uZmlnID0gdHMucGFyc2VKc29uQ29uZmlnRmlsZUNvbnRlbnQoXG5cdFx0Y29uZmlnRmlsZS5jb25maWcsXG5cdFx0dHMuc3lzLFxuXHRcdHBhdGguZGlybmFtZSh0c2NvbmZpZ1BhdGgpXG5cdCk7XG5cblx0aWYgKHBhcnNlZENvbmZpZy5lcnJvcnMubGVuZ3RoID4gMCkge1xuXHRcdGNvbnN0IGVycm9yTWVzc2FnZXMgPSBwYXJzZWRDb25maWcuZXJyb3JzLm1hcChlID0+XG5cdFx0XHR0cy5mbGF0dGVuRGlhZ25vc3RpY01lc3NhZ2VUZXh0KGUubWVzc2FnZVRleHQsICdcXG4nKSk7XG5cdFx0dGhyb3cgbmV3IEVycm9yKGBFcnJvciBwYXJzaW5nIHRzY29uZmlnOiAke2Vycm9yTWVzc2FnZXMuam9pbignXFxuJyl9YCk7XG5cdH1cblxuXHRjb25zdCBwcm9ncmFtID0gdHMuY3JlYXRlUHJvZ3JhbSh7XG5cdFx0cm9vdE5hbWVzIDogcGFyc2VkQ29uZmlnLmZpbGVOYW1lcyxcblx0XHRvcHRpb25zICAgOiBwYXJzZWRDb25maWcub3B0aW9ucyxcblx0fSk7XG5cblx0cmV0dXJuIHByb2dyYW07XG59XG5cbi8qKlxuICogUmVuZGVyIHR5cGUgaGllcmFyY2h5IGFzIGFuIEFTQ0lJIHRyZWUgc3RyaW5nLlxuICovXG5mdW5jdGlvbiByZW5kZXJUeXBlSGllcmFyY2h5IChncmFwaDogVHlwZUdyYXBoSW1wbCk6IHN0cmluZyB7XG5cdGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFsgJ1R5cGUgSGllcmFyY2h5IChUcmllKTonIF07XG5cblx0ZnVuY3Rpb24gcmVuZGVyTm9kZSAobm9kZTogVHlwZU5vZGUsIHByZWZpeCA9ICcnLCBpc0xhc3QgPSB0cnVlKTogdm9pZCB7XG5cdFx0Y29uc3QgY29ubmVjdG9yID0gaXNMYXN0ID8gJ+KUlOKUgOKUgCAnIDogJ+KUnOKUgOKUgCAnO1xuXHRcdC8vIFVzZSBub2RlLmZ1bGxQYXRoIGRpcmVjdGx5IGFuZCBjb252ZXJ0IGRvdHMgdG8gdW5kZXJzY29yZXNcblx0XHRjb25zdCBpbnN0YW5jZU5hbWUgPSBub2RlLmZ1bGxQYXRoLnJlcGxhY2UoL1xcLi9nLCAnXycpO1xuXHRcdGxpbmVzLnB1c2goYCR7cHJlZml4fSR7Y29ubmVjdG9yfSR7aW5zdGFuY2VOYW1lfWApO1xuXG5cdFx0Y29uc3QgY2hpbGRyZW4gPSBBcnJheS5mcm9tKG5vZGUuY2hpbGRyZW4udmFsdWVzKCkpO1xuXHRcdGNvbnN0IG5ld1ByZWZpeCA9IHByZWZpeCArIChpc0xhc3QgPyAnICAgICcgOiAn4pSCICAgJyk7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRyZW5kZXJOb2RlKGNoaWxkcmVuWyBpIF0sIG5ld1ByZWZpeCwgaSA9PT0gY2hpbGRyZW4ubGVuZ3RoIC0gMSk7XG5cdFx0fVxuXHR9XG5cblx0Y29uc3Qgcm9vdHMgPSBBcnJheS5mcm9tKGdyYXBoLnJvb3RzLnZhbHVlcygpKTtcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCByb290cy5sZW5ndGg7IGkrKykge1xuXHRcdHJlbmRlck5vZGUocm9vdHNbIGkgXSwgJycsIGkgPT09IHJvb3RzLmxlbmd0aCAtIDEpO1xuXHR9XG5cdGxpbmVzLnB1c2goJycpOyAvLyBFbXB0eSBsaW5lIGF0IGVuZFxuXG5cdGNvbnN0IHJlc3VsdCA9IGxpbmVzLmpvaW4oJ1xcbicpO1xuXHRyZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFByaW50IHR5cGUgaGllcmFyY2h5IHRvIHRoZSBjb25zb2xlLlxuICovXG5mdW5jdGlvbiBwcmludFR5cGVIaWVyYXJjaHkgKGdyYXBoOiBUeXBlR3JhcGhJbXBsKTogdm9pZCB7XG5cdGNvbnN0IG91dHB1dCA9IHJlbmRlclR5cGVIaWVyYXJjaHkoZ3JhcGgpO1xuXHRjb25zb2xlLmxvZyhvdXRwdXQpO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIEBtbmVtb25pY2EvZGl2ZSBpcyBwcmVzZW50IGluIHBhY2thZ2UuanNvbiBkZXBlbmRlbmNpZXNcbiAqL1xuZnVuY3Rpb24gaGFzRGl2ZURlcGVuZGVuY3kgKHByb2plY3REaXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRjb25zdCBwYWNrYWdlSnNvblBhdGggPSBwYXRoLmpvaW4ocHJvamVjdERpciwgJ3BhY2thZ2UuanNvbicpO1xuXHRpZiAoIWZzLmV4aXN0c1N5bmMocGFja2FnZUpzb25QYXRoKSkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXHR0cnkge1xuXHRcdGNvbnN0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMocGFja2FnZUpzb25QYXRoLCAndXRmLTgnKTtcblx0XHRjb25zdCBwa2cgPSBKU09OLnBhcnNlKGNvbnRlbnQpO1xuXHRcdGNvbnN0IGRlcHMgPSBwa2cuZGVwZW5kZW5jaWVzIHx8IHt9O1xuXHRcdGNvbnN0IGRldkRlcHMgPSBwa2cuZGV2RGVwZW5kZW5jaWVzIHx8IHt9O1xuXHRcdGNvbnN0IHBlZXJEZXBzID0gcGtnLnBlZXJEZXBlbmRlbmNpZXMgfHwge307XG5cdFx0cmV0dXJuICdAbW5lbW9uaWNhL2RpdmUnIGluIGRlcHMgfHwgJ0BtbmVtb25pY2EvZGl2ZScgaW4gZGV2RGVwcyB8fCAnQG1uZW1vbmljYS9kaXZlJyBpbiBwZWVyRGVwcztcblx0fSBjYXRjaCB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbi8qKlxuICogU2NhbiBmb3IgdG9wb2xvZ2ljYSBkaXJlY3Rvcnkgc3RydWN0dXJlc1xuICovXG5mdW5jdGlvbiBzY2FuVG9wb2xvZ2ljYURpcmVjdG9yaWVzIChwcm9qZWN0RGlyOiBzdHJpbmcsIGN1c3RvbURpcnM/OiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcblx0Y29uc3QgZGlyczogc3RyaW5nW10gPSBbXTtcblxuXHQvLyBGaXJzdCwgYWRkIGN1c3RvbSBkaXJlY3RvcmllcyBpZiBzcGVjaWZpZWRcblx0aWYgKGN1c3RvbURpcnMpIHtcblx0XHRmb3IgKGNvbnN0IGRpciBvZiBjdXN0b21EaXJzKSB7XG5cdFx0XHRjb25zdCBkaXJQYXRoID0gcGF0aC5pc0Fic29sdXRlKGRpcikgPyBkaXIgOiBwYXRoLmpvaW4ocHJvamVjdERpciwgZGlyKTtcblx0XHRcdGlmIChmcy5leGlzdHNTeW5jKGRpclBhdGgpICYmIGZzLnN0YXRTeW5jKGRpclBhdGgpLmlzRGlyZWN0b3J5KCkpIHtcblx0XHRcdFx0ZGlycy5wdXNoKGRpclBhdGgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc29sZS53YXJuKGBXYXJuaW5nOiBUb3BvbG9naWNhIGRpcmVjdG9yeSBub3QgZm91bmQ6ICR7ZGlyUGF0aH1gKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBUaGVuIGF1dG8tZGlzY292ZXIgc3RhbmRhcmQgdG9wb2xvZ2ljYSBkaXJlY3Rvcmllc1xuXHRjb25zdCBwb3NzaWJsZURpcnMgPSBbICdhaS10eXBlcycsICd0eXBlcycsICd0b3BvbG9naWNhLXR5cGVzJyBdO1xuXG5cdGZvciAoY29uc3QgZGlyTmFtZSBvZiBwb3NzaWJsZURpcnMpIHtcblx0XHRjb25zdCBkaXJQYXRoID0gcGF0aC5qb2luKHByb2plY3REaXIsIGRpck5hbWUpO1xuXHRcdGlmIChmcy5leGlzdHNTeW5jKGRpclBhdGgpICYmIGZzLnN0YXRTeW5jKGRpclBhdGgpLmlzRGlyZWN0b3J5KCkpIHtcblx0XHRcdC8vIEF2b2lkIGR1cGxpY2F0ZXNcblx0XHRcdGlmICghZGlycy5pbmNsdWRlcyhkaXJQYXRoKSkge1xuXHRcdFx0XHRkaXJzLnB1c2goZGlyUGF0aCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gQWxzbyBzY2FuIHNyYy8gc3ViZGlyZWN0b3J5XG5cdGNvbnN0IHNyY1BhdGggPSBwYXRoLmpvaW4ocHJvamVjdERpciwgJ3NyYycpO1xuXHRpZiAoZnMuZXhpc3RzU3luYyhzcmNQYXRoKSAmJiBmcy5zdGF0U3luYyhzcmNQYXRoKS5pc0RpcmVjdG9yeSgpKSB7XG5cdFx0Zm9yIChjb25zdCBkaXJOYW1lIG9mIHBvc3NpYmxlRGlycykge1xuXHRcdFx0Y29uc3QgZGlyUGF0aCA9IHBhdGguam9pbihzcmNQYXRoLCBkaXJOYW1lKTtcblx0XHRcdGlmIChmcy5leGlzdHNTeW5jKGRpclBhdGgpICYmIGZzLnN0YXRTeW5jKGRpclBhdGgpLmlzRGlyZWN0b3J5KCkpIHtcblx0XHRcdFx0Ly8gQXZvaWQgZHVwbGljYXRlc1xuXHRcdFx0XHRpZiAoIWRpcnMuaW5jbHVkZXMoZGlyUGF0aCkpIHtcblx0XHRcdFx0XHRkaXJzLnB1c2goZGlyUGF0aCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZGlycztcbn1cblxuLyoqXG4gKiBSdW4gdHlwZSBnZW5lcmF0aW9uXG4gKi9cbmZ1bmN0aW9uIHJ1biAob3B0aW9uczogQ0xJT3B0aW9ucyk6IHZvaWQge1xuXHRjb25zdCB0c2NvbmZpZ1BhdGggPSBmaW5kVHNDb25maWcob3B0aW9ucy5wcm9qZWN0KTtcblxuXHRpZiAoIXRzY29uZmlnUGF0aCkge1xuXHRcdGNvbnNvbGUuZXJyb3IoJ0Vycm9yOiBDb3VsZCBub3QgZmluZCB0c2NvbmZpZy5qc29uJyk7XG5cdFx0cHJvY2Vzcy5leGl0KDEpO1xuXHR9XG5cblx0aWYgKG9wdGlvbnMudmVyYm9zZSkge1xuXHRcdGNvbnNvbGUubG9nKGBVc2luZyB0c2NvbmZpZzogJHt0c2NvbmZpZ1BhdGh9YCk7XG5cdH1cblxuXHQvLyBMb2FkIFR5cGVTY3JpcHQgcHJvZ3JhbVxuXHRjb25zdCBwcm9ncmFtID0gbG9hZFByb2dyYW0odHNjb25maWdQYXRoKTtcblxuXHQvLyBDcmVhdGUgYW5hbHl6ZXJcblx0Y29uc3QgYW5hbHl6ZXIgPSBuZXcgTW5lbW9uaWNhQW5hbHl6ZXIocHJvZ3JhbSk7XG5cblx0Ly8gRGV0ZXJtaW5lIG91dHB1dCBkaXJlY3RvcnkgZm9yIGV4Y2x1c2lvblxuXHRjb25zdCBvdXRwdXREaXIgPSBvcHRpb25zLm91dHB1dERpciB8fCAnLnRhY3RpY2EnO1xuXHRjb25zdCBvdXRwdXREaXJQYXRoID0gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIG91dHB1dERpcik7XG5cblx0Ly8gQ29sbGVjdCBzb3VyY2UgZmlsZXMgdG8gYW5hbHl6ZVxuXHRjb25zdCBzb3VyY2VGaWxlczogdHMuU291cmNlRmlsZVtdID0gW107XG5cdGZvciAoY29uc3Qgc291cmNlRmlsZSBvZiBwcm9ncmFtLmdldFNvdXJjZUZpbGVzKCkpIHtcblx0XHRpZiAoc291cmNlRmlsZS5pc0RlY2xhcmF0aW9uRmlsZSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Ly8gQWx3YXlzIGV4Y2x1ZGUgdGhlIG91dHB1dCBkaXJlY3RvcnkgdG8gYXZvaWQgYW5hbHl6aW5nIGdlbmVyYXRlZCBmaWxlc1xuXHRcdGlmIChzb3VyY2VGaWxlLmZpbGVOYW1lLnN0YXJ0c1dpdGgob3V0cHV0RGlyUGF0aCArIHBhdGguc2VwKSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Ly8gQ2hlY2sgZXhjbHVkZSBwYXR0ZXJuc1xuXHRcdGlmIChvcHRpb25zLmV4Y2x1ZGUpIHtcblx0XHRcdGNvbnN0IHNob3VsZEV4Y2x1ZGUgPSBvcHRpb25zLmV4Y2x1ZGUuc29tZShwYXR0ZXJuID0+XG5cdFx0XHRcdHNvdXJjZUZpbGUuZmlsZU5hbWUuaW5jbHVkZXMocGF0dGVybi5yZXBsYWNlKC9cXCovZywgJycpKSk7XG5cdFx0XHRpZiAoc2hvdWxkRXhjbHVkZSkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBDaGVjayBpbmNsdWRlIHBhdHRlcm5zXG5cdFx0aWYgKG9wdGlvbnMuaW5jbHVkZSAmJiBvcHRpb25zLmluY2x1ZGUubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uc3Qgc2hvdWxkSW5jbHVkZSA9IG9wdGlvbnMuaW5jbHVkZS5zb21lKHBhdHRlcm4gPT5cblx0XHRcdFx0c291cmNlRmlsZS5maWxlTmFtZS5pbmNsdWRlcyhwYXR0ZXJuLnJlcGxhY2UoL1xcKi9nLCAnJykpKTtcblx0XHRcdGlmICghc2hvdWxkSW5jbHVkZSkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRzb3VyY2VGaWxlcy5wdXNoKHNvdXJjZUZpbGUpO1xuXHR9XG5cblx0Ly8gU2NhbiBmb3IgdG9wb2xvZ2ljYSBkaXJlY3Rvcnkgc3RydWN0dXJlcyBGSVJTVFxuXHRjb25zdCBwcm9qZWN0RGlyID0gcGF0aC5kaXJuYW1lKHRzY29uZmlnUGF0aCk7XG5cdGNvbnN0IHRvcG9sb2dpY2FEaXJzID0gc2NhblRvcG9sb2dpY2FEaXJlY3Rvcmllcyhwcm9qZWN0RGlyLCBvcHRpb25zLnRvcG9sb2dpY2FEaXJzKTtcblxuXHRpZiAodG9wb2xvZ2ljYURpcnMubGVuZ3RoID4gMCAmJiBvcHRpb25zLnZlcmJvc2UpIHtcblx0XHRjb25zb2xlLmxvZyhgRm91bmQgdG9wb2xvZ2ljYSBkaXJlY3RvcmllczogJHt0b3BvbG9naWNhRGlycy5qb2luKCcsICcpfWApO1xuXHR9XG5cblx0Ly8gQW5hbHl6ZSB0b3BvbG9naWNhIGRpcmVjdG9yaWVzIEJFRk9SRSB1c2FnZSBjb2xsZWN0aW9uXG5cdGNvbnN0IHRvcG9sb2dpY2FBbmFseXplciA9IG5ldyBUb3BvbG9naWNhQW5hbHl6ZXIoKTtcblx0Y29uc3QgdG9wb2xvZ2ljYVR5cGVzID0gbmV3IE1hcDxzdHJpbmcsIGltcG9ydCgnLi90eXBlcycpLlR5cGVOb2RlPigpO1xuXHRmb3IgKGNvbnN0IGRpciBvZiB0b3BvbG9naWNhRGlycykge1xuXHRcdGNvbnN0IHJlc3VsdCA9IHRvcG9sb2dpY2FBbmFseXplci5hbmFseXplRGlyZWN0b3J5KGRpcik7XG5cdFx0aWYgKHJlc3VsdC50eXBlcy5zaXplID4gMCkge1xuXHRcdFx0Ly8gQ29sbGVjdCB0b3BvbG9naWNhIHR5cGVzIGZvciBkZWZpbml0aW9ucyBhbmQgdXNhZ2UgdHJhY2tpbmdcblx0XHRcdGZvciAoY29uc3QgWyB0eXBlUGF0aCwgbm9kZSBdIG9mIHJlc3VsdC50eXBlcykge1xuXHRcdFx0XHR0b3BvbG9naWNhVHlwZXMuc2V0KHR5cGVQYXRoLCBub2RlKTtcblx0XHRcdH1cblx0XHRcdGlmIChvcHRpb25zLnZlcmJvc2UpIHtcblx0XHRcdFx0Y29uc29sZS5sb2coYEFkZGVkICR7cmVzdWx0LnR5cGVzLnNpemV9IHR5cGVzIGZyb20gJHtkaXJ9YCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChyZXN1bHQuZXJyb3JzLmxlbmd0aCA+IDAgJiYgb3B0aW9ucy52ZXJib3NlKSB7XG5cdFx0XHRyZXN1bHQuZXJyb3JzLmZvckVhY2goZXJyID0+IGNvbnNvbGUud2FybihgW1RvcG9sb2dpY2FdICR7ZXJyfWApKTtcblx0XHR9XG5cdH1cblxuXHQvLyBBZGQgdG9wb2xvZ2ljYSB0eXBlcyB0byBhbmFseXplciBzbyB0aGV5J3JlIGF2YWlsYWJsZSBmb3IgdXNhZ2UgZGV0ZWN0aW9uXG5cdC8vIFByb2Nlc3MgaW4gb3JkZXIgb2YgcGF0aCBkZXB0aCAocGFyZW50cyBmaXJzdCkgdG8gZW5zdXJlIHByb3BlciBoaWVyYXJjaHlcblx0Y29uc3Qgc29ydGVkVHlwZXMgPSBBcnJheS5mcm9tKHRvcG9sb2dpY2FUeXBlcy5lbnRyaWVzKCkpLnNvcnQoKGEsIGIpID0+IHtcblx0XHRjb25zdCBkZXB0aEEgPSAoYVsgMCBdLm1hdGNoKC9cXC4vZykgfHwgW10pLmxlbmd0aDtcblx0XHRjb25zdCBkZXB0aEIgPSAoYlsgMCBdLm1hdGNoKC9cXC4vZykgfHwgW10pLmxlbmd0aDtcblx0XHRyZXR1cm4gZGVwdGhBIC0gZGVwdGhCO1xuXHR9KTtcblx0Zm9yIChjb25zdCBbIHR5cGVQYXRoLCBub2RlIF0gb2Ygc29ydGVkVHlwZXMpIHtcblx0XHRhbmFseXplci5hZGRUb3BvbG9naWNhVHlwZSh0eXBlUGF0aCwgbm9kZSk7XG5cdH1cblxuXHQvLyBGaXJzdCBwYXNzOiBjb2xsZWN0IGFsbCBkZWZpbml0aW9uc1xuXHRmb3IgKGNvbnN0IHNvdXJjZUZpbGUgb2Ygc291cmNlRmlsZXMpIHtcblx0XHRpZiAob3B0aW9ucy52ZXJib3NlKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhgQW5hbHl6aW5nIChkZWZpbml0aW9ucyk6ICR7c291cmNlRmlsZS5maWxlTmFtZX1gKTtcblx0XHR9XG5cblx0XHR0cnkge1xuXHRcdFx0YW5hbHl6ZXIuYW5hbHl6ZUZpbGUoc291cmNlRmlsZSk7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKGBFcnJvciBhbmFseXppbmcgJHtzb3VyY2VGaWxlLmZpbGVOYW1lfTpgLCBlcnIpO1xuXHRcdFx0dGhyb3cgZXJyO1xuXHRcdH1cblx0fVxuXG5cdC8vIFNlY29uZCBwYXNzOiBjb2xsZWN0IHVzYWdlcyAobm93IGFsbCBkZWZpbml0aW9ucyBhcmUga25vd24sIGluY2x1ZGluZyB0b3BvbG9naWNhKVxuXHRhbmFseXplci5yZXNldFVzYWdlcygpO1xuXHRmb3IgKGNvbnN0IHNvdXJjZUZpbGUgb2Ygc291cmNlRmlsZXMpIHtcblx0XHRpZiAob3B0aW9ucy52ZXJib3NlKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhgQW5hbHl6aW5nICh1c2FnZXMpOiAke3NvdXJjZUZpbGUuZmlsZU5hbWV9YCk7XG5cdFx0fVxuXG5cdFx0dHJ5IHtcblx0XHRcdGFuYWx5emVyLmFuYWx5emVGaWxlKHNvdXJjZUZpbGUpO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0Y29uc29sZS5lcnJvcihgRXJyb3IgYW5hbHl6aW5nICR7c291cmNlRmlsZS5maWxlTmFtZX06YCwgZXJyKTtcblx0XHRcdHRocm93IGVycjtcblx0XHR9XG5cdH1cblxuXHQvLyBHZW5lcmF0ZSB0eXBlcyBmcm9tIG1uZW1vbmljYSBhbmFseXNpc1xuXHQvLyBOb3RlOiB0b3BvbG9naWNhIHR5cGVzIGFyZSBhbHJlYWR5IGFkZGVkIHRvIHRoZSBhbmFseXplcidzIGdyYXBoIHZpYSBhZGRUb3BvbG9naWNhVHlwZSgpXG5cdGNvbnN0IGdyYXBoID0gYW5hbHl6ZXIuZ2V0R3JhcGgoKTtcblx0Y29uc3QgZ2VuZXJhdG9yID0gbmV3IFR5cGVzR2VuZXJhdG9yKGdyYXBoLCBvcHRpb25zLmVzbSwgb3B0aW9ucy5vdXRwdXREaXIpO1xuXG5cdC8vIENoZWNrIGlmIG1vZHVsZSBhdWdtZW50YXRpb24gbW9kZSBpcyByZXF1ZXN0ZWQgKGxlZ2FjeSlcblx0Y29uc3QgdXNlTW9kdWxlQXVnbWVudGF0aW9uID0gb3B0aW9ucy5nbG9iYWxBdWdtZW50YXRpb24gPT09IGZhbHNlO1xuXG5cdC8vIEdlbmVyYXRlIHR5cGVzIGJhc2VkIG9uIG1vZGVcblx0bGV0IGdlbmVyYXRlZFR5cGVzOiB7IGNvbnRlbnQ6IHN0cmluZzsgdHlwZXM6IHN0cmluZ1tdIH07XG5cdGxldCBvdXRwdXRQYXRoOiBzdHJpbmc7XG5cblx0Y29uc3Qgd3JpdGVyID0gbmV3IFR5cGVzV3JpdGVyKG9wdGlvbnMub3V0cHV0RGlyKTtcblxuXHRpZiAodXNlTW9kdWxlQXVnbWVudGF0aW9uKSB7XG5cdFx0Ly8gTGVnYWN5IG1vZGU6IGdlbmVyYXRlIGdsb2JhbCBhdWdtZW50YXRpb24gZmlsZSAoaW5kZXguZC50cylcblx0XHRnZW5lcmF0ZWRUeXBlcyA9IGdlbmVyYXRvci5nZW5lcmF0ZUdsb2JhbEF1Z21lbnRhdGlvbigpO1xuXHRcdG91dHB1dFBhdGggPSB3cml0ZXIud3JpdGVHbG9iYWxBdWdtZW50YXRpb24oZ2VuZXJhdGVkVHlwZXMpO1xuXHR9IGVsc2Uge1xuXHRcdC8vIERlZmF1bHQgbW9kZTogZ2VuZXJhdGUgdHlwZXMudHMgZm9yIG1hbnVhbCBpbXBvcnRzXG5cdFx0Z2VuZXJhdGVkVHlwZXMgPSBnZW5lcmF0b3IuZ2VuZXJhdGVUeXBlc0ZpbGUoKTtcblx0XHRvdXRwdXRQYXRoID0gd3JpdGVyLndyaXRlVHlwZXNGaWxlKGdlbmVyYXRlZFR5cGVzKTtcblxuXHRcdC8vIEdlbmVyYXRlIHJlZ2lzdHJ5LnRzIGZvciB0eXBlLXNhZmUgbG9va3VwKCkgZnVuY3Rpb25cblx0XHRjb25zdCByZWdpc3RyeVR5cGVzID0gZ2VuZXJhdG9yLmdlbmVyYXRlVHlwZVJlZ2lzdHJ5KCk7XG5cdFx0Y29uc3QgcmVnaXN0cnlQYXRoID0gd3JpdGVyLndyaXRlVG8oJ3JlZ2lzdHJ5LnRzJywgcmVnaXN0cnlUeXBlcy5jb250ZW50KTtcblxuXHRcdC8vIEdlbmVyYXRlIGluZGV4LnRzIHRvIGV4cG9ydCBldmVyeXRoaW5nXG5cdFx0Y29uc3QgaW5kZXhDb250ZW50ID0gYC8vIEdlbmVyYXRlZCBieSBAbW5lbW9uaWNhL3RhY3RpY2EgLSBETyBOT1QgRURJVFxuLy8gRXhwb3J0IGFsbCBnZW5lcmF0ZWQgdHlwZXNcblxuZXhwb3J0ICogZnJvbSAnLi90eXBlcyR7b3B0aW9ucy5lc20gPyAnLmpzJyA6ICcnfSc7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdHJ5JHtvcHRpb25zLmVzbSA/ICcuanMnIDogJyd9JztcbmA7XG5cdFx0d3JpdGVyLndyaXRlVG8oJ2luZGV4LnRzJywgaW5kZXhDb250ZW50KTtcblxuXHRcdGlmIChvcHRpb25zLnZlcmJvc2UpIHtcblx0XHRcdGNvbnNvbGUubG9nKGBHZW5lcmF0ZWQgcmVnaXN0cnkudHMgYXQ6ICR7cmVnaXN0cnlQYXRofWApO1xuXHRcdH1cblx0fVxuXG5cdC8vIEdlbmVyYXRlIGRlZmluaXRpb25zLmpzb24gYW5kIHVzYWdlcy5qc29uIGZvciBjb2RlIG5hdmlnYXRpb25cblx0Ly8gSW5jbHVkZSBib3RoIG1uZW1vbmljYSBhbmQgdG9wb2xvZ2ljYSBkZWZpbml0aW9uc1xuXHRjb25zdCBkZWZpbml0aW9ucyA9IG5ldyBNYXAoYW5hbHl6ZXIuZ2V0RGVmaW5pdGlvbnMoKSk7XG5cdGNvbnN0IHVzYWdlcyA9IG5ldyBNYXAoYW5hbHl6ZXIuZ2V0VXNhZ2VzKCkpO1xuXHRcblx0Ly8gQWRkIHRvcG9sb2dpY2EgdHlwZXMgdG8gZGVmaW5pdGlvbnNcblx0Zm9yIChjb25zdCBbIGZ1bGxQYXRoLCB0eXBlTm9kZSBdIG9mIHRvcG9sb2dpY2FUeXBlcykge1xuXHRcdC8vIFNraXAgaWYgYWxyZWFkeSBleGlzdHMgKHByZWZlciBtbmVtb25pY2EncyBhbmFseXNpcylcblx0XHRpZiAoZGVmaW5pdGlvbnMuaGFzKGZ1bGxQYXRoKSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXHRcdFxuXHRcdGNvbnN0IGRlZmluaXRpb246IGltcG9ydCgnLi90eXBlcycpLkRlZmluaXRpb25JbmZvID0ge1xuXHRcdFx0bmFtZSAgICAgICAgOiB0eXBlTm9kZS5uYW1lLFxuXHRcdFx0bG9jYXRpb24gICAgOiBgJHt0eXBlTm9kZS5zb3VyY2VGaWxlfToke3R5cGVOb2RlLmxpbmV9OiR7dHlwZU5vZGUuY29sdW1ufWAsXG5cdFx0XHRraW5kICAgICAgICA6ICdkZWZpbmUnLFxuXHRcdFx0cGFyZW50ICAgICAgOiB0eXBlTm9kZS5wYXJlbnQgPyB0eXBlTm9kZS5wYXJlbnQuZnVsbFBhdGggOiBudWxsLFxuXHRcdFx0c3RyaWN0Q2hhaW4gOiB0cnVlLFxuXHRcdFx0YmxvY2tFcnJvcnMgOiBmYWxzZVxuXHRcdH07XG5cdFx0ZGVmaW5pdGlvbnMuc2V0KGZ1bGxQYXRoLCBkZWZpbml0aW9uKTtcblx0fVxuXHRcblx0Y29uc3QgZGVmaW5pdGlvbnNQYXRoID0gd3JpdGVyLndyaXRlRGVmaW5pdGlvbnNGaWxlKGRlZmluaXRpb25zKTtcblx0Y29uc3QgdXNhZ2VzUGF0aCA9IHdyaXRlci53cml0ZVVzYWdlc0ZpbGUodXNhZ2VzKTtcblxuXHRpZiAob3B0aW9ucy52ZXJib3NlKSB7XG5cdFx0Y29uc29sZS5sb2coYEdlbmVyYXRlZCBkZWZpbml0aW9ucy5qc29uIGF0OiAke2RlZmluaXRpb25zUGF0aH1gKTtcblx0XHRjb25zb2xlLmxvZyhgR2VuZXJhdGVkIHVzYWdlcy5qc29uIGF0OiAke3VzYWdlc1BhdGh9YCk7XG5cdH1cblxuXHQvLyBEZXRlcm1pbmUgRURTIHNldHRpbmc6IGV4cGxpY2l0IGZsYWcgPiBhdXRvLWRldGVjdCBkaXZlID4gZGVmYXVsdCBvZmZcblx0bGV0IGVuYWJsZUVEUyA9IG9wdGlvbnMuZWRzO1xuXHRpZiAoZW5hYmxlRURTID09PSB1bmRlZmluZWQpIHtcblx0XHRlbmFibGVFRFMgPSBoYXNEaXZlRGVwZW5kZW5jeShwcm9qZWN0RGlyKTtcblx0fVxuXG5cdGlmIChlbmFibGVFRFMpIHtcblx0XHRjb25zdCBlZHMgPSBhbmFseXplci5nZXRFRFNVc2FnZXMoKTtcblx0XHRjb25zdCBlZHNQYXRoID0gd3JpdGVyLndyaXRlRURTRmlsZShlZHMpO1xuXHRcdGlmIChvcHRpb25zLnZlcmJvc2UpIHtcblx0XHRcdGNvbnNvbGUubG9nKGBHZW5lcmF0ZWQgZWRzLmpzb24gYXQ6ICR7ZWRzUGF0aH1gKTtcblx0XHR9XG5cdH1cblxuXHQvLyBBbHdheXMgZ2VuZXJhdGUgZmxvdy5qc29uIChuYXRpdmUgaW5zdGFuY2UgdXNhZ2UgdHJhY2tpbmcpXG5cdGNvbnN0IGZsb3cgPSBhbmFseXplci5nZXRGbG93VXNhZ2VzKCk7XG5cdGNvbnN0IGZsb3dQYXRoID0gd3JpdGVyLndyaXRlRmxvd0ZpbGUoZmxvdyk7XG5cdGlmIChvcHRpb25zLnZlcmJvc2UpIHtcblx0XHRjb25zdCBmbG93Q291bnQgPSBBcnJheS5mcm9tKGZsb3cudmFsdWVzKCkpLnJlZHVjZSgoc3VtLCBhcnIpID0+IHN1bSArIGFyci5sZW5ndGgsIDApO1xuXHRcdGNvbnNvbGUubG9nKGBHZW5lcmF0ZWQgZmxvdy5qc29uIGF0OiAke2Zsb3dQYXRofSAoJHtmbG93Q291bnR9IGZsb3cgZW50cmllcylgKTtcblx0fVxuXG5cdC8vIEdlbmVyYXRlIGhpZXJhcmNoeS5qc29uIChzdHJ1Y3R1cmVkKSBhbmQgaGllcmFyY2h5LnR4dCAoQVNDSUkgdHJlZSkgZm9yIHRoZSBUcmllXG5cdGNvbnN0IGhpZXJhcmNoeVJvb3RzID0gZ3JhcGgudG9IaWVyYXJjaHkoKTtcblx0Y29uc3QgaGllcmFyY2h5SnNvblBhdGggPSB3cml0ZXIud3JpdGVIaWVyYXJjaHlGaWxlKGhpZXJhcmNoeVJvb3RzKTtcblx0Y29uc3QgaGllcmFyY2h5VGV4dCA9IHJlbmRlclR5cGVIaWVyYXJjaHkoZ3JhcGgpO1xuXHRjb25zdCBoaWVyYXJjaHlUeHRQYXRoID0gd3JpdGVyLndyaXRlVG8oJ2hpZXJhcmNoeS50eHQnLCBoaWVyYXJjaHlUZXh0KTtcblx0aWYgKG9wdGlvbnMudmVyYm9zZSkge1xuXHRcdGNvbnNvbGUubG9nKGBHZW5lcmF0ZWQgaGllcmFyY2h5Lmpzb24gYXQ6ICR7aGllcmFyY2h5SnNvblBhdGh9YCk7XG5cdFx0Y29uc29sZS5sb2coYEdlbmVyYXRlZCBoaWVyYXJjaHkudHh0IGF0OiAke2hpZXJhcmNoeVR4dFBhdGh9YCk7XG5cdH1cblxuXHRpZiAob3B0aW9ucy52ZXJib3NlKSB7XG5cdFx0Y29uc29sZS5sb2coYEdlbmVyYXRlZCB0eXBlcyBhdDogJHtvdXRwdXRQYXRofWApO1xuXHRcdGNvbnNvbGUubG9nKGBNb2RlOiAke3VzZU1vZHVsZUF1Z21lbnRhdGlvbiA/ICdnbG9iYWwgYXVnbWVudGF0aW9uIChsZWdhY3kpJyA6ICd0eXBlcyBmaWxlIChkZWZhdWx0KSd9YCk7XG5cdFx0Y29uc29sZS5sb2coYEZvdW5kICR7Z2VuZXJhdGVkVHlwZXMudHlwZXMubGVuZ3RofSB0eXBlczpgKTtcblx0XHRwcmludFR5cGVIaWVyYXJjaHkoZ3JhcGgpO1xuXHR9IGVsc2Uge1xuXHRcdGNvbnNvbGUubG9nKGBHZW5lcmF0ZWQgJHtnZW5lcmF0ZWRUeXBlcy50eXBlcy5sZW5ndGh9IHR5cGVzIGF0ICR7b3B0aW9ucy5vdXRwdXREaXIgfHwgJy50YWN0aWNhJ31gKTtcblx0XHRpZiAodXNlTW9kdWxlQXVnbWVudGF0aW9uKSB7XG5cdFx0XHRjb25zb2xlLmxvZygnVXNpbmcgZ2xvYmFsIGF1Z21lbnRhdGlvbiBtb2RlIChsZWdhY3ksIHVzZSBkZWZhdWx0IG1vZGUgZm9yIHR5cGVzLnRzIG9ubHkpJyk7XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogV2F0Y2ggbW9kZVxuICovXG5mdW5jdGlvbiB3YXRjaCAob3B0aW9uczogQ0xJT3B0aW9ucyk6IHZvaWQge1xuXHRjb25zb2xlLmxvZygnU3RhcnRpbmcgd2F0Y2ggbW9kZS4uLicpO1xuXG5cdC8vIEluaXRpYWwgcnVuXG5cdHJ1bihvcHRpb25zKTtcblxuXHQvLyBTZXQgdXAgZmlsZSB3YXRjaGluZ1xuXHRjb25zdCBjaG9raWRhciA9IHJlcXVpcmUoJ2Nob2tpZGFyJyk7XG5cdGNvbnN0IHRzY29uZmlnUGF0aCA9IGZpbmRUc0NvbmZpZyhvcHRpb25zLnByb2plY3QpO1xuXG5cdGlmICghdHNjb25maWdQYXRoKSB7XG5cdFx0Y29uc29sZS5lcnJvcignRXJyb3I6IENvdWxkIG5vdCBmaW5kIHRzY29uZmlnLmpzb24nKTtcblx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdH1cblxuXHRjb25zdCBwcm9qZWN0RGlyID0gcGF0aC5kaXJuYW1lKHRzY29uZmlnUGF0aCk7XG5cdGNvbnN0IHdhdGNoUGF0aHMgPSBvcHRpb25zLmluY2x1ZGUgfHwgWyAnKiovKi50cycgXTtcblx0Y29uc3QgaWdub3JlUGF0aHMgPSBvcHRpb25zLmV4Y2x1ZGUgfHwgWyAnKiovKi5kLnRzJywgJ25vZGVfbW9kdWxlcy8qKicsICcudGFjdGljYS8qKicgXTtcblxuXHRjb25zdCB3YXRjaGVyID0gY2hva2lkYXIud2F0Y2god2F0Y2hQYXRocywge1xuXHRcdGN3ZCAgICAgICAgOiBwcm9qZWN0RGlyLFxuXHRcdGlnbm9yZWQgICAgOiBpZ25vcmVQYXRocyxcblx0XHRwZXJzaXN0ZW50IDogdHJ1ZSxcblx0fSk7XG5cblx0d2F0Y2hlci5vbignY2hhbmdlJywgKGZpbGVQYXRoOiBzdHJpbmcpID0+IHtcblx0XHRpZiAob3B0aW9ucy52ZXJib3NlKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhgRmlsZSBjaGFuZ2VkOiAke2ZpbGVQYXRofWApO1xuXHRcdH1cblx0XHRydW4ob3B0aW9ucyk7XG5cdH0pO1xuXG5cdHdhdGNoZXIub24oJ2FkZCcsIChmaWxlUGF0aDogc3RyaW5nKSA9PiB7XG5cdFx0aWYgKG9wdGlvbnMudmVyYm9zZSkge1xuXHRcdFx0Y29uc29sZS5sb2coYEZpbGUgYWRkZWQ6ICR7ZmlsZVBhdGh9YCk7XG5cdFx0fVxuXHRcdHJ1bihvcHRpb25zKTtcblx0fSk7XG5cblx0Y29uc29sZS5sb2coJ1dhdGNoaW5nIGZvciBjaGFuZ2VzLi4uIChQcmVzcyBDdHJsK0MgdG8gc3RvcCknKTtcbn1cblxuLyoqXG4gKiBNYWluIGVudHJ5IHBvaW50XG4gKi9cbmZ1bmN0aW9uIG1haW4gKCk6IHZvaWQge1xuXHRjb25zdCBhcmdzID0gcHJvY2Vzcy5hcmd2LnNsaWNlKDIpO1xuXHRjb25zdCBvcHRpb25zID0gcGFyc2VBcmdzKGFyZ3MpO1xuXG5cdGlmIChvcHRpb25zLmhlbHApIHtcblx0XHRwcmludEhlbHAoKTtcblx0XHRwcm9jZXNzLmV4aXQoMCk7XG5cdH1cblxuXHR0cnkge1xuXHRcdGlmIChvcHRpb25zLndhdGNoKSB7XG5cdFx0XHR3YXRjaChvcHRpb25zKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cnVuKG9wdGlvbnMpO1xuXHRcdH1cblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IGVycm9yKTtcblx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdH1cbn1cblxuLy8gUnVuIGlmIGV4ZWN1dGVkIGRpcmVjdGx5XG5pZiAocmVxdWlyZS5tYWluID09PSBtb2R1bGUpIHtcblx0bWFpbigpO1xufVxuXG5leHBvcnQge1xuXHRtYWluLCBydW4sIHdhdGNoLCBwYXJzZUFyZ3MgXG59O1xuIl19
|
package/lib/generator.js
CHANGED
|
@@ -494,4 +494,4 @@ class TypesGenerator {
|
|
|
494
494
|
}
|
|
495
495
|
}
|
|
496
496
|
exports.TypesGenerator = TypesGenerator;
|
|
497
|
-
//# sourceMappingURL=generator.js.map
|
|
497
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUViLDJDQUE2QjtBQU03Qjs7R0FFRztBQUNILE1BQWEsY0FBYztJQUkxQixZQUFxQixLQUFvQixFQUFFLEdBQUcsR0FBRyxLQUFLLEVBQUUsU0FBUyxHQUFHLFVBQVU7UUFBekQsVUFBSyxHQUFMLEtBQUssQ0FBZTtRQUN4QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNLLFVBQVUsQ0FBRSxRQUFnQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7Ozs7VUFPRztJQUNILDBCQUEwQjtRQUN6QixNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7UUFDM0IsTUFBTSxjQUFjLEdBQWEsRUFBRSxDQUFDO1FBRXBDLDJEQUEyRDtRQUMzRCxLQUFLLENBQUMsSUFBSSxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDL0QsS0FBSyxDQUFDLElBQUksQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO1FBQ3RGLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDZixLQUFLLENBQUMsSUFBSSxDQUFDLDhEQUE4RCxDQUFDLENBQUM7UUFDM0UsS0FBSyxDQUFDLElBQUksQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO1FBQ3pFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFZixrQ0FBa0M7UUFDbEMsS0FBSyxDQUFDLElBQUksQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FB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Q0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzVELFFBQVEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxzQ0FBc0M7UUFDdEMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkQsT0FBTyxhQUFhLENBQUM7SUFDdEIsQ0FBQztDQUNEO0FBOWZELHdDQThmQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7XG5cdFR5cGVOb2RlLCBHZW5lcmF0ZWRUeXBlcyBcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUeXBlR3JhcGhJbXBsIH0gZnJvbSAnLi9ncmFwaCc7XG5cbi8qKlxuICogVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiBmaWxlIGdlbmVyYXRvclxuICovXG5leHBvcnQgY2xhc3MgVHlwZXNHZW5lcmF0b3Ige1xuXHRwcml2YXRlIGVzbTogYm9vbGVhbjtcblx0cHJpdmF0ZSBvdXRwdXREaXI6IHN0cmluZztcblxuXHRjb25zdHJ1Y3RvciAocHJpdmF0ZSBncmFwaDogVHlwZUdyYXBoSW1wbCwgZXNtID0gZmFsc2UsIG91dHB1dERpciA9ICcudGFjdGljYScpIHtcblx0XHR0aGlzLmVzbSA9IGVzbTtcblx0XHR0aGlzLm91dHB1dERpciA9IG91dHB1dERpcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgaW1wb3J0IHBhdGggd2l0aCBvcHRpb25hbCAuanMgZXh0ZW5zaW9uIGZvciBFU00gTm9kZU5leHRcblx0ICovXG5cdHByaXZhdGUgaW1wb3J0UGF0aCAocmVsYXRpdmU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuZXNtID8gYCR7cmVsYXRpdmV9LmpzYCA6IHJlbGF0aXZlO1xuXHR9XG5cblx0LyoqXG5cdFx0KiBHZW5lcmF0ZSBnbG9iYWwgYXVnbWVudGF0aW9uIGZpbGUgdGhhdCBhdWdtZW50cyB1c2VyIGNsYXNzZXMgZGlyZWN0bHlcblx0XHQqIFRoaXMgYWxsb3dzIHVzaW5nIGRlY29yYXRlZCBjbGFzc2VzIHdpdGhvdXQgbWFudWFsIHR5cGUgY2FzdGluZ1xuXHRcdCpcblx0XHQqIEFsbCB0eXBlcyBhcmUgcGxhY2VkIGluIHRoZSBnbG9iYWwgc2NvcGUgdmlhIGRlY2xhcmUgZ2xvYmFsLCB3aGljaCBhbGxvd3Ncblx0XHQqIHRoZW0gdG8gYmUgYWNjZXNzZWQgZnJvbSBhbnkgbW9kdWxlIHdpdGhvdXQgaW1wb3J0cy4gSW50ZXJmYWNlcyBkZWNsYXJlZFxuXHRcdCogaW4gdGhlIGdsb2JhbCBzY29wZSB3aWxsIG1lcmdlIHdpdGggY2xhc3NlcyBvZiB0aGUgc2FtZSBuYW1lIGluIHVzZXIgbW9kdWxlcy5cblx0XHQqL1xuXHRnZW5lcmF0ZUdsb2JhbEF1Z21lbnRhdGlvbiAoKTogR2VuZXJhdGVkVHlwZXMge1xuXHRcdGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdGNvbnN0IGdlbmVyYXRlZFR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuXG5cdFx0Ly8gSGVhZGVyIC0gbWFrZSB0aGlzIGEgbW9kdWxlIHNvIHdlIGNhbiB1c2UgZGVjbGFyZSBnbG9iYWxcblx0XHRsaW5lcy5wdXNoKCcvLyBHZW5lcmF0ZWQgYnkgQG1uZW1vbmljYS90YWN0aWNhIC0gRE8gTk9UIEVESVQnKTtcblx0XHRsaW5lcy5wdXNoKCcvLyBUaGlzIGZpbGUgcHJvdmlkZXMgYXV0b21hdGljIHR5cGUgYXVnbWVudGF0aW9uIGZvciBkZWNvcmF0ZWQgY2xhc3NlcycpO1xuXHRcdGxpbmVzLnB1c2goJycpO1xuXHRcdGxpbmVzLnB1c2goJy8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1vYmplY3QtdHlwZSAqLycpO1xuXHRcdGxpbmVzLnB1c2goJy8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2UgKi8nKTtcblx0XHRsaW5lcy5wdXNoKCcnKTtcblxuXHRcdC8vIEltcG9ydCBQcm90b0ZsYXQgZnJvbSBtbmVtb25pY2Fcblx0XHRsaW5lcy5wdXNoKCdpbXBvcnQgdHlwZSB7IFByb3RvRmxhdCB9IGZyb20gXFwnbW5lbW9uaWNhXFwnOycpO1xuXHRcdGxpbmVzLnB1c2goJycpO1xuXG5cdFx0Ly8gTWFrZSB0aGlzIGEgbW9kdWxlIHNvIHdlIGNhbiB1c2UgZGVjbGFyZSBnbG9iYWxcblx0XHRsaW5lcy5wdXNoKCdleHBvcnQge307Jyk7XG5cdFx0bGluZXMucHVzaCgnJyk7XG5cblx0XHQvLyBBbGwgdHlwZXMgZ28gaW5zaWRlIGRlY2xhcmUgZ2xvYmFsIHNvIHRoZXkgYXJlIGdsb2JhbGx5IGFjY2Vzc2libGVcblx0XHRsaW5lcy5wdXNoKCdkZWNsYXJlIGdsb2JhbCB7Jyk7XG5cdFx0bGluZXMucHVzaCgnJyk7XG5cblxuXHRcdC8vIEdlbmVyYXRlIGluc3RhbmNlIHR5cGVzIGZvciBhbGwgZGVmYXVsdC1jb2xsZWN0aW9uIHR5cGVzIC0gaW4gZ2xvYmFsIHNjb3BlXG5cdFx0Zm9yIChjb25zdCByb290IG9mIHRoaXMuZ3JhcGgucm9vdHMudmFsdWVzKCkpIHtcblx0XHRcdGZvciAoY29uc3Qgbm9kZSBvZiB0aGlzLmdyYXBoLmRmcyhyb290KSkge1xuXHRcdFx0XHRpZiAobm9kZS5jb2xsZWN0aW9uSWQpIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCBpbnN0YW5jZU5hbWUgPSB0aGlzLmdldEluc3RhbmNlVHlwZU5hbWUobm9kZSk7XG5cdFx0XHRcdGdlbmVyYXRlZFR5cGVzLnB1c2goaW5zdGFuY2VOYW1lKTtcblx0XHRcdFx0dGhpcy5nZW5lcmF0ZUluc3RhbmNlVHlwZShub2RlLCBsaW5lcywgMSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gR2VuZXJhdGUgY2xhc3MgaW50ZXJmYWNlcyAtIGluIGdsb2JhbCBzY29wZSBmb3IgZGVjbGFyYXRpb24gbWVyZ2luZ1xuXHRcdC8vIFRoZXNlIGludGVyZmFjZXMgd2lsbCBtZXJnZSB3aXRoIGNsYXNzZXMgb2YgdGhlIHNhbWUgbmFtZSBpbiB1c2VyIG1vZHVsZXNcblx0XHRsaW5lcy5wdXNoKCdcdC8vIENsYXNzIGludGVyZmFjZXMgZm9yIGRlY2xhcmF0aW9uIG1lcmdpbmcnKTtcblx0XHRsaW5lcy5wdXNoKCdcdC8vIFRoZXNlIG1lcmdlIHdpdGggQGRlY29yYXRlKCkgY2xhc3NlcyB0byBwcm92aWRlIHByb3BlciB0eXBpbmcnKTtcblx0XHRsaW5lcy5wdXNoKCcnKTtcblx0XHRmb3IgKGNvbnN0IHJvb3Qgb2YgdGhpcy5ncmFwaC5yb290cy52YWx1ZXMoKSkge1xuXHRcdFx0Zm9yIChjb25zdCBub2RlIG9mIHRoaXMuZ3JhcGguZGZzKHJvb3QpKSB7XG5cdFx0XHRcdGlmIChub2RlLmNvbGxlY3Rpb25JZCkge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuZ2VuZXJhdGVDbGFzc0ludGVyZmFjZShub2RlLCBsaW5lcywgMSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0bGluZXMucHVzaCgnfScpO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGNvbnRlbnQgOiBsaW5lcy5qb2luKCdcXG4nKSxcblx0XHRcdHR5cGVzICAgOiBnZW5lcmF0ZWRUeXBlcyxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdFx0ICogR2VuZXJhdGUgaW5zdGFuY2UgdHlwZSBhbGlhcyAoZGVzY3JpYmVzIHdoYXQgdGhlIGluc3RhbmNlIElTKVxuXHRcdCAqIFVzZXMgUHJvdG9GbGF0IGZvciBwcm9wZXIgaW5oZXJpdGFuY2UgKGV4Y2x1ZGVzIG92ZXJyaWRkZW4gcGFyZW50IHByb3BzKVxuXHRcdCAqL1xuXHRwcml2YXRlIGdlbmVyYXRlSW5zdGFuY2VUeXBlIChub2RlOiBUeXBlTm9kZSwgbGluZXM6IHN0cmluZ1tdLCBpbmRlbnQ6IG51bWJlcik6IHZvaWQge1xuXHRcdGNvbnN0IGluZGVudFN0ciA9ICdcXHQnLnJlcGVhdChpbmRlbnQpO1xuXHRcdGNvbnN0IGluc3RhbmNlTmFtZSA9IHRoaXMuZ2V0SW5zdGFuY2VUeXBlTmFtZShub2RlKTtcblxuXHRcdGlmIChub2RlLnBhcmVudCkge1xuXHRcdFx0Ly8gTmVzdGVkIHR5cGU6IFVzZSBQcm90b0ZsYXQgdG8gcHJvcGVybHkgZXhjbHVkZSBvdmVycmlkZGVuIHByb3BlcnRpZXNcblx0XHRcdGxpbmVzLnB1c2goYCR7aW5kZW50U3RyfXR5cGUgJHtpbnN0YW5jZU5hbWV9ID0gUHJvdG9GbGF0PCR7dGhpcy5nZXRJbnN0YW5jZVR5cGVOYW1lKG5vZGUucGFyZW50KX0sIHtgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gUm9vdCB0eXBlOiBqdXN0IHRoZSBwcm9wZXJ0aWVzIG9iamVjdFxuXHRcdFx0bGluZXMucHVzaChgJHtpbmRlbnRTdHJ9dHlwZSAke2luc3RhbmNlTmFtZX0gPSB7YCk7XG5cdFx0fVxuXG5cdFx0Ly8gQWRkIGluc3RhbmNlIHByb3BlcnRpZXNcblx0XHRmb3IgKGNvbnN0IFsgcHJvcE5hbWUsIHByb3BJbmZvIF0gb2Ygbm9kZS5wcm9wZXJ0aWVzLmVudHJpZXMoKSkge1xuXHRcdFx0Y29uc3Qgb3B0aW9uYWwgPSBwcm9wSW5mby5vcHRpb25hbCA/ICc/JyA6ICcnO1xuXHRcdFx0Y29uc3QgcmVhZG9ubHkgPSBwcm9wSW5mby5yZWFkb25seSA/ICdyZWFkb25seSAnIDogJyc7XG5cdFx0XHRsaW5lcy5wdXNoKGAke2luZGVudFN0cn1cXHQke3JlYWRvbmx5fSR7cHJvcE5hbWV9JHtvcHRpb25hbH06ICR7cHJvcEluZm8udHlwZX07YCk7XG5cdFx0fVxuXG5cdFx0Ly8gQWRkIG5lc3RlZCBjb25zdHJ1Y3RvciBwcm9wZXJ0aWVzIChvbmx5IGZvciByb290IHR5cGVzKVxuXHRcdC8vIE5lc3RlZCB0eXBlIGNvbnN0cnVjdG9ycyBhcmUgYWNjZXNzaWJsZSB2aWEgcGFyZW50LCBub3QgZGlyZWN0bHkgb24gaW5zdGFuY2VzXG5cdFx0aWYgKCFub2RlLnBhcmVudCkge1xuXHRcdFx0Zm9yIChjb25zdCBjaGlsZCBvZiBub2RlLmNoaWxkcmVuLnZhbHVlcygpKSB7XG5cdFx0XHRcdGNvbnN0IGNoaWxkSW5zdGFuY2VUeXBlID0gdGhpcy5nZXRJbnN0YW5jZVR5cGVOYW1lKGNoaWxkKTtcblx0XHRcdFx0Y29uc3QgY29uc3RydWN0b3JTaWcgPSB0aGlzLmdlbmVyYXRlQ29uc3RydWN0b3JTaWduYXR1cmUoY2hpbGQpO1xuXHRcdFx0XHRsaW5lcy5wdXNoKGAke2luZGVudFN0cn1cXHQke2NoaWxkLm5hbWV9OiAke2NvbnN0cnVjdG9yU2lnfSA9PiAke2NoaWxkSW5zdGFuY2VUeXBlfTtgKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBGb3IgbmVzdGVkIHR5cGVzLCBhZGQgU3VidHlwZTogdW5kZWZpbmVkIHRvIGluZGljYXRlIG5vIGZ1cnRoZXIgc3VidHlwZXNcblx0XHQvLyBUaGlzIGlzIG5lZWRlZCBmb3Igc3RyaWN0IGNoYWluIGJlaGF2aW9yXG5cdFx0aWYgKG5vZGUucGFyZW50KSB7XG5cdFx0XHRsaW5lcy5wdXNoKGAke2luZGVudFN0cn1cXHQke25vZGUubmFtZX06IHVuZGVmaW5lZDtgKTtcblx0XHR9XG5cblx0XHQvLyBDbG9zZSB0aGUgdHlwZSBwcm9wZXJseSAtIFByb3RvRmxhdCB1c2VzIH0+OyBmb3IgbmVzdGVkLCB9OyBmb3Igcm9vdFxuXHRcdGlmIChub2RlLnBhcmVudCkge1xuXHRcdFx0bGluZXMucHVzaChgJHtpbmRlbnRTdHJ9fT47YCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGxpbmVzLnB1c2goYCR7aW5kZW50U3RyfX07YCk7XG5cdFx0fVxuXG5cdFx0Ly8gQWRkIGVtcHR5IGxpbmUgYWZ0ZXIgZWFjaCB0eXBlXG5cdFx0bGluZXMucHVzaCgnJyk7XG5cdH1cblxuXHQvKipcblx0XHQgKiBHZW5lcmF0ZSBjbGFzcyBpbnRlcmZhY2UgZm9yIFR5cGVTY3JpcHQgZGVjbGFyYXRpb24gbWVyZ2luZ1xuXHRcdCAqIFRoaXMgbWVyZ2VzIHdpdGggdGhlIGFjdHVhbCBjbGFzcyB0byBwcm92aWRlIHByb3BlciB0eXBpbmdcblx0XHQgKi9cblx0cHJpdmF0ZSBnZW5lcmF0ZUNsYXNzSW50ZXJmYWNlIChub2RlOiBUeXBlTm9kZSwgbGluZXM6IHN0cmluZ1tdLCBpbmRlbnQ6IG51bWJlcik6IHZvaWQge1xuXHRcdGNvbnN0IGluZGVudFN0ciA9ICdcXHQnLnJlcGVhdChpbmRlbnQpO1xuXG5cdFx0Ly8gQnVpbGQgZXh0ZW5kcyBjbGF1c2Vcblx0XHRjb25zdCBleHRlbmRzVHlwZXM6IHN0cmluZ1tdID0gW107XG5cdFx0aWYgKG5vZGUucGFyZW50KSB7XG5cdFx0XHRleHRlbmRzVHlwZXMucHVzaChub2RlLnBhcmVudC5uYW1lKTtcblx0XHR9XG5cblx0XHRjb25zdCBleHRlbmRzQ2xhdXNlID0gZXh0ZW5kc1R5cGVzLmxlbmd0aCA+IDBcblx0XHRcdD8gYCBleHRlbmRzICR7ZXh0ZW5kc1R5cGVzLmpvaW4oJywgJyl9YFxuXHRcdFx0OiAnJztcblxuXHRcdC8vIEludGVyZmFjZSB3aXRoIHNhbWUgbmFtZSBhcyBjbGFzcyAtIFR5cGVTY3JpcHQgbWVyZ2VzIHRoZXNlXG5cdFx0bGluZXMucHVzaChgJHtpbmRlbnRTdHJ9aW50ZXJmYWNlICR7bm9kZS5uYW1lfSR7ZXh0ZW5kc0NsYXVzZX0ge2ApO1xuXHRcdFx0XG5cdFx0Ly8gQWRkIGFsbCBpbnN0YW5jZSBwcm9wZXJ0aWVzIChmb3IgdHlwZSBtZXJnaW5nKVxuXHRcdGZvciAoY29uc3QgWyBwcm9wTmFtZSwgcHJvcEluZm8gXSBvZiBub2RlLnByb3BlcnRpZXMuZW50cmllcygpKSB7XG5cdFx0XHRjb25zdCBvcHRpb25hbCA9IHByb3BJbmZvLm9wdGlvbmFsID8gJz8nIDogJyc7XG5cdFx0XHRjb25zdCByZWFkb25seSA9IHByb3BJbmZvLnJlYWRvbmx5ID8gJ3JlYWRvbmx5ICcgOiAnJztcblx0XHRcdGxpbmVzLnB1c2goYCR7aW5kZW50U3RyfVxcdCR7cmVhZG9ubHl9JHtwcm9wTmFtZX0ke29wdGlvbmFsfTogJHtwcm9wSW5mby50eXBlfTtgKTtcblx0XHR9XG5cblx0XHQvLyBBZGQgc3VidHlwZSBjb25zdHJ1Y3RvcnMgKG5vbi1vcHRpb25hbCBzbyB0aGV5J3JlIGFjY2Vzc2libGUpIC0gb25seSBmb3Igcm9vdCB0eXBlc1xuXHRcdGlmICghbm9kZS5wYXJlbnQpIHtcblx0XHRcdGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbi52YWx1ZXMoKSkge1xuXHRcdFx0XHRjb25zdCBjaGlsZEluc3RhbmNlVHlwZSA9IHRoaXMuZ2V0SW5zdGFuY2VUeXBlTmFtZShjaGlsZCk7XG5cdFx0XHRcdGNvbnN0IGNvbnN0cnVjdG9yU2lnID0gdGhpcy5nZW5lcmF0ZUNvbnN0cnVjdG9yU2lnbmF0dXJlKGNoaWxkKTtcblx0XHRcdFx0bGluZXMucHVzaChgJHtpbmRlbnRTdHJ9XFx0JHtjaGlsZC5uYW1lfTogJHtjb25zdHJ1Y3RvclNpZ30gPT4gJHtjaGlsZEluc3RhbmNlVHlwZX07YCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcblx0XHRsaW5lcy5wdXNoKGAke2luZGVudFN0cn19YCk7XG5cdFx0bGluZXMucHVzaCgnJyk7XG5cdH1cblx0XHRcblx0LyoqXG5cdFx0KiBHZW5lcmF0ZSBhIHR5cGVzLnRzIGZpbGUgd2l0aCBjb21wbGV0ZSBpbnN0YW5jZSBpbnRlcmZhY2VzXG5cdFx0KiBUaGlzIGluY2x1ZGVzIGFsbCBwcm9wZXJ0aWVzIGV4dHJhY3RlZCBmcm9tIHRoZSBjb25zdHJ1Y3RvcnNcblx0XHQqL1xuXHRnZW5lcmF0ZVR5cGVzRmlsZSAoKTogR2VuZXJhdGVkVHlwZXMge1xuXHRcdGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdGNvbnN0IGdlbmVyYXRlZFR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuXG5cdFx0Ly8gSGVhZGVyXG5cdFx0bGluZXMucHVzaCgnLy8gR2VuZXJhdGVkIGJ5IEBtbmVtb25pY2EvdGFjdGljYSAtIERPIE5PVCBFRElUJyk7XG5cdFx0bGluZXMucHVzaCgnLy8gVGhpcyBmaWxlIHByb3ZpZGVzIGNvbXBsZXRlIFR5cGVTY3JpcHQgaW50ZXJmYWNlcyBmb3IgTW5lbW9uaWNhIHR5cGVzJyk7XG5cdFx0bGluZXMucHVzaCgnJyk7XG5cdFx0bGluZXMucHVzaCgnLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlICovJyk7XG5cdFx0bGluZXMucHVzaCgnLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZSAqLycpO1xuXHRcdGxpbmVzLnB1c2goJycpO1xuXG5cdFx0Ly8gSW1wb3J0IFByb3RvRmxhdCBmcm9tIG1uZW1vbmljYVxuXHRcdGxpbmVzLnB1c2goJ2ltcG9ydCB0eXBlIHsgUHJvdG9GbGF0IH0gZnJvbSBcXCdtbmVtb25pY2FcXCc7Jyk7XG5cdFx0bGluZXMucHVzaCgnJyk7XG5cblx0XHQvLyBHZW5lcmF0ZSBjb21wbGV0ZSBpbnN0YW5jZSBpbnRlcmZhY2VzIGZvciBkZWZhdWx0LWNvbGxlY3Rpb24gdHlwZXMgYW5kXG5cdFx0Ly8gZm9yIGN1c3RvbSBjb2xsZWN0aW9ucyB0aGF0IGRlY2xhcmUgYSB1c2VyLXByb3ZpZGVkIHJlZ2lzdHJ5IGludGVyZmFjZVxuXHRcdC8vIChPcHRpb24gQikuIEN1c3RvbS1jb2xsZWN0aW9uIHR5cGVzIHdpdGhvdXQgYSByZWdpc3RyeSBpbnRlcmZhY2UgYXJlXG5cdFx0Ly8gaXNvbGF0ZWQgYXQgcnVudGltZSBhbmQgYXJlIG5vdCBlbWl0dGVkLlxuXHRcdGZvciAoY29uc3Qgcm9vdCBvZiB0aGlzLmdyYXBoLnJvb3RzLnZhbHVlcygpKSB7XG5cdFx0XHRmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcy5ncmFwaC5kZnMocm9vdCkpIHtcblx0XHRcdFx0aWYgKG5vZGUuY29sbGVjdGlvbklkICYmICFub2RlLnJlZ2lzdHJ5SW50ZXJmYWNlTmFtZSkge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IGludGVyZmFjZU5hbWUgPSB0aGlzLmdldEluc3RhbmNlVHlwZU5hbWUobm9kZSk7XG5cdFx0XHRcdGdlbmVyYXRlZFR5cGVzLnB1c2goaW50ZXJmYWNlTmFtZSk7XG5cdFx0XHRcdHRoaXMuZ2VuZXJhdGVDb21wbGV0ZUluc3RhbmNlSW50ZXJmYWNlKG5vZGUsIGxpbmVzKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0Y29udGVudCA6IGxpbmVzLmpvaW4oJ1xcbicpLFxuXHRcdFx0dHlwZXMgICA6IGdlbmVyYXRlZFR5cGVzLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0XHQgKiBHZW5lcmF0ZSBhIGNvbXBsZXRlIGluc3RhbmNlIHR5cGUgYWxpYXMgd2l0aCBhbGwgcHJvcGVydGllc1xuXHRcdCAqIFRoaXMgaXMgZm9yIHRoZSB0eXBlcy50cyBmaWxlIHRoYXQgdXNlcnMgaW1wb3J0IGZyb21cblx0XHQgKi9cblx0cHJpdmF0ZSBnZW5lcmF0ZUNvbXBsZXRlSW5zdGFuY2VJbnRlcmZhY2UgKG5vZGU6IFR5cGVOb2RlLCBsaW5lczogc3RyaW5nW10pOiB2b2lkIHtcblx0XHRjb25zdCB0eXBlTmFtZSA9IHRoaXMuZ2V0SW5zdGFuY2VUeXBlTmFtZShub2RlKTtcblxuXHRcdGlmIChub2RlLnBhcmVudCkge1xuXHRcdFx0Ly8gTmVzdGVkIHR5cGU6IFVzZSBQcm90b0ZsYXQgdG8gcHJvcGVybHkgZXhjbHVkZSBvdmVycmlkZGVuIHByb3BlcnRpZXNcblx0XHRcdGxpbmVzLnB1c2goYGV4cG9ydCB0eXBlICR7dHlwZU5hbWV9ID0gUHJvdG9GbGF0PCR7dGhpcy5nZXRJbnN0YW5jZVR5cGVOYW1lKG5vZGUucGFyZW50KX0sIHtgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gUm9vdCB0eXBlOiBqdXN0IHRoZSBwcm9wZXJ0aWVzIG9iamVjdFxuXHRcdFx0bGluZXMucHVzaChgZXhwb3J0IHR5cGUgJHt0eXBlTmFtZX0gPSB7YCk7XG5cdFx0fVxuXG5cdFx0Ly8gQWRkIGluc3RhbmNlIHByb3BlcnRpZXMgZXh0cmFjdGVkIGZyb20gdGhlIGNvbnN0cnVjdG9yXG5cdFx0Zm9yIChjb25zdCBbIHByb3BOYW1lLCBwcm9wSW5mbyBdIG9mIG5vZGUucHJvcGVydGllcy5lbnRyaWVzKCkpIHtcblx0XHRcdGNvbnN0IG9wdGlvbmFsID0gcHJvcEluZm8ub3B0aW9uYWwgPyAnPycgOiAnJztcblx0XHRcdGNvbnN0IHJlYWRvbmx5ID0gcHJvcEluZm8ucmVhZG9ubHkgPyAncmVhZG9ubHkgJyA6ICcnO1xuXHRcdFx0bGluZXMucHVzaChgXFx0JHtyZWFkb25seX0ke3Byb3BOYW1lfSR7b3B0aW9uYWx9OiAke3RoaXMucmVzb2x2ZVR5cGVJblN0cmluZyhwcm9wSW5mby50eXBlLCBub2RlKX07YCk7XG5cdFx0fVxuXG5cdFx0Ly8gQWRkIG5lc3RlZCBjb25zdHJ1Y3RvciBwcm9wZXJ0aWVzIGZvciBub24tbGVhZiBub2Rlc1xuXHRcdC8vIExlYWYgbm9kZXMgKG5vIGNoaWxkcmVuKSBkb24ndCBnZXQgY29uc3RydWN0b3IgcHJvcGVydGllc1xuXHRcdC8vIFRoaXMgZm9sbG93cyBtbmVtb25pY2EncyBzdHJpY3RDaGFpbiBiZWhhdmlvclxuXHRcdGlmIChub2RlLmNoaWxkcmVuLnNpemUgPiAwKSB7XG5cdFx0XHRmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4udmFsdWVzKCkpIHtcblx0XHRcdFx0Y29uc3QgY2hpbGRJbnN0YW5jZVR5cGUgPSB0aGlzLmdldEluc3RhbmNlVHlwZU5hbWUoY2hpbGQpO1xuXHRcdFx0XHRjb25zdCBjb25zdHJ1Y3RvclNpZyA9IHRoaXMuZ2VuZXJhdGVDb25zdHJ1Y3RvclNpZ25hdHVyZShjaGlsZCk7XG5cdFx0XHRcdGxpbmVzLnB1c2goYFxcdCR7Y2hpbGQubmFtZX06ICR7Y29uc3RydWN0b3JTaWd9ID0+ICR7Y2hpbGRJbnN0YW5jZVR5cGV9O2ApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEZvciBuZXN0ZWQgdHlwZXMsIGFkZCB0aGlzIG5vZGUncyBjb25zdHJ1Y3RvciBhbmQgYWxsIHNpYmxpbmdzIGZyb20gc2FtZSBwYXJlbnQgYXMgdW5kZWZpbmVkXG5cdFx0Ly8gVGhpcyBpcyBuZWVkZWQgZm9yIHN0cmljdCBjaGFpbiBiZWhhdmlvciAtIHBhcmVudCB1bmRlZmluZWRzIGFyZSBpbmhlcml0ZWQgdmlhIFByb3RvRmxhdFxuXHRcdGlmIChub2RlLnBhcmVudCkge1xuXHRcdFx0Ly8gQWRkIHRoaXMgbm9kZSdzIG93biBjb25zdHJ1Y3RvciBhcyB1bmRlZmluZWRcblx0XHRcdGxpbmVzLnB1c2goYFxcdCR7bm9kZS5uYW1lfTogdW5kZWZpbmVkO2ApO1xuXG5cdFx0XHQvLyBBZGQgYWxsIHNpYmxpbmdzIChvdGhlciBjaGlsZHJlbiBvZiB0aGUgc2FtZSBwYXJlbnQpIGFzIHVuZGVmaW5lZFxuXHRcdFx0Zm9yIChjb25zdCBzaWJsaW5nIG9mIG5vZGUucGFyZW50LmNoaWxkcmVuLnZhbHVlcygpKSB7XG5cdFx0XHRcdGlmIChzaWJsaW5nLm5hbWUgIT09IG5vZGUubmFtZSkge1xuXHRcdFx0XHRcdGxpbmVzLnB1c2goYFxcdCR7c2libGluZy5uYW1lfTogdW5kZWZpbmVkO2ApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ2xvc2UgdGhlIHR5cGUgcHJvcGVybHkgLSBQcm90b0ZsYXQgdXNlcyB9PjsgZm9yIG5lc3RlZCwgfTsgZm9yIHJvb3Rcblx0XHRpZiAobm9kZS5wYXJlbnQpIHtcblx0XHRcdGxpbmVzLnB1c2goJ30+OycpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRsaW5lcy5wdXNoKCd9OycpO1xuXHRcdH1cblx0XHRsaW5lcy5wdXNoKCcnKTtcblx0fVxuXG5cdC8qKlxuXHRcdCAqIEdlbmVyYXRlIGEgc2ltcGxlIHR5cGUgZGVjbGFyYXRpb24gZm9yIGEgc2luZ2xlIHR5cGVcblx0XHQgKi9cblx0Z2VuZXJhdGVTaW5nbGVUeXBlIChub2RlOiBUeXBlTm9kZSk6IHN0cmluZyB7XG5cdFx0Y29uc3QgbGluZXM6IHN0cmluZ1tdID0gW107XG5cdFx0dGhpcy5nZW5lcmF0ZUNvbXBsZXRlSW5zdGFuY2VJbnRlcmZhY2Uobm9kZSwgbGluZXMpO1xuXHRcdHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcblx0fVxuXG5cdC8qKlxuXHRcdCAqIEdlbmVyYXRlIFR5cGVSZWdpc3RyeSBpbnRlcmZhY2UgZm9yIHR5cGUtc2FmZSBsb29rdXAoKSBmdW5jdGlvblxuXHRcdCAqIEF1Z21lbnQgbW5lbW9uaWNhJ3MgVHlwZVJlZ2lzdHJ5IHNvIGxvb2t1cCgnVHlwZU5hbWUnKSByZXR1cm5zIHRoZSB0eXBlZCBjb25zdHJ1Y3RvclxuXHRcdCAqL1xuXHRnZW5lcmF0ZVR5cGVSZWdpc3RyeSAoKTogR2VuZXJhdGVkVHlwZXMge1xuXHRcdGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdGNvbnN0IGdlbmVyYXRlZFR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuXG5cdFx0Ly8gSGVhZGVyXG5cdFx0bGluZXMucHVzaCgnLy8gR2VuZXJhdGVkIFR5cGVSZWdpc3RyeSBmb3IgdHlwZS1zYWZlIG1uZW1vbmljYS5sb29rdXAoKScpO1xuXHRcdGxpbmVzLnB1c2goJy8vIFRoaXMgZmlsZSBhdWdtZW50cyBtbmVtb25pY2FcXCdzIFR5cGVSZWdpc3RyeSB2aWEgZGVjbGFyYXRpb24gbWVyZ2luZy4nKTtcblx0XHRsaW5lcy5wdXNoKCcvLycpO1xuXHRcdGxpbmVzLnB1c2goJy8vIFVzYWdlOicpO1xuXHRcdGxpbmVzLnB1c2goJy8vICAgaW1wb3J0IHsgbG9va3VwIH0gZnJvbSBcXCdtbmVtb25pY2FcXCc7Jyk7XG5cdFx0bGluZXMucHVzaCgnLy8gICBpbXBvcnQgXFwnLi8udGFjdGljYS9yZWdpc3RyeVxcJzsgIC8vIGFwcGxpZXMgdGhlIGF1Z21lbnRhdGlvbicpO1xuXHRcdGxpbmVzLnB1c2goJy8vICAgY29uc3QgTXlUeXBlID0gbG9va3VwKFxcJ015VHlwZVxcJyk7Jyk7XG5cdFx0bGluZXMucHVzaCgnLy8gICAvLyBUeXBlU2NyaXB0IGtub3dzOiBNeVR5cGUgaXMgdGhlIHR5cGVkIGNvbnN0cnVjdG9yIGZvciBNeVR5cGUnKTtcblx0XHRsaW5lcy5wdXNoKCcvLyAgIGNvbnN0IGluc3RhbmNlID0gbmV3IE15VHlwZSh7IC8qIGNvbnN0cnVjdG9yIGFyZ3MgKi8gfSk7Jyk7XG5cdFx0bGluZXMucHVzaCgnLy8gICAvLyBpbnN0YW5jZSBoYXMgZnVsbCBpbnRlbGxpc2Vuc2UgZm9yIHRoZSBnZW5lcmF0ZWQgdHlwZScpO1xuXHRcdGxpbmVzLnB1c2goJycpO1xuXG5cdFx0Ly8gSW1wb3J0IGluc3RhbmNlIHR5cGVzIGZyb20gdHlwZXMudHMuXG5cdFx0Ly8gU2tpcCBjdXN0b20tY29sbGVjdGlvbiB0eXBlcyB0aGF0IGhhdmUgbm8gdXNlci1wcm92aWRlZCByZWdpc3RyeSBpbnRlcmZhY2UuXG5cdFx0bGluZXMucHVzaCgnaW1wb3J0IHR5cGUgeycpO1xuXHRcdGZvciAoY29uc3Qgcm9vdCBvZiB0aGlzLmdyYXBoLnJvb3RzLnZhbHVlcygpKSB7XG5cdFx0XHRmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcy5ncmFwaC5kZnMocm9vdCkpIHtcblx0XHRcdFx0aWYgKG5vZGUuY29sbGVjdGlvbklkICYmICFub2RlLnJlZ2lzdHJ5SW50ZXJmYWNlTmFtZSkge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IGluc3RhbmNlVHlwZU5hbWUgPSB0aGlzLmdldEluc3RhbmNlVHlwZU5hbWUobm9kZSk7XG5cdFx0XHRcdGxpbmVzLnB1c2goYFxcdCR7aW5zdGFuY2VUeXBlTmFtZX0sYCk7XG5cdFx0XHRcdGdlbmVyYXRlZFR5cGVzLnB1c2goaW5zdGFuY2VUeXBlTmFtZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGxpbmVzLnB1c2goYH0gZnJvbSAnJHt0aGlzLmltcG9ydFBhdGgoJy4vdHlwZXMnKX0nO2ApO1xuXHRcdGxpbmVzLnB1c2goJycpO1xuXG5cdFx0Ly8gR2VuZXJhdGUgbW9kdWxlIGF1Z21lbnRhdGlvbiBmb3IgbW5lbW9uaWNhIFR5cGVSZWdpc3RyeVxuXHRcdGxpbmVzLnB1c2goJy8qKicpO1xuXHRcdGxpbmVzLnB1c2goJyAqIFR5cGUgcmVnaXN0cnkgYXVnbWVudGluZyBtbmVtb25pY2FcXCdzIFR5cGVSZWdpc3RyeSBpbnRlcmZhY2UnKTtcblx0XHRsaW5lcy5wdXNoKCcgKiBUaGlzIGVuYWJsZXMgdHlwZS1zYWZlIGxvb2t1cCgpIHdpdGhvdXQgZXhwbGljaXQgdHlwZSBhcmd1bWVudHMnKTtcblx0XHRsaW5lcy5wdXNoKCcgKicpO1xuXHRcdGxpbmVzLnB1c2goJyAqIFVzYWdlOiBjb25zdCBTb21lVHlwZSA9IGxvb2t1cChcXCdTb21lVHlwZVxcJyk7IC8vIEZ1bGx5IHR5cGVkIScpO1xuXHRcdGxpbmVzLnB1c2goJyAqLycpO1xuXHRcdGxpbmVzLnB1c2goJ2RlY2xhcmUgbW9kdWxlIFxcJ21uZW1vbmljYVxcJyB7Jyk7XG5cdFx0bGluZXMucHVzaCgnXHRpbnRlcmZhY2UgVHlwZVJlZ2lzdHJ5IHsnKTtcblxuXHRcdC8vIEdlbmVyYXRlIGVudHJpZXMgZm9yIGFsbCB0eXBlIHBhdGhzIHRoYXQgYmVsb25nIHRvIHRoZSBkZWZhdWx0L2dsb2JhbCBjb2xsZWN0aW9uLlxuXHRcdC8vIFR5cGVzIHRoYXQgbGl2ZSBpbiBhIGN1c3RvbSBjb2xsZWN0aW9uIChjb2xsZWN0aW9uSWQgc2V0KSBhcmUgaXNvbGF0ZWQgYXQgcnVudGltZVxuXHRcdC8vIGFuZCBhcmUgbm90IHJlYWNoYWJsZSB0aHJvdWdoIGZyZWUgbG9va3VwKCksIHNvIHRoZXkgbXVzdCBub3QgYmUgYWRkZWQgdG8gdGhlXG5cdFx0Ly8gZ2xvYmFsIFR5cGVSZWdpc3RyeSBhdWdtZW50YXRpb24uXG5cdFx0Zm9yIChjb25zdCByb290IG9mIHRoaXMuZ3JhcGgucm9vdHMudmFsdWVzKCkpIHtcblx0XHRcdGZvciAoY29uc3Qgbm9kZSBvZiB0aGlzLmdyYXBoLmRmcyhyb290KSkge1xuXHRcdFx0XHRpZiAobm9kZS5jb2xsZWN0aW9uSWQpIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCBmdWxsUGF0aCA9IHRoaXMuZ2V0RnVsbFBhdGgobm9kZSk7XG5cdFx0XHRcdGNvbnN0IGluc3RhbmNlVHlwZSA9IHRoaXMuZ2V0SW5zdGFuY2VUeXBlTmFtZShub2RlKTtcblx0XHRcdFx0Ly8gR2VuZXJhdGUgdHlwZWQgY29uc3RydWN0b3Igc2lnbmF0dXJlIGZvciBuZXN0ZWQgdHlwZXMgd2l0aCBwcm9wZXJ0aWVzXG5cdFx0XHRcdGNvbnN0IGNvbnN0cnVjdG9yU2lnID0gdGhpcy5nZW5lcmF0ZUNvbnN0cnVjdG9yU2lnbmF0dXJlKG5vZGUpO1xuXHRcdFx0XHRsaW5lcy5wdXNoKGBcXHRcXHQnJHtmdWxsUGF0aH0nOiAke2NvbnN0cnVjdG9yU2lnfSA9PiAke2luc3RhbmNlVHlwZX07YCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0bGluZXMucHVzaCgnXFx0fScpO1xuXHRcdGxpbmVzLnB1c2goJ30nKTtcblx0XHRsaW5lcy5wdXNoKCcnKTtcblxuXHRcdC8vIEdlbmVyYXRlIHBlci1jb2xsZWN0aW9uIHJlZ2lzdHJ5IGF1Z21lbnRhdGlvbnMgZm9yIE9wdGlvbiBCXG5cdFx0Ly8gKHVzZXItcHJvdmlkZWQgcmVnaXN0cnkgaW50ZXJmYWNlcykuXG5cdFx0Y29uc3QgY29sbGVjdGlvbkdyb3VwcyA9IHRoaXMuZ3JvdXBDb2xsZWN0aW9uUmVnaXN0cnlOb2RlcygpO1xuXHRcdGZvciAoY29uc3QgWyBrZXksIG5vZGVzIF0gb2YgY29sbGVjdGlvbkdyb3Vwcykge1xuXHRcdFx0Y29uc3QgWyByZWdpc3RyeUludGVyZmFjZU5hbWUsIHNvdXJjZUZpbGUgXSA9IGtleS5zcGxpdCgnOjonKTtcblx0XHRcdGNvbnN0IG1vZHVsZVBhdGggPSB0aGlzLnJlc29sdmVNb2R1bGVQYXRoKHNvdXJjZUZpbGUpO1xuXHRcdFx0bGluZXMucHVzaChgZGVjbGFyZSBtb2R1bGUgJyR7bW9kdWxlUGF0aH0nIHtgKTtcblx0XHRcdGxpbmVzLnB1c2goYFxcdGludGVyZmFjZSAke3JlZ2lzdHJ5SW50ZXJmYWNlTmFtZX0ge2ApO1xuXHRcdFx0Zm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG5cdFx0XHRcdGNvbnN0IGZ1bGxQYXRoID0gdGhpcy5nZXRGdWxsUGF0aChub2RlKTtcblx0XHRcdFx0Y29uc3QgaW5zdGFuY2VUeXBlID0gdGhpcy5nZXRJbnN0YW5jZVR5cGVOYW1lKG5vZGUpO1xuXHRcdFx0XHRjb25zdCBjb25zdHJ1Y3RvclNpZyA9IHRoaXMuZ2VuZXJhdGVDb25zdHJ1Y3RvclNpZ25hdHVyZShub2RlKTtcblx0XHRcdFx0bGluZXMucHVzaChgXFx0XFx0JyR7ZnVsbFBhdGh9JzogJHtjb25zdHJ1Y3RvclNpZ30gPT4gJHtpbnN0YW5jZVR5cGV9O2ApO1xuXHRcdFx0fVxuXHRcdFx0bGluZXMucHVzaCgnXFx0fScpO1xuXHRcdFx0bGluZXMucHVzaCgnfScpO1xuXHRcdFx0bGluZXMucHVzaCgnJyk7XG5cdFx0fVxuXG5cdFx0Ly8gUmUtZXhwb3J0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGFuZCBleHBsaWNpdCB1c2FnZVxuXHRcdGxpbmVzLnB1c2goJ2ltcG9ydCB0eXBlIHsgVHlwZVJlZ2lzdHJ5IH0gZnJvbSBcXCdtbmVtb25pY2FcXCc7Jyk7XG5cdFx0bGluZXMucHVzaCgnZXhwb3J0IHR5cGUgeyBUeXBlUmVnaXN0cnkgfTsnKTtcblxuXHRcdHJldHVybiB7XG5cdFx0XHRjb250ZW50IDogbGluZXMuam9pbignXFxuJyksXG5cdFx0XHR0eXBlcyAgIDogZ2VuZXJhdGVkVHlwZXMsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHRcdCAqIEdlbmVyYXRlIGNvbnN0cnVjdG9yIHNpZ25hdHVyZSBmb3IgYSB0eXBlIG5vZGVcblx0XHQgKiBVc2VzIGNvbnN0cnVjdG9yUGFyYW1zIGZvciBUeXBlUmVnaXN0cnkgc2lnbmF0dXJlIChub3QgaW5zdGFuY2UgcHJvcGVydGllcylcblx0XHQgKi9cblx0cHJpdmF0ZSBnZW5lcmF0ZUNvbnN0cnVjdG9yU2lnbmF0dXJlIChub2RlOiBUeXBlTm9kZSk6IHN0cmluZyB7XG5cdFx0Ly8gVXNlIGNvbnN0cnVjdG9yUGFyYW1zIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGZhbGwgYmFjayB0byBlbXB0eSBzaWduYXR1cmVcblx0XHRjb25zdCBwYXJhbXMgPSBub2RlLmNvbnN0cnVjdG9yUGFyYW1zO1xuXG5cdFx0aWYgKCFwYXJhbXMgfHwgcGFyYW1zLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuICduZXcgKCknO1xuXHRcdH1cblxuXHRcdC8vIEJ1aWxkIHR5cGVkIGNvbnN0cnVjdG9yIHNpZ25hdHVyZSBmcm9tIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnNcblx0XHRjb25zdCBwcm9wczogc3RyaW5nW10gPSBbXTtcblx0XHRmb3IgKGNvbnN0IHBhcmFtIG9mIHBhcmFtcykge1xuXHRcdFx0Y29uc3Qgb3B0aW9uYWwgPSBwYXJhbS5vcHRpb25hbCA/ICc/JyA6ICcnO1xuXHRcdFx0cHJvcHMucHVzaChgJHtwYXJhbS5uYW1lfSR7b3B0aW9uYWx9OiAke3BhcmFtLnR5cGV9YCk7XG5cdFx0fVxuXG5cdFx0Ly8gUmV0dXJuIGNvbnN0cnVjdG9yIHNpZ25hdHVyZSB3aXRoIGRhdGEgcGFyYW1ldGVyXG5cdFx0cmV0dXJuIGBuZXcgKCR7cHJvcHMuam9pbignLCAnKX0pYDtcblx0fVxuXG5cdC8qKlxuXHRcdCAqIEdldCB0aGUgZnVsbCBkb3R0ZWQgcGF0aCBmb3IgYSB0eXBlIG5vZGVcblx0XHQgKi9cblx0cHJpdmF0ZSBnZXRGdWxsUGF0aCAobm9kZTogVHlwZU5vZGUpOiBzdHJpbmcge1xuXHRcdGlmICghbm9kZS5wYXJlbnQpIHtcblx0XHRcdHJldHVybiBub2RlLm5hbWU7XG5cdFx0fVxuXHRcdHJldHVybiBgJHt0aGlzLmdldEZ1bGxQYXRoKG5vZGUucGFyZW50KX0uJHtub2RlLm5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIGluc3RhbmNlIHR5cGUgbmFtZSBmb3IgYSBub2RlXG5cdCAqIFVzZXMgZnVsbCBwYXRoIHdpdGggdW5kZXJzY29yZXM6IFVzYWdlcy5Vc2FnZUVudHJ5IC0+IFVzYWdlc19Vc2FnZUVudHJ5XG5cdCAqIEZvciBPcHRpb24gQiBjdXN0b20gY29sbGVjdGlvbnMsIHByZWZpeGVzIHdpdGggdGhlIHJlZ2lzdHJ5IGludGVyZmFjZSBuYW1lLlxuXHQgKi9cblx0cHJpdmF0ZSBnZXRJbnN0YW5jZVR5cGVOYW1lIChub2RlOiBUeXBlTm9kZSk6IHN0cmluZyB7XG5cdFx0Y29uc3QgZnVsbFBhdGggPSB0aGlzLmdldEZ1bGxQYXRoKG5vZGUpO1xuXHRcdGNvbnN0IHByZWZpeCA9IG5vZGUucmVnaXN0cnlJbnRlcmZhY2VOYW1lID8gYCR7bm9kZS5yZWdpc3RyeUludGVyZmFjZU5hbWV9X2AgOiAnJztcblx0XHRyZXR1cm4gYCR7cHJlZml4fSR7ZnVsbFBhdGgucmVwbGFjZSgvXFwuL2csICdfJyl9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXNvbHZlIGEgc2ltcGxlIHR5cGUgbmFtZSB0byBpdHMgZnVsbCBwYXRoIG5hbWVcblx0ICogZS5nLiwgXCJEZWZpbml0aW9uRW50cnlcIiAtPiBcIkRlZmluaXRpb25zX0RlZmluaXRpb25FbnRyeVwiXG5cdCAqL1xuXHRwcml2YXRlIHJlc29sdmVUeXBlTmFtZSAoc2ltcGxlTmFtZTogc3RyaW5nLCBjdXJyZW50Tm9kZTogVHlwZU5vZGUpOiBzdHJpbmcge1xuXHRcdC8vIEZpcnN0IGNoZWNrIGlmIGl0J3MgdGhlIGN1cnJlbnQgbm9kZSBvciBpdHMgY2hpbGRyZW5cblx0XHRpZiAoY3VycmVudE5vZGUubmFtZSA9PT0gc2ltcGxlTmFtZSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZ2V0SW5zdGFuY2VUeXBlTmFtZShjdXJyZW50Tm9kZSk7XG5cdFx0fVxuXHRcdGZvciAoY29uc3QgY2hpbGQgb2YgY3VycmVudE5vZGUuY2hpbGRyZW4udmFsdWVzKCkpIHtcblx0XHRcdGlmIChjaGlsZC5uYW1lID09PSBzaW1wbGVOYW1lKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLmdldEluc3RhbmNlVHlwZU5hbWUoY2hpbGQpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQvLyBTZWFyY2ggYWxsIHR5cGVzIGluIHRoZSBncmFwaFxuXHRcdGZvciAoY29uc3QgdHlwZSBvZiB0aGlzLmdyYXBoLmdldEFsbFR5cGVzKCkpIHtcblx0XHRcdGlmICh0eXBlLm5hbWUgPT09IHNpbXBsZU5hbWUpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0SW5zdGFuY2VUeXBlTmFtZSh0eXBlKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHNpbXBsZU5hbWU7XG5cdH1cblxuXHQvKipcblx0ICogUmVzb2x2ZSBzaW1wbGUgdHlwZSBuYW1lcyB0byBmdWxsIHBhdGggbmFtZXMgd2l0aGluIGEgdHlwZSBzdHJpbmdcblx0ICogSGFuZGxlcyBjb21wbGV4IHR5cGVzIGxpa2UgQXJyYXk8VXNhZ2VFbnRyeT4sIE1hcDxzdHJpbmcsIFR5cGVFbnRyeT4sIGV0Yy5cblx0ICovXG5cdHByaXZhdGUgcmVzb2x2ZVR5cGVJblN0cmluZyAodHlwZVN0cjogc3RyaW5nLCBjdXJyZW50Tm9kZTogVHlwZU5vZGUpOiBzdHJpbmcge1xuXHRcdC8vIEdldCBhbGwgdHlwZSBuYW1lcyBmcm9tIHRoZSBncmFwaFxuXHRcdGNvbnN0IGFsbFR5cGVzID0gdGhpcy5ncmFwaC5nZXRBbGxUeXBlcygpO1xuXHRcdGNvbnN0IHR5cGVOYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXHRcdGZvciAoY29uc3QgdHlwZSBvZiBhbGxUeXBlcykge1xuXHRcdFx0dHlwZU5hbWVzLmFkZCh0eXBlLm5hbWUpO1xuXHRcdH1cblxuXHRcdC8vIFNvcnQgYnkgbGVuZ3RoIChsb25nZXN0IGZpcnN0KSB0byBhdm9pZCBwYXJ0aWFsIHJlcGxhY2VtZW50c1xuXHRcdGNvbnN0IHNvcnRlZE5hbWVzID0gQXJyYXkuZnJvbSh0eXBlTmFtZXMpLnNvcnQoKGEsIGIpID0+IGIubGVuZ3RoIC0gYS5sZW5ndGgpO1xuXG5cdFx0Ly8gUmVwbGFjZSBlYWNoIHNpbXBsZSB0eXBlIG5hbWUgd2l0aCBpdHMgZnVsbCBwYXRoIHZlcnNpb25cblx0XHRsZXQgcmVzdWx0ID0gdHlwZVN0cjtcblx0XHRmb3IgKGNvbnN0IG5hbWUgb2Ygc29ydGVkTmFtZXMpIHtcblx0XHRcdC8vIFVzZSB3b3JkIGJvdW5kYXJ5IG1hdGNoaW5nIHRvIGF2b2lkIHJlcGxhY2luZyBwYXJ0aWFsIG5hbWVzXG5cdFx0XHRjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxiJHtuYW1lfVxcXFxiYCwgJ2cnKTtcblx0XHRcdGNvbnN0IGZ1bGxUeXBlTmFtZSA9IHRoaXMucmVzb2x2ZVR5cGVOYW1lKG5hbWUsIGN1cnJlbnROb2RlKTtcblx0XHRcdGlmIChmdWxsVHlwZU5hbWUgIT09IG5hbWUpIHtcblx0XHRcdFx0cmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UocmVnZXgsIGZ1bGxUeXBlTmFtZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHQvKipcblx0ICogR3JvdXAgY29sbGVjdGlvbiB0eXBlIG5vZGVzIGJ5IHRoZWlyIHJlZ2lzdHJ5IGludGVyZmFjZSBuYW1lIGFuZCBzb3VyY2UgZmlsZS5cblx0ICogUmV0dXJucyBhIG1hcCBrZXllZCBieSBgJHtyZWdpc3RyeUludGVyZmFjZU5hbWV9Ojoke3NvdXJjZUZpbGV9YC5cblx0ICovXG5cdHByaXZhdGUgZ3JvdXBDb2xsZWN0aW9uUmVnaXN0cnlOb2RlcyAoKTogTWFwPHN0cmluZywgVHlwZU5vZGVbXT4ge1xuXHRcdGNvbnN0IGdyb3VwcyA9IG5ldyBNYXA8c3RyaW5nLCBUeXBlTm9kZVtdPigpO1xuXHRcdGZvciAoY29uc3Qgcm9vdCBvZiB0aGlzLmdyYXBoLnJvb3RzLnZhbHVlcygpKSB7XG5cdFx0XHRmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcy5ncmFwaC5kZnMocm9vdCkpIHtcblx0XHRcdFx0aWYgKCFub2RlLnJlZ2lzdHJ5SW50ZXJmYWNlTmFtZSkge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IGtleSA9IGAke25vZGUucmVnaXN0cnlJbnRlcmZhY2VOYW1lfTo6JHtub2RlLnNvdXJjZUZpbGV9YDtcblx0XHRcdFx0Y29uc3QgZXhpc3RpbmcgPSBncm91cHMuZ2V0KGtleSk7XG5cdFx0XHRcdGlmIChleGlzdGluZykge1xuXHRcdFx0XHRcdGV4aXN0aW5nLnB1c2gobm9kZSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Z3JvdXBzLnNldChrZXksIFsgbm9kZSBdKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gZ3JvdXBzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlc29sdmUgYSBzb3VyY2UgZmlsZSBwYXRoIHRvIGEgbW9kdWxlIHNwZWNpZmllciByZWxhdGl2ZSB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeSxcblx0ICogc3VpdGFibGUgZm9yIHVzZSBpbiBhIGBkZWNsYXJlIG1vZHVsZSAnLi4uJ2AgYmxvY2suXG5cdCAqL1xuXHRwcml2YXRlIHJlc29sdmVNb2R1bGVQYXRoIChzb3VyY2VGaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGNvbnN0IG91dHB1dEFic29sdXRlID0gcGF0aC5yZXNvbHZlKHRoaXMub3V0cHV0RGlyKTtcblx0XHRjb25zdCBzb3VyY2VBYnNvbHV0ZSA9IHBhdGgucmVzb2x2ZShzb3VyY2VGaWxlKTtcblx0XHRsZXQgcmVsYXRpdmUgPSBwYXRoLnJlbGF0aXZlKG91dHB1dEFic29sdXRlLCBzb3VyY2VBYnNvbHV0ZSk7XG5cdFx0Ly8gUmVtb3ZlIC50cyBleHRlbnNpb247IGtlZXAgLnRzeCBpZiBwcmVzZW50XG5cdFx0aWYgKHJlbGF0aXZlLmVuZHNXaXRoKCcudHMnKSAmJiAhcmVsYXRpdmUuZW5kc1dpdGgoJy50c3gnKSkge1xuXHRcdFx0cmVsYXRpdmUgPSByZWxhdGl2ZS5zbGljZSgwLCAtMyk7XG5cdFx0fVxuXHRcdC8vIENvbnZlcnQgV2luZG93cyBzZXBhcmF0b3JzIHRvIFBPU0lYXG5cdFx0Y29uc3QgcG9zaXhSZWxhdGl2ZSA9IHJlbGF0aXZlLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcblx0XHRyZXR1cm4gcG9zaXhSZWxhdGl2ZTtcblx0fVxufVxuIl19
|
package/lib/graph.js
CHANGED
|
@@ -123,4 +123,4 @@ class TypeGraphImpl {
|
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
exports.TypeGraphImpl = TypeGraphImpl;
|
|
126
|
-
//# sourceMappingURL=
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZ3JhcGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFNYjs7R0FFRztBQUNILE1BQWEsYUFBYTtJQUExQjtRQUNDOzs7Ozs7V0FNRztRQUNILFVBQUssR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN6QyxhQUFRLEdBQTBCLElBQUksR0FBRyxFQUFFLENBQUM7SUFpSTdDLENBQUM7SUEvSEEsT0FBTyxDQUFFLElBQWM7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxRQUFRLENBQUUsTUFBZ0IsRUFBRSxLQUFlO1FBQzFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsUUFBUSxDQUFFLFFBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFFLElBQVk7UUFDM0IsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDM0MsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN4QixPQUFPLElBQUksQ0FBQztZQUNi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LElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM5QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdELE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZUFBZSxDQUFFLElBQWM7UUFDdEMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQy9ELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM5QixNQUFNLE1BQU0sR0FBa0I7WUFDN0IsSUFBSSxFQUFPLElBQUksQ0FBQyxJQUFJO1lBQ3BCLFFBQVEsRUFBRyxJQUFJLENBQUMsUUFBUTtZQUN4QixRQUFRLEVBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUMzRCxRQUFRO1NBQ1IsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztDQUNEO0FBMUlELHNDQTBJQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHtcblx0VHlwZU5vZGUsIFR5cGVHcmFwaCwgSGllcmFyY2h5Tm9kZSBcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogVHJpZS1iYXNlZCB0eXBlIGdyYXBoIGZvciBzdG9yaW5nIE1uZW1vbmljYSB0eXBlIGhpZXJhcmNoeVxuICovXG5leHBvcnQgY2xhc3MgVHlwZUdyYXBoSW1wbCBpbXBsZW1lbnRzIFR5cGVHcmFwaCB7XG5cdC8qKlxuXHQgKiBLZXllZCBieSBmdWxsUGF0aCwgbm90IGJ5IHBsYWluIG5hbWU6IGEgY3VzdG9tIGNvbGxlY3Rpb24ncyByb290IHNoYXJlc1xuXHQgKiBpdHMgcGxhaW4gbmFtZSB3aXRoIGFueSBvdGhlciBjb2xsZWN0aW9uIChvciB0aGUgZGVmYXVsdCB0eXBlcykg4oCUIG9ubHlcblx0ICogdGhlIGBjb2xsZWN0aW9uSWQ6OmAtcHJlZml4ZWQgZnVsbFBhdGgga2VlcHMgdGhlbSBkaXN0aW5jdC4gTmFtZS1rZXlpbmdcblx0ICogc2lsZW50bHkgZHJvcHBlZCB0aGUgZWFybGllciByb290LCBhbmQgd2l0aCBpdCB0aGUgd2hvbGUgc3VidHJlZSwgZnJvbVxuXHQgKiBldmVyeSByb290cy1kcml2ZW4gd2FsayAoZ2VuZXJhdGlvbiwgaGllcmFyY2h5LCB2ZXJib3NlIHRyZWUpLlxuXHQgKi9cblx0cm9vdHM6IE1hcDxzdHJpbmcsIFR5cGVOb2RlPiA9IG5ldyBNYXAoKTtcblx0YWxsVHlwZXM6IE1hcDxzdHJpbmcsIFR5cGVOb2RlPiA9IG5ldyBNYXAoKTtcblxuXHRhZGRSb290IChub2RlOiBUeXBlTm9kZSk6IHZvaWQge1xuXHRcdHRoaXMucm9vdHMuc2V0KG5vZGUuZnVsbFBhdGgsIG5vZGUpO1xuXHRcdHRoaXMuYWxsVHlwZXMuc2V0KG5vZGUuZnVsbFBhdGgsIG5vZGUpO1xuXHR9XG5cblx0YWRkQ2hpbGQgKHBhcmVudDogVHlwZU5vZGUsIGNoaWxkOiBUeXBlTm9kZSk6IHZvaWQge1xuXHRcdHBhcmVudC5jaGlsZHJlbi5zZXQoY2hpbGQubmFtZSwgY2hpbGQpO1xuXHRcdGNoaWxkLnBhcmVudCA9IHBhcmVudDtcblx0XHR0aGlzLmFsbFR5cGVzLnNldChjaGlsZC5mdWxsUGF0aCwgY2hpbGQpO1xuXHR9XG5cblx0ZmluZFR5cGUgKGZ1bGxQYXRoOiBzdHJpbmcpOiBUeXBlTm9kZSB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuYWxsVHlwZXMuZ2V0KGZ1bGxQYXRoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBGaW5kIGEgdHlwZSBieSBuYW1lIChzZWFyY2ggdGhyb3VnaCBhbGwgdHlwZXMsIHJldHVybiBmaXJzdCBtYXRjaClcblx0ICovXG5cdGZpbmRUeXBlQnlOYW1lIChuYW1lOiBzdHJpbmcpOiBUeXBlTm9kZSB8IHVuZGVmaW5lZCB7XG5cdFx0Zm9yIChjb25zdCB0eXBlIG9mIHRoaXMuYWxsVHlwZXMudmFsdWVzKCkpIHtcblx0XHRcdGlmICh0eXBlLm5hbWUgPT09IG5hbWUpIHtcblx0XHRcdFx0cmV0dXJuIHR5cGU7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRnZXRBbGxUeXBlcyAoKTogVHlwZU5vZGVbXSB7XG5cdFx0cmV0dXJuIEFycmF5LmZyb20odGhpcy5hbGxUeXBlcy52YWx1ZXMoKSk7XG5cdH1cblxuXHRjbGVhciAoKTogdm9pZCB7XG5cdFx0dGhpcy5yb290cy5jbGVhcigpO1xuXHRcdHRoaXMuYWxsVHlwZXMuY2xlYXIoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGUgYSBuZXcgVHlwZU5vZGVcblx0ICovXG5cdHN0YXRpYyBjcmVhdGVOb2RlIChcblx0XHRuYW1lOiBzdHJpbmcsXG5cdFx0cGFyZW50OiBUeXBlTm9kZSB8IHVuZGVmaW5lZCxcblx0XHRzb3VyY2VGaWxlOiBzdHJpbmcsXG5cdFx0bGluZTogbnVtYmVyLFxuXHRcdGNvbHVtbjogbnVtYmVyLFxuXHRcdGNvbGxlY3Rpb25JZD86IHN0cmluZ1xuXHQpOiBUeXBlTm9kZSB7XG5cdFx0Y29uc3QgcmVzb2x2ZWRDb2xsZWN0aW9uSWQgPSBjb2xsZWN0aW9uSWQgPz8gcGFyZW50Py5jb2xsZWN0aW9uSWQ7XG5cdFx0Y29uc3QgZnVsbFBhdGggPSBwYXJlbnRcblx0XHRcdD8gYCR7cGFyZW50LmZ1bGxQYXRofS4ke25hbWV9YFxuXHRcdFx0OiByZXNvbHZlZENvbGxlY3Rpb25JZFxuXHRcdFx0XHQ/IGAke3Jlc29sdmVkQ29sbGVjdGlvbklkfTo6JHtuYW1lfWBcblx0XHRcdFx0OiBuYW1lO1xuXHRcdHJldHVybiB7XG5cdFx0XHRuYW1lLFxuXHRcdFx0ZnVsbFBhdGgsXG5cdFx0XHRwcm9wZXJ0aWVzICAgOiBuZXcgTWFwKCksXG5cdFx0XHRwYXJlbnQsXG5cdFx0XHRjaGlsZHJlbiAgICAgOiBuZXcgTWFwKCksXG5cdFx0XHRzb3VyY2VGaWxlLFxuXHRcdFx0bGluZSxcblx0XHRcdGNvbHVtbixcblx0XHRcdGNvbGxlY3Rpb25JZCA6IHJlc29sdmVkQ29sbGVjdGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogVHJhdmVyc2UgdGhlIGdyYXBoIGluIGJyZWFkdGgtZmlyc3Qgb3JkZXJcblx0ICovXG5cdCpiZnMgKCk6IEdlbmVyYXRvcjxUeXBlTm9kZT4ge1xuXHRcdGNvbnN0IHZpc2l0ZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblx0XHRjb25zdCBxdWV1ZTogVHlwZU5vZGVbXSA9IEFycmF5LmZyb20odGhpcy5yb290cy52YWx1ZXMoKSk7XG5cblx0XHR3aGlsZSAocXVldWUubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uc3Qgbm9kZSA9IHF1ZXVlLnNoaWZ0KCkhO1xuXHRcdFx0aWYgKHZpc2l0ZWQuaGFzKG5vZGUuZnVsbFBhdGgpKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXHRcdFx0dmlzaXRlZC5hZGQobm9kZS5mdWxsUGF0aCk7XG5cdFx0XHR5aWVsZCBub2RlO1xuXG5cdFx0XHRmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4udmFsdWVzKCkpIHtcblx0XHRcdFx0cXVldWUucHVzaChjaGlsZCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFRyYXZlcnNlIHRoZSBncmFwaCBpbiBkZXB0aC1maXJzdCBvcmRlclxuXHQgKi9cblx0KmRmcyAobm9kZT86IFR5cGVOb2RlLCB2aXNpdGVkID0gbmV3IFNldDxzdHJpbmc+KCkpOiBHZW5lcmF0b3I8VHlwZU5vZGU+IHtcblx0XHRjb25zdCBzdGFydE5vZGUgPSBub2RlIHx8IHRoaXMucm9vdHMudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuXHRcdGlmICghc3RhcnROb2RlIHx8IHZpc2l0ZWQuaGFzKHN0YXJ0Tm9kZS5mdWxsUGF0aCkpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR2aXNpdGVkLmFkZChzdGFydE5vZGUuZnVsbFBhdGgpO1xuXHRcdHlpZWxkIHN0YXJ0Tm9kZTtcblxuXHRcdGZvciAoY29uc3QgY2hpbGQgb2Ygc3RhcnROb2RlLmNoaWxkcmVuLnZhbHVlcygpKSB7XG5cdFx0XHR5aWVsZCogdGhpcy5kZnMoY2hpbGQsIHZpc2l0ZWQpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBDb252ZXJ0IHRoZSBncmFwaCB0byBhIHN0cnVjdHVyZWQgaGllcmFyY2h5IHN1aXRhYmxlIGZvciBKU09OIG91dHB1dC5cblx0ICovXG5cdHRvSGllcmFyY2h5ICgpOiBIaWVyYXJjaHlOb2RlW10ge1xuXHRcdGNvbnN0IHJvb3RzID0gQXJyYXkuZnJvbSh0aGlzLnJvb3RzLnZhbHVlcygpKTtcblx0XHRjb25zdCByZXN1bHQgPSByb290cy5tYXAocm9vdCA9PiB0aGlzLm5vZGVUb0hpZXJhcmNoeShyb290KSk7XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZWN1cnNpdmVseSBjb252ZXJ0IGEgVHlwZU5vZGUgdG8gYSBIaWVyYXJjaHlOb2RlLlxuXHQgKi9cblx0cHJpdmF0ZSBub2RlVG9IaWVyYXJjaHkgKG5vZGU6IFR5cGVOb2RlKTogSGllcmFyY2h5Tm9kZSB7XG5cdFx0Y29uc3QgY2hpbGRyZW4gPSBBcnJheS5mcm9tKG5vZGUuY2hpbGRyZW4udmFsdWVzKCkpLm1hcChjaGlsZCA9PlxuXHRcdFx0dGhpcy5ub2RlVG9IaWVyYXJjaHkoY2hpbGQpKTtcblx0XHRjb25zdCByZXN1bHQ6IEhpZXJhcmNoeU5vZGUgPSB7XG5cdFx0XHRuYW1lICAgICA6IG5vZGUubmFtZSxcblx0XHRcdGZ1bGxQYXRoIDogbm9kZS5mdWxsUGF0aCxcblx0XHRcdGxvY2F0aW9uIDogYCR7bm9kZS5zb3VyY2VGaWxlfToke25vZGUubGluZX06JHtub2RlLmNvbHVtbn1gLFxuXHRcdFx0Y2hpbGRyZW4sXG5cdFx0fTtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG59XG4iXX0=
|
package/lib/index.js
CHANGED
|
@@ -60,4 +60,4 @@ Object.defineProperty(exports, "watch", { enumerable: true, get: function () { r
|
|
|
60
60
|
Object.defineProperty(exports, "parseArgs", { enumerable: true, get: function () { return cli_1.parseArgs; } });
|
|
61
61
|
// Version from package.json
|
|
62
62
|
exports.VERSION = pkg.version;
|
|
63
|
-
//# sourceMappingURL=
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFYixxREFBdUM7QUFFdkM7Ozs7OztHQU1HO0FBRUgsdUNBQStDO0FBQXRDLDZHQUFBLGlCQUFpQixPQUFBO0FBQzFCLDZEQUEyRDtBQUFsRCx5SEFBQSxrQkFBa0IsT0FBQTtBQUMzQixpQ0FBd0M7QUFBL0Isc0dBQUEsYUFBYSxPQUFBO0FBQ3RCLHlDQUE2QztBQUFwQywyR0FBQSxjQUFjLE9BQUE7QUFDdkIsbUNBQXVDO0FBQTlCLHFHQUFBLFdBQVcsT0FBQTtBQWlCcEIsa0JBQWtCO0FBQ2xCLDZCQUVlO0FBRGQsMkZBQUEsSUFBSSxPQUFBO0FBQUUsMEZBQUEsR0FBRyxPQUFBO0FBQUUsNEZBQUEsS0FBSyxPQUFBO0FBQUUsZ0dBQUEsU0FBUyxPQUFBO0FBRzVCLDRCQUE0QjtBQUNmLFFBQUEsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCAqIGFzIHBrZyBmcm9tICcuLi9wYWNrYWdlLmpzb24nO1xuXG4vKipcbiAqIFRhY3RpY2EgLSBUeXBlU2NyaXB0IExhbmd1YWdlIFNlcnZpY2UgUGx1Z2luIGZvciBNbmVtb25pY2FcbiAqXG4gKiBHZW5lcmF0ZXMgdHlwZSBkZWZpbml0aW9ucyBmb3IgTW5lbW9uaWNhJ3MgZHluYW1pYyBuZXN0ZWQgY29uc3RydWN0b3JzLFxuICogZW5hYmxpbmcgVHlwZVNjcmlwdCB0byB1bmRlcnN0YW5kIHJ1bnRpbWUgdHlwZSBoaWVyYXJjaGllcyBjcmVhdGVkIHRocm91Z2hcbiAqIGRlZmluZSgpIGFuZCBkZWNvcmF0ZSgpIGNhbGxzLlxuICovXG5cbmV4cG9ydCB7IE1uZW1vbmljYUFuYWx5emVyIH0gZnJvbSAnLi9hbmFseXplcic7XG5leHBvcnQgeyBUb3BvbG9naWNhQW5hbHl6ZXIgfSBmcm9tICcuL3RvcG9sb2dpY2EtYW5hbHl6ZXInO1xuZXhwb3J0IHsgVHlwZUdyYXBoSW1wbCB9IGZyb20gJy4vZ3JhcGgnO1xuZXhwb3J0IHsgVHlwZXNHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcic7XG5leHBvcnQgeyBUeXBlc1dyaXRlciB9IGZyb20gJy4vd3JpdGVyJztcblxuXG5leHBvcnQgdHlwZSB7XG5cdFRhY3RpY2FDb25maWcsXG5cdFR5cGVOb2RlLFxuXHRUeXBlR3JhcGgsXG5cdFByb3BlcnR5SW5mbyxcblx0QW5hbHl6ZVJlc3VsdCxcblx0QW5hbHl6ZUVycm9yLFxuXHRHZW5lcmF0ZWRUeXBlcyxcblx0RGVmaW5pdGlvbkluZm8sXG5cdFVzYWdlSW5mbyxcblx0RGVmaW5pdGlvbnNKc29uLFxuXHRVc2FnZXNKc29uLFxufSBmcm9tICcuL3R5cGVzJztcblxuLy8gQ0xJIGVudHJ5IHBvaW50XG5leHBvcnQge1xuXHRtYWluLCBydW4sIHdhdGNoLCBwYXJzZUFyZ3MgXG59IGZyb20gJy4vY2xpJztcblxuLy8gVmVyc2lvbiBmcm9tIHBhY2thZ2UuanNvblxuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBwa2cudmVyc2lvbjtcbiJdfQ==
|
|
@@ -506,4 +506,4 @@ class TopologicaAnalyzer {
|
|
|
506
506
|
}
|
|
507
507
|
}
|
|
508
508
|
exports.TopologicaAnalyzer = TopologicaAnalyzer;
|
|
509
|
-
//# sourceMappingURL=topologica-analyzer.js.map
|
|
509
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wb2xvZ2ljYS1hbmFseXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90b3BvbG9naWNhLWFuYWx5emVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWIsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QiwrQ0FBaUM7QUFJakMsbUNBQXdDO0FBRXhDOzs7Ozs7R0FNRztBQUNILE1BQWEsa0JBQWtCO0lBQS9CO1FBQ1MsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQUN0QixVQUFLLEdBQUcsSUFBSSxxQkFBYSxFQUFFLENBQUM7SUF5aUJyQyxDQUFDO0lBdmlCQTs7T0FFRztJQUNILGdCQUFnQixDQUFFLGFBQXFCO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQTZCLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDL0QsT0FBTyxFQUFFLEtBQUssRUFBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlELENBQUM7UUFFRCxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDRCQUE0QixhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzlELE9BQU8sRUFBRSxLQUFLLEVBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM5RCxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFh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LENBQUM7Z0JBQ2pCLEtBQUssU0FBUztvQkFDYixPQUFPLFNBQVMsQ0FBQztZQUNsQixDQUFDO1FBQ0YsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3BCLENBQUM7Q0FDRDtBQTNpQkQsZ0RBMmlCQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtcblx0VHlwZU5vZGUsIFByb3BlcnR5SW5mbywgQ29uc3RydWN0b3JQYXJhbUluZm8gXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgVHlwZUdyYXBoSW1wbCB9IGZyb20gJy4vZ3JhcGgnO1xuXG4vKipcbiAqIEFuYWx5emVyIGZvciBUb3BvbG9naWNhIGRpcmVjdG9yeS1iYXNlZCB0eXBlIGRlZmluaXRpb25zXG4gKiBTY2FucyBkaXJlY3Rvcnkgc3RydWN0dXJlcyB0byBjcmVhdGUgdHlwZSBoaWVyYXJjaGllcyBsaWtlOlxuICogYWktdHlwZXMvU2VudGllbmNlL0NvbnNjaW91c25lc3MvRW1wYXRoeS9HcmF0aXR1ZGUvXG4gKiBcbiAqIE5vdyB3aXRoIEFTVC1iYXNlZCBwcm9wZXJ0eSBleHRyYWN0aW9uIGZyb20gVHlwZVNjcmlwdC9KYXZhU2NyaXB0IGZpbGVzXG4gKi9cbmV4cG9ydCBjbGFzcyBUb3BvbG9naWNhQW5hbHl6ZXIge1xuXHRwcml2YXRlIGVycm9yczogc3RyaW5nW10gPSBbXTtcblx0cHJpdmF0ZSBncmFwaCA9IG5ldyBUeXBlR3JhcGhJbXBsKCk7XG5cblx0LyoqXG5cdCAqIEFuYWx5emUgYSBkaXJlY3Rvcnkgc3RydWN0dXJlIGZvciB0b3BvbG9naWNhIHR5cGUgZGVmaW5pdGlvbnNcblx0ICovXG5cdGFuYWx5emVEaXJlY3RvcnkgKGRpcmVjdG9yeVBhdGg6IHN0cmluZyk6IHsgdHlwZXM6IE1hcDxzdHJpbmcsIFR5cGVOb2RlPiwgZXJyb3JzOiBzdHJpbmdbXSB9IHtcblx0XHR0aGlzLmVycm9ycyA9IFtdO1xuXHRcdFxuXHRcdGlmICghZnMuZXhpc3RzU3luYyhkaXJlY3RvcnlQYXRoKSkge1xuXHRcdFx0dGhpcy5lcnJvcnMucHVzaChgRGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0OiAke2RpcmVjdG9yeVBhdGh9YCk7XG5cdFx0XHRyZXR1cm4geyB0eXBlcyA6IHRoaXMuZ3JhcGguYWxsVHlwZXMsIGVycm9ycyA6IHRoaXMuZXJyb3JzIH07XG5cdFx0fVxuXG5cdFx0aWYgKCFmcy5zdGF0U3luYyhkaXJlY3RvcnlQYXRoKS5pc0RpcmVjdG9yeSgpKSB7XG5cdFx0XHR0aGlzLmVycm9ycy5wdXNoKGBQYXRoIGlzIG5vdCBhIGRpcmVjdG9yeTogJHtkaXJlY3RvcnlQYXRofWApO1xuXHRcdFx0cmV0dXJuIHsgdHlwZXMgOiB0aGlzLmdyYXBoLmFsbFR5cGVzLCBlcnJvcnMgOiB0aGlzLmVycm9ycyB9O1xuXHRcdH1cblxuXHRcdHRoaXMuc2NhbkRpcmVjdG9yeShkaXJlY3RvcnlQYXRoLCB1bmRlZmluZWQsIGRpcmVjdG9yeVBhdGgpO1xuXHRcdFxuXHRcdHJldHVybiB7XG5cdFx0XHR0eXBlcyAgOiB0aGlzLmdyYXBoLmFsbFR5cGVzLFxuXHRcdFx0ZXJyb3JzIDogdGhpcy5lcnJvcnMsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZWN1cnNpdmVseSBzY2FuIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgdG8gYnVpbGQgdHlwZSBoaWVyYXJjaHlcblx0ICovXG5cdHByaXZhdGUgc2NhbkRpcmVjdG9yeSAoY3VycmVudFBhdGg6IHN0cmluZywgcGFyZW50Tm9kZTogVHlwZU5vZGUgfCB1bmRlZmluZWQsIHJvb3RQYXRoOiBzdHJpbmcpOiB2b2lkIHtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgZW50cmllcyA9IGZzLnJlYWRkaXJTeW5jKGN1cnJlbnRQYXRoLCB7IHdpdGhGaWxlVHlwZXMgOiB0cnVlIH0pO1xuXHRcdFx0XG5cdFx0XHRmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcblx0XHRcdFx0aWYgKGVudHJ5LmlzRGlyZWN0b3J5KCkpIHtcblx0XHRcdFx0XHQvLyBDcmVhdGUgdHlwZSBub2RlIGZvciB0aGlzIGRpcmVjdG9yeVxuXHRcdFx0XHRcdGNvbnN0IHR5cGVOYW1lID0gZW50cnkubmFtZTtcblx0XHRcdFx0XHRjb25zdCBmdWxsUGF0aCA9IHBhcmVudE5vZGUgPyBgJHtwYXJlbnROb2RlLmZ1bGxQYXRofS4ke3R5cGVOYW1lfWAgOiB0eXBlTmFtZTtcblx0XHRcdFx0XHRjb25zdCBkaXJQYXRoID0gcGF0aC5qb2luKGN1cnJlbnRQYXRoLCBlbnRyeS5uYW1lKTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHQvLyBFeHRyYWN0IHByb3BlcnRpZXMgYW5kIGNvbnN0cnVjdG9yIHBhcmFtcyBmcm9tIHRoZSBoYW5kbGVyIGZpbGUgaWYgaXQgZXhpc3RzXG5cdFx0XHRcdFx0Y29uc3Qge1xuXHRcdFx0XHRcdFx0cHJvcGVydGllcywgY29uc3RydWN0b3JQYXJhbXMsIGhhbmRsZXJMb2NhdGlvbiBcblx0XHRcdFx0XHR9ID0gdGhpcy5leHRyYWN0UHJvcGVydGllc0Zyb21EaXIoZGlyUGF0aCk7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Ly8gQ3JlYXRlIHRoZSB0eXBlIG5vZGUgd2l0aCBwcm9wZXIgc291cmNlIGxvY2F0aW9uIGZvciBHbyB0byBEZWZpbml0aW9uXG5cdFx0XHRcdFx0Y29uc3QgdHlwZU5vZGU6IFR5cGVOb2RlID0ge1xuXHRcdFx0XHRcdFx0bmFtZSAgICAgICAgICAgICAgOiB0eXBlTmFtZSxcblx0XHRcdFx0XHRcdGZ1bGxQYXRoICAgICAgICAgIDogZnVsbFBhdGgsXG5cdFx0XHRcdFx0XHRwcm9wZXJ0aWVzICAgICAgICA6IHByb3BlcnRpZXMsXG5cdFx0XHRcdFx0XHRjb25zdHJ1Y3RvclBhcmFtcyA6IGNvbnN0cnVjdG9yUGFyYW1zLFxuXHRcdFx0XHRcdFx0cGFyZW50ICAgICAgICAgICAgOiBwYXJlbnROb2RlLFxuXHRcdFx0XHRcdFx0Y2hpbGRyZW4gICAgICAgICAgOiBuZXcgTWFwKCksXG5cdFx0XHRcdFx0XHRzb3VyY2VGaWxlICAgICAgICA6IGhhbmRsZXJMb2NhdGlvbj8uZmlsZVBhdGggfHwgZGlyUGF0aCxcblx0XHRcdFx0XHRcdGxpbmUgICAgICAgICAgICAgIDogaGFuZGxlckxvY2F0aW9uPy5saW5lIHx8IDAsXG5cdFx0XHRcdFx0XHRjb2x1bW4gICAgICAgICAgICA6IGhhbmRsZXJMb2NhdGlvbj8uY29sdW1uIHx8IDAsXG5cdFx0XHRcdFx0XHRjb25zdHJ1Y3Rvck5hbWUgICA6IHR5cGVOYW1lXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcblx0XHRcdFx0XHQvLyBBZGQgdG8gZ3JhcGhcblx0XHRcdFx0XHRpZiAocGFyZW50Tm9kZSkge1xuXHRcdFx0XHRcdFx0dGhpcy5ncmFwaC5hZGRDaGlsZChwYXJlbnROb2RlLCB0eXBlTm9kZSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vIEFkZCBhcyByb290IHR5cGVcblx0XHRcdFx0XHRcdHRoaXMuZ3JhcGguYWRkUm9vdCh0eXBlTm9kZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdC8vIFNjYW4gY2hpbGRyZW4gb2YgdGhpcyBkaXJlY3Rvcnlcblx0XHRcdFx0XHR0aGlzLnNjYW5EaXJlY3RvcnkoZGlyUGF0aCwgdHlwZU5vZGUsIHJvb3RQYXRoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHR0aGlzLmVycm9ycy5wdXNoKGBFcnJvciBzY2FubmluZyBkaXJlY3RvcnkgJHtjdXJyZW50UGF0aH06ICR7KGVycm9yIGFzIEVycm9yKS5tZXNzYWdlfWApO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBFeHRyYWN0IHByb3BlcnRpZXMgZnJvbSBhIGRpcmVjdG9yeSdzIGluZGV4IGZpbGVcblx0ICogU3VwcG9ydHMgYm90aCAudHMgYW5kIC5qcyBmaWxlc1xuXHQgKi9cblx0cHJpdmF0ZSBleHRyYWN0UHJvcGVydGllc0Zyb21EaXIgKGRpclBhdGg6IHN0cmluZyk6IHtcblx0XHRwcm9wZXJ0aWVzOiBNYXA8c3RyaW5nLCBQcm9wZXJ0eUluZm8+O1xuXHRcdGNvbnN0cnVjdG9yUGFyYW1zPzogQ29uc3RydWN0b3JQYXJhbUluZm9bXTtcblx0XHRoYW5kbGVyTG9jYXRpb24/OiB7IGZpbGVQYXRoOiBzdHJpbmc7IGxpbmU6IG51bWJlcjsgY29sdW1uOiBudW1iZXIgfTtcblx0fSB7XG5cdFx0Y29uc3QgcHJvcGVydGllcyA9IG5ldyBNYXA8c3RyaW5nLCBQcm9wZXJ0eUluZm8+KCk7XG5cdFx0bGV0IGNvbnN0cnVjdG9yUGFyYW1zOiBDb25zdHJ1Y3RvclBhcmFtSW5mb1tdIHwgdW5kZWZpbmVkO1xuXHRcdFxuXHRcdC8vIENoZWNrIGZvciBUeXBlU2NyaXB0IGZpbGUgZmlyc3QsIHRoZW4gSmF2YVNjcmlwdFxuXHRcdGNvbnN0IHRzRmlsZSA9IHBhdGguam9pbihkaXJQYXRoLCAnaW5kZXgudHMnKTtcblx0XHRjb25zdCBqc0ZpbGUgPSBwYXRoLmpvaW4oZGlyUGF0aCwgJ2luZGV4LmpzJyk7XG5cdFx0XG5cdFx0bGV0IHRhcmdldEZpbGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0XHRcblx0XHRpZiAoZnMuZXhpc3RzU3luYyh0c0ZpbGUpKSB7XG5cdFx0XHR0YXJnZXRGaWxlID0gdHNGaWxlO1xuXHRcdH0gZWxzZSBpZiAoZnMuZXhpc3RzU3luYyhqc0ZpbGUpKSB7XG5cdFx0XHR0YXJnZXRGaWxlID0ganNGaWxlO1xuXHRcdH1cblx0XHRcblx0XHRpZiAoIXRhcmdldEZpbGUpIHtcblx0XHRcdHJldHVybiB7IHByb3BlcnRpZXMgfTtcblx0XHR9XG5cdFx0XG5cdFx0Ly8gRGVmYXVsdCBsb2NhdGlvbiBwb2ludHMgdG8gdGhlIGluZGV4IGZpbGUgKHdpbGwgYmUgdXBkYXRlZCBpZiBoYW5kbGVyIGZvdW5kKVxuXHRcdGxldCBoYW5kbGVyTG9jYXRpb246IHsgZmlsZVBhdGg6IHN0cmluZzsgbGluZTogbnVtYmVyOyBjb2x1bW46IG51bWJlciB9IHwgdW5kZWZpbmVkO1xuXHRcdFxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBjb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKHRhcmdldEZpbGUsICd1dGYtOCcpO1xuXHRcdFx0Y29uc3Qgc291cmNlRmlsZSA9IHRzLmNyZWF0ZVNvdXJjZUZpbGUoXG5cdFx0XHRcdHRhcmdldEZpbGUsXG5cdFx0XHRcdGNvbnRlbnQsXG5cdFx0XHRcdHRzLlNjcmlwdFRhcmdldC5MYXRlc3QsXG5cdFx0XHRcdHRydWVcblx0XHRcdCk7XG5cdFx0XHRcblx0XHRcdC8vIENvbGxlY3QgdHlwZSBhbGlhc2VzIGZyb20gdGhlIGZpbGUgKGUuZy4sIFNlbnRpZW5jZURhdGEgPSB7IC4uLiB9KVxuXHRcdFx0Y29uc3QgdHlwZUFsaWFzZXMgPSB0aGlzLmNvbGxlY3RUeXBlQWxpYXNlcyhzb3VyY2VGaWxlKTtcblx0XHRcdFxuXHRcdFx0Ly8gRmluZCBoYW5kbGVyIGZ1bmN0aW9uIGFuZCBleHRyYWN0IHByb3BlcnR5IGFzc2lnbm1lbnRzIGFuZCBjb25zdHJ1Y3RvciBwYXJhbXNcblx0XHRcdGNvbnN0IHJlc3VsdCA9IHRoaXMuZXh0cmFjdFByb3BlcnRpZXNGcm9tU291cmNlRmlsZShzb3VyY2VGaWxlLCBwcm9wZXJ0aWVzLCB0eXBlQWxpYXNlcyk7XG5cdFx0XHRjb25zdHJ1Y3RvclBhcmFtcyA9IHJlc3VsdC5jb25zdHJ1Y3RvclBhcmFtcztcblx0XHRcdFxuXHRcdFx0Ly8gVXNlIHRoZSBoYW5kbGVyIGZ1bmN0aW9uIGxvY2F0aW9uIGlmIGZvdW5kXG5cdFx0XHRpZiAocmVzdWx0LmhhbmRsZXJMb2NhdGlvbikge1xuXHRcdFx0XHRoYW5kbGVyTG9jYXRpb24gPSByZXN1bHQuaGFuZGxlckxvY2F0aW9uO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdHRoaXMuZXJyb3JzLnB1c2goYEVycm9yIHBhcnNpbmcgJHt0YXJnZXRGaWxlfTogJHsoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2V9YCk7XG5cdFx0fVxuXHRcdFxuXHRcdHJldHVybiB7IHByb3BlcnRpZXMsIGNvbnN0cnVjdG9yUGFyYW1zLCBoYW5kbGVyTG9jYXRpb24gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb2xsZWN0IHR5cGUgYWxpYXNlcyBmcm9tIHNvdXJjZSBmaWxlXG5cdCAqIGUuZy4sIGV4cG9ydCB0eXBlIFNlbnRpZW5jZURhdGEgPSB7IGF3YXJlbmVzcz86IHN0cmluZzsgfVxuXHQgKi9cblx0cHJpdmF0ZSBjb2xsZWN0VHlwZUFsaWFzZXMgKHNvdXJjZUZpbGU6IHRzLlNvdXJjZUZpbGUpOiBNYXA8c3RyaW5nLCB0cy5UeXBlTm9kZT4ge1xuXHRcdGNvbnN0IHR5cGVBbGlhc2VzID0gbmV3IE1hcDxzdHJpbmcsIHRzLlR5cGVOb2RlPigpO1xuXHRcdFxuXHRcdGNvbnN0IHZpc2l0ID0gKG5vZGU6IHRzLk5vZGUpOiB2b2lkID0+IHtcblx0XHRcdC8vIExvb2sgZm9yIHR5cGUgYWxpYXMgZGVjbGFyYXRpb25zOiBleHBvcnQgdHlwZSBOYW1lID0gVHlwZTtcblx0XHRcdGlmICh0cy5pc1R5cGVBbGlhc0RlY2xhcmF0aW9uKG5vZGUpKSB7XG5cdFx0XHRcdGNvbnN0IG5hbWUgPSBub2RlLm5hbWUudGV4dDtcblx0XHRcdFx0dHlwZUFsaWFzZXMuc2V0KG5hbWUsIG5vZGUudHlwZSk7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdHRzLmZvckVhY2hDaGlsZChub2RlLCB2aXNpdCk7XG5cdFx0fTtcblx0XHRcblx0XHR2aXNpdChzb3VyY2VGaWxlKTtcblx0XHRyZXR1cm4gdHlwZUFsaWFzZXM7XG5cdH1cblxuXHQvKipcblx0ICogRXh0cmFjdCBwcm9wZXJ0eSBhc3NpZ25tZW50cyBmcm9tIGEgc291cmNlIGZpbGVcblx0ICogUmV0dXJucyBjb25zdHJ1Y3RvciBwYXJhbWV0ZXJzIGFuZCBoYW5kbGVyIGxvY2F0aW9uIGlmIGZvdW5kXG5cdCAqL1xuXHRwcml2YXRlIGV4dHJhY3RQcm9wZXJ0aWVzRnJvbVNvdXJjZUZpbGUgKFxuXHRcdHNvdXJjZUZpbGU6IHRzLlNvdXJjZUZpbGUsXG5cdFx0cHJvcGVydGllczogTWFwPHN0cmluZywgUHJvcGVydHlJbmZvPixcblx0XHR0eXBlQWxpYXNlcz86IE1hcDxzdHJpbmcsIHRzLlR5cGVOb2RlPlxuXHQpOiB7XG5cdFx0Y29uc3RydWN0b3JQYXJhbXM/OiBDb25zdHJ1Y3RvclBhcmFtSW5mb1tdO1xuXHRcdGhhbmRsZXJMb2NhdGlvbj86IHsgZmlsZVBhdGg6IHN0cmluZzsgbGluZTogbnVtYmVyOyBjb2x1bW46IG51bWJlciB9O1xuXHR9IHtcblx0XHRsZXQgY29uc3RydWN0b3JQYXJhbXM6IENvbnN0cnVjdG9yUGFyYW1JbmZvW10gfCB1bmRlZmluZWQ7XG5cdFx0bGV0IGhhbmRsZXJMb2NhdGlvbjogeyBmaWxlUGF0aDogc3RyaW5nOyBsaW5lOiBudW1iZXI7IGNvbHVtbjogbnVtYmVyIH0gfCB1bmRlZmluZWQ7XG5cdFx0XG5cdFx0Y29uc3QgdmlzaXQgPSAobm9kZTogdHMuTm9kZSk6IHZvaWQgPT4ge1xuXHRcdFx0Ly8gTG9vayBmb3IgZXhwb3J0ZWQgZnVuY3Rpb24gZGVjbGFyYXRpb25zICh0b3BvbG9naWNhIGNvbnZlbnRpb246IG9uZSBleHBvcnRlZCBmdW5jdGlvbiBwZXIgZmlsZSlcblx0XHRcdGlmICh0cy5pc0Z1bmN0aW9uRGVjbGFyYXRpb24obm9kZSkgJiYgbm9kZS5uYW1lKSB7XG5cdFx0XHRcdC8vIENoZWNrIGlmIGl0J3MgZXhwb3J0ZWRcblx0XHRcdFx0Y29uc3QgaXNFeHBvcnRlZCA9IG5vZGUubW9kaWZpZXJzPy5zb21lKG0gPT4gbS5raW5kID09PSB0cy5TeW50YXhLaW5kLkV4cG9ydEtleXdvcmQpO1xuXHRcdFx0XHRcblx0XHRcdFx0aWYgKGlzRXhwb3J0ZWQpIHtcblx0XHRcdFx0XHR0aGlzLmV4dHJhY3RUaGlzUHJvcGVydGllcyhub2RlLCBwcm9wZXJ0aWVzKTtcblx0XHRcdFx0XHQvLyBFeHRyYWN0IGNvbnN0cnVjdG9yIHBhcmFtcyBhbmQgbG9jYXRpb24gZnJvbSB0aGUgZXhwb3J0ZWQgZnVuY3Rpb25cblx0XHRcdFx0XHRpZiAoIWNvbnN0cnVjdG9yUGFyYW1zKSB7XG5cdFx0XHRcdFx0XHRjb25zdHJ1Y3RvclBhcmFtcyA9IHRoaXMuZXh0cmFjdENvbnN0cnVjdG9yUGFyYW1zKG5vZGUsIHR5cGVBbGlhc2VzKTtcblx0XHRcdFx0XHRcdC8vIENhcHR1cmUgdGhlIGZ1bmN0aW9uIGxvY2F0aW9uXG5cdFx0XHRcdFx0XHRjb25zdCB7IGxpbmUsIGNoYXJhY3RlciB9ID0gdHMuZ2V0TGluZUFuZENoYXJhY3Rlck9mUG9zaXRpb24oXG5cdFx0XHRcdFx0XHRcdHNvdXJjZUZpbGUsXG5cdFx0XHRcdFx0XHRcdG5vZGUuZ2V0U3RhcnQoc291cmNlRmlsZSlcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRoYW5kbGVyTG9jYXRpb24gPSB7XG5cdFx0XHRcdFx0XHRcdGZpbGVQYXRoIDogc291cmNlRmlsZS5maWxlTmFtZSxcblx0XHRcdFx0XHRcdFx0bGluZSAgICAgOiBsaW5lICsgMSwgLy8gMS1iYXNlZFxuXHRcdFx0XHRcdFx0XHRjb2x1bW4gICA6IGNoYXJhY3RlciArIDEgLy8gMS1iYXNlZFxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vIEFsc28gY2hlY2sgZnVuY3Rpb24gZXhwcmVzc2lvbnMvYXJyb3cgZnVuY3Rpb25zIGFzc2lnbmVkIHRvIGV4cG9ydHNcblx0XHRcdGVsc2UgaWYgKHRzLmlzRnVuY3Rpb25FeHByZXNzaW9uKG5vZGUpIHx8IHRzLmlzQXJyb3dGdW5jdGlvbihub2RlKSkge1xuXHRcdFx0XHR0aGlzLmV4dHJhY3RUaGlzUHJvcGVydGllcyhub2RlLCBwcm9wZXJ0aWVzKTtcblx0XHRcdFx0Ly8gRXh0cmFjdCBjb25zdHJ1Y3RvciBwYXJhbXMgZnJvbSBub24tZXhwb3J0ZWQgZnVuY3Rpb25zIHRvb1xuXHRcdFx0XHRpZiAoIWNvbnN0cnVjdG9yUGFyYW1zKSB7XG5cdFx0XHRcdFx0Y29uc3RydWN0b3JQYXJhbXMgPSB0aGlzLmV4dHJhY3RDb25zdHJ1Y3RvclBhcmFtcyhub2RlLCB0eXBlQWxpYXNlcyk7XG5cdFx0XHRcdFx0Ly8gQ2FwdHVyZSB0aGUgZnVuY3Rpb24gbG9jYXRpb25cblx0XHRcdFx0XHRjb25zdCB7IGxpbmUsIGNoYXJhY3RlciB9ID0gdHMuZ2V0TGluZUFuZENoYXJhY3Rlck9mUG9zaXRpb24oXG5cdFx0XHRcdFx0XHRzb3VyY2VGaWxlLFxuXHRcdFx0XHRcdFx0bm9kZS5nZXRTdGFydChzb3VyY2VGaWxlKVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0aGFuZGxlckxvY2F0aW9uID0ge1xuXHRcdFx0XHRcdFx0ZmlsZVBhdGggOiBzb3VyY2VGaWxlLmZpbGVOYW1lLFxuXHRcdFx0XHRcdFx0bGluZSAgICAgOiBsaW5lICsgMSwgLy8gMS1iYXNlZFxuXHRcdFx0XHRcdFx0Y29sdW1uICAgOiBjaGFyYWN0ZXIgKyAxIC8vIDEtYmFzZWRcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdHRzLmZvckVhY2hDaGlsZChub2RlLCB2aXNpdCk7XG5cdFx0fTtcblx0XHRcblx0XHR2aXNpdChzb3VyY2VGaWxlKTtcblx0XHRyZXR1cm4geyBjb25zdHJ1Y3RvclBhcmFtcywgaGFuZGxlckxvY2F0aW9uIH07XG5cdH1cblxuXHQvKipcblx0ICogRXh0cmFjdCBgdGhpcy5wcm9wZXJ0eSA9IHZhbHVlYCBhc3NpZ25tZW50cyBmcm9tIGEgZnVuY3Rpb24gYm9keVxuXHQgKi9cblx0cHJpdmF0ZSBleHRyYWN0VGhpc1Byb3BlcnRpZXMgKFxuXHRcdGZ1bmM6IHRzLkZ1bmN0aW9uRGVjbGFyYXRpb24gfCB0cy5GdW5jdGlvbkV4cHJlc3Npb24gfCB0cy5BcnJvd0Z1bmN0aW9uLFxuXHRcdHByb3BlcnRpZXM6IE1hcDxzdHJpbmcsIFByb3BlcnR5SW5mbz5cblx0KTogdm9pZCB7XG5cdFx0Y29uc3QgeyBib2R5IH0gPSBmdW5jO1xuXHRcdGlmICghYm9keSkgcmV0dXJuO1xuXHRcdFxuXHRcdGNvbnN0IHZpc2l0U3RhdGVtZW50cyA9IChub2RlOiB0cy5Ob2RlKTogdm9pZCA9PiB7XG5cdFx0XHQvLyBIYW5kbGUgZXhwcmVzc2lvbiBzdGF0ZW1lbnRzXG5cdFx0XHRpZiAodHMuaXNFeHByZXNzaW9uU3RhdGVtZW50KG5vZGUpKSB7XG5cdFx0XHRcdGNvbnN0IGV4cHIgPSBub2RlLmV4cHJlc3Npb247XG5cdFx0XHRcdFxuXHRcdFx0XHQvLyBDaGVjayBmb3IgdGhpcy5wcm9wID0gdmFsdWVcblx0XHRcdFx0aWYgKHRzLmlzQmluYXJ5RXhwcmVzc2lvbihleHByKSAmJiBcblx0XHRcdFx0ICAgIGV4cHIub3BlcmF0b3JUb2tlbi5raW5kID09PSB0cy5TeW50YXhLaW5kLkVxdWFsc1Rva2VuKSB7XG5cdFx0XHRcdFx0Y29uc3QgeyBsZWZ0IH0gPSBleHByO1xuXHRcdFx0XHRcdGNvbnN0IHsgcmlnaHQgfSA9IGV4cHI7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0Ly8gQ2hlY2sgaWYgbGVmdCBzaWRlIGlzIHRoaXMucHJvcGVydHlcblx0XHRcdFx0XHRpZiAodHMuaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24obGVmdCkgJiZcblx0XHRcdFx0XHQgICAgbGVmdC5leHByZXNzaW9uLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuVGhpc0tleXdvcmQpIHtcblx0XHRcdFx0XHRcdGNvbnN0IHByb3BOYW1lID0gbGVmdC5uYW1lLnRleHQ7XG5cdFx0XHRcdFx0XHRjb25zdCBwcm9wVHlwZSA9IHRoaXMuaW5mZXJUeXBlKHJpZ2h0KTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0cHJvcGVydGllcy5zZXQocHJvcE5hbWUsIHtcblx0XHRcdFx0XHRcdFx0bmFtZSAgICAgOiBwcm9wTmFtZSxcblx0XHRcdFx0XHRcdFx0dHlwZSAgICAgOiBwcm9wVHlwZSxcblx0XHRcdFx0XHRcdFx0b3B0aW9uYWwgOiBmYWxzZSxcblx0XHRcdFx0XHRcdFx0cmVhZG9ubHkgOiBmYWxzZVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQvLyBDaGVjayBmb3IgT2JqZWN0LmFzc2lnbih0aGlzLCB7Li4ufSlcblx0XHRcdFx0aWYgKHRzLmlzQ2FsbEV4cHJlc3Npb24oZXhwcikpIHtcblx0XHRcdFx0XHRjb25zdCBjYWxsRXhwciA9IGV4cHI7XG5cdFx0XHRcdFx0aWYgKHRoaXMuaXNPYmplY3RBc3NpZ25DYWxsKGNhbGxFeHByKSkge1xuXHRcdFx0XHRcdFx0dGhpcy5leHRyYWN0RnJvbU9iamVjdEFzc2lnbihjYWxsRXhwciwgcHJvcGVydGllcyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdHRzLmZvckVhY2hDaGlsZChub2RlLCB2aXNpdFN0YXRlbWVudHMpO1xuXHRcdH07XG5cdFx0XG5cdFx0dmlzaXRTdGF0ZW1lbnRzKGJvZHkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrIGlmIGEgY2FsbCBleHByZXNzaW9uIGlzIE9iamVjdC5hc3NpZ24odGhpcywgLi4uKVxuXHQgKi9cblx0cHJpdmF0ZSBpc09iamVjdEFzc2lnbkNhbGwgKGNhbGxFeHByOiB0cy5DYWxsRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IGV4cHIgPSBjYWxsRXhwci5leHByZXNzaW9uO1xuXHRcdGlmICghdHMuaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24oZXhwcikpIHJldHVybiBmYWxzZTtcblx0XHRcblx0XHRjb25zdCBvYmpOYW1lID0gdHMuaXNJZGVudGlmaWVyKGV4cHIuZXhwcmVzc2lvbikgPyBleHByLmV4cHJlc3Npb24udGV4dCA6IG51bGw7XG5cdFx0Y29uc3QgbWV0aG9kTmFtZSA9IGV4cHIubmFtZS50ZXh0O1xuXHRcdFxuXHRcdGlmIChvYmpOYW1lID09PSAnT2JqZWN0JyAmJiBtZXRob2ROYW1lID09PSAnYXNzaWduJykge1xuXHRcdFx0Y29uc3QgZmlyc3RBcmcgPSBjYWxsRXhwci5hcmd1bWVudHNbIDAgXTtcblx0XHRcdGlmIChmaXJzdEFyZyAmJiBmaXJzdEFyZy5raW5kID09PSB0cy5TeW50YXhLaW5kLlRoaXNLZXl3b3JkKSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHQvKipcblx0ICogRXh0cmFjdCBwcm9wZXJ0aWVzIGZyb20gT2JqZWN0LmFzc2lnbih0aGlzLCBkYXRhKSBwYXR0ZXJuXG5cdCAqL1xuXHRwcml2YXRlIGV4dHJhY3RGcm9tT2JqZWN0QXNzaWduIChcblx0XHRjYWxsRXhwcjogdHMuQ2FsbEV4cHJlc3Npb24sXG5cdFx0cHJvcGVydGllczogTWFwPHN0cmluZywgUHJvcGVydHlJbmZvPlxuXHQpOiB2b2lkIHtcblx0XHQvLyBMb29rIGZvciB0aGUgZGF0YSBhcmd1bWVudCAoc2Vjb25kIGFyZ3VtZW50KVxuXHRcdGNvbnN0IGRhdGFBcmcgPSBjYWxsRXhwci5hcmd1bWVudHNbIDEgXTtcblx0XHRpZiAoIWRhdGFBcmcpIHJldHVybjtcblx0XHRcblx0XHQvLyBJZiBpdCdzIGFuIG9iamVjdCBsaXRlcmFsLCBleHRyYWN0IHByb3BlcnRpZXNcblx0XHRpZiAodHMuaXNPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihkYXRhQXJnKSkge1xuXHRcdFx0Zm9yIChjb25zdCBwcm9wIG9mIGRhdGFBcmcucHJvcGVydGllcykge1xuXHRcdFx0XHRpZiAodHMuaXNQcm9wZXJ0eUFzc2lnbm1lbnQocHJvcCkgJiYgdHMuaXNJZGVudGlmaWVyKHByb3AubmFtZSkpIHtcblx0XHRcdFx0XHRjb25zdCBwcm9wTmFtZSA9IHByb3AubmFtZS50ZXh0O1xuXHRcdFx0XHRcdGNvbnN0IHByb3BUeXBlID0gdGhpcy5pbmZlclR5cGUocHJvcC5pbml0aWFsaXplcik7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0cHJvcGVydGllcy5zZXQocHJvcE5hbWUsIHtcblx0XHRcdFx0XHRcdG5hbWUgICAgIDogcHJvcE5hbWUsXG5cdFx0XHRcdFx0XHR0eXBlICAgICA6IHByb3BUeXBlLFxuXHRcdFx0XHRcdFx0b3B0aW9uYWwgOiBmYWxzZSxcblx0XHRcdFx0XHRcdHJlYWRvbmx5IDogZmFsc2Vcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBFeHRyYWN0IGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMgZnJvbSBhIGZ1bmN0aW9uXG5cdCAqIFNpbWlsYXIgdG8gbWFpbiBhbmFseXplciAtIHNraXBzIGB0aGlzYCBwYXJhbWV0ZXIgYW5kIGV4cGFuZHMgZGF0YSB0eXBlc1xuXHQgKi9cblx0cHJpdmF0ZSBleHRyYWN0Q29uc3RydWN0b3JQYXJhbXMgKFxuXHRcdGZ1bmM6IHRzLkZ1bmN0aW9uRGVjbGFyYXRpb24gfCB0cy5GdW5jdGlvbkV4cHJlc3Npb24gfCB0cy5BcnJvd0Z1bmN0aW9uLFxuXHRcdHR5cGVBbGlhc2VzPzogTWFwPHN0cmluZywgdHMuVHlwZU5vZGU+XG5cdCk6IENvbnN0cnVjdG9yUGFyYW1JbmZvW10gfCB1bmRlZmluZWQge1xuXHRcdGlmICghZnVuYy5wYXJhbWV0ZXJzIHx8IGZ1bmMucGFyYW1ldGVycy5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXG5cdFx0Y29uc3QgcGFyYW1zOiBDb25zdHJ1Y3RvclBhcmFtSW5mb1tdID0gW107XG5cdFx0XG5cdFx0Ly8gU2tpcCBgdGhpc2AgcGFyYW1ldGVyIChmaXJzdCBwYXJhbSkgYW5kIGV4dHJhY3QgZGF0YSBwYXJhbWV0ZXJzXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBmdW5jLnBhcmFtZXRlcnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IHBhcmFtID0gZnVuYy5wYXJhbWV0ZXJzWyBpIF07XG5cdFx0XHRcblx0XHRcdC8vIFNraXAgYHRoaXNgIHBhcmFtZXRlciAoZmlyc3QgcGFyYW0pXG5cdFx0XHRpZiAoaSA9PT0gMCAmJiBwYXJhbS5uYW1lLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuSWRlbnRpZmllciAmJlxuXHRcdFx0ICAgIChwYXJhbS5uYW1lIGFzIHRzLklkZW50aWZpZXIpLnRleHQgPT09ICd0aGlzJykge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0aWYgKCFwYXJhbS50eXBlKSBjb250aW51ZTtcblx0XHRcdFxuXHRcdFx0Y29uc3QgcGFyYW1OYW1lID0gdHMuaXNJZGVudGlmaWVyKHBhcmFtLm5hbWUpID8gcGFyYW0ubmFtZS50ZXh0IDogJ2FyZyc7XG5cdFx0XHRjb25zdCBvcHRpb25hbCA9IHBhcmFtLnF1ZXN0aW9uVG9rZW4gIT09IHVuZGVmaW5lZCB8fCBwYXJhbS5pbml0aWFsaXplciAhPT0gdW5kZWZpbmVkO1xuXHRcdFx0XG5cdFx0XHQvLyBFeHBhbmQgdHlwZSB0byBvYmplY3QgbGl0ZXJhbCBpZiBwb3NzaWJsZVxuXHRcdFx0Y29uc3QgZXhwYW5kZWRUeXBlID0gdGhpcy5leHBhbmRUeXBlVG9PYmplY3QocGFyYW0udHlwZSwgdHlwZUFsaWFzZXMpO1xuXHRcdFx0Y29uc3QgcGFyYW1UeXBlID0gZXhwYW5kZWRUeXBlIHx8IHRoaXMudHlwZU5vZGVUb1NpbXBsZVN0cmluZyhwYXJhbS50eXBlKTtcblx0XHRcdFxuXHRcdFx0cGFyYW1zLnB1c2goe1xuXHRcdFx0XHRuYW1lICAgICA6IHBhcmFtTmFtZSxcblx0XHRcdFx0dHlwZSAgICAgOiBwYXJhbVR5cGUsXG5cdFx0XHRcdG9wdGlvbmFsIDogb3B0aW9uYWxcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRcblx0XHRyZXR1cm4gcGFyYW1zLmxlbmd0aCA+IDAgPyBwYXJhbXMgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKipcblx0ICogRXhwYW5kIGEgdHlwZSBub2RlIHRvIGl0cyBvYmplY3QgbGl0ZXJhbCByZXByZXNlbnRhdGlvblxuXHQgKiBTaW1pbGFyIHRvIG1haW4gYW5hbHl6ZXIncyByZXNvbHZlVHlwZUFuZEV4dHJhY3Rcblx0ICovXG5cdHByaXZhdGUgZXhwYW5kVHlwZVRvT2JqZWN0IChcblx0XHR0eXBlTm9kZTogdHMuVHlwZU5vZGUsXG5cdFx0dHlwZUFsaWFzZXM/OiBNYXA8c3RyaW5nLCB0cy5UeXBlTm9kZT5cblx0KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHQvLyBEaXJlY3QgaW5saW5lIHR5cGUgbGl0ZXJhbDogeyBwcm9wOiB0eXBlIH1cblx0XHRpZiAodHMuaXNUeXBlTGl0ZXJhbE5vZGUodHlwZU5vZGUpKSB7XG5cdFx0XHRjb25zdCBwcm9wczogc3RyaW5nW10gPSBbXTtcblx0XHRcdGZvciAoY29uc3QgbWVtYmVyIG9mIHR5cGVOb2RlLm1lbWJlcnMpIHtcblx0XHRcdFx0aWYgKHRzLmlzUHJvcGVydHlTaWduYXR1cmUobWVtYmVyKSAmJiB0cy5pc0lkZW50aWZpZXIobWVtYmVyLm5hbWUpKSB7XG5cdFx0XHRcdFx0Y29uc3QgcHJvcE5hbWUgPSBtZW1iZXIubmFtZS50ZXh0O1xuXHRcdFx0XHRcdGNvbnN0IG9wdCA9IG1lbWJlci5xdWVzdGlvblRva2VuID8gJz8nIDogJyc7XG5cdFx0XHRcdFx0Y29uc3QgdHlwZSA9IHRoaXMudHlwZU5vZGVUb1NpbXBsZVN0cmluZyhtZW1iZXIudHlwZSk7XG5cdFx0XHRcdFx0cHJvcHMucHVzaChgJHtwcm9wTmFtZX0ke29wdH06ICR7dHlwZX1gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGB7ICR7cHJvcHMuam9pbignOyAnKX0gfWA7XG5cdFx0fVxuXG5cdFx0Ly8gVHlwZSByZWZlcmVuY2U6IFNlbnRpZW5jZURhdGEsIGV0Yy4gLSB0cnkgdG8gZXhwYW5kIGZyb20gdHlwZSBhbGlhc2VzXG5cdFx0aWYgKHRzLmlzVHlwZVJlZmVyZW5jZU5vZGUodHlwZU5vZGUpICYmIHRzLmlzSWRlbnRpZmllcih0eXBlTm9kZS50eXBlTmFtZSkpIHtcblx0XHRcdGNvbnN0IHR5cGVOYW1lID0gdHlwZU5vZGUudHlwZU5hbWUudGV4dDtcblx0XHRcdFxuXHRcdFx0Ly8gSWYgd2UgaGF2ZSB0eXBlIGFsaWFzZXMsIHRyeSB0byBleHBhbmQgdGhlIHJlZmVyZW5jZWQgdHlwZVxuXHRcdFx0aWYgKHR5cGVBbGlhc2VzKSB7XG5cdFx0XHRcdGNvbnN0IGFsaWFzZWRUeXBlID0gdHlwZUFsaWFzZXMuZ2V0KHR5cGVOYW1lKTtcblx0XHRcdFx0aWYgKGFsaWFzZWRUeXBlKSB7XG5cdFx0XHRcdFx0Y29uc3QgZXhwYW5kZWQgPSB0aGlzLmV4cGFuZFR5cGVUb09iamVjdChhbGlhc2VkVHlwZSwgdHlwZUFsaWFzZXMpO1xuXHRcdFx0XHRcdGlmIChleHBhbmRlZCkgcmV0dXJuIGV4cGFuZGVkO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC8vIElmIG5vdCBhbiBvYmplY3QgdHlwZSBhbGlhcywgcmV0dXJuIHRoZSB0eXBlIG5hbWVcblx0XHRcdHJldHVybiB0eXBlTmFtZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIENvbnZlcnQgYSBUeXBlU2NyaXB0IHR5cGUgbm9kZSB0byBhIHNpbXBsZSBzdHJpbmcgcmVwcmVzZW50YXRpb25cblx0ICovXG5cdHByaXZhdGUgdHlwZU5vZGVUb1NpbXBsZVN0cmluZyAodHlwZU5vZGU6IHRzLlR5cGVOb2RlIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcblx0XHRpZiAoIXR5cGVOb2RlKSByZXR1cm4gJ2FueSc7XG5cdFx0XG5cdFx0c3dpdGNoICh0eXBlTm9kZS5raW5kKSB7XG5cdFx0Y2FzZSB0cy5TeW50YXhLaW5kLlN0cmluZ0tleXdvcmQ6XG5cdFx0XHRyZXR1cm4gJ3N0cmluZyc7XG5cdFx0Y2FzZSB0cy5TeW50YXhLaW5kLk51bWJlcktleXdvcmQ6XG5cdFx0XHRyZXR1cm4gJ251bWJlcic7XG5cdFx0Y2FzZSB0cy5TeW50YXhLaW5kLkJvb2xlYW5LZXl3b3JkOlxuXHRcdFx0cmV0dXJuICdib29sZWFuJztcblx0XHRjYXNlIHRzLlN5bnRheEtpbmQuQW55S2V5d29yZDpcblx0XHRcdHJldHVybiAnYW55Jztcblx0XHRjYXNlIHRzLlN5bnRheEtpbmQuQXJyYXlUeXBlOlxuXHRcdFx0cmV0dXJuICdBcnJheTxhbnk+Jztcblx0XHRjYXNlIHRzLlN5bnRheEtpbmQuVHlwZVJlZmVyZW5jZToge1xuXHRcdFx0Y29uc3QgdHlwZVJlZiA9IHR5cGVOb2RlIGFzIHRzLlR5cGVSZWZlcmVuY2VOb2RlO1xuXHRcdFx0aWYgKHRzLmlzSWRlbnRpZmllcih0eXBlUmVmLnR5cGVOYW1lKSkge1xuXHRcdFx0XHRyZXR1cm4gdHlwZVJlZi50eXBlTmFtZS50ZXh0O1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuICdhbnknO1xuXHRcdH1cblx0XHRkZWZhdWx0OlxuXHRcdFx0cmV0dXJuICdhbnknO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBJbmZlciBUeXBlU2NyaXB0IHR5cGUgZnJvbSBhbiBleHByZXNzaW9uXG5cdCAqL1xuXHRwcml2YXRlIGluZmVyVHlwZSAobm9kZTogdHMuRXhwcmVzc2lvbik6IHN0cmluZyB7XG5cdFx0c3dpdGNoIChub2RlLmtpbmQpIHtcblx0XHRjYXNlIHRzLlN5bnRheEtpbmQuU3RyaW5nTGl0ZXJhbDpcblx0XHRcdHJldHVybiAnc3RyaW5nJztcblx0XHRjYXNlIHRzLlN5bnRheEtpbmQuTnVtZXJpY0xpdGVyYWw6XG5cdFx0XHRyZXR1cm4gJ251bWJlcic7XG5cdFx0Y2FzZSB0cy5TeW50YXhLaW5kLlRydWVLZXl3b3JkOlxuXHRcdGNhc2UgdHMuU3ludGF4S2luZC5GYWxzZUtleXdvcmQ6XG5cdFx0XHRyZXR1cm4gJ2Jvb2xlYW4nO1xuXHRcdGNhc2UgdHMuU3ludGF4S2luZC5OdWxsS2V5d29yZDpcblx0XHRcdHJldHVybiAnbnVsbCc7XG5cdFx0Y2FzZSB0cy5TeW50YXhLaW5kLlVuZGVmaW5lZEtleXdvcmQ6XG5cdFx0XHRyZXR1cm4gJ3VuZGVmaW5lZCc7XG5cdFx0Y2FzZSB0cy5TeW50YXhLaW5kLkFycmF5TGl0ZXJhbEV4cHJlc3Npb246XG5cdFx0XHRyZXR1cm4gJ0FycmF5PGFueT4nO1xuXHRcdGNhc2UgdHMuU3ludGF4S2luZC5PYmplY3RMaXRlcmFsRXhwcmVzc2lvbjpcblx0XHRcdHJldHVybiAnb2JqZWN0Jztcblx0XHRjYXNlIHRzLlN5bnRheEtpbmQuTmV3RXhwcmVzc2lvbjpcblx0XHRcdHJldHVybiB0aGlzLmluZmVyTmV3RXhwcmVzc2lvblR5cGUobm9kZSBhcyB0cy5OZXdFeHByZXNzaW9uKTtcblx0XHRjYXNlIHRzLlN5bnRheEtpbmQuQ29uZGl0aW9uYWxFeHByZXNzaW9uOlxuXHRcdFx0cmV0dXJuIHRoaXMuaW5mZXJUeXBlKChub2RlIGFzIHRzLkNvbmRpdGlvbmFsRXhwcmVzc2lvbikud2hlblRydWUpO1xuXHRcdGNhc2UgdHMuU3ludGF4S2luZC5CaW5hcnlFeHByZXNzaW9uOiB7XG5cdFx0XHRjb25zdCBiaW5FeHByID0gbm9kZSBhcyB0cy5CaW5hcnlFeHByZXNzaW9uO1xuXHRcdFx0Ly8gQ2hlY2sgZm9yIGxvZ2ljYWwgT1IgcGF0dGVybjogdmFsdWUgfHwgZGVmYXVsdFxuXHRcdFx0aWYgKGJpbkV4cHIub3BlcmF0b3JUb2tlbi5raW5kID09PSB0cy5TeW50YXhLaW5kLkJhckJhclRva2VuKSB7XG5cdFx0XHRcdC8vIFJldHVybiB0aGUgdHlwZSBvZiB0aGUgcmlnaHQgc2lkZSAodGhlIGRlZmF1bHQgdmFsdWUpXG5cdFx0XHRcdHJldHVybiB0aGlzLmluZmVyVHlwZShiaW5FeHByLnJpZ2h0KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiAnYW55Jztcblx0XHR9XG5cdFx0Y2FzZSB0cy5TeW50YXhLaW5kLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbjoge1xuXHRcdFx0Y29uc3QgcHJvcEFjY2VzcyA9IG5vZGUgYXMgdHMuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uO1xuXHRcdFx0Ly8gSGFuZGxlIGRhdGE/LnByb3BlcnR5IHBhdHRlcm5zXG5cdFx0XHRyZXR1cm4gdGhpcy5pbmZlclR5cGUocHJvcEFjY2Vzcyk7XG5cdFx0fVxuXHRcdGNhc2UgdHMuU3ludGF4S2luZC5DYWxsRXhwcmVzc2lvbjoge1xuXHRcdFx0Y29uc3QgY2FsbEV4cHIgPSBub2RlIGFzIHRzLkNhbGxFeHByZXNzaW9uO1xuXHRcdFx0cmV0dXJuIHRoaXMuaW5mZXJDYWxsRXhwcmVzc2lvblR5cGUoY2FsbEV4cHIpO1xuXHRcdH1cblx0XHRkZWZhdWx0OlxuXHRcdFx0cmV0dXJuICdhbnknO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBJbmZlciB0eXBlIGZyb20gbmV3IGV4cHJlc3Npb25zIGxpa2UgbmV3IERhdGUoKSwgbmV3IEFycmF5KCksIGV0Yy5cblx0ICovXG5cdHByaXZhdGUgaW5mZXJOZXdFeHByZXNzaW9uVHlwZSAobm9kZTogdHMuTmV3RXhwcmVzc2lvbik6IHN0cmluZyB7XG5cdFx0Y29uc3QgZXhwciA9IG5vZGUuZXhwcmVzc2lvbjtcblx0XHRpZiAodHMuaXNJZGVudGlmaWVyKGV4cHIpKSB7XG5cdFx0XHRzd2l0Y2ggKGV4cHIudGV4dCkge1xuXHRcdFx0Y2FzZSAnRGF0ZSc6XG5cdFx0XHRcdHJldHVybiAnbnVtYmVyJzsgLy8gRGF0ZS5ub3coKSByZXR1cm5zIG51bWJlclxuXHRcdFx0Y2FzZSAnQXJyYXknOlxuXHRcdFx0XHRyZXR1cm4gJ0FycmF5PGFueT4nO1xuXHRcdFx0Y2FzZSAnTWFwJzpcblx0XHRcdFx0cmV0dXJuICdNYXA8YW55LCBhbnk+Jztcblx0XHRcdGNhc2UgJ1NldCc6XG5cdFx0XHRcdHJldHVybiAnU2V0PGFueT4nO1xuXHRcdFx0Y2FzZSAnUmVnRXhwJzpcblx0XHRcdFx0cmV0dXJuICdSZWdFeHAnO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0cmV0dXJuIGV4cHIudGV4dDtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuICdhbnknO1xuXHR9XG5cblx0LyoqXG5cdCAqIEluZmVyIHR5cGUgZnJvbSBjYWxsIGV4cHJlc3Npb25zIGxpa2UgRGF0ZS5ub3coKSwgcGFyc2VJbnQoKSwgZXRjLlxuXHQgKi9cblx0cHJpdmF0ZSBpbmZlckNhbGxFeHByZXNzaW9uVHlwZSAobm9kZTogdHMuQ2FsbEV4cHJlc3Npb24pOiBzdHJpbmcge1xuXHRcdGNvbnN0IGV4cHIgPSBub2RlLmV4cHJlc3Npb247XG5cdFx0XG5cdFx0Ly8gSGFuZGxlIERhdGUubm93KClcblx0XHRpZiAodHMuaXNQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Npb24oZXhwcikpIHtcblx0XHRcdGNvbnN0IG9iaiA9IGV4cHIuZXhwcmVzc2lvbjtcblx0XHRcdGNvbnN0IG1ldGhvZCA9IGV4cHIubmFtZS50ZXh0O1xuXHRcdFx0XG5cdFx0XHRpZiAodHMuaXNJZGVudGlmaWVyKG9iaikgJiYgb2JqLnRleHQgPT09ICdEYXRlJyAmJiBtZXRob2QgPT09ICdub3cnKSB7XG5cdFx0XHRcdHJldHVybiAnbnVtYmVyJztcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0Ly8gSGFuZGxlIHBhcnNlSW50LCBwYXJzZUZsb2F0LCBTdHJpbmcoKSwgTnVtYmVyKCksIEJvb2xlYW4oKVxuXHRcdGlmICh0cy5pc0lkZW50aWZpZXIoZXhwcikpIHtcblx0XHRcdHN3aXRjaCAoZXhwci50ZXh0KSB7XG5cdFx0XHRjYXNlICdwYXJzZUludCc6XG5cdFx0XHRjYXNlICdwYXJzZUZsb2F0Jzpcblx0XHRcdFx0cmV0dXJuICdudW1iZXInO1xuXHRcdFx0Y2FzZSAnU3RyaW5nJzpcblx0XHRcdFx0cmV0dXJuICdzdHJpbmcnO1xuXHRcdFx0Y2FzZSAnTnVtYmVyJzpcblx0XHRcdFx0cmV0dXJuICdudW1iZXInO1xuXHRcdFx0Y2FzZSAnQm9vbGVhbic6XG5cdFx0XHRcdHJldHVybiAnYm9vbGVhbic7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdHJldHVybiAnYW55Jztcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIHR5cGUgZ3JhcGhcblx0ICovXG5cdGdldEdyYXBoICgpOiBUeXBlR3JhcGhJbXBsIHtcblx0XHRyZXR1cm4gdGhpcy5ncmFwaDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgY29sbGVjdGVkIGVycm9yc1xuXHQgKi9cblx0Z2V0RXJyb3JzICgpOiBzdHJpbmdbXSB7XG5cdFx0cmV0dXJuIHRoaXMuZXJyb3JzO1xuXHR9XG59XG4iXX0=
|
package/lib/types.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIFR5cGUgZGVmaW5pdGlvbnMgZm9yIFRhY3RpY2FcbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhY3RpY2FDb25maWcge1xuXHQvKiogT3V0cHV0IGRpcmVjdG9yeSBmb3IgZ2VuZXJhdGVkIHR5cGVzIChkZWZhdWx0OiAudGFjdGljYSkgKi9cblx0b3V0cHV0RGlyPzogc3RyaW5nO1xuXHQvKiogRmlsZXMgdG8gaW5jbHVkZSAoZ2xvYiBwYXR0ZXJucykgKi9cblx0aW5jbHVkZT86IHN0cmluZ1tdO1xuXHQvKiogRmlsZXMgdG8gZXhjbHVkZSAoZ2xvYiBwYXR0ZXJucykgKi9cblx0ZXhjbHVkZT86IHN0cmluZ1tdO1xuXHQvKiogRW5hYmxlIHZlcmJvc2UgbG9nZ2luZyAqL1xuXHR2ZXJib3NlPzogYm9vbGVhbjtcblx0LyoqIEdlbmVyYXRlIGdsb2JhbCBhdWdtZW50YXRpb24gaW5zdGVhZCBvZiBtb2R1bGUgYXVnbWVudGF0aW9uIChkZWZhdWx0OiB0cnVlKSAqL1xuXHRnbG9iYWxBdWdtZW50YXRpb24/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5SW5mbyB7XG5cdG5hbWU6IHN0cmluZztcblx0dHlwZTogc3RyaW5nO1xuXHRvcHRpb25hbDogYm9vbGVhbjtcblx0LyoqIFRydWUgaWYgdGhpcyBpcyBhIGdldHRlciBwcm9wZXJ0eSAocmVhZG9ubHkpICovXG5cdHJlYWRvbmx5PzogYm9vbGVhbjtcbn1cblxuLyoqIENvbnN0cnVjdG9yIHBhcmFtZXRlciBpbmZvIGZvciBUeXBlUmVnaXN0cnkgc2lnbmF0dXJlcyAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25zdHJ1Y3RvclBhcmFtSW5mbyB7XG5cdC8qKiBQYXJhbWV0ZXIgbmFtZSAoZS5nLiwgXCJ1c2FnZXNcIiwgXCJkYXRhXCIsIFwiY29uZmlnXCIpICovXG5cdG5hbWU6IHN0cmluZztcblx0LyoqIFRoZSB0eXBlIHN0cmluZyAtIGNhbiBiZSBhIHNpbXBsZSB0eXBlIG9yIGV4cGFuZGVkIG9iamVjdCBsaXRlcmFsICovXG5cdHR5cGU6IHN0cmluZztcblx0b3B0aW9uYWw6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZU5vZGUge1xuXHQvKiogVHlwZSBuYW1lIChlLmcuLCBcIlNlY29uZFR5cGVcIikgKi9cblx0bmFtZTogc3RyaW5nO1xuXHQvKiogRnVsbCBwYXRoIChlLmcuLCBcIkZpcnN0VHlwZS5TZWNvbmRUeXBlXCIpICovXG5cdGZ1bGxQYXRoOiBzdHJpbmc7XG5cdC8qKiBQcm9wZXJ0aWVzIGRlZmluZWQgaW4gdGhpcyB0eXBlJ3MgY29uc3RydWN0b3IgKi9cblx0cHJvcGVydGllczogTWFwPHN0cmluZywgUHJvcGVydHlJbmZvPjtcblx0LyoqIENvbnN0cnVjdG9yIHBhcmFtZXRlcnMgKGZvciBUeXBlUmVnaXN0cnkgY29uc3RydWN0b3Igc2lnbmF0dXJlKSAqL1xuXHRjb25zdHJ1Y3RvclBhcmFtcz86IENvbnN0cnVjdG9yUGFyYW1JbmZvW107XG5cdC8qKiBQYXJlbnQgdHlwZSBub2RlICovXG5cdHBhcmVudD86IFR5cGVOb2RlO1xuXHQvKiogQ2hpbGQgdHlwZXMgKi9cblx0Y2hpbGRyZW46IE1hcDxzdHJpbmcsIFR5cGVOb2RlPjtcblx0LyoqIFNvdXJjZSBmaWxlIHBhdGggKi9cblx0c291cmNlRmlsZTogc3RyaW5nO1xuXHQvKiogTGluZSBudW1iZXIgaW4gc291cmNlICovXG5cdGxpbmU6IG51bWJlcjtcblx0LyoqIENvbHVtbiBudW1iZXIgaW4gc291cmNlICovXG5cdGNvbHVtbjogbnVtYmVyO1xuXHQvKiogQ29uc3RydWN0b3IgZnVuY3Rpb24gbmFtZSBvciBjbGFzcyBuYW1lICovXG5cdGNvbnN0cnVjdG9yTmFtZT86IHN0cmluZztcblx0LyoqIENvbGxlY3Rpb24gaWRlbnRpZmllciBpZiB0aGUgdHlwZSBiZWxvbmdzIHRvIGEgY3VzdG9tIGNvbGxlY3Rpb24gKHVuZGVmaW5lZCA9IGRlZmF1bHQvZ2xvYmFsIHJlZ2lzdHJ5KSAqL1xuXHRjb2xsZWN0aW9uSWQ/OiBzdHJpbmc7XG5cdC8qKiBSZWdpc3RyeSBpbnRlcmZhY2UgbmFtZSBmb3IgY3VzdG9tIGNvbGxlY3Rpb25zIHVzaW5nIE9wdGlvbiBCICh1c2VyLXByb3ZpZGVkIHJlZ2lzdHJ5IGludGVyZmFjZSkgKi9cblx0cmVnaXN0cnlJbnRlcmZhY2VOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVHcmFwaCB7XG5cdC8qKiBSb290IHR5cGVzLCBrZXllZCBieSBmdWxsIHBhdGggKGN1c3RvbS1jb2xsZWN0aW9uIHJvb3RzIGNhcnJ5IHRoZSBgY29sbGVjdGlvbklkOjpgIHByZWZpeCkgKi9cblx0cm9vdHM6IE1hcDxzdHJpbmcsIFR5cGVOb2RlPjtcblx0LyoqIEFsbCB0eXBlcyBieSBmdWxsIHBhdGggKi9cblx0YWxsVHlwZXM6IE1hcDxzdHJpbmcsIFR5cGVOb2RlPjtcblx0LyoqIEFkZCBhIHJvb3QgdHlwZSAqL1xuXHRhZGRSb290KG5vZGU6IFR5cGVOb2RlKTogdm9pZDtcblx0LyoqIEZpbmQgYSB0eXBlIGJ5IGZ1bGwgcGF0aCAqL1xuXHRmaW5kVHlwZShmdWxsUGF0aDogc3RyaW5nKTogVHlwZU5vZGUgfCB1bmRlZmluZWQ7XG5cdC8qKiBHZXQgYWxsIHR5cGVzIGFzIGFycmF5ICovXG5cdGdldEFsbFR5cGVzKCk6IFR5cGVOb2RlW107XG5cdC8qKiBDbGVhciB0aGUgZ3JhcGggKi9cblx0Y2xlYXIoKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbmFseXplUmVzdWx0IHtcblx0LyoqIFR5cGVzIGZvdW5kIGluIHRoZSBhbmFseXNpcyAqL1xuXHR0eXBlczogVHlwZU5vZGVbXTtcblx0LyoqIEVycm9ycyBlbmNvdW50ZXJlZCAqL1xuXHRlcnJvcnM6IEFuYWx5emVFcnJvcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFuYWx5emVFcnJvciB7XG5cdG1lc3NhZ2U6IHN0cmluZztcblx0ZmlsZTogc3RyaW5nO1xuXHRsaW5lOiBudW1iZXI7XG5cdGNvbHVtbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlZFR5cGVzIHtcblx0LyoqIENvbnRlbnQgb2YgdGhlIC5kLnRzIGZpbGUgKi9cblx0Y29udGVudDogc3RyaW5nO1xuXHQvKiogVHlwZXMgdGhhdCB3ZXJlIGdlbmVyYXRlZCAqL1xuXHR0eXBlczogc3RyaW5nW107XG59XG5cbi8qKlxuICogRGVmaW5pdGlvbiBpbmZvIGZvciBjb2RlIG5hdmlnYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZpbml0aW9uSW5mbyB7XG5cdC8qKiBUeXBlIG5hbWUgKGUuZy4sIFwiQWRtaW5UeXBlXCIpICovXG5cdG5hbWU6IHN0cmluZztcblx0LyoqIExvY2F0aW9uIGluIHNvdXJjZTogZmlsZS50czpMaW5lOkNvbCAqL1xuXHRsb2NhdGlvbjogc3RyaW5nO1xuXHQvKiogSG93IHR5cGUgd2FzIGNyZWF0ZWQ6ICdkZWZpbmUnIG9yICdkZWNvcmF0ZScgKi9cblx0a2luZDogJ2RlZmluZScgfCAnZGVjb3JhdGUnO1xuXHQvKiogUGFyZW50IHR5cGUgZnVsbCBwYXRoLCBudWxsIGlmIHJvb3QgKi9cblx0cGFyZW50OiBzdHJpbmcgfCBudWxsO1xuXHQvKiogc3RyaWN0Q2hhaW4gY29uZmlnIG9wdGlvbiAqL1xuXHRzdHJpY3RDaGFpbjogYm9vbGVhbjtcblx0LyoqIGJsb2NrRXJyb3JzIGNvbmZpZyBvcHRpb24gKi9cblx0YmxvY2tFcnJvcnM6IGJvb2xlYW47XG59XG5cbi8qKlxuICogVXNhZ2UgaW5mbyBmb3IgY29kZSBuYXZpZ2F0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNhZ2VJbmZvIHtcblx0LyoqIExvY2F0aW9uIGluIHNvdXJjZTogZmlsZS50czpMaW5lOkNvbCAqL1xuXHRsb2NhdGlvbjogc3RyaW5nO1xuXHQvKiogS2luZCBvZiB1c2FnZTogaW5zdGFudGlhdGlvbiwgdHlwZUFubm90YXRpb24sIHByb3BlcnR5QWNjZXNzLCBsb29rdXAsIHJlZmVyZW5jZSAqL1xuXHRraW5kOiAnaW5zdGFudGlhdGlvbicgfCAndHlwZUFubm90YXRpb24nIHwgJ3Byb3BlcnR5QWNjZXNzJyB8ICdsb29rdXAnIHwgJ3JlZmVyZW5jZSc7XG5cdC8qKiBDb2RlIHNuaXBwZXQgKi9cblx0Y29kZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEpTT04gb3V0cHV0IGZvciBkZWZpbml0aW9ucy5qc29uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmaW5pdGlvbnNKc29uIHtcblx0dmVyc2lvbjogc3RyaW5nO1xuXHRnZW5lcmF0ZWRBdDogc3RyaW5nO1xuXHRkZWZpbml0aW9uczogUmVjb3JkPHN0cmluZywgRGVmaW5pdGlvbkluZm8+O1xufVxuXG4vKipcbiAqIEpTT04gb3V0cHV0IGZvciB1c2FnZXMuanNvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzYWdlc0pzb24ge1xuXHR2ZXJzaW9uOiBzdHJpbmc7XG5cdGdlbmVyYXRlZEF0OiBzdHJpbmc7XG5cdHVzYWdlczogUmVjb3JkPHN0cmluZywgVXNhZ2VJbmZvW10+O1xufVxuXG4vKipcbiAqIEVEUyAoRXhlY3V0aW9uIERhdGEgU3RvcmFnZSkga2luZCBmb3IgdHJhY2tpbmcgZXhlY3V0aW9uIGZsb3cgcGF0dGVybnNcbiAqL1xuZXhwb3J0IHR5cGUgRURTS2luZCA9XG5cdHwgJ3dyYXAnXG5cdHwgJ2xpbmsnXG5cdHwgJ2NvbnRleHRDb25zdW1lJ1xuXHR8ICdlcnJvckVucmljaCdcblx0fCAnaG9va0F0dGFjaCdcblx0fCAnYWRhcHRlclVzZSc7XG5cbi8qKlxuICogRURTIGluZm8gZm9yIGV4ZWN1dGlvbiBkYXRhIGZsb3cgdHJhY2tpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFRFNJbmZvIHtcblx0LyoqIExvY2F0aW9uIGluIHNvdXJjZTogZmlsZS50czpMaW5lOkNvbCAqL1xuXHRsb2NhdGlvbjogc3RyaW5nO1xuXHQvKiogS2luZCBvZiBFRFMgdXNhZ2UgKi9cblx0a2luZDogRURTS2luZDtcblx0LyoqIENvZGUgc25pcHBldCAqL1xuXHRjb2RlOiBzdHJpbmc7XG5cdC8qKiBSZXNvbHZlZCB0YXJnZXQgdHlwZSBpZiBkZXRlY3RhYmxlICovXG5cdHRhcmdldFR5cGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSlNPTiBvdXRwdXQgZm9yIGVkcy5qc29uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRURTSnNvbiB7XG5cdHZlcnNpb246IHN0cmluZztcblx0Z2VuZXJhdGVkQXQ6IHN0cmluZztcblx0ZWRzOiBSZWNvcmQ8c3RyaW5nLCBFRFNJbmZvW10+O1xufVxuXG4vKipcbiAqIEZsb3cga2luZCBmb3IgdHJhY2tpbmcgbmF0aXZlIGluc3RhbmNlIHVzYWdlIHBhdHRlcm5zXG4gKi9cbmV4cG9ydCB0eXBlIEZsb3dLaW5kID1cblx0fCAncHJvcGVydHlSZWFkJ1xuXHR8ICdwcm9wZXJ0eVdyaXRlJ1xuXHR8ICdtZXRob2RDYWxsJ1xuXHR8ICdkZXN0cnVjdHVyZVJlYWQnXG5cdHwgJ3Bhc3NBc0FyZydcblx0fCAncmV0dXJuJ1xuXHR8ICdzcHJlYWQnXG5cdHwgJ2FycmF5RWxlbWVudCdcblx0fCAnY29uZGl0aW9uYWxBY2Nlc3MnXG5cdHwgJ2VsZW1lbnRBY2Nlc3MnXG5cdHwgJ3JlYXNzaWdubWVudCdcblx0fCAnaW5zdGFudGlhdGlvbic7XG5cbi8qKlxuICogRmxvdyBpbmZvIGZvciBuYXRpdmUgaW5zdGFuY2UgdXNhZ2UgdHJhY2tpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbG93SW5mbyB7XG5cdC8qKiBMb2NhdGlvbiBpbiBzb3VyY2U6IGZpbGUudHM6TGluZTpDb2wgKi9cblx0bG9jYXRpb246IHN0cmluZztcblx0LyoqIEtpbmQgb2YgZmxvdyAqL1xuXHRraW5kOiBGbG93S2luZDtcblx0LyoqIENvZGUgc25pcHBldCAqL1xuXHRjb2RlOiBzdHJpbmc7XG5cdC8qKiBQcm9wZXJ0eSBuYW1lIGlmIGFwcGxpY2FibGUgKi9cblx0cHJvcGVydHlOYW1lPzogc3RyaW5nO1xuXHQvKiogUmVzb2x2ZWQgdGFyZ2V0IHR5cGUgaWYga25vd24gKi9cblx0dGFyZ2V0VHlwZT86IHN0cmluZztcblx0LyoqIENvbnRleHQgKGZ1bmN0aW9uIG5hbWUsIHBhcmFtIHBvc2l0aW9uLCBldGMuKSAqL1xuXHRjb250ZXh0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEpTT04gb3V0cHV0IGZvciBmbG93Lmpzb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbG93SnNvbiB7XG5cdHZlcnNpb246IHN0cmluZztcblx0Z2VuZXJhdGVkQXQ6IHN0cmluZztcblx0ZmxvdzogUmVjb3JkPHN0cmluZywgRmxvd0luZm9bXT47XG59XG5cbi8qKlxuICogSlNPTiBvdXRwdXQgZm9yIGhpZXJhcmNoeS5qc29uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGllcmFyY2h5SnNvbiB7XG5cdHZlcnNpb246IHN0cmluZztcblx0Z2VuZXJhdGVkQXQ6IHN0cmluZztcblx0cm9vdHM6IEhpZXJhcmNoeU5vZGVbXTtcbn1cblxuLyoqXG4gKiBTdHJ1Y3R1cmVkIGhpZXJhcmNoeSBub2RlIGZvciBtYWNoaW5lIGNvbnN1bXB0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhpZXJhcmNoeU5vZGUge1xuXHQvKiogVHlwZSBuYW1lIChlLmcuLCBcIkFkbWluVHlwZVwiKSAqL1xuXHRuYW1lOiBzdHJpbmc7XG5cdC8qKiBGdWxsIGRvdHRlZCBwYXRoIChlLmcuLCBcIlVzZXJUeXBlLkFkbWluVHlwZVwiKSAqL1xuXHRmdWxsUGF0aDogc3RyaW5nO1xuXHQvKiogTG9jYXRpb24gaW4gc291cmNlOiBmaWxlLnRzOkxpbmU6Q29sICovXG5cdGxvY2F0aW9uOiBzdHJpbmc7XG5cdC8qKiBDaGlsZCB0eXBlcyBpbiB0aGUgVHJpZSAqL1xuXHRjaGlsZHJlbjogSGllcmFyY2h5Tm9kZVtdO1xufVxuIl19
|
package/lib/writer.js
CHANGED
|
@@ -193,4 +193,4 @@ class TypesWriter {
|
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
exports.TypesWriter = TypesWriter;
|
|
196
|
-
//# sourceMappingURL=writer.js.map
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dyaXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUViLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFLN0I7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFHdkIsWUFBYSxTQUFTLEdBQUcsVUFBVTtRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUUsU0FBeUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBRSxTQUF5QjtRQUN4QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZELEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkQsT0FBTyxRQUFRLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsdUJBQXVCLENBQUUsU0FBeUI7UUFDakQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN6RCxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBRSxRQUFnQixFQUFFLE9BQWU7UUFDekMs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eEIsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFhO1lBQ3RCLE9BQU8sRUFBTyxLQUFLO1lBQ25CLFdBQVcsRUFBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtZQUN0QyxJQUFJLEVBQVUsT0FBTztTQUNyQixDQUFDO1FBRUYsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQixDQUFFLEtBQXNCO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUU3RCxNQUFNLElBQUksR0FBa0I7WUFDM0IsT0FBTyxFQUFPLEtBQUs7WUFDbkIsV0FBVyxFQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ3RDLEtBQUs7U0FDTCxDQUFDO1FBRUYsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE9BQU8sUUFBUSxDQUFDO0lBQ2pCLENBQUM7Q0FDRDtBQXBMRCxrQ0FvTEMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQge1xuXHRHZW5lcmF0ZWRUeXBlcywgRGVmaW5pdGlvbkluZm8sIFVzYWdlSW5mbywgRURTSW5mbywgRmxvd0luZm8sIEZsb3dKc29uLCBIaWVyYXJjaHlOb2RlLCBIaWVyYXJjaHlKc29uIFxufSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBXcml0ZXMgZ2VuZXJhdGVkIHR5cGVzIHRvIGZpbGUgc3lzdGVtXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlc1dyaXRlciB7XG5cdHByaXZhdGUgb3V0cHV0RGlyOiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IgKG91dHB1dERpciA9ICcudGFjdGljYScpIHtcblx0XHR0aGlzLm91dHB1dERpciA9IG91dHB1dERpcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBMZWdhY3kgd3JpdGUgbWV0aG9kIC0gZGVsZWdhdGVzIHRvIHdyaXRlVHlwZXNGaWxlXG5cdCAqL1xuXHR3cml0ZSAoZ2VuZXJhdGVkOiBHZW5lcmF0ZWRUeXBlcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMud3JpdGVUeXBlc0ZpbGUoZ2VuZXJhdGVkKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXcml0ZSB0eXBlcy50cyBmaWxlIChleHBvcnRhYmxlIHR5cGUgYWxpYXNlcyAtIGRlZmF1bHQgbW9kZSlcblx0ICovXG5cdHdyaXRlVHlwZXNGaWxlIChnZW5lcmF0ZWQ6IEdlbmVyYXRlZFR5cGVzKTogc3RyaW5nIHtcblx0XHR0aGlzLmVuc3VyZURpcmVjdG9yeSgpO1xuXHRcdGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKHRoaXMub3V0cHV0RGlyLCAndHlwZXMudHMnKTtcblx0XHRmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBnZW5lcmF0ZWQuY29udGVudCwgJ3V0Zi04Jyk7XG5cdFx0cmV0dXJuIGZpbGVQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdyaXRlIGdsb2JhbCBhdWdtZW50YXRpb24gZmlsZSAoaW5kZXguZC50cyAtIG1vZHVsZSBhdWdtZW50YXRpb24gbW9kZSlcblx0ICovXG5cdHdyaXRlR2xvYmFsQXVnbWVudGF0aW9uIChnZW5lcmF0ZWQ6IEdlbmVyYXRlZFR5cGVzKTogc3RyaW5nIHtcblx0XHR0aGlzLmVuc3VyZURpcmVjdG9yeSgpO1xuXHRcdGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKHRoaXMub3V0cHV0RGlyLCAnaW5kZXguZC50cycpO1xuXHRcdGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIGdlbmVyYXRlZC5jb250ZW50LCAndXRmLTgnKTtcblx0XHRyZXR1cm4gZmlsZVBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogV3JpdGUgdG8gYSBjdXN0b20gZmlsZW5hbWVcblx0ICovXG5cdHdyaXRlVG8gKGZpbGVuYW1lOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0dGhpcy5lbnN1cmVEaXJlY3RvcnkoKTtcblx0XHRjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbih0aGlzLm91dHB1dERpciwgZmlsZW5hbWUpO1xuXHRcdGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIGNvbnRlbnQsICd1dGYtOCcpO1xuXHRcdHJldHVybiBmaWxlUGF0aDtcblx0fVxuXG5cdC8qKlxuXHQgKiBFbnN1cmUgb3V0cHV0IGRpcmVjdG9yeSBleGlzdHNcblx0ICovXG5cdHByaXZhdGUgZW5zdXJlRGlyZWN0b3J5ICgpOiB2b2lkIHtcblx0XHRpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5vdXRwdXREaXIpKSB7XG5cdFx0XHRmcy5ta2RpclN5bmModGhpcy5vdXRwdXREaXIsIHsgcmVjdXJzaXZlIDogdHJ1ZSB9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ2xlYW4gdGhlIG91dHB1dCBkaXJlY3Rvcnlcblx0ICovXG5cdGNsZWFuICgpOiB2b2lkIHtcblx0XHRpZiAoZnMuZXhpc3RzU3luYyh0aGlzLm91dHB1dERpcikpIHtcblx0XHRcdGNvbnN0IGZpbGVzID0gZnMucmVhZGRpclN5bmModGhpcy5vdXRwdXREaXIpO1xuXHRcdFx0Zm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG5cdFx0XHRcdGZzLnVubGlua1N5bmMocGF0aC5qb2luKHRoaXMub3V0cHV0RGlyLCBmaWxlKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBvdXRwdXQgZGlyZWN0b3J5XG5cdCAqL1xuXHRnZXRPdXRwdXREaXIgKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMub3V0cHV0RGlyO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdyaXRlIGRlZmluaXRpb25zLmpzb24gZmlsZVxuXHQgKi9cblx0d3JpdGVEZWZpbml0aW9uc0ZpbGUgKGRlZmluaXRpb25zOiBNYXA8c3RyaW5nLCBEZWZpbml0aW9uSW5mbz4pOiBzdHJpbmcge1xuXHRcdHRoaXMuZW5zdXJlRGlyZWN0b3J5KCk7XG5cdFx0Y29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4odGhpcy5vdXRwdXREaXIsICdkZWZpbml0aW9ucy5qc29uJyk7XG5cblx0XHQvLyBDb252ZXJ0IE1hcCB0byBwbGFpbiBvYmplY3Rcblx0XHRjb25zdCBkZWZpbml0aW9uc09iajogUmVjb3JkPHN0cmluZywgRGVmaW5pdGlvbkluZm8+ID0ge307XG5cdFx0Zm9yIChjb25zdCBbIGtleSwgdmFsdWUgXSBvZiBkZWZpbml0aW9ucykge1xuXHRcdFx0ZGVmaW5pdGlvbnNPYmpbIGtleSBdID0gdmFsdWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QganNvbiA9IHtcblx0XHRcdHZlcnNpb24gICAgIDogJzEuMCcsXG5cdFx0XHRnZW5lcmF0ZWRBdCA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcblx0XHRcdGRlZmluaXRpb25zIDogZGVmaW5pdGlvbnNPYmosXG5cdFx0fTtcblxuXHRcdGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpLCAndXRmLTgnKTtcblx0XHRyZXR1cm4gZmlsZVBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogV3JpdGUgdXNhZ2VzLmpzb24gZmlsZVxuXHQgKi9cblx0d3JpdGVVc2FnZXNGaWxlICh1c2FnZXM6IE1hcDxzdHJpbmcsIFVzYWdlSW5mb1tdPik6IHN0cmluZyB7XG5cdFx0dGhpcy5lbnN1cmVEaXJlY3RvcnkoKTtcblx0XHRjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbih0aGlzLm91dHB1dERpciwgJ3VzYWdlcy5qc29uJyk7XG5cblx0XHQvLyBDb252ZXJ0IE1hcCB0byBwbGFpbiBvYmplY3Rcblx0XHRjb25zdCB1c2FnZXNPYmo6IFJlY29yZDxzdHJpbmcsIFVzYWdlSW5mb1tdPiA9IHt9O1xuXHRcdGZvciAoY29uc3QgWyBrZXksIHZhbHVlIF0gb2YgdXNhZ2VzKSB7XG5cdFx0XHR1c2FnZXNPYmpbIGtleSBdID0gdmFsdWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QganNvbiA9IHtcblx0XHRcdHZlcnNpb24gICAgIDogJzEuMCcsXG5cdFx0XHRnZW5lcmF0ZWRBdCA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcblx0XHRcdHVzYWdlcyAgICAgIDogdXNhZ2VzT2JqLFxuXHRcdH07XG5cblx0XHRmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSwgJ3V0Zi04Jyk7XG5cdFx0cmV0dXJuIGZpbGVQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdyaXRlIGVkcy5qc29uIGZpbGVcblx0ICovXG5cdHdyaXRlRURTRmlsZSAoZWRzOiBNYXA8c3RyaW5nLCBFRFNJbmZvW10+KTogc3RyaW5nIHtcblx0XHR0aGlzLmVuc3VyZURpcmVjdG9yeSgpO1xuXHRcdGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKHRoaXMub3V0cHV0RGlyLCAnZWRzLmpzb24nKTtcblxuXHRcdC8vIENvbnZlcnQgTWFwIHRvIHBsYWluIG9iamVjdFxuXHRcdGNvbnN0IGVkc09iajogUmVjb3JkPHN0cmluZywgRURTSW5mb1tdPiA9IHt9O1xuXHRcdGZvciAoY29uc3QgWyBrZXksIHZhbHVlIF0gb2YgZWRzKSB7XG5cdFx0XHRlZHNPYmpbIGtleSBdID0gdmFsdWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QganNvbiA9IHtcblx0XHRcdHZlcnNpb24gICAgIDogJzEuMCcsXG5cdFx0XHRnZW5lcmF0ZWRBdCA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcblx0XHRcdGVkcyAgICAgICAgIDogZWRzT2JqLFxuXHRcdH07XG5cblx0XHRmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKSwgJ3V0Zi04Jyk7XG5cdFx0cmV0dXJuIGZpbGVQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdyaXRlIGZsb3cuanNvbiBmaWxlXG5cdCAqL1xuXHR3cml0ZUZsb3dGaWxlIChmbG93OiBNYXA8c3RyaW5nLCBGbG93SW5mb1tdPik6IHN0cmluZyB7XG5cdFx0dGhpcy5lbnN1cmVEaXJlY3RvcnkoKTtcblx0XHRjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbih0aGlzLm91dHB1dERpciwgJ2Zsb3cuanNvbicpO1xuXG5cdFx0Ly8gQ29udmVydCBNYXAgdG8gcGxhaW4gb2JqZWN0XG5cdFx0Y29uc3QgZmxvd09iajogUmVjb3JkPHN0cmluZywgRmxvd0luZm9bXT4gPSB7fTtcblx0XHRmb3IgKGNvbnN0IFsga2V5LCB2YWx1ZSBdIG9mIGZsb3cpIHtcblx0XHRcdGZsb3dPYmpbIGtleSBdID0gdmFsdWU7XG5cdFx0fVxuXG5cdFx0Y29uc3QganNvbjogRmxvd0pzb24gPSB7XG5cdFx0XHR2ZXJzaW9uICAgICA6ICcxLjAnLFxuXHRcdFx0Z2VuZXJhdGVkQXQgOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG5cdFx0XHRmbG93ICAgICAgICA6IGZsb3dPYmosXG5cdFx0fTtcblxuXHRcdGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpLCAndXRmLTgnKTtcblx0XHRyZXR1cm4gZmlsZVBhdGg7XG5cdH1cblxuXHQvKipcblx0ICogV3JpdGUgaGllcmFyY2h5Lmpzb24gZmlsZVxuXHQgKi9cblx0d3JpdGVIaWVyYXJjaHlGaWxlIChyb290czogSGllcmFyY2h5Tm9kZVtdKTogc3RyaW5nIHtcblx0XHR0aGlzLmVuc3VyZURpcmVjdG9yeSgpO1xuXHRcdGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKHRoaXMub3V0cHV0RGlyLCAnaGllcmFyY2h5Lmpzb24nKTtcblxuXHRcdGNvbnN0IGpzb246IEhpZXJhcmNoeUpzb24gPSB7XG5cdFx0XHR2ZXJzaW9uICAgICA6ICcxLjAnLFxuXHRcdFx0Z2VuZXJhdGVkQXQgOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG5cdFx0XHRyb290cyxcblx0XHR9O1xuXG5cdFx0ZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgMiksICd1dGYtOCcpO1xuXHRcdHJldHVybiBmaWxlUGF0aDtcblx0fVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mnemonica/tactica",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "Type definition generator for Mnemonica — statically analyzes define() calls and emits .tactica/ types, registry, and metadata",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|