From 4dc60a143e5d792a0af864bbc3bfa2b902eab6dc Mon Sep 17 00:00:00 2001 From: Alberto Baroso <35893959+AlbertoBaroso@users.noreply.github.com> Date: Fri, 10 Nov 2023 13:25:09 +0100 Subject: [PATCH] feat: users and applications CRUD operations, authentication & authorization (#8) * Updated gitignore for MacOS * Nest initial scaffolding, Vite react-ts initial scaffolding, with working auth0 authentication, token creation and axios client * Revert "Nest initial scaffolding," This reverts commit f4edcadc9554f7e178003d4c8e3753e06f22e386. * wiped ci scripts * Setup pnpm workspace * Body validation working Next step authorization * Deleted remnaince of typeorm messup * Authorization using jwt with a global guard (may need revisiting for authorization) * Revert "Authorization using jwt with a global guard" This reverts commit 093356e695523843ef579c316c35598abfb12d5e. * Auth with oauth2 official middleware * Moved auth0 constants to config * Small commit pre-merge * Revert "Revert "Authorization using jwt with a global guard"" This reverts commit 018711c2db425d06ae70fbf00de13155a8532b95. * Using app guard * Now encoding user role in request, better swagger annotations * In the process of implementing authorization IMPORTANT: changed build system, now both frontend and backend import typescript, compile it, watch it, do their own thing * Fixed preview command with updated compiled file path * First phase of authorization: simple rules next step: - casl + prisma (or other supported orms) to avoid weird logic, and to filter the resource for the rows that are accessible to the current user - oauth0 service to verify that some fields match the user's data on user creation * Added access control to all user routes * avaiabilitiesTable updated * Proper validation with Joi of all request fields & prettier reformat * Integrated previously written frontend with monorepo moved fronted to vite cause speed (and typescript transpiling) Formatting scripts * Moved to env variables with env files instead of yaml config file for the api * Ultima commit di Marco * Application shared validation schemas * Application entities, Create Application DTO * Updated application schema * Applications service and controller * Added /v1 as a prefix to all APIs * Updated shared application validation schemas * Created ApplicationResponseDto Added library to convert from DTOs to entities and viceversa * Added UpdateApplicationDto * Application controller, service, and repository * Added CASL abilities on Applications * Added ApplicationModule to the app modules * Fixed query validation * Updated gitignore * Updated gitignore * Updated gitignore * Updated gitignore * Updated gitignore * Fixed avaiabilities Table placeholder * Added required constraint on updateApplicationSchema, fixed typo * feat(api): Application service unit tests * refactor(api): Switched from fastify to express * feat(api): Upload CV and Grades files to Google Drive Restored GDrive module Added googleapis and google-auth-library * refactor(api): Moved business logic to ApplicationService Remove files from Google Drive if an error occurs while creating the application * Ran prettier * test(api): Create applications of all types, Remove file if error occurs * doc: Restored previous documentation, added API Routes section * test(shared): Application validation, createApplicationSchema validation * test(shared): Validation adn Ability tests for applications * test(api): Applications controller tests * fix: EoL set to 'lf' for system compatibility * fix(api): modified mocks for timers * Avaiabilities table fix * Commit * Tentativo di comunicazione col backend * feat(shared): Slot, TimeSlot, Availability interfaces * test(shared): Availability update schema * Decoding access token * Disabled google tests; formatted frontend * Attempt to replace placeholders in the fill variable with interviews * fix: Updated broken imports * fix(server): TypeORM single table inheritance discriminator field * test(server): updated Applications tests to account for new returned fields * feat(server) Timeslot controller: POST and DELETE timeslots, with tests * refactor: uncommented tests, added .skip to not execute them * fix: pnpm version mismatch --------- Co-authored-by: Vincenzo Pellegrini Co-authored-by: Marco Pappalardo Co-authored-by: Marco De Luca <31864038+markdeluk@users.noreply.github.com> --- .gitattributes | 9 + .github/workflows/fullstack.yml | 2 +- api/.gitignore | 6 - api/.prettierrc | 3 +- api/package.json | 8 + api/src/app.module.ts | 4 + .../application/application-response.dto.ts | 30 + api/src/application/application-types.ts | 4 + api/src/application/application.entity.ts | 87 +++ .../applications.controller.spec.ts | 403 ++++++++++++++ .../application/applications.controller.ts | 279 ++++++++++ api/src/application/applications.module.ts | 14 + .../application/applications.service.spec.ts | 344 ++++++++++++ api/src/application/applications.service.ts | 146 +++++ api/src/application/create-application.dto.ts | 118 ++++ api/src/application/update-application.dto.ts | 21 + api/src/authorization/authorization.guard.ts | 2 +- api/src/google/GAuth/GAuth.ts | 136 +++++ api/src/google/GDrive/FileStorageInterface.ts | 88 +++ api/src/google/GDrive/GDriveStorage.spec.ts | 121 ++++ api/src/google/GDrive/GDriveStorage.ts | 192 +++++++ api/src/main.ts | 2 + api/src/mocks/data.ts | 158 ++++++ api/src/mocks/repositories.ts | 6 + api/src/mocks/services.ts | 3 + api/src/timer/timer.interceptor.ts | 26 + api/src/timeslots/create-timeslot.dto.ts | 10 + api/src/timeslots/timeslot.entity.ts | 14 + .../timeslots/timeslots.controller.spec.ts | 104 ++++ api/src/timeslots/timeslots.controller.ts | 91 +++ api/src/timeslots/timeslots.module.ts | 14 + api/src/timeslots/timeslots.service.spec.ts | 76 +++ api/src/timeslots/timeslots.service.ts | 54 ++ api/tsconfig.json | 21 +- docker-compose.yml | 9 + documentation/.gitignore | 8 + documentation/COPYING | 422 ++++++++++++++ documentation/README.md | 22 + .../appendix/GNUFreeDocumentationLicense.tex | 522 ++++++++++++++++++ documentation/chapters/objectives.tex | 10 + documentation/chapters/overview.tex | 8 + documentation/chapters/security.tex | 159 ++++++ documentation/chapters/specifications.tex | 17 + .../chapters/specifications/models.tex | 30 + .../chapters/specifications/routes.tex | 88 +++ documentation/chapters/testing.tex | 7 + documentation/ext_sections/preliminary.tex | 13 + documentation/ext_sections/versions.tex | 18 + documentation/hkrecruitment-documentation.tex | 123 +++++ documentation/images/DAM.png | Bin 0 -> 90724 bytes documentation/images/TS-JS types.jpg | Bin 0 -> 62743 bytes .../auth-sequence-client-credentials.png | Bin 0 -> 25827 bytes documentation/images/auth0.png | Bin 0 -> 630931 bytes frontend/src/ApiRequests.tsx | 44 ++ frontend/src/App.css | 12 +- frontend/src/App.jsx | 22 +- frontend/src/AvaiabilitiesCell.jsx | 13 +- ...litiesTable.jsx => AvaiabilitiesTable.tsx} | 53 +- .../src/{LoginButton.jsx => LoginButton.tsx} | 0 frontend/src/index.css | 4 + pnpm-lock.yaml | 251 ++++++++- shared/package.json | 1 + shared/src/abilities.ts | 21 +- shared/src/application.spec.ts | 496 +++++++++++++++++ shared/src/application.ts | 207 +++++++ shared/src/availability.spec.ts | 40 ++ shared/src/availability.ts | 61 ++ shared/src/index.ts | 4 + shared/src/slot.ts | 16 + shared/src/timeslot.ts | 47 ++ 70 files changed, 5289 insertions(+), 55 deletions(-) create mode 100644 .gitattributes delete mode 100644 api/.gitignore create mode 100644 api/src/application/application-response.dto.ts create mode 100644 api/src/application/application-types.ts create mode 100644 api/src/application/application.entity.ts create mode 100644 api/src/application/applications.controller.spec.ts create mode 100644 api/src/application/applications.controller.ts create mode 100644 api/src/application/applications.module.ts create mode 100644 api/src/application/applications.service.spec.ts create mode 100644 api/src/application/applications.service.ts create mode 100644 api/src/application/create-application.dto.ts create mode 100644 api/src/application/update-application.dto.ts create mode 100644 api/src/google/GAuth/GAuth.ts create mode 100644 api/src/google/GDrive/FileStorageInterface.ts create mode 100644 api/src/google/GDrive/GDriveStorage.spec.ts create mode 100644 api/src/google/GDrive/GDriveStorage.ts create mode 100644 api/src/mocks/data.ts create mode 100644 api/src/mocks/repositories.ts create mode 100644 api/src/mocks/services.ts create mode 100644 api/src/timer/timer.interceptor.ts create mode 100644 api/src/timeslots/create-timeslot.dto.ts create mode 100644 api/src/timeslots/timeslot.entity.ts create mode 100644 api/src/timeslots/timeslots.controller.spec.ts create mode 100644 api/src/timeslots/timeslots.controller.ts create mode 100644 api/src/timeslots/timeslots.module.ts create mode 100644 api/src/timeslots/timeslots.service.spec.ts create mode 100644 api/src/timeslots/timeslots.service.ts create mode 100644 docker-compose.yml create mode 100644 documentation/.gitignore create mode 100644 documentation/COPYING create mode 100644 documentation/README.md create mode 100644 documentation/appendix/GNUFreeDocumentationLicense.tex create mode 100644 documentation/chapters/objectives.tex create mode 100644 documentation/chapters/overview.tex create mode 100644 documentation/chapters/security.tex create mode 100644 documentation/chapters/specifications.tex create mode 100644 documentation/chapters/specifications/models.tex create mode 100644 documentation/chapters/specifications/routes.tex create mode 100644 documentation/chapters/testing.tex create mode 100644 documentation/ext_sections/preliminary.tex create mode 100644 documentation/ext_sections/versions.tex create mode 100644 documentation/hkrecruitment-documentation.tex create mode 100644 documentation/images/DAM.png create mode 100644 documentation/images/TS-JS types.jpg create mode 100644 documentation/images/auth-sequence-client-credentials.png create mode 100644 documentation/images/auth0.png create mode 100644 frontend/src/ApiRequests.tsx rename frontend/src/{AvaiabilitiesTable.jsx => AvaiabilitiesTable.tsx} (74%) rename frontend/src/{LoginButton.jsx => LoginButton.tsx} (100%) create mode 100644 shared/src/application.spec.ts create mode 100644 shared/src/application.ts create mode 100644 shared/src/availability.spec.ts create mode 100644 shared/src/availability.ts create mode 100644 shared/src/slot.ts create mode 100644 shared/src/timeslot.ts diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..397828d --- /dev/null +++ b/.gitattributes @@ -0,0 +1,9 @@ +# Use LF line endings +*.ts text eol=lf +*.tsx text eol=lf +*.js text eol=lf +*.jsx text eol=lf +*.json text eol=lf +*.css text eol=lf +*.text text eol=lf +*.md text eol=lf \ No newline at end of file diff --git a/.github/workflows/fullstack.yml b/.github/workflows/fullstack.yml index b98fb12..0c49192 100644 --- a/.github/workflows/fullstack.yml +++ b/.github/workflows/fullstack.yml @@ -21,7 +21,7 @@ jobs: name: Install pnpm id: pnpm-install with: - version: 7 + version: 8 run_install: false - name: Get pnpm store directory diff --git a/api/.gitignore b/api/.gitignore deleted file mode 100644 index b3ab1ae..0000000 --- a/api/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -.idea/ -.vscode/ -node_modules/ -build/ -tmp/ -temp/ \ No newline at end of file diff --git a/api/.prettierrc b/api/.prettierrc index dcb7279..3ddabd6 100644 --- a/api/.prettierrc +++ b/api/.prettierrc @@ -1,4 +1,5 @@ { "singleQuote": true, - "trailingComma": "all" + "trailingComma": "all", + "endOfLine": "lf" } \ No newline at end of file diff --git a/api/package.json b/api/package.json index 798e9b4..ba92e4e 100644 --- a/api/package.json +++ b/api/package.json @@ -33,6 +33,9 @@ "@nestjs/typeorm": "^9.0.1", "@types/js-yaml": "^4.0.5", "@types/passport-jwt": "^3.0.7", + "class-transformer": "^0.5.1", + "google-auth-library": "^8.7.0", + "googleapis": "^118.0.0", "dotenv": "^16.0.3", "joi": "^17.7.0", "js-yaml": "^4.1.0", @@ -46,6 +49,7 @@ "webpack": "^5.75.0" }, "devDependencies": { + "@types/multer": "^1.4.7", "@automock/jest": "^1.0.1", "@golevelup/ts-jest": "^0.3.6", "@nestjs/cli": "^9.0.0", @@ -93,6 +97,10 @@ "collectCoverageFrom": [ "**/*.(t|j)s" ], + "moduleNameMapper": { + "^@mocks/(.*)$": "/src/mocks/$1" + }, + "coverageDirectory": "../coverage", "testEnvironment": "node" } } \ No newline at end of file diff --git a/api/src/app.module.ts b/api/src/app.module.ts index 3b887ef..cab0441 100644 --- a/api/src/app.module.ts +++ b/api/src/app.module.ts @@ -2,6 +2,8 @@ import { Module } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { TypeOrmModule, TypeOrmModuleOptions } from '@nestjs/typeorm'; import { UsersModule } from './users/users.module'; +import { ApplicationsModule } from './application/applications.module'; +import { TimeSlotsModule } from './timeslots/timeslots.module'; import { AuthenticationModule } from './authentication/authentication.module'; import { APP_GUARD } from '@nestjs/core'; import { JwtGuard } from './authentication/jwt-guard.guard'; @@ -29,6 +31,8 @@ import { AuthorizationGuard } from './authorization/authorization.guard'; inject: [ConfigService], }), UsersModule, + ApplicationsModule, + TimeSlotsModule, AuthenticationModule, AuthorizationModule, ], diff --git a/api/src/application/application-response.dto.ts b/api/src/application/application-response.dto.ts new file mode 100644 index 0000000..e0ac281 --- /dev/null +++ b/api/src/application/application-response.dto.ts @@ -0,0 +1,30 @@ +import { + Application, + ApplicationState, + ApplicationType, + LangLevel, +} from '@hkrecruitment/shared'; +import { Exclude, Expose } from 'class-transformer'; + +@Exclude() +export class ApplicationResponseDto implements Partial { + @Expose() id: number; + @Expose() submission: string; + @Expose() state: ApplicationState; + @Expose() itaLevel: LangLevel; + @Expose() type: ApplicationType; + + @Expose() bscStudyPath?: string; + @Expose() bscAcademicYear?: number; + @Expose() bscGradesAvg?: number; + @Expose() cfu?: number; + + @Expose() mscStudyPath?: string; + @Expose() mscGradesAvg?: number; + @Expose() mscAcademicYear?: number; + + @Expose() phdDescription?: string; + + // @Expose() + // applicant: ApplicantDto +} diff --git a/api/src/application/application-types.ts b/api/src/application/application-types.ts new file mode 100644 index 0000000..6275550 --- /dev/null +++ b/api/src/application/application-types.ts @@ -0,0 +1,4 @@ +export type ApplicationFiles = { + cv: Express.Multer.File[]; + grades?: Express.Multer.File[]; +}; diff --git a/api/src/application/application.entity.ts b/api/src/application/application.entity.ts new file mode 100644 index 0000000..a9e0dd3 --- /dev/null +++ b/api/src/application/application.entity.ts @@ -0,0 +1,87 @@ +import { + Column, + Entity, + ChildEntity, + PrimaryGeneratedColumn, + TableInheritance, +} from 'typeorm'; +import { + Application as ApplicationInterface, + ApplicationState, + ApplicationType, + LangLevel, +} from '@hkrecruitment/shared'; +// import { TimeSlot } from '@hkrecruitment/shared/slot'; + +@Entity() +@TableInheritance({ column: 'type' }) // TypeORM column to discriminate child entities +export class Application implements ApplicationInterface { + @PrimaryGeneratedColumn('increment') + id: number; + + @Column() + type: ApplicationType; + + @Column('varchar', { length: 64, name: 'applicant_id' }) + applicantId: string; + + @Column() + submission: Date; + + @Column() + state: ApplicationState; + + @Column({ name: 'last_modified', nullable: true }) + lastModified: Date; + + @Column({ nullable: true, length: 255 }) + notes?: string; + + @Column({ length: 255 }) + cv: string; + + // @Column() + // availability: TimeSlot[]; + + // @Column({ "name": "interview_id" }) + // interviewId: number; + + @Column({ name: 'ita_level' }) + itaLevel: LangLevel; +} + +@ChildEntity(ApplicationType.BSC) +export class BscApplication extends Application { + @Column({ name: 'bsc_study_path', nullable: true }) + bscStudyPath: string; + + @Column({ name: 'bsc_academic_year', nullable: true }) + bscAcademicYear: number; + + @Column({ name: 'bsc_grades_avg', nullable: true }) + bscGradesAvg: number; + + @Column({ nullable: true }) + cfu: number; + + @Column({ nullable: true, length: 255 }) + grades: string; +} + +@ChildEntity(ApplicationType.MSC) +export class MscApplication extends Application { + @Column({ name: 'msc_study_path', nullable: true }) + mscStudyPath: string; + + @Column({ name: 'msc_grades_avg', nullable: true }) + mscGradesAvg: number; + + @Column({ name: 'msc_academic_year', nullable: true }) + mscAcademicYear: number; +} + +@ChildEntity(ApplicationType.PHD) +export class PhdApplication extends Application { + @Column({ name: 'phd_description', nullable: true }) + phdDescription: string; +} diff --git a/api/src/application/applications.controller.spec.ts b/api/src/application/applications.controller.spec.ts new file mode 100644 index 0000000..1c04510 --- /dev/null +++ b/api/src/application/applications.controller.spec.ts @@ -0,0 +1,403 @@ +import { createMockAbility } from '@hkrecruitment/shared/abilities.spec'; +import { ApplicationsController } from './applications.controller'; +import { ApplicationsService } from './applications.service'; +import { + Action, + ApplicationState, + ApplicationType, + Role, +} from '@hkrecruitment/shared'; +import { TestBed } from '@automock/jest'; +import { ApplicationResponseDto } from './application-response.dto'; +import { plainToClass } from 'class-transformer'; +import { Application } from './application.entity'; +import { + mockBscApplication, + mockMscApplication, + updateApplicationDTO, + testDate, +} from '@mocks/data'; +import { + BadRequestException, + ConflictException, + ForbiddenException, + NotFoundException, + UnprocessableEntityException, +} from '@nestjs/common'; +import { createMock } from '@golevelup/ts-jest'; +import { AuthenticatedRequest } from 'src/authorization/authenticated-request.types'; +import { ApplicationFiles } from './application-types'; +import { flattenApplication } from './create-application.dto'; + +describe('ApplicationController', () => { + let controller: ApplicationsController; + let service: ApplicationsService; + + /************* Test setup ************/ + + beforeAll(() => { + jest + .spyOn(global, 'Date') + .mockImplementation(() => testDate as unknown as string); + }); + + beforeEach(async () => { + const { unit, unitRef } = TestBed.create(ApplicationsController).compile(); + + controller = unit; + service = unitRef.get(ApplicationsService); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + expect(service).toBeDefined(); + }); + + describe('listApplications', () => { + it('should return the list of applications', async () => { + const mockAbility = createMockAbility(({ can }) => { + can(Action.Read, 'Application'); + }); + const applications = [{ id: 1 }, { id: 2 }] as Application[]; + const appResponseDtos = [ + plainToClass(ApplicationResponseDto, applications[0]), + plainToClass(ApplicationResponseDto, applications[1]), + ]; + jest.spyOn(service, 'listApplications').mockResolvedValue(applications); + + const result = await controller.listApplications(mockAbility); + + expect(result).toEqual(appResponseDtos); + expect(service.listApplications).toHaveBeenCalledTimes(1); + expect(mockAbility.can).toHaveBeenCalled(); + }); + + it('should return only applications that user can read', async () => { + const mockAbility = createMockAbility(({ can }) => { + can(Action.Read, 'Application', { applicantId: '1' }); + }); + const applications = [ + { ...mockBscApplication, applicantId: '1' }, + { ...mockMscApplication, applicantId: '2' }, + ] as Application[]; + const appResponseDtos = [ + plainToClass(ApplicationResponseDto, applications[0]), + ]; + jest.spyOn(service, 'listApplications').mockResolvedValue(applications); + + const result = await controller.listApplications(mockAbility); + + expect(result).toEqual(appResponseDtos); + expect(service.listApplications).toHaveBeenCalledTimes(1); + expect(mockAbility.can).toHaveBeenCalled(); + }); + }); + + describe('getApplication', () => { + it('should return an application if it exists', async () => { + const mockAbility = createMockAbility(({ can }) => { + can(Action.Read, 'Application'); + }); + jest + .spyOn(service, 'findByApplicationId') + .mockResolvedValue(mockMscApplication); + const result = await controller.getApplication( + mockAbility, + mockMscApplication.id, + ); + const expectedApp = { + ...mockMscApplication, + id: mockMscApplication.id, + state: mockMscApplication.state, + submission: undefined, + phdDescription: undefined, + bscAcademicYear: undefined, + bscGradesAvg: undefined, + bscStudyPath: undefined, + cfu: undefined, + } as ApplicationResponseDto; + delete expectedApp['notes']; + expect(result).toEqual(expectedApp); + expect(service.findByApplicationId).toHaveBeenCalledTimes(1); + expect(service.findByApplicationId).toHaveBeenCalledWith( + mockMscApplication.id, + ); + expect(mockAbility.can).toHaveBeenCalled(); + }); + + it("should throw a NotFoundException if the application doesn't exist", async () => { + const mockAbility = createMockAbility(({ cannot }) => { + cannot(Action.Read, 'Application'); + }); + jest.spyOn(service, 'findByApplicationId').mockResolvedValue(null); + const result = controller.getApplication( + mockAbility, + mockBscApplication.id, + ); + await expect(result).rejects.toThrow(NotFoundException); + expect(service.findByApplicationId).toHaveBeenCalledTimes(1); + expect(service.findByApplicationId).toHaveBeenCalledWith( + mockBscApplication.id, + ); + }); + + it("should throw a ForbiddenException if the user can't read the application", async () => { + const mockAbility = createMockAbility(({ cannot }) => { + cannot(Action.Read, 'Application', { applicantId: '1' }); + }); + jest + .spyOn(service, 'findByApplicationId') + .mockResolvedValue({ ...mockBscApplication, applicantId: '2' }); + const result = controller.getApplication( + mockAbility, + mockBscApplication.id, + ); + await expect(result).rejects.toThrow(ForbiddenException); + expect(service.findByApplicationId).toHaveBeenCalledTimes(1); + expect(service.findByApplicationId).toHaveBeenCalledWith( + mockBscApplication.id, + ); + expect(mockAbility.can).toHaveBeenCalled(); + }); + }); + + describe('createApplication', () => { + it('should create an application if the user is allowed to create it', async () => { + const mockAbility = createMockAbility(({ can }) => { + can(Action.Create, 'Application'); + }); + const mockReq = createMock(); + mockReq.user.sub = '123'; + const expectedApplication = { + ...flattenApplication(mockBscApplication), + submission: undefined, + state: ApplicationState.New, + } as ApplicationResponseDto; + const mockFiles = createMock(); + jest + .spyOn(service, 'createApplication') + .mockResolvedValue(mockBscApplication); + const result = await controller.createApplication( + mockFiles, + mockBscApplication, + mockAbility, + mockReq, + ); + expect(result).toEqual(expectedApplication); + expect(service.createApplication).toHaveBeenCalledTimes(1); + expect(service.createApplication).toHaveBeenCalledWith( + mockBscApplication, + {}, + mockReq.user.sub, + ); + expect(mockAbility.can).toHaveBeenCalled(); + }); + + it.each([ApplicationType.BSC, ApplicationType.MSC])( + `should require grades file for non-phd applications`, + async (applicationType) => { + const mockAbility = createMockAbility(({ can }) => { + can(Action.Create, 'Application'); + }); + const mockReq = createMock(); + mockReq.user.sub = '123'; + const mockApplication = + applicationType === ApplicationType.BSC + ? mockBscApplication + : mockMscApplication; + const mockFiles = { + cv: createMock(), + }; + jest + .spyOn(service, 'createApplication') + .mockResolvedValue(mockApplication); + const result = controller.createApplication( + mockFiles, + mockApplication, + mockAbility, + mockReq, + ); + expect(result).rejects.toThrow(UnprocessableEntityException); + expect(service.createApplication).toHaveBeenCalledTimes(0); + }, + ); + + it.each(Object.values(ApplicationType))( + `should require cv file for all applications`, + async (applicationType) => { + const mockAbility = createMockAbility(({ can }) => { + can(Action.Create, 'Application'); + }); + const mockReq = createMock(); + mockReq.user.sub = '123'; + const mockApplication = { type: applicationType } as Application; + const mockFiles = {} as ApplicationFiles; + jest + .spyOn(service, 'createApplication') + .mockResolvedValue(mockApplication); + const result = controller.createApplication( + mockFiles, + mockApplication, + mockAbility, + mockReq, + ); + expect(result).rejects.toThrow(UnprocessableEntityException); + expect(service.createApplication).toHaveBeenCalledTimes(0); + }, + ); + + it('should throw a ForbiddenException if the user is not allowed to submit an application', async () => { + const mockAbility = createMockAbility(({ cannot }) => { + cannot(Action.Create, 'Application'); + }); + const mockReq = createMock(); + mockReq.user.sub = '123'; + const mockApplication = { type: ApplicationType.PHD } as Application; + const mockFiles = { + cv: createMock(), + } as ApplicationFiles; + jest + .spyOn(service, 'createApplication') + .mockResolvedValue(mockApplication); + const result = controller.createApplication( + mockFiles, + mockApplication, + mockAbility, + mockReq, + ); + expect(result).rejects.toThrow(ForbiddenException); + expect(service.createApplication).toHaveBeenCalledTimes(0); + }); + + it('should throw a ConflictException if the user already has a pending application', async () => { + const mockAbility = createMockAbility(({ can }) => { + can(Action.Create, 'Application'); + }); + const mockReq = createMock(); + mockReq.user.sub = '123'; + const mockApplication = { type: ApplicationType.PHD } as Application; + const mockFiles = { + cv: createMock(), + } as ApplicationFiles; + jest + .spyOn(service, 'createApplication') + .mockResolvedValue(mockApplication); + jest + .spyOn(service, 'findActiveApplicationByApplicantId') + .mockResolvedValue(true); + const result = controller.createApplication( + mockFiles, + mockApplication, + mockAbility, + mockReq, + ); + expect(result).rejects.toThrow(ConflictException); + expect(service.createApplication).toHaveBeenCalledTimes(0); + expect(service.findActiveApplicationByApplicantId).toHaveBeenCalledTimes( + 1, + ); + expect(service.findActiveApplicationByApplicantId).toHaveBeenCalledWith( + mockReq.user.sub, + ); + }); + }); + + describe('updateApplication', () => { + it('should update an application if it exists and the user is allowed to update it', async () => { + const mockAbility = createMockAbility(({ can }) => { + can(Action.Update, 'Application', { applicantId: '1' }); + }); + const updateApplicationDTO = { notes: 'Nothing special here' }; + const mockReq = createMock(); + const expectedApplication = { + ...mockBscApplication, + id: mockBscApplication.id, + state: mockBscApplication.state, + submission: undefined, + mscAcademicYear: undefined, + mscGradesAvg: undefined, + mscStudyPath: undefined, + phdDescription: undefined, + } as ApplicationResponseDto; + delete expectedApplication['notes']; + const mockedApplication = { ...mockBscApplication, applicantId: '1' }; + jest + .spyOn(service, 'findByApplicationId') + .mockResolvedValue(mockedApplication); + jest + .spyOn(service, 'updateApplication') + .mockResolvedValue({ ...mockBscApplication, ...updateApplicationDTO }); + const result = await controller.updateApplication( + mockBscApplication.id, + updateApplicationDTO, + mockAbility, + mockReq, + ); + expect(result).toEqual(expectedApplication); + expect(service.updateApplication).toHaveBeenCalledTimes(1); + expect(service.updateApplication).toHaveBeenCalledWith({ + ...mockedApplication, + ...updateApplicationDTO, + lastModified: new Date(), + }); + expect(mockAbility.can).toHaveBeenCalled(); + }); + + it("should throw a NotFoundException if the application doesn't exist", async () => { + const mockAbility = createMockAbility(({ can }) => { + can(Action.Update, 'Application'); + }); + const mockReq = createMock(); + jest.spyOn(service, 'findByApplicationId').mockResolvedValue(null); + const result = controller.updateApplication( + mockBscApplication.id, + updateApplicationDTO, + mockAbility, + mockReq, + ); + await expect(result).rejects.toThrow(NotFoundException); + expect(service.findByApplicationId).toHaveBeenCalledTimes(1); + expect(service.findByApplicationId).toHaveBeenCalledWith(1); + expect(service.updateApplication).not.toHaveBeenCalled(); + }); + + it("should throw a ForbiddenException if the user can't update the application", async () => { + const mockAbility = createMockAbility(({ can }) => { + can(Action.Update, 'Application', { applicantId: '1' }); + }); + const mockReq = createMock(); + jest + .spyOn(service, 'findByApplicationId') + .mockResolvedValue({ ...mockBscApplication, applicantId: '2' }); + const result = controller.updateApplication( + mockBscApplication.id, + updateApplicationDTO, + mockAbility, + mockReq, + ); + await expect(result).rejects.toThrow(ForbiddenException); + expect(service.updateApplication).not.toHaveBeenCalled(); + expect(mockAbility.can).toHaveBeenCalled(); + }); + + it('should throw a BadRequestException if the applicant tried to set an invalid state', async () => { + const mockAbility = createMockAbility(({ can }) => { + can(Action.Update, 'Application', { applicantId: '1' }); + }); + const mockReq = createMock(); + mockReq.user.role = Role.Applicant; + jest + .spyOn(service, 'findByApplicationId') + .mockResolvedValue({ ...mockBscApplication, applicantId: '1' }); + const result = controller.updateApplication( + mockBscApplication.id, + updateApplicationDTO, + mockAbility, + mockReq, + ); + await expect(result).rejects.toThrow(BadRequestException); + expect(service.updateApplication).not.toHaveBeenCalled(); + expect(mockAbility.can).toHaveBeenCalled(); + }); + }); +}); diff --git a/api/src/application/applications.controller.ts b/api/src/application/applications.controller.ts new file mode 100644 index 0000000..d74a6b9 --- /dev/null +++ b/api/src/application/applications.controller.ts @@ -0,0 +1,279 @@ +import { + Body, + Controller, + ForbiddenException, + BadRequestException, + NotFoundException, + ConflictException, + Get, + Param, + Patch, + Post, + Query, + Req, + UploadedFiles, + UseInterceptors, + HttpStatus, + HttpException, + UnprocessableEntityException, +} from '@nestjs/common'; +import { Application } from './application.entity'; +import { ApplicationsService } from './applications.service'; +import { + Action, + AppAbility, + ApplicationState, + ApplicationType, + checkAbility, + createApplicationSchema, + Role, + updateApplicationSchema, +} from '@hkrecruitment/shared'; +import { JoiValidate } from '../joi-validation/joi-validate.decorator'; +import { + ApiBadRequestResponse, + ApiBearerAuth, + ApiForbiddenResponse, + ApiNotFoundResponse, + ApiCreatedResponse, + ApiOkResponse, + ApiTags, + ApiUnauthorizedResponse, + ApiConflictResponse, + ApiQuery, + ApiConsumes, + ApiUnprocessableEntityResponse, +} from '@nestjs/swagger'; +import { AuthenticatedRequest } from 'src/authorization/authenticated-request.types'; +import * as Joi from 'joi'; +import { CheckPolicies } from 'src/authorization/check-policies.decorator'; +import { Ability } from 'src/authorization/ability.decorator'; +import { ApplicationResponseDto } from './application-response.dto'; +import { CreateApplicationDto } from './create-application.dto'; +import { UpdateApplicationDto } from './update-application.dto'; +import { plainToClass } from 'class-transformer'; +import { FileFieldsInterceptor } from '@nestjs/platform-express'; +import { ApplicationFiles } from './application-types'; + +@ApiBearerAuth() +@ApiTags('applications') +@Controller('applications') +export class ApplicationsController { + constructor(private readonly applicationsService: ApplicationsService) {} + + static MAX_UPLOAD_SIZE = 1024 * 1024 * 4; // 4MB + + @Get() + @ApiUnauthorizedResponse() + @ApiForbiddenResponse() + @ApiQuery({ + name: 'submittedFrom', + required: false, + type: 'string', + }) + @ApiQuery({ + name: 'submittedUntil', + required: false, + type: 'string', + }) + @ApiQuery({ + name: 'state', + required: false, + type: 'string', + enum: Object.values(ApplicationState), + }) + @JoiValidate({ + query: { + submittedFrom: Joi.date().iso().optional(), + submittedUntil: Joi.date().iso().optional(), + state: Joi.string(), + }, + }) + async listApplications( + @Ability() ability: AppAbility, + @Query('submittedFrom') submittedFrom?: string, // start date for time period + @Query('submittedUntil') submittedUntil?: string, // end date for time period + @Query('state') state?: string, + ): Promise { + const applications = await this.applicationsService.listApplications( + submittedFrom, + submittedUntil, + state, + ); + return applications + .filter((application) => + checkAbility(ability, Action.Read, application, 'Application'), + ) + .map((application) => plainToClass(ApplicationResponseDto, application)); + } + + // TODO: Move this to applicants.controller.ts + // TODO: decide if we need an applicant controller + // @Get('applicants/:applicant_id/applications') + // @ApiForbiddenResponse() + // async listApplicationsOfApplicant( + // @Param('applicant_id') applicantId: string, + // ): Promise { + // const applications = await this.applicationsService.findByApplicantId( + // applicantId, + // ); + // return applications.map((application) => plainToClass(ApplicationResponseDto, application));; + // } + + @ApiNotFoundResponse() + @ApiForbiddenResponse() + @Get(':application_id') + @JoiValidate({ + param: Joi.number().positive().integer().required().label('application_id'), + body: Joi.object().forbidden(), + }) + @CheckPolicies((ability) => ability.can(Action.Read, 'Application')) + async getApplication( + @Ability() ability: AppAbility, + @Param('application_id') applicationId: number, + ): Promise { + const application = await this.applicationsService.findByApplicationId( + applicationId, + ); + + if (!application) throw new NotFoundException(); + if (!checkAbility(ability, Action.Read, application, 'Application')) + throw new ForbiddenException(); + + return plainToClass(ApplicationResponseDto, application); + } + + @ApiBadRequestResponse() + @ApiForbiddenResponse() + @ApiUnprocessableEntityResponse({ + description: 'Invalid "cv" or "grades" file type or size', + }) + @ApiConflictResponse({ + description: 'User already has a pending application', + }) + @ApiCreatedResponse() + @ApiConsumes('multipart/form-data') + @JoiValidate({ + body: createApplicationSchema, + }) + @UseInterceptors( + FileFieldsInterceptor( + [ + { name: 'cv', maxCount: 1 }, + { name: 'grades', maxCount: 1 }, + ], + { + limits: { + fileSize: ApplicationsController.MAX_UPLOAD_SIZE, + }, + fileFilter: ( + req: Request, + file: Express.Multer.File, + callback: (error: Error, acceptFile: boolean) => void, + ) => { + if (file.mimetype !== 'application/pdf') + return callback( + new HttpException( + `${file.fieldname} is not a valid .pdf document`, + HttpStatus.UNPROCESSABLE_ENTITY, + ), + false, + ); + return callback(null, true); + }, + }, + ), + ) + @Post('/') + async createApplication( + @UploadedFiles() files: ApplicationFiles, + @Body() application: CreateApplicationDto, + @Ability() ability: AppAbility, + @Req() req: AuthenticatedRequest, + ): Promise { + if (!files || !files.cv) { + throw new UnprocessableEntityException('CV file is required'); + } + + if ( + application.type !== ApplicationType.PHD && + files.grades === undefined + ) { + // grades are required for non-phd applications + throw new UnprocessableEntityException('Grades file is required'); + } + + if (!checkAbility(ability, Action.Create, application, 'Application')) + throw new ForbiddenException(); + + // Get the user unique identifier from the request + const applicantId = req.user.sub; + + // An applicant can have only one application with (state != finalized || state != refused_by_applicant) + const hasActiveApplication = + await this.applicationsService.findActiveApplicationByApplicantId( + applicantId, + ); + if (hasActiveApplication) + throw new ConflictException( + 'Applicant already has a pending application', + ); + + return await this.applicationsService.createApplication( + application, + files, + applicantId, + ); + } + + @Patch(':application_id') + @ApiBadRequestResponse() + @ApiForbiddenResponse() + @ApiOkResponse() + @JoiValidate({ + param: Joi.number().positive().integer().required().label('application_id'), + body: updateApplicationSchema, + }) + async updateApplication( + @Param('application_id') applicationId: number, + @Body() updateApplication: UpdateApplicationDto, + @Ability() ability: AppAbility, + @Req() req: AuthenticatedRequest, + ): Promise { + const application = await this.applicationsService.findByApplicationId( + applicationId, + ); + if (application === null) throw new NotFoundException(); + + const appToCheck = { + ...updateApplication, + applicantId: application.applicantId, + }; + if ( + !checkAbility(ability, Action.Update, appToCheck, 'Application', [ + 'applicantId', + ]) + ) + throw new ForbiddenException(); + + // Applicants can only update status to "refused_by_applicant" + if ( + req.user.role === Role.Applicant && + (updateApplication.state !== ApplicationState.RefusedByApplicant || + Object.keys(updateApplication).length !== 1) + ) + throw new BadRequestException( + "You can only update your application state to 'refused_by_applicant'", + ); + + const updatedApplication = await this.applicationsService.updateApplication( + { + ...application, + ...updateApplication, + lastModified: new Date(), + }, + ); + + return plainToClass(ApplicationResponseDto, updatedApplication); + } +} diff --git a/api/src/application/applications.module.ts b/api/src/application/applications.module.ts new file mode 100644 index 0000000..72cb944 --- /dev/null +++ b/api/src/application/applications.module.ts @@ -0,0 +1,14 @@ +import { Module } from '@nestjs/common'; +import { ApplicationsService } from './applications.service'; +import { ApplicationsController } from './applications.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { Application } from './application.entity'; +import { UsersModule } from 'src/users/users.module'; + +@Module({ + imports: [TypeOrmModule.forFeature([Application]), UsersModule], + providers: [ApplicationsService], + controllers: [ApplicationsController], + exports: [ApplicationsService], +}) +export class ApplicationsModule {} diff --git a/api/src/application/applications.service.spec.ts b/api/src/application/applications.service.spec.ts new file mode 100644 index 0000000..db7ab56 --- /dev/null +++ b/api/src/application/applications.service.spec.ts @@ -0,0 +1,344 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { ApplicationsService } from './applications.service'; +import { getRepositoryToken } from '@nestjs/typeorm'; +import { Application } from './application.entity'; +import { ApplicationState, ApplicationType } from '@hkrecruitment/shared'; +import { UsersService } from '../users/users.service'; +import { mockedRepository } from '@mocks/repositories'; +import { mockedUsersService } from '@mocks/services'; +import { + applicant, + applicationFiles, + mockBscApplication, + mockMscApplication, + mockPhdApplication, + mockCreateBscApplicationDTO, + mockCreateMscApplicationDTO, + mockCreatePhdApplicationDTO, + fileId, + applicantId, + folderId, + today, + testDate, +} from '@mocks/data'; +import { flattenApplication } from './create-application.dto'; +import { InternalServerErrorException } from '@nestjs/common'; + +const mockedGDrive = { + getFolderByName: jest.fn(), + insertFile: jest.fn(), + deleteItem: jest.fn(), + constructor: jest.fn(), +}; + +// Mock GDriveStorage +jest.mock('../google/GDrive/GDriveStorage', () => { + return { + GDriveStorage: jest.fn().mockImplementation(() => { + return mockedGDrive; + }), + }; +}); + +describe('ApplicationsService', () => { + let applicationService: ApplicationsService; + let usersService: UsersService; + + /************* Test setup ************/ + + beforeAll(() => { + jest + .spyOn(global, 'Date') + .mockImplementation(() => testDate as unknown as string); + }); + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [ + ApplicationsService, + { + provide: getRepositoryToken(Application), + useValue: mockedRepository, + }, + { + provide: UsersService, + useValue: mockedUsersService, + }, + ], + }).compile(); + + applicationService = module.get(ApplicationsService); + usersService = module.get(UsersService); + }); + + afterEach(() => jest.clearAllMocks()); + + /*************** Tests ***************/ + + it('should be defined', () => { + expect(applicationService).toBeDefined(); + }); + + describe('findAll', () => { + it('should return an array of applications', async () => { + const applications: Application[] = [mockBscApplication]; + jest.spyOn(mockedRepository, 'find').mockResolvedValue(applications); + const result = await applicationService.findAll(); + + expect(result).toEqual(applications); + expect(mockedRepository.find).toHaveBeenCalledTimes(1); + expect(mockedRepository.find).toHaveBeenCalledWith(); + }); + }); + + describe('findByApplicationId', () => { + it('should return an application by id', async () => { + const applicationId = 1; + jest + .spyOn(mockedRepository, 'findBy') + .mockResolvedValue([mockBscApplication]); + const result = await applicationService.findByApplicationId( + applicationId, + ); + + expect(result).toEqual(mockBscApplication); + expect(mockedRepository.findBy).toHaveBeenCalledTimes(1); + expect(mockedRepository.findBy).toHaveBeenCalledWith({ + id: applicationId, + }); + }); + + it('should return null when no application is found', async () => { + const applicationId = 2; + jest.spyOn(mockedRepository, 'findBy').mockResolvedValue([]); + const result = await applicationService.findByApplicationId( + applicationId, + ); + + expect(result).toBeNull(); + expect(mockedRepository.findBy).toHaveBeenCalledTimes(1); + expect(mockedRepository.findBy).toHaveBeenCalledWith({ + id: applicationId, + }); + }); + }); + + describe('findByApplicantId', () => { + it('should return an array of applications for the specified applicant', async () => { + const applicantId = 'abc123'; + const applications: Application[] = [mockBscApplication]; + jest.spyOn(mockedRepository, 'findBy').mockResolvedValue(applications); + const result = await applicationService.findByApplicantId(applicantId); + + expect(result).toEqual(applications); + expect(mockedRepository.findBy).toHaveBeenCalledTimes(1); + expect(mockedRepository.findBy).toHaveBeenCalledWith({ applicantId }); + }); + }); + + describe('findActiveApplicationByApplicantId', () => { + it('should return true when an active application exists for the specified applicant', async () => { + const applicantId = 'abc123'; + const activeApplication: Application = { + ...mockBscApplication, + state: ApplicationState.New, + }; + jest + .spyOn(mockedRepository, 'findBy') + .mockResolvedValue([activeApplication]); + const result = + await applicationService.findActiveApplicationByApplicantId( + applicantId, + ); + + expect(result).toBe(true); + expect(mockedRepository.findBy).toHaveBeenCalledTimes(1); + }); + + it('should return false when no application exists for the specified applicant', async () => { + const applicantId = 'abc123'; + jest.spyOn(mockedRepository, 'findBy').mockResolvedValue([]); + const result = + await applicationService.findActiveApplicationByApplicantId( + applicantId, + ); + + expect(result).toBe(false); + expect(mockedRepository.findBy).toHaveBeenCalledTimes(1); + }); + }); + + describe('listApplications', () => { + it('should return an array of applications based on the provided conditions', async () => { + const conditions = { + submission: { $gte: new Date(2023, 0, 1), $lte: new Date(2023, 0, 31) }, + state: ApplicationState.New, + }; + const applications: Application[] = [mockBscApplication]; + jest.spyOn(mockedRepository, 'findBy').mockResolvedValue(applications); + const result = await applicationService.listApplications( + conditions.submission.$gte.toISOString(), + conditions.submission.$lte.toISOString(), + conditions.state, + ); + + expect(result).toEqual(applications); + expect(mockedRepository.findBy).toHaveBeenCalledTimes(1); + }); + }); + + describe('delete', () => { + it('should remove the specified application from the database', async () => { + jest + .spyOn(mockedRepository, 'remove') + .mockResolvedValue(mockBscApplication); + + const result = await applicationService.delete(mockBscApplication); + expect(result).toEqual(mockBscApplication); + expect(mockedRepository.remove).toHaveBeenCalledTimes(1); + }); + }); + + function createTestApplication(applicationType: ApplicationType) { + it(`should create and return a new ${applicationType} application`, async () => { + const applicantId = 'abc123'; + const folderId = 'folder_abc123'; + const fileId = 'file_abc123'; + const today = '1/1/2023, 24:00:00'; + let mockApplication, mockCreateApplicationDTO; + switch (applicationType) { + case ApplicationType.BSC: + mockApplication = mockBscApplication; + mockCreateApplicationDTO = mockCreateBscApplicationDTO; + break; + case ApplicationType.MSC: + mockApplication = mockMscApplication; + mockCreateApplicationDTO = mockCreateMscApplicationDTO; + break; + case ApplicationType.PHD: + mockApplication = mockPhdApplication; + mockCreateApplicationDTO = mockCreatePhdApplicationDTO; + break; + } + const expectedCvFileName = `CV_${applicationType}_${applicant.firstName}_${applicant.lastName}_${today}`; + const expectedGradesFileName = `Grades_${applicationType}_${applicant.firstName}_${applicant.lastName}_${today}`; + const newApplication: Application = { + ...mockApplication, + applicantId, + state: ApplicationState.New, + lastModified: testDate, + submission: testDate, + }; + let expectedFileInertions; + const mockApplicationFiles = { ...applicationFiles }; + if (applicationType === ApplicationType.PHD) { + delete mockApplicationFiles.grades; // Grades are not required for PhD applications + expectedFileInertions = 1; + } else { + expectedFileInertions = 2; + } + + jest.spyOn(mockedRepository, 'save').mockResolvedValue(newApplication); + jest.spyOn(usersService, 'findByOauthId').mockResolvedValue(applicant); + jest.spyOn(mockedGDrive, 'getFolderByName').mockResolvedValue(folderId); + jest.spyOn(mockedGDrive, 'insertFile').mockResolvedValue(fileId); + + const result = await applicationService.createApplication( + mockCreateApplicationDTO, + mockApplicationFiles, + applicantId, + ); + const flattenedMockCreateApplicationDTOO = flattenApplication( + mockCreateApplicationDTO, + ); + + expect(result).toEqual(newApplication); + expect(mockedRepository.save).toHaveBeenCalledTimes(1); + expect(mockedRepository.save).toHaveBeenCalledWith( + flattenedMockCreateApplicationDTOO, + ); + expect(usersService.findByOauthId).toHaveBeenCalledTimes(1); + expect(usersService.findByOauthId).toHaveBeenCalledWith(applicantId); + expect(mockedGDrive.getFolderByName).toHaveBeenCalledTimes(1); + expect(mockedGDrive.getFolderByName).toHaveBeenCalledWith( + ApplicationsService.APPLICATIONS_FOLDER, + ); + expect(mockedGDrive.insertFile).toHaveBeenCalledTimes( + expectedFileInertions, + ); + expect(mockedGDrive.insertFile).toHaveBeenCalledWith( + expectedCvFileName, + applicationFiles.cv[0].buffer, + folderId, + ); + if (applicationType !== ApplicationType.PHD) + expect(mockedGDrive.insertFile).toHaveBeenCalledWith( + expectedGradesFileName, + applicationFiles.grades[0].buffer, + folderId, + ); + }); + } + + describe('createApplication', () => { + createTestApplication(ApplicationType.BSC); + createTestApplication(ApplicationType.MSC); + createTestApplication(ApplicationType.PHD); + + it('deletes uploaded google drive documents if an exception is thrown', async () => { + const expectedCvFileName = `CV_bsc_${applicant.firstName}_${applicant.lastName}_${today}`; + const expectedGradesFileName = `Grades_bsc_${applicant.firstName}_${applicant.lastName}_${today}`; + const testError = 'Test error'; + + jest.spyOn(mockedRepository, 'save').mockRejectedValue(testError); + jest.spyOn(usersService, 'findByOauthId').mockResolvedValue(applicant); + jest.spyOn(mockedGDrive, 'getFolderByName').mockResolvedValue(folderId); + jest.spyOn(mockedGDrive, 'insertFile').mockResolvedValue(fileId); + jest.spyOn(mockedGDrive, 'deleteItem').mockResolvedValue({}); + + await expect( + applicationService.createApplication( + mockCreateBscApplicationDTO, + applicationFiles, + applicantId, + ), + ).rejects.toThrow(InternalServerErrorException); + expect(usersService.findByOauthId).toHaveBeenCalledTimes(1); + expect(usersService.findByOauthId).toHaveBeenCalledWith(applicantId); + + expect(mockedGDrive.insertFile).toHaveBeenCalledTimes(2); + expect(mockedGDrive.insertFile).toHaveBeenCalledWith( + expectedCvFileName, + applicationFiles.cv[0].buffer, + folderId, + ); + expect(mockedGDrive.insertFile).toHaveBeenCalledWith( + expectedGradesFileName, + applicationFiles.grades[0].buffer, + folderId, + ); + expect(mockedGDrive.deleteItem).toHaveBeenCalledTimes(2); + expect(mockedGDrive.deleteItem).toHaveBeenCalledWith(fileId); + expect(mockedGDrive.deleteItem).toHaveBeenCalledWith(fileId); + }); + }); + + describe('updateApplication', () => { + it('should update and return an existing application', async () => { + const updatedApplication: Application = { + ...mockBscApplication, + state: ApplicationState.Accepted, + }; + jest + .spyOn(mockedRepository, 'save') + .mockResolvedValue(updatedApplication); + const result = await applicationService.updateApplication( + mockBscApplication, + ); + + expect(result).toEqual(updatedApplication); + expect(mockedRepository.save).toHaveBeenCalledTimes(1); + expect(mockedRepository.save).toHaveBeenCalledWith(mockBscApplication); + }); + }); +}); diff --git a/api/src/application/applications.service.ts b/api/src/application/applications.service.ts new file mode 100644 index 0000000..079b473 --- /dev/null +++ b/api/src/application/applications.service.ts @@ -0,0 +1,146 @@ +import { + Injectable, + InternalServerErrorException, + NotFoundException, +} from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository, Between, Not, In } from 'typeorm'; +import { Application } from './application.entity'; +import { GDriveStorage } from '../google/GDrive/GDriveStorage'; +import { + CreateApplicationDto, + flattenApplication, +} from './create-application.dto'; +import { ApplicationState, ApplicationType } from '@hkrecruitment/shared'; +import { UsersService } from '../users/users.service'; +import { ApplicationFiles } from './application-types'; + +@Injectable() +export class ApplicationsService { + constructor( + @InjectRepository(Application) + private readonly applicationRepository: Repository, + private readonly usersService: UsersService, + ) {} + + static APPLICATIONS_FOLDER = 'applications'; // Google Drive folder name + + async findAll(): Promise { + return this.applicationRepository.find(); + } + + async findByApplicationId( + applicationId: number, + ): Promise { + const matches = await this.applicationRepository.findBy({ + id: applicationId, + }); + return matches.length > 0 ? matches[0] : null; + } + + async findByApplicantId(applicantId: string): Promise { + return await this.applicationRepository.findBy({ applicantId }); + } + + async findActiveApplicationByApplicantId( + applicantId: string, + ): Promise { + const match = await this.applicationRepository.findBy({ + applicantId, + // Search only for applications that are still pending + state: Not(In(['finalized', 'rejected', 'refused_by_applicant'])), + }); + return match.length > 0; + } + + async listApplications( + submittedFrom: string, + submittedUntil: string, + state: string, + ): Promise { + const conditions = {}; + + // Add time range condition if both dates are specified + if (submittedFrom && submittedUntil) + conditions['submission'] = Between(submittedFrom, submittedUntil); + + // Add state condition when "state" is specified + if (state) conditions['state'] = state; + // Retrieve applications + return await this.applicationRepository.findBy(conditions); + } + + async delete(application: Application): Promise { + return this.applicationRepository.remove(application); + } + + async createApplication( + application: CreateApplicationDto, + files: ApplicationFiles, + applicantId: string, + ): Promise { + // Get applicant full name + const applicant = await this.usersService.findByOauthId(applicantId); + if (!applicant) throw new NotFoundException('Applicant not found'); + const applicantFullName = `${applicant.firstName}_${applicant.lastName}`; + const today = new Date(); + + // TODO: Create an Interview and set application.interview_id + application.submission = today; + application.state = ApplicationState.New; + application.applicantId = applicantId; + + const storage = new GDriveStorage(); + let gradesFileId = null; + let cvFileId = null; + + // Save files to Google Drive + try { + const applicationsFolder = await storage.getFolderByName( + ApplicationsService.APPLICATIONS_FOLDER, + ); + const formattedDatetime = today.toLocaleString('en-US', { + hour12: false, + }); + const fileName = `${application.type}_${applicantFullName}_${formattedDatetime}`; + // TODO: Create a folder for each applicant? Give it a unique name + + // Save CV + cvFileId = await storage.insertFile( + `CV_${fileName}`, + files.cv[0].buffer, + applicationsFolder, + ); + application.cv = cvFileId; + + // Save grades + if (files.grades) { + const applicationType = + application.type === ApplicationType.BSC + ? 'bscApplication' + : 'mscApplication'; + gradesFileId = await storage.insertFile( + `Grades_${fileName}`, + files.grades[0].buffer, + applicationsFolder, + ); + application[applicationType].grades = gradesFileId; + } + return await this.applicationRepository.save( + flattenApplication(application), + ); + } catch (err) { + console.log('Error caught: ', err); + // Delete files from Google Drive + if (cvFileId) await storage.deleteItem(cvFileId); + if (gradesFileId) await storage.deleteItem(gradesFileId); + throw new InternalServerErrorException(); + } + } + + async updateApplication(application: Application): Promise { + return await this.applicationRepository.save( + flattenApplication(application), + ); + } +} diff --git a/api/src/application/create-application.dto.ts b/api/src/application/create-application.dto.ts new file mode 100644 index 0000000..ab6a210 --- /dev/null +++ b/api/src/application/create-application.dto.ts @@ -0,0 +1,118 @@ +import { + Application, + ApplicationState, + ApplicationType, + LangLevel, +} from '@hkrecruitment/shared'; +import { ApiProperty } from '@nestjs/swagger'; +import { + BscApplication, + MscApplication, + PhdApplication, +} from './application.entity'; + +class CreateBscApplicationDto extends BscApplication { + @ApiProperty() + bscStudyPath: string; + + @ApiProperty() + bscAcademicYear: number; + + @ApiProperty() + bscGradesAvg: number; + + @ApiProperty() + cfu: number; + + @ApiProperty({ type: 'string', format: 'binary' }) + grades: any; +} + +class CreateMscApplicationDto extends MscApplication { + @ApiProperty({ required: false }) + bscStudyPath: string; + + @ApiProperty({ required: false }) + bscGradesAvg: number; + + @ApiProperty() + mscAcademicYear: number; + + @ApiProperty() + mscStudyPath: string; + + @ApiProperty() + mscGradesAvg: number; + + @ApiProperty() + cfu: number; + + @ApiProperty({ type: 'string', format: 'binary' }) + grades: any; +} + +class CreatePhdApplicationDto extends PhdApplication { + @ApiProperty() + mscStudyPath: string; + + @ApiProperty() + phdDescription: string; +} + +export class CreateApplicationDto implements Partial { + @ApiProperty({ enum: ApplicationType }) + type: ApplicationType; + + @ApiProperty({ required: false }) + notes?: string; + + @ApiProperty({ type: 'string', format: 'binary' }) + cv: any; + + @ApiProperty({ enum: LangLevel }) + itaLevel: LangLevel; + + // @ApiProperty() + // availability: TimeSlot; + + @ApiProperty({ required: false }) + bscApplication?: CreateBscApplicationDto; + + @ApiProperty({ required: false }) + mscApplication?: CreateMscApplicationDto; + + @ApiProperty({ required: false }) + phdApplication?: CreatePhdApplicationDto; + + /* Internal fields */ + + state?: ApplicationState; + + submission?: Date; + + lastModified?: Date; + + applicantId?: string; +} + +export function flattenApplication( + application: CreateApplicationDto, +): Application { + const newApplication: Application = { + ...application, + ...application.bscApplication, + ...application.mscApplication, + ...application.phdApplication, + }; + delete newApplication.bscApplication; + delete newApplication.mscApplication; + delete newApplication.phdApplication; + switch (newApplication.type) { + case ApplicationType.BSC: + return newApplication as BscApplication; + case ApplicationType.MSC: + return newApplication as MscApplication; + case ApplicationType.PHD: + return newApplication as PhdApplication; + } +} diff --git a/api/src/application/update-application.dto.ts b/api/src/application/update-application.dto.ts new file mode 100644 index 0000000..a2d459f --- /dev/null +++ b/api/src/application/update-application.dto.ts @@ -0,0 +1,21 @@ +import { Application, ApplicationState } from '@hkrecruitment/shared'; +import { ApiProperty } from '@nestjs/swagger'; + +class CustomMessage { + subject: string; + body: string; +} + +export class UpdateApplicationDto implements Partial { + @ApiProperty({ required: false }) + state?: ApplicationState; + + @ApiProperty({ required: false }) + notes?: string; + + // @ApiProperty({ required: false }) + // customMessage?: CustomMessage; + + // @ApiProperty({ required: false }) + // additionalText?: string; +} diff --git a/api/src/authorization/authorization.guard.ts b/api/src/authorization/authorization.guard.ts index f5a6dc4..0eecac5 100644 --- a/api/src/authorization/authorization.guard.ts +++ b/api/src/authorization/authorization.guard.ts @@ -1,4 +1,4 @@ -import { abilityForUser, getRoleChangeChecker } from '@hkrecruitment/shared'; +import { getRoleChangeChecker } from '@hkrecruitment/shared'; import { CanActivate, ExecutionContext, diff --git a/api/src/google/GAuth/GAuth.ts b/api/src/google/GAuth/GAuth.ts new file mode 100644 index 0000000..3d6ddf7 --- /dev/null +++ b/api/src/google/GAuth/GAuth.ts @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2021 Riccardo Zaccone + * + * This file is part of api. + * api is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * api is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with api. If not, see . + */ + +/* + * File: GAuth.ts + * Project: api + * Authors: + * Riccardo Zaccone + * + * Created on 23 aprile 2021, 10:35 + */ + +import { OAuth2Client } from 'google-auth-library'; + +const fsp = require('fs').promises; +const readline = require('readline'); +const { google } = require('googleapis'); + +// If modifying these scopes, delete token.json. +const SCOPES = [ + 'https://www.googleapis.com/auth/gmail.send', + 'https://www.googleapis.com/auth/calendar', + 'https://www.googleapis.com/auth/drive', +]; + +// The file token.json stores the user's access and refresh tokens, and is +// created automatically when the authorization flow completes for the first +// time. +const TOKEN_PATH = './src/google/GAuth/authInfo/token.json'; +const CREDENTIALS_PATH = './src/google/GAuth/authInfo/credentials.json'; + +let googleClient: OAuth2Client | null = null; + +export function getAuth(): Promise { + return new Promise((resolve, reject) => { + if (googleClient == null) { + authorize() + .then((client: OAuth2Client) => { + googleClient = client; + resolve(googleClient); + }) + .catch((err) => reject(err)); + } else resolve(googleClient); + }); +} + +function authorize(): Promise { + //read credentials + return new Promise((resolve, reject) => { + fsp + .readFile(CREDENTIALS_PATH) + .then(async (content: string) => { + const credentials = JSON.parse(content); + const { client_secret, client_id, redirect_uris } = + credentials.installed; + + //get an OAuth2Client + const oAuth2Client = new google.auth.OAuth2( + client_id, + client_secret, + redirect_uris[0], + ); + // Check if we have previously stored a token. + fsp + .readFile(TOKEN_PATH) + .then((token: string) => { + oAuth2Client.setCredentials(JSON.parse(token)); + resolve(oAuth2Client); + }) + .catch(() => { + // error on reading the token + getNewToken(oAuth2Client) + .then((client: OAuth2Client) => { + resolve(client); + }) + .catch((err) => { + reject(err); + }); + }); + }) + .catch((err: any) => { + reject(err); + }); //error on reading credentials + }); +} + +/** + * Get and store new token after prompting for user authorization, + * configuring the OAuth2Client received as parameter + * @param {google.auth.OAuth2} oAuth2Client The OAuth2 client to get token for. + * @return {Promise} Promise object containing the configured oAuth2Client + */ +async function getNewToken(oAuth2Client: OAuth2Client): Promise { + const authUrl = oAuth2Client.generateAuthUrl({ + access_type: 'offline', + scope: SCOPES, + }); + console.log('Authorize this app by visiting this url:', authUrl); + const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout, + }); + rl.question('Enter the code from that page here: '); + const it = rl[Symbol.asyncIterator](); + const line = await it.next(); + const code = line.value; + rl.close(); + return new Promise((resolve, reject) => { + oAuth2Client.getToken(code, (err, token) => { + if (err || !token) reject('Error retrieving access token: ' + err); + else { + oAuth2Client.setCredentials(token); + // Store the token to disk for later program executions + fsp + .writeFile(TOKEN_PATH, JSON.stringify(token)) + .then(() => resolve(oAuth2Client)) + .catch((err: any) => reject(err)); + } + }); + }); +} diff --git a/api/src/google/GDrive/FileStorageInterface.ts b/api/src/google/GDrive/FileStorageInterface.ts new file mode 100644 index 0000000..e7327a3 --- /dev/null +++ b/api/src/google/GDrive/FileStorageInterface.ts @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2021 Riccardo Zaccone + * + * This file is part of api. + * api is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * api is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with api. If not, see . + */ + +/* + * File: FileStorageInterface.ts + * Project: api + * Authors: + * Riccardo Zaccone + * + * Created on 19 aprile 2021, 10:58 + */ + +/** + * Represent a file storage service + * @interface + */ +export interface FileStorageInterface { + /** + * Creates a folder + * @param name the name to assign to the folder to be created + * @param parent_folder? the id of the parent folder + * @return {Promise} the id of the created folder + */ + createFolder(name: string, parent_folder?: string): Promise; + + /** + * Uploads a file + * @param name the name to assign to the file to be created + * @param rawData the data to upload + * @param parent_folder? the id of the parent folder + * @return {Promise} the id of the created file + */ + insertFile( + name: string, + rawData: Uint8Array, + parent_folder?: string, + ): Promise; + + /** + * Creates a file copying a file from the same service + * @param file_id the id of the file to be copied + * @param name the name to assign to the file to be created + * @param parent_folder? the id of the parent folder + * @return {Promise} the id of the created file + */ + copyFileFromStorage( + file_id: string, + name: string, + parent_folder?: string, + ): Promise; + + /** + * Deletes a file or directory + * @param item_id the id of the file to be deleted + * @return {Promise} the HTTP status code of the response + */ + deleteItem(item_id: string): Promise; + + /** + * Retrieves the id of a folder given its name + * @param name the name of the target folder + * @param parent_folder? the id of the folder to search into + * @return {Promise} the id of the folder + */ + getFolderByName(name: string, parent_folder?: string): Promise; + + /** + * Extracts the id of item (file or folder) from a string + * @param src a string containing the id of the resource + * @return {string} the id of the resource + */ + extractIdFrom(src: string): string; +} diff --git a/api/src/google/GDrive/GDriveStorage.spec.ts b/api/src/google/GDrive/GDriveStorage.spec.ts new file mode 100644 index 0000000..34c132e --- /dev/null +++ b/api/src/google/GDrive/GDriveStorage.spec.ts @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2021 Riccardo Zaccone + * + * This file is part of api. + * api is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * api is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with api. If not, see . + */ + +/* + * File: GDriveStorage.test.ts + * Project: api + * Authors: + * Riccardo Zaccone + * + * Created on 04 maggio 2021, 15:09 + */ + +import { GDriveStorage } from './GDriveStorage'; + +describe.skip('GDriveStorage Test', () => { + const storage = new GDriveStorage(); + const folderName = 'Test Folder (you can safely remove)'; + let folder_id: string; + let file_id: string; + const sharedFileUrl = + 'https://drive.google.com/file/d/12ZGHhDjxYMj-10gPnmAHFGQpZejMZOfC/view?usp=share_link'; + const sharedFileId = '12ZGHhDjxYMj-10gPnmAHFGQpZejMZOfC'; + let copied_file_id: string; + + describe('Resource creation', () => { + it('createFolder', () => { + return storage.createFolder(folderName).then((id) => { + folder_id = id; + expect(id).toBeDefined(); + }); + }); + + it('insertFile', () => { + return storage + .insertFile('Test File (you can safely remove)', new Uint8Array([42])) + .then((id) => { + file_id = id; + expect(id).toBeDefined(); + }); + }); + + it('copyFileFromStorage', () => { + return storage + .copyFileFromStorage( + sharedFileId, + 'Test Shared File (you can safely remove)', + ) + .then((id) => { + copied_file_id = id; + expect(id).toBeDefined(); + }); + }); + + it('getFolderByName', () => { + return expect(storage.getFolderByName(folderName)).resolves.toBe( + folder_id, + ); + }); + + it('fromUrlToId', () => { + expect(storage.extractIdFrom(sharedFileUrl)).toBe(sharedFileId); + }); + + describe('Resource creation inside folder', () => { + let file_id2: string; + let folder_id2: string; + + it('createFolder', () => { + return storage.createFolder(folderName, folder_id).then((id) => { + folder_id2 = id; + expect(id).toBeDefined(); + }); + }); + + it('insertFile', () => { + return storage + .insertFile( + 'Test File (you can safely remove)', + new Uint8Array([42]), + folder_id, + ) + .then((id) => { + file_id2 = id; + expect(id).toBeDefined(); + }); + }); + + it('Multiple folders with same name inside same folder forbidden', () => { + return expect(storage.createFolder(folderName)).rejects.toMatch( + 'Multiple folders with same name inside the same folder', + ); + }); + + describe('Resource deletion', () => { + it('deleteFile', () => { + //clean all the things done + expect(storage.deleteItem(file_id)).resolves.toBe(204); + expect(storage.deleteItem(file_id2)).resolves.toBe(204); + expect(storage.deleteItem(copied_file_id)).resolves.toBe(204); + expect(storage.deleteItem(folder_id2)).resolves.toBe(204); + return expect(storage.deleteItem(folder_id)).resolves.toBe(204); + }); + }); + }); + }); +}); diff --git a/api/src/google/GDrive/GDriveStorage.ts b/api/src/google/GDrive/GDriveStorage.ts new file mode 100644 index 0000000..fc95e28 --- /dev/null +++ b/api/src/google/GDrive/GDriveStorage.ts @@ -0,0 +1,192 @@ +/* + * Copyright (c) 2021 Riccardo Zaccone + * + * This file is part of api. + * api is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * api is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with api. If not, see . + */ + +/* + * File: GDriveStorage.ts + * Project: api + * Authors: + * Riccardo Zaccone + * + * Created on 19 aprile 2021, 11:21 + */ + +import { FileStorageInterface } from './FileStorageInterface'; +import { getAuth } from '../GAuth/GAuth'; +import { google } from 'googleapis'; +import { OAuth2Client } from 'google-auth-library'; +import { Readable } from 'stream'; + +/** + * @class GDriveStorage implements a storage service using Google Drive + * @inheritDoc + * @implements FileStorageInterface + */ +export class GDriveStorage implements FileStorageInterface { + copyFileFromStorage( + file_id: string, + name: string, + parent_folder?: string, + ): Promise { + return new Promise((resolve, reject) => { + getAuth() + .then((auth: OAuth2Client) => { + const drive = google.drive({ version: 'v3', auth }); + // @ts-ignore + drive.files + .copy({ + fileId: file_id, + resource: { + parents: parent_folder ? [parent_folder] : undefined, + name: name, + }, + supportsAllDrives: true, + fields: 'id', + }) + .then( + ( + file, // @ts-ignore + ) => resolve(file.data.id), + ) + .catch((err) => reject(err)); + }) + .catch((err) => reject(err)); + }); + } + + createFolder(name: string, parent_folder?: string): Promise { + return new Promise((resolve, reject) => { + getAuth() + .then((auth: OAuth2Client) => { + const fileMetadata = { + name: name, + mimeType: 'application/vnd.google-apps.folder', + parents: parent_folder ? [parent_folder] : undefined, + }; + this.getFolderByName(name, parent_folder) + .then((folder_id) => { + if (folder_id) resolve(folder_id); + else { + const drive = google.drive({ version: 'v3', auth }); + drive.files + .create({ + // @ts-ignore + resource: fileMetadata, + fields: 'id', + }) + .then( + ( + file, // @ts-ignore + ) => resolve(file.data.id), + ) + .catch((err) => reject(err)); + } + }) + .catch((err) => reject(err)); + }) + .catch((err) => reject(err)); + }); + } + + deleteItem(item_id: string): Promise { + return new Promise((resolve, reject) => { + getAuth() + .then((auth: OAuth2Client) => { + const drive = google.drive({ version: 'v3', auth }); + drive.files + .delete({ + fileId: item_id, // @ts-ignore + }) + .then((res) => resolve(res.status)) + .catch((err) => reject(err)); + }) + .catch((err) => reject(err)); + }); + } + + insertFile( + name: string, + rawData: Uint8Array, + parent_folder?: string, + ): Promise { + return new Promise((resolve, reject) => { + getAuth() + .then((auth: OAuth2Client) => { + const drive = google.drive({ version: 'v3', auth }); + const fileMetadata = { + name: name, + parents: parent_folder ? [parent_folder] : undefined, + }; + const stream = new Readable(); + stream.push(rawData); + stream.push(null); + const media = { + mimeType: 'application/pdf', + body: stream, + }; + drive.files + .create({ + // @ts-ignore + resource: fileMetadata, + media: media, + fields: 'id', + }) + .then( + ( + file, // @ts-ignore + ) => resolve(file.data.id), + ) + .catch((err) => reject(err)); + }) + .catch((err) => reject(err)); + }); + } + + getFolderByName(name: string, parent_folder?: string): Promise { + return new Promise((resolve, reject) => { + getAuth().then((auth: OAuth2Client) => { + const drive = google.drive({ version: 'v3', auth }); + const inParent = parent_folder + ? ` and '${parent_folder}' in parents` + : ''; + drive.files + .list({ + q: + `mimeType ='application/vnd.google-apps.folder' and name='${name}'` + + inParent, + fields: 'files(id, name)', + }) + .then((res) => { + if (res.data.files.length === 1) resolve(res.data.files.pop().id); + else if (res.data.files.length === 0) + resolve(null); //directory not present + else + reject('Multiple folders with same name inside the same folder'); + }) + .catch((err) => reject(err)); + }); + }); + } + /** + * Extracts the id of item (file or folder) from the sharing url + * @param src the url of the resource + * @return {string} the id of the resource + */ + extractIdFrom(src: string): string { + return src.match(/[-\w]{25,}/)[0]; + } +} diff --git a/api/src/main.ts b/api/src/main.ts index 2e05af0..f5a4394 100644 --- a/api/src/main.ts +++ b/api/src/main.ts @@ -6,7 +6,9 @@ dotenv.config({ path: '.env' }); async function bootstrap() { const app = await NestFactory.create(AppModule); + app.enableCors(); + app.setGlobalPrefix('v1'); const config = new DocumentBuilder() .setTitle('HKRecruitment API') diff --git a/api/src/mocks/data.ts b/api/src/mocks/data.ts new file mode 100644 index 0000000..f31aa3e --- /dev/null +++ b/api/src/mocks/data.ts @@ -0,0 +1,158 @@ +import { CreateApplicationDto } from 'src/application/create-application.dto'; +import { + ApplicationType, + ApplicationState, + LangLevel, + Role, +} from '@hkrecruitment/shared'; +import { + BscApplication, + MscApplication, + PhdApplication, +} from 'src/application/application.entity'; +import { UpdateApplicationDto } from 'src/application/update-application.dto'; + +export const testDate = new Date(2023, 0, 1); +export const testDateTimeStart = new Date(2023, 0, 1, 10, 30, 0); +export const testDateTime10Minutes = new Date(2023, 0, 1, 10, 40, 0); +export const testDateTime3Hours = new Date(2023, 0, 1, 13, 30, 0); +export const testDateTimeEnd = new Date(2023, 0, 1, 11, 30, 0); + +export const mockTimeSlot = { + start: testDateTimeStart, + end: testDateTimeEnd, + id: 1, +}; + +export const baseFile = { + encoding: '7bit', + mimetype: 'application/pdf', + buffer: Buffer.from(''), + size: 0, + stream: undefined, + destination: undefined, + path: '', +}; + +const cvFile = { + ...baseFile, + fieldname: 'cv', + originalname: 'cv', + filename: 'cv', +}; + +const gradesFile = { + ...baseFile, + fieldname: 'grades', + originalname: 'grades', + filename: 'grades', +}; + +export const mockBscApplication = { + type: ApplicationType.BSC, + id: 1, + state: ApplicationState.New, + notes: 'Notes', + itaLevel: LangLevel.NativeSpeaker, + bscStudyPath: 'Computer Engineering', + bscAcademicYear: 1, + bscGradesAvg: 25.8, + cfu: 50, +} as BscApplication; + +export const mockMscApplication = { + type: ApplicationType.MSC, + id: 1, + state: ApplicationState.New, + notes: 'Notes', + itaLevel: LangLevel.B2, + mscStudyPath: 'Medical Engineering', + mscAcademicYear: 1, + mscGradesAvg: 25.8, +} as MscApplication; + +export const mockPhdApplication = { + type: ApplicationType.PHD, + id: 1, + state: ApplicationState.New, + notes: 'Notes', + itaLevel: LangLevel.C1, + phdDescription: 'PHD Description', +} as PhdApplication; + +export const mockCreateBscApplicationDTO = { + type: ApplicationType.BSC, + itaLevel: mockBscApplication.itaLevel, + cv: cvFile, + notes: 'Nothing to add', + bscApplication: { + bscStudyPath: mockBscApplication.bscStudyPath, + bscAcademicYear: mockBscApplication.bscAcademicYear, + bscGradesAvg: mockBscApplication.bscGradesAvg, + cfu: mockBscApplication.cfu, + grades: gradesFile, + }, +} as CreateApplicationDto; + +export const mockCreateMscApplicationDTO = { + type: ApplicationType.MSC, + itaLevel: mockMscApplication.itaLevel, + cv: cvFile, + mscApplication: { + mscStudyPath: mockMscApplication.mscStudyPath, + mscAcademicYear: mockMscApplication.mscAcademicYear, + mscGradesAvg: mockMscApplication.mscGradesAvg, + cfu: mockBscApplication.cfu, + bscStudyPath: mockBscApplication.bscStudyPath, + bscGradesAvg: mockBscApplication.bscGradesAvg, + grades: gradesFile, + }, +} as CreateApplicationDto; + +export const mockCreatePhdApplicationDTO = { + type: ApplicationType.PHD, + cv: cvFile, + itaLevel: mockPhdApplication.itaLevel, + phdApplication: { + mscStudyPath: mockMscApplication.mscStudyPath, + phdDescription: mockPhdApplication.phdDescription, + }, +} as CreateApplicationDto; + +export const updateApplicationDTO = { + notes: 'Notes', + state: ApplicationState.Accepted, +} as UpdateApplicationDto; + +export const applicant = { + firstName: 'John', + lastName: 'Doe', + oauthId: '123', + sex: 'male', + email: 'email@example.com', + role: Role.Applicant, +}; + +export const applicationFiles = { + cv: [ + { + ...baseFile, + fieldname: 'cv', + originalname: 'cv', + filename: 'cv', + }, + ], + grades: [ + { + ...baseFile, + fieldname: 'grades', + originalname: 'grades', + filename: 'grades', + }, + ], +}; + +export const applicantId = 'abc123'; +export const folderId = 'folder_abc123'; +export const fileId = 'file_abc123'; +export const today = '1/1/2023, 24:00:00'; diff --git a/api/src/mocks/repositories.ts b/api/src/mocks/repositories.ts new file mode 100644 index 0000000..e418727 --- /dev/null +++ b/api/src/mocks/repositories.ts @@ -0,0 +1,6 @@ +export const mockedRepository = { + find: jest.fn(), + findBy: jest.fn(), + remove: jest.fn(), + save: jest.fn(), +}; diff --git a/api/src/mocks/services.ts b/api/src/mocks/services.ts new file mode 100644 index 0000000..6d7d17c --- /dev/null +++ b/api/src/mocks/services.ts @@ -0,0 +1,3 @@ +export const mockedUsersService = { + findByOauthId: jest.fn(), +}; diff --git a/api/src/timer/timer.interceptor.ts b/api/src/timer/timer.interceptor.ts new file mode 100644 index 0000000..0b6752c --- /dev/null +++ b/api/src/timer/timer.interceptor.ts @@ -0,0 +1,26 @@ +import { + CallHandler, + ExecutionContext, + Injectable, + Logger, + NestInterceptor, +} from '@nestjs/common'; +import { catchError, Observable, tap } from 'rxjs'; + +@Injectable() +export class TimerInterceptor implements NestInterceptor { + private readonly logger = new Logger(TimerInterceptor.name); + + intercept(context: ExecutionContext, next: CallHandler): Observable { + const startTimer = Date.now(); + const logTimer = () => + this.logger.log(`Request took ${Date.now() - startTimer}ms`); + return next.handle().pipe( + tap(logTimer), + catchError((error: Error) => { + logTimer(); + throw error; + }), + ); + } +} diff --git a/api/src/timeslots/create-timeslot.dto.ts b/api/src/timeslots/create-timeslot.dto.ts new file mode 100644 index 0000000..2b9aaea --- /dev/null +++ b/api/src/timeslots/create-timeslot.dto.ts @@ -0,0 +1,10 @@ +import { TimeSlot } from '@hkrecruitment/shared'; +import { ApiProperty } from '@nestjs/swagger'; + +export class CreateTimeSlotDto implements TimeSlot { + @ApiProperty() + start: Date; + + @ApiProperty() + end: Date; +} diff --git a/api/src/timeslots/timeslot.entity.ts b/api/src/timeslots/timeslot.entity.ts new file mode 100644 index 0000000..959f85f --- /dev/null +++ b/api/src/timeslots/timeslot.entity.ts @@ -0,0 +1,14 @@ +import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; +import { TimeSlot as TimeSlotInterface } from '@hkrecruitment/shared'; + +@Entity() +export class TimeSlot implements TimeSlotInterface { + @PrimaryGeneratedColumn('increment') + id: number; + + @Column() + start: Date; + + @Column() + end: Date; +} diff --git a/api/src/timeslots/timeslots.controller.spec.ts b/api/src/timeslots/timeslots.controller.spec.ts new file mode 100644 index 0000000..0c2d34b --- /dev/null +++ b/api/src/timeslots/timeslots.controller.spec.ts @@ -0,0 +1,104 @@ +import { TestBed } from '@automock/jest'; +import { + mockTimeSlot, + testDate, + testDateTimeEnd, + testDateTimeStart, +} from '@mocks/data'; +import { TimeSlotsController } from './timeslots.controller'; +import { TimeSlotsService } from './timeslots.service'; +import { testDateTime10Minutes } from '@mocks/data'; +import { testDateTime3Hours } from '@mocks/data'; + +describe('TimeSlotController', () => { + let controller: TimeSlotsController; + let service: TimeSlotsService; + + /************* Test setup ************/ + + beforeEach(async () => { + const { unit, unitRef } = TestBed.create(TimeSlotsController).compile(); + controller = unit; + service = unitRef.get(TimeSlotsService); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + expect(service).toBeDefined(); + }); + + // Create a time slot + describe('createTimeSlot', () => { + it('should allow creating a valid time slot', async () => { + const timeSlot = { + start: mockTimeSlot.start, + end: mockTimeSlot.end, + }; + + jest.spyOn(service, 'countOverlappingTimeSlots').mockResolvedValue(0); + jest.spyOn(service, 'createTimeSlot').mockResolvedValue(mockTimeSlot); + + const result = await controller.createTimeSlot(timeSlot); + + expect(result).toEqual(mockTimeSlot); + }); + + it('should throw an error if the duration is less than 30 minutes', async () => { + const timeSlot = { + start: testDateTimeStart, + end: testDateTime10Minutes, + }; + + await expect(controller.createTimeSlot(timeSlot)).rejects.toThrow( + 'The duration of the time slot must be at least 30 minutes', + ); + }); + + it('should throw an error if the duration is more than 60 minutes', async () => { + const timeSlot = { + start: testDateTimeStart, + end: testDateTime3Hours, + }; + + await expect(controller.createTimeSlot(timeSlot)).rejects.toThrow( + 'The duration of the time slot must be at most 60 minutes', + ); + }); + + it('should throw an error if the time slot overlaps with an existing time slot', async () => { + const timeSlot = { + start: testDateTimeStart, + end: testDateTimeEnd, + }; + + jest.spyOn(service, 'countOverlappingTimeSlots').mockResolvedValue(1); + + await expect(controller.createTimeSlot(timeSlot)).rejects.toThrow( + 'The time slot overlaps with existing time slots', + ); + }); + }); + + describe('deleteTimeSlot', () => { + it('should allow deleting an existing time slot', async () => { + jest.spyOn(service, 'findById').mockResolvedValue(mockTimeSlot); + jest.spyOn(service, 'deleteTimeSlot').mockResolvedValue(mockTimeSlot); + + await expect(controller.deleteTimeSlot(mockTimeSlot.id)).resolves.toEqual( + mockTimeSlot, + ); + expect(service.deleteTimeSlot).toHaveBeenCalledWith(mockTimeSlot); + expect(service.deleteTimeSlot).toHaveBeenCalledTimes(1); + }); + + it('should throw an error if the time slot does not exist', async () => { + jest.spyOn(service, 'findById').mockResolvedValue(null); + jest.spyOn(service, 'deleteTimeSlot').mockResolvedValue(mockTimeSlot); + + await expect( + controller.deleteTimeSlot(mockTimeSlot.id), + ).rejects.toThrowError('Time slot not found'); + expect(service.deleteTimeSlot).toHaveBeenCalledTimes(0); + }); + }); +}); diff --git a/api/src/timeslots/timeslots.controller.ts b/api/src/timeslots/timeslots.controller.ts new file mode 100644 index 0000000..3202071 --- /dev/null +++ b/api/src/timeslots/timeslots.controller.ts @@ -0,0 +1,91 @@ +import { + Body, + Controller, + BadRequestException, + NotFoundException, + ConflictException, + Param, + Post, + Delete, +} from '@nestjs/common'; +import { TimeSlotsService } from './timeslots.service'; +import { Action, createTimeSlotSchema, TimeSlot } from '@hkrecruitment/shared'; +import { JoiValidate } from '../joi-validation/joi-validate.decorator'; +import { + ApiBadRequestResponse, + ApiBearerAuth, + ApiForbiddenResponse, + ApiNotFoundResponse, + ApiCreatedResponse, + ApiOkResponse, + ApiTags, + ApiConflictResponse, + ApiNoContentResponse, +} from '@nestjs/swagger'; +import { CheckPolicies } from 'src/authorization/check-policies.decorator'; +import { CreateTimeSlotDto } from './create-timeslot.dto'; +import * as Joi from 'joi'; + +@ApiBearerAuth() +@ApiTags('timeslots') +@Controller('timeslots') +export class TimeSlotsController { + constructor(private readonly timeSlotsService: TimeSlotsService) {} + + @ApiBadRequestResponse() + @ApiForbiddenResponse() + @ApiConflictResponse({ + description: 'The time slot overlaps with existing time slots', + }) + @ApiCreatedResponse() + @JoiValidate({ + body: createTimeSlotSchema, + }) + @CheckPolicies((ability) => ability.can(Action.Create, 'TimeSlot')) + @Post() + async createTimeSlot(@Body() timeSlot: CreateTimeSlotDto): Promise { + const startDate = new Date(timeSlot.start); + const endDate = new Date(timeSlot.end); + + // Check duration + const durationInMinutes = + (endDate.getTime() - startDate.getTime()) / (1000 * 60); + if (durationInMinutes < 30) { + throw new BadRequestException( + 'The duration of the time slot must be at least 30 minutes', + ); + } else if (durationInMinutes > 60) { + throw new BadRequestException( + 'The duration of the time slot must be at most 60 minutes', + ); + } + + // Check overlapping timeslots + const overlappingTimeSlots = + await this.timeSlotsService.countOverlappingTimeSlots(startDate, endDate); + if (overlappingTimeSlots > 0) + throw new ConflictException( + 'The time slot overlaps with existing time slots', + ); + + return await this.timeSlotsService.createTimeSlot(timeSlot); + } + + @ApiBadRequestResponse() + @ApiForbiddenResponse() + @ApiNotFoundResponse() + @ApiOkResponse() + @ApiNoContentResponse() + @CheckPolicies((ability) => ability.can(Action.Delete, 'TimeSlot')) + @Delete('/:time_slot_id') + @JoiValidate({ + param: Joi.number().positive().integer().required().label('time_slot_id'), + }) + async deleteTimeSlot( + @Param('time_slot_id') timeSlotId: number, + ): Promise { + const timeSlot = await this.timeSlotsService.findById(timeSlotId); + if (!timeSlot) throw new NotFoundException('Time slot not found'); + return await this.timeSlotsService.deleteTimeSlot(timeSlot); + } +} diff --git a/api/src/timeslots/timeslots.module.ts b/api/src/timeslots/timeslots.module.ts new file mode 100644 index 0000000..15299da --- /dev/null +++ b/api/src/timeslots/timeslots.module.ts @@ -0,0 +1,14 @@ +import { Module } from '@nestjs/common'; +import { TimeSlotsService } from './timeslots.service'; +import { TimeSlotsController } from './timeslots.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { TimeSlot } from './timeslot.entity'; +import { UsersModule } from 'src/users/users.module'; + +@Module({ + imports: [TypeOrmModule.forFeature([TimeSlot]), UsersModule], + providers: [TimeSlotsService], + controllers: [TimeSlotsController], + exports: [TimeSlotsService], +}) +export class TimeSlotsModule {} diff --git a/api/src/timeslots/timeslots.service.spec.ts b/api/src/timeslots/timeslots.service.spec.ts new file mode 100644 index 0000000..fde00f1 --- /dev/null +++ b/api/src/timeslots/timeslots.service.spec.ts @@ -0,0 +1,76 @@ +import { mockTimeSlot, testDate } from '@mocks/data'; +import { mockedRepository } from '@mocks/repositories'; +import { TestingModule, Test } from '@nestjs/testing'; +import { getRepositoryToken } from '@nestjs/typeorm'; +import { TimeSlot } from './timeslot.entity'; +import { TimeSlotsService } from './timeslots.service'; + +describe('TimeSlotsService', () => { + let timeSlotService: TimeSlotsService; + + /************* Test setup ************/ + + beforeAll(() => { + jest + .spyOn(global, 'Date') + .mockImplementation(() => testDate as unknown as string); + }); + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [ + TimeSlotsService, + { + provide: getRepositoryToken(TimeSlot), + useValue: mockedRepository, + }, + ], + }).compile(); + + timeSlotService = module.get(TimeSlotsService); + }); + + afterEach(() => jest.clearAllMocks()); + + /*************** Tests ***************/ + + it('should be defined', () => { + expect(timeSlotService).toBeDefined(); + }); + + describe('deleteTimeSlot', () => { + it('should remove the specified timeslot from the database', async () => { + jest.spyOn(mockedRepository, 'remove').mockResolvedValue(mockTimeSlot); + const result = await timeSlotService.deleteTimeSlot(mockTimeSlot); + expect(result).toEqual(mockTimeSlot); + expect(mockedRepository.remove).toHaveBeenCalledTimes(1); + }); + }); + + describe('listTimeSlots', () => { + it('should return all timeslots', async () => { + jest.spyOn(mockedRepository, 'find').mockResolvedValue([mockTimeSlot]); + const result = await timeSlotService.listTimeSlots(); + expect(result).toEqual([mockTimeSlot]); + expect(mockedRepository.find).toHaveBeenCalledTimes(1); + }); + }); + + describe('findById', () => { + it('should return the timeslot with the specified id', async () => { + jest.spyOn(mockedRepository, 'findBy').mockResolvedValue([mockTimeSlot]); + const result = await timeSlotService.findById(mockTimeSlot.id); + expect(result).toEqual(mockTimeSlot); + expect(mockedRepository.findBy).toHaveBeenCalledTimes(1); + }); + }); + + describe('createTimeSlot', () => { + it('should create a new timeslot', async () => { + jest.spyOn(mockedRepository, 'save').mockResolvedValue(mockTimeSlot); + const result = await timeSlotService.createTimeSlot(mockTimeSlot); + expect(result).toEqual(mockTimeSlot); + expect(mockedRepository.save).toHaveBeenCalledTimes(1); + }); + }); +}); diff --git a/api/src/timeslots/timeslots.service.ts b/api/src/timeslots/timeslots.service.ts new file mode 100644 index 0000000..ec5e1b9 --- /dev/null +++ b/api/src/timeslots/timeslots.service.ts @@ -0,0 +1,54 @@ +import { Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository, LessThan, MoreThan } from 'typeorm'; +import { TimeSlot } from './timeslot.entity'; +import { CreateTimeSlotDto } from './create-timeslot.dto'; + +@Injectable() +export class TimeSlotsService { + constructor( + @InjectRepository(TimeSlot) + private readonly timeSlotRepository: Repository, + ) {} + + async countOverlappingTimeSlots( + startDate: Date, + endDate: Date, + ): Promise { + const count = await this.timeSlotRepository.count({ + where: [ + { + // start < startDate && end > startDate + start: LessThan(startDate), + end: MoreThan(startDate), + }, + // OR + { + // start < endDate || end > endDate + start: LessThan(endDate), + end: MoreThan(endDate), + }, + ], + }); + return count; + } + + async listTimeSlots(): Promise { + return await this.timeSlotRepository.find(); + } + + async deleteTimeSlot(timeSlot: TimeSlot): Promise { + return await this.timeSlotRepository.remove(timeSlot); + } + + async findById(timeSlotId: number): Promise { + const matches = await this.timeSlotRepository.findBy({ + id: timeSlotId, + }); + return matches.length > 0 ? matches[0] : null; + } + + async createTimeSlot(timeSlot: CreateTimeSlotDto): Promise { + return await this.timeSlotRepository.save(timeSlot); + } +} diff --git a/api/tsconfig.json b/api/tsconfig.json index e1dda04..2f8cc3c 100644 --- a/api/tsconfig.json +++ b/api/tsconfig.json @@ -1,10 +1,10 @@ { - "compilerOptions": { - "module": "commonjs", + "compilerOptions": { + "module": "commonjs", "declaration": true, "removeComments": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, "allowSyntheticDefaultImports": true, "target": "es2017", "sourceMap": true, @@ -18,8 +18,15 @@ "forceConsistentCasingInFileNames": false, "noFallthroughCasesInSwitch": false, "paths": { - "@hkrecruitment/shared": ["../shared/src"], - "@hkrecruitment/shared/*": ["../shared/src/*"] + "@hkrecruitment/shared": [ + "../shared/src" + ], + "@hkrecruitment/shared/*": [ + "../shared/src/*" + ], + "@mocks/*": [ + "src/mocks/*" + ], } - } + } } \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f0377c6 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,9 @@ +services: + db: + image: postgres:latest + environment: + - POSTGRES_USER=hkrecruitment + - POSTGRES_PASSWORD=password + - POSTGRES_DB=hkrecruitment + ports: + - '5432:5432' diff --git a/documentation/.gitignore b/documentation/.gitignore new file mode 100644 index 0000000..5c60607 --- /dev/null +++ b/documentation/.gitignore @@ -0,0 +1,8 @@ +*.toc +*.aux +*.log +*.out +*.gz +*.pdf +*.fls +*.fdb_latexmk \ No newline at end of file diff --git a/documentation/COPYING b/documentation/COPYING new file mode 100644 index 0000000..8602804 --- /dev/null +++ b/documentation/COPYING @@ -0,0 +1,422 @@ + + GNU Free Documentation License + Version 1.3, 3 November 2008 + + + Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +0. PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +functional and useful document "free" in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. + +This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +1. APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The "Document", below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as "you". You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. + +A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall +subject (or to related matters) and contains nothing that could fall +directly within that overall subject. (Thus, if the Document is in +part a textbook of mathematics, a Secondary Section may not explain +any mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. + +The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. + +A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not "Transparent" is called "Opaque". + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML, PostScript or PDF designed for human modification. Examples of +transparent image formats include PNG, XCF and JPG. Opaque formats +include proprietary formats that can be read and edited only by +proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML, PostScript or PDF produced by some word +processors for output purposes only. + +The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + +The "publisher" means any person or entity that distributes copies of +the Document to the public. + +A section "Entitled XYZ" means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as "Acknowledgements", +"Dedications", "Endorsements", or "History".) To "Preserve the Title" +of such a section when you modify the Document means that it remains a +section "Entitled XYZ" according to this definition. + +The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. + +2. VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no +other conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +3. COPYING IN QUANTITY + +If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document's license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this Transparent copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to +give them a chance to provide you with an updated version of the +Document. + + +4. MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. +D. Preserve all the copyright notices of the Document. +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +H. Include an unaltered copy of this License. +I. Preserve the section Entitled "History", Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section Entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the section all + the substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. +N. Do not retitle any existing section to be Entitled "Endorsements" + or to conflict in title with any Invariant Section. +O. Preserve any Warranty Disclaimers. + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section Entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +5. COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice, and that you preserve all their Warranty Disclaimers. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections Entitled "History" +in the various original documents, forming one section Entitled +"History"; likewise combine any sections Entitled "Acknowledgements", +and any sections Entitled "Dedications". You must delete all sections +Entitled "Endorsements". + + +6. COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other +documents released under this License, and replace the individual +copies of this License in the various documents with a single copy +that is included in the collection, provided that you follow the rules +of this License for verbatim copying of each of the documents in all +other respects. + +You may extract a single document from such a collection, and +distribute it individually under this License, provided you insert a +copy of this License into the extracted document, and follow this +License in all other respects regarding verbatim copying of that +document. + + +7. AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, is called an "aggregate" if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document's Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. + + +8. TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. + +If a section in the Document is Entitled "Acknowledgements", +"Dedications", or "History", the requirement (section 4) to Preserve +its Title (section 1) will typically require changing the actual +title. + + +9. TERMINATION + +You may not copy, modify, sublicense, or distribute the Document +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense, or distribute it is void, and +will automatically terminate your rights under this License. + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, receipt of a copy of some or all of the same material does +not give you any rights to use it. + + +10. FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions of the +GNU Free Documentation License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in +detail to address new problems or concerns. See +https://www.gnu.org/licenses/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. If the Document +specifies that a proxy can decide which future versions of this +License can be used, that proxy's public statement of acceptance of a +version permanently authorizes you to choose that version for the +Document. + +11. RELICENSING + +"Massive Multiauthor Collaboration Site" (or "MMC Site") means any +World Wide Web server that publishes copyrightable works and also +provides prominent facilities for anybody to edit those works. A +public wiki that anybody can edit is an example of such a server. A +"Massive Multiauthor Collaboration" (or "MMC") contained in the site +means any set of copyrightable works thus published on the MMC site. + +"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 +license published by Creative Commons Corporation, a not-for-profit +corporation with a principal place of business in San Francisco, +California, as well as future copyleft versions of that license +published by that same organization. + +"Incorporate" means to publish or republish a Document, in whole or in +part, as part of another Document. + +An MMC is "eligible for relicensing" if it is licensed under this +License, and if all works that were first published under this License +somewhere other than this MMC, and subsequently incorporated in whole or +in part into the MMC, (1) had no cover texts or invariant sections, and +(2) were thus incorporated prior to November 1, 2008. + +The operator of an MMC Site may republish an MMC contained in the site +under CC-BY-SA on the same site at any time before August 1, 2009, +provided the MMC is eligible for relicensing. + diff --git a/documentation/README.md b/documentation/README.md new file mode 100644 index 0000000..f2f6f9f --- /dev/null +++ b/documentation/README.md @@ -0,0 +1,22 @@ + + +# HKrecruitment - documentation +HKrecruitment is the platform used by HKN Polito to handle +the recruitment process. This branch contains the whole documentation written in LateX +for the React application and the API server. + +## Authors + +* **Riccardo Zaccone** - *API server* - [HKN Polito](https://hknpolito.org/) +* **Arianna Ravera** - *API server* - [HKN Polito](https://hknpolito.org/) +* **Marco Pappalardo** - *React application* - [HKN Polito](https://hknpolito.org/) + + +## License +Copyright (c) 2021 HKN Polito. + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.3 +or any later version published by the Free Software Foundation; +with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. +See the COPYING file for details. diff --git a/documentation/appendix/GNUFreeDocumentationLicense.tex b/documentation/appendix/GNUFreeDocumentationLicense.tex new file mode 100644 index 0000000..bd8675d --- /dev/null +++ b/documentation/appendix/GNUFreeDocumentationLicense.tex @@ -0,0 +1,522 @@ +%\pagenumbering{arabic} + +\hfuzz = .6pt % avoid black boxes + +\chapter{\rlap{GNU Free Documentation License}} +\phantomsection % so hyperref creates bookmarks +\addcontentsline{toc}{chapter}{GNU Free Documentation License} +\label{appendix:GNU} + +\begin{center} + + Version 1.3, 3 November 2008 + + + Copyright \copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. + + \bigskip + + \texttt{} + + \bigskip + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. +\end{center} + + +\begin{center} + {\bf\large Preamble} +\end{center} + +The purpose of this License is to make a manual, textbook, or other +functional and useful document ``free'' in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. + +This License is a kind of ``copyleft'', which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +\begin{center} + {\Large\bf 1. APPLICABILITY AND DEFINITIONS\par} + \phantomsection + \addcontentsline{toc}{section}{1. APPLICABILITY AND DEFINITIONS} +\end{center} + +This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The ``\textbf{Document}'', below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as ``\textbf{you}''. You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. + +A ``\textbf{Modified Version}'' of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A ``\textbf{Secondary Section}'' is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall subject +(or to related matters) and contains nothing that could fall directly +within that overall subject. (Thus, if the Document is in part a +textbook of mathematics, a Secondary Section may not explain any +mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The ``\textbf{Invariant Sections}'' are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. + +The ``\textbf{Cover Texts}'' are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. + +A ``\textbf{Transparent}'' copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not ``Transparent'' is called ``\textbf{Opaque}''. + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML, PostScript or PDF designed for human modification. Examples of +transparent image formats include PNG, XCF and JPG. Opaque formats +include proprietary formats that can be read and edited only by +proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML, PostScript or PDF produced by some word +processors for output purposes only. + +The ``\textbf{Title Page}'' means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, ``Title Page'' means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + +The ``\textbf{publisher}'' means any person or entity that distributes +copies of the Document to the public. + +A section ``\textbf{Entitled XYZ}'' means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as ``\textbf{Acknowledgements}'', +``\textbf{Dedications}'', ``\textbf{Endorsements}'', or ``\textbf{History}''.) +To ``\textbf{Preserve the Title}'' +of such a section when you modify the Document means that it remains a +section ``Entitled XYZ'' according to this definition. + +The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. + + +\begin{center} + {\Large\bf 2. VERBATIM COPYING\par} + \phantomsection + \addcontentsline{toc}{section}{2. VERBATIM COPYING} +\end{center} + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section~3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +\begin{center} + {\Large\bf 3. COPYING IN QUANTITY\par} + \phantomsection + \addcontentsline{toc}{section}{3. COPYING IN QUANTITY} +\end{center} + + +If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document's license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this Transparent copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document. + + +\begin{center} + {\Large\bf 4. MODIFICATIONS\par} + \phantomsection + \addcontentsline{toc}{section}{4. MODIFICATIONS} +\end{center} + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +\begin{itemize} + \item[A.] + Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. + + \item[B.] + List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. + + \item[C.] + State on the Title page the name of the publisher of the + Modified Version, as the publisher. + + \item[D.] + Preserve all the copyright notices of the Document. + + \item[E.] + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + \item[F.] + Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. + + \item[G.] + Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. + + \item[H.] + Include an unaltered copy of this License. + + \item[I.] + Preserve the section Entitled ``History'', Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section Entitled ``History'' in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. + + \item[J.] + Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the ``History'' section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. + + \item[K.] + For any section Entitled ``Acknowledgements'' or ``Dedications'', + Preserve the Title of the section, and preserve in the section all + the substance and tone of each of the contributor acknowledgements + and/or dedications given therein. + + \item[L.] + Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. + + \item[M.] + Delete any section Entitled ``Endorsements''. Such a section + may not be included in the Modified Version. + + \item[N.] + Do not retitle any existing section to be Entitled ``Endorsements'' + or to conflict in title with any Invariant Section. + + \item[O.] + Preserve any Warranty Disclaimers. +\end{itemize} + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section Entitled ``Endorsements'', provided it contains +nothing but endorsements of your Modified Version by various +parties---for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +\begin{center} + {\Large\bf 5. COMBINING DOCUMENTS\par} + \phantomsection + \addcontentsline{toc}{section}{5. COMBINING DOCUMENTS} +\end{center} + + +You may combine the Document with other documents released under this +License, under the terms defined in section~4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice, and that you preserve all their Warranty Disclaimers. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections Entitled ``History'' +in the various original documents, forming one section Entitled +``History''; likewise combine any sections Entitled ``Acknowledgements'', +and any sections Entitled ``Dedications''. You must delete all sections +Entitled ``Endorsements''. + +\begin{center} + {\Large\bf 6. COLLECTIONS OF DOCUMENTS\par} + \phantomsection + \addcontentsline{toc}{section}{6. COLLECTIONS OF DOCUMENTS} +\end{center} + +You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects. + +You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. + + +\begin{center} + {\Large\bf 7. AGGREGATION WITH INDEPENDENT WORKS\par} + \phantomsection + \addcontentsline{toc}{section}{7. AGGREGATION WITH INDEPENDENT WORKS} +\end{center} + + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, is called an ``aggregate'' if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. + +If the Cover Text requirement of section~3 is applicable to these +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document's Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. + + +\begin{center} + {\Large\bf 8. TRANSLATION\par} + \phantomsection + \addcontentsline{toc}{section}{8. TRANSLATION} +\end{center} + + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section~4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. + +If a section in the Document is Entitled ``Acknowledgements'', +``Dedications'', or ``History'', the requirement (section~4) to Preserve +its Title (section~1) will typically require changing the actual +title. + + +\begin{center} + {\Large\bf 9. TERMINATION\par} + \phantomsection + \addcontentsline{toc}{section}{9. TERMINATION} +\end{center} + + +You may not copy, modify, sublicense, or distribute the Document +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense, or distribute it is void, and +will automatically terminate your rights under this License. + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, receipt of a copy of some or all of the same material does +not give you any rights to use it. + + +\begin{center} + {\Large\bf 10. FUTURE REVISIONS OF THIS LICENSE\par} + \phantomsection + \addcontentsline{toc}{section}{10. FUTURE REVISIONS OF THIS LICENSE} +\end{center} + + +The Free Software Foundation may publish new, revised versions +of the GNU Free Documentation License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. See +\texttt{https://www.gnu.org/licenses/}. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License ``or any later version'' applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. If the Document +specifies that a proxy can decide which future versions of this +License can be used, that proxy's public statement of acceptance of a +version permanently authorizes you to choose that version for the +Document. + + +\begin{center} + {\Large\bf 11. RELICENSING\par} + \phantomsection + \addcontentsline{toc}{section}{11. RELICENSING} +\end{center} + + +``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any +World Wide Web server that publishes copyrightable works and also +provides prominent facilities for anybody to edit those works. A +public wiki that anybody can edit is an example of such a server. A +``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the +site means any set of copyrightable works thus published on the MMC +site. + +``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 +license published by Creative Commons Corporation, a not-for-profit +corporation with a principal place of business in San Francisco, +California, as well as future copyleft versions of that license +published by that same organization. + +``Incorporate'' means to publish or republish a Document, in whole or +in part, as part of another Document. + +An MMC is ``eligible for relicensing'' if it is licensed under this +License, and if all works that were first published under this License +somewhere other than this MMC, and subsequently incorporated in whole +or in part into the MMC, (1) had no cover texts or invariant sections, +and (2) were thus incorporated prior to November 1, 2008. + +The operator of an MMC Site may republish an MMC contained in the site +under CC-BY-SA on the same site at any time before August 1, 2009, +provided the MMC is eligible for relicensing. diff --git a/documentation/chapters/objectives.tex b/documentation/chapters/objectives.tex new file mode 100644 index 0000000..56fe1db --- /dev/null +++ b/documentation/chapters/objectives.tex @@ -0,0 +1,10 @@ +%File: obiettivi.tex +%Data creazione: 31/12/2020 +%Data ultima modifica: 31/12/2020 + +\chapter{Project objectives} +\section{Included features} +\section{Process requirements} +\subsection{Validity constraints} +\subsection{Optimality criteria} +\section{Form di apply} diff --git a/documentation/chapters/overview.tex b/documentation/chapters/overview.tex new file mode 100644 index 0000000..50db622 --- /dev/null +++ b/documentation/chapters/overview.tex @@ -0,0 +1,8 @@ +%File: panoramica.tex +%Data creazione: 31/12/2020 +%Data ultima modifica: 31/12/2020 + +\chapter{Overview} +\section{Introduction} +\section{About this document} +\section{Periodic review} \ No newline at end of file diff --git a/documentation/chapters/security.tex b/documentation/chapters/security.tex new file mode 100644 index 0000000..3223e4d --- /dev/null +++ b/documentation/chapters/security.tex @@ -0,0 +1,159 @@ +%File: sicurezza.tex +%Data creazione: 31/12/2020 +%Data ultima modifica: 31/12/2020 + + +\chapter{Security} + +\section{Authentication} +Authentication is \textit{"the process of verifying a claim that a system entity or system resource has a certain attribute value"} (RFC-4949, Internet security glossary). +According the NIST SP800.63B digital authentication model (see Figure \ref{DAM}), an actor who wants to use a system is called an \textit{applicant}: if it possesses an authenticator it can provide it to the \textbf{CSP} (Credential Service Provider), or it can get one. The CSP is that component that will issue or enrol user credential and authenticator and verify and store associated attributes. +When this procedure is completed successfully, the actor becomes a \textit{subscriber}, that is an entity recorded in the authentication system. Later, when the actor wants to use some network service, typically the actor is called a \textit{claimant}, because he claims to be a valid user: generally, an authentication protocol against a \textbf{verifier} is run, who verifies this claim. When this process end with success, the actor become a subscriber with an open authenticated session with the \textbf{relying party}, that will request and receive an authN assertion from the verifier to assess user identity (and attributes). The relying party is the end application server, which requests the actor to be authenticated. The verifier may have a communication with the CSP to validate the binding between the authenticator used in the authentication protocol and the credential claimed. + +These roles may be separate or collapsed together. For the purpose of this project, several options have been considered for managing the authentication. The following subsections describe each a different solution with relative benefits and drawbacks. + +\begin{figure}[h] + \centering + \includegraphics[width=0.7\textwidth]{DAM.png} + \caption{NIST SP800.63B digital authentication model} + \label{DAM} +\end{figure} + +\subsection{Custom login con with standalone implementation} +In this case the verifier and the CSP are the embedded in the API server, that is the relying party. +\subsubsection*{Direct use of tokens and sessions} +%Pros and cons +\begin{itemize} + \item \textbf{Pros:} + \begin{itemize} + \item greater implementation flexibility; + \item less dependence on external services (hosting platform only). + \end{itemize} + \item \textbf{Cons:} + \begin{itemize} + \item double implementation required for direct login and social login (also required for internal members); + \item authentication and related security systems not at the level of ad-hoc professional platforms. + \end{itemize} +\end{itemize} + +\subsection*{Use of external libraries (es. Passport)} +%Pros and cons +\begin{itemize} + \item \textbf{Pros:} + \begin{itemize} + \item less dependence on external services (hosting platform only); + \item predisposition to social login (Google, LinkedIn). + \end{itemize} + \item \textbf{Cons:} + \begin{itemize} + \item improved architecture compared to direct use, but with security features still delegated to the developer (e.g. rate limit). + \end{itemize} +\end{itemize} + +\subsection{Social login Provider} +In this case the verifier and the CSP are external to the API server: their functionalities are provided by the social provider of choice (e.g. Google, LinkedIn). + +%Pros and cons +\begin{itemize} + \item \textbf{Pros:} + \begin{itemize} + \item authentication and security measures delegated to external services; + \item authentication and related professional security systems; + \item Delegated Identity Management (authentication data management and security issues are delegated). + \end{itemize} + \item \textbf{Cons:} + \begin{itemize} + \item need to implement more services to guarantee more authentication alternatives to users; + \item impossibility of simple registration to the WebApp, users are bound to have an account of at least one of the services offered. This does not arise for HKN members, given the associative email, but it is potentially limiting for applicants. + \end{itemize} +\end{itemize} + +\subsection{Third party custom service (Auth0, Amazon Cognito, Okta)} +In this case the verifier is the third party authentication server while the CSP is that same entity in case of traditional login with reusable password, or the social provider when that feature is used. +%Pros and cons +\begin{itemize} + \item \textbf{Pros:} + \begin{itemize} + \item authentication and security measures delegated to external services; + \item authentication and related professional security systems; + \item Delegated Identity Management (authentication data management and security issues are delegated); + \item possibility of access via social login provider (Google). + \end{itemize} + \item \textbf{Cons:} + \begin{itemize} + \item possible, but limited customization possibilities; + \item limitation of 7000 active users / month with the free plan; + \item double dependency to external platforms (hosting platform and authentication service). + \end{itemize} +\end{itemize} + +\subsection{Our choice} +Basing on the motivations above, our choice is to use a third party custom service. For this purpose, we compared the two major solutions available on the market: Auth0 and Amazon Cognito. + +Amazon Cognito and Auth0 are both authentication tools. They are most commonly used by developers to implement on mobile or web applications being built. +Amazon Cognito is used across company sizes, particularly companies that already live in the Amazon tech ecosystem. It’s ideal for 1st-party applications built for in-house use. In contrast, Auth0 is most commonly used by smaller organizations or teams, particularly those that can make use of the tool’s free version. Auth0 excels at helping these teams implement and manage authentication across services or apps, or across multiple clients. +\subsection*{Features} +Amazon Cognito and Auth0 focus on serving distinct audiences, and they emphasize different feature strengths accordingly. +Amazon Cognito stands out for its use in Amazon environments, although it is still a strong option beyond Amazon apps. It’s also ideal for managing authentication across multiple internally-facing or used tools. \textbf{This means that Cognito is often the first choice for internal applications built on Amazon infrastructure.} It also provides a range of sign-on capabilities, including integrating with 3rd-party ID providers like Microsoft Active Directory. +\textbf{Auth0 provides stronger support and features for smaller-scale teams and companies.} For instance, it provides excellent documentation, as well as a mix of prebuilt and customizable authentication methods. \textbf{Auth0 is also much cheaper to initially get off the ground, with a robust free version that can suffice for very small use cases.} It also provides a more user-friendly administrative interface relative to other authentication providers. +\subsection*{Limitations} +Amazon Cognito and Auth0 also each have some limitations worth considering. +\textbf{Amazon Cognito is less accessible to smaller or less advanced developers.} While it offers more advanced features, those capabilities lack sufficient documentation for some reviewers, which can create a \textbf{longer and more intensive learning curve}, even among skilled developers. It also makes customization more complex to develop and implement than comparable authentication products. +On the other hand, Auth0 is less scalable for midsize and large companies. Its customizability at higher levels is much more limited, both in terms of functionality and branding or design. Auth0’s pricing structure also makes it less ideal for companies as they scale up. Companies should ensure that the initial pricing structure is efficient for their needs, and make sure that they don’t scale out of cost-efficiency as they grow. + +\subsection{Single Sign-On with Auth0 and authentication flow} +Single Sign-On (SSO) authentication is now required more than ever. Nowadays, almost every website requires some form of authentication to access its features and content. With the number of websites and services rising, a centralized login system has become a necessity. +Sooner or later web development teams face one problem: you have developed an application at domain X and now you want your new deployment at domain Y to use the same login information as the other domain. In fact, you want more: you want users who are already logged-in at domain X to be already logged-in at domain Y. This is what SSO is all about. +Whenever users go to a domain that requires authentication, they are redirected to the authentication domain. As users are already logged-in at that domain, they can be immediately redirected to the original domain with the necessary authentication token. +Auth0 Single Sign-On (SSO) solution works as a bridge between different SSO frameworks: Figure \ref{fig:SSOn} describes the mechanism. For more details, see the official article \href{https://auth0.com/blog/what-is-and-how-does-single-sign-on-work/}{\textit{What Is and How Does Single Sign-On Authentication Work?}} + +\begin{figure}[ht] + \centering + \includegraphics[width=0.9\textwidth]{auth0.png} + + \caption{Auth0 Single Sign-On (SSO) solution} + \label{fig:SSOn} +\end{figure} + +\subsection*{What happens when an application is composed by a React front-end and an API server} +When, like in this project, the application is a \textit{Single-Page Application} communicating with an API server, the authentication system is different from the classical one in which the server communicates with the verifier to authenticate the user. With machine-to-machine (M2M) applications, such as CLIs, daemons, or services running on your back-end, the system authenticates and authorizes the app rather than a user. For this scenario, typical authentication schemes like username + password or social logins don't make sense. Instead, M2M apps use the Client Credentials Flow (defined in OAuth 2.0 RFC 6749, section 4.4), in which they pass along their Client ID and Client Secret to authenticate themselves and get a token. Figure \ref{fig:ClientCredentialFlowAuth0} shows the Client Credentials Flow in Auth0: for more details see \href{https://auth0.com/docs/flows/client-credentials-flow}{\textit{Client Credentials Flow}}. An important detail to point out is that the API server will contact Auth0 to be able to verify the authenticity and integrity of the token received by the front-end app: for more details see \href{https://auth0.com/docs/tokens/json-web-tokens/validate-json-web-tokens}{\textit{Validate JSON Web Tokens}}. + +\begin{figure}[ht] + \centering + \includegraphics[width=0.9\textwidth]{auth-sequence-client-credentials.png} + + \caption{Client Credentials Flow in Auth0} + \label{fig:ClientCredentialFlowAuth0} +\end{figure} + +\subsection*{What does an Auth0 JWT contain?} +JSON web tokens (JWTs) claims are pieces of information asserted about a subject. In a JWT, a claim appears as a name/value pair where the name is always a string and the value can be any JSON value. It is possible to read more about this subject on \href{https://auth0.com/docs/tokens/json-web-tokens/json-web-token-claims}{\textit{JSON Web Token Claims}} webpage. + +As per default, a token that will be received by the front-end application will contain at least the following claims: +\begin{lstlisting}[language=json] +{ +"name": "John Doe", +"nickname": "john.doe", +"picture": "https://myawesomeavatar.com/avatar.png", +"updated_at": "2017-03-30T15:13:40.474Z", +"email": "john.doe@test.com", +"email_verified": false, +"sub": "auth0|USER-ID", +} +\end{lstlisting} +Among these, three claims are important for our purposes: +\begin{itemize} + \item \texttt{email}: is the email used to sign up or log in. During registration phase, its value can be taken as default value. Please note that the is no constraint for a user on changing its email address: in this case the new address will be used when its necessary to contact the user, but the authentication will still use the address used during sign up; + \item \texttt{email\_verified}: indicates whether the user has verified the email address provided during sign up. This value van be used by the client and the API server as an additional check that the user is a real one, for example forbidding the proceed with registration if the value is \texttt{false}; + \item \texttt{sub}: it is used as user identification inside our system. +\end{itemize} + +\subsection{How this impacts on our system} +When logging in, the system should understand if the logged user is a member or an applicant. This somehow imposes this information to be required during logging in phase, and then confirmed by looking into the database. Because the login form is not entirely on our control, this can be non trivial. +After having considered several possibilities, the easiest and fastest one is to impose the following rules on user registration: +\begin{itemize} + \item Member users can sign up only by using their official HKN email address, either using the "sign up with Google" or by inserting the email address. Any other email address associated with the registration of a member will lead to an error; + \item Applicants can use whatever supported method. A registration of a member with an HKN email address will lead to an error; + \item Since now it is possible that the same person is associated with two different account that have associated different email addresses, so two different entries in the person table, the uniqueness constraint on the \texttt{phone\_no} attribute must be changed: now two different members or two different applicants cannot share the same \texttt{phone\_no}. +\end{itemize} +In such a way, the system is able to determine if a user is a member or an applicant by looking at the email address only, that is contained inside the json web token (JWT) exchanged with Auth0. \ No newline at end of file diff --git a/documentation/chapters/specifications.tex b/documentation/chapters/specifications.tex new file mode 100644 index 0000000..933533f --- /dev/null +++ b/documentation/chapters/specifications.tex @@ -0,0 +1,17 @@ +%File: specifications.tex +%Data creazione: 31/12/2020 +%Data ultima modifica: 31/12/2020 + +\chapter{Technical specifications} + +\section{Information model} +\input{chapters/specifications/models.tex} + +\section{Database schema} + +\section{RESTful APIs} +\input{chapters/specifications/routes.tex} + +\section{Software architecture} + +\section{Integration with Google RESTful APIs} diff --git a/documentation/chapters/specifications/models.tex b/documentation/chapters/specifications/models.tex new file mode 100644 index 0000000..5ae4b9c --- /dev/null +++ b/documentation/chapters/specifications/models.tex @@ -0,0 +1,30 @@ +\subsection{Enums} + +\subsubsection{ApplicationState} +\begin{itemize} + \item New: "new" + \item Accepted: "accepted" + \item Rejected: "rejected" + \item Confirmed: "confirmed" + \item Finalized: "finalized" + \item RefusedByApplicant: "refused\_by\_applicant" +\end{itemize} + + +\subsubsection{ApplicationType} +\begin{itemize} + \item BSC: "bsc" + \item MSC: "msc" + \item PHD: "phd" +\end{itemize} + + +\subsubsection{LangLevel} +\begin{itemize} + \item B2: "B2" + \item C1: "C1" + \item C2: "C2" + \item NativeSpeaker: "native\_speaker" +\end{itemize} + +\subsection{DTOs} diff --git a/documentation/chapters/specifications/routes.tex b/documentation/chapters/specifications/routes.tex new file mode 100644 index 0000000..99c5e93 --- /dev/null +++ b/documentation/chapters/specifications/routes.tex @@ -0,0 +1,88 @@ +% GET /applications + +\subsection{\texttt{\textcolor{blue}{GET} /v1/applications}} + +Returns a list of all applications. +If any query parameters are provided, applications are filtered accordingly. +The response includes only applications and their details that are authorized for the requesting user. + +\subsubsection{Query Parameters} +\begin{itemize} + \item \textbf{submittedFrom} [Date] (optional): Start date of the time period for filtering applications. + \item \textbf{submittedUntil} [Date] (optional) : End date of the time period for filtering applications. + \item \textbf{state} [ApplicationState] (optional): Retrieve only applications with this state. +\end{itemize} + +\subsubsection{Path Variables} +None + +\subsubsection{Request Body} +None + +\subsubsection{Response Body} +Array of \textbf{ApplicationResponseDto} objects. + +% GET /applications/:application_id + +\subsection{\texttt{\textcolor{blue}{GET} /v1/applications/:application\_id }} + +Returns the details of a specific application identified by its ID. + +\subsubsection{Query Parameters} +None + +\subsubsection{Path Variables} +\begin{itemize} + \item \textbf{application\_id} [Integer]: The ID of the application to retrieve. +\end{itemize} + +\subsubsection{Request Body} +None + +\subsubsection{Response Body} +An \textbf{ApplicationResponseDto} object representing the application details. + +% POST /applications + +\subsection{\texttt{\textcolor{blue}{POST} /v1/applications}} + +Submits a new application for the logged-in user. +The newly created application state is set to \textbf{ApplicationState.New}. +% TODO: A new Interview is created and associated to the application. +The operation will fail if the applicant already has a pending application. + +\subsubsection{Query Parameters} +None + +\subsubsection{Path Variables} +None + +\subsubsection{Request Body} +A \textbf{CreateApplicationDto} object. +The body of the request must be encoded as \textbf{multipart/form-data}. +The "cv" and the optional "grades" files must be uploaded respectively as two fields with name "cv" and "grades". + +\subsubsection{Response Body} +The newly created \textbf{Application} object. + +% PATCH /v1/applications/:application_id + +\subsection{\texttt{\textcolor{blue}{PATCH} /v1/applications/:application\_id}} + +Updates the details of an existing application identified by its ID. +If the user is an applicant, they can only update the application state to \textbf{ApplicationState.RefusedByApplicant}. +Other registered users can update the application state and notes. + +\subsubsection{Query Parameters} +None + +\subsubsection{Path Variables} +\begin{itemize} + \item \textbf{application\_id} [Integer]: The ID of the application to update. +\end{itemize} + +\subsubsection{Request Body} +A \textbf{UpdateApplicationDto} object. + +\subsubsection{Response Body} +An \textbf{ApplicationResponseDto} object representing the updated application. \ No newline at end of file diff --git a/documentation/chapters/testing.tex b/documentation/chapters/testing.tex new file mode 100644 index 0000000..3325fb3 --- /dev/null +++ b/documentation/chapters/testing.tex @@ -0,0 +1,7 @@ +%File: testing.tex +%Data creazione: 31/12/2020 +%Data ultima modifica: 31/12/2020 + +\chapter{Testing} +\section{Techniques and tools} +\section{Test coverage} \ No newline at end of file diff --git a/documentation/ext_sections/preliminary.tex b/documentation/ext_sections/preliminary.tex new file mode 100644 index 0000000..0a7dd5a --- /dev/null +++ b/documentation/ext_sections/preliminary.tex @@ -0,0 +1,13 @@ +%File: versioni.tex +%Data creazione: 31/12/2020 +%Data ultima modifica: 31/12/2020 + +\chapter*{Preliminary notes} +Copyright (C) 2021 HKNPolito. + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.3 +or any later version published by the Free Software Foundation; +with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. +A copy of the license is included in the appendix \ref{appendix:GNU} entitled "GNU +Free Documentation License". \ No newline at end of file diff --git a/documentation/ext_sections/versions.tex b/documentation/ext_sections/versions.tex new file mode 100644 index 0000000..516702a --- /dev/null +++ b/documentation/ext_sections/versions.tex @@ -0,0 +1,18 @@ +%File: versioni.tex +%Data creazione: 31/12/2020 +%Data ultima modifica: 31/12/2020 + +\chapter*{Versions and revisions of this document } + +\begin{table}[hb] + \centering + \begin{tabular}{llp{0.2\textwidth}p{0.4\textwidth}} + \toprule + Version & Date & Edited by & Change description \\ + \midrule + 1.0 & 31/12/2020 & Riccardo Zaccone & Document creation \\ + \bottomrule + \end{tabular} + \caption{Project specification version history} + \label{tab:change_history} +\end{table} \ No newline at end of file diff --git a/documentation/hkrecruitment-documentation.tex b/documentation/hkrecruitment-documentation.tex new file mode 100644 index 0000000..9876579 --- /dev/null +++ b/documentation/hkrecruitment-documentation.tex @@ -0,0 +1,123 @@ +\documentclass[11pt]{report} +\usepackage[english]{babel} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{vmargin} +\usepackage{hyperref} +\usepackage{subfig} +\usepackage{booktabs} +\usepackage{longtable} +\setmarginsrb{2.5 cm}{2.5 cm}{2.5 cm}{2.5 cm}{1 cm}{1.5 cm}{1 cm}{1.5 cm} +\graphicspath{{images/}} + +\usepackage[dvipsnames]{xcolor} +\usepackage{listings} +\lstdefinelanguage{json}{ + basicstyle=\scriptsize\ttfamily, + string=[s]{"}{"}, + stringstyle=\color{blue}, + comment=[l]{:}, + commentstyle=\color{black}, +} + +\lstdefinelanguage{JavaScript}{ + basicstyle=\scriptsize\ttfamily, + keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, const, let}, + keywordstyle=\color{blue}\bfseries, + ndkeywords={class, export, boolean, throw, implements, import, this}, + ndkeywordstyle=\color{darkgray}\bfseries, + identifierstyle=\color{black}, + sensitive=false, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + commentstyle=\color{ForestGreen}\ttfamily, + stringstyle=\color{red}\ttfamily, + morestring=[b]', + morestring=[b]" +} + +\title{HKRecruitment Project Specifications} % Title +%\author{Riccardo Zaccone} % Author +\author{Riccardo Zaccone \\ Arianna Ravera} % Authors +\date{\today} % Date +%\date{08 novembre 2020} % Date + +\makeatletter +\let\thetitle\@title +\let\theauthor\@author +\let\thedate\@date +\makeatother + +\hypersetup{ + pdftitle={\thetitle}, + pdfauthor={\theauthor}, + pdfsubject={}, + pdfkeywords={}, + hidelinks} + +\pagestyle{fancy} +\fancyhf{} +\lhead{\thetitle} +\cfoot{\thepage} + +\begin{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{titlepage} + \centering + \vspace*{0.5 cm} + \includegraphics[scale = 0.2]{hkn_logo.pdf}\\[1.0 cm] % HKN Logo + \textsc{\LARGE HKN PoliTo $\mid$ Mu Nu Chapter of IEEE-HKN}\\[-0.2 cm] % Name + \rule{\linewidth}{0.2 mm} \\ + \textsc{\large Politecnico di Torino IEEE Student Branch}\\[1.0 cm] % Branch Name + \textsc{\Large Area IT}\\[0.5 cm] % Area + \rule{\linewidth}{0.2 mm} \\[0.4 cm] + { \huge \bfseries \thetitle}\\ + \rule{\linewidth}{0.2 mm} \\%[1 cm] + \textsc{\Large Design and implementation of a RESTful web-application for recruitment process management}\\[0 cm] + \textsc{}\\[0.4 cm] + + \begin{minipage}{0.4\textwidth} + \begin{flushleft} \large + \emph{Autore:}\\ + \theauthor + \end{flushleft} + \end{minipage}~ + \begin{minipage}{0.4\textwidth} + \begin{flushright} \large + \emph{Affiliazione:} \\ + Member \\ + Member \\ + %Member \\ + \end{flushright} + \end{minipage}\\[2.0 cm] + + {\large Versione 1.0 \\ \thedate}\\[2 cm] + \vfill + +\end{titlepage} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\include{ext_sections/preliminary} +\tableofcontents +\pagebreak + + +\include{ext_sections/versions} +\include{chapters/overview} +\include{chapters/objectives} +\include{chapters/security} +\include{chapters/specifications} +\include{chapters/testing} + + +\appendix +\include{appendix/GNUFreeDocumentationLicense} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\end{document} \ No newline at end of file diff --git a/documentation/images/DAM.png b/documentation/images/DAM.png new file mode 100644 index 0000000000000000000000000000000000000000..d64a3c2daad4891888e443fe2dadefe30c64c3f9 GIT binary patch literal 90724 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

4^<%ScB3wVi{v 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

^=5fOLshropP$XDRhi*zpPVelSVJnU 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 literal 0 HcmV?d00001 diff --git a/documentation/images/auth0.png b/documentation/images/auth0.png new file mode 100644 index 0000000000000000000000000000000000000000..1d0b9d8dd6a4ca3c879684e0710da5bced1770ad GIT binary patch literal 630931 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�IVintEwv_7! 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≶x-5aCU$PuF0Trp41@sa`9etc+u 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⁣&|^$J$dNlix>CXT(#SpsT(soG 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 z z3s@Ohc$mESnsXP7zzrbVA${^DFVspB5{YR!Sma1If9(Z(SVVH8g;xj9!Q zRJm*powvIR(_z#OfV|&|1n@{*>}@zdtcMP8*V1?g?&9X{IBHpn4=5t=Q9Rq)&$iG(JPtOm(W4^kpZ#%HW6vi_jNGo**3Tf;y)-hD;=pN#`-)FUoR4nf zRArhjBqR5LAwSLP+_!(0+XLC#&Xj|vWHerS>s~{}ZaR+VY+tE1PvZw3IwLns+D~Je zVguZ{RH2Z)<9NI@6Th7`n~f5qN0oa&NR%$%Jk!S6!~K;k0)q&n0`-o>>WPU`x51=L zYkmWN>>yM6G}8~H7c9he`=lL^w-4ZuZDnpf17eQ*RyA=v>#5Ng&sy*qvEH+lk{ysz7*0w+hh)dP>TxJ_#` zHGj(^0Zp;d6?>bbT+*A-<_O`Vuq0t7G5O-Ye^~8Ik;v5yf9ge~=n%l*N+=4W)W9Vc z7G_S4sZRo5^7f~s&>LVMpQaKLc`h6f;iAbthE&U=@vCUN{>DWlDFTJ%_sezBA9E<$ zh$xt54tCd3Mt#`TqXcpCkb}c7xfOjAQ#se4(H}P*oYJh9O-I#=K1C=T9@jGO&h{xhJVbIfV8PL zA5KL<&y$!;)Qk-2i-GBTfmqSJs0F>C`rk3zQtiu9uoGPZ(WWEu%RD@OAtDf#Bssc0OE7p^eJR)cw5D#ISlpAi>SpuDBM{rndaINkDkbXMKS+=r7Z9( zUZ`bB5rjB#q`zs%&l!lSYE&X3Dt6s}LW*9GHY-5T|#+egkA4F1dl(Bvv7bwyt|;ylCS>Jw9Liza|#E|QcA9&gF_ zHG1VnXvaLy@MS)_zK`a@99YI^ZEKZ9GLNR;uiC5Z<^5QV(N?eafvwI_Zf~Ag`wPVr z{?Qnb!aHGO1@a`*Q7#;(uB5n-__N?e=)uUrhMCLQhhAhSjw6utWtYhmRH$=x^U^QF zBo#X4$zA>0y!(Q|UaIcG2X0qjWTQ-q2^>4!y1vo}Pc3x)5!z&_Ku2SK3?vLEa!^vy4jH|^%O@JK~mBgnfXMtCai5~T9bxEj>Cx|699DH84Q`4vDD z?Cg!v)=%0hB5C1>|E7R*`&tbeGc9lSQ84tr28o{g=H9`+v(>qQG-tlYI=I!t zquD<==Nc31HlBrpD|hf7^;sdH%)~9Qhka8<6=O(QMBp$J)9ANMU1>q?mG`X7f>z_g zjO;_M{&isvevPgC!FLz%k2_Fsd(R7rx!Lhwh_+LWoA-YwJ_=~&A)g7 z^xg;h|3%O5PzbSovvZ*(v=1@=0nhcOl^bK1*rcRAy^G~!@;rp3qW&DuCl!J~(l##F z%x1U5gTjQ(*#gog1*hP7hKHA(`}HO>;Iw&8gzoO%dDn?~QfKX<3?n1yst-P8Bia8K zTXy}B{2y$&h;22`okp+ebGPbCMbEN#vi^KFXcZW5)I$>g=<2gu>vtk~9{}W1Ze0?% z4;mkvIDHfnn_aOs@!!_t@h0u;B7!-JXtJg*`KC70A)F}y9=KH^nNMo!f>G$RVcZx7 zFGVpd@k6nNL_-Q_;7DxfI)`A?d+GeNYfv5q^<<;qsVx7H zrU@K86F%`UG&sZAJ(P&z-1SUNdcJpZXHffd|2+mm2PYQuX6R#A=dHN2c4u<(;t)^J z!esqg;ZrEKbbtpPG<`A_O`Er;^YZL9Lh%EY*Hn#8$?CT~TH4QNjq!=hA6j;LB{C%3 zmz`ejTTkDKKHEzm=L-J^e17Hm5BTIvAg6(WPd#7rIh?MW>VRbarToLQ4 zc_muOOL065b~*t;4z2fV?$OPy0xRjy9n(B?R+T@jb^NO3A~?_nr~?i%R~Z&8)VoZz z7}7;Q*}32GoU-Kpp#x2{e6PNV_AUjy|G$Yp0mN+7Smd2X>`yPjTzBe7I_9<3dzEMm&yR{ZkZ&O|Xhjs0a$wyI? zP-1^2olm^PUvT#0iL7}wyPB6jZbcoqjM`YY&}(oE=;pC~bo7>&Ft3#JEtnyHL62}8 z7sbn&7QvZa3exu_BIV2vT*Eb(FHAfOrZ9q5Zq|T*9lt#4PpPbkTgn9{IETt|mi;|? zIKgkb5Pw*euiROU8!{+(J^{QGsOTD4%i)m%H!zaWWDf>EE^OdRTk80MiXouiAc;+r zb~Jer3wHiWCIUH+_hU4L9FWQy_uN9jY|lIm0uiFI@P;x(zw%aWg$L4P$F&4tf1Il| z(Y`YIV`3N|Bs9VF{c*~W`u4`beLVOmHtXnv3IY*po@C(izjAfwuFI%+V(81%>+0Rv z+A+?lyc-%gkbQ6Xuwg3ycUqU1{a`=px(N!L0^6ehI=mA@GWeN}Rf4{ac*)Vt}mp z3l92ztE@O%7(*G$|5kimqCPqc!u9i2VBo|{RWtZGbZv7KLh@w6BV@8k?gcwswt%pA_SJy8_2KmjQ^`Xk$}vnD+;a}5v=7xlt!TtDwihKXl7W$hmFvG(X*cL)EsK0qf?IA zCg0J)MV+VzKKPcHIZIsU_PGG;Hpp>7s?w*zK~Mc=hFI%{8wW-8VlH2vv7sHzdHVuX;3Y24@m`nSEPs=1h*@-nr+~awcwhVtH2r#?97&3lShaMO7*L1U z-!R$2`CG2AzyzzXG{5wRRlGH342m3LYDKfU`ZAJ?@6G z`YKBDW+c(?LwQI^g-JOREw9SQWA7FdZ44YNVp}{st#;*=kJ!P-O~d^CKRm0L_dDMk z0xIM%BIK{HtBzXiGzXt{`yQD-q){9FrQ;fOq>8Jx#qSec_H)fOd5jdU)p=bxxB_2S ztbk!txzYfK!mvTAqSI+ZX#UueNU7|)_VrV;?LjB@*=veaQMddTos}Mnd7jJ!Sy1kz z9BkILzZbkpR~3F;QZ!`ucSJ+Nwyrb^qDIv0+;{)rdq=c;V{{*r<2NHDzbBG+C1UTnu|1YH)W&TM^TG z+WMhn=;{}9BRzeUR0yp~t=}R3;*!)m4%wB#74Alt4otCMZ>AP*KMb_rnhqA=*dNIt z{Qx{UUsxIajGMz)fY&66tarronVuWHci1oJ+HBNix6kYX%eLS?8o8=(RSQS81KA&2 zTD~RvCAnWm`Y;zX8|iefcu6&R&fI$In{}9mTR$}@nlz>S3R4hrORf!aqwL75_->HH zh0>>lQ&L0P^D}YJ z6#{hIghO&hG>?d2pOuefQ?&cxS&5Vexs!=#a>W{~J!ASE-iss9UC^^{f~TBCzK2#- z;lJpfnd|-`n=tbMPNrJXD%Wzx`TS*?n?r^+@cck3QuY;X(48rF|5Lxq9J1jeZ!Aj= zCwY9|fPeh;R2dzT1%%Lsgvj6NnfoINTHLm3%YAQt3&m;BuL*De&ig|6*F$=stR@ft zZ|boj#N)3)5$sK3vw{nj^=mZ|*sftZ-kRXmri&exHeYE|-PfSq94D zk!}0At>E)vJnrk~y!dSs!OM_(9wvI1=Er&M@vI%+QkX-!OiH>ndGfYNj981P4_Npi zKi?EA%<#;z-9=B6$F{ONu=N~uJUPY8V*D32GPK^<%u<#0kXuT>->|wd`Pf1cCUFir zyiU-1Fl5T{8sIol>wKMwpP|9H8w-a_Rt4jg@EW>QlP@_D6sim-sK^A6B7$&$Ad8-C zk6S;c^~!fi(769ICwmFdB6zLi&V5?bhy5L|7I8103EhhjN}YAO^*HHpsbKq#izvJ` z-PUK0`iZP1|0Zz})m#E_X(_ zvfuZ&o0l8;?xnZ5gVi<&4V4N+VRfu9K@uVSGT>wbwDD)rexuvJ_4e*=c>{X7@gzJN zV@OGo4twP&6DCW#T@kFzMw^R(W0=encI{Uy5JyM+xTaXpGq_(id_{Z53?GArhm36Y*^rb#2C2vmKk9nV+`{T@Od;UA#@)QK<;D^Hk7FX$`!505=;ep z{JTfI_oO>`S5l;ieOg2a|96OT)+G1eA&ShWTc7iOO0>3zz*Kt`*-iJBE*tkwl6*Zo zWIRvI2YkNRhRTdD8U8N>Kl9wtfMQ)a@A;7=_P&0{n~0OCWyK=qK%kX}hIdPSvB)qh0rl~cX|B_Y_@O5cjKRiQqwb3%Ls#lV1dntdYv~eTM04^AJkNz z_9D5#0q4a9Ge8uXQ384!Iyb6i9!dbm<`onZo@Aw_#@Fdpf~Au;(#C3OAL${JlPumR zDCGeOD;A%N`_rXo-U#?BYFVxUdtv<0l|(sh_x~9uum@h*kZWaN4))MnVwuliJbIVR z!?yp2t*d~FLfhIf4v2sPf*_3`p`>(oD5;|45YpYAS+r63^EQbTu_h%$6{cZ2^K z?|uKfdf!^JT&(5fIeYK#+uz=2pDcdLBtAu);UE+*ouCb7z$TKD zP^4hK!EqJDWcaJRiTd|DWI;bPD&8k05Sf1%*L+f;e#!xvpPxVauB@c)?cFfxG;Ud8 zj$pxwRWF6SjrmpHybZy|^O*KL9xc)D*Z{+X52aF&10%c|p0J4hAn-NB!)SUhOxB~J zciyK$vR=|fGazRCs6JoNVP^~%Lk!m8bi=s1E@DJQHjfrJpfLpUA(ZID@aG}dsK$VN z;>FMh;&%wX0Z!?4v>|fiZE|r%f431z=FL9ER~V^@Mq!mk4b!+$CAK8~qG5ILyoa4w z3-T1cSVhVg9g@2$mdbJ7?u`v^1Ts?|#r4EF%n+vo;$p4(Qq(iWMOVT&B}Pny2@Hen`Y|YI%pxoy_^HBOH6-|y?CHQwDEF( zJgL9~HxFL?cw@9G(XQ%LrT@Fmf4M)d?!4H!A-S7Zu&lN6}hL&MS&=2H~jtmoz4zS&v&D|ElxeA zu1=zUjvQ@_&PS%I##Z*kga|L2kP*8AVR#jL}Z{1_32^Rhrp1bg=XcqAZU=G2Gcb^xx0{n>&XalZR3=>Ui=;>f1h;AZ~em0BT zJ#%v|EX(q9b3A|1X?CtQ6|cH=et3IpnW4Ag0LD8r=C2wWh%l&lW)^wfZ3z~dxR;;8m=moDWD;N2}A zX;Gckx|GdlVU+;_dtdqIA9k%d{9`jv@e*Z3_tRZPhkxcSiL4L6XwxKoj)aZ-Q*3>k z7w%KX&^S6esyjPZj-#a7`)U7jC3JexbD2nAz+J4)dAYb2_3x8U@^EoIY5Xy>S=2LL z3%x%xR%@B_F02vl#?#uv@*>Z^Ta>~Z5Eid{-X|@T6`&R7jA$QCX*e0Vya}cyo!jpIkHrJUos%%K6Cy2qzcJ)d6&M3=s~Ps92UN) z@=bs0$LsP`79Z4ZHy5as^;i-rI=hh;*wem9`44UUf2$r1Mb5atdLF;%kBhHtH2u*kQn$3}t zmb3HoP5bool&G-qr=5sjI2DD&DFof;7$i;!DW(9C+Re?)!%rMlRZ}xr=G_fMXQ`XQ z!_V>n)FgFNF>E&U%a|hr$ndcOntShdJyHfr^&6Coxz`z{!GY{MkV%UVtF>`Cvmvr+ zaGvZcyj4~LnO2bsv~j5AHRn}QWumx;|23b#J?twAlx-k9+ar=#v5ac(=ye>Ow2hX= zx<*2KTZ(WvpYW*a(&+<&ycNy$X6=Cg>Ykv7LkzhjCYfMKKAgOC31~bxC`;vc>{d({ z-gFWvC@6@R&4TsPN+Um~_|A>jxpnVbBVct5Nj~NX4cjm_zR*F^XT%hkEguJeJRN}zqE9S z#@_ao3|NU6Q3ev3)*M2)t*S|&EyR28KVVdf;GWAGzT_JG6uF7p@8F(XZ21f(jyh?gMz$tvv^vWv4D+y&uJ_3p;$ZZ%@fyy^V5ZC_ za(0kF`SQP(;U)C$lR%w%Y*P7qL~S>~#gXdw~kD6*pU z>FN}BglO?h1R*=pM3K~M%KhSOGni6yDz^sTV@$#CgqVB28&9>CN%3R|anjX%udop3 z?zxjk@LMPV-_67U!l{Q%JLWM(sc2B};vp5}7`k-%?xg6+I7hP+XGo_euH~s9~8Xc7{=#Ep)#yDSSZqlR$Z6Wt}0&}E0Q zWm?C{(w=_}5;kx@-YU1?){JF;3p(Y19U4K%u)M(?#Xmr-u}~5|{Rkw})5I>DX4uT& zT)&Z()(=lHNX+ZDYOAv6^#gQKo(Luj7eS~5OECQHa2g8Ke)a{Hpq;aN{<)Fh7Mnye z15#l9;~}bm@p_(cK+9@z!zr19eD_Br(z$>iA*SksI zqM*U9UAyKruaAj0Ha2!ac&kN2^Owz5@S;YB0iUFJo*K296f_U+kSld`Z~%3(wsVF^Hw~ z^6&95Y<2_nY3lZDJT|tsD_Olydys+q{BruIr*{!vp)!IBvVY@sb1>x2fQH_7-Bw7= z$yoxfPafM(HX)sB5CV%B0U`U+n2TpL+1CB zu&Pu1n?$RT5U9zu70sZAiA1BX5nr237UL0li5MH zs(H4WLnzg&qODhYrapybx-eGE8%5Q|tyE8m?;1&96h?fG>_$@1-yb6osJH{&ZR;-w zS2*eqrj7N(+qtHK#;Kq%T-yiC>7p3V`i2VNj%sILa5V4E!P)MTsxkf%i!8{1(+vC6 zEs2<;yi_j?L?M4PM6p*;ImIqLcQ(=?Y~+5lQ6f)Q`p&|!5V;SW_faDwC@*HNZ+6De z91(f%5^?kMujw;%d^36RCMM9rLF;?={r5`q*%sU{HK6^p;AVJBGqdgn3qJJ^7{0T9 z#N3IW&3?5Ru2swnZ@VI5L!tBN@C&? zAW&Cse(*Gq0k=6iIdxNf$^ICZ1i&Q|_r1{lj?Ud(+eDw27TtV-c1)J0rX@CN=I?l}^R8qaVs)Oq8JZ9cZVNe~KM(af>D z=!m*Ut=gde3i2}A&)jqq1*_fVHeRJ&|D%+xFDBX72Fvw%Q->q|Tys(-!1~9^e3wMZ zXFtKrp7=y2Hta@NyWA%plm6Df+)iqJfB_46osu*BrW{!vFu?{cfkVctTLtUyke8lu z+v}qDocJi@3WBgc>{FpQl$#F#5Vz~K&u7%QxbHhcrlzzTp3(NLJnHM~^NKa&fB*5< zVHRFFAANl`MY~=m!Z6{$>><REqPI+mUWq13gg6oxFRF%?+->ApC@Jvm^svzyme5#+plGCt>R>j*$!n0 ztonWuwQHnKYeFxcTlTZ0Y<((*D);RYN#{8K24=eYNO;!U0;<&AR7IFOq->tgaqTS# zsBq@{o377u-_pi*fi_~=U;9CK9~U#gBYZ&(c*7h*7kd%;W2m1}BH3(|(^F<7o4q@? z$Eb4}nhNBnA46JNTJc>59(!NbdgFY5xh4ZDW+kr*yT#7~v1%)5`Ig`b*PB6WM<4!k zmyxSeyahZfjN0ujEgMhW(Y)}_beDN7iV(T|pIBwmYz@W>1wE99r=GQo8L|t^Y%l*= zrbBX738X%k{|tZ;F;8ka%P(%env?G2o_2YDTq6`kZC!xnc83~#PS*{a{MxIt^~tmg zpmlJK#fqG*WFlKXyNcw05c#%K0esdk%LJw(sDVvmgAC0L2E-7K+hR}*V(dKUUkmC7 z<(0O}Ur2lsg-<4-Uy?{|!~9s@8YI>h2CwIWabG^HUJ0hCk~_tN(NWt5bceQpj@iI$39F%r@BX6N8WkPgBdpWJ|sur`nI zN3?rd4SX`3l}`wG)KO_OQ56#Vdq5H;N3!A7h|JT0Z|bX^H}5q%W~{E7l2T9{m8UWm z!kf`B%66aqwc2nt)W|pj%R!1gFgZs!-cEjTq}%ZqsfnPaLPfOisjec`ri+YA(1B|e z-g*esjtQj7K|0CBC`yb32T}jq@1K3Wh9jtpJY0!PO6i%%l;b3I&2fEDRheGRJ`SQ~ zbtf3CR2)BvqO@0*b2P;zR_o05>Q>IweJrY2{4bEaJ;^P zqNZjkSLV$+(K{^2@L(?Qv%XGw+9?C8ZNq?($?#>{MWpbAz=z?eZ|g9a#6g^wLRq!M z`{WFnSXrVwURn9%{xD1SUH9tNmQ~b4jK?H-xSx$|N0 zYy6{y(Uribr=*X4Vlp$>Wc_$dC8si+O))EFvpCph{D`a=Wjo5BuEV*pq+xhFa^-wA zHY8J3UAN_TjX!W8&-MJCVOY3AVB;)=VZ#W-vNRtoYPOvnVSF-WhA>FHzOUEnxTMf@ zmnTP^ZhG7<_n~+O!vlgyHH>~4T^s&*%&a#A^Fe2 zz`n@wXVkiEV^PI;0aPx+$G&}=Gv5JHsO@~NnWi65Ff=og9AhHnK~Xp--D@oF8v!}n zn_hC~iCGHz6|on8rOY$UP+k?g2?Mw;W(9Ad*ZKJLk?p}&&9(|>3)cKlO@uhrj%0!f zd(F{&aN`eSd~1&;8r!(`>#rKo@DjdNL5olE6)RP!t+gUS8rsmN$@2NGa~H>PRqa9O zp9|SbjT<5DIe&7xobHTA6!3C$bJOYPyvDJt6pX-RkPoLWv>uG1Vws!Eb_Dcb z(semC?PvaHiw{9@k0%H>i+kgKwskAF#EYEVr?x%Rm~D-sTIjaEM`+9%H&-wcnf$0@ zyX<=#jyN2Rwahj@=43*9uAube!QYR3~hR?6i3-8{bR9&yS z`kaix$q&$$q%OeG^QMwd@)#iT6##J4-`|gYGCh)wA@)Jv%p>v5(GN~dzAhV_H z=Ob;8R6w$bjp~+xrB6fiBl4UrJidD3X)es?`qt_L#su65^E|h?wCNiwNi5;HFF0>0 z2E);2Rd|OCXQ9;A0rM}f6`j(rR{go&!J?v6xJJ)R+71)MKj?ydo`N>)7?!TCVBoOS zBj_hc?8zAOxHqK!&i8wthK8$xsBV~}P-unXRXs{Kgg%sxWs%WSdFL0L2ZKbSM|N($ zW6JjzeSar12iKKRGYP@5rUJq1)+09l;&}GD@ORaLB+h3^B+jS#-A_(49P97vdLQqO zNwAx_3sM|&Q5UX1?fvWUIdw5OAjiSygnnz2FME%#Lk*cT{x`f9n?b~&g~~aKqf$g# z20(4u59#^Lp@RMkLEA8F2A9|Jint?l1_bxRqjGSB4x+huc&s1YuAX34pbBn{vnbi& zN-zE<*`RPSM>!i(Gmw4#R+Cd+an^1xOz^)U4k~TM7iPpifl@e^>b~??=$|3(ufNrN zM0I^iK_;p*PIR{1jPY! z#B!T;1KmTejAh!Pk0*>R=5{Lc1^L1|BqB&-lJUxwnQ_gzH0?kZ+eni`NnU@unt zvczU$O-mBN`WuP5DIvN~+2>7?&0!sbHLKAN?y8>aPbjM0lN~S758Aj_`FMPt9Tc$5 zt0aQ0O>2Pl>K4Sue%6K^tQx|U!?NUEA2JFYq#^$TEw6x#?tpvI~ zhsNKQ=?dj_vct~u{R(O$f+R%9{TQ)>-VF((_;gPeGhjA`GzPBw&2V;CTc5LVkCWQY z^2cKsr&So;tKI<8I=gwoSW9Nu2Mp@)KB4siV*~_j8Z%yy=5W3YK3+0OpUjxs_wPt`Z(J| zh2PwNI2ITuAW+8M%IbOdL^V@ON**OACKgvzaGP6OCkQQ=`K-Z!Au`MPn9q_)?4Q;~ z<&tR{;#3*d__NeTVmxkqDHHMGGida~U`wI>G1$`5a&&dvFb%-JRIlhG;{%;#B!VE* z8JT5GtEx6+iKD3Q=v@$&O6QEUsg_p9-VM=WDgSJfAj857R+Ti8ii;+CypTKuP_Cf! z1s8jz7CszE;R;S1Q_0Wlxa*H=#nn=g*LAb;{*;*y`tUEJ`wx`L7w|RVG)sWlg& zYt=$J9S>^Mhfuw?5R6#4x4V6)kLiNPbp%JNPMK4{vPSm%;Pj0Qgt-vP{n=z)nbMuV7R_V^czw zwT~Oz7=!gZQ9N61EHu0`qH`h!o5n6HpYsvQ<*4uoXaAHP!L{;ABqXf4 zI#6cRtO9qKNBoJ)R{O*hwFl0=*Iya?|NDh+ffPvk3Vuvgk10s_Jo`>hPcI}ZKVwr> zUjD-+Qz7ba@na9ehB+k$o0#ggK2wK^G|xgr|CWTB2y)fbyn%vJAYvcK03_MQ2n#oy z&DB*~Yy6at6Chaa@jk<^?nV|p7;nF?q;T8%kg(iv(bI5HatNka5k_?&)n5(lvCvd; z#0HdC9jA>We#|{RE@xlGq^@kv_xwLWi!Idb={6H?aln7$)&~J(+|q?F%`p#&2MYfx z+y685D<**eI6c}NH%^joKXLK!n7BpGZ{PsNm8vr;2qv6D@!%__Zx`7hL_Nccy zF@!94EqTs8MCvzFDSXY>TJ7s8*j)Fdg5m9b+4M0_$Qj|d>VnXFpg5}_oF299f-}tX zg|MA$ntYh5o120OTYUQu?#3wypq`{Y#L+i79HmVYNs`AmZ7k`Ns`JcCq8c%#%de(fOKIJ555CV%;U=)6eXtEVp{ z=IMsr%cs~9dG@nx2`Go6Lr%Mg+OxNZxoT0|^81_XA6R`L$WQ_T!hJcMi6_umzY-Nw z%yvz-iM?Q0aQDliBh4^8+ZtvUJ)Bv4GznIJgl!Z&?sYKZbSO+-IB8^--PVwou{`bsxv2f zX3N8+X0no-SwgG-N7>6v!Y8>sHPwOO_Lum0LY;(}F&>1WVk-aQEn`rzG3HJnVvGwE z4zC7tz;v}?Jg=sDb22mayIh%7hE-hC{XRYAGzyt?))RVfazpYHi;~ia!_NUh_Tv}R zd1^R!OXg;t)!uxhdPBU>aeo7XM)X?KffwI&GUC)DwoRb$`0?1_#GOyh-`UWOts0#l+eg!LMlf^&t^5 zXe;`x?>OjsFZB|iPaW4ATQ^)*OuDTXYzcaWWezTeH3s5>rg(|syr+0-La0`f`#o>9 z>F+)W@blM@e5LN$_tqatY%R1QoP={~-H+nXg~{|y7g`=UXX4WsJR-SUr+aX8nxv2s~pJPpl0no`hIgZ-u?D5gJvIL_e}N72LTAqB;l<4&Q!tg!Z#8!p4vmg zi`%%Y+#rh)c+FLWEsi)-D;`F_6&)8B9_X(+mW90Dy9)9k%}{XWTUaa zL%-|&6@f-QPhUb2ee@V+SZk#mhcUUx-U_o2h#J;vCr2PoQZ|VvIAny=Q$JHP<_}fP ze0Ccs59+p;?w9ryS4()G8Rr5y%YQ9{fz@&<%TRMuyl`pFgJL^Czmx-^|EIbQM|u|v zij1|EkIx1l3yLwZbqtNA9vE98^u~=YR=tF|mp$~y2joxsx&t*)P3$w86poG@;H@9_ z7cyw^N1%l^LV$dxffBAw=<7x=s(-Gk?b-$k;ueTPtqO2s?es$7v0I+kuSMC0n)KRt z(I&uc)`3FnT*A~b5uq3$-ZbU5&P-&zn?}tcJ(rQNmRDHa9TB7QTxQArWM?+Xwh_q+`}-Wzcg;V*5a*5-&8@n< zXulAF!j`dqUWme%F~ubCo?2_2V~y{Ko2tU%A3A+-BO!HTd9dgC(P{f`XJ>HH6EZ=U zubF|{pe)tZ%vfl+BPcyHH&3PGMzpA(^#k8V>;q;n?qbLwhudDA1;W=REobXFeox=F8(^X)!Q(pX9<+mu1@)IYl7ENz&E8Q{4x-fsC|!|T7l@`#eYnHX!^)B{*UXX&EMUAO6o!XcO*OOU88-Jeu0%x_*G4LXmT?k8|)a&A{83>Cc`Z8Y}hL)y(ec|)pVx^?65K`1hE8}rj z|FW#6h4qG#CU3|otDv9{G^j{Xhj;!RU5W`HO}s#79FwwBNO6iLlLN|FT`J&wV{s$s z>^jm<7ODsWY&UsQ10(Jr9Fe;mFAows+RSgh)K7Jw*|Twb$ibsF-urz#<7q z0SV@HfOsCM75r73z9Yd@5NrL39*%KurzU|$-R04^a0$Q7Ok?Q2p>WVG@;An7i`>PL zB0(rZu%L`bavSydfvQq+8+Am18u;9kKRFncZjA%*!F7mGv&Bt=zk)BKYpmzaWXuv_ z*HIVj^pabDap^cD6n|S_vW59wz;sp(9bGRNekXG_iIA}0RQI>0!(T38{@7=*gr$0g zdV0eXoJI8%3Ru76pxa&^mX&?FP6pe4RUg_|{=$z@r0{mGfZlGlP$%?O>^s(7ccxo# zQLLg9Aq2MIV3pjW*r6~yufI#8NeH`qC-J9C)Dyv5*kolhd>Qr+{uMdgKtan`$kaOW zi@`w2nNtRX&pJPlI$8MP`~3ozp!!s=Qg${G_ZMK@gb)~cE(=WWmK=15T$Mz9XxJBM zm_Oe3+;-mtn)1*A78Z1u+n&Z2gp++Oi)PFZBI{67N3Wpg!5o^WyR*& zJ;mp|!+X4ub)0k>W_sE}LPAzHtrsfmcNlimnr`4wa(GMk&+W&#v|<$cBY4L%xrhi? z<22H8uZdUd@S~EbH2H-7g;!1EPPTTq&kDa05{sD9N>=FIFJ#xQd@#`+euVyrD57HL zuD6YhMB(RWh+ZLkZ0wqo#E`|^!sk{tI=k=)gm|#L?6sn&wcwjzxa{2O$9Of%D_CS) zDc1SJ0#9-x1F;j0UH?$QM?KCms#mp*qS6j{F`1nBo~;*GC@BH$V--n94e?>^!ihOl0qZe zv)NCyV@1t9Y!&N*Gt>pQTQwK;nnE*!Te*a++Gc5thSY-lj@=9jpI%{0!glu9`9g<6 zRqT`|ah*SSr`@q_+6YUR3NC9ts3nh7<3)W&$o-@{*D0#(j)GVs+Ap|Dv6m2yms%)z zj2%RGAt;UA5`t^Jt8HZ9^H($GKM{*m+Q*#y;BzmRl{7oD@;l!VbzY5z5QS?ul_z7- z^3Tkc2yP#&4%NH%)+QDW^RY-OZvW|YztWfdz($QRdp2=C1Ru$0n!cW1Gm@xBVYjR= zoPDkLJoiutviKYG;-!7oXOUP4YIeO>YeiSxn`95Z>-peD=9PIb-0eZ6d0)8_=_48F z)tDabS67k&WYfW=!0J5ZPx$6oc@JWrNI(^tK=slVb7C!2Ew6y;bR+uh_x$f3u87`H zKqb2Kwda|bweI1|G9)$qeiJn`7xYLeQ3FPGnWjgl$n6Jgh>0l3&o)7S=Q$K680q?` zOdukNmrqYU56@;7rug1PzwRVuirqzDJ%9Q68g~t<%dLT%d#}=f24>84n5q>?VQmP( zm43z+KoI)k_0lWpk%tNri2*=lw~=C4@$=~sGQNYCij~3Y@56YzuW=nKl35(ywgTh5 z&iX<(qlmhdh&=%OPuuc6J(W8)0rzGy7#OjCO@w-yT|+%1>wJoYsyK^-fBBu{dtnTl zn||x`1g3**^lGuQ)v~z6soSh?A@p2LyRdy-irz5SJy?M~lcZA7ztc>xAo+nP2r`HO z)~G#G`u$CZ{uDkipyJYsM|3EbDZA+t-tpyvTIY^O2jI4(NdZg|{ksP+0iRh59fNoJaWiBeUr#c4Kk; zgok$FpqG};$A|Pt%Cs)(gD!}a!=gTfn>-%qudAzLDeGReyW(#tQJy&L9&6PDcyrP%>wf zrtI88*z%wu;aiL*#D>%A3pI}C!g5J zicJDX`Oe?9cE!?9W-iCj$aqZ7eUoF=D&BK=+A5aRo`6;Aeh>twGV3?pwJ-Kt`@$LiM5?+=_AXsa>u< z9k*`Sq%H)p@4Q-I6XHrnV?z#t-4^J?sU)t&jiA*UKf=Qp}%noXVTBD2qo&) z*$!z`p#dAFVs5LoolP(5?~ZxxlUKG)n5^l8L>|x5H3$g2+&(BBii&i+@q6td?I$Pj zundNYxpOl8Q<4rC$r)4IJQNKk7=$Gs&LHW_yl!%vt2%WhALx=U123Kaju1^}8VP`Fid`CBS> z{&f2~zjeym-Cc3hE8AacNTHL0(FePK7X$y&m!d%$r80$M(jdOvMv!L=G&1Oso)B@t~t@PDlRg%uW_GDYOO zk00%`egQl9jPacrHL%oUvm7xIyE0YhJ{iUkfcm#l^w5JsH<}zm+r0p*(hJOUs(Ktx zLCssC?KEmAZ9RazluYOyVaH6{Z6PUe4F^)*!Y7Y^me)p$31-o zo|eUjswtacvOd$~f92WS(VH;Mcp%@`@jvVjX*tDHP@^LEujk7fjyQ#-OmF?>@A`&C z`FoW0m*76C`&H5Xe*^pb572DaydrPU63($54E@ z5|Wfg%`kx}sAv%vM+_Rbh6%HA@th?&qgtYf!*9!|(1kbYQyEACf3`g3)P z4>6!lL}k;_LLJ}6(~lU-0zN7mj!LkkCPyOe)HeXbCbbSIz|%$_nT40tdfdk(_P8Re z$lMe3tULAn9*2~b8cg-d0ZB~P5Sf>QHV|3}09(>wzyYt&+zx-J{$l?Y#jox>|5aWF zoghz(9b0bloQ#~Etrwl^eFaSdEBcH;y!*BXuD3gxBSD%DJx@{n*=H>HN>v7knc4H4 zLfns@6Sm+roXmwu;}BWb9mXd(gAy34N?p?NvU|4CTQ=zC45{VpqS zgO0e*kGDa2rkibz3CXPz@8L?$tbwya9hBY^o7krMk7G6r6SR!V@D~zEc_owiY<;hT z`k{xgHL^D>zoteL4^F6?l^~`20J&zEwB$4pM`@qr!55s$UA>yjG&SExvp(}9zj^Tz z6!0xhjJc1m=NYY=*2#=dFT|zAOBtWU5Y@d12d&c|bA~DC&1OqN!gOlshGTeyb5yZi zv(qNuxH0{iv;TU-DJWc6EQhNWZGCEj07$Sbuz|$%6Ow7H$oX>+aAeX%m+^<}f2Xg1 zS($G+6%g3sp53%ibK!17D;pYg>+e?kYYC`OBR`PIT^nx%T`W2h%f|#dz*t(#9V45F zWIfW?x50q8EfeA7KC_g1T(&xTh#ctmLENTV#l`zX54m9f_%7)}#_n6-q-#n6sAP@``T8L<9&WIYZpLNr^m z)vM^B8%~YQ1PrgHF+7$fv>0+NCm{H%KQgK#+pL6?OQ(9nrXPei(hhvbiWyq}(Yf0N8hkcep|?$hzd1QbuIgteK;wm!Jvq%|kKW^?6JbhwE&pYp*ADRu2oPz}-`M+B z_pi$L-=q3F56BgUo(;~omTQ*6gT@>76D8IA!72?={>(Fy-{lHYE^ zv7oV6M!|i=itE+~iJ%Kh>76lfGR8G3-Mc;wP@R-?(US|-^_Rd!!NL3$)><@(pFEv@ z?Xx@o$=}%_2fSjL6mEvugE$@Pin1$wenq=Nk)>qr{u99^s|-eNgzhZ2u3WFw!)JNP&|xN}MZkNf~r* z;WLmyz}qkQI!1NLmUcmJ?5?egQwYJcy2D{jiXWjF%p_Qk8elA{%1Q$%7hkc^*Soe+ z6~BP9qN|6?$Ix}pK`ElX!m*T&{N>q}AfY`%desz@!BQ?7>qmliRBFlgZ_@sP>OcQ& zX&6&A0zJ37!6AA5H*|x+{D2dXRe%>(`P1s zKiD5V&zAa8%YCz4_|`yw)OG{t&Kn*YnqS{?2pkYhszm1eK$|-(`K8Sb$Dz){50O~PrF~!f2|~aEMe>O)K{!{bP^OP zAF7)e_X3Q{p1xA(4c8~A(AQ%a!aEX-upGs)drf&*xzctNmT>o>9$h<$Iv$C;Ag7cZ zjUCFZ2hq15`%sC#KQ2G&miL~{t&SW0f#p{9GVbMJji}R9Z#7_y4et9!Q?WqXNELAI z2E26r6W*yun*IL7cuLTIO08#i!?KiOJ&OR5VaxM+?jCdZ?laD$mUljR`9pJadUcaU zUJB&sl{CwxDYfu!&0(${ZagYc9~4vw6a)9~KaQU37Egj_+@u*dx9dJN8oRnULU8p| z(f{#0jEz8_E3&A<6i>}BAl0|)c1k@MvR)j#$^66z#rOJ+g(}W-NdLe9;#?46boJkP2Q^Js^BG+;{d)3Cn_o|YRTXM#GNIYMzQvI%6$YspOXB2K`?Mf%zZ76JC8yyo}F9=v`D2!W|(oD<6W-lvPqh?b^|#tKGD-Po{(1G$D5*L^5q_Gvlb@a&}B{!-sw7OQ72IKVxZCLHVElT0r< zGYCES=E+Gfhc{yH8*b2_&*D$~>ZtblL$GDO*X~D0h;~F#7HPhvkz1HIG6=C?=|d8j>5O6glAmg!*8L^<`!3(~s>9mj@2<97ytfZ^$?b*L`4XSxn?i?hE3~@x z|6wIabI~n=+Cc}fr@DO|?1aZT?1XcgoRT&Nc#3)uBxnvrM`?$*e={!M7UrFgmwfN! z=aT{impSZZj~019UGmwHmQpHOSs!V2HS%oo1)bOFuiwBmQGMUl80V{oWY_D)auvDD zRonwru3LTfHfdqoh-tQS8lxSRtIIYbor&G6=uNA-Zy4A`J}8B=lRRe9Gc3O04p*Qt z6efJS5bO5LX=9|sEyf8UPJy)YMtm$zVmOO-t=iQN&d=gVh8XqoJ#o5$sw7`V8UF5l z+o=krDvL6A`QM5bRX z&^xwfr=%w(jdnL08mvio3H{Thz+x3AKt`o^LEiYoDJ*4xGNyErCdXpHBs;q<+qK>` z6&n^2?f&QTR-&bqiO3usnw;4$TpS!6_-+lvjGr`Jr+kYXY+-0+RR~T;+R0p(o!Xpl zJVSm60+Qsr4o*INULHk`uHtf6LAN)2Z<}V%AC@D` z3HyOf6YtK=_2a}wu{*epj!%#CH~DQK#FHt+%3t)ot}s$5^QBXGZE8l*@u-S}Ag-_8 z_-eSO_3c|ap>%7edGDtrFHbF5j{`gEa21QqR4|}YKqirC?45%T`}^l*j22W47hR%$br~4^9;JT zzp^rzS#GV1Zo;*>I*MQ$s2QbaA82xAp|Efs_)_}wRYje#PG`!%Re-umyeYNl%qkRW zBb1u1ia)~Tdx3IsG9M*p6zB?$R(4m}FIVtyY-`Zw2ZNw_U5$$Mu{J;yx00CUu@rVR z8{zcPGP|>bAtkwNyncH-j>R^)NQmcrdjvnVl<-eb2#VhaBis<&J>{P1M9&9AetKxh zpxYXf11_gRTKa{B&rmD*!E*AleU;JpUh^7g9cKpJj7L@9bpI89k6uuDL%|$J7xMRX z<4j*JX@LjYylbL-V_)C(K8+@D=}V4c>gS?EiM_NfamGKQcaVyxccjet;pj2l`7Es7 zqw1)ntCxk3H!1{)1!H)f_GU+{y-o)ftOGvz$n%5f)`s4l*zfwhR$WC#DA~amtX(vJ zXZM9^dDZDC;`yygA8Uai_n+fup7*0E-xIH-M=$$Czk(#=6e94{enGjMXj#z87MA; zc|^<Z8n5)fWD0`wQ@LiAHFrEBdU+;rV${$$Ky>5v_RNDp!Y=Nee#??`j)3s14H#8fEO)y8`-!Y*2g@fO zm)N*)*L|a#xSdzr%LD0%!u?Z=cx3F<$1)IU=b82>ov5JLd|x)W+ANVxwiM^q20mCpw=qZX#TX2uRjZw&-(lASL4pQQ1)s*fobF6 zw-;=^Gbl8QWQmjJ5*WC5seQ>l@NtkENq+_h_7GU{G%}IjpLy?*r7X{F(kM>AZ8OnF zma6y?Ci|YH*=zA(KAW-=X3e%c2und{&94wiPrrBS`i3W+Ucv$8Gv*)bP)z%^Ovga8 zqh*Zs-C~)&#bDCCKWNR78t{yuZJ!PI*h`x)B63INT~4W!8`k?fW2cPZ-EKvSrfEh| zif9j%BuU=CF4nVeb>!cRL?z1aly+WT^$UHcr!!bKvWL6gh2{|WjwRAtb* z@#p~oS1)xc*UY<~5btY*Y(cf`JOeHMPgy^`lh<^${UOgMa#9$~nNdG*Kd#@P4*;waAbfqEW36Qv_#SD=L*1bOf#Gyo8v2|;^@ z4NG9vVHxdDOIOl4A49D1!G~7gW@Tla9|ghG)EFAB)*H0JId|r32>f;Td%o`A*H4;nwG zRs*V{S!ZKR`jy#alhiV;ChXpZo(3~x%%1CiZkN+@s&OGBBcrv=S2P~NYjy(as)m1J z3KSif^xf}pcj5C2?4!CaFFtmgNy`O1WTd;@Igkm|sJO+&MLW=tH%4ja`PA{nZG4|qDA9AS8^zlq{&b3B{GNz#T zwlGB#!>5q_e_izHZ;>E;=(l+6wSBx6EVBA7C3as}CdY)`W^umA`*M8|G~`eJz=rWP z9{|sm)qb()f&RwxU{J=9$ZDYR5R@ey)?I0oRWW}eVeX$SU4ki^#D3gD|;y<77&TP|gMdp9W{qD?AvtwredYy<2I{HMlW8ReAxP9~j z@&dAQ5d*85zvBO$&a3Fr?F(a(bM@01e;l*uVE}w)?^V!^7OQx#7Y|SsZTKf%;vkP+ z$M^Oh0$nQs;M%sCcc)XOwkb4Fsj*0{rBdm8aHAF^X_i(5x<72-Zt9iaugmf);FK{& z6VWF1J!F+;XJ7;~Phi}4xrpKK_U-U{<1&>O0_5wnyI%jWDxiRA4CkK0I&aCUBl1-h zPpbyy`KATadltSB`@{nmk9hMh(v%4O(nl?@wSd#>+H;y+Ah_<@&|toNH(Tfv%kO?M zvx8|s8gNB+JpGd|+H(r9`Eyf>8YE8o9znkp>F&F}&AMeY(cLjx#C9&c{Ft?!ldHE1eplL4(JWB3>}5tOI#QMcYd^HS$u9)KYjDe5%SC1wu_a{(l+halsya@^_SPV^8S z=d(+K4gV{hxr>f^$+y)&^hKoSa2>JEeEtOk6W$POd;_E;@uEkzy<)2zEhlSYy!<9U9%kbA`~?DV281PO0JLEQ&3NY;k-w%!;NLoh~kXjZs1 zd%;8TRBWYXCxo{SNtB}Qe+}PAA)@+wY4=TSTVZ4 zBBSvn3~N#91-cOzjkdvHpK<$)*}G-n+_F=9TqMot0lj~Eb_-p!<)hKS7*q{cQj4C> z)1_0Gbj@k;rqJOZaUw|b{p!Hr!BFR|J%#BAu_PoX@SjMhsVwhm{9$qYKEM@8zD;zf zM563O%c`oX+`K_FcxP$u?%jEj(%oSARmF>L(HwnzVZ12m_6;&&kgNt-r;pEh(nV87 z@>oyhSLRpaG<#NDdzpaZ>&eK*#r1N^W5198bF0qf51qJxfB=%>xF#*vm^V!t0Oq|? z0WKnXz{rdBPx$WTP3lFUuPbYqh9l6>X7n-}w$&Vf$!t<~6JWz|u`@Yqf&=(=P z>%(2SuEHSkt^MV-|8#mb3&<$X{9=MmVd^YLUe~Mbfkz{hUx?wxBS%SRAehWhVH$XM zAe&H(#?NMPyw$8Gt6z%5ez6of&s|0yLK<$`Div7(Q^(9HyZlXFC1Y%4`RJ4$J)f?= zA($a*oc8{sID39Q{N{IW9PC#w=^U5Pnno-c zPuxVoJ?1d{NT#!MTzlC0_~;|opTF%~i)x$=fSLa$F^-#8gLTo_pZk4X27q(T@uDtz z;YCl&8GPbWHVXN(XH22&HS-r29yiCjede0-qmzgqU01B}x^(M%a{`Kv-wpS<=s>gw z8P1QwoNpLqEYVF6VyfuMTD3=^ChM)3_W`r<{13)WUo7#+X_s+6@J}A3uRovM9{zr$ zbGfG40}iDg3tm$-8t(3w$LYzBOQ-pT=Z%XTi}f{AvA@R`pT_7L2AUx4H!q&dL~hef zVG)BLs^ouUc{8|J2FX$Yk~OE#hOg1ylJky4QV%OTszvOjZs8a|IE9Pa$u)pg8u*>q zFwn#4bPDo|9?FX*%C|rP`Qf{flasT~=j!TORSTM7X#Fd^j-9Hpw8Q)CT}BTMuXofrzPzB(JEhG=Hrve z?linE<1=L$nlBTpzWyp5UpjkgQ%K+Q&)+$O2^dvxuYBFj3U|Sk(;TgI#Gf071lpr8 zy3!Nfn)ahT9A)q$ontExToSvSXre&e5uNEm+p{+UwD>3hrlIi=3k$2fSP-YEuyD9O z<`jlbK`G=`#!{1Tc`w~VuI^2v4ItYjTbG$m(6#G&=rBE=dvb_EG|QD^?DXjz`Ht@ZHf5 ztNlP%L;IPn!4m83J{v#;I7ezrr^Y`$3yBYe&@WnorRmF`di^aI`u0yNo0c`zvZ()f z8Y-j!V`adWNB>q@il@e2{3hS3J~i^?sYIRon|Vd`8t1%Ajfbj*uu;s9mgrv^Tz2(t zPE^~>if`hqlGXhmd+!<5uAK&b}lRcT5UkY1H40YdLpR6qg&Y0?n{ zL?HCurFW^JgM=P>fB>O<53arT>t6dkW1Mlu_tWqP9+H_^?s?7Yt`m)Ir6x)REE>%f z{kA(2WE~7&_^?_tASF_LtwA=;o)H|FXcWj`6I<@6ZV`Eg z7M3P~jWU1Z(gROo9m#-x(hlM_rDs)@m6iKHSFY>;We($k(}9a%p-MpGGJ~XVZSCHm z;{K}zBuo-c!3pq9cyb^pO7lz{QnhZBnu<<;?dn=Cc7B2`^Sv+(feUpV&E&IsZn-Y? z#8)eEgD*%SE@nPnB z&WJ5pckxT~-RQY6A(-5F6gXii>UH4ZjhS{sG471>fbfgXcjFoifXHyoWsD;)Hn5Ju zX8I)sU_lv!U7D2K!wFxaIS#`GcqajhAnApzQ?6f%N|o{ggm-ZPMd1;Vv0G z+r?SO_?K2n))H($vXc6)fKGOv7oOW(aK^JDZ6EeVqbG!^Z~iYt zf2Dt5mhV{lfa{{;COo*s%HsI)-THmY9>RgvXkXxkI;#7c=yFSl5MVDv%|_*6SiQ8# zjT!#=7T{$_w~N_t%Mk;_7O>+}QpG-~x93E82bkO+c~AX|FLlMn-VWe$vNfPU{tQU+e!9N9OFW zKiZ%c-rjt<+5cH`;iuS{E&pYlW)|KthFzZXT^=yQ{)vHz!@SJV22k5_7hq3BntmNW zBQ?l=XXPe7K6MLREXiT4)fvOr0XEktjsw^loSQ1_roUY-9glFnIM-b`5kQeU_x5{$!A^B_J~c+k$;NW=B*#889=Aa zX1~({Q|GF00?-DPYz=Y>if#ZG>4tsBj-@xtVf&}r5cmZy=zs$Y>XnmDS>gfM)K^X9? z7rpuTS%fdj2XqYI{P16F*!Y?mw(Y_&P&_S`ee${L+R}tJO?vS^hS>O->_@7pX`Cfs zLc4(9ZyO?bE5go@t29dfjr2DN0S!-IKlhYrYpO~E6oCp8ocU_IT?GvRpp0|{vo;;S z8>8SabpuB($?CEiDbTq4lK|RQ4?r27DGs)Is%L1(<*@@26x2>-$cjuUK@RTiIoFvZ zjV1bC+t}oVe~e@?CzSRnk+?8expezEN~H4rlN;dD-;J=P7Vgk3K;(ulAYWQ7yFd34 z|EKk5y{@rvPj!svRM^!Nc44r({WPlf_3Zdf7u1FA;=NRg6Aaj9kRzq?3c%ziCMei1 z$|I^ru$~0qY;uVvC_oDrDl~9C;|YM}+buZ4AJ7*#UBYM~^&%zC>2_MJNvD#w@EV#o zY%l31ES`=Nl@MS_WfL1_7(a0c?2N^D%an1nR8HO`z!kc;&d;`H`ClD`kg=t>OL{Q< z2Q&eupzW&(46*nX!^E9|)Jqqq;BV*^@HpV*T52J~u@m9M#_)-WU&oZBunz1XIeAcv z8)#_r4xqV4v8l!aMiR(AOOKNSz{vZTx#AuIc3M7QbGx=_=HTkxxllIo(}`QPUf+=e zWV!!Nhg>@0k1qWolVRv?El@*&%O;Mz0}r03p9Si(F*q8J#2lRzdWV}m*Tsv9|F0tr z#`2@IU#t(zsrXx8FUCb{^ml*P_aZ;qijKS8;{pwJudlCb`6VSARqS4j&qSKBzd7)f z06jI8lnPX~l=YXwUT9H*n#=)OSAlaIP{WIX*9g@t@o@ev4k&=;sT>hu9v+ht;wwiR z-5ae)o0TrYm&y^tK&tH8a);4ytH?iQ?jN)K*Q6@kG!Ow!FF@rvLN9~2M*)4i3s@Fw za_)A#iw~^VOYup0^QG0Dt=2RU=k07?BbXEM#-2QfIG`_=q>_My7&xF+c|=ukL!EoS^$5$$m}}sWhW#2P36LcG+Z=>`^{>uCCWQsG8}?zkDZ! zLpap*ZhAUL8#ne8AU?wNKU|RKF(A7g zs?_jo!E@K`J2pQhC{|+Zrr+2>N(?is5M#?VFZM4cV(#HpPZqGbr^UCteAT!UJwYe4 z2NHA$h3tysPxm(ZTfH(+i!Gf;V+SW%Ke*bLU@@Qx;YX7Vl9&WNGDdrnt8#7Ci&IY7 zs3SqFsu=bpUR;O)QfdwjZ^3`1#IiW^_<%UQ&Q@d!hh-o{Te0J(1Rl}es9=zrt5N^` zt;FR7>`VL(5#t75pWIEVT9@60&Kh-XBCNny24Iqj-bmpM8r8ZN;SDbxECfqg_NU}y znk#+c>vk@xxAo3{a!F1};Ra$|wCWhzj=%k7n;g3tz-q;@g`Rkjy;OfRX*b*~LLdg0 zvTfEeevnIXZo8Uqzypq(xj$XjI%rr;-DEJZRFtwopKwTz7}@mzHIT9Ti-ZS$+_VSEkn;Qo=T)P1lsW7t~9muxa zc;Er~Mf#@6Rxm;9GG0##4g$rTmJFsKdzoXM3DBjqN2GcD0w6Ux`E&^KuqX^$WV-LM zK_i+|ur7W}CwTwt*%UdzLo>up%4%4C;JzMt-x$zVztnxcIXu5Q`jLVaK+Wpx2#d+h zqd>Nc{c0kQTRgB{wVYCuz5Y^y!4eM+xaj&nD!C<52s9hadfAIV{As_V6?yR});P*zllNx4*2Ada|@#=>hhxYp*b zVLiOJ+HK9KIyntcbsdjVm<%Qa-rL6I{9>o;5mFU-v8&^qhk6u-2qbuNVffGj4^F4| zv+xd$F&NfkjyHZb%z@fDO*jrnPNSb$5vu(gma#%B}PLK zeuL$!F#HA|jX7bvew#e&q(O2q0bz_kp@DRn=!-0_fGnruwY4=Z`F(G=M}7W2d(f|; z5#~y{Dl~ZT$#GAuC#58hEHATM^(jC57a|5w*N))YE}kwd$Xzi((=r22>*rT0>}1>W zY0P&ZXN4A%YX(?{RhRU9Q*luNS$l0k-`<`+<%i6ArI!Cmj^-F|m=$ChooHOC+HJBj zoBq%=*~Z#E7NXs?(vt&1-#BLnInwc%I*_%vL=e9}Ewe>U6AtU~RA}>z_POUyxAsEy zm9wS7sIg$!w+qQ65X+a!9^$%DK`sD#-s)CUR5U$gdjim!TYnyPL%-tW51Y-Z4y|dd^ARGSp ziUcALtP^-R;g=MMB} zxlVOxT-Wg;gPqy*nk;eM`d7<;@We2wgG+sp-&kl6hkVAI86}ookp(B({A6*nSE=t} z0MF+J&G@ygwly|>^ysdq8FfE&elU2eb+b_AVl;qX#K@PtP5xCK%(J!NMZAFv(l>Z5 z=fSV(G{Icm)o>_Pg3;y2SB9%57sOYVLe|ex3fo43#k5X-5g-j=c_z$1a7;D58ADIXxI<)D-Vj+26ZMO{-D!Rl6EM$B|g^}MXLOd!Jaj5b}!kitZ z6MQ&|Td&Pb-17hmKmc?E(3lGO*S(&e{sOKoTu`kr{2o#SB*}wL09~n;vzCC@OMI2%#WW8FjhgaX8d*;f>H8GNvTmveYVz9PFl>RD&bs~!H??jOB_u|@!r z@5ce>P&AtZF?M9+=vw;`ERfnV+nWI9lD*o05WU7If=ameE&hVnnkGJ(c}Bk3GYUQb ziCcgt@LG!rqdp==m^V12k)FV8dro0ltM0#yk$`#HND&TXyVq91y=jHJiE03@{c=`% z4by=WnDK?UPtx%+IbeVLp9u+&=Hhkd5*G6Ns%CQnzcEajqfMa@k~om#mOOj?cd}Qw zb=5$76Km+sD8SgRu+{o>b>Ee-yhHA9dH5w5jds^7;Zw@Cs0rnOooR!37eEOMpuKO% zR+FryCGqNn9o2%Y^zOgA?Tm)$Jo#Ey2|Iyc94PzfOQh%-x znJ^D5{jGEIIUaTYt_1*$P%PXZ)zv;wyxwJ7J7~tExiKSPU z{Lg6tzAB)Zno|fYpXqVs1q5ZE<0hY4sfL|>}Zm+{oflt1{ydfU;00^|G$6c_c#Ce z2J8zh;R`M8|E&)J^*{sl?}Y!C>HWW(#L@?h{<)ee@BT~o{=J*OZ`6PGGmQsm0P-^Y z|8W3+!~mG+KVtAl4E~70FO>OnDEvVK;3)Yc27kohj~HA~xIf(B4;uUtgFoEhFTLvz z8vH?nKWOj=4gR13unYc(!5=aBBL=^A!5>ZG4;uW-0{@31{{KP|p%}~Fe>p|4Mrnxr z#2>4B0s`h{UuIxoA>%U`?17X`W1GYHsts+ne&VBI2k-DOJK6&M{>0zXP=LU6z`ZW0 zr7#0)^U2llKHq9BlY;ml>qm<3$jy-uEMz+Jz!Q1n=n zVDwkpChfS45)pIBl?(=rCs(cxI-3GhLNcr7ki&6^hEe8m5p(T#Ti|}D&$)s*UFEt9B?3uR|S>@1UN1ItEWPz^Q3EA;H zvA~3R(r)Qa=l|WTJul!Wr0Y4g&b@%|tIi^e6Z?yUA?+DtWCPijc|8oN z9Hto=nHzTQL6PGEl3|UWt8F_T$cYWlq|vrUG4Aa7Lnv}@EHVU?aC7{3U#zPxV?qd9 zDl9D`2PEOeED~4BPw>LEm@vBn%%{LR--aY+=VBC$rYB58(^O@S_gHjNpHxK#I2&Q$~Et= zXs;dFo8>Zb^%;85*Bl}C&(JqKKHi%b6FYFEiWgFE>-T1Qv)`89JUcSxcLNAIa5MGe zmVEXZyTzX|^z&SCUx-1}p&qX!Or>q7p{|ZS91X-}p?2zgPYVRY(eFYXk}S8=fAh~? z#;IY8KrD1u%u|c`;v4q{xSE=TcaF2{W42av2!eOen9U7Bu%~~c^=b>FBtoJ}Pb*ft z+cFLww@>NpCXV;9Q-a1+_>}`I~dR0zwVr9X3FPD}}-U97=w|$O&@cx?{HOa-r?iqRc`7yb1g4DPr zsIiU}_joZ0H5gEJfnaX%lF%3I^RmAWa9pBNsS_#VHkiEp(KyI)A^tFBW|RV5X&-V4 zZse8;b)jJKH4|Q9Az*?Ndpexz1$m4AC=>{9BqK0uR_?95V=F}3Lk8&~SQ4&2IuoPm zZ)IecNBY`;mIQGs<-oD|v>RS5{v7x_osFrRYnkfI5#T(TprlP}F*mjuzsQ06fmOvp z;W<1J;%jRJt3N##oDch2xXzQFlX4F0J}{-?EtMdLbEPz_dGaB(OE(rgP0z#WLrz8M zFB>F}K~QeYu3PS_`E6%Vp9Jidl=9ILp9oDw5oNITgC3+4J8Vm=ubJunY4||_7S~=j zO$)*qj@&1BZcwMIFa~XPNFJ{QxfjtdlP)YeElJUF3B3RJCIvEz7WQA634DJ1o4vvu0z9OL&hqaMWk#k-lFp4=Cp9hxp`XWcpv&L4u(-Tx@;)yO$MLI0GWCk zK<fPUfP7qrW2OfcS_Sfi2T+TN&k*P!KAbgp(m?D>)3xoedxhe(tRvUB~Ua~B0X(Y{EeI6JseVs7z- z070@*E)Q40gZP}(`Dxl2G#H&7o}a4e8ZdCl^PDIMy8<}?s^?8Sai;P>2-R3wbCnx{ z#U178fq|W8dwQR(8c#pC!9hb8-j=o8b)tV>NS}J%JL^+MD|zeYoBx0hZAP3sZK`L< zE7E>hJ!juT2SV!ew-%M(KJ`BDmx8anXgEMaVm9YviuZ;jL;c^jPEV_VSqd3|Tet1P zlxR7SJZCDkJgN8j`VE8qV{?KXI;CO>+;f^4ELj>YIHa7rR#hJw^EtY7J7Xk2NX3>7 zR-vDnaa3!?N}gC|);QNW+ZlxtS%4h(dtbrh2J}c9MLe>4YIk7YPtBZFy6#zTUzVcf{`aMltaDmhUHEb+2gR^=Z#?fQ=_$Ry;H9Dvft^D`fgnfN6UUj zc2foqB#og=jusZ(`hLrZt{tR&Hw_Q{eGTb}bJoBLZlKO+Od`TAM)Fj0mZM^eGftGW zbR;D5P0avnwDL2LGQ;fNgG|D{u1Tv$!BAO7#FP_HY)1QX7v!|AqPyrQ-tj<&uxE0# z(zv&J`tO7^qR&8(gmmSQE$BjDqE!l@z04k1Df008_I@IwyNrg0?ionM;$^0Wg;Qzv z1a5|d{Vd((hu`cgO4RL)>a^g7Rq8-l0|RnITi1M~qB%dGV}4#-&Z=E}$N;SEy)~wd zlp=$nfP0El(Lu?m%2Rlae$swlMOSBO_kW`=?m?B5 z#oPx%_Q(xO=QVfdG?)rHUp4X>J18^H(juO=$mQ65wJo>>AC#ela=k8g8>g(KM+p}W zMPPn*EQElljU3Wy5aJlXHG1mk^UcM}^G zq``VyoNe0qkk0W}yE5ZMze=6f{LE&&_`DX>cg{jqlu!Cq$Z^4dDnzQaX#CK-!v;;7 zeJG@1d%Zi)ktNcQ`wAVO6GCUby>&9ugF=`01$_kt)G#veUJK{=t8AZ6Wv72&CMQw26zwwIv^bjB-{3h8)_cO z`(&fWc2iao+PC{^&!v*g=aF4BN-(x-1jrRk)D1f$3N12jf7KXc)gB+rxw11mW2rMK zGzc;sTl@Y**HDjJn`f3?khySsA|{cvu}q!ZG%_qx!q3f2ba-MRthjpgzIJ+2--LBM z%r$h=%-gBSl#cO6c6)z_zKdQ_tEJF_j7i+`DVdV+{pP(KH_Mrwx*B8b_0!5shi2Wd z6ro>Zq(uRV-a1`9R}btvTM$i+)ei-edY6;d#*}qitc{0+cn+D>A+X)Y{|=8MDv&ZT zah~_`oS{FmJZT^KKz~Fk1v;97j9dy1L0S^o$;G#47KsJiri|xi;q%M2U`{ydn#~Uo zBO4+;q*hvsiO&3NBErIE*WpkpEq((yT{+lm8|*6wA%?4tGE zn43K|XLc5Mm;H_riwmpB#qNThn2^;Srq06H_6Y@C$TauX$-ucG+_=i{Y(7Y^>pO61 z8+YDllQYAzRS$GDG}YH2mM1(`^7t^&aj(VuDF1w3@;;kNZ=A6ZpKewg{-n}@yQS{m zWob-O0RaLM4V7H}lAz|R#gQ`7oy}nfNMn|FK5liKT-*qKWiUhHfT1BLIG69?ni@2{ zbOt)ZPdlm22jQCe&{#sVXl*uAO+DUh$CVE;pRu-%zd6yXRx_ZRbrkw{dYF_KPMz(z zER<+GCI2JQN2#;7=R%T5$LilcE%GZ>4d1D!TUQ=(QEv; z2W3*dmu^#Sw}p?I#14!P?VJgbji-dm%=Km1>7r+Rq!ORwIxMzgI)*zzw;n%Xi45T= zXp%>sBEq23G9H=kGJb&ZKmR%7-(z9OY1LhJnW(!l?AsI9nyXZwt_9{Kp)0vwn_`0o)z_mBc1!nb>+Pt#^Vkwm zASYL;uW0V!g7$|7I==!HYqm>0CL3~KfVImBqG%@*&Rr0rim@f7l)95FUIu~_p^lXW zqPZM9-uJax*z+h5T_`ry=n$JMN~-rgrqT|jUvd93-$~6C;nHu1{xFSs`SR~LzJTOg z!S72Vcj8xOg*3wDOefUE=+`AaCc|JYPp3R+Qo=jpJx~@NTgK-@2_7ie`AJ4cZ5eQn z{L7)g(|E^h1J+N!dg!kjR zb}c2tp@O;i4q#idfS?=DzSx1P2ID~8@YPmirJC_Y%!&{atjF~m%4t3(x0S{6| zWl0tn&<%9)@8I&q2Q)NW4XIw|KJZBut{)pR#b3dhg4CDg9{Qbg8&{ZrhNT%wC!HFJHB??qf6y(f_{Uwg39A{Ww6hi?XU(l&qyD;<0Bp$-#+i# zO&=2J5c4+$1U&8*yY{yF)Q+!Vxz0i=)FG^Ew=bKN;V;$Q^ZG@YU3E8Q-iOyJm} zg)8cL887WKjXjMix30D1$;D~EW41-$a9Eu5bIRq+bMEdM<+r~}6grph1o6(H6?ZK? z+2v_?5#FN`L*}GG+Hwcc#1U!8IbqHNtcfG`ICry=*I$|aUdyBo7J#it1A^Jdk zx)Dq*KK*sUDoY7wH>Rw62B6jq8#J1nRXL0j7pJ`ndE)bNG9_&tCoA5 zVqa>#j5nxo@SiZwO4oJVest@yfjsjKwcc8OhOH0+T8|&Y-BPg~pUSFf3wmv)Nz;;8 znA|Z2;*pnoDh9-V_V{;@lJ)2^DAS+uN7kWTa)*R`h(R&n?dzp<#q?bJMG@i^e6~w zF4p|ECjD|KO}htMI3}rjd^e`uqaIS6x8$^R*6wkd^et7hYS&gn;*R;SKHt1M_s4F* zeu!5{(8Y@UfHxj{`eIgMYWq#{mwaC`!Ee4w2u1}L5$po_YvDs^pT5NnE&12KRxeFF zz(x?9)pWEZjKMxhJ2T?t(`U7~fEqJi*zh5C3wUDpt=zgszZ!WP>({!l6}yMUWG<@ouDg_mvy@^c>v@RSWBv}j zCnQ*j0r|g-{gy0xWzu+DphS%6|4r?$XN49q}cyH_KZa||uHI}=ToF&d$wNvi% z4MmxQg4`#DUW>n}u#0IpTN1Qh%0EX=Zp9@=dVpWw6_Hbg#ceve^3qrp&J0!S3IBz2 z_Byz+NYM_rdUUem{@Tdy2E?z%^}49vnRk40GS@{_jhjmsl@RDgus!j7Wr1Tai;9wQ z>2(?3RESj6)6A|yVlx{&DlEFz!jvV_Sj?Tjz~&-%hWv7&O1<(+Q4|@0XNMM+?`sgB z=#J!Jk_>fx$SsBj3R8)N=XY3ff@By2E4pY%TO6}`e2)Z~gHi5gIN!vLH;GA_^rsj5 ztt}HWQ%`a~HK>UoB!h+Ew1c7rWqg&3GPss>9LVK!BuK=mxToHoX~qw8BORLco?t$~ zdsUL7Zn4{Zqpdyi^NQo@lrD7lz#-zt>Ee6r_>B5`;5pm;wn}U(tgqcyR5ME@1)5ep zl?n!|a=Ka)$8ni8?)R2h(q1>H)Y+7LKzez@mFl-!g=YF~a9>TAh?9P*bmf;juh%6% zUjj6{!F{1V$?))3G>;D*=HzIGI4(>}7>6$5uvxfujCYSGqN9j=1Ds_ zzL<9{yvDLM<-#-`V0gRZvKF^-y+Mh&-{H@oi;^KghCiZ7`=Yx2NRy`TzP4Xkl8DQ< ziI@{gDmrB9a5c+mzopzd(3%8?J`af+5aL@dhTIv9RngsZ%D z2-}kgl`3f6ZOX3b&IgM3uD@FaNjM-z4mWL!|6O6`pa{_Vd}`4zk}u?&s9s8tTHX=& zyA^Q`hUPO5O&GiIeE*8oqr8^piEI|3;@4kBmLf%V9Sibgmy`44@n&s?nKn#IQ}Pr> zS&F3>Pv-o~s#-Es%GRs5!fVeT zDYu>;YAn0W{?Ij^q!b1L6@a!E*>^Ci+IBrwW?eZWXQB4$0MtPOcfI_8yP=(A{(&&jA^E^mmt(@)`jo zREyj$8mwI)gTD%1T>7q1RWcaT_ejIV%hEC^)62~kvti0oH|X+qXh2Ph36U^K#$_FoKLfi-aQ!$NwIW7w6PPj!Epbj6-BHn^Et7V1~n zjQ}iaWCR4%Il592-Uf?{595IF?Od_+Jy>R+Rkna9^)Is`<;RnN(zrlnhZc$@6IKZI2I~|qjO3s6f%hMQk5}59NOT%G2qM~)fqGt)|Z>-IMjhoc=ktAy=X($QB)-C ze9>hL4O8NxF^)xdT8OK`dbbe!ImhA>=d^whkZ&vIP{f7h>%G_wmyG7KHj1;bW&CqG zo&F9TyuKC@6z1H*r^+6F*KWEO%3C&N(RzfzDwR!rm7hVR&!^^#*!027JTM*`a~ekz zMzLgkELHXrks3X-{V$O)%vp`5%1O?B=D2Stzo+7BD1ig%TnWtR_NL`pmB5?u-9yT5 zB4DLpOZj^T!S4LQ{nH{+>+;ksacEqBEdiw+Nw=mztAUyJg6T4-ev~Cng--j@C?^{7+$O}eKpc-?~# ze=3IWmoWB|RT-o>&2vlk?4GG*_3y);>Acv82=I(JW5z7kC53#`CJRz9mMENyNtnQ-o&=23=eJ&1JTl+ui-0K)Dl= zzjxUN553?=v$%j_FoM<4B_I~xDfoReUv@j#gU&8GS(lsME$Dx>6Vf}2^tzmi^85JO zR9p?MqiQLBpsz#&M#YWhLA;%Osxl-YK1T^fmA+vS`2@ZqCfx57D{rCVdk}{uXs>x5_VCxi?vE)xZ?k%Y_j9EN|wf7givYTy& zVY3Lg8sxtJOBLS!f`d64Ie8YkEAkgXO;ZlAgI@PSE12nhV5oo_G|+{;ou(XN&9*uV z>9aK*(B0e{ciNF2l@a#6n;2$Iqis7nVP%waL-I&+;8S_IH=EoKT@DJ#8XYZ`O3R1T zFB9atCQSG}?#d0vbM_~RlF=EqcNbCSSeAsXks@kHS4zv1Far_g_%)Bw?P-j4{U7WF?<2(j^-$XET zT-I=EPz%>M+wHHXV0jIXre*O)WZT>|YQR?3mwjsAx5$qF`chEtZ65|vwQS6;k+@Y* z)GOEB4llqAm_~VA{>9|1^ch8i&D#rV&Dn}#Vq!kBcrRnVVrKmsW-J@EW|olned~uYmc1UyBa;Nw2`k8|Kk_y> zpE~ossj`}PhA?+Na2EFbdE|a_UV@oX{b-0tUVaAY)-JnJJ#cgD@|*N4&w|PCKK{UL zF2|ve5%WavSq*7T!#d9~nSiUQbdhKgS*~tx3#HmEb9T=y+*_rL1jHm(&Vkds(}wjA z>ZbcK_1>ECy78L2(<68-K#}~J?j8*M$jEQzC}oH(yiFg%>38!~Vd3NEY_Rn8E4x45 zRm4gKq*$quSRs~^KUR8qFtA>`d@r^k@eoaJKKsQ-KKJA{hJ1U2-+i#XlkqZo_v?}+X@SHQL3vt~c z?S2uinL_A#bS1;y`27w+5I0UAFYS9d8L`d~M#+iEx0*qq=egxieBUpaQXD>#EhL#y zRE7HY|A6922G2#-4vfg#Bph6R&Dd4%#)4d^FbtY&nt@jx5?B%_(#fXLz1lpPY6=u+ z51){w2?@6M56Yz%dwWi+%x77&I{8N2=VNK2EV%YqeAmC?L3S-j@7t-H>_;7e`ZMv; zs#6kLCeXnwiEozo2;Z!$S@hb@R%APl?w!wyr^V9N19joIE0^qF*X|h`(AaQ$H|{q~ z8A1ZHN8<2syN~CiE;nTsUVn+F`g}6Rl49ef+vz>d6{6+t~?VVWkD#A}NJqnkO~h!#qwD`S4mapOwDKt<0t5dL=7p%abbI6p4Ose_4mn z*WSI>bE4K1oG) zzX^-x62x($HdV_Vi)V{Vb!w>&OYKK7Kh;J;yj74qt4{`5eliLO5`Re2E^3%X0Gln(KN%Yx`kv#>}Et`rg$AO{biWHd?U*oY2{r4D^=(~de$CGA2*AlonBQs zrsMG%Ggl@Xn+GJNFc7=j5mhE}bM$MEMSA)AV}SwTMxiGT4)Ik*FGCeO7QanDYH`?2<&KK{dLF4tPHN!E2^@!bhw@5}JA=%p| zNZM_8qB&Ok1rce5VE1PaiG(g;X={9#lJM!3yN{Wor`4d&)1%l!oMOL0T^*?cJSw#^ zyzu1gGQVf9?h1w%m9L&s_9#Dxfx<;^nLSGhoou3kySVsAUq4EKHZtWhzje>kkepNg?E(LKc&HNJgn)unDJt+qQ_J3SynCL2z?k zzuoG2(t&5MW>oB#sgv1LsvW4pI&)kmx4 zu*;jLKf?#Mj^7Ii#b|4ZY!HYOQ>ALnW}J==7~gW>5|nFD`aJ7EP)D9E%BQ|a)DgPn zcSUN)*aKG#=U=N~PfD`l%i&9!j#2acpQnX1xMmKTI55YMxcgB8CROQ*5UzYyGc z<|xKVbWbtaJ8f4+V!|{)>Tc9cT&>Aa>$_D?gg-cI#cJWaNzmvE1?sFsx0-V)C=j|c zapZA|$WAgc&@oeeFCxL$U5KT)T5^poqLbMK`bO?b>vhtfqogZO)!Z&Ss@-Wal#gW6rm-}s#oiL8e8qcjp9FPzz7AZ=8G^qi&itO9o9$$c7}mJlb0=7 zAykaw<5N-NEIpx1QOvxBnhe(Gvo@siTpDy@wq4EJD$8<4@r*j_4F&IIE|+GZn^?9L zVVA&bjW_O~mh1*QBHmOa-WmPLZdPb)-9GMBXh~TaD|g={FzrrT=GOD1_8zVe^FxUZ zqVH@MGu}%VO6iIww2&!6Szy@(?lZ3T!WqI+IK239;(dX}403xcDQS+*gUy$su z%jO(SwbiJQJZFdee291TrU3K$MyVUhw-Tkd^F>XDf@od!Htfd4c}5yzKVR=Ibw9D1 zwYhh3d9eM$m0QW2TXHqxs@?huFLvg}b4GXAGjXFg;oD4-Y6|N8k8z%SHu_YGD85_S2x^R@B>d8-^V-JM5QR= z6AEsd7<1!LFfqS*Uz?k=;UCH}^_Vc^3no%xpMFUi7moKy5sbIux-fTt_iS$W^RW!M ze^ay->o)bUAI;T!zE5985KXw(gORphLxQqg!-|Qn!|5XL|I`R%q?BEHlg;f?s}+AB z7wmG|K#v&|d?=T+t3GT|Fg05L$+!C6dbPMe((brB78hGzIkk#0w`_;0J1a=dIU^~M zq_zkTg89eGoqc7-61+r@c3$;e4LUBLkOUEg`Eh^c#(5JNT{tCFOc#Js-_KCl?A!X{ z2&%Uqe8|gdR0=LVdSE8g#){ysfjHZ~c>CatMYQ#iP#o1}#!U)JKgQ)pWX$$lgOFHC zmf-Fc(>086FWX)n-reH8;RvOOBFgJl)P9sfB-IY7Vq!Ux$(gF(3cjZ9@5dAxYs{(< z#8bC3PllUDlf5cEep&Na()Kpj`|R9uv5gVgM{7`&Pp6HPL($SRZK8?f35O3mI!Kcz zNP8jGte;`8&j>l5QxPt83OLG{ra(vJKCua2A9VYC#yu}ky!G_Mj&_U9Pj+IkK7m0* zM!Z{km5&|0J+3IJ6JL`zMTnJ>wi*yV z>ezl7!e$^L5t$fDW|P;%K16|T%=Rv+`*jCDJ-PS%xlA8yieJNm4Z*|(b(IHG67GMa z<=i}D+I}8%lh?0EB^r};3$2~67gSn2PhcQB!xGf(SBL2lwda$J40^*0_v!IUu*It}DoyS>|cif=({dhdp4*vfcan z47HO};4YkEJdi{Y6skmM_^v1qI$hc!-$`97Z>%N3J29a=x7HNEWdpkUS?QSQ3th8Q z(Sbt@v)qHdlk}8=$yXEsio40~-!_9~JDmxuyuP=wG3iA5jX$2afBrpGW~w?vop4X@ zdTws*Ia{(59gep2@#V{}m=EvX&n7Uiefd_RLx;%pdB@XY8l%#?73+phm7`5FpIhml z?+?Cd9L<926_lbWGnwIE=vRGu7Hui(k(76{T6N20>K~>VG}?!-q$HCS(alr2+*(NV zT$+}?aul^^&%7aa6s|{~Q5AqF$UkzaWRgbqzC%;8&Kp1A`#JxNZQy7n_8Q&~!V{GJ zj}#KRBwA0tJGJ4R()yIql94nnZz+QsHd@C=cs_v*bwAEr7s}@f+91H8n62m}E_+Nv zwj*h6UhV;Ej7xj+@!4*e-3JsgOF7%@x!jhYms-07(Z4~|9rsOzBt8Cbf5R`~n&p%h zxps|e$E|m#o2r&lcu{W_(UZw;Rr%`ntprv<{) z*H5>qyRX$bb~p&g3jfqdE_rLXSW;eHX$9DU{aQSSzvV}~>sg5QnZumn)5u#1_%1QM z)#^S_o%Q}c`azQocW{X2Xr=A)y&C;3ta5fV_Or1tR3DR&?6rw4mpM7#Yh{>N^Bn&W zEuA^#ULPeIS$S*W{F~^^R?2xk7UH%VwC0jbODyz~u2`>_g2AsN6P*b;g?h*44?nXU z!fGuKsMK}nedG*gV=X8v3b~J+3z~%tMVYz|1<>BjNwdR}f#+^+EMU$Y|g4UhMTlbJ%PF;n^Bw8#G2%zMeK9VI%xvrHV)??c;C7HRH3`$D3pI(gb~ zeyu}aw}xZC^v=_*M6nFx=EJJm;Kw;XV2xYj4BpdasDhIf;indw7-rpT_zPUq6#*$V zTELIc@p~*?A8{>80KpBKECXvln1y|zmGqQU=Q^At-6r_8xdTFj{0Vf3#kTzuv66eA ziG^_xz$Lt1oc<`MuTre7p!*4{vg^&nlC__uSU-+71>$o>b&dfSnpXUbSG;Z>L`3JP zV9D%ubkUwOlRrpSBgIFCdEOH|r&&{b&0%kygps&)889`hvU{EKv)cyM@I`|Agm`*0 z0H2!~&gYJ<-hL~CyW;DK7I}ln>)G(zoPU-^S^SxEz(QWrD`0uqc7rX| z48jF53dAx0FpW&`HzmV#QuI1`u3f0wkzjvyGOn3o)>y7PGPVpHP_%n`j z-`N=Nc0?)poT+Ko@9q@1t+_ov`@Z$HWGpNq(}L3p71Y7jrpua@qZ%!{5U;#H$g}LP z#KaZpib4+aD9A4R-inr9)f`E|!xfY1zViH$Y)v)F?~6Aj?3wdHfQ}Nm+Be^|&Hq$8Azr#mP@#Xc(>^b zxJIA8>8rBOnP@aBNi#euC78YM%8yu4e7^upme$Wi5*^mO!`o}3_r=II`UCWvzOhNl z`$$JbBDn6ib~HyFTj7VN5b!wqtv&<)2m+MHG%;Ira)*8h_?&Y^5?|K)^UWY?WjI}K zKeCr(-e3p+Jp9Th?F_gi{{Mjg-sW;&)w3^=%12Q zEWDBp3nK{_guF6{FPSQ+y^*w&H8EOwYf*0@ul|$yBk->BSg^IO_i=J^^^ifC&7$Sm z#E7)d5#jz|D$lXYEmbwB>1yJPyk}`3UHe1(A3~#N{w(DDqsI1V>HTT+Z%OStT=KnXsxR^iaM9qasT5|oGeG` z*~7!fa5|>o+B=db*vIF>-uW#2cu1Z*Bav4iGFRfqGu_bgv_A_@(2!lKcm1XeKZR>a zd9UIj1^S=7x8>yPe+Y?98TD@eB*<&9dTM2obs9$>(EZ;3sU9=9Znujg9J)Ur8jzh& zVdUP_MS0D8UsH@f&7YoHlzb3qMf5K9Z_RY1J8(YiNp-2uDgJC#{%-Q6rF?g(S1#8r6p)XK)XM`ACehU;D4 zB^r|0S2g5K63upj&~MRwb!MoQAa4|(WYNgT$K?A@B3>E~ySDjt$Z3D!X80J-&M;2Z ztqdLaVelzYR$g462-MxXIYnovx@R=H^Y&vw;UL9a<4lFWwi@4)O(Tnm>dJEU>k2_%vXQp2~ZOf~1p9)2n9I$*zs%ap^hO zPW$e~FpPIO4)~s3-&%eqf47!5Y&)+#aF5ZL315MER?@Sd#@5kdYUU_BBO?9dimpv7 z=Mxbv!?qja2|mY?-l4nEgi#XiSzVKL4QTL!+mzi*(BmI~bjD#r3;i@URWM4L@~dz7bTj?7Wz;fYkT0KHX|&sBLXSQ_hS)PAi=y6jNfS zVNEO(b}Dk*I&Q6a9@lAhy${P4BA&f$E@FyWkSE<6)#AOB)aV{JIT@t7-m7c&ZEZex zd&tHD zQw`JWBQJJW|8D(K>go7dRf@5>EcxT7*I@dY`*)UetQ{Q27e0U0`DuPgz!b?nPKn{z zIJ(M7t64P2toV%m+kR)BND-5oTD8uQp}t<}ojgG}b9Y)0mSt*-!T8K9#gA?oE>vw+)#RY+Dmpwht(`Fh@U|6R~wF84?hWEK=eN zS95M<34I#J_*@lkSiqx8m8n+7Q3l@UAtjT)7UDeaI0aK0Cnre|q}ENO(Wr?{E8)SL zg^@6Br8Dd|Eld8}WHI-ODUBj}_iLt0dUQi|2!IREsFaqk^T1`N{y(PPDj<$P+13sg z1_|yyxVr{-3-0a#g8Kl$-5r7r9^Bmt?(XjH?)=<)&)NTe?YHiSuBugEtrgFjinLaF z;hb!oHmLPI-}LX}Z3Yr*i`cm%774nR@+h;?s{{pbU?0iXT83{Vmw?Ya|%@BJ(f+U^_#AQ5X|XPRTs=obwVfJ97XCcfT5 zUI8g9RiU_c-;R_7rmeR9#D~dQs($5kkvmS$--6~*xpw0ayAfsNt;e`T$!xxDhvixj z*g%8bjO*e;`yJgOFMl63f738xGv!5)f*dehF zJt#K{i-?_LB(=--8k|YKX~INl((bEuZol&-LF3fv%Oh?1uDqsO@;JlR{#05j)c2RBDBi0Y|>*L~D!bgkt* zuA$!te1@*z$=@2e0-wN+Uix9wkep+RqrkE3y3Z{@_Xsff;&iD|R2#S0?TwWo+2gDfsx_*!tecaQ`m( zU-PSLlrNS286NA$|I^(6PffeWf}kN)9T(W*<9-|HdT5LSU zZetdF??uq0PpjW}>518Nr?Gpn*J2Ot#oQX94gm;#H+?K@>iA{wlKwFPr%0-qZW|z) zQ^&R>!OeHG=HtwCpBzKH->1K#?;&uRuSmT$4fb~qJ8i%y^&_1vRq$S$r~G-!s|m_V z&#ZUb;I>>c&DtE=f~o$dpuF+a+UXLQozDV`i$!v27H&-(D4%v6Sqr~Z&z8AMvZI3abUQ-?+TS0e)NSw z^F3ORM{*B#r4eg%UHhnPXN9PC>0;yi6B{Q7uX*juN7v7*UKh=~2$7A&xlZGw=9;%5 zs(um=j?*76v;clw&z>n7S>Yn9j49dmO*1>i(1=H_vO-M0<+p`ShqLFQ+B&Q6b4B@L zd-7t9GcjIc`qKNSw-J?!g0=UsoiB_4ORe<$DceKzXYXBFr(JJn)Y5gyv;T~wMu5XU zGpQDMI6b!wuSQQLrtaj#iF|uX@!Cnzh0j2N)q~H-&ZRf+{ZZUPA=l?yOUdE*X)UQ^ znF3|k+e4+4{%VtStlqn~+1bQaAIAuS$=tTQFek$nKek7EXxb5Si@qjBLL!AQ`bQi>@n^ zhu$TGfRKzWzg}z6eP2w#PL4HE0pTQ|2`uO|q@J3jk>1b{}}Y?BGH-k7C>F4N$$Jy4J0YyjEHmM>l)2cyCWco)C3ghgJGAVL;jthEiR< zga>qJ3!pfVis834KDLNmSNLGtEyTQU5nV1_fj()h2o7jIomE3_f>t^6%?Dnq+bO=c z4o|-9SY&lkak{7!>XTSnyUXmBQ-rhGB^_KDss#3O%$`gqhctQvW1LG3oSGVv)$|kX zei6p#=v+|RtT`Qh%DVKr=eLcf7IjRdu@ojDACq%d_s1u?8@N*ICFPq+-;iYsYHxMg zvVjlFfPiI+H{d+bzPY2?!RcVz@jmapP506~YG@|8`AC6e*)Y`dNLuo}tn)gQ%#2fA zf%W{1p3GTU?#BEli%W0nj&kaTMoPg+ zZC_&FOhoJiQmrExM5qI+)p3f@srpt_Y5krjxe19HYy5J3UBecL=CKI>F!D@*Ck5B; zaP&S&5-w%1jBMaCrxu;<@|hcIdzvD?jbx$5zJ8?8@ga~7 zPOW-5??Q0!_@hmIalf}Tgq!GB2MsK7J(kw_O=Fz(TX@27u?!{AoZ4OXDDPrY({oNe z;^w~jL)DNmW?2`F6!#@1WqdO;GemqGkEo8A(Kxi;@BJScCr8NozpNc;>+funJ&AmO znfO2IdQJ>F9@%@r;c6tgaFrg!?sUsEo~6@q-(1Z^0-IF?y`XuUwRAMCmTyl3-^O7p zYs1>+NtR8VVQ>^L{YgZI4E_}9#q$^+Vy&SN2FP;ZY`|Q;O)w2^;-5k9^i;H;4$9g7J!OJlP);hvo~szR5roS(|7tXak$uE z&)K;P^Ug=UH@{~F81ASqGZH@3o5C-=K5pYRpl$8P!IvZCo%?=#O8S|D<*|p(wY$#t z5_961{|sY%ke^9R>c>RH|5e`@;UKS3RBP}0D0KQpCc39t=S{-X#fbISPx{n2LzK}E zFo<&eNt96hsRMC5fa?9Ms)YYATz|OXqA&wB=_i4GD*CeqfV`kBSJXi z-$S%wphgi%EYZZlwWjA@hEUPA*w0<9ha{Ael2;BYw;f$wQ8*fT9!S|{Su1K9;MmY^ zKjdrGGUHnq0N#YOMXhUW3$|F22_1h965JWz(4t>Yo}BX4lNE|BQ9O-<{*9i2$9VEs zdyQ7JE*UN4I&}acfS!l~)q}S4--*NyIJ-lJVhcvN68MS-!qv&mK-KB;P$Y+gv-bC( z1fOpXuL%n_{ry^WqqI7G@;+ux(i^9bGDsXQbc8~D0QAr2<>JEM6+c4|$sS>n(f`FH zz8t}q7^ayrv?b0EWv>`cAI2`$RwSn|K@!rwH*w#uUEhp71M8MsqzflhMa9v7;*4%bjL_0(T^GU_VHT?bjP!s5UP?`-m9JSEy50wx!MK>kei zDgLU$JM+1JG1h$w`s%pmk{+Nwi1SRk7xth4P^rNaT7mNgwWU2r1^F}!bGbXXilQCo zs91p2>HNV${iw#E+*(xC(arS(=rTuVWF^r35?nuW`JgnuDgJhXlYwTrX)}a3$j3}O z-K~QjgiEpg@1Y2sK4=B7K5|1!$?3c`J$5YINJvE$D6$b9W)GDdhf?`kDO?6edi7on zl`8YCTis49>m;%*9HUi1iysYS@IP(f5ajH~`{{_K|Q0;P+ADh+C)U>%Z3my7|esDm-1C zXhvPAxnDUNfjY*ki2bZlCh1lqoBb7?MqVMy8AiHW3~A(EH{MejjCh={Ri-V^1_YtK^FbK|`BeyBwfxOy=x>q6odGCGujK3FO{G%Iw)R1QyitFRZeG-ej*zL4gQ zdHmun&R^39(n&mKtiIOxpP3J29CTRUUDm>ML4}uJ{+ckYTS33&$gdPRKkv|fg@$jC zUuKNeN8~5o!n_apysyErQILe%&$rUp`+gTCyrH%YHDV^^&H4zW$5iFiFz@)_`5|%Q zgY^Al;6H*hksrT=VHf@)zx+SRga2*rA!52vpvk?os;8H8z3zxRY;SHN8fv0lw9Z|( z0{}9asih2D0+z_XZ`)&yDNmmR5@P*P4zro(glJAjBQ&x6Z}0XddJ16Tj>UOj)? z45^xBH*?zn0Y<(zN!pc@t?E=~dGE}${no9%5Nti=v!H=Qb%`eSfr*fFDc#@Ox~)c$UE zviss`@SMR=S+>N6@D2R!I7d~#vC`{-=3)B!Z_JuyShaJCtmmFJD3)(x=r(wRbrXB< z7vlANQ+wYQo26aTyRR9LZHOdE>eq>R3>kE9z+7R6H60+!K)6bL>}Dr-u7tsJ`$@yb zw!ld8Vi|dhK~r6#I-1wvj-ldP-nB5E@(&4MHJKezY+S^pT7YZ&wB^Fh{UKeZt6Yjo zt70?Tl0)mK-tBO<9er}I6YNNpt4xBH6YtSYw&o`A;Xd4M%Ty-x+D+>1b!Dz@JF!eR za#8KUXEOt+2zVIjAUWy z?XMqglAF0eUuAc8H*}`97|rKJ;oD86X#z2C5meszR1qb}Ye<>RYtY%@u;o#dwTm`q2|uX7Z!FL7C4&*X=my@a0r24a&(@Xuc7^FpbaCt!0f+W_t_mgLPJuG5*d5=RaguTaXCpa?1Xt5jj4 zNyyjo=AZRWf(K8S;P$V|D*_`#&C$-qJ;J*T0F1l&8mZx#6q z0q8FWt}a7_a`(N;`Sv0ZagCAJ6w(*t1{D1C_ab5|c&fxGsf&eb2MRneky42M5P!&j z@*dssi9LfTBl;-mJqIM+Z_6-=UP#sOVpBY9+arksRjltrOE>gMwW(B21@UDSxRK>- zj%R67oNqyl;tfphK7RT0gp6*_Ywoy5Y2G-3moF6pPLg)6&_wPJC&*_W|9&yOlihiY zmsAp%|BhX7r&2ubbg7%DtoO!<y~(fF9X+GOziF3&L^;AJn8A>pRarpaoTlh|R@+i7D|rX@(Uxxy+0< zO>Te7M2VrqNqe-_G}MQ?E+iTQ4H)8vv~~GAbfNpfww;z|+3yHhy?vPS^=QsVQw}sX zv_ixozso=~0-U~!)h(x$j=zQ)o3)2-F_;EE&KY^f=r~3;BZ{~9L9p5#ck$}+98>)v zz5*;BGQ#ebFW%aQY=Zm8 zKe8$}fCUrXbuyovRhH*x=3kT(E)-P+4(H4T@Sp61)kfJ{4Tj~OgLbg22(pf3%vW&n zXA0*hpYsXDbxh8vTTJ#QG~QPrdHwhwCbEhbn!HiV{oP@ZlmimeD5OH6VC+A(^$8QU6n zEpo!^4)>OD7zY&rFcnTt33*%I*mAq!eR0Q`EW4zNlnQHF`1Pw)>FC15?+?j_7Tr2x z!FtFcszunjEA`uMw+^f3A%~S1H*)vnma~$?0V-q48I&gkWH~DN6;g5z)PLQv zqxomaFYCtWvkPl(*~tD=h4jyGl4JW+ zr;ke}oB{vVPyT)?iNVFEYg)VIr$$=|uvzH@0=4Kgg%?0k0S?pn3I5ljk&6dn0TT*$ zR5ErT4FjL!Dqd|u!z3)Qu z=jhhm*+r*mUo>_*9;@#GnAdz}groIAz0E6c!v6>vqB#zH;gfgYsYExk@!!R|2%ziB z?lVjN>h&M8`4WIACd71JO`y|rGIKrrecmAa^S30;={U)~{pL1Id1=c2Z=`am*^85n z!`A6VY}4O2kR;bnt>~xaIGQqhW@bOBQulDI|8XzyiS)w_&~_LcIM;=DH+@~gAQDKs z6Gj`$H0&=oeXTMB5cz9k>xxt`1D6uR-d*9_rB-iY12HW-dp{?eom<66p(&0H`jZ1dihBsNI_@J0ZY0&?y#+sX9tZgh3^VU<9;tTyz$sg8P!KV<)BNcaW42-~+S7tZ0L zp8R7@$kR<`IF66HQ3b+}E;(6*i>ZI9^qzCqP+_W~B6}6+h)kqbB|v9Y+=|@Ww=Pcj zH;9Xlbc+P54ZB`*pz-)Rm;%NrQR1ovlR_c7tzMi*_bRlBB1Vq-@6J)a8ftOi`)BiX zeVW)ymVEEeukX_Jg-H`jlm`ZxjBn7~)fW{*IIR?$QepmO+hZ zIbH6X#=7B#a}8Wo6aK$RVM5fOGCcpP`3ecMZ<~rS+XE*?Ngc%#Ktga1x%$gVn2Gjc zC5N+>tTc{7B1HPCRPNVQc6w`m=~8q>$kR$hvM9{EG%U(4M|H6*xB1xH5$3G!;St+5 zQBm9vp=Gd~M$cXs$%mMY(!+c~K9+<$5B zP(d`f!wcxK`W7VVm{T{)PDfaAWSVpw3`SJpSMe zi3w3}p1RU*9<5DDUL<=FTx5LE$Xv{KImbl$`_()MQ4?|#h0@+XC`PB&Y~J5;idxJ~ zRz*X(W4tqza+VUTNf%`ASt5mhodpOI06cj>#juJA|7E7QMHWMM2EK z)UH=1BfgRqYuGB2&$LD#M{0eV?+20iywg#N*e2uvpy}%Mp4(RSbTeW>TM$nd{-a#d z&=gv%2|i3?Iqx2y{^-7};H^Ty3Yi{Rw?&X#-x9f$t}CF@a{|w|%a4m_qKqQ=)$|a2qW{6`zp& zWKSkND2X^uxPfzhZToM@{nLydMD+C zkPl$&mWCZU+!9a%%d)vd(xi$f&!h|o+5dUkMsAS=;1Nr5>Xjr2cp}YT*BcKFm82y5 zbAV0^FW2?0>?QS=D1CZnB<;w0I;8YlCN<)~qC~7eYUl02rK_$AFHG0O(%by0Z&SOc z+#cvVoTBek{Vb8+u~3?})%I4b2_WSo>ZM^;(`=D*UEurel+=s2;24UEJ4WG&=drf% z$cH+}gML%qS|-exFt*dPmefU((qY}(*UJot@A3xo+5e98;++Zx4WaAQrq$6} zcE>nc6?DkS8BmUYnE2Y^nNV&DzlD=f|L*^19{gKccZrm#UOE0^30ZmF8jlC^x{B6j zwtPo3orBh_t$a)Thhwqktl1Q*yApncdsJtl!XED@}w%*p}qs5iij&s#=Zx+qZrv=ha>dv!^9w z8ap(W{{&tP-v6Ph%O|2(^8kl0bL;RqO52_T%VXak6jH2>a3NA>2;&au_=ND+3Dd=!F{IPlq@|nuED*UKSkjyK8Pi)ze)>2c`j*qvFA9Fl73w}0#%|6kxmwV_ zc7;dbdhTLBEE2GGH|k|JB6erk1l;hsGCJ=zfz^}N7`L{1w*;qeUy*+1*E`Rs$PMr{t$`rG?Uq=@5NU!pY4hP@_Ji^+*|y~fu>zLM=snZr{Egf0Flr6i2h{v zSJ{ z8LwEwYrPDR`H55bDAgn^_1Ykh;Z3>cF5v^9S+*nh%fj;O1CWYAbFbMBO(FaB!qt@2 zg1nI4{mkb=is2~0iTaP*FxF4>Zbjqs@^Kw!z8k_sJS^sxYi>sHgO-U6AsPKC>VP=T zp|izSDzDh>t;792DGo={0rOzq5W&-!u*{~1#paUfK!OI(J#%CAmAd_Ixk+#9#hU$uWGIP2x<%9q92v$5R?$!(U>sr;d4J9e%AykBNFoIcvrD` zbHF-_WTgagp#UwMl;$nBF3aU<9QNwxcub#n%fvUJffAQdEUUux^Fz~hU(>k)vJGa* z1*!&dfq93}yO=i$s(*{xi+?_5n4u+3(8p}1jNP>IX&={BkW_MKfY%v>{Rit(=}tAw zwkUS5k^a}LX4Hu_Qo2NgN7^UNn&)P7cOp5W$i~URG74m7>d6eZSPRookXW#I8XXgK zlY`e0q-o?Lf8E1dN<-%$8S*u@WJ6oo(FK}isO{BJOtWi7`#a|{nT=N9-20d2y8G*c zRgebH8~0eN6ne|0N4xc#6!ba*fK+@Q{E^$kz!G%8%BRt%q9fr4q+upv^`>-$eagHd z@%f`NqAa-~n$^dyvc>+$sCCzCe$+@euW3%C*l8m;@t~>oF{Hw$z}sjNiC>%SxpLvq z@1*W#(2HR5>4b|cGr?RrD4GE<&7Y~rAQQm-u$)xrPsP4$>*FSrMZ_5}_3VH-Ds8cb z8FPyyD^G&SooW*HSCTSt2U8I*t*pa5g-!5}N&X3agkC!depv-6dORD1RkDrWoJbiJ zy2oGFkqoh->fG%4RJ*!%s#O~QwqXMo?%qW{fA4E6db%ngcEUfh8-(B}3^2dO;vzCX zf92l$_eV|QM&u8#UMNml?IMN~qKc8zJEBva{ifES-cae@lLPSr{}*Rc6o*s9MYb%y zH))MZhO%o|u?BqtHbR0vbbO9B^_Quly_*Mj=oVCq8rvyv)vr?BUMHV8LWTpH`}%Z8 zy>?QWPr~A7?e`DWSw<%2#{fGl5nWWm(#SywUg=2 zkFyY0M-r?8Z%veO3Ce*&=T!z->#F-L zqpTr!NaI$fYH$|XA-AsE2Cwe(h5N`H4riZAqHGpL$GzO3{l0D6h~vw`Y39TSB=S#G z&%-6Oe$^zddBoM$i*c^++bfbAZct+BiDqGBlu&pwV7ZCjxdj~$$F=pB@f3IOxsFSe z^_i>XKFWW%y?P=aB>wOJs-^FJ`2DX!DT=f3*FRi!bZ8fgpCmy(#MLLnAbg3i8`m>G z7H475MGPw00cQBKVN(u^viAoqGx_V5XVb*0MpWURu&i=2j@&@@+LiN z>eZRN54ht88>Fn44UbuO&Jo|3V=gQRl6T2}+)+9C>FZbObVfxDpie<{s>AypzJG5L z7*@A8hVO;8OHJxhUz9@hM`B_;mRAcMOZoxM0G88TOF%X$sO>6lxd9AK3?ZV|Be~X-gGM# zd((r3lkEhWtwlqIglSt1;jFTJ$kmH1$nTfY94$c~ZL*Wdh%)t3!Hs5ox9rsDDWXWU z!$<*;OuDE6)&F(}uH7OAXxc49+d1}Qf6}CANfs3E7|&SN!&$xCQll=x911B$N5w0- z5)NCin?gwC)#fv{y=0ChE1mj&t7I4fBpHrU&}`Q3kxgv#Hv(xqiF*7I(jv*s>PAC0 z6Y5HvFbZ2ud8FALg$cU_ZUyy-qP=t zEL(db`I(OISH-g@_k35DjLR7t8Q*;R(pFS9m5UiqoCT4RT>C>U*(^6&QAPc9O<17u zFaFQ>?(uFeHmq%4S$uq0V&;?n0Se)CC=;z~yex39464Wo(zsug#h`7X%0S=9+4%_V z$?%-ZGKVB;sX@R>JztBG?H~8{GwmazD1;!?CpmoCQEoFC_pVZ-0%@Yw8WWS`v)D%G zM*6xZZ)brwsl)$!E(3zD(1p&gs{6vDhxN_t^TajK7h}s6zJ;pJdELvdXqS>y<1mvB z-9$~NSJqm`N(vW7$lW)nL|^7udxSH&##XM~3~qt2x$_=y$^l6|Mklry0QNaNCEgu^ zDsVl>lpelpC9+#89U@cBgQkI$t)otEjGzXIqW!9IP08htOVA3H4TD4a{OZ7l1Xabu9QFb(B& zSDM|oAo%M^3EYOvt`$K4cMKhrruc&jYW>Pxpv)f`VRf!e7J9TT&$6W!K05&nfmN4% z$;1r?KWw}+r#N)zR!xZz08yJRm_)<&1bw^MUt)^>mY8Dpz8LEMyK05evIJ&r(#7)mk^b0Re~j(1Ns`UJf;uhP zzH*LK$OkpIVGgBh+eyXh52FH?#oL;$Oz;b`<%Zyne9QY-yAYAS@!ev?sYIgbHV<|# zC${xYRcKR$V*kQUMD`O!iRgc?dd%x>E%huCzu$xyI>@D{;gBTVZtid_enB`Rv~wpt z(3`()BxT*iuQ%!V>myx(;dhGWM}j9h#OSYVV3&P{kz*8pq%qyzpqlZy!MrN?eRiueYqzPfA3jY;K z$Td`RliJiPbXbx@zE*O`z<3KPWQzD74XH}C?pn+P3*8MDk#mdP zk#yrrPv}kl@CnjBa{sCNw;qMqjpf}uxSwDBGK?SD)<&GhnNG5 zMX){VuMRcm+I40bi_qCVj{4;J3MM4IwC;)dA@fMG!NM1bY+6%Ngc_`9eVPQ7Y-=Txut|Id@53Bdh?Zla7X+G-WcHxJZ>36{}{s8NpsMx_1$1KJFPp9lZ8?2&5^ z#0%b6usn1SUc-Mi-J_A7{)4y+%;nHmK*q%8enN1BJyI#FP_?$lxhFdG{xLkFMD><2f4}DE($FSJ!N!r&NDGfeN(@8sQ$dno=g{?s$YpBA z=puJMZn@ld9yb;qG!*U_h5Yj9-!ve7!6SKRp)w>-X`-?k zbge>U(h2?eh~ihqrh(WkC3Cp@Go^b0l?1K({rU>$=7g0wBwd|Dg%&QdgQu`a=Ph2c z-+!M^8qqmyWM53@>{{pRehb*nv2sgxyCkc-A11~s5PIU~uS|DYNMYvTj^O;!(PCr^ z+3^~ofQ+tdecf$}l9Mwe#}>(4R#iAVXXHwMgXmene-kdY*~Ywuy-dUL$8Id~R!OD5 zkT*VrHQJ@ot3ATIljBX#$=tID`2`;@C$U)i^4_@eiT!%qx&2qoW5$E@qC1-+x_0|- zhld;hJIZF#>0_S4SEd0HU=T2KWKoA0lrlCpwj>NK^~A7SemOp_)!jA*_>a?ER{Vpwq)bRT)k&dvf!}trfBJ5pmy*dPf!?<~k0TYkFek zjo7C(;vz`l0|iYkn?S8^;k8H5JNhyCY~AFOlEr|mxm>EAAo+CB6lo8MmbLGcKw0>q40Vsoej`L9$U)T~!)@|qSO`Ft#lk0_@ckh-b zKX~XGVA~kq$VrxR{o|KMr&+qvN=zXwoYG$L=`doZ>szhl*M<`=pI6bmMyp~8NlM^T z)C#ZQGs}<-1LMdgfD#=)Y3C&l1I(CDte1K=crg5b8Gt_wOiU{V?|TNeAi3*5Am|3s zuJ*@+;7PI+ff0}9ab?39p0+|kqBlmfMr?!MQ|&^6-ml!Hk{F=9B?w3V`RZcOitW0F z`C5OAQ_Hv1)zf3?vi57ng>u0cvb!vPNDV$nYj2Rzx_?n#4?}}n>OmJ-BH!{R>hWz4 zHM`KRKl7fd8dn2dTVhDv=RqFjeKbf)7*2xe#M7UzyzI5BPsRIOmO50l&i=~zJRVaE z0CD!*HYfkyNu4@T&GKjvW`|`}3zAq;5P1#p z>1xb19j%?${f2^(+l&u2!Aw)}!nG9}a7?EFo6lb129L@Y+4pnf=hSdbpN68dP;+Oq z2P+Bt(N<_(Kp-JlTmSJvo~FQq0LCL#ie}S~`F4@a%)Qmm@uIQ!mf#8fs~)~94U3w- z^PQ3h9`Yv~qtvM5pQygfl(6ofl=Vo?eO9}u^8r{I%)c%F4q;7FRe;p~FR8Zrd2Q@9 zxY3%2?dO7i&Tj)yv*#}^T;l(DeO?u#d?>U?Pj9KwVrlkELT7-JrNHu zAtP%sV()FSo6i^0p{bRcM_YJ1wBTFYCyoUll^M2nlWyB-BfdzpN@It>q*vaGoC@`F z*XIaZKAMkh)Mr;IzW6Wl6M!%i&C+zt&>IRV_HuCf$wYK7t@dx_XUu_4qQPTWp{X1j5 zc2wMS=v?NFiz`J@7)3@8(MVl4R$Tax`HpHzp}G1U%31{P9tJycewY;Ee*7t2*t>$y zwL^3)46G{?hVozjZEq_u(B%FVIe9>rXWNa6tvT+nQ6nq(@i(T$I}Bh40+m1HZBg8G zwnd{(hN}HjB=G3CpOzWf9o;D?2*o^!xIfkS;6khu&Pal+z;NPynSJ**_ymQE%c|5R~pG;jR;TRWaUBd--n=EMW~JnwI) zGj`*rk5QHL{FUQ(wGLD;p3H4_?H?YYyT28InUHbea*OzE#t3TZd;h$w|He^PM}lh9 z2H6qsUL8;3uN#^~(7C?!6xzVyPS?`O-6CC9wR)_URKvaWHMf@g67}BIf*gpkC{8{W zdtH+AULV$-ID!>xT$6-=hftnbcFI!*JHg?9REtK(%E`jpu)30 zKK79r`K~+M+t*QP65@#E**GmLGck4E;&ev2!_CtByHdO6{;l*QssWoJxE9($4rGGN zzlge7-G*qUZOlcZ6{}m=p7yq?bgs`Kf^`K?m@h*SFjCQVW*Quj+yPwm4xSSswguim z9RJc^IMQ%FcQ5YH3&gRhlRjYY0vR8n=#pEK);`MU=6BGB&LJ{e-dzYaNN&|WA}VL( zx?=@8Rx8=HNPXw}=q0N(|K{B1K&kH?^*_o22s)UId9(cDGX0I|zgD-WFp%=byYwHb zRj!)cVc`^?Md154cb}jgMP{ZK=8QaoZ70ArP<#>2+TtlG3z&lZt z(H#Ty!O%yNNdo$%lp)FFY+j!$q%z}pwGJ1nN&CKAh(q{-2B`88aH(WS<}=$S~?>ke!BsS>tEg}aU+97egG zh5p=CAC9<+lp8X}Q}0o>5Q&+sP&0N990`Hke}8@S#vpNocq<}S{#g3I1x*(Su+TTq z)pZWsq$8IV!0+q@STHbJ9l$GxuOR*_kqy>g;C)`lOpc--$*9#~&}r1suscRC=b4RoJOBDH$x2EI3_59 zZE9}-2sya7#HW;=XUkE`KySS%i%g+r*@xU4jXSA70cjtnKyiA$RXWA2@miR#%)c(*eCt|Uj$bLL`OGuS^$z}pI z95uSAE5$WhkxVh;$cRV{4^{P3oqY6IAB>!5heD>4o#bq!^`qVMPsm?SpS^HW9hK6S zZ~&Cu$9>Aj%NmSv^^4+K-N(_^dWw5Up$;{vkwLsCFjV>Y!)OyvtDHB3fc@3GwU(67 z0j$bi5!phL6}gv&5ah*kV5m!swCXQYrn>TBYzG0t0|3+1kGm4>z*N8t)7_}rvfeLG}OfDKEcC1Bh9%M?=I zjbNt$s-ng`Fb}i-f|*HSN43r{ z!Im}rqL7d$vrRg1sE&&ww@)Gz7sB@pHQaM}l!qQyzQhe4IyuY~Tfi}|C-Lp2FkxpT zY%rAXsCL;RG@Y`^0A-B}&_*}}mC5>O0{ta(Php*{zY3^CBL=2gYv&is&jw7B^B?^< zTwElxmZ%$3t149VGINA0j8W>I`E##32cOS@2nbW%SA|||;_fLEKicS}&y>@Oe3Rw# zqet4#1n4b0D8pb2-fklFgVar6o8($DUGNLJ!HPRbg<~tN8ZK)K>29azw3lsa)iMwh zItZl=ZFRQdh+=Br3CT&ig^vTcxq_(5iXGZ?Y&1IaC^y!Kt6a+(JdED_T!R)EY_wkL zd1IMd1U6rYH#6Km@av7={u`Hx^cOlf8=!7{_WaMjZxeNq7uxix&`5mU@xxQQs%-~?E4=I zx1SHzM}LdG$Uw7d}VcHA7v zCg=9hWM@;){P}1WF93P>u-u=XzO9W&c5^Zq9$=wjJ{7RmrH6c*30)LNz_d!;YCg{5ES+3-FF$?r8k;UEc`>gF$X)eIV+`G}^t zx#of7p>1<##WKC^v)*mNXKoTAB4#mBuS$|rv)p~%hy6Lo+%Y_;G{v|3KX+WcHf)7; zWy7VQ&fmoQNF)*M_~Njn9NSF{p=NYF!S?_bMYHMk4%kpa6P&BB;w8&-EYuLoaZ>aI z0X_#O5vYuAJ`gb@%LZ=Us{KYaZd3EiniPUUcT-I9x1H}_+)Jw;y_Qkc^L^eKB#{Ws zejmmBJUpOlC;m1D+Cat!-;QhEH5>SvFPEh1;E+)se%Sq_$LZ<8+zHyX#8HIrZ|&f2 zcmW(yyB|VGPTN#uxZa3+X@QX%JuLz^2;M=tG78^_25=;`trVIZ^23Bn)!hrF6RPXp zQJz*q%*FPTv`6DrMj1%0nzPwV{03WYl@7KjUyGe2FDz4TOfP!!$+lP7_tL9pzjey- z@6vn_t%ng(klfZDc&|9s!HD+O zzIlmnjZv}THf`O0)+j-8mfI4Ze5H4NA0yK-&*6KY_6s7=v*j%@m!6+6)BmXKT_;2k ziLA#UgLzbH3+PbtD`=OS^ooJn$-up)dD}Ko3S3;)(ODtDvg=ehB2@hFuOV6jmkO=s z79QUJkEySWimOYyP6!DujYDvEcMa|koZv3O-Mb;UyIb(!?(XgyTpOoxmyda7-ub52 zS^eYux_wulI#s)N?fp4tAN=&|`bx*D0ROqh$NP-)Org-pb){X>#sN5=b-xW4!tIyq z--q|v8C!Wq-(JtcpQ_>2^hGY0_m^|yI?EB)jF&?T6CeNY^1lzZlVV-kUJv5hgDV$q zov$h7>jLLuV7M+fQg}VG#!+dVKXB!lrXoNT6MM={ewAY_p(+B*QreAQsj*h@y z1)5VIpnQH5&1rm>ac#RO&wTB=IeQdMIW9Nfc;jSgj(Kgw4ez}Czjx&;xhaB*bB*;P zvVArA-(GeX88a&sT7%R$~DQU7*hf(9$93G0DG;6pOA*x-7wAqC;>O9;=>g##e) zNL^E_X8SRWAtSv}T&FcVJzFv*u!{?kpg-u(*h%gZdT~*;s%oRtK33T;1AF{hEs7s# z%AOj|OMn^(U2}^?++~*~MkfB*-r1`cSZ95@ad6MqU;hNLf62mP;hLM7 zL46*6r&c|Xo-#oB-6*S*l)3Fm)78mUIOUP_B56S^jqvgFL+E7Fc&Xw^-Ofd@9Rnw} zGmExuzWNuDR7l`SXVEwR%&aKyVQfV3XWQ(&fsF|GVADi%Om-4T>mCcoS+l~Ad&0C= zEV_$VgxXQvoo`sH5td)*-tn2_m($nJ_84n79{b<)q&gW;xbXRG|0JAAEE}F2#UEu~ z|2^V`$*;0`w7gG{Z44S@y6y01`QEHVHII zsf0ZjDJ2jYtlhxpR8-r=-G@N^1pUTlzmrcBn*KRbrgs_q_Tup;5T0LNJt@B&d#gnD z2}SALWgRY>9_L(eDZH5zgGmPRvZnU_N^D3HZx?$Xrr#vi1`teMMP^74*zKdmx6;D9ubxXz_&xa{?-ZY_^vp5~?Q1C6%;S@TBTm1sm3< z?vU;ca+a4M@rRp@6UC4LgttHL!Ts_cdw$gCA{bC^ThdV&y?ZB2Bb$2)AikJ6s=RAO zQ?@+8(uTip9};O%B=$asP`Te4dn@U$T-l4?XqUhqN|C~01k;PH0@Q$E)oR9;9(@s{MrO*`HJlnXdN<2hASy%X$>~(N?hJz z1WWg$HrO%82RB>pX(60}#-M@cI&n$Dz`h4=n2EYPCD zBZvp@&upia3$N2A)mM^Qv?mL@SaGV|7RFU{F^~KR{=H&2T{TQ5VQnf`(msP>_2{#!p|}IMHXlvFCo&K?Mb-Y zi_(5*e8`AvAg2(IKlwUNDo%nHCCsSWC(((u=P_`^z_nO#>~`l9jsR*l5Z)tbI-?wDm##9hZ$vyj!IhP896) zQm~v;ye|^guSVFg*L7@1B-V>G%QyW88oe`DFBaH|V7r@t;;RM@l!}VVEjH)^`zt)9 zhUTreYXviO+BhXs=wew<_(nXHqE@x$DtG7ob~t50(@#uC(QG5%Fp}-0g!PJ+BU%jT z8rSz>awFIrv!{hlGa9;O>!fy5X{54oOlV7@l*L|bUxI0+SC_{xE$tVW2KkswSHzx)l9nhYTG<{CiVOrMNkEvT9%>u7+|r)hp@zfU#BD+O+M%TXnn4$&kJ8D zYl~*fl5P?3{!RRKbn8M|K&_ALQ_)eL^YV*2lmDj$%XnN?d{;e>h7tW>L1^+%fc%5i z;g{fyefq`eUc|bR%{TPhT%^*ZjV_;)wZRIB;y+~T!6)$<&FBa{=H=eo4!O}kyd9I= zzjp*DwBf4Sw#lkZ_L%zisfh^d?L~z!pSP_Xzt0YR^7xs(SJ~=EKMcOELY)((?~MLR zoE1f|Jy$a~Z}-LSvNcLF>9Q>``_T)-SpC8R(_%Vgw$Rv~xDvqMxmnHY#imJ9)PW`>#$DT?;LOX z72E~jf3gWR3t*}^0kVsH{Ia$UTR+JnAzpslGg~pKJ|8TeWKMhgk719)&9;gD*k|tzc3@fLpjRNNmM>y@Ig#!-x;hex42M8R!xg zQMfA-OM0E|;z=G3Bc5ktfEjnViV!rauNhwLtoP+WrXcd==)bZcxMYCpQXz}>OquG1 zfK|}D9?0m{-`k~X-A3b%BX?U zHdWb=n83sbJ@Sei(h^}@ZV048%zNeFD&Zs$rW47-YQE#9SEJmwtV;E-4$6qr-+8MtXScmQg3-wMzGlQNpt_`L&Ut;+5-v5J1=HZ~I7)Goow7|6zyN zZ^24E*ONfa29{wuN-;KFyaZCQv41J3j*VjEJ(R6*1Lh_Z4vaf^>!^1qYulQj$MD0jY9z8~^ZKSOw2DJ6)3y)y z8rxlkn|mAy>v|LlueV6=N)6xZK<7XX#B73pp0Nr6+9cD#6|3Mb{JF*z`^ROYo*A^r zrP}*EahQ#*KyYxXlE|MiEG=qm2ia44)qs^oyKFN1!;H`*n}%__wr^SEja*2A5pgk{ zgJkyAsHnq5f$AQg>{u^pRcNfUfm<}7c&EF zNrxXRiB5`mw+4%qOidHz$M|x%Kc+=Z&wx8PP4Eal?U1W{&HB+4G-ZP2-tcpg1SCz< zfJ8$}Uj$C2&N4M}U+p1l;I|ZyBW)P=m(~D=7U^mW$9}0)$K-eD2G2Fsc_3)Og~&+r z|K>&!=8raqglJ~3bB2m(g16=Rh>vgei&xCPqjy-wVM9#IKLUAuU8M zeR(84g-;#fu0G9A(;gUOH=n^!RW_sO#NFLxESRQzWmi*7w_D#4WDg%`!Z{rmOfq7E zD=d@=a}T)u2WWgY_72ba9UDd^4>sh%SW(?RmiEs4{YztPo=G6XMwGJ!s>EoXo>+e` z5CJ~f#!*A2?Ys$@2(2bKxvjpvyQ8Tq>1~xm=ZTsazs=>kYwGY zK=zBRMTXeZ>QrytZ6~~5!?uCD?yIHIhdi|muFQ9e&A(281}_w;t*-Uu!goZ?B-x^G zgHcxZB(YMG!h;@xwtvO$Zal;r?ogTq(6Df{BGbz0%a>UL@)Gyr%CSHFZCk(#rDvsI zAi>p%9oSZa1^dCAVmu8{o>WLA@`MTuEVBk_FuLHj&K`HHd;M_@VOi2{zQZf{mAHt| zz>Si1*``(|ynZzGH^7|Nn8sPJ(2UYLh%8%PQ{7gNNqouwwW`$mOxUw??8Qz)^D$lE z|LhAk0XVpR-@UmmKmB)J;NQQc(i|GEDOTvg-);$Nffl4kzXUI1r(pAuB1;OaRmLO# zcMx>d&dDZVD+wN;5A|gZYahi*GG4@1{QG#B>vQLnUB8#e;pJLjS>FZwaEz<0@A^N% z}748Y%Uj(4mV1Iv8>W!D#p`a6r;v(Va?caDv zr;drb!9$o9r1iomm_W=bQ>HfRDkWwPQvn|tLUBSl7Rh0xa*UB zsU1AkWpqEiXnVQQE9?O=%Jps)>IpDwpD2F%G`Gsgczsu%^kA7|ikQ7^h4#)^5wTcA z&eRj*k=4RG8CJ^Ey#*ItIG3+xUD8W%xK{HlrJvOuy>&l2119l?=#7gX6e;0(8hR`u zC`D8F*-(DaR4wL^L9Er!Az4FFB#HXR(+5Jm$57X4jMGh|1)0ox_s7v8^f2MhCLR1Q zH6ZCnStdDw?DuI{fz;_>KVF9;B2B&`MRUk=iq&19q|m2BM~ul|+R9Ci9Ze_iC9ZJ5 zl={bLxwoS(yD^Zz#BdY#yL-qWx62cRRZsrM&tDEDRwvHHVL0jU+p;ew480ao1hL3^ z*Q?WPA5faxpNga((+@E0Vau+ir-#Sie}=PpSr_6J1rH}kEe=ys zQ>*1DXLnL%y;ggJQCc@loBIA&tGq$-o1XW?q?bBQ<-(3v6D3MsJJbZAd9s{Q)5CPW zh+i6xQL%OskWp@_TaB76_9G$7x#YGVbsCtBEV}WUPZ6LwO8%nvF_=#>2WN2M^FzJ;b=OW{0_+# zryxL3T1&SO6d}otZ>Px8pvM2H8}dlcN1Gjq>aSk~|9g^j%%JnV@_Ik(8mxT}UO%+; z-gxk^Qw$^MXDvXd%tt88JGOA}0k)B5^{{d)6s}hP2qA87XXxDvK_XRuClDrL(mATW zfo|8Yq-#$2ulNq-Jr)K0amTK??Ke+<{q`r5nqo-SS*D;EkO8#9+m;C)hKs!UV}!+! zs)u3LV=VgWFu(!c9Z0{7Qm_!yhvGJU@h_vd*vS^{vjPiX-4uVudu zH{@GR)pm5pzs_dS>UyfhZgLDt6kb_g)?)WP_Q0DozQ+>)xgsrt_xJOJ(-FZYLkn-T z{*6HY2G=Dx7ex1!%8%OfS9%+a8#r)%p@pQy2DD1LR824go2(7oaVFm@LsVH^lc%3z z32eJzGVVeE?Sis|Wpqa2gfrO_PZcBDat&nry9o|qUG%ZAs>5EG`d22ow=C)bh}sb& z^K70{BeA5H(j|4jGgGxmWw^<|brA<%)qln0BsJ$iWi_GppU8W5hJX3gtBQ9a#UC93 z93lf2L0UtNd2ceCDE1C~9L{|#Yq5LFayXk#+1zf<$rnuVc5g+tb2J<|0hB=aV3IZs*J%H#n<3Z)J%H*|BN z=pF7^QAROK`d<4=0?2cw&rh7!$(jMR6P<%w68dUxxXUkS-h6GO_Lik@B?6_r>lMyX zPqB}6q=J?w12^B#(EU@kHy$%?!z`#NPbYCIxYfekH@dr(sW3!fP>v8FA=<*inXja%xb*{lA**B&zaShio4e^*jnp^>G>^ZfIlf2jeK zx%BUTe1(<_QrH>2JPgc;~O952Z+gko}AKt4SL`K;kX51=aXC)^uN|-E}+Ym#v(iv z=0d)0jr~?e2}gD33JO8C@yO%Zu)*_SlGGqGP^!T~wC9(+j}3(?3)WgWhiJ3k;U_w6 zf!dnhL6oO(Cr)aR4OLr^#Nx;EqZH*^4%h#K_{gQ_YCRJm76!7RBiWn z8oig7GK*~dU&x9_4UIfWp0|ZwKKE%mZA}L{Qlom%tzg;}tFrc_r*twUnCW8!!P&aV zd}7;aZ%dsNTD_k4+jOltxwCw0b2Mvjy-6TKc>eaPLeOTI8ua`&3pN5`oZLq zq(kd0O9nZe%2I(hoL;ent#1FL-{)1dsoS^J#j#lte2JHom+ zn-hxPkCxclZR8BLWTb*%L5#N%F(pNa)O~$Ys+B%MITFs9+H`<7TmH(JWGRs$f48NS z4);{Oyu_!+8Bw7n0Tj|oKk{mYm!n1_li%cFqg}}DLMw?=%da}Ht*KM%&nn>akm}21 zmbt-ipd-WA4A{TTPs7pA`}&jnVyns~fxx~C9azBST{S&306tkSItJeFNL^8EZnW$z zk){3>Keuzd>guMG-2F#j3khT{7X6Nh{nAG=R-0B)2{UBl=gJ8eR^aB)vm{Wsd6_TT zINLEbuV_@FJ$U5GPyvFM(X2?~Jq3}MQCAG)YhS@25R2n~0eb!B8z zy%B1e|3zXN{c8?MtT?@G@z*hf4B8u31u@oMN7BCAPmTCikSknB=_HF@SwLnbnlwPz z8fIVJfdx0VVPOApmUqy5NZ@{>8^n@urkAUysHY?tl?NY}?ZsVprIHi(dIWTk=mbzf zYdG+&ksen+jGAh^G_$-L>gk7eviQ{!|86d82qprioUOsxdCsP9w`pAIj{EFYiEUS` z^EYGX$X2FN9eYuX7jbO(oKz2PTPb!GNa>)3-jFH_b@BfIwC*m6Z8KA$Gk^ToYRZJp zRSfVu^b6o$f%Uwk2=&~xHuWy{{}|ZtN`5gk!m8jEQn&8ezTi}0_mUe)HcLQic2;Ir zb>@7(`tq<^4B=2*-EkYZy_8t$i$BK_dT>cZv(p9MJ>@PP^a?#2q-2c*qs98=>F2B3 z>BXQl8*#3_O}GUuZqXl9v=)Z&*JBFa!YBrmm#=#cWy*jP_L5k>n{%l)HuUVj^=1dw z&zGO~A;8`MY=@`qnfC5|Zl|6=-0)k#YnU?>m5|1fz>8P)ukXlhwyt(>Dj=##tFlN4 zc|yhObBEtz&O`It+6QSOqyL7vTIk1YsMV8Z?>4v;-+xw@3m`_)I?HMBhKtbMYAatY zG)O$rGki$ylv&*3jzk@1a5p#b&$`hZORIzOm}9P64x$Lz%Y62mE#^mTqhuZr6aJq! z%+Gyj=JR(VwGG&`@?+>Gl7MhWgAe)M3SKQ+sTns#Xssl5WIvM{`b7CO68b~RnE~Ma zLgU?Xs4vc!N6y@#pMp?fLn+O%w`-2+x4>U98AxlcEK5$$;a(O2P{tOEl9vZ>28a*3 zA;7uGDTw@kBJ?fVf%sBvZ0hw76 zq1u3jC(|eP_D*kHKcOtzpGO8Zi{gLe&0(HE6$T_q_a@;DVD z2Lv~h+(3ZB>UMr9m(px02I|-}a}5ftw-z7TAii;Rr80}3BBt5SLgv`VXwqg7pTNae->dXysZ;QWbtiMwD2B%mT5l(kIV>vU!YZ?(4h;O{^Je9$W}awGaR}$D}GO! zWU1LzVL; zmF$IAe~2uEb@&-R zSa9DyU_BsGJ}v%f2ry`|5kIk*t$~l=>Tv0l8^iC0r~F34;ybIE$v%!Y}1G zLvvs%ci<>$U{9f1EMn2w=H%2`-$drRYZPl)4x(7=JQABJW2JmIrjuaDUs5cPW{Il5 zYl=S7T1L>Bq=|UONOiJsR>(w!ZP_rPTQzP9W_LU(d0P5owdfw~9(_7DP%$`f+&18} z8g2CO91XY13)MaZLUW+8v|W)+W3rl{`>4UhnhYLFgB;oM@JyHD=U(Gy9@vdHzJGRB zf9xMek8$wu;C|L=Z?4bCl)5kQXb?P3%+sjQ`|;l-tMQlb8I%7V&O0rPZ*^A2F@tUG zrN2C-Qxceg!X)xGIrn-edK)!8-rV>zP$XS_nRm>ePJ7h~f&2HCk7L;E?#5dD)6F{P zpxxqjbDT8|-(s4?c>ZZ!avZ+b>+3vT3g^X4Vg7@R-UXxl&Bq%e3`36W|etD89K}HS59wyskwLmj>G>7#hB0oZ?ebg2{Zfu z+4Eb(|46u56fzW`J5QLNB~6v3n%#Fb?s)&`WMyc{MF6}XF`<_2b1CVA%8Y2NBX}a# zPp$qISadR4IT%y7gov9f{29wu`P3Yaq!ah`>~OCt;5fHHG8DsJrjqwmg27twNldf9 z>4v8byS%1p$oS?!pxN1yCc(6ABv(@}+@z=_>#7NT-~*14NfWG1^*XBQ9@aTda}&my z5s6iC0{mZNCg!c|arvMpqP{M-uowNV50GEn?s)p;lseH3$6rn#-}_K_r;m82Ek3%Z zp3WYUd;384wA4-(ll^%qGh>1GOx2!4I z0Si{G*5iuS+?*eiPWOp)8o36?>t2vZ3A1)sZC37C|H-V6X%W*Ia+?#BUAcZp#Ff5b`le#>(6z?gP}-diq}Od@VK|kbc37JIY{} z8eV34EPss6$hrqv>Zju*WR8h%myaF4mM-a05q%e<4sdmdEEYBSqaTC>)p(><;z6O> zar4$iPk@*Hl|)x4?^Pt52m9qFzhR0zZgsRXx~W>igUFD&`}+w)1VZ2^<2!fwfzIcG zXjEz2MBtTkM4y_zN1~^OP)BG$>%BtaZM-nE6U=R%Dv)(|uYzfyAT`@N9Mj8vtO9xcn8pNh9!(SN+`l7k5CZf}|xJlBsN( z^t)VUMfiKbY}u@i1ms}0jj$;1i2dR8dAn%GM;RhX@giu!|FY*!aJr}~5fTJzJU8)} zA;+h7CO((ic6gjL%&`Z5mvX%+WwL)E3kZj$WJ?CIg0sa{;})Q< z9f~^%AzeV{)q)2;^rm@e_T)rSwDD+cEUfKguZ^em16Xkd1$J}b!(MV;Na=fCcV#8s z0KA#k$m^25vK^1k_B<-Sr|nK^I6OQ&IL`+G8FCiikH_}276b-m1U-4s}OJ3vqv=WYO>w&CNqSF+@^7 z$I=RE-*M+xFTyImBzK}X?RGv8lBy;-X*y*{2o^qv)ab6kM+@DOy5ecKLB@IZ#5l3d zMjx8QgKGvc&oV&CaVka)uL+~(J&BTxfuEZWU!F z`HVLZyu&M|b2JxcA(VzqQI=AQ`l1yp9XF}K9oGqvo?cBmjfS(m$3SY_tP61>Y1nWH2uat!OS_( zhePy4^Cb>Xg@Q6{r}-#zEiV7%Fz-4qe|^QI+;g#`CCiqi?-PsNrXViaZgKXd_GOj3 zthtGtF@03}nfx2im)P$-*Ahx~m14sW3#(EvGD zWM*bkZ_eC3Dx@#`^{QOfkhn_or{hf~b+iPQTP(C|jQ4W{FY>R5RD`U&{ksfYg@;Ph zM5tRbjft}T~WKPN?+e&3}xd){T&jPif} z$_*%Sgsd$OsGDd^HpD}&-`(H_0e~RN&zHC!G@=Ne``#&r3dN^&(w$ayp$EkCvspWB zkfM5?@^?|Y(j}cW#B{o_w)*i}z%tH;<$?sgH8>j_ae<>Z@-B|VJ z1;1SgJ<>kd1+BIF+bj2rFt+WtM?>S*E1bV#L{CN2-Qt3Z0x7Y8NA#T4{hu`v9q>xs zZr8vK zI{cW6IAHQ^;pzkM?d49=xEhAgofs&{A9Iw%XL?W4yM!Go75EqVE=)1SMzef*PaXq;`i zsb|p-g!1G!PG{85b%ZS_y_kf{RG$@I3o;I+N%s>%e6JU*BkWZl7Kn1EmyRU3jUM=~ zc&&%9MJ}fG!*cz5&_F~iH5$#$QDE9wnGTtJRPd6L=Il5<1t+ZFQaLscoflUR%eXl* z=ATY`{GPUIhZ}9_-FRvPsg7jW-|f$cwrPNsRl07>J$^91pNl^jtgGb_^R^ zI96}(DalmemwWOemV50Iz3yC_x?kt|6J0)~35?@$N;J^wO1O}Jy|L!rX@&%EvB-a` zZM868EtOa;QvTc#PaJO{Nf1%2-Kvj7&}U>mth9;$P0boOwMhF>Tgm7OrlpR=b}=v?MMBC$;!ra z{wHQ*&eIIoux79IuPYw5udlm;Y&iW220Z%4I}hAZM=zl?$L5MFwIeL&c?6>Fe>3g>Z3p1>ary$@Nx-o$-YE4PjnWz;T3quIJ`|d zzS$*L2F;bO4r*q9O>3GoXX+$buxr~#Su2M0V&t|>G;TKGA03O0l$nY;0CKK@=~B0e z7H#)ac73-onLZJ~M%<%H!F~rc5wsUTtjTQ_k?)2aHN6YSE&>Pg=%{!mnaNj0M9>2J zW(Z}j_|3`KCQORq)7txaGtmD-aj|gAX-q*{u4huQpA8b^RaOe9$ohmizK98@9aOLX zFru+t3SLCBZ+|(pi&p9c9u)y;!`dcZ!*rqk$t?Z&vOXY_IgZ7TKCgqE8HpC|+h2Ai z=;l1uH^#_# z5ovmHpss0|jvt729i6BPBlYKd*l8)2RUV4F+W)5oz$u@9Mte+@{W7}PFJ&O~t#jN$xdoi-#jfXdh481tTa1A)UCs zo}+X`*_ZY}7{Kv5c7@b@NzQ*XiU4-yF0>V0U({Ub8-DDjj0#(hPJcLhmR3F1 zFJnr?7Ok9`cHw~Eh=ykxKgz6vi)G_a;w7wqRexjO?dFz2kZ~ulskR|oU)KBqM|a$6 zs2k2iC9w&`kJ1N^UYiqQZ&f2z#{gd?`*D}1q@fjXtGTJAO9G;AVZMv&+G3~t%xu_7-r^EGwB_jJ?v4*+)>Y=AZg?7meAHA zo~dszh?2aF9AAqW-S0V}CvF-P`u2wj_z`7s1sV z1WWtK=oAHx6D;3=m$fwY1}v%);RCI3601<#Mn$+H(_g=t^V103<>hc3qx>JV?20x8 zQTMn{x=0bz3G1RDV_SQ>3gIE|iL;ljoSl6>+jEm(s#(|@P0sU`oq#1jso96D{BW8$ z_6BS=+676mUZaO%V7Qq4@eLPo)4FEDZKsQqX+UKa6Q72Fw?c=%qaVA0Rg~78OKqfg zQFE&&k_N$qTgu4(5YaEMkMfEEC~>5}zuQMldW@r~`8LDY-4lI8gsLDHfd?2zg)};| zKW)3`&MuJ>1u(nhUQ3nF%Q{5ScYnDO8u5JvIx5 z7PHe0+>?kx+L`O|nlqd#Q}P3!>IJUo@5Iq>=!jN?`hus6jpjcPgA-SYF5y-B1+6~_aZ zvi?04`f=xDjV)GJto#Krd3!;Jj9Vv)HB%ULc)?x!y1aoLe6Fl-{326JUpP=XaV&tsfTO<4r;WR7IqMu)w^Wg( z5ycMtvp#_r^bFHB8WHK+S$Kn7kIq3uQDJdz?1zF~cxr(_1^vbPzWmGe5wVrI7fXv7 zm)+2x{r8!Sta?@%IY^SgYWxxnv1KuJ*~CyO$?M0Q*r_jygb&AhL%f%ScZC>MHUtf1 z(hp>Fq?ZQp4wh+85}t7m1p5eR_QhGO4sEkO;a)wlt}eR)!!T|?h437BUYDRJ(!NdR zgn}2_^F5lt3ojxJH&=7qZF%gY?wC7`q_tS+e`$dJZ-r?hiw1tt6@Ud5tfCt zTIQ;Z%k8CFRlQdA>nJv0mXQqI8aW{uvb5S*PgF%r!|$PWx;+rDwG&t}VxQ97mMp2B zT&{Ysl~vjV!;dhCZ}KvVuRwvL!k{?)1^n<+3iY?|s=(C3oS$|(Tgv|`Y3dIS!%qmw zu>3+TWomy`8B1nn`~yL|3HLf$9(jiu?fSQnfo8^W@&kQiCMg-2VUx9{!Dv?s9UWwE z^St?-j1;z7NXOsp63a8IMz3Cfx?sJitS*in?}nS7 zcMIa%u|We=gjH3Fv@XFOmued#nfGX~aOY1`_)LOHc^+Z{`6 z;~k*jK8m8bo!Nslb@L{U#+gI^D4p`Pb}p2?#)RM=CkmXDa`sR{Rn+g{K{4XflIf`k zFv+7mMD6gVrMJFCmg$2G|J(L^f<4dg9sUnABDYBon}6ZW?y^UaBhZY$&V3VD6%kwr zA(ksff1sN8pgFPCK_Gfs>?9~O1NQ_2j|O{JpPk*W*AH>PdfV}4vuasqOVR{x+sid-Lmk;VOT-5bd!RBtGAs=ek{%g&EFK-LXS9RsT*`@5!MHw@0U4l=oPqgq&`YH6)wXq^F`fXZ2 zFtES>obH|OX=vMm50=qYimCXqT@IGO*!OvO_sJ?Ns|f7$etxJ@u?Z0H&|CPKr$Y3R zq1CqLpatvo`t7lkr9lrx(V9y{4dH-(H?e5HC;ItFD4LLa!wq6WO_HF@J6EwWW3#v+ zXtC&}eY_P7+z0jM&B?h>!T^(81&G$K2E0U45A4yGY#LZ#wY&~jl$vge-ypT_`OC;m zGZpW)F;_%yE-4wk%;#LM6o59Y9zMp}-!v#@XOgk)Z~xaIxRUvXf<`eG$C83LdflZ? z*kj7=x;K(||2QRzBHqgk*H{+@@ct~_Ztbr>ob<06K{Ykf(Q1~*u!TPFgRhY1i1 z8@tfw<7S-CY+%9UH+7vZVpc-HT5GqDGcwKL8GF$lpsS?$TZ8bHNP1l6Py6K}P7XRr z!LLo3^&deeg&`#6iTff&zwUSRz*rF+z42gCSSzj4oc4>K5eF0wB(^_(_K!!>gm<3^7S*_n# zC4e5Qf)M<^(Mkr?oam%@kAfz}A}=9jF-!wrar`WxGDpa!W?BaNoUN@abMeKu&`GJq zz34h`hz5?=Jf5ScU{DE8`3r4L8eDCdR0-dD#mMi^vIA*;1;pMA_a%B*Y*n~PCIxzd zd^O;X=FC*>>S*d!LQze>v6Zz;V2QDn)ZSj*fY4WL&?N<>zw-6II!-(u$5Q4w2>)WR zx$voxED{d*Q}p((7ok@4`nmEdhq>4x&+SWl>^Cax5xcjWCC0|iYX}YurzhX)loia@ zF~MRq`!zCRrzDf!4#NwdBsmYiv(?y;{)2rFzazwIUo2Q=`JqajV?H^co-XGWKQ`U9 z@`CWAO&LxkSy=x3x2mOl*&8=*_>><;-f1W*Lgzvh53B=$3wjn6^i%p30HyGYESG6; z?V7`h3*KPJs>>go61QA;7Q#frhZ}bSJU)~&2Jh^Jrod`#K>(W5H~ph^7`)M(+iPs< z&Rl(m=W>NIQMVE%GKF4EMN;h=0cV1cjM`erHr0od^=8z-t{aW4EkPL33<5&{wxe6; zCkJf6G`NxsO8t&kmFi~ym2w>=ELmto5eC|zw*v4{<8{W1Y;g4$m_HgTz_D%`cX2ki zUEXoE5&Lch`V6#!+E4WbPoz0nrDtU9F8qaqxWi2LVmv@~C*>OIx4JT@-s?VJ&ngZM z=}ZdT>3I7b79?-C>0G(nq^0wv{)Y!qPV!qnz5hFPeXlm~K)8=Eed`$X?EJ^pDyj?q z%kkjk+xUJjU4hY3+bx)xjSF-AO;oIxalcngM^=Qqe(>rwbM3sovrEv}hsyh@dHlP0 zbG?Q@WMGhEcQw;Q)cSL`Ti-L0*W;)mb}I^nIBLsnpGGfUR3C8Pi;m?j`g!SV55{&p zF8*bqX`XPxHtmDZt9}O#=g`}+Vns0ggVk{X>E25YijW97QwH3Xp4&_lnDcqj6;kE& zR5B#J_xItuO};2DKqK+zs`1F;(vDl7J`lNjSyeOb!9GPl1KF-UPAu-IGlg@zd>lJV z1iuki@Zq9!??EWaqp|ej0c7`333}tZ@j>^>!|pui3Mu03H7E2Ev_74Cu<6Gm#m1OcD)p5$xMD`VTNkl$w5#)F8 z>d?NQK7d#77miU%$4Ws@&B?vjCnonp(X&iNvRgCWEUB&PZlXw3A2%q_vidxteNNx+ zl|{t*FQgpcWum9M!zC2pPVxqhSrH(5t8DZ|v3~FW^ZXW|B?L$Wj~#hH|LKIdpQ2BF z@(j%gL#J0B+cYf3y{u>8=czu&5}>c|U3k=b_BJ)et@Ni~!u+Y!m1sDe8=BL_K?-G4 zW*1=E$FL&iG&8e(h@HCoBRKfn-8f4>Wxx9eom@vkfI=lH^^AYrDH186QUy7P@Q=I; zsy)Cb%ruLVuwNso(&cJ{{0+W9{k1H`Vci)>`fhzO-7NcHeSOAWF=*Wap4Gn_XJ)V@FvH@rF1bv4M#AF zJA<|3&S_V>i97taWF@y_9mKFgojylQtb~-@CgtV06-5z$0M!PI>x>zD#Wvv}C}gML z)}dz6JT9!$E(%}g?o^0w7X(3n4r3=p2vQ2YYEZKc(8Eb3kCi|+Bbol4>mLlpnl4P) zcMidb`1)5Y*?u=+j3=~grlQ-|#=S$Q6LGUu;vD9d|B)YnMZJuU8_U6_18rD_e9pBY z+Z7l?D|%g;XC!d(w|D#3A2uojJ!KyP9t9EB0KhKY&Z|?p(UahWF{_<* zeWPidi)fckx!C{5-d9FtwYBXkpn@pUB^}ZrjdUYj(vKh@-Q6W1-5}l4-5ny0ba#hz zJ#?Ifito;M`{*djVAaHb#Lf!cgo{jGYJQIY%gXJSh-g zIr%Y}$e*!&qDt>~u(V;Z1p>2vo{q~NsBLJ7x+1y$+z4d3oJeFX(ZvENkZ*gLC=`+r zq9d8U0u68Z)pmS_O|IH)RNo3i#AQhg9TOD~$G8H8w2XBG?{i1wIQ_mxFw;hxf%hBC zse+Mw1Yz$?E)*ybnKKu2w)vQ^rb@G#O00u4k*tY6CmZ|MSa%bL(+oZ{eM|>;iKu8` zZ|?vc8{$N}G);e)@=}BFA<=jMX^K>;GW6q3Dx$eiBm|gB`F!G2lO0C*9HJNPU!{`$ zUG443zYv5*$A4%~i(UN`bTNOg4mcoRZQKgind8B8HPJ3Rsr+^mPshw6rdP|=Dnmj} zHZ-cK1QH$fT1J@V{7aqMZ&N?LlIRI9+)#91yx%`OqG03m($m&&0e7eijJ&dWyhUTP z&v{xQ?vQ6_{C*lN&aZ#bnvI2m(n=gq$=1-K7&+F$W9d$2lK0_DKu{ekw$S7&sG1&j z>AEQ9obK%mMcf)_0-rO_u&M4mesqk1FZ4=nuNra|4@G46u<*A+F*T0b*!QJe-grGe zbyGVVkEDOFf;ZD1iS;O3kqF7@M%P;Ocaz?E-hO>8*?_kxMhR@D=o1`_nG> zo+dT~6RP*uXR9-4A67D&;&?-Y$eY9+XOjJmnDT`62f@d_Hb@!MT%|2AW#B{xFQHuK zi$0+yM6lItHOk#Gidf1@qxY*60fitVY}V3G3p294 z`R}{qEl=i99;qvObG$6w*az93OI{&0E9a;?tj-SPkA6l|Ys{%)pATENZE;yB;6j)L zM{>FEJ$p=|)R4Z@0WEOpdr!@$?3E~@iUh|YpZeX@ZRQ#Jr>NRzgq>Bm0-1zYcHQNx z2%{T8-?gU)_b!G{-TCy+inCN8ac(mDup!Cs!3Y#A?56y+5)Xz_y<~WwWUFl(3O=O|aPNL9M zqbK2vey(%91GbC%-V5ohz#2G#o{0<8gA_UTXALx%O-}+!iPYOr5hRfNbJ%va6C>Xv z-$%zLNGGKmZhdGC@2?Yy9HQT+`}!b}C{)3~>LpRZ46!JB*{KY&qSb`W9+{@bPR*6V zqZ9hD$ORH#k-Tsb8^Y1&={Ukv{*?0bO;!v(Z>UmzNx5GNw}X$NJL}Po>W@fh_lKI< zxZVkJYaWD@1p7d#BF+eFrVF#eqy|MDp^=4hg}EqE1Z&2ytZr}5UW2O~g77|qp)|4` z$1Vr_@CDeY>c1+$i+=IEz`_af;;jntgNOB?^sYFn2eTDTGwGp8gW9laBYUbF;;gPX z;4+*8LWb7PS=O?g4+d!w6^@*^gfGS6pvAq{qZ^)lF7}jiUhI{cRrowpam|3x9miTy zkG)gsJTw86+gujOmD>u!ccT^};atK^(yY$oIJ!k@h1py=(z`0$w6)6vF}yn?Mr%!8$V&aMvf8 zjc-`2_pB`Oantp(%ASWjC?a7y?Xu;vL*?XuY`fCIf}?}$>`^{}8{t0)A3(=;ddGwn zpY76Vk5S3{zJ4yZs)=qcFN6Fw;wUqcbps>XL89ZJ1Huks-R9E3@s?W=eqg@_`OD{{ zDttSWT4R%JdAN^j?z?D1*pS}su3P37c)xEm>tq88x^8^H39m-HBqL*KxHU?1QO!p) z+QRgGMpg$3nMe0*zQS{Ad29F6s)Ffu70T7R*-9sSki0%Vy3#cqg2zd~d1C#ZRRTWY zeIG6=t*3C!9vhpq!=cCK5s@~e8Z0gp;7 zZL{2-v0snCpU;K)Tz5d78@| zauAC*S~{&Jx)*%GKF%P7?l9nJv`?4s@vP~A%US|@)>qjerveJ8CLaom`U1y=5`OyL z_cWA+A7t7+9d=sBp-?Fu3RDGl2cZ=d48{!BPPvY#G+2&!gP0+mc{@OvG)01AnI4h# zPE@|Iv4opamabToj19*!V`;Blwge`K3(mx?V?ItV)h?QEgG)n=*_%1 zf;%h!qlw8+d|Q1UYM8b4s3hr&O|NOG3Op(O;Tbb$Cj&O4OCO8wTgpbowYZD3QBp3z zp!XJ*)J&>Zy!T3|bZyy?*uTSWXUKF&8JGA#&x5&l&ddsNZ{%WuS22#T8a*Mtn36oO z-Fd7-;yRjrrnp0pY9fo+AUlK0xj8{kB3)byhqA&}^iW>ou8q1gHMPHyj2a`=5EHG0 zX15Mx!HN>9Gwd=M6o?XTo~PP}RM$=mTk^FLi+Z@Ar`Yn|RhLgj+rcBQQO-!WGmiS#8G54@hwktK3Unv2 zd|x7R7?q;r_^HoEsc|-hPuy`sh8jYx<0&LsuaYydk-S@c$3GiQT&|HeEuQuF*IoMj z@WTCrTyeNRoW^Gp^?$h9w!4F?md{xNGvx+FG}p(J&mZo05{0Gt&b2T@+(QE+y&{M0 zb86pI=e{YmfJi?-e@fAbGMQ$O1b;+w2xp*s(nfGH%P4RoZaj@3EkRS4Pru~?qZOf! zx+DDKeH0~qQ*z`kisZ-V>*#53A%>j_xQG^b*E~rkf0Z-h zGB*5Okx^7aN&HRGqV(tNv-xjw&IdT8XGJSik^3_}2a)6Qh@_qE?T)O8OPuA&JMpe( z@+&qNKX|b=Ckbqk2~6tl3`qD8O;ghy19Ld+;%%Ps8>lbWAjaV#S`QdM)Pz*zhoVU@ z!VQZazv~6SSnrCtkJE#NRh>5}3tIm$);i)SsFL}^k47xlTAMJLkHx+mCO(hn@# zBvbOTj0awvBwFYCFJnjtX*S@3&309gDwCj=UJ3~F=3RX}t?~C>ek(3)Vf!=J9|2`) zBD^dLRbebt6qax%A*m4Uu(%{2Qds$fOh3%|s|dO|!(L6;dDKWu#>x^YvQ9w_;;W8& z_t{ofuHO2xma2XirT04}jO5kl5bolPGYB}@ub``~K z%+)?%%W|%ivR(eXc_9{eU%YqsoQsbr|MiNLX#sq{?13w}g&$Ubr|&qXJPmX?auJMl z?-7o4$qPw6U%UG|`jb9)B>b)HBS0$qK{HcLL%pTfmyfmZF=TA0Xi*hO5M1i;NDc9< zfo)tpR-r*&mlOz*f!Pb1U+rZ-l<~lzY0X*^WpxYH1YMbA@=Rz<-KkaE+@`*~R1dsL z8rpa=Z0wRbh|5qm`)OsRGQ3Il!x)#G{m(h1A6Zbk3P+`4<&%6ho1Pc4<_m0vCwNWi#g0()LFD2iS^DR796`)Yaur`) zN!q2tFwW4mkCr~|x}x;Y`Et|Be6QRUgGH9NAIkb2%tv0G7RajQ%$Koinz4m`; z&Nlz4fCF_BoN>L`rS2ziI9Rr!HvyJxv%Z`^b^&>T7hx@!dm%l6Ab1>+HPM@1%fb(3LuKZbI?#fV;fV?|hS zNn8-a^FnknIyzl^*FNj!Iqr0n{#uRQOr+~=hH~D;=eR?0vy{ZB{UjM zZAYenvlJAs?k~9Kpp*DBi3Oje+kwY}6B$W;2VJ4;Zyhb;+KE>)MOvxetVM2xLvoran0r&5T*YXK&# zKr^asHldkM=N(z1Kpmt`E@51zUN3J0w zein@9LQkEb&%RCb;6m9}R!wUvmu{OKOh#~lU?&YhMNruJV&u&_gEilQ5jR5(lqM?Vq+gs+)*GTF21jnoOg|iE{pwb#NL_k9Um)a)?GY2pC{eyRLN>< znzy3woD|H>+*)&r|6KW`jOjYOUh2`L%B=r!@&X~Q=b~79H}$jQifJs8vQD z6E+RPM=es$J1$*jr8!7wk>}I~FF68_orfYTW@B7ou<(O}AO_rnBo8j;-u8Y` zckJe66X8@g*yg)v7$EPy=gs!#_RC{#L1zk+)HzV!uNQiuz;Q8{R`a=M#rg!Iw}_eP zsL4icjJSG47xr<4=rZZ76Iai>jHU-%XG{qdk)JPZ=qo~ODVQnS)D=>DS^HP;irCPt zh99)8M_)Bhy|NUHlUPh5e3mEtI9JrF;l(s81l8vA^f&2S-uJ!3-ukte9y>Tc|FW~? znV1*{v%xQM?$>Z4F~(zwwgHQ;VBuGV7kSkrXnu)3;w-b^*!x*sKOLF#@Tv>n6MF3c z_uO%8CfCD&<7L4r0hZPn4nVk{Q@rW%&o$Eb>8X9@?ucPr_T_vGu; z)TWLjU(H1qVW44@^jkw07~LoWq;*hALGZS_(rJrh`|-n%}8H1*;_@F#}uoZbxsRQ zW8qNPAEuUWKI|t$l^^$9kg5r@1r&TLbU3p0Qzf$_}B$rMOa5ARmbg9Sm5LGD1I=Y%aD# zg)5m}Q}gl_Q8Fh+je3SjoARnY|8g(I)0BoHNWjZ_1owfXvA@ZV$LHQKLBNyf5w;t6 zk)L-*g`hO;d1ml92IJ;ns?*c4E7V<1RcUYfeDN)NG}9;8 zV-zd})7Ij#oqK&YW_yTMB2H9P@83-@3O+A-ZNny?J^7gxJ3gr0SP9Ce=(U>fmc6<) zLHP#$hQl=bbWnZ{E_gWnMniA1ZjF^NV{-;m9!|iO4zBzvzW(om1yhpyh$edT#C(Zf zskAjZP$V?GR%&Zkbs_0z4SZ|$k-bhAH^z_PEE`eU^K_CnK`=0m&e>Hljqf8FOyYop zcPbI(qWz$Fidk9J3d;jA?UWPIKrf;as>_y-A<)9u``bf4+ogO^gdV(Gts(piHs6PWYzAc=89G~tgf^dX_ z+k-e1PabdQQq_G4)}9o~)uQ(_2n8Wn41S;GLv+yNEOtnOW016Bz=x>mh0M*}S$Vne7rc6M||G7w>IF zn(NiR+^8oYeuZUHsenD-WcymjrS()X2$Zuelm#+#QHWrlaqz+F`!tW@@)#sG<<9yM z2gRqb`U^+&!TK>YL7sIW%HkuqGPr4q7Y~jphn=uyD|O1fUq&}!C=4*Y*9s|(#Gkbc z0wR;eO5Dd(9$XA}k=78#u8l^{8w-A98BDu?Jinn9t~9CS`$ro%zMzPC=G6-V2`JxT zDc!w|sM!|#501ge_`YN>0!f~s>J*_wHA_H#LN*X&i!>#0mC`C2cq9jk)?V#`&JJC@ z>d2PdX|tRiKV(zsc@pJCiWupk02@cbXW4l={Ro139GmE#cYiHQDK@O7RG@Gtt*5JK zTen!G?S}xx6)4FfR)u^9w`m@~jeHMYY_|9H`_^BvkS*up4ROu20uz^P_j^&JCq2GC zzZb+l8afK@{!B z3n-(fYyo=XdQ$IIeZhQ7IlN^kD{~Rg9>$~(nGc1kG?x>7U=yg4n{Z!*3)}&F8E!sl zxx8weJ@ismb9uQkwvc@F$!t9maXpI*kNQW?m?e?~L` zNH6#JR{CBown{D&iq9FsWRfYsyxw}|R1Th-0y5FYp?3t0usvYr{$pTKq+j{Y!HqX~QX` zAdO@zR5O*p(XSmor1G5|eXeH{`9pTY5D4rMJ8#KW9M&er3#5fvw&1(!sTLXcbgq@y zp>pE9jug~QVoZ*Gz2byM)9x89t5H8XerFYhma7&1prD(owqTHR(HwKNBQoqP#(OLM zn)HL1dTmWT;`t}mnG$966HC+U2+u`g4-2J7D3XKucd;;Sn-ywiCa2Rl2J=U&x2i+t zfqM>L6y2Re30PAr-2fI?1^2EhZYKC{DK|B#`?XvWZ`avyRR=l`xvwbP%&)TuK{3pr z?XB2Om|bI`ObggOh7T@UZ`HZ>YSslansU^8uz7Ghc5)yH;M4K;*RFpcf$@$SwTybu z(#~bSY;)3QX=umt-hzx(m?32pMleo$tqQEp&LtrU|LG&`h*WdnVYABfs87%y-Ze3= ztuTEe_5Y~wVr?f0aXzVU(zb*Y}ael}Obx?bn zdkTp&4%hv%Ir!?Hs@AI@T|Y;*Zq4;7g{Y{4T;}is0x{ZS5hQ8K6$eiR40#dm6DY$;6j@TK!l24}5EpY5nb428pQq zOX!wcpzpER@_drDjIocZ_F5o(Bz->Qd?_%DRX<=*kd3CeSpk{9V_&fG<=ijV)R@nu zPHu~EpS8sn^PV}h4!BdswuFUSpzA*Ab)u7d#ql*o_#8CX zKun!$RBW9~v~zTR-XeJ-bj-*W;PBhMKjv_y=#Ry8d5H_H7g5G#CYe`v@nG-RYMCwQ(|d=p!cw&$&3fF& zU6YB?jZx4aNvOTXpIie+8AY~*yGt5Cq{5U|GP{@@$FjU(Py6iGpRxZfk^NjA!ajd8 z`v415hes~Oj8O>*xB?;+slklGV{qVD#5_|bj(fKSr*^t6+1{$_4UPTC&QZ*AAW7EOlV<0`t*pwtLItba4w->L#IV zE37Ge39J$<8cuQq8K1!sZ*$IKq7u>*==f)2yyH5xR@mPvjDMJRUBPbh2~*z$5zTeA zeHEhH@qT2PN4|<`!Mn~}4izE0#l1ZADxFzUq&ThKIMC#nL8upreiRF%#~U2pK%hjN z)*}4ybfmmuegMWwJYwOhu4KAeVXqUBSoJj0mz*yW4MX2}%y7UZ-)L_l1uI}ot@WtXNnrxhME_3W;V^!Dj`Pb9c zAC~BEmUcCQ5!wr9?2nscPxDfB_$8j1wjl<4we%Kl?b8q3PBx3pO~D6;Ao}qxXR*VQ zv!`o^@W5ix1rI>TgU)?noe@nt4!-azG^P+!5kJCy2@4DPBx^Av{7zbWX0&_MYbw>tEU#4+=?WW>o4&lmX`g+mfgg+{ z){KqVQ8MTg&DSqcC zwJ#(CGZjRNAz#Q<>(x(#j63W~rNnE}>Q~X;nwrIU6hW!Zpcsk5YJWw9tt@TO%|-Rp zB!M|R+wW__hV>Egl%drdMScbxOyRc@$NaGJq<&-o!U9!Ni@#XYtspLKQ`oa*QSu<@ zykC#h4)@0bshguX+${LG@AsjHQh0|RzSK!*eVt(IED*P@YNBj0kfy7fxIPDtgyGJn znA7h0J7pLW+LXzF=)dPenfSi!MUMZ@;iyD>3lU6{;**W$1LBP= z{4||X))xiPpOtALqT|@jn)p`5te>9k1eBK~lWd$ztwy*;MRb*W zcGRi_p&#~pmrMyh?F^|yP;;~;#DvdfUrzzc2i~G^1@ldVvaqN`eF-<=0;y;ks_5@Q z(Zx}z;W)K?wixZT@63b-i5;&zOx?UMsOGgo+%~EZT4MWwXztzM5|Q;ir#N$1lBX_0 z_lN9a7Ijw4nk_pmOB@}><5t*XYQUjbJLC|fO2oqkzV_Yfv$Pda(4Fhhn0JF9b>iH2 zCn&axwnQDQ&iSe)aeW~#@v&C}a&bmV1^w<6P|U?dhjNHq#}!5{>XH{xZo5FbN~|!M zx?Tgp#`lwHDkUHS8?E9SYtK)Kle|=bvhzk8F_7x2q=mq?BO(^AO)I^A)Nqcc>?ba= z7|TiWqO&GkrY2Ulnu2&^?w%YO{gHXIVb3L3>UxgO)EfzAWlv!?v09U_Si*igYH#c6 z>1`$%1@S}>J;^#4q=ozY!ilP7*HyX#T-2_)rh(%@^Ks*YzG)^sLDB4T=x3&}Fzu%Ns^@QYU1{AyYoAhd!e@4~*^qBAuxF+Sg31 zi6EYNM5%Z+`ub@XoyNru%C=zTVIa0`gl*2r%5?~|vL8MdEE@mY;S5fM3GdJA3Js8i z0*bPB)erQ)i29JEEKE(ZY|D@~EGpQ=!`MAKTDVN536gN48md2NAVH{9bw+hkOoT5m zX&^Kqd@vgnXu9{n2KlbgTy<*p2BU(a(42j@Toz3`6!jgq6TYy-Rb`XLQ#hBS1j1u# zPG2bowfTyLPs##2lPU)y+ZR*IY7hHl@J||;uXi|T8nBlu85QVzO5)P%O%V|`VAHc1 zGK!F1P86h9)ou_-uFsvkv`l@-l*`o&*M7H?Pk5uMldtP7vr6x0VDq_O)Me03OcX~3 z^oCXTqUT}+!4xWArENgx`v&yqZhHu8b`ISOd&`D0#VG?w#aQ7BbJOGD8;&dXM_?EhiaqrXpHrW2S*kCyg$#-!nkpe;ca^-~-g3!;v6Btx92DocBc* zfVom0L*3uE-(qcKY0`8ZrQ$(6SZ=0Ovl|efnF+O+?I7_HB!dLCe!3Vc}mV(8~CxoI;MlgdcjU3KE85vYaIW>vd7-Fd^o>E zC!MT!;R?JO75`m@YW|fxx*Zx#JFklKee!oXjlOH{=nJPikG*a3{2o7>_JJad1>NbYFfi44A?tM)1`DU@w6u zspR7O4Cilf-;Jq_#^)ak2pge}V5S0R8PB6n1Af!mZ^`-Ra^pP`S6hmjLkb>*cl!s>l@Cve zin*)deV<$s%)_lGn=X@|<%sC!HMq7{V*k)n@6OMh^N+%tMDB;5{%D4owZ*q!;pB-{jO|9wl5%_s!J!-ZAv!d!ab4_?hwL z#P0?Fx4rpRo_cn(1o2s4PwTG|OzaK>w!rAbqhx95t##g)Ww7}16a>Y*TEj?|_zN;3 zT9T(PYhJI`=JgpH!rK`Tm)eXUjfB-&68Kf{fBNZq{v`qC{GsE_%g+5pRt(Sp;)`~`t0{A_}JL6%SSnp2h!4{>_0p3WlKFA=f(H=V8x*@rRTBIQvzKv!VAs{ z^0L;VDrHg?=pBZ}_GyXxhZg4i0iId4qRegnYM*XSO=itcHjM^G`jcgAG z8%uat>kxQY#&Cm9`P+y6+J`ZqlZW*X<#LdE5tJEIj9wGQjOwp#f&|*jFebb!AXcq@ zfZnb7{ceQ+^XqoN-3XC?AO%b9{;PTkVu08Z(KWgzUdR*EHM$apj@Ec7SlKkVR_{1(PflUOc~)#)5h}D z8i|wTv4Imf^NzN292Iyf<+Mor%BfWe_fdWa?|+c;#&{lpP;99QAd%m=_kTy$Z_jOw zkk*C}-a0{kl4mWosqZXHnGz`?vtsQq*cVdB9Tu#WldKn2svUmNZt~y7q6Y&wL#0Q_ zvy$bn0qgr==fC|m#fN$MaX70*bf+{wjJu(JgY^k``?nu!!NfD%o(1sR=ReBNjUm38 z>C7GcH;Vj$K>zq>qX6-nyQ2bmc4`&BDr*10Z=lKl3pD(b_Wx1*=2C8s2S^#IEtvde zJp0E=-)sU#1(Quf=eKP7e=M6y-)M-m!OW=9?abr{|`v~S1JFM z*D5oC!B=N8?reNta{4RZ{Np?5Y=Bm@299C;vy}X!Y~H>AdIb#r^-#>Q)&HX8`^UT9 z18E9vKKi4e{iD$Q{R`COz~HI%yU(ltJ9PYynrxK-Ag+ke`u<-a!vC#cp+x|LM=M)# zn*Lv`RFecik}(7}$X|uxe-x(YZhj)b;Qf>j>W%*wD=k7QbT!!Yj(7WCM7)1t^j{eL z7e@bgEc3rG`Y(+B>y7@j%-38F$5({o5xDO!Rf6)Jds0_hmd!ixzYYU)Qr&_Z!|WxXp}cIB247yi|Se|6zsUAXmT|HXrU@!(%P`2PS88pn|`BlyU#mq1jBb$pimzl%jp z-`|@8j^FDv)BWA!Z?WniC7!E6jDgxX%%6hSo+$34QUeCB66kz-d1g4TTTr+OCs%nI zotEt~)AU$cmCFsnuf={}^PC>klmcf!OmCdk-Mb*2y7ySPe+qRQEn(Q9=VJ0TD5!q- zzqnx6^G>99rO`S_q@PqEDigZklmkbc(?Jj(}eE48Y)L`h7)nc}{6J<z*RrPguf9Zo_$Bl}(Hnzb&y6;YUaCPO( z=yEYJL;SrzaI>N~s?Yf5>>dtvwh!gC=;wb(T50&Zl zwGzA$$)LV<*Vf)`vk2kb{WAMnaM+75vJ1Fg<{P!=Isif>8ZO2kQ1!9TdhM*iI4UOj zhpVz?9iLx5X_&|O_IVVY+y1$!j!wo|og!;eq@B8YvV9!g!IHw82h{fqT5{UbVtZ(&(j;kguwFHO*s!IuhnyH z$0miIbXMW(XERLjo5Y)sOqrlWcI6!kp1N$S~+H+oZ<{=oAHF4GzLU&)KswC$gqOu#U&~`HPvnk5&2+vXuk{eMuJg|EuG4t#MV}l8_eR@$`r{q>mcp1zAl8WpA)}{0Z*C;ZjSQKz z`#jz{W4%E-r5rQh(OgV?N5eF~srdZYr1o#)g>nmhUHjoUbh+N#*5s?r3c^^fxdarH zX?&Qkd6W>6E(4}qdIC9=k(D&{{3A!0qJl&~1kg#NpC)YKwwq~jat28hw=Z!F! zlhS|V-wD5)^h%z&nx1K}q=xiRw*<4A6 zUSJJ4D+DgIhK6T(?WS6Qwo_-p=3Z$&SMG0+5O377k?26ITvF^4XWTu;cGI~yaW`dc zOVwODlWsMx6Qkv^OZzpu=^Mz_92u}53TutRHK`uMZk?z`5DT^-ymXk(T zwh|bp-cb8i*;z&*p3s?;rIede?GP6%b1Z9EnMCVh_gM8~U7Vtl@_=5b+7FeKOgmpG z_*q|3AdQ~p%Lz%|K$s+<)S1cVc4=x|B;>C4myx8z1`M#CBc@0q{tdr<(9pGK$d5yY zIna(6U>M^sE&Mn>dO z8m;D=JWq~Hu8;IIrBrW7inr?nk@`iYTf3w>gB|M&*ax>9!i^Rt{Gf288s1{|P*d(% z{?S!$^BWuSXZf^tla$}s|6`y%W!!Zk(G{w`_HYn%$KBU@+B4Od;M$BY?*lDfQ$BFH zx+iijm^$L0HUbM&qrB>_E(j2-$7PxP?l;nkCXH^jIhf1_Zso;aJk7%qMMGV%a9JLX z3K%IW*VOvfzvtr+Wl?!FuP`b;Xsc%8JdHM*nqvriy)mfBdKWaPxFIXGlASu3eE;hJ zegTv@MwP}xay5h-WKKdPZ8!kz2FUN56O%wW&du29#`ABvQ4Q3gZ zH}fRped0k|M!g}H`0gwL9lW%n-h^cWw_js*xFX&N%Ezrd@Tby>|O$Nolk zf8nGlst?+M>gjpvD|zxLwQ{|8c{+Ebk=%rlfXu5NV>WvP_g8O)^iZE1u}kM`o;#8L zAQT^$8^L_@?q26kwL}Kejb7etka*@N{XqRrp=<$X86b1xxM{Z&%$B;Th3lje`znnnI7iqS!L^=?PvhsA0N;9LQt6? zlsEQG=x!B3LK?3Dl4c7%K$~GTGL@+Wou0Wq*xiLv=wMJSKY=;>i;C478Z==W&tZ_7peveM_l^e?YZ+ylQPErLQ6tsvLl|P)(XQYwiQLzZ{JFTIk4;azzcjdqA@V0*bj`I_m#y1Kgc zzAkgSx(jMUrb`&xg!RFqZ#drp#>D4H{b4j)_kghwxVWY9meu`<;$YXjD=szr4-ye?qAgt1}D?vlRYRHFql>0QvW z&BF6VdAL_$$6myX@`Siu8_yuZD3gx2iAM8_Io7rZ2%@J<2#Z3|sz7j0VJHsUkG2F;N zf6#w6WTO?7&Qr>HaCxd&f69TLJP19klU0oc`&)o%C3*g^uM;nSV6Z}-?&)$PZrKWG zTXuKkWX|Z62rB#N#^9M~x9-KQ#CAQ1MX9v9Gw*i8{AXfGqZ_Tv^?N*)%=Se!(?0QA zb?Y?cr&U#B4K6R-cTL`22N;aI@G;N84vJNS5P7&d32G6D(;_>$hnnp>Qq&C+4e4ma|oY(XJYzmJhqjH z{vnI(mW5JHQm)?)=cWRQdxF^en8XK_KHsENtdP5dW_)}@;UK9Yaj|4MZh33fT&F;x z8?38UjxcRYa>5|R@Iyu#y`V0ZkMZFozsV->`Kn6NHnQ(U*B~`+!VJ z(A55Xt0L#r^nSi-fr8c?xl(0k@pl^C!pZH+|LOV7lQ--TXD0q_!}7O7T~*?~GisO5 z(I)X@iiw3tO3;LSysW$es9zYP^6c`;tJng2!b9M<%J(;|xaq+6xh!JrI);Da7d+nc zPY~TO)Uhew1RLOPx?mE+l@)9J*!Z{)a6BNhyn+H(xL(fNY4U=g5hW1Fe;h!^J!z?b zZmY5K-r+2IMd8-1!_-sY`UtdIv5ocOhZN26L2OyG9UUEIH|8N0TCqSXC~aHU$lXzZ zSs?H7n!WCO&weA!e~`I9J+UQs8=y%&oF{c+KAg2B=f%B^Qp7$2i0G3m@A>0Fx_A=Q z+q#1uwqek_8?p&Oi=@7>GbvTIGrs-gZ^-to3oICJ11^hO6|?!;0RLNu>{0&xL>UKjkWj(-bjcf9gdI9%zPu5 z$guTKg5d*$qFa|H`!OgoG{7$HwLUdz?(7r^UnUVx4M`9w9Bm6YJp9<}5dROY+*C5R z2dEAEOiRvBsv=lH|11N@GP|SjNfD5?P7s~Juzpz(vi{-3_O@|&mE-oJpu<`F{n~#V z4baZ6BETM;u7#hf<_38eqcZN{kCxmlD5W3@w`b~}8WK=| zspRU4?CrSp5CM-&yeu#G`-8@27|WVz+k1^4KNK}M}L3d z=7WI#=zdX2iEOu46+p_SCSJMvV)hsur#k2d`9qKK>OxF=jQU;sS4^>+Z|~CpraF@>@)Toc{g^zx(55w znF}+ZRoCi2o&MSTKNo~o9kVy%dBkngESE$^316UgJJ2_DL z-QC@C#P$r3qibO85{#Q%lMayB7#AFux7*s)>B0BoyA}HXg3#>DfOaN4EyKQ*aUkUb zxWsCn4}a*kSSmM6rTtFbG2p8c`^k4CS#3>}Rhlgdg6bWs>{TI(1!a{~RaNuf)ppvu zf5HP4Sp_iNlVm&~nuZJW@Hy%~WH|m30UJqR*+s7dHbx7CVD6}>sg1fUhGpgP+yeYD z#1jW_!g&hmEvmh-hZ2FDIXbdtjC_+z*WKHzU;*e!u^vaZ^t;MVhg5LqIq|N6jZH<2 z(4^g=MZ&E)y%pF$(;o`j@fF|$1;yBU-Zlc@qYUM5@X?K)N{UXq4hW^??&lY?)6*jr z)Ey~DxaCkrA|&82M;xmrC8S-q zcE>X3@YpKI%LA6Vd06&V28bR4S;=N)xgS}!Hw*VVp(RvQRE9wxM6L4>!{t_rFFt0; z=d=tA$ZT$I@+(m*Rdkw1Yt7k*#*E(T=yBV07(W<&!f*)X1CRpwg171i0l$p~qg<2LwMW;1j$5Ral`Txn(0o*WU z0K_kFgcirh6wP=>S|6E zWn@SaoX#A1ulRo%+s}XD(ny^thI3+_nK;&l+5Du+dk8wy7f83#vHBA5=OPT1ZYvt=IRMfsW$}pc)SHyG1;2 zR=vBDe*xkoKuL$Qq)yaKOiTcDo4tN|>q?8I18!fKQh|uTcS49|a_ikOte700+Op0O z1JTpd_v@Ddfa(IepT9pd4;JNCfSDnmB%j=}WR;W8hgp`Tyd~)0!+9e;>{`R#7Z0Xe zD;~uPq{n0xmLH0JZ#7QG4N>MEyyTI8{Cx4Gk>^FJF>e4d#ekshsm5y7$$M z=0Q}znH-0e&pZ7>tECUaIiH#|Tv{`3G|=YhxS8K7XCO%*`^@^tPtal!ccXhZ_)W=| zL#1<|G$T$I=}fRWSBh0(CNQ0Df&`@sARx&e?X>;1AjgYcm-lsU<&ph&CO-qdpl>Z&x(61)$D3+h=s#j)~VCR3KkueKvGV_*||O@ zD9kM}iBuOI7t%V*v|Y2)C-_C|22Ij7JMTG<9d0I7n96Xb3xT0|L$Zy1@G z6}r2%53(TgI#;!|wKc4*%VWBjMEMp0=bABc^#{QJJ*5HKyCnnOW)IZQv1gzJyKU$# zI|lyX(=OIMk-m|eKnF0!UBtWVE8VejA99N?N@Y(s4GQW|{rvo-=^U(TrYiv_&CtZ8 z&5x!Yow&X0S3nznIH~5$gykn*LL~@t2Tf&2A7I?dv;`^T=b?&5Ty9nap1dDA8{a3b1q8K+GD4@>9Rs z5C9spD3AP@K!c7;;l{|y0#L|J{wDKP30w~Z3p;Ee>7bYzl4NaTlRB&~2bf^a1g%$@ z862pI{|pw;z_jEgbC3Pw7o4}097l$4v|`$5k-nuCCy~^<9M0pa-WEV?Q^yTkr=~!T zM4C#$WuluIYK$VoRBTKsy$$2WZL?cKkHq`$|NxwwbnS5MO<1)>4lm=Up7 zcng6UL_i0^=e9oF!WhN9Xa4Cwdpeb+yQabAEm< zw~{w7r+B3IE13)Qhk(F|{ls-!WxzH{Qmk6sl3|rp>Rsu|%1Uc-Tk)1)>fRfV%%aU^ z!P`#$l$t*mRzWv7t?CAscsl@J2(au_#p_!`_}>)bFS+(6Dckg?#uhK@w$jCFFxz?I% zuJ!x$`U)d=ty*sWlllJ}J^zPK+MKR(eCZbVTzLRfq*ki%bv&?(i4!o4c!!3W=JdMH~F)3yy7(RfwE@Ij^ojl|8-NudDB=p zSK>qb%Us5g-|HGTnJ08BriY#9}a1o zgJE#(9%P#v!#~D6@V6DQL3AW%$VQ8A?cvMmo%zn}Gyxv_^C#``Xn0bq}+{h5seDY7T&gUyblvJ0UXA@&mRwdL3%4`^@b?@88wFr=7 zg^a73ApFgw?}g&-;QLy-0CZV745jKa6Sv?&1X1uwqHN8T(s(idKMLhAwJWEg9Pt{@ zUn?^mEgNXULkiNCox|pI5eu0rC<6X*axNA>k{t=*CJpjC2_W^WsXL)ufKbUy*>9g> zwRdd{UT{Tz&8Z8l37im9C@~%!A+OeAES0#6YH(q+8jJ4fs0o&5tN$EDVwb~e)y*>0rX4!)C`u*A}$jQ5lxf1JBx zbz%3stIIAXVztJG*ceuCB>Spr8#{g2_5;WO$`)PJ0J=MY-~~QKk@PenN8ztXzn^=U z;50`lprUTxFaL896I_w>>L~cOK5wznKZPZOMwP1vX#ULnf7NClYs8q@+FvzS9-}$< zMGvMfe{r{av8+XnRQa{>n-}R7%aKzDmcf_Zx+*T;80ojFhc&3$qo$*7<$P9f@?M-X ztvIBXnf*|e3ok5t?+WX~C~qVBrRK-~+)M%ET6RD(Cs)Ra*elnWKO%f`Ck4FW+S^CE zft9R)&Bn>r`H0LXf=a*}v#x3o&j9xMRm;#^WBk}C8nX5B&glQBVQrYND%+kf&RKsg zTdxefSlg%JKSeKj!)s1NWHPBQ;k*hiPz?Bf+vI5P4xEL=ZBv@DuO>Gia9cE#&tybL zoXdkRsNnqMxcyTf`u!VkhBhOIxq&hJ{T4XY@63L-7znA`=FVp>y;3RG*ey$W!RG)` zqyfc|v%Sd~_EG(m>*m?X;HqU^u%fGU@s-i7U!ig25PaXVE&$3QoeeHsYRv{VgRV_4 z#+DXC?zb7O!8IS%nBQ-!VH&1dDV6})g592Ol8reJca7Uly(H}zs(s+R`rXK;Wt&5< z+$7-59=Ndz43cYXX}&!?HwR?<)ZNfcq8H>m<=ZyVtjVOF;ks;g>ggWxTu4K0~OmW%aG$wZb8B$;G? zghNY`g@&)Zq5W-^#N?OsLiPrR99#4s&M9d-WUp0wJSOpCD`cLr!yIPsID+$o0*Dcy zAg6t$+r=s85tP;RKdr>)l}Ed(q$BMp?J@ohac|z-nimNSFYRw$&dmZA&xvfAgX-P1 zFk0O6c(G7$(Ed{8!+=fj!Qqy#zpsFF;ll>!Fe&nt0VLQhsP5*<0Mv`Ea`yEhu$0(| zo}R9{x#p86k$ex&1}4MK#_XS6zyA{Yb@Z;p6$;zAdw;$6;~wd~t$Y+-Bkc!EGs`?w zb4SJ7CCp}Co-g(1<$yOldW~$R@DPdv-bDFAOfXpRNtg+jUP<%WO4UJ?EI{0MFpzQG z=%=T{dAMRwbztct6c%{k_*+l)_9lTb&nV4%V#J)(T|%&h7B!_WUIAryF2kPqp|eCI z`IZM)g#K_-q)5*Utdx~qR4-q~QaPK&1D_B! z?KrO2@1cegYEL!!t<2+CvGag?CKZ++g<2tUTaFv+4-x}pL&9(e8+AB5YxkAUWUUBt zStmw0t>gQ`tl3ARmB5Y9s=tylu{Bv*BDso|-;mtD-ypi?p{IkMej#%B3Mgv3>Q6~; zhs*NA^a{%;!UiJP&(b_IzOZzz+Pn$F$lOwQSyYv?y-hd*;9^Xhni%2DXSa(va$*Ke zD!O&CozPF)yOZ?|33jHrlW#x640`YUw<7qNBTNy$*xYbgGqYeC1H{n-Soi%9y(aEg zoHH2umYL+sFQ8$WZsEiAc5zqOcL$H>5^OJOjec#>U7gHEP_S$Wlz^PN2b)+9Vcu^t z^C&8PB704D)gbu{3#w{rpaY_p@t(DIrQNLX1GT2K@DzTiuI2Dq4B?Cwt6(|Iugaxd zJ>O|iR=SRm4X-1WLG(_wG#yg{FqBoTRrl+jBITj0`oW{rgvI)w!BVYA)TXP6Tvq4r zQ|X}N!`u+A!>tuD009Ym$dol-l?d-^q56Dvhn0=_`jd+_}#jrZh!K*{=i!w!1p)tZyfJ<7i&*_m;JSFDn%Npxq#BT|GONr@8G z-)pIv86ML&F)_B4sHQC|FSoyDLc0DCRP6Bd*CKkx$yzPy-oO+GNsV=6l>f~&@DKUk|)!5Bn z=~dt6;SheXR;9M@Bgpu-X6O`&=5`U)?|D;;n3~DSy}(*4;(9uhuURmI+OtMRqzn_K z)LT>r72h!1j-r$h^1=jpf!JtHdssh^>JNKR6Ua`=_+%aq0)3ZNDOnB&mEC6km&+)u z>gL9B2U^lwsJeBbKQAn{W_202&y+QrHWoYLp`FLU+CFpu9s*(17=L}UKioSIP}$!r zq+;tkuw)cJ9y^OYTOHXi~*e+My{{tKeEr0)c@YAnvUlh=qAsjNHrQH?S z4c)EuLzm+wgnJLzQE`4&02MgI6V83+w-g0$@mn{+@0PuGpqWBI@PJa$2e^xPh>7J$ zVyTe5aehSh?Gx;7X%85zgsuTzY|iv4yswkI9QzDo0A7x<#tfzlb#DVLi(7vIwh~RV z+j_}2q&{(!r3Wxf1o%&$h? zzKjoC0JhRWj|zplV)rq}Es{d^A8N#&zV&sad0l}ESQs9%ARu*dxm7=F@06VTeSIfL z4K3M9t*$j3j>TG~gN}YA%Ut_s^dur4wXjJDv+#qR?Hj3XLQhA<^1W&~ToJA&L`Gy3 zi}AkdTr>yS1cc<;;?NR)3qjDatPhreY#?wguDzylh}pp8cTxxre| zl>@inO%P$4mt&!Vu$w)z0N=VY1Nr3-}{x_*=Le`1gHZ}VAUnjZi1V_psNd~Fj}ev#@~5(1FvcJH>~ zR_j=>Vse}tpfZu#@HpdT1@jRS+U%?^e`C1O1#>3&iFN`D8P=M36rM_$%0rMD&Sx#d*_w(B#6Xi~jwj>7|kVpXqo-P?3()OBu0`cgaf#~>VE_*8i!jAFCf}ZdS2Z-oO6m zIKBk4R!qz4^03R~@-UOnrQdbdSjQmG5=xq##10WUlWu9of7B-j+ewlY z@F4S?p>o6d!S#r7d{bRR+H{-DRsV8QX1@yJE(VtFtSlRMlNFNzxT@u3mCYq)#sA{) zYs!8_+6m7te%P=)EV?Cl=pbwX7;OCMC6qg?dj9_Xr~WT4Blc&f5uA3`1ItpIL2<6H zSuY@0LuOC^K6>`w|4r|mtFAM%!2W+*WUktdE9AsnSw^SlU%fHZB_A!aD+tCYuB+qb z-0qXtEDHdc9n(*?GoALy$?#u{PA*O;S7;|D@t5u(z-Px_%eZV_{}R;6`E4<;mZR>2 z1+nyO)^Fz}D>`xdxEdh3!MR|1IRs(t>Iwpdy#$7xx(*BU)CHr})=o}RFI<-Kv!>>s zVznsCzJnIig=T`JmIDaO-CI427t^q_5>Eu)xH*yW*H4&%1j^ffPX>C%RF$6L4nf3l zAzyS+H$&LzZi_CbT+TuWB~`7Bv@in5y=QOnRa?i}ri-VLSm>}LS*U1W$=_=1+$RYS z-#eEbe9u6>50nEBB0E=g(ZTH3Uk+MI-_OqAk@<2p40$#6a@h+&iCqOFj-|!E(CX&1 zhnAY7Ltmt6{>5rVk1LmB+o!TTg~*_20OYJrZ2fR?W?|s$$5;yEugrA3KEG8nGZY!o zDpYRSN>c#|lya=bz513DW|UFohrkCOz+Jn6*ertN;nJ}73haDx29glce3QM8$Sv?V z27nAQ+RAb#98jwXh%NJP$bUGevlts0I)z?l5v0SZjMvMkMcZtJS!;A|fBcgZ3yy2^ z_^#pLW6wfyHD%NQ9P;_&An!9Dbb_hsuDUt#6K;!N>;AMnKX|qqVb)Qi&{9YhI?&J@ z{M1}{&gf_gfjb2Z5VaYvnc#!vo>t!p@S7n2tUo*z+OG$-gwS=c~yXj5nn$0YXQPSZcmz^ZIuMXyLUtUWX}AI zZ2@9#D6w#({x%7!1?h=wEI-+lVXv{Y$cB1q_7Gj#axnFP`k<6P5)V$}3!k{;;+P(? z6&K|*k$CsU?u@A0hks)y8#m-r1C~78ZvL|i7-}|>rs205LF-$>AadoF4d%YqjYqGq znLv)Muc9;7l`p)yT&+Zc-tWB5R!HsR;sQ%tUgmW@wG1s#xS9-eitID4NSB2CibEgi zs`*{x)5W1ZqbrZ3rO~F3VWd7S+mSYL!2AA#Xw;TAn6B~jZ0)6|NCl4(w3ceECE=k| zy5{!aK^uCfW+wxT;b)caYpzMmKd*48?VxS00sA5I+buv_p}B>X^8ecPw!%pAv!ysa z!&j!s!t;CyoEqTrY()!S^*J0V?zm-(-b2-=T>rh$H)eN*yHD{E#PvU4ymoKRAhM+N zJP&6Q`NI!q;A14I%~G_;nsrN@4b)m!VO0G>b#XMK$f~KV0+?&MqGEw_rm>HzLh%CI z<2|n)9W9Uy>~5t5xh<^EycC!($wJb9t*NI^7qlFrGAwH*hJ%7o`a?oOo4%#?cbQ4S z*|CmcR1b!pE}T=r1m?!y+0N41}3e+gQStkgrA z@#!!IIDGhGjumgd&`?cBI8DbtIrQ5b3xs3VZ6Qtsxn&=Ya?o~oL->J3r>*0M&l#!` z(9`*gam80N8mkQnGZa@NVU~H8LTPr#Yf9L@Wx}X!P>_uLc@J5JQ6*jVv|CTdnr*O} zbp+j(`K;Lv)hYgms5`D{rrw(ypHA@n6tLfNg?QqTf%}*3DG}zmLcJD)%fr;xHUIMa z*%XspGKyDT_Lx-TY`G2{kJ@l!%fqPI*VgzF&&|1-3o^oFynRm^)q?q_7)MgMp_H=^ z%9_>HNY7(UQW8rj*JTShcpK`$cUV!;1H*C?_@|~2-MQ|kwvVg3u}8YW4L9ZMA)be9 zn5owsvl3sXhDxnp4(G>CThzEZ4)BXKRPPQS%Zr|DJv zf@cru)yQRq#}4-bFFRoLF)?WTxa9`dHkEeuSSE}aimte-h6neL2)HRB2VrAU`|d(l zrdC?OWiH{lWfMfA^}@WiX=6pI+B-vz|N5(}_*#zb&{yHj_*VRER#i?074#Bzbq$lJ zmn%Te-GmxnGGPOJuEYYNrTNIF#f*B0H&159dl%lv%cI(}=VAt)#(bQAp{%>SS2Gz( ze8yFODP#SuiKXN{`fH6u4dCUs#oXRF^pu_9oCP^3b-N5>)w8VDyt}q=V4%JF>L*W7#ZCrFP1!^ybQE#0!x^4h4P7cTeSpAq-}wU z;RS)d%ot3A;q7%Bc^?n7EvfLv&a^|h@ppM-3UCUPo&IBfIB?X-bi}#pvgjk&;@j3x zrA*g%pdxBb1V3AW9U%MAiymuljMzLx-HuylQ?h$}eVqkTY#xjSkj-BuX+K3#5z4Uu z)ANFXW1Da?N?bS&Rh-yI4U^#qFD|BCVXn45WcK3NoyM?awr7m8Ig~fr; zR&?IyIlb4p|B6wiQCoLT*S@YGiRgG~F547n6*Vbyep}Ri^YxV3S;m2>xx59d{WV`} zLZcLQ_ki(VJjvg5Z2*X{rl6}Sy2A)HKN^%O$Ci+FRN>&XsK1L;xd4bs6)%FThjqKe zhGRO0T2t?kWXQNwHv;_G#lR9L*1O=ATp~*@?;-tKC;koGx^NKUNS?iVZDIhpDU}`@ z57x8hJ-;DkLX8eSoeqNM-@2|=T+h9<%yRH6(LvCl8vSe4b~BGU)8gbg>`+Bd$Eqy^((}KRTlZ>@?nk7^8l`} z9Y?z6P6GikpLC~hD2?;&2moqhb8J-kJkJV|_=hiN4?E!U+z!lR9w5<}2``EX%8ne) zpd!zXVKVWeDWxSrb=^hz1A6mwJJsgp25Ks_)tt6@96rN*xagX~>jNF624(4SbE)+n zXwBQiXG+$R>2~OGeQOg|@7QPcEVVydI1F4JGAdN$?g#-t#g8nxiG!ubO6H`!g&T0- z1A7ck=l0X5vP)w(&ihf`t;@$((H{cvZXGrMuXPOnl@qu5P*Pb~e4AI;{fipFc4SDr zN%{LK5TB0-_1b_W8i9oD;MP=)IDB7d;74abh&*5eClP5IJXO#K=Z)--7WElru>Z6t?2H0Pq@;M zoS^@H)eSet-|gM?=!bxNLYuE=rhyp!)1N|$>z6KLt~G0_aSRr2YnY51Wmm)h9HTXE zKGHa67E)&;cOymPEDISCSmoVpH^;&L+r+rOk3cC0Z1-3ZKS*-FKApoCy3SPRZP7C0 z=I4ze%j(NZ%Q$#4_PO8fx)6jHLoL4UMVcvB<=$m?zEC24*GH75+!d^s`$HNqycs5c zV4VPPVdOWJE-baLRIQtjhc7aJk&)48J{lO5;`JA!tG1+`hWeM3A8 zd%V_Nl751&h98?o_`Tj7=W(?|;r5=HOdqOIJY{+aq8Q*u1>w5Wi`SbQQ&7pd0&0P_ zYC*;$)hFI9L3Pr)OSqo7FG#uTX}6iJpLv+-M8xN8Q;$|xz$9fyS@6x`CAVYK0Y=Og z$7^1@Ll+xjXL=}E$K%z}PB^u3F%o^ab@nB%%d1&x%_j$#UT)8}BQjcH4tBI`zR-`m z*1`&`$9mx{9Tg105Z>w2DGrV!fNXs}mN~s@lY+G7}&DXsbH`I(8g^G%~mz8$UGhHS0%l(^mZenV4kYnUBz4z?u?&TaS zmT=I5hT4OC51X8GN(}Wi7U4OvZ^_ymMQ3I{FxXNtXfu;1NF}`6SlCz??RP(q@7rGR zK766$MyjL4VCzUMl3!&f9R8;5I?K@n1Jk^K(T}Zw#%0tYZ!A~M#G+S8)3l4bQ^~J$ z8CeA8aLPPLZa>kwiJcl-%q|d;XD&iQMWozDBmB>Y5q%OvbW`IezlfZ8t$Q_Pk}d1J zMV};+*_^IB4y5tl?^92lP^92K>u(}#2xVKHxP}Fyv2T%b7!g{-lTh`dAMjgUtj>y# z&iR=#J_8NqTk9(H0g8q z2t_}>VM3&zMLN!05w3|9LC*Zp0yow^W9j|O)QfNU$P|I!@*kuLsy7fCUyhTFk1f;) z&b)y7;D3FDOQ3Y&^G&0(F5HKb$9qdtCZM_?Nb&aLiyzoh*u?}(#9&y+kPwBskM%_P zR#9lE;)qNNnhVNhedZH~Ony;2TK8dN z9AYCk%4&6wOIf07tk<})yy6M|nia5m-W({MexcQQN9y9INkd4$QW8+)06uu@TTlt6 z-s%gikvjgTkR|LGTK~#@d33$kBzcZt9yL%l$LyHiPoC$Ex}~}JmucIoXn;^pK$5ObCfVpDEUR?}lTm$v z8*(#`oTC5hrT+&IYNOh~9ksP)HCArq48$Ko*=_#v(3TN>t-^_dfdO31e4lY*`(c>N zZ(dr%+X4HoPYz#55Ixh}aQ5w1t2ORcZV)VK6xM05%AJ2MWl0tvqNm!slxrB~?cxZQ<(S*#)Jh!xd zQ}lV-QzAMfjS9JJadL}qDQ^K0U6^|3o!}1>j8X3#KIt@7ann9{?aNP_a>zxj^Sa2? z)Q3nTgjfJ;@13Jc)OSN4HP2t2W5~-DZ{uSaWlvK-XQLF_Gaf6Ld}qA$2={?w z!AT*1O&9SL(GKB^J?-WE*f<)ll{k0LQ|E)DCm)jt!g;!fnMeeuOtMzKk`w7Q zwsw?OJnygo-mR7j@PpoZ%Y|Whjdtyv5D^??V`6c9V@J1(@$r5NmLs{KGLSi zrx(}!oTsLIVAIoT%8Z&veGVX3ou{d9BOA{+>~wt$Ka4M(r*4G!k4!or?(9~Z_CC~9 z7fwrJyhmdvOVBs!wwVBis8<|b_;;Nx{)@r>4&!IYJ1dA+HC(3*Qo;+LCf%q{&g)o+ zM(XZwRXnF47yEJWvD(k#iN`MMq9^UoXU7}|IQggjwqM?bjCC%#X+C6Cj(sjZu+^c z#SfoKXaBvjx>G~Hz1~1WSHP7ITt6qVm;N%f*ftfc$e%Q%bgv^mQ6J-`Ud|D3W5{2e z9SgWYOwW;Y6v_#BnHaJc^Jyi8@vCSlII!%HE01R_!t;zLx>J+c6MR|hnV0r)@!sjW zi4AkV{rIfQDuu7E>L}8s#(9shtNEkg%!4dwsyZS|YfsMkuF$*-1Vyj`o$2Q+bKY5w zCV;%CYq3A(It3yAK{bZU#T5>gUpyQ{=n}V-gJIL{sK0Vx4HR-;d?k-^!hl@Nw z5RZHIi*9yA<%2yVluXSrW>@;vlJSLiu-3EZX6w<)>Y}?TTAcYTN>-p-Sj85>bFt+m z>5|G3b=Uk(FupZ0B#v4+we+WfrmX#8yDy)^vm>ldtTaU|8)=#^;P)~YF+E114n}7M z97_b)RQ_shK1=e9kF0rBA`AL(A>`Z`w5-VR-*w9meomy0iN@mrH;S(Sm)p6$px zwycr~#GV}!la$}yuh3w!hM8ajI-WTF$mP}`7DOSnt(}8eqBY5V#ZVTnzZR+cPjP*Z z?o9A*1yU#3K~bxKTkp6OgQ7^^l&jMg;P%&&$L&5ISMkX%mfIv?EnXo&7rm#hS2<*( zfW>~r|DeMEB1R69k8KWG?f(Y9t8g0jhFv&?NT@C%`=@x$#b*vT6f$06!CC5k-Wwxd zQmfKE^~G%jm%ltO?lMLviVre|Ve@qG7bzRibpfX4Dux54?!CPmxCtt_?=}!z_=0w( z{<(p@+0xdL#0sZG-E>KYw}81yx=kv_GA?BUc>|4&w@whvF!Ggi&eLzG)n;*><~#XQ zflcOc#tCcxej9H?Mz|p=k)2FUs5@6&(;Q?bV&1n46!-e73O*odq~1Q)EDdCq%>}i&>26z6@f@uuujnb!bUg& z$g`uB%;*}P$x8^h6Z(MtK92>rjad^&3qI+FY{~p2e_8hYw+U2zYeUgcR7?sTj*DPx z8qRA|VVlxdp8JzVc^GhjscZ5K-Yt(P(07+gio@4d5E<|d40t}Lb!s?hw6JV(hh1(a zMJqO%dBRnTLbkqoY{*OIjD~E@)9gFz=fUK@a*11_#3faLU|dtgRVKP}PmG8*3wTkhtyiyax4092NdZ zGW$SY!D*Hwt$F%Hc150fp=g|&Dab6~YIQ-OebOBb!k*yUHo8rN<>1hkcXRV|DESV> zsEjdtRlyd#-@;`*`c?$z9%3LSevvEYiBibk;BvZtA^WYj!9G3d=Y#&O$_e5IUMtal z9#9?mi;+PqOs_TYjaqTwCAZ&Q?5A`g=sHW?c2=p7)qvJU*|Gh{Efu5sW|VJYff*3d zh*qs@6_n#{cxAlpR>G?ra-OVj1B4t#jB4Gu4?Aj?92B>|%3l^s93J2G#=LUclAP^D zT;>yaXMHTsj9465g$BxUVOG(pjVToJ2m7tRSBmdsm_`$3+&}bd;b@+9Eg&^@ znt4R?9&Nfw%J=tscBMQKqqn|_Gb8|Ihv!ho%`H2D{lg;zh{fR4F49}*RX_;YiM>TI z$gOMq=IO!2zugZr^2EizPA3xS)enh8c9l}h*|uCOj?M!TV56Q^2id3tSFV71dx2Xu z=g5SFLCAJMIuy-3!HgwC|``(lpuGpy$ibJ$3TT5ze=Zs1qQ@3M7f^ zVY;obmdQLNtZ=L3q=Q4>n!nFP9%(dD!FMwFpz8)zq3;>IPv%QMPcY{+Ij5WqcCoHm z%kf*CW5jtHRx|)BDr769!s&BOhEp=O#pg#CR-oY=xmRbFf{;s8dr6gh?M#;~Gi`U8 zkj6B++QJjbQsT*yWM63PKQOzyd^w(8px31Xm^(Z0IRsj%o)uP~v+=$F@-nLX)HMU) zEh&}>`MUcLI5S+-OSFy^}i>c=jYG+C&V z`l$fxW#@j?{5&VsOUZ{JhJU;S3VL^Te^`SiS-b-eQKDjET&yiluy>cf=q+x*`$g-d z-jmW~d>|~jlU?C$%I+X%4B^0!up(C)Uw?3GqtM7IWgh0whqO)!%5{9`LmJmyLrcn9 zE0vXHuk4-V7_x|6UGA07P14#j_3kwVb}H(ccLOzJH}w4=sO3dGjL=a0OYieu+|;zW zSP1G;v#NC_{Q|S(iz_h&-ii9t;JdGttR#`+4XKaE>4uD~m=vr%!M_6%I$ERKGs`nNwSmi(prt1U z{WIV2dVs5)qAcJ^dp29AS-OD1MIx4GN*tVTuk!a^m5}G%wlNKzu$mr(XzSJ~-VFhI zJe=E-oAE9>#PKhA?mx2Lw!`N(Ka0Hm&L#sL{+CaGsD!fl3gxdpDmI7_bsh5Fa8RHj z8p9XWx)(M2T3eS~ernA-m!u=_SB#28Kq6J}3L`f*T=ei62L3!cT@eOukAfA{wpt#W zTx~{>&2FUp`n$BNy8Rs$xf?|?$`5UHS(W%(A*Mz}Yy-^X;51FwU)jV~*t6kVG+jd; zIj-*qeA#nSR7iRJrh4E${jljEcCzooB3q0*%lpqah~u`lk@_y+G{N}; zPUbh7A25cuK(BJN+h`<}NT{7?Ix2gOG{fZ zBtx9e`-tZ_ze6B%)m-l$^1UsIebtolEmbj!^8#z0dIiqm=LfNNERP-(G`?h9-)B{U zpBfv|hV4j@@DtVjLatDgRC_23m(BmH>H!~;$KX$aI&`t#lBN_i%2FT)sv-46otpN*EcUu zq%%m=-{JDke-KaDil~ILFiy_KKT!XMv{o|GbTO^rH!-~TQJkv-r3o?cvX4~n)gy5z zxj)UHJ^sP*L%9j%_#>IxLoF_kJ;?Wo={hk;PpPxT_31#yy4F*9)7gFOF3?s)|A#Ld@R| z6qnywS2#^T#Q#~m|D%E%aV5DBGrudlQ#CFnvf_??3<(XK8C~APbjQoFazsV(_I2qJDyed@Iu*QC?7AUJ%Dg6HmVcvDyL!SAdL+b3`-TulinkLaeiUh;xaeN8}EC zYIw4Ws$2PeocepdFvCrQ51R^>9Br#}edR<(i54YCgjx0a z?{oV8NS!=1An4v{GNu3xLLM8b`MvlUxX_s^F8GSp`8%N~zC}8oP?Y@kx#&L6;}^nW zy>)MpO}yf$LMs7V>hxU>{6k@*rWP-%rtFVb-L0EePhx%m`B>huk)0J|d&Xx2X9f1P z@0M_yg1-M69!+L&)Klw^_9cGB1AMzu3$Y8ZV=klSx;mPjjEr;TW&|B`m{w{hlBSLB z#8<5}lj>%5zvJswbxQ>bo%`pFVx8+DrVI{ue573 zF$iYt-{Sk<^4&k=VOPD2qLv&&6V6cfUocz1nL zc3s^pPrXBIGbY562tk=NKNpAuq$Tfk!(Pa0&=I#$AqI7KYEBQsGD3-)N1EZSw>kJa{Qc2#2h6FwVfP7mKf;>m&=T;wdNO$wDG{}Wz#`ZxrxC&A z#mSJIOE{&-_@I4E2KB1m_-61kp1-&4S9!vaNhHC8*P+;O%g!{`{JnMuVMElNEQM1e zx1{ES!Gn{I_t*s8pO&9hRLD1l9zALplOnTpHN+(`5ram+>Da#BX@9>OG+n##$=etD_m~u{`B~9| z^#Xm%(39K!^e*}(lUB9PLLXFv=()6f6}HYmJNtSAql!M)foi9(mcM&hG+dSjZ?5ZV z$!4eaE~C{1#m<|6)h0dLA$HCivLV8_IFF{MHtdPD)mo8GQO`N_FVPJo zTU47Fy}2pik{45fhD+aVsuySX#W&uQxhD@8>KxYZ1ZUWVw4jnoImyc{tbBl1QaC#K zVDP;Pnw_y^G0?5lUCm_n0{t^uLDj~(0?WD2_XLRF2KL>uW71frkINIPD55k3tqbSou22i>+!PDTjBzvxNVbOP!$@D zx2gA~T9(}tVx6OVGWu5#%6floMz;(jd)2|xt@oY86PPKVBIBf0d)-|cJFUJj&XTlo?st2&V< zql9CQq8Td_8B6&5Fx5{_u1w2iNjCikN|#XZA#$OAo{Rfq3?sHN5Y`5mxdmGo{rA~a2H%&hk~9*EVw*LB1_;j;9M*)#{B zXw>Nl`jZ17vekeA&bWOl&sn$% zSu%JOg1u;CGf3A&*2@5NBOvB%Z6=P0SxSQy_oW3LfPI|5A!$WBBa6;=uT1-T(&xw8 z?v|Ab!0_oFhdkIGiAt{bp?!IiyQ(h)c%gQ%+8hiAsTC4eRn*>SdPsL2i77BNhoC2x z<+rv9BP#mu&>cs;X_J2t{_8YEvaEU}aoz#X2*ZwYtDkmS7n`&kmzp|i;jE<@{rByv zSQ6t2P!((vWR^Z42W$UE>cq194nchEPtSXmXYW>`LhzfqOM=zj-d;<<)$PwZI;Ziw zfz}LV+wmb+!DY%j{}4WC1g~VpR()~-|8^bk*?TenM#2J8Z_|W!^{I#PR@e0}STMoBddP@%! zwjLxsOs~t&S_+)PCDpAd8*!|^-@CRJi?Pln<9!<#(aHZJg_O zoVxmTZnd|Id?bH6e(>9&PcMZ0YUo3Z0nC|x+N3>ltbT7Tf!E7P6+{eWL%kk5nCj)H zSy6hK;;<&r_v+2D3b{J_j?#5KXM0wbk6&pG8Tpgcl|Jjee`s`*;-a?0Eai;;IywP-PkGA%2nt*0YDe8p^^AZXM$zIXSTs-s1>T*kHQ#C`g+%%&GA z6qXM*R;Z0%rYSX0DkZPYuF7~hjK5ErB!k&Dw4-QX?E*Blg0^IdP3o_&R?NTWBy0F^ERBs6ElEw~RA#&VhFgy&Gv&3V z=PV>_NNGjqKI$9oY%%@K7=5;c9*)Z=p`{?n(eGSgTI$uOjTFaQ4S>vT)fW^%W%g#r zEC>2>u|>&zU()x#V*xptUi+3BVdlZVp+0iFKlG+={8^i7akN1Ay(O9DTJXI=OzF$o zwdOR{;3$25uV#kWEo3K9AH_S|T8{ZPDDRYyHR2@az4u41S=zMUs2GzWwXaNL$@xhr z{*iT6b92sOaJMf|$@%TO!ciJ7k6R5DWsKizmh;;H!_wvZ&Bf~uR$GJi5std3BLBy_ z1H~1|2!U&5i6Z_HIqt^yB&elA4)|K%k8L)x&cLFn;c7;nA1_-z|2Oe=2I3KlAuIIci>_D71_hR{Y4Ycs2h|M>jhPpa+yCHH${<8F;|f zFxN0GFUIL=WDMVEE(SVB_`R&rhej>|UEqG;SN9%`7k{%7ux1*}{t8%>rZ6X|VZpMe zIE$%|XRzTz-|a_S>OYG5I8^YJGwXNNp3y0VM4>!|yx|Y^`5Y5g(x+ePwx`>3^Y&Jc z^~TY69k(lsDpMy84WLRbB?Henpfp{@npK-v%3_9sn+n6>P9ULjow+YK6?O{j&6!UD z_hM4+P1-}S>_#lq!qgXX6Yff)w~UNpFs78!ZS2vYix=X%vDNNXE)k_)ANy8Sey*?) z<4s_iF@{x=US?b7Y4{Hjsi|hw@Lp&S$BX6Tf=Rh z!+o$faKf7Ncd#)zx#Ja#sn=fO8V~Wshj(8@zZKAVXoUT6C)i7XOLcdNYy34Fujfz# zeskw--lcH#_m=@0P+5RObU;VNhq>llP$b}icaZmQ=P}1zW~ZEirtRf|TS??Rb=tXF z(y&{G`|GDt-|)PFjkPUSr~H4tuL6mG3AcEH=asgc`u54 z^Mq-M+rYr!r1APMt#_(Lcav zTURR_4>FcNcAD_sa@>T4Y&^)w_$o9J`0FVgHK#e?|x-e6xZT?L6U}E zi{Q-Y9~iD%=#vF)IAE$vndYWkhfk5+MXa_t^qVEX`iGMO6}c8r;=^&@T9Q)IX?QBb zKDK8$kRB<)m7XKhc|qa-y7`IkR5v^qopO(E@PuvutHcBU_-nP>ak6Rxkhdt>AwSjf zrrpOGIT>lw)?T4#$6OR&>EPD|3~H1%#UzCg%&D7@XQCLPzkHPBh zRHyf^L71ekXgi0Nt695^q;r^Rhtt$7EnQabj;}=vxZ$xopo`qJd2Tg1b-ML{IqL33 zVgL6U*d{$hkn5}+8ob7*&u_G8_O>f8?|AU-uUAR(7c-Qibu;NmV3SFQR(uw!PBD3a#O zt}>144q0tyJyp<~ltRRN=AT!+msHli4qFvo&R~Xgn`e(PN37Z}M*Et|o0PukduBY| z)w%XSvxumwz&wczamjmT_0kQxawA<<1z}XUnHz#M;0(%0m3yN5V{Md)Iv-o2ziRPh zAel#U^6Zvv|AB9P3taBhj+ZOKi^3yjVCajtm1wU0J>^JyS$GG|jhS$PmT_p+vp(5< z?Y%c00KdiBB|qF>WAd3#LtUD}Ri29*^%AFl(wB%q_(aJYUxsJaWMa3=a?|)XN^n60 zO3fZKDajkJ+{LMihHxchg^|k}YNONb)J*hlX{-yP^j7;Gm@=kiwm-Y|8{;$$9)>(l zLtI1cMZd4XSmTeH?qVOv8IC#eb=>LRzSA9FDbe+m%qZ#&CH3-Z(xZ^;n`Oirz7IGX z80oootu8+JCC-3UA-H0#&$gDC&)MYt?pSn&7Ij_ZRn* zXI3Sp0kZ;-X-{;7{n^@G>UBRQuJWd4A&vw!pf}F_JA0*?a>|RR!Z#UE5G@%1t5`X0~p?V9IqQ?@ix7btfS#6E4t1mW|sMfA$kA1p- ztCf5Hd#ARtwqc@{@@_uk*IkKeWAVk1>14U zsbFo7B(2!NQQt^Xk&MTYUuNC<55}mR_3YoDp}1&oYGom>wLcRnA4}iQoCFIf72Dj6 z){PQcNN1*NaV&aM)Bjz2YBKdXD{I)*)^VqCnlvwOlAABxi}G=kHkl6HymS{&kY0<4 zTH-Fg;it9muv%@l8)lV%45Um(`P<1FGI-QkgE((eM6op4P(fu7k$T?M3COpKDc=VK z^TF{eaq=YJMT@Q3iT#ULXgOvcYlBy6)-#{!HeVf1)MH>4)noAFU`Xlpz`#O|ltvdt zfx5j@JVZf}*EU+<$J~EN-F|9H|z z7Q87THWUBNDLgoe@D}WJqupc!xMrj|esg=zCUl<>q@MYaeWY0sRO#5tE;Y&f!teF} z$JRFoXWn&N#&*)NZFX$iwrxA<*m|OlZQJfx9ox38$-PrEbLV}(s#EoQs?LAUIcL}2 zYpuPun(-v_C5fO|)N=}oR_#!t;5L?PDsZK&on zU+e3%!Cm1ft;DmDkZJxK^{ejA|X7cIAB-_mt*iq?H*nNrd>SA!+88Kv8CJmR9;*iLwbgzGf;=Qg)s!xlts!q6n z_P*$ayAv9VgyKRi=no5JyFll$ARmn3*RW)B{uuvj8nu5#`}Ar4Bf1F4`6T`FzUg|;uDV@r44AXx7`pAdbrG#Bl;AJpcicW6f z31L#D9rpj#^)u$8{4+|1Ih2^otp=slsuXfYU6#4PZQTXC2zNwZ^*ja`EWoYm9OZf+ z!+Lp?QVLJR6NbjmdJ)W$q_%3IJ5z2~JRrXK(NyiCNe2dBd?bNNB}Up%$+VO_QtZJ9 z*h%S!>tTXY!mcFqZxODucS26al>$E`34J{w+$LPq2~{1dWmT@r6`NJ6&{V7JT@^fl zPP~ZVpcU+(xsP&su$hd9A~Bfr%7Ma{*xXIJ1`g7p(h8Q1EZ|z<%0vRiGH!%uNpeJnB@ob2~VPnWu;D!C%@Yj*W3$2!_W^< z-6Iz1Gu%J}6z?1`o{bPrc4(~YWA|0Lriqo=c)$5!!siN*8PcbE`D;sRIZY^U@9V^u z<+XsrO6BZnAsFS55-s2TBivFYHB^4APd2oD)eWl+n=@yiEj3D9*X}9I&qN2}5HGh- z*P=JTgN!$HxU8h=u2C4gqQl&SPSF-uH`Z%@&NnTpwD9P4@mqOY2_>hwUD@;<7djwr zH$yjIdfjD=#DR4o3@3qS8bh^RTGSs{j_)ziC_iHR+T6j#v-x%g0c}-r&=v48KXx96 zE$Op7B1OFLa-A1?WFEUPTn45x%~B7#;W1inV(|DK^#8h9@5=b|JNx`y*8LChJ=5x2 z9OGJU-n+{F4~7aZKsOSIp=%V4%Ysho>_%RYFFjSz7FY<-eZHB{QqzGJhI)anA^3@T zkAWNe`JDO8@TQ#9O86sw(sLu~6V>*TtXuy_9YXi#2A~4{fW6$7Is5RSg5N6?7`^6C4?Xo%>DCgqPdDs%7Ca|S$Gv210%QIyapD1wSzrk3_cIBz!WFgr$`huzH?$6 zag?~QzQa$@ZEr9emV+=IRFoJkjZpV})Bi*FbaX7lBwCHE28xuF!6Slpr7wOW+dE_e z*J51!DMuLM2>hkx>uC=lUUrO8`r!h7emu2B*JLN>_kN$utd29r8m3Gi-s`%HssEGk zXp-O=6(h;{VjNMxg4h6hHVlydb6H9n$SD%glFqZ9x`fhr zyKyg)Mw*+mZx=y>exCt|cMh^}rvKuzeZbqvH@Y^c*mSB$IQ{PHN+xVK&(Kk<&U& zmB_nkBb5z=-6G^`cr&QCGotPP?%#`*6*)UbJ>vO3Q_GMx%b>d4%l&hO^ z8Zi*fQrUe@sUtHdGymCRIsx(HC9Ic%hG9!Q7t5Lp8^n7sEYt_g#Oz6z`XsHr^9zxc z!$r^U=Eh#CL&beVq291;JrD>s;cr5_oZM9<`aeOiN+AK%7z6FXT5Z1Tge|AXQGWmP zC?$b9^^3%&R}tZN{g{xF!nCJxT?W2G2^AtApwsDVV`&j1$+lOD6wfJzZl zc`NW8bFk`HCgKyz5pm&&-Lq0bps|E~BOvt&mT}23Btgv#6V|uK^MtmOLJ>y;4sBp< z-KbR_y?h9?KRBXoM`!K^?AzvnI&AbruXnd+eB1AkSN?ZJ%*oMGna%V5ND6zP6%?7j z-7a)qsu2rvl~a7*_~QDN^*%2ihYNL{<^#2s58Qn(^p4~`_d=GWp#ZCDo$BGGxEBqIs;+wNuWd!@_+I*28KPi^< z>$YA5cad~)@h{DI2js-l&O4XZDIp2Jt2hDHxUA2XmQC<7*)wYCf`i1X_ie`!PO`S^ z3k*q|o^Q7x-gNK0Yt74PKe=nfObF*Xtu}ovY^nJL!fH zWe}_9E|Cf%zT{Egt;=NGv+d+)yJb7IhF>QETQat>l)(Ax?Amyj;_bq{a}oK0nJGN% z*U`JlXZQrJA0A&w{`&i(_y*tGpDgjhXsgs$);CZesX=l+-6?0%BdsQh!1(d{+er7$ z91}TF&-ddNh32R6LH3^1KMFp62CFYaMwPl7fb1n`FGWlvs?R!D&1uM$R7szR_H6!c zBYmsc3>dJ^QouFD4C_UEURDyrrt`ipLXLLzfc}uP$U=Y0wV^Ad5or>!;oNs?CT-Jh zph~vyY*oz_A7mR^V4A%~paph{7luA!_hJM$VD7YT50C zOGjETe;??QB%J@gs5fDPoNzG?znj{;(`)AHTUsKEdSwR7x8QxWZ^Y`K?GE2n%65@x zFO&`g-R5HYKe93ds7!jOcqZp%szh*?!tMnPQZ*6%klTLgtz@kgY!C#R!AeAE1US|( z>fZ>-KByDO3yxYnqQzg7MuST9K{XKk7Qe@As;LvWg7b^ZPveuDg;P$D5z@21zs7V0 z_Ln*=+U%rsF>Iu@1+bL(t|r+NEfE%ArZq{hYS=vv>a6&5<%Vpyp@pz3q`h@)1?Bn; zD$W+or`x}y_bzolnMwDYE7Snw;$2k%5SzPd2NfDt>F48|fkFy5>7z(U!i>Y^zd%0( zS8OTNEag7Anz?vStpjB`_fONWW)r zs3bUnjaj;FE_BRhm``R`-r*W$FQgUrS(M+SSqRn#fHi8aOrFtBy-LVV*H2;cJL8*Y z)xcFMI_V2Qr=(FmQb;LQ%Hs9F63l%NOy~X{;vzeHu(6W@fWrJKQry2L4F-ez#$ zsYRC`A(M@GWd|Iuq=Nk!=5juBUz%gHUd3zVs?$|pitu%uMot1s+~(%4u!dXc_m z$9z7R06?fB!+dA1fMp#-Bo**J1)eY~NM^@*yC~=S_$SoL9p@j=a0w(xeCxNQGA4%i zmtb93&m3rc{c07P2=2KUiXWw7{?X?pxdZ+K9v!@DoF286vj`ckEl0==0$U8Zp+$+r z>+X0w5~w%2D;}9ebku6L)eV^95xk*3)r?r2DSxOrzxOAs52jAn?xP~B6=o@lhjJvT zH)a0n8JWl5v3ybq$$awQi|OTJ7RmYkdF%Ri3;y|C)i;?RUFHjM10Jefn0YQX$bK$k zY?Q{LL8Q(nf&y4vuBQ(lSWDlQAj=Sr{Y{8<7IxE(6Y;oY)w($P&G%W3xw{)zO{U1V z>qd2B9M5pQKBa!(B$i2?3m8ERB(W%W)S%8f5zUgsh$?|eXlw;{5%R>cIoz^2%4!6; zwQ6~vl+b2er*pXxb@JlAlwOr|<;BHeQyXJ1+U<7WetC>Ay4&Il#4MDkWv3`l)dW|w z8`?aI-m1yH8Ko5`d4)t=H8es$rU(fqCkzJWn#oxujn1m+tcIOg{pe5-cZL;mP+)O7 zFkQW(J;A!z>Vhn-zaudK?PXx|+4aIq)0hecuZmhm2P&F)2Awacw(+!bvS{@Fv4^~F z)alEH?F7oe+E)O0F&YJ90ddK83D0uQI;gELb;kVSxbLKW_uX^UGU6!^@a;cz^5!{p zP9&&;4KNSiXVLgrHvG(ZJY0Abt}HdYgeqC+iQj}bS~2(cX!SQlMMnRCIf~fY)mkKXZ^>LG2ftmO zLJ|mcBiAW|V`}Z!wQaHD?6`vkG1X_zHLb4VmL30stJ#&goKMPn@y>YKtKZ=tdb(gDz>~2!t9LVNouyRsd$iT=TcrrMN5gK{XMv0 z7F?l;w+)Y9#q*vwspIHXyeaDdw-bz|9yddhQx6ksIj(uu)BgT6uqD80WTdffjFD*+T(*d)8{c6i^cc z{Ney-OV6XX8rKJ2&$A~Y_?Qu^s@V7IF#eM6{LYg=xBxyAi+FpR>=_Im{B7FnF3?tmYI*>U}BRohH5Q z93D0v-1UQy#H_9j1y?Wf*6(_q=a&+qsyPKhEkQDbunoZb$We)hCzoq)&GG~3<@r7UrfPLgU5;x3Q@_~R8d*N3zykIXi4!%pv8Yun1n!~UPrLlRFLkIH~(ww~Og&!*{rUJ^i98u6F!iZTG4Ve}<8wXhQb*BXg=9@527v1dq@%fuEV7%`&(6+G|sE2#;zeTJyUXHZD@A@yKO zt_Pi(BL)M%-mNy31@A(jZTA1VsYA-rHOUd`=sfB=2Av;l6$j}CHh7qk4}j@iUnyk? zNR!#$@QWs&bVff*9xj&b*C`+XP88@laLKPJDdqV#k`;Gtmwq+3DRx{2qCTTYlO41p zb`I~n-GW+PXUS}0v*&@09Z&Gp+d`T!2)cdiRg-}#|J}kSDFOtd?r|tIYC4_F|K2l2 z(Iz9C?Q_gW^#lE&n)@n6s)~r=Cr|(MzS@Jm3))a!7eU9>+WQ86eAwludxTJ=*FnbC z5kR~1>@*7Z#;~i3sV_*-6%Mq&pkwflotVYzi8gAQ(;W%4+X6NO|;-mVltGY zPAde{vWTJl=C})dacF3v330zG+eUt}HzIUHJ$Z5#rdYuPOUu8Pygm0rGsJ1Jh~W9x zp7zN(D$ntdQiE$$lMK{7Sg`mK)cnwNC#gQ z))*4#p#vX77R>Go1mpntzh%5G12zMD)l$5#{D5ZRA8+6(`6_Oa*lxvwD+%4sKU4KD zAIL;Nkk4mgbnq*qC!1hSYwLN_!<S*~(t;A&!kbzFRRqbG zWo4EpE?)6oQk(WZER9qOi>(75B2=`fQZQhCZocZC&k#^#6x%yC%w)d-_AZJ`_)k(%_8$QL*@cGmK=AB)7tdZTTa z>1MxfVq^)uyJu5M*DWR%OAi%sC;MjoPJZfsvpU2erYR5CRz&2voI1abdGs@b1mY{$ znmz~8Q!Dycu89f49o}2lrNzD6s%rZm#O9a6K(}fw`Ird!dd&S_m`v#6OlNOM0J+sO`81ii40 ztk+~b+AVB!1BEz=?+|hl;~!dh01R?c{!*xd#N6%@+zgPA%z`9sK{C*1l~-Z`Yky9t zhB0uxx4Gi%Sbk^G-a6btk=zLn>UF9_9@0{DM;+~l-R`KJo;hDc3G~pfJ%CcAENt~9KP9fmutdAk0_?4KMBOevIk+J!v70n^}VjMG^P z7N11ca?PWS$0Bet2XI261#QZwx@LgM`X$0UN{l$vJTXaQ4%Bd!O<)Ax%4QfJW0ZMs zDhXU`Vp5CR5)}2lF5+aWo!t1s@v{6sP`2Jtq293B8fr(`gLkC5T_rz91aF94u>CBF zO8PD@0&bzi{`*Y4d`T&lm*PFYMLmNfLvuGRQtrIceh;w0otF?#bGsxf$gIhn0EwdF zd8eCqv~m8pDYj>i16TUr1g6En;&>nuppsNwvLBGhsyuSCc^qg#9HAQxw?i>gH+#WG zqz)16icXO%DeYhik4~GBeBDuc%IUl|^r{SxGH0W#igC)9&^zL3{oP_s7Q(kF6~J%s zu0*OR*10K_QpeR^O$?H_D2L%YGK#=V4|6t)_ex>cyf2EAa>h?hLv93*#&HoRP8_1f z)U)mLh{(YXMPb=z_ZEmMo|Rf-#yC;Zi?fzPg+Zqc)J`G7r^DNPi{Y zVfQO8<3?bVrtKQ#1AA55EuVMN(!S!LR%{O`?Yl3=a_239gHVUtVomNxdObDxH^$D#R(h&Vjd_R(5{j z#za}%R_i=ui=kP|n+z_7K{eDTWGmuQc5AE7!M?xz3o^h(rpCc7=z zD`v~{+M5*Oef$*588seW@&>7L21`g2rT}2H0WgMeLI>?>+KM}N{0C(w--+8NY1@I* z;kWts%P-BCe_WjZrr&Tu&|&MGm$fGUwdsIO%y`aL_%Lpt*U8Gz^%ABSO^j)pOXXXY zi3ZkNug?>Ry%gApqA$E)CTA43b;%5$lk_U@NX8ea3788bO~4z`-t-0rX5{ts?xNk0 z6aOBYUASU1(jd=Iy&xre`E?=;#?VMAZ)Ri1Ry&x~P$uBTJ#Y$1S{^8&RU(IrHj#@V);pE<6Bw<$Dq`#q%|2%YO0?68 zX{r>AX?_$v2kDJR5>Oj2m@qh*bo1t9pgH-IJ53ICn|ZGmPJ58@A!k32K2gGbX6NlS z+#OtiG|5D>Vq?1T-7mK%uDj5Vrx5tpEPRU?$%@{ zdv%e=@jw1jDQES(jwqNFn=w~9`DuN7teX>Ll9>F+NZZiB>G`z~M!05EiSn~78=imQ z(kgXqcGu#J6Qg_~ca&Q1qj`zrRx{;}Bgb~KeW9W@#2D1`A*0%%u;|MFWmrl4K{ATm zwrsHjW$zlL)kc9vB-wyDsw+8}1KPpin;`l`0+B9gC3KBNKiYE)CKSEkUSX1O`(0vsnC z2RRoRSQ2=Zl5|~fvma3AeB5p_#OIPzzfE zy<4veF&wTEmnGtohwQ+FCV!~w?i_MXwl#P4Ma!H6;uiApae4232I{q!u!0^c0-|Ic?R2hUefi~leA|=e%f@%6+)IPLU!c6-l`~+t<=uYE zPeQ5*oiFde+!5?Y1I^|QUkg9|T59M7^oy-DTqEA;HME-bcfdgEHQw+G?aAR>yuNt) zS4{Zk>mk1RoF*KzzSsY03Gu&MmpLaEH0Ybs;<&3bdR%g{HN=Tl+pl&s5e#A~l@RH*%~s!wN|e^0f6HVZEhWq+`jmEt@D=5~ zXw~yS;3SQxX-4f*U&#MTB)5;qOu5W{65B!+uHs6OYPk#ANbQdo<|DNlRi8?5$UNGr zAVPemcIL;d%Rggz1bM)Ok>B3EOl+MsuU>$@k(` zy*zj}fiqbrUbo|l?O8Z{gWlyjxAt~ET|Ey2UZ$Q@=%I2OLfjVu_TH4#%Sv6zMCUgW zRycz0&rVJULK8PNElqQnC{rPx;aPs|Bk= z9H9KPiV(_ID6*5io(bt?CG?c+!cSE)l*^xKok+gXZJa5w^Oow35ku|3$N_mOH*&}* zL>0a+@~wQ_;J8+$Ot3!Sm^VIX4P5RuKtiCHNLz)!)(^s zdls^{^?0)NY01dhXrCGq_Jr>4@WgCtxPAXE%VIADab6#O3+qXRjxJ%riWpEqekZE> zs9oKs3>ozHM-NIo12D8TGoat8&`T3WoGqQw;PX<=I}Cu<@l(VQ;`))ZNGyE zG7Qd0x3H>Y>2XElq7O!7FRHjXc3@^=MjjQ1sM=7~svOrK&+V7dm9yd)zHz6z<(buY zW$uPAV*Q^y2T+B-p=^rKoQ;1M5auu--xxEx|7B83`}77~kQwqID#O`j8uOoxp9q7^ zZ|_~ZaS3Uh&fUtpFw;6Rz2j!>G98v++840E#5;wAy`lol#>XgaOz&yv3eqH6=YkjZ%nC@57+P*k{pgs4qB-J z8Z6=^geZZy8MGQflvUMxf#!)9fg`}xn17xISdq~ithe)Z-# zg-sWAJ~&h)A0Fs`Eq%%QziV4LyJ~|eBR48DsOk!&A2z{L=Go|nuXe~4D${*kx`^BF`?J90l(7T|EaQJ z^40g$UtB?-{c1!z=k4mNw_Phqe8g{yw6$zTZ>kY)Ako|s8=O5MDHmwii$*;=!RbNs zWsINyf)DY&bGxJ*;)T+1G4emuf~ZIeA;tUinIwM;%^r7#F-OQ!dyqR?8Lq6+iZ-l9 z7;-!$&=n!NFDkY~(<+F5*nHMKY}zg!ly%r8?w)7zxE^>iO9w^_l=fw|0ytb~&i#1R zQh?lCxv*TnrT8tBCp4VNfBftXD(t`f9^7qYH9gl^-bIjT?-f8+T3r+w-wxdElaH?T zc|Im{8}^ch8xNR?r%DM57FC=eT@kHG!6GEORiNWxIlktk_*%A&|Hcq#qw^Oz-t z4iAi5Hi-sdpu<|N*G&*_H)lxVxcZmwasuyD5@@#kf=Hru?$Tk& z@Zm3_iI<>&veLnDWteT-aY#BNeXQ)w}_X<{$2FsAo|q^T6)yRC(yK+dU+Ge)m0g z7GCG@UYYADX;d-&gJu0M->l}~U!pcP(BvH>|LTdHasm4}a9s;;2^%<=t4m_h?OBZY zG9Me)i!$gTKp1Dl7wlW$41~BdK~n&fZ!kil8`7`03=FLVU3en+WhogbklNP92@N3( z;9X5pXb9p`Uo!PVKLOCSksJWbxT~e7O=b144xNePWk&>LYQbhW=%Xz-lPtJxEwYfL zI;}Xi{OI(0-imjJeweqkKt!(A5!1;+s#!TamcL_ujJzYC8*glx`qNM5pKz*u} z@~Su3xmNqJKYW$H6=ca|29p#GZJgZ@Wa`213#U>YF#v45lf0=Sux_>-OU;*H=-~WW zd3uQwb^)dnO3mgufb@AX6tFIG{(5uV_G+G|tH(pM)m%6Q!iVMk=xT=C?ljFBR*V1X z(uySR_LRzC`;0-BnX4iUEI3GRq*4IK@(k7;GDnz@E^~4c5NWRivGAcY0a$fuDpSsp zIHG8~Sd~OP+EcAhOZ%g{8KYXozuwI^U-w)W&=g$9+9;y1r4+fyh#zP%lVo-v3hgwh zW2YrV$>bWTYVKazR1sWb*F|fal#WfQ%wFdVDSY0O#mrN;vVcBoypQ&m-o9YFPeTca ze@f2lGRn584FM?(2bzSU<^=Gs4JmTIDALec5T)74DGb0?gv@o&^#$WAf9)xo& zobE5{>y==NN;U30rcG|*A5@f7533Uto5@pBh@ot=$(V(;o+J9cK4h?iU8Rnqrs%if zQv;6q9H(y(TbOaNl5u+(NARZ`r^AijuT>3I2$!U~Vc5Po!MbEumD`iaTN9a*f7~rw5eAIn#h-89d2;Fl?s}fElH6`@ z)3|ezV6Xs9a8O=j{4br))VyV`42hVYF|0mgV@ybdUQ|g_NZWg<9_FR*G$Rb!g!L9Y z3cg%pfPuPdcxv?u5QYFka7TU09Ey;OOg8&FAeXQw%WkC1&Q&Nd@` zrF;q!)i&$VZ?PMci?&Jb=cX+^$!ozwIU12Y=PSWUukQ^kDJv`8)z@|mAVYH8(-|v} z26|Q)!|v~u1lgB#8T#FA*0ir0dejfk#`(lYjpZvBkiJ)|e*u6UV8AF{!OAEIWC!cg zHOa!ubw~ORz#=i=FZWx1V+pL;s%Av?mEz2_*c zPYUsq_vg3m4Nf(3r9iQcDv{W#h0@Qc@K>f*pAlcFUg|_#iJqlXya;DF2*pgyO`c~- zQWn?EWB}iMVo&=v>#Wj2gvOC+uTxh~xmi)F{1cd|#9AU9sRnVz=NVrC40#C#6-L!te zh?tK(fD0GI1QLky(~msVOJ-<3?ldJugi?r51&A3!O75dNcoe8=pYTAZ)JeIgB+Ujo z{O|d1uK`IaJ;rzpB#|mDrWLyfh1i*!3$V%4bqZw`%>qt2GkbRY+jPg)2UHOb8d7DG zB!mQ39@l=b>TtLZMQFJ}vW!RpHXSKj-c$5G8!0qt?>qMMMN+J&(J0Ca(E_G26>BB? z=0XB1i5B@sYi2D(qJSpClh%nvT|aTz12(KMVE=9fl3Hr|4_-$`5n!9WKKmW^OzHhb>9mfL5D!b^@g2#jy%g=f_=Y05SD`P-Z2dR&{0B)EOY-r>ARX;0^~ zlvK)wv}Vi$s?R8;6i2B5XnAPhGxlzFafL>Pl1OERFggQzNk`&3<jrV z#47$PE6T6W(B4WlXoY%WA-;xs=(kZy5aX|uByoHc{YXXyqqO^UgU(|05x)zKOV~Z7 zpHjPWI74VQHm5U%uB$Bnm7Q>CBY(G#t#IA3+5Kzp8tJ&Di2Dn*J{Uh)&=ubmPsI&4 zrXR>l5(zUOeGbTZ*QQW9BioXDdtv|~tRuel+#Xui{?^%mvHi|5K+%gZru`g*ZEzn)(lBHdh+i*|&?u7Qa7+YTu~ngd z7CPzZxelg4Y_ExkfV}bWtVphns+%kE)HeHXG_|a40AO-iz2Tk*>u~Byv?VxF#!fwJ z*|I;V&qJ0xo4@XS)PmP`R)$hojci=4Xg}W4?NdW?q~mz)6u&xq!=_X75cg~zs7T(rz+!eiU5o^6d>Oor0^!WQb$Wi-e zAoKl2vI#i_!E54HU?wYF>I4c@$nE0q&Z3KxSLrF-6cM+c&ZnO9|EgjA!Sk z23JcvS5ymAwg14V{|^2YS4cG)1V{?jaeg2=Pbq!hz0{X1sZ$oA1bMHEy4SE=d8)HK zic@=`B>!+u-0#H1x=VcJ*=Yd&Qzf#Abdvfiyxvh`#flI@RJ3K(h(*0?{J~DTELaJobW7 z6hVEz$Nv_ACT;rd>>HPmJER;?R%!*nawazy2ed>*W7P$Xk34@0M(_2IBc<#eP*bdp-LU$gKFHohTGlv=BNZd_z4C<+2r;R&l6g840#6;=Q6l=Swks z-qB?)ym|NpVWCR4ixtTWwiiDA9AfNNW~&;+BoXsT6Tu%&AUDF=XJe5S?*X-MRQS=f zzU60RGtupp3m;;t`8!CYnVA_^1#~JYP$JfX>CRYHG_DcieSq*P+aVjerlTy6GXZEz zW2N*Av@G*ja_9APIMN?0dhs}kvJZBkHJ0`laj1vl7=xBAQ;V_ICH{+D!l74o(|9mx zYn*+pV8oJXX;Th`WJ8^@T1$2xR0)jSpeN3hX(lqOF|}atVEilm&fL77YCZqR+iSUz z2_^I{CY9O_D%(7`F2Z>Yqa*j~=RSzu*@+?yQjY_o3|&{+S3G3I0~%};i*6k)oY0#L z7S!;!-7QqCX2XXh2@BfwH?N+XLjt>G0~5TOE@Mrb2nIp@p$jQ^7ZI#sf7pABitRaU zzeu13p}3oQX%+95GT3X3kA8x8Dfz3A9#Z4`?(ytM*cuX??v%bKDM-MC3Nc5~VVAL{ zq5(p6lLoo#$oK)P^~0HeWkYkjalgxHA}N^%E#Xr~`DDvCI*(7P>1H>G$FbAYDfaZ7 zIom8c_+v6IU|pYx=Vi|4_I)>nT>~GhP%svj_!uKOPix;)u``AgmoaUY22BYs-3W&o z2$l;pGM8^0_xpPNQI+gcqU9hy0g?2%4arx*)}3GO;-f-lff;4VRy(NTOcVWJgvFxA z;@wDYaq+3d^X7MsMBggae3Ibt-I~tSx~_EnSIB1si$w$`alj+6b4&fl5qwJ>fuZ2M zI|)S{D;~x>zVr1{2^#a>TDfr|N<)dGzMN%}ytXCbU&K%r;5Vl32;~%6-)Yy^*jEa% z<}ZJaPM!Wys+a3YbtyJ1UcNz6D86!u#l2E%B;*9L*v^5dc|%A54&;r5bO2JuUVa~a z1*l$1%~E_4>7T0Rb8ZfBqC%1YpX^d7m3jzy$qrS(8$Lg^b5X#A9vjK%$l}jdh>hl? z>`wh#lXc(r1prUhf&eUht<=P%6o6!`O)0$*l0uJ-K)ggZC5Mlb!8ti^pMFdV31z8_ z7W)@kY!L^*>5>c!WYEiL<{&jczL9Y2eW@q$n?>`xw^2`*TD4k|5Wq==ID$WXfBsSb zPEW{y{1k!z$A@vcvgmNSP<3=vK6ahb*|q0=^@S=zeqx9hTCBNT;Qx35Fa^?(oABxT z9~|B}zg9LpkgUDP6Y{)5$&jLpBNC9(@7X$xwD4i})a9p!gyyT+cz~5qhcL{GKfVKbE6B&16vigOx>6UCv z6#QG+pA@CCQv_ap>P%|QA!IW(pU(TY8|cZ{AH(d=M zl5zU{+?=KbjxHItFE3Aiv{BIoE(?0ldF6?PD~U_DH}^Spki^Wa-Xmm~X`9~NE;p*3 zrw5P$8HzILnr?6Ym{!%or+=Yrq5%n*=`E(x^fl z(b#!e%ENtLT0;FiRY%L&ETF|Q+fT@flnw*($XRXj5pSu3K(ZgClar2Orx(RmC z3WXixv`lx^8*x0ti3wr6nHjuGA9Yu6^7kgjZTQmY<6a@%ik(_%BoV7=HtA)jQzZS{ z7H|B~kDaKE6pRW4UMPcwHl-u{HN#A&DwW9I(S_(TdTXJ>6q)p`9)BW3Zi6Xm>Z15g z+5y~}E?Y{fb7k8n0jF`0{!e~08kTst&1#jMT0f;rNL&-`=>Epl&q5VSWF#>pl^%In zy_x8R2$cyu3U2SF{GAw*J`SjBP4-xnJt*n3&gkGkq|#Wt!2?$>i7A6c)5Pc&t^S+e zu=wd5SvpI$3z;a|4M)ptfK`DA+e}fea|uV`h@nsuL;^qv2jwIbScT&+6zgcTMmrex zEU}sv9G?fZNC@6R6h{QSAf?mN49-jUj0x2=R_uhuKCrD1gC;@My*OxkEF>L8x}}Y} z%sd~TzSXO}7tW2Pl~u>A@*Gz=*Q{&#!4!NjFJw}_$C@Yk@f15Q)u0Bqf1wrz;z$bq zpl&*Ogk<4Tu%x<{@WRagF8KA60%Mjwpz$;)imISnMv%2Z-p@c>%l*k*r%W-~4G~=( zyx>K-)W;5$)u>;H7@lsIBdbO956X1@d}WBsg3pnGJFU`uD2OkGp@B{1YAur0bCn^5 z!S>`6m?)#y^|ria)E{u(9kREXW=+8WG%F=mRf;)$N@y}U?PpBF0t@cftx+1BIN?OF zCM!d#L{dr+K@xm%QO^q5ju!#T3?i4oJLx~a=N6XZ!~%MRlb5Z2yyyF%#Zu_*rZOS~ zNKTe9d^ZFs$^PbYrgVV!qO-Sq(K-9e0Lr*9@Fu{&?x*+_LhkbIw?_Cwtj;ufgqd_y z@mo6%(W-JP>qA8p!MyaH%^$UCCZbax$IwGNsrdNKA=vTomn?Cu@jY@ohF#+ECl(H? zJtdU8o#a_N&U&p!_;ugA<|{2)?xb3e67N@us(6Vg*K$J-x&}4%DO!qdTTBh{Eepn%6hq;>!0)tl+1n4HI5sp{=Z`j{$CPputfZw z!|8IfF8&*>U6uq3{YY`i?!jp)C@6JECWLRYh{Z4|sWiwAc|wIpPB7q+F8rv|KpS3B zl)wpkCAoHa-sDc+(_Qn|Q(=bW!pJ)6ksjLTMd5Ve6~sxGcYpdpMm@>@KKYf?#U2B= z;2QtggL=nft~c3CJ1WN3e1N>x?=i%N30e%psGu@aeHut#-k~`dcR3iRx8d)#kfXJs z&_zj^YZ(dxnr$0zQ)?rQUmHwk!($+sLS}Mu$TP_E_;!g(!Q#}J@N|fT{9<>q&xz$2 z+LhBqa(nsVd-X)Ld!6rlJ}$oslNp@e3iJ4ByN^wgy)E#r$16nT-0H@y#D`dvGiVTubgBvJ0{yU0{ch>LK(*4B+! zvnDHjpRcg0a5tW(&>V4Y7&mJ_xCE3zml*I0^|Qw`d0*J#m)fpl*_tL5a?_&UEz^Rf zQBd<=_uFBai3=1tZJYfOl^>+cbxd0Bf7OAbHoRkDIix}|)B=UYTE0EchN|Htbz0k+ z2QxTumz^GYuBqyCdLBICVnZv$P>s)>{U4EOCi8M?yxE`kFN$e#&k=B{k?bGXdWPbXs|6LTC684`H_$ZQnQWE(s%_yG;>hG$m7dm^J6rLpux8?*nHosDKAuL! zz1uErYu9nrCQ!^&6%hdYpNk#^cnX-&eNCqs@#7IPOJW<#M9Ru=W1GbP`YdJa$Hfi% z7g#Xx5AV6B4MVJnl{D5jsiGw@!i*YUr&juU0~#FFil!G@dfa{Fzr_}*W11NZC5{tI zt$}?x+1kE)X*{93!|lJ--4d674`!6${iG26m8NisF8v62yj@dj{#~`Q<Mg z-KW!VQRZYaV+o(v?4VhUK7y?{Y+5}*^Ql!IpI6UTta}f7nj7IRc8LoSMBDqrv=*pU z$uLBVCTVtKhrUA>*%J&e<1}s~hK;rD#^?JJAB1C)`Ly@2yjHbFEyh-oD0%Y$y5GB2 zFcKE2E~QrSMjdG^r&{Z)ur0{j3it(Q>DQ1Y*ff?|_Ec#7W4+WY`kU)pM-zP@SW{)k zXT0rWq}w#;wCl$^YK}*%4yM?`x{)!|*L4+pvdfjnJA4oq=eO;C$cvhG&___^Jj>%*lW6Zt) zvN+!02DMWLa+u!nMz#X4B6d7X<7*z3r?O|QEBE4-eu$C%(ayV%nv61~Q)>T_Zx9}7 zjOGI0gZt6~VO_~MrO|Q&Ct?Ey(|l{{6B^$a&qfVnI9()@>U*ezbdpC*2=f0e2O+TP zS|KMP`5D{)dGr43x4|q_FLL*mPKX4kW?1~g@jINcFk|?LMM5Adt>;PPIHe2r2*gKm z2xO|R%edbUp#*0Zs7uSNyS)HM6yKd!Fa%UTurb~v*^!!wiTNOlk|>Ee?a6A@x-_CF z?NZRaHvlIjxQP5kUmxk-0UZQnh)Cv21Cpy7rYQO~(cfO*Z5xpQ@T{_CHDt#hSP3ah zhK*r=`wat*Q1DFZ+mhDASTttN&u;vdkBtVlJmCw(*sWb#T-&kELUzEw&GFRwa zbj_TsRv}iq>Vs`e9Kf{K0x=Ps*3b(td_5$kN}K% z=&P4#*AO-HGJpM|xfT<`nQ?c~(bm)qYyc1TjY5W{AUe|4X^?|WTSmf4MIOc~;%Xgh zicvIs=`@4?*cT79>s5|f))Cwim^^rWuy`ulc@aNfo*vcdQ<`LZMMO|*CHgoWDe1<# z))aMzuSA;S2&>XfXi+SqfBpTT6XHBdJ@n`HG^Hx9ix(sBJv?l$N)yXmyydoVYtS5W zk2ZQ5mpzp;Ca6H%JQjO-i8k^oNr(vC@W4-zC`%Fo)0kd}6E6oz)(=$iX5;9#u%i4e z;ulo-|5!4Nz;et9SY=C1RgUT$-<(KwXU{BbDKxoO{O z>k>9g-5?Q?W7=}BZOPvHpl{{ZeZpu*yQ(`*gGWpX)FMu+uJ#TW${*Ca;2-g$T^qgF zaECn#%?8#6A7rP@=ym$)i$}e%|BJ1+4vXsh+Qy}a9=cmXx*fW~qLl8gAqMI0Zk3W! zP*LgbjzMXWA%-5Mh7=fb;N|=KJUc&MVfu_PA zSQ8H}>2jOW8hgE5wvQw}~CVN&YpxE-u8=&(H<;F467KW~gz#=mQiT zX0d+~=GZLbpy&7Y5m}g69Ok4FgNKJyP~yx2ZRJebJxs@v{7hu?rdZ#}`(sW(Q!Vv( zE0#HdmEJ#moh88-hM?$^Rrl|>z#Zcz2kZDGyfYFc2L<)@=0#Zend23IVh~B86elXT zPO;eWpQ!xLb+-eEF zb-Tj1O+T5Mx-CE!(Tlb-e&LOc%u4GuYVhELG`6hBcyJ`aWh7de!|}@4BckN74b(_l z=|r}kcSv=5@eCLH8QbOS<*Tm)uOGA>re-VpXEtRo`?P&rl@-s{IMzH{@E^jQQRDhh z%5vH2R_-wyLK^(7G5ydv1l-puJi+cHNV}6ce9wH>gDstJ9S3c*LL&K+Ba7p4aRyS;v1rmRKdTkL2?3f zEMZrCjm@q28>Lmf6D&+Bz_k@m9)F9VVUrWhpkGO+ z(isbJEEko-E5F&Z`c^q#jha%LGD1DQ88mvQsY8o?d4%A<3K5t;Iy!~3&!3OdGyViB z!5CznryGV*aW~^0#?-p?VFwyv0CawnjK?P{(ltdDRWHzn`86!tTp{diX*}ZTsKLzY zG4#Y5NNaQ5*Z0;4&-O>m3=( zxE;44qHKcO6b%+Ate&hU5WFaVI(gc1c=C`m4BAK!O#D;V0pHlS`&!<12jS27Bb4wW zsR3`5hj>OuHGjpDtnLO*cmDa-RV}>kMjA>%q}>hBqRh; zD*+_hkpjzJOr{e^1f1&6%%R#Ka zd<>R+4H`@)FJ^Tpba8*PJDk=&&s!GI#+OFK{dr$yS-C*BY9{#Rh|MP6b`xMvDT|U$fdI4v{&mie<)T`ke+tE*Eoc9cTy&-#{Tsj)b^biEN4Gk5(xm1B z_EzpJA#Ij-9bI&Z3nOIpU!$g!->C2i`7+FE;XO{YB=t>hK7)7u>C#1?mf7)4TJXId z^J?{Q4R5yOOVq}a##2CglA*ds}df5<3Z@*B0@42SXK8Jjpu3rz`M@(9NyT{>dJEC5f<@I5ZPEO@k)vr z{5(ch)o_-lvh|`DpAU2R{sk&=rsLYIV!XGoCERhgGq~AW8 zR`j{sJb5H;4Rq{Do2W_Al=S*p$PPwuX!YQc<7vnu>?<+6U%e&|%pEFDKcpEiG`g8W zMd&Encrg?O3l??NX62aE`dO;t5`Qv_q1y7EM?T32?-}C4a4F$guwJp2Q7+Hri11Ms zO_|Z!zzqp1R}^MPc1Eb|V3>|y-GmCSEB)Eoh-pgRuU~>g*VIlc>dyH+tNmz{`pK{A z$~><~_3@~bI833hji`#fHHj;?7#l+KOOkT2K7;BD;#qK3c|sQQ9p#H;QGC5`q z2h^S%@2yq;5->%_+Y1^(V+S5iStZC@FIT6TS;l~TI;c0&C~!92*F_PmWqRUs)#Uka zaUnRxXNkF0Ihsk0Gbs(9)Lel4R9WSdE^}+jW1^7oEe=x(jvGdGX(O zG=2@9#CNx(BW3!+X!mf;>tnQDfXl#*@te)w(pIcS&GajsK&c4bFJ_*nTFNc`<(8#l z+gBTEE1&gakF;1ap48!k6cx+o!Z%~OJSvNs;`N>~%UyLErM|BaDbxL++G7kJRwJ`C zGkS?xsix|XryNBOWB2m(|OpjW}YRKpwFpa7;5eOE21g zm}G;G{sFchd0E3$`Ur3|FQIAy^}DBVn#|Ls>tR~3Rzax0(j1MtKsQW*Wi)z%Xb2MN z`Th}mLD=vWyRq5ysFjT0=G@q4OA26$+!NDoA<}Bl)WJ6$RY9#wZ-fnvM0c}Djo2cz zx??1GN5r1t*Jep@x>h(hZzi?yz!Tf zB`%{C1movVWdwXp8{sI+(ReY@Flzxt1P;ZgSWyo-{7_u~0Qe+!TR7jDKa?q=y=~f( z?lU+1a3PQg^CN4SCh3fTkdO%;7~|;>5Eh|R{uCoS?%X2^v(m@#rlEm2`%CkdsQ)=q z=-V@9<=3w=lbp*>?w{Jflm7O;@7w|tEcak!>iZB63=7IxUlMn{#X9?x^vJ7=$;?nu z257{Ym^`BE@B;c4v(Ce?D1x^L$p36 zJaJ0~G;go0!9-vW-LQ<;^56*X_P3*hAb2iW+RQdsiZFzFz`tjnV!*osSG0kR(4Pi9 ztxPS>m1cXuL7-3lgzPEeC~fZ#;h-oMp1@j2C?3Cn2P+3vl#1qlK6=Fm&q3tZDGw~H z=2Km7O+v%l4jdL;@qC4x$CdV`LvLmWHwwYYW`6RuE7Anby_<0sbVXi(q)PwMjEAxn z4<}O}SC1c*x#R>StySod&(*Rn{b8jf;Xd>eI^#uZxOI=16kuBrTJ$#zf$%e#8pR_g zM-dkUl~B3#2+{oh^O6kA z5Qi(=t!HFFjK6+4vY6x$O^c$>>UY?*^zps5x2SoJ_?%{|L7tBIgDnk3+0i(yA02X_ zI_Sc>={46E_i{r1j2((&&7fUVY8N-7_N!o8!CX_9mrp=hjpsD1qMmgQT>vbB0^ri6 zGRx??6{g^)!01h-fVk)mtr%3jc5 z*nw~~`?W!{hz-rWFY17keZ&Q98u&9~TuW7}eBZ?_KIH94A~uJ=-xiyxIsV-Km1WU@ zmo+NROAA0EaqcMCG9o9`z854w$7u*C6IE+NLc?H<25ekkZzS`5VLKi-32WRi+*Cmb z&l$Yy!lRO@DE0`J`sHn^f`H)-eZQk?Q<=gApJ?2pnM|q6n4)(0`mj{qa6g-()F>vk zb3H;Ml$q{h)++X4kP{xeOIRCjsW@!J1G-@@)9cHEZST!ntc|TeCZPT^@N zL&k{8kSwkv^>N56++f-I$$qqTxQ8uK%SOwiiTiog-mO+1K^uJLgAL@2mX#sLUK5l$ ztHWu?!Kt~N!g{U8swj2-lv+JFb;=yQ z($ab)x3I>G2W8{NCl<*;B_zIeEST3WO?e_MuI+x5xSDE?Wuq( z93CyY&BG9u)$6ttxHP1Lb_Ah>0Du3Fg zx;)0a9>EDb8)*_IT_8CQpTk&>8NK)_=Y12IM3)9Hhx*Jj zSb?=*k5i6yHImleTY>fKg@{7XiKJaQmFg?sMFGegjo6PvGr3etMP)j)sP4B7g!Gp%J5{WvC>DC@WFmLv;2jJI5IpCdT_? z5zDV3r)*$ZiduzWOeEXqE8%m>JvspFcDH96hrC#cKk{<<#KV;&x6dK~$vMn=8Q^-U z?1y}fCQ~*gShmgVA4L)FtLw0gT!!vzw0sI`yoQH55_xo;5$Pxh$w)NDlBu3LoaA=Z=ZH)nnhn@_Vy zU|h^-co5T#M<{Mj)WqrP{aWYuHzhzs^|C48)l{Ffdc*b+;#CIT`$uc3EcJ}d9cNhq zd3+zV?;iyMY!cQ^+k4g?md~fjAKt$Rn3MlAA!fkj@D$1RZsO0(ev>}rd@)X8b(=1E zst1xU$snIS87lvof;68-8x884$H4ky)u$-+d5-(igvaImf)_sn?;PARtdwFJ{jHRl ziQvs!V5s1{C?zVS1Q=CN6$TCQ@FBC?t`=1sY#a0Ia>+Zp3PH&LWMjs!J)?~>?3OB%78CY0 z$3s`tLR5yDzwy4dDWdz9vyhdds;K zpCK@lj-4G_Y{}e-h-BbB#}gy@yq9F|G#NNa-%Bt=b3CJ~DqxLO_dcVSp{t^mKvc}BZu-2R4rm_r11pp zg>(7X2@UuBGs-kH7fPTUq%sE+D!-;wsp*=9Q`aX*nw^b3ah|QNAh3;{G(u)mwZzAHkGWm=+i(VQ}?q%p^SnlM8PAAxJOF)ps<*kor z__`)0zvDL_fTKusA|_d?;xgXz5-1rFtW^YmaXtFTUu*v{zs?wfZrEL|r%E-tZ7Oy# zJ35-FvzShCRxe_a7jH3I1)YaoZ+7*~U(&7q2rw+Ye_J*mk))e}#ZCUonqkpb(Y`b= z-`dqPSj0vAVH%4d^^DWa!I{D;;ITD}q>fh;eFt6V_dMw%WY%}-v`Ny_&%FlbcYCnc5b1@Yvn8)zIq7Tl9r&_~7_jk(w|dNH(_smW;U z%LmG$#5A-%O#OC3^<*@WNcB@p?g6Ef;3Q^=bRiqu?G^0*U`^eWo#9ed_Wp7 z($^k0A zlj!=Pg0d&Hr5?+Evm_3JEN)PB;v=~OCw3KdCcLNZ{Ak*rH>n{env?Jd@HxsCa$A|+ zmC-77EqG+eGWX*fv69DuEGq1_fBq1yiC~y~%suh;H<*H*J=4T9IC}wPPe0^t$!w?w zc@1qBN>7d;bHX_CO!=qP6vkTuGymw|r99(8ccoW!{ zPX`RCH#V%!8{_F^ON9nm$YMJEx^QN3q+IocKXBbpa$A%_Y;uJCX3r_wZ=>kv9_iKZ zHM06tZ^PU(rJQ0Nc4C$V!BuuSX0uSG?)0wTBWz~1a8((pH%PJWz(hjM^BFvd?asZH zpZ1wtYHy75Wlwskr=_*O;!X|uqw7asDYMhY)YaFlwcwj~6XH7?0ujU(ziMYn|A4Gc zYP3vaJu<*c3NtT%dQmjD+r+iDval<*vw?AekC?PydSXRPw^5w zMMytbA=Zi^+z1vG&POzvPs2dm^BZ0;n`Sn_pm+~i=@_>XNE)W#i3KRnm`=hXUDmI( zDk$oKDSwlC$SAi&GZP5#-Do~{EZEb2=mfIhUXb@{rS$gu%ay$KEJ6CW-edu<#iH4r z2z(8|+H32$H4LljiBCo(JV1ZCU0$_AJB-o4hg$Rh@=j4Mvwdq!_P%-9-rHWayJPpV zAU??#x*G{d?U;WZdg&=!^Km>ha8~)`DRo{K;q(Vuw?9v4)nT`-0_%GPm@a=ic1(W8sj+b%U$%SY%9niZc!YRz! zl0#HHT3+F}uj-cX!Zu1Q>rvGCU=p66V7nKP`QAZ9L9Y_#`$v*skF%DW@Xb+E)IwL= zxIvcTj?jL9JalzG-1%NA%7)hYA+*y5$@(X9YQ_+~mz$C%5 zU^7SUv6{11@uNa$;OILF_ONU0`#}C;08+M4V{)l7_2rDk2`SC$rEi&?drcUcPYrHj zTB9BEOQo^B)!owH^<;uyvlH(r=9n>#UG$|hpLKi3pC4kdS(7Hqo5dhEpGCjKk{e~B z2W!nK(($`L{hmPS7Wlf?#0zSa@ldOZI@nw zJ|zuS!u`GPxAeU9vJX1#y1{{~hJ~z^uqcJO&8nnTT})1UYBs@ZN}0pF_O z@V@QkYJQkq^+&RIxL!`YxeN5UH);NfRRm2-ZgY92sInP3yrYl$m%l90A1kanj}H)F z_|eB*_^uSdnz^v^kTVNHylAxvk?EuX5B)s| zcLj%x%7=_wzGuoQRj9Q}k(|Lz93qIb94&t6*0-6?8Z1+9aJ3qRo#VxY<$=ia06C?m83zEWBu( z=~!3G8n_sjRSVi1d3_P_4Ed!vWZ(2U({%a4;vZ*IW0OYGu;b9CPOqQRR9H+OJyae1 zu~h<2wcF=kSxhls4uvVDbJU;0nM#g_RYF?WK7D_GQV8=@Up1h{2&Nx;#6qAD0TT_< z8F4e5k-1u6<1pn(sG)-5*1+~+)coL1?6%{fCkl1Qn#wc6E$#U~KVF5L6^_rTS69aG zI2DXKmM48XYYOh*f^Eo5OtQk4>MZPWf)&t13?Aa7YXjQXUHf$>Cz{y_`47|BhRB;d z3C9^PcfePS`#+tV_re?Eu={KAgU=p~2^q!pNZZg3Cob^t%2xF5FWboPHbzC)m!2%t z><2BO=*six3|8BX=E#N4W`^2h_Co>A1#;`*o*iB0)h|@{2a8IdX0@X2&rEX$mLqfz zsj*E9d|Z9Na%fHl@!Rw5P_(bOda0+?yKFnY56hCawX1oA(rstdf?&V=sF8=7+e*)< zwT-r8_Pu@cx0l1PPv_<>GpB;>pX`X0CMcd#{~h52Bc|9{F=m`IrbF(yrd)3nmoEfV z5Bg)p)n32Q_|&;o*$0Z-;gN`cX%_vnj0_T!eu6j2V(Ub|-_j(!W()3f!|Uuiy*j#J zI@xKO)R;W(*#%Vv?gk0=lMdzJ+mVcVlQf5d%FdC)}x<{ z?0Ou5FVnhkNF=K=yHu>we_bKsUjJ=?3Ua;K=>f_Gl@2P1bPCSemRuSx}00Wa}6Q`UR8dx11`A zz1}XUHp1T1jUbgyCY1zF@;aOb?fU_eMoY9v1xa2x>c5WXbfH$KuB=3o-u&pcj-1Rk z?v2OQvbLbh=-V0^04%71^5;%-r1e6z zYg+~+*e2;+*o(PhhGly|^ZG`5rU0E6LY({v$Ba>C4!bs9m)6T^ToVC;)0L_vPsz(4 zdQn0+Uk(Yz?f7kd9)9WLT@(%&G$3H_a2>CEf~ULQH>4Lg{%|wc( zn%fhCRIxutW1t7h%{O(D%OZyvp@*s%Gr``>Xex~`50heI?&c@dy{d_Pr(uKsX*~Id zndi<; z7=!GCXDIn`N#&$Pn1`-5Q-8Mom3k5$z&`M>xe8MFcK(t(=9~{R6H*v)F1qotEX1x& z`L>E}eUu+QOx;I~cckh-e5$NVSh~SqATTQnQ~J(Xj%W3hop36Hoq0?sqv1i;;RXXy zr_NquIu$*V7*6`D9T$VUmui^msbDj{gnru%THY+J=Yp^W4}9htmJT$)Od{8{dy}S$ zkXbmB1vvRO6JLfkhp!S}#(>o+-}wVeA?OYA^*qWw{Y2-cYcIPl7Lt`Azag1aDK@NK zy$Q?wK3t>>9I4mSOt+K(W*))L>}y`1$D3*3S(#Usv85IAn$DWW`@*p?Ad~ra%yT_$ zN_PEZXfws97g8J-dTY}+dRTYX`()e}!hVUCX}mJB9BD51W~&@m?#@(tSHdxa1a%&q zJH#r43g(jKBgt#*LLALK+q$l_y=lR|l+-WH%fs(IVKk(Kcy{o{DjEt@QrL7nh}zG( z&-JH$L#yXdznrh|=Z61&Nc^`7nKvXRek-j&OciUia9q416*l7WK1JnT{fbB-YI+hi!X<*+tjsGaJGbv{>;yW6RM?)JF`{&L)z``S9q zRpySwAru!?F!+kt3chJbV-+`Fj}eJa(&~o2)F&mp5Pc{&zt4WjxkSoYYh)Y!jtFVQ zEMFAb!yM+QlEA))w@TA_Y3AuhTljLm?Muygz9eAL@-H9YwqQ!D@E#1_X!uC$dat$Q zAH^`;xfGkeZGu?CRp|Mu7CAmej=8X_w42G@@pk3FcYtTW2nI}OSF zP&AgxPgP3C;Mf|{RQ$rHxe_kP^6JEL>fu-Nv@9F^r*Hjw@8OHgpneOex|r2&XWwYg zT<^_Ovnyylx@wKkX*tv^js$Q#{Gj&r0dViZCG9g*IE=U*V&cZGu;tk`CTX z58!|s;El=UkIavSf^xLv63o68`=dBP*lHy}MiG-e!P2;l(rTt=7PxMe`}^x=p;{xK zR^YBTZB4dkkSVR{&@onN4iH=MZ1of1)cCHROGq99nbe0yMrP>G80qdA{DWa~S zCn=*oej!*S3|I#rDJZLi?AXd>wy~mkrYpO)<4$Rq;*=qQi7P=Lj8-?~2ppMI&7dKD zQL&ac(()e1RI3{>x$L0OR~iHt4JkW5SF#2S5J77@8_?0=6}#y6u1rz(t@@n3yG$1= zp?fVBU7%r2?;OKWRPlA$vOyBcw`~9B0GJQE3e7v{;w>4Stoa8z!vXoi7})e%_2>Zg zC?viSbhiHjXQPI})JVJgisdHO_h@$YbuP3JNk|uuwa{LoQw@NLJs;{+wbmr}NR3$*~rhU>5zpHM;+-bb$QFx7F&^~5M=5Xk43 zR=F$bK~KoXPvT6qF*l7EkGv{5GABvOZSAU4`$He;0>YgaDg%}>RYw7PLNqr|e}8wEtHJg(ri}dI9VzBxSG{~Z!+G|_2dN3*?Z1GUPq11j@Z(i*th95?P-$;_ zweQQ9PeB&ngUtM9W4*gubtYmdmM(j15mhDm5DAj@#q)W`S-La%N32J%g03CMrB?3( zp?qZ{aYJFQ(@bXAtf9R8NVJa-wlUC|4!iF$wnxyw4N)6Tq@8`ul7f@5<8KePC6mU% zhx>;yre}o%Gy?sm0ymBBZUnaUHnv2rJBR3mXI2^TF#OXpqwR|pGBO&2Z!+4=8}17? z46{`$uSME>I-eBw5|%I5&pB#gM7ck}X5dzPeoFRVUo+whSNG7+sZAM^@MZpX z?3X`(8TH#5RR{oswrK^>1Be&T5m{qP>7jU$UxGmt@R{5-(9n`rRg@&k8Wa)aY8vl3 zf+|^z$CPqXZk{gh-Lj3G@2VOQ)+kQP_oN6}zaSYry_DSEa6IrvWZ(gX1Ap% zxev8Y-|elrpYa_OhtIvzn}C(Q1sEgQu=>OSEJ5~`r4G`p_8jfvc!wwQ-*B-D&WNJ>#3zD) ztvx-My;9Qt)hvm01TRzPD1K$pzI=MVU;`gN(%k6`CGBlu=E$-{99729l#E6ON#iLo zcY5cfB$@TnK1_bT7k1koXZ*Gl%yVvQ`EyX<$F-x5uV2$=ekO}`b=7|St}l^kJ96?+ z6jEcC8bkw1U*TKdyza$MHW}T2z1Dsc@T>GY%Rp!taoonFHZ;U$sC(cQZBsG#iIn`8 z%XfR;Mo+qXl77>xe`&K&_)nSee}7ge0P6%+t#Hk+wZ{*Io(&+hK$K7KF9a$RPT5y7 z;*j8kc2ik)Qw_9pkg@@0Xi`~ddx|XWg%#EURY;8!rC96@oN&_tu*bYd5EtlGu%iXy zYugQ8?Hfqvn{NZ=GCBGqMa$2_BX{H;cf}HyV;%JCkzk7d>=GZl7+NYd9}RZimm|3> zIFfIN21wK3y#`n*u^D0;_o7b!Yx_*A6~c_bYCLI$VOUb`vf|g zb7Q^-CUvjY&aEJ50*ROH@=pl;TL?F4uV{MRk;9`ceHk5vZJc%#Kg9qy$`|7(fhxX_W#eG6+M7a1eqVZU6y)R5rw%h zR8hM>3nLF*F)|3*WZ#R7$%uhxax&XdQ?ekR{z9}%b_;JbqPx;DJ_}wYw?4mIHkmVY zEb@9G^k+&)bm#WZqR2i)s7<9hr8@*jTH?LNolczS;5Ka#MbI z$a<*EI;k|thop4&+{N?6o41V33|!s2hvi1KCdT)*|{ zS2K7qln^o z_?w)^@f=jfH`TJw(+g4PiD+Me$ViXY&hc?|0rj+rwxP6E9675v7`cs?)}WiVtUzq^_{j$b zvA%1TO3Q%0h;IHz{5`=_=$C>DsB#u;EFU8p2Ok@$(d&X-Pf0u9*0#P2a5KrnE7{b< zCaos<*2@+$kmF@C&9LzfDh#p1br@i`q|Bwny;LkNi7kWOU$gt$XXTLJqG$Qz>g)n^ zxTH0JVm&KMqVpoIS^N9^j5QOpOZif7)GQm=ysc)xw$Fmr8yLNNnAQ^LBh-PnR*Q)Z zlVu1i>kZ)lF8O{{*}RR-4#vP+M%p%)&`Bcr!lOt^m$fzbFE`_MJu9C!!ue0IOpQA7 zZv6mFh9b*g9WD`Ays&3NtgWxY2Ot)6HHP3oIKixH%*9Vou*R-OC(OG0xL#P8gxB)L%g&Y*F7fyvFNgm zS{L1;X$sAxYmkO{D9=u-9dz4L&AT;P-B?|pb)ZN?Z;D2j!$b57*)B&q8@F)&l~;HC zPhQ;%Z}adDZXH#uCgL#Mkus8>1r*y=qvp%0?9TDKezwnYCh33I>i?ahy29km0J|vF zW+SATPeV9As9ct0iQ6o9kGiUWa2?heYd%HmYu|n0ohp&$A?&e5`6wc*jtcwPSYTnf zrK+LuGdeZXGJ~57596-s#==wIS;HsPdHWo7Fsi`es1)Y|^H~8|WQA-30wWb}c-wH- zj z8{wJ&L9>}nrAV32^fYLv*K4n-@9W2zJ2^I0tGD>K%fF)?rL9T-*i3P&I?3AiVn4YP z$AVm6a9YvV#aP^T&oH&HzAcU?M9jiFNpL$+ey$Tn^<&$Z^IeJSMcEA=ZO;)bM3(~C zuebS8@H1BLPj}Vv&IXm}}a2H8L(|ZmcYT6rIy1l(n^r8B%U-|#Mh$!QPEFrIe?8bgr4g02DomLk2 zaofJLyKJut{0?4^^6Ls8F(njMmn^NCR_clo2`Ts( zn%7yVlX4d~|BKN7G3+a6*pWV=^G;))1z{6q#`}MutXaj~UlIMfQOqdrUAZ_t6N{ZW z2Ov16*c=MBa^7rAKj%AgB^;=w?$`?&O)3@0%6k}vwuM$s`Cy!Hr!67iKJyKTBl$0U zk)f|c)<48=%l~W4YcF)z?#@I+!u{|oQwQ;WYcD8;@o?E^$~w0gLSbR*k)&Q85c`ty zqsO$YaF~aCGw~L*at&i6=-X1L%$IvP8*pAZ^S{t>*JruK3vNUQ@@fO-;?THlpuK-c z8B0tKjOPTpdN4n3SgT&HFRm#~&g}e!ZMG0JiLGh|f|_dtX_3h5}nazkWXdoA)BN*oA40y7YbWR{b5G+;`4k zu=t%Ex@z=8dBW=)$9ORCsic#D335vV_{Ed1Q2{Xfse9DrT;$vyR2 zc_Q-SZNjX+;SKezCFm^=hChNKzD%=_xBZ z5am?Xa2#-(D+~88!}vx|pj_LnfZ5r*F*e2#vv?+?Jz3uMH`T9%$Kxd zGV32a8-Uj?zv;s^AIW6*Dse~b^-qScNq2NT8AyA$mzP2P<=^x`8-Y>#+%qqx*VXiW zzVUs>_eKlKlb?kqUb-Pwkl41CSi1Dc*+@z4vTNt83peV)!uh|Y31tu8MmB$y>`z#Q?j{ASlC*(P{V866Nitx|}`|5Glp`~|8iotD|Q`RIDHW2yo z_55*eG3rno27Wde+N2AT2|w(2gL}T%R4;e z@K&)2tBtPFm}m7v3}2PTdc{-f#~-a`2=i$k=tNmpwYlzwU3@(OKLxpK`XxDjS^m_< ztrzsy(`oY*n+QwQK=i)SOiiSr8^mYQVWg?&LDeUhp%cW{V?U553qcVFyp+oKgW{V= zE<%n^0HTz58xWQ&X0?N)6~EJa=sW%hCT6{^ zq9UyE%>vKUV8JE^Im)_bQ!d|b^}gT7;V@vh{UEGf2|TcEd07Rk5;At&6^*vq$jL>r zAH%oOLgke1(o^HD?QTd>#=C={I!!Ba^v})1Hw|y4D=?U-t!JOIliOnE)g9pMD#8PO zXpdbaogP-ReMd|jihyieQ6(V~fwJZmI&ObS*J>Ug`zX;9B^#&A?_Po_D7pgfxm>_I zCA8R(3bG`%K*%#X^aq}SQsbNbpIOgrA}K>tI>#=L{Fd@IaQBZIR$4t#dv^bl4Q|9_ z!);?c+XWk5Ej8i9P$tQ@!oErC4G2(dIHBgJ@L^>#La%EwO(UVica*@FF>3+O+^vq3 z?h)KySH`V;bt(5o(3W%+CLMXqRzkCk2pMZkmWLdlxq{!9-q{iw-_3u!^A4O9_`>b~ zCW8JygPjwCiDj~7b)00!?~8UD>Xt}DY-+Uy2_P$Fi4ZH8JCVe<=Yk6V;^e&}S#}5& zHl~O^YrjhqTnl?ZPEB{@!+_i}DXQJUBep_Oc7PWfx`2oIRWV$mm2`;^)$Wm=ku+{I z*G9TM4E7%(XY^uO0E=_b6nz^pTR8IBv#rUIc{q!g+ZKsjOgT~c_xvh4O$RODj;1#h z`eRr1g2eJ)yB3j0%0Wk;vd$-F@?Yei8u1v{{5qLY>6aifAk#Gc6R=+!>eeHjbVKLM z97fU@LdtZ<>$<&tCV+w8{HYPC=lPc=03#4&wE7~4{!dD9MB!Q4B0~9U_Xn|wf;(TV zN+w|x&pkABn=n$N2#FhXcKf>gsRP}(`26nU^I0PlcPMwTto2xP2(V2etoVSCl+JPR zxl9%DUSG&TO6iS&W zSg^>7HTzX7e6}d@At@~BxI=h6|1rleT#D%2ekeh;%BMZoOO?ueCg|W*8R0W(z~t@7 zuuzZG*X;KZn0yYu5~&VC85-XKLVxGup$a=}s(0H8U_H0izhYzaU#1b_d0Q6g<9T5s zaL2>2`gEJ2Eg^QKAm)9e46Ar(-DY=awxo=&4kmJ0s8#Y?e0$qSnq7>fHDx7bYY7i6 zxmcmI`?p@%;Oop%0%~0v-cndMtUw-#7?eyxFdq;Us;lYtc&5MS9Wu*&Vm*e5*T-6- zpWebd0Zc}Qus*U43J6WN=Jyx0 zM0o1l*okiS+aLNb>`rafgFU*f>$Rlsti02b17PQ+bMjuj1yY-?MjJ9+;P*e<8~)r7 zqP(cb2ZiyKxdesc%;CKQQt>T7R$HcsOJN0>Bl2T-u7VLMH9RzgcpIU_f*tGwWRJUCq^I)^EWg&@^0~t2D%x*(&iDc#NI;wWBZo*?~3GZvy zKjyi61PBn-OWDI(CC4$Pl=Nf)wEB;n8uQo@L~D+u57_RJlDq1z^q*p}8L}=E19_XX zWk4TUlnSs`sgd6#>$G};7LHDJsmobz8H@0%28ry$l|Iw~BSBZBt95WuRo%`a-sz;p zUz#U)AEV-Ef8Tc&g1ak$j3fJ8HDfPrJ)#EMU;9Go$#zM-gpdsOyphwoq&k5+Q^3%F zP4BInNPDYZf<|#=Eq~Dm#2SAhgJe*UzWt&;l$Z%vni5BoV7xOY1fgs8Z#TzvLmGBD zqc0*)wl$Ft9n{)?pXM$5!M_YP=2c+b(bGc!b|k;U&tlpKvk&uf6uNcOdq2F>iSJK- zPRaKBrBsvS`h#m`Ky75Qo@}=LLdZe#tyE8}LyR#e4cIegPl66EHVdIj4wbAgXaaB| z1v;Br69H!&N8iH<_qCM_)4%Yos2BdteYd-ZM&d)(e_oIrC0dlYMd`r#8KAZxXt5lh z%c}oiyZfm0(vL54*Aon+mzt0|K$DK#$LoB9}XNPcqP7G#rWi(W)g?+PU?>S2xa^OGXi(&ixjy7lH1uB7<`{I`U0 zu_K9|E8$kKdQrxh1q%SVaOl29^6Gw2JEXudk^OWKA99MbpdgU`NM8D_4(TU=O4_VIFlz)nx z=FPngswvl^Ik;O!c}&&K18n%ParsYCq^l7c%u*lf<+Y!SK$9pL@zD7(5GioXSS?Lz zI0(AxB&4*5s>k*HC$>xWM~eLOnYY(8k>S{8G{t$-kM4kIP_Q2I(@j<$@5M}mPb7_` zkj0-Sh+Vcn;g=@hTus7F)54%rTHSLL3SM6SboVc}EaEkLwV@HET>|}R{lE+lh=3qQ zMJcwzUv^JbRVh}0AWJ>Qv`2!*hXnw`e6N2i5Hk#qm%l_THzbs}1YdGovLcMD9d8aS zdd?#h1!pbwmRy?tNmDyyvu$HtVq&?qjnB=fp5)Oy$jL5zNQzkrX|;`V$6PBT7qyQm zUyh9@^ujc({Hc?_uLi6ZGKk(K5DXsKY+w??qUnQ)Z6dB`g};EjjDjwANBG|1{VN_J zBER)$aAov0$^V8GDEuC_P8LtzNvm+NTndHN!Q0|BwKeJx*swK2yB!Uzc1UIA2Aa`PH4w;MIBUNka0h1Wz z9{kuGPrjimao(Q<(JB#EkMq;GfCuc_)DAyw=%{=TL7PRa9P@wv)KYlkgmjOX?G(9E z>t3;KuAyh~w(;U#{I!JR5Yhbx?%3FN?{;U|b-|d{>z0#&q3+D+dxZNaQ|iEgZx<`hmEeqE|HuFUK1oriHY6a5x7>3hEJl-twI}O1o6*f=46b_GmM_maKA?ZJ1f zziri%toUywj1MpOqWN4mt@rmZC$O!6Ngp=K({5VDYc(|^FodtzY5xcsmp_js6UH)K z(L&>Od}=7VkYyJZRBVrlPp&hVFkIEc*^R~U`g-98lUCmSr#lYvz@$X!yc>9CN(mMz zdBHksv&eJ2I(U1FDZ)V+RtiaCFJZOSt5(=Yja(dIMVM8OZyaeEX}qVt6c`#BATr-E zMez}iJ9gFF@LUjxdg%f_{f*`qkF8vG#cY45(^u-O;ntmT4!5s`#jJd_E|}H;`d2v= zeB>_ICNm%{=Fi{w=w7SC?>70=uXpctt<&u}n&wMR;VGf;i#*Gw(2$%@$qh7qZP~j%71wXucRb4S>dQss?+{4 zVQ^OgoI3Blk3z~QH90$l1E#`0ca{`Z@~_`( z@Q=+t7+b6p>hy6a|Fm8HuT|~FVe1Ynsn*%)L$FR!<0y{IQ`)(&NnM>jVZFi^b@SA& zp;lAm-OykKj^G5L>{-hZU`mggo5*CdoX2{m)s|5(0z*G3?K$ucOf z=G{q3-D-L12y29~@disb?v%<(j0J%togK8d>zfMPxLJ7rPx>w>!pgfE9{n~?GX7_} zb(u3W?A;|(u%${jmHME7(A!3!n2#Ew8r|*Vaa@GLitk7dDO)y*2nXXpfgZc&_3~wG zqI_sygZ5*_zhHOE<+M?^R>4;B$Adf8VoJN4Q0eMT8x`hf%45?EuR1@b><=`Ljecbr zO4(Y_-Y&e!((VRkll6E`&S!T;5t$7Sb>k?_Bxml1mWWWGZ{fnNVii8FHQid!C>L^G z+wfMvw7uP?zy0C*~40&r(Gorc+%)vc*YQgn1U#U|3lVS$2I+a z?MoveC?zc_B2o%cl1eBb2uhDenlX@$5h9?ZMVE?zFh;Y{-Q6|V2HPj-+CkXH`{}u#q+43Kt969Mz_CsXmlmsO<}lFeZXR( zNakU)0DZENzz}gx{q4nJ)jSf#265 zF0FOBGM%{}h-~ zQjf%I_{`;q6FghUb^Y!TSESx420!Mf*wN)Y+!Pnv=5v%^GH?D2ZQWA9|9?5#s~Z3n z<&_^1_%AAY=VKt9#T5Bde?{@gM(5F1w_kmcI<;SZH;*LD33N4#>y+^y%{dK)kH;%2Vk8p%n z0adidspljPdR%fi(Yc#DjcW-gwPz=FdC!R}EIst8t#=rE`kvHN^GzcEP1;wDlN?tV z_+vXze3+A9T|uS|oT*P$<~1#=-;Zn`KCT`qkh5f^h2T53PCp6Uq8wYi@w&rr!sM{z z9DOe~d>Wq@$;~zQsAJG>WaEPnbZS&rZ^JVEICP|nc5?dU9^Y5hgFf`}y)K*2alioO zgB+d-!fCZX`QXgWYu^HS+RMwr>&)pl9Km2otrs74VEWBdmwu!f2`;^pmA-<$CBgv% zGMEG7k6ICl!x9`4q(G1B)RbErD=VvR!5C8Hja7+(IEU(y_>~aT?)A(E_fzo&h8M-Q z`Xj*L4`g9<(y!K7dB|TOD+`J5Ov@6P>(&)rW+f)S(cqr#Arl;ml$ zG9bP;`WuZn{~J()hPVOiuk4OY|F`u+FHvc5Jr8>FUX}BMWkdt{sKSOvhv=Ow#A78= zqT!+%YsQ^CCKgAj-_(`wclALzf6Dqree9tmGYRgs9@YCf9p2#`j=D< z6j$JLQufzotL~1L?i2Rym1U*nYwx|2AH}`fju<;UkpUSdDv0I3 z(|Kd}zUu3Q9cSxfvYSJ3;CwjhQF+0<@4cXcJVThx%9WEgC|S%>Z{Zf2tVTXN*NL*v zuqZZ@dkiB=Q9c+k8g$F8Y@+CT@zQ; zM}aQOkM~W&%zUBz{ywyF-lY!r<;O39IjIp1nVP4*99%7hZKD%`fw0B=tuehDb8n}! zjXnE3<$7B-Z{fN%$d>=VlCee{5EXg4UU~i(8%Z!DS`f-3arHYxfG+}?Vmbz)& zg@ny!SU#q;O8q*i!>HHMd0-GtZ(;@u84J1Z{kg~T!h!ncqZHIBv!?>>(xK~?%OVG< z;pA-b@|@{g@Gbv|QQf!=nzL;VkO8VR*1G3WJ3=Sy^umnUrLA>UU{V)i0_7L-YriOAz~GIKJS{Fj^2gWU*Q61jzWFPY!|?J6vlmqyRRkK;;4$v_Qho# z@$f=$eyazuUTM=FYb|@0YaqLIe<<~mgZ>vP5H{J=!-K6)&2ljG8|#WqL*AGBLWwPP zT~F6pjXuAo&7HJbMzW9(AO55a6kTr6U09d#LQ67D*z{Hq?Rou|YbIXQ%AR``u<-nw zNfxGGO5vJkR@BVns+}d4+LDSQQZ%|hzR%i)OMb9c;I*8s-wM`*^!PZ8)Y9<;9%a4{ zpKL);?Tqf;6n?9c=Fhhd z;S;}bxGRcZ?oWy5zAt2P0`b+pmYH&OA*suFt!ft$$~`xU$~>jtI=hWk>xB+%$n3KO zJU#!`$5NJs@_||(KM{XIg|g#@Pp^Qgy2z3LD^5836W^Wup~=@?uJl0Tqxy$3ie^J! z5htzT%r_T;mdqI{wvCO6|FN>*87MYnp7*+*U)0hri#6ocKlws}E}Ay6dKyo8(!s1Dz;WWLfe*xpnk8AS3o0g~4 z^3n|pdk2v>e%qU9U;8rcbX_9D)w6=isJ6(p7zUeEXACl_GVj7v_r=A>Z`9Rp`GX9? zoE<0$`L7QW?Jzp9MP;ue;_Etg+pV1sjr+=;KQdo1n!M>89sQ1rc-0+V=`*nkT07Xb z*(@sCr^cP$f{ofXeeN4n7>&#f1G~!rBa%T^VcmTbLN!akWph~q+0Tt+GfGY`lUWJH zHR>sM7B4rE25^3|9|)3Uh^UNe`_KB15(DQiNi#=AMmDHagZe|~@>DbD6eSa%TZ5Wg z9;ueQkIIN9_RUMoAjEI!l^MFv+d-kz8;Rc|mKLzy;%NyT0<td1Vhrnp=o<-rfXEtDer(TMd z&ppOTNPZF{X7cinp+I>e^ClF=V<{#l2f6xM>aI{3e9{(mM_79QJ2|U7@npz7N9x4d z<+~uTyFduliwW{{Q6lN=+{>>y5Sq8`kDm}sAbjE+JoD7$-fK1&SG={FyQ-$7u$q*! zs;8rS@jqszUs5vcj%?-!(Yri&buH$YMeRoZM6!$8+xe9(+>kB7c~3{<&Kpf-!EoZ> z=Rg`}P%e>HPBNCRJni;R=Ti{fZ2*+$-bsRygD0(}`w6R3vO$T+zH(j;#)yixx-NrL zgLJ8sQ%<8kj&@m*WA;pz{}PU#i(FKEDh{>(>r8aeJe~ZzHvOF|Yi-!kXRpl_g9|ev z-oGERQkL?s%3h?R06@6#kbx_55`U6hZSSTy(0+)Ne-=6}-CXS)(g&aeYh2ws{S6iUE+@Dxs zyJFOdK1fS1GK5?ALD!4Re9~I@`iiw5frV-;(JwzFw2X+`j0^ev$wZ8d2CF{Q&(ZlCL+}tW_x#jec?m^|Y{ywAoeQkPZ@#6>Nm2-<;W8{J@Tm4u$k9s+)a>ag>guZPhL^DzeCY8)+Dy z_p;NFixX+Pd}B%HT-4gtLPbG8;aM~MWuj}HUU>TzCJInZ2ai|#Vyt3l_E#lmAvvD6 zQX8Fer2f=Wsrgb!x$fqxM%Q0|vpf)rBZ9G{_=)1M{$~%?*k0e8sOa9xWT+g-YmJVNJR~>j9_6PXu3TUc`c+j+=l(z?Ny?kVq2sHC9XWL6vOPOAdBGetK`#p|WCKWbEAw zrvGYbdtWaBbV;#XZFM`}tC_*5I8u z{54h6H_+zVmsf*!$V>AKOiSvj4lNPo<+iN*mEfgO$`*mobzQ2oruf7219mafjtT1H zNIDQZKl;(p2cSP^v34m+*H(8U;QdcWcep*LZ@ClRdC=rMZtE#yRNk};)?F||&mx8D zg|p!54VWHs2w{_EP$;HoRHoZ@5$e59;RZdc#O& zX^B&}K*1zi#II`L{w8n6j}jMh%+;wju5OC(FeBf`4U9^h3Lv#95icV3$>-ok-e^e-Mj{>gO#f#7H=$Cdi`9;J78sCi zDDZkoF%F)Y$<32wCzgDLq@|gD;y&FqC8HfLzoWzF0aAi<`jRVRSd1dQ^@9@DHZBoY z7dBxmYYV8WtE;MYc4}%W-^FWie*pgvgUgQtD0H;C24FreAf)RjxD7JXeuOSk-7sCa z^*X&m)w%Ndzhi_var9%ewyK5eOe_D^Brj~}L)e}|r~0+~_8%;mc_tza;tb3or$s?a$;+*nlXAz*XKxJv$YP$6uq ziPNoJY6*X;kn29&H8T)o8(pnCdc#ZM4&767zbD^+x=QDFGtCrInVbp+5#|pOnx^PE zyydwKGIx_;PogwqdP}&edNcoV0W}na$t}yJ8;3upe`a&qvOsOgD7dJeaX&KS{XA?U z<2}`r22IRd(Jw1u=EIZ(Sie@(kncYdPKjb*fN#pob>`^13E#c$ctsg}POt+AT1%bU zl(yo`&&!e4zbRVTTZ~VUR3a`e&!f*Y9+=-ad$dxy?ElYiXyXPvap!{_RAG&EK87(> zGKlzfdSaf2OGIXI-*esUUt<3y7L}+1QoO;2LD@e^_J0})XPyz7NSGI~ZX*1l9fmKU z9MO*Ktn#O`ibhXOa>QSR$+uVA5;npKPZr7m(VH3fOo_PlW?&yA0E^NE8JG6S7>2cH zSw;zR%a%&>@Tc-l($wI3XbpNM+$Vl=@9gfhfTTn(b0xppiLMf$`3~GaMvy6;#{F4^ zXZ!eA;VUJc)L6w;zU=d!3UDKW+KUTs3b6 z3G>Qxg!p2O@jM_ znlFy;AnklxM3;BTQFhUwuEHv2`n*jL)okiFYlm8I=J&v^<-K#{sXKKoD0(An=VG$y zRD9m{ZR~L?ybZV}p+$D5f#%6WggM5@)_~G7d=5Sh80z{>LFHdjv1yQFiwX38AI941 z_3JA5HRLZvqpD9U;unD^;W1&*-8=1WrM0!2?}US%t%b5WIXA+!?}Y>iy-PXrB7N{n zg-$up;;~b_pz)jeqG+lzpy(A|k><0?E6za~(&%9=5j`P)NzA-Q%l*Q8XDn#@Pg)c3 zdHd7=1WRhWO*UWq2(=!pR0hZ$FdqHsza7`i<3bp(g2Lkdt3`)R>Cz8!q0et^?}AN$ z!6ZoYU_nKK(sNjf41waiLks3Qp>dvNR@cVZl7jFwi4fwC1G$u+Xi6TAOtx1JKc=@9 zBeJ|3>B6A4kdlyP^i1J-aHPuEl;UgGCkFzH-R&_j5jOd6BU^?H%t(MzBdSZy)Vg5p z)n$$&%D#ClE!U{K<|_p!t4hnAQjI!)&|cPh$SCjPs{L(B+H1uj z(bo&F-jX)6bXW&&T9QtYtWTb0aQ13S42D`uM=ljce!3rVJMy;Ul}QlcdTY+`QG!+`PQ*$nN)Bu}(^g%FV{Io;j=Ualc)|+;!5*hYYhiV3M#U zt_lxmPbz+&V@7om;kXPoCJJ!c8ahQ#KN5gU?cPBySb31!#?|6|&h)A3|kKbOMYa`z=5dkr+yxC{sA9Vpg5CYR4 zHBhx6L28O7#VC-y>#M<{cSQr z@*B?8gnqRRORRpiF4b+ool)tRFny7IXFjfrxWu)bZ4uxzE?s=kpO=|u#N^KGm-*T~F2X`;IEwuPz*4$YR;6nIBnT574@!DPWo_QA zWkXLMm&P*l@OQPO?kqeiDyqLdv$b3~5%PX z(sT%0Z&9K|)&dU)4ast^a>>_-zHFrd>=CP{4OTIP4#C3h16q{4F-(3cG zf#Hx|JT+YWY)l+9yT1ntG5eH`VWYpqrJwy~3is_wXsJ9yTd_K}`5A)F{AuW|u#AU$ zFTK`u93(c6P0Q}%d}o-NVd@)iuyIHTZ?$`-H=kX|Zgo$$o=l3kO|1RIAUe-OC$LB8 zrLLF5!*;WWCg;C5SuJLIrvaM59|kThuU>qdr|ae09dOGzOWzIibK#Xz-3>XrvXEl& z3TlD*f@NQnYQ|V;EhM`V8B9$ET;n}@&_B5oTdNcoYHM9u9CcjesUrQ0#{{a7jTJ15HiNU+>n4cOEvJ)m^Ro6xbNnF z9Txb$$<2@L`u4L@j^l=iUTpe7CkGbC>K}D(!Y&|`NGMm%PCz5p>?*=2#IL{Fy@vN6 zDY&71`z=8bp27?ES$s(bzt8i8NUsi6b=vB7$BHHZCxh-UHLDCb4Zdawrip`(XPoaK z!FDbk93UekytlrRt9s!>v3|>LrhzXirl#v&tfcR>3?+K_YvIp*$9@M?r)vyqvNIgN zLw4RhD!ztToy}_S=tCr%mh_yt9#qvKXUu;j;b8$M?{%!PT$=PPamwbIF1_bwb9jyE zG~8Smc%sRvZmkCd6S6}mA(7|v0UV>ar~=uo9*~L}PeI;()M73bM(vFs2YNM6da(zj zc90x!qyjRU*bX$t?YN~FWhm2^setJ7W z0UU!*FoZJ#vmu=6Ln<^z2TLB3-<_AGVCn7c4ZUIUU6WkhXfmB)&gblSsY#Z7qtE{H zt>%`r;0t#R`;WV}eQK4~NVq^^&){u*w--K9>VG};VqZMZyhM=A?pjBYb#bO1%@ciy=qVjgMgWcf&g00Lbt%fr}tl?){b_+oWSjKDPgDzY(S|UtDG%S@WQ?PmdM7 z8oRqas9Oc8K=%)#A9^g1vmBm61`K;Z9O#$W(eSXGI6rMKhvDi48&b#;-`B-y7-J)- zEEfs$_Tnq)+a5Jh6JfiOw?J(dRmK3C7%wh^TYKds4ZLYFfZ&o!a!o&)?q3>96rt2@ z&+>TtX7c>>?UDz2m1FSbD?M<&qY9)*zd*dE!on=7M^w$na%@r;^|B(3n$qsYN8^bn zz5;Y|PcQsQB9V{+dABfg6z-%akQlrTp&=_EW?rtBqYOxzX2P9>{iuy=ez@V||iMRd_cLVF) zC}?MrdN+Cv|MgTbNPi0SZBVIe3MmAQk!Oe1clEpGdW@f85@e z9H}kysl3Z)g(|9oFVDi$PdPD5=07EUmC9xw|17r}wD%bNctBbIO1J8e3pO=Tbck_5 zk5)IV5!LOWfNS2&U(iUeKeRP~?6~S~>1-6F`vnUOBR4+zs-kB^4JTasQ-2^BcK2zQ8Wd z%2oe|E=l1S(jimP99!%Ke>hV*FpkisFXc}({~x|&=0ig6tiFY?>G{{w_`urRkyeZR ziw$tEtmUAOX<*-~DAUA>HJvG$hXi$+_v7{gqd;xN*jv7hps-dcW4gfytLm>frUoTg z=<`&3+V5D|L2PzE->H)epHeK4h(>`SX7*!a@CD0^A*3}q7yuIK~z8v1VqVS;|Wj0#xY7Eonq?X9>Hl{JLLcNeh4 zGAiqZTym%380+|nYy`?=kG0@>-^~ldv3(AFVyJcNli>$?do9*a{#i3>_hKnB8ih)o z*sneMBIyxy*ZCJ-a`Rkc1Y8=kri-f%oyOIo>1wvdnG%>Uegz%h%z07!AA5bnC-;e8 zX>Lu{_zKvI4ZBF59lVYAq6C}w@&sU#EOxlRKJo9(QvgpTty>DzFWxoWvOz;W-@p6tbOm? z2T9o1V%Za=k+Ci`TTYbe?`gYn4D`6*Ny#hZP=z$ovB(VK*C)5FoJHb${A56N!l4Ni zZ~CZ`PR&p{03A+g<+~IEg(RTqIQ@nvzt48$O>a&z)oxR#qmyb@7DVDYy-HF6la1vy zsc|TSx0FYM9wle#6o$L!uT5GW?*yh{r^iuW{})l5SA?Q#sWJIUJh z#46!nHXua#6cQ1(Zjtjga|`FshdVe<8=EpO161<@R&-_c`&o@CB14fwD3aSIejR6u zSHWn2am`<3Xtvzf2TcP8PSC&i8&Rf~HIA*lnU-;yp-}{Xs8BP--SWX5*YdX@q1q!0 z@`AhdKLR6Iko1#DiHVnEzNpmNOBS(yCP5(s55Q6OlP{a#EQ|DpMj#M20D@@xTe=MTdo=iVJMiJA^1CLJ};BMIbU|yn?_YT)%-fk56AIC-E>)Xqp&i|WpSz28fKLZ zP{?HaWRLm*6**gOpt$vNfK(4NN0;Pq4#v+y76O^E7fUjqI*2f15PAg+B{93>FF-E%srm1N@ z_6zP4kKWfz2~FI=cMm|UYSSfsEEoR@fq)t%|3yig{Q7M^q^=!^iae+7~$MPMMy@64Bm0&=`xkNz@RxX>o&5LIS{gP-sHf_q&snoPBf;yAvZ2@Gy0eRmO_RI}jj zY53qvaU|K;6^HQy%AI5fHQ94+2OPAewRGWS$Gg-T*xUvkmScMt@j)2_(o<&I#n_?; zNV@U8_4hod!A*|6*8&dJOQOl%LXAZaaJ5kBp#=uJeC&AG@BXGN(0xEe@?{>X1$x5W#u!U#CpE%YP6(VFX@bNp>M+VTp3pC+^J zQ2dRn3HJ!jr*nAgE`d=2P5$|-T(ou5eq5ymUf~g@d_Mh9uG8GfcP-aA%sTYmf~7_1 z@(wpwB$vCrFm9J^mv*fKn{BI$Hz|xg;PY@*mZxNp@v8;Zzn^U#OV{L>EeG9;;$r^! z`{m80uB4K@q@U8&?hY=uP1{Pt-U>^0`MT<%#|*v2~xVl0DJYTkG1?XtPMksEODCp zlW9+B%FhZ!*`o)4;p{6l^_3a~M6czfK8shhPWh`hvIS3wZ&a_leH}c8DvHTc& zQAxS>Cz((ElO41+90SM41TgJUEPt^$X038EV3#1;f?DR|)xN$H{jyWo*{2p6HYU&c z)V&U^?oW0aA%V5tqe{cP$;mqhIniOsf?hSBkZgASWk0DQa)afr#&$=?F8Hh1gy@@3 zS==!N_GLfCnSc6G5%8OyZciWAGCeEkJ$YR$rWXz>SP04wJ-02bG{0AwB3=2@ZwgC8 z>6R)t8C5BBGC*_W)12qKV<054K56aBQ@v0S!|fX9KamVy7vO>T9ecxiyhY}?!jQ@l znUqgX8%a1lAsiSQDVgcRTN;P8-{(aug)i5Qsov+wXEvT%l}K`1G4mbyHyrd4XQ z{MJKf0Re%K`PbgwlJ5{cH6~vEPELZ-X=0qC7uYGmMu0!$x)57hA0OTU?DLClODgfg zKE$YyEt}{|u_}M~%zqRYGCIIG_r=j60Qmjq;TORqz8b6ly$gUg!uNd_>yK()*t=ZxwcJ7@YzT8pX67q3vhd$yjV2*|HkX zBe{1&-SQ&PbdjPmo!R?$l&$?H{OpvmQ;8*EZ%;c%jpgd9%W>5ic0R6Sw!;4B$_@_! zAtfLdfv+|^92KDMQKxz2O*A^vq+!?zAw4rJ)15#RY)9$tuU?*NyrsUEblI0kuaC9y z;a+lv#1x$LQW;b^7{W(GLNl_u5D>F>Ld5Bw{tp4TeVOWX>t+J^MSk}2`5!grf0dFu>h-s- z2%eu@>D||29g4>$sBXL{f`Sa__`Jjaj3a7YV%3f;5XQY2Wh5-uN#P5cD~l7 zQkosww8NbEKbC4gf*e+F>coLk%7!ss+gZ~TkQFb~0F&IY4$S+@5XN^TSs=9|`H-V% zY5MwJd%BJptfHEJ5j(gYmu`$xUz0sf2SYP0IL}vQ5HoO|Ew7EY48mH-@lQe)2|eDi{FHDz)SwwnzIpsod?sS@>Av9=;aY`fo89Z3r14VeWHRM}sT^63hiK3P=k)7>AKoowh$_9T zWH@#6{xwZ!wJ2aW$NT46K5hF*%C6^=H}>Ek^iKjne0`y1iPg8m=vXoxVpKGP{!I>u z13^e`ASX$P7XLR+JQb)%@;nvj-uoNdXWS@{LQYj6F~!e2)=~bgtmScVeAGE@Qh8{P zd)-U*2UkPm$(ye+_Vq<4Ax-dfT=lVO6`p{sk_9l>EP3ffM52_bIo@p|H|Ht%y2C`S z>BC3YOY@LNlCZfGs=+7G(FD*FjI0r8rC#4qP9bn#+oeE3Ear?Amvs4t})Q#m* z&9R;F8)r!Tt5<8CF@9srd`q7>NUO^veI%8xBRtXKdr}Y1&Cv=*_WA7`U9w&dUEMHX zwSw%fX_hNC0QK-p+D8-Ph|wl;RC< zH3RVGydp7(eH6OqL;A+HJhxr+bF?rb}PSS_#lh5N|Bvw@I&S`}dW!(0>1iUdj_zFksO6ltNS=hktx34_E-n2X+U;I62|8?*k zUcdhhHyscqJbLLk?x8l3d9zVwQN8txBhL#l4uc3yJnOXI%|q`6JYu|Uk@q$@TZm2MaOSOUlx4_i~2SojZF_J-_apT%NN%c zn8<{FLZ$Ak-xoG&P-kMm{hEI4!3D{rzTRah{Rx?P?47(1wdaX(&tRC7{IlM#Zhs5> z&}ve^q%2TLh|pS#YvlF0(87Hw6=(B+5>{Izi?h4Y3Z|h_NB?D?$RDp-eyO^H z?&|r$q;-k)6ETvG4~PjkOzGJnIi_ztJwor_jx|qv1GsL)eeuKJ0XX}`jT7}41IP>S zX*s01@5m(PG)Bx(5EQVHqt(*80)jP}TF^ka7dI(q;p=<>-E$M(YK*xYq1#@>J)p3y z9{Q(*4`{}JZxx*y4R9RymLSTnBjwHpKa1-`RsJ&EuY@ih%9)jnkVuK2521fQbSOx8 z0XhjBv+|Uw-fy-E=+l*^KOjptC`eeLuDp=o≠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 literal 0 HcmV?d00001 diff --git a/frontend/src/ApiRequests.tsx b/frontend/src/ApiRequests.tsx new file mode 100644 index 0000000..e8b19c3 --- /dev/null +++ b/frontend/src/ApiRequests.tsx @@ -0,0 +1,44 @@ +async function apiRequest(endpoint: string, how: string, params?: any) { + debugger; + const body = how === "GET" ? undefined : JSON.stringify(params); + const response = await fetch(endpoint, { method: how, body: body }); + const data = await response.json(); + return data; +} + +export async function getApplicants() { + return await apiRequest("/v1/applications", "GET"); +} + +export async function getUsers() { + return await apiRequest("/v1/users", "GET"); +} + +// Supposizioni + +export async function getInterviewsByDates(startDate: string, endDate: string) { + return await apiRequest( + `/v1/interviews?startDate=${startDate}&endDate=${endDate}}`, + "GET" + ); +} + +export async function getInterviewsByDate(date: string) { + return await apiRequest(`/v1/interviews?date=${date}`, "GET"); +} + +/* +const GetApplicants = ({ name }) => { + const [count, setCount] = React.useState(0); + + return ( +

+ ); +}; + +export default GetApplicants; +*/ diff --git a/frontend/src/App.css b/frontend/src/App.css index cee9b92..7c12824 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -23,6 +23,10 @@ font-size: calc(10px + 2vmin); color: black; } +.active { + background: green !important; + color: white !important; +} .App-link { color: #61dafb; @@ -48,17 +52,17 @@ background-color: #f9f9f9; } .table { - --bs-table-bg: rgba(55, 81, 113, 0.8) !important; + --bs-table-bg: rgba(55, 81, 113, 0.8) !important ; --bs-table-accent-bg: transparent; --bs-table-striped-color: white !important; - --bs-table-striped-bg: rgba(55, 81, 113, 0.8) !important; + --bs-table-striped-bg: rgba(55, 81, 113, 0.8) !important ; --bs-table-active-color: white !important; --bs-table-active-bg: rgba(0, 0, 0, 0.1); - --bs-table-hover-color: white !important; + --bs-table-hover-color: white !important ; --bs-table-hover-bg: rgba(0, 0, 0, 0.075); width: 100%; margin-bottom: 1rem; - color: white !important; + color: white important!; vertical-align: top; border-color: #dee2e6; } diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index c02f654..709f43b 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -10,6 +10,10 @@ import { useAuth0 } from "@auth0/auth0-react"; import AvaiabilitiesTable from "./AvaiabilitiesTable"; function App() { + function parseJwt(token) { + return JSON.parse(Buffer.from(token.split(".")[1], "base64").toString()); + } + const { isLoading, isAuthenticated, @@ -20,22 +24,34 @@ function App() { getAccessTokenSilently, } = useAuth0(); + const [accessToken, setAccessToken] = useState(""); + useEffect(() => { if (isAuthenticated) { getAccessTokenSilently({ audience: import.meta.env.VITE_AUTH0_AUDIENCE, grant_type: "client_credentials", }).then((token) => { - console.log(`Token: ${token}`); + setAccessToken(parseJwt(token)); }); } }, [isAuthenticated]); + if (accessToken === "") { + return
Loading...
; + } + return ( } + element={ + + } /> } /> @@ -51,7 +67,7 @@ function AfterLogin(props) { {props.isAuthenticated && !props.user.email.endsWith("@hknpolito.org") && } {props.isAuthenticated && props.user.email.endsWith("@hknpolito.org") && ( - + )} ); diff --git a/frontend/src/AvaiabilitiesCell.jsx b/frontend/src/AvaiabilitiesCell.jsx index 1d46dca..d48b762 100644 --- a/frontend/src/AvaiabilitiesCell.jsx +++ b/frontend/src/AvaiabilitiesCell.jsx @@ -1,12 +1,19 @@ import React, { useState, useEffect } from "react"; function AvaiabilitiesCell(props) { - const [className, setClassName] = useState(""); + const [className, setClassName] = useState("name"); return ( - + ); } export default AvaiabilitiesCell; diff --git a/frontend/src/AvaiabilitiesTable.jsx b/frontend/src/AvaiabilitiesTable.tsx similarity index 74% rename from frontend/src/AvaiabilitiesTable.jsx rename to frontend/src/AvaiabilitiesTable.tsx index 319f60e..712b46b 100644 --- a/frontend/src/AvaiabilitiesTable.jsx +++ b/frontend/src/AvaiabilitiesTable.tsx @@ -4,14 +4,48 @@ import Row from "react-bootstrap/Row"; import Col from "react-bootstrap/Col"; import AvaiabilitiesCell from "./AvaiabilitiesCell"; import moment from "moment"; - +import { useState, useEffect } from "react"; import { createUserSchema } from "@hkrecruitment/shared"; +import React from "react"; +import { getApplicants, getUsers, getInterviewsByDates } from "./ApiRequests"; function AvaiabilitiesTable(props) { - let start = "2014-09-08T08:02:17"; - let duration = 45; - let end = "20.00"; + //const start = "2014-09-08T08:00:00"; + const step = 45; + //const end = "20.00"; + + /* Abbiamo queste entità + * - application (id, applicantId, submission, state, lastModified, notes, cv, itaLevel) + * - bscapplication (bscStudyPath, bscAcademicYear, bscGradesAvg, cfu, grades) + * - mscapplication (mscStudyPath, mscGradesAvg, mscAcademicYear) + * - phdapplication (phdDescription) + * - user (oauthId, firstName, lastName, sex, email, phone_no, telegramId, role) + */ + + // All'apertura di questa pagina, viene impostata la data ad oggi + + const [startDate, setStartDate] = useState(new Date()); + + // Suppongo che interviews restituisca un array di colloqui fissati in un certo periodo, ciascuno con data e ora + const [interviews, setInterviews] = useState(null); + useEffect(() => { + if (startDate !== null) { + setInterviews( + getInterviewsByDates(startDate.getDate(), startDate.getDate() + 7) + ); + } + }, [startDate]); + + // Crea una matrice 16x7 a partire dalle interviste + let fill = [[], []]; + if (interviews !== null) { + for (let interview in interviews.sort()) { + // TO-DO + } + } + + /* let fill = [ [ "persona1, persona2,...", @@ -142,11 +176,14 @@ function AvaiabilitiesTable(props) { "persona1, persona2,...", ], ]; - + let timestamp = moment(start); for (let row of fill) { - row.unshift(moment(start).format("hh:mm")); + row.unshift(timestamp.format("HH:mm")); + timestamp = timestamp.add(step, "m"); } + */ + return ( @@ -168,9 +205,7 @@ function AvaiabilitiesTable(props) { {fill.map((names, index) => ( {names.map((name, index) => ( - - - + ))} ))} diff --git a/frontend/src/LoginButton.jsx b/frontend/src/LoginButton.tsx similarity index 100% rename from frontend/src/LoginButton.jsx rename to frontend/src/LoginButton.tsx diff --git a/frontend/src/index.css b/frontend/src/index.css index 4a1df4d..7183f7b 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -11,3 +11,7 @@ code { font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace; } + +.active { + color: green; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5227d75..c25b86d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,9 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + importers: .: {} @@ -17,7 +21,7 @@ importers: version: link:../shared '@nestjs/common': specifier: ^9.0.0 - version: 9.2.1(reflect-metadata@0.1.13)(rxjs@7.5.7) + version: 9.2.1(class-transformer@0.5.1)(reflect-metadata@0.1.13)(rxjs@7.5.7) '@nestjs/config': specifier: ^2.2.0 version: 2.2.0(@nestjs/common@9.2.1)(reflect-metadata@0.1.13)(rxjs@7.5.7) @@ -32,7 +36,7 @@ importers: version: 9.2.1(@nestjs/common@9.2.1)(@nestjs/core@9.2.1) '@nestjs/swagger': specifier: ^6.1.3 - version: 6.1.3(@fastify/static@6.6.0)(@nestjs/common@9.2.1)(@nestjs/core@9.2.1)(reflect-metadata@0.1.13) + version: 6.1.3(@fastify/static@6.6.0)(@nestjs/common@9.2.1)(@nestjs/core@9.2.1)(class-transformer@0.5.1)(reflect-metadata@0.1.13) '@nestjs/typeorm': specifier: ^9.0.1 version: 9.0.1(@nestjs/common@9.2.1)(@nestjs/core@9.2.1)(reflect-metadata@0.1.13)(rxjs@7.5.7)(typeorm@0.3.11) @@ -42,9 +46,18 @@ importers: '@types/passport-jwt': specifier: ^3.0.7 version: 3.0.7 + class-transformer: + specifier: ^0.5.1 + version: 0.5.1 dotenv: specifier: ^16.0.3 version: 16.0.3 + google-auth-library: + specifier: ^8.7.0 + version: 8.7.0 + googleapis: + specifier: ^118.0.0 + version: 118.0.0 joi: specifier: ^17.7.0 version: 17.7.0 @@ -87,7 +100,7 @@ importers: version: 9.1.5(@swc/core@1.3.56) '@nestjs/schematics': specifier: ^9.0.0 - version: 9.0.3(chokidar@3.5.3)(typescript@4.8.4) + version: 9.0.3(typescript@4.5.2) '@nestjs/testing': specifier: ^9.0.0 version: 9.2.1(@nestjs/common@9.2.1)(@nestjs/core@9.2.1)(@nestjs/platform-express@9.2.1) @@ -103,6 +116,9 @@ importers: '@types/jest': specifier: 28.1.8 version: 28.1.8 + '@types/multer': + specifier: ^1.4.7 + version: 1.4.7 '@types/node': specifier: ^16.11.10 version: 16.18.4 @@ -230,6 +246,9 @@ importers: '@casl/ability': specifier: ^6.3.3 version: 6.3.3 + '@joi/date': + specifier: ^2.1.0 + version: 2.1.0 joi: specifier: ^17.7.0 version: 17.7.0 @@ -1112,6 +1131,7 @@ packages: /@gar/promisify@1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + requiresBuild: true optional: true /@golevelup/ts-jest@0.3.6: @@ -1396,6 +1416,12 @@ packages: chalk: 4.1.2 dev: true + /@joi/date@2.1.0: + resolution: {integrity: sha512-2zN5m0LgxZp/cynHGbzEImVmFIa+n+IOb/Nlw5LX/PLJneeCwG1NbiGw7MvPjsAKUGQK8z31Nn6V6lEN+4fZhg==} + dependencies: + moment: 2.29.4 + dev: false + /@jridgewell/gen-mapping@0.1.1: resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} engines: {node: '>=6.0.0'} @@ -1487,7 +1513,7 @@ packages: - webpack-cli dev: true - /@nestjs/common@9.2.1(reflect-metadata@0.1.13)(rxjs@7.5.7): + /@nestjs/common@9.2.1(class-transformer@0.5.1)(reflect-metadata@0.1.13)(rxjs@7.5.7): resolution: {integrity: sha512-nZuo3oDsSSlC5mti/M2aCWTEIfHPGDXmBwWgPeCpRbrNz3IWd109rkajll+yxgidVjznAdBS9y00JkAVJblNYw==} peerDependencies: cache-manager: <=5 @@ -1503,6 +1529,7 @@ packages: class-validator: optional: true dependencies: + class-transformer: 0.5.1 iterare: 1.2.1 reflect-metadata: 0.1.13 rxjs: 7.5.7 @@ -1516,7 +1543,7 @@ packages: reflect-metadata: ^0.1.13 rxjs: ^6.0.0 || ^7.2.0 dependencies: - '@nestjs/common': 9.2.1(reflect-metadata@0.1.13)(rxjs@7.5.7) + '@nestjs/common': 9.2.1(class-transformer@0.5.1)(reflect-metadata@0.1.13)(rxjs@7.5.7) dotenv: 16.0.1 dotenv-expand: 8.0.3 lodash: 4.17.21 @@ -1543,7 +1570,7 @@ packages: '@nestjs/websockets': optional: true dependencies: - '@nestjs/common': 9.2.1(reflect-metadata@0.1.13)(rxjs@7.5.7) + '@nestjs/common': 9.2.1(class-transformer@0.5.1)(reflect-metadata@0.1.13)(rxjs@7.5.7) '@nestjs/platform-express': 9.2.1(@nestjs/common@9.2.1)(@nestjs/core@9.2.1) '@nuxtjs/opencollective': 0.3.2 fast-safe-stringify: 2.1.1 @@ -1557,7 +1584,7 @@ packages: transitivePeerDependencies: - encoding - /@nestjs/mapped-types@1.2.0(@nestjs/common@9.2.1)(reflect-metadata@0.1.13): + /@nestjs/mapped-types@1.2.0(@nestjs/common@9.2.1)(class-transformer@0.5.1)(reflect-metadata@0.1.13): resolution: {integrity: sha512-NTFwPZkQWsArQH8QSyFWGZvJ08gR+R4TofglqZoihn/vU+ktHEJjMqsIsADwb7XD97DhiD+TVv5ac+jG33BHrg==} peerDependencies: '@nestjs/common': ^7.0.8 || ^8.0.0 || ^9.0.0 @@ -1570,7 +1597,8 @@ packages: class-validator: optional: true dependencies: - '@nestjs/common': 9.2.1(reflect-metadata@0.1.13)(rxjs@7.5.7) + '@nestjs/common': 9.2.1(class-transformer@0.5.1)(reflect-metadata@0.1.13)(rxjs@7.5.7) + class-transformer: 0.5.1 reflect-metadata: 0.1.13 dev: false @@ -1580,7 +1608,7 @@ packages: '@nestjs/common': ^8.0.0 || ^9.0.0 passport: ^0.4.0 || ^0.5.0 || ^0.6.0 dependencies: - '@nestjs/common': 9.2.1(reflect-metadata@0.1.13)(rxjs@7.5.7) + '@nestjs/common': 9.2.1(class-transformer@0.5.1)(reflect-metadata@0.1.13)(rxjs@7.5.7) passport: 0.6.0 dev: false @@ -1590,7 +1618,7 @@ packages: '@nestjs/common': ^9.0.0 '@nestjs/core': ^9.0.0 dependencies: - '@nestjs/common': 9.2.1(reflect-metadata@0.1.13)(rxjs@7.5.7) + '@nestjs/common': 9.2.1(class-transformer@0.5.1)(reflect-metadata@0.1.13)(rxjs@7.5.7) '@nestjs/core': 9.2.1(@nestjs/common@9.2.1)(@nestjs/platform-express@9.2.1)(reflect-metadata@0.1.13)(rxjs@7.5.7) body-parser: 1.20.1 cors: 2.8.5 @@ -1615,7 +1643,22 @@ packages: - chokidar dev: true - /@nestjs/swagger@6.1.3(@fastify/static@6.6.0)(@nestjs/common@9.2.1)(@nestjs/core@9.2.1)(reflect-metadata@0.1.13): + /@nestjs/schematics@9.0.3(typescript@4.5.2): + resolution: {integrity: sha512-kZrU/lrpVd2cnK8I3ibDb3Wi1ppl3wX3U3lVWoL+DzRRoezWKkh8upEL4q0koKmuXnsmLiu3UPxFeMOrJV7TSA==} + peerDependencies: + typescript: ^4.3.5 + dependencies: + '@angular-devkit/core': 14.2.1(chokidar@3.5.3) + '@angular-devkit/schematics': 14.2.1(chokidar@3.5.3) + fs-extra: 10.1.0 + jsonc-parser: 3.2.0 + pluralize: 8.0.0 + typescript: 4.5.2 + transitivePeerDependencies: + - chokidar + dev: true + + /@nestjs/swagger@6.1.3(@fastify/static@6.6.0)(@nestjs/common@9.2.1)(@nestjs/core@9.2.1)(class-transformer@0.5.1)(reflect-metadata@0.1.13): resolution: {integrity: sha512-H9C/yRgLFb5QrAt6iGrYmIX9X7Q0zXkgZaTNUATljUBra+RCWrEUbLHBcGjTAOtcIyGV/vmyCLv68YSVcZoE0Q==} peerDependencies: '@fastify/static': ^6.0.0 @@ -1627,9 +1670,9 @@ packages: optional: true dependencies: '@fastify/static': 6.6.0 - '@nestjs/common': 9.2.1(reflect-metadata@0.1.13)(rxjs@7.5.7) + '@nestjs/common': 9.2.1(class-transformer@0.5.1)(reflect-metadata@0.1.13)(rxjs@7.5.7) '@nestjs/core': 9.2.1(@nestjs/common@9.2.1)(@nestjs/platform-express@9.2.1)(reflect-metadata@0.1.13)(rxjs@7.5.7) - '@nestjs/mapped-types': 1.2.0(@nestjs/common@9.2.1)(reflect-metadata@0.1.13) + '@nestjs/mapped-types': 1.2.0(@nestjs/common@9.2.1)(class-transformer@0.5.1)(reflect-metadata@0.1.13) js-yaml: 4.1.0 lodash: 4.17.21 path-to-regexp: 3.2.0 @@ -1653,7 +1696,7 @@ packages: '@nestjs/platform-express': optional: true dependencies: - '@nestjs/common': 9.2.1(reflect-metadata@0.1.13)(rxjs@7.5.7) + '@nestjs/common': 9.2.1(class-transformer@0.5.1)(reflect-metadata@0.1.13)(rxjs@7.5.7) '@nestjs/core': 9.2.1(@nestjs/common@9.2.1)(@nestjs/platform-express@9.2.1)(reflect-metadata@0.1.13)(rxjs@7.5.7) '@nestjs/platform-express': 9.2.1(@nestjs/common@9.2.1)(@nestjs/core@9.2.1) tslib: 2.4.1 @@ -1668,7 +1711,7 @@ packages: rxjs: ^7.2.0 typeorm: ^0.3.0 dependencies: - '@nestjs/common': 9.2.1(reflect-metadata@0.1.13)(rxjs@7.5.7) + '@nestjs/common': 9.2.1(class-transformer@0.5.1)(reflect-metadata@0.1.13)(rxjs@7.5.7) '@nestjs/core': 9.2.1(@nestjs/common@9.2.1)(@nestjs/platform-express@9.2.1)(reflect-metadata@0.1.13)(rxjs@7.5.7) reflect-metadata: 0.1.13 rxjs: 7.5.7 @@ -1699,6 +1742,7 @@ packages: /@npmcli/fs@1.1.1: resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} + requiresBuild: true dependencies: '@gar/promisify': 1.1.3 semver: 7.3.8 @@ -1708,6 +1752,7 @@ packages: resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} engines: {node: '>=10'} deprecated: This functionality has been moved to @npmcli/fs + requiresBuild: true dependencies: mkdirp: 1.0.4 rimraf: 3.0.2 @@ -1933,6 +1978,7 @@ packages: /@tootallnate/once@1.1.2: resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} engines: {node: '>= 6'} + requiresBuild: true optional: true /@tsconfig/node10@1.0.9: @@ -2066,6 +2112,12 @@ packages: /@types/mime@3.0.1: resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} + /@types/multer@1.4.7: + resolution: {integrity: sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==} + dependencies: + '@types/express': 4.17.14 + dev: true + /@types/node@16.18.4: resolution: {integrity: sha512-9qGjJ5GyShZjUfx2ArBIGM+xExdfLvvaCyQR0t6yRXKPcWCVYF/WemtX/uIU3r7FYECXRXkIiw2Vnhn6y8d+pw==} @@ -2495,6 +2547,7 @@ packages: /agentkeepalive@4.3.0: resolution: {integrity: sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==} engines: {node: '>= 8.0.0'} + requiresBuild: true dependencies: debug: 4.3.4 depd: 2.0.0 @@ -2506,6 +2559,7 @@ packages: /aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} + requiresBuild: true dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 @@ -2613,6 +2667,7 @@ packages: /are-we-there-yet@3.0.1: resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + requiresBuild: true dependencies: delegates: 1.0.0 readable-stream: 3.6.0 @@ -2638,6 +2693,11 @@ packages: engines: {node: '>=8'} dev: true + /arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + dev: false + /asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} dev: true @@ -2728,6 +2788,10 @@ packages: /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + /bignumber.js@9.1.1: + resolution: {integrity: sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==} + dev: false + /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -2870,6 +2934,7 @@ packages: /cacache@15.3.0: resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} engines: {node: '>= 10'} + requiresBuild: true dependencies: '@npmcli/fs': 1.1.1 '@npmcli/move-file': 1.1.2 @@ -2993,6 +3058,9 @@ packages: resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} dev: true + /class-transformer@0.5.1: + resolution: {integrity: sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==} + /classnames@2.3.2: resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} dev: false @@ -3007,6 +3075,7 @@ packages: /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} + requiresBuild: true optional: true /cli-cursor@3.1.0: @@ -3464,10 +3533,12 @@ packages: /env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} + requiresBuild: true optional: true /err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + requiresBuild: true optional: true /error-ex@1.3.2: @@ -3786,6 +3857,10 @@ packages: transitivePeerDependencies: - supports-color + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false + /external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} @@ -4015,6 +4090,7 @@ packages: /gauge@4.0.4: resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + requiresBuild: true dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -4026,6 +4102,30 @@ packages: wide-align: 1.1.5 optional: true + /gaxios@5.1.0: + resolution: {integrity: sha512-aezGIjb+/VfsJtIcHGcBSerNEDdfdHeMros+RbYbGpmonKWQCOVOes0LVZhn1lDtIgq55qq0HaxymIoae3Fl/A==} + engines: {node: '>=12'} + dependencies: + extend: 3.0.2 + https-proxy-agent: 5.0.1 + is-stream: 2.0.1 + node-fetch: 2.6.7 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /gcp-metadata@5.2.0: + resolution: {integrity: sha512-aFhhvvNycky2QyhG+dcfEdHBF0FRbYcf39s6WNHUDysKSrbJ5vuFbjydxBcmewtXeV248GP8dWT3ByPNxsyHCw==} + engines: {node: '>=12'} + dependencies: + gaxios: 5.1.0 + json-bigint: 1.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -4121,6 +4221,58 @@ packages: slash: 3.0.0 dev: true + /google-auth-library@8.7.0: + resolution: {integrity: sha512-1M0NG5VDIvJZEnstHbRdckLZESoJwguinwN8Dhae0j2ZKIQFIV63zxm6Fo6nM4xkgqUr2bbMtV5Dgo+Hy6oo0Q==} + engines: {node: '>=12'} + dependencies: + arrify: 2.0.1 + base64-js: 1.5.1 + ecdsa-sig-formatter: 1.0.11 + fast-text-encoding: 1.0.6 + gaxios: 5.1.0 + gcp-metadata: 5.2.0 + gtoken: 6.1.2 + jws: 4.0.0 + lru-cache: 6.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /google-p12-pem@4.0.1: + resolution: {integrity: sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + node-forge: 1.3.1 + dev: false + + /googleapis-common@6.0.4: + resolution: {integrity: sha512-m4ErxGE8unR1z0VajT6AYk3s6a9gIMM6EkDZfkPnES8joeOlEtFEJeF8IyZkb0tjPXkktUfYrE4b3Li1DNyOwA==} + engines: {node: '>=12.0.0'} + dependencies: + extend: 3.0.2 + gaxios: 5.1.0 + google-auth-library: 8.7.0 + qs: 6.11.0 + url-template: 2.0.8 + uuid: 9.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /googleapis@118.0.0: + resolution: {integrity: sha512-Ny6zJOGn5P/YDT6GQbJU6K0lSzEu4Yuxnsn45ZgBIeSQ1RM0FolEjUToLXquZd89DU9wUfqA5XYHPEctk1TFWg==} + engines: {node: '>=12.0.0'} + dependencies: + google-auth-library: 8.7.0 + googleapis-common: 6.0.4 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + /graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -4128,6 +4280,18 @@ packages: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true + /gtoken@6.1.2: + resolution: {integrity: sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==} + engines: {node: '>=12.0.0'} + dependencies: + gaxios: 5.1.0 + google-p12-pem: 4.0.1 + jws: 4.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -4184,6 +4348,7 @@ packages: /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + requiresBuild: true optional: true /http-errors@2.0.0: @@ -4199,6 +4364,7 @@ packages: /http-proxy-agent@4.0.1: resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} engines: {node: '>= 6'} + requiresBuild: true dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 @@ -4228,6 +4394,7 @@ packages: /humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + requiresBuild: true dependencies: ms: 2.1.3 optional: true @@ -4241,6 +4408,7 @@ packages: /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + requiresBuild: true dependencies: safer-buffer: 2.1.2 optional: true @@ -4281,10 +4449,12 @@ packages: /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} + requiresBuild: true optional: true /infer-owner@1.0.4: resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + requiresBuild: true optional: true /inflight@1.0.6: @@ -4349,6 +4519,7 @@ packages: /ip@2.0.0: resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + requiresBuild: true optional: true /ipaddr.js@1.9.1: @@ -4400,6 +4571,7 @@ packages: /is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + requiresBuild: true optional: true /is-number@7.0.0: @@ -4415,7 +4587,6 @@ packages: /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - dev: true /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} @@ -4427,6 +4598,7 @@ packages: /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + requiresBuild: true /istanbul-lib-coverage@3.2.0: resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} @@ -4955,6 +5127,12 @@ packages: hasBin: true dev: true + /json-bigint@1.0.0: + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + dependencies: + bignumber.js: 9.1.1 + dev: false + /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -5021,6 +5199,14 @@ packages: safe-buffer: 5.2.1 dev: false + /jwa@2.0.0: + resolution: {integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==} + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + dev: false + /jwks-rsa@3.0.0: resolution: {integrity: sha512-x9qNrP/kD6tOfrLzBVC5HaneBTR+fCEGIjwk/xSdl+KA7Tzf+R3oiY9ibrONKVLF9fR0V03enkitYPZkO65fAQ==} engines: {node: '>=14'} @@ -5042,6 +5228,13 @@ packages: safe-buffer: 5.2.1 dev: false + /jws@4.0.0: + resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==} + dependencies: + jwa: 2.0.0 + safe-buffer: 5.2.1 + dev: false + /kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -5207,6 +5400,7 @@ packages: /make-fetch-happen@9.1.0: resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} engines: {node: '>= 10'} + requiresBuild: true dependencies: agentkeepalive: 4.3.0 cacache: 15.3.0 @@ -5312,6 +5506,7 @@ packages: /minipass-collect@1.0.2: resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} engines: {node: '>= 8'} + requiresBuild: true dependencies: minipass: 3.3.6 optional: true @@ -5319,6 +5514,7 @@ packages: /minipass-fetch@1.4.1: resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} engines: {node: '>=8'} + requiresBuild: true dependencies: minipass: 3.3.6 minipass-sized: 1.0.3 @@ -5330,6 +5526,7 @@ packages: /minipass-flush@1.0.5: resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} engines: {node: '>= 8'} + requiresBuild: true dependencies: minipass: 3.3.6 optional: true @@ -5337,6 +5534,7 @@ packages: /minipass-pipeline@1.2.4: resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} engines: {node: '>=8'} + requiresBuild: true dependencies: minipass: 3.3.6 optional: true @@ -5344,6 +5542,7 @@ packages: /minipass-sized@1.0.3: resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} engines: {node: '>=8'} + requiresBuild: true dependencies: minipass: 3.3.6 optional: true @@ -5471,6 +5670,11 @@ packages: dependencies: whatwg-url: 5.0.0 + /node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + dev: false + /node-gyp@8.4.1: resolution: {integrity: sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==} engines: {node: '>= 10.12.0'} @@ -5564,6 +5768,7 @@ packages: /npmlog@6.0.2: resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + requiresBuild: true dependencies: are-we-there-yet: 3.0.1 console-control-strings: 1.1.0 @@ -5676,6 +5881,7 @@ packages: /p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} + requiresBuild: true dependencies: aggregate-error: 3.1.0 optional: true @@ -5946,6 +6152,7 @@ packages: /promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + requiresBuild: true peerDependencies: bluebird: '*' peerDependenciesMeta: @@ -5960,6 +6167,7 @@ packages: /promise-retry@2.0.1: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} + requiresBuild: true dependencies: err-code: 2.0.3 retry: 0.12.0 @@ -6265,6 +6473,7 @@ packages: /retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} + requiresBuild: true optional: true /reusify@1.0.4: @@ -6457,11 +6666,13 @@ packages: /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + requiresBuild: true optional: true /socks-proxy-agent@6.2.1: resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} engines: {node: '>= 10'} + requiresBuild: true dependencies: agent-base: 6.0.2 debug: 4.3.4 @@ -6473,6 +6684,7 @@ packages: /socks@2.7.1: resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + requiresBuild: true dependencies: ip: 2.0.0 smart-buffer: 4.2.0 @@ -6538,6 +6750,7 @@ packages: /ssri@8.0.1: resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} engines: {node: '>= 8'} + requiresBuild: true dependencies: minipass: 3.3.6 optional: true @@ -7151,12 +7364,14 @@ packages: /unique-filename@1.1.1: resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + requiresBuild: true dependencies: unique-slug: 2.0.2 optional: true /unique-slug@2.0.2: resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + requiresBuild: true dependencies: imurmurhash: 0.1.4 optional: true @@ -7196,6 +7411,10 @@ packages: dependencies: punycode: 2.1.1 + /url-template@2.0.8: + resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==} + dev: false + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} diff --git a/shared/package.json b/shared/package.json index 21b7b06..9688ff6 100644 --- a/shared/package.json +++ b/shared/package.json @@ -21,6 +21,7 @@ }, "dependencies": { "@casl/ability": "^6.3.3", + "@joi/date": "^2.1.0", "joi": "^17.7.0" }, "jest": { diff --git a/shared/src/abilities.ts b/shared/src/abilities.ts index 915da9b..56a3e5d 100644 --- a/shared/src/abilities.ts +++ b/shared/src/abilities.ts @@ -6,6 +6,9 @@ import { subject, } from "@casl/ability"; import { applyAbilitiesForPerson, Person, Role } from "./person"; +import { Application, applyAbilitiesOnApplication } from "./application"; +import { applyAbilitiesOnAvailability, Availability } from "./availability"; +import { TimeSlot } from "./timeslot"; export interface UserAuth { sub: string; @@ -19,8 +22,12 @@ export enum Action { Update = "update", Delete = "delete", } -type SubjectsTypes = Partial; -type SubjectNames = "Person"; +type SubjectsTypes = + | Partial + | Partial + | Partial + | Partial; +type SubjectNames = "Person" | "Application" | "Availability" | "TimeSlot"; export type Subjects = SubjectsTypes | SubjectNames; export type AppAbility = PureAbility<[Action, Subjects]>; @@ -35,6 +42,8 @@ export const abilityForUser = (user: UserAuth): AppAbility => { const builder = new AbilityBuilder(createMongoAbility); applyAbilitiesForPerson(user, builder); + applyAbilitiesOnApplication(user, builder); + applyAbilitiesOnAvailability(user, builder); const { build } = builder; return build(); @@ -44,11 +53,15 @@ export const checkAbility = ( ability: AppAbility, action: Action, subjectObj: SubjectsTypes, - subjectName: SubjectNames + subjectName: SubjectNames, + conditions: String[] = [] ): boolean => { const subj = subject(subjectName, subjectObj); + return ( ability.can(action, subj) && - Object.keys(subj).every((field) => ability.can(action, subj, field)) + Object.keys(subj) + .filter((field) => !conditions.includes(field)) + .every((field) => ability.can(action, subj, field)) ); }; diff --git a/shared/src/application.spec.ts b/shared/src/application.spec.ts new file mode 100644 index 0000000..5ec6783 --- /dev/null +++ b/shared/src/application.spec.ts @@ -0,0 +1,496 @@ +import { + Application, + createApplicationSchema, + updateApplicationSchema, + applyAbilitiesOnApplication, + LangLevel, + ApplicationState, + ApplicationType, + applicationsConfig, +} from "./application"; +import { createMockAbility } from "./abilities.spec"; +import { Action, UserAuth, checkAbility } from "./abilities"; +import { Role } from "./person"; + +describe("Application", () => { + const mockApplication: Partial = { + notes: "Notes", + cv: { + encoding: "7bit", + mimetype: "application/pdf", + size: 0, + }, + itaLevel: LangLevel.B2, + }; + + const mockBscApplication: Partial = { + ...mockApplication, + type: ApplicationType.BSC, + bscApplication: { + bscStudyPath: "Electronic Engineering", + bscAcademicYear: 1, + bscGradesAvg: 27.8, + cfu: 50, + }, + }; + + const mockMscApplication: Partial = { + ...mockApplication, + type: ApplicationType.MSC, + mscApplication: { + bscStudyPath: "Electronic Engineering", + bscGradesAvg: 28.9, + mscStudyPath: "Electronic Engineering II", + mscAcademicYear: 1, + mscGradesAvg: 28.6, + cfu: 65, + }, + }; + + const mockPhdApplication: Partial = { + ...mockApplication, + type: ApplicationType.PHD, + phdApplication: { + mscStudyPath: "Electronic Engineering II", + phdDescription: "Electronic Engineering III", + }, + }; + + const mockApplications = [ + mockBscApplication, + mockMscApplication, + mockPhdApplication, + ] + // Define toString method for each mockApplication, so as to print it in the test name + .map((account) => + Object.assign(account, { + toString: function () { + return this.type; + }, + }) + ); + + describe("createApplicationSchema", () => { + it.each(mockApplications)( + `should allow a valid %s application`, + (mockApplication) => { + expect( + createApplicationSchema.validate(mockApplication) + ).not.toHaveProperty("error"); + } + ); + + it("should allow to not set optional fields", () => { + const application: Partial = { + ...mockMscApplication, + notes: undefined, + }; + expect(createApplicationSchema.validate(application)).not.toHaveProperty( + "error" + ); + }); + + it.each(Object.values(ApplicationType))( + `should require application-specific field for %s applications`, + (applicationType) => { + const { error } = createApplicationSchema.validate({ + ...mockApplication, + type: applicationType, + }); + expect(error).toBeDefined(); + expect(error.message).toMatch( + `\"${applicationType}Application\" is required` + ); + } + ); + + it("should require all required fields", () => { + const application: Partial = {}; + const reqiredFields = ["type", "itaLevel"]; + const { error } = createApplicationSchema.validate(application); + expect(error).toBeDefined(); + for (let requiredField of reqiredFields) + expect(error.message).toMatch(`\"${requiredField}\" is required`); + }); + + it("should require required bscApplication-specific fields", () => { + const application = { + ...mockApplication, + type: ApplicationType.BSC, + bscApplication: {}, + }; + const reqiredFields = [ + "bscStudyPath", + "bscAcademicYear", + "bscGradesAvg", + "cfu", + ]; + const { error } = createApplicationSchema.validate(application); + expect(error).toBeDefined(); + for (let requiredField of reqiredFields) + expect(error.message).toMatch( + new RegExp(`\"bscApplication.${requiredField}\\" is required`) + ); + }); + + it("should require required mscApplication-specific fields", () => { + const application = { + ...mockApplication, + type: ApplicationType.MSC, + mscApplication: {}, + }; + const reqiredFields = [ + "mscStudyPath", + "mscGradesAvg", + "mscAcademicYear", + "cfu", + ]; + const optionalFields = ["bscStudyPath", "bscGradesAvg"]; + const { error } = createApplicationSchema.validate(application); + expect(error).toBeDefined(); + for (let requiredField of reqiredFields) + expect(error.message).toMatch( + new RegExp(`\"mscApplication.${requiredField}\\" is required`) + ); + for (let optionalField of optionalFields) + expect(error.message).not.toMatch( + new RegExp(`\"mscApplication.${optionalField}\\" is required`) + ); + }); + + it("should not accept Bsc cfu, years, and grades lower than minimum threshold", () => { + const application: Partial = { + ...mockApplication, + type: ApplicationType.BSC, + bscApplication: { + bscStudyPath: "Electronic Engineering", + bscAcademicYear: -1, + bscGradesAvg: -1, + cfu: -1, + }, + }; + const expectedMinValues = { + bscAcademicYear: applicationsConfig.BSC.MIN_ACADEMIC_YEAR, + bscGradesAvg: applicationsConfig.BSC.MIN_GRADE, + cfu: applicationsConfig.BSC.MIN_CFU, + }; + const { error } = createApplicationSchema.validate(application); + expect(error).toBeDefined(); + for (let [field, minValue] of Object.entries(expectedMinValues)) + expect(error.message).toMatch( + new RegExp( + `\"bscApplication.${field}\\" must be greater than or equal to ${minValue}` + ) + ); + }); + + it("should not accept Msc cfu, years, and grades lower than minimum threshold", () => { + const application: Partial = { + ...mockApplication, + type: ApplicationType.MSC, + mscApplication: { + bscStudyPath: "Electronic Engineering", + mscStudyPath: "Electronic Engineering II", + bscGradesAvg: -1, + mscGradesAvg: -1, + mscAcademicYear: -1, + cfu: -1, + }, + }; + const expectedMinValues = { + bscGradesAvg: applicationsConfig.BSC.MIN_GRADE, + mscGradesAvg: applicationsConfig.MSC.MIN_GRADE, + mscAcademicYear: applicationsConfig.MSC.MIN_ACADEMIC_YEAR, + cfu: applicationsConfig.MSC.MIN_CFU, + }; + const { error } = createApplicationSchema.validate(application); + expect(error).toBeDefined(); + for (let [field, minValue] of Object.entries(expectedMinValues)) + expect(error.message).toMatch( + new RegExp( + `\"mscApplication.${field}\\" must be greater than or equal to ${minValue}` + ) + ); + }); + + it("should not accept Bsc cfu, years, and grades higher than maximum threshold", () => { + const application: Partial = { + ...mockApplication, + type: ApplicationType.BSC, + bscApplication: { + bscStudyPath: "Electronic Engineering", + bscAcademicYear: 999, + bscGradesAvg: 999, + cfu: 999, + }, + }; + const expectedMaxValues = { + bscAcademicYear: applicationsConfig.BSC.MAX_ACADEMIC_YEAR, + bscGradesAvg: applicationsConfig.BSC.MAX_GRADE, + cfu: applicationsConfig.BSC.MAX_CFU, + }; + const { error } = createApplicationSchema.validate(application); + expect(error).toBeDefined(); + for (let [field, maxValue] of Object.entries(expectedMaxValues)) + expect(error.message).toMatch( + new RegExp( + `\"bscApplication.${field}\\" must be less than or equal to ${maxValue}` + ) + ); + }); + + it("should not accept Msc cfu, years, and grades higher than maximum threshold", () => { + const application: Partial = { + ...mockApplication, + type: ApplicationType.MSC, + mscApplication: { + bscStudyPath: "Electronic Engineering", + mscStudyPath: "Electronic Engineering II", + bscGradesAvg: 999, + mscGradesAvg: 999, + mscAcademicYear: 999, + cfu: 999, + }, + }; + const expectedMaxValues = { + bscGradesAvg: applicationsConfig.BSC.MAX_GRADE, + mscGradesAvg: applicationsConfig.MSC.MAX_GRADE, + mscAcademicYear: applicationsConfig.MSC.MAX_ACADEMIC_YEAR, + cfu: applicationsConfig.MSC.MAX_CFU, + }; + const { error } = createApplicationSchema.validate(application); + expect(error).toBeDefined(); + for (let [field, maxValue] of Object.entries(expectedMaxValues)) + expect(error.message).toMatch( + new RegExp( + `\"mscApplication.${field}\\" must be less than or equal to ${maxValue}` + ) + ); + }); + + describe("updateApplicationSchema", () => { + it("should allow a valid update", () => { + const mockUpdate: Partial = { + notes: "NOTES", + state: ApplicationState.Finalized, + }; + expect(updateApplicationSchema.validate(mockUpdate)).not.toHaveProperty( + "error" + ); + }); + + it("should allow to not set optional fields", () => { + const mockUpdate: Partial = {}; + expect(updateApplicationSchema.validate(mockUpdate)).not.toHaveProperty( + "error" + ); + }); + }); + + describe("applyAbilitiesOnApplication", () => { + const mockAbilityForApplication = (user: UserAuth) => + createMockAbility((builder) => { + applyAbilitiesOnApplication(user, builder); + }); + + it("should allow admins to perform all operations (except delete) on applications", () => { + const mockAbility = mockAbilityForApplication({ + role: Role.Admin, + sub: "123", + }); + + const application = { + ...mockBscApplication, + applicantId: "456", + }; + + const expectedAllowedActions = Object.values(Action).filter( + (action) => action != Action.Delete + ); + for (const action of expectedAllowedActions) + expect( + checkAbility(mockAbility, action, application, "Application") + ).toBe(true); + }); + + it("should allow to read own application", () => { + const mockAbility = mockAbilityForApplication({ + role: Role.Applicant, + sub: "123", + }); + + const application = { + ...mockBscApplication, + applicantId: "123", + }; + + expect( + checkAbility(mockAbility, Action.Read, application, "Application") + ).toBe(true); + }); + + it("should not allow non-members to read not own applications", () => { + const nonMemberRoles = [Role.None, Role.Applicant]; + for (const role of nonMemberRoles) { + const mockAbility = mockAbilityForApplication({ + role: role, + sub: "123", + }); + + const application = { + ...mockBscApplication, + applicantId: "567", + }; + + expect( + checkAbility(mockAbility, Action.Read, application, "Application") + ).toBe(false); + } + }); + + it("should allow only applicants to submit new applications", () => { + for (const role of Object.values(Role)) { + const mockAbility = mockAbilityForApplication({ + role: role, + sub: "123", + }); + + const application = { + type: ApplicationType.PHD, + itaLevel: LangLevel.B2, + phdApplication: { + mscStudyPath: "mscStudyPath", + phdDescription: "phdDescription", + }, + }; + + const expected = role == Role.Applicant || role == Role.Admin; + expect( + checkAbility(mockAbility, Action.Create, application, "Application") + ).toBe(expected); + } + }); + + it("should not allow applicants to submit invalid applications data", () => { + const mockAbility = mockAbilityForApplication({ + role: Role.Applicant, + sub: "123", + }); + + const application = { + ...mockBscApplication, + // Invalid application fields + state: ApplicationState.Finalized, + }; + + expect( + checkAbility(mockAbility, Action.Create, application, "Application") + ).toBe(false); + }); + + it("should allow to update own application", () => { + const mockAbility = mockAbilityForApplication({ + role: Role.Applicant, + sub: "123", + }); + + const application = { + state: ApplicationState.RefusedByApplicant, + applicantId: "123", + }; + + expect( + checkAbility(mockAbility, Action.Update, application, "Application", [ + "applicantId", + ]) + ).toBe(true); + }); + + it("should not allow to update other's application", () => { + const mockAbility = mockAbilityForApplication({ + role: Role.Applicant, + sub: "123", + }); + + const application = { + state: ApplicationState.RefusedByApplicant, + applicantId: "456", + }; + + expect( + checkAbility(mockAbility, Action.Update, application, "Application", [ + "applicantId", + ]) + ).toBe(false); + }); + + it("should allow members to update an application", () => { + const memberRoles = [Role.Clerk, Role.Member, Role.Supervisor]; + for (const memberRole of memberRoles) { + const mockAbility = mockAbilityForApplication({ + role: memberRole, + sub: "123", + }); + + const application = { + state: ApplicationState.Accepted, + notes: "No comments", + }; + + expect( + checkAbility( + mockAbility, + Action.Update, + application, + "Application", + ["applicantId"] + ) + ).toBe(true); + } + }); + + it("should not allow members to update invalid fields of an application", () => { + const memberRoles = [Role.Clerk, Role.Member, Role.Supervisor]; + for (const memberRole of memberRoles) { + const mockAbility = mockAbilityForApplication({ + role: memberRole, + sub: "123", + }); + + const application = { + itaLevel: LangLevel.B2, + type: ApplicationType.PHD, + }; + + expect( + checkAbility( + mockAbility, + Action.Update, + application, + "Application", + ["applicantId"] + ) + ).toBe(false); + } + }); + + it("should not allow anyone to delete applications", () => { + for (const role of Object.values(Role)) { + const mockAbility = mockAbilityForApplication({ + role: role, + sub: "123", + }); + + const application = { + ...mockBscApplication, + applicantId: "567", + }; + + expect( + checkAbility(mockAbility, Action.Delete, application, "Application") + ).toBe(false); + } + }); + }); + }); +}); diff --git a/shared/src/application.ts b/shared/src/application.ts new file mode 100644 index 0000000..c5683cf --- /dev/null +++ b/shared/src/application.ts @@ -0,0 +1,207 @@ +import { Action, ApplyAbilities } from "./abilities"; +import { Role } from "./person"; +import * as Joi from "joi"; + +export const applicationsConfig = { + BSC: { + MIN_GRADE: 18, + MAX_GRADE: 30, + MIN_CFU: 48, + MAX_CFU: 180, + MIN_ACADEMIC_YEAR: 1, + MAX_ACADEMIC_YEAR: 3, + }, + MSC: { + MIN_GRADE: 18, + MAX_GRADE: 30, + MIN_CFU: 20, + MAX_CFU: 120, + MIN_ACADEMIC_YEAR: 1, + MAX_ACADEMIC_YEAR: 2, + }, + PHD: { + DESC_LENGTH: 255, + }, +}; + +export enum ApplicationState { + New = "new", + Accepted = "accepted", + Rejected = "rejected", + Confirmed = "confirmed", + Finalized = "finalized", + RefusedByApplicant = "refused_by_applicant", +} + +export enum ApplicationType { + BSC = "bsc", + MSC = "msc", + PHD = "phd", +} + +export enum LangLevel { + B2 = "B2", + C1 = "C1", + C2 = "C2", + NativeSpeaker = "native_speaker", +} + +export interface Application { + type: ApplicationType; + id: number; + state: ApplicationState; + notes?: string; + cv: any; // CV file + grades?: any; // Grades file + itaLevel: LangLevel; + // TODO: Add slot + bscApplication?: BscApplication; + mscApplication?: MscApplication; + phdApplication?: PhdApplication; +} + +export interface BscApplication { + bscStudyPath: string; + bscAcademicYear: number; + bscGradesAvg: number; + cfu: number; +} + +export interface MscApplication { + bscStudyPath: string; + bscGradesAvg: number; + mscStudyPath: string; + mscGradesAvg: number; + mscAcademicYear: number; + cfu: number; +} + +export interface PhdApplication { + mscStudyPath: string; + phdDescription: string; +} + +/* Validation schemas */ + +const BaseApplication = Joi.object({ + type: Joi.string() + .valid(...Object.values(ApplicationType)) + .required(), + notes: Joi.string().optional(), + itaLevel: Joi.string() + .valid(...Object.values(LangLevel)) + .required(), +}); + +const createBscApplication = Joi.object({ + bscStudyPath: Joi.string().max(255).required(), + bscGradesAvg: Joi.number() + .min(applicationsConfig.BSC.MIN_GRADE) + .max(applicationsConfig.BSC.MAX_GRADE) + .required(), + bscAcademicYear: Joi.number() + .integer() + .min(applicationsConfig.BSC.MIN_ACADEMIC_YEAR) + .max(applicationsConfig.BSC.MAX_ACADEMIC_YEAR) + .required(), + cfu: Joi.number() + .integer() + .min(applicationsConfig.BSC.MIN_CFU) + .max(applicationsConfig.BSC.MAX_CFU) + .required(), +}); + +const createMscApplication = Joi.object({ + bscStudyPath: Joi.string().optional(), + bscGradesAvg: Joi.number() + .min(applicationsConfig.BSC.MIN_GRADE) + .max(applicationsConfig.BSC.MAX_GRADE) + .optional(), + mscStudyPath: Joi.string().required(), + mscGradesAvg: Joi.number() + .min(applicationsConfig.MSC.MIN_GRADE) + .max(applicationsConfig.MSC.MAX_GRADE) + .required(), + mscAcademicYear: Joi.number() + .integer() + .min(applicationsConfig.MSC.MIN_ACADEMIC_YEAR) + .max(applicationsConfig.MSC.MAX_ACADEMIC_YEAR) + .required(), + cfu: Joi.number() + .integer() + .min(applicationsConfig.MSC.MIN_CFU) + .max(applicationsConfig.MSC.MAX_CFU) + .required(), +}); + +const createPhdApplication = Joi.object({ + mscStudyPath: Joi.string().required(), + phdDescription: Joi.string() + .max(applicationsConfig.PHD.DESC_LENGTH) + .required(), +}); + +export const createApplicationSchema = BaseApplication.keys({ + bscApplication: createBscApplication.when("type", { + is: "bsc", + then: Joi.required(), + otherwise: Joi.forbidden(), + }), + mscApplication: createMscApplication.when("type", { + is: "msc", + then: Joi.required(), + otherwise: Joi.forbidden(), + }), + phdApplication: createPhdApplication.when("type", { + is: "phd", + then: Joi.required(), + otherwise: Joi.forbidden(), + }), +}) + .label("type") + .options({ + stripUnknown: true, + abortEarly: false, + presence: "required", + }); + +export const updateApplicationSchema = Joi.object({ + notes: Joi.string().optional(), + state: Joi.string() + .valid(...Object.values(ApplicationState)) + .optional(), +}).options({ + stripUnknown: true, + abortEarly: false, + presence: "required", +}); + +/* Abilities */ + +export const applyAbilitiesOnApplication: ApplyAbilities = ( + user, + { can, cannot } +) => { + if (user.role === Role.Admin) { + can(Action.Manage, "Application"); // Admin can do anything on any application + } else if (user.role === Role.Applicant) { + can(Action.Read, "Application", { applicantId: user.sub }); + + can(Action.Create, "Application", [ + "type", + "notes", + "itaLevel", + "bscApplication", + "mscApplication", + "phdApplication", + ]); + + can(Action.Update, "Application", ["state"], { applicantId: user.sub }); + } else if (user.role !== Role.None) { + // Every other authenticated user can read and update applications + can(Action.Read, "Application"); + can(Action.Update, "Application", ["state", "notes"], {}); + } + + cannot(Action.Delete, "Application"); // No one can delete applications +}; diff --git a/shared/src/availability.spec.ts b/shared/src/availability.spec.ts new file mode 100644 index 0000000..212a245 --- /dev/null +++ b/shared/src/availability.spec.ts @@ -0,0 +1,40 @@ +import { + AvailabilityState, + AvailabilityType, + Availability, + updateAvailabilitySchema, +} from "./availability"; +import { createMockAbility } from "./abilities.spec"; +import { Action, UserAuth, checkAbility } from "./abilities"; +import { Role } from "./person"; + +describe("Availability", () => { + describe("updateAvailabilitySchema", () => { + it("should allow a valid update", () => { + const updateAvailability = { + state: AvailabilityState.Confirmed, + timeSlotId: 123, + }; + const { error } = updateAvailabilitySchema.validate(updateAvailability); + expect(error).toBeDefined(); + }); + + it("should not allow updating with an invalid state", () => { + const updateAvailability = { + state: "Non_Existent_State", + timeSlotId: 123, + }; + const { error } = updateAvailabilitySchema.validate(updateAvailability); + expect(error).toBeDefined(); + }); + + it("should not allow updating with an invalid timeSlotId", () => { + const updateAvailability = { + state: AvailabilityState.Confirmed, + timeSlotId: -321, + }; + const { error } = updateAvailabilitySchema.validate(updateAvailability); + expect(error).toBeDefined(); + }); + }); +}); diff --git a/shared/src/availability.ts b/shared/src/availability.ts new file mode 100644 index 0000000..1cd0e38 --- /dev/null +++ b/shared/src/availability.ts @@ -0,0 +1,61 @@ +import { Action, ApplyAbilities } from "./abilities"; +import { Person, Role } from "./person"; +import * as Joi from "joi"; + +export enum AvailabilityState { + Subscribed = "subscribed", + Confirmed = "confirmed", + Cancelled = "cancelled", +} + +export enum AvailabilityType { + Available = "available", + Unavailable = "unavailable", +} + +export interface Availability { + state: AvailabilityState; + timeSlotId: number; + member: Person; + // assignedAt?: Date; + // confirmedAt?: Date; + // cancelledAt?: Date; +} + +/* Validation schemas */ + +export const updateAvailabilitySchema = Joi.object({ + state: Joi.string() + .valid(...Object.values(AvailabilityType)) + .required(), + timeSlotId: Joi.number().positive().required(), +}).options({ + stripUnknown: true, + abortEarly: false, + presence: "required", +}); + +/* Abilities */ + +export const applyAbilitiesOnAvailability: ApplyAbilities = ( + user, + { can, cannot } +) => { + switch (user.role) { + case Role.Admin: + case Role.Supervisor: + can(Action.Manage, "Availability"); + break; + case Role.Member: + case Role.Clerk: + can(Action.Read, "Availability"); + can(Action.Update, "Availability", { userId: user.sub }); + break; + case Role.Applicant: + can(Action.Read, "Availability", { userId: user.sub }); + can(Action.Update, "Availability", { userId: user.sub }); + break; + default: + cannot(Action.Manage, "Availability"); + } +}; diff --git a/shared/src/index.ts b/shared/src/index.ts index 482f0ff..3402b34 100644 --- a/shared/src/index.ts +++ b/shared/src/index.ts @@ -1,2 +1,6 @@ export * from "./person"; export * from "./abilities"; +export * from "./application"; +export * from "./availability"; +export * from "./timeslot"; +export * from "./slot"; diff --git a/shared/src/slot.ts b/shared/src/slot.ts new file mode 100644 index 0000000..5b31ebd --- /dev/null +++ b/shared/src/slot.ts @@ -0,0 +1,16 @@ +import { TimeSlot } from "./timeslot"; + +export enum SlotState { + Free = "free", + Assigned = "assigned", + Rejected = "rejected", + Reserved = "reserved", +} + +export interface Slot { + state: SlotState; + timeSlot: TimeSlot; + calendarId?: string; +} + +/* Validation schemas */ diff --git a/shared/src/timeslot.ts b/shared/src/timeslot.ts new file mode 100644 index 0000000..fea1951 --- /dev/null +++ b/shared/src/timeslot.ts @@ -0,0 +1,47 @@ +import { Action, ApplyAbilities } from "./abilities"; +import { Role } from "./person"; +import DateExtension from "@joi/date"; +import * as Joi from "joi"; +const JoiDate = Joi.extend(DateExtension); + +// import BaseJoi from "joi"; +// const Joi = BaseJoi.extend(JoiDate); + +export interface TimeSlot { + start: Date; + end: Date; +} + +/* Validation schemas */ + +export const createTimeSlotSchema = Joi.object({ + start: JoiDate.date().format("YYYY-MM-DD HH:mm").required(), + end: JoiDate.date().format("YYYY-MM-DD HH:mm").required(), +}).options({ + stripUnknown: true, + abortEarly: false, + presence: "required", +}); + +/* Abilities */ + +export const applyAbilitiesOnTimeSlot: ApplyAbilities = ( + user, + { can, cannot } +) => { + can(Action.Manage, "TimeSlot"); + // switch (user.role) { + // case Role.Admin: + // case Role.Supervisor: + // case Role.Clerk: + // // TODO: Decide who can create/delete timeslots + // can(Action.Manage, "TimeSlot"); + // break; + // case Role.Member: + // case Role.Applicant: + // can(Action.Read, "TimeSlot"); + // break; + // default: + // cannot(Action.Manage, "TimeSlot"); + // } +};