bx-rest 0.1.1 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/consts/part-name-metods.d.ts +11 -0
  2. package/esm2020/consts/part-name-metods.mjs +12 -1
  3. package/esm2020/map/lists.mjs +2 -2
  4. package/esm2020/map/task.mjs +10 -1
  5. package/esm2020/public-api.mjs +2 -2
  6. package/esm2020/request/bizproc/activity.mjs +23 -0
  7. package/esm2020/request/bizproc/event.mjs +19 -0
  8. package/esm2020/request/bizproc/robot.mjs +22 -0
  9. package/esm2020/request/bizproc/task.mjs +20 -0
  10. package/esm2020/request/bizproc/workflow/instance.mjs +19 -0
  11. package/esm2020/request/bizproc/workflow/template.mjs +27 -0
  12. package/esm2020/request/bizproc/workflow.mjs +31 -0
  13. package/esm2020/request/bizproc.mjs +25 -0
  14. package/esm2020/request/lists/element.mjs +4 -3
  15. package/esm2020/request/lists.mjs +2 -2
  16. package/esm2020/request/log/blogcomment.mjs +19 -0
  17. package/esm2020/request/log/blogpost.mjs +31 -0
  18. package/esm2020/request/log.mjs +19 -0
  19. package/esm2020/request/tasks/task.mjs +34 -1
  20. package/esm2020/request/user.mjs +9 -6
  21. package/esm2020/request-navvy/bizproc/workflow.mjs +22 -0
  22. package/esm2020/request-navvy/bizproc.mjs +60 -0
  23. package/esm2020/request-navvy/disk/storage.mjs +7 -10
  24. package/esm2020/request-navvy/lists/element.mjs +6 -3
  25. package/esm2020/request-navvy/lists.mjs +2 -10
  26. package/esm2020/request-navvy/log/blogcomment.mjs +19 -0
  27. package/esm2020/request-navvy/log/blogpost.mjs +33 -0
  28. package/esm2020/request-navvy/log.mjs +19 -0
  29. package/esm2020/request-navvy/tasks/task.mjs +67 -19
  30. package/esm2020/request-navvy/user.mjs +7 -8
  31. package/esm2020/rest.mjs +25 -17
  32. package/esm2020/services/base.mjs +3 -3
  33. package/esm2020/services/http/HttpBX.mjs +34 -36
  34. package/esm2020/services/http/http.mjs +36 -38
  35. package/esm2020/services/http/sessionKey.mjs +126 -113
  36. package/esm2020/services/vanilla/sessionStorage.mjs +7 -7
  37. package/esm2020/settings.mjs +2 -2
  38. package/esm2020/typification/auth/save.mjs +1 -1
  39. package/esm2020/typification/rest/base/OrderOptions.mjs +2 -0
  40. package/esm2020/typification/rest/base/sort.mjs +2 -0
  41. package/esm2020/typification/rest/bizproc/base/filedEnum.mjs +2 -0
  42. package/esm2020/typification/rest/bizproc/workflow/start.mjs +2 -0
  43. package/esm2020/typification/rest/bizproc/workflow/template/list.mjs +2 -0
  44. package/esm2020/typification/rest/lists/element/add.mjs +2 -0
  45. package/esm2020/typification/rest/log/blogpost/add.mjs +2 -0
  46. package/esm2020/typification/rest/task/base/fieldsName.mjs +2 -0
  47. package/esm2020/typification/rest/tasks/task/add.mjs +2 -0
  48. package/esm2020/typification/rest/tasks/task/get.mjs +2 -0
  49. package/esm2020/typification/rest/tasks/task/list.mjs +2 -0
  50. package/esm2020/typification/rest/user/get.mjs +1 -1
  51. package/fesm2015/bx-rest.mjs +913 -490
  52. package/fesm2015/bx-rest.mjs.map +1 -1
  53. package/fesm2020/bx-rest.mjs +916 -488
  54. package/fesm2020/bx-rest.mjs.map +1 -1
  55. package/map/lists.d.ts +1 -1
  56. package/map/task.d.ts +4 -1
  57. package/package.json +1 -1
  58. package/public-api.d.ts +1 -1
  59. package/request/bizproc/activity.d.ts +12 -0
  60. package/request/bizproc/event.d.ts +8 -0
  61. package/request/bizproc/robot.d.ts +11 -0
  62. package/request/bizproc/task.d.ts +9 -0
  63. package/request/bizproc/workflow/instance.d.ts +8 -0
  64. package/request/bizproc/workflow/template.d.ts +16 -0
  65. package/request/bizproc/workflow.d.ts +20 -0
  66. package/request/bizproc.d.ts +16 -0
  67. package/request/lists/element.d.ts +2 -1
  68. package/request/lists.d.ts +1 -1
  69. package/request/log/blogcomment.d.ts +8 -0
  70. package/request/log/blogpost.d.ts +17 -0
  71. package/request/log.d.ts +10 -0
  72. package/request/tasks/task.d.ts +9 -1
  73. package/request-navvy/bizproc/workflow.d.ts +12 -0
  74. package/request-navvy/bizproc.d.ts +24 -0
  75. package/request-navvy/disk/storage.d.ts +1 -3
  76. package/request-navvy/lists/element.d.ts +3 -1
  77. package/request-navvy/lists.d.ts +1 -8
  78. package/request-navvy/log/blogcomment.d.ts +8 -0
  79. package/request-navvy/log/blogpost.d.ts +19 -0
  80. package/request-navvy/log.d.ts +10 -0
  81. package/request-navvy/tasks/task.d.ts +13 -3
  82. package/request-navvy/user.d.ts +1 -3
  83. package/rest.d.ts +17 -9
  84. package/services/http/sessionKey.d.ts +3 -23
  85. package/services/vanilla/sessionStorage.d.ts +5 -5
  86. package/settings.d.ts +1 -1
  87. package/typification/auth/save.d.ts +1 -1
  88. package/typification/rest/base/OrderOptions.d.ts +1 -0
  89. package/typification/rest/base/sort.d.ts +1 -0
  90. package/typification/rest/bizproc/base/filedEnum.d.ts +1 -0
  91. package/typification/rest/bizproc/workflow/start.d.ts +5 -0
  92. package/typification/rest/bizproc/workflow/template/list.d.ts +8 -0
  93. package/typification/rest/lists/element/add.d.ts +9 -0
  94. package/typification/rest/log/blogpost/add.d.ts +12 -0
  95. package/typification/rest/task/base/fieldsName.d.ts +1 -0
  96. package/typification/rest/{task/fieldsForSend.d.ts → tasks/task/add.d.ts} +1 -1
  97. package/typification/rest/tasks/task/get.d.ts +5 -0
  98. package/typification/rest/tasks/task/list.d.ts +65 -0
  99. package/typification/rest/user/get.d.ts +6 -1
  100. package/esm2020/store/auth.mjs +0 -26
  101. package/esm2020/typification/rest/task/fieldsForSend.mjs +0 -2
  102. package/store/auth.d.ts +0 -20
@@ -1,31 +1,37 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import SnackBarService from '../../services/snack-bar/snack-bar.service';
3
3
  import { map } from 'rxjs/operators';
4
+ import { tap } from 'rxjs';
5
+ import { SessionStorage } from '../../services/vanilla/sessionStorage';
4
6
  import * as i0 from "@angular/core";
5
7
  import * as i1 from "../../request/tasks/task";
6
8
  import * as i2 from "../../map/task";
9
+ import * as i3 from "../../services/navvy";
7
10
  // export interface TimeProcess {
8
11
  // total: number,
9
12
  // next: number
10
13
  // }
