vcomply-workflow-engine 3.4.70 → 3.4.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/log-an-issue/log-an-issue.component.mjs +30 -6
- package/esm2020/lib/sharedComponents/link-responsibility/link-responsibility.component.mjs +15 -19
- package/esm2020/lib/workflow-services/log-issue.service.mjs +1 -1
- package/fesm2015/vcomply-workflow-engine.mjs +64 -42
- package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
- package/fesm2020/vcomply-workflow-engine.mjs +43 -23
- package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/log-an-issue/log-an-issue.component.d.ts +2 -0
- package/lib/sharedComponents/link-responsibility/link-responsibility.component.d.ts +1 -1
- package/package.json +3 -3
|
@@ -341,4 +341,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
341
341
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Configurations, decorators: [{
|
|
342
342
|
type: Optional
|
|
343
343
|
}] }]; } });
|
|
344
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWlzc3VlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9sb2ctaXNzdWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFJbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFLekUsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFDVSxJQUFnQixFQUNoQixXQUF3QixFQUNwQixNQUF1QjtRQUYzQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBeVVsQyw0QkFBdUIsR0FBRyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3hDLElBQUksTUFBTSxFQUFFO2dCQUNWLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLE1BQU07cUJBQ3JDLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQztxQkFDOUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxHQUFHLE1BQU0sS0FBSyxJQUFJLENBQUM7Z0JBQzNCLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRTdDLE9BQU8sR0FBRyxDQUFDLEdBQUcsR0FB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LEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxhQUFhLEdBQUcsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUM7YUFDOUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7OzRHQTVZVSxlQUFlO2dIQUFmLGVBQWUsY0FGZCxNQUFNOzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1hcCwgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcblxyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb25zJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IERFRkFVTFRfMjRIUiwgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dJc3N1ZVNlcnZpY2Uge1xyXG4gIGVudiE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnNcclxuICApIHtcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgdGhpcy5lbnYgPSBjb25maWcuZW52Q29uZmlnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SXNzdWVUeXBlcygpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdpc3N1ZVR5cGVMaXN0JywgeyBoZWFkZXJzIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldE9yZ1Blb3BsZSgpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdwZW9wbGUnLCB7IGhlYWRlcnMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXNzdWVDYXRlZ29yaWVzKCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4oXHJcbiAgICAgICAgdGhpcy5lbnYuYXNzdXJhbmNlICsgJ0lzc3VlL0NhdGVnb3J5L0NhdExpc3Q/Y2F0ZWdvcmllcz10cnVlJyxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICAgIC8vaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL0Fzc3VyYW5jZS9Jc3N1ZS9DYXRlZ29yeS9DYXRMaXN0LzE/aXNCdXNpbmVzc0N5Y2xlPXRydWUmY2F0ZWdvcmllcz10cnVlXHJcbiAgfVxyXG4gIGdldFJlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdCgpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJywge1xyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcbiAgY3JlYXRlSXNzdWUocGF5bG9hZDogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUnLCBwYXlsb2FkLCB7IGhlYWRlcnMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICB1cGRhdGVJc3N1ZShwYXlsb2FkOiBhbnksIGlzc3VlSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnB1dCh0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUvJyArIGlzc3VlSWQsIHBheWxvYWQsIHsgaGVhZGVycyB9KVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250cm9sUmlzayhhdWRpdFBsYW5JZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIC8vICAgICBHZXQgTGlua2VkIEF1ZGl0IFBsYW4gUmVzcG9uc2liaWxpdGllcyBieSBBdWRpdF9QbGFuX0lkXHJcbiAgICAvLyBVUkw6IGh0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yZXNwb25zaWJpbGl0aWVzLz9tb2RlPW1hbmFnZV9hdWRpdF9wbGFuX3Jlc3BvbnNpYmlsaXRpZXMmaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4IE1ldGhvZDogR0VUXHJcblxyXG4gICAgLy8gR2V0IExpbmtlZCBBdWRpdCBQbGFuIFJpc2sgYnkgQXVkaXRfUGxhbl9JZFxyXG4gICAgLy8gVVJMOiBodHRwczovL2RldmFwaS52LWNvbXBseS5jb20vcmlzay8/bW9kZT1yaXNrL21hbmFnZV9hdWRpdF9wbGFuX3Jpc2smaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4XHJcbiAgICAvLyBNZXRob2Q6IEdFVFxyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIGlmICh0eXBlID09PSAnUkVTUE9OU0lCSUxJVFknKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAuZ2V0PGFueVtdPihcclxuICAgICAgICAgIHRoaXMuZW52LnJlc3BvbnNpYmlsaXRpZXNHZXQgK1xyXG4gICAgICAgICAgICAnbWFuYWdlX2F1ZGl0X3BsYW5fcmVzcG9uc2liaWxpdGllcyZpZD0nICtcclxuICAgICAgICAgICAgYXVkaXRQbGFuSWQsXHJcbiAgICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICAgIClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIG1hcCgoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtOiBhbnkpID0+ICh7XHJcbiAgICAgICAgICAgICAgaXRlbUlkOiBpdGVtPy5yZXBvcnRfaWQsXHJcbiAgICAgICAgICAgICAgaXRlbUNvbnRyb2xJZDogaXRlbT8uY29udHJvbF9pZCxcclxuICAgICAgICAgICAgICBpdGVtQ29udHJvbE5hbWU6IGl0ZW0/LnJlcG9ydF9uYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiAnUkVTUE9OU0lCSUxJVFknLFxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdSSVNLJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgLmdldDxhbnlbXT4oXHJcbiAgICAgICAgICB0aGlzLmVudi5yaXNrICsgJ3Jpc2svbWFuYWdlX2F1ZGl0X3BsYW5fcmlzayZpZD0nICsgYXVkaXRQbGFuSWQsXHJcbiAgICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICAgIClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIG1hcCgoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtOiBhbnkpID0+ICh7XHJcbiAgICAgICAgICAgICAgaXRlbUlkOiBpdGVtPy5yaXNrX2lkLFxyXG4gICAgICAgICAgICAgIGl0ZW1Db250cm9sSWQ6IGl0ZW0/LnJpc2tfY29udHJvbF9pZCxcclxuICAgICAgICAgICAgICBpdGVtQ29udHJvbE5hbWU6IGl0ZW0/LnRpdGxlLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiAnUklTSycsXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoaXNzdWVEYXRhOiBhbnksIG9wZW5lZEZyb206IGFueSwgaXNSQ01hbmRhdG9yeTogYW55KSB7XHJcbiAgICBjb25zdCBlcnJvcnMgPSBbXTtcclxuICAgIGlmICghaXNzdWVEYXRhLmlzc3VlTmFtZSB8fCBpc3N1ZURhdGEuaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlTmFtZScpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzc3VlRGF0YS5pc3N1ZVJDLmxlbmd0aCA9PT0gMCAmJiBpc1JDTWFuZGF0b3J5KSB7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZVJDJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNzdWVEYXRhLmVudHJ1c3RUby5sZW5ndGggPT09IDApIHtcclxuICAgICAgZXJyb3JzLnB1c2goJ2VudHJ1c3RUbycpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKSB7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZUR1ZURhdGUnKTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgaXNzdWVEYXRhLmlzc3VlUmVjb21tZW5kYXRpb25cclxuICAgICAgICAucmVwbGFjZSgvJm5ic3A7L2csICcnKVxyXG4gICAgICAgIC5yZXBsYWNlKC9cXDxiclxccypbXFwvXT8+L2dpLCAnJylcclxuICAgICAgICAudHJpbSgpLmxlbmd0aCA9PT0gMFxyXG4gICAgKSB7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZVJlY29tbWVuZGF0aW9uJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVQYXlsb2FkKGlzc3VlRGF0YTogYW55LCBvcHRpb25GaWVsZHNTdGF0dXM6IGFueSkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoaXNzdWVEYXRhLmlzc3VlRHVlRGF0ZSk7XHJcbiAgICBjb25zdCBkYXRlU3BsaXQgPSBbXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCksXHJcbiAgICBdO1xyXG4gICAgY29uc3QgdGltZTogYW55ID0gdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChcclxuICAgICAgaXNzdWVEYXRhLmlzc3VlRHVlVGltZVxyXG4gICAgKS5zcGxpdCgnOicpO1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKFxyXG4gICAgICBkYXRlU3BsaXRbMF0sXHJcbiAgICAgIGRhdGVTcGxpdFsxXSAtIDEsXHJcbiAgICAgIGRhdGVTcGxpdFsyXSxcclxuICAgICAgdGltZVswXSxcclxuICAgICAgdGltZVsxXSxcclxuICAgICAgMFxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBjcmVhdGVJc3N1ZTogYW55ID0ge1xyXG4gICAgICBpc3N1ZV9kZXNjcmlwdGlvbl9hdHRhY2htZW50czogaXNzdWVEYXRhPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzLFxyXG4gICAgICBhc3NvY2lhdGVkX3Jpc2s6IG9wdGlvbkZpZWxkc1N0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVBc3NvY2lhdGVkUmlza1xyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlX25hbWU6IGlzc3VlRGF0YS5pc3N1ZU5hbWUsXHJcbiAgICAgIHJlcG9ydF9pZDogJzAnLFxyXG4gICAgICBpc3N1ZV9kZXNjcmlwdGlvbjogaXNzdWVEYXRhLmlzc3VlRGVzY3JpcHRpb24sXHJcbiAgICAgIGlzc3VlX3R5cGU6IG9wdGlvbkZpZWxkc1N0YXR1cy5JU1NVRV9UWVBFXHJcbiAgICAgICAgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVUeXBlLCAnaXNzdWVfaWQnKS50b1N0cmluZygpXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgZXhjZXB0aW9uX3R5cGU6IG9wdGlvbkZpZWxkc1N0YXR1cy5FWENFUFRJT05fVFlQRVxyXG4gICAgICAgID8gaXNzdWVEYXRhLmV4Y2VwdGlvblR5cGUudG9TdHJpbmcoKVxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIHJpc2tfY2xhc3M6IGlzc3VlRGF0YS5pc3N1ZVJpc2tSYXRpbmcudG9TdHJpbmcoKSA/PyAnJyxcclxuICAgICAgcHJpb3JpdHk6IG9wdGlvbkZpZWxkc1N0YXR1cy5QUklPUklUWVxyXG4gICAgICAgID8gaXNzdWVEYXRhLmlzc3VlUHJpb3JpdHkudG9TdHJpbmcoKVxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlX2NhdGVnb3J5X2lkOlxyXG4gICAgICAgIHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5LCAnY2F0ZWdvcnlfaWQnKSA/PyAwLFxyXG4gICAgICByZWNvbW1lbmRhdGlvbjogaXNzdWVEYXRhLmlzc3VlUmVjb21tZW5kYXRpb24sXHJcbiAgICAgIGVudHJ1c3RlZF90bzogdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmVudHJ1c3RUbywgJ2VtcGxveWVlX2lkJykgPz8gMCxcclxuICAgICAgaXNzdWVfZGF0ZTpcclxuICAgICAgICBkYXRlU3BsaXRbMF0gK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgZGF0ZVNwbGl0WzFdICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIGRhdGVTcGxpdFsyXSArXHJcbiAgICAgICAgJyAnICtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpLFxyXG4gICAgICBmYWlsZWRfdGltZTogdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSxcclxuICAgICAgaXNzdWVfZHVlX2RhdGU6XHJcbiAgICAgICAgZGF0ZVNwbGl0WzBdICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIGRhdGVTcGxpdFsxXSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICBkYXRlU3BsaXRbMl0gK1xyXG4gICAgICAgICcgJyArXHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSxcclxuICAgICAgZ3JjX2FyZWE6ICcnLFxyXG4gICAgICBjY19lbXBsb3llZV9lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVFxyXG4gICAgICAgID8gdGhpcy5hcnJheVRvSURzRHRyaW5nKGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMsICdlbXBsb3llZV9lbWFpbCcpXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgZmFpbHVyZV9jY19lbXBsb3llZV9lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVFxyXG4gICAgICAgID8gdGhpcy5hcnJheVRvSURzRHRyaW5nKGlzc3VlRGF0YS5mYWlsdXJlQ0NVc2VycywgJ2VtcGxveWVlX2VtYWlsJylcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBjdXN0b21fdGFnX3ZhbHVlOiAnJyxcclxuICAgICAgaXNzdWVfcmVzb2x2ZV90aW1lc3RhbXA6IChkYXRlLmdldFRpbWUoKSAvIDEwMDApLnRvU3RyaW5nKCksXHJcbiAgICAgIGV2aWRlbmNlX3VwbG9hZF9mbGFnOiBvcHRpb25GaWVsZHNTdGF0dXMuRVZJREVOQ0VcclxuICAgICAgICA/IGlzc3VlRGF0YS5ldmlkZW5jZVJlcXVpcmVkXHJcbiAgICAgICAgICA/ICcxJ1xyXG4gICAgICAgICAgOiAnMCdcclxuICAgICAgICA6ICcwJyxcclxuICAgIH07XHJcbiAgICBpZiAoaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoKSB7XHJcbiAgICAgIGNyZWF0ZUlzc3VlLnJjX2lkID0gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmlzc3VlUkMsICdyY19pZCcpID8/IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNyZWF0ZUlzc3VlO1xyXG4gIH1cclxuXHJcbiAgcGF5bG9hZEJ1aWxkZXIoaXNzdWVEYXRhOiBhbnksIG9wdGlvbkZpZWxkc1N0YXR1czogYW55KSB7XHJcbiAgICBjb25zdCBpc01vbWVudCA9IG1vbWVudC5pc01vbWVudChpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKTtcclxuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IGlzTW9tZW50XHJcbiAgICAgID8gbW9tZW50KGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpLnRvRGF0ZSgpXHJcbiAgICAgIDogbmV3IERhdGUoaXNzdWVEYXRhLmlzc3VlRHVlRGF0ZSk7XHJcbiAgICBjb25zdCBkYXRlU3BsaXQgPSBbXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCksXHJcbiAgICBdO1xyXG4gICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xyXG4gICAgICBkZXNjcmlwdGlvbjogW10sXHJcbiAgICAgIGFzc29jaWF0ZWRfcmlzazogW10sXHJcbiAgICAgIHJlY29tbWVuZGF0aW9uOiBbXSxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLnRpdGxlID0gaXNzdWVEYXRhLmlzc3VlTmFtZS50cmltKCkgPz8gJyc7XHJcbiAgICBwYXlsb2FkLnJjX2lkID0gaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoXHJcbiAgICAgID8gdGhpcy5nZXRBcnJheUlkKGlzc3VlRGF0YS5pc3N1ZVJDLCAncmNfaWQnKVxyXG4gICAgICA6IFtdO1xyXG4gICAgcGF5bG9hZC5yZXNwb25zaWJpbGl0aWVzX0xpbmtlZCA9IGlzc3VlRGF0YS5yZXNwb25zaWJpbGl0eUxpbmtlZC5sZW5ndGggXHJcbiAgICAgID8gdGhpcy5nZXRBcnJheUlkKGlzc3VlRGF0YS5yZXNwb25zaWJpbGl0eUxpbmtlZCwgJ1JlcG9ydElkJylcclxuICAgICAgOiBbXTtcclxuICAgIHBheWxvYWQuY2F0ZWdvcnlfaWQgPSBpc3N1ZURhdGEuaXNzdWVDYXRlZ29yeS5sZW5ndGhcclxuICAgICAgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVDYXRlZ29yeSwgJ2NhdGVnb3J5X2lkJylcclxuICAgICAgOiBudWxsO1xyXG4gICAgcGF5bG9hZC5kZXNjcmlwdGlvblswXSA9IHtcclxuICAgICAgdGV4dDogaXNzdWVEYXRhLmlzc3VlRGVzY3JpcHRpb24gPz8gJycsXHJcbiAgICAgIGF0dGFjaG1lbnRzOiBpc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHNcclxuICAgICAgICA6IFtdLFxyXG4gICAgfTtcclxuICAgIHBheWxvYWQuZXhjZXB0aW9uX3R5cGUgPSBvcHRpb25GaWVsZHNTdGF0dXMuRVhDRVBUSU9OX1RZUEVcclxuICAgICAgPyBOdW1iZXIoaXNzdWVEYXRhLmV4Y2VwdGlvblR5cGUpXHJcbiAgICAgIDogbnVsbDtcclxuICAgIHBheWxvYWQucmlza19jbGFzcyA9IGlzc3VlRGF0YS5pc3N1ZVJpc2tSYXRpbmcgPz8gbnVsbDtcclxuICAgIHBheWxvYWQucHJpb3JpdHkgPSBvcHRpb25GaWVsZHNTdGF0dXMuUFJJT1JJVFlcclxuICAgICAgPyBOdW1iZXIoaXNzdWVEYXRhLmlzc3VlUHJpb3JpdHkpXHJcbiAgICAgIDogbnVsbDtcclxuICAgIHBheWxvYWQuYXNzaWduZWVfaWQgPSBpc3N1ZURhdGEuZW50cnVzdFRvXHJcbiAgICAgID8gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmVudHJ1c3RUbywgJ215X21lbWJlcl9pZCcpXHJcbiAgICAgIDogbnVsbDtcclxuICAgIHBheWxvYWQuYXNzb2NpYXRlZF9yaXNrWzBdID0ge1xyXG4gICAgICB0ZXh0OiBvcHRpb25GaWVsZHNTdGF0dXMuQVNTT0NJQVRFRF9SSVNLU1xyXG4gICAgICAgID8gaXNzdWVEYXRhLmlzc3VlQXNzb2NpYXRlZFJpc2tcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBhdHRhY2htZW50czogW10sXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5yZWNvbW1lbmRhdGlvblswXSA9IHtcclxuICAgICAgdGV4dDogaXNzdWVEYXRhLmlzc3VlUmVjb21tZW5kYXRpb24gPz8gJycsXHJcbiAgICAgIGF0dGFjaG1lbnRzOiBpc3N1ZURhdGE/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzLmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50c1xyXG4gICAgICAgIDogW10sXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5ldmlkZW5jZSA9IHtcclxuICAgICAgZXZpZGVuY2VfZmxhZzogb3B0aW9uRmllbGRzU3RhdHVzLkVWSURFTkNFXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuZXZpZGVuY2VSZXF1aXJlZFxyXG4gICAgICAgICAgPyAxXHJcbiAgICAgICAgICA6IDBcclxuICAgICAgICA6IDAsXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5mcmVxdWVuY3lfZGV0YWlscyA9IHtcclxuICAgICAgZnJlcXVlbmN5X3RpbWU6XHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSA/PyBERUZBVUxUX1RJTUUsXHJcbiAgICAgIGZyZXF1ZW5jeV9kYXRlOlxyXG4gICAgICAgIGRhdGVTcGxpdFswXSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICAoZGF0ZVNwbGl0WzFdIDwgMTAgPyAnMCcgKyBkYXRlU3BsaXRbMV0gOiBkYXRlU3BsaXRbMV0pICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIChkYXRlU3BsaXRbMl0gPCAxMCA/ICcwJyArIGRhdGVTcGxpdFsyXSA6IGRhdGVTcGxpdFsyXSksXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5vdmVyc2VlciA9IHtcclxuICAgICAgY2NfZW1haWw6IG9wdGlvbkZpZWxkc1N0YXR1cy5PVkVSU0lHSFRcclxuICAgICAgICA/IGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMubGVuZ3RoXHJcbiAgICAgICAgICA/IGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMubWFwKCh4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4geyBtZW1iZXJfaWQ6IHgubXlfbWVtYmVyX2lkID8/IDAsIGFsZXJ0X2VuYWJsZTogMSB9O1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgOiBbXVxyXG4gICAgICAgIDogW10sXHJcbiAgICAgIGZhaWx1cmVfY2NfZW1haWw6IG9wdGlvbkZpZWxkc1N0YXR1cy5PVkVSU0lHSFRcclxuICAgICAgICA/IGlzc3VlRGF0YS5mYWlsdXJlQ0NVc2Vycy5sZW5ndGhcclxuICAgICAgICAgID8gaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLm1hcCgoeDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHsgbWVtYmVyX2lkOiB4Lm15X21lbWJlcl9pZCA/PyAwLCBhbGVydF9lbmFibGU6IDEgfTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIDogW11cclxuICAgICAgICA6IFtdLFxyXG4gICAgfTtcclxuICAgIHBheWxvYWQuY3VzdG9tX3RhZ3MgPSBpc3N1ZURhdGE/Lmlzc3VlQ3VzdG9tVGFnO1xyXG4gICAgcGF5bG9hZC5pc3N1ZVR5cGUgPSBpc3N1ZURhdGE/Lmlzc3VlVHlwZTtcclxuICAgIHJldHVybiBwYXlsb2FkO1xyXG4gIH1cclxuXHJcbiAgYXJyYXlUb0lkKGFycmF5OiBhbnksIGtleTogYW55KSB7XHJcbiAgICBpZiAoYXJyYXkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBhcnJheVswXVtrZXldO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0QXJyYXlJZChhcnJheTogYW55LCBrZXk6IGFueSkge1xyXG4gICAgcmV0dXJuIGFycmF5Lm1hcCgoZWxlOiBhbnkpID0+IGVsZVtrZXldKTtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0ID0gKHRpbWUxMjogYW55KSA9PiB7XHJcbiAgICBpZiAodGltZTEyKSB7XHJcbiAgICAgIGNvbnN0IFtzSG91cnMsIG1pbnV0ZXMsIHBlcmlvZF0gPSB0aW1lMTJcclxuICAgICAgICAubWF0Y2goLyhbMC05XXsxLDJ9KTooWzAtOV17Mn0pIChhbXxwbXxBTXxQTSkvKVxyXG4gICAgICAgIC5zbGljZSgxKTtcclxuICAgICAgY29uc3QgUE0gPSBwZXJpb2QgPT09ICdQTSc7XHJcbiAgICAgIGNvbnN0IGhvdXJzID0gKCtzSG91cnMgJSAxMikgKyAoUE0gPyAxMiA6IDApO1xyXG5cclxuICAgICAgcmV0dXJuIGAkeygnMCcgKyBob3Vycykuc2xpY2UoLTIpfToke21pbnV0ZXN9OjAwYDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBERUZBVUxUXzI0SFI7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29udmVydEZyb20yNFRvMTJGb3JtYXQodGltZTogYW55KSB7XHJcbiAgICBjb25zdCBoaG1tID0gdGltZS5zcGxpdCgnOicpO1xyXG4gICAgdGltZSA9IGAke2hobW1bMF19OiR7aGhtbVsxXX1gO1xyXG4gICAgLy8gQ2hlY2sgY29ycmVjdCB0aW1lIGZvcm1hdCBhbmQgc3BsaXQgaW50byBjb21wb25lbnRzXHJcbiAgICB0aW1lID0gdGltZVxyXG4gICAgICAudG9TdHJpbmcoKVxyXG4gICAgICAubWF0Y2goL14oWzAxXVxcZHwyWzAtM10pKDopKFswLTVdXFxkKSg6WzAtNV1cXGQpPyQvKSB8fCBbdGltZV07XHJcblxyXG4gICAgaWYgKHRpbWUubGVuZ3RoID4gMSkge1xyXG4gICAgICAvLyBJZiB0aW1lIGZvcm1hdCBjb3JyZWN0XHJcbiAgICAgIHRpbWUgPSB0aW1lLnNsaWNlKDEpOyAvLyBSZW1vdmUgZnVsbCBzdHJpbmcgbWF0Y2ggdmFsdWVcclxuICAgICAgdGltZVs1XSA9ICt0aW1lWzBdIDwgMTIgPyAnIEFNJyA6ICcgUE0nOyAvLyBTZXQgQU0vUE1cclxuICAgICAgdGltZVswXSA9ICt0aW1lWzBdICUgMTIgfHwgMTI7IC8vIEFkanVzdCBob3Vyc1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRpbWUuam9pbignJyk7IC8vIHJldHVybiBhZGp1c3RlZCB0aW1lIG9yIG9yaWdpbmFsIHN0cmluZ1xyXG4gIH1cclxuXHJcbiAgYXJyYXlUb0lEc0R0cmluZyhhcnJheTogYW55LCBpZGVudGlmaWVyS2V5OiBhbnkpIHtcclxuICAgIGNvbnN0IGxpc3QgPSBhcnJheS5tYXAoKGVsOiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIGVsW2lkZW50aWZpZXJLZXldO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbGlzdC5qb2luKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGxvYWRzIHRoZSBnaXZlbiBmaWxlIHRvIHNlcnZlclxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIHBheWxvYWQgRmlsZSBkYXRhIHRvIGJlIHVwbG9hZGVkXHJcbiAgICogQHBhcmFtIHBhdGggcGF0aCBQYXRoIG9mIGZpbGUgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcmV0dXJucyByZXNwb25zZSBhZnRlciB1cGxvYWRpbmcgYSBmaWxlXHJcbiAgICovXHJcbiAgdXBsb2FkRmlsZXMocGF5bG9hZDogYW55LCBwYXRoOiBhbnkpIHtcclxuICAgIC8vIHtcclxuICAgIC8vICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAvLyAgIG9ic2VydmU6ICdldmVudHMnfVxyXG4gICAgY29uc3QgT1JHX1BBVEggPSBgby8ke3BhdGh9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgdGhpcy5lbnYuZmlsZVVwbG9hZEVuZFBvaW50ICsgT1JHX1BBVEggKyAnJm5nc3ctYnlwYXNzPXRydWUnLFxyXG4gICAgICBwYXlsb2FkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXNzdWVEZXRhaWxzKGlzc3VlSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUvRWRpdC8nICsgaXNzdWVJZCwgeyBoZWFkZXJzIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDMpKTtcclxuICB9XHJcbn1cclxuIl19
|
|
344
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWlzc3VlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9sb2ctaXNzdWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFJbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFLekUsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFDVSxJQUFnQixFQUNoQixXQUF3QixFQUNwQixNQUF1QjtRQUYzQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBeVVsQyw0QkFBdUIsR0FBRyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3hDLElBQUksTUFBTSxFQUFFO2dCQUNWLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLE1BQU07cUJBQ3JDLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQztxQkFDOUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxHQUFHLE1BQU0sS0FBSyxJQUFJLENBQUM7Z0JBQzNCLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRTdDLE9BQU8sR0FBRyxDQUFDLEdBQUcsR0FB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LEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxhQUFhLEdBQUcsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUM7YUFDOUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7OzRHQTVZVSxlQUFlO2dIQUFmLGVBQWUsY0FGZCxNQUFNOzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1hcCwgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcblxyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb25zJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IERFRkFVTFRfMjRIUiwgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dJc3N1ZVNlcnZpY2Uge1xyXG4gIGVudiE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnNcclxuICApIHtcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgdGhpcy5lbnYgPSBjb25maWcuZW52Q29uZmlnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SXNzdWVUeXBlcygpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdpc3N1ZVR5cGVMaXN0JywgeyBoZWFkZXJzIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldE9yZ1Blb3BsZSgpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdwZW9wbGUnLCB7IGhlYWRlcnMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXNzdWVDYXRlZ29yaWVzKCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4oXHJcbiAgICAgICAgdGhpcy5lbnYuYXNzdXJhbmNlICsgJ0lzc3VlL0NhdGVnb3J5L0NhdExpc3Q/Y2F0ZWdvcmllcz10cnVlJyxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICAgIC8vaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL0Fzc3VyYW5jZS9Jc3N1ZS9DYXRlZ29yeS9DYXRMaXN0LzE/aXNCdXNpbmVzc0N5Y2xlPXRydWUmY2F0ZWdvcmllcz10cnVlXHJcbiAgfVxyXG4gIGdldFJlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdCgpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJywge1xyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcbiAgY3JlYXRlSXNzdWUocGF5bG9hZDogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUnLCBwYXlsb2FkLCB7IGhlYWRlcnMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICB1cGRhdGVJc3N1ZShwYXlsb2FkOiBhbnksIGlzc3VlSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnB1dCh0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUvJyArIGlzc3VlSWQsIHBheWxvYWQsIHsgaGVhZGVycyB9KVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250cm9sUmlzayhhdWRpdFBsYW5JZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIC8vICAgICBHZXQgTGlua2VkIEF1ZGl0IFBsYW4gUmVzcG9uc2liaWxpdGllcyBieSBBdWRpdF9QbGFuX0lkXHJcbiAgICAvLyBVUkw6IGh0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yZXNwb25zaWJpbGl0aWVzLz9tb2RlPW1hbmFnZV9hdWRpdF9wbGFuX3Jlc3BvbnNpYmlsaXRpZXMmaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4IE1ldGhvZDogR0VUXHJcblxyXG4gICAgLy8gR2V0IExpbmtlZCBBdWRpdCBQbGFuIFJpc2sgYnkgQXVkaXRfUGxhbl9JZFxyXG4gICAgLy8gVVJMOiBodHRwczovL2RldmFwaS52LWNvbXBseS5jb20vcmlzay8/bW9kZT1yaXNrL21hbmFnZV9hdWRpdF9wbGFuX3Jpc2smaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4XHJcbiAgICAvLyBNZXRob2Q6IEdFVFxyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIGlmICh0eXBlID09PSAnUkVTUE9OU0lCSUxJVFknKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAuZ2V0PGFueVtdPihcclxuICAgICAgICAgIHRoaXMuZW52LnJlc3BvbnNpYmlsaXRpZXNHZXQgK1xyXG4gICAgICAgICAgICAnbWFuYWdlX2F1ZGl0X3BsYW5fcmVzcG9uc2liaWxpdGllcyZpZD0nICtcclxuICAgICAgICAgICAgYXVkaXRQbGFuSWQsXHJcbiAgICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICAgIClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIG1hcCgoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtOiBhbnkpID0+ICh7XHJcbiAgICAgICAgICAgICAgaXRlbUlkOiBpdGVtPy5yZXBvcnRfaWQsXHJcbiAgICAgICAgICAgICAgaXRlbUNvbnRyb2xJZDogaXRlbT8uY29udHJvbF9pZCxcclxuICAgICAgICAgICAgICBpdGVtQ29udHJvbE5hbWU6IGl0ZW0/LnJlcG9ydF9uYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiAnUkVTUE9OU0lCSUxJVFknLFxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdSSVNLJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgLmdldDxhbnlbXT4oXHJcbiAgICAgICAgICB0aGlzLmVudi5yaXNrICsgJ3Jpc2svbWFuYWdlX2F1ZGl0X3BsYW5fcmlzayZpZD0nICsgYXVkaXRQbGFuSWQsXHJcbiAgICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICAgIClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIG1hcCgoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtOiBhbnkpID0+ICh7XHJcbiAgICAgICAgICAgICAgaXRlbUlkOiBpdGVtPy5yaXNrX2lkLFxyXG4gICAgICAgICAgICAgIGl0ZW1Db250cm9sSWQ6IGl0ZW0/LnJpc2tfY29udHJvbF9pZCxcclxuICAgICAgICAgICAgICBpdGVtQ29udHJvbE5hbWU6IGl0ZW0/LnRpdGxlLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiAnUklTSycsXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoaXNzdWVEYXRhOiBhbnksIG9wZW5lZEZyb206IGFueSwgaXNSQ01hbmRhdG9yeTogYW55KSB7XHJcbiAgICBjb25zdCBlcnJvcnMgPSBbXTtcclxuICAgIGlmICghaXNzdWVEYXRhLmlzc3VlTmFtZSB8fCBpc3N1ZURhdGEuaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlTmFtZScpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzc3VlRGF0YS5pc3N1ZVJDLmxlbmd0aCA9PT0gMCAmJiBpc1JDTWFuZGF0b3J5KSB7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZVJDJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNzdWVEYXRhLmVudHJ1c3RUby5sZW5ndGggPT09IDApIHtcclxuICAgICAgZXJyb3JzLnB1c2goJ2VudHJ1c3RUbycpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKSB7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZUR1ZURhdGUnKTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgaXNzdWVEYXRhLmlzc3VlUmVjb21tZW5kYXRpb25cclxuICAgICAgICAucmVwbGFjZSgvJm5ic3A7L2csICcnKVxyXG4gICAgICAgIC5yZXBsYWNlKC9cXDxiclxccypbXFwvXT8+L2dpLCAnJylcclxuICAgICAgICAudHJpbSgpLmxlbmd0aCA9PT0gMFxyXG4gICAgKSB7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZVJlY29tbWVuZGF0aW9uJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVQYXlsb2FkKGlzc3VlRGF0YTogYW55LCBvcHRpb25GaWVsZHNTdGF0dXM6IGFueSkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoaXNzdWVEYXRhLmlzc3VlRHVlRGF0ZSk7XHJcbiAgICBjb25zdCBkYXRlU3BsaXQgPSBbXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCksXHJcbiAgICBdO1xyXG4gICAgY29uc3QgdGltZTogYW55ID0gdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChcclxuICAgICAgaXNzdWVEYXRhLmlzc3VlRHVlVGltZVxyXG4gICAgKS5zcGxpdCgnOicpO1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKFxyXG4gICAgICBkYXRlU3BsaXRbMF0sXHJcbiAgICAgIGRhdGVTcGxpdFsxXSAtIDEsXHJcbiAgICAgIGRhdGVTcGxpdFsyXSxcclxuICAgICAgdGltZVswXSxcclxuICAgICAgdGltZVsxXSxcclxuICAgICAgMFxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBjcmVhdGVJc3N1ZTogYW55ID0ge1xyXG4gICAgICBpc3N1ZV9kZXNjcmlwdGlvbl9hdHRhY2htZW50czogaXNzdWVEYXRhPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzLFxyXG4gICAgICBhc3NvY2lhdGVkX3Jpc2s6IG9wdGlvbkZpZWxkc1N0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVBc3NvY2lhdGVkUmlza1xyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlX25hbWU6IGlzc3VlRGF0YS5pc3N1ZU5hbWUsXHJcbiAgICAgIHJlcG9ydF9pZDogJzAnLFxyXG4gICAgICBpc3N1ZV9kZXNjcmlwdGlvbjogaXNzdWVEYXRhLmlzc3VlRGVzY3JpcHRpb24sXHJcbiAgICAgIGlzc3VlX3R5cGU6IG9wdGlvbkZpZWxkc1N0YXR1cy5JU1NVRV9UWVBFXHJcbiAgICAgICAgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVUeXBlLCAnaXNzdWVfaWQnKS50b1N0cmluZygpXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgZXhjZXB0aW9uX3R5cGU6IG9wdGlvbkZpZWxkc1N0YXR1cy5FWENFUFRJT05fVFlQRVxyXG4gICAgICAgID8gaXNzdWVEYXRhLmV4Y2VwdGlvblR5cGUudG9TdHJpbmcoKVxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIHJpc2tfY2xhc3M6IGlzc3VlRGF0YS5pc3N1ZVJpc2tSYXRpbmcudG9TdHJpbmcoKSA/PyAnJyxcclxuICAgICAgcHJpb3JpdHk6IG9wdGlvbkZpZWxkc1N0YXR1cy5QUklPUklUWVxyXG4gICAgICAgID8gaXNzdWVEYXRhLmlzc3VlUHJpb3JpdHkudG9TdHJpbmcoKVxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlX2NhdGVnb3J5X2lkOlxyXG4gICAgICAgIHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5LCAnY2F0ZWdvcnlfaWQnKSA/PyAwLFxyXG4gICAgICByZWNvbW1lbmRhdGlvbjogaXNzdWVEYXRhLmlzc3VlUmVjb21tZW5kYXRpb24sXHJcbiAgICAgIGVudHJ1c3RlZF90bzogdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmVudHJ1c3RUbywgJ2VtcGxveWVlX2lkJykgPz8gMCxcclxuICAgICAgaXNzdWVfZGF0ZTpcclxuICAgICAgICBkYXRlU3BsaXRbMF0gK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgZGF0ZVNwbGl0WzFdICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIGRhdGVTcGxpdFsyXSArXHJcbiAgICAgICAgJyAnICtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpLFxyXG4gICAgICBmYWlsZWRfdGltZTogdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSxcclxuICAgICAgaXNzdWVfZHVlX2RhdGU6XHJcbiAgICAgICAgZGF0ZVNwbGl0WzBdICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIGRhdGVTcGxpdFsxXSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICBkYXRlU3BsaXRbMl0gK1xyXG4gICAgICAgICcgJyArXHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSxcclxuICAgICAgZ3JjX2FyZWE6ICcnLFxyXG4gICAgICBjY19lbXBsb3llZV9lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVFxyXG4gICAgICAgID8gdGhpcy5hcnJheVRvSURzRHRyaW5nKGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMsICdlbXBsb3llZV9lbWFpbCcpXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgZmFpbHVyZV9jY19lbXBsb3llZV9lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVFxyXG4gICAgICAgID8gdGhpcy5hcnJheVRvSURzRHRyaW5nKGlzc3VlRGF0YS5mYWlsdXJlQ0NVc2VycywgJ2VtcGxveWVlX2VtYWlsJylcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBjdXN0b21fdGFnX3ZhbHVlOiAnJyxcclxuICAgICAgaXNzdWVfcmVzb2x2ZV90aW1lc3RhbXA6IChkYXRlLmdldFRpbWUoKSAvIDEwMDApLnRvU3RyaW5nKCksXHJcbiAgICAgIGV2aWRlbmNlX3VwbG9hZF9mbGFnOiBvcHRpb25GaWVsZHNTdGF0dXMuRVZJREVOQ0VcclxuICAgICAgICA/IGlzc3VlRGF0YS5ldmlkZW5jZVJlcXVpcmVkXHJcbiAgICAgICAgICA/ICcxJ1xyXG4gICAgICAgICAgOiAnMCdcclxuICAgICAgICA6ICcwJyxcclxuICAgIH07XHJcbiAgICBpZiAoaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoKSB7XHJcbiAgICAgIGNyZWF0ZUlzc3VlLnJjX2lkID0gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmlzc3VlUkMsICdyY19pZCcpID8/IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNyZWF0ZUlzc3VlO1xyXG4gIH1cclxuXHJcbiAgcGF5bG9hZEJ1aWxkZXIoaXNzdWVEYXRhOiBhbnksIG9wdGlvbkZpZWxkc1N0YXR1czogYW55KSB7XHJcbiAgICBjb25zdCBpc01vbWVudCA9IG1vbWVudC5pc01vbWVudChpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKTtcclxuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IGlzTW9tZW50XHJcbiAgICAgID8gbW9tZW50KGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpLnRvRGF0ZSgpXHJcbiAgICAgIDogbmV3IERhdGUoaXNzdWVEYXRhLmlzc3VlRHVlRGF0ZSk7XHJcbiAgICBjb25zdCBkYXRlU3BsaXQgPSBbXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCksXHJcbiAgICBdO1xyXG4gICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xyXG4gICAgICBkZXNjcmlwdGlvbjogW10sXHJcbiAgICAgIGFzc29jaWF0ZWRfcmlzazogW10sXHJcbiAgICAgIHJlY29tbWVuZGF0aW9uOiBbXSxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLnRpdGxlID0gaXNzdWVEYXRhLmlzc3VlTmFtZS50cmltKCkgPz8gJyc7XHJcbiAgICBwYXlsb2FkLnJjX2lkID0gaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoXHJcbiAgICAgID8gdGhpcy5nZXRBcnJheUlkKGlzc3VlRGF0YS5pc3N1ZVJDLCAncmNfaWQnKVxyXG4gICAgICA6IFtdO1xyXG4gICAgcGF5bG9hZC5yZXNwb25zaWJpbGl0aWVzX0xpbmtlZCA9IGlzc3VlRGF0YS5yZXNwb25zaWJpbGl0eUxpbmtlZC5sZW5ndGhcclxuICAgICAgPyB0aGlzLmdldEFycmF5SWQoaXNzdWVEYXRhLnJlc3BvbnNpYmlsaXR5TGlua2VkLCAnUmVwb3J0SWQnKVxyXG4gICAgICA6IFtdO1xyXG4gICAgcGF5bG9hZC5jYXRlZ29yeV9pZCA9IGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5Lmxlbmd0aFxyXG4gICAgICA/IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5LCAnY2F0ZWdvcnlfaWQnKVxyXG4gICAgICA6IG51bGw7XHJcbiAgICBwYXlsb2FkLmRlc2NyaXB0aW9uWzBdID0ge1xyXG4gICAgICB0ZXh0OiBpc3N1ZURhdGEuaXNzdWVEZXNjcmlwdGlvbiA/PyAnJyxcclxuICAgICAgYXR0YWNobWVudHM6IGlzc3VlRGF0YT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50c1xyXG4gICAgICAgIDogW10sXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5leGNlcHRpb25fdHlwZSA9IG9wdGlvbkZpZWxkc1N0YXR1cy5FWENFUFRJT05fVFlQRVxyXG4gICAgICA/IE51bWJlcihpc3N1ZURhdGEuZXhjZXB0aW9uVHlwZSlcclxuICAgICAgOiBudWxsO1xyXG4gICAgcGF5bG9hZC5yaXNrX2NsYXNzID0gaXNzdWVEYXRhLmlzc3VlUmlza1JhdGluZyA/PyBudWxsO1xyXG4gICAgcGF5bG9hZC5wcmlvcml0eSA9IG9wdGlvbkZpZWxkc1N0YXR1cy5QUklPUklUWVxyXG4gICAgICA/IE51bWJlcihpc3N1ZURhdGEuaXNzdWVQcmlvcml0eSlcclxuICAgICAgOiBudWxsO1xyXG4gICAgcGF5bG9hZC5hc3NpZ25lZV9pZCA9IGlzc3VlRGF0YS5lbnRydXN0VG9cclxuICAgICAgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuZW50cnVzdFRvLCAnbXlfbWVtYmVyX2lkJylcclxuICAgICAgOiBudWxsO1xyXG4gICAgcGF5bG9hZC5hc3NvY2lhdGVkX3Jpc2tbMF0gPSB7XHJcbiAgICAgIHRleHQ6IG9wdGlvbkZpZWxkc1N0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVBc3NvY2lhdGVkUmlza1xyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGF0dGFjaG1lbnRzOiBbXSxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLnJlY29tbWVuZGF0aW9uWzBdID0ge1xyXG4gICAgICB0ZXh0OiBpc3N1ZURhdGEuaXNzdWVSZWNvbW1lbmRhdGlvbiA/PyAnJyxcclxuICAgICAgYXR0YWNobWVudHM6IGlzc3VlRGF0YT8ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHMubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzXHJcbiAgICAgICAgOiBbXSxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLmV2aWRlbmNlID0ge1xyXG4gICAgICBldmlkZW5jZV9mbGFnOiBvcHRpb25GaWVsZHNTdGF0dXMuRVZJREVOQ0VcclxuICAgICAgICA/IGlzc3VlRGF0YS5ldmlkZW5jZVJlcXVpcmVkXHJcbiAgICAgICAgICA/IDFcclxuICAgICAgICAgIDogMFxyXG4gICAgICAgIDogMCxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLmZyZXF1ZW5jeV9kZXRhaWxzID0ge1xyXG4gICAgICBmcmVxdWVuY3lfdGltZTpcclxuICAgICAgICB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpID8/IERFRkFVTFRfVElNRSxcclxuICAgICAgZnJlcXVlbmN5X2RhdGU6XHJcbiAgICAgICAgZGF0ZVNwbGl0WzBdICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIChkYXRlU3BsaXRbMV0gPCAxMCA/ICcwJyArIGRhdGVTcGxpdFsxXSA6IGRhdGVTcGxpdFsxXSkgK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgKGRhdGVTcGxpdFsyXSA8IDEwID8gJzAnICsgZGF0ZVNwbGl0WzJdIDogZGF0ZVNwbGl0WzJdKSxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLm92ZXJzZWVyID0ge1xyXG4gICAgICBjY19lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVFxyXG4gICAgICAgID8gaXNzdWVEYXRhLmlzc3VlQ0NVc2Vycy5sZW5ndGhcclxuICAgICAgICAgID8gaXNzdWVEYXRhLmlzc3VlQ0NVc2Vycy5tYXAoKHg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7IG1lbWJlcl9pZDogeC5teV9tZW1iZXJfaWQgPz8gMCwgYWxlcnRfZW5hYmxlOiAxIH07XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICA6IFtdXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgZmFpbHVyZV9jY19lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVFxyXG4gICAgICAgID8gaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLmxlbmd0aFxyXG4gICAgICAgICAgPyBpc3N1ZURhdGEuZmFpbHVyZUNDVXNlcnMubWFwKCh4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4geyBtZW1iZXJfaWQ6IHgubXlfbWVtYmVyX2lkID8/IDAsIGFsZXJ0X2VuYWJsZTogMSB9O1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgOiBbXVxyXG4gICAgICAgIDogW10sXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5jdXN0b21fdGFncyA9IGlzc3VlRGF0YT8uaXNzdWVDdXN0b21UYWc7XHJcbiAgICBwYXlsb2FkLmlzc3VlVHlwZSA9IGlzc3VlRGF0YT8uaXNzdWVUeXBlO1xyXG4gICAgcmV0dXJuIHBheWxvYWQ7XHJcbiAgfVxyXG5cclxuICBhcnJheVRvSWQoYXJyYXk6IGFueSwga2V5OiBhbnkpIHtcclxuICAgIGlmIChhcnJheS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGFycmF5WzBdW2tleV07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRBcnJheUlkKGFycmF5OiBhbnksIGtleTogYW55KSB7XHJcbiAgICByZXR1cm4gYXJyYXkubWFwKChlbGU6IGFueSkgPT4gZWxlW2tleV0pO1xyXG4gIH1cclxuXHJcbiAgY29udmVydEZyb20xMlRvMjRGb3JtYXQgPSAodGltZTEyOiBhbnkpID0+IHtcclxuICAgIGlmICh0aW1lMTIpIHtcclxuICAgICAgY29uc3QgW3NIb3VycywgbWludXRlcywgcGVyaW9kXSA9IHRpbWUxMlxyXG4gICAgICAgIC5tYXRjaCgvKFswLTldezEsMn0pOihbMC05XXsyfSkgKGFtfHBtfEFNfFBNKS8pXHJcbiAgICAgICAgLnNsaWNlKDEpO1xyXG4gICAgICBjb25zdCBQTSA9IHBlcmlvZCA9PT0gJ1BNJztcclxuICAgICAgY29uc3QgaG91cnMgPSAoK3NIb3VycyAlIDEyKSArIChQTSA/IDEyIDogMCk7XHJcblxyXG4gICAgICByZXR1cm4gYCR7KCcwJyArIGhvdXJzKS5zbGljZSgtMil9OiR7bWludXRlc306MDBgO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIERFRkFVTFRfMjRIUjtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb252ZXJ0RnJvbTI0VG8xMkZvcm1hdCh0aW1lOiBhbnkpIHtcclxuICAgIGNvbnN0IGhobW0gPSB0aW1lLnNwbGl0KCc6Jyk7XHJcbiAgICB0aW1lID0gYCR7aGhtbVswXX06JHtoaG1tWzFdfWA7XHJcbiAgICAvLyBDaGVjayBjb3JyZWN0IHRpbWUgZm9ybWF0IGFuZCBzcGxpdCBpbnRvIGNvbXBvbmVudHNcclxuICAgIHRpbWUgPSB0aW1lXHJcbiAgICAgIC50b1N0cmluZygpXHJcbiAgICAgIC5tYXRjaCgvXihbMDFdXFxkfDJbMC0zXSkoOikoWzAtNV1cXGQpKDpbMC01XVxcZCk/JC8pIHx8IFt0aW1lXTtcclxuXHJcbiAgICBpZiAodGltZS5sZW5ndGggPiAxKSB7XHJcbiAgICAgIC8vIElmIHRpbWUgZm9ybWF0IGNvcnJlY3RcclxuICAgICAgdGltZSA9IHRpbWUuc2xpY2UoMSk7IC8vIFJlbW92ZSBmdWxsIHN0cmluZyBtYXRjaCB2YWx1ZVxyXG4gICAgICB0aW1lWzVdID0gK3RpbWVbMF0gPCAxMiA/ICcgQU0nIDogJyBQTSc7IC8vIFNldCBBTS9QTVxyXG4gICAgICB0aW1lWzBdID0gK3RpbWVbMF0gJSAxMiB8fCAxMjsgLy8gQWRqdXN0IGhvdXJzXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGltZS5qb2luKCcnKTsgLy8gcmV0dXJuIGFkanVzdGVkIHRpbWUgb3Igb3JpZ2luYWwgc3RyaW5nXHJcbiAgfVxyXG5cclxuICBhcnJheVRvSURzRHRyaW5nKGFycmF5OiBhbnksIGlkZW50aWZpZXJLZXk6IGFueSkge1xyXG4gICAgY29uc3QgbGlzdCA9IGFycmF5Lm1hcCgoZWw6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gZWxbaWRlbnRpZmllcktleV07XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBsaXN0LmpvaW4oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwbG9hZHMgdGhlIGdpdmVuIGZpbGUgdG8gc2VydmVyXHJcbiAgICogQHBhcmFtIHBheWxvYWQgcGF5bG9hZCBGaWxlIGRhdGEgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcGFyYW0gcGF0aCBwYXRoIFBhdGggb2YgZmlsZSB0byBiZSB1cGxvYWRlZFxyXG4gICAqIEByZXR1cm5zIHJlc3BvbnNlIGFmdGVyIHVwbG9hZGluZyBhIGZpbGVcclxuICAgKi9cclxuICB1cGxvYWRGaWxlcyhwYXlsb2FkOiBhbnksIHBhdGg6IGFueSkge1xyXG4gICAgLy8ge1xyXG4gICAgLy8gICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgIC8vICAgb2JzZXJ2ZTogJ2V2ZW50cyd9XHJcbiAgICBjb25zdCBPUkdfUEFUSCA9IGBvLyR7cGF0aH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICB0aGlzLmVudi5maWxlVXBsb2FkRW5kUG9pbnQgKyBPUkdfUEFUSCArICcmbmdzdy1ieXBhc3M9dHJ1ZScsXHJcbiAgICAgIHBheWxvYWRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRJc3N1ZURldGFpbHMoaXNzdWVJZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZW52LmFzc3VyYW5jZSArICdJc3N1ZS9FZGl0LycgKyBpc3N1ZUlkLCB7IGhlYWRlcnMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMykpO1xyXG4gIH1cclxufVxyXG4iXX0=
|