vcomply-workflow-engine 3.7.9 → 3.8.0

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.
@@ -3,6 +3,7 @@ import { Injectable, Optional } from '@angular/core';
3
3
  import { map, retry } from 'rxjs/operators';
4
4
  import moment from 'moment/moment';
5
5
  import { DEFAULT_24HR, DEFAULT_TIME } from '../constants/time.constants';
6
+ import dayjs from 'dayjs';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@angular/common/http";
8
9
  import * as i2 from "./auth.service";
@@ -193,12 +194,13 @@ export class LogIssueService {
193
194
  }
194
195
  payloadBuilder(issueData, optionFieldsStatus) {
195
196
  const isMoment = moment.isMoment(issueData.issueDueDate);
197
+ const isDays = dayjs.isDayjs(issueData.issueDueDate);
196
198
  console.log('payload builder issueData ==>', issueData, isMoment);
197
199
  debugger;
198
200
  const selectedDate = isMoment
199
201
  ? moment(issueData.issueDueDate)?.toDate()
200
- : issueData.issueDueDate?._$d
201
- ? issueData.issueDueDate?._$d
202
+ : isDays
203
+ ? dayjs(issueData.issueDueDate?.$d).toDate()
202
204
  : new Date(issueData.issueDueDate);
203
205
  const dateSplit = [
204
206
  selectedDate.getFullYear(),
@@ -360,4 +362,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
360
362
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Configurations, decorators: [{
361
363
  type: Optional
362
364
  }] }]; } });