11
14
  export class BXRestNavvyTasksTask {
12
- // pageSize = 50
13
- // nowLoad$ = new ReplaySubject<TimeProcess>(1)
14
- // def: { select: iBXRestTaskFieldsName[] } = {
15
- // select: ['ID', 'PARENT_ID', 'TITLE', 'DESCRIPTION', 'MARK', 'PRIORITY', 'STATUS', 'MULTITASK',
16
- // 'GROUP_ID', 'STAGE_ID', 'CREATED_BY', 'CREATED_DATE', 'RESPONSIBLE_ID', 'ACCOMPLICES', 'AUDITORS',
17
- // 'CHANGED_BY', 'CHANGED_DATE', 'STATUS_CHANGED_DATE', 'CLOSED_BY', 'CLOSED_DATE', 'DATE_START', 'VIEWED_DATE',
18
- // 'DEADLINE', 'START_DATE_PLAN', 'END_DATE_PLAN', 'FORKED_BY_TEMPLATE_ID', 'TIME_ESTIMATE', 'TIME_SPENT_IN_LOGS',
19
- // 'TAGS', 'ALLOW_TIME_TRACKING'
20
- // ]
21
- // }
22
15
  // storeTask$: Observable<iStoreTask>
23
- constructor(BXRestTasks, snackBar,
16
+ constructor(BXRestTasksTask, snackBar,
24
17
  // private store: Store<{ tasks: IStoreTask }>,
25
- taskMap) {
26
- this.BXRestTasks = BXRestTasks;
18
+ taskMap,
19
+ // private taskResultMap: BitrixApiTaskResultMapServices
20
+ Navvy) {
21
+ this.BXRestTasksTask = BXRestTasksTask;
27
22
  this.snackBar = snackBar;
28
23
  this.taskMap = taskMap;
24
+ this.Navvy = Navvy;
25
+ // pageSize = 50
26
+ // nowLoad$ = new ReplaySubject<TimeProcess>(1)
27
+ this.def = {
28
+ select: ['ID', 'PARENT_ID', 'TITLE', 'DESCRIPTION', 'MARK', 'PRIORITY', 'STATUS', 'MULTITASK',
29
+ 'GROUP_ID', 'STAGE_ID', 'CREATED_BY', 'CREATED_DATE', 'RESPONSIBLE_ID', 'ACCOMPLICES', 'AUDITORS',
30
+ 'CHANGED_BY', 'CHANGED_DATE', 'STATUS_CHANGED_DATE', 'CLOSED_BY', 'CLOSED_DATE', 'DATE_START', 'VIEWED_DATE',
31
+ 'DEADLINE', 'START_DATE_PLAN', 'END_DATE_PLAN', 'FORKED_BY_TEMPLATE_ID', 'TIME_ESTIMATE', 'TIME_SPENT_IN_LOGS',
32
+ 'TAGS', 'ALLOW_TIME_TRACKING'
33
+ ]
34
+ };
29
35
  // this.storeTask$ = this.store.select('tasks')
30
36
  // this.nowLoad$.next({
31
37
  // total: 0,
@@ -33,9 +39,9 @@ export class BXRestNavvyTasksTask {
33
39
  // })
34
40
  }
35
41
  add(param) {
36
- return this.BXRestTasks.add(param).pipe(map(v => {
37
- if (v && v.result && v.result.task) {
38
- return this.taskMap.TaskBXHttpToTaskBX(v.result.task);
42
+ return this.Navvy.mapAndSnackBarError(this.BXRestTasksTask.add(param), 'Не удалось получить задачу').pipe(map(v => {
43
+ if (v && v.task) {
44
+ return this.taskMap.add(v.task);
39
45
  }
40
46
  return undefined;
41
47
  }));
@@ -52,13 +58,55 @@ export class BXRestNavvyTasksTask {
52
58
  // }
53
59
  // ))
54
60
  }
61
+ /*
62
+ update(taskId: number, updateFields: iBXRestTaskFieldsName[], task: iBXRestTask) {
63
+ let sendTask: Record<string, any> = {}
64
+ let taskTS: Record<string, any> = task
65
+ if (updateFields.length) {
66
+ for (let updateField of updateFields) {
67
+ if (taskTS[camelCase(updateField)]) {
68
+ sendTask[updateField] = taskTS[camelCase(updateField)]
69
+ }
70
+ }
71
+ if (Object.values(sendTask).length) {
72
+ return this.http.post(
73
+ this.url.update,
74
+ {taskId: taskId, fields: sendTask},
75
+ 'error to update task')
76
+ } else {
77
+ this.snackBar.error('not valid send data task')
78
+ console.error('not valid send data task', sendTask, task)
79
+ return of(undefined)
80
+ }
81
+ }
82
+
83
+ this.snackBar.warning('not have field for update')
84
+ return of(undefined)
85
+ }
86
+ */
87
+ get(requestArray) {
88
+ if (!requestArray.select) {
89
+ requestArray.select = this.def.select;
90
+ }
91
+ return this.Navvy.mapAndSnackBarError(this.BXRestTasksTask.get(requestArray), 'Не удалось получить задачу').pipe(map(v => (v && v.task) ? v.task : undefined), map(v => (v) ? this.taskMap.get(v) : undefined));
92
+ }
93
+ list(param = {}) {
94
+ if (!param.select) {
95
+ param.select = this.def.select;
96
+ }
97
+ return this.Navvy.mapAndSnackBarError(this.BXRestTasksTask.list(param), 'Не удалось получить задачи').pipe(map(v => (v && v.tasks) ? v.tasks : undefined), map(v => (v) ? this.taskMap.list(v) : undefined), tap(v => {
98
+ if (v) {
99
+ SessionStorage.setItem(this.constructor.name + this.list.name, v);
100
+ }
101
+ }));
102
+ }
55
103
  }
56
- BXRestNavvyTasksTask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasksTask, deps: [{ token: i1.BXRestTasksTask }, { token: SnackBarService }, { token: i2.BXRestTaskMap }], target: i0.ɵɵFactoryTarget.Injectable });
104
+ BXRestNavvyTasksTask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasksTask, deps: [{ token: i1.BXRestTasksTask }, { token: SnackBarService }, { token: i2.BXRestTaskMap }, { token: i3.Navvy }], target: i0.ɵɵFactoryTarget.Injectable });
57
105
  BXRestNavvyTasksTask.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasksTask, providedIn: 'root' });
58
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasksTask, decorators: [{
59
107
  type: Injectable,
60
108
  args: [{
61
109
  providedIn: 'root'
62
110
  }]
63
- }], ctorParameters: function () { return [{ type: i1.BXRestTasksTask }, { type: SnackBarService }, { type: i2.BXRestTaskMap }]; } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGFza3MvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sZUFBZSxNQUFNLDRDQUE0QyxDQUFBO0FBRXhFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUlyQyxpQ0FBaUM7QUFDakMsbUJBQW1CO0FBQ25CLGlCQUFpQjtBQUNqQixJQUFJO0FBTUosTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixnQkFBZ0I7SUFDaEIsK0NBQStDO0lBRS9DLCtDQUErQztJQUMvQyxtR0FBbUc7SUFDbkcseUdBQXlHO0lBQ3pHLG9IQUFvSDtJQUNwSCxzSEFBc0g7SUFDdEgsb0NBQW9DO0lBQ3BDLE1BQU07SUFDTixJQUFJO0lBRUoscUNBQXFDO0lBRXJDLFlBQ1UsV0FBNEIsRUFDNUIsUUFBeUI7SUFDbEMsZ0RBQWdEO0lBQ3ZDLE9BQXNCO1FBSHRCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUV6QixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBRy9CLGdEQUFnRDtRQUNoRCx3QkFBd0I7UUFDeEIsZUFBZTtRQUNmLGFBQWE7UUFDYixNQUFNO0lBQ1AsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFzQztRQUN4QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDckMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtnQkFDbEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7YUFDdEQ7WUFDRCxPQUFPLFNBQVMsQ0FBQTtRQUNsQixDQUFDLENBQ0YsQ0FBQyxDQUFBO1FBQ0osbUZBQW1GO1FBQ25GLGVBQWU7UUFDZiw4Q0FBOEM7UUFDOUMsZ0NBQWdDO1FBQ2hDLGVBQWU7UUFDZixjQUFjO1FBQ2QsdUVBQXVFO1FBQ3ZFLGVBQWU7UUFDZixVQUFVO1FBQ1YseUJBQXlCO1FBQ3pCLFFBQVE7UUFDUixPQUFPO0lBQ1QsQ0FBQzs7aUhBbkRVLG9CQUFvQixpREFmMUIsZUFBZTtxSEFlVCxvQkFBb0IsY0FGbkIsTUFBTTsyRkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CO3dGQWRNLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCBTbmFja0JhclNlcnZpY2UgZnJvbSAnLi4vLi4vc2VydmljZXMvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJ1xuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza0FkZCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZmllbGRzRm9yU2VuZCdcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJYUmVzdFRhc2tNYXAgfSBmcm9tICcuLi8uLi9tYXAvdGFzaydcbmltcG9ydCB7IEJYUmVzdFRhc2tzVGFzayB9IGZyb20gJy4uLy4uL3JlcXVlc3QvdGFza3MvdGFzaydcblxuLy8gZXhwb3J0IGludGVyZmFjZSBUaW1lUHJvY2VzcyB7XG4vLyAgIHRvdGFsOiBudW1iZXIsXG4vLyAgIG5leHQ6IG51bWJlclxuLy8gfVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5VGFza3NUYXNrIHtcblxuICAvLyBwYWdlU2l6ZSA9IDUwXG4gIC8vIG5vd0xvYWQkID0gbmV3IFJlcGxheVN1YmplY3Q8VGltZVByb2Nlc3M+KDEpXG5cbiAgLy8gZGVmOiB7IHNlbGVjdDogaUJYUmVzdFRhc2tGaWVsZHNOYW1lW10gfSA9IHtcbiAgLy8gICBzZWxlY3Q6IFsnSUQnLCAnUEFSRU5UX0lEJywgJ1RJVExFJywgJ0RFU0NSSVBUSU9OJywgJ01BUksnLCAnUFJJT1JJVFknLCAnU1RBVFVTJywgJ01VTFRJVEFTSycsXG4gIC8vICAgICAnR1JPVVBfSUQnLCAnU1RBR0VfSUQnLCAnQ1JFQVRFRF9CWScsICdDUkVBVEVEX0RBVEUnLCAnUkVTUE9OU0lCTEVfSUQnLCAnQUNDT01QTElDRVMnLCAnQVVESVRPUlMnLFxuICAvLyAgICAgJ0NIQU5HRURfQlknLCAnQ0hBTkdFRF9EQVRFJywgJ1NUQVRVU19DSEFOR0VEX0RBVEUnLCAnQ0xPU0VEX0JZJywgJ0NMT1NFRF9EQVRFJywgJ0RBVEVfU1RBUlQnLCAnVklFV0VEX0RBVEUnLFxuICAvLyAgICAgJ0RFQURMSU5FJywgJ1NUQVJUX0RBVEVfUExBTicsICdFTkRfREFURV9QTEFOJywgJ0ZPUktFRF9CWV9URU1QTEFURV9JRCcsICdUSU1FX0VTVElNQVRFJywgJ1RJTUVfU1BFTlRfSU5fTE9HUycsXG4gIC8vICAgICAnVEFHUycsICdBTExPV19USU1FX1RSQUNLSU5HJ1xuICAvLyAgIF1cbiAgLy8gfVxuXG4gIC8vIHN0b3JlVGFzayQ6IE9ic2VydmFibGU8aVN0b3JlVGFzaz5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIEJYUmVzdFRhc2tzOiBCWFJlc3RUYXNrc1Rhc2ssXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxuICAgLy8gIHByaXZhdGUgc3RvcmU6IFN0b3JlPHsgdGFza3M6IElTdG9yZVRhc2sgfT4sXG4gICAgcHJpdmF0ZSB0YXNrTWFwOiBCWFJlc3RUYXNrTWFwLFxuICAgLy8gcHJpdmF0ZSB0YXNrUmVzdWx0TWFwOiBCaXRyaXhBcGlUYXNrUmVzdWx0TWFwU2VydmljZXNcbiAgKSB7XG4gICAvLyAgdGhpcy5zdG9yZVRhc2skID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3Rhc2tzJylcbiAgIC8vICB0aGlzLm5vd0xvYWQkLm5leHQoe1xuICAgLy8gICAgdG90YWw6IDAsXG4gICAvLyAgICBuZXh0OiAwXG4gICAvLyAgfSlcbiAgfVxuXG4gIGFkZChwYXJhbTogeyBmaWVsZHM6IGlCWFJlc3RQYXJhbVRhc2tBZGQgfSkge1xuICAgIHJldHVybiB0aGlzLkJYUmVzdFRhc2tzLmFkZChwYXJhbSkucGlwZShcbiAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCAmJiB2LnJlc3VsdC50YXNrKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50YXNrTWFwLlRhc2tCWEh0dHBUb1Rhc2tCWCh2LnJlc3VsdC50YXNrKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgICkpXG4gICAgLy8gcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHsgdGFzazogVGFza0JYSHR0cCB9Pih0aGlzLnVybC5hZGQsIHtmaWVsZHM6IHBhcmFtfSkucGlwZShcbiAgICAvLyAgIG1hcCh2ID0+IHtcbiAgICAvLyAgICAgICBpZiAodiAmJiB2LnJlc3VsdCAmJiB2LnJlc3VsdC50YXNrKSB7XG4gICAgLy8gICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAvLyAgICAgICAgICAgdixcbiAgICAvLyAgICAgICAgICAge1xuICAgIC8vICAgICAgICAgICAgIHJlc3VsdDogdGhpcy50YXNrQlhNYXAuVGFza0JYSHR0cFRvVGFza0JYKHYucmVzdWx0LnRhc2spXG4gICAgLy8gICAgICAgICAgIH0pXG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAvLyAgICAgfVxuICAgIC8vICAgKSlcbiAgfVxuXG4gIC8qXG4gIHVwZGF0ZSh0YXNrSWQ6IG51bWJlciwgdXBkYXRlRmllbGRzOiBpQlhSZXN0VGFza0ZpZWxkc05hbWVbXSwgdGFzazogaUJYUmVzdFRhc2spIHtcbiAgICBsZXQgc2VuZFRhc2s6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fVxuICAgIGxldCB0YXNrVFM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB0YXNrXG4gICAgaWYgKHVwZGF0ZUZpZWxkcy5sZW5ndGgpIHtcbiAgICAgIGZvciAobGV0IHVwZGF0ZUZpZWxkIG9mIHVwZGF0ZUZpZWxkcykge1xuICAgICAgICBpZiAodGFza1RTW2NhbWVsQ2FzZSh1cGRhdGVGaWVsZCldKSB7XG4gICAgICAgICAgc2VuZFRhc2tbdXBkYXRlRmllbGRdID0gdGFza1RTW2NhbWVsQ2FzZSh1cGRhdGVGaWVsZCldXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChPYmplY3QudmFsdWVzKHNlbmRUYXNrKS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgICAgIHRoaXMudXJsLnVwZGF0ZSxcbiAgICAgICAgICB7dGFza0lkOiB0YXNrSWQsIGZpZWxkczogc2VuZFRhc2t9LFxuICAgICAgICAgICdlcnJvciB0byB1cGRhdGUgdGFzaycpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNuYWNrQmFyLmVycm9yKCdub3QgdmFsaWQgc2VuZCBkYXRhIHRhc2snKVxuICAgICAgICBjb25zb2xlLmVycm9yKCdub3QgdmFsaWQgc2VuZCBkYXRhIHRhc2snLCBzZW5kVGFzaywgdGFzaylcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNuYWNrQmFyLndhcm5pbmcoJ25vdCBoYXZlIGZpZWxkIGZvciB1cGRhdGUnKVxuICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gIH1cblxuICBnZXQocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0JYKTogT2JzZXJ2YWJsZTxUYXNrQlggfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIXJlcXVlc3RBcnJheS5zZWxlY3QpIHtcbiAgICAgIHJlcXVlc3RBcnJheS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFuc3dlckFwaVRhc2tPbmVCWEh0dHA+KHRoaXMudXJsLmdldCwgcmVxdWVzdEFycmF5KS5waXBlKFxuICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSksXG4gICAgICBtYXAodiA9PiAodiAmJiB2LnRhc2spID8gdi50YXNrIDogdW5kZWZpbmVkKSxcbiAgICAgIG1hcCh2ID0+ICh2KSA/IHRoaXMudGFza0JYTWFwLlRhc2tCWEh0dHBUb1Rhc2tCWCh2KSA6IHVuZGVmaW5lZClcbiAgICApXG4gIH1cblxuICBsaXN0KHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlggPSB7fSk6IE9ic2VydmFibGU8QW5zd2VyQXBpVGFza0JYIHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCFyZXF1ZXN0QXJyYXkuc2VsZWN0KSB7XG4gICAgICByZXF1ZXN0QXJyYXkuc2VsZWN0ID0gdGhpcy5kZWYuc2VsZWN0XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBbnN3ZXJBcGlUYXNrQlhIdHRwIHwgdW5kZWZpbmVkPih0aGlzLnVybC5saXN0LCByZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICBtYXAodiA9PiB7XG4gICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQgJiYgdi5yZXN1bHQudGFza3MpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhc2tzID0gdi5yZXN1bHQudGFza3MubWFwKGkgPT4gdGhpcy50YXNrQlhNYXAuVGFza0JYSHR0cFRvVGFza0JYKGkpKVxuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChhZGRUb1Rhc2tMaXN0KHtkYXRhOiB0YXNrc30pKVxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgIHYsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXN1bHQ6XG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhc2tzOiB0YXNrc1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG5cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgbGlzdEFycmF5KHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlggPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmxpc3QocmVxdWVzdEFycmF5KS5waXBlKFxuICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSksXG4gICAgICBtYXAodiA9PiAodiAmJiB2LnRhc2tzKSA/IHYudGFza3MgOiBbXSlcbiAgICApXG4gIH1cblxuICBsaXN0QWxsKHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlggPSB7fSwgY2FjaGUgPSBmYWxzZSk6IE9ic2VydmFibGU8VGFza0JYW10+IHtcbiAgICBpZiAoIXJlcXVlc3RBcnJheS5zZWxlY3QpIHtcbiAgICAgIHJlcXVlc3RBcnJheS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcbiAgICAgIGlmIChjYWNoZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZVRhc2skLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICBtZXJnZU1hcCh0YXNrcyA9PiB7XG4gICAgICAgICAgICBpZiAodGFza3MgJiYgdGFza3MuZGF0YS5odHRwLmxpc3QgJiYgcmVxdWVzdEFycmF5LmZpbHRlciAmJiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlkcyA9ICh0eXBlb2YgcmVxdWVzdEFycmF5LmZpbHRlci5JRCA9PT0gJ251bWJlcicpID8gW3JlcXVlc3RBcnJheS5maWx0ZXIuSURdIDogcmVxdWVzdEFycmF5LmZpbHRlci5JRFxuICAgICAgICAgICAgICBsZXQgZmlsdGVyID0gdGFza3MuZGF0YS5odHRwLmxpc3QuZmlsdGVyKGkgPT4gKGkuaWQpID8gaWRzLmluY2x1ZGVzKGkuaWQpIDogZmFsc2UpXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSBpZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZpbHRlcilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheSlcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxuICB9XG5cbiAgZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlgpOiBPYnNlcnZhYmxlPFRhc2tCWFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubGlzdChyZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoaXRlbXM6IEFuc3dlckFwaVRhc2tCWCB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGVJbnB1dDxhbnk+IHwgT2JzZXJ2YWJsZTxBbnN3ZXJBcGlUYXNrQlhbXT4gPT4ge1xuICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMucmVzdWx0ICYmIHR5cGVvZiBpdGVtcy5yZXN1bHQudGFza3MgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgY29uc3QgaXRlbXMkID0gb2YoaXRlbXMucmVzdWx0LnRhc2tzKVxuICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XG4gICAgICAgICAgICB0aGlzLm5vd0xvYWQkLm5leHQoe1xuICAgICAgICAgICAgICB0b3RhbDogKGl0ZW1zLnRvdGFsKSA/IGl0ZW1zLnRvdGFsIDogMCxcbiAgICAgICAgICAgICAgbmV4dDogaXRlbXMubmV4dFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHJlcXVlc3RBcnJheS5zdGFydCA9IGl0ZW1zLm5leHRcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICAgICAgICAgIG1hcCh2RW5kID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodkVuZCAmJiBpdGVtcy5yZXN1bHQudGFza3MpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uaXRlbXMucmVzdWx0LnRhc2tzLCAuLi52RW5kXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKGl0ZW1zLnJlc3VsdC50YXNrcykgPyBpdGVtcy5yZXN1bHQudGFza3MgOiBbXVxuICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5ub3dMb2FkJC5uZXh0KHtcbiAgICAgICAgICAgIHRvdGFsOiAwLFxuICAgICAgICAgICAgbmV4dDogMFxuICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zJFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRGaWVsZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVUYXNrJC5waXBlKFxuICAgICAgbWVyZ2VNYXAodiA9PiB7XG4gICAgICAgIGlmICh2ICYmICF2LmRhdGEuZmllbGRzKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8eyBmaWVsZHM6IGlHZXRGaWVsZHNEZXNjcmlwdGlvbiB9Pj4odGhpcy51cmwuZ2V0RmllbGRzKS5waXBlKFxuICAgICAgICAgICAgdGFwKHYgPT4ge1xuICAgICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUZpZWxkcyh2LnJlc3VsdCkpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCAmJiB2LnJlc3VsdC5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdi5yZXN1bHQuZmllbGRzfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHYuZGF0YS5maWVsZHMpIHtcbiAgICAgICAgICByZXR1cm4gb2Yoe3Jlc3VsdDogY2xvbmU8aUdldEZpZWxkc0Rlc2NyaXB0aW9uPih2LmRhdGEuZmllbGRzKX0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBkZWxldGVSZXN1bHRGcm9tQ29tbWVudChjb21tZW50SUQ6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGFueT4+KHRoaXMudXJsLnJlc3VsdC5kZWxldGVGcm9tQ29tbWVudCwge2NvbW1lbnRJZDogY29tbWVudElEfSlcbiAgfVxuXG4gIGFkZFJlc3VsdEZyb21Db21tZW50KGNvbW1lbnRJRDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8aVRhc2tSZXN1bHRIdHRwPj4odGhpcy51cmwucmVzdWx0LmFkZEZyb21Db21tZW50LCB7Y29tbWVudElkOiBjb21tZW50SUR9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy50YXNrUmVzdWx0TWFwLmlUYXNrUmVzdWx0SHR0cFRvaVRhc2tSZXN1bHQodi5yZXN1bHQpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfSkpXG4gIH1cblxuICBnZXRSZXN1bExpc3QodGFza0lkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGlUYXNrUmVzdWx0W10gfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUh0dHBBbnN3ZXJCWDxpVGFza1Jlc3VsdEh0dHBbXT4+KHRoaXMudXJsLnJlc3VsdC5saXN0LCB7dGFza0lkOiB0YXNrSWR9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuIHYucmVzdWx0Lm1hcChpID0+IHRoaXMudGFza1Jlc3VsdE1hcC5pVGFza1Jlc3VsdEh0dHBUb2lUYXNrUmVzdWx0KGkpKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIH0pKVxuICB9XG5cbiAgZ2V0UGxhbm5lckxpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8KHN0cmluZyB8IG51bWJlcilbXT4+KHRoaXMudXJsLnBsYW5uZXIuZ2V0bGlzdClcbiAgfVxuXG4gIGdldGFjY2VzcyhpZDogbnVtYmVyLCB1c2VyczogbnVtYmVyW10gPSBbXSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlHZXRBY2Nlc3NUYXNrPj4odGhpcy51cmwuZ2V0YWNjZXNzLCB7dGFza0lkOiBpZCwgdXNlcjogdXNlcnN9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHRoaXMuaHR0cC5tYXBSZXN1bHQodikpLFxuICAgICAgICBtYXAodiA9PiAodiAmJiB2LmFsbG93ZWRBY3Rpb25zKSA/IHYuYWxsb3dlZEFjdGlvbnMgOiB1bmRlZmluZWQpXG4gICAgICApXG4gIH1cbiAgICovXG59XG4iXX0=
111
+ }], ctorParameters: function () { return [{ type: i1.BXRestTasksTask }, { type: SnackBarService }, { type: i2.BXRestTaskMap }, { type: i3.Navvy }]; } });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGFza3MvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sZUFBZSxNQUFNLDRDQUE0QyxDQUFBO0FBQ3hFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFyQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQTs7Ozs7QUFFdEUsaUNBQWlDO0FBQ2pDLG1CQUFtQjtBQUNuQixpQkFBaUI7QUFDakIsSUFBSTtBQU1KLE1BQU0sT0FBTyxvQkFBb0I7SUFjL0IscUNBQXFDO0lBRXJDLFlBQ1UsZUFBZ0MsRUFDaEMsUUFBeUI7SUFDbEMsZ0RBQWdEO0lBQ3ZDLE9BQXNCO0lBQy9CLHdEQUF3RDtJQUMvQyxLQUFZO1FBTFosb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBRXpCLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFFdEIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQXBCdEIsZ0JBQWdCO1FBQ2hCLCtDQUErQztRQUUvQyxRQUFHLEdBQXdDO1lBQ3pDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXO2dCQUMzRixVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFVBQVU7Z0JBQ2pHLFlBQVksRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVB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Q0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7YUFDbEU7UUFDSCxDQUFDLENBQ0YsQ0FDRixDQUFBO0lBQ0gsQ0FBQzs7aUhBMUdVLG9CQUFvQixpREFyQjFCLGVBQWU7cUhBcUJULG9CQUFvQixjQUZuQixNQUFNOzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7d0ZBcEJNLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCBTbmFja0JhclNlcnZpY2UgZnJvbSAnLi4vLi4vc2VydmljZXMvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJ1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQlhSZXN0VGFza01hcCB9IGZyb20gJy4uLy4uL21hcC90YXNrJ1xuaW1wb3J0IHsgQlhSZXN0VGFza3NUYXNrIH0gZnJvbSAnLi4vLi4vcmVxdWVzdC90YXNrcy90YXNrJ1xuaW1wb3J0IHsgaUJYUmVzdFRhc2tGaWVsZHNOYW1lIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9iYXNlL2ZpZWxkc05hbWUnXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UYXNrQWRkIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9hZGQnXG5pbXBvcnQgaUJYUmVzdFBhcmFtVGFza0dldCBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2dldCdcbmltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2dnknXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UYXNrc0xpc3QgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2xpc3QnXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdmFuaWxsYS9zZXNzaW9uU3RvcmFnZSdcblxuLy8gZXhwb3J0IGludGVyZmFjZSBUaW1lUHJvY2VzcyB7XG4vLyAgIHRvdGFsOiBudW1iZXIsXG4vLyAgIG5leHQ6IG51bWJlclxuLy8gfVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5VGFza3NUYXNrIHtcblxuICAvLyBwYWdlU2l6ZSA9IDUwXG4gIC8vIG5vd0xvYWQkID0gbmV3IFJlcGxheVN1YmplY3Q8VGltZVByb2Nlc3M+KDEpXG5cbiAgZGVmOiB7IHNlbGVjdDogaUJYUmVzdFRhc2tGaWVsZHNOYW1lW10gfSA9IHtcbiAgICBzZWxlY3Q6IFsnSUQnLCAnUEFSRU5UX0lEJywgJ1RJVExFJywgJ0RFU0NSSVBUSU9OJywgJ01BUksnLCAnUFJJT1JJVFknLCAnU1RBVFVTJywgJ01VTFRJVEFTSycsXG4gICAgICAnR1JPVVBfSUQnLCAnU1RBR0VfSUQnLCAnQ1JFQVRFRF9CWScsICdDUkVBVEVEX0RBVEUnLCAnUkVTUE9OU0lCTEVfSUQnLCAnQUNDT01QTElDRVMnLCAnQVVESVRPUlMnLFxuICAgICAgJ0NIQU5HRURfQlknLCAnQ0hBTkdFRF9EQVRFJywgJ1NUQVRVU19DSEFOR0VEX0RBVEUnLCAnQ0xPU0VEX0JZJywgJ0NMT1NFRF9EQVRFJywgJ0RBVEVfU1RBUlQnLCAnVklFV0VEX0RBVEUnLFxuICAgICAgJ0RFQURMSU5FJywgJ1NUQVJUX0RBVEVfUExBTicsICdFTkRfREFURV9QTEFOJywgJ0ZPUktFRF9CWV9URU1QTEFURV9JRCcsICdUSU1FX0VTVElNQVRFJywgJ1RJTUVfU1BFTlRfSU5fTE9HUycsXG4gICAgICAnVEFHUycsICdBTExPV19USU1FX1RSQUNLSU5HJ1xuICAgIF1cbiAgfVxuXG4gIC8vIHN0b3JlVGFzayQ6IE9ic2VydmFibGU8aVN0b3JlVGFzaz5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIEJYUmVzdFRhc2tzVGFzazogQlhSZXN0VGFza3NUYXNrLFxuICAgIHByaXZhdGUgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcbiAgIC8vICBwcml2YXRlIHN0b3JlOiBTdG9yZTx7IHRhc2tzOiBJU3RvcmVUYXNrIH0+LFxuICAgIHByaXZhdGUgdGFza01hcDogQlhSZXN0VGFza01hcCxcbiAgIC8vIHByaXZhdGUgdGFza1Jlc3VsdE1hcDogQml0cml4QXBpVGFza1Jlc3VsdE1hcFNlcnZpY2VzXG4gICAgcHJpdmF0ZSBOYXZ2eTogTmF2dnksXG4gICkge1xuICAgLy8gIHRoaXMuc3RvcmVUYXNrJCA9IHRoaXMuc3RvcmUuc2VsZWN0KCd0YXNrcycpXG4gICAvLyAgdGhpcy5ub3dMb2FkJC5uZXh0KHtcbiAgIC8vICAgIHRvdGFsOiAwLFxuICAgLy8gICAgbmV4dDogMFxuICAgLy8gIH0pXG4gIH1cblxuICBhZGQocGFyYW06IHsgZmllbGRzOiBpQlhSZXN0UGFyYW1UYXNrQWRkIH0pIHtcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5tYXBBbmRTbmFja0JhckVycm9yKHRoaXMuQlhSZXN0VGFza3NUYXNrLmFkZChwYXJhbSksICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0LfQsNC00LDRh9GDJykucGlwZShcbiAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgaWYgKHYgJiYgdi50YXNrKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudGFza01hcC5hZGQodi50YXNrKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgIH1cbiAgICApKVxuICAgIC8vIHJldHVybiB0aGlzLmh0dHAucG9zdDx7IHRhc2s6IFRhc2tCWEh0dHAgfT4odGhpcy51cmwuYWRkLCB7ZmllbGRzOiBwYXJhbX0pLnBpcGUoXG4gICAgLy8gICBtYXAodiA9PiB7XG4gICAgLy8gICAgICAgaWYgKHYgJiYgdi5yZXN1bHQgJiYgdi5yZXN1bHQudGFzaykge1xuICAgIC8vICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgLy8gICAgICAgICAgIHYsXG4gICAgLy8gICAgICAgICAgIHtcbiAgICAvLyAgICAgICAgICAgICByZXN1bHQ6IHRoaXMudGFza0JYTWFwLlRhc2tCWEh0dHBUb1Rhc2tCWCh2LnJlc3VsdC50YXNrKVxuICAgIC8vICAgICAgICAgICB9KVxuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgLy8gICAgIH1cbiAgICAvLyAgICkpXG4gIH1cblxuICAvKlxuICB1cGRhdGUodGFza0lkOiBudW1iZXIsIHVwZGF0ZUZpZWxkczogaUJYUmVzdFRhc2tGaWVsZHNOYW1lW10sIHRhc2s6IGlCWFJlc3RUYXNrKSB7XG4gICAgbGV0IHNlbmRUYXNrOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge31cbiAgICBsZXQgdGFza1RTOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gdGFza1xuICAgIGlmICh1cGRhdGVGaWVsZHMubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCB1cGRhdGVGaWVsZCBvZiB1cGRhdGVGaWVsZHMpIHtcbiAgICAgICAgaWYgKHRhc2tUU1tjYW1lbENhc2UodXBkYXRlRmllbGQpXSkge1xuICAgICAgICAgIHNlbmRUYXNrW3VwZGF0ZUZpZWxkXSA9IHRhc2tUU1tjYW1lbENhc2UodXBkYXRlRmllbGQpXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoT2JqZWN0LnZhbHVlcyhzZW5kVGFzaykubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgICAgICB0aGlzLnVybC51cGRhdGUsXG4gICAgICAgICAge3Rhc2tJZDogdGFza0lkLCBmaWVsZHM6IHNlbmRUYXNrfSxcbiAgICAgICAgICAnZXJyb3IgdG8gdXBkYXRlIHRhc2snKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5lcnJvcignbm90IHZhbGlkIHNlbmQgZGF0YSB0YXNrJylcbiAgICAgICAgY29uc29sZS5lcnJvcignbm90IHZhbGlkIHNlbmQgZGF0YSB0YXNrJywgc2VuZFRhc2ssIHRhc2spXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zbmFja0Jhci53YXJuaW5nKCdub3QgaGF2ZSBmaWVsZCBmb3IgdXBkYXRlJylcbiAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICB9XG4gICovXG5cbiAgZ2V0KHJlcXVlc3RBcnJheTogaUJYUmVzdFBhcmFtVGFza0dldCkge1xuICAgIGlmICghcmVxdWVzdEFycmF5LnNlbGVjdCkge1xuICAgICAgcmVxdWVzdEFycmF5LnNlbGVjdCA9IHRoaXMuZGVmLnNlbGVjdFxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5tYXBBbmRTbmFja0JhckVycm9yKHRoaXMuQlhSZXN0VGFza3NUYXNrLmdldChyZXF1ZXN0QXJyYXkpLCAn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINC30LDQtNCw0YfRgycpLnBpcGUoXG4gICAgICBtYXAodiA9PiAodiAmJiB2LnRhc2spID8gdi50YXNrIDogdW5kZWZpbmVkKSxcbiAgICAgIG1hcCh2ID0+ICh2KSA/IHRoaXMudGFza01hcC5nZXQodikgOiB1bmRlZmluZWQpXG4gICAgKVxuICB9XG5cblxuICBsaXN0KHBhcmFtOiBpQlhSZXN0UGFyYW1UYXNrc0xpc3QgPSB7fSkge1xuICAgIGlmICghcGFyYW0uc2VsZWN0KSB7XG4gICAgICBwYXJhbS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuTmF2dnkubWFwQW5kU25hY2tCYXJFcnJvcih0aGlzLkJYUmVzdFRhc2tzVGFzay5saXN0KHBhcmFtKSwgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQt9Cw0LTQsNGH0LgnKS5waXBlKFxuICAgICAgbWFwKHYgPT4gKHYgJiYgdi50YXNrcykgPyB2LnRhc2tzIDogdW5kZWZpbmVkKSxcbiAgICAgIG1hcCh2ID0+ICh2KSA/IHRoaXMudGFza01hcC5saXN0KHYpIDogdW5kZWZpbmVkKSxcbiAgICAgIHRhcCh2ID0+IHtcbiAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgU2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyB0aGlzLmxpc3QubmFtZSwgdilcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApXG4gIH1cbiAgLypcbiAgbGlzdEFycmF5KHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlggPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmxpc3QocmVxdWVzdEFycmF5KS5waXBlKFxuICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSksXG4gICAgICBtYXAodiA9PiAodiAmJiB2LnRhc2tzKSA/IHYudGFza3MgOiBbXSlcbiAgICApXG4gIH1cblxuICBsaXN0QWxsKHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlggPSB7fSwgY2FjaGUgPSBmYWxzZSk6IE9ic2VydmFibGU8VGFza0JYW10+IHtcbiAgICBpZiAoIXJlcXVlc3RBcnJheS5zZWxlY3QpIHtcbiAgICAgIHJlcXVlc3RBcnJheS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcbiAgICAgIGlmIChjYWNoZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZVRhc2skLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICBtZXJnZU1hcCh0YXNrcyA9PiB7XG4gICAgICAgICAgICBpZiAodGFza3MgJiYgdGFza3MuZGF0YS5odHRwLmxpc3QgJiYgcmVxdWVzdEFycmF5LmZpbHRlciAmJiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlkcyA9ICh0eXBlb2YgcmVxdWVzdEFycmF5LmZpbHRlci5JRCA9PT0gJ251bWJlcicpID8gW3JlcXVlc3RBcnJheS5maWx0ZXIuSURdIDogcmVxdWVzdEFycmF5LmZpbHRlci5JRFxuICAgICAgICAgICAgICBsZXQgZmlsdGVyID0gdGFza3MuZGF0YS5odHRwLmxpc3QuZmlsdGVyKGkgPT4gKGkuaWQpID8gaWRzLmluY2x1ZGVzKGkuaWQpIDogZmFsc2UpXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSBpZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZpbHRlcilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheSlcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxuICB9XG5cbiAgZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlgpOiBPYnNlcnZhYmxlPFRhc2tCWFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubGlzdChyZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoaXRlbXM6IEFuc3dlckFwaVRhc2tCWCB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGVJbnB1dDxhbnk+IHwgT2JzZXJ2YWJsZTxBbnN3ZXJBcGlUYXNrQlhbXT4gPT4ge1xuICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMucmVzdWx0ICYmIHR5cGVvZiBpdGVtcy5yZXN1bHQudGFza3MgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgY29uc3QgaXRlbXMkID0gb2YoaXRlbXMucmVzdWx0LnRhc2tzKVxuICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XG4gICAgICAgICAgICB0aGlzLm5vd0xvYWQkLm5leHQoe1xuICAgICAgICAgICAgICB0b3RhbDogKGl0ZW1zLnRvdGFsKSA/IGl0ZW1zLnRvdGFsIDogMCxcbiAgICAgICAgICAgICAgbmV4dDogaXRlbXMubmV4dFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHJlcXVlc3RBcnJheS5zdGFydCA9IGl0ZW1zLm5leHRcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICAgICAgICAgIG1hcCh2RW5kID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodkVuZCAmJiBpdGVtcy5yZXN1bHQudGFza3MpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uaXRlbXMucmVzdWx0LnRhc2tzLCAuLi52RW5kXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKGl0ZW1zLnJlc3VsdC50YXNrcykgPyBpdGVtcy5yZXN1bHQudGFza3MgOiBbXVxuICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5ub3dMb2FkJC5uZXh0KHtcbiAgICAgICAgICAgIHRvdGFsOiAwLFxuICAgICAgICAgICAgbmV4dDogMFxuICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zJFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRGaWVsZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVUYXNrJC5waXBlKFxuICAgICAgbWVyZ2VNYXAodiA9PiB7XG4gICAgICAgIGlmICh2ICYmICF2LmRhdGEuZmllbGRzKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8eyBmaWVsZHM6IGlHZXRGaWVsZHNEZXNjcmlwdGlvbiB9Pj4odGhpcy51cmwuZ2V0RmllbGRzKS5waXBlKFxuICAgICAgICAgICAgdGFwKHYgPT4ge1xuICAgICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUZpZWxkcyh2LnJlc3VsdCkpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCAmJiB2LnJlc3VsdC5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdi5yZXN1bHQuZmllbGRzfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHYuZGF0YS5maWVsZHMpIHtcbiAgICAgICAgICByZXR1cm4gb2Yoe3Jlc3VsdDogY2xvbmU8aUdldEZpZWxkc0Rlc2NyaXB0aW9uPih2LmRhdGEuZmllbGRzKX0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBkZWxldGVSZXN1bHRGcm9tQ29tbWVudChjb21tZW50SUQ6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGFueT4+KHRoaXMudXJsLnJlc3VsdC5kZWxldGVGcm9tQ29tbWVudCwge2NvbW1lbnRJZDogY29tbWVudElEfSlcbiAgfVxuXG4gIGFkZFJlc3VsdEZyb21Db21tZW50KGNvbW1lbnRJRDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8aVRhc2tSZXN1bHRIdHRwPj4odGhpcy51cmwucmVzdWx0LmFkZEZyb21Db21tZW50LCB7Y29tbWVudElkOiBjb21tZW50SUR9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy50YXNrUmVzdWx0TWFwLmlUYXNrUmVzdWx0SHR0cFRvaVRhc2tSZXN1bHQodi5yZXN1bHQpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfSkpXG4gIH1cblxuICBnZXRSZXN1bExpc3QodGFza0lkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGlUYXNrUmVzdWx0W10gfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUh0dHBBbnN3ZXJCWDxpVGFza1Jlc3VsdEh0dHBbXT4+KHRoaXMudXJsLnJlc3VsdC5saXN0LCB7dGFza0lkOiB0YXNrSWR9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuIHYucmVzdWx0Lm1hcChpID0+IHRoaXMudGFza1Jlc3VsdE1hcC5pVGFza1Jlc3VsdEh0dHBUb2lUYXNrUmVzdWx0KGkpKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIH0pKVxuICB9XG5cbiAgZ2V0UGxhbm5lckxpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8KHN0cmluZyB8IG51bWJlcilbXT4+KHRoaXMudXJsLnBsYW5uZXIuZ2V0bGlzdClcbiAgfVxuXG4gIGdldGFjY2VzcyhpZDogbnVtYmVyLCB1c2VyczogbnVtYmVyW10gPSBbXSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlHZXRBY2Nlc3NUYXNrPj4odGhpcy51cmwuZ2V0YWNjZXNzLCB7dGFza0lkOiBpZCwgdXNlcjogdXNlcnN9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHRoaXMuaHR0cC5tYXBSZXN1bHQodikpLFxuICAgICAgICBtYXAodiA9PiAodiAmJiB2LmFsbG93ZWRBY3Rpb25zKSA/IHYuYWxsb3dlZEFjdGlvbnMgOiB1bmRlZmluZWQpXG4gICAgICApXG4gIH1cbiAgICovXG59XG4iXX0=
@@ -1,17 +1,16 @@
1
1
  import { of, tap } from 'rxjs';
2
2
  import { map } from 'rxjs/operators';
3
3
  import { Injectable } from '@angular/core';
4
+ import { SessionStorage } from '../services/vanilla/sessionStorage';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "../request/user";
6
7
  import * as i2 from "../map/user";
7
8
  import * as i3 from "../services/navvy";
8
- import * as i4 from "../services/vanilla/sessionStorage";
9
9
  export class BXRestNavvyUser {
10
- constructor(BXRestUser, BXRestUserMap, Navvy, SessionStorage) {
10
+ constructor(BXRestUser, BXRestUserMap, Navvy) {
11
11
  this.BXRestUser = BXRestUser;
12
12
  this.BXRestUserMap = BXRestUserMap;
13
13
  this.Navvy = Navvy;
14
- this.SessionStorage = SessionStorage;
15
14
  }
16
15
  get(params = {}) {
17
16
  return this.Navvy.mapAndSnackBarError(this.BXRestUser.get(params), 'Не удалось получить пользователей');
@@ -21,7 +20,7 @@ export class BXRestNavvyUser {
21
20
  return this.self();
22
21
  }
23
22
  else {
24
- let self = this.SessionStorage.getItem(this.constructor.name + this.self.name);
23
+ let self = SessionStorage.getItem(this.constructor.name + this.self.name);
25
24
  if (self) {
26
25
  return of(self);
27
26
  }
@@ -40,7 +39,7 @@ export class BXRestNavvyUser {
40
39
  return undefined;
41
40
  }), tap(v => {
42
41
  if (v) {
43
- this.SessionStorage.setItem(this.constructor.name + this.self.name, v);
42
+ SessionStorage.setItem(this.constructor.name + this.self.name, v);
44
43
  }
45
44
  }));
46
45
  }
@@ -54,12 +53,12 @@ export class BXRestNavvyUser {
54
53
  return this.Navvy.mapAndSnackBarError(this.BXRestUser.fields(), 'Не удалось поля');
55
54
  }
56
55
  }
57
- BXRestNavvyUser.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyUser, deps: [{ token: i1.BXRestUser }, { token: i2.BXRestUserMap }, { token: i3.Navvy }, { token: i4.SessionStorageServices }], target: i0.ɵɵFactoryTarget.Injectable });
56
+ BXRestNavvyUser.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyUser, deps: [{ token: i1.BXRestUser }, { token: i2.BXRestUserMap }, { token: i3.Navvy }], target: i0.ɵɵFactoryTarget.Injectable });
58
57
  BXRestNavvyUser.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyUser, providedIn: 'root' });
