vcomply-workflow-engine 3.7.5 → 3.7.6
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/esm2022/lib/workflow-services/log-issue.service.mjs +3 -5
- package/esm2022/lib/workflow-services/policy.service.mjs +5 -2
- package/esm2022/lib/workflow-services/programs.service.mjs +3 -5
- package/esm2022/lib/workflow-services/responsibility.service.mjs +5 -3
- package/fesm2022/vcomply-workflow-engine.mjs +12 -11
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -326,11 +326,9 @@ export class LogIssueService {
|
|
|
326
326
|
* @returns response after uploading a file
|
|
327
327
|
*/
|
|
328
328
|
uploadFiles(payload, path) {
|
|
329
|
-
|
|
330
|
-
// reportProgress: true,
|
|
331
|
-
// observe: 'events'}
|
|
329
|
+
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
332
330
|
const ORG_PATH = `o/${path}`;
|
|
333
|
-
return this.http.post(this.env.fileUploadEndPoint + ORG_PATH + '&ngsw-bypass=true', payload);
|
|
331
|
+
return this.http.post(this.env.fileUploadEndPoint + ORG_PATH + '&ngsw-bypass=true', payload, { headers });
|
|
334
332
|
}
|
|
335
333
|
getIssueDetails(issueId) {
|
|
336
334
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
@@ -357,4 +355,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
357
355
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Configurations, decorators: [{
|
|
358
356
|
type: Optional
|
|
359
357
|
}] }]; } });
|
|
360
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWlzc3VlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9sb2ctaXNzdWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFJbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFLekUsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFDVSxJQUFnQixFQUNoQixXQUF3QixFQUNwQixNQUF1QjtRQUYzQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBa1ZsQyw0QkFBdUIsR0FBRyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3hDLElBQUksTUFBTSxFQUFFO2dCQUNWLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLE1BQU07cUJBQ3JDLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQztxQkFDOUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxHQUFHLE1BQU0sS0FBSyxJQUFJLENBQUM7Z0JBQzNCLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRTdDLE9BQU8sR0FBRyxDQUFDLEdBQUcsR0FB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WlUsZUFBZTttSEFBZixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1JLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcclxuXHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbnMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgREVGQVVMVF8yNEhSLCBERUZBVUxUX1RJTUUgfSBmcm9tICcuLi9jb25zdGFudHMvdGltZS5jb25zdGFudHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ0lzc3VlU2VydmljZSB7XHJcbiAgZW52ITogYW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9uc1xyXG4gICkge1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJc3N1ZVR5cGVzKCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ2lzc3VlVHlwZUxpc3QnLCB7IGhlYWRlcnMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3JnUGVvcGxlKCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ3Blb3BsZScsIHsgaGVhZGVycyB9KVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRJc3N1ZUNhdGVnb3JpZXMoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueVtdPihcclxuICAgICAgICB0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUvQ2F0ZWdvcnkvQ2F0TGlzdD9jYXRlZ29yaWVzPXRydWUnLFxyXG4gICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gICAgLy9odHRwczovL2RldmFwaS52LWNvbXBseS5jb20vQXNzdXJhbmNlL0lzc3VlL0NhdGVnb3J5L0NhdExpc3QvMT9pc0J1c2luZXNzQ3ljbGU9dHJ1ZSZjYXRlZ29yaWVzPXRydWVcclxuICB9XHJcbiAgZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0KCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYuY29tcGxpYW5jZUdldCArICdyZXNwb25zaWJpbGl0eUNlbnRlclRyZWUnLCB7XHJcbiAgICAgICAgaGVhZGVycyxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICBjcmVhdGVJc3N1ZShwYXlsb2FkOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZW52LmFzc3VyYW5jZSArICdJc3N1ZScsIHBheWxvYWQsIHsgaGVhZGVycyB9KVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG4gIHVwZGF0ZUlzc3VlKHBheWxvYWQ6IGFueSwgaXNzdWVJZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucHV0KHRoaXMuZW52LmFzc3VyYW5jZSArICdJc3N1ZS8nICsgaXNzdWVJZCwgcGF5bG9hZCwgeyBoZWFkZXJzIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldENvbnRyb2xSaXNrKGF1ZGl0UGxhbklkOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xyXG4gICAgLy8gICAgIEdldCBMaW5rZWQgQXVkaXQgUGxhbiBSZXNwb25zaWJpbGl0aWVzIGJ5IEF1ZGl0X1BsYW5fSWRcclxuICAgIC8vIFVSTDogaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL3Jlc3BvbnNpYmlsaXRpZXMvP21vZGU9bWFuYWdlX2F1ZGl0X3BsYW5fcmVzcG9uc2liaWxpdGllcyZpZD02MTBiMzI5MTQ0YzgxYTAwMDljYmI1OTggTWV0aG9kOiBHRVRcclxuXHJcbiAgICAvLyBHZXQgTGlua2VkIEF1ZGl0IFBsYW4gUmlzayBieSBBdWRpdF9QbGFuX0lkXHJcbiAgICAvLyBVUkw6IGh0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yaXNrLz9tb2RlPXJpc2svbWFuYWdlX2F1ZGl0X3BsYW5fcmlzayZpZD02MTBiMzI5MTQ0YzgxYTAwMDljYmI1OThcclxuICAgIC8vIE1ldGhvZDogR0VUXHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgaWYgKHR5cGUgPT09ICdSRVNQT05TSUJJTElUWScpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgIC5nZXQ8YW55W10+KFxyXG4gICAgICAgICAgdGhpcy5lbnYucmVzcG9uc2liaWxpdGllc0dldCArXHJcbiAgICAgICAgICAgICdtYW5hZ2VfYXVkaXRfcGxhbl9yZXNwb25zaWJpbGl0aWVzJmlkPScgK1xyXG4gICAgICAgICAgICBhdWRpdFBsYW5JZCxcclxuICAgICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgbWFwKChpdGVtczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW06IGFueSkgPT4gKHtcclxuICAgICAgICAgICAgICBpdGVtSWQ6IGl0ZW0/LnJlcG9ydF9pZCxcclxuICAgICAgICAgICAgICBpdGVtQ29udHJvbElkOiBpdGVtPy5jb250cm9sX2lkLFxyXG4gICAgICAgICAgICAgIGl0ZW1Db250cm9sTmFtZTogaXRlbT8ucmVwb3J0X25hbWUsXHJcbiAgICAgICAgICAgICAgaXRlbVR5cGU6ICdSRVNQT05TSUJJTElUWScsXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ1JJU0snKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAuZ2V0PGFueVtdPihcclxuICAgICAgICAgIHRoaXMuZW52LnJpc2sgKyAncmlzay9tYW5hZ2VfYXVkaXRfcGxhbl9yaXNrJmlkPScgKyBhdWRpdFBsYW5JZCxcclxuICAgICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgbWFwKChpdGVtczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW06IGFueSkgPT4gKHtcclxuICAgICAgICAgICAgICBpdGVtSWQ6IGl0ZW0/LnJpc2tfaWQsXHJcbiAgICAgICAgICAgICAgaXRlbUNvbnRyb2xJZDogaXRlbT8ucmlza19jb250cm9sX2lkLFxyXG4gICAgICAgICAgICAgIGl0ZW1Db250cm9sTmFtZTogaXRlbT8udGl0bGUsXHJcbiAgICAgICAgICAgICAgaXRlbVR5cGU6ICdSSVNLJyxcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZShpc3N1ZURhdGE6IGFueSwgb3BlbmVkRnJvbTogYW55LCBpc1JDTWFuZGF0b3J5OiBhbnkpIHtcclxuICAgIGNvbnN0IGVycm9ycyA9IFtdO1xyXG4gICAgaWYgKCFpc3N1ZURhdGEuaXNzdWVOYW1lIHx8IGlzc3VlRGF0YS5pc3N1ZU5hbWUudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBlcnJvcnMucHVzaCgnaXNzdWVOYW1lJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoID09PSAwICYmIGlzUkNNYW5kYXRvcnkpIHtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlUkMnKTtcclxuICAgIH1cclxuICAgIGlmIChpc3N1ZURhdGEuZW50cnVzdFRvLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBlcnJvcnMucHVzaCgnZW50cnVzdFRvJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpIHtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlRHVlRGF0ZScpO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBpc3N1ZURhdGEuaXNzdWVSZWNvbW1lbmRhdGlvblxyXG4gICAgICAgIC5yZXBsYWNlKC8mbmJzcDsvZywgJycpXHJcbiAgICAgICAgLnJlcGxhY2UoL1xcPGJyXFxzKltcXC9dPz4vZ2ksICcnKVxyXG4gICAgICAgIC50cmltKCkubGVuZ3RoID09PSAwXHJcbiAgICApIHtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlUmVjb21tZW5kYXRpb24nKTtcclxuICAgIH1cclxuICAgIHJldHVybiBlcnJvcnM7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVBheWxvYWQoaXNzdWVEYXRhOiBhbnksIG9wdGlvbkZpZWxkc1N0YXR1czogYW55KSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZShpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKTtcclxuICAgIGNvbnN0IGRhdGVTcGxpdCA9IFtcclxuICAgICAgc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXRNb250aCgpICsgMSxcclxuICAgICAgc2VsZWN0ZWREYXRlLmdldERhdGUoKSxcclxuICAgIF07XHJcbiAgICBjb25zdCB0aW1lOiBhbnkgPSB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KFxyXG4gICAgICBpc3N1ZURhdGEuaXNzdWVEdWVUaW1lXHJcbiAgICApLnNwbGl0KCc6Jyk7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoXHJcbiAgICAgIGRhdGVTcGxpdFswXSxcclxuICAgICAgZGF0ZVNwbGl0WzFdIC0gMSxcclxuICAgICAgZGF0ZVNwbGl0WzJdLFxyXG4gICAgICB0aW1lWzBdLFxyXG4gICAgICB0aW1lWzFdLFxyXG4gICAgICAwXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IGNyZWF0ZUlzc3VlOiBhbnkgPSB7XHJcbiAgICAgIGlzc3VlX2Rlc2NyaXB0aW9uX2F0dGFjaG1lbnRzOiBpc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMsXHJcbiAgICAgIGFzc29jaWF0ZWRfcmlzazogb3B0aW9uRmllbGRzU3RhdHVzLkFTU09DSUFURURfUklTS1NcclxuICAgICAgICA/IGlzc3VlRGF0YS5pc3N1ZUFzc29jaWF0ZWRSaXNrXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgaXNzdWVfbmFtZTogaXNzdWVEYXRhLmlzc3VlTmFtZSxcclxuICAgICAgcmVwb3J0X2lkOiAnMCcsXHJcbiAgICAgIGlzc3VlX2Rlc2NyaXB0aW9uOiBpc3N1ZURhdGEuaXNzdWVEZXNjcmlwdGlvbixcclxuICAgICAgaXNzdWVfdHlwZTogb3B0aW9uRmllbGRzU3RhdHVzLklTU1VFX1RZUEVcclxuICAgICAgICA/IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZVR5cGUsICdpc3N1ZV9pZCcpLnRvU3RyaW5nKClcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBleGNlcHRpb25fdHlwZTogb3B0aW9uRmllbGRzU3RhdHVzLkVYQ0VQVElPTl9UWVBFXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuZXhjZXB0aW9uVHlwZS50b1N0cmluZygpXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgcmlza19jbGFzczogaXNzdWVEYXRhLmlzc3VlUmlza1JhdGluZy50b1N0cmluZygpID8/ICcnLFxyXG4gICAgICBwcmlvcml0eTogb3B0aW9uRmllbGRzU3RhdHVzLlBSSU9SSVRZXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVQcmlvcml0eS50b1N0cmluZygpXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgaXNzdWVfY2F0ZWdvcnlfaWQ6XHJcbiAgICAgICAgdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmlzc3VlQ2F0ZWdvcnksICdjYXRlZ29yeV9pZCcpID8/IDAsXHJcbiAgICAgIHJlY29tbWVuZGF0aW9uOiBpc3N1ZURhdGEuaXNzdWVSZWNvbW1lbmRhdGlvbixcclxuICAgICAgZW50cnVzdGVkX3RvOiB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuZW50cnVzdFRvLCAnZW1wbG95ZWVfaWQnKSA/PyAwLFxyXG4gICAgICBpc3N1ZV9kYXRlOlxyXG4gICAgICAgIGRhdGVTcGxpdFswXSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICBkYXRlU3BsaXRbMV0gK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgZGF0ZVNwbGl0WzJdICtcclxuICAgICAgICAnICcgK1xyXG4gICAgICAgIHRoaXMuY29udmVydEZyb20xMlRvMjRGb3JtYXQoaXNzdWVEYXRhLmlzc3VlRHVlVGltZSksXHJcbiAgICAgIGZhaWxlZF90aW1lOiB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpLFxyXG4gICAgICBpc3N1ZV9kdWVfZGF0ZTpcclxuICAgICAgICBkYXRlU3BsaXRbMF0gK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgZGF0ZVNwbGl0WzFdICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIGRhdGVTcGxpdFsyXSArXHJcbiAgICAgICAgJyAnICtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpLFxyXG4gICAgICBncmNfYXJlYTogJycsXHJcbiAgICAgIGNjX2VtcGxveWVlX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUXHJcbiAgICAgICAgPyB0aGlzLmFycmF5VG9JRHNEdHJpbmcoaXNzdWVEYXRhLmlzc3VlQ0NVc2VycywgJ2VtcGxveWVlX2VtYWlsJylcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBmYWlsdXJlX2NjX2VtcGxveWVlX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUXHJcbiAgICAgICAgPyB0aGlzLmFycmF5VG9JRHNEdHJpbmcoaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLCAnZW1wbG95ZWVfZW1haWwnKVxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGN1c3RvbV90YWdfdmFsdWU6ICcnLFxyXG4gICAgICBpc3N1ZV9yZXNvbHZlX3RpbWVzdGFtcDogKGRhdGUuZ2V0VGltZSgpIC8gMTAwMCkudG9TdHJpbmcoKSxcclxuICAgICAgZXZpZGVuY2VfdXBsb2FkX2ZsYWc6IG9wdGlvbkZpZWxkc1N0YXR1cy5FVklERU5DRVxyXG4gICAgICAgID8gaXNzdWVEYXRhLmV2aWRlbmNlUmVxdWlyZWRcclxuICAgICAgICAgID8gJzEnXHJcbiAgICAgICAgICA6ICcwJ1xyXG4gICAgICAgIDogJzAnLFxyXG4gICAgfTtcclxuICAgIGlmIChpc3N1ZURhdGEuaXNzdWVSQy5sZW5ndGgpIHtcclxuICAgICAgY3JlYXRlSXNzdWUucmNfaWQgPSB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVSQywgJ3JjX2lkJykgPz8gMDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY3JlYXRlSXNzdWU7XHJcbiAgfVxyXG5cclxuICBwYXlsb2FkQnVpbGRlcihpc3N1ZURhdGE6IGFueSwgb3B0aW9uRmllbGRzU3RhdHVzOiBhbnkpIHtcclxuICAgIGNvbnN0IGlzTW9tZW50ID0gbW9tZW50LmlzTW9tZW50KGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gaXNNb21lbnRcclxuICAgICAgPyBtb21lbnQoaXNzdWVEYXRhLmlzc3VlRHVlRGF0ZSk/LnRvRGF0ZSgpXHJcbiAgICAgIDogbmV3IERhdGUoaXNzdWVEYXRhLmlzc3VlRHVlRGF0ZSk7XHJcbiAgICBjb25zdCBkYXRlU3BsaXQgPSBbXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCksXHJcbiAgICBdO1xyXG4gICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xyXG4gICAgICBkZXNjcmlwdGlvbjogW10sXHJcbiAgICAgIGFzc29jaWF0ZWRfcmlzazogW10sXHJcbiAgICAgIHJlY29tbWVuZGF0aW9uOiBbXSxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLnRpdGxlID0gaXNzdWVEYXRhLmlzc3VlTmFtZS50cmltKCkgPz8gJyc7XHJcbiAgICBwYXlsb2FkLnJjX2lkID0gaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoXHJcbiAgICAgID8gdGhpcy5nZXRBcnJheUlkKGlzc3VlRGF0YS5pc3N1ZVJDLCAncmNfaWQnKVxyXG4gICAgICA6IFtdO1xyXG4gICAgcGF5bG9hZC5yZXNwb25zaWJpbGl0aWVzX0xpbmtlZCA9IGlzc3VlRGF0YS5yZXNwb25zaWJpbGl0eUxpbmtlZC5sZW5ndGhcclxuICAgICAgPyB0aGlzLmdldEFycmF5SWQoaXNzdWVEYXRhLnJlc3BvbnNpYmlsaXR5TGlua2VkLCAnUmVwb3J0SWQnKVxyXG4gICAgICA6IFtdO1xyXG4gICAgcGF5bG9hZC5jYXRlZ29yeV9pZCA9IGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5Lmxlbmd0aFxyXG4gICAgICA/IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5LCAnY2F0ZWdvcnlfaWQnKVxyXG4gICAgICA6IG51bGw7XHJcbiAgICBwYXlsb2FkLmRlc2NyaXB0aW9uWzBdID0ge1xyXG4gICAgICB0ZXh0OiBpc3N1ZURhdGEuaXNzdWVEZXNjcmlwdGlvbiA/PyAnJyxcclxuICAgICAgYXR0YWNobWVudHM6IGlzc3VlRGF0YT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50c1xyXG4gICAgICAgIDogW10sXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5leGNlcHRpb25fdHlwZSA9IG9wdGlvbkZpZWxkc1N0YXR1cy5FWENFUFRJT05fVFlQRVxyXG4gICAgICA/IE51bWJlcihpc3N1ZURhdGEuZXhjZXB0aW9uVHlwZSlcclxuICAgICAgOiBudWxsO1xyXG4gICAgcGF5bG9hZC5yaXNrX2NsYXNzID0gaXNzdWVEYXRhLmlzc3VlUmlza1JhdGluZyA/PyBudWxsO1xyXG4gICAgcGF5bG9hZC5wcmlvcml0eSA9IG9wdGlvbkZpZWxkc1N0YXR1cy5QUklPUklUWVxyXG4gICAgICA/IE51bWJlcihpc3N1ZURhdGEuaXNzdWVQcmlvcml0eSlcclxuICAgICAgOiBudWxsO1xyXG4gICAgcGF5bG9hZC5hc3NpZ25lZV9pZCA9IGlzc3VlRGF0YS5lbnRydXN0VG9cclxuICAgICAgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuZW50cnVzdFRvLCAnbXlfbWVtYmVyX2lkJylcclxuICAgICAgOiBudWxsO1xyXG4gICAgcGF5bG9hZC5hc3NvY2lhdGVkX3Jpc2tbMF0gPSB7XHJcbiAgICAgIHRleHQ6IG9wdGlvbkZpZWxkc1N0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVBc3NvY2lhdGVkUmlza1xyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGF0dGFjaG1lbnRzOiBbXSxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLnJlY29tbWVuZGF0aW9uWzBdID0ge1xyXG4gICAgICB0ZXh0OiBpc3N1ZURhdGEuaXNzdWVSZWNvbW1lbmRhdGlvbiA/PyAnJyxcclxuICAgICAgYXR0YWNobWVudHM6IGlzc3VlRGF0YT8ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHMubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzXHJcbiAgICAgICAgOiBbXSxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLmV2aWRlbmNlID0ge1xyXG4gICAgICBldmlkZW5jZV9mbGFnOiBvcHRpb25GaWVsZHNTdGF0dXMuRVZJREVOQ0VcclxuICAgICAgICA/IGlzc3VlRGF0YS5ldmlkZW5jZVJlcXVpcmVkXHJcbiAgICAgICAgICA/IDFcclxuICAgICAgICAgIDogMFxyXG4gICAgICAgIDogMCxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLmZyZXF1ZW5jeV9kZXRhaWxzID0ge1xyXG4gICAgICBmcmVxdWVuY3lfdGltZTpcclxuICAgICAgICB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpID8/IERFRkFVTFRfVElNRSxcclxuICAgICAgZnJlcXVlbmN5X2RhdGU6XHJcbiAgICAgICAgZGF0ZVNwbGl0WzBdICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIChkYXRlU3BsaXRbMV0gPCAxMCA/ICcwJyArIGRhdGVTcGxpdFsxXSA6IGRhdGVTcGxpdFsxXSkgK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgKGRhdGVTcGxpdFsyXSA8IDEwID8gJzAnICsgZGF0ZVNwbGl0WzJdIDogZGF0ZVNwbGl0WzJdKSxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLm92ZXJzZWVyID0ge1xyXG4gICAgICBjY19lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVFxyXG4gICAgICAgID8gaXNzdWVEYXRhLmlzc3VlQ0NVc2Vycy5sZW5ndGhcclxuICAgICAgICAgID8gaXNzdWVEYXRhLmlzc3VlQ0NVc2Vycy5tYXAoKHg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7IG1lbWJlcl9pZDogeC5teV9tZW1iZXJfaWQgPz8gMCwgYWxlcnRfZW5hYmxlOiAxIH07XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICA6IFtdXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgZmFpbHVyZV9jY19lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVFxyXG4gICAgICAgID8gaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLmxlbmd0aFxyXG4gICAgICAgICAgPyBpc3N1ZURhdGEuZmFpbHVyZUNDVXNlcnMubWFwKCh4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4geyBtZW1iZXJfaWQ6IHgubXlfbWVtYmVyX2lkID8/IDAsIGFsZXJ0X2VuYWJsZTogMSB9O1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgOiBbXVxyXG4gICAgICAgIDogW10sXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5jdXN0b21fdGFncyA9IGlzc3VlRGF0YT8uaXNzdWVDdXN0b21UYWc7XHJcbiAgICBwYXlsb2FkLmlzc3VlVHlwZSA9IGlzc3VlRGF0YT8uaXNzdWVUeXBlO1xyXG4gICAgcGF5bG9hZC5saW5rZWRfYXNzZXNzbWVudF9pc3N1ZXMgPXtcclxuICAgICAgcmVzcF9pZDogaXNzdWVEYXRhPy5yZXNwSWQgPz8gJycsXHJcbiAgICAgIGR1ZV9kYXRlX2lkOiBpc3N1ZURhdGE/LmR1ZURhdGVJZCA/PyAnJyxcclxuICAgICAgYXNzZXNzbWVudF9pZDogaXNzdWVEYXRhPy5hc3Nlc3NtZW50SWQgPz8gJycsXHJcbiAgICAgIHF1ZXN0aW9uX2lkOiBpc3N1ZURhdGE/LnF1ZXN0aW9uSWQgPz8gJycsXHJcbiAgICAgIGF1ZGl0ZWVfaWQ6IGlzc3VlRGF0YT8uYXVkaXRlZUlkID8/IG51bGwsXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5zb3VyY2UgPSBpc3N1ZURhdGE/LnNvdXJjZTtcclxuXHJcbiAgICByZXR1cm4gcGF5bG9hZDtcclxuICB9XHJcblxyXG4gIGFycmF5VG9JZChhcnJheTogYW55LCBrZXk6IGFueSkge1xyXG4gICAgaWYgKGFycmF5Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gYXJyYXlbMF1ba2V5XTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEFycmF5SWQoYXJyYXk6IGFueSwga2V5OiBhbnkpIHtcclxuICAgIHJldHVybiBhcnJheS5tYXAoKGVsZTogYW55KSA9PiBlbGVba2V5XSk7XHJcbiAgfVxyXG5cclxuICBjb252ZXJ0RnJvbTEyVG8yNEZvcm1hdCA9ICh0aW1lMTI6IGFueSkgPT4ge1xyXG4gICAgaWYgKHRpbWUxMikge1xyXG4gICAgICBjb25zdCBbc0hvdXJzLCBtaW51dGVzLCBwZXJpb2RdID0gdGltZTEyXHJcbiAgICAgICAgLm1hdGNoKC8oWzAtOV17MSwyfSk6KFswLTldezJ9KSAoYW18cG18QU18UE0pLylcclxuICAgICAgICAuc2xpY2UoMSk7XHJcbiAgICAgIGNvbnN0IFBNID0gcGVyaW9kID09PSAnUE0nO1xyXG4gICAgICBjb25zdCBob3VycyA9ICgrc0hvdXJzICUgMTIpICsgKFBNID8gMTIgOiAwKTtcclxuXHJcbiAgICAgIHJldHVybiBgJHsoJzAnICsgaG91cnMpLnNsaWNlKC0yKX06JHttaW51dGVzfTowMGA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gREVGQVVMVF8yNEhSO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGNvbnZlcnRGcm9tMjRUbzEyRm9ybWF0KHRpbWU6IGFueSkge1xyXG4gICAgY29uc3QgaGhtbSA9IHRpbWUuc3BsaXQoJzonKTtcclxuICAgIHRpbWUgPSBgJHtoaG1tWzBdfToke2hobW1bMV19YDtcclxuICAgIC8vIENoZWNrIGNvcnJlY3QgdGltZSBmb3JtYXQgYW5kIHNwbGl0IGludG8gY29tcG9uZW50c1xyXG4gICAgdGltZSA9IHRpbWVcclxuICAgICAgLnRvU3RyaW5nKClcclxuICAgICAgLm1hdGNoKC9eKFswMV1cXGR8MlswLTNdKSg6KShbMC01XVxcZCkoOlswLTVdXFxkKT8kLykgfHwgW3RpbWVdO1xyXG5cclxuICAgIGlmICh0aW1lLmxlbmd0aCA+IDEpIHtcclxuICAgICAgLy8gSWYgdGltZSBmb3JtYXQgY29ycmVjdFxyXG4gICAgICB0aW1lID0gdGltZS5zbGljZSgxKTsgLy8gUmVtb3ZlIGZ1bGwgc3RyaW5nIG1hdGNoIHZhbHVlXHJcbiAgICAgIHRpbWVbNV0gPSArdGltZVswXSA8IDEyID8gJyBBTScgOiAnIFBNJzsgLy8gU2V0IEFNL1BNXHJcbiAgICAgIHRpbWVbMF0gPSArdGltZVswXSAlIDEyIHx8IDEyOyAvLyBBZGp1c3QgaG91cnNcclxuICAgIH1cclxuICAgIHJldHVybiB0aW1lLmpvaW4oJycpOyAvLyByZXR1cm4gYWRqdXN0ZWQgdGltZSBvciBvcmlnaW5hbCBzdHJpbmdcclxuICB9XHJcblxyXG4gIGFycmF5VG9JRHNEdHJpbmcoYXJyYXk6IGFueSwgaWRlbnRpZmllcktleTogYW55KSB7XHJcbiAgICBjb25zdCBsaXN0ID0gYXJyYXkubWFwKChlbDogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiBlbFtpZGVudGlmaWVyS2V5XTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGxpc3Quam9pbigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkcyB0aGUgZ2l2ZW4gZmlsZSB0byBzZXJ2ZXJcclxuICAgKiBAcGFyYW0gcGF5bG9hZCBwYXlsb2FkIEZpbGUgZGF0YSB0byBiZSB1cGxvYWRlZFxyXG4gICAqIEBwYXJhbSBwYXRoIHBhdGggUGF0aCBvZiBmaWxlIHRvIGJlIHVwbG9hZGVkXHJcbiAgICogQHJldHVybnMgcmVzcG9uc2UgYWZ0ZXIgdXBsb2FkaW5nIGEgZmlsZVxyXG4gICAqL1xyXG4gIHVwbG9hZEZpbGVzKHBheWxvYWQ6IGFueSwgcGF0aDogYW55KSB7XHJcbiAgICAvLyB7XHJcbiAgICAvLyAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG4gICAgLy8gICBvYnNlcnZlOiAnZXZlbnRzJ31cclxuICAgIGNvbnN0IE9SR19QQVRIID0gYG8vJHtwYXRofWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIHRoaXMuZW52LmZpbGVVcGxvYWRFbmRQb2ludCArIE9SR19QQVRIICsgJyZuZ3N3LWJ5cGFzcz10cnVlJyxcclxuICAgICAgcGF5bG9hZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldElzc3VlRGV0YWlscyhpc3N1ZUlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5lbnYuYXNzdXJhbmNlICsgJ0lzc3VlL0VkaXQvJyArIGlzc3VlSWQsIHsgaGVhZGVycyB9KVxyXG4gICAgICAucGlwZShyZXRyeSgzKSk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXREYXRlKCkge1xyXG4gICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgZGF5ID0gU3RyaW5nKGN1cnJlbnREYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGNvbnN0IG1vbnRoID0gU3RyaW5nKGN1cnJlbnREYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgeWVhciA9IGN1cnJlbnREYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gYCR7ZGF5fS0ke21vbnRofS0ke3llYXJ9YDtcclxuICAgIHJldHVybiBmb3JtYXR0ZWREYXRlO1xyXG4gIH1cclxuICBcclxufVxyXG4iXX0=
|
|
358
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWlzc3VlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9sb2ctaXNzdWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFJbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFLekUsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFDVSxJQUFnQixFQUNoQixXQUF3QixFQUNwQixNQUF1QjtRQUYzQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBa1ZsQyw0QkFBdUIsR0FBRyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3hDLElBQUksTUFBTSxFQUFFO2dCQUNWLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLE1BQU07cUJBQ3JDLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQztxQkFDOUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxHQUFHLE1BQU0sS0FBSyxJQUFJLENBQUM7Z0JBQzNCLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRTdDLE9BQU8sR0FBRyxDQUFDLEdBQUcsR0FB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TSxhQUFhLEdBQUcsR0FBRyxHQUFHLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2hELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7K0dBaGFVLGVBQWU7bUhBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1hcCwgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcblxyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb25zJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IERFRkFVTFRfMjRIUiwgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dJc3N1ZVNlcnZpY2Uge1xyXG4gIGVudiE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnNcclxuICApIHtcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgdGhpcy5lbnYgPSBjb25maWcuZW52Q29uZmlnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SXNzdWVUeXBlcygpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdpc3N1ZVR5cGVMaXN0JywgeyBoZWFkZXJzIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldE9yZ1Blb3BsZSgpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdwZW9wbGUnLCB7IGhlYWRlcnMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXNzdWVDYXRlZ29yaWVzKCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4oXHJcbiAgICAgICAgdGhpcy5lbnYuYXNzdXJhbmNlICsgJ0lzc3VlL0NhdGVnb3J5L0NhdExpc3Q/Y2F0ZWdvcmllcz10cnVlJyxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICAgIC8vaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL0Fzc3VyYW5jZS9Jc3N1ZS9DYXRlZ29yeS9DYXRMaXN0LzE/aXNCdXNpbmVzc0N5Y2xlPXRydWUmY2F0ZWdvcmllcz10cnVlXHJcbiAgfVxyXG4gIGdldFJlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdCgpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJywge1xyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcbiAgY3JlYXRlSXNzdWUocGF5bG9hZDogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUnLCBwYXlsb2FkLCB7IGhlYWRlcnMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICB1cGRhdGVJc3N1ZShwYXlsb2FkOiBhbnksIGlzc3VlSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnB1dCh0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUvJyArIGlzc3VlSWQsIHBheWxvYWQsIHsgaGVhZGVycyB9KVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250cm9sUmlzayhhdWRpdFBsYW5JZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIC8vICAgICBHZXQgTGlua2VkIEF1ZGl0IFBsYW4gUmVzcG9uc2liaWxpdGllcyBieSBBdWRpdF9QbGFuX0lkXHJcbiAgICAvLyBVUkw6IGh0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yZXNwb25zaWJpbGl0aWVzLz9tb2RlPW1hbmFnZV9hdWRpdF9wbGFuX3Jlc3BvbnNpYmlsaXRpZXMmaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4IE1ldGhvZDogR0VUXHJcblxyXG4gICAgLy8gR2V0IExpbmtlZCBBdWRpdCBQbGFuIFJpc2sgYnkgQXVkaXRfUGxhbl9JZFxyXG4gICAgLy8gVVJMOiBodHRwczovL2RldmFwaS52LWNvbXBseS5jb20vcmlzay8/bW9kZT1yaXNrL21hbmFnZV9hdWRpdF9wbGFuX3Jpc2smaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4XHJcbiAgICAvLyBNZXRob2Q6IEdFVFxyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIGlmICh0eXBlID09PSAnUkVTUE9OU0lCSUxJVFknKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAuZ2V0PGFueVtdPihcclxuICAgICAgICAgIHRoaXMuZW52LnJlc3BvbnNpYmlsaXRpZXNHZXQgK1xyXG4gICAgICAgICAgICAnbWFuYWdlX2F1ZGl0X3BsYW5fcmVzcG9uc2liaWxpdGllcyZpZD0nICtcclxuICAgICAgICAgICAgYXVkaXRQbGFuSWQsXHJcbiAgICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICAgIClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIG1hcCgoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtOiBhbnkpID0+ICh7XHJcbiAgICAgICAgICAgICAgaXRlbUlkOiBpdGVtPy5yZXBvcnRfaWQsXHJcbiAgICAgICAgICAgICAgaXRlbUNvbnRyb2xJZDogaXRlbT8uY29udHJvbF9pZCxcclxuICAgICAgICAgICAgICBpdGVtQ29udHJvbE5hbWU6IGl0ZW0/LnJlcG9ydF9uYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiAnUkVTUE9OU0lCSUxJVFknLFxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdSSVNLJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgLmdldDxhbnlbXT4oXHJcbiAgICAgICAgICB0aGlzLmVudi5yaXNrICsgJ3Jpc2svbWFuYWdlX2F1ZGl0X3BsYW5fcmlzayZpZD0nICsgYXVkaXRQbGFuSWQsXHJcbiAgICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICAgIClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIG1hcCgoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtOiBhbnkpID0+ICh7XHJcbiAgICAgICAgICAgICAgaXRlbUlkOiBpdGVtPy5yaXNrX2lkLFxyXG4gICAgICAgICAgICAgIGl0ZW1Db250cm9sSWQ6IGl0ZW0/LnJpc2tfY29udHJvbF9pZCxcclxuICAgICAgICAgICAgICBpdGVtQ29udHJvbE5hbWU6IGl0ZW0/LnRpdGxlLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiAnUklTSycsXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoaXNzdWVEYXRhOiBhbnksIG9wZW5lZEZyb206IGFueSwgaXNSQ01hbmRhdG9yeTogYW55KSB7XHJcbiAgICBjb25zdCBlcnJvcnMgPSBbXTtcclxuICAgIGlmICghaXNzdWVEYXRhLmlzc3VlTmFtZSB8fCBpc3N1ZURhdGEuaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlTmFtZScpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzc3VlRGF0YS5pc3N1ZVJDLmxlbmd0aCA9PT0gMCAmJiBpc1JDTWFuZGF0b3J5KSB7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZVJDJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNzdWVEYXRhLmVudHJ1c3RUby5sZW5ndGggPT09IDApIHtcclxuICAgICAgZXJyb3JzLnB1c2goJ2VudHJ1c3RUbycpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKSB7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZUR1ZURhdGUnKTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgaXNzdWVEYXRhLmlzc3VlUmVjb21tZW5kYXRpb25cclxuICAgICAgICAucmVwbGFjZSgvJm5ic3A7L2csICcnKVxyXG4gICAgICAgIC5yZXBsYWNlKC9cXDxiclxccypbXFwvXT8+L2dpLCAnJylcclxuICAgICAgICAudHJpbSgpLmxlbmd0aCA9PT0gMFxyXG4gICAgKSB7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZVJlY29tbWVuZGF0aW9uJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVQYXlsb2FkKGlzc3VlRGF0YTogYW55LCBvcHRpb25GaWVsZHNTdGF0dXM6IGFueSkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoaXNzdWVEYXRhLmlzc3VlRHVlRGF0ZSk7XHJcbiAgICBjb25zdCBkYXRlU3BsaXQgPSBbXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCksXHJcbiAgICBdO1xyXG4gICAgY29uc3QgdGltZTogYW55ID0gdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChcclxuICAgICAgaXNzdWVEYXRhLmlzc3VlRHVlVGltZVxyXG4gICAgKS5zcGxpdCgnOicpO1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKFxyXG4gICAgICBkYXRlU3BsaXRbMF0sXHJcbiAgICAgIGRhdGVTcGxpdFsxXSAtIDEsXHJcbiAgICAgIGRhdGVTcGxpdFsyXSxcclxuICAgICAgdGltZVswXSxcclxuICAgICAgdGltZVsxXSxcclxuICAgICAgMFxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBjcmVhdGVJc3N1ZTogYW55ID0ge1xyXG4gICAgICBpc3N1ZV9kZXNjcmlwdGlvbl9hdHRhY2htZW50czogaXNzdWVEYXRhPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzLFxyXG4gICAgICBhc3NvY2lhdGVkX3Jpc2s6IG9wdGlvbkZpZWxkc1N0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVBc3NvY2lhdGVkUmlza1xyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlX25hbWU6IGlzc3VlRGF0YS5pc3N1ZU5hbWUsXHJcbiAgICAgIHJlcG9ydF9pZDogJzAnLFxyXG4gICAgICBpc3N1ZV9kZXNjcmlwdGlvbjogaXNzdWVEYXRhLmlzc3VlRGVzY3JpcHRpb24sXHJcbiAgICAgIGlzc3VlX3R5cGU6IG9wdGlvbkZpZWxkc1N0YXR1cy5JU1NVRV9UWVBFXHJcbiAgICAgICAgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVUeXBlLCAnaXNzdWVfaWQnKS50b1N0cmluZygpXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgZXhjZXB0aW9uX3R5cGU6IG9wdGlvbkZpZWxkc1N0YXR1cy5FWENFUFRJT05fVFlQRVxyXG4gICAgICAgID8gaXNzdWVEYXRhLmV4Y2VwdGlvblR5cGUudG9TdHJpbmcoKVxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIHJpc2tfY2xhc3M6IGlzc3VlRGF0YS5pc3N1ZVJpc2tSYXRpbmcudG9TdHJpbmcoKSA/PyAnJyxcclxuICAgICAgcHJpb3JpdHk6IG9wdGlvbkZpZWxkc1N0YXR1cy5QUklPUklUWVxyXG4gICAgICAgID8gaXNzdWVEYXRhLmlzc3VlUHJpb3JpdHkudG9TdHJpbmcoKVxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlX2NhdGVnb3J5X2lkOlxyXG4gICAgICAgIHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5LCAnY2F0ZWdvcnlfaWQnKSA/PyAwLFxyXG4gICAgICByZWNvbW1lbmRhdGlvbjogaXNzdWVEYXRhLmlzc3VlUmVjb21tZW5kYXRpb24sXHJcbiAgICAgIGVudHJ1c3RlZF90bzogdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmVudHJ1c3RUbywgJ2VtcGxveWVlX2lkJykgPz8gMCxcclxuICAgICAgaXNzdWVfZGF0ZTpcclxuICAgICAgICBkYXRlU3BsaXRbMF0gK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgZGF0ZVNwbGl0WzFdICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIGRhdGVTcGxpdFsyXSArXHJcbiAgICAgICAgJyAnICtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpLFxyXG4gICAgICBmYWlsZWRfdGltZTogdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSxcclxuICAgICAgaXNzdWVfZHVlX2RhdGU6XHJcbiAgICAgICAgZGF0ZVNwbGl0WzBdICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIGRhdGVTcGxpdFsxXSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICBkYXRlU3BsaXRbMl0gK1xyXG4gICAgICAgICcgJyArXHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSxcclxuICAgICAgZ3JjX2FyZWE6ICcnLFxyXG4gICAgICBjY19lbXBsb3llZV9lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVFxyXG4gICAgICAgID8gdGhpcy5hcnJheVRvSURzRHRyaW5nKGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMsICdlbXBsb3llZV9lbWFpbCcpXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgZmFpbHVyZV9jY19lbXBsb3llZV9lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVFxyXG4gICAgICAgID8gdGhpcy5hcnJheVRvSURzRHRyaW5nKGlzc3VlRGF0YS5mYWlsdXJlQ0NVc2VycywgJ2VtcGxveWVlX2VtYWlsJylcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBjdXN0b21fdGFnX3ZhbHVlOiAnJyxcclxuICAgICAgaXNzdWVfcmVzb2x2ZV90aW1lc3RhbXA6IChkYXRlLmdldFRpbWUoKSAvIDEwMDApLnRvU3RyaW5nKCksXHJcbiAgICAgIGV2aWRlbmNlX3VwbG9hZF9mbGFnOiBvcHRpb25GaWVsZHNTdGF0dXMuRVZJREVOQ0VcclxuICAgICAgICA/IGlzc3VlRGF0YS5ldmlkZW5jZVJlcXVpcmVkXHJcbiAgICAgICAgICA/ICcxJ1xyXG4gICAgICAgICAgOiAnMCdcclxuICAgICAgICA6ICcwJyxcclxuICAgIH07XHJcbiAgICBpZiAoaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoKSB7XHJcbiAgICAgIGNyZWF0ZUlzc3VlLnJjX2lkID0gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmlzc3VlUkMsICdyY19pZCcpID8/IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNyZWF0ZUlzc3VlO1xyXG4gIH1cclxuXHJcbiAgcGF5bG9hZEJ1aWxkZXIoaXNzdWVEYXRhOiBhbnksIG9wdGlvbkZpZWxkc1N0YXR1czogYW55KSB7XHJcbiAgICBjb25zdCBpc01vbWVudCA9IG1vbWVudC5pc01vbWVudChpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKTtcclxuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IGlzTW9tZW50XHJcbiAgICAgID8gbW9tZW50KGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpPy50b0RhdGUoKVxyXG4gICAgICA6IG5ldyBEYXRlKGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpO1xyXG4gICAgY29uc3QgZGF0ZVNwbGl0ID0gW1xyXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgc2VsZWN0ZWREYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgXTtcclxuICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcclxuICAgICAgZGVzY3JpcHRpb246IFtdLFxyXG4gICAgICBhc3NvY2lhdGVkX3Jpc2s6IFtdLFxyXG4gICAgICByZWNvbW1lbmRhdGlvbjogW10sXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC50aXRsZSA9IGlzc3VlRGF0YS5pc3N1ZU5hbWUudHJpbSgpID8/ICcnO1xyXG4gICAgcGF5bG9hZC5yY19pZCA9IGlzc3VlRGF0YS5pc3N1ZVJDLmxlbmd0aFxyXG4gICAgICA/IHRoaXMuZ2V0QXJyYXlJZChpc3N1ZURhdGEuaXNzdWVSQywgJ3JjX2lkJylcclxuICAgICAgOiBbXTtcclxuICAgIHBheWxvYWQucmVzcG9uc2liaWxpdGllc19MaW5rZWQgPSBpc3N1ZURhdGEucmVzcG9uc2liaWxpdHlMaW5rZWQubGVuZ3RoXHJcbiAgICAgID8gdGhpcy5nZXRBcnJheUlkKGlzc3VlRGF0YS5yZXNwb25zaWJpbGl0eUxpbmtlZCwgJ1JlcG9ydElkJylcclxuICAgICAgOiBbXTtcclxuICAgIHBheWxvYWQuY2F0ZWdvcnlfaWQgPSBpc3N1ZURhdGEuaXNzdWVDYXRlZ29yeS5sZW5ndGhcclxuICAgICAgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVDYXRlZ29yeSwgJ2NhdGVnb3J5X2lkJylcclxuICAgICAgOiBudWxsO1xyXG4gICAgcGF5bG9hZC5kZXNjcmlwdGlvblswXSA9IHtcclxuICAgICAgdGV4dDogaXNzdWVEYXRhLmlzc3VlRGVzY3JpcHRpb24gPz8gJycsXHJcbiAgICAgIGF0dGFjaG1lbnRzOiBpc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHNcclxuICAgICAgICA6IFtdLFxyXG4gICAgfTtcclxuICAgIHBheWxvYWQuZXhjZXB0aW9uX3R5cGUgPSBvcHRpb25GaWVsZHNTdGF0dXMuRVhDRVBUSU9OX1RZUEVcclxuICAgICAgPyBOdW1iZXIoaXNzdWVEYXRhLmV4Y2VwdGlvblR5cGUpXHJcbiAgICAgIDogbnVsbDtcclxuICAgIHBheWxvYWQucmlza19jbGFzcyA9IGlzc3VlRGF0YS5pc3N1ZVJpc2tSYXRpbmcgPz8gbnVsbDtcclxuICAgIHBheWxvYWQucHJpb3JpdHkgPSBvcHRpb25GaWVsZHNTdGF0dXMuUFJJT1JJVFlcclxuICAgICAgPyBOdW1iZXIoaXNzdWVEYXRhLmlzc3VlUHJpb3JpdHkpXHJcbiAgICAgIDogbnVsbDtcclxuICAgIHBheWxvYWQuYXNzaWduZWVfaWQgPSBpc3N1ZURhdGEuZW50cnVzdFRvXHJcbiAgICAgID8gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmVudHJ1c3RUbywgJ215X21lbWJlcl9pZCcpXHJcbiAgICAgIDogbnVsbDtcclxuICAgIHBheWxvYWQuYXNzb2NpYXRlZF9yaXNrWzBdID0ge1xyXG4gICAgICB0ZXh0OiBvcHRpb25GaWVsZHNTdGF0dXMuQVNTT0NJQVRFRF9SSVNLU1xyXG4gICAgICAgID8gaXNzdWVEYXRhLmlzc3VlQXNzb2NpYXRlZFJpc2tcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBhdHRhY2htZW50czogW10sXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5yZWNvbW1lbmRhdGlvblswXSA9IHtcclxuICAgICAgdGV4dDogaXNzdWVEYXRhLmlzc3VlUmVjb21tZW5kYXRpb24gPz8gJycsXHJcbiAgICAgIGF0dGFjaG1lbnRzOiBpc3N1ZURhdGE/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzLmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50c1xyXG4gICAgICAgIDogW10sXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5ldmlkZW5jZSA9IHtcclxuICAgICAgZXZpZGVuY2VfZmxhZzogb3B0aW9uRmllbGRzU3RhdHVzLkVWSURFTkNFXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuZXZpZGVuY2VSZXF1aXJlZFxyXG4gICAgICAgICAgPyAxXHJcbiAgICAgICAgICA6IDBcclxuICAgICAgICA6IDAsXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5mcmVxdWVuY3lfZGV0YWlscyA9IHtcclxuICAgICAgZnJlcXVlbmN5X3RpbWU6XHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSA/PyBERUZBVUxUX1RJTUUsXHJcbiAgICAgIGZyZXF1ZW5jeV9kYXRlOlxyXG4gICAgICAgIGRhdGVTcGxpdFswXSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICAoZGF0ZVNwbGl0WzFdIDwgMTAgPyAnMCcgKyBkYXRlU3BsaXRbMV0gOiBkYXRlU3BsaXRbMV0pICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIChkYXRlU3BsaXRbMl0gPCAxMCA/ICcwJyArIGRhdGVTcGxpdFsyXSA6IGRhdGVTcGxpdFsyXSksXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5vdmVyc2VlciA9IHtcclxuICAgICAgY2NfZW1haWw6IG9wdGlvbkZpZWxkc1N0YXR1cy5PVkVSU0lHSFRcclxuICAgICAgICA/IGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMubGVuZ3RoXHJcbiAgICAgICAgICA/IGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMubWFwKCh4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4geyBtZW1iZXJfaWQ6IHgubXlfbWVtYmVyX2lkID8/IDAsIGFsZXJ0X2VuYWJsZTogMSB9O1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgOiBbXVxyXG4gICAgICAgIDogW10sXHJcbiAgICAgIGZhaWx1cmVfY2NfZW1haWw6IG9wdGlvbkZpZWxkc1N0YXR1cy5PVkVSU0lHSFRcclxuICAgICAgICA/IGlzc3VlRGF0YS5mYWlsdXJlQ0NVc2Vycy5sZW5ndGhcclxuICAgICAgICAgID8gaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLm1hcCgoeDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHsgbWVtYmVyX2lkOiB4Lm15X21lbWJlcl9pZCA/PyAwLCBhbGVydF9lbmFibGU6IDEgfTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIDogW11cclxuICAgICAgICA6IFtdLFxyXG4gICAgfTtcclxuICAgIHBheWxvYWQuY3VzdG9tX3RhZ3MgPSBpc3N1ZURhdGE/Lmlzc3VlQ3VzdG9tVGFnO1xyXG4gICAgcGF5bG9hZC5pc3N1ZVR5cGUgPSBpc3N1ZURhdGE/Lmlzc3VlVHlwZTtcclxuICAgIHBheWxvYWQubGlua2VkX2Fzc2Vzc21lbnRfaXNzdWVzID0ge1xyXG4gICAgICByZXNwX2lkOiBpc3N1ZURhdGE/LnJlc3BJZCA/PyAnJyxcclxuICAgICAgZHVlX2RhdGVfaWQ6IGlzc3VlRGF0YT8uZHVlRGF0ZUlkID8/ICcnLFxyXG4gICAgICBhc3Nlc3NtZW50X2lkOiBpc3N1ZURhdGE/LmFzc2Vzc21lbnRJZCA/PyAnJyxcclxuICAgICAgcXVlc3Rpb25faWQ6IGlzc3VlRGF0YT8ucXVlc3Rpb25JZCA/PyAnJyxcclxuICAgICAgYXVkaXRlZV9pZDogaXNzdWVEYXRhPy5hdWRpdGVlSWQgPz8gbnVsbCxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLnNvdXJjZSA9IGlzc3VlRGF0YT8uc291cmNlO1xyXG5cclxuICAgIHJldHVybiBwYXlsb2FkO1xyXG4gIH1cclxuXHJcbiAgYXJyYXlUb0lkKGFycmF5OiBhbnksIGtleTogYW55KSB7XHJcbiAgICBpZiAoYXJyYXkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBhcnJheVswXVtrZXldO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0QXJyYXlJZChhcnJheTogYW55LCBrZXk6IGFueSkge1xyXG4gICAgcmV0dXJuIGFycmF5Lm1hcCgoZWxlOiBhbnkpID0+IGVsZVtrZXldKTtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0ID0gKHRpbWUxMjogYW55KSA9PiB7XHJcbiAgICBpZiAodGltZTEyKSB7XHJcbiAgICAgIGNvbnN0IFtzSG91cnMsIG1pbnV0ZXMsIHBlcmlvZF0gPSB0aW1lMTJcclxuICAgICAgICAubWF0Y2goLyhbMC05XXsxLDJ9KTooWzAtOV17Mn0pIChhbXxwbXxBTXxQTSkvKVxyXG4gICAgICAgIC5zbGljZSgxKTtcclxuICAgICAgY29uc3QgUE0gPSBwZXJpb2QgPT09ICdQTSc7XHJcbiAgICAgIGNvbnN0IGhvdXJzID0gKCtzSG91cnMgJSAxMikgKyAoUE0gPyAxMiA6IDApO1xyXG5cclxuICAgICAgcmV0dXJuIGAkeygnMCcgKyBob3Vycykuc2xpY2UoLTIpfToke21pbnV0ZXN9OjAwYDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBERUZBVUxUXzI0SFI7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29udmVydEZyb20yNFRvMTJGb3JtYXQodGltZTogYW55KSB7XHJcbiAgICBjb25zdCBoaG1tID0gdGltZS5zcGxpdCgnOicpO1xyXG4gICAgdGltZSA9IGAke2hobW1bMF19OiR7aGhtbVsxXX1gO1xyXG4gICAgLy8gQ2hlY2sgY29ycmVjdCB0aW1lIGZvcm1hdCBhbmQgc3BsaXQgaW50byBjb21wb25lbnRzXHJcbiAgICB0aW1lID0gdGltZVxyXG4gICAgICAudG9TdHJpbmcoKVxyXG4gICAgICAubWF0Y2goL14oWzAxXVxcZHwyWzAtM10pKDopKFswLTVdXFxkKSg6WzAtNV1cXGQpPyQvKSB8fCBbdGltZV07XHJcblxyXG4gICAgaWYgKHRpbWUubGVuZ3RoID4gMSkge1xyXG4gICAgICAvLyBJZiB0aW1lIGZvcm1hdCBjb3JyZWN0XHJcbiAgICAgIHRpbWUgPSB0aW1lLnNsaWNlKDEpOyAvLyBSZW1vdmUgZnVsbCBzdHJpbmcgbWF0Y2ggdmFsdWVcclxuICAgICAgdGltZVs1XSA9ICt0aW1lWzBdIDwgMTIgPyAnIEFNJyA6ICcgUE0nOyAvLyBTZXQgQU0vUE1cclxuICAgICAgdGltZVswXSA9ICt0aW1lWzBdICUgMTIgfHwgMTI7IC8vIEFkanVzdCBob3Vyc1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRpbWUuam9pbignJyk7IC8vIHJldHVybiBhZGp1c3RlZCB0aW1lIG9yIG9yaWdpbmFsIHN0cmluZ1xyXG4gIH1cclxuXHJcbiAgYXJyYXlUb0lEc0R0cmluZyhhcnJheTogYW55LCBpZGVudGlmaWVyS2V5OiBhbnkpIHtcclxuICAgIGNvbnN0IGxpc3QgPSBhcnJheS5tYXAoKGVsOiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIGVsW2lkZW50aWZpZXJLZXldO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbGlzdC5qb2luKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGxvYWRzIHRoZSBnaXZlbiBmaWxlIHRvIHNlcnZlclxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIHBheWxvYWQgRmlsZSBkYXRhIHRvIGJlIHVwbG9hZGVkXHJcbiAgICogQHBhcmFtIHBhdGggcGF0aCBQYXRoIG9mIGZpbGUgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcmV0dXJucyByZXNwb25zZSBhZnRlciB1cGxvYWRpbmcgYSBmaWxlXHJcbiAgICovXHJcbiAgdXBsb2FkRmlsZXMocGF5bG9hZDogYW55LCBwYXRoOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICBjb25zdCBPUkdfUEFUSCA9IGBvLyR7cGF0aH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICB0aGlzLmVudi5maWxlVXBsb2FkRW5kUG9pbnQgKyBPUkdfUEFUSCArICcmbmdzdy1ieXBhc3M9dHJ1ZScsXHJcbiAgICAgIHBheWxvYWQsXHJcbiAgICAgIHsgaGVhZGVycyB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXNzdWVEZXRhaWxzKGlzc3VlSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUvRWRpdC8nICsgaXNzdWVJZCwgeyBoZWFkZXJzIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDMpKTtcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGUoKSB7XHJcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBkYXkgPSBTdHJpbmcoY3VycmVudERhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgbW9udGggPSBTdHJpbmcoY3VycmVudERhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBjb25zdCB5ZWFyID0gY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBgJHtkYXl9LSR7bW9udGh9LSR7eWVhcn1gO1xyXG4gICAgcmV0dXJuIGZvcm1hdHRlZERhdGU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -71,7 +71,10 @@ export class PolicyService {
|
|
|
71
71
|
.pipe(retry(2));
|
|
72
72
|
}
|
|
73
73
|
fileUploadWorkroom(payload, des) {
|
|
74
|
-
|
|
74
|
+
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
75
|
+
return this.http.post(this.env.fileUploadEndPoint + des, payload, {
|
|
76
|
+
headers,
|
|
77
|
+
});
|
|
75
78
|
}
|
|
76
79
|
saveUploadedFiles(payload) {
|
|
77
80
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
@@ -165,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
165
168
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Configurations, decorators: [{
|
|
166
169
|
type: Optional
|
|
167
170
|
}] }]; } });
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9wb2xpY3kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBTyxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFNNUMsTUFBTSxPQUFPLGFBQWE7SUFFeEIsWUFDVSxJQUFnQixFQUNoQixXQUF3QixFQUNwQixNQUF1QjtRQUYzQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBR2hDLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBUSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxxQ0FBcUMsRUFBRTtZQUN0RSxPQUFPO1NBQ1IsQ0FBQzthQUNELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsOERBQThEO0lBQzlELGVBQWUsQ0FBQyxPQUFZO1FBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdB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QUUsQ0FDWixDQUFDO0lBQ0osQ0FBQzsrR0EvUFUsYUFBYTttSEFBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1JLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwQmFja2VuZCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1hcCwgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb25zJztcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvbGljeVNlcnZpY2Uge1xyXG4gIGVudiE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnNcclxuICApIHtcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgdGhpcy5lbnYgPSBjb25maWcuZW52Q29uZmlnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2F0ZWdvcmllc0xpc3QoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5wb2xpY3lHZXQgKyAnY2F0ZWdvcnkvZHJvcGRvd25MaXN0JnR5cGU9Y29udHJhY3QnLCB7XHJcbiAgICAgICAgaGVhZGVycyxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgLy8gaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL3BvbGljeS8/bW9kZT1jYXRlZ29yeS9kZXRhaWxBbGxcclxuICBnZXRXb3JrZmxvd0xpc3QocGF5bG9hZDogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdChcclxuICAgICAgICB0aGlzLmVudi5wb2xpY3lQb3N0ICsgJ2FwcHJvdmFsd29ya2Zsb3cvZmV0Y2hhbGwnLFxyXG4gICAgICAgIHsgY2F0ZWdvcnlfaWQ6IHBheWxvYWQsIHNvdXJjZV9wYWdlOiAnV09SS0ZMT1dfRU5HSU5FJyB9LFxyXG4gICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0UG9saWN5KHBheWxvYWQ6IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5lbnYucG9saWN5UG9zdCArICdwb2xpY3kvYWRkJywgcGF5bG9hZCwgeyBoZWFkZXJzIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldFJldmlld2VycyhwYXlsb2FkOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KFxyXG4gICAgICAgIHRoaXMuZW52LnBvbGljeVBvc3QgKyAnY2F0ZWdvcnkvZGV0YWlsQWxsJyxcclxuICAgICAgICB7IGNhdGVnb3J5SWQ6IHBheWxvYWQgfSxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcbiAgZ2V0UkNMaXN0KCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYuY29tcGxpYW5jZUdldCArICdyZXNwb25zaWJpbGl0eUNlbnRlclRyZWUnLCB7XHJcbiAgICAgICAgaGVhZGVycyxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgLy8gZ2V0T3JnYW5pemF0aW9uVXNlcnMoKSB7XHJcbiAgLy8gICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gIC8vICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgKyAnb3JnYW5pemF0aW9uVXNlcnMmZnJvbT1yaXNrJywge1xyXG4gIC8vICAgICAgIGhlYWRlcnMsXHJcbiAgLy8gICAgIH0pXHJcbiAgLy8gICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICAvLyB9XHJcbiAgZ2V0T3JnYW5pemF0aW9uUGVvcGxlKCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ3Blb3BsZScsIHtcclxuICAgICAgICBoZWFkZXJzLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRDYXRlZ29yeVdvcmtGbG93cyhpZDogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueVtdPihcclxuICAgICAgICB0aGlzLmVudi5wb2xpY3lHZXQgKyAnYXBwcm92YWx3b3JrZmxvdy9mZXRjaGFsbCZjYXRlZ29yeV9pZD0nICsgaWQsXHJcbiAgICAgICAgeyBoZWFkZXJzIH1cclxuICAgICAgKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBmaWxlVXBsb2FkV29ya3Jvb20ocGF5bG9hZDogYW55LCBkZXM6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odGhpcy5lbnYuZmlsZVVwbG9hZEVuZFBvaW50ICsgZGVzLCBwYXlsb2FkKTtcclxuICB9XHJcblxyXG4gIHNhdmVVcGxvYWRlZEZpbGVzKHBheWxvYWQ6IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICB0aGlzLmVudi5wb2xpY3lQb3N0ICsgJ2F0dGFjaG1lbnQvY3JlYXRlJyxcclxuICAgICAgcGF5bG9hZCxcclxuICAgICAgeyBoZWFkZXJzIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIHVwbG9hZEZpbGUoZGF0YTogYW55LCBpZDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZW52LmZpbGVVcGxvYWQgKyAnP2lkPScgKyBpZCArICcmcGF0aD0nICsgcGF0aCwgZGF0YSwge1xyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIHVwbG9hZERvY3hGaWxlKGRhdGE6IGFueSwgaWQ6IHN0cmluZywgcGF0aDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdChcclxuICAgICAgICB0aGlzLmVudi5kb2N4VXBsb2FkICtcclxuICAgICAgICAgICc/aWQ9JyArXHJcbiAgICAgICAgICBpZCArXHJcbiAgICAgICAgICAnJnBhdGg9JyArXHJcbiAgICAgICAgICBwYXRoICtcclxuICAgICAgICAgICcmYnlwYXNzLXRva2VuPXRydWUnLFxyXG4gICAgICAgIGRhdGEsXHJcbiAgICAgICAgeyBoZWFkZXJzIH1cclxuICAgICAgKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBzYXZlUG9saWN5RGV0YWlscyhcclxuICAgIHVuYW1lOiBhbnksXHJcbiAgICB1aWQ6IGFueSxcclxuICAgIGlkOiBhbnksXHJcbiAgICBuYW1lOiBhbnksXHJcbiAgICBodG1sOiBhbnksXHJcbiAgICBpc1NlbmRGb3JBcHByb3ZlOiBhbnlcclxuICApIHtcclxuICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgIHBvbGljeUxvZ3M6IEpTT04uc3RyaW5naWZ5KFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwb2xpY3lOYW1lOiBuYW1lLFxyXG4gICAgICAgICAgcG9saWN5RGVzYzogaHRtbCxcclxuICAgICAgICAgIG9sZFBvbGljeU5hbWU6IG5hbWUsXHJcbiAgICAgICAgICB0eXBlOiAyLFxyXG4gICAgICAgICAgYWN0aXZlX2ZsYWc6IDEsXHJcbiAgICAgICAgICBtb2RpZmllZF9tZW1iZXI6IFt7IG1vZGlmaWVyX2lkOiB1aWQsIG1vZGlmaWVyX25hbWU6IHVuYW1lIH1dLFxyXG4gICAgICAgICAgbW9kaWZpZWRfYnk6IHVuYW1lLFxyXG4gICAgICAgICAgbW9kaWZpZWRfb246IG5ldyBEYXRlKCksXHJcbiAgICAgICAgfSxcclxuICAgICAgXSksXHJcbiAgICAgIHBvbGljeURlc2M6IEpTT04uc3RyaW5naWZ5KFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwb2xpY3lOYW1lOiBuYW1lLFxyXG4gICAgICAgICAgcG9saWN5RGVzYzogaHRtbCxcclxuICAgICAgICAgIG9sZFBvbGljeU5hbWU6IG5hbWUsXHJcbiAgICAgICAgICB0eXBlOiAyLFxyXG4gICAgICAgICAgYWN0aXZlX2ZsYWc6IDEsXHJcbiAgICAgICAgICBtb2RpZmllZF9tZW1iZXI6IFt7IG1vZGlmaWVyX2lkOiB1aWQsIG1vZGlmaWVyX25hbWU6IHVuYW1lIH1dLFxyXG4gICAgICAgICAgbW9kaWZpZWRfYnk6IHVuYW1lLFxyXG4gICAgICAgICAgbW9kaWZpZWRfb246IG5ldyBEYXRlKCksXHJcbiAgICAgICAgfSxcclxuICAgICAgXSksXHJcbiAgICAgIElzX2FwcHJvdmFsOiBpc1NlbmRGb3JBcHByb3ZlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmVudi5zYXZlRG9jICsgaWQsIHBheWxvYWQsIHsgaGVhZGVycyB9KTtcclxuICB9XHJcblxyXG4gIGVkaXRQb2xpY3koaWQ6IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYucG9saWN5R2V0ICsgJ3BvbGljeS9saXN0Jm9ial9pZD0nICsgaWQsIHsgaGVhZGVycyB9KVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVQb2xpY3kocGF5bG9hZDogYW55LCBwb2xpY3lJZDogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55PihcclxuICAgICAgdGhpcy5lbnYucG9saWN5UHV0ICsgJ3BvbGljeS91cGRhdGUmY29udHJhY3RJZD0nICsgcG9saWN5SWQsXHJcbiAgICAgIHBheWxvYWQsXHJcbiAgICAgIHsgaGVhZGVycyB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZXh0cmFjdEZpbGUoZXh0ZW5zaW9uOiBhbnksIHBhdGg6IGFueSwgaWQ6IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIGlmIChleHRlbnNpb24gPT09ICdwZGYnIHx8IGV4dGVuc2lvbiA9PT0gJ1BERicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgICAgdGhpcy5lbnYubGlua1BkZiArICc/ZmlsZVBhdGg9JyArIHBhdGggKyAnJmlkPScgKyBpZCxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICAgIHRoaXMuZW52LmxpbmtEb2MsXHJcbiAgICAgICAgeyBmaWxlUGF0aDogcGF0aCwgaWQgfSxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlQXBwcm92YWxXb3JrZmxvdyhwYXlsb2FkOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcclxuICAgICAgdGhpcy5lbnYucG9saWN5UG9zdCArICdhcHByb3ZhbHdvcmtmbG93L2NyZWF0ZScsXHJcbiAgICAgIHBheWxvYWQsXHJcbiAgICAgIHsgaGVhZGVycyB9XHJcbiAgICApO1xyXG4gIH1cclxuICBlZGl0QXBwcm92YWxXb3JrZmxvdyhwYXlsb2FkOiBhbnksIGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcclxuICAgICAgdGhpcy5lbnYucG9saWN5UG9zdCArICdhcHByb3ZhbHdvcmtmbG93L3VwZGF0ZSZ3b3JrZmxvd0lkPScgKyBpZCxcclxuICAgICAgcGF5bG9hZCxcclxuICAgICAgeyBoZWFkZXJzIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9wb2xpY3kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBTyxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFNNUMsTUFBTSxPQUFPLGFBQWE7SUFFeEIsWUFDVSxJQUFnQixFQUNoQixXQUF3QixFQUNwQixNQUF1QjtRQUYzQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBR2hDLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBUSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxxQ0FBcUMsRUFBRTtZQUN0RSxPQUFPO1NBQ1IsQ0FBQzthQUNELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsOERBQThEO0lBQzlELGVBQWUsQ0FBQyxPQUFZO1FBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdB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ekMsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLHFDQUFxQyxHQUFHLEVBQUUsRUFDaEUsT0FBTyxFQUNQLEVBQUUsT0FBTyxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7K0dBclFVLGFBQWE7bUhBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEJhY2tlbmQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQb2xpY3lTZXJ2aWNlIHtcclxuICBlbnYhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXHJcbiAgKSB7XHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuZW52ID0gY29uZmlnLmVudkNvbmZpZztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENhdGVnb3JpZXNMaXN0KCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYucG9saWN5R2V0ICsgJ2NhdGVnb3J5L2Ryb3Bkb3duTGlzdCZ0eXBlPWNvbnRyYWN0Jywge1xyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIC8vIGh0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9wb2xpY3kvP21vZGU9Y2F0ZWdvcnkvZGV0YWlsQWxsXHJcbiAgZ2V0V29ya2Zsb3dMaXN0KHBheWxvYWQ6IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QoXHJcbiAgICAgICAgdGhpcy5lbnYucG9saWN5UG9zdCArICdhcHByb3ZhbHdvcmtmbG93L2ZldGNoYWxsJyxcclxuICAgICAgICB7IGNhdGVnb3J5X2lkOiBwYXlsb2FkLCBzb3VyY2VfcGFnZTogJ1dPUktGTE9XX0VOR0lORScgfSxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIHN1Ym1pdFBvbGljeShwYXlsb2FkOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZW52LnBvbGljeVBvc3QgKyAncG9saWN5L2FkZCcsIHBheWxvYWQsIHsgaGVhZGVycyB9KVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRSZXZpZXdlcnMocGF5bG9hZDogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdChcclxuICAgICAgICB0aGlzLmVudi5wb2xpY3lQb3N0ICsgJ2NhdGVnb3J5L2RldGFpbEFsbCcsXHJcbiAgICAgICAgeyBjYXRlZ29yeUlkOiBwYXlsb2FkIH0sXHJcbiAgICAgICAgeyBoZWFkZXJzIH1cclxuICAgICAgKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG4gIGdldFJDTGlzdCgpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJywge1xyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIC8vIGdldE9yZ2FuaXphdGlvblVzZXJzKCkge1xyXG4gIC8vICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAvLyAgIHJldHVybiB0aGlzLmh0dHBcclxuICAvLyAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ29yZ2FuaXphdGlvblVzZXJzJmZyb209cmlzaycsIHtcclxuICAvLyAgICAgICBoZWFkZXJzLFxyXG4gIC8vICAgICB9KVxyXG4gIC8vICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgLy8gfVxyXG4gIGdldE9yZ2FuaXphdGlvblBlb3BsZSgpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdwZW9wbGUnLCB7XHJcbiAgICAgICAgaGVhZGVycyxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2F0ZWdvcnlXb3JrRmxvd3MoaWQ6IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4oXHJcbiAgICAgICAgdGhpcy5lbnYucG9saWN5R2V0ICsgJ2FwcHJvdmFsd29ya2Zsb3cvZmV0Y2hhbGwmY2F0ZWdvcnlfaWQ9JyArIGlkLFxyXG4gICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZmlsZVVwbG9hZFdvcmtyb29tKHBheWxvYWQ6IGFueSwgZGVzOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih0aGlzLmVudi5maWxlVXBsb2FkRW5kUG9pbnQgKyBkZXMsIHBheWxvYWQsIHtcclxuICAgICAgaGVhZGVycyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2F2ZVVwbG9hZGVkRmlsZXMocGF5bG9hZDogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXHJcbiAgICAgIHRoaXMuZW52LnBvbGljeVBvc3QgKyAnYXR0YWNobWVudC9jcmVhdGUnLFxyXG4gICAgICBwYXlsb2FkLFxyXG4gICAgICB7IGhlYWRlcnMgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgdXBsb2FkRmlsZShkYXRhOiBhbnksIGlkOiBzdHJpbmcsIHBhdGg6IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5lbnYuZmlsZVVwbG9hZCArICc/aWQ9JyArIGlkICsgJyZwYXRoPScgKyBwYXRoLCBkYXRhLCB7XHJcbiAgICAgICAgaGVhZGVycyxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkRG9jeEZpbGUoZGF0YTogYW55LCBpZDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KFxyXG4gICAgICAgIHRoaXMuZW52LmRvY3hVcGxvYWQgK1xyXG4gICAgICAgICAgJz9pZD0nICtcclxuICAgICAgICAgIGlkICtcclxuICAgICAgICAgICcmcGF0aD0nICtcclxuICAgICAgICAgIHBhdGggK1xyXG4gICAgICAgICAgJyZieXBhc3MtdG9rZW49dHJ1ZScsXHJcbiAgICAgICAgZGF0YSxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIHNhdmVQb2xpY3lEZXRhaWxzKFxyXG4gICAgdW5hbWU6IGFueSxcclxuICAgIHVpZDogYW55LFxyXG4gICAgaWQ6IGFueSxcclxuICAgIG5hbWU6IGFueSxcclxuICAgIGh0bWw6IGFueSxcclxuICAgIGlzU2VuZEZvckFwcHJvdmU6IGFueVxyXG4gICkge1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgcG9saWN5TG9nczogSlNPTi5zdHJpbmdpZnkoW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHBvbGljeU5hbWU6IG5hbWUsXHJcbiAgICAgICAgICBwb2xpY3lEZXNjOiBodG1sLFxyXG4gICAgICAgICAgb2xkUG9saWN5TmFtZTogbmFtZSxcclxuICAgICAgICAgIHR5cGU6IDIsXHJcbiAgICAgICAgICBhY3RpdmVfZmxhZzogMSxcclxuICAgICAgICAgIG1vZGlmaWVkX21lbWJlcjogW3sgbW9kaWZpZXJfaWQ6IHVpZCwgbW9kaWZpZXJfbmFtZTogdW5hbWUgfV0sXHJcbiAgICAgICAgICBtb2RpZmllZF9ieTogdW5hbWUsXHJcbiAgICAgICAgICBtb2RpZmllZF9vbjogbmV3IERhdGUoKSxcclxuICAgICAgICB9LFxyXG4gICAgICBdKSxcclxuICAgICAgcG9saWN5RGVzYzogSlNPTi5zdHJpbmdpZnkoW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHBvbGljeU5hbWU6IG5hbWUsXHJcbiAgICAgICAgICBwb2xpY3lEZXNjOiBodG1sLFxyXG4gICAgICAgICAgb2xkUG9saWN5TmFtZTogbmFtZSxcclxuICAgICAgICAgIHR5cGU6IDIsXHJcbiAgICAgICAgICBhY3RpdmVfZmxhZzogMSxcclxuICAgICAgICAgIG1vZGlmaWVkX21lbWJlcjogW3sgbW9kaWZpZXJfaWQ6IHVpZCwgbW9kaWZpZXJfbmFtZTogdW5hbWUgfV0sXHJcbiAgICAgICAgICBtb2RpZmllZF9ieTogdW5hbWUsXHJcbiAgICAgICAgICBtb2RpZmllZF9vbjogbmV3IERhdGUoKSxcclxuICAgICAgICB9LFxyXG4gICAgICBdKSxcclxuICAgICAgSXNfYXBwcm92YWw6IGlzU2VuZEZvckFwcHJvdmUsXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZW52LnNhdmVEb2MgKyBpZCwgcGF5bG9hZCwgeyBoZWFkZXJzIH0pO1xyXG4gIH1cclxuXHJcbiAgZWRpdFBvbGljeShpZDogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5wb2xpY3lHZXQgKyAncG9saWN5L2xpc3Qmb2JqX2lkPScgKyBpZCwgeyBoZWFkZXJzIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVBvbGljeShwYXlsb2FkOiBhbnksIHBvbGljeUlkOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KFxyXG4gICAgICB0aGlzLmVudi5wb2xpY3lQdXQgKyAncG9saWN5L3VwZGF0ZSZjb250cmFjdElkPScgKyBwb2xpY3lJZCxcclxuICAgICAgcGF5bG9hZCxcclxuICAgICAgeyBoZWFkZXJzIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBleHRyYWN0RmlsZShleHRlbnNpb246IGFueSwgcGF0aDogYW55LCBpZDogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgaWYgKGV4dGVuc2lvbiA9PT0gJ3BkZicgfHwgZXh0ZW5zaW9uID09PSAnUERGJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgICB0aGlzLmVudi5saW5rUGRmICsgJz9maWxlUGF0aD0nICsgcGF0aCArICcmaWQ9JyArIGlkLFxyXG4gICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgICAgdGhpcy5lbnYubGlua0RvYyxcclxuICAgICAgICB7IGZpbGVQYXRoOiBwYXRoLCBpZCB9LFxyXG4gICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjcmVhdGVBcHByb3ZhbFdvcmtmbG93KHBheWxvYWQ6IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICB0aGlzLmVudi5wb2xpY3lQb3N0ICsgJ2FwcHJvdmFsd29ya2Zsb3cvY3JlYXRlJyxcclxuICAgICAgcGF5bG9hZCxcclxuICAgICAgeyBoZWFkZXJzIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIGVkaXRBcHByb3ZhbFdvcmtmbG93KHBheWxvYWQ6IGFueSwgaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICB0aGlzLmVudi5wb2xpY3lQb3N0ICsgJ2FwcHJvdmFsd29ya2Zsb3cvdXBkYXRlJndvcmtmbG93SWQ9JyArIGlkLFxyXG4gICAgICBwYXlsb2FkLFxyXG4gICAgICB7IGhlYWRlcnMgfVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -25,11 +25,9 @@ export class ProgramsService {
|
|
|
25
25
|
* @returns response after uploading a file
|
|
26
26
|
*/
|
|
27
27
|
uploadFiles(payload, path) {
|
|
28
|
-
|
|
29
|
-
// reportProgress: true,
|
|
30
|
-
// observe: 'events'}
|
|
28
|
+
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
31
29
|
const ORG_PATH = `o/${path}`;
|
|
32
|
-
return this.http.post(this.env.fileUploadEndPoint + ORG_PATH + '&ngsw-bypass=true', payload);
|
|
30
|
+
return this.http.post(this.env.fileUploadEndPoint + ORG_PATH + '&ngsw-bypass=true', payload, { headers });
|
|
33
31
|
}
|
|
34
32
|
getResponsibilityCenterList() {
|
|
35
33
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
@@ -316,4 +314,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
316
314
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Configurations, decorators: [{
|
|
317
315
|
type: Optional
|
|
318
316
|
}] }]; } });
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXNlcnZpY2VzL3Byb2dyYW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBTzdCLE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQ1UsSUFBZ0IsRUFDaEIsV0FBd0IsRUFDcEIsTUFBdUI7UUFGM0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUdoQyxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQ25DLE9BQU8sRUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3pDLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLGVBQWU7WUFDdkIsaURBQWlELEVBQ25ELEVBQUUsT0FBTyxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxPQUFZLEVBQUUsSUFBUztRQUNqQyxJQUFJO1FBQ0osMEJBQTBCO1FBQzFCLHVCQUF1QjtRQUN2QixNQUFNLFFBQVEsR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUks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LEVBQ1AsRUFBRSxPQUFPLEVBQUUsQ0FDWixDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFRO1FBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FDSCxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtZQUN2Qiw4Q0FBOEMsRUFDaEQsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEVBQ2xCLEVBQUUsT0FBTyxFQUFFLENBQ1o7YUFDQSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEdBQVE7UUFDeEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQ25DLE9BQU8sRUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3pDLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUNILElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO1lBQ3ZCLDZDQUE2QyxFQUMvQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFDbEIsRUFBRSxPQUFPLEVBQUUsQ0FDWjthQUNBLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDOytHQXZhVSxlQUFlO21IQUFmLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyByZXRyeSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb25zJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZ3JhbXNTZXJ2aWNlIHtcclxuICBlbnYhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXHJcbiAgKSB7XHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuZW52ID0gY29uZmlnLmVudkNvbmZpZztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFJvbGVzKCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICB0aGlzLmVudj8ub3JnYW5pemF0aW9uR2V0ICtcclxuICAgICAgICAncm9sZXMvZ2V0UHJvZ3JhbVJvbGVzJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxyXG4gICAgICB7IGhlYWRlcnMgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwbG9hZHMgdGhlIGdpdmVuIGZpbGUgdG8gc2VydmVyXHJcbiAgICogQHBhcmFtIHBheWxvYWQgcGF5bG9hZCBGaWxlIGRhdGEgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcGFyYW0gcGF0aCBwYXRoIFBhdGggb2YgZmlsZSB0byBiZSB1cGxvYWRlZFxyXG4gICAqIEByZXR1cm5zIHJlc3BvbnNlIGFmdGVyIHVwbG9hZGluZyBhIGZpbGVcclxuICAgKi9cclxuICB1cGxvYWRGaWxlcyhwYXlsb2FkOiBhbnksIHBhdGg6IGFueSkge1xyXG4gICAgLy8ge1xyXG4gICAgLy8gICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgIC8vICAgb2JzZXJ2ZTogJ2V2ZW50cyd9XHJcbiAgICBjb25zdCBPUkdfUEFUSCA9IGBvLyR7cGF0aH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICB0aGlzLmVudi5maWxlVXBsb2FkRW5kUG9pbnQgKyBPUkdfUEFUSCArICcmbmdzdy1ieXBhc3M9dHJ1ZScsXHJcbiAgICAgIHBheWxvYWRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueVtdPihcclxuICAgICAgICB0aGlzLmVudj8uY29tcGxpYW5jZUdldCArXHJcbiAgICAgICAgICAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGhlYWRlcnMsXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGZldGNoUm9sZVVzZXJzKHJvbGVzOiBhbnksIHBhZ2U/OiBhbnksIHNlYXJjaEtleT86IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIGxldCBxdWVyeVN0cmluZyA9ICcnO1xyXG4gICAgaWYgKHBhZ2UpIHtcclxuICAgICAgcXVlcnlTdHJpbmcgKz0gYCZwYWdlPSR7cGFnZX1gO1xyXG4gICAgfVxyXG4gICAgaWYgKHNlYXJjaEtleSkge1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnlbXT4oXHJcbiAgICAgICAgdGhpcy5lbnYub3JnYW5pemF0aW9uUG9zdCArXHJcbiAgICAgICAgICAncm9sZXMvZ2V0VXNlckRldGFpbHMmbGltaXQ9MzAmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScgK1xyXG4gICAgICAgICAgcXVlcnlTdHJpbmcsXHJcbiAgICAgICAgeyByb2xlX2lkczogcm9sZXMgPz8gW10gfSxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGZldGNoQWxsUm9sZVVzZXJzKHJvbGVzOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueVtdPihcclxuICAgICAgICB0aGlzLmVudj8ub3JnYW5pemF0aW9uUG9zdCArXHJcbiAgICAgICAgICAncm9sZXMvZ2V0VXNlckRldGFpbHMmdHlwZT1hbGwmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXHJcbiAgICAgICAgeyByb2xlX2lkczogcm9sZXMgPz8gW10gfSxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGZldGNoQWxsUm9sZUdyb3Vwcyhyb2xlczogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnlbXT4oXHJcbiAgICAgICAgdGhpcy5lbnYub3JnYW5pemF0aW9uUG9zdCArXHJcbiAgICAgICAgICAncm9sZXMvZ2V0R3JvdXBEZXRhaWxzJnR5cGU9YWxsJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxyXG4gICAgICAgIHsgcm9sZV9pZHM6IHJvbGVzID8/IFtdIH0sXHJcbiAgICAgICAgeyBoZWFkZXJzIH1cclxuICAgICAgKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG4gIGZldGNoQWxsT3JnVXNlcigpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICAvL2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9vcmdhbml6YXRpb24vP21vZGU9b3JnYW5pc2F0aW9uVXNlcnNMaXN0JnBhZ2luYXRpb25UeXBlPXNtYWxsJmFkbWluPTFcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4oXHJcbiAgICAgICAgdGhpcy5lbnY/Lm9yZ2FuaXphdGlvbkdldCArXHJcbiAgICAgICAgICAnb3JnYW5pc2F0aW9uVXNlcnNMaXN0JnBhZ2luYXRpb25UeXBlPXNtYWxsJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxyXG4gICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICBmZXRjaENvbXBsaWFuY2VHcm91cHMoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgLy9odHRwczovL2RldmFwaS52LWNvbXBseS5jb20vb3JnYW5pemF0aW9uLz9tb2RlPWdyb3Vwc0xpc3Qmc3RhdHVzPTEmdHlwZT1jb21wbGlhbmNlXHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KFxyXG4gICAgICAgIHRoaXMuZW52Py5vcmdhbml6YXRpb25HZXQgK1xyXG4gICAgICAgICAgJ2dyb3Vwc0xpc3Qmc3RhdHVzPTEmdHlwZT1jb21wbGlhbmNlJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxyXG4gICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnVzaW5lc3NDeWNsZSgpIHtcclxuICAgIGNvbnN0IGJ1c2luZXNzQ3ljbGUgPSBKU09OLnBhcnNlKFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NDeWNsZScpID8/ICd7fSdcclxuICAgICk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzZWxlY3RlZF9jeWNsZTogYnVzaW5lc3NDeWNsZVxyXG4gICAgICAgID8gYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uc3RhcnRfZGF0ZSArXHJcbiAgICAgICAgICAnLScgK1xyXG4gICAgICAgICAgYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uZW5kX2RhdGVcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBzdGFydF9kYXRlOiBidXNpbmVzc0N5Y2xlID8gYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uc3RhcnRfZGF0ZSA6ICcnLFxyXG4gICAgICBlbmRfZGF0ZTogYnVzaW5lc3NDeWNsZSA/IGJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LmVuZF9kYXRlIDogJycsXHJcbiAgICAgIHNlbGVjdGVkX2N5Y2xlX2FycjogYnVzaW5lc3NDeWNsZVxyXG4gICAgICAgID8gYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uc2VsZWN0ZWRfY3ljbGVfYXJyXHJcbiAgICAgICAgOiBbXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzYXZlUHJvZ3JhbShwYXlsb2FkOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxyXG4gICAgICAuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpXHJcbiAgICAgIC5zZXQoJ3gtYnVzaW5lc3MtY3ljbGUnLCBKU09OLnN0cmluZ2lmeSh0aGlzLmdldEJ1c2luZXNzQ3ljbGUoKSkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueVtdPihcclxuICAgICAgdGhpcy5lbnYucHJvZ3JhbUVuZHBvaW50ICsgJy9jYXRlZ29yeS8/aXNCdXNpbmVzc0N5Y2xlPXRydWUnLFxyXG4gICAgICBwYXlsb2FkLFxyXG4gICAgICB7IGhlYWRlcnMgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGJ1aWxkUGF5bG9hZChmb3JtRGF0YTogYW55LCBpbnN0YW5jZTogYW55KSB7XHJcbiAgICBjb25zdCBmb3JtID0gZm9ybURhdGE/LnZhbHVlO1xyXG4gICAgY29uc3Qgb3B0aW9uID0gaW5zdGFuY2UuYWRkaXRpb25hbE9wdGlvbjtcclxuICAgIGNvbnN0IGhhc1Byb2dyYW1GdWxsUGVybWlzc2lvbiA9XHJcbiAgICAgIGluc3RhbmNlPy5vcmdEZXRhaWxzPy5oYXNQcm9ncmFtRnVsbFBlcm1pc3Npb247XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBtb2RlOiAncHJvZ3JhbScsXHJcbiAgICAgIG5hbWU6IGZvcm0/LnByb2dyYW1fbmFtZS50cmltKCkgPz8gJycsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiB7XHJcbiAgICAgICAgdGV4dDogZm9ybT8ucHJvZ3JhbV9kZXNjcmlwdGlvbiA/PyAnJyxcclxuICAgICAgICBhdHRhY2htZW50czogZm9ybT8ucHJvZ3JhbV9kZXNjcmlwdGlvbl9hdHRhY2htZW50cyA/PyBbXSxcclxuICAgICAgfSxcclxuICAgICAgcHJvZ3JhbV9vYmplY3RpdmU6IHtcclxuICAgICAgICB0ZXh0OiBmb3JtPy5wcm9ncmFtX29iamVjdGl2ZSA/PyAnJyxcclxuICAgICAgICBhdHRhY2htZW50czogZm9ybT8ub2JqZWN0aXZlX2F0dGFjaG1lbnQgPz8gW10sXHJcbiAgICAgIH0sXHJcbiAgICAgIHJvbGVzOiBmb3JtLnByb2dyYW1fcm9sZXMubWFwKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICByb2xlSWQ6IGVsZT8uX2lkLFxyXG4gICAgICAgICAgcm9sZU5hbWU6IGVsZT8ucm9sZU5hbWUsXHJcbiAgICAgICAgICBsaWNlbnNlVHlwZTogZWxlPy5saWNlbnNlVHlwZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KSxcclxuICAgICAgb3duZXJzOiB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fb3duZXJzLCAnbWVtYmVyX2lkJykgPz8gW10sXHJcbiAgICAgIG93bmVyc19ncm91cDogb3B0aW9uPy5ST0xFU1xyXG4gICAgICAgID8gdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX293bmVyc19ncm91cCwgJ2dyb3VwX2lkJykgPz8gW11cclxuICAgICAgICA6IFtdLFxyXG4gICAgICBhbGxfdXNlcl9pbl9yb2xlOiBvcHRpb24/LlJPTEVTID8gZm9ybT8uYWxsX3VzZXJfaW5fcm9sZSA/PyBmYWxzZSA6IGZhbHNlLFxyXG4gICAgICBwcm9ncmFtVHlwZTogZm9ybT8ucHJvZ3JhbV90eXBlID8/IDAsXHJcbiAgICAgIC8vIHN0YXRlOjAsXHJcbiAgICAgIHN0YXRlOiBmb3JtPy5wcm9ncmFtX3N0YXRlID8/IDAsXHJcbiAgICAgIGFwcHJvdmVyczpcclxuICAgICAgICBvcHRpb24/LkFQUFJPVkVSIHx8ICFoYXNQcm9ncmFtRnVsbFBlcm1pc3Npb25cclxuICAgICAgICAgID8gdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX2FwcHJvdmVyLCAnbWVtYmVyX2lkJykgPz8gW11cclxuICAgICAgICAgIDogW10sXHJcbiAgICAgIGNhbGN1bGF0ZV9wYXN0X3VwY29taW5nX2V2ZW50OiBmb3JtPy5wZXJmb3JtYW5jZV9jYWxjdWxhdGlvbiA/PyAnJyxcclxuICAgICAgcHJvZ3JhbV9mcmVxdWVuY3k6XHJcbiAgICAgICAgb3B0aW9uLlBST0dSQU1fRlJFUVVFTkNZIHx8ICFoYXNQcm9ncmFtRnVsbFBlcm1pc3Npb25cclxuICAgICAgICAgID8gZm9ybT8ucmVjdXJyaW5nX2ZyZXF1ZW5jeVxyXG4gICAgICAgICAgICA/IDFcclxuICAgICAgICAgICAgOiAwXHJcbiAgICAgICAgICA6IDEsXHJcbiAgICAgIGxvY2tfc2NvcGU6XHJcbiAgICAgICAgb3B0aW9uLlNDT1BFX0NIQU5HRVMgfHwgIWhhc1Byb2dyYW1GdWxsUGVybWlzc2lvblxyXG4gICAgICAgICAgPyBmb3JtPy5sb2NrX3Njb3BlX2NoYW5nZVxyXG4gICAgICAgICAgICA/IDFcclxuICAgICAgICAgICAgOiAwXHJcbiAgICAgICAgICA6IDAsXHJcbiAgICAgIHJjX2lkczpcclxuICAgICAgICBvcHRpb24uUkMgfHwgIWhhc1Byb2dyYW1GdWxsUGVybWlzc2lvblxyXG4gICAgICAgICAgPyB0aGlzLmxpc3RUb0lkKGZvcm0/LnJjLCAnaXRlbV9pZCcpXHJcbiAgICAgICAgICA6IFtdLFxyXG4gICAgICBhc3NpZ25lZV9pZHM6XHJcbiAgICAgICAgb3B0aW9uLkFTU0lHTkVFUyB8fCAhaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uXHJcbiAgICAgICAgICA/IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9hc3NpZ25lZSwgJ21lbWJlcl9pZCcpXHJcbiAgICAgICAgICA6IFtdLFxyXG4gICAgICBhc3NpZ25lZV9ncm91cF9pZHM6XHJcbiAgICAgICAgb3B0aW9uLkFTU0lHTkVFUyB8fCAhaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uXHJcbiAgICAgICAgICA/IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9hc3NpZ25lZV9ncm91cCwgJ2dyb3VwX2lkJylcclxuICAgICAgICAgIDogW10sXHJcbiAgICAgIGRlZmF1bHRfYXNzaWduZWVfaWRzOlxyXG4gICAgICAgIG9wdGlvbi5BU1NJR05FRVMgfHwgIWhhc1Byb2dyYW1GdWxsUGVybWlzc2lvblxyXG4gICAgICAgICAgPyB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZSwgJ21lbWJlcl9pZCcpXHJcbiAgICAgICAgICA6IFtdLFxyXG4gICAgICBkZWZhdWx0X2Fzc2lnbmVlX2dyb3VwX2lkczpcclxuICAgICAgICBvcHRpb24uQVNTSUdORUVTIHx8ICFoYXNQcm9ncmFtRnVsbFBlcm1pc3Npb25cclxuICAgICAgICAgID8gdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXAsICdncm91cF9pZCcpXHJcbiAgICAgICAgICA6IFtdLFxyXG4gICAgICBkZWZhdWx0X2Fzc2lnbmVlX3R5cGU6XHJcbiAgICAgICAgb3B0aW9uLkFTU0lHTkVFUyB8fCAhaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uXHJcbiAgICAgICAgICA/IGZvcm0/LmFzc2lnbmVlX2NvbXBsZXRpb25fY3JpdGVyaWFcclxuICAgICAgICAgIDogJ0FMTCcsXHJcbiAgICAgIHJldmlld2VyczpcclxuICAgICAgICBvcHRpb24uUkVWSUVXRVIgfHwgIWhhc1Byb2dyYW1GdWxsUGVybWlzc2lvblxyXG4gICAgICAgICAgPyB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fcmV2aWV3ZXIsICdtZW1iZXJfaWQnKVxyXG4gICAgICAgICAgOiBbXSxcclxuICAgICAgcmV2aWV3ZXJfZ3JvdXBfaWRzOlxyXG4gICAgICAgIG9wdGlvbi5SRVZJRVdFUiB8fCAhaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uXHJcbiAgICAgICAgICA/IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9yZXZpZXdlcl9ncm91cCwgJ2dyb3VwX2lkJylcclxuICAgICAgICAgIDogW10sXHJcbiAgICAgIGRlZmF1bHRfcmV2aWV3ZXJzOlxyXG4gICAgICAgIG9wdGlvbi5SRVZJRVdFUiB8fCAhaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uXHJcbiAgICAgICAgICA/IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyLCAnbWVtYmVyX2lkJylcclxuICAgICAgICAgIDogW10sXHJcbiAgICAgIGRlZmF1bHRfcmV2aWV3ZXJfZ3JvdXBfaWRzOlxyXG4gICAgICAgIG9wdGlvbi5SRVZJRVdFUiB8fCAhaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uXHJcbiAgICAgICAgICA/IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwLCAnZ3JvdXBfaWQnKVxyXG4gICAgICAgICAgOiBbXSxcclxuICAgICAgZGVmYXVsdF9yZXZpZXdlcnNfdHlwZTogZm9ybT8ucmV2aWV3ZXJfY29tcGxldGlvbl9jcml0ZXJpYSxcclxuICAgICAgb3ZlcnNlZXJzOlxyXG4gICAgICAgIG9wdGlvbi5PVkVSU0VFUiB8fCAhaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uXHJcbiAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgICBjY19lbWFpbDogdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX292ZXJzZWVyLCAnbWVtYmVyX2lkJyksXHJcbiAgICAgICAgICAgICAgY2NfZW1haWxfZ3JvdXBzOiB0aGlzLmxpc3RUb0lkKFxyXG4gICAgICAgICAgICAgICAgZm9ybT8ucHJvZ3JhbV9vdmVyc2Vlcl9ncm91cCxcclxuICAgICAgICAgICAgICAgICdncm91cF9pZCdcclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgIGZhaWx1cmVfY2NfZW1haWw6IFtdLFxyXG4gICAgICAgICAgICAgIGZhaWx1cmVfY2NfZW1haWxfZ3JvdXBzOiBbXSxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgY2NfZW1haWw6IFtdLFxyXG4gICAgICAgICAgICAgIGNjX2VtYWlsX2dyb3VwczogW10sXHJcbiAgICAgICAgICAgICAgZmFpbHVyZV9jY19lbWFpbDogW10sXHJcbiAgICAgICAgICAgICAgZmFpbHVyZV9jY19lbWFpbF9ncm91cHM6IFtdLFxyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgZGVmYXVsdF9vdmVyc2VlcnM6XHJcbiAgICAgICAgb3B0aW9uLk9WRVJTRUVSIHx8ICFoYXNQcm9ncmFtRnVsbFBlcm1pc3Npb25cclxuICAgICAgICAgID8ge1xyXG4gICAgICAgICAgICAgIGNjX2VtYWlsOiB0aGlzLmxpc3RUb0lkKFxyXG4gICAgICAgICAgICAgICAgZm9ybT8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyLFxyXG4gICAgICAgICAgICAgICAgJ21lbWJlcl9pZCdcclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgIGNjX2VtYWlsX2dyb3VwczogdGhpcy5saXN0VG9JZChcclxuICAgICAgICAgICAgICAgIGZvcm0/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cCxcclxuICAgICAgICAgICAgICAgICdncm91cF9pZCdcclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgIGZhaWx1cmVfY2NfZW1haWw6IHRoaXMubGlzdFRvSWQoXHJcbiAgICAgICAgICAgICAgICBmb3JtPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyLFxyXG4gICAgICAgICAgICAgICAgJ21lbWJlcl9pZCdcclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgIGZhaWx1cmVfY2NfZW1haWxfZ3JvdXBzOiB0aGlzLmxpc3RUb0lkKFxyXG4gICAgICAgICAgICAgICAgZm9ybT8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cCxcclxuICAgICAgICAgICAgICAgICdncm91cF9pZCdcclxuICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA6IHtcclxuICAgICAgICAgICAgICBjY19lbWFpbDogW10sXHJcbiAgICAgICAgICAgICAgY2NfZW1haWxfZ3JvdXBzOiBbXSxcclxuICAgICAgICAgICAgICBmYWlsdXJlX2NjX2VtYWlsOiBbXSxcclxuICAgICAgICAgICAgICBmYWlsdXJlX2NjX2VtYWlsX2dyb3VwczogW10sXHJcbiAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICBhc3Nlc3NtZW50OlxyXG4gICAgICAgIG9wdGlvbj8uQVNTRVNTTUVOVCB8fCAhaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uXHJcbiAgICAgICAgICA/IHRoaXMuZ2VuZXJhdGVBc3Nlc3NtZW50KGZvcm0ucHJvZ3JhbV9hc3Nlc3NtZW50cylcclxuICAgICAgICAgIDogW10sXHJcbiAgICAgIGV2aWRlbmNlX3VwbG9hZF9mbGFnOlxyXG4gICAgICAgIG9wdGlvbj8uRk9STUFURV9FVklERU5DRSB8fCAhaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uXHJcbiAgICAgICAgICA/IGZvcm0/LmV2aWRlbmNlX3JlcXVpcmVkXHJcbiAgICAgICAgICAgID8gMVxyXG4gICAgICAgICAgICA6IDBcclxuICAgICAgICAgIDogMCxcclxuICAgICAgaXNfa2V5X2V2aWRlbmNlOiBmb3JtPy5hbGxvd19hbnlfZmlsZV9rZXlfZXZpZGVuY2UsXHJcbiAgICAgIGN1c3RvbV9maWVsZHM6IG9wdGlvbj8uQ1VTVE9NX0ZJRUxEUyA/IGZvcm0/LmN1c3RvbV9maWVsZHMgPz8gW10gOiBbXSxcclxuICAgICAgZnJhbWV3b3JrOiB0aGlzLmdldEZyYW1ld29yayhmb3JtPy5mcmFtZXdvcmspID8/IFtdLFxyXG4gICAgICBfaWQ6IGluc3RhbmNlLm1vZGUgPT09ICdFRElUJyA/IGluc3RhbmNlLnByb2dyYW1JZCA6IHVuZGVmaW5lZCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gcGF5bG9hZDtcclxuICB9XHJcbiAgZ2VuZXJhdGVBc3Nlc3NtZW50KGFzc2Vzc21lbnQ6IGFueSkge1xyXG4gICAgaWYgKGFzc2Vzc21lbnQgJiYgYXNzZXNzbWVudD8ubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBhc3Nlc3NtZW50Lm1hcCgoY2F0OiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uY2F0LFxyXG4gICAgICAgICAgYXNzZXNzbWVudElkczogY2F0LmFzc2Vzc21lbnRJZHM/Lm1hcCgoYXNzZXNzOiBhbnkpID0+IGFzc2Vzcy5pZCksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEZyYW1ld29yayhpbnB1dDogYW55KSB7XHJcbiAgICBpZiAoaW5wdXQpIHtcclxuICAgICAgcmV0dXJuIFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBfaWQ6IGlucHV0Py5faWQsXHJcbiAgICAgICAgICBmcmFtZXdvcmtfbmFtZTogaW5wdXQ/Lm5hbWUsXHJcbiAgICAgICAgICB0eXBlOiBpbnB1dD8udHlwZSxcclxuICAgICAgICAgIGluX3Njb3BlOiBpbnB1dD8uaW5fc2NvcGVcclxuICAgICAgICAgICAgPyB0aGlzLmxpc3RUb0lkKGlucHV0Py5pbl9zY29wZSwgJ19pZCcpXHJcbiAgICAgICAgICAgIDogW10sXHJcbiAgICAgICAgICBvdXRfc2NvcGU6IGlucHV0Py5vdXRfc2NvcGVcclxuICAgICAgICAgICAgPyB0aGlzLmxpc3RUb0lkKGlucHV0Py5vdXRfc2NvcGUsICdfaWQnKVxyXG4gICAgICAgICAgICA6IFtdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsaXN0VG9JZChsaXN0OiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICBpZiAobGlzdCAmJiBsaXN0Py5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIGxpc3QubWFwKChlbGU6IGFueSkgPT4gZWxlW2tleV0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgOiBwcm9ncmFtIG9iamVjdCBpZFxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgZ2V0UHJvZ3JhbShpZDogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKClcclxuICAgICAgLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKVxyXG4gICAgICAuc2V0KCd4LWJ1c2luZXNzLWN5Y2xlJywgSlNPTi5zdHJpbmdpZnkodGhpcy5nZXRCdXNpbmVzc0N5Y2xlKCkpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPihcclxuICAgICAgdGhpcy5lbnY/LnByb2dyYW1FbmRwb2ludCArXHJcbiAgICAgICAgJy8nICtcclxuICAgICAgICBpZCArXHJcbiAgICAgICAgJz9pc0J1c2luZXNzQ3ljbGU9dHJ1ZSZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcclxuICAgICAgeyBoZWFkZXJzIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIHBheWxvYWQgd2hpY2ggbmVlZCB0byBiZSB1cGRhdGVkXHJcbiAgICogQHBhcmFtIGlkIHByb2dyYW0gb2JqZWN0IGlkXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICB1cGRhdGVQcm9ncmFtKHBheWxvYWQ6IGFueSwgaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgIC5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSlcclxuICAgICAgLnNldCgneC1idXNpbmVzcy1jeWNsZScsIEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0QnVzaW5lc3NDeWNsZSgpKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55W10+KFxyXG4gICAgICB0aGlzLmVudi5wcm9ncmFtRW5kcG9pbnQgK1xyXG4gICAgICAgICcvY2F0ZWdvcnkvZWRpdENhdGVnb3J5LycgK1xyXG4gICAgICAgIGlkICtcclxuICAgICAgICAnP2lzQnVzaW5lc3NDeWNsZT10cnVlJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxyXG4gICAgICBwYXlsb2FkLFxyXG4gICAgICB7IGhlYWRlcnMgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldE1lbWViZXJCeUlkcyhpZHM6IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55W10+KFxyXG4gICAgICAgIHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgK1xyXG4gICAgICAgICAgJ21lbWJlckRldGFpbHNieUlkcyZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcclxuICAgICAgICB7IG1lbWJlcl9pZDogaWRzIH0sXHJcbiAgICAgICAgeyBoZWFkZXJzIH1cclxuICAgICAgKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRNZW1iZXJCeUdyb3VwcyhpZHM6IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55W10+KFxyXG4gICAgICAgIHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgK1xyXG4gICAgICAgICAgJ2dyb3VwRGV0YWlsc2J5SWRzJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxyXG4gICAgICAgIHsgZ3JvdXBfaWRzOiBpZHMgfSxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcbn1cclxuIl19
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXNlcnZpY2VzL3Byb2dyYW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBTzdCLE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQ1UsSUFBZ0IsRUFDaEIsV0FBd0IsRUFDcEIsTUFBdUI7UUFGM0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUdoQyxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQ25DLE9BQU8sRUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3pDLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLGVBQWU7WUFDdkIsaURBQWlELEVBQ25ELEVBQUUsT0FBTyxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxPQUFZLEVBQUUsSUFBUztRQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FDbkMsT0FBTyxFQUNQLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FDekMsQ0FB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dHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgcmV0cnkgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2dyYW1zU2VydmljZSB7XHJcbiAgZW52ITogYW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9uc1xyXG4gICkge1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRSb2xlcygpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgdGhpcy5lbnY/Lm9yZ2FuaXphdGlvbkdldCArXHJcbiAgICAgICAgJ3JvbGVzL2dldFByb2dyYW1Sb2xlcyZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcclxuICAgICAgeyBoZWFkZXJzIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGxvYWRzIHRoZSBnaXZlbiBmaWxlIHRvIHNlcnZlclxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIHBheWxvYWQgRmlsZSBkYXRhIHRvIGJlIHVwbG9hZGVkXHJcbiAgICogQHBhcmFtIHBhdGggcGF0aCBQYXRoIG9mIGZpbGUgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcmV0dXJucyByZXNwb25zZSBhZnRlciB1cGxvYWRpbmcgYSBmaWxlXHJcbiAgICovXHJcbiAgdXBsb2FkRmlsZXMocGF5bG9hZDogYW55LCBwYXRoOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICBjb25zdCBPUkdfUEFUSCA9IGBvLyR7cGF0aH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICB0aGlzLmVudi5maWxlVXBsb2FkRW5kUG9pbnQgKyBPUkdfUEFUSCArICcmbmdzdy1ieXBhc3M9dHJ1ZScsXHJcbiAgICAgIHBheWxvYWQsXHJcbiAgICAgIHsgaGVhZGVycyB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0KCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4oXHJcbiAgICAgICAgdGhpcy5lbnY/LmNvbXBsaWFuY2VHZXQgK1xyXG4gICAgICAgICAgJ3Jlc3BvbnNpYmlsaXR5Q2VudGVyVHJlZSZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBoZWFkZXJzLFxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBmZXRjaFJvbGVVc2Vycyhyb2xlczogYW55LCBwYWdlPzogYW55LCBzZWFyY2hLZXk/OiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICBsZXQgcXVlcnlTdHJpbmcgPSAnJztcclxuICAgIGlmIChwYWdlKSB7XHJcbiAgICAgIHF1ZXJ5U3RyaW5nICs9IGAmcGFnZT0ke3BhZ2V9YDtcclxuICAgIH1cclxuICAgIGlmIChzZWFyY2hLZXkpIHtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55W10+KFxyXG4gICAgICAgIHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgK1xyXG4gICAgICAgICAgJ3JvbGVzL2dldFVzZXJEZXRhaWxzJmxpbWl0PTMwJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnICtcclxuICAgICAgICAgIHF1ZXJ5U3RyaW5nLFxyXG4gICAgICAgIHsgcm9sZV9pZHM6IHJvbGVzID8/IFtdIH0sXHJcbiAgICAgICAgeyBoZWFkZXJzIH1cclxuICAgICAgKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBmZXRjaEFsbFJvbGVVc2Vycyhyb2xlczogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnlbXT4oXHJcbiAgICAgICAgdGhpcy5lbnY/Lm9yZ2FuaXphdGlvblBvc3QgK1xyXG4gICAgICAgICAgJ3JvbGVzL2dldFVzZXJEZXRhaWxzJnR5cGU9YWxsJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxyXG4gICAgICAgIHsgcm9sZV9pZHM6IHJvbGVzID8/IFtdIH0sXHJcbiAgICAgICAgeyBoZWFkZXJzIH1cclxuICAgICAgKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBmZXRjaEFsbFJvbGVHcm91cHMocm9sZXM6IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55W10+KFxyXG4gICAgICAgIHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgK1xyXG4gICAgICAgICAgJ3JvbGVzL2dldEdyb3VwRGV0YWlscyZ0eXBlPWFsbCZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcclxuICAgICAgICB7IHJvbGVfaWRzOiByb2xlcyA/PyBbXSB9LFxyXG4gICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICBmZXRjaEFsbE9yZ1VzZXIoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgLy9odHRwczovL2RldmFwaS52LWNvbXBseS5jb20vb3JnYW5pemF0aW9uLz9tb2RlPW9yZ2FuaXNhdGlvblVzZXJzTGlzdCZwYWdpbmF0aW9uVHlwZT1zbWFsbCZhZG1pbj0xXHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KFxyXG4gICAgICAgIHRoaXMuZW52Py5vcmdhbml6YXRpb25HZXQgK1xyXG4gICAgICAgICAgJ29yZ2FuaXNhdGlvblVzZXJzTGlzdCZwYWdpbmF0aW9uVHlwZT1zbWFsbCZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcbiAgZmV0Y2hDb21wbGlhbmNlR3JvdXBzKCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIC8vaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL29yZ2FuaXphdGlvbi8/bW9kZT1ncm91cHNMaXN0JnN0YXR1cz0xJnR5cGU9Y29tcGxpYW5jZVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueVtdPihcclxuICAgICAgICB0aGlzLmVudj8ub3JnYW5pemF0aW9uR2V0ICtcclxuICAgICAgICAgICdncm91cHNMaXN0JnN0YXR1cz0xJnR5cGU9Y29tcGxpYW5jZSZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldEJ1c2luZXNzQ3ljbGUoKSB7XHJcbiAgICBjb25zdCBidXNpbmVzc0N5Y2xlID0gSlNPTi5wYXJzZShcclxuICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2J1c2luZXNzQ3ljbGUnKSA/PyAne30nXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2VsZWN0ZWRfY3ljbGU6IGJ1c2luZXNzQ3ljbGVcclxuICAgICAgICA/IGJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LnN0YXJ0X2RhdGUgK1xyXG4gICAgICAgICAgJy0nICtcclxuICAgICAgICAgIGJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LmVuZF9kYXRlXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgc3RhcnRfZGF0ZTogYnVzaW5lc3NDeWNsZSA/IGJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LnN0YXJ0X2RhdGUgOiAnJyxcclxuICAgICAgZW5kX2RhdGU6IGJ1c2luZXNzQ3ljbGUgPyBidXNpbmVzc0N5Y2xlPy5zZWxlY3RlZEN5Y2xlPy5lbmRfZGF0ZSA6ICcnLFxyXG4gICAgICBzZWxlY3RlZF9jeWNsZV9hcnI6IGJ1c2luZXNzQ3ljbGVcclxuICAgICAgICA/IGJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlX2FyclxyXG4gICAgICAgIDogW10sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2F2ZVByb2dyYW0ocGF5bG9hZDogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKClcclxuICAgICAgLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKVxyXG4gICAgICAuc2V0KCd4LWJ1c2luZXNzLWN5Y2xlJywgSlNPTi5zdHJpbmdpZnkodGhpcy5nZXRCdXNpbmVzc0N5Y2xlKCkpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnlbXT4oXHJcbiAgICAgIHRoaXMuZW52LnByb2dyYW1FbmRwb2ludCArICcvY2F0ZWdvcnkvP2lzQnVzaW5lc3NDeWNsZT10cnVlJyxcclxuICAgICAgcGF5bG9hZCxcclxuICAgICAgeyBoZWFkZXJzIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBidWlsZFBheWxvYWQoZm9ybURhdGE6IGFueSwgaW5zdGFuY2U6IGFueSkge1xyXG4gICAgY29uc3QgZm9ybSA9IGZvcm1EYXRhPy52YWx1ZTtcclxuICAgIGNvbnN0IG9wdGlvbiA9IGluc3RhbmNlLmFkZGl0aW9uYWxPcHRpb247XHJcbiAgICBjb25zdCBoYXNQcm9ncmFtRnVsbFBlcm1pc3Npb24gPVxyXG4gICAgICBpbnN0YW5jZT8ub3JnRGV0YWlscz8uaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uO1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgbW9kZTogJ3Byb2dyYW0nLFxyXG4gICAgICBuYW1lOiBmb3JtPy5wcm9ncmFtX25hbWUudHJpbSgpID8/ICcnLFxyXG4gICAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIHRleHQ6IGZvcm0/LnByb2dyYW1fZGVzY3JpcHRpb24gPz8gJycsXHJcbiAgICAgICAgYXR0YWNobWVudHM6IGZvcm0/LnByb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHMgPz8gW10sXHJcbiAgICAgIH0sXHJcbiAgICAgIHByb2dyYW1fb2JqZWN0aXZlOiB7XHJcbiAgICAgICAgdGV4dDogZm9ybT8ucHJvZ3JhbV9vYmplY3RpdmUgPz8gJycsXHJcbiAgICAgICAgYXR0YWNobWVudHM6IGZvcm0/Lm9iamVjdGl2ZV9hdHRhY2htZW50ID8/IFtdLFxyXG4gICAgICB9LFxyXG4gICAgICByb2xlczogZm9ybS5wcm9ncmFtX3JvbGVzLm1hcCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgcm9sZUlkOiBlbGU/Ll9pZCxcclxuICAgICAgICAgIHJvbGVOYW1lOiBlbGU/LnJvbGVOYW1lLFxyXG4gICAgICAgICAgbGljZW5zZVR5cGU6IGVsZT8ubGljZW5zZVR5cGUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSksXHJcbiAgICAgIG93bmVyczogdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX293bmVycywgJ21lbWJlcl9pZCcpID8/IFtdLFxyXG4gICAgICBvd25lcnNfZ3JvdXA6IG9wdGlvbj8uUk9MRVNcclxuICAgICAgICA/IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9vd25lcnNfZ3JvdXAsICdncm91cF9pZCcpID8/IFtdXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgYWxsX3VzZXJfaW5fcm9sZTogb3B0aW9uPy5ST0xFUyA/IGZvcm0/LmFsbF91c2VyX2luX3JvbGUgPz8gZmFsc2UgOiBmYWxzZSxcclxuICAgICAgcHJvZ3JhbVR5cGU6IGZvcm0/LnByb2dyYW1fdHlwZSA/PyAwLFxyXG4gICAgICAvLyBzdGF0ZTowLFxyXG4gICAgICBzdGF0ZTogZm9ybT8ucHJvZ3JhbV9zdGF0ZSA/PyAwLFxyXG4gICAgICBhcHByb3ZlcnM6XHJcbiAgICAgICAgb3B0aW9uPy5BUFBST1ZFUiB8fCAhaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uXHJcbiAgICAgICAgICA/IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9hcHByb3ZlciwgJ21lbWJlcl9pZCcpID8/IFtdXHJcbiAgICAgICAgICA6IFtdLFxyXG4gICAgICBjYWxjdWxhdGVfcGFzdF91cGNvbWluZ19ldmVudDogZm9ybT8ucGVyZm9ybWFuY2VfY2FsY3VsYXRpb24gPz8gJycsXHJcbiAgICAgIHByb2dyYW1fZnJlcXVlbmN5OlxyXG4gICAgICAgIG9wdGlvbi5QUk9HUkFNX0ZSRVFVRU5DWSB8fCAhaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uXHJcbiAgICAgICAgICA/IGZvcm0/LnJlY3VycmluZ19mcmVxdWVuY3lcclxuICAgICAgICAgICAgPyAxXHJcbiAgICAgICAgICAgIDogMFxyXG4gICAgICAgICAgOiAxLFxyXG4gICAgICBsb2NrX3Njb3BlOlxyXG4gICAgICAgIG9wdGlvbi5TQ09QRV9DSEFOR0VTIHx8ICFoYXNQcm9ncmFtRnVsbFBlcm1pc3Npb25cclxuICAgICAgICAgID8gZm9ybT8ubG9ja19zY29wZV9jaGFuZ2VcclxuICAgICAgICAgICAgPyAxXHJcbiAgICAgICAgICAgIDogMFxyXG4gICAgICAgICAgOiAwLFxyXG4gICAgICByY19pZHM6XHJcbiAgICAgICAgb3B0aW9uLlJDIHx8ICFoYXNQcm9ncmFtRnVsbFBlcm1pc3Npb25cclxuICAgICAgICAgID8gdGhpcy5saXN0VG9JZChmb3JtPy5yYywgJ2l0ZW1faWQnKVxyXG4gICAgICAgICAgOiBbXSxcclxuICAgICAgYXNzaWduZWVfaWRzOlxyXG4gICAgICAgIG9wdGlvbi5BU1NJR05FRVMgfHwgIWhhc1Byb2dyYW1GdWxsUGVybWlzc2lvblxyXG4gICAgICAgICAgPyB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fYXNzaWduZWUsICdtZW1iZXJfaWQnKVxyXG4gICAgICAgICAgOiBbXSxcclxuICAgICAgYXNzaWduZWVfZ3JvdXBfaWRzOlxyXG4gICAgICAgIG9wdGlvbi5BU1NJR05FRVMgfHwgIWhhc1Byb2dyYW1GdWxsUGVybWlzc2lvblxyXG4gICAgICAgICAgPyB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fYXNzaWduZWVfZ3JvdXAsICdncm91cF9pZCcpXHJcbiAgICAgICAgICA6IFtdLFxyXG4gICAgICBkZWZhdWx0X2Fzc2lnbmVlX2lkczpcclxuICAgICAgICBvcHRpb24uQVNTSUdORUVTIHx8ICFoYXNQcm9ncmFtRnVsbFBlcm1pc3Npb25cclxuICAgICAgICAgID8gdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWUsICdtZW1iZXJfaWQnKVxyXG4gICAgICAgICAgOiBbXSxcclxuICAgICAgZGVmYXVsdF9hc3NpZ25lZV9ncm91cF9pZHM6XHJcbiAgICAgICAgb3B0aW9uLkFTU0lHTkVFUyB8fCAhaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uXHJcbiAgICAgICAgICA/IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlX2dyb3VwLCAnZ3JvdXBfaWQnKVxyXG4gICAgICAgICAgOiBbXSxcclxuICAgICAgZGVmYXVsdF9hc3NpZ25lZV90eXBlOlxyXG4gICAgICAgIG9wdGlvbi5BU1NJR05FRVMgfHwgIWhhc1Byb2dyYW1GdWxsUGVybWlzc2lvblxyXG4gICAgICAgICAgPyBmb3JtPy5hc3NpZ25lZV9jb21wbGV0aW9uX2NyaXRlcmlhXHJcbiAgICAgICAgICA6ICdBTEwnLFxyXG4gICAgICByZXZpZXdlcnM6XHJcbiAgICAgICAgb3B0aW9uLlJFVklFV0VSIHx8ICFoYXNQcm9ncmFtRnVsbFBlcm1pc3Npb25cclxuICAgICAgICAgID8gdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX3Jldmlld2VyLCAnbWVtYmVyX2lkJylcclxuICAgICAgICAgIDogW10sXHJcbiAgICAgIHJldmlld2VyX2dyb3VwX2lkczpcclxuICAgICAgICBvcHRpb24uUkVWSUVXRVIgfHwgIWhhc1Byb2dyYW1GdWxsUGVybWlzc2lvblxyXG4gICAgICAgICAgPyB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXAsICdncm91cF9pZCcpXHJcbiAgICAgICAgICA6IFtdLFxyXG4gICAgICBkZWZhdWx0X3Jldmlld2VyczpcclxuICAgICAgICBvcHRpb24uUkVWSUVXRVIgfHwgIWhhc1Byb2dyYW1GdWxsUGVybWlzc2lvblxyXG4gICAgICAgICAgPyB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlciwgJ21lbWJlcl9pZCcpXHJcbiAgICAgICAgICA6IFtdLFxyXG4gICAgICBkZWZhdWx0X3Jldmlld2VyX2dyb3VwX2lkczpcclxuICAgICAgICBvcHRpb24uUkVWSUVXRVIgfHwgIWhhc1Byb2dyYW1GdWxsUGVybWlzc2lvblxyXG4gICAgICAgICAgPyB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cCwgJ2dyb3VwX2lkJylcclxuICAgICAgICAgIDogW10sXHJcbiAgICAgIGRlZmF1bHRfcmV2aWV3ZXJzX3R5cGU6IGZvcm0/LnJldmlld2VyX2NvbXBsZXRpb25fY3JpdGVyaWEsXHJcbiAgICAgIG92ZXJzZWVyczpcclxuICAgICAgICBvcHRpb24uT1ZFUlNFRVIgfHwgIWhhc1Byb2dyYW1GdWxsUGVybWlzc2lvblxyXG4gICAgICAgICAgPyB7XHJcbiAgICAgICAgICAgICAgY2NfZW1haWw6IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9vdmVyc2VlciwgJ21lbWJlcl9pZCcpLFxyXG4gICAgICAgICAgICAgIGNjX2VtYWlsX2dyb3VwczogdGhpcy5saXN0VG9JZChcclxuICAgICAgICAgICAgICAgIGZvcm0/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXAsXHJcbiAgICAgICAgICAgICAgICAnZ3JvdXBfaWQnXHJcbiAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICBmYWlsdXJlX2NjX2VtYWlsOiBbXSxcclxuICAgICAgICAgICAgICBmYWlsdXJlX2NjX2VtYWlsX2dyb3VwczogW10sXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDoge1xyXG4gICAgICAgICAgICAgIGNjX2VtYWlsOiBbXSxcclxuICAgICAgICAgICAgICBjY19lbWFpbF9ncm91cHM6IFtdLFxyXG4gICAgICAgICAgICAgIGZhaWx1cmVfY2NfZW1haWw6IFtdLFxyXG4gICAgICAgICAgICAgIGZhaWx1cmVfY2NfZW1haWxfZ3JvdXBzOiBbXSxcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgIGRlZmF1bHRfb3ZlcnNlZXJzOlxyXG4gICAgICAgIG9wdGlvbi5PVkVSU0VFUiB8fCAhaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uXHJcbiAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgICBjY19lbWFpbDogdGhpcy5saXN0VG9JZChcclxuICAgICAgICAgICAgICAgIGZvcm0/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2VlcixcclxuICAgICAgICAgICAgICAgICdtZW1iZXJfaWQnXHJcbiAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICBjY19lbWFpbF9ncm91cHM6IHRoaXMubGlzdFRvSWQoXHJcbiAgICAgICAgICAgICAgICBmb3JtPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXAsXHJcbiAgICAgICAgICAgICAgICAnZ3JvdXBfaWQnXHJcbiAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICBmYWlsdXJlX2NjX2VtYWlsOiB0aGlzLmxpc3RUb0lkKFxyXG4gICAgICAgICAgICAgICAgZm9ybT8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2VlcixcclxuICAgICAgICAgICAgICAgICdtZW1iZXJfaWQnXHJcbiAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICBmYWlsdXJlX2NjX2VtYWlsX2dyb3VwczogdGhpcy5saXN0VG9JZChcclxuICAgICAgICAgICAgICAgIGZvcm0/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXAsXHJcbiAgICAgICAgICAgICAgICAnZ3JvdXBfaWQnXHJcbiAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgY2NfZW1haWw6IFtdLFxyXG4gICAgICAgICAgICAgIGNjX2VtYWlsX2dyb3VwczogW10sXHJcbiAgICAgICAgICAgICAgZmFpbHVyZV9jY19lbWFpbDogW10sXHJcbiAgICAgICAgICAgICAgZmFpbHVyZV9jY19lbWFpbF9ncm91cHM6IFtdLFxyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgYXNzZXNzbWVudDpcclxuICAgICAgICBvcHRpb24/LkFTU0VTU01FTlQgfHwgIWhhc1Byb2dyYW1GdWxsUGVybWlzc2lvblxyXG4gICAgICAgICAgPyB0aGlzLmdlbmVyYXRlQXNzZXNzbWVudChmb3JtLnByb2dyYW1fYXNzZXNzbWVudHMpXHJcbiAgICAgICAgICA6IFtdLFxyXG4gICAgICBldmlkZW5jZV91cGxvYWRfZmxhZzpcclxuICAgICAgICBvcHRpb24/LkZPUk1BVEVfRVZJREVOQ0UgfHwgIWhhc1Byb2dyYW1GdWxsUGVybWlzc2lvblxyXG4gICAgICAgICAgPyBmb3JtPy5ldmlkZW5jZV9yZXF1aXJlZFxyXG4gICAgICAgICAgICA/IDFcclxuICAgICAgICAgICAgOiAwXHJcbiAgICAgICAgICA6IDAsXHJcbiAgICAgIGlzX2tleV9ldmlkZW5jZTogZm9ybT8uYWxsb3dfYW55X2ZpbGVfa2V5X2V2aWRlbmNlLFxyXG4gICAgICBjdXN0b21fZmllbGRzOiBvcHRpb24/LkNVU1RPTV9GSUVMRFMgPyBmb3JtPy5jdXN0b21fZmllbGRzID8/IFtdIDogW10sXHJcbiAgICAgIGZyYW1ld29yazogdGhpcy5nZXRGcmFtZXdvcmsoZm9ybT8uZnJhbWV3b3JrKSA/PyBbXSxcclxuICAgICAgX2lkOiBpbnN0YW5jZS5tb2RlID09PSAnRURJVCcgPyBpbnN0YW5jZS5wcm9ncmFtSWQgOiB1bmRlZmluZWQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHBheWxvYWQ7XHJcbiAgfVxyXG4gIGdlbmVyYXRlQXNzZXNzbWVudChhc3Nlc3NtZW50OiBhbnkpIHtcclxuICAgIGlmIChhc3Nlc3NtZW50ICYmIGFzc2Vzc21lbnQ/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gYXNzZXNzbWVudC5tYXAoKGNhdDogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLmNhdCxcclxuICAgICAgICAgIGFzc2Vzc21lbnRJZHM6IGNhdC5hc3Nlc3NtZW50SWRzPy5tYXAoKGFzc2VzczogYW55KSA9PiBhc3Nlc3MuaWQpLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRGcmFtZXdvcmsoaW5wdXQ6IGFueSkge1xyXG4gICAgaWYgKGlucHV0KSB7XHJcbiAgICAgIHJldHVybiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgX2lkOiBpbnB1dD8uX2lkLFxyXG4gICAgICAgICAgZnJhbWV3b3JrX25hbWU6IGlucHV0Py5uYW1lLFxyXG4gICAgICAgICAgdHlwZTogaW5wdXQ/LnR5cGUsXHJcbiAgICAgICAgICBpbl9zY29wZTogaW5wdXQ/LmluX3Njb3BlXHJcbiAgICAgICAgICAgID8gdGhpcy5saXN0VG9JZChpbnB1dD8uaW5fc2NvcGUsICdfaWQnKVxyXG4gICAgICAgICAgICA6IFtdLFxyXG4gICAgICAgICAgb3V0X3Njb3BlOiBpbnB1dD8ub3V0X3Njb3BlXHJcbiAgICAgICAgICAgID8gdGhpcy5saXN0VG9JZChpbnB1dD8ub3V0X3Njb3BlLCAnX2lkJylcclxuICAgICAgICAgICAgOiBbXSxcclxuICAgICAgICB9LFxyXG4gICAgICBdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGlzdFRvSWQobGlzdDogYW55LCBrZXk6IHN0cmluZykge1xyXG4gICAgaWYgKGxpc3QgJiYgbGlzdD8ubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBsaXN0Lm1hcCgoZWxlOiBhbnkpID0+IGVsZVtrZXldKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIDogcHJvZ3JhbSBvYmplY3QgaWRcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldFByb2dyYW0oaWQ6IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgIC5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSlcclxuICAgICAgLnNldCgneC1idXNpbmVzcy1jeWNsZScsIEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0QnVzaW5lc3NDeWNsZSgpKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4oXHJcbiAgICAgIHRoaXMuZW52Py5wcm9ncmFtRW5kcG9pbnQgK1xyXG4gICAgICAgICcvJyArXHJcbiAgICAgICAgaWQgK1xyXG4gICAgICAgICc/aXNCdXNpbmVzc0N5Y2xlPXRydWUmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXHJcbiAgICAgIHsgaGVhZGVycyB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGF5bG9hZCBwYXlsb2FkIHdoaWNoIG5lZWQgdG8gYmUgdXBkYXRlZFxyXG4gICAqIEBwYXJhbSBpZCBwcm9ncmFtIG9iamVjdCBpZFxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgdXBkYXRlUHJvZ3JhbShwYXlsb2FkOiBhbnksIGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxyXG4gICAgICAuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpXHJcbiAgICAgIC5zZXQoJ3gtYnVzaW5lc3MtY3ljbGUnLCBKU09OLnN0cmluZ2lmeSh0aGlzLmdldEJ1c2luZXNzQ3ljbGUoKSkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueVtdPihcclxuICAgICAgdGhpcy5lbnYucHJvZ3JhbUVuZHBvaW50ICtcclxuICAgICAgICAnL2NhdGVnb3J5L2VkaXRDYXRlZ29yeS8nICtcclxuICAgICAgICBpZCArXHJcbiAgICAgICAgJz9pc0J1c2luZXNzQ3ljbGU9dHJ1ZSZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcclxuICAgICAgcGF5bG9hZCxcclxuICAgICAgeyBoZWFkZXJzIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRNZW1lYmVyQnlJZHMoaWRzOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueVtdPihcclxuICAgICAgICB0aGlzLmVudi5vcmdhbml6YXRpb25Qb3N0ICtcclxuICAgICAgICAgICdtZW1iZXJEZXRhaWxzYnlJZHMmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXHJcbiAgICAgICAgeyBtZW1iZXJfaWQ6IGlkcyB9LFxyXG4gICAgICAgIHsgaGVhZGVycyB9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TWVtYmVyQnlHcm91cHMoaWRzOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueVtdPihcclxuICAgICAgICB0aGlzLmVudi5vcmdhbml6YXRpb25Qb3N0ICtcclxuICAgICAgICAgICdncm91cERldGFpbHNieUlkcyZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcclxuICAgICAgICB7IGdyb3VwX2lkczogaWRzIH0sXHJcbiAgICAgICAgeyBoZWFkZXJzIH1cclxuICAgICAgKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|