tnx-shared 5.1.235 → 5.1.239

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 (38) hide show
  1. package/bundles/tnx-shared.umd.js +78 -16
  2. package/bundles/tnx-shared.umd.js.map +1 -1
  3. package/bundles/tnx-shared.umd.min.js +1 -1
  4. package/bundles/tnx-shared.umd.min.js.map +1 -1
  5. package/components/autocomplete-picker/autocomplete-picker.component.d.ts.map +1 -1
  6. package/components/cocautochuc/cocautochuc-picker-list/cocautochuc-picker-list.component.d.ts +1 -0
  7. package/components/cocautochuc/cocautochuc-picker-list/cocautochuc-picker-list.component.d.ts.map +1 -1
  8. package/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.d.ts +1 -0
  9. package/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.d.ts.map +1 -1
  10. package/components/user-picker/user-picker-box/user-picker-box.component.d.ts +1 -0
  11. package/components/user-picker/user-picker-box/user-picker-box.component.d.ts.map +1 -1
  12. package/components/user-picker/user-picker.component.d.ts +8 -1
  13. package/components/user-picker/user-picker.component.d.ts.map +1 -1
  14. package/components/workflow/models/models.d.ts +3 -0
  15. package/components/workflow/models/models.d.ts.map +1 -1
  16. package/components/workflow/process-workflow-form/process-workflow-form.component.d.ts.map +1 -1
  17. package/components/workflow/process-workflow-target/process-workflow-target.component.d.ts +2 -2
  18. package/components/workflow/process-workflow-target/process-workflow-target.component.d.ts.map +1 -1
  19. package/esm2015/components/autocomplete-picker/autocomplete-picker.component.js +1 -2
  20. package/esm2015/components/chat/chat-box/chat-box.component.js +1 -1
  21. package/esm2015/components/chat/chat-send-message-box/chat-send-message-box.component.js +1 -1
  22. package/esm2015/components/cocautochuc/cocautochuc-picker-list/cocautochuc-picker-list.component.js +3 -2
  23. package/esm2015/components/crud/crud-form/crud-form.component.js +2 -2
  24. package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.js +8 -3
  25. package/esm2015/components/statemachines/statemachines-connection-metadata/statemachines-connection-metadata.component.js +2 -2
  26. package/esm2015/components/user-picker/user-picker-box/user-picker-box.component.js +3 -2
  27. package/esm2015/components/user-picker/user-picker.component.js +39 -4
  28. package/esm2015/components/workflow/models/models.js +1 -1
  29. package/esm2015/components/workflow/process-workflow-form/process-workflow-form.component.js +5 -2
  30. package/esm2015/components/workflow/process-workflow-target/process-workflow-target.component.js +10 -4
  31. package/esm2015/services/master-data.service.js +2 -2
  32. package/esm2015/services/user-group-real.service.js +5 -1
  33. package/fesm2015/tnx-shared.js +70 -16
  34. package/fesm2015/tnx-shared.js.map +1 -1
  35. package/package.json +2 -2
  36. package/services/user-group-real.service.d.ts +2 -0
  37. package/services/user-group-real.service.d.ts.map +1 -1
  38. package/tnx-shared.metadata.json +1 -1