59
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyUser, decorators: [{
60
59
  type: Injectable,
61
60
  args: [{
62
61
  providedIn: 'root'
63
62
  }]
64
- }], ctorParameters: function () { return [{ type: i1.BXRestUser }, { type: i2.BXRestUserMap }, { type: i3.Navvy }, { type: i4.SessionStorageServices }]; } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7Ozs7O0FBYTFDLE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQ1UsVUFBc0IsRUFDdEIsYUFBNEIsRUFDNUIsS0FBWSxFQUNaLGNBQXNDO1FBSHRDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLG1CQUFjLEdBQWQsY0FBYyxDQUF3QjtJQUVoRCxDQUFDO0lBRUQsR0FBRyxDQUFDLFNBQThCLEVBQUU7UUFDbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLG1DQUFtQyxDQUFDLENBQUE7SUFDekcsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSztRQUNwQixJQUFJLE1BQU0sRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO1NBQ25CO2FBQU07WUFDTCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBZ0IsQ0FBQTtZQUM3RixJQUFHLElBQUksRUFBQztnQkFDTixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTthQUNoQjtZQUNELE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO1NBQ25CO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFpQixFQUFFLFdBQXFCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxFQUN6Qyx1Q0FBdUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUNsRCxDQUFBO0lBQ0gsQ0FBQztJQUVPLElBQUk7UUFDVixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxrQ0FBa0MsQ0FBQzthQUNqRyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ04sSUFBSSxDQUFDLEVBQUU7Z0JBQ0wsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUNyQztZQUNELE9BQU8sU0FBUyxDQUFBO1FBQ2xCLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxFQUFFO2dCQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3hFO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBaUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLHFDQUFxQyxDQUFDLENBQUE7SUFDOUcsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsMkJBQTJCLENBQUMsQ0FBQTtJQUNwRyxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLGlCQUFpQixDQUFDLENBQUE7SUFDcEYsQ0FBQzs7NEdBNURVLGVBQWU7Z0hBQWYsZUFBZSxjQUZkLE1BQU07MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBvZiwgdGFwIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCWFJlc3RVc2VyIH0gZnJvbSAnLi4vcmVxdWVzdC91c2VyJ1xuaW1wb3J0IHsgQlhSZXN0VXNlck1hcCB9IGZyb20gJy4uL21hcC91c2VyJ1xuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVXNlckdldCB9IGZyb20gJy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvZ2V0J1xuaW1wb3J0IHsgTmF2dnkgfSBmcm9tICcuLi9zZXJ2aWNlcy9uYXZ2eSdcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZXMgfSBmcm9tICcuLi9zZXJ2aWNlcy92YW5pbGxhL3Nlc3Npb25TdG9yYWdlJ1xuaW1wb3J0IHsgaUJYUmVzdFVzZXIgfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3VzZXInXG5pbXBvcnQgVXNlckZpbHRlclNlYXJjaCBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL1VzZXJGaWx0ZXJTZWFyY2gnXG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlVc2VyIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIEJYUmVzdFVzZXI6IEJYUmVzdFVzZXIsXG4gICAgcHJpdmF0ZSBCWFJlc3RVc2VyTWFwOiBCWFJlc3RVc2VyTWFwLFxuICAgIHByaXZhdGUgTmF2dnk6IE5hdnZ5LFxuICAgIHByaXZhdGUgU2Vzc2lvblN0b3JhZ2U6IFNlc3Npb25TdG9yYWdlU2VydmljZXNcbiAgKSB7XG4gIH1cblxuICBnZXQocGFyYW1zOiBpQlhSZXN0UGFyYW1Vc2VyR2V0ID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5tYXBBbmRTbmFja0JhckVycm9yKHRoaXMuQlhSZXN0VXNlci5nZXQocGFyYW1zKSwgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuScpXG4gIH1cblxuICBjdXJyZW50KHVwZGF0ZSA9IGZhbHNlKSB7XG4gICAgaWYgKHVwZGF0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZigpXG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBzZWxmID0gdGhpcy5TZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuY29uc3RydWN0b3IubmFtZSArIHRoaXMuc2VsZi5uYW1lKSBhcyBpQlhSZXN0VXNlclxuICAgICAgaWYoc2VsZil7XG4gICAgICAgIHJldHVybiBvZihzZWxmKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuc2VsZigpXG4gICAgfVxuICB9XG5cbiAgdXBkYXRlKHVzZXI6IGlCWFJlc3RVc2VyLCBmaWVsZFVwZGF0ZTogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5tYXBBbmRTbmFja0JhckVycm9yKFxuICAgICAgdGhpcy5CWFJlc3RVc2VyLnVwZGF0ZSh1c2VyLCBmaWVsZFVwZGF0ZSksXG4gICAgICAn0J3QtSDRg9C00LDQu9C+0YHRjCDQvtCx0L3QvtCy0LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDRgSBJRCcgKyB1c2VyLklEXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxmKCkge1xuICAgIHJldHVybiB0aGlzLk5hdnZ5Lm1hcEFuZFNuYWNrQmFyRXJyb3IodGhpcy5CWFJlc3RVc2VyLmN1cnJlbnQoKSwgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0VXNlck1hcC5jdXJyZW50KHYpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCh2ID0+IHtcbiAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgdGhpcy5TZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuY29uc3RydWN0b3IubmFtZSArIHRoaXMuc2VsZi5uYW1lLCB2KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKVxuICB9XG5cbiAgc2VhcmNoKHBhcmFtczogc3RyaW5nIHwgVXNlckZpbHRlclNlYXJjaCkge1xuICAgIHJldHVybiB0aGlzLk5hdnZ5Lm1hcEFuZFNuYWNrQmFyRXJyb3IodGhpcy5CWFJlc3RVc2VyLnNlYXJjaChwYXJhbXMpLCAn0KHQtdGA0LLQtdGAINC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L7RgSDQv9C+0LjRgdC60LAnKVxuICB9XG5cbiAgYWNjZXNzKGFjY2Vzczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5tYXBBbmRTbmFja0JhckVycm9yKHRoaXMuQlhSZXN0VXNlci5hY2Nlc3MoYWNjZXNzKSwgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQv9GA0LDQstCwJylcbiAgfVxuXG4gIGZpZWxkcygpIHtcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5tYXBBbmRTbmFja0JhckVycm9yKHRoaXMuQlhSZXN0VXNlci5maWVsZHMoKSwgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70Y8nKVxuICB9XG5cbiAgLy8gZ2V0QWxsKHBhcmFtczogaUJYR2V0UGFyYW0gPSB7fSk6IE9ic2VydmFibGU8aUJYUmVzdFVzZXIgW10gfCB1bmRlZmluZWQ+IHtcbiAgLy8gICBpZiAoIU9iamVjdC5rZXlzKHBhcmFtcykubGVuZ3RoKSB7XG4gIC8vICAgICBwYXJhbXMgPSBjbG9uZSh0aGlzLmRlZi5wYXJhbXMpXG4gIC8vICAgfVxuICAvL1xuICAvLyAgIGNvbnN0IHNhdmVBbGxVc2VyID0gY29tcGFyZShwYXJhbXMsIHRoaXMuZGVmLnBhcmFtcylcbiAgLy8gICByZXR1cm4gdGhpcy51c2VyJC5waXBlKFxuICAvLyAgICAgdGFrZSgxKSxcbiAgLy8gICAgIG1lcmdlTWFwKHYgPT4ge1xuICAvLyAgICAgICBpZiAodi5sb2FkLmFsbCkge1xuICAvLyAgICAgICAgIGlmIChjb21wYXJlKHRoaXMuZGVmLnBhcmFtcywgcGFyYW1zKSkge1xuICAvLyAgICAgICAgICAgcmV0dXJuIG9mKGNsb25lKHYuZGF0YSkpXG4gIC8vICAgICAgICAgfVxuICAvLyAgICAgICB9XG4gIC8vXG4gIC8vICAgICAgIHJldHVybiB0aGlzLmdldEVuZEFycmF5KHBhcmFtcykucGlwZShcbiAgLy8gICAgICAgICB0YWtlKDEpLFxuICAvLyAgICAgICAgIG1hcCh2ID0+IHtcbiAgLy8gICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XG4gIC8vICAgICAgICAgICAgIGxldCBjbCA9IGNsb25lKHYucmVzdWx0KVxuICAvLyAgICAgICAgICAgICByZXR1cm4gdGhpcy5zYXZlQXJyVXNlcihjbClcbiAgLy8gICAgICAgICAgIH1cbiAgLy8gICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgLy8gICAgICAgICB9KSxcbiAgLy8gICAgICAgKVxuICAvLyAgICAgfSksXG4gIC8vICAgICB0YXAodiA9PiB7XG4gIC8vICAgICAgIGlmICh2ICYmIHYubGVuZ3RoICYmIHNhdmVBbGxVc2VyKSB7XG4gIC8vICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChsb2FkQWxsKHtsb2FkOiB0cnVlfSkpXG4gIC8vICAgICAgIH1cbiAgLy8gICAgICAgcGFyYW1zLnN0YXJ0ID0gdGhpcy5kZWYucGFyYW1zLnN0YXJ0XG4gIC8vICAgICB9KVxuICAvLyAgIClcbiAgLy8gfVxuXG4gIC8vIHByaXZhdGUgc2F2ZUFyclVzZXIodXNlcnM6IGlCWFJlc3RVc2VySHR0cFtdKSB7XG4gIC8vICAgbGV0IHJlc3VsdDogaUJYUmVzdFVzZXIgW10gPSBbXVxuICAvLyAgIGZvciAoY29uc3QgdXNlciBvZiB1c2Vycykge1xuICAvLyAgICAgcmVzdWx0LnB1c2godGhpcy51c2VyTWFwLkh0dHBUb0JYKHVzZXIpKVxuICAvLyAgIH1cbiAgLy8gICB0aGlzLnN0b3JlLmRpc3BhdGNoKHNhdmVBcnIoe2FycjogcmVzdWx0fSkpXG4gIC8vXG4gIC8vICAgcmV0dXJuIHJlc3VsdFxuICAvLyB9XG5cbiAgLy8gZ2V0RW5kQXJyYXkocGFyYW1zOiBVc2VyRmlsdGVyID0ge30pOiBPYnNlcnZhYmxlPGlIdHRwQW5zd2VyQlg8aUJYUmVzdFVzZXJIdHRwW10+IHwgdW5kZWZpbmVkPiB7XG4gIC8vICAgcmV0dXJuIHRoaXMuZ2V0KHBhcmFtcykucGlwZShcbiAgLy8gICAgIG1lcmdlTWFwKGl0ZW1zID0+IHtcbiAgLy8gICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLnJlc3VsdCAmJiB0eXBlb2YgaXRlbXMucmVzdWx0ID09PSAnb2JqZWN0Jykge1xuICAvLyAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XG4gIC8vICAgICAgICAgICBwYXJhbXMuc3RhcnQgPSBpdGVtcy5uZXh0XG4gIC8vICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbmRBcnJheShwYXJhbXMpLnBpcGUobWFwKHZFbmQgPT4ge1xuICAvLyAgICAgICAgICAgICBpZiAodkVuZCAmJiBpdGVtcy5yZXN1bHQgJiYgdkVuZC5yZXN1bHQpIHtcbiAgLy8gICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogWy4uLml0ZW1zLnJlc3VsdCwgLi4udkVuZC5yZXN1bHRdfVxuICAvLyAgICAgICAgICAgICB9XG4gIC8vICAgICAgICAgICAgIHJldHVybiAoaXRlbXMpID8gaXRlbXMgOiB1bmRlZmluZWRcbiAgLy8gICAgICAgICAgIH0pKVxuICAvLyAgICAgICAgIH1cbiAgLy8gICAgICAgICByZXR1cm4gb2YoaXRlbXMpXG4gIC8vICAgICAgIH0gZWxzZSB7XG4gIC8vICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgLy8gICAgICAgfVxuICAvLyAgICAgfSksXG4gIC8vICAgKVxuICAvLyB9XG5cbn1cblxuIl19
63
+ }], ctorParameters: function () { return [{ type: i1.BXRestUser }, { type: i2.BXRestUserMap }, { type: i3.Navvy }]; } });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQU8xQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7O0FBTXBFLE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQ1UsVUFBc0IsRUFDdEIsYUFBNEIsRUFDNUIsS0FBWTtRQUZaLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsVUFBSyxHQUFMLEtBQUssQ0FBTztJQUV0QixDQUFDO0lBRUQsR0FBRyxDQUFDLFNBQThCLEVBQUU7UUFDbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLG1DQUFtQyxDQUFDLENBQUE7SUFDekcsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSztRQUNwQixJQUFJLE1BQU0sRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO1NBQ25CO2FBQU07WUFDTCxJQUFJLElBQUksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFnQixDQUFBO1lBQ3hGLElBQUcsSUFBSSxFQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO2FBQ2hCO1lBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7U0FDbkI7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQWlCLEVBQUUsV0FBcUI7UUFDN0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLEVBQ3pDLHVDQUF1QyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQ2xELENBQUE7SUFDSCxDQUFDO0lBRU8sSUFBSTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLGtDQUFrQyxDQUFDO2FBQ2pHLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDTixJQUFJLENBQUMsRUFBRTtnQkFDTCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQ3JDO1lBQ0QsT0FBTyxTQUFTLENBQUE7UUFDbEIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ04sSUFBSSxDQUFDLEVBQUU7Z0JBQ0wsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNuRTtRQUNILENBQUMsQ0FBQyxDQUNILENBQUE7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQWlDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxxQ0FBcUMsQ0FBQyxDQUFBO0lBQzlHLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUE7SUFDcEcsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3BGLENBQUM7OzRHQTNEVSxlQUFlO2dIQUFmLGVBQWUsY0FGZCxNQUFNOzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb2YsIHRhcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQlhSZXN0VXNlciB9IGZyb20gJy4uL3JlcXVlc3QvdXNlcidcbmltcG9ydCB7IEJYUmVzdFVzZXJNYXAgfSBmcm9tICcuLi9tYXAvdXNlcidcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVzZXJHZXQgfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL2dldCdcbmltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vc2VydmljZXMvbmF2dnknXG5pbXBvcnQgeyBpQlhSZXN0VXNlciB9IGZyb20gJy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvdXNlcidcbmltcG9ydCBVc2VyRmlsdGVyU2VhcmNoIGZyb20gJy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvVXNlckZpbHRlclNlYXJjaCdcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlIH0gZnJvbSAnLi4vc2VydmljZXMvdmFuaWxsYS9zZXNzaW9uU3RvcmFnZSc7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlVc2VyIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIEJYUmVzdFVzZXI6IEJYUmVzdFVzZXIsXG4gICAgcHJpdmF0ZSBCWFJlc3RVc2VyTWFwOiBCWFJlc3RVc2VyTWFwLFxuICAgIHByaXZhdGUgTmF2dnk6IE5hdnZ5LFxuICApIHtcbiAgfVxuXG4gIGdldChwYXJhbXM6IGlCWFJlc3RQYXJhbVVzZXJHZXQgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLk5hdnZ5Lm1hcEFuZFNuYWNrQmFyRXJyb3IodGhpcy5CWFJlc3RVc2VyLmdldChwYXJhbXMpLCAn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5JylcbiAgfVxuXG4gIGN1cnJlbnQodXBkYXRlID0gZmFsc2UpIHtcbiAgICBpZiAodXBkYXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZWxmKClcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHNlbGYgPSBTZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuY29uc3RydWN0b3IubmFtZSArIHRoaXMuc2VsZi5uYW1lKSBhcyBpQlhSZXN0VXNlclxuICAgICAgaWYoc2VsZil7XG4gICAgICAgIHJldHVybiBvZihzZWxmKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuc2VsZigpXG4gICAgfVxuICB9XG5cbiAgdXBkYXRlKHVzZXI6IGlCWFJlc3RVc2VyLCBmaWVsZFVwZGF0ZTogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5tYXBBbmRTbmFja0JhckVycm9yKFxuICAgICAgdGhpcy5CWFJlc3RVc2VyLnVwZGF0ZSh1c2VyLCBmaWVsZFVwZGF0ZSksXG4gICAgICAn0J3QtSDRg9C00LDQu9C+0YHRjCDQvtCx0L3QvtCy0LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDRgSBJRCcgKyB1c2VyLklEXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxmKCkge1xuICAgIHJldHVybiB0aGlzLk5hdnZ5Lm1hcEFuZFNuYWNrQmFyRXJyb3IodGhpcy5CWFJlc3RVc2VyLmN1cnJlbnQoKSwgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0VXNlck1hcC5jdXJyZW50KHYpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCh2ID0+IHtcbiAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgU2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyB0aGlzLnNlbGYubmFtZSwgdik7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgIClcbiAgfVxuXG4gIHNlYXJjaChwYXJhbXM6IHN0cmluZyB8IFVzZXJGaWx0ZXJTZWFyY2gpIHtcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5tYXBBbmRTbmFja0JhckVycm9yKHRoaXMuQlhSZXN0VXNlci5zZWFyY2gocGFyYW1zKSwgJ9Ch0LXRgNCy0LXRgCDQvdC1INC+0YLQstC10YfQsNC10YIg0L3QsCDQt9Cw0L/RgNC+0YEg0L/QvtC40YHQutCwJylcbiAgfVxuXG4gIGFjY2VzcyhhY2Nlc3M6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIHRoaXMuTmF2dnkubWFwQW5kU25hY2tCYXJFcnJvcih0aGlzLkJYUmVzdFVzZXIuYWNjZXNzKGFjY2VzcyksICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0L/RgNCw0LLQsCcpXG4gIH1cblxuICBmaWVsZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuTmF2dnkubWFwQW5kU25hY2tCYXJFcnJvcih0aGlzLkJYUmVzdFVzZXIuZmllbGRzKCksICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GPJylcbiAgfVxuXG4gIC8vIGdldEFsbChwYXJhbXM6IGlCWEdldFBhcmFtID0ge30pOiBPYnNlcnZhYmxlPGlCWFJlc3RVc2VyIFtdIHwgdW5kZWZpbmVkPiB7XG4gIC8vICAgaWYgKCFPYmplY3Qua2V5cyhwYXJhbXMpLmxlbmd0aCkge1xuICAvLyAgICAgcGFyYW1zID0gY2xvbmUodGhpcy5kZWYucGFyYW1zKVxuICAvLyAgIH1cbiAgLy9cbiAgLy8gICBjb25zdCBzYXZlQWxsVXNlciA9IGNvbXBhcmUocGFyYW1zLCB0aGlzLmRlZi5wYXJhbXMpXG4gIC8vICAgcmV0dXJuIHRoaXMudXNlciQucGlwZShcbiAgLy8gICAgIHRha2UoMSksXG4gIC8vICAgICBtZXJnZU1hcCh2ID0+IHtcbiAgLy8gICAgICAgaWYgKHYubG9hZC5hbGwpIHtcbiAgLy8gICAgICAgICBpZiAoY29tcGFyZSh0aGlzLmRlZi5wYXJhbXMsIHBhcmFtcykpIHtcbiAgLy8gICAgICAgICAgIHJldHVybiBvZihjbG9uZSh2LmRhdGEpKVxuICAvLyAgICAgICAgIH1cbiAgLy8gICAgICAgfVxuICAvL1xuICAvLyAgICAgICByZXR1cm4gdGhpcy5nZXRFbmRBcnJheShwYXJhbXMpLnBpcGUoXG4gIC8vICAgICAgICAgdGFrZSgxKSxcbiAgLy8gICAgICAgICBtYXAodiA9PiB7XG4gIC8vICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAvLyAgICAgICAgICAgICBsZXQgY2wgPSBjbG9uZSh2LnJlc3VsdClcbiAgLy8gICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2F2ZUFyclVzZXIoY2wpXG4gIC8vICAgICAgICAgICB9XG4gIC8vICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gIC8vICAgICAgICAgfSksXG4gIC8vICAgICAgIClcbiAgLy8gICAgIH0pLFxuICAvLyAgICAgdGFwKHYgPT4ge1xuICAvLyAgICAgICBpZiAodiAmJiB2Lmxlbmd0aCAmJiBzYXZlQWxsVXNlcikge1xuICAvLyAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobG9hZEFsbCh7bG9hZDogdHJ1ZX0pKVxuICAvLyAgICAgICB9XG4gIC8vICAgICAgIHBhcmFtcy5zdGFydCA9IHRoaXMuZGVmLnBhcmFtcy5zdGFydFxuICAvLyAgICAgfSlcbiAgLy8gICApXG4gIC8vIH1cblxuICAvLyBwcml2YXRlIHNhdmVBcnJVc2VyKHVzZXJzOiBpQlhSZXN0VXNlckh0dHBbXSkge1xuICAvLyAgIGxldCByZXN1bHQ6IGlCWFJlc3RVc2VyIFtdID0gW11cbiAgLy8gICBmb3IgKGNvbnN0IHVzZXIgb2YgdXNlcnMpIHtcbiAgLy8gICAgIHJlc3VsdC5wdXNoKHRoaXMudXNlck1hcC5IdHRwVG9CWCh1c2VyKSlcbiAgLy8gICB9XG4gIC8vICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzYXZlQXJyKHthcnI6IHJlc3VsdH0pKVxuICAvL1xuICAvLyAgIHJldHVybiByZXN1bHRcbiAgLy8gfVxuXG4gIC8vIGdldEVuZEFycmF5KHBhcmFtczogVXNlckZpbHRlciA9IHt9KTogT2JzZXJ2YWJsZTxpSHR0cEFuc3dlckJYPGlCWFJlc3RVc2VySHR0cFtdPiB8IHVuZGVmaW5lZD4ge1xuICAvLyAgIHJldHVybiB0aGlzLmdldChwYXJhbXMpLnBpcGUoXG4gIC8vICAgICBtZXJnZU1hcChpdGVtcyA9PiB7XG4gIC8vICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5yZXN1bHQgJiYgdHlwZW9mIGl0ZW1zLnJlc3VsdCA9PT0gJ29iamVjdCcpIHtcbiAgLy8gICAgICAgICBpZiAoaXRlbXMubmV4dCkge1xuICAvLyAgICAgICAgICAgcGFyYW1zLnN0YXJ0ID0gaXRlbXMubmV4dFxuICAvLyAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kQXJyYXkocGFyYW1zKS5waXBlKG1hcCh2RW5kID0+IHtcbiAgLy8gICAgICAgICAgICAgaWYgKHZFbmQgJiYgaXRlbXMucmVzdWx0ICYmIHZFbmQucmVzdWx0KSB7XG4gIC8vICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IFsuLi5pdGVtcy5yZXN1bHQsIC4uLnZFbmQucmVzdWx0XX1cbiAgLy8gICAgICAgICAgICAgfVxuICAvLyAgICAgICAgICAgICByZXR1cm4gKGl0ZW1zKSA/IGl0ZW1zIDogdW5kZWZpbmVkXG4gIC8vICAgICAgICAgICB9KSlcbiAgLy8gICAgICAgICB9XG4gIC8vICAgICAgICAgcmV0dXJuIG9mKGl0ZW1zKVxuICAvLyAgICAgICB9IGVsc2Uge1xuICAvLyAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH0pLFxuICAvLyAgIClcbiAgLy8gfVxuXG59XG5cbiJdfQ==
package/esm2020/rest.mjs CHANGED
@@ -1,57 +1,65 @@
1
1
  import { Injectable } from '@angular/core';
