bx-rest 0.4.5 → 0.4.7

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 (72) hide show
  1. package/README.md +118 -0
  2. package/consts/part-name-methods.d.ts +1 -0
  3. package/esm2022/consts/part-name-methods.mjs +2 -1
  4. package/esm2022/map/app.mjs +4 -2
  5. package/esm2022/map/disk/base.mjs +18 -16
  6. package/esm2022/map/disk/storage.mjs +4 -4
  7. package/esm2022/map/task/elapseditem.mjs +2 -1
  8. package/esm2022/map/timeman.mjs +37 -0
  9. package/esm2022/map/user.mjs +2 -2
  10. package/esm2022/request/calendar/event.mjs +1 -1
  11. package/esm2022/request/disk/file.mjs +7 -7
  12. package/esm2022/request/disk/storage.mjs +16 -16
  13. package/esm2022/request/task/commentitem.mjs +5 -5
  14. package/esm2022/request/task/elapseditem.mjs +6 -6
  15. package/esm2022/request/timeman.mjs +52 -0
  16. package/esm2022/request-navvy/calendar/event.mjs +2 -2
  17. package/esm2022/request-navvy/disk/file.mjs +3 -3
  18. package/esm2022/request-navvy/disk/interlayer/storage.mjs +11 -11
  19. package/esm2022/request-navvy/disk/operation.mjs +7 -10
  20. package/esm2022/request-navvy/disk/storage.mjs +9 -9
  21. package/esm2022/request-navvy/server.mjs +2 -2
  22. package/esm2022/request-navvy/task/elapseditem.mjs +51 -42
  23. package/esm2022/request-navvy/task/operation/elapseditem.mjs +63 -54
  24. package/esm2022/request-navvy/task.mjs +6 -6
  25. package/esm2022/request-navvy/timeman.mjs +24 -0
  26. package/esm2022/request-navvy/user.mjs +3 -3
  27. package/esm2022/rest.mjs +29 -25
  28. package/esm2022/services/Navvy/NavvySimple.mjs +2 -2
  29. package/esm2022/services/Navvy/NavvySupport.mjs +1 -2
  30. package/esm2022/services/navvy.mjs +1 -1
  31. package/esm2022/typification/rest/task/access/getaccess.mjs +1 -1
  32. package/esm2022/typification/rest/task/commentitem/add.mjs +1 -1
  33. package/esm2022/typification/rest/tasks/task/list.mjs +1 -1
  34. package/esm2022/typification/rest/timeman/status.mjs +2 -0
  35. package/fesm2022/bx-rest.mjs +312 -226
  36. package/fesm2022/bx-rest.mjs.map +1 -1
  37. package/map/app.d.ts +1 -1
  38. package/map/disk/base.d.ts +1 -1
  39. package/map/disk/storage.d.ts +2 -2
  40. package/map/task/elapseditem.d.ts +1 -1
  41. package/map/timeman.d.ts +7 -0
  42. package/map/user.d.ts +1 -1
  43. package/package.json +1 -1
  44. package/request/disk/file.d.ts +5 -5
  45. package/request/disk/storage.d.ts +11 -11
  46. package/request/task/commentitem.d.ts +3 -3
  47. package/request/task/elapseditem.d.ts +3 -3
  48. package/request/timeman.d.ts +17 -0
  49. package/request-navvy/app.d.ts +1 -1
  50. package/request-navvy/calendar/event.d.ts +1 -1
  51. package/request-navvy/disk/file.d.ts +1 -1
  52. package/request-navvy/disk/folder.d.ts +8 -8
  53. package/request-navvy/disk/interlayer/storage.d.ts +4 -4
  54. package/request-navvy/disk/storage.d.ts +5 -5
  55. package/request-navvy/server.d.ts +1 -1
  56. package/request-navvy/task/elapseditem.d.ts +9 -7
  57. package/request-navvy/task/operation/elapseditem.d.ts +3 -3
  58. package/request-navvy/task.d.ts +4 -4
  59. package/request-navvy/tasks/task.d.ts +1 -1
  60. package/request-navvy/timeman.d.ts +14 -0
  61. package/request-navvy/user.d.ts +3 -3
  62. package/rest.d.ts +6 -2
  63. package/services/Navvy/NavvySimple.d.ts +2 -2
  64. package/services/navvy.d.ts +2 -2
  65. package/typification/rest/task/access/getaccess.d.ts +4 -1
  66. package/typification/rest/task/commentitem/add.d.ts +9 -1
  67. package/typification/rest/tasks/task/list.d.ts +4 -4
  68. package/typification/rest/timeman/status.d.ts +28 -0
  69. package/esm2022/services/permission.mjs +0 -43
  70. package/esm2022/typification/permission.mjs +0 -2
  71. package/services/permission.d.ts +0 -9
  72. package/typification/permission.d.ts +0 -27
@@ -1,13 +1,13 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { mergeMap, of, tap, throwError } from 'rxjs';
3
- import { Permission } from '../../services/permission';
2
+ import { mergeMap, throwError } from 'rxjs';
4
3
  import { Navvy } from '../../services/navvy';
4
+ import { NavvySimple } from '../../services/Navvy/NavvySimple';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../request/task/elapseditem";
7
7
  import * as i2 from "../../map/task/elapseditem";
8
8
  import * as i3 from "./delegate/elapseditem";
9
9
  import * as i4 from "./operation/elapseditem";
