bx-rest 0.9.2 → 0.9.4

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 (58) hide show
  1. package/esm2022/map/im/recent.mjs +1 -1
  2. package/esm2022/public-api.mjs +2 -6
  3. package/esm2022/request/app.mjs +2 -3
  4. package/esm2022/request/bizproc/activity.mjs +1 -1
  5. package/esm2022/request/bizproc/event.mjs +1 -1
  6. package/esm2022/request/bizproc/robot.mjs +1 -1
  7. package/esm2022/request/bizproc/task.mjs +1 -1
  8. package/esm2022/request/bizproc/workflow/instance.mjs +1 -1
  9. package/esm2022/request/bizproc/workflow/template.mjs +1 -1
  10. package/esm2022/request/department.mjs +8 -3
  11. package/esm2022/request/disk/attachedObject.mjs +5 -3
  12. package/esm2022/request/disk/file.mjs +6 -3
  13. package/esm2022/request/disk/folder.mjs +16 -3
  14. package/esm2022/request/lists/element.mjs +6 -3
  15. package/esm2022/request/log/blogcomment.mjs +1 -1
  16. package/esm2022/request/log/blogpost.mjs +6 -3
  17. package/esm2022/request/server.mjs +5 -3
  18. package/esm2022/request/socialnetwork/api/contentview.mjs +5 -3
  19. package/esm2022/request/socialnetwork/api/livefeed/blogpost/important.mjs +5 -3
  20. package/esm2022/request/socialnetwork.mjs +1 -2
  21. package/esm2022/request/sonet_group.mjs +5 -3
  22. package/esm2022/request/task/elapseditem.mjs +9 -3
  23. package/esm2022/request/task/item/userfield.mjs +5 -3
  24. package/esm2022/request/task/planner.mjs +3 -3
  25. package/esm2022/request/tasks/task/result.mjs +7 -3
  26. package/esm2022/request/tasks/task.mjs +13 -3
  27. package/esm2022/request/user/userfield.mjs +5 -3
  28. package/esm2022/request/user.mjs +11 -3
  29. package/esm2022/request-navvy/disk/attachedObject.mjs +3 -3
  30. package/esm2022/request-navvy/socialnetwork/api/contentview.mjs +3 -3
  31. package/esm2022/request-navvy/task/commentitem.mjs +9 -3
  32. package/esm2022/request-navvy/task/operation/elapseditem.mjs +67 -37
  33. package/esm2022/services/http/HttpBX.mjs +21 -14
  34. package/esm2022/services/http/http.mjs +52 -53
  35. package/esm2022/services/http/sessionKey.mjs +152 -52
  36. package/fesm2022/bx-rest.mjs +567 -1055
  37. package/fesm2022/bx-rest.mjs.map +1 -1
  38. package/package.json +1 -1
  39. package/public-api.d.ts +1 -5
  40. package/request/department.d.ts +6 -1
  41. package/request/disk/attachedObject.d.ts +3 -1
  42. package/request/disk/file.d.ts +4 -1
  43. package/request/disk/folder.d.ts +14 -1
  44. package/request/lists/element.d.ts +4 -1
  45. package/request/log/blogpost.d.ts +4 -1
  46. package/request/server.d.ts +3 -1
  47. package/request/sonet_group.d.ts +3 -1
  48. package/request/task/elapseditem.d.ts +7 -1
  49. package/request/tasks/task/result.d.ts +5 -1
  50. package/request/tasks/task.d.ts +11 -1
  51. package/request/user/userfield.d.ts +3 -1
  52. package/request/user.d.ts +9 -1
  53. package/request-navvy/task/commentitem.d.ts +7 -1
  54. package/request-navvy/task/operation/elapseditem.d.ts +9 -10
  55. package/services/http/http.d.ts +1 -1
  56. package/services/http/sessionKey.d.ts +16 -2
  57. package/esm2022/typification/base/methods.mjs +0 -700
  58. package/typification/base/methods.d.ts +0 -6
@@ -1,8 +1,12 @@
1
1
  import { HttpBXServices } from '../../../services/http/HttpBX';
2
- import { methods } from '../../../typification/base/methods';
2
+ import { $list, $result, $task, $tasks } from '../../../consts/part-name-methods';
3
3
  export class BXRestTasksTaskResult {
4
4
  constructor() {
5
- this.url = methods.tasks.task.result;
5
+ this.url = {
6
+ list: [$tasks, $task, $result, $list],
7
+ addFromComment: [$tasks, $task, $result, 'addFromComment'],
8
+ deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'],
9
+ };
6
10
  this.http = new HttpBXServices();
7
11
  }
8
12
  deleteFromComment(commentID) {
@@ -15,4 +19,4 @@ export class BXRestTasksTaskResult {
15
19
  return this.http.post(this.url.list, param);
16
20
  }
17
21
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvcmVxdWVzdC90YXNrcy90YXNrL3Jlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFNOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBRTVELE1BQU0sT0FBTyxxQkFBcUI7SUFBbEM7UUFDWSxRQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQ3hCLFNBQUksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFBO0lBYTlDLENBQUM7SUFYQyxpQkFBaUIsQ0FBQyxTQUFpQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQTtJQUNqRixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQXFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTZCLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ25GLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBc0M7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBK0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDM0UsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEJYU2VydmljZXMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odHRwL0h0dHBCWCdcclxuaW1wb3J0IHtcclxuICBpQlhQYXJhbVJlc3RUYXNrc1Rhc2tSZXN1bHRBZGQsXHJcbiAgaUJYUmVzdFRhc2tzVGFza1Jlc3VsdEh0dHBcclxufSBmcm9tICcuLi8uLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL3Jlc3VsdC9yZXN1bHQnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVRhc2tzVGFza1Jlc3VsdExpc3QgfSBmcm9tICcuLi8uLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy9yZXN1bHQvbGlzdCdcclxuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJy4uLy4uLy4uL3R5cGlmaWNhdGlvbi9iYXNlL21ldGhvZHMnXHJcblxyXG5leHBvcnQgY2xhc3MgQlhSZXN0VGFza3NUYXNrUmVzdWx0IHtcclxuICBwcm90ZWN0ZWQgdXJsID0gbWV0aG9kcy50YXNrcy50YXNrLnJlc3VsdFxyXG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IG5ldyBIdHRwQlhTZXJ2aWNlcygpXHJcblxyXG4gIGRlbGV0ZUZyb21Db21tZW50KGNvbW1lbnRJRDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy51cmwuZGVsZXRlRnJvbUNvbW1lbnQsIHtjb21tZW50SWQ6IGNvbW1lbnRJRH0pXHJcbiAgfVxyXG5cclxuICBhZGRGcm9tQ29tbWVudChwYXJhbTogaUJYUGFyYW1SZXN0VGFza3NUYXNrUmVzdWx0QWRkKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFRhc2tzVGFza1Jlc3VsdEh0dHA+KHRoaXMudXJsLmFkZEZyb21Db21tZW50LCBwYXJhbSlcclxuICB9XHJcblxyXG4gIGxpc3QocGFyYW06IGlCWFJlc3RQYXJhbVRhc2tzVGFza1Jlc3VsdExpc3QpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VGFza3NUYXNrUmVzdWx0SHR0cFtdPih0aGlzLnVybC5saXN0LCBwYXJhbSlcclxuICB9XHJcbn1cclxuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvcmVxdWVzdC90YXNrcy90YXNrL3Jlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFNOUQsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBRWpGLE1BQU0sT0FBTyxxQkFBcUI7SUFBbEM7UUFDWSxRQUFHLEdBQUc7WUFDZCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUM7WUFDckMsY0FBYyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztTQUNqRSxDQUFBO1FBQ2dCLFNBQUksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFBO0lBYTlDLENBQUM7SUFYQyxpQkFBaUIsQ0FBQyxTQUFpQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQTtJQUNqRixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQXFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTZCLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ25GLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBc0M7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBK0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDM0UsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEJYU2VydmljZXMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odHRwL0h0dHBCWCdcclxuaW1wb3J0IHtcclxuICBpQlhQYXJhbVJlc3RUYXNrc1Rhc2tSZXN1bHRBZGQsXHJcbiAgaUJYUmVzdFRhc2tzVGFza1Jlc3VsdEh0dHBcclxufSBmcm9tICcuLi8uLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL3Jlc3VsdC9yZXN1bHQnXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UYXNrc1Rhc2tSZXN1bHRMaXN0IH0gZnJvbSAnLi4vLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvcmVzdWx0L2xpc3QnXG5pbXBvcnQgeyAkbGlzdCwgJHJlc3VsdCwgJHRhc2ssICR0YXNrcyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0cy9wYXJ0LW5hbWUtbWV0aG9kcydcblxuZXhwb3J0IGNsYXNzIEJYUmVzdFRhc2tzVGFza1Jlc3VsdCB7XG4gIHByb3RlY3RlZCB1cmwgPSB7XG4gICAgbGlzdDogWyR0YXNrcywgJHRhc2ssICRyZXN1bHQsICRsaXN0XSxcbiAgICBhZGRGcm9tQ29tbWVudDogWyR0YXNrcywgJHRhc2ssICRyZXN1bHQsICdhZGRGcm9tQ29tbWVudCddLFxuICAgIGRlbGV0ZUZyb21Db21tZW50OiBbJHRhc2tzLCAkdGFzaywgJHJlc3VsdCwgJ2RlbGV0ZUZyb21Db21tZW50J10sXG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gbmV3IEh0dHBCWFNlcnZpY2VzKClcblxyXG4gIGRlbGV0ZUZyb21Db21tZW50KGNvbW1lbnRJRDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy51cmwuZGVsZXRlRnJvbUNvbW1lbnQsIHtjb21tZW50SWQ6IGNvbW1lbnRJRH0pXHJcbiAgfVxyXG5cclxuICBhZGRGcm9tQ29tbWVudChwYXJhbTogaUJYUGFyYW1SZXN0VGFza3NUYXNrUmVzdWx0QWRkKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFRhc2tzVGFza1Jlc3VsdEh0dHA+KHRoaXMudXJsLmFkZEZyb21Db21tZW50LCBwYXJhbSlcclxuICB9XHJcblxyXG4gIGxpc3QocGFyYW06IGlCWFJlc3RQYXJhbVRhc2tzVGFza1Jlc3VsdExpc3QpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VGFza3NUYXNrUmVzdWx0SHR0cFtdPih0aGlzLnVybC5saXN0LCBwYXJhbSlcclxuICB9XHJcbn1cclxuIl19
@@ -1,9 +1,19 @@
1
1
  import { HttpBXServices } from '../../services/http/HttpBX';
2
2
  import { BXRestTasksTaskResult } from './task/result';
3
- import { methods } from '../../typification/base/methods';
3
+ import { $add, $approve, $complete, $defer, $get, $getaccess, $getFields, $list, $task, $tasks, $update } from '../../consts/part-name-methods';
4
4
  export class BXRestTasksTask {
5
5
  constructor() {
6
- this.url = methods.tasks.task;
6
+ this.url = {
7
+ add: [$tasks, $task, $add],
8
+ approve: [$tasks, $task, $approve],
9
+ complete: [$tasks, $task, $complete],
10
+ defer: [$tasks, $task, $defer],
11
+ get: [$tasks, $task, $get],
12
+ getFields: [$tasks, $task, $getFields],
13
+ getAccess: [$tasks, $task, $getaccess],
14
+ list: [$tasks, $task, $list],
15
+ update: [$tasks, $task, $update],
16
+ };
7
17
  this.result = new BXRestTasksTaskResult();
8
18
  this.http = new HttpBXServices();
9
19
  }
@@ -97,4 +107,4 @@ export class BXRestTasksTask {
97
107
  return this.http.post(this.url.getAccess, param);
98
108
  }
99
109
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdGFza3MvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFlM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBS3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUd6RCxNQUFNLE9BQU8sZUFBZTtJQUE1QjtRQUVZLFFBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQTtRQUVsQixXQUFNLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFBO1FBQ25DLFNBQUksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFBO0lBc0c5QyxDQUFDO0lBcEdDLEdBQUcsQ0FBdUMsS0FBd0M7UUFDaEYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBNkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDeEcsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFtQztRQUN6QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUEwRCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN6RyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQW9DO1FBQzNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTJELElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQzNHLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBaUM7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBd0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDckcsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFrQztRQUN2QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUF3RCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN0RyxDQUFDO0lBRUQsR0FBRyxDQUEwRSxLQUE2QztRQUN4SCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUEyQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN0RixDQUFDO0lBRUQsSUFBSSxDQUEwRSxLQUEwQztRQUN0SCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUE0QyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN4RixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUE2REU7SUFFRixTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBNEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUN0RSxDQUFDO0lBR0QsU0FBUyxDQUFDLEtBQWdDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXVCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3hFLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBCWFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC9IdHRwQlgnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVRhc2tBZGQgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2FkZCdcclxuaW1wb3J0IHtcclxuICBpQlhSZXN0VGFza3NUYXNrR2V0SHR0cCxcclxuICBpQlhSZXN0VGFza3NUYXNrR2V0SHR0cERlZmF1bHRcclxufSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2dldCdcclxuaW1wb3J0IHtcclxuICBpQlhSZXN0UGFyYW1UYXNrc0xpc3QsIGlCWFJlc3RUYXNrc1Rhc2tMaXN0SHR0cCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svbGlzdCdcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza0dldEFjY2VzcywgaUJYUmVzdFRhc2tHZXRBY2Nlc3MgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2FjY2Vzcy9nZXRhY2Nlc3MnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVRhc2tzVGFza0FwcHJvdmUsIGlCWFJlc3RUYXNrc1Rhc2tBcHByb3ZlSHR0cCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svYXBwcm92ZSdcclxuaW1wb3J0IHtcclxuICBpQlhSZXN0UGFyYW1UYXNrc1Rhc2tDb21wbGV0ZSxcclxuICBpQlhSZXN0VGFza3NUYXNrQ29tcGxldGVIdHRwXHJcbn0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9jb21wbGV0ZSdcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza3NUYXNrRGVmZXIsIGlCWFJlc3RUYXNrc1Rhc2tEZWZlckh0dHAgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2RlZmVyJ1xyXG5pbXBvcnQgeyBCWFJlc3RUYXNrc1Rhc2tSZXN1bHQgfSBmcm9tICcuL3Rhc2svcmVzdWx0J1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UYXNrc1Rhc2tHZXQgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2dldCdcclxuaW1wb3J0IHsgaUJYUmVzdFRhc2tzVGFza0dldEZpZWxkcyB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svZ2V0RmllbGRzJ1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UYXNrc1Rhc2tVcGRhdGUgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL3VwZGF0ZSdcclxuaW1wb3J0IHsgaUJYUmVzdFRhc2tGaWVsZHNOYW1lIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvYmFzZS9maWVsZHMtbmFtZSdcclxuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9iYXNlL21ldGhvZHMnXHJcbmltcG9ydCB7IGlCWFJlc3RUYXNrc1Rhc2tCYXNlQW5zd2VyIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9iYXNlJ1xyXG5cclxuZXhwb3J0IGNsYXNzIEJYUmVzdFRhc2tzVGFzayB7XHJcblxyXG4gIHByb3RlY3RlZCB1cmwgPSBtZXRob2RzLnRhc2tzLnRhc2tcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IHJlc3VsdCA9IG5ldyBCWFJlc3RUYXNrc1Rhc2tSZXN1bHQoKVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IG5ldyBIdHRwQlhTZXJ2aWNlcygpXHJcblxyXG4gIGFkZDxDdXN0b21GaWVsZHMgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3Q+KHBhcmFtOiBpQlhSZXN0UGFyYW1UYXNrQWRkPEN1c3RvbUZpZWxkcz4pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VGFza3NUYXNrQmFzZUFuc3dlcjxpQlhSZXN0VGFza3NUYXNrR2V0SHR0cERlZmF1bHQ+Pih0aGlzLnVybC5hZGQsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgYXBwcm92ZShwYXJhbTogaUJYUmVzdFBhcmFtVGFza3NUYXNrQXBwcm92ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RUYXNrc1Rhc2tCYXNlQW5zd2VyPGlCWFJlc3RUYXNrc1Rhc2tBcHByb3ZlSHR0cD4+KHRoaXMudXJsLmFwcHJvdmUsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgY29tcGxldGUocGFyYW06IGlCWFJlc3RQYXJhbVRhc2tzVGFza0NvbXBsZXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFRhc2tzVGFza0Jhc2VBbnN3ZXI8aUJYUmVzdFRhc2tzVGFza0NvbXBsZXRlSHR0cD4+KHRoaXMudXJsLmNvbXBsZXRlLCBwYXJhbSlcclxuICB9XHJcblxyXG4gIGRlZmVyKHBhcmFtOiBpQlhSZXN0UGFyYW1UYXNrc1Rhc2tEZWZlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RUYXNrc1Rhc2tCYXNlQW5zd2VyPGlCWFJlc3RUYXNrc1Rhc2tEZWZlckh0dHA+Pih0aGlzLnVybC5kZWZlciwgcGFyYW0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGUocGFyYW06IGlCWFJlc3RQYXJhbVRhc2tzVGFza1VwZGF0ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RUYXNrc1Rhc2tCYXNlQW5zd2VyPGlCWFJlc3RUYXNrc1Rhc2tEZWZlckh0dHA+Pih0aGlzLnVybC51cGRhdGUsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgZ2V0PFMgZXh0ZW5kcyBpQlhSZXN0VGFza0ZpZWxkc05hbWVbXSwgQ3VzdG9tRmllbGRzIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0PihwYXJhbTogaUJYUmVzdFBhcmFtVGFza3NUYXNrR2V0PEN1c3RvbUZpZWxkcz4pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VGFza3NUYXNrR2V0SHR0cDxTLCBDdXN0b21GaWVsZHM+Pih0aGlzLnVybC5nZXQsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgbGlzdDxTIGV4dGVuZHMgaUJYUmVzdFRhc2tGaWVsZHNOYW1lW10sIEN1c3RvbUZpZWxkcyBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4ocGFyYW06IGlCWFJlc3RQYXJhbVRhc2tzTGlzdDxDdXN0b21GaWVsZHM+KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFRhc2tzVGFza0xpc3RIdHRwPFMsIEN1c3RvbUZpZWxkcz4+KHRoaXMudXJsLmxpc3QsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgLypcclxuICBsaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCA9IHt9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0KHJlcXVlc3RBcnJheSkucGlwZShcclxuICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSksXHJcbiAgICAgIG1hcCh2ID0+ICh2ICYmIHYudGFza3MpID8gdi50YXNrcyA6IFtdKVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgbGlzdEFsbChyZXF1ZXN0QXJyYXk6IFJlcXVlc3RBcGlUYXNrTGlzdEJYID0ge30sIGNhY2hlID0gZmFsc2UpOiBPYnNlcnZhYmxlPFRhc2tCWFtdPiB7XHJcbiAgICBpZiAoIXJlcXVlc3RBcnJheS5zZWxlY3QpIHtcclxuICAgICAgcmVxdWVzdEFycmF5LnNlbGVjdCA9IHRoaXMuZGVmLnNlbGVjdFxyXG4gICAgICBpZiAoY2FjaGUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZVRhc2skLnBpcGUoXHJcbiAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgbWVyZ2VNYXAodGFza3MgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGFza3MgJiYgdGFza3MuZGF0YS5odHRwLmxpc3QgJiYgcmVxdWVzdEFycmF5LmZpbHRlciAmJiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaWRzID0gKHR5cGVvZiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEID09PSAnbnVtYmVyJykgPyBbcmVxdWVzdEFycmF5LmZpbHRlci5JRF0gOiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEXHJcbiAgICAgICAgICAgICAgbGV0IGZpbHRlciA9IHRhc2tzLmRhdGEuaHR0cC5saXN0LmZpbHRlcihpID0+IChpLmlkKSA/IGlkcy5pbmNsdWRlcyhpLmlkKSA6IGZhbHNlKVxyXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSBpZHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmlsdGVyKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheSlcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpXHJcbiAgfVxyXG5cclxuICBnZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCk6IE9ic2VydmFibGU8VGFza0JYW10+IHtcclxuICAgIHJldHVybiB0aGlzLmxpc3QocmVxdWVzdEFycmF5KS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCgoaXRlbXM6IEFuc3dlckFwaVRhc2tCWCB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGVJbnB1dDxhbnk+IHwgT2JzZXJ2YWJsZTxBbnN3ZXJBcGlUYXNrQlhbXT4gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5yZXN1bHQgJiYgdHlwZW9mIGl0ZW1zLnJlc3VsdC50YXNrcyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1zJCA9IG9mKGl0ZW1zLnJlc3VsdC50YXNrcylcclxuICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XHJcbiAgICAgICAgICAgIHRoaXMubm93TG9hZCQubmV4dCh7XHJcbiAgICAgICAgICAgICAgdG90YWw6IChpdGVtcy50b3RhbCkgPyBpdGVtcy50b3RhbCA6IDAsXHJcbiAgICAgICAgICAgICAgbmV4dDogaXRlbXMubmV4dFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICByZXF1ZXN0QXJyYXkuc3RhcnQgPSBpdGVtcy5uZXh0XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpLnBpcGUoXHJcbiAgICAgICAgICAgICAgbWFwKHZFbmQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZFbmQgJiYgaXRlbXMucmVzdWx0LnRhc2tzKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uaXRlbXMucmVzdWx0LnRhc2tzLCAuLi52RW5kXVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChpdGVtcy5yZXN1bHQudGFza3MpID8gaXRlbXMucmVzdWx0LnRhc2tzIDogW11cclxuICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMubm93TG9hZCQubmV4dCh7XHJcbiAgICAgICAgICAgIHRvdGFsOiAwLFxyXG4gICAgICAgICAgICBuZXh0OiAwXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zJFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YoW10pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuICAqL1xyXG5cclxuICBnZXRGaWVsZHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFRhc2tzVGFza0dldEZpZWxkcz4odGhpcy51cmwuZ2V0RmllbGRzKVxyXG4gIH1cclxuXHJcblxyXG4gIGdldEFjY2VzcyhwYXJhbTogaUJYUmVzdFBhcmFtVGFza0dldEFjY2Vzcykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RUYXNrR2V0QWNjZXNzPih0aGlzLnVybC5nZXRBY2Nlc3MsIHBhcmFtKVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbiJdfQ==
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdGFza3MvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFlM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBTXJELE9BQU8sRUFDTCxJQUFJLEVBQ0osUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sSUFBSSxFQUNKLFVBQVUsRUFDVixVQUFVLEVBQ1YsS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sT0FBTyxFQUNSLE1BQU0sZ0NBQWdDLENBQUE7QUFFdkMsTUFBTSxPQUFPLGVBQWU7SUFBNUI7UUFFWSxRQUFHLEdBQUc7WUFDZCxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQztZQUMxQixPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQztZQUNsQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQztZQUNwQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQztZQUM5QixHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQztZQUMxQixTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQztZQUN0QyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQztZQUN0QyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUM1QixNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQztTQUNqQyxDQUFBO1FBRWUsV0FBTSxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQTtRQUNuQyxTQUFJLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQTtJQXNHOUMsQ0FBQztJQXBHQyxHQUFHLENBQXVDLEtBQXdDO1FBQ2hGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTZELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3hHLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBbUM7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBMEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDekcsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFvQztRQUMzQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUEyRCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUMzRyxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQWlDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXdELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3JHLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBa0M7UUFDdkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBd0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDdEcsQ0FBQztJQUVELEdBQUcsQ0FBMEUsS0FBNkM7UUFDeEgsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBMkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDdEYsQ0FBQztJQUVELElBQUksQ0FBMEUsS0FBMEM7UUFDdEgsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBNEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDeEYsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BNkRFO0lBRUYsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTRCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDdEUsQ0FBQztJQUdELFNBQVMsQ0FBQyxLQUFnQztRQUN4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUF1QixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN4RSxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQlhTZXJ2aWNlcyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAvSHR0cEJYJ1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UYXNrQWRkIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9hZGQnXHJcbmltcG9ydCB7XHJcbiAgaUJYUmVzdFRhc2tzVGFza0dldEh0dHAsXHJcbiAgaUJYUmVzdFRhc2tzVGFza0dldEh0dHBEZWZhdWx0XHJcbn0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9nZXQnXHJcbmltcG9ydCB7XHJcbiAgaUJYUmVzdFBhcmFtVGFza3NMaXN0LCBpQlhSZXN0VGFza3NUYXNrTGlzdEh0dHAgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2xpc3QnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVRhc2tHZXRBY2Nlc3MsIGlCWFJlc3RUYXNrR2V0QWNjZXNzIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9hY2Nlc3MvZ2V0YWNjZXNzJ1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UYXNrc1Rhc2tBcHByb3ZlLCBpQlhSZXN0VGFza3NUYXNrQXBwcm92ZUh0dHAgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2FwcHJvdmUnXHJcbmltcG9ydCB7XHJcbiAgaUJYUmVzdFBhcmFtVGFza3NUYXNrQ29tcGxldGUsXHJcbiAgaUJYUmVzdFRhc2tzVGFza0NvbXBsZXRlSHR0cFxyXG59IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svY29tcGxldGUnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVRhc2tzVGFza0RlZmVyLCBpQlhSZXN0VGFza3NUYXNrRGVmZXJIdHRwIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9kZWZlcidcclxuaW1wb3J0IHsgQlhSZXN0VGFza3NUYXNrUmVzdWx0IH0gZnJvbSAnLi90YXNrL3Jlc3VsdCdcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza3NUYXNrR2V0IH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9nZXQnXHJcbmltcG9ydCB7IGlCWFJlc3RUYXNrc1Rhc2tHZXRGaWVsZHMgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2dldEZpZWxkcydcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza3NUYXNrVXBkYXRlIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay91cGRhdGUnXG5pbXBvcnQgeyBpQlhSZXN0VGFza0ZpZWxkc05hbWUgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy9iYXNlL2ZpZWxkcy1uYW1lJ1xuaW1wb3J0IHsgaUJYUmVzdFRhc2tzVGFza0Jhc2VBbnN3ZXIgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2Jhc2UnXG5pbXBvcnQge1xuICAkYWRkLFxuICAkYXBwcm92ZSxcbiAgJGNvbXBsZXRlLFxuICAkZGVmZXIsXG4gICRnZXQsXG4gICRnZXRhY2Nlc3MsXG4gICRnZXRGaWVsZHMsXG4gICRsaXN0LFxuICAkdGFzayxcbiAgJHRhc2tzLFxuICAkdXBkYXRlXG59IGZyb20gJy4uLy4uL2NvbnN0cy9wYXJ0LW5hbWUtbWV0aG9kcydcblxyXG5leHBvcnQgY2xhc3MgQlhSZXN0VGFza3NUYXNrIHtcclxuXHJcbiAgcHJvdGVjdGVkIHVybCA9IHtcbiAgICBhZGQ6IFskdGFza3MsICR0YXNrLCAkYWRkXSxcbiAgICBhcHByb3ZlOiBbJHRhc2tzLCAkdGFzaywgJGFwcHJvdmVdLFxuICAgIGNvbXBsZXRlOiBbJHRhc2tzLCAkdGFzaywgJGNvbXBsZXRlXSxcbiAgICBkZWZlcjogWyR0YXNrcywgJHRhc2ssICRkZWZlcl0sXG4gICAgZ2V0OiBbJHRhc2tzLCAkdGFzaywgJGdldF0sXG4gICAgZ2V0RmllbGRzOiBbJHRhc2tzLCAkdGFzaywgJGdldEZpZWxkc10sXG4gICAgZ2V0QWNjZXNzOiBbJHRhc2tzLCAkdGFzaywgJGdldGFjY2Vzc10sXG4gICAgbGlzdDogWyR0YXNrcywgJHRhc2ssICRsaXN0XSxcbiAgICB1cGRhdGU6IFskdGFza3MsICR0YXNrLCAkdXBkYXRlXSxcbiAgfVxuXHJcbiAgcHVibGljIHJlYWRvbmx5IHJlc3VsdCA9IG5ldyBCWFJlc3RUYXNrc1Rhc2tSZXN1bHQoKVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IG5ldyBIdHRwQlhTZXJ2aWNlcygpXHJcblxyXG4gIGFkZDxDdXN0b21GaWVsZHMgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3Q+KHBhcmFtOiBpQlhSZXN0UGFyYW1UYXNrQWRkPEN1c3RvbUZpZWxkcz4pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VGFza3NUYXNrQmFzZUFuc3dlcjxpQlhSZXN0VGFza3NUYXNrR2V0SHR0cERlZmF1bHQ+Pih0aGlzLnVybC5hZGQsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgYXBwcm92ZShwYXJhbTogaUJYUmVzdFBhcmFtVGFza3NUYXNrQXBwcm92ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RUYXNrc1Rhc2tCYXNlQW5zd2VyPGlCWFJlc3RUYXNrc1Rhc2tBcHByb3ZlSHR0cD4+KHRoaXMudXJsLmFwcHJvdmUsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgY29tcGxldGUocGFyYW06IGlCWFJlc3RQYXJhbVRhc2tzVGFza0NvbXBsZXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFRhc2tzVGFza0Jhc2VBbnN3ZXI8aUJYUmVzdFRhc2tzVGFza0NvbXBsZXRlSHR0cD4+KHRoaXMudXJsLmNvbXBsZXRlLCBwYXJhbSlcclxuICB9XHJcblxyXG4gIGRlZmVyKHBhcmFtOiBpQlhSZXN0UGFyYW1UYXNrc1Rhc2tEZWZlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RUYXNrc1Rhc2tCYXNlQW5zd2VyPGlCWFJlc3RUYXNrc1Rhc2tEZWZlckh0dHA+Pih0aGlzLnVybC5kZWZlciwgcGFyYW0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGUocGFyYW06IGlCWFJlc3RQYXJhbVRhc2tzVGFza1VwZGF0ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RUYXNrc1Rhc2tCYXNlQW5zd2VyPGlCWFJlc3RUYXNrc1Rhc2tEZWZlckh0dHA+Pih0aGlzLnVybC51cGRhdGUsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgZ2V0PFMgZXh0ZW5kcyBpQlhSZXN0VGFza0ZpZWxkc05hbWVbXSwgQ3VzdG9tRmllbGRzIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0PihwYXJhbTogaUJYUmVzdFBhcmFtVGFza3NUYXNrR2V0PEN1c3RvbUZpZWxkcz4pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VGFza3NUYXNrR2V0SHR0cDxTLCBDdXN0b21GaWVsZHM+Pih0aGlzLnVybC5nZXQsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgbGlzdDxTIGV4dGVuZHMgaUJYUmVzdFRhc2tGaWVsZHNOYW1lW10sIEN1c3RvbUZpZWxkcyBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4ocGFyYW06IGlCWFJlc3RQYXJhbVRhc2tzTGlzdDxDdXN0b21GaWVsZHM+KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFRhc2tzVGFza0xpc3RIdHRwPFMsIEN1c3RvbUZpZWxkcz4+KHRoaXMudXJsLmxpc3QsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgLypcclxuICBsaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCA9IHt9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0KHJlcXVlc3RBcnJheSkucGlwZShcclxuICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSksXHJcbiAgICAgIG1hcCh2ID0+ICh2ICYmIHYudGFza3MpID8gdi50YXNrcyA6IFtdKVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgbGlzdEFsbChyZXF1ZXN0QXJyYXk6IFJlcXVlc3RBcGlUYXNrTGlzdEJYID0ge30sIGNhY2hlID0gZmFsc2UpOiBPYnNlcnZhYmxlPFRhc2tCWFtdPiB7XHJcbiAgICBpZiAoIXJlcXVlc3RBcnJheS5zZWxlY3QpIHtcclxuICAgICAgcmVxdWVzdEFycmF5LnNlbGVjdCA9IHRoaXMuZGVmLnNlbGVjdFxyXG4gICAgICBpZiAoY2FjaGUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZVRhc2skLnBpcGUoXHJcbiAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgbWVyZ2VNYXAodGFza3MgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGFza3MgJiYgdGFza3MuZGF0YS5odHRwLmxpc3QgJiYgcmVxdWVzdEFycmF5LmZpbHRlciAmJiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaWRzID0gKHR5cGVvZiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEID09PSAnbnVtYmVyJykgPyBbcmVxdWVzdEFycmF5LmZpbHRlci5JRF0gOiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEXHJcbiAgICAgICAgICAgICAgbGV0IGZpbHRlciA9IHRhc2tzLmRhdGEuaHR0cC5saXN0LmZpbHRlcihpID0+IChpLmlkKSA/IGlkcy5pbmNsdWRlcyhpLmlkKSA6IGZhbHNlKVxyXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSBpZHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmlsdGVyKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheSlcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpXHJcbiAgfVxyXG5cclxuICBnZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCk6IE9ic2VydmFibGU8VGFza0JYW10+IHtcclxuICAgIHJldHVybiB0aGlzLmxpc3QocmVxdWVzdEFycmF5KS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCgoaXRlbXM6IEFuc3dlckFwaVRhc2tCWCB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGVJbnB1dDxhbnk+IHwgT2JzZXJ2YWJsZTxBbnN3ZXJBcGlUYXNrQlhbXT4gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5yZXN1bHQgJiYgdHlwZW9mIGl0ZW1zLnJlc3VsdC50YXNrcyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1zJCA9IG9mKGl0ZW1zLnJlc3VsdC50YXNrcylcclxuICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XHJcbiAgICAgICAgICAgIHRoaXMubm93TG9hZCQubmV4dCh7XHJcbiAgICAgICAgICAgICAgdG90YWw6IChpdGVtcy50b3RhbCkgPyBpdGVtcy50b3RhbCA6IDAsXHJcbiAgICAgICAgICAgICAgbmV4dDogaXRlbXMubmV4dFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICByZXF1ZXN0QXJyYXkuc3RhcnQgPSBpdGVtcy5uZXh0XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpLnBpcGUoXHJcbiAgICAgICAgICAgICAgbWFwKHZFbmQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZFbmQgJiYgaXRlbXMucmVzdWx0LnRhc2tzKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uaXRlbXMucmVzdWx0LnRhc2tzLCAuLi52RW5kXVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChpdGVtcy5yZXN1bHQudGFza3MpID8gaXRlbXMucmVzdWx0LnRhc2tzIDogW11cclxuICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMubm93TG9hZCQubmV4dCh7XHJcbiAgICAgICAgICAgIHRvdGFsOiAwLFxyXG4gICAgICAgICAgICBuZXh0OiAwXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zJFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YoW10pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuICAqL1xyXG5cclxuICBnZXRGaWVsZHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFRhc2tzVGFza0dldEZpZWxkcz4odGhpcy51cmwuZ2V0RmllbGRzKVxyXG4gIH1cclxuXHJcblxyXG4gIGdldEFjY2VzcyhwYXJhbTogaUJYUmVzdFBhcmFtVGFza0dldEFjY2Vzcykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RUYXNrR2V0QWNjZXNzPih0aGlzLnVybC5nZXRBY2Nlc3MsIHBhcmFtKVxyXG4gIH1cclxuXHJcbn1cclxuXHJcbiJdfQ==
@@ -1,12 +1,14 @@
1
1
  import { HttpBXServices } from '../../services/http/HttpBX';
2
- import { methods } from '../../typification/base/methods';
2
+ import { $list, $user, $userfield } from '../../consts/part-name-methods';
3
3
  export class BXRestUserUserfield {
4
4
  constructor() {
5
- this.url = methods.user.userfield;
5
+ this.url = {
6
+ list: [$user, $userfield, $list],
7
+ };
6
8
  this.http = new HttpBXServices();
7
9
  }
8
10
  list() {
9
11
  return this.http.post(this.url.list);
10
12
  }
11
13
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcmZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvcmVxdWVzdC91c2VyL3VzZXJmaWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBRXpELE1BQU0sT0FBTyxtQkFBbUI7SUFBaEM7UUFDWSxRQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUE7UUFDckIsU0FBSSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUE7SUFLOUMsQ0FBQztJQUhDLElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUF5QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzlELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBCWFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC9IdHRwQlgnXHJcbmltcG9ydCB7IGlCWFJlc3RVc2VyVXNlckZpZWxkIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdXNlci91c2VyZmllbGQvbGlzdCdcclxuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9iYXNlL21ldGhvZHMnXHJcblxyXG5leHBvcnQgY2xhc3MgQlhSZXN0VXNlclVzZXJmaWVsZCB7XHJcbiAgcHJvdGVjdGVkIHVybCA9IG1ldGhvZHMudXNlci51c2VyZmllbGRcclxuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBuZXcgSHR0cEJYU2VydmljZXMoKVxyXG5cclxuICBsaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RVc2VyVXNlckZpZWxkW10+KHRoaXMudXJsLmxpc3QpXHJcbiAgfVxyXG59XHJcbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcmZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvcmVxdWVzdC91c2VyL3VzZXJmaWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFM0QsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFFekUsTUFBTSxPQUFPLG1CQUFtQjtJQUFoQztRQUNZLFFBQUcsR0FBRztZQUNkLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDO1NBQ2pDLENBQUE7UUFDZ0IsU0FBSSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUE7SUFLOUMsQ0FBQztJQUhDLElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUF5QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzlELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBCWFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC9IdHRwQlgnXG5pbXBvcnQgeyBpQlhSZXN0VXNlclVzZXJGaWVsZCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvdXNlcmZpZWxkL2xpc3QnXG5pbXBvcnQgeyAkbGlzdCwgJHVzZXIsICR1c2VyZmllbGQgfSBmcm9tICcuLi8uLi9jb25zdHMvcGFydC1uYW1lLW1ldGhvZHMnXG5cbmV4cG9ydCBjbGFzcyBCWFJlc3RVc2VyVXNlcmZpZWxkIHtcbiAgcHJvdGVjdGVkIHVybCA9IHtcbiAgICBsaXN0OiBbJHVzZXIsICR1c2VyZmllbGQsICRsaXN0XSxcbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBuZXcgSHR0cEJYU2VydmljZXMoKVxuXHJcbiAgbGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VXNlclVzZXJGaWVsZFtdPih0aGlzLnVybC5saXN0KVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,11 +1,19 @@
1
1
  import { HttpBXServices } from '../services/http/HttpBX';
2
2
  import { BXRestUserUserfield } from './user/userfield';
3
- import { methods } from '../typification/base/methods';
3
+ import { $get, $search, $update, $user } from '../consts/part-name-methods';
4
4
  export class BXRestUser {
5
5
  constructor() {
6
6
  this.http = new HttpBXServices();
7
7
  this.userfield = new BXRestUserUserfield();
8
- this.url = methods.user;
8
+ this.url = {
9
+ admin: [$user, 'admin'],
10
+ get: [$user, $get],
11
+ current: [$user, 'current'],
12
+ update: [$user, $update],
13
+ search: [$user, $search],
14
+ access: [$user, 'access'],
15
+ fields: [$user, 'fields'],
16
+ };
9
17
  }
10
18
  admin() {
11
19
  return this.http.post(this.url.admin);
@@ -29,4 +37,4 @@ export class BXRestUser {
29
37
  return this.http.post(this.url.fields);
30
38
  }
31
39
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFHeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBRXRELE1BQU0sT0FBTyxVQUFVO0lBQXZCO1FBQ21CLFNBQUksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFBO1FBQzVCLGNBQVMsR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUE7UUFFM0MsUUFBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUE7SUFvQzlCLENBQUM7SUFsQ0MsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQVUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBRUQsR0FBRyxDQUFDLFNBQThCLEVBQUU7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FFbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQ1osTUFBTSxDQUNQLENBQUE7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWtCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzlELENBQUM7SUFFRCxNQUFNLENBQUMsSUFBeUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQ2YsSUFBSSxDQUNMLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQThCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQW9CLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ25FLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBVSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO0lBQ25FLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBdUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM5RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpQlhSZXN0UGFyYW1Vc2VyR2V0IH0gZnJvbSAnLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdXNlcidcclxuaW1wb3J0IHsgSHR0cEJYU2VydmljZXMgfSBmcm9tICcuLi9zZXJ2aWNlcy9odHRwL0h0dHBCWCdcclxuaW1wb3J0IHsgaUJYUmVzdFVzZXJIdHRwLCBpQlhSZXN0VXNlckh0dHBGaWVsZCB9IGZyb20gJy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXInXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVzZXJTZWFyY2ggfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyJ1xyXG5pbXBvcnQgeyBCWFJlc3RVc2VyVXNlcmZpZWxkIH0gZnJvbSAnLi91c2VyL3VzZXJmaWVsZCdcclxuaW1wb3J0IHsgbWV0aG9kcyB9IGZyb20gJy4uL3R5cGlmaWNhdGlvbi9iYXNlL21ldGhvZHMnXHJcblxyXG5leHBvcnQgY2xhc3MgQlhSZXN0VXNlciB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gbmV3IEh0dHBCWFNlcnZpY2VzKClcclxuICBwdWJsaWMgcmVhZG9ubHkgdXNlcmZpZWxkID0gbmV3IEJYUmVzdFVzZXJVc2VyZmllbGQoKVxyXG5cclxuICBwcm90ZWN0ZWQgdXJsID0gbWV0aG9kcy51c2VyXHJcblxyXG4gIGFkbWluKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGJvb2xlYW4+KHRoaXMudXJsLmFkbWluKVxyXG4gIH1cclxuXHJcbiAgZ2V0KHBhcmFtczogaUJYUmVzdFBhcmFtVXNlckdldCA9IHt9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFVzZXJIdHRwW10+XHJcbiAgICAoXHJcbiAgICAgIHRoaXMudXJsLmdldCxcclxuICAgICAgcGFyYW1zXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBjdXJyZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RVc2VySHR0cD4odGhpcy51cmwuY3VycmVudCwge30pXHJcbiAgfVxyXG5cclxuICB1cGRhdGUodXNlcjogaUJYUmVzdFBhcmFtVXNlckdldCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RVc2VySHR0cFtdPihcclxuICAgICAgdGhpcy51cmwudXBkYXRlLFxyXG4gICAgICB1c2VyXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBzZWFyY2gocGFyYW1zOiBpQlhSZXN0UGFyYW1Vc2VyU2VhcmNoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFVzZXJIdHRwW10+KHRoaXMudXJsLnNlYXJjaCwgcGFyYW1zKVxyXG4gIH1cclxuXHJcbiAgYWNjZXNzKGFjY2Vzczogc3RyaW5nW10pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxib29sZWFuPih0aGlzLnVybC5hY2Nlc3MsIHtBQ0NFU1M6IGFjY2Vzc30pXHJcbiAgfVxyXG5cclxuICBmaWVsZHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFVzZXJIdHRwRmllbGQ+KHRoaXMudXJsLmZpZWxkcylcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFHeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDdEQsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBRTNFLE1BQU0sT0FBTyxVQUFVO0lBQXZCO1FBQ21CLFNBQUksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFBO1FBQzVCLGNBQVMsR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUE7UUFFM0MsUUFBRyxHQUFHO1lBQ2QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUN2QixHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7WUFDM0IsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUN4QixNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7WUFDekIsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQztTQUMxQixDQUFBO0lBb0NILENBQUM7SUFsQ0MsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQVUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBRUQsR0FBRyxDQUFDLFNBQThCLEVBQUU7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FFbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQ1osTUFBTSxDQUNQLENBQUE7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWtCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzlELENBQUM7SUFFRCxNQUFNLENBQUMsSUFBeUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQ2YsSUFBSSxDQUNMLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQThCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQW9CLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ25FLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBVSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO0lBQ25FLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBdUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM5RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpQlhSZXN0UGFyYW1Vc2VyR2V0IH0gZnJvbSAnLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdXNlcidcclxuaW1wb3J0IHsgSHR0cEJYU2VydmljZXMgfSBmcm9tICcuLi9zZXJ2aWNlcy9odHRwL0h0dHBCWCdcclxuaW1wb3J0IHsgaUJYUmVzdFVzZXJIdHRwLCBpQlhSZXN0VXNlckh0dHBGaWVsZCB9IGZyb20gJy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXInXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1Vc2VyU2VhcmNoIH0gZnJvbSAnLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdXNlcidcbmltcG9ydCB7IEJYUmVzdFVzZXJVc2VyZmllbGQgfSBmcm9tICcuL3VzZXIvdXNlcmZpZWxkJ1xuaW1wb3J0IHsgJGdldCwgJHNlYXJjaCwgJHVwZGF0ZSwgJHVzZXIgfSBmcm9tICcuLi9jb25zdHMvcGFydC1uYW1lLW1ldGhvZHMnXG5cclxuZXhwb3J0IGNsYXNzIEJYUmVzdFVzZXIge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IG5ldyBIdHRwQlhTZXJ2aWNlcygpXHJcbiAgcHVibGljIHJlYWRvbmx5IHVzZXJmaWVsZCA9IG5ldyBCWFJlc3RVc2VyVXNlcmZpZWxkKClcclxuXHJcbiAgcHJvdGVjdGVkIHVybCA9IHtcbiAgICBhZG1pbjogWyR1c2VyLCAnYWRtaW4nXSxcbiAgICBnZXQ6IFskdXNlciwgJGdldF0sXG4gICAgY3VycmVudDogWyR1c2VyLCAnY3VycmVudCddLFxuICAgIHVwZGF0ZTogWyR1c2VyLCAkdXBkYXRlXSxcbiAgICBzZWFyY2g6IFskdXNlciwgJHNlYXJjaF0sXG4gICAgYWNjZXNzOiBbJHVzZXIsICdhY2Nlc3MnXSxcbiAgICBmaWVsZHM6IFskdXNlciwgJ2ZpZWxkcyddLFxuICB9XG5cclxuICBhZG1pbigpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxib29sZWFuPih0aGlzLnVybC5hZG1pbilcclxuICB9XHJcblxyXG4gIGdldChwYXJhbXM6IGlCWFJlc3RQYXJhbVVzZXJHZXQgPSB7fSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RVc2VySHR0cFtdPlxyXG4gICAgKFxyXG4gICAgICB0aGlzLnVybC5nZXQsXHJcbiAgICAgIHBhcmFtc1xyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY3VycmVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VXNlckh0dHA+KHRoaXMudXJsLmN1cnJlbnQsIHt9KVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlKHVzZXI6IGlCWFJlc3RQYXJhbVVzZXJHZXQpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VXNlckh0dHBbXT4oXHJcbiAgICAgIHRoaXMudXJsLnVwZGF0ZSxcclxuICAgICAgdXNlclxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgc2VhcmNoKHBhcmFtczogaUJYUmVzdFBhcmFtVXNlclNlYXJjaCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RVc2VySHR0cFtdPih0aGlzLnVybC5zZWFyY2gsIHBhcmFtcylcclxuICB9XHJcblxyXG4gIGFjY2VzcyhhY2Nlc3M6IHN0cmluZ1tdKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Ym9vbGVhbj4odGhpcy51cmwuYWNjZXNzLCB7QUNDRVNTOiBhY2Nlc3N9KVxyXG4gIH1cclxuXHJcbiAgZmllbGRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RVc2VySHR0cEZpZWxkPih0aGlzLnVybC5maWVsZHMpXHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
@@ -1,12 +1,12 @@
1
1
  import { BXRestMapDiskAttachedObject } from '../../map/disk/attachedObject';
2
2
  import { Navvy } from '../../services/navvy';
3
- import { methods } from '../../typification/base/methods';
3
+ import { $disk, $get } from '../../consts/part-name-methods';
4
4
  export class BXRestNavvyDiskAttachedObject {
5
5
  constructor() {
6
6
  this.Navvy = new Navvy();
7
7
  }
8
8
  get(param) {
9
- return this.Navvy.simple(methods.disk.attachedObject.get, param, BXRestMapDiskAttachedObject.get);
9
+ return this.Navvy.simple([$disk, 'attachedObject', $get], param, BXRestMapDiskAttachedObject.get);
10
10
  }
11
11
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoZWRPYmplY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L2Rpc2svYXR0YWNoZWRPYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDM0UsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRTVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUV6RCxNQUFNLE9BQU8sNkJBQTZCO0lBQTFDO1FBRVUsVUFBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7SUFRN0IsQ0FBQztJQU5DLEdBQUcsQ0FBQyxLQUF5QztRQUMzQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQy9CLEtBQUssRUFDTCwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCWFJlc3RNYXBEaXNrQXR0YWNoZWRPYmplY3QgfSBmcm9tICcuLi8uLi9tYXAvZGlzay9hdHRhY2hlZE9iamVjdCdcclxuaW1wb3J0IHsgTmF2dnkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uYXZ2eSdcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtUmVzdERpc2tBdHRhY2hlZE9iamVjdCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Rpc2snXHJcbmltcG9ydCB7IG1ldGhvZHMgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vYmFzZS9tZXRob2RzJ1xyXG5cclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5RGlza0F0dGFjaGVkT2JqZWN0IHtcclxuXHJcbiAgcHJpdmF0ZSBOYXZ2eSA9IG5ldyBOYXZ2eSgpXHJcblxyXG4gIGdldChwYXJhbTogaUJYUmVzdFBhcmFtUmVzdERpc2tBdHRhY2hlZE9iamVjdCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKFxyXG4gICAgICBtZXRob2RzLmRpc2suYXR0YWNoZWRPYmplY3QuZ2V0LFxyXG4gICAgICBwYXJhbSxcclxuICAgICAgQlhSZXN0TWFwRGlza0F0dGFjaGVkT2JqZWN0LmdldClcclxuICB9XHJcbn1cclxuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoZWRPYmplY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L2Rpc2svYXR0YWNoZWRPYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDM0UsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRTVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFFNUQsTUFBTSxPQUFPLDZCQUE2QjtJQUExQztRQUVVLFVBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFBO0lBUTdCLENBQUM7SUFOQyxHQUFHLENBQUMsS0FBeUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEVBQy9CLEtBQUssRUFDTCwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCWFJlc3RNYXBEaXNrQXR0YWNoZWRPYmplY3QgfSBmcm9tICcuLi8uLi9tYXAvZGlzay9hdHRhY2hlZE9iamVjdCdcbmltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2dnknXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1SZXN0RGlza0F0dGFjaGVkT2JqZWN0IH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvZGlzaydcbmltcG9ydCB7ICRkaXNrLCAkZ2V0IH0gZnJvbSAnLi4vLi4vY29uc3RzL3BhcnQtbmFtZS1tZXRob2RzJ1xuXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eURpc2tBdHRhY2hlZE9iamVjdCB7XHJcblxyXG4gIHByaXZhdGUgTmF2dnkgPSBuZXcgTmF2dnkoKVxuXG4gIGdldChwYXJhbTogaUJYUmVzdFBhcmFtUmVzdERpc2tBdHRhY2hlZE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZShcbiAgICAgIFskZGlzaywgJ2F0dGFjaGVkT2JqZWN0JywgJGdldF0sXG4gICAgICBwYXJhbSxcbiAgICAgIEJYUmVzdE1hcERpc2tBdHRhY2hlZE9iamVjdC5nZXQpXG4gIH1cbn1cbiJdfQ==
@@ -1,11 +1,11 @@
1
1
  import { Navvy } from '../../../services/navvy';
2
- import { methods } from '../../../typification/base/methods';
2
+ import { $api, $set, $socialnetwork } from '../../../consts/part-name-methods';
3
3
  export class BXRestNavvySocialNetWorkApiContentView {
4
4
  constructor() {
5
5
  this.Navvy = new Navvy();
6
6
  }
7
7
  set(param) {
8
- return this.Navvy.simple(methods.socialNetWork.api.contentView.set, param);
8
+ return this.Navvy.simple([$socialnetwork, $api, 'contentView', $set], param);
9
9
  }
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudHZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3NvY2lhbG5ldHdvcmsvYXBpL2NvbnRlbnR2aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFFNUQsTUFBTSxPQUFPLHNDQUFzQztJQUFuRDtRQUVtQixVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTtJQUt0QyxDQUFDO0lBSEMsR0FBRyxDQUFDLEtBQWlEO1FBQ25ELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUM1RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGlCWFJlc3RQYXJhbVNvY2lhbE5ldFdvcmtBcGlDb250ZW50Vmlld1NldFxyXG59IGZyb20gJy4uLy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3NvY2lhbG5ldHdvcmsnXHJcblxyXG5pbXBvcnQgeyBOYXZ2eSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdnZ5J1xyXG5pbXBvcnQgeyBtZXRob2RzIH0gZnJvbSAnLi4vLi4vLi4vdHlwaWZpY2F0aW9uL2Jhc2UvbWV0aG9kcydcclxuXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eVNvY2lhbE5ldFdvcmtBcGlDb250ZW50VmlldyB7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgTmF2dnkgPSBuZXcgTmF2dnkoKVxyXG5cclxuICBzZXQocGFyYW06IGlCWFJlc3RQYXJhbVNvY2lhbE5ldFdvcmtBcGlDb250ZW50Vmlld1NldCl7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUobWV0aG9kcy5zb2NpYWxOZXRXb3JrLmFwaS5jb250ZW50Vmlldy5zZXQsIHBhcmFtKVxyXG4gIH1cclxufSJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudHZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3NvY2lhbG5ldHdvcmsvYXBpL2NvbnRlbnR2aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUU5RSxNQUFNLE9BQU8sc0NBQXNDO0lBQW5EO1FBRW1CLFVBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFBO0lBS3RDLENBQUM7SUFIQyxHQUFHLENBQUMsS0FBaUQ7UUFDbkQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQzlFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgaUJYUmVzdFBhcmFtU29jaWFsTmV0V29ya0FwaUNvbnRlbnRWaWV3U2V0XHJcbn0gZnJvbSAnLi4vLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3Qvc29jaWFsbmV0d29yaydcclxuXG5pbXBvcnQgeyBOYXZ2eSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdnZ5J1xuaW1wb3J0IHsgJGFwaSwgJHNldCwgJHNvY2lhbG5ldHdvcmsgfSBmcm9tICcuLi8uLi8uLi9jb25zdHMvcGFydC1uYW1lLW1ldGhvZHMnXG5cclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5U29jaWFsTmV0V29ya0FwaUNvbnRlbnRWaWV3IHtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBOYXZ2eSA9IG5ldyBOYXZ2eSgpXHJcblxuICBzZXQocGFyYW06IGlCWFJlc3RQYXJhbVNvY2lhbE5ldFdvcmtBcGlDb250ZW50Vmlld1NldCl7XG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKFskc29jaWFsbmV0d29yaywgJGFwaSwgJ2NvbnRlbnRWaWV3JywgJHNldF0sIHBhcmFtKVxuICB9XG59XG4iXX0=
@@ -1,10 +1,16 @@
1
1
  import { Navvy } from '../../services/navvy';
2
2
  import { BXRestMapTaskCommentItem } from '../../map/task/commentitem';
3
3
  import { mergeMap, of } from 'rxjs';
4
- import { methods } from '../../typification/base/methods';
4
+ import { $add, $commentitem, $delete, $get, $getlist, $task, $update } from '../../consts/part-name-methods';
5
5
  export class BXRestNavvyTaskCommentItem {
6
6
  constructor() {
7
- this.url = methods.task.commentItem;
7
+ this.url = {
8
+ getList: [$task, $commentitem, $getlist],
9
+ get: [$task, $commentitem, $get],
10
+ add: [$task, $commentitem, $add],
11
+ update: [$task, $commentitem, $update],
12
+ delete: [$task, $commentitem, $delete],
13
+ };
8
14
  this.Navvy = new Navvy();
9
15
  }
10
16
  add(param) {
@@ -38,4 +44,4 @@ export class BXRestNavvyTaskCommentItem {
38
44
  }
39
45
  }
40
46
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svY29tbWVudGl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzVDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBVXJFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUV6RCxNQUFNLE9BQU8sMEJBQTBCO0lBQXZDO1FBQ1ksUUFBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFBO1FBRXZCLFVBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFBO0lBaUR0QyxDQUFDO0lBL0NDLEdBQUcsQ0FBQyxLQUE0QjtRQUM5QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQ3BCLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQW1DO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FDdkIsQ0FBQTtJQUNILENBQUM7SUFFRCxHQUFHLENBQUMsS0FBcUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUNuQix3QkFBd0IsQ0FBQyxHQUFHLENBQzdCLENBQUE7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQXNDO1FBQzVDLE1BQU0sRUFBRSxFQUFFO1FBQ1YsS0FBSyxFQUFFO1lBQ0wsU0FBUyxFQUFFLEtBQUs7U0FDakI7S0FDRjtRQUNDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssRUFDdkIsd0JBQXdCLENBQUMsT0FBTyxDQUNqQyxDQUFBO0lBQ0gsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFrQztRQUNwQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDL0IsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNYLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUN2QixDQUFDLEdBQUcsRUFBRSxDQUFBO2dCQUNULENBQUM7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbEIsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2dnknXHJcbmltcG9ydCB7IEJYUmVzdE1hcFRhc2tDb21tZW50SXRlbSB9IGZyb20gJy4uLy4uL21hcC90YXNrL2NvbW1lbnRpdGVtJ1xyXG5pbXBvcnQge1xyXG4gIGlCWFJlc3RQYXJhbVRhc2tDb21tZW50SXRlbUdldCxcclxuICBpQlhSZXN0VGFza0NvbW1lbnRJdGVtVXBkYXRlLFxyXG4gIGlCWFJlc3RDb21tZW50VGFza0FkZCxcclxuICBCWFJlc3RUYXNrQ29tbWVudEl0ZW1HZXRMaXN0LFxyXG4gIEJYUmVzdFRhc2tDb21tZW50SXRlbURlbGV0ZSxcclxuICBpQlhSZXN0VGFza0NvbW1lbnQsXHJcbiAgaUJYUmVzdFRhc2tDb21tZW50SHRtbFxyXG59IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2snXHJcbmltcG9ydCB7IG1lcmdlTWFwLCBvZiB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IG1ldGhvZHMgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vYmFzZS9tZXRob2RzJ1xyXG5cclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5VGFza0NvbW1lbnRJdGVtIHtcclxuICBwcm90ZWN0ZWQgdXJsID0gbWV0aG9kcy50YXNrLmNvbW1lbnRJdGVtXHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgTmF2dnkgPSBuZXcgTmF2dnkoKVxyXG5cclxuICBhZGQocGFyYW06IGlCWFJlc3RDb21tZW50VGFza0FkZCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPG51bWJlciwgbnVtYmVyLCBpQlhSZXN0Q29tbWVudFRhc2tBZGQ+KFxyXG4gICAgICB0aGlzLnVybC5hZGQsIHBhcmFtXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICB1cGRhdGUocGFyYW06IGlCWFJlc3RUYXNrQ29tbWVudEl0ZW1VcGRhdGUpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxib29sZWFuLCBib29sZWFuLCBpQlhSZXN0VGFza0NvbW1lbnRJdGVtVXBkYXRlPihcclxuICAgICAgdGhpcy51cmwudXBkYXRlLCBwYXJhbVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0KHBhcmFtOiBpQlhSZXN0UGFyYW1UYXNrQ29tbWVudEl0ZW1HZXQpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxpQlhSZXN0VGFza0NvbW1lbnRIdG1sLCBpQlhSZXN0VGFza0NvbW1lbnQsIGlCWFJlc3RQYXJhbVRhc2tDb21tZW50SXRlbUdldD4oXHJcbiAgICAgIHRoaXMudXJsLmdldCwgcGFyYW0sXHJcbiAgICAgIEJYUmVzdE1hcFRhc2tDb21tZW50SXRlbS5nZXRcclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldGxpc3QocGFyYW06IEJYUmVzdFRhc2tDb21tZW50SXRlbUdldExpc3QgPSB7XHJcbiAgICBGSUxURVI6IHt9LFxyXG4gICAgT1JERVI6IHtcclxuICAgICAgUE9TVF9EQVRFOiAnYXNjJ1xyXG4gICAgfVxyXG4gIH0pIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZShcclxuICAgICAgdGhpcy51cmwuZ2V0TGlzdCwgcGFyYW0sXHJcbiAgICAgIEJYUmVzdE1hcFRhc2tDb21tZW50SXRlbS5nZXRsaXN0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBkZWwocGFyYW06IEJYUmVzdFRhc2tDb21tZW50SXRlbURlbGV0ZSkge1xyXG4gICAgaWYgKHBhcmFtLklURU1JRCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0KHBhcmFtKS5yZXMoKS5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPGJvb2xlYW4sIGJvb2xlYW4sIEJYUmVzdFRhc2tDb21tZW50SXRlbURlbGV0ZT4oXHJcbiAgICAgICAgICAgICAgdGhpcy51cmwuZGVsZXRlLCBwYXJhbVxyXG4gICAgICAgICAgICApLnJlcygpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG9mKGZhbHNlKVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svY29tbWVudGl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzVDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBVXJFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25DLE9BQU8sRUFDTCxJQUFJLEVBQ0osWUFBWSxFQUNaLE9BQU8sRUFDUCxJQUFJLEVBQ0osUUFBUSxFQUNSLEtBQUssRUFDTCxPQUFPLEVBQ1IsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUV2QyxNQUFNLE9BQU8sMEJBQTBCO0lBQXZDO1FBQ1ksUUFBRyxHQUFHO1lBQ2QsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUM7WUFDeEMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUM7WUFDaEMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUM7WUFDaEMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUM7WUFDdEMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUM7U0FDdkMsQ0FBQTtRQUVnQixVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTtJQWlEdEMsQ0FBQztJQS9DQyxHQUFHLENBQUMsS0FBNEI7UUFDOUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUNwQixDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFtQztRQUN4QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQ3ZCLENBQUE7SUFDSCxDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQXFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssRUFDbkIsd0JBQXdCLENBQUMsR0FBRyxDQUM3QixDQUFBO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxRQUFzQztRQUM1QyxNQUFNLEVBQUUsRUFBRTtRQUNWLEtBQUssRUFBRTtZQUNMLFNBQVMsRUFBRSxLQUFLO1NBQ2pCO0tBQ0Y7UUFDQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQ3ZCLHdCQUF3QixDQUFDLE9BQU8sQ0FDakMsQ0FBQTtJQUNILENBQUM7SUFFRCxHQUFHLENBQUMsS0FBa0M7UUFDcEMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQy9CLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FDdkIsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtnQkFDVCxDQUFDO2dCQUNELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUE7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYXZ2eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdnZ5J1xyXG5pbXBvcnQgeyBCWFJlc3RNYXBUYXNrQ29tbWVudEl0ZW0gfSBmcm9tICcuLi8uLi9tYXAvdGFzay9jb21tZW50aXRlbSdcclxuaW1wb3J0IHtcclxuICBpQlhSZXN0UGFyYW1UYXNrQ29tbWVudEl0ZW1HZXQsXHJcbiAgaUJYUmVzdFRhc2tDb21tZW50SXRlbVVwZGF0ZSxcclxuICBpQlhSZXN0Q29tbWVudFRhc2tBZGQsXHJcbiAgQlhSZXN0VGFza0NvbW1lbnRJdGVtR2V0TGlzdCxcclxuICBCWFJlc3RUYXNrQ29tbWVudEl0ZW1EZWxldGUsXHJcbiAgaUJYUmVzdFRhc2tDb21tZW50LFxyXG4gIGlCWFJlc3RUYXNrQ29tbWVudEh0bWxcclxufSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrJ1xuaW1wb3J0IHsgbWVyZ2VNYXAsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gICRhZGQsXG4gICRjb21tZW50aXRlbSxcbiAgJGRlbGV0ZSxcbiAgJGdldCxcbiAgJGdldGxpc3QsXG4gICR0YXNrLFxuICAkdXBkYXRlXG59IGZyb20gJy4uLy4uL2NvbnN0cy9wYXJ0LW5hbWUtbWV0aG9kcydcblxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5VGFza0NvbW1lbnRJdGVtIHtcbiAgcHJvdGVjdGVkIHVybCA9IHtcbiAgICBnZXRMaXN0OiBbJHRhc2ssICRjb21tZW50aXRlbSwgJGdldGxpc3RdLFxuICAgIGdldDogWyR0YXNrLCAkY29tbWVudGl0ZW0sICRnZXRdLFxuICAgIGFkZDogWyR0YXNrLCAkY29tbWVudGl0ZW0sICRhZGRdLFxuICAgIHVwZGF0ZTogWyR0YXNrLCAkY29tbWVudGl0ZW0sICR1cGRhdGVdLFxuICAgIGRlbGV0ZTogWyR0YXNrLCAkY29tbWVudGl0ZW0sICRkZWxldGVdLFxuICB9XG5cclxuICBwcml2YXRlIHJlYWRvbmx5IE5hdnZ5ID0gbmV3IE5hdnZ5KClcclxuXHJcbiAgYWRkKHBhcmFtOiBpQlhSZXN0Q29tbWVudFRhc2tBZGQpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxudW1iZXIsIG51bWJlciwgaUJYUmVzdENvbW1lbnRUYXNrQWRkPihcclxuICAgICAgdGhpcy51cmwuYWRkLCBwYXJhbVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlKHBhcmFtOiBpQlhSZXN0VGFza0NvbW1lbnRJdGVtVXBkYXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8Ym9vbGVhbiwgYm9vbGVhbiwgaUJYUmVzdFRhc2tDb21tZW50SXRlbVVwZGF0ZT4oXHJcbiAgICAgIHRoaXMudXJsLnVwZGF0ZSwgcGFyYW1cclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldChwYXJhbTogaUJYUmVzdFBhcmFtVGFza0NvbW1lbnRJdGVtR2V0KSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8aUJYUmVzdFRhc2tDb21tZW50SHRtbCwgaUJYUmVzdFRhc2tDb21tZW50LCBpQlhSZXN0UGFyYW1UYXNrQ29tbWVudEl0ZW1HZXQ+KFxyXG4gICAgICB0aGlzLnVybC5nZXQsIHBhcmFtLFxyXG4gICAgICBCWFJlc3RNYXBUYXNrQ29tbWVudEl0ZW0uZ2V0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBnZXRsaXN0KHBhcmFtOiBCWFJlc3RUYXNrQ29tbWVudEl0ZW1HZXRMaXN0ID0ge1xyXG4gICAgRklMVEVSOiB7fSxcclxuICAgIE9SREVSOiB7XHJcbiAgICAgIFBPU1RfREFURTogJ2FzYydcclxuICAgIH1cclxuICB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGUoXHJcbiAgICAgIHRoaXMudXJsLmdldExpc3QsIHBhcmFtLFxyXG4gICAgICBCWFJlc3RNYXBUYXNrQ29tbWVudEl0ZW0uZ2V0bGlzdFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZGVsKHBhcmFtOiBCWFJlc3RUYXNrQ29tbWVudEl0ZW1EZWxldGUpIHtcclxuICAgIGlmIChwYXJhbS5JVEVNSUQgPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldChwYXJhbSkucmVzKCkucGlwZShcclxuICAgICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxib29sZWFuLCBib29sZWFuLCBCWFJlc3RUYXNrQ29tbWVudEl0ZW1EZWxldGU+KFxyXG4gICAgICAgICAgICAgIHRoaXMudXJsLmRlbGV0ZSwgcGFyYW1cclxuICAgICAgICAgICAgKS5yZXMoKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBvZihmYWxzZSlcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -1,13 +1,12 @@
1
1
  import { HttpBXServices } from '../../../services/http/HttpBX';
2
- import { $elapseditem, $getlist, $isactionallowed, $task } from '../../../consts/part-name-methods';
2
+ import { $elapseditem, $getaccess, $getlist, $isactionallowed, $task, $tasks } from '../../../consts/part-name-methods';
3
3
  import { map, take } from 'rxjs/operators';
4
4
  import { BXRestMapTaskElapsedItem } from '../../../map/task/elapseditem';
5
- import { forkJoin, mergeMap, of, throwError } from 'rxjs';
5
+ import { mergeMap, of, throwError } from 'rxjs';
6
6
  import { BXRestNavvyUser } from '../../user';
7
7
  import { BXRestNavvyTasks } from '../../tasks';
8
8
  import { BXRestNavvyDelegateElapsedItem } from '../delegate/elapseditem';
9
9
  export class BXRestNavvyOperationElapsedItem {
10
- // private readonly BXRestNavvyElapsedItem = new BXRestNavvyElapsedItem()
11
10
  constructor(BXRestNavvyElapsedItem) {
12
11
  this.BXRestNavvyElapsedItem = BXRestNavvyElapsedItem;
13
12
  this.http = new HttpBXServices();
@@ -57,42 +56,73 @@ export class BXRestNavvyOperationElapsedItem {
57
56
  }));
58
57
  }
59
58
  checkPermissionAddElapsedTimeToTaskArr(tasks, userCurrent = undefined) {
60
- let request = Object.assign({}, ...tasks.map(i => {
61
- return { [i]: this.checkPermissionAddElapsedTimeToTask(i, userCurrent) };
62
- }));
63
- return forkJoin(request)
64
- .pipe(take(1), mergeMap(v => {
65
- let forForeach = Object.entries(v).map(([key, value]) => {
66
- return { id: Number(key), value: value };
67
- });
68
- if (forForeach.find(i => i.value === undefined) !== undefined) {
69
- let forForeachHave = forForeach.filter(i => i.value !== undefined);
70
- let forForeachNotHave = forForeach.filter(i => i.value === undefined); // тут получаем все id не сохраненных у нас прав
71
- return this.http.branch(Object.assign({}, ...forForeachNotHave
72
- .map(i => i.id)
73
- .map(i => {
74
- return {
75
- [i]: {
76
- name: this.http.getNameMethod([$task, $elapseditem, $isactionallowed]),
77
- param: {
78
- TASKID: i,
79
- ITEMID: 1,
80
- ACTIONID: 1
81
- }
59
+ // Убираем дубли, чтобы не проверять права по одной задаче несколько раз.
60
+ const ids = [...new Set(tasks.filter(i => !!i))];
61
+ // Если текущий пользователь не передан снаружи, запрашиваем его один раз на весь набор задач.
62
+ const user$ = userCurrent ? of(userCurrent) : this.BXRestNavvyUser.current().res();
63
+ // Старый batch через task.elapseditem.isactionallowed.
64
+ // Вызываем его ниже только для задач, по которым getaccess не вернул ELAPSEDTIME.ADD.
65
+ const loadMissingByActionAllowed = (missingIds, resolved) => {
66
+ return this.http.branch(Object.assign({}, ...missingIds.map(i => {
67
+ return {
68
+ [i]: {
69
+ name: this.http.getNameMethod([$task, $elapseditem, $isactionallowed]),
70
+ param: {
71
+ TASKID: i,
72
+ ITEMID: 1,
73
+ ACTIONID: 1
82
74
  }
83
- };
84
- }))).pipe(map(v => {
85
- if (v && v.length) {
86
- const res = this.http.mapBranchResult(v);
87
- forForeachNotHave = Object.entries(res).map(([key, value]) => {
88
- return { id: Number(key), value: value };
89
- });
90
- return Object.assign(forForeachHave, forForeachNotHave);
91
75
  }
92
- return undefined;
93
- }));
76
+ };
77
+ }))).pipe(map(v => {
78
+ if (v && v.length) {
79
+ const res = this.http.mapBranchResult(v);
80
+ const loaded = Object.entries(res).map(([key, value]) => {
81
+ return { id: Number(key), value };
82
+ });
83
+ return [...resolved, ...loaded];
84
+ }
85
+ return undefined;
86
+ }));
87
+ };
88
+ if (!ids.length) {
89
+ return of([]);
90
+ }
91
+ return user$.pipe(take(1), mergeMap(self => {
92
+ if (!self) {
93
+ // Страховочная ветка: если user.current не вернулся, getaccess вызвать нельзя.
94
+ return loadMissingByActionAllowed(ids, []);
94
95
  }
95
- return of(forForeach);
96
+ // Основной путь: одним batch-запросом получаем права ELAPSEDTIME.ADD по всем задачам.
97
+ return this.http.branch(Object.assign({}, ...ids.map(id => {
98
+ return {
99
+ [id]: {
100
+ name: this.http.getNameMethod([$tasks, $task, $getaccess]),
101
+ param: {
102
+ id,
103
+ users: [self.ID]
104
+ }
105
+ }
106
+ };
107
+ }))).pipe(mergeMap(v => {
108
+ if (v && v.length) {
109
+ const res = this.http.mapBranchResult(v);
110
+ const permissions = ids.map(id => ({
111
+ id,
112
+ value: res[id]?.allowedActions?.[self.ID]?.['ELAPSEDTIME.ADD']
113
+ }));
114
+ // getaccess может вернуть true или false - оба значения считаем готовым ответом.
115
+ // В старый isactionallowed отправляем только задачи без явного ELAPSEDTIME.ADD.
116
+ const resolved = permissions.filter(i => i.value !== undefined);
117
+ const missingIds = permissions.filter(i => i.value === undefined).map(i => i.id);
118
+ if (missingIds.length) {
119
+ return loadMissingByActionAllowed(missingIds, resolved);
120
+ }
121
+ return of(permissions);
122
+ }
123
+ // Если batch getaccess не вернулся, сохраняем поведение старого fallback.
124
+ return loadMissingByActionAllowed(ids, []);
125
+ }));
96
126
  }));
97
127
  }
98
128
  /**
@@ -291,4 +321,4 @@ export class BXRestNavvyOperationElapsedItem {
291
321
  });
292
322
  }
293
323
  }
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svb3BlcmF0aW9uL2VsYXBzZWRpdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNuRyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBQ3hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDOUMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFJeEUsTUFBTSxPQUFPLCtCQUErQjtJQU8xQyx5RUFBeUU7SUFFekUsWUFBb0Isc0JBQThDO1FBQTlDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFQakQsU0FBSSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUE7UUFDM0IsYUFBUSxHQUFHLElBQUksOEJBQThCLEVBQUUsQ0FBQTtRQUMvQyxvQkFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUE7UUFDdkMscUJBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFBO0lBSzFELENBQUM7SUFFRCxhQUFhLENBQUMsUUFBa0IsRUFBRSxTQUFlLEVBQUUsT0FBYTtRQUM5RCxNQUFNLEtBQUssR0FBK0I7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RUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FBQTtZQUMxRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsTUFBYyxFQUFFLE1BQWM7UUFDcEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUN6QjtZQUNFLE1BQU0sRUFBRSxNQUFNO1lBQ2QsTUFBTSxFQUFFLE1BQU07WUFDZCxRQUFRLEVBQUUsQ0FBQztTQUNaLENBQUMsQ0FBQTtJQUNOLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgaUJYUmVzdFBhcmFtRWxhcHNlZGl0ZW1HZXQsXHJcbiAgaUJYUmVzdFRhc2tFbGFwc2VkSXRlbUh0dHAsXHJcbiAgaUlzQWN0aW9uQWxsb3dlZFBhcmFtLFxyXG4gIGlCWFJlc3RQYXJhbUFkZEVsYXBzZWRpdGVtLFxyXG4gIGlCWFJlc3RQYXJhbVVwZGF0ZUVsYXBzZWRpdGVtLFxyXG4gIGlCWFJlc3RQYXJhbURlbEVsYXBzZWRpdGVtXHJcbn0gZnJvbSAnLi4vLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzaydcclxuaW1wb3J0IHsgSHR0cEJYU2VydmljZXMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odHRwL0h0dHBCWCdcclxuaW1wb3J0IHsgJGVsYXBzZWRpdGVtLCAkZ2V0bGlzdCwgJGlzYWN0aW9uYWxsb3dlZCwgJHRhc2sgfSBmcm9tICcuLi8uLi8uLi9jb25zdHMvcGFydC1uYW1lLW1ldGhvZHMnXHJcbmltcG9ydCB7IG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5pbXBvcnQgeyBCWFJlc3RNYXBUYXNrRWxhcHNlZEl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tYXAvdGFzay9lbGFwc2VkaXRlbSdcclxuaW1wb3J0IHsgZm9ya0pvaW4sIG1lcmdlTWFwLCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5VXNlciB9IGZyb20gJy4uLy4uL3VzZXInXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5VGFza3MgfSBmcm9tICcuLi8uLi90YXNrcydcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlEZWxlZ2F0ZUVsYXBzZWRJdGVtIH0gZnJvbSAnLi4vZGVsZWdhdGUvZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IGlCWFJlc3RVc2VyIH0gZnJvbSAnLi4vLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdXNlcidcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlFbGFwc2VkSXRlbSB9IGZyb20gJy4uL2VsYXBzZWRpdGVtJ1xyXG5cclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5T3BlcmF0aW9uRWxhcHNlZEl0ZW0ge1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBuZXcgSHR0cEJYU2VydmljZXMoKVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVsZWdhdGUgPSBuZXcgQlhSZXN0TmF2dnlEZWxlZ2F0ZUVsYXBzZWRJdGVtKClcclxuICBwcml2YXRlIHJlYWRvbmx5IEJYUmVzdE5hdnZ5VXNlciA9IG5ldyBCWFJlc3ROYXZ2eVVzZXIoKVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgQlhSZXN0TmF2dnlUYXNrcyA9IG5ldyBCWFJlc3ROYXZ2eVRhc2tzKClcclxuXHJcbiAgLy8gcHJpdmF0ZSByZWFkb25seSBCWFJlc3ROYXZ2eUVsYXBzZWRJdGVtID0gbmV3IEJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0oKVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIEJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW06IEJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0pIHtcclxuICB9XHJcblxyXG4gIGdldEJ5SW50ZXJ2YWwoaWRzVXNlcnM6IG51bWJlcltdLCBkYXRlU3RhcnQ6IERhdGUsIGRhdGVFbmQ6IERhdGUpIHtcclxuICAgIGNvbnN0IHBhcmFtOiBpQlhSZXN0UGFyYW1FbGFwc2VkaXRlbUdldCA9IHtcclxuICAgICAgT1JERVI6IHtcclxuICAgICAgICBJRDogJ0RFU0MnXHJcbiAgICAgIH0sXHJcbiAgICAgIEZJTFRFUjoge1xyXG4gICAgICAgIFVTRVJfSUQ6IGlkc1VzZXJzLFxyXG4gICAgICAgICc+PUNSRUFURURfREFURSc6IGRhdGVTdGFydC50b0xvY2FsZVN0cmluZygncnUtUnUnLCB7XHJcbiAgICAgICAgICB0aW1lWm9uZU5hbWU6ICdzaG9ydCdcclxuICAgICAgICB9KSxcclxuICAgICAgICAnPD1DUkVBVEVEX0RBVEUnOiBkYXRlRW5kLnRvTG9jYWxlU3RyaW5nKCdydS1SdScsIHtcclxuICAgICAgICAgIHRpbWVab25lTmFtZTogJ3Nob3J0J1xyXG4gICAgICAgIH0pLFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5kZWxlZ2F0ZS5nZXRMaXN0KHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgLy8gVE9ETzog0KHQtNC10LvQsNGC0Ywg0L3QvtGA0LzQsNC70YzQvdC+XHJcbiAgZ2V0TGlzdEJ5SURUYXNrKGlkczogbnVtYmVyW10pIHtcclxuICAgIC8vINCg0LDQsdC+0YLQsNC10YIg0YLQvtC70YzQutC+INC/0L7RgtC+0LzRgyDRh9GC0L4gXCJuUGFnZVNpemU6IDk5OTk5XCJcclxuICAgIHJldHVybiB0aGlzLmh0dHAuYnJhbmNoPGlCWFJlc3RQYXJhbUVsYXBzZWRpdGVtR2V0LCBpQlhSZXN0VGFza0VsYXBzZWRJdGVtSHR0cD5cclxuICAgIChcclxuICAgICAgaWRzLm1hcChpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgbmFtZTogdGhpcy5odHRwLmdldE5hbWVNZXRob2QoWyR0YXNrLCAkZWxhcHNlZGl0ZW0sICRnZXRsaXN0XSksXHJcbiAgICAgICAgICBwYXJhbToge1xyXG4gICAgICAgICAgICBUQVNLSUQ6IGksXHJcbiAgICAgICAgICAgIFBBUkFNUzoge1xyXG4gICAgICAgICAgICAgIE5BVl9QQVJBTVM6IHtcclxuICAgICAgICAgICAgICAgIG5QYWdlU2l6ZTogOTk5OTksXHJcbiAgICAgICAgICAgICAgICBpTnVtUGFnZTogMVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgIGlmICh2ICYmIHYubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCByZXMgPSB0aGlzLmh0dHAubWFwQnJhbmNoUmVzdWx0V2l0aG91dEtleSh2KVxyXG4gICAgICAgICAgcmV0dXJuIEJYUmVzdE1hcFRhc2tFbGFwc2VkSXRlbS5nZXRMaXN0KHJlcylcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY2hlY2tQZXJtaXNzaW9uQWRkRWxhcHNlZFRpbWVUb1Rhc2tBcnIodGFza3M6IG51bWJlcltdLCB1c2VyQ3VycmVudDogaUJYUmVzdFVzZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQpIHtcclxuICAgIGxldCByZXF1ZXN0OiBSZWNvcmQ8bnVtYmVyLCBPYnNlcnZhYmxlPGJvb2xlYW4+PiA9IE9iamVjdC5hc3NpZ24oe30sIC4uLnRhc2tzLm1hcChpID0+IHtcclxuICAgICAgcmV0dXJuIHtbaV06IHRoaXMuY2hlY2tQZXJtaXNzaW9uQWRkRWxhcHNlZFRpbWVUb1Rhc2soaSwgdXNlckN1cnJlbnQpfVxyXG4gICAgfSkpXHJcbiAgICByZXR1cm4gZm9ya0pvaW4ocmVxdWVzdClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICAgIGxldCBmb3JGb3JlYWNoID0gT2JqZWN0LmVudHJpZXModikubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHtpZDogTnVtYmVyKGtleSksIHZhbHVlOiB2YWx1ZX1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBpZiAoZm9yRm9yZWFjaC5maW5kKGkgPT4gaS52YWx1ZSA9PT0gdW5kZWZpbmVkKSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGxldCBmb3JGb3JlYWNoSGF2ZSA9IGZvckZvcmVhY2guZmlsdGVyKGkgPT4gaS52YWx1ZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICBsZXQgZm9yRm9yZWFjaE5vdEhhdmUgPSBmb3JGb3JlYWNoLmZpbHRlcihpID0+IGkudmFsdWUgPT09IHVuZGVmaW5lZCkgLy8g0YLRg9GCINC/0L7Qu9GD0YfQsNC10Lwg0LLRgdC1IGlkINC90LUg0YHQvtGF0YDQsNC90LXQvdC90YvRhSDRgyDQvdCw0YEg0L/RgNCw0LJcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5icmFuY2g8aUlzQWN0aW9uQWxsb3dlZFBhcmFtLCBib29sZWFuPihcclxuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHt9LCAuLi5mb3JGb3JlYWNoTm90SGF2ZVxyXG4gICAgICAgICAgICAgICAgLm1hcChpID0+IGkuaWQpXHJcbiAgICAgICAgICAgICAgICAubWFwKGkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIFtpXToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5odHRwLmdldE5hbWVNZXRob2QoWyR0YXNrLCAkZWxhcHNlZGl0ZW0sICRpc2FjdGlvbmFsbG93ZWRdKSxcclxuICAgICAgICAgICAgICAgICAgICAgIHBhcmFtOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFRBU0tJRDogaSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgSVRFTUlEOiAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBBQ1RJT05JRDogMVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgICBtYXAodiA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodiAmJiB2Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCByZXM6IFJlY29yZDxudW1iZXIsIGJvb2xlYW4+ID0gdGhpcy5odHRwLm1hcEJyYW5jaFJlc3VsdCh2KVxyXG4gICAgICAgICAgICAgICAgICBmb3JGb3JlYWNoTm90SGF2ZSA9IE9iamVjdC5lbnRyaWVzKHJlcykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge2lkOiBOdW1iZXIoa2V5KSwgdmFsdWU6IHZhbHVlfVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihmb3JGb3JlYWNoSGF2ZSwgZm9yRm9yZWFjaE5vdEhhdmUpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG9mKGZvckZvcmVhY2gpXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0J/RgNC+0LLQtdGA0LrQsCDQvdCwINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0LTQvtCx0LDQstC70LXQvdC40LUg0LfQsNC/0LjRgdC4INGC0YDQtdC60LAg0LIg0YLQsNGB0LrRg1xyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkVGFza1xyXG4gICAqIEBwYXJhbSB1c2VyQ3VycmVudFxyXG4gICAqL1xyXG4gIGNoZWNrUGVybWlzc2lvbkFkZEVsYXBzZWRUaW1lVG9UYXNrKGlkVGFzazogbnVtYmVyLCB1c2VyQ3VycmVudDogaUJYUmVzdFVzZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQpIHtcclxuICAgIC8vIGxldCBwZXJtaXNzaW9uID0gUGVybWlzc2lvbi5nZXQoKVxyXG4gICAgLy8gaWYgKHBlcm1pc3Npb24/LnRhc2tzPy5sZW5ndGgpIHtcclxuICAgIC8vICAgbGV0IGZpbmRUYXNrID0gcGVybWlzc2lvbi50YXNrcy5maW5kKGkgPT4gaS5pZCA9PT0gaWRUYXNrKVxyXG4gICAgLy8gICBpZiAoZmluZFRhc2s/LnBlcm1pc3Npb24pIHtcclxuICAgIC8vICAgICByZXR1cm4gb2YoZmluZFRhc2sucGVybWlzc2lvblsnRUxBUFNFRFRJTUUuQUREJ10pXHJcbiAgICAvLyAgIH1cclxuICAgIHJldHVybiAoKHVzZXJDdXJyZW50KSA/IG9mKHVzZXJDdXJyZW50KSA6IHRoaXMuQlhSZXN0TmF2dnlVc2VyLmN1cnJlbnQoKS5yZXMoKSkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoc2VsZiA9PiB7XHJcbiAgICAgICAgaWYgKHNlbGYpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5VGFza3MudGFzay5nZXRBY2Nlc3MoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBpZDogaWRUYXNrLFxyXG4gICAgICAgICAgICAgIHVzZXJzOiBbc2VsZi5JRF1cclxuICAgICAgICAgICAgfSkucmVzKCkucGlwZShcclxuICAgICAgICAgICAgLy8gdGFwKHYgPT4ge1xyXG4gICAgICAgICAgICAvLyAgIGlmICh2ICYmIHZbc2VsZi5JRF0pIHtcclxuICAgICAgICAgICAgLy8gICAgIFBlcm1pc3Npb24uc2V0KHtcclxuICAgICAgICAgICAgLy8gICAgICAgdGFza3M6IFt7aWQ6IGlkVGFzaywgcGVybWlzc2lvbjogdltzZWxmLklEXSwgZWxhcHNlZEl0ZW06IFtdfV1cclxuICAgICAgICAgICAgLy8gICAgIH0pXHJcbiAgICAgICAgICAgIC8vICAgfVxyXG4gICAgICAgICAgICAvLyB9KSxcclxuICAgICAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiAodiAmJiB2W3NlbGYuSURdKSA/IHZbc2VsZi5JRF1bJ0VMQVBTRURUSU1FLkFERCddIDogZmFsc2VcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCf0YDQvtCy0LXRgNC60LAg0L3QsCDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINC/0YDQvtGH0YLQtdC90LjRjyDRgtCw0LrRgdC60LhcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZFRhc2tcclxuICAgKiBAcGFyYW0gdXNlckN1cnJlbnRcclxuICAgKi9cclxuICBjaGVja1Blcm1pc3Npb25SZWFkVGFzayhpZFRhc2s6IG51bWJlciwgdXNlckN1cnJlbnQ6IGlCWFJlc3RVc2VyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKSB7XHJcbiAgICAvLyBsZXQgcGVybWlzc2lvbiA9IFBlcm1pc3Npb24uZ2V0KClcclxuICAgIC8vIGlmIChwZXJtaXNzaW9uPy50YXNrcz8ubGVuZ3RoKSB7XHJcbiAgICAvLyAgIGxldCBmaW5kVGFzayA9IHBlcm1pc3Npb24udGFza3MuZmluZChpID0+IGkuaWQgPT09IGlkVGFzaylcclxuICAgIC8vICAgaWYgKGZpbmRUYXNrPy5wZXJtaXNzaW9uKSB7XHJcbiAgICAvLyAgICAgcmV0dXJuIG9mKGZpbmRUYXNrLnBlcm1pc3Npb24uQUNDRVBUKVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIGNvbnNvbGUubG9nKCdpZFRhc2snLCBpZFRhc2spXHJcbiAgICByZXR1cm4gKCh1c2VyQ3VycmVudCkgPyBvZih1c2VyQ3VycmVudCkgOiB0aGlzLkJYUmVzdE5hdnZ5VXNlci5jdXJyZW50KCkucmVzKCkpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKHNlbGYgPT4ge1xyXG4gICAgICAgIGlmIChzZWxmKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5CWFJlc3ROYXZ2eVRhc2tzLnRhc2suZ2V0QWNjZXNzKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaWQ6IGlkVGFzayxcclxuICAgICAgICAgICAgICB1c2VyczogW3NlbGYuSURdXHJcbiAgICAgICAgICAgIH0pLnJlcygpLnBpcGUoXHJcbiAgICAgICAgICAgIC8vIHRhcCh2ID0+IHtcclxuICAgICAgICAgICAgLy8gICBpZiAodiAmJiB2W3NlbGYuSURdKSB7XHJcbiAgICAgICAgICAgIC8vICAgICBQZXJtaXNzaW9uLnNldCh7XHJcbiAgICAgICAgICAgIC8vICAgICAgIHRhc2tzOiBbe2lkOiBpZFRhc2ssIHBlcm1pc3Npb246IHZbc2VsZi5JRF0sIGVsYXBzZWRJdGVtOiBbXX1dXHJcbiAgICAgICAgICAgIC8vICAgICB9KVxyXG4gICAgICAgICAgICAvLyAgIH1cclxuICAgICAgICAgICAgLy8gfSksXHJcbiAgICAgICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gKHYgJiYgdltzZWxmLklEXSkgPyAhIXZbc2VsZi5JRF0gOiBmYWxzZSAvLyDQvtGC0LTQtdC70YzQvdC+0LPQviDRhNC70LDQs9CwINC90LAg0YfRgtC10L3QuNC1INC90LXRgiwg0LLRi9GF0L7QtNC40YIg0YfRgtC+INC10YHQu9C4INC/0YDQsNCy0LAg0L7RgtC00LDQu9C40YHRjCDRgtC+INC4INC/0YDQsNCy0LAg0LXRgdGC0YxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgICAvLyB9XHJcbiAgICAvL1xyXG4gICAgLy8gcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCX0LDQutC+0L3Rh9C10L3QvdGL0Lkg0LzQtdGC0L7QtCDQtNC+0LHQsNCy0LvQtdC90LjRjyDQt9Cw0L/QuNGB0Lgg0YEg0L/RgNC10LTQstCw0YDQuNGC0LXQu9GM0L3QvtC5INC/0YDQvtCy0LXRgNC60L7QuSDQv9GA0LDQslxyXG4gICAqXHJcbiAgICogVE9ETzog0LTQvtCx0LDQstC40YLRjCDRgdC+0YXRgNCw0L3QtdC90LjQtSDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdC+INC/0YDQvtCy0LXRgNC10L3QvdGL0YUg0LfQsNC/0LjRgdC10LlcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICBhZGQocGFyYW06IGlCWFJlc3RQYXJhbUFkZEVsYXBzZWRpdGVtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja1Blcm1pc3Npb25SZWFkVGFzayhwYXJhbS5UQVNLSUQpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKGFsbG93ZWRSZWFkVGFzayA9PiB7XHJcbiAgICAgICAgaWYgKGFsbG93ZWRSZWFkVGFzaykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tQZXJtaXNzaW9uQWRkRWxhcHNlZFRpbWVUb1Rhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhbGxvd2VkID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYWxsb3dlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0TmF2dnlFbGFwc2VkSXRlbS5hZGQocGFyYW0pLnJlcygpXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcign0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQv9GA0LDQstCwINC00L7QsdCw0LLQu9C10L3QuNC1INC30LDQv9C40YHQuCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LgnKSlcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JfQsNC60L7QvdGH0LXQvdC90YvQuSDQvNC10YLQvtC0INC+0LHQvdC+0LLQu9C10L3QuNGPINC30LDQv9C40YHQuCDRgSDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdC+0Lkg0L/RgNC+0LLQtdGA0LrQvtC5INC/0YDQsNCyXHJcbiAgICpcclxuICAgKiBUT0RPOiDQtNC+0LHQsNCy0LjRgtGMINGB0L7RhdGA0LDQvdC10L3QuNC1INC/0YDQtdC00LLQsNGA0LjRgtC10LvRjNC90L4g0L/RgNC+0LLQtdGA0LXQvdC90YvRhSDQt9Cw0L/QuNGB0LXQuVxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIHVwZGF0ZShwYXJhbTogaUJYUmVzdFBhcmFtVXBkYXRlRWxhcHNlZGl0ZW0pIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrUGVybWlzc2lvblJlYWRUYXNrKHBhcmFtLlRBU0tJRCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoKGFsbG93ZWRSZWFkVGFzaykgPT4ge1xyXG4gICAgICAgIGlmIChhbGxvd2VkUmVhZFRhc2spIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmlzQWxsb3dlZE1vZGlmeShwYXJhbS5UQVNLSUQsIHBhcmFtLklURU1JRCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoYWxsb3dlZCA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGFsbG93ZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0udXBkYXRlKHBhcmFtKS5yZXMoKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINC40LfQvNC10L3QtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JykpXHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgfSkpXHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiDRgNCw0LfQvtCx0YDQsNGC0YzRgdGPINGH0YLQviDRjdGC0L4g0LfQsCDQtdCx0LDRgtC90Y8g0LIg0LrQvtC80LzQtdC90YLQsNGFINC4INCy0L/QuNGB0LDRgtGMINC90L7RgNC80LDQu9GM0L3QvtC5INC60L7QvNC10L3RgiDQtdGB0LvQuCDQvtC90LAg0L3Rg9C20L3QsFxyXG4gIGlzQWxsb3dlZE1vZGlmeShpZFRhc2s6IG51bWJlciwgaWRJdGVtOiBudW1iZXIpIHtcclxuICAgIC8vIGxldCBwZXJtaXNzaW9uID0gUGVybWlzc2lvbi5nZXQoKVxyXG4gICAgLy8gaWYgKHBlcm1pc3Npb24/LnRhc2tzPy5sZW5ndGgpIHtcclxuICAgIC8vICAgbGV0IGZpbmRUYXNrID0gcGVybWlzc2lvbi50YXNrcy5maW5kKGkgPT4gaS5pZCA9PT0gaWRUYXNrKVxyXG4gICAgLy8gICBpZiAoZmluZFRhc2spIHtcclxuICAgIC8vICAgICBsZXQgZmluZCA9IGZpbmRUYXNrLmVsYXBzZWRJdGVtLmZpbmQoaSA9PiBpLmlkID09PSBpZEl0ZW0pXHJcbiAgICAvLyAgICAgaWYgKGZpbmQgJiYgZmluZC52ZXJpZmllZC5lZGl0KSB7XHJcbiAgICAvLyAgICAgICByZXR1cm4gb2YoZmluZC5lZGl0KVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG5cclxuICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0uaXNBY3Rpb25BbGxvd2VkKHtcclxuICAgICAgVEFTS0lEOiBpZFRhc2ssXHJcbiAgICAgIElURU1JRDogaWRJdGVtLFxyXG4gICAgICBBQ1RJT05JRDogMlxyXG4gICAgfSkucmVzKClcclxuICAgIC8vICAgLnBpcGUoXHJcbiAgICAvLyAgIHRhcCh2ID0+IHtcclxuICAgIC8vICAgICBpZiAodiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAvLyAgICAgICBQZXJtaXNzaW9uLnNldFRhc2tFbGFwc2VkSXRlbShpZFRhc2ssXHJcbiAgICAvLyAgICAgICAgIHtcclxuICAgIC8vICAgICAgICAgICBpZDogaWRJdGVtLFxyXG4gICAgLy8gICAgICAgICAgIGVkaXQ6IHYsXHJcbiAgICAvLyAgICAgICAgICAgZGVsOiBmYWxzZSxcclxuICAgIC8vICAgICAgICAgICB2ZXJpZmllZDoge1xyXG4gICAgLy8gICAgICAgICAgICAgZWRpdDogdHJ1ZSxcclxuICAgIC8vICAgICAgICAgICAgIGRlbDogZmFsc2UsXHJcbiAgICAvLyAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICB9KVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfSlcclxuICAgIC8vIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGlzQWN0aW9uQWxsb3dlZCDRgSDRhNC40LrRgdC+0Lwg0L3QsCDQv9GA0L7QstC10YDQutGDINCy0L7Qt9C80L7QttC90L7RgdGC0Lgg0YfRgtC10L3QuNGPINC30LDQtNCw0YfQuCDQt9Cw0L/QuNGB0LhcclxuICAgKiAo0LHQtdC3INC/0YDQvtCy0LXRgNC60Lgg0LTQsNGR0YIg0L7RiNC40LHQutGDKVxyXG4gICAqXHJcbiAgICogaWRBY3Rpb246XHJcbiAgICogMSAtIEFDVElPTl9FTEFQU0VEX1RJTUVfQUREXHJcbiAgICogMiAtIEFDVElPTl9FTEFQU0VEX1RJTUVfTU9ESUZZXHJcbiAgICogMyAtIEFDVElPTl9FTEFQU0VEX1RJTUVfUkVNT1ZFXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgaXNBY3Rpb25BbGxvd2VkKHBhcmFtOiBpSXNBY3Rpb25BbGxvd2VkUGFyYW0pIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrUGVybWlzc2lvblJlYWRUYXNrKHBhcmFtLlRBU0tJRCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoY2FuUmVhZCA9PiB7XHJcbiAgICAgICAgaWYgKGNhblJlYWQpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0uaXNBY3Rpb25BbGxvd2VkKHBhcmFtKS5yZXMoKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiDQn9C+0LvQvdC+0YbQtdC90L3Ri9C5INC80LXRgtC+0LQg0YPQtNCw0LvQtdC90LjRj1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgZGVsKHBhcmFtOiBpQlhSZXN0UGFyYW1EZWxFbGFwc2VkaXRlbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcChhbGxvd2VkUmVhZFRhc2sgPT4ge1xyXG4gICAgICAgIGlmIChhbGxvd2VkUmVhZFRhc2spIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmlzQWxsb3dlZFJlbW92ZShwYXJhbS5UQVNLSUQsIHBhcmFtLklURU1JRCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoYWxsb3dlZCA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGFsbG93ZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0uZGVsZXRlKHBhcmFtKS5yZXMoKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGD0LTQsNC70LXQvdC40LUg0LfQsNC/0LjRgdC4INC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCcpKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcign0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQv9GA0LDQstCwINC90LAg0YfRgtC10L3QuNC1INC30LDQtNCw0YfQuCcpKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNBbGxvd2VkUmVtb3ZlKGlkVGFzazogbnVtYmVyLCBpZEl0ZW06IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNBY3Rpb25BbGxvd2VkKFxyXG4gICAgICB7XHJcbiAgICAgICAgVEFTS0lEOiBpZFRhc2ssXHJcbiAgICAgICAgSVRFTUlEOiBpZEl0ZW0sXHJcbiAgICAgICAgQUNUSU9OSUQ6IDNcclxuICAgICAgfSlcclxuICB9XHJcbn1cclxuIl19
324
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svb3BlcmF0aW9uL2VsYXBzZWRpdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3ZILE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDMUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzlDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBSXhFLE1BQU0sT0FBTywrQkFBK0I7SUFPMUMsWUFBb0Isc0JBQThDO1FBQTlDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFMakQsU0FBSSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUE7UUFDM0IsYUFBUSxHQUFHLElBQUksOEJBQThCLEVBQUUsQ0FBQTtRQUMvQyxvQkFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUE7UUFDdkMscUJBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFBO0lBRzFELENBQUM7SUFFRCxhQUFhLENBQUMsUUFBa0IsRUFBRSxTQUFlLEVBQUUsT0FBYTtRQUM5RCxNQUFNLEtBQUssR0FBK0I7WUFD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QUFDO2dCQUNOLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FBQTtZQUMxRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsTUFBYyxFQUFFLE1BQWM7UUFDcEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUN6QjtZQUNFLE1BQU0sRUFBRSxNQUFNO1lBQ2QsTUFBTSxFQUFFLE1BQU07WUFDZCxRQUFRLEVBQUUsQ0FBQztTQUNaLENBQUMsQ0FBQTtJQUNOLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgaUJYUmVzdFBhcmFtRWxhcHNlZGl0ZW1HZXQsXHJcbiAgaUJYUmVzdFRhc2tFbGFwc2VkSXRlbUh0dHAsXHJcbiAgaUJYUmVzdFBhcmFtVGFza0dldEFjY2VzcyxcclxuICBpQlhSZXN0VGFza0dldEFjY2VzcyxcclxuICBpSXNBY3Rpb25BbGxvd2VkUGFyYW0sXHJcbiAgaUJYUmVzdFBhcmFtQWRkRWxhcHNlZGl0ZW0sXHJcbiAgaUJYUmVzdFBhcmFtVXBkYXRlRWxhcHNlZGl0ZW0sXHJcbiAgaUJYUmVzdFBhcmFtRGVsRWxhcHNlZGl0ZW1cclxufSBmcm9tICcuLi8uLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrJ1xyXG5pbXBvcnQgeyBIdHRwQlhTZXJ2aWNlcyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2h0dHAvSHR0cEJYJ1xyXG5pbXBvcnQgeyAkZWxhcHNlZGl0ZW0sICRnZXRhY2Nlc3MsICRnZXRsaXN0LCAkaXNhY3Rpb25hbGxvd2VkLCAkdGFzaywgJHRhc2tzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RzL3BhcnQtbmFtZS1tZXRob2RzJ1xyXG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgQlhSZXN0TWFwVGFza0VsYXBzZWRJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3Rhc2svZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IG1lcmdlTWFwLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5VXNlciB9IGZyb20gJy4uLy4uL3VzZXInXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5VGFza3MgfSBmcm9tICcuLi8uLi90YXNrcydcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlEZWxlZ2F0ZUVsYXBzZWRJdGVtIH0gZnJvbSAnLi4vZGVsZWdhdGUvZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IGlCWFJlc3RVc2VyIH0gZnJvbSAnLi4vLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdXNlcidcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlFbGFwc2VkSXRlbSB9IGZyb20gJy4uL2VsYXBzZWRpdGVtJ1xyXG5cclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5T3BlcmF0aW9uRWxhcHNlZEl0ZW0ge1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBuZXcgSHR0cEJYU2VydmljZXMoKVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVsZWdhdGUgPSBuZXcgQlhSZXN0TmF2dnlEZWxlZ2F0ZUVsYXBzZWRJdGVtKClcclxuICBwcml2YXRlIHJlYWRvbmx5IEJYUmVzdE5hdnZ5VXNlciA9IG5ldyBCWFJlc3ROYXZ2eVVzZXIoKVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgQlhSZXN0TmF2dnlUYXNrcyA9IG5ldyBCWFJlc3ROYXZ2eVRhc2tzKClcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBCWFJlc3ROYXZ2eUVsYXBzZWRJdGVtOiBCWFJlc3ROYXZ2eUVsYXBzZWRJdGVtKSB7XHJcbiAgfVxyXG5cclxuICBnZXRCeUludGVydmFsKGlkc1VzZXJzOiBudW1iZXJbXSwgZGF0ZVN0YXJ0OiBEYXRlLCBkYXRlRW5kOiBEYXRlKSB7XHJcbiAgICBjb25zdCBwYXJhbTogaUJYUmVzdFBhcmFtRWxhcHNlZGl0ZW1HZXQgPSB7XHJcbiAgICAgIE9SREVSOiB7XHJcbiAgICAgICAgSUQ6ICdERVNDJ1xyXG4gICAgICB9LFxyXG4gICAgICBGSUxURVI6IHtcclxuICAgICAgICBVU0VSX0lEOiBpZHNVc2VycyxcclxuICAgICAgICAnPj1DUkVBVEVEX0RBVEUnOiBkYXRlU3RhcnQudG9Mb2NhbGVTdHJpbmcoJ3J1LVJ1Jywge1xyXG4gICAgICAgICAgdGltZVpvbmVOYW1lOiAnc2hvcnQnXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgJzw9Q1JFQVRFRF9EQVRFJzogZGF0ZUVuZC50b0xvY2FsZVN0cmluZygncnUtUnUnLCB7XHJcbiAgICAgICAgICB0aW1lWm9uZU5hbWU6ICdzaG9ydCdcclxuICAgICAgICB9KSxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZGVsZWdhdGUuZ2V0TGlzdChwYXJhbSlcclxuICB9XHJcblxyXG4gIC8vIFRPRE86INCh0LTQtdC70LDRgtGMINC90L7RgNC80LDQu9GM0L3QvlxyXG4gIGdldExpc3RCeUlEVGFzayhpZHM6IG51bWJlcltdKSB7XHJcbiAgICAvLyDQoNCw0LHQvtGC0LDQtdGCINGC0L7Qu9GM0LrQviDQv9C+0YLQvtC80YMg0YfRgtC+IFwiblBhZ2VTaXplOiA5OTk5OVwiXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmJyYW5jaDxpQlhSZXN0UGFyYW1FbGFwc2VkaXRlbUdldCwgaUJYUmVzdFRhc2tFbGFwc2VkSXRlbUh0dHA+XHJcbiAgICAoXHJcbiAgICAgIGlkcy5tYXAoaSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIG5hbWU6IHRoaXMuaHR0cC5nZXROYW1lTWV0aG9kKFskdGFzaywgJGVsYXBzZWRpdGVtLCAkZ2V0bGlzdF0pLFxyXG4gICAgICAgICAgcGFyYW06IHtcclxuICAgICAgICAgICAgVEFTS0lEOiBpLFxyXG4gICAgICAgICAgICBQQVJBTVM6IHtcclxuICAgICAgICAgICAgICBOQVZfUEFSQU1TOiB7XHJcbiAgICAgICAgICAgICAgICBuUGFnZVNpemU6IDk5OTk5LFxyXG4gICAgICAgICAgICAgICAgaU51bVBhZ2U6IDFcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICBpZiAodiAmJiB2Lmxlbmd0aCkge1xyXG4gICAgICAgICAgY29uc3QgcmVzID0gdGhpcy5odHRwLm1hcEJyYW5jaFJlc3VsdFdpdGhvdXRLZXkodilcclxuICAgICAgICAgIHJldHVybiBCWFJlc3RNYXBUYXNrRWxhcHNlZEl0ZW0uZ2V0TGlzdChyZXMpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIGNoZWNrUGVybWlzc2lvbkFkZEVsYXBzZWRUaW1lVG9UYXNrQXJyKHRhc2tzOiBudW1iZXJbXSwgdXNlckN1cnJlbnQ6IGlCWFJlc3RVc2VyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKSB7XHJcbiAgICAvLyDQo9Cx0LjRgNCw0LXQvCDQtNGD0LHQu9C4LCDRh9GC0L7QsdGLINC90LUg0L/RgNC+0LLQtdGA0Y/RgtGMINC/0YDQsNCy0LAg0L/QviDQvtC00L3QvtC5INC30LDQtNCw0YfQtSDQvdC10YHQutC+0LvRjNC60L4g0YDQsNC3LlxyXG4gICAgY29uc3QgaWRzID0gWy4uLm5ldyBTZXQodGFza3MuZmlsdGVyKGkgPT4gISFpKSldXHJcbiAgICAvLyDQldGB0LvQuCDRgtC10LrRg9GJ0LjQuSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0L3QtSDQv9C10YDQtdC00LDQvSDRgdC90LDRgNGD0LbQuCwg0LfQsNC/0YDQsNGI0LjQstCw0LXQvCDQtdCz0L4g0L7QtNC40L0g0YDQsNC3INC90LAg0LLQtdGB0Ywg0L3QsNCx0L7RgCDQt9Cw0LTQsNGHLlxyXG4gICAgY29uc3QgdXNlciQgPSB1c2VyQ3VycmVudCA/IG9mKHVzZXJDdXJyZW50KSA6IHRoaXMuQlhSZXN0TmF2dnlVc2VyLmN1cnJlbnQoKS5yZXMoKVxyXG5cclxuICAgIC8vINCh0YLQsNGA0YvQuSBiYXRjaCDRh9C10YDQtdC3IHRhc2suZWxhcHNlZGl0ZW0uaXNhY3Rpb25hbGxvd2VkLlxyXG4gICAgLy8g0JLRi9C30YvQstCw0LXQvCDQtdCz0L4g0L3QuNC20LUg0YLQvtC70YzQutC+INC00LvRjyDQt9Cw0LTQsNGHLCDQv9C+INC60L7RgtC+0YDRi9C8IGdldGFjY2VzcyDQvdC1INCy0LXRgNC90YPQuyBFTEFQU0VEVElNRS5BREQuXHJcbiAgICBjb25zdCBsb2FkTWlzc2luZ0J5QWN0aW9uQWxsb3dlZCA9IChtaXNzaW5nSWRzOiBudW1iZXJbXSwgcmVzb2x2ZWQ6IHsgaWQ6IG51bWJlciwgdmFsdWU6IGJvb2xlYW4gfVtdKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuYnJhbmNoPGlJc0FjdGlvbkFsbG93ZWRQYXJhbSwgYm9vbGVhbj4oXHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgLi4ubWlzc2luZ0lkcy5tYXAoaSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBbaV06IHtcclxuICAgICAgICAgICAgICBuYW1lOiB0aGlzLmh0dHAuZ2V0TmFtZU1ldGhvZChbJHRhc2ssICRlbGFwc2VkaXRlbSwgJGlzYWN0aW9uYWxsb3dlZF0pLFxyXG4gICAgICAgICAgICAgIHBhcmFtOiB7XHJcbiAgICAgICAgICAgICAgICBUQVNLSUQ6IGksXHJcbiAgICAgICAgICAgICAgICBJVEVNSUQ6IDEsXHJcbiAgICAgICAgICAgICAgICBBQ1RJT05JRDogMVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pKVxyXG4gICAgICApLnBpcGUoXHJcbiAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYgJiYgdi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVzOiBSZWNvcmQ8bnVtYmVyLCBib29sZWFuPiA9IHRoaXMuaHR0cC5tYXBCcmFuY2hSZXN1bHQodilcclxuICAgICAgICAgICAgY29uc3QgbG9hZGVkID0gT2JqZWN0LmVudHJpZXMocmVzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7aWQ6IE51bWJlcihrZXkpLCB2YWx1ZX1cclxuICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBbLi4ucmVzb2x2ZWQsIC4uLmxvYWRlZF1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghaWRzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gb2YoW10pXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHVzZXIkLnBpcGUoXHJcbiAgICAgIHRha2UoMSksXHJcbiAgICAgIG1lcmdlTWFwKHNlbGYgPT4ge1xyXG4gICAgICAgIGlmICghc2VsZikge1xyXG4gICAgICAgICAgLy8g0KHRgtGA0LDRhdC+0LLQvtGH0L3QsNGPINCy0LXRgtC60LA6INC10YHQu9C4IHVzZXIuY3VycmVudCDQvdC1INCy0LXRgNC90YPQu9GB0Y8sIGdldGFjY2VzcyDQstGL0LfQstCw0YLRjCDQvdC10LvRjNC30Y8uXHJcbiAgICAgICAgICByZXR1cm4gbG9hZE1pc3NpbmdCeUFjdGlvbkFsbG93ZWQoaWRzLCBbXSlcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vINCe0YHQvdC+0LLQvdC+0Lkg0L/Rg9GC0Yw6INC+0LTQvdC40LwgYmF0Y2gt0LfQsNC/0YDQvtGB0L7QvCDQv9C+0LvRg9GH0LDQtdC8INC/0YDQsNCy0LAgRUxBUFNFRFRJTUUuQUREINC/0L4g0LLRgdC10Lwg0LfQsNC00LDRh9Cw0LwuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5icmFuY2g8aUJYUmVzdFBhcmFtVGFza0dldEFjY2VzcywgaUJYUmVzdFRhc2tHZXRBY2Nlc3M+KFxyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgLi4uaWRzLm1hcChpZCA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgW2lkXToge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5odHRwLmdldE5hbWVNZXRob2QoWyR0YXNrcywgJHRhc2ssICRnZXRhY2Nlc3NdKSxcclxuICAgICAgICAgICAgICAgIHBhcmFtOiB7XHJcbiAgICAgICAgICAgICAgICAgIGlkLFxyXG4gICAgICAgICAgICAgICAgICB1c2VyczogW3NlbGYuSURdXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KSlcclxuICAgICAgICApLnBpcGUoXHJcbiAgICAgICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICAgICAgaWYgKHYgJiYgdi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICBjb25zdCByZXMgPSB0aGlzLmh0dHAubWFwQnJhbmNoUmVzdWx0PGlCWFJlc3RUYXNrR2V0QWNjZXNzPih2KVxyXG4gICAgICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0gaWRzLm1hcChpZCA9PiAoe1xyXG4gICAgICAgICAgICAgICAgaWQsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogcmVzW2lkXT8uYWxsb3dlZEFjdGlvbnM/LltzZWxmLklEXT8uWydFTEFQU0VEVElNRS5BREQnXVxyXG4gICAgICAgICAgICAgIH0pKVxyXG5cclxuICAgICAgICAgICAgICAvLyBnZXRhY2Nlc3Mg0LzQvtC20LXRgiDQstC10YDQvdGD0YLRjCB0cnVlINC40LvQuCBmYWxzZSAtINC+0LHQsCDQt9C90LDRh9C10L3QuNGPINGB0YfQuNGC0LDQtdC8INCz0L7RgtC+0LLRi9C8INC+0YLQstC10YLQvtC8LlxyXG4gICAgICAgICAgICAgIC8vINCSINGB0YLQsNGA0YvQuSBpc2FjdGlvbmFsbG93ZWQg0L7RgtC/0YDQsNCy0LvRj9C10Lwg0YLQvtC70YzQutC+INC30LDQtNCw0YfQuCDQsdC10Lcg0Y/QstC90L7Qs9C+IEVMQVBTRURUSU1FLkFERC5cclxuICAgICAgICAgICAgICBjb25zdCByZXNvbHZlZCA9IHBlcm1pc3Npb25zLmZpbHRlcihpID0+IGkudmFsdWUgIT09IHVuZGVmaW5lZCkgYXMgeyBpZDogbnVtYmVyLCB2YWx1ZTogYm9vbGVhbiB9W11cclxuICAgICAgICAgICAgICBjb25zdCBtaXNzaW5nSWRzID0gcGVybWlzc2lvbnMuZmlsdGVyKGkgPT4gaS52YWx1ZSA9PT0gdW5kZWZpbmVkKS5tYXAoaSA9PiBpLmlkKVxyXG5cclxuICAgICAgICAgICAgICBpZiAobWlzc2luZ0lkcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBsb2FkTWlzc2luZ0J5QWN0aW9uQWxsb3dlZChtaXNzaW5nSWRzLCByZXNvbHZlZClcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIHJldHVybiBvZihwZXJtaXNzaW9ucylcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8g0JXRgdC70LggYmF0Y2ggZ2V0YWNjZXNzINC90LUg0LLQtdGA0L3Rg9C70YHRjywg0YHQvtGF0YDQsNC90Y/QtdC8INC/0L7QstC10LTQtdC90LjQtSDRgdGC0LDRgNC+0LPQviBmYWxsYmFjay5cclxuICAgICAgICAgICAgcmV0dXJuIGxvYWRNaXNzaW5nQnlBY3Rpb25BbGxvd2VkKGlkcywgW10pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcbiAgLyoqXHJcbiAgICog0J/RgNC+0LLQtdGA0LrQsCDQvdCwINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0LTQvtCx0LDQstC70LXQvdC40LUg0LfQsNC/0LjRgdC4INGC0YDQtdC60LAg0LIg0YLQsNGB0LrRg1xyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkVGFza1xyXG4gICAqIEBwYXJhbSB1c2VyQ3VycmVudFxyXG4gICAqL1xyXG4gIGNoZWNrUGVybWlzc2lvbkFkZEVsYXBzZWRUaW1lVG9UYXNrKGlkVGFzazogbnVtYmVyLCB1c2VyQ3VycmVudDogaUJYUmVzdFVzZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQpIHtcclxuICAgIC8vIGxldCBwZXJtaXNzaW9uID0gUGVybWlzc2lvbi5nZXQoKVxyXG4gICAgLy8gaWYgKHBlcm1pc3Npb24/LnRhc2tzPy5sZW5ndGgpIHtcclxuICAgIC8vICAgbGV0IGZpbmRUYXNrID0gcGVybWlzc2lvbi50YXNrcy5maW5kKGkgPT4gaS5pZCA9PT0gaWRUYXNrKVxyXG4gICAgLy8gICBpZiAoZmluZFRhc2s/LnBlcm1pc3Npb24pIHtcclxuICAgIC8vICAgICByZXR1cm4gb2YoZmluZFRhc2sucGVybWlzc2lvblsnRUxBUFNFRFRJTUUuQUREJ10pXHJcbiAgICAvLyAgIH1cclxuICAgIHJldHVybiAoKHVzZXJDdXJyZW50KSA/IG9mKHVzZXJDdXJyZW50KSA6IHRoaXMuQlhSZXN0TmF2dnlVc2VyLmN1cnJlbnQoKS5yZXMoKSkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoc2VsZiA9PiB7XHJcbiAgICAgICAgaWYgKHNlbGYpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5VGFza3MudGFzay5nZXRBY2Nlc3MoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBpZDogaWRUYXNrLFxyXG4gICAgICAgICAgICAgIHVzZXJzOiBbc2VsZi5JRF1cclxuICAgICAgICAgICAgfSkucmVzKCkucGlwZShcclxuICAgICAgICAgICAgLy8gdGFwKHYgPT4ge1xyXG4gICAgICAgICAgICAvLyAgIGlmICh2ICYmIHZbc2VsZi5JRF0pIHtcclxuICAgICAgICAgICAgLy8gICAgIFBlcm1pc3Npb24uc2V0KHtcclxuICAgICAgICAgICAgLy8gICAgICAgdGFza3M6IFt7aWQ6IGlkVGFzaywgcGVybWlzc2lvbjogdltzZWxmLklEXSwgZWxhcHNlZEl0ZW06IFtdfV1cclxuICAgICAgICAgICAgLy8gICAgIH0pXHJcbiAgICAgICAgICAgIC8vICAgfVxyXG4gICAgICAgICAgICAvLyB9KSxcclxuICAgICAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiAodiAmJiB2W3NlbGYuSURdKSA/IHZbc2VsZi5JRF1bJ0VMQVBTRURUSU1FLkFERCddIDogZmFsc2VcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCf0YDQvtCy0LXRgNC60LAg0L3QsCDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINC/0YDQvtGH0YLQtdC90LjRjyDRgtCw0LrRgdC60LhcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZFRhc2tcclxuICAgKiBAcGFyYW0gdXNlckN1cnJlbnRcclxuICAgKi9cclxuICBjaGVja1Blcm1pc3Npb25SZWFkVGFzayhpZFRhc2s6IG51bWJlciwgdXNlckN1cnJlbnQ6IGlCWFJlc3RVc2VyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKSB7XHJcbiAgICAvLyBsZXQgcGVybWlzc2lvbiA9IFBlcm1pc3Npb24uZ2V0KClcclxuICAgIC8vIGlmIChwZXJtaXNzaW9uPy50YXNrcz8ubGVuZ3RoKSB7XHJcbiAgICAvLyAgIGxldCBmaW5kVGFzayA9IHBlcm1pc3Npb24udGFza3MuZmluZChpID0+IGkuaWQgPT09IGlkVGFzaylcclxuICAgIC8vICAgaWYgKGZpbmRUYXNrPy5wZXJtaXNzaW9uKSB7XHJcbiAgICAvLyAgICAgcmV0dXJuIG9mKGZpbmRUYXNrLnBlcm1pc3Npb24uQUNDRVBUKVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIGNvbnNvbGUubG9nKCdpZFRhc2snLCBpZFRhc2spXHJcbiAgICByZXR1cm4gKCh1c2VyQ3VycmVudCkgPyBvZih1c2VyQ3VycmVudCkgOiB0aGlzLkJYUmVzdE5hdnZ5VXNlci5jdXJyZW50KCkucmVzKCkpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKHNlbGYgPT4ge1xyXG4gICAgICAgIGlmIChzZWxmKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5CWFJlc3ROYXZ2eVRhc2tzLnRhc2suZ2V0QWNjZXNzKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaWQ6IGlkVGFzayxcclxuICAgICAgICAgICAgICB1c2VyczogW3NlbGYuSURdXHJcbiAgICAgICAgICAgIH0pLnJlcygpLnBpcGUoXHJcbiAgICAgICAgICAgIC8vIHRhcCh2ID0+IHtcclxuICAgICAgICAgICAgLy8gICBpZiAodiAmJiB2W3NlbGYuSURdKSB7XHJcbiAgICAgICAgICAgIC8vICAgICBQZXJtaXNzaW9uLnNldCh7XHJcbiAgICAgICAgICAgIC8vICAgICAgIHRhc2tzOiBbe2lkOiBpZFRhc2ssIHBlcm1pc3Npb246IHZbc2VsZi5JRF0sIGVsYXBzZWRJdGVtOiBbXX1dXHJcbiAgICAgICAgICAgIC8vICAgICB9KVxyXG4gICAgICAgICAgICAvLyAgIH1cclxuICAgICAgICAgICAgLy8gfSksXHJcbiAgICAgICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gKHYgJiYgdltzZWxmLklEXSkgPyAhIXZbc2VsZi5JRF0gOiBmYWxzZSAvLyDQvtGC0LTQtdC70YzQvdC+0LPQviDRhNC70LDQs9CwINC90LAg0YfRgtC10L3QuNC1INC90LXRgiwg0LLRi9GF0L7QtNC40YIg0YfRgtC+INC10YHQu9C4INC/0YDQsNCy0LAg0L7RgtC00LDQu9C40YHRjCDRgtC+INC4INC/0YDQsNCy0LAg0LXRgdGC0YxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgICAvLyB9XHJcbiAgICAvL1xyXG4gICAgLy8gcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCX0LDQutC+0L3Rh9C10L3QvdGL0Lkg0LzQtdGC0L7QtCDQtNC+0LHQsNCy0LvQtdC90LjRjyDQt9Cw0L/QuNGB0Lgg0YEg0L/RgNC10LTQstCw0YDQuNGC0LXQu9GM0L3QvtC5INC/0YDQvtCy0LXRgNC60L7QuSDQv9GA0LDQslxyXG4gICAqXHJcbiAgICogVE9ETzog0LTQvtCx0LDQstC40YLRjCDRgdC+0YXRgNCw0L3QtdC90LjQtSDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdC+INC/0YDQvtCy0LXRgNC10L3QvdGL0YUg0LfQsNC/0LjRgdC10LlcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICBhZGQocGFyYW06IGlCWFJlc3RQYXJhbUFkZEVsYXBzZWRpdGVtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja1Blcm1pc3Npb25SZWFkVGFzayhwYXJhbS5UQVNLSUQpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKGFsbG93ZWRSZWFkVGFzayA9PiB7XHJcbiAgICAgICAgaWYgKGFsbG93ZWRSZWFkVGFzaykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tQZXJtaXNzaW9uQWRkRWxhcHNlZFRpbWVUb1Rhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhbGxvd2VkID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYWxsb3dlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0TmF2dnlFbGFwc2VkSXRlbS5hZGQocGFyYW0pLnJlcygpXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcign0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQv9GA0LDQstCwINC00L7QsdCw0LLQu9C10L3QuNC1INC30LDQv9C40YHQuCDQt9Cw0YLRgNCw0YfQtdC90L3QvtCz0L4g0LLRgNC10LzQtdC90LgnKSlcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JfQsNC60L7QvdGH0LXQvdC90YvQuSDQvNC10YLQvtC0INC+0LHQvdC+0LLQu9C10L3QuNGPINC30LDQv9C40YHQuCDRgSDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdC+0Lkg0L/RgNC+0LLQtdGA0LrQvtC5INC/0YDQsNCyXHJcbiAgICpcclxuICAgKiBUT0RPOiDQtNC+0LHQsNCy0LjRgtGMINGB0L7RhdGA0LDQvdC10L3QuNC1INC/0YDQtdC00LLQsNGA0LjRgtC10LvRjNC90L4g0L/RgNC+0LLQtdGA0LXQvdC90YvRhSDQt9Cw0L/QuNGB0LXQuVxyXG4gICAqIEBwYXJhbSBwYXJhbVxyXG4gICAqL1xyXG4gIHVwZGF0ZShwYXJhbTogaUJYUmVzdFBhcmFtVXBkYXRlRWxhcHNlZGl0ZW0pIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrUGVybWlzc2lvblJlYWRUYXNrKHBhcmFtLlRBU0tJRCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoKGFsbG93ZWRSZWFkVGFzaykgPT4ge1xyXG4gICAgICAgIGlmIChhbGxvd2VkUmVhZFRhc2spIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmlzQWxsb3dlZE1vZGlmeShwYXJhbS5UQVNLSUQsIHBhcmFtLklURU1JRCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoYWxsb3dlZCA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGFsbG93ZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0udXBkYXRlKHBhcmFtKS5yZXMoKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINC40LfQvNC10L3QtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JykpXHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgfSkpXHJcbiAgfVxyXG5cclxuICAvLyBUT0RPOiDRgNCw0LfQvtCx0YDQsNGC0YzRgdGPINGH0YLQviDRjdGC0L4g0LfQsCDQtdCx0LDRgtC90Y8g0LIg0LrQvtC80LzQtdC90YLQsNGFINC4INCy0L/QuNGB0LDRgtGMINC90L7RgNC80LDQu9GM0L3QvtC5INC60L7QvNC10L3RgiDQtdGB0LvQuCDQvtC90LAg0L3Rg9C20L3QsFxyXG4gIGlzQWxsb3dlZE1vZGlmeShpZFRhc2s6IG51bWJlciwgaWRJdGVtOiBudW1iZXIpIHtcclxuICAgIC8vIGxldCBwZXJtaXNzaW9uID0gUGVybWlzc2lvbi5nZXQoKVxyXG4gICAgLy8gaWYgKHBlcm1pc3Npb24/LnRhc2tzPy5sZW5ndGgpIHtcclxuICAgIC8vICAgbGV0IGZpbmRUYXNrID0gcGVybWlzc2lvbi50YXNrcy5maW5kKGkgPT4gaS5pZCA9PT0gaWRUYXNrKVxyXG4gICAgLy8gICBpZiAoZmluZFRhc2spIHtcclxuICAgIC8vICAgICBsZXQgZmluZCA9IGZpbmRUYXNrLmVsYXBzZWRJdGVtLmZpbmQoaSA9PiBpLmlkID09PSBpZEl0ZW0pXHJcbiAgICAvLyAgICAgaWYgKGZpbmQgJiYgZmluZC52ZXJpZmllZC5lZGl0KSB7XHJcbiAgICAvLyAgICAgICByZXR1cm4gb2YoZmluZC5lZGl0KVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG5cclxuICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0uaXNBY3Rpb25BbGxvd2VkKHtcclxuICAgICAgVEFTS0lEOiBpZFRhc2ssXHJcbiAgICAgIElURU1JRDogaWRJdGVtLFxyXG4gICAgICBBQ1RJT05JRDogMlxyXG4gICAgfSkucmVzKClcclxuICAgIC8vICAgLnBpcGUoXHJcbiAgICAvLyAgIHRhcCh2ID0+IHtcclxuICAgIC8vICAgICBpZiAodiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAvLyAgICAgICBQZXJtaXNzaW9uLnNldFRhc2tFbGFwc2VkSXRlbShpZFRhc2ssXHJcbiAgICAvLyAgICAgICAgIHtcclxuICAgIC8vICAgICAgICAgICBpZDogaWRJdGVtLFxyXG4gICAgLy8gICAgICAgICAgIGVkaXQ6IHYsXHJcbiAgICAvLyAgICAgICAgICAgZGVsOiBmYWxzZSxcclxuICAgIC8vICAgICAgICAgICB2ZXJpZmllZDoge1xyXG4gICAgLy8gICAgICAgICAgICAgZWRpdDogdHJ1ZSxcclxuICAgIC8vICAgICAgICAgICAgIGRlbDogZmFsc2UsXHJcbiAgICAvLyAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICB9KVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfSlcclxuICAgIC8vIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGlzQWN0aW9uQWxsb3dlZCDRgSDRhNC40LrRgdC+0Lwg0L3QsCDQv9GA0L7QstC10YDQutGDINCy0L7Qt9C80L7QttC90L7RgdGC0Lgg0YfRgtC10L3QuNGPINC30LDQtNCw0YfQuCDQt9Cw0L/QuNGB0LhcclxuICAgKiAo0LHQtdC3INC/0YDQvtCy0LXRgNC60Lgg0LTQsNGR0YIg0L7RiNC40LHQutGDKVxyXG4gICAqXHJcbiAgICogaWRBY3Rpb246XHJcbiAgICogMSAtIEFDVElPTl9FTEFQU0VEX1RJTUVfQUREXHJcbiAgICogMiAtIEFDVElPTl9FTEFQU0VEX1RJTUVfTU9ESUZZXHJcbiAgICogMyAtIEFDVElPTl9FTEFQU0VEX1RJTUVfUkVNT1ZFXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgaXNBY3Rpb25BbGxvd2VkKHBhcmFtOiBpSXNBY3Rpb25BbGxvd2VkUGFyYW0pIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrUGVybWlzc2lvblJlYWRUYXNrKHBhcmFtLlRBU0tJRCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoY2FuUmVhZCA9PiB7XHJcbiAgICAgICAgaWYgKGNhblJlYWQpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0uaXNBY3Rpb25BbGxvd2VkKHBhcmFtKS5yZXMoKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiDQn9C+0LvQvdC+0YbQtdC90L3Ri9C5INC80LXRgtC+0LQg0YPQtNCw0LvQtdC90LjRj1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtXHJcbiAgICovXHJcbiAgZGVsKHBhcmFtOiBpQlhSZXN0UGFyYW1EZWxFbGFwc2VkaXRlbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcChhbGxvd2VkUmVhZFRhc2sgPT4ge1xyXG4gICAgICAgIGlmIChhbGxvd2VkUmVhZFRhc2spIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmlzQWxsb3dlZFJlbW92ZShwYXJhbS5UQVNLSUQsIHBhcmFtLklURU1JRCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoYWxsb3dlZCA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGFsbG93ZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdE5hdnZ5RWxhcHNlZEl0ZW0uZGVsZXRlKHBhcmFtKS5yZXMoKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGD0LTQsNC70LXQvdC40LUg0LfQsNC/0LjRgdC4INC30LDRgtGA0LDRh9C10L3QvdC+0LPQviDQstGA0LXQvNC10L3QuCcpKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcign0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQv9GA0LDQstCwINC90LAg0YfRgtC10L3QuNC1INC30LDQtNCw0YfQuCcpKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNBbGxvd2VkUmVtb3ZlKGlkVGFzazogbnVtYmVyLCBpZEl0ZW06IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNBY3Rpb25BbGxvd2VkKFxyXG4gICAgICB7XHJcbiAgICAgICAgVEFTS0lEOiBpZFRhc2ssXHJcbiAgICAgICAgSVRFTUlEOiBpZEl0ZW0sXHJcbiAgICAgICAgQUNUSU9OSUQ6IDNcclxuICAgICAgfSlcclxuICB9XHJcbn1cclxuIl19