2
- import BXRestLists from './request/lists';
3
- import BXRestListsMap from './map/lists';
4
- import BXRestNavvyLists from './request-navvy/lists';
5
2
  import * as i0 from "@angular/core";
6
3
  import * as i1 from "./request/user";
7
- import * as i2 from "./request/tasks";
8
- import * as i3 from "./request/disk";
9
- import * as i4 from "./request-navvy/user";
10
- import * as i5 from "./request-navvy/tasks";
11
- import * as i6 from "./request-navvy/disk";
4
+ import * as i2 from "./request/lists";
5
+ import * as i3 from "./request/tasks";
6
+ import * as i4 from "./request/disk";
7
+ import * as i5 from "./request/bizproc";
8
+ import * as i6 from "./request/log";
9
+ import * as i7 from "./request-navvy/user";
10
+ import * as i8 from "./request-navvy/lists";
11
+ import * as i9 from "./request-navvy/tasks";
12
+ import * as i10 from "./request-navvy/disk";
13
+ import * as i11 from "./request-navvy/bizproc";
14
+ import * as i12 from "./request-navvy/log";
15
+ import * as i13 from "./map/lists";
12
16
  export class BXRest {
13
- constructor(user, lists, tasks, disk) {
17
+ constructor(user, lists, tasks, disk, bizproc, log) {
14
18
  this.user = user;
15
19
  this.lists = lists;
16
20
  this.tasks = tasks;
17
21
  this.disk = disk;
22
+ this.bizproc = bizproc;
23
+ this.log = log;
18
24
  }
19
25
  }
20
- BXRest.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, deps: [{ token: i1.BXRestUser }, { token: BXRestLists }, { token: i2.BXRestTasks }, { token: i3.BXRestDisk }], target: i0.ɵɵFactoryTarget.Injectable });
26
+ BXRest.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, deps: [{ token: i1.BXRestUser }, { token: i2.BXRestLists }, { token: i3.BXRestTasks }, { token: i4.BXRestDisk }, { token: i5.BXRestBizproc }, { token: i6.BXRestLog }], target: i0.ɵɵFactoryTarget.Injectable });
21
27
  BXRest.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, providedIn: 'root' });
22
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, decorators: [{
23
29
  type: Injectable,
24
30
  args: [{
25
31
  providedIn: 'root'
26
32
  }]
27
- }], ctorParameters: function () { return [{ type: i1.BXRestUser }, { type: BXRestLists }, { type: i2.BXRestTasks }, { type: i3.BXRestDisk }]; } });
33
+ }], ctorParameters: function () { return [{ type: i1.BXRestUser }, { type: i2.BXRestLists }, { type: i3.BXRestTasks }, { type: i4.BXRestDisk }, { type: i5.BXRestBizproc }, { type: i6.BXRestLog }]; } });
28
34
  export class BXRestNavvy {
29
- constructor(user, lists, tasks, disk) {
35
+ constructor(user, lists, tasks, disk, bizproc, log) {
30
36
  this.user = user;
31
37
  this.lists = lists;
32
38
  this.tasks = tasks;
33
39
  this.disk = disk;
40
+ this.bizproc = bizproc;
41
+ this.log = log;
34
42
  }
35
43
  }
36
- BXRestNavvy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvy, deps: [{ token: i4.BXRestNavvyUser }, { token: BXRestNavvyLists }, { token: i5.BXRestNavvyTasks }, { token: i6.BXRestNavvyDisk }], target: i0.ɵɵFactoryTarget.Injectable });
44
+ BXRestNavvy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvy, deps: [{ token: i7.BXRestNavvyUser }, { token: i8.BXRestNavvyLists }, { token: i9.BXRestNavvyTasks }, { token: i10.BXRestNavvyDisk }, { token: i11.BXRestNavvyBizproc }, { token: i12.BXRestNavvyLog }], target: i0.ɵɵFactoryTarget.Injectable });
37
45
  BXRestNavvy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvy, providedIn: 'root' });
38
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvy, decorators: [{
39
47
  type: Injectable,
40
48
  args: [{
41
49
  providedIn: 'root'
42
50
  }]
43
- }], ctorParameters: function () { return [{ type: i4.BXRestNavvyUser }, { type: BXRestNavvyLists }, { type: i5.BXRestNavvyTasks }, { type: i6.BXRestNavvyDisk }]; } });
51
+ }], ctorParameters: function () { return [{ type: i7.BXRestNavvyUser }, { type: i8.BXRestNavvyLists }, { type: i9.BXRestNavvyTasks }, { type: i10.BXRestNavvyDisk }, { type: i11.BXRestNavvyBizproc }, { type: i12.BXRestNavvyLog }]; } });
44
52
  export class BXRestMap {
45
53
  constructor(lists) {
46
54
  this.lists = lists;
47
55
  }
48
56
  }
49
- BXRestMap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMap, deps: [{ token: BXRestListsMap }], target: i0.ɵɵFactoryTarget.Injectable });
57
+ BXRestMap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMap, deps: [{ token: i13.BXRestMapLists }], target: i0.ɵɵFactoryTarget.Injectable });
50
58
  BXRestMap.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMap, providedIn: 'root' });
51
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMap, decorators: [{
52
60
  type: Injectable,
53
61
  args: [{
54
62
  providedIn: 'root'
55
63
  }]
56
- }], ctorParameters: function () { return [{ type: BXRestListsMap }]; } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3Jlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxQyxPQUFPLFdBQVcsTUFBTSxpQkFBaUIsQ0FBQTtBQUN6QyxPQUFPLGNBQWMsTUFBTSxhQUFhLENBQUE7QUFDeEMsT0FBTyxnQkFBZ0IsTUFBTSx1QkFBdUIsQ0FBQTs7Ozs7Ozs7QUFVcEQsTUFBTSxPQUFPLE1BQU07SUFDakIsWUFDUyxJQUFnQixFQUNoQixLQUFrQixFQUNsQixLQUFrQixFQUNsQixJQUFnQjtRQUhoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBRXpCLENBQUM7O21HQVBVLE1BQU0sNENBWlosV0FBVzt1R0FZTCxNQUFNLGNBRkwsTUFBTTsyRkFFUCxNQUFNO2tCQUhsQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjttRkFYTSxXQUFXO0FBeUJsQixNQUFNLE9BQU8sV0FBVztJQUN0QixZQUNTLElBQXFCLEVBQ3JCLEtBQXVCLEVBQ3ZCLEtBQXVCLEVBQ3ZCLElBQXFCO1FBSHJCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLFNBQUksR0FBSixJQUFJLENBQWlCO0lBRTlCLENBQUM7O3dHQVBVLFdBQVcsaURBdkJqQixnQkFBZ0I7NEdBdUJWLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CO3dGQXRCTSxnQkFBZ0I7QUFvQ3ZCLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFlBQ1MsS0FBcUI7UUFBckIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7SUFFOUIsQ0FBQzs7c0dBSlUsU0FBUyxrQkFyQ2YsY0FBYzswR0FxQ1IsU0FBUyxjQUZSLE1BQU07MkZBRVAsU0FBUztrQkFIckIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7MERBcENNLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQlhSZXN0VXNlciB9IGZyb20gJy4vcmVxdWVzdC91c2VyJ1xyXG5pbXBvcnQgQlhSZXN0TGlzdHMgZnJvbSAnLi9yZXF1ZXN0L2xpc3RzJ1xyXG5pbXBvcnQgQlhSZXN0TGlzdHNNYXAgZnJvbSAnLi9tYXAvbGlzdHMnXHJcbmltcG9ydCBCWFJlc3ROYXZ2eUxpc3RzIGZyb20gJy4vcmVxdWVzdC1uYXZ2eS9saXN0cydcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlUYXNrcyB9IGZyb20gJy4vcmVxdWVzdC1uYXZ2eS90YXNrcydcclxuaW1wb3J0IHsgQlhSZXN0VGFza3MgfSBmcm9tICcuL3JlcXVlc3QvdGFza3MnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5VXNlciB9IGZyb20gJy4vcmVxdWVzdC1uYXZ2eS91c2VyJ1xyXG5pbXBvcnQgeyBCWFJlc3REaXNrIH0gZnJvbSAnLi9yZXF1ZXN0L2Rpc2snXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5RGlzayB9IGZyb20gJy4vcmVxdWVzdC1uYXZ2eS9kaXNrJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB1c2VyOiBCWFJlc3RVc2VyLFxyXG4gICAgcHVibGljIGxpc3RzOiBCWFJlc3RMaXN0cyxcclxuICAgIHB1YmxpYyB0YXNrczogQlhSZXN0VGFza3MsXHJcbiAgICBwdWJsaWMgZGlzazogQlhSZXN0RGlza1xyXG4gICkge1xyXG4gIH1cclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnkge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHVzZXI6IEJYUmVzdE5hdnZ5VXNlcixcclxuICAgIHB1YmxpYyBsaXN0czogQlhSZXN0TmF2dnlMaXN0cyxcclxuICAgIHB1YmxpYyB0YXNrczogQlhSZXN0TmF2dnlUYXNrcyxcclxuICAgIHB1YmxpYyBkaXNrOiBCWFJlc3ROYXZ2eURpc2tcclxuICApIHtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdE1hcCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgbGlzdHM6IEJYUmVzdExpc3RzTWFwXHJcbiAgKSB7XHJcbiAgfVxyXG59XHJcbiJdfQ==
64
+ }], ctorParameters: function () { return [{ type: i13.BXRestMapLists }]; } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3Jlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7O0FBbUIxQyxNQUFNLE9BQU8sTUFBTTtJQUNqQixZQUNTLElBQWdCLEVBQ2hCLEtBQWtCLEVBQ2xCLEtBQWtCLEVBQ2xCLElBQWdCLEVBQ2hCLE9BQXNCLEVBQ3RCLEdBQWM7UUFMZCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBVztJQUV2QixDQUFDOzttR0FUVSxNQUFNO3VHQUFOLE1BQU0sY0FGTCxNQUFNOzJGQUVQLE1BQU07a0JBSGxCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQWdCRCxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUNTLElBQXFCLEVBQ3JCLEtBQXVCLEVBQ3ZCLEtBQXVCLEVBQ3ZCLElBQXFCLEVBQ3JCLE9BQTJCLEVBQzNCLEdBQW1CO1FBTG5CLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNCLFFBQUcsR0FBSCxHQUFHLENBQWdCO0lBRTVCLENBQUM7O3dHQVRVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBZ0JELE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFlBQ1MsS0FBcUI7UUFBckIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7SUFFOUIsQ0FBQzs7c0dBSlUsU0FBUzswR0FBVCxTQUFTLGNBRlIsTUFBTTsyRkFFUCxTQUFTO2tCQUhyQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBCWFJlc3RVc2VyIH0gZnJvbSAnLi9yZXF1ZXN0L3VzZXInXHJcbmltcG9ydCB7IEJYUmVzdExpc3RzIH0gZnJvbSAnLi9yZXF1ZXN0L2xpc3RzJ1xyXG5pbXBvcnQgeyBCWFJlc3RNYXBMaXN0cyB9IGZyb20gJy4vbWFwL2xpc3RzJ1xyXG5pbXBvcnQgeyBCWFJlc3RUYXNrcyB9IGZyb20gJy4vcmVxdWVzdC90YXNrcydcclxuaW1wb3J0IHsgQlhSZXN0RGlzayB9IGZyb20gJy4vcmVxdWVzdC9kaXNrJ1xyXG5pbXBvcnQgeyBCWFJlc3RCaXpwcm9jIH0gZnJvbSAnLi9yZXF1ZXN0L2JpenByb2MnXHJcbmltcG9ydCB7IEJYUmVzdExvZyB9IGZyb20gJy4vcmVxdWVzdC9sb2cnXHJcbi8vIE5hdnZ5XHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5TGlzdHMgfSBmcm9tICcuL3JlcXVlc3QtbmF2dnkvbGlzdHMnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5VGFza3MgfSBmcm9tICcuL3JlcXVlc3QtbmF2dnkvdGFza3MnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5VXNlciB9IGZyb20gJy4vcmVxdWVzdC1uYXZ2eS91c2VyJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eURpc2sgfSBmcm9tICcuL3JlcXVlc3QtbmF2dnkvZGlzaydcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlCaXpwcm9jIH0gZnJvbSAnLi9yZXF1ZXN0LW5hdnZ5L2JpenByb2MnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5TG9nIH0gZnJvbSAnLi9yZXF1ZXN0LW5hdnZ5L2xvZydcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdXNlcjogQlhSZXN0VXNlcixcclxuICAgIHB1YmxpYyBsaXN0czogQlhSZXN0TGlzdHMsXHJcbiAgICBwdWJsaWMgdGFza3M6IEJYUmVzdFRhc2tzLFxyXG4gICAgcHVibGljIGRpc2s6IEJYUmVzdERpc2ssXHJcbiAgICBwdWJsaWMgYml6cHJvYzogQlhSZXN0Qml6cHJvYyxcclxuICAgIHB1YmxpYyBsb2c6IEJYUmVzdExvZ1xyXG4gICkge1xyXG4gIH1cclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnkge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHVzZXI6IEJYUmVzdE5hdnZ5VXNlcixcclxuICAgIHB1YmxpYyBsaXN0czogQlhSZXN0TmF2dnlMaXN0cyxcclxuICAgIHB1YmxpYyB0YXNrczogQlhSZXN0TmF2dnlUYXNrcyxcclxuICAgIHB1YmxpYyBkaXNrOiBCWFJlc3ROYXZ2eURpc2ssXHJcbiAgICBwdWJsaWMgYml6cHJvYzogQlhSZXN0TmF2dnlCaXpwcm9jLFxyXG4gICAgcHVibGljIGxvZzogQlhSZXN0TmF2dnlMb2dcclxuICApIHtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdE1hcCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgbGlzdHM6IEJYUmVzdE1hcExpc3RzXHJcbiAgKSB7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
2
2
  import { time } from '../consts/time';