10
- export class BXRestNavvyElapseditem {
10
+ export class BXRestNavvyElapsedItem {
11
11
  constructor(BXRestElapsedItem, BXRestMapElapsedItem, delegate, operation) {
12
12
  this.BXRestElapsedItem = BXRestElapsedItem;
13
13
  this.BXRestMapElapsedItem = BXRestMapElapsedItem;
@@ -27,7 +27,13 @@ export class BXRestNavvyElapseditem {
27
27
  return this.delegate.getList(param);
28
28
  }
29
29
  add(param) {
30
+ return new NavvySimple(this, this.BXRestMapElapsedItem, this.addBase.call(this, param));
31
+ // return this.Navvy.simpleWithArg(this.addBase.bind(this), param)
32
+ }
33
+ addBase(param) {
34
+ console.log('this.operation', this.operation);
30
35
  return this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
36
+ console.log('allowedReadTask', allowedReadTask);
31
37
  if (allowedReadTask) {
32
38
  return this.operation.checkPermissionAddElapsedTimeToTask(param.TASKID).pipe(mergeMap(allowed => {
33
39
  if (allowed) {
@@ -49,21 +55,19 @@ export class BXRestNavvyElapseditem {
49
55
  * @param param
50
56
  */
51
57
  update(param) {
52
- return this.Navvy.simple(() => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
58
+ const func = () => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap((allowedReadTask) => {
53
59
  if (allowedReadTask) {
54
60
  return this.isAllowedModify(param.TASKID, param.ITEMID).pipe(mergeMap(allowed => {
55
61
  if (allowed) {
56
62
  return this.BXRestElapsedItem.update(param);
57
63
  }
58
- else {
59
- return throwError(() => new Error('Отсутствуют права на изменение записи затраченного времени'));
60
- }
64
+ return throwError(() => new Error('Отсутствуют права на изменение записи затраченного времени'));
61
65
  }));
62
66
  }
63
- else {
64
- return throwError(() => new Error('Отсутствуют права на чтение задачи'));
65
- }
66
- })), this.BXRestMapElapsedItem.update);
67
+ return throwError(() => new Error('Отсутствуют права на чтение задачи'));
68
+ }));
69
+ console.log('this.BXRestMapElapsedItem.update', this.BXRestMapElapsedItem.update);
70
+ return new NavvySimple(this, this.BXRestMapElapsedItem, func.call(this), this.BXRestMapElapsedItem.update);
67
71
  }
68
72
  /*
69
73
  getAll(
@@ -125,40 +129,45 @@ export class BXRestNavvyElapseditem {
125
129
  )
126
130
  }
127
131
  */
132
+ // TODO: разобраться что это за ебатня в комментах и вписать нормальной комент если она нужна
128
133
  isAllowedModify(idTask, idItem) {
129
- let permission = Permission.get();
130
- if (permission?.tasks?.length) {
131
- let findTask = permission.tasks.find(i => i.id === idTask);
132
- if (findTask) {
133
- let find = findTask.elapsedItem.find(i => i.id === idItem);
134
- if (find && find.verified.edit) {
135
- return of(find.edit);
136
- }
137
- }
138
- }
134
+ // let permission = Permission.get()
135
+ // if (permission?.tasks?.length) {
136
+ // let findTask = permission.tasks.find(i => i.id === idTask)
137
+ // if (findTask) {
138
+ // let find = findTask.elapsedItem.find(i => i.id === idItem)
139
+ // if (find && find.verified.edit) {
140
+ // return of(find.edit)
141
+ // }
142
+ // }
143
+ // }
139
144
  return this.isActionAllowed({
140
145
  TASKID: idTask,
141
- ITEMID: 2,
142
- ACTIONID: idItem
143
- }).result().pipe(tap(v => {
144
- if (v !== undefined) {
145
- Permission.setTaskElapsedItem(idTask, {
146
- id: idItem,
147
- edit: v,
148
- del: false,
149
- verified: {
150
- edit: true,
151
- del: false,
152
- }
153
- });
154
- }
155
- }));
146
+ ITEMID: idItem,
147
+ ACTIONID: 2
148
+ }).result();
149
+ // .pipe(
150
+ // tap(v => {
151
+ // if (v !== undefined) {
152
+ // Permission.setTaskElapsedItem(idTask,
153
+ // {
154
+ // id: idItem,
155
+ // edit: v,
156
+ // del: false,
157
+ // verified: {
158
+ // edit: true,
159
+ // del: false,
160
+ // }
161
+ // })
162
+ // }
163
+ // })
164
+ // )
156
165
  }
157
166
  isAllowedRemove(idTask, idItem) {
158
167
  return this.isActionAllowed({
159
168
  TASKID: idTask,
160
- ITEMID: 3,
161
- ACTIONID: idItem
169
+ ITEMID: idItem,
170
+ ACTIONID: 3
162
171
  }).result();
163
172
  }
164
173
  /**
@@ -193,13 +202,13 @@ export class BXRestNavvyElapseditem {
193
202
  }
194
203
  })), v => (v === null));
195
204
  }
196
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyElapseditem, deps: [{ token: i1.BXRestTaskElapsedItem }, { token: i2.BXRestMapTaskElapsedItem }, { token: i3.BXRestNavvyDelegateElapsedItem }, { token: i4.BXRestNavvyOperationElapsedItem }], target: i0.ɵɵFactoryTarget.Injectable }); }
197
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyElapseditem, providedIn: 'root' }); }
205
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyElapsedItem, deps: [{ token: i1.BXRestTaskElapsedItem }, { token: i2.BXRestMapTaskElapsedItem }, { token: i3.BXRestNavvyDelegateElapsedItem }, { token: i4.BXRestNavvyOperationElapsedItem }], target: i0.ɵɵFactoryTarget.Injectable }); }
206
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyElapsedItem, providedIn: 'root' }); }
198
207
  }
199
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyElapseditem, decorators: [{
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyElapsedItem, decorators: [{
200
209
  type: Injectable,
201
210
  args: [{
202
211
  providedIn: 'root'
203
212
  }]
204
213
  }], ctorParameters: function () { return [{ type: i1.BXRestTaskElapsedItem }, { type: i2.BXRestMapTaskElapsedItem }, { type: i3.BXRestNavvyDelegateElapsedItem }, { type: i4.BXRestNavvyOperationElapsedItem }]; } });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svZWxhcHNlZGl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBSXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUl0RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7Ozs7OztBQVE1QyxNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLFlBQ1UsaUJBQXdDLEVBQ3hDLG9CQUE4QyxFQUM5QyxRQUF3QyxFQUN6QyxTQUEwQztRQUh6QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXVCO1FBQ3hDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBMEI7UUFDOUMsYUFBUSxHQUFSLFFBQVEsQ0FBZ0M7UUFDekMsY0FBUyxHQUFULFNBQVMsQ0FBaUM7UUFFakQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDM0UsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFFSCxPQUFPLENBQ0wsUUFBb0MsRUFBRTtRQUV0QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBaUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQzlELFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUN6QixJ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QUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3RGLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUN6QixJQUFJLGVBQWUsRUFBRTtnQkFDbkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDMUQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNqQixJQUFJLE9BQU8sRUFBRTt3QkFDWCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7cUJBQ3pDO3lCQUFNO3dCQUNMLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUMsQ0FBQTtxQkFDaEc7Z0JBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUNOO2lCQUFNO2dCQUNMLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FBQTthQUN6RTtRQUNILENBQUMsQ0FBQyxDQUNILEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ3ZCLENBQUM7K0dBak5VLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgbWVyZ2VNYXAsIG9mLCB0YXAsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1FbGFwc2VkaXRlbUdldCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vZ2V0J1xyXG5pbXBvcnQgeyBCWFJlc3RUYXNrRWxhcHNlZEl0ZW0gfSBmcm9tICcuLi8uLi9yZXF1ZXN0L3Rhc2svZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbUFkZEVsYXBzZWRpdGVtIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS9hZGQnXHJcbmltcG9ydCB7IFBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wZXJtaXNzaW9uJ1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1VcGRhdGVFbGFwc2VkaXRlbSB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vdXBkYXRlJ1xyXG5pbXBvcnQgeyBpSXNBY3Rpb25BbGxvd2VkUGFyYW0gfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2VsYXBzZWRpdGVtL2lzQWN0aW9uQWxsb3dlZFBhcmFtJ1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1EZWxFbGFwc2VkaXRlbSB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vZGVsJ1xyXG5pbXBvcnQgeyBOYXZ2eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdnZ5J1xyXG5pbXBvcnQgeyBCWFJlc3RNYXBUYXNrRWxhcHNlZEl0ZW0gfSBmcm9tICcuLi8uLi9tYXAvdGFzay9lbGFwc2VkaXRlbSdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlPcGVyYXRpb25FbGFwc2VkSXRlbSB9IGZyb20gJy4vb3BlcmF0aW9uL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eURlbGVnYXRlRWxhcHNlZEl0ZW0gfSBmcm9tICcuL2RlbGVnYXRlL2VsYXBzZWRpdGVtJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlFbGFwc2VkaXRlbSB7XHJcblxyXG4gIHByaXZhdGUgTmF2dnk6IE5hdnZ5PEJYUmVzdFRhc2tFbGFwc2VkSXRlbSwgQlhSZXN0TWFwVGFza0VsYXBzZWRJdGVtPlxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgQlhSZXN0RWxhcHNlZEl0ZW06IEJYUmVzdFRhc2tFbGFwc2VkSXRlbSxcclxuICAgIHByaXZhdGUgQlhSZXN0TWFwRWxhcHNlZEl0ZW06IEJYUmVzdE1hcFRhc2tFbGFwc2VkSXRlbSxcclxuICAgIHByaXZhdGUgZGVsZWdhdGU6IEJYUmVzdE5hdnZ5RGVsZWdhdGVFbGFwc2VkSXRlbSxcclxuICAgIHB1YmxpYyBvcGVyYXRpb246IEJYUmVzdE5hdnZ5T3BlcmF0aW9uRWxhcHNlZEl0ZW1cclxuICApIHtcclxuICAgIHRoaXMuTmF2dnkgPSBuZXcgTmF2dnkodGhpcy5CWFJlc3RFbGFwc2VkSXRlbSwgdGhpcy5CWFJlc3RNYXBFbGFwc2VkSXRlbSlcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgY2FsbChtZXRob2ROYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKXtcclxuICAgIGlmICh0eXBlb2YgdGhpc1ttZXRob2ROYW1lXSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICByZXR1cm4gdGhpc1ttZXRob2ROYW1lXSguLi5hcmdzKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzW21ldGhvZE5hbWVdKC4uLmFyZ3MpO1xyXG4gIH1cclxuICAgKi9cclxuXHJcbiAgZ2V0TGlzdChcclxuICAgIHBhcmFtOiBpQlhSZXN0UGFyYW1FbGFwc2VkaXRlbUdldCA9IHt9XHJcbiAgKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kZWxlZ2F0ZS5nZXRMaXN0KHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgYWRkKHBhcmFtOiBpQlhSZXN0UGFyYW1BZGRFbGFwc2VkaXRlbSkge1xyXG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uLmNoZWNrUGVybWlzc2lvblJlYWRUYXNrKHBhcmFtLlRBU0tJRCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoYWxsb3dlZFJlYWRUYXNrID0+IHtcclxuICAgICAgICBpZiAoYWxsb3dlZFJlYWRUYXNrKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5vcGVyYXRpb24uY2hlY2tQZXJtaXNzaW9uQWRkRWxhcHNlZFRpbWVUb1Rhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhbGxvd2VkID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYWxsb3dlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0RWxhcHNlZEl0ZW0uYWRkKHBhcmFtKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQtNC+0LHQsNCy0LvQtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JykpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0L3QsCDRh9GC0LXQvdC40LUg0LfQsNC00LDRh9C4JykpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCe0LHQvdC+0LLQu9C10L3QuNC1INC30LDQv9C40YHQuCDRgNCw0LHQvtGH0LXQs9C+INCy0YDQtdC80LXQvdC4XHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICB1cGRhdGUocGFyYW06IGlCWFJlc3RQYXJhbVVwZGF0ZUVsYXBzZWRpdGVtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoKCkgPT4gdGhpcy5vcGVyYXRpb24uY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcChhbGxvd2VkUmVhZFRhc2sgPT4ge1xyXG4gICAgICAgIGlmIChhbGxvd2VkUmVhZFRhc2spIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmlzQWxsb3dlZE1vZGlmeShwYXJhbS5UQVNLSUQsIHBhcmFtLklURU1JRCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoYWxsb3dlZCA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGFsbG93ZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdEVsYXBzZWRJdGVtLnVwZGF0ZShwYXJhbSlcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0L3QsCDQuNC30LzQtdC90LXQvdC40LUg0LfQsNC/0LjRgdC4INC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCcpKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcign0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQv9GA0LDQstCwINC90LAg0YfRgtC10L3QuNC1INC30LDQtNCw0YfQuCcpKVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpLCB0aGlzLkJYUmVzdE1hcEVsYXBzZWRJdGVtLnVwZGF0ZSlcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgZ2V0QWxsKFxyXG4gICAgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zRWxhcHNlZEdldExpc3QgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXHJcbiAgICBjYWNoZSA9IGZhbHNlXHJcbiAgKTogT2JzZXJ2YWJsZTxpSHR0cEFuc3dlckJYPEJYUmVzdEVsYXBzZWRbXT4gfCB1bmRlZmluZWQ+IHtcclxuICAgIHJldHVybiB0aGlzLmdldChwYXJhbXMsIGNhY2hlKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtZXJnZU1hcChpdGVtcyA9PiB7XHJcbiAgICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMucmVzdWx0KSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XHJcbiAgICAgICAgICAgICAgcGFyYW1zID0gKHBhcmFtcykgPyBwYXJhbXMgOiB7fVxyXG4gICAgICAgICAgICAgIHBhcmFtcy5QQVJBTVMgPSB7XHJcbiAgICAgICAgICAgICAgICBOQVZfUEFSQU1TOiB7XHJcbiAgICAgICAgICAgICAgICAgIG5QYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSxcclxuICAgICAgICAgICAgICAgICAgaU51bVBhZ2U6IGl0ZW1zLm5leHQgLyB0aGlzLnBhZ2VTaXplICsgMVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGwocGFyYW1zLCBjYWNoZSkucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCh2RW5kID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHZFbmQgJiYgdkVuZC5yZXN1bHQgJiYgaXRlbXMucmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlKGNsb25lKHZFbmQpLCB7cmVzdWx0OiBbLi4uaXRlbXMucmVzdWx0LCAuLi52RW5kLnJlc3VsdF19KVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtc1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG9mKGl0ZW1zKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgfVxyXG4gICAqL1xyXG5cclxuICAvKlxyXG4gIGdldENhY2hlT2ZmKHBhcmFtczogUmVxdWVzdFBhcmFtc0VsYXBzZWRHZXRMaXN0IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUh0dHBBbnN3ZXJCWDxCWFJlc3RFbGFwc2VkSHR0cFtdPiB8IHVuZGVmaW5lZD5cclxuICAgICh0aGlzLnVybC5nZXRsaXN0LCBwYXJhbXMsICfQvdC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0LLRgNC10LzRjyDQv9C+INC30LDQtNCw0YfQsNC8JylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3UmVzdWx0OiBCWFJlc3RFbGFwc2VkW10gPSBbXVxyXG4gICAgICAgICAgICBmb3IgKGxldCB0YXNrIG9mIHYucmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgbmV3UmVzdWx0LnB1c2godGhpcy5lbGFwc2VkQlhNYXAuQW5zd2VyRWxhcHNlZEdldEh0dHBUb0Fuc3dlckVsYXBzZWRHZXQodGFzaykpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGV4dGVuZCh2LCB7cmVzdWx0OiBuZXdSZXN1bHR9KSBhcyBpSHR0cEFuc3dlckJYPEJYUmVzdEVsYXBzZWRbXT5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgICB9KSxcclxuICAgICAgICB0YXAodiA9PiB7XHJcbiAgICAgICAgICBpZiAodiAmJiBwYXJhbXMpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzYXZlSHR0cFRhc2tUaW1lKHtcclxuICAgICAgICAgICAgICBmaWx0ZXI6IGNsb25lKHBhcmFtcyksXHJcbiAgICAgICAgICAgICAgdGltZTogdlxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgfVxyXG4gICovXHJcblxyXG4gIGlzQWxsb3dlZE1vZGlmeShpZFRhc2s6IG51bWJlciwgaWRJdGVtOiBudW1iZXIpIHtcclxuICAgIGxldCBwZXJtaXNzaW9uID0gUGVybWlzc2lvbi5nZXQoKVxyXG4gICAgaWYgKHBlcm1pc3Npb24/LnRhc2tzPy5sZW5ndGgpIHtcclxuICAgICAgbGV0IGZpbmRUYXNrID0gcGVybWlzc2lvbi50YXNrcy5maW5kKGkgPT4gaS5pZCA9PT0gaWRUYXNrKVxyXG4gICAgICBpZiAoZmluZFRhc2spIHtcclxuICAgICAgICBsZXQgZmluZCA9IGZpbmRUYXNrLmVsYXBzZWRJdGVtLmZpbmQoaSA9PiBpLmlkID09PSBpZEl0ZW0pXHJcbiAgICAgICAgaWYgKGZpbmQgJiYgZmluZC52ZXJpZmllZC5lZGl0KSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YoZmluZC5lZGl0KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmlzQWN0aW9uQWxsb3dlZCh7XHJcbiAgICAgIFRBU0tJRDogaWRUYXNrLFxyXG4gICAgICBJVEVNSUQ6IDIsXHJcbiAgICAgIEFDVElPTklEOiBpZEl0ZW1cclxuICAgIH0pLnJlc3VsdCgpLnBpcGUoXHJcbiAgICAgIHRhcCh2ID0+IHtcclxuICAgICAgICBpZiAodiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBQZXJtaXNzaW9uLnNldFRhc2tFbGFwc2VkSXRlbShpZFRhc2ssXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBpZDogaWRJdGVtLFxyXG4gICAgICAgICAgICAgIGVkaXQ6IHYsXHJcbiAgICAgICAgICAgICAgZGVsOiBmYWxzZSxcclxuICAgICAgICAgICAgICB2ZXJpZmllZDoge1xyXG4gICAgICAgICAgICAgICAgZWRpdDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGRlbDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNBbGxvd2VkUmVtb3ZlKGlkVGFzazogbnVtYmVyLCBpZEl0ZW06IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNBY3Rpb25BbGxvd2VkKFxyXG4gICAgICB7XHJcbiAgICAgICAgVEFTS0lEOiBpZFRhc2ssXHJcbiAgICAgICAgSVRFTUlEOiAzLFxyXG4gICAgICAgIEFDVElPTklEOiBpZEl0ZW1cclxuICAgICAgfSkucmVzdWx0KClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGlkQWN0aW9uOlxyXG4gICAqIDEgLSBBQ1RJT05fRUxBUFNFRF9USU1FX0FERFxyXG4gICAqIDIgLSBBQ1RJT05fRUxBUFNFRF9USU1FX01PRElGWVxyXG4gICAqIDMgLSBBQ1RJT05fRUxBUFNFRF9USU1FX1JFTU9WRVxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGlzQWN0aW9uQWxsb3dlZChwYXJhbTogaUlzQWN0aW9uQWxsb3dlZFBhcmFtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoKCkgPT4gdGhpcy5vcGVyYXRpb24uY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcChjYW5SZWFkID0+IHtcclxuICAgICAgICBpZiAoY2FuUmVhZCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0RWxhcHNlZEl0ZW0uaXNBY3Rpb25BbGxvd2VkKHBhcmFtKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgfSlcclxuICAgICkpXHJcbiAgfVxyXG5cclxuICBkZWwocGFyYW06IGlCWFJlc3RQYXJhbURlbEVsYXBzZWRpdGVtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoKCkgPT4gdGhpcy5vcGVyYXRpb24uY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcChhbGxvd2VkUmVhZFRhc2sgPT4ge1xyXG4gICAgICAgIGlmIChhbGxvd2VkUmVhZFRhc2spIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmlzQWxsb3dlZFJlbW92ZShwYXJhbS5UQVNLSUQsIHBhcmFtLklURU1JRCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoYWxsb3dlZCA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGFsbG93ZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdEVsYXBzZWRJdGVtLmRlbChwYXJhbSlcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0L3QsCDRg9C00LDQu9C10L3QuNC1INC30LDQv9C40YHQuCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LgnKSlcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApLCB2ID0+ICh2ID09PSBudWxsKSlcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svZWxhcHNlZGl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQU8zQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFJNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFBOzs7Ozs7QUFLOUQsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxZQUNVLGlCQUF3QyxFQUN4QyxvQkFBOEMsRUFDOUMsUUFBd0MsRUFDekMsU0FBMEM7UUFIekMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF1QjtRQUN4Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQTBCO1FBQzlDLGFBQVEsR0FBUixRQUFRLENBQWdDO1FBQ3pDLGNBQVMsR0FBVCxTQUFTLENBQWlDO1FBRWpELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQzNFLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBRUgsT0FBTyxDQUNMLFFBQW9DLEVBQUU7UUFFdEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQWlDO1FBQ25DLE9BQU8sSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUN2RixrRUFBa0U7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QUFTLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDdEYsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ3pCLElBQUksZUFBZSxFQUFFO2dCQUNuQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUMxRCxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ2pCLElBQUksT0FBTyxFQUFFO3dCQUNYLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtxQkFDekM7eUJBQU07d0JBQ0wsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQyxDQUFBO3FCQUNoRztnQkFDSCxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQ047aUJBQU07Z0JBQ0wsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFBO2FBQ3pFO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDdkIsQ0FBQzsrR0ExTlUsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7NEZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBtZXJnZU1hcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbUVsYXBzZWRpdGVtR2V0IH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS9nZXQnXHJcbmltcG9ydCB7IEJYUmVzdFRhc2tFbGFwc2VkSXRlbSB9IGZyb20gJy4uLy4uL3JlcXVlc3QvdGFzay9lbGFwc2VkaXRlbSdcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtQWRkRWxhcHNlZGl0ZW0gfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2VsYXBzZWRpdGVtL2FkZCdcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVXBkYXRlRWxhcHNlZGl0ZW0gfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2VsYXBzZWRpdGVtL3VwZGF0ZSdcclxuaW1wb3J0IHsgaUlzQWN0aW9uQWxsb3dlZFBhcmFtIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS9pc0FjdGlvbkFsbG93ZWRQYXJhbSdcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtRGVsRWxhcHNlZGl0ZW0gfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2VsYXBzZWRpdGVtL2RlbCdcclxuaW1wb3J0IHsgTmF2dnkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uYXZ2eSdcclxuaW1wb3J0IHsgQlhSZXN0TWFwVGFza0VsYXBzZWRJdGVtIH0gZnJvbSAnLi4vLi4vbWFwL3Rhc2svZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5T3BlcmF0aW9uRWxhcHNlZEl0ZW0gfSBmcm9tICcuL29wZXJhdGlvbi9lbGFwc2VkaXRlbSdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlEZWxlZ2F0ZUVsYXBzZWRJdGVtIH0gZnJvbSAnLi9kZWxlZ2F0ZS9lbGFwc2VkaXRlbSdcclxuaW1wb3J0IHsgTmF2dnlTaW1wbGUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9OYXZ2eS9OYXZ2eVNpbXBsZSdcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0ge1xyXG5cclxuICBwcml2YXRlIE5hdnZ5OiBOYXZ2eTxCWFJlc3RUYXNrRWxhcHNlZEl0ZW0sIEJYUmVzdE1hcFRhc2tFbGFwc2VkSXRlbT5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIEJYUmVzdEVsYXBzZWRJdGVtOiBCWFJlc3RUYXNrRWxhcHNlZEl0ZW0sXHJcbiAgICBwcml2YXRlIEJYUmVzdE1hcEVsYXBzZWRJdGVtOiBCWFJlc3RNYXBUYXNrRWxhcHNlZEl0ZW0sXHJcbiAgICBwcml2YXRlIGRlbGVnYXRlOiBCWFJlc3ROYXZ2eURlbGVnYXRlRWxhcHNlZEl0ZW0sXHJcbiAgICBwdWJsaWMgb3BlcmF0aW9uOiBCWFJlc3ROYXZ2eU9wZXJhdGlvbkVsYXBzZWRJdGVtXHJcbiAgKSB7XHJcbiAgICB0aGlzLk5hdnZ5ID0gbmV3IE5hdnZ5KHRoaXMuQlhSZXN0RWxhcHNlZEl0ZW0sIHRoaXMuQlhSZXN0TWFwRWxhcHNlZEl0ZW0pXHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIGNhbGwobWV0aG9kTmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSl7XHJcbiAgICBpZiAodHlwZW9mIHRoaXNbbWV0aG9kTmFtZV0gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgcmV0dXJuIHRoaXNbbWV0aG9kTmFtZV0oLi4uYXJncyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpc1ttZXRob2ROYW1lXSguLi5hcmdzKTtcclxuICB9XHJcbiAgICovXHJcblxyXG4gIGdldExpc3QoXHJcbiAgICBwYXJhbTogaUJYUmVzdFBhcmFtRWxhcHNlZGl0ZW1HZXQgPSB7fVxyXG4gICkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVsZWdhdGUuZ2V0TGlzdChwYXJhbSlcclxuICB9XHJcblxyXG4gIGFkZChwYXJhbTogaUJYUmVzdFBhcmFtQWRkRWxhcHNlZGl0ZW0pIHtcclxuICAgIHJldHVybiBuZXcgTmF2dnlTaW1wbGUodGhpcywgdGhpcy5CWFJlc3RNYXBFbGFwc2VkSXRlbSwgdGhpcy5hZGRCYXNlLmNhbGwodGhpcywgcGFyYW0pKVxyXG4gICAgLy8gcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlV2l0aEFyZyh0aGlzLmFkZEJhc2UuYmluZCh0aGlzKSwgcGFyYW0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZEJhc2UocGFyYW06IGlCWFJlc3RQYXJhbUFkZEVsYXBzZWRpdGVtKSB7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5vcGVyYXRpb24nLCB0aGlzLm9wZXJhdGlvbilcclxuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbi5jaGVja1Blcm1pc3Npb25SZWFkVGFzayhwYXJhbS5UQVNLSUQpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKGFsbG93ZWRSZWFkVGFzayA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2FsbG93ZWRSZWFkVGFzaycsIGFsbG93ZWRSZWFkVGFzaylcclxuICAgICAgICBpZiAoYWxsb3dlZFJlYWRUYXNrKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5vcGVyYXRpb24uY2hlY2tQZXJtaXNzaW9uQWRkRWxhcHNlZFRpbWVUb1Rhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhbGxvd2VkID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYWxsb3dlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0RWxhcHNlZEl0ZW0uYWRkKHBhcmFtKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQtNC+0LHQsNCy0LvQtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JykpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0L3QsCDRh9GC0LXQvdC40LUg0LfQsNC00LDRh9C4JykpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCe0LHQvdC+0LLQu9C10L3QuNC1INC30LDQv9C40YHQuCDRgNCw0LHQvtGH0LXQs9C+INCy0YDQtdC80LXQvdC4XHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICB1cGRhdGUocGFyYW06IGlCWFJlc3RQYXJhbVVwZGF0ZUVsYXBzZWRpdGVtKSB7XHJcbiAgICBjb25zdCBmdW5jID0gKCkgPT4gdGhpcy5vcGVyYXRpb24uY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCgoYWxsb3dlZFJlYWRUYXNrKSA9PiB7XHJcbiAgICAgICAgaWYgKGFsbG93ZWRSZWFkVGFzaykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaXNBbGxvd2VkTW9kaWZ5KHBhcmFtLlRBU0tJRCwgcGFyYW0uSVRFTUlEKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhbGxvd2VkID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYWxsb3dlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0RWxhcHNlZEl0ZW0udXBkYXRlKHBhcmFtKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINC40LfQvNC10L3QtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JykpXHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgfSkpXHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5CWFJlc3RNYXBFbGFwc2VkSXRlbS51cGRhdGUnLCB0aGlzLkJYUmVzdE1hcEVsYXBzZWRJdGVtLnVwZGF0ZSlcclxuICAgIHJldHVybiBuZXcgTmF2dnlTaW1wbGUodGhpcywgdGhpcy5CWFJlc3RNYXBFbGFwc2VkSXRlbSwgZnVuYy5jYWxsKHRoaXMpLCB0aGlzLkJYUmVzdE1hcEVsYXBzZWRJdGVtLnVwZGF0ZSlcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgZ2V0QWxsKFxyXG4gICAgcGFyYW1zOiBSZXF1ZXN0UGFyYW1zRWxhcHNlZEdldExpc3QgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXHJcbiAgICBjYWNoZSA9IGZhbHNlXHJcbiAgKTogT2JzZXJ2YWJsZTxpSHR0cEFuc3dlckJYPEJYUmVzdEVsYXBzZWRbXT4gfCB1bmRlZmluZWQ+IHtcclxuICAgIHJldHVybiB0aGlzLmdldChwYXJhbXMsIGNhY2hlKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtZXJnZU1hcChpdGVtcyA9PiB7XHJcbiAgICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMucmVzdWx0KSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XHJcbiAgICAgICAgICAgICAgcGFyYW1zID0gKHBhcmFtcykgPyBwYXJhbXMgOiB7fVxyXG4gICAgICAgICAgICAgIHBhcmFtcy5QQVJBTVMgPSB7XHJcbiAgICAgICAgICAgICAgICBOQVZfUEFSQU1TOiB7XHJcbiAgICAgICAgICAgICAgICAgIG5QYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSxcclxuICAgICAgICAgICAgICAgICAgaU51bVBhZ2U6IGl0ZW1zLm5leHQgLyB0aGlzLnBhZ2VTaXplICsgMVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGwocGFyYW1zLCBjYWNoZSkucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCh2RW5kID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHZFbmQgJiYgdkVuZC5yZXN1bHQgJiYgaXRlbXMucmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlKGNsb25lKHZFbmQpLCB7cmVzdWx0OiBbLi4uaXRlbXMucmVzdWx0LCAuLi52RW5kLnJlc3VsdF19KVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtc1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG9mKGl0ZW1zKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgfVxyXG4gICAqL1xyXG5cclxuICAvKlxyXG4gIGdldENhY2hlT2ZmKHBhcmFtczogUmVxdWVzdFBhcmFtc0VsYXBzZWRHZXRMaXN0IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUh0dHBBbnN3ZXJCWDxCWFJlc3RFbGFwc2VkSHR0cFtdPiB8IHVuZGVmaW5lZD5cclxuICAgICh0aGlzLnVybC5nZXRsaXN0LCBwYXJhbXMsICfQvdC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0LLRgNC10LzRjyDQv9C+INC30LDQtNCw0YfQsNC8JylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcclxuICAgICAgICAgICAgY29uc3QgbmV3UmVzdWx0OiBCWFJlc3RFbGFwc2VkW10gPSBbXVxyXG4gICAgICAgICAgICBmb3IgKGxldCB0YXNrIG9mIHYucmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgbmV3UmVzdWx0LnB1c2godGhpcy5lbGFwc2VkQlhNYXAuQW5zd2VyRWxhcHNlZEdldEh0dHBUb0Fuc3dlckVsYXBzZWRHZXQodGFzaykpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGV4dGVuZCh2LCB7cmVzdWx0OiBuZXdSZXN1bHR9KSBhcyBpSHR0cEFuc3dlckJYPEJYUmVzdEVsYXBzZWRbXT5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgICB9KSxcclxuICAgICAgICB0YXAodiA9PiB7XHJcbiAgICAgICAgICBpZiAodiAmJiBwYXJhbXMpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzYXZlSHR0cFRhc2tUaW1lKHtcclxuICAgICAgICAgICAgICBmaWx0ZXI6IGNsb25lKHBhcmFtcyksXHJcbiAgICAgICAgICAgICAgdGltZTogdlxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgfVxyXG4gICovXHJcblxyXG4gIC8vIFRPRE86INGA0LDQt9C+0LHRgNCw0YLRjNGB0Y8g0YfRgtC+INGN0YLQviDQt9CwINC10LHQsNGC0L3RjyDQsiDQutC+0LzQvNC10L3RgtCw0YUg0Lgg0LLQv9C40YHQsNGC0Ywg0L3QvtGA0LzQsNC70YzQvdC+0Lkg0LrQvtC80LXQvdGCINC10YHQu9C4INC+0L3QsCDQvdGD0LbQvdCwXHJcbiAgaXNBbGxvd2VkTW9kaWZ5KGlkVGFzazogbnVtYmVyLCBpZEl0ZW06IG51bWJlcikge1xyXG4gICAgLy8gbGV0IHBlcm1pc3Npb24gPSBQZXJtaXNzaW9uLmdldCgpXHJcbiAgICAvLyBpZiAocGVybWlzc2lvbj8udGFza3M/Lmxlbmd0aCkge1xyXG4gICAgLy8gICBsZXQgZmluZFRhc2sgPSBwZXJtaXNzaW9uLnRhc2tzLmZpbmQoaSA9PiBpLmlkID09PSBpZFRhc2spXHJcbiAgICAvLyAgIGlmIChmaW5kVGFzaykge1xyXG4gICAgLy8gICAgIGxldCBmaW5kID0gZmluZFRhc2suZWxhcHNlZEl0ZW0uZmluZChpID0+IGkuaWQgPT09IGlkSXRlbSlcclxuICAgIC8vICAgICBpZiAoZmluZCAmJiBmaW5kLnZlcmlmaWVkLmVkaXQpIHtcclxuICAgIC8vICAgICAgIHJldHVybiBvZihmaW5kLmVkaXQpXHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaXNBY3Rpb25BbGxvd2VkKHtcclxuICAgICAgVEFTS0lEOiBpZFRhc2ssXHJcbiAgICAgIElURU1JRDogaWRJdGVtLFxyXG4gICAgICBBQ1RJT05JRDogMlxyXG4gICAgfSkucmVzdWx0KClcclxuICAgIC8vICAgLnBpcGUoXHJcbiAgICAvLyAgIHRhcCh2ID0+IHtcclxuICAgIC8vICAgICBpZiAodiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAvLyAgICAgICBQZXJtaXNzaW9uLnNldFRhc2tFbGFwc2VkSXRlbShpZFRhc2ssXHJcbiAgICAvLyAgICAgICAgIHtcclxuICAgIC8vICAgICAgICAgICBpZDogaWRJdGVtLFxyXG4gICAgLy8gICAgICAgICAgIGVkaXQ6IHYsXHJcbiAgICAvLyAgICAgICAgICAgZGVsOiBmYWxzZSxcclxuICAgIC8vICAgICAgICAgICB2ZXJpZmllZDoge1xyXG4gICAgLy8gICAgICAgICAgICAgZWRpdDogdHJ1ZSxcclxuICAgIC8vICAgICAgICAgICAgIGRlbDogZmFsc2UsXHJcbiAgICAvLyAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICB9KVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfSlcclxuICAgIC8vIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNBbGxvd2VkUmVtb3ZlKGlkVGFzazogbnVtYmVyLCBpZEl0ZW06IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNBY3Rpb25BbGxvd2VkKFxyXG4gICAgICB7XHJcbiAgICAgICAgVEFTS0lEOiBpZFRhc2ssXHJcbiAgICAgICAgSVRFTUlEOiBpZEl0ZW0sXHJcbiAgICAgICAgQUNUSU9OSUQ6IDNcclxuICAgICAgfSkucmVzdWx0KClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGlkQWN0aW9uOlxyXG4gICAqIDEgLSBBQ1RJT05fRUxBUFNFRF9USU1FX0FERFxyXG4gICAqIDIgLSBBQ1RJT05fRUxBUFNFRF9USU1FX01PRElGWVxyXG4gICAqIDMgLSBBQ1RJT05fRUxBUFNFRF9USU1FX1JFTU9WRVxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIGlzQWN0aW9uQWxsb3dlZChwYXJhbTogaUlzQWN0aW9uQWxsb3dlZFBhcmFtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoKCkgPT4gdGhpcy5vcGVyYXRpb24uY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcChjYW5SZWFkID0+IHtcclxuICAgICAgICBpZiAoY2FuUmVhZCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0RWxhcHNlZEl0ZW0uaXNBY3Rpb25BbGxvd2VkKHBhcmFtKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgfSlcclxuICAgICkpXHJcbiAgfVxyXG5cclxuICBkZWwocGFyYW06IGlCWFJlc3RQYXJhbURlbEVsYXBzZWRpdGVtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoKCkgPT4gdGhpcy5vcGVyYXRpb24uY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcChhbGxvd2VkUmVhZFRhc2sgPT4ge1xyXG4gICAgICAgIGlmIChhbGxvd2VkUmVhZFRhc2spIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmlzQWxsb3dlZFJlbW92ZShwYXJhbS5UQVNLSUQsIHBhcmFtLklURU1JRCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoYWxsb3dlZCA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGFsbG93ZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdEVsYXBzZWRJdGVtLmRlbChwYXJhbSlcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0L3QsCDRg9C00LDQu9C10L3QuNC1INC30LDQv9C40YHQuCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LgnKSlcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApLCB2ID0+ICh2ID09PSBudWxsKSlcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,7 +1,6 @@
1
- import { $elapseditem, $getaccess, $getlist, $task, $tasks } from '../../../consts/part-name-methods';
1
+ import { $elapseditem, $getlist, $isactionallowed, $task } from '../../../consts/part-name-methods';
2
2
  import { map, take } from 'rxjs/operators';
3
- import { forkJoin, mergeMap, of, tap } from 'rxjs';
4
- import { Permission } from '../../../services/permission';
3
+ import { forkJoin, mergeMap, of } from 'rxjs';
5
4
  import { Injectable } from '@angular/core';
6
5
  import * as i0 from "@angular/core";
7
6
  import * as i1 from "../../../services/http/HttpBX";
@@ -40,7 +39,8 @@ export class BXRestNavvyOperationElapsedItem {
40
39
  };
41
40
  })).pipe(map(v => {
42
41
  if (v && v.length) {
43
- return this.http.mapBranchResultWithoutKey(v).map(i => this.BXRestMapElapsedItem.getList(i)).filter((i) => i !== undefined).flat();
42
+ const res = this.http.mapBranchResultWithoutKey(v);
43
+ return this.BXRestMapElapsedItem.getList(res);
44
44
  }
45
45
  return undefined;
46
46
  }));
@@ -62,7 +62,7 @@ export class BXRestNavvyOperationElapsedItem {
62
62
  .map(i => {
63
63
  return {
64
64
  [i]: {
65
- name: this.http.getNameMethod([$tasks, $task, $getaccess]),
65
+ name: this.http.getNameMethod([$task, $elapseditem, $isactionallowed]),
66
66
  param: {
67
67
  TASKID: i,
68
68
  ITEMID: 1,
@@ -85,58 +85,67 @@ export class BXRestNavvyOperationElapsedItem {
85
85
  }));
86
86
  }
87
87
  checkPermissionAddElapsedTimeToTask(idTask) {
88
- let permission = Permission.get();
89
- if (permission?.tasks?.length) {
90
- let findTask = permission.tasks.find(i => i.id === idTask);
91
- if (findTask?.permission) {
92
- return of(findTask.permission['ELAPSEDTIME.ADD']);
88
+ // let permission = Permission.get()
89
+ // if (permission?.tasks?.length) {
90
+ // let findTask = permission.tasks.find(i => i.id === idTask)
91
+ // if (findTask?.permission) {
92
+ // return of(findTask.permission['ELAPSEDTIME.ADD'])
93
+ // }
94
+ return this.BXRestNavvyUser.current().result().pipe(mergeMap(self => {
95
+ if (self) {
96
+ return this.BXRestNavvyTasks.task.getAccess({
97
+ id: idTask,
98
+ users: [self.ID]
99
+ }).result().pipe(
100
+ // tap(v => {
101
+ // if (v && v[self.ID]) {
102
+ // Permission.set({
103
+ // tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]
104
+ // })
105
+ // }
106
+ // }),
107
+ map(v => {
108
+ return (v && v[self.ID]) ? v[self.ID]['ELAPSEDTIME.ADD'] : false;
109
+ }));
93
110
  }
94
- return this.BXRestNavvyUser.current().result().pipe(mergeMap(self => {
95
- if (self) {
96
- return this.BXRestNavvyTasks.task.getAccess({
97
- id: idTask,
98
- users: [self.ID]
99
- }).result().pipe(tap(v => {
100
- if (v && v[self.ID]) {
101
- Permission.set({
102
- tasks: [{ id: idTask, permission: v[self.ID], elapsedItem: [] }]
103
- });
104
- }
105
- }), map(v => {
106
- return (v && v[self.ID]) ? v[self.ID]['ELAPSEDTIME.ADD'] : false;
107
- }));
108
- }
109
- return of(undefined);
110
- }));
111
- }
112
- return of(undefined);
111
+ return of(undefined);
112
+ }));
113
+ // }
114
+ // return of(undefined)
113
115
  }
116
+ // вообще метод похоже даже на вредный в какомто смысле
114
117
  checkPermissionReadTask(idTask) {
115
- let permission = Permission.get();
116
- if (permission?.tasks?.length) {
117
- let findTask = permission.tasks.find(i => i.id === idTask);
118
- if (findTask?.permission) {
119
- return of(findTask.permission.ACCEPT);
118
+ // let permission = Permission.get()
119
+ // if (permission?.tasks?.length) {
120
+ // let findTask = permission.tasks.find(i => i.id === idTask)
121
+ // if (findTask?.permission) {
122
+ // return of(findTask.permission.ACCEPT)
123
+ // }
124
+ // console.log('idTask', idTask)
125
+ return this.BXRestNavvyUser.current().result().pipe(mergeMap(self => {
126
+ console.log('self', self);
127
+ if (self) {
128
+ return this.BXRestNavvyTasks.task.getAccess({
129
+ id: idTask,
130
+ users: [self.ID]
131
+ }).result().pipe(
132
+ // tap(v => {
133
+ // if (v && v[self.ID]) {
134
+ // Permission.set({
135
+ // tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]
136
+ // })
137
+ // }
138
+ // }),
139
+ map(v => {
140
+ console.log('v', v);
141
+ return (v && v[self.ID]) ? !!v[self.ID] : false; // отдельного флага на чтение нет, выходит что если права отдались то и права есть
142
+ }));
120
143
  }
121
- return this.BXRestNavvyUser.current().result().pipe(mergeMap(self => {
122
- if (self) {
123
- return this.BXRestNavvyTasks.task.getAccess({
124
- id: idTask,
125
- users: [self.ID]
126
- }).result().pipe(tap(v => {
127
- if (v && v[self.ID]) {
128
- Permission.set({
129
- tasks: [{ id: idTask, permission: v[self.ID], elapsedItem: [] }]
130
- });
131
- }
132
- }), map(v => {
133
- return (v && v[self.ID]) ? v[self.ID].ACCEPT : false;
134
- }));
135
- }
136
- return of(undefined);
137
- }));
138
- }
139
- return of(undefined);
144
+ return of(undefined);
145
+ }));
146
+ // }
147
+ //
148
+ // return of(undefined)
140
149
  }
141
150
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyOperationElapsedItem, deps: [{ token: i1.HttpBXServices }, { token: i2.BXRestNavvyDelegateElapsedItem }, { token: i3.BXRestMapTaskElapsedItem }, { token: i4.BXRestNavvyUser }, { token: i5.BXRestNavvyTasks }], target: i0.ɵɵFactoryTarget.Injectable }); }
142
151
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyOperationElapsedItem, providedIn: 'root' }); }
@@ -147,4 +156,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
147
156
  providedIn: 'root'
148
157
  }]
149
158
  }], ctorParameters: function () { return [{ type: i1.HttpBXServices }, { type: i2.BXRestNavvyDelegateElapsedItem }, { type: i3.BXRestMapTaskElapsedItem }, { type: i4.BXRestNavvyUser }, { type: i5.BXRestNavvyTasks }]; } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svb3BlcmF0aW9uL2VsYXBzZWRpdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDckcsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBRTlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUl6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7Ozs7O0FBSzFDLE1BQU0sT0FBTywrQkFBK0I7SUFFMUMsWUFDVSxJQUFvQixFQUNwQixRQUF3QyxFQUN4QyxvQkFBOEMsRUFDOUMsZUFBZ0MsRUFDaEMsZ0JBQWtDO1FBSmxDLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQWdDO1FBQ3hDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBMEI7UUFDOUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFFNUMsQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUFrQixFQUFFLFNBQWUsRUFBRSxPQUFhO1FBQzlELE1BQU0sS0FBSyxHQUErQjtZQUN4QyxLQUFLLEVBQUU7Z0JBQ0wsRUFBRSxFQUFFLE1BQU07YUFDWDtZQUNELE1BQU0sRUFBRTtnQkFDTixPQUFPLEVBQUUsUUFBUTtnQkFDakIsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLGNBQWMsQ0FBQyxPQUFP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QUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFDLENBQUM7NkJBQy9ELENBQUMsQ0FBQTt5QkFDSDtvQkFDSCxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ04sT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7b0JBQ3RELENBQUMsQ0FBQyxDQUNILENBQUE7aUJBQ0Y7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDdEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtTQUNGO1FBRUQsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDdEIsQ0FBQzsrR0FuS1UsK0JBQStCO21IQUEvQiwrQkFBK0IsY0FGOUIsTUFBTTs7NEZBRVAsK0JBQStCO2tCQUgzQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlCWFJlc3RQYXJhbUVsYXBzZWRpdGVtR2V0IH0gZnJvbSAnLi4vLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS9nZXQnXHJcbmltcG9ydCB7IEh0dHBCWFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaHR0cC9IdHRwQlgnXHJcbmltcG9ydCB7IGlCWFJlc3RUYXNrRWxhcHNlZEl0ZW0sIGlCWFJlc3RUYXNrRWxhcHNlZEl0ZW1IdHRwIH0gZnJvbSAnLi4vLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS9pdGVtJ1xyXG5pbXBvcnQgeyAkZWxhcHNlZGl0ZW0sICRnZXRhY2Nlc3MsICRnZXRsaXN0LCAkdGFzaywgJHRhc2tzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RzL3BhcnQtbmFtZS1tZXRob2RzJ1xyXG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgQlhSZXN0TWFwVGFza0VsYXBzZWRJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3Rhc2svZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IGZvcmtKb2luLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgb2YsIHRhcCB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGlJc0FjdGlvbkFsbG93ZWRQYXJhbSB9IGZyb20gJy4uLy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vaXNBY3Rpb25BbGxvd2VkUGFyYW0nXHJcbmltcG9ydCB7IFBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wZXJtaXNzaW9uJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVVzZXIgfSBmcm9tICcuLi8uLi91c2VyJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVRhc2tzIH0gZnJvbSAnLi4vLi4vdGFza3MnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5RGVsZWdhdGVFbGFwc2VkSXRlbSB9IGZyb20gJy4uL2RlbGVnYXRlL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5T3BlcmF0aW9uRWxhcHNlZEl0ZW0ge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cEJYU2VydmljZXMsXHJcbiAgICBwcml2YXRlIGRlbGVnYXRlOiBCWFJlc3ROYXZ2eURlbGVnYXRlRWxhcHNlZEl0ZW0sXHJcbiAgICBwcml2YXRlIEJYUmVzdE1hcEVsYXBzZWRJdGVtOiBCWFJlc3RNYXBUYXNrRWxhcHNlZEl0ZW0sXHJcbiAgICBwcml2YXRlIEJYUmVzdE5hdnZ5VXNlcjogQlhSZXN0TmF2dnlVc2VyLFxyXG4gICAgcHJpdmF0ZSBCWFJlc3ROYXZ2eVRhc2tzOiBCWFJlc3ROYXZ2eVRhc2tzLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgZ2V0QnlJbnRlcnZhbChpZHNVc2VyczogbnVtYmVyW10sIGRhdGVTdGFydDogRGF0ZSwgZGF0ZUVuZDogRGF0ZSkge1xyXG4gICAgY29uc3QgcGFyYW06IGlCWFJlc3RQYXJhbUVsYXBzZWRpdGVtR2V0ID0ge1xyXG4gICAgICBPUkRFUjoge1xyXG4gICAgICAgIElEOiAnREVTQydcclxuICAgICAgfSxcclxuICAgICAgRklMVEVSOiB7XHJcbiAgICAgICAgVVNFUl9JRDogaWRzVXNlcnMsXHJcbiAgICAgICAgJz49Q1JFQVRFRF9EQVRFJzogZGF0ZVN0YXJ0LnRvTG9jYWxlU3RyaW5nKCdydS1SdScpLFxyXG4gICAgICAgICc8PUNSRUFURURfREFURSc6IGRhdGVFbmQudG9Mb2NhbGVTdHJpbmcoJ3J1LVJ1JyksXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmRlbGVnYXRlLmdldExpc3QocGFyYW0pXHJcbiAgfVxyXG5cclxuICBnZXRMaXN0QnlJRFRhc2soaWRzOiBudW1iZXJbXSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5icmFuY2g8aUJYUmVzdFBhcmFtRWxhcHNlZGl0ZW1HZXQsIGlCWFJlc3RUYXNrRWxhcHNlZEl0ZW1IdHRwW10+XHJcbiAgICAoXHJcbiAgICAgIGlkcy5tYXAoaSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIG5hbWU6IHRoaXMuaHR0cC5nZXROYW1lTWV0aG9kKFskdGFzaywgJGVsYXBzZWRpdGVtLCAkZ2V0bGlzdF0pLFxyXG4gICAgICAgICAgcGFyYW06IHtcclxuICAgICAgICAgICAgVEFTS0lEOiBpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAodiA9PiB7XHJcbiAgICAgICAgaWYgKHYgJiYgdi5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAubWFwQnJhbmNoUmVzdWx0V2l0aG91dEtleSh2KS5tYXAoXHJcbiAgICAgICAgICAgIGkgPT4gdGhpcy5CWFJlc3RNYXBFbGFwc2VkSXRlbS5nZXRMaXN0KGkpXHJcbiAgICAgICAgICApLmZpbHRlcigoaSk6IGkgaXMgaUJYUmVzdFRhc2tFbGFwc2VkSXRlbVtdID0+IGkgIT09IHVuZGVmaW5lZCkuZmxhdCgpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIGNoZWNrUGVybWlzc2lvbkFkZEVsYXBzZWRUaW1lVG9UYXNrQXJyKHRhc2tzOiBudW1iZXJbXSkge1xyXG4gICAgbGV0IHJlcXVlc3Q6IHsgW2tleTogbnVtYmVyXTogT2JzZXJ2YWJsZTxib29sZWFuPiB9ID0gT2JqZWN0LmFzc2lnbih7fSwgLi4udGFza3MubWFwKGkgPT4ge1xyXG4gICAgICByZXR1cm4ge1tpXTogdGhpcy5jaGVja1Blcm1pc3Npb25BZGRFbGFwc2VkVGltZVRvVGFzayhpKX1cclxuICAgIH0pKVxyXG4gICAgcmV0dXJuIGZvcmtKb2luKHJlcXVlc3QpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgbWVyZ2VNYXAodiA9PiB7XHJcbiAgICAgICAgICBsZXQgZm9yRm9yZWFjaCA9IE9iamVjdC5lbnRyaWVzKHYpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7aWQ6IE51bWJlcihrZXkpLCB2YWx1ZTogdmFsdWV9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgaWYgKGZvckZvcmVhY2guZmluZChpID0+IGkudmFsdWUgPT09IHVuZGVmaW5lZCkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBsZXQgZm9yRm9yZWFjaEhhdmUgPSBmb3JGb3JlYWNoLmZpbHRlcihpID0+IGkudmFsdWUgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgbGV0IGZvckZvcmVhY2hOb3RIYXZlID0gZm9yRm9yZWFjaC5maWx0ZXIoaSA9PiBpLnZhbHVlID09PSB1bmRlZmluZWQpIC8vINGC0YPRgiDQv9C+0LvRg9GH0LDQtdC8INCy0YHQtSBpZCDQvdC1INGB0L7RhdGA0LDQvdC10L3QvdGL0YUg0YMg0L3QsNGBINC/0YDQsNCyXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuYnJhbmNoPGlJc0FjdGlvbkFsbG93ZWRQYXJhbSwgYm9vbGVhbj4oXHJcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgLi4uZm9yRm9yZWFjaE5vdEhhdmVcclxuICAgICAgICAgICAgICAgIC5tYXAoaSA9PiBpLmlkKVxyXG4gICAgICAgICAgICAgICAgLm1hcChpID0+IHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBbaV06IHtcclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuaHR0cC5nZXROYW1lTWV0aG9kKFskdGFza3MsICR0YXNrLCAkZ2V0YWNjZXNzXSksXHJcbiAgICAgICAgICAgICAgICAgICAgICBwYXJhbToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBUQVNLSUQ6IGksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIElURU1JRDogMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgQUNUSU9OSUQ6IDFcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICApLnBpcGUoXHJcbiAgICAgICAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHYgJiYgdi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgcmVzOiB7IFtwOiBudW1iZXJdOiBib29sZWFuIH0gPSB0aGlzLmh0dHAubWFwQnJhbmNoUmVzdWx0KHYpXHJcbiAgICAgICAgICAgICAgICAgIGZvckZvcmVhY2hOb3RIYXZlID0gT2JqZWN0LmVudHJpZXMocmVzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7aWQ6IE51bWJlcihrZXkpLCB2YWx1ZTogdmFsdWV9XHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKGZvckZvcmVhY2hIYXZlLCBmb3JGb3JlYWNoTm90SGF2ZSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2YoZm9yRm9yZWFjaClcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgfVxyXG5cclxuICBjaGVja1Blcm1pc3Npb25BZGRFbGFwc2VkVGltZVRvVGFzayhpZFRhc2s6IG51bWJlcikge1xyXG4gICAgbGV0IHBlcm1pc3Npb24gPSBQZXJtaXNzaW9uLmdldCgpXHJcbiAgICBpZiAocGVybWlzc2lvbj8udGFza3M/Lmxlbmd0aCkge1xyXG4gICAgICBsZXQgZmluZFRhc2sgPSBwZXJtaXNzaW9uLnRhc2tzLmZpbmQoaSA9PiBpLmlkID09PSBpZFRhc2spXHJcbiAgICAgIGlmIChmaW5kVGFzaz8ucGVybWlzc2lvbikge1xyXG4gICAgICAgIHJldHVybiBvZihmaW5kVGFzay5wZXJtaXNzaW9uWydFTEFQU0VEVElNRS5BREQnXSlcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5CWFJlc3ROYXZ2eVVzZXIuY3VycmVudCgpLnJlc3VsdCgpLnBpcGUoXHJcbiAgICAgICAgbWVyZ2VNYXAoc2VsZiA9PiB7XHJcbiAgICAgICAgICBpZiAoc2VsZikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5CWFJlc3ROYXZ2eVRhc2tzLnRhc2suZ2V0QWNjZXNzKFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkOiBpZFRhc2ssXHJcbiAgICAgICAgICAgICAgICB1c2VyczogW3NlbGYuSURdXHJcbiAgICAgICAgICAgICAgfSkucmVzdWx0KCkucGlwZShcclxuICAgICAgICAgICAgICB0YXAodiA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodiAmJiB2W3NlbGYuSURdKSB7XHJcbiAgICAgICAgICAgICAgICAgIFBlcm1pc3Npb24uc2V0KHtcclxuICAgICAgICAgICAgICAgICAgICB0YXNrczogW3tpZDogaWRUYXNrLCBwZXJtaXNzaW9uOiB2W3NlbGYuSURdLCBlbGFwc2VkSXRlbTogW119XVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAodiAmJiB2W3NlbGYuSURdKSA/IHZbc2VsZi5JRF1bJ0VMQVBTRURUSU1FLkFERCddIDogZmFsc2VcclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICB9XHJcblxyXG4gIGNoZWNrUGVybWlzc2lvblJlYWRUYXNrKGlkVGFzazogbnVtYmVyKSB7XHJcbiAgICBsZXQgcGVybWlzc2lvbiA9IFBlcm1pc3Npb24uZ2V0KClcclxuICAgIGlmIChwZXJtaXNzaW9uPy50YXNrcz8ubGVuZ3RoKSB7XHJcbiAgICAgIGxldCBmaW5kVGFzayA9IHBlcm1pc3Npb24udGFza3MuZmluZChpID0+IGkuaWQgPT09IGlkVGFzaylcclxuICAgICAgaWYgKGZpbmRUYXNrPy5wZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgcmV0dXJuIG9mKGZpbmRUYXNrLnBlcm1pc3Npb24uQUNDRVBUKVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5VXNlci5jdXJyZW50KCkucmVzdWx0KCkucGlwZShcclxuICAgICAgICBtZXJnZU1hcChzZWxmID0+IHtcclxuICAgICAgICAgIGlmIChzZWxmKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5VGFza3MudGFzay5nZXRBY2Nlc3MoXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWQ6IGlkVGFzayxcclxuICAgICAgICAgICAgICAgIHVzZXJzOiBbc2VsZi5JRF1cclxuICAgICAgICAgICAgICB9KS5yZXN1bHQoKS5waXBlKFxyXG4gICAgICAgICAgICAgIHRhcCh2ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh2ICYmIHZbc2VsZi5JRF0pIHtcclxuICAgICAgICAgICAgICAgICAgUGVybWlzc2lvbi5zZXQoe1xyXG4gICAgICAgICAgICAgICAgICAgIHRhc2tzOiBbe2lkOiBpZFRhc2ssIHBlcm1pc3Npb246IHZbc2VsZi5JRF0sIGVsYXBzZWRJdGVtOiBbXX1dXHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICh2ICYmIHZbc2VsZi5JRF0pID8gdltzZWxmLklEXS5BQ0NFUFQgOiBmYWxzZVxyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxyXG4gIH1cclxufVxyXG4iXX0=
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svb3BlcmF0aW9uL2VsYXBzZWRpdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ25HLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBS3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7Ozs7Ozs7QUFLMUMsTUFBTSxPQUFPLCtCQUErQjtJQUUxQyxZQUNVLElBQW9CLEVBQ3BCLFFBQXdDLEVBQ3hDLG9CQUE4QyxFQUM5QyxlQUFnQyxFQUNoQyxnQkFBa0M7UUFKbEMsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0M7UUFDeEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEwQjtRQUM5QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUU1QyxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQWtCLEVBQUUsU0FBZSxFQUFFLE9BQWE7UUFDOUQsTUFBTSxLQUFLLEdBQStCO1lBQ3hDLEtBQUssRUFBRTtnQkFDTCxFQUFFLEVBQUUsTUFBTTthQUNYO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixnQkFBZ0IsRUFBRSxTQUFTLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztnQkFDbkQsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7YUFDbEQ7U0FDRixDQUFBO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQWE7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FFckIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNWLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDOUQsS0FBSyxFQUFFO29CQUNMLE1BQU0sRUFBRSxDQUFDO2lCQUNWO2FBQ0YsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUNILENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ2xELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUM5QztZQUNELE9BQU8sU0FBUyxDQUFBO1FBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBRUQsc0NBQXNDLENBQUMsS0FBZTtRQUNwRCxJQUFJLE9BQU8sR0FBMkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3ZGLE9BQU8sRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFBO1FBQzNELENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDSCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUM7YUFDckIsSUFBSSxDQUNILElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDWCxJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RELE9BQU8sRUFBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQTtZQUN4QyxDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLEtBQUssU0FBUyxFQUFFO2dCQUM3RCxJQUFJLGNBQWMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQTtnQkFDbEUsSUFBSSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQSxDQUFDLGdEQUFnRDtnQkFDdEgsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxpQkFBaUI7cUJBQ25DLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7cUJBQ2QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNQLE9BQU87d0JBQ0wsQ0FBQyxDQUFDLENBQUMsRUFBRTs0QkFDSCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDLENBQUM7NEJBQ3RFLEtBQUssRUFBRTtnQ0FDTCxNQUFNLEVBQUUsQ0FBQztnQ0FDVCxNQUFNLEVBQUUsQ0FBQztnQ0FDVCxRQUFRLEVBQUUsQ0FBQzs2QkFDWjt5QkFDRjtxQkFDRixDQUFBO2dCQUNILENBQUMsQ0FBQyxDQUFDLENBQ04sQ0FBQyxJQUFJLENBQ0osR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUU7d0JBQ2pCLE1BQU0sR0FBRyxHQUE2QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQTt3QkFDbEUsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFOzRCQUMzRCxPQUFPLEVBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFDLENBQUE7d0JBQ3hDLENBQUMsQ0FBQyxDQUFBO3dCQUNGLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtxQkFDeEQ7b0JBQ0QsT0FBTyxTQUFTLENBQUE7Z0JBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUE7YUFDRjtZQUNELE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3ZCLENBQUMsQ0FBQyxDQUNILENBQUE7SUFDTCxDQUFDO0lBRUQsbUNBQW1DLENBQUMsTUFBYztRQUNoRCxvQ0FBb0M7UUFDcEMsbUNBQW1DO1FBQ25DLCtEQUErRDtRQUMvRCxnQ0FBZ0M7UUFDaEMsd0RBQXdEO1FBQ3hELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUNqRCxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDZCxJQUFJLElBQUksRUFBRTtnQkFDUixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUN6QztvQkFDRSxFQUFFLEVBQUUsTUFBTTtvQkFDVixLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2lCQUNqQixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSTtnQkFDaEIsYUFBYTtnQkFDYiwyQkFBMkI7Z0JBQzNCLHVCQUF1QjtnQkFDdkIsdUVBQXVFO2dCQUN2RSxTQUFTO2dCQUNULE1BQU07Z0JBQ04sTUFBTTtnQkFDTixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ04sT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO2dCQUNsRSxDQUFDLENBQUMsQ0FDSCxDQUFBO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN0QixDQUFDLENBQUMsQ0FDSCxDQUFBO1FBQ0gsSUFBSTtRQUVKLHVCQUF1QjtJQUN6QixDQUFDO0lBRUQsdURBQXVEO0lBQ3ZELHVCQUF1QixDQUFDLE1BQWM7UUFDcEMsb0NBQW9DO1FBQ3BDLG1DQUFtQztRQUNuQywrREFBK0Q7UUFDL0QsZ0NBQWdDO1FBQ2hDLDRDQUE0QztRQUM1QyxNQUFNO1FBQ04sa0NBQWtDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQ2pELFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFBO1lBQ3pCLElBQUksSUFBSSxFQUFFO2dCQUNSLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQ3pDO29CQUNFLEVBQUUsRUFBRSxNQUFNO29CQUNWLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7aUJBQ2pCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJO2dCQUNoQixhQUFhO2dCQUNiLDJCQUEyQjtnQkFDM0IsdUJBQXVCO2dCQUN2Qix1RUFBdUU7Z0JBQ3ZFLFNBQVM7Z0JBQ1QsTUFBTTtnQkFDTixNQUFNO2dCQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDTixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtvQkFDbkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUEsQ0FBQyxrRkFBa0Y7Z0JBQ3BJLENBQUMsQ0FBQyxDQUNILENBQUE7YUFDRjtZQUNELE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3RCLENBQUMsQ0FBQyxDQUNILENBQUE7UUFDSCxJQUFJO1FBQ0osRUFBRTtRQUNGLHVCQUF1QjtJQUN6QixDQUFDOytHQXRLVSwrQkFBK0I7bUhBQS9CLCtCQUErQixjQUY5QixNQUFNOzs0RkFFUCwrQkFBK0I7a0JBSDNDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaUJYUmVzdFBhcmFtRWxhcHNlZGl0ZW1HZXQgfSBmcm9tICcuLi8uLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2VsYXBzZWRpdGVtL2dldCdcclxuaW1wb3J0IHsgSHR0cEJYU2VydmljZXMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odHRwL0h0dHBCWCdcclxuaW1wb3J0IHsgaUJYUmVzdFRhc2tFbGFwc2VkSXRlbUh0dHAgfSBmcm9tICcuLi8uLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2VsYXBzZWRpdGVtL2l0ZW0nXHJcbmltcG9ydCB7ICRlbGFwc2VkaXRlbSwgJGdldGxpc3QsICRpc2FjdGlvbmFsbG93ZWQsICR0YXNrIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RzL3BhcnQtbmFtZS1tZXRob2RzJ1xyXG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgQlhSZXN0TWFwVGFza0VsYXBzZWRJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3Rhc2svZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IGZvcmtKb2luLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBpSXNBY3Rpb25BbGxvd2VkUGFyYW0gfSBmcm9tICcuLi8uLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2VsYXBzZWRpdGVtL2lzQWN0aW9uQWxsb3dlZFBhcmFtJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVVzZXIgfSBmcm9tICcuLi8uLi91c2VyJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVRhc2tzIH0gZnJvbSAnLi4vLi4vdGFza3MnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5RGVsZWdhdGVFbGFwc2VkSXRlbSB9IGZyb20gJy4uL2RlbGVnYXRlL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5T3BlcmF0aW9uRWxhcHNlZEl0ZW0ge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cEJYU2VydmljZXMsXHJcbiAgICBwcml2YXRlIGRlbGVnYXRlOiBCWFJlc3ROYXZ2eURlbGVnYXRlRWxhcHNlZEl0ZW0sXHJcbiAgICBwcml2YXRlIEJYUmVzdE1hcEVsYXBzZWRJdGVtOiBCWFJlc3RNYXBUYXNrRWxhcHNlZEl0ZW0sXHJcbiAgICBwcml2YXRlIEJYUmVzdE5hdnZ5VXNlcjogQlhSZXN0TmF2dnlVc2VyLFxyXG4gICAgcHJpdmF0ZSBCWFJlc3ROYXZ2eVRhc2tzOiBCWFJlc3ROYXZ2eVRhc2tzLFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgZ2V0QnlJbnRlcnZhbChpZHNVc2VyczogbnVtYmVyW10sIGRhdGVTdGFydDogRGF0ZSwgZGF0ZUVuZDogRGF0ZSkge1xyXG4gICAgY29uc3QgcGFyYW06IGlCWFJlc3RQYXJhbUVsYXBzZWRpdGVtR2V0ID0ge1xyXG4gICAgICBPUkRFUjoge1xyXG4gICAgICAgIElEOiAnREVTQydcclxuICAgICAgfSxcclxuICAgICAgRklMVEVSOiB7XHJcbiAgICAgICAgVVNFUl9JRDogaWRzVXNlcnMsXHJcbiAgICAgICAgJz49Q1JFQVRFRF9EQVRFJzogZGF0ZVN0YXJ0LnRvTG9jYWxlU3RyaW5nKCdydS1SdScpLFxyXG4gICAgICAgICc8PUNSRUFURURfREFURSc6IGRhdGVFbmQudG9Mb2NhbGVTdHJpbmcoJ3J1LVJ1JyksXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmRlbGVnYXRlLmdldExpc3QocGFyYW0pXHJcbiAgfVxyXG5cclxuICBnZXRMaXN0QnlJRFRhc2soaWRzOiBudW1iZXJbXSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5icmFuY2g8aUJYUmVzdFBhcmFtRWxhcHNlZGl0ZW1HZXQsIGlCWFJlc3RUYXNrRWxhcHNlZEl0ZW1IdHRwPlxyXG4gICAgKFxyXG4gICAgICBpZHMubWFwKGkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBuYW1lOiB0aGlzLmh0dHAuZ2V0TmFtZU1ldGhvZChbJHRhc2ssICRlbGFwc2VkaXRlbSwgJGdldGxpc3RdKSxcclxuICAgICAgICAgIHBhcmFtOiB7XHJcbiAgICAgICAgICAgIFRBU0tJRDogaVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgIGlmICh2ICYmIHYubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCByZXMgPSB0aGlzLmh0dHAubWFwQnJhbmNoUmVzdWx0V2l0aG91dEtleSh2KVxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0TWFwRWxhcHNlZEl0ZW0uZ2V0TGlzdChyZXMpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIGNoZWNrUGVybWlzc2lvbkFkZEVsYXBzZWRUaW1lVG9UYXNrQXJyKHRhc2tzOiBudW1iZXJbXSkge1xyXG4gICAgbGV0IHJlcXVlc3Q6IHsgW2tleTogbnVtYmVyXTogT2JzZXJ2YWJsZTxib29sZWFuPiB9ID0gT2JqZWN0LmFzc2lnbih7fSwgLi4udGFza3MubWFwKGkgPT4ge1xyXG4gICAgICByZXR1cm4ge1tpXTogdGhpcy5jaGVja1Blcm1pc3Npb25BZGRFbGFwc2VkVGltZVRvVGFzayhpKX1cclxuICAgIH0pKVxyXG4gICAgcmV0dXJuIGZvcmtKb2luKHJlcXVlc3QpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgbWVyZ2VNYXAodiA9PiB7XHJcbiAgICAgICAgICBsZXQgZm9yRm9yZWFjaCA9IE9iamVjdC5lbnRyaWVzKHYpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7aWQ6IE51bWJlcihrZXkpLCB2YWx1ZTogdmFsdWV9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgaWYgKGZvckZvcmVhY2guZmluZChpID0+IGkudmFsdWUgPT09IHVuZGVmaW5lZCkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBsZXQgZm9yRm9yZWFjaEhhdmUgPSBmb3JGb3JlYWNoLmZpbHRlcihpID0+IGkudmFsdWUgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgbGV0IGZvckZvcmVhY2hOb3RIYXZlID0gZm9yRm9yZWFjaC5maWx0ZXIoaSA9PiBpLnZhbHVlID09PSB1bmRlZmluZWQpIC8vINGC0YPRgiDQv9C+0LvRg9GH0LDQtdC8INCy0YHQtSBpZCDQvdC1INGB0L7RhdGA0LDQvdC10L3QvdGL0YUg0YMg0L3QsNGBINC/0YDQsNCyXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuYnJhbmNoPGlJc0FjdGlvbkFsbG93ZWRQYXJhbSwgYm9vbGVhbj4oXHJcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgLi4uZm9yRm9yZWFjaE5vdEhhdmVcclxuICAgICAgICAgICAgICAgIC5tYXAoaSA9PiBpLmlkKVxyXG4gICAgICAgICAgICAgICAgLm1hcChpID0+IHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBbaV06IHtcclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuaHR0cC5nZXROYW1lTWV0aG9kKFskdGFzaywgJGVsYXBzZWRpdGVtLCAkaXNhY3Rpb25hbGxvd2VkXSksXHJcbiAgICAgICAgICAgICAgICAgICAgICBwYXJhbToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBUQVNLSUQ6IGksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIElURU1JRDogMSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgQUNUSU9OSUQ6IDFcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICApLnBpcGUoXHJcbiAgICAgICAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHYgJiYgdi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgcmVzOiB7IFtwOiBudW1iZXJdOiBib29sZWFuIH0gPSB0aGlzLmh0dHAubWFwQnJhbmNoUmVzdWx0KHYpXHJcbiAgICAgICAgICAgICAgICAgIGZvckZvcmVhY2hOb3RIYXZlID0gT2JqZWN0LmVudHJpZXMocmVzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7aWQ6IE51bWJlcihrZXkpLCB2YWx1ZTogdmFsdWV9XHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKGZvckZvcmVhY2hIYXZlLCBmb3JGb3JlYWNoTm90SGF2ZSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2YoZm9yRm9yZWFjaClcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgfVxyXG5cclxuICBjaGVja1Blcm1pc3Npb25BZGRFbGFwc2VkVGltZVRvVGFzayhpZFRhc2s6IG51bWJlcikge1xyXG4gICAgLy8gbGV0IHBlcm1pc3Npb24gPSBQZXJtaXNzaW9uLmdldCgpXHJcbiAgICAvLyBpZiAocGVybWlzc2lvbj8udGFza3M/Lmxlbmd0aCkge1xyXG4gICAgLy8gICBsZXQgZmluZFRhc2sgPSBwZXJtaXNzaW9uLnRhc2tzLmZpbmQoaSA9PiBpLmlkID09PSBpZFRhc2spXHJcbiAgICAvLyAgIGlmIChmaW5kVGFzaz8ucGVybWlzc2lvbikge1xyXG4gICAgLy8gICAgIHJldHVybiBvZihmaW5kVGFzay5wZXJtaXNzaW9uWydFTEFQU0VEVElNRS5BREQnXSlcclxuICAgIC8vICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5CWFJlc3ROYXZ2eVVzZXIuY3VycmVudCgpLnJlc3VsdCgpLnBpcGUoXHJcbiAgICAgICAgbWVyZ2VNYXAoc2VsZiA9PiB7XHJcbiAgICAgICAgICBpZiAoc2VsZikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5CWFJlc3ROYXZ2eVRhc2tzLnRhc2suZ2V0QWNjZXNzKFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkOiBpZFRhc2ssXHJcbiAgICAgICAgICAgICAgICB1c2VyczogW3NlbGYuSURdXHJcbiAgICAgICAgICAgICAgfSkucmVzdWx0KCkucGlwZShcclxuICAgICAgICAgICAgICAvLyB0YXAodiA9PiB7XHJcbiAgICAgICAgICAgICAgLy8gICBpZiAodiAmJiB2W3NlbGYuSURdKSB7XHJcbiAgICAgICAgICAgICAgLy8gICAgIFBlcm1pc3Npb24uc2V0KHtcclxuICAgICAgICAgICAgICAvLyAgICAgICB0YXNrczogW3tpZDogaWRUYXNrLCBwZXJtaXNzaW9uOiB2W3NlbGYuSURdLCBlbGFwc2VkSXRlbTogW119XVxyXG4gICAgICAgICAgICAgIC8vICAgICB9KVxyXG4gICAgICAgICAgICAgIC8vICAgfVxyXG4gICAgICAgICAgICAgIC8vIH0pLFxyXG4gICAgICAgICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAodiAmJiB2W3NlbGYuSURdKSA/IHZbc2VsZi5JRF1bJ0VMQVBTRURUSU1FLkFERCddIDogZmFsc2VcclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICB9XHJcblxyXG4gIC8vINCy0L7QvtCx0YnQtSDQvNC10YLQvtC0INC/0L7RhdC+0LbQtSDQtNCw0LbQtSDQvdCwINCy0YDQtdC00L3Ri9C5INCyINC60LDQutC+0LzRgtC+INGB0LzRi9GB0LvQtVxyXG4gIGNoZWNrUGVybWlzc2lvblJlYWRUYXNrKGlkVGFzazogbnVtYmVyKSB7XHJcbiAgICAvLyBsZXQgcGVybWlzc2lvbiA9IFBlcm1pc3Npb24uZ2V0KClcclxuICAgIC8vIGlmIChwZXJtaXNzaW9uPy50YXNrcz8ubGVuZ3RoKSB7XHJcbiAgICAvLyAgIGxldCBmaW5kVGFzayA9IHBlcm1pc3Npb24udGFza3MuZmluZChpID0+IGkuaWQgPT09IGlkVGFzaylcclxuICAgIC8vICAgaWYgKGZpbmRUYXNrPy5wZXJtaXNzaW9uKSB7XHJcbiAgICAvLyAgICAgcmV0dXJuIG9mKGZpbmRUYXNrLnBlcm1pc3Npb24uQUNDRVBUKVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIGNvbnNvbGUubG9nKCdpZFRhc2snLCBpZFRhc2spXHJcbiAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5VXNlci5jdXJyZW50KCkucmVzdWx0KCkucGlwZShcclxuICAgICAgICBtZXJnZU1hcChzZWxmID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdzZWxmJywgc2VsZilcclxuICAgICAgICAgIGlmIChzZWxmKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5VGFza3MudGFzay5nZXRBY2Nlc3MoXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWQ6IGlkVGFzayxcclxuICAgICAgICAgICAgICAgIHVzZXJzOiBbc2VsZi5JRF1cclxuICAgICAgICAgICAgICB9KS5yZXN1bHQoKS5waXBlKFxyXG4gICAgICAgICAgICAgIC8vIHRhcCh2ID0+IHtcclxuICAgICAgICAgICAgICAvLyAgIGlmICh2ICYmIHZbc2VsZi5JRF0pIHtcclxuICAgICAgICAgICAgICAvLyAgICAgUGVybWlzc2lvbi5zZXQoe1xyXG4gICAgICAgICAgICAgIC8vICAgICAgIHRhc2tzOiBbe2lkOiBpZFRhc2ssIHBlcm1pc3Npb246IHZbc2VsZi5JRF0sIGVsYXBzZWRJdGVtOiBbXX1dXHJcbiAgICAgICAgICAgICAgLy8gICAgIH0pXHJcbiAgICAgICAgICAgICAgLy8gICB9XHJcbiAgICAgICAgICAgICAgLy8gfSksXHJcbiAgICAgICAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3YnLCB2KVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICh2ICYmIHZbc2VsZi5JRF0pID8gISF2W3NlbGYuSURdIDogZmFsc2UgLy8g0L7RgtC00LXQu9GM0L3QvtCz0L4g0YTQu9Cw0LPQsCDQvdCwINGH0YLQtdC90LjQtSDQvdC10YIsINCy0YvRhdC+0LTQuNGCINGH0YLQviDQtdGB0LvQuCDQv9GA0LDQstCwINC+0YLQtNCw0LvQuNGB0Ywg0YLQviDQuCDQv9GA0LDQstCwINC10YHRgtGMXHJcbiAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgLy8gfVxyXG4gICAgLy9cclxuICAgIC8vIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
@@ -4,12 +4,12 @@ import * as i1 from "./task/elapseditem";
4
4
  import * as i2 from "./task/commentitem";
5
5
  import * as i3 from "./task/planner";
6
6
  export class BXRestNavvyTask {
7
- constructor(elapseditem, commentitem, planner) {
8
- this.elapseditem = elapseditem;
9
- this.commentitem = commentitem;
7
+ constructor(elapsedItem, commentItem, planner) {
8
+ this.elapsedItem = elapsedItem;
9
+ this.commentItem = commentItem;
10
10
  this.planner = planner;
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyTask, deps: [{ token: i1.BXRestNavvyElapseditem }, { token: i2.BXRestNavvyTaskCommentItem }, { token: i3.BXRestNavvyTaskPlanner }], target: i0.ɵɵFactoryTarget.Injectable }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyTask, deps: [{ token: i1.BXRestNavvyElapsedItem }, { token: i2.BXRestNavvyTaskCommentItem }, { token: i3.BXRestNavvyTaskPlanner }], target: i0.ɵɵFactoryTarget.Injectable }); }
13
13
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyTask, providedIn: 'root' }); }
14
14
  }
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyTask, decorators: [{
@@ -17,5 +17,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
17
17
  args: [{
18
18
  providedIn: 'root'
19
19
  }]
20
- }], ctorParameters: function () { return [{ type: i1.BXRestNavvyElapseditem }, { type: i2.BXRestNavvyTaskCommentItem }, { type: i3.BXRestNavvyTaskPlanner }]; } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7OztBQVExQyxNQUFNLE9BQU8sZUFBZTtJQUUxQixZQUNTLFdBQW1DLEVBQ25DLFdBQXVDLEVBQ3ZDLE9BQStCO1FBRi9CLGdCQUFXLEdBQVgsV0FBVyxDQUF3QjtRQUNuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBNEI7UUFDdkMsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7SUFFeEMsQ0FBQzsrR0FQVSxlQUFlO21IQUFmLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eUVsYXBzZWRpdGVtIH0gZnJvbSAnLi90YXNrL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVRhc2tDb21tZW50SXRlbSB9IGZyb20gJy4vdGFzay9jb21tZW50aXRlbSdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlUYXNrUGxhbm5lciB9IGZyb20gJy4vdGFzay9wbGFubmVyJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlUYXNrIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZWxhcHNlZGl0ZW06IEJYUmVzdE5hdnZ5RWxhcHNlZGl0ZW0sXHJcbiAgICBwdWJsaWMgY29tbWVudGl0ZW06IEJYUmVzdE5hdnZ5VGFza0NvbW1lbnRJdGVtLFxyXG4gICAgcHVibGljIHBsYW5uZXI6IEJYUmVzdE5hdnZ5VGFza1BsYW5uZXJcclxuICApIHtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
20
+ }], ctorParameters: function () { return [{ type: i1.BXRestNavvyElapsedItem }, { type: i2.BXRestNavvyTaskCommentItem }, { type: i3.BXRestNavvyTaskPlanner }]; } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7OztBQVExQyxNQUFNLE9BQU8sZUFBZTtJQUUxQixZQUNTLFdBQW1DLEVBQ25DLFdBQXVDLEVBQ3ZDLE9BQStCO1FBRi9CLGdCQUFXLEdBQVgsV0FBVyxDQUF3QjtRQUNuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBNEI7UUFDdkMsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7SUFFeEMsQ0FBQzsrR0FQVSxlQUFlO21IQUFmLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eUVsYXBzZWRJdGVtIH0gZnJvbSAnLi90YXNrL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVRhc2tDb21tZW50SXRlbSB9IGZyb20gJy4vdGFzay9jb21tZW50aXRlbSdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlUYXNrUGxhbm5lciB9IGZyb20gJy4vdGFzay9wbGFubmVyJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlUYXNrIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZWxhcHNlZEl0ZW06IEJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0sXHJcbiAgICBwdWJsaWMgY29tbWVudEl0ZW06IEJYUmVzdE5hdnZ5VGFza0NvbW1lbnRJdGVtLFxyXG4gICAgcHVibGljIHBsYW5uZXI6IEJYUmVzdE5hdnZ5VGFza1BsYW5uZXJcclxuICApIHtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Navvy } from '../services/navvy';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../request/timeman";
5
+ import * as i2 from "../map/timeman";
6
+ export class BXRestNavvyTimeMan {
7
+ constructor(BXRestTimeMan, BXRestMapTimeMan) {
8
+ this.BXRestTimeMan = BXRestTimeMan;
9
+ this.BXRestMapTimeMan = BXRestMapTimeMan;
10
+ this.Navvy = new Navvy(BXRestTimeMan, BXRestMapTimeMan);
11
+ }
12
+ status(param = undefined) {
13
+ return this.Navvy.simpleWithArg(this.BXRestTimeMan.status, param, this.BXRestMapTimeMan.status);
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyTimeMan, deps: [{ token: i1.BXRestTimeMan }, { token: i2.BXRestMapTimeMan }], target: i0.ɵɵFactoryTarget.Injectable }); }
16
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyTimeMan, providedIn: 'root' }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyTimeMan, decorators: [{
19
+ type: Injectable,
20
+ args: [{
21
+ providedIn: 'root'
22
+ }]
23
+ }], ctorParameters: function () { return [{ type: i1.BXRestTimeMan }, { type: i2.BXRestMapTimeMan }]; } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZW1hbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGltZW1hbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTs7OztBQU96QyxNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFlBQ1UsYUFBNEIsRUFDNUIsZ0JBQWtDO1FBRGxDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFFMUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUN6RCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQStDLFNBQVM7UUFDN0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQ3pCLEtBQUssRUFDTCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUM3QixDQUFBO0lBQ0gsQ0FBQzsrR0FqQlUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UaW1lTWFuU3RhdHVzIH0gZnJvbSAnLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGltZW1hbi9zdGF0dXMnXHJcbmltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vc2VydmljZXMvbmF2dnknXHJcbmltcG9ydCB7IEJYUmVzdFRpbWVNYW4gfSBmcm9tICcuLi9yZXF1ZXN0L3RpbWVtYW4nXHJcbmltcG9ydCB7IEJYUmVzdE1hcFRpbWVNYW4gfSBmcm9tICcuLi9tYXAvdGltZW1hbidcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5VGltZU1hbiB7XHJcblxyXG4gIHByb3RlY3RlZCBOYXZ2eTogTmF2dnk8QlhSZXN0VGltZU1hbiwgQlhSZXN0TWFwVGltZU1hbj5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIEJYUmVzdFRpbWVNYW46IEJYUmVzdFRpbWVNYW4sXHJcbiAgICBwcml2YXRlIEJYUmVzdE1hcFRpbWVNYW46IEJYUmVzdE1hcFRpbWVNYW5cclxuICApIHtcclxuICAgIHRoaXMuTmF2dnkgPSBuZXcgTmF2dnkoQlhSZXN0VGltZU1hbiwgQlhSZXN0TWFwVGltZU1hbilcclxuICB9XHJcblxyXG4gIHN0YXR1cyhwYXJhbTogaUJYUmVzdFBhcmFtVGltZU1hblN0YXR1cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCl7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGVXaXRoQXJnKFxyXG4gICAgICB0aGlzLkJYUmVzdFRpbWVNYW4uc3RhdHVzLFxyXG4gICAgICBwYXJhbSxcclxuICAgICAgdGhpcy5CWFJlc3RNYXBUaW1lTWFuLnN0YXR1c1xyXG4gICAgKVxyXG4gIH1cclxufVxyXG5cclxuIl19
@@ -6,10 +6,10 @@ import * as i1 from "../map/user";
6
6
  import * as i2 from "../request/user";
7
7
  import * as i3 from "./user/userfield";
8
8
  export class BXRestNavvyUser {
9
- constructor(BXRestUserMap, BXRestUser, userfield) {
9
+ constructor(BXRestUserMap, BXRestUser, userField) {
10
10
  this.BXRestUserMap = BXRestUserMap;
11
11
  this.BXRestUser = BXRestUser;
12
- this.userfield = userfield;
12
+ this.userField = userField;
13
13
  this.def = {
14
14
  params: { ACTIVE: 1, start: 0 }
15
15
  };
@@ -164,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
164
164
  providedIn: 'root'
165
165
  }]
166
166
  }], ctorParameters: function () { return [{ type: i1.BXRestMapUser }, { type: i2.BXRestUser }, { type: i3.BXRestNavvyUserUserfield }]; } });
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUV6QyxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUE7Ozs7O0FBUTlCLE1BQU0sT0FBTyxlQUFlO0lBUTFCLFlBQ1UsYUFBNEIsRUFDNUIsVUFBc0IsRUFDdkIsU0FBbUM7UUFGbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUEwQjtRQVQ1QyxRQUFHLEdBQXdDO1lBQ3pDLE1BQU0sRUFBRSxFQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBQztTQUM5QixDQUFBO1FBU0MsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUN0QixDQUFBO0lBQ0gsQ0FBQztJQUVELEdBQUcsQ0FBQyxTQUE4QixFQUFFO1FBQ2xDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRTVCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUNuQixVQUFVLEVBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFH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QUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQTtTQUNyQztRQUVELElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDdEUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQTtTQUNuQztJQUNILENBQUM7K0dBeExVLGVBQWU7bUhBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEJYUmVzdFVzZXIgfSBmcm9tICcuLi9yZXF1ZXN0L3VzZXInXHJcbmltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vc2VydmljZXMvbmF2dnknXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVzZXJHZXQgfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL2dldCdcclxuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVzZXJTZWFyY2ggfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3NlYXJjaCdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlVc2VyVXNlcmZpZWxkIH0gZnJvbSAnLi91c2VyL3VzZXJmaWVsZCdcclxuaW1wb3J0IHsgQlhSZXN0TWFwVXNlciB9IGZyb20gJy4uL21hcC91c2VyJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlVc2VyIHtcclxuXHJcbiAgZGVmOiB7IHBhcmFtczogeyBBQ1RJVkU6IDEsIHN0YXJ0OiAwIH0gfSA9IHtcclxuICAgIHBhcmFtczoge0FDVElWRTogMSwgc3RhcnQ6IDB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIE5hdnZ5OiBOYXZ2eTxCWFJlc3RVc2VyLCBCWFJlc3RNYXBVc2VyPlxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgQlhSZXN0VXNlck1hcDogQlhSZXN0TWFwVXNlcixcclxuICAgIHByaXZhdGUgQlhSZXN0VXNlcjogQlhSZXN0VXNlcixcclxuICAgIHB1YmxpYyB1c2VyZmllbGQ6IEJYUmVzdE5hdnZ5VXNlclVzZXJmaWVsZFxyXG4gICkge1xyXG4gICAgdGhpcy5OYXZ2eSA9IG5ldyBOYXZ2eSh0aGlzLkJYUmVzdFVzZXIsIHRoaXMuQlhSZXN0VXNlck1hcClcclxuICB9XHJcblxyXG4gIGFkbWluKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKFxyXG4gICAgICB0aGlzLkJYUmVzdFVzZXIuYWRtaW5cclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldChwYXJhbXM6IGlCWFJlc3RQYXJhbVVzZXJHZXQgPSB7fSl7XHJcbiAgICBsZXQgY29weVBhcmFtcyA9IGNsb25lKHBhcmFtcylcclxuICAgIHRoaXMuc2V0RGVmUGFyYW0oY29weVBhcmFtcylcclxuXHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5QYWdOYXYoXHJcbiAgICAgIHRoaXMuQlhSZXN0VXNlci5nZXQsXHJcbiAgICAgIGNvcHlQYXJhbXMsXHJcbiAgICAgIHRoaXMuQlhSZXN0VXNlck1hcC5nZXRcclxuICAgIClcclxuICB9XHJcblxyXG4gIGN1cnJlbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoXHJcbiAgICAgIHRoaXMuQlhSZXN0VXNlci5jdXJyZW50LFxyXG4gICAgICB0aGlzLkJYUmVzdFVzZXJNYXAuY3VycmVudFxyXG4gICAgKVxyXG4gICAgLy8gVE9ETzog0L/QvtC00YPQvNCw0YLRjCDQviDRgdC+0YXRgNCw0L3QtdC90LjQuCDQtNCw0L3QvdGL0YUgKNC90LAg0LHRg9C00YPRidC10LUsINC/0YDQuNC80LXRgCDQutC+0LQg0L3QuNC20LUpXHJcbiAgICAvKlxyXG4gICAgY29uc3QgbmF2dnkgPSBuZXcgTmF2dnkodGhpcywgdGhpcy5CWFJlc3RVc2VyTWFwKVxyXG4gICAgcmV0dXJuIG5hdnZ5LnNpbXBsZVdpdGhBcmcoXHJcbiAgICAgIHRoaXMuc2VsZixcclxuICAgICAgdXBkYXRlLFxyXG4gICAgICB0aGlzLkJYUmVzdFVzZXJNYXAuY3VycmVudFxyXG4gICAgKVxyXG4gICAgICovXHJcblxyXG4gIH1cclxuXHJcbiAgLypcclxuICB1cGRhdGUodXNlcjogaUJYUmVzdFVzZXIsIGZpZWxkVXBkYXRlOiBzdHJpbmdbXSkge1xyXG5cclxuICAgICAgaWYgKGZpZWxkVXBkYXRlICYmIGZpZWxkVXBkYXRlLmxlbmd0aCkge1xyXG4gICAgICBsZXQgc2VuZERhdGE6IGFueSA9IHtcclxuICAgICAgICBJRDogdXNlci5JRCxcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB1c2VyQlggPSB0aGlzLkJYUmVzdFVzZXJNYXAuQlh0b0h0dHAodXNlcilcclxuICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZFVwZGF0ZSkge1xyXG4gICAgICAgIGlmICh1c2VyQlhbZmllbGRdKSB7XHJcbiAgICAgICAgICBzZW5kRGF0YVtmaWVsZF0gPSB1c2VyQlhbZmllbGRdXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdPbmUgc2VudCBmaWVsZCBpcyBlbXB0eScpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VXNlckh0dHBbXT4oXHJcbiAgICAgICAgdGhpcy51cmwudXBkYXRlLFxyXG4gICAgICAgIHNlbmREYXRhXHJcbiAgICAgIClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdBbGwgc2VudCBmaWVsZCBmb3IgZWRpdCBpcyBlbXB0eScpXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoXHJcbiAgICAgIHRoaXMuQlhSZXN0VXNlci51cGRhdGUodXNlciwgZmllbGRVcGRhdGUpLFxyXG4gICAgICAn0J3QtSDRg9C00LDQu9C+0YHRjCDQvtCx0L3QvtCy0LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDRgSBJRCcgKyB1c2VyLklEXHJcbiAgICApXHJcbiAgfVxyXG4gICovXHJcbiAgc2VhcmNoKHBhcmFtczogaUJYUmVzdFBhcmFtVXNlclNlYXJjaCkge1xyXG4gICAgaWYgKHR5cGVvZiBwYXJhbXMuQUNUSVZFICE9PSAnYm9vbGVhbicpIHtcclxuICAgICAgcGFyYW1zLkFDVElWRSA9IHRydWVcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LlBhZ05hdihcclxuICAgICAgdGhpcy5CWFJlc3RVc2VyLnNlYXJjaCxcclxuICAgICAgcGFyYW1zLFxyXG4gICAgICB0aGlzLkJYUmVzdFVzZXJNYXAuZ2V0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBhY2Nlc3MocGFyYW1zOiBzdHJpbmdbXSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlV2l0aEFyZyhcclxuICAgICAgdGhpcy5CWFJlc3RVc2VyLmFjY2VzcyxcclxuICAgICAgcGFyYW1zLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZmllbGRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKHRoaXMuQlhSZXN0VXNlci5maWVsZHMpXHJcbiAgfVxyXG5cclxuICAvLyBnZXRBbGwocGFyYW1zOiBpQlhHZXRQYXJhbSA9IHt9KTogT2JzZXJ2YWJsZTxpQlhSZXN0VXNlciBbXSB8IHVuZGVmaW5lZD4ge1xyXG4gIC8vICAgaWYgKCFPYmplY3Qua2V5cyhwYXJhbXMpLmxlbmd0aCkge1xyXG4gIC8vICAgICBwYXJhbXMgPSBjbG9uZSh0aGlzLmRlZi5wYXJhbXMpXHJcbiAgLy8gICB9XHJcbiAgLy9cclxuICAvLyAgIGNvbnN0IHNhdmVBbGxVc2VyID0gY29tcGFyZShwYXJhbXMsIHRoaXMuZGVmLnBhcmFtcylcclxuICAvLyAgIHJldHVybiB0aGlzLnVzZXIkLnBpcGUoXHJcbiAgLy8gICAgIHRha2UoMSksXHJcbiAgLy8gICAgIG1lcmdlTWFwKHYgPT4ge1xyXG4gIC8vICAgICAgIGlmICh2LmxvYWQuYWxsKSB7XHJcbiAgLy8gICAgICAgICBpZiAoY29tcGFyZSh0aGlzLmRlZi5wYXJhbXMsIHBhcmFtcykpIHtcclxuICAvLyAgICAgICAgICAgcmV0dXJuIG9mKGNsb25lKHYuZGF0YSkpXHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgfVxyXG4gIC8vXHJcbiAgLy8gICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kQXJyYXkocGFyYW1zKS5waXBlKFxyXG4gIC8vICAgICAgICAgdGFrZSgxKSxcclxuICAvLyAgICAgICAgIG1hcCh2ID0+IHtcclxuICAvLyAgICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcclxuICAvLyAgICAgICAgICAgICBsZXQgY2wgPSBjbG9uZSh2LnJlc3VsdClcclxuICAvLyAgICAgICAgICAgICByZXR1cm4gdGhpcy5zYXZlQXJyVXNlcihjbClcclxuICAvLyAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgLy8gICAgICAgICB9KSxcclxuICAvLyAgICAgICApXHJcbiAgLy8gICAgIH0pLFxyXG4gIC8vICAgICB0YXAodiA9PiB7XHJcbiAgLy8gICAgICAgaWYgKHYgJiYgdi5sZW5ndGggJiYgc2F2ZUFsbFVzZXIpIHtcclxuICAvLyAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobG9hZEFsbCh7bG9hZDogdHJ1ZX0pKVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgICBwYXJhbXMuc3RhcnQgPSB0aGlzLmRlZi5wYXJhbXMuc3RhcnRcclxuICAvLyAgICAgfSlcclxuICAvLyAgIClcclxuICAvLyB9XHJcblxyXG4gIC8vIHByaXZhdGUgc2F2ZUFyclVzZXIodXNlcnM6IGlCWFJlc3RVc2VySHR0cFtdKSB7XHJcbiAgLy8gICBsZXQgcmVzdWx0OiBpQlhSZXN0VXNlciBbXSA9IFtdXHJcbiAgLy8gICBmb3IgKGNvbnN0IHVzZXIgb2YgdXNlcnMpIHtcclxuICAvLyAgICAgcmVzdWx0LnB1c2godGhpcy51c2VyTWFwLkh0dHBUb0JYKHVzZXIpKVxyXG4gIC8vICAgfVxyXG4gIC8vICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzYXZlQXJyKHthcnI6IHJlc3VsdH0pKVxyXG4gIC8vXHJcbiAgLy8gICByZXR1cm4gcmVzdWx0XHJcbiAgLy8gfVxyXG5cclxuICAvLyBnZXRFbmRBcnJheShwYXJhbXM6IFVzZXJGaWx0ZXIgPSB7fSk6IE9ic2VydmFibGU8aUh0dHBBbnN3ZXJCWDxpQlhSZXN0VXNlckh0dHBbXT4gfCB1bmRlZmluZWQ+IHtcclxuICAvLyAgIHJldHVybiB0aGlzLmdldChwYXJhbXMpLnBpcGUoXHJcbiAgLy8gICAgIG1lcmdlTWFwKGl0ZW1zID0+IHtcclxuICAvLyAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMucmVzdWx0ICYmIHR5cGVvZiBpdGVtcy5yZXN1bHQgPT09ICdvYmplY3QnKSB7XHJcbiAgLy8gICAgICAgICBpZiAoaXRlbXMubmV4dCkge1xyXG4gIC8vICAgICAgICAgICBwYXJhbXMuc3RhcnQgPSBpdGVtcy5uZXh0XHJcbiAgLy8gICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZEFycmF5KHBhcmFtcykucGlwZShtYXAodkVuZCA9PiB7XHJcbiAgLy8gICAgICAgICAgICAgaWYgKHZFbmQgJiYgaXRlbXMucmVzdWx0ICYmIHZFbmQucmVzdWx0KSB7XHJcbiAgLy8gICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogWy4uLml0ZW1zLnJlc3VsdCwgLi4udkVuZC5yZXN1bHRdfVxyXG4gIC8vICAgICAgICAgICAgIH1cclxuICAvLyAgICAgICAgICAgICByZXR1cm4gKGl0ZW1zKSA/IGl0ZW1zIDogdW5kZWZpbmVkXHJcbiAgLy8gICAgICAgICAgIH0pKVxyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgcmV0dXJuIG9mKGl0ZW1zKVxyXG4gIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfSksXHJcbiAgLy8gICApXHJcbiAgLy8gfVxyXG5cclxuICBwcml2YXRlIHNldERlZlBhcmFtKHBhcmFtczogaUJYUmVzdFBhcmFtVXNlckdldCkge1xyXG4gICAgaWYoIXBhcmFtcy5GSUxURVIpIHtcclxuICAgICAgcGFyYW1zLkZJTFRFUiA9IHt9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFwYXJhbXMuaGFzT3duUHJvcGVydHkoJ0FDVElWRScpKSB7XHJcbiAgICAgIHBhcmFtcy5GSUxURVIuQUNUSVZFID0gdGhpcy5kZWYucGFyYW1zLkFDVElWRVxyXG4gICAgfVxyXG4gICAgaWYgKHBhcmFtcy5GSUxURVIuQUNUSVZFICYmIHBhcmFtcy5GSUxURVIuQUNUSVZFID09PSAyKSB7XHJcbiAgICAgIGRlbGV0ZSBwYXJhbXMuRklMVEVSLkFDVElWRVxyXG4gICAgfVxyXG4gICAgaWYgKCFwYXJhbXMuaGFzT3duUHJvcGVydHkoJ3N0YXJ0JykpIHtcclxuICAgICAgcGFyYW1zLnN0YXJ0ID0gdGhpcy5kZWYucGFyYW1zLnN0YXJ0XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHBhcmFtcy5GSUxURVIuVUZfREVQQVJUTUVOVCAmJiAhcGFyYW1zLkZJTFRFUi5VRl9ERVBBUlRNRU5ULmxlbmd0aCkge1xyXG4gICAgICBkZWxldGUgcGFyYW1zLkZJTFRFUi5VRl9ERVBBUlRNRU5UXHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuIl19
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUV6QyxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUE7Ozs7O0FBUTlCLE1BQU0sT0FBTyxlQUFlO0lBUTFCLFlBQ1UsYUFBNEIsRUFDNUIsVUFBc0IsRUFDdkIsU0FBbUM7UUFGbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUEwQjtRQVQ1QyxRQUFHLEdBQXdDO1lBQ3pDLE1BQU0sRUFBRSxFQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBQztTQUM5QixDQUFBO1FBU0MsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUN0QixDQUFBO0lBQ0gsQ0FBQztJQUVELEdBQUcsQ0FBQyxTQUE4QixFQUFFO1FBQ2xDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRTVCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUNuQixVQUFVLEVBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFH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QUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQTtTQUNyQztRQUVELElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDdEUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQTtTQUNuQztJQUNILENBQUM7K0dBeExVLGVBQWU7bUhBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEJYUmVzdFVzZXIgfSBmcm9tICcuLi9yZXF1ZXN0L3VzZXInXHJcbmltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vc2VydmljZXMvbmF2dnknXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVzZXJHZXQgfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL2dldCdcclxuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVzZXJTZWFyY2ggfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3NlYXJjaCdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlVc2VyVXNlcmZpZWxkIH0gZnJvbSAnLi91c2VyL3VzZXJmaWVsZCdcclxuaW1wb3J0IHsgQlhSZXN0TWFwVXNlciB9IGZyb20gJy4uL21hcC91c2VyJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlVc2VyIHtcclxuXHJcbiAgZGVmOiB7IHBhcmFtczogeyBBQ1RJVkU6IDEsIHN0YXJ0OiAwIH0gfSA9IHtcclxuICAgIHBhcmFtczoge0FDVElWRTogMSwgc3RhcnQ6IDB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIE5hdnZ5OiBOYXZ2eTxCWFJlc3RVc2VyLCBCWFJlc3RNYXBVc2VyPlxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgQlhSZXN0VXNlck1hcDogQlhSZXN0TWFwVXNlcixcclxuICAgIHByaXZhdGUgQlhSZXN0VXNlcjogQlhSZXN0VXNlcixcclxuICAgIHB1YmxpYyB1c2VyRmllbGQ6IEJYUmVzdE5hdnZ5VXNlclVzZXJmaWVsZFxyXG4gICkge1xyXG4gICAgdGhpcy5OYXZ2eSA9IG5ldyBOYXZ2eSh0aGlzLkJYUmVzdFVzZXIsIHRoaXMuQlhSZXN0VXNlck1hcClcclxuICB9XHJcblxyXG4gIGFkbWluKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKFxyXG4gICAgICB0aGlzLkJYUmVzdFVzZXIuYWRtaW5cclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldChwYXJhbXM6IGlCWFJlc3RQYXJhbVVzZXJHZXQgPSB7fSl7XHJcbiAgICBsZXQgY29weVBhcmFtcyA9IGNsb25lKHBhcmFtcylcclxuICAgIHRoaXMuc2V0RGVmUGFyYW0oY29weVBhcmFtcylcclxuXHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5QYWdOYXYoXHJcbiAgICAgIHRoaXMuQlhSZXN0VXNlci5nZXQsXHJcbiAgICAgIGNvcHlQYXJhbXMsXHJcbiAgICAgIHRoaXMuQlhSZXN0VXNlck1hcC5nZXRcclxuICAgIClcclxuICB9XHJcblxyXG4gIGN1cnJlbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoXHJcbiAgICAgIHRoaXMuQlhSZXN0VXNlci5jdXJyZW50LFxyXG4gICAgICB0aGlzLkJYUmVzdFVzZXJNYXAuY3VycmVudFxyXG4gICAgKVxyXG4gICAgLy8gVE9ETzog0L/QvtC00YPQvNCw0YLRjCDQviDRgdC+0YXRgNCw0L3QtdC90LjQuCDQtNCw0L3QvdGL0YUgKNC90LAg0LHRg9C00YPRidC10LUsINC/0YDQuNC80LXRgCDQutC+0LQg0L3QuNC20LUpXHJcbiAgICAvKlxyXG4gICAgY29uc3QgbmF2dnkgPSBuZXcgTmF2dnkodGhpcywgdGhpcy5CWFJlc3RVc2VyTWFwKVxyXG4gICAgcmV0dXJuIG5hdnZ5LnNpbXBsZVdpdGhBcmcoXHJcbiAgICAgIHRoaXMuc2VsZixcclxuICAgICAgdXBkYXRlLFxyXG4gICAgICB0aGlzLkJYUmVzdFVzZXJNYXAuY3VycmVudFxyXG4gICAgKVxyXG4gICAgICovXHJcblxyXG4gIH1cclxuXHJcbiAgLypcclxuICB1cGRhdGUodXNlcjogaUJYUmVzdFVzZXIsIGZpZWxkVXBkYXRlOiBzdHJpbmdbXSkge1xyXG5cclxuICAgICAgaWYgKGZpZWxkVXBkYXRlICYmIGZpZWxkVXBkYXRlLmxlbmd0aCkge1xyXG4gICAgICBsZXQgc2VuZERhdGE6IGFueSA9IHtcclxuICAgICAgICBJRDogdXNlci5JRCxcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB1c2VyQlggPSB0aGlzLkJYUmVzdFVzZXJNYXAuQlh0b0h0dHAodXNlcilcclxuICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZFVwZGF0ZSkge1xyXG4gICAgICAgIGlmICh1c2VyQlhbZmllbGRdKSB7XHJcbiAgICAgICAgICBzZW5kRGF0YVtmaWVsZF0gPSB1c2VyQlhbZmllbGRdXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdPbmUgc2VudCBmaWVsZCBpcyBlbXB0eScpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VXNlckh0dHBbXT4oXHJcbiAgICAgICAgdGhpcy51cmwudXBkYXRlLFxyXG4gICAgICAgIHNlbmREYXRhXHJcbiAgICAgIClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdBbGwgc2VudCBmaWVsZCBmb3IgZWRpdCBpcyBlbXB0eScpXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoXHJcbiAgICAgIHRoaXMuQlhSZXN0VXNlci51cGRhdGUodXNlciwgZmllbGRVcGRhdGUpLFxyXG4gICAgICAn0J3QtSDRg9C00LDQu9C+0YHRjCDQvtCx0L3QvtCy0LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDRgSBJRCcgKyB1c2VyLklEXHJcbiAgICApXHJcbiAgfVxyXG4gICovXHJcbiAgc2VhcmNoKHBhcmFtczogaUJYUmVzdFBhcmFtVXNlclNlYXJjaCkge1xyXG4gICAgaWYgKHR5cGVvZiBwYXJhbXMuQUNUSVZFICE9PSAnYm9vbGVhbicpIHtcclxuICAgICAgcGFyYW1zLkFDVElWRSA9IHRydWVcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LlBhZ05hdihcclxuICAgICAgdGhpcy5CWFJlc3RVc2VyLnNlYXJjaCxcclxuICAgICAgcGFyYW1zLFxyXG4gICAgICB0aGlzLkJYUmVzdFVzZXJNYXAuZ2V0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBhY2Nlc3MocGFyYW1zOiBzdHJpbmdbXSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlV2l0aEFyZyhcclxuICAgICAgdGhpcy5CWFJlc3RVc2VyLmFjY2VzcyxcclxuICAgICAgcGFyYW1zLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZmllbGRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKHRoaXMuQlhSZXN0VXNlci5maWVsZHMpXHJcbiAgfVxyXG5cclxuICAvLyBnZXRBbGwocGFyYW1zOiBpQlhHZXRQYXJhbSA9IHt9KTogT2JzZXJ2YWJsZTxpQlhSZXN0VXNlciBbXSB8IHVuZGVmaW5lZD4ge1xyXG4gIC8vICAgaWYgKCFPYmplY3Qua2V5cyhwYXJhbXMpLmxlbmd0aCkge1xyXG4gIC8vICAgICBwYXJhbXMgPSBjbG9uZSh0aGlzLmRlZi5wYXJhbXMpXHJcbiAgLy8gICB9XHJcbiAgLy9cclxuICAvLyAgIGNvbnN0IHNhdmVBbGxVc2VyID0gY29tcGFyZShwYXJhbXMsIHRoaXMuZGVmLnBhcmFtcylcclxuICAvLyAgIHJldHVybiB0aGlzLnVzZXIkLnBpcGUoXHJcbiAgLy8gICAgIHRha2UoMSksXHJcbiAgLy8gICAgIG1lcmdlTWFwKHYgPT4ge1xyXG4gIC8vICAgICAgIGlmICh2LmxvYWQuYWxsKSB7XHJcbiAgLy8gICAgICAgICBpZiAoY29tcGFyZSh0aGlzLmRlZi5wYXJhbXMsIHBhcmFtcykpIHtcclxuICAvLyAgICAgICAgICAgcmV0dXJuIG9mKGNsb25lKHYuZGF0YSkpXHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgfVxyXG4gIC8vXHJcbiAgLy8gICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kQXJyYXkocGFyYW1zKS5waXBlKFxyXG4gIC8vICAgICAgICAgdGFrZSgxKSxcclxuICAvLyAgICAgICAgIG1hcCh2ID0+IHtcclxuICAvLyAgICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcclxuICAvLyAgICAgICAgICAgICBsZXQgY2wgPSBjbG9uZSh2LnJlc3VsdClcclxuICAvLyAgICAgICAgICAgICByZXR1cm4gdGhpcy5zYXZlQXJyVXNlcihjbClcclxuICAvLyAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgLy8gICAgICAgICB9KSxcclxuICAvLyAgICAgICApXHJcbiAgLy8gICAgIH0pLFxyXG4gIC8vICAgICB0YXAodiA9PiB7XHJcbiAgLy8gICAgICAgaWYgKHYgJiYgdi5sZW5ndGggJiYgc2F2ZUFsbFVzZXIpIHtcclxuICAvLyAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobG9hZEFsbCh7bG9hZDogdHJ1ZX0pKVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgICBwYXJhbXMuc3RhcnQgPSB0aGlzLmRlZi5wYXJhbXMuc3RhcnRcclxuICAvLyAgICAgfSlcclxuICAvLyAgIClcclxuICAvLyB9XHJcblxyXG4gIC8vIHByaXZhdGUgc2F2ZUFyclVzZXIodXNlcnM6IGlCWFJlc3RVc2VySHR0cFtdKSB7XHJcbiAgLy8gICBsZXQgcmVzdWx0OiBpQlhSZXN0VXNlciBbXSA9IFtdXHJcbiAgLy8gICBmb3IgKGNvbnN0IHVzZXIgb2YgdXNlcnMpIHtcclxuICAvLyAgICAgcmVzdWx0LnB1c2godGhpcy51c2VyTWFwLkh0dHBUb0JYKHVzZXIpKVxyXG4gIC8vICAgfVxyXG4gIC8vICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzYXZlQXJyKHthcnI6IHJlc3VsdH0pKVxyXG4gIC8vXHJcbiAgLy8gICByZXR1cm4gcmVzdWx0XHJcbiAgLy8gfVxyXG5cclxuICAvLyBnZXRFbmRBcnJheShwYXJhbXM6IFVzZXJGaWx0ZXIgPSB7fSk6IE9ic2VydmFibGU8aUh0dHBBbnN3ZXJCWDxpQlhSZXN0VXNlckh0dHBbXT4gfCB1bmRlZmluZWQ+IHtcclxuICAvLyAgIHJldHVybiB0aGlzLmdldChwYXJhbXMpLnBpcGUoXHJcbiAgLy8gICAgIG1lcmdlTWFwKGl0ZW1zID0+IHtcclxuICAvLyAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMucmVzdWx0ICYmIHR5cGVvZiBpdGVtcy5yZXN1bHQgPT09ICdvYmplY3QnKSB7XHJcbiAgLy8gICAgICAgICBpZiAoaXRlbXMubmV4dCkge1xyXG4gIC8vICAgICAgICAgICBwYXJhbXMuc3RhcnQgPSBpdGVtcy5uZXh0XHJcbiAgLy8gICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZEFycmF5KHBhcmFtcykucGlwZShtYXAodkVuZCA9PiB7XHJcbiAgLy8gICAgICAgICAgICAgaWYgKHZFbmQgJiYgaXRlbXMucmVzdWx0ICYmIHZFbmQucmVzdWx0KSB7XHJcbiAgLy8gICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogWy4uLml0ZW1zLnJlc3VsdCwgLi4udkVuZC5yZXN1bHRdfVxyXG4gIC8vICAgICAgICAgICAgIH1cclxuICAvLyAgICAgICAgICAgICByZXR1cm4gKGl0ZW1zKSA/IGl0ZW1zIDogdW5kZWZpbmVkXHJcbiAgLy8gICAgICAgICAgIH0pKVxyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgcmV0dXJuIG9mKGl0ZW1zKVxyXG4gIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfSksXHJcbiAgLy8gICApXHJcbiAgLy8gfVxyXG5cclxuICBwcml2YXRlIHNldERlZlBhcmFtKHBhcmFtczogaUJYUmVzdFBhcmFtVXNlckdldCkge1xyXG4gICAgaWYoIXBhcmFtcy5GSUxURVIpIHtcclxuICAgICAgcGFyYW1zLkZJTFRFUiA9IHt9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFwYXJhbXMuaGFzT3duUHJvcGVydHkoJ0FDVElWRScpKSB7XHJcbiAgICAgIHBhcmFtcy5GSUxURVIuQUNUSVZFID0gdGhpcy5kZWYucGFyYW1zLkFDVElWRVxyXG4gICAgfVxyXG4gICAgaWYgKHBhcmFtcy5GSUxURVIuQUNUSVZFICYmIHBhcmFtcy5GSUxURVIuQUNUSVZFID09PSAyKSB7XHJcbiAgICAgIGRlbGV0ZSBwYXJhbXMuRklMVEVSLkFDVElWRVxyXG4gICAgfVxyXG4gICAgaWYgKCFwYXJhbXMuaGFzT3duUHJvcGVydHkoJ3N0YXJ0JykpIHtcclxuICAgICAgcGFyYW1zLnN0YXJ0ID0gdGhpcy5kZWYucGFyYW1zLnN0YXJ0XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHBhcmFtcy5GSUxURVIuVUZfREVQQVJUTUVOVCAmJiAhcGFyYW1zLkZJTFRFUi5VRl9ERVBBUlRNRU5ULmxlbmd0aCkge1xyXG4gICAgICBkZWxldGUgcGFyYW1zLkZJTFRFUi5VRl9ERVBBUlRNRU5UXHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuIl19