@ieeesa-npm/groups 0.7.1 → 0.7.3

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 (49) hide show
  1. package/esm2022/lib/assets/constants.json +54 -11
  2. package/esm2022/lib/assets/form-validations.mjs +4 -1
  3. package/esm2022/lib/components/add-user-roster/add-user-roster.component.mjs +259 -22
  4. package/esm2022/lib/components/create-group/create-group.component.mjs +3 -3
  5. package/esm2022/lib/components/edit-user-roles/edit-user-roles.component.mjs +267 -33
  6. package/esm2022/lib/components/tree-view/tree-view.component.mjs +20 -5
  7. package/esm2022/lib/components/view-roster/view-roster.component.mjs +458 -98
  8. package/esm2022/lib/groups.component.mjs +39 -19
  9. package/esm2022/lib/models/add-or-edit-user-group.model.mjs +1 -1
  10. package/esm2022/lib/models/classification.model.mjs +2 -0
  11. package/esm2022/lib/models/filter-type.model.mjs +8 -0
  12. package/esm2022/lib/models/group-permissions.model.mjs +2 -0
  13. package/esm2022/lib/models/group-types.model.mjs +1 -1
  14. package/esm2022/lib/models/group-user-info.model.mjs +1 -1
  15. package/esm2022/lib/models/member-type.model.mjs +2 -0
  16. package/esm2022/lib/models/organization.model.mjs +2 -0
  17. package/esm2022/lib/models/permission-type.model.mjs +15 -0
  18. package/esm2022/lib/models/roster-type.model.mjs +7 -0
  19. package/esm2022/lib/models/table-column-schema-user-group.model.mjs +12 -0
  20. package/esm2022/lib/models/user.model.mjs +1 -1
  21. package/esm2022/lib/services/group-permissions-map-service.mjs +71 -0
  22. package/esm2022/lib/services/groups.service.mjs +139 -16
  23. package/esm2022/lib/services/user-permissions.service.mjs +43 -0
  24. package/esm2022/public-api.mjs +7 -1
  25. package/fesm2022/ieeesa-npm-groups.mjs +1367 -195
  26. package/fesm2022/ieeesa-npm-groups.mjs.map +1 -1
  27. package/lib/assets/form-validations.d.ts +2 -0
  28. package/lib/components/add-user-roster/add-user-roster.component.d.ts +58 -1
  29. package/lib/components/edit-user-roles/edit-user-roles.component.d.ts +64 -11
  30. package/lib/components/tree-view/tree-view.component.d.ts +5 -1
  31. package/lib/components/view-roster/view-roster.component.d.ts +67 -8
  32. package/lib/groups.component.d.ts +17 -3
  33. package/lib/models/add-or-edit-user-group.model.d.ts +24 -8
  34. package/lib/models/classification.model.d.ts +10 -0
  35. package/lib/models/filter-type.model.d.ts +5 -0
  36. package/lib/models/group-permissions.model.d.ts +9 -0
  37. package/lib/models/group-types.model.d.ts +1 -0
  38. package/lib/models/group-user-info.model.d.ts +3 -0
  39. package/lib/models/member-type.model.d.ts +10 -0
  40. package/lib/models/organization.model.d.ts +9 -0
  41. package/lib/models/permission-type.model.d.ts +12 -0
  42. package/lib/models/roster-type.model.d.ts +4 -0
  43. package/lib/models/table-column-schema-user-group.model.d.ts +9 -0
  44. package/lib/models/user.model.d.ts +20 -5
  45. package/lib/services/group-permissions-map-service.d.ts +8 -0
  46. package/lib/services/groups.service.d.ts +109 -18
  47. package/lib/services/user-permissions.service.d.ts +25 -0
  48. package/package.json +4 -4
  49. package/public-api.d.ts +6 -0
@@ -0,0 +1,43 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./group-permissions-map-service";
4
+ export class UserPermissionsService {
5
+ // eslint-disable-next-line no-unused-vars, no-empty-function
6
+ constructor(groupPermissionsService) {
7
+ this.groupPermissionsService = groupPermissionsService;
8
+ }
9
+ /**
10
+ * Returns access provision for the passed action/feature based on whether the signed in user has appropriate permission.
11
+ * @param {PermissionType} permission
12
+ * @param {GroupPermission[]} userGroupPermissions
13
+ * @return {boolean}
14
+ * @memberof UserPermissionsService
15
+ */
16
+ validateAccessPermission(permission, userGroupPermissions) {
17
+ const isPermitted = userGroupPermissions
18
+ ? userGroupPermissions?.some(({ permissionType }) => permissionType === permission)
19
+ : false;
20
+ return isPermitted;
21
+ }
22
+ /**
23
+ * Filters signed in user group permissions from entire group permissions.
24
+ * @param {UserPermissions[]} userPermissions
25
+ * @return {GroupPermissions[]}
26
+ * @memberof UserPermissionsService
27
+ */
28
+ filterUserGroupPermissions(userPermissions) {
29
+ const userGroupPermissions = this.groupPermissionsService
30
+ ?.getGroupPermissions()
31
+ ?.filter((permission) => userPermissions?.find(({ permissionId }) => permission?.permissionId === permissionId));
32
+ return userGroupPermissions;
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPermissionsService, deps: [{ token: i1.GroupPermissionsMapService }], target: i0.ɵɵFactoryTarget.Injectable }); }
35
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPermissionsService, providedIn: 'root' }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UserPermissionsService, decorators: [{
38
+ type: Injectable,
39
+ args: [{
40
+ providedIn: 'root',
41
+ }]
42
+ }], ctorParameters: function () { return [{ type: i1.GroupPermissionsMapService }]; } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wZXJtaXNzaW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3JvdXBzL3NyYy9saWIvc2VydmljZXMvdXNlci1wZXJtaXNzaW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVczQyxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLDZEQUE2RDtJQUM3RCxZQUFvQix1QkFBbUQ7UUFBbkQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUE0QjtJQUFHLENBQUM7SUFFM0U7Ozs7OztPQU1HO0lBQ0gsd0JBQXdCLENBQ3RCLFVBQTBCLEVBQzFCLG9CQUF1QztRQUV2QyxNQUFNLFdBQVcsR0FBRyxvQkFBb0I7WUFDdEMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FDeEIsQ0FBQyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxjQUFjLEtBQUssVUFBVSxDQUN0RDtZQUNILENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDVixPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCwwQkFBMEIsQ0FBQyxlQUFpQztRQUMxRCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyx1QkFBdUI7WUFDdkQsRUFBRSxtQkFBbUIsRUFBRTtZQUN2QixFQUFFLE1BQU0sQ0FBQyxDQUFDLFVBQTJCLEVBQUUsRUFBRSxDQUN2QyxlQUFlLEVBQUUsSUFBSSxDQUNuQixDQUFDLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsRUFBRSxZQUFZLEtBQUssWUFBWSxDQUNoRSxDQUNGLENBQUM7UUFDSixPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7K0dBdENVLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25UeXBlIH0gZnJvbSAnLi4vbW9kZWxzL3Blcm1pc3Npb24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IEdyb3VwUGVybWlzc2lvbnNNYXBTZXJ2aWNlIH0gZnJvbSAnLi9ncm91cC1wZXJtaXNzaW9ucy1tYXAtc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgR3JvdXBQZXJtaXNzaW9uLFxyXG4gIFVzZXJQZXJtaXNzaW9uLFxyXG59IGZyb20gJy4uL21vZGVscy9ncm91cC1wZXJtaXNzaW9ucy5tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlclBlcm1pc3Npb25zU2VydmljZSB7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby1lbXB0eS1mdW5jdGlvblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZ3JvdXBQZXJtaXNzaW9uc1NlcnZpY2U6IEdyb3VwUGVybWlzc2lvbnNNYXBTZXJ2aWNlKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGFjY2VzcyBwcm92aXNpb24gZm9yIHRoZSBwYXNzZWQgYWN0aW9uL2ZlYXR1cmUgYmFzZWQgb24gd2hldGhlciB0aGUgc2lnbmVkIGluIHVzZXIgaGFzIGFwcHJvcHJpYXRlIHBlcm1pc3Npb24uXHJcbiAgICogQHBhcmFtIHtQZXJtaXNzaW9uVHlwZX0gcGVybWlzc2lvblxyXG4gICAqIEBwYXJhbSB7R3JvdXBQZXJtaXNzaW9uW119IHVzZXJHcm91cFBlcm1pc3Npb25zXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgVXNlclBlcm1pc3Npb25zU2VydmljZVxyXG4gICAqL1xyXG4gIHZhbGlkYXRlQWNjZXNzUGVybWlzc2lvbihcclxuICAgIHBlcm1pc3Npb246IFBlcm1pc3Npb25UeXBlLFxyXG4gICAgdXNlckdyb3VwUGVybWlzc2lvbnM6IEdyb3VwUGVybWlzc2lvbltdXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBpc1Blcm1pdHRlZCA9IHVzZXJHcm91cFBlcm1pc3Npb25zXHJcbiAgICAgID8gdXNlckdyb3VwUGVybWlzc2lvbnM/LnNvbWUoXHJcbiAgICAgICAgICAoeyBwZXJtaXNzaW9uVHlwZSB9KSA9PiBwZXJtaXNzaW9uVHlwZSA9PT0gcGVybWlzc2lvblxyXG4gICAgICAgIClcclxuICAgICAgOiBmYWxzZTtcclxuICAgIHJldHVybiBpc1Blcm1pdHRlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbHRlcnMgc2lnbmVkIGluIHVzZXIgZ3JvdXAgcGVybWlzc2lvbnMgZnJvbSBlbnRpcmUgZ3JvdXAgcGVybWlzc2lvbnMuXHJcbiAgICogQHBhcmFtIHtVc2VyUGVybWlzc2lvbnNbXX0gdXNlclBlcm1pc3Npb25zXHJcbiAgICogQHJldHVybiB7R3JvdXBQZXJtaXNzaW9uc1tdfVxyXG4gICAqIEBtZW1iZXJvZiBVc2VyUGVybWlzc2lvbnNTZXJ2aWNlXHJcbiAgICovXHJcbiAgZmlsdGVyVXNlckdyb3VwUGVybWlzc2lvbnModXNlclBlcm1pc3Npb25zOiBVc2VyUGVybWlzc2lvbltdKTogR3JvdXBQZXJtaXNzaW9uW10ge1xyXG4gICAgY29uc3QgdXNlckdyb3VwUGVybWlzc2lvbnMgPSB0aGlzLmdyb3VwUGVybWlzc2lvbnNTZXJ2aWNlXHJcbiAgICAgID8uZ2V0R3JvdXBQZXJtaXNzaW9ucygpXHJcbiAgICAgID8uZmlsdGVyKChwZXJtaXNzaW9uOiBHcm91cFBlcm1pc3Npb24pID0+XHJcbiAgICAgICAgdXNlclBlcm1pc3Npb25zPy5maW5kKFxyXG4gICAgICAgICAgKHsgcGVybWlzc2lvbklkIH0pID0+IHBlcm1pc3Npb24/LnBlcm1pc3Npb25JZCA9PT0gcGVybWlzc2lvbklkXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgcmV0dXJuIHVzZXJHcm91cFBlcm1pc3Npb25zO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -17,7 +17,13 @@ export * from './lib/models/delete-group.model';
17
17
  export * from './lib/models/group-user-info.model';
18
18
  export * from './lib/models/add-or-edit-user-group.model';
19
19
  export * from './lib/models/roster-function-type.model';
20
+ export * from './lib/models/classification.model';
21
+ export * from './lib/models/filter-type.model';
22
+ export * from './lib/models/organization.model';
23
+ export * from './lib/models/member-type.model';
24
+ export * from './lib/models/roster-type.model';
25
+ export * from './lib/models/table-column-schema-user-group.model';
20
26
  export * from './lib/services/groups.service';
21
27
  export * from './lib/assets/form-validations';
22
28
  export * from './lib/groups.module';
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMseUNBQXlDLENBQUM7QUFFeEQsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZ3JvdXBzXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1ncm91cC9jcmVhdGUtZ3JvdXAuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZWRpdC11c2VyLXJvbGVzL2VkaXQtdXNlci1yb2xlcy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9ncm91cHMuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9jcmVhdGUtZ3JvdXAubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ3JvdXAtYWN0aW9uLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dyb3VwLWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ3JvdXAtaW5mby5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9ncm91cC10eXBlcy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy92aWV3LWdyb3VwLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2VkaXQtZ3JvdXAubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZm9ybS1zdGF0dXMubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZGVsZXRlLWdyb3VwLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dyb3VwLXVzZXItaW5mby5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hZGQtb3ItZWRpdC11c2VyLWdyb3VwLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Jvc3Rlci1mdW5jdGlvbi10eXBlLm1vZGVsJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2dyb3Vwcy5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Fzc2V0cy9mb3JtLXZhbGlkYXRpb25zJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dyb3Vwcy5tb2R1bGUnO1xyXG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsbURBQW1ELENBQUM7QUFFbEUsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZ3JvdXBzXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1ncm91cC9jcmVhdGUtZ3JvdXAuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZWRpdC11c2VyLXJvbGVzL2VkaXQtdXNlci1yb2xlcy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9ncm91cHMuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9jcmVhdGUtZ3JvdXAubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ3JvdXAtYWN0aW9uLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dyb3VwLWZ1bmN0aW9uLXR5cGUubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ3JvdXAtaW5mby5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9ncm91cC10eXBlcy5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy92aWV3LWdyb3VwLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2VkaXQtZ3JvdXAubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZm9ybS1zdGF0dXMubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZGVsZXRlLWdyb3VwLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dyb3VwLXVzZXItaW5mby5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hZGQtb3ItZWRpdC11c2VyLWdyb3VwLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Jvc3Rlci1mdW5jdGlvbi10eXBlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2NsYXNzaWZpY2F0aW9uLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2ZpbHRlci10eXBlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL29yZ2FuaXphdGlvbi5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9tZW1iZXItdHlwZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9yb3N0ZXItdHlwZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy90YWJsZS1jb2x1bW4tc2NoZW1hLXVzZXItZ3JvdXAubW9kZWwnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZ3JvdXBzLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXNzZXRzL2Zvcm0tdmFsaWRhdGlvbnMnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZ3JvdXBzLm1vZHVsZSc7XHJcbiJdfQ==