vcomply-workflow-engine 6.0.55 → 6.0.57

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.
Files changed (23) hide show
  1. package/esm2022/lib/interfaces/responsibilty.interface.mjs +1 -1
  2. package/esm2022/lib/services/common.service.mjs +31 -1
  3. package/esm2022/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +2 -2
  4. package/esm2022/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +7 -2
  5. package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +63 -2
  6. package/esm2022/lib/sharedComponents/program-list/pipes/check-selected-items.pipes.mjs +7 -4
  7. package/esm2022/lib/sharedComponents/program-list/program-list/program-list.component.mjs +3 -4
  8. package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +19 -223
  9. package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +51 -27
  10. package/esm2022/lib/workflow-services/policy.service.mjs +4 -4
  11. package/esm2022/lib/workflow-services/responsibility.service.mjs +33 -20
  12. package/fesm2022/vcomply-workflow-engine.mjs +210 -279
  13. package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
  14. package/lib/interfaces/responsibilty.interface.d.ts +8 -8
  15. package/lib/services/common.service.d.ts +24 -0
  16. package/lib/sharedComponents/frequency/frequency-random/frequency-random.component.d.ts +1 -0
  17. package/lib/sharedComponents/frequency/frequency.service.d.ts +57 -0
  18. package/lib/sharedComponents/program-list/program-list/program-list.component.d.ts +2 -3
  19. package/lib/workflow-compliance/workflow-compliance.component.d.ts +2 -1
  20. package/lib/workflow-policy/workflow-policy.component.d.ts +5 -2
  21. package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
  22. package/lib/workflow-services/responsibility.service.d.ts +12 -1
  23. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2liaWx0eS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9pbnRlcmZhY2VzL3Jlc3BvbnNpYmlsdHkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgRnJlcXVlbmN5IHtcbiAgdHlwZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQXNzaWduZWUge1xuICB0eXBlOiAnYWxsJyB8ICdhbnlfb25lJztcbiAgdXNlcklkOiBudW1iZXJbXTtcbiAgdXNlckdyb3VwSWQ6IG51bWJlcltdO1xufVxuXG5pbnRlcmZhY2UgUmVzcG9uc2liaWxpdHlDZW50ZXIge1xuICB0eXBlOiAnYW55JyB8ICdhbGwnO1xuICBpZDogbnVtYmVyW107XG59XG5cbmludGVyZmFjZSBSZXZpZXdlckZyZXF1ZW5jeSB7XG4gIGR1ZURheXM6IG51bWJlcjtcbiAgZXh0ZW5zaW9uRGF5czogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgUmV2aWV3ZXIge1xuICB0eXBlOiAnc2VxdWVudGlhbCcgfCAnYW55X29uZSc7XG4gIGZyZXF1ZW5jeTogUmV2aWV3ZXJGcmVxdWVuY3k7XG4gIHVzZXJJZDogbnVtYmVyW107XG59XG5cbmludGVyZmFjZSBPdmVyc2Vlckdyb3VwIHtcbiAgdXNlcklkOiBudW1iZXJbXTtcbiAgdXNlckdyb3VwSWQ6IG51bWJlcltdO1xufVxuXG5pbnRlcmZhY2UgT3ZlcnNlZXIge1xuICBzdWNjZXNzOiBPdmVyc2Vlckdyb3VwO1xuICBmYWlsOiBPdmVyc2Vlckdyb3VwO1xufVxuXG5pbnRlcmZhY2UgQ29sbGFib3JhdG9yIHtcbiAgdXNlcklkOiBudW1iZXJbXTtcbiAgdXNlckdyb3VwSWQ6IG51bWJlcltdO1xufVxuXG5pbnRlcmZhY2UgRXZpZGVuY2VGb3JtYXQge1xuICB0eXBlOiAnbGluaycgfCAnZmlsZScgfCAnJztcbiAgZGF0YTogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBFdmlkZW5jZSB7XG4gIHJlcXVpcmVkOiAnMCB8IDEnO1xuICBmb3JtYXQ6IEV2aWRlbmNlRm9ybWF0O1xufVxuXG5pbnRlcmZhY2UgUHJvZ3JhbSB7XG4gIGlkOiBudW1iZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zaWJpbGl0eSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGtleTogbnVtYmVyO1xuICByaXNrQ2xhc3M6ICdsb3cnIHwgJ2xvdy1tZWRpdW0nIHwgJ21lZGl1bS1oaWdoJyB8ICdoaWdoJztcbiAgbm90ZXM6IHN0cmluZztcbiAgb2JqZWN0aXZlOiBzdHJpbmc7XG4gIGZyZXF1ZW5jeTogRnJlcXVlbmN5O1xuICBhc3NpZ25vcklkOiBudW1iZXI7XG4gIGFzc2lnbmVlOiBBc3NpZ25lZTtcbiAgcmVzcG9uc2liaWxpdHlDZW50ZXI6IFJlc3BvbnNpYmlsaXR5Q2VudGVyO1xuICByZXZpZXdlcjogUmV2aWV3ZXI7XG4gIG92ZXJzZWVyOiBPdmVyc2VlcjtcbiAgZXZpZGVuY2U6IEV2aWRlbmNlO1xuICB0YWdzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBwcm9ncmFtOiBQcm9ncmFtO1xuICBncmNPYmplY3RJZDogYW55W107XG4gIGFzc2Vzc21lbnRJZDogc3RyaW5nO1xufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2liaWx0eS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9pbnRlcmZhY2VzL3Jlc3BvbnNpYmlsdHkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgRnJlcXVlbmN5IHtcbiAgdHlwZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQXNzaWduZWUge1xuICB0eXBlOiAnYWxsJyB8ICdhbnlfb25lJztcbiAgdXNlcklkOiBudW1iZXJbXTtcbiAgdXNlckdyb3VwSWQ6IG51bWJlcltdO1xufVxuXG5pbnRlcmZhY2UgUmVzcG9uc2liaWxpdHlDZW50ZXIge1xuICB0eXBlOiAnYW55JyB8ICdhbGwnO1xuICBpZDogbnVtYmVyW107XG59XG5cbmludGVyZmFjZSBSZXZpZXdlckZyZXF1ZW5jeSB7XG4gIGR1ZURheXM6IG51bWJlcjtcbiAgZXh0ZW5zaW9uRGF5czogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgUmV2aWV3ZXIge1xuICB0eXBlOiAnc2VxdWVudGlhbCcgfCAnYW55X29uZSc7XG4gIGZyZXF1ZW5jeTogUmV2aWV3ZXJGcmVxdWVuY3k7XG4gIHVzZXJJZDogbnVtYmVyW107XG59XG5cbmludGVyZmFjZSBPdmVyc2Vlckdyb3VwIHtcbiAgdXNlcklkOiBudW1iZXJbXTtcbiAgdXNlckdyb3VwSWQ6IG51bWJlcltdO1xufVxuXG5pbnRlcmZhY2UgT3ZlcnNlZXIge1xuICBzdWNjZXNzOiBPdmVyc2Vlckdyb3VwO1xuICBmYWlsOiBPdmVyc2Vlckdyb3VwO1xufVxuXG5pbnRlcmZhY2UgQ29sbGFib3JhdG9yIHtcbiAgdXNlcklkOiBudW1iZXJbXTtcbiAgdXNlckdyb3VwSWQ6IG51bWJlcltdO1xufVxuXG5pbnRlcmZhY2UgRXZpZGVuY2VGb3JtYXQge1xuICB0eXBlOiAnbGluaycgfCAnZmlsZScgfCAnJztcbiAgZGF0YTogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBFdmlkZW5jZSB7XG4gIHJlcXVpcmVkOiAnMCB8IDEnO1xuICBmb3JtYXQ6IEV2aWRlbmNlRm9ybWF0O1xufVxuXG5pbnRlcmZhY2UgUHJvZ3JhbSB7XG4gIGlkOiBudW1iZXJbXTtcbiAgdGFnczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zaWJpbGl0eSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGtleTogbnVtYmVyO1xuICByaXNrQ2xhc3M6ICdsb3cnIHwgJ2xvd19tZWRpdW0nIHwgJ21lZGl1bV9oaWdoJyB8ICdoaWdoJztcbiAgbm90ZXM6IHN0cmluZztcbiAgb2JqZWN0aXZlOiBzdHJpbmc7XG4gIGZyZXF1ZW5jeTogRnJlcXVlbmN5O1xuICBhc3NpZ25vcjogbnVtYmVyO1xuICBhc3NpZ25lZTogQXNzaWduZWU7XG4gIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiBSZXNwb25zaWJpbGl0eUNlbnRlciB8IHVuZGVmaW5lZDtcbiAgcmV2aWV3ZXI6IFJldmlld2VyIHwgdW5kZWZpbmVkO1xuICBvdmVyc2VlcjogT3ZlcnNlZXIgfCB1bmRlZmluZWQ7XG4gIGV2aWRlbmNlOiBFdmlkZW5jZTtcbiAgcHJvZ3JhbTogUHJvZ3JhbTtcbiAgZ3JjT2JqZWN0SWQ6IGFueVtdO1xuICBhc3Nlc3NtZW50SWQ6IHN0cmluZztcbn0iXX0=
@@ -45,6 +45,36 @@ export class CommonService {
45
45
  datePickerOverlay = false;
46
46
  }
47
47
  }
48
+ /**
49
+ * Transforms program data to identify added and removed program IDs.
50
+ * This method compares the current program selection with previously linked programs
51
+ * to determine which programs have been added or removed.
52
+ *
53
+ * @param input - An object containing program selections, where each key represents a category
54
+ * and its value is an array of program objects with an 'id' property.
55
+ * @param linkedProgramIds - Array of previously linked program IDs
56
+ *
57
+ * @returns An object containing:
58
+ * - added: Array of program IDs that are newly selected
59
+ * - removed: Array of program IDs that were previously linked but are no longer selected
60
+ *
61
+ * @example
62
+ * // If input is { category1: [{id: 1}, {id: 2}], category2: [{id: 3}] }
63
+ * // And linkedProgramIds is [1, 4]
64
+ * // Returns { added: [2, 3], removed: [4] }
65
+ */
66
+ transformProgramData(input, linkedProgramIds = []) {
67
+ // Flatten all program IDs from input object
68
+ const currentProgramIds = [].concat(...Object.values(input))
69
+ .map((program) => program.id);
70
+ // Use Set for O(1) lookups
71
+ const linkedSet = new Set(linkedProgramIds);
72
+ const currentSet = new Set(currentProgramIds);
73
+ // Find added and removed programs using Set operations
74
+ const added = currentProgramIds.filter((id) => !linkedSet.has(id));
75
+ const removed = linkedProgramIds.filter((id) => !currentSet.has(id));
76
+ return { added, removed };
77
+ }
48
78
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
49
79
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonService, providedIn: 'root' }); }
50
80
  }
@@ -54,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
54
84
  providedIn: 'root',
55
85
  }]