@@ -74,9 +74,15 @@ export class ProcessWorkflowTargetComponent extends DataFormBase {
74
74
  evt.model.departmentIds = this.data.departmentIds;
75
75
  evt.model.groupIds = this.data.groupIds;
76
76
  // evt.model.roleIds = this.data.roleIds;
77
- if (this.action.targetsAllowModify) {
78
- if (this.action.targetsAllowModify.some(x => x == EnumTargetType.DEPARTMENT)) {
79
- evt.model.departmentIds_readOnly = evt.model.departmentIds;
77
+ if (this.action && this.action.targetsAllowModify) {
78
+ if (!this.action.targetsAllowModify.some(x => x == EnumTargetType.USER)) {
79
+ evt.model.userIds_readOnly = evt.model.userIds.filter(q => this.initValue.lstUserIdInWorkflow.some(x => x == q));
80
+ }
81
+ if (!this.action.targetsAllowModify.some(x => x == EnumTargetType.DEPARTMENT)) {
82
+ evt.model.departmentIds_readOnly = evt.model.departmentIds.filter(q => this.initValue.lstDonViIdInWorkflow.some(x => x == q));
83
+ }
84
+ if (!this.action.targetsAllowModify.some(x => x == EnumTargetType.GROUP)) {
85
+ evt.model.groupIds_readOnly = evt.model.groupIds.filter(q => this.initValue.lstGroupIdInWorkflow.some(x => x == q));
80
86
  }
81
87
  }
82
88
  });
@@ -101,4 +107,4 @@ ProcessWorkflowTargetComponent.propDecorators = {
101
107
  initValue: [{ type: Input }],
102
108
  action: [{ type: Input }]
103
109
  };
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy13b3JrZmxvdy10YXJnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvd29ya2Zsb3cvcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQvcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBUXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDM0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUNILHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsNEJBQTRCLEVBQzVCLHVCQUF1QixFQUMxQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU94RSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsWUFBWTtJQUs1RCxZQUNjLFNBQW1CLEVBQ3JCLHFCQUEyQyxFQUMzQyxtQkFBdUMsRUFDdkMsaUJBQXVDLEVBQ3ZDLGdCQUFpQztRQUV6QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFOUCxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ3JCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7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LGdCQUFnQixFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUssaUJBQWlCLENBQUMsR0FBYzs7WUFDbEMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDdEMsR0FBRyxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDbEQsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDeEMseUNBQXlDO1lBQ3pDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRTtnQkFDaEMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUU7b0JBQzFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7aUJBQzlEO2FBQ0o7UUFDTCxDQUFDO0tBQUE7OztZQW5GSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsaU1BQXVEOzthQUUxRDs7O1lBMUJtQixRQUFRO1lBYW5CLG9CQUFvQjtZQUZwQixrQkFBa0I7WUFEbEIsb0JBQW9CO1lBRHBCLGVBQWU7OzttQkFtQm5CLEtBQUs7d0JBQ0wsS0FBSztxQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRhRm9ybUJhc2UgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Jhc2UvZGF0YS1mb3JtLWJhc2UnO1xyXG5pbXBvcnQge1xyXG4gICAgQXV0b0NvbXBsZXRlUGlja2VyQ29udHJvbFNjaGVtYSxcclxuICAgIERyb3Bkb3duQ29udHJvbFNjaGVtYSxcclxuICAgIEV2ZW50RGF0YSxcclxuICAgIEZvcm1TY2hlbWFCYXNlLFxyXG4gICAgVXNlclBpY2tlckNvbnRyb2xTY2hlbWFcclxufSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgRG1DaHVjVnVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZG0tY2h1Y3Z1LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyR3JvdXBSZWFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3VzZXItZ3JvdXAtcmVhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29DYXVUb0NodWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29jYXV0b2NodWMvc2VydmljZXMvY29jYXV0b2NodWMuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudW1Qcm9jZXNzV29ya2Zsb3dUeXBlLCBFbnVtVGFyZ2V0VHlwZSB9IGZyb20gJy4uLy4uL3N0YXRlbWFjaGluZXMvbW9kZWxzL2VudW1zJztcclxuaW1wb3J0IHsgU3RhdGVNYWNoaW5lc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zdGF0ZW1hY2hpbmVzL3NlcnZpY2VzL3N0YXRlbWFjaGluZXMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgICBjcmVhdGVPcmdQaWNrZXJDb250cm9sLFxyXG4gICAgY3JlYXRlUm9sZVBpY2tlckNvbnRyb2wsXHJcbiAgICBjcmVhdGVVc2VyR3JvdXBQaWNrZXJDb250cm9sLFxyXG4gICAgY3JlYXRlVXNlclBpY2tlckNvbnRyb2xcclxufSBmcm9tICcuLi8uLi9zdGF0ZW1hY2hpbmVzL3V0aWxzL3V0aWxzJztcclxuaW1wb3J0IHsgV2ZBY3Rpb24sIFdvcmtmbG93VGFyZ2V0RGVmYXVsdFZhbHVlIH0gZnJvbSAnLi4vbW9kZWxzL21vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncHJvY2Vzcy13b3JrZmxvdy10YXJnZXQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2Nlc3Mtd29ya2Zsb3ctdGFyZ2V0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Byb2Nlc3Mtd29ya2Zsb3ctdGFyZ2V0LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvY2Vzc1dvcmtmbG93VGFyZ2V0Q29tcG9uZW50IGV4dGVuZHMgRGF0YUZvcm1CYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGRhdGE6IGFueTtcclxuICAgIEBJbnB1dCgpIGluaXRWYWx1ZTogV29ya2Zsb3dUYXJnZXREZWZhdWx0VmFsdWU7XHJcbiAgICBASW5wdXQoKSBhY3Rpb246IFdmQWN0aW9uO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByaXZhdGUgX3N0YXRlTWFjaGluZXNTZXJ2aWNlOiBTdGF0ZU1hY2hpbmVzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9jb0NhdVRvQ2h1Y1NlcnZpY2U6IENvQ2F1VG9DaHVjU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF91c2VyR3JvdXBTZXJ2aWNlOiBVc2VyR3JvdXBSZWFsU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9kbUNodWNWdVNlcnZpY2U6IERtQ2h1Y1Z1U2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEudXNlcklkcykgdGhpcy5kYXRhLnVzZXJJZHMgPSBbXTtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YS5ydWxlcykgdGhpcy5kYXRhLnJ1bGVzID0gW107XHJcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEucnVsZUluV29ya2Zsb3dzKSB0aGlzLmRhdGEucnVsZUluV29ya2Zsb3dzID0gW107XHJcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEuZGVwYXJ0bWVudElkcykgdGhpcy5kYXRhLmRlcGFydG1lbnRJZHMgPSBbXTtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YS5ncm91cElkcykgdGhpcy5kYXRhLmdyb3VwSWRzID0gW107XHJcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEucm9sZUlkcykgdGhpcy5kYXRhLnJvbGVJZHMgPSBbXTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UgPSB0aGlzLl9zdGF0ZU1hY2hpbmVzU2VydmljZTtcclxuICAgICAgICAvLyBzZXQgdGV4dCBsYWJlbFxyXG4gICAgICAgIGxldCB0eHRMYWJlbCA9ICduaOG6rW4geOG7rSBsw70nO1xyXG4gICAgICAgIGlmICh0aGlzLmRhdGEudHlwZSA9PT0gRW51bVByb2Nlc3NXb3JrZmxvd1R5cGUuVklFVykge1xyXG4gICAgICAgICAgICB0eHRMYWJlbCA9ICd0aGVvIGTDtWknO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldHRpbmcuc2NoZW1hID0gPEZvcm1TY2hlbWFCYXNlW10+W1xyXG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVVc2VyUGlja2VyQ29udHJvbCgndXNlcklkcycsIGBOZ8aw4budaSAke3R4dExhYmVsfWApLFxyXG4gICAgICAgICAgICAvLyB0aGlzLmNyZWF0ZVVzZXJQaWNrZXJDb250cm9sKCdpZENhcFRyZW5HYW5OaGF0cycsICdDw6FuIGLhu5kgY+G6pXAgdHLDqm4gZ+G6p24gbmjhuqV0JyksXHJcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvQ2F1VG9DaHVjQ29udHJvbCgnZGVwYXJ0bWVudElkcycsIGDEkMahbiB24buLICR7dHh0TGFiZWx9YCksXHJcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVVzZXJHcm91cFBpY2tlckNvbnRyb2woJ2dyb3VwSWRzJywgYE5ow7NtIG5nxrDhu51pICR7dHh0TGFiZWx9YCksXHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2NyZWF0ZVJvbGVQaWNrZXJDb250cm9sKCdyb2xlSWRzJywgJ0No4bupYyB24bulJylcclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIF9jcmVhdGVVc2VyUGlja2VyQ29udHJvbChmaWVsZDogc3RyaW5nLCBsYWJlbDogc3RyaW5nLCBtdWx0aXBsZTogYm9vbGVhbiA9IHRydWUpOiBVc2VyUGlja2VyQ29udHJvbFNjaGVtYSB7XHJcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGNyZWF0ZVVzZXJQaWNrZXJDb250cm9sKGZpZWxkLCBsYWJlbCwgMTUsIChpdGVtOiBhbnkpID0+IHRoaXMuX3VzZXJTZXJ2aWNlLmdldEZ1bGxDYW5Cb0xhYmVsKGl0ZW0sIHRydWUpKTtcclxuICAgICAgICBjb250cm9sLm11bHRpcGxlID0gbXVsdGlwbGU7XHJcbiAgICAgICAgY29udHJvbC5wbHVzVXJsID0gJ0ZvclVzZXJQaWNrZXInO1xyXG4gICAgICAgIC8vIGNvbnRyb2wubGF6eUxvYWRPcmdhbml6YXRpb24gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBjb250cm9sO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHByaXZhdGUgZ2V0VXNlckxhYmVsKGl0ZW06IGFueSkge1xyXG4gICAgLy8gICAgIGxldCBsYWJlbCA9IHRoaXMuX3VzZXJTZXJ2aWNlLmdldFVzZXJOYW1lKGl0ZW0pO1xyXG4gICAgLy8gICAgIGxhYmVsID0gKGl0ZW0ubWFDaHVjVnUgPyBgJHtpdGVtLm1hQ2h1Y1Z1fS4gYCA6ICcnKSArIGAke2xhYmVsfWAgKyAoaXRlbS50ZW5Eb25WaSA/IGAgLSAke2l0ZW0udGVuRG9uVml9YCA6ICcnKTtcclxuICAgIC8vICAgICByZXR1cm4gbGFiZWw7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgX2NyZWF0ZUNvQ2F1VG9DaHVjQ29udHJvbChmaWVsZDogc3RyaW5nLCBsYWJlbDogc3RyaW5nKTogRHJvcGRvd25Db250cm9sU2NoZW1hIHtcclxuICAgICAgICByZXR1cm4gY3JlYXRlT3JnUGlja2VyQ29udHJvbChmaWVsZCwgbGFiZWwpO1xyXG4gICAgfVxyXG5cclxuICAgIF9jcmVhdGVVc2VyR3JvdXBQaWNrZXJDb250cm9sKGZpZWxkLCBsYWJlbCk6IEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEge1xyXG4gICAgICAgIHJldHVybiBjcmVhdGVVc2VyR3JvdXBQaWNrZXJDb250cm9sKHRoaXMuX3VzZXJHcm91cFNlcnZpY2UsIGZpZWxkLCBsYWJlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgX2NyZWF0ZVJvbGVQaWNrZXJDb250cm9sKGZpZWxkLCBsYWJlbCk6IEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEge1xyXG4gICAgICAgIHJldHVybiBjcmVhdGVSb2xlUGlja2VyQ29udHJvbCh0aGlzLl9kbUNodWNWdVNlcnZpY2UsIGZpZWxkLCBsYWJlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25Gb3JtSW5pdGlhbGl6ZWQoZXZ0OiBFdmVudERhdGEpIHtcclxuICAgICAgICBldnQubW9kZWwudXNlcklkcyA9IHRoaXMuZGF0YS51c2VySWRzO1xyXG4gICAgICAgIGV2dC5tb2RlbC5kZXBhcnRtZW50SWRzID0gdGhpcy5kYXRhLmRlcGFydG1lbnRJZHM7XHJcbiAgICAgICAgZXZ0Lm1vZGVsLmdyb3VwSWRzID0gdGhpcy5kYXRhLmdyb3VwSWRzO1xyXG4gICAgICAgIC8vIGV2dC5tb2RlbC5yb2xlSWRzID0gdGhpcy5kYXRhLnJvbGVJZHM7XHJcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uLnRhcmdldHNBbGxvd01vZGlmeSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hY3Rpb24udGFyZ2V0c0FsbG93TW9kaWZ5LnNvbWUoeCA9PiB4ID09IEVudW1UYXJnZXRUeXBlLkRFUEFSVE1FTlQpKSB7XHJcbiAgICAgICAgICAgICAgICBldnQubW9kZWwuZGVwYXJ0bWVudElkc19yZWFkT25seSA9IGV2dC5tb2RlbC5kZXBhcnRtZW50SWRzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy13b3JrZmxvdy10YXJnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvd29ya2Zsb3cvcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQvcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBT3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDM0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUNILHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsNEJBQTRCLEVBQzVCLHVCQUF1QixFQUMxQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU94RSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsWUFBWTtJQUs1RCxZQUNjLFNBQW1CLEVBQ3JCLHFCQUEyQyxFQUMzQyxtQkFBdUMsRUFDdkMsaUJBQXVDLEVBQ3ZDLGdCQUFpQztRQUV6QyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFOUCxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ3JCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7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QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDakk7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDdEUsR0FBRyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN2SDthQUNKO1FBQ0wsQ0FBQztLQUFBOzs7WUF6RkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLGlNQUF1RDs7YUFFMUQ7OztZQXpCbUIsUUFBUTtZQVluQixvQkFBb0I7WUFGcEIsa0JBQWtCO1lBRGxCLG9CQUFvQjtZQURwQixlQUFlOzs7bUJBbUJuQixLQUFLO3dCQUNMLEtBQUs7cUJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YUZvcm1CYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtZm9ybS1iYXNlJztcclxuaW1wb3J0IHtcclxuICAgIEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEsXHJcbiAgICBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWEsIEV2ZW50RGF0YSxcclxuICAgIEZvcm1TY2hlbWFCYXNlLFxyXG4gICAgVXNlclBpY2tlckNvbnRyb2xTY2hlbWFcclxufSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgRG1DaHVjVnVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZG0tY2h1Y3Z1LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyR3JvdXBSZWFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3VzZXItZ3JvdXAtcmVhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29DYXVUb0NodWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29jYXV0b2NodWMvc2VydmljZXMvY29jYXV0b2NodWMuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudW1Qcm9jZXNzV29ya2Zsb3dUeXBlLCBFbnVtVGFyZ2V0VHlwZSB9IGZyb20gJy4uLy4uL3N0YXRlbWFjaGluZXMvbW9kZWxzL2VudW1zJztcclxuaW1wb3J0IHsgU3RhdGVNYWNoaW5lc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zdGF0ZW1hY2hpbmVzL3NlcnZpY2VzL3N0YXRlbWFjaGluZXMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgICBjcmVhdGVPcmdQaWNrZXJDb250cm9sLFxyXG4gICAgY3JlYXRlUm9sZVBpY2tlckNvbnRyb2wsXHJcbiAgICBjcmVhdGVVc2VyR3JvdXBQaWNrZXJDb250cm9sLFxyXG4gICAgY3JlYXRlVXNlclBpY2tlckNvbnRyb2xcclxufSBmcm9tICcuLi8uLi9zdGF0ZW1hY2hpbmVzL3V0aWxzL3V0aWxzJztcclxuaW1wb3J0IHsgV2ZBY3Rpb24sIFdvcmtmbG93VGFyZ2V0RGVmYXVsdFZhbHVlIH0gZnJvbSAnLi4vbW9kZWxzL21vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncHJvY2Vzcy13b3JrZmxvdy10YXJnZXQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2Nlc3Mtd29ya2Zsb3ctdGFyZ2V0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Byb2Nlc3Mtd29ya2Zsb3ctdGFyZ2V0LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvY2Vzc1dvcmtmbG93VGFyZ2V0Q29tcG9uZW50IGV4dGVuZHMgRGF0YUZvcm1CYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGRhdGE6IGFueTtcclxuICAgIEBJbnB1dCgpIGluaXRWYWx1ZTogV29ya2Zsb3dUYXJnZXREZWZhdWx0VmFsdWU7XHJcbiAgICBASW5wdXQoKSBhY3Rpb246IFdmQWN0aW9uO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByaXZhdGUgX3N0YXRlTWFjaGluZXNTZXJ2aWNlOiBTdGF0ZU1hY2hpbmVzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9jb0NhdVRvQ2h1Y1NlcnZpY2U6IENvQ2F1VG9DaHVjU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF91c2VyR3JvdXBTZXJ2aWNlOiBVc2VyR3JvdXBSZWFsU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9kbUNodWNWdVNlcnZpY2U6IERtQ2h1Y1Z1U2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEudXNlcklkcykgdGhpcy5kYXRhLnVzZXJJZHMgPSBbXTtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YS5ydWxlcykgdGhpcy5kYXRhLnJ1bGVzID0gW107XHJcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEucnVsZUluV29ya2Zsb3dzKSB0aGlzLmRhdGEucnVsZUluV29ya2Zsb3dzID0gW107XHJcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEuZGVwYXJ0bWVudElkcykgdGhpcy5kYXRhLmRlcGFydG1lbnRJZHMgPSBbXTtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YS5ncm91cElkcykgdGhpcy5kYXRhLmdyb3VwSWRzID0gW107XHJcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEucm9sZUlkcykgdGhpcy5kYXRhLnJvbGVJZHMgPSBbXTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UgPSB0aGlzLl9zdGF0ZU1hY2hpbmVzU2VydmljZTtcclxuICAgICAgICAvLyBzZXQgdGV4dCBsYWJlbFxyXG4gICAgICAgIGxldCB0eHRMYWJlbCA9ICduaOG6rW4geOG7rSBsw70nO1xyXG4gICAgICAgIGlmICh0aGlzLmRhdGEudHlwZSA9PT0gRW51bVByb2Nlc3NXb3JrZmxvd1R5cGUuVklFVykge1xyXG4gICAgICAgICAgICB0eHRMYWJlbCA9ICd0aGVvIGTDtWknO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldHRpbmcuc2NoZW1hID0gPEZvcm1TY2hlbWFCYXNlW10+W1xyXG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVVc2VyUGlja2VyQ29udHJvbCgndXNlcklkcycsIGBOZ8aw4budaSAke3R4dExhYmVsfWApLFxyXG4gICAgICAgICAgICAvLyB0aGlzLmNyZWF0ZVVzZXJQaWNrZXJDb250cm9sKCdpZENhcFRyZW5HYW5OaGF0cycsICdDw6FuIGLhu5kgY+G6pXAgdHLDqm4gZ+G6p24gbmjhuqV0JyksXHJcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvQ2F1VG9DaHVjQ29udHJvbCgnZGVwYXJ0bWVudElkcycsIGDEkMahbiB24buLICR7dHh0TGFiZWx9YCksXHJcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVVzZXJHcm91cFBpY2tlckNvbnRyb2woJ2dyb3VwSWRzJywgYE5ow7NtIG5nxrDhu51pICR7dHh0TGFiZWx9YCksXHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2NyZWF0ZVJvbGVQaWNrZXJDb250cm9sKCdyb2xlSWRzJywgJ0No4bupYyB24bulJylcclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIF9jcmVhdGVVc2VyUGlja2VyQ29udHJvbChmaWVsZDogc3RyaW5nLCBsYWJlbDogc3RyaW5nLCBtdWx0aXBsZTogYm9vbGVhbiA9IHRydWUpOiBVc2VyUGlja2VyQ29udHJvbFNjaGVtYSB7XHJcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGNyZWF0ZVVzZXJQaWNrZXJDb250cm9sKGZpZWxkLCBsYWJlbCwgMTUsIChpdGVtOiBhbnkpID0+IHRoaXMuX3VzZXJTZXJ2aWNlLmdldEZ1bGxDYW5Cb0xhYmVsKGl0ZW0sIHRydWUpKTtcclxuICAgICAgICBjb250cm9sLm11bHRpcGxlID0gbXVsdGlwbGU7XHJcbiAgICAgICAgY29udHJvbC5wbHVzVXJsID0gJ0ZvclVzZXJQaWNrZXInO1xyXG4gICAgICAgIC8vIGNvbnRyb2wubGF6eUxvYWRPcmdhbml6YXRpb24gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBjb250cm9sO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHByaXZhdGUgZ2V0VXNlckxhYmVsKGl0ZW06IGFueSkge1xyXG4gICAgLy8gICAgIGxldCBsYWJlbCA9IHRoaXMuX3VzZXJTZXJ2aWNlLmdldFVzZXJOYW1lKGl0ZW0pO1xyXG4gICAgLy8gICAgIGxhYmVsID0gKGl0ZW0ubWFDaHVjVnUgPyBgJHtpdGVtLm1hQ2h1Y1Z1fS4gYCA6ICcnKSArIGAke2xhYmVsfWAgKyAoaXRlbS50ZW5Eb25WaSA/IGAgLSAke2l0ZW0udGVuRG9uVml9YCA6ICcnKTtcclxuICAgIC8vICAgICByZXR1cm4gbGFiZWw7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgX2NyZWF0ZUNvQ2F1VG9DaHVjQ29udHJvbChmaWVsZDogc3RyaW5nLCBsYWJlbDogc3RyaW5nKTogQ29DYXVUb0NodWNQaWNrZXJDb250cm9sU2NoZW1hIHtcclxuICAgICAgICByZXR1cm4gY3JlYXRlT3JnUGlja2VyQ29udHJvbChmaWVsZCwgbGFiZWwpO1xyXG4gICAgfVxyXG5cclxuICAgIF9jcmVhdGVVc2VyR3JvdXBQaWNrZXJDb250cm9sKGZpZWxkLCBsYWJlbCk6IEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEge1xyXG4gICAgICAgIHJldHVybiBjcmVhdGVVc2VyR3JvdXBQaWNrZXJDb250cm9sKHRoaXMuX3VzZXJHcm91cFNlcnZpY2UsIGZpZWxkLCBsYWJlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgX2NyZWF0ZVJvbGVQaWNrZXJDb250cm9sKGZpZWxkLCBsYWJlbCk6IEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEge1xyXG4gICAgICAgIHJldHVybiBjcmVhdGVSb2xlUGlja2VyQ29udHJvbCh0aGlzLl9kbUNodWNWdVNlcnZpY2UsIGZpZWxkLCBsYWJlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25Gb3JtSW5pdGlhbGl6ZWQoZXZ0OiBFdmVudERhdGEpIHtcclxuICAgICAgICBldnQubW9kZWwudXNlcklkcyA9IHRoaXMuZGF0YS51c2VySWRzO1xyXG4gICAgICAgIGV2dC5tb2RlbC5kZXBhcnRtZW50SWRzID0gdGhpcy5kYXRhLmRlcGFydG1lbnRJZHM7XHJcbiAgICAgICAgZXZ0Lm1vZGVsLmdyb3VwSWRzID0gdGhpcy5kYXRhLmdyb3VwSWRzO1xyXG4gICAgICAgIC8vIGV2dC5tb2RlbC5yb2xlSWRzID0gdGhpcy5kYXRhLnJvbGVJZHM7XHJcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uICYmIHRoaXMuYWN0aW9uLnRhcmdldHNBbGxvd01vZGlmeSkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuYWN0aW9uLnRhcmdldHNBbGxvd01vZGlmeS5zb21lKHggPT4geCA9PSBFbnVtVGFyZ2V0VHlwZS5VU0VSKSkge1xyXG4gICAgICAgICAgICAgICAgZXZ0Lm1vZGVsLnVzZXJJZHNfcmVhZE9ubHkgPSBldnQubW9kZWwudXNlcklkcy5maWx0ZXIocSA9PiB0aGlzLmluaXRWYWx1ZS5sc3RVc2VySWRJbldvcmtmbG93LnNvbWUoeCA9PiB4ID09IHEpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuYWN0aW9uLnRhcmdldHNBbGxvd01vZGlmeS5zb21lKHggPT4geCA9PSBFbnVtVGFyZ2V0VHlwZS5ERVBBUlRNRU5UKSkge1xyXG4gICAgICAgICAgICAgICAgZXZ0Lm1vZGVsLmRlcGFydG1lbnRJZHNfcmVhZE9ubHkgPSBldnQubW9kZWwuZGVwYXJ0bWVudElkcy5maWx0ZXIocSA9PiB0aGlzLmluaXRWYWx1ZS5sc3REb25WaUlkSW5Xb3JrZmxvdy5zb21lKHggPT4geCA9PSBxKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCF0aGlzLmFjdGlvbi50YXJnZXRzQWxsb3dNb2RpZnkuc29tZSh4ID0+IHggPT0gRW51bVRhcmdldFR5cGUuR1JPVVApKSB7XHJcbiAgICAgICAgICAgICAgICBldnQubW9kZWwuZ3JvdXBJZHNfcmVhZE9ubHkgPSBldnQubW9kZWwuZ3JvdXBJZHMuZmlsdGVyKHEgPT4gdGhpcy5pbml0VmFsdWUubHN0R3JvdXBJZEluV29ya2Zsb3cuc29tZSh4ID0+IHggPT0gcSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -27,7 +27,7 @@ export class MasterDataService {
27
27
  this.administrativeUnit = 'administrative_unit_';
28
28
  this.administrativeUnitItem = 'administrative_item_unit_';
29
29
  this.env = this._moduleConfigService.getConfig().environment;
30
- this.apiEndpoint = this.env.apiDomain.commonMasterDataV5Endpoint;
30
+ this.apiEndpoint = this.env.apiDomain.commonMasterDataEndpoint;
31
31
  this.apiVersion = this.env.apiVersion;
32
32
  this.groupCategoryEndpoint = `${this.apiEndpoint}/${this.apiVersion}/Groupcategory`;
33
33
  this.singleCategoryEndpoint = `${this.apiEndpoint}/${this.apiVersion}/SingleCategory`;
@@ -399,4 +399,4 @@ MasterDataService.ctorParameters = () => [
399
399
  { type: StorageUpdatedService },
400
400
  { type: ModuleConfigService }
401
401
  ];
402
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzdGVyLWRhdGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9tYXN0ZXItZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBVSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQW1CLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFLbkUsTUFBTSxPQUFPLGlCQUFpQjtJQWMxQixZQUNZLFdBQXVCLEVBQ3ZCLGNBQTZCLEVBQzdCLFNBQW1CLEVBQ25CLHNCQUE2QyxFQUM3QyxvQkFBeUM7UUFKekMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBQzdDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFqQnJELGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRVosWUFBTyxHQUFHLFlBQVksQ0FBQztRQUN2QixtQkFBYyxHQUFHLE1BQU0sQ0FBQztRQUN4Qix3QkFB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QUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzdFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVSxFQUFFLFFBQWtCO1FBQ3RDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEQsT0FBTyxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7O1lBM2FKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBZFEsVUFBVTtZQU1WLGFBQWE7WUFMRCxRQUFRO1lBT3BCLHFCQUFxQjtZQURyQixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2VsZWN0SXRlbSB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1hc3RlckRhdGFJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL21hc3Rlci1kYXRhLWl0ZW0nO1xyXG5pbXBvcnQgeyBSZXNwb25zZVJlc3VsdCB9IGZyb20gJy4uL21vZGVscy9yZXNwb25zZS1yZXN1bHQnO1xyXG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi9jb21tb24uc2VydmljZSc7XHJcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL21vZHVsZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JhZ2VVcGRhdGVkU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS11cGRhdGVkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaWx0ZXIsIEdyaWRJbmZvIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtaW5mbyc7XHJcbmltcG9ydCB7IERyb3Bkb3duT3B0aW9ucywgT3BlcmF0b3IgfSBmcm9tICcuLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFzdGVyRGF0YVNlcnZpY2Uge1xyXG5cclxuICAgIHNldHVwU2lnbmFsciA9IGZhbHNlO1xyXG4gICAgYXBpRW5kcG9pbnQ6IGFueTtcclxuICAgIHJlYWRvbmx5IHN0b3JhZ2UgPSBsb2NhbFN0b3JhZ2U7XHJcbiAgICByZWFkb25seSBjYXRlZ29yeVByZWZpeCA9ICdjYXRfJztcclxuICAgIHJlYWRvbmx5IGNhdGVnb3J5R3JvdXBQcmVmaXggPSAnY2F0X2dyb3VwXyc7XHJcbiAgICByZWFkb25seSBhZG1pbmlzdHJhdGl2ZVVuaXQgPSAnYWRtaW5pc3RyYXRpdmVfdW5pdF8nO1xyXG4gICAgcmVhZG9ubHkgYWRtaW5pc3RyYXRpdmVVbml0SXRlbSA9ICdhZG1pbmlzdHJhdGl2ZV9pdGVtX3VuaXRfJztcclxuICAgIHJlYWRvbmx5IGdyb3VwQ2F0ZWdvcnlFbmRwb2ludDtcclxuICAgIHJlYWRvbmx5IHNpbmdsZUNhdGVnb3J5RW5kcG9pbnQ7XHJcbiAgICByZWFkb25seSBhcGlWZXJzaW9uO1xyXG4gICAgcmVhZG9ubHkgZW52O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2h0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJpdmF0ZSBfY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJpdmF0ZSBfc3RvcmFnZVVwZGF0ZWRTZXJ2aWNlOiBTdG9yYWdlVXBkYXRlZFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfbW9kdWxlQ29uZmlnU2VydmljZTogTW9kdWxlQ29uZmlnU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5lbnYgPSB0aGlzLl9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50O1xyXG4gICAgICAgIHRoaXMuYXBpRW5kcG9pbnQgPSB0aGlzLmVudi5hcGlEb21haW4uY29tbW9uTWFzdGVyRGF0YVY1RW5kcG9pbnQ7XHJcblxyXG4gICAgICAgIHRoaXMuYXBpVmVyc2lvbiA9IHRoaXMuZW52LmFwaVZlcnNpb247XHJcbiAgICAgICAgdGhpcy5ncm91cENhdGVnb3J5RW5kcG9pbnQgPSBgJHt0aGlzLmFwaUVuZHBvaW50fS8ke3RoaXMuYXBpVmVyc2lvbn0vR3JvdXBjYXRlZ29yeWA7XHJcbiAgICAgICAgdGhpcy5zaW5nbGVDYXRlZ29yeUVuZHBvaW50ID0gYCR7dGhpcy5hcGlFbmRwb2ludH0vJHt0aGlzLmFwaVZlcnNpb259L1NpbmdsZUNhdGVnb3J5YDtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnNldHVwU2lnbmFscikge1xyXG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlVXBkYXRlZFNlcnZpY2Uuc3Vic2NyaWJlQ2hhbmdlZExvY2FsU3RvcmFnZSgnY2F0XyonLCBhc3luYyAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IGRhdGFPYmo7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhT2JqID0gSlNPTi5wYXJzZShkYXRhKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YU9iaiA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YU9iaikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFTb3VyY2U6IE1hc3RlckRhdGFJdGVtW10gPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gZGF0YU9iai5tZXNzYWdlLmNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnQuaW5kZXhPZih0aGlzLmNhdGVnb3J5R3JvdXBQcmVmaXgpID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ3JvdXBcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBDb2RlID0gZGF0YU9iai5tZXNzYWdlLmNvbnRlbnQucmVwbGFjZSh0aGlzLmNhdGVnb3J5R3JvdXBQcmVmaXgsICcnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5nZXRHcm91cEl0ZW1CeUNvZGUoZ3JvdXBDb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0oYCR7dGhpcy5jYXRlZ29yeUdyb3VwUHJlZml4fSR7Z3JvdXBDb2RlfWAsIEpTT04uc3RyaW5naWZ5KHJlc3VsdC5kYXRhKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2luZ2xlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwQ29kZSA9IGRhdGFPYmoubWVzc2FnZS5jb250ZW50LnJlcGxhY2UodGhpcy5jYXRlZ29yeVByZWZpeCwgJycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmRvR2V0QWxsKGdyb3VwQ29kZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuZGF0YS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZS5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgaWQ6IGVsZW1lbnQuaWQsIGNvZGU6IGVsZW1lbnQuY29kZSwgbmFtZTogZWxlbWVudC5uYW1lIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbShgJHt0aGlzLmNhdGVnb3J5UHJlZml4fSR7Z3JvdXBDb2RlfWAsIEpTT04uc3RyaW5naWZ5KGRhdGFTb3VyY2UpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zZXR1cFNpZ25hbHIgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQoZ3JvdXBDb2RlOiBzdHJpbmcpOiBQcm9taXNlPE1hc3RlckRhdGFJdGVtW10+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZGF0YVNvdXJjZTogTWFzdGVyRGF0YUl0ZW1bXSA9IFtdO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RvcmFnZS5nZXRJdGVtKGAke3RoaXMuY2F0ZWdvcnlQcmVmaXh9JHtncm91cENvZGV9YCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZG9HZXRBbGwoZ3JvdXBDb2RlKTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXN1bHQuZGF0YS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UucHVzaChcclxuICAgICAgICAgICAgICAgICAgICAgICAgeyBpZDogZWxlbWVudC5pZCwgY29kZTogZWxlbWVudC5jb2RlLCBuYW1lOiBlbGVtZW50Lm5hbWUgfVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbShgJHt0aGlzLmNhdGVnb3J5UHJlZml4fSR7Z3JvdXBDb2RlfWAsIEpTT04uc3RyaW5naWZ5KGRhdGFTb3VyY2UpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UgPSA8TWFzdGVyRGF0YUl0ZW1bXT5KU09OLnBhcnNlKHRoaXMuc3RvcmFnZS5nZXRJdGVtKGAke3RoaXMuY2F0ZWdvcnlQcmVmaXh9JHtncm91cENvZGV9YCkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXNvbHZlKGRhdGFTb3VyY2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldENvbmZpZ0J5Q29kZShjb2RlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBjb25maWcgPSAnJztcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0b3JhZ2UuZ2V0SXRlbShjb2RlKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5kb0dldENvbmZpZ0J5Q29kZShjb2RlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKGNvZGUsIEpTT04uc3RyaW5naWZ5KHJlc3VsdC5kYXRhKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uZmlnID0gPHN0cmluZz5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbmZpZyA9IDxzdHJpbmc+SlNPTi5wYXJzZSh0aGlzLnN0b3JhZ2UuZ2V0SXRlbShjb2RlKSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJlc29sdmUoY29uZmlnKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREcm9wZG93bihncm91cENvZGU6IHN0cmluZyk6IFByb21pc2U8U2VsZWN0SXRlbVtdPiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5nZXQoZ3JvdXBDb2RlKS50aGVuKHNvdXJjZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcCA9IHNvdXJjZS5tYXAoeCA9PiA8U2VsZWN0SXRlbT57IHRpdGxlOiB4Lm5hbWUsIGxhYmVsOiB4Lm5hbWUsIHZhbHVlOiB4LmNvZGUgfSk7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKG9wKTtcclxuICAgICAgICAgICAgfSwgZXJyb3IgPT4gcmVqZWN0KDxTZWxlY3RJdGVtW10+W10pKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRETUNodW5nRHJvcGRvd24oY29kZTogc3RyaW5nKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50LmdldDxSZXNwb25zZVJlc3VsdD4oYCR7dGhpcy5zaW5nbGVDYXRlZ29yeUVuZHBvaW50fS9HZXRCeUZpbHRlckNvZGVBbmROYW1lQnlHcm91cENvZGUvJHtjb2RlfWApXHJcbiAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuX2NvbW1vblNlcnZpY2UuaGFuZGxlRXJyb3IoZXJyLCB0aGlzLl9pbmplY3RvcikpKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SXRlbXMoZ3JvdXBDb2RlOiBzdHJpbmcpOiBQcm9taXNlPFNlbGVjdEl0ZW1bXT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0KGdyb3VwQ29kZSkudGhlbihzb3VyY2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3AgPSBzb3VyY2UubWFwKHggPT4gPFNlbGVjdEl0ZW0+eyBsYWJlbDogeC5uYW1lLCB2YWx1ZTogeC5jb2RlIH0pO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShvcCk7XHJcbiAgICAgICAgICAgIH0sIGVycm9yID0+IHJlamVjdCg8U2VsZWN0SXRlbVtdPltdKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZ2V0R3JvdXBCeUNvZGUoZ3JvdXBDb2RlOiBzdHJpbmcpOiBQcm9taXNlPGFueVtdPiB7XHJcbiAgICAvLyAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgIC8vICAgICAgICAgdGhpcy5nZXQoZ3JvdXBDb2RlKS50aGVuKHNvdXJjZSA9PiB7XHJcbiAgICAvLyAgICAgICAgICAgICByZXNvbHZlKHNvdXJjZSk7XHJcbiAgICAvLyAgICAgICAgIH0sIGVycm9yID0+IHJlamVjdCg8YW55W10+W10pKTtcclxuICAgIC8vICAgICB9KTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBnZXREcm9wZG93bkFkZHJlc3MoaWQsIGxldmVsID0gMSk6IFByb21pc2U8U2VsZWN0SXRlbVtdPiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5nZXRBZGRyZXNzKGlkLCBsZXZlbCkudGhlbihzb3VyY2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3AgPSBzb3VyY2UubWFwKHggPT4gPFNlbGVjdEl0ZW0+eyB0aXRsZTogeC5uYW1lLCBsYWJlbDogeC5uYW1lLCB2YWx1ZTogeC5jb2RlIH0pO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShvcCk7XHJcbiAgICAgICAgICAgIH0sIGVycm9yID0+IHJlamVjdCg8U2VsZWN0SXRlbVtdPltdKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWRkcmVzcyhpZCwgbGV2ZWwgPSAxKTogUHJvbWlzZTxNYXN0ZXJEYXRhSXRlbVtdPiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgbGV0IGRhdGFTb3VyY2U6IE1hc3RlckRhdGFJdGVtW10gPSBbXTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0b3JhZ2UuZ2V0SXRlbShgJHt0aGlzLmFkbWluaXN0cmF0aXZlVW5pdH0uTGV2ZWwke2xldmVsfS4ke2lkfWApKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmRvZ2V0QWRkcmVzcyhpZCwgbGV2ZWwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0oYCR7dGhpcy5hZG1pbmlzdHJhdGl2ZVVuaXR9LkxldmVsJHtsZXZlbH0uJHtpZH1gLCBKU09OLnN0cmluZ2lmeShyZXN1bHQuZGF0YSkpO1xyXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZSA9IDxNYXN0ZXJEYXRhSXRlbVtdPnJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZSA9IDxNYXN0ZXJEYXRhSXRlbVtdPkpTT04ucGFyc2UodGhpcy5zdG9yYWdlLmdldEl0ZW0oYCR7dGhpcy5hZG1pbmlzdHJhdGl2ZVVuaXR9LkxldmVsJHtsZXZlbH0uJHtpZH1gKSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJlc29sdmUoZGF0YVNvdXJjZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0V2FyZHNCeXN0cmVldChzdHJlZXROYW1lOiBzdHJpbmcsIGRpc3RyaWN0Q29kZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0cmVldHMgPSBhd2FpdCB0aGlzLmdldEFkZHJlc3MoZGlzdHJpY3RDb2RlLCAyKTtcclxuICAgICAgICAgICAgY29uc3QgcGFyZW50SWRzID0gc3RyZWV0cy5maWx0ZXIoeCA9PiB4Lm5hbWUgPT0gc3RyZWV0TmFtZSkubWFwKHggPT4geC5wYXJlbnRJZCk7XHJcbiAgICAgICAgICAgIHJlc29sdmUocGFyZW50SWRzKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkb2dldEFkZHJlc3MoaWQ6IHN0cmluZywgbGV2ZWwgPSAxKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmkgPSBgJHt0aGlzLmFwaUVuZHBvaW50fS9DaXR5Q2F0ZWdvcnkvR2V0QnlQYXJlbnRJZC8ke2lkfT9sZXZlbD0ke2xldmVsfWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnQuZ2V0PFJlc3BvbnNlUmVzdWx0PihzZXJ2aWNlVXJpKVxyXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLl9jb21tb25TZXJ2aWNlLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEl0ZW1EZXRhaWxVbml0KGlkOiBzdHJpbmcpOiBQcm9taXNlPE1hc3RlckRhdGFJdGVtPiB7XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtRGF0YTogTWFzdGVyRGF0YUl0ZW0gPSBuZXcgTWFzdGVyRGF0YUl0ZW0oKTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0b3JhZ2UuZ2V0SXRlbShgJHt0aGlzLmFkbWluaXN0cmF0aXZlVW5pdEl0ZW19JHtpZH1gKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VydmljZVVyaSA9IGAke3RoaXMuYXBpRW5kcG9pbnR9L0NpdHlDYXRlZ29yeS9HZXRCeUNvZGUvJHtpZH1gO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5faHR0cENsaWVudC5nZXQ8UmVzcG9uc2VSZXN1bHQ+KHNlcnZpY2VVcmkpXHJcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5fY29tbW9uU2VydmljZS5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSkpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKGAke3RoaXMuYWRtaW5pc3RyYXRpdmVVbml0SXRlbX0ke2lkfWAsIEpTT04uc3RyaW5naWZ5KHJlc3VsdC5kYXRhKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaXRlbURhdGEgPSA8TWFzdGVyRGF0YUl0ZW0+cmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtRGF0YSA9IDxNYXN0ZXJEYXRhSXRlbT5KU09OLnBhcnNlKHRoaXMuc3RvcmFnZS5nZXRJdGVtKGAke3RoaXMuYWRtaW5pc3RyYXRpdmVVbml0SXRlbX0ke2lkfWApKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVzb2x2ZShpdGVtRGF0YSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkb0dldENvbmZpZ0J5Q29kZShjb2RlOiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgLy8gIFRPRE86IGRvIGhp4buHbiBnaeG7nSBrbyBkw7luZyBuw6puIGZpeCB04bqhbSB2YWx1ZSwgc2F1IHPhur0geOG7rSBsw70gdGnhur9wXHJcbiAgICAgICAgICAgIHJlc29sdmUoPFJlc3BvbnNlUmVzdWx0PnsgZGF0YToge30sIHN1Y2Nlc3M6IHRydWUgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gY29uc3Qgc2VydmljZVVyaSA9IGAke3RoaXMuYXBpRW5kcG9pbnR9L0NvbmZpZ3VyYXRpb25TZXJ2aWNlL0dldFZhbHVlQnlDb2RlP2NvZGU9JHtjb2RlfWA7XHJcblxyXG4gICAgICAgIC8vIHJldHVybiB0aGlzLl9odHRwQ2xpZW50LmdldDxSZXNwb25zZVJlc3VsdD4oc2VydmljZVVyaSlcclxuICAgICAgICAvLyAgICAgLnBpcGUoY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5fY29tbW9uU2VydmljZS5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSkpXHJcbiAgICAgICAgLy8gICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFzeW5jIGRvR2V0QWxsKGdyb3VwQ29kZTogc3RyaW5nKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGdyb3VwID0gYXdhaXQgdGhpcy5nZXRHcm91cEJ5Q29kZShncm91cENvZGUpO1xyXG4gICAgICAgIGlmICghZ3JvdXAuZGF0YSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSg8UmVzcG9uc2VSZXN1bHQ+eyBzdWNjZXNzOiB0cnVlLCBkYXRhOiBbXSB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGdyaWRJbmZvID0gbmV3IEdyaWRJbmZvKHtcclxuICAgICAgICAgICAgZmllbGRzOiAnJyxcclxuICAgICAgICAgICAgcGFnZUluZm86IHtcclxuICAgICAgICAgICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgICAgICAgICBwYWdlU2l6ZTogMTAwMDAsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNvcnRzOiBbeyBmaWVsZDogJ3NvcnQnLCBkaXI6IDEgfV0sXHJcbiAgICAgICAgICAgIGZpbHRlcnM6IFt0aGlzLl9jb21tb25TZXJ2aWNlLm5ld0ZpbHRlcignZ3JvdXBDYXRlZ29yeUlkJywgT3BlcmF0b3IuZXF1YWwsIGdyb3VwLmRhdGEuaWQpXVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRhKGAke3RoaXMuc2luZ2xlQ2F0ZWdvcnlFbmRwb2ludH0vZ2V0RGF0YWAsIGdyaWRJbmZvKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldERhdGEodXJpLCBncmlkSW5mbzogR3JpZEluZm8pOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnQucG9zdDxSZXNwb25zZVJlc3VsdD4odXJpLCBncmlkSW5mbykudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhc3luYyBnZXRHcm91cEJ5Q29kZShncm91cENvZGU6IHN0cmluZyk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCB1cmkgPSBgJHt0aGlzLmdyb3VwQ2F0ZWdvcnlFbmRwb2ludH0vZ2V0QnlDb2RlLyR7Z3JvdXBDb2RlfWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnQuZ2V0PFJlc3BvbnNlUmVzdWx0Pih1cmkpLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFdvcmtEYXlzKGRhdGU6IHN0cmluZywgZGF5czogbnVtYmVyLCBpc0RheSA9IDEpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3Qgc2VydmljZVVyaSA9IGAke3RoaXMuYXBpRW5kcG9pbnR9L0hvbGlkYXlDYXRlZ29yeS9HZXREYXRlP2RhdGU9JHtkYXRlfSZkYXlzPSR7ZGF5c30maXNEYXk9JHtpc0RheX1gO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50LmdldDxSZXNwb25zZVJlc3VsdD4oc2VydmljZVVyaSlcclxuICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5fY29tbW9uU2VydmljZS5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSkpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRlQnlEdXJhdGlvbihkYXRlOiBzdHJpbmcsIHR5cGU6IGJvb2xlYW4sIGR1cmF0aW9uOiBudW1iZXIpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3Qgc2VydmljZVVyaSA9IGAke3RoaXMuYXBpRW5kcG9pbnR9L0hvbGlkYXlDYXRlZ29yeS9nZXREYXRlQnlEdXJhdGlvbj9kYXRlPSR7ZGF0ZX0mdHlwZT0ke3R5cGV9JmR1cmF0aW9uPSR7ZHVyYXRpb259YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudC5nZXQ8UmVzcG9uc2VSZXN1bHQ+KHNlcnZpY2VVcmkpXHJcbiAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuX2NvbW1vblNlcnZpY2UuaGFuZGxlRXJyb3IoZXJyLCB0aGlzLl9pbmplY3RvcikpKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SXRlbUJ5Q29kZShkYXRhU291cmNlOiBhbnksIGNvZGU6IHN0cmluZyk6IE1hc3RlckRhdGFJdGVtIHtcclxuICAgICAgICByZXR1cm4gZGF0YVNvdXJjZS5maW5kKHggPT4geC5jb2RlID09PSBjb2RlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJdGVtQnlJbnN0YW5jZUlkKGRhdGFTb3VyY2U6IGFueSwgaW5zdGFuY2VJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGFTb3VyY2UuZmluZCh4ID0+IHguaW5zdGFuY2VJZCA9PT0gaW5zdGFuY2VJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SXRlbUJ5SWQoZGF0YVNvdXJjZTogYW55LCBpZDogbnVtYmVyKSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGFTb3VyY2UuZmluZCh4ID0+IHguaWQgPT09IGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJdGVtQnlHcm91cEFuZENvZGUoZ3JvdXBDb2RlOiBzdHJpbmcsIGNvZGU6IHN0cmluZyk6IFByb21pc2U8TWFzdGVyRGF0YUl0ZW0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZGF0YVNvdXJjZTogTWFzdGVyRGF0YUl0ZW1bXSA9IFtdO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RvcmFnZS5nZXRJdGVtKGAke3RoaXMuY2F0ZWdvcnlQcmVmaXh9JHtncm91cENvZGV9YCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZG9HZXRBbGwoZ3JvdXBDb2RlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKGAke3RoaXMuY2F0ZWdvcnlQcmVmaXh9JHtncm91cENvZGV9YCwgSlNPTi5zdHJpbmdpZnkocmVzdWx0LmRhdGEpKTtcclxuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UgPSA8TWFzdGVyRGF0YUl0ZW1bXT5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UgPSA8TWFzdGVyRGF0YUl0ZW1bXT5KU09OLnBhcnNlKHRoaXMuc3RvcmFnZS5nZXRJdGVtKGAke3RoaXMuY2F0ZWdvcnlQcmVmaXh9JHtncm91cENvZGV9YCkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXNvbHZlKGRhdGFTb3VyY2UuZmluZCh4ID0+IHguY29kZSA9PT0gY29kZSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZnJlc2hDYXRlZ29yeSgpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKHRoaXMuY2F0ZWdvcnlQcmVmaXgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBDb2RlID0ga2V5LnNwbGl0KCdfJylbMV07XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldChncm91cENvZGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZ2V0QWRyZXNzKGNpdHk6IGFueSwgZGlzdHJpY3Q6IGFueSwgd2FyZDogYW55LCBzdHJlZXQ6IGFueSwgc3RyVGV4dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgc3RyUmVzdWx0ID0gJyc7XHJcbiAgICAgICAgICAgIGlmIChzdHJUZXh0ICYmIHN0clRleHQgIT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHN0clJlc3VsdCArPSBzdHJUZXh0ICsgJywgJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoc3RyZWV0ICYmIHN0cmVldCAhPSAnJykge1xyXG4gICAgICAgICAgICAgICAgc3RyUmVzdWx0ICs9IHN0cmVldCArICcsICdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAod2FyZCAmJiB3YXJkICE9ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB4ID0gYXdhaXQgdGhpcy5nZXRJdGVtRGV0YWlsVW5pdCh3YXJkKTtcclxuICAgICAgICAgICAgICAgIGlmICh4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyUmVzdWx0ICs9IHgubmFtZSArICcsICdcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZGlzdHJpY3QgJiYgZGlzdHJpY3QgIT0gJycpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHggPSBhd2FpdCB0aGlzLmdldEl0ZW1EZXRhaWxVbml0KGRpc3RyaWN0KTtcclxuICAgICAgICAgICAgICAgIGlmICh4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyUmVzdWx0ICs9IHgubmFtZSArICcsICdcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoY2l0eSAmJiBjaXR5ICE9ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB4ID0gYXdhaXQgdGhpcy5nZXRJdGVtRGV0YWlsVW5pdChjaXR5KTtcclxuICAgICAgICAgICAgICAgIGlmICh4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RyUmVzdWx0ICs9IHgubmFtZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJlc29sdmUoc3RyUmVzdWx0KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRWYWx1ZUJ5Q29kZShjb2RlOiBhbnkpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zaW5nbGVDYXRlZ29yeUVuZHBvaW50fS9nZXRWYWx1ZUJ5Q29kZT9jb2RlPSR7Y29kZX1gO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50LmdldDxSZXNwb25zZVJlc3VsdD4odXJsKVxyXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLl9jb21tb25TZXJ2aWNlLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEdyb3VwSXRlbUJ5Q29kZShjb2RlOiBzdHJpbmcpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5hcGlFbmRwb2ludH0vR3JvdXBDYXRlZ29yeS8ke2NvZGV9YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudC5nZXQ8UmVzcG9uc2VSZXN1bHQ+KHVybCkucGlwZShjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLl9jb21tb25TZXJ2aWNlLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHBhcnNlTWF0aEV4cHJlc3Npb24oZXhwcmVzc2lvbjogc3RyaW5nLCBkZWNpbWFsUGxhY2VzOiBudW1iZXIsIGZvclZpZXRuYW1lc2U6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGV4cHJlc3Npb24gPSBlbmNvZGVVUklDb21wb25lbnQoZXhwcmVzc2lvbik7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5hcGlFbmRwb2ludH0vTWF0aEV4cHJlc3Npb24vUGFyc2VNYXRoP2V4cHJlc3Npb249JHtleHByZXNzaW9ufSZkZWNpbWFsUGxhY2VzPSR7ZGVjaW1hbFBsYWNlc30mZm9yVmlldG5hbWVzZT0ke2ZvclZpZXRuYW1lc2V9YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudC5nZXQ8UmVzcG9uc2VSZXN1bHQ+KHVybClcclxuICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5fY29tbW9uU2VydmljZS5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSkpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRCeUdyaWRSZXF1ZXN0KGdyb3VwQ29kZTogc3RyaW5nLCBncmlkSW5mbzogR3JpZEluZm8sIHBsdXNVcmw6IHN0cmluZyA9ICcnKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBkYXRhOiBhbnk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGFTdG9yYWdlID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0oYCR7dGhpcy5jYXRlZ29yeVByZWZpeH0ke2dyb3VwQ29kZX1gKTtcclxuICAgICAgICAgICAgaWYgKCFkYXRhU3RvcmFnZSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGFwaVVybCA9IGAke3RoaXMuc2luZ2xlQ2F0ZWdvcnlFbmRwb2ludH0vZ2V0RGF0YWA7XHJcbiAgICAgICAgICAgICAgICBpZiAocGx1c1VybCAhPSBudWxsICYmIHBsdXNVcmwgIT0gJycpXHJcbiAgICAgICAgICAgICAgICAgICAgYXBpVXJsICs9ICcvJyArIHBsdXNVcmw7XHJcbiAgICAgICAgICAgICAgICBkYXRhID0gYXdhaXQgdGhpcy5faHR0cENsaWVudFxyXG4gICAgICAgICAgICAgICAgICAgIC5wb3N0PFJlc3BvbnNlUmVzdWx0PihhcGlVcmwsIGdyaWRJbmZvKVxyXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoZXJyID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyLCB0aGlzLl9pbmplY3RvcikpKS50b1Byb21pc2UoKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbShgJHt0aGlzLmNhdGVnb3J5UHJlZml4fSR7Z3JvdXBDb2RlfWAsIEpTT04uc3RyaW5naWZ5KGRhdGEuZGF0YSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IEpTT04ucGFyc2UoZGF0YVN0b3JhZ2UpXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXNvbHZlKGRhdGEpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2VuZXJhdGVHcmlkSW5mb0Ryb3Bkb3duKGZpbHRlcnM6IEZpbHRlcltdLCBvcHRpb25zOiBEcm9wZG93bk9wdGlvbnMpIHtcclxuICAgICAgICBjb25zdCBncmlkSW5mbyA9IHtcclxuICAgICAgICAgICAgcGFnZUluZm86IHtcclxuICAgICAgICAgICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgICAgICAgICBwYWdlU2l6ZTogMTAwMDAwXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGZpbHRlcnMsXHJcbiAgICAgICAgICAgIHNvcnRzOiBbXSxcclxuICAgICAgICAgICAgZmllbGRzOiBgJHtvcHRpb25zLnZhbHVlRmllbGR9JHtvcHRpb25zLmRpc3BsYXlGaWVsZCA9PSBvcHRpb25zLnZhbHVlRmllbGQgPyAnJyA6ICcsJyArIG9wdGlvbnMuZGlzcGxheUZpZWxkfSR7b3B0aW9ucy5maWVsZFBsdXN9YFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3B0aW9ucy5zb3J0cyAhPSBudWxsICYmIG9wdGlvbnMuc29ydHMubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgZ3JpZEluZm8uc29ydHMgPSBbLi4ub3B0aW9ucy5zb3J0c107XHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc29ydEZpZWxkICE9IG51bGwgJiYgb3B0aW9ucy5zb3J0RmllbGQgIT0gJycpXHJcbiAgICAgICAgICAgIGdyaWRJbmZvLnNvcnRzLnB1c2goeyBmaWVsZDogb3B0aW9ucy5zb3J0RmllbGQsIGRpcjogb3B0aW9ucy5zb3J0RGlyIH0pO1xyXG4gICAgICAgIHJldHVybiBncmlkSW5mbztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldERlZmF1bHRWYWx1ZShvcHRpb25zOiBEcm9wZG93bk9wdGlvbnMpIHtcclxuICAgICAgICBpZiAob3B0aW9ucy5maWVsZFBsdXMubGVuZ3RoID4gMCAmJiAhb3B0aW9ucy5maWVsZFBsdXMuc3RhcnRzV2l0aCgnLCcpKVxyXG4gICAgICAgICAgICBvcHRpb25zLmZpZWxkUGx1cyA9ICcsJyArIG9wdGlvbnMuZmllbGRQbHVzO1xyXG4gICAgICAgIGlmIChvcHRpb25zLnNvcnRGaWVsZCA9PSAnJylcclxuICAgICAgICAgICAgb3B0aW9ucy5zb3J0RmllbGQgPSBvcHRpb25zLmRpc3BsYXlGaWVsZDtcclxuICAgICAgICBpZiAob3B0aW9ucy5mdW5jR2V0TGFiZWwgPT0gbnVsbCB8fCB0eXBlb2Ygb3B0aW9ucy5mdW5jR2V0TGFiZWwgIT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICBvcHRpb25zLmZ1bmNHZXRMYWJlbCA9IChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbVtvcHRpb25zLmRpc3BsYXlGaWVsZF07XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldERhdGFEcm9wZG93bihncm91cENvZGU6IHN0cmluZywgYXJyVmFsdWU6IGFueVtdLCBvcHRpb25zPzogRHJvcGRvd25PcHRpb25zKTogUHJvbWlzZTxhbnlbXT4ge1xyXG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdFZhbHVlKG9wdGlvbnMpO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0KGdyb3VwQ29kZSkudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xyXG4gICAgICAgICAgICAgICAgaWYgKGFyclZhbHVlID09IG51bGwpXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzO1xyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlcy5maWx0ZXIoeCA9PiBhcnJWYWx1ZS5zb21lKHYgPT4gdiA9PSB4W29wdGlvbnMudmFsdWVGaWVsZF0pKTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcclxuICAgICAgICAgICAgfSkuY2F0Y2goZXJyID0+IHJlamVjdChlcnIpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRhRHJvcGRvd25CeUZpbHRlcihncm91cENvZGU6IHN0cmluZywgYXJyVmFsdWU6IGFueVtdLCBmaWx0ZXJzOiBGaWx0ZXJbXSwgb3B0aW9ucz86IERyb3Bkb3duT3B0aW9ucyk6IFByb21pc2U8YW55W10+IHtcclxuICAgICAgICB0aGlzLnNldERlZmF1bHRWYWx1ZShvcHRpb25zKTtcclxuICAgICAgICBmaWx0ZXJzLnNwbGljZSgwLCAwLCB0aGlzLl9jb21tb25TZXJ2aWNlLm5ld0ZpbHRlcignZ3JvdXBDYXRlZ29yeUNvZGUnLCBPcGVyYXRvci5lcXVhbCwgZ3JvdXBDb2RlKSk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5nZXQoZ3JvdXBDb2RlKVxyXG4gICAgICAgICAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFyclZhbHVlID09IG51bGwpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlcztcclxuICAgICAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlcy5maWx0ZXIoeCA9PiBhcnJWYWx1ZS5zb21lKHYgPT4gdiA9PSB4W29wdGlvbnMudmFsdWVGaWVsZF0pKTtcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICB9KS5jYXRjaChlcnIgPT4gcmVqZWN0KGVycikpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUVycm9yKGVycm9yOiBhbnksIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIGNvbnN0IGNvbW1vblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQ29tbW9uU2VydmljZSk7XHJcbiAgICAgICAgcmV0dXJuIGNvbW1vblNlcnZpY2UuaGFuZGxlRXJyb3IoZXJyb3IsIGluamVjdG9yKTtcclxuICAgIH1cclxufVxyXG4iXX0=
402
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzdGVyLWRhdGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9tYXN0ZXItZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBVSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQW1CLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFLbkUsTUFBTSxPQUFPLGlCQUFpQjtJQWMxQixZQUNZLFdBQXVCLEVBQ3ZCLGNBQTZCLEVBQzdCLFNBQW1CLEVBQ25CLHNCQUE2QyxFQUM3QyxvQkFBeUM7UUFKekMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBQzdDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFqQnJELGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRVosWUFBTyxHQUFHLFlBQVksQ0FBQztRQUN2QixtQkFBYyxHQUFHLE1BQU0sQ0FBQztRQUN4Qix3QkFB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QUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzdFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVSxFQUFFLFFBQWtCO1FBQ3RDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEQsT0FBTyxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7O1lBM2FKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBZFEsVUFBVTtZQU1WLGFBQWE7WUFMRCxRQUFRO1lBT3BCLHFCQUFxQjtZQURyQixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2VsZWN0SXRlbSB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1hc3RlckRhdGFJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL21hc3Rlci1kYXRhLWl0ZW0nO1xyXG5pbXBvcnQgeyBSZXNwb25zZVJlc3VsdCB9IGZyb20gJy4uL21vZGVscy9yZXNwb25zZS1yZXN1bHQnO1xyXG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi9jb21tb24uc2VydmljZSc7XHJcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL21vZHVsZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JhZ2VVcGRhdGVkU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS11cGRhdGVkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaWx0ZXIsIEdyaWRJbmZvIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtaW5mbyc7XHJcbmltcG9ydCB7IERyb3Bkb3duT3B0aW9ucywgT3BlcmF0b3IgfSBmcm9tICcuLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFzdGVyRGF0YVNlcnZpY2Uge1xyXG5cclxuICAgIHNldHVwU2lnbmFsciA9IGZhbHNlO1xyXG4gICAgYXBpRW5kcG9pbnQ6IGFueTtcclxuICAgIHJlYWRvbmx5IHN0b3JhZ2UgPSBsb2NhbFN0b3JhZ2U7XHJcbiAgICByZWFkb25seSBjYXRlZ29yeVByZWZpeCA9ICdjYXRfJztcclxuICAgIHJlYWRvbmx5IGNhdGVnb3J5R3JvdXBQcmVmaXggPSAnY2F0X2dyb3VwXyc7XHJcbiAgICByZWFkb25seSBhZG1pbmlzdHJhdGl2ZVVuaXQgPSAnYWRtaW5pc3RyYXRpdmVfdW5pdF8nO1xyXG4gICAgcmVhZG9ubHkgYWRtaW5pc3RyYXRpdmVVbml0SXRlbSA9ICdhZG1pbmlzdHJhdGl2ZV9pdGVtX3VuaXRfJztcclxuICAgIHJlYWRvbmx5IGdyb3VwQ2F0ZWdvcnlFbmRwb2ludDtcclxuICAgIHJlYWRvbmx5IHNpbmdsZUNhdGVnb3J5RW5kcG9pbnQ7XHJcbiAgICByZWFkb25seSBhcGlWZXJzaW9uO1xyXG4gICAgcmVhZG9ubHkgZW52O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2h0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJpdmF0ZSBfY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJpdmF0ZSBfc3RvcmFnZVVwZGF0ZWRTZXJ2aWNlOiBTdG9yYWdlVXBkYXRlZFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfbW9kdWxlQ29uZmlnU2VydmljZTogTW9kdWxlQ29uZmlnU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5lbnYgPSB0aGlzLl9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50O1xyXG4gICAgICAgIHRoaXMuYXBpRW5kcG9pbnQgPSB0aGlzLmVudi5hcGlEb21haW4uY29tbW9uTWFzdGVyRGF0YUVuZHBvaW50O1xyXG5cclxuICAgICAgICB0aGlzLmFwaVZlcnNpb24gPSB0aGlzLmVudi5hcGlWZXJzaW9uO1xyXG4gICAgICAgIHRoaXMuZ3JvdXBDYXRlZ29yeUVuZHBvaW50ID0gYCR7dGhpcy5hcGlFbmRwb2ludH0vJHt0aGlzLmFwaVZlcnNpb259L0dyb3VwY2F0ZWdvcnlgO1xyXG4gICAgICAgIHRoaXMuc2luZ2xlQ2F0ZWdvcnlFbmRwb2ludCA9IGAke3RoaXMuYXBpRW5kcG9pbnR9LyR7dGhpcy5hcGlWZXJzaW9ufS9TaW5nbGVDYXRlZ29yeWA7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5zZXR1cFNpZ25hbHIpIHtcclxuICAgICAgICAgICAgdGhpcy5fc3RvcmFnZVVwZGF0ZWRTZXJ2aWNlLnN1YnNjcmliZUNoYW5nZWRMb2NhbFN0b3JhZ2UoJ2NhdF8qJywgYXN5bmMgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBkYXRhT2JqO1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YU9iaiA9IEpTT04ucGFyc2UoZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFPYmogPSBkYXRhO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGFPYmopIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhU291cmNlOiBNYXN0ZXJEYXRhSXRlbVtdID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGRhdGFPYmoubWVzc2FnZS5jb250ZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb250ZW50LmluZGV4T2YodGhpcy5jYXRlZ29yeUdyb3VwUHJlZml4KSA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdyb3VwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwQ29kZSA9IGRhdGFPYmoubWVzc2FnZS5jb250ZW50LnJlcGxhY2UodGhpcy5jYXRlZ29yeUdyb3VwUHJlZml4LCAnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZ2V0R3JvdXBJdGVtQnlDb2RlKGdyb3VwQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKGAke3RoaXMuY2F0ZWdvcnlHcm91cFByZWZpeH0ke2dyb3VwQ29kZX1gLCBKU09OLnN0cmluZ2lmeShyZXN1bHQuZGF0YSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNpbmdsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cENvZGUgPSBkYXRhT2JqLm1lc3NhZ2UuY29udGVudC5yZXBsYWNlKHRoaXMuY2F0ZWdvcnlQcmVmaXgsICcnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5kb0dldEFsbChncm91cENvZGUpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmRhdGEuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UucHVzaChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGlkOiBlbGVtZW50LmlkLCBjb2RlOiBlbGVtZW50LmNvZGUsIG5hbWU6IGVsZW1lbnQubmFtZSB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0oYCR7dGhpcy5jYXRlZ29yeVByZWZpeH0ke2dyb3VwQ29kZX1gLCBKU09OLnN0cmluZ2lmeShkYXRhU291cmNlKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2V0dXBTaWduYWxyID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0KGdyb3VwQ29kZTogc3RyaW5nKTogUHJvbWlzZTxNYXN0ZXJEYXRhSXRlbVtdPiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgbGV0IGRhdGFTb3VyY2U6IE1hc3RlckRhdGFJdGVtW10gPSBbXTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0b3JhZ2UuZ2V0SXRlbShgJHt0aGlzLmNhdGVnb3J5UHJlZml4fSR7Z3JvdXBDb2RlfWApKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmRvR2V0QWxsKGdyb3VwQ29kZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgcmVzdWx0LmRhdGEuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhU291cmNlLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgaWQ6IGVsZW1lbnQuaWQsIGNvZGU6IGVsZW1lbnQuY29kZSwgbmFtZTogZWxlbWVudC5uYW1lIH1cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0oYCR7dGhpcy5jYXRlZ29yeVByZWZpeH0ke2dyb3VwQ29kZX1gLCBKU09OLnN0cmluZ2lmeShkYXRhU291cmNlKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhU291cmNlID0gPE1hc3RlckRhdGFJdGVtW10+SlNPTi5wYXJzZSh0aGlzLnN0b3JhZ2UuZ2V0SXRlbShgJHt0aGlzLmNhdGVnb3J5UHJlZml4fSR7Z3JvdXBDb2RlfWApKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVzb2x2ZShkYXRhU291cmNlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRDb25maWdCeUNvZGUoY29kZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgY29uZmlnID0gJyc7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zdG9yYWdlLmdldEl0ZW0oY29kZSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZG9HZXRDb25maWdCeUNvZGUoY29kZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbShjb2RlLCBKU09OLnN0cmluZ2lmeShyZXN1bHQuZGF0YSkpO1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbmZpZyA9IDxzdHJpbmc+cmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25maWcgPSA8c3RyaW5nPkpTT04ucGFyc2UodGhpcy5zdG9yYWdlLmdldEl0ZW0oY29kZSkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXNvbHZlKGNvbmZpZyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RHJvcGRvd24oZ3JvdXBDb2RlOiBzdHJpbmcpOiBQcm9taXNlPFNlbGVjdEl0ZW1bXT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0KGdyb3VwQ29kZSkudGhlbihzb3VyY2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3AgPSBzb3VyY2UubWFwKHggPT4gPFNlbGVjdEl0ZW0+eyB0aXRsZTogeC5uYW1lLCBsYWJlbDogeC5uYW1lLCB2YWx1ZTogeC5jb2RlIH0pO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShvcCk7XHJcbiAgICAgICAgICAgIH0sIGVycm9yID0+IHJlamVjdCg8U2VsZWN0SXRlbVtdPltdKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RE1DaHVuZ0Ryb3Bkb3duKGNvZGU6IHN0cmluZyk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudC5nZXQ8UmVzcG9uc2VSZXN1bHQ+KGAke3RoaXMuc2luZ2xlQ2F0ZWdvcnlFbmRwb2ludH0vR2V0QnlGaWx0ZXJDb2RlQW5kTmFtZUJ5R3JvdXBDb2RlLyR7Y29kZX1gKVxyXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLl9jb21tb25TZXJ2aWNlLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEl0ZW1zKGdyb3VwQ29kZTogc3RyaW5nKTogUHJvbWlzZTxTZWxlY3RJdGVtW10+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldChncm91cENvZGUpLnRoZW4oc291cmNlID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wID0gc291cmNlLm1hcCh4ID0+IDxTZWxlY3RJdGVtPnsgbGFiZWw6IHgubmFtZSwgdmFsdWU6IHguY29kZSB9KTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUob3ApO1xyXG4gICAgICAgICAgICB9LCBlcnJvciA9PiByZWplY3QoPFNlbGVjdEl0ZW1bXT5bXSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGdldEdyb3VwQnlDb2RlKGdyb3VwQ29kZTogc3RyaW5nKTogUHJvbWlzZTxhbnlbXT4ge1xyXG4gICAgLy8gICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuZ2V0KGdyb3VwQ29kZSkudGhlbihzb3VyY2UgPT4ge1xyXG4gICAgLy8gICAgICAgICAgICAgcmVzb2x2ZShzb3VyY2UpO1xyXG4gICAgLy8gICAgICAgICB9LCBlcnJvciA9PiByZWplY3QoPGFueVtdPltdKSk7XHJcbiAgICAvLyAgICAgfSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgZ2V0RHJvcGRvd25BZGRyZXNzKGlkLCBsZXZlbCA9IDEpOiBQcm9taXNlPFNlbGVjdEl0ZW1bXT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0QWRkcmVzcyhpZCwgbGV2ZWwpLnRoZW4oc291cmNlID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wID0gc291cmNlLm1hcCh4ID0+IDxTZWxlY3RJdGVtPnsgdGl0bGU6IHgubmFtZSwgbGFiZWw6IHgubmFtZSwgdmFsdWU6IHguY29kZSB9KTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUob3ApO1xyXG4gICAgICAgICAgICB9LCBlcnJvciA9PiByZWplY3QoPFNlbGVjdEl0ZW1bXT5bXSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFkZHJlc3MoaWQsIGxldmVsID0gMSk6IFByb21pc2U8TWFzdGVyRGF0YUl0ZW1bXT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBkYXRhU291cmNlOiBNYXN0ZXJEYXRhSXRlbVtdID0gW107XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zdG9yYWdlLmdldEl0ZW0oYCR7dGhpcy5hZG1pbmlzdHJhdGl2ZVVuaXR9LkxldmVsJHtsZXZlbH0uJHtpZH1gKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5kb2dldEFkZHJlc3MoaWQsIGxldmVsKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKGAke3RoaXMuYWRtaW5pc3RyYXRpdmVVbml0fS5MZXZlbCR7bGV2ZWx9LiR7aWR9YCwgSlNPTi5zdHJpbmdpZnkocmVzdWx0LmRhdGEpKTtcclxuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UgPSA8TWFzdGVyRGF0YUl0ZW1bXT5yZXN1bHQuZGF0YTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2UgPSA8TWFzdGVyRGF0YUl0ZW1bXT5KU09OLnBhcnNlKHRoaXMuc3RvcmFnZS5nZXRJdGVtKGAke3RoaXMuYWRtaW5pc3RyYXRpdmVVbml0fS5MZXZlbCR7bGV2ZWx9LiR7aWR9YCkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXNvbHZlKGRhdGFTb3VyY2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFdhcmRzQnlzdHJlZXQoc3RyZWV0TmFtZTogc3RyaW5nLCBkaXN0cmljdENvZGU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzdHJlZXRzID0gYXdhaXQgdGhpcy5nZXRBZGRyZXNzKGRpc3RyaWN0Q29kZSwgMik7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudElkcyA9IHN0cmVldHMuZmlsdGVyKHggPT4geC5uYW1lID09IHN0cmVldE5hbWUpLm1hcCh4ID0+IHgucGFyZW50SWQpO1xyXG4gICAgICAgICAgICByZXNvbHZlKHBhcmVudElkcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZG9nZXRBZGRyZXNzKGlkOiBzdHJpbmcsIGxldmVsID0gMSk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCBzZXJ2aWNlVXJpID0gYCR7dGhpcy5hcGlFbmRwb2ludH0vQ2l0eUNhdGVnb3J5L0dldEJ5UGFyZW50SWQvJHtpZH0/bGV2ZWw9JHtsZXZlbH1gO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50LmdldDxSZXNwb25zZVJlc3VsdD4oc2VydmljZVVyaSlcclxuICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5fY29tbW9uU2VydmljZS5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSkpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJdGVtRGV0YWlsVW5pdChpZDogc3RyaW5nKTogUHJvbWlzZTxNYXN0ZXJEYXRhSXRlbT4ge1xyXG5cclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgaXRlbURhdGE6IE1hc3RlckRhdGFJdGVtID0gbmV3IE1hc3RlckRhdGFJdGVtKCk7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zdG9yYWdlLmdldEl0ZW0oYCR7dGhpcy5hZG1pbmlzdHJhdGl2ZVVuaXRJdGVtfSR7aWR9YCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNlcnZpY2VVcmkgPSBgJHt0aGlzLmFwaUVuZHBvaW50fS9DaXR5Q2F0ZWdvcnkvR2V0QnlDb2RlLyR7aWR9YDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuX2h0dHBDbGllbnQuZ2V0PFJlc3BvbnNlUmVzdWx0PihzZXJ2aWNlVXJpKVxyXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuX2NvbW1vblNlcnZpY2UuaGFuZGxlRXJyb3IoZXJyLCB0aGlzLl9pbmplY3RvcikpKVxyXG4gICAgICAgICAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbShgJHt0aGlzLmFkbWluaXN0cmF0aXZlVW5pdEl0ZW19JHtpZH1gLCBKU09OLnN0cmluZ2lmeShyZXN1bHQuZGF0YSkpO1xyXG5cclxuICAgICAgICAgICAgICAgIGl0ZW1EYXRhID0gPE1hc3RlckRhdGFJdGVtPnJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaXRlbURhdGEgPSA8TWFzdGVyRGF0YUl0ZW0+SlNPTi5wYXJzZSh0aGlzLnN0b3JhZ2UuZ2V0SXRlbShgJHt0aGlzLmFkbWluaXN0cmF0aXZlVW5pdEl0ZW19JHtpZH1gKSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJlc29sdmUoaXRlbURhdGEpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZG9HZXRDb25maWdCeUNvZGUoY29kZTogc3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIC8vICBUT0RPOiBkbyBoaeG7h24gZ2nhu50ga28gZMO5bmcgbsOqbiBmaXggdOG6oW0gdmFsdWUsIHNhdSBz4bq9IHjhu60gbMO9IHRp4bq/cFxyXG4gICAgICAgICAgICByZXNvbHZlKDxSZXNwb25zZVJlc3VsdD57IGRhdGE6IHt9LCBzdWNjZXNzOiB0cnVlIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIGNvbnN0IHNlcnZpY2VVcmkgPSBgJHt0aGlzLmFwaUVuZHBvaW50fS9Db25maWd1cmF0aW9uU2VydmljZS9HZXRWYWx1ZUJ5Q29kZT9jb2RlPSR7Y29kZX1gO1xyXG5cclxuICAgICAgICAvLyByZXR1cm4gdGhpcy5faHR0cENsaWVudC5nZXQ8UmVzcG9uc2VSZXN1bHQ+KHNlcnZpY2VVcmkpXHJcbiAgICAgICAgLy8gICAgIC5waXBlKGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuX2NvbW1vblNlcnZpY2UuaGFuZGxlRXJyb3IoZXJyLCB0aGlzLl9pbmplY3RvcikpKVxyXG4gICAgICAgIC8vICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhc3luYyBkb0dldEFsbChncm91cENvZGU6IHN0cmluZyk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCBncm91cCA9IGF3YWl0IHRoaXMuZ2V0R3JvdXBCeUNvZGUoZ3JvdXBDb2RlKTtcclxuICAgICAgICBpZiAoIWdyb3VwLmRhdGEpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoPFJlc3BvbnNlUmVzdWx0Pnsgc3VjY2VzczogdHJ1ZSwgZGF0YTogW10gfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBncmlkSW5mbyA9IG5ldyBHcmlkSW5mbyh7XHJcbiAgICAgICAgICAgIGZpZWxkczogJycsXHJcbiAgICAgICAgICAgIHBhZ2VJbmZvOiB7XHJcbiAgICAgICAgICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgICAgICAgICAgcGFnZVNpemU6IDEwMDAwLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzb3J0czogW3sgZmllbGQ6ICdzb3J0JywgZGlyOiAxIH1dLFxyXG4gICAgICAgICAgICBmaWx0ZXJzOiBbdGhpcy5fY29tbW9uU2VydmljZS5uZXdGaWx0ZXIoJ2dyb3VwQ2F0ZWdvcnlJZCcsIE9wZXJhdG9yLmVxdWFsLCBncm91cC5kYXRhLmlkKV1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0YShgJHt0aGlzLnNpbmdsZUNhdGVnb3J5RW5kcG9pbnR9L2dldERhdGFgLCBncmlkSW5mbyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXREYXRhKHVyaSwgZ3JpZEluZm86IEdyaWRJbmZvKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50LnBvc3Q8UmVzcG9uc2VSZXN1bHQ+KHVyaSwgZ3JpZEluZm8pLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYXN5bmMgZ2V0R3JvdXBCeUNvZGUoZ3JvdXBDb2RlOiBzdHJpbmcpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgdXJpID0gYCR7dGhpcy5ncm91cENhdGVnb3J5RW5kcG9pbnR9L2dldEJ5Q29kZS8ke2dyb3VwQ29kZX1gO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50LmdldDxSZXNwb25zZVJlc3VsdD4odXJpKS50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRXb3JrRGF5cyhkYXRlOiBzdHJpbmcsIGRheXM6IG51bWJlciwgaXNEYXkgPSAxKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmkgPSBgJHt0aGlzLmFwaUVuZHBvaW50fS9Ib2xpZGF5Q2F0ZWdvcnkvR2V0RGF0ZT9kYXRlPSR7ZGF0ZX0mZGF5cz0ke2RheXN9JmlzRGF5PSR7aXNEYXl9YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudC5nZXQ8UmVzcG9uc2VSZXN1bHQ+KHNlcnZpY2VVcmkpXHJcbiAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuX2NvbW1vblNlcnZpY2UuaGFuZGxlRXJyb3IoZXJyLCB0aGlzLl9pbmplY3RvcikpKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGF0ZUJ5RHVyYXRpb24oZGF0ZTogc3RyaW5nLCB0eXBlOiBib29sZWFuLCBkdXJhdGlvbjogbnVtYmVyKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmkgPSBgJHt0aGlzLmFwaUVuZHBvaW50fS9Ib2xpZGF5Q2F0ZWdvcnkvZ2V0RGF0ZUJ5RHVyYXRpb24/ZGF0ZT0ke2RhdGV9JnR5cGU9JHt0eXBlfSZkdXJhdGlvbj0ke2R1cmF0aW9ufWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnQuZ2V0PFJlc3BvbnNlUmVzdWx0PihzZXJ2aWNlVXJpKVxyXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLl9jb21tb25TZXJ2aWNlLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEl0ZW1CeUNvZGUoZGF0YVNvdXJjZTogYW55LCBjb2RlOiBzdHJpbmcpOiBNYXN0ZXJEYXRhSXRlbSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGFTb3VyY2UuZmluZCh4ID0+IHguY29kZSA9PT0gY29kZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SXRlbUJ5SW5zdGFuY2VJZChkYXRhU291cmNlOiBhbnksIGluc3RhbmNlSWQ6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiBkYXRhU291cmNlLmZpbmQoeCA9PiB4Lmluc3RhbmNlSWQgPT09IGluc3RhbmNlSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEl0ZW1CeUlkKGRhdGFTb3VyY2U6IGFueSwgaWQ6IG51bWJlcikge1xyXG4gICAgICAgIHJldHVybiBkYXRhU291cmNlLmZpbmQoeCA9PiB4LmlkID09PSBpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SXRlbUJ5R3JvdXBBbmRDb2RlKGdyb3VwQ29kZTogc3RyaW5nLCBjb2RlOiBzdHJpbmcpOiBQcm9taXNlPE1hc3RlckRhdGFJdGVtPiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgbGV0IGRhdGFTb3VyY2U6IE1hc3RlckRhdGFJdGVtW10gPSBbXTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnN0b3JhZ2UuZ2V0SXRlbShgJHt0aGlzLmNhdGVnb3J5UHJlZml4fSR7Z3JvdXBDb2RlfWApKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmRvR2V0QWxsKGdyb3VwQ29kZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbShgJHt0aGlzLmNhdGVnb3J5UHJlZml4fSR7Z3JvdXBDb2RlfWAsIEpTT04uc3RyaW5naWZ5KHJlc3VsdC5kYXRhKSk7XHJcbiAgICAgICAgICAgICAgICBkYXRhU291cmNlID0gPE1hc3RlckRhdGFJdGVtW10+cmVzdWx0LmRhdGE7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhU291cmNlID0gPE1hc3RlckRhdGFJdGVtW10+SlNPTi5wYXJzZSh0aGlzLnN0b3JhZ2UuZ2V0SXRlbShgJHt0aGlzLmNhdGVnb3J5UHJlZml4fSR7Z3JvdXBDb2RlfWApKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVzb2x2ZShkYXRhU291cmNlLmZpbmQoeCA9PiB4LmNvZGUgPT09IGNvZGUpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZWZyZXNoQ2F0ZWdvcnkoKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICAgIGlmIChrZXkuc3RhcnRzV2l0aCh0aGlzLmNhdGVnb3J5UHJlZml4KSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwQ29kZSA9IGtleS5zcGxpdCgnXycpWzFdO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXQoZ3JvdXBDb2RlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGdldEFkcmVzcyhjaXR5OiBhbnksIGRpc3RyaWN0OiBhbnksIHdhcmQ6IGFueSwgc3RyZWV0OiBhbnksIHN0clRleHQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgbGV0IHN0clJlc3VsdCA9ICcnO1xyXG4gICAgICAgICAgICBpZiAoc3RyVGV4dCAmJiBzdHJUZXh0ICE9ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBzdHJSZXN1bHQgKz0gc3RyVGV4dCArICcsICc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHN0cmVldCAmJiBzdHJlZXQgIT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHN0clJlc3VsdCArPSBzdHJlZXQgKyAnLCAnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHdhcmQgJiYgd2FyZCAhPSAnJykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeCA9IGF3YWl0IHRoaXMuZ2V0SXRlbURldGFpbFVuaXQod2FyZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoeCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0clJlc3VsdCArPSB4Lm5hbWUgKyAnLCAnXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGRpc3RyaWN0ICYmIGRpc3RyaWN0ICE9ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB4ID0gYXdhaXQgdGhpcy5nZXRJdGVtRGV0YWlsVW5pdChkaXN0cmljdCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoeCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0clJlc3VsdCArPSB4Lm5hbWUgKyAnLCAnXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGNpdHkgJiYgY2l0eSAhPSAnJykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeCA9IGF3YWl0IHRoaXMuZ2V0SXRlbURldGFpbFVuaXQoY2l0eSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoeCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0clJlc3VsdCArPSB4Lm5hbWVcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXNvbHZlKHN0clJlc3VsdCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VmFsdWVCeUNvZGUoY29kZTogYW55KTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2luZ2xlQ2F0ZWdvcnlFbmRwb2ludH0vZ2V0VmFsdWVCeUNvZGU/Y29kZT0ke2NvZGV9YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudC5nZXQ8UmVzcG9uc2VSZXN1bHQ+KHVybClcclxuICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5fY29tbW9uU2VydmljZS5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSkpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRHcm91cEl0ZW1CeUNvZGUoY29kZTogc3RyaW5nKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYXBpRW5kcG9pbnR9L0dyb3VwQ2F0ZWdvcnkvJHtjb2RlfWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnQuZ2V0PFJlc3BvbnNlUmVzdWx0Pih1cmwpLnBpcGUoY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5fY29tbW9uU2VydmljZS5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSkpXHJcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwYXJzZU1hdGhFeHByZXNzaW9uKGV4cHJlc3Npb246IHN0cmluZywgZGVjaW1hbFBsYWNlczogbnVtYmVyLCBmb3JWaWV0bmFtZXNlOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICBleHByZXNzaW9uID0gZW5jb2RlVVJJQ29tcG9uZW50KGV4cHJlc3Npb24pO1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYXBpRW5kcG9pbnR9L01hdGhFeHByZXNzaW9uL1BhcnNlTWF0aD9leHByZXNzaW9uPSR7ZXhwcmVzc2lvbn0mZGVjaW1hbFBsYWNlcz0ke2RlY2ltYWxQbGFjZXN9JmZvclZpZXRuYW1lc2U9JHtmb3JWaWV0bmFtZXNlfWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnQuZ2V0PFJlc3BvbnNlUmVzdWx0Pih1cmwpXHJcbiAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuX2NvbW1vblNlcnZpY2UuaGFuZGxlRXJyb3IoZXJyLCB0aGlzLl9pbmplY3RvcikpKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QnlHcmlkUmVxdWVzdChncm91cENvZGU6IHN0cmluZywgZ3JpZEluZm86IEdyaWRJbmZvLCBwbHVzVXJsOiBzdHJpbmcgPSAnJyk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZGF0YTogYW55O1xyXG4gICAgICAgICAgICBjb25zdCBkYXRhU3RvcmFnZSA9IHRoaXMuc3RvcmFnZS5nZXRJdGVtKGAke3RoaXMuY2F0ZWdvcnlQcmVmaXh9JHtncm91cENvZGV9YCk7XHJcbiAgICAgICAgICAgIGlmICghZGF0YVN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgIGxldCBhcGlVcmwgPSBgJHt0aGlzLnNpbmdsZUNhdGVnb3J5RW5kcG9pbnR9L2dldERhdGFgO1xyXG4gICAgICAgICAgICAgICAgaWYgKHBsdXNVcmwgIT0gbnVsbCAmJiBwbHVzVXJsICE9ICcnKVxyXG4gICAgICAgICAgICAgICAgICAgIGFwaVVybCArPSAnLycgKyBwbHVzVXJsO1xyXG4gICAgICAgICAgICAgICAgZGF0YSA9IGF3YWl0IHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgICAgICAgICAucG9zdDxSZXNwb25zZVJlc3VsdD4oYXBpVXJsLCBncmlkSW5mbylcclxuICAgICAgICAgICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKGVyciA9PiB0aGlzLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKSkudG9Qcm9taXNlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0oYCR7dGhpcy5jYXRlZ29yeVByZWZpeH0ke2dyb3VwQ29kZX1gLCBKU09OLnN0cmluZ2lmeShkYXRhLmRhdGEpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGRhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiBKU09OLnBhcnNlKGRhdGFTdG9yYWdlKVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVzb2x2ZShkYXRhKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdlbmVyYXRlR3JpZEluZm9Ecm9wZG93bihmaWx0ZXJzOiBGaWx0ZXJbXSwgb3B0aW9uczogRHJvcGRvd25PcHRpb25zKSB7XHJcbiAgICAgICAgY29uc3QgZ3JpZEluZm8gPSB7XHJcbiAgICAgICAgICAgIHBhZ2VJbmZvOiB7XHJcbiAgICAgICAgICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgICAgICAgICAgcGFnZVNpemU6IDEwMDAwMFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmaWx0ZXJzLFxyXG4gICAgICAgICAgICBzb3J0czogW10sXHJcbiAgICAgICAgICAgIGZpZWxkczogYCR7b3B0aW9ucy52YWx1ZUZpZWxkfSR7b3B0aW9ucy5kaXNwbGF5RmllbGQgPT0gb3B0aW9ucy52YWx1ZUZpZWxkID8gJycgOiAnLCcgKyBvcHRpb25zLmRpc3BsYXlGaWVsZH0ke29wdGlvbnMuZmllbGRQbHVzfWBcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc29ydHMgIT0gbnVsbCAmJiBvcHRpb25zLnNvcnRzLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIGdyaWRJbmZvLnNvcnRzID0gWy4uLm9wdGlvbnMuc29ydHNdO1xyXG4gICAgICAgIGlmIChvcHRpb25zLnNvcnRGaWVsZCAhPSBudWxsICYmIG9wdGlvbnMuc29ydEZpZWxkICE9ICcnKVxyXG4gICAgICAgICAgICBncmlkSW5mby5zb3J0cy5wdXNoKHsgZmllbGQ6IG9wdGlvbnMuc29ydEZpZWxkLCBkaXI6IG9wdGlvbnMuc29ydERpciB9KTtcclxuICAgICAgICByZXR1cm4gZ3JpZEluZm87XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXREZWZhdWx0VmFsdWUob3B0aW9uczogRHJvcGRvd25PcHRpb25zKSB7XHJcbiAgICAgICAgaWYgKG9wdGlvbnMuZmllbGRQbHVzLmxlbmd0aCA+IDAgJiYgIW9wdGlvbnMuZmllbGRQbHVzLnN0YXJ0c1dpdGgoJywnKSlcclxuICAgICAgICAgICAgb3B0aW9ucy5maWVsZFBsdXMgPSAnLCcgKyBvcHRpb25zLmZpZWxkUGx1cztcclxuICAgICAgICBpZiAob3B0aW9ucy5zb3J0RmllbGQgPT0gJycpXHJcbiAgICAgICAgICAgIG9wdGlvbnMuc29ydEZpZWxkID0gb3B0aW9ucy5kaXNwbGF5RmllbGQ7XHJcbiAgICAgICAgaWYgKG9wdGlvbnMuZnVuY0dldExhYmVsID09IG51bGwgfHwgdHlwZW9mIG9wdGlvbnMuZnVuY0dldExhYmVsICE9ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgb3B0aW9ucy5mdW5jR2V0TGFiZWwgPSAoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1bb3B0aW9ucy5kaXNwbGF5RmllbGRdO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRhRHJvcGRvd24oZ3JvdXBDb2RlOiBzdHJpbmcsIGFyclZhbHVlOiBhbnlbXSwgb3B0aW9ucz86IERyb3Bkb3duT3B0aW9ucyk6IFByb21pc2U8YW55W10+IHtcclxuICAgICAgICB0aGlzLnNldERlZmF1bHRWYWx1ZShvcHRpb25zKTtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdldChncm91cENvZGUpLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBbXTtcclxuICAgICAgICAgICAgICAgIGlmIChhcnJWYWx1ZSA9PSBudWxsKVxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlcztcclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXMuZmlsdGVyKHggPT4gYXJyVmFsdWUuc29tZSh2ID0+IHYgPT0geFtvcHRpb25zLnZhbHVlRmllbGRdKSk7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH0pLmNhdGNoKGVyciA9PiByZWplY3QoZXJyKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGF0YURyb3Bkb3duQnlGaWx0ZXIoZ3JvdXBDb2RlOiBzdHJpbmcsIGFyclZhbHVlOiBhbnlbXSwgZmlsdGVyczogRmlsdGVyW10sIG9wdGlvbnM/OiBEcm9wZG93bk9wdGlvbnMpOiBQcm9taXNlPGFueVtdPiB7XHJcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0VmFsdWUob3B0aW9ucyk7XHJcbiAgICAgICAgZmlsdGVycy5zcGxpY2UoMCwgMCwgdGhpcy5fY29tbW9uU2VydmljZS5uZXdGaWx0ZXIoJ2dyb3VwQ2F0ZWdvcnlDb2RlJywgT3BlcmF0b3IuZXF1YWwsIGdyb3VwQ29kZSkpO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0KGdyb3VwQ29kZSlcclxuICAgICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhcnJWYWx1ZSA9PSBudWxsKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXMuZmlsdGVyKHggPT4gYXJyVmFsdWUuc29tZSh2ID0+IHYgPT0geFtvcHRpb25zLnZhbHVlRmllbGRdKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goZXJyID0+IHJlamVjdChlcnIpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVFcnJvcihlcnJvcjogYW55LCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICBjb25zdCBjb21tb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KENvbW1vblNlcnZpY2UpO1xyXG4gICAgICAgIHJldHVybiBjb21tb25TZXJ2aWNlLmhhbmRsZUVycm9yKGVycm9yLCBpbmplY3Rvcik7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -11,6 +11,10 @@ export class UserGroupRealService extends BaseService {
11
11
  this.endPoint = _moduleConfigService.getConfig().environment.apiDomain.userOrgEndpoint;
12
12
  this._moduleConfig = _moduleConfigService.getConfig();
13
13
  }
14
+ getGroupIdsByUser(userId) {
15
+ const apiUrl = `${this.serviceUri}/GetGroupIdsByUser?userId=${userId}`;
16
+ return this.defaultGet(apiUrl);
17
+ }
14
18
  }
15
19
  UserGroupRealService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserGroupRealService_Factory() { return new UserGroupRealService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i2.ModuleConfigService)); }, token: UserGroupRealService, providedIn: "root" });
16
20
  UserGroupRealService.decorators = [
@@ -23,4 +27,4 @@ UserGroupRealService.ctorParameters = () => [
23
27
  { type: Injector },
24
28
  { type: ModuleConfigService }
25
29
  ];
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cC1yZWFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsic2VydmljZXMvdXNlci1ncm91cC1yZWFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUs5RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsV0FBVztJQUdqRCxZQUNJLElBQWdCLEVBQ2hCLFFBQWtCLEVBQ2xCLG9CQUF5QztRQUV6QyxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsZUFBZSxJQUFJLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxVQUFVLFlBQVksQ0FBQyxDQUFDO1FBQ3hLLElBQUksQ0FBQyxRQUFRLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUM7UUFDdkYsSUFBSSxDQUFDLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMxRCxDQUFDOzs7O1lBZEosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUFSUSxVQUFVO1lBQ0UsUUFBUTtZQUdwQixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNb2R1bGVDb25maWcgfSBmcm9tICcuLi9jb25maWdzL21vZHVsZS1jb25maWcnO1xyXG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9kdWxlQ29uZmlnU2VydmljZSB9IGZyb20gJy4vbW9kdWxlLWNvbmZpZy5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckdyb3VwUmVhbFNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcbiAgICByZWFkb25seSBfbW9kdWxlQ29uZmlnOiBNb2R1bGVDb25maWc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgX21vZHVsZUNvbmZpZ1NlcnZpY2U6IE1vZHVsZUNvbmZpZ1NlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKGh0dHAsIGluamVjdG9yLCBgJHtfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudC5hcGlEb21haW4udXNlck9yZ0VuZHBvaW50fS8ke19tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaVZlcnNpb259L3VzZXJncm91cGApO1xyXG4gICAgICAgIHRoaXMuZW5kUG9pbnQgPSBfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudC5hcGlEb21haW4udXNlck9yZ0VuZHBvaW50O1xyXG4gICAgICAgIHRoaXMuX21vZHVsZUNvbmZpZyA9IF9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cC1yZWFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsic2VydmljZXMvdXNlci1ncm91cC1yZWFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUs5RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsV0FBVztJQUdqRCxZQUNJLElBQWdCLEVBQ2hCLFFBQWtCLEVBQ2xCLG9CQUF5QztRQUV6QyxLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsZUFBZSxJQUFJLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxVQUFVLFlBQVksQ0FBQyxDQUFDO1FBQ3hLLElBQUksQ0FBQyxRQUFRLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUM7UUFDdkYsSUFBSSxDQUFDLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsaUJBQWlCLENBQUMsTUFBYztRQUM1QixNQUFNLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLDZCQUE2QixNQUFNLEVBQUUsQ0FBQztRQUN2RSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7OztZQWxCSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQVRRLFVBQVU7WUFDRSxRQUFRO1lBSXBCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1vZHVsZUNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZ3MvbW9kdWxlLWNvbmZpZyc7XHJcbmltcG9ydCB7IFJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi4vbW9kZWxzL3Jlc3BvbnNlLXJlc3VsdCc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2R1bGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGUtY29uZmlnLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyR3JvdXBSZWFsU2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcclxuICAgIHJlYWRvbmx5IF9tb2R1bGVDb25maWc6IE1vZHVsZUNvbmZpZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBfbW9kdWxlQ29uZmlnU2VydmljZTogTW9kdWxlQ29uZmlnU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoaHR0cCwgaW5qZWN0b3IsIGAke19tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaURvbWFpbi51c2VyT3JnRW5kcG9pbnR9LyR7X21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQuYXBpVmVyc2lvbn0vdXNlcmdyb3VwYCk7XHJcbiAgICAgICAgdGhpcy5lbmRQb2ludCA9IF9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaURvbWFpbi51c2VyT3JnRW5kcG9pbnQ7XHJcbiAgICAgICAgdGhpcy5fbW9kdWxlQ29uZmlnID0gX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCk7XHJcbiAgICB9XHJcbiAgICBnZXRHcm91cElkc0J5VXNlcih1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCBhcGlVcmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0dldEdyb3VwSWRzQnlVc2VyP3VzZXJJZD0ke3VzZXJJZH1gO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRHZXQoYXBpVXJsKTtcclxuICAgIH1cclxufVxyXG4iXX0=