@qodalis/cli-string 0.0.2 β 0.0.3
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.
|
@@ -44,6 +44,8 @@ export class CliStringCommandProcessor {
|
|
|
44
44
|
this.processors = [];
|
|
45
45
|
this.metadata = {
|
|
46
46
|
icon: 'π€',
|
|
47
|
+
requiredCoreVersion: '0.0.16',
|
|
48
|
+
requiredCliVersion: '1.0.37',
|
|
47
49
|
};
|
|
48
50
|
this.processors = [
|
|
49
51
|
// -- Case conversions --
|
|
@@ -541,4 +543,4 @@ export class CliStringCommandProcessor {
|
|
|
541
543
|
i0.Ι΅Ι΅ngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliStringCommandProcessor, decorators: [{
|
|
542
544
|
type: Injectable
|
|
543
545
|
}], ctorParameters: function () { return []; } });
|
|
544
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXN0cmluZy1jb21tYW5kLXByb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmluZy9zcmMvbGliL3Byb2Nlc3NvcnMvY2xpLXN0cmluZy1jb21tYW5kLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDSCxrQkFBa0IsRUFHbEIsb0JBQW9CLEdBR3ZCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFFN0MsTUFBTSxNQUFNLEdBQUksQ0FBUyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7QUFFdkM7O0dBRUc7QUFDSCxTQUFTLGVBQWUsQ0FDcEIsT0FBZSxFQUNmLFdBQW1CLEVBQ25CLFNBQW1DLEVBQ25DLE9BR0M7SUFFRCxPQUFPO1FBQ0gsT0FBTztRQUNQLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTztRQUN6QixXQUFXO1FBQ1gscUJBQXFCLEVBQUUsSUFBSTtRQUMzQixhQUFhLEVBQUUsSUFBSTtRQUNuQixjQUFjLEVBQUUsS0FBSyxFQUNqQixHQUFzQixFQUN0QixPQUE2QixFQUMvQixFQUFFO1lBQ0EsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFXLENBQUM7WUFDckQsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUNsQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FDbEYs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LEVBQUUsQ0FBQyxDQUFDO1FBQzVILE1BQU0sQ0FBQyxPQUFPLENBQUMsMENBQTBDLE1BQU0sQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25JLENBQUM7K0dBam9CUSx5QkFBeUI7bUhBQXpCLHlCQUF5Qjs7NEZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2xpRm9yZWdyb3VuZENvbG9yLFxuICAgIENsaVByb2Nlc3NDb21tYW5kLFxuICAgIENsaVByb2Nlc3Nvck1ldGFkYXRhLFxuICAgIERlZmF1bHRMaWJyYXJ5QXV0aG9yLFxuICAgIElDbGlDb21tYW5kUHJvY2Vzc29yLFxuICAgIElDbGlFeGVjdXRpb25Db250ZXh0LFxufSBmcm9tICdAcW9kYWxpcy9jbGktY29yZSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBMSUJSQVJZX1ZFUlNJT04gfSBmcm9tICcuLi92ZXJzaW9uJztcblxuY29uc3QgbG9kYXNoID0gKF8gYXMgYW55KS5kZWZhdWx0IHx8IF87XG5cbi8qKlxuICogSGVscGVyIHRvIGNyZWF0ZSBhIHNpbXBsZSBzdHJpbmcgdHJhbnNmb3JtIHN1YmNvbW1hbmRcbiAqL1xuZnVuY3Rpb24gc3RyaW5nVHJhbnNmb3JtKFxuICAgIGNvbW1hbmQ6IHN0cmluZyxcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIHRyYW5zZm9ybTogKHRleHQ6IHN0cmluZykgPT4gc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICAgIGFsaWFzZXM/OiBzdHJpbmdbXTtcbiAgICAgICAgZXhhbXBsZT86IHsgaW5wdXQ6IHN0cmluZzsgb3V0cHV0OiBzdHJpbmcgfTtcbiAgICB9LFxuKTogSUNsaUNvbW1hbmRQcm9jZXNzb3Ige1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbW1hbmQsXG4gICAgICAgIGFsaWFzZXM6IG9wdGlvbnM/LmFsaWFzZXMsXG4gICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICBhbGxvd1VubGlzdGVkQ29tbWFuZHM6IHRydWUsXG4gICAgICAgIHZhbHVlUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoXG4gICAgICAgICAgICBjbWQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGV4dCA9IChjbWQudmFsdWUgfHwgY21kLmRhdGEgfHwgJycpIGFzIHN0cmluZztcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRyYW5zZm9ybSh0ZXh0KTtcbiAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgYCR7Y29udGV4dC53cml0ZXIud3JhcEluQ29sb3IoJ1Jlc3VsdDogJywgQ2xpRm9yZWdyb3VuZENvbG9yLlllbGxvdyl9JHtyZXN1bHR9YCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb250ZXh0LnByb2Nlc3Mub3V0cHV0KHJlc3VsdCk7XG4gICAgICAgIH0sXG4gICAgICAgIHdyaXRlRGVzY3JpcHRpb246IChjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG4gICAgICAgICAgICB3cml0ZXIud3JpdGVsbihkZXNjcmlwdGlvbik7XG4gICAgICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ/Cfk4sgVXNhZ2U6Jyk7XG4gICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcihgc3RyaW5nICR7Y29tbWFuZH0gPHRleHQ+YCwgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnM/LmV4YW1wbGUpIHtcbiAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OdIEV4YW1wbGVzOicpO1xuICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICBgICBzdHJpbmcgJHtjb21tYW5kfSAke29wdGlvbnMuZXhhbXBsZS5pbnB1dC5wYWRFbmQoMjApfSAke3dyaXRlci53cmFwSW5Db2xvcihgIyDihpIgJHtvcHRpb25zLmV4YW1wbGUub3V0cHV0fWAsIENsaUZvcmVncm91bmRDb2xvci5HcmVlbil9YCxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH07XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDbGlTdHJpbmdDb21tYW5kUHJvY2Vzc29yIGltcGxlbWVudHMgSUNsaUNvbW1hbmRQcm9jZXNzb3Ige1xuICAgIGNvbW1hbmQgPSAnc3RyaW5nJztcblxuICAgIGFsaWFzZXMgPSBbJ3N0ciddO1xuXG4gICAgZGVzY3JpcHRpb24gPSAnU3RyaW5nIG1hbmlwdWxhdGlvbiBjb21tYW5kcyc7XG5cbiAgICBhdXRob3IgPSBEZWZhdWx0TGlicmFyeUF1dGhvcjtcblxuICAgIHZlcnNpb24gPSBMSUJSQVJZX1ZFUlNJT047XG5cbiAgICBwcm9jZXNzb3JzPzogSUNsaUNvbW1hbmRQcm9jZXNzb3JbXSA9IFtdO1xuXG4gICAgbWV0YWRhdGE/OiBDbGlQcm9jZXNzb3JNZXRhZGF0YSA9IHtcbiAgICAgICAgaWNvbjogJ/CflKQnLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzb3JzID0gW1xuICAgICAgICAgICAgLy8gLS0gQ2FzZSBjb252ZXJzaW9ucyAtLVxuICAgICAgICAgICAgc3RyaW5nVHJhbnNmb3JtKCd1cHBlcicsICdDb252ZXJ0IHRvIFVQUEVSQ0FTRScsICh0KSA9PiB0LnRvVXBwZXJDYXNlKCksIHtcbiAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ3VwcGVyY2FzZScsICd0b1VwcGVyJ10sXG4gICAgICAgICAgICAgICAgZXhhbXBsZTogeyBpbnB1dDogJ2hlbGxvIHdvcmxkJywgb3V0cHV0OiAnSEVMTE8gV09STEQnIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN0cmluZ1RyYW5zZm9ybSgnbG93ZXInLCAnQ29udmVydCB0byBsb3dlcmNhc2UnLCAodCkgPT4gdC50b0xvd2VyQ2FzZSgpLCB7XG4gICAgICAgICAgICAgICAgYWxpYXNlczogWydsb3dlcmNhc2UnLCAndG9Mb3dlciddLFxuICAgICAgICAgICAgICAgIGV4YW1wbGU6IHsgaW5wdXQ6ICdIRUxMTyBXT1JMRCcsIG91dHB1dDogJ2hlbGxvIHdvcmxkJyB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdHJpbmdUcmFuc2Zvcm0oJ2NhcGl0YWxpemUnLCAnQ2FwaXRhbGl6ZSB0aGUgZmlyc3QgbGV0dGVyJywgKHQpID0+IGxvZGFzaC5jYXBpdGFsaXplKHQpLCB7XG4gICAgICAgICAgICAgICAgYWxpYXNlczogWydjYXAnXSxcbiAgICAgICAgICAgICAgICBleGFtcGxlOiB7IGlucHV0OiAnaGVsbG8gd29ybGQnLCBvdXRwdXQ6ICdIZWxsbyB3b3JsZCcgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3RyaW5nVHJhbnNmb3JtKCdjYW1lbENhc2UnLCAnQ29udmVydCB0byBjYW1lbENhc2UnLCAodCkgPT4gbG9kYXNoLmNhbWVsQ2FzZSh0KSwge1xuICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnY2FtZWwnXSxcbiAgICAgICAgICAgICAgICBleGFtcGxlOiB7IGlucHV0OiAnaGVsbG8gd29ybGQnLCBvdXRwdXQ6ICdoZWxsb1dvcmxkJyB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdHJpbmdUcmFuc2Zvcm0oJ2tlYmFiQ2FzZScsICdDb252ZXJ0IHRvIGtlYmFiLWNhc2UnLCAodCkgPT4gbG9kYXNoLmtlYmFiQ2FzZSh0KSwge1xuICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsna2ViYWInXSxcbiAgICAgICAgICAgICAgICBleGFtcGxlOiB7IGlucHV0OiAnSGVsbG8gV29ybGQnLCBvdXRwdXQ6ICdoZWxsby13b3JsZCcgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3RyaW5nVHJhbnNmb3JtKCdzbmFrZUNhc2UnLCAnQ29udmVydCB0byBzbmFrZV9jYXNlJywgKHQpID0+IGxvZGFzaC5zbmFrZUNhc2UodCksIHtcbiAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ3NuYWtlJ10sXG4gICAgICAgICAgICAgICAgZXhhbXBsZTogeyBpbnB1dDogJ0hlbGxvIFdvcmxkJywgb3V0cHV0OiAnaGVsbG9fd29ybGQnIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN0cmluZ1RyYW5zZm9ybSgnc3RhcnRDYXNlJywgJ0NvbnZlcnQgdG8gU3RhcnQgQ2FzZScsICh0KSA9PiBsb2Rhc2guc3RhcnRDYXNlKHQpLCB7XG4gICAgICAgICAgICAgICAgYWxpYXNlczogWyd0aXRsZScsICd0aXRsZUNhc2UnXSxcbiAgICAgICAgICAgICAgICBleGFtcGxlOiB7IGlucHV0OiAnaGVsbG8td29ybGQnLCBvdXRwdXQ6ICdIZWxsbyBXb3JsZCcgfSxcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyAtLSBUcmltbWluZyAtLVxuICAgICAgICAgICAgc3RyaW5nVHJhbnNmb3JtKCd0cmltJywgJ1JlbW92ZSB3aGl0ZXNwYWNlIGZyb20gYm90aCBlbmRzJywgKHQpID0+IHQudHJpbSgpLCB7XG4gICAgICAgICAgICAgICAgZXhhbXBsZTogeyBpbnB1dDogJ1wiICBoZWxsbyAgXCInLCBvdXRwdXQ6ICdoZWxsbycgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3RyaW5nVHJhbnNmb3JtKCd0cmltU3RhcnQnLCAnUmVtb3ZlIHdoaXRlc3BhY2UgZnJvbSB0aGUgc3RhcnQnLCAodCkgPT4gdC50cmltU3RhcnQoKSwge1xuICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnbHRyaW0nXSxcbiAgICAgICAgICAgICAgICBleGFtcGxlOiB7IGlucHV0OiAnXCIgIGhlbGxvXCInLCBvdXRwdXQ6ICdoZWxsbycgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3RyaW5nVHJhbnNmb3JtKCd0cmltRW5kJywgJ1JlbW92ZSB3aGl0ZXNwYWNlIGZyb20gdGhlIGVuZCcsICh0KSA9PiB0LnRyaW1FbmQoKSwge1xuICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsncnRyaW0nXSxcbiAgICAgICAgICAgICAgICBleGFtcGxlOiB7IGlucHV0OiAnXCJoZWxsbyAgXCInLCBvdXRwdXQ6ICdoZWxsbycgfSxcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyAtLSBUcmFuc2Zvcm0gLS1cbiAgICAgICAgICAgIHN0cmluZ1RyYW5zZm9ybSgncmV2ZXJzZScsICdSZXZlcnNlIGEgc3RyaW5nJywgKHQpID0+IFsuLi50XS5yZXZlcnNlKCkuam9pbignJyksIHtcbiAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ3JldiddLFxuICAgICAgICAgICAgICAgIGV4YW1wbGU6IHsgaW5wdXQ6ICdIZWxsbycsIG91dHB1dDogJ29sbGVIJyB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdHJpbmdUcmFuc2Zvcm0oJ3NsdWcnLCAnQ29udmVydCB0byBVUkwtZnJpZW5kbHkgc2x1ZycsICh0KSA9PlxuICAgICAgICAgICAgICAgIHQudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAubm9ybWFsaXplKCdORkQnKVxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9bXmEtejAtOV0rL2csICctJylcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL14tfC0kL2csICcnKSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnc2x1Z2lmeSddLFxuICAgICAgICAgICAgICAgICAgICBleGFtcGxlOiB7IGlucHV0OiAnXCJIZWxsbyBXb3JsZCFcIicsIG91dHB1dDogJ2hlbGxvLXdvcmxkJyB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RyaW5nVHJhbnNmb3JtKCdlc2NhcGUnLCAnRXNjYXBlIEhUTUwgZW50aXRpZXMnLCAodCkgPT4gbG9kYXNoLmVzY2FwZSh0KSwge1xuICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnZXNjYXBlSHRtbCddLFxuICAgICAgICAgICAgICAgIGV4YW1wbGU6IHsgaW5wdXQ6ICdcIjxiPmhpPC9iPlwiJywgb3V0cHV0OiAnJmx0O2ImZ3Q7aGkmbHQ7L2ImZ3Q7JyB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdHJpbmdUcmFuc2Zvcm0oJ3VuZXNjYXBlJywgJ1VuZXNjYXBlIEhUTUwgZW50aXRpZXMnLCAodCkgPT4gbG9kYXNoLnVuZXNjYXBlKHQpLCB7XG4gICAgICAgICAgICAgICAgYWxpYXNlczogWyd1bmVzY2FwZUh0bWwnXSxcbiAgICAgICAgICAgICAgICBleGFtcGxlOiB7IGlucHV0OiAnXCImbHQ7YiZndDtcIicsIG91dHB1dDogJzxiPicgfSxcbiAgICAgICAgICAgIH0pLFxuXG4gICAgICAgICAgICAvLyAtLSBSZXBlYXQgLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAncmVwZWF0JyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1JlcGVhdCBhIHN0cmluZyBOIHRpbWVzJyxcbiAgICAgICAgICAgICAgICBhbGxvd1VubGlzdGVkQ29tbWFuZHM6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdjb3VudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ24nXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTnVtYmVyIG9mIHJlcGV0aXRpb25zIChkZWZhdWx0OiAyKScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3NlcGFyYXRvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ3NlcCddLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdTZXBhcmF0b3IgYmV0d2VlbiByZXBldGl0aW9ucyAoZGVmYXVsdDogbm9uZSknLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKFxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSAoY29tbWFuZC52YWx1ZSB8fCBjb21tYW5kLmRhdGEgfHwgJycpIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY291bnQgPSBNYXRoLm1pbihwYXJzZUludChjb21tYW5kLmFyZ3NbJ2NvdW50J10gfHwgY29tbWFuZC5hcmdzWyduJ10pIHx8IDIsIDEwMDApO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXAgPSBjb21tYW5kLmFyZ3NbJ3NlcGFyYXRvciddIHx8IGNvbW1hbmQuYXJnc1snc2VwJ10gfHwgJyc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IEFycmF5KGNvdW50KS5maWxsKHRleHQpLmpvaW4oc2VwKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke2NvbnRleHQud3JpdGVyLndyYXBJbkNvbG9yKCdSZXN1bHQ6ICcsIENsaUZvcmVncm91bmRDb2xvci5ZZWxsb3cpfSR7cmVzdWx0fWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQucHJvY2Vzcy5vdXRwdXQocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdyaXRlRGVzY3JpcHRpb246IChjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdyaXRlciB9ID0gY29udGV4dDtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ1JlcGVhdCBhIHN0cmluZyBtdWx0aXBsZSB0aW1lcycpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbign8J+TiyBVc2FnZTonKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcignc3RyaW5nIHJlcGVhdCA8dGV4dD4gWy0tY291bnQ9Tl0gWy0tc2VwPVNdJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OdIEV4YW1wbGVzOicpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgIHN0cmluZyByZXBlYXQgaGEgLS1jb3VudD0zICAgICAgICAke3dyaXRlci53cmFwSW5Db2xvcignIyDihpIgaGFoYWhhJywgQ2xpRm9yZWdyb3VuZENvbG9yLkdyZWVuKX1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgIHN0cmluZyByZXBlYXQgYWIgLS1uPTMgLS1zZXA9LSAgICAke3dyaXRlci53cmFwSW5Db2xvcignIyDihpIgYWItYWItYWInLCBDbGlGb3JlZ3JvdW5kQ29sb3IuR3JlZW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8vIC0tIFJlcGxhY2UgLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAncmVwbGFjZScsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXBsYWNlIG9jY3VycmVuY2VzIGluIGEgc3RyaW5nJyxcbiAgICAgICAgICAgICAgICBhbGxvd1VubGlzdGVkQ29tbWFuZHM6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdmaW5kJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnZiddLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUZXh0IHRvIGZpbmQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3dpdGgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWyd3J10sXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1JlcGxhY2VtZW50IHRleHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IChjb21tYW5kLnZhbHVlIHx8IGNvbW1hbmQuZGF0YSB8fCAnJykgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaW5kID0gY29tbWFuZC5hcmdzWydmaW5kJ10gfHwgY29tbWFuZC5hcmdzWydmJ10gfHwgJyc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VtZW50ID0gY29tbWFuZC5hcmdzWyd3aXRoJ10gfHwgY29tbWFuZC5hcmdzWyd3J10gfHwgJyc7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFmaW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZUVycm9yKCctLWZpbmQgaXMgcmVxdWlyZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQucHJvY2Vzcy5leGl0KC0xKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHQuc3BsaXQoZmluZCkuam9pbihyZXBsYWNlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgJHtjb250ZXh0LndyaXRlci53cmFwSW5Db2xvcignUmVzdWx0OiAnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuWWVsbG93KX0ke3Jlc3VsdH1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnByb2Nlc3Mub3V0cHV0KHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB3cml0ZURlc2NyaXB0aW9uOiAoY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCdSZXBsYWNlIGFsbCBvY2N1cnJlbmNlcyBvZiBhIHN1YnN0cmluZycpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbign8J+TiyBVc2FnZTonKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcignc3RyaW5nIHJlcGxhY2UgPHRleHQ+IC0tZmluZD08c2VhcmNoPiAtLXdpdGg9PHJlcGxhY2VtZW50PicsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbign8J+TnSBFeGFtcGxlczonKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICBzdHJpbmcgcmVwbGFjZSBcImhlbGxvIHdvcmxkXCIgLS1maW5kPXdvcmxkIC0td2l0aD10aGVyZWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoJyMg4oaSIGhlbGxvIHRoZXJlJywgQ2xpRm9yZWdyb3VuZENvbG9yLkdyZWVuKX1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAvLyAtLSBUcnVuY2F0ZSAtLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICd0cnVuY2F0ZScsXG4gICAgICAgICAgICAgICAgYWxpYXNlczogWyd0cnVuYyddLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVHJ1bmNhdGUgYSBzdHJpbmcgdG8gYSBtYXggbGVuZ3RoJyxcbiAgICAgICAgICAgICAgICBhbGxvd1VubGlzdGVkQ29tbWFuZHM6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdsZW5ndGgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydsJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ01heGltdW0gbGVuZ3RoIChkZWZhdWx0OiAzMCknLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdzdWZmaXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdPbWlzc2lvbiBzdWZmaXggKGRlZmF1bHQ6IC4uLiknLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKFxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSAoY29tbWFuZC52YWx1ZSB8fCBjb21tYW5kLmRhdGEgfHwgJycpIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gcGFyc2VJbnQoY29tbWFuZC5hcmdzWydsZW5ndGgnXSB8fCBjb21tYW5kLmFyZ3NbJ2wnXSkgfHwgMzA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IGNvbW1hbmQuYXJnc1snc3VmZml4J10gPz8gJy4uLic7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHQubGVuZ3RoID4gbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRleHQuc3Vic3RyaW5nKDAsIGxlbmd0aCAtIHN1ZmZpeC5sZW5ndGgpICsgc3VmZml4XG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRleHQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgJHtjb250ZXh0LndyaXRlci53cmFwSW5Db2xvcignUmVzdWx0OiAnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuWWVsbG93KX0ke3Jlc3VsdH1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnByb2Nlc3Mub3V0cHV0KHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB3cml0ZURlc2NyaXB0aW9uOiAoY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCdUcnVuY2F0ZSBhIHN0cmluZyB0byBhIG1heGltdW0gbGVuZ3RoIHdpdGggYW4gZWxsaXBzaXMnKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ/Cfk4sgVXNhZ2U6Jyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoJ3N0cmluZyB0cnVuY2F0ZSA8dGV4dD4gWy0tbGVuZ3RoPU5dIFstLXN1ZmZpeD1TXScsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAvLyAtLSBQYWQgLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAncGFkJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1BhZCBhIHN0cmluZyB0byBhIHRhcmdldCBsZW5ndGgnLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2xlbmd0aCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2wnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGFyZ2V0IGxlbmd0aCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnY2hhcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2MnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUGFkZGluZyBjaGFyYWN0ZXIgKGRlZmF1bHQ6IHNwYWNlKScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3NpZGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdQYWQgc2lkZTogbGVmdCwgcmlnaHQsIGJvdGggKGRlZmF1bHQ6IGJvdGgpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gKGNvbW1hbmQudmFsdWUgfHwgY29tbWFuZC5kYXRhIHx8ICcnKSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IHBhcnNlSW50KGNvbW1hbmQuYXJnc1snbGVuZ3RoJ10gfHwgY29tbWFuZC5hcmdzWydsJ10pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyID0gY29tbWFuZC5hcmdzWydjaGFyJ10gfHwgY29tbWFuZC5hcmdzWydjJ10gfHwgJyAnO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaWRlID0gY29tbWFuZC5hcmdzWydzaWRlJ10gfHwgJ2JvdGgnO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc05hTihsZW5ndGgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZUVycm9yKCctLWxlbmd0aCBpcyByZXF1aXJlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5wcm9jZXNzLmV4aXQoLTEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHNpZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3RhcnQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRleHQucGFkU3RhcnQobGVuZ3RoLCBjaGFyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2VuZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGV4dC5wYWRFbmQobGVuZ3RoLCBjaGFyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbG9kYXNoLnBhZCh0ZXh0LCBsZW5ndGgsIGNoYXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke2NvbnRleHQud3JpdGVyLndyYXBJbkNvbG9yKCdSZXN1bHQ6ICcsIENsaUZvcmVncm91bmRDb2xvci5ZZWxsb3cpfVwiJHtyZXN1bHR9XCJgLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnByb2Nlc3Mub3V0cHV0KHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB3cml0ZURlc2NyaXB0aW9uOiAoY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCdQYWQgYSBzdHJpbmcgdG8gYSB0YXJnZXQgbGVuZ3RoJyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OLIFVzYWdlOicpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCdzdHJpbmcgcGFkIDx0ZXh0PiAtLWxlbmd0aD1OIFstLWNoYXI9Q10gWy0tc2lkZT1sZWZ0fHJpZ2h0fGJvdGhdJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OdIEV4YW1wbGVzOicpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgIHN0cmluZyBwYWQgaGVsbG8gLS1sZW5ndGg9MTAgLS1jaGFyPS4gLS1zaWRlPXJpZ2h0YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcignIyDihpIgXCJoZWxsby4uLi4uXCInLCBDbGlGb3JlZ3JvdW5kQ29sb3IuR3JlZW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8vIC0tIFNwbGl0IC0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ3NwbGl0JyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1NwbGl0IGEgc3RyaW5nIGJ5IGEgZGVsaW1pdGVyJyxcbiAgICAgICAgICAgICAgICBhbGxvd1VubGlzdGVkQ29tbWFuZHM6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdieScsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2QnLCAnZGVsaW1pdGVyJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0RlbGltaXRlciB0byBzcGxpdCBieSAoZGVmYXVsdDogc3BhY2UpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gKGNvbW1hbmQudmFsdWUgfHwgY29tbWFuZC5kYXRhIHx8ICcnKSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlbGltaXRlciA9IGNvbW1hbmQuYXJnc1snYnknXSB8fCBjb21tYW5kLmFyZ3NbJ2QnXSB8fCBjb21tYW5kLmFyZ3NbJ2RlbGltaXRlciddIHx8ICcgJztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFydHMgPSB0ZXh0LnNwbGl0KGRlbGltaXRlcik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd3JpdGVyIH0gPSBjb250ZXh0O1xuXG4gICAgICAgICAgICAgICAgICAgIHBhcnRzLmZvckVhY2goKHBhcnQsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKFN0cmluZyhpKS5wYWRTdGFydCgzKSwgQ2xpRm9yZWdyb3VuZENvbG9yLlllbGxvdyl9ICAke3BhcnR9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnByb2Nlc3Mub3V0cHV0KHBhcnRzKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdyaXRlRGVzY3JpcHRpb246IChjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdyaXRlciB9ID0gY29udGV4dDtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ1NwbGl0IGEgc3RyaW5nIGludG8gcGFydHMgYnkgYSBkZWxpbWl0ZXInKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ/Cfk4sgVXNhZ2U6Jyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoJ3N0cmluZyBzcGxpdCA8dGV4dD4gWy0tYnk9PGRlbGltaXRlcj5dJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OdIEV4YW1wbGVzOicpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgIHN0cmluZyBzcGxpdCBcImEsYixjXCIgLS1ieT0sICAgICAgJHt3cml0ZXIud3JhcEluQ29sb3IoJyMg4oaSIGEgIGIgIGMnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuR3JlZW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8vIC0tIFdvcmRzIC0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ3dvcmRzJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1NwbGl0IGEgc3RyaW5nIGludG8gd29yZHMnLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IChjb21tYW5kLnZhbHVlIHx8IGNvbW1hbmQuZGF0YSB8fCAnJykgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3Jkczogc3RyaW5nW10gPSBsb2Rhc2gud29yZHModGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd3JpdGVyIH0gPSBjb250ZXh0O1xuXG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7d3JpdGVyLndyYXBJbkNvbG9yKGAke3dvcmRzLmxlbmd0aH0gd29yZHM6YCwgQ2xpRm9yZWdyb3VuZENvbG9yLlllbGxvdyl9ICR7d29yZHMuam9pbignLCAnKX1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnByb2Nlc3Mub3V0cHV0KHdvcmRzKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdyaXRlRGVzY3JpcHRpb246IChjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdyaXRlciB9ID0gY29udGV4dDtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ1NwbGl0IGEgc3RyaW5nIGludG8gaXRzIGNvbXBvbmVudCB3b3JkcycpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbign8J+TiyBVc2FnZTonKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcignc3RyaW5nIHdvcmRzIDx0ZXh0PicsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbign8J+TnSBFeGFtcGxlczonKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICBzdHJpbmcgd29yZHMgXCJoZWxsb1dvcmxkXCIgICAgICAgICAke3dyaXRlci53cmFwSW5Db2xvcignIyDihpIgaGVsbG8sIFdvcmxkJywgQ2xpRm9yZWdyb3VuZENvbG9yLkdyZWVuKX1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgIHN0cmluZyB3b3JkcyBcImZvby1iYXJfYmF6XCIgICAgICAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCcjIOKGkiBmb28sIGJhciwgYmF6JywgQ2xpRm9yZWdyb3VuZENvbG9yLkdyZWVuKX1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAvLyAtLSBBbmFseXNpcyAtLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdsZW5ndGgnLFxuICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnbGVuJ10sXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdHZXQgdGhlIGxlbmd0aCBvZiBhIHN0cmluZycsXG4gICAgICAgICAgICAgICAgYWxsb3dVbmxpc3RlZENvbW1hbmRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbHVlUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gKGNvbW1hbmQudmFsdWUgfHwgY29tbWFuZC5kYXRhIHx8ICcnKSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgJHtjb250ZXh0LndyaXRlci53cmFwSW5Db2xvcignUmVzdWx0OiAnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuWWVsbG93KX0ke3RleHQubGVuZ3RofWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQucHJvY2Vzcy5vdXRwdXQodGV4dC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgd3JpdGVEZXNjcmlwdGlvbjogKGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd3JpdGVyIH0gPSBjb250ZXh0O1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbignR2V0IHRoZSBjaGFyYWN0ZXIgY291bnQgb2YgYSBzdHJpbmcnKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ/Cfk4sgVXNhZ2U6Jyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoJ3N0cmluZyBsZW5ndGggPHRleHQ+JywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ3djJyxcbiAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ3dvcmRjb3VudCcsICdjb3VudCddLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ291bnQgbGluZXMsIHdvcmRzLCBjaGFyYWN0ZXJzLCBhbmQgYnl0ZXMnLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IChjb21tYW5kLnZhbHVlIHx8IGNvbW1hbmQuZGF0YSB8fCAnJykgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdyaXRlciB9ID0gY29udGV4dDtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBsaW5lcyA9IHRleHQuc3BsaXQoL1xccj9cXG4vKS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdvcmRDb3VudCA9IHRleHQudHJpbSgpID8gdGV4dC50cmltKCkuc3BsaXQoL1xccysvKS5sZW5ndGggOiAwO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFycyA9IHRleHQubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBieXRlcyA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh0ZXh0KS5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcignTGluZXM6JywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfSAgICAgICAke2xpbmVzfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoJ1dvcmRzOicsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX0gICAgICAgJHt3b3JkQ291bnR9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcignQ2hhcmFjdGVyczonLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9ICAke2NoYXJzfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoJ0J5dGVzOicsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX0gICAgICAgJHtieXRlc31gLFxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQucHJvY2Vzcy5vdXRwdXQoeyBsaW5lcywgd29yZHM6IHdvcmRDb3VudCwgY2hhcnMsIGJ5dGVzIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgd3JpdGVEZXNjcmlwdGlvbjogKGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd3JpdGVyIH0gPSBjb250ZXh0O1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbignQ291bnQgbGluZXMsIHdvcmRzLCBjaGFyYWN0ZXJzLCBhbmQgYnl0ZXMgaW4gdGV4dCcpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbign8J+TiyBVc2FnZTonKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcignc3RyaW5nIHdjIDx0ZXh0PicsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdpbmNsdWRlcycsXG4gICAgICAgICAgICAgICAgYWxpYXNlczogWydjb250YWlucycsICdoYXMnXSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0NoZWNrIGlmIGEgc3RyaW5nIGNvbnRhaW5zIGEgc3Vic3RyaW5nJyxcbiAgICAgICAgICAgICAgICBhbGxvd1VubGlzdGVkQ29tbWFuZHM6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdmaW5kJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnZiddLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdTdWJzdHJpbmcgdG8gc2VhcmNoIGZvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gKGNvbW1hbmQudmFsdWUgfHwgY29tbWFuZC5kYXRhIHx8ICcnKSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbmQgPSBjb21tYW5kLmFyZ3NbJ2ZpbmQnXSB8fCBjb21tYW5kLmFyZ3NbJ2YnXSB8fCAnJztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dC5pbmNsdWRlcyhmaW5kKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlU3VjY2VzcyhgXCIke2ZpbmR9XCIgZm91bmQgaW4gc3RyaW5nYCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVFcnJvcihgXCIke2ZpbmR9XCIgbm90IGZvdW5kIGluIHN0cmluZ2ApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQucHJvY2Vzcy5vdXRwdXQocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdyaXRlRGVzY3JpcHRpb246IChjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdyaXRlciB9ID0gY29udGV4dDtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ0NoZWNrIGlmIGEgc3RyaW5nIGNvbnRhaW5zIGEgZ2l2ZW4gc3Vic3RyaW5nJyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OLIFVzYWdlOicpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCdzdHJpbmcgaW5jbHVkZXMgPHRleHQ+IC0tZmluZD08c3Vic3RyaW5nPicsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdzdGFydHNXaXRoJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0NoZWNrIGlmIGEgc3RyaW5nIHN0YXJ0cyB3aXRoIGEgcHJlZml4JyxcbiAgICAgICAgICAgICAgICBhbGxvd1VubGlzdGVkQ29tbWFuZHM6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdmaW5kJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnZiddLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdQcmVmaXggdG8gY2hlY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IChjb21tYW5kLnZhbHVlIHx8IGNvbW1hbmQuZGF0YSB8fCAnJykgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaW5kID0gY29tbWFuZC5hcmdzWydmaW5kJ10gfHwgY29tbWFuZC5hcmdzWydmJ10gfHwgJyc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHQuc3RhcnRzV2l0aChmaW5kKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgJHt3cml0ZXIud3JhcEluQ29sb3IoJ1Jlc3VsdDogJywgQ2xpRm9yZWdyb3VuZENvbG9yLlllbGxvdyl9JHtyZXN1bHR9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5wcm9jZXNzLm91dHB1dChyZXN1bHQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgd3JpdGVEZXNjcmlwdGlvbjogKGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd3JpdGVyIH0gPSBjb250ZXh0O1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbignQ2hlY2sgaWYgYSBzdHJpbmcgc3RhcnRzIHdpdGggYSBnaXZlbiBwcmVmaXgnKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ/Cfk4sgVXNhZ2U6Jyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoJ3N0cmluZyBzdGFydHNXaXRoIDx0ZXh0PiAtLWZpbmQ9PHByZWZpeD4nLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAnZW5kc1dpdGgnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ2hlY2sgaWYgYSBzdHJpbmcgZW5kcyB3aXRoIGEgc3VmZml4JyxcbiAgICAgICAgICAgICAgICBhbGxvd1VubGlzdGVkQ29tbWFuZHM6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdmaW5kJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnZiddLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdTdWZmaXggdG8gY2hlY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IChjb21tYW5kLnZhbHVlIHx8IGNvbW1hbmQuZGF0YSB8fCAnJykgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaW5kID0gY29tbWFuZC5hcmdzWydmaW5kJ10gfHwgY29tbWFuZC5hcmdzWydmJ10gfHwgJyc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRleHQuZW5kc1dpdGgoZmluZCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd3JpdGVyIH0gPSBjb250ZXh0O1xuXG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7d3JpdGVyLndyYXBJbkNvbG9yKCdSZXN1bHQ6ICcsIENsaUZvcmVncm91bmRDb2xvci5ZZWxsb3cpfSR7cmVzdWx0fWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQucHJvY2Vzcy5vdXRwdXQocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdyaXRlRGVzY3JpcHRpb246IChjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdyaXRlciB9ID0gY29udGV4dDtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ0NoZWNrIGlmIGEgc3RyaW5nIGVuZHMgd2l0aCBhIGdpdmVuIHN1ZmZpeCcpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbign8J+TiyBVc2FnZTonKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcignc3RyaW5nIGVuZHNXaXRoIDx0ZXh0PiAtLWZpbmQ9PHN1ZmZpeD4nLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBhc3luYyBwcm9jZXNzQ29tbWFuZChcbiAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb250ZXh0LmV4ZWN1dG9yLnNob3dIZWxwKGNvbW1hbmQsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHdyaXRlRGVzY3JpcHRpb24oY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKCdTdHJpbmcgbWFuaXB1bGF0aW9uIGFuZCBhbmFseXNpcyBjb21tYW5kcycpO1xuICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgIHdyaXRlci53cmFwSW5Db2xvcign8J+UoCBDYXNlIENvbnZlcnNpb25zOicsIENsaUZvcmVncm91bmRDb2xvci5ZZWxsb3cpLFxuICAgICAgICApO1xuICAgICAgICB3cml0ZXIud3JpdGVsbihgICAke3dyaXRlci53cmFwSW5Db2xvcignc3RyaW5nIHVwcGVyJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfSAvICR7d3JpdGVyLndyYXBJbkNvbG9yKCdsb3dlcicsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX0gLyAke3dyaXRlci53cmFwSW5Db2xvcignY2FwaXRhbGl6ZScsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX1gKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoJ3N0cmluZyBjYW1lbENhc2UnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9IC8gJHt3cml0ZXIud3JhcEluQ29sb3IoJ2tlYmFiQ2FzZScsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX0gLyAke3dyaXRlci53cmFwSW5Db2xvcignc25ha2VDYXNlJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfSAvICR7d3JpdGVyLndyYXBJbkNvbG9yKCdzdGFydENhc2UnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9YCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgd3JpdGVyLndyYXBJbkNvbG9yKCfwn5SnIFRyYW5zZm9ybTonLCBDbGlGb3JlZ3JvdW5kQ29sb3IuWWVsbG93KSxcbiAgICAgICAgKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoJ3N0cmluZyByZXZlcnNlJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfSAvICR7d3JpdGVyLndyYXBJbkNvbG9yKCd0cmltJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfSAvICR7d3JpdGVyLndyYXBJbkNvbG9yKCdzbHVnJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfSAvICR7d3JpdGVyLndyYXBJbkNvbG9yKCdyZXBlYXQnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9IC8gJHt3cml0ZXIud3JhcEluQ29sb3IoJ3JlcGxhY2UnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9IC8gJHt3cml0ZXIud3JhcEluQ29sb3IoJ3RydW5jYXRlJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfWApO1xuICAgICAgICB3cml0ZXIud3JpdGVsbihgICAke3dyaXRlci53cmFwSW5Db2xvcignc3RyaW5nIHBhZCcsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX0gLyAke3dyaXRlci53cmFwSW5Db2xvcignZXNjYXBlJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfSAvICR7d3JpdGVyLndyYXBJbkNvbG9yKCd1bmVzY2FwZScsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX1gKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICB3cml0ZXIud3JhcEluQ29sb3IoJ/CflI0gQW5hbHlzaXM6JywgQ2xpRm9yZWdyb3VuZENvbG9yLlllbGxvdyksXG4gICAgICAgICk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCdzdHJpbmcgbGVuZ3RoJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfSAvICR7d3JpdGVyLndyYXBJbkNvbG9yKCd3YycsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX0gLyAke3dyaXRlci53cmFwSW5Db2xvcignaW5jbHVkZXMnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9IC8gJHt3cml0ZXIud3JhcEluQ29sb3IoJ3N0YXJ0c1dpdGgnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9IC8gJHt3cml0ZXIud3JhcEluQ29sb3IoJ2VuZHNXaXRoJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfWApO1xuICAgICAgICB3cml0ZXIud3JpdGVsbihgICAke3dyaXRlci53cmFwSW5Db2xvcignc3RyaW5nIHNwbGl0JywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfSAvICR7d3JpdGVyLndyYXBJbkNvbG9yKCd3b3JkcycsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX1gKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oJ/Cfk50gRXhhbXBsZXM6Jyk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgIHN0cmluZyBjYW1lbENhc2UgXCJoZWxsbyB3b3JsZFwiICAgICAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCcjIOKGkiBoZWxsb1dvcmxkJywgQ2xpRm9yZWdyb3VuZENvbG9yLkdyZWVuKX1gKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oYCAgc3RyaW5nIHJldmVyc2UgSGVsbG8gICAgICAgICAgICAgICAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCcjIOKGkiBvbGxlSCcsIENsaUZvcmVncm91bmRDb2xvci5HcmVlbil9YCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgIHN0cmluZyBzbHVnIFwiSGVsbG8gV29ybGQhXCIgICAgICAgICAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCcjIOKGkiBoZWxsby13b3JsZCcsIENsaUZvcmVncm91bmRDb2xvci5HcmVlbil9YCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgIHN0cmluZyB3YyBcInNvbWUgdGV4dCBoZXJlXCIgICAgICAgICAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCcjIHdvcmQvY2hhciBjb3VudHMnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuR3JlZW4pfWApO1xuICAgIH1cbn1cbiJdfQ==
|
|
546
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXN0cmluZy1jb21tYW5kLXByb2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmluZy9zcmMvbGliL3Byb2Nlc3NvcnMvY2xpLXN0cmluZy1jb21tYW5kLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDSCxrQkFBa0IsRUFHbEIsb0JBQW9CLEdBR3ZCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFFN0MsTUFBTSxNQUFNLEdBQUksQ0FBUyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7QUFFdkM7O0dBRUc7QUFDSCxTQUFTLGVBQWUsQ0FDcEIsT0FBZSxFQUNmLFdBQW1CLEVBQ25CLFNBQW1DLEVBQ25DLE9BR0M7SUFFRCxPQUFPO1FBQ0gsT0FBTztRQUNQLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTztRQUN6QixXQUFXO1FBQ1gscUJBQXFCLEVBQUUsSUFBSTtRQUMzQixhQUFhLEVBQUUsSUFBSTtRQUNuQixjQUFjLEVBQUUsS0FBSyxFQUNqQixHQUFzQixFQUN0QixPQUE2QixFQUMvQixFQUFFO1lBQ0EsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFXLENBQUM7WUFDckQsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUNsQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FDbEYs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QUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1SCxNQUFNLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxNQUFNLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuSSxDQUFDOytHQW5vQlEseUJBQXlCO21IQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENsaUZvcmVncm91bmRDb2xvcixcbiAgICBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICBDbGlQcm9jZXNzb3JNZXRhZGF0YSxcbiAgICBEZWZhdWx0TGlicmFyeUF1dGhvcixcbiAgICBJQ2xpQ29tbWFuZFByb2Nlc3NvcixcbiAgICBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbn0gZnJvbSAnQHFvZGFsaXMvY2xpLWNvcmUnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTElCUkFSWV9WRVJTSU9OIH0gZnJvbSAnLi4vdmVyc2lvbic7XG5cbmNvbnN0IGxvZGFzaCA9IChfIGFzIGFueSkuZGVmYXVsdCB8fCBfO1xuXG4vKipcbiAqIEhlbHBlciB0byBjcmVhdGUgYSBzaW1wbGUgc3RyaW5nIHRyYW5zZm9ybSBzdWJjb21tYW5kXG4gKi9cbmZ1bmN0aW9uIHN0cmluZ1RyYW5zZm9ybShcbiAgICBjb21tYW5kOiBzdHJpbmcsXG4gICAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgICB0cmFuc2Zvcm06ICh0ZXh0OiBzdHJpbmcpID0+IHN0cmluZyxcbiAgICBvcHRpb25zPzoge1xuICAgICAgICBhbGlhc2VzPzogc3RyaW5nW107XG4gICAgICAgIGV4YW1wbGU/OiB7IGlucHV0OiBzdHJpbmc7IG91dHB1dDogc3RyaW5nIH07XG4gICAgfSxcbik6IElDbGlDb21tYW5kUHJvY2Vzc29yIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBjb21tYW5kLFxuICAgICAgICBhbGlhc2VzOiBvcHRpb25zPy5hbGlhc2VzLFxuICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgYWxsb3dVbmxpc3RlZENvbW1hbmRzOiB0cnVlLFxuICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKFxuICAgICAgICAgICAgY21kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSAoY21kLnZhbHVlIHx8IGNtZC5kYXRhIHx8ICcnKSBhcyBzdHJpbmc7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0cmFuc2Zvcm0odGV4dCk7XG4gICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgIGAke2NvbnRleHQud3JpdGVyLndyYXBJbkNvbG9yKCdSZXN1bHQ6ICcsIENsaUZvcmVncm91bmRDb2xvci5ZZWxsb3cpfSR7cmVzdWx0fWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29udGV4dC5wcm9jZXNzLm91dHB1dChyZXN1bHQpO1xuICAgICAgICB9LFxuICAgICAgICB3cml0ZURlc2NyaXB0aW9uOiAoY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgd3JpdGVyIH0gPSBjb250ZXh0O1xuICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OLIFVzYWdlOicpO1xuICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoYHN0cmluZyAke2NvbW1hbmR9IDx0ZXh0PmAsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zPy5leGFtcGxlKSB7XG4gICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbign8J+TnSBFeGFtcGxlczonKTtcbiAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgYCAgc3RyaW5nICR7Y29tbWFuZH0gJHtvcHRpb25zLmV4YW1wbGUuaW5wdXQucGFkRW5kKDIwKX0gJHt3cml0ZXIud3JhcEluQ29sb3IoYCMg4oaSICR7b3B0aW9ucy5leGFtcGxlLm91dHB1dH1gLCBDbGlGb3JlZ3JvdW5kQ29sb3IuR3JlZW4pfWAsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2xpU3RyaW5nQ29tbWFuZFByb2Nlc3NvciBpbXBsZW1lbnRzIElDbGlDb21tYW5kUHJvY2Vzc29yIHtcbiAgICBjb21tYW5kID0gJ3N0cmluZyc7XG5cbiAgICBhbGlhc2VzID0gWydzdHInXTtcblxuICAgIGRlc2NyaXB0aW9uID0gJ1N0cmluZyBtYW5pcHVsYXRpb24gY29tbWFuZHMnO1xuXG4gICAgYXV0aG9yID0gRGVmYXVsdExpYnJhcnlBdXRob3I7XG5cbiAgICB2ZXJzaW9uID0gTElCUkFSWV9WRVJTSU9OO1xuXG4gICAgcHJvY2Vzc29ycz86IElDbGlDb21tYW5kUHJvY2Vzc29yW10gPSBbXTtcblxuICAgIG1ldGFkYXRhPzogQ2xpUHJvY2Vzc29yTWV0YWRhdGEgPSB7XG4gICAgICAgIGljb246ICfwn5SkJyxcbiAgICAgICAgcmVxdWlyZWRDb3JlVmVyc2lvbjogJzAuMC4xNicsXG4gICAgICAgIHJlcXVpcmVkQ2xpVmVyc2lvbjogJzEuMC4zNycsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnByb2Nlc3NvcnMgPSBbXG4gICAgICAgICAgICAvLyAtLSBDYXNlIGNvbnZlcnNpb25zIC0tXG4gICAgICAgICAgICBzdHJpbmdUcmFuc2Zvcm0oJ3VwcGVyJywgJ0NvbnZlcnQgdG8gVVBQRVJDQVNFJywgKHQpID0+IHQudG9VcHBlckNhc2UoKSwge1xuICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsndXBwZXJjYXNlJywgJ3RvVXBwZXInXSxcbiAgICAgICAgICAgICAgICBleGFtcGxlOiB7IGlucHV0OiAnaGVsbG8gd29ybGQnLCBvdXRwdXQ6ICdIRUxMTyBXT1JMRCcgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3RyaW5nVHJhbnNmb3JtKCdsb3dlcicsICdDb252ZXJ0IHRvIGxvd2VyY2FzZScsICh0KSA9PiB0LnRvTG93ZXJDYXNlKCksIHtcbiAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2xvd2VyY2FzZScsICd0b0xvd2VyJ10sXG4gICAgICAgICAgICAgICAgZXhhbXBsZTogeyBpbnB1dDogJ0hFTExPIFdPUkxEJywgb3V0cHV0OiAnaGVsbG8gd29ybGQnIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN0cmluZ1RyYW5zZm9ybSgnY2FwaXRhbGl6ZScsICdDYXBpdGFsaXplIHRoZSBmaXJzdCBsZXR0ZXInLCAodCkgPT4gbG9kYXNoLmNhcGl0YWxpemUodCksIHtcbiAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2NhcCddLFxuICAgICAgICAgICAgICAgIGV4YW1wbGU6IHsgaW5wdXQ6ICdoZWxsbyB3b3JsZCcsIG91dHB1dDogJ0hlbGxvIHdvcmxkJyB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdHJpbmdUcmFuc2Zvcm0oJ2NhbWVsQ2FzZScsICdDb252ZXJ0IHRvIGNhbWVsQ2FzZScsICh0KSA9PiBsb2Rhc2guY2FtZWxDYXNlKHQpLCB7XG4gICAgICAgICAgICAgICAgYWxpYXNlczogWydjYW1lbCddLFxuICAgICAgICAgICAgICAgIGV4YW1wbGU6IHsgaW5wdXQ6ICdoZWxsbyB3b3JsZCcsIG91dHB1dDogJ2hlbGxvV29ybGQnIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN0cmluZ1RyYW5zZm9ybSgna2ViYWJDYXNlJywgJ0NvbnZlcnQgdG8ga2ViYWItY2FzZScsICh0KSA9PiBsb2Rhc2gua2ViYWJDYXNlKHQpLCB7XG4gICAgICAgICAgICAgICAgYWxpYXNlczogWydrZWJhYiddLFxuICAgICAgICAgICAgICAgIGV4YW1wbGU6IHsgaW5wdXQ6ICdIZWxsbyBXb3JsZCcsIG91dHB1dDogJ2hlbGxvLXdvcmxkJyB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdHJpbmdUcmFuc2Zvcm0oJ3NuYWtlQ2FzZScsICdDb252ZXJ0IHRvIHNuYWtlX2Nhc2UnLCAodCkgPT4gbG9kYXNoLnNuYWtlQ2FzZSh0KSwge1xuICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnc25ha2UnXSxcbiAgICAgICAgICAgICAgICBleGFtcGxlOiB7IGlucHV0OiAnSGVsbG8gV29ybGQnLCBvdXRwdXQ6ICdoZWxsb193b3JsZCcgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3RyaW5nVHJhbnNmb3JtKCdzdGFydENhc2UnLCAnQ29udmVydCB0byBTdGFydCBDYXNlJywgKHQpID0+IGxvZGFzaC5zdGFydENhc2UodCksIHtcbiAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ3RpdGxlJywgJ3RpdGxlQ2FzZSddLFxuICAgICAgICAgICAgICAgIGV4YW1wbGU6IHsgaW5wdXQ6ICdoZWxsby13b3JsZCcsIG91dHB1dDogJ0hlbGxvIFdvcmxkJyB9LFxuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIC8vIC0tIFRyaW1taW5nIC0tXG4gICAgICAgICAgICBzdHJpbmdUcmFuc2Zvcm0oJ3RyaW0nLCAnUmVtb3ZlIHdoaXRlc3BhY2UgZnJvbSBib3RoIGVuZHMnLCAodCkgPT4gdC50cmltKCksIHtcbiAgICAgICAgICAgICAgICBleGFtcGxlOiB7IGlucHV0OiAnXCIgIGhlbGxvICBcIicsIG91dHB1dDogJ2hlbGxvJyB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdHJpbmdUcmFuc2Zvcm0oJ3RyaW1TdGFydCcsICdSZW1vdmUgd2hpdGVzcGFjZSBmcm9tIHRoZSBzdGFydCcsICh0KSA9PiB0LnRyaW1TdGFydCgpLCB7XG4gICAgICAgICAgICAgICAgYWxpYXNlczogWydsdHJpbSddLFxuICAgICAgICAgICAgICAgIGV4YW1wbGU6IHsgaW5wdXQ6ICdcIiAgaGVsbG9cIicsIG91dHB1dDogJ2hlbGxvJyB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzdHJpbmdUcmFuc2Zvcm0oJ3RyaW1FbmQnLCAnUmVtb3ZlIHdoaXRlc3BhY2UgZnJvbSB0aGUgZW5kJywgKHQpID0+IHQudHJpbUVuZCgpLCB7XG4gICAgICAgICAgICAgICAgYWxpYXNlczogWydydHJpbSddLFxuICAgICAgICAgICAgICAgIGV4YW1wbGU6IHsgaW5wdXQ6ICdcImhlbGxvICBcIicsIG91dHB1dDogJ2hlbGxvJyB9LFxuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIC8vIC0tIFRyYW5zZm9ybSAtLVxuICAgICAgICAgICAgc3RyaW5nVHJhbnNmb3JtKCdyZXZlcnNlJywgJ1JldmVyc2UgYSBzdHJpbmcnLCAodCkgPT4gWy4uLnRdLnJldmVyc2UoKS5qb2luKCcnKSwge1xuICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsncmV2J10sXG4gICAgICAgICAgICAgICAgZXhhbXBsZTogeyBpbnB1dDogJ0hlbGxvJywgb3V0cHV0OiAnb2xsZUgnIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN0cmluZ1RyYW5zZm9ybSgnc2x1ZycsICdDb252ZXJ0IHRvIFVSTC1mcmllbmRseSBzbHVnJywgKHQpID0+XG4gICAgICAgICAgICAgICAgdC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgIC5ub3JtYWxpemUoJ05GRCcpXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJylcbiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1teYS16MC05XSsvZywgJy0nKVxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvXi18LSQvZywgJycpLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydzbHVnaWZ5J10sXG4gICAgICAgICAgICAgICAgICAgIGV4YW1wbGU6IHsgaW5wdXQ6ICdcIkhlbGxvIFdvcmxkIVwiJywgb3V0cHV0OiAnaGVsbG8td29ybGQnIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdHJpbmdUcmFuc2Zvcm0oJ2VzY2FwZScsICdFc2NhcGUgSFRNTCBlbnRpdGllcycsICh0KSA9PiBsb2Rhc2guZXNjYXBlKHQpLCB7XG4gICAgICAgICAgICAgICAgYWxpYXNlczogWydlc2NhcGVIdG1sJ10sXG4gICAgICAgICAgICAgICAgZXhhbXBsZTogeyBpbnB1dDogJ1wiPGI+aGk8L2I+XCInLCBvdXRwdXQ6ICcmbHQ7YiZndDtoaSZsdDsvYiZndDsnIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN0cmluZ1RyYW5zZm9ybSgndW5lc2NhcGUnLCAnVW5lc2NhcGUgSFRNTCBlbnRpdGllcycsICh0KSA9PiBsb2Rhc2gudW5lc2NhcGUodCksIHtcbiAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ3VuZXNjYXBlSHRtbCddLFxuICAgICAgICAgICAgICAgIGV4YW1wbGU6IHsgaW5wdXQ6ICdcIiZsdDtiJmd0O1wiJywgb3V0cHV0OiAnPGI+JyB9LFxuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIC8vIC0tIFJlcGVhdCAtLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdyZXBlYXQnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUmVwZWF0IGEgc3RyaW5nIE4gdGltZXMnLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2NvdW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnbiddLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdOdW1iZXIgb2YgcmVwZXRpdGlvbnMgKGRlZmF1bHQ6IDIpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnc2VwYXJhdG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnc2VwJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1NlcGFyYXRvciBiZXR3ZWVuIHJlcGV0aXRpb25zIChkZWZhdWx0OiBub25lKScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IChjb21tYW5kLnZhbHVlIHx8IGNvbW1hbmQuZGF0YSB8fCAnJykgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb3VudCA9IE1hdGgubWluKHBhcnNlSW50KGNvbW1hbmQuYXJnc1snY291bnQnXSB8fCBjb21tYW5kLmFyZ3NbJ24nXSkgfHwgMiwgMTAwMCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlcCA9IGNvbW1hbmQuYXJnc1snc2VwYXJhdG9yJ10gfHwgY29tbWFuZC5hcmdzWydzZXAnXSB8fCAnJztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gQXJyYXkoY291bnQpLmZpbGwodGV4dCkuam9pbihzZXApO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7Y29udGV4dC53cml0ZXIud3JhcEluQ29sb3IoJ1Jlc3VsdDogJywgQ2xpRm9yZWdyb3VuZENvbG9yLlllbGxvdyl9JHtyZXN1bHR9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5wcm9jZXNzLm91dHB1dChyZXN1bHQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgd3JpdGVEZXNjcmlwdGlvbjogKGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd3JpdGVyIH0gPSBjb250ZXh0O1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbignUmVwZWF0IGEgc3RyaW5nIG11bHRpcGxlIHRpbWVzJyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OLIFVzYWdlOicpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCdzdHJpbmcgcmVwZWF0IDx0ZXh0PiBbLS1jb3VudD1OXSBbLS1zZXA9U10nLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ/Cfk50gRXhhbXBsZXM6Jyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgc3RyaW5nIHJlcGVhdCBoYSAtLWNvdW50PTMgICAgICAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCcjIOKGkiBoYWhhaGEnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuR3JlZW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgc3RyaW5nIHJlcGVhdCBhYiAtLW49MyAtLXNlcD0tICAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCcjIOKGkiBhYi1hYi1hYicsIENsaUZvcmVncm91bmRDb2xvci5HcmVlbil9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgLy8gLS0gUmVwbGFjZSAtLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdyZXBsYWNlJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1JlcGxhY2Ugb2NjdXJyZW5jZXMgaW4gYSBzdHJpbmcnLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2ZpbmQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydmJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RleHQgdG8gZmluZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnd2l0aCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ3cnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUmVwbGFjZW1lbnQgdGV4dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gKGNvbW1hbmQudmFsdWUgfHwgY29tbWFuZC5kYXRhIHx8ICcnKSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbmQgPSBjb21tYW5kLmFyZ3NbJ2ZpbmQnXSB8fCBjb21tYW5kLmFyZ3NbJ2YnXSB8fCAnJztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQgPSBjb21tYW5kLmFyZ3NbJ3dpdGgnXSB8fCBjb21tYW5kLmFyZ3NbJ3cnXSB8fCAnJztcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWZpbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlRXJyb3IoJy0tZmluZCBpcyByZXF1aXJlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5wcm9jZXNzLmV4aXQoLTEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dC5zcGxpdChmaW5kKS5qb2luKHJlcGxhY2VtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke2NvbnRleHQud3JpdGVyLndyYXBJbkNvbG9yKCdSZXN1bHQ6ICcsIENsaUZvcmVncm91bmRDb2xvci5ZZWxsb3cpfSR7cmVzdWx0fWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQucHJvY2Vzcy5vdXRwdXQocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdyaXRlRGVzY3JpcHRpb246IChjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdyaXRlciB9ID0gY29udGV4dDtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ1JlcGxhY2UgYWxsIG9jY3VycmVuY2VzIG9mIGEgc3Vic3RyaW5nJyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OLIFVzYWdlOicpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCdzdHJpbmcgcmVwbGFjZSA8dGV4dD4gLS1maW5kPTxzZWFyY2g+IC0td2l0aD08cmVwbGFjZW1lbnQ+JywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OdIEV4YW1wbGVzOicpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgIHN0cmluZyByZXBsYWNlIFwiaGVsbG8gd29ybGRcIiAtLWZpbmQ9d29ybGQgLS13aXRoPXRoZXJlYCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcignIyDihpIgaGVsbG8gdGhlcmUnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuR3JlZW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8vIC0tIFRydW5jYXRlIC0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ3RydW5jYXRlJyxcbiAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ3RydW5jJ10sXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUcnVuY2F0ZSBhIHN0cmluZyB0byBhIG1heCBsZW5ndGgnLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2xlbmd0aCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2wnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTWF4aW11bSBsZW5ndGggKGRlZmF1bHQ6IDMwKScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3N1ZmZpeCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ09taXNzaW9uIHN1ZmZpeCAoZGVmYXVsdDogLi4uKScsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NDb21tYW5kOiBhc3luYyAoXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IChjb21tYW5kLnZhbHVlIHx8IGNvbW1hbmQuZGF0YSB8fCAnJykgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGggPSBwYXJzZUludChjb21tYW5kLmFyZ3NbJ2xlbmd0aCddIHx8IGNvbW1hbmQuYXJnc1snbCddKSB8fCAzMDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VmZml4ID0gY29tbWFuZC5hcmdzWydzdWZmaXgnXSA/PyAnLi4uJztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dC5sZW5ndGggPiBsZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGV4dC5zdWJzdHJpbmcoMCwgbGVuZ3RoIC0gc3VmZml4Lmxlbmd0aCkgKyBzdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGV4dDtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke2NvbnRleHQud3JpdGVyLndyYXBJbkNvbG9yKCdSZXN1bHQ6ICcsIENsaUZvcmVncm91bmRDb2xvci5ZZWxsb3cpfSR7cmVzdWx0fWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQucHJvY2Vzcy5vdXRwdXQocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdyaXRlRGVzY3JpcHRpb246IChjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdyaXRlciB9ID0gY29udGV4dDtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ1RydW5jYXRlIGEgc3RyaW5nIHRvIGEgbWF4aW11bSBsZW5ndGggd2l0aCBhbiBlbGxpcHNpcycpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbign8J+TiyBVc2FnZTonKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcignc3RyaW5nIHRydW5jYXRlIDx0ZXh0PiBbLS1sZW5ndGg9Tl0gWy0tc3VmZml4PVNdJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8vIC0tIFBhZCAtLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdwYWQnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnUGFkIGEgc3RyaW5nIHRvIGEgdGFyZ2V0IGxlbmd0aCcsXG4gICAgICAgICAgICAgICAgYWxsb3dVbmxpc3RlZENvbW1hbmRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbHVlUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnbGVuZ3RoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnbCddLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUYXJnZXQgbGVuZ3RoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdjaGFyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnYyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdQYWRkaW5nIGNoYXJhY3RlciAoZGVmYXVsdDogc3BhY2UpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnc2lkZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1BhZCBzaWRlOiBsZWZ0LCByaWdodCwgYm90aCAoZGVmYXVsdDogYm90aCknLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKFxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSAoY29tbWFuZC52YWx1ZSB8fCBjb21tYW5kLmRhdGEgfHwgJycpIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gcGFyc2VJbnQoY29tbWFuZC5hcmdzWydsZW5ndGgnXSB8fCBjb21tYW5kLmFyZ3NbJ2wnXSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgPSBjb21tYW5kLmFyZ3NbJ2NoYXInXSB8fCBjb21tYW5kLmFyZ3NbJ2MnXSB8fCAnICc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpZGUgPSBjb21tYW5kLmFyZ3NbJ3NpZGUnXSB8fCAnYm90aCc7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmFOKGxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlRXJyb3IoJy0tbGVuZ3RoIGlzIHJlcXVpcmVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnByb2Nlc3MuZXhpdCgtMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc2lkZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzdGFydCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGV4dC5wYWRTdGFydChsZW5ndGgsIGNoYXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0ZXh0LnBhZEVuZChsZW5ndGgsIGNoYXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsb2Rhc2gucGFkKHRleHQsIGxlbmd0aCwgY2hhcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7Y29udGV4dC53cml0ZXIud3JhcEluQ29sb3IoJ1Jlc3VsdDogJywgQ2xpRm9yZWdyb3VuZENvbG9yLlllbGxvdyl9XCIke3Jlc3VsdH1cImAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQucHJvY2Vzcy5vdXRwdXQocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdyaXRlRGVzY3JpcHRpb246IChjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdyaXRlciB9ID0gY29udGV4dDtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ1BhZCBhIHN0cmluZyB0byBhIHRhcmdldCBsZW5ndGgnKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ/Cfk4sgVXNhZ2U6Jyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoJ3N0cmluZyBwYWQgPHRleHQ+IC0tbGVuZ3RoPU4gWy0tY2hhcj1DXSBbLS1zaWRlPWxlZnR8cmlnaHR8Ym90aF0nLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ/Cfk50gRXhhbXBsZXM6Jyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgc3RyaW5nIHBhZCBoZWxsbyAtLWxlbmd0aD0xMCAtLWNoYXI9LiAtLXNpZGU9cmlnaHRgLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCcjIOKGkiBcImhlbGxvLi4uLi5cIicsIENsaUZvcmVncm91bmRDb2xvci5HcmVlbil9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgLy8gLS0gU3BsaXQgLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAnc3BsaXQnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU3BsaXQgYSBzdHJpbmcgYnkgYSBkZWxpbWl0ZXInLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2J5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnZCcsICdkZWxpbWl0ZXInXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRGVsaW1pdGVyIHRvIHNwbGl0IGJ5IChkZWZhdWx0OiBzcGFjZSknLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKFxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSAoY29tbWFuZC52YWx1ZSB8fCBjb21tYW5kLmRhdGEgfHwgJycpIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVsaW1pdGVyID0gY29tbWFuZC5hcmdzWydieSddIHx8IGNvbW1hbmQuYXJnc1snZCddIHx8IGNvbW1hbmQuYXJnc1snZGVsaW1pdGVyJ10gfHwgJyAnO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHRleHQuc3BsaXQoZGVsaW1pdGVyKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgcGFydHMuZm9yRWFjaCgocGFydCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoU3RyaW5nKGkpLnBhZFN0YXJ0KDMpLCBDbGlGb3JlZ3JvdW5kQ29sb3IuWWVsbG93KX0gICR7cGFydH1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQucHJvY2Vzcy5vdXRwdXQocGFydHMpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgd3JpdGVEZXNjcmlwdGlvbjogKGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd3JpdGVyIH0gPSBjb250ZXh0O1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbignU3BsaXQgYSBzdHJpbmcgaW50byBwYXJ0cyBieSBhIGRlbGltaXRlcicpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbign8J+TiyBVc2FnZTonKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcignc3RyaW5nIHNwbGl0IDx0ZXh0PiBbLS1ieT08ZGVsaW1pdGVyPl0nLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ/Cfk50gRXhhbXBsZXM6Jyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgc3RyaW5nIHNwbGl0IFwiYSxiLGNcIiAtLWJ5PSwgICAgICAke3dyaXRlci53cmFwSW5Db2xvcignIyDihpIgYSAgYiAgYycsIENsaUZvcmVncm91bmRDb2xvci5HcmVlbil9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgLy8gLS0gV29yZHMgLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAnd29yZHMnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU3BsaXQgYSBzdHJpbmcgaW50byB3b3JkcycsXG4gICAgICAgICAgICAgICAgYWxsb3dVbmxpc3RlZENvbW1hbmRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbHVlUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gKGNvbW1hbmQudmFsdWUgfHwgY29tbWFuZC5kYXRhIHx8ICcnKSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdvcmRzOiBzdHJpbmdbXSA9IGxvZGFzaC53b3Jkcyh0ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgJHt3cml0ZXIud3JhcEluQ29sb3IoYCR7d29yZHMubGVuZ3RofSB3b3JkczpgLCBDbGlGb3JlZ3JvdW5kQ29sb3IuWWVsbG93KX0gJHt3b3Jkcy5qb2luKCcsICcpfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQucHJvY2Vzcy5vdXRwdXQod29yZHMpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgd3JpdGVEZXNjcmlwdGlvbjogKGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd3JpdGVyIH0gPSBjb250ZXh0O1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbignU3BsaXQgYSBzdHJpbmcgaW50byBpdHMgY29tcG9uZW50IHdvcmRzJyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OLIFVzYWdlOicpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCdzdHJpbmcgd29yZHMgPHRleHQ+JywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OdIEV4YW1wbGVzOicpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgIHN0cmluZyB3b3JkcyBcImhlbGxvV29ybGRcIiAgICAgICAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCcjIOKGkiBoZWxsbywgV29ybGQnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuR3JlZW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgc3RyaW5nIHdvcmRzIFwiZm9vLWJhcl9iYXpcIiAgICAgICAgJHt3cml0ZXIud3JhcEluQ29sb3IoJyMg4oaSIGZvbywgYmFyLCBiYXonLCBDbGlGb3JlZ3JvdW5kQ29sb3IuR3JlZW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8vIC0tIEFuYWx5c2lzIC0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ2xlbmd0aCcsXG4gICAgICAgICAgICAgICAgYWxpYXNlczogWydsZW4nXSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0dldCB0aGUgbGVuZ3RoIG9mIGEgc3RyaW5nJyxcbiAgICAgICAgICAgICAgICBhbGxvd1VubGlzdGVkQ29tbWFuZHM6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsdWVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKFxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSAoY29tbWFuZC52YWx1ZSB8fCBjb21tYW5kLmRhdGEgfHwgJycpIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke2NvbnRleHQud3JpdGVyLndyYXBJbkNvbG9yKCdSZXN1bHQ6ICcsIENsaUZvcmVncm91bmRDb2xvci5ZZWxsb3cpfSR7dGV4dC5sZW5ndGh9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5wcm9jZXNzLm91dHB1dCh0ZXh0Lmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB3cml0ZURlc2NyaXB0aW9uOiAoY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCdHZXQgdGhlIGNoYXJhY3RlciBjb3VudCBvZiBhIHN0cmluZycpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbign8J+TiyBVc2FnZTonKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcignc3RyaW5nIGxlbmd0aCA8dGV4dD4nLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAnd2MnLFxuICAgICAgICAgICAgICAgIGFsaWFzZXM6IFsnd29yZGNvdW50JywgJ2NvdW50J10sXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdDb3VudCBsaW5lcywgd29yZHMsIGNoYXJhY3RlcnMsIGFuZCBieXRlcycsXG4gICAgICAgICAgICAgICAgYWxsb3dVbmxpc3RlZENvbW1hbmRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbHVlUmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gKGNvbW1hbmQudmFsdWUgfHwgY29tbWFuZC5kYXRhIHx8ICcnKSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd3JpdGVyIH0gPSBjb250ZXh0O1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gdGV4dC5zcGxpdCgvXFxyP1xcbi8pLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd29yZENvdW50ID0gdGV4dC50cmltKCkgPyB0ZXh0LnRyaW0oKS5zcGxpdCgvXFxzKy8pLmxlbmd0aCA6IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXJzID0gdGV4dC5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJ5dGVzID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHRleHQpLmxlbmd0aDtcblxuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCdMaW5lczonLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9ICAgICAgICR7bGluZXN9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcignV29yZHM6JywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfSAgICAgICAke3dvcmRDb3VudH1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCdDaGFyYWN0ZXJzOicsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX0gICR7Y2hhcnN9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcignQnl0ZXM6JywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfSAgICAgICAke2J5dGVzfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5wcm9jZXNzLm91dHB1dCh7IGxpbmVzLCB3b3Jkczogd29yZENvdW50LCBjaGFycywgYnl0ZXMgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB3cml0ZURlc2NyaXB0aW9uOiAoY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCdDb3VudCBsaW5lcywgd29yZHMsIGNoYXJhY3RlcnMsIGFuZCBieXRlcyBpbiB0ZXh0Jyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OLIFVzYWdlOicpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCdzdHJpbmcgd2MgPHRleHQ+JywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ2luY2x1ZGVzJyxcbiAgICAgICAgICAgICAgICBhbGlhc2VzOiBbJ2NvbnRhaW5zJywgJ2hhcyddLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ2hlY2sgaWYgYSBzdHJpbmcgY29udGFpbnMgYSBzdWJzdHJpbmcnLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2ZpbmQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydmJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1N1YnN0cmluZyB0byBzZWFyY2ggZm9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzQ29tbWFuZDogYXN5bmMgKFxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSAoY29tbWFuZC52YWx1ZSB8fCBjb21tYW5kLmRhdGEgfHwgJycpIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmluZCA9IGNvbW1hbmQuYXJnc1snZmluZCddIHx8IGNvbW1hbmQuYXJnc1snZiddIHx8ICcnO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0ZXh0LmluY2x1ZGVzKGZpbmQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdyaXRlciB9ID0gY29udGV4dDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVTdWNjZXNzKGBcIiR7ZmluZH1cIiBmb3VuZCBpbiBzdHJpbmdgKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZUVycm9yKGBcIiR7ZmluZH1cIiBub3QgZm91bmQgaW4gc3RyaW5nYCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5wcm9jZXNzLm91dHB1dChyZXN1bHQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgd3JpdGVEZXNjcmlwdGlvbjogKGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd3JpdGVyIH0gPSBjb250ZXh0O1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbignQ2hlY2sgaWYgYSBzdHJpbmcgY29udGFpbnMgYSBnaXZlbiBzdWJzdHJpbmcnKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ/Cfk4sgVXNhZ2U6Jyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoJ3N0cmluZyBpbmNsdWRlcyA8dGV4dD4gLS1maW5kPTxzdWJzdHJpbmc+JywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29tbWFuZDogJ3N0YXJ0c1dpdGgnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ2hlY2sgaWYgYSBzdHJpbmcgc3RhcnRzIHdpdGggYSBwcmVmaXgnLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2ZpbmQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydmJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1ByZWZpeCB0byBjaGVjaycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gKGNvbW1hbmQudmFsdWUgfHwgY29tbWFuZC5kYXRhIHx8ICcnKSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbmQgPSBjb21tYW5kLmFyZ3NbJ2ZpbmQnXSB8fCBjb21tYW5kLmFyZ3NbJ2YnXSB8fCAnJztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dC5zdGFydHNXaXRoKGZpbmQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdyaXRlciB9ID0gY29udGV4dDtcblxuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke3dyaXRlci53cmFwSW5Db2xvcignUmVzdWx0OiAnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuWWVsbG93KX0ke3Jlc3VsdH1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnByb2Nlc3Mub3V0cHV0KHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB3cml0ZURlc2NyaXB0aW9uOiAoY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCdDaGVjayBpZiBhIHN0cmluZyBzdGFydHMgd2l0aCBhIGdpdmVuIHByZWZpeCcpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbign8J+TiyBVc2FnZTonKTtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgICAke3dyaXRlci53cmFwSW5Db2xvcignc3RyaW5nIHN0YXJ0c1dpdGggPHRleHQ+IC0tZmluZD08cHJlZml4PicsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdlbmRzV2l0aCcsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdDaGVjayBpZiBhIHN0cmluZyBlbmRzIHdpdGggYSBzdWZmaXgnLFxuICAgICAgICAgICAgICAgIGFsbG93VW5saXN0ZWRDb21tYW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2ZpbmQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNlczogWydmJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1N1ZmZpeCB0byBjaGVjaycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gKGNvbW1hbmQudmFsdWUgfHwgY29tbWFuZC5kYXRhIHx8ICcnKSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbmQgPSBjb21tYW5kLmFyZ3NbJ2ZpbmQnXSB8fCBjb21tYW5kLmFyZ3NbJ2YnXSB8fCAnJztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGV4dC5lbmRzV2l0aChmaW5kKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB3cml0ZXIgfSA9IGNvbnRleHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgJHt3cml0ZXIud3JhcEluQ29sb3IoJ1Jlc3VsdDogJywgQ2xpRm9yZWdyb3VuZENvbG9yLlllbGxvdyl9JHtyZXN1bHR9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5wcm9jZXNzLm91dHB1dChyZXN1bHQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgd3JpdGVEZXNjcmlwdGlvbjogKGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgd3JpdGVyIH0gPSBjb250ZXh0O1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbignQ2hlY2sgaWYgYSBzdHJpbmcgZW5kcyB3aXRoIGEgZ2l2ZW4gc3VmZml4Jyk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCfwn5OLIFVzYWdlOicpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCdzdHJpbmcgZW5kc1dpdGggPHRleHQ+IC0tZmluZD08c3VmZml4PicsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX1gLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIGFzeW5jIHByb2Nlc3NDb21tYW5kKFxuICAgICAgICBjb21tYW5kOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnRleHQuZXhlY3V0b3Iuc2hvd0hlbHAoY29tbWFuZCwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgd3JpdGVEZXNjcmlwdGlvbihjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHdyaXRlciB9ID0gY29udGV4dDtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oJ1N0cmluZyBtYW5pcHVsYXRpb24gYW5kIGFuYWx5c2lzIGNvbW1hbmRzJyk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKFxuICAgICAgICAgICAgd3JpdGVyLndyYXBJbkNvbG9yKCfwn5SgIENhc2UgQ29udmVyc2lvbnM6JywgQ2xpRm9yZWdyb3VuZENvbG9yLlllbGxvdyksXG4gICAgICAgICk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCdzdHJpbmcgdXBwZXInLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9IC8gJHt3cml0ZXIud3JhcEluQ29sb3IoJ2xvd2VyJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfSAvICR7d3JpdGVyLndyYXBJbkNvbG9yKCdjYXBpdGFsaXplJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfWApO1xuICAgICAgICB3cml0ZXIud3JpdGVsbihgICAke3dyaXRlci53cmFwSW5Db2xvcignc3RyaW5nIGNhbWVsQ2FzZScsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX0gLyAke3dyaXRlci53cmFwSW5Db2xvcigna2ViYWJDYXNlJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfSAvICR7d3JpdGVyLndyYXBJbkNvbG9yKCdzbmFrZUNhc2UnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9IC8gJHt3cml0ZXIud3JhcEluQ29sb3IoJ3N0YXJ0Q2FzZScsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX1gKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oXG4gICAgICAgICAgICB3cml0ZXIud3JhcEluQ29sb3IoJ/CflKcgVHJhbnNmb3JtOicsIENsaUZvcmVncm91bmRDb2xvci5ZZWxsb3cpLFxuICAgICAgICApO1xuICAgICAgICB3cml0ZXIud3JpdGVsbihgICAke3dyaXRlci53cmFwSW5Db2xvcignc3RyaW5nIHJldmVyc2UnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9IC8gJHt3cml0ZXIud3JhcEluQ29sb3IoJ3RyaW0nLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9IC8gJHt3cml0ZXIud3JhcEluQ29sb3IoJ3NsdWcnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9IC8gJHt3cml0ZXIud3JhcEluQ29sb3IoJ3JlcGVhdCcsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX0gLyAke3dyaXRlci53cmFwSW5Db2xvcigncmVwbGFjZScsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX0gLyAke3dyaXRlci53cmFwSW5Db2xvcigndHJ1bmNhdGUnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9YCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCdzdHJpbmcgcGFkJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfSAvICR7d3JpdGVyLndyYXBJbkNvbG9yKCdlc2NhcGUnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9IC8gJHt3cml0ZXIud3JhcEluQ29sb3IoJ3VuZXNjYXBlJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfWApO1xuICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICB3cml0ZXIud3JpdGVsbihcbiAgICAgICAgICAgIHdyaXRlci53cmFwSW5Db2xvcign8J+UjSBBbmFseXNpczonLCBDbGlGb3JlZ3JvdW5kQ29sb3IuWWVsbG93KSxcbiAgICAgICAgKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oYCAgJHt3cml0ZXIud3JhcEluQ29sb3IoJ3N0cmluZyBsZW5ndGgnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9IC8gJHt3cml0ZXIud3JhcEluQ29sb3IoJ3djJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfSAvICR7d3JpdGVyLndyYXBJbkNvbG9yKCdpbmNsdWRlcycsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX0gLyAke3dyaXRlci53cmFwSW5Db2xvcignc3RhcnRzV2l0aCcsIENsaUZvcmVncm91bmRDb2xvci5DeWFuKX0gLyAke3dyaXRlci53cmFwSW5Db2xvcignZW5kc1dpdGgnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9YCk7XG4gICAgICAgIHdyaXRlci53cml0ZWxuKGAgICR7d3JpdGVyLndyYXBJbkNvbG9yKCdzdHJpbmcgc3BsaXQnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuQ3lhbil9IC8gJHt3cml0ZXIud3JhcEluQ29sb3IoJ3dvcmRzJywgQ2xpRm9yZWdyb3VuZENvbG9yLkN5YW4pfWApO1xuICAgICAgICB3cml0ZXIud3JpdGVsbigpO1xuICAgICAgICB3cml0ZXIud3JpdGVsbign8J+TnSBFeGFtcGxlczonKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oYCAgc3RyaW5nIGNhbWVsQ2FzZSBcImhlbGxvIHdvcmxkXCIgICAgICAgJHt3cml0ZXIud3JhcEluQ29sb3IoJyMg4oaSIGhlbGxvV29ybGQnLCBDbGlGb3JlZ3JvdW5kQ29sb3IuR3JlZW4pfWApO1xuICAgICAgICB3cml0ZXIud3JpdGVsbihgICBzdHJpbmcgcmV2ZXJzZSBIZWxsbyAgICAgICAgICAgICAgICAgJHt3cml0ZXIud3JhcEluQ29sb3IoJyMg4oaSIG9sbGVIJywgQ2xpRm9yZWdyb3VuZENvbG9yLkdyZWVuKX1gKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oYCAgc3RyaW5nIHNsdWcgXCJIZWxsbyBXb3JsZCFcIiAgICAgICAgICAgJHt3cml0ZXIud3JhcEluQ29sb3IoJyMg4oaSIGhlbGxvLXdvcmxkJywgQ2xpRm9yZWdyb3VuZENvbG9yLkdyZWVuKX1gKTtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oYCAgc3RyaW5nIHdjIFwic29tZSB0ZXh0IGhlcmVcIiAgICAgICAgICAgJHt3cml0ZXIud3JhcEluQ29sb3IoJyMgd29yZC9jaGFyIGNvdW50cycsIENsaUZvcmVncm91bmRDb2xvci5HcmVlbil9YCk7XG4gICAgfVxufVxuIl19
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Automatically generated during build
|
|
2
|
-
export const LIBRARY_VERSION = '0.0.
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export const LIBRARY_VERSION = '0.0.3';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmluZy9zcmMvbGliL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsdUNBQXVDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGR1cmluZyBidWlsZFxuZXhwb3J0IGNvbnN0IExJQlJBUllfVkVSU0lPTiA9ICcwLjAuMyc7XG4gICJdfQ==
|
|
@@ -5,7 +5,7 @@ import { CliForegroundColor, DefaultLibraryAuthor } from '@qodalis/cli-core';
|
|
|
5
5
|
import * as _ from 'lodash';
|
|
6
6
|
|
|
7
7
|
// Automatically generated during build
|
|
8
|
-
const LIBRARY_VERSION = '0.0.
|
|
8
|
+
const LIBRARY_VERSION = '0.0.3';
|
|
9
9
|
|
|
10
10
|
const lodash = _.default || _;
|
|
11
11
|
/**
|
|
@@ -48,6 +48,8 @@ class CliStringCommandProcessor {
|
|
|
48
48
|
this.processors = [];
|
|
49
49
|
this.metadata = {
|
|
50
50
|
icon: 'π€',
|
|
51
|
+
requiredCoreVersion: '0.0.16',
|
|
52
|
+
requiredCliVersion: '1.0.37',
|
|
51
53
|
};
|
|
52
54
|
this.processors = [
|
|
53
55
|
// -- Case conversions --
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qodalis-cli-string.mjs","sources":["../../../projects/string/src/lib/version.ts","../../../projects/string/src/lib/processors/cli-string-command-processor.ts","../../../projects/string/src/lib/cli-string.module.ts","../../../projects/string/src/public-api.ts","../../../projects/string/src/qodalis-cli-string.ts"],"sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '0.0.2';\n ","import { Injectable } from '@angular/core';\nimport {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\nimport * as _ from 'lodash';\nimport { LIBRARY_VERSION } from '../version';\n\nconst lodash = (_ as any).default || _;\n\n/**\n * Helper to create a simple string transform subcommand\n */\nfunction stringTransform(\n command: string,\n description: string,\n transform: (text: string) => string,\n options?: {\n aliases?: string[];\n example?: { input: string; output: string };\n },\n): ICliCommandProcessor {\n return {\n command,\n aliases: options?.aliases,\n description,\n allowUnlistedCommands: true,\n valueRequired: true,\n processCommand: async (\n cmd: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (cmd.value || cmd.data || '') as string;\n const result = transform(text);\n context.writer.writeln(\n `${context.writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}${result}`,\n );\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln(description);\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor(`string ${command} <text>`, CliForegroundColor.Cyan)}`,\n );\n if (options?.example) {\n writer.writeln();\n writer.writeln('π Examples:');\n writer.writeln(\n ` string ${command} ${options.example.input.padEnd(20)} ${writer.wrapInColor(`# β ${options.example.output}`, CliForegroundColor.Green)}`,\n );\n }\n },\n };\n}\n\n@Injectable()\nexport class CliStringCommandProcessor implements ICliCommandProcessor {\n command = 'string';\n\n aliases = ['str'];\n\n description = 'String manipulation commands';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n processors?: ICliCommandProcessor[] = [];\n\n metadata?: CliProcessorMetadata = {\n icon: 'π€',\n };\n\n constructor() {\n this.processors = [\n // -- Case conversions --\n stringTransform('upper', 'Convert to UPPERCASE', (t) => t.toUpperCase(), {\n aliases: ['uppercase', 'toUpper'],\n example: { input: 'hello world', output: 'HELLO WORLD' },\n }),\n stringTransform('lower', 'Convert to lowercase', (t) => t.toLowerCase(), {\n aliases: ['lowercase', 'toLower'],\n example: { input: 'HELLO WORLD', output: 'hello world' },\n }),\n stringTransform('capitalize', 'Capitalize the first letter', (t) => lodash.capitalize(t), {\n aliases: ['cap'],\n example: { input: 'hello world', output: 'Hello world' },\n }),\n stringTransform('camelCase', 'Convert to camelCase', (t) => lodash.camelCase(t), {\n aliases: ['camel'],\n example: { input: 'hello world', output: 'helloWorld' },\n }),\n stringTransform('kebabCase', 'Convert to kebab-case', (t) => lodash.kebabCase(t), {\n aliases: ['kebab'],\n example: { input: 'Hello World', output: 'hello-world' },\n }),\n stringTransform('snakeCase', 'Convert to snake_case', (t) => lodash.snakeCase(t), {\n aliases: ['snake'],\n example: { input: 'Hello World', output: 'hello_world' },\n }),\n stringTransform('startCase', 'Convert to Start Case', (t) => lodash.startCase(t), {\n aliases: ['title', 'titleCase'],\n example: { input: 'hello-world', output: 'Hello World' },\n }),\n\n // -- Trimming --\n stringTransform('trim', 'Remove whitespace from both ends', (t) => t.trim(), {\n example: { input: '\" hello \"', output: 'hello' },\n }),\n stringTransform('trimStart', 'Remove whitespace from the start', (t) => t.trimStart(), {\n aliases: ['ltrim'],\n example: { input: '\" hello\"', output: 'hello' },\n }),\n stringTransform('trimEnd', 'Remove whitespace from the end', (t) => t.trimEnd(), {\n aliases: ['rtrim'],\n example: { input: '\"hello \"', output: 'hello' },\n }),\n\n // -- Transform --\n stringTransform('reverse', 'Reverse a string', (t) => [...t].reverse().join(''), {\n aliases: ['rev'],\n example: { input: 'Hello', output: 'olleH' },\n }),\n stringTransform('slug', 'Convert to URL-friendly slug', (t) =>\n t.toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-|-$/g, ''),\n {\n aliases: ['slugify'],\n example: { input: '\"Hello World!\"', output: 'hello-world' },\n },\n ),\n stringTransform('escape', 'Escape HTML entities', (t) => lodash.escape(t), {\n aliases: ['escapeHtml'],\n example: { input: '\"<b>hi</b>\"', output: '<b>hi</b>' },\n }),\n stringTransform('unescape', 'Unescape HTML entities', (t) => lodash.unescape(t), {\n aliases: ['unescapeHtml'],\n example: { input: '\"<b>\"', output: '<b>' },\n }),\n\n // -- Repeat --\n {\n command: 'repeat',\n description: 'Repeat a string N times',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'count',\n aliases: ['n'],\n description: 'Number of repetitions (default: 2)',\n type: 'number',\n required: false,\n },\n {\n name: 'separator',\n aliases: ['sep'],\n description: 'Separator between repetitions (default: none)',\n type: 'string',\n required: false,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const count = Math.min(parseInt(command.args['count'] || command.args['n']) || 2, 1000);\n const sep = command.args['separator'] || command.args['sep'] || '';\n const result = Array(count).fill(text).join(sep);\n context.writer.writeln(\n `${context.writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}${result}`,\n );\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Repeat a string multiple times');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string repeat <text> [--count=N] [--sep=S]', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('π Examples:');\n writer.writeln(\n ` string repeat ha --count=3 ${writer.wrapInColor('# β hahaha', CliForegroundColor.Green)}`,\n );\n writer.writeln(\n ` string repeat ab --n=3 --sep=- ${writer.wrapInColor('# β ab-ab-ab', CliForegroundColor.Green)}`,\n );\n },\n },\n\n // -- Replace --\n {\n command: 'replace',\n description: 'Replace occurrences in a string',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'find',\n aliases: ['f'],\n description: 'Text to find',\n type: 'string',\n required: true,\n },\n {\n name: 'with',\n aliases: ['w'],\n description: 'Replacement text',\n type: 'string',\n required: true,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const find = command.args['find'] || command.args['f'] || '';\n const replacement = command.args['with'] || command.args['w'] || '';\n\n if (!find) {\n context.writer.writeError('--find is required');\n context.process.exit(-1);\n return;\n }\n\n const result = text.split(find).join(replacement);\n context.writer.writeln(\n `${context.writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}${result}`,\n );\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Replace all occurrences of a substring');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string replace <text> --find=<search> --with=<replacement>', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('π Examples:');\n writer.writeln(\n ` string replace \"hello world\" --find=world --with=there`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# β hello there', CliForegroundColor.Green)}`,\n );\n },\n },\n\n // -- Truncate --\n {\n command: 'truncate',\n aliases: ['trunc'],\n description: 'Truncate a string to a max length',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'length',\n aliases: ['l'],\n description: 'Maximum length (default: 30)',\n type: 'number',\n required: false,\n },\n {\n name: 'suffix',\n description: 'Omission suffix (default: ...)',\n type: 'string',\n required: false,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const length = parseInt(command.args['length'] || command.args['l']) || 30;\n const suffix = command.args['suffix'] ?? '...';\n const result = text.length > length\n ? text.substring(0, length - suffix.length) + suffix\n : text;\n context.writer.writeln(\n `${context.writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}${result}`,\n );\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Truncate a string to a maximum length with an ellipsis');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string truncate <text> [--length=N] [--suffix=S]', CliForegroundColor.Cyan)}`,\n );\n },\n },\n\n // -- Pad --\n {\n command: 'pad',\n description: 'Pad a string to a target length',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'length',\n aliases: ['l'],\n description: 'Target length',\n type: 'number',\n required: true,\n },\n {\n name: 'char',\n aliases: ['c'],\n description: 'Padding character (default: space)',\n type: 'string',\n required: false,\n },\n {\n name: 'side',\n description: 'Pad side: left, right, both (default: both)',\n type: 'string',\n required: false,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const length = parseInt(command.args['length'] || command.args['l']);\n const char = command.args['char'] || command.args['c'] || ' ';\n const side = command.args['side'] || 'both';\n\n if (isNaN(length)) {\n context.writer.writeError('--length is required');\n context.process.exit(-1);\n return;\n }\n\n let result: string;\n switch (side) {\n case 'left':\n case 'start':\n result = text.padStart(length, char);\n break;\n case 'right':\n case 'end':\n result = text.padEnd(length, char);\n break;\n default:\n result = lodash.pad(text, length, char);\n break;\n }\n\n context.writer.writeln(\n `${context.writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}\"${result}\"`,\n );\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Pad a string to a target length');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string pad <text> --length=N [--char=C] [--side=left|right|both]', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('π Examples:');\n writer.writeln(\n ` string pad hello --length=10 --char=. --side=right`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# β \"hello.....\"', CliForegroundColor.Green)}`,\n );\n },\n },\n\n // -- Split --\n {\n command: 'split',\n description: 'Split a string by a delimiter',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'by',\n aliases: ['d', 'delimiter'],\n description: 'Delimiter to split by (default: space)',\n type: 'string',\n required: false,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const delimiter = command.args['by'] || command.args['d'] || command.args['delimiter'] || ' ';\n const parts = text.split(delimiter);\n const { writer } = context;\n\n parts.forEach((part, i) => {\n writer.writeln(\n ` ${writer.wrapInColor(String(i).padStart(3), CliForegroundColor.Yellow)} ${part}`,\n );\n });\n context.process.output(parts);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Split a string into parts by a delimiter');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string split <text> [--by=<delimiter>]', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('π Examples:');\n writer.writeln(\n ` string split \"a,b,c\" --by=, ${writer.wrapInColor('# β a b c', CliForegroundColor.Green)}`,\n );\n },\n },\n\n // -- Words --\n {\n command: 'words',\n description: 'Split a string into words',\n allowUnlistedCommands: true,\n valueRequired: true,\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const words: string[] = lodash.words(text);\n const { writer } = context;\n\n writer.writeln(\n `${writer.wrapInColor(`${words.length} words:`, CliForegroundColor.Yellow)} ${words.join(', ')}`,\n );\n context.process.output(words);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Split a string into its component words');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string words <text>', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('π Examples:');\n writer.writeln(\n ` string words \"helloWorld\" ${writer.wrapInColor('# β hello, World', CliForegroundColor.Green)}`,\n );\n writer.writeln(\n ` string words \"foo-bar_baz\" ${writer.wrapInColor('# β foo, bar, baz', CliForegroundColor.Green)}`,\n );\n },\n },\n\n // -- Analysis --\n {\n command: 'length',\n aliases: ['len'],\n description: 'Get the length of a string',\n allowUnlistedCommands: true,\n valueRequired: true,\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n context.writer.writeln(\n `${context.writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}${text.length}`,\n );\n context.process.output(text.length);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Get the character count of a string');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string length <text>', CliForegroundColor.Cyan)}`,\n );\n },\n },\n {\n command: 'wc',\n aliases: ['wordcount', 'count'],\n description: 'Count lines, words, characters, and bytes',\n allowUnlistedCommands: true,\n valueRequired: true,\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const { writer } = context;\n\n const lines = text.split(/\\r?\\n/).length;\n const wordCount = text.trim() ? text.trim().split(/\\s+/).length : 0;\n const chars = text.length;\n const bytes = new TextEncoder().encode(text).length;\n\n writer.writeln(\n ` ${writer.wrapInColor('Lines:', CliForegroundColor.Cyan)} ${lines}`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('Words:', CliForegroundColor.Cyan)} ${wordCount}`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('Characters:', CliForegroundColor.Cyan)} ${chars}`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('Bytes:', CliForegroundColor.Cyan)} ${bytes}`,\n );\n\n context.process.output({ lines, words: wordCount, chars, bytes });\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Count lines, words, characters, and bytes in text');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string wc <text>', CliForegroundColor.Cyan)}`,\n );\n },\n },\n {\n command: 'includes',\n aliases: ['contains', 'has'],\n description: 'Check if a string contains a substring',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'find',\n aliases: ['f'],\n description: 'Substring to search for',\n type: 'string',\n required: true,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const find = command.args['find'] || command.args['f'] || '';\n const result = text.includes(find);\n const { writer } = context;\n\n if (result) {\n writer.writeSuccess(`\"${find}\" found in string`);\n } else {\n writer.writeError(`\"${find}\" not found in string`);\n }\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Check if a string contains a given substring');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string includes <text> --find=<substring>', CliForegroundColor.Cyan)}`,\n );\n },\n },\n {\n command: 'startsWith',\n description: 'Check if a string starts with a prefix',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'find',\n aliases: ['f'],\n description: 'Prefix to check',\n type: 'string',\n required: true,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const find = command.args['find'] || command.args['f'] || '';\n const result = text.startsWith(find);\n const { writer } = context;\n\n writer.writeln(\n `${writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}${result}`,\n );\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Check if a string starts with a given prefix');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string startsWith <text> --find=<prefix>', CliForegroundColor.Cyan)}`,\n );\n },\n },\n {\n command: 'endsWith',\n description: 'Check if a string ends with a suffix',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'find',\n aliases: ['f'],\n description: 'Suffix to check',\n type: 'string',\n required: true,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const find = command.args['find'] || command.args['f'] || '';\n const result = text.endsWith(find);\n const { writer } = context;\n\n writer.writeln(\n `${writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}${result}`,\n );\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Check if a string ends with a given suffix');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string endsWith <text> --find=<suffix>', CliForegroundColor.Cyan)}`,\n );\n },\n },\n ];\n }\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n context.executor.showHelp(command, context);\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln('String manipulation and analysis commands');\n writer.writeln();\n writer.writeln(\n writer.wrapInColor('π Case Conversions:', CliForegroundColor.Yellow),\n );\n writer.writeln(` ${writer.wrapInColor('string upper', CliForegroundColor.Cyan)} / ${writer.wrapInColor('lower', CliForegroundColor.Cyan)} / ${writer.wrapInColor('capitalize', CliForegroundColor.Cyan)}`);\n writer.writeln(` ${writer.wrapInColor('string camelCase', CliForegroundColor.Cyan)} / ${writer.wrapInColor('kebabCase', CliForegroundColor.Cyan)} / ${writer.wrapInColor('snakeCase', CliForegroundColor.Cyan)} / ${writer.wrapInColor('startCase', CliForegroundColor.Cyan)}`);\n writer.writeln();\n writer.writeln(\n writer.wrapInColor('π§ Transform:', CliForegroundColor.Yellow),\n );\n writer.writeln(` ${writer.wrapInColor('string reverse', CliForegroundColor.Cyan)} / ${writer.wrapInColor('trim', CliForegroundColor.Cyan)} / ${writer.wrapInColor('slug', CliForegroundColor.Cyan)} / ${writer.wrapInColor('repeat', CliForegroundColor.Cyan)} / ${writer.wrapInColor('replace', CliForegroundColor.Cyan)} / ${writer.wrapInColor('truncate', CliForegroundColor.Cyan)}`);\n writer.writeln(` ${writer.wrapInColor('string pad', CliForegroundColor.Cyan)} / ${writer.wrapInColor('escape', CliForegroundColor.Cyan)} / ${writer.wrapInColor('unescape', CliForegroundColor.Cyan)}`);\n writer.writeln();\n writer.writeln(\n writer.wrapInColor('π Analysis:', CliForegroundColor.Yellow),\n );\n writer.writeln(` ${writer.wrapInColor('string length', CliForegroundColor.Cyan)} / ${writer.wrapInColor('wc', CliForegroundColor.Cyan)} / ${writer.wrapInColor('includes', CliForegroundColor.Cyan)} / ${writer.wrapInColor('startsWith', CliForegroundColor.Cyan)} / ${writer.wrapInColor('endsWith', CliForegroundColor.Cyan)}`);\n writer.writeln(` ${writer.wrapInColor('string split', CliForegroundColor.Cyan)} / ${writer.wrapInColor('words', CliForegroundColor.Cyan)}`);\n writer.writeln();\n writer.writeln('π Examples:');\n writer.writeln(` string camelCase \"hello world\" ${writer.wrapInColor('# β helloWorld', CliForegroundColor.Green)}`);\n writer.writeln(` string reverse Hello ${writer.wrapInColor('# β olleH', CliForegroundColor.Green)}`);\n writer.writeln(` string slug \"Hello World!\" ${writer.wrapInColor('# β hello-world', CliForegroundColor.Green)}`);\n writer.writeln(` string wc \"some text here\" ${writer.wrapInColor('# word/char counts', CliForegroundColor.Green)}`);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { resolveCommandProcessorProvider } from '@qodalis/angular-cli';\nimport { CliStringCommandProcessor } from './processors/cli-string-command-processor';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [resolveCommandProcessorProvider(CliStringCommandProcessor)],\n})\nexport class CliStringModule {}\n","/*\n * Public API Surface of string\n */\n\nexport * from './lib/cli-string.module';\n\nexport * from './lib/processors/cli-string-command-processor';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"qodalis-cli-string.mjs","sources":["../../../projects/string/src/lib/version.ts","../../../projects/string/src/lib/processors/cli-string-command-processor.ts","../../../projects/string/src/lib/cli-string.module.ts","../../../projects/string/src/public-api.ts","../../../projects/string/src/qodalis-cli-string.ts"],"sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '0.0.3';\n ","import { Injectable } from '@angular/core';\nimport {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandProcessor,\n ICliExecutionContext,\n} from '@qodalis/cli-core';\nimport * as _ from 'lodash';\nimport { LIBRARY_VERSION } from '../version';\n\nconst lodash = (_ as any).default || _;\n\n/**\n * Helper to create a simple string transform subcommand\n */\nfunction stringTransform(\n command: string,\n description: string,\n transform: (text: string) => string,\n options?: {\n aliases?: string[];\n example?: { input: string; output: string };\n },\n): ICliCommandProcessor {\n return {\n command,\n aliases: options?.aliases,\n description,\n allowUnlistedCommands: true,\n valueRequired: true,\n processCommand: async (\n cmd: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (cmd.value || cmd.data || '') as string;\n const result = transform(text);\n context.writer.writeln(\n `${context.writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}${result}`,\n );\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln(description);\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor(`string ${command} <text>`, CliForegroundColor.Cyan)}`,\n );\n if (options?.example) {\n writer.writeln();\n writer.writeln('π Examples:');\n writer.writeln(\n ` string ${command} ${options.example.input.padEnd(20)} ${writer.wrapInColor(`# β ${options.example.output}`, CliForegroundColor.Green)}`,\n );\n }\n },\n };\n}\n\n@Injectable()\nexport class CliStringCommandProcessor implements ICliCommandProcessor {\n command = 'string';\n\n aliases = ['str'];\n\n description = 'String manipulation commands';\n\n author = DefaultLibraryAuthor;\n\n version = LIBRARY_VERSION;\n\n processors?: ICliCommandProcessor[] = [];\n\n metadata?: CliProcessorMetadata = {\n icon: 'π€',\n requiredCoreVersion: '0.0.16',\n requiredCliVersion: '1.0.37',\n };\n\n constructor() {\n this.processors = [\n // -- Case conversions --\n stringTransform('upper', 'Convert to UPPERCASE', (t) => t.toUpperCase(), {\n aliases: ['uppercase', 'toUpper'],\n example: { input: 'hello world', output: 'HELLO WORLD' },\n }),\n stringTransform('lower', 'Convert to lowercase', (t) => t.toLowerCase(), {\n aliases: ['lowercase', 'toLower'],\n example: { input: 'HELLO WORLD', output: 'hello world' },\n }),\n stringTransform('capitalize', 'Capitalize the first letter', (t) => lodash.capitalize(t), {\n aliases: ['cap'],\n example: { input: 'hello world', output: 'Hello world' },\n }),\n stringTransform('camelCase', 'Convert to camelCase', (t) => lodash.camelCase(t), {\n aliases: ['camel'],\n example: { input: 'hello world', output: 'helloWorld' },\n }),\n stringTransform('kebabCase', 'Convert to kebab-case', (t) => lodash.kebabCase(t), {\n aliases: ['kebab'],\n example: { input: 'Hello World', output: 'hello-world' },\n }),\n stringTransform('snakeCase', 'Convert to snake_case', (t) => lodash.snakeCase(t), {\n aliases: ['snake'],\n example: { input: 'Hello World', output: 'hello_world' },\n }),\n stringTransform('startCase', 'Convert to Start Case', (t) => lodash.startCase(t), {\n aliases: ['title', 'titleCase'],\n example: { input: 'hello-world', output: 'Hello World' },\n }),\n\n // -- Trimming --\n stringTransform('trim', 'Remove whitespace from both ends', (t) => t.trim(), {\n example: { input: '\" hello \"', output: 'hello' },\n }),\n stringTransform('trimStart', 'Remove whitespace from the start', (t) => t.trimStart(), {\n aliases: ['ltrim'],\n example: { input: '\" hello\"', output: 'hello' },\n }),\n stringTransform('trimEnd', 'Remove whitespace from the end', (t) => t.trimEnd(), {\n aliases: ['rtrim'],\n example: { input: '\"hello \"', output: 'hello' },\n }),\n\n // -- Transform --\n stringTransform('reverse', 'Reverse a string', (t) => [...t].reverse().join(''), {\n aliases: ['rev'],\n example: { input: 'Hello', output: 'olleH' },\n }),\n stringTransform('slug', 'Convert to URL-friendly slug', (t) =>\n t.toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-|-$/g, ''),\n {\n aliases: ['slugify'],\n example: { input: '\"Hello World!\"', output: 'hello-world' },\n },\n ),\n stringTransform('escape', 'Escape HTML entities', (t) => lodash.escape(t), {\n aliases: ['escapeHtml'],\n example: { input: '\"<b>hi</b>\"', output: '<b>hi</b>' },\n }),\n stringTransform('unescape', 'Unescape HTML entities', (t) => lodash.unescape(t), {\n aliases: ['unescapeHtml'],\n example: { input: '\"<b>\"', output: '<b>' },\n }),\n\n // -- Repeat --\n {\n command: 'repeat',\n description: 'Repeat a string N times',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'count',\n aliases: ['n'],\n description: 'Number of repetitions (default: 2)',\n type: 'number',\n required: false,\n },\n {\n name: 'separator',\n aliases: ['sep'],\n description: 'Separator between repetitions (default: none)',\n type: 'string',\n required: false,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const count = Math.min(parseInt(command.args['count'] || command.args['n']) || 2, 1000);\n const sep = command.args['separator'] || command.args['sep'] || '';\n const result = Array(count).fill(text).join(sep);\n context.writer.writeln(\n `${context.writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}${result}`,\n );\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Repeat a string multiple times');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string repeat <text> [--count=N] [--sep=S]', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('π Examples:');\n writer.writeln(\n ` string repeat ha --count=3 ${writer.wrapInColor('# β hahaha', CliForegroundColor.Green)}`,\n );\n writer.writeln(\n ` string repeat ab --n=3 --sep=- ${writer.wrapInColor('# β ab-ab-ab', CliForegroundColor.Green)}`,\n );\n },\n },\n\n // -- Replace --\n {\n command: 'replace',\n description: 'Replace occurrences in a string',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'find',\n aliases: ['f'],\n description: 'Text to find',\n type: 'string',\n required: true,\n },\n {\n name: 'with',\n aliases: ['w'],\n description: 'Replacement text',\n type: 'string',\n required: true,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const find = command.args['find'] || command.args['f'] || '';\n const replacement = command.args['with'] || command.args['w'] || '';\n\n if (!find) {\n context.writer.writeError('--find is required');\n context.process.exit(-1);\n return;\n }\n\n const result = text.split(find).join(replacement);\n context.writer.writeln(\n `${context.writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}${result}`,\n );\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Replace all occurrences of a substring');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string replace <text> --find=<search> --with=<replacement>', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('π Examples:');\n writer.writeln(\n ` string replace \"hello world\" --find=world --with=there`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# β hello there', CliForegroundColor.Green)}`,\n );\n },\n },\n\n // -- Truncate --\n {\n command: 'truncate',\n aliases: ['trunc'],\n description: 'Truncate a string to a max length',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'length',\n aliases: ['l'],\n description: 'Maximum length (default: 30)',\n type: 'number',\n required: false,\n },\n {\n name: 'suffix',\n description: 'Omission suffix (default: ...)',\n type: 'string',\n required: false,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const length = parseInt(command.args['length'] || command.args['l']) || 30;\n const suffix = command.args['suffix'] ?? '...';\n const result = text.length > length\n ? text.substring(0, length - suffix.length) + suffix\n : text;\n context.writer.writeln(\n `${context.writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}${result}`,\n );\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Truncate a string to a maximum length with an ellipsis');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string truncate <text> [--length=N] [--suffix=S]', CliForegroundColor.Cyan)}`,\n );\n },\n },\n\n // -- Pad --\n {\n command: 'pad',\n description: 'Pad a string to a target length',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'length',\n aliases: ['l'],\n description: 'Target length',\n type: 'number',\n required: true,\n },\n {\n name: 'char',\n aliases: ['c'],\n description: 'Padding character (default: space)',\n type: 'string',\n required: false,\n },\n {\n name: 'side',\n description: 'Pad side: left, right, both (default: both)',\n type: 'string',\n required: false,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const length = parseInt(command.args['length'] || command.args['l']);\n const char = command.args['char'] || command.args['c'] || ' ';\n const side = command.args['side'] || 'both';\n\n if (isNaN(length)) {\n context.writer.writeError('--length is required');\n context.process.exit(-1);\n return;\n }\n\n let result: string;\n switch (side) {\n case 'left':\n case 'start':\n result = text.padStart(length, char);\n break;\n case 'right':\n case 'end':\n result = text.padEnd(length, char);\n break;\n default:\n result = lodash.pad(text, length, char);\n break;\n }\n\n context.writer.writeln(\n `${context.writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}\"${result}\"`,\n );\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Pad a string to a target length');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string pad <text> --length=N [--char=C] [--side=left|right|both]', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('π Examples:');\n writer.writeln(\n ` string pad hello --length=10 --char=. --side=right`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# β \"hello.....\"', CliForegroundColor.Green)}`,\n );\n },\n },\n\n // -- Split --\n {\n command: 'split',\n description: 'Split a string by a delimiter',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'by',\n aliases: ['d', 'delimiter'],\n description: 'Delimiter to split by (default: space)',\n type: 'string',\n required: false,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const delimiter = command.args['by'] || command.args['d'] || command.args['delimiter'] || ' ';\n const parts = text.split(delimiter);\n const { writer } = context;\n\n parts.forEach((part, i) => {\n writer.writeln(\n ` ${writer.wrapInColor(String(i).padStart(3), CliForegroundColor.Yellow)} ${part}`,\n );\n });\n context.process.output(parts);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Split a string into parts by a delimiter');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string split <text> [--by=<delimiter>]', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('π Examples:');\n writer.writeln(\n ` string split \"a,b,c\" --by=, ${writer.wrapInColor('# β a b c', CliForegroundColor.Green)}`,\n );\n },\n },\n\n // -- Words --\n {\n command: 'words',\n description: 'Split a string into words',\n allowUnlistedCommands: true,\n valueRequired: true,\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const words: string[] = lodash.words(text);\n const { writer } = context;\n\n writer.writeln(\n `${writer.wrapInColor(`${words.length} words:`, CliForegroundColor.Yellow)} ${words.join(', ')}`,\n );\n context.process.output(words);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Split a string into its component words');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string words <text>', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('π Examples:');\n writer.writeln(\n ` string words \"helloWorld\" ${writer.wrapInColor('# β hello, World', CliForegroundColor.Green)}`,\n );\n writer.writeln(\n ` string words \"foo-bar_baz\" ${writer.wrapInColor('# β foo, bar, baz', CliForegroundColor.Green)}`,\n );\n },\n },\n\n // -- Analysis --\n {\n command: 'length',\n aliases: ['len'],\n description: 'Get the length of a string',\n allowUnlistedCommands: true,\n valueRequired: true,\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n context.writer.writeln(\n `${context.writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}${text.length}`,\n );\n context.process.output(text.length);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Get the character count of a string');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string length <text>', CliForegroundColor.Cyan)}`,\n );\n },\n },\n {\n command: 'wc',\n aliases: ['wordcount', 'count'],\n description: 'Count lines, words, characters, and bytes',\n allowUnlistedCommands: true,\n valueRequired: true,\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const { writer } = context;\n\n const lines = text.split(/\\r?\\n/).length;\n const wordCount = text.trim() ? text.trim().split(/\\s+/).length : 0;\n const chars = text.length;\n const bytes = new TextEncoder().encode(text).length;\n\n writer.writeln(\n ` ${writer.wrapInColor('Lines:', CliForegroundColor.Cyan)} ${lines}`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('Words:', CliForegroundColor.Cyan)} ${wordCount}`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('Characters:', CliForegroundColor.Cyan)} ${chars}`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('Bytes:', CliForegroundColor.Cyan)} ${bytes}`,\n );\n\n context.process.output({ lines, words: wordCount, chars, bytes });\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Count lines, words, characters, and bytes in text');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string wc <text>', CliForegroundColor.Cyan)}`,\n );\n },\n },\n {\n command: 'includes',\n aliases: ['contains', 'has'],\n description: 'Check if a string contains a substring',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'find',\n aliases: ['f'],\n description: 'Substring to search for',\n type: 'string',\n required: true,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const find = command.args['find'] || command.args['f'] || '';\n const result = text.includes(find);\n const { writer } = context;\n\n if (result) {\n writer.writeSuccess(`\"${find}\" found in string`);\n } else {\n writer.writeError(`\"${find}\" not found in string`);\n }\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Check if a string contains a given substring');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string includes <text> --find=<substring>', CliForegroundColor.Cyan)}`,\n );\n },\n },\n {\n command: 'startsWith',\n description: 'Check if a string starts with a prefix',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'find',\n aliases: ['f'],\n description: 'Prefix to check',\n type: 'string',\n required: true,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const find = command.args['find'] || command.args['f'] || '';\n const result = text.startsWith(find);\n const { writer } = context;\n\n writer.writeln(\n `${writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}${result}`,\n );\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Check if a string starts with a given prefix');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string startsWith <text> --find=<prefix>', CliForegroundColor.Cyan)}`,\n );\n },\n },\n {\n command: 'endsWith',\n description: 'Check if a string ends with a suffix',\n allowUnlistedCommands: true,\n valueRequired: true,\n parameters: [\n {\n name: 'find',\n aliases: ['f'],\n description: 'Suffix to check',\n type: 'string',\n required: true,\n },\n ],\n processCommand: async (\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ) => {\n const text = (command.value || command.data || '') as string;\n const find = command.args['find'] || command.args['f'] || '';\n const result = text.endsWith(find);\n const { writer } = context;\n\n writer.writeln(\n `${writer.wrapInColor('Result: ', CliForegroundColor.Yellow)}${result}`,\n );\n context.process.output(result);\n },\n writeDescription: (context: ICliExecutionContext) => {\n const { writer } = context;\n writer.writeln('Check if a string ends with a given suffix');\n writer.writeln();\n writer.writeln('π Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('string endsWith <text> --find=<suffix>', CliForegroundColor.Cyan)}`,\n );\n },\n },\n ];\n }\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n context.executor.showHelp(command, context);\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln('String manipulation and analysis commands');\n writer.writeln();\n writer.writeln(\n writer.wrapInColor('π Case Conversions:', CliForegroundColor.Yellow),\n );\n writer.writeln(` ${writer.wrapInColor('string upper', CliForegroundColor.Cyan)} / ${writer.wrapInColor('lower', CliForegroundColor.Cyan)} / ${writer.wrapInColor('capitalize', CliForegroundColor.Cyan)}`);\n writer.writeln(` ${writer.wrapInColor('string camelCase', CliForegroundColor.Cyan)} / ${writer.wrapInColor('kebabCase', CliForegroundColor.Cyan)} / ${writer.wrapInColor('snakeCase', CliForegroundColor.Cyan)} / ${writer.wrapInColor('startCase', CliForegroundColor.Cyan)}`);\n writer.writeln();\n writer.writeln(\n writer.wrapInColor('π§ Transform:', CliForegroundColor.Yellow),\n );\n writer.writeln(` ${writer.wrapInColor('string reverse', CliForegroundColor.Cyan)} / ${writer.wrapInColor('trim', CliForegroundColor.Cyan)} / ${writer.wrapInColor('slug', CliForegroundColor.Cyan)} / ${writer.wrapInColor('repeat', CliForegroundColor.Cyan)} / ${writer.wrapInColor('replace', CliForegroundColor.Cyan)} / ${writer.wrapInColor('truncate', CliForegroundColor.Cyan)}`);\n writer.writeln(` ${writer.wrapInColor('string pad', CliForegroundColor.Cyan)} / ${writer.wrapInColor('escape', CliForegroundColor.Cyan)} / ${writer.wrapInColor('unescape', CliForegroundColor.Cyan)}`);\n writer.writeln();\n writer.writeln(\n writer.wrapInColor('π Analysis:', CliForegroundColor.Yellow),\n );\n writer.writeln(` ${writer.wrapInColor('string length', CliForegroundColor.Cyan)} / ${writer.wrapInColor('wc', CliForegroundColor.Cyan)} / ${writer.wrapInColor('includes', CliForegroundColor.Cyan)} / ${writer.wrapInColor('startsWith', CliForegroundColor.Cyan)} / ${writer.wrapInColor('endsWith', CliForegroundColor.Cyan)}`);\n writer.writeln(` ${writer.wrapInColor('string split', CliForegroundColor.Cyan)} / ${writer.wrapInColor('words', CliForegroundColor.Cyan)}`);\n writer.writeln();\n writer.writeln('π Examples:');\n writer.writeln(` string camelCase \"hello world\" ${writer.wrapInColor('# β helloWorld', CliForegroundColor.Green)}`);\n writer.writeln(` string reverse Hello ${writer.wrapInColor('# β olleH', CliForegroundColor.Green)}`);\n writer.writeln(` string slug \"Hello World!\" ${writer.wrapInColor('# β hello-world', CliForegroundColor.Green)}`);\n writer.writeln(` string wc \"some text here\" ${writer.wrapInColor('# word/char counts', CliForegroundColor.Green)}`);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { resolveCommandProcessorProvider } from '@qodalis/angular-cli';\nimport { CliStringCommandProcessor } from './processors/cli-string-command-processor';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [resolveCommandProcessorProvider(CliStringCommandProcessor)],\n})\nexport class CliStringModule {}\n","/*\n * Public API Surface of string\n */\n\nexport * from './lib/cli-string.module';\n\nexport * from './lib/processors/cli-string-command-processor';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/lib/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const LIBRARY_VERSION = "0.0.
|
|
1
|
+
export declare const LIBRARY_VERSION = "0.0.3";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qodalis/cli-string",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "An Angular CLI extension that provides speed test utilities",
|
|
5
5
|
"author": "Nicolae Lupei, Qodalis Solutions",
|
|
6
6
|
"license": "MIT",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"@angular/core": "^16.2.0"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@qodalis/angular-cli": "^1.0.
|
|
27
|
-
"@qodalis/cli-core": "^0.0.
|
|
26
|
+
"@qodalis/angular-cli": "^1.0.37",
|
|
27
|
+
"@qodalis/cli-core": "^0.0.16",
|
|
28
28
|
"lodash": "^4.17.21",
|
|
29
29
|
"@types/lodash": "^4.17.14",
|
|
30
30
|
"tslib": "^2.3.0"
|
package/umd/index.js
CHANGED
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
// Automatically generated during build
|
|
56
|
-
const LIBRARY_VERSION = '0.0.
|
|
56
|
+
const LIBRARY_VERSION = '0.0.3';
|
|
57
57
|
|
|
58
58
|
const lodash = ___namespace.default || ___namespace;
|
|
59
59
|
/**
|
|
@@ -96,6 +96,8 @@
|
|
|
96
96
|
this.processors = [];
|
|
97
97
|
this.metadata = {
|
|
98
98
|
icon: 'π€',
|
|
99
|
+
requiredCoreVersion: '0.0.16',
|
|
100
|
+
requiredCliVersion: '1.0.37',
|
|
99
101
|
};
|
|
100
102
|
this.processors = [
|
|
101
103
|
// -- Case conversions --
|