56
86
  }] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDOztBQUtqRSxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUlFLHFCQUFnQixHQUFHO1lBQ2pCLEtBQUssRUFBRSxJQUFJO1lBQ1gsS0FBSyxFQUFFLEVBQUU7WUFDVCxLQUFLLEVBQUUsSUFBSTtZQUNYLFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDO0tBK0RIO0lBOURDLG1CQUFtQixDQUFDLGdCQUFxQjtRQUN2QyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1FBQ2xFLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxNQUFpQixDQUFDO1FBRS9DLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFakMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLEVBQUUsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sMkJBQTJCLEdBQUcsUUFBUSxFQUFFLGFBQWEsQ0FDekQsNEJBQTRCLENBQzdCLENBQUM7UUFDRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsRUFBRSxhQUFhLENBQzlDLDhCQUE4QixDQUMvQixDQUFDO1FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sZUFBZSxHQUNuQixDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWpFLE1BQU0scUJBQXFCLEdBQUcsYUFBYSxLQUFLLGdCQUFnQixDQUFDO1FBQ2pFLE1BQU0sbUJBQW1CLEdBQ3ZCLENBQUMsMkJBQTJCLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sa0JBQWtCLEdBQ3RCLENBQUMsYUFBYTtZQUNkLE9BQU8sYUFBYSxFQUFFLFNBQVMsS0FBSyxRQUFRO1lBQzVDLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUzRCxJQUNFLDJCQUEyQjtZQUMzQixxQkFBcUI7WUFDckIsY0FBYztZQUNkLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGVBQWUsRUFDZjtZQUNBLElBQUksQ0FBQyxxQkFBcUIsQ0FDeEIsYUFBYSxFQUNiLEtBQUssRUFDTCxnQkFBZ0IsRUFBRSxPQUFPLEVBQ3pCLGdCQUFnQixFQUFFLFNBQVMsQ0FDNUIsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxxQkFBcUIsQ0FDM0IsTUFBVyxFQUNYLGFBQXlCLEVBQ3pCLGlCQUEwQixFQUMxQixVQUFlO1FBRWYsSUFDRSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMvQyxVQUFVLEVBQUUsaUJBQWlCLEVBQzdCO1lBQ0EsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN6QixpQkFBaUIsR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDOytHQXJFVSxhQUFhO21IQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDb21tb25TZXJ2aWNlIHtcbiAgZGF0ZVBpY2tlck9iamVjdCA9IHtcbiAgICBldmVudDogbnVsbCxcbiAgICBjbGFzczogJycsXG4gICAgcG9wdXA6IG51bGwsXG4gICAgY29tcG9uZW50OiBudWxsLFxuICAgIG92ZXJsYXk6IGZhbHNlLFxuICB9O1xuICBoYW5kbGVEb2N1bWVudENsaWNrKGRhdGVQaWNrZXJPYmplY3Q6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgZXZlbnQsIHBvcHVwLCBjbGFzczogY2xhc3NOYW1lIH0gPSBkYXRlUGlja2VyT2JqZWN0IHx8IHt9O1xuICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBldmVudD8udGFyZ2V0IGFzIEVsZW1lbnQ7XG5cbiAgICBpZiAoIXRhcmdldEVsZW1lbnQpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGRhdGVJbnB1dEVsZW1lbnQgPSBkb2N1bWVudD8uZ2V0RWxlbWVudEJ5SWQoY2xhc3NOYW1lKTtcbiAgICBjb25zdCBkYXRlUGlja2VyQ2FsZW5kYXJDb250YWluZXIgPSBkb2N1bWVudD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICcuZHAtZGF5LWNhbGVuZGFyLWNvbnRhaW5lcidcbiAgICApO1xuICAgIGNvbnN0IG1vbnRoWWVhckVsZW1lbnQgPSBkb2N1bWVudD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICcuZHAtbW9udGgtY2FsZW5kYXItY29udGFpbmVyJ1xuICAgICk7XG5cbiAgICBjb25zdCBpc05vdE1vbnRoWWVhckVsZW1lbnQgPSAhbW9udGhZZWFyRWxlbWVudD8uY29udGFpbnModGFyZ2V0RWxlbWVudCk7XG4gICAgY29uc3QgaXNPdXRzaWRlUG9wdXAgPSAhcG9wdXA/Lm5hdGl2ZUVsZW1lbnQ/LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpO1xuICAgIGNvbnN0IGlzT3V0c2lkZVBvcHVwMiA9XG4gICAgICAhcG9wdXA/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTmFtZS5pbmNsdWRlcygnZHAtY2FsZW5kYXItbW9udGgnKTtcblxuICAgIGNvbnN0IGlzTm90RGF0ZUlucHV0RWxlbWVudCA9IHRhcmdldEVsZW1lbnQgIT09IGRhdGVJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgaXNOb3RJbnNpZGVDYWxlbmRhciA9XG4gICAgICAhZGF0ZVBpY2tlckNhbGVuZGFyQ29udGFpbmVyPy5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcbiAgICBjb25zdCBpc05vdENhbGVuZGFyTW9udGggPVxuICAgICAgIXRhcmdldEVsZW1lbnQgfHxcbiAgICAgIHR5cGVvZiB0YXJnZXRFbGVtZW50Py5jbGFzc05hbWUgIT09ICdzdHJpbmcnIHx8XG4gICAgICAhdGFyZ2V0RWxlbWVudD8uY2xhc3NOYW1lPy5pbmNsdWRlcygnZHAtY2FsZW5kYXItbW9udGgnKTtcblxuICAgIGlmIChcbiAgICAgIGRhdGVQaWNrZXJDYWxlbmRhckNvbnRhaW5lciAmJlxuICAgICAgaXNOb3RNb250aFllYXJFbGVtZW50ICYmXG4gICAgICBpc091dHNpZGVQb3B1cCAmJlxuICAgICAgaXNOb3REYXRlSW5wdXRFbGVtZW50ICYmXG4gICAgICBpc05vdEluc2lkZUNhbGVuZGFyICYmXG4gICAgICBpc05vdENhbGVuZGFyTW9udGggJiZcbiAgICAgIGlzT3V0c2lkZVBvcHVwMlxuICAgICkge1xuICAgICAgdGhpcy5jbG9zZURhdGVQaWNrZXJJZk9wZW4oXG4gICAgICAgIHRhcmdldEVsZW1lbnQsXG4gICAgICAgIHBvcHVwLFxuICAgICAgICBkYXRlUGlja2VyT2JqZWN0Py5vdmVybGF5LFxuICAgICAgICBkYXRlUGlja2VyT2JqZWN0Py5jb21wb25lbnRcbiAgICAgICk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlRGF0ZVBpY2tlcklmT3BlbihcbiAgICB0YXJnZXQ6IGFueSxcbiAgICBvcGVuZWRFbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIGRhdGVQaWNrZXJPdmVybGF5OiBib29sZWFuLFxuICAgIERhdGVQaWNrZXI6IGFueVxuICApOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhb3BlbmVkRWxlbWVudD8ubmF0aXZlRWxlbWVudD8uY29udGFpbnModGFyZ2V0KSAmJlxuICAgICAgRGF0ZVBpY2tlcj8uYXJlQ2FsZW5kYXJzU2hvd25cbiAgICApIHtcbiAgICAgIERhdGVQaWNrZXI/LmFwaT8uY2xvc2UoKTtcbiAgICAgIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDOztBQUtqRSxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUlFLHFCQUFnQixHQUFHO1lBQ2pCLEtBQUssRUFBRSxJQUFJO1lBQ1gsS0FBSyxFQUFFLEVBQUU7WUFDVCxLQUFLLEVBQUUsSUFBSTtZQUNYLFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDO0tBaUdIO0lBaEdDLG1CQUFtQixDQUFDLGdCQUFxQjtRQUN2QyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1FBQ2xFLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxNQUFpQixDQUFDO1FBRS9DLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFakMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLEVBQUUsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sMkJBQTJCLEdBQUcsUUFBUSxFQUFFLGFBQWEsQ0FDekQsNEJBQTRCLENBQzdCLENBQUM7UUFDRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsRUFBRSxhQUFhLENBQzlDLDhCQUE4QixDQUMvQixDQUFDO1FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sZUFBZSxHQUNuQixDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWpFLE1BQU0scUJBQXFCLEdBQUcsYUFBYSxLQUFLLGdCQUFnQixDQUFDO1FBQ2pFLE1BQU0sbUJBQW1CLEdBQ3ZCLENBQUMsMkJBQTJCLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sa0JBQWtCLEdBQ3RCLENBQUMsYUFBYTtZQUNkLE9BQU8sYUFBYSxFQUFFLFNBQVMsS0FBSyxRQUFRO1lBQzVDLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUzRCxJQUNFLDJCQUEyQjtZQUMzQixxQkFBcUI7WUFDckIsY0FBYztZQUNkLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGVBQWUsRUFDZjtZQUNBLElBQUksQ0FBQyxxQkFBcUIsQ0FDeEIsYUFBYSxFQUNiLEtBQUssRUFDTCxnQkFBZ0IsRUFBRSxPQUFPLEVBQ3pCLGdCQUFnQixFQUFFLFNBQVMsQ0FDNUIsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxxQkFBcUIsQ0FDM0IsTUFBVyxFQUNYLGFBQXlCLEVBQ3pCLGlCQUEwQixFQUMxQixVQUFlO1FBRWYsSUFDRSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMvQyxVQUFVLEVBQUUsaUJBQWlCLEVBQzdCO1lBQ0EsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN6QixpQkFBaUIsR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7O01BaUJFO0lBQ0gsb0JBQW9CLENBQUMsS0FBNEMsRUFBRSxtQkFBNkIsRUFBRTtRQUNoRyw0Q0FBNEM7UUFDNUMsTUFBTSxpQkFBaUIsR0FBSSxFQUF1QixDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDL0UsR0FBRyxDQUFDLENBQUMsT0FBdUIsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWhELDJCQUEyQjtRQUMzQixNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFOUMsdURBQXVEO1FBQ3ZELE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0UsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU3RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7K0dBdkdVLGFBQWE7bUhBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbW1vblNlcnZpY2Uge1xuICBkYXRlUGlja2VyT2JqZWN0ID0ge1xuICAgIGV2ZW50OiBudWxsLFxuICAgIGNsYXNzOiAnJyxcbiAgICBwb3B1cDogbnVsbCxcbiAgICBjb21wb25lbnQ6IG51bGwsXG4gICAgb3ZlcmxheTogZmFsc2UsXG4gIH07XG4gIGhhbmRsZURvY3VtZW50Q2xpY2soZGF0ZVBpY2tlck9iamVjdDogYW55KTogYm9vbGVhbiB7XG4gICAgY29uc3QgeyBldmVudCwgcG9wdXAsIGNsYXNzOiBjbGFzc05hbWUgfSA9IGRhdGVQaWNrZXJPYmplY3QgfHwge307XG4gICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGV2ZW50Py50YXJnZXQgYXMgRWxlbWVudDtcblxuICAgIGlmICghdGFyZ2V0RWxlbWVudCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgZGF0ZUlucHV0RWxlbWVudCA9IGRvY3VtZW50Py5nZXRFbGVtZW50QnlJZChjbGFzc05hbWUpO1xuICAgIGNvbnN0IGRhdGVQaWNrZXJDYWxlbmRhckNvbnRhaW5lciA9IGRvY3VtZW50Py5xdWVyeVNlbGVjdG9yKFxuICAgICAgJy5kcC1kYXktY2FsZW5kYXItY29udGFpbmVyJ1xuICAgICk7XG4gICAgY29uc3QgbW9udGhZZWFyRWxlbWVudCA9IGRvY3VtZW50Py5xdWVyeVNlbGVjdG9yKFxuICAgICAgJy5kcC1tb250aC1jYWxlbmRhci1jb250YWluZXInXG4gICAgKTtcblxuICAgIGNvbnN0IGlzTm90TW9udGhZZWFyRWxlbWVudCA9ICFtb250aFllYXJFbGVtZW50Py5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcbiAgICBjb25zdCBpc091dHNpZGVQb3B1cCA9ICFwb3B1cD8ubmF0aXZlRWxlbWVudD8uY29udGFpbnModGFyZ2V0RWxlbWVudCk7XG4gICAgY29uc3QgaXNPdXRzaWRlUG9wdXAyID1cbiAgICAgICFwb3B1cD8ubmF0aXZlRWxlbWVudD8uY2xhc3NOYW1lLmluY2x1ZGVzKCdkcC1jYWxlbmRhci1tb250aCcpO1xuXG4gICAgY29uc3QgaXNOb3REYXRlSW5wdXRFbGVtZW50ID0gdGFyZ2V0RWxlbWVudCAhPT0gZGF0ZUlucHV0RWxlbWVudDtcbiAgICBjb25zdCBpc05vdEluc2lkZUNhbGVuZGFyID1cbiAgICAgICFkYXRlUGlja2VyQ2FsZW5kYXJDb250YWluZXI/LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpO1xuICAgIGNvbnN0IGlzTm90Q2FsZW5kYXJNb250aCA9XG4gICAgICAhdGFyZ2V0RWxlbWVudCB8fFxuICAgICAgdHlwZW9mIHRhcmdldEVsZW1lbnQ/LmNsYXNzTmFtZSAhPT0gJ3N0cmluZycgfHxcbiAgICAgICF0YXJnZXRFbGVtZW50Py5jbGFzc05hbWU/LmluY2x1ZGVzKCdkcC1jYWxlbmRhci1tb250aCcpO1xuXG4gICAgaWYgKFxuICAgICAgZGF0ZVBpY2tlckNhbGVuZGFyQ29udGFpbmVyICYmXG4gICAgICBpc05vdE1vbnRoWWVhckVsZW1lbnQgJiZcbiAgICAgIGlzT3V0c2lkZVBvcHVwICYmXG4gICAgICBpc05vdERhdGVJbnB1dEVsZW1lbnQgJiZcbiAgICAgIGlzTm90SW5zaWRlQ2FsZW5kYXIgJiZcbiAgICAgIGlzTm90Q2FsZW5kYXJNb250aCAmJlxuICAgICAgaXNPdXRzaWRlUG9wdXAyXG4gICAgKSB7XG4gICAgICB0aGlzLmNsb3NlRGF0ZVBpY2tlcklmT3BlbihcbiAgICAgICAgdGFyZ2V0RWxlbWVudCxcbiAgICAgICAgcG9wdXAsXG4gICAgICAgIGRhdGVQaWNrZXJPYmplY3Q/Lm92ZXJsYXksXG4gICAgICAgIGRhdGVQaWNrZXJPYmplY3Q/LmNvbXBvbmVudFxuICAgICAgKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VEYXRlUGlja2VySWZPcGVuKFxuICAgIHRhcmdldDogYW55LFxuICAgIG9wZW5lZEVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgZGF0ZVBpY2tlck92ZXJsYXk6IGJvb2xlYW4sXG4gICAgRGF0ZVBpY2tlcjogYW55XG4gICk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICFvcGVuZWRFbGVtZW50Py5uYXRpdmVFbGVtZW50Py5jb250YWlucyh0YXJnZXQpICYmXG4gICAgICBEYXRlUGlja2VyPy5hcmVDYWxlbmRhcnNTaG93blxuICAgICkge1xuICAgICAgRGF0ZVBpY2tlcj8uYXBpPy5jbG9zZSgpO1xuICAgICAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAgLyoqXG4gICAqIFRyYW5zZm9ybXMgcHJvZ3JhbSBkYXRhIHRvIGlkZW50aWZ5IGFkZGVkIGFuZCByZW1vdmVkIHByb2dyYW0gSURzLlxuICAgKiBUaGlzIG1ldGhvZCBjb21wYXJlcyB0aGUgY3VycmVudCBwcm9ncmFtIHNlbGVjdGlvbiB3aXRoIHByZXZpb3VzbHkgbGlua2VkIHByb2dyYW1zXG4gICAqIHRvIGRldGVybWluZSB3aGljaCBwcm9ncmFtcyBoYXZlIGJlZW4gYWRkZWQgb3IgcmVtb3ZlZC5cbiAgICogXG4gICAqIEBwYXJhbSBpbnB1dCAtIEFuIG9iamVjdCBjb250YWluaW5nIHByb2dyYW0gc2VsZWN0aW9ucywgd2hlcmUgZWFjaCBrZXkgcmVwcmVzZW50cyBhIGNhdGVnb3J5XG4gICAqICAgICAgICAgICAgICAgYW5kIGl0cyB2YWx1ZSBpcyBhbiBhcnJheSBvZiBwcm9ncmFtIG9iamVjdHMgd2l0aCBhbiAnaWQnIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gbGlua2VkUHJvZ3JhbUlkcyAtIEFycmF5IG9mIHByZXZpb3VzbHkgbGlua2VkIHByb2dyYW0gSURzXG4gICAqIFxuICAgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZzpcbiAgICogICAgICAgICAgLSBhZGRlZDogQXJyYXkgb2YgcHJvZ3JhbSBJRHMgdGhhdCBhcmUgbmV3bHkgc2VsZWN0ZWRcbiAgICogICAgICAgICAgLSByZW1vdmVkOiBBcnJheSBvZiBwcm9ncmFtIElEcyB0aGF0IHdlcmUgcHJldmlvdXNseSBsaW5rZWQgYnV0IGFyZSBubyBsb25nZXIgc2VsZWN0ZWRcbiAgICogXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIElmIGlucHV0IGlzIHsgY2F0ZWdvcnkxOiBbe2lkOiAxfSwge2lkOiAyfV0sIGNhdGVnb3J5MjogW3tpZDogM31dIH1cbiAgICogLy8gQW5kIGxpbmtlZFByb2dyYW1JZHMgaXMgWzEsIDRdXG4gICAqIC8vIFJldHVybnMgeyBhZGRlZDogWzIsIDNdLCByZW1vdmVkOiBbNF0gfVxuICAgKi9cbiAgdHJhbnNmb3JtUHJvZ3JhbURhdGEoaW5wdXQ6IFJlY29yZDxzdHJpbmcsIEFycmF5PHsgaWQ6IG51bWJlciB9Pj4sIGxpbmtlZFByb2dyYW1JZHM6IG51bWJlcltdID0gW10pOiB7IGFkZGVkOiBudW1iZXJbXTsgcmVtb3ZlZDogbnVtYmVyW10gfSB7XG4gICAgLy8gRmxhdHRlbiBhbGwgcHJvZ3JhbSBJRHMgZnJvbSBpbnB1dCBvYmplY3RcbiAgICBjb25zdCBjdXJyZW50UHJvZ3JhbUlkcyA9IChbXSBhcyB7IGlkOiBudW1iZXIgfVtdKS5jb25jYXQoLi4uT2JqZWN0LnZhbHVlcyhpbnB1dCkpXG4gICAgICAubWFwKChwcm9ncmFtOiB7IGlkOiBudW1iZXIgfSkgPT4gcHJvZ3JhbS5pZCk7XG5cbiAgICAvLyBVc2UgU2V0IGZvciBPKDEpIGxvb2t1cHNcbiAgICBjb25zdCBsaW5rZWRTZXQgPSBuZXcgU2V0KGxpbmtlZFByb2dyYW1JZHMpO1xuICAgIGNvbnN0IGN1cnJlbnRTZXQgPSBuZXcgU2V0KGN1cnJlbnRQcm9ncmFtSWRzKTtcblxuICAgIC8vIEZpbmQgYWRkZWQgYW5kIHJlbW92ZWQgcHJvZ3JhbXMgdXNpbmcgU2V0IG9wZXJhdGlvbnNcbiAgICBjb25zdCBhZGRlZCA9IGN1cnJlbnRQcm9ncmFtSWRzLmZpbHRlcigoaWQ6IG51bWJlcikgPT4gIWxpbmtlZFNldC5oYXMoaWQpKTtcbiAgICBjb25zdCByZW1vdmVkID0gbGlua2VkUHJvZ3JhbUlkcy5maWx0ZXIoKGlkOiBudW1iZXIpID0+ICFjdXJyZW50U2V0LmhhcyhpZCkpO1xuXG4gICAgcmV0dXJuIHsgYWRkZWQsIHJlbW92ZWQgfTtcbiAgfVxufVxuIl19
@@ -146,7 +146,7 @@ export class FrequencyOneTimeComponent {
146
146
  this.frequencyInfo.timeIn24Hr = this.frequencyService.timeFrom12hTo24h(this.oneTimeStartTime);
147
147
  this.frequencyInfo.failed_time_utc = 0;
148
148
  this.frequencyInfo.reportId = 0;
149
- this.frequencyInfo.startFrom = this.todayDate;
149
+ this.frequencyInfo.startFrom = new Date(this.todayDate).getTime() / 1000;
150
150
  this.frequencyDetails.emit(this.frequencyInfo);
151
151
  }