363
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWlzc3VlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9sb2ctaXNzdWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFJbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFLekUsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFDVSxJQUFnQixFQUNoQixXQUF3QixFQUNwQixNQUF1QjtRQUYzQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBOFZsQyw0QkFBdUIsR0FBRyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3hDLElBQUksTUFBTSxFQUFFO2dCQUNWLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLE1BQU07cUJBQ3JDLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQztxQkFDOUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxHQUFHLE1BQU0sS0FBSyxJQUFJLENBQUM7Z0JBQzNCLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRTdDLE9BQU8sR0FBRyxDQUFDLEdBQUcsR0FB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QUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzNELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsRSxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkMsTUFBTSxhQUFhLEdBQUcsR0FBRyxHQUFHLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2hELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7K0dBNWFVLGVBQWU7bUhBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1hcCwgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcblxyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb25zJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IERFRkFVTFRfMjRIUiwgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dJc3N1ZVNlcnZpY2Uge1xyXG4gIGVudiE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnNcclxuICApIHtcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgdGhpcy5lbnYgPSBjb25maWcuZW52Q29uZmlnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SXNzdWVUeXBlcygpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdpc3N1ZVR5cGVMaXN0JywgeyBoZWFkZXJzIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldE9yZ1Blb3BsZSgpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdwZW9wbGUnLCB7IGhlYWRlcnMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXNzdWVDYXRlZ29yaWVzKCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4oXHJcbiAgICAgICAgdGhpcy5lbnYuYXNzdXJhbmNlICsgJ0lzc3VlL0NhdGVnb3J5L0NhdExpc3Q/Y2F0ZWdvcmllcz10cnVlJyxcclxuICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICAgIC8vaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL0Fzc3VyYW5jZS9Jc3N1ZS9DYXRlZ29yeS9DYXRMaXN0LzE/aXNCdXNpbmVzc0N5Y2xlPXRydWUmY2F0ZWdvcmllcz10cnVlXHJcbiAgfVxyXG4gIGdldFJlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdCgpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJywge1xyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcbiAgY3JlYXRlSXNzdWUocGF5bG9hZDogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUnLCBwYXlsb2FkLCB7IGhlYWRlcnMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICB1cGRhdGVJc3N1ZShwYXlsb2FkOiBhbnksIGlzc3VlSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnB1dCh0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUvJyArIGlzc3VlSWQsIHBheWxvYWQsIHsgaGVhZGVycyB9KVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRDb250cm9sUmlzayhhdWRpdFBsYW5JZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIC8vICAgICBHZXQgTGlua2VkIEF1ZGl0IFBsYW4gUmVzcG9uc2liaWxpdGllcyBieSBBdWRpdF9QbGFuX0lkXHJcbiAgICAvLyBVUkw6IGh0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yZXNwb25zaWJpbGl0aWVzLz9tb2RlPW1hbmFnZV9hdWRpdF9wbGFuX3Jlc3BvbnNpYmlsaXRpZXMmaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4IE1ldGhvZDogR0VUXHJcblxyXG4gICAgLy8gR2V0IExpbmtlZCBBdWRpdCBQbGFuIFJpc2sgYnkgQXVkaXRfUGxhbl9JZFxyXG4gICAgLy8gVVJMOiBodHRwczovL2RldmFwaS52LWNvbXBseS5jb20vcmlzay8/bW9kZT1yaXNrL21hbmFnZV9hdWRpdF9wbGFuX3Jpc2smaWQ9NjEwYjMyOTE0NGM4MWEwMDA5Y2JiNTk4XHJcbiAgICAvLyBNZXRob2Q6IEdFVFxyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIGlmICh0eXBlID09PSAnUkVTUE9OU0lCSUxJVFknKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAuZ2V0PGFueVtdPihcclxuICAgICAgICAgIHRoaXMuZW52LnJlc3BvbnNpYmlsaXRpZXNHZXQgK1xyXG4gICAgICAgICAgICAnbWFuYWdlX2F1ZGl0X3BsYW5fcmVzcG9uc2liaWxpdGllcyZpZD0nICtcclxuICAgICAgICAgICAgYXVkaXRQbGFuSWQsXHJcbiAgICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICAgIClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIG1hcCgoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtOiBhbnkpID0+ICh7XHJcbiAgICAgICAgICAgICAgaXRlbUlkOiBpdGVtPy5yZXBvcnRfaWQsXHJcbiAgICAgICAgICAgICAgaXRlbUNvbnRyb2xJZDogaXRlbT8uY29udHJvbF9pZCxcclxuICAgICAgICAgICAgICBpdGVtQ29udHJvbE5hbWU6IGl0ZW0/LnJlcG9ydF9uYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiAnUkVTUE9OU0lCSUxJVFknLFxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdSSVNLJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgLmdldDxhbnlbXT4oXHJcbiAgICAgICAgICB0aGlzLmVudi5yaXNrICsgJ3Jpc2svbWFuYWdlX2F1ZGl0X3BsYW5fcmlzayZpZD0nICsgYXVkaXRQbGFuSWQsXHJcbiAgICAgICAgICB7IGhlYWRlcnMgfVxyXG4gICAgICAgIClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIG1hcCgoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtOiBhbnkpID0+ICh7XHJcbiAgICAgICAgICAgICAgaXRlbUlkOiBpdGVtPy5yaXNrX2lkLFxyXG4gICAgICAgICAgICAgIGl0ZW1Db250cm9sSWQ6IGl0ZW0/LnJpc2tfY29udHJvbF9pZCxcclxuICAgICAgICAgICAgICBpdGVtQ29udHJvbE5hbWU6IGl0ZW0/LnRpdGxlLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiAnUklTSycsXHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoaXNzdWVEYXRhOiBhbnksIG9wZW5lZEZyb206IGFueSwgaXNSQ01hbmRhdG9yeTogYW55KSB7XHJcbiAgICBjb25zdCBlcnJvcnMgPSBbXTtcclxuICAgIGlmICghaXNzdWVEYXRhLmlzc3VlTmFtZSB8fCBpc3N1ZURhdGEuaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlTmFtZScpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzc3VlRGF0YS5pc3N1ZVJDLmxlbmd0aCA9PT0gMCAmJiBpc1JDTWFuZGF0b3J5KSB7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZVJDJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNzdWVEYXRhLmVudHJ1c3RUby5sZW5ndGggPT09IDApIHtcclxuICAgICAgZXJyb3JzLnB1c2goJ2VudHJ1c3RUbycpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKSB7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZUR1ZURhdGUnKTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgaXNzdWVEYXRhLmlzc3VlUmVjb21tZW5kYXRpb25cclxuICAgICAgICAucmVwbGFjZSgvJm5ic3A7L2csICcnKVxyXG4gICAgICAgIC5yZXBsYWNlKC9cXDxiclxccypbXFwvXT8+L2dpLCAnJylcclxuICAgICAgICAudHJpbSgpLmxlbmd0aCA9PT0gMFxyXG4gICAgKSB7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZVJlY29tbWVuZGF0aW9uJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVQYXlsb2FkKGlzc3VlRGF0YTogYW55LCBvcHRpb25GaWVsZHNTdGF0dXM6IGFueSkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoaXNzdWVEYXRhLmlzc3VlRHVlRGF0ZSk7XHJcbiAgICBjb25zdCBkYXRlU3BsaXQgPSBbXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCksXHJcbiAgICBdO1xyXG4gICAgY29uc3QgdGltZTogYW55ID0gdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChcclxuICAgICAgaXNzdWVEYXRhLmlzc3VlRHVlVGltZVxyXG4gICAgKS5zcGxpdCgnOicpO1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKFxyXG4gICAgICBkYXRlU3BsaXRbMF0sXHJcbiAgICAgIGRhdGVTcGxpdFsxXSAtIDEsXHJcbiAgICAgIGRhdGVTcGxpdFsyXSxcclxuICAgICAgdGltZVswXSxcclxuICAgICAgdGltZVsxXSxcclxuICAgICAgMFxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBjcmVhdGVJc3N1ZTogYW55ID0ge1xyXG4gICAgICBpc3N1ZV9kZXNjcmlwdGlvbl9hdHRhY2htZW50czogaXNzdWVEYXRhPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzLFxyXG4gICAgICBhc3NvY2lhdGVkX3Jpc2s6IG9wdGlvbkZpZWxkc1N0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVBc3NvY2lhdGVkUmlza1xyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlX25hbWU6IGlzc3VlRGF0YS5pc3N1ZU5hbWUsXHJcbiAgICAgIHJlcG9ydF9pZDogJzAnLFxyXG4gICAgICBpc3N1ZV9kZXNjcmlwdGlvbjogaXNzdWVEYXRhLmlzc3VlRGVzY3JpcHRpb24sXHJcbiAgICAgIGlzc3VlX3R5cGU6IG9wdGlvbkZpZWxkc1N0YXR1cy5JU1NVRV9UWVBFXHJcbiAgICAgICAgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVUeXBlLCAnaXNzdWVfaWQnKS50b1N0cmluZygpXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgZXhjZXB0aW9uX3R5cGU6IG9wdGlvbkZpZWxkc1N0YXR1cy5FWENFUFRJT05fVFlQRVxyXG4gICAgICAgID8gaXNzdWVEYXRhLmV4Y2VwdGlvblR5cGUudG9TdHJpbmcoKVxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIHJpc2tfY2xhc3M6IGlzc3VlRGF0YS5pc3N1ZVJpc2tSYXRpbmcudG9TdHJpbmcoKSA/PyAnJyxcclxuICAgICAgcHJpb3JpdHk6IG9wdGlvbkZpZWxkc1N0YXR1cy5QUklPUklUWVxyXG4gICAgICAgID8gaXNzdWVEYXRhLmlzc3VlUHJpb3JpdHkudG9TdHJpbmcoKVxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlX2NhdGVnb3J5X2lkOlxyXG4gICAgICAgIHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5LCAnY2F0ZWdvcnlfaWQnKSA/PyAwLFxyXG4gICAgICByZWNvbW1lbmRhdGlvbjogaXNzdWVEYXRhLmlzc3VlUmVjb21tZW5kYXRpb24sXHJcbiAgICAgIGVudHJ1c3RlZF90bzogdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmVudHJ1c3RUbywgJ2VtcGxveWVlX2lkJykgPz8gMCxcclxuICAgICAgaXNzdWVfZGF0ZTpcclxuICAgICAgICBkYXRlU3BsaXRbMF0gK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgZGF0ZVNwbGl0WzFdICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIGRhdGVTcGxpdFsyXSArXHJcbiAgICAgICAgJyAnICtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpLFxyXG4gICAgICBmYWlsZWRfdGltZTogdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSxcclxuICAgICAgaXNzdWVfZHVlX2RhdGU6XHJcbiAgICAgICAgZGF0ZVNwbGl0WzBdICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIGRhdGVTcGxpdFsxXSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICBkYXRlU3BsaXRbMl0gK1xyXG4gICAgICAgICcgJyArXHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSxcclxuICAgICAgZ3JjX2FyZWE6ICcnLFxyXG4gICAgICBjY19lbXBsb3llZV9lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVFxyXG4gICAgICAgID8gdGhpcy5hcnJheVRvSURzRHRyaW5nKGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMsICdlbXBsb3llZV9lbWFpbCcpXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgZmFpbHVyZV9jY19lbXBsb3llZV9lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVFxyXG4gICAgICAgID8gdGhpcy5hcnJheVRvSURzRHRyaW5nKGlzc3VlRGF0YS5mYWlsdXJlQ0NVc2VycywgJ2VtcGxveWVlX2VtYWlsJylcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBjdXN0b21fdGFnX3ZhbHVlOiAnJyxcclxuICAgICAgaXNzdWVfcmVzb2x2ZV90aW1lc3RhbXA6IChkYXRlLmdldFRpbWUoKSAvIDEwMDApLnRvU3RyaW5nKCksXHJcbiAgICAgIGV2aWRlbmNlX3VwbG9hZF9mbGFnOiBvcHRpb25GaWVsZHNTdGF0dXMuRVZJREVOQ0VcclxuICAgICAgICA/IGlzc3VlRGF0YS5ldmlkZW5jZVJlcXVpcmVkXHJcbiAgICAgICAgICA/ICcxJ1xyXG4gICAgICAgICAgOiAnMCdcclxuICAgICAgICA6ICcwJyxcclxuICAgIH07XHJcbiAgICBpZiAoaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoKSB7XHJcbiAgICAgIGNyZWF0ZUlzc3VlLnJjX2lkID0gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmlzc3VlUkMsICdyY19pZCcpID8/IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNyZWF0ZUlzc3VlO1xyXG4gIH1cclxuXHJcbiAgcGF5bG9hZEJ1aWxkZXIoaXNzdWVEYXRhOiBhbnksIG9wdGlvbkZpZWxkc1N0YXR1czogYW55KSB7XHJcbiAgICBjb25zdCBpc01vbWVudCA9IG1vbWVudC5pc01vbWVudChpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKTtcclxuICAgIGNvbnNvbGUubG9nKCdwYXlsb2FkIGJ1aWxkZXIgaXNzdWVEYXRhID09PicsIGlzc3VlRGF0YSwgaXNNb21lbnQpO1xyXG4gICAgZGVidWdnZXI7XHJcbiAgICBjb25zdCBzZWxlY3RlZERhdGUgPSBpc01vbWVudFxyXG4gICAgICA/IG1vbWVudChpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKT8udG9EYXRlKClcclxuICAgICAgOiBpc3N1ZURhdGEuaXNzdWVEdWVEYXRlPy5fJGRcclxuICAgICAgPyBpc3N1ZURhdGEuaXNzdWVEdWVEYXRlPy5fJGRcclxuICAgICAgOiBuZXcgRGF0ZShpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKTtcclxuICAgIGNvbnN0IGRhdGVTcGxpdCA9IFtcclxuICAgICAgc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXRNb250aCgpICsgMSxcclxuICAgICAgc2VsZWN0ZWREYXRlLmdldERhdGUoKSxcclxuICAgIF07XHJcblxyXG4gICAgY29uc29sZS5sb2coXHJcbiAgICAgICdwYXlsb2FkIGJ1aWxkZXIgaXNzdWVEYXRhICBzZWxlY3RlZERhdGUgPT0+JyxcclxuICAgICAgc2VsZWN0ZWREYXRlLFxyXG4gICAgICBkYXRlU3BsaXRcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xyXG4gICAgICBkZXNjcmlwdGlvbjogW10sXHJcbiAgICAgIGFzc29jaWF0ZWRfcmlzazogW10sXHJcbiAgICAgIHJlY29tbWVuZGF0aW9uOiBbXSxcclxuICAgIH07XHJcblxyXG4gICAgcGF5bG9hZC50aXRsZSA9IGlzc3VlRGF0YS5pc3N1ZU5hbWUudHJpbSgpID8/ICcnO1xyXG4gICAgcGF5bG9hZC5yY19pZCA9IGlzc3VlRGF0YS5pc3N1ZVJDLmxlbmd0aFxyXG4gICAgICA/IHRoaXMuZ2V0QXJyYXlJZChpc3N1ZURhdGEuaXNzdWVSQywgJ3JjX2lkJylcclxuICAgICAgOiBbXTtcclxuICAgIHBheWxvYWQucmVzcG9uc2liaWxpdGllc19MaW5rZWQgPSBpc3N1ZURhdGEucmVzcG9uc2liaWxpdHlMaW5rZWQubGVuZ3RoXHJcbiAgICAgID8gdGhpcy5nZXRBcnJheUlkKGlzc3VlRGF0YS5yZXNwb25zaWJpbGl0eUxpbmtlZCwgJ1JlcG9ydElkJylcclxuICAgICAgOiBbXTtcclxuICAgIHBheWxvYWQuY2F0ZWdvcnlfaWQgPSBpc3N1ZURhdGEuaXNzdWVDYXRlZ29yeS5sZW5ndGhcclxuICAgICAgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVDYXRlZ29yeSwgJ2NhdGVnb3J5X2lkJylcclxuICAgICAgOiBudWxsO1xyXG4gICAgcGF5bG9hZC5kZXNjcmlwdGlvblswXSA9IHtcclxuICAgICAgdGV4dDogaXNzdWVEYXRhLmlzc3VlRGVzY3JpcHRpb24gPz8gJycsXHJcbiAgICAgIGF0dGFjaG1lbnRzOiBpc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHNcclxuICAgICAgICA6IFtdLFxyXG4gICAgfTtcclxuICAgIHBheWxvYWQuZXhjZXB0aW9uX3R5cGUgPSBvcHRpb25GaWVsZHNTdGF0dXMuRVhDRVBUSU9OX1RZUEVcclxuICAgICAgPyBOdW1iZXIoaXNzdWVEYXRhLmV4Y2VwdGlvblR5cGUpXHJcbiAgICAgIDogbnVsbDtcclxuICAgIHBheWxvYWQucmlza19jbGFzcyA9IGlzc3VlRGF0YS5pc3N1ZVJpc2tSYXRpbmcgPz8gbnVsbDtcclxuICAgIHBheWxvYWQucHJpb3JpdHkgPSBvcHRpb25GaWVsZHNTdGF0dXMuUFJJT1JJVFlcclxuICAgICAgPyBOdW1iZXIoaXNzdWVEYXRhLmlzc3VlUHJpb3JpdHkpXHJcbiAgICAgIDogbnVsbDtcclxuICAgIHBheWxvYWQuYXNzaWduZWVfaWQgPSBpc3N1ZURhdGEuZW50cnVzdFRvXHJcbiAgICAgID8gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmVudHJ1c3RUbywgJ215X21lbWJlcl9pZCcpXHJcbiAgICAgIDogbnVsbDtcclxuICAgIHBheWxvYWQuYXNzb2NpYXRlZF9yaXNrWzBdID0ge1xyXG4gICAgICB0ZXh0OiBvcHRpb25GaWVsZHNTdGF0dXMuQVNTT0NJQVRFRF9SSVNLU1xyXG4gICAgICAgID8gaXNzdWVEYXRhLmlzc3VlQXNzb2NpYXRlZFJpc2tcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBhdHRhY2htZW50czogW10sXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5yZWNvbW1lbmRhdGlvblswXSA9IHtcclxuICAgICAgdGV4dDogaXNzdWVEYXRhLmlzc3VlUmVjb21tZW5kYXRpb24gPz8gJycsXHJcbiAgICAgIGF0dGFjaG1lbnRzOiBpc3N1ZURhdGE/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzLmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50c1xyXG4gICAgICAgIDogW10sXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5ldmlkZW5jZSA9IHtcclxuICAgICAgZXZpZGVuY2VfZmxhZzogb3B0aW9uRmllbGRzU3RhdHVzLkVWSURFTkNFXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuZXZpZGVuY2VSZXF1aXJlZFxyXG4gICAgICAgICAgPyAxXHJcbiAgICAgICAgICA6IDBcclxuICAgICAgICA6IDAsXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5mcmVxdWVuY3lfZGV0YWlscyA9IHtcclxuICAgICAgZnJlcXVlbmN5X3RpbWU6XHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSA/PyBERUZBVUxUX1RJTUUsXHJcbiAgICAgIGZyZXF1ZW5jeV9kYXRlOlxyXG4gICAgICAgIGRhdGVTcGxpdFswXSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICAoZGF0ZVNwbGl0WzFdIDwgMTAgPyAnMCcgKyBkYXRlU3BsaXRbMV0gOiBkYXRlU3BsaXRbMV0pICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIChkYXRlU3BsaXRbMl0gPCAxMCA/ICcwJyArIGRhdGVTcGxpdFsyXSA6IGRhdGVTcGxpdFsyXSksXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5vdmVyc2VlciA9IHtcclxuICAgICAgY2NfZW1haWw6IG9wdGlvbkZpZWxkc1N0YXR1cy5PVkVSU0lHSFRcclxuICAgICAgICA/IGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMubGVuZ3RoXHJcbiAgICAgICAgICA/IGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMubWFwKCh4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4geyBtZW1iZXJfaWQ6IHgubXlfbWVtYmVyX2lkID8/IDAsIGFsZXJ0X2VuYWJsZTogMSB9O1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgOiBbXVxyXG4gICAgICAgIDogW10sXHJcbiAgICAgIGZhaWx1cmVfY2NfZW1haWw6IG9wdGlvbkZpZWxkc1N0YXR1cy5PVkVSU0lHSFRcclxuICAgICAgICA/IGlzc3VlRGF0YS5mYWlsdXJlQ0NVc2Vycy5sZW5ndGhcclxuICAgICAgICAgID8gaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLm1hcCgoeDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHsgbWVtYmVyX2lkOiB4Lm15X21lbWJlcl9pZCA/PyAwLCBhbGVydF9lbmFibGU6IDEgfTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIDogW11cclxuICAgICAgICA6IFtdLFxyXG4gICAgfTtcclxuICAgIHBheWxvYWQuY3VzdG9tX3RhZ3MgPSBpc3N1ZURhdGE/Lmlzc3VlQ3VzdG9tVGFnO1xyXG4gICAgcGF5bG9hZC5pc3N1ZVR5cGUgPSBpc3N1ZURhdGE/Lmlzc3VlVHlwZTtcclxuICAgIHBheWxvYWQubGlua2VkX2Fzc2Vzc21lbnRfaXNzdWVzID0ge1xyXG4gICAgICByZXNwX2lkOiBpc3N1ZURhdGE/LnJlc3BJZCA/PyAnJyxcclxuICAgICAgZHVlX2RhdGVfaWQ6IGlzc3VlRGF0YT8uZHVlRGF0ZUlkID8/ICcnLFxyXG4gICAgICBhc3Nlc3NtZW50X2lkOiBpc3N1ZURhdGE/LmFzc2Vzc21lbnRJZCA/PyAnJyxcclxuICAgICAgcXVlc3Rpb25faWQ6IGlzc3VlRGF0YT8ucXVlc3Rpb25JZCA/PyAnJyxcclxuICAgICAgYXVkaXRlZV9pZDogaXNzdWVEYXRhPy5hdWRpdGVlSWQgPz8gbnVsbCxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLnNvdXJjZSA9IGlzc3VlRGF0YT8uc291cmNlO1xyXG5cclxuICAgIHJldHVybiBwYXlsb2FkO1xyXG4gIH1cclxuXHJcbiAgYXJyYXlUb0lkKGFycmF5OiBhbnksIGtleTogYW55KSB7XHJcbiAgICBpZiAoYXJyYXkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBhcnJheVswXVtrZXldO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0QXJyYXlJZChhcnJheTogYW55LCBrZXk6IGFueSkge1xyXG4gICAgcmV0dXJuIGFycmF5Lm1hcCgoZWxlOiBhbnkpID0+IGVsZVtrZXldKTtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0ID0gKHRpbWUxMjogYW55KSA9PiB7XHJcbiAgICBpZiAodGltZTEyKSB7XHJcbiAgICAgIGNvbnN0IFtzSG91cnMsIG1pbnV0ZXMsIHBlcmlvZF0gPSB0aW1lMTJcclxuICAgICAgICAubWF0Y2goLyhbMC05XXsxLDJ9KTooWzAtOV17Mn0pIChhbXxwbXxBTXxQTSkvKVxyXG4gICAgICAgIC5zbGljZSgxKTtcclxuICAgICAgY29uc3QgUE0gPSBwZXJpb2QgPT09ICdQTSc7XHJcbiAgICAgIGNvbnN0IGhvdXJzID0gKCtzSG91cnMgJSAxMikgKyAoUE0gPyAxMiA6IDApO1xyXG5cclxuICAgICAgcmV0dXJuIGAkeygnMCcgKyBob3Vycykuc2xpY2UoLTIpfToke21pbnV0ZXN9OjAwYDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBERUZBVUxUXzI0SFI7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29udmVydEZyb20yNFRvMTJGb3JtYXQodGltZTogYW55KSB7XHJcbiAgICBjb25zdCBoaG1tID0gdGltZS5zcGxpdCgnOicpO1xyXG4gICAgdGltZSA9IGAke2hobW1bMF19OiR7aGhtbVsxXX1gO1xyXG4gICAgLy8gQ2hlY2sgY29ycmVjdCB0aW1lIGZvcm1hdCBhbmQgc3BsaXQgaW50byBjb21wb25lbnRzXHJcbiAgICB0aW1lID0gdGltZVxyXG4gICAgICAudG9TdHJpbmcoKVxyXG4gICAgICAubWF0Y2goL14oWzAxXVxcZHwyWzAtM10pKDopKFswLTVdXFxkKSg6WzAtNV1cXGQpPyQvKSB8fCBbdGltZV07XHJcblxyXG4gICAgaWYgKHRpbWUubGVuZ3RoID4gMSkge1xyXG4gICAgICAvLyBJZiB0aW1lIGZvcm1hdCBjb3JyZWN0XHJcbiAgICAgIHRpbWUgPSB0aW1lLnNsaWNlKDEpOyAvLyBSZW1vdmUgZnVsbCBzdHJpbmcgbWF0Y2ggdmFsdWVcclxuICAgICAgdGltZVs1XSA9ICt0aW1lWzBdIDwgMTIgPyAnIEFNJyA6ICcgUE0nOyAvLyBTZXQgQU0vUE1cclxuICAgICAgdGltZVswXSA9ICt0aW1lWzBdICUgMTIgfHwgMTI7IC8vIEFkanVzdCBob3Vyc1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRpbWUuam9pbignJyk7IC8vIHJldHVybiBhZGp1c3RlZCB0aW1lIG9yIG9yaWdpbmFsIHN0cmluZ1xyXG4gIH1cclxuXHJcbiAgYXJyYXlUb0lEc0R0cmluZyhhcnJheTogYW55LCBpZGVudGlmaWVyS2V5OiBhbnkpIHtcclxuICAgIGNvbnN0IGxpc3QgPSBhcnJheS5tYXAoKGVsOiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIGVsW2lkZW50aWZpZXJLZXldO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbGlzdC5qb2luKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGxvYWRzIHRoZSBnaXZlbiBmaWxlIHRvIHNlcnZlclxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIHBheWxvYWQgRmlsZSBkYXRhIHRvIGJlIHVwbG9hZGVkXHJcbiAgICogQHBhcmFtIHBhdGggcGF0aCBQYXRoIG9mIGZpbGUgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcmV0dXJucyByZXNwb25zZSBhZnRlciB1cGxvYWRpbmcgYSBmaWxlXHJcbiAgICovXHJcbiAgdXBsb2FkRmlsZXMocGF5bG9hZDogYW55LCBwYXRoOiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICBjb25zdCBPUkdfUEFUSCA9IGBvLyR7cGF0aH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICB0aGlzLmVudi5maWxlVXBsb2FkRW5kUG9pbnQgKyBPUkdfUEFUSCArICcmbmdzdy1ieXBhc3M9dHJ1ZScsXHJcbiAgICAgIHBheWxvYWQsXHJcbiAgICAgIHsgaGVhZGVycyB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXNzdWVEZXRhaWxzKGlzc3VlSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmVudi5hc3N1cmFuY2UgKyAnSXNzdWUvRWRpdC8nICsgaXNzdWVJZCwgeyBoZWFkZXJzIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDMpKTtcclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGUoKSB7XHJcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBkYXkgPSBTdHJpbmcoY3VycmVudERhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgbW9udGggPSBTdHJpbmcoY3VycmVudERhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBjb25zdCB5ZWFyID0gY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBgJHtkYXl9LSR7bW9udGh9LSR7eWVhcn1gO1xyXG4gICAgcmV0dXJuIGZvcm1hdHRlZERhdGU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
365
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWlzc3VlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9sb2ctaXNzdWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFJbkMsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7Ozs7O0FBSzFCLE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQ1UsSUFBZ0IsRUFDaEIsV0FBd0IsRUFDcEIsTUFBdUI7UUFGM0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQStWbEMsNEJBQXVCLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUN4QyxJQUFJLE1BQU0sRUFBRTtnQkFDVixNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxNQUFNO3FCQUNyQyxLQUFLLENBQUMsdUNBQXVDLENBQUM7cUJBQzlDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDWixNQUFNLEVBQUUsR0FBRyxNQUFNLEtBQUssSUFBSSxDQUFDO2dCQUMzQixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFD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QUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMvQixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEUsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sYUFBYSxHQUFHLEdBQUcsR0FBRyxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNoRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDOytHQTdhVSxlQUFlO21IQUFmLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBERUZBVUxUXzI0SFIsIERFRkFVTFRfVElNRSB9IGZyb20gJy4uL2NvbnN0YW50cy90aW1lLmNvbnN0YW50cyc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9nSXNzdWVTZXJ2aWNlIHtcclxuICBlbnYhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXHJcbiAgKSB7XHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuZW52ID0gY29uZmlnLmVudkNvbmZpZztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldElzc3VlVHlwZXMoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgKyAnaXNzdWVUeXBlTGlzdCcsIHsgaGVhZGVycyB9KVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRPcmdQZW9wbGUoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgKyAncGVvcGxlJywgeyBoZWFkZXJzIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldElzc3VlQ2F0ZWdvcmllcygpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KFxyXG4gICAgICAgIHRoaXMuZW52LmFzc3VyYW5jZSArICdJc3N1ZS9DYXRlZ29yeS9DYXRMaXN0P2NhdGVnb3JpZXM9dHJ1ZScsXHJcbiAgICAgICAgeyBoZWFkZXJzIH1cclxuICAgICAgKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgICAvL2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9Bc3N1cmFuY2UvSXNzdWUvQ2F0ZWdvcnkvQ2F0TGlzdC8xP2lzQnVzaW5lc3NDeWNsZT10cnVlJmNhdGVnb3JpZXM9dHJ1ZVxyXG4gIH1cclxuICBnZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ3Jlc3BvbnNpYmlsaXR5Q2VudGVyVHJlZScsIHtcclxuICAgICAgICBoZWFkZXJzLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG4gIGNyZWF0ZUlzc3VlKHBheWxvYWQ6IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5lbnYuYXNzdXJhbmNlICsgJ0lzc3VlJywgcGF5bG9hZCwgeyBoZWFkZXJzIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcbiAgdXBkYXRlSXNzdWUocGF5bG9hZDogYW55LCBpc3N1ZUlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQodGhpcy5lbnYuYXNzdXJhbmNlICsgJ0lzc3VlLycgKyBpc3N1ZUlkLCBwYXlsb2FkLCB7IGhlYWRlcnMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29udHJvbFJpc2soYXVkaXRQbGFuSWQ6IHN0cmluZywgdHlwZTogc3RyaW5nKSB7XHJcbiAgICAvLyAgICAgR2V0IExpbmtlZCBBdWRpdCBQbGFuIFJlc3BvbnNpYmlsaXRpZXMgYnkgQXVkaXRfUGxhbl9JZFxyXG4gICAgLy8gVVJMOiBodHRwczovL2RldmFwaS52LWNvbXBseS5jb20vcmVzcG9uc2liaWxpdGllcy8/bW9kZT1tYW5hZ2VfYXVkaXRfcGxhbl9yZXNwb25zaWJpbGl0aWVzJmlkPTYxMGIzMjkxNDRjODFhMDAwOWNiYjU5OCBNZXRob2Q6IEdFVFxyXG5cclxuICAgIC8vIEdldCBMaW5rZWQgQXVkaXQgUGxhbiBSaXNrIGJ5IEF1ZGl0X1BsYW5fSWRcclxuICAgIC8vIFVSTDogaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL3Jpc2svP21vZGU9cmlzay9tYW5hZ2VfYXVkaXRfcGxhbl9yaXNrJmlkPTYxMGIzMjkxNDRjODFhMDAwOWNiYjU5OFxyXG4gICAgLy8gTWV0aG9kOiBHRVRcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXHJcbiAgICAgICd0b2tlbicsXHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcclxuICAgICk7XHJcbiAgICBpZiAodHlwZSA9PT0gJ1JFU1BPTlNJQklMSVRZJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgLmdldDxhbnlbXT4oXHJcbiAgICAgICAgICB0aGlzLmVudi5yZXNwb25zaWJpbGl0aWVzR2V0ICtcclxuICAgICAgICAgICAgJ21hbmFnZV9hdWRpdF9wbGFuX3Jlc3BvbnNpYmlsaXRpZXMmaWQ9JyArXHJcbiAgICAgICAgICAgIGF1ZGl0UGxhbklkLFxyXG4gICAgICAgICAgeyBoZWFkZXJzIH1cclxuICAgICAgICApXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiAoe1xyXG4gICAgICAgICAgICAgIGl0ZW1JZDogaXRlbT8ucmVwb3J0X2lkLFxyXG4gICAgICAgICAgICAgIGl0ZW1Db250cm9sSWQ6IGl0ZW0/LmNvbnRyb2xfaWQsXHJcbiAgICAgICAgICAgICAgaXRlbUNvbnRyb2xOYW1lOiBpdGVtPy5yZXBvcnRfbmFtZSxcclxuICAgICAgICAgICAgICBpdGVtVHlwZTogJ1JFU1BPTlNJQklMSVRZJyxcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnUklTSycpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgIC5nZXQ8YW55W10+KFxyXG4gICAgICAgICAgdGhpcy5lbnYucmlzayArICdyaXNrL21hbmFnZV9hdWRpdF9wbGFuX3Jpc2smaWQ9JyArIGF1ZGl0UGxhbklkLFxyXG4gICAgICAgICAgeyBoZWFkZXJzIH1cclxuICAgICAgICApXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiAoe1xyXG4gICAgICAgICAgICAgIGl0ZW1JZDogaXRlbT8ucmlza19pZCxcclxuICAgICAgICAgICAgICBpdGVtQ29udHJvbElkOiBpdGVtPy5yaXNrX2NvbnRyb2xfaWQsXHJcbiAgICAgICAgICAgICAgaXRlbUNvbnRyb2xOYW1lOiBpdGVtPy50aXRsZSxcclxuICAgICAgICAgICAgICBpdGVtVHlwZTogJ1JJU0snLFxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGlzc3VlRGF0YTogYW55LCBvcGVuZWRGcm9tOiBhbnksIGlzUkNNYW5kYXRvcnk6IGFueSkge1xyXG4gICAgY29uc3QgZXJyb3JzID0gW107XHJcbiAgICBpZiAoIWlzc3VlRGF0YS5pc3N1ZU5hbWUgfHwgaXNzdWVEYXRhLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZU5hbWUnKTtcclxuICAgIH1cclxuICAgIGlmIChpc3N1ZURhdGEuaXNzdWVSQy5sZW5ndGggPT09IDAgJiYgaXNSQ01hbmRhdG9yeSkge1xyXG4gICAgICBlcnJvcnMucHVzaCgnaXNzdWVSQycpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzc3VlRGF0YS5lbnRydXN0VG8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGVycm9ycy5wdXNoKCdlbnRydXN0VG8nKTtcclxuICAgIH1cclxuICAgIGlmICghaXNzdWVEYXRhLmlzc3VlRHVlRGF0ZSkge1xyXG4gICAgICBlcnJvcnMucHVzaCgnaXNzdWVEdWVEYXRlJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIGlzc3VlRGF0YS5pc3N1ZVJlY29tbWVuZGF0aW9uXHJcbiAgICAgICAgLnJlcGxhY2UoLyZuYnNwOy9nLCAnJylcclxuICAgICAgICAucmVwbGFjZSgvXFw8YnJcXHMqW1xcL10/Pi9naSwgJycpXHJcbiAgICAgICAgLnRyaW0oKS5sZW5ndGggPT09IDBcclxuICAgICkge1xyXG4gICAgICBlcnJvcnMucHVzaCgnaXNzdWVSZWNvbW1lbmRhdGlvbicpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVycm9ycztcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlUGF5bG9hZChpc3N1ZURhdGE6IGFueSwgb3B0aW9uRmllbGRzU3RhdHVzOiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpO1xyXG4gICAgY29uc3QgZGF0ZVNwbGl0ID0gW1xyXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgc2VsZWN0ZWREYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgXTtcclxuICAgIGNvbnN0IHRpbWU6IGFueSA9IHRoaXMuY29udmVydEZyb20xMlRvMjRGb3JtYXQoXHJcbiAgICAgIGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWVcclxuICAgICkuc3BsaXQoJzonKTtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShcclxuICAgICAgZGF0ZVNwbGl0WzBdLFxyXG4gICAgICBkYXRlU3BsaXRbMV0gLSAxLFxyXG4gICAgICBkYXRlU3BsaXRbMl0sXHJcbiAgICAgIHRpbWVbMF0sXHJcbiAgICAgIHRpbWVbMV0sXHJcbiAgICAgIDBcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgY3JlYXRlSXNzdWU6IGFueSA9IHtcclxuICAgICAgaXNzdWVfZGVzY3JpcHRpb25fYXR0YWNobWVudHM6IGlzc3VlRGF0YT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cyxcclxuICAgICAgYXNzb2NpYXRlZF9yaXNrOiBvcHRpb25GaWVsZHNTdGF0dXMuQVNTT0NJQVRFRF9SSVNLU1xyXG4gICAgICAgID8gaXNzdWVEYXRhLmlzc3VlQXNzb2NpYXRlZFJpc2tcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBpc3N1ZV9uYW1lOiBpc3N1ZURhdGEuaXNzdWVOYW1lLFxyXG4gICAgICByZXBvcnRfaWQ6ICcwJyxcclxuICAgICAgaXNzdWVfZGVzY3JpcHRpb246IGlzc3VlRGF0YS5pc3N1ZURlc2NyaXB0aW9uLFxyXG4gICAgICBpc3N1ZV90eXBlOiBvcHRpb25GaWVsZHNTdGF0dXMuSVNTVUVfVFlQRVxyXG4gICAgICAgID8gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmlzc3VlVHlwZSwgJ2lzc3VlX2lkJykudG9TdHJpbmcoKVxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGV4Y2VwdGlvbl90eXBlOiBvcHRpb25GaWVsZHNTdGF0dXMuRVhDRVBUSU9OX1RZUEVcclxuICAgICAgICA/IGlzc3VlRGF0YS5leGNlcHRpb25UeXBlLnRvU3RyaW5nKClcclxuICAgICAgICA6ICcnLFxyXG4gICAgICByaXNrX2NsYXNzOiBpc3N1ZURhdGEuaXNzdWVSaXNrUmF0aW5nLnRvU3RyaW5nKCkgPz8gJycsXHJcbiAgICAgIHByaW9yaXR5OiBvcHRpb25GaWVsZHNTdGF0dXMuUFJJT1JJVFlcclxuICAgICAgICA/IGlzc3VlRGF0YS5pc3N1ZVByaW9yaXR5LnRvU3RyaW5nKClcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBpc3N1ZV9jYXRlZ29yeV9pZDpcclxuICAgICAgICB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVDYXRlZ29yeSwgJ2NhdGVnb3J5X2lkJykgPz8gMCxcclxuICAgICAgcmVjb21tZW5kYXRpb246IGlzc3VlRGF0YS5pc3N1ZVJlY29tbWVuZGF0aW9uLFxyXG4gICAgICBlbnRydXN0ZWRfdG86IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5lbnRydXN0VG8sICdlbXBsb3llZV9pZCcpID8/IDAsXHJcbiAgICAgIGlzc3VlX2RhdGU6XHJcbiAgICAgICAgZGF0ZVNwbGl0WzBdICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIGRhdGVTcGxpdFsxXSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICBkYXRlU3BsaXRbMl0gK1xyXG4gICAgICAgICcgJyArXHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSxcclxuICAgICAgZmFpbGVkX3RpbWU6IHRoaXMuY29udmVydEZyb20xMlRvMjRGb3JtYXQoaXNzdWVEYXRhLmlzc3VlRHVlVGltZSksXHJcbiAgICAgIGlzc3VlX2R1ZV9kYXRlOlxyXG4gICAgICAgIGRhdGVTcGxpdFswXSArXHJcbiAgICAgICAgJy0nICtcclxuICAgICAgICBkYXRlU3BsaXRbMV0gK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgZGF0ZVNwbGl0WzJdICtcclxuICAgICAgICAnICcgK1xyXG4gICAgICAgIHRoaXMuY29udmVydEZyb20xMlRvMjRGb3JtYXQoaXNzdWVEYXRhLmlzc3VlRHVlVGltZSksXHJcbiAgICAgIGdyY19hcmVhOiAnJyxcclxuICAgICAgY2NfZW1wbG95ZWVfZW1haWw6IG9wdGlvbkZpZWxkc1N0YXR1cy5PVkVSU0lHSFRcclxuICAgICAgICA/IHRoaXMuYXJyYXlUb0lEc0R0cmluZyhpc3N1ZURhdGEuaXNzdWVDQ1VzZXJzLCAnZW1wbG95ZWVfZW1haWwnKVxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGZhaWx1cmVfY2NfZW1wbG95ZWVfZW1haWw6IG9wdGlvbkZpZWxkc1N0YXR1cy5PVkVSU0lHSFRcclxuICAgICAgICA/IHRoaXMuYXJyYXlUb0lEc0R0cmluZyhpc3N1ZURhdGEuZmFpbHVyZUNDVXNlcnMsICdlbXBsb3llZV9lbWFpbCcpXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgY3VzdG9tX3RhZ192YWx1ZTogJycsXHJcbiAgICAgIGlzc3VlX3Jlc29sdmVfdGltZXN0YW1wOiAoZGF0ZS5nZXRUaW1lKCkgLyAxMDAwKS50b1N0cmluZygpLFxyXG4gICAgICBldmlkZW5jZV91cGxvYWRfZmxhZzogb3B0aW9uRmllbGRzU3RhdHVzLkVWSURFTkNFXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuZXZpZGVuY2VSZXF1aXJlZFxyXG4gICAgICAgICAgPyAnMSdcclxuICAgICAgICAgIDogJzAnXHJcbiAgICAgICAgOiAnMCcsXHJcbiAgICB9O1xyXG4gICAgaWYgKGlzc3VlRGF0YS5pc3N1ZVJDLmxlbmd0aCkge1xyXG4gICAgICBjcmVhdGVJc3N1ZS5yY19pZCA9IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZVJDLCAncmNfaWQnKSA/PyAwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjcmVhdGVJc3N1ZTtcclxuICB9XHJcblxyXG4gIHBheWxvYWRCdWlsZGVyKGlzc3VlRGF0YTogYW55LCBvcHRpb25GaWVsZHNTdGF0dXM6IGFueSkge1xyXG4gICAgY29uc3QgaXNNb21lbnQgPSBtb21lbnQuaXNNb21lbnQoaXNzdWVEYXRhLmlzc3VlRHVlRGF0ZSk7XHJcbiAgICBjb25zdCBpc0RheXMgPSBkYXlqcy5pc0RheWpzKGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpO1xyXG4gICAgY29uc29sZS5sb2coJ3BheWxvYWQgYnVpbGRlciBpc3N1ZURhdGEgPT0+JywgaXNzdWVEYXRhLCBpc01vbWVudCk7XHJcbiAgICBkZWJ1Z2dlcjtcclxuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IGlzTW9tZW50XHJcbiAgICAgID8gbW9tZW50KGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpPy50b0RhdGUoKVxyXG4gICAgICA6IGlzRGF5c1xyXG4gICAgICA/IGRheWpzKGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGU/LiRkKS50b0RhdGUoKVxyXG4gICAgICA6IG5ldyBEYXRlKGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpO1xyXG4gICAgY29uc3QgZGF0ZVNwbGl0ID0gW1xyXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgc2VsZWN0ZWREYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgXTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcclxuICAgICAgJ3BheWxvYWQgYnVpbGRlciBpc3N1ZURhdGEgIHNlbGVjdGVkRGF0ZSA9PT4nLFxyXG4gICAgICBzZWxlY3RlZERhdGUsXHJcbiAgICAgIGRhdGVTcGxpdFxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSB7XHJcbiAgICAgIGRlc2NyaXB0aW9uOiBbXSxcclxuICAgICAgYXNzb2NpYXRlZF9yaXNrOiBbXSxcclxuICAgICAgcmVjb21tZW5kYXRpb246IFtdLFxyXG4gICAgfTtcclxuXHJcbiAgICBwYXlsb2FkLnRpdGxlID0gaXNzdWVEYXRhLmlzc3VlTmFtZS50cmltKCkgPz8gJyc7XHJcbiAgICBwYXlsb2FkLnJjX2lkID0gaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoXHJcbiAgICAgID8gdGhpcy5nZXRBcnJheUlkKGlzc3VlRGF0YS5pc3N1ZVJDLCAncmNfaWQnKVxyXG4gICAgICA6IFtdO1xyXG4gICAgcGF5bG9hZC5yZXNwb25zaWJpbGl0aWVzX0xpbmtlZCA9IGlzc3VlRGF0YS5yZXNwb25zaWJpbGl0eUxpbmtlZC5sZW5ndGhcclxuICAgICAgPyB0aGlzLmdldEFycmF5SWQoaXNzdWVEYXRhLnJlc3BvbnNpYmlsaXR5TGlua2VkLCAnUmVwb3J0SWQnKVxyXG4gICAgICA6IFtdO1xyXG4gICAgcGF5bG9hZC5jYXRlZ29yeV9pZCA9IGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5Lmxlbmd0aFxyXG4gICAgICA/IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5LCAnY2F0ZWdvcnlfaWQnKVxyXG4gICAgICA6IG51bGw7XHJcbiAgICBwYXlsb2FkLmRlc2NyaXB0aW9uWzBdID0ge1xyXG4gICAgICB0ZXh0OiBpc3N1ZURhdGEuaXNzdWVEZXNjcmlwdGlvbiA/PyAnJyxcclxuICAgICAgYXR0YWNobWVudHM6IGlzc3VlRGF0YT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50c1xyXG4gICAgICAgIDogW10sXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5leGNlcHRpb25fdHlwZSA9IG9wdGlvbkZpZWxkc1N0YXR1cy5FWENFUFRJT05fVFlQRVxyXG4gICAgICA/IE51bWJlcihpc3N1ZURhdGEuZXhjZXB0aW9uVHlwZSlcclxuICAgICAgOiBudWxsO1xyXG4gICAgcGF5bG9hZC5yaXNrX2NsYXNzID0gaXNzdWVEYXRhLmlzc3VlUmlza1JhdGluZyA/PyBudWxsO1xyXG4gICAgcGF5bG9hZC5wcmlvcml0eSA9IG9wdGlvbkZpZWxkc1N0YXR1cy5QUklPUklUWVxyXG4gICAgICA/IE51bWJlcihpc3N1ZURhdGEuaXNzdWVQcmlvcml0eSlcclxuICAgICAgOiBudWxsO1xyXG4gICAgcGF5bG9hZC5hc3NpZ25lZV9pZCA9IGlzc3VlRGF0YS5lbnRydXN0VG9cclxuICAgICAgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuZW50cnVzdFRvLCAnbXlfbWVtYmVyX2lkJylcclxuICAgICAgOiBudWxsO1xyXG4gICAgcGF5bG9hZC5hc3NvY2lhdGVkX3Jpc2tbMF0gPSB7XHJcbiAgICAgIHRleHQ6IG9wdGlvbkZpZWxkc1N0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTXHJcbiAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVBc3NvY2lhdGVkUmlza1xyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGF0dGFjaG1lbnRzOiBbXSxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLnJlY29tbWVuZGF0aW9uWzBdID0ge1xyXG4gICAgICB0ZXh0OiBpc3N1ZURhdGEuaXNzdWVSZWNvbW1lbmRhdGlvbiA/PyAnJyxcclxuICAgICAgYXR0YWNobWVudHM6IGlzc3VlRGF0YT8ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHMubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzXHJcbiAgICAgICAgOiBbXSxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLmV2aWRlbmNlID0ge1xyXG4gICAgICBldmlkZW5jZV9mbGFnOiBvcHRpb25GaWVsZHNTdGF0dXMuRVZJREVOQ0VcclxuICAgICAgICA/IGlzc3VlRGF0YS5ldmlkZW5jZVJlcXVpcmVkXHJcbiAgICAgICAgICA/IDFcclxuICAgICAgICAgIDogMFxyXG4gICAgICAgIDogMCxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLmZyZXF1ZW5jeV9kZXRhaWxzID0ge1xyXG4gICAgICBmcmVxdWVuY3lfdGltZTpcclxuICAgICAgICB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpID8/IERFRkFVTFRfVElNRSxcclxuICAgICAgZnJlcXVlbmN5X2RhdGU6XHJcbiAgICAgICAgZGF0ZVNwbGl0WzBdICtcclxuICAgICAgICAnLScgK1xyXG4gICAgICAgIChkYXRlU3BsaXRbMV0gPCAxMCA/ICcwJyArIGRhdGVTcGxpdFsxXSA6IGRhdGVTcGxpdFsxXSkgK1xyXG4gICAgICAgICctJyArXHJcbiAgICAgICAgKGRhdGVTcGxpdFsyXSA8IDEwID8gJzAnICsgZGF0ZVNwbGl0WzJdIDogZGF0ZVNwbGl0WzJdKSxcclxuICAgIH07XHJcbiAgICBwYXlsb2FkLm92ZXJzZWVyID0ge1xyXG4gICAgICBjY19lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVFxyXG4gICAgICAgID8gaXNzdWVEYXRhLmlzc3VlQ0NVc2Vycy5sZW5ndGhcclxuICAgICAgICAgID8gaXNzdWVEYXRhLmlzc3VlQ0NVc2Vycy5tYXAoKHg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7IG1lbWJlcl9pZDogeC5teV9tZW1iZXJfaWQgPz8gMCwgYWxlcnRfZW5hYmxlOiAxIH07XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICA6IFtdXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgZmFpbHVyZV9jY19lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVFxyXG4gICAgICAgID8gaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLmxlbmd0aFxyXG4gICAgICAgICAgPyBpc3N1ZURhdGEuZmFpbHVyZUNDVXNlcnMubWFwKCh4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4geyBtZW1iZXJfaWQ6IHgubXlfbWVtYmVyX2lkID8/IDAsIGFsZXJ0X2VuYWJsZTogMSB9O1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgOiBbXVxyXG4gICAgICAgIDogW10sXHJcbiAgICB9O1xyXG4gICAgcGF5bG9hZC5jdXN0b21fdGFncyA9IGlzc3VlRGF0YT8uaXNzdWVDdXN0b21UYWc7XHJcbiAgICBwYXlsb2FkLmlzc3VlVHlwZSA9IGlzc3VlRGF0YT8uaXNzdWVUeXBlO1xyXG4gICAgcGF5bG9hZC5saW5rZWRfYXNzZXNzbWVudF9pc3N1ZXMgPSB7XHJcbiAgICAgIHJlc3BfaWQ6IGlzc3VlRGF0YT8ucmVzcElkID8/ICcnLFxyXG4gICAgICBkdWVfZGF0ZV9pZDogaXNzdWVEYXRhPy5kdWVEYXRlSWQgPz8gJycsXHJcbiAgICAgIGFzc2Vzc21lbnRfaWQ6IGlzc3VlRGF0YT8uYXNzZXNzbWVudElkID8/ICcnLFxyXG4gICAgICBxdWVzdGlvbl9pZDogaXNzdWVEYXRhPy5xdWVzdGlvbklkID8/ICcnLFxyXG4gICAgICBhdWRpdGVlX2lkOiBpc3N1ZURhdGE/LmF1ZGl0ZWVJZCA/PyBudWxsLFxyXG4gICAgfTtcclxuICAgIHBheWxvYWQuc291cmNlID0gaXNzdWVEYXRhPy5zb3VyY2U7XHJcblxyXG4gICAgcmV0dXJuIHBheWxvYWQ7XHJcbiAgfVxyXG5cclxuICBhcnJheVRvSWQoYXJyYXk6IGFueSwga2V5OiBhbnkpIHtcclxuICAgIGlmIChhcnJheS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGFycmF5WzBdW2tleV07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRBcnJheUlkKGFycmF5OiBhbnksIGtleTogYW55KSB7XHJcbiAgICByZXR1cm4gYXJyYXkubWFwKChlbGU6IGFueSkgPT4gZWxlW2tleV0pO1xyXG4gIH1cclxuXHJcbiAgY29udmVydEZyb20xMlRvMjRGb3JtYXQgPSAodGltZTEyOiBhbnkpID0+IHtcclxuICAgIGlmICh0aW1lMTIpIHtcclxuICAgICAgY29uc3QgW3NIb3VycywgbWludXRlcywgcGVyaW9kXSA9IHRpbWUxMlxyXG4gICAgICAgIC5tYXRjaCgvKFswLTldezEsMn0pOihbMC05XXsyfSkgKGFtfHBtfEFNfFBNKS8pXHJcbiAgICAgICAgLnNsaWNlKDEpO1xyXG4gICAgICBjb25zdCBQTSA9IHBlcmlvZCA9PT0gJ1BNJztcclxuICAgICAgY29uc3QgaG91cnMgPSAoK3NIb3VycyAlIDEyKSArIChQTSA/IDEyIDogMCk7XHJcblxyXG4gICAgICByZXR1cm4gYCR7KCcwJyArIGhvdXJzKS5zbGljZSgtMil9OiR7bWludXRlc306MDBgO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIERFRkFVTFRfMjRIUjtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb252ZXJ0RnJvbTI0VG8xMkZvcm1hdCh0aW1lOiBhbnkpIHtcclxuICAgIGNvbnN0IGhobW0gPSB0aW1lLnNwbGl0KCc6Jyk7XHJcbiAgICB0aW1lID0gYCR7aGhtbVswXX06JHtoaG1tWzFdfWA7XHJcbiAgICAvLyBDaGVjayBjb3JyZWN0IHRpbWUgZm9ybWF0IGFuZCBzcGxpdCBpbnRvIGNvbXBvbmVudHNcclxuICAgIHRpbWUgPSB0aW1lXHJcbiAgICAgIC50b1N0cmluZygpXHJcbiAgICAgIC5tYXRjaCgvXihbMDFdXFxkfDJbMC0zXSkoOikoWzAtNV1cXGQpKDpbMC01XVxcZCk/JC8pIHx8IFt0aW1lXTtcclxuXHJcbiAgICBpZiAodGltZS5sZW5ndGggPiAxKSB7XHJcbiAgICAgIC8vIElmIHRpbWUgZm9ybWF0IGNvcnJlY3RcclxuICAgICAgdGltZSA9IHRpbWUuc2xpY2UoMSk7IC8vIFJlbW92ZSBmdWxsIHN0cmluZyBtYXRjaCB2YWx1ZVxyXG4gICAgICB0aW1lWzVdID0gK3RpbWVbMF0gPCAxMiA/ICcgQU0nIDogJyBQTSc7IC8vIFNldCBBTS9QTVxyXG4gICAgICB0aW1lWzBdID0gK3RpbWVbMF0gJSAxMiB8fCAxMjsgLy8gQWRqdXN0IGhvdXJzXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGltZS5qb2luKCcnKTsgLy8gcmV0dXJuIGFkanVzdGVkIHRpbWUgb3Igb3JpZ2luYWwgc3RyaW5nXHJcbiAgfVxyXG5cclxuICBhcnJheVRvSURzRHRyaW5nKGFycmF5OiBhbnksIGlkZW50aWZpZXJLZXk6IGFueSkge1xyXG4gICAgY29uc3QgbGlzdCA9IGFycmF5Lm1hcCgoZWw6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gZWxbaWRlbnRpZmllcktleV07XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBsaXN0LmpvaW4oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwbG9hZHMgdGhlIGdpdmVuIGZpbGUgdG8gc2VydmVyXHJcbiAgICogQHBhcmFtIHBheWxvYWQgcGF5bG9hZCBGaWxlIGRhdGEgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcGFyYW0gcGF0aCBwYXRoIFBhdGggb2YgZmlsZSB0byBiZSB1cGxvYWRlZFxyXG4gICAqIEByZXR1cm5zIHJlc3BvbnNlIGFmdGVyIHVwbG9hZGluZyBhIGZpbGVcclxuICAgKi9cclxuICB1cGxvYWRGaWxlcyhwYXlsb2FkOiBhbnksIHBhdGg6IGFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcclxuICAgICAgJ3Rva2VuJyxcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IE9SR19QQVRIID0gYG8vJHtwYXRofWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIHRoaXMuZW52LmZpbGVVcGxvYWRFbmRQb2ludCArIE9SR19QQVRIICsgJyZuZ3N3LWJ5cGFzcz10cnVlJyxcclxuICAgICAgcGF5bG9hZCxcclxuICAgICAgeyBoZWFkZXJzIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRJc3N1ZURldGFpbHMoaXNzdWVJZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxyXG4gICAgICAndG9rZW4nLFxyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZW52LmFzc3VyYW5jZSArICdJc3N1ZS9FZGl0LycgKyBpc3N1ZUlkLCB7IGhlYWRlcnMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMykpO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0RGF0ZSgpIHtcclxuICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnN0IGRheSA9IFN0cmluZyhjdXJyZW50RGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBjb25zdCBtb250aCA9IFN0cmluZyhjdXJyZW50RGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGNvbnN0IHllYXIgPSBjdXJyZW50RGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IGAke2RheX0tJHttb250aH0tJHt5ZWFyfWA7XHJcbiAgICByZXR1cm4gZm9ybWF0dGVkRGF0ZTtcclxuICB9XHJcbn1cclxuIl19
@@ -33724,12 +33724,13 @@ class LogIssueService {
33724
33724
  }
33725
33725
  payloadBuilder(issueData, optionFieldsStatus) {
33726
33726
  const isMoment = moment.isMoment(issueData.issueDueDate);
33727
+ const isDays = dayjs.isDayjs(issueData.issueDueDate);
33727
33728
  console.log('payload builder issueData ==>', issueData, isMoment);
33728
33729
  debugger;
33729
33730
  const selectedDate = isMoment
33730
33731
  ? moment(issueData.issueDueDate)?.toDate()
33731
- : issueData.issueDueDate?._$d
33732
- ? issueData.issueDueDate?._$d
33732
+ : isDays
33733
+ ? dayjs(issueData.issueDueDate?.$d).toDate()
33733
33734
  : new Date(issueData.issueDueDate);
33734
33735
  const dateSplit = [
33735
33736
  selectedDate.getFullYear(),