myrtex-mf-competition 1.0.20 → 1.0.22

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.
@@ -4,7 +4,6 @@ import { EffectsModule } from '@ngrx/effects';
4
4
  import { StoreModule } from '@ngrx/store';
5
5
  import { CompetitionHeaderComponent } from './components/competition-header.component';
6
6
  import { FormsModule } from '@angular/forms';
7
- import { CompetitionHeaderEffects } from './store/competition-header.effects';
8
7
  import { COMPETITION_HEADER_FEATURE_NAME } from './constants';
9
8
  import { competitionHeaderReducer } from './store/competition-header.reducers';
10
9
  import { CompetitionHeaderService } from './services/competition-header.service';
@@ -12,6 +11,7 @@ import { CompetitionHeaderCustomButtonsDirective } from './directives/competitio
12
11
  import { NgSelectModule } from '@ng-select/ng-select';
13
12
  import { MyrtexMfUiCompositeModule, MyrtexUiComponentsModule, TenantSettingsModule } from 'myrtex-mf-ui-composite';
14
13
  import { MyrtexSignerModule } from 'myrtex-mf-signer';
14
+ import { CompetitionHeaderEffects } from './store/competition-header.effects';
15
15
  import * as i0 from "@angular/core";
16
16
  import * as i1 from "@ngrx/effects";
17
17
  import * as i2 from "@ngrx/store";
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
66
66
  ]
67
67
  }]
68
68
  }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGV0aXRpb24taGVhZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1tZi1jb21wZXRpdGlvbi9zcmMvbGliL21vZHVsZXMvY29tcGV0aXRpb24taGVhZGVyL2NvbXBldGl0aW9uLWhlYWRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbkgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBMEJ0RCxNQUFNLE9BQU8sdUJBQXVCOztxSEFBdkIsdUJBQXVCO3NIQUF2Qix1QkFBdUIsaUJBdEJoQywwQkFBMEI7UUFDMUIsdUNBQXVDLGFBR3ZDLFlBQVksa0RBR1osb0JBQW9CO1FBQ3BCLFdBQVc7UUFDWCx3QkFBd0I7UUFDeEIseUJBQXlCO1FBQ3pCLGtCQUFrQjtRQUNsQixjQUFjLGFBTWQsMEJBQTBCO1FBQzFCLHVDQUF1QztzSEFHOUIsdUJBQXVCLGFBUnZCO1FBQ1Qsd0JBQXdCO0tBQ3pCLFlBYlE7WUFDUCxZQUFZO1lBQ1osYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDcEQsV0FBVyxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsRUFBRSx3QkFBd0IsQ0FBQztZQUNqRixvQkFBb0I7WUFDcEIsV0FBVztZQUNYLHdCQUF3QjtZQUN4Qix5QkFBeUI7WUFDekIsa0JBQWtCO1lBQ2xCLGNBQWM7U0FDZjs0RkFTVSx1QkFBdUI7a0JBeEJuQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWiwwQkFBMEI7d0JBQzFCLHVDQUF1QztxQkFDeEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUM7d0JBQ3BELFdBQVcsQ0FBQyxVQUFVLENBQUMsK0JBQStCLEVBQUUsd0JBQXdCLENBQUM7d0JBQ2pGLG9CQUFvQjt3QkFDcEIsV0FBVzt3QkFDWCx3QkFBd0I7d0JBQ3hCLHlCQUF5Qjt3QkFDekIsa0JBQWtCO3dCQUNsQixjQUFjO3FCQUNmO29CQUNELFNBQVMsRUFBRTt3QkFDVCx3QkFBd0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCwwQkFBMEI7d0JBQzFCLHVDQUF1QztxQkFDeEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBFZmZlY3RzTW9kdWxlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XHJcbmltcG9ydCB7IFN0b3JlTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBDb21wZXRpdGlvbkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb21wZXRpdGlvbi1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbXBldGl0aW9uSGVhZGVyRWZmZWN0cyB9IGZyb20gJy4vc3RvcmUvY29tcGV0aXRpb24taGVhZGVyLmVmZmVjdHMnO1xyXG5pbXBvcnQgeyBDT01QRVRJVElPTl9IRUFERVJfRkVBVFVSRV9OQU1FIH0gZnJvbSAnLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBjb21wZXRpdGlvbkhlYWRlclJlZHVjZXIgfSBmcm9tICcuL3N0b3JlL2NvbXBldGl0aW9uLWhlYWRlci5yZWR1Y2Vycyc7XHJcbmltcG9ydCB7IENvbXBldGl0aW9uSGVhZGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY29tcGV0aXRpb24taGVhZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wZXRpdGlvbkhlYWRlckN1c3RvbUJ1dHRvbnNEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY29tcGV0aXRpb24taGVhZGVyLWN1c3RvbS1idXR0b25zLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xyXG5pbXBvcnQgeyBNeXJ0ZXhNZlVpQ29tcG9zaXRlTW9kdWxlLCBNeXJ0ZXhVaUNvbXBvbmVudHNNb2R1bGUsIFRlbmFudFNldHRpbmdzTW9kdWxlIH0gZnJvbSAnbXlydGV4LW1mLXVpLWNvbXBvc2l0ZSc7XHJcbmltcG9ydCB7IE15cnRleFNpZ25lck1vZHVsZSB9IGZyb20gJ215cnRleC1tZi1zaWduZXInO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIENvbXBldGl0aW9uSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgQ29tcGV0aXRpb25IZWFkZXJDdXN0b21CdXR0b25zRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtDb21wZXRpdGlvbkhlYWRlckVmZmVjdHNdKSxcclxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoQ09NUEVUSVRJT05fSEVBREVSX0ZFQVRVUkVfTkFNRSwgY29tcGV0aXRpb25IZWFkZXJSZWR1Y2VyKSxcclxuICAgIFRlbmFudFNldHRpbmdzTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNeXJ0ZXhVaUNvbXBvbmVudHNNb2R1bGUsXHJcbiAgICBNeXJ0ZXhNZlVpQ29tcG9zaXRlTW9kdWxlLFxyXG4gICAgTXlydGV4U2lnbmVyTW9kdWxlLFxyXG4gICAgTmdTZWxlY3RNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgQ29tcGV0aXRpb25IZWFkZXJTZXJ2aWNlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBDb21wZXRpdGlvbkhlYWRlckNvbXBvbmVudCxcclxuICAgIENvbXBldGl0aW9uSGVhZGVyQ3VzdG9tQnV0dG9uc0RpcmVjdGl2ZSxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21wZXRpdGlvbkhlYWRlck1vZHVsZSB7XHJcbn1cclxuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGV0aXRpb24taGVhZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1tZi1jb21wZXRpdGlvbi9zcmMvbGliL21vZHVsZXMvY29tcGV0aXRpb24taGVhZGVyL2NvbXBldGl0aW9uLWhlYWRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbkgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7O0FBMEI5RSxNQUFNLE9BQU8sdUJBQXVCOztxSEFBdkIsdUJBQXVCO3NIQUF2Qix1QkFBdUIsaUJBdEJoQywwQkFBMEI7UUFDMUIsdUNBQXVDLGFBR3ZDLFlBQVksa0RBR1osb0JBQW9CO1FBQ3BCLFdBQVc7UUFDWCx3QkFBd0I7UUFDeEIseUJBQXlCO1FBQ3pCLGtCQUFrQjtRQUNsQixjQUFjLGFBTWQsMEJBQTBCO1FBQzFCLHVDQUF1QztzSEFHOUIsdUJBQXVCLGFBUnZCO1FBQ1Qsd0JBQXdCO0tBQ3pCLFlBYlE7WUFDUCxZQUFZO1lBQ1osYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDcEQsV0FBVyxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsRUFBRSx3QkFBd0IsQ0FBQztZQUNqRixvQkFBb0I7WUFDcEIsV0FBVztZQUNYLHdCQUF3QjtZQUN4Qix5QkFBeUI7WUFDekIsa0JBQWtCO1lBQ2xCLGNBQWM7U0FDZjs0RkFTVSx1QkFBdUI7a0JBeEJuQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWiwwQkFBMEI7d0JBQzFCLHVDQUF1QztxQkFDeEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUM7d0JBQ3BELFdBQVcsQ0FBQyxVQUFVLENBQUMsK0JBQStCLEVBQUUsd0JBQXdCLENBQUM7d0JBQ2pGLG9CQUFvQjt3QkFDcEIsV0FBVzt3QkFDWCx3QkFBd0I7d0JBQ3hCLHlCQUF5Qjt3QkFDekIsa0JBQWtCO3dCQUNsQixjQUFjO3FCQUNmO29CQUNELFNBQVMsRUFBRTt3QkFDVCx3QkFBd0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCwwQkFBMEI7d0JBQzFCLHVDQUF1QztxQkFDeEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBFZmZlY3RzTW9kdWxlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XHJcbmltcG9ydCB7IFN0b3JlTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBDb21wZXRpdGlvbkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb21wZXRpdGlvbi1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENPTVBFVElUSU9OX0hFQURFUl9GRUFUVVJFX05BTUUgfSBmcm9tICcuL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IGNvbXBldGl0aW9uSGVhZGVyUmVkdWNlciB9IGZyb20gJy4vc3RvcmUvY29tcGV0aXRpb24taGVhZGVyLnJlZHVjZXJzJztcclxuaW1wb3J0IHsgQ29tcGV0aXRpb25IZWFkZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jb21wZXRpdGlvbi1oZWFkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBldGl0aW9uSGVhZGVyQ3VzdG9tQnV0dG9uc0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9jb21wZXRpdGlvbi1oZWFkZXItY3VzdG9tLWJ1dHRvbnMuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcbmltcG9ydCB7IE15cnRleE1mVWlDb21wb3NpdGVNb2R1bGUsIE15cnRleFVpQ29tcG9uZW50c01vZHVsZSwgVGVuYW50U2V0dGluZ3NNb2R1bGUgfSBmcm9tICdteXJ0ZXgtbWYtdWktY29tcG9zaXRlJztcclxuaW1wb3J0IHsgTXlydGV4U2lnbmVyTW9kdWxlIH0gZnJvbSAnbXlydGV4LW1mLXNpZ25lcic7XHJcbmltcG9ydCB7IENvbXBldGl0aW9uSGVhZGVyRWZmZWN0cyB9IGZyb20gJy4vc3RvcmUvY29tcGV0aXRpb24taGVhZGVyLmVmZmVjdHMnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIENvbXBldGl0aW9uSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgQ29tcGV0aXRpb25IZWFkZXJDdXN0b21CdXR0b25zRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtDb21wZXRpdGlvbkhlYWRlckVmZmVjdHNdKSxcclxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoQ09NUEVUSVRJT05fSEVBREVSX0ZFQVRVUkVfTkFNRSwgY29tcGV0aXRpb25IZWFkZXJSZWR1Y2VyKSxcclxuICAgIFRlbmFudFNldHRpbmdzTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNeXJ0ZXhVaUNvbXBvbmVudHNNb2R1bGUsXHJcbiAgICBNeXJ0ZXhNZlVpQ29tcG9zaXRlTW9kdWxlLFxyXG4gICAgTXlydGV4U2lnbmVyTW9kdWxlLFxyXG4gICAgTmdTZWxlY3RNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgQ29tcGV0aXRpb25IZWFkZXJTZXJ2aWNlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBDb21wZXRpdGlvbkhlYWRlckNvbXBvbmVudCxcclxuICAgIENvbXBldGl0aW9uSGVhZGVyQ3VzdG9tQnV0dG9uc0RpcmVjdGl2ZSxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21wZXRpdGlvbkhlYWRlck1vZHVsZSB7XHJcbn1cclxuIl19
@@ -1,91 +1,179 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { createEffect, ofType } from '@ngrx/effects';
3
- import { select } from '@ngrx/store';
4
- import { EMPTY } from 'rxjs';
5
- import { catchError, map, switchMap, tap, withLatestFrom } from 'rxjs/operators';
6
- import * as CompetitionHeaderActions from './competition-header.actions';
7
- import { ECompetitionHeaderActions } from './competition-header.actions';
8
- import { CompetitionVersionStatusEnum, MessageSeverity, selectCompetitionId, Utilities } from 'myrtex-mf-ui-composite';
9
2
  import * as i0 from "@angular/core";
10
3
  import * as i1 from "../services/competition-header.service";
11
4
  import * as i2 from "@ngrx/effects";
12
5
  import * as i3 from "@ngrx/store";
13
6
  import * as i4 from "myrtex-mf-ui-composite";
14
7
  export class CompetitionHeaderEffects {
8
+ // loadCompetitionHeader$ = createEffect(() => this.actions$.pipe(
9
+ // ofType(ECompetitionHeaderActions.LoadCompetitionHeader),
10
+ // withLatestFrom(this.store.pipe(select(selectCompetitionId))),
11
+ // switchMap(([, competitionId]) => {
12
+ // return this.competitionHeaderService.getHeader(competitionId).pipe(
13
+ // map((result: CompetitionHeaderVersionModel) => CompetitionHeaderActions.loadCompetitionHeaderSuccess({competitionHeader: result})),
14
+ // catchError((err) => {
15
+ // this.alertService.showMessage(err, null, MessageSeverity.error);
16
+ // return EMPTY;
17
+ // })
18
+ // );
19
+ // })));
20
+ //
21
+ // deleteCompetitionVersion$ = createEffect(() => this.actions$.pipe(
22
+ // ofType(ECompetitionHeaderActions.DeleteCompetitionVersion),
23
+ // map((action: { versionId: string }) => action.versionId),
24
+ // withLatestFrom(this.store.pipe(select(selectCompetitionId))),
25
+ // switchMap(([versionId, competitionId]) => {
26
+ // return this.competitionHeaderService.deleteVersion(competitionId, versionId).pipe(
27
+ // map((result: boolean) => CompetitionHeaderActions.deleteCompetitionVersionSuccess({ versionId })),
28
+ // catchError((err) => {
29
+ // this.alertService.showMessage(err, null, MessageSeverity.error);
30
+ // return EMPTY;
31
+ // })
32
+ // );
33
+ // })));
34
+ //
35
+ // deleteCompetitionVersionSuccess$ = createEffect(() => this.actions$.pipe(
36
+ // ofType(ECompetitionHeaderActions.DeleteCompetitionVersionSuccess),
37
+ // withLatestFrom(this.store.pipe(select(selectCompetitionId))),
38
+ // tap(([, competitionId]) => window.location.href = `/application/competitions/item?competitionId=${competitionId}`)
39
+ // ), {dispatch: false});
40
+ //
41
+ // createCompetitionVersion$ = createEffect(() => this.actions$.pipe(
42
+ // ofType(ECompetitionHeaderActions.CreateCompetitionVersion),
43
+ // withLatestFrom(this.store.pipe(select(selectCompetitionId))),
44
+ // switchMap(([, competitionId]) => {
45
+ // return this.competitionHeaderService.createVersion(competitionId).pipe(
46
+ // map((result: string) => CompetitionHeaderActions.createCompetitionVersionSuccess({ versionId: result })),
47
+ // catchError((err) => {
48
+ // this.alertService.showMessage(err, null, MessageSeverity.error);
49
+ // return EMPTY;
50
+ // })
51
+ // );
52
+ // })));
53
+ //
54
+ // createCompetitionVersionSuccess$ = createEffect(() => this.actions$.pipe(
55
+ // ofType(ECompetitionHeaderActions.CreateCompetitionVersionSuccess),
56
+ // map((action: { versionId: string }) => action.versionId),
57
+ // withLatestFrom(this.store.pipe(select(selectCompetitionId))),
58
+ // tap(([versionId, competitionId]) =>
59
+ // window.location.href = `/application/competitions/item?competitionId=${competitionId}&versionId=${versionId}`)
60
+ // ), {dispatch: false});
61
+ //
62
+ // competitionVersionChangeStatus$ = createEffect(() => this.actions$.pipe(
63
+ // ofType(ECompetitionHeaderActions.CompetitionVersionChangeStatus),
64
+ // map((action: { versionId: string, status: CompetitionVersionStatusEnum }) => action),
65
+ // withLatestFrom(this.store.pipe(select(selectCompetitionId))),
66
+ // switchMap(([action, competitionId]) => {
67
+ // return this.competitionHeaderService.versionChangeStatus(competitionId, action.versionId, action.status).pipe(
68
+ // map((result: boolean) => {
69
+ // return CompetitionHeaderActions.competitionVersionChangeStatusSuccess({
70
+ // versionId: action.versionId,
71
+ // status: action.status
72
+ // });
73
+ // }),
74
+ // catchError((err) => {
75
+ // this.alertService.showMessage(err, null, MessageSeverity.error);
76
+ // return EMPTY;
77
+ // })
78
+ // );
79
+ // })));
80
+ //
81
+ // competitionVersionChangeStatusSuccess$ = createEffect(() => this.actions$.pipe(
82
+ // ofType(ECompetitionHeaderActions.CompetitionVersionChangeStatusSuccess),
83
+ // map((action: { versionId: string, status: CompetitionVersionStatusEnum }) => action),
84
+ // withLatestFrom(this.store.pipe(select(selectCompetitionId))),
85
+ // tap(([action, competitionId]) => {
86
+ // if (action.status === CompetitionVersionStatusEnum.Validation) {
87
+ // window.location.href = `/m-data/minfin/selection/edit?competitionId=${competitionId}&versionId=${action.versionId}`;
88
+ // } else {
89
+ // window.location.reload();
90
+ // }
91
+ // })
92
+ // ), { dispatch: false });
93
+ //
94
+ // selectCompetitionVersion$ = createEffect(() => this.actions$.pipe(
95
+ // ofType(ECompetitionHeaderActions.SelectCompetitionVersion),
96
+ // map((action: { versionId: string }) => action.versionId),
97
+ // withLatestFrom(this.store.pipe(select(selectCompetitionId))),
98
+ // tap(([versionId, competitionId]) => {
99
+ // const newUri = Utilities.updateQueryStringParameter(window.location.href, 'versionId', versionId);
100
+ // window.location.href = newUri;
101
+ // })
102
+ // ), {dispatch: false});
103
+ //
104
+ // activateCompetition$ = createEffect(() => (this.actions$.pipe(
105
+ // ofType(ECompetitionHeaderActions.ActivateCompetition),
106
+ // withLatestFrom(this.store.pipe(select(selectCompetitionId))),
107
+ // switchMap(([, competitionId]) => {
108
+ // return this.competitionHeaderService.activate(competitionId).pipe(
109
+ // map((result: any) => CompetitionHeaderActions.competitionChangeStatusSuccess()),
110
+ // catchError((err, caught) => {
111
+ // this.alertService.showStickyMessage(err, 'Ошибка активации', MessageSeverity.error);
112
+ // return EMPTY;
113
+ // })
114
+ // );
115
+ // })
116
+ // )));
117
+ //
118
+ // pauseCompetition$ = createEffect(() => (this.actions$.pipe(
119
+ // ofType(ECompetitionHeaderActions.PauseCompetition),
120
+ // withLatestFrom(this.store.pipe(select(selectCompetitionId))),
121
+ // switchMap(([, competitionId]) => {
122
+ // return this.competitionHeaderService.pause(competitionId).pipe(
123
+ // map((result: any) => CompetitionHeaderActions.competitionChangeStatusSuccess()),
124
+ // catchError((err, caught) => {
125
+ // this.alertService.showStickyMessage(err, 'Ошибка приостановки', MessageSeverity.error);
126
+ // return EMPTY;
127
+ // })
128
+ // );
129
+ // })
130
+ // )));
131
+ //
132
+ // completeCompetition$ = createEffect(() => (this.actions$.pipe(
133
+ // ofType(ECompetitionHeaderActions.CompleteCompetition),
134
+ // withLatestFrom(this.store.pipe(select(selectCompetitionId))),
135
+ // switchMap(([, competitionId]) => {
136
+ // return this.competitionHeaderService.complete(competitionId).pipe(
137
+ // map((result: any) => CompetitionHeaderActions.competitionChangeStatusSuccess()),
138
+ // catchError((err, caught) => {
139
+ // this.alertService.showStickyMessage(err, 'Ошибка при завершении', MessageSeverity.error);
140
+ // return EMPTY;
141
+ // })
142
+ // );
143
+ // })
144
+ // )));
145
+ //
146
+ // cancelCompetition$ = createEffect(() => (this.actions$.pipe(
147
+ // ofType(ECompetitionHeaderActions.CancelCompetition),
148
+ // withLatestFrom(this.store.pipe(select(selectCompetitionId))),
149
+ // switchMap(([, competitionId]) => {
150
+ // return this.competitionHeaderService.cancel(competitionId).pipe(
151
+ // map((result: any) => CompetitionHeaderActions.competitionChangeStatusSuccess()),
152
+ // catchError((err, caught) => {
153
+ // this.alertService.showStickyMessage(err, 'Ошибка при отмене', MessageSeverity.error);
154
+ // return EMPTY;
155
+ // })
156
+ // );
157
+ // })
158
+ // )));
159
+ //
160
+ // cancelCompetitionWithValidation$ = createEffect(() => this.actions$.pipe(
161
+ // ofType(ECompetitionHeaderActions.CancelCompetitionWithValidation),
162
+ // map((action: { versionId: string }) => action.versionId),
163
+ // withLatestFrom(this.store.pipe(select(selectCompetitionId))),
164
+ // tap(([versionId, competitionId]) =>
165
+ // window.location.href = `/m-data/minfin/selection/edit/cancel?competitionId=${competitionId}&versionId=${versionId}`)
166
+ // ), {dispatch: false});
167
+ //
168
+ // competitionChangeStatusSuccess$ = createEffect(() => this.actions$.pipe(
169
+ // ofType(ECompetitionHeaderActions.CompetitionChangeStatusSuccess),
170
+ // tap(() => window.location.reload())
171
+ // ), {dispatch: false});
15
172
  constructor(competitionHeaderService, actions$, store, alertService) {
16
173
  this.competitionHeaderService = competitionHeaderService;
17
174
  this.actions$ = actions$;
18
175
  this.store = store;
19
176
  this.alertService = alertService;
20
- this.loadCompetitionHeader$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.LoadCompetitionHeader), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
21
- return this.competitionHeaderService.getHeader(competitionId).pipe(map((result) => CompetitionHeaderActions.loadCompetitionHeaderSuccess({ competitionHeader: result })), catchError((err) => {
22
- this.alertService.showMessage(err, null, MessageSeverity.error);
23
- return EMPTY;
24
- }));
25
- })));
26
- this.deleteCompetitionVersion$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.DeleteCompetitionVersion), map((action) => action.versionId), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([versionId, competitionId]) => {
27
- return this.competitionHeaderService.deleteVersion(competitionId, versionId).pipe(map((result) => CompetitionHeaderActions.deleteCompetitionVersionSuccess({ versionId })), catchError((err) => {
28
- this.alertService.showMessage(err, null, MessageSeverity.error);
29
- return EMPTY;
30
- }));
31
- })));
32
- this.deleteCompetitionVersionSuccess$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.DeleteCompetitionVersionSuccess), withLatestFrom(this.store.pipe(select(selectCompetitionId))), tap(([, competitionId]) => window.location.href = `/application/competitions/item?competitionId=${competitionId}`)), { dispatch: false });
33
- this.createCompetitionVersion$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CreateCompetitionVersion), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
34
- return this.competitionHeaderService.createVersion(competitionId).pipe(map((result) => CompetitionHeaderActions.createCompetitionVersionSuccess({ versionId: result })), catchError((err) => {
35
- this.alertService.showMessage(err, null, MessageSeverity.error);
36
- return EMPTY;
37
- }));
38
- })));
39
- this.createCompetitionVersionSuccess$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CreateCompetitionVersionSuccess), map((action) => action.versionId), withLatestFrom(this.store.pipe(select(selectCompetitionId))), tap(([versionId, competitionId]) => window.location.href = `/application/competitions/item?competitionId=${competitionId}&versionId=${versionId}`)), { dispatch: false });
40
- this.competitionVersionChangeStatus$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CompetitionVersionChangeStatus), map((action) => action), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([action, competitionId]) => {
41
- return this.competitionHeaderService.versionChangeStatus(competitionId, action.versionId, action.status).pipe(map((result) => {
42
- return CompetitionHeaderActions.competitionVersionChangeStatusSuccess({
43
- versionId: action.versionId,
44
- status: action.status
45
- });
46
- }), catchError((err) => {
47
- this.alertService.showMessage(err, null, MessageSeverity.error);
48
- return EMPTY;
49
- }));
50
- })));
51
- this.competitionVersionChangeStatusSuccess$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CompetitionVersionChangeStatusSuccess), map((action) => action), withLatestFrom(this.store.pipe(select(selectCompetitionId))), tap(([action, competitionId]) => {
52
- if (action.status === CompetitionVersionStatusEnum.Validation) {
53
- window.location.href = `/m-data/minfin/selection/edit?competitionId=${competitionId}&versionId=${action.versionId}`;
54
- }
55
- else {
56
- window.location.reload();
57
- }
58
- })), { dispatch: false });
59
- this.selectCompetitionVersion$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.SelectCompetitionVersion), map((action) => action.versionId), withLatestFrom(this.store.pipe(select(selectCompetitionId))), tap(([versionId, competitionId]) => {
60
- const newUri = Utilities.updateQueryStringParameter(window.location.href, 'versionId', versionId);
61
- window.location.href = newUri;
62
- })), { dispatch: false });
63
- this.activateCompetition$ = createEffect(() => (this.actions$.pipe(ofType(ECompetitionHeaderActions.ActivateCompetition), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
64
- return this.competitionHeaderService.activate(competitionId).pipe(map((result) => CompetitionHeaderActions.competitionChangeStatusSuccess()), catchError((err, caught) => {
65
- this.alertService.showStickyMessage(err, 'Ошибка активации', MessageSeverity.error);
66
- return EMPTY;
67
- }));
68
- }))));
69
- this.pauseCompetition$ = createEffect(() => (this.actions$.pipe(ofType(ECompetitionHeaderActions.PauseCompetition), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
70
- return this.competitionHeaderService.pause(competitionId).pipe(map((result) => CompetitionHeaderActions.competitionChangeStatusSuccess()), catchError((err, caught) => {
71
- this.alertService.showStickyMessage(err, 'Ошибка приостановки', MessageSeverity.error);
72
- return EMPTY;
73
- }));
74
- }))));
75
- this.completeCompetition$ = createEffect(() => (this.actions$.pipe(ofType(ECompetitionHeaderActions.CompleteCompetition), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
76
- return this.competitionHeaderService.complete(competitionId).pipe(map((result) => CompetitionHeaderActions.competitionChangeStatusSuccess()), catchError((err, caught) => {
77
- this.alertService.showStickyMessage(err, 'Ошибка при завершении', MessageSeverity.error);
78
- return EMPTY;
79
- }));
80
- }))));
81
- this.cancelCompetition$ = createEffect(() => (this.actions$.pipe(ofType(ECompetitionHeaderActions.CancelCompetition), withLatestFrom(this.store.pipe(select(selectCompetitionId))), switchMap(([, competitionId]) => {
82
- return this.competitionHeaderService.cancel(competitionId).pipe(map((result) => CompetitionHeaderActions.competitionChangeStatusSuccess()), catchError((err, caught) => {
83
- this.alertService.showStickyMessage(err, 'Ошибка при отмене', MessageSeverity.error);
84
- return EMPTY;
85
- }));
86
- }))));
87
- this.cancelCompetitionWithValidation$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CancelCompetitionWithValidation), map((action) => action.versionId), withLatestFrom(this.store.pipe(select(selectCompetitionId))), tap(([versionId, competitionId]) => window.location.href = `/m-data/minfin/selection/edit/cancel?competitionId=${competitionId}&versionId=${versionId}`)), { dispatch: false });
88
- this.competitionChangeStatusSuccess$ = createEffect(() => this.actions$.pipe(ofType(ECompetitionHeaderActions.CompetitionChangeStatusSuccess), tap(() => window.location.reload())), { dispatch: false });
89
177
  }
90
178
  }
91
179
  CompetitionHeaderEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CompetitionHeaderEffects, deps: [{ token: i1.CompetitionHeaderService }, { token: i2.Actions }, { token: i3.Store }, { token: i4.AlertService }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -93,4 +181,4 @@ CompetitionHeaderEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0
93
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: CompetitionHeaderEffects, decorators: [{
94
182
  type: Injectable
95
183
  }], ctorParameters: function () { return [{ type: i1.CompetitionHeaderService }, { type: i2.Actions }, { type: i3.Store }, { type: i4.AlertService }]; } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGV0aXRpb24taGVhZGVyLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtbWYtY29tcGV0aXRpb24vc3JjL2xpYi9tb2R1bGVzL2NvbXBldGl0aW9uLWhlYWRlci9zdG9yZS9jb21wZXRpdGlvbi1oZWFkZXIuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQVEsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sS0FBSyx3QkFBd0IsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RSxPQUFPLEVBQWtDLHlCQUF5QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFHeEcsT0FBTyxFQUVMLDRCQUE0QixFQUM1QixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLFNBQVMsRUFDVixNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFJaEMsTUFBTSxPQUFPLHdCQUF3QjtJQXVLbkMsWUFBb0Isd0JBQWtELEVBQ2xELFFBQWlCLEVBQ2pCLEtBQVksRUFDWixZQUEwQjtRQUgxQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBeEs5QywyQkFBc0IsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEs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QUFJLENBQ3JFLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyw4QkFBOEIsQ0FBQyxFQUNoRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUNwQyxFQUFFLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7SUFPdEIsQ0FBQzs7c0hBNUtVLHdCQUF3QjswSEFBeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcclxuaW1wb3J0IHtzZWxlY3QsIFN0b3JlfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7RU1QVFl9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge2NhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwLCB0YXAsIHdpdGhMYXRlc3RGcm9tfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAqIGFzIENvbXBldGl0aW9uSGVhZGVyQWN0aW9ucyBmcm9tICcuL2NvbXBldGl0aW9uLWhlYWRlci5hY3Rpb25zJztcclxuaW1wb3J0IHtjYW5jZWxDb21wZXRpdGlvbldpdGhWYWxpZGF0aW9uLCBFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zfSBmcm9tICcuL2NvbXBldGl0aW9uLWhlYWRlci5hY3Rpb25zJztcclxuaW1wb3J0IHtDb21wZXRpdGlvbkhlYWRlclZlcnNpb25Nb2RlbH0gZnJvbSAnLi4vbW9kZWxzL2NvbXBldGl0aW9uLWhlYWRlci12ZXJzaW9uLm1vZGVsJztcclxuaW1wb3J0IHtDb21wZXRpdGlvbkhlYWRlclNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2NvbXBldGl0aW9uLWhlYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBBbGVydFNlcnZpY2UsXHJcbiAgQ29tcGV0aXRpb25WZXJzaW9uU3RhdHVzRW51bSxcclxuICBNZXNzYWdlU2V2ZXJpdHksXHJcbiAgc2VsZWN0Q29tcGV0aXRpb25JZCxcclxuICBVdGlsaXRpZXNcclxufSBmcm9tICdteXJ0ZXgtbWYtdWktY29tcG9zaXRlJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb21wZXRpdGlvbkhlYWRlckVmZmVjdHMge1xyXG5cclxuICBsb2FkQ29tcGV0aXRpb25IZWFkZXIkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkxvYWRDb21wZXRpdGlvbkhlYWRlciksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgICBzd2l0Y2hNYXAoKFssIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS5nZXRIZWFkZXIoY29tcGV0aXRpb25JZCkucGlwZShcclxuICAgICAgICBtYXAoKHJlc3VsdDogQ29tcGV0aXRpb25IZWFkZXJWZXJzaW9uTW9kZWwpID0+IENvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5sb2FkQ29tcGV0aXRpb25IZWFkZXJTdWNjZXNzKHtjb21wZXRpdGlvbkhlYWRlcjogcmVzdWx0fSkpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd01lc3NhZ2UoZXJyLCBudWxsLCBNZXNzYWdlU2V2ZXJpdHkuZXJyb3IpO1xyXG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9KSkpO1xyXG5cclxuICBkZWxldGVDb21wZXRpdGlvblZlcnNpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkRlbGV0ZUNvbXBldGl0aW9uVmVyc2lvbiksXHJcbiAgICBtYXAoKGFjdGlvbjogeyB2ZXJzaW9uSWQ6IHN0cmluZyB9KSA9PiBhY3Rpb24udmVyc2lvbklkKSxcclxuICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0Q29tcGV0aXRpb25JZCkpKSxcclxuICAgIHN3aXRjaE1hcCgoW3ZlcnNpb25JZCwgY29tcGV0aXRpb25JZF0pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29tcGV0aXRpb25IZWFkZXJTZXJ2aWNlLmRlbGV0ZVZlcnNpb24oY29tcGV0aXRpb25JZCwgdmVyc2lvbklkKS5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzdWx0OiBib29sZWFuKSA9PiBDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuZGVsZXRlQ29tcGV0aXRpb25WZXJzaW9uU3VjY2Vzcyh7IHZlcnNpb25JZCB9KSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93TWVzc2FnZShlcnIsIG51bGwsIE1lc3NhZ2VTZXZlcml0eS5lcnJvcik7XHJcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0pKSk7XHJcblxyXG4gIGRlbGV0ZUNvbXBldGl0aW9uVmVyc2lvblN1Y2Nlc3MkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkRlbGV0ZUNvbXBldGl0aW9uVmVyc2lvblN1Y2Nlc3MpLFxyXG4gICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RDb21wZXRpdGlvbklkKSkpLFxyXG4gICAgdGFwKChbLCBjb21wZXRpdGlvbklkXSkgPT4gd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgL2FwcGxpY2F0aW9uL2NvbXBldGl0aW9ucy9pdGVtP2NvbXBldGl0aW9uSWQ9JHtjb21wZXRpdGlvbklkfWApXHJcbiAgKSwge2Rpc3BhdGNoOiBmYWxzZX0pO1xyXG5cclxuICBjcmVhdGVDb21wZXRpdGlvblZlcnNpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkNyZWF0ZUNvbXBldGl0aW9uVmVyc2lvbiksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgICBzd2l0Y2hNYXAoKFssIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS5jcmVhdGVWZXJzaW9uKGNvbXBldGl0aW9uSWQpLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXN1bHQ6IHN0cmluZykgPT4gQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLmNyZWF0ZUNvbXBldGl0aW9uVmVyc2lvblN1Y2Nlc3MoeyB2ZXJzaW9uSWQ6IHJlc3VsdCB9KSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93TWVzc2FnZShlcnIsIG51bGwsIE1lc3NhZ2VTZXZlcml0eS5lcnJvcik7XHJcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0pKSk7XHJcblxyXG4gIGNyZWF0ZUNvbXBldGl0aW9uVmVyc2lvblN1Y2Nlc3MkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkNyZWF0ZUNvbXBldGl0aW9uVmVyc2lvblN1Y2Nlc3MpLFxyXG4gICAgbWFwKChhY3Rpb246IHsgdmVyc2lvbklkOiBzdHJpbmcgfSkgPT4gYWN0aW9uLnZlcnNpb25JZCksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgICB0YXAoKFt2ZXJzaW9uSWQsIGNvbXBldGl0aW9uSWRdKSA9PlxyXG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvYXBwbGljYXRpb24vY29tcGV0aXRpb25zL2l0ZW0/Y29tcGV0aXRpb25JZD0ke2NvbXBldGl0aW9uSWR9JnZlcnNpb25JZD0ke3ZlcnNpb25JZH1gKVxyXG4gICksIHtkaXNwYXRjaDogZmFsc2V9KTtcclxuXHJcbiAgY29tcGV0aXRpb25WZXJzaW9uQ2hhbmdlU3RhdHVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5Db21wZXRpdGlvblZlcnNpb25DaGFuZ2VTdGF0dXMpLFxyXG4gICAgbWFwKChhY3Rpb246IHsgdmVyc2lvbklkOiBzdHJpbmcsIHN0YXR1czogQ29tcGV0aXRpb25WZXJzaW9uU3RhdHVzRW51bSB9KSA9PiBhY3Rpb24pLFxyXG4gICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RDb21wZXRpdGlvbklkKSkpLFxyXG4gICAgc3dpdGNoTWFwKChbYWN0aW9uLCBjb21wZXRpdGlvbklkXSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb21wZXRpdGlvbkhlYWRlclNlcnZpY2UudmVyc2lvbkNoYW5nZVN0YXR1cyhjb21wZXRpdGlvbklkLCBhY3Rpb24udmVyc2lvbklkLCBhY3Rpb24uc3RhdHVzKS5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLmNvbXBldGl0aW9uVmVyc2lvbkNoYW5nZVN0YXR1c1N1Y2Nlc3Moe1xyXG4gICAgICAgICAgICB2ZXJzaW9uSWQ6IGFjdGlvbi52ZXJzaW9uSWQsXHJcbiAgICAgICAgICAgIHN0YXR1czogYWN0aW9uLnN0YXR1c1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93TWVzc2FnZShlcnIsIG51bGwsIE1lc3NhZ2VTZXZlcml0eS5lcnJvcik7XHJcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0pKSk7XHJcblxyXG4gICAgY29tcGV0aXRpb25WZXJzaW9uQ2hhbmdlU3RhdHVzU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5Db21wZXRpdGlvblZlcnNpb25DaGFuZ2VTdGF0dXNTdWNjZXNzKSxcclxuICAgICAgbWFwKChhY3Rpb246IHsgdmVyc2lvbklkOiBzdHJpbmcsIHN0YXR1czogQ29tcGV0aXRpb25WZXJzaW9uU3RhdHVzRW51bSB9KSA9PiBhY3Rpb24pLFxyXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgICAgIHRhcCgoW2FjdGlvbiwgY29tcGV0aXRpb25JZF0pID0+IHtcclxuICAgICAgICBpZiAoYWN0aW9uLnN0YXR1cyA9PT0gQ29tcGV0aXRpb25WZXJzaW9uU3RhdHVzRW51bS5WYWxpZGF0aW9uKSB7XHJcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvbS1kYXRhL21pbmZpbi9zZWxlY3Rpb24vZWRpdD9jb21wZXRpdGlvbklkPSR7Y29tcGV0aXRpb25JZH0mdmVyc2lvbklkPSR7YWN0aW9uLnZlcnNpb25JZH1gO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKSwgeyBkaXNwYXRjaDogZmFsc2UgfSk7XHJcblxyXG4gIHNlbGVjdENvbXBldGl0aW9uVmVyc2lvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKEVDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuU2VsZWN0Q29tcGV0aXRpb25WZXJzaW9uKSxcclxuICAgIG1hcCgoYWN0aW9uOiB7IHZlcnNpb25JZDogc3RyaW5nIH0pID0+IGFjdGlvbi52ZXJzaW9uSWQpLFxyXG4gICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RDb21wZXRpdGlvbklkKSkpLFxyXG4gICAgdGFwKChbdmVyc2lvbklkLCBjb21wZXRpdGlvbklkXSkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdVcmkgPSBVdGlsaXRpZXMudXBkYXRlUXVlcnlTdHJpbmdQYXJhbWV0ZXIod2luZG93LmxvY2F0aW9uLmhyZWYsICd2ZXJzaW9uSWQnLCB2ZXJzaW9uSWQpO1xyXG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IG5ld1VyaTtcclxuICAgIH0pXHJcbiAgKSwge2Rpc3BhdGNoOiBmYWxzZX0pO1xyXG5cclxuICBhY3RpdmF0ZUNvbXBldGl0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiAodGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlKEVDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuQWN0aXZhdGVDb21wZXRpdGlvbiksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgICBzd2l0Y2hNYXAoKFssIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS5hY3RpdmF0ZShjb21wZXRpdGlvbklkKS5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzdWx0OiBhbnkpID0+IENvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5jb21wZXRpdGlvbkNoYW5nZVN0YXR1c1N1Y2Nlc3MoKSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyLCBjYXVnaHQpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dTdGlja3lNZXNzYWdlKGVyciwgJ9Ce0YjQuNCx0LrQsCDQsNC60YLQuNCy0LDRhtC40LgnLCBNZXNzYWdlU2V2ZXJpdHkuZXJyb3IpO1xyXG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9KVxyXG4gICkpKTtcclxuXHJcbiAgcGF1c2VDb21wZXRpdGlvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gKHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLlBhdXNlQ29tcGV0aXRpb24pLFxyXG4gICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RDb21wZXRpdGlvbklkKSkpLFxyXG4gICAgc3dpdGNoTWFwKChbLCBjb21wZXRpdGlvbklkXSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb21wZXRpdGlvbkhlYWRlclNlcnZpY2UucGF1c2UoY29tcGV0aXRpb25JZCkucGlwZShcclxuICAgICAgICBtYXAoKHJlc3VsdDogYW55KSA9PiBDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuY29tcGV0aXRpb25DaGFuZ2VTdGF0dXNTdWNjZXNzKCkpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVyciwgY2F1Z2h0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93U3RpY2t5TWVzc2FnZShlcnIsICfQntGI0LjQsdC60LAg0L/RgNC40L7RgdGC0LDQvdC+0LLQutC4JywgTWVzc2FnZVNldmVyaXR5LmVycm9yKTtcclxuICAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSlcclxuICApKSk7XHJcblxyXG4gIGNvbXBsZXRlQ29tcGV0aXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+ICh0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5Db21wbGV0ZUNvbXBldGl0aW9uKSxcclxuICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0Q29tcGV0aXRpb25JZCkpKSxcclxuICAgIHN3aXRjaE1hcCgoWywgY29tcGV0aXRpb25JZF0pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29tcGV0aXRpb25IZWFkZXJTZXJ2aWNlLmNvbXBsZXRlKGNvbXBldGl0aW9uSWQpLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4gQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLmNvbXBldGl0aW9uQ2hhbmdlU3RhdHVzU3VjY2VzcygpKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnIsIGNhdWdodCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd1N0aWNreU1lc3NhZ2UoZXJyLCAn0J7RiNC40LHQutCwINC/0YDQuCDQt9Cw0LLQtdGA0YjQtdC90LjQuCcsIE1lc3NhZ2VTZXZlcml0eS5lcnJvcik7XHJcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0pXHJcbiAgKSkpO1xyXG5cclxuICBjYW5jZWxDb21wZXRpdGlvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gKHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkNhbmNlbENvbXBldGl0aW9uKSxcclxuICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0Q29tcGV0aXRpb25JZCkpKSxcclxuICAgIHN3aXRjaE1hcCgoWywgY29tcGV0aXRpb25JZF0pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29tcGV0aXRpb25IZWFkZXJTZXJ2aWNlLmNhbmNlbChjb21wZXRpdGlvbklkKS5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzdWx0OiBhbnkpID0+IENvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5jb21wZXRpdGlvbkNoYW5nZVN0YXR1c1N1Y2Nlc3MoKSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyLCBjYXVnaHQpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dTdGlja3lNZXNzYWdlKGVyciwgJ9Ce0YjQuNCx0LrQsCDQv9GA0Lgg0L7RgtC80LXQvdC1JywgTWVzc2FnZVNldmVyaXR5LmVycm9yKTtcclxuICAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfSlcclxuICApKSk7XHJcblxyXG4gIGNhbmNlbENvbXBldGl0aW9uV2l0aFZhbGlkYXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkNhbmNlbENvbXBldGl0aW9uV2l0aFZhbGlkYXRpb24pLFxyXG4gICAgbWFwKChhY3Rpb246IHsgdmVyc2lvbklkOiBzdHJpbmcgfSkgPT4gYWN0aW9uLnZlcnNpb25JZCksXHJcbiAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgICB0YXAoKFt2ZXJzaW9uSWQsIGNvbXBldGl0aW9uSWRdKSA9PlxyXG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvbS1kYXRhL21pbmZpbi9zZWxlY3Rpb24vZWRpdC9jYW5jZWw/Y29tcGV0aXRpb25JZD0ke2NvbXBldGl0aW9uSWR9JnZlcnNpb25JZD0ke3ZlcnNpb25JZH1gKVxyXG4gICksIHtkaXNwYXRjaDogZmFsc2V9KTtcclxuXHJcbiAgY29tcGV0aXRpb25DaGFuZ2VTdGF0dXNTdWNjZXNzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5Db21wZXRpdGlvbkNoYW5nZVN0YXR1c1N1Y2Nlc3MpLFxyXG4gICAgdGFwKCgpID0+IHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKSlcclxuICApLCB7ZGlzcGF0Y2g6IGZhbHNlfSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcGV0aXRpb25IZWFkZXJTZXJ2aWNlOiBDb21wZXRpdGlvbkhlYWRlclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcclxuICAgICAgICAgICAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG59XHJcbiJdfQ==
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGV0aXRpb24taGVhZGVyLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtbWYtY29tcGV0aXRpb24vc3JjL2xpYi9tb2R1bGVzL2NvbXBldGl0aW9uLWhlYWRlci9zdG9yZS9jb21wZXRpdGlvbi1oZWFkZXIuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFtQnpDLE1BQU0sT0FBTyx3QkFBd0I7SUFFbkMsa0VBQWtFO0lBQ2xFLDZEQUE2RDtJQUM3RCxrRUFBa0U7SUFDbEUsdUNBQXVDO0lBQ3ZDLDBFQUEwRTtJQUMxRSw0SUFBNEk7SUFDNUksOEJBQThCO0lBQzlCLDJFQUEyRTtJQUMzRSx3QkFBd0I7SUFDeEIsV0FBVztJQUNYLFNBQVM7SUFDVCxVQUFVO0lBQ1YsRUFBRTtJQUNGLHFFQUFxRTtJQUNyRSxnRUFBZ0U7SUFDaEUsOERBQThEO0lBQzlELGtFQUFrRTtJQUNsRSxnREFBZ0Q7SUFDaEQseUZBQXlGO0lBQ3pGLDJHQUEyRztJQUMzRyw4QkFBOEI7SUFDOUIsMkVBQTJFO0lBQzNFLHdCQUF3QjtJQUN4QixXQUFXO0lBQ1gsU0FBUztJQUNULFVBQVU7SUFDVixFQUFFO0lBQ0YsNEVBQTRFO0lBQzVFLHVFQUF1RTtJQUN2RSxrRUFBa0U7SUFDbEUsdUhBQXVIO0lBQ3ZILHlCQUF5QjtJQUN6QixFQUFFO0lBQ0YscUVBQXFFO0lBQ3JFLGdFQUFnRTtJQUNoRSxrRUFBa0U7SUFDbEUsdUNBQXVDO0lBQ3ZDLDhFQUE4RTtJQUM5RSxrSEFBa0g7SUFDbEgsOEJBQThCO0lBQzlCLDJFQUEyRTtJQUMzRSx3QkFBd0I7SUFDeEIsV0FBVztJQUNYLFNBQVM7SUFDVCxVQUFVO0lBQ1YsRUFBRTtJQUNGLDRFQUE0RTtJQUM1RSx1RUFBdUU7SUFDdkUsOERBQThEO0lBQzlELGtFQUFrRTtJQUNsRSx3Q0FBd0M7SUFDeEMscUhBQXFIO0lBQ3JILHlCQUF5QjtJQUN6QixFQUFFO0lBQ0YsMkVBQTJFO0lBQzNFLHNFQUFzRTtJQUN0RSwwRkFBMEY7SUFDMUYsa0VBQWtFO0lBQ2xFLDZDQUE2QztJQUM3QyxxSEFBcUg7SUFDckgsbUNBQW1DO0lBQ25DLGtGQUFrRjtJQUNsRix5Q0FBeUM7SUFDekMsa0NBQWtDO0lBQ2xDLGNBQWM7SUFDZCxZQUFZO0lBQ1osOEJBQThCO0lBQzlCLDJFQUEyRTtJQUMzRSx3QkFBd0I7SUFDeEIsV0FBVztJQUNYLFNBQVM7SUFDVCxVQUFVO0lBQ1YsRUFBRTtJQUNGLG9GQUFvRjtJQUNwRiwrRUFBK0U7SUFDL0UsNEZBQTRGO0lBQzVGLG9FQUFvRTtJQUNwRSx5Q0FBeUM7SUFDekMseUVBQXlFO0lBQ3pFLCtIQUErSDtJQUMvSCxpQkFBaUI7SUFDakIsb0NBQW9DO0lBQ3BDLFVBQVU7SUFDVixTQUFTO0lBQ1QsNkJBQTZCO0lBQzdCLEVBQUU7SUFDRixxRUFBcUU7SUFDckUsZ0VBQWdFO0lBQ2hFLDhEQUE4RDtJQUM5RCxrRUFBa0U7SUFDbEUsMENBQTBDO0lBQzFDLHlHQUF5RztJQUN6RyxxQ0FBcUM7SUFDckMsT0FBTztJQUNQLHlCQUF5QjtJQUN6QixFQUFFO0lBQ0YsaUVBQWlFO0lBQ2pFLDJEQUEyRDtJQUMzRCxrRUFBa0U7SUFDbEUsdUNBQXVDO0lBQ3ZDLHlFQUF5RTtJQUN6RSx5RkFBeUY7SUFDekYsc0NBQXNDO0lBQ3RDLCtGQUErRjtJQUMvRix3QkFBd0I7SUFDeEIsV0FBVztJQUNYLFNBQVM7SUFDVCxPQUFPO0lBQ1AsT0FBTztJQUNQLEVBQUU7SUFDRiw4REFBOEQ7SUFDOUQsd0RBQXdEO0lBQ3hELGtFQUFrRTtJQUNsRSx1Q0FBdUM7SUFDdkMsc0VBQXNFO0lBQ3RFLHlGQUF5RjtJQUN6RixzQ0FBc0M7SUFDdEMsa0dBQWtHO0lBQ2xHLHdCQUF3QjtJQUN4QixXQUFXO0lBQ1gsU0FBUztJQUNULE9BQU87SUFDUCxPQUFPO0lBQ1AsRUFBRTtJQUNGLGlFQUFpRTtJQUNqRSwyREFBMkQ7SUFDM0Qsa0VBQWtFO0lBQ2xFLHVDQUF1QztJQUN2Qyx5RUFBeUU7SUFDekUseUZBQXlGO0lBQ3pGLHNDQUFzQztJQUN0QyxvR0FBb0c7SUFDcEcsd0JBQXdCO0lBQ3hCLFdBQVc7SUFDWCxTQUFTO0lBQ1QsT0FBTztJQUNQLE9BQU87SUFDUCxFQUFFO0lBQ0YsK0RBQStEO0lBQy9ELHlEQUF5RDtJQUN6RCxrRUFBa0U7SUFDbEUsdUNBQXVDO0lBQ3ZDLHVFQUF1RTtJQUN2RSx5RkFBeUY7SUFDekYsc0NBQXNDO0lBQ3RDLGdHQUFnRztJQUNoRyx3QkFBd0I7SUFDeEIsV0FBVztJQUNYLFNBQVM7SUFDVCxPQUFPO0lBQ1AsT0FBTztJQUNQLEVBQUU7SUFDRiw0RUFBNEU7SUFDNUUsdUVBQXVFO0lBQ3ZFLDhEQUE4RDtJQUM5RCxrRUFBa0U7SUFDbEUsd0NBQXdDO0lBQ3hDLDJIQUEySDtJQUMzSCx5QkFBeUI7SUFDekIsRUFBRTtJQUNGLDJFQUEyRTtJQUMzRSxzRUFBc0U7SUFDdEUsd0NBQXdDO0lBQ3hDLHlCQUF5QjtJQUV6QixZQUFvQix3QkFBa0QsRUFDbEQsUUFBaUIsRUFDakIsS0FBWSxFQUNaLFlBQTBCO1FBSDFCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osaUJBQVksR0FBWixZQUFZLENBQWM7SUFFOUMsQ0FBQzs7c0hBNUtVLHdCQUF3QjswSEFBeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcclxuaW1wb3J0IHtzZWxlY3QsIFN0b3JlfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7RU1QVFl9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge2NhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwLCB0YXAsIHdpdGhMYXRlc3RGcm9tfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAqIGFzIENvbXBldGl0aW9uSGVhZGVyQWN0aW9ucyBmcm9tICcuL2NvbXBldGl0aW9uLWhlYWRlci5hY3Rpb25zJztcclxuaW1wb3J0IHtjYW5jZWxDb21wZXRpdGlvbldpdGhWYWxpZGF0aW9uLCBFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zfSBmcm9tICcuL2NvbXBldGl0aW9uLWhlYWRlci5hY3Rpb25zJztcclxuaW1wb3J0IHtDb21wZXRpdGlvbkhlYWRlclZlcnNpb25Nb2RlbH0gZnJvbSAnLi4vbW9kZWxzL2NvbXBldGl0aW9uLWhlYWRlci12ZXJzaW9uLm1vZGVsJztcclxuaW1wb3J0IHtDb21wZXRpdGlvbkhlYWRlclNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2NvbXBldGl0aW9uLWhlYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBBbGVydFNlcnZpY2UsXHJcbiAgQ29tcGV0aXRpb25WZXJzaW9uU3RhdHVzRW51bSxcclxuICBNZXNzYWdlU2V2ZXJpdHksXHJcbiAgc2VsZWN0Q29tcGV0aXRpb25JZCxcclxuICBVdGlsaXRpZXNcclxufSBmcm9tICdteXJ0ZXgtbWYtdWktY29tcG9zaXRlJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb21wZXRpdGlvbkhlYWRlckVmZmVjdHMge1xyXG5cclxuICAvLyBsb2FkQ29tcGV0aXRpb25IZWFkZXIkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAvLyAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkxvYWRDb21wZXRpdGlvbkhlYWRlciksXHJcbiAgLy8gICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICBzd2l0Y2hNYXAoKFssIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS5nZXRIZWFkZXIoY29tcGV0aXRpb25JZCkucGlwZShcclxuICAvLyAgICAgICBtYXAoKHJlc3VsdDogQ29tcGV0aXRpb25IZWFkZXJWZXJzaW9uTW9kZWwpID0+IENvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5sb2FkQ29tcGV0aXRpb25IZWFkZXJTdWNjZXNzKHtjb21wZXRpdGlvbkhlYWRlcjogcmVzdWx0fSkpLFxyXG4gIC8vICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gIC8vICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd01lc3NhZ2UoZXJyLCBudWxsLCBNZXNzYWdlU2V2ZXJpdHkuZXJyb3IpO1xyXG4gIC8vICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gIC8vICAgICAgIH0pXHJcbiAgLy8gICAgICk7XHJcbiAgLy8gICB9KSkpO1xyXG4gIC8vXHJcbiAgLy8gZGVsZXRlQ29tcGV0aXRpb25WZXJzaW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgLy8gICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5EZWxldGVDb21wZXRpdGlvblZlcnNpb24pLFxyXG4gIC8vICAgbWFwKChhY3Rpb246IHsgdmVyc2lvbklkOiBzdHJpbmcgfSkgPT4gYWN0aW9uLnZlcnNpb25JZCksXHJcbiAgLy8gICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICBzd2l0Y2hNYXAoKFt2ZXJzaW9uSWQsIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS5kZWxldGVWZXJzaW9uKGNvbXBldGl0aW9uSWQsIHZlcnNpb25JZCkucGlwZShcclxuICAvLyAgICAgICBtYXAoKHJlc3VsdDogYm9vbGVhbikgPT4gQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLmRlbGV0ZUNvbXBldGl0aW9uVmVyc2lvblN1Y2Nlc3MoeyB2ZXJzaW9uSWQgfSkpLFxyXG4gIC8vICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gIC8vICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd01lc3NhZ2UoZXJyLCBudWxsLCBNZXNzYWdlU2V2ZXJpdHkuZXJyb3IpO1xyXG4gIC8vICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gIC8vICAgICAgIH0pXHJcbiAgLy8gICAgICk7XHJcbiAgLy8gICB9KSkpO1xyXG4gIC8vXHJcbiAgLy8gZGVsZXRlQ29tcGV0aXRpb25WZXJzaW9uU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gIC8vICAgb2ZUeXBlKEVDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuRGVsZXRlQ29tcGV0aXRpb25WZXJzaW9uU3VjY2VzcyksXHJcbiAgLy8gICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICB0YXAoKFssIGNvbXBldGl0aW9uSWRdKSA9PiB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvYXBwbGljYXRpb24vY29tcGV0aXRpb25zL2l0ZW0/Y29tcGV0aXRpb25JZD0ke2NvbXBldGl0aW9uSWR9YClcclxuICAvLyApLCB7ZGlzcGF0Y2g6IGZhbHNlfSk7XHJcbiAgLy9cclxuICAvLyBjcmVhdGVDb21wZXRpdGlvblZlcnNpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAvLyAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkNyZWF0ZUNvbXBldGl0aW9uVmVyc2lvbiksXHJcbiAgLy8gICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICBzd2l0Y2hNYXAoKFssIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS5jcmVhdGVWZXJzaW9uKGNvbXBldGl0aW9uSWQpLnBpcGUoXHJcbiAgLy8gICAgICAgbWFwKChyZXN1bHQ6IHN0cmluZykgPT4gQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLmNyZWF0ZUNvbXBldGl0aW9uVmVyc2lvblN1Y2Nlc3MoeyB2ZXJzaW9uSWQ6IHJlc3VsdCB9KSksXHJcbiAgLy8gICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgLy8gICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93TWVzc2FnZShlcnIsIG51bGwsIE1lc3NhZ2VTZXZlcml0eS5lcnJvcik7XHJcbiAgLy8gICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgLy8gICAgICAgfSlcclxuICAvLyAgICAgKTtcclxuICAvLyAgIH0pKSk7XHJcbiAgLy9cclxuICAvLyBjcmVhdGVDb21wZXRpdGlvblZlcnNpb25TdWNjZXNzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgLy8gICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5DcmVhdGVDb21wZXRpdGlvblZlcnNpb25TdWNjZXNzKSxcclxuICAvLyAgIG1hcCgoYWN0aW9uOiB7IHZlcnNpb25JZDogc3RyaW5nIH0pID0+IGFjdGlvbi52ZXJzaW9uSWQpLFxyXG4gIC8vICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RDb21wZXRpdGlvbklkKSkpLFxyXG4gIC8vICAgdGFwKChbdmVyc2lvbklkLCBjb21wZXRpdGlvbklkXSkgPT5cclxuICAvLyAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgL2FwcGxpY2F0aW9uL2NvbXBldGl0aW9ucy9pdGVtP2NvbXBldGl0aW9uSWQ9JHtjb21wZXRpdGlvbklkfSZ2ZXJzaW9uSWQ9JHt2ZXJzaW9uSWR9YClcclxuICAvLyApLCB7ZGlzcGF0Y2g6IGZhbHNlfSk7XHJcbiAgLy9cclxuICAvLyBjb21wZXRpdGlvblZlcnNpb25DaGFuZ2VTdGF0dXMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAvLyAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkNvbXBldGl0aW9uVmVyc2lvbkNoYW5nZVN0YXR1cyksXHJcbiAgLy8gICBtYXAoKGFjdGlvbjogeyB2ZXJzaW9uSWQ6IHN0cmluZywgc3RhdHVzOiBDb21wZXRpdGlvblZlcnNpb25TdGF0dXNFbnVtIH0pID0+IGFjdGlvbiksXHJcbiAgLy8gICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICBzd2l0Y2hNYXAoKFthY3Rpb24sIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS52ZXJzaW9uQ2hhbmdlU3RhdHVzKGNvbXBldGl0aW9uSWQsIGFjdGlvbi52ZXJzaW9uSWQsIGFjdGlvbi5zdGF0dXMpLnBpcGUoXHJcbiAgLy8gICAgICAgbWFwKChyZXN1bHQ6IGJvb2xlYW4pID0+IHtcclxuICAvLyAgICAgICAgIHJldHVybiBDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuY29tcGV0aXRpb25WZXJzaW9uQ2hhbmdlU3RhdHVzU3VjY2Vzcyh7XHJcbiAgLy8gICAgICAgICAgIHZlcnNpb25JZDogYWN0aW9uLnZlcnNpb25JZCxcclxuICAvLyAgICAgICAgICAgc3RhdHVzOiBhY3Rpb24uc3RhdHVzXHJcbiAgLy8gICAgICAgICB9KTtcclxuICAvLyAgICAgICB9KSxcclxuICAvLyAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAvLyAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dNZXNzYWdlKGVyciwgbnVsbCwgTWVzc2FnZVNldmVyaXR5LmVycm9yKTtcclxuICAvLyAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAvLyAgICAgICB9KVxyXG4gIC8vICAgICApO1xyXG4gIC8vICAgfSkpKTtcclxuICAvL1xyXG4gIC8vICAgY29tcGV0aXRpb25WZXJzaW9uQ2hhbmdlU3RhdHVzU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gIC8vICAgICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5Db21wZXRpdGlvblZlcnNpb25DaGFuZ2VTdGF0dXNTdWNjZXNzKSxcclxuICAvLyAgICAgbWFwKChhY3Rpb246IHsgdmVyc2lvbklkOiBzdHJpbmcsIHN0YXR1czogQ29tcGV0aXRpb25WZXJzaW9uU3RhdHVzRW51bSB9KSA9PiBhY3Rpb24pLFxyXG4gIC8vICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICAgIHRhcCgoW2FjdGlvbiwgY29tcGV0aXRpb25JZF0pID0+IHtcclxuICAvLyAgICAgICBpZiAoYWN0aW9uLnN0YXR1cyA9PT0gQ29tcGV0aXRpb25WZXJzaW9uU3RhdHVzRW51bS5WYWxpZGF0aW9uKSB7XHJcbiAgLy8gICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvbS1kYXRhL21pbmZpbi9zZWxlY3Rpb24vZWRpdD9jb21wZXRpdGlvbklkPSR7Y29tcGV0aXRpb25JZH0mdmVyc2lvbklkPSR7YWN0aW9uLnZlcnNpb25JZH1gO1xyXG4gIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgLy8gICAgICAgfVxyXG4gIC8vICAgICB9KVxyXG4gIC8vICAgKSwgeyBkaXNwYXRjaDogZmFsc2UgfSk7XHJcbiAgLy9cclxuICAvLyBzZWxlY3RDb21wZXRpdGlvblZlcnNpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAvLyAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLlNlbGVjdENvbXBldGl0aW9uVmVyc2lvbiksXHJcbiAgLy8gICBtYXAoKGFjdGlvbjogeyB2ZXJzaW9uSWQ6IHN0cmluZyB9KSA9PiBhY3Rpb24udmVyc2lvbklkKSxcclxuICAvLyAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0Q29tcGV0aXRpb25JZCkpKSxcclxuICAvLyAgIHRhcCgoW3ZlcnNpb25JZCwgY29tcGV0aXRpb25JZF0pID0+IHtcclxuICAvLyAgICAgY29uc3QgbmV3VXJpID0gVXRpbGl0aWVzLnVwZGF0ZVF1ZXJ5U3RyaW5nUGFyYW1ldGVyKHdpbmRvdy5sb2NhdGlvbi5ocmVmLCAndmVyc2lvbklkJywgdmVyc2lvbklkKTtcclxuICAvLyAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBuZXdVcmk7XHJcbiAgLy8gICB9KVxyXG4gIC8vICksIHtkaXNwYXRjaDogZmFsc2V9KTtcclxuICAvL1xyXG4gIC8vIGFjdGl2YXRlQ29tcGV0aXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+ICh0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgLy8gICBvZlR5cGUoRUNvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5BY3RpdmF0ZUNvbXBldGl0aW9uKSxcclxuICAvLyAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0Q29tcGV0aXRpb25JZCkpKSxcclxuICAvLyAgIHN3aXRjaE1hcCgoWywgY29tcGV0aXRpb25JZF0pID0+IHtcclxuICAvLyAgICAgcmV0dXJuIHRoaXMuY29tcGV0aXRpb25IZWFkZXJTZXJ2aWNlLmFjdGl2YXRlKGNvbXBldGl0aW9uSWQpLnBpcGUoXHJcbiAgLy8gICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4gQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLmNvbXBldGl0aW9uQ2hhbmdlU3RhdHVzU3VjY2VzcygpKSxcclxuICAvLyAgICAgICBjYXRjaEVycm9yKChlcnIsIGNhdWdodCkgPT4ge1xyXG4gIC8vICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd1N0aWNreU1lc3NhZ2UoZXJyLCAn0J7RiNC40LHQutCwINCw0LrRgtC40LLQsNGG0LjQuCcsIE1lc3NhZ2VTZXZlcml0eS5lcnJvcik7XHJcbiAgLy8gICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgLy8gICAgICAgfSlcclxuICAvLyAgICAgKTtcclxuICAvLyAgIH0pXHJcbiAgLy8gKSkpO1xyXG4gIC8vXHJcbiAgLy8gcGF1c2VDb21wZXRpdGlvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gKHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAvLyAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLlBhdXNlQ29tcGV0aXRpb24pLFxyXG4gIC8vICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RDb21wZXRpdGlvbklkKSkpLFxyXG4gIC8vICAgc3dpdGNoTWFwKChbLCBjb21wZXRpdGlvbklkXSkgPT4ge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy5jb21wZXRpdGlvbkhlYWRlclNlcnZpY2UucGF1c2UoY29tcGV0aXRpb25JZCkucGlwZShcclxuICAvLyAgICAgICBtYXAoKHJlc3VsdDogYW55KSA9PiBDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuY29tcGV0aXRpb25DaGFuZ2VTdGF0dXNTdWNjZXNzKCkpLFxyXG4gIC8vICAgICAgIGNhdGNoRXJyb3IoKGVyciwgY2F1Z2h0KSA9PiB7XHJcbiAgLy8gICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zaG93U3RpY2t5TWVzc2FnZShlcnIsICfQntGI0LjQsdC60LAg0L/RgNC40L7RgdGC0LDQvdC+0LLQutC4JywgTWVzc2FnZVNldmVyaXR5LmVycm9yKTtcclxuICAvLyAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAvLyAgICAgICB9KVxyXG4gIC8vICAgICApO1xyXG4gIC8vICAgfSlcclxuICAvLyApKSk7XHJcbiAgLy9cclxuICAvLyBjb21wbGV0ZUNvbXBldGl0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiAodGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gIC8vICAgb2ZUeXBlKEVDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuQ29tcGxldGVDb21wZXRpdGlvbiksXHJcbiAgLy8gICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICBzd2l0Y2hNYXAoKFssIGNvbXBldGl0aW9uSWRdKSA9PiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLmNvbXBldGl0aW9uSGVhZGVyU2VydmljZS5jb21wbGV0ZShjb21wZXRpdGlvbklkKS5waXBlKFxyXG4gIC8vICAgICAgIG1hcCgocmVzdWx0OiBhbnkpID0+IENvbXBldGl0aW9uSGVhZGVyQWN0aW9ucy5jb21wZXRpdGlvbkNoYW5nZVN0YXR1c1N1Y2Nlc3MoKSksXHJcbiAgLy8gICAgICAgY2F0Y2hFcnJvcigoZXJyLCBjYXVnaHQpID0+IHtcclxuICAvLyAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNob3dTdGlja3lNZXNzYWdlKGVyciwgJ9Ce0YjQuNCx0LrQsCDQv9GA0Lgg0LfQsNCy0LXRgNGI0LXQvdC40LgnLCBNZXNzYWdlU2V2ZXJpdHkuZXJyb3IpO1xyXG4gIC8vICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gIC8vICAgICAgIH0pXHJcbiAgLy8gICAgICk7XHJcbiAgLy8gICB9KVxyXG4gIC8vICkpKTtcclxuICAvL1xyXG4gIC8vIGNhbmNlbENvbXBldGl0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiAodGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gIC8vICAgb2ZUeXBlKEVDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuQ2FuY2VsQ29tcGV0aXRpb24pLFxyXG4gIC8vICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdChzZWxlY3RDb21wZXRpdGlvbklkKSkpLFxyXG4gIC8vICAgc3dpdGNoTWFwKChbLCBjb21wZXRpdGlvbklkXSkgPT4ge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy5jb21wZXRpdGlvbkhlYWRlclNlcnZpY2UuY2FuY2VsKGNvbXBldGl0aW9uSWQpLnBpcGUoXHJcbiAgLy8gICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4gQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLmNvbXBldGl0aW9uQ2hhbmdlU3RhdHVzU3VjY2VzcygpKSxcclxuICAvLyAgICAgICBjYXRjaEVycm9yKChlcnIsIGNhdWdodCkgPT4ge1xyXG4gIC8vICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd1N0aWNreU1lc3NhZ2UoZXJyLCAn0J7RiNC40LHQutCwINC/0YDQuCDQvtGC0LzQtdC90LUnLCBNZXNzYWdlU2V2ZXJpdHkuZXJyb3IpO1xyXG4gIC8vICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gIC8vICAgICAgIH0pXHJcbiAgLy8gICAgICk7XHJcbiAgLy8gICB9KVxyXG4gIC8vICkpKTtcclxuICAvL1xyXG4gIC8vIGNhbmNlbENvbXBldGl0aW9uV2l0aFZhbGlkYXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAvLyAgIG9mVHlwZShFQ29tcGV0aXRpb25IZWFkZXJBY3Rpb25zLkNhbmNlbENvbXBldGl0aW9uV2l0aFZhbGlkYXRpb24pLFxyXG4gIC8vICAgbWFwKChhY3Rpb246IHsgdmVyc2lvbklkOiBzdHJpbmcgfSkgPT4gYWN0aW9uLnZlcnNpb25JZCksXHJcbiAgLy8gICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdENvbXBldGl0aW9uSWQpKSksXHJcbiAgLy8gICB0YXAoKFt2ZXJzaW9uSWQsIGNvbXBldGl0aW9uSWRdKSA9PlxyXG4gIC8vICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvbS1kYXRhL21pbmZpbi9zZWxlY3Rpb24vZWRpdC9jYW5jZWw/Y29tcGV0aXRpb25JZD0ke2NvbXBldGl0aW9uSWR9JnZlcnNpb25JZD0ke3ZlcnNpb25JZH1gKVxyXG4gIC8vICksIHtkaXNwYXRjaDogZmFsc2V9KTtcclxuICAvL1xyXG4gIC8vIGNvbXBldGl0aW9uQ2hhbmdlU3RhdHVzU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gIC8vICAgb2ZUeXBlKEVDb21wZXRpdGlvbkhlYWRlckFjdGlvbnMuQ29tcGV0aXRpb25DaGFuZ2VTdGF0dXNTdWNjZXNzKSxcclxuICAvLyAgIHRhcCgoKSA9PiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkpXHJcbiAgLy8gKSwge2Rpc3BhdGNoOiBmYWxzZX0pO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBldGl0aW9uSGVhZGVyU2VydmljZTogQ29tcGV0aXRpb25IZWFkZXJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxyXG4gICkge1xyXG4gIH1cclxufVxyXG4iXX0=