152
152
  timeSelection(event) {
@@ -187,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
187
187
  type: HostListener,
188
188
  args: ['document:click', ['$event']]
189
189
  }] } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LW9uZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5L2ZyZXF1ZW5jeS1vbmUtdGltZS9mcmVxdWVuY3ktb25lLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uZS10aW1lL2ZyZXF1ZW5jeS1vbmUtdGltZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7O0FBUWpFLE1BQU0sT0FBTyx5QkFBeUI7SUEyQnBDLFlBQ1UsZ0JBQWtDLEVBQ2xDLGFBQTRCO1FBRDVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUEzQnRDLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBQzVCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixxQkFBZ0IsR0FBUSxZQUFZLENBQUM7UUFDckMsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsZUFBVSxHQUFzQjtZQUM5QixHQUFHLEVB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YkF3QkgsVUFBVSw2QkNqRDdDLHdySUFxSUE7OzRGRDVHYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCO21JQUtULFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFrQmQsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRVAsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkE0SjVELGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERhdGVQaWNrZXJDb21wb25lbnQsXG4gIFNpbmdsZUNhbGVuZGFyVmFsdWUsXG4gIElEYXRlUGlja2VyQ29uZmlnLFxufSBmcm9tICduZzItZGF0ZS1waWNrZXInO1xuaW1wb3J0IHsgRnJlcXVlbmN5U2VydmljZSB9IGZyb20gJy4uL2ZyZXF1ZW5jeS5zZXJ2aWNlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XG5pbXBvcnQgeyBERUZBVUxUX1RJTUUgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvdGltZS5jb25zdGFudHMnO1xuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1vbmUtdGltZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktb25lLXRpbWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktb25lLXRpbWUuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5T25lVGltZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInKSBkYXRlUGlja2VyITogRGF0ZVBpY2tlckNvbXBvbmVudDtcbiAgREVGQVVMVF9USU1FID0gREVGQVVMVF9USU1FO1xuICBkYXRlcGlja2VyT3ZlcmxheSA9IGZhbHNlO1xuICBzaG93RGF0ZUVycm9yID0gZmFsc2U7XG4gIG9uZVRpbWVGYWlsZWQgPSA1O1xuICBvbmVUaW1lV2luZG93ID0gMTU7XG4gIG9uZVRpbWVTdGFydFRpbWU6IGFueSA9IERFRkFVTFRfVElNRTtcbiAgb25lVGltZVNlbGVjdGVkID0gJyc7XG4gIGRhdGVDb25maWc6IElEYXRlUGlja2VyQ29uZmlnID0ge1xuICAgIG1pbjogJycsXG4gIH07XG4gIHRvZGF5RGF0ZSA9IG5ldyBEYXRlKCk7XG4gIGZyZXF1ZW5jeUluZm86IGFueTtcbiAgc2hvcnRNb250aDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBkYXRlT2JqZWN0RGF0YSA9IG5ldyBEYXRlKCk7XG4gIG1pbkRhdGUgPSBtb21lbnQoRGF0ZS5ub3coKSkuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyk/LnNwbGl0KCcgJylbMF07XG4gIHNlbGVjdGVkRGF0ZTogYW55O1xuXG4gIEBJbnB1dCgpIHBhZ2VUeXBlOiAncmVzcG9uc2liaWxpdHknIHwgJ3BvbGljeScgPSAncmVzcG9uc2liaWxpdHknO1xuICBASW5wdXQoKSBmcmVxdWVuY3lEYXRhOiBhbnk7XG4gIEBJbnB1dCgpIG1vZGU6IGFueSA9ICcnO1xuXG4gIEBPdXRwdXQoKSBmcmVxdWVuY3lEZXRhaWxzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSlcbiAgZGF0ZVBpY2tlclBvcFVwITogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGVDb25maWcgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZGF0ZUNvbmZpZztcbiAgICB0aGlzLmRhdGVDb25maWcubWluID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmZvcm1hdERhdGUoKTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8gPSBPYmplY3QuYXNzaWduKHRoaXMuZnJlcXVlbmN5U2VydmljZS5mcmVxdWVuY3lJbmZvKTtcbiAgICB0aGlzLnNob3J0TW9udGggPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheS5tYXAoKG1vbnRoKSA9PlxuICAgICAgbW9udGguc3Vic3RyaW5nKDAsIDMpXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG1vbWVudCh0aGlzLnRvZGF5RGF0ZSk7XG4gICAgaWYgKFxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4gIT0gJycgJiZcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+JylbMF0gPT09ICcwJ1xuICAgICkge1xuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdldE9uZVRpbWVGcmVxdWVuY3koKTtcbiAgICB9XG4gIH1cblxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcbiAgICBjb25zdCBwYXR0ZXJuSW5mbyA9IHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+Jyk7XG4gICAgY29uc3QgdGltZVN0YW1wID0gbW9tZW50KFxuICAgICAgYCR7cGF0dGVybkluZm9bM119LSR7cGF0dGVybkluZm9bMl19LSR7cGF0dGVybkluZm9bMV19ICR7dGhpcy5mcmVxdWVuY3lEYXRhLmZhaWxlZFRpbWV9YCxcbiAgICAgICdERC1NTS1ZWVlZIEhIOm1tIGEnXG4gICAgKS51bml4KCk7XG4gICAgdGhpcy50b2RheURhdGUgPSBuZXcgRGF0ZSh0aW1lU3RhbXAgKiAxMDAwKTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG1vbWVudCh0aGlzLnRvZGF5RGF0ZSk7XG4gICAgdGhpcy5vbmVUaW1lRmFpbGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhLmZhaWxlZDtcbiAgICB0aGlzLm9uZVRpbWVXaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGEud2luZG93O1xuICAgIHRoaXMub25lVGltZVN0YXJ0VGltZSA9IHRoaXMuZnJlcXVlbmN5RGF0YS5mYWlsZWRUaW1lO1xuICAgIHRoaXMub25lVGltZVNlbGVjdGVkID1cbiAgICAgIHBhdHRlcm5JbmZvWzFdICsgJ34nICsgcGF0dGVybkluZm9bMl0gKyAnficgKyBwYXR0ZXJuSW5mb1szXTtcbiAgICB0aGlzLmRhdGVPYmplY3REYXRhID0gbmV3IERhdGUoXG4gICAgICBtb21lbnQoXG4gICAgICAgIHRoaXMub25lVGltZVNlbGVjdGVkICsgJyAnICsgdGhpcy5vbmVUaW1lU3RhcnRUaW1lLFxuICAgICAgICAnWVlZWX5NTX5ERCBISDptbTpzcydcbiAgICAgICkudW5peCgpICogMTAwMFxuICAgICk7XG4gICAgdGhpcy5nZXRPbmVUaW1lRnJlcXVlbmN5KCk7XG4gIH1cblxuICBvcGVuRGF0ZVBpY2tlcigpIHtcbiAgICBjb25zdCBuZXdEYXRlID0gbW9tZW50KHRoaXMudG9kYXlEYXRlKTtcbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8ubW92ZUNhbGVuZGFyVG8obmV3RGF0ZSBhcyBTaW5nbGVDYWxlbmRhclZhbHVlKTtcbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8ub3BlbigpO1xuICAgIHRoaXMuZGF0ZXBpY2tlck92ZXJsYXkgPSB0cnVlO1xuICB9XG4gIGNsb3NlRGF0ZXBpY2tlcigpIHtcbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8uY2xvc2UoKTtcbiAgICB0aGlzLmRhdGVwaWNrZXJPdmVybGF5ID0gZmFsc2U7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcbiAgICAgIHRoaXMub25lVGltZVdpbmRvdyA9IGV2ZW50Py52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbmVUaW1lRmFpbGVkID0gZXZlbnQ/LnZhbHVlO1xuICAgIH1cbiAgICB0aGlzLmNsb3NlRGF0ZXBpY2tlcigpO1xuICAgIHRoaXMuZ2V0T25lVGltZUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgb25UaW1lQ2hhbmdlZChldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5vbmVUaW1lU3RhcnRUaW1lID0gZXZlbnQ7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmRhdGVPYmplY3REYXRhID09ICdvYmplY3QnKSB7XG4gICAgICB0aGlzLmRhdGVPYmplY3REYXRhID0gbW9tZW50KHRoaXMuZGF0ZU9iamVjdERhdGEpPy50b0RhdGUoKTtcbiAgICB9XG4gICAgbGV0IHRpbWVTdGFtcCA9IG1vbWVudChcbiAgICAgIHRoaXMuZGF0ZU9iamVjdERhdGEuZ2V0RGF0ZSgpICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgKHRoaXMuZGF0ZU9iamVjdERhdGEuZ2V0TW9udGgoKSArIDEpICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgdGhpcy5kYXRlT2JqZWN0RGF0YS5nZXRGdWxsWWVhcigpICtcbiAgICAgICAgJyAnICtcbiAgICAgICAgdGhpcy5vbmVUaW1lU3RhcnRUaW1lLFxuICAgICAgJ0RELU1NLVlZWVkgaGg6bW0gYSdcbiAgICApLnVuaXgoKTtcbiAgICB0aGlzLm9uZVRpbWVTZWxlY3RlZCA9IG1vbWVudCh0aW1lU3RhbXAgKiAxMDAwKVxuICAgICAgLmZvcm1hdCgnWVlZWX5NTX5ERFRISDptbTpzc1onKVxuICAgICAgLnNwbGl0KCdUJylbMF07XG4gICAgdGhpcy5nZXRPbmVUaW1lRnJlcXVlbmN5KCk7XG4gIH1cblxuICBkYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IGV2ZW50Py5kYXRlO1xuICAgIGNvbnN0IG5ld0RhdGUgPSBtb21lbnQoZXZlbnQ/LmRhdGU/LiRkKS51bml4KCk7XG4gICAgdGhpcy5kYXRlT2JqZWN0RGF0YSA9IG5ldyBEYXRlKG5ld0RhdGUgKiAxMDAwKTtcbiAgICB0aGlzLnRvZGF5RGF0ZSA9IHRoaXMuZGF0ZU9iamVjdERhdGE7XG4gICAgbGV0IHRpbWVTdGFtcCA9IG1vbWVudChcbiAgICAgIHRoaXMuZGF0ZU9iamVjdERhdGEuZ2V0RGF0ZSgpICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgKHRoaXMuZGF0ZU9iamVjdERhdGEuZ2V0TW9udGgoKSArIDEpICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgdGhpcy5kYXRlT2JqZWN0RGF0YS5nZXRGdWxsWWVhcigpICtcbiAgICAgICAgJyAnICtcbiAgICAgICAgdGhpcy5vbmVUaW1lU3RhcnRUaW1lLFxuICAgICAgJ0RELU1NLVlZWVkgaGg6bW0gYSdcbiAgICApLnVuaXgoKTtcbiAgICB0aGlzLm9uZVRpbWVTZWxlY3RlZCA9IGV2ZW50LmRhdGVcbiAgICAgIC5mb3JtYXQoJ1lZWVl+TU1+RERUSEg6bW06c3NaJylcbiAgICAgIC5zcGxpdCgnVCcpWzBdO1xuXG4gICAgdGhpcy5nZXRPbmVUaW1lRnJlcXVlbmN5KCk7XG4gIH1cblxuICBnZXRPbmVUaW1lRnJlcXVlbmN5KCkge1xuICAgIGlmICh0aGlzLm9uZVRpbWVTZWxlY3RlZCAhPT0gJycpIHtcbiAgICAgIHRoaXMudG9kYXlEYXRlID0gbW9tZW50KHRoaXMudG9kYXlEYXRlKT8udG9EYXRlKCk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbW9tZW50KHRoaXMudG9kYXlEYXRlKTtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wbGFjZWhvbGRlciA9XG4gICAgICAnT25lIFRpbWUgJyArXG4gICAgICB0aGlzLnRvZGF5RGF0ZS5nZXREYXRlKCkgK1xuICAgICAgJyAnICtcbiAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnRvZGF5RGF0ZS5nZXRNb250aCgpXSArXG4gICAgICAnICcgK1xuICAgICAgdGhpcy50b2RheURhdGUuZ2V0RnVsbFllYXIoKSArXG4gICAgICAnIGJ5ICcgK1xuICAgICAgdGhpcy5vbmVUaW1lU3RhcnRUaW1lO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wYXR0ZXJuID1cbiAgICAgIDAgK1xuICAgICAgJ34nICtcbiAgICAgICh0aGlzLm9uZVRpbWVTZWxlY3RlZCA9PT0gJydcbiAgICAgICAgPyBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgK1xuICAgICAgICAgICd+JyArXG4gICAgICAgICAgKG5ldyBEYXRlKCkuZ2V0TW9udGgoKSArIDEpICtcbiAgICAgICAgICAnficgK1xuICAgICAgICAgIG5ldyBEYXRlKCkuZ2V0RGF0ZSgpXG4gICAgICAgIDogdGhpcy5vbmVUaW1lU2VsZWN0ZWQpO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jYXNlID0gJ29uZVRpbWUnO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRBZnRlciA9IHRoaXMub25lVGltZUZhaWxlZDtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ud2luZG93ID0gdGhpcy5vbmVUaW1lV2luZG93O1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4xMmhyID0gdGhpcy5vbmVUaW1lU3RhcnRUaW1lO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4yNEhyID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLnRpbWVGcm9tMTJoVG8yNGgoXG4gICAgICB0aGlzLm9uZVRpbWVTdGFydFRpbWVcbiAgICApO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRfdGltZV91dGMgPSAwO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yZXBvcnRJZCA9IDA7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnN0YXJ0RnJvbSA9IHRoaXMudG9kYXlEYXRlO1xuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscy5lbWl0KHRoaXMuZnJlcXVlbmN5SW5mbyk7XG4gIH1cblxuICB0aW1lU2VsZWN0aW9uKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gZXZlbnQuc2VsZWN0ZWRWYWx1ZTtcbiAgICB0aGlzLm9uVGltZUNoYW5nZWQoc2VsZWN0ZWRWYWx1ZSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIGRvY3VtZW50Q2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGVQaWNrZXJPYmplY3QgPSB7XG4gICAgICBldmVudDogZXZlbnQsXG4gICAgICBjbGFzczogJ2ZyZXF1ZW5jeS1kYXRlJyxcbiAgICAgIHBvcHVwOiB0aGlzLmRhdGVQaWNrZXJQb3BVcCxcbiAgICAgIGNvbXBvbmVudDogdGhpcy5kYXRlUGlja2VyLFxuICAgICAgb3ZlcmxheTogdGhpcy5kYXRlcGlja2VyT3ZlcmxheSxcbiAgICB9O1xuICAgIHRoaXMuY29tbW9uU2VydmljZS5oYW5kbGVEb2N1bWVudENsaWNrKGRhdGVQaWNrZXJPYmplY3QpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSAhPT0gJ3BvbGljeSdcIj5cbiAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5cbiAgICBEVUUgREFURSBGUkVRVUVOQ1k6XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LW9uZXRpbWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LW9uZXRpbWUtaW5uZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wLTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLWZpZWxkIHZ4LW0tMCB2eC1tci0zXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY2FsZW5kYXItaWNvbiB2eC1mcy0xNiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTNcIlxuICAgICAgICAgID4mI3hlOTJkOzwvaVxuICAgICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBpZD1cImZyZXF1ZW5jeS1kYXRlXCJcbiAgICAgICAgICBbdmFsdWVdPVwidG9kYXlEYXRlIHwgZGF0ZSA6ICdkZCBNTU0geXl5eSdcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0b2RheURhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5EYXRlUGlja2VyKClcIlxuICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInRpbWUtcGlja2VyLWdyb3VwIHZ4LWQtZmxleFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ0aW1lLWZpZWxkXCJcbiAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgKGNsaWNrKT1cInRpbWVQaWNrZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJpbnB1dFwiIFtwbGFjZWhvbGRlcl09XCJvbmVUaW1lU3RhcnRUaW1lXCIgcmVhZG9ubHkgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvY2staWNvbiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHRcIj4mI3hlOTU1OzwvaT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxhcHAtcG9wb3ZlciAjdGltZVBpY2tlciBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgICAgPGFwcC10aW1lLXBpY2tlclxuICAgICAgICAgICAgW3RpbWVdPVwib25lVGltZVN0YXJ0VGltZVwiXG4gICAgICAgICAgICAob25UaW1lU2VsZWN0aW9uKT1cIlxuICAgICAgICAgICAgICB0aW1lU2VsZWN0aW9uKCRldmVudCk7IHRpbWVQaWNrZXIuY2xvc2VQb3BvdmVyKCd0b3AnKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9hcHAtdGltZS1waWNrZXI+XG4gICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZVxuICAgICAgW2lkXT1cIjZcIlxuICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICBbcGFnZU5hbWVdPVwiJ29uZS10aW1lJ1wiXG4gICAgICBbaXNEZWFjdGl2YXRlZF09XCJmYWxzZVwiXG4gICAgICBbY29tcGxldGVkVmFsdWVdPVwib25lVGltZVdpbmRvd1wiXG4gICAgICBbbm90Q29tcGxldGVkVmFsdWVdPVwib25lVGltZUZhaWxlZFwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+PC9hcHAtZnJlcXVlbmN5LWR1ZS1kYXRlPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48IS0tIEZvciBQb2xpY3kgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSA9PT0gJ3BvbGljeSdcIj5cbiAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5cbiAgICBEVUUgREFURSBGUkVRVUVOQ1k6XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LW9uZXRpbWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LW9uZXRpbWUtaW5uZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wLTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlLWZpZWxkIHZ4LW0tMCB2eC1tci0zXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY2FsZW5kYXItaWNvbiB2eC1mcy0xNiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTNcIlxuICAgICAgICAgID4mI3hlOTJkOzwvaVxuICAgICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBbdmFsdWVdPVwidG9kYXlEYXRlIHwgZGF0ZSA6ICdkZCBNTU0geXl5eSdcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0b2RheURhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5EYXRlUGlja2VyKClcIlxuICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgaWQ9XCJmcmVxdWVuY3ktZGF0ZVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInRpbWUtcGlja2VyLWdyb3VwIHZ4LWQtZmxleFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ0aW1lLWZpZWxkXCJcbiAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgKGNsaWNrKT1cInBvbGljeVRpbWVQaWNrZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwib25lVGltZVN0YXJ0VGltZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiREVGQVVMVF9USU1FXCJcbiAgICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvY2staWNvbiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHRcIj4mI3hlOTU1OzwvaT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxhcHAtcG9wb3ZlciAjcG9saWN5VGltZVBpY2tlciBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgICAgPGFwcC10aW1lLXBpY2tlclxuICAgICAgICAgICAgW3RpbWVdPVwib25lVGltZVN0YXJ0VGltZVwiXG4gICAgICAgICAgICAob25UaW1lU2VsZWN0aW9uKT1cIlxuICAgICAgICAgICAgICB0aW1lU2VsZWN0aW9uKCRldmVudCk7IHBvbGljeVRpbWVQaWNrZXIuY2xvc2VQb3BvdmVyKCd0b3AnKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9hcHAtdGltZS1waWNrZXI+XG4gICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZVxuICAgICAgW2lkXT1cIjZcIlxuICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICBbcGFnZU5hbWVdPVwiJ29uZS10aW1lJ1wiXG4gICAgICBbaXNEZWFjdGl2YXRlZF09XCJmYWxzZVwiXG4gICAgICBbY29tcGxldGVkVmFsdWVdPVwib25lVGltZVdpbmRvd1wiXG4gICAgICBbbm90Q29tcGxldGVkVmFsdWVdPVwib25lVGltZUZhaWxlZFwiXG4gICAgICBbcGFnZVR5cGVdPVwicGFnZVR5cGVcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvYXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZT5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPGRwLWRhdGUtcGlja2VyXG4gICNkYXRlUGlja2VyXG4gIFtpZF09XCInc3RhcnQtZGF0ZS0nICsgNlwiXG4gIFtwbGFjZWhvbGRlcl09XCJ0b2RheURhdGUgfCBkYXRlIDogJ2RkIE1NTSB5eXl5J1wiXG4gIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlXCJcbiAgW2NvbmZpZ109XCJkYXRlQ29uZmlnXCJcbiAgKG9uU2VsZWN0KT1cIlxuICAgIG9wZW5EYXRlUGlja2VyKCk7XG4gICAgZGF0ZUNoYW5nZSgkZXZlbnQpO1xuICAgIHNob3dEYXRlRXJyb3IgPSBmYWxzZTtcbiAgICBkYXRlcGlja2VyT3ZlcmxheSA9IGZhbHNlXG4gIFwiXG4+PC9kcC1kYXRlLXBpY2tlcj5cbjxkaXZcbiAgY2xhc3M9XCJ2eC1vdmVybGF5XCJcbiAgKGNsaWNrKT1cImNsb3NlRGF0ZXBpY2tlcigpXCJcbiAgKm5nSWY9XCJkYXRlcGlja2VyT3ZlcmxheVwiXG4+PC9kaXY+XG4iXX0=
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LW9uZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZnJlcXVlbmN5L2ZyZXF1ZW5jeS1vbmUtdGltZS9mcmVxdWVuY3ktb25lLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uZS10aW1lL2ZyZXF1ZW5jeS1vbmUtdGltZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7O0FBUWpFLE1BQU0sT0FBTyx5QkFBeUI7SUEyQnBDLFlBQ1UsZ0JBQWtDLEVBQ2xDLGFBQTRCO1FBRDVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUEzQnRDLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBQzVCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixxQkFBZ0IsR0FBUSxZQUFZLENBQUM7UUFDckMsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsZUFBVSxHQUFzQjtZQUM5QixHQUFHLEVB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Q0FBQztJQUMzRCxDQUFDOytHQTdMVSx5QkFBeUI7bUdBQXpCLHlCQUF5QiwwYkF3QkgsVUFBVSw2QkNqRDdDLHdySUFxSUE7OzRGRDVHYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCO21JQUtULFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFrQmQsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRVAsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkE0SjVELGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERhdGVQaWNrZXJDb21wb25lbnQsXG4gIFNpbmdsZUNhbGVuZGFyVmFsdWUsXG4gIElEYXRlUGlja2VyQ29uZmlnLFxufSBmcm9tICduZzItZGF0ZS1waWNrZXInO1xuaW1wb3J0IHsgRnJlcXVlbmN5U2VydmljZSB9IGZyb20gJy4uL2ZyZXF1ZW5jeS5zZXJ2aWNlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XG5pbXBvcnQgeyBERUZBVUxUX1RJTUUgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvdGltZS5jb25zdGFudHMnO1xuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1vbmUtdGltZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktb25lLXRpbWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktb25lLXRpbWUuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5T25lVGltZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInKSBkYXRlUGlja2VyITogRGF0ZVBpY2tlckNvbXBvbmVudDtcbiAgREVGQVVMVF9USU1FID0gREVGQVVMVF9USU1FO1xuICBkYXRlcGlja2VyT3ZlcmxheSA9IGZhbHNlO1xuICBzaG93RGF0ZUVycm9yID0gZmFsc2U7XG4gIG9uZVRpbWVGYWlsZWQgPSA1O1xuICBvbmVUaW1lV2luZG93ID0gMTU7XG4gIG9uZVRpbWVTdGFydFRpbWU6IGFueSA9IERFRkFVTFRfVElNRTtcbiAgb25lVGltZVNlbGVjdGVkID0gJyc7XG4gIGRhdGVDb25maWc6IElEYXRlUGlja2VyQ29uZmlnID0ge1xuICAgIG1pbjogJycsXG4gIH07XG4gIHRvZGF5RGF0ZSA9IG5ldyBEYXRlKCk7XG4gIGZyZXF1ZW5jeUluZm86IGFueTtcbiAgc2hvcnRNb250aDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBkYXRlT2JqZWN0RGF0YSA9IG5ldyBEYXRlKCk7XG4gIG1pbkRhdGUgPSBtb21lbnQoRGF0ZS5ub3coKSkuZm9ybWF0KCdZWVlZLU1NLUREIEhIOm1tOnNzJyk/LnNwbGl0KCcgJylbMF07XG4gIHNlbGVjdGVkRGF0ZTogYW55O1xuXG4gIEBJbnB1dCgpIHBhZ2VUeXBlOiAncmVzcG9uc2liaWxpdHknIHwgJ3BvbGljeScgPSAncmVzcG9uc2liaWxpdHknO1xuICBASW5wdXQoKSBmcmVxdWVuY3lEYXRhOiBhbnk7XG4gIEBJbnB1dCgpIG1vZGU6IGFueSA9ICcnO1xuXG4gIEBPdXRwdXQoKSBmcmVxdWVuY3lEZXRhaWxzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSlcbiAgZGF0ZVBpY2tlclBvcFVwITogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGVDb25maWcgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZGF0ZUNvbmZpZztcbiAgICB0aGlzLmRhdGVDb25maWcubWluID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmZvcm1hdERhdGUoKTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8gPSBPYmplY3QuYXNzaWduKHRoaXMuZnJlcXVlbmN5U2VydmljZS5mcmVxdWVuY3lJbmZvKTtcbiAgICB0aGlzLnNob3J0TW9udGggPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheS5tYXAoKG1vbnRoKSA9PlxuICAgICAgbW9udGguc3Vic3RyaW5nKDAsIDMpXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG1vbWVudCh0aGlzLnRvZGF5RGF0ZSk7XG4gICAgaWYgKFxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4gIT0gJycgJiZcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+JylbMF0gPT09ICcwJ1xuICAgICkge1xuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdldE9uZVRpbWVGcmVxdWVuY3koKTtcbiAgICB9XG4gIH1cblxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcbiAgICBjb25zdCBwYXR0ZXJuSW5mbyA9IHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+Jyk7XG4gICAgY29uc3QgdGltZVN0YW1wID0gbW9tZW50KFxuICAgICAgYCR7cGF0dGVybkluZm9bM119LSR7cGF0dGVybkluZm9bMl19LSR7cGF0dGVybkluZm9bMV19ICR7dGhpcy5mcmVxdWVuY3lEYXRhLmZhaWxlZFRpbWV9YCxcbiAgICAgICdERC1NTS1ZWVlZIEhIOm1tIGEnXG4gICAgKS51bml4KCk7XG4gICAgdGhpcy50b2RheURhdGUgPSBuZXcgRGF0ZSh0aW1lU3RhbXAgKiAxMDAwKTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG1vbWVudCh0aGlzLnRvZGF5RGF0ZSk7XG4gICAgdGhpcy5vbmVUaW1lRmFpbGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhLmZhaWxlZDtcbiAgICB0aGlzLm9uZVRpbWVXaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGEud2luZG93O1xuICAgIHRoaXMub25lVGltZVN0YXJ0VGltZSA9IHRoaXMuZnJlcXVlbmN5RGF0YS5mYWlsZWRUaW1lO1xuICAgIHRoaXMub25lVGltZVNlbGVjdGVkID1cbiAgICAgIHBhdHRlcm5JbmZvWzFdICsgJ34nICsgcGF0dGVybkluZm9bMl0gKyAnficgKyBwYXR0ZXJuSW5mb1szXTtcbiAgICB0aGlzLmRhdGVPYmplY3REYXRhID0gbmV3IERhdGUoXG4gICAgICBtb21lbnQoXG4gICAgICAgIHRoaXMub25lVGltZVNlbGVjdGVkICsgJyAnICsgdGhpcy5vbmVUaW1lU3RhcnRUaW1lLFxuICAgICAgICAnWVlZWX5NTX5ERCBISDptbTpzcydcbiAgICAgICkudW5peCgpICogMTAwMFxuICAgICk7XG4gICAgdGhpcy5nZXRPbmVUaW1lRnJlcXVlbmN5KCk7XG4gIH1cblxuICBvcGVuRGF0ZVBpY2tlcigpIHtcbiAgICBjb25zdCBuZXdEYXRlID0gbW9tZW50KHRoaXMudG9kYXlEYXRlKTtcbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8ubW92ZUNhbGVuZGFyVG8obmV3RGF0ZSBhcyBTaW5nbGVDYWxlbmRhclZhbHVlKTtcbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8ub3BlbigpO1xuICAgIHRoaXMuZGF0ZXBpY2tlck92ZXJsYXkgPSB0cnVlO1xuICB9XG4gIGNsb3NlRGF0ZXBpY2tlcigpIHtcbiAgICB0aGlzLmRhdGVQaWNrZXI/LmFwaT8uY2xvc2UoKTtcbiAgICB0aGlzLmRhdGVwaWNrZXJPdmVybGF5ID0gZmFsc2U7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcbiAgICAgIHRoaXMub25lVGltZVdpbmRvdyA9IGV2ZW50Py52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbmVUaW1lRmFpbGVkID0gZXZlbnQ/LnZhbHVlO1xuICAgIH1cbiAgICB0aGlzLmNsb3NlRGF0ZXBpY2tlcigpO1xuICAgIHRoaXMuZ2V0T25lVGltZUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgb25UaW1lQ2hhbmdlZChldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5vbmVUaW1lU3RhcnRUaW1lID0gZXZlbnQ7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmRhdGVPYmplY3REYXRhID09ICdvYmplY3QnKSB7XG4gICAgICB0aGlzLmRhdGVPYmplY3REYXRhID0gbW9tZW50KHRoaXMuZGF0ZU9iamVjdERhdGEpPy50b0RhdGUoKTtcbiAgICB9XG4gICAgbGV0IHRpbWVTdGFtcCA9IG1vbWVudChcbiAgICAgIHRoaXMuZGF0ZU9iamVjdERhdGEuZ2V0RGF0ZSgpICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgKHRoaXMuZGF0ZU9iamVjdERhdGEuZ2V0TW9udGgoKSArIDEpICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgdGhpcy5kYXRlT2JqZWN0RGF0YS5nZXRGdWxsWWVhcigpICtcbiAgICAgICAgJyAnICtcbiAgICAgICAgdGhpcy5vbmVUaW1lU3RhcnRUaW1lLFxuICAgICAgJ0RELU1NLVlZWVkgaGg6bW0gYSdcbiAgICApLnVuaXgoKTtcbiAgICB0aGlzLm9uZVRpbWVTZWxlY3RlZCA9IG1vbWVudCh0aW1lU3RhbXAgKiAxMDAwKVxuICAgICAgLmZvcm1hdCgnWVlZWX5NTX5ERFRISDptbTpzc1onKVxuICAgICAgLnNwbGl0KCdUJylbMF07XG4gICAgdGhpcy5nZXRPbmVUaW1lRnJlcXVlbmN5KCk7XG4gIH1cblxuICBkYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IGV2ZW50Py5kYXRlO1xuICAgIGNvbnN0IG5ld0RhdGUgPSBtb21lbnQoZXZlbnQ/LmRhdGU/LiRkKS51bml4KCk7XG4gICAgdGhpcy5kYXRlT2JqZWN0RGF0YSA9IG5ldyBEYXRlKG5ld0RhdGUgKiAxMDAwKTtcbiAgICB0aGlzLnRvZGF5RGF0ZSA9IHRoaXMuZGF0ZU9iamVjdERhdGE7XG4gICAgbGV0IHRpbWVTdGFtcCA9IG1vbWVudChcbiAgICAgIHRoaXMuZGF0ZU9iamVjdERhdGEuZ2V0RGF0ZSgpICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgKHRoaXMuZGF0ZU9iamVjdERhdGEuZ2V0TW9udGgoKSArIDEpICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgdGhpcy5kYXRlT2JqZWN0RGF0YS5nZXRGdWxsWWVhcigpICtcbiAgICAgICAgJyAnICtcbiAgICAgICAgdGhpcy5vbmVUaW1lU3RhcnRUaW1lLFxuICAgICAgJ0RELU1NLVlZWVkgaGg6bW0gYSdcbiAgICApLnVuaXgoKTtcbiAgICB0aGlzLm9uZVRpbWVTZWxlY3RlZCA9IGV2ZW50LmRhdGVcbiAgICAgIC5mb3JtYXQoJ1lZWVl+TU1+RERUSEg6bW06c3NaJylcbiAgICAgIC5zcGxpdCgnVCcpWzBdO1xuXG4gICAgdGhpcy5nZXRPbmVUaW1lRnJlcXVlbmN5KCk7XG4gIH1cblxuICBnZXRPbmVUaW1lRnJlcXVlbmN5KCkge1xuICAgIGlmICh0aGlzLm9uZVRpbWVTZWxlY3RlZCAhPT0gJycpIHtcbiAgICAgIHRoaXMudG9kYXlEYXRlID0gbW9tZW50KHRoaXMudG9kYXlEYXRlKT8udG9EYXRlKCk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbW9tZW50KHRoaXMudG9kYXlEYXRlKTtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wbGFjZWhvbGRlciA9XG4gICAgICAnT25lIFRpbWUgJyArXG4gICAgICB0aGlzLnRvZGF5RGF0ZS5nZXREYXRlKCkgK1xuICAgICAgJyAnICtcbiAgICAgIHRoaXMuc2hvcnRNb250aFt0aGlzLnRvZGF5RGF0ZS5nZXRNb250aCgpXSArXG4gICAgICAnICcgK1xuICAgICAgdGhpcy50b2RheURhdGUuZ2V0RnVsbFllYXIoKSArXG4gICAgICAnIGJ5ICcgK1xuICAgICAgdGhpcy5vbmVUaW1lU3RhcnRUaW1lO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wYXR0ZXJuID1cbiAgICAgIDAgK1xuICAgICAgJ34nICtcbiAgICAgICh0aGlzLm9uZVRpbWVTZWxlY3RlZCA9PT0gJydcbiAgICAgICAgPyBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgK1xuICAgICAgICAgICd+JyArXG4gICAgICAgICAgKG5ldyBEYXRlKCkuZ2V0TW9udGgoKSArIDEpICtcbiAgICAgICAgICAnficgK1xuICAgICAgICAgIG5ldyBEYXRlKCkuZ2V0RGF0ZSgpXG4gICAgICAgIDogdGhpcy5vbmVUaW1lU2VsZWN0ZWQpO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jYXNlID0gJ29uZVRpbWUnO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRBZnRlciA9IHRoaXMub25lVGltZUZhaWxlZDtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ud2luZG93ID0gdGhpcy5vbmVUaW1lV2luZG93O1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4xMmhyID0gdGhpcy5vbmVUaW1lU3RhcnRUaW1lO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4yNEhyID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLnRpbWVGcm9tMTJoVG8yNGgoXG4gICAgICB0aGlzLm9uZVRpbWVTdGFydFRpbWVcbiAgICApO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRfdGltZV91dGMgPSAwO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yZXBvcnRJZCA9IDA7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnN0YXJ0RnJvbSA9IG5ldyBEYXRlKHRoaXMudG9kYXlEYXRlKS5nZXRUaW1lKCkvMTAwMDtcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHMuZW1pdCh0aGlzLmZyZXF1ZW5jeUluZm8pO1xuICB9XG5cbiAgdGltZVNlbGVjdGlvbihldmVudDogYW55KSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IGV2ZW50LnNlbGVjdGVkVmFsdWU7XG4gICAgdGhpcy5vblRpbWVDaGFuZ2VkKHNlbGVjdGVkVmFsdWUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBkb2N1bWVudENsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRlUGlja2VyT2JqZWN0ID0ge1xuICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgY2xhc3M6ICdmcmVxdWVuY3ktZGF0ZScsXG4gICAgICBwb3B1cDogdGhpcy5kYXRlUGlja2VyUG9wVXAsXG4gICAgICBjb21wb25lbnQ6IHRoaXMuZGF0ZVBpY2tlcixcbiAgICAgIG92ZXJsYXk6IHRoaXMuZGF0ZXBpY2tlck92ZXJsYXksXG4gICAgfTtcbiAgICB0aGlzLmNvbW1vblNlcnZpY2UuaGFuZGxlRG9jdW1lbnRDbGljayhkYXRlUGlja2VyT2JqZWN0KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgIT09ICdwb2xpY3knXCI+XG4gIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+XG4gICAgRFVFIERBVEUgRlJFUVVFTkNZOlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1vbmV0aW1lXCI+XG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1vbmV0aW1lLWlubmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcC0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1maWVsZCB2eC1tLTAgdngtbXItM1wiPlxuICAgICAgICA8aSBjbGFzcz1cImljb25zIGNhbGVuZGFyLWljb24gdngtZnMtMTYgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0zXCJcbiAgICAgICAgICA+JiN4ZTkyZDs8L2lcbiAgICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgaWQ9XCJmcmVxdWVuY3ktZGF0ZVwiXG4gICAgICAgICAgW3ZhbHVlXT1cInRvZGF5RGF0ZSB8IGRhdGUgOiAnZGQgTU1NIHl5eXknXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidG9kYXlEYXRlIHwgZGF0ZSA6ICdkZCBNTU0geXl5eSdcIlxuICAgICAgICAgIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcigpXCJcbiAgICAgICAgICByZWFkb25seVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLXBpY2tlci1ncm91cCB2eC1kLWZsZXhcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidGltZS1maWVsZFwiXG4gICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgIChjbGljayk9XCJ0aW1lUGlja2VyLnBvcG92ZXIoKVwiXG4gICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiaW5wdXRcIiBbcGxhY2Vob2xkZXJdPVwib25lVGltZVN0YXJ0VGltZVwiIHJlYWRvbmx5IC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNsb2NrLWljb24gdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0XCI+JiN4ZTk1NTs8L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YXBwLXBvcG92ZXIgI3RpbWVQaWNrZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxhcHAtdGltZS1waWNrZXJcbiAgICAgICAgICAgIFt0aW1lXT1cIm9uZVRpbWVTdGFydFRpbWVcIlxuICAgICAgICAgICAgKG9uVGltZVNlbGVjdGlvbik9XCJcbiAgICAgICAgICAgICAgdGltZVNlbGVjdGlvbigkZXZlbnQpOyB0aW1lUGlja2VyLmNsb3NlUG9wb3ZlcigndG9wJylcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvYXBwLXRpbWUtcGlja2VyPlxuICAgICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1mcmVxdWVuY3ktZHVlLWRhdGVcbiAgICAgIFtpZF09XCI2XCJcbiAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgW3BhZ2VOYW1lXT1cIidvbmUtdGltZSdcIlxuICAgICAgW2lzRGVhY3RpdmF0ZWRdPVwiZmFsc2VcIlxuICAgICAgW2NvbXBsZXRlZFZhbHVlXT1cIm9uZVRpbWVXaW5kb3dcIlxuICAgICAgW25vdENvbXBsZXRlZFZhbHVlXT1cIm9uZVRpbWVGYWlsZWRcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvYXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZT5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPCEtLSBGb3IgUG9saWN5IC0tPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT09ICdwb2xpY3knXCI+XG4gIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+XG4gICAgRFVFIERBVEUgRlJFUVVFTkNZOlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1vbmV0aW1lXCI+XG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1vbmV0aW1lLWlubmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcC0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1maWVsZCB2eC1tLTAgdngtbXItM1wiPlxuICAgICAgICA8aSBjbGFzcz1cImljb25zIGNhbGVuZGFyLWljb24gdngtZnMtMTYgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0zXCJcbiAgICAgICAgICA+JiN4ZTkyZDs8L2lcbiAgICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgW3ZhbHVlXT1cInRvZGF5RGF0ZSB8IGRhdGUgOiAnZGQgTU1NIHl5eXknXCJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidG9kYXlEYXRlIHwgZGF0ZSA6ICdkZCBNTU0geXl5eSdcIlxuICAgICAgICAgIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcigpXCJcbiAgICAgICAgICByZWFkb25seVxuICAgICAgICAgIGlkPVwiZnJlcXVlbmN5LWRhdGVcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLXBpY2tlci1ncm91cCB2eC1kLWZsZXhcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidGltZS1maWVsZFwiXG4gICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgIChjbGljayk9XCJwb2xpY3lUaW1lUGlja2VyLnBvcG92ZXIoKVwiXG4gICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm9uZVRpbWVTdGFydFRpbWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIkRFRkFVTFRfVElNRVwiXG4gICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNsb2NrLWljb24gdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0XCI+JiN4ZTk1NTs8L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YXBwLXBvcG92ZXIgI3BvbGljeVRpbWVQaWNrZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxhcHAtdGltZS1waWNrZXJcbiAgICAgICAgICAgIFt0aW1lXT1cIm9uZVRpbWVTdGFydFRpbWVcIlxuICAgICAgICAgICAgKG9uVGltZVNlbGVjdGlvbik9XCJcbiAgICAgICAgICAgICAgdGltZVNlbGVjdGlvbigkZXZlbnQpOyBwb2xpY3lUaW1lUGlja2VyLmNsb3NlUG9wb3ZlcigndG9wJylcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvYXBwLXRpbWUtcGlja2VyPlxuICAgICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1mcmVxdWVuY3ktZHVlLWRhdGVcbiAgICAgIFtpZF09XCI2XCJcbiAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgW3BhZ2VOYW1lXT1cIidvbmUtdGltZSdcIlxuICAgICAgW2lzRGVhY3RpdmF0ZWRdPVwiZmFsc2VcIlxuICAgICAgW2NvbXBsZXRlZFZhbHVlXT1cIm9uZVRpbWVXaW5kb3dcIlxuICAgICAgW25vdENvbXBsZXRlZFZhbHVlXT1cIm9uZVRpbWVGYWlsZWRcIlxuICAgICAgW3BhZ2VUeXBlXT1cInBhZ2VUeXBlXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgID48L2FwcC1mcmVxdWVuY3ktZHVlLWRhdGU+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxkcC1kYXRlLXBpY2tlclxuICAjZGF0ZVBpY2tlclxuICBbaWRdPVwiJ3N0YXJ0LWRhdGUtJyArIDZcIlxuICBbcGxhY2Vob2xkZXJdPVwidG9kYXlEYXRlIHwgZGF0ZSA6ICdkZCBNTU0geXl5eSdcIlxuICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZVwiXG4gIFtjb25maWddPVwiZGF0ZUNvbmZpZ1wiXG4gIChvblNlbGVjdCk9XCJcbiAgICBvcGVuRGF0ZVBpY2tlcigpO1xuICAgIGRhdGVDaGFuZ2UoJGV2ZW50KTtcbiAgICBzaG93RGF0ZUVycm9yID0gZmFsc2U7XG4gICAgZGF0ZXBpY2tlck92ZXJsYXkgPSBmYWxzZVxuICBcIlxuPjwvZHAtZGF0ZS1waWNrZXI+XG48ZGl2XG4gIGNsYXNzPVwidngtb3ZlcmxheVwiXG4gIChjbGljayk9XCJjbG9zZURhdGVwaWNrZXIoKVwiXG4gICpuZ0lmPVwiZGF0ZXBpY2tlck92ZXJsYXlcIlxuPjwvZGl2PlxuIl19
@@ -168,6 +168,7 @@ export class FrequencyRandomComponent {
168
168
  }
169
169
  getRandomFrequency() {
170
170
  //0: weekly 1: monthly 2:quarterly 3: yearly
171
+ let selectedMonth = [];
171
172
  let frequencyDetails;
172
173
  switch (this.randomTypeSelected) {
173
174
  case 0:
@@ -175,9 +176,12 @@ export class FrequencyRandomComponent {
175
176
  break;
176
177
  case 1:
177
178
  frequencyDetails = this.getMonthlyFrequency();
179
+ selectedMonth = this.selectedMonthly;
178
180
  break;
179
181
  case 2:
180
182
  frequencyDetails = this.getQuarterlyFrequency();
183
+ selectedMonth = frequencyDetails.monthSequence;
184
+ selectedMonth = selectedMonth.map((ele) => ele - 1);
181
185
  break;
182
186
  case 3:
183
187
  frequencyDetails = this.getYearlyFrequency();
@@ -188,7 +192,7 @@ export class FrequencyRandomComponent {
188
192
  this.frequencyInfo.case = 'randomly';
189
193
  this.frequencyInfo.failedAfter = this.randomFailed;
190
194
  this.frequencyInfo.window = this.randomWindow;
191
- this.frequencyInfo.selectedMonth = this.selectedMonthly;
195
+ this.frequencyInfo.selectedMonth = selectedMonth;
192
196
  this.frequencyInfo.lifecycleDetails = this.lifecycleDetails;
193
197
  this.frequencyInfo.startFrom = this.startDate;
194
198
  this.frequencyInfo.randomTypeSelected = this.randomTypeSelected;
@@ -230,6 +234,7 @@ export class FrequencyRandomComponent {
230
234
  ' for ' +
231
235
  this.randomInstances +
232
236
  ' random instances',
237
+ monthSequence
233
238
  };
234
239
  }
235
240
  getYearlyFrequency() {
@@ -253,4 +258,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
253
258
  }], frequencyDetails: [{
254
259
  type: Output
255
260
  }] } });
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LXJhbmRvbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktcmFuZG9tL2ZyZXF1ZW5jeS1yYW5kb20uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJhbmRvbS9mcmVxdWVuY3ktcmFuZG9tLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7O0FBT2pFLE1BQU0sT0FBTyx3QkFBd0I7SUFtQ25DLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbEM3QyxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBRXhCLDRDQUE0QztRQUU1QyxtQkFBYyxHQUFlLEVBQUUsQ0FBQztRQUNoQyxvQkFBZSxHQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEUsa0JBQWEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxDQUFD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akMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLGFBQWEsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDcEQsT0FBTztZQUNMLE9BQU8sRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsYUFBYSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsZUFBZTtZQUN2RSxXQUFXLEVBQ1QsUUFBUTtnQkFDUixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztnQkFDakQsT0FBTztnQkFDUCxJQUFJLENBQUMsZUFBZTtnQkFDcEIsbUJBQW1CO1NBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU87WUFDTCxPQUFPLEVBQ0wsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsOEJBQThCLEdBQUcsSUFBSSxDQUFDLGVBQWU7WUFDckUsV0FBVyxFQUNULGlCQUFpQixHQUFHLElBQUksQ0FBQyxlQUFlLEdBQUcsbUJBQW1CO1NBQ2pFLENBQUM7SUFDSixDQUFDOytHQXJRVSx3QkFBd0I7bUdBQXhCLHdCQUF3QixpTUNWckMseThFQXVEQTs7NEZEN0NhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxzQkFBc0I7dUdBS3ZCLElBQUk7c0JBQVosS0FBSztnQkE0QkcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xuaW1wb3J0IHsgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1yYW5kb20nLFxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LXJhbmRvbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1yYW5kb20uY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5UmFuZG9tQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbW9kZTogYW55ID0gJyc7XG5cbiAgLy8wOiB3ZWVrbHkgMTogbW9udGhseSAyOnF1YXJ0ZXJseSAzOiB5ZWFybHlcblxuICBtb250aE5hbWVBcnJheTogQXJyYXk8YW55PiA9IFtdO1xuICBzZWxlY3RlZE1vbnRobHk6IEFycmF5PG51bWJlcj4gPSBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExXTtcbiAgcmFuZG9tVHlwZU1heCA9IFszLCAxMCwgMzAsIDkwXTtcbiAgcmFuZG9tVHlwZSA9IFsnV2Vla2x5JywgJ01vbnRobHknLCAnUXVhcnRlcmx5JywgJ1llYXJseSddO1xuICByYW5kb21JbnN0YW5jZXMgPSAwO1xuICBkZWZhdWx0UmFuZG9tSW5zdGFuY2UgPSBbMiwgNSwgMTUsIDQ1XTtcbiAgcmFuZG9tbHlEYXkgPSBuZXcgRGF0ZSgpLmdldERhdGUoKTtcbiAgcmFuZG9tbHlMaWZlQ3ljbGVTdGFydCA9IG5ldyBEYXRlKCk7XG4gIHJhbmRvbWx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKFxuICAgIHRoaXMucmFuZG9tbHlMaWZlQ3ljbGVTdGFydC5nZXRUaW1lKCkgKyA4NjQwMDAwMFxuICApO1xuICByYW5kb21seUxpZmVjeWNsZU9jY3VyYW5jZSA9IDEwO1xuICByYW5kb21seVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMjtcbiAgcmFuZG9tVHlwZVNlbGVjdGVkID0gMDtcbiAgcmFuZG9tV2luZG93ID0gMjtcbiAgcmFuZG9tRmFpbGVkID0gMjtcbiAgcmFuZG9tTW9udGhTZWxlY3RlZCA9IFtdO1xuICByYW5kb21RdWFydGVybHlTZWxlY3RlZCA9IDE7XG4gIHF1YXJ0ZXJseUdyb3VwID0gWzAsIDMsIDYsIDksIDEsIDQsIDcsIDEwLCAyLCA1LCA4LCAxMV07XG4gIHJhbmRvbVR5cGVJbnN0YW5jZXMgPSBbMiwgNSwgMTUsIDQ1XTtcbiAgZnJlcXVlbmN5SW5mbzogYW55O1xuICBzaG9ydE1vbnRoOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIHF1YXJ0ZXJseU1vbnRoOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgQElucHV0KCkgc3RhcnREYXRlID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG4gIEBJbnB1dCgpIGZyZXF1ZW5jeURhdGE6IGFueTtcbiAgbGlmZWN5Y2xlRGV0YWlsczogYW55ID0gJzAwMDAtMDAtMDB+fjAnO1xuXG4gIEBPdXRwdXQoKSBmcmVxdWVuY3lEZXRhaWxzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubW9udGhOYW1lQXJyYXkgPSBbLi4ubmV3IFNldCh0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheSldO1xuICAgIHRoaXMucXVhcnRlcmx5TW9udGggPSBbLi4ubmV3IFNldCh0aGlzLmZyZXF1ZW5jeVNlcnZpY2UucXVhcnRlcmx5TW9udGgpXTtcbiAgICB0aGlzLnNob3J0TW9udGggPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheS5tYXAoKG1vbnRoOiBzdHJpbmcpID0+XG4gICAgICBtb250aC5zdWJzdHJpbmcoMCwgMylcbiAgICApO1xuICAgIGNvbnN0IGluZGV4T2ZNb250aCA9IHRoaXMucXVhcnRlcmx5R3JvdXAuaW5kZXhPZihuZXcgRGF0ZSgpLmdldE1vbnRoKCkpO1xuICAgIHRoaXMucmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWQgPVxuICAgICAgaW5kZXhPZk1vbnRoIDwgNCA/IDAgOiBpbmRleE9mTW9udGggPiAzICYmIGluZGV4T2ZNb250aCA8IDggPyAxIDogMjtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8gPSBPYmplY3QuYXNzaWduKHRoaXMuZnJlcXVlbmN5U2VydmljZS5mcmVxdWVuY3lJbmZvKTtcbiAgICBpZiAoXG4gICAgICB0aGlzLmZyZXF1ZW5jeURhdGEucGF0dGVybiAhPSAnJyAmJlxuICAgICAgcGFyc2VJbnQodGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4uc3BsaXQoJ34nKVswXSkgPT09IDhcbiAgICApIHtcbiAgICAgIHRoaXMucG9wdWxhdGVGcmVxdWVuY3koKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5nZXRSYW5kb21JbnN0YW5jZXMoKTtcbiAgICB9XG4gICAgdGhpcy5nZXRSYW5kb21GcmVxdWVuY3koKTtcbiAgfVxuXG4gIGdldFJhbmRvbUluc3RhbmNlcygpIHtcbiAgICB0aGlzLnJhbmRvbUluc3RhbmNlcyA9IHRoaXMucmFuZG9tVHlwZUluc3RhbmNlc1t0aGlzLnJhbmRvbVR5cGVTZWxlY3RlZF07XG4gIH1cblxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcbiAgICBjb25zdCBmcmVxdWVuY3lTZWxlY3RlZCA9IHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+Jyk7XG4gICAgY29uc3QgbGlmZWN5Y2xlSW5mbyA9IHRoaXMuZnJlcXVlbmN5RGF0YS5saWZlY3ljbGUuc3BsaXQoJ35+Jyk7XG4gICAgdGhpcy5yYW5kb21XaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGEud2luZG93O1xuICAgIHRoaXMucmFuZG9tRmFpbGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhLmZhaWxlZDtcbiAgICB0aGlzLnJhbmRvbUluc3RhbmNlcyA9IHBhcnNlSW50KGZyZXF1ZW5jeVNlbGVjdGVkWzNdKTtcbiAgICB0aGlzLnJhbmRvbVR5cGVTZWxlY3RlZCA9IHBhcnNlSW50KGZyZXF1ZW5jeVNlbGVjdGVkWzFdKSAtIDE7XG4gICAgaWYgKHRoaXMucmFuZG9tVHlwZVNlbGVjdGVkID09PSAxKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTW9udGhseSA9IGZyZXF1ZW5jeVNlbGVjdGVkWzJdXG4gICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgIC5tYXAoKGVsZTogYW55KSA9PiBwYXJzZUludChlbGUpIC0gMSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJhbmRvbVR5cGVTZWxlY3RlZCA9PSAyKSB7XG4gICAgICBjb25zdCBtb250aFJhbmRvbSA9IHBhcnNlSW50KGZyZXF1ZW5jeVNlbGVjdGVkWzJdLnNwbGl0KCcsJylbMF0pO1xuICAgICAgY29uc3QgaW5kZXhSYW5kb20gPSB0aGlzLnF1YXJ0ZXJseUdyb3VwLmluZGV4T2YobW9udGhSYW5kb20gLSAxKTtcbiAgICAgIHRoaXMucmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWQgPVxuICAgICAgICBpbmRleFJhbmRvbSA8IDQgPyAwIDogaW5kZXhSYW5kb20gPiAzICYmIGluZGV4UmFuZG9tIDwgOCA/IDEgOiAyO1xuICAgIH1cbiAgICB0aGlzLnJhbmRvbWx5TGlmZUN5Y2xlU3RhcnQgPSBuZXcgRGF0ZSh0aGlzLmZyZXF1ZW5jeURhdGEuc3RhcnREYXRlICogMTAwMCk7XG4gICAgdGhpcy5zdGFydERhdGUgPVxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLnN0YXJ0RnJvbSA/PyB0aGlzLmZyZXF1ZW5jeURhdGEuc3RhcnREYXRlO1xuICAgIGlmIChOdW1iZXIobGlmZWN5Y2xlSW5mb1sxXSkgPiAwKSB7XG4gICAgICB0aGlzLnJhbmRvbWx5TGlmZWN5Y2xlT2NjdXJhbmNlID0gTnVtYmVyKGxpZmVjeWNsZUluZm9bMV0pO1xuICAgIH1cbiAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSB0aGlzLmZyZXF1ZW5jeURhdGEubGlmZWN5Y2xlO1xuICAgIGlmIChsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcbiAgICAgIGNvbnN0IGRhdGVTZWxlY3RlZCA9IG1vbWVudChcbiAgICAgICAgbGlmZWN5Y2xlSW5mb1swXSArICcgJyArIERFRkFVTFRfVElNRSxcbiAgICAgICAgJ0RELU1NTU0tWVlZWSBISDptbSBhJ1xuICAgICAgKS51bml4KCk7XG4gICAgICB0aGlzLnJhbmRvbWx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKGRhdGVTZWxlY3RlZCAqIDEwMDApO1xuICAgIH1cbiAgICBpZiAodGhpcy5mcmVxdWVuY3lEYXRhLmxpZmVjeWNsZSA9PSAnMDAwMC0wMC0wMH5+MCcpIHtcbiAgICAgIHRoaXMucmFuZG9tbHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDI7XG4gICAgfSBlbHNlIGlmIChsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcbiAgICAgIHRoaXMucmFuZG9tbHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmFuZG9tbHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDE7XG4gICAgfVxuICB9XG5cbiAgb25Nb250aFNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQuY2hlY2tlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZE1vbnRobHkucHVzaChldmVudC5pbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb250aGx5ID0gdGhpcy5zZWxlY3RlZE1vbnRobHkuZmlsdGVyKFxuICAgICAgICAoZWxlKSA9PiBlbGUgIT09IGV2ZW50LmluZGV4XG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmdldFJhbmRvbUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjb21wbGV0ZWQnKSB7XG4gICAgICB0aGlzLnJhbmRvbVdpbmRvdyA9IGV2ZW50LnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJhbmRvbUZhaWxlZCA9IGV2ZW50LnZhbHVlO1xuICAgIH1cbiAgICB0aGlzLmdldFJhbmRvbUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgcmFuZG9tQ2hlY2tlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5yYW5kb21UeXBlU2VsZWN0ZWQgPSBOdW1iZXIoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB0aGlzLmdldFJhbmRvbUluc3RhbmNlcygpO1xuICAgIHRoaXMuZ2V0UmFuZG9tRnJlcXVlbmN5KCk7XG4gIH1cblxuICByYW5kb21JbnN0YW5jZShldmVudDogYW55LCB0eXBlOiBhbnkpIHtcbiAgICBpZiAoXG4gICAgICAhTnVtYmVyLmlzTmFOKE51bWJlcihldmVudC50YXJnZXQudmFsdWUpKSAmJlxuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlICE9PSAnMCcgJiZcbiAgICAgIHBhcnNlSW50KGV2ZW50LnRhcmdldC52YWx1ZSkgPiAwICYmXG4gICAgICBwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpIDwgdGhpcy5yYW5kb21UeXBlTWF4W3R5cGVdICsgMVxuICAgICkge1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJhbmRvbUluc3RhbmNlcyA9XG4gICAgICAgIHRoaXMuZGVmYXVsdFJhbmRvbUluc3RhbmNlW3RoaXMucmFuZG9tVHlwZVNlbGVjdGVkXTtcbiAgICB9XG4gICAgdGhpcy5nZXRSYW5kb21GcmVxdWVuY3koKTtcbiAgfVxuXG4gIGxpZmVjeWNsZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9IGV2ZW50LmVuZHNCeSArICd+fjAnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gJzAwMDAtMDAtMDB+ficgKyBldmVudC5lbmRhZnRlcjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9ICcwMDAwLTAwLTAwfn4wJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmIChldmVudC5zdGFydEZyb20udG9TdHJpbmcoKS5sZW5ndGggPiAxMCkge1xuICAgICAgdGhpcy5zdGFydERhdGUgPSBNYXRoLmZsb29yKGV2ZW50LnN0YXJ0RnJvbSAvIDEwMDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoZXZlbnQuc3RhcnRGcm9tKTtcbiAgICB9XG4gICAgbGV0IGVuZEJ5RGF0ZSA9IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwICsgODY0MDAwMDApO1xuICAgIGlmIChldmVudC50eXBlID09PSAwKSB7XG4gICAgICBlbmRCeURhdGUgPSBldmVudC5lbmRzQnlcbiAgICAgICAgPyBtb21lbnQoZXZlbnQuZW5kc0J5ICsgJyAwMDowMDowMCcsICdERC1NTU0tWVlZWSBISDptbTpzcycpLnVuaXgoKVxuICAgICAgICA6IGVuZEJ5RGF0ZTtcbiAgICB9XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZF90aW1lX3V0YyA9IGVuZEJ5RGF0ZTtcbiAgICB0aGlzLmdldFJhbmRvbUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgc2VsZWN0ZWRNb250aChldmVudDogYW55KSB7XG4gICAgdGhpcy5nZXRSYW5kb21GcmVxdWVuY3koKTtcbiAgfVxuXG4gIHJhbmRvbVF1YXJ0ZXJseUNoZWNrZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWQgPSBOdW1iZXIoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB0aGlzLmdldFJhbmRvbUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgZ2V0UmFuZG9tRnJlcXVlbmN5KCkge1xuICAgIC8vMDogd2Vla2x5IDE6IG1vbnRobHkgMjpxdWFydGVybHkgMzogeWVhcmx5XG4gICAgbGV0IGZyZXF1ZW5jeURldGFpbHM7XG4gICAgc3dpdGNoICh0aGlzLnJhbmRvbVR5cGVTZWxlY3RlZCkge1xuICAgICAgY2FzZSAwOlxuICAgICAgICBmcmVxdWVuY3lEZXRhaWxzID0gdGhpcy5nZXRXZWVrbHlGcmVxdWVuY3koKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIGZyZXF1ZW5jeURldGFpbHMgPSB0aGlzLmdldE1vbnRobHlGcmVxdWVuY3koKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIGZyZXF1ZW5jeURldGFpbHMgPSB0aGlzLmdldFF1YXJ0ZXJseUZyZXF1ZW5jeSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzpcbiAgICAgICAgZnJlcXVlbmN5RGV0YWlscyA9IHRoaXMuZ2V0WWVhcmx5RnJlcXVlbmN5KCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGF0dGVybiA9IGZyZXF1ZW5jeURldGFpbHM/LnBhdHRlcm47XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBsYWNlaG9sZGVyID0gZnJlcXVlbmN5RGV0YWlscz8ucGxhY2Vob2xkZXI7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmNhc2UgPSAncmFuZG9tbHknO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRBZnRlciA9IHRoaXMucmFuZG9tRmFpbGVkO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby53aW5kb3cgPSB0aGlzLnJhbmRvbVdpbmRvdztcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uc2VsZWN0ZWRNb250aCA9IHRoaXMuc2VsZWN0ZWRNb250aGx5O1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5saWZlY3ljbGVEZXRhaWxzID0gdGhpcy5saWZlY3ljbGVEZXRhaWxzO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5zdGFydEZyb20gPSB0aGlzLnN0YXJ0RGF0ZTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucmFuZG9tVHlwZVNlbGVjdGVkID0gdGhpcy5yYW5kb21UeXBlU2VsZWN0ZWQ7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnJhbmRvbUluc3RhbmNlcyA9IHRoaXMucmFuZG9tSW5zdGFuY2VzO1xuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscy5lbWl0KHRoaXMuZnJlcXVlbmN5SW5mbyk7XG4gIH1cblxuICBnZXRXZWVrbHlGcmVxdWVuY3koKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdHRlcm46IDggKyAnficgKyAxICsgJ34nICsgMCArICd+JyArIHRoaXMucmFuZG9tSW5zdGFuY2VzLFxuICAgICAgcGxhY2Vob2xkZXI6XG4gICAgICAgICdFdmVyeSB3ZWVrIGZvciAnICsgdGhpcy5yYW5kb21JbnN0YW5jZXMgKyAnIHJhbmRvbSBpbnN0YW5jZXMnLFxuICAgIH07XG4gIH1cblxuICBnZXRNb250aGx5RnJlcXVlbmN5KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRNb250aGx5ID0gdGhpcy5zZWxlY3RlZE1vbnRobHkuc29ydCgobjEsIG4yKSA9PiBuMSAtIG4yKTtcbiAgICBjb25zdCBzZWxlY3RlZE1vbnRoID0gdGhpcy5zZWxlY3RlZE1vbnRobHkubWFwKChlbGUpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnNob3J0TW9udGhbZWxlXTtcbiAgICB9KTtcbiAgICBjb25zdCBtb250aEluZGV4ID0gdGhpcy5zZWxlY3RlZE1vbnRobHkubWFwKChlbGUpID0+IGVsZSArIDEpO1xuICAgIHJldHVybiB7XG4gICAgICBwYXR0ZXJuOlxuICAgICAgICA4ICsgJ34nICsgMiArICd+JyArIG1vbnRoSW5kZXguam9pbignLCcpICsgJ34nICsgdGhpcy5yYW5kb21JbnN0YW5jZXMsXG4gICAgICBwbGFjZWhvbGRlcjpcbiAgICAgICAgJ0V2ZXJ5ICcgK1xuICAgICAgICBzZWxlY3RlZE1vbnRoLmpvaW4oJywgJykgK1xuICAgICAgICAnIGZvciAnICtcbiAgICAgICAgdGhpcy5yYW5kb21JbnN0YW5jZXMgK1xuICAgICAgICAnIHJhbmRvbSBpbnN0YW5jZXMnLFxuICAgIH07XG4gIH1cblxuICBnZXRRdWFydGVybHlGcmVxdWVuY3koKSB7XG4gICAgbGV0IG1vbnRoU2VxdWVuY2UgPVxuICAgICAgdGhpcy5yYW5kb21RdWFydGVybHlTZWxlY3RlZCA9PT0gMFxuICAgICAgICA/IHRoaXMucXVhcnRlcmx5R3JvdXAuc2xpY2UoMCwgNClcbiAgICAgICAgOiB0aGlzLnJhbmRvbVF1YXJ0ZXJseVNlbGVjdGVkID09PSAxXG4gICAgICAgID8gdGhpcy5xdWFydGVybHlHcm91cC5zbGljZSg0LCA4KVxuICAgICAgICA6IHRoaXMucXVhcnRlcmx5R3JvdXAuc2xpY2UoOCk7XG4gICAgbW9udGhTZXF1ZW5jZSA9IG1vbnRoU2VxdWVuY2UubWFwKChlbGUpID0+IGVsZSArIDEpO1xuICAgIHJldHVybiB7XG4gICAgICBwYXR0ZXJuOiA4ICsgJ34nICsgMyArICd+JyArIG1vbnRoU2VxdWVuY2UgKyAnficgKyB0aGlzLnJhbmRvbUluc3RhbmNlcyxcbiAgICAgIHBsYWNlaG9sZGVyOlxuICAgICAgICAnRXZlcnkgJyArXG4gICAgICAgIHRoaXMucXVhcnRlcmx5TW9udGhbdGhpcy5yYW5kb21RdWFydGVybHlTZWxlY3RlZF0gK1xuICAgICAgICAnIGZvciAnICtcbiAgICAgICAgdGhpcy5yYW5kb21JbnN0YW5jZXMgK1xuICAgICAgICAnIHJhbmRvbSBpbnN0YW5jZXMnLFxuICAgIH07XG4gIH1cblxuICBnZXRZZWFybHlGcmVxdWVuY3koKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdHRlcm46XG4gICAgICAgIDggKyAnficgKyA0ICsgJ34xLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMn4nICsgdGhpcy5yYW5kb21JbnN0YW5jZXMsXG4gICAgICBwbGFjZWhvbGRlcjpcbiAgICAgICAgJ0V2ZXJ5IHllYXIgZm9yICcgKyB0aGlzLnJhbmRvbUluc3RhbmNlcyArICcgcmFuZG9tIGluc3RhbmNlcycsXG4gICAgfTtcbiAgfVxufVxuIiwiPCEtLSA8cD5mcmVxdWVuY3ktcmFuZG9tIHdvcmtzITwvcD4gLS0+XG48ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJhbmRvbVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+VFlQRTo8L2Rpdj4gXG4gICAgPGFwcC1mcmVxdWVuY3ktcmFkaW8tbGlzdFxuICAgIFtyYWRpb0xpc3RdPVwicmFuZG9tVHlwZVwiIFxuICAgIFtzZWxlY3RlZEluZGV4XT1cInJhbmRvbVR5cGVTZWxlY3RlZFwiIFxuICAgIChzZWxlY3RlZFJhZGlvKT1cInJhbmRvbUNoZWNrZWQoJGV2ZW50KVwiXG4gICAgW25hbWVdPVwiJ3JhbmRvbSdcIlxuICAgIGNsYXNzPVwicmFuZG9tLXJhZGlvXCJcbiAgICBbbW9kZV09XCJtb2RlXCJcbiAgICA+PC9hcHAtZnJlcXVlbmN5LXJhZGlvLWxpc3Q+XG4gICAgPGFwcC1mcmVxdWVuY3ktcmFkaW8tbGlzdFxuICAgICAgICAqbmdJZj1cInJhbmRvbVR5cGVTZWxlY3RlZCA9PSAyXCIgIFxuICAgICAgICBbcmFkaW9MaXN0XT1cInF1YXJ0ZXJseU1vbnRoXCJcbiAgICAgICAgW25hbWVdPVwiJ3F1YXJ0ZXInXCIgXG4gICAgICAgIFtzZWxlY3RlZEluZGV4XT1cInJhbmRvbVF1YXJ0ZXJseVNlbGVjdGVkXCIgXG4gICAgICAgIChzZWxlY3RlZFJhZGlvKT1cInJhbmRvbVF1YXJ0ZXJseUNoZWNrZWQoJGV2ZW50KVwiXG4gICAgICAgIGNsYXNzPVwicXVhcnRlcmx5LXJhZGlvXCJcbiAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgID5cbiAgICA8L2FwcC1mcmVxdWVuY3ktcmFkaW8tbGlzdD5cbiAgICA8YXBwLWZyZXF1ZW5jeS1jaGVja2JveC1saXN0XG4gICAgICAgICpuZ0lmPVwicmFuZG9tVHlwZVNlbGVjdGVkID09IDFcIiAgXG4gICAgICAgIFtpZF09XCI4XCJcbiAgICAgICAgW2xpc3RBcnJheV09XCJtb250aE5hbWVBcnJheVwiXG4gICAgICAgIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkTW9udGhseVwiXG4gICAgICAgIChzZWxlY3RlZENoZWNrYm94KT1cIm9uTW9udGhTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgY2xhc3M9XCJtb250aGx5LWNoZWNrYm94XCJcbiAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgPjwvYXBwLWZyZXF1ZW5jeS1jaGVja2JveC1saXN0PlxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktcmFuZG9tLW1lc3NhZ2UgdngtcC0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTEzIHZ4LXBhcmFncmFwaC10eHRcIj5SYW5kb20gb2NjdXJyZW5jZSBmb3I8L2Rpdj5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwiY291bnROdW1cIiB0eXBlPVwibnVtYmVyXCIgWyhuZ01vZGVsKV09XCJyYW5kb21JbnN0YW5jZXNcIiAoY2hhbmdlKT1cInJhbmRvbUluc3RhbmNlKCRldmVudCwgcmFuZG9tVHlwZVNlbGVjdGVkKVwiIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIiBtaW49XCIwXCIgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtcGFyYWdyYXBoLXR4dFwiPmluc3RhbmNlcy4gTm90ZSwgdGhlIG1heGltdW0gbnVtYmVyIG9mIG9jY3VycmVuY2VzIGZvciA8c3BhbiBjbGFzcz1cInZ4LWZ3LTUwMFwiPnt7IHJhbmRvbVR5cGVbcmFuZG9tVHlwZVNlbGVjdGVkXS50b0xvd2VyQ2FzZSgpIH19PC9zcGFuPiBpcyB7eyByYW5kb21UeXBlTWF4W3JhbmRvbVR5cGVTZWxlY3RlZF0gfX0uPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1mcmVxdWVuY3ktZHVlLWRhdGVcbiAgICAgICAgW2lkXSA9ICc4J1xuICAgICAgICBbcGFnZU5hbWVdPVwiJ3JhbmRvbSdcIlxuICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgW2lzRGVhY3RpdmF0ZWRdPVwiZmFsc2VcIlxuICAgICAgICBbY29tcGxldGVkVmFsdWVdPVwicmFuZG9tV2luZG93XCJcbiAgICAgICAgW25vdENvbXBsZXRlZFZhbHVlXT1cInJhbmRvbUZhaWxlZFwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICA+PC9hcHAtZnJlcXVlbmN5LWR1ZS1kYXRlPlxuICAgIDxhcHAtZnJlcXVlbmN5LWxpZmVjeWNsZVxuICAgICAgICBbaWRdPVwiOFwiXG4gICAgICAgIFtzdGFydERhdGVdPVwicmFuZG9tbHlMaWZlQ3ljbGVTdGFydFwiXG4gICAgICAgIFtlbmREYXRlXT1cInJhbmRvbWx5TGlmZUN5Y2xlRW5kVGltZVwiXG4gICAgICAgIFtvY2N1cnJhbmNlXT1cInJhbmRvbWx5TGlmZWN5Y2xlT2NjdXJhbmNlXCJcbiAgICAgICAgW3NlbGVjdGVkTGlmZWN5Y2xlVHlwZV09XCJyYW5kb21seVNlbGV0ZWRMaWZlY3ljbGVUeXBlXCJcbiAgICAgICAgKHNlbGVjdGVkT2NjdXJhbmNlKT1cImxpZmVjeWNsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgPjwvYXBwLWZyZXF1ZW5jeS1saWZlY3ljbGU+XG48L2Rpdj5cbiJdfQ==
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LXJhbmRvbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktcmFuZG9tL2ZyZXF1ZW5jeS1yYW5kb20uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJhbmRvbS9mcmVxdWVuY3ktcmFuZG9tLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7O0FBT2pFLE1BQU0sT0FBTyx3QkFBd0I7SUFtQ25DLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbEM3QyxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBRXhCLDRDQUE0QztRQUU1QyxtQkFBYyxHQUFlLEVBQUUsQ0FBQztRQUNoQyxvQkFBZSxHQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEUsa0JBQWEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxDQUFD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O2dCQUdJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xuaW1wb3J0IHsgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1yYW5kb20nLFxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LXJhbmRvbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1yYW5kb20uY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5UmFuZG9tQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbW9kZTogYW55ID0gJyc7XG5cbiAgLy8wOiB3ZWVrbHkgMTogbW9udGhseSAyOnF1YXJ0ZXJseSAzOiB5ZWFybHlcblxuICBtb250aE5hbWVBcnJheTogQXJyYXk8YW55PiA9IFtdO1xuICBzZWxlY3RlZE1vbnRobHk6IEFycmF5PG51bWJlcj4gPSBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExXTtcbiAgcmFuZG9tVHlwZU1heCA9IFszLCAxMCwgMzAsIDkwXTtcbiAgcmFuZG9tVHlwZSA9IFsnV2Vla2x5JywgJ01vbnRobHknLCAnUXVhcnRlcmx5JywgJ1llYXJseSddO1xuICByYW5kb21JbnN0YW5jZXMgPSAwO1xuICBkZWZhdWx0UmFuZG9tSW5zdGFuY2UgPSBbMiwgNSwgMTUsIDQ1XTtcbiAgcmFuZG9tbHlEYXkgPSBuZXcgRGF0ZSgpLmdldERhdGUoKTtcbiAgcmFuZG9tbHlMaWZlQ3ljbGVTdGFydCA9IG5ldyBEYXRlKCk7XG4gIHJhbmRvbWx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKFxuICAgIHRoaXMucmFuZG9tbHlMaWZlQ3ljbGVTdGFydC5nZXRUaW1lKCkgKyA4NjQwMDAwMFxuICApO1xuICByYW5kb21seUxpZmVjeWNsZU9jY3VyYW5jZSA9IDEwO1xuICByYW5kb21seVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMjtcbiAgcmFuZG9tVHlwZVNlbGVjdGVkID0gMDtcbiAgcmFuZG9tV2luZG93ID0gMjtcbiAgcmFuZG9tRmFpbGVkID0gMjtcbiAgcmFuZG9tTW9udGhTZWxlY3RlZCA9IFtdO1xuICByYW5kb21RdWFydGVybHlTZWxlY3RlZCA9IDE7XG4gIHF1YXJ0ZXJseUdyb3VwID0gWzAsIDMsIDYsIDksIDEsIDQsIDcsIDEwLCAyLCA1LCA4LCAxMV07XG4gIHJhbmRvbVR5cGVJbnN0YW5jZXMgPSBbMiwgNSwgMTUsIDQ1XTtcbiAgZnJlcXVlbmN5SW5mbzogYW55O1xuICBzaG9ydE1vbnRoOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIHF1YXJ0ZXJseU1vbnRoOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgQElucHV0KCkgc3RhcnREYXRlID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG4gIEBJbnB1dCgpIGZyZXF1ZW5jeURhdGE6IGFueTtcbiAgbGlmZWN5Y2xlRGV0YWlsczogYW55ID0gJzAwMDAtMDAtMDB+fjAnO1xuXG4gIEBPdXRwdXQoKSBmcmVxdWVuY3lEZXRhaWxzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubW9udGhOYW1lQXJyYXkgPSBbLi4ubmV3IFNldCh0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheSldO1xuICAgIHRoaXMucXVhcnRlcmx5TW9udGggPSBbLi4ubmV3IFNldCh0aGlzLmZyZXF1ZW5jeVNlcnZpY2UucXVhcnRlcmx5TW9udGgpXTtcbiAgICB0aGlzLnNob3J0TW9udGggPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheS5tYXAoKG1vbnRoOiBzdHJpbmcpID0+XG4gICAgICBtb250aC5zdWJzdHJpbmcoMCwgMylcbiAgICApO1xuICAgIGNvbnN0IGluZGV4T2ZNb250aCA9IHRoaXMucXVhcnRlcmx5R3JvdXAuaW5kZXhPZihuZXcgRGF0ZSgpLmdldE1vbnRoKCkpO1xuICAgIHRoaXMucmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWQgPVxuICAgICAgaW5kZXhPZk1vbnRoIDwgNCA/IDAgOiBpbmRleE9mTW9udGggPiAzICYmIGluZGV4T2ZNb250aCA8IDggPyAxIDogMjtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8gPSBPYmplY3QuYXNzaWduKHRoaXMuZnJlcXVlbmN5U2VydmljZS5mcmVxdWVuY3lJbmZvKTtcbiAgICBpZiAoXG4gICAgICB0aGlzLmZyZXF1ZW5jeURhdGEucGF0dGVybiAhPSAnJyAmJlxuICAgICAgcGFyc2VJbnQodGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4uc3BsaXQoJ34nKVswXSkgPT09IDhcbiAgICApIHtcbiAgICAgIHRoaXMucG9wdWxhdGVGcmVxdWVuY3koKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5nZXRSYW5kb21JbnN0YW5jZXMoKTtcbiAgICB9XG4gICAgdGhpcy5nZXRSYW5kb21GcmVxdWVuY3koKTtcbiAgfVxuXG4gIGdldFJhbmRvbUluc3RhbmNlcygpIHtcbiAgICB0aGlzLnJhbmRvbUluc3RhbmNlcyA9IHRoaXMucmFuZG9tVHlwZUluc3RhbmNlc1t0aGlzLnJhbmRvbVR5cGVTZWxlY3RlZF07XG4gIH1cblxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcbiAgICBjb25zdCBmcmVxdWVuY3lTZWxlY3RlZCA9IHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+Jyk7XG4gICAgY29uc3QgbGlmZWN5Y2xlSW5mbyA9IHRoaXMuZnJlcXVlbmN5RGF0YS5saWZlY3ljbGUuc3BsaXQoJ35+Jyk7XG4gICAgdGhpcy5yYW5kb21XaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGEud2luZG93O1xuICAgIHRoaXMucmFuZG9tRmFpbGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhLmZhaWxlZDtcbiAgICB0aGlzLnJhbmRvbUluc3RhbmNlcyA9IHBhcnNlSW50KGZyZXF1ZW5jeVNlbGVjdGVkWzNdKTtcbiAgICB0aGlzLnJhbmRvbVR5cGVTZWxlY3RlZCA9IHBhcnNlSW50KGZyZXF1ZW5jeVNlbGVjdGVkWzFdKSAtIDE7XG4gICAgaWYgKHRoaXMucmFuZG9tVHlwZVNlbGVjdGVkID09PSAxKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTW9udGhseSA9IGZyZXF1ZW5jeVNlbGVjdGVkWzJdXG4gICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgIC5tYXAoKGVsZTogYW55KSA9PiBwYXJzZUludChlbGUpIC0gMSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJhbmRvbVR5cGVTZWxlY3RlZCA9PSAyKSB7XG4gICAgICBjb25zdCBtb250aFJhbmRvbSA9IHBhcnNlSW50KGZyZXF1ZW5jeVNlbGVjdGVkWzJdLnNwbGl0KCcsJylbMF0pO1xuICAgICAgY29uc3QgaW5kZXhSYW5kb20gPSB0aGlzLnF1YXJ0ZXJseUdyb3VwLmluZGV4T2YobW9udGhSYW5kb20gLSAxKTtcbiAgICAgIHRoaXMucmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWQgPVxuICAgICAgICBpbmRleFJhbmRvbSA8IDQgPyAwIDogaW5kZXhSYW5kb20gPiAzICYmIGluZGV4UmFuZG9tIDwgOCA/IDEgOiAyO1xuICAgIH1cbiAgICB0aGlzLnJhbmRvbWx5TGlmZUN5Y2xlU3RhcnQgPSBuZXcgRGF0ZSh0aGlzLmZyZXF1ZW5jeURhdGEuc3RhcnREYXRlICogMTAwMCk7XG4gICAgdGhpcy5zdGFydERhdGUgPVxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLnN0YXJ0RnJvbSA/PyB0aGlzLmZyZXF1ZW5jeURhdGEuc3RhcnREYXRlO1xuICAgIGlmIChOdW1iZXIobGlmZWN5Y2xlSW5mb1sxXSkgPiAwKSB7XG4gICAgICB0aGlzLnJhbmRvbWx5TGlmZWN5Y2xlT2NjdXJhbmNlID0gTnVtYmVyKGxpZmVjeWNsZUluZm9bMV0pO1xuICAgIH1cbiAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSB0aGlzLmZyZXF1ZW5jeURhdGEubGlmZWN5Y2xlO1xuICAgIGlmIChsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcbiAgICAgIGNvbnN0IGRhdGVTZWxlY3RlZCA9IG1vbWVudChcbiAgICAgICAgbGlmZWN5Y2xlSW5mb1swXSArICcgJyArIERFRkFVTFRfVElNRSxcbiAgICAgICAgJ0RELU1NTU0tWVlZWSBISDptbSBhJ1xuICAgICAgKS51bml4KCk7XG4gICAgICB0aGlzLnJhbmRvbWx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKGRhdGVTZWxlY3RlZCAqIDEwMDApO1xuICAgIH1cbiAgICBpZiAodGhpcy5mcmVxdWVuY3lEYXRhLmxpZmVjeWNsZSA9PSAnMDAwMC0wMC0wMH5+MCcpIHtcbiAgICAgIHRoaXMucmFuZG9tbHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDI7XG4gICAgfSBlbHNlIGlmIChsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcbiAgICAgIHRoaXMucmFuZG9tbHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmFuZG9tbHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDE7XG4gICAgfVxuICB9XG5cbiAgb25Nb250aFNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQuY2hlY2tlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZE1vbnRobHkucHVzaChldmVudC5pbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb250aGx5ID0gdGhpcy5zZWxlY3RlZE1vbnRobHkuZmlsdGVyKFxuICAgICAgICAoZWxlKSA9PiBlbGUgIT09IGV2ZW50LmluZGV4XG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmdldFJhbmRvbUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjb21wbGV0ZWQnKSB7XG4gICAgICB0aGlzLnJhbmRvbVdpbmRvdyA9IGV2ZW50LnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJhbmRvbUZhaWxlZCA9IGV2ZW50LnZhbHVlO1xuICAgIH1cbiAgICB0aGlzLmdldFJhbmRvbUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgcmFuZG9tQ2hlY2tlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5yYW5kb21UeXBlU2VsZWN0ZWQgPSBOdW1iZXIoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB0aGlzLmdldFJhbmRvbUluc3RhbmNlcygpO1xuICAgIHRoaXMuZ2V0UmFuZG9tRnJlcXVlbmN5KCk7XG4gIH1cblxuICByYW5kb21JbnN0YW5jZShldmVudDogYW55LCB0eXBlOiBhbnkpIHtcbiAgICBpZiAoXG4gICAgICAhTnVtYmVyLmlzTmFOKE51bWJlcihldmVudC50YXJnZXQudmFsdWUpKSAmJlxuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlICE9PSAnMCcgJiZcbiAgICAgIHBhcnNlSW50KGV2ZW50LnRhcmdldC52YWx1ZSkgPiAwICYmXG4gICAgICBwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpIDwgdGhpcy5yYW5kb21UeXBlTWF4W3R5cGVdICsgMVxuICAgICkge1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJhbmRvbUluc3RhbmNlcyA9XG4gICAgICAgIHRoaXMuZGVmYXVsdFJhbmRvbUluc3RhbmNlW3RoaXMucmFuZG9tVHlwZVNlbGVjdGVkXTtcbiAgICB9XG4gICAgdGhpcy5nZXRSYW5kb21GcmVxdWVuY3koKTtcbiAgfVxuXG4gIGxpZmVjeWNsZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9IGV2ZW50LmVuZHNCeSArICd+fjAnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gJzAwMDAtMDAtMDB+ficgKyBldmVudC5lbmRhZnRlcjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9ICcwMDAwLTAwLTAwfn4wJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmIChldmVudC5zdGFydEZyb20udG9TdHJpbmcoKS5sZW5ndGggPiAxMCkge1xuICAgICAgdGhpcy5zdGFydERhdGUgPSBNYXRoLmZsb29yKGV2ZW50LnN0YXJ0RnJvbSAvIDEwMDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoZXZlbnQuc3RhcnRGcm9tKTtcbiAgICB9XG4gICAgbGV0IGVuZEJ5RGF0ZSA9IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwICsgODY0MDAwMDApO1xuICAgIGlmIChldmVudC50eXBlID09PSAwKSB7XG4gICAgICBlbmRCeURhdGUgPSBldmVudC5lbmRzQnlcbiAgICAgICAgPyBtb21lbnQoZXZlbnQuZW5kc0J5ICsgJyAwMDowMDowMCcsICdERC1NTU0tWVlZWSBISDptbTpzcycpLnVuaXgoKVxuICAgICAgICA6IGVuZEJ5RGF0ZTtcbiAgICB9XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZF90aW1lX3V0YyA9IGVuZEJ5RGF0ZTtcbiAgICB0aGlzLmdldFJhbmRvbUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgc2VsZWN0ZWRNb250aChldmVudDogYW55KSB7XG4gICAgdGhpcy5nZXRSYW5kb21GcmVxdWVuY3koKTtcbiAgfVxuXG4gIHJhbmRvbVF1YXJ0ZXJseUNoZWNrZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWQgPSBOdW1iZXIoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB0aGlzLmdldFJhbmRvbUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgZ2V0UmFuZG9tRnJlcXVlbmN5KCkge1xuICAgIC8vMDogd2Vla2x5IDE6IG1vbnRobHkgMjpxdWFydGVybHkgMzogeWVhcmx5XG4gICAgbGV0IHNlbGVjdGVkTW9udGg6IGFueSA9IFtdXG4gICAgbGV0IGZyZXF1ZW5jeURldGFpbHM7XG4gICAgc3dpdGNoICh0aGlzLnJhbmRvbVR5cGVTZWxlY3RlZCkge1xuICAgICAgY2FzZSAwOlxuICAgICAgICBmcmVxdWVuY3lEZXRhaWxzID0gdGhpcy5nZXRXZWVrbHlGcmVxdWVuY3koKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIGZyZXF1ZW5jeURldGFpbHMgPSB0aGlzLmdldE1vbnRobHlGcmVxdWVuY3koKTtcbiAgICAgICAgc2VsZWN0ZWRNb250aCA9IHRoaXMuc2VsZWN0ZWRNb250aGx5O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgZnJlcXVlbmN5RGV0YWlscyA9IHRoaXMuZ2V0UXVhcnRlcmx5RnJlcXVlbmN5KCk7XG4gICAgICAgIHNlbGVjdGVkTW9udGggPSBmcmVxdWVuY3lEZXRhaWxzLm1vbnRoU2VxdWVuY2U7XG4gICAgICAgIHNlbGVjdGVkTW9udGggPSBzZWxlY3RlZE1vbnRoLm1hcCgoZWxlOiBhbnkpID0+IGVsZSAtIDEpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAzOlxuICAgICAgICBmcmVxdWVuY3lEZXRhaWxzID0gdGhpcy5nZXRZZWFybHlGcmVxdWVuY3koKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wYXR0ZXJuID0gZnJlcXVlbmN5RGV0YWlscz8ucGF0dGVybjtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGxhY2Vob2xkZXIgPSBmcmVxdWVuY3lEZXRhaWxzPy5wbGFjZWhvbGRlcjtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uY2FzZSA9ICdyYW5kb21seSc7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZEFmdGVyID0gdGhpcy5yYW5kb21GYWlsZWQ7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLndpbmRvdyA9IHRoaXMucmFuZG9tV2luZG93O1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5zZWxlY3RlZE1vbnRoID0gc2VsZWN0ZWRNb250aDtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ubGlmZWN5Y2xlRGV0YWlscyA9IHRoaXMubGlmZWN5Y2xlRGV0YWlscztcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uc3RhcnRGcm9tID0gdGhpcy5zdGFydERhdGU7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnJhbmRvbVR5cGVTZWxlY3RlZCA9IHRoaXMucmFuZG9tVHlwZVNlbGVjdGVkO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yYW5kb21JbnN0YW5jZXMgPSB0aGlzLnJhbmRvbUluc3RhbmNlcztcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHMuZW1pdCh0aGlzLmZyZXF1ZW5jeUluZm8pO1xuICB9XG5cbiAgZ2V0V2Vla2x5RnJlcXVlbmN5KCkge1xuICAgIHJldHVybiB7XG4gICAgICBwYXR0ZXJuOiA4ICsgJ34nICsgMSArICd+JyArIDAgKyAnficgKyB0aGlzLnJhbmRvbUluc3RhbmNlcyxcbiAgICAgIHBsYWNlaG9sZGVyOlxuICAgICAgICAnRXZlcnkgd2VlayBmb3IgJyArIHRoaXMucmFuZG9tSW5zdGFuY2VzICsgJyByYW5kb20gaW5zdGFuY2VzJyxcbiAgICB9O1xuICB9XG5cbiAgZ2V0TW9udGhseUZyZXF1ZW5jeSgpIHtcbiAgICB0aGlzLnNlbGVjdGVkTW9udGhseSA9IHRoaXMuc2VsZWN0ZWRNb250aGx5LnNvcnQoKG4xLCBuMikgPT4gbjEgLSBuMik7XG4gICAgY29uc3Qgc2VsZWN0ZWRNb250aCA9IHRoaXMuc2VsZWN0ZWRNb250aGx5Lm1hcCgoZWxlKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5zaG9ydE1vbnRoW2VsZV07XG4gICAgfSk7XG4gICAgY29uc3QgbW9udGhJbmRleCA9IHRoaXMuc2VsZWN0ZWRNb250aGx5Lm1hcCgoZWxlKSA9PiBlbGUgKyAxKTtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0dGVybjpcbiAgICAgICAgOCArICd+JyArIDIgKyAnficgKyBtb250aEluZGV4LmpvaW4oJywnKSArICd+JyArIHRoaXMucmFuZG9tSW5zdGFuY2VzLFxuICAgICAgcGxhY2Vob2xkZXI6XG4gICAgICAgICdFdmVyeSAnICtcbiAgICAgICAgc2VsZWN0ZWRNb250aC5qb2luKCcsICcpICtcbiAgICAgICAgJyBmb3IgJyArXG4gICAgICAgIHRoaXMucmFuZG9tSW5zdGFuY2VzICtcbiAgICAgICAgJyByYW5kb20gaW5zdGFuY2VzJyxcbiAgICB9O1xuICB9XG5cbiAgZ2V0UXVhcnRlcmx5RnJlcXVlbmN5KCkge1xuICAgIGxldCBtb250aFNlcXVlbmNlID1cbiAgICAgIHRoaXMucmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWQgPT09IDBcbiAgICAgICAgPyB0aGlzLnF1YXJ0ZXJseUdyb3VwLnNsaWNlKDAsIDQpXG4gICAgICAgIDogdGhpcy5yYW5kb21RdWFydGVybHlTZWxlY3RlZCA9PT0gMVxuICAgICAgICA/IHRoaXMucXVhcnRlcmx5R3JvdXAuc2xpY2UoNCwgOClcbiAgICAgICAgOiB0aGlzLnF1YXJ0ZXJseUdyb3VwLnNsaWNlKDgpO1xuICAgIG1vbnRoU2VxdWVuY2UgPSBtb250aFNlcXVlbmNlLm1hcCgoZWxlKSA9PiBlbGUgKyAxKTtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0dGVybjogOCArICd+JyArIDMgKyAnficgKyBtb250aFNlcXVlbmNlICsgJ34nICsgdGhpcy5yYW5kb21JbnN0YW5jZXMsXG4gICAgICBwbGFjZWhvbGRlcjpcbiAgICAgICAgJ0V2ZXJ5ICcgK1xuICAgICAgICB0aGlzLnF1YXJ0ZXJseU1vbnRoW3RoaXMucmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWRdICtcbiAgICAgICAgJyBmb3IgJyArXG4gICAgICAgIHRoaXMucmFuZG9tSW5zdGFuY2VzICtcbiAgICAgICAgJyByYW5kb20gaW5zdGFuY2VzJyxcbiAgICAgICAgbW9udGhTZXF1ZW5jZVxuXG4gICAgfTtcbiAgfVxuXG4gIGdldFllYXJseUZyZXF1ZW5jeSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0dGVybjpcbiAgICAgICAgOCArICd+JyArIDQgKyAnfjEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyficgKyB0aGlzLnJhbmRvbUluc3RhbmNlcyxcbiAgICAgIHBsYWNlaG9sZGVyOlxuICAgICAgICAnRXZlcnkgeWVhciBmb3IgJyArIHRoaXMucmFuZG9tSW5zdGFuY2VzICsgJyByYW5kb20gaW5zdGFuY2VzJyxcbiAgICB9O1xuICB9XG59XG4iLCI8IS0tIDxwPmZyZXF1ZW5jeS1yYW5kb20gd29ya3MhPC9wPiAtLT5cbjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktcmFuZG9tXCI+XG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5UWVBFOjwvZGl2PiBcbiAgICA8YXBwLWZyZXF1ZW5jeS1yYWRpby1saXN0XG4gICAgW3JhZGlvTGlzdF09XCJyYW5kb21UeXBlXCIgXG4gICAgW3NlbGVjdGVkSW5kZXhdPVwicmFuZG9tVHlwZVNlbGVjdGVkXCIgXG4gICAgKHNlbGVjdGVkUmFkaW8pPVwicmFuZG9tQ2hlY2tlZCgkZXZlbnQpXCJcbiAgICBbbmFtZV09XCIncmFuZG9tJ1wiXG4gICAgY2xhc3M9XCJyYW5kb20tcmFkaW9cIlxuICAgIFttb2RlXT1cIm1vZGVcIlxuICAgID48L2FwcC1mcmVxdWVuY3ktcmFkaW8tbGlzdD5cbiAgICA8YXBwLWZyZXF1ZW5jeS1yYWRpby1saXN0XG4gICAgICAgICpuZ0lmPVwicmFuZG9tVHlwZVNlbGVjdGVkID09IDJcIiAgXG4gICAgICAgIFtyYWRpb0xpc3RdPVwicXVhcnRlcmx5TW9udGhcIlxuICAgICAgICBbbmFtZV09XCIncXVhcnRlcidcIiBcbiAgICAgICAgW3NlbGVjdGVkSW5kZXhdPVwicmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWRcIiBcbiAgICAgICAgKHNlbGVjdGVkUmFkaW8pPVwicmFuZG9tUXVhcnRlcmx5Q2hlY2tlZCgkZXZlbnQpXCJcbiAgICAgICAgY2xhc3M9XCJxdWFydGVybHktcmFkaW9cIlxuICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgPlxuICAgIDwvYXBwLWZyZXF1ZW5jeS1yYWRpby1saXN0PlxuICAgIDxhcHAtZnJlcXVlbmN5LWNoZWNrYm94LWxpc3RcbiAgICAgICAgKm5nSWY9XCJyYW5kb21UeXBlU2VsZWN0ZWQgPT0gMVwiICBcbiAgICAgICAgW2lkXT1cIjhcIlxuICAgICAgICBbbGlzdEFycmF5XT1cIm1vbnRoTmFtZUFycmF5XCJcbiAgICAgICAgW3NlbGVjdGVkSW5kZXhdPVwic2VsZWN0ZWRNb250aGx5XCJcbiAgICAgICAgKHNlbGVjdGVkQ2hlY2tib3gpPVwib25Nb250aFNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICBjbGFzcz1cIm1vbnRobHktY2hlY2tib3hcIlxuICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICA+PC9hcHAtZnJlcXVlbmN5LWNoZWNrYm94LWxpc3Q+XG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1yYW5kb20tbWVzc2FnZSB2eC1wLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtcGFyYWdyYXBoLXR4dFwiPlJhbmRvbSBvY2N1cnJlbmNlIGZvcjwvZGl2PlxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJjb3VudE51bVwiIHR5cGU9XCJudW1iZXJcIiBbKG5nTW9kZWwpXT1cInJhbmRvbUluc3RhbmNlc1wiIChjaGFuZ2UpPVwicmFuZG9tSW5zdGFuY2UoJGV2ZW50LCByYW5kb21UeXBlU2VsZWN0ZWQpXCIgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiIG1pbj1cIjBcIiBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0XCI+aW5zdGFuY2VzLiBOb3RlLCB0aGUgbWF4aW11bSBudW1iZXIgb2Ygb2NjdXJyZW5jZXMgZm9yIDxzcGFuIGNsYXNzPVwidngtZnctNTAwXCI+e3sgcmFuZG9tVHlwZVtyYW5kb21UeXBlU2VsZWN0ZWRdLnRvTG93ZXJDYXNlKCkgfX08L3NwYW4+IGlzIHt7IHJhbmRvbVR5cGVNYXhbcmFuZG9tVHlwZVNlbGVjdGVkXSB9fS48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZVxuICAgICAgICBbaWRdID0gJzgnXG4gICAgICAgIFtwYWdlTmFtZV09XCIncmFuZG9tJ1wiXG4gICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgICBbaXNEZWFjdGl2YXRlZF09XCJmYWxzZVwiXG4gICAgICAgIFtjb21wbGV0ZWRWYWx1ZV09XCJyYW5kb21XaW5kb3dcIlxuICAgICAgICBbbm90Q29tcGxldGVkVmFsdWVdPVwicmFuZG9tRmFpbGVkXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgID48L2FwcC1mcmVxdWVuY3ktZHVlLWRhdGU+XG4gICAgPGFwcC1mcmVxdWVuY3ktbGlmZWN5Y2xlXG4gICAgICAgIFtpZF09XCI4XCJcbiAgICAgICAgW3N0YXJ0RGF0ZV09XCJyYW5kb21seUxpZmVDeWNsZVN0YXJ0XCJcbiAgICAgICAgW2VuZERhdGVdPVwicmFuZG9tbHlMaWZlQ3ljbGVFbmRUaW1lXCJcbiAgICAgICAgW29jY3VycmFuY2VdPVwicmFuZG9tbHlMaWZlY3ljbGVPY2N1cmFuY2VcIlxuICAgICAgICBbc2VsZWN0ZWRMaWZlY3ljbGVUeXBlXT1cInJhbmRvbWx5U2VsZXRlZExpZmVjeWNsZVR5cGVcIlxuICAgICAgICAoc2VsZWN0ZWRPY2N1cmFuY2UpPVwibGlmZWN5Y2xlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICA+PC9hcHAtZnJlcXVlbmN5LWxpZmVjeWNsZT5cbjwvZGl2PlxuIl19