3
3
  // import { environment } from 'bx-rest/environments/environment'
4
4
  import { DateTime } from 'luxon';
5
- import { REST_SETTINGS } from '../settings';
5
+ import { BX_REST_SETTINGS } from '../settings';
6
6
  import * as i0 from "@angular/core";
7
7
  export class BaseServices {
8
8
  toStr(val) {
@@ -101,7 +101,7 @@ export class BaseServices {
101
101
  }
102
102
  getHomeAddress() {
103
103
  // return this.prepareBaseAddress(environment.urls.home)
104
- return this.prepareBaseAddress(REST_SETTINGS.urls.home);
104
+ return this.prepareBaseAddress(BX_REST_SETTINGS.urls.home);
105
105
  }
106
106
  dateDiff(a, b) {
107
107
  return new Date(a.valueOf() - b.valueOf());
@@ -172,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
172
172
  providedIn: 'root'
173
173
  }]
174
174
  }] });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckMsaUVBQWlFO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFFaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFLNUMsTUFBTSxPQUFPLFlBQVk7SUFFdkIsS0FBSyxDQUFDLEdBQVE7UUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBUTtRQUNaLE9BQU8sQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBMkIsRUFBRSxNQUFlLEVBQUUsR0FBcUI7UUFDeEUsSUFBSSxHQUFHLFlBQVksSUFBSSxFQUFFO1lBQ3ZCLE9BQU8sR0FBRyxDQUFBO1NBQ1g7YUFBTSxJQUFJLE9BQU8sR0FBRyxJQUFJLFFBQVEsRUFBRTtZQUNqQyxJQUFJLE1BQU0sRUFBRTtnQkFDVixJQUFJLEdBQUcsRUFBRTtvQkFDUCxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtpQkFDeEQ7Z0JBQ0QsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFN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QyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQzVDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQzNDLE9BQU8sR0FBRyxDQUFBO0lBQ1osQ0FBQzs7eUdBakxVLFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgdGltZSB9IGZyb20gJy4uL2NvbnN0cy90aW1lJ1xyXG4vLyBpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJ2J4LXJlc3QvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50J1xyXG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJ2x1eG9uJ1xyXG5pbXBvcnQgeyBEYXRlVGltZU9wdGlvbnMgfSBmcm9tICdsdXhvbi9zcmMvZGF0ZXRpbWUnXHJcbmltcG9ydCB7IFJFU1RfU0VUVElOR1MgfSBmcm9tICcuLi9zZXR0aW5ncyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlU2VydmljZXMge1xyXG5cclxuICB0b1N0cih2YWw6IGFueSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHZhbCkgPyBTdHJpbmcodmFsKSA6ICcnXHJcbiAgfVxyXG5cclxuICB0b051bSh2YWw6IGFueSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gKHZhbCAmJiBOdW1iZXIodmFsKSkgPyBOdW1iZXIodmFsKSA6IDBcclxuICB9XHJcblxyXG4gIHRvRGF0ZSh2YWw6IG51bWJlciB8IHN0cmluZyB8IERhdGUsIGZvcm1hdD86IHN0cmluZywgb3B0PzogRGF0ZVRpbWVPcHRpb25zKTogRGF0ZSB7XHJcbiAgICBpZiAodmFsIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICByZXR1cm4gdmFsXHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT0gJ3N0cmluZycpIHtcclxuICAgICAgaWYgKGZvcm1hdCkge1xyXG4gICAgICAgIGlmIChvcHQpIHtcclxuICAgICAgICAgIHJldHVybiBEYXRlVGltZS5mcm9tRm9ybWF0KHZhbCwgZm9ybWF0LCBvcHQpLnRvSlNEYXRlKClcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXQodmFsLCBmb3JtYXQpLnRvSlNEYXRlKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsKVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT0gJ251bWJlcicpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbClcclxuICAgIH1cclxuICAgIGNvbnNvbGUuZXJyb3IoJ1dyb25nIGRhdGUgZm9ybWF0JywgdmFsLCBmb3JtYXQpXHJcbiAgICB0aHJvdyAnV3JvbmcgZGF0ZSBmb3JtYXQnXHJcbiAgfVxyXG5cclxuICBnZXRCWFN0clRpbWUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50b0lTT1N0cmluZ1dpdGhUaW1lem9uZShkYXRlKVxyXG4gIH1cclxuXHJcbiAgdG9JU09TdHJpbmdXaXRoVGltZXpvbmUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0ek9mZnNldCA9IC1kYXRlLmdldFRpbWV6b25lT2Zmc2V0KClcclxuICAgIGNvbnN0IGRpZmYgPSB0ek9mZnNldCA+PSAwID8gJysnIDogJy0nXHJcbiAgICBjb25zdCBwYWQgPSAobjogbnVtYmVyKSA9PiBgJHtNYXRoLmZsb29yKE1hdGguYWJzKG4pKX1gLnBhZFN0YXJ0KDIsICcwJylcclxuICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCkgK1xyXG4gICAgICAnLScgKyBwYWQoZGF0ZS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAnLScgKyBwYWQoZGF0ZS5nZXREYXRlKCkpICtcclxuICAgICAgJ1QnICsgcGFkKGRhdGUuZ2V0SG91cnMoKSkgK1xyXG4gICAgICAnOicgKyBwYWQoZGF0ZS5nZXRNaW51dGVzKCkpICtcclxuICAgICAgJzonICsgcGFkKGRhdGUuZ2V0U2Vjb25kcygpKSArXHJcbiAgICAgIGRpZmYgKyBwYWQodHpPZmZzZXQgLyA2MCkgK1xyXG4gICAgICAnOicgKyBwYWQodHpPZmZzZXQgJSA2MClcclxuICB9O1xyXG5cclxuICB0b0Jvb2wodmFsOiBhbnkpIHtcclxuICAgIHN3aXRjaCAodHlwZW9mIHZhbCkge1xyXG4gICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgIHZhbCA9IHZhbC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgaWYgKHZhbCA9PT0gJ24nIHx8IHZhbCA9PT0gJ3knKSB7IC8vINCx0LjRgtGA0LjQutGB0L7QstGL0LUg0L/QvtC90Y/RgtC40Y8g0L4gYm9vbFxyXG4gICAgICAgICAgcmV0dXJuIHZhbCA9PT0gJ3knXHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWwgPT09ICd0cnVlJyB8fCB2YWwgPT09ICdmYWxzZScpIHsgLy8g0LHQuNGC0YDQuNC60YHQvtCy0YvQtSDQv9C+0L3Rj9GC0LjRjyDQviBib29sXHJcbiAgICAgICAgICByZXR1cm4gdmFsID09PSAndHJ1ZSdcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICAgICAgfVxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBCb29sZWFuKHZhbClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvQlhZb3JOKHZhbDogYm9vbGVhbikge1xyXG4gICAgcmV0dXJuICh2YWwpID8gJ1knIDogJ04nXHJcbiAgfVxyXG5cclxuICB0eXBlb2YodmFsOiBhbnkpIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsXHJcbiAgfVxyXG5cclxuICB0eXBlRGVmQ2xhc3ModmFsOiBvYmplY3QpOiB1bmRlZmluZWQgfCBudWxsIHwgJ2RhdGUnIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICByZXR1cm4gJ2RhdGUnXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvSlNPTih2YWw6IG9iamVjdCkge1xyXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbClcclxuICB9XHJcblxyXG4gIGZyb21KU09OPFQ+KHZhbDogc3RyaW5nKTogVCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWwpXHJcbiAgfVxyXG5cclxuICBwcmVwYXJlQmFzZUFkZHJlc3ModXJsOiBzdHJpbmcsIGFkZDogc3RyaW5nID0gJycpIHtcclxuICAgIGlmICh1cmwuc2VhcmNoKCdodHRwczovLycpICE9PSAwICYmIHVybC5zZWFyY2goJ2h0dHA6Ly8nKSkge1xyXG4gICAgICB1cmwgPSAnaHR0cHM6Ly8nICsgdXJsXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVybC5sYXN0SW5kZXhPZignLycpICE9PSAodXJsLmxlbmd0aCAtIDEpKSB7XHJcbiAgICAgIHVybCA9IHVybCArICcvJ1xyXG4gICAgfVxyXG5cclxuICAgIHVybCA9IHVybCArIGFkZFxyXG5cclxuICAgIHJldHVybiB1cmxcclxuICB9XHJcblxyXG4gIGdldEhvbWVBZGRyZXNzKCkge1xyXG4gICAgLy8gcmV0dXJuIHRoaXMucHJlcGFyZUJhc2VBZGRyZXNzKGVudmlyb25tZW50LnVybHMuaG9tZSlcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wcmVwYXJlQmFzZUFkZHJlc3MoUkVTVF9TRVRUSU5HUy51cmxzLmhvbWUpXHJcbiAgfVxyXG5cclxuICBkYXRlRGlmZihhOiBEYXRlLCBiOiBEYXRlKSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoYS52YWx1ZU9mKCkgLSBiLnZhbHVlT2YoKSlcclxuICB9XHJcblxyXG4gIGRhdGVEaWZmSW5EYXlzKGE6IERhdGUsIGI6IERhdGUpIHtcclxuICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMuZGF0ZURpZmYoYSwgYikudmFsdWVPZigpIC8gdGltZS5vbmVEYXlNaWxsaXNlY29uZHMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QmFzZTY0RmlsZShmaWxlOiBGaWxlKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpXHJcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpXHJcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQpXHJcbiAgICAgIHJlYWRlci5vbmVycm9yID0gZXJyb3IgPT4gcmVqZWN0KGVycm9yKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldEJhc2U2NEZpbGVMaWtlU3RyKGZpbGU6IEZpbGUpOiBQcm9taXNlPHsgaGVhZGVyOiBzdHJpbmcsIHZhbDogc3RyaW5nIH0gfCB1bmRlZmluZWQ+IHtcclxuICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmdldEJhc2U2NEZpbGUoZmlsZSlcclxuICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xyXG4gICAgICBsZXQgc3BsaXQgPSByZXN1bHQuc3BsaXQoJywnKVxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhlYWRlcjogc3BsaXRbMF0sXHJcbiAgICAgICAgdmFsOiBzcGxpdFsxXVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuICBzdW1BcnJheShudW1iZXJzOiBudW1iZXJbXSkge1xyXG4gICAgcmV0dXJuIG51bWJlcnMucmVkdWNlKChhLCBiKSA9PiB7XHJcbiAgICAgIHJldHVybiBhICsgYjtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBpc0l0VGhlU2FtZURhdGUoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKSB7XHJcbiAgICByZXR1cm4gZGF0ZTEuZ2V0RGF0ZSgpID09PSBkYXRlMi5nZXREYXRlKClcclxuICAgICAgJiYgZGF0ZTEuZ2V0TW9udGgoKSA9PT0gZGF0ZTIuZ2V0TW9udGgoKVxyXG4gICAgICAmJiBkYXRlMS5nZXRGdWxsWWVhcigpID09PSBkYXRlMi5nZXRGdWxsWWVhcigpXHJcbiAgfVxyXG5cclxuICB0b1VuaXgoZGF0ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIE1hdGguZmxvb3IoZGF0ZS52YWx1ZU9mKCkgLyAxMDAwKVxyXG4gIH1cclxuXHJcbiAgYXJyU3VtKHg6IG51bWJlcltdKSB7XHJcbiAgICBsZXQgcyA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHgubGVuZ3RoOyBpKyspIHtcclxuICAgICAgcyArPSB4W2ldXHJcbiAgICB9XHJcbiAgICByZXR1cm4gc1xyXG4gIH1cclxuXHJcbiAgZ2V0QmFzZVVybEh0dHBzKHVybDogc3RyaW5nLCBjb21wb25lbnQgPSBmYWxzZSkge1xyXG4gICAgaWYgKGNvbXBvbmVudCkge1xyXG4gICAgICByZXR1cm4gZW5jb2RlVVJJKHRoaXMuY3JvcFVybCh1cmwpICsgJy8nKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBlbmNvZGVVUkkoJ2h0dHBzOi8vJyArIHRoaXMuY3JvcFVybCh1cmwpICsgJy8nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyb3BVcmwodXJsOiBzdHJpbmcpIHtcclxuICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHBzOi8vJywgJycpIDogJydcclxuICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHA6Ly8nLCAnJykgOiAnJ1xyXG4gICAgdXJsID0gKHVybCkgPyB1cmwucmVwbGFjZSgnaHR0cHM6JywgJycpIDogJydcclxuICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHA6JywgJycpIDogJydcclxuICAgIHJldHVybiB1cmxcclxuICB9XHJcbn1cclxuIl19
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckMsaUVBQWlFO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFFaEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBOztBQUs5QyxNQUFNLE9BQU8sWUFBWTtJQUV2QixLQUFLLENBQUMsR0FBUTtRQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDakMsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFRO1FBQ1osT0FBTyxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUEyQixFQUFFLE1BQWUsRUFBRSxHQUFxQjtRQUN4RSxJQUFJLEdBQUcsWUFBWSxJQUFJLEVBQUU7WUFDdkIsT0FBTyxHQUFHLENBQUE7U0FDWDthQUFNLElBQUksT0FBTyxHQUFHLElBQUksUUFBUSxFQUFFO1lBQ2pDLElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksR0FBRyxFQUFFO29CQUNQLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO2lCQUN4RDtnQkFDRCxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1B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LENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUM1QyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUMzQyxPQUFPLEdBQUcsQ0FBQTtJQUNaLENBQUM7O3lHQWpMVSxZQUFZOzZHQUFaLFlBQVksY0FGWCxNQUFNOzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IHRpbWUgfSBmcm9tICcuLi9jb25zdHMvdGltZSdcclxuLy8gaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICdieC1yZXN0L2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCdcclxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbidcclxuaW1wb3J0IHsgRGF0ZVRpbWVPcHRpb25zIH0gZnJvbSAnbHV4b24vc3JjL2RhdGV0aW1lJ1xyXG5pbXBvcnQgeyBCWF9SRVNUX1NFVFRJTkdTIH0gZnJvbSAnLi4vc2V0dGluZ3MnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlU2VydmljZXMge1xyXG5cclxuICB0b1N0cih2YWw6IGFueSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHZhbCkgPyBTdHJpbmcodmFsKSA6ICcnXHJcbiAgfVxyXG5cclxuICB0b051bSh2YWw6IGFueSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gKHZhbCAmJiBOdW1iZXIodmFsKSkgPyBOdW1iZXIodmFsKSA6IDBcclxuICB9XHJcblxyXG4gIHRvRGF0ZSh2YWw6IG51bWJlciB8IHN0cmluZyB8IERhdGUsIGZvcm1hdD86IHN0cmluZywgb3B0PzogRGF0ZVRpbWVPcHRpb25zKTogRGF0ZSB7XHJcbiAgICBpZiAodmFsIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICByZXR1cm4gdmFsXHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT0gJ3N0cmluZycpIHtcclxuICAgICAgaWYgKGZvcm1hdCkge1xyXG4gICAgICAgIGlmIChvcHQpIHtcclxuICAgICAgICAgIHJldHVybiBEYXRlVGltZS5mcm9tRm9ybWF0KHZhbCwgZm9ybWF0LCBvcHQpLnRvSlNEYXRlKClcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXQodmFsLCBmb3JtYXQpLnRvSlNEYXRlKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsKVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT0gJ251bWJlcicpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbClcclxuICAgIH1cclxuICAgIGNvbnNvbGUuZXJyb3IoJ1dyb25nIGRhdGUgZm9ybWF0JywgdmFsLCBmb3JtYXQpXHJcbiAgICB0aHJvdyAnV3JvbmcgZGF0ZSBmb3JtYXQnXHJcbiAgfVxyXG5cclxuICBnZXRCWFN0clRpbWUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50b0lTT1N0cmluZ1dpdGhUaW1lem9uZShkYXRlKVxyXG4gIH1cclxuXHJcbiAgdG9JU09TdHJpbmdXaXRoVGltZXpvbmUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0ek9mZnNldCA9IC1kYXRlLmdldFRpbWV6b25lT2Zmc2V0KClcclxuICAgIGNvbnN0IGRpZmYgPSB0ek9mZnNldCA+PSAwID8gJysnIDogJy0nXHJcbiAgICBjb25zdCBwYWQgPSAobjogbnVtYmVyKSA9PiBgJHtNYXRoLmZsb29yKE1hdGguYWJzKG4pKX1gLnBhZFN0YXJ0KDIsICcwJylcclxuICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCkgK1xyXG4gICAgICAnLScgKyBwYWQoZGF0ZS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAnLScgKyBwYWQoZGF0ZS5nZXREYXRlKCkpICtcclxuICAgICAgJ1QnICsgcGFkKGRhdGUuZ2V0SG91cnMoKSkgK1xyXG4gICAgICAnOicgKyBwYWQoZGF0ZS5nZXRNaW51dGVzKCkpICtcclxuICAgICAgJzonICsgcGFkKGRhdGUuZ2V0U2Vjb25kcygpKSArXHJcbiAgICAgIGRpZmYgKyBwYWQodHpPZmZzZXQgLyA2MCkgK1xyXG4gICAgICAnOicgKyBwYWQodHpPZmZzZXQgJSA2MClcclxuICB9O1xyXG5cclxuICB0b0Jvb2wodmFsOiBhbnkpIHtcclxuICAgIHN3aXRjaCAodHlwZW9mIHZhbCkge1xyXG4gICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgIHZhbCA9IHZhbC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgaWYgKHZhbCA9PT0gJ24nIHx8IHZhbCA9PT0gJ3knKSB7IC8vINCx0LjRgtGA0LjQutGB0L7QstGL0LUg0L/QvtC90Y/RgtC40Y8g0L4gYm9vbFxyXG4gICAgICAgICAgcmV0dXJuIHZhbCA9PT0gJ3knXHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWwgPT09ICd0cnVlJyB8fCB2YWwgPT09ICdmYWxzZScpIHsgLy8g0LHQuNGC0YDQuNC60YHQvtCy0YvQtSDQv9C+0L3Rj9GC0LjRjyDQviBib29sXHJcbiAgICAgICAgICByZXR1cm4gdmFsID09PSAndHJ1ZSdcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICAgICAgfVxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBCb29sZWFuKHZhbClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvQlhZb3JOKHZhbDogYm9vbGVhbikge1xyXG4gICAgcmV0dXJuICh2YWwpID8gJ1knIDogJ04nXHJcbiAgfVxyXG5cclxuICB0eXBlb2YodmFsOiBhbnkpIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsXHJcbiAgfVxyXG5cclxuICB0eXBlRGVmQ2xhc3ModmFsOiBvYmplY3QpOiB1bmRlZmluZWQgfCBudWxsIHwgJ2RhdGUnIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICByZXR1cm4gJ2RhdGUnXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvSlNPTih2YWw6IG9iamVjdCkge1xyXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbClcclxuICB9XHJcblxyXG4gIGZyb21KU09OPFQ+KHZhbDogc3RyaW5nKTogVCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWwpXHJcbiAgfVxyXG5cclxuICBwcmVwYXJlQmFzZUFkZHJlc3ModXJsOiBzdHJpbmcsIGFkZDogc3RyaW5nID0gJycpIHtcclxuICAgIGlmICh1cmwuc2VhcmNoKCdodHRwczovLycpICE9PSAwICYmIHVybC5zZWFyY2goJ2h0dHA6Ly8nKSkge1xyXG4gICAgICB1cmwgPSAnaHR0cHM6Ly8nICsgdXJsXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVybC5sYXN0SW5kZXhPZignLycpICE9PSAodXJsLmxlbmd0aCAtIDEpKSB7XHJcbiAgICAgIHVybCA9IHVybCArICcvJ1xyXG4gICAgfVxyXG5cclxuICAgIHVybCA9IHVybCArIGFkZFxyXG5cclxuICAgIHJldHVybiB1cmxcclxuICB9XHJcblxyXG4gIGdldEhvbWVBZGRyZXNzKCkge1xyXG4gICAgLy8gcmV0dXJuIHRoaXMucHJlcGFyZUJhc2VBZGRyZXNzKGVudmlyb25tZW50LnVybHMuaG9tZSlcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wcmVwYXJlQmFzZUFkZHJlc3MoQlhfUkVTVF9TRVRUSU5HUy51cmxzLmhvbWUpXHJcbiAgfVxyXG5cclxuICBkYXRlRGlmZihhOiBEYXRlLCBiOiBEYXRlKSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoYS52YWx1ZU9mKCkgLSBiLnZhbHVlT2YoKSlcclxuICB9XHJcblxyXG4gIGRhdGVEaWZmSW5EYXlzKGE6IERhdGUsIGI6IERhdGUpIHtcclxuICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMuZGF0ZURpZmYoYSwgYikudmFsdWVPZigpIC8gdGltZS5vbmVEYXlNaWxsaXNlY29uZHMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QmFzZTY0RmlsZShmaWxlOiBGaWxlKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpXHJcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpXHJcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQpXHJcbiAgICAgIHJlYWRlci5vbmVycm9yID0gZXJyb3IgPT4gcmVqZWN0KGVycm9yKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldEJhc2U2NEZpbGVMaWtlU3RyKGZpbGU6IEZpbGUpOiBQcm9taXNlPHsgaGVhZGVyOiBzdHJpbmcsIHZhbDogc3RyaW5nIH0gfCB1bmRlZmluZWQ+IHtcclxuICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmdldEJhc2U2NEZpbGUoZmlsZSlcclxuICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xyXG4gICAgICBsZXQgc3BsaXQgPSByZXN1bHQuc3BsaXQoJywnKVxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhlYWRlcjogc3BsaXRbMF0sXHJcbiAgICAgICAgdmFsOiBzcGxpdFsxXVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuICBzdW1BcnJheShudW1iZXJzOiBudW1iZXJbXSkge1xyXG4gICAgcmV0dXJuIG51bWJlcnMucmVkdWNlKChhLCBiKSA9PiB7XHJcbiAgICAgIHJldHVybiBhICsgYjtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBpc0l0VGhlU2FtZURhdGUoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKSB7XHJcbiAgICByZXR1cm4gZGF0ZTEuZ2V0RGF0ZSgpID09PSBkYXRlMi5nZXREYXRlKClcclxuICAgICAgJiYgZGF0ZTEuZ2V0TW9udGgoKSA9PT0gZGF0ZTIuZ2V0TW9udGgoKVxyXG4gICAgICAmJiBkYXRlMS5nZXRGdWxsWWVhcigpID09PSBkYXRlMi5nZXRGdWxsWWVhcigpXHJcbiAgfVxyXG5cclxuICB0b1VuaXgoZGF0ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIE1hdGguZmxvb3IoZGF0ZS52YWx1ZU9mKCkgLyAxMDAwKVxyXG4gIH1cclxuXHJcbiAgYXJyU3VtKHg6IG51bWJlcltdKSB7XHJcbiAgICBsZXQgcyA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHgubGVuZ3RoOyBpKyspIHtcclxuICAgICAgcyArPSB4W2ldXHJcbiAgICB9XHJcbiAgICByZXR1cm4gc1xyXG4gIH1cclxuXHJcbiAgZ2V0QmFzZVVybEh0dHBzKHVybDogc3RyaW5nLCBjb21wb25lbnQgPSBmYWxzZSkge1xyXG4gICAgaWYgKGNvbXBvbmVudCkge1xyXG4gICAgICByZXR1cm4gZW5jb2RlVVJJKHRoaXMuY3JvcFVybCh1cmwpICsgJy8nKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBlbmNvZGVVUkkoJ2h0dHBzOi8vJyArIHRoaXMuY3JvcFVybCh1cmwpICsgJy8nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyb3BVcmwodXJsOiBzdHJpbmcpIHtcclxuICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHBzOi8vJywgJycpIDogJydcclxuICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHA6Ly8nLCAnJykgOiAnJ1xyXG4gICAgdXJsID0gKHVybCkgPyB1cmwucmVwbGFjZSgnaHR0cHM6JywgJycpIDogJydcclxuICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHA6JywgJycpIDogJydcclxuICAgIHJldHVybiB1cmxcclxuICB9XHJcbn1cclxuIl19
@@ -62,44 +62,42 @@ export default class HttpBXServices extends HttpServices {
62
62
  return this.httpGet(this.getNameMethod(name), params, settings);
63
63
  }
64
64
  httpPost(url, params = {}, settings = this.defSettings) {
65
- return this.session.getAuthParams().pipe(mergeMap(auth => {
66
- if (auth) {
67
- const paramsClone = clone(params);
68
- paramsClone[this.session.getKeyAuth()] = auth;
69
- return this.session.getBaseUrl().pipe(mergeMap(v => {
70
- if (v) {
71
- return this.http.post(this.prepareBaseAddress(v) + url, this.getHttpParamsPost(paramsClone, new FormData(), false, [], settings));
72
- }
73
- return throwError(() => 'get base url error');
74
- }));
75
- }
76
- else {
77
- return throwError(() => 'auth not get');
78
- }
79
- }));
65
+ let auth = this.session.getAuthParams();
66
+ if (auth) {
67
+ const paramsClone = clone(params);
68
+ paramsClone[this.session.getKeyAuth()] = auth;
69
+ return this.session.getBaseUrl().pipe(mergeMap(v => {
70
+ if (v) {
71
+ return this.http.post(this.prepareBaseAddress(v) + url, this.getHttpParamsPost(paramsClone, new FormData(), false, [], settings));
72
+ }
73
+ return throwError(() => 'get base url error');
74
+ }));
75
+ }
76
+ else {
77
+ return throwError(() => 'auth not get');
78
+ }
80
79
  }
81
80
  httpGet(url, params = {}, settings = this.defSettings) {
82
- return this.session.getAuthParams().pipe(mergeMap(auth => {
83
- if (auth) {
84
- if (params === null) {
85
- params = {};
86
- }
87
- const paramsClone = clone(params);
88
- paramsClone[this.session.getKeyAuth()] = auth;
89
- let options = {
90
- params: this.getHttpParamsGet(paramsClone)
91
- };
92
- return this.session.getBaseUrl().pipe(mergeMap(v => {
93
- if (v) {
94
- return this.http.get(this.prepareBaseAddress(v) + url, options);
95
- }
96
- return throwError(() => 'get base url error');
97
- }));
98
- }
99
- else {
100
- return throwError(() => 'auth not get');
81
+ let auth = this.session.getAuthParams();
82
+ if (auth) {
83
+ if (params === null) {
84
+ params = {};
101
85
  }
102
- }));
86
+ const paramsClone = clone(params);
87
+ paramsClone[this.session.getKeyAuth()] = auth;
88
+ let options = {
89
+ params: this.getHttpParamsGet(paramsClone)
90
+ };
91
+ return this.session.getBaseUrl().pipe(mergeMap(v => {
92
+ if (v) {
93
+ return this.http.get(this.prepareBaseAddress(v) + url, options);
94
+ }
95
+ return throwError(() => 'get base url error');
96
+ }));
97
+ }
98
+ else {
99
+ return throwError(() => 'auth not get');
100
+ }
103
101
  }
104
102
  getNameMethod(arr) {
105
103
  return arr.join('.');
@@ -113,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
113
111
  providedIn: 'root'
114
112
  }]
115
113
  }] });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEJYLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvaHR0cC9IdHRwQlgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQTtBQUU5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFBOztBQVFyQyxrREFBa0Q7QUFLbEQsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFlLFNBQVEsWUFBWTtJQUV0RCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFvQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQ3hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pCLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2FBQzFCO1lBQ0QsT0FBTyxTQUFTLENBQUE7UUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQU8sS0FBeUQ7UUFDcEUsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBUyxJQUFJLENBQUMsWUFBWSxDQUFJLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDdEUsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFBLENBQUMsbUJBQW1CO1FBQ25DLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQSxDQUFDLDJDQUEyQztRQUM3RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxD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LENBQUM7aUJBQzNDLENBQUE7Z0JBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FDbkMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNYLElBQUksQ0FBQyxFQUFFO3dCQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtxQkFDbkU7b0JBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtnQkFDL0MsQ0FBQyxDQUFDLENBQ0gsQ0FBQTthQUNGO2lCQUFNO2dCQUNMLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFBO2FBQ3hDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsR0FBYTtRQUN6QixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdEIsQ0FBQzs7MkdBcklrQixjQUFjOytHQUFkLGNBQWMsY0FGckIsTUFBTTsyRkFFQyxjQUFjO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IsIG1lcmdlTWFwLCBmb3JrSm9pbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnXG5pbXBvcnQgeyBpSHR0cFBhcmFtU2V0dGluZ3MgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9zZXR0aW5ncydcbmltcG9ydCB7IEh0dHBTZXJ2aWNlcyB9IGZyb20gJy4vaHR0cCdcbmltcG9ydCB7XG4gIGlCYXRjaFJlcXVlc3RBbnN3ZXIsIGlCYXRjaFJlcXVlc3RQYXJhbSxcbiAgaUJhdGNoUmVxdWVzdFBhcmFtQXJyLFxuICBpQmF0Y2hSZXF1ZXN0UGFyYW1IdHRwLFxufSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9iYXRjaC9iYXRjaFJlcXVlc3RQYXJhbSdcbmltcG9ydCB7IGlCWFJlc3RBbnN3ZXIgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9iYXNlL2Fuc3dlcidcblxuLy8gdHlwZSBUcmFuc2Zvcm1GdW5jdGlvbjxULCBSPiA9IChpbnB1dDogVCkgPT4gUjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIdHRwQlhTZXJ2aWNlcyBleHRlbmRzIEh0dHBTZXJ2aWNlcyB7XG5cbiAgdGltZU5vd09uU2VydmVyKCkge1xuICAgIHJldHVybiB0aGlzLmh0dHBHZXQ8eyByZXN1bHQ/OiBEYXRlLCBlcnJvcj86IHN0cmluZyB9Pignc2VydmVyLnRpbWUnKS5waXBlKFxuICAgICAgbWFwKHYgPT4ge1xuICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh2LnJlc3VsdClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICAvKipcbiAgICog0K3RgtC+INC/0LjQt9C00LXRhiDQsCDQvdC1INC80LXRgtC+0LRcbiAgICogQHBhcmFtIHBhcmFtXG4gICAqL1xuICBicmFuY2g8VCwgQT4ocGFyYW06IGlCYXRjaFJlcXVlc3RQYXJhbUFycjxUPiB8IGlCYXRjaFJlcXVlc3RQYXJhbTxUPltdKTogT2JzZXJ2YWJsZTxpQmF0Y2hSZXF1ZXN0QW5zd2VyPEE+W10gfCB1bmRlZmluZWQ+IHtcbiAgICBsZXQgcHJlcGFyZVBhcmFtID0gT2JqZWN0LmVudHJpZXM8c3RyaW5nPih0aGlzLnByZXBhcmVCYXRjaDxUPihwYXJhbSkpXG4gICAgY29uc3Qgc2l6ZSA9IDUwIC8vINCx0L7Qu9GM0YjQtSDQvdC1INC+0YLQtNCw0YHRglxuICAgIGxldCBzdWJhcnJheSA9IFtdIC8v0LzQsNGB0YHQuNCyINCyINC60L7RgtC+0YDRi9C5INCx0YPQtNC10YIg0LLRi9Cy0LXQtNC10L0g0YDQtdC30YPQu9GM0YLQsNGCLlxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTWF0aC5jZWlsKHByZXBhcmVQYXJhbS5sZW5ndGggLyBzaXplKTsgaSsrKSB7XG4gICAgICBzdWJhcnJheVtpXSA9IHByZXBhcmVQYXJhbS5zbGljZSgoaSAqIHNpemUpLCAoaSAqIHNpemUpICsgc2l6ZSlcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ya0pvaW4oXG4gICAgICBzdWJhcnJheS5tYXAoaSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBQb3N0KCdiYXRjaC5qc29uJywge1xuICAgICAgICAgIGhhbHQ6IDAsXG4gICAgICAgICAgY21kOiBPYmplY3QuYXNzaWduKHt9LCAuLi5pLm1hcCh4ID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7W3hbMF1dOiB4WzFdfVxuICAgICAgICAgIH0pKVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICApIGFzIE9ic2VydmFibGU8aUJhdGNoUmVxdWVzdEFuc3dlcjxBPltdPlxuICB9XG5cbiAgcHJlcGFyZUJhdGNoPFQ+KHBhcmFtOiBpQmF0Y2hSZXF1ZXN0UGFyYW1BcnI8VD4gfCBpQmF0Y2hSZXF1ZXN0UGFyYW08VD5bXSk6IGlCYXRjaFJlcXVlc3RQYXJhbUh0dHAge1xuICAgIGxldCByZXM6IGlCYXRjaFJlcXVlc3RQYXJhbUh0dHAgPSBPYmplY3Qua2V5cyhwYXJhbSkucmVkdWNlKFxuICAgICAgKG9iaiwga2V5KSA9PiB7XG4gICAgICAgIG9ialtrZXldID0gJyc7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgICB9LFxuICAgICAge30gYXMgaUJhdGNoUmVxdWVzdFBhcmFtSHR0cFxuICAgICk7XG4gICAgZm9yIChsZXQga2V5IGluIHBhcmFtKSB7XG4gICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGtleSA9PT0gJ251bWJlcicgJiYgcGFyYW1ba2V5XS5wYXJhbSkge1xuICAgICAgICByZXNba2V5XSA9IHBhcmFtW2tleV0ubmFtZSArICc/JyArIHRoaXMuZ2V0SHR0cFBhcmFtc0dldChwYXJhbVtrZXldLnBhcmFtKS50b1N0cmluZygpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXNcbiAgfVxuXG4gIC8vIG92ZXJyaWRlIG1hcEJyYW5jaFJlc3VsdDxUPihyZXM6IGlCYXRjaFJlcXVlc3RBbnN3ZXI8VD5bXSkge1xuICAvLyAgIHJldHVybiBPYmplY3QuYXNzaWduKFtdLCAuLi5yZXMubWFwKGkgPT4gKGkucmVzdWx0ICYmIGkucmVzdWx0LnJlc3VsdCkgPyBpLnJlc3VsdC5yZXN1bHQgOiB1bmRlZmluZWQpKSBhcyB7XG4gIC8vICAgICBba2V5OiBrZXlCYXRjaF06IFRcbiAgLy8gICB9XG4gIC8vIH1cbiAgLy9cbiAgLy8gb3ZlcnJpZGUgbWFwQnJhbmNoUmVzdWx0V2l0aG91dEtleTxUPihyZXM6IGlCYXRjaFJlcXVlc3RBbnN3ZXI8VD5bXSk6IFRbXSB7XG4gIC8vICAgcmV0dXJuIGZsYXR0ZW48VD4oT2JqZWN0LmFzc2lnbihbXSwgLi4ucmVzLm1hcChpID0+IChpLnJlc3VsdCAmJiBpLnJlc3VsdC5yZXN1bHQpID8gaS5yZXN1bHQucmVzdWx0IDogdW5kZWZpbmVkKSkpXG4gIC8vIH1cblxuICBwb3N0PFQ+KG5hbWU6IHN0cmluZ1tdLFxuICAgICAgICAgIHBhcmFtczogYW55ID0ge30sXG4gICAgICAgICAgc2V0dGluZ3M6IGlIdHRwUGFyYW1TZXR0aW5ncyA9IHRoaXMuZGVmU2V0dGluZ3MpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwUG9zdDxpQlhSZXN0QW5zd2VyPFQ+Pih0aGlzLmdldE5hbWVNZXRob2QobmFtZSksIHBhcmFtcywgc2V0dGluZ3MpXG4gIH1cblxuICBnZXQ8VD4obmFtZTogc3RyaW5nW10sXG4gICAgICAgICBwYXJhbXM6IGFueSA9IHt9LFxuICAgICAgICAgc2V0dGluZ3M6IGlIdHRwUGFyYW1TZXR0aW5ncyA9IHRoaXMuZGVmU2V0dGluZ3MpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwR2V0PGlCWFJlc3RBbnN3ZXI8VD4+KHRoaXMuZ2V0TmFtZU1ldGhvZChuYW1lKSwgcGFyYW1zLCBzZXR0aW5ncylcbiAgfVxuXG4gIG92ZXJyaWRlIGh0dHBQb3N0PFQ+KHVybDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IGFueSA9IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczogaUh0dHBQYXJhbVNldHRpbmdzID0gdGhpcy5kZWZTZXR0aW5nc1xuICApOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldEF1dGhQYXJhbXMoKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoYXV0aCA9PiB7XG4gICAgICAgIGlmIChhdXRoKSB7XG4gICAgICAgICAgY29uc3QgcGFyYW1zQ2xvbmUgPSBjbG9uZShwYXJhbXMpXG4gICAgICAgICAgcGFyYW1zQ2xvbmVbdGhpcy5zZXNzaW9uLmdldEtleUF1dGgoKV0gPSBhdXRoXG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbi5nZXRCYXNlVXJsKCkucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKHYgPT4ge1xuICAgICAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUIHwgdW5kZWZpbmVkPihcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZUJhc2VBZGRyZXNzKHYpICsgdXJsLFxuICAgICAgICAgICAgICAgICAgdGhpcy5nZXRIdHRwUGFyYW1zUG9zdChwYXJhbXNDbG9uZSwgbmV3IEZvcm1EYXRhKCksIGZhbHNlLCBbXSwgc2V0dGluZ3MpKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdnZXQgYmFzZSB1cmwgZXJyb3InKVxuICAgICAgICAgICAgfSkpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ2F1dGggbm90IGdldCcpXG4gICAgICAgIH1cbiAgICAgIH0pKVxuICB9XG5cbiAgb3ZlcnJpZGUgaHR0cEdldDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBwYXJhbXM6IGFueSA9IHt9LFxuICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzXG4gICk6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLnNlc3Npb24uZ2V0QXV0aFBhcmFtcygpLnBpcGUoXG4gICAgICBtZXJnZU1hcChhdXRoID0+IHtcbiAgICAgICAgaWYgKGF1dGgpIHtcbiAgICAgICAgICBpZiAocGFyYW1zID09PSBudWxsKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSB7fVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBwYXJhbXNDbG9uZSA9IGNsb25lKHBhcmFtcylcbiAgICAgICAgICBwYXJhbXNDbG9uZVt0aGlzLnNlc3Npb24uZ2V0S2V5QXV0aCgpXSA9IGF1dGhcbiAgICAgICAgICBsZXQgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRIdHRwUGFyYW1zR2V0KHBhcmFtc0Nsb25lKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aGlzLnNlc3Npb24uZ2V0QmFzZVVybCgpLnBpcGUoXG4gICAgICAgICAgICBtZXJnZU1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgaWYgKHYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih0aGlzLnByZXBhcmVCYXNlQWRkcmVzcyh2KSArIHVybCwgb3B0aW9ucylcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnZ2V0IGJhc2UgdXJsIGVycm9yJylcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdhdXRoIG5vdCBnZXQnKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldE5hbWVNZXRob2QoYXJyOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBhcnIuam9pbignLicpXG4gIH1cblxufVxuXG4iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEJYLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvaHR0cC9IdHRwQlgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQTtBQUU5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFBOztBQVFyQyxrREFBa0Q7QUFLbEQsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFlLFNBQVEsWUFBWTtJQUV0RCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFvQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQ3hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pCLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2FBQzFCO1lBQ0QsT0FBTyxTQUFTLENBQUE7UUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQU8sS0FBeUQ7UUFDcEUsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBUyxJQUFJLENBQUMsWUFBWSxDQUFJLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDdEUsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFBLENBQUMsbUJBQW1CO1FBQ25DLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQSxDQUFDLDJDQUEyQztRQUM3RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxD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QyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLEVBQUU7b0JBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO2lCQUNuRTtnQkFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1lBQy9DLENBQUMsQ0FBQyxDQUNILENBQUE7U0FDRjthQUFNO1lBQ0wsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUE7U0FDeEM7SUFFSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQWE7UUFDekIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3RCLENBQUM7OzJHQWxJa0IsY0FBYzsrR0FBZCxjQUFjLGNBRnJCLE1BQU07MkZBRUMsY0FBYztrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yLCBtZXJnZU1hcCwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJ1xuaW1wb3J0IHsgaUh0dHBQYXJhbVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3Qvc2V0dGluZ3MnXG5pbXBvcnQgeyBIdHRwU2VydmljZXMgfSBmcm9tICcuL2h0dHAnXG5pbXBvcnQge1xuICBpQmF0Y2hSZXF1ZXN0QW5zd2VyLCBpQmF0Y2hSZXF1ZXN0UGFyYW0sXG4gIGlCYXRjaFJlcXVlc3RQYXJhbUFycixcbiAgaUJhdGNoUmVxdWVzdFBhcmFtSHR0cCxcbn0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmF0Y2gvYmF0Y2hSZXF1ZXN0UGFyYW0nXG5pbXBvcnQgeyBpQlhSZXN0QW5zd2VyIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmFzZS9hbnN3ZXInXG5cbi8vIHR5cGUgVHJhbnNmb3JtRnVuY3Rpb248VCwgUj4gPSAoaW5wdXQ6IFQpID0+IFI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSHR0cEJYU2VydmljZXMgZXh0ZW5kcyBIdHRwU2VydmljZXMge1xuXG4gIHRpbWVOb3dPblNlcnZlcigpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwR2V0PHsgcmVzdWx0PzogRGF0ZSwgZXJyb3I/OiBzdHJpbmcgfT4oJ3NlcnZlci50aW1lJykucGlwZShcbiAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IERhdGUodi5yZXN1bHQpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqINCt0YLQviDQv9C40LfQtNC10YYg0LAg0L3QtSDQvNC10YLQvtC0XG4gICAqIEBwYXJhbSBwYXJhbVxuICAgKi9cbiAgYnJhbmNoPFQsIEE+KHBhcmFtOiBpQmF0Y2hSZXF1ZXN0UGFyYW1BcnI8VD4gfCBpQmF0Y2hSZXF1ZXN0UGFyYW08VD5bXSk6IE9ic2VydmFibGU8aUJhdGNoUmVxdWVzdEFuc3dlcjxBPltdIHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IHByZXBhcmVQYXJhbSA9IE9iamVjdC5lbnRyaWVzPHN0cmluZz4odGhpcy5wcmVwYXJlQmF0Y2g8VD4ocGFyYW0pKVxuICAgIGNvbnN0IHNpemUgPSA1MCAvLyDQsdC+0LvRjNGI0LUg0L3QtSDQvtGC0LTQsNGB0YJcbiAgICBsZXQgc3ViYXJyYXkgPSBbXSAvL9C80LDRgdGB0LjQsiDQsiDQutC+0YLQvtGA0YvQuSDQsdGD0LTQtdGCINCy0YvQstC10LTQtdC9INGA0LXQt9GD0LvRjNGC0LDRgi5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IE1hdGguY2VpbChwcmVwYXJlUGFyYW0ubGVuZ3RoIC8gc2l6ZSk7IGkrKykge1xuICAgICAgc3ViYXJyYXlbaV0gPSBwcmVwYXJlUGFyYW0uc2xpY2UoKGkgKiBzaXplKSwgKGkgKiBzaXplKSArIHNpemUpXG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcmtKb2luKFxuICAgICAgc3ViYXJyYXkubWFwKGkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwUG9zdCgnYmF0Y2guanNvbicsIHtcbiAgICAgICAgICBoYWx0OiAwLFxuICAgICAgICAgIGNtZDogT2JqZWN0LmFzc2lnbih7fSwgLi4uaS5tYXAoeCA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1t4WzBdXTogeFsxXX1cbiAgICAgICAgICB9KSlcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgKSBhcyBPYnNlcnZhYmxlPGlCYXRjaFJlcXVlc3RBbnN3ZXI8QT5bXT5cbiAgfVxuXG4gIHByZXBhcmVCYXRjaDxUPihwYXJhbTogaUJhdGNoUmVxdWVzdFBhcmFtQXJyPFQ+IHwgaUJhdGNoUmVxdWVzdFBhcmFtPFQ+W10pOiBpQmF0Y2hSZXF1ZXN0UGFyYW1IdHRwIHtcbiAgICBsZXQgcmVzOiBpQmF0Y2hSZXF1ZXN0UGFyYW1IdHRwID0gT2JqZWN0LmtleXMocGFyYW0pLnJlZHVjZShcbiAgICAgIChvYmosIGtleSkgPT4ge1xuICAgICAgICBvYmpba2V5XSA9ICcnO1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgfSxcbiAgICAgIHt9IGFzIGlCYXRjaFJlcXVlc3RQYXJhbUh0dHBcbiAgICApO1xuICAgIGZvciAobGV0IGtleSBpbiBwYXJhbSkge1xuICAgICAgaWYgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBrZXkgPT09ICdudW1iZXInICYmIHBhcmFtW2tleV0ucGFyYW0pIHtcbiAgICAgICAgcmVzW2tleV0gPSBwYXJhbVtrZXldLm5hbWUgKyAnPycgKyB0aGlzLmdldEh0dHBQYXJhbXNHZXQocGFyYW1ba2V5XS5wYXJhbSkudG9TdHJpbmcoKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzXG4gIH1cblxuICAvLyBvdmVycmlkZSBtYXBCcmFuY2hSZXN1bHQ8VD4ocmVzOiBpQmF0Y2hSZXF1ZXN0QW5zd2VyPFQ+W10pIHtcbiAgLy8gICByZXR1cm4gT2JqZWN0LmFzc2lnbihbXSwgLi4ucmVzLm1hcChpID0+IChpLnJlc3VsdCAmJiBpLnJlc3VsdC5yZXN1bHQpID8gaS5yZXN1bHQucmVzdWx0IDogdW5kZWZpbmVkKSkgYXMge1xuICAvLyAgICAgW2tleToga2V5QmF0Y2hdOiBUXG4gIC8vICAgfVxuICAvLyB9XG4gIC8vXG4gIC8vIG92ZXJyaWRlIG1hcEJyYW5jaFJlc3VsdFdpdGhvdXRLZXk8VD4ocmVzOiBpQmF0Y2hSZXF1ZXN0QW5zd2VyPFQ+W10pOiBUW10ge1xuICAvLyAgIHJldHVybiBmbGF0dGVuPFQ+KE9iamVjdC5hc3NpZ24oW10sIC4uLnJlcy5tYXAoaSA9PiAoaS5yZXN1bHQgJiYgaS5yZXN1bHQucmVzdWx0KSA/IGkucmVzdWx0LnJlc3VsdCA6IHVuZGVmaW5lZCkpKVxuICAvLyB9XG5cbiAgcG9zdDxUPihuYW1lOiBzdHJpbmdbXSxcbiAgICAgICAgICBwYXJhbXM6IGFueSA9IHt9LFxuICAgICAgICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFBvc3Q8aUJYUmVzdEFuc3dlcjxUPj4odGhpcy5nZXROYW1lTWV0aG9kKG5hbWUpLCBwYXJhbXMsIHNldHRpbmdzKVxuICB9XG5cbiAgZ2V0PFQ+KG5hbWU6IHN0cmluZ1tdLFxuICAgICAgICAgcGFyYW1zOiBhbnkgPSB7fSxcbiAgICAgICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cEdldDxpQlhSZXN0QW5zd2VyPFQ+Pih0aGlzLmdldE5hbWVNZXRob2QobmFtZSksIHBhcmFtcywgc2V0dGluZ3MpXG4gIH1cblxuICBvdmVycmlkZSBodHRwUG9zdDxUPih1cmw6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiBhbnkgPSB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IGlIdHRwUGFyYW1TZXR0aW5ncyA9IHRoaXMuZGVmU2V0dGluZ3NcbiAgKTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IGF1dGggPSB0aGlzLnNlc3Npb24uZ2V0QXV0aFBhcmFtcygpXG4gICAgaWYgKGF1dGgpIHtcbiAgICAgIGNvbnN0IHBhcmFtc0Nsb25lID0gY2xvbmUocGFyYW1zKVxuICAgICAgcGFyYW1zQ2xvbmVbdGhpcy5zZXNzaW9uLmdldEtleUF1dGgoKV0gPSBhdXRoXG4gICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldEJhc2VVcmwoKS5waXBlKFxuICAgICAgICBtZXJnZU1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQgfCB1bmRlZmluZWQ+KFxuICAgICAgICAgICAgICB0aGlzLnByZXBhcmVCYXNlQWRkcmVzcyh2KSArIHVybCxcbiAgICAgICAgICAgICAgdGhpcy5nZXRIdHRwUGFyYW1zUG9zdChwYXJhbXNDbG9uZSwgbmV3IEZvcm1EYXRhKCksIGZhbHNlLCBbXSwgc2V0dGluZ3MpKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnZ2V0IGJhc2UgdXJsIGVycm9yJylcbiAgICAgICAgfSkpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdhdXRoIG5vdCBnZXQnKVxuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIGh0dHBHZXQ8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgcGFyYW1zOiBhbnkgPSB7fSxcbiAgICBzZXR0aW5nczogaUh0dHBQYXJhbVNldHRpbmdzID0gdGhpcy5kZWZTZXR0aW5nc1xuICApOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBsZXQgYXV0aCA9IHRoaXMuc2Vzc2lvbi5nZXRBdXRoUGFyYW1zKClcblxuICAgIGlmIChhdXRoKSB7XG4gICAgICBpZiAocGFyYW1zID09PSBudWxsKSB7XG4gICAgICAgIHBhcmFtcyA9IHt9XG4gICAgICB9XG4gICAgICBjb25zdCBwYXJhbXNDbG9uZSA9IGNsb25lKHBhcmFtcylcbiAgICAgIHBhcmFtc0Nsb25lW3RoaXMuc2Vzc2lvbi5nZXRLZXlBdXRoKCldID0gYXV0aFxuICAgICAgbGV0IG9wdGlvbnMgPSB7XG4gICAgICAgIHBhcmFtczogdGhpcy5nZXRIdHRwUGFyYW1zR2V0KHBhcmFtc0Nsb25lKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldEJhc2VVcmwoKS5waXBlKFxuICAgICAgICBtZXJnZU1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4odGhpcy5wcmVwYXJlQmFzZUFkZHJlc3ModikgKyB1cmwsIG9wdGlvbnMpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdnZXQgYmFzZSB1cmwgZXJyb3InKVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnYXV0aCBub3QgZ2V0JylcbiAgICB9XG5cbiAgfVxuXG4gIGdldE5hbWVNZXRob2QoYXJyOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBhcnIuam9pbignLicpXG4gIH1cblxufVxuXG4iXX0=