From 49e6497c356d9f440111be5e1755a3402ea26a7d Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 2 Nov 2023 09:56:17 -0500 Subject: [PATCH 01/82] Add base Registration dialog and update login page --- frontend/src/App.tsx | 2 + .../src/components/Register/RegisterForm.tsx | 181 ++++++++++++++++++ frontend/src/components/Register/index.ts | 1 + .../components/Register/registerFormStyle.ts | 48 +++++ .../components/Register/styles.module.scss | 0 frontend/src/pages/AuthLogin/AuthLogin.tsx | 22 ++- 6 files changed, 252 insertions(+), 2 deletions(-) create mode 100644 frontend/src/components/Register/RegisterForm.tsx create mode 100644 frontend/src/components/Register/index.ts create mode 100644 frontend/src/components/Register/registerFormStyle.ts create mode 100644 frontend/src/components/Register/styles.module.scss diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 9daa449d6..cee4312d4 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -37,6 +37,7 @@ import { Layout, RouteGuard } from 'components'; import { CrossfeedFooter } from './components/Footer'; import './styles.scss'; import { Authenticator } from '@aws-amplify/ui-react'; +import UserRegistration from 'pages/UserRegistration'; API.configure({ endpoints: [ @@ -154,6 +155,7 @@ const App: React.FC = () => ( + diff --git a/frontend/src/components/Register/RegisterForm.tsx b/frontend/src/components/Register/RegisterForm.tsx new file mode 100644 index 000000000..13564f296 --- /dev/null +++ b/frontend/src/components/Register/RegisterForm.tsx @@ -0,0 +1,181 @@ +import React, { useCallback, useEffect, useState } from 'react'; +import * as registerFormStyles from './registerFormStyle'; +import { Organization, OrganizationTag } from 'types'; +import { + Autocomplete, + CircularProgress, + DialogTitle, + DialogContent, + TextField, + DialogActions, + Switch, + Button, + FormControlLabel, + Box, + Chip, + Grid, + createFilterOptions +} from '@mui/material'; +import { Save } from '@mui/icons-material'; + +import { useAuthContext } from 'context'; + +const classes = registerFormStyles.classes; +const StyledDialog = registerFormStyles.StyledDialog; + +interface AutocompleteType extends Partial { + title?: string; +} + +export interface RegisterFormValues { + firstName: string; + lastName: string; + email: string; +} + +export const RegisterForm: React.FC<{ + open: boolean; + onClose: () => void; +}> = ({open, onClose}) => { + const defaultValues = () => ({ + firstName: '', + lastName: '', + email: '' + }); + const [values, setValues] = useState(defaultValues); + // const [errorMessage, setErrorMessage] = useState(''); + const [errorRequestMessage, setErrorRequestMessage] = useState(''); + const [errorEmailMessage, setEmailErrorMessage] = useState('Email entry error. Please try again.'); + const [isLoading, setIsLoading] = useState(false); + const onTextChange: React.ChangeEventHandler< + HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement + > = (e) => onChange(e.target.name, e.target.value); + + const onChange = (name: string, value: any) => { + setValues((values) => ({ + ...values, + [name]: value + })); + }; + + const isDisabled = () => { + if (Object.values(values).every(value => value) && !errorEmailMessage) { + return false; + } else { + return true; + } + }; + + const onSave = async () => { + setIsLoading(true); + console.log('values: ', values); + console.log('This is where we will send the values to post.'); + // makeRequest should be "await someApiCallToBeSuccessfulOrFail" + const makeRequest = {data: {user: {firstName: 'test', lastName: 'test', email: 'test@email.com'}}} + const successfulRequest = makeRequest.data; + if(makeRequest && makeRequest.data){ + console.log('User Registered Successfully'); + onClose(); + }else{ + console.log('User Register Failed'); + setErrorRequestMessage('Something went wrong registering. Please try again.'); + setIsLoading(false); + } + } + + const validateEmail = (email: string) => { + // email format + // const regexEmail = /\S+@\S+\.\S+/; + const regexEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; + let error = false; + if (email && regexEmail.test(email)) { + setEmailErrorMessage(''); + error = false; + } else { + setEmailErrorMessage('Email is not valid.'); + error = true; + } + return error; + }; + + useEffect(() => { + if ( + values && + values.email + ) { + validateEmail(values.email); + } + }, [values]); + + return ( + onClose} + aria-labelledby="form-dialog-title" + maxWidth="xs" + fullWidth + > + + Register with Crossfeed + + + {errorRequestMessage &&

{errorRequestMessage}

} + + + +
+ + + + +
+ ); +}; diff --git a/frontend/src/components/Register/index.ts b/frontend/src/components/Register/index.ts new file mode 100644 index 000000000..f4a0ba134 --- /dev/null +++ b/frontend/src/components/Register/index.ts @@ -0,0 +1 @@ +export * from './RegisterForm'; diff --git a/frontend/src/components/Register/registerFormStyle.ts b/frontend/src/components/Register/registerFormStyle.ts new file mode 100644 index 000000000..f8ee2f1fd --- /dev/null +++ b/frontend/src/components/Register/registerFormStyle.ts @@ -0,0 +1,48 @@ +import { styled } from '@mui/material/styles'; +import { Dialog } from '@mui/material'; + +const PREFIX = 'RegisterForm'; + +export const classes = { + chip: `${PREFIX}-chip`, + headerRow: `${PREFIX}-headerRow` +}; + +export const StyledDialog = styled(Dialog)(({ theme }) => ({ + [`& .${classes.chip}`]: { + backgroundColor: '#C4C4C4', + color: 'white', + marginRight: '10px' + }, + + [`& .${classes.headerRow}`]: { + padding: '0.5rem 0', + width: '100%', + display: 'flex', + alignItems: 'center', + fontSize: '16px', + flexWrap: 'wrap', + '& label': { + flex: '1 0 100%', + fontWeight: 'bolder', + display: 'flex', + alignItems: 'center', + padding: '0.5rem 0', + '@media screen and (min-width: 640px)': { + flex: '0 0 220px', + padding: 0 + } + }, + '& span': { + display: 'block', + flex: '1 1 auto', + marginLeft: 'calc(1rem + 20px)', + '@media screen and (min-width: 640px)': { + marginLeft: 'calc(1rem + 20px)' + }, + '@media screen and (min-width: 1024px)': { + marginLeft: 0 + } + } + } +})); diff --git a/frontend/src/components/Register/styles.module.scss b/frontend/src/components/Register/styles.module.scss new file mode 100644 index 000000000..e69de29bb diff --git a/frontend/src/pages/AuthLogin/AuthLogin.tsx b/frontend/src/pages/AuthLogin/AuthLogin.tsx index 0b39a57a4..bfe42151f 100644 --- a/frontend/src/pages/AuthLogin/AuthLogin.tsx +++ b/frontend/src/pages/AuthLogin/AuthLogin.tsx @@ -2,6 +2,7 @@ import React, { useEffect, useState } from 'react'; import { Link } from 'react-router-dom'; import { AuthForm } from 'components'; import { Button } from '@trussworks/react-uswds'; +import { Typography } from '@mui/material'; import { useAuthContext } from 'context'; import { Authenticator, @@ -9,6 +10,7 @@ import { useAuthenticator } from '@aws-amplify/ui-react'; import { I18n } from 'aws-amplify'; +import { RegisterForm } from 'components/Register/RegisterForm'; const TOTP_ISSUER = process.env.REACT_APP_TOTP_ISSUER; @@ -31,6 +33,7 @@ export const AuthLogin: React.FC<{ showSignUp?: boolean }> = ({ }) => { const { apiPost, refreshUser } = useAuthContext(); const [errors, setErrors] = useState({}); + const [open, setOpen] = useState(false); // Once a user signs in, call refreshUser() so that the callback is called and the user gets signed in. const { authStatus } = useAuthenticator((context) => [context.isPending]); @@ -80,6 +83,10 @@ export const AuthLogin: React.FC<{ showSignUp?: boolean }> = ({ } }; + const onClose = () => { + setOpen(false); + } + if (process.env.REACT_APP_USE_COGNITO) { return ( @@ -134,9 +141,20 @@ export const AuthLogin: React.FC<{ showSignUp?: boolean }> = ({ - + +
New to Crossfeed? Register with Login.gov
+
+ {open && } + + {/* +
New to Crossfeed? Register with Login.gov
+
*/} + + {/* New to Crossfeed? Register with Login.gov - + */}
); }; From 1c4f47625569a0b168d597f36db58e61b0fe8e3e Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 2 Nov 2023 09:57:23 -0500 Subject: [PATCH 02/82] Update user schema backend/frontend --- backend/src/models/user.ts | 3 ++- frontend/src/types/user.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/src/models/user.ts b/backend/src/models/user.ts index b83f513ad..b303301bf 100644 --- a/backend/src/models/user.ts +++ b/backend/src/models/user.ts @@ -16,7 +16,8 @@ import { ApiKey } from './api-key'; export enum UserType { STANDARD = 'standard', GLOBAL_VIEW = 'globalView', - GLOBAL_ADMIN = 'globalAdmin' + GLOBAL_ADMIN = 'globalAdmin', + REGIONAL_ADMIN = 'regionalAdmin' } @Entity() export class User extends BaseEntity { diff --git a/frontend/src/types/user.ts b/frontend/src/types/user.ts index eb9678619..c7af53da5 100644 --- a/frontend/src/types/user.ts +++ b/frontend/src/types/user.ts @@ -9,7 +9,7 @@ export interface User { lastName: string; fullName: string; invitePending: boolean; - userType: 'standard' | 'globalView' | 'globalAdmin'; + userType: 'standard' | 'globalView' | 'globalAdmin'| 'regionalAdmin'; email: string; roles: Role[]; dateAcceptedTerms: string | null; From c26df4d7d2575dd0ca422abdd00cff548a02b2fd Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 2 Nov 2023 15:05:53 -0500 Subject: [PATCH 03/82] Remove old registration page route --- frontend/src/App.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index cee4312d4..432a28b28 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -37,7 +37,7 @@ import { Layout, RouteGuard } from 'components'; import { CrossfeedFooter } from './components/Footer'; import './styles.scss'; import { Authenticator } from '@aws-amplify/ui-react'; -import UserRegistration from 'pages/UserRegistration'; +// import UserRegistration from 'pages/UserRegistration'; API.configure({ endpoints: [ @@ -155,7 +155,7 @@ const App: React.FC = () => ( - + {/* */} From e6455b7fa9a12303e8622d5f4784415183a8f0e4 Mon Sep 17 00:00:00 2001 From: aloftus23 Date: Tue, 7 Nov 2023 11:03:16 -0500 Subject: [PATCH 04/82] Add network_configuration to aws_ecs_service --- backend/src/tasks/functions.yml | 2 +- infrastructure/pe_worker.tf | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/backend/src/tasks/functions.yml b/backend/src/tasks/functions.yml index 8bc1a46f0..ab000f094 100644 --- a/backend/src/tasks/functions.yml +++ b/backend/src/tasks/functions.yml @@ -33,7 +33,7 @@ scanExecution: handler: src/tasks/scanExecution.handler timeout: 300 # 5 minutes environment: - SQS_QUEUE_NAME: ${self:provider.stage}-worker-queue + SQS_QUEUE_NAME: ${self:provider.stage}-worker-control-queue events: - sqs: arn: diff --git a/infrastructure/pe_worker.tf b/infrastructure/pe_worker.tf index 743ded08d..dec81237c 100644 --- a/infrastructure/pe_worker.tf +++ b/infrastructure/pe_worker.tf @@ -176,4 +176,8 @@ resource "aws_ecs_service" "shodan_service" { task_definition = aws_ecs_task_definition.pe_worker.arn launch_type = "FARGATE" desired_count = 0 # Initially set to 0, plan to start it dynamically + network_configuration { + subnets = aws_subnet.worker.id + security_groups = [aws_security_group.worker.id] + } } \ No newline at end of file From 7f8704bbc2a9f86d3e9f6ba0c70e32cb35e93d1a Mon Sep 17 00:00:00 2001 From: aloftus23 Date: Tue, 7 Nov 2023 11:14:44 -0500 Subject: [PATCH 05/82] Fix subnets assignment --- infrastructure/pe_worker.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infrastructure/pe_worker.tf b/infrastructure/pe_worker.tf index dec81237c..cf039c9fd 100644 --- a/infrastructure/pe_worker.tf +++ b/infrastructure/pe_worker.tf @@ -177,7 +177,7 @@ resource "aws_ecs_service" "shodan_service" { launch_type = "FARGATE" desired_count = 0 # Initially set to 0, plan to start it dynamically network_configuration { - subnets = aws_subnet.worker.id + subnets = aws_subnet.worker.*.id security_groups = [aws_security_group.worker.id] } } \ No newline at end of file From 95bfb3303ccc79fc687aabd9643a0f012fe18708 Mon Sep 17 00:00:00 2001 From: aloftus23 Date: Tue, 7 Nov 2023 12:50:49 -0500 Subject: [PATCH 06/82] Remove reference to old WorkerQueue in env.yml --- backend/env.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/backend/env.yml b/backend/env.yml index 115246cef..92a7f6013 100644 --- a/backend/env.yml +++ b/backend/env.yml @@ -42,7 +42,6 @@ staging: PE_API_URL: ${ssm:/crossfeed/staging/PE_API_URL} REPORTS_BUCKET_NAME: cisa-crossfeed-staging-reports CLOUDWATCH_BUCKET_NAME: cisa-crossfeed-staging-cloudwatch - SQS_QUEUE_URL: { Ref: WorkerQueue } STAGE: staging PE_CLUSTER_NAME: pe-staging-worker SHODAN_QUEUE_URL: ${ssm:/crossfeed/staging/SHODAN_QUEUE_URL} @@ -83,7 +82,6 @@ prod: PE_API_URL: ${ssm:/crossfeed/staging/PE_API_URL} REPORTS_BUCKET_NAME: cisa-crossfeed-prod-reports CLOUDWATCH_BUCKET_NAME: cisa-crossfeed-prod-cloudwatch - SQS_QUEUE_URL: { Ref: WorkerQueue } STAGE: prod PE_CLUSTER_NAME: pe-prod-worker SHODAN_QUEUE_URL: ${ssm:/crossfeed/prod/SHODAN_QUEUE_URL} From c9a615434f387012b05d8cab50f36c102c987dfc Mon Sep 17 00:00:00 2001 From: nickviola Date: Wed, 8 Nov 2023 17:59:15 -0600 Subject: [PATCH 07/82] Update User and Organization schema and update test-utils --- backend/src/models/organization.ts | 40 +++++++++++++++++++++++++ backend/src/models/user.ts | 10 +++++++ frontend/src/test-utils/organization.ts | 10 ++++++- frontend/src/test-utils/user.ts | 4 ++- frontend/src/types/organization.ts | 8 +++++ frontend/src/types/user.ts | 2 ++ 6 files changed, 72 insertions(+), 2 deletions(-) diff --git a/backend/src/models/organization.ts b/backend/src/models/organization.ts index 33a80068c..894b06f11 100644 --- a/backend/src/models/organization.ts +++ b/backend/src/models/organization.ts @@ -111,4 +111,44 @@ export class Organization extends BaseEntity { onUpdate: 'CASCADE' }) createdBy: User; + + @Column({ + nullable: true + }) + country: string; + + @Column({ + nullable: true + }) + state: string; + + @Column({ + nullable: true + }) + stateFips: number; + + @Column({ + nullable: true + }) + stateName: string; + + @Column({ + nullable: true + }) + county: string; + + @Column({ + nullable: true + }) + countyFips: number; + + @Column({ + nullable: true + }) + acronym: string; + + @Column({ + nullable: true + }) + type: string; } diff --git a/backend/src/models/user.ts b/backend/src/models/user.ts index b303301bf..6b11d87af 100644 --- a/backend/src/models/user.ts +++ b/backend/src/models/user.ts @@ -105,4 +105,14 @@ export class User extends BaseEntity { setFullName() { this.fullName = this.firstName + ' ' + this.lastName; } + + @Column({ + nullable: true + }) + regionId: string; + + @Column({ + nullable: true + }) + state: string; } diff --git a/frontend/src/test-utils/organization.ts b/frontend/src/test-utils/organization.ts index 60042b454..7b60b74b0 100644 --- a/frontend/src/test-utils/organization.ts +++ b/frontend/src/test-utils/organization.ts @@ -10,5 +10,13 @@ export const testOrganization = { tags: [], parent: null, children: [], - pendingDomains: [] + pendingDomains: [], + country: 'US', + state: 'LA', + stateFips: 22, + stateName: 'Louisiana', + county: 'Calcasieu Parish', + countyFips: 22019, + acronym: 'TEST', + type: 'Federal' }; diff --git a/frontend/src/test-utils/user.ts b/frontend/src/test-utils/user.ts index 9cbbb4ee4..5318c4b17 100644 --- a/frontend/src/test-utils/user.ts +++ b/frontend/src/test-utils/user.ts @@ -15,5 +15,7 @@ export const testUser: AuthUser = { dateAcceptedTerms: new Date().toISOString(), acceptedTermsVersion: 'v1-user', isRegistered: true, - apiKeys: [] + apiKeys: [], + regionId: "1234", + state: "LA" }; diff --git a/frontend/src/types/organization.ts b/frontend/src/types/organization.ts index cf484f838..2b0cc0970 100644 --- a/frontend/src/types/organization.ts +++ b/frontend/src/types/organization.ts @@ -15,6 +15,14 @@ export interface Organization { parent: Organization | null; children: Organization[]; pendingDomains: PendingDomain[]; + country: string; + state: string; + stateFips: number; + stateName: string; + county: string; + countyFips: number; + acronym: string; + type: string; } export interface PendingDomain { diff --git a/frontend/src/types/user.ts b/frontend/src/types/user.ts index c7af53da5..e16db1cd6 100644 --- a/frontend/src/types/user.ts +++ b/frontend/src/types/user.ts @@ -16,4 +16,6 @@ export interface User { acceptedTermsVersion: string | null; lastLoggedIn: string | null; apiKeys: ApiKey[]; + regionId: string | null; + state: string | null; } From c76f9d27bd7673b9802555fc5be7bcf2431c8a55 Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Thu, 9 Nov 2023 11:09:54 -0500 Subject: [PATCH 08/82] Add new package mui/x-data-grid to package.json --- frontend/package-lock.json | 68 +++++++++++++++++++++++++++----------- frontend/package.json | 5 +-- 2 files changed, 51 insertions(+), 22 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index c641345c2..9492c0cf8 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -18,6 +18,7 @@ "@mui/lab": "^5.0.0-alpha.135", "@mui/material": "^5.14.2", "@mui/system": "^5.14.0", + "@mui/x-data-grid": "^6.18.0", "@nivo/bar": "^0.80.0", "@nivo/core": "^0.80.0", "@nivo/pie": "^0.80.0", @@ -7660,9 +7661,9 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.11.tgz", - "integrity": "sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -9490,13 +9491,12 @@ } }, "node_modules/@mui/utils": { - "version": "5.14.6", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.6.tgz", - "integrity": "sha512-AznpqLu6hrFnpHgcvsSSMCG+cDbkcCYfo+daUwBVReNYv4l+NQ8+wvBAF4aUMi155N7xWbbgh0cyKs6Wdsm3aA==", + "version": "5.14.16", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.16.tgz", + "integrity": "sha512-3xV31GposHkwRbQzwJJuooWpK2ybWdEdeUPtRjv/6vjomyi97F3+68l+QVj9tPTvmfSbr2sx5c/NuvDulrdRmA==", "dependencies": { - "@babel/runtime": "^7.22.10", - "@types/prop-types": "^15.7.5", - "@types/react-is": "^18.2.1", + "@babel/runtime": "^7.23.2", + "@types/prop-types": "^15.7.9", "prop-types": "^15.8.1", "react-is": "^18.2.0" }, @@ -9508,7 +9508,38 @@ "url": "https://opencollective.com/mui" }, "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/x-data-grid": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-6.18.0.tgz", + "integrity": "sha512-js7Qhv+8XLgXilghKZmfBgUbkP7dYt7V1HLkM4C9285jFRUDFgAM9L6PVlRyUMn+YhVVPbvy+SWT+VWC8rYeQQ==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@mui/utils": "^5.14.16", + "clsx": "^2.0.0", + "prop-types": "^15.8.1", + "reselect": "^4.1.8" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@mui/material": "^5.4.1", + "@mui/system": "^5.4.1", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" } }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { @@ -12668,9 +12699,9 @@ "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" }, "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "version": "15.7.9", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz", + "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==" }, "node_modules/@types/qs": { "version": "6.9.7", @@ -12716,14 +12747,6 @@ "@types/react": "*" } }, - "node_modules/@types/react-is": { - "version": "18.2.1", - "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-18.2.1.tgz", - "integrity": "sha512-wyUkmaaSZEzFZivD8F2ftSyAfk6L+DfFliVj/mYdOXbVjRcS87fQJLTnhk6dRZPuJjI+9g6RZJO4PNCngUrmyw==", - "dependencies": { - "@types/react": "*" - } - }, "node_modules/@types/react-lazylog": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/@types/react-lazylog/-/react-lazylog-4.5.1.tgz", @@ -30314,6 +30337,11 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, + "node_modules/reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" + }, "node_modules/resolve": { "version": "1.22.4", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", diff --git a/frontend/package.json b/frontend/package.json index 50a4de771..32fc4e777 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -16,6 +16,7 @@ "@mui/lab": "^5.0.0-alpha.135", "@mui/material": "^5.14.2", "@mui/system": "^5.14.0", + "@mui/x-data-grid": "^6.18.0", "@nivo/bar": "^0.80.0", "@nivo/core": "^0.80.0", "@nivo/pie": "^0.80.0", @@ -125,10 +126,10 @@ "eslint-config-react-app": "^7.0.1", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-react": "^7.31.10", - "sass": "^1.55.0", "jest-date-mock": "^1.0.8", "prettier": "^2.7.1", + "sass": "^1.55.0", "ts-jest": "^29.1.1", "typescript": "^4.8.4" } -} \ No newline at end of file +} From 52e45c5a270862de89757e6fc95d6d408312a4a7 Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Thu, 9 Nov 2023 11:12:57 -0500 Subject: [PATCH 09/82] Update formatting for RegisterForm.tsx --- .../src/components/Register/RegisterForm.tsx | 44 +++++++++++-------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/frontend/src/components/Register/RegisterForm.tsx b/frontend/src/components/Register/RegisterForm.tsx index 13564f296..992932797 100644 --- a/frontend/src/components/Register/RegisterForm.tsx +++ b/frontend/src/components/Register/RegisterForm.tsx @@ -36,7 +36,7 @@ export interface RegisterFormValues { export const RegisterForm: React.FC<{ open: boolean; onClose: () => void; -}> = ({open, onClose}) => { +}> = ({ open, onClose }) => { const defaultValues = () => ({ firstName: '', lastName: '', @@ -45,7 +45,9 @@ export const RegisterForm: React.FC<{ const [values, setValues] = useState(defaultValues); // const [errorMessage, setErrorMessage] = useState(''); const [errorRequestMessage, setErrorRequestMessage] = useState(''); - const [errorEmailMessage, setEmailErrorMessage] = useState('Email entry error. Please try again.'); + const [errorEmailMessage, setEmailErrorMessage] = useState( + 'Email entry error. Please try again.' + ); const [isLoading, setIsLoading] = useState(false); const onTextChange: React.ChangeEventHandler< HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement @@ -59,7 +61,7 @@ export const RegisterForm: React.FC<{ }; const isDisabled = () => { - if (Object.values(values).every(value => value) && !errorEmailMessage) { + if (Object.values(values).every((value) => value) && !errorEmailMessage) { return false; } else { return true; @@ -70,23 +72,30 @@ export const RegisterForm: React.FC<{ setIsLoading(true); console.log('values: ', values); console.log('This is where we will send the values to post.'); - // makeRequest should be "await someApiCallToBeSuccessfulOrFail" - const makeRequest = {data: {user: {firstName: 'test', lastName: 'test', email: 'test@email.com'}}} + // makeRequest should be "await someApiCallToBeSuccessfulOrFail" + const makeRequest = { + data: { + user: { firstName: 'test', lastName: 'test', email: 'test@email.com' } + } + }; const successfulRequest = makeRequest.data; - if(makeRequest && makeRequest.data){ + if (makeRequest && makeRequest.data) { console.log('User Registered Successfully'); onClose(); - }else{ + } else { console.log('User Register Failed'); - setErrorRequestMessage('Something went wrong registering. Please try again.'); + setErrorRequestMessage( + 'Something went wrong registering. Please try again.' + ); setIsLoading(false); } - } + }; const validateEmail = (email: string) => { // email format // const regexEmail = /\S+@\S+\.\S+/; - const regexEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; + const regexEmail = + /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; let error = false; if (email && regexEmail.test(email)) { setEmailErrorMessage(''); @@ -99,10 +108,7 @@ export const RegisterForm: React.FC<{ }; useEffect(() => { - if ( - values && - values.email - ) { + if (values && values.email) { validateEmail(values.email); } }, [values]); @@ -115,11 +121,11 @@ export const RegisterForm: React.FC<{ maxWidth="xs" fullWidth > - - Register with Crossfeed - + Register with Crossfeed - {errorRequestMessage &&

{errorRequestMessage}

} + {errorRequestMessage && ( +

{errorRequestMessage}

+ )} + ) : ( ) From 1b0bcbc70029f7b865283f3b44e75d216b87eee9 Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Thu, 9 Nov 2023 11:23:28 -0500 Subject: [PATCH 10/82] Update formatting on AuthLogin.tsx --- frontend/src/pages/AuthLogin/AuthLogin.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/pages/AuthLogin/AuthLogin.tsx b/frontend/src/pages/AuthLogin/AuthLogin.tsx index bfe42151f..f74cc3dd5 100644 --- a/frontend/src/pages/AuthLogin/AuthLogin.tsx +++ b/frontend/src/pages/AuthLogin/AuthLogin.tsx @@ -85,7 +85,7 @@ export const AuthLogin: React.FC<{ showSignUp?: boolean }> = ({ const onClose = () => { setOpen(false); - } + }; if (process.env.REACT_APP_USE_COGNITO) { return ( From c415b8522612f2e4f1d008282321c4ab2f604f7c Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Thu, 9 Nov 2023 14:29:27 -0500 Subject: [PATCH 11/82] Add Dialog folder with ConfirmDialog and InfoDialog components --- .../src/components/Dialog/ConfirmDialog.tsx | 52 +++++++++++++++++ frontend/src/components/Dialog/InfoDialog.tsx | 57 +++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 frontend/src/components/Dialog/ConfirmDialog.tsx create mode 100644 frontend/src/components/Dialog/InfoDialog.tsx diff --git a/frontend/src/components/Dialog/ConfirmDialog.tsx b/frontend/src/components/Dialog/ConfirmDialog.tsx new file mode 100644 index 000000000..da68ed217 --- /dev/null +++ b/frontend/src/components/Dialog/ConfirmDialog.tsx @@ -0,0 +1,52 @@ +import React from 'react'; +import { + Button, + Dialog as MuiDialog, + DialogActions, + DialogContent, + DialogTitle +} from '@mui/material'; + +type DialogComponentProps = { + isOpen: boolean; + onClose?: (...args: any[]) => void; + onConfirm: () => void; + onCancel: () => void; + title: string; + content: React.ReactNode; + disabled?: boolean; + screenWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; +}; + +const ConfirmDialog: React.FC = ({ + isOpen, + onClose, + onConfirm, + onCancel, + title, + content, + disabled = false, + screenWidth = 'sm' +}) => { + return ( + + {title} + {content} + + + + + + ); +}; + +export default ConfirmDialog; \ No newline at end of file diff --git a/frontend/src/components/Dialog/InfoDialog.tsx b/frontend/src/components/Dialog/InfoDialog.tsx new file mode 100644 index 000000000..5f978f729 --- /dev/null +++ b/frontend/src/components/Dialog/InfoDialog.tsx @@ -0,0 +1,57 @@ +import React from 'react'; +import { + Button, + Dialog, + DialogContent, + DialogTitle, + Grid, + Typography +} from '@mui/material'; +import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline'; + +type DialogComponentProps = { + isOpen: boolean; + handleClick: () => void; + icon: React.ReactNode; + title: React.ReactNode; + content: React.ReactNode; + screenWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; +}; + +const InfoDialog: React.FC = ({ + isOpen, + handleClick, + title, + content, + screenWidth = 'sm' +}) => { + return ( + + + + + + + {title} + + + + {content} + + + + + + + + ); +}; + +export default InfoDialog; From f2a1b354448848a3e46a8d0acdb524c6af151881 Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Thu, 9 Nov 2023 14:32:08 -0500 Subject: [PATCH 12/82] Update user and organization types in types folder --- frontend/src/types/organization.ts | 2 +- frontend/src/types/user.ts | 29 ++++++++++++++++++++++++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/frontend/src/types/organization.ts b/frontend/src/types/organization.ts index 2b0cc0970..a544ba00b 100644 --- a/frontend/src/types/organization.ts +++ b/frontend/src/types/organization.ts @@ -15,7 +15,7 @@ export interface Organization { parent: Organization | null; children: Organization[]; pendingDomains: PendingDomain[]; - country: string; + country?: string; state: string; stateFips: number; stateName: string; diff --git a/frontend/src/types/user.ts b/frontend/src/types/user.ts index e16db1cd6..327f6e877 100644 --- a/frontend/src/types/user.ts +++ b/frontend/src/types/user.ts @@ -9,13 +9,36 @@ export interface User { lastName: string; fullName: string; invitePending: boolean; - userType: 'standard' | 'globalView' | 'globalAdmin'| 'regionalAdmin'; + userType: 'standard' | 'globalView' | 'globalAdmin' | 'regionalAdmin'; email: string; roles: Role[]; dateAcceptedTerms: string | null; acceptedTermsVersion: string | null; lastLoggedIn: string | null; apiKeys: ApiKey[]; - regionId: string | null; - state: string | null; + regionId?: string | null; + state?: string | null; + organizations?: Array; + isRegistered?: boolean | null; } + +export const initializeUser: User = { + id: '', + createdAt: '', + updatedAt: '', + firstName: '', + lastName: '', + fullName: '', + invitePending: true, + userType: 'standard', + email: '', + roles: [], + dateAcceptedTerms: null, + acceptedTermsVersion: null, + lastLoggedIn: null, + apiKeys: [], + regionId: null, + state: null, + organizations: [], + isRegistered: null +}; From 861fcdc90d6d5522897e8c0f7e8c3d6fff7b8ee3 Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Thu, 9 Nov 2023 14:33:08 -0500 Subject: [PATCH 13/82] Add RegionUsers folder with files for Region Admin dashboard --- .../src/pages/RegionUsers/RegionUsers.tsx | 290 +++++++++++++++ frontend/src/pages/RegionUsers/index.ts | 1 + frontend/src/pages/RegionUsers/testData.tsx | 340 ++++++++++++++++++ 3 files changed, 631 insertions(+) create mode 100644 frontend/src/pages/RegionUsers/RegionUsers.tsx create mode 100644 frontend/src/pages/RegionUsers/index.ts create mode 100644 frontend/src/pages/RegionUsers/testData.tsx diff --git a/frontend/src/pages/RegionUsers/RegionUsers.tsx b/frontend/src/pages/RegionUsers/RegionUsers.tsx new file mode 100644 index 000000000..a7d223c23 --- /dev/null +++ b/frontend/src/pages/RegionUsers/RegionUsers.tsx @@ -0,0 +1,290 @@ +import React, { useState } from 'react'; +import { initializeUser, User } from 'types'; +import { testUsers, testOrganizations } from './testData'; +import ConfirmDialog from 'components/Dialog/ConfirmDialog'; +import InfoDialog from 'components/Dialog/InfoDialog'; +import { + // Alert, + Box, + Button, + Stack, + Typography +} from '@mui/material'; +import { + DataGrid, + GridColDef, + GridRenderCellParams, + // GridRowId, + GridRowSelectionModel, + GridToolbar +} from '@mui/x-data-grid'; +import DoneIcon from '@mui/icons-material/Done'; +import { CheckCircleOutline as CheckIcon } from '@mui/icons-material'; +import CloseIcon from '@mui/icons-material/Close'; + +export interface ApiResponse { + result: User[]; + count: number; + url?: string; +} + +type DialogStates = { + isOrgDialogOpen: boolean; + isDenyDialogOpen: boolean; + isApproveDialogOpen: boolean; + isInfoDialogOpen: boolean; +}; + +export const RegionUsers: React.FC = () => { + const pendingCols: GridColDef[] = [ + { field: 'fullName', headerName: 'Name', minWidth: 100, flex: 1 }, + { field: 'email', headerName: 'Email', minWidth: 100, flex: 2 }, + { field: 'createdAt', headerName: 'Created At', minWidth: 100, flex: 2 }, + { + field: 'status', + headerName: 'Registration Status', + minWidth: 250, + flex: 1, + renderCell: (cellValues: GridRenderCellParams) => { + return ( + + + + + ); + } + } + ]; + const memberCols: GridColDef[] = [ + { field: 'fullName', headerName: 'Name', minWidth: 100, flex: 1 }, + { field: 'email', headerName: 'Email', minWidth: 100, flex: 2 }, + { + field: 'lastLoggedIn', + headerName: 'Last Logged In', + minWidth: 100, + flex: 1 + }, + { + field: 'organizations', + headerName: 'Organizations', + minWidth: 250, + flex: 3 + } + ]; + const orgCols: GridColDef[] = [ + { field: 'name', headerName: 'Name', minWidth: 100, flex: 2 }, + { field: 'updatedAt', headerName: 'Updated At', minWidth: 100, flex: 1 }, + { field: 'members', headerName: 'Members', minWidth: 100, flex: 1 } + ]; + const [dialogStates, setDialogStates] = useState({ + isOrgDialogOpen: false, + isDenyDialogOpen: false, + isApproveDialogOpen: false, + isInfoDialogOpen: false + }); + const [selectedUser, selectUser] = useState(initializeUser); + // const [apiError, setApiError] = useState<[boolean, string]>([false, '']); + const [selectedOrgRows, selectOrgRows] = + React.useState([]); + + type CloseReason = 'backdropClick' | 'escapeKeyDown' | 'closeButtonClick'; + + // TODO: Update selectedUser with invitePending as false and add selected organizations. + const handleSubmitClick = (value: CloseReason) => { + if (value === 'backdropClick' || value === 'escapeKeyDown') { + return; + } + // TODO: Handle API error response + setDialogStates({ + ...dialogStates, + isOrgDialogOpen: false + }); + selectUser(initializeUser); + selectOrgRows([]); + }; + // TODO: Remove selectedUser from User table. + const handleConfirmDeny = () => { + // TODO: Handle API error response + setDialogStates({ + ...dialogStates, + isDenyDialogOpen: false + }); + }; + + const handleApproveClick = (row: typeof initializeUser) => { + setDialogStates({ + ...dialogStates, + isOrgDialogOpen: true + }); + selectUser(row); + }; + + const handleDenyClick = (row: typeof initializeUser) => { + setDialogStates({ + ...dialogStates, + isDenyDialogOpen: true + }); + selectUser(row); + }; + + const handleCancelDeny = () => { + setDialogStates((prevState) => ({ + ...prevState, + isDenyDialogOpen: false + })); + }; + + const handleCancelApprove = () => { + setDialogStates((prevState) => ({ + ...prevState, + isOrgDialogOpen: false + })); + selectUser(initializeUser); + selectOrgRows([]); + }; + + const handleConfirmApprove = () => { + handleSubmitClick('closeButtonClick'); + setDialogStates((prevState) => ({ + ...prevState, + isInfoDialogOpen: true + })); + }; + return ( + + {/* */} + + + Region 1 Admin Dashboard +
+ + Pending Requests + + + + + + Members of Region 1 + + + + +
+
+ handleSubmitClick(reason)} + onConfirm={handleConfirmApprove} + onCancel={handleCancelApprove} + title={`Add ${selectedUser.fullName} to organizations`} + content={ + <> + + To complete the approval process, select at least one organization + for this user. + + + { + selectOrgRows(newRowSelectionModel); + }} + rowSelectionModel={selectedOrgRows} + rows={testOrganizations} + columns={orgCols} + slots={{ toolbar: GridToolbar }} + slotProps={{ + toolbar: { + showQuickFilter: true + } + }} + /> + + {/* {apiError[0] && ( + + {apiError[1]}: Unable to add this user to the database. + + )} */} + + } + disabled={selectedOrgRows.length === 0 ? true : false} + screenWidth="lg" + /> + + + Removing {selectedUser.fullName} from pending requests will be + permanent and cannot be undone. + + {/* {apiError[0] && ( + + {apiError[1]}: Unable to remove this user to the database. + + )} */} + + } + /> + { + setDialogStates((prevState) => ({ + ...prevState, + isInfoDialogOpen: false + })); + selectOrgRows([]); + }} + icon={} + title={Success} + content={ + + This user has been approved and is now a member of organizations in + Region 1. + + } + /> +
+ ); +}; + +export default RegionUsers; diff --git a/frontend/src/pages/RegionUsers/index.ts b/frontend/src/pages/RegionUsers/index.ts new file mode 100644 index 000000000..69269a9be --- /dev/null +++ b/frontend/src/pages/RegionUsers/index.ts @@ -0,0 +1 @@ +export { default } from './RegionUsers'; diff --git a/frontend/src/pages/RegionUsers/testData.tsx b/frontend/src/pages/RegionUsers/testData.tsx new file mode 100644 index 000000000..3f0ed838f --- /dev/null +++ b/frontend/src/pages/RegionUsers/testData.tsx @@ -0,0 +1,340 @@ +import { User } from 'types'; + +export const testUsers: User[] = [ + { + id: 'abc-123', + createdAt: '2023-10-18T16:51:30.906Z', + lastLoggedIn: '2023-11-03T21:17:11.774Z', + updatedAt: '2023-11-03T21:17:11.774Z', + dateAcceptedTerms: '2023-11-03T21:17:11.774Z', + fullName: 'Joe Johnson', + firstName: 'Joe', + lastName: 'Johnson', + email: 'joe.johnson@test.gov', + invitePending: false, + userType: 'globalAdmin', + roles: [], + acceptedTermsVersion: null, + apiKeys: [], + state: 'Virginia', + regionId: '1', + organizations: [ + 'Organization 1', + 'Organization 2', + 'Organization 3', + 'Organization 4', + 'Organization 5' + ] + }, + { + id: 'def-456', + createdAt: '2023-10-18T16:51:30.906Z', + lastLoggedIn: '2023-11-03T21:17:11.774Z', + updatedAt: '2023-11-03T21:17:11.774Z', + dateAcceptedTerms: '2023-11-03T21:17:11.774Z', + fullName: 'John Smith', + firstName: 'John', + lastName: 'Smith', + email: 'john.smith@test.gov', + invitePending: true, + userType: 'globalAdmin', + roles: [], + acceptedTermsVersion: null, + apiKeys: [], + regionId: '1', + state: 'New Jersey', + organizations: [] + }, + { + id: 'ghi-789', + createdAt: '2023-10-18T16:51:30.906Z', + lastLoggedIn: '2023-11-03T21:17:11.774Z', + updatedAt: '2023-11-03T21:17:11.774Z', + dateAcceptedTerms: '2023-11-03T21:17:11.774Z', + fullName: 'Jane Doe', + firstName: 'Jane', + lastName: 'Doe', + email: 'jane.doe@test.gov', + invitePending: true, + userType: 'globalAdmin', + roles: [], + acceptedTermsVersion: null, + apiKeys: [], + regionId: '1', + state: 'Virginia', + organizations: [] + }, + { + id: 'jkl-123', + createdAt: '2023-10-18T16:51:30.906Z', + lastLoggedIn: '2023-11-03T21:17:11.774Z', + updatedAt: '2023-11-03T21:17:11.774Z', + dateAcceptedTerms: '2023-11-03T21:17:11.774Z', + fullName: 'Harry Jones', + firstName: 'Harry', + lastName: 'Jones', + email: 'harry.jones@test.gov', + invitePending: false, + userType: 'globalAdmin', + roles: [], + acceptedTermsVersion: null, + apiKeys: [], + regionId: '1', + state: 'Virginia', + organizations: [] + }, + { + id: 'mno-456', + createdAt: '2023-10-18T16:51:30.906Z', + lastLoggedIn: '2023-11-03T21:17:11.774Z', + updatedAt: '2023-11-03T21:17:11.774Z', + dateAcceptedTerms: '2023-11-03T21:17:11.774Z', + fullName: 'Ronald Potter', + firstName: 'Ronald', + lastName: 'Potter', + email: 'ronald.potter@test.gov', + invitePending: false, + userType: 'globalAdmin', + roles: [], + acceptedTermsVersion: null, + apiKeys: [], + regionId: '2', + state: 'California', + organizations: [] + } +]; +type organizations = { + id: string; + createdAt: string; + updatedAt: string; + name: string; + userType?: string; + rootDomains: Array; + ipBlocks: Array; + isPassive: boolean; + pendingDomains: Array; + userRoles: Array; + members?: number; + tags: Array; +}; +export const testOrganizations: organizations[] = [ + { + id: 'xyz-123', + createdAt: '2023-11-03T20:19:08.411Z', + updatedAt: '2023-11-03T20:19:08.411Z', + name: 'Affectionate Agency', + rootDomains: ['crossfeed.local'], + ipBlocks: [], + isPassive: false, + pendingDomains: [], + userRoles: [], + members: 5, + tags: [ + { + id: 'abc-789', + createdAt: '2023-10-03T20:38:45.889Z', + updatedAt: '2023-10-03T20:38:45.889Z', + name: 'Sample Data' + } + ] + }, + { + id: 'qrs-123', + createdAt: '2023-11-03T20:19:09.899Z', + updatedAt: '2023-11-03T20:19:09.899Z', + name: 'Boring City', + rootDomains: ['crossfeed.local'], + ipBlocks: [], + isPassive: false, + pendingDomains: [], + userRoles: [], + members: 30, + tags: [ + { + id: 'lmn-123', + createdAt: '2023-10-03T20:38:45.889Z', + updatedAt: '2023-10-03T20:38:45.889Z', + name: 'Sample Data' + } + ] + }, + { + id: 'efg-456', + createdAt: '2023-11-03T20:19:10.872Z', + updatedAt: '2023-11-03T20:19:10.872Z', + name: 'Brave Agency', + rootDomains: ['crossfeed.local'], + ipBlocks: [], + isPassive: false, + pendingDomains: [], + userRoles: [], + members: 6, + tags: [ + { + id: 'hij-789', + createdAt: '2023-10-03T20:38:45.889Z', + updatedAt: '2023-10-03T20:38:45.889Z', + name: 'Sample Data' + } + ] + }, + { + id: 'bcd-234', + createdAt: '2023-11-03T20:19:07.327Z', + updatedAt: '2023-11-03T20:19:07.327Z', + name: 'Competent County', + rootDomains: ['crossfeed.local'], + ipBlocks: [], + isPassive: false, + pendingDomains: [], + userRoles: [], + members: 15, + tags: [ + { + id: 'nop-567', + createdAt: '2023-10-03T20:38:45.889Z', + updatedAt: '2023-10-03T20:38:45.889Z', + name: 'Sample Data' + } + ] + }, + { + id: 'qrs-345', + createdAt: '2023-11-03T20:19:11.724Z', + updatedAt: '2023-11-03T20:19:11.724Z', + name: 'Condescending City', + rootDomains: ['crossfeed.local'], + ipBlocks: [], + isPassive: false, + pendingDomains: [], + userRoles: [], + members: 14, + tags: [ + { + id: 'tuv-678', + createdAt: '2023-10-03T20:38:45.889Z', + updatedAt: '2023-10-03T20:38:45.889Z', + name: 'Sample Data' + } + ] + }, + { + id: 'wxy-789', + createdAt: '2023-11-03T20:19:08.930Z', + updatedAt: '2023-11-03T20:19:08.930Z', + name: 'Distracted Agency', + rootDomains: ['crossfeed.local'], + ipBlocks: [], + isPassive: false, + pendingDomains: [], + userRoles: [], + tags: [ + { + id: 'efg-567', + createdAt: '2023-10-03T20:38:45.889Z', + updatedAt: '2023-10-03T20:38:45.889Z', + name: 'Sample Data' + } + ] + }, + { + id: 'hij-123', + createdAt: '2023-11-03T20:19:07.901Z', + updatedAt: '2023-11-03T20:19:07.901Z', + name: 'Optimistic County', + rootDomains: ['crossfeed.local'], + ipBlocks: [], + isPassive: false, + pendingDomains: [], + userRoles: [], + members: 12, + tags: [ + { + id: 'cde-234', + createdAt: '2023-10-03T20:38:45.889Z', + updatedAt: '2023-10-03T20:38:45.889Z', + name: 'Sample Data' + } + ] + }, + { + id: 'rst-123', + createdAt: '2023-11-03T20:19:10.343Z', + updatedAt: '2023-11-03T20:19:10.343Z', + name: 'Peaceful Department', + rootDomains: ['crossfeed.local'], + ipBlocks: [], + isPassive: false, + pendingDomains: [], + userRoles: [], + members: 0, + tags: [ + { + id: 'efg-567', + createdAt: '2023-10-03T20:38:45.889Z', + updatedAt: '2023-10-03T20:38:45.889Z', + name: 'Sample Data' + } + ] + }, + { + id: 'klm-456', + createdAt: '2023-11-03T20:19:11.296Z', + updatedAt: '2023-11-03T20:19:11.296Z', + name: 'Sharp County', + rootDomains: ['crossfeed.local'], + ipBlocks: [], + isPassive: false, + pendingDomains: [], + userRoles: [], + members: 30, + tags: [ + { + id: 'lmn-567', + createdAt: '2023-10-03T20:38:45.889Z', + updatedAt: '2023-10-03T20:38:45.889Z', + name: 'Sample Data' + } + ] + }, + { + id: 'ghi-678', + createdAt: '2023-11-03T20:19:06.677Z', + updatedAt: '2023-11-03T20:19:06.677Z', + name: 'Tender Department', + rootDomains: ['crossfeed.local'], + ipBlocks: [], + isPassive: false, + pendingDomains: [], + userRoles: [], + members: 10, + tags: [ + { + id: 'ijk-789', + createdAt: '2023-10-03T20:38:45.889Z', + updatedAt: '2023-10-03T20:38:45.889Z', + name: 'Sample Data' + } + ] + }, + { + id: 'mno-345', + createdAt: '2023-11-03T20:19:09.380Z', + updatedAt: '2023-11-03T20:19:09.380Z', + name: 'Zealous Agency', + rootDomains: ['crossfeed.local'], + ipBlocks: [], + isPassive: false, + pendingDomains: [], + userRoles: [], + members: 3, + tags: [ + { + id: 'stu-234', + createdAt: '2023-10-03T20:38:45.889Z', + updatedAt: '2023-10-03T20:38:45.889Z', + name: 'Sample Data' + } + ] + } +]; From 6125b64852d96313d5c96f8320de1a9068c5fc6f Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Thu, 9 Nov 2023 14:33:47 -0500 Subject: [PATCH 14/82] Update App.tsx and pages/index.ts to include RegionUsers --- frontend/src/App.tsx | 8 ++++++-- frontend/src/pages/index.ts | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 432a28b28..2e0dc375b 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -31,13 +31,13 @@ import { LoginGovCallback, Feeds, Domains, - Reports + Reports, + RegionUsers } from 'pages'; import { Layout, RouteGuard } from 'components'; import { CrossfeedFooter } from './components/Footer'; import './styles.scss'; import { Authenticator } from '@aws-amplify/ui-react'; -// import UserRegistration from 'pages/UserRegistration'; API.configure({ endpoints: [ @@ -156,6 +156,10 @@ const App: React.FC = () => ( {/* */} + diff --git a/frontend/src/pages/index.ts b/frontend/src/pages/index.ts index 70b428be4..d902af8d1 100644 --- a/frontend/src/pages/index.ts +++ b/frontend/src/pages/index.ts @@ -16,3 +16,4 @@ export { default as Users } from './Users'; export { default as Settings } from './Settings'; export { default as Feeds } from './Feeds'; export { default as Reports } from './Reports'; +export { default as RegionUsers } from './RegionUsers'; From 843a5938eca5030b791b47cd074b6edbdd137f88 Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Thu, 9 Nov 2023 15:16:00 -0500 Subject: [PATCH 15/82] Remove unneeded comments in RegionUsers.tsx --- frontend/src/pages/RegionUsers/RegionUsers.tsx | 8 -------- 1 file changed, 8 deletions(-) diff --git a/frontend/src/pages/RegionUsers/RegionUsers.tsx b/frontend/src/pages/RegionUsers/RegionUsers.tsx index a7d223c23..7df08fba6 100644 --- a/frontend/src/pages/RegionUsers/RegionUsers.tsx +++ b/frontend/src/pages/RegionUsers/RegionUsers.tsx @@ -14,7 +14,6 @@ import { DataGrid, GridColDef, GridRenderCellParams, - // GridRowId, GridRowSelectionModel, GridToolbar } from '@mui/x-data-grid'; @@ -166,13 +165,6 @@ export const RegionUsers: React.FC = () => { }; return ( - {/* */} Date: Thu, 9 Nov 2023 14:24:47 -0600 Subject: [PATCH 16/82] Add endpoints for user and organization by regionId and state --- backend/src/api/organizations.ts | 64 ++++++++++++++++++++++++++++++++ backend/src/api/users.ts | 50 +++++++++++++++++++++++++ 2 files changed, 114 insertions(+) diff --git a/backend/src/api/organizations.ts b/backend/src/api/organizations.ts index 0ea75ba8a..5e89709b6 100644 --- a/backend/src/api/organizations.ts +++ b/backend/src/api/organizations.ts @@ -231,6 +231,19 @@ export const create = wrapHandler(async (event) => { * description: List organizations that the user is a member of or has access to. * tags: * - Organizations + * parameters: + * - in: query + * name: state + * schema: + * type: array + * items: + * type: string + * - in: query + * name: regionId + * schema: + * type: array + * items: + * type: string */ export const list = wrapHandler(async (event) => { if (!isGlobalViewAdmin(event) && getOrgMemberships(event).length === 0) { @@ -608,3 +621,54 @@ export const removeRole = wrapHandler(async (event) => { body: JSON.stringify(result) }; }); + + +/** + * @swagger + * + * /organizations/regionId/{regionId}: + * get: + * description: List organizations with specific regionId. + * parameters: + * - in: path + * name: regionId + * description: Organization regionId + * tags: + * - Organizations + */ +export const getByRegionId = wrapHandler(async (event) => { + if (!isGlobalViewAdmin(event)) return Unauthorized; + await connectToDatabase(); + const result = await Organization.find({ + where: { regionId: event.pathParameters?.regionId } + }); + return { + statusCode: 200, + body: JSON.stringify(result) + }; +}); + +/** + * @swagger + * + * /organizations/state/{state}: + * get: + * description: List organizations with specific state. + * parameters: + * - in: path + * name: state + * description: Organization state + * tags: + * - Organizations + */ +export const getByState = wrapHandler(async (event) => { + if (!isGlobalViewAdmin(event)) return Unauthorized; + await connectToDatabase(); + const result = await Organization.find({ + where: { state: event.pathParameters?.state } + }); + return { + statusCode: 200, + body: JSON.stringify(result) + }; +}); \ No newline at end of file diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index 821337f54..0e15e45ee 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -385,3 +385,53 @@ export const search = wrapHandler(async (event) => { body: JSON.stringify({ result, count }) }; }); + +/** + * @swagger + * + * /users/regionId/{regionId}: + * get: + * description: List users with specific regionId. + * parameters: + * - in: path + * name: regionId + * description: User regionId + * tags: + * - Users + */ +export const getByRegionId = wrapHandler(async (event) => { + if (!isGlobalViewAdmin(event)) return Unauthorized; + await connectToDatabase(); + const result = await User.find({ + where: { regionId: event.pathParameters?.regionId } + }); + return { + statusCode: 200, + body: JSON.stringify(result) + }; +}); + +/** + * @swagger + * + * /users/state/{state}: + * get: + * description: List users with specific state. + * parameters: + * - in: path + * name: state + * description: User state + * tags: + * - Users + */ +export const getByState = wrapHandler(async (event) => { + if (!isGlobalViewAdmin(event)) return Unauthorized; + await connectToDatabase(); + const result = await User.find({ + where: { state: event.pathParameters?.state } + }); + return { + statusCode: 200, + body: JSON.stringify(result) + }; +}); \ No newline at end of file From 557192d478f8bc6fbea186b698dd3d629e18e3c4 Mon Sep 17 00:00:00 2001 From: nickviola Date: Mon, 13 Nov 2023 10:57:23 -0600 Subject: [PATCH 17/82] Fix eslint errors in frontend/src --- .../src/components/Dialog/ConfirmDialog.tsx | 2 +- frontend/src/components/Dialog/InfoDialog.tsx | 3 +-- .../src/components/Register/RegisterForm.tsx | 20 ++----------------- frontend/src/pages/AuthLogin/AuthLogin.tsx | 1 - 4 files changed, 4 insertions(+), 22 deletions(-) diff --git a/frontend/src/components/Dialog/ConfirmDialog.tsx b/frontend/src/components/Dialog/ConfirmDialog.tsx index da68ed217..a9cfb8c73 100644 --- a/frontend/src/components/Dialog/ConfirmDialog.tsx +++ b/frontend/src/components/Dialog/ConfirmDialog.tsx @@ -49,4 +49,4 @@ const ConfirmDialog: React.FC = ({ ); }; -export default ConfirmDialog; \ No newline at end of file +export default ConfirmDialog; diff --git a/frontend/src/components/Dialog/InfoDialog.tsx b/frontend/src/components/Dialog/InfoDialog.tsx index 5f978f729..eefacb4ff 100644 --- a/frontend/src/components/Dialog/InfoDialog.tsx +++ b/frontend/src/components/Dialog/InfoDialog.tsx @@ -4,8 +4,7 @@ import { Dialog, DialogContent, DialogTitle, - Grid, - Typography + Grid } from '@mui/material'; import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline'; diff --git a/frontend/src/components/Register/RegisterForm.tsx b/frontend/src/components/Register/RegisterForm.tsx index 992932797..afddbefe9 100644 --- a/frontend/src/components/Register/RegisterForm.tsx +++ b/frontend/src/components/Register/RegisterForm.tsx @@ -1,32 +1,17 @@ -import React, { useCallback, useEffect, useState } from 'react'; +import React, { useEffect, useState } from 'react'; import * as registerFormStyles from './registerFormStyle'; -import { Organization, OrganizationTag } from 'types'; import { - Autocomplete, CircularProgress, DialogTitle, DialogContent, TextField, DialogActions, - Switch, - Button, - FormControlLabel, - Box, - Chip, - Grid, - createFilterOptions + Button } from '@mui/material'; import { Save } from '@mui/icons-material'; -import { useAuthContext } from 'context'; - -const classes = registerFormStyles.classes; const StyledDialog = registerFormStyles.StyledDialog; -interface AutocompleteType extends Partial { - title?: string; -} - export interface RegisterFormValues { firstName: string; lastName: string; @@ -78,7 +63,6 @@ export const RegisterForm: React.FC<{ user: { firstName: 'test', lastName: 'test', email: 'test@email.com' } } }; - const successfulRequest = makeRequest.data; if (makeRequest && makeRequest.data) { console.log('User Registered Successfully'); onClose(); diff --git a/frontend/src/pages/AuthLogin/AuthLogin.tsx b/frontend/src/pages/AuthLogin/AuthLogin.tsx index f74cc3dd5..5907d09cc 100644 --- a/frontend/src/pages/AuthLogin/AuthLogin.tsx +++ b/frontend/src/pages/AuthLogin/AuthLogin.tsx @@ -1,5 +1,4 @@ import React, { useEffect, useState } from 'react'; -import { Link } from 'react-router-dom'; import { AuthForm } from 'components'; import { Button } from '@trussworks/react-uswds'; import { Typography } from '@mui/material'; From 11723de42b32b795963054ee73522552c4011453 Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Mon, 13 Nov 2023 12:08:00 -0500 Subject: [PATCH 18/82] Run npm audit fix package-lock.json --- package-lock.json | 74 +++++++++++++++++++++++------------------------ 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/package-lock.json b/package-lock.json index 219cc437c..4495e8ef0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -176,12 +176,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz", - "integrity": "sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", + "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.10", + "@babel/types": "^7.23.3", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -216,22 +216,22 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -323,9 +323,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" @@ -440,9 +440,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.13.tgz", - "integrity": "sha512-3l6+4YOvc9wx7VlCSw4yQfcBo01ECA8TicQfbnCPuCEpRQrf+gTUyGdxNw+pyTUyywp6JRD1w0YQs9TpBXYlkw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -629,33 +629,33 @@ } }, "node_modules/@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.11.tgz", - "integrity": "sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz", + "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.10", - "@babel/generator": "^7.22.10", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.11", - "@babel/types": "^7.22.11", + "@babel/parser": "^7.23.3", + "@babel/types": "^7.23.3", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -673,13 +673,13 @@ } }, "node_modules/@babel/types": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.11.tgz", - "integrity": "sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz", + "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { From e550381b1866385599603a3fd5be2da986badc94 Mon Sep 17 00:00:00 2001 From: nickviola Date: Mon, 13 Nov 2023 14:23:54 -0600 Subject: [PATCH 19/82] Add new v2 endpoint for organizations for modifying registration and region metadata --- backend/src/api/app.ts | 4 ++ backend/src/api/helpers.ts | 4 +- backend/src/api/organizations.ts | 104 ++++++++++++++++++++++++++++++- 3 files changed, 109 insertions(+), 3 deletions(-) diff --git a/backend/src/api/app.ts b/backend/src/api/app.ts index fd3a93fd6..7de50c953 100644 --- a/backend/src/api/app.ts +++ b/backend/src/api/app.ts @@ -321,6 +321,10 @@ authenticatedRoute.put( '/organizations/:organizationId', handlerToExpress(organizations.update) ); +authenticatedRoute.put( + '/organizations/v2/:organizationId', + handlerToExpress(organizations.updateV2) +); authenticatedRoute.delete( '/organizations/:organizationId', handlerToExpress(organizations.del) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index 121b66099..fc2f3ac36 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -71,12 +71,12 @@ export const wrapHandler: WrapHandler = export const NotFound: APIGatewayProxyResult = { statusCode: 404, - body: '' + body: "Item not found. View logs for details." }; export const Unauthorized: APIGatewayProxyResult = { statusCode: 403, - body: '' + body: "Unauthorized access. View logs for details." }; export const sendEmail = async ( diff --git a/backend/src/api/organizations.ts b/backend/src/api/organizations.ts index 5e89709b6..d71e29732 100644 --- a/backend/src/api/organizations.ts +++ b/backend/src/api/organizations.ts @@ -5,7 +5,8 @@ import { IsBoolean, IsUUID, IsOptional, - IsNotEmpty + IsNotEmpty, + IsNumber } from 'class-validator'; import { Organization, @@ -66,6 +67,7 @@ class PendingDomainBody { pendingDomains: PendingDomain[]; } + class NewOrganizationNonGlobalAdmins { @IsString() name: string; @@ -89,6 +91,57 @@ class NewOrganization extends NewOrganizationNonGlobalAdmins { parent?: string; } +// Type Validation Options +class UpdateOrganizationMetaV2 { + @IsString() + @IsNotEmpty() + @IsOptional() + name: string; + + @IsBoolean() + @IsOptional() + isPassive: boolean; + + @IsString() + @IsNotEmpty() + @IsOptional() + state: string; + + @IsString() + @IsNotEmpty() + @IsOptional() + country: string; + + @IsNumber() + @IsOptional() + stateFips: number; + + @IsString() + @IsNotEmpty() + @IsOptional() + stateName: string; + + @IsString() + @IsNotEmpty() + @IsOptional() + county: string; + + @IsNumber() + @IsOptional() + countyFips: number; + + @IsString() + @IsNotEmpty() + @IsOptional() + acronym: string; + + @IsString() + @IsNotEmpty() + @IsOptional() + type: string; + +} + class NewDomain { @IsString() @IsNotEmpty() @@ -120,6 +173,55 @@ const findOrCreateTags = async ( return finalTags; }; + +/** + * @swagger + * + * /organizations/v2/{id}: + * put: + * description: Update a particular organization. + * parameters: + * - in: path + * name: id + * description: Organization id + * tags: + * - Organizations + */ + +export const updateV2 = wrapHandler(async (event) => { + // Get the organization id from the path + const id = event.pathParameters?.organizationId; + + // confirm that the id is a valid UUID + if (!id || !isUUID(id)) { + return NotFound; + } + + // TODO: check permissions + // if (!isOrgAdmin(event, id)) return Unauthorized; + + // Validate the body + const validatedBody = await validateBody( + UpdateOrganizationMetaV2, + event.body + ); + + // Connect to the database + await connectToDatabase(); + + // Update the organization + const updatedOrg = await Organization.update(id, validatedBody); + + // Handle response + if (updatedOrg) { + return { + statusCode: 200, + body: JSON.stringify(updatedOrg) + }; + } + return NotFound; +}); + /** * @swagger * From a90edf76a258338f9bc460c2ad21efd44fac2d4d Mon Sep 17 00:00:00 2001 From: nickviola Date: Mon, 13 Nov 2023 14:26:12 -0600 Subject: [PATCH 20/82] Adding new organizations api endpoint for updating in frontend --- .../src/pages/Organization/Organization.tsx | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/frontend/src/pages/Organization/Organization.tsx b/frontend/src/pages/Organization/Organization.tsx index 707b03a7c..831d17a66 100644 --- a/frontend/src/pages/Organization/Organization.tsx +++ b/frontend/src/pages/Organization/Organization.tsx @@ -354,6 +354,28 @@ export const Organization: React.FC = () => { } }; + const updateOrganizationV2 = async (body: any) => { + try { + const org = await apiPut('/organizations/v2/' + organization?.id, { + body: organization + }); + setOrganization(org); + setFeedbackMessage({ + message: 'Organization successfully updated', + type: 'success' + }); + } catch (e: any) { + setFeedbackMessage({ + message: + e.status === 422 + ? 'Error updating organization' + : e.message ?? e.toString(), + type: 'error' + }); + console.error(e); + } + }; + const updateScan = async (scan: Scan, enabled: boolean) => { try { if (!organization) return; From 8de8a7a3a57326ad8b6ef7e4b4b2303f173ec20a Mon Sep 17 00:00:00 2001 From: nickviola Date: Mon, 13 Nov 2023 15:13:42 -0600 Subject: [PATCH 21/82] Add regionId to organization schema and update isRegionalAdmin permissions for endpoints --- backend/src/api/app.ts | 10 ++++++++ backend/src/api/auth.ts | 9 +++++++ backend/src/api/organizations.ts | 41 +++++++++++++++++++++--------- backend/src/api/users.ts | 33 +++++++++++++++--------- backend/src/models/organization.ts | 5 ++++ 5 files changed, 74 insertions(+), 24 deletions(-) diff --git a/backend/src/api/app.ts b/backend/src/api/app.ts index 7de50c953..7520a72e2 100644 --- a/backend/src/api/app.ts +++ b/backend/src/api/app.ts @@ -313,6 +313,14 @@ authenticatedRoute.get( '/organizations/:organizationId', handlerToExpress(organizations.get) ); +authenticatedRoute.get( + '/organizations/state/:state', + handlerToExpress(organizations.getByState) +); +authenticatedRoute.get( + '/organizations/regionId/:regionId', + handlerToExpress(organizations.getByRegionId) +); authenticatedRoute.post( '/organizations', handlerToExpress(organizations.create) @@ -353,6 +361,8 @@ authenticatedRoute.post('/stats', handlerToExpress(stats.get)); authenticatedRoute.post('/users', handlerToExpress(users.invite)); authenticatedRoute.get('/users', handlerToExpress(users.list)); authenticatedRoute.delete('/users/:userId', handlerToExpress(users.del)); +authenticatedRoute.get('/users/state/:state', handlerToExpress(users.getByState)); +authenticatedRoute.get('/users/regionId/:regionId', handlerToExpress(users.getByRegionId)); authenticatedRoute.post('/users/search', handlerToExpress(users.search)); authenticatedRoute.post( diff --git a/backend/src/api/auth.ts b/backend/src/api/auth.ts index dbe3261b5..c4b280ebf 100644 --- a/backend/src/api/auth.ts +++ b/backend/src/api/auth.ts @@ -257,6 +257,15 @@ export const isGlobalViewAdmin = (event: APIGatewayProxyEvent) => { : false; }; +/** Check if a user has regionalAdmin view permissions */ +export const isRegionalAdmin = (event: APIGatewayProxyEvent) => { + return event.requestContext.authorizer && + (event.requestContext.authorizer.userType === UserType.REGIONAL_ADMIN || + event.requestContext.authorizer.userType === UserType.GLOBAL_ADMIN) + ? true + : false; +}; + /** Checks if the current user is allowed to access (modify) a user with id userId */ export const canAccessUser = (event: APIGatewayProxyEvent, userId?: string) => { return userId && (userId === getUserId(event) || isGlobalWriteAdmin(event)); diff --git a/backend/src/api/organizations.ts b/backend/src/api/organizations.ts index d71e29732..f1eed467c 100644 --- a/backend/src/api/organizations.ts +++ b/backend/src/api/organizations.ts @@ -22,6 +22,7 @@ import { validateBody, wrapHandler, NotFound, Unauthorized } from './helpers'; import { isOrgAdmin, isGlobalWriteAdmin, + isRegionalAdmin, getOrgMemberships, isGlobalViewAdmin } from './auth'; @@ -107,6 +108,11 @@ class UpdateOrganizationMetaV2 { @IsOptional() state: string; + @IsString() + @IsNotEmpty() + @IsOptional() + regionId: string; + @IsString() @IsNotEmpty() @IsOptional() @@ -189,6 +195,7 @@ const findOrCreateTags = async ( */ export const updateV2 = wrapHandler(async (event) => { + if (!isRegionalAdmin(event)) return Unauthorized; // Get the organization id from the path const id = event.pathParameters?.organizationId; @@ -739,15 +746,20 @@ export const removeRole = wrapHandler(async (event) => { * - Organizations */ export const getByRegionId = wrapHandler(async (event) => { - if (!isGlobalViewAdmin(event)) return Unauthorized; + if (!isRegionalAdmin(event)) return Unauthorized; + const regionId = event.pathParameters?.regionId; await connectToDatabase(); const result = await Organization.find({ - where: { regionId: event.pathParameters?.regionId } + where: { regionId: regionId } }); - return { - statusCode: 200, - body: JSON.stringify(result) - }; + + if (result) { + return { + statusCode: 200, + body: JSON.stringify(result) + }; + } + return NotFound; }); /** @@ -764,13 +776,18 @@ export const getByRegionId = wrapHandler(async (event) => { * - Organizations */ export const getByState = wrapHandler(async (event) => { - if (!isGlobalViewAdmin(event)) return Unauthorized; + if (!isRegionalAdmin(event)) return Unauthorized; + const state = event.pathParameters?.state; await connectToDatabase(); const result = await Organization.find({ - where: { state: event.pathParameters?.state } + where: { state: state } }); - return { - statusCode: 200, - body: JSON.stringify(result) - }; + + if (result) { + return { + statusCode: 200, + body: JSON.stringify(result) + }; + } + return NotFound; }); \ No newline at end of file diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index 0e15e45ee..b080d28d2 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -25,6 +25,7 @@ import { getUserId, canAccessUser, isGlobalViewAdmin, + isRegionalAdmin, isOrgAdmin, isGlobalWriteAdmin } from './auth'; @@ -400,15 +401,19 @@ export const search = wrapHandler(async (event) => { * - Users */ export const getByRegionId = wrapHandler(async (event) => { - if (!isGlobalViewAdmin(event)) return Unauthorized; + if (!isRegionalAdmin(event)) return Unauthorized; + const regionId = event.pathParameters?.regionId; await connectToDatabase(); const result = await User.find({ - where: { regionId: event.pathParameters?.regionId } + where: { regionId: regionId } }); - return { - statusCode: 200, - body: JSON.stringify(result) - }; + if (result) { + return { + statusCode: 200, + body: JSON.stringify(result) + }; + } + return NotFound; }); /** @@ -425,13 +430,17 @@ export const getByRegionId = wrapHandler(async (event) => { * - Users */ export const getByState = wrapHandler(async (event) => { - if (!isGlobalViewAdmin(event)) return Unauthorized; + if (!isRegionalAdmin(event)) return Unauthorized; + const state = event.pathParameters?.state; await connectToDatabase(); const result = await User.find({ - where: { state: event.pathParameters?.state } + where: { state: state } }); - return { - statusCode: 200, - body: JSON.stringify(result) - }; + if (result) { + return { + statusCode: 200, + body: JSON.stringify(result) + }; + } + return NotFound; }); \ No newline at end of file diff --git a/backend/src/models/organization.ts b/backend/src/models/organization.ts index 894b06f11..1bff2ed2b 100644 --- a/backend/src/models/organization.ts +++ b/backend/src/models/organization.ts @@ -122,6 +122,11 @@ export class Organization extends BaseEntity { }) state: string; + @Column({ + nullable: true + }) + regionId: string; + @Column({ nullable: true }) From e8867aa0a761f2901eaeb27438418ff96f6a32ad Mon Sep 17 00:00:00 2001 From: nickviola Date: Mon, 13 Nov 2023 15:55:12 -0600 Subject: [PATCH 22/82] Add regionId and state to validate body function --- backend/src/api/users.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index b080d28d2..855d630ed 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -158,6 +158,14 @@ class NewUser { @IsString() lastName: string; + @IsString() + @IsOptional() + state: string; + + @IsString() + @IsOptional() + regionId: string; + @IsEmail() @IsOptional() email: string; From 57a028407cca2f062fc81078b1e4ae1e6ceec2d4 Mon Sep 17 00:00:00 2001 From: Matthew <106278637+Matthew-Grayson@users.noreply.github.com> Date: Tue, 14 Nov 2023 09:02:10 -0600 Subject: [PATCH 23/82] Add log metric filters for EC2 shutdowns and 13 cloudwatch controls. (#2329) * Add log metric filters and alarms for remaining CloudWatch controls. * Fix log_metric_namespace definition in prod.tfvars. * Add system shutdown filter and alarm; refactor log metric names to be more descriptive. * Fix capitalization of tags for resources in cloudwatch.tf, log_alarms.tf, and sns.tf. * Add severity tag to alarms * Add alerts for db deletion and db shutdown. --- infrastructure/alarms.tf | 20 --- infrastructure/cloudwatch.tf | 8 +- infrastructure/log_alarms.tf | 268 ++++++++++++++++++++++++++++++++++ infrastructure/log_filters.tf | 203 +++++++++++++++++++++++++ infrastructure/prod.tfvars | 19 +++ infrastructure/sns.tf | 5 + infrastructure/stage.tfvars | 19 +++ infrastructure/vars.tf | 127 +++++++++++++++- 8 files changed, 641 insertions(+), 28 deletions(-) delete mode 100644 infrastructure/alarms.tf create mode 100644 infrastructure/log_alarms.tf create mode 100644 infrastructure/log_filters.tf diff --git a/infrastructure/alarms.tf b/infrastructure/alarms.tf deleted file mode 100644 index c654bbbc5..000000000 --- a/infrastructure/alarms.tf +++ /dev/null @@ -1,20 +0,0 @@ -resource "aws_cloudwatch_log_metric_filter" "cloudwatch1" { - log_group_name = var.cloudtrail_log_group_name - name = var.log_metric_name_cloudwatch1 - pattern = "{$.userIdentity.type=\"Root\" && $.userIdentity.invokedBy NOT EXISTS && $.eventType !=\"AwsServiceEvent\"}" - metric_transformation { - name = var.log_metric_name_cloudwatch1 - namespace = var.log_metric_namespace_cloudwatch - default_value = 0 - value = 1 - } -} - -resource "aws_cloudwatch_metric_alarm" "cloudwatch1" { - alarm_name = "${var.log_metric_name_cloudwatch1}-alarm" - metric_name = var.log_metric_name_cloudwatch1 - alarm_actions = [aws_sns_topic.alarms.arn] - comparison_operator = "GreaterThanOrEqualToThreshold" - evaluation_periods = 1 - threshold = 1 -} \ No newline at end of file diff --git a/infrastructure/cloudwatch.tf b/infrastructure/cloudwatch.tf index 83711d6fd..dd8fdb2d0 100644 --- a/infrastructure/cloudwatch.tf +++ b/infrastructure/cloudwatch.tf @@ -1,8 +1,8 @@ resource "aws_s3_bucket" "cloudwatch_bucket" { bucket = var.cloudwatch_bucket_name tags = { - project = var.project - stage = var.stage + Project = var.project + Stage = var.stage } } @@ -12,8 +12,8 @@ resource "aws_cloudwatch_log_group" "cloudwatch_bucket" { retention_in_days = 365 kms_key_id = aws_kms_key.key.arn tags = { - project = var.project - stage = var.stage + Project = var.project + Stage = var.stage } } diff --git a/infrastructure/log_alarms.tf b/infrastructure/log_alarms.tf new file mode 100644 index 000000000..9fd84dcf7 --- /dev/null +++ b/infrastructure/log_alarms.tf @@ -0,0 +1,268 @@ +resource "aws_cloudwatch_metric_alarm" "root_user" { + alarm_name = "${var.log_metric_root_user}-alarm" + metric_name = var.log_metric_root_user + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_high + } +} + +resource "aws_cloudwatch_metric_alarm" "unauthorized_api_call" { + alarm_name = "${var.log_metric_unauthorized_api_call}-alarm" + metric_name = var.log_metric_unauthorized_api_call + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_low + } +} + +resource "aws_cloudwatch_metric_alarm" "login_without_mfa" { + alarm_name = "${var.log_metric_login_without_mfa}-alarm" + metric_name = var.log_metric_login_without_mfa + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_high + } +} + +resource "aws_cloudwatch_metric_alarm" "iam_policy" { + alarm_name = "${var.log_metric_iam_policy}-alarm" + metric_name = var.log_metric_iam_policy + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_high + } +} + +resource "aws_cloudwatch_metric_alarm" "cloudtrail" { + alarm_name = "${var.log_metric_cloudtrail}-alarm" + metric_name = var.log_metric_cloudtrail + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_high + } +} + +resource "aws_cloudwatch_metric_alarm" "login_failure" { + alarm_name = "${var.log_metric_login_failure}-alarm" + metric_name = var.log_metric_login_failure + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_low + } +} + +resource "aws_cloudwatch_metric_alarm" "cmk_delete_disable" { + alarm_name = "${var.log_metric_cmk_delete_disable}-alarm" + metric_name = var.log_metric_cmk_delete_disable + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_critical + } +} + +resource "aws_cloudwatch_metric_alarm" "s3_bucket_policy" { + alarm_name = "${var.log_metric_s3_bucket_policy}-alarm" + metric_name = var.log_metric_s3_bucket_policy + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_high + } +} + +resource "aws_cloudwatch_metric_alarm" "aws_config" { + alarm_name = "${var.log_metric_aws_config}-alarm" + metric_name = var.log_metric_aws_config + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_high + } +} + +resource "aws_cloudwatch_metric_alarm" "security_group" { + alarm_name = "${var.log_metric_security_group}-alarm" + metric_name = var.log_metric_security_group + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_high + } +} + +resource "aws_cloudwatch_metric_alarm" "nacl" { + alarm_name = "${var.log_metric_nacl}-alarm" + metric_name = var.log_metric_nacl + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_high + } +} + +resource "aws_cloudwatch_metric_alarm" "network_gateway" { + alarm_name = "${var.log_metric_network_gateway}-alarm" + metric_name = var.log_metric_network_gateway + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_high + } +} + +resource "aws_cloudwatch_metric_alarm" "route_table" { + alarm_name = "${var.log_metric_route_table}-alarm" + metric_name = var.log_metric_route_table + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_high + } +} + +resource "aws_cloudwatch_metric_alarm" "vpc" { + alarm_name = "${var.log_metric_vpc}-alarm" + metric_name = var.log_metric_vpc + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_high + } +} + +resource "aws_cloudwatch_metric_alarm" "ec2_shutdown" { + alarm_name = "${var.log_metric_ec2_shutdown}-alarm" + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_critical + } +} + +resource "aws_cloudwatch_metric_alarm" "db_shutdown" { + alarm_name = "${var.log_metric_db_shutdown}-alarm" + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_critical + } +} + +resource "aws_cloudwatch_metric_alarm" "db_deletion" { + alarm_name = "${var.log_metric_db_deletion}-alarm" + alarm_actions = [aws_sns_topic.alarms.arn] + comparison_operator = "GreaterThanOrEqualToThreshold" + evaluation_periods = 1 + threshold = 1 + statistic = "SampleCount" + + tags = { + Project = var.project + Stage = var.stage + Severity = var.severity_critical + } +} \ No newline at end of file diff --git a/infrastructure/log_filters.tf b/infrastructure/log_filters.tf new file mode 100644 index 000000000..7c84e9614 --- /dev/null +++ b/infrastructure/log_filters.tf @@ -0,0 +1,203 @@ +resource "aws_cloudwatch_log_metric_filter" "root_user" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_root_user + pattern = "{$.userIdentity.type=\"Root\" && $.userIdentity.invokedBy NOT EXISTS && $.eventType !=\"AwsServiceEvent\"}" + metric_transformation { + name = var.log_metric_root_user + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "unauthorized_api_call" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_unauthorized_api_call + pattern = "{($.errorCode=\"*UnauthorizedOperation\") || ($.errorCode=\"AccessDenied*\")}" + metric_transformation { + name = var.log_metric_unauthorized_api_call + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "login_without_mfa" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_login_without_mfa + pattern = "{($.eventName=\"ConsoleLogin\") && ($.additionalEventData.MFAUsed !=\"Yes\") && ($.userIdentity.type=\"IAMUser\") && ($.responseElements.ConsoleLogin=\"Success\")}" + metric_transformation { + name = var.log_metric_login_without_mfa + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "iam_policy" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_iam_policy + pattern = "{($.eventSource=iam.amazonaws.com) && (($.eventName=DeleteGroupPolicy) || ($.eventName=DeleteRolePolicy) || ($.eventName=DeleteUserPolicy) || ($.eventName=PutGroupPolicy) || ($.eventName=PutRolePolicy) || ($.eventName=PutUserPolicy) || ($.eventName=CreatePolicy) || ($.eventName=DeletePolicy) || ($.eventName=CreatePolicyVersion) || ($.eventName=DeletePolicyVersion) || ($.eventName=AttachRolePolicy) || ($.eventName=DetachRolePolicy) || ($.eventName=AttachUserPolicy) || ($.eventName=DetachUserPolicy) || ($.eventName=AttachGroupPolicy) || ($.eventName=DetachGroupPolicy))}" + metric_transformation { + name = var.log_metric_iam_policy + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "cloudtrail" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_cloudtrail + pattern = "{($.eventName=CreateTrail) || ($.eventName=UpdateTrail) || ($.eventName=DeleteTrail) || ($.eventName=StartLogging) || ($.eventName=StopLogging)}" + metric_transformation { + name = var.log_metric_cloudtrail + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "login_failure" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_login_failure + pattern = "{($.eventName=ConsoleLogin) && ($.errorMessage=\"Failed authentication\")}" + metric_transformation { + name = var.log_metric_login_failure + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "cmk_delete_disable" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_cmk_delete_disable + pattern = "{($.eventSource=kms.amazonaws.com) && (($.eventName=DisableKey) || ($.eventName=ScheduleKeyDeletion))}" + metric_transformation { + name = var.log_metric_cmk_delete_disable + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "s3_bucket_policy" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_s3_bucket_policy + pattern = "{($.eventSource=s3.amazonaws.com) && (($.eventName=PutBucketAcl) || ($.eventName=PutBucketPolicy) || ($.eventName=PutBucketCors) || ($.eventName=PutBucketLifecycle) || ($.eventName=PutBucketReplication) || ($.eventName=DeleteBucketPolicy) || ($.eventName=DeleteBucketCors) || ($.eventName=DeleteBucketLifecycle) || ($.eventName=DeleteBucketReplication))}" + metric_transformation { + name = var.log_metric_s3_bucket_policy + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "aws_config" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_aws_config + pattern = "{($.eventSource=config.amazonaws.com) && (($.eventName=StopConfigurationRecorder) || ($.eventName=DeleteDeliveryChannel) || ($.eventName=PutDeliveryChannel) || ($.eventName=PutConfigurationRecorder))}" + metric_transformation { + name = var.log_metric_aws_config + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "security_group" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_security_group + pattern = "{($.eventName=AuthorizeSecurityGroupIngress) || ($.eventName=AuthorizeSecurityGroupEgress) || ($.eventName=RevokeSecurityGroupIngress) || ($.eventName=RevokeSecurityGroupEgress) || ($.eventName=CreateSecurityGroup) || ($.eventName=DeleteSecurityGroup)}" + metric_transformation { + name = var.log_metric_security_group + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "nacl" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_nacl + pattern = "{($.eventName=CreateNetworkAcl) || ($.eventName=CreateNetworkAclEntry) || ($.eventName=DeleteNetworkAcl) || ($.eventName=DeleteNetworkAclEntry) || ($.eventName=ReplaceNetworkAclEntry) || ($.eventName=ReplaceNetworkAclAssociation)}" + metric_transformation { + name = var.log_metric_nacl + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "network_gateway" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_network_gateway + pattern = "{($.eventName=CreateCustomerGateway) || ($.eventName=DeleteCustomerGateway) || ($.eventName=AttachInternetGateway) || ($.eventName=CreateInternetGateway) || ($.eventName=DeleteInternetGateway) || ($.eventName=DetachInternetGateway)}" + metric_transformation { + name = var.log_metric_network_gateway + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "route_table" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_route_table + pattern = "{($.eventSource=ec2.amazonaws.com) && (($.eventName=CreateRoute) || ($.eventName=CreateRouteTable) || ($.eventName=ReplaceRoute) || ($.eventName=ReplaceRouteTableAssociation) || ($.eventName=DeleteRouteTable) || ($.eventName=DeleteRoute) || ($.eventName=DisassociateRouteTable))}" + metric_transformation { + name = var.log_metric_route_table + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "vpc" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_vpc + pattern = "{($.eventName=CreateVpc) || ($.eventName=DeleteVpc) || ($.eventName=ModifyVpcAttribute) || ($.eventName=AcceptVpcPeeringConnection) || ($.eventName=CreateVpcPeeringConnection) || ($.eventName=DeleteVpcPeeringConnection) || ($.eventName=RejectVpcPeeringConnection) || ($.eventName=AttachClassicLinkVpc) || ($.eventName=DetachClassicLinkVpc) || ($.eventName=DisableVpcClassicLink) || ($.eventName=EnableVpcClassicLink)}" + metric_transformation { + name = var.log_metric_vpc + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "ec2_shutdown" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_ec2_shutdown + pattern = "{($.eventName=StopInstances) || ($.eventName=TerminateInstances)}" + metric_transformation { + name = var.log_metric_ec2_shutdown + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "db_shutdown" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_db_shutdown + pattern = "{$.eventName=StopDBInstance}" + metric_transformation { + name = var.log_metric_db_shutdown + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} + +resource "aws_cloudwatch_log_metric_filter" "db_deletion" { + log_group_name = var.cloudtrail_log_group_name + name = var.log_metric_db_deletion + pattern = "{$.eventName=DeleteDBInstance}" + metric_transformation { + name = var.log_metric_db_deletion + namespace = var.log_metric_namespace + default_value = 0 + value = 1 + } +} \ No newline at end of file diff --git a/infrastructure/prod.tfvars b/infrastructure/prod.tfvars index 03ed42db1..c6e1607b3 100644 --- a/infrastructure/prod.tfvars +++ b/infrastructure/prod.tfvars @@ -10,6 +10,25 @@ db_name = "crossfeed-prod-db2" db_port = 5432 db_table_name = "cfproddb" db_instance_class = "db.t3.2xlarge" +log_metric_namespace = "LogMetrics" +log_metric_root_user = "crossfeed-prod-RootUserAccess" +log_metric_unauthorized_api_call = "crossfeed-prod-UnauthorizedApiCall" +log_metric_login_without_mfa = "crossfeed-prod-ConsoleSignInWithoutMFA" +log_metric_iam_policy = "crossfeed-prod-IAMPolicyChange" +log_metric_cloudtrail = "crossfeed-prod-CloudTrailConfigurationChanges" +log_metric_login_failure = "crossfeed-prod-ConsoleLoginFailure" +log_metric_cmk_delete_disable = "crossfeed-prod-DisablingOrScheduledDeletionOfCMK" +log_metric_s3_bucket_policy = "crossfeed-prod-S3BucketPolicyChanges" +log_metric_aws_config = "crossfeed-prod-AWSConfigConfigurationChange" +log_metric_security_group = "crossfeed-prod-SecurityGroupChange" +log_metric_nacl = "crossfeed-prod-NACLChange" +log_metric_network_gateway = "crossfeed-prod-NetworkGatewayChange" +log_metric_route_table = "crossfeed-prod-RouteTableChange" +log_metric_vpc = "crossfeed-prod-VPCChange" +log_metric_ec2_shutdown = "crossfeed-prod-EC2Shutdown" +log_metric_db_shutdown = "crossfeed-prod-DBShutdown" +log_metric_db_deletion = "crossfeed-prod-DBDeletion" +sns_topic_alarms = "crossfeed-prod-cis-alarms" ssm_lambda_subnet = "/crossfeed/prod/SUBNET_ID" ssm_lambda_sg = "/crossfeed/prod/SG_ID" ssm_worker_subnet = "/crossfeed/prod/WORKER_SUBNET_ID" diff --git a/infrastructure/sns.tf b/infrastructure/sns.tf index cb0dd789b..9b1820c80 100644 --- a/infrastructure/sns.tf +++ b/infrastructure/sns.tf @@ -1,3 +1,8 @@ resource "aws_sns_topic" "alarms" { name = var.sns_topic_alarms + + tags = { + Project = var.project + Stage = var.stage + } } diff --git a/infrastructure/stage.tfvars b/infrastructure/stage.tfvars index 615feddbd..4fb8988b8 100644 --- a/infrastructure/stage.tfvars +++ b/infrastructure/stage.tfvars @@ -10,6 +10,25 @@ db_name = "crossfeed-stage-db" db_port = 5432 db_table_name = "cfstagingdb" db_instance_class = "db.t3.2xlarge" +log_metric_namespace = "LogMetrics" +log_metric_root_user = "crossfeed-staging-RootUserAccess" +log_metric_unauthorized_api_call = "crossfeed-staging-UnauthorizedApiCall" +log_metric_login_without_mfa = "crossfeed-staging-ConsoleSignInWithoutMFA" +log_metric_iam_policy = "crossfeed-staging-IAMPolicyChange" +log_metric_cloudtrail = "crossfeed-staging-CloudTrailConfigurationChanges" +log_metric_login_failure = "crossfeed-staging-ConsoleLoginFailure" +log_metric_cmk_delete_disable = "crossfeed-staging-DisablingOrScheduledDeletionOfCMK" +log_metric_s3_bucket_policy = "crossfeed-staging-S3BucketPolicyChanges" +log_metric_aws_config = "crossfeed-staging-AWSConfigConfigurationChange" +log_metric_security_group = "crossfeed-staging-SecurityGroupChange" +log_metric_nacl = "crossfeed-staging-NACLChange" +log_metric_network_gateway = "crossfeed-staging-NetworkGatewayChange" +log_metric_route_table = "crossfeed-staging-RouteTableChange" +log_metric_vpc = "crossfeed-staging-VPCChange" +log_metric_ec2_shutdown = "crossfeed-staging-EC2Shutdown" +log_metric_db_shutdown = "crossfeed-staging-DBShutdown" +log_metric_db_deletion = "crossfeed-staging-DBDeletion" +sns_topic_alarms = "crossfeed-staging-cis-alarms" ssm_lambda_subnet = "/crossfeed/staging/SUBNET_ID" ssm_lambda_sg = "/crossfeed/staging/SG_ID" ssm_worker_subnet = "/crossfeed/staging/WORKER_SUBNET_ID" diff --git a/infrastructure/vars.tf b/infrastructure/vars.tf index 4984d48dd..6ef316437 100644 --- a/infrastructure/vars.tf +++ b/infrastructure/vars.tf @@ -64,18 +64,114 @@ variable "frontend_cert_arn" { default = "arn:aws:acm:us-east-1:563873274798:certificate/7c6a5980-80e3-47a4-9f21-cbda44b6f34c" } -variable "log_metric_namespace_cloudwatch" { +variable "log_metric_namespace" { description = "log_metric_namespace" type = string - default = "crossfeed-staging-cloudwatch-controls" + default = "LogMetrics" } -variable "log_metric_name_cloudwatch1" { - description = "log_metric_filter_cloudwatch1" +variable "log_metric_root_user" { + description = "log_metric_filter_root_user" type = string default = "crossfeed-staging-RootUserAccess" } +variable "log_metric_unauthorized_api_call" { + description = "log_metric_filter_unauthorized_api_call" + type = string + default = "crossfeed-staging-UnauthorizedAPICall" +} + +variable "log_metric_login_without_mfa" { + description = "log_metric_filter_login_without_mfa" + type = string + default = "crossfeed-staging-ConsoleLoginWithoutMFA" +} + +variable "log_metric_iam_policy" { + description = "log_metric_filter_iam_policy" + type = string + default = "crossfeed-staging-IAMPolicyChange" +} + +variable "log_metric_cloudtrail" { + description = "log_metric_filter_cloudtrail" + type = string + default = "crossfeed-staging-CloudTrailConfigurationChange" +} + +variable "log_metric_login_failure" { + description = "log_metric_filter_login_failure" + type = string + default = "crossfeed-staging-ConsoleLoginFailure" +} + +variable "log_metric_cmk_delete_disable" { + description = "log_metric_filter_cmk_delete_disable" + type = string + default = "crossfeed-staging-DisablingOrScheduledDeletionOfCMK" +} + +variable "log_metric_s3_bucket_policy" { + description = "log_metric_filter_s3_bucket_policy" + type = string + default = "crossfeed-staging-S3BucketPolicyChange" +} + +variable "log_metric_aws_config" { + description = "log_metric_filter_aws_config" + type = string + default = "crossfeed-staging-AWSConfigConfigurationChange" +} + +variable "log_metric_security_group" { + description = "log_metric_filter_security_group" + type = string + default = "crossfeed-staging-SecurityGroupChange" +} + +variable "log_metric_nacl" { + description = "log_metric_filter_nacl" + type = string + default = "crossfeed-staging-NACLChange" +} + +variable "log_metric_network_gateway" { + description = "log_metric_filter_network_gateway" + type = string + default = "crossfeed-staging-NetworkGatewayChange" +} + +variable "log_metric_route_table" { + description = "log_metric_filter_route_table" + type = string + default = "crossfeed-staging-RouteTableChange" +} + +variable "log_metric_vpc" { + description = "log_metric_filter_vpc" + type = string + default = "crossfeed-staging-VPCChange" +} + +variable "log_metric_ec2_shutdown" { + description = "log_metric_filter_ec2_shutdown" + type = string + default = "crossfeed-staging-EC2Shutdown" +} + +variable "log_metric_db_shutdown" { + description = "log_metric_filter_DB_shutdown" + type = string + default = "crossfeed-staging-DBShutdown" +} + +variable "log_metric_db_deletion" { + description = "log_metric_filter_db_deletion" + type = string + default = "crossfeed-staging-DBDeletion" +} + variable "sns_topic_alarms" { description = "sns_alarm_topic_name" type = string @@ -454,6 +550,29 @@ variable "create_elk_instance" { default = false } +variable "severity_critical" { + description = "severity_critical" + type = string + default = "CRITICAL" +} + +variable "severity_high" { + description = "severity_high" + type = string + default = "HIGH" +} + +variable "severity_medium" { + description = "severity_medium" + type = string + default = "MEDIUM" +} + +variable "severity_low" { + description = "severity_low" + type = string + default = "LOW" +} variable "pe_worker_ecs_repository_name" { description = "pe_worker_ecs_repository_name" type = string From f9413e1edac9cf2bfa0e06ccd18d2ea2609add1e Mon Sep 17 00:00:00 2001 From: Matthew <106278637+Matthew-Grayson@users.noreply.github.com> Date: Tue, 14 Nov 2023 09:54:45 -0600 Subject: [PATCH 24/82] 2328 add log metric filtersalarms for aws cis benchmarks (#2382) * Add period fields and metric names where missing. --- infrastructure/log_alarms.tf | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/infrastructure/log_alarms.tf b/infrastructure/log_alarms.tf index 9fd84dcf7..7c4a0da73 100644 --- a/infrastructure/log_alarms.tf +++ b/infrastructure/log_alarms.tf @@ -4,6 +4,7 @@ resource "aws_cloudwatch_metric_alarm" "root_user" { alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -20,6 +21,7 @@ resource "aws_cloudwatch_metric_alarm" "unauthorized_api_call" { alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -36,6 +38,7 @@ resource "aws_cloudwatch_metric_alarm" "login_without_mfa" { alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -52,6 +55,7 @@ resource "aws_cloudwatch_metric_alarm" "iam_policy" { alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -68,6 +72,7 @@ resource "aws_cloudwatch_metric_alarm" "cloudtrail" { alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -84,6 +89,7 @@ resource "aws_cloudwatch_metric_alarm" "login_failure" { alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -100,6 +106,7 @@ resource "aws_cloudwatch_metric_alarm" "cmk_delete_disable" { alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -116,6 +123,7 @@ resource "aws_cloudwatch_metric_alarm" "s3_bucket_policy" { alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -132,6 +140,7 @@ resource "aws_cloudwatch_metric_alarm" "aws_config" { alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -148,6 +157,7 @@ resource "aws_cloudwatch_metric_alarm" "security_group" { alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -164,6 +174,7 @@ resource "aws_cloudwatch_metric_alarm" "nacl" { alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -180,6 +191,7 @@ resource "aws_cloudwatch_metric_alarm" "network_gateway" { alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -196,6 +208,7 @@ resource "aws_cloudwatch_metric_alarm" "route_table" { alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -212,6 +225,7 @@ resource "aws_cloudwatch_metric_alarm" "vpc" { alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -224,9 +238,11 @@ resource "aws_cloudwatch_metric_alarm" "vpc" { resource "aws_cloudwatch_metric_alarm" "ec2_shutdown" { alarm_name = "${var.log_metric_ec2_shutdown}-alarm" + metric_name = var.log_metric_ec2_shutdown alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -239,9 +255,11 @@ resource "aws_cloudwatch_metric_alarm" "ec2_shutdown" { resource "aws_cloudwatch_metric_alarm" "db_shutdown" { alarm_name = "${var.log_metric_db_shutdown}-alarm" + metric_name = var.log_metric_db_shutdown alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" @@ -254,9 +272,11 @@ resource "aws_cloudwatch_metric_alarm" "db_shutdown" { resource "aws_cloudwatch_metric_alarm" "db_deletion" { alarm_name = "${var.log_metric_db_deletion}-alarm" + metric_name = var.log_metric_db_deletion alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 + period = 60 threshold = 1 statistic = "SampleCount" From 9f3fbb103a5a5f6c9d706665b916472a2eff2fcb Mon Sep 17 00:00:00 2001 From: nickviola Date: Tue, 14 Nov 2023 09:56:53 -0600 Subject: [PATCH 25/82] Add build and rebuild scripts to save time in rebuilding backend changes --- build.sh | 3 +++ rebuild.sh | 1 + 2 files changed, 4 insertions(+) create mode 100755 build.sh create mode 100755 rebuild.sh diff --git a/build.sh b/build.sh new file mode 100755 index 000000000..c8e87c312 --- /dev/null +++ b/build.sh @@ -0,0 +1,3 @@ +docker-compose down --volumes --rmi all +cd backend && npm run build-worker && cd .. && npm start +cd backend && npm run syncdb && npm run syncdb -- -d populate \ No newline at end of file diff --git a/rebuild.sh b/rebuild.sh new file mode 100755 index 000000000..d41a5fae9 --- /dev/null +++ b/rebuild.sh @@ -0,0 +1 @@ +docker-compose up -d --build \ No newline at end of file From f0c7a1d6221575dae19ccfcc9eaf8dc12ab37683 Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Tue, 14 Nov 2023 11:14:19 -0600 Subject: [PATCH 26/82] Add HTML email delivery function to helpers.ts --- backend/src/api/helpers.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index fc2f3ac36..f32f43b16 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -96,3 +96,35 @@ export const sendEmail = async ( replyTo: process.env.CROSSFEED_SUPPORT_EMAIL_REPLYTO! }); }; + +export const sendTemplate = async ( + recepient: string , + subject: string, + template: string +) => { + const transporter = nodemailer.createTransport({ + SES: new SES({region: 'us-east-1'}) + }); + + var fs = require('fs'); + + fs.readFile(template, {encoding: 'utf-8'}, function(err, html){ + if (err) { + console.log(err); + } else { + var mailOptions = { + from: process.env.CROSSFEED_SUPPORT_EMAIL_SENDER!, + tp: recepient, + subject: subject, + html: html + }; + transporter.sendMail(mailOptions, function(error, info){ + if(error) { + console.log(error); + } else { + console.log('Email sent' + info.response); + } + }); + } + }); +}; \ No newline at end of file From a76ed900d59c7eba7dce9f0e9241d1b57699edd3 Mon Sep 17 00:00:00 2001 From: aloftus23 <79927030+aloftus23@users.noreply.github.com> Date: Tue, 14 Nov 2023 12:54:42 -0500 Subject: [PATCH 27/82] Remove reference to workerQueue in env.yml (#2381) --- backend/env.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/backend/env.yml b/backend/env.yml index 115246cef..92a7f6013 100644 --- a/backend/env.yml +++ b/backend/env.yml @@ -42,7 +42,6 @@ staging: PE_API_URL: ${ssm:/crossfeed/staging/PE_API_URL} REPORTS_BUCKET_NAME: cisa-crossfeed-staging-reports CLOUDWATCH_BUCKET_NAME: cisa-crossfeed-staging-cloudwatch - SQS_QUEUE_URL: { Ref: WorkerQueue } STAGE: staging PE_CLUSTER_NAME: pe-staging-worker SHODAN_QUEUE_URL: ${ssm:/crossfeed/staging/SHODAN_QUEUE_URL} @@ -83,7 +82,6 @@ prod: PE_API_URL: ${ssm:/crossfeed/staging/PE_API_URL} REPORTS_BUCKET_NAME: cisa-crossfeed-prod-reports CLOUDWATCH_BUCKET_NAME: cisa-crossfeed-prod-cloudwatch - SQS_QUEUE_URL: { Ref: WorkerQueue } STAGE: prod PE_CLUSTER_NAME: pe-prod-worker SHODAN_QUEUE_URL: ${ssm:/crossfeed/prod/SHODAN_QUEUE_URL} From 156afb62688bce114c937e535d75b02c4dbc2c24 Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Tue, 14 Nov 2023 16:27:06 -0500 Subject: [PATCH 28/82] Replace orgs test data with API data in RegionUsers.tsx --- .../src/pages/RegionUsers/RegionUsers.tsx | 64 +++++++++++++------ 1 file changed, 43 insertions(+), 21 deletions(-) diff --git a/frontend/src/pages/RegionUsers/RegionUsers.tsx b/frontend/src/pages/RegionUsers/RegionUsers.tsx index 7df08fba6..cdb86af6e 100644 --- a/frontend/src/pages/RegionUsers/RegionUsers.tsx +++ b/frontend/src/pages/RegionUsers/RegionUsers.tsx @@ -1,15 +1,10 @@ -import React, { useState } from 'react'; -import { initializeUser, User } from 'types'; -import { testUsers, testOrganizations } from './testData'; +import React, { useState, useEffect, useCallback } from 'react'; +import { initializeUser, User, Organization as OrganizationType } from 'types'; +import { testUsers } from './testData'; import ConfirmDialog from 'components/Dialog/ConfirmDialog'; import InfoDialog from 'components/Dialog/InfoDialog'; -import { - // Alert, - Box, - Button, - Stack, - Typography -} from '@mui/material'; +import { useAuthContext } from 'context'; +import { Alert, Box, Button, Stack, Typography } from '@mui/material'; import { DataGrid, GridColDef, @@ -34,7 +29,16 @@ type DialogStates = { isInfoDialogOpen: boolean; }; +type ErrorStates = { + getOrgsError: string; + getUsersError: string; + updateUserError: string; +}; + +type CloseReason = 'backdropClick' | 'escapeKeyDown' | 'closeButtonClick'; + export const RegionUsers: React.FC = () => { + const { apiGet } = useAuthContext(); const pendingCols: GridColDef[] = [ { field: 'fullName', headerName: 'Name', minWidth: 100, flex: 1 }, { field: 'email', headerName: 'Email', minWidth: 100, flex: 2 }, @@ -87,7 +91,7 @@ export const RegionUsers: React.FC = () => { const orgCols: GridColDef[] = [ { field: 'name', headerName: 'Name', minWidth: 100, flex: 2 }, { field: 'updatedAt', headerName: 'Updated At', minWidth: 100, flex: 1 }, - { field: 'members', headerName: 'Members', minWidth: 100, flex: 1 } + { field: 'stateName', headerName: 'State', minWidth: 100, flex: 1 } ]; const [dialogStates, setDialogStates] = useState({ isOrgDialogOpen: false, @@ -95,12 +99,29 @@ export const RegionUsers: React.FC = () => { isApproveDialogOpen: false, isInfoDialogOpen: false }); + const [errorStates, setErrorStates] = useState({ + getOrgsError: '', + getUsersError: '', + updateUserError: '' + }); const [selectedUser, selectUser] = useState(initializeUser); - // const [apiError, setApiError] = useState<[boolean, string]>([false, '']); - const [selectedOrgRows, selectOrgRows] = - React.useState([]); + const [selectedOrgRows, selectOrgRows] = useState([]); + const [organizations, setOrganizations] = useState([]); + const orgURL = '/organizations/regionId/'; + + const fetchOrganizations = useCallback(async () => { + try { + const rows = await apiGet(orgURL + '1'); + setOrganizations(rows); + setErrorStates({ ...errorStates, getOrgsError: '' }); + } catch (e: any) { + setErrorStates({ ...errorStates, getOrgsError: e.message }); + } + }, [apiGet]); - type CloseReason = 'backdropClick' | 'escapeKeyDown' | 'closeButtonClick'; + useEffect(() => { + fetchOrganizations(); + }, [apiGet, fetchOrganizations]); // TODO: Update selectedUser with invitePending as false and add selected organizations. const handleSubmitClick = (value: CloseReason) => { @@ -163,6 +184,7 @@ export const RegionUsers: React.FC = () => { isInfoDialogOpen: true })); }; + return ( { selectOrgRows(newRowSelectionModel); }} rowSelectionModel={selectedOrgRows} - rows={testOrganizations} + rows={organizations} columns={orgCols} slots={{ toolbar: GridToolbar }} slotProps={{ @@ -228,11 +250,11 @@ export const RegionUsers: React.FC = () => { }} /> - {/* {apiError[0] && ( - - {apiError[1]}: Unable to add this user to the database. - - )} */} + {errorStates.getOrgsError && ( + + Error retrieving organizations: {errorStates.getOrgsError} + + )} } disabled={selectedOrgRows.length === 0 ? true : false} From 0c89ec18a73d92505266f2187093756089fa952d Mon Sep 17 00:00:00 2001 From: nickviola Date: Tue, 14 Nov 2023 15:34:37 -0600 Subject: [PATCH 29/82] Update test organiation data to include regionId and state --- backend/src/tasks/syncdb.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/backend/src/tasks/syncdb.ts b/backend/src/tasks/syncdb.ts index 4420065f4..ccc9d6d7e 100644 --- a/backend/src/tasks/syncdb.ts +++ b/backend/src/tasks/syncdb.ts @@ -24,6 +24,16 @@ const NUM_SAMPLE_ORGS = 10; // Number of sample orgs const NUM_SAMPLE_DOMAINS = 10; // Number of sample domains per org const PROB_SAMPLE_SERVICES = 0.5; // Higher number means more services per domain const PROB_SAMPLE_VULNERABILITIES = 0.5; // Higher number means more vulnerabilities per domain +const SAMPLE_STATES = [ + "VA", + "CA", + "CO" +] +const SAMPLE_REGIONIDS = [ + "1", + "2", + "3" +] export const handler: Handler = async (event) => { const connection = await connectToDatabase(false); @@ -78,7 +88,9 @@ export const handler: Handler = async (event) => { rootDomains: ['crossfeed.local'], ipBlocks: [], isPassive: false, - tags: [tag] + tags: [tag], + state: SAMPLE_STATES[Math.floor(Math.random() * SAMPLE_STATES.length)], + regionId: SAMPLE_REGIONIDS[Math.floor(Math.random() * SAMPLE_REGIONIDS.length)], }).save(); console.log(organization.name); organizationIds.push(organization.id); From 9f16a3dc10c65a150ace275148f5547422f925ac Mon Sep 17 00:00:00 2001 From: nickviola Date: Tue, 14 Nov 2023 15:35:44 -0600 Subject: [PATCH 30/82] Add new v2 endpoints for orgs and users and add query filters for new get endpoints --- backend/src/api/app.ts | 23 +++- backend/src/api/organizations.ts | 168 +++++++++++++++---------- backend/src/api/users.ts | 204 ++++++++++++++++++++++++++----- 3 files changed, 296 insertions(+), 99 deletions(-) diff --git a/backend/src/api/app.ts b/backend/src/api/app.ts index 7520a72e2..677256958 100644 --- a/backend/src/api/app.ts +++ b/backend/src/api/app.ts @@ -329,10 +329,6 @@ authenticatedRoute.put( '/organizations/:organizationId', handlerToExpress(organizations.update) ); -authenticatedRoute.put( - '/organizations/v2/:organizationId', - handlerToExpress(organizations.updateV2) -); authenticatedRoute.delete( '/organizations/:organizationId', handlerToExpress(organizations.del) @@ -375,6 +371,25 @@ authenticatedRoute.post( handlerToExpress(reports.list_reports) ); +//************* */ +// V2 Routes // +//************* */ + +// Users +authenticatedRoute.put('/v2/users/:userId', handlerToExpress(users.updateV2)); +authenticatedRoute.get('/v2/users', handlerToExpress(users.getAllV2)); + +// Organizations +authenticatedRoute.put( + '/v2/organizations/:organizationId', + handlerToExpress(organizations.updateV2) +); +authenticatedRoute.get( + '/v2/organizations', + handlerToExpress(organizations.getAllV2) +); + + app.use(authenticatedRoute); export default app; diff --git a/backend/src/api/organizations.ts b/backend/src/api/organizations.ts index f1eed467c..08c6845a9 100644 --- a/backend/src/api/organizations.ts +++ b/backend/src/api/organizations.ts @@ -179,56 +179,6 @@ const findOrCreateTags = async ( return finalTags; }; - -/** - * @swagger - * - * /organizations/v2/{id}: - * put: - * description: Update a particular organization. - * parameters: - * - in: path - * name: id - * description: Organization id - * tags: - * - Organizations - */ - -export const updateV2 = wrapHandler(async (event) => { - if (!isRegionalAdmin(event)) return Unauthorized; - // Get the organization id from the path - const id = event.pathParameters?.organizationId; - - // confirm that the id is a valid UUID - if (!id || !isUUID(id)) { - return NotFound; - } - - // TODO: check permissions - // if (!isOrgAdmin(event, id)) return Unauthorized; - - // Validate the body - const validatedBody = await validateBody( - UpdateOrganizationMetaV2, - event.body - ); - - // Connect to the database - await connectToDatabase(); - - // Update the organization - const updatedOrg = await Organization.update(id, validatedBody); - - // Handle response - if (updatedOrg) { - return { - statusCode: 200, - body: JSON.stringify(updatedOrg) - }; - } - return NotFound; -}); - /** * @swagger * @@ -340,19 +290,6 @@ export const create = wrapHandler(async (event) => { * description: List organizations that the user is a member of or has access to. * tags: * - Organizations - * parameters: - * - in: query - * name: state - * schema: - * type: array - * items: - * type: string - * - in: query - * name: regionId - * schema: - * type: array - * items: - * type: string */ export const list = wrapHandler(async (event) => { if (!isGlobalViewAdmin(event) && getOrgMemberships(event).length === 0) { @@ -790,4 +727,109 @@ export const getByState = wrapHandler(async (event) => { }; } return NotFound; +}); + +// V2 Endpoints + +/** + * @swagger + * + * /v2/organizations: + * get: + * description: List all organizations with query parameters. + * tags: + * - Users + * parameters: + * - in: query + * name: state + * required: false + * schema: + * type: array + * items: + * type: string + * - in: query + * name: regionId + * required: false + * schema: + * type: array + * items: + * type: string + * + */ +export const getAllV2 = wrapHandler(async (event) => { + if (!isRegionalAdmin(event)) return Unauthorized; + + const filterParams = {} + + if (event.query && event.query.state) { + filterParams["state"] = event.query.state; + } + if (event.query && event.query.regionId) { + filterParams["regionId"] = event.query.regionId; + } + + await connectToDatabase(); + if (Object.entries(filterParams).length === 0) { + const result = await Organization.find({}); + return { + statusCode: 200, + body: JSON.stringify(result) + } + } else { + const result = await Organization.find({where: filterParams}); + return { + statusCode: 200, + body: JSON.stringify(result) + }; + } +}); + +/** + * @swagger + * + * /v2/organizations/{id}: + * put: + * description: Update a particular organization. + * parameters: + * - in: path + * name: id + * description: Organization id + * tags: + * - Organizations + */ + +export const updateV2 = wrapHandler(async (event) => { + if (!isRegionalAdmin(event)) return Unauthorized; + // Get the organization id from the path + const id = event.pathParameters?.organizationId; + + // confirm that the id is a valid UUID + if (!id || !isUUID(id)) { + return NotFound; + } + + // TODO: check permissions + // if (!isOrgAdmin(event, id)) return Unauthorized; + + // Validate the body + const validatedBody = await validateBody( + UpdateOrganizationMetaV2, + event.body + ); + + // Connect to the database + await connectToDatabase(); + + // Update the organization + const updateResp = await Organization.update(id, validatedBody); + + // Handle response + if (updateResp) { + const updatedOrg = await Organization.findOne(id); + return { + statusCode: 200, + body: JSON.stringify(updatedOrg) + }; + } + return NotFound; }); \ No newline at end of file diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index 855d630ed..bb28994ca 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -47,7 +47,9 @@ class UserSearch { 'userType', 'dateAcceptedTerms', 'lastLoggedIn', - 'acceptedTermsVersion' + 'acceptedTermsVersion', + 'state', + 'regionId' ]) @IsOptional() sort: string = 'fullName'; @@ -75,6 +77,57 @@ class UserSearch { } } +class NewUser { + @IsString() + firstName: string; + + @IsString() + lastName: string; + + @IsString() + @IsOptional() + state: string; + + @IsString() + @IsOptional() + regionId: string; + + @IsEmail() + @IsOptional() + email: string; + + @IsString() + @IsOptional() + organization: string; + + @IsBoolean() + @IsOptional() + organizationAdmin: string; + + @IsEnum(UserType) + @IsOptional() + userType: UserType; +} + +class UpdateUser { + @IsString() + @IsOptional() + state: string; + + @IsString() + @IsOptional() + regionId: string; + + @IsBoolean() + @IsOptional() + invitePending: boolean; + + @IsEnum(UserType) + @IsOptional() + userType: UserType; + +} + /** * @swagger * @@ -151,37 +204,6 @@ export const update = wrapHandler(async (event) => { return NotFound; }); -class NewUser { - @IsString() - firstName: string; - - @IsString() - lastName: string; - - @IsString() - @IsOptional() - state: string; - - @IsString() - @IsOptional() - regionId: string; - - @IsEmail() - @IsOptional() - email: string; - - @IsString() - @IsOptional() - organization: string; - - @IsBoolean() - @IsOptional() - organizationAdmin: string; - - @IsEnum(UserType) - @IsOptional() - userType: UserType; -} const sendInviteEmail = async (email: string, organization?: Organization) => { const staging = process.env.NODE_ENV !== 'production'; @@ -362,6 +384,7 @@ export const acceptTerms = wrapHandler(async (event) => { * description: List users. * tags: * - Users + * */ export const list = wrapHandler(async (event) => { if (!isGlobalViewAdmin(event)) return Unauthorized; @@ -424,6 +447,7 @@ export const getByRegionId = wrapHandler(async (event) => { return NotFound; }); + /** * @swagger * @@ -451,4 +475,120 @@ export const getByState = wrapHandler(async (event) => { }; } return NotFound; +}); + + +// V2 Endpoints + +/** + * @swagger + * + * /v2/users: + * get: + * description: List all users with query parameters. + * tags: + * - Users + * parameters: + * - in: query + * name: state + * required: false + * schema: + * type: array + * items: + * type: string + * - in: query + * name: regionId + * required: false + * schema: + * type: array + * items: + * type: string + * - in: query + * name: invitePending + * required: false + * schema: + * type: array + * items: + * type: string + * + */ +export const getAllV2 = wrapHandler(async (event) => { + if (!isRegionalAdmin(event)) return Unauthorized; + + const filterParams = {} + + if (event.query && event.query.state) { + filterParams["state"] = event.query.state; + } + if (event.query && event.query.regionId) { + filterParams["regionId"] = event.query.regionId; + } + if (event.query && event.query.invitePending) { + filterParams["invitePending"] = event.query.invitePending; + } + + await connectToDatabase(); + if (Object.entries(filterParams).length === 0) { + const result = await User.find({}); + return { + statusCode: 200, + body: JSON.stringify(result) + } + } else { + const result = await User.find({where: filterParams}); + return { + statusCode: 200, + body: JSON.stringify(result) + }; + } +}); + + +/** + * @swagger + * + * /v2/users/{id}: + * put: + * description: Update a particular user. + * parameters: + * - in: path + * name: id + * description: User id + * tags: + * - Users + */ +export const updateV2 = wrapHandler(async (event) => { + if (!isRegionalAdmin(event)) return Unauthorized; + // Get the user id from the path + const id = event.pathParameters?.userId; + + // confirm that the id is a valid UUID + if (!id || !isUUID(id)) { + return NotFound; + } + + // TODO: check permissions + // if (!isOrgAdmin(event, id)) return Unauthorized; + + // Validate the body + const validatedBody = await validateBody( + UpdateUser, + event.body + ); + + // Connect to the database + await connectToDatabase(); + + // Update the user + const updatedResp = await User.update(id, validatedBody); + + // Handle response + if (updatedResp) { + const updatedOrg = await User.findOne(id); + return { + statusCode: 200, + body: JSON.stringify(updatedOrg) + }; + } + return NotFound; }); \ No newline at end of file From 90b3a64294dbb2db990acc28d0a7b07b365463c0 Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Tue, 14 Nov 2023 16:41:42 -0600 Subject: [PATCH 31/82] Add sendNotificationEmail() to helpers.tst. --- backend/src/api/helpers.ts | 68 +++++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 27 deletions(-) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index f32f43b16..fe7713ad3 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -9,6 +9,9 @@ import { ClassType } from 'class-transformer/ClassTransformer'; import { plainToClass } from 'class-transformer'; import { SES } from 'aws-sdk'; import * as nodemailer from 'nodemailer'; +import { readFile }from 'fs' +import { compile } from 'handlebars'; +import { promisify } from 'util'; export const validateBody = async ( obj: ClassType, @@ -82,7 +85,8 @@ export const Unauthorized: APIGatewayProxyResult = { export const sendEmail = async ( recipient: string, subject: string, - body: string + body: string, + html: string ) => { const transporter = nodemailer.createTransport({ SES: new SES({ region: 'us-east-1' }) @@ -93,38 +97,48 @@ export const sendEmail = async ( to: recipient, subject: subject, text: body, + html: html replyTo: process.env.CROSSFEED_SUPPORT_EMAIL_REPLYTO! }); }; -export const sendTemplate = async ( - recepient: string , +export const sendNotificationEmail = async ( + recepient: string, subject: string, - template: string + p_email: string, + p_firstName: string, + p_lastname: string, ) => { - const transporter = nodemailer.createTransport({ - SES: new SES({region: 'us-east-1'}) - }); - var fs = require('fs'); + const transporter = nodemailer.createTransport({ + SES: new SES({ region: 'us-east-1' }) + }); + const readFile = promisify(fs.readFile); - fs.readFile(template, {encoding: 'utf-8'}, function(err, html){ - if (err) { - console.log(err); - } else { - var mailOptions = { - from: process.env.CROSSFEED_SUPPORT_EMAIL_SENDER!, - tp: recepient, - subject: subject, - html: html - }; - transporter.sendMail(mailOptions, function(error, info){ - if(error) { - console.log(error); - } else { - console.log('Email sent' + info.response); - } - }); + html = await readFile('../../email_templates/template.html', 'utf8'); + template = handlebars.compile(html); + data = { + email: p_email, + firstName: p_firstName, + lastName: p_lastname } - }); -}; \ No newline at end of file + + htmlToSend = template(data); + + mailOptions = { + from: process.env.CROSSFEED_SUPPORT_EMAIL_SENDER, + to: recepient, + subject: subject, + html: htmlToSend, + attachments: [{ + filename: '../../email_templates/img/example.png', + path: __dirname + 'example.png', + cid: 'example' + }] + }; + + nodemailer.sendMail(mailOptions, (error, info) => { + if (error) console.log(error); + }) +}; + From f8e0c19c681e7ae309d1092eaaf3b4519d671e17 Mon Sep 17 00:00:00 2001 From: Matthew <106278637+Matthew-Grayson@users.noreply.github.com> Date: Wed, 15 Nov 2023 09:20:20 -0600 Subject: [PATCH 32/82] 2328 add log metric filtersalarms for aws cis benchmarks (#2384) * Add namespace to alarms. --- infrastructure/log_alarms.tf | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/infrastructure/log_alarms.tf b/infrastructure/log_alarms.tf index 7c4a0da73..fd0456545 100644 --- a/infrastructure/log_alarms.tf +++ b/infrastructure/log_alarms.tf @@ -1,6 +1,7 @@ resource "aws_cloudwatch_metric_alarm" "root_user" { alarm_name = "${var.log_metric_root_user}-alarm" metric_name = var.log_metric_root_user + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -18,6 +19,7 @@ resource "aws_cloudwatch_metric_alarm" "root_user" { resource "aws_cloudwatch_metric_alarm" "unauthorized_api_call" { alarm_name = "${var.log_metric_unauthorized_api_call}-alarm" metric_name = var.log_metric_unauthorized_api_call + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -35,6 +37,7 @@ resource "aws_cloudwatch_metric_alarm" "unauthorized_api_call" { resource "aws_cloudwatch_metric_alarm" "login_without_mfa" { alarm_name = "${var.log_metric_login_without_mfa}-alarm" metric_name = var.log_metric_login_without_mfa + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -52,6 +55,7 @@ resource "aws_cloudwatch_metric_alarm" "login_without_mfa" { resource "aws_cloudwatch_metric_alarm" "iam_policy" { alarm_name = "${var.log_metric_iam_policy}-alarm" metric_name = var.log_metric_iam_policy + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -69,6 +73,7 @@ resource "aws_cloudwatch_metric_alarm" "iam_policy" { resource "aws_cloudwatch_metric_alarm" "cloudtrail" { alarm_name = "${var.log_metric_cloudtrail}-alarm" metric_name = var.log_metric_cloudtrail + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -86,6 +91,7 @@ resource "aws_cloudwatch_metric_alarm" "cloudtrail" { resource "aws_cloudwatch_metric_alarm" "login_failure" { alarm_name = "${var.log_metric_login_failure}-alarm" metric_name = var.log_metric_login_failure + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -103,6 +109,7 @@ resource "aws_cloudwatch_metric_alarm" "login_failure" { resource "aws_cloudwatch_metric_alarm" "cmk_delete_disable" { alarm_name = "${var.log_metric_cmk_delete_disable}-alarm" metric_name = var.log_metric_cmk_delete_disable + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -120,6 +127,7 @@ resource "aws_cloudwatch_metric_alarm" "cmk_delete_disable" { resource "aws_cloudwatch_metric_alarm" "s3_bucket_policy" { alarm_name = "${var.log_metric_s3_bucket_policy}-alarm" metric_name = var.log_metric_s3_bucket_policy + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -137,6 +145,7 @@ resource "aws_cloudwatch_metric_alarm" "s3_bucket_policy" { resource "aws_cloudwatch_metric_alarm" "aws_config" { alarm_name = "${var.log_metric_aws_config}-alarm" metric_name = var.log_metric_aws_config + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -154,6 +163,7 @@ resource "aws_cloudwatch_metric_alarm" "aws_config" { resource "aws_cloudwatch_metric_alarm" "security_group" { alarm_name = "${var.log_metric_security_group}-alarm" metric_name = var.log_metric_security_group + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -171,6 +181,7 @@ resource "aws_cloudwatch_metric_alarm" "security_group" { resource "aws_cloudwatch_metric_alarm" "nacl" { alarm_name = "${var.log_metric_nacl}-alarm" metric_name = var.log_metric_nacl + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -188,6 +199,7 @@ resource "aws_cloudwatch_metric_alarm" "nacl" { resource "aws_cloudwatch_metric_alarm" "network_gateway" { alarm_name = "${var.log_metric_network_gateway}-alarm" metric_name = var.log_metric_network_gateway + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -205,6 +217,7 @@ resource "aws_cloudwatch_metric_alarm" "network_gateway" { resource "aws_cloudwatch_metric_alarm" "route_table" { alarm_name = "${var.log_metric_route_table}-alarm" metric_name = var.log_metric_route_table + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -222,6 +235,7 @@ resource "aws_cloudwatch_metric_alarm" "route_table" { resource "aws_cloudwatch_metric_alarm" "vpc" { alarm_name = "${var.log_metric_vpc}-alarm" metric_name = var.log_metric_vpc + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -239,6 +253,7 @@ resource "aws_cloudwatch_metric_alarm" "vpc" { resource "aws_cloudwatch_metric_alarm" "ec2_shutdown" { alarm_name = "${var.log_metric_ec2_shutdown}-alarm" metric_name = var.log_metric_ec2_shutdown + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -256,6 +271,7 @@ resource "aws_cloudwatch_metric_alarm" "ec2_shutdown" { resource "aws_cloudwatch_metric_alarm" "db_shutdown" { alarm_name = "${var.log_metric_db_shutdown}-alarm" metric_name = var.log_metric_db_shutdown + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 @@ -273,6 +289,7 @@ resource "aws_cloudwatch_metric_alarm" "db_shutdown" { resource "aws_cloudwatch_metric_alarm" "db_deletion" { alarm_name = "${var.log_metric_db_deletion}-alarm" metric_name = var.log_metric_db_deletion + namespace = var.log_metric_namespace alarm_actions = [aws_sns_topic.alarms.arn] comparison_operator = "GreaterThanOrEqualToThreshold" evaluation_periods = 1 From 09b539a9d31e08bc6c6617e23598d91e63296680 Mon Sep 17 00:00:00 2001 From: nickviola Date: Wed, 15 Nov 2023 10:02:08 -0600 Subject: [PATCH 33/82] Add user register endpoint for new user registrations. --- backend/src/api/app.ts | 1 + backend/src/api/users.ts | 120 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 120 insertions(+), 1 deletion(-) diff --git a/backend/src/api/app.ts b/backend/src/api/app.ts index 677256958..4f5ade258 100644 --- a/backend/src/api/app.ts +++ b/backend/src/api/app.ts @@ -227,6 +227,7 @@ app.use( const authenticatedNoTermsRoute = express.Router(); authenticatedNoTermsRoute.use(checkUserLoggedIn); authenticatedNoTermsRoute.get('/users/me', handlerToExpress(users.me)); +authenticatedNoTermsRoute.post('/users/register', handlerToExpress(users.register)); authenticatedNoTermsRoute.post( '/users/me/acceptTerms', handlerToExpress(users.acceptTerms) diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index bb28994ca..3bbc840e0 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -31,6 +31,7 @@ import { } from './auth'; import { Type, plainToClass } from 'class-transformer'; import { IsNull } from 'typeorm'; +import { create } from './organizations'; class UserSearch { @IsInt() @@ -109,6 +110,7 @@ class NewUser { userType: UserType; } + class UpdateUser { @IsString() @IsOptional() @@ -128,6 +130,69 @@ class UpdateUser { } + +const REGION_STATE_MAP = { + "Connecticut": "1", + "Maine": "1", + "Massachusetts": "1", + "New Hampshire": "1", + "Rhode Island": "1", + "Vermont": "1", + "New Jersey": "2", + "New York": "2", + "Puerto Rico": "2", + "Virgin Islands": "2", + "Delaware": "3", + "Maryland": "3", + "Pennsylvania": "3", + "Virginia": "3", + "District of Columbia": "3", + "West Virginia": "3", + "Alabama": "4", + "Florida": "4", + "Georgia": "4", + "Kentucky": "4", + "Mississippi": "4", + "North Carolina": "4", + "South Carolina": "4", + "Tennessee": "4", + "Illinois": "5", + "Indiana": "5", + "Michigan": "5", + "Minnesota": "5", + "Ohio": "5", + "Wisconsin": "5", + "Arkansas": "6", + "Louisiana": "6", + "New Mexico": "6", + "Oklahoma": "6", + "Texas": "6", + "Iowa": "7", + "Kansas": "7", + "Missouri": "7", + "Nebraska": "7", + "Colorado": "8", + "Montana": "8", + "North Dakota": "8", + "South Dakota": "8", + "Utah": "8", + "Wyoming": "8", + "Arizona": "9", + "California": "9", + "Hawaii": "9", + "Nevada": "9", + "Guam": "9", + "American Samoa": "9", + "Commonwealth Northern Mariana Islands": "9", + "Republic of Marshall Islands": "9", + "Federal States of Micronesia": "9", + "Alaska": "10", + "Idaho": "10", + "Oregon": "10", + "Washington": "10" +} + + /** * @swagger * @@ -478,7 +543,60 @@ export const getByState = wrapHandler(async (event) => { }); -// V2 Endpoints +/** + * @swagger + * + * /users/register: + * post: + * description: New user registration. + * tags: + * - Users + */ +export const register = wrapHandler(async (event) => { + const body = await validateBody(NewUser, event.body); + + const newUser = { + "firstName": body.firstName, + "lastName": body.lastName, + "email": body.email.toLowerCase(), + "userType": UserType.STANDARD, + "state": body.state, + "regionId": REGION_STATE_MAP[body.state], + "invitePending": true, + } + + await connectToDatabase(); + + // Check if user already exists by email + let user = await User.findOne({ + email: body.email.toLowerCase() + }); + let id = ""; + // Crreate if user does not exist + if (!user) { + const createdUser = await User.create(newUser); + await User.save(createdUser); + id = createdUser.id; + + // Send Registration confirmation emailto user + // TODO: replace with html email function to user + + // Send new user pending approval email to regionalAdmin + // TODO: replace with html email function to regianlAdmin + } + + const savedUser = await User.findOne({ id: id },); + + return { + statusCode: 200, + body: JSON.stringify(savedUser) + }; +}); + + +//***************// +// V2 Endpoints // +//***************// /** * @swagger From 66208c9284c00eaff85004d675198eef98234afb Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Wed, 15 Nov 2023 13:37:42 -0600 Subject: [PATCH 34/82] Fix compile errors in helpers.ts, add new dependencies. --- backend/package-lock.json | 1679 ++++++++++++++++++++++++++++-------- backend/package.json | 1 + backend/src/api/helpers.ts | 60 +- 3 files changed, 1354 insertions(+), 386 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index 46ac1a920..deed41902 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -25,6 +25,7 @@ "express": "^4.18.1", "global-agent": "^2.2.0", "got": "^11.8.5", + "handlebars": "^4.7.8", "helmet": "^4.1.1", "http-proxy-middleware": "^2.0.6", "jsdom": "^22.1", @@ -387,47 +388,50 @@ } }, "node_modules/@aws-sdk/client-cloudformation": { - "version": "3.398.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudformation/-/client-cloudformation-3.398.0.tgz", - "integrity": "sha512-NQAjm0FYmmMT9jn7y2kYpa5MtANwe2c+65IJATXCJC9YqmDxDveZce6YmOpZ3Qflf7Z1J2A7rYAwo0qO35/Zcg==", + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudformation/-/client-cloudformation-3.451.0.tgz", + "integrity": "sha512-rc8MWRsWA1OgOq/hASLONtVTEbRggjf8VFYmW7UdL1g+oRQoDFWEWPv7kW5868UTpS6SmHdjCrXP8YREtR4ZSQ==", "dev": true, "dependencies": { "@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-js": "3.0.0", - "@aws-sdk/client-sts": "3.398.0", - "@aws-sdk/credential-provider-node": "3.398.0", - "@aws-sdk/middleware-host-header": "3.398.0", - "@aws-sdk/middleware-logger": "3.398.0", - "@aws-sdk/middleware-recursion-detection": "3.398.0", - "@aws-sdk/middleware-signing": "3.398.0", - "@aws-sdk/middleware-user-agent": "3.398.0", - "@aws-sdk/types": "3.398.0", - "@aws-sdk/util-endpoints": "3.398.0", - "@aws-sdk/util-user-agent-browser": "3.398.0", - "@aws-sdk/util-user-agent-node": "3.398.0", - "@smithy/config-resolver": "^2.0.5", - "@smithy/fetch-http-handler": "^2.0.5", - "@smithy/hash-node": "^2.0.5", - "@smithy/invalid-dependency": "^2.0.5", - "@smithy/middleware-content-length": "^2.0.5", - "@smithy/middleware-endpoint": "^2.0.5", - "@smithy/middleware-retry": "^2.0.5", - "@smithy/middleware-serde": "^2.0.5", - "@smithy/middleware-stack": "^2.0.0", - "@smithy/node-config-provider": "^2.0.5", - "@smithy/node-http-handler": "^2.0.5", - "@smithy/protocol-http": "^2.0.5", - "@smithy/smithy-client": "^2.0.5", - "@smithy/types": "^2.2.2", - "@smithy/url-parser": "^2.0.5", - "@smithy/util-base64": "^2.0.0", + "@aws-sdk/client-sts": "3.451.0", + "@aws-sdk/core": "3.451.0", + "@aws-sdk/credential-provider-node": "3.451.0", + "@aws-sdk/middleware-host-header": "3.451.0", + "@aws-sdk/middleware-logger": "3.451.0", + "@aws-sdk/middleware-recursion-detection": "3.451.0", + "@aws-sdk/middleware-signing": "3.451.0", + "@aws-sdk/middleware-user-agent": "3.451.0", + "@aws-sdk/region-config-resolver": "3.451.0", + "@aws-sdk/types": "3.451.0", + "@aws-sdk/util-endpoints": "3.451.0", + "@aws-sdk/util-user-agent-browser": "3.451.0", + "@aws-sdk/util-user-agent-node": "3.451.0", + "@smithy/config-resolver": "^2.0.18", + "@smithy/fetch-http-handler": "^2.2.6", + "@smithy/hash-node": "^2.0.15", + "@smithy/invalid-dependency": "^2.0.13", + "@smithy/middleware-content-length": "^2.0.15", + "@smithy/middleware-endpoint": "^2.2.0", + "@smithy/middleware-retry": "^2.0.20", + "@smithy/middleware-serde": "^2.0.13", + "@smithy/middleware-stack": "^2.0.7", + "@smithy/node-config-provider": "^2.1.5", + "@smithy/node-http-handler": "^2.1.9", + "@smithy/protocol-http": "^3.0.9", + "@smithy/smithy-client": "^2.1.15", + "@smithy/types": "^2.5.0", + "@smithy/url-parser": "^2.0.13", + "@smithy/util-base64": "^2.0.1", "@smithy/util-body-length-browser": "^2.0.0", "@smithy/util-body-length-node": "^2.1.0", - "@smithy/util-defaults-mode-browser": "^2.0.5", - "@smithy/util-defaults-mode-node": "^2.0.5", - "@smithy/util-retry": "^2.0.0", - "@smithy/util-utf8": "^2.0.0", - "@smithy/util-waiter": "^2.0.5", + "@smithy/util-defaults-mode-browser": "^2.0.19", + "@smithy/util-defaults-mode-node": "^2.0.25", + "@smithy/util-endpoints": "^1.0.4", + "@smithy/util-retry": "^2.0.6", + "@smithy/util-utf8": "^2.0.2", + "@smithy/util-waiter": "^2.0.13", "fast-xml-parser": "4.2.5", "tslib": "^2.5.0", "uuid": "^8.3.2" @@ -436,6 +440,443 @@ "node": ">=14.0.0" } }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/client-sso": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.451.0.tgz", + "integrity": "sha512-KkYSke3Pdv3MfVH/5fT528+MKjMyPKlcLcd4zQb0x6/7Bl7EHrPh1JZYjzPLHelb+UY5X0qN8+cb8iSu1eiwIQ==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.451.0", + "@aws-sdk/middleware-host-header": "3.451.0", + "@aws-sdk/middleware-logger": "3.451.0", + "@aws-sdk/middleware-recursion-detection": "3.451.0", + "@aws-sdk/middleware-user-agent": "3.451.0", + "@aws-sdk/region-config-resolver": "3.451.0", + "@aws-sdk/types": "3.451.0", + "@aws-sdk/util-endpoints": "3.451.0", + "@aws-sdk/util-user-agent-browser": "3.451.0", + "@aws-sdk/util-user-agent-node": "3.451.0", + "@smithy/config-resolver": "^2.0.18", + "@smithy/fetch-http-handler": "^2.2.6", + "@smithy/hash-node": "^2.0.15", + "@smithy/invalid-dependency": "^2.0.13", + "@smithy/middleware-content-length": "^2.0.15", + "@smithy/middleware-endpoint": "^2.2.0", + "@smithy/middleware-retry": "^2.0.20", + "@smithy/middleware-serde": "^2.0.13", + "@smithy/middleware-stack": "^2.0.7", + "@smithy/node-config-provider": "^2.1.5", + "@smithy/node-http-handler": "^2.1.9", + "@smithy/protocol-http": "^3.0.9", + "@smithy/smithy-client": "^2.1.15", + "@smithy/types": "^2.5.0", + "@smithy/url-parser": "^2.0.13", + "@smithy/util-base64": "^2.0.1", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.19", + "@smithy/util-defaults-mode-node": "^2.0.25", + "@smithy/util-endpoints": "^1.0.4", + "@smithy/util-retry": "^2.0.6", + "@smithy/util-utf8": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/client-sts": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.451.0.tgz", + "integrity": "sha512-48NcIRxWBdP1fom6RSjwn2R2u7SE7eeV3p+c4s7ukEOfrHhBxJfn3EpqBVQMGzdiU55qFImy+Fe81iA2lXq3Jw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.451.0", + "@aws-sdk/credential-provider-node": "3.451.0", + "@aws-sdk/middleware-host-header": "3.451.0", + "@aws-sdk/middleware-logger": "3.451.0", + "@aws-sdk/middleware-recursion-detection": "3.451.0", + "@aws-sdk/middleware-sdk-sts": "3.451.0", + "@aws-sdk/middleware-signing": "3.451.0", + "@aws-sdk/middleware-user-agent": "3.451.0", + "@aws-sdk/region-config-resolver": "3.451.0", + "@aws-sdk/types": "3.451.0", + "@aws-sdk/util-endpoints": "3.451.0", + "@aws-sdk/util-user-agent-browser": "3.451.0", + "@aws-sdk/util-user-agent-node": "3.451.0", + "@smithy/config-resolver": "^2.0.18", + "@smithy/fetch-http-handler": "^2.2.6", + "@smithy/hash-node": "^2.0.15", + "@smithy/invalid-dependency": "^2.0.13", + "@smithy/middleware-content-length": "^2.0.15", + "@smithy/middleware-endpoint": "^2.2.0", + "@smithy/middleware-retry": "^2.0.20", + "@smithy/middleware-serde": "^2.0.13", + "@smithy/middleware-stack": "^2.0.7", + "@smithy/node-config-provider": "^2.1.5", + "@smithy/node-http-handler": "^2.1.9", + "@smithy/protocol-http": "^3.0.9", + "@smithy/smithy-client": "^2.1.15", + "@smithy/types": "^2.5.0", + "@smithy/url-parser": "^2.0.13", + "@smithy/util-base64": "^2.0.1", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.19", + "@smithy/util-defaults-mode-node": "^2.0.25", + "@smithy/util-endpoints": "^1.0.4", + "@smithy/util-retry": "^2.0.6", + "@smithy/util-utf8": "^2.0.2", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.451.0.tgz", + "integrity": "sha512-9dAav7DcRgaF7xCJEQR5ER9ErXxnu/tdnVJ+UPmb1NPeIZdESv1A3lxFDEq1Fs8c4/lzAj9BpshGyJVIZwZDKg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.451.0.tgz", + "integrity": "sha512-TySt64Ci5/ZbqFw1F9Z0FIGvYx5JSC9e6gqDnizIYd8eMnn8wFRUscRrD7pIHKfrhvVKN5h0GdYovmMO/FMCBw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.451.0", + "@aws-sdk/credential-provider-process": "3.451.0", + "@aws-sdk/credential-provider-sso": "3.451.0", + "@aws-sdk/credential-provider-web-identity": "3.451.0", + "@aws-sdk/types": "3.451.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.451.0.tgz", + "integrity": "sha512-AEwM1WPyxUdKrKyUsKyFqqRFGU70e4qlDyrtBxJnSU9NRLZI8tfEZ67bN7fHSxBUBODgDXpMSlSvJiBLh5/3pw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.451.0", + "@aws-sdk/credential-provider-ini": "3.451.0", + "@aws-sdk/credential-provider-process": "3.451.0", + "@aws-sdk/credential-provider-sso": "3.451.0", + "@aws-sdk/credential-provider-web-identity": "3.451.0", + "@aws-sdk/types": "3.451.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.451.0.tgz", + "integrity": "sha512-HQywSdKeD5PErcLLnZfSyCJO+6T+ZyzF+Lm/QgscSC+CbSUSIPi//s15qhBRVely/3KBV6AywxwNH+5eYgt4lQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.451.0.tgz", + "integrity": "sha512-Usm/N51+unOt8ID4HnQzxIjUJDrkAQ1vyTOC0gSEEJ7h64NSSPGD5yhN7il5WcErtRd3EEtT1a8/GTC5TdBctg==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.451.0", + "@aws-sdk/token-providers": "3.451.0", + "@aws-sdk/types": "3.451.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.451.0.tgz", + "integrity": "sha512-Xtg3Qw65EfDjWNG7o2xD6sEmumPfsy3WDGjk2phEzVg8s7hcZGxf5wYwe6UY7RJvlEKrU0rFA+AMn6Hfj5oOzg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.451.0.tgz", + "integrity": "sha512-j8a5jAfhWmsK99i2k8oR8zzQgXrsJtgrLxc3js6U+525mcZytoiDndkWTmD5fjJ1byU1U2E5TaPq+QJeDip05Q==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/protocol-http": "^3.0.9", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-logger": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.451.0.tgz", + "integrity": "sha512-0kHrYEyVeB2QBfP6TfbI240aRtatLZtcErJbhpiNUb+CQPgEL3crIjgVE8yYiJumZ7f0jyjo8HLPkwD1/2APaw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.451.0.tgz", + "integrity": "sha512-J6jL6gJ7orjHGM70KDRcCP7so/J2SnkN4vZ9YRLTeeZY6zvBuHDjX8GCIgSqPn/nXFXckZO8XSnA7u6+3TAT0w==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/protocol-http": "^3.0.9", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.451.0.tgz", + "integrity": "sha512-UJ6UfVUEgp0KIztxpAeelPXI5MLj9wUtUCqYeIMP7C1ZhoEMNm3G39VLkGN43dNhBf1LqjsV9jkKMZbVfYXuwg==", + "dev": true, + "dependencies": { + "@aws-sdk/middleware-signing": "3.451.0", + "@aws-sdk/types": "3.451.0", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-signing": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.451.0.tgz", + "integrity": "sha512-s5ZlcIoLNg1Huj4Qp06iKniE8nJt/Pj1B/fjhWc6cCPCM7XJYUCejCnRh6C5ZJoBEYodjuwZBejPc1Wh3j+znA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^3.0.9", + "@smithy/signature-v4": "^2.0.0", + "@smithy/types": "^2.5.0", + "@smithy/util-middleware": "^2.0.6", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.451.0.tgz", + "integrity": "sha512-8NM/0JiKLNvT9wtAQVl1DFW0cEO7OvZyLSUBLNLTHqyvOZxKaZ8YFk7d8PL6l76LeUKRxq4NMxfZQlUIRe0eSA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@aws-sdk/util-endpoints": "3.451.0", + "@smithy/protocol-http": "^3.0.9", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/region-config-resolver": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.451.0.tgz", + "integrity": "sha512-3iMf4OwzrFb4tAAmoROXaiORUk2FvSejnHIw/XHvf/jjR4EqGGF95NZP/n/MeFZMizJWVssrwS412GmoEyoqhg==", + "dev": true, + "dependencies": { + "@smithy/node-config-provider": "^2.1.5", + "@smithy/types": "^2.5.0", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.6", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/token-providers": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.451.0.tgz", + "integrity": "sha512-ij1L5iUbn6CwxVOT1PG4NFjsrsKN9c4N1YEM0lkl6DwmaNOscjLKGSNyj9M118vSWsOs1ZDbTwtj++h0O/BWrQ==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.451.0", + "@aws-sdk/middleware-logger": "3.451.0", + "@aws-sdk/middleware-recursion-detection": "3.451.0", + "@aws-sdk/middleware-user-agent": "3.451.0", + "@aws-sdk/region-config-resolver": "3.451.0", + "@aws-sdk/types": "3.451.0", + "@aws-sdk/util-endpoints": "3.451.0", + "@aws-sdk/util-user-agent-browser": "3.451.0", + "@aws-sdk/util-user-agent-node": "3.451.0", + "@smithy/config-resolver": "^2.0.18", + "@smithy/fetch-http-handler": "^2.2.6", + "@smithy/hash-node": "^2.0.15", + "@smithy/invalid-dependency": "^2.0.13", + "@smithy/middleware-content-length": "^2.0.15", + "@smithy/middleware-endpoint": "^2.2.0", + "@smithy/middleware-retry": "^2.0.20", + "@smithy/middleware-serde": "^2.0.13", + "@smithy/middleware-stack": "^2.0.7", + "@smithy/node-config-provider": "^2.1.5", + "@smithy/node-http-handler": "^2.1.9", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^3.0.9", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/smithy-client": "^2.1.15", + "@smithy/types": "^2.5.0", + "@smithy/url-parser": "^2.0.13", + "@smithy/util-base64": "^2.0.1", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.19", + "@smithy/util-defaults-mode-node": "^2.0.25", + "@smithy/util-endpoints": "^1.0.4", + "@smithy/util-retry": "^2.0.6", + "@smithy/util-utf8": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/types": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.451.0.tgz", + "integrity": "sha512-rhK+qeYwCIs+laJfWCcrYEjay2FR/9VABZJ2NRM89jV/fKqGVQR52E5DQqrI+oEIL5JHMhhnr4N4fyECMS35lw==", + "dev": true, + "dependencies": { + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/util-endpoints": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.451.0.tgz", + "integrity": "sha512-giqLGBTnRIcKkDqwU7+GQhKbtJ5Ku35cjGQIfMyOga6pwTBUbaK0xW1Sdd8sBQ1GhApscnChzI9o/R9x0368vw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/util-endpoints": "^1.0.4", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.451.0.tgz", + "integrity": "sha512-Ws5mG3J0TQifH7OTcMrCTexo7HeSAc3cBgjfhS/ofzPUzVCtsyg0G7I6T7wl7vJJETix2Kst2cpOsxygPgPD9w==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/types": "^2.5.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.451.0.tgz", + "integrity": "sha512-TBzm6P+ql4mkGFAjPlO1CI+w3yUT+NulaiALjl/jNX/nnUp6HsJsVxJf4nVFQTG5KRV0iqMypcs7I3KIhH+LmA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/node-config-provider": "^2.1.5", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/client-cloudformation/node_modules/@smithy/protocol-http": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.9.tgz", + "integrity": "sha512-U1wl+FhYu4/BC+rjwh1lg2gcJChQhytiNQSggREgQ9G2FzmoK9sACBZvx7thyWMvRyHQTE22mO2d5UM8gMKDBg==", + "dev": true, + "dependencies": { + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@aws-sdk/client-cloudwatch-logs": { "version": "3.417.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.417.0.tgz", @@ -1641,6 +2082,19 @@ "node": ">=14.0.0" } }, + "node_modules/@aws-sdk/core": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.451.0.tgz", + "integrity": "sha512-SamWW2zHEf1ZKe3j1w0Piauryl8BQIlej0TBS18A4ACzhjhWXhCs13bO1S88LvPR5mBFXok3XOT6zPOnKDFktw==", + "dev": true, + "dependencies": { + "@smithy/smithy-client": "^2.1.15", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@aws-sdk/credential-provider-cognito-identity": { "version": "3.398.0", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.398.0.tgz", @@ -2630,12 +3084,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz", - "integrity": "sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", + "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.10", + "@babel/types": "^7.23.3", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -2661,22 +3115,22 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -2768,9 +3222,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "engines": { "node": ">=6.9.0" } @@ -2876,9 +3330,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.13.tgz", - "integrity": "sha512-3l6+4YOvc9wx7VlCSw4yQfcBo01ECA8TicQfbnCPuCEpRQrf+gTUyGdxNw+pyTUyywp6JRD1w0YQs9TpBXYlkw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -3065,33 +3519,33 @@ } }, "node_modules/@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.11.tgz", - "integrity": "sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz", + "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.10", - "@babel/generator": "^7.22.10", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.11", - "@babel/types": "^7.22.11", + "@babel/parser": "^7.23.3", + "@babel/types": "^7.23.3", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -3109,13 +3563,13 @@ } }, "node_modules/@babel/types": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.11.tgz", - "integrity": "sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz", + "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -4034,135 +4488,591 @@ "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", "dev": true }, - "node_modules/@kwsites/file-exists": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", - "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "node_modules/@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1" + } + }, + "node_modules/@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/utils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@pkgr/utils/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@pkgr/utils/node_modules/open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@serverless/dashboard-plugin": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@serverless/dashboard-plugin/-/dashboard-plugin-7.1.0.tgz", + "integrity": "sha512-mAiTU2ERsDHdCrXJa/tihh/r+8ZwSuYYBqln3SkwuBD/49ct9QrK7S00cpiqFoY/geMFlHpOkriGzCPz6UP/rw==", + "dev": true, + "dependencies": { + "@aws-sdk/client-cloudformation": "^3.410.0", + "@aws-sdk/client-sts": "^3.410.0", + "@serverless/event-mocks": "^1.1.1", + "@serverless/platform-client": "^4.4.0", + "@serverless/utils": "^6.14.0", + "child-process-ext": "^3.0.1", + "chokidar": "^3.5.3", + "flat": "^5.0.2", + "fs-extra": "^9.1.0", + "js-yaml": "^4.1.0", + "jszip": "^3.10.1", + "lodash": "^4.17.21", + "memoizee": "^0.4.15", + "ncjsm": "^4.3.2", + "node-dir": "^0.1.17", + "node-fetch": "^2.6.8", + "open": "^7.4.2", + "semver": "^7.3.8", + "simple-git": "^3.16.0", + "timers-ext": "^0.1.7", + "type": "^2.7.2", + "uuid": "^8.3.2", + "yamljs": "^0.3.0" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/client-sso": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.451.0.tgz", + "integrity": "sha512-KkYSke3Pdv3MfVH/5fT528+MKjMyPKlcLcd4zQb0x6/7Bl7EHrPh1JZYjzPLHelb+UY5X0qN8+cb8iSu1eiwIQ==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.451.0", + "@aws-sdk/middleware-host-header": "3.451.0", + "@aws-sdk/middleware-logger": "3.451.0", + "@aws-sdk/middleware-recursion-detection": "3.451.0", + "@aws-sdk/middleware-user-agent": "3.451.0", + "@aws-sdk/region-config-resolver": "3.451.0", + "@aws-sdk/types": "3.451.0", + "@aws-sdk/util-endpoints": "3.451.0", + "@aws-sdk/util-user-agent-browser": "3.451.0", + "@aws-sdk/util-user-agent-node": "3.451.0", + "@smithy/config-resolver": "^2.0.18", + "@smithy/fetch-http-handler": "^2.2.6", + "@smithy/hash-node": "^2.0.15", + "@smithy/invalid-dependency": "^2.0.13", + "@smithy/middleware-content-length": "^2.0.15", + "@smithy/middleware-endpoint": "^2.2.0", + "@smithy/middleware-retry": "^2.0.20", + "@smithy/middleware-serde": "^2.0.13", + "@smithy/middleware-stack": "^2.0.7", + "@smithy/node-config-provider": "^2.1.5", + "@smithy/node-http-handler": "^2.1.9", + "@smithy/protocol-http": "^3.0.9", + "@smithy/smithy-client": "^2.1.15", + "@smithy/types": "^2.5.0", + "@smithy/url-parser": "^2.0.13", + "@smithy/util-base64": "^2.0.1", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.19", + "@smithy/util-defaults-mode-node": "^2.0.25", + "@smithy/util-endpoints": "^1.0.4", + "@smithy/util-retry": "^2.0.6", + "@smithy/util-utf8": "^2.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/client-sts": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.451.0.tgz", + "integrity": "sha512-48NcIRxWBdP1fom6RSjwn2R2u7SE7eeV3p+c4s7ukEOfrHhBxJfn3EpqBVQMGzdiU55qFImy+Fe81iA2lXq3Jw==", + "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.451.0", + "@aws-sdk/credential-provider-node": "3.451.0", + "@aws-sdk/middleware-host-header": "3.451.0", + "@aws-sdk/middleware-logger": "3.451.0", + "@aws-sdk/middleware-recursion-detection": "3.451.0", + "@aws-sdk/middleware-sdk-sts": "3.451.0", + "@aws-sdk/middleware-signing": "3.451.0", + "@aws-sdk/middleware-user-agent": "3.451.0", + "@aws-sdk/region-config-resolver": "3.451.0", + "@aws-sdk/types": "3.451.0", + "@aws-sdk/util-endpoints": "3.451.0", + "@aws-sdk/util-user-agent-browser": "3.451.0", + "@aws-sdk/util-user-agent-node": "3.451.0", + "@smithy/config-resolver": "^2.0.18", + "@smithy/fetch-http-handler": "^2.2.6", + "@smithy/hash-node": "^2.0.15", + "@smithy/invalid-dependency": "^2.0.13", + "@smithy/middleware-content-length": "^2.0.15", + "@smithy/middleware-endpoint": "^2.2.0", + "@smithy/middleware-retry": "^2.0.20", + "@smithy/middleware-serde": "^2.0.13", + "@smithy/middleware-stack": "^2.0.7", + "@smithy/node-config-provider": "^2.1.5", + "@smithy/node-http-handler": "^2.1.9", + "@smithy/protocol-http": "^3.0.9", + "@smithy/smithy-client": "^2.1.15", + "@smithy/types": "^2.5.0", + "@smithy/url-parser": "^2.0.13", + "@smithy/util-base64": "^2.0.1", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.19", + "@smithy/util-defaults-mode-node": "^2.0.25", + "@smithy/util-endpoints": "^1.0.4", + "@smithy/util-retry": "^2.0.6", + "@smithy/util-utf8": "^2.0.2", + "fast-xml-parser": "4.2.5", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.451.0.tgz", + "integrity": "sha512-9dAav7DcRgaF7xCJEQR5ER9ErXxnu/tdnVJ+UPmb1NPeIZdESv1A3lxFDEq1Fs8c4/lzAj9BpshGyJVIZwZDKg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.451.0.tgz", + "integrity": "sha512-TySt64Ci5/ZbqFw1F9Z0FIGvYx5JSC9e6gqDnizIYd8eMnn8wFRUscRrD7pIHKfrhvVKN5h0GdYovmMO/FMCBw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.451.0", + "@aws-sdk/credential-provider-process": "3.451.0", + "@aws-sdk/credential-provider-sso": "3.451.0", + "@aws-sdk/credential-provider-web-identity": "3.451.0", + "@aws-sdk/types": "3.451.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.451.0.tgz", + "integrity": "sha512-AEwM1WPyxUdKrKyUsKyFqqRFGU70e4qlDyrtBxJnSU9NRLZI8tfEZ67bN7fHSxBUBODgDXpMSlSvJiBLh5/3pw==", + "dev": true, + "dependencies": { + "@aws-sdk/credential-provider-env": "3.451.0", + "@aws-sdk/credential-provider-ini": "3.451.0", + "@aws-sdk/credential-provider-process": "3.451.0", + "@aws-sdk/credential-provider-sso": "3.451.0", + "@aws-sdk/credential-provider-web-identity": "3.451.0", + "@aws-sdk/types": "3.451.0", + "@smithy/credential-provider-imds": "^2.0.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.451.0.tgz", + "integrity": "sha512-HQywSdKeD5PErcLLnZfSyCJO+6T+ZyzF+Lm/QgscSC+CbSUSIPi//s15qhBRVely/3KBV6AywxwNH+5eYgt4lQ==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.451.0.tgz", + "integrity": "sha512-Usm/N51+unOt8ID4HnQzxIjUJDrkAQ1vyTOC0gSEEJ7h64NSSPGD5yhN7il5WcErtRd3EEtT1a8/GTC5TdBctg==", + "dev": true, + "dependencies": { + "@aws-sdk/client-sso": "3.451.0", + "@aws-sdk/token-providers": "3.451.0", + "@aws-sdk/types": "3.451.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.451.0.tgz", + "integrity": "sha512-Xtg3Qw65EfDjWNG7o2xD6sEmumPfsy3WDGjk2phEzVg8s7hcZGxf5wYwe6UY7RJvlEKrU0rFA+AMn6Hfj5oOzg==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.451.0.tgz", + "integrity": "sha512-j8a5jAfhWmsK99i2k8oR8zzQgXrsJtgrLxc3js6U+525mcZytoiDndkWTmD5fjJ1byU1U2E5TaPq+QJeDip05Q==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/protocol-http": "^3.0.9", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/middleware-logger": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.451.0.tgz", + "integrity": "sha512-0kHrYEyVeB2QBfP6TfbI240aRtatLZtcErJbhpiNUb+CQPgEL3crIjgVE8yYiJumZ7f0jyjo8HLPkwD1/2APaw==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.451.0.tgz", + "integrity": "sha512-J6jL6gJ7orjHGM70KDRcCP7so/J2SnkN4vZ9YRLTeeZY6zvBuHDjX8GCIgSqPn/nXFXckZO8XSnA7u6+3TAT0w==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/protocol-http": "^3.0.9", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/middleware-sdk-sts": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.451.0.tgz", + "integrity": "sha512-UJ6UfVUEgp0KIztxpAeelPXI5MLj9wUtUCqYeIMP7C1ZhoEMNm3G39VLkGN43dNhBf1LqjsV9jkKMZbVfYXuwg==", + "dev": true, + "dependencies": { + "@aws-sdk/middleware-signing": "3.451.0", + "@aws-sdk/types": "3.451.0", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/middleware-signing": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.451.0.tgz", + "integrity": "sha512-s5ZlcIoLNg1Huj4Qp06iKniE8nJt/Pj1B/fjhWc6cCPCM7XJYUCejCnRh6C5ZJoBEYodjuwZBejPc1Wh3j+znA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^3.0.9", + "@smithy/signature-v4": "^2.0.0", + "@smithy/types": "^2.5.0", + "@smithy/util-middleware": "^2.0.6", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.451.0.tgz", + "integrity": "sha512-8NM/0JiKLNvT9wtAQVl1DFW0cEO7OvZyLSUBLNLTHqyvOZxKaZ8YFk7d8PL6l76LeUKRxq4NMxfZQlUIRe0eSA==", "dev": true, "dependencies": { - "debug": "^4.1.1" + "@aws-sdk/types": "3.451.0", + "@aws-sdk/util-endpoints": "3.451.0", + "@smithy/protocol-http": "^3.0.9", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@kwsites/promise-deferred": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", - "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", - "dev": true - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/region-config-resolver": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.451.0.tgz", + "integrity": "sha512-3iMf4OwzrFb4tAAmoROXaiORUk2FvSejnHIw/XHvf/jjR4EqGGF95NZP/n/MeFZMizJWVssrwS412GmoEyoqhg==", "dev": true, "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@smithy/node-config-provider": "^2.1.5", + "@smithy/types": "^2.5.0", + "@smithy/util-config-provider": "^2.0.0", + "@smithy/util-middleware": "^2.0.6", + "tslib": "^2.5.0" }, "engines": { - "node": ">= 8" + "node": ">=14.0.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/token-providers": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.451.0.tgz", + "integrity": "sha512-ij1L5iUbn6CwxVOT1PG4NFjsrsKN9c4N1YEM0lkl6DwmaNOscjLKGSNyj9M118vSWsOs1ZDbTwtj++h0O/BWrQ==", "dev": true, + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/middleware-host-header": "3.451.0", + "@aws-sdk/middleware-logger": "3.451.0", + "@aws-sdk/middleware-recursion-detection": "3.451.0", + "@aws-sdk/middleware-user-agent": "3.451.0", + "@aws-sdk/region-config-resolver": "3.451.0", + "@aws-sdk/types": "3.451.0", + "@aws-sdk/util-endpoints": "3.451.0", + "@aws-sdk/util-user-agent-browser": "3.451.0", + "@aws-sdk/util-user-agent-node": "3.451.0", + "@smithy/config-resolver": "^2.0.18", + "@smithy/fetch-http-handler": "^2.2.6", + "@smithy/hash-node": "^2.0.15", + "@smithy/invalid-dependency": "^2.0.13", + "@smithy/middleware-content-length": "^2.0.15", + "@smithy/middleware-endpoint": "^2.2.0", + "@smithy/middleware-retry": "^2.0.20", + "@smithy/middleware-serde": "^2.0.13", + "@smithy/middleware-stack": "^2.0.7", + "@smithy/node-config-provider": "^2.1.5", + "@smithy/node-http-handler": "^2.1.9", + "@smithy/property-provider": "^2.0.0", + "@smithy/protocol-http": "^3.0.9", + "@smithy/shared-ini-file-loader": "^2.0.6", + "@smithy/smithy-client": "^2.1.15", + "@smithy/types": "^2.5.0", + "@smithy/url-parser": "^2.0.13", + "@smithy/util-base64": "^2.0.1", + "@smithy/util-body-length-browser": "^2.0.0", + "@smithy/util-body-length-node": "^2.1.0", + "@smithy/util-defaults-mode-browser": "^2.0.19", + "@smithy/util-defaults-mode-node": "^2.0.25", + "@smithy/util-endpoints": "^1.0.4", + "@smithy/util-retry": "^2.0.6", + "@smithy/util-utf8": "^2.0.2", + "tslib": "^2.5.0" + }, "engines": { - "node": ">= 8" + "node": ">=14.0.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/types": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.451.0.tgz", + "integrity": "sha512-rhK+qeYwCIs+laJfWCcrYEjay2FR/9VABZJ2NRM89jV/fKqGVQR52E5DQqrI+oEIL5JHMhhnr4N4fyECMS35lw==", "dev": true, "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">= 8" + "node": ">=14.0.0" } }, - "node_modules/@pkgr/utils": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", - "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/util-endpoints": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.451.0.tgz", + "integrity": "sha512-giqLGBTnRIcKkDqwU7+GQhKbtJ5Ku35cjGQIfMyOga6pwTBUbaK0xW1Sdd8sBQ1GhApscnChzI9o/R9x0368vw==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.3", - "fast-glob": "^3.3.0", - "is-glob": "^4.0.3", - "open": "^9.1.0", - "picocolors": "^1.0.0", - "tslib": "^2.6.0" + "@aws-sdk/types": "3.451.0", + "@smithy/util-endpoints": "^1.0.4", + "tslib": "^2.5.0" }, "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" + "node": ">=14.0.0" } }, - "node_modules/@pkgr/utils/node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.451.0.tgz", + "integrity": "sha512-Ws5mG3J0TQifH7OTcMrCTexo7HeSAc3cBgjfhS/ofzPUzVCtsyg0G7I6T7wl7vJJETix2Kst2cpOsxygPgPD9w==", "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/types": "^2.5.0", + "bowser": "^2.11.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@serverless/dashboard-plugin/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.451.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.451.0.tgz", + "integrity": "sha512-TBzm6P+ql4mkGFAjPlO1CI+w3yUT+NulaiALjl/jNX/nnUp6HsJsVxJf4nVFQTG5KRV0iqMypcs7I3KIhH+LmA==", + "dev": true, + "dependencies": { + "@aws-sdk/types": "3.451.0", + "@smithy/node-config-provider": "^2.1.5", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, "engines": { - "node": ">=12" + "node": ">=14.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } } }, - "node_modules/@pkgr/utils/node_modules/open": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", - "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "node_modules/@serverless/dashboard-plugin/node_modules/@smithy/protocol-http": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.9.tgz", + "integrity": "sha512-U1wl+FhYu4/BC+rjwh1lg2gcJChQhytiNQSggREgQ9G2FzmoK9sACBZvx7thyWMvRyHQTE22mO2d5UM8gMKDBg==", "dev": true, "dependencies": { - "default-browser": "^4.0.0", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=14.0.0" } }, - "node_modules/@serverless/dashboard-plugin": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@serverless/dashboard-plugin/-/dashboard-plugin-6.2.3.tgz", - "integrity": "sha512-iTZhpZbiVl6G2AyfgoqxemqqpG4pUceWys3GsyZtjimnfnGd2UFBOMVUMTavLhYia7lQc4kQVuXQ+afLlkg+pQ==", + "node_modules/@serverless/dashboard-plugin/node_modules/child-process-ext": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/child-process-ext/-/child-process-ext-3.0.2.tgz", + "integrity": "sha512-oBePsLbQpTJFxzwyCvs9yWWF0OEM6vGGepHwt1stqmX7QQqOuDc8j2ywdvAs9Tvi44TT7d9ackqhR4Q10l1u8w==", "dev": true, "dependencies": { - "@serverless/event-mocks": "^1.1.1", - "@serverless/platform-client": "^4.3.2", - "@serverless/utils": "^6.8.2", - "child-process-ext": "^2.1.1", - "chokidar": "^3.5.3", - "flat": "^5.0.2", - "fs-extra": "^9.1.0", - "js-yaml": "^4.1.0", - "jszip": "^3.10.1", - "lodash": "^4.17.21", - "memoizee": "^0.4.15", - "ncjsm": "^4.3.2", - "node-dir": "^0.1.17", - "node-fetch": "^2.6.8", - "open": "^7.4.2", - "semver": "^7.3.8", - "simple-git": "^3.16.0", - "type": "^2.7.2", - "uuid": "^8.3.2", - "yamljs": "^0.3.0" + "cross-spawn": "^7.0.3", + "es5-ext": "^0.10.62", + "log": "^6.3.1", + "split2": "^3.2.2", + "stream-promise": "^3.2.0" }, "engines": { - "node": ">=12.0" + "node": ">=8.0" } }, "node_modules/@serverless/dashboard-plugin/node_modules/fs-extra": { @@ -4196,6 +5106,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@serverless/dashboard-plugin/node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "dependencies": { + "readable-stream": "^3.0.0" + } + }, "node_modules/@serverless/dashboard-plugin/node_modules/type": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", @@ -4213,9 +5132,9 @@ } }, "node_modules/@serverless/platform-client": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@serverless/platform-client/-/platform-client-4.3.2.tgz", - "integrity": "sha512-DAa5Z0JAZc6UfrTZLYwqoZxgAponZpFwaqd7WzzMA+loMCkYWyJNwxrAmV6cr2UUJpkko4toPZuJ3vM9Ie+NDA==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@serverless/platform-client/-/platform-client-4.4.0.tgz", + "integrity": "sha512-urL7SNefRqC2EOFDcpvm8fyn/06B5yXWneKpyGw7ylGt0Qr9JHZCB9TiUeTkIpPUNz0jTvKUaJ2+M/JNEiaVIA==", "dev": true, "dependencies": { "adm-zip": "^0.5.5", @@ -4313,9 +5232,9 @@ } }, "node_modules/@serverless/utils": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/@serverless/utils/-/utils-6.13.1.tgz", - "integrity": "sha512-yokWzlsIaAd3TWzNgIDz6l8HZmtYZs9caaLuheZ0IiZ/bDWSCLBWn84HKkdWZOmFnYxejyPNJEOwE59mtSR3Ow==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@serverless/utils/-/utils-6.15.0.tgz", + "integrity": "sha512-7eDbqKv/OBd11jjdZjUwFGN8sHWkeUqLeHXHQxQ1azja2IM7WIH+z/aLgzR6LhB3/MINNwtjesDpjGqTMj2JKQ==", "dev": true, "dependencies": { "archive-type": "^4.0.0", @@ -4444,11 +5363,11 @@ } }, "node_modules/@smithy/abort-controller": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.9.tgz", - "integrity": "sha512-8liHOEbx99xcy4VndeQNQhyA0LS+e7UqsuRnDTSIA26IKBv/7vA9w09KOd4fgNULrvX0r3WpA6cwsQTRJpSWkg==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.13.tgz", + "integrity": "sha512-eeOPD+GF9BzF/Mjy3PICLePx4l0f3rG/nQegQHRLTloN5p1lSJJNZsyn+FzDnW8P2AduragZqJdtKNCxXozB1Q==", "dependencies": { - "@smithy/types": "^2.3.3", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -4475,14 +5394,14 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.10.tgz", - "integrity": "sha512-MwToDsCltHjumkCuRn883qoNeJUawc2b8sX9caSn5vLz6J5crU1IklklNxWCaMO2z2nDL91Po4b/aI1eHv5PfA==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.18.tgz", + "integrity": "sha512-761sJSgNbvsqcsKW6/WZbrZr4H+0Vp/QKKqwyrxCPwD8BsiPEXNHyYnqNgaeK9xRWYswjon0Uxbpe3DWQo0j/g==", "dependencies": { - "@smithy/node-config-provider": "^2.0.12", - "@smithy/types": "^2.3.3", + "@smithy/node-config-provider": "^2.1.5", + "@smithy/types": "^2.5.0", "@smithy/util-config-provider": "^2.0.0", - "@smithy/util-middleware": "^2.0.2", + "@smithy/util-middleware": "^2.0.6", "tslib": "^2.5.0" }, "engines": { @@ -4490,14 +5409,14 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.0.12.tgz", - "integrity": "sha512-S3lUNe+2fEFwKcmiQniXGPXt69vaHvQCw8kYQOBL4OvJsgwfpkIYDZdroHbTshYi0M6WaKL26Mw+hvgma6dZqA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.1.tgz", + "integrity": "sha512-gw5G3FjWC6sNz8zpOJgPpH5HGKrpoVFQpToNAwLwJVyI/LJ2jDJRjSKEsM6XI25aRpYjMSE/Qptxx305gN1vHw==", "dependencies": { - "@smithy/node-config-provider": "^2.0.12", - "@smithy/property-provider": "^2.0.10", - "@smithy/types": "^2.3.3", - "@smithy/url-parser": "^2.0.9", + "@smithy/node-config-provider": "^2.1.5", + "@smithy/property-provider": "^2.0.14", + "@smithy/types": "^2.5.0", + "@smithy/url-parser": "^2.0.13", "tslib": "^2.5.0" }, "engines": { @@ -4571,23 +5490,23 @@ } }, "node_modules/@smithy/fetch-http-handler": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.1.5.tgz", - "integrity": "sha512-BIeCHGfr5JCGN+EMTwZK74ELvjPXOIrI7OLM5OhZJJ6AmZyRv2S9ANJk18AtLwht0TsSm+8WoXIEp8LuxNgUyA==", - "dependencies": { - "@smithy/protocol-http": "^3.0.5", - "@smithy/querystring-builder": "^2.0.9", - "@smithy/types": "^2.3.3", - "@smithy/util-base64": "^2.0.0", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.2.6.tgz", + "integrity": "sha512-PStY3XO1Ksjwn3wMKye5U6m6zxXpXrXZYqLy/IeCbh3nM9QB3Jgw/B0PUSLUWKdXg4U8qgEu300e3ZoBvZLsDg==", + "dependencies": { + "@smithy/protocol-http": "^3.0.9", + "@smithy/querystring-builder": "^2.0.13", + "@smithy/types": "^2.5.0", + "@smithy/util-base64": "^2.0.1", "tslib": "^2.5.0" } }, "node_modules/@smithy/fetch-http-handler/node_modules/@smithy/protocol-http": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.5.tgz", - "integrity": "sha512-3t3fxj+ip4EPHRC2fQ0JimMxR/qCQ1LSQJjZZVZFgROnFLYWPDgUZqpoi7chr+EzatxJVXF/Rtoi5yLHOWCoZQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.9.tgz", + "integrity": "sha512-U1wl+FhYu4/BC+rjwh1lg2gcJChQhytiNQSggREgQ9G2FzmoK9sACBZvx7thyWMvRyHQTE22mO2d5UM8gMKDBg==", "dependencies": { - "@smithy/types": "^2.3.3", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -4607,13 +5526,13 @@ } }, "node_modules/@smithy/hash-node": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.9.tgz", - "integrity": "sha512-XP3yWd5wyCtiVmsY5Nuq/FUwyCEQ6YG7DsvRh7ThldNukGpCzyFdP8eivZJVjn4Fx7oYrrOnVoYZ0WEgpW1AvQ==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.15.tgz", + "integrity": "sha512-t/qjEJZu/G46A22PAk1k/IiJZT4ncRkG5GOCNWN9HPPy5rCcSZUbh7gwp7CGKgJJ7ATMMg+0Td7i9o1lQTwOfQ==", "dependencies": { - "@smithy/types": "^2.3.3", + "@smithy/types": "^2.5.0", "@smithy/util-buffer-from": "^2.0.0", - "@smithy/util-utf8": "^2.0.0", + "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" }, "engines": { @@ -4635,11 +5554,11 @@ } }, "node_modules/@smithy/invalid-dependency": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.9.tgz", - "integrity": "sha512-RuJqhYf8nViK96IIO9JbTtjDUuFItVfuuJhWw2yk7fv67yltQ7fZD6IQ2OsHHluoVmstnQJuCg5raXJR696Ubw==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.13.tgz", + "integrity": "sha512-XsGYhVhvEikX1Yz0kyIoLssJf2Rs6E0U2w2YuKdT4jSra5A/g8V2oLROC1s56NldbgnpesTYB2z55KCHHbKyjw==", "dependencies": { - "@smithy/types": "^2.3.3", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" } }, @@ -4666,12 +5585,12 @@ } }, "node_modules/@smithy/middleware-content-length": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.11.tgz", - "integrity": "sha512-Malj4voNTL4+a5ZL3a6+Ij7JTUMTa2R7c3ZIBzMxN5OUUgAspU7uFi1Q97f4B0afVh2joQBAWH5IQJUG25nl8g==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.15.tgz", + "integrity": "sha512-xH4kRBw01gJgWiU+/mNTrnyFXeozpZHw39gLb3JKGsFDVmSrJZ8/tRqu27tU/ki1gKkxr2wApu+dEYjI3QwV1Q==", "dependencies": { - "@smithy/protocol-http": "^3.0.5", - "@smithy/types": "^2.3.3", + "@smithy/protocol-http": "^3.0.9", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -4679,11 +5598,11 @@ } }, "node_modules/@smithy/middleware-content-length/node_modules/@smithy/protocol-http": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.5.tgz", - "integrity": "sha512-3t3fxj+ip4EPHRC2fQ0JimMxR/qCQ1LSQJjZZVZFgROnFLYWPDgUZqpoi7chr+EzatxJVXF/Rtoi5yLHOWCoZQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.9.tgz", + "integrity": "sha512-U1wl+FhYu4/BC+rjwh1lg2gcJChQhytiNQSggREgQ9G2FzmoK9sACBZvx7thyWMvRyHQTE22mO2d5UM8gMKDBg==", "dependencies": { - "@smithy/types": "^2.3.3", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -4691,14 +5610,16 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.0.9.tgz", - "integrity": "sha512-72/o8R6AAO4+nyTI6h4z6PYGTSA4dr1M7tZz29U8DEUHuh1YkhC77js0P6RyF9G0wDLuYqxb+Yh0crI5WG2pJg==", - "dependencies": { - "@smithy/middleware-serde": "^2.0.9", - "@smithy/types": "^2.3.3", - "@smithy/url-parser": "^2.0.9", - "@smithy/util-middleware": "^2.0.2", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.2.0.tgz", + "integrity": "sha512-tddRmaig5URk2106PVMiNX6mc5BnKIKajHHDxb7K0J5MLdcuQluHMGnjkv18iY9s9O0tF+gAcPd/pDXA5L9DZw==", + "dependencies": { + "@smithy/middleware-serde": "^2.0.13", + "@smithy/node-config-provider": "^2.1.5", + "@smithy/shared-ini-file-loader": "^2.2.4", + "@smithy/types": "^2.5.0", + "@smithy/url-parser": "^2.0.13", + "@smithy/util-middleware": "^2.0.6", "tslib": "^2.5.0" }, "engines": { @@ -4706,16 +5627,16 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.12.tgz", - "integrity": "sha512-YQ/ufXX4/d9/+Jf1QQ4J+CVeupC7BW52qldBTvRV33PDX9vxndlAwkFwzBcmnUFC3Hjf1//HW6I77EItcjNSCA==", - "dependencies": { - "@smithy/node-config-provider": "^2.0.12", - "@smithy/protocol-http": "^3.0.5", - "@smithy/service-error-classification": "^2.0.2", - "@smithy/types": "^2.3.3", - "@smithy/util-middleware": "^2.0.2", - "@smithy/util-retry": "^2.0.2", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.20.tgz", + "integrity": "sha512-X2yrF/SHDk2WDd8LflRNS955rlzQ9daz9UWSp15wW8KtzoTXg3bhHM78HbK1cjr48/FWERSJKh9AvRUUGlIawg==", + "dependencies": { + "@smithy/node-config-provider": "^2.1.5", + "@smithy/protocol-http": "^3.0.9", + "@smithy/service-error-classification": "^2.0.6", + "@smithy/types": "^2.5.0", + "@smithy/util-middleware": "^2.0.6", + "@smithy/util-retry": "^2.0.6", "tslib": "^2.5.0", "uuid": "^8.3.2" }, @@ -4724,11 +5645,11 @@ } }, "node_modules/@smithy/middleware-retry/node_modules/@smithy/protocol-http": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.5.tgz", - "integrity": "sha512-3t3fxj+ip4EPHRC2fQ0JimMxR/qCQ1LSQJjZZVZFgROnFLYWPDgUZqpoi7chr+EzatxJVXF/Rtoi5yLHOWCoZQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.9.tgz", + "integrity": "sha512-U1wl+FhYu4/BC+rjwh1lg2gcJChQhytiNQSggREgQ9G2FzmoK9sACBZvx7thyWMvRyHQTE22mO2d5UM8gMKDBg==", "dependencies": { - "@smithy/types": "^2.3.3", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -4736,11 +5657,11 @@ } }, "node_modules/@smithy/middleware-serde": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.9.tgz", - "integrity": "sha512-GVbauxrr6WmtCaesakktg3t5LR/yDbajpC7KkWc8rtCpddMI4ShAVO5Q6DqwX8MDFi4CLaY8H7eTGcxhl3jbLg==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.13.tgz", + "integrity": "sha512-tBGbeXw+XsE6pPr4UaXOh+UIcXARZeiA8bKJWxk2IjJcD1icVLhBSUQH9myCIZLNNzJIH36SDjUX8Wqk4xJCJg==", "dependencies": { - "@smithy/types": "^2.3.3", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -4748,11 +5669,11 @@ } }, "node_modules/@smithy/middleware-stack": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.3.tgz", - "integrity": "sha512-AlhPmbwpkC4lQBVaVHXczmjFvsAhDHhrakqLt038qFLotnJcvDLhmMzAtu23alBeOSkKxkTQq0LsAt2N0WpAbw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.7.tgz", + "integrity": "sha512-L1KLAAWkXbGx1t2jjCI/mDJ2dDNq+rp4/ifr/HcC6FHngxho5O7A5bQLpKHGlkfATH6fUnOEx0VICEVFA4sUzw==", "dependencies": { - "@smithy/types": "^2.3.3", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -4760,13 +5681,13 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.0.12.tgz", - "integrity": "sha512-df9y9ywv+JmS40Y60ZqJ4jfZiTCmyHQffwzIqjBjLJLJl0imf9F6DWBd+jiEWHvlohR+sFhyY+KL/qzKgnAq1A==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.1.5.tgz", + "integrity": "sha512-3Omb5/h4tOCuKRx4p4pkYTvEYRCYoKk52bOYbKUyz/G/8gERbagsN8jFm4FjQubkrcIqQEghTpQaUw6uk+0edw==", "dependencies": { - "@smithy/property-provider": "^2.0.10", - "@smithy/shared-ini-file-loader": "^2.0.11", - "@smithy/types": "^2.3.3", + "@smithy/property-provider": "^2.0.14", + "@smithy/shared-ini-file-loader": "^2.2.4", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -4774,14 +5695,14 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.1.5.tgz", - "integrity": "sha512-52uF+BrZaFiBh+NT/bADiVDCQO91T+OwDRsuaAeWZC1mlCXFjAPPQdxeQohtuYOe9m7mPP/xIMNiqbe8jvndHA==", - "dependencies": { - "@smithy/abort-controller": "^2.0.9", - "@smithy/protocol-http": "^3.0.5", - "@smithy/querystring-builder": "^2.0.9", - "@smithy/types": "^2.3.3", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.1.9.tgz", + "integrity": "sha512-+K0q3SlNcocmo9OZj+fz67gY4lwhOCvIJxVbo/xH+hfWObvaxrMTx7JEzzXcluK0thnnLz++K3Qe7Z/8MDUreA==", + "dependencies": { + "@smithy/abort-controller": "^2.0.13", + "@smithy/protocol-http": "^3.0.9", + "@smithy/querystring-builder": "^2.0.13", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -4789,11 +5710,11 @@ } }, "node_modules/@smithy/node-http-handler/node_modules/@smithy/protocol-http": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.5.tgz", - "integrity": "sha512-3t3fxj+ip4EPHRC2fQ0JimMxR/qCQ1LSQJjZZVZFgROnFLYWPDgUZqpoi7chr+EzatxJVXF/Rtoi5yLHOWCoZQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.9.tgz", + "integrity": "sha512-U1wl+FhYu4/BC+rjwh1lg2gcJChQhytiNQSggREgQ9G2FzmoK9sACBZvx7thyWMvRyHQTE22mO2d5UM8gMKDBg==", "dependencies": { - "@smithy/types": "^2.3.3", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -4801,11 +5722,11 @@ } }, "node_modules/@smithy/property-provider": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.10.tgz", - "integrity": "sha512-YMBVfh0ZMmJtbsUn+WfSwR32iRljZPdRN0Tn2GAcdJ+ejX8WrBXD7Z0jIkQDrQZr8fEuuv5x8WxMIj+qVbsPQw==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.14.tgz", + "integrity": "sha512-k3D2qp9o6imTrLaXRj6GdLYEJr1sXqS99nLhzq8fYmJjSVOeMg/G+1KVAAc7Oxpu71rlZ2f8SSZxcSxkevuR0A==", "dependencies": { - "@smithy/types": "^2.3.3", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -4826,11 +5747,11 @@ } }, "node_modules/@smithy/querystring-builder": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.9.tgz", - "integrity": "sha512-Yt6CPF4j3j1cuwod/DRflbuXxBFjJm7gAjy6W1RE21Rz5/kfGFqiZBXWmmXwGtnnhiLThYwoHK4S6/TQtnx0Fg==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.13.tgz", + "integrity": "sha512-JhXKwp3JtsFUe96XLHy/nUPEbaXqn6r7xE4sNaH8bxEyytE5q1fwt0ew/Ke6+vIC7gP87HCHgQpJHg1X1jN2Fw==", "dependencies": { - "@smithy/types": "^2.3.3", + "@smithy/types": "^2.5.0", "@smithy/util-uri-escape": "^2.0.0", "tslib": "^2.5.0" }, @@ -4839,11 +5760,11 @@ } }, "node_modules/@smithy/querystring-parser": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.9.tgz", - "integrity": "sha512-U6z4N743s4vrcxPW8p8+reLV0PjMCYEyb1/wtMVvv3VnbJ74gshdI8SR1sBnEh95cF8TxonmX5IxY25tS9qGfg==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.13.tgz", + "integrity": "sha512-TEiT6o8CPZVxJ44Rly/rrsATTQsE+b/nyBVzsYn2sa75xAaZcurNxsFd8z1haoUysONiyex24JMHoJY6iCfLdA==", "dependencies": { - "@smithy/types": "^2.3.3", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -4851,22 +5772,22 @@ } }, "node_modules/@smithy/service-error-classification": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.2.tgz", - "integrity": "sha512-GTUd2j63gKy7A+ggvSdn2hc4sejG7LWfE+ZMF17vzWoNyqERWbRP7HTPS0d0Lwg1p6OQCAzvNigSrEIWVFt6iA==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.6.tgz", + "integrity": "sha512-fCQ36frtYra2fqY2/DV8+3/z2d0VB/1D1hXbjRcM5wkxTToxq6xHbIY/NGGY6v4carskMyG8FHACxgxturJ9Pg==", "dependencies": { - "@smithy/types": "^2.3.3" + "@smithy/types": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@smithy/shared-ini-file-loader": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.0.11.tgz", - "integrity": "sha512-Sf0u5C5px6eykXi6jImDTp+edvG3REtPjXnFWU/J+b7S2wkXwUqFXqBL5DdM4zC1F+M8u57ZT7NRqDwMOw7/Tw==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.4.tgz", + "integrity": "sha512-9dRknGgvYlRIsoTcmMJXuoR/3ekhGwhRq4un3ns2/byre4Ql5hyUN4iS0x8eITohjU90YOnUCsbRwZRvCkbRfw==", "dependencies": { - "@smithy/types": "^2.3.3", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -4892,13 +5813,13 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.1.7.tgz", - "integrity": "sha512-r6T/oiBQ8vCbGqObH4/h0YqD0jFB1hAS9KFRmuTfaNJueu/L2hjmjqFjv3PV5lkbNHTgUYraSv4cFQ1naxiELQ==", + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.1.15.tgz", + "integrity": "sha512-rngZcQu7Jvs9UbHihK1EI67RMPuzkc3CJmu4MBgB7D7yBnMGuFR86tq5rqHfL2gAkNnMelBN/8kzQVvZjNKefQ==", "dependencies": { - "@smithy/middleware-stack": "^2.0.3", - "@smithy/types": "^2.3.3", - "@smithy/util-stream": "^2.0.12", + "@smithy/middleware-stack": "^2.0.7", + "@smithy/types": "^2.5.0", + "@smithy/util-stream": "^2.0.20", "tslib": "^2.5.0" }, "engines": { @@ -4906,9 +5827,9 @@ } }, "node_modules/@smithy/types": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.3.3.tgz", - "integrity": "sha512-zTdIPR9PvFVNRdIKMQu4M5oyTaycIbUqLheQqaOi9rTWPkgjGO2wDBxMA1rBHQB81aqAEv+DbSS4jfKyQMnXRA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.5.0.tgz", + "integrity": "sha512-/a31lYofrMBkJb3BuPlYJTMKDj0hUmKUP6JFZQu6YVuQVoAjubiY0A52U9S0Uysd33n/djexCUSNJ+G9bf3/aA==", "dependencies": { "tslib": "^2.5.0" }, @@ -4917,19 +5838,19 @@ } }, "node_modules/@smithy/url-parser": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.9.tgz", - "integrity": "sha512-NBnJ0NiY8z6E82Xd5VYUFQfKwK/wA/+QkKmpYUYP+cpH3aCzE6g2gvixd9vQKYjsIdRfNPCf+SFAozt8ljozOw==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.13.tgz", + "integrity": "sha512-okWx2P/d9jcTsZWTVNnRMpFOE7fMkzloSFyM53fA7nLKJQObxM2T4JlZ5KitKKuXq7pxon9J6SF2kCwtdflIrA==", "dependencies": { - "@smithy/querystring-parser": "^2.0.9", - "@smithy/types": "^2.3.3", + "@smithy/querystring-parser": "^2.0.13", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" } }, "node_modules/@smithy/util-base64": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.0.0.tgz", - "integrity": "sha512-Zb1E4xx+m5Lud8bbeYi5FkcMJMnn+1WUnJF3qD7rAdXpaL7UjkFQLdmW5fHadoKbdHpwH9vSR8EyTJFHJs++tA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.0.1.tgz", + "integrity": "sha512-DlI6XFYDMsIVN+GH9JtcRp3j02JEVuWIn/QOZisVzpIAprdsxGveFed0bjbMRCqmIFe8uetn5rxzNrBtIGrPIQ==", "dependencies": { "@smithy/util-buffer-from": "^2.0.0", "tslib": "^2.5.0" @@ -4981,13 +5902,13 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.11.tgz", - "integrity": "sha512-0syV1Mz/mCQ7CG/MHKQfH+w86xq59jpD0EOXv5oe0WBXLmq2lWPpVHl2Y6+jQ+/9fYzyZ5NF+NC/WEIuiv690A==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.19.tgz", + "integrity": "sha512-VHP8xdFR7/orpiABJwgoTB0t8Zhhwpf93gXhNfUBiwAE9O0rvsv7LwpQYjgvbOUDDO8JfIYQB2GYJNkqqGWsXw==", "dependencies": { - "@smithy/property-provider": "^2.0.10", - "@smithy/smithy-client": "^2.1.7", - "@smithy/types": "^2.3.3", + "@smithy/property-provider": "^2.0.14", + "@smithy/smithy-client": "^2.1.15", + "@smithy/types": "^2.5.0", "bowser": "^2.11.0", "tslib": "^2.5.0" }, @@ -4996,22 +5917,36 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.13.tgz", - "integrity": "sha512-6BtCHYdw5Z8r6KpW8tRCc3yURgvcQwfIEeHhR70BeSOfx8T/TXPPjb8A+K45+KASspa3fzrsSxeIwB0sAeMoHA==", - "dependencies": { - "@smithy/config-resolver": "^2.0.10", - "@smithy/credential-provider-imds": "^2.0.12", - "@smithy/node-config-provider": "^2.0.12", - "@smithy/property-provider": "^2.0.10", - "@smithy/smithy-client": "^2.1.7", - "@smithy/types": "^2.3.3", + "version": "2.0.25", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.25.tgz", + "integrity": "sha512-jkmep6/JyWmn2ADw9VULDeGbugR4N/FJCKOt+gYyVswmN1BJOfzF2umaYxQ1HhQDvna3kzm1Dbo1qIfBW4iuHA==", + "dependencies": { + "@smithy/config-resolver": "^2.0.18", + "@smithy/credential-provider-imds": "^2.1.1", + "@smithy/node-config-provider": "^2.1.5", + "@smithy/property-provider": "^2.0.14", + "@smithy/smithy-client": "^2.1.15", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { "node": ">= 10.0.0" } }, + "node_modules/@smithy/util-endpoints": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.0.4.tgz", + "integrity": "sha512-FPry8j1xye5yzrdnf4xKUXVnkQErxdN7bUIaqC0OFoGsv2NfD9b2UUMuZSSt+pr9a8XWAqj0HoyVNUfPiZ/PvQ==", + "dev": true, + "dependencies": { + "@smithy/node-config-provider": "^2.1.5", + "@smithy/types": "^2.5.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/@smithy/util-hex-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.0.0.tgz", @@ -5024,11 +5959,11 @@ } }, "node_modules/@smithy/util-middleware": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.2.tgz", - "integrity": "sha512-UGPZM+Ja/vke5pc/S8G0LNiHpVirtjppsXO+GK9m9wbzRGzPJTfnZA/gERUUN/AfxEy/8SL7U1kd7u4t2X8K1w==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.6.tgz", + "integrity": "sha512-7W4uuwBvSLgKoLC1x4LfeArCVcbuHdtVaC4g30kKsD1erfICyQ45+tFhhs/dZNeQg+w392fhunCm/+oCcb6BSA==", "dependencies": { - "@smithy/types": "^2.3.3", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -5036,12 +5971,12 @@ } }, "node_modules/@smithy/util-retry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.2.tgz", - "integrity": "sha512-ovWiayUB38moZcLhSFFfUgB2IMb7R1JfojU20qSahjxAgfOZvDWme3eOYUMtAVnouZ9kYJiFgHLy27qRH4NeeA==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.6.tgz", + "integrity": "sha512-PSO41FofOBmyhPQJwBQJ6mVlaD7Sp9Uff9aBbnfBJ9eqXOE/obrqQjn0PNdkfdvViiPXl49BINfnGcFtSP4kYw==", "dependencies": { - "@smithy/service-error-classification": "^2.0.2", - "@smithy/types": "^2.3.3", + "@smithy/service-error-classification": "^2.0.6", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -5049,17 +5984,17 @@ } }, "node_modules/@smithy/util-stream": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.12.tgz", - "integrity": "sha512-FOCpRLaj6gvSyUC5mJAACT+sPMPmp9sD1o+hVbUH/QxwZfulypA3ZIFdAg/59/IY0d/1Q4CTztsiHEB5LgjN4g==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.20.tgz", + "integrity": "sha512-tT8VASuD8jJu0yjHEMTCPt1o5E3FVzgdsxK6FQLAjXKqVv5V8InCnc0EOsYrijgspbfDqdAJg7r0o2sySfcHVg==", "dependencies": { - "@smithy/fetch-http-handler": "^2.1.5", - "@smithy/node-http-handler": "^2.1.5", - "@smithy/types": "^2.3.3", - "@smithy/util-base64": "^2.0.0", + "@smithy/fetch-http-handler": "^2.2.6", + "@smithy/node-http-handler": "^2.1.9", + "@smithy/types": "^2.5.0", + "@smithy/util-base64": "^2.0.1", "@smithy/util-buffer-from": "^2.0.0", "@smithy/util-hex-encoding": "^2.0.0", - "@smithy/util-utf8": "^2.0.0", + "@smithy/util-utf8": "^2.0.2", "tslib": "^2.5.0" }, "engines": { @@ -5078,9 +6013,9 @@ } }, "node_modules/@smithy/util-utf8": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.0.0.tgz", - "integrity": "sha512-rctU1VkziY84n5OXe3bPNpKR001ZCME2JCaBBFgtiM2hfKbHFudc/BkMuPab8hRbLd0j3vbnBTTZ1igBf0wgiQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.0.2.tgz", + "integrity": "sha512-qOiVORSPm6Ce4/Yu6hbSgNHABLP2VMv8QOC3tTDNHHlWY19pPyc++fBTbZPtx6egPXi4HQxKDnMxVxpbtX2GoA==", "dependencies": { "@smithy/util-buffer-from": "^2.0.0", "tslib": "^2.5.0" @@ -5090,12 +6025,12 @@ } }, "node_modules/@smithy/util-waiter": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.0.9.tgz", - "integrity": "sha512-Hy9Cs0FtIacC1aVFk98bm/7CYqim9fnHAPRnV/SB2mj02ExYs/9Dn5SrNQmtTBTLCn65KqYnNVBNS8GuGpZOOw==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.0.13.tgz", + "integrity": "sha512-YovIQatiuM7giEsRFotqJa2i3EbU2EE3PgtpXgtLgpx5rXiZMAwPxXYDFVFhuO0lbqvc/Zx4n+ZIisXOHPSqyg==", "dependencies": { - "@smithy/abort-controller": "^2.0.9", - "@smithy/types": "^2.3.3", + "@smithy/abort-controller": "^2.0.13", + "@smithy/types": "^2.5.0", "tslib": "^2.5.0" }, "engines": { @@ -7352,9 +8287,9 @@ "dev": true }, "node_modules/cli-spinners": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", - "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz", + "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==", "dev": true, "engines": { "node": ">=6" @@ -9901,6 +10836,26 @@ "lodash": "^4.17.15" } }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -14054,7 +15009,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -14217,8 +15171,7 @@ "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node_modules/next-tick": { "version": "1.1.0", @@ -16074,15 +17027,15 @@ } }, "node_modules/serverless": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/serverless/-/serverless-3.34.0.tgz", - "integrity": "sha512-xtWAg78NGgboolP/GArdorx+UHyESJgriGSE6Qpgg9trTYsKMyd8YKaMIM3sidy89e45XZopRSpvnPYoQCJOBA==", + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/serverless/-/serverless-3.36.0.tgz", + "integrity": "sha512-VY7UzP4u1/yuTNpF2Wssrru16qhhReLCjgL2oeHCvhujxPyTFv9TQGSlLhaT0ZUCXhRBphwVwITTRopo6NSUgA==", "dev": true, "hasInstallScript": true, "dependencies": { - "@serverless/dashboard-plugin": "^6.2.3", - "@serverless/platform-client": "^4.3.2", - "@serverless/utils": "^6.11.1", + "@serverless/dashboard-plugin": "^7.1.0", + "@serverless/platform-client": "^4.4.0", + "@serverless/utils": "^6.13.1", "abort-controller": "^3.0.0", "ajv": "^8.12.0", "ajv-formats": "^2.1.1", @@ -16438,9 +17391,9 @@ "dev": true }, "node_modules/simple-git": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.19.1.tgz", - "integrity": "sha512-Ck+rcjVaE1HotraRAS8u/+xgTvToTuoMkT9/l9lvuP5jftwnYUp6DwuJzsKErHgfyRk8IB8pqGHWEbM3tLgV1w==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.20.0.tgz", + "integrity": "sha512-ozK8tl2hvLts8ijTs18iFruE+RoqmC/mqZhjs/+V7gS5W68JpJ3+FCTmLVqmR59MaUQ52MfGQuWsIqfsTbbJ0Q==", "dev": true, "dependencies": { "@kwsites/file-exists": "^1.1.1", @@ -16504,7 +17457,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -17788,6 +18740,18 @@ "node": ">=4.2.0" } }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/unbzip2-stream": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", @@ -18347,6 +19311,11 @@ "node": ">=0.6.0" } }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, "node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", diff --git a/backend/package.json b/backend/package.json index ac6912bd8..5331490c3 100644 --- a/backend/package.json +++ b/backend/package.json @@ -23,6 +23,7 @@ "express": "^4.18.1", "global-agent": "^2.2.0", "got": "^11.8.5", + "handlebars": "^4.7.8", "helmet": "^4.1.1", "http-proxy-middleware": "^2.0.6", "jsdom": "^22.1", diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index fe7713ad3..ae6fcde63 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -9,9 +9,9 @@ import { ClassType } from 'class-transformer/ClassTransformer'; import { plainToClass } from 'class-transformer'; import { SES } from 'aws-sdk'; import * as nodemailer from 'nodemailer'; -import { readFile }from 'fs' -import { compile } from 'handlebars'; -import { promisify } from 'util'; +import * as fs from 'fs'; +import * as handlebars from 'handlebars'; +import * as util from 'util'; export const validateBody = async ( obj: ClassType, @@ -86,7 +86,6 @@ export const sendEmail = async ( recipient: string, subject: string, body: string, - html: string ) => { const transporter = nodemailer.createTransport({ SES: new SES({ region: 'us-east-1' }) @@ -97,7 +96,6 @@ export const sendEmail = async ( to: recipient, subject: subject, text: body, - html: html replyTo: process.env.CROSSFEED_SUPPORT_EMAIL_REPLYTO! }); }; @@ -110,35 +108,35 @@ export const sendNotificationEmail = async ( p_lastname: string, ) => { - const transporter = nodemailer.createTransport({ - SES: new SES({ region: 'us-east-1' }) - }); - const readFile = promisify(fs.readFile); + const transporter = nodemailer.createTransport({ + SES: new SES({ region: 'us-east-1' }) + }); - html = await readFile('../../email_templates/template.html', 'utf8'); - template = handlebars.compile(html); - data = { - email: p_email, - firstName: p_firstName, - lastName: p_lastname - } + const fs = require('fs').promises; + const html = await fs.readFile('../../email_templates/template.html', 'utf8'); + const template = handlebars.compile(html); + const data = { + email: p_email, + firstName: p_firstName, + lastName: p_lastname + } - htmlToSend = template(data); + const htmlToSend = template(data); - mailOptions = { - from: process.env.CROSSFEED_SUPPORT_EMAIL_SENDER, - to: recepient, - subject: subject, - html: htmlToSend, - attachments: [{ - filename: '../../email_templates/img/example.png', - path: __dirname + 'example.png', - cid: 'example' - }] - }; + const mailOptions = { + from: process.env.CROSSFEED_SUPPORT_EMAIL_SENDER, + to: recepient, + subject: subject, + html: htmlToSend, + attachments: [{ + filename: '../../email_templates/img/example.png', + path: __dirname + 'example.png', + cid: 'example' + }] + }; - nodemailer.sendMail(mailOptions, (error, info) => { - if (error) console.log(error); - }) + await transporter.sendMail(mailOptions, (error, info) => { + if (error) console.log(error); + }) }; From d23ad7a4db7f937b3496d1fc530477cbaf6dd65f Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 16 Nov 2023 15:29:55 -0600 Subject: [PATCH 35/82] Add new endpoint for adding user to organization --- backend/src/api/app.ts | 4 + backend/src/api/organizations.ts | 107 ++++++++++++++++- backend/src/api/users.ts | 192 +++++++++++++++++++++++++++---- 3 files changed, 282 insertions(+), 21 deletions(-) diff --git a/backend/src/api/app.ts b/backend/src/api/app.ts index 4f5ade258..f8ddae5ad 100644 --- a/backend/src/api/app.ts +++ b/backend/src/api/app.ts @@ -334,6 +334,10 @@ authenticatedRoute.delete( '/organizations/:organizationId', handlerToExpress(organizations.del) ); +authenticatedRoute.post( + '/v2/organizations/:organizationId/users', + handlerToExpress(organizations.addUserV2) +); authenticatedRoute.post( '/organizations/:organizationId/roles/:roleId/approve', handlerToExpress(organizations.approveRole) diff --git a/backend/src/api/organizations.ts b/backend/src/api/organizations.ts index 08c6845a9..b0a970ab0 100644 --- a/backend/src/api/organizations.ts +++ b/backend/src/api/organizations.ts @@ -6,7 +6,9 @@ import { IsUUID, IsOptional, IsNotEmpty, - IsNumber + IsNumber, + IsEnum, + } from 'class-validator'; import { Organization, @@ -154,6 +156,35 @@ class NewDomain { domain: string; } +class NewOrganizationRoleDB { + @IsEnum(User) + user: User; + + @IsEnum(Organization) + organization: Organization; + + @IsBoolean() + approved: boolean; + + @IsString() + role: string; + + @IsEnum(User) + approvedBy: User; + + @IsEnum(User) + createdBy: User; +} + +class NewOrganizationRoleBody { + @IsString() + userId: string; + + @IsString() + @IsOptional() + role: any; +} + const findOrCreateTags = async ( tags: OrganizationTag[] ): Promise => { @@ -832,4 +863,78 @@ export const updateV2 = wrapHandler(async (event) => { }; } return NotFound; +}); + +/** + * @swagger + * + * /v2/organizations/{orgId}/users + * post: + * description: Add a user to a particular organization. + * parameters: + * - in: path + * name: orgId + * description: Organization id + * tags: + * - Organizations + */ + +export const addUserV2 = wrapHandler(async (event) => { + // Permissions + if (!isRegionalAdmin(event)) return Unauthorized; + // TODO: check permissions + // if (!isOrgAdmin(event, id)) return Unauthorized; + + // Validate the body + const body = await validateBody( + NewOrganizationRoleBody, + event.body + ); + + // Connect to the database + await connectToDatabase(); + + // Get the organization id from the path + const orgId = event.pathParameters?.organizationId; + // confirm that the orgId is a valid UUID + if (!orgId || !isUUID(orgId)) { + return NotFound; + } + // Get Organization from the database + const org = await Organization.findOne(orgId); + + // Get the user id from the body + const userId = body.userId + // confirm that the userId is a valid UUID + if (!userId || !isUUID(userId)) { + return NotFound; + } + // Get User from the database + const user = await User.findOneOrFail(userId); + + const newRoleData = { + user: user, + organization: org, + approved: true, + // role: body.role, + role: body.role, + approvedBy: event.requestContext.authorizer!.id, + createdBy: event.requestContext.authorizer!.id + } + // const validatedRoleData = await validateBody(NewOrganizationRoleDB, JSON.stringify(newRoleData)); + + // Add a role to make association to user/organization + const newRole = Role.create(newRoleData); + await Role.save(newRole); + // const roleId = newRole.id; + + // Handle response + if (newRole) { + // const roleResp = await Organization.findOne(roleId); + return { + statusCode: 200, + body: JSON.stringify(newRole) + }; + } + return NotFound; }); \ No newline at end of file diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index 3bbc840e0..cb1094eed 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -128,6 +128,15 @@ class UpdateUser { @IsOptional() userType: UserType; + // @IsString() + @IsEnum(Organization) + @IsOptional() + organization: Organization; + + @IsString() + @IsOptional() + role: string; + } @@ -501,7 +510,8 @@ export const getByRegionId = wrapHandler(async (event) => { const regionId = event.pathParameters?.regionId; await connectToDatabase(); const result = await User.find({ - where: { regionId: regionId } + where: { regionId: regionId }, + relations: ['roles', 'roles.organization'] }); if (result) { return { @@ -531,7 +541,8 @@ export const getByState = wrapHandler(async (event) => { const state = event.pathParameters?.state; await connectToDatabase(); const result = await User.find({ - where: { state: state } + where: { state: state }, + relations: ['roles', 'roles.organization'] }); if (result) { return { @@ -578,14 +589,16 @@ export const register = wrapHandler(async (event) => { await User.save(createdUser); id = createdUser.id; - // Send Registration confirmation emailto user + // Send Registration confirmation email to user // TODO: replace with html email function to user // Send new user pending approval email to regionalAdmin // TODO: replace with html email function to regianlAdmin } - const savedUser = await User.findOne({ id: id },); + const savedUser = await User.findOne(id, { + relations: ['roles', 'roles.organization'] + }); return { statusCode: 200, @@ -647,13 +660,18 @@ export const getAllV2 = wrapHandler(async (event) => { await connectToDatabase(); if (Object.entries(filterParams).length === 0) { - const result = await User.find({}); + const result = await User.find({ + relations: ['roles', 'roles.organization'] + }); return { statusCode: 200, body: JSON.stringify(result) } } else { - const result = await User.find({where: filterParams}); + const result = await User.find({ + where: filterParams, + relations: ['roles', 'roles.organization'] + }); return { statusCode: 200, body: JSON.stringify(result) @@ -661,6 +679,99 @@ export const getAllV2 = wrapHandler(async (event) => { } }); +/** + * @swagger + * + * /v2/users: + * post: + * description: Create a new user. + * tags: + * - Users + */ +export const inviteV2 = wrapHandler(async (event) => { + const body = await validateBody(NewUser, event.body); + // Invoker must be either an organization or global admin + if (body.organization) { + if (!isOrgAdmin(event, body.organization)) return Unauthorized; + } else { + if (!isGlobalWriteAdmin(event)) return Unauthorized; + } + if (!isGlobalWriteAdmin(event) && body.userType) { + // Non-global admins can't set userType + return Unauthorized; + } + + await connectToDatabase(); + + body.email = body.email.toLowerCase(); + + // Check if user already exists + let user = await User.findOne({ + email: body.email + }); + + let organization: Organization | undefined; + + if (body.organization) { + organization = await Organization.findOne(body.organization); + } + + if (!user) { + user = await User.create({ + invitePending: true, + ...body + }); + await User.save(user); + await sendInviteEmail(user.email, organization); + } else if (!user.firstName && !user.lastName) { + // Only set the user first name and last name the first time the user is invited. + user.firstName = body.firstName; + user.lastName = body.lastName; + await User.save(user); + } + + // Always update the userType, if specified in the request. + if (body.userType) { + user.userType = body.userType; + await User.save(user); + } + + if (organization) { + // Create approved role if organization supplied + await Role.createQueryBuilder() + .insert() + .values({ + user: user, + organization: { id: body.organization }, + approved: true, + createdBy: { id: event.requestContext.authorizer!.id }, + approvedBy: { id: event.requestContext.authorizer!.id }, + role: body.organizationAdmin ? 'admin' : 'user' + }) + .onConflict( + ` + ("userId", "organizationId") DO UPDATE + SET "role" = excluded."role", + "approved" = excluded."approved", + "approvedById" = excluded."approvedById" + ` + ) + .execute(); + } + + const updated = await User.findOne( + { + id: user.id + }, + { + relations: ['roles', 'roles.organization'] + } + ); + return { + statusCode: 200, + body: JSON.stringify(updated) + }; +}); /** * @swagger @@ -676,36 +787,77 @@ export const getAllV2 = wrapHandler(async (event) => { * - Users */ export const updateV2 = wrapHandler(async (event) => { - if (!isRegionalAdmin(event)) return Unauthorized; // Get the user id from the path - const id = event.pathParameters?.userId; + const userId = event.pathParameters?.userId; - // confirm that the id is a valid UUID - if (!id || !isUUID(id)) { + // Confirm that the id is a valid UUID + if (!userId || !isUUID(userId)) { return NotFound; } - // TODO: check permissions - // if (!isOrgAdmin(event, id)) return Unauthorized; - // Validate the body - const validatedBody = await validateBody( - UpdateUser, - event.body - ); + const body = await validateBody(UpdateUser, event.body); + + // User type permissions check + // if (!isRegionalAdmin(event)) return Unauthorized; + + // // Validate the body + // const validatedBody = await validateBody( + // UpdateUser, + // event.body + // ); // Connect to the database await connectToDatabase(); + const user = await User.findOne(userId); + if (!user) { + return NotFound; + } + + // TODO: check permissions + // if (!isOrgAdmin(event, id)) return Unauthorized; + + // If organization id is supplied, create approved role + // if (body.organization) { + // // Check if organization exists + // const organization = await Organization.findOne(body.organization); + // if (organization) { + // // Create approved role if organization supplied + // await Role.createQueryBuilder() + // .insert() + // .values({ + // user: user, + // oganization: organization, + // approved: true, + // createdBy: { id: event.requestContext.authorizer!.id }, + // approvedBy: { id: event.requestContext.authorizer!.id }, + // role: "user" + // }) + // .onConflict( + // ` + // ("userId", "organizationId") DO UPDATE + // SET "role" = excluded."role", + // "approved" = excluded."approved", + // "approvedById" = excluded."approvedById" + // ` + // ) + // .execute(); + // } + // } + // Update the user - const updatedResp = await User.update(id, validatedBody); + const updatedResp = await User.update(userId, body); // Handle response if (updatedResp) { - const updatedOrg = await User.findOne(id); + const updatedUser = await User.findOne( + userId, + { relations: ['roles', 'roles.organization'] } + ); return { statusCode: 200, - body: JSON.stringify(updatedOrg) + body: JSON.stringify(updatedUser) }; } return NotFound; From 7129544902bbde0ae136a99c51fd7689ac16557f Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Thu, 16 Nov 2023 16:59:33 -0500 Subject: [PATCH 36/82] Replace users test data with API data in RegionUsers.tsx --- .../src/pages/RegionUsers/RegionUsers.tsx | 57 ++++++++++++++----- 1 file changed, 42 insertions(+), 15 deletions(-) diff --git a/frontend/src/pages/RegionUsers/RegionUsers.tsx b/frontend/src/pages/RegionUsers/RegionUsers.tsx index cdb86af6e..afaf01c27 100644 --- a/frontend/src/pages/RegionUsers/RegionUsers.tsx +++ b/frontend/src/pages/RegionUsers/RegionUsers.tsx @@ -1,6 +1,5 @@ import React, { useState, useEffect, useCallback } from 'react'; import { initializeUser, User, Organization as OrganizationType } from 'types'; -import { testUsers } from './testData'; import ConfirmDialog from 'components/Dialog/ConfirmDialog'; import InfoDialog from 'components/Dialog/InfoDialog'; import { useAuthContext } from 'context'; @@ -16,12 +15,6 @@ import DoneIcon from '@mui/icons-material/Done'; import { CheckCircleOutline as CheckIcon } from '@mui/icons-material'; import CloseIcon from '@mui/icons-material/Close'; -export interface ApiResponse { - result: User[]; - count: number; - url?: string; -} - type DialogStates = { isOrgDialogOpen: boolean; isDenyDialogOpen: boolean; @@ -38,7 +31,10 @@ type ErrorStates = { type CloseReason = 'backdropClick' | 'escapeKeyDown' | 'closeButtonClick'; export const RegionUsers: React.FC = () => { - const { apiGet } = useAuthContext(); + const { apiGet, user } = useAuthContext(); + const regionId = user?.regionId; + const orgsURL = `/organizations/regionId/${regionId}`; + const usersURL = `/v2/users?regionId=${regionId}&invitePending=`; const pendingCols: GridColDef[] = [ { field: 'fullName', headerName: 'Name', minWidth: 100, flex: 1 }, { field: 'email', headerName: 'Email', minWidth: 100, flex: 2 }, @@ -107,21 +103,46 @@ export const RegionUsers: React.FC = () => { const [selectedUser, selectUser] = useState(initializeUser); const [selectedOrgRows, selectOrgRows] = useState([]); const [organizations, setOrganizations] = useState([]); - const orgURL = '/organizations/regionId/'; + const [pendingUsers, setPendingUsers] = useState([]); + const [currentUsers, setCurrentUsers] = useState([]); const fetchOrganizations = useCallback(async () => { try { - const rows = await apiGet(orgURL + '1'); + const rows = await apiGet(orgsURL); setOrganizations(rows); setErrorStates({ ...errorStates, getOrgsError: '' }); } catch (e: any) { setErrorStates({ ...errorStates, getOrgsError: e.message }); } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [apiGet]); + const fetchPendingUsers = useCallback(async () => { + try { + const rows = await apiGet(`${usersURL}true`); + setPendingUsers(rows); + setErrorStates({ ...errorStates, getOrgsError: '' }); + } catch (e: any) { + setErrorStates({ ...errorStates, getUsersError: e.message }); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [apiGet]); + const fetchCurrentUsers = useCallback(async () => { + try { + const rows = await apiGet(`${usersURL}false`); + setCurrentUsers(rows); + setErrorStates({ ...errorStates, getOrgsError: '' }); + } catch (e: any) { + setErrorStates({ ...errorStates, getUsersError: e.message }); + } + // eslint-disable-next-line react-hooks/exhaustive-deps }, [apiGet]); useEffect(() => { fetchOrganizations(); - }, [apiGet, fetchOrganizations]); + fetchPendingUsers(); + fetchCurrentUsers(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); // TODO: Update selectedUser with invitePending as false and add selected organizations. const handleSubmitClick = (value: CloseReason) => { @@ -200,21 +221,27 @@ export const RegionUsers: React.FC = () => { Pending Requests - + - + {errorStates.getUsersError && ( + + Error retrieving users from the database:{' '} + {errorStates.getUsersError} + + )} + Members of Region 1 From c3f47db9e1f7225872b427cb63dc53771a752f16 Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Fri, 17 Nov 2023 12:07:49 -0500 Subject: [PATCH 37/82] Add transformData func and update col widths in RegionUsers.tsx --- .../src/pages/RegionUsers/RegionUsers.tsx | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/frontend/src/pages/RegionUsers/RegionUsers.tsx b/frontend/src/pages/RegionUsers/RegionUsers.tsx index afaf01c27..029a10cea 100644 --- a/frontend/src/pages/RegionUsers/RegionUsers.tsx +++ b/frontend/src/pages/RegionUsers/RegionUsers.tsx @@ -30,6 +30,13 @@ type ErrorStates = { type CloseReason = 'backdropClick' | 'escapeKeyDown' | 'closeButtonClick'; +const transformData = (data: User[]): User[] => { + return data.map(({ roles, ...user }) => ({ + ...user, + roles, + organizations: roles.map((role) => ' ' + role.organization.name), + })); +} export const RegionUsers: React.FC = () => { const { apiGet, user } = useAuthContext(); const regionId = user?.regionId; @@ -38,12 +45,13 @@ export const RegionUsers: React.FC = () => { const pendingCols: GridColDef[] = [ { field: 'fullName', headerName: 'Name', minWidth: 100, flex: 1 }, { field: 'email', headerName: 'Email', minWidth: 100, flex: 2 }, - { field: 'createdAt', headerName: 'Created At', minWidth: 100, flex: 2 }, + { field: 'state', headerName: 'State', minWidth: 100, flex: 1 }, + { field: 'createdAt', headerName: 'Created At', minWidth: 100, flex: 1.5 }, { field: 'status', headerName: 'Registration Status', minWidth: 250, - flex: 1, + flex: 2, renderCell: (cellValues: GridRenderCellParams) => { return ( @@ -71,17 +79,18 @@ export const RegionUsers: React.FC = () => { const memberCols: GridColDef[] = [ { field: 'fullName', headerName: 'Name', minWidth: 100, flex: 1 }, { field: 'email', headerName: 'Email', minWidth: 100, flex: 2 }, + { field: 'state', headerName: 'State', minWidth: 100, flex: 1 }, { field: 'lastLoggedIn', headerName: 'Last Logged In', minWidth: 100, - flex: 1 + flex: 1.5 }, { field: 'organizations', headerName: 'Organizations', minWidth: 250, - flex: 3 + flex: 2 } ]; const orgCols: GridColDef[] = [ @@ -129,7 +138,7 @@ export const RegionUsers: React.FC = () => { const fetchCurrentUsers = useCallback(async () => { try { const rows = await apiGet(`${usersURL}false`); - setCurrentUsers(rows); + setCurrentUsers(transformData(rows)); setErrorStates({ ...errorStates, getOrgsError: '' }); } catch (e: any) { setErrorStates({ ...errorStates, getUsersError: e.message }); From e772e45d8bf3e2aeeee356fbaa31a0b688179443 Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Mon, 20 Nov 2023 14:30:30 -0600 Subject: [PATCH 38/82] Modify helpers.ts, add html email template and image files. --- backend/email_templates/banner.png | Bin 0 -> 946654 bytes .../crossfeed_registration_notification.html | 104 ++++++++++++++++++ backend/email_templates/email.png | Bin 0 -> 850 bytes backend/email_templates/facebook.png | Bin 0 -> 5220 bytes backend/email_templates/instagram.png | Bin 0 -> 14648 bytes backend/email_templates/linkedin.png | Bin 0 -> 5128 bytes backend/email_templates/twitter.png | Bin 0 -> 11011 bytes backend/email_templates/web.png | Bin 0 -> 1716 bytes backend/src/api/helpers.ts | 50 +++++++-- 9 files changed, 143 insertions(+), 11 deletions(-) create mode 100644 backend/email_templates/banner.png create mode 100644 backend/email_templates/crossfeed_registration_notification.html create mode 100644 backend/email_templates/email.png create mode 100644 backend/email_templates/facebook.png create mode 100644 backend/email_templates/instagram.png create mode 100644 backend/email_templates/linkedin.png create mode 100644 backend/email_templates/twitter.png create mode 100644 backend/email_templates/web.png diff --git a/backend/email_templates/banner.png b/backend/email_templates/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..33ebcd2788df6ade9cb3fe6ae9a4522a098cccbe GIT binary patch literal 946654 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

ygcdI~Z9&=!h#( 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⁢I^!1RqwRotnHwDzP98PP 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 Z{lDbW@?-6BhHwA?002ovPDHLkV1k=fmXQDe literal 0 HcmV?d00001 diff --git a/backend/email_templates/crossfeed_registration_notification.html b/backend/email_templates/crossfeed_registration_notification.html new file mode 100644 index 000000000..842fbba1d --- /dev/null +++ b/backend/email_templates/crossfeed_registration_notification.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    CROSSFEED USER ACCOUNT CREATION

    +
    +

    {{firstname}} {{lastname}},

    +
    +

    Your request to create an account with Crossfeed has been received. After approval from your Regional Manager, you will receive another email with your approval status and further steps.

    +
    +

    Thanks,

    +

    The Crossfeed Team

    +

    +

    CISA | Defend Today | Secure Tomorrow

    +
    + + + + + + + + + + + + + + + +

    cisa.gov

    vulnerability@cisa.dhs.gov

    Linkedin.com/company/cisagov

    @CISAgov | @cyber | @uscert_gov

    Facebook.com/CISA

    @cisagov

    + + \ No newline at end of file diff --git a/backend/email_templates/email.png b/backend/email_templates/email.png new file mode 100644 index 0000000000000000000000000000000000000000..55fa88860c8d548ab30ee97c3ab7dcba5083edc8 GIT binary patch literal 850 zcmV-Y1FigtP)=}t4NdnyR_0Gq#`N}wwrBxDGKf;tthq>Qv|`D+9ughswN0h z6g+s-OX#f>RHzhkXoT#(GmnSOo3N$Uebe0_bUxR2=6UAFyEC&dL{St)Q4~c{6h+bh zkrW!ex4IRtRWJeT(UNikNQSdAS1Y$Wos|^ov8aEO@*JggefSJ46kTO!M8PG{Sh&fe zWQC>{ZuVOBDW23JOx{D2Ercdmm)@2LXbK_w9kFv{rE#W*=L?lsb@RbbH$(GXgd=FO z@sWb91i6bb4(WNOhW}hmDOYIp>C?)M8?9B(&E8|~`yc3gc@lhr$~H796$>TcQot4n z{!4W81TV+ViNE!Si zzugz?b<9p6?nPv&jTxB#8IdXzP|2)`G%+0U*+PFmEYsu(LRD41rDNa9X@0Ej#IbRf$}QL zr_?;~72bc&^od&!t+lKAEY7_T97dB34?HDT5vbV3`ftp@H$Y?qnhpa8*gblYCKtFi z@<-d)H%6Z!>gXtzTJw=)wVzBlFA~Q?R`w@A&bs=Y64U+3_ zpqzy~*cM#+5x)5$04^1R?@5qcZvy2kfDe%G)&IJix2eDa{vGU literal 0 HcmV?d00001 diff --git a/backend/email_templates/facebook.png b/backend/email_templates/facebook.png new file mode 100644 index 0000000000000000000000000000000000000000..220681df71282fbbd179c7a05cfcd3580823c289 GIT binary patch literal 5220 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 edDeeEoBs!naC|LU`J*2I00008j*6gJ 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 literal 0 HcmV?d00001 diff --git a/backend/email_templates/web.png b/backend/email_templates/web.png new file mode 100644 index 0000000000000000000000000000000000000000..2f46bc154adf13c7ceb9d58e60da9da949333fd5 GIT binary patch literal 1716 zcmV;l221&gP)%$)?VUTQ%D<3RUkD6X{j^IHpUhuF%?Xc8k@!0OHC$P*cl*%E;ZH`Z%IuJ z!_2U@X0cY&LbZv2u>}em+hR4n(1Jp_%+B|nbNu5Q=)w%i%=$n8mz%_%@D7}blZ+nA7&;F%eI%+~9ta%4#Dg#mk ztO4tuzlgh~h<61h1QSGKo%`UUWFzs+_4U%JSA@`$Y9imi8|T)b{Bi#%5Gmq6dGQ5{IzFxmS~l1M*_Zd!>cRi`5oV9b2B_wTKhR(&Z}T%4x1Hs9x;TJg5lUZ!H5WK=pnV_g zmw}o^)UgvOMWXq6w0|qsoW|H?Z0{RAZ^+`|7%itq@tPJAUa->2b69g1`Q$d@Lp^A3 zYo!Q4X|U$c94p?!bE&WvX0^veylp0M9X15*wW9cH#h7WkLL7p%RVHu(F2h%bI`KZ1 z$C{m}DhI(?fH}0c%&L`I9f56TgLFoj1aQ1rF(jKch`fWYLe3iSn&wbctH|DEP;87Q zx=@4zXeTC@K!mpKNV%>!1HxzM+1OG^!aRWq4xyW(j5Qu61XxK=x`R`#JFwP zQaF9;MHqGAvUM;PL<~|X#nQ}`EE(#gFz__tsrk5|4|o;rgZ3jq&Vu$nim^)>y?+ek zM>siBd8`Cfg}*5fVL6U-QJ_UD{0P5FzE3=TC;O-G!Q&;G^&jXS>SlZDKWs~8PoJXEljqsI@E$ZSFTo2p)f zy3=1kytzOZHrPtOzfdc&`g$kvvXo9A#x(6=LCQniZB+}_Sy%%&5Oo}Q9A_Sj1fbT>F^OQk6i`w@#=-G4DEw8J2Am$$$clyjirB+ zShs?n_CL~{Sp~qI=`O@Q4YZZ-CXbR`{raU70g&s@F}isS<8DBC%~cB)5(zNj7T$mN zixdX;^QCp4VqfbsX#G=^z6Hk}0Ql}QM9oG7!r-5Xxkv|maZKWlt*(puoGR^&)?mX7 z`D7meiOkm#*?>|rFlS@?tf7?3j|c(A-N(q_TXi#;s018;#fGJdsvPaWCURu~-I<3_ zY74k=0svGwxZN~FJDm9zBYjUzgv!K46#7Om;XS}nwEuws8{|1wTpbBWuSa=<&bS-{^>b`{U1LgJYu%I}TR?fAGk`=G!Z z0CW|9OMc+Tlc6zHk7vTN^-D3q5efq@5+CZpk8K4w_mChGeYfE$P%mKZw<#nKPL1 { @@ -113,12 +111,11 @@ export const sendNotificationEmail = async ( }); const fs = require('fs').promises; - const html = await fs.readFile('../../email_templates/template.html', 'utf8'); + const html = await fs.readFile('../../email_templates/crossfeed_registration_notification.html', 'utf8'); const template = handlebars.compile(html); const data = { - email: p_email, - firstName: p_firstName, - lastName: p_lastname + first_name: p_firstName, + last_name: p_lastname } const htmlToSend = template(data); @@ -126,13 +123,44 @@ export const sendNotificationEmail = async ( const mailOptions = { from: process.env.CROSSFEED_SUPPORT_EMAIL_SENDER, to: recepient, - subject: subject, + subject: "Crossfeed Account Creation Request Received", html: htmlToSend, attachments: [{ - filename: '../../email_templates/img/example.png', - path: __dirname + 'example.png', - cid: 'example' - }] + filename: 'banner.png', + path: 'banner.png', + cid: 'CISA Banner' + }, + { + filename: 'web.png', + path: 'banner.png', + cid: 'CISA Web' + }, + { + filename: 'email.png', + path: 'email.png', + cid: 'CISA Email' + }, + { + filename: 'linkedin.png', + path: 'linkedin.png', + cid: 'CISA LinkedIn' + }, + { + filename: 'twitter.png', + path: 'twitter.png', + cid: 'CISA Twitter' + }, + { + filename: 'facebook.png', + path: 'facebooK.png', + cid: 'CISA Facebook' + }, + { + filename: 'instagram.png', + path: 'instagram.png', + cid: 'CISA Instagram' + }, + ] }; await transporter.sendMail(mailOptions, (error, info) => { From 41970adfd7dbe9926d3752e64c0f797d37e48c69 Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Tue, 21 Nov 2023 15:15:41 -0600 Subject: [PATCH 39/82] Add templates for user approval and denial, modifications to helpers.ts and existing template. --- .../crossfeed_approval_notification.html | 104 ++++++++++++++++++ .../crossfeed_denial_notification.html | 104 ++++++++++++++++++ .../crossfeed_registration_notification.html | 2 +- backend/src/api/helpers.ts | 12 +- 4 files changed, 214 insertions(+), 8 deletions(-) create mode 100644 backend/email_templates/crossfeed_approval_notification.html create mode 100644 backend/email_templates/crossfeed_denial_notification.html diff --git a/backend/email_templates/crossfeed_approval_notification.html b/backend/email_templates/crossfeed_approval_notification.html new file mode 100644 index 000000000..0d9ee4cbb --- /dev/null +++ b/backend/email_templates/crossfeed_approval_notification.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    CROSSFEED USER ACCOUNT APPROVAL

    +
    +

    {{firstname}} {{lastname}},

    +
    +

    Your request for a Crossfeed account was approved by your Regional Manager.

    +
    +

    Thanks,

    +

    The Crossfeed Team

    +

    +

    CISA | Defend Today | Secure Tomorrow

    +
    + + + + + + + + + + + + + + + +

    cisa.gov

    vulnerability@cisa.dhs.gov

    Linkedin.com/company/cisagov

    @CISAgov | @cyber | @uscert_gov

    Facebook.com/CISA

    @cisagov

    + + \ No newline at end of file diff --git a/backend/email_templates/crossfeed_denial_notification.html b/backend/email_templates/crossfeed_denial_notification.html new file mode 100644 index 000000000..8f22d05af --- /dev/null +++ b/backend/email_templates/crossfeed_denial_notification.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    CROSSFEED USER ACCOUNT APPROVAL

    +
    +

    {{firstname}} {{lastname}},

    +
    +

    Your request for a Crossfeed account was denied by your Regional Manager.

    +
    +

    Thanks,

    +

    The Crossfeed Team

    +

    +

    CISA | Defend Today | Secure Tomorrow

    +
    + + + + + + + + + + + + + + + +

    cisa.gov

    vulnerability@cisa.dhs.gov

    Linkedin.com/company/cisagov

    @CISAgov | @cyber | @uscert_gov

    Facebook.com/CISA

    @cisagov

    + + \ No newline at end of file diff --git a/backend/email_templates/crossfeed_registration_notification.html b/backend/email_templates/crossfeed_registration_notification.html index 842fbba1d..20652360e 100644 --- a/backend/email_templates/crossfeed_registration_notification.html +++ b/backend/email_templates/crossfeed_registration_notification.html @@ -43,7 +43,7 @@ .icon { height:32px; width: 32px; - padding:12px; + padding:8px; } .socials { font-size: 8px; diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index f7743cb9b..fa4c14173 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -100,10 +100,12 @@ export const sendEmail = async ( }); }; -export const sendNotificationEmail = async ( +export const sendUserNotificationEmail = async ( recepient: string, + p_subject: string p_firstName: string, p_lastname: string, + template_file: string, ) => { const transporter = nodemailer.createTransport({ @@ -111,7 +113,7 @@ export const sendNotificationEmail = async ( }); const fs = require('fs').promises; - const html = await fs.readFile('../../email_templates/crossfeed_registration_notification.html', 'utf8'); + const html = await fs.readFile(filename, 'utf8'); const template = handlebars.compile(html); const data = { first_name: p_firstName, @@ -123,7 +125,7 @@ export const sendNotificationEmail = async ( const mailOptions = { from: process.env.CROSSFEED_SUPPORT_EMAIL_SENDER, to: recepient, - subject: "Crossfeed Account Creation Request Received", + subject: p_subject, html: htmlToSend, attachments: [{ filename: 'banner.png', @@ -163,8 +165,4 @@ export const sendNotificationEmail = async ( ] }; - await transporter.sendMail(mailOptions, (error, info) => { - if (error) console.log(error); - }) -}; From 8e6004c4cc55d2c6e83b8baba658dad97fc63dc4 Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Tue, 21 Nov 2023 17:10:17 -0500 Subject: [PATCH 40/82] Add post and put API call frontend logic to RegionUsers.tsx --- .../src/pages/RegionUsers/RegionUsers.tsx | 139 +++++++++++++----- 1 file changed, 102 insertions(+), 37 deletions(-) diff --git a/frontend/src/pages/RegionUsers/RegionUsers.tsx b/frontend/src/pages/RegionUsers/RegionUsers.tsx index 029a10cea..8f30d14fa 100644 --- a/frontend/src/pages/RegionUsers/RegionUsers.tsx +++ b/frontend/src/pages/RegionUsers/RegionUsers.tsx @@ -9,7 +9,8 @@ import { GridColDef, GridRenderCellParams, GridRowSelectionModel, - GridToolbar + GridToolbar, + useGridApiRef } from '@mui/x-data-grid'; import DoneIcon from '@mui/icons-material/Done'; import { CheckCircleOutline as CheckIcon } from '@mui/icons-material'; @@ -25,23 +26,25 @@ type DialogStates = { type ErrorStates = { getOrgsError: string; getUsersError: string; - updateUserError: string; + getUpdateError: string; }; type CloseReason = 'backdropClick' | 'escapeKeyDown' | 'closeButtonClick'; const transformData = (data: User[]): User[] => { return data.map(({ roles, ...user }) => ({ - ...user, - roles, - organizations: roles.map((role) => ' ' + role.organization.name), + ...user, + roles, + organizations: roles.map((role) => ' ' + role.organization.name) })); -} +}; export const RegionUsers: React.FC = () => { - const { apiGet, user } = useAuthContext(); + const { apiGet, apiPost, apiPut, user } = useAuthContext(); + const apiRefPendingUsers = useGridApiRef(); + const apiRefCurrentUsers = useGridApiRef(); const regionId = user?.regionId; - const orgsURL = `/organizations/regionId/${regionId}`; - const usersURL = `/v2/users?regionId=${regionId}&invitePending=`; + const getOrgsURL = `/organizations/regionId/${regionId}`; + const getUsersURL = `/v2/users?regionId=${regionId}&invitePending=`; const pendingCols: GridColDef[] = [ { field: 'fullName', headerName: 'Name', minWidth: 100, flex: 1 }, { field: 'email', headerName: 'Email', minWidth: 100, flex: 2 }, @@ -107,9 +110,9 @@ export const RegionUsers: React.FC = () => { const [errorStates, setErrorStates] = useState({ getOrgsError: '', getUsersError: '', - updateUserError: '' + getUpdateError: '' }); - const [selectedUser, selectUser] = useState(initializeUser); + const [selectedUser, selectUser] = useState(initializeUser); const [selectedOrgRows, selectOrgRows] = useState([]); const [organizations, setOrganizations] = useState([]); const [pendingUsers, setPendingUsers] = useState([]); @@ -117,7 +120,7 @@ export const RegionUsers: React.FC = () => { const fetchOrganizations = useCallback(async () => { try { - const rows = await apiGet(orgsURL); + const rows = await apiGet(getOrgsURL); setOrganizations(rows); setErrorStates({ ...errorStates, getOrgsError: '' }); } catch (e: any) { @@ -127,9 +130,9 @@ export const RegionUsers: React.FC = () => { }, [apiGet]); const fetchPendingUsers = useCallback(async () => { try { - const rows = await apiGet(`${usersURL}true`); + const rows = await apiGet(`${getUsersURL}true`); setPendingUsers(rows); - setErrorStates({ ...errorStates, getOrgsError: '' }); + setErrorStates({ ...errorStates, getUsersError: '' }); } catch (e: any) { setErrorStates({ ...errorStates, getUsersError: e.message }); } @@ -137,9 +140,9 @@ export const RegionUsers: React.FC = () => { }, [apiGet]); const fetchCurrentUsers = useCallback(async () => { try { - const rows = await apiGet(`${usersURL}false`); + const rows = await apiGet(`${getUsersURL}false`); setCurrentUsers(transformData(rows)); - setErrorStates({ ...errorStates, getOrgsError: '' }); + setErrorStates({ ...errorStates, getUsersError: '' }); } catch (e: any) { setErrorStates({ ...errorStates, getUsersError: e.message }); } @@ -153,7 +156,39 @@ export const RegionUsers: React.FC = () => { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); - // TODO: Update selectedUser with invitePending as false and add selected organizations. + const addOrgToUser = useCallback( + (userId: string, selectedOrgId: any) => { + apiPost(`/v2/organizations/${selectedOrgId}/users`, { + body: { userId, role: 'user' } + }).then( + () => updateUser(userId), + (e) => setErrorStates({ ...errorStates, getUpdateError: e.message }) + ); + }, // eslint-disable-next-line react-hooks/exhaustive-deps + [apiPost] + ); + + const updateUser = useCallback( + (userId: string) => { + apiPut(`/v2/users/${userId}`, { + body: { invitePending: false } + }).then( + (res) => { + apiRefPendingUsers.current.updateRows([ + { id: userId, _action: 'delete' } + ]); + setPendingUsers((prevPendingUsers) => + prevPendingUsers.filter((user) => user.id !== userId) + ); + apiRefCurrentUsers.current.updateRows([res]); + setCurrentUsers((prevCurrentUsers) => [...prevCurrentUsers, res]); + }, + (e) => setErrorStates({ ...errorStates, getUpdateError: e.message }) + ); + }, // eslint-disable-next-line react-hooks/exhaustive-deps + [apiPut] + ); + const handleSubmitClick = (value: CloseReason) => { if (value === 'backdropClick' || value === 'escapeKeyDown') { return; @@ -164,7 +199,6 @@ export const RegionUsers: React.FC = () => { isOrgDialogOpen: false }); selectUser(initializeUser); - selectOrgRows([]); }; // TODO: Remove selectedUser from User table. const handleConfirmDeny = () => { @@ -176,6 +210,7 @@ export const RegionUsers: React.FC = () => { }; const handleApproveClick = (row: typeof initializeUser) => { + selectOrgRows([]); setDialogStates({ ...dialogStates, isOrgDialogOpen: true @@ -191,23 +226,23 @@ export const RegionUsers: React.FC = () => { selectUser(row); }; - const handleCancelDeny = () => { + const handleDenyCancelClick = () => { setDialogStates((prevState) => ({ ...prevState, isDenyDialogOpen: false })); }; - const handleCancelApprove = () => { + const handleApproveCancelClick = () => { setDialogStates((prevState) => ({ ...prevState, isOrgDialogOpen: false })); selectUser(initializeUser); - selectOrgRows([]); }; - const handleConfirmApprove = () => { + const handleApproveConfirmClick = () => { + addOrgToUser(selectedUser.id, selectedOrgRows[0]); handleSubmitClick('closeButtonClick'); setDialogStates((prevState) => ({ ...prevState, @@ -215,6 +250,25 @@ export const RegionUsers: React.FC = () => { })); }; + const onRowSelectionModelChange = (newRowSelectionModel: any) => { + if (newRowSelectionModel.length > 1) { + const selectionSet = new Set(selectedOrgRows); + const result = newRowSelectionModel.filter( + (s: any) => !selectionSet.has(s) + ); + selectOrgRows(result); + } else { + selectOrgRows(newRowSelectionModel); + } + }; + if (user?.userType !== ('globalAdmin' || 'regionAdmin')) { + return ( + + Access Prohibited: You are not authorized to view this page. + Contact an administrator for access. + + ); + } return ( { { Members of Region 1 - + @@ -260,21 +321,19 @@ export const RegionUsers: React.FC = () => { handleSubmitClick(reason)} - onConfirm={handleConfirmApprove} - onCancel={handleCancelApprove} - title={`Add ${selectedUser.fullName} to organizations`} + onConfirm={handleApproveConfirmClick} + onCancel={handleApproveCancelClick} + title={`Add ${selectedUser.fullName} to an organization`} content={ <> - To complete the approval process, select at least one organization - for this user. + To complete the approval process, select one organization for this + user to join. { - selectOrgRows(newRowSelectionModel); - }} + onRowSelectionModelChange={onRowSelectionModelChange} rowSelectionModel={selectedOrgRows} rows={organizations} columns={orgCols} @@ -291,6 +350,14 @@ export const RegionUsers: React.FC = () => { Error retrieving organizations: {errorStates.getOrgsError} )} + {selectedOrgRows.length !== 0 ? ( + + {selectedUser.fullName} will become a member of the selected + organization. + + ) : ( + + )} } disabled={selectedOrgRows.length === 0 ? true : false} @@ -299,13 +366,13 @@ export const RegionUsers: React.FC = () => { - Removing {selectedUser.fullName} from pending requests will be - permanent and cannot be undone. + Denying the request from {selectedUser.fullName} will permanently + remove this user and cannot be undone. {/* {apiError[0] && ( @@ -322,14 +389,12 @@ export const RegionUsers: React.FC = () => { ...prevState, isInfoDialogOpen: false })); - selectOrgRows([]); }} icon={} title={Success} content={ - This user has been approved and is now a member of organizations in - Region 1. + This user has been approved and is now a member of Region 1. } /> From 0237cae984938a71cdf0782330d9873353edc361 Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Tue, 21 Nov 2023 18:56:28 -0500 Subject: [PATCH 41/82] Add POST and PUT frontend error handling in RegionUsers.tsx --- .../src/pages/RegionUsers/RegionUsers.tsx | 58 ++++++++++++------- 1 file changed, 37 insertions(+), 21 deletions(-) diff --git a/frontend/src/pages/RegionUsers/RegionUsers.tsx b/frontend/src/pages/RegionUsers/RegionUsers.tsx index 8f30d14fa..63141afa7 100644 --- a/frontend/src/pages/RegionUsers/RegionUsers.tsx +++ b/frontend/src/pages/RegionUsers/RegionUsers.tsx @@ -157,20 +157,25 @@ export const RegionUsers: React.FC = () => { }, []); const addOrgToUser = useCallback( - (userId: string, selectedOrgId: any) => { - apiPost(`/v2/organizations/${selectedOrgId}/users`, { + (userId: string, selectedOrgId: any): Promise => { + return apiPost(`/v2/organizations/${selectedOrgId}/users`, { body: { userId, role: 'user' } }).then( - () => updateUser(userId), - (e) => setErrorStates({ ...errorStates, getUpdateError: e.message }) + () => { + return updateUser(userId); + }, + (e) => { + setErrorStates({ ...errorStates, getUpdateError: e.message }); + return false; + } ); }, // eslint-disable-next-line react-hooks/exhaustive-deps [apiPost] ); const updateUser = useCallback( - (userId: string) => { - apiPut(`/v2/users/${userId}`, { + (userId: string): Promise => { + return apiPut(`/v2/users/${userId}`, { body: { invitePending: false } }).then( (res) => { @@ -182,8 +187,12 @@ export const RegionUsers: React.FC = () => { ); apiRefCurrentUsers.current.updateRows([res]); setCurrentUsers((prevCurrentUsers) => [...prevCurrentUsers, res]); + return true; }, - (e) => setErrorStates({ ...errorStates, getUpdateError: e.message }) + (e) => { + setErrorStates({ ...errorStates, getUpdateError: e.message }); + return false; + } ); }, // eslint-disable-next-line react-hooks/exhaustive-deps [apiPut] @@ -241,13 +250,15 @@ export const RegionUsers: React.FC = () => { selectUser(initializeUser); }; - const handleApproveConfirmClick = () => { - addOrgToUser(selectedUser.id, selectedOrgRows[0]); - handleSubmitClick('closeButtonClick'); - setDialogStates((prevState) => ({ - ...prevState, - isInfoDialogOpen: true - })); + const handleApproveConfirmClick = async () => { + const success = await addOrgToUser(selectedUser.id, selectedOrgRows[0]); + if (success) { + handleSubmitClick('closeButtonClick'); + setDialogStates((prevState) => ({ + ...prevState, + isInfoDialogOpen: true + })); + } }; const onRowSelectionModelChange = (newRowSelectionModel: any) => { @@ -311,7 +322,7 @@ export const RegionUsers: React.FC = () => { slots={{ toolbar: GridToolbar }} initialState={{ pagination: { - paginationModel: { pageSize: 10, page: 0 } + paginationModel: { pageSize: 25, page: 0 } } }} /> @@ -350,13 +361,18 @@ export const RegionUsers: React.FC = () => { Error retrieving organizations: {errorStates.getOrgsError} )} - {selectedOrgRows.length !== 0 ? ( - - {selectedUser.fullName} will become a member of the selected - organization. + {selectedOrgRows.length !== 0 && + errorStates.getUpdateError.length === 0 && ( + + {selectedUser.fullName} will become a member of the selected + organization. + + )} + {errorStates.getUpdateError.length !== 0 && ( + + Error updating user: {errorStates.getUpdateError}. See the + network tab for more details. - ) : ( - )} } From 5a87acf6b01414b6a5ef3459dc09d7b17fcfecaa Mon Sep 17 00:00:00 2001 From: aloftus23 Date: Wed, 22 Nov 2023 10:06:36 -0500 Subject: [PATCH 42/82] Add permissions to allow lambdas to connect to ecs service and sqs --- backend/serverless.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend/serverless.yml b/backend/serverless.yml index c8aad3d8d..2923c88b1 100644 --- a/backend/serverless.yml +++ b/backend/serverless.yml @@ -43,6 +43,9 @@ provider: Action: - ecs:RunTask - ecs:ListTasks + - ecs:DescribeTasks + - ecs:DescribeServices + - ecs:UpdateService - iam:PassRole Resource: '*' - Effect: Allow @@ -65,7 +68,9 @@ provider: - Effect: Allow Action: - sqs:ReceiveMessage + - sqs:DeleteMessage - sqs:SendMessage + - sqs:GetQueueAttributes Resource: '*' - Effect: Allow Action: @@ -108,7 +113,6 @@ resources: MaximumMessageSize: 262144 # 256 KB MessageRetentionPeriod: 604800 # 7 days - functions: - ${file(./src/tasks/functions.yml)} - ${file(./src/api/functions.yml)} From 94124e010dd0149b7f04f5e419b717f2582644c5 Mon Sep 17 00:00:00 2001 From: aloftus23 Date: Wed, 22 Nov 2023 12:40:00 -0500 Subject: [PATCH 43/82] Mkae sure the lambda checks 0 messages and sets desired count to 0 --- backend/src/tasks/scanExecution.ts | 20 +++++++++++++++++++- infrastructure/pe_worker.tf | 17 +++++++++++++++-- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/backend/src/tasks/scanExecution.ts b/backend/src/tasks/scanExecution.ts index 5bff875c8..cb4fad528 100644 --- a/backend/src/tasks/scanExecution.ts +++ b/backend/src/tasks/scanExecution.ts @@ -29,6 +29,24 @@ export const handler: Handler = async (event) => { } else { console.log('Shodan is the only script type available right now.'); } + + // After processing each message, check if the SQS queue is empty + const sqsAttributes = await sqs + .getQueueAttributes({ + QueueUrl: process.env.SHODAN_QUEUE_URL!, + AttributeNames: ['ApproximateNumberOfMessages'] + }) + .promise(); + + const approximateNumberOfMessages = parseInt( + sqsAttributes.Attributes?.ApproximateNumberOfMessages || '0', + 10 + ); + + // If the queue is empty, scale down to zero tasks + if (approximateNumberOfMessages === 0) { + await startFargateTask(clusterName, process.env.SHODAN_SERVICE_NAME!, 0); + } } catch (error) { console.error(error); return { @@ -59,7 +77,7 @@ export async function startFargateTask( const service = serviceDescription.services[0]; // Check if the desired task count is less than # provided - if (service.desiredCount! < desiredCountNum) { + if (service.desiredCount! !== desiredCountNum) { const updateServiceParams = { cluster: clusterName, service: serviceName, diff --git a/infrastructure/pe_worker.tf b/infrastructure/pe_worker.tf index cf039c9fd..714e1f438 100644 --- a/infrastructure/pe_worker.tf +++ b/infrastructure/pe_worker.tf @@ -177,7 +177,20 @@ resource "aws_ecs_service" "shodan_service" { launch_type = "FARGATE" desired_count = 0 # Initially set to 0, plan to start it dynamically network_configuration { - subnets = aws_subnet.worker.*.id - security_groups = [aws_security_group.worker.id] + subnets = aws_subnet.worker.id + security_groups = [aws_security_group.worker.id] + assign_public_ip = true + } +} + +# Create the log group +resource "aws_cloudwatch_log_group" "worker" { + name = var.pe_worker_ecs_log_group_name # should match awslogs-group in service.json + retention_in_days = 3653 + kms_key_id = aws_kms_key.key.arn + tags = { + Project = var.project + Stage = var.stage + Owner = "Crossfeed managed resource" } } \ No newline at end of file From 14d9a75acd0b573879be19162629102c747743c1 Mon Sep 17 00:00:00 2001 From: aloftus23 Date: Wed, 22 Nov 2023 13:10:51 -0500 Subject: [PATCH 44/82] Sif duplicate log_group name in terraform --- infrastructure/pe_worker.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infrastructure/pe_worker.tf b/infrastructure/pe_worker.tf index 714e1f438..1ed51773e 100644 --- a/infrastructure/pe_worker.tf +++ b/infrastructure/pe_worker.tf @@ -184,7 +184,7 @@ resource "aws_ecs_service" "shodan_service" { } # Create the log group -resource "aws_cloudwatch_log_group" "worker" { +resource "aws_cloudwatch_log_group" "pe_worker" { name = var.pe_worker_ecs_log_group_name # should match awslogs-group in service.json retention_in_days = 3653 kms_key_id = aws_kms_key.key.arn From c2e2d24347329c0f959ccd9bbcf5f659ca220af5 Mon Sep 17 00:00:00 2001 From: Matthew <106278637+Matthew-Grayson@users.noreply.github.com> Date: Wed, 22 Nov 2023 12:32:39 -0600 Subject: [PATCH 45/82] Change Alarm Statistic: SampleCount to Sum. (#2390) --- infrastructure/log_alarms.tf | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/infrastructure/log_alarms.tf b/infrastructure/log_alarms.tf index fd0456545..e75aeb2cc 100644 --- a/infrastructure/log_alarms.tf +++ b/infrastructure/log_alarms.tf @@ -7,7 +7,7 @@ resource "aws_cloudwatch_metric_alarm" "root_user" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -25,7 +25,7 @@ resource "aws_cloudwatch_metric_alarm" "unauthorized_api_call" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -43,7 +43,7 @@ resource "aws_cloudwatch_metric_alarm" "login_without_mfa" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -61,7 +61,7 @@ resource "aws_cloudwatch_metric_alarm" "iam_policy" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -79,7 +79,7 @@ resource "aws_cloudwatch_metric_alarm" "cloudtrail" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -97,7 +97,7 @@ resource "aws_cloudwatch_metric_alarm" "login_failure" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -115,7 +115,7 @@ resource "aws_cloudwatch_metric_alarm" "cmk_delete_disable" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -133,7 +133,7 @@ resource "aws_cloudwatch_metric_alarm" "s3_bucket_policy" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -151,7 +151,7 @@ resource "aws_cloudwatch_metric_alarm" "aws_config" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -169,7 +169,7 @@ resource "aws_cloudwatch_metric_alarm" "security_group" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -187,7 +187,7 @@ resource "aws_cloudwatch_metric_alarm" "nacl" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -205,7 +205,7 @@ resource "aws_cloudwatch_metric_alarm" "network_gateway" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -223,7 +223,7 @@ resource "aws_cloudwatch_metric_alarm" "route_table" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -241,7 +241,7 @@ resource "aws_cloudwatch_metric_alarm" "vpc" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -259,7 +259,7 @@ resource "aws_cloudwatch_metric_alarm" "ec2_shutdown" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -277,7 +277,7 @@ resource "aws_cloudwatch_metric_alarm" "db_shutdown" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project @@ -295,7 +295,7 @@ resource "aws_cloudwatch_metric_alarm" "db_deletion" { evaluation_periods = 1 period = 60 threshold = 1 - statistic = "SampleCount" + statistic = "Sum" tags = { Project = var.project From bd6112f451ee509f5cd04fc7af0c24b01268ad80 Mon Sep 17 00:00:00 2001 From: aloftus23 Date: Wed, 22 Nov 2023 13:54:46 -0500 Subject: [PATCH 46/82] remove unclear comment --- infrastructure/pe_worker.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infrastructure/pe_worker.tf b/infrastructure/pe_worker.tf index 1ed51773e..b6b2ab90a 100644 --- a/infrastructure/pe_worker.tf +++ b/infrastructure/pe_worker.tf @@ -185,7 +185,7 @@ resource "aws_ecs_service" "shodan_service" { # Create the log group resource "aws_cloudwatch_log_group" "pe_worker" { - name = var.pe_worker_ecs_log_group_name # should match awslogs-group in service.json + name = var.pe_worker_ecs_log_group_name retention_in_days = 3653 kms_key_id = aws_kms_key.key.arn tags = { From a82421a100d648cf647ebf543f3dcbce3c98d8fd Mon Sep 17 00:00:00 2001 From: aloftus23 <79927030+aloftus23@users.noreply.github.com> Date: Wed, 22 Nov 2023 13:57:30 -0500 Subject: [PATCH 47/82] Add PE worker log group and make sure desired count gets set back to 0 (#2393) * Mkae sure the lambda checks 0 messages and sets desired count to 0 * Sif duplicate log_group name in terraform --- backend/src/tasks/scanExecution.ts | 20 +++++++++++++++++++- infrastructure/pe_worker.tf | 17 +++++++++++++++-- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/backend/src/tasks/scanExecution.ts b/backend/src/tasks/scanExecution.ts index 5bff875c8..cb4fad528 100644 --- a/backend/src/tasks/scanExecution.ts +++ b/backend/src/tasks/scanExecution.ts @@ -29,6 +29,24 @@ export const handler: Handler = async (event) => { } else { console.log('Shodan is the only script type available right now.'); } + + // After processing each message, check if the SQS queue is empty + const sqsAttributes = await sqs + .getQueueAttributes({ + QueueUrl: process.env.SHODAN_QUEUE_URL!, + AttributeNames: ['ApproximateNumberOfMessages'] + }) + .promise(); + + const approximateNumberOfMessages = parseInt( + sqsAttributes.Attributes?.ApproximateNumberOfMessages || '0', + 10 + ); + + // If the queue is empty, scale down to zero tasks + if (approximateNumberOfMessages === 0) { + await startFargateTask(clusterName, process.env.SHODAN_SERVICE_NAME!, 0); + } } catch (error) { console.error(error); return { @@ -59,7 +77,7 @@ export async function startFargateTask( const service = serviceDescription.services[0]; // Check if the desired task count is less than # provided - if (service.desiredCount! < desiredCountNum) { + if (service.desiredCount! !== desiredCountNum) { const updateServiceParams = { cluster: clusterName, service: serviceName, diff --git a/infrastructure/pe_worker.tf b/infrastructure/pe_worker.tf index cf039c9fd..b6b2ab90a 100644 --- a/infrastructure/pe_worker.tf +++ b/infrastructure/pe_worker.tf @@ -177,7 +177,20 @@ resource "aws_ecs_service" "shodan_service" { launch_type = "FARGATE" desired_count = 0 # Initially set to 0, plan to start it dynamically network_configuration { - subnets = aws_subnet.worker.*.id - security_groups = [aws_security_group.worker.id] + subnets = aws_subnet.worker.id + security_groups = [aws_security_group.worker.id] + assign_public_ip = true + } +} + +# Create the log group +resource "aws_cloudwatch_log_group" "pe_worker" { + name = var.pe_worker_ecs_log_group_name + retention_in_days = 3653 + kms_key_id = aws_kms_key.key.arn + tags = { + Project = var.project + Stage = var.stage + Owner = "Crossfeed managed resource" } } \ No newline at end of file From d9e181112701804cd5e1a6fba8fbe1d80e94a381 Mon Sep 17 00:00:00 2001 From: aloftus23 Date: Wed, 22 Nov 2023 13:59:22 -0500 Subject: [PATCH 48/82] Fix subnet declaration in pe_worker --- infrastructure/pe_worker.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infrastructure/pe_worker.tf b/infrastructure/pe_worker.tf index b6b2ab90a..8c0c1d6d7 100644 --- a/infrastructure/pe_worker.tf +++ b/infrastructure/pe_worker.tf @@ -177,7 +177,7 @@ resource "aws_ecs_service" "shodan_service" { launch_type = "FARGATE" desired_count = 0 # Initially set to 0, plan to start it dynamically network_configuration { - subnets = aws_subnet.worker.id + subnets = [aws_subnet.worker.id] security_groups = [aws_security_group.worker.id] assign_public_ip = true } From 54927999e94dafad75757f2b7f24cd5aedc3fa59 Mon Sep 17 00:00:00 2001 From: aloftus23 Date: Wed, 22 Nov 2023 14:44:31 -0500 Subject: [PATCH 49/82] Add worker directory to pe dockerfile --- backend/Dockerfile.pe | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/Dockerfile.pe b/backend/Dockerfile.pe index c3956d29c..2305ee587 100644 --- a/backend/Dockerfile.pe +++ b/backend/Dockerfile.pe @@ -21,4 +21,6 @@ RUN apt remove dav1d && apt autoclean && apt autoremove # Sync the latest from cf-staging branch RUN git clone -b cf-source-staging https://github.com/cisagov/pe-reports.git && cd pe-reports && git checkout c9cbbd73b22ef38cabe1da6ba50aeb2dc0be4f99 && pip install . +COPY worker worker + CMD ["./worker/pe-worker-entry.sh"] From 0c94c4b37812454b5746f63075f59f1bc9173a88 Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Wed, 22 Nov 2023 15:33:51 -0500 Subject: [PATCH 50/82] Update display heights and add regionId parameter in RegionUsers.tsx --- .../src/pages/RegionUsers/RegionUsers.tsx | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/frontend/src/pages/RegionUsers/RegionUsers.tsx b/frontend/src/pages/RegionUsers/RegionUsers.tsx index 63141afa7..ab7e12a4e 100644 --- a/frontend/src/pages/RegionUsers/RegionUsers.tsx +++ b/frontend/src/pages/RegionUsers/RegionUsers.tsx @@ -161,8 +161,8 @@ export const RegionUsers: React.FC = () => { return apiPost(`/v2/organizations/${selectedOrgId}/users`, { body: { userId, role: 'user' } }).then( - () => { - return updateUser(userId); + (res) => { + return updateUser(userId, res.organization.name); }, (e) => { setErrorStates({ ...errorStates, getUpdateError: e.message }); @@ -174,7 +174,7 @@ export const RegionUsers: React.FC = () => { ); const updateUser = useCallback( - (userId: string): Promise => { + (userId: string, orgName: string): Promise => { return apiPut(`/v2/users/${userId}`, { body: { invitePending: false } }).then( @@ -185,6 +185,7 @@ export const RegionUsers: React.FC = () => { setPendingUsers((prevPendingUsers) => prevPendingUsers.filter((user) => user.id !== userId) ); + res['organizations'] = orgName; apiRefCurrentUsers.current.updateRows([res]); setCurrentUsers((prevCurrentUsers) => [...prevCurrentUsers, res]); return true; @@ -281,7 +282,7 @@ export const RegionUsers: React.FC = () => { ); } return ( - + { }} > - Region 1 Admin Dashboard + + Region {regionId} Admin Dashboard +
    Pending Requests - + {
    )} - Members of Region 1 + Members of Region {regionId} - + @@ -407,10 +406,10 @@ export const RegionUsers: React.FC = () => { })); }} icon={} - title={Success} + title={Success } content={ - This user has been approved and is now a member of Region 1. + The user has been approved and is a member of Region {regionId}. } /> From 1b3dc9fcbd3443a065562cd0e3079980451657a4 Mon Sep 17 00:00:00 2001 From: aloftus23 Date: Wed, 22 Nov 2023 16:17:33 -0500 Subject: [PATCH 51/82] Make pe-worker-entry executable --- backend/Dockerfile.pe | 2 ++ backend/worker/pe-worker-entry.sh | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) mode change 100644 => 100755 backend/worker/pe-worker-entry.sh diff --git a/backend/Dockerfile.pe b/backend/Dockerfile.pe index 2305ee587..b668501d7 100644 --- a/backend/Dockerfile.pe +++ b/backend/Dockerfile.pe @@ -9,6 +9,8 @@ COPY src ./src RUN apt update && apt install git zlib1g-dev +RUN apt-get update && apt-get install -y jq + RUN wget -c https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tar.xz && tar -Jxvf Python-3.10.11.tar.xz RUN cd Python-3.10.11 && ./configure && make -j4 && make altinstall RUN update-alternatives --install /usr/bin/python python /usr/local/bin/python3.10 1 diff --git a/backend/worker/pe-worker-entry.sh b/backend/worker/pe-worker-entry.sh old mode 100644 new mode 100755 index a50779725..c5392092d --- a/backend/worker/pe-worker-entry.sh +++ b/backend/worker/pe-worker-entry.sh @@ -1,7 +1,9 @@ -#!/bin/sh +#!/bin/bash set -e +echo "Starting pe-worker-entry.sh script" + # Check if the SHODAN_QUEUE_URL environment variable is set if [ -z "$SHODAN_QUEUE_URL" ]; then echo "SHODAN_QUEUE_URL environment variable is not set. Exiting." From 8eb69605116b1f8ad94a5eb892c35a2d4ec66c25 Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Wed, 22 Nov 2023 16:25:23 -0500 Subject: [PATCH 52/82] Add delete user api frontend logic to RegionUsers.tsx --- .../src/pages/RegionUsers/RegionUsers.tsx | 72 +++++++++++++------ 1 file changed, 50 insertions(+), 22 deletions(-) diff --git a/frontend/src/pages/RegionUsers/RegionUsers.tsx b/frontend/src/pages/RegionUsers/RegionUsers.tsx index ab7e12a4e..44c7e6408 100644 --- a/frontend/src/pages/RegionUsers/RegionUsers.tsx +++ b/frontend/src/pages/RegionUsers/RegionUsers.tsx @@ -27,6 +27,7 @@ type ErrorStates = { getOrgsError: string; getUsersError: string; getUpdateError: string; + getDeleteError: string; }; type CloseReason = 'backdropClick' | 'escapeKeyDown' | 'closeButtonClick'; @@ -39,7 +40,7 @@ const transformData = (data: User[]): User[] => { })); }; export const RegionUsers: React.FC = () => { - const { apiGet, apiPost, apiPut, user } = useAuthContext(); + const { apiDelete, apiGet, apiPost, apiPut, user } = useAuthContext(); const apiRefPendingUsers = useGridApiRef(); const apiRefCurrentUsers = useGridApiRef(); const regionId = user?.regionId; @@ -110,13 +111,15 @@ export const RegionUsers: React.FC = () => { const [errorStates, setErrorStates] = useState({ getOrgsError: '', getUsersError: '', - getUpdateError: '' + getUpdateError: '', + getDeleteError: '' }); const [selectedUser, selectUser] = useState(initializeUser); const [selectedOrgRows, selectOrgRows] = useState([]); const [organizations, setOrganizations] = useState([]); const [pendingUsers, setPendingUsers] = useState([]); const [currentUsers, setCurrentUsers] = useState([]); + const [infoDialogContent, setInfoDialogContent] = useState(''); const fetchOrganizations = useCallback(async () => { try { @@ -156,6 +159,28 @@ export const RegionUsers: React.FC = () => { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); + const deleteUser = useCallback( + (userId: string): Promise => { + return apiDelete(`/users/${userId}`).then( + () => { + apiRefPendingUsers.current.updateRows([ + { id: userId, _action: 'delete' } + ]); + setPendingUsers((prevPendingUsers) => + prevPendingUsers.filter((user) => user.id !== userId) + ); + setInfoDialogContent('This user has been successfully removed.'); + return true; + }, + (e) => { + setErrorStates({ ...errorStates, getDeleteError: e.message }); + return false; + } + ); + }, // eslint-disable-next-line react-hooks/exhaustive-deps + [apiDelete] + ); + const addOrgToUser = useCallback( (userId: string, selectedOrgId: any): Promise => { return apiPost(`/v2/organizations/${selectedOrgId}/users`, { @@ -210,13 +235,16 @@ export const RegionUsers: React.FC = () => { }); selectUser(initializeUser); }; - // TODO: Remove selectedUser from User table. - const handleConfirmDeny = () => { - // TODO: Handle API error response - setDialogStates({ - ...dialogStates, - isDenyDialogOpen: false - }); + + const handleConfirmDenyClick = async () => { + const success = await deleteUser(selectedUser.id); + if (success) { + setDialogStates({ + ...dialogStates, + isDenyDialogOpen: false, + isInfoDialogOpen: true + }); + } }; const handleApproveClick = (row: typeof initializeUser) => { @@ -259,6 +287,9 @@ export const RegionUsers: React.FC = () => { ...prevState, isInfoDialogOpen: true })); + setInfoDialogContent( + `The user has been approved and is a member of Region ${regionId}.` + ); } }; @@ -380,20 +411,21 @@ export const RegionUsers: React.FC = () => { /> - Denying the request from {selectedUser.fullName} will permanently - remove this user and cannot be undone. + Denying this request will permanently remove{' '} + {selectedUser.fullName} from the records and cannot be undone. - {/* {apiError[0] && ( - - {apiError[1]}: Unable to remove this user to the database. - - )} */} + {errorStates.getDeleteError && ( + + Error removing user: {errorStates.getDeleteError}. See the + network tab for more details. + + )} } /> @@ -407,11 +439,7 @@ export const RegionUsers: React.FC = () => { }} icon={} title={Success } - content={ - - The user has been approved and is a member of Region {regionId}. - - } + content={{infoDialogContent}} />
    ); From fc7bbcb9f466a049cbf6eb2c954de533bc69858a Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Wed, 22 Nov 2023 17:31:48 -0500 Subject: [PATCH 53/82] Update callback function name in RegionUsers.tsx --- frontend/src/pages/RegionUsers/RegionUsers.tsx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/frontend/src/pages/RegionUsers/RegionUsers.tsx b/frontend/src/pages/RegionUsers/RegionUsers.tsx index 44c7e6408..3d331d314 100644 --- a/frontend/src/pages/RegionUsers/RegionUsers.tsx +++ b/frontend/src/pages/RegionUsers/RegionUsers.tsx @@ -224,11 +224,10 @@ export const RegionUsers: React.FC = () => { [apiPut] ); - const handleSubmitClick = (value: CloseReason) => { + const handleCloseDialog = (value: CloseReason) => { if (value === 'backdropClick' || value === 'escapeKeyDown') { return; } - // TODO: Handle API error response setDialogStates({ ...dialogStates, isOrgDialogOpen: false @@ -282,7 +281,7 @@ export const RegionUsers: React.FC = () => { const handleApproveConfirmClick = async () => { const success = await addOrgToUser(selectedUser.id, selectedOrgRows[0]); if (success) { - handleSubmitClick('closeButtonClick'); + handleCloseDialog('closeButtonClick'); setDialogStates((prevState) => ({ ...prevState, isInfoDialogOpen: true @@ -361,7 +360,7 @@ export const RegionUsers: React.FC = () => {
    handleSubmitClick(reason)} + onClose={(_, reason) => handleCloseDialog(reason)} onConfirm={handleApproveConfirmClick} onCancel={handleApproveCancelClick} title={`Add ${selectedUser.fullName} to an organization`} From c992291a9fdf3f04cf307317535c5cf6d1a531e4 Mon Sep 17 00:00:00 2001 From: Matthew <106278637+Matthew-Grayson@users.noreply.github.com> Date: Fri, 24 Nov 2023 08:38:56 -0600 Subject: [PATCH 54/82] Add SSE to sns topic. (#2392) --- infrastructure/sns.tf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/infrastructure/sns.tf b/infrastructure/sns.tf index 9b1820c80..58fbe284f 100644 --- a/infrastructure/sns.tf +++ b/infrastructure/sns.tf @@ -1,5 +1,6 @@ resource "aws_sns_topic" "alarms" { - name = var.sns_topic_alarms + name = var.sns_topic_alarms + kms_master_key_id = "alias/aws/sns" tags = { Project = var.project From 6ffc5c2153311bc6decca71bffd334d27170c291 Mon Sep 17 00:00:00 2001 From: nickviola Date: Mon, 27 Nov 2023 13:09:03 -0600 Subject: [PATCH 55/82] Add backend and frontend changes for registration of new user --- backend/src/api/app.ts | 3 +- backend/src/api/roles.ts | 835 ++++++++++++++++++ backend/src/api/users.ts | 79 +- backend/src/models/role.ts | 6 + backend/src/models/user.ts | 14 +- .../src/components/Register/RegisterForm.tsx | 184 +++- frontend/src/pages/AuthLogin/AuthLogin.tsx | 45 +- .../src/pages/Organization/Organization.tsx | 22 - frontend/src/pages/Users/Users.tsx | 1 - 9 files changed, 1115 insertions(+), 74 deletions(-) create mode 100644 backend/src/api/roles.ts diff --git a/backend/src/api/app.ts b/backend/src/api/app.ts index f8ddae5ad..4351261bb 100644 --- a/backend/src/api/app.ts +++ b/backend/src/api/app.ts @@ -63,6 +63,7 @@ app.use(cookieParser()); app.get('/', handlerToExpress(healthcheck)); app.post('/auth/login', handlerToExpress(auth.login)); app.post('/auth/callback', handlerToExpress(auth.callback)); +app.post('/users/register', handlerToExpress(users.register)); const checkUserLoggedIn = async (req, res, next) => { req.requestContext = { @@ -227,7 +228,7 @@ app.use( const authenticatedNoTermsRoute = express.Router(); authenticatedNoTermsRoute.use(checkUserLoggedIn); authenticatedNoTermsRoute.get('/users/me', handlerToExpress(users.me)); -authenticatedNoTermsRoute.post('/users/register', handlerToExpress(users.register)); +// authenticatedNoTermsRoute.post('/users/register', handlerToExpress(users.register)); authenticatedNoTermsRoute.post( '/users/me/acceptTerms', handlerToExpress(users.acceptTerms) diff --git a/backend/src/api/roles.ts b/backend/src/api/roles.ts new file mode 100644 index 000000000..f11b42f35 --- /dev/null +++ b/backend/src/api/roles.ts @@ -0,0 +1,835 @@ +import { + IsString, + isUUID, + IsArray, + IsBoolean, + IsUUID, + IsOptional, + IsNotEmpty, + IsNumber +} from 'class-validator'; +import { + Organization, + connectToDatabase, + Role, + ScanTask, + Scan, + User, + OrganizationTag, + PendingDomain +} from '../models'; +import { validateBody, wrapHandler, NotFound, Unauthorized } from './helpers'; +import { + isOrgAdmin, + isGlobalWriteAdmin, + isRegionalAdmin, + getOrgMemberships, + isGlobalViewAdmin +} from './auth'; +import { In } from 'typeorm'; +import { plainToClass } from 'class-transformer'; +import { randomBytes } from 'crypto'; +import { promises } from 'dns'; + +/** + * @swagger + * + * /roless/{id}: + * delete: + * description: Delete a particular organization. + * parameters: + * - in: path + * name: id + * description: Organization id + * tags: + * - Organizations + */ +export const del = wrapHandler(async (event) => { + const id = event.pathParameters?.organizationId; + + if (!id || !isUUID(id)) { + return NotFound; + } + + if (!isGlobalWriteAdmin(event)) return Unauthorized; + + await connectToDatabase(); + const result = await Organization.delete(id); + return { + statusCode: 200, + body: JSON.stringify(result) + }; +}); + +// Used exclusively for deleting pending domains +class PendingDomainBody { + @IsArray() + @IsOptional() + pendingDomains: PendingDomain[]; +} + + +class NewOrganizationNonGlobalAdmins { + @IsString() + name: string; + + @IsBoolean() + isPassive: boolean; +} + +class NewOrganization extends NewOrganizationNonGlobalAdmins { + @IsArray() + rootDomains: string[]; + + @IsArray() + ipBlocks: string[]; + + @IsArray() + tags: OrganizationTag[]; + + @IsUUID() + @IsOptional() + parent?: string; +} + +// Type Validation Options +class UpdateOrganizationMetaV2 { + @IsString() + @IsNotEmpty() + @IsOptional() + name: string; + + @IsBoolean() + @IsOptional() + isPassive: boolean; + + @IsString() + @IsNotEmpty() + @IsOptional() + state: string; + + @IsString() + @IsNotEmpty() + @IsOptional() + regionId: string; + + @IsString() + @IsNotEmpty() + @IsOptional() + country: string; + + @IsNumber() + @IsOptional() + stateFips: number; + + @IsString() + @IsNotEmpty() + @IsOptional() + stateName: string; + + @IsString() + @IsNotEmpty() + @IsOptional() + county: string; + + @IsNumber() + @IsOptional() + countyFips: number; + + @IsString() + @IsNotEmpty() + @IsOptional() + acronym: string; + + @IsString() + @IsNotEmpty() + @IsOptional() + type: string; + +} + +class NewDomain { + @IsString() + @IsNotEmpty() + domain: string; +} + +const findOrCreateTags = async ( + tags: OrganizationTag[] +): Promise => { + const finalTags: OrganizationTag[] = []; + for (const tag of tags) { + if (!tag.id) { + // If no id is supplied, first check to see if a tag with this name exists + const found = await OrganizationTag.findOne({ + where: { name: tag.name } + }); + if (found) { + finalTags.push(found); + } else { + // If not, create it + const created = OrganizationTag.create({ name: tag.name }); + await created.save(); + finalTags.push(created); + } + } else { + finalTags.push(tag); + } + } + return finalTags; +}; + +/** + * @swagger + * + * /organizations/{id}: + * put: + * description: Update a particular organization. + * parameters: + * - in: path + * name: id + * description: Organization id + * tags: + * - Organizations + */ +export const update = wrapHandler(async (event) => { + const id = event.pathParameters?.organizationId; + + if (!id || !isUUID(id)) { + return NotFound; + } + + if (!isOrgAdmin(event, id)) return Unauthorized; + const body = await validateBody< + NewOrganization | NewOrganizationNonGlobalAdmins + >( + isGlobalWriteAdmin(event) + ? NewOrganization + : NewOrganizationNonGlobalAdmins, + event.body + ); + const pendingBody = await validateBody( + PendingDomainBody, + event.body + ); + + await connectToDatabase(); + const org = await Organization.findOne( + { + id + }, + { + relations: ['userRoles', 'granularScans'] + } + ); + if (org) { + if ('tags' in body) { + body.tags = await findOrCreateTags(body.tags); + } + + let newPendingDomains: PendingDomain[] = []; + if (pendingBody.pendingDomains) { + for (const domain of org.pendingDomains) { + if (pendingBody.pendingDomains.find((d) => d.name === domain.name)) { + // Don't delete + newPendingDomains.push(domain); + } + } + } else { + newPendingDomains = org.pendingDomains; + } + + Organization.merge(org, { + ...body, + pendingDomains: newPendingDomains, + parent: undefined + }); + await Organization.save(org); + return { + statusCode: 200, + body: JSON.stringify(org) + }; + } + return NotFound; +}); + +/** + * @swagger + * + * /organizations: + * post: + * description: Create a new organization. + * tags: + * - Organizations + */ +export const create = wrapHandler(async (event) => { + if (!isGlobalWriteAdmin(event)) return Unauthorized; + const body = await validateBody(NewOrganization, event.body); + await connectToDatabase(); + + if ('tags' in body) { + body.tags = await findOrCreateTags(body.tags); + } + const organization = await Organization.create({ + ...body, + createdBy: { id: event.requestContext.authorizer!.id }, + parent: { id: body.parent } + }); + const res = await organization.save(); + return { + statusCode: 200, + body: JSON.stringify(res) + }; +}); + +/** + * @swagger + * + * /organizations: + * get: + * description: List organizations that the user is a member of or has access to. + * tags: + * - Organizations + */ +export const list = wrapHandler(async (event) => { + if (!isGlobalViewAdmin(event) && getOrgMemberships(event).length === 0) { + return { + statusCode: 200, + body: JSON.stringify([]) + }; + } + await connectToDatabase(); + let where: any = { parent: null }; + if (!isGlobalViewAdmin(event)) { + where = { id: In(getOrgMemberships(event)), parent: null }; + } + const result = await Organization.find({ + where, + relations: ['userRoles', 'tags'], + order: { name: 'ASC' } + }); + + return { + statusCode: 200, + body: JSON.stringify(result) + }; +}); + +/** + * @swagger + * + * /organizations/tags: + * get: + * description: Fetchs all possible organization tags (must be global admin) + * tags: + * - Organizations + */ +export const getTags = wrapHandler(async (event) => { + if (!isGlobalViewAdmin(event)) { + return { + statusCode: 200, + body: JSON.stringify([]) + }; + } + await connectToDatabase(); + const result = await OrganizationTag.find({ + select: ['id', 'name'] + }); + + return { + statusCode: 200, + body: JSON.stringify(result) + }; +}); + +/** + * @swagger + * + * /organizations/{id}: + * get: + * description: Get information about a particular organization. + * parameters: + * - in: path + * name: id + * description: Organization id + * tags: + * - Organizations + */ +export const get = wrapHandler(async (event) => { + const id = event.pathParameters?.organizationId; + + if (!isOrgAdmin(event, id)) return Unauthorized; + + await connectToDatabase(); + const result = await Organization.findOne(id, { + relations: [ + 'userRoles', + 'userRoles.user', + 'granularScans', + 'tags', + 'parent', + 'children' + ] + }); + + if (result) { + result.scanTasks = await ScanTask.find({ + where: { + organization: { id } + }, + take: 10, + order: { + createdAt: 'DESC' + }, + relations: ['scan'] + }); + } + + return { + statusCode: result ? 200 : 404, + body: result ? JSON.stringify(result) : '' + }; +}); + +class UpdateBody { + @IsBoolean() + enabled: boolean; +} + +/** + * @swagger + * + * /organizations/{id}/granularScans/{scanId}/update: + * post: + * description: Enable or disable a scan for a particular organization; this endpoint can be called by organization admins and only works for user-modifiable scans. + * parameters: + * - in: path + * name: id + * description: Organization id + * - in: path + * name: scanId + * description: Role id + * tags: + * - Organizations + */ +export const updateScan = wrapHandler(async (event) => { + const organizationId = event.pathParameters?.organizationId; + + if (!organizationId || !isUUID(organizationId)) { + return NotFound; + } + + if (!isOrgAdmin(event, organizationId) && !isGlobalWriteAdmin(event)) + return Unauthorized; + + await connectToDatabase(); + const scanId = event.pathParameters?.scanId; + if (!scanId || !isUUID(scanId)) { + return NotFound; + } + const scan = await Scan.findOne({ + id: scanId, + isGranular: true, + isUserModifiable: true + }); + const organization = await Organization.findOne( + { + id: organizationId + }, + { + relations: ['granularScans'] + } + ); + if (!scan || !organization) { + return NotFound; + } + const body = await validateBody(UpdateBody, event.body); + if (body.enabled) { + organization?.granularScans.push(); + } + const existing = organization?.granularScans.find((s) => s.id === scanId); + if (body.enabled && !existing) { + organization.granularScans.push(plainToClass(Scan, { id: scanId })); + } else if (!body.enabled && existing) { + organization.granularScans = organization.granularScans.filter( + (s) => s.id !== scanId + ); + } + const res = await Organization.save(organization); + return { + statusCode: 200, + body: JSON.stringify(res) + }; +}); + +/** + * @swagger + * + * /organizations/{id}/initiateDomainVerification: + * post: + * description: Generates a token to verify a new domain via a DNS record + * parameters: + * - in: path + * name: id + * description: Organization id + * tags: + * - Organizations + */ +export const initiateDomainVerification = wrapHandler(async (event) => { + const organizationId = event.pathParameters?.organizationId; + + if (!organizationId || !isUUID(organizationId)) { + return NotFound; + } + + if (!isOrgAdmin(event, organizationId) && !isGlobalWriteAdmin(event)) + return Unauthorized; + const body = await validateBody(NewDomain, event.body); + + await connectToDatabase(); + const token = 'crossfeed-verification=' + randomBytes(16).toString('hex'); + + const organization = await Organization.findOne({ + id: organizationId + }); + if (!organization) { + return NotFound; + } + if (organization.rootDomains.find((domain) => domain === body.domain)) { + return { + statusCode: 422, + body: 'Domain already exists.' + }; + } + if ( + !organization.pendingDomains.find( + (domain) => domain['name'] === body.domain + ) + ) { + const domain: PendingDomain = { + name: body.domain, + token: token + }; + organization.pendingDomains.push(domain); + + const res = await Organization.save(organization); + } + return { + statusCode: 200, + body: JSON.stringify(organization.pendingDomains) + }; +}); + +/** + * @swagger + * + * /organizations/{id}/checkDomainVerification: + * post: + * description: Checks whether the DNS record has been created for the supplied domain + * parameters: + * - in: path + * name: id + * description: Organization id + * tags: + * - Organizations + */ +export const checkDomainVerification = wrapHandler(async (event) => { + const organizationId = event.pathParameters?.organizationId; + + if (!organizationId || !isUUID(organizationId)) { + return NotFound; + } + + if (!isOrgAdmin(event, organizationId) && !isGlobalWriteAdmin(event)) + return Unauthorized; + const body = await validateBody(NewDomain, event.body); + + await connectToDatabase(); + + const organization = await Organization.findOne({ + id: organizationId + }); + if (!organization) { + return NotFound; + } + const pendingDomain = organization.pendingDomains.find( + (domain) => domain['name'] === body.domain + ); + if (!pendingDomain) { + return { + statusCode: 422, + body: 'Please initiate the domain verification first.' + }; + } + try { + const res = await promises.resolveTxt(pendingDomain.name); + for (const record of res) { + for (const val of record) { + if (val === pendingDomain.token) { + // Success! + organization.rootDomains.push(pendingDomain.name); + organization.pendingDomains = organization.pendingDomains.filter( + (domain) => domain.name !== pendingDomain.name + ); + organization.save(); + return { + statusCode: 200, + body: JSON.stringify({ success: true, organization }) + }; + } + } + } + } catch (e) {} + + return { + statusCode: 200, + body: JSON.stringify({ success: false }) + }; +}); + +/** + * @swagger + * + * /organizations/{id}/roles/{roleId}/approve: + * post: + * description: Approve a role within an organization. + * parameters: + * - in: path + * name: id + * description: Organization id + * - in: path + * name: roleId + * description: Role id + * tags: + * - Organizations + */ +export const approveRole = wrapHandler(async (event) => { + const organizationId = event.pathParameters?.organizationId; + if (!isOrgAdmin(event, organizationId)) return Unauthorized; + + const id = event.pathParameters?.roleId; + if (!isUUID(id)) { + return NotFound; + } + + await connectToDatabase(); + const role = await Role.findOne({ + organization: { id: organizationId }, + id + }); + if (role) { + role.approved = true; + role.approvedBy = plainToClass(User, { + id: event.requestContext.authorizer!.id + }); + const result = await role.save(); + return { + statusCode: result ? 200 : 404, + body: JSON.stringify({}) + }; + } + + return NotFound; +}); + +/** + * @swagger + * + * /organizations/{id}/roles/{roleId}/remove: + * post: + * description: Remove a role within an organization. + * parameters: + * - in: path + * name: id + * description: Organization id + * - in: path + * name: roleId + * description: Role id + * tags: + * - Organizations + */ +export const removeRole = wrapHandler(async (event) => { + const organizationId = event.pathParameters?.organizationId; + if (!isOrgAdmin(event, organizationId)) return Unauthorized; + + const id = event.pathParameters?.roleId; + if (!id || !isUUID(id)) { + return NotFound; + } + + await connectToDatabase(); + const result = await Role.delete({ + organization: { id: organizationId }, + id + }); + return { + statusCode: 200, + body: JSON.stringify(result) + }; +}); + + +/** + * @swagger + * + * /organizations/regionId/{regionId}: + * get: + * description: List organizations with specific regionId. + * parameters: + * - in: path + * name: regionId + * description: Organization regionId + * tags: + * - Organizations + */ +export const getByRegionId = wrapHandler(async (event) => { + if (!isRegionalAdmin(event)) return Unauthorized; + const regionId = event.pathParameters?.regionId; + await connectToDatabase(); + const result = await Organization.find({ + where: { regionId: regionId } + }); + + if (result) { + return { + statusCode: 200, + body: JSON.stringify(result) + }; + } + return NotFound; +}); + +/** + * @swagger + * + * /organizations/state/{state}: + * get: + * description: List organizations with specific state. + * parameters: + * - in: path + * name: state + * description: Organization state + * tags: + * - Organizations + */ +export const getByState = wrapHandler(async (event) => { + if (!isRegionalAdmin(event)) return Unauthorized; + const state = event.pathParameters?.state; + await connectToDatabase(); + const result = await Organization.find({ + where: { state: state } + }); + + if (result) { + return { + statusCode: 200, + body: JSON.stringify(result) + }; + } + return NotFound; +}); + +// V2 Endpoints + +/** + * @swagger + * + * /v2/organizations: + * get: + * description: List all organizations with query parameters. + * tags: + * - Users + * parameters: + * - in: query + * name: state + * required: false + * schema: + * type: array + * items: + * type: string + * - in: query + * name: regionId + * required: false + * schema: + * type: array + * items: + * type: string + * + */ +export const getAllV2 = wrapHandler(async (event) => { + if (!isRegionalAdmin(event)) return Unauthorized; + + const filterParams = {} + + if (event.query && event.query.state) { + filterParams["state"] = event.query.state; + } + if (event.query && event.query.regionId) { + filterParams["regionId"] = event.query.regionId; + } + + await connectToDatabase(); + if (Object.entries(filterParams).length === 0) { + const result = await Organization.find({}); + return { + statusCode: 200, + body: JSON.stringify(result) + } + } else { + const result = await Organization.find({where: filterParams}); + return { + statusCode: 200, + body: JSON.stringify(result) + }; + } +}); + +/** + * @swagger + * + * /v2/organizations/{id}: + * put: + * description: Update a particular organization. + * parameters: + * - in: path + * name: id + * description: Organization id + * tags: + * - Organizations + */ + +export const updateV2 = wrapHandler(async (event) => { + if (!isRegionalAdmin(event)) return Unauthorized; + // Get the organization id from the path + const id = event.pathParameters?.organizationId; + + // confirm that the id is a valid UUID + if (!id || !isUUID(id)) { + return NotFound; + } + + // TODO: check permissions + // if (!isOrgAdmin(event, id)) return Unauthorized; + + // Validate the body + const validatedBody = await validateBody( + UpdateOrganizationMetaV2, + event.body + ); + + // Connect to the database + await connectToDatabase(); + + // Update the organization + const updateResp = await Organization.update(id, validatedBody); + + // Handle response + if (updateResp) { + const updatedOrg = await Organization.findOne(id); + return { + statusCode: 200, + body: JSON.stringify(updatedOrg) + }; + } + return NotFound; +}); \ No newline at end of file diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index cb1094eed..7014bbfc0 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -7,6 +7,7 @@ import { IsEnum, IsInt, IsIn, + IsNumber, IsObject, IsPositive, ValidateNested, @@ -50,7 +51,9 @@ class UserSearch { 'lastLoggedIn', 'acceptedTermsVersion', 'state', - 'regionId' + 'regionId', + // 'organizations', + // 'numberOfOrganizations' ]) @IsOptional() sort: string = 'fullName'; @@ -78,6 +81,7 @@ class UserSearch { } } +// New User class NewUser { @IsString() firstName: string; @@ -136,7 +140,6 @@ class UpdateUser { @IsString() @IsOptional() role: string; - } @@ -565,7 +568,6 @@ export const getByState = wrapHandler(async (event) => { */ export const register = wrapHandler(async (event) => { const body = await validateBody(NewUser, event.body); - const newUser = { "firstName": body.firstName, "lastName": body.lastName, @@ -575,27 +577,38 @@ export const register = wrapHandler(async (event) => { "regionId": REGION_STATE_MAP[body.state], "invitePending": true, } + console.log(JSON.stringify(newUser)) await connectToDatabase(); - // Check if user already exists by email - let user = await User.findOne({ - email: body.email.toLowerCase() + // Check if user already exists + let userCheck = await User.findOne({ + where: { email: newUser.email } }); + let id = ""; // Crreate if user does not exist - if (!user) { - const createdUser = await User.create(newUser); - await User.save(createdUser); - id = createdUser.id; + // if (!user) { + if (userCheck) { + console.log("User already exists."); + return { + statusCode: 422, + body: 'User email already exists. Registration failed.' + }; + } - // Send Registration confirmation email to user - // TODO: replace with html email function to user + const createdUser = await User.create(newUser); + await User.save(createdUser); + id = createdUser.id; - // Send new user pending approval email to regionalAdmin - // TODO: replace with html email function to regianlAdmin - } + // const savedUser = await User.save(createdUser); + // id = createdUser.id; + // Send Registration confirmation email to user + // TODO: replace with html email function to user + + // Send new user pending approval email to regionalAdmin + // TODO: replace with html email function to regianlAdmin const savedUser = await User.findOne(id, { relations: ['roles', 'roles.organization'] }); @@ -662,6 +675,10 @@ export const getAllV2 = wrapHandler(async (event) => { if (Object.entries(filterParams).length === 0) { const result = await User.find({ relations: ['roles', 'roles.organization'] + // relations: { + // roles: true, + // organizations: true + // }, }); return { statusCode: 200, @@ -669,11 +686,39 @@ export const getAllV2 = wrapHandler(async (event) => { } } else { const result = await User.find({ - where: filterParams, - relations: ['roles', 'roles.organization'] + where: filterParams, + relations: ['roles', 'roles.organization'] + // relations: { + // roles: true, + // organizations: true + // }, + // relations: { + // roles: { + // roles: true + // }, + // organizations: { + // organizations: true + // } + // }, }); + // const updatedResult = { + // ...result, + // numberOfOrganizations: 0, + // organizations: [] + // } + // if (!result.roles) { + // result.roles = []; + // } + // updatedResult.roles.forEach((role) => { + // const org = role.organization; + // if (org) { + // updatedResult.numberOfOrganizations += 1; + // updatedResult.organizations.push(org); + // } + // }); return { statusCode: 200, + // body: JSON.stringify(updatedResult) body: JSON.stringify(result) }; } diff --git a/backend/src/models/role.ts b/backend/src/models/role.ts index d3176608a..666eb09de 100644 --- a/backend/src/models/role.ts +++ b/backend/src/models/role.ts @@ -50,6 +50,12 @@ export class Role extends BaseEntity { }) user: User; + // @ManyToOne((type) => User, (user) => user.organizations, { + // onDelete: 'CASCADE', + // onUpdate: 'CASCADE' + // }) + // userOrgs: User; + @ManyToOne((type) => Organization, (organization) => organization.userRoles, { onDelete: 'CASCADE', onUpdate: 'CASCADE' diff --git a/backend/src/models/user.ts b/backend/src/models/user.ts index 6b11d87af..8a9cdc5fb 100644 --- a/backend/src/models/user.ts +++ b/backend/src/models/user.ts @@ -10,7 +10,7 @@ import { PrimaryGeneratedColumn, BeforeUpdate } from 'typeorm'; -import { Role } from './'; +import { Organization, Role } from './'; import { ApiKey } from './api-key'; export enum UserType { @@ -115,4 +115,16 @@ export class User extends BaseEntity { nullable: true }) state: string; + + // @Column({ + // nullable: true, + // default: 0 + // }) + // numberOfOrganizations: number; + + // @Column({ + // nullable: true, + // default: [] + // }) + // organizationIds: Array; } diff --git a/frontend/src/components/Register/RegisterForm.tsx b/frontend/src/components/Register/RegisterForm.tsx index afddbefe9..260ee550c 100644 --- a/frontend/src/components/Register/RegisterForm.tsx +++ b/frontend/src/components/Register/RegisterForm.tsx @@ -1,5 +1,6 @@ import React, { useEffect, useState } from 'react'; import * as registerFormStyles from './registerFormStyle'; +import { useAuthContext } from 'context'; import { CircularProgress, DialogTitle, @@ -8,32 +9,149 @@ import { DialogActions, Button } from '@mui/material'; +import InputLabel from '@mui/material/InputLabel'; +import MenuItem from '@mui/material/MenuItem'; +import FormControl from '@mui/material/FormControl'; import { Save } from '@mui/icons-material'; +import Select, { SelectChangeEvent } from '@mui/material/Select'; +import { User } from 'types'; const StyledDialog = registerFormStyles.StyledDialog; +// State options (Keep casing as it matches region options in backend) +const STATE_OPTIONS = [ + 'Connecticut', + 'Maine', + 'Massachusetts', + 'New Hampshire', + 'Rhode Island', + 'Vermont', + 'New Jersey', + 'New York', + 'Puerto Rico', + 'Virgin Islands', + 'Delaware', + 'Maryland', + 'Pennsylvania', + 'Virginia', + 'District of Columbia', + 'West Virginia', + 'Alabama', + 'Florida', + 'Georgia', + 'Kentucky', + 'Mississippi', + 'North Carolina', + 'South Carolina', + 'Tennessee', + 'Illinois', + 'Indiana', + 'Michigan', + 'Minnesota', + 'Ohio', + 'Wisconsin', + 'Arkansas', + 'Louisiana', + 'New Mexico', + 'Oklahoma', + 'Texas', + 'Iowa', + 'Kansas', + 'Missouri', + 'Nebraska', + 'Colorado', + 'Montana', + 'North Dakota', + 'South Dakota', + 'Utah', + 'Wyoming', + 'Arizona', + 'California', + 'Hawaii', + 'Nevada', + 'Guam', + 'American Samoa', + 'Commonwealth Northern Mariana Islands', + 'Republic of Marshall Islands', + 'Federal States of Micronesia', + 'Alaska', + 'Idaho', + 'Oregon', + 'Washington' +]; + export interface RegisterFormValues { firstName: string; lastName: string; email: string; + state: string; +} + +export interface ApiResponse { + result: User; + count: number; + url?: string; } export const RegisterForm: React.FC<{ open: boolean; onClose: () => void; }> = ({ open, onClose }) => { + // Set default Values const defaultValues = () => ({ firstName: '', lastName: '', - email: '' + email: '', + state: '' }); + + const { apiPost, setFeedbackMessage } = useAuthContext(); + + const registerUserPost = async (body: Object) => { + try { + const requestOptions: RequestInit = { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(body) + }; + const response = await fetch(process.env.REACT_APP_API_URL + '/users/register', + requestOptions); + const data = await response.json(); + // Handle the response data here + console.log(data); + return data + } catch (error) { + // Handle any errors here + console.error(error); + } + }; + const [values, setValues] = useState(defaultValues); - // const [errorMessage, setErrorMessage] = useState(''); const [errorRequestMessage, setErrorRequestMessage] = useState(''); const [errorEmailMessage, setEmailErrorMessage] = useState( 'Email entry error. Please try again.' ); const [isLoading, setIsLoading] = useState(false); + + // Register User API Post + // const registerUserApiPost = async (body: Object) => { + // try { + // const user = await registerUserPost('/users/register', { + // body + // }); + // return user; + // } catch (e: any) { + // setFeedbackMessage({ + // message: + // e.status === 422 + // ? 'Error registering user.' + // : e.message ?? e.toString(), + // type: 'error' + // }); + // console.error(e); + // } + // }; + const onTextChange: React.ChangeEventHandler< HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement > = (e) => onChange(e.target.name, e.target.value); @@ -45,6 +163,13 @@ export const RegisterForm: React.FC<{ })); }; + const handleChange = (event: SelectChangeEvent) => { + setValues((values) => ({ + ...values, + [event.target.name]: event.target.value + })); + }; + const isDisabled = () => { if (Object.values(values).every((value) => value) && !errorEmailMessage) { return false; @@ -57,14 +182,16 @@ export const RegisterForm: React.FC<{ setIsLoading(true); console.log('values: ', values); console.log('This is where we will send the values to post.'); - // makeRequest should be "await someApiCallToBeSuccessfulOrFail" - const makeRequest = { - data: { - user: { firstName: 'test', lastName: 'test', email: 'test@email.com' } - } + const body = { + firstName: values.firstName, + lastName: values.lastName, + email: values.email, + state: values.state }; - if (makeRequest && makeRequest.data) { + const registeredUser = await registerUserPost(body); + if (registeredUser !== undefined) { console.log('User Registered Successfully'); + setIsLoading(false); onClose(); } else { console.log('User Register Failed'); @@ -110,6 +237,19 @@ export const RegisterForm: React.FC<{ {errorRequestMessage && (

    {errorRequestMessage}

    )} + - + + State + + - {/* -
    New to Crossfeed? Register with Login.gov
    -
    */} - - {/* - New to Crossfeed? Register with Login.gov - */} ); }; diff --git a/frontend/src/pages/Organization/Organization.tsx b/frontend/src/pages/Organization/Organization.tsx index 831d17a66..707b03a7c 100644 --- a/frontend/src/pages/Organization/Organization.tsx +++ b/frontend/src/pages/Organization/Organization.tsx @@ -354,28 +354,6 @@ export const Organization: React.FC = () => { } }; - const updateOrganizationV2 = async (body: any) => { - try { - const org = await apiPut('/organizations/v2/' + organization?.id, { - body: organization - }); - setOrganization(org); - setFeedbackMessage({ - message: 'Organization successfully updated', - type: 'success' - }); - } catch (e: any) { - setFeedbackMessage({ - message: - e.status === 422 - ? 'Error updating organization' - : e.message ?? e.toString(), - type: 'error' - }); - console.error(e); - } - }; - const updateScan = async (scan: Scan, enabled: boolean) => { try { if (!organization) return; diff --git a/frontend/src/pages/Users/Users.tsx b/frontend/src/pages/Users/Users.tsx index 89703c053..d6692fef9 100644 --- a/frontend/src/pages/Users/Users.tsx +++ b/frontend/src/pages/Users/Users.tsx @@ -143,7 +143,6 @@ export const Users: React.FC = () => { email: '', userType: '' }); - const userSearch = useCallback( async ({ sort, From 1ff91968e7f3ee9ccf120f4764a19748dd976fbf Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Mon, 27 Nov 2023 13:14:12 -0600 Subject: [PATCH 56/82] Add email delivery to users.ts. --- .../crossfeed_registration_notification.html | 8 ++++++++ backend/src/api/helpers.ts | 6 ++++-- backend/src/api/users.ts | 9 ++++++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/backend/email_templates/crossfeed_registration_notification.html b/backend/email_templates/crossfeed_registration_notification.html index 20652360e..95339c4b4 100644 --- a/backend/email_templates/crossfeed_registration_notification.html +++ b/backend/email_templates/crossfeed_registration_notification.html @@ -47,6 +47,13 @@ } .socials { font-size: 8px; + } + hr.line { + height: 1px; + width: 50%; + margin-inline-start:0; + border-top: 2px solid #00308F; + } @@ -84,6 +91,7 @@

    The Crossfeed Team

    +
    diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index fa4c14173..154bb5749 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -161,8 +161,10 @@ export const sendUserNotificationEmail = async ( filename: 'instagram.png', path: 'instagram.png', cid: 'CISA Instagram' - }, - ] + }] }; + await nodemailer.sendMail(mailOptions); +}; + diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index cb1094eed..75cc730be 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -18,7 +18,8 @@ import { wrapHandler, NotFound, Unauthorized, - sendEmail + sendEmail, + sendUserNotificationEmail } from './helpers'; import { UserType } from '../models/user'; import { @@ -589,8 +590,10 @@ export const register = wrapHandler(async (event) => { await User.save(createdUser); id = createdUser.id; - // Send Registration confirmation email to user - // TODO: replace with html email function to user + sendUserNotificationEmail(newUser.email, + "Crossfeed Account Registration Received", + newUser.firstName, newUser.lastName, + "../../email_templates/crossfeed_registration_notification.html"); // Send new user pending approval email to regionalAdmin // TODO: replace with html email function to regianlAdmin From bcd845fbeb6edacdfcedf17e9e5373b58c65703e Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Mon, 27 Nov 2023 14:19:51 -0600 Subject: [PATCH 57/82] Remove usernames from list of arguments to handlebars.compile. --- backend/src/api/helpers.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index ad3f6a985..4c9587614 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -184,8 +184,7 @@ export const sendRegionalAdminNotificationEmail = async ( const template = handlebars.compile(html); const data = { first_name: p_firstName, - last_name: p_lastname, - username: p_username + last_name: p_lastname } const htmlToSend = template(data); From ed67b73d4b3f1e5144a88e13e6c8d538e1df2185 Mon Sep 17 00:00:00 2001 From: Amelia Vance Date: Tue, 28 Nov 2023 17:28:50 -0400 Subject: [PATCH 58/82] Update Register button with link in AuthLogin.tsx --- frontend/src/pages/AuthLogin/AuthLogin.tsx | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/frontend/src/pages/AuthLogin/AuthLogin.tsx b/frontend/src/pages/AuthLogin/AuthLogin.tsx index e7854934b..3078f88a2 100644 --- a/frontend/src/pages/AuthLogin/AuthLogin.tsx +++ b/frontend/src/pages/AuthLogin/AuthLogin.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useState } from 'react'; import { AuthForm } from 'components'; import { Button } from '@trussworks/react-uswds'; -import { Typography } from '@mui/material'; +import { Box, Link, Typography } from '@mui/material'; import { useAuthContext } from 'context'; import { Authenticator, @@ -10,7 +10,7 @@ import { Button as AmplifyButton, View, Text, - Button as AmplifyButtonButton + SelectField } from '@aws-amplify/ui-react'; import { I18n } from 'aws-amplify'; @@ -125,10 +125,17 @@ export const AuthLogin: React.FC<{ showSignUp?: boolean }> = ({ */} {open && } - setOpen(true)}> - Register - - + + New to Crossfeed?  + setOpen(true)} + > + Register Now + + +
    **Warning**
    {' '} From efe0942010ccc5630d686f884a5abe91eb995967 Mon Sep 17 00:00:00 2001 From: nickviola Date: Wed, 29 Nov 2023 13:58:43 -0600 Subject: [PATCH 59/82] Add user approval and denial backend api endpoints --- backend/src/api/app.ts | 13 ++++ backend/src/api/users.ts | 156 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+) diff --git a/backend/src/api/app.ts b/backend/src/api/app.ts index 4351261bb..ac4aac4fc 100644 --- a/backend/src/api/app.ts +++ b/backend/src/api/app.ts @@ -377,6 +377,19 @@ authenticatedRoute.post( handlerToExpress(reports.list_reports) ); + +//Authenticated Registration Routes +authenticatedRoute.put( + '/users/:userId/register/approve', + handlerToExpress(users.registrationApproval) +); + +authenticatedRoute.put( + '/users/:userId/register/deny', + handlerToExpress(users.registrationDenial) +); + + //************* */ // V2 Routes // //************* */ diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index 7014bbfc0..8571f6ab7 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -619,6 +619,162 @@ export const register = wrapHandler(async (event) => { }; }); +/** + * @swagger + * + * /users/register/approve: + * post: + * description: New user registration. + * tags: + * - Users + */ +export const register = wrapHandler(async (event) => { + const body = await validateBody(NewUser, event.body); + const newUser = { + "firstName": body.firstName, + "lastName": body.lastName, + "email": body.email.toLowerCase(), + "userType": UserType.STANDARD, + "state": body.state, + "regionId": REGION_STATE_MAP[body.state], + "invitePending": true, + } + console.log(JSON.stringify(newUser)) + + await connectToDatabase(); + + // Check if user already exists + let userCheck = await User.findOne({ + where: { email: newUser.email } + }); + + let id = ""; + // Crreate if user does not exist + // if (!user) { + if (userCheck) { + console.log("User already exists."); + return { + statusCode: 422, + body: 'User email already exists. Registration failed.' + }; + } + + const createdUser = await User.create(newUser); + await User.save(createdUser); + id = createdUser.id; + + // const savedUser = await User.save(createdUser); + // id = createdUser.id; + + // Send Registration confirmation email to user + // TODO: replace with html email function to user + + // Send new user pending approval email to regionalAdmin + // TODO: replace with html email function to regianlAdmin + const savedUser = await User.findOne(id, { + relations: ['roles', 'roles.organization'] + }); + + return { + statusCode: 200, + body: JSON.stringify(savedUser) + }; +}); + +/** + * @swagger + * + * /users/{id}/register/approve: + * put: + * description: Approve a particular users registration. + * parameters: + * - in: path + * name: id + * description: User id + * tags: + * - Users + */ +export const registrationApproval = wrapHandler(async (event) => { + // Get the user id from the path + const userId = event.pathParameters?.userId; + + // Confirm that the id is a valid UUID + if (!userId || !isUUID(userId)) { + return NotFound; + } + + // TODO: add user registration approval logic + // Validate the body + // const body = await approvalBody(UpdateUser, event.body); + + // TODO: verify permissions + // User type permissions check + // if (!isRegionalAdmin(event)) return Unauthorized; + + // TODO: finalize validation + // // Validate the body + // const validatedBody = await validateBody( + // UpdateUser, + // event.body + // ); + + // TODO: Handle Email notificaitons + // Add email notification logic + + // TODO: Handle Response Output + return { + statusCode: 200, + body: "User registration approved." + } +}); + +/** + * @swagger + * + * /users/{id}/register/deny: + * put: + * description: Deny a particular users registration. + * parameters: + * - in: path + * name: id + * description: User id + * tags: + * - Users + */ +export const registrationDenial = wrapHandler(async (event) => { + // Get the user id from the path + const userId = event.pathParameters?.userId; + + // Confirm that the id is a valid UUID + if (!userId || !isUUID(userId)) { + return NotFound; + } + + // TODO: add user registration denial logic + // Validate the body + // const body = await approvalBody(UpdateUser, event.body); + + // TODO: verify permissions + // User type permissions check + // if (!isRegionalAdmin(event)) return Unauthorized; + + // TODO: finalize validation + // // Validate the body + // const validatedBody = await validateBody( + // UpdateUser, + // event.body + // ); + + // TODO: Handle Email notificaitons + // Add email notification logic + + // TODO: Handle Response Output + return { + statusCode: 200, + body: "User registration denied." + } +}); + //***************// // V2 Endpoints // From 613d7448eff54e49c1428046fffade9cc39fda97 Mon Sep 17 00:00:00 2001 From: nickviola Date: Wed, 29 Nov 2023 14:04:36 -0600 Subject: [PATCH 60/82] Adding frontend /registration route to complete user registration process --- frontend/src/App.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 2e0dc375b..54a3d2f66 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -109,6 +109,15 @@ const App: React.FC = () => ( )} component={Risk} /> + } + unauth={(props) => ( + + )} + component={Risk} + /> ( path="/create-account" component={AuthCreateAccount} /> + // TODO: Finalize Registration Route Component(Approved create account) From 99c8127191c8fea074f33d40944002c55c760bc0 Mon Sep 17 00:00:00 2001 From: nickviola Date: Wed, 29 Nov 2023 14:06:51 -0600 Subject: [PATCH 61/82] Add call to approval backend api on successfully approved registration --- frontend/src/pages/RegionUsers/RegionUsers.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/frontend/src/pages/RegionUsers/RegionUsers.tsx b/frontend/src/pages/RegionUsers/RegionUsers.tsx index 3d331d314..e5a6a95ca 100644 --- a/frontend/src/pages/RegionUsers/RegionUsers.tsx +++ b/frontend/src/pages/RegionUsers/RegionUsers.tsx @@ -213,7 +213,7 @@ export const RegionUsers: React.FC = () => { res['organizations'] = orgName; apiRefCurrentUsers.current.updateRows([res]); setCurrentUsers((prevCurrentUsers) => [...prevCurrentUsers, res]); - return true; + return sendApprovalEmail(userId); }, (e) => { setErrorStates({ ...errorStates, getUpdateError: e.message }); @@ -224,6 +224,22 @@ export const RegionUsers: React.FC = () => { [apiPut] ); + const sendApprovalEmail = useCallback( + (userId: string): Promise => { + return apiPut(`/users/${userId}/register/approve`).then( + (res) => { + console.log(res); + return true; + }, + (e) => { + console.log(e); + return false; + } + ); + }, // eslint-disable-next-line react-hooks/exhaustive-deps + [apiPut] + ); + const handleCloseDialog = (value: CloseReason) => { if (value === 'backdropClick' || value === 'escapeKeyDown') { return; From b6fc48a414b259b896002981723f293e46317e5b Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 30 Nov 2023 07:57:53 -0600 Subject: [PATCH 62/82] Add additional AuthLogin component for registration completion which includes legacy create-login tab --- frontend/src/App.tsx | 3 +- .../src/pages/AuthLogin/AuthLoginCreate.tsx | 174 ++++++++++++++++++ frontend/src/pages/index.ts | 1 + 3 files changed, 177 insertions(+), 1 deletion(-) create mode 100644 frontend/src/pages/AuthLogin/AuthLoginCreate.tsx diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 54a3d2f66..08ce59e55 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -16,6 +16,7 @@ import { import { Domain, AuthLogin, + AuthLoginCreate, AuthCreateAccount, Scans, Scan, @@ -114,7 +115,7 @@ const App: React.FC = () => ( path="/registration" render={() => } unauth={(props) => ( - + )} component={Risk} /> diff --git a/frontend/src/pages/AuthLogin/AuthLoginCreate.tsx b/frontend/src/pages/AuthLogin/AuthLoginCreate.tsx new file mode 100644 index 000000000..d4624a1ef --- /dev/null +++ b/frontend/src/pages/AuthLogin/AuthLoginCreate.tsx @@ -0,0 +1,174 @@ +import React, { useEffect, useState } from 'react'; +import { AuthForm } from 'components'; +import { Button } from '@trussworks/react-uswds'; +import { Box, Link, Typography } from '@mui/material'; +import { useAuthContext } from 'context'; +import { + Authenticator, + ThemeProvider, + useAuthenticator, + Button as AmplifyButton, + View, + Text, + SelectField +} from '@aws-amplify/ui-react'; +import { I18n } from 'aws-amplify'; + +import { RegisterForm } from 'components/Register/RegisterForm'; + +const TOTP_ISSUER = process.env.REACT_APP_TOTP_ISSUER; + +// Strings come from https://github.com/aws-amplify/amplify-ui/blob/main/packages/ui/src/i18n/dictionaries/authenticator/en.ts +I18n.putVocabulariesForLanguage('en-US', { + 'Setup TOTP': 'Set up 2FA', + 'Confirm TOTP Code': 'Enter 2FA Code' +}); + +const amplifyTheme = { + name: 'my-theme' +}; + +interface Errors extends Partial { + global?: string; +} + +export const AuthLoginCreate: React.FC<{ showSignUp?: boolean }> = ({ + showSignUp = false +}) => { + const { apiPost, refreshUser } = useAuthContext(); + const [errors, setErrors] = useState({}); + const [open, setOpen] = useState(false); + + // Once a user signs in, call refreshUser() so that the callback is called and the user gets signed in. + const { authStatus } = useAuthenticator((context) => [context.isPending]); + useEffect(() => { + refreshUser(); + }, [refreshUser, authStatus]); + + const formFields = { + confirmSignIn: { + confirmation_code: { + label: 'Enter 2FA Code from your authenticator app' + } + }, + confirmResetPassword: { + confirmation_code: { + label: 'Enter code sent to your email address' + } + }, + setupTOTP: { + QR: { + // Set the issuer and name so that the authenticator app shows them. + // TODO: Set the issuer to the email, once this is resolved: https://github.com/aws-amplify/amplify-ui/issues/3387. + totpIssuer: TOTP_ISSUER + // totpUsername: email, + }, + confirmation_code: { + label: + 'Set up 2FA by scanning the QR code with an authenticator app on your phone.' + } + } + }; + + const onSubmit: React.FormEventHandler = async (e) => { + e.preventDefault(); + try { + const { redirectUrl, state, nonce } = await apiPost('/auth/login', { + body: {} + }); + localStorage.setItem('state', state); + localStorage.setItem('nonce', nonce); + window.location.href = redirectUrl; + } catch (e) { + console.error(e); + setErrors({ + global: 'Something went wrong logging in.' + }); + } + }; + + const onClose = () => { + setOpen(false); + }; + + if (process.env.REACT_APP_USE_COGNITO) { + return ( + +

    Welcome to Crossfeed

    + + + + {/* alert('hello')}> + Register + */} + + {open && } + + New to Crossfeed?  + setOpen(true)} + > + Register Now + + + +
    **Warning**
    +
    + {' '} + This system contains U.S. Government Data. Unauthorized use of this + system is prohibited. Use of this computer system, authorized or + unauthorized, constitutes consent to monitoring of this system. +
    +
    + {' '} + This computer system, including all related equipment, networks, and + network devices (specifically including Internet access) are + provided only for authorized U.S. Government use. U.S. Government + computer systems may be monitored for all lawful purposes, including + to ensure that their use is authorized, for management of the + system, to facilitate protection against unauthorized access, and to + verify security procedures, survivability, and operational security. + Monitoring includes active attacks by authorized U.S. Government + entities to test or verify the security of this system. During + monitoring, information may be examined, recorded, copied and used + for authorized purposes. All information, including personal + information, placed or sent over this system may be monitored. +
    +
    + {' '} + Unauthorized use may subject you to criminal prosecution. Evidence + of unauthorized use collected during monitoring may be used for + administrative, criminal, or other adverse action. Use of this + system constitutes consent to monitoring for these purposes. +
    +
    +
    + ); + } + + return ( + +

    Welcome to Crossfeed

    + {errors.global &&

    {errors.global}

    } + + +
    New to Crossfeed? Register with Login.gov
    +
    + {open && } + +
    + ); +}; diff --git a/frontend/src/pages/index.ts b/frontend/src/pages/index.ts index d902af8d1..c33920022 100644 --- a/frontend/src/pages/index.ts +++ b/frontend/src/pages/index.ts @@ -1,4 +1,5 @@ export * from './AuthLogin'; +export * from './AuthLogin/AuthLoginCreate'; export * from './AuthCreateAccount'; export * from './Domains'; export * from './Domain'; From 6a6edfd870ea4efd18804c75bd8364b658ff430b Mon Sep 17 00:00:00 2001 From: aloftus23 Date: Thu, 30 Nov 2023 11:29:34 -0500 Subject: [PATCH 63/82] Add generate_config and update Dockerfile --- backend/Dockerfile.pe | 21 +++++++++++++-- backend/worker/generate_config.sh | 44 +++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100755 backend/worker/generate_config.sh diff --git a/backend/Dockerfile.pe b/backend/Dockerfile.pe index c3956d29c..63384b852 100644 --- a/backend/Dockerfile.pe +++ b/backend/Dockerfile.pe @@ -17,8 +17,25 @@ RUN pip3.10 install --upgrade pip RUN apt remove dav1d && apt autoclean && apt autoremove +# Install AWS CLI +RUN curl --insecure "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" +RUN unzip awscliv2.zip +RUN ./aws/install + # Install pe-source module # Sync the latest from cf-staging branch -RUN git clone -b cf-source-staging https://github.com/cisagov/pe-reports.git && cd pe-reports && git checkout c9cbbd73b22ef38cabe1da6ba50aeb2dc0be4f99 && pip install . +RUN git clone -b AL-staging-SQS https://github.com/cisagov/pe-reports.git && \ + cd pe-reports && \ + git checkout 6dcd017551ba14022e110c073e1bdbc804c795f8 && \ + pip install . + +RUN python -m spacy download en_core_web_lg + +# Create database.ini +RUN echo "[database]" > database.ini \ + && echo "user=$(cat db_user.txt)" >> database.ini \ + && echo "password=$(cat db_password.txt)" >> database.ini + +COPY worker worker -CMD ["./worker/pe-worker-entry.sh"] +CMD ["./worker/generate_config.sh", "./worker/pe-worker-entry.sh"] diff --git a/backend/worker/generate_config.sh b/backend/worker/generate_config.sh new file mode 100755 index 000000000..3791d5f24 --- /dev/null +++ b/backend/worker/generate_config.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# Generate database.ini +cat < pe-reports/src/pe_reports/data/database.ini +[postgres] +host=$(DB_HOST) +database=$(PE_DB_NAME) +user=$(PE_DB_USERNAME) +password=$(PE_DB_PASSWORD) +port=5432 + +[shodan] +key1=$(PE_SHODAN_API_KEYS) + +[staging] +[cyhy_mongo] +[sixgill] +[whoisxml] +key= +[intelx] +[dnsmonitor] +[pe_db_password_key] +[blocklist] +[dehashed] +[dnstwist] +[hibp] +[API_Client_ID] +[API_Client_secret] +[API_WHOIS] +[pe_api] + +EOF + +# Find the path to the pe_reports package in site-packages +pe_reports_path=$(pip show pe-reports | grep -E '^Location:' | awk '{print $2}') + +# Ensure pe_reports_path ends with /pe_reports +pe_reports_path="${pe_reports_path%/pe-reports}/pe_reports" + + +# Copy database.ini to the module's installation directory +cp /app/pe-reports/src/pe_reports/data/database.ini "${pe_reports_path}/data/" + +exec "$@" \ No newline at end of file From 61095414ff7ac3aa0c9ef800475cbd04f77f7a52 Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Thu, 30 Nov 2023 10:46:29 -0600 Subject: [PATCH 64/82] Add changes to users.ts. --- backend/src/api/users.ts | 62 ---------------------------------------- 1 file changed, 62 deletions(-) diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index 67bdef62a..79be8b70c 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -626,68 +626,6 @@ export const register = wrapHandler(async (event) => { }; }); -/** - * @swagger - * - * /users/register/approve: - * post: - * description: New user registration. - * tags: - * - Users - */ -export const register = wrapHandler(async (event) => { - const body = await validateBody(NewUser, event.body); - const newUser = { - "firstName": body.firstName, - "lastName": body.lastName, - "email": body.email.toLowerCase(), - "userType": UserType.STANDARD, - "state": body.state, - "regionId": REGION_STATE_MAP[body.state], - "invitePending": true, - } - console.log(JSON.stringify(newUser)) - - await connectToDatabase(); - - // Check if user already exists - let userCheck = await User.findOne({ - where: { email: newUser.email } - }); - - let id = ""; - // Crreate if user does not exist - // if (!user) { - if (userCheck) { - console.log("User already exists."); - return { - statusCode: 422, - body: 'User email already exists. Registration failed.' - }; - } - - const createdUser = await User.create(newUser); - await User.save(createdUser); - id = createdUser.id; - - // const savedUser = await User.save(createdUser); - // id = createdUser.id; - - // Send Registration confirmation email to user - // TODO: replace with html email function to user - - // Send new user pending approval email to regionalAdmin - // TODO: replace with html email function to regianlAdmin - const savedUser = await User.findOne(id, { - relations: ['roles', 'roles.organization'] - }); - - return { - statusCode: 200, - body: JSON.stringify(savedUser) - }; -}); - /** * @swagger * From bc1a2db0fcf446e4c2dcc8de824f6a6fef64659a Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Thu, 30 Nov 2023 11:07:51 -0600 Subject: [PATCH 65/82] Update Docker mapping and getting ready for redeployment. --- backend/src/api/helpers.ts | 2 +- backend/src/api/users.ts | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index 4c9587614..443789d17 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -180,7 +180,7 @@ export const sendRegionalAdminNotificationEmail = async ( }); const fs = require('fs').promises; - const html = await fs.readFile('../../email_templates/crossfeed_regional_admin_notification.html', 'utf8'); + const html = await fs.readFile('/app/src/email_templates/crossfeed_regional_admin_notification.html', 'utf8'); const template = handlebars.compile(html); const data = { first_name: p_firstName, diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index 79be8b70c..1f6fe9546 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -612,7 +612,7 @@ export const register = wrapHandler(async (event) => { "Crossfeed Registration Pending", newUser.firstName, newUser.lastName, - "../../email_templates/crossfeed_registration_notification.html" + "/app/src/email_templates/crossfeed_registration_notification.html" ); // Send new user pending approval email to regionalAdmin // TODO: replace with html email function to regianlAdmin @@ -662,9 +662,21 @@ export const registrationApproval = wrapHandler(async (event) => { // UpdateUser, // event.body // ); - - // TODO: Handle Email notificaitons - // Add email notification logic + + // Connect to the database + await connectToDatabase(); + + const user = await User.findOne(userId); + if (!user) { + return NotFound; + } + + // Send email notification + sendUserNotificationEmail(user.email, + "Crossfeed Registration Approved", + user.firstName, + user.lastName, + "/app/src/email_templates/crossfeed_approval_notification.html"); // TODO: Handle Response Output return { From 33e3f7ca3301d2c088767332ac829874f4ce705d Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Thu, 30 Nov 2023 11:17:34 -0600 Subject: [PATCH 66/82] Update attachment image filepaths to Docker mapped location. --- backend/src/api/helpers.ts | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index 443789d17..a29a22b39 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -129,37 +129,37 @@ export const sendUserNotificationEmail = async ( html: htmlToSend, attachments: [{ filename: 'banner.png', - path: 'banner.png', + path: '/app/src/email_templates/banner.png', cid: 'CISA Banner' }, { filename: 'web.png', - path: 'banner.png', + path: '/app/src/email_templates/banner.png', cid: 'CISA Web' }, { filename: 'email.png', - path: 'email.png', + path: '/app/src/email_templates/email.png', cid: 'CISA Email' }, { filename: 'linkedin.png', - path: 'linkedin.png', + path: '/app/src/email_templates/linkedin.png', cid: 'CISA LinkedIn' }, { filename: 'twitter.png', - path: 'twitter.png', + path: '/app/src/email_templates/twitter.png', cid: 'CISA Twitter' }, { filename: 'facebook.png', - path: 'facebooK.png', + path: '/app/src/email_templates/facebooK.png', cid: 'CISA Facebook' }, { filename: 'instagram.png', - path: 'instagram.png', + path: '/app/src/email_templates/instagram.png', cid: 'CISA Instagram' }] }; @@ -196,37 +196,37 @@ export const sendRegionalAdminNotificationEmail = async ( html: htmlToSend, attachments: [{ filename: 'banner.png', - path: 'banner.png', + path: '/app/src/email_templates/banner.png', cid: 'CISA Banner' }, { filename: 'web.png', - path: 'banner.png', + path: '/app/src/email_templates/banner.png', cid: 'CISA Web' }, { filename: 'email.png', - path: 'email.png', + path: '/app/src/email_templates/email.png', cid: 'CISA Email' }, { filename: 'linkedin.png', - path: 'linkedin.png', + path: '/app/src/email_templates/linkedin.png', cid: 'CISA LinkedIn' }, { filename: 'twitter.png', - path: 'twitter.png', + path: '/app/src/email_templates/twitter.png', cid: 'CISA Twitter' }, { filename: 'facebook.png', - path: 'facebooK.png', + path: '/app/src/email_templates/facebooK.png', cid: 'CISA Facebook' }, { filename: 'instagram.png', - path: 'instagram.png', + path: '/app/src/email_templates/instagram.png', cid: 'CISA Instagram' }] }; From ecb068003ce9160c89f38b7a1dd9247bd0ec41cb Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 30 Nov 2023 13:37:55 -0600 Subject: [PATCH 67/82] Fix yaml formatting for organizations swagger api header --- backend/src/api/organizations.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/api/organizations.ts b/backend/src/api/organizations.ts index b0a970ab0..379e530dd 100644 --- a/backend/src/api/organizations.ts +++ b/backend/src/api/organizations.ts @@ -868,7 +868,7 @@ export const updateV2 = wrapHandler(async (event) => { /** * @swagger * - * /v2/organizations/{orgId}/users + * /v2/organizations/{orgId}/users: * post: * description: Add a user to a particular organization. * parameters: From 7c6359a74ff60a1d56dcf22d0a4caa5ed4eb8ac5 Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 30 Nov 2023 14:20:18 -0600 Subject: [PATCH 68/82] Fix linter issues --- frontend/src/App.tsx | 1 - frontend/src/components/Register/RegisterForm.tsx | 14 ++++++++++---- frontend/src/pages/AuthLogin/AuthLogin.tsx | 7 +------ frontend/src/pages/AuthLogin/AuthLoginCreate.tsx | 6 +----- 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 08ce59e55..20f0e5c7d 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -129,7 +129,6 @@ const App: React.FC = () => ( path="/create-account" component={AuthCreateAccount} /> - // TODO: Finalize Registration Route Component(Approved create account) diff --git a/frontend/src/components/Register/RegisterForm.tsx b/frontend/src/components/Register/RegisterForm.tsx index 260ee550c..7b954b885 100644 --- a/frontend/src/components/Register/RegisterForm.tsx +++ b/frontend/src/components/Register/RegisterForm.tsx @@ -106,6 +106,8 @@ export const RegisterForm: React.FC<{ }); const { apiPost, setFeedbackMessage } = useAuthContext(); + console.log('apiPost: ', apiPost); + console.log('setFeedbackMessage: ', setFeedbackMessage); const registerUserPost = async (body: Object) => { try { @@ -114,12 +116,14 @@ export const RegisterForm: React.FC<{ headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body) }; - const response = await fetch(process.env.REACT_APP_API_URL + '/users/register', - requestOptions); + const response = await fetch( + process.env.REACT_APP_API_URL + '/users/register', + requestOptions + ); const data = await response.json(); // Handle the response data here console.log(data); - return data + return data; } catch (error) { // Handle any errors here console.error(error); @@ -283,7 +287,9 @@ export const RegisterForm: React.FC<{ onChange={handleChange} > {STATE_OPTIONS.map((state: string, index: number) => ( - {state} + + {state} + ))} diff --git a/frontend/src/pages/AuthLogin/AuthLogin.tsx b/frontend/src/pages/AuthLogin/AuthLogin.tsx index 187b1c8ab..29648418f 100644 --- a/frontend/src/pages/AuthLogin/AuthLogin.tsx +++ b/frontend/src/pages/AuthLogin/AuthLogin.tsx @@ -6,11 +6,7 @@ import { useAuthContext } from 'context'; import { Authenticator, ThemeProvider, - useAuthenticator, - Button as AmplifyButton, - View, - Text, - SelectField + useAuthenticator } from '@aws-amplify/ui-react'; import { I18n } from 'aws-amplify'; @@ -90,7 +86,6 @@ export const AuthLogin: React.FC<{ showSignUp?: boolean }> = ({ // const components = { // Footer() { // const { tokens } = useTheme(); - // return ( // // diff --git a/frontend/src/pages/AuthLogin/AuthLoginCreate.tsx b/frontend/src/pages/AuthLogin/AuthLoginCreate.tsx index d4624a1ef..e20ac16de 100644 --- a/frontend/src/pages/AuthLogin/AuthLoginCreate.tsx +++ b/frontend/src/pages/AuthLogin/AuthLoginCreate.tsx @@ -6,11 +6,7 @@ import { useAuthContext } from 'context'; import { Authenticator, ThemeProvider, - useAuthenticator, - Button as AmplifyButton, - View, - Text, - SelectField + useAuthenticator } from '@aws-amplify/ui-react'; import { I18n } from 'aws-amplify'; From 245a7cfaf463dfb273c79096aff43d408b773e9a Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 30 Nov 2023 14:36:11 -0600 Subject: [PATCH 69/82] Fix test data linter issues --- frontend/src/test-utils/user.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/test-utils/user.ts b/frontend/src/test-utils/user.ts index 5318c4b17..c74bafbd8 100644 --- a/frontend/src/test-utils/user.ts +++ b/frontend/src/test-utils/user.ts @@ -16,6 +16,6 @@ export const testUser: AuthUser = { acceptedTermsVersion: 'v1-user', isRegistered: true, apiKeys: [], - regionId: "1234", - state: "LA" + regionId: '1234', + state: 'LA' }; From 485b054f4789a80991a11b3e87da44ca3f0cf83b Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 30 Nov 2023 14:45:37 -0600 Subject: [PATCH 70/82] Fix linter issues --- backend/src/api/app.ts | 11 ++-- backend/src/api/users.ts | 122 +++++++++++++++++++-------------------- 2 files changed, 65 insertions(+), 68 deletions(-) diff --git a/backend/src/api/app.ts b/backend/src/api/app.ts index ac4aac4fc..3b70dadbe 100644 --- a/backend/src/api/app.ts +++ b/backend/src/api/app.ts @@ -363,8 +363,12 @@ authenticatedRoute.post('/stats', handlerToExpress(stats.get)); authenticatedRoute.post('/users', handlerToExpress(users.invite)); authenticatedRoute.get('/users', handlerToExpress(users.list)); authenticatedRoute.delete('/users/:userId', handlerToExpress(users.del)); -authenticatedRoute.get('/users/state/:state', handlerToExpress(users.getByState)); -authenticatedRoute.get('/users/regionId/:regionId', handlerToExpress(users.getByRegionId)); +authenticatedRoute.get('/users/state/:state', + handlerToExpress(users.getByState) +); +authenticatedRoute.get('/users/regionId/:regionId', + handlerToExpress(users.getByRegionId) +); authenticatedRoute.post('/users/search', handlerToExpress(users.search)); authenticatedRoute.post( @@ -377,7 +381,6 @@ authenticatedRoute.post( handlerToExpress(reports.list_reports) ); - //Authenticated Registration Routes authenticatedRoute.put( '/users/:userId/register/approve', @@ -389,7 +392,6 @@ authenticatedRoute.put( handlerToExpress(users.registrationDenial) ); - //************* */ // V2 Routes // //************* */ @@ -408,7 +410,6 @@ authenticatedRoute.get( handlerToExpress(organizations.getAllV2) ); - app.use(authenticatedRoute); export default app; diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index 1f6fe9546..9d0c405a3 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -52,9 +52,7 @@ class UserSearch { 'lastLoggedIn', 'acceptedTermsVersion', 'state', - 'regionId', - // 'organizations', - // 'numberOfOrganizations' + 'regionId' ]) @IsOptional() sort: string = 'fullName'; @@ -115,7 +113,6 @@ class NewUser { userType: UserType; } - class UpdateUser { @IsString() @IsOptional() @@ -143,66 +140,65 @@ class UpdateUser { role: string; } - const REGION_STATE_MAP = { - "Connecticut": "1", - "Maine": "1", - "Massachusetts": "1", - "New Hampshire": "1", - "Rhode Island": "1", - "Vermont": "1", - "New Jersey": "2", - "New York": "2", - "Puerto Rico": "2", - "Virgin Islands": "2", - "Delaware": "3", - "Maryland": "3", - "Pennsylvania": "3", - "Virginia": "3", - "District of Columbia": "3", - "West Virginia": "3", - "Alabama": "4", - "Florida": "4", - "Georgia": "4", - "Kentucky": "4", - "Mississippi": "4", - "North Carolina": "4", - "South Carolina": "4", - "Tennessee": "4", - "Illinois": "5", - "Indiana": "5", - "Michigan": "5", - "Minnesota": "5", - "Ohio": "5", - "Wisconsin": "5", - "Arkansas": "6", - "Louisiana": "6", - "New Mexico": "6", - "Oklahoma": "6", - "Texas": "6", - "Iowa": "7", - "Kansas": "7", - "Missouri": "7", - "Nebraska": "7", - "Colorado": "8", - "Montana": "8", - "North Dakota": "8", - "South Dakota": "8", - "Utah": "8", - "Wyoming": "8", - "Arizona": "9", - "California": "9", - "Hawaii": "9", - "Nevada": "9", - "Guam": "9", - "American Samoa": "9", - "Commonwealth Northern Mariana Islands": "9", - "Republic of Marshall Islands": "9", - "Federal States of Micronesia": "9", - "Alaska": "10", - "Idaho": "10", - "Oregon": "10", - "Washington": "10" + 'Connecticut': '1', + 'Maine': '1', + 'Massachusetts': '1', + 'New Hampshire': '1', + 'Rhode Island': '1', + 'Vermont': '1', + 'New Jersey': '2', + 'New York': '2', + 'Puerto Rico': '2', + 'Virgin Islands': '2', + 'Delaware': '3', + 'Maryland': '3', + 'Pennsylvania': '3', + 'Virginia': '3', + 'District of Columbia': '3', + 'West Virginia': '3', + 'Alabama': '4', + 'Florida': '4', + 'Georgia': '4', + 'Kentucky': '4', + 'Mississippi': '4', + 'North Carolina': '4', + 'South Carolina': '4', + 'Tennessee': '4', + 'Illinois': '5', + 'Indiana': '5', + 'Michigan': '5', + 'Minnesota': '5', + 'Ohio': '5', + 'Wisconsin': '5', + 'Arkansas': '6', + 'Louisiana': '6', + 'New Mexico': '6', + 'Oklahoma': '6', + 'Texas': '6', + 'Iowa': '7', + 'Kansas': '7', + 'Missouri': '7', + 'Nebraska': '7', + 'Colorado': '8', + 'Montana': '8', + 'North Dakota': '8', + 'South Dakota': '8', + 'Utah': '8', + 'Wyoming': '8', + 'Arizona': '9', + 'California': '9', + 'Hawaii': '9', + 'Nevada': '9', + 'Guam': '9', + 'American Samoa': '9', + 'Commonwealth Northern Mariana Islands': '9', + 'Republic of Marshall Islands': '9', + 'Federal States of Micronesia': '9', + 'Alaska': '10', + 'Idaho': '10', + 'Oregon': '10', + 'Washington': '10' } From ef0c80f2d41e7d4a8a959963d2017fe2669d768e Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 30 Nov 2023 16:44:34 -0600 Subject: [PATCH 71/82] Fix linter issues --- backend/src/api/app.ts | 6 +- backend/src/api/helpers.ts | 164 +++++++++++++++++++------------------ 2 files changed, 88 insertions(+), 82 deletions(-) diff --git a/backend/src/api/app.ts b/backend/src/api/app.ts index 3b70dadbe..e8f1e7979 100644 --- a/backend/src/api/app.ts +++ b/backend/src/api/app.ts @@ -363,10 +363,12 @@ authenticatedRoute.post('/stats', handlerToExpress(stats.get)); authenticatedRoute.post('/users', handlerToExpress(users.invite)); authenticatedRoute.get('/users', handlerToExpress(users.list)); authenticatedRoute.delete('/users/:userId', handlerToExpress(users.del)); -authenticatedRoute.get('/users/state/:state', +authenticatedRoute.get( + '/users/state/:state', handlerToExpress(users.getByState) ); -authenticatedRoute.get('/users/regionId/:regionId', +authenticatedRoute.get( + '/users/regionId/:regionId', handlerToExpress(users.getByRegionId) ); authenticatedRoute.post('/users/search', handlerToExpress(users.search)); diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index a29a22b39..1473e3cf7 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -74,18 +74,18 @@ export const wrapHandler: WrapHandler = export const NotFound: APIGatewayProxyResult = { statusCode: 404, - body: "Item not found. View logs for details." + body: 'Item not found. View logs for details.' }; export const Unauthorized: APIGatewayProxyResult = { statusCode: 403, - body: "Unauthorized access. View logs for details." + body: 'Unauthorized access. View logs for details.' }; export const sendEmail = async ( recipient: string, subject: string, - body: string, + body: string ) => { const transporter = nodemailer.createTransport({ SES: new SES({ region: 'us-east-1' }) @@ -105,9 +105,8 @@ export const sendUserNotificationEmail = async ( p_subject: string, p_firstName: string, p_lastname: string, - template_file: string, + template_file: string ) => { - const transporter = nodemailer.createTransport({ SES: new SES({ region: 'us-east-1' }) }); @@ -118,7 +117,7 @@ export const sendUserNotificationEmail = async ( const data = { first_name: p_firstName, last_name: p_lastname - } + }; const htmlToSend = template(data); @@ -127,41 +126,43 @@ export const sendUserNotificationEmail = async ( to: recepient, subject: p_subject, html: htmlToSend, - attachments: [{ - filename: 'banner.png', - path: '/app/src/email_templates/banner.png', - cid: 'CISA Banner' - }, - { - filename: 'web.png', - path: '/app/src/email_templates/banner.png', - cid: 'CISA Web' - }, - { - filename: 'email.png', - path: '/app/src/email_templates/email.png', - cid: 'CISA Email' - }, - { - filename: 'linkedin.png', - path: '/app/src/email_templates/linkedin.png', - cid: 'CISA LinkedIn' - }, - { - filename: 'twitter.png', - path: '/app/src/email_templates/twitter.png', - cid: 'CISA Twitter' - }, - { - filename: 'facebook.png', - path: '/app/src/email_templates/facebooK.png', - cid: 'CISA Facebook' - }, - { - filename: 'instagram.png', - path: '/app/src/email_templates/instagram.png', - cid: 'CISA Instagram' - }] + attachments: [ + { + filename: 'banner.png', + path: '/app/src/email_templates/banner.png', + cid: 'CISA Banner' + }, + { + filename: 'web.png', + path: '/app/src/email_templates/banner.png', + cid: 'CISA Web' + }, + { + filename: 'email.png', + path: '/app/src/email_templates/email.png', + cid: 'CISA Email' + }, + { + filename: 'linkedin.png', + path: '/app/src/email_templates/linkedin.png', + cid: 'CISA LinkedIn' + }, + { + filename: 'twitter.png', + path: '/app/src/email_templates/twitter.png', + cid: 'CISA Twitter' + }, + { + filename: 'facebook.png', + path: '/app/src/email_templates/facebooK.png', + cid: 'CISA Facebook' + }, + { + filename: 'instagram.png', + path: '/app/src/email_templates/instagram.png', + cid: 'CISA Instagram' + } + ] }; await transporter.sendMail(mailOptions); @@ -174,18 +175,20 @@ export const sendRegionalAdminNotificationEmail = async ( p_lastname: string, p_username: string ) => { - const transporter = nodemailer.createTransport({ SES: new SES({ region: 'us-east-1' }) }); const fs = require('fs').promises; - const html = await fs.readFile('/app/src/email_templates/crossfeed_regional_admin_notification.html', 'utf8'); + const html = await fs.readFile( + '/app/src/email_templates/crossfeed_regional_admin_notification.html', + 'utf8' + ); const template = handlebars.compile(html); const data = { first_name: p_firstName, last_name: p_lastname - } + }; const htmlToSend = template(data); @@ -194,43 +197,44 @@ export const sendRegionalAdminNotificationEmail = async ( to: recepient, subject: p_subject, html: htmlToSend, - attachments: [{ - filename: 'banner.png', - path: '/app/src/email_templates/banner.png', - cid: 'CISA Banner' - }, - { - filename: 'web.png', - path: '/app/src/email_templates/banner.png', - cid: 'CISA Web' - }, - { - filename: 'email.png', - path: '/app/src/email_templates/email.png', - cid: 'CISA Email' - }, - { - filename: 'linkedin.png', - path: '/app/src/email_templates/linkedin.png', - cid: 'CISA LinkedIn' - }, - { - filename: 'twitter.png', - path: '/app/src/email_templates/twitter.png', - cid: 'CISA Twitter' - }, - { - filename: 'facebook.png', - path: '/app/src/email_templates/facebooK.png', - cid: 'CISA Facebook' - }, - { - filename: 'instagram.png', - path: '/app/src/email_templates/instagram.png', - cid: 'CISA Instagram' - }] + attachments: [ + { + filename: 'banner.png', + path: '/app/src/email_templates/banner.png', + cid: 'CISA Banner' + }, + { + filename: 'web.png', + path: '/app/src/email_templates/banner.png', + cid: 'CISA Web' + }, + { + filename: 'email.png', + path: '/app/src/email_templates/email.png', + cid: 'CISA Email' + }, + { + filename: 'linkedin.png', + path: '/app/src/email_templates/linkedin.png', + cid: 'CISA LinkedIn' + }, + { + filename: 'twitter.png', + path: '/app/src/email_templates/twitter.png', + cid: 'CISA Twitter' + }, + { + filename: 'facebook.png', + path: '/app/src/email_templates/facebooK.png', + cid: 'CISA Facebook' + }, + { + filename: 'instagram.png', + path: '/app/src/email_templates/instagram.png', + cid: 'CISA Instagram' + } + ] }; await transporter.sendMail(mailOptions); }; - From 7bfef586e686af7f81631e03b3a1d313bea0e0a6 Mon Sep 17 00:00:00 2001 From: nickviola Date: Thu, 30 Nov 2023 16:52:10 -0600 Subject: [PATCH 72/82] Fix linter issues --- backend/src/api/helpers.ts | 4 +- backend/src/api/users.ts | 82 +++++++++++++++++++------------------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/backend/src/api/helpers.ts b/backend/src/api/helpers.ts index 1473e3cf7..16e7ca2ea 100644 --- a/backend/src/api/helpers.ts +++ b/backend/src/api/helpers.ts @@ -162,7 +162,7 @@ export const sendUserNotificationEmail = async ( path: '/app/src/email_templates/instagram.png', cid: 'CISA Instagram' } - ] + ] }; await transporter.sendMail(mailOptions); @@ -233,7 +233,7 @@ export const sendRegionalAdminNotificationEmail = async ( path: '/app/src/email_templates/instagram.png', cid: 'CISA Instagram' } - ] + ] }; await transporter.sendMail(mailOptions); diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index 9d0c405a3..a3c5e6b27 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -141,64 +141,64 @@ class UpdateUser { } const REGION_STATE_MAP = { - 'Connecticut': '1', - 'Maine': '1', - 'Massachusetts': '1', + Connecticut: '1', + Maine: '1', + Massachusetts: '1', 'New Hampshire': '1', 'Rhode Island': '1', - 'Vermont': '1', + Vermont: '1', 'New Jersey': '2', 'New York': '2', 'Puerto Rico': '2', 'Virgin Islands': '2', - 'Delaware': '3', - 'Maryland': '3', - 'Pennsylvania': '3', - 'Virginia': '3', + Delaware: '3', + Maryland: '3', + Pennsylvania: '3', + Virginia: '3', 'District of Columbia': '3', 'West Virginia': '3', - 'Alabama': '4', - 'Florida': '4', - 'Georgia': '4', - 'Kentucky': '4', - 'Mississippi': '4', + Alabama: '4', + Florida: '4', + Georgia: '4', + Kentucky: '4', + Mississippi: '4', 'North Carolina': '4', 'South Carolina': '4', - 'Tennessee': '4', - 'Illinois': '5', - 'Indiana': '5', - 'Michigan': '5', - 'Minnesota': '5', - 'Ohio': '5', - 'Wisconsin': '5', - 'Arkansas': '6', - 'Louisiana': '6', + Tennessee: '4', + Illinois: '5', + Indiana: '5', + Michigan: '5', + Minnesota: '5', + Ohio: '5', + Wisconsin: '5', + Arkansas: '6', + Louisiana: '6', 'New Mexico': '6', - 'Oklahoma': '6', - 'Texas': '6', - 'Iowa': '7', - 'Kansas': '7', - 'Missouri': '7', - 'Nebraska': '7', - 'Colorado': '8', - 'Montana': '8', + Oklahoma: '6', + Texas: '6', + Iowa: '7', + Kansas: '7', + Missouri: '7', + Nebraska: '7', + Colorado: '8', + Montana: '8', 'North Dakota': '8', 'South Dakota': '8', - 'Utah': '8', - 'Wyoming': '8', - 'Arizona': '9', - 'California': '9', - 'Hawaii': '9', - 'Nevada': '9', - 'Guam': '9', + Utah: '8', + Wyoming: '8', + Arizona: '9', + California: '9', + Hawaii: '9', + Nevada: '9', + Guam: '9', 'American Samoa': '9', 'Commonwealth Northern Mariana Islands': '9', 'Republic of Marshall Islands': '9', 'Federal States of Micronesia': '9', - 'Alaska': '10', - 'Idaho': '10', - 'Oregon': '10', - 'Washington': '10' + Alaska: '10', + Idaho: '10', + Oregon: '10', + Washington: '10' } From 5f6f99247f28eb017c365657f4aee5ef3dfd6946 Mon Sep 17 00:00:00 2001 From: nickviola Date: Fri, 1 Dec 2023 08:11:29 -0600 Subject: [PATCH 73/82] Fix linter issues --- backend/src/api/organizations.ts | 34 +++++++++++++------------------- backend/src/api/roles.ts | 19 +++++++++--------- backend/src/api/users.ts | 4 +--- backend/src/tasks/syncdb.ts | 16 ++++++++------- 4 files changed, 33 insertions(+), 40 deletions(-) diff --git a/backend/src/api/organizations.ts b/backend/src/api/organizations.ts index 379e530dd..b70c0e95b 100644 --- a/backend/src/api/organizations.ts +++ b/backend/src/api/organizations.ts @@ -7,8 +7,7 @@ import { IsOptional, IsNotEmpty, IsNumber, - IsEnum, - + IsEnum } from 'class-validator'; import { Organization, @@ -70,7 +69,6 @@ class PendingDomainBody { pendingDomains: PendingDomain[]; } - class NewOrganizationNonGlobalAdmins { @IsString() name: string; @@ -147,7 +145,6 @@ class UpdateOrganizationMetaV2 { @IsNotEmpty() @IsOptional() type: string; - } class NewDomain { @@ -699,7 +696,6 @@ export const removeRole = wrapHandler(async (event) => { }; }); - /** * @swagger * @@ -751,7 +747,7 @@ export const getByState = wrapHandler(async (event) => { where: { state: state } }); - if (result) { + if (result) { return { statusCode: 200, body: JSON.stringify(result) @@ -760,7 +756,7 @@ export const getByState = wrapHandler(async (event) => { return NotFound; }); -// V2 Endpoints +//V2 Endpoints /** * @swagger @@ -789,14 +785,13 @@ export const getByState = wrapHandler(async (event) => { */ export const getAllV2 = wrapHandler(async (event) => { if (!isRegionalAdmin(event)) return Unauthorized; - - const filterParams = {} + const filterParams = {}; if (event.query && event.query.state) { - filterParams["state"] = event.query.state; + filterParams['state'] = event.query.state; } if (event.query && event.query.regionId) { - filterParams["regionId"] = event.query.regionId; + filterParams['regionId'] = event.query.regionId; } await connectToDatabase(); @@ -805,9 +800,11 @@ export const getAllV2 = wrapHandler(async (event) => { return { statusCode: 200, body: JSON.stringify(result) - } + }; } else { - const result = await Organization.find({where: filterParams}); + const result = await Organization.find({ + where: filterParams + }); return { statusCode: 200, body: JSON.stringify(result) @@ -887,8 +884,7 @@ export const addUserV2 = wrapHandler(async (event) => { // Validate the body const body = await validateBody( - NewOrganizationRoleBody, - event.body + NewOrganizationRoleBody, event.body ); // Connect to the database @@ -904,7 +900,7 @@ export const addUserV2 = wrapHandler(async (event) => { const org = await Organization.findOne(orgId); // Get the user id from the body - const userId = body.userId + const userId = body.userId; // confirm that the userId is a valid UUID if (!userId || !isUUID(userId)) { return NotFound; @@ -916,12 +912,10 @@ export const addUserV2 = wrapHandler(async (event) => { user: user, organization: org, approved: true, - // role: body.role, role: body.role, approvedBy: event.requestContext.authorizer!.id, createdBy: event.requestContext.authorizer!.id - } - // const validatedRoleData = await validateBody(NewOrganizationRoleDB, JSON.stringify(newRoleData)); + }; // Add a role to make association to user/organization const newRole = Role.create(newRoleData); @@ -937,4 +931,4 @@ export const addUserV2 = wrapHandler(async (event) => { }; } return NotFound; -}); \ No newline at end of file +}); diff --git a/backend/src/api/roles.ts b/backend/src/api/roles.ts index f11b42f35..f72b445f2 100644 --- a/backend/src/api/roles.ts +++ b/backend/src/api/roles.ts @@ -68,7 +68,6 @@ class PendingDomainBody { pendingDomains: PendingDomain[]; } - class NewOrganizationNonGlobalAdmins { @IsString() name: string; @@ -145,7 +144,6 @@ class UpdateOrganizationMetaV2 { @IsNotEmpty() @IsOptional() type: string; - } class NewDomain { @@ -668,7 +666,6 @@ export const removeRole = wrapHandler(async (event) => { }; }); - /** * @swagger * @@ -690,7 +687,7 @@ export const getByRegionId = wrapHandler(async (event) => { where: { regionId: regionId } }); - if (result) { + if (result) { return { statusCode: 200, body: JSON.stringify(result) @@ -720,7 +717,7 @@ export const getByState = wrapHandler(async (event) => { where: { state: state } }); - if (result) { + if (result) { return { statusCode: 200, body: JSON.stringify(result) @@ -762,10 +759,10 @@ export const getAllV2 = wrapHandler(async (event) => { const filterParams = {} if (event.query && event.query.state) { - filterParams["state"] = event.query.state; + filterParams['state'] = event.query.state; } if (event.query && event.query.regionId) { - filterParams["regionId"] = event.query.regionId; + filterParams['regionId'] = event.query.regionId; } await connectToDatabase(); @@ -774,9 +771,11 @@ export const getAllV2 = wrapHandler(async (event) => { return { statusCode: 200, body: JSON.stringify(result) - } + }; } else { - const result = await Organization.find({where: filterParams}); + const result = await Organization.find({ + where: filterParams + }); return { statusCode: 200, body: JSON.stringify(result) @@ -832,4 +831,4 @@ export const updateV2 = wrapHandler(async (event) => { }; } return NotFound; -}); \ No newline at end of file +}); diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index a3c5e6b27..7ac61155a 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -199,8 +199,7 @@ const REGION_STATE_MAP = { Idaho: '10', Oregon: '10', Washington: '10' -} - +}; /** * @swagger @@ -278,7 +277,6 @@ export const update = wrapHandler(async (event) => { return NotFound; }); - const sendInviteEmail = async (email: string, organization?: Organization) => { const staging = process.env.NODE_ENV !== 'production'; diff --git a/backend/src/tasks/syncdb.ts b/backend/src/tasks/syncdb.ts index ccc9d6d7e..18e9d3e06 100644 --- a/backend/src/tasks/syncdb.ts +++ b/backend/src/tasks/syncdb.ts @@ -25,14 +25,14 @@ const NUM_SAMPLE_DOMAINS = 10; // Number of sample domains per org const PROB_SAMPLE_SERVICES = 0.5; // Higher number means more services per domain const PROB_SAMPLE_VULNERABILITIES = 0.5; // Higher number means more vulnerabilities per domain const SAMPLE_STATES = [ - "VA", - "CA", - "CO" + 'VA', + 'CA', + 'CO' ] const SAMPLE_REGIONIDS = [ - "1", - "2", - "3" + '1', + '2', + '3' ] export const handler: Handler = async (event) => { @@ -90,7 +90,9 @@ export const handler: Handler = async (event) => { isPassive: false, tags: [tag], state: SAMPLE_STATES[Math.floor(Math.random() * SAMPLE_STATES.length)], - regionId: SAMPLE_REGIONIDS[Math.floor(Math.random() * SAMPLE_REGIONIDS.length)], + regionId: SAMPLE_REGIONIDS[ + Math.floor(Math.random() * SAMPLE_REGIONIDS.length) + ], }).save(); console.log(organization.name); organizationIds.push(organization.id); From 451592e91838aa9171f291851e92b93c164b2123 Mon Sep 17 00:00:00 2001 From: nickviola Date: Fri, 1 Dec 2023 08:24:48 -0600 Subject: [PATCH 74/82] Fix linter issues --- backend/src/api/organizations.ts | 6 ++---- backend/src/api/roles.ts | 6 +++--- backend/src/tasks/syncdb.ts | 17 ++++------------- 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/backend/src/api/organizations.ts b/backend/src/api/organizations.ts index b70c0e95b..90361b1a0 100644 --- a/backend/src/api/organizations.ts +++ b/backend/src/api/organizations.ts @@ -717,7 +717,7 @@ export const getByRegionId = wrapHandler(async (event) => { where: { regionId: regionId } }); - if (result) { + if (result) { return { statusCode: 200, body: JSON.stringify(result) @@ -883,9 +883,7 @@ export const addUserV2 = wrapHandler(async (event) => { // if (!isOrgAdmin(event, id)) return Unauthorized; // Validate the body - const body = await validateBody( - NewOrganizationRoleBody, event.body - ); + const body = await validateBody(NewOrganizationRoleBody, event.body); // Connect to the database await connectToDatabase(); diff --git a/backend/src/api/roles.ts b/backend/src/api/roles.ts index f72b445f2..a04eb1116 100644 --- a/backend/src/api/roles.ts +++ b/backend/src/api/roles.ts @@ -693,7 +693,7 @@ export const getByRegionId = wrapHandler(async (event) => { body: JSON.stringify(result) }; } - return NotFound; + return NotFound; }); /** @@ -723,7 +723,7 @@ export const getByState = wrapHandler(async (event) => { body: JSON.stringify(result) }; } - return NotFound; + return NotFound; }); // V2 Endpoints @@ -756,7 +756,7 @@ export const getByState = wrapHandler(async (event) => { export const getAllV2 = wrapHandler(async (event) => { if (!isRegionalAdmin(event)) return Unauthorized; - const filterParams = {} + const filterParams = {}; if (event.query && event.query.state) { filterParams['state'] = event.query.state; diff --git a/backend/src/tasks/syncdb.ts b/backend/src/tasks/syncdb.ts index 18e9d3e06..559e321dd 100644 --- a/backend/src/tasks/syncdb.ts +++ b/backend/src/tasks/syncdb.ts @@ -24,16 +24,8 @@ const NUM_SAMPLE_ORGS = 10; // Number of sample orgs const NUM_SAMPLE_DOMAINS = 10; // Number of sample domains per org const PROB_SAMPLE_SERVICES = 0.5; // Higher number means more services per domain const PROB_SAMPLE_VULNERABILITIES = 0.5; // Higher number means more vulnerabilities per domain -const SAMPLE_STATES = [ - 'VA', - 'CA', - 'CO' -] -const SAMPLE_REGIONIDS = [ - '1', - '2', - '3' -] +const SAMPLE_STATES = ['VA', 'CA', 'CO'] +const SAMPLE_REGIONIDS = ['1', '2', '3'] export const handler: Handler = async (event) => { const connection = await connectToDatabase(false); @@ -90,9 +82,8 @@ export const handler: Handler = async (event) => { isPassive: false, tags: [tag], state: SAMPLE_STATES[Math.floor(Math.random() * SAMPLE_STATES.length)], - regionId: SAMPLE_REGIONIDS[ - Math.floor(Math.random() * SAMPLE_REGIONIDS.length) - ], + regionId: + SAMPLE_REGIONIDS[Math.floor(Math.random() * SAMPLE_REGIONIDS.length)], }).save(); console.log(organization.name); organizationIds.push(organization.id); From aae3a918aa77d65a909d82d37d08b283b1efdd03 Mon Sep 17 00:00:00 2001 From: nickviola Date: Fri, 1 Dec 2023 08:48:47 -0600 Subject: [PATCH 75/82] Fix linter issues --- backend/src/api/organizations.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/src/api/organizations.ts b/backend/src/api/organizations.ts index 90361b1a0..e5c395c1e 100644 --- a/backend/src/api/organizations.ts +++ b/backend/src/api/organizations.ts @@ -723,7 +723,7 @@ export const getByRegionId = wrapHandler(async (event) => { body: JSON.stringify(result) }; } - return NotFound; + return NotFound; }); /** @@ -753,7 +753,7 @@ export const getByState = wrapHandler(async (event) => { body: JSON.stringify(result) }; } - return NotFound; + return NotFound; }); //V2 Endpoints @@ -765,7 +765,7 @@ export const getByState = wrapHandler(async (event) => { * get: * description: List all organizations with query parameters. * tags: - * - Users + * - Users * parameters: * - in: query * name: state @@ -773,15 +773,15 @@ export const getByState = wrapHandler(async (event) => { * schema: * type: array * items: - * type: string + * type: string * - in: query * name: regionId * required: false * schema: * type: array * items: - * type: string - * + * type: string + * */ export const getAllV2 = wrapHandler(async (event) => { if (!isRegionalAdmin(event)) return Unauthorized; @@ -912,7 +912,7 @@ export const addUserV2 = wrapHandler(async (event) => { approved: true, role: body.role, approvedBy: event.requestContext.authorizer!.id, - createdBy: event.requestContext.authorizer!.id + createdBy: event.requestContext.authorizer!.id }; // Add a role to make association to user/organization From bc9359a656164f00244f524e6678fa1c16dbed29 Mon Sep 17 00:00:00 2001 From: nickviola Date: Fri, 1 Dec 2023 08:52:02 -0600 Subject: [PATCH 76/82] Fix linter issues --- backend/src/api/roles.ts | 8 ++++---- backend/src/tasks/syncdb.ts | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/src/api/roles.ts b/backend/src/api/roles.ts index a04eb1116..46e71d8a5 100644 --- a/backend/src/api/roles.ts +++ b/backend/src/api/roles.ts @@ -735,7 +735,7 @@ export const getByState = wrapHandler(async (event) => { * get: * description: List all organizations with query parameters. * tags: - * - Users + * - Users * parameters: * - in: query * name: state @@ -743,15 +743,15 @@ export const getByState = wrapHandler(async (event) => { * schema: * type: array * items: - * type: string + * type: string * - in: query * name: regionId * required: false * schema: * type: array * items: - * type: string - * + * type: string + * */ export const getAllV2 = wrapHandler(async (event) => { if (!isRegionalAdmin(event)) return Unauthorized; diff --git a/backend/src/tasks/syncdb.ts b/backend/src/tasks/syncdb.ts index 559e321dd..4d14cd977 100644 --- a/backend/src/tasks/syncdb.ts +++ b/backend/src/tasks/syncdb.ts @@ -24,8 +24,8 @@ const NUM_SAMPLE_ORGS = 10; // Number of sample orgs const NUM_SAMPLE_DOMAINS = 10; // Number of sample domains per org const PROB_SAMPLE_SERVICES = 0.5; // Higher number means more services per domain const PROB_SAMPLE_VULNERABILITIES = 0.5; // Higher number means more vulnerabilities per domain -const SAMPLE_STATES = ['VA', 'CA', 'CO'] -const SAMPLE_REGIONIDS = ['1', '2', '3'] +const SAMPLE_STATES = ['VA', 'CA', 'CO']; +const SAMPLE_REGIONIDS = ['1', '2', '3']; export const handler: Handler = async (event) => { const connection = await connectToDatabase(false); @@ -83,7 +83,7 @@ export const handler: Handler = async (event) => { tags: [tag], state: SAMPLE_STATES[Math.floor(Math.random() * SAMPLE_STATES.length)], regionId: - SAMPLE_REGIONIDS[Math.floor(Math.random() * SAMPLE_REGIONIDS.length)], + SAMPLE_REGIONIDS[Math.floor(Math.random() * SAMPLE_REGIONIDS.length)] }).save(); console.log(organization.name); organizationIds.push(organization.id); From 1a5911fd4ac37a49a371b5578022d6de2125589c Mon Sep 17 00:00:00 2001 From: nickviola Date: Fri, 1 Dec 2023 09:15:22 -0600 Subject: [PATCH 77/82] Fix linter issues --- backend/src/api/users.ts | 156 ++++++++++----------------------------- 1 file changed, 40 insertions(+), 116 deletions(-) diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index 7ac61155a..f4d03c435 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -456,7 +456,7 @@ export const acceptTerms = wrapHandler(async (event) => { * description: List users. * tags: * - Users - * + * */ export const list = wrapHandler(async (event) => { if (!isGlobalViewAdmin(event)) return Unauthorized; @@ -511,16 +511,15 @@ export const getByRegionId = wrapHandler(async (event) => { where: { regionId: regionId }, relations: ['roles', 'roles.organization'] }); - if (result) { + if (result) { return { statusCode: 200, body: JSON.stringify(result) }; } - return NotFound; + return NotFound; }); - /** * @swagger * @@ -548,10 +547,9 @@ export const getByState = wrapHandler(async (event) => { body: JSON.stringify(result) }; } - return NotFound; + return NotFound; }); - /** * @swagger * @@ -564,28 +562,28 @@ export const getByState = wrapHandler(async (event) => { export const register = wrapHandler(async (event) => { const body = await validateBody(NewUser, event.body); const newUser = { - "firstName": body.firstName, - "lastName": body.lastName, - "email": body.email.toLowerCase(), - "userType": UserType.STANDARD, - "state": body.state, - "regionId": REGION_STATE_MAP[body.state], - "invitePending": true, - } - console.log(JSON.stringify(newUser)) + 'firstName': body.firstName, + 'lastName': body.lastName, + 'email': body.email.toLowerCase(), + 'userType': UserType.STANDARD, + 'state': body.state, + 'regionId': REGION_STATE_MAP[body.state], + 'invitePending': true, + }; + console.log(JSON.stringify(newUser)); await connectToDatabase(); // Check if user already exists - let userCheck = await User.findOne({ + const userCheck = await User.findOne({ where: { email: newUser.email } }); - let id = ""; + let id = ''; // Create if user does not exist // if (!user) { if (userCheck) { - console.log("User already exists."); + console.log('User already exists.'); return { statusCode: 422, body: 'User email already exists. Registration failed.' @@ -603,10 +601,10 @@ export const register = wrapHandler(async (event) => { // TODO: replace with html email function to user sendUserNotificationEmail( newUser.email, - "Crossfeed Registration Pending", + 'Crossfeed Registration Pending', newUser.firstName, newUser.lastName, - "/app/src/email_templates/crossfeed_registration_notification.html" + '/app/src/email_templates/crossfeed_registration_notification.html' ); // Send new user pending approval email to regionalAdmin // TODO: replace with html email function to regianlAdmin @@ -656,7 +654,7 @@ export const registrationApproval = wrapHandler(async (event) => { // UpdateUser, // event.body // ); - + // Connect to the database await connectToDatabase(); @@ -664,19 +662,19 @@ export const registrationApproval = wrapHandler(async (event) => { if (!user) { return NotFound; } - + // Send email notification sendUserNotificationEmail(user.email, - "Crossfeed Registration Approved", + 'Crossfeed Registration Approved', user.firstName, user.lastName, - "/app/src/email_templates/crossfeed_approval_notification.html"); + '/app/src/email_templates/crossfeed_approval_notification.html'); // TODO: Handle Response Output return { statusCode: 200, - body: "User registration approved." - } + body: 'User registration approved.' + }; }); /** @@ -722,11 +720,10 @@ export const registrationDenial = wrapHandler(async (event) => { // TODO: Handle Response Output return { statusCode: 200, - body: "User registration denied." - } + body: 'User registration denied.' + }; }); - //***************// // V2 Endpoints // //***************// @@ -738,7 +735,7 @@ export const registrationDenial = wrapHandler(async (event) => { * get: * description: List all users with query parameters. * tags: - * - Users + * - Users * parameters: * - in: query * name: state @@ -746,86 +743,54 @@ export const registrationDenial = wrapHandler(async (event) => { * schema: * type: array * items: - * type: string + * type: string * - in: query * name: regionId * required: false * schema: * type: array * items: - * type: string + * type: string * - in: query * name: invitePending * required: false * schema: * type: array * items: - * type: string - * + * type: string + * */ export const getAllV2 = wrapHandler(async (event) => { if (!isRegionalAdmin(event)) return Unauthorized; - const filterParams = {} + const filterParams = {}; if (event.query && event.query.state) { - filterParams["state"] = event.query.state; + filterParams['state'] = event.query.state; } if (event.query && event.query.regionId) { - filterParams["regionId"] = event.query.regionId; + filterParams['regionId'] = event.query.regionId; } if (event.query && event.query.invitePending) { - filterParams["invitePending"] = event.query.invitePending; + filterParams['invitePending'] = event.query.invitePending; } await connectToDatabase(); if (Object.entries(filterParams).length === 0) { const result = await User.find({ relations: ['roles', 'roles.organization'] - // relations: { - // roles: true, - // organizations: true - // }, }); return { statusCode: 200, body: JSON.stringify(result) - } + }; } else { const result = await User.find({ where: filterParams, relations: ['roles', 'roles.organization'] - // relations: { - // roles: true, - // organizations: true - // }, - // relations: { - // roles: { - // roles: true - // }, - // organizations: { - // organizations: true - // } - // }, }); - // const updatedResult = { - // ...result, - // numberOfOrganizations: 0, - // organizations: [] - // } - // if (!result.roles) { - // result.roles = []; - // } - // updatedResult.roles.forEach((role) => { - // const org = role.organization; - // if (org) { - // updatedResult.numberOfOrganizations += 1; - // updatedResult.organizations.push(org); - // } - // }); return { statusCode: 200, - // body: JSON.stringify(updatedResult) body: JSON.stringify(result) }; } @@ -950,15 +915,6 @@ export const updateV2 = wrapHandler(async (event) => { // Validate the body const body = await validateBody(UpdateUser, event.body); - // User type permissions check - // if (!isRegionalAdmin(event)) return Unauthorized; - - // // Validate the body - // const validatedBody = await validateBody( - // UpdateUser, - // event.body - // ); - // Connect to the database await connectToDatabase(); @@ -967,50 +923,18 @@ export const updateV2 = wrapHandler(async (event) => { return NotFound; } - // TODO: check permissions - // if (!isOrgAdmin(event, id)) return Unauthorized; - - // If organization id is supplied, create approved role - // if (body.organization) { - // // Check if organization exists - // const organization = await Organization.findOne(body.organization); - // if (organization) { - // // Create approved role if organization supplied - // await Role.createQueryBuilder() - // .insert() - // .values({ - // user: user, - // oganization: organization, - // approved: true, - // createdBy: { id: event.requestContext.authorizer!.id }, - // approvedBy: { id: event.requestContext.authorizer!.id }, - // role: "user" - // }) - // .onConflict( - // ` - // ("userId", "organizationId") DO UPDATE - // SET "role" = excluded."role", - // "approved" = excluded."approved", - // "approvedById" = excluded."approvedById" - // ` - // ) - // .execute(); - // } - // } - // Update the user const updatedResp = await User.update(userId, body); // Handle response if (updatedResp) { - const updatedUser = await User.findOne( - userId, - { relations: ['roles', 'roles.organization'] } - ); + const updatedUser = await User.findOne(userId, { + relations: ['roles', 'roles.organization'] + }); return { statusCode: 200, body: JSON.stringify(updatedUser) }; } return NotFound; -}); \ No newline at end of file +}); From a0a37471ce09d0e98b756d2d76ec5ce117bbd962 Mon Sep 17 00:00:00 2001 From: nickviola Date: Fri, 1 Dec 2023 09:22:41 -0600 Subject: [PATCH 78/82] Fix linter issues --- backend/src/api/users.ts | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index f4d03c435..3a0eced7f 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -562,13 +562,13 @@ export const getByState = wrapHandler(async (event) => { export const register = wrapHandler(async (event) => { const body = await validateBody(NewUser, event.body); const newUser = { - 'firstName': body.firstName, - 'lastName': body.lastName, - 'email': body.email.toLowerCase(), - 'userType': UserType.STANDARD, - 'state': body.state, - 'regionId': REGION_STATE_MAP[body.state], - 'invitePending': true, + firstName: body.firstName, + lastName: body.lastName, + email: body.email.toLowerCase(), + userType: UserType.STANDARD, + state: body.state, + regionId: REGION_STATE_MAP[body.state], + invitePending: true, }; console.log(JSON.stringify(newUser)); @@ -602,7 +602,7 @@ export const register = wrapHandler(async (event) => { sendUserNotificationEmail( newUser.email, 'Crossfeed Registration Pending', - newUser.firstName, + newUser.firstName, newUser.lastName, '/app/src/email_templates/crossfeed_registration_notification.html' ); @@ -657,18 +657,20 @@ export const registrationApproval = wrapHandler(async (event) => { // Connect to the database await connectToDatabase(); - + const user = await User.findOne(userId); if (!user) { return NotFound; } // Send email notification - sendUserNotificationEmail(user.email, + sendUserNotificationEmail( + user.email, 'Crossfeed Registration Approved', user.firstName, user.lastName, - '/app/src/email_templates/crossfeed_approval_notification.html'); + '/app/src/email_templates/crossfeed_approval_notification.html' + ); // TODO: Handle Response Output return { From a3427db688ad535f86698d3fd9cf8750dce7d116 Mon Sep 17 00:00:00 2001 From: nickviola Date: Fri, 1 Dec 2023 09:24:42 -0600 Subject: [PATCH 79/82] Fix linter issues --- backend/src/api/users.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/api/users.ts b/backend/src/api/users.ts index 3a0eced7f..c82fb5aae 100644 --- a/backend/src/api/users.ts +++ b/backend/src/api/users.ts @@ -568,7 +568,7 @@ export const register = wrapHandler(async (event) => { userType: UserType.STANDARD, state: body.state, regionId: REGION_STATE_MAP[body.state], - invitePending: true, + invitePending: true }; console.log(JSON.stringify(newUser)); @@ -665,7 +665,7 @@ export const registrationApproval = wrapHandler(async (event) => { // Send email notification sendUserNotificationEmail( - user.email, + user.email, 'Crossfeed Registration Approved', user.firstName, user.lastName, From 3f44fb8312dc3c378f9df3c6efea6bad0d1e2563 Mon Sep 17 00:00:00 2001 From: nickviola Date: Fri, 1 Dec 2023 10:18:10 -0600 Subject: [PATCH 80/82] Fix tests for 403 output --- backend/test/scan-tasks.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/test/scan-tasks.test.ts b/backend/test/scan-tasks.test.ts index 31a0b3846..e52662282 100644 --- a/backend/test/scan-tasks.test.ts +++ b/backend/test/scan-tasks.test.ts @@ -232,7 +232,7 @@ describe('domains', () => { .get(`/scan-tasks/${scanTask.id}/logs`) .set('Authorization', createUserToken({})) .expect(403); - expect(response.text).toEqual(''); + expect(response.text).toEqual('Unauthorized access. View logs for details.'); expect(getLogs).not.toHaveBeenCalled(); }); }); From 2db05014e770cf307f3efb29d96f80ed81d2a070 Mon Sep 17 00:00:00 2001 From: JCantu248 Date: Fri, 1 Dec 2023 10:18:57 -0600 Subject: [PATCH 81/82] Move backend/email_templates to backend/src/email_templates. --- .../email_templates}/email_templates/banner.png | Bin .../crossfeed_approval_notification.html | 0 .../crossfeed_denial_notification.html | 0 .../crossfeed_registration_notification.html | 0 .../email_templates}/email_templates/email.png | Bin .../email_templates}/email_templates/facebook.png | Bin .../email_templates}/email_templates/instagram.png | Bin .../email_templates}/email_templates/linkedin.png | Bin .../email_templates}/email_templates/twitter.png | Bin .../email_templates}/email_templates/web.png | Bin 10 files changed, 0 insertions(+), 0 deletions(-) rename backend/{ => src/email_templates}/email_templates/banner.png (100%) rename backend/{ => src/email_templates}/email_templates/crossfeed_approval_notification.html (100%) rename backend/{ => src/email_templates}/email_templates/crossfeed_denial_notification.html (100%) rename backend/{ => src/email_templates}/email_templates/crossfeed_registration_notification.html (100%) rename backend/{ => src/email_templates}/email_templates/email.png (100%) rename backend/{ => src/email_templates}/email_templates/facebook.png (100%) rename backend/{ => src/email_templates}/email_templates/instagram.png (100%) rename backend/{ => src/email_templates}/email_templates/linkedin.png (100%) rename backend/{ => src/email_templates}/email_templates/twitter.png (100%) rename backend/{ => src/email_templates}/email_templates/web.png (100%) diff --git a/backend/email_templates/banner.png b/backend/src/email_templates/email_templates/banner.png similarity index 100% rename from backend/email_templates/banner.png rename to backend/src/email_templates/email_templates/banner.png diff --git a/backend/email_templates/crossfeed_approval_notification.html b/backend/src/email_templates/email_templates/crossfeed_approval_notification.html similarity index 100% rename from backend/email_templates/crossfeed_approval_notification.html rename to backend/src/email_templates/email_templates/crossfeed_approval_notification.html diff --git a/backend/email_templates/crossfeed_denial_notification.html b/backend/src/email_templates/email_templates/crossfeed_denial_notification.html similarity index 100% rename from backend/email_templates/crossfeed_denial_notification.html rename to backend/src/email_templates/email_templates/crossfeed_denial_notification.html diff --git a/backend/email_templates/crossfeed_registration_notification.html b/backend/src/email_templates/email_templates/crossfeed_registration_notification.html similarity index 100% rename from backend/email_templates/crossfeed_registration_notification.html rename to backend/src/email_templates/email_templates/crossfeed_registration_notification.html diff --git a/backend/email_templates/email.png b/backend/src/email_templates/email_templates/email.png similarity index 100% rename from backend/email_templates/email.png rename to backend/src/email_templates/email_templates/email.png diff --git a/backend/email_templates/facebook.png b/backend/src/email_templates/email_templates/facebook.png similarity index 100% rename from backend/email_templates/facebook.png rename to backend/src/email_templates/email_templates/facebook.png diff --git a/backend/email_templates/instagram.png b/backend/src/email_templates/email_templates/instagram.png similarity index 100% rename from backend/email_templates/instagram.png rename to backend/src/email_templates/email_templates/instagram.png diff --git a/backend/email_templates/linkedin.png b/backend/src/email_templates/email_templates/linkedin.png similarity index 100% rename from backend/email_templates/linkedin.png rename to backend/src/email_templates/email_templates/linkedin.png diff --git a/backend/email_templates/twitter.png b/backend/src/email_templates/email_templates/twitter.png similarity index 100% rename from backend/email_templates/twitter.png rename to backend/src/email_templates/email_templates/twitter.png diff --git a/backend/email_templates/web.png b/backend/src/email_templates/email_templates/web.png similarity index 100% rename from backend/email_templates/web.png rename to backend/src/email_templates/email_templates/web.png From 1c115d89e3c8f292585ea2c811bf4b267d653dac Mon Sep 17 00:00:00 2001 From: nickviola Date: Fri, 1 Dec 2023 10:22:16 -0600 Subject: [PATCH 82/82] Fix tests linter error --- backend/test/scan-tasks.test.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/test/scan-tasks.test.ts b/backend/test/scan-tasks.test.ts index e52662282..72e8995c9 100644 --- a/backend/test/scan-tasks.test.ts +++ b/backend/test/scan-tasks.test.ts @@ -232,7 +232,9 @@ describe('domains', () => { .get(`/scan-tasks/${scanTask.id}/logs`) .set('Authorization', createUserToken({})) .expect(403); - expect(response.text).toEqual('Unauthorized access. View logs for details.'); + expect(response.text).toEqual( + 'Unauthorized access. View logs for details.' + ); expect(getLogs).not.toHaveBeenCalled(); }); });

    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ⅅBH3`#BL6crgb(?cQD~ob7R2Sdzp=*x{>T(R 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 z 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ⓈLr>~#gvWw%VH*?hbQSL9FVAmuICm4srndB{w-@}21?McMt^G@eR zk9lS-?|$@9`SXYNm9Alq(&j!|Wo{1bsDh4f#|S*|SGH;NqPXe5YfH9|0W#pdkNNcE zWI4^%F%#^t_sr2{P6lw(k^RA;(;!LQLrQs311EOQywTP-@g2CpkK)M;EAxpRcY5?sTue`>iLG<*K*j;?njl*LMDrrNf65TQ?8@uU0zq5xqX!LDQ66vEabz_81qpN&h^&2G%T`0!d zjm&%Z)3|TiG+W;Jw_jT}?CL9{|JR-}wP%E*!8s+C1yf7N>~0ED7c*KO+H7!yav~L) zg9CijN|qOlhb)JP;Cz#p{j*TUHOw*jLGtNEF;W`XKi2_0;{xL+Gn$b=8rS*>)w%RI zLFc{6vCUYl*ZqC*FT$h}#Kbj56OVB7%rPA*_!Q6#t;8iK2H*lOa(4jWj=3II9vMEz zsz3)^IZ}^`FkJ@Ubgas62hDXN5zJcTNM~Lm)rCN}!I*O##I4SL3n=u;d1xq?k!hcadCDVzW=tX%jX_` zmeo;Y+9`(tevqSW|HFNcm$%-0F%xyH+-lqgRzcoz>9%q`M%xDuOq9FXE%^$L)ZINc zSl)T{j@*0t(1BAN+kB|p#7<8CzW;{Zn-f8e*3@p59OgppDU{vYtdSAzwh_G?uPP@KmT|+dStR( zgkkvK+;wC53UN*>VTgh+O&_)*Gk2!QlkIn#|6j*bL+=&rZ2iUe-c;^lL4ZzPe&XPG z`A6*NeQe)hBr3enwuf_(!rv8b*I%-u{O{D+hW1Wh7=7-UedW1-^($rZ_+;7k-aE_g zpZxH-sq;OKf&AB4jkSk7T{!ShUdO%A(DE>okpJ%9XUYi-<5#dl{bz2!f)0e^5txYh zO$@!qFc9Cy@y#E)`GWX&0(V#MpFZ$(d2;`8tpuGxDa&Sd55MuoOUpIfFYG|&kw^EI zuiXC#3QCOv&AtursoDPqU2Hp(IPUoSsbRAOjr+vB_(;+tfZaOpG*g?`?SdY~wb>uAed)uJ$Tz${N)Ew!Xq?-`nRptib7v(WX9==8R8$TZh5tI*#iv zcs3C_DYR=X=lU@Ytr2@V*&twpa zG_|IAjG`w++ap=bcN9+Rj45Jr-D24#IrA`H5NkUZzfQ(T4zhjOf3 zq@$xzQ39^8Jn_Z*g2c~s4)#r~4EF>IkFpzL0^JiCG`3l>9#KBRyLX0Kes>f^zhnTa z@@CyD%QW&0p*Ieo8(C)yP8NZ4FMX7QRgc(B{g9uN)7E!&?Td)=U$D9k@AdcfK*HO2 ziQM^PK$BRIlyQ9^0<|;nhls`y2T#lKLnD&vT#VR)!!LJ1@#4f^H}|*oAe*D}frk@# zsWXT&&!2S2L9SrFzrR!oaFvHCzIrtObn5abtFt_uQN?`^{Fp8 zru^osuYNH^#-qktPa`5yAJ{shR0uVm`410K_w6XU~K|Q|>AYC0|g@rkl zER~;As36M^NZ9Sl_P8ANX$&R*Mp+ZcCq|t4DmA-pMx! z(xm4-5+dIQ+nOrg(TQ4o#20u@2#Mh;#t4cPTw+8q9r@BN;YXhfs2DHs^R8zjx|_F$ z&P@1O#01P7lNbCfwKOoQI8->*SA5_LK2jGvZS~fq`1n5)eyI#T0!gCyW;t~L=FhyV ze~ssYF#8rKyOb4?cSZ$v5Bj;sndf>Hy+E$klW_d@SNc|1FbDYgEoN0lh_`i}doiTWBu}0-JaL*=(@9rhN}F}prZv1qNKg}XJ=%-Eh}9Vvmc%2)!MosHcX3=>+G*fkUN>fqfohtHLq(#3s`czK zr1t4qJO#h{?Rc=8dQMvke=FzlBcXDCP`*ZXJNA>0Jc>JcIIe}y?LuNAC7#!<$x>{h zi9E5tNSh;0?uryB5pv24u+SXnH`L>RIWk(d-EebRc>LStJnq}wilOQ>$F=<0YID;LlyyB8g<@8B*pB})d zE9L3?HUsMl40e-iLuHKqYh{H~3Bi8_ohJGLn@qYn+SeUX%I8&fta^RP)=dNDhMfb9 z{n3%x-MPpexktEC>-cnEIX=sECN%EtoBGSt=_QVkWaln@iGAG$`n4%fB0zt+a9cme zI?~smYoEV!1S98SIev7CQ-?N}vF#htSLVtwj3cKo1W!%TkD&w4VJuwHu#2&{pDoN@ zvB!1E=(_CG!^rF6H+i7eG<25Md@C=k-&?lQH-W>$<0~8^iEfPCSw)}L_`HOE)ast= z?TGZYOc!`W9@bzhq$94CzV}@3qY6$FR$5p<` zSHrW;dFMWK%UO3+%8x0p{0$4hS5+267xW?xy*t2G=%3tsbztIA{F@(DYGi%udhdE~9iz%7h9X3=H8iy`zd^YJGz@*iH{`0N3U z?@I$^oU!l%dh-&zInR;S)5njNQwN?aYX=XM4J;sC*t&zi3(E3&7nGjqlcjHxV`%4C zw1rKBK^ZyPGHaVuR=IFNTIg-h=zC%iCGqqDVI&j!IJ-UJ7w5B`c(c#6&K1OPaN=kf z_Cy-Lbv?8Z$I<(akCzGBm*WNHw))%xJDbN3A0!)xjxFN^~Pv$c#P(Jjp0yPjy}M)x*qb``suc(kcCMn|ELsUfX^m zD-Q@4-%!@LehW)KAAE~JtBY41S_+zJD#lR$+TWV2MW;HOr0GECjeMIvx+*RhpjW~dNEXWF30Mb+@yvs=K4V^04BFHxb4a1Ea6&)ZKVjg8 zxGh`Yy?Nw9FMPJ|>m0Yv^#Ui3&6V+!&zI+>_aj5KFA4z%9m9$6OmJ!NHE?}?JoSf% z2}0+jOqt}PFfBp0FG=D8Q|lu2LpW0lWegd2(T08&+tBAiGa*zcy!am8tnU@3;mE(n z>m?s8kkmzsd=L&Fv=HkDR5E^qrH0;wRz`IY>S{H!6_x_pf7P!x7LWMM4iO4x9RFPT zSsN+ofDuppTW3S*r}K0mrtw&#t&w_A9u#D*?3aLc6b?G(FwPF5G?{LZPM{ycd5i@0 z6Xr`pCCrY~op}lkcN@<$Y5SFXzg6D<-Zz$uF{Hlg%Ja*e+yQ&{1A8g3Rna)|n$Pau zLmX54Z26&%V{?shF{@SHcFoSR=h$@l{1ZpYYdEg?0~mB)$I7U8U%RV3d2FhD7XMqg zEE%9=LL!O!Pi||4q|}&cc1-Z2?p?~4lvGVgDep7iFhSSz9 z9y?wR{vRJL)AxS6jNbIJa=}0Sds#5hhPO`*8ed=+`fq*X85U0TmiOJbnyyv>z<$CzF)5%v)u)6RMSPYSl zurrXtSZ|lJtM>!9UzL!oZtDkth{RVVULoRJeVoK&Epeg&hr9f+&-6@7zf z^!=%aE#l!B=kc_ zZ35o?j9Y(cJ^ZUzJ1D?2ccvPRfx@bUPg zF$ThG$Z!W4-K=W$UXdOY+!+SDl{WCk_b%#L<^D^5NSK#!FBQ`Ii%$FgLJ%(<(i!(Z z70d9>Vt2j^=S+BQL1)LVId$gIrtkDS1Ea=&so&ZvfgsJO4C}mwx1J^*FYsLt{>!}l z=cYb4-MQcA<}LqKS9O*3PduZ%qkemAoh`>*iYq9XXx1sa4Jgeynbe%P{RZB4@QNG= zu(Kcnr}=IX%TqWir%Wz6C`laT6K$s|eAX**Aik-c$j*Wa>EGxq_7S!>Be=T|Fb@uSQZJLMxwkF0g~i9>4@dGU3CzoyYiT3UJ3sVU+})48DJ z9C8qa2r0_hcr>0B##z5Lp1;=W43hvJ)!IcTQu{apQcsm%L`V3_)ZhV*p(k}JzS&)E z7z-i|w=Z(BO*Cc84!>xe>VaPu$fxeaA`&bs+U6O44}89)2Yz*Nj{Tw2?oOtluLE2o zSrABCclEHyiOC`->7D2q;F=64tFnSVN6|rPks^H-J!t49t~oRH3O?-Y1%^@FvCGsf zt!jln#z|ESey$Y&cduTUcBc&Wr*YnUsDa1?1bk25!z?2^W0+8*ZoLoi6q89#ELgt| zs_k!_{sUzEc_lAs%rlz<@So-WaBVwT9Ll027dKE4+7Oc@JYxXkeT6&J-0kAA%o@Nl z@e3TQP5y9N#<8e%X5;XYaT9M+w3h@KbmJd(12>Pfj8RKM5f4g(2TuUn7aNa~2126n z<^*~sELm-3dmLc0MkK_;`$~xtz6N0M@X^QQCm+5xj`+$B=+;1wZYhsBh!%+aVQ6@MYcR9mNEXl!SDK%kv1)t(Ji!K`6t6YU= zEkhiUl%1q;2UV4S(9-ds=`HAbnVR=?FDOps=aX_KU+DzsRh}t_a6uOh6j0VVdHHJH z85hb6-a0cc^UtKF@BZUEGS+DDx8)Tr{kt(bRA)Nhh$J)Olu4oLG8tH=+NLu5BzGNr=`lpkh`ia}-t#7Ct*n9!k99(o!b23lf zgK~p+0_060c9x~a(?|T12k$OmsdZLiYCvvb=fwp0NlTsl-s$S(2%*NYeniH<#FGZp z7v)lhJHaJvr?}d3Yw$K_bySqepqxow>LGa|eCz|XOw?0ih~}wb&{iGZ)Z%A)?~gN$ zCt`H7kU<&?%YM?fE&oXB@C|9zftkXtbz%Or8@L_W;!*>6g*;{R$lzcO9LobjIkt`f zvaWI}yb1d9r1kED8h1Qtjmle6PMNI_SOlMpBlymd>y2&@ni8yzU|vZN?L0bH!0I0I zT8y`W1vu#4$(MNGDJo1$QMNAUbKpUpsWfQV3W41H4aP9UA}UJ6!+KS}@pq&QQa4j9dA zCl+~E-gJ6)eCRFjnRovD(WQ>M%H&gfOCJkp`?qeRg5-v#%?rc-4I*hqdH}_LG4%4S z=s%%>kbbU@&fhjb3*biy!y+vB&xL5iEM_?kFVDGS6q)a0MBANLOZCAEy%>8u+EjQh z$RjDx;WrFCqx1>q?buc3S#*Br=<#r^eLE?#pwA5%whJd`feIXcM>m!3i?1vXJoxo2 zAUuBy^CvEdbN-Ks<^lQykFf2+_;!j(=sqTVhr!?PEh89zhQX~LKBaS>1)1aIeSkZD z@7do~ZoBUMGV$ay?B5rm zf&J6L$(3@$rDNs&@4miVeAD&i_};zciTl1!T?=sR;2SF2FT9YuT8GLL zk3L=&CZ{nFFPCQ*xoenr!5xA6F~dtZ<0#~wdT~l6@1sY$BY2R=S6p-< zatB1|do=)T<}7e^$Pc{xUGxd)RdnH-Ihy(S(Nj6TR1pWcviK%LM78Y2)zyt+$RqD-1Kp(V+p35M>wk?7~#p$lbkfyJjJa zWvs$WufDnrVsuMckduzI%uXTWuL;0inT?7Ng99+N!^eP46!`Lyv;?xr0an{i{8Cwss< z>Y36N872?3PX0(H?XTbR1Wr6;AajtyHK>MdWr2d`qhr7yXCCn0XUEIK$G%xMY}-_Z zw`|2|&Tf7BQf(cx9Et3)>C+SAEJ~>Tare;!W%S7NWo^Uevbgi&vT)JWFb8es)Nzhc zKE<)L)EP90ZiC>n-onhOIq(s=22at{i67c)_$>WviV6M%7#xTV!@0QQ#36PIN)EaZTXXk;!m7k2CF{D~#T3BwLB z`2pH^z?VLfDU0`b+H>eC9BI(PGk%RHiW#5DSHQ4MB^O{BJMRr`vM>pM+e}KD^6{2$ z_5Ea5^NXjj8qf8oP<7CaI`Q;@x}X!x)$ypKL1f5wpMoV$vUr2m18&GSWZN>k zPT7u6d6=6<7u%B#yLrCEwhA zEqHk+_*zVVXt%b~}f%bn&;bQ08b?Qi_0Q$trJbrYu&S`zA0pX-4} zGxz!=ifaKeFTF9j>D7uvid@L`))(dAKxnZrg1P5VncKlIPbgDFr*W%d82Se#P!hxr_B(7=gcaV7&b4cMp|MaBTC9>;S$Eqwf!3 zG<)=rM&Lu`4>{8LYVP#C9V2loG+Nl3Uia#<@S#Ix;pcyy9loC}gBR{ByMO8@ayN@{ ze)1hJFW=mIsC@csd&&r_wLHeTQz>iVNcV@HIa+@9cfVBb`_8i{8EdSlyP*91kKI*X zd)00_$kcKh{cr5)oyfoPcivon0>%4FkM1kqrED?y{`5P`O_!dRdb{?bt>q(s{~hHg zf8*}lH*DR?Ye-NT*vf?s7+SaAe`BR-G6olU_gd=ym$Rdnffx?&^6arw<$wI`FP6LS ze?rS*#lK1Rf(Lwl9xG1&=O4bay!EDw*MnD4e2;zXljX?oezNrMKCkTh=?|5$SGrE` zY-iJZ^2AK}*I(FEmQh-6VMqGU-g#x(^)m?ZU%2Nf2JQ}6ww0fH&1E6wF^;17rF-{s zPuW7b0lI&XUA^bJqqK`pe*LL>S1;}IEJvQ3Q9R%L^2^FimuzSE)?)eYV^5baef1$$ zU(zwruFiHH5{R_k$&!`D)Nv+~5RS?S|F!*h6`<$9S(hgjy784k11$gXsFtiKLMiWc zMHD?l9Rv%*Owq-_Ymp9QjsfH0nIlobU99p0Pl_l>NOv zH@aFPkv#L&7C#YQ~^~LtHx@;*GvMw4ew0jyZ&vOHmrr+rg^bAZQK_; z1MG#ko}C9gByn|ZCY`VHiX#OTNu6;iZ&I}J^{S!g{NmdNBtd@8iBmyV&l+EHwkYY} znW_b+f7-5beQ*9c;~MAe)W++CaCVFrhSczLe~tITd@2qtZ?*VzrcK@?q~*sOs@8U? z4lP$w@G6hm64i_ht1Q-H*qM9t-gU;aU^nkP@ z2PNt@P6j(wms}gT>Q%~8{qnBd%a=MAC29zeN#!K0vN)3rq*e9+ojimMAAz8g1`b>z zL-F$nIPe}t^Dm@Eop1f{&R4EBpE+?4>y-9U1wvg-^&gc&!^ zm-eGlu~xKDYmkr$Zri} z?gVh4Nj^-Rdi3#%lb{@>r~x;#OC~^ui)W5^WJiO1mv#~+v%F&9N?@sBox59x0j*E( z`9fy7JE&j7D>2w)!F4L+1MKu$)Fa$XTqZkN4I6{Bx`(^ZX%qIpb@az16Y0%XI$I~b zl*PfVyofirvNM3)y3$vgNe6l;LlW+{1LxI@F3Cb#K~Igkyw(!&uCqQo0b>+Bc9BUO zPtMRl+{eV13sM(3)x`dBo;7`kr^)%WvZ3?iL5jE3WQ`(s+eu+)=IqW*@6u zsx?cP6Pe_t9LaSwyf2ZdI!hOAyc^mnCp^)>-Lz9I5|tMOH^c%nhe4;|X?IszDek;- z97!;K{~vX40=4N?73iLSp2wQ!R8mRE2nZwu2pUjOz*$%*Dz>^5Y5VH+_C>wjy6)=k z+j7_{6K6P$lhk6d68v6ex4tf+f7f9RO9d3eH-Xq5ajf zid7;>K^3G-6sYAyZyX6 zN`0tS)szr55r2;XCos~Cwi*4U5hNz(Vt=CPla7N0WZS-&a~<(-{|z7xf9zo$dQWTnBl z=r>p&P++pcyhe#ych#17X5%j$i!#aeC)yd{!@w>gVyRMG)MI^!cueXyqxBb#j0Lqc*C!+G|zw3D+z7!|_ssY3m*wgXIA&glqX+UjbhMLDL()X0iiU{KE7 z-D{jx^rS7cccxpmF}*|_Pn>9G9C*V`x275H3cYaQB8D>hb@VT%JW(%jLkDTa*ckm8 zzSQZ~t=rPz{{3m<=yTzh%Rt#gCtF9No{%TxIQlKn;jT{?3EL)kc-IQ`&BX-v8@f2@ zVmk}x4_v=HrN4V7>V+KXWny~=7jquINc*U9m;S^u$3VOLP$7>6c1^BEgGhKDM=z4^ zHo^xuYIkV=%TmXd+fwV<@w93CVA{f*c1PO;#>CFFd*5buKuxAyTRPLu9ewHiCCBbm zR(VOil{ZbaL+qVoM=-}?&UB<<42~Sin+`sGinfcfGI==9e9b63gj;)Tn=AqJ3i+O* zEgHkRD?i+InP@lN*{QxM6aLnBceBRn0PyAMS@=Xhp$qtCjA|OUYvmsDB2SeRxs!jR zm?+oyQV-^m3mMG)Ec6;DcO5=@Jl$~pjj3aBbGkS&$;oHvBmQ~!p>XF`+S4!n_Qx?& za4+aAx)dF_i=(x-4|JvzV;I<0X45S9pyn|KWsO0^F-51xdXl$7ryGjQmonoHuN6-f zp*?oz>I%mWmt*4X``AsipVo(-@|2hs7A7dS8UQqg-gMv^j3~&xeJlEIn^-vEamBVZ z8dO~5(u%TGX6<*{x3%r}nw%935^;ZVEMk{oq~|;rE`}Iz>ax4Gxd%J$qQy8vt~g&-0V)i%)IUt z^t7?XI1`K3`}r%1o^n(hL8@ob_PwHK=+gT-{Mci1Hu923~b zBQb73A4i`9Aj>3}rCbARQn|#54BsPZkx5H9LroP5#myVVgzPvjRO%`R4Za&c{&=^| z%ZP{&ar`E{ik0;v9u^+-sN;N<7mjiKr>^icNc~rknK16-*GwOC8^^?d;|)XUMK9l# zKKZd@>A`0?&Y$v|<*I~8g|eDwK?vNSu5c;`Z#>+)Oaso%_~9 z>xoh2ksmG8Gjr?Q@e-$cM1PkP;{vJh0c}|$fvO$<2=pWf<;O)Of>@8G!$0Hnu{fm{ z8`&81^&^B`HFC3xyvrgx_N~*yJ9^}O@(OTY_ zVUF=#GjoMAiL3b+Knd2Bj=bNw)09cFQk3}7@Kdtkqo=?%;(aAc2(JY4KN>_8g#N|l z_lOwT&y#a10EC_lS!j(yA;p#X+QoR|J>-BSrxbGo4-EIpE{e){l*8=`QQIg8hq8Ash8uN?TmCnV>cZI z+VwcX*~uTd+UT4t`8+#%-}QmIq4%XX?oRK1JBD74gI4+cOLBWR_ow&#=@BPhS$ z{Os}c1UspBG06GJS6!F3(h;7euKf)=(m#CgTpDJ=>fhXPO~5yxjLC?{j$KH9{HcRh zsKy}Psn67#>vj&Ox7@{QHk|i{-2352()c*{%g|xWlXwwy#gF<$-Z^Q92-7gCLbEdC8J#$hS|Grfrn=JO8GSn0;*$uW*qxm5+Z}bn zFQ80T=meWr?~+jEI9AT7`d zfk#a4($SAd5qrZ=g)@A`p#x{_HT%S`piX9a455`$}VPAY&t%MiQ?G`|3RE)HbG_eY2dx z3I4+)%0-?v!fi~mj%{PeSNJV*T(JAgAuF&EA)@8t%&%Ye_sgL#2sY;T`QkmFf5B6G z1|TvoFGK!*7wH%$qSv9dWxcR73(qRb#5h!$8b; z2XKu75R)XC(5%Z$AdoxB;tmju9{jU|97jJBY+Ek9PJDZ8yo+l@(Lp;v@~YxEYE|kq zF1rKN97~^?(bzUcHW#K9capM-Tt(5upg~RLj!MJhZoe82bAE|cbK#R&gkSB2_w}&q zAgRz-+T%qmQ8x9@>_s^Kk;~wD?)Ms|q1B2|Mbjtpl{@&kTyr3?(XZ;oRodyCq=N*? zok^DEHU{kIPYsSaEwSSSAmyNxv^q)40mdw{qJhn{;wNF{0O?<|LQB?TpjGQZ9DC!NH`S*qfTU3& zMo{CIc8yn@?T$dUHBv2|w&idj5b#N!ob1lr)6*Pe=Tm>3!w`@0&6CeLz5}=>+drOB zzu=YaVF&$tk3)0dYT2}OVRXf)>^P@`N#8~4bO-qlo<;l4q!DR&MCu4f9&YLBVdt~! z;x)o!_-2B2m>n1{u9DV%Cf%gWD|Kv3HR5QT4P!55H^NS4b(s^tt`w&>QMu@gV$gMB zGjhno39d!@0$t1`c^9A)MfO?dk%KmaP3GIMvH_a`ke38-#rW>Q@p;tr^| z%TSr;+dkAB^0`F3Sm_=HSPj$qahx(Vwc)3XFToFY_jrATabui_96E9D&N3^!eI<2= zM#5HPu#a!cZ;ZU#_lxq5GKSyaa57;O9xedyF`YX#x)aA;_ujv1-ZwRMv*=7CHaq~= z9CE1f!kv$Ktfg_9T{zSq?{(}!22Fp8(@s1^rwg1O+vpK!lcc3ocCiac1F*8LlgpN0 zmZ1$3 z=eojYzf3((+^ZonZvFj}@7)+Py{8uYh?|vg4Gi!T7b2ElBVNuCGDCc!-!mWp06+jq zL_t*RUZe+*N3||_!h!M%&Ni$R&YQb9fs;Y=WRnT&ct(F49ULckfRrpm-M}Zp^MtOi zwhI*>h!=f!@LN`y+QK7cj&>OIx%~p4?*a)Mz;!(MhSOWJ@&bLnqzz!FTf%)`(t@ z_^#3jPUu;_eb26>WsszN^=<=h^Vfhdhvo#L6iWU{urX%jxe$T8J5fJ*_?a|x%dIg- z6#YZ+#=ix`|sVgAcg^#p_0_L#NN^kH&Tk12P2 zod1b|MZfe(TI{z zfeAhc4ilsW$>$?#MASD8$#E<(6U)r)5{gj|LsJtIv!gSlpkb5wBNzVI*YL<+`}Z@Pa~f@I!$t0H9@DqoaZ=xQyk~eIbzz)!(OK`n=CpP9t~9{H z=2nikb-tmKopLTJ>T2#wdv~#9#Q|HnfzU{7b>Et;K(dTH3R?_gGdCn#1%-@-dGwH;+>B<;s-^vz;iD%I72KGFP zYn%mIDv#KuO#Y?6lVhcqmchkDxx2J&yDffoX2G9jj&J;9q8*BLmDuDL+0QJvCAmgF zW^`;aojP+N<_ubz?B8L~K?mASF4Lb;KAs-ucw_W)CkBdc=2%~TU^v}#&&}y~{@{@` z!jaWY%ultmTiv!E5=k##wcuUnOJU8l52|67#3^qVP?qa8V!;^wNw1o6F^tzoX*AN9 zy2=hUn_%Te1IZHoG3UJ9iM~cZvz!baMn z7W$=G#Q`0CTM36N@TP;!53BR`;w*6`o>R>1Z*a_U2b(#}U!KpD4*N6orEIUro+CVU zd$WcOc1g!v3;t$Ap1X*_yW(f)^R&SqYp8v(s2$Lu9*)geyps&+WTTPBa+<{`TaZxq zlqToUNn6?G&$ep?gB0utxP0d7U$UF0#uPbxyj=kVFxO@29g7IS-zACq|6ByhY zz&ui#UQ^X(fhp>em_d`P9C4iKT9g4^x>C-+_4`U89c;dTpNJAJu z@YmQs>z%#$si9-{VjwqE^yI^S1=Q5^L6t@xTNPZQ$dVqo5aej*9g9>TA@4PkgZqTw zte@mX-M^`GA-(4AP3iAHJ(8ZCVj&at*}04!#t3G0ievVJ2Sf{*g{JS zc6XHNESp`X87tVXbTBR$z?QRb-=4JZ&R3;p4~?c~c0o6Dg;iYXVT~Y>!NI<(e~c0jM~HCTS>h-2{{a1A?G6l^3;6s!Jq&9)ER7fE-;RFF-ID^oYuPf(!?sK z8a#W3ySnGob0^NFt^ij)kOn+ooS3yEhaFGYwnFm;LOf=AVHrg%Px0U#-h(wLHMX8 zU*3VS?pf}lT<5H8*_CMJyMSf?5D2|&1tCbNsE8#w3DM7g2KtRhVB@JG(#1+#<5w^? zhIuM3E5k?);Id=DG+f=G63DANDnuDwq$876s^JJWj*X$pQ^i**Y$!&lq~K);vEoh( z2UKD3jRuGcLZ{9httZc%O@H^m!|CmB`_{C(+THsQyL+eY9R{Hl5zu#bVlMshCl97? zc;Pi^|JH#*9RvU7^!gjNrN2Klmj3MXr_x_>7w?O>_w;M8*_2*)U|V|Z>_mF+Lr2qJ zKY2QiZGP(ucgIn_PjkfcA95e+BrBdSv3qi(vDXCJw{A^a-})_S@hlgk|M7k4%zHkN z_Pp!IQV**wCNSV#h9)~YLkN|}tu;C)IUYH3F8zl;_*i=6$&<=xdf83v=>7iJgkk$% znxVJQek1qp{^pOpKK+|tzc+p1*|X`>k3E;(@t*tAul~sE(w*$0wyfp<`+wq%=}$iX zbX*j#98?;+p!w&0LQf~M_H`WF{mXBK%~jfB=UTmUAVgj zy3==j&F=JFx3ann`S{p#BkBE*JjX;vTY3Wv6TXv03$pUarRns`pJ25K1i$Rs&2a>I zJ@Nc@n&ZPi_|U<0?h*qxd(({$9NyLY4esj2Nbkh+QwL9^2S5E}>gFDnRqiiQ>1XX> z{)td&mq3G;9a1~1{-baM#y8Xcyy_Osb+I!&l)l zMWw5&=xM{qqV9H)%k!lf@DZo>meVLPYDD2dYq!9FqQgd(=E(lx+zj`WfZvH>f}+#d z%?j8BcE`9XdtRdpjVaA@@Yx+^b^?J;y$os@ZF)2L!R^S9t4VNzw#m=bh=*Cp*d@XUV0ut$bsqpn!!2od7nUcIu{Rp}m z{v7{mAtlxIDKvgHLR<}lu+Qh;h-dvf{3TKy_dguNdVGF~qXA0y?UGG1^?O58^iZTF+deM%zlN)8=<^U`3^Ajr^V`2kX;|k}$pab0a z88;>p%u0nja9PPk6tKQp&qazC`H~`O5?6FP2@4-Q?XM6L@dGz_&8c##Y!iink}Dh; zjzWV7^b?l=8fd(NqjlPxqpPd9YYa5vZp1=MP9;*i;zv}5`*T%if&`dnc#yd&oup|V zp}~BGu^h0V4L^C~glG(400+F$uqw41RJ|P^$&R= zu5E*|)M>*CJ+TvpyY`g7C?5v3vFs8$T~X`(zA@@|5`eZjjt2y{GSI?N#mmdHai6oM zNR89tWNHVz^zHqm%~5+TF~P-ob|HgRgTf=z8H@yH$P98E6H4G$j+W#RE_S!`bT^0c z9Wow*X8Qv*)GmUFP#`$V_@0}Uo=#OL7q0*eq|m{<-AA`Bm^!wXMSTc zLW+3rrf=5Igsx^`jhn()JRMPw$sdz{0>*K<6kr@j8xyI4jl2`aWPp7k^XR|ex@|mt zsV0n|%`OIGVhXe|0VmHwc)~~Yu3AxEs7Syk>~PwFs;dElJmK)LsgT;!%%Xe1xdS&u@kmzx>8m ziC|$xU@nW0Kqs>)@`TB2WZIoVtr!;Cn0!~nS*a3yvwk_5n&&CNK{=^f zOv@GhoH5Er<&-5}&B3ht&^ObKH2mft-1=>AU-(zcIfs@JyUE;#j+%9v98aSMw&bX;d)(c4v zZ05k$iQw>bb}P3ptG1&sLTZK8Mf=55wq)O2mewubinni&!Hz?x88dvI5EVy`8`TtorRkVlChIlnR z1-9folU4B5L%+JWNR^+=$4pr+os2JY=1buYt_OcD597MpXzJYg)XqYn-UHW%-YR2Q zgL4^}a^{76VxoT%c`65RQhd~9m&NJu)HgG7Pfj?z&w^?#}$IthK>(80;~Ha zG!R7{P}WI*hH>PhpZOvNR18tX^d3N^(f)_Vv*-^+IoU4S4p5(>y#t>+248S%nmhb- zTDed=@^+#Rm`7=M;UagdUS?6kIBo0E z=PuKhccsoAa!5L~Buv0-?BkwPPDuHNmvDFPbW6JTkK^+#1)4(LZC+(86*@I&o%!<1p#J&`D_OSmJKhH5Oc%dkkLC z{p3>@)0q=pX)ky8ZUtHE;85Da)nrdTb(uRh7t*y%{$IMxv6CEwxxnt&K$ z1`g*jl*L&V*YzP68mcu|yDPPm#iZBo>q{f&=o@3OS!EV}ViH3giz6{1BQxYp-h*S) z%1GLB!!_yhv&YlXXHJA+eiKEu?WV1%Ys=O&bNPI_aPkbsoK<9$lSBGBvb>Y~c7dTw z8F{yeq^%Pp`3#E{To{+z2HSuZj>-1k$ps8Z-N*`cf?c4_47IDK4jp&)^`tdhNS2 zW`IxosQ-PmQP*)vb_<5gVKUJVJt0fb)62r+7EdO^g=|@;hzkY5yJ^N65JGuUPl&fT zHO}~EIxVvZV2M+GR*?gbP>%3Q9@SY&DNOMvaOI#ZuXu%g3lf1mY`s??3ULe<27Zi0 z_OW6CHMF{jux4~3fjA`)+H4~OrO6?GFHk$dNWB$J5kIt4ft` z`5Ao`0_A8vwZSYKhydV(mtRrj{Mh!#_=tXq0qP$f3eiBX*`Ac|kIp+_bV0S=N zFu?0sjlv>cL^XL!NJNC2pG?144XYfU@s6i5+p#i0eVN3M-PPP(ZNJ7-P=rxVqK^&E zNDuy71R1Y=vfzNlgFp3zxR!Yr0Pc`nKv!7)i-dXIMm|xc5F%Yfq@Jno zqfe)c=%>zsp=fW~=?^;pvA`myzJV=ijfF%@7f!JdhN}h`b7@4LV)y7AV;>jP#?=Sr zJ@}htTS_cM=e^~z3loa2wiH7`&?il^lWB31yQg~w(*#%Oojg2|+MeOKadet@#M?fU zF@$xYl_ThN<}sI^xWXrX!!ODYU-&WOvF^bY>H`Z_Oj~+P-_n*}9>u)U&0W+S3Gcn~ z%2mj5feo2aPJyRb)aQmbVT`t}*^axYL6Y2f3PfxSaCEwLO9yQbS2djW+C|c&9PP(A zwvMVvoGjJ6D1SUkjv|ffE4-x`U}afW%ineky`EM)&4~u9=-(avL$pzx1iN`|8I^C~&L4paydISmv_(YH$1esXz}1Yv5+QwX zIT{D>$h??@q>#fpZvn_m!g6)9y%3&nO0u*^yqs zZr6Km-=F^ak!M_rE18vpJ_P;A=gy@+!oc{`-*HD6K1%4V81ugU)?MlGGvn#gCq~j= zVDP_Xo46F;2hxI4jP#BAt#$&))>iZj2T;+W{4{{08i=MJ6@Ufyxj zuJrEj`inJEVj{{kFBJVeLlP2Ao5e}Chx9NWUGMx1i`6zAdp^!p!3_kHG2 zwWD`^Jz7USczRF{-~F1~(|`TGudN4xXYS~8>DizC#WeHuu{89WJJY_O|B2Mb;NWV` z6!s5s-|?GYn*N&Ix^KL38#0s9p^MY$zueD#Dx7ijVhp-JefRZI-!HR>;5R;VEIoH_ zJncbNf9mc7tUAh5NCp2alf0isuH5M!vz;X%o_0F8^nKUn^w#Q*>vQKv(qG>Dad!8P z(g~(xUUibJ&Y=`|DUFCeb~tUcUF4A!Jp_l6N1s%hV_jiaY_w6%jU4a|tmO+`%!D?L zqm6-K4pM8U5SYGrqY=*${S}wb{Ht0Qs_wFX{x%I=?lP6HLPpkhIb7OIi$|3w^X4qO z*saA8#(Q}Cfm1gU4d=HhXMcg*DG+)PomO;kfcjH`8MC9leAa7kBDuOd;M67%&+ACx{^e+<~nOg-i!<4X)mwL1so(vsWYN44w`Li)( zJ?0wtKj@`~I~Q`qEqH6?Q~}jM_%3n~iyvx$=HKjsA*{srS+Le<3E`>Nrdk?>&IT$9`hp|l+xT0!Qs+;-#%!#^ z)U6HCE6J;+z9G2wS?J6jIR$ZBjGfQ#=C^Kh<|5C!$;h7KZQw8qXShU?V(y z^9MYQGNK+i7_npAfpKPz)syW^zI3{a59e`U?y&1(B5Z*Hy{?;;m15FJx4@v&qgSPA zfx*3S_B9;9EW{v(h3QPhEpUWu3zLD}9%oA2MR3_S>0~0yzLt8)UBc!;z3$PjuBx{$ zw!nbh)ve9+xfBJ*k#jMCV*(L%;DR=dQocK}?Wrd2ES1*|_ws2ByrX-N~sxcM4mjtm#6uUfhOE>ER7j9yGCQKZ}{r~GgRD8{s|c3&M?U%{ZmY=0hIkA#({lXj}z|VR`!b{uXy=g_si)!ikYXb z%tC9sI|ul7m;bP59>SD%Cgt30Eeo2R9Hp)|YYc;qU?p|bOnWS*kzqZ9fAZ@D7C7B8 z-&7q}C^e>P-7C5%ePETodD#{Q@1@Z z(dTRitymURY0Z4=<4WFrV^C>tF#G?dq>CpxmCqNqD^jY`WfX{TzrTp=!+n8kb&A&ny1AiT_?S%ziFf_(! zc!!8w+ESCtD$|vJvr(KNKC_P~8*%zx4~()y9>zCzbTNiqZ_R+;=!rBJ6IDro1?7zh6FC^xU zz*UZ)oRJjxqmGxi?xI!q8+i@fE7Y|Zn{&KyEXp9Rd28p0-*ny0^evxccQA%Q7dv2( zTXk#V>RjY`6$9@gm27!=E={rcz`H}+NXHXJ+EGMn7`0ZKy3(^_DLwny%c-fG`!{Kw z><5pqB6*w>z*<^*Vn-sj+q5)8KbLQhz4d<9E{?f$m#Ok-dt_TU!ZE~u{^4WkZ$5e? zcr!Sv{GzYI&eSoEfG!5{7$aC#F^8Ze@h^Cm(y95ibnFCu zb1It)`a+-4_PXIu-LD?B{54)#80zt6_?nH{_7{;2^o|BR+g-8iJZ+=MO08RrkqhWz%9i;_PXTIf>qcKMr0%{=X%k1`ZlyocYJVQ(IEuV|{>(gcr5CuyqBGsz zy^`Meod?oKKYlztKH*7llpEyjLi++vwHBozn{iAwPxp*;WRZnmTtUm zcY5OJNZQs<8%X&dIy0H}a{TwjiJ7#0OMhI)v9)_H{p=6FH2u{dA4;9<3ZI^sO&>Wp zk+y9eN+UC~X_%eKm&d2rb-bK@>RWG2ci;8m^r?IAPapczzf4=M8BBNFc1?QQOTLSf zQxfyXr_;faPo!hVmeb!qH=p`H{d77zGM9D_ccx?D2tx+^ZJ(b?*Klv_W2a81LF#!o z3+h)8%Fd3ybQS~d-ff+67xU2zOKEthH(kU4eDj{(v~zO@cSKKeOn3{s$d}Sh`-a#o za)QN$E9t@*{b7vK8pb-PPa1Qt=^spk$jo$<4=1Le3T831c40W5rrm0%UJWBFdj`AH zc}|2GXzORL&{N?!?FBsBC?`*iv91izKDV>OyB(t`CUNA%{+8GG8tymcqzDm@Qlbng zZ*+rgndt2wGVNo-5pe>z3dwEVJd^3Aqa8coU5H6Sng zS<%J-=XcZ}Ui1@3{POM?$*{mFQr@GFCM@+Y`c#n`-_q{t4!&Ig8GQ$yew*JV>lx#a z_S45x+qn~I1>?}-w!LY5%RY1x{q-4+cxKSsG;=PkvT#EDwiu!3GnU-9frhLD#4SnY zlJ}sMFY+skW7n~?OEkf8vWWGXI=|u~UTNdMI>P>vMpp5t&%LfiT`T|;2o`93$S~uE zQ8kz&6lvJNqgJeQQLf@ABpzZABygE_V9IfLwG1Uyyrby4-}#E{%X zTeO71cyVDWoq^UhD$zW3%0+(Kee5%+=S(^BD{J(lOl^l{hkXc-_?Ngm=WV~O;?3B_ zw8ZY-#Z6n$c^pe_TMRGEa^xit2yf(E4$4cuP9ejTvJBP(Cp98)=e>P}=p$2JAw>XN z-<1RVpsT%uahjK#i-P|$QAeiY^xY2FCiB${xQeWEu9vMyz*NaHbob|t#g?SDG9plEnU?~ zl!`_~qS$~Y;+Qo9vXEyq!kI=$P4)`Hd<}n|!sk^WfgwW$Ew-0Dkjd-W~pA@0Z+n_+2{wWT=lT%@7H z*nQ6@52t%McIEb+gX#NUv?txg@x5>Tn!V{L$2LF6y}mc^I2(8R-nOkj`S+E${#U#- z?R@9k()448(&VF$rERRbm>X_qQpgp`Deh@=g_q6>|Inc`>1Tfb!SuO9r=w!u!H!;! zZocb=ozeOEO49u2hPmUw_Vm7Yep7nqZ`_w2efE5M{K%Q~L%()k`hR}twdu7l+#koX zNaHuMtNLfZ;nwu4A3p?-J=(02yMN*gM6&cwJO=rPUvX{vx!1fPc702RjpS#Ko=^Y# z@7|vtVyALGy17BNHquI=b~Cto^Vi;-e)R`mTQ4&bSvYkj9s56jB~9G_Nb0`jK-&9r zKc2d;Kd=$Qx^Gj`==>uu+ZX<0OmhD2=T4-@j$KOIhx<6b`9QjEm{m#Ci3gs&ls@qH z$Kwda??irI$L{1tXFiXd8%@9az~gCZit|iZ&9crBzNNP_z46ZL)2(|q$35Dgd+cEP z>kmK3q$+pPv2s?emOCr}^WPs;L%arCd<%_HM{OMb1r(2ftwOU}q2@brL4-fS^7*F&&x=1a@Ye_;uxdC=$_-Ss^k^p+{P?ulg+0RG_NwO8@0t5Z(3( zNcFc6%BXbMR@$ji=U>f~$O%fmcknvUb03LE z2{pM}fB+}cT3(c|D`_%$#FG3ZVtEJZ%9+AETe+r%&a$hP0 zAs&%{{UJKW)xa$#i@2*wXMBw&E{+p47Rgm|6=C?sDp26n*QK5tGX?-vXFvD7z!0<& z6Im^I^^13&qE>=(AI(8_Hd3tFQLio`36iBNXyXUx#10F_bG-1$P!4b-$(lZv>g>v! zITOyKuAP)}BB;2MR{6gAvtTmxDly1Z{+H>a5mMdJ);Rct6~Rw*f30nj0~x0VOq&J= zJK^A4El;LKeE$p$-Bl%@`|XE%pq-n6%aBsiUF@|k}6SYnjV67v6 zmrwqpjG)_7NbHL{sUV#B(AD}m*)#kyfXE#EF{> z#2NGEQI7g`l3y`dPOz)yoM1PFiOOew(uFDsBG6=5GDqka;w>Jo#U9_7F{P-d)l7ThjoF`je;jOgqC2F!0VR z_~8%U#_K}1+AtQF9pxl674Md_vSME?%9p3E16&%;Ee9vs0|$B6xaKY}<5?a(_B;6( z6O2_k8m_!YV!%s-`YBJ=h#fyLI!RM3iUkM#{mm%Y9Tx44IY&&_z3;9Fk@jXYeGh6PfPj%Dlmkx2u>2@;5MLGP0b8JIe&(5;^_cZ|gjAq47{BYFSG;97e#vjCr?y#9HzT4yHEgx`*(YPpWgrgzDp@OlC1&Hi zSqUq68~GVwcv$@=4j*P=5IgEH*dXlnXjgg5IMk?)`6xq3^Rxstv3GHr7E82P0L%m_ z223e;cc^k}{jzW64meNfbAg~SnP8)CsfX=zsh14rBnXcCkHt_*1u*s%vW)VMSFpg0 zqifXtwlR*~)G@|u;SST4J$o=xU4pjxSj;D_?WEB{AHjuuv$VxamIL?}F{U_vHLL?2 z6+86EO&9%?878u)F*-JRTr2$t?{V#={>Uwje}_-4Vnl>Y_R_YnP)q$c$T7^bw0#rw zMV6U_Z{`ZE7Vq&TFJmk?o0#K@3)1$lgWav0*dN)lf_V#l>2b-%jm0QVN+a>}=%Nc# zT!q2A{TWZeGOryN(&T&GM~)Kq=^~wl#aa4a7~FbxaBW8)Jhg{QJ+gmK-mPucV{51# z0p}SkqiBKfSMPeDUpE%PRAfi_24qGvHG977Vi(;x}J=eY%!oOP9}MY&?A|^(THWrI*Wce@#mI1Cfo0yy62yS++LTd**$ZZ$hjpu}Y zGse#0A9>ZFUHq^cT&3mNm;QhT@=txF}rJdgt@{Q=I6UHMj5S(`q4#MEKMU(EI?X9 z2t1;_8=kZbwX$%5d{26M(rUWERf!&F+OpQ2&T>KhC5|iZBdwb^dzFwUFL8p6lU7KZ zy(=4HWzZ)FuLeCXtZ=MhJ00N&q8qPPpo!uPS&SY5aRNp^V3gOo^P94#45(*Rwhp>s2vSG%-R z{s<=F=)e<)*hPsf4{b@~gWJ*wMz4;3PgWSAV>_E#SQG){p~rrX*iEDUCtjUnz|0r3 z2bJ-c^CF%0xzsb3pDgzz6v=j6A$;ToTD`9tmf=Xtx=bF53%Cf8d^206DM0lei|hhl zjRa`p9T5Mdy|}{5?3Z~Ie#mu4pWplu=qW+IduCD-_01D{q$S!(`Ga6YJb&@6PpN&K7auLiZAX_6yr18kv!j&Mms6zL5?}r ze`+Lc>S;-L-oh?kbmzUFy^tnZTro3piQ_Ra6tYOjx~e>_u((CFsh!N!vLiv#wvI)= zj5qe`ON2hb{{WWG5=A=kY@t1DXSe^tCiGD6aB7?2D1H@g<%Cx@f(7Q!MB$H9N^$y> z;j%4)LIUxDf3&aiA^f4;{403s8^@N;JuPz$k&DVZxUb!(Cssf;VdgN)mJ2;?pO#om z#caK(2?7r=%lJEna5IDbee1c`6I@15Ez|xVf8tzPdxEP0Scn!5ePF*t94^H7#q5~5 zSP<)b5G?;9A$@SZOA+~I-o1CzU>e@JH}!4b$s+ZE+$Z9g?orzHG(L(hCGT9Z;i7oB z6lJ1bTPE*TC;4I@Np{8@id0Bfi39m*a^ zz@uWh;@voPr?NDij7y{ndQ7HOIHWBM&1EfaKfM1jXs!!+q!0e1XGha-fAq0*Gsg{kL}_tbXf(g=mL2Kw zv*YRS*lqe}kDZR=d+%cR?i<)m>Cw1<`^@>Y88}z<{X?927`*3|Y1`Z0l$JOH+&jv~ zr{~#CV@G_A)ni=KHpy?Ki`TmaS+3*_wv2-<=3SB7%TtNN1l#OXdH9#Pe`}LY2$evJ7M2- z&yDFvxZ}1sCq_T^_uRfa>eJDYne<;De1@Gk z%jqT8ZAm}%$^%zm8b$8z`}}k1!6#0lOq`Z$aM0*v)NT8>r|*G&-O1D3>-*;)PM1f= zSgC}PjR6T1gmM)^YWU2L{2A3led1?PbpaKyDue=_J*r>Q&mq(p-uGYLg5!YrrPEx?b47QCEEqCR?4X#I(@Zu+(FOpRVe@bJ!}m7wi3Jv2XQx71s)z73 z`m(>_;Z@`W&Jl=8gN?Q(RE7|4 zUhNH3IjE%@JSeo;@Rhs;;=mViD-a(QsSQ4nMD4o~x3J=ri;YenomAEx?GNP@A<|V9 zR6S<>EqGIp7;(yu@$7B<_#Z4OshF3*!cX||6W>HC&kQT?Gmzi)u=18uky^tehdE+~ zuDxft5-ZD7iR+X2HG$-_#LGz&>Wi|NVKXIu6^s#3`>BeL?@D%RAsKZfMbui7qVW%u zCF#gZLp)!Fk8tDqU4_@<1XSf)9+@`jZ6jsA`AhBn48@yb(J z!~HAozSQdEI%JI>0*NJKuOza@vyx_=*Hs#|x>Vv>29}-us{E`|LIQTSf+6;o3Rcqv zs)7$PB&OhQz+;~;;G)hDpZ}4HvlBQcfZV{O%&M z75XJuY#LycV=?HHL3s=Qr zY`7#kLFS+;_u%mmX_N^A68e%FkJ%%^vAC8Cciu1w*1_Or(mVI)*Vwjd>X=b9ISmaxWX#DQ_7cHkOIY+y0t%=>AD&aWq))cB z#cteOHX7pu({S0rUkfYPTj8mO{U*w7b-}?m_a{?MYsgG9W2jcfZQi+-4Sm*d(gU{( z2O>!laZqZ7_8y~F^Mqfs=~BjR49Fd@D)SEZTN#YEv*OuF66t6oJ^PZeo5j`T;8}ID zB=*D0XVCElh5S~03O{Li8Kf|Kdq!?-&FjC=gPVF zBI_eh4Ri5K7yWc$BERGhu)qsqXn+m?UCbbjrXKYLc=b?T4C9A<&pjlM(pH5TPu2+& z@(oNFhrtq~Vd|!|Xn@u^t_2*IcgqN)(MC_xwoa-`Vu3S$PGpz~{c=B98kBnHgQ{KB zyrUgrToWhp@b01lWyRFJ7hW2~Ee|6-cp?(}PL7&}3HqzB00>&lN0v=_ zCs*y78>D>Yf951dH0{8LUI+tjB+EoMy24^o?t<6IulX`!8-*0SMGtr3-yA!|kYSUC z?{GMt;-EH=N2CS*fXq~RNK?fR{iV)D3gj&e>Q(%>dp#&e2BQ2(!1ASxq{}=xscQzp zI2*D6e&`B$1$UMcbs4*ur~|q<4FOu*r2sPUWL#n32|E3TYSMA1qvh(tCPhSJYRG@^ zQrU9?w+gpBo%9NvDa){`=);=qP>6r@#CJ?|6gfVSqRPRV;&zVjlIA z+K?y9g*>gq5wkf304g}&>aHG|{W7L{czIg~XQJVe>GUJwtphTqzB;++qYfao8(qyO zW;TP##DVwxg**UYROb}f$Rt3OeT-}2IBnEb0xyoo1!5ii3P$P%ga-6ItKFJSnZ zeCBW(yzTawFUo}`w2~vfiZaqw;$0-rO<8yfgtJO*wzUG1AL(mF{ujeAlEcDSplC}E zFzWcw3FuyB#)WJeGnC&244>*q>_L%nwYWw?kIqEcqm8odwvF=M>c}Hu&gp3*(Xi+- zv4fmOaf-S8{+&D0+Vt);^2{OX4X45&ciwrp%d`l83PW8NZOoF355R-TG_HZTZeWnK zJUL@E-NwA!v6;5?)Ung4v)dyWds9DIxs4mz&SIpR>t0Q_Y-vuPJ;HI%)fK~@;PHwb zTe!pUOgcEmJ>gL5LLZN&9cBU4D5owsk*~&g$ExzZjrML3+Ac9^KLH;+{#T=1Cv~)$ zql94{{6hc83i#EDF}*ExjWUI?8=4%4J7!+tbPeYYWAPe!a?#uhxI9X_wH4XJux+0v zm<$c^M8CuviP-!yn}_<-{ujI;O-zh)ukn^NiV=L@zU}FrS6-V|xWDrB!=F#j zotjCP!8Mk8(l5XJuhIgBuxkff*(FN9qQ4_uX8wGZoxf+smN|ZzR4L=hiOaOJ@{{zL z|5$}@t?c-Aq1v2AO!8_!*W*3q)pa`t(=H6JOADiEHwC!1on36`z*l|UD^o8iHG4-)iZsO@n>18**5Q8wsR1XiQ&FnT?cxEEaUg}Q$J^N{Z+tO`& z7t&zcY}$Uq3%I|s1A{3BTl%a^@Y(B3ddTMjxZmVLdR!O^c)H`2ue5crJzX4`Pp`1= z4UI5{(}FdCtfsqOh#cS+Safjm)QR-$kz;8)eY%}PmM*#<84w3C70EO`IThF8SeG^S zwPU>PW)73$LdUoRl4}GoKJD8zknZ@_uStCv?+<kt zQUE1hk?_?YUFd)C!vp(p?Z~BVyt*gaR7Bc7MrgU5dE(fwF{(e}2AOH|sWCL@tvHnH zMkEBR|B)wnV$|q+AS>36fvw$X`tocX7fw*nXk8g#QNmCUJ1LR18T7{z`IZ-b9M#)# z{&-sH-IV6H>`Dv6TjH4A_VJO_%+Bs+7pYJ`)tlxm6bW_Gd?UU*DKG0K^)Kcz39xFz zUecB#G7gbTz%`-QW7og+#HoRi-Eu7F` z@4FQ}6APRyZ{W4*IIrO11D!IEH)cr#x{CTEEz;KPyoSW!qkf^)#25`uPM}*|j8pk-lh)GdDe4}1ScXn{-o^D2J=kPcpl^}6m3el2 zmxUFGTF}@{X8`rd;v34ybNRD^5<%oc@+Hl336DVrpYt@}?IhsJV9hijg4LWQ zhO=X+D~hf1jR=`hRa|go#X_o4k+Z*X{We~Xs}Bl7mrzjV!no z&Ckj!Z~$6&6cU)DQxrlE{V{Nhd?4=N5uZ_P0G~d5Ed9xcKAPV36K_wuIDYwUuf91w z@WkHA-@mm_t%Ydby*+OOoF#TWYna>}{+FLUn*PHF9^}|QI(&2_pO>Bx=v7wkwWaTQ?d|CozyCEH?Lf`eA@qyf zb8`Au-kZ+9@6S`mo~>#3PyJxp_U3QP;s3zjLGb?kYi{J|@ttWGyKrUTd5%N-?+-tl zo;Z0q?cgH#pXB)F-5#6N;G9%??AV3$J0JOC9@wEvHo9HN`&&4^`I;>QoLxW19R!c3 z`#lh_zaCf+Ceuy!a8x<1;3p9@<^z~ zC7Vr~=x9E3#F7+ob@8jBs&r(uWEG6*_!@c>eW$d$ddee?Q1I~`^fyE|LPRh4DqQQ! z#gujRJjPcQM}2IAs#AZ*ZV#XQ%Vi{Grjr4qLCv8xU8$}L-7h^ETxeYN;aj0G{KKQX zeN|5}2U~;qdO91CnYCyu;|X8a(UIeo_AtjSxQr@93SP|XQ9PsiQNFb?lt(B z34dPLz*!Pl7klFeshR%`ux8ODig(cDk8&Pq=dkd?yYw-toaj>}B!=>?SN@LQhM=e| zl@QgviRZ_ca}DSP_ph<(FKJ$Z2EdHI{8n}L3P3$FOb%*D@T#zNPa%!zvoTg9wmP(L z1-kfN3F*KjTqD8)UOgK{w2q-f$g78A5{C3V%2{KI6dKPRmd)xtI=SA1RR|A#LfPx* z;6hT_ml1JGdU3q7on!Q38y)Nz+-A&il7bY(icX#mltto0zfN~U5Kr;afT&;4WH^4_ z`^r!%hoeZ9Lp$(!m6FGE002M$Nklx95G$J9B9;ygvtj}&9@ILT=wF;FCe zIF#uaa7JuAz!y^)@``^ki2!alo|`xGF~!7{L}$)3>BXdDMHT*E+JT}<$v5aH|H`|i zTFTRM4n78iVI@wMwO)1;IYG=6Z-x+<$#&2L7N5rOUwcOvnam;K%}rGCspf{w~;}T8BxtnGthGIuj5CBZnQR-wnyPt## zSp$cIZ6X*yoCNUaaqxKhKb(^VfuAt_yg#o*kwKP)GNGL5oXl8Zf<+x*jDjaKle8i^ z{K4DCoq7=mKg-TQulX>hWswbdxm4sqD~7#*GEu@cy0tNJ9FtU}i5CpOh};Fg0V!#> zvQs+NIO3zMTfcNJC=8=Mv@2Uq%mof{10{8}@iF0X3?(6sW0{5u{Mqn|>^UKik8Ef` zm&+6TE&L~!{ zzBnP4`EN|`5d$cvEe*KB9}#N^YIL43-pdd66voQ%LA_GNu)pafn{AeUgC1)R-=|Pi zv15%%aIu?y)X)ld(2buup^qJpOU&ksFp<59>wuQfLu@>v5a26+aLWSWNgZS6RKryd zGT_c=@8r(}_93c;qT zT&O2hsv5u5pJu1be}IVesB=tGirsSZ^s?ABPm*i!DH{QyAtJ&f^W}^$@syigd&F%fH?i{n+? zjrbcv3lx!and_1H?wjf5xbijLgfpmyu+)gkv*ypYfb^%PE^*ZHvqw|^O)R`d2PiKU zHoi%%!fCo|E4rOKF&fU@&w;UnK(W^#WhhJ73^-FNxq%XSN6>MEOPew^V~^DS@qH; zJ~MJMXzgIqe0-8!RUHdy6#hJQZY1vdwvYUU!|cLEpUWS0=p1tT@Y&<+#ATNk`p5j( zCZ57j@DvN+ywbw1vXiv_*|&NI!|@v7Js5m7mf7~W_`({c;nt@{Ez8AfCSUZl-*0%d zLmDL1N|a61M|lcA*SM>3)dg5i{-dkn-ogk|gMpFslrQyCi>LGW4Q|u&C3e)ud-+-A z=<5jppby<6j##t=%|;~={^P6cz*E#NxHCd|B(26;g~ws=Af6JZKJjkIDoz_7}_vwd9k(T`BZ@pSda@)D9xtU|R+mW{}WORlj zxmQ^nZ~$2yL^kFyR=Ts9OD!n7mh^^uUQI0Zd*+bhoW zdP+aqo%fFOV%$fj%*Pr$J@mwInq#vd0jX(NdC(AS`C(wR(`?ez7KwQYTE>DI5iDXsKfpB_APf;i|7<^X#=@)W+xW92ax z1V$Z2PQdS#eO1+rk#&=4Bl~-4|3$##`eN7r!>v5(|v-SbTLN~G2(r6dE5k(WF#|FQ1&`0HtkzeFJ5@hkm67n-0wwOUiS!*mlV1$w;o4Y6{ z_<&C9o4f#Dd(y&|ooQjmJ~BkVWO5|6U`%RZA!ajaN;z3#5eZi*k^5F?S%7cL^j|DZ z7owV%7WzGi46(B?AvT!{snLJ3&=30>9G=Mnkf#~EK;XTAhehiKS#_ifY$ zWgfcb;+TH6lLNGhF|dWX|5a8eD@83V_%I-h;_xD_fnm{v?bBHn9Q?s2j!^b3X{L7w zeT4B8e3lTwv503D+!Nfb9IT`MLsj*sLV)CqonP}vJoH{LA$%fpwYO-;L&%IuD#)b$ zSaU`-in=!MqFQ|@!{^2p(|i8-3w+VGvEV@ir8r_!BX~UKTz)I(P4qLxVZNeHQI4Ix z*qJ<~fw7)_^F^+|S#)%DxGG*yJLkD0`FOic;it2!rYr3tL7Q%WM2@;u-_PqHPcAp-kQ&^KQ_L>#Zb} z3^tK|JLMX?j$<5xcaUovX*;d_(tZjXQPhvfJ$iV6^4YzGMak&4LzfoPRPg?nt|Zs{vfZHh1E3`i?i1?qg9Y`DHy0hf?BC#kz!@*mekP%$sl&E^*f=FL7 zkZ*xXTp?g)B0L3A)T;2}XFUE~JzsbE-RfV%FMZ;I8KJ-mJvn;(3TytI#K?Kf@!_RO zATQ1AlATNU{@th2>+ZQT-SN`f(hK)*4TJBmeCRWD*lNgl@x6&o$aEOI?l`a`UALWM zaw_M*|C=~g_~3=9^ji-dW{2-t?&Tdy--`kGnn5N3{*kVI%a-JyZt}?GXj~lV_Ho3< zqem~K|MI5~rO#D{-n(wzlYZg*?_sC%zrG#4XQ(Le{`1eI_x*p5#v~&>?K6bZUdo*oHV9dkPmN5b-+S=M^b3FTDGboeB+yA{5YP3=OCkz+Ge@qx{dF%&|M_jN z4#QvoLH`nl-ZTI2|43(k?T=F1w&Aq%-+f=&^6`i`*A7!yUY?T>Ns*$CGHTzR{gz5yJ-_e1aX;94W%&;yOqA9)tJtoA;*g zy6eWMqtCHw_K*JbJ|;&w&V`AzsP$Gx9eIw|_~fS)6L{iPjT$wy0Q2+=RXK_?* z#2DOBrqPzfWL!lRgDsuuW~`6 z6?72S`8g9XG!!(p5(fICPEGU4%ur2Z++Z;ax4NlZL z79z~ag`lj`n_2IJASe-2^_t(-edbVWO6D!-B9??$cXNIlB1X78^#l?IuoQ&5ZlavY zi#B+=Zc$G1-35>0aCLM!>Bb4zHU@o?@2(W#G-Nta=We5BRu_BJ9iGS+gLUgE>8>!j z-t2&x72eiKSPJjqA90=Zu`X+|b3p9`c<_^Wv2&MrPA$yis8qcFd^^;Hi z_z_fUi}5a@F~9eLv#V;v*ERPXS`Kl2FXxF zEV$z>lB?3>5#w*7$yZ~mi^64)>b?F^#l*h=Rv>&f`p6d`2!g~|Ca zw#HN@GArNXpFeM;m8SM+^OpAsPxQT7dRSH@}xEUy*rvgjz- zO2m*Y$}sn9D&T^!R=H&Hs%fo|j>b7vS>wYZ$2>ac;1SPmt69Qey1jDO%cJM8d#{A55 z7-&|&IY~WtKcQ{g9D2LEnaNltoUMm8Mx$IEI*HK|VUL}(F03F6?8L!n#7i4&HQ$~v z;x4ac?&$S&tfn0P|=Pe5%3>A zaIdj#*DAV@FDA4}6B^{DJK*w_A(pIKs*(!Jn?_PS75xiE1qB#wJaNOp*Q`P42T%}} z5@ZIy>ml%-w4=VOU+5=f8A4a`ndMMgaQwLQGV~>3Bcm77$oOT9Q_wOqo;v2)(MZ#K z@BN=5C3uAabO-JJH*JO&UGRNqQ);@%{m1MgUFCe>wp(sZ+bQqu+}(Pjdo68Fy=iFE z07XGUlu4^bM&?IPU6@S^?0($L{km@Ek!QnPS2jOC%1JLBX^71?OOsfY)v@;TX#Z`) z#>d9u#FO?8?p-7^E}mTG>b_LaZ-`a$wN`h?VZ^WChhLIXC`*s-+=uUnD1 z=zG|CZXtij-wKAPMNWfR<%s517XT2Zk*f(g@=nV(w!hD@!*h9slWFX8a4L;PI7bVX zxkr*`LlOL?)8|zi&VSpfv(9Oti@WEQS7@=^mf-gqhO73DZo;XL(ny_HG>_8AYBP(p zrRs1fGxm|xM=E9w4XXT@LnpEZa}6r7^HC|G9?ee8r-KhXk+vg@eVk)`kp+>D-uD>z z53{(U6XP#Apgr$x$+FdsICnT-D(xf#nrPGIC7#h5uTn2Msb>c^52PWkp_}%IA@Vzf z1$Yw{MBDHgjIJjq=F*v{GZ;20hjETlUxlXN8Tiym)<<=leS5M`*>HR^2EL`{`4~_2 zao48C*f|VtE9j7r@u&~>6)0oJx6s+c;*ViYnVg)~z~+1*{Xz8%`B-unA$nz*UAN0D zHnFc}t#uKWn=*50D03ltd~?bl@ST*wwY?nM`=aff+LO{po)}37rx0o4tkMs4x2p)+ zPajU5XP!+f9PvE2c~_br-kw@#+3Cr#yRCCmX#lvL7wx?N)d+J{6o_+6-FF8THMfD)3by}`* z9RQwQBh=Qyf(wjqam=!U!W^e#S;ufI@On*N6W{rXRb;G*yM03uL4flT?t-4LcA@9% zN9ZdNVHAF}u^^<6o$B7bKFvMw^B5I7=o1bO4@JG7!XUX!{ZWTS=E$J@BRPDsw&XSH zxiVngqUPlA=nvFl)u6=`^iih+gKY`2DGzkE#!L83vk*l6p+2{Ktd8=umpY(9cA7;d z^D2H|T@)#m0;o?m?b)3MSSZp*|5^E)U}56~c7(~x=hG~w7OYTS@+`(~QfoTsK^HeV zy6NT0#U75ZUt&jj^E~kG@U^anQy=8EM51ERpd2D@a0z+_84r27*38r*NAW`g$5jt8 z_S}on-#K{~SoXGK45iJT?qmTBBIhX}Yb+KCxez~jc1JjS`(pu3AFF2PRBMnMJFKaf zE0kd@wuj~>#;J+LUdz-4`w`A{krZ_?_c_8S?SPUv?WFCvbcH@hS2y}sfdxk^$gKiB zYt!lW&Xx2%?|4I6ni)<1*Lxqv;7nbNITLgq^mQONT^O$0*_q!xFqE#@yEE;^rqTt? zBiQ=}klEh3aW?98rc=|Sahk$F-{y3Xo!aV`Wpw2t^43K=aPTxov^UciV7zXTN?W$M zQU{^TQ%^2WP>-gUu+d=G*u+jew*W73M1$g{V5ssssk9OhgCRyU?I=1+#e(tN{z)34 znGnp}Y&-dqMU;nc!HE36@i#-leXvC#2p|9Ar3RjbT0dbeupB2oYCqX81_vO^kX0ag ziB1Ebx#Q6g9)SEvOt=y=KZ{VS!>mX-?@rnn2Rzi!=Z>FAfA}Z&rJHX$zzVUR^p;oN zoId*aiS+ryXO)_Q7E#&oqso9yiF=Y29KZCTN75hM|HZ7GorNnRxiLjWkdBkP zX@BeuFG>ILEw89UAUKQXFJk2VopkEIy`Ks`jFI=PY45*(M;(SY>(cRylj)aPoUlOW z_I*G0dg}gF__i)q;|IrypqO9JLWM;-pFi{J>l*{(eUeV^M;|+u{`BEPC>6BfI%kbc z>AJ1lQ+>~Etia4dIO-6)DB5q$6CJ#Mv07 z;LXpHm#XBH8}zhoNX7*o3MrsUBI^-c^{Xa+R}HOu)=+MUQ1h=q{VsVcvHcGDv3zjB z8~x(FViO-W;2F*UFlC_&D07yJmuD^SfE1h=HL%$Q9r#5WeArF~uM0ptD}V;SoMc93 z2P+JM5Ei?1NY|vLQ~V;&kQIXX@F&;(m=LVewyXl4hyD(vbq*e*$^HMSdlP6+kE^h= z-o7vWdT*&)>Tb1GOV(!Dc)>OUgkT^n2@Z@20m6`hgiLa>!Awq=a}q*kNWx**PB;XE z!C+&9u`w88EH9GfMb>UDEp@9~y?4KT-{1Ux_kQ31{a>qFSSI8o)&2h8_tkRi)~#E& zs_v~NKND{Cn_fl~_vSC()4%fGiU*!GUUfR7Z#IuARKFU)SNpsiK>b~1QR5*-@g4+@ z+KhViGrlBj1M4dz6Jwx=SA`3ZWQ{DV%z`H(tcuWxk?G8D&7)`-NNZ?OA>cqY2JY6A zeIrR-x$ZPL;pd<|c{CM58jVy|#jKw#p4b7T&L?@- z7My%!IjtMVs}UA*Kss7(1ED}5;d{16-U4O<1t)-qaysIht&+Z8L>|>oq_qHQh4^TE<0VGPSx#KDT!vRj`9?T#%)uX1qGdxa>vKEr9=(M$VAlLq8jEGSn2FtyN>T;f=L}2-<=@!YGvC> z>_oE6=4IV7uD6&fsjX9wDD>S^Wuz<7zA6`Vx>{oM=AUzqi?efO2P?PdSfwpK-HgY^ zJR*-Bze_5eXkA^6cbH)Mqbcy>`2b4WX;%mbMhG zqS=b&!_OsiY_y_$goDc*RXHgosaAAOn_XY~71$J0yG}YKS$Rbpg;WPNzo}GX8 zF}e4&fLRtmE=h0dY7hmiyRfDy!!q$SJ`cI03SL=c(OM|!VmuqQXl3)4gz`pZwR$_}pAvljPCn`|zKmoMS8|*4*o{&+hQDe}1_GX<$-y zAzL?N_?BhOa=$!fv(IL_W?$vDV9bNpD@V!%#%Y8{qRaeiT$0=%)1$! z=rn_fcj}9D)*qzCs7w9x5_@H7uW`pT{MU!l$M(8}QFw-WLA@6^%X8L`_1dcZtum1J zebrwB(i{esRe034xYi9^)Z+DpWYeQ;-lYe)A}cqw(4b@gouWp~2zZMHtZph!Sd0)QD1wF!3o@U-8Nyj%(gU94|WnBD4Xu`8^))1E%C0&fGlMW(kUmzTx z;vRjk@1!$Aj`3}4;b}m_)jrmZ;=Gs8|r6uQP? zK0lY){@TMg9&)W&dH#u~ z$_my1?VKmiEtVZ_j_EKXj71W1$V#i>A2dCR`d^f9+2GM)C8;>jv1_=<%P5kHL59W><+U7Vp!?E)Qiy_*)>z8=3FphVR=GB1xA!<(705KidUm6gSfE!Fc+e@A_+{=i<@w)QR!( z^dv@S#X=xKTH6khV+W2dG#(wz3gPD{s1Ef}FC4Vk;wZR>Flu_tcdNVa zZKD|QyaRcKyK`;1_Md|oJ)BikSUO2ej{iuRD-CM@IU}V`H<-TePVp z{K+}$4+F5f$2YjIHyFWk$wlBA?Imlcsw9G>0b^EAU~!R&yc1Pzs(4WvZ#sEC9CWgK z2?pX3zQHWE0PCfSCJ%w{&f!+B=Nu{LPEM6CouYr~=5Ag1ZJqM8GVdGSwWI7jd}A3# z{$0O!geKKej-4MZXHK1Eu}gQEICr`%%}@{Mf&^{L@RXJA!9nin=41?ZGxxISVfzM# z%E4{r{OUf8<+H?N9!Lj006p7jXH&F=X?Q`&W8b9UwVc9p)7S_nAk1*j@rm(K=Aqo@ z&BDwL_;ecMd+*Kx`aTwGa!)b0l4DTjSn`gZvdn^Gbquix5ZF^JyqLtO?Yz*jt@C=@ zqV;Y6N1_}fTN2s_7TD5)0af}hAs?01MvK!5psD2*RrNJp%rQ4skO8y{=dNCJqv-Gy zpKIW$x8J(2-0`-rE02BP*Qsy7lfS#vAP1kdmcxV0g<<9~PH#A} zK2Sb;p{2Y)Y>#CgW6trffBAi7o`pjz?VQdzB|4&9S){s%;8UDM7 zK%}jKB?QJ0NAkBTh`swnq2#Jg3)VxU@W|$D$fQ(oQBevKoq&5`&{ec(-Tz!{d@3{9cXT#IjN%M6av+dveo;+Rt>+ZqwG`oP^!TOhS2p=ca*6H`X z;c)p^Uw;cLRS+eJ~ zP4^us-}u_=Lec&7v&YMOKJc+nklERWe2B(fLAH{bnsEBsj+H-^1Tx%sm8+vSc@ctd z9l)1aXzXm~*cT@l0isF}(RderEz6o=HG!$K{40E#vwxXu{dT$BtNoi1i85u$5(e^| z9uH{I1tG&3B-7c%3N$*`7(_P%_)6ZdNQ_j-h?6q6Q8{?jRU66T2T$V=V3}U-0?Nz1 zuizu>_K0Ff<=&R<({ z7%1W^@v{vC9K$jyZ=3E4UQOIk(WmMFb9j?!UkU#R1Mfyv#Y^1|$x)nY6cD4Kcm;X& z9hNr~91K)cGAWwviw{DP zu*tkCSEJCJs6ymQ_yqWz-Bl@+^$8^Tml!n;R{&5iuro@HYaP8Ag$iUml5S10fGg-$ z#yO1axqG#{bfZ9X|I=y<;}XVx9fb9}njB4QpS#W&dQWrjl}cz=k8b0be+ToEOtc3$ z4t9=lV%*I|U)YOQyPtcsCZ`#^BmW(PO)}|s8t(*FB~NQNit+=J;=2M#z9@gb8P8xQO5IFD(`HGnNPWv6{i5u;y z$__uLej(GV@+nWGxu1!F?NAv_+A2)maWWkf2>rysIFTT6fW%EaW`HG$gz;3G#W=?F zF=oNre0>-Lf4>4`IFc8|ANK5UrwQ zQw(1TsAyNivfS2G2I!lR^sk+;Xg{|OWS(Sc~mtoe6%68(CHpWJPkVkxX7_QN2 z14Rm2I@)I{w9sRh4R%p5*eb28ruP^vC;b|TRUUZUCqqjq9g8%C=k0gW$Av%QU|Y>H z?B?W*k=pQc`$qpyt0E?$^!$Ul(cVVW>@(eT4Utkw*7fRK*OBE!0 zn9O4q z>v!$PYrNO>>bG>L`_#=`>kyymGKZ}x4QYno%%A!@dX%4&y|cuLr-;Y@q=9g%GH>Eg zzY$nDX)pOT00_;GI#zsF@$^%E*lr^}@;%4rEoGd(MHfdlnwq+vb~g(7J1?F@(JpXz z@!3x~#q)kHk2ZAYo6Af!D9+R8C?7o1avH^w^JSGc7HNY3wkO>k>N4qe8{s(TFJ0cQgcK1Q>hv|$D&LJyFBmLwHBRl?6W_yyEyQthz zEIb!LMHJtGl{7cLs`iXydC`T%f(MU1PlH$T(t3?s1;q63II|SO*FY6t;D&xH%V2uca96}TLOl0jLswa6KESp)drVk-3OS6l|Ob-6hZ_n2k)*&$8&kJKkRTN9xycP3fN|mspU-mto4$pb~|$UDxq> z-RkNx5aIGTrb}9FCTWTuo&o)`gwl~3;g6D0-^;Xx@n@bcJMX@`v~hH946p+00FfAz z1{R~{T<8Su)UzC(d}=*e#^hmBCEsM(=g|o~`uLY)!C>&Hgf}V%9%-9?rt)1`KszOl zd~Yr;sBtXkk)tkFnqqron6~hbW4_6JneZu27O`I;c{q8$9ffw^!5hl-(PwCi8g{@E zzTQBmneEy3i99e72IM$8oOZ9VR6~-xk<=IDi7dcloT*&sK(@53VHg01x}C0JD2?6o zwgKWq`=EofZF^^I_LVBoHHZlt{K3gZR4yWO>=cSyq%H`1%yb)V%U!8qd>{_GWl-ja zc#<&qBxp%}2hZ4Md5L!;h=tsqB+tH-cljea2^R*0m{%Pj70?MW zZbz4Yjd*5o7ROw_x*PVH@S0KXjx#`kBv_Yj$##8u+;(+=8 zlN|fsU7maLQ5I)ypu=4+XUEz7J~_n^=F8>zU;EuMH#=MQz*AG~{OzZ$Okot$aK2}- zubkvq^h4|l9^nq*3)9py{ma+9cBo8ToGmBD=DB;dt=zq>4 zIN6TF*5VYvr%yZ=hG$O!yg14D13Hax$FBXv0!L2Iu>gltzE%=anT*9aoybSO9-ot!xH)CTB zH)q&k>{#6Uw>?>?oBHTy7iK4OK<}H!+*fw)<@8GCl3mhkcVFqhd3Rahy1jYIIffB! zv1O5C(YvV++VXs! z(d*L~k|wC9OOx<6ZNq!3m2DoiY#Z=&pccwIk37NF9dfWuU>ca^<4h|EuqCM^VUn3&a=pqg#pYhy6nfvUn5RG zi~3vys^PZ-*+3VKjI%v~6TEMEJ?`9w=Wg(4IJWma@BV1H9z*^NcY5Y&Ft#)0i*1Xj z{F%;sx-~MjGKT3ob+q)HK2}z??=JHge#bbH_@xeve8aCPs~4UsXU|?LcOAL5-1qi7 z$`_xxP+nZ?qrO`?1#+hJUb?_hzb}>1)2GU!N9fXql+P`cMY*B8cPu@RUi+D|NaVI5 zc5S-=Z;kpSl%wyLXIIM%yw}EDz7w9nKFm0V`oMnSSZf*F+mYQX8uPgO+Fg`u7;=?C zeFNyInTtuYZj7+)(8HsK+Zf-qQwP1<24YUu%KfgZ$O`YyZgHo({RXnY_PK-}L7CnO z&MVCKypwy0e7!2hUGP)X0V_8U{nRI9bZ*(oswU?jOAwwzu*-wTj&pRjG8pe5YvXSc%6w|KRkWk?K{f)&i?Z07h1S;n|sYU z+Ics3EWQ1XJ!L0b&_DIai{*=>%;PkOL+g6;r2Wwe?k_*i-N_xjoV-9Ao1u&?$eoUM zPso`oZ+QJdt{+}0qsXv{)8}(XHsK!KzRYG-7q>VjoT04F+hI#4+8W)>2YE&POB)rC z8ypXAyK;fOdLd7aa9p|0;-@9_-}W04PXln=@y*xD3OmAyE58I|kk)&Dy~~@WHf5Ch z_$)`S&;ROgm**ZmRmPAz%baK+?}0$n<1z~mmgzU-?HNw+ICpWfoZ%ApZR{3bbGJEt z^8^bn=2`6P!e$psPp)yyy@*!}#&cJ)<)99nEI092jMw2)3mV)5zOi9OS*N1G2I}ro z4U{%Q#fyUp=ue`I>R`G5o+IV=Fg_}rE_WwJC(HXEe5UN*Imm8c)fnmI zhrO2>%<8be=;?*hr!Y)D!riDRFHFY3^TumN%3X(cm3;_5%c7g|$PnsL1t4cvL}#s` z_h-KEZRK@G{^vTnSq0IY2`9DHv^_6W0;a{rfKiUH3UgR74{dc6GTU%#t4 z%2)L6`S>?*B=zNPlDmiB{pU}X$Bvy(t-_WF2p;O;jzfFO4}IMo@M~*1bM|8S;2-{Z z+=bmu=Mh4t;#EJ9Sl=4ETNHzq7 z?{@gEq>L7w{lFIJcFMvdnyDIXPAJXz#CPQ-D+;^Dk-j$_e&P7G?DCR-`7h(A6e2JH zm{9)oDJGeJ&;*~PjllRY%m*&>uL~0;;Fus*0%EwK*U5Alwej18TEp*3FB#9@#0h|b zR~&s(p#=rX8t4n3RnRh;$;p*RT zO&?A)qJFJU+IapWCY2Qbi0i<}!DkHkqTXw~Nb7e-PnL*}@S@OFJk#r;F|_6c|Kc(Boj$tm2QT5zlmH!C&G?X((SkMhQNKbz_H( zQEPVO-S}o*Wm~=FHy_oDF(Qk2HvdSs%iZNZ&EHjVNs@)w{04sW#}=R&PzP7Fm1V6H zMd7PNn-RmK&VOs`00YtrtBxL#qaLdiTLQKqw58NF{7nDycnK!4u0y4}lTby9Y9Uuv z)AMluh|rMT)cGKj_7yH=>tbhM#|C$kVDX3^GRn-r7Uhln;Rz;-$W7&!L2XQkJ%*>1 zDU%9C^V(2pThS_bJ4#+*6A1FdfB7@Z11xEZ3kn&hP9HHUzL8!;tNGBUd>zqE>*T;l46`#q2VWf6XCD(!PqUdMsr6!?x4lWnWAlc`E$ zrf{r3BUi$^==0*pMQ9esLW-ND;Lm2@@v!o*N*@)v?&7t=y4j|&hVsNxEVIKxth)PE z_>d5+;|?y~REBNPpL*Yp$0@dRwA=y;!WG6~Dl~ zr`l13c{F7Ue@r%G!tEW4R4vK7%-|NzMITA*m#-LQ`cC^x=|9gGwIhjDDEx= zfGU}nX)9c5Az2puf@DqKBIWKK>qMiY&rRI3?Pw5^&uvq&bEHOyxV}1fm%oEV*^Ab;KtASKSZP4Ek-c4mJ0r|`_i#`9GBm+m8;V!p?gP*WWg8Y`)@|w;v z2+?qzkYg8~1TdLCgvCOg2v1&&$o$9~%7es1pb5vsewmLlD8c7gq7#M{zf}fE!CRy; zAIE*}9Elw}6&!ikw89d0D0FDYam2X_KH>{26j8_v6_KkfiVs;r3i--(KCI{1mFtJJ zA-+cw8ywMw06qAZxYAAus=v5K3^LH)kor4g znX`Y5kN_L8fE6dgXy~ERq-EeLYJOC%PHh^MsR@sE140~(kdDBnB$el@e{6+O;~;Q( zQp%Df=YU9c2NWcmV?$Mz^&@ksdQ8M#$R1nCnI0uqm?^EzH8 ztH~dU6X!ah`B?$ARJ>})T*N3c`P_45q*{Bm64+}wFNJ7jFf?Bo$ackyDc zD%d-6SEO@u__>W;IUda$6$LERo5)1!P5f*dfMIXT!xT8aznQ{vSGuBfA02 z{|)qRJuFgm+GIZ%(i(-ZGI^c!YhJ0uk-(m4qv3IZ<0U(}d$ZkRNlgTIC}UbFzw<2@ zbVUCJ!uH8?!0beZ#dr$no-pE=Wo-@J69c=|Sjf$Y%eK#dt58`HyL};=`|6|}DWXp0 zcnx)WD#s#N{vct>C_?y_UINqKab(mTUIDEBC7uf~2Qi*v!=)VV)I~4pPCT=fq2Uu{ zw!@+g%C9ZXJ3}oxUf@zNvb136^}f}f^5=hqag)qPcJ3~>-#AiQFc8kd7&qK>1OwPY zIXuu=4s%ZSd5jb{Xow|k7rLGv>d)&Fx-mesfJ_(0ocnIykAi)*?AbS5_6+SP6X@jn z`VN+7j~*){EKt4q0Qo(BfnCFM7(dwNL|tlRSmx-`g%x&?Qdb&Rr%~2xfY`u)l(;P@ z@W;{G4-NNoo!M*|8$Daz`G$SvzJ0Uh)N(icwp>n*&tk}8XRV6|x!`q%I~!ecINSpd zkWUxJ0mt?p;k(Kr*_<=KZ{LN>Bn4PNPH zk=o%~4wVje-mS1u_oJUV%aPS-#93PBR1s+Q*lDPGZmk@=iOYZ67(Zj!Ucr#I(!zM0 zonh|GbsWd)->6&Vh`bZ?RLA4gA2mw*Z7JBaImHFq+9s&Y4cehR>U=>lph47rZeXyz za6k+(Fl+$ez#Vs#8-L($l`nt%56TyQ>vQEIcPuZEpr4H?yEKHlyN&eAFpWEHU3es1 z$MWvnba7#BD&d+%Y#Cme(W8Nff1iB*VtM%4m*P0nnHG-ZhL4uPqYVSf0PSNJG~LDB z$lcu?81z@mag5zl+=J=vJ^M-J8UKUVHyFoaE(9uup=zGd$-Ki;0autSXfQIa_JRfQ z>>k80kMU-a6G7%YE*g5f^LdCPS+5)DE*H_aO|#p2V--Wt!hGqcjkID+o~2A0e`7HU zx!C|TEVWV(8n$16F3*1adFJQf#+-Tyqqlf!Y>jqE`K+h9PcVHf3Tbs=D&xZO^QCk2 zTv_J$;SbI2FVB|;%K#_PywI_|?AyJkbnm&Y>{=QjO@G*fddH_rPyayl!ENj$p8&T- zXw~LC3c2eYv9lhLjM3{6u84f%=?}y`+QS^DJ&G~<*f{N!UA+U~K7(EW!G@H9-OvLp zW6agC-Ge?sJeLvN?wDPjhKHpIdh|E~8hOw^!0uk+U^x!{TA|%7EzPhnd?$v&K@807 zzC>=fa&K`zM*L}vo6IDkuc!WC6r>F;(SFz1DcL_f41ca7H<2w49BIGv7&e_%cr-Nj zYu=EnlvQ5#$a{CU#x((?2{|Yyz~dXsEZ9J1+2$Na5iGc%wI3lP`Lb`9D=mGuWu-q^ zG@|2d)5H(oCX(;`4q${-@Z1#We8WHIBw^q;QXMZ~7@hnm))|bDKljTIm9Bn{si!|# zT^Nre;XAlX+oRgMx9=)D_U|h@xj%LtS}$?bK<}=WGQhakUC)bS7t7-Kr8wcKjeBCd zSkT|YZsDQr_F*oz!q|&E+IPeCvCDR2eZ0&MY%2pCy}zwvzT9}r_Hx~|JIhHnLOykA ztjrR6PJsWP&oLm7}9QodE3ESO7oK?{g_knLj^Up8C_zm$TDsNFdyPEb7co z61Re^Uu5V0{KQz9g{Egtc9sV*`g(fPBK^k1#f#-UC(n*k#%UHQm}kv5)~#S-aYcd) zm=u~PJmAv72tW~$O=cuw@<~u2Bxv`K@|sW^V6a9fB*nM07*naRA88sDXWot zgvfA_))i$Z6GL4D=fG5rl`Iq9a2CAbK{X9nqYuO-LL`! z;zTpZaz=b(`xyY0w(*`79gymVQ~5VNGQUVr{RA-aa1d$(#)A&Z@5sbY;CUq1=N@^w zyzlq_to+yyzq1_JF&MjhAAaF%d6C_t!AUjTh`(O`@S*3*t^0SBzx|e5S)Jkl?yGm+ z(eUXnpDsWDk%!Cuj~iEn??E#;^F_FFiH#A7(qqsM@gWSIZ4okIVUPn|0N^uK((eEHb9vi_ACdYg+CgNL>93m^P!`4Y!& z|I_b$LwPIo7-1EjoZ~Uezx%)5SKj~RS&oeBh|Xpl1Lj|7^o6!|w%xR+*RWgrUH4vJ zzU|gM9G3@eD>qM@dz@Xb|M5d#C?8;lbu=tGrK>u5k$M}ToNs3_!T-p^3BSRr#66lCVL+?D*Ux807BeS`_kV)^VBo+!Wf z;Xh|mBfb_GcFae-zx<~Ptm9P8{pImq!H2YQj{}{C_tu8WM0gdfR5&mlqdu1yw9T*r zW|4NI^o=1TuePg*PG@b>NKPE1HJqNf>cN|7_%eMpAdBc#qL}nhcn5BFR_-qMND7tW zHT=jFye@YU9)Wc(O>uZlqly_Pg7rW!(}^Q}0jsLAW78OOc@9_luJEezHAYg!d?Z)& zrZE7D(NBc)Q5dPm3F@dWebxhC z@I&mv6G(LOJgZ1T&?pm%mhgt6(TEzg5#L6)o+C$oA|E_u3F|73Cb2du9wB6+{ zaP%K>M2h1EJsF(GQKg25i{V!APXizN7D1+RBGepF2Ipw*tVu6P@eHV#U#m<%IF%R0GJgdZwYUEpG zVYDG4JHCvz4=#~E;h>w<&eMsB<&igP&ukxfMmS}v5D(cwG^Z#@AYY;uYBAt`4&fqU#(6<|3 z-ZSGkI-K{EM?|z-%=%s7yBI5liGzZ>hq%&B<*SD5NDiz3rqY_+ty7#^cpElSSH0Buk$Dwy5*91+PQaD;aSWLp2M9~S|jDPx}KxWxdJ(7-U8E&!XSXd2(v&jA48 zXSnI(;9_VPZB`~R9x$A=yHLQkV7o@2t@ybkpoe#NX6k2N(qoW15Ot5nQ>h+wCce0tjm`&2!uj67RoL-uP?kRlMjRpr zD&Qte)99gJl0rz5*06-nE9sIh;aS0u{>G^#Q-0v1KRB4P;r>>squoZH_^9yJWjtYR z#twucOkYz6Sfi)RsG*ZY8Mgz4rHe5}QAl<`%N`Wmv&?rjoasjTJTj4;H7MPC;8pt< z`>}R-)G_uN%BK$MVu1PhBFaF=+k+mjN!SuQL{$2EC`CCfF&DAWNGxM7$Srf1f$J^Xkqfp{LpV_}>R^#{ zsQ3e>Au1sKld*-_PMZ-+Wn-MqL2S8-Whv1vmZ|74uu^W7veHb2GF@*PllVp#8}R%k zLgeLgFZ)~#lh%|ch{Z0zz%O?w8r_wldSGqvYwP1?jRpR z5#BpEP?p${xBY5rbuKE(hN*YI;3Vz^Ig$3;ltdXq!uL?8+G$72Lzfig` zf(#zHDR{h*1Xw9Qs1N%u5vE+WgS;yc9(3+cn1)Q{k@8W4ZOm`^R{q&X1UfK4aIJh} zn((Dv5yk%1v7>qwjXL&Wp}ZwkFwus=#&CD7#lj@oI1++k>(K}NPZkg~B#N5Kgv(paBSlkuH?1XMNYw||bcSJ4mkAm>_9>f6t`<9Gq%obuT5 zhWW@#8fTUzoaN>xuFIfYofzjkF*>et$KD2p9RXh$o8;J8HbSs7v=!y_KzC2sy=z!fMH|+z3zP3v!k!fuod<7_Z%qO*rj~%2X1QU@l`EuY;0%FwS+O}hVtV-_-5J< z`~kgPTwzseyj;Ur=x$4T#O5Alqs)Xy?Am*)viIIMl#AQ0FZUl`E+c#o_j|I#M!8|{ zG=|_(p5QLkohvi+Rnz6Uv!i8|g%e#In|*1Dqn+6aDz0ms0=B`RUb^f-pSV0WO55Ue z(*6MBMQCq{OUpw z{u)1>srrzsx9{#P*Y6l854<>z!5?!YV=Ak1Gahj8i2joNY$M7s z{%aWKSppLL!itHqj*Q%XZFl+RZ@9H6fj{=q&zF-=kCy-P!H;1aUM^GZT$ix>2>18y zFK5S2mOuEzCo%eRD!?=u)7QFyWQ}^U-YEg~LKX0@4}R{UK-;+&dy>Ai4|(JjJ}=E| zlxHr$S#2zSqHY`ytZM{bxxhkVcmW==v?*pCV@QqsGY8@OrOTby#KG>-;@!f^Z2m%! zD@UMn)UHI11pLG+JOWP`wz$rz2?!a-x)DW!Qhx(OE9K3v+f{z&kH_F$Xh^WQ7)z+~ z>)hmY89Q@|c8rl9UI1%Al)oDv!|+bstY8P3#h^ZY9+`jcT$y8`kYjcEEdT(-s*U=p z;6>)rFe*BG=!|b4?w|2VPQv!{7@kC=jnxefZ0xt3AV-G_02ON9BP*~_en3s(nn)r# z@$SUW$%z8i^od#IPTYtcz5&F{GAQz`0x}-{b!?+$e2EVf@^KZL6%o5cXrxB26+%(D z#G@^eJ*lJ85?WMrm2big;PF#`TOAp@31ff>&vGY`Et##RKlJhP#@F9j z?z`udOevk@Ciy_eF2niwC@7M%;$A%( zHWEfc4?T6F{J^Qv^22}auDCz;77UOox9r%z_YUqipu_%Wf8+J#cRq#jlJ*b{+(xcc ztX%jZa2yz`Z2F!%uPygr?7fX6VVa%y3xD_v&vQTT=gaBSjPg)I1ambPJi*y^5ReZr!x6xpDjH{t}FZgkMA$n{_j7~h*H1I(biR( z?qo-~$E>{Lp2OuAKlVu6Vf^Ir^W`xN&~LbLUmg9cdP;|9x%c?rz5l^7&!7uJZiNHS z4q#~i`nzu^?|f5EAYb6lm0y4Fhs(vWDF)DtCWxb}o0)B|c2!V*))D;Ty^fYLKu_AT zp8Q2r0^-|`DsmoshD<>ShjABw2frZ=qC;1-^37n%qi^bT3Qy&q0$iAZ7YS?pOdna; z`zTK%63HW-Z~~)1#LgoIVR)slvd%X`5MCNyWjFg1ej^Xtekg5Bp|V`Z!(6MBbfiqE zNEj>qqC+5G_$6d}#1wG`DT#dMO@89;sM>K|vjxY0Woecf2?M zB$Q^KtGy>}6WZ0{=zp~si9wbvN@B!{FXY(_iE7*mo&d`f_sdY%(Vs<(s`M3KOKYJd z>B)ga%CNfJ!iX|d2%6egTd2F}d`=rx z@eq~xi5HVaKPN1WGaU?W8u*$W?axU_>{0}gxU)!a{wzo4W5mqA&NqDmt@x=GNwt4I zi5-O(i>tf9GyogNm(BQ_Zg;vys`5ywc2+~e6vQ%b;4!EV-a__i#4%w_K6$O1$u?YvEJSh5 zM7$1@4Dw?)Z9`?9V?_;l@~>^d74qicA_JWvD&9hIz_%!k*^K7brfc>KGT@Q_ zftJoFzE?F@`RY+64jzmM*)-xc!;GSM_b(<0Kye%wu=xox5f+)^tAE5JT@5yK7G7c@ z&9hWFDz6C^Fh#y{@m3{^2R~teCA{)ZIQDOmrtW1DK*kYQ{xwxf#1d8w#OQwb9n`My z;>&suZ-0Ycbv$Td7=Jm@Hf_dLk>pN3`$p4vq^Y|uEwwZe*`#1aN0Z{5hzA71#d&U) zHMtNN5GF7~(r3Tuop!k+S;Z{MTelVvae*zytt}`7*wMbqIB>O%$O~sA7j8u?|nD{wIb4=h|tJ#Tm z$YjE!ER@T(%>0^kv<-L1@ZJ^Hqf}OS1hGnsE)>EWZK`OX3voLb!?wHiDu6m$aHz|; zmT{Y3jtLx|M0^qUopM?C`Okg;I+1_yAdx+))#Ja!&GB))yVCg1A=~H=>SJdur@NXu zkQIsnhmh8_et8cmp5{e7uM_D+4n=wpaXu#9ZTObOdsfMU5D5kjq6=;!$;{M7r>^wB(1MZ(*DW zAIlqR)8IXFi8_|>$!EZWDAvC~9ZRYJ4aoXQu)xV+aOKnThqBT9q!E9%QQ^f{GwKFd z@Qh9f(bq&djHi-cp66XZBV6W`-|3_``S9z)0?`@h>nVeS{bg=`9ADcyI#Kv!jk3?s z_c-Qt7Xg@2E)pO9F^o;VBAo`TWFuj8VHtTYvbBz>JY${MM1` zXCwZmhi{l^xI++GjX+wNVaHJot`UFhi)lg{P+;YWch<@A(j)JIwGJFF$y~PA%+Dgu z$;gRj{n!G$3fki5hg40+Q$p)}t)3ZP`A6U@|Ew`i+qiVD?7r<#IkSN5vqU5pf^wkG z`!`X5(yQ^U+(B`#L4&-xnUN=Ljd&i{*@>LFh=D4PON4i5Z_0)il)hNG019>}c)gR> zDTpV2Ezwpzj+4P5^uZVS9qfG7kb*f5Kglh09I$3ywa+-}{!1uZlYRWbb zA?kjKx6(5-$Zn?V%Gk3{(muGO6~H6mY&4rp=wB5h~5T(iBaoE~F` z9AjC)l^0J>l`|STiR=B3yBP!D&2G*`c8Z<|{WIeW%4)yo*jl5u{g3iB#uUmm3>db9 zHtxan&dUw-Q1aP2boKO{1s2Gyv1_oM9bN9Swv7dANHgf52-7blC1bo+$3J+iucPat zqGNY$$V>dIc+tM$*+>^{(l8)IeHzJk!sTtl^rarBg1eQRoju<-P{$q_s|W{ z4Zi3bC{Nt~*)rY6@y@dCLxVB&NxksgP5UumBV;{hwlhwc%W*&(JUGD>b8{0zoES3@#sQ5}eFN;Y1n)U^ z-1YVm4jv2qUE&VWTkp8HbP}#{%DS+=?8`hheI4HHhjt@-Q$M3ra)E)mp1hvWJ|8^5 zRpTn;0fzMDSZ#Q0ZfcsvP(9Fbl6#FY0D+%7%!4O_2hD4-T!fRB7#~|(&Sg8;IoQGR zu^LsD;Daz=sAQu~Cpdn4Fh>(*{NnlY;v)~0=N~;^re-+unfAHPxYSF8l#R-M$04n> z5f^5-U@QAD*o%C;0wl)g&iLS0shA7PlMaqg!k9(+Irway`Y`=G{60n-)E2ULl|Ak4 zgQb&206oCm;I7+cb`8qM1H1RL0F0CGFs{$dOi<5+L#IV}t37yAsYrRDy`mhc7N-cb zQHL6%>@V$G=?UoXxC)6K|2ub&lx@8%r~y{jI!j34ea9Ov6u}FAVa!22xcDrLzV>-Q zk?0zf*BHClN~Eb9&rBHy8`x&>mj`r>w&{ELz=rY%?~`m|S?XX1b>DF5N7n3~K3lHu zy0$C~4wcqz!_>dEC?wK{jU1mZKbX-a;XBj{AR&hy05{O?p`3kgo(n&fw?Q+;UBM`x|d7U;0lUCb6=e9Ect@#=EqsbpS5TP{-zu zd#scoDMAvj&f9e6VR*{n$k{d#UdVOwUDcpWI{9Id{;Q>97T#r-Ge-5v$r*N5_m<&d z=tg*-{VPW(Z?scyJSXjb`>BsX7DQ5)yLap3T$Fgt3*0Rni3mx!m=L&Ni`9;13r&!!bn{~drgmM3oV=t8s_zz2N z9FM(3eRXjnMwyzZ>IGVHcX=D~%W^rlsGT$re2tfz&A zR`RTPMEyk{m9VTYNvup1oYd9BKEYkP1VtL>oNMeDZ$VFXe!io8=5hKk#xpJu7Z3Zp ztQ(T^y~K$V6KBswJ0D<|Zx6ezUBt1*5zn)e<7I*ccGDLxA)i>7Bm(A>h(w;@LD|G0 z;MPn>8I)+&uO*NIA|COG)2<-ZxoXp$8Zw4`tU}O4=CSO`9)x)~A!HH|;bLJZJ;b*9 zDeh;}XfLzsHluC6Wk~*3(E`4NOw7bB*tH1&nSq3pF0*wa8~Oq(*H?a5YBLyjh<^O>7t4d}OjRQ?z|M#J zZrWG&4G)wrv9tI&44A*fovC-ry%>7AH+X}UFK2%7-DUKH z|Fw*K)0@gQ|LBLxz&&?zjKnMKG;K!WzvKHD6Rh`fJoZog<|mmDbA~_4r>g3{dMvC; zgpi%me|X;mObB{h(`tQ8CT>H=dUfKOU-?b&4A2SU0 z-VMJU=NJX=$-U*8?V(usUUrxN+u!*#gR6xwqW@)#y`p@9Nzc!H_>1K+c~Zme7Uy8C zrQCkquJR+?HSEzGqhk~05C8bn<ex}sK`{O2>H6Cqq65*?HSCBL%l#`en& zU4vQ<#O>Gu8}eCYK;SI4Po?m*QlR2gvPQq(EFl4nij zuO#l)IEjD$TE~eDFBMXH)#cA%@%3LtPxz>viD4W$s9~XUQFi%{e@-MjQO*D;lqC|~ zqsRTOVH+>tLKN%R8j-zfqp)|YI{S}1R;e$@7EWFd1%tsbYt|<`Lf-zP(qnMH$_`&S zNGDIx;P@X1MB8)MoCpJXqtar7nR^R^8}D-RKAIWQg^{JoKUxf6YJ7M#hx`rj z;KG;3YG%91u+0dzXK<;Ji-4>BRGD5a_=^5Dg`q}M^1uRO1wU>m+ruM!JSa1q6ImkY+fzlDGHFC}*XIeTwCb zC-KBL$q+4!7y`U3b3q48LkZ_SV@L~Q>t`JQ=X-EiL^2?QX&PIc!Ftty0*$uA)8;H4 zb^a>Ct&5x#)%jBUt!|pS0j3(oL|7Tt&wM#~qok5-jSP z_|uH5Af!q*FETMslZndpimu z=3M8`p!ibbN(SBVX)lJM1r#Fg@Y5Nhv%Foj$?fhGL&@PJaf!3)*0|42Wn?HBN#e1N z>6lpat^%3mhDi(FtvyfnsH-C3t7JfVPkc)iVFIBXDrQ6CCliEB(C8WMl5mYxv5Q2* z6$VVxtE7_}a=3WLwH=m+%z~agdr&6ok$7Z%_Ed8canxU)>!YkbErFb&Lb(m)gFfaJ zN9hKwtb{D5v}$l^UAe{&pe{6`KSIe!SCR>YL>uiy5h4tK>hWZ!i%$FoPRO_lUL2oE zJ*KPh!+@@0gal?5upIaGck~6!Fm{VSM|Rd_RR%b=G_ndk$?TWuJ&Q(ja>!D?Wh<2y zGOX{Ip@Y88BkE$xi;=N$1XKO#8)!AX{k-%HgRN;|3}8M2BrM>HmgUkv z$EA)p#1%+*6N$fwN+mRp$)ZfcjdEmJ>pC)-V4GbmIv~J&rO`A>AQg_FqHM37=&yW1Mu(y%GpH}$?`^=mIFO(i!KE4u5rugVtU6ccu^Jr zNiy(>1$Y|$Nxx3s?)#{3vq93$urX`K{8Me{ZTvXvP^WyH#WEb$GIs&i|l-W_6 zvG~A+1>!j`K2d#AOecP}@vMI{m;sj#;42$7Xd6=nUDTiWRI)gd8yXd7DU%0?DhuH7 z5gq$Jzm3X2|Hn9>s_;x_{D>0$M}7$@;|3D(5niwU$NUrARnvA7?ui7Qly43mkbalD z%YCv~@CPrQjB9%kik=KGqs|{^e>0DQuj3+%h=6N5#+DrPSfegn44@MZT#+w6YiB^^ zthb1OUwDViNUy5(0oX|VMFmvPiq58fnTs}qETAuHK{>h9K2W;1ZD*dEZChE3>J}EG zenTE0GouZru8xF &A~cZ$YBJliAR9!(m&LE2XIivbaZw&VYpH^3XK;HGk3#lBZA z=r-sBrBoY6-VGOH@bn(b9ET!p$bS`>Df=k0G8m&;(8mcj;TpnRBxc&7YYx!XP~KiR zhXD&?Er!vlSr_o|2cCO}I?4`?)m@xqwW3pQ5p&cemE4UWg8 zvU@SAwV|+fF+whUM&`Tt%l?*rz7zRAPoLh7G1Yq^+c30X`vD)zis2Ic7ibj96dOq# z<4U>Af&MFtQ{^Hw=pO1UhmNqT_tI1uADv}4)-3%1^@Lu{JCNPY zsgX#7ruCp+LkfwbMya^&f%fFs$6G(`JB+u8k$MTkhnqxN`0HeDAB(!7sX9gPZJcFC z?GkDF`fV%71@BHp7qCJm(;RcVhzyC16)q-pVZfA{@Gl>krc;sTi7ryjp`Sb&iMEmMvQNrYz=Quuho%Wa4#6eQzqa7XT zg{K^;c;A6ajwfu_mZw?}2Mvrj&sZ9+iDS-NT{wb~+&m#KeLS`g+Q|dQ$I2IvvZIuv zZP$8tvHOsA+`{Rc;7=tZ1E$!042@ajHOsxsd)S@r(W~8sa)t83pBvZIo~5MO_bxm$^E@+9c6}{j?z&Bt_wDXS*)@E92bPD!)d4e zctwp1SK^^yt>8nF?m?@&|ScZLX>XXb-XYA0iZfh`N9l3dI=5LQZAP4Dh@s z`n*TjUYISz9h{QFj`nUAiFuU!qZsDbIfi*JXKzoQ?kKyt`ti`|7t3d!KhE*ZOJxYd z>>3@V3l=<`M7iWX+)h>vco*+f(8HbM@&nkh@W(!44cX#-!?VCz@48gx7<;c{JR1SW zA$r>L7}G(uOw4kU7(2t2=iSK8#SILKknIEaKUXHWN@@jr$Pk9&Jwqeq6h~FBQ66s9 zVdpb_1-Kwlf#}#W+o@t@mG-%^#u3|bbTcgg{&azm1cUT&ynPJ#gKu)Jv;=pSQ_=lXa%)nNzhb|fVTSVuYt8EJ$@yp%Ib5mty zbhNBdS9^zcnS#50$2mrOf;*NcF}O~a@%foD?P9Hk>C)B1`D|y~%VUqR3m;mKk1inB zk>j+9p8mFS;p9wNoti95{X5Ij_G?P#__@+Lz+xkCSVPA5W3RfN?-dq>i~)0&id62k zFkf}7+QCu(?xLLrw{>hSEyLSOH-^!0$OgHailnXNb)*uW&#V9|Au0lxwkPhSW_1Rg zjq`kH0R62CdCHTO*p?o$7@z1{b6lTUUFkRK9XOE*AEb)@v;{db%}EVo7tn3CVU+fQ zQ7wL>+^vGH(f?BTe_v^*;rPLrEOF837Wzbl?Uj++7G)j}f&NQSbQkF=2Mn|LId1FZ&J zajac3dcxfFtwYJrTEo#7M85fz9=Wr@3a!Gbxba=lp@u0OcLrX#G+uTh9PfC|4Gbu{ zQM~k)2cJEIAq~T1)K-8qV+7G!IWsoH{S`gsH3wLM2BW-MH#)sgKEf{7hmM{JB=5qA z_LG0}jpfJL$?NKHj|x7=;A9`Wdv75Rcf{@<8N|^0)^Z<)Uh8`Uyq7OrDoZb&D^s8O zQkj3|`O?7!-Cg@Q4uw@r|D!l*^$UOeX!*DAe*nX!D?Obo{5QnT`hjL=&X1KpdgOSy zFfqpt*uLUw=(=upvg-OiI=CGeX&to8V%SjXe(&AaaS?n+`SCa1Q2xQ!94y04Mota# zPh)id<&QmDe)2t^ERR2PDvh8HTCV13u&yfF+22#X^}ZX+zyJQXmA`)Xq0QLv-}1%L za_M~^D#w4~XUpOXr_1oy-dnEwsee>|5?F-*(>(tO8svpTWrc|Ni`Muvla+I+u#02=Q~GWhWEmj%d;V0Cs#NcQvYDq(K^M9Y`l^2R{yY^d~s_2PXpzW9Xn&bkUIz zrXerj^Dgknmjaj#$tv2{C?=j^EM}0KHAkc-*DSvyy>ukp-8}YD=Bp!lEz>f25nAq`{(+@DD%{q_18V_OU{Pi_?#4jTIYa(2oEx;lCt9-dYF8lQmB09?i3JK)y%HNvYr3^#Av4sJ7_`b(d! zzJ{b<1v@=zullPIXEUINvlV8Cbpg*PAD7t4pmD)TsjIcc&GxPHsIoW~4qjS@k6h{K zkzG1@MCEeiMOoKaIT^|p09ZGxO!#8uZ1868M{;Gk6|+K^yr!&?&sTwMp0G&eveI2wx)2;CqjuhDXhlZwJ82NackK3Ea)(6UK181a3ddn`7Z@1GO)}-Jb-I<$^qk%Hrhqi;37^yj>L^Tf|7XQ5%7@$A@c3j5w;T?LF zi25TRmAux!Wwp;1u&^z*IA%YY^l(zFaY(rreOk~L+=1aqD#FOLCa!6X4`m7&MEu;z z2|m^*V-3fIjx|~t%XiwJ(ssmO!(aF_CJ99v@uYtkIyk~`$QAS`1eMXM&tq3T3W{~w z&J_3du<$+#(+NE3wgfTYoS><6mAV>jyHKdBy+a zluW4yf4~&qPrmjQ1 ztUtysSQ*DQV4mim^8P8oa$|BkWyl+@2*-04fDlpBqW4&a1whc`TPUIx&yvCq%Y#M$uJK;~8y^z9D%f>EjW<8gQ354l#DZSODNjnCU;x221J`M$!btjrD!4r8hh1DGLjyhToB|JtY`onp)=(@;7+znTO znXoOUa^LzV!20BUj>R#yO$}t?;~j?U7}kQfz(PY*L%lP#?L%4>MRVMa%a)YlB|}sQGUa4dcE9{EAYLO)_%tR#h8H= z?~di7y#O>QUIPjE5%pytttaR8Cr@3Bu}UY$U$(j1O74fy3$%lIWUOU${O+kQ>+B-c zEh5k6;T7AL$7jy56Q}M!*v1mL$OAnn_odgYCucAZuw6M0SmMtSgS&X6uLb@pcSSC9 zjIOf7`K)u?=!={?=ttXL1kNJ58QZMweq90*7V~xByF=Ldi!#t-6j!+4agI$7y)(zk zT{rcVy~CcQ)>8UgSIY3fdO3%(`@}d#2NbitoonSBx{4=GPhxarfdt00CtkWxE?{&! z$MLmC&rQad#D02}`v8|P9-lrx$|Csra-N0lPp}DN3PtHCN1i@?@;rurWjZGT(5}|m zF+9chv*-(-C*1bkiXnS(i929{XFKAG*)quPsAb}+Z8yd-pk!{Vm$xF)h^viGGT^tjB@TL8VvL*Bq@-N{TC)=npTV4f)kR$F2 zyX(LZ$02i{BgSwKzqHO=GSUV(Ybx6u%IQwHk^ zZ#!RfspvTjPqXZvQZ{>}>kK1{XOim?u3!pM#?Fua5IX1|cKJ;r75fu|%)kB*no3*+3S2oHjr z{D0)gjqoSN8+dIFI@?eC=TWuo>?qvep4<(L#2+I?L2?W7<@G%FEAIM8XGH<98sM|hBCK;_6zWbw!yN7&a8(!f#HcYPL%PqnKq6> z)(EWg&PT5unPX$jESouIFhI_7ip{+IK-_uqUnHMd-t8;qs1pr9?gF2s&U~LE+&1Kb zCF^X0YZ6{KcAP!|c?Iiw%y#U|i+<1cChi=+8*P)m0~z4>)oak)b?bEq8Y`VMt|9|E zTNcV**3bvbG1KYqS-~tWT zFr2S<3~?lFA4Xvo)-kVCceO}fo)qHlRE=yJW9^Y;v{?!bn6ZjQx@7X7`Mklf~47Y78VS`7xuT4Q03ugPn8R_bC20~ZqZ4e?#4YcF<%~g z@^m?IalQ;;aO|d#dGG3CxodYT^7m4?1mD{?SRbA&w}A0aKA4@v_AxsxD}?+~hAGPw zZZWQfq%pRUWZf(B?6$x?A_sxwGZW@ss7b=TDULqZ1g^ zDXZ!o#*1?^EC6`yX!*iJPnVO=&6Ss)UoNBU@mk^@@}*VAAS`NH=VFAdk_h8Jo&2PuhIl`|04o;Hung>rDby2PIqm8m^0A6G9jf)$CmzT=xp*ERd9 zNy95)_E#Hrlw*NC_V~S@c$^hl5S}vsl{o7cWtjud-~O{l%O|*Z_6NWI&hp(HH+*>S zwpiI|zWZ23_;0@P*7A3`kM|QVTr9Wj>@RP=Ze$Be*46RzQ{_)E9RKQ{K3bmPZed2^ zoagll26TA}0i@u*_1fL#?{XCQ{|5hf%wNM%{`nVFlqXJF<4asB8Lg-xiaQt_s0d0$Rsc3{;rJZ`Ou!RAv-m1iggBC_7_gR6S<^VqtL`MuJYD?L;S*3`1`Ihyqy8! z8k3MHCVtrwCtjA+WajOUVKHI#yK>UlfhvWq@U25Ge+ng$Xuxca5}7ojG>3e}?+v(_ zO~`GJ4Ai*lgv(kqD1)m=mWzKX7hO%i;pBlrWnEQeC#orPWiA5U&3?Z!Qe{< z6l6e8&?L+<+HZ9^xMPrOy?OlN>M8?pP*l0ti|l|jWr`ygLjgwoWyTq(hhoB3@6bss z{S~*wGyURo^9Q)C;G~f|ccV&+Ok*UAw)sUV@d%#O6QyRffrt?vCaK~R5B_pMT2JWe zK+~se2%pAJU3U!+AesLr-udS5W^S9YulBZ?{z@@wXjclW{cOisQe&@Zq(!5k(aJHP z^|av;LLgNeVmqlrCm&MNfv4q&NeMg$U}zyqlA znMWxa-+IyzXt`hRuIwA}$XihwF?hFJi4K`%ffJlaL`d~XruMh?6YUJvrLBD4Nk2d6 zigVj6++6_G~=%a`=%8 z7A?RNq2#LiO7S;_zv$#SL57JV2857x=8YoMVdq80eA}20XsmIv*o7i&3dP9)<5BO> zv)%6CL?C7B6v{xAl1`+(k9L^;WSKeOxI3W1!|~}Z;yM6Xr~Hd3eqxs}So9(j=AA^- zmOUog6L{>u9A7OUEBc_PJ9D~_D=M?B=XuJke3!?(;zPsvG?U;cZ}_1=0^b?@G>mBI zbaxO{QYKIUNK03j2RJ+7u7rLG)__W_`jV;<$ZC2*QX843z4`0R;0r!)*}V4gyms*=&ZQl*Bn zViJ7adFrVaJ6PGSAedx~qw3Ll-3ak!SzI$oJ!&S-0RJ-+3yL`8ODw zuyBzEekQEZ@8BnUXXMQXD55xMW%q?f%8V2JY{gxs$Oe$@R1jgffo{HwpK1)zs2v+X zt9(Ty#~Hq5fg&<<2zCz5#>6>gTUX+^HuL9^bDKWRcxa-L%U9hySdr(3z9< z!Y3ZzXDfD;y2!iAM5kEdKFgRR7Cn(Bc7yPgHjAW3?7_1wWs-&_-}Z1P-JETQI(GL8 zA{*r)N-20%9vGi8&!Z@@pY#4(+nz`3b)hJA-Z_iH+eO$atd>_a zGSeRddlF@?ain{?o||RZ${s zw)qH(ZxxP?)z>&8cv+(phO*9shtS=^FBoHtZ_75X7@L?>B=9iI-Gq#;B3!v^zVcK= zFrMXR&f*cQ!FTv2_B{0?HN8xv7kitz&k92Dta%GcC%t9AdfqD?=?%;V2cA5wqi{q< zBf>nht8BmNrgDgidhHF2L6Yg0u8WH*?zb9sq7qNRDcmV4o zlUCZO3vIhl)_0-Ac6@3ZwM^2_aj*TB#wQn{i;mYKL{l*$KK|42(oP$9aX{c1ycWSx z$o(T-Wq03ddF+(NJIA)~~&`y!hgW1QWC+{Fr7IZNKo^)jBIGQ@GQ`{+|ATBo8fJ~c5~dUovQo=V~y(QGTH5o!oS z@Z|ZI$_0$4C)trT%JIn>V*8o1zW+}@QAQaT^-;%DV+z}ty5xSwF_W{i9N~+39z(^x5f=o&?-!P0j5WhpO3@dlOgk8dP0}H1l&0yO#IptgT&nm3-`Tv}<`SS)wFTT2drM5?q<2 zC?+w11QQYw2Vn*SOpe{tIq&!V>b>rsK@ephX^-Db|KEG{s&3u7b?erxdn@p)UTsxJ z9?ha3xHAa)sE!t$nND1h4;+IUQz;kw65)|%v;q55&setX{Y(hBVoPT^j^l9>Czwur z`~I{P+ew_<^b+LVi9-tJWX0t9oNK;Jz4oyJQn<@FlNTxD9AoZDR&d)6MsPyEhe4gytUe4~?T$YC}lx3WQlZ+cW z;r*jHPvh=T?`K7FfB$e9gvUoX=XDYKj!%vwQ+wH(d<6Z2dZDcH;}TnFhtA3oo;#QX zqr?JNtldPaK6)XFqYYR4cQ#kExzXrD_? zI)X;ZsF_LVjI3B#<`_s|D2rUZ9y<;^;=;YUgHt7v{k_!EUdI30$3WO^@aA{Cd^?jd z=E^4?q29qED{PVH>L%fr=rm4XsXdvA`OmB4C?}HY4?t(tNyzpNyV+9y_?b!cP{(Pt z|LcWrUFZcm2&06OA{XyE7#EtnmMDvppVIMI!CaBtDMmPfcVODF_zGXzCT7_o^!%}> zvT}TJ{9HNlm^Y5$Ci;h805$IKx95#;O&Jf{6-i8S{gXNLmX!T^8naM6dZp>1AWYJnB5 zTL*^9RPP9l9X%RnuRLO1rT@2orQC1|Tlv!l*nMQEnKV6zQ+Jv6w+e0c@7<2G|9m;c z_WDvJ#g;JXw~!gg=MHw{P)4|ww`0%j`a^q27erJ_{j{t0c~z&kJ~R9fI=Che5?8*F zWatQt_4=83q%JnWgozm@kpv&)5YiC&JHU8_@v9?DfV-;zk(uDj1RP6lhWs~;ztOF* zp*^27&42DEUtKQJE`R?+PcU|bmUiMs4@n(Ow`;LYusuLqtyTRwCDlX2wUa>Er_b$Vdu z=CT!o%^41Je&pl@wr@UJzWK&|nQ`fiT#Y{4=wLmw_ZPqS6?EJxY#1OMAa2NN+xOmD zdUkCuC;sn0F6Tb-`SQfC{D(68$lDhyEaD6vxZA&*6!ZCsr<^{e_i?P15a{(!pU;Hb+z9sQ)}#7VK$MM_$l8Mx|so|yds+I z*kPB07CR6jXt*JI6|Mp0pi5^baEwb?l!dmPC~l@Pj6VgGooT)qTO1NzS(AHi3Ig0|>B&m4wR?q#Y17l%YbIzU;qgoGbD0c=LZF!}2#m4Vm z6{q0ZM=n7TC9Iaiu>ac2y6G&NN5(MJG7A<3xj`kF)EQwS;rtK=KmE)+ zXA2Uy<*fC?hnCM8e1j2nAqRR%qe-?KROz=hsv^lZ_6NeXK3&DFJazSVFN4B)X76g; zvOedDXD*et(f~FPerU)GmtjUy0gf|+Z^D({QI?}58_}4F4HhIYKL2W;3T;)e&5tM= z!Q6&WUUt=S4+Gx5!QL2Q7hKt5p2W-DXD(qShvbt0LJY52hu7c(2ta_L6&usot}nmZ zbWn>ji%W%7i*BlVnVoH@8ZzZQzqK{c#`^2-6`%ThY20TDyEF!GLH22(&k)c?d}gRA zRZ}!?k(Z$-<)@5Qb~IoKchyMR3eOv9n6yp&grnGNvX0cn_<03Z zp8Tm{-pxD4Wq@$YsC;PR$(;g5lO0ubh78=H&tga^9s7{id#dsm}d4^I?A7@v=-zyBb$vuuaw;5fD z5gA?psH?4Y*157|g)`S&X5-Nwppn%qI(yx5!}cZ)?vj;ro0pZJa0P|+tn$zk2n-}b$|n{UDisFN(E1G&?-(jO^-pMIzEm z1Adw`rZhN}liVz4HAN>fpUlU0s$tQLBKHZj_WYL26Q{ps!D$P*2+Dl$0PBP(@d&@D>OBy&%u|Cv6qmTK4f)BHMm9&~c_w-D?3ZEd$+FXIb zv*1Nb!#+)y@(Ysy<9dIlE8+YE-Ugu06qhh#D1U|!;ETZ50h_)~c@9#&)Ga{?Gw)5r z8w9CY-vI=mS@vF`wwZ}u?Cm@eAtcFwc zh~kB&+C_zO!~hZaujaIBIN_$ac^2Zs-cFsr7JXs!j@`>`~QC7IoZnx?HT|8EfW4w1O>ho-SI<$!u zkxZ!Dij(&AHXS;&@6~~F@We$XQmH5QmAf98DX+Y8kmJmHNZVWPpO`COJv@aYbgZ1l znY@{;r03>v%7V`o+s3fj9l`P1U&fe#c7aviTgb!HOHf40dTqiXDov(vylfdADk3pS3Rx3Q{MA=5 zfc`eAX}wa;5nSPMC}C6a`PX0b&OSLffun*#42ua??#)Im3CmJaF`_%UwF%v(8`wZr`$<}(t^_t z1ZzAkN2Yc~cLx*v+~%2C66l*w#Q`<#g*<2@^PXmmUhYJk+6OasU`|TKRtodO4wMq;sx(_ZwePjy?7ulNnf8 z2ez~5xV9a%O(rJlq=rY)UFT{4(!_q&b|jZOCo9%=9aQ?1PURSuwI84D|0s;82t+UfdtVNHEIX!tXlO_9@IM9oe{17s{ zlgSoc^AlDel}CR@I%P#KWp@(Spo~acN`FSZs;4+abJC0}SRE^*>YF+Q2>(`DIlfw6 z_42*t&_k!n#~;M*O*?Ti&oVr%zNZsY5<4EklgM+GVXit|#+EhDR`$XfU>xaWAQ+&W z#&JALN3U)(MnCIBiKiy18{k^UBnTh1T}j46w5^I!<@IDrgoMd}Mkbx%?mp%Cv+5d9 zjXF`+pWwXn+4+Y#$^fS$vPN9Gnk}2pvslno?AhG~R&w&$0{q&gLz<@Hq&+7Txe|AJ zoU`pahRbH^;yh(qVZuc(cHQ}{yUNP;y`}HW@$6jXS>qE-e7y+Vb2x-q$j@qgs8*|z z+FdEf74o)4c+iPFj$@nzHHK`xYMY3#(w}xW3ElgKx24Z;MSVZpN>3nTRNK-6MVF#W(CJhw;@sh-qM& zaw>aL|ADO>Ll%D4Ywtq^)O%STLmq9*7V@X)w~fUv3M0-!>xu5 zbztDy<+ru8P27A8xJ&bs1F90)x^WoAs3Rt(0`OCk$qul($>&id; ziSH}V+dfi$fiqwavO4v?Lno`%qXpVD-cRF%+x_u-%XVfsJ%7)oD@5CK}`g@=xn_kQky^2x6srpH1Jp(B1yyp_6i zU}G4@zUjcO@(;e{h2^cUyOC@+&>5bbf9iNS`;m{Aqrdg`GI!``+4SP;%dUU?qh-%O zdMgUkIv(Or_N54-+bR4Y_oAR9r2|pkSjFWYnYMwv$wva z+{kv~vk3Sv+;MmLqj&!281Os`D=n#Qdu#PfeXmt{BcP3$$W1OA<2FH&4McL#p^(%F znicREUnB7ecTldh!GxE)%8-}xD8^l7UNQoIl|9?K7NN=(~7Uc|v>?3=L}Sm2Ree@t%6)yK%tN+bVdOH&5ijC$_d2W)M+jzEQ&UqpD+VY30_g&wd%Z&AGi-_|i_gOfitD4qxLw7p#C<`?)k` zlNQ>zz20dCrrCZ7cp(S*#1Lco8@|>^HqRDZbzo08gpm)tLUTZ-ew+6d6t1ap&bfdu zGCSJuW=pzoJajORP8|{CA*@>CKKq8ENiPn4@p`I-D? zQ2?DlBK!;_#L2uZm;Au9P?p#xW`XH=$sf3j3@8_IOm`p$`>87x89=1&JlAK2Gje9N zY)g{>1m?3`p?9L0@rLLdDk9EwNN7-kiQ1662{WzKu-pRiyJg@d`6pEddkI3ucx~Vq zUTXe^|1~HFzCXgRkWJMD`|yl`eh{yEf2QAc4BD^qPQB{4^%&%y4E?TX=wX&&+A-;uhA#3+AG1|;g4=F26uS7pk|{Nu1zq8~l8vD%@if#4x?5O0 zEB8$6;64{0J5aLwfE`&(>^_Vp&ibt=SuW%d?~>hAKHEwRS5%6;{1$17{EB?`yBYD{ zwp}kD*7HrUMCPH5(tJ(y`n~3pnYhYGJx|w6mte>l$DAX8B$1>z1hy zFf!WGtW8`nlGkN-QLQBm%4_9c53S{)IO}{OjQmw#n)JP@Gs!#jw>=T2su_9Bi|;*r z%<2s81L$UEs8M<=vyW{{4$7s2J|!>9A43>Idv%4uISg2h%GKc|Pa0KPi=#%s=sW~= zV0kxB!^KGqycrrtfgij`Tt8c9KJm`2_95O)QR7HYS3J?$K)v#d^=jW$jmd3#<5$_? zs(R1A($J!A=6Ptn82ik}@>$QLoa^RJ25OAZrkI;E&;?7x~%W&+3jjX<#{P$y~vr0o-z%jSh$zgn6xB7|bv(s_%G~bvLrB z8as^xFA&y`5y$>y23hM?sIH3EDC;=O31)`dL-i3)W3p7yO`*e8y}2Jcbg{BbN8<=v zHoD4hd}0B^c9mo1TPG3_A48q($vi78x2vS@{Bvsz3h)o*UPhVTW)X-u=kiAkvF`Mo{SrKnQY`UV-8nq z*n(WqIw3IWl?lk zUTZ;exkHbudEKf~{*yi#>+wyPUKM(M&O7k}101Z8#4~`uwaE|QUhCgDRc0D5arp$= ziLZ6rRd62HAtYt0f0Jis%k;V9WzS9QM7QHg5U0E*Ti-$@N7&vbZ@Bw?xv%)${HKoV}p1@C0FH2G_c))<>D z$&*hVuLwsumb3bVO+`8}OI%l2ohWQ&`pKoS^3=(#<-&tUSb@Y@lgQzb;V!my1-G67 z>am;E-Q-P@Ud}9ZVxPNq^!2*}jg9^KXdLOzlopE+6XyZ2Grp6#BZ67CpE-Nk-Sy~!gT zt)tDPb2pbk=(?kO7vnejX`Jd~tg2RE4)iRRJ%gN2+b7M~3LbrD;t95H#^E*4!9+XY z&H`%?f#I3w^EmE3v)2iC>OPJI)n{Qf;(`zGXK?UbU{#>UAG9_t$62zmJSO8=xBm0h zUeoc8eVOMb504C^|E+Q+GtR9Hh)89l05-vaqAf<{MmyWg+k5_0e|4<5r7cK#%* znCHqp*somqeH2ID;fvVH*b3hT02W9TA7Wvf?SmqvFR>1kK2D@`L4@_Ay=V?6pWFS` z+O`gfMI|b86@Up)R+5^6+78M^fZp%S$3%rVP&EGlZrCE1mG`0-hJ?g4}NOn!CDDZ{>Udr z=|&FeYOu&@j*rdiFd zZQY}}s$HH5GLDbomku2LG!jS$4wi%N^!nk2@?&p(P3dN*fscP>raZ{@2(FVogG@g= zej52jI-)v`-T%Cu<?l9-Bd;xg_6Hx}2vB4hlcTErmrSgK$RnzPtRI-^E5H4( zey_~4v%nLJ?6e>^hzxh5rM`V7u-k2{3~;+k2g5cT&+@ZiaXbKAAwuxeE{O-ta<$*R zC$A>Fy=@HJ_}r#z<9V;&D-OcXI}w9?GN_H-qO`G1cj;B*Y|Lw8A(F3zrP|@e^mp%a6bDMdjylzP<3O zZPl^UWYmAw6zP#^3Ss&QI?uKlIw`%eTGwK)Hey+2>e| z^H*O#Qf~X=!{rM&QK?WYVn_}5B7L??$xUn3XmHKGE#*gUxv~7zH{V#U#3{e=T49^G zsrw!*C;rpB%Bes7F#1Gq+4_BNEPH?9r*Oc(Ze!FuyEWhYz~i?+^tEyyPHLwEcY^t9g*Hw4KzhT6|RbhP}{y-(!K=f~OV`5ZH>EZE&a`g;g(M!cNFi<0|L8#M>y=Rbr-M#hs6B9UGB% z`wE+wb?N}v8Tt(vW8?}9pIQcyu4IsKV5FW&`ulRSE$hXZA28%A|WHOmXet9`dLav&lMqe{C);Mm5p z?U8XSB3VhHlI-iEiic%2K5f)`${;5&z!%y`eBrgT=ogvHGKoU%07K%Jk7(^T>bQq+JzkWYAju1mb^-`mn0Dt;XdbO#9RR3 ze|x1KVRctu3B&RmQ(7Uh6Q&WvB;p<3lkbe>owCNkz%fo!4t!J5@s~mcAYtJrp;Xjc{3~PwD^G^TiFN5u_!j1CpmVP>CdUI*Car+Q z7vL?QUJ9kYRT9*kl?%>H)WQNznGYj`DO!;c@Rn|zlp3U*)kGt{>1P}cVDW!<_$ zs-hPlYRu z#7}of`WB7(;O{O5ndHJZjl1#yHWk9yehU4Lst^C#*Xb#(n(vSE&sGK#Sd>3PiiK~ORUwF#%Fotas8Ao|K zF*c^@nQ3!rSZa++1~K-hi?Yu|rjm|Fz++4c4tytRV1S@d)I7w;HfuXEEOvj>@nV?O zBSd#u5oc8cn{DtX596l_4da^*B;||)X~@hUbw-7{9>spiIx%-wc!^)9{f`a~b0=NS zL8E`xK^eJ3p1q7ivPvj;+lK?0G(%*l;lzHyOVIW+ap;P-^zjql?ZY)(xNWaSRR2N` z!li@#i(AUMk_Slv-N+++Zz*_$iE2x>R>2myReTvLw{lT9lf__d8p{+I!~nj}>D$30 zbjUXo`YDA=xaAP-Wa7QOfKhb-0*EAh-|a8G{0&}tlNQq7E0_?M7}lTfJbF*6CcV!Z zJQHjx0h&*Pr?}TNgmbC$NJCd<&vE9}5Mx~dbL?O)FtGuG{SCS zww>{dO!BjWQ{EaAqEUz7W^lr5-OGN;3X;XydG6v=@Y1;elEgQ1bLY`qlbm}l>nz6X z=9PRBss0dnN$eVF<8MAca~wb?HB+C<84Q}BllEOhk%bf_n2~47L;{_^JbH)ybFj;u*YKl=gS6BqV zGplZ4Xk;(xy(nLjA z%5Uo@XQ+mc38T@cj;O0#@P(5J&E731(mRvI02FxA21MLJCKK#%e06QV z3McmYGI`_)ilpOs0Ote_OUEcU`p!<87rQdq?#XY3%*KXUsYCy!bEuP*oHOi@maSBc zNtp-OnS!2^zN6NIPFyFScX2kRD;-@y7-u@VgF3M?Wsv@1iPci$Iyx*be@cFxHyWy! z_))Ipk}lGgYY-#;0tKBj4dsu<44%@uPEz1OR)Q8_lV?>B{wI#)N-c(Gi36^cW2B+6 znsnTKbD~EkpGZ;oNw|(z{W=9tcuupE8Ee}{_K+Ez!n>Ka_=iJbdnN}^jQ#t%%R|RK z&$i03?5t*HDp1m#I?MTr(89?Co3L;7dx(3%hv7N$|!%` z#6e1xhmReiZLzWqmYu?}aRHDcJwv7I>@jRn)QP2KhmL->H+I5-XG@+wcdSgD8ZQ&a zIWl5u89VLPvTJlZ6Z~e%_kQc&3oh(0&R%s zM0B?Rrq5AfX~s;hpjGGSMp5fUFrPbmvMilD%Y1=>Y%@H}invWWB$*&R$=0f#k2;Qn zXcmX{P9|ROyXmH~2}hb|A3LGjZC$6)H=X3>4qnQ5CvbRmGO@zRYwj#!Gt3wZI?pJw&Hw2^NHaU8GWK=%wv zJBe9#ondh&yv<}fXwgeK0F}0czoHy}WR^PUEL+*yxYOaqQZLS6WdpoS|2f2@yiSmf zdLRptzibpaLv;1A>wz{&d z09w66p0&K{XSPkp1yL#B#}3Nqs^E@Aw%cCiY*1|RQrRrsDI?=T8=5s_P}r!8YR#c?5jsVP+@lxpF$k zAW;v>6DO2-)D}P~J^egRttskd04LfKyA`OEuE3Yla)fPW=UnxUT}I!dPTYAMfK#ki z?`Gw(=fEplR&>ZQ>7pB-LeAGl-m*Cm=dG`l`)oO^8Z zymGM|7~ND}^2!^^=~cFfW((jh@Ha18*+<7k)t;_sV1 zI~YZ>5t zTz6!WhaLY6K!5d7Cs%Fa$RPVb_GX}Mva;RDH|&78ic@$I*|ALfMp~35CX6`Qsi$+Y z3{bX<*a#=tp+KHpR`x+xcdUBPpMR09kfnfh;vW8xcL?$anY|2;NhRqx$uTbf??*qM zNx#$wLS^Iccigw#q?s@z|`HkOvCw9*&r|X2l&9h}q|v`uLQblGLm1XO?Oo4;a{ zRT#jkSsB<~iIF5e)whkmHJ$>GDzCWnSz8Pu4!HC2Q{|Wc^z-GuBd1cYcRzZfJavX8jmu?!oL{jYd_imj7>=P&PO>*m|bX|^1R zHuSfU&)*nDaZodZmZ!n-Gxr=WA7hK=M_IA`pE#5Eou6cTZwscy`)2XhT@4 z>|e+1p&!D@`zvpKUHQ@1T~EDka1O(Ob5A@~&fNBqa`=~jEA$`Oe`VSA58hm!_rL!$ z>gT4X6=9CqQ-8?0#{cu%K2?sNJQrO0SXt~q>nxK4K7G%jGD(~_zVJ%;thYRW@0Rkd zH}5ZRdJ!`g;k!qeC@|^S2;{9(dzwz=g{;IKc^0SjG(7vR&pufG^?N>#kbyq%@g)~+ zXcNlDcfI2J@-Khr)tsl%TaM%4ecK=3R&M*yXPAM5VoL&BP1>I{&R^U3gvWEFVC}#I zpEzq#lUf+f#Rp-kc-l!TlpS8!f#mEw(<1NOzE6dSAL623n$GNvO&z8E=iMm8Q5ZYm z<%1B7YeyyCt$|-tq5te8HQE`jEVm3A3e3ZBjl*`D?G@vPxBy#a4e)tx%V1}t1I}PC zz@&4?J9t?h0k`5C!>H;(-4_n20>uS+rUGXLuAmDP#My9y_L1~e5`4Qe|N zzlUz7GAEwdg=Xt(&>o$uD0v&AWT;9GYZql~$Z zZIZ1An4#BNgf^fCx4&zj2@vD;cj}23>#g=hK7kj1Dy-IldV6NrfnSX9gv*!WnTrJS zdpM;6OAZn-H)(rLtr@@ZB>vRIXg@B@d|#Q$c~}qfJmeykgY#ng7ztbBA@9 zv~45tNf2H)eiG4YK*0PR%=xT6%)wc23{IZe1;mdC5$8tCP$G^ZnI~Zq`R0`DB^A!6mMwb*@|wl=ej?hqxA-Pr-jgJ0j2k!&jJ!9`HP)rSw!C^7v%Lhm z@x2Xi?;47c3$|sFy9JhTAeF|_z(G~o1Nj=W&0o4CucWTw($zG|%H zG~gp!9U$8oXrOe$myS^6?X)ZEX3>*pFrd1^z-`KuQA?E7l4Sso@k?2`Li~jBz2Xif z$wM7ST1yLO>Gxn9vEFRQo|mjq*W*i^9H3s>PJ)R(m3X8ht@@7nyKBZ2<*;4a-%DR* zobUElIwTF#&|brgV;gDXRsBWTXnWNVopwun4GpGg9gM(4H^ShT}vs7Yx!Xz*Rm- z=uF-q3wg`-tqg+IsCQS90G}86M&qD{6%GCxo0Ux((g7?n;SKsxd5yxxxCi)UaESqr zu&e-tdQK3j$31nU_bOkZ4fv?1TGsR@VCS=E58EakOUmE!y1H_8vXWo=NcfffTb)?m zRd=*LvKoNQeu>}6JILOrh%&$VIzrtF7s?P*~8==6Z`tzNf49zni47}{REbOw^jgi|= z-q-)uL)XLBQzeWa@vZH$Vs4D^e<0QP8`JyTe#&#Aq&4Nq5~*)npB||q-`nRk{}V^! zWec+fCT&tre91o|ggVlUI;*rZj_sE=&i70Xr4CraQzHX?9d5EpNCOdeW~CGTR|opr z;EtWS4^X)sv|0OZ&ze`x9oWQ92s$f~l?2ir>M=d)jRQC)++{?*w(qe%>#B0)zLO3J z(1{BXb&9A5+E?_j0#MsU2mHH2`v_0bwv|LOhZGrO75xx=Y`-#$9I(u`CBHg`x2+p* z80X&ZVcIic1e7iKnqB?6jLmEr$H(f-h4O;kW95eZyUPL&iC!Efi>%xmq`$qMmAzME zn4YGMUC-*wu}wNi=F4W!7^Mw+EP?&aAWI@&vK43KD(A=|%&%c_(;)3}JBIxo`Z-v+ zS5! z22sHa(0y@fwrs-b;DHD_N}b%IW}S9a8&hBhzCU3AzVod%D+36wH=d**@6b*C+X=de z;Lz8$uLM=cP~N96gc@L)zf7VbPMo+++Ny1V_h*sTeb9p4)M&6DXae zBVVX{O-#S&|4_`vC&?*crH$_)2ENYFF1bKQu8#c*k|S^%Y$FLm&MkV?~Xiqx}4=)%{lsx z0|%~&{Hm)8k=M`_s#99WMxfxBhB9XRX`Zb&C&u{A721B+hC#K}w1g>h9do%ez%<+2 zPP2;6Nes4CY3_E@9jx+I7j<>rEIXhn>zyz?Ft(NS@H;%EGj4%C$n9_4@;8%>;HPEa znr;b1OlP>`DRrOhY+@PUz1aT=3%-?PNXe!f2 zKMIq;A=DSW3c7+@BXcK>lH!h_tKr8b+Zw&<9wtip`ro(TN=X!6Hn!=w|!tO<5sr*a*(bD>iRN zw_Yc}yrN~Le-n$7 z`l&DUY4Eb$b`Va)=rB&=(MF{c-c{-oIH~N@5K~;1qw0vh_QES8-OFVg+m7!<=8XW? zNw3V?&$j(L?v##2{& z;y9};k=+hbdN@0I5QpUXv!`)-dX6q};AQnb`9WLM5R(Pvsqg|78osCe*7eBN9c66q zejJEHY%xvyg7*4Tdf-3pZEl;~=T^x$IBWPI+2Ty)obDlT>t<&M@pAWvUM76H6?L9z z?>$WZ$gU35TiTuFZRnD*u+*t!ikz;x0Aa=hH+j}5mU;)ihFcEo1qXC;CLQf^jL2kw z)&9-tyN6e1I2#^kD(B|1Oqc#`xa{A(tL)sm1%9QROaR!z_{F|yl{y~Yw!8Fh-Hu!u zz{kM$-EIL5-8}MW5k8rl;1~*cZxLQlQT1%+AVVB=3EQ$~ZVwHOmX)zxWoYX@wzc0< zMz`!LTlgDx(g^L|2`dv!=sbS!!E*S}6vr7bv5vYq$KK!PTy2a_VsW*dD2H9)O?J@K z>}ZR&jhZue2m;j06+jqL_t*A&`?zvjn~Gx9A5iwEdRpH zB6In52`YRyO2XD2E>H2?@4>OjCve&fny}|iz4q1EGKt30&wk;q@&|wN=jC7g)1P2A z*iiYIZ@sxZc7n4?zw|Jj!)0*kY>wbW{6khrdWiiGyz2RDXTu777zK3C=3x{z8W;oB zd!9I19%eP>0k+(=@XjLlvO|_xy|>q4oXG$7wl9~v9yyjyUWMF__M=}uSWdx!|I?da zRlf6O*U%Yma5j>7^i?k_0|&0cvH1LQ`rRKX6rfXsWUVb+Rt-2 zc#W*)N|{{Ad-a~tatm8)zx8!Dls9m`^5xg!`SWG!?)zC;{b%LO2R_aWuAZ{_+g?|8 z|MU-+?LYM0M8Ax82(e+`f8;dVUf&)iZ-~hSZ^Vgv)%MZy#fOhFTjUhUR#9#}`xB+G zscH=`SMM4t|NMJjUbf-L|II(Uy&OfMn`RLHwhw)UnVAda-~9ON%eE1m`x`C?Gk@{5 z$IGwc=$)rSqsQ3rl}GT=(DgF5zW!(5Q@4bkU>5gBKmLXC-uHiu=olQ0Mp;xm7!f8t z(t@PYss-nR0*f#dnJU26KDLpPUtU^S(cCqnMMCnPDgc%@);#+aF4B{Mo z65WFEPIsx|E*;#?Idp&q$`KWuw!D&s{+RgSz)OltXBj6UcnHn3I)pS3b~{Bmk^HiL zC0<^|6=Me#XKJ@0(P*XuYnu~S2P;V}e2uEm+W{3SOm;JHMTZDF_;99ItMn0_IQhiH zrb;J`zC0#erFlsn;JuZtLFsSw6U<1FoRYGAs$beSJ`o`O6K=4^3g1$HmYpD!hh=7| zX#}Y012Q<9#achxz_N=`fwBLNA=0|zAE3>wCJrH}qbTi$IS_GB&NJUgPKfkR2zMY5 zu2Li~I=HodO)1D)f(j?ZGcQx|(SI5l9js<18*nvJ3f=$myG`FS&*o^48ueWT6vL_Y zK^%sD{JZQT|725hN?yjO7;~q%kOTdmv$~d zi$zP+`;*8`IS1b&6FW3FW7zWniyi4n?|)fyn~1C7GVeSfI+6MU74Bg|vUS z-m(5X2S%xCyIFt+Jq#jjYtlmpOyKiv5ksIDc519}maqmP23h8-p19Y8>Rn@#t6Mz#@&bmI;6`|LcAFPE0_}8Y zkgct_tJ_#+9gLne$w%4-g=h6ay(lYftV1CObedP<*9jYFY#?9Tiu_^}^(D0swFLTQ z-ZdU|!9&W$UKCBgQlWg(*uj=xw9vpKSUg=Z>x^jWq8zpE`x)<;vCY6)`Fo=@t60M$JKNafJ~^O+*ImWX3$so0lkK`Sy)D4@Vgf7o8JuE zcr(xy3v{`pF(oU?7>`(AO@fq9$D*t7+?ik!BeLzT(jA#>Tp}B03(A?xWE1xUAf=CE z>Lo0i8l*fMPeW)YM%;@S1YK2RA7}an`pldaOdoctg~JYTxDW8wMDAM@I9waAErg!5`{_2tsvnz}}) z_+I+`S>HCm-0=9ctTuiNECa~Yek)urjunaE$q<~^1}kV*8)X8CzX4hUr>>|KGI4+v z`X#v$sJAAGb*{tKTCK4b5eC!s#=DP|U7%wXl`{~1GN#pjcOTbuR5{UfbYA!IL4WiP*IV~l?YoR&y; zHAiJF;H>JRQ=OVxDHE*pw-Xwo><6}QE(6&1mNt**qHjXq(&Xb%PM7Tq{B`AjyaeszLD zW@G_@SX&0jLtRsS*zMF2RTztD`!WR2@_ck2pQ-#>|1v{c`|J1GuFVUF9g)=q@f&eh zzEqCRMC|ZUoeUCy#Eonq4-gDM9ru<0sAqW*eIj-ap3{#5!!l)Z3Apsdro#E8dJkCX z7-<5Tc8+ltE#*GK`M4u{wsTC`Ih=1e5;<>o$2G4nM<2UTI*vS5W+s-)S01>pT)S_3 z*~^yESF-YVimhfBdl$>2PvX>N8|O0@j+fEVE#=6Q$5=`0w$5xz{lH^o$F^-{`?k&H z#EEl^i`asco%E!?y0SXFG8hgb{~7MB=qoZy~8b|PT0l9R3;WP9up#*(XBhRTzZGn|FH zP_{6!;-+mlnJABT$2t0|@F_I3KX7|pCr$RV9nFs!=v&)x z?y3V!;Gi1BQRQTW!z`#d$2qS~xOn31g>r0st{m6#$Lepmkec zIw^J5rPiSnO@JLY(1fY?UaJdvBVj^o9*nzVl&#`9uax--@Bz95K%?)1uaik6D^k&n z%4QtBw_d-c?7x0*`T9LimNUoMN}g4M(taHN^LR0lQ`f@9jbA~jFXqr3JFn*@J66xp zbjXs5KJiLSLcbC|?=JaFt!lQHL$zxBDo-s5fUWlE{37R_SfekQmq)0g2oJ0Uj zc}8MLnC97Su&r42sTFkJ4(h7^_+w>|v#xvh?Jp|_UR54m++Ma`v9s*pZ;UOS)uYbf z;9P>w%jkF+;;6`rtR`N?8Q9t(lSfKKcIIfl64dO)srjc4WuW$i?VI<)>zohGWDade z>U6Fob``G^?D~0MM4meVNl?~kFI&KO!BA5ZXXE5{Tod~y5#XfcX*0$d~Cuq6D!vG%qC1p5`d>I+Pyf~9Gb%0;DX8~{yaUW$D)(Ut`Goh#p8Lz`v zdECQzN8H+@Gys6z1iO=c6!Jj+n04m_(swp|MuQ}Q{rUQ3+&=V9Cm!41cCwSjG!tST zI(jNAmRA`69X~tG*}!O@I3>6DE-=Aqm|Z=4%Y()2sXFw@)%oQcV1*nhHG?g@j^L8 zn{@(0!xFXpv?q_&v90>Q?Xxm|vA+20WRis9IRpnE`yuT#ejTMRb_XEk`T*@Vy0UHG z21>=m76C8Tx{CEiBi}XmEhW`#3?v$s8nUP_!~qN;M8{>!%v21Ou<7Nr@I}vC8ZHX z9w-`f6qH^9ex^%Az4BR!&|EcG#eqh_$0izI>r;*C^E!fU91AE97+1Jep*Lpz%ctf? zBKSY>D$q+}sdhXI>Kno2IRtH<*0C~R4RF4;KhG2j#`Uv;1wk>zVCX#`{8+i}nk&m& ze&E~6{+(mx7r*}%Y_EH&Jbs#0pa{iFE`;U%I1hjKFYe@=g?_dP-j83gvf?II9lh$h z-Q|V*wv{^`eyV)rE04x-_tFEq%jX_A0+TQ$ifa@{q$_oYoMy-6YTtkVp*zc`?s|-K zi4X)-+N+`mp= z|8rY8|Ccxe|F1tO!*LT3|zhc@+52Ti%5k(|LWsq97jbLyz)xw_)mV}yUGYN zcGJSB2OkPRNZg`)!N9hr}U;;IN{ z0u$D*3fTyw$}(aDq|TlvPx8)|bHGq0=w!&?1N2NA)VSN$ecpg|QaC_UNvblal`2RY z6zJXzzznOBCyFE)RtH1_TcF8^4oKx7@4=c6N}DEaA`zAEDF;y;fV97MSnXvBRnmas zNBN&Hlnil587naYOPU(yWzHHPg)3n#uTgdI2+zOP$RiyyXm7(Bm?o%(t+wo@y7V$1 zMUaCd2d2tNar9iY1!h9#9An`%f5!LO0f2@ujUIk-)@B@|JZnUdB0&;D`Q7K#XP)7e z@Q#t}gHY6nRO_@RGrZ2QN{*EvMi0yv6{+M$Kn)|* z2Qc@HDYr?}aBPj$gnY066VIBF351oEzovy2S>a3_$ptz#vhqq0j<~o)IkWrg8|kCk z)+~r8jf9!iQasHAYYt*ZiQ?U|ihH)6C2h)1d=(JcC9N@Kt$;M9$FS$CfW?!$x%w*Z zv*O3UcA}Zv6lsV}eB!KKYXJhOpb{zR!G!$VJVNc{$q)4qI&xP`t5kV@P7LX!aR#T< zS%RN}32{Ps!d($Jr2L|$U;Ttd|uu^N7!RaEi zZ=F!5@>hR|StCC)sDy5a5ZJz3wwk|hKCOo&(HhwL?b5Io_oM~?H6^)5%WwOw0&4TT z6plE^10s-oiNP)5^;=Ef)F)|bD8Ht+{RU}x z-gZk^n^x%J+s4tjq>->61Ik(~5?6Q?Guwh?@}D7I^?M$G)j%gt+nHMd)|7tN=;3y$ zgz#T^VISj5?Fl4=H~~@XC*d`%zir8DVQMj&oRvi;ZE!M1(lNM;(FI!bDY#kR4%EVP z5UyPj=L!k3PReUr?ZqMHXNoN=hj!5?kgM6|kTjiLv<=|^aSb=+ zD`CMQWx@D?!6Nkutn@ze024lvGW;tp6d`48pM}~yS5`?rHPpJY9;=>ciFDk`k5b8Z z|5`fK)y%y4KY_%HZq)FXVS&d3^zrDN8ciM$i^{!@ZK`9KyYTs``0$d8a1*5CmFD%k z57AMGqbv*mH+Y0DN!tV%C%HF?+u$HxU;J&jI8RBwhH;yq=50yD-hww8Nb1KrmWI}q z#_gN~Yh3Yb3k72a8b3}#&@H2)q#T16IiTrtXxNLnY*JtR{>v#ggyfgCQ+dklW zH;y#1NIEXl&+xKj8zIcLB3$J_)url+11BSeNNJOn$~p%Uc>^*y$VWUvPYsX6X>ioQ zr(?>vtMn7;15D(&!g!>r@tgD+ZzPm(YtlNQEWnvT7CHIW^67MQMZIP55@&{8#3ZfY zi6h+5igY$9O%#@^UX+pVhPUt5r8<*QYF*SX=DC?IaK-mDmTzo>!Kz7k$+KbN5c9MA zqTaORcLL#Ri(or+LV{C5&mMfVjFMm1l~*Q=1jMgnjib}JEHKLIgi?=BKhAgi2JKq2 zO#Iu->e_L(Mz;^sf#F16$8A%@k@tEDJHdA8I%`B=o=F#{&rQY=;fh5kWy^2L7bbKf z;wj>E;UsaFkaHBW4n^iG^Lo0tgMiy{4yuOG`+lmqNkHg#ee=e84CM0dHI zVp7W=ef?zGOJDaw`P4yH?_%^_S(#w_-HRB;$$ z)|%m$vTUNN2AN2ChJo=kvd66)ZH2aIox01w8DJ}?=Uuslo#w{bl?1vAL3shJZGhX3 zqp%Oh-cjC9;2fGDjq))Uc$;PFng?HfZ?EuM^CAaml9qj}+YY?Pt?ZMx>h2LFZ(s_v z!Ucc=LLwP4G7i3Bc~trnOG9vE4|nw?CyD7x5}75OG?`QvIp(BpoMkLja7)@J+0o9O z9b6H8p7VLPZ0l!>&&Be&uN=h5d$HVq&qL*kJ?wgj&iCY#r{JS4<=`WyaaPQ;Se7hqmDKy8ei;d46XR_KBX9{5BINNvpTvj&g zsF3kUHCHbJ*Yz468|Rx~b`dmg@kO>mHj zP0da)$boUnxdQJzcIZ&}&D~VopEs|Vv=0y zq;u^PS6{iWT=&vfl%cUv!eJiSt6{UW6KEVKqG6<4#c}%Rp<}Efo+*FvrR zbO5-QEv<*4;QY!s4ncQ~(Y=NKPTi^-3EM`aE!S9N5aX$)}iTj~%5O`5Ji+;Eaj6+c&PkH$!mH>DuNV$ijBO1fxG@Y}?q+svIK`^tU}upFYEu!xtjEl@nRnP2H=r*#0}1G`N5RaDo1B zc7;{Y%dwq#)$_Yu*i}w& z9`o4_WF!65P9|NZ$WfOg2QX>A``Gm`ER|E@K?)JaQ@g$g||IcabpQ6dhX*qF(G@AWHpa z5Pt)}89`pIa!&XnlTe1>%?X^j3o66N8k(vAlYW_rF^Q&DFFIf&{~7%Gnk&DG5zvekgIa2O-FZ_42`>-KS`xruP1l)f3Ywu5oAF`9B z1U`Q1Z26r(cyGCC-|pu8-ks$qzWJu|A3t(uoM>sSYk81>)_VtM!~XV%znbl8Zs9y$ zw=3~_4Gz4&|ArgO2|CUv=+xiM*1_-oF)*S%mLjy)PAO!SUV-Cy4K zx%=2sfX;^&@FLC+{`DVwL)pp7&;R%rUn?K@!h_{Fj^bZ^*JsLcl<0r)=9gzR=o(7R z!{}>YiR1CwGVaCUCxjO1I(&Y$|hvh_ROba|4ey*vBlAUq-eD0r@Ai|8@V zRPuV^{_W*$KYuISf%4EedPQ>@g?Io#n^hphlV{}3e(?S^R`@!>;NSej8_ElC+P0Sp z&YheO{jdJyv*l4&H8+zA+V5#=z#d`7>_58o#pTU8r+2wL_~7H^_uuy3^2FmuG8l3N zl**C9%QI#;hrYJ!C_HvZKmv|eHH`aG<&fWyw@<%hn>M`RAq}7FtC=c{w5G&Wkow?- zeBy(hg@aC&gEeumA>2Vz1~l|2;%+4IjL;T5owj9*lnWdJ*RrTGkYK)>i2uM*ajB6A zC1d4YV)EU(iGhSf=8>3|t%(yFZA_DLOF!lJx`YK(@-toX_B}6rX<$k8I41nkgmDW_ z!t;t_H-;zhBy-E^B}{S6RwaN`3Db zmY3kXi&M@p$~WTk%~&b}R;$}(3SC8A#k-GzZ9X&^##q{vOC+$_2N}bi^x!|84(&g_ zUUCHt>CLl2f%FaV1YQ!ozNEsMIL&9H8WJ8Ned@k_H+Kp%k2WJ{omVM7&q>q3AX4(K z*i>am8YB*7P{H#}XQGeRNJ9KE%zsUs;9)SA>BFBWvct4>c1UAj#GqE=QBv_sx)dw8 z8Z3j02{3^lxFTO8Ma8JjXmgdi=EA^$w$<{P&#LM=VT`LOH>f6N^V7h)G^l~WH_M;4 z*2dd_L#3B(z0PhIsSeI7$>a>u<(>>3BFfJd{m=q_o@FL*Hv?J+@fwFJHxn;Jw>%BD zJm&3b$Q#2zX`t+7@J3E^?Al>)U8%*F7I$L>5Rosro(|Y(Mi#yUR0okyk5z%RAicML z#&vMxpJBFX>!qz5XM9soXhPe9FWeTcUe=^}62>>vFDI>Ef#m-NCctVu-dp61?{o6u zxpizvA;bJ0`NF$0r49w3=zC!L>jQC{=&KmdLY8FGey`Cg??@ZN`SU-2Chf#vm)W0|0o*l;T2{Z+s5}`N zCX^2on0xzE;mPbgHP`x+0j3lGz~tGxF%3}N zy=rRFUt?pwTet7-H^4WCP4D4vFhD+>Wpi{{9L~o%X0hH zeB(aCc9U+C*T>*aJ&NLSF#!$3lM^59$Lg7DY=_1cWlkVUU(7dGEDW#{kE>bb&rliT zO*h5_2fKkp8*tk;dDe+n8fBL8Y&h7Pc9N!TK4nPs2GXR-9(JjPAH)VATPI~pJe9o5Jm%cywGkj%qk`m&oHQU#{#z!A4VVd z%qR!1lgNG3+UJg7h?cLVtTU>0MyWJej5+j5jj^uwpThuPUD#GNg!G~F*_XM(*csGn zC~kwRUMakO^ie02c|?dSgACIk<^;WI43(}>kW*TNx;xLNu9uGk-NNsq1JYpJC?x0!CQ3 zBHhY4eO{3Y;0e0T6~yyS7WJb3tbgOm8v7rr$Yz6n(YM(&NS8XU!y+^pQ@(ufE`yn!vx zu8d3Rh*R|}UV&4~Ui*V6M$(IFsws`*U&{{-eBS-;TYIlKHgJ+ed@H4l8U2w28QXAQ z8-)ajxK~JK@9rE1yHcz|G<~I|vCPz>CIvqiT~!0ULX|||Rpt*&?%%-GCKFd7w{*EA z>3XC~f-iY#%2TmxaNH1~1yNCJ-#5b+oq@qjhBl$Qhy3h7^Yy_a0R|h*+dubgz+AjjWChB?CF%dZiBwS`MsM)aUhJ0 zWMXM}ieF(=UyN*waH%(PKq zZQ8Y~?A=BmHg}QjWRcDA=pshx3I05SWMLU6v6fsQE%3fVUowLOZ*_GrW)W8nDGQ@Z z(0?p1SI5C>Z=G!IBwV-IwX9D1TXu`v6?y>5W8b2TTEs{!e*P`tblif&W*2ohwLFKx zUL9E7v~6L;gJ%1-43sy2%hlyQAHA;};Q;Zhu*FH?3f!A9%-?$5E}ZP$<#UJ6mXBgg zpTPlV9C?cBfku^MCV~7( zJxKe6G~V0+DpW97?toJ4mzRz|Ut z9zA**xO1E*da)dS>LjaZmspkB%~rre<-|RAv6A>?*|T#e+eN#zGlis1yBJ*TqTjxV zgJNV;H~I`tOxUoGt$63yy89;Vu=CunyJ@V9v1{H(KK&`i)Nzm--cd;9% zIL@ryOpJCq$UNJwp1u1)7Jk4Z=$TIZxOw+>;C7Tz7+?Wr+_9;nZ0>V~9=yZSQXS$f zmPA%aVfHl$wzATN@iXO1U;1h}&x+v6wceBwYW;Fm<=Hy!=q%^h#c&FzeFx_@ zuaZfR6AsWH<@atKYVe>tb=j8H`<=k2qiu*){nM^KMV55Ie>&)$ATtY}FM`V=NXB_f zy6lD*-exs6`ro5RS?NmroTp3~SD3t^#8STXs8^%+t<2+ugkO#?^^}jXuXb}a zTjGq^#aZ+o9C@tTmWTR*>sITltgdvzwEvu>7uzJXU%{E$**g;20OZok_6ZHrO!*Ru zBgk}MEdtk-v`e(j#p!K0y;<=}bXOoRp${*yqrx&PJgLy^C>sUIwhu6CFPAsr0~3_^ zQ;$ku6OS;6GjaZS;;2){<^YUkw*zr?Z09JX&Dq1DCAib}zH@tcvkv@k>ke|`Vf%DW=`JJk$5=PB14J6cXe=hmvq(} zA8=N(4L4&tcXM)*6WC__<>VO0L=zO}OUEWD2YntZaUVLu1Z0jZ7-ON>BK`7q+JD*w zbe&~vH!(F^&LCUHxx0n3#{x>fS;j&xa|jnQAwcK4_Thf$qO5hIS=Z$G(u0F|X^eB! z*&^S5&IwzK@ZhqOL2$lrXQI|fN zV7^Z>?yozDKx3Jk|Hkn_9+RlrwCCv~v>8iz;ag|2XGa$6kU!7rw|-A7;B@t_mb(wG zl>0l-9msD@e+yq5k4U7D&ut6o1A*bC zwNaZ)4fksD$@8=SGzA6$&;QkUD;5@0S_x|n{^dZ-&q6hYTSNHrc+c|Q6uJ3&X)d({ z8xjVYTC%@cK2L)L&=x{lR%u(xgE;d3&)<1h*+mC@&4DY+kG=jTwsM&&f68pGNfd)x zNexaZdq?>+=fS!<*I8;WyLLBB;~68pWzvRH4^0VLh zlJd&y_N1fv8cw<2{pg+L_{CWe=|DN@WlP;xl$T$_p6JB?Ki+yv6oGeq;_mV|unsZP zV~UjqV&9ge!78^NwpiHpQ*SB5FTc5*{lG`cInG@j|KuHI;){2c?LYYKW&8KvT86&q z1ql0Y&I4r=OMF=$i*+;RZhPB{bk}aUv;m#viXg#C|iH1*~o^A2Nw_IPgg0Hee+}q1G{PiPe$}hj`v*jxfKee`Zgt zk?$x6Dn=wo2^5b0hj=PSWPu#3Y2u(Dd_6vJL<*jX!eD$5j*)~<{~vMh0p3 zUDZ|9xusUlmSszpEz6c8GR9zRY%&b&1a`vCz%Jn|Fo&7LVZ$u5usgdubIvjcc80^i zV3KW;GdLS;$(Dm;S+-&;t8;hd*j3&8`F!v1S5@7TjN!1eue<)g-|vO{?z`{4``)|v z1(lR%6y!iwA)79O==2|HCgSEKEifuu$_K8Njrex@mOJT)n+gR#>ov+5;uU6s01iEo z>1rns0}H~_@sLMkanQByqz`^176%<5`34^bDJsJ}KFedmq(g8do^i6X$b3ofghjvS zazYJE2v`G7(^O3Bz9xiS$17~gCB7lQWeiOzc?T$~j0qniEOpASl1_T7NEUeQwvxVQ zIZB@$L--w;sU00X4bQhT$(|3L>Z(JUh$GYJU&lIT(PDXlsU1w@s zA-Ned-2c68%hbs9J*0fHC8^N>O{i9zb64ONM>*>-W3xZ88?oyQnZ(|V<;oSA{|`g zD``dBdn-*C>JT1S1RxDFz&Dcl8g6?YV+UZLQ{DGod=ezV)s@}yt+;4NvZoM_VH!?v zNG&PKgeS0p3-Iu}Kuj2hu2;Pzfy#uGhi~HsU!xkqa#2?r#$p67Uqd#5oc|#J@=wWm z*ygL9fG6_Xk$0asbSJKDI1{?0>w=9&{+rG=rEC;3IDtG}ed=s8Rm9P{3_`7JTX->e&Hr&0U(nZ>( zpS3+fFvsv7$$J(>rxGWpyudTwP3KM@@0(WfvI9ky28n6P?yZxURfN0;)Uu-Kkx1yX>8li4m|j4hTV#= zb7Vl2YSgJ!BS8X>G%B1NSM6d4go`E?t!vd=QDEfHJ zUFJE2=WbJl2_>{{gE8Z~q?ORjQFIwG$+*@r{-P#=S)`B;m4(bRR8pHp*eF1U*@0tf z=_Ic?AF(`EY3Rkb72~3Y%x%a!#|x4k%`ZXbS@d=+R|+voWup^D7iOcf9XRImI8qmN zSo)f)5HI19)3gPzSfMB+VO4I)KNhEA@bWxPtj=|&=wJosb3^}2ebu;xQh;C?`k_!y z!Z4KnQnKoy$|3Ez=pBa6W#fcp{dF!fMjq442Vr3u zK2y!17lFbeWQCncD)Cp@@wagB!M5w>m$F#D^c?1Io;rDf>W1gxL)$pt(`=XXw4Srb zjw=uBX)DjnAouBi;J-Qg32`vFV*zmp{y~iXT2_QNI`Kj%-@xqH1-Z1U)*hBoNCz)5ASZ{mtNUspE%5&mD0g-760`uPDC9~j3Fq8 zFa&vBgM4f~5hQY%hba>@wmVK7MkabHNzxFmLE42HXV`gW{Gu3`(?)_5e)5C6mA%hA zb6sLtG0B6cIJh9!>OFjfUA^p>t~+EcFEWS6HN?LD4KHZBuh`XQ-*H#_!V@Rk6X3dH zo}?E?+hRD+Heb+_PyZ@MYGx|V+=!7pGOnpYcl8e)LNhTC9QDsz_^xAk{pC&J`4k6B zMKWV@9B9c12e#(wg0A2SdLyo=;W^8AMY%TWCKqJX+}wOl0UOiU3qPG*LEgIK8yJh| z#oC_Ti9gGZU3udHcJi)ba2VY&gh3KR#wiwRv4HLjeenVYk74@bi+6I3-W5ab6h>ti zrwt*$Uv~Y~?FCm{it%?WyC)YJ%V;di0$7Y7OBnyRGwxFEQ}iqf9KxWuhfAL4F`i;i zYx5YKzx}pXfExxx%DSChylWVgU1&Ir;pfu5km9bID6y^rd$$6AUuH8FWY|L)* z-RhiCDZc$p*Jk{bKF*!4@U^GfxRCGuhcL)d29H6`2>{fU@+_^!afds6tvqP$E?jpf zzIe|C;bV7#Z>Jv|I6DFFue2w=GSkL(47UB~es{Bz@aimJz<@(Dn4}CElXefWdv6ep z1@Ii_$;bo5>v<)d!zmeOxZiep;beQ7w)*gsCmF&xE+H;3ND4m{FWSC(t{uWK$~It5 zL)^g*YsQ}%)ET24W8wE1cJ=M14<8)mC|Bxn4E(0%S>!>VF2F&KytN)iS$JVTHbuI1 z`q2UOut*P9sUR>YZwek>He2*gwBJ?6o@&3&kbaOl^hyX9X^nHo=fLz)#-`}}NONR$ zu>J8pr`qVXUKgOG7M9$dYZ)mt|I;S<5*4MU#UET@ zaVX!ya(|V}T^u7g*R{2+X{5H@S&u;7aDFr9oY)4Q@i+WD=eR^?MkH0Icp6?@S(uA~ ze|~nlJ%dhoV$ZISX8t6NfL+EKv1i8jw1r&0^7 zn;($@H^;?}qvkR64tPWf-|8%+pQt<6bJL{b%%X@13Vk8+@(APdBjh`0Jy5?ZpXgFp4xRsgL9-n53-o%2H;d1W1ZR_tqKC-}+wh+dqw8?GTKKA|Onsbk3; z83-*?-#nvF=<+FUk}f8*5`VpRXRRrHRU7w}O^*z~T>e<(%BB{s3 zF&~6*1x08*yc*036$k_r^5l^GD`xO892ajrh)_Nz>)#TE?=D^98%A6*uX-?Tg>S~H zbbtNdXG5?Ny6WMMJHOO^VvYI$A8xdfBrkKYm>y8IyK!s^uCX_kG=n6bVMlQz=ee~$O42Z{H3xq zPkD?mF;xcmBIh{pPsh$v!>4z7u2WX}oy1pm*?u!wGEU?GFI}6ahtCAknsP!YZK5Ot z*Q{oh-^>>wS}U#Wv^A7E-4P8sQN{y92xJWjS>Y9bx-&XlrJwOjxnVWp&nhn`Tn?Tz zjtR%MME^wjYXIQ!H|8rFSzIS-zW4qLe3e7h)#&fE*ElMKz=?sZWpbddNOq-@-wt}j z!FUdSY6>L=xMW6X5u?goAt{F>Q$ej_(-lrNA)|Z*^mp~zk>`#c@-x0ia@i3VcxerA z@RJhuAk1gWkN9?#PS>Q1utfus5VKsRlIH$V55!wWq2RzlKjZ66tI}PbUuLkOlYUe+ zu*rwWqZp(1?csPBjt+5*;~-^;vI)sL6P^?`^@NB*lojcN<2t6uKL=0l%&}z{-%>^a zwH0Cf;*20ch?&>?RM5t+esPt*5euK*-?ZeCv_(_-QX{VuKbuH(?%k7u8Z{-7p5~9A zag7%qf*)J}ASa!HDWi~O;1$C*{)*Yu8TraLrjN1{xP4xFyMla%i5`qdI60Dsbk>fD3fJ_L=zA`Sf00()jo3dW1K^ zcp<(?j3OQ}{N&w$k9*x6Mu#;$=0l1Uk(93k;qbjq&t!)R5<>Hb2 zq=(LM^O7$Mn|N>j;N7Rzvrp&yMjiRlxuRoz#7M0AKt`Q^JvJj*wg}*^-S&N#DCvZ+Gunpp zJ^q`X9U*lUn#Ys6@pelXkVi>3@3M&GVeLXCnS&P0JbRew%R+ z$XlUm-BrZI4c$Z(msoiCEJ^MCGb}D-apEe%WSR+N;uG#lV&!yCw$xpKu%aBf6a`4- znCwQWBW1fXsmrdz&wS0%e5>V%qI{+k)wnJr^Y1XtliDvFOzZi=q*eJ91Fgq>5pJLB zL{+1%O*)Ifj1Nq|HSB5J4Honh8aC_;2S_KJf<;}}-@!xnBSAyn!_QVxc!}Fz;Yesc z=exiQ)L_vC_jOsJrgRrX`WkR|Jg5=V{!`XYAM8L2Cnd8>*6|>L)i)5vf8$HxZBC4h z8SlzVGFujNbfMQe6^&Q&vQ3z$b4fjuzu)<1rbScUl7>&b@{_0U{@aFPcY?ao;3Ni# zZ5U(3Qg>y@ROu}ouofgi?*7&oB$tkoM)~PN9}QfoGxJC(tB%40pqVm) zlWJyA?}`d+=`OP;4+7G0@~u~#6f395AEBQ6t7Ixl$0_0&T=lh1P3ATXG>n67egY zDnU{ueV^u>^oeW8R^LA6c~3z}x2+Oy&oy6d235`cMig)Yf31ra&pL_sC{?7Ku6ozBUGK?W&lrYzouVN^f zaB&xPo-#YeK>ko?!x;D$(aJ}}kycvGvU}H^Wb&W)>Mm=bfZ;qX!@C#P zpur=La~H4oOw!kmpzoTQ<<3luoujkt&^y49rrZUoF=K`m31_H-3wP{p7o+1F-*;g< zwP&7%XDlQ@vGCSc-`0jX#g2|U1koUxMPL+C)NNnx(91PawlkcD8poCLVB`Qy@(;fE z8b}8BBIvC%Nj5?QK6&_PTi}RPcLdx2WQ-9xz_G70)8R4oX)E;q_Fq@M;ChZA=RQ^i zs^o?+j^P}u*4?6h6QIGIf9o;~`MFfgQ-(YyT}9RFRDOWJeY97S*w<@Zdg9S1+HTsT zMiKei6xTOFm| z#@SsCt>-bOjxu*R3lBQ3Iw21-?zx=7PmV-}hK|!?paM#CQz)4%C)M8$A3D)aaR-#A z(TGthLCkzjuKeVUUlQ!wy}ONam-ZZb$O}0N{OUbB+7x}ge7cLexCA4(3-s10|0`a4 zLHo?tPNH{RY}0Gh#rS^GPO@|S>9&Z0R=eCVJT<_s*%22{tsjly$Q*UbY1@)AL0akL z>|x~W5bfR*Jok>AZWmuU*}i=LarC0@;$=Y;^?jCI-|B8CDf%oH*|_pV2E#>;^J+Uv z*~&X%`RU@7N6G)>u1pdq;%g>W)K>E>9b>?plUC^RMfJZGbbe;WDZeTqxl#s=lyj#} zwDDtySrCJ94tftB=O|}*YhW28@S!K$+T#zk^%JMC!y?}=xt5){n6~F<+b}!N2i)oG zA_9nK-5;P2;8tdgq>Q(a1EXw`a@Xk^Z8rB|hrYBgPw7!MQaJC$w!NQ)elEyU97%zo zyMZj9pl=h2b9}Cj(Qn$3kIZAbM2^QDce{w!+U>_D9^s!109L6aL*=RQ+T^iyAjiFL zx;(JAz-P8KuVu9Vw@>h%XYaj@d=x42b8foCLI4+4^ot}Xkr%JMcATTkceVfgp{Lt% z=MzGfX2FcF)OpoV##G%{*7oD(91H3=VT}b0Q;R3s?27%s0<>d}L9kf7{{j{XCbqTNySS$ z#4hrA{RKnQu9P+Nx@irNAJQB;}2~jK;_2xK3Ht z@ljG5v0(X#EH1__@ZGOoj>`JDqMp?yphh+VA&iU^>TX@PdNavlBAK{}R~c7!1=+CP z(Y)FehC{l;N<*$*RpVGs!t~DcNmm&6-p~2$^QwIMuRdz|_H?Bn&vuDIC&p?eC)-{u zoh1}K63>+;P)zt-fmTMJ4OP@dk?lNER72Vv!tOm7Loel+il6+k|Ej%$-IPE6wp(L( z{R@n43ZE@N;4XK@t+)4n?m-&=VEei6dv&|{iVG4&W8Cd8zAS(4(lj6A^zINV&wle` z_mURjiNM$vh15_x!EWMT{QXb0r;bmzfApr8Vj$j^0n?AX;l}oT95L+iy^j<2rGrP? zBN&T4=Ip8qcVk$-pxwa5_vYI>8||*wzq(Dn{H8YZmd~|gzxUoY^BH!i{>Ho6@%yp1 z_uIdz?R)#1+T_jb^u7F2jvJxJKF?{u{;i*SdyWPE9CyRs%^ku|V!S@e5dkMyvEu5H zaJ$5XjwyVKxk2pnApU>wX=PfU&|;$pK)|`{dOxdP4(!{3fqY-P<=O)|X8UDV9l#E1 zXZUQl#vLuok3ZdJ@BDl_@y8#|y~hr~CSG)H+xH#N>-*l?cE0lE&rZ0-#}$Pi;@Ioo z{@|Aw{0+5#`@S!<|LY&VF@p5=n=Wsca8%79R!V6={de!V3qCv0-f-jP8xS1meevNV z?W1=ez%0bxWdrm-}*L`6>A7rpXx|?*a7!=8aIx3$toq`9VC_KH7Kmo2_bPpfFA#X;I9;bw3)0pMv(^o z3{YQ&X26g)@xutspjGFzMqQrp-RWy4_8*oh#^DgG;2Z0?ob(!jXZl(QVY_sKmR6(o zO}s~W%}c*3DoRblw`F3*u_(}PJMb(^9C5Sz47{8airpA|UbObO9TbKfndNT7l(S1| z%#^vqBe4F4Kkj5JQ$ffRxPt9#Mp}t)21|V&;@aoUQyLA?NTj>o8Nkq{+!5rvyyjrj zdb6gblLLrU3H;`}6DFOYh2_qtvjf~!!QjRFg$#Cbx*1OcOyTCh+r<<1GeRjy!0KM| z*m&oKdayhi-W(fbuuMArTLhKpe+GD%jRk#+n{t+azpb7GCrOYMw#WFuXGHD1?lG zOK8F>M){umYs%+#p#OEt-=`8naN@c3J>kK*kLeS++zryV!T+m_U2KOgVv$}>G#uED zp@4AJy>65hoTjt1?yNJu?Q@mYnjX~{ek1HOGF%uQp|k>Al@O!0QT{opl8+2?qEqj} zg;$`r`NBO+rWqQmEo32_wISW*br)u+d{$yOanT^*5lAX`+C+PeJ&|I!EcW2nU2f{Q#FLC`(Jv%FKN@Tjy_wgNNdqCSLOXjd7- z_rm2b%0^zKNzmt~?y|zuojSw{y@Ntg$XDS98XqdeN?wIDX@}lzZ;#>~-em9p`b$QB z0n10;>X|q;;?6}zk*aTtDG}+-SsE;%rW3R#>@Qait;j08}rt3SUZt(n)1* zb}p;fRUyEt9PjvE=iS_mn;jQCHP|>Yb|v%~j)PS3W!JDMtJgrIk@{VafuUuQ1sYrn}mk| znO->d9Ogzya<~YP!l%u~bkTk?yqP?ghaaN_gFg^bR+xgKr z1l@YCms_$I0|x{S>qqPXgBGEZ6`X>sz*l?>rT&t*Tt$x z#FMV#tMPc8UEHJ06$aU997CsySHH>AwpTj@NNSmowemK%YmvI+sbo?4)GK)d-1Y$o z96u>%WuJCQTI)jyz1xT$58&%z8E~d?p{F>Xrcd?=PnD8_Pcb)2PyD2*bnXFJpw6?S zj(58ihp?u!-Me!q$~}0=`G=`Az`K)cjw3bAH#8w3Rp4PqPkWl)|H|`EoOM|wKb^CW3>edEL=xfN8IVuwfwK1gJmr6Vs-$@MO$2GD zY&5jo29WN%e^gnei~oazzxBeSdm;Mfn>p53550%>b)QMH3FYg?{W^ik^8kQAf4_M% zc1%N{43YmTSm`GHf&~h=B^j=Wmd1R__rZ{H!;GrqnAO zGij8agyQF^4rU;WpFtR`P3~)xSKq+yJ`7mwP{Wc0JPmIeow-Am9Y-VFaXH8?G4Dei zW3iY!aMn12)tzHw9{EqcD)7}_*uRdlOK)gxw2h!tA7)X?0P=m9dLQEYhartcC`nzk z=Z?Zv=3;~VjX(=`C3ymohFf7$=rYKq&9a+0eFC!M#A;&*AO0ES*j@^hyFNd|{ijbo zcATR*m)nyhe~NlprotUNr>#J*7hHBBM$+~6_+gB8>}*wsB5ffwzt(HD*R(mAMJJ=- zfo79)6KDyco}&-BobM)W}l|9=`6fiXfS>uf@w)an<*NY z#5#>mOX`q!ocJ3;JWm#L_xuW#CM!>2gnNR1dk1weL4W6=tkdK0dDtQ{g-JO|;qR^>zXSQWj5;sXHkLSdbDNa*_+_`ELPs(C#lmk9!23 zSjDLI%qeyma_8ne2F5iOi%bq}hZj~@gtFA0e2ODlISP1$`cXH&#KJF6ycxvc2wId0 zTGCzz;G-dAP3k!r_1RHwctg5a|F$UWae#(;8XjdiS-TL~aiN=c9?=L0jf@I?O_Ms5 zu)wsgtye+W=!6O>5>^c2Ydks(412bdmjolsa=|XIX|A2`)`vA%@i)`-;rfWuIS$V? z#!hpmxW{(nad?W|owGCSVxHub0_tvYzAYX<(q;}l-IfnM(P_ti81bK<-&mWqFuu2L7X=~{L^(b1We*}o;5aI=(gzJvthZ?CLj5faAUq$S(*yR>U@GJAD#L6Zn4xzcBpQwfw4 z<@$o~Wqkat^DJfrq3B|1TN+obZzVik348~CbA5q{>@SsDnZH{M>8hY5w(?#*<`_7r zn^8`A{JAo0fqB0tJjpGgFm%_JIJswUyK?{Tw*Q4Uu&`*fU4kqfICZ2QWz*rq_f51X zAAg+o53lWqCFom_#ySlZnhIBB|#yc{=YoL`leu#}TG+iAGO`s1Ba zlP4b%GUaxz=lHzS8*CxDFw7}@f&V!Ro(cs*an=_yMP2zg^|2i~O*4=3!~Fd56ClioOHhlqh^c(@I02OsP&l2V6HRyERV9nO!l#NIm;j2BQ=kPp zzy6p;p`{|k!3yOe381KUU|!n?e(v{ zrQMDZ?kC=UYbK3feDrYW(h;y=(4aly>pgcq5Ml5$-~Fm~)8+d&E1y^nQnxzqba>Zi z?r(qasrzC`R;Ya2%dXCG&7b)4W9`wWPqbfo?_G3i7=Him?HFDj`uUaDUE2Qfx4*1?*KIGz&f=~44UJE>y>EF_+wtmK+w_M&)lPiy zlWp#fyW7!sysw@3(~q>>-}K71_pNVelN|lL{p!ox$euk^P}PuwtP6LKx3{v3)W2D9 zzyF!3cF$u++kHW?2Av3~g`J@8#=Gs)zBAA^Fu9B+Kt1-sgdF@E2K@%`l(Q@tN|qd}gRr2~xBLr2=u zqfc^7^PTO)`#;|1zw|ZcLEGBIjn}g~nj@RP^IO~Q+h2QL%K8+IX$C;j%457;{q+N{ zy`lZVrypn!J$0=8&L{3|Z-3==?ads=d<};A|N2{A(ti0}e+l|S?Z}C#_Ve%fWc&3W z|Be{;g=qS>zT(>UD}Q!Dd-CWs23ZFECuX15*c(GHJoCT2^N#i|?tYG;_k0pVFOOS( zF}$gv_tt9;Fwt3WpZUz)?ce|UyW3+dAn@FN2Tdy2>=aajT5X8OOjK>)$_kx3;pGum z?Ye5!`{lNAPl>yC)$wJLoX*LXjTk1KosL6fg}mY7onxSZW8Gv`V+UVZ72$`Rs}UEd z7{}~|6B&q%;+_8;zm;r^VUUPMmEC-1^&yYW4p)*mx$_~f zYtRw1iY6TC9|Z%IoG@rBKPH9)T>pipmKRtg7P@hD_83MN9}WAdFWwFA^Qm~1PQRo| z-r$p1`gLjg42YOxoRWZv8lw^KfnLFqquiXGn&C(!Cc0##;@6#S!M`#PAP#)+6c?(c zbHzhTZ0)gsbgG%6bm=zm5f5C#__drVeD7(%*1Y=nN|2Pr1zoub4=uq*_V74KCl!6U zRjm27)v3stq>Q61KCy1S18R=@aU2l3f=-o**c+DiMR~lt!bM1{v?nJF;gzoJ_9v4l zcjet#cju`6#EEk4jHK=f%g!cni(f~FKAumD+PAYL?mSh{sBp2Ix}KKdb7es17b(Ga zR^w9^%QK*+2Y#zbPKcG*!s!WJP|L@1)xQc&`77w0-=q;7g@hdW6CaO)+{;~L3yTX3 zd|mAiz6{0(SyAHA?xl_rb|3_1-UQV91qWkvm0l4x@)tkdCWMWk^4~&RJuK7tPOtN# z5yc!g<60g?6s4nlP<=CK3(WHLSH%DUz(s+@fL*1(&M=RZjPg)^L=Nl3-~6&Dfbc;S zSN`*4gKZ)gBrB~v>x4@O3Q7yTCqPva{smW8K8RJQK68 zgWy;cDhNc3!kvmx?hIu@FKz~#N`O^|C4Gc!d5F(zeHqhwt$6XH?>y}hX9T#Lrg*;S zZ8@!<^kI=JW>NAxnA^6bgme*@^#hD3u=L=6V2GN*!tmXElECOvn0xJ*bgrz;Mp0wE z5T)=oAx>qJSeHx^Feke(zN>fzPh;Cc7MoCR(nJ;5;UJFkw2DaK#F-BOdfd|f@hjXi zQV5o&Lj=`?jfC^u+ofD7dBNBLzrf~ceS|;Et5RFMkO)bdh=qqWhB8?L5I6~|WTW{S z4ZQG^?>(r?2Bg=-Af&?JUajK6iJ_Ao>b##$V!X``^cr&f=FNfVt~?bVj$>?R zBO}U7AduN4^ip}L{M18eIRadR1|XDAVI0dvIrqA|B=sXr?13?uvwH-=mN_ zJcmi}r~QnQ@otp0>ljDGqjEA|!ueNNi!|x|!9R~+QK98uzFlBK#j_yrn{YK|PkONaC+#?8Vs##n@l zkIp->i>7=K*Iji{Y5`065!XjfeCb&(G=V?VU01J6ON380n-($nkdJjy>g3IN0%I)n z6YkChbJ`{fcHX2YJ${sL!k=QrzlvtlYT)tuBXAeM|Y z{Hyn_&gwI1tlR8Fx3UsHSdtv*ebMs;3@wrhq#%0`uyZ z&Zja;sDZpen?95{_*rLpLaR_UFp`lGN$bCa5HDVVU2ypga31naVisIEDw0n*Lf8UF zijEw7q)nph8r|pBP~?pfM)sIQhA(1-bLUMqkC2gVMZAtq&(SwAhp}x?$L`qjRDoIb zhLk%;otrbCF046?;(Hilt9^w$nfZVi6TxMJ8eq<{D9HY9Kleh;vul3^Lu>Q~gx7db z`knVH%&0l0hDR?Q1(f78xL?b&=|(w6O4@><=#pSL!%h7m&w$5-f0X( zXVANP#53mN(9Kf?);P=4@u5bwDA^rf5Pyv};|^rYLlvjb^>nIL6yqxvKsiF1(_AJz z0I$stv*?*V>VBrg4`VqyO?@r8(1gBUS-ehpGAg4kH9)G@P%c|Xj%nmau1{@a2pRKR zL>W_yobZ%MfTNy$sdh!hdQ;kD6^mS#aSK{Ee)y&SQxkJ7i&~ zLSDL&W|TT~Va}?%`?`L`G0htDH4UilZeE49=HV3swTm8@yyre-V4bC0E@GYK7}F(p zw6P<2i2i>YhIdDx-r2b7?qB#~2)d}xnxj7)>BigUV|nBo+mmH=!L&wAdb`j#ix#|A zhA_v?j*DO=3ePtL9<-kraDlaD69j*H94GaIC~xhsKWW)%jQpur9pj?&#IrC9Lsm8};J+ zOnlRhiQ`nz#m~v7FiQP+Klds-Q7v=kd>Wgn>Q%=3N6<50PkY(MVg_mw83Ih|Vuo?Q z@2iw~1--oZIffFa+Px#N4VV7yJh!cQRFOwc6OW= zzIKc{f z$0G^@oIGY|7lSBWJn)mBSJ^=^efTh^CoHy!6GvmjB!C5+?4svr=LPh2tF%`a)11Y) zKKA(iEZAVv!JY$cY41hUA$sZduX`lhQV+ih>WvHj6IKGyD=T4*~)yq0EL zJBA@|*71_^K`hK4RBSUf2cSmqPzP&GXrNRE)v1l}GmPcDqc2H{YNs+BT$MSv0?$##c4)MZ z3Est%oMyp7rDLqPcuHNL3!9KHUg2s-c$$R~?t<#V{A$@H9i!vu&c@kIKYroGZJ7m9liUG*14rjyJ+!YqG|U~|2On++ zJu)4GvAUpD`daTk_Ad5o_hZoK-sywfDZWg5cVmjKLax-7qJOE+&%kMc8Q*OhkC@Odve|0gUh!da~FGZu33Ce43p+;ynhtSn523QFYpk z{t9<~48J8sLEIYJzgywopbMC)WO2(j{Zy&xi@5dn4Z{06(H3bm-oqdtIdOmH=!y1g z+|Rm`qib%t`GxJRw_KAI5dYgBf3|(~$>T<mPsi;r6fJ`RVo`2E_0motrz79sJyJ-(&5OL#J}*#oznp8`~a^T|VE9(10)aJKx>* zyyctQ^r!A@Q-AgsZRXB<+NqCyww?U*Pq)bzU)y%S>9uXwH@%7@ps#7$F1d)^1Cx|> zvm73y^QsqIlt1C0;)tJv7$hI$_~1u)KE|=dhq;vd6u8f^;=_9q78q_D-zgWV1LHSV%|*B#Cp#;?b)do?Ssw(fF% zb`G?h6DQls(?{CEefPJi4}ZE%ed2TZ9@)FQ?R?#>ZOGa&RDnswd_OJfnGwt1f zaUY$qLb5}ye;^1nLS1)YZ~OTldVTx0mtK{@^&^iw(SGeezPmm0=+h)~SFQq^0Xc(Y zd0bg&N7hfkVoby@;Q8_C;L}cHfmLq7|z>M@m` zK+nzxpBYSxKUjmaWfYQhsSXt=Cg{Q}NA6j`)0I`i?`3@Q0D_Bi1SB-^a%Ymy>JYlY zHJRwEVn8Kv42a2`fsNUj5C4Fce1sH5K6pu6SC4PKADD=I@vjC^A)sguaw}Qw_;vfJxMbBc3>j zGtr*cRg7l`>wk`;Y;jwF2{!y>i3u*8%#ob80w9g3Nk@0ysDxHQzUn}gik)zF9wm}B zDxWc7gO648W!jtcKm|s>=*wLva}3HIc&yXjWXMdYfDkGenXqcF;NvH-l@-0qTVI|H ze8r*S*b<9|UCkR;RKdUE*rplGvFgzQoykU+xDSj>AVS0@B8BRPh&?Z3NLKK$nHSj<^A6GMx)&dK71=4 z!VSOr?gu}4BzA@O3H5)LJ14#nasCjwdz9Zs!h#ZUmYg=rm?#7rBkd*t0<_ys2_B{DQ+ z))QZ=-lsAIXT50T5R8V)!X!WmB=S~9B)=His2h*rm-01UB^60jqnL9bcX{eFqw>nQ z$uAkTX(pV;Rh?y+5~7GDEWW~frp8e)zn#$P#54U{g2h-!Ug=eM6{>fV4e=*-(#&zb$2zKX^cX?=PV>;ue${aO#B~MhWf`-2%!0=A z|8#kZt(f>{$_;~9=O;G)w+xPLw@+ZGlV2Dw_%zKn{djQu5I?)I&{m}^M$nOl zUOawfMJsOsY21}io^BwWM(B%%&|tb++IzW$)6+$xE?3j>Z7ty+nZzzB<{Nkh7sm|a z7#J;_>0(3$unK@t6bsg=ifC(P+{IkR13%kCl&7Q@w#FcL#}LdP|Dd^dM%JX7cZid) zJo%;!%JkFxd5^uJoJEbhVEhq}@9ws5S$9-t*VRmP+RFY*(0AW0FW?jAlp; zm?k(UjYSh~4}`o$%kolvA)R+rc3z=%=w=$@_5i6mWwP;7i(Qy?>!LvonTo(g=HS-X zHUw^td*|CLmK;k15?-h5z>s$}c-xNTC+TN}xu0A7@J`;A(f2Bty>mI|3c&}U@~Vb1 zX`v2OBsE|qGVz2f&24*We`K142&NN(t}Mjh)!%ZK*0O{Sp+^~5@PYSB2D;!tmvLdo zdj+A(FE9exx5V|=RFzlWx)1}zv0(C2?-0Zt9M+fN1qHhF(K>h#l5+O`j?txE`I)M6 zs=PZgk@C6S7SPWfq4y2Y9&+#b*MAn-rMGx)&7E&~r}NVoWWg=F^BwyLHHL`G)V)SM z=Us^tG>Y1?gOL3?KZhP$+ez_>G^%v<=DTAC_=abFRSds3O3zF2uJOo)h~{Ms`E5J% z!_)A~8OFsk=xkOW_*&b4%S0P>*ChQa+Z_U3E>9lJ-LfN3UdP9=0=oIMvti0S$XMTY zC3QUB)J9}mk{%kbTp+C`z|_v?FpYpmwNo!Qa;%=?$l;j_CLFsDv}3eoX%!R>>tdPrOi%qP|f&JC01BDt$>kj9fneAHMdI36H>NADd;j zmDOUUf}5wWsmCA)CscW)oKbZB69PwG%FlI53V2f97)yv%oKig2bDMQ708ji|r;hAv zBFCV|0CPp_HpbO1-)yw7F8xQ?BD=D^Lox(`yW z^UzR(|0(=fWso}Zj(1U6XFuzYTxboWenr|%~ zhJ5CDc7R=!F6cPpc6S|!5yFCQPpW|@fM-9e)N#Ru<2=8$WapF`#*(%fID|0gBl2QK zC(wnHfq-%EJrA`HeBdwJ2^QNYE$~Z@Tfg8an#sDjJ7`b`g^WCpVT$jwoLrCvw7i3U zIRgb?d_h4=|Gd7#kyi8?#7MO6w-TQF+k?{=@=@CIF`aLfo|m|4JLmfKVLs`jcxU`L}?`s#nV1K*l<*#Zl#lG;87w>O7FS@w>*#{4{r{_5S8knXH?$o6x zM0pf2BjPY8NQ`XX8Kd6(JUdr+v4fqt@8M^Tx5rN&NB+|G z&6^y})5Wqo*?=)d`?eqVKIItrX|MKE&iynFo)!rg=fLmsZ;+yZvP^24zDAzeN&c_B z{-XAl+po#a_D_83(RSBSuJtUxwq73z64kWftDSdkJ%bZ@K9r za5~+dIDEW4F-`wMyY=|?A$G@yt5nE}r!=H)2MP23Z5Q=UvU$Rzsz*7J|McoC`rG+- zoVpO#734|!G0J+~rP!n}B+s(lbsDrNPUtC3l~q|Zgui%seD@-B`}CLD@jw0kcI!X= zQ3R~^j)T<(t$6<1xvnD@T=1BA9XO`M5{>`G&*c}IkfahyS4Jq*t=HN`&&*TaiH=9` z!p8+30-=Kp&hk(>(deDWaeGhj3c`7sI#%Z)jHNm?L8FLj)pNDTA1L&HwePE%_3$Zosf9A*kLA&AltJ-&Sgt9Bd{_UT9u05gwj)C4ej_(BqB^rEP`SLU0 z^UCIN!3wOc?*6Avw%`BceeK@Ij;IZ3;|u~kD%$&fUFrTKtb#ePXT1IC9S^r3zWs*w zk}EHOF$UVlzx-tTiL<~Dl8X5 z-QF(WyQ5u-k@u24lL_z3_k2$~gf;IQIC8u#J#?_m-0?+r@_w!@eC-h!lEL&9m$VDM z@6B!3x4fq9!RY;bck=e|9aO!8-P!-?&+l#bJoI!M;oQ2fVEFy1x4)vj9K-$Jzx_q+ z{a<{fy^meopXDg#-}u;9+RuH@ZNd2$|K9EGpZ)s}wa1U1WTnnX`@o$KX2A8|f9GxN zq@HMZKKM*~g5$CkOuKhXw9EHF`}3T%yN|^Ozx1vxN8AD)U8-CI1diK|{PTAO)ck#Kh|w zvTz)@3f~mH6c&WXHU&P33MRqOCd$R0|B_evr@R3o7-eutk6H!VWk~vDM7&5`+1NDt z8vqdf%ShG->TQB8GCHwMXeyr2!ehalU`L+!{yZ~C=(06-m6>1S*Dy!;iC9V+;ZeSL z5zu!o#K^m{uM|esCot&fgzLjJef}L#lT|>ySvqK21D_Nde+N1lG(e0TAB3OzWcBv^ zD!gR@82rQA%igylX#$5F@sB*VF8uS`^wOg~L(eLYNbp8J9oE4)zSeUhnYv(*(2U~B zx89%i+r%>8{N*n2E8fCajN9JkB zyPC*kJrk|mun zYBy|pk-(Fsde_6NXZ^}%TV0|9(5L0Lt(rk_>f&ys-$-kG+KJyVVK8S>VgpLIB0s~6 z!r0V}0~_F;IurVmkCHgYX9CCA6&Feo=I#%{Crb-V!Ga^NX)8ff3h7Z1BZH+YpE|<= z%V&9Ye)NmLlMj-#ds=7V4bz$@uCGU77EQn-{83?%T|l?GHyml}v*5=c9_x{iXJJGE z_(EPjE5G{P%-^*7^?&&`U5B6F{re8ad!a97%dP}uprBodW_@U&b=+v#BlAeAlFYK@ zICBh>Bb>UTf=`(=Jm`+uQQ|NjWtFy-JI1Q*5#p)n^2!xqI+sFk$txNe92By*;wNWCKtPk1SxUouObI8B1G`7M9UO{6-OO!HKVuqp!C@ zfI2}bBF#4Hm{h4pChxY#h)=@3lkN=0UdWY6d@#m;2*swd(|g{0Izd*(IJOn8L^q8M zWNaKmsb%mR1PmVJNJDY9OqRvCqa)PaMm&@7)h#F#|Fj)>sB@$a{KO+aLrS@m(&DWQ zGv|QvH^onxl}Y-LuYHICE{e7c#uM3~n>?V2x1A^$I(k>0DDsFJsHq#030FT8Q@BAo z?I8>vapobO!L{nO0{Bg4m1lU>vg295(AT(;jFv63odY$Nugwh{Ty`>8W# z0WpsuAES+%pJU?T;q8$b-cdNrF@t8{!c`Z|sGXDI`iYx->bLJ=Tw_$;@$d2X&Dgpq znh?^Ch4S8|GvDk`APad3Gy~OqBujA%Ir)K;9x5S=GWL(kHF2rj9Q&wCmtMAuaA1;x z2TyUU_TyXUh%B8F&3sZn(!b*OSR@7Id#)2}q(wnAk&x;;hAaY#4}wB6Ed^VTb&tsA zQ&>XT_}K!(jQaeFEQz_9_;2`To6R4 z4Z=fmgR(d9O(VbLS?M}3Rfk4Oy%Yv~C0#*boJ5%NF`@jd1FJqts??#*;6|AF=BP;0 zgrD^TM@_r)b8~Izq5Io`TXxY;6)$<+n7i-f>tT4xHJsw&+(De>dXF|2Hm9%x2Oq+> z;X%?sF=`g8f|SP`OB{ZaZ{PMkLD2bvFdeU-;G~W9^*R=o(Peg`s=!_a55TjS45cvh zMO)r7MkV|Av}eLRCjaRZb1}LN()Z1i;KYu-Y*W6ljZ7Va$0vX>&>mvP-${;uokT_) zdg3tGdm-bI>BIE(%7{bcaU5I0Q_CES%+Zq#S>Q=bGag4v&W?2l83)$la}~ZACV-o{ zpZHJ~|JefkXWwoemo$I|VYEmQz*!RFhBlOoZ}YIMS(J{UvYllvrCh^L4BXK>${2r? zzDyq2#?I*#1}C=Rb>yH|KPV%V4Od{$ecLN9Ys*j1wL9-U++jn#BGWG57|zoeAXiU% zUn_<&(r0X#T*Nn3nrD#i^4BbQ#y(Vj<2}U*M^riS45F50jk?M>B{7vT^1FN`Z@ADA zpfE$Igr~F=Im~t5-jh(1Fc+#FmR=LgH-614&&}i&{!T(kDGtud4}VU_w8-h+<0rdG5=MWK$5m2RA) z-Uiw2yUu)J@q&xn=N{(y+aGS*_g~&#^TTg#qnB=PAOGn8j*JB-c+EMi_$ucd%Xy0H ztlQAZW{fem3rg+d96P(HSiP7sPO1k7@EM_i^sE4*LXkPl-< z_;=U7{cWCOs+ZWUyq)9v$7q*(8E5WtkqD$_|AlQCd{(qGta2j6nK@+0D2s|#+mpvV+~0PH)PuGbplHvl zGLUrk!Y&+C=6Q18RaalqZhZL*+SJp>Yo|IVxXz;&8dlFh8<+p6Gzd})Nz@5uVFCH; zG7h7>F1T@V&nN%#YwZMM+b1xzJBD$2*BCVSS^_y>5ZO3@ETK0>SGmw;*$j8`(6P3Y zdOFSO-zT3r*zWu4GwtLI3v$SFeo#9O3jk6O@&^bbv5IM)Se|TudjCi}^s66e$2n@}OD8zZqT>m9KQN$~r{%~ijw8|zM4E4j7QKmS zqzf){N}0rW5$q9>?tB6uVR<)>pB*pi7vAd98$ArikN(1v?1@fx8|63Nh9d(1D-8TP zSbe@m>)VeYg=?G42@+;wd=c4}RYpz}Q`#JhYK1#-NHr75ir;X3M#(_H=Q_Wog&W&7 z___{d1G_DeH^DsD+qp2m-j{>P&>k=WZ=rDg?SdytBmBX`6VM?;t{Q*Xv)CzomnZw&_pb)n@erMaZZ%-S4 z=?!hyt6$nCUv^U)y$ZYz?Bl3sj+RD1p6^sF?PrIpe>Y#b|NLMCCc*@P5(6O$G$$9X z+^gdmst!gG03P)^&M^kQYw&e|r4an2DkKWVnd*V38{#UUh{Oa~U{NU@_T@O6nj&UUSuYTYQ9OZmf^B&}HzUhkgi+}(2 z_CNmiC&No?bgCct>_hFIM~}5@FW%Gced1`F;$GxQI=k;-p}|$$ue;T$@Vtk6U4HRh zpKkBX9lg)JqgO$98AkD+`QF#GfBbDXN1z;LWsf_0|A>2=-RgJr zi=vV=>9D}bfspS`3Z+T-zyJV107*naRBTTqRote1+D27|cnpg70W!p=`)7ztomw7O zxmqTLxp~H4#P~D+a5eBE6M^OZC@O=94e~ubI=Mv}SBwh7!MIMi)|Ue@ODAH!TlcHL zSN@o9@+X}WM)9xuD7a2$Hl4T;pX>pXc!?#>=Qt-|v`yrc_&8fA1*_>LyQx%Uc6gc= zKNXxFv1IXZlgW&9BWtd5HlxRjxUX`bC98~7G*>ghhH!k@0yOZ@WXVc&yyd5IDv!#q58V2-8B5+FMn@k9Xw0t}WwN1+E%~}xf#v4om4P+k2?pjx8vPuux zeTLQ74ti~?E>6+_EB^tKvRImO{ac>$fl-K~a$%egkAqUFG)enc(c%>dw)+lLcHPm6 z(+&fcuprdYKRg~k3*z6Vi+A^VZpdbwzm2!8u(#$J*jqg0cMIw}_pYFyJWWtE!y}z{@n2CpQiwOc- zrI!^{UbI*0EdNNaj5*`P&v2l5W8?txyC$oa1|E;h>ffs!DeHt68A=>KQVvt3P`vnF zk34&vIuo669QPtvkU1#sz(*96=NihKNYX^B%1h8REEhl`$l zmSh7`(D!~fglNXcPDRsyvvNPN%u`1K^E=-O=lNY9`s|eACvLjj^T}AlBQ#yK;TVbz zA!A_gCftV7Ij3__R`1=;M49+8#8M#pdXFl$-(LoXx!Hb4qpSpV;&=jt3K=4qWfsXe z?ov+JZz5ciPGh;_8OP_+%jUYyN^Orvw5qN9+_Mc`R8TS$igS#ve0FDvJ0Ij&`+e!{ zoXL82{Fb})D7WJkSF+hR3c`4q?@-C6Rj&93+FA5tHQ+^ARZ@ru`SDQZIIXeF8mCpf z1|B}HL^sWfJ7?^R2#{ASbJRsBD!f0@w3bx`uXwDWR8lVLXMEGSaG>W^XY}%NYP}g${BNpq)jpv`A>MgbyegUPuJSRJeQ@6f9d3+(+lI3M z&+96K0qEgfpSD5&g}Ht6^*q;y>Rs;z-;(R0U!SATjP!W1EPh+o@HxQU(Pth(F)x-W z#KMn0Eb_K+@`MD({nBilMH)?1GI`9Q)`_EO+~^GIx+qckbk-Fw)9{;~bIat{;yU9rF|`XnA@ag_YAF1kVBt z&SBkPiL}7DZ;$DpyrGK4aZSodF?KTFb}^KT0MCMyX$ClkHSu{5bs$V=N2t8(@;Gr; z{;0r{R?;^zrs zK2u@jQ1n5YR_`LQ!slh6+|x^_e9jA&Tv6`z8J-{hjeY~%zQwtsS(;bgD4gt>u`VIvYq-ayr(Y*5yRxY#Q<*NT z3qInNIwXO$=-j|>>)PllSqI5bn&~CvE(JzB;ThXs0{NdesB=uq3a=ixSZ=@rz!yBH}8if!+}J&hdOMn5FaIWuvL z9bSQrk#gyOoeSI0<=_?WXxw&oG&0|Lu=5RNFAaex%4m2pig9V;Hzz^?%RA{WyKqN) z=I|o(9SQ}^asD*gdg7jRSYxN(nhg>Hu4l)qdNHX)_Qc6)PqrN=^3Z&cqbFx~U)v5n zcB&1p%tWrw%+GPGyL6;A(;v;TINiG#k<#=}EIxL3C&f86PaEQdv+a{0zr-Jk|2-TR z>sVry{?6TF%Ig(`yqgs!*@5M3Wu4<^sX+Qmk0NH?ZTYEA`zG7Fx)l42jGuX$pZcuu z1>v4txW-+FAcXuejTBb`P$#tIGt`GiNV|ja8WyVE3{Ol0Lk;3Iw3vW)UiqNj>>_lQ z&m3Q9Pcx4=t*)4~3TEri9i|>BIznMbsV8?UE5~B6A+I?3z<(;{sjKu)$Te!PkCA83 zW8q4#x^{+Gfunc z@&mbg$Q_DQaB6v#I$4G9yi3;80zKN=zAw9aq2DsFvVa;osDF}=%wHOq&f}0hB3qbq z3-B}69q+nU=iAe|#_+bM)i#T)TH|U&o#7>q;79pYzHoen9N@s%Hb$Fsk^an5>Cn7h zs+S5#4cZ|5)Qv5()0{f=_;%ZBb5R5|RA=E`+e;j2yKv~KHuv6F9Ls9PGl z@IX#&8D;mPN3qX5^<)+&o_OqG=*u0V_8lF&R~sz3yWtti)XxT=ODLR=EL`%*N4z^& zhU+4m@pDW%0j}G(jkgmgo+gAg-e+vY=X3=O5;ErK@PZf2NWRv`7(PeGcEbDUL^wvb zT(IHQI@AXlXSzzjdmmmn7IzdpBle-yUJW&0Xi5M@Nxt&;R@Z-PlpSE4F+9G5aTD$N z__221{PA}1DK=$Yb#;66Ke!S6m8G@Y)jTehS7FnB(+b% zFg!||Swmj$WDI%P+BN7R-T`mJ;b62kLO3{f9e?h<4Bu;7Lm&099*QC zdQj>aKA&Qz3ipP>M8z2J}nFfdOSAxQ4gYL0ES1 zl>&fhCysLp!WwflWh;~!WRVP=0eI01QkHSru=bX9+S$UXQ|;(u5AjX;PV8%Q*buZE z9DabSE{~tYFid|5J!LGi=*r_*02%8z1{n}$5+9j`PZxe5F4E5$CT~xp{#}5O&#*D% zD|dTJ$`E}TeK3_@i|R}aeVwnEUSQ_ukCP1t#GRipt1bIRzWDe2E{__`aG&S9$n2np zJfmFswqTtLk8ghB+kH6ZGfv`merEhvxWL;IN9;^C?CvhdHiDv_@KksbXa$3q$n_c8 zc{%{`Qg&;;;YJ30YZ&gn*q-37S|rQ4Xu*)n zC{NzQPEC!NKZC*dH8)(A6%^8miT6W*Q;No`4-bp&cXH#?gwbwNNF8G1(Y>Qv{TATUo-EIDh_hq;5 z++AO3(;vH&Bc17Vue-cWy!1tF^5z@b_;uH`kxMRUBYXF>k=;An&<-ZcYKOj#bFk!} z4z&MP-5CZw>vNnRKQ-OfPO)m|$*0@W{SRZjexS|Ydw*Mb>PRNxBm4KXNy;$65#2j) zySeRn?X7L%h1Y*wT%_lN&zx#^J$$&m|8ozu!|Yam$IpIe`|rN}mi7z3`w0XWObY$a zaIejmAAG9)#DAD>KlYZFw}1Gim$aW?x9-3G-A}e>j!m_H!_M$u|M9o5;%B7&(Cc4B zT@1GW^G`q9?tA=rCJ0Y+OvKYqU_3_ax{Cz?Z+pe{?I*tDmc;836qnCFc&Pm%M|ywc z3lB3&qGve2O2Nkg=f&)T{>ksYt^GJKYM(7FmeApslv&26~RltOK%{WC z!&Z^xm*HCn1xd`0^%#1ktra~hu4SX#mV?UiE}=NeAq{m|!O3$Q$Qe&Xv$*8z+s}e&crNu4ndE# z1>{umr?Bi|&T7Ax zoc#EWyUlck#b!!Fdc3TwMcU&c%BXYVZOJ!~$XhQJMEy+q`WTcuu7K^GMerYHJ2PL3$~SM}f1&T?9dx}@SY z@~Y#@gyNUolU+=AeIoWq07S~D4216`9Fyu&ALNxqJeEaI<)d%Vvid?M zc0w){@%f(Usjb7Wre%J1|4B*{4u zr2vjH2%%_K<>{lvXu*fOG>*;8wF@~-Xo*FLPULs8f@W%FrtR6a3nLE76B@*UeXN)U zkp))Jds2=(|#tm%jr8B zVU-_?C^vSXES_iXvz>*86DW|CCG!i*D9bqtkMYrN=K=7|-24J`q~}96?BKZR?PE;d zIl;ns9vi)%vRHradT}1JopI`3j`5R@D~vBS2-N*{)H860=?C2vV!NaILiaQCC`X`8 z>J>kgDmg|`ODcRk0{ke=Q{U?;m-pSf&tMPp5siDx&}s=ju^bcZu$a)O3l^)4r!8kf!jb}cNx7;l?(ZMB@7+u7~-tyVQ z;8`49?V?X=sv2GN2@7Y-C)lk}eV6uq+Wr}n0D zgd0@3jOPkR(4EHct3k&5m+cFeX%}EoE$p|U9CCuEa%g<1ctzMtWop^YbwN( zz%*ywPxhdQ#*Cv?nt6w?GC$Yn*!EMABtVWzV|mnhROGE?wOp1~Taa=C>Rb2%+mD5Yh;gC{}-qLI6E@gP9A(TC-UsM`da!{@-`_5 zS-wHXUS<#k3p;te%n_9yjYx(WQ<_SAL-)Mdev)I#*1hFj_`0e`aYtFt4#JCH^rANR$b;>yJ43-c zyQe4@nhlKJ)(!Jb{H;G1q$1@rR* zUBHQR=)oR&a*9RiE^dLIj#-dh;#;m{Z}QYv0*01QjCXfVJ6Lw?qSD+xHGLS8p0_qh zX5W12p7ypEUV?%ACdjj}uphH%Wzj*+E1S94W z=&fDCSKu!% z8Rz`J#JvfyX316GnQvdJUcK6SsopoWq?TF>Ercut*b>+X1lSlb1_B$#cnAZwV?1^+ z5uS)4n24DeL)gKv8Y5fMNCJ$6wIP8336O;LUEQtT*XpkQ)vLF!^ZWhJz2Ez)x>^Vu zhqLN^_ukBtCr_R{nRzl#E?I<^FxoB41->tF*XlWVZ(M79+8gyhWJl?gmL#shhy@fQ z7|lpFb;Mfe!Xo<=3x5oK>ekzs$3(YYd-{>Ut!G1zwTXNPMj9ULyh(qwz{!dyKk^6c z0zTQ6uD%V!(uFql*xl$mo9)mmUfpKcTy*B6A8gAQXDuT)d(1uWj&{}8ys9ld@=$y7 zBOh$LEU>ux6|ZbN9JBkxSq#7@*uDP6k8^Lab%fNW_qD^X`de*=-I)guA8k8lo@`J5 z*?Zd*der0hFR-hcBX}uu@tX&FSUJu zb?r=(WjS2fSDvwnsB%${gLB%ah2344kDGc-b4qg$RYm>3l1MG$!U7cx< zK7^6}3mEuk4z``EZ)__!P|ugow~57*ZI`>QcQG(#ECGSGBi2(Fa9BT*7jW0yEHC+Q zi1S0}zT6r6@~f_9E^UsDaZ71qrl|{FmzJfkz+2XZ7k!YE8`d~3UMCL62Xk{Q4rC5{ z#jzLgpXF-9^VAdPS70@~a- zL+qcPW$fv3=PvBQ@+vWwfti6$`xBkb{|@cI=JMIL@We*@$f@b}5bKEM8Skb}+E%i# zYIJ*&zLPmaWZF{;jF_vVB;L9jd}6mBVZ4Z6uIIB&#Y4`z5Fbu(wFC75dd!=-O#6>s zef<7=+d4a+PtG5Jr`Qf=uV`b~t40|2xv0bPo~7NN!a%*jJUB^k6#^%)($?P3X1H^- zS6w#68u^MmQ8p6k0+u!B(m~{KC}VxnF^==8;`7fka&c;%21TGu!ikH(jFpmKK7-%f z6EU(rDxVg3}H;Bn9=u3qQqy@d-6;!0vXgQJJI6p{XY!iH5+_5)_r z(qdwvG|eGW9(xh7q7~CIc!Zp!wFx(%_bW!rg!NNe;dR9XR0!ANAsQGIoi7 zC7@@|=4Sw0RdiehPa=5+6^xVRQ_NL$d zJqB2l?MHs-Z?|J86#wAWFN%Qv>U%%k9zA^-gD=9Y5#_y~e1ML1lRJE0-d_Ep8>#TA zO6}$==i5(lbn|sb=bAV^!x6x5_`}a|^zl;szwre(w0XAd>+a^*=XZVlevZ1S$++v; z75q=X?XLFRYmW@%>+>At`yji1y<2PwgM!BZYcM{&xSC^z|KQ{Iu{v?4{Up0h|M_>k zj9tEkdpOVi`#6&}2VU{D`P<|kij^^OO>SmR_98v9prz9 z#(LZ1UoUWD$Ay))aq3iCf9!Z$d+71Da^FK7)BH$VN9oyNg_!Ak4E4cpdU>0D!E<8h zoxAJKHv9bBW5D=IG_5f3zwh|D_7QgHzU?FTwm<#S<86!8;xkNwec%g^w;$vF-S>Rv zq4uFKJe&!-gWQ2LO~>&RhTVVrJ0EUeV%P8Yf5V;ag|{4QpMLOod*{c#++O$cTiXx3 z>JAjhQ4GG%YqznJ_YEKTV*3PXoFy+dT*nU0x7WP%ruL7%<;A&=xTkTQ2Kob^f3*F~ zTmP(m^q$AQqM`TdgR|`?Ff{+u*WHx{^UT?W_QwD3zqDU}{eMP&Ro?B$sv)yZsysL; zmLZJ|28~SjsP=+NV|}sF>pjHdYR2lcs$uSHp0FyUedA-D(@(+e>mNdq_P~KDC7V zQ_~o-FW&VF%)q%QfMfsZdmIdzcE4jldYlY&FqfS}5T&0K%a2U3Vo*3hUD@=G7Q;z% zg_W?LoFyp^YRs#2&N5Np;Em~e@*DM!aAYg_^avOy_#?$cBsOVf@K0pZ6`yh|3BK#3 zx14eyP^6~!%v0XR+1o$B!;z8;=Y%E#{1&34(5R_Lw3F7JR z#jfhA`62=S`)yJeL6W$6duIGS$Y+LKoQ_{bL-|*_yo+LxxejRWQ3HMCX9}atItu#) z^{I@#iVq7As2?*^v%pbnNWi-&El1k|SAz>{{q%n2DRxe};*&rINv_mpHy>@p>?A8y znJ6C_-^T=uCCmy`1bCftHZIkY`d|6?$ii8+j<{meyA-oC%Z!27o%^2tASAJPr%XB9 z$M(`%>p&w%MKV!U%%DEd?r#O4cxfIq4oO4W3!YsS>|{*|vi$@FKN_Z#7$@~LsJJ*o zLy=*^*bd1L+Y?tZTe>dragJQJJHSbfiElkMze&N!^&dE?sk){34a=ByOBojz|0`ed zBnBRpkA#RWaMrgNE=;?VE$gp=rk;}^pe2KPq9(nBcL=0Qe}1H@+Ji10Wsu{P0z-Xf zA(gv7=Qz^v!m?(g?JTMqLl)fmGdj8$y5*r|llGImI}mpvQH~rU+4OIOXQ2|CV*_D2F2xQ6>Jdr0Rb4b^6*<^NaVv0OCScD1b z-*|CC%<1Ob?Z>2*{yEjab`ZVM;{Zp;7%=l*6P?Hg^~O}wo`Z{Krj4Tac|4v2b7ewj zvFqxq^NWvkSAcC*<%@445I|Ny7|9InmX8T0PCodK6IhuXd=*W85|qAG{)w=Y59?UI z$+bXJOvGjPko5+hTHvO`7bMVE`2i0-N-UG5=mNE~7w%iGWZp?BPY;=7SEAr%zy*e@ zggJ5`Merdl___1M#zh(=%QnY$niiw{NK+VhmQ6^rykw%;zFgffMlEF?7$?Tfg(+n6 zlDOh6g8>ut)-|GQq}KTAV#aMc)H>SK972k+1uokP(1dmkUt|nkB9UQ}G!%SjgBB;U z#ch2Rx8rJe0c^9_!9LgaBSu+ZoPgHV;;Vwy@GH&cO^N44ki_*_vJFmYA}FV_Fi|oJ zpZmM};3j1ct%SQEEQ@Ub_lgxWlXfd_`~V~>{jCrFsaGU&mqz6$AO;8;A$LOA$rLC5 zmC8Oymbd^Sj^Cp<$#gF<$n*!EJbqsK-D0Gb5*$~iyWB*-!{0nhr@Wg0r$uGjmZ@W>^DK05(T3tt z@&`4F1mU*c1Lnv#{A}?&3CODIZqMErYaZ-Z!+RqcHO3VBGvwQy%Swdfx9Cu$?ZjD% zOg)^jwmULyi)@1K?tT>mA% zjGHzd7*k7%A*}x}qH?$A`uG*H=b!IBE+4~jE{6IFUqQ}K5i$VWLkrF1J2l$I!NxcF ztFrF%YTuXfhNy&r=Q@A;dTGAh**VA^iCBj-U&nk*u1cbPuuTiEp$SZ>M?q;jgk0O- zcK<_m7GP8EaEVCF{)zVRBD)O1F^O(zySu^I zaMZaUsfQNp^cWMuQ!H5UI7(T5!Mi@Gt1ArroV?eMW+J??j;ouwh-L=k6)QTZv-Im> zyvMaqaLnu^8^kbR*{)fTR5*{CJ#@>BZJhK`!yC$P-o;>_!3Ur zo>>ps*@^FUhq#xWis&*a+w1h}qUSGsrA}syLmjq`ALcr-V^qC&Zl z599f3v1E5MX{00pQ->O%{qw5RtF5@R``dXIw@i}02E46(W9=Zu#2aSD+OexRig^y2 zCa-AExn_=g4{1q|k2Q3f3(Pm3Tw87@oovUbyJq{sWPJ2g#+&099bmNChA!$gjIJ>| zG6`(y2XaJel_&Wj;rO^qxN1uJDVmCe_w9(Gfg^(&oy{B3Qm4Fz&ptBshH&{-eLM3_ z(!xLaA_~i2d9o$SeYWt=v<%)PuUy8#w|;o?XBxgbyXuZo+b;EF?{8Ii+sBcp`;oU? zdto^6sly@8^jvgMbF(lqxYNH-=GMK88(2VST{en3m$G0TR)#mH_akS^Z6A8`?g+O( zQ(=@O^Jd^4 zt?EkR8Ktk8v`#?N7EGLEp3~C@G+aCO(V(uJdcunJNT-}mvvI=u>xo|({}I+nBH)g{ ziF2h&XLFef0I_iR38d>wErXPExK_dD{mdW_>7aRL9fs*7CM&goc0kc@(|+$~wCw z?Li%@n37KX_0szouXFI(&}e-YSnmyf<<2^(hHVV*jy-zKE$G1$ZQ;bDZCBnB2NZEN z{!3QT_c{a5!a8;_q+RyN^p%;p zHp=eXG1`D>c41F&oc7w)H?=KxY_Bd-KAgb0i%g7BP9w@l2(&a!57$5R*O9(`iG9^P z73EuBb|Z^rH`_gTKisxBp=En}Ir+2av6-(qDdHtM{Po%8!G$Et9E(3fU2>u7S>*Cj zuEdN!Z`%%Rz~yU?f;UU4C&zYbg+7Sejx)Bg{Li2de)7wYA(POc5qN|!5Y!@X`9+(D zjM*ofR=$B%hQ##{gfFu303x3mTR6_HQvfrTC(LzC3nx#sC2R(sinYtakmdQS=!ZB773fjM z#hcXYS%{xTXR)o&=4F35L)*PO;zAO+m6k9Jj1HBg@s|d8lz9c|gQ(atDNox(!_qyA zgK!tT>_SJP^HU4#2=ISj2)qZc*|y$vbw?_C7-@=kUw2FB1pq0b{KbiD;EZEg>nYxp zJa0p=iB~u%%7VkM(1wCw>*?t0p`P*UP}5cGV=`4C6&M@xBo_P>G%H79OiOE{Acm~& zM+D`HKtrDqQ~+P`Hvc!yeCG)tZ}0l#gY8~+iEh#$oWwxsWXG^ugeHwN zcK(+u#R(eX`LE}gXa2T1!+rIkN7?oJ<+gm!18w#GN1BG;4GgMh?)zZdef#etlqjI= zB%QeOXq&v|sy2P?l^9vCY~xpOJO_&K#QdQ)%JI&l92+@`GHxq3>ZMtiNjyrBog)gx zt~+*_+}mDU#L&vI%xCyJak8zSz`*?&G;qAY=IMpDLnCdS8%MdDxZ+TojNx5F`Gee<`-h)@q`m87_qUI6hptNUDCKtxWpmf9 z$GCfAhI@pk+E4$TSF|5|@M-S5UT+6IcKPMci9z$JUT)C#R}mCsR97jlmx@X8;6lajww& z*eDjf6I&=0T@|pN^o^*ibxkMq;~!-f9O$;y$t6H|(Q?H%uj+ zQi?*+EA&$3dj>QlEG_Ba{o%h85?KT3d#Hs!3B$u=V4xFC@+f%pzKGEB@YiFyr|9fm z8SQsBWP@!rEpkCOl%X%}39 z<()QF!$MIkrM#JVB35jv@aPt4k4!_hM;4ASIB|e)Z81OjW^%-LjZl_}M|kmx0_i}v ztD~V&NhBF)O1*{0@_ZI}2g1ys%t!A;89D4dx`;il$nL;zkN17J&%`Hhmy%m3B_^pL zv%BpeDP^`fX=IX)>qL16g2j*JzS7p=I5)06OXVx{D1)c zItGN7U4pVn{uZT?uE;7LaRtV&w1%g|Hjbgb^nWJAySwtIDd!8wn03zM!##atbA^Eg zx`9VrI*6NQ=Z3KM9b-(&S*J5N7$YL_b}$a9BRR0h@#M&X#ier~sPf)VnpwA8c^g`Q zv%OW>&wZ;rl|7@D%;YUTp7a-<0FyADdvey*LTL0@u~}qxmE(rgsXWSBUB{z6AvRC?8Y_QL%8< zMws6n2ELm+Ww_{hTXFW{gmVE zl3*q(ypUGtFiaUJ!zAS@VI*wY8M^Y~;1me{h8!8S|IU%BLi6pB$6i(7@p{Vk1@+mX zD0$Tbd6-Op3(qPl^$R})RG!)mIFaeZloJ=$*B!DvtdiW$-o%qd4KKxFCVO7F<|4W{b z9=3(0{^){dfT?f{A@7n(T0;39Ip9U!Inlq)E(G;0Sc0FP1oBKcPwR<)?ttH59OFW= z=ncUtM#+$m{v*1-@T>n0K$pjYO^Xp)g%@}4Z@U;Qp@EMgC2gs-H1Ixy&#!vlBt4xI zPcCqy`=#$IscZHZ3*6_Xzx@oY z6KOGtMwv)I1%{qzaOI&+sZe*5cKZ)q?P|_d2xM3TjeSjyh3yOo8rGepSBKZQZ=RIV z3-H0?MP1Ca%E~E?$I87~7(2U&l^ph*->}gY8 z%9WoLNg1~tWW&)Mj(PNs(WVJKlK_@*~;P@HDqv=c=Cpx&Y)>h;|m|kyKP(7 z0w;zU2uaXXx)d z1!9|Vjbn#(c9TwFl(Mc{HQ8I*9%uS$9mDbnI;FLAgD}TM*%dGC)O%`qo7z9e+y?Yw zyb)3zVw(B6s}JsPD;IX!g$pd=B3|kk{G6OU(B^NsrJX#(5zZX-YP~*8es2ZO5|h{W zEx54W1(NUz^nYx1v{zEpQUXd3L8|ffVi6 zF69}yq|ioDYCO)`W2>$AwlB`PU;@TaOra_-(ikVll|wkKydlG5%7J<6+LCeRpDg?A zzSU>|oTqcl?w@b79F;%KEkx>OdO7>aK1V%F*_-p~t%F(Yn_A4R=)&#{~}RE@>~wPsS7Q zMn4l*U){;T0~pgXpTsu}vIUH7HDSP}ZN<|?V#eEGSM4|_hnW|TO5UQcl4quC-B<2w zF35a>*Zj#-GAQ@NNzDoSHO{L4TF0&bp7e5lai#5Jalz&cR}`@L?Kl_rdIb6m=`Svw zY47{bZ*NDK$GPdyOlUP-kRvO!4Wyw#tN4bug^%%XhxWxCz#G&<07;Hx$ojZm;Uttb#IG>sAm`0?&uVvBNjQ?LWQP80+>e$WLLxPeO&p2Bj0a^*B0{(1ex zE~lz2Z7eazcd#A4>c%$9ed_8VE}T5Lc$T}vA8p6s5K(ll<0*FfZou17`jYgSK*~f0KguM>QN|!E2bf)z zVFaCJpc~GArJ`>I4(K;PFX`Za%-IFpSH`X}7^G2b%qk%9UE&fq2zvqwpm1IS%;x~@ zGlQPhr)O-BGa2qbE{WB9KU+GN`d<$IQkYA>P4aT_%$O7I~UfK+fkCQw$NdiqrR z^*8<(D&=_l!S8!*48H&HH7`mT{mT13-5$Xp8!e_2p5RdEXw*LW!14BfakuI@6teI8 zhUcN2?n|({Z(sX0x1_WEcklcJt3aM?H(h-&J8u<24TGP4=mh7QQ<}+Q*Dzw zgEzP%cj?n#YUe-n$#lfRk1}~YLMK0p(lg2mxG|K25gNi#jHB}CQs=7d9UA*x45-^4 zznA0OP*Q1(RfJqIH;SS^dH~}xyI?(5+TFWT*B@)s+^_5|H95QX8vpM{$#uRiPP|&dn?$XeA^9Iw3k2c+VWtl8I zd-hy=^IP84e({&z%<)3r731nF8sx5m^z|e)CLdKt#OJ4Vr7xjs9QzoCboC6czLATv zN8AbxNDtM07*aT@T^2ij{8uhjx`He9r`o)}&N|-{s*EmUdI$faxX@_@q7Ra;)OUVC zS~-&6MzjmF`|A`itjKXO%_4xOy^S(BpsKf#jM0$%fvlFW%D}k3MbTaDnHU zd=S6ju0q^c3u7UzmI-sYbR8|S^9YG0~V*gi+ zE;QerU;jRMCWjqhJ^G-ILhvfDBs}E&5>CFTxB9I75KGO9viI(!ksSswv~SxeZ%U++ zDIXk=gs*ICdK^6faR;v*sr|QfNbBI+a6Xc^&T|m92bH%DRiD~d^_0&Y6TwlK z^DEQ&(*Uc&sg!t(nq}O}o|7!j9UyF(MoinYo{-HCGY7k7@*nyWH*{)^`fBC_p^Tkhcu<0N*IM_`vwUG(UWF;-|a$#2f`f) zy>o)g0OM5@Y4IaDuQ+^Xl7ln~zW}gRXJW{ zXNbFJ9K=aVk2%pr!C%oO4%5IV6`=eL_fwwfVs6O0Z9vfyV*;5fgMhsC9ZY#vJkcrx z4n9rK`(eFzRp+LUVYBBE8tlPyRwMp5Z>a&B+Zqv+U1 zMhvrL7^aIfzo~Ed7bSS|Zapms`HbAaY$xgLYpcKGO#tOuc#+{!KYbz0Ja`vpj53b= z=?h&LG4Fk))>XdUL6rg|N_Oyiv=_+wdv8rcqk(s-rEU`_f3i!Iu)a>2zD8uVAM3_6 z6Ru7^dK$?z@s%R)pf$|?*FMHU_6T9Mh^yKL>rM;<#KlGdE$GS6KE}33jTV-@y39V( zLfg-zdS4fFL?ie$hHGrn?O-f$SFr7aRYHTYpuK4`djB70ai@krwptXRMZq zI&p{TC8Klr@3I@Ej!z~A;Ti(x8IK%ba>a3-d2n2DWdBS%!)p4a7z`^F=`(5m=S8~m zE`RmnPrpFpcR8nT!4&QO#;*gf@E#_>$ks3n5E8*dUuCv(&&~u+Iar*Yd@tD%sFO#-;skTFT(Z$E4C{y2g;Xfq~&w`n6?gzf^3U**Yw zs^`*Rg|B`{dJQugk-ER0C)U;Y5uQ4g1binGhJiEXlZ>V@;Jf%H&JM)az4+2eK*E6T z+aB2>FKh=@+YOh-0XE(ZPk&C`)1YBp$qrMWLK4SGe{t!?XooUsYhP`fH0Xcm&ov$f zCj`L+^NQ+69d$9Txza!X>!-`Ru*D0~L5KHFJmHEPl`fz8uCES9=NEqWxO#xU)Klz3 zF1QL|&#OI%Dj%s)ZtQOaM+xIS zu{u+Z0R))HCt=t!(7(!m3k6<%zY9(JrXAf5U&o#lS)6^0;xAUy(2!I3iEX+1MIAN0 z7>*Ef%h4zaGpc#zj@uP>&&@pk5XRA4vsfUfKA08gie6@3NS6aZIBkXT8akrQc7`vY z*#_?uON?RCPLn6v8Bfnp1MtXQ$EWGPnWWxYalr{)oMRr~z58~XmD}_Lk^2o`>pC7L zwaq*9YlvND!FqN-xoSd1hFrK4>z?DDKvIh;e7a=A#lsiQvAYXg(>LAPj&Mxq&bc$` z%OAz|P&?}Fp`eg9f0p?a`$-oRA9iOv{QTULi}XQ`qiieXtaV6UvjCPIwr;3!()~Qf zDR*R_IJMNyoM8;-@>2Q0Kly9h68VAg#3q-vP5fGK2@D+gZOeAqfqHTV4D3u>+FEL} zvuqLopC@sgU07}>nAcnJsss#QOBj7G@V*THEG5UmpeAYWh^2(7*N69SwWC+Et9E^| zJ@f>36?1KYiwQKg@4|Bz1$(Ma$Vz#rq(BUHLJbKpRm!{|POfj|8sdGXX4`KK-cQBTSt@`sJr121^EnMTZG$qhh4JaiLok|Y_R*R7HV$oG zW8#%?&NP7%nj+ni>}u0XhAar1B|W5e*ujNxvO^4|6I$HpYS zWzZ3rm(1M+G4w!u(P6vPCnh-ZN*RctbZYVqtU1#4_>G@`B(lSf&mE2#4kq}dQ8)VM zDjU`;=OvCirt!DWak0!c?RPtMoTKNN`kFu5)(>9QHmS7zkc&y=f)T4^Y zv+aqpoP{%~#~6z7`{TQxYV%wXaMLaBS^qmKzv0S2vd! ztFXv`JdZ`bdw4lPH1IhOP)@$!7k0tF0PwWk@`FFUgt9%3tR$-A5`*CjiF=Ymh@+0n z<4yd%%IggM*J<+M0(|FWwvpd$?JZt?JHvXD-7&&_g9GW*->4b=VynL9}2$wc_x9wzNrvHh}^OA_>(8vFTehG@ZH7W z`)#$u_nTiFqr)%#-ly9G7&?R2g6o|^Oy_qGM#Go6YT+x8NTazH?%kXv)8ek^bp2h zcRlQKZx<^ahq5u8p6?Tf4(D(Gi(i-^&zaxij<=1co^BiPY5n+#w!vzwE$(R8F#OtoI%Ar1H0e!m)#*y2YJjyH2VMJJR(iDwT{83_+9op!<3Z!%V_Va9`Ls#@&e{ z2io{ib`W2ExJ_Prta*I&GGcvuk2#FXl;%t9P?om!+(>w(VCwEi=WO7?i=dmnqc{l*`DwtdITZfU>%PhQ*p9X$T64}OVV!e??{ zoCWEsnK%B?=i0Yn=zsN{Hw>eC#=8oiJBAVR-9X-_?EzL+>&?SAk8(jj$_!{ws%vod9uEWWIY_5IC<)~G&#Ie;g7*XOnE1U9cxnP;_@NQ z-YpElIU-70gz`>3?>Io8CBEfkK2#{B$yCWf$GmmEv#Z!lb*}POarMf87a9Q#eqZF1 z17z`pmmPk?97d-cy10WKu;f9-$q7yeNWxlfDtOYR((5r5xX1Bquw1hxd@%%T(U@@tM*fojq9JETPT^ zpp=;%gz)h;7S1v(56ZW~3!`;S;QF$B5=~FzFhCm_MK};#*(8dZ0JkjVvC6;kOIDmH z_pU4NuXZh=*s6}O3xpWqt22Z0N(2e-RrC;%@=GNMC400AU7RSz2_)>Q=eT^^cj{ii zz)eDh-Hne{VFA~f z1aild_*Q&^%f(mg2&W?J)gdP? zIKGd8R-`k;R8-Ru?= z1=?*VIy#g+SobWL%Kk8x3f4#3t;2mPl`1JqSop%b&wQJVX(2y;6ZhikEf&H_a08r~ zIA8+PI33G?r+qOIll3W%K;%{5{Fkhd*8S=UO5*ElT>H?1HOxHfWM@r9R(!k3i(DTC zPf@M&v(2QKsJs_%mx|@2zsKg8bn?^Dpo}My4+PRlR1KD?w|qPCHqCV*$~=lN#3a{A z-Y_Ribm~G8OW@q8Rax#NfQ-nO{uB&pG?vCQJjs3Nr~X24-MK|n_?Afw zUZrmqo|~r_%PbJ^OyD=cqK6SC9OadH@TrcKI>}R4zj>`6{Ud~XVaC(#)rXQTX%s=P zs|k~L>OtxUDJnx9SmIav(ql4)?@k2CGZ#KEX=NOq>U?9YCKyA9a`MwW3TH;fGz5Tr zjC;1+0V<7FKa15onr7v=($B9zoeNE-L!6$zKCGl}53q36?*N)KG;%~1I+~QHEXXiw z)Qt29g$TJ12FufSojU#1y9#sc!jq-P9XBEaxtnv+brD{n@dLSN4= zVhTjL9!>jF^}{+QKllM&dXU-f-NJ$5!Xu1d*3ZZsd<~8AlDfpNur-xK-lZ8@tovhm zhfex3jXHJwHPGTTOd@%D|0`0QvNDcUfr$nDz^B|&w|YZF?S!}eAg*zcN!e1adkM|G zA5acTq=`TC5&nd3XaRTGgNbXpJnTn8OpgLTsg*EOs5+)}{$*X4z_Ub?lf{KSfQr#e zo?n-7(yTYZfq)_FPX0r*Co05Hl5hbk55;6=$J`ZD$9P_XD7z#vAAZ3 z$!PS=RpxS>+%`>jBhA`J!Qbc@;Ig0fSYi8;-3=BnLCg{Qk@Fb-JpNVf(fVyYw5}@O zGqht2??U4QJ6jhqa%z0CU>F*v%6Vt7$F$G0drxEWk`~NN5Kp#!YzVmOc{jD)2Ujt6 zF14#>ciRICWCr@3oad(7_R=dn!N##H_s@fiE~l;2M=oHrWA!a`GAIRKt~Y>tN2j*i z4M!&0nKgFRv#Z!~@FZ=GC(39z^R8E&r*Ng5Q5-Vg0&W-hDo^gTwXL`BvMqz+woX5L zTEio4^DK9hTI|O?wT|74r@1n2iN(>|7|J4B)L9o>PiUY%dZ-rsFt^s1zdOlZarZG5r92v_wud z<1yRn(1awibCu#w`@m4L(Tw1nPpW>=auPse{Pra0YLL%O%EtD-bPOW<-!x1c0`1q+ z=ZZ@C<6#aQM^ahCUv(yznB+IUQchNa3dN@g^Sf#*2TT0EjSnwz_y4R&KUcj%wc37>({f zV!5cJfoz81!pO zHf5hY6%Pvy_`uPj%+oPW<+;*HdR;R1)$%-Y61lQZrIz90tVUttG&fi{byn*LMNGV!6P3-%uoM;z-Fr`=0U-c%K#RXNKSJ%fK^RB~?my*IC^j)< zYGUzB8(+S%Z64u{ng z1fRVt_~0Hu_hH>r=IMMSt-S=LJFa{9-oN(T8=&n2hG42NgCRc!(*F)H3;=rh>v0Mx zZxn}AAw4R3#n~hEV*g7+hvQV(-tTZ&kI(0&Y3;?>WBjmRDohvea@1Tt)-Z;8AEu|r z)3d6lZy2WcvzlC*Mh~|KvzK1^^$>e$_ptqQFUH=R2Hz(*w)mI-F}AhD-MSijU0Ik5*?DK>ipQnxtfFQP7YXm9v(Tf#cZ%J> z>?$6g+uuepV*4Cp^`N_i|7+a>$KBlX#F=*g@w4qTG)>d#yx{sP+Dkb~`9Qb3`Nz47 z_dove7f_lwV+bD2Fe&g&FSvd%KwIQas7E=z`pvMWTv#hN9+28t5yW{%r8tnAGG(Q@mKS5di zzsS{Zedz9LA5gxZ;b<(z=m~DW?r8g8Ia2yZSxjIfeHKIS+kf|c?Tv3nUQv)V^eW$E zCvGqqfNxeL<6FhRWE`CzT`|fYQxqy+yt~@YxYkSCPnAC#S>vRxid;YHq!T9yRB$Mq zc0wwXAuKU?rPD@p%fLqkP@03wMB=YviNZ#Yrhf)YU3zwM8W(i7K_12I1VYbad;(N6L1nnx?H4;q8Mc!d=OrD<)XwgFsZ=+={qn~spg;e+PR9z$ad~*7zynf zbX`U1xG<}%J0>0AzU(EA<5=Z>4M5o?gBk^WF&u-VpBOPO0(jSlycJf0eVTt21>gHs ztK$r$RmiNw$zR}V^3T|rK=0zI=vSKZ#z6`JJRNBIVH@K!>F^$<0otPEk#GG6t}6q1 z>B5jz_~c+H4o!6(x%EgD#y7}`h9t|W(s2?_h2BAecK{t`h4A{?5~N^QqCHsi=nzs< znOS2uf9|X$c0a+jVcCIm8hzf~UKz0BW{H6|Dj_}oqnS6tHl)h?&0pd7iW1f00L|%%#stb@I>pCx~ z=8s&0%Oeb}@ZJZMGPF|5ynzENpSA#?7{bv5RNIh{Fr)J~y)dQ26&yul`E>rlT9~PR zafWoS`L585{VcOm{sJ<9yBKOO%(qIhO1BT`smSxvguDDyQ4X^6)!PU4)Vxq>&~D#j8-%B={0y%Za3R9h80`* zY7dQ+)`CfSCcK!SSxx(_JmQaRBhslKbw~*lQeFvRlHfOcuHtr8J+(-zv_nk(G2nOi ziASZ4AlH}52hpD4gt3pf)ah?JT}kA>7oPYP zT4ad+5rCq}(j960G^kRamsv<>zohe_z9HLXufD;?OU2D^{0;FdFwml$>#A6!pGjP2 zaN=EIe%MaMQ!f}d$>gXBs*7Y|jymR|M<;|!GB+NWf<|EYik^|BSB7ee#46_E>iSRB? zBh+BaT}T(ju+>t!ga#c4^Ih*N0o=aJxxPRkTHgwJS$$s zpdrnCTSim#B~JJ!m*CALZTK&@kyMS3Nsw>p;{*!%<5*!_<0yI8a9TPIw9xK5A!V#N zW`SKWxJ;j<*6vY~mZL|u9%Qn8`2vfLDgVO<=h+>|F{td6oAz!@juEu}&GA0P1mZcy zavqcE%)9AJPtqX|=F65SJivHDsU{7im+?~>j8|-=(mpYcDalNnipRt{Wvq_pE)9*W znNy=Oq;()a?xr@MN{8*fI^Hbx)e|(r8_HW=T90}oul;eq&?5Rhpi*hkkxXPH3k3Mq zg?{2YzVO~`ga$yQ9lDhYjSXXEJnw}@vnIScp5@Y!?C9Q$#|}cI>|tg?*+4y@%Kca5FOf(7o-*_*y$XwZ+kw^r*BW z*|kZYZ2vug)ZM~Y(r3-Gfbul$hnp>|kM^NC0fM}5ZjQ2(lnHt3C;sGubTsVJMj=Di zH+ib@Y#;J;@POm;5$@4-@v~`3AMsM}q~5yjecbGjJx*D(OK*ag>U}c7Tl)`{oa{SvOh$N7IBslH+^l=Gy$xYue0}*KqG9b8&=itguUT z=^V$du5ffVH#%adxtf#p_RVt#G&C-=31q<&O1M&G>)h$Kdiv?MLp~|Swx3gEtUqbB zEd%o7b#@JRXQ!v_zJ}4v10g$(RgQ739P7d} zhiYX|4#ida41A!&oOEzunVC`eFwNb@Q|K};&EpnF)LkEE0gkCojEMeqau<=^lY5SOe_D)o&=6Vz6=}&Xz-W>Bs3uoGa-DTvQ z_QJMPT9AotWW+g_8XLej@VG15w$gI3z5@oYi|6KD-1dX&AC;@hm}3PEz&q4^6iVh^ zT!c-#VhqAGrelc(F=JKYOM~SoKAq`7059|z_wYOnp}D8u~#`v${X^hV0u-a_ajS(bDZ`Y zBPioDw5uz;yLiphhSsPT6YSL8caT0KDMhLz6MmYqX)wRX-OMb(m$Tu^C|3H^YwB?F zM*r$D>c_Wv6TyLoaZQWjLQ55yj^2Q@%>Lc z&d%J1e6m=R=QhXND}yoSldkLwn|X5)i)q(9ggQ=zE1TxMcpbuvu$7Ue-t)o#3Uo*maOW{2*}au2UZA^&~K^yfK#8%?hL33o5Q|8tMFmvg`F z7au#--p?-VkFb;XCpa$oyZ_qlbS|Uqd%ym9?cJYxpuOWm_q31Q{doKL@Bdu;>F<6; z`@64vZhOHEN0E(BwRdp0z*A?IqG;UrMt07_N|HQU4C4#ZR zr}55D@#}_jV!BRBn0nu^3S;fD{k8w^+sFzBmI0OTeGL;1kKnBpad?nec1VfL&kkPD zq9Bp-Rg;>7ZldTj4!o7FtTrXFq;E8EXHtxC2YJQ0U5xnLGr_-1zJxed+bn`n;^GyjD>0Ht&LWQTvW0=sFyh6?^{l3Si%Xd8|^cmaAl) zTyWsmcU)ccdO(wde|g~!oqZ_RFd_2fz=d&6jxKUACuNphb-0ypl@nK(?uJ(S98xu5)9t>c_bWPr z{{o1=FkJlNs5FQ04I}OXdzjF4neccG`Sfrj@h7Xqsh3VVBsq|8vT&!LC=kymIH-KYq;EhkFl~1P zC(L?B9k;)*K3M;<+8ua@joGz`ti+&2d}&Hvc-j|8G0g<+pt4Hd96&p8G=zHK!Ubi% zPC8VIyZVb?WEvRdPdw6wcZ^>y#34xU;8Hdn5ZT`LPFYtClXiVmFAX%_U*G~lJpSj; zIO%7IXPAFAp(;h4B6}S8c36lp0t{Gs0z(KrymIK2K zP!qpH5)Mg6B9-)zfJqf)K82NEcy_p*RMP-s`ED~(v|Z^j8nug2v=VmFpb=d58KqMY z-z0G1U7kg+cq{{*Nt+farHqs=C$f5;X6Fk)B$aZWVUp?aJQIw>bKYI~-rBsteU-5W zR$AgV0?u^AZys$Or?>}c4n1g-35+$4KFk6yV2>W*t|%rt)}K1VLZ#YKV%)Tb(ilF8 zQ3-=t_{EulaD_+mROuGiiVjP&5`?z~Ct6U&-jR~_Hfycy)i^fLj&uU=>nWety zNIf_*p=&~;^z3CaND4s@oBo~tKD(Rk^8iPSOu4BaI@#|r*PcYeN|2xm zKSE7%lQnOg@6cRHUP%tmLCF#R2JN*zEX6Vee7vH-DW=Fz?2fpCuO+ zEykBrgdyO(LPHfMUm_C=Z_>u6($M4W{mo7Puj*^Hg~py^CD6WUCK%5$0Zc^OOBaPi z{wZ^Ja(SwOMki0Yu`O^>f-5y?0+=YD$b|DK_kt%qe$0m~kVieK>bo)e643KQ?rC^+ z$NV}A7AVB0kKX2K7CP&fv?u4vJT7`JN4+xlg-lmDJE><~ zkN(C}{o6D(nmEBN%Y~RkqhlmStzr zDlaY~>L~qvHk)O<=H< zs@tboOaV}gLp&{G7j3#2Hyp8D#Lwf4CBi#LPd&QYuG+e%^D0!He|3- zy$)uJBZKzuJJ4>v>H2o+%vp9SvJruLbZB!Wn+wjKUv3L$?{7yj22aygpF7W8u~>sm ze}@IVQ;uUu*5ia%ki`}5?9GC23mdxDZI|&^t~c!8Il^*+g|NB9_UJqdfw_m56ErT6 z<`PE8C1C9X)qB%FuwZA)dmBNw#_af6cTJ8TmW4X* z(Yfh%{Sgd&Sesmc_@$>;F;KxrU=PWvGhs}sqWw&AK{o*wu3INV@TGF2S2=1{Rj(pjxk?ayI?5`8gj27 zdg=3Tr>=U>G7FuM6R-HtQ0CFi%9@5Q$3j^UZ#cXiXTDPSZFcC6^K_2Fv4!wzk(m@NQyeH`l`pwdQ`Z@w6Tg23t1dv0Yr>d_<7|{`asI?%!#Mlg_CQf zyPvuX?c~)ukp=n4+cKMNPEDL+u{@oK`7oS#E_yN19V;eff)~LoFxbD-7S4IU?p8a1 zG5yx7_9JhbY&P0yN8tDESIxHtuD$r|V~cHpJS=O_r99M^vX}ujW&VLM+d1cO2<5S@ zWlRCHv@h~Sl88vSJH_#>w9PJUqix?Pb6cC>H9b%5sCr<%MNZ@+ zI*ao=#VpRx0&+y1jB+m83Vb1(76fg>0hkFfZGUA`E7$2jVFoW*+1k1epUVhILY zf8^T|;_c!L@g$9)wjAImGNd1gkw;l-JJSn-^vDfj7D0mf<&VJr)c@WeIQ0U5DeZt2 zhKkj{i(-%t?|}p#5|KFDT|IVQy*7u$yZf;#PHSmP`eT3dr5G4(+%9(W?AZOLJ8o#7 zy7!6pH1~D9;g3I0gN8Ce=lCA(iWP9vsjs|yy;WL;EBzk}g z0bY6MP3?cf(EGPIs@sXRr#M3U4R83}_MhJLJ9KK3ZI+|2tHZZJv{R#Lv@=nW=qow0 zV%q5hz~OOl>nLaX*pR9W3Son%!abvb0i|FQL}>(pCtBbq85obD5NB0z{H)R7NedYd z;J``RDudM>mx3rgb_h;fltBT!YMsU)EJ{L{VP|a@S-5iyA21pP1TV#|z6H-+3+5X- zOrs{%`6l1)UUuRGsKk$gO6M|$!WOz!raFaK#jz$<%}1v&NHhOD9@Ml*JamQ-aIPR< zDmkvMls0*(Qvo#nC>^51+W|z%KqkmDaQB^9P0pAOsY#Ex%nta>U;LD7oRdg>TxpAv z1wP|y@HZ7FSDg?nI>7;)lVaZ2=xR@NPH0w0wpI>#nCB?7idpQNz9Q{q;J0L9Kr`)T@l^$VxO}oq-9tpIC)nl+%3G1JAzhL zSK0z61(=R}tABj>%|BgHmsfr|!tvBUWzhvmN5$x2>lyll^)tNb;sM;JQIHkCO9A-$ zXZ{^82D#-Aj#0|Ny@Y#SneG#OZ>D;}5_0ust2Uyj(;;AJ_p8$M1uRLd%o4 zVE{h-b~Ux~>O{o`D_bW=xW`DNEv{B6JAm|PF9v4Hz;5k;wJ&fYBy9wBXG_B`W$Zr_ z+hVdyXZz=X*a_kp4aKxG%99i0X={iZ5unf=m`-@P3oDyLYY7zJL6x>|f{8NqlT}u* zYm{)X3i=GlT%_Tk*#<|sim`)sW6eH@6+48c@o@6S0i1OpMhj>dWpW`h51s4qBt}re zCmF0dq2%PZ?YC`}?O&XHALeQKUiNnY*2VSP^n4}^e?C(d_IXevlfp|GBxKrsy}K0B z&hYIX5S`!V*_|Uf0+jdalK{dcH6q)uO-yrD2MYu>ST1`iN*WYsa6%f$>L18I6DFQQ zk&`I!hjB?GG=L|V9r=a?+G^epvFOjcKhL|G-~5`f0o77s>>8Z92*=XOv0nJ96IzCS z44>xPzF9~oVvX)(gF>S3n&kCby;2yN2d$vgh`i#Bd)kAto98}$4r z?kNUoG1KBAzW*dkIKL~t^qN-ZPx>A+eul|G?~7fBCv16QB6+f%XVQG0oi;A!kPipB zm&!`B%DCf#3l*srGsyL!19M>P9O=Z7u=lcAXY4OLS;a*_9(C;Q4h?|&nXF!A@=%?| z@>@lpcW2u=b<{dD=~w``H6}gR)QNzZWmhnBB^<#BP2jX%?PoI8>rIw8M$(B%%jy94 zX9>T|z0j7MJG|UQtx#-P?v^>}x(LL+MjDOh?iLLa_GQIKVBnF42Pe^HndF=&kJfeX zD_o;38)r96U&n5bP zS$p$TM)-E8(XM(M@7eh*OpzIR;Zq;}DsA6%7d`nrwY%P|AMugCRs6!=_fUHtRSljpq+qR2ijB(G1V>$hY zs4Yq=Md8W`!=In;7ftzjmoBW9YJ* z7$#QPm9@>$w%OGSP4cXFF{&nC8=?Y z1GVxr3Ve#o6e9uP_s&pv^SLO><1*dVC>^#bp$(o$i#rMBsn{}Zk}mvvCsxNzcmgI| zr}Kf&J}rLwD;M2gjO5Z}dOka3d+);fze4Q)YC@AVNIN;{fF-5!L{`C1d$Ir)v_$D)zvnH((=_}YUEeCI#xZ64Kyva?N8d{49UZjxPn${2Iz z>^ft|WRKg#Bo4S4`jR<}S>BO6iVW??pri3-ZSy>BO7(N5tH1a5Zm|2c#H8YTTGlLW z*&2qGjzhGm^l7PoZ2d-Pu~rB`-n)LNB~)cai)E@&hhV=>nl#-FhpZ|1(# z#kPLxba>2EUha9f-c4X2c3dVMwwF5?ZgwFua|ihEy1NJ?2MELH7~e>X+DLTAZqzx_ zG->OA<#WfaN7`LC&bP-O$Iyv^*fN%(r3YB{_JQtLX7Q3I*>KX;Jo7!fJFD%En-6f8 z<#zk%y^HPSdCm9G2u|Bij~>4gL+>lU@rCXB+i!-q=i2$x_qUmYx3-!2E8FqM9%`Tc z@E6#%Sb`BY-~G~dG(1~F^aEZfO>2JV=ge(0r6X}?WffF_K$6}yIy=-d*O=@ zwclrc>|>8Rj-lBJVF$DZzAUx{ z$LPc?#!BxqHjmPyUM^4Q71=TF)k`r5!j~=XKUKe;ob_}R3~TgJwoOwQziRvh0^0MO z1P~s$_@j92+>$3+WG5l-Tfo_ZkBbjj4{<1l@T8oSNz2O7pF4ClAkMJOcZ_kJix)Pa z$78q`IRQu2#QQ~^BXk_PiNTyT5E*OP?-HE$E(OSY+8F3J&z>6S?RbZ8K1Q8d!%+Mn zva{BX9LB(Y_;A}^eWGojFWp`OJ-YphgS3_O$Gd0z9_1T7c!pC2I6i!v9qr_XRH{rY z_giniqU}x{Y!5$nCMUp6kbf6(sO#DGY2bGeyF9e5RJKN`f1YB77jzcQZa&c9ZY)m) zQ9nw#lXu6)nWI5IZ9m6hiaOysZN?bmZn6myWJgBB+kAu1G^~dfJ!H{dDO1(<>!*CB z@59eUS;Ba-rVINa7McrInROFQXab+}n2?ue7P_$W*|wgH6Aif{p6!#eHb&kz&~r@B zHlR8H#+ED>T4OPVZI^T#-&rM}#14MAma>h1=mkG=X8z=k8wI3euMYz#vZcUDr}^U# zx(bF8kr4hQx11h$v5{sQxgBA=GR1D+sjxYY;V!f(Q;vs#!3u6pr zr4OqdiK_$d9{qQ87RuKo2b2mf0!6w4x|B^_ndu;jQ*`0k;}t-8(kt|nCvi!eMCy84 z#GSBuR9eG`f+b}oXdxv!?aTD(<86ZlKO6KlQ=3nySXUZJz%)Aed>1{UNE$vn8Y(sE z7c}m`rYlh&$)?vb#G~hFw%M-?jL;m!3;WS zWiLi$t4Jeu&l9I|kM9Z!!QbP~-CM6dn2yYpbSfC%`>N*xcN(MaJscr@rv1{}KT?7I zg7<26I$X^JovWdAk8)hj2fy%WJBxwIM*iiuU)NstoMR|yH3_`LAo#c0d3wP?KMmgx zknRx%B)X41@DzFCJbnH-`2WTi-Q3*0{3R6Cho3sve(i}*KvgEg0yU2AXR z?%a2N_)GSjS?TvZuezh%cyzA4mmRe3#6^>8Kg&+u*KvpP3(3dxt~=bm^A*o+Z@_5l z?%qH8%!BQZK6xK-+ieab@AIC2w7rlW&$VODPHrSebN~2j?`l8umOtU>qJ{SV{O-rv zZ~Vk-qvUF&|Ht3*lJ+uo;mVg6vnzYpsce1f!4vI2y#KT94S)1`CfrcFP$Zw>Y#7i0 zrjfyK{hC|bPh;ry7;txcJpAxu?e(vJTYKwoy*o<6E)(oa=eg&FC~L$41gWO81F5oa z#}sFWPq+=4VVN-Fnb34RbhzZte=0_$BT4^rb*Cusz7}JIOpajgMdO znL!k#$|+??n%1Ok6!3B2Q{zDrWnU;2b06hz~z>LTOr@B*LElQ1Y<%WgFI<{;55 z5nwdyU&OQkjRu}_#l1az@l{a))`3WHba;Xbx|65i==j8YasYs`g?%+s5%ylFhB!alCPhlFp|*4TVry=wEd@A?7OQvRWA2a*PO^zK>;gr z!r-7#*wn7?uf3sRRBHgGlf9<}|C& zpwg)WY~bWm+~B4608aV_{^Z1Wy*h#Il`8YNS4u|Vdk}9AU*1GQd|~Rfl)`Q5bqoUJ z#k#N)12z*0Zr5Poqzqa<(yp<}%Ijpg#x1jBa!O#7e-ldj$`^U&U7RYU{$!g3eh*V0t2^F1UwcZy7!-Faw%1=KqkT%0? z5B7S~4z_<3+QLx?lWre;=`%E4>dAK(wP;SbK0RR-p@&IgGGpM#L-*c4heOT7GqF{K zVYvA82!`-I1EvehgTUZUypo;a;CjcOmui!%ElFXThcFnfXGOE|g)R7Es>GMSwWKD` zlVVWl=T4r4@oszQM2UTRCP(>}H04GaaxsR6C0FE) zG;`Tv@bV#bD&Y!O{|(B+~Ot9-6j)#@X;_?@d-B3C2y8BUic0#mZatSFTt;$ZnKzCKWemqcw(m#mG#KT`v6U$&1{frh#+P zi9RM(nDI^~R+d*%FWf2OSYd*=@=cl5fa`S(b~9y^heyantu)6_$13%G+q3Z29UsVh z+IWpuPP#Fx4x(M|-#!FBGiF|WirW?LtME(R&z%R}k1hWVbCH+*@+`&;4Z;)XOxuh} zRxpZ=jm=`PK!-srJ%e}HX%LoYS#V+5@TWX$@b~_C>D*zJA&)rA$v-D8vPeOFk4wEr&g`f4qfC72hB&|%saT%s1cvb*+B>W@@gt2$ zEDw1qTy}&|*tW5A9JRPZ!@GpOp@9VZO7J@AZrO>?@#8XjocPPtQ=MXu{w@ewjpgD+ z=?=w$^IEXg4q2X6m!O|;bLgZf>w(f|sAoFqoT$pRl=tbYZv>k>=RN!ak_>6=DE$UH zFcMj}O(0Z>jBoR@MB6xpfoF$$=#hq*R3&(cHe;N=!-R7Z4?3?qe9tpZ3VzbKu(VQn zOMN4^CSev+UXB6q$U8<2o+&-(G!I!QN9JuOJb6Yxr zED+*!;S}$IgKzd-h&sCpk!fgTI7zs?l|KI9rG$o~)`9qoVb7I}2uqsKm?I8}qpt24 z%=jdpolWvJc_vZ&?Y+K}k^zx9kt>18d#I^?p!1c6Q4~WtWZJs)H84Y-*=9%W1W9io zu3S|*2G!^Q06+jqL_t(Os@Kp52QGkk@8!glb%siNKK6csGbOX<$6Lj63{0Ou-ePXKVU_8QTlm3|Yo+UJROJ7ff@N5jAy)l0y9x*y#FFAn6 zE~;6kT{SJs!Np5u03s2~p`*#Pw?IIwEwYFCAuCrddYB!ZiHoK{8Qk6=wNx58`t;AM*#2X)yC0}KXp-;>Yh+rQr*GazLv$yTL-`Tu^u?$@thzkYqb?$>4h)akOpJv?LAAI9G@ ztjSv4O;=GHpgmU(dKqi2FHV=0xv8?ji8+O5X|5_qG>4m21!PP4j6r|<|0+D;s>&hT z3fF8@)P%YQ#(9vS=G}3oYh`D+!*-rAq+<>99z`GsJ;Y~i6V@^vql|=EM0j0A(Gpn? zinq}l50x3_S?jZyc%@(8yMKFm7He(dk79xN-859rDTl^TxDLS2^~F+G#wz|{>PukB zfo7SNT}{nbCrwHu8{?Ui4#TG<2BMef7b|QnUN=~2YIlUOoYyC4Vt?0;otUbnf#gKp zo9`Ged%Bm(V<#8NiHmdS4z1_3ck&AC`-j)dYkuGj<>0H|&gm+y`I_Bd`uG1x8QOVs zxp?FYWqsmTFjs$~yyH+$*#-V5&a89FxUZbKxL6+NgpMiMN+KUw@z+yYE}&E6>n^!ei&m%5%*92bQw5&rp7-)5Gia^H;tZfx7IVI?g$^Ej4i=i&NigCFCj9yZt6nz-?3 znK77cy-l^sN@5dcJB5eqVVFbq#H+m8aFZkjMC%aXo zxE#?x2u&X5fLAl*ZHf&>WEYw+4St&OtnryU%)y^I>c%4BGfXll+0=#F79!K3j~}T- zc6-=R;T+LTdp#(}yP($-xEq)s?_raJC#p9*k!yKU9`>cSiQ>(ilrgGn=WF(>$cAev z-p$)bU%Amo9W>u=c(yK+KM$m+gf+h@b>5{V?KFPUSDT`=^b%@u$PC{IZ~x&XZhXN; zUc@Kd<-g7t4YR^o>oXkQiox>9MmNgND>jTPc9G&0`9Nfp!tgI;nFN7NTE;UUb=;6~ zAN-LTk!6hRyJ;mu4PhcDJ-AuZ6IQ;O_s~*tcFb){mt=`4L=uk|{es@Q$e-9uv!r{YchG?e!ypRGJsm;eX2@pQCmFLa@? z(*DB0zt2a`hB?XG-v`|ZZ<90n{~xYRU&hM7%?#_%(=fI3{rA4SSZ>;s+Q=^kQx(3` z)3fEnAN_0Y5ST5$^iO`O+8Yex&@9AH?i413q^IedJ4zm5<;12z^s` z`JuZG=Va^0@ats&Hj26Fo$Nr{Im&>N0q>}TXa0s6JZ@tFLWN-}0m8f+<*AEBt-C~8 z7dVOQfZ0jFwG0Gh;fuLn{p$zHr@nEdoEDx&;p+eXeKEJZ8P5LK;jd$U`7gizMES_=FM($-Pd?1cU6_Kt(p^9fKEr*< zALM@CFMsEFU4`1jj}E*I4-?dJPJsL*iu(WRJ+H~#$}So{^5~KB!Qc3!@`+D=o@_dp zWWYnC5oB2$IHOm;Xzy@;?}C zS!NDgZ2Z?qqtn0<9)*-arXvi_ot>eBa3?Zt1p8&%Ie!{*nkRsI=hrl=>*R%y%kKh8 z1AmB@1L~k8BcUs4;v*6hGmv-lnbSr1T|U_=Q0rRQH1k9duaR3<0^O-D-7N%D05l7TtznlBSan|mWCfB2Z|LChL0VHQNK zbNs_cut859z`EmFn(IW%iHg^sB%jEj&QDEjEwlM%o_3A7COngCm4BuaCy`rULW58a z)U$yBp>sf(fh_RS4NDqojjWGlCsqQ)*(6Z?gsH9_By_%$H^4Izt7YSYQ#ENTzvX3x zwn@p5l#zSgT%dmqG-uM}r)k!KhjPk*h={fP2oHJu(B_de-~1TvD^Ja&>P7KoVq{z4 zJO5KBK`0~L zdMDz|4tT-W7|*2n8usMD16L|At(_&v@SmYHxHYBE>a`DPA z(_LY4NgDiP*&R4MEOc9^y%6i%$>7f9Ya~Cy#ViC;LoK`(B(~!9=A?f23nw zkyp^*=CYajMHY=w!n0@?x@bQ_54b!@F|h8UFg_rZU4F>h73Mr1##`XNIB}W2rRt(* z;`8ldY!os25U-{$e&tc3LBNx@jxz~eo&@+bT{sYb$6?YL%QE^k^d_){6SS`00Res! zFw7)P4JE!cMsu23LFILg^w151eY(@)gUqc^jBI zw!fU_-p>tATiJfCatG`D^d$FOkCc9hxNs4(%}m55&z*peY&b_rwL-t|Ni;VLc@{wv zBFlcOTNftc+_nCxWL_^ zPxj7YDw=Ty8&g!KJHGag*kMj?C~ud!}5PUctIRe|h8p zZ9tO04E-LH@JA<>%bv;gGReKc{m`JY**4I+>?zJc))aRzAKx)LTDEg~Zk)Sr2cXe5 zv=3!xKbh~xl&f`dnl;TiPJeqUewMpdU9WTVnEC2PxwN)i?;7r6U2AC)nl4OWTKH@^ zfA)M#8+)oxIm;$0#zeLQ6O@yu!oAm3Sp>D*tS;@9X2AQ(*T3~pnRxyQ4xzBo48DjS~Q;W~BKy1q<39oe&& zyrQ(6a1#Khaji2D;c3=f8^$2j6M+Mil^c1qtg;O`xHNa6?7Rx4z00f!+1xaD=1xo@ zk8EIPY~%gQUY9qz4-?ajLC;fXCeA-!Wq|nTHp~1RMblym1}N60Y-hiG&O-q?)@m| z#|WP8GDZxx8MkziCgoII&(H{LWu1xc{8&NxYx-jxC{m8=NR~dmkl@F z1EXvXfQht$>Cb>U{u~w&hbckA2S~doCbQwOZ5^_e2F!*R0h906fe^?eqDCE#SK40M zU!JS!Pp}k)Y~`+D;w`C6Mn=S;wX6Y@&Z}5BaIO+F@%HaEnbdvPI&GJeCiTj`#mxbk zr$L*B;7!n$Z~kRY4scy}Y~V=DzM`f|nC&#sf#Dge4s2et zNIY3BAIwvmV#=jSN;>q*G*u25Bxs)Gv8Aj5 zuNtR~*{0eOdpVA~^j)y|*eAZgLRnS#zV0=*b82&M6rcN;X#f5f9x2Dqu-!$KN@KlJ|-1Ok84s^UUd~;9aIed!AFZs}4?CXc=X+ zew@>+AI7}O1mBDX)QGeAg6SRp##tbX5**XXci(lKaX--rSn3W|fbgB0YCRu9Xj>{Jry^zcYi>7JiaEA3w*g zQwAeypWc1fjZyR(e#edb%K!BKH?zBSIrr;2xo{%tKv>1>TQOh#36%DXw%Fy^Q~nhS zR^xAWcH$>7r+p3l+{eAf|N6&XTmI2A=a}d$mU|z4zI@;;?czOU?|d{!7_fAyP>l>hbDK3qP1 z&o>#gLqDBcI!;>9+E|e`qSui=in(nl+oWup65bJaUh*z*rNmF$WdD?9z4dca=9`_H zBBb+S{&I4cFDF6)BOqvPFdd{2A#g^*&oCR$n8}lV;)YfeRao)MqBt=6JE+WrmhTKA z98i#u1HbI1WJ2hMKo`1JDEpZI1SSg`JTn+2mE84c9Nq_!lL2JcbmlQ3l3kE6#}3I; z%xTC;*98bCLw;wy%slZP&d7lH*A|zr(Bx!P7iGEmgOBFgywu#wT0Zy!fuPla%Z@Sl zE3oL}7ykK?|Na0QKGZU>lhTQi>Kd#qcH2^SnI^D-QD)kF$VYn&UH$bD6C25OE6qL@!*>=gDlFgoM6TD4KqaKh%yG(8Ut?c$Q3s7YaHq0CuBA_ z{b&bQCLa)E8Q#dmWl;H(lml34M3#tTQpOEsq*0;tsre8`m4SFwPhKm(kwN6O##c$l zK%0qA1}5Sqf!Y@EK|*WZFT-TTcEWTm?}+v$)GnxquhLfE9n@C}8^AoItkPMDs(F-8 zhP=>;OPOoqZGr+#$Gb%d0$-KI`gZxjTgNq}()sqqc$Z_1N03>tfB15-cghpApTJi)1K4bh$|3c_eUX&I#nU>UHQ zJzF)asPd9YJFspP8pIZzZMLRlRVv%oxzVfJ9oxVzvp5*jy~$9`vy1oHQ477&?MZjX z3i`(y0S$ey9B@G$ftKhIv%BfU7ddq8p2Qj`;^s zR(di(`QE{%zL;>ME-U9cl|4g@QFn2dpkrrGi6BVvx9l7bE^3BY+RYm<<^$A`XK`p* zMr_JoHd!KzrtL{jw|)-L&(@QW$_0zVP(DmuRzV4M#Dh-g>7w3RK7NbO&5omNtf*$8 zZQr|D9LK~vfkQ073v0m(D}A0`S%zNApbKwH$P-V~IftlnOi56QEtfD0m`H}QQR0!Idd zi=Whsz=urUwmSR!WGithyc}~zV410Oj)*4Q(Ifvdelrari6g@*7Gojf$PRqT*wio+ z5CnX-y)v|q1z8m(-JC3xZJzYgspQQfB4t?be|9l8sU}>xF>g5?)x?q7nva@yH`t|~ z8eK|vbKO%Fpn8|J1kP+rB=EoEG{ai@t38+|lAr(17 zts_?~qM9mrZOgZ_soJ~Zor}W3$bo5Yn+}P%6=Ixv= zT4Zr{2D$M%5$l7dWd~hAhko{yASl)!X&{`Ze2NScUfW7&p?+=~wsj^B{h;$SP=!C< zmDvYwPf7KW=k1u_x6OBRu}T2j9Z%h-WmMMq^WA>Ha+K#*ao!>$-Lym9o^qjlDuhMt zn@{UvM||CXs+Syz_%w!e!rVc_Z~Qo@V% zv<-F>iyOQ_o-xaS3L3`Qb1F7SrG*oh^qZ7vroQp*1{mQgfADu#YZU)nSHYwM1jKK+0w3YM7ad=|v4cTKkCSkiHdc+SI54C)uSW;mTilB}4BM z+qUGuawjYsI(X`5vxj7*&Z@lR`r%TZc^0MVw$g)w%eG1rsxiq*=8khfp>$8u=41NY zjYY)o?RV_vUoEf6*>kCDFF1~EXGiH%$s6(eVX|iZXK06(*O#cPMDF1fqJ5%W6=sT;u<@;a$Ual#|QS1rVfB2Aan2D}VWC zUntjKy{pU@ct);>l0I;7bg}&S&%K&M(VSGDohnn@m;RmmPnK`q_ciX3?k^Wk_LhC+ zP`UdZcXA)~4rG>lnrVl(?c7_=J^nbS*vFB-#q!+ZqbRyZk%i&1_r{l&`HPd~%#kON zIqpqHMh3_Bmvd((%G0N(%j;hM$})50Sb6Oa-<^}rb5oP$!Wr(w<>aB8TL#!{HFou0 zOpo`Kt8QXrJL{15fA*eo`t+GHwqvC1e#zBk&)#jA-sS}Lj$P&A$)ju>oGP>2fqd=t z+=)4UW4ZL~*|O)x+mRE@re1oUayZY`HT3E9UGwC1dFeDf8%0rz^0c7rUA<6V`<}bY z+NlT2BVWD0eE*OCC~4nVmM4#vi;sS`eD&VbWww8~yymsnm8&tGJ;*$1$Kg9M-F>i} zf8gFSKXI&F``SCpGN!5fhaM{TaV_91nso>-wX7aQw+>D zmO1UqxR~h|uC_;!v9#yJSwZp5rUo}WE{u|&S^DOwAvW;S7jWI&>L3<$NVhr!1L1I8 z$hEjt#tyb+3hgj!%^TDq#b{&2(Wx)Q@{cis{eQPt-5|3)-jx8|wp)(hhwR&l=;+1n zUE#_+&$uROy|59+_449;(SBsGk4!<&Z7&_m)qfM`m&*Z6PfupELn#M1HNSw;{_u_0 zl@ZKNKlQ{pEGseQu#SP_n*CU|!L;}D&$Bj;EY~W>!7Ad-&8@S3zg%`x9y8O6Wo%rl zIGmcF?k=~#a!otlqaPgC?;6G`!)kdJ^X*;?P zlYh_}MLnRAf5D6fdgqiOw#}eH#&=NC&>~$@(6Tn;7QQ=9yu!BmNUD0)GEw0>c;;A{ zrEOZ}ZukDFbBUTH0jqqh{79K4F%ecGTb`L0eLxqv2tg*?q?=GHO9Tl%H3@_?gfipt zU^UTj#>9am4o_>Z|Ap6?R{hbh`YNlfT*WW(Ygm5$sh@cX4)ItioWN|NsS_ssp$E8x z8?_T^?92YXQf9rvHTmv@2M=E|!lM7K?#jrCQ{g*IPUNjbbTBsFo70z3TfR3X9`H@! z;)%fMCmcU5%%*7H)2s0kx6N^jvw8-9^ZIw-`}-hjcqjiIOy518i>~f)`kT*wwLJR7 z)8%J>@}1@VKm9K5@kL3A((ea3+4)=C{rbtTKgoTP3{qW1+sr_}`Frr#x$@ZWeXe}y zo<}&X`?B)BH{M#V;#97n-gR;JZP(_nL(&y5&(R?~hRNkQ26no4Vd7V%ahud%ehV|i z4?GjIX}4a#zkJ~C+j2r!SWopnjk#z$1x*?K*sBk9P8ffiyMbpJq@+SXrzdq?*n652 z#Lr@O#X+MZ!|zA=yd5)bcaq=ZlhftY)I7W1xc`X7TNlC3pJlh3BQvu5fxB-nANtaF z%41KSpsn60-#9*j$>{@SKT7Op&Ri=0_G4cuCox-1FIL|7gSTgrA)Qw`O*dbdVR}Z# zpN!H&{t^6pFN*AU-FZU?T+`C-JZz+pfgl}j<5Ys*g=yt)apL*ke)MbQ+ec27fAhXK zQf}8$EM4V)c;6e!Jr6${h4?&^!H?f}B+6bT;w;K_T%J2QrUzalz7nwvD-^Q3Y{^d)bwpoi;>ZILECYyFlfGQ`6 z*VH5zGFYCg3)#rG*eVRqps)CYk+_;HGfC?X<0=|%8e6~Np%UqiHpBF@jg$ymue4wd zt@_9*2LmqdI~cbUZU-YSG)jb<033wz!Jm#rJkxGG}M4BuI{WF-8AI-O! z(_fdJjL_4TT|D`zp*(r1gPrQr{#ssSf&6Thox}&3lrelxKHX^I;KSuKooVNk5{0Sa zfjI&2?ii;D057C7xo5J^PFDvkeaMdH7#)bZdt7BucK!#Kiwx~B2RREDSeQWuGWZ9d z3wP@bG-LiJ6!-(bz+LH-50;p|l}|!Aur=?N0jXxf-h+862hbE8!1@yx7#FeZ%OYMz zHej>kyY;GE05%n+0vYC?3wIWVC&%kQcqLyN-dP7%30L~$0pe$b)FH#HA2uh(6+d20 z8P@x>JxQS=X~l$?AbH2OC%P;T+v<9^4rx%XF7C+xa0cQm7oEJwB0hBFyU9?MQ~eqb zAdOq0+Gi6kUH(%pD?o7NhcE|WdOOJL0EiYEYe*0zNN-;>A-IC+YFcYAlrm%Gg9L<;hRw8^-8cdT=3v+J$P=0ZE33f1d{(M zO5CK;$3$=0UH_E3Cw7gPJ9zSTBnwJ5X9_dMuMscF4Yj&)OI9RMLfs zZhBg(CksTBRD@~sUs^qb4HsrZwCS7f7)V3g!raaW~1TPi@k93^8 z*sl9&ADNR;eECm&f*PvwX6DpcQIRg8iEmg<(ciYOJ;{kCVem>{(ZfQpbXsl9w*B^b z79m3?a4HrxxxHs6<{~-e;X=2k9J1g|*^N*K9Rp+AuJnn(x+Okfwo{JMK(WJj#~N;w zz|K*_uvI1NZQi|JFM^i;pcs4Htyq?$_!6<_k^(NdjiB05_62FRknJi)E`5I*V$KRYSiyz_m0Q&U;*g+qx!u#IJm| z3m+B8(jbg*>#}$%!eHeU+I=+-Fk)RLN|UZ_u5E!P!)2HoYPPM^x@{EO!eJCEF4Q`X z61RR{)3AnuA!z~Ui|OdvXFmK&9%_b?cLId2J{79{6;>>^C*$LsszPqhE}Y6@ukDL{ zhVwt$x*aGwRJfjHo;c14H{Va4xrqNr7I&vGt-MD6F}`~T^mCGoh1^}cMq`a&Z5Fd~ zh+V7~k#XnC10bEH-5+Jaeb5uU^mD5)Zuib@oD`ZTKK;W0vIoE9;~0y>UC8&!l;%i1 zX^7=5kD3_{PFr68r5&bR%u^3M>teCo6DqsLcZ3HQE=+Mc3I!H*YzBqk5cOe{#s0~Q zo_14_#4mMKDIeg8)WjN%Dl5a>s4LF~-Drs5^n+&y8>HuGH#B3rbDYyF)EQ5&*{7&D zv7bZKk!#Dfw$I9Q_z%gp^SWB1$QHCKGogbxDI>z&OQ|T;v8XV3rhzeb&3|OlPaF`D zZPRH##1{Ml;O*Vu&ILypGq6&EzDSJ|@=vgNZ^wZqOcpB5@vq^$QU@s)a8MK>Nm$z< z7nfbs(-gLWp{J>AzUyNabT!Pk#zzmskqQ6lY&C29jSp$c)4&6pJo1&fD9NQ+;@i4d zH)asWN-J%~g03w7CY_{I^G8^ihQDocb-egr9?;(FEfzlEC37NW2ESG3mrV?Tl*<;j z=H7VXfiKeT90?d-Z5wQpVnWF5LvgK0)40oQkWHUOomyF5WGqk>G)tKORU&&h5lWRHK{wP;mq_1D^(zQL zFQ+Lrv%Y{LH<>}n*`o<&@@=~~iXvbe6BsQMD4Fy0W%bTQcm?x^i0>w0PXy0U$36Vu z9CL%Ze~IzNI(_2^W`##FhwFwdddkv^_P76ARH#+S<3?F;ecld8nNJ&Z%+|Wzy%LLJ`bq?d65JGS@Nbc}aH(sg ztaCkt%9UNi8|9X3Y5Pch3xx_58Etmw)9?%LFHnGe3@`ZU8_wAOXa0+S z76s@B|Ciq>Uw;ziFyYp8f8uNKmRY^Q~vrB_m`(Xd4y|_kPF5x!vnj@<3|}= zp#Z&bYO)+Xd8V8`HeIg2_J(rme633pCl<@2_oF=JK4k9{4!&u4K9t(!k+=D!@o3{kq3t9qq*~Y2No80jFtKG zoRC}Jg(bvmnG-P{+~6*3?kO%CJJ>|XwJhi8+q<`+JO-9!&v||>P0}}9L=nD7|3iHk z-M*)sJvvcFy0(|y`>reVoaR2lHGm73Fn@jyxgEWw?56+dTHjsHoMj9~zqI=FLuLE! z^JR8ov0OUE`WJ_Lyvl2SVzRt~gFnyHr%f_OI>07@S03b=57uptPI6M5^~PIv4wN(V zYvmiyT`IHGok8T+bqlMz?Szgh%X$rCX~y~wKYhL|^*>Vvuc2elA=O~JoPbZn=-==LR=E(aw?dd6N zEeh1zX&uYeIiX`(N;dIr|2yv31Pj(_2XDM? zupHbySSHSL-U$3 zzPVn`bI9se>eA_nmGbm)+EALa70ToX-gIp_&4!C(&&-ksTOE6T_(GjPRn9kKOy2FM zbk4&a7vr67s4mu4<*Mzz8{K*wlW|{j?hJ-6j_xc;+uJnbj(^~#ezhlI6J0L3r|iLP z>$ih8-1hs-Jf~|ZGdJg1k=?Y)#b9L@xCW7rx7>P=jU)5rcfN2uW$U=gnT>N_uQ{l6 zO1vpGy2o-)U;h|FgE zd=F>o|AHIXtn~t4H^7M%M+8&UB_+QbA_EZ`YdQ^3;;aBvyaUj}RJjPU_~%UlG!Y$u*4B#D7o3S#1Pw#0_ly5t&cTa>H;J?%&1WT|dfLg# zK!d_a0|U@T+WIueI8A;78WNf~Nuo(-Ys~NM>&m1zquTuby6E%at0;bFZ|q(#jNw|I9=;$Pw%Ao@I4QgV=6sez-e3G78Qe3 z2iV_!>J*LlrSeUbjvu)D<>k#UyOu@Mx>(VIzSy&#Drsr%Drcq`oU)Lin?=d|e|_$e zGUaYmvhcGgl09|YipRa0aHhl6IbirWySY?M4`RaZ!}mN^&U;dq0m9Xoj=uRS1}{vC zkJ9-p=&z7M`*oO{z5}J{^*?_%iqYlro1cBC{L$whiGpV*yV&0U?%Q(uXO6|QH{E&- zyYQFFzkL2&c40orF3~SPezLsh)i;$t|K?NW0wz7=(cP~)RNjWNv|acOft!BLV@}3X z$u2^@5_2W@bHdjJ#{d0q9!NY-Md;jB?k>+c7KC*Va6($Qz~tb+{_s8Jeg>7#qqsf= zzBQD`x81NW%3fh^!`$@`-*t$*JjjA$Z~5eXN6RPff2N#Z0Q9N*kClhG>-af#CH65W z_$}_+ef6OO;g9zryMXRu@@A(Qlt2FR6Dai`F5hIJ)y+ zs`8KCavSEmcQ7DXD^EUoto-|5|AX=upZXHJ#4-EAqJWb(%cE)1c(;w%ntr}hsSyO* zStmxM-9l}a@SIK}tTx9sar^^7Qd>CVxnpRxi(Q|=LJEARaSISXMDo>ieDPf~vN`Px zEq3r}H;e~JCg3!LDygJbTu!7_Vwoe&hG!8l_`u`n&9sGK5aOvW2O2Ki*>HC=;i?Kq z>YZT5(?7%zCOr+T=|q{F#XICjIB2n5?qT5Qy}i=!qMCykQITrxghB#?Qaz0aTskLY zz-f6+15b#Mt~Rby?6{^QwR7+A*~D-icwnTlEi+OgjfyXT{3IQ5uMmKcEGg^2%R}W&Ubn7NYko}C z{M12#OD2Z7xag@>7cK_m9g7ibOx{;mfLuey+@&oKR9FncN0rUeJdYo>HGC6KkV(&# zPNLw0PP!#B@OXR2khmDxhKC!Pek1?hK`dWgc#*Ht>{vuT=rRxhj|+R_D9BWHYd-TVv1y#Ssf4GtSgqL ze6nt;IFptpH$2G*VRF;#8>f27@8%=V`eS(YZ#?BWuSwQ4;vFm%5)XM{TcB$mNk@Jv z$JK3$qlcdawZ6?~KsQHe@g|@~X_L> zl~MZWE<@NxxhbTNiOwp@Fwfu75%UBabwizt3)TyqGz@MPx(Xihwa%g!#h-5{w^8Dz z2B|!7f`z!N?c#X5q>@UMUQ2zhxEw?rC~_sl^QT>M-VCkvz{ zfbXe56&x>@`=PjlR@lHv1NAo1C}Z1s`}GP9yoB+kf<2j(ucU3Ajd?smEhFIrqMR6` zCJ@E9@k32WtBN<8xzOum)^~YlN@)v7!}6~EbmemvTw6cs0oKIRPO{ddshO zTb1ROaobM8Baqwt>hdJb+x*c(*yNznNHGgH!=jq7`$*82FLgT7_n&P*u@Ky$l`}j;k=J7<2w=yOo*v8rCw0a zJ<%&q-SFv1X#hpCV3xh(P;pUpSxBTp^DgS9Lj}fh6bm!}Xd-ZfzNOuC*2g?R8r+;< zxbJ<#q#XpcJVe#af_iu=jiv{D+a}4ej9HKo%UjD5p2)1V0$T9%J@v>Z|AY&bc?1LD zre71TQck)+MaFr0I_MJD>X=s***&x`(yN0a69_*Ps&4qBB?J4q1cA58qIok7zv(ZD z?>H_S3GugX*7{WG2zh}v6k%+trIogU;{)0)dHva0xWjM~qJ-yV>7 z|EQaSTp&`pq3PHS>Qoo^0$NWryXy%b`z8RN06s-pk0BVTi$8r}} z1=;c|A9HV`Fr@1yI~B)u3|BXd`fmMqlhzW-No7~1lZDV_o5y#O56hZ&eBF2?ep7ai z@8$(6I(TR};FV>k;=lrxhl)UI3hBAXXtDYy?z|@h{3s(lYJHO$OR1(4zra~DYzM#t z;=q_k0F4_FG*V#e(|%5`1`|)|ua*G@C_DR&wHfa-rfF!>@Gk7o!c>zqR*)uVgCo zNfN7d4wL{pPBE>};ghJ2PK0U6kq)U=snk{%{aP0|e&m}e@lhvYf=4NQ$~ z-zc+_mJIhB=NM@7yexevs2Qr~RABn&h7ia2j)SD|GI6dKAgg#;2D$;@cVn{D`N1S} zlqF>`6eF+9(Q1AvC-`Cdx-}CFssq=-Ch9#5?BT@c?9^Gz$u5?i zyLXl8nOQaf4$+`6nB+X@o}J8lIJxU7)LXAF``&g( zdHK$j^6Wzomb09~z2#M}DTi;ntvqu7H_NxaaUTj}6;&(cu9qJyH{J5~a^t>{a`MSX z%cGB;Dbt)P%vuGsdfM={ue_#Qy|=#{dGd5QcA7P;=8jV9YU&j9c8#!kg^e%%ZQHe{ z43F(8+r}`LjiPrOn~%mQqXYYQlfQR^C=o4LHkVwE;z2OFsl zzhqar^EHQQFHv+HxUuwHcUKwSm@fBy;Y(@HMh9sdwUoe`h+9iueqDcg0EB{Xzx zV@LSHQg^xe<%i48i%+v=!<qf z@Qz=!d?lUb~Am9P&1TB5>E}0CjY=972)rMpExv z-ou8fn>k(Vz2Uap{fuR&*?>jIo5pXBlgLlAG2tS4J&yV2=TDz!y!$QsU=+%X*WK{9 z(fu_1*(i4&+FSPBa&8IRer}El0Rr7A!?ONFY zW#7xD?`}6%k)B@cyD zz9B7?*mTAt-AJWjo5MSpI{r3{?ux&_sn$RKv%h8VI#GV{AO8e9bM7dIF~$7P-+f29 z;lLQDd@+r|iPjAC>Abc$g@KOp3 zh@&IdZ1LB)JJ!l|9_6Q}8Ley|;AH8+J(_;*!VL2T@X-Mxc;hUx9Yi6ycWj73{&3Lz z$yc9*dmttJz}WWkFW++)gCG>z>uefXL3#mAm6Z{==X-592<4`O0@ zf|D02R=-Mq=NRnwv)FUr(X-r3@g%Fp@I#Z=4B9`(NnY=>afi4Q>|gq!SC)@|<*^KA z&NGnsSHJUFcD62*GZ&^AtwAe0u>L;R+Dy{or^YKM5+FJnDzcVr>vhh zuF7a+=7kQv!P-8`@lJT+Y2J5mNAMW;&}c66o-f{4{hJB+dmovLgGNq}%dz0u2ChJiTQe#BF>P7D>+-5=mN4 zz@4~AseE(+D#gpU3U)~l9iP1T<9B>S7Flwaqqwr@*#uQMVTofN7(|1fL7)Ksks`#~ zOeG3n0~`S~Pm$01k~ExFtub*Ehl>Zp$goSrm9`Mpi6ae09Ui_Vh^F3zP65Ko#lH>hdRDWY7Bo( zpax&&ze%-Uj(eKu)E7^3(jM?sHf&4WHztk+PW&2gh4zBI>OrarzBS}-mO2@wgKaxN zp2SfB;elZ%j^cB1UYEKFjOPn!5-NS*w`pW;IBBq4nflX%>?)Q^OtLL|)o0$zWPP>9 zJGr-AaDmi2XeC-J52mNQ^B{(@+0+*^f=fMUaQJQhb?MI%BV<)#5@I|#=F|FN>diNa z#GlCWzP8auttDYvwi6ZFzRn4|%w>69Jiw*uNkq^a!FQhGuuk)@?f13#AT6OIZ^F^; zZ1#rJ@-)PIE z%QCebOuJnmH;;13zRa>Sr7ThdBTtNHUuQpQu-|UB8AL%j&4#ib`NF@!K}^DtKQ|nv zA0++=3vDildYaD2E3BYo!H_g6ucSHL;HAkUVV*c0B>oHwTILBhKr$y_!8gqbba$&~ z++tMXTQ)Uz!1d&xd1}0U^*uk30{#t-4DF^bxxfZPm8L2cWTBQU=m6M==;9C7Ls>MoK-2B@M?pkteZ0hjL+CBy1i)A$B3d#lb0+{`ie@VyY@ZHkDgb zE>$LpW0K%$Qa_REou>lds`FzYVDY?O^Z)n6wR)<7QW3 zg1F-yKhqE2rOQ`gI+O%|O!ZNTyIJ60z(k<3+k?CW6yCWBHrc2iwY}-2QeU>F+@#f} z*Q9CsmRa(sUkGdw$#35)eHSir&tL$$$|UAUD?e(<*^*ga7U(+t#w8R%1!aUMAExIP zn2T}3j54)dI(wc4JnIhc=a_4^8(gN@oNSvRr!S$PGJp0LGi<_LV9u!m*|uMWk95hm zbIh}C;~eK)?+u*lM1W`PwI{IG(r&%{XOn*)%<6 zj{gdDxiQJ&wVgdrdty{aESG2t8btJ;dU9HVwocks$-C7}rOtWgx#q`q=Yn^|f>+se z?C7aTP5WyW+kv+Wz5z}B=}IN;SMKW46R!7P1_ zi;>riDFA{hAZnaCo-wL0LM1yy*RJ_Zl{k{tdVGA|=2$(=ha zvMF^LWoT#;F9qRzlob%2Fl=e%tmvPbBH^Uhj*a(fAFE zW#PVwGWqP0a`LIuD4NkIBH;E1wU&03Z=AxS5962L{?(6^jkC{|qg-p3u|gUfpdwea zC9_@SH-GnA9Vian2$D^MY-` z*{-r?Imc<-e*8Ts>eUhS%hTiu z%PCskIdOqWD&=)y8p|H=tJ`*ovAkmtEg8&nLVRY{me~0f?KHA!`ZQ1JBc=KIa>){^O2m$+4^Q1k9Qrb z8P>q?XnL!RB|J5)5*bK=kVEUI|J>lMwT3F6%DH1!@t6y%COIlsQ9km127)hOp{oy? z-9B44tl2k#3Dfw)%-!6Ga~6vMb8G-`jF1iI$doiXHuB(`GHzO#ZxO~T1WS(({cB!q zBGOhU1B3zstn~YGAqAIeJqy41GAd+UfUI87;^ zA~X>bY`7|JXyt$W0@s2AmU%Dq$QS?X>ciH`JQ!cz)%TiCh3othZX4PBhc@u~W15X? z=Ny;EAO=_};0?`fx;2{ghL2KXCc&3>OL+5RY`mqPA_%UALO(VkAs^5#eM4t4=Y0L` z^ikubkG|J&q^SlQc*G~}$}B@nS7eokd8OF6Z+^aaydgY4TjN}b>&4+VC)Oa@>?O+0xZ48Un$-93wHZkTR{(VW zZb|Y5X|!>LYTs*28>lUD_5LnSxZLAQ!|~aBzlmwx$?|jWJ6+!M?zfb^>?r&x%nRSJ zf2{n@XCEn_{KgY>7If$gXs@77%@GYGJAIxzS59!s_iHGJfAV#=lpp{8Lzs5nzFCGk zlnkS^`)6-^1v}?1l`nAL?Zm`%`Tfs5i23Lz$`ljNIXZni|6lr{SCyBrb1;n&u^-2r z@G%vx3LQCp)#0mhg5uceNjhT$oeH)G= zEl!C#!F|3?-V8TvCp#@wp0-Zq^n2jPzyIi$xdWv)%Guxi^n>N$<7YGQ{Qg_6DR;m8 zx+pl>I9EPTTwn*kvvU;WZ@A@P(R}jnf93%ec-PCXad+T56=eW<*i^l#+UZC$LoOsNg#5zNYbgnN1a z{2NEgqbTq-u_4Vb>MRB(BEwAZe&!9gmVfrn?Br)EIhMs|BsOsW|HQbU}sETavH^+mBe%Bk_#Jr+CF&N-GQ#ViI;RexG!vg*2C*tod%9?^b(Ng@?k}h}J9or)u@K>@$(SK!gN75X74k8|L?!aff(V(& z;LUcl3v=KqTeCPt`{07PCmwxzQqqZ_={Pah1fh}LVBiE$Wrbl*e_TJ*We^Gd4w_v$ z0eL25l8&y7cy7>C34;f`tBR*OP)<3KjsxH1n{+HQOUOaA?M?>#ZN}{fnzC{5)b^Q{ zKn9#igXkT%m0^`1;(rkbDA{0QYF$P`{059<;_sx)zt)MxaO-PFhTFi+Pk=7N)__nT zUOw}_30}X}Z4UE&b66WO?L`~miszMa zonzvq9JYgg6S3@E)NrzJkVuP?uMx}|cv{Cp0z+ZKyrB};)eId{8Ao%LQ9#09-K_}=MI{6N& z7GHfDuD@T91|lbGJn;8Vzr5p@>eMDyk=1ks;4RU88n>b%FW|#Np1XFZt1?pgXC#U$ zJaHjKrFY8Sx=ChDuFe$!%12G7O@nm=+5{Hj!P}4G!6ed;k_+FPR0wC0mv8B6{ZiLJ zq+(J3WR%e4S2-nZVJr(3G+j1Ag85IPb$D$~$FQUVvzFM1qrAyPaV)WT6eYC~VK(x{ zeRh4+g~8!rOvGutjl1&5XNx|x03Y6g%CdpNELN`=h_kE71exN_cc@|l$!ux-4YekFw^@MYry6>td)RE~!olM0u<1Nn3@+4fQ8V)Dgr z&5ryrleUNUEz~zM9r{flUb=b1K1bz=<><*&+o?)3X;Pl1DGiG#h2^DvIjtJwGv&YH zHNNe!ZKVob$9k5BmY~e9r>Y{Sgs*bS8C^iy#mGPLOe1m)M#t4sUGqRI%u5zS!JBa( z%<|d(Wvo|$i3O~MEC!jLLaub$o>$EE;g?gb&;`8Zj(&jlmNo~T#w;*?bF>Ew{JEH` zH3&EIWUT?-t#UF%yvCImDl{w4ktyQfX(OC45RjLK3h1(5aQuR51AOwO$}63X83x;? zOo1kDQx@8k%%bmCLgO9Z;4xp6cX)=ceM;)0NGo8V{gkc|PBN`W0b*=vvnK$sh2`1i z(>Sg3l-$Ok8&>+t@alBAgrY<^+j`B1d!MrMR`UiC<}(FM`wq@rS;@Dw31isSoNdab z@q}u~0ywgE2?gcEb0^CBUidw9b?O#KNDEAqg{SPZ2?Bbm#Vg8!dhW(nPcwSWfMw9b zNnVvU)<>`2(X6}gslznT11!dC?O|h`6GDs+lzBI)m?t+6uAnH>x=eTXH2uf`YcbnU z+Hnm5cmH}nc@Jh_`#2$MpSX@9whP5juP6GQA31k1E_AQa|G2Qf&UFRn*bMW)Nz6PC zj-nI>ugV-6FYg{59K|dz%veA{v28ndtD>a!6ecyWwwbi6Dstqj8_ag^-NmV8wkx9G zT47CP=gz)z*PYjv+i$*#jgMXB*qK!}kM-vCXFn&+1~D_*&)>G4D0}zqjs-feH(Fo} zb<&fVizrTeIb1P-vVuEW2S$j4EcDTD%i8BIu9Oq(gnZ!HOKeI;8AG;uySbZ{`Qfw* zG3bNBl-EWV7JN|TKl&7kV&}Q=b2;M(aN)0XoSs-Hzx#iFoYT=*{oB4jiji!tL+Lq- z0((_cy(I>V-h1k@iZ2afgu+$YY=GXPVW zYGa@@+g4+GpEWaEW|7;D^il?cLu};Z5QqK4DzeZ|oF$arkdSpj<<~h26)Y*)CfN^| z)*xdd@!CE+FL#dHw8Z@#F zid?O;X~J$L4!p2z_fl*ilIq+srxhtr&qtocj?a9zSy78 z_R(h#ZbJs?czRiH?puaV>V{d_wU0VJIztxNBnEA+Ia=zq_<^ypOT_#S-=aLme`Gsl5Sf901iBt}*3190w zB41^RcXQ;rl0Brd>UyV=t4!&vH|E(K=Q;#@a`G9kh%p2yL&j77R-nuIXS=>5!P!Iz zjQ7}2VFrFa{m(l64u6!bxP`0pajtV<%(tI)^RtuW+qM9?cipb(#etVD{^TVuT5XW; z_5t3hp7k-l9lumaXookco`Q)$nvKkpQXw;yhTb{u-PV#I_xP^To~{mIC3EM#vb=LY z>wnXw|Ki!w%Tsz0nqUg;!Q?0DfY&~Yw;JC3<_r0@Za8*}vz~y;y!kIA@r=vEAO3t) z1U2jhzoyxM2-?EpY19PzxPm5ws_P_>&swJVQI-;z_OHp4sDrbClyfqwv zioOD7?t_Qfy6nX3mp?UNGyjr&8{8)7x30yL_?B%_u>U8R!-M>MFR?ZQCdKb168yU?XfGaNGv3P(3UnNg zn!n3ofA3ogQ@$HhJngfM`QmA|p-$wi@DDz6r2M-JA1cp0`+WJifA}Ni=9gX{rQ|i- zJM{AFc9-A5wDNb3qd0UhdL{oA9y-iv22Ef5&a>qy?$o{Kk!QG#ef=$T-cDkx`wHfhHF@HQ z(0hjd&3oUF4)|aE_Gijzb`+1%asJQm|AF$3J8nSH%-K5VoM++f*jesFkPYPX@Ku28z3<_^gENezvry}^b{^tI?d;i?;qu5p1 z`!jF6rMwlTviAjl4*ovI-B2s+==#*RpXn%jHT(1P;Ql;!^J+qC*RCC$8h%N6_p5J= z>FS&Iv!g}r$tEXjS_U zciohGmzAZXN1rdh@gM%QeC(5-V}Njh0Un(ZWl<%umB;$s{?;UDO49nJH1MirqC~q0 zu|OxCfrFSDI1fYBjtMW|8t;nkyZnl;x=n9HmX=oWWJvw16q>K#&ySP1THEtUSayUt z7&nqcFcD&WgUB&V5eP54yB<0ZCvs^u0d{OK%phB(ql*ac?h|us!bN3-r%{CK_l{Oa zc7%)50qPLtN=I%HP-krk8#R`LT7x-mNOn9>M)=4Jw z*|>~V5-J~*zzz%RJ2W{-)a<58fi+C^xY(!JBK5Qm{?{1nvr~n47B`s)xnS;{i{7oe z!cOWw7BiMv#2DbYNPhac6UAjuQ;PXp-qe@4)6d1e$TZ|gO-h%#6uO`#?F4y-s#K$8 z{0vnNHc*l|nQ*tMJTnCs+3G}ysF3NRXD?+F1smm|-#X=JS%`j(g$Xe#uc9$r_L;s# zL15#2(O1_#>(}4;3#gl2IumgcRi-nL_D3Sx1Vz*&(@FO4M81`hHqMpQ)o*_r2-DM% zcI)d?9@N@Z`7cNVdHIF7@;>|nTG{TT>x-D$y2x1S3tmoyZO<|&2Z_o7`7A-bOn9tcw!;g^WITlx7tWk3ZR^x$7ZR*r zSzJH}DtiFtzioo@)QikJ>C?;n2T?%6xhhv_i<_VTni9@;o$2Jg^1XUC@SsUwWxb|O z+1@KBUA%h_wq--+ppBO{6D@-F`6B*$)ihfmpO*nEX|<%W|JS32yz`y2N+Qg18#U4seZUStP&W5ZLev+`L+M?LV3@aN0#lMM_m~ z(`}qIhX>}XeFw(UbR2QnnMnN>zU7;~l^@h)Ued2LeWH`iwAoG6iVhr2L*fFm3t((u z59ah^Y+huqZU#JUb))>Fqx_F=2^7b~6`l%Iq}p#|&`@~&xfMmcrN z(-KA6F77R&)HQ!DoNM;ke$X-00{D7ZI9#M}v<>K`Ka|`h((pdRkyY-$Wi?ErADYkh z?o`{6G4R;m&oef5zT*61m<3~HV}73NWQae=LVjOACpPd^5tI9#L9Y0j=ky!AyI^Lk zCQqUO;yvZfQ}gB)nrWuSSiE>eNd^z3wJGx8b0g>_6u$az=Y)(9zALrsEDkPk=iL%= zqNgls+2o6|Q9bHQC(P)|0)NIcG;OE;-^CesE0!ut`fE~OQ^K(TLxQ%op60HJtF&EB zc{*-Uu_f=ixev`bQXEL6CHSQaPvv1AInZq85c4t@><78ZW(h^b655}oECd1x^IUvI z!pQGsn#3zkyH;KD=#v+`Q-7t;va9_@z&byU-K1l)GhQt5uV1YYU`tv}f_Nv4 z1U<>u>$5?aD>ZnxByCgEu9^=jfPISvZ@cC~v{4LqyriFk#%uf?FZXi#z0Gy!9k{?K zW4@bvo=M+t?bJ#S|LQeCg!4c1zobtXyq8WBisc~kYkZ<-?B|Dzt5I?Vu{f0LM98?# z%}{(1iTno_U&b*n5~$-l$_gNT%1bvwxgeX0AU@>9`qjj!(THdJk+MS;TugVY8uPsP z2QTP!j=QAI%ZM&9tQ)tkO&Z3JyaU#1= zW!um}O*qY4RS1X^=!(^Nyn&#TKLg_B%Zoch#GNAGBQzjqwk0c!+nzX08+Gnz>Ai_l zx_b^V=BuL|Z-+oIE{0!JYFc(}tkk^##-uC`}i0 za(ETx%-qZcHhIjT6y8zB_gq&N*<|(jiBn|&MQkr{>+7@JcYBgkuFsVxx%+e+Yjvxf z$UcI_y#D(i$Qa|f6X$@VEMc&l)8)1I6FW8?-LWHgZ4PMOmh0ONAKX{QQHox|s+_Vg zK%O;A-_Kv~z!1vF;WEM<?JeZpD)NpqRL z!7HjRavFMS*3Bi(ZP|Q=tP`AeOlx|Uk!|C4PDB3iyWUi;f9X|aZt4k?u;??(l{Vcs&ABk@%ERNPkiY_xqkuy$yBGSJUek7v(xk~S{X|_jNCxq zJ@mhqby2_)c=E}hxjNMQy9_7B}OZ2@XX!KxtWZli(gD8auF_(XFnsJir zdTg{%SvktMW&yc$a}doX^9sg4tQ8!4{sgDEhssr$z@EYqg(uw|nQrHVwi2jin3vtS zt31tpwFfx?I*aUFJ&x51t_Yc&W{m*(@CuG$WM+wzhz#l&XS!a%204^tj?vQoku}FO zgRIjovOY7&IKX+kisC-xYMyn?b;iZte(IUXf$hx-Ye2HlG1EL7MeOI@Y~`k*ZrVmS zIjM|YfLAI?l_59h46!b76(`fXv52VRb~fgDNr&`ZhnYj6Yn{{>;s$Fct{Z4d*}c4; z?4Gx7@Xvn6cE}CcT9))~ZO3u7^{}jLU+e?m8S-WOsA61tw5V*CwV=QYHrq1_PRL|W|?uLQUBzyk*PZ`*j*tR;8aE$6&*f4Vf zFcOCnBup9DP5t?i{oBiDC%6}yO(ZqF+V9B>`Kuh*sdSOfG;8cL+^_4L!?A$#8%eYc z_a#sK)Ig z3>678v?1#M=Iu>mH9f97zv{bhy)W$MzAus}YAn$rwQr;>OR^@9lfL@4n~v``7cl z_w8nrk|#l``@YZfRGm6?>eQ)Ir}i#y!<)zrl#gzo7K1s;=`F~9(ji~sYtv5j7FZl@ zatXN7j{vodL?qdpjufaDNk>ol=)(kCM*n~a-o&0CTHpv_BcswO{| z)6-zM^btCUZGIY_Cqbbu%}$L6UlJucpv~i@DBFm&?9d;URtJ}{J0CS-GST1&@@{;< zc1KA#KgMa_1sA3CcZk=sae7~#W*hdp&m>?}h4SaPn%gS^b#fm6sY5;&Xqs;PhTiUUOriV|95`9y!TyiEjR7k zR{nsA*SnaM{kMPj!}24J9CoE^42#RT6)S{^Lyn31dyX4^`ta%UH6|i|^L~z%x%>LE zjmD{UD%D@Qc|S(S*78v%3ZFWBuAJmPSvyrjk^4_BE5l zZFu{<>)KuA!yHfi=iGJcq|UhuOiYvZ-8Wxde&ya<=rGqx+`?b}JjU*2@eea#?QzfU z?)~svZ!KSfPxB0D{cr5k%~pzYh=eXRUnfAV+b z`~UDXtD%SB5X^vqLL@A2v?$kY-QJzFr7g7|_^MxOj5GtJYZ~d0`7VYQAuWS6q~Q*Rs<4$~;WP|2E{$Mk zR4dIPD_7B*C;eQJ=isSF#9$*5>cE+X0A@G_gJyW*l4tYnpoWc(Mgy$}c!agX;AEu6 zO*L?=1eth}4(PSoS`UPCCGs`~)iknaFysL#JGQba8#z9Gp2ZQsx?2?R=mu>=2Xb~J ze;T@`q4BhYvFFimoTx)MlZDW+z=}Te?7Q`fhN03+BGQiu$sk~V*}?HylO9(NTSlQ} znMoS??4VN$2Aq1xHl3gT$k&d`Yo)W}$4e81x2j=XwP{BrtJDef-XF`^-K0*IJILrA z)exOLLqz1QuHr9c8+RgZVD!mIVt0MYe3o=u|v8{Z!Ramx+@D^;wtrJ!lKi}S(8t^ z4qv3daqV$w`2?>a?O!z*>AK?I7DQ{9`zpq3IyiyNL0LN$LJx|+{)QKdn;ZGP5Dx}bIqYg%iN9w{K-i4{` z5MzyD&gxf-L0r7+**Nh8-pEPISQS@dw;#bpY{3$@!uhd@JpoN<>)X-=+@{wip!jj& z4bS?i&hQ{8J0}jZG;|w3I4T`NJEb6>9Ne^gg25+#;#5CvWdKG#xwG2n!uuvz>N0@( z%L2VecObMSXIv|ikBUdyDsJV;fVM32BqMVS zv{`>zEH$=p)CqN_lu#Jndt^OK8m4Hb2@~Es7qu-~xsoBRd~IcL#mTJ|I@HVbhBKfA z5)FBEa`FN(>T`O4@Ui9>m6HB7iG&yaI{1N-W^jQ4LEDPZK>E-?VE7$)N%p02W?kpA z^Io$Re}BT_&KECTz~ZWWYZ2SY#SgxC)Syl-r@i6R`fT3Raw!LB6`h^b3N3s?3Gp={ zj8!|+jXx2?Yd-a<9VfEccFUBZ9*+wY&_g5dPK#Oe187-?aJG z387boul|-z^lbBM8M;#~Vp%Ik=(0l=IZ%vn(x*sOtyR;}j6C>t-2Jw-K@X&HFit!B?C6 zqS_MfR!n*+7ozaYF`Q(|^kP$BXSBSx1hhCrt^TePStJY1YuE?w=5;|EL4c%eyjTT>YFh%c6zglM|#Nd@Zn~ z&=g*^hs<*-Xoc0z*kI6ZW(!B`g2TnEF0Rv=?|Q7G+7WKU<0i;t!dD&^6ydG29DHx& zhL6~odh$Q;#%;m#OfENlDuR4h-3YuBZ7|Y0)*aVyQx zU`<;Ooc5A~=aD&Nbb#^{zw*7g_=ENgIJ13E)r06xRh?JRDv{hDJn9DDVm)0L0`CNG^FMx>M8 zFoXHa2#f8+sOuTQ>7t$?@Y`KfKDGUO894V&Uz-AVmo6wcJja+UGQM`SX)Xd||92~R zJw?Uz>2{^xH&2+m_gzFePkm8FytmN7X&3Ez&!p)Iw~gaJ4WH+3?g41=iVZdf(cG}8 z(fHVy%H~!EZauPcg~8!52J#)Cc0s0BZn#r(l{Qw^4btw#&VcM8GPHm(s$Lr**;5IfY%+r*2#M6mhwYsKv&h~yu)yhosEL!sqCqr+6iCFE|IJ|#8aNCMyzEF zM*IcQA6$wAuBIdY>Tg_~CkwdHN*U5mwZng7Ry+)PyH_>;d1OIfq(`Vtx%Mtb6H75F z@9;-~N&AV?aDkgUfIR*>I#F0{2Me8d%a-k8enCr>#U5lhE(F;oPzMnr7g4GVTHR_S zy(*CgF#ycu6bOT_PQVK+?+Rjcbj$U7bFHY19Q5K$_ zv}T`)MM4*5$IEth5w5Q?71+a$T>g~YB_^K+>07zkV3F~cnTs<_w9aq}+|F`=$)^k2 zZ=58toqnQ6ecNXBGTFJxZsGaaGwj@>ZjWrEt#I+~YB_Q2Luk0S2VKFk3y%UGZ{?XO42R=+3pQh0I z%CRS3DBt*p=jASGd*y=1@?z^ML+U3MeVyh6x4ql#4>2Ca4$j%Bwes{6FP9(FFCXW~ z9gU2FJ?EB$JMe@m*k|(M=@EXI)T8 zc>p&ApS^-X-Qa?tdHVb6MjO&$801b#ux7!ox9Q&ZUhXLV(ES{1`VZwf#@)XA*lBc| zvX2k*bN%rYtV;&Z3U^$ZFvvF+|zPw@a{7J!k)7&}(`(L+uct}#J=^6-)5cVzcc zSzrgSJD+EmRhyaM$mfZ1b_7o%=N#ouK5~KrI8|iP6 zAT&95rmX9%`vdsjx|@4|)p@)-UZT7o89xIp-f`=MH}%W1p^T?ETKM$%c)5WwS7l;y zp|`y4YIw?hxD)JHKYHN;O#3@ z_f9s?%y4zm2yz5*Od8#M^;P93M~|_nYM@-l-Na18mRZIOme)D1n=)G?-`6oA$F}(L z<7ZEoem0amd+cQS^hX$HWjE$S4^MKZ@s2VvF;%YSd69d5-E6SL#Q1p@%3a0r-sef% zNqZNNFR@`{H;V&a=G4doyEu-P`lZ^D&PnRd?wvcz=`*KUxW{BLJB}~1C{O;5GBLb> zoafXP7VNn|-wh8V$dn82rAC?xgeJd5u=9maN&SwpU1LHE0}S8JE#mR-C64>y?5uQEh_ zn50}_tjQg<`DcZbLg1Aj$L!R9%k03{)7|dz=V!)y%E^o0hYw#szFf=#JS$CjmCW>0^hqDd+EIq5(>4zk|t@`m`-HOC(CMm!hf_&Utd-J26-Lbz~)g{!D+E&f?Hp5T(xT1YGP z9-Xv{c5o5VvPoRyj3cjYUAKdk&Q4J=d_ymwI>p3=3K~@xgLNM$C&7&hoJS zYZK*(6TkmL2Jh0SyqT)@Z*nHXGZ~)<;Y%H>NoeS-KhP=7q-VJXfAi~ju9J?znPB7c zXTpi(BUE&3Gs6NePN8`QBHz$z<_w5$MI-g$GXaud-r|g?OI+lQF`J?Bm&?Nbo4E^l zx@?(ehi`+fEqlixgs*g&eg&YEx`=7;2e*7QArpb)RwUy~r@qZoxvhMPr$knKep+eC zXq8#MMb}B9^MYq}DLWaHc);TwIw3K*Kp@$MTh@kGsJvA8`kG%$Jmj=ciO`j<_yURD z)y7Mr?MK%$#CLuF+*i^G@|r@xFaQ3zIDTP(D^cB*a0ic>?}oh+Ob7TiUw&a;C?vly zaGPAEY4f+MzyPUV7F<&uk^}?9G&&w{_SJ9wu)KWiO!>@jJWxLMi3iH{*X}P5+;b!M zT#S{!eE6C2SKoh*OWc{f)Y3~s)TYbRL~XnfxT9yMazyf@?8to|chY|HzB|~VdM&#H zHR`I{&rVwZ-p<7B0u8T~Yx^iioLt7%lN`1DQ;rpO62%O>lZjC~mL6N-#FgpJ68{u% zcX02pM}X*#oVmd29J**$UK*m?y-yfL*gB7An9ebJARy8G+t}HAS=z!nq4E14xVwD* z(L-f|6>-$2WYvlAy<6SK@%rwB_uhioy98e0xa+5nE|%>sH8U;f`Qqb;$`gmrlzVU8 zpZjkAD|XBNm;dfd37cf4;eY)n-ztBI-)`>Q{o)gc%Smu}%$!FkKgA^YPmYe4x7~VG zh}Z)?|MS0iKlcsv<^JC*Q8qcVSibP17t7zXtNN*fC%9L{dz|2rqYtm;9Q?-cy6xJ% zCj_0{`i6zg%8Cd@P2LI{*=b%Ur7z8}BY=tG8qbRBSpu zRa87|ILDxGjQlOJGh>}QrL?2E;q$JHG;Z^)^{G$kikTyR)AbJ*_`EAWQKvO1Fd9*H z;7Hhj8KHe4-TK)+3E+Pn>{ao?zgSbmfq)D`Vlu2Qa!izsB>8jaStdzA6k1FOBo5Sg z&t3fZaka5B>F#omy)hj{+<`|we7H;1NsCP8QAhk&^DG1ndMq&qPoT|J_K@HaPibUb zjc0EzDUu)XIr!*+MJA!C!VcD8(UE>V;%$g;?^ND`F)N!gauzGN|#(oyek>|*l}vkyA6v`;B1JMx&hu@L0Vmd z3qR>xq4SYd_mtN#tCmL^Fk%P1&6%*G5O4BFKvZM^7z87HJrlOzH*Nm-0f!PmkpN{Ky8M#AZ5|TcucqE1KAm!|VMH)icmh72eWa&Ep?=aX$e$#Z zrv^2DL>XYWwmJfHE(Y}=9jgu;vh7hu(!+RWjB6*gEF07HT|-;hu0A||At$Z;mtOfK zGM#AJd~{I8(|{|wR+c(AfC}0`D=U{rtN1p(SvbN6`w_ArMxI~f+q+F`T%}y34Db@h z6->09@BsBOFOLZ{3)Xu7Mqt#wtqk}PaCR150>7nEV-!{ezR76n-ze?A{Pcdmb^z5B zS6KbsLx;~39u~cq2HoX^3aF4(29xQ)I}oHEQKpC3RhK+j(5zm~_B=|}NuwTmo7QCq zfjN8&9mOA=#dX3=e4RGli4l+AYOAt&R@Yjgln*=aIpT@9%1zCK#N?xXLstxRDY z*y_GeBy3`B{s@~+Txhm_RhafEWc%*(awi$#1@SF+UE4OKTJhcL8CN5FkFXPT(OFWBt0L6z?=2&E5^X-p3<$*wTWQOmy!&A9QgyhqwDe@2pf3YO} zz%`EwN}za!F>0O-M7Sk=mF$Go`YR6UF@iCSY>{sIWk*?JRQ$pTu55&->OtNu8=ZQ~ zyoc&mDAbMotK}yY{1g^APd*b~;+0LLqRB^vv0erie^barBTwl_o#ZvPE}>@6a=O6a zuJ>=5O?dlJHkm$kFpyZ!)~_zQ|TNG zl^;&d)QMi|5|OhbG|8gV2{#|Z17sLKK5O0Jsr{pKKzIm#u2PqKz&(WiaIjdrXViD} zh&xBt>AY)~=$yFPN&jIG`WzIqkVn`li#NG<(An}KU2ylZ^Tr)pPGkp;mGj;+=KY8% zD(fw@jp08=T+?;Hw#s?^7N4}&I>d{aNgmCUc;%+9`ukqnMd$^;1Bcdqk*FuU2h_Wq z)m>Z2qsKdHGj3%ESefDa1_lS^TO(AyrA)+ca>|ZW=-PT+>8O4IYF;mWw6UalGbH5* z#ym~Hz~rl@Q~lM1jRT~`)bY|of8zNk`o=5Y!imzwZB8QO4mgNUJ_(b9#%o=be7}_O zHs$JDf2*JIoZxUWQR%3)uBP4M@~NonYq?6;RtEZABrwTQpMwkv4>D02+DQvaSeVE_ zF$1Uz=VsU)#{x-YX@bSSUL#?+gL>9(?OWGcG9w5OwvYr zEc90HS6roUMmHc`F^@uwWZOP~-_ud(T|;wx^UkFjOs3g?@8#5}KJsf@&8!o$QUCxz z07*naRDuEOj7nsg!Tw%%Dv`GQ>P4p1_HxOcdG73U;M9rO5hj&AX#j9+1P7%ZP$fP4 ze&j_~jga?2>d8eX5eWB?9BngsZU3;B0cIz9MmdSdqtfTGyVQy9E*@r50n(U!q5W=j zg$re^sjIl6xYQF#0r?TcQ2y66g}%%Y=0t5B@U3C$6(@?#pYh~T+K?t6 z>d_?z2h(inRLxk+1%9IbKe@xnBBXdgXVw%u_jZId=zJ@Q!E z99VbJ3OOw=bLZ+gPBvR(@^N{2j!8I6gE|4bPfyG;3A~s^=7VR>12;pPhE8Dz>AX7} z8FY7X#S)D-^Jz>3urrr&iRp_hfOafJea_^vV>QF$?8c=&%%I0FvRcjV^^p^2%W3Wg zUS>>b3A~<;kh|=eJegTMnKIwfdx0H#Q{>Hh3J>Ag*}2g&{x^^0D9uo<_Kvuy=^f59DZ_#T`o8oFaw)0txXniD&w1Wie(r?0UScPGW@`C!QF3?|jvR$*7&6j;O zQP|HiFXqYC1CyPdr^k?%rG}d#|1>%N&R8bwac7Z}$8| zIe+$a89#Nl%rhw$`G6i5Q`Ch+Qf6HzE#$%-VqbswNI89cmdzwAQsn|1nJWxzF7@Iu6gy~i$=RJjGkqLaP+djC%uJBuW zN6N_j7(1`IpBMe^sYG6fcNKRe53z{g_FHa1-?Dp_vfI0FXW7l7h8Rx7=Mmr@ed`HpO2-Wcws~@Fxo-c}&@sYM!ocmkiX)&`%02gN zXLt8-xyaRe+h`XTmbPc?#bTRh@_IW*cVC#@p7u~Z;|}XFY_T1Cx0PK?Ogo0<1gR77 z3oK+9aOdS>J(0%K!4^GLk$;XOt*&s|3ie&US4I)fHgbe|>3F~@dTEQ}Ur36R`oko) zkIw9tEeq6f`ejtC)D`+x?$EZUwtx|9o7PU8DHG>d0I&nSP}k);mt~{Q zjxCCU!jujU7tOe%wbi2*x_I2R%n#*8Ulcv2NC>pS1fk;+>h&HbLv0U@t6tES=FDyM zA9gzVQHZpmqZ5@7CJ@cPi>VP zl0J4M^td3bpEJ~5kYpcv*AA@*b%*ic6n88PvQSdl6w@H%f;8%s2W2pbg!DrT82kH4 z6S?triyrQDwrL(1aK|@g&f<}sT$ntC4xF8(4vlC-5Dv!edj_bxlm|S8bm|E024e&2 zb8A;@FmnLBvXFX3JU$zmc()$u$D?`UYZKNm`&MBWdPNw-Ch=LvQoeJZJGTw2kqHG> zfDS(4l>zJ~+sX!?V}AFu*<~EN=a6@|BU47x2}SKIAHMf`^zCx_%J)vO_=JgnYZYlZ z!Eau&V2Vf%*;d)8_Jn;4GvsCzvO*kSNjN;9eB+7C+t&4PGJ|*f_ES;Uxej2JtKFRV zUA&%ljy7!I!Z-_L>TcgH$`)}NGQrcyH1C@(`S(-&Ni|%l}@cZP}Eyby?hk_|xF#QC;)BnU3C-H(?N8#;+m)u7<9Lc@;|OkFg(;LP)8!9}jPL(LQ44UxT!S*?4j z6#v?OX+uKb&88i^mghB|Io7X2Hjg%1X!FB#+bq_=CgDV^bX^kOBCNod{5IrPIv_$i zTE7;sr7_?kkg3;~);3=&ls6Ev!!3SH>onD@Fmk>AMorOUtB9Ld;H_s^orl@NoHG z|M+})_W2{_pa1s9%iG^}H#>3nv1|6ea_{Zelt26CPjY0llcnjYbt4fG72Af*0m4HZ z(R_?!jKBZvvGNY?xBVD9dA;M-orSF%#xVBpwcK}pcDzh*f30`>(Gr$-zu~&TTRHn& z>CC?stjDt$bkfgIPf)$UowgpUCrh@C4wM`BVxZ9IwQiD&>pk`@0OaACJ?;v=GSBY4 z?Lc|^UDuSa{^+HoaqZq6Ilef@Vzmgb@U+8w3d2hSV2X+5fAdFQ#o%8oZsMrx zHQlk^ZRoia&Zsp& zNs-2wY8pPsl>@%DTR|8Go-~OTyPT)-=u#;|{P!+i%eUr}C$JfCaR8GrJ35I1oXGLls$6h%Iqa_C&OEls+Vizk;zL89Dg?}c2 zao9^_zn8H}&!aoM%VvX)*aZw2kK3&#P=I;YiMuTg@oko&VW6TjfJFz4^a`yLL+gYw zi*|Yf2axh4tVO0%rrZ&kiEBMzq8(=kp1j*^l_kX+)Zc!LKRd*B+}c%h+CMtYWhca4 z1?>QGyPL>6aaQOIdz=vk)S=Bmay!E5Y`}-)$6q>gopKi1d{G|sU1B7q^Bl_YAe{j^ zO0J4tW`fuwIF$iqp{Wrao=D>*P99)vC0!n1i)#m9{75K#sS^kxzXj^xRn}dZDFS8B zoVbIx#%{oYriA$ApS&YaLX6T0RE|BCGd3-Ln!g!<=e-|Y;)-(hj62A6V)4Iei9~t! zn9m^=Dp;^Xv~Y}7fe3U6@OdYoauY=O*@<#++uiHg zDQ0@%CA*F(Z;k00I$wi4l^xbbg6M+FQ1Q3$d;!qry^>s0NvFSwm}DBLkXO+q zH2D!BZu1vvl81O#dJ~Ah=u^OwR8v-GZQrw-wt-X?Mq&5~749a;w?c~L}Gb&NRYu@EgqybNH+1wiLpC>xl@v0Qq`K<8j0@a}P-d$2=N_cfpnufSSJAk-ZzKLVo4CK3ZeJ(WgtRj;6N94gcCLO z7`{~|QJM7Mj5^y{Pp)wHzL{HRpvZeGm3-?{j#lT}T}=)MdxDJZul#gzr-M|sy91`r z-w5r;@`7~%I|#Tz{g?pmb-@T}+94ld5YmCs&_ue*#0a=Xq0_-X2cXUE5ckgYtPh2U z@=1Nv9#8F2pO#hhA8lPf?QLa~!#mWB~srmKWzrga;`K>KMtCjD~uq#2KOX zWYKaCP#>!9Q)O1t(G%h*qHFvo=@sCio+71i0XD9UMJO>SWOc6H$Hieb*Tn zbl0kby5_^dbCeWm69?LR9Pq{#H!TO0+ni_{^vM#k`1sh{iR4 z%Dx8g5PbD|6^|HJ7v)G%?HMAg^VMIPYgJ=u?bsQDw0 z%7V#2h7|f&OOV>d?y;HEr^@iQp>owtw;_Y;W!xh~-MLHqOU&?e^89p}VppfTQPsC= zb`mHfCzl2o8*(?8^?C^XivlJGEV9Oqb(iVN5_if&fVE+iI=hWFXMPTQ8U22d34wY1 zMOhX;PDuB|0+({(tLGLe~NzNjB?K|UNy!} z+TMP4tZi`r@43mzvT)>N8Db%_<+IA-es>MqS8@T0iz{xROSEs8g(dW{k7B>iL-!o* z<%>tokt-y`09rt$zy7=b&>ekDyyW;}biz(1cC7d7;rx35LM zyzBDV_k~; z9*w`wq~R*NWqbPBMSXI*oSZsUF7$F7DhpE{oTlmc9r^z za3>3`|9~VMfhY@1=ub_aO~3t~*dhcI@Kx zwToqp9mVf{KXsI{TtW__H`F`uJO3n<_vk=U^ay8nsjF6D}mPa4{aryA49xTtW z=wgC}Dj)pVgXPPg`%>Ayb!&OggYPb1W@FEr{>h#2X|6o}-9zOQ|MWM?^5je9!kLTZ z{$Kwu%8#G;Zh7%%FPHay;@8W=U;LYL^DY0R-1E!#m+yZ0vt?-OzH-M~ZZCiIzx;7I zaT?u1(ao|edvuI?N;}|UFc*fYb6f}lyGTc#TmA|)b%JN@3t32wtteb1o^b1MhW=|S zPKlz6Ne3ad4dhcvKJ z>|JAvWs>q6rvKp)@@wcI7o(;km>{m&l1ZK~DL^-vN9u_a^yza;NaM_J{o*$$5F*ER zk>6e>e0w;a9_7Wo<(#fCx~;73xwb6v=Vb8E6uW)7n>O|=b*$PeVym?HtbGXUr~dG_ z^UI4Lag~Q*Q0v80>MJS$g$0M!mpVZmn85h?YChD_>f@&V01W{IRezv5X;un}(?vtl zssRBF{`Na?;8p4HKVhP45dfEQRTT-ejGR4MW^cT^tdDVm#q@a6skAq!gThG7x6k&I z_xeeWpgkb|@aM$wmMlIonS`{!H7|O#G#iC)`K1nt^9hNSTYT`p&4cwoe(8c)-U%Q~ z<7sf)H)!J}EU^f*Tw1#H3y%8i_&3C;r#4+u3J)_=SA$yN1Zm?M`r6O`tY@2<|E$QD zM*>+(T}yK}NcHRXdA;`*(`&(qt%d2v-0dHpcMx=!MLfHsb)edp8rY^#eY+!EnobR` z(A`iiwyavB12{f8RUZ1nx62DJzEVE@$p<*v`Qsd|JXSt+|Lx_T8}^mIf9!?w7Z3le zyvT9Gt13*4%SPl{RB1f1I@8%Wcx=2JJ~LIm&+#B{yW?t(MZTpxzd>9_`{{XZfV0Utq zdz08WlfABL(m9#tF}1Hni+5z)ybr|yE+>NAL9mCNwy#e)JDr%woq#S9#?W6Xk3R8I zP2J8t#(NquaDVQH&zGNm{ND0r?nvIj%DaF2d+&p#J>{>z|13wyE|=r4oK+V)yHW1C z_3H9J{Puft^z%D!+h147=EXLqIvZ^v!5zA4fVqnD zHO(0Q;4#mB=UH($AzB>`r@_I^B#cG~9(d)+PmISt3OF4n_y#b(G^S*#kMBCMWctJ- zB2B7d7=7>R>8y|rc^uJ3Cu4z~cjB+R%W9l09`!$ImbYg10$B3uyWZvxw~-~e^(^CsKK(ZGvSU94Np7h+ji11WEH9y zy%T2%E3=nQH$;U8%A%bEHtdwfofmhbkbjYm**!la^9SxvZsO_~AHlY}FK zHCA|F;w>In$U8qiefT8Ma9+D&bfMzf+01sgfm^gqTeEsP>LP7nJ@G9$p z32=kkcY_V6|Ldn-Cfr1=^{;;GmD1v+jc(b6zl2qrs)jfy?*g}aM6Eoq7EzWAg0(WH zhko)$jNO`iV;&1J}3_lXL>8po; z>}(<_Q#X0*NiGMWjO|pLBkKn$AyDcv%|&fIPr7mN*ECH-S;=luXcETqv;IIt;It(i z#I(+B@f3*~B;vs4erg*`+Q|$6fLGo*u-DH@VDYUp*-JEF{He}Y|745pTqbF2Q2gs^ zaCjViRnD-kYMMa?aPzb{)Tg#_tJKk&PK`rtVz8M(t@zgxt7TRb(*}rMWq_{Z@9337 z^xBZtUDM^?I=c?SI|{@0(mIefo;te-^VpZb0uG|kzOFMtu*Am*_r^IG=>4?Iv}Xgr z3hCgA&O3UYWU_8%7oO!$z3k~_(#*{B-<`kS3yvX5-HUWFxQ1k8lGvS9=mhmXc$~2I z9t`uijJUrb3tPPHK#S8=9 zgAQgwSacjG0xZx+ap#J6LR$8-*jo-Zb2b|~l?gLw^G_YX|C%rPWWGs9c~^!Fi}R%^ zTX|6Le8nRGJe#l<*s{?p{OSaDA*q0!U*$zED&v(;O;C_jy(-39>YZru;in;^%9}9y z>0o1EDt=f-kh_-s_5{`Fci@bZJE$3CwH;TcE^*=u&h9+u(fz#{qe^-rYDevAE7K7EremTzAiVD~2vD3&3U*3VOpA*Sb z?yzIf+WIs-hfT@^lE?SYF@rI`$bvM>pKmr6BkvML+uH0n5;fO1W*3}xu@g>SXCu7F z4lX)Tp}e4@T>xzRZ9Q;+Gi4}V2G6NNeAk_hi=Hl_tV7o#I~xU+&C+RK+3y*ZAkK;B z8T{v=pQKVwYY=3ASZiv5`W%MvoThKhN6OlGPH4Dm&WR}7@);(+({`X6oS@3PbXn@k zvj4!731E3*-N?5gLdkf3dAQ)knRV;5i!r6y67%7&I}L5m8}um?WlMhQ??3g_Dtb$N z`5}&KCC+qGu90GpR@`Fue+RK~jRX?d+xRzrrXpj}O#|5NHDdeAXUC_$x4)w4B7_fV zfEVgp(sJ2NY>XyCNbsE(Vbs>q(jbzw6(^D+SNKAwIkCPusbyaxb&vcy=&eTgzmx3Y zOVG*-V98);!%w^(m%EeQgJyAcj!8!qyu<`b{pg!Evl5M*!cbw=k4}Iur!eSa;t5FF zy4VlWNL*oS-_0Iwg-LrPLU99>`;Q4T-U>v`F~K=~_yyXQfwJwu^?{KjC(Txf*F#&J zHW&mZZ=KW@(a*&W3+VqGp-%qUK$@d-Z9gWccz~vU?8bgupfB8q+zp|p``88P?s@we z%kI`Cp2%GUV!n5>dw-tAm7a{%OS~c42v5{H#l5Sx<$ZKuw=({-$fVT<{!2^_&yjiC zs$nK{-7n@spq|0&z_?L%k8=khla$k>H@?Q*v0(-_KJ;&6^3XjMwyTqi17%{?g~-?_ zEG}c`L?#)?8tqeUUo1y$19t*C3AlK zy%#S`b5AfwOY^jig&PBTQm#<=A5R zqV1>d)ZW>#eH*)U*`4iVuM^eaw4D);XeGk3i47_t_*?HG3s+^{ewdvJWwYMd4sGN` zJWL7YcysZ(>vj-2hB&2Vb#bW75pRqg$J%IXuH; z<-$b>gf4V|#8H>Dk>!@;WC0KF^`tbz2|?$0EV#1Pi~QQv-oXU3eIR+KedD;1_Kzr| zkEthh!j30->ZRSW4%G$nlm~f}t1jd)hux#`+c9(i)UeE8#^EIrHT z%EaN9%BOzgp7OcR|FEnM+*&^P(NC7CGl$Bpx4*62_koX=i9-j=yME>4Otfw-Kl%3e z%6s4U!P4vE!t=}Jfsg$zr{ENJyib(}KK_|9d6Z+&ckL-3`snYLW6!-<-UaN~2-m)y zo-H5y^dFR^b5E5gzw`C-#(N*6$QR((&hp*|K3yhWd9vL8hWpAr?|iVFe&PEpPWVuH z)4gvkU;2x`D&s7&Koyk*gzYm# z`5+mQd+VmhxW9#?$yb?JKYM1fJTuJ>dKMJ9_&2zcTr26&~rhojB=SoG7&-M*}DEh{WASRLC|=C-~ei-!7`^zEBDk7%Kf z?W-Z%x{6y2(qel2!GqUwEo~uOIHM8=Ht?`jhAKZqk&cS^_~cQqqOg|YVLaF#z7r-L zLDhy46j})DcHN&99u)B3`2Gta@UoWXr7@E|yc8kjqmS|2!RfPQdDnr`>ru||P!x3x zQqr0fE-90WvqJ|jEgcClzWqgXTy=zY5^lUMdq{s87W|X8d}+#}lTH&Se9|+C)|8WP zUmO3+<1|q>AC!+t*4WLHNWml2>mmRO+NfHWLv4OHMZB4yI0 zRWbp5jhL5v``sYOYvPKurn>33`4$j=I&p!06&>C16<3>1C;lZbElh)#&noWV=|;^X;uyW-f#VCx&5{qxx;rC z_b~iYx&O{<%ilcmYD<<@T$00@7BJOR0Ld_t+lTRgRIy921{6U9}@9-ARWI^<1bJA163kOJhOj z3c|x@rWxpl1LWhD{TMH-Lhg1>4!eR*kU@6M?qOAB>RC5X*L$7VsvhRB9cb(VdDZKA z1_!1+(}gs4f&V?fd`G#SqfM@5m+>xE`2Dwk@m(gVXUhd>`SVKyXO!|M<_| zSKj-^>*3Wg1_rpRf- zImdK>S~aMpy{=+Xy9rj6c9g7!lJRUc;G2_w%lvqU z)hdP-Rv$Z1Xg~?m*y`ci)$rL>V}dGt9>xU~VoB$S^p;qmD%NN_o`O_xQ?dyV76X#R zZ7?EAyxZspjvozym~;*Pip!*g5ogoXga8w$F1|q{L`X||N~`#y+u8u5fZwpJR@I+x zIix*UIYwyy3nel2w@s&=By9sk(Yo+j#t_Yz#;HkHJPo=EZds6j>s93t@X4o7KzxU1 z-rW&A$dz#Iz@rU)CdEju>ib$=nQWj;OiTV^7ZC^Jg?I5gh#EiS&GI#_9p+5zCNumH zht(e8lf+swnjByXKc!E68Xz8%XU9jTDSsr9`l}9cg5BeSJuWf;@v9$@`ZSNykA1J)EHMo)XJR1K!DzURH10`B-H2wPl^b73mZYag;Tm3at1t z;Q+i7)vf@xGi3P-A~Sq5Z{91o!D@7EFJ)XDhE}QsuCDbFcgGQb9o$ZGWnj%G9U?oT zuD^G*6ZjAywcH63g%syx&VQ3bUMr!yYS2VA?1UAB0+rO94ye_o+r&7j~bR? zp-CQ)t{pD^g|9VA=T}UvtM5RWewgh`b%sf!`p!ItRD&dz|L#&_q%Fy|IHk$#>)OtW zz_kqVgho3#)EZ=xK`{nmYTAinEb>};*ZTN{mZWnF7HG^pxX6|Ex3$x|1!?Zkb?8(I zHF7E@Uiz@)EI(OOX{dRP{o42`)5#}5^GvF`>e+ja`sl#hxu!}Ix#AeegiP&-4Z7n_ z9*758w$S;fOBWigU-F2cJn_V6=9nq#Djjw205Yz$S)|jn`IfhJdCkEu;9Hu-tqxLr ziE7J}4waoW@dD}Cu&;U7#}2mlIVErS>%s?gTb-a*OOr8hTmQqGz?oTr`SUw|VAMPH zM?X{0)n5z34u2(pJP;zy(yvn9I{YnlpF<~9ggctyk z5n}?^%9c^oLAL49F9fz|hS&k_q^1jmTAiZ|nt{+xW@=tYkGxx6rhxz>i_|liul`ro z1`tH=!djvJsSDb=Ycp>h-Qi+D;;b>5ae;dQ)tla-B`vo7vkV5V!e?(ew5_yU9q0vh zcBYHZ@k4i7s{P&ZZhN*w`qmNC+{KZ0?y#6;=EOm6Cpm@~Shf6D7~EN4&{)4gGYuOT zNmG3N2)gvoGx%%!xWe6jPP~jTpxX}oWbiP071|uwVekT`5VsC;$=_ur{hZB;3`0}O zjb~h2AbhlXBK{3fY==hQwDIJ3Ev))d{i{4!J}C6h2X9U~Fisbp;qHFhb=VcWs}z{we#&p}@)JiE zLQzK=FrHB3q!8)2_(J^twelr4>yvf|3WGn(ia2TWsblIF23{by$|y9*&kPy~2e^qz zg8*t7U-^%#sc9Q}0Er9hi5^*8W28#@J?dP!a+iotkIK&ghu`KG{;sniOa8iWFXX9v zgUD2BU5Sn|-FW!}9VBWyVLKST3#=4{Ycf4hv1cO8qu&jn9kF zJ_6vIwEAazhG+gFMIbP~=@_1}B{Z0lw(zD=|0+Gi)B||SQg)j+7Z*86=!Bz$xnN5u z%Vj%*f5U^r*%^MG9e5rUt4^&H3onl5JDzQrL2`hylKG7bcoVzz+YAL0A1>rGwtdmq zR(NJWF!hjr2lj~B(4MsI^xcUYZBx@!$4HZC)IsLiNhjM{+behQiQmP;p8ld9R2M8d zF=8D1z@%w>`KmZOzHGPJ91(>9VssR6z8gogHOIfAC$$l@ATOdXGf@tlNm@^A!`(Tj zeXS~6R;Hjv+N5&kzqTY)d~OqaeVII4Wqbmcd-HLw99)J4a(d*lY)krZnjWxpZ{p960qIs?Q7 zUsJF3^BcWkdbASNwuV2kPn+Zg+jLF-8;^X2CwlnRBu1WeEiLt>MJT=2P0EC9XA%@X z%7N61hR&An#;q|sKB7+jhT&!*`3Mm2wjb*M)?3&i`u}~ST#5Gn5@}? zTuR|AZS#Qzjsf1-i|Sy9Ewbu@0P$|8TsM%Jsd=d2`2G!cv5F`81!l@VC|fi=MPi-_ zx^0Y~>|h6+!(1Eaq5v;)QO;$@GAM>H8@@xEY= zs^-Y)Atn$8M%iu58kQMPLw-0u@HO1quZs)2|_n$F4IQ3xOvwNz+cCm$Sj6AH?v-T z0`E~7ileFlI@u+R+}yIal;3^Ft}^${_43%uLR6XCI=Egw@QGh3*S_(NGPUck%l7Tu zuzvf!rSJNWk-_K7{u7V0D|)SbksWZeo>(Rg_D7H_+aUXCo?Ot@BcICq0*hr9)cfeS ze(z=GsXh&JL1!ZB912n4Y5J4to1wkO`^l$m1Y# z?HGe6jjgitJtwG83x?V8wu7UkZzow0cXa|7e;28%XK91vpeIS>9%tGy?JGhe%d0v0%ydNT z&PjOPk9|JGaqHxHEA`U_&GvmSFxKM9QLqOdQ?B4~@&2B%wX$Q(Ysc6<%Xh}g3l;{QIgFL8T(N3J$i0raMl`Tc&rW}=h)~J{TYr9Nq?dbyJCPmX=B2eluxcBV$!gWW13f}Tk98}XA*Xjo!D&r zL8p0&*;4PQW_b8^^IdOZ2lkuGsrhe&w}TudeEkhKmFs`$cgk%qEte+`9wUGANuw77 zK#}xxH~C@?Tk|v8vIAx}Ha5wVU&qD86 zWNDoGFjh{op=%w2<}OU2hdp7E{Pc16a%2TPs6I`v--WSE?vkcWv-0Q$3vE~_b6ifF zMPajA*`B7~Lb;}zHQ#m7u^ctL{-`!xc+MGLj7!v-8{1P{4UCAb(Mz_~jm{9ixCQZ- z)|xw@(KEC$%C&UacX4voxGn4$ay`y!rGw+#UrjxkWt_Q(a&|F{rEQy~QwJbsiED;y z-_SamY$jplJlU3x#PeHr$`zkj|vv(1XzODWwJmfOz~fPmPyv;WC?^zy=2V`oKR;rN$nCT}ltMDa-`jGyC(=W96L`9^SZ{{#bV-EJGl zwfT1|6T;ojT`_;~fj5`0a1_RqFP`FfmRUNpRiTWtD*GiGo_r&)cV4rHq#G^MAUVTb zEgG2$xD&yv0xX5CDPr% zM9)A=WSO7Zd0`+H!&HL`i-H&^r$nrVN}n)A`e&oA3DX)LP7c_a%Ot1Zd50p6IQ~iR zFb1@P#^x`L0v3w+LTgCF;DI9fp#fw!A%l59_cP!X1&x0U1;Zi5u1O3<@Ouo7PMYh0 z2sA;r6NkgDTqFV}933b#W6^_vm)fu=QBzDF>j5EOyVafFptqu7WL zmvDKaA#J(z!n5$!9fIZ|DL2UFG4b4l1672BhmM4)O25hFNzzGIfX0ym9b`Hud=CI* zYb2P*FAp+7VLXJO;xqsR@<%!cV_?Gr7^>*1`z)t5MoU&$t?V5v4)S_8tgEX%YB0z< z=~p96PwY&72^W_~2qBNF)Ip6M4J!T9Ig%X8QnKQtg%>;B`a1C{vDoxkEoK=jMhF2(=d~gc0r5?Q_;!@|Y!J(LVC{%W17%7@Gjf%G^+ZN;R}b-Xr(WNPKe8mAZ5gvn^}Gh(H$;J|$-v zD8?H-z|q;tG0(K^_zf{xwF~(3417QWa;D_rpvk zM%^htPuj(!HqZ3cnl^td@`Kt9mJrJWAW#Qrrp^R!7E1Pz*2eAR{ zlqp*qbj;?lKeAxKxD2gK3FDezg-VC%!$tb_CmRQH4T!I%}}9)#u;@ zgEyLx!|+DE)Q9ZOIRQi})}1krF)Hs`SMs*a!w%i5Jj$TNfSe6yw+KXyngF|h2x0COzb%Y-w!-bIAgr`Q|N zYHmCxvFc>FU_B%a2R0Q{?NF@Gz?pA(YR+_3@_Dgb_>u>CZM;m!yy)kj?Jr*WXyvXA zbmMLh^mMlk@<;kEY7-=4e#C$iqYm15o#DvFUTm-xk9Xv#%3%iiXE+9MguB?ZgBDmw zvz?tk!EaRl>OJxfl7Y9eB}~COm^)fY*GctNc3oHxyi3%!WZppu%E|k_V@u)Z0CkT$ zQ-&EpT3{z4ba0@i^Qq8jc0qeUgl;mlsR@wwUY;yl`!(Ct>Jl7 z&yZfq93adr9N%V|r#ibWcYXA`+_kW6sPv0QJv~6VhdS`6+Y}b_=s=i*sn(ZZG~7W@ z;<$rO9@bnzlldb&_<0}1K3bXsruwALsJ9)2)J`2_YuZ@fSefZ(F|l6(f-YR!ng z=Ck$nDa|Hh4?{@(OhbP8ZCt66AN4zdl%ezi*F4o3^&g&%e_o6POm#p|?&9mE42%=j z^As$pi;s*son5JRA{5<<4665skOj+I9ptyyA=ox#af^I~cxB(6ByIh7H>G@c0#|?A zNan+m+$ct)R45}Zj*(_nDyUNLq(XbdE^(}K;ybCW9iqH?x3JV(UhbH(HPe~4ldBXh z?L7+^x%=9Cr>z%#=*QTW#vx5(h=m{Q5$OXX@tnx03(&w%JnNAzztEI=MKlNMa|E&S z)A*-k!MCNU43^b`KO$~$$z{t%T^w2^-*$;~q~Er}GIjEy#<4wE%{|BVb#lrNQD6x_ zXjA$CwvW1$on@fR`(@g#<6ZpLS>;DbP@Z~Ouu!u|I6Rgm=~G!(+ql3<2#n8)N(Kmwve z;DPw_jkmU(Hk910n8nlliLCMUO}w$~jSe2|F59e}BtvwyNRIjs2Cxy|1q9nUntaZ- zmG@z;uc5eOC#dsWWM!G??5kU}){WJ*{xZ!ywZktzUj}yHQpPv}nNc4W_V$(?yLXor zCN$5RC);8wf?ORyC`ZsaOS`$(@AS(oV)Xdh6?WL$rrT$Zq=v>_40RkKQyWg~QDHs7 z={%>o&1DjUd_YqAEYP^>?n3x8xQ+Wyv0GOza(pzWyV-6HaKEK<&P()(m$^5SYcHX( z@9^SyK|Jx?-CifOdS?y&%Q}b+ccCp#oIq+!dG?7 z3`!JMkv=p>DIj+VBbfYD>S}*(2HSCw^0ZDX2X^F-oS7&S6Ug!ilZ=$dGG*^r%-6pA z2z^uaCX=t&H1-Nq z$L?~??!D~R{6_h~!;f;zG`j{75N*CCCb8{*>0GGkvAgroZ5!r7DfOL-VwBgQj6!#)Fp?Bl<)Ak^d z{B0?>?m!lIV1H0Ah8U0RCGG(ET$qq%i~t5*s{JkS~DN!%`6?q^5mDifc=*>-1x0WeOs zudg7#>K&ObPQr)b`#SvZv3+JyN^2`=3+wD#PoI9aJp00ta_IRN%b_2A4MTCEoO=0W zIe+ZQvUK5mnPUg-%a8wgIr987W#56fm2FpX#o-t|32f;VcDk>SkZE0*JX21*bg-O% z{_n~whn_9h+;o@H#o|rwDqon=NZ{D)<#OU@UoRWzuj9wglb3_o*VJWp>1)GHcp~Ka zGiBw>SIUXwT&;NQ$K~YNgXO7bPn3h-{P!IBy`}u{sbl4%$G%mL|M+{{SG}!#WcgGX zKgptzp`Wr=;FdDZrm?eUkCeOC@66&d$Jc7v(JBgZ0NcR;3NO;H6rO zZEG2JHDyJhELJ)wzkGD!`c>m-BZyCZmvXWFXu|YKU8bDQQr@VY*z|Y;0S(id7AX3}@t&a%i()*dGE2iWb~OJ6R17CSeMQ@82FA)h;G z>63J&p~6(S5QkTnXM$Ub2}kC|6&OBKnoSmhgRuIEJ*ctL?b)9<`K~ZYqD9fb z`)L_lzr|C9y9wkGNyb?e+f`1eh zS3-tgi|^;*>JD$?yavjDw0Ae|OC!H_$faYqF1BW%L+jPnPmRyLy`T!nZ0fgM?m+(gaeB#oDyS>1MwS_l39zb>8Q-q&l3LL;_+=hkv7J9fL> zzx?2v%XgkWTy`?id;>=$&$>&w%h`c|2nMz4|m zt?FC!Og7?SiSYB`w?@O$iz zq&NWU3QSlL{28E=rqI>k^j$}~8Hh2^{CYkQuXf8UOB;ujGX&Rx20{q$lygIWCdYwK znxNfakVQb@k~fTMkP@-_Rl|%Nr99+Da>`^?ZBvOzx;1T&1o9|l?-rHQuJo)jRXbts zD9AtqtF+b%F+lcWP32` z7iT#N3jvT)>GFSNgs*Kpk`w%g$|&%Gf^#fEpBkXLqfaHb}ir0Ngx z;Rbo~p9Y!uW6<$x2O(vop2mR5(L%^x7DEu8$wCJ2t!wfm0|xNPPM+zhi^biRK_~;x z4x+|IXp#c_%$Z2^&ms_Twj6Qb5ikgHV8HUS1Z&;WVADTF6=9iJ44;GvR>Ghk9FfIT zK35}>5PrIyG<2LLb}9GUAbDY45X11YLg`6q!k5J3X}--^j_d_q4c*6J zgX-G48@S-&&3xiA!DTq_j&)XFFjFqV=Rf|YjC+0x}GO zIOCB|hOIKdV^>%)wETICe7FclPNvTm#i-mwO2fa@6Y92$2C{0D%J1szBu_e#v!n+? zo+)XoHr!pJe zC`W-bap0WzSy|=YQRz=F3#|mcb?v5~<}RNTz|4XXt>) znFKN*f_)Y`Yo!drNHuUkh%R=h`i0?5ec~LDsyhrS4XYj*MmihVW1vku%c&hOm)>@; zM}83mUu-k0T)P`IDheFNbBA(dSTdV5)f1My`EatqrxaN<@<8V^dFCl^LknqDlAyT- z6u3p~I}n%3k2M=y(BiI=UIy9Z{TAxI3mvp~#O=|W10Z!WdxbwrA@U6M+5Mnwdzyd) zIkuPL%cN}xQV&QI^_cJNqud?GfZ#gvCTR|YW|0`iiUX{x3}9qe4YcGm7yN9KoUB=5 zvBv@f+`auAi%7U9Y%H=PVul?nC^z~B3=$#}i%jZT=cs7NN6pjR97j;HYk7p7F79@b zwAS83%Y}LBxFvLFKX<5Qk%G)p4wY~I2FOPy-JsQa>_E45+~~{bvgk;n#Fj93$|Qf0 zW9os&$QjRtddij+Nge0)8XkYGUY4%b0nsUQ15)lVF;IM0*eWAn;$O7SC1oy-4o*Mf ztdqct(*pJh|E!;NfLq&1^+4g3Tm|lq@TC| z3vWB1t=bPSNQHC>1-GH3!f(Z0^NdI1gpdZwu6eEj`dcSj4Dv!6OtW(AWk6o<2>haBt@gw83KNwrewMWD{(S+EQtz?!Scy=m_ zD+@_s%1$O3w9(G9^N>+-7G`l&D*i5H9OTDc)^cW)_-HW(-dXrUI_6WGV}$fP3Uh@x zo@_A2F8_J@hilY5C+FwUfk__&#HTx~(glUS0qkJQ(WA><453@dU@Cw(iW*&JsmU|> zsZQ}oQ&Y#6Iu_kRxMpGPcU0IaTa63>MRZC4Icfwdup$;GVJRoqMX5k{mdWa)~w@ z4yDjyu}|-gwf#G`7dO#)tTD49RFDDYT4+0fRsMuO$Fc89k^{?q$o~b}7LS7Wu3lZO zP1s53g<*=U2VAS{{MrDQ8FRr=&lYxwu3Th7i_!wlMT>@Qtfln;3*0td_({SBQWxaH zfg5fpJ6LHpc=~5$h`W6)OPEUxYl?je>?vi%J|n(y;Bg#59=Z_3vh~CPZMU>rq}9W* zpckhm)9$Ym?xdS{6fe(l`W^S%uQ0Lif;Jad&C$NjTwrqd!ep7794{A`_?@G_>%tY; zFu|_e$DeyCcW^T6#co~XvWJOk?kKjc8>FpP#vLZpellyXFd=&8yt@l&J7uN)IOxsd zDc<@yB}kj__{>H*^V53$g}ZFCP!D}KwbWbw^pC&B=7=AZNoaA=-tfo-r;_}X$>_y0 z4h@li@~{VGw}L{=X#ngjwk#KIi`f|&Zj+8q-mGy4Is(FfbTW7c7&C-D$)|bMSqG%^ zBD=8B);T2)#ZTX=x142yZk9XR=jfZM+q4B7k2&?&Q{^}l!Mk?t%u(2mW2&!=do{GjOKCD7s@-|dMy*j*dT;Ib8w{`JH5cM%iGGiY1)*n+Zgvi z0$1la4e>x(AD&{zwfecgoH#Sj;w=`gGdb!4x3Q5C%4;!4iVwbx^yChkBQ~&w4j$yn zzRx~X#&+&6Q|v6=ziW3n&t(3HvPPNAP$#e2ySGds0|RVC8AH&$s$i7&6KBpN_gk|_ z!+JG3wjKGHDSOH1aqgX7rY#s`QNc9rmIAwdaFjNLv0M5ayP2fwqmu0+9k1Ivw#;T8 z790$-xNjR1&-QU$TxvUGWaVL)Hi^x>oGieCKV)>5c_cTsyY3twWup6*ci&qs99b-{ zeB;p^AMYs@1C%MF8(DB#wW1|&4XNd+3W$!uyVZTsVd@#%3s*e%khovB9VpIVe5UC+^xEKSmvJ%$AhYl^$V!{J9^M>67E-{Q3Fv`LFz} zjFH4Cj#xf(<}__CR~Mc-%&t=8d3>BZz)!N1e1dv7S57_g74*Rp$8aAj>$8uSi-b*_ zy;#n?@I;wBcaE|~jK}YdGg8UXp`2v{d||;TIwuQasWag*d{h^>NX3l>mPM); zeAPc}#;0u$8xOhKI5n;|vlH`_3Gte0neeI?o3d)7@D!i@63a%MZNJOXu$;Bm;&=+8 zsW8NgeT+%;wd3?7)X6#g9QVuEM2%6Sb-nv4e(BPVu6ZzR(y0Gy{!A!v4G%JL-_Q|! z`m5!k-?+NOhd(H#$ftUq-M(9x$n=iibtZk+Mz@yb1GglNzUgyifIDk@sdH=4V*8`3 zDJt=zthgI0DxL8+w7T}KeTM4|P4@3H>DdDN3`%)P4F1v=Xu{*yWJdzpbS;15`CX&g z&eaw+V|sc9G2zHl_}Qk_r01tlWRyM&*CJdvS5|iJE6Y0%ltE4->9I2=?`p*laK&Y$ z*LLERt{!BzPvfAaMT4oP_}Y=%kOnkSCEu9*#BL(*ufk-YK)6m=;PHqIR{!=_xJJZ? zX2g^d;%DsYk{+KmlxK(mQn?QZi^E#rfZ=N~#9jL6fOX;D^y|EJz0?%CJg)Rw6KRrq zH9+VwYb}IG{qwsfQ0Z;`8Ya97Q{&$-pa!=%Uj_Uc9-C#rK5|aCjKvuzZj@H5mol$oRzn;r3VFw@KgK33luNQ%^m&g-L;L`4avd_Ct zE_3(Za#i`u|K<}}>FHg)yIGa>i#P}CpFVQ7eE<35*+e3nl?ROt}s{G~OeyM!tk*CY)vtDHG5r^)s z6+xH8<+b{`s;OsHUN%~wsV`N*#5TWLv>k<~l9zw}`Di0TTkzYs7@=)U0hA~8=x3uLf98Y# zJ#<8EUClH6AQT;PeGeKM?#Ccz$V=pN?IK^OtT||xqxC(oYj)%xCKe_EQJE=jd zipg;_5a^CWhmDm^CloSaA>rWnp{l~v4?S&19&f2j2HOVKGIkZKklrQb@kr}*nse7> zBcS1;5uwGr`RF(jt2_b1sC0l) zdRFNutG-efK^46Z4GYw1@%AvP<$$wgkpXLyGiH9QA;?}Mni-EDmpju^c#sN+j49Xxwq6+;3UH_p4>e{+kAnm5JowF*OkYXo8^^kg2SWtY-!YU zF5t;gj=^qzAxa(rT`2`Hior1TuY)p#K#b*Lm>o~+ntV(d>P<9%G7#k}{FV;$YaGi# zp30^Q2k!!3%Q_Q)L1M1?Bd|)b;7pw0OH&cjM9~zdr~>ZeO0L0{a=#?pfW+nnByb^V z=v(Cie~E_FlYqw44-2d61KxE` z%1v;(O9tLZRM}R?I-ux4mTjq!;vAo5pa~9TLWwtb%3WmesfR&Z^J#%NDPdk+bst$F z{wnX&41jpb15jY7`Q98xPiBEP3@XW}a#Fco%f+uMO;S_i`=*%IcB+;SA^Hjt9Z*XI zFI-~!(>l`e(>n1gM}Ty+3rIj2=cAU3)YSOun^Ej@+elBLS!8g=fn)F0ZSsmC3< z^TI@}i}UmBxP@=>*egENBTf=qR??*m_#)3-;4(Y_7x-SKjm{m};Ikd^s6rQStgNwH z#UlzizIl)x62{xW&j||eL5p65R{29hVYUOQuKaSLg0;;fYn>EWMRp>C)N|{#cHjbc-)}yj?|Giz{ap~0WLKur z!2LbX(|!7!)2C0L-n)gql_fmQf2$zj(A66)QFZpCIWnR9=V{ zcy*lZa-*0w|4MWjqqu1vddmUH6^+Wdfmttbs?18Kv~EEp)%@!fHj#yyLiJiRbPac{O3m(_+ZRuCO8Dpfn<$cl3Pp~=(L-0 zrdj?lN=6Ss=%<@#STX>;r;ZuL=vlYe4m!qQbQY>RHWMC7rW;Oz;w+!qa%*x=>hVoU z`pJ^U1yT*;gvgW z(+OVM0u!lctTWIYh?pF0`3k2rcpA$llR5Ka9309x&*}!{kNmv{znm+QKFl$$?0WL} zbOzz)nDrTDm!fTpQFh86Ve;+>eW^)~tzUJ)B9m-W`_vHVzY8)`--KdKZgn|G9|wEJ z?xd6F9%dqrcJe!~Aqd8sNQimrsXZalfbs z*IdxIUcYsRe8!Gppq=2L*tb&{miL{WCEUA)TYK^$+8Ym_Yg5OMwrdw|wncUdF3iF^ zeYqc8xYh1pzgE1T5s$Czwc{;C@x_z@3}iYzvPbYj>G&o`u(Y zTs!vR51(#3OYGp>n`poGJD=qq()TeL#iZ87H`=i?PhwNY+qHMzX#eMzzC}BbI*NqY z9+?~6Y`^zkeU6PGENHm$YTG$-rhVy8f6Ou9lysG6$hq^{5qL&!)SX&jrpYQo8!bjmjARl?EChtWy1E7!*d>i&5m~3D08%d9%93YZ5lgt-fudG zJ@#agot=qxY=I2~+f0%&8BbFQTD22*YPzYuPU4uIW6=YXlc!J4u~U}aw(O?24zp~|vXIY{dFEN%Z?o^(hnBnQ7KYEhLYvRaQ`_Ra7@|#6<*ozq^h$ko~o(A;rj0*-h!G&GK*QxJp zYdS*dRW0m!VX+jr!QlpmwY%Hx^%vft{_`4!@pgkTo>_37@jhPj1(|@7>?GgGmr=@i z+Pdl*euit$Tp;1NlnbO?k!Agw6Pg%L9i<&ei;Xb~;u6Orsj0Lvw6=~ryF@(u8M}0z z*J%yzx=0HfxMQCtRtS99zd!klS5w2@TH56}^CiZr+)=*Q{`4#p9hW$Gcy;V#!MY#-$qV|M$FuW=pY;`Q3? z3wFmD`|+`o5*!W^(Z86kq!J>P#`r`Ah5(ngiNfgPgr)o>MuNz9LGe{Ce%MT@_EEkF ztP~3s*#V`GIEt@e1DLiP`qR6#*9WxWN%WB~v6Vag&0f3MmY@3hwztg2oaNh;d6@|} z2ekN1j~4vWOJ7Wx_Jj!c-NjtyMJ%fqj^l|q4!J=be1ky%|MRR=)VFZ;XZuh`xGxe2 z&Vn-}bn+~Dm~PV=+8x1?TaVkof{kRQtG$aKL<)z~(TCoT??JeS{1muRct+@l zh#E2ko3LRzhk)Pp5lEsZ(}zMIh~a^rLy>q@StjX_Itlp7t8cZp-?^UMzW?MOf2RE& zM>{|M_}TWMM^EPX;a}sf*{?9^`}^NK-@bMJG7V;y+Bo^BMXnSdMsC6L97y=Rv9#W9 zFi`j6#p~_QUU;pYeQ2Tm{9~uvbL<}eBW)|Le=`PoDqlcJa+C zbU2s{V?~|e@7Bp-iWm!xWiFC{A6}gZHCpCzeCv$w0WL#vovQogu}t~o$H4;XFC2J~ zy{}!2;EK(OHSB$bsrdR-1p-Tbf#sP=5|^{XOU3H2<|D+=oic#?Hta}~6EeDl^5bXe z0F`hIrNoM!kX9x(8l|5y$kPtJM^D($)3{Qn28Udjef?3;QW1Cl31^tZX&R-m34yAR zZF~?$wr8+F!uVu`F9B8Dcu=58jPkvYvORd?2^8|;;xYVn$?-i zAf9-P<@3--q0)EA9e5^3yU1oy;v1Ys3ol)m23NKW3QV5$=5OWtL3rSZV`u6p9l)%X z2Z8>&9^L^U8&bpeL79%R>(Nv>;OvpB9=&XbU|u@`K=dOJ;6z7lXe#e%IxA+lN0N-w z86ROat*g@2zcs$Sx6F=$o$w4;L(BO6V7R)QMhgCRrgEei18d@RU`_sQ#-(u}De#&P zXvrYI2tIIxA4o}WF$}rxbKu)GDC9wTt9v?SA&h2J|0(2ZqhJ;}d2glzlo{N1do{eQ zV*^Z=e@+<8(rE}MFe4rt&c>%{9RBKFDMPya0Dl_r=)VKyIi3yuB_{aj^iYN}5CVTT z@GMVaGKc#Vmkt#zA||eKR34$kkNKa>!?Wa6=?i%0)5Gg$Je|)0{Ls5$>T1##fP!*@ z+?~y?wrBh)X(NdlbafKSL1+h?EOY*=0l+HXAr!*ZSrnJMtsICk)d@97SOu}Sc>j-HOQ)@Vd{I;;B(ysok0eVu`^vSm!dGB{)laF=*a zlx~UxeD2)arEFYh5_ofj72#x)c43+c+-W-I%beihNf5Br_IWo|?z~($!oc3{y$syA zt8SGOIW{Oamd80p6gC-z^KR!O3|#DcESD()hv_n7Y}v3+ zo+Ng%DEx>i)rY)+s<4%w7d;6c(yHJMr0~d21Kg1dU0E`2A4{C#E{5x=O_}Rf)~|9r zmv=yEUt+rlTy&)FdnB#+iBjG|TQ>QuRFfjp(-RC}Kmmsi->$G0RvrV~;i-DBlV>Gl z&}TD3>=Xk`{Sl(>?5xD0i=c8Gwo=~lW7(8KnB>imeCtf)L;79O}mK(dx`ambrmWL+x`<83flQ@=e}!+B8UxlID;!XkOJjII(YfZk-LD2C*?sJya?|u4+k!{-1!7-+FJ;0LVEy! zi!i3GN2N?S5)2=f85%=bkUGskp9_#&6O>7&*%=13w-`9v%CUIzn_a4K=fr{&OfKGn zGY0Oc$4J9Hb}E__waj*rDIuGR7Vq_q2R!7833wxG;3wmLX)A*+_SGr1OrDTN2j{E{ zJ(5zFJF|FpRxNV0j4~8e9@zj=ErGWEZ zIO3Urf~@a@m^Fb!9P8YY^*+|np*o75TZR909_+C6^;ES(X96%q& zGU)^niBcTegMu!2Cv~%sjX0LI4a#Z63BH4|jS$2~XBp^l@RWyq`xEC=j(w1i6ma#L zaq$cen@%S{Hra_Zwn5zR11tmJVi05&$*+s1$F{1B6t})^|u)OZ% zupA&;`vzDR;_+@A_}S;w9Vf{=Eg^P@xK6xjb4D3tA7fHtjENU*;lAxG0?d;!j+jn1 z%RG9x%YgG9yVJ~Hcb`dH8M34UMA!z><56~d&{J2PD9J80%6Cp`fZo0fIm}~VJe4VF zVmDZ3t_dfQpOU5T$}bDz3`3r=gMopvjC3w_G5+zxyUK}ymCKg%DnH`TKdt7ZB}DZ4 z8Jy(_Zi($vtk9B=WON}Ay`QPq6eb@9LV6IWZQ2}hZ`p$9-K=tgcj1t`f4Us~oEE=d z#O=zl2!RsVU;GUpk_X>Tjs%9^^cMo(an^-bAJ+0DrBL3v)pg*uV*Al_-c(Nq z_FbJ_XR+Jpo+r~GPs;8jJ2%Ja<83ifw~o!8rrdtyk-2u_$a=eU`FeYkYrYn*udoT4 za<9RttctClW5?$EPFwG>n~;gAckXR4$wl4Hq}~Q{6Yt#YNIP+6zRevw)n4W}*sC0E zy##H}=wRYzgvBPFC;)?0+*>G0?zN?Z=pr71Vq>)HD=sLZ0kFeep=0A4?RWo+-)Ku0 zf6$(qy36j@)%M))KHIK+>-Bbd;&}V*|B}-KPk)Z9Q}4E&zvWopXMdM=IP~svJni?- zx9?rxh+A_JSuL=k_Fw*sPqd@w9&0nvTCsW25V& z0!l;5ynXHh+C>M+;q=38{}|DB5mL&6ffXimZd_(JD0<@&$P*mbyaU}G@@kvi%nKY5 z{q!@BvS{F;cJj$*+VN8lF#&$7ZQi-jKK@I;*d9IiM9SzM6KK&J^0#9zb(-Z{TZT#! z?n3#kEX=lDXeDFKgdw9IXABX$x3+k%ee)}SP5FZt(lQu(A>sDr$LT||M}|`Z&?VCE z)gB(xY#Xpn_Msi9ZX=(gOz4k}(x>E|Va*)z|1cAAE=pcUZx*Q6rpB#{nC!o@*3SQj zZ?**{&W|DQyBzmjSN{>Brr1gAdsRhrr>oBJNGESzqicBl1;Ja4kdeUGEd zCxLT;<1&jQXpI8vVtC3JajMoJB6+k%-$tBE?)+tTbR_))blKz5@%KLK?_OA@++q)* z>*B;E44O9mE8l!4a(0rmnu&YuCW}{Id+UYtRdyNk_Fi7C+QoNRtVWsf^ttC>$ES>KTZg^aOG{< z`1JFUwWon>aoqNsoSrZ_N&O*@m*Elnu6_K`>+8slUCYZO?e(kZBywE3wBG)QfAvN3 zY76?%L>9`yeoQHsi!&>|pc`@rAE|3KFi5noZ)_jc;t%8+No#u%wLgLM9bJ?Te^uug zBD4V3R{2akX;(}=%bA0YV?V{>fTywXKVYG-b)6KqIE~1kB)^y_~hF$ z6nW~Z`Vf(3rLU;_D__N1@m(R}j_&}k{id|lgDKJpi1sU!o8m_3V@ob(Mz=V6e0O%f z?adx-8|R+Eh_Zl)oxbk&9d+CX-J@^@f6?y{i^tc2%!-eAb=;6FXji$>U)QIl-s?;G z_5E7k#hLNXUT9q!gTNo#r@*C8Gw>XUqLZEch(~-KP{`rW)BN(qcIOyJuTR~%-nLFX z(#BY{HA1?h8^#Ap6oa;kypUP(7wv#I%QD~gEz~h&Hl|4yvQLMR?sLg!LtHM=1)|@$xzyM`S82@%L57GpFWqiSvr*SKAnXXK%6`VXFiaP(%8tdJdxZp2@5McwPoD zL*Aj@v2cK-Dn2Vek3IYL_kPUL4VT(~{MvWg?|k9c+VA}KueGxeKh!?*_$ek2kG9|V z=#%a1FTLIV;9D2kU%hm>Ewgin+A9X+KFu!5GSXF~wiDiAmEb#fmfDN2U2T8#?F;RZ z6ASIBM~=0hfAUQG7=J$xohP9)XeMmX;sllbMlc(Ut7|MeKK-<#fU9+pR0aT3(e88JT@@rhv=1(TQ`8G^{ENj8?G}Zcw zFW?CWG_LnCPW`15+=UH=R=PFXdXhkgE>dygAzwAvVc@Xq(rTpS0b#=Ouj6#+n^*Z3 zkbFy8BZ4j>9)1>uKm}(&@Ylzz>Hv5N8h)!G7LPD5Y;h1j;fAm#DAK;5k4%R zRdGp$N*6p?u}M0F9>6O%zO3*(4k*XQz>5RZwACY9CmXkxScT0hX)C!@bX{XZbRM7Q zvA9l3_?JJZol)kRu>%D{PLWCc7c6N0BimxcxK;n)bW_Cvztg%zL})&$tIFKTk2Uo)Uox-Gb@?L>VD-!HH3xS|aE_S-k&R?)I%R;$6>gZ= zq=z+ndyRR^t}MW(oy0BjZxto5EG)1J+*B!}I_glSz{5|f7yKDBQp9r6?y*2=oesO5 zx5Xt^m6A3i$b-kc-CATtHj1>bZnWj-0xubCy3HzlVWs8u22MQrkI!okF!@TEdYN~X^pPyQgAuzif7@Q9)&~p;qJT-16 zcgV-WRr(;Db*-Iv?}oLmS~Fkmc)-7Ht2p2aXMOg+#a_pxkB(t!D2mV>2G;+OQ_o<~ zhY>p0MX#@pw%X=EPQoe?gd>O0F|O~V*?)BGl(WM?B`NAi@vENvD>KG-$4~r#uTERh zsG!12kfCBYaD(U_PeFD7)3F_RedX=2(+?m1e8{Q1+NOxNKRUjXTwdd4q#@+KTGZ76 z`InYKy8WQcICZSHC-f*E z)~haZ@gxr0V0O$M*qg@wPvLKSB?F$8EzoC2D1NHDHcN8mhg2M3!X)d#pH$0^By)v{ zAHD_{B^u7dZy2qbse+O^kXhFS*0_mpsjwJSeH1vpO>eJvNn28#;zIf$2A+`Y@W`{@ zsbdJwBnL2=Fa%hc_-DL*CXTd~1E*{gSDyjm_=Uy*aQFrOh?gBK@+PgwJhex7S01KA zyKcCHk20ysXv->3tF3H)s;LAqEKQ#AoxGwvcqFK@HZ3lGaL0`KmSYXUqa8J-yxKl< z(9n0&+qX{#e8_{it!vOH^Ibjh)Q8$Bqz+WxaL`5Yh)e9&Qx3wL9(TR1v-2(*EC5bg z#;}c2d1syw$bScR`*-D{r~llo-j}WHRwqPSci9Cq%4C3W%S;5V(BCr+vVW5{r&6|! zbOqgXM z)D;0*KpS~CyEu^t6Id>mRDAAm^FB;#P^`~(nGn%3Es_6Xbs=pX*I8{*cN2P~zA_54Vuaqf z6Vb@Y9FmG?0N(bNnkR4vb}YEtu5@o+K#;c8Fr_#`yFFF zkF9y)=ybb8nakCFu&IIHQ{%*6Na_pv)K)||t7RGLKXSoX{k1#>F%~7>3#+&C@R~Ke1YZHQl z{sYXbUF?$jA{?8s%I(fIkROY|8>$cL4Q_By*RCobHe z?!Mb@-EmDBd>Zv`mxz9qXIao7jddIFFqG8^kgR7(J&2 zX?@A~rM5t`;bJ$lca#s0X}-(7&Xe@zvN#$N9zQ)fev&@eM%!Ws_t6u_xbyW%?(Svx zEQ@aMT))BuIC+k49Oc;N8Sb_<1(8HpthPqVAf9!lhP(o01IY5KIN;OzK*87^7{PA1 zOaAVWo9#TuQacgqLU0#}n`YP9xHFYqy$FuUVCw#a%4hXC%_Hm2 zaGxuJ*lmkVb#mBpL}J39V-}9*&Cr+M-(`3Inu{hV9~4-3`n&s>GrZf#vVx=iP8Bdh znVn$Fc7)R|7D)H*?sVILt|wV#F$@$O$8*sITAcJKMs>_`yUmW|EXqhpc5!3XyNirv zOK%U^P~E1ETV-Lk$H*Jm`b9liqwK7#vI&ZD-Q68_q+(ZGsN!M*HzY!Y$!j#$z9{** z$_WOeV^~6Hdvtq0iL_0;jxC9OSYg^zO7V!guk2`GUax=x43!HGJ zS%ithGyo^?VF<`ul2!gHd>Pg~zs%3k#4| z(nTPycryoG3^>VRfyZJhQ- zf8qOfy|gJhv<2lzSr7<}3k-zQ$+ONny`1tIypnWc;ZeaLqdeFQ9HFjtf^(NE7{*wT z;}Orh$4|GFQ)jcwcWUuko8T&($i{Yhhtg-|K~Wjd?-V?meukF?8gM_WyF~~2b(TH8boq8W|IY395_j)jzHyHOFh0eu>woe~Pq#08{F%tn#pl}}{pB~> z%jYk)C62vu6{x%QDx-cXB>>9k_FAYZu@hVw0nhMm)n2x)H&{08Y-*UMGE~0uKbor0(Xq17Oy_(jxLb|DTO z8|HcwO|MkgiPvEyST=NpE|C34@=bb%b<~S?7a{tK`*%c_xfKYHyO2(R-}!_8uCAGD_#t)%&|E zbO6C$JeGVSUwve~bLz7BDt-0dKVxNuC(mKI^zn__%hPwAdAvj89|KSgNA*lXHgtH{ zF_4aftNK}v^s@uv-4@<4HGu$Dnap#?xE-Mh2YSRu6xdS)IOs62q5YBvQ|2IT2I_5S z@NQmZfQq=n`^}+7dFPe?G{BKj!SaN@{?UifqLY`75g!OUJAILhdS=o`M_Hg z(u#vo2We!G-}_wog-jRHzni{l991mKdsmVMkji434!1gH=r+b?3feQIXFTQA4u&1n z;$a(EtMfYXbzBcvjZo29%Uy3h3bvAKk{s0ZK0a;Wh8+(Ypx()%TnaNVL`uqlHwVn$ zT{?A2-bvtU`Z@6JN?Z1*S*|Na;Kl85B?Tsvz3J5V@&maYc8?#+4mI$tiCezGVH!}0 zw!`3=COZq9v_TqNPq0PD+>VwL(6yS`9s3SYxjWJUjSR$tOqtaV zW(F|rppa&1I4~Mo%2XX76_Ja2gN$sPJAl$V^DWM&aiXVHmK~I-_Ji=!qhm|_%6oVa zze=X-9!YmR#DzBq}Ob@xkUk3pd?|@1|dfL+K(5g?;R2ce& zYhEfoUmZQN7YUJH6-8AP}w0n3uTWjzXFwhl_Vq?G5A85kNo-)z_R255gffW z1xQel=S{qV=g)EhL*W@8Kx1SltgaQs4VMxZY16S?I!g zZ%e8FV}5G10Z=2nBQX;l$`z1FcD|^uC=q4d7G1R)B&0o+KXDcrk@;S_#Yg!|IQ~9| z(_7#DuV9v=>{(4*)p(E>mVW$m zz|?PDcGnQEp9tRJ-GwvW^(>FpiM#H8#b9~g8q5&0Vv8YsiH8rh$3CZ_jMqU)r$kI+ zx#7AuX$HtJMPh1wmqPCfhhM(A*a=>E^%&dijztcZXJx!YTdDdq?)r7GSKVP>6Z$Xf zW2T$IXkoo#$u?S!&?mmO%(j_>I8K_oyGlQg|ID4*#J4U_>&m*5#9F5s-<|BHWyAU& zIBos5D^hqmAn(MbDRN@PJa)&Ur>vM-kN3B})p?(wbt^?QvhcWEnRQXE?WNEoj)U?w z!C_uQA373H#}!jq3GF>{iTq1?$xq=r_z;a;eUn2GbS|GoSKsKULCO?D`e{~nHC*s0 ztGdcNYoY_!1>qrcMI(7_M(`PIdIu2A=e;zH7yR_D0a@||S*k4Ri;EqE)%fo*nZL~r zs~JuwTlYA3u=agZDa5W&p0H>{EP0DLwoC${-<2`o+-XvaL}|-~&rX)W=E?=p@J{x| zm4;V)+`)R~HBCl3VQD_5zA4a(=sO6U?3K0?bMfLw86M$um&q9yKyigg7C&*-;}-V^ zqHmcfvClvTcW_Y5nqbj{d}etZi{bF8h*4kdr3^X>Zg=(b^Vw7vJSYkL-nC z`nXPvjWWrbiW@lf%xji5nGjn?!gC(&?w!8So@VlK0-1VW_%T>?BIeHiOj~5J1YRjO z1h40n`|tkMH`}TI z`+OGK*w4Rm+hx0!3Dg$8vRs8kZ!np>ad{oSnc(Hfx_)QTy} z`waD(I_A<_F8v#r;Ei9Fmb5U){<;=9a~EVT1We**455a@&H^eI2@bgWF;rc z>4Yvbx$C0nap)=AyX40xlY<+aF0{!G?yW1=+sw)1?D9R1p?8dQmNxAMyTg$ud6n^i zlwHev6er~)Oy%@YXW{IpydJ(>l<~&1;+lffLneYcN?Erqo3?i z=I8}7*kK`oyO8%da@ui{T_%5#4E;;SD(O(~GE2F^E>joI?y@Lp4!z{C430`xM#u&_ z_m~X5yhWRUN$$HmS2@+^iDT%kQiIk8W2GzZ)Fxe;XX|I{xpDex1T)SO=Qy1R>> zxQo6P`az8URxz;6D<76q#@oY_{@_viag<#k(1VHxfutdR@Tfki3tq1vpcCw|BiN3t zQ^rQwUf<>lKJ(GK+p!*ALnD1Y=*x>c)g3qTpC|UWcB-ohy8fAucl{VAaN2lf#J6&L zkduEC<#?Ol*tuzwjiw zjm`V<4aN)!v_2|KK}~*GMv7Nnl6QuHI)BMV@Fk8v;ZfN*=Apn!?#7Y0X)tc!eaTn% zYv3X3L$IVjW*=V1SwJ(kdXHnfZ)dmf4!eEVANv4{2zT1ly<2VKp1XZHkAZUB?-G_$ zpDw9{^pKz7x?ZNHdEkhs)Rmtyc(5aF5-<$_3ZANA+wd5F?l*4iwl5%Ipg^3^)VC0#L-0;{4o}e^^}qfIjQ=oKzMB-` zf0`36wpIS1H)7ui1C+MoPe2ga5Qm}&9XU1{5fY~&T1M67T!Uc#17n$~MG3}|w*Nz1 z1|oxa5|kEaq2j9(hH->H9;L7v|aAmo5&_@R&ORPj*y0+Qg z;EvyKpTELUINWW)F*qlf06ueap8G$Jh2Aq~PcZp=q@CqH;nUn>q*DL??Y!sABbhJV zTxxIf_bR(}-y|Jx@qUX{nRf`ggG|8EBLq{MCX9?`Bz_WzyHOrwm;>#=JQPW-d$p)5BcD6dGB%&om$`vPyXkP zAD{l|;>Xi0)9Cu_Y<09ZhSTU)rd@vc=wT|AMJIz8F0khqd76B~i8hC%2Pzji;`=tK~~ zNjws0BVRs*Q)TR20S;VMO0Mk8DspJSPVt=d$Rm6^m_zOFkwOa1A}2lv(!57gprnZ~ zFvUNOUR%OaRi?_HcO%M2Dh}qw;9el*M;~f5ZCm3C&^5^LwybWgW_T8dWsa|DZi~N}azj?C5ZZNY`oeInR5;d+m z7D+(InDQ5p6!Gx*Q01u}_7d-+zUu*4;e|o(!`Y`(oklPGIY4Lu%K(cBkc5c4_bgT* zzP3X>px>2pK_83p1qN-6jK4DMeu_SR4hU!99+}94INVm{d(vs+i4R3@i4aH1r2qjU zztCe#j}WF?XRc=#y?UbZ#fLy%GZD+vwo>8%8wn9y(Mx9x^*emzN1xsmWQBJcM0y6c ztEUGBJ6pu@MThyUd75kJDPS( z-HqTeNHzFC8FO@6SmHRa<-p`DY0mC26sXcLU`p%{K_C%hJ0!PNWo}_)bCn2 zqdg-(`-()|1CHc_Z{p{eE@Y%^a!(&|dL2UY=&;mE#>N**I_&UaC)t$A^9Ymm^6Frz z^|N~B0I+<<0aULgfxP>}XLu1w@E4zz&qYIhwcTSI!CX)+%waW^Ean$_CBU+^_zAO5 z1P75+an)~&!TA;M)}lS?gt{w)-Syz4)DELg4)*PF6q8Mxn>U>lj@)T^lAx1ul zhkxSE?*GURV1$-IIWZ9ySp_S2U|zgVpu~Q3@y)#CFnqa)BMTuS{NgdZhUa3)ff(-) z-KG6&9$3YCS_GycJUMZmG@3E-+x-vRt1Zrw=^Qx>&mH+F@XZNXJ*fG^Q z(`Q)m*m-uq2J7GJ8)X0*DZTfB+pg1Drrbdnx+tvQPH?INMOwL3dw?4ka4CXyJ}1aJWh^ec>{V?1ifo<6Z<#Cz;9#`GIeaF3t{HjL9s>pz{0{Z z&e06_oI=5I!=P~M92h*c2);|)+dxkm*H@bGjKW%{Nw(TVfUOS$uoe`UbE-Nc>8b`ck zSHeZoV>~ei2XI{oe)V3GudjIda{wGKaU@{)`^_UP^j~M9Nx9527UtyAIJWVjIZm9T%-XNF*v~7fddDkL|g~&$XGokG7F_UTqiNUV=W8jdN38D@tr_@j+kJ$#w043u>Hf zv)$p5t4FvecZ?35C;Hg5Q?B;i_AsDZyPQA-ybC;>(mKYX1P*s@Thm9`G=Y6KW1x|A zgWG5I@hr#Uv5v+*$_F$J&!QFlCYV?pu@Qy5t+Smp+~s>xf6z>$BWI5Z2QOu7~8o{F8z3LX|JnahWyCiGi;RDAy4cR zZnM*PgURfhY@%@CxZ^g{PKu&8UIp^Qm(SDovW!y>DDbw$w4e5MJRxRRUT8XYF9{qO@LNk z&UXGB6{2@)+XGeCDFn#h+6>vUpy8Ewu66q70wWkgS6yJ>ID!S(r(>m#y?I5!8g1+K zjnyoKoTT1gcQPN^A3QqNKIf_o;+{MP|D<=DKF^_KmHVX$eq0& zt9|MucLP(7vQTBWK4dk@LXCa;7{YmFi1yV$+d=YczhVL1Jhs589~{{{!r}w@-P3Rantlao zQb)~?I&vR-#NrBRxae-z#dhd8SYeGjkLP8X`+E`ECx7)x_}FeQeD4PRTVV0ubN$}cHKYV)KFH(v>*S`Tgca($94Rhu(Wyb(ni%0#-$ggHK6$cBlSY$ z(0N);{L?N8DSZ=E?NlvQ=L$`I@NStq2*aa8n)p2dbTW&=INo`b-M-^XoJugmWc}Pi z+c|NjZF|h|@?x7{=j%8yige$x9G>Dfd2$ds(&uH64+)bUJbO6=M!tM`unRWwP21}A zhi;^*{OIXfR&fIqd<{Ix)8vV#$eK%hD4}ycWyWpW@QR;!3S7{?PVdMII)lqoqurRV}B*t)Okb(yo=I2 zl&v_vYfKBe_^I#OYa7}-=xizw@#UWYhN0=!5%@OY5o-s^QJvS>hXKYtzS_d@WW$iGwUNVhn!P}`8wcwN7>*#4YJ-|znLeES0~ zg8zrV{>$z2zx8QW^gPbpwMX*z3GRsf=l|eC?b{cwwZHh`8#&_n*6n-5C(W7omG%4O z-X%wG3KOl(IP4xPAUE3*$KYMO!G$1icxMTXTq>HQ?5tg2W$6Nwzz;LYdFJR`dzi`K zhmOp(b3Bi8f5r(`R37Kpm094uhteH8e=mn9a<>bW<#Ly@_ZTiQsq2x<9&5Gd0CJzn7DE4Qoc*lM_%_05tUbYQ=ilTA>EHZ? z_p!?8q2?~$dCvjDS=oQ*`#)-5`s1&+uYTi&_6o;vd-uzGPx9WE4?~5eUf->SeGH9+ zDkd66z8fOHS=kSr3@F;uBgFeh_E}tEvD~)T7+>;=eCR8K zl1(3C)!I2;l#|~M87T>63Kufai@$(jL|!5!QdUpklpFFEM}_x*;!q~W(Schy^C^R< zzL$T3L%-hi4@NJD*EKYN%DvYD29&t3q(LH0> z$x&9bPGR%a3nFmz*c^E1FuBk~@(?k5HfUtXqxxzZ(;4EKa;-n1J&&;we!#4&Pqj(K zwsE0J<6OPTA_rpv+uH|MtYiK{dJ0}GM=q8qIu6D=87)D%sl1Yu6B-$uu23O5ryeNf za{aRp_1W`nn7p_uUb?Pcw@k(nC=YeFsc8*#Rx8(0?#6~2QE1DSAcz_o@w(TDX6H@#0%F0^4i%_ zcjl;*-Xkh1%b>g5jnE$#*~cuYP=<)>sRJo5<^l0M(pfrEh`y6`2O21b!%kX1-Dwlh z@c|%jeY_zAr3D6PQzYD{-nbPzWht+g8PdsLO`vG&Ohefu^+lJui+AheZPHlsOHh8Y zvl)N;BX(f3qI`%wb6NXfK8-oK#7jy9#3QBXwhSec2g&Lw^n6#Ib-scZdwJ2qno@T? z_1^lV{*JBaay;?OUu463CPB$V7a0hj1wH7%8tvFkM-suNO>iNBcFgp-m;o|z4zQTl zLS_exGUI>3skfE7dk%Es-|`;wA5KOZNcUL76V5cckX83X@LcuGn|Y;qM$+qp3y1zAAIYdKap4I2_0z< z{0+k;fM>_gfgb_!8xBZl_tW9Be1n%wTjVA30HF&IwA+l~21R5;-dlD`Q{bJ!tW>H4 zg5(Br&0-#E|F8;azk9zbd+LkYKs_T1;0#Q(C=%$>WV)46@n1>lza%>3?+v+n|Bxp4lQ&Yp2R<6I{DLXGh7OvEEeH=k`9U!f41>0tESP@wd6aK zGU$cr$=)LPHHVNoNYN?Y9r}%JrhIFcBJ8A287bhhN7D>|?*pSPao3yDzDMQnpt%!j zK;!4+mDJdM>=*gv4#xD&(C<8j3=B~4Yo2=Vu(r_lk%LhgxFn2WSEYQQ`@}WMVW$VV z)%*9)00}QQ$;~dB@47>P2VQ-!d0gZZ7U+(6kInMtyP$nEM2rl&Zz8!H+qmkWu7?|t z?_jMv^{a4WRNrU-kI%|F6TRV~*Knht_1I~9^05Ib&H#CjuZUPr+16H|DTgG`HX#|~ z|2&O5?L>y92)_w-i>h<^;NirHZi5En2)IluFZ@)#8>W}~v8|ntGq2Sp$~UyHuz-DP zoZWJ^cPMx+@bHLq>yTj5PWTV_YEKx~@~rkEOX_(0zZ1;Xj8Na%rq%Ati=3yP0#4{G z;2_wnJW3yCOP%Dy{BY;(&itbsXL%EI%w(RItAb|%VDIZ* zMjlSKjXrdaT~D_tzt-WTkF>0lmPx`99}}G*CjmE?*wM)($kgn3JHx3*=HD7^yfM z4o{vsWxv2aEA5S|ciORIb8U^W!)bQm z?y`$@ljC~NoH*Vt-M-dN&Cj!t!4tCB<$ZFlUAeKyi3)eVlsu@*7vv$3H#C|?Af3# ztZq>+Z>?p+&5e89MT@oCaB>j&9U%?EFR%vgK6(<+nu`=iIGSJ(l}_|zB5gs zU;~ba)mK7%`fWf6_@guayPaiLP(^9foWcp0)-*HMF1EENKg{BcJEU!Kz^_=;&_nnr z1EC3@l|JzD?ulMDIxM&5BzzdUpSQ6<6RJ%M$G;s~$n`Xb` zsap8KpFi-z_bBc7Y1$^{^)~g!){1#ifPy&}G(F4r9{Gtq*JfFN+NaH!^bk&Ym7ZfY z14-oFZ=7WP8TLE$5deWY2jDO+eFxvb_TWB~*?nLVh%emq`~_pe^EUW_hhY1U;b0BZ;Cp}!NEjaY^VX*^{sTT~fK!lc{5a|BPT#No_4nB6`zn*Z zUu~cHm0xV1|BYX1&wcFYIC5nse?RxwsrGs9kG*i^PW$F7@3b#}|Bd$DH?FsBR+^>B z?o0xe*Sk}yU+2tlfda=Xe0%K2CP#(b_NaFU?nRF$nq&fDo(A@` z_pR}L1e!A(sbPa-ipD@+2))zS!TdE0orYR@c;BRr)HRNESfk;x%#o%(SE=;9w`F^K zv#oN>>ngJl9u2$hN-isZ51ea{ zF|mI3_>nXKM7zT3vgg0{?e^!-|4sYmcYfF|zI~PZan>_&<4)d#{1v*~AfJ1W!Lx%d ziyL3r8Fqo_JjJ82tj>5r4dC-aV*p$>l7uyGDm$zwRY}UUel{4Y60F#%NO`qSnmGJa z*#gdY;B|&+uI)tV6Qj(VgBgCS!j-3$VzbEjW|PjbBnw4;=N zdKWb($7&?NZ$hnPc+09ETTe79!;57GVl^OdmE$p24w}Imtbn+a@%Y?S&LJfjQvXM%|MR`j~u$LEWg zW}z?dq|4V-pa%O6&ps7fI+p^AN0Ktce;ZbdPDp}J*<`?5et9=5cPO*8=&@%C98&q@&EQgpZJRL@|0_OLf&3<4?+?<1VW zE-ka0OMOVA6B_=ns7jg+5Xdbt+OtXWWQ&%j`(Wg#oP2h#dB`Uo{Lhi!JheyZ&I4#C z*g|i^N;eu3o2iTl3jjZf*QF9%lEIp}4w-C*GimTI zyDexN6zYP{Vi9HOXOC07d@Bd*6bH^R3Yqj3F9tYeM=%*Ns(Cr=!b6vyp3&YG6{(7M z5JwsIt~y`g318c3h&X93KjT)qd{c{)01BGrN!?Zlsx0wBx^e_Io;l)?@C;BR3z5pZ z@^lb4GO*6_Rbm!i%7pstL|IBqCnv#mN;hf5LpYtQdt>&ABkvJ~dJ@D!6kMLrDP0z$ z{uRe(eM3Pcx&iG-AXT@_MsF^zoHU!}lyicbB@fNs9zroyEmw?Pv8eDhhQtz_W0Flqba zRdk&^f+}J1Wg6tc7K^)oRu~|P4`I;-;1V$rq>c-3rRQdjQ&u(|)FB7{%kJp`68=lf zC^-Q_)rc2yX7bDGZx7jQMz_u$SH4qxmB|mW)lRq;gpK>mHoh;NrgQW)!^{2PN z`b90p!T-=mL`@y>KAhI8MYkNoje=k%plptP<|@pYY%&zBWWgkQ8Ho z@Cp(662P`k?4C4+(xs%7ReqxQzRSI7)Cu9E{6Z}B3FUv^Mm0QO#xyA3<)?qjGEXNd z5(W=0PV0!|(Np!Q^Vh$siAvw}m)TzL)+i8_Z21HqynEfi7;P+FFkwS-{IhLu=x*6A zF^#0d!8+TlPMk=|a;D5Y(%5hR=bfkbkxI+HEu(s_fo3&so#Ual4#O1%JEr{Zy{hO*B%RJQ-(D*NIr=;{f}FyTfkX%TAst2C7H) zS8`Rz41LqPOb&bPfdkB19P5x71|Th!PF)_3XM5Rvj0UE=n?Jp^`;9dhbm`ZOVk>?s?rxz=^uL^f)9)p->b1_cNo;I=Jf z9C$C=#25zS45mA}(+R*fjrFj0A;}AsJ~iSCQsQYlY@b_$l(%tbP!~t|GcG(2wppOf1 z7EZY9Z=A*V%h=~}c4sodG4=|)%%%^s39j%8tx?8t9P9CzWOv>j;hxpWJvI#-Vd=%q zI}yw#wrXVZ2-sJcIHBK;toON!OUafMB2nPXA|UM@C31#(nyKH|Uw4l>`QXm4@!2{0 zfK0kF5of#pB=?E#!0WvwCd1f`xP|T7;;tYET9;6;ni%ECT07&VwO3N{=8(^h~(qCpz_HOf_JQ|)0UP_MFEb(JwI6EMf5H*=GW zXQ7wKz-%&4)IZC;RlpYXE_3~bV^Ep&5|_uhur&#?P7oL2sk zXvP$`+iPsxSYz_`7RNN#G0SMCdaBM~3*^=J9rXRiJtqD+UwdNQbfdZmQTs4G#|~qP zr8}AzSQPNF4?oggdW*YrcaD+&Gi`-Qs0nsYHjXXcn%?BPIwocJ7C60-W1f+Ldb5B& z?w??if1X7~V~ihAM@+M^g`v%Mn%(E7ZxR^wZ-*VM^NcT?o`){B|1=ZI3)@^ZLVw-` z+xx5BOAlY?9y*b7@1*MX@^V{d!ua0V(`|~e(6bL6Y4Z#7jGwZbnH%`y7HPGWj5yH)!f{5m1;i5%`!c5=@8h!T-9F@@iB#%QNm z^uX99{w^M~9g6hn7|v5hXVI@yEZn$u)lCe0=!lCTSSUf^o9`Bs=U9K}tH-u4I{k;IWt zj&Y<6ffvG<>p<+^Qupx&7fdL z2OVT`L4o#8zET&-La@PuXw6D1Y@EO9t4*z!uPlYK`CI)0LyCt!o!Y$gX@iJB85es1 z3w1w6(Nk6a+7dzHjM9B{(c)clG=HS249fW}Ir9!}gMFlfXVCO~;2&JbMB6rkeIMPr z$6eIy=4H}%lu6%xcKdFhKG(L-Jl4jSIosjRm4v6FupSgw(jzi(kXX~(r^Dc$m*g)p zG_7e*3O3}5H#~T8^dUSGzhLtMze3>$&*oQlw{|pongIYZEhm`4^rYRPzPr4_BeKWW zm)hh#cKDt;$FbJvF1xgC2fWnw7C({Pz!gmGTi^JaEP_FLcVH*8}4y zkHoJ~Mb^FH-^J-^9t89-mA~?$vtCab7B7E}PfT%l`4k4n1*p+!hzdQ*#oqQwPMyJ? zVyo}m*lqU~D=m((ReFI_4^$XxS=%6ooZlV4hy35`qmSRm>7Tv7@uDnUz_9=QI0Mon zxIgf|@1D<}gs-9uA@p@9LNAcu>T~GjVF1K&Ie7XIQW1hEI>6Q{?E11IE8`lT&tfy?2 zW>QlQLBZ-KiodzTeGRMnuXM@k(iNkPF_3q>GI0%_t_-CDPT}r4t76a?TG`tfvZ6_0 z*2wi@v7m+@eo~@&O2^jn-^Yp1jyDZ5WpR`{i$D4F+4h+aKi)q1!E^0t_Yn`B%T){^Qra(|+*d^X>Z0MH;;xDcIe~`}g5vkiZ8=Hu)yoXDT$G{OR;d ze)h(x`%F0kYR{!nkrjqYSQ@OZmgzh9c78qf$VxQ^5^yJfq-QiM1KMv1^IOy90ECTA z^D5cQ4{fA4v&-X0GQQHmi>nZl|Hw%?Wq-nbdk8 zi+w86{1Ua7kA60|k}v3tgFSn8xL~wbVV@}%K~TBnq-3#Bm0pRo;}3K;^3=pke1O0P zWBBD^S>%5?k@v4WlaE&Z9k=RGDl?uAcKBBV0SY?*11VR*q#rMpzGO%IJx1AGW^r9S z-&f$n985m*9X=CZSpHNJoH`&c9-$bBd=OF*iuZ zUMK)$E#)-wog8*WD1NSb9f+s6kP=vmkA5K5-78|y_QEb2{y^NHAh`YdG z55Uk*C=Pueyc$xjaSd66N~-cN3) z(G71-q&wK`aZ;IBmR9~LrqW-_VDu0=PCPlG7&%GUFdoA8@A5PxfcOK^`E{Q@j5qXo z|Lftf!@x>kGCe8D3m@I%8Fe7A#}T-WV8!bq@UULi#%hZcrX?}ed?kdmAvXum@HDOy zVG&5adJ09`ywR?XP$>IBYV#m2Bs+NMc&DUY4UgO!LDy2=0JLL1T^AqmRq)}TAF?-j zF1`cGmNm*4`Qm+zX3IK*bbjaVN_f}x`FbDQ71j|bsTPf4`~iB8AL|J1v6C78i`MiC z0}=;gt)S3K2E0ldwPMa# ziPnJ zwi$|mq)odql!f2vSn_o73av8yNeS>h&gd6kSy&ePrc6vTz`;=T6{lWFzwg1P4=)nJ z`NeRARYukZI%&7gNQ^3@84YhD>YTcndZvr7x1oL8spnH(%xRy34x!-dz`6Lu)%h#b zqkUaopmy~YO>=-V?|{gM&T<16@J$JD9K>r9K4{w-wE;3$2$5R`nH+S*YM6SW^5niFscze{y@4^Hy;rtH{nU{a@`QuaBsxPVYg*E^D$Gh5dztbnFGqQTw z#rN|txRCKRx$H7*G+CKfZgfQsDCI;(#LG z${~&nsMpf7ltpC~&&n?|$pxUb=(uR~u?k5CPmuX3AC(_Kl?P;r@4Mkeu%dRq#j-FD z2)_@0VcO%;3suECKn3M|)Nhr0y%d|}3-#jqgWTqhhfonn*pk2ETbUQUccU_Wkp7kB zag>g$i)N*6Oc&zWZds#IqD(Y3wg;7?^`XA*l)c3rtRwH-ZSOz%Vw-*Hxpp0R7g-DE zj^L*sJ=P}a7%p-O+s$|0Y$upRW3N;69y68p(;gFTX-jdhsgo(p9=*;;6HG{WTHQFO&^dcD!3l8I zTNGXv8n}yIiDQBp&JzSm##t1nX4<<<7W4?4GQFtOmI zHN>36G(GYp&(qlO5hlyF=wGU{_N&~;F*!BMak)mp*1D)$!^V4#xZJ@`uPkEA-N`r6 z?(9sqOLvtMe08%beYvq+{5LPN1KeZ1(XuJ-iLC+s;=Dv;`kmw*X)nLMOkFs}se#l( zOy;>u^@-Cb+u0*$<+v6yfphKdZu=Mi?4Px<={eHG{%sa{I60pQdUDmHk1Zcr;6a|t zTTN=%?z4~V(aQ8+3?q-!b=&4HCY7^YcFL}EXX@q4SJ0WsHj6$@vbklG-Mu5oYKu)E zp5!%qWC1mE=lE`W<^%6#K*DPEV7v3PHx8*5u3^gX80naeQnFQGIf!KeQGiR$qqC&Iyy^v-J|@kYY2ha zU{X~6=4L3r=qI@fV&Zjij~!)F9+@xG^swApie2pD1h$(?<4FP7K5gLBj~?Z2YHSMc&%Ezgd+DWH zv|;1|cHuXLht-=u8Zc>6Yb&pq2r$fL?! z0YJLcS*YrE*wApD#ctb70&lr{G<7236tv#nhu$D<#^S?*h+Gf6m1pT+-wx8=rtNJ$ z0x9$XJp89HlL`#NK9#^U3-4Zh^Bz|~E->ltX)GMyjC}3qm>0^XmqQ^cVJMTr?5}>E z1An;c@-J|SqU2ydc@IbCK?F;D%Z_>l!~wSwsBi5_FIbQPLevDF7(`@nu4x8Bo@6XuRZL!;{~2*k}h+vfB3;@ zn?E|zPCv5WPMo%NKxFy_D=aXZf`3vFJ8l`8rH`puquCLiG5Wv_^E2@LJG>+TJ-jLI zozm$Qv-j`6fzd0p2QPiZ{@F*W@1D>8Df&Xt!}m`W2$vtBRVSW(#2)N{&w@2g!4Hm* z39gFJqv@XyM01~KaJ-k_5bpax>hnFqHIP;89vJK0o&$ylFNa`M=m{!$vuKUuOV7V{ zvAyxuJM1w14#zz_(SG%pKh{3`nUA;Ue&N}ywmJIv>Gt8rPPfl~^l|RiSY^lWV*B1} zSKGJFztg_|=8d*^cLk-Tcsh9C@;DVdLOn$G!5^l%>l~xm?{=LYRb@sYNhyWaaMFB# zknH3k`1x@J^ZzR+Pc*(V3ZOw?HTgO2BmM*vyq|jZk@oSYALdx>qwNun0h;Hyt==sz zF15e;_7B_hU;lRd)^~r@F1~e@BgU2}yfpr47)}k}$vd3B2c@k?+CKy1&v3*(P`|@S ztbEm~-rWx|2*Hv$0By%0X4AYi9{=4JlFkEicF=T}709kok(4^dMw-y@-DrMm%%UEI zSUIMm#Un@S1~-7v6V!ncMI8eyRq^uexOA^7WdStM0hFLb_yY)9Iva@P&qvS)C}9JC zgW#u6PmdQ*V&hMg@&k~M3~1R{8bSpJV#(jYzYj;pt!R=&o;E*{Hr@uuH-ez(kiMXy zoQjgphw^uD-*R9?>64zOX`Ezeb24&^Z#t+cymL19P$h(~dViC=Frj0{ z;9gl-a{P`4A9z^_y5TA^;!e>S%8_^|aCP=T)H}jWfWM}zm$NihJ=%wGb0GjGOgMq> zcU_q2%3uWX>uEz7rjXw*`b;0m*OW<*FSN0+%ix4ZkGXDklbsD7gS5`Vkx@F48(VaN zSq`2&fhIA+t?7zD@r%U3DGQYjWE6f(mz`_^q9m3{I%{d6n6EB=AblCpR5rkaz}-_i zb(Q`d`Jlgg0UFYPcW8-HCr8~&y{8a#KoM3!sCzL0a8-Qz?HevAeD84OsXii42O#ja z{E1p;quwr*yvdi|v*hyvvNKH^{JGeqx+jHq#?`&Z-!jFX306jPcTqS#GoobJSTSDZV8D!D!1gdMzg@p-(LI|SPSb!qgg%3SAv7_p%xmriB| zdkmNpFez8)PtbQVw#=kcPhnE4EqVTS(c{-Ein11dm_5;$b7e8ik18(()I+*r*)mG0 zQP|q>A-)p_*`=&0%Vdpl!3Aiki+I(~dKy+8<-`il`R>G0k4`rd58L2#z`bcK{`@r$ zJ&r%Nb$~+}^Dc`v(DGrJc^CAAX}tN>hDSHrh91_q5cs z!23kPS#4g3h|@s@x9KFVN+=&Z9oWeg0eFF&Jg$K$-zf~0cH_DPT>9Zb1h|e5g5gHm z)KUD)U;%L9(SU)2HvYPU2{fQA1PY`_lLJzD)NlJsW4?3`YwoN>pU6u_9TBVA%+u#6f@r zk&_@m@;19 zyzl?sZuXG01ElW#zi+)&r%s(Zb?Ve!wT~eXe5(I8(XZ<(u9`2|8RayI;Zg5$)kJC; zEM3EfoH59&Q7*im;4q`@V~l`p!}|s9+q0gUw9F%Fo_2sb%>eWSIw{8o;^wS?{I(pK zznNe$b^Pb}Q2Qae`;%mTt`PU$yD98lP7)q3MOuH;C}1e_-5H|mWhGfH6mA3Dkz3%Q zJ2G4-Dsa%013^R$jNNohUpEB5-3jVdkL|+UwoyQMh~BV^8xxZ9SO4@;~jR32?#Y(uyFRGhbwXU1C7MXkyBXqco~Juc6! zGwCH7qr%FBQ#Sw%{~REz-9^L`oahY%$7H)OA$bP2@H&!fTEygJ6m}|6Sr4WZ7$w6+ z8R4%;G`@(}d`L*>RyMUqMiXD}2pr$?L;%Z6qV;V69=auLIou5^2<~a?cTjP<>k;hV zTm%o#gRo9^iRgTuT&mO zGbcJRF|u%Vp52NU8B=(Kfl>HCT$YL(OcYHLP<$&Kmppm&0VYJ*8OnslHf1=Ir5sl( z<#U^3?Kt}Vu#=vYw+(cG{UiHT9;JO|daRwBfpQk9tgv~((`NRVlu}=;Qh(iG_rW9s zuZKAber;)|E#FygL2CGqi*vDUzD}EW$Hr~t8BCT)ppV%=a+6HS99tP zjz6|-plrDiadd>8fR=eCCCVaGhM4e(*eLpJ2q_h>{Cy-fA?dbV6hhIWn1XQi*L1SAFOa9;7+^5 zE~ktom_CyN{|=FlOB{V`pF4L9^H$z9c>?R{alF!hO?zn#nPAM#F$9lEp7k^bxMCVT z6=#ca(Fe~x#2v&;oNyGd*Vk-2;oIT1_<6T0ETDb>cW5C$9Gv3AxH3UV+R{hndyM#` z$a`eR$Bws^g?V=9SssA#+9@V{hndXXVZqS~%s3Z{5U**hlL@KANKfis2&gd{$#G<$`-aPMLORFTmFn*Q>Su8(#`N{}`mv+P zDRh#5eccU1z$-%Jlu2Gs`>^k43vYx43Ce?+?fsqJE1i5HU!8OuL#`e^>tr(R?4ivz zc51vm@}m#8t*h)LUA~>2Z6oZSfB2(^xI$r~%~Do&C>KZ0kX9!B*Y9v#I%)FiGh0qx ztCtBs;5etrDYZvpvJw!QW&^*hS zBge_F!E-0j$nNB&eWFa1TkiZ}tWS%Z@`F0JlV#;|j4>B?X1hy&gh_bo;km0U9D(L> z!h2h=rwJ%O)8w^f!hCaanc+7f=jk;KlaFU=rxrncJQx{pg94Bwt zG|U?p*EnH;ya#v+S@CKn%l{a)kwPxV6 zf8Yy*1o2BA#LA;HX}egkfV`ivEvf$UXz(4%{1kk2{NyG(S9j41)`RL9|J3_gh=`lt z>ds&#I(1YSdcR2G7J$fykD}F_!HMeHXR#VGCG% zz3rRRY`p1Hb|6w9`z)7LU)p{{XX{w0%adqGp6NGUQ%^L~pgd@YcSH2UM%Jl|mhP}n zg(KGw&9==m54BBp{Ep7uXybRTbL|2v8Eh+b?GA}GDsfhPV(X25wpaL;0H{O^cqVq- zs$Nexc%^(*JE`Z1Z&PL731zqsH+`OD5xz6~#PV{FI9^6F?c(iBO?aDnc*ceSR21ZE3c9Du|}9sCM;QPRqQ|BSv zz?hUim;#~M2hcWv*mn-pH$McpCvu#08Tjzge`^cMJiZy*hq`5i9gG29j zFW!Uh19*WBdidSriXWa`-u7U6m$K-2hC?#7hcIAgIwqLMIZhE}VI$^)>$h3mb*Fv# zYj3pQ_?=I;=bwGNed?1haKG>OwBHV#fvuqb8sR?-@4t$>T8heNFuBX% z)KMB`AARUV`}pGzwC`qe_c@NfKF$5Z{thvC*qbd@PJZdjue3k=;#b=jdB63I_u371 z@vhO}vx0SpQ{_P)qT^DR)PvdHL)?!G1$Q@e|5fl-)149oQQ3qj-#o+XK2#rDS5kUE zynB4=|Nbk3&^E+$Qb()lG#z}Du}U-m-86xf160xapn=KCt+aT+Zd?G`U2sywAPLsJ z#axYUv!&t`kM1f`C&iqQ$^a5>mIDXT`p$`ALwBe2RL%}E)`S=uhqzVtHsyrPt}0-p zfvySprdu^Otn4*8*2~6_@fsdr(MNw#X_!*O_mxWL1Hr}3z!4x{0J=88y4WMJiU9@J zhtF3J&qwjZPF?X!n$jQ$AZf1v;3p1I@@;zaO=$N+IPocs-l;v#z_k;b3v_Ok)1w?W z;jU1RnsXq`c%<31+BQm~ql?=+w!OE-28hXIkTgO_DoiS`v@|<9K?Q+! zH^eRd@d&ItP;z83?()%p87|KKPw1kttwVW>&_M_~%XF;$l9zTC_sE}dR&5W{DX=^S z-W|LQJebxIDq9u|11COqeIj$=T*rTT;3`i!??h+cxvPN@^dAfg6&;HU=Z_l$*rmTiO_WaM$P<9gW=I!ZB@;3e!u3Vlw|tjRRrT zc#%6rhun!>;*@pX_AlkJD=a;}Fa{j1R8IN8sRkG1gIwna+?Erj#8JnLSKNk8o&%%| zW;JC{mcQ{^L~UDW!n@d{97mZYO>y%9JkS2S;`d9U_>UZkRVVXD;F67`jn7#IZVoHA zV3MXo*gfiT85wpZbMgmya%J@v_ZxYK;20~h8J9}LyQEW%k<&AF%C~k-xl9HH0A!zYb zny|z4?7ky_L(EkCwzSuvD-D=%7TEm_Si_F;V6LU{5GmD}LP!THjJ`@Iju3#^O}M;#c@O`AJCJ zlE2c}6GJ^gIi7TNI9rwMBsr0Eh(&e2*C~(g(m%>cEL-f-*k%>H6M}ZkoZs=7ItL)e zsWXl-=;q+f-25VUnK>{i5q5mliIy2AB^gwnVZhG%X>5r>UUY|GlGD>`D&?WyaqDT< zL(}>7`ro=W3#fvq!r)Zw5&<8=R;OPC$RCb9eqm#9NPKbVb3HC`4~=~G@ZmoJli$7z zOP<2icjbw7e2(R%?9}*yIY=R)(r^ko3qcu(XB$a{M2L;g!J`R|H5~EyIrPRPM~7~) zt6*e=K?``8L3!{@(%zn?{jtFS>?SjIP9ZpW$E%Yw>>W|bdWcSSWgPs%58})*ypn}X zMu!2UtfVfcjH~OUylRuayz^~4NnMC;sk+3v$u^MflgfL`r8GzeHAvBgt}u*poNE|t zI|49}?XJCLsN^$m{gXRbN(Ra;CsV)+{e|%5Q(Co$Mrg9UsVhPcG^_u@4dOBcPQ=AP zBkcqS&EgBMQ(i%?{&a9voVE+nCN{r-4Gr>J7x!gSmKI6B27*7JbJIvg#wl?9x z=b*AUQm+%2eo`Bb6Q^~jbl6@<+l+V|S1>Gy^Ix`bsB@2J>3K0xCdDVP&tkZr4qj8| z>PDRQH`3Ch{BCCjF?}&Sv#S@(UM*x8(*V^8C07jN*E(&24EQ0p@}sBHFdEa5v|u+* zL6nwGs-iPWznfbX7v2~kBZpYczpj5%Ij(PVv+|c43qoDnUAED&6YCv{}f& zDvx;4{*h*j^dty8nmv6!Wz&3w0ZvXZ?^#&LC#MI@LNrSoWwJuM^m)aD6lU-mJkd4M zP9J5RSxHZms{CT1A69p*zI3y4-7qK7(bi-`B08_Nc_xu)Ktdhy zfy?7}VQzFOS>A3@f8E+U+}36vX5ws~i67b=)Qe6sr|(EQEf->to+_W@3vqZv^%C`| zQ8?jc{@XTig2W!4d{Y$Gm|%ADFS|F%yW}l>Kqr>XJ4M7r`NPz^V;ucCb@&96#7qE< zT#sCDkzYgJV@mrd5@x-p$Ph4cj6FJl@3iR|tX|!M0Thmrq{rN}1z;fBK}-OiX4Atg zml)q*SM&`whfEAj=NMyUWF2}}m|Sy#4s-tu=#RC3>u>#C>Ze&ITHkJK*Z#PzzkRvA z@%pv)EC2gDIig>=QjR>ZiX3U7vwM#uAZ8*xuE=;Mp9-Tf!2FvJ%Zdmfp<%b->|9s zV4o#zIL8mmkB9-gfjO2Jm@LkrkLbjk*GX-0BE>fSN{>w5Vv+a~iwP#Ck1|P$Ov`6z z@Z`TC?tA9C=QhDE?^XC{otbv16MxicUO6$u;v*OBN={$@Vk6IODP%QAwrN7=EAxhUQK;_<_iOmNJ$5sq+Py0g_DJT;9vq#s8fZWtfs z$E*3QI#O37!?v*?o;(01{d0AhQh^3T2dmSqS6wv23XhEcxeI+5{_esX7ZNI;W8|N* zD*TZBefj|-dn^_~7`%eZJRPE(c*M1Bqw4b#4WZ=Ymb(|>9c0Q5cn>xg!Si;(lh^Xf zb15D(eswBetKc_`GO|uO4NLa6_pYK;&}CjXczJu3@hFdUrfgESly}pX#a#(mdE`RX zI(>@LhTM4?pyQDr++3pV%$>vRPOn8J(g_afP&k6aGNKK7ks-^5$9|`+8@aR12yw`~ z;iN$>XTsC;`e8cdCU5^np%JebQ>nYx0mg2k6PxAI)ay=Ih;UPp?XNAjB@>^Eca%37 zXdf#8T0o`0<1o-7KW&F-^wv+p(+9#iI!e!g7*CmM=NqDUsjFW}KjG_x7uM)q;K;_p z6F1UA0P*OoeCcVLb*Or+z|(e@Z=wy8jEIl$&o|$g$VT9bABCvA6E$&3nlApy%itlP zywfCpNr98)0vvVM=mxvFnHU|JxZQTx>AQXGWLrMYUEu5ho|wOudw)ZZIt;wYS?L3b zyXTExBTng5Mv_z`fN@6%t9VI&1-Oo*zddYI3mx!jGX`Z)Wr#-*?IlyYub zQ^$aJjQfapkDYFNC(pK_Ys{a}ey|-X-yLg8Km+r$OoxO@6|m?r`}SRi=JW?6!`P;? zf9KBeI>o39N&MD>8|oAAn_f+#08gLa`;OSe1uvZ=a8iDl#WC__3*D!@^m7s!zcnv0 z;hl6!Hwn6PorNsyk~wjl%{naVJT$}D3Qsfg@nS(?!xDsIT6wFd8g0 z#MwuWsQmBuycx{oq=gTUz7Jm8JH^l{?&baihJ;(GeGJ%(XkLklbT{ED;h9 z5{pz*fOr-A@5h{w`2X+2%(LUs|7=~L)rM$TojY~3J#+4OdyZYs&pvXpJ$>#(J9BKh zo#d{J6SGvPy(WO-HSYBM>dSAm7n$7s%dfoJUVY<2yLRJtTW0mBjV}iv@7l$CPbv@Q z%ROHITAy8YbXR^CqWkk**PaI72fz1y4v-SyD#@vM41cg}VGjt15~JS=p&c+Ca`c*$ z1P-z)6rI7E%8k#W$CUJTD-;yExNLdrV`rzURGh@>cL-QHr;)0Hwv&yrOgDyL>MaMZ z9N@|%T49P}SD)E|u#;GjzME2 zxJ-kUrIeUD4flv~+pTIbCv6c|Xi5(8z^!JILiSOUxMe$J8n} zKB(Y_@f)LIo_pPJa&XYJ+o(!ISXxMn6H_KyzI!B#mB%D$ae%^=g2@N+XNkMKx8Og0 zf*e!i{ddZpoqXw)?;cU+B#+^gCr}2rPru#GW!$se1+z>Aopb>fwE%2_$o$UeZ_W%% z=VhnPM#mVPV+T!!S!G%)Z^1lFNQDkK?9cowhZv!u1hPjt0je1toW# z8Pfk7xLpj@-Lc^g z`?_);JZW;}xhWN^WqDFwQw~??fNatsUuWC*1cM4jZ|>P)&C$WU*Ru*A!6FZAoZ1K6 z$7cC*#k{x)iN7i1Dxn;u<*|&zmMe|?;ZHiM0ox}!z5)aRPx(htrk70--n2ht6>O?W$V`H^pgZToCV6v#dF2 z2MX{M4d#jiUm3uplkWY=(lE^=d!L;dw4_{*(COT!F`F_1a%Dci{j&uG$I?3!eFox2_#r-0|!EaStTk=5Y{oFzS8va5_I7Vx_w# zIVui$K1v=dLxvZZgB6|-vmF`14Si%DI>4zavaVB!876drLrvEdr~KdzON)pKkbrwk8tm+H9H@z) z4OcyxY+cX5vS6k4g%q7Mau56LO{1zI(5Cwz%Px#}31Fw#-ShdKlg zmkbkv!H?aEU*XGMbtggg$<0Uq0MM|SEavXTSQM%bhX?&4FDT5Z%FFn*rCRVzORP{xb zKXub#j>U9fW|iX-X>tdzlPzN%?X|Fx2|e_Raa)x**_3?1?nxN((u8;`uYyR8PFxJ| z!idse)Q#BHCDzSj>8FqaXs^XYrp6lGype~VHh^7BNr!mqCsU*!%|t{(Kuf~70HMMg zzi{HHNeF2oW|gKD5AMNE_z+LM=i&uhyu;3V;2ZfY?6|^Hf`-?|2ZR{?R-cO|59K0o zvLTd_KHfN*4nxWTEU}rUL1v4TZ^OGYS?I)Jcx*8hare=?-sKq17^iJl!z+729E6gd z9%*RkFy@mCg<8}G~=W(QX2 zl`QaDC;0ZbQmjS4@x_=X(v~#fnE!(B{e5qtKbP21={=m5QzvYl+;G9B7@d4j3hc+G z4}+h&Rf?6vOww}Nz#+n~(00?OcqJj~4X}_<(}1FGlki)vEn)YXqn=Ir31^%xh}xzf zX`h&`5)(BnfTRss3qC0qlvUewOH9PB&@Y==f3-cp_{$K3)%FQ(hq-Im`$o^O*m7)q zyIo(PpJ{9mVmjAME5uF0SN1M)bTs*cpVHu>SnC)UsSpi)+?HL~jK#uEdBhG!s-!h0 z+g#K-LAmf4RojI}xYu=v9iYqXp0a)GVDr|p6Ljp-!NDD2yObT=$AasrxNjO4lHdYF233Sdut@)UtF{6|>?JWPAYcF`vM8yTN!#~yf)yIr|2^!6Pl zv$^N^)LD)Q9&htEE+u{TDMvm2BBtxJkrtvz{yJ$o>W;z4Bk?-XWnT(k^C~)u=O{aq zPBE@9k_*B^Z5FWQM0KHp9sWA7+D-1=ai z!EN%~c`)Ku`jn>rZ5-9N9c@#TBX^ohq7b(KWqS(|LN;dzu*!VMnUFJvZ&ZAXl3#2A^hf(nZxHOsLr>T3?%s?&N?H z7LOA*yxCfE!ioh8p4tadP7WX89@$+6^A~T;LAn!qPIBICOE*?1@8qU^EG81Sq016= z>I9Re$j z0ht(HUf`-Y(x*b1WY^!!G42DNon>>5i~BjA{MHRlT46Ukg!k9xf9%>J;tO8JUuS2;gfx+l~wZ0$y4Yc zA#I5rr{mkQM4T!p|^{HOzv5^!P@hZ%KKuzC~srd=I|wF;RVj z@vGr2bcaVQtDA{@nw`+&u08ZBAj19YS>j+^wUgN)ns_3bY!IQvJz6+aNh zl-wr*zH_pOSfPJ{c*f8TF39mdUX7%rjP}8C3oXWtTTz6Cf8!=_xfzgec@}3L)vPxK zdJ!@(;^^R{!#p-XXL?xOLJ?t7KLVm(o&}UTvLh?FtA4}~X^i9I$2p~Nhr4~ZnfTwC zJ=!)Nc{;jlbnbd~{0_0umI|!O0Q6K|`%Xl$m|kPk&2*@D&K^609v^FScjmc@a+xty zTBh*W#R4Oi0aIuI^P@xM%e49}&OVktrPj~tz2Z(@kqPU`scY}Gt;asrhL&!(k;S0Yf25r}HjXYJIJ|vmdZRsmY_z@m?lz}A9BorCJZF8|lMxCA4_zgy z2pc%ZqF?>)<10S7)tP-;;YzZDynJM0Ve3P5@4yt(6Is9yV(Y`*>(<4ivju8kI)sDo zZ;tgKDG8ZJTnC|o<$%+{7Ew`;Uvu*d?e^S4`}&&~+8_M!=i7r1 zoN7;hVUFKzcKN=0eZIYO zjUPwzyvgs1ieZ73uTB8dSPCr?h;l&cO9S|wpNYGdc-;mh-)-sBb+>ErK|i&swTVAl z`|?M3wGM-LQ&i{=aQyOPCl9yBA2`-N!tUKC&KzwIot$9;jK(nyp`+fJ(G6nv(OkcN ztNqo>Z?-RU5At8V@>cuCI~Utc8uLpWG2{T96EL}>hBzuh6JW&OnMra(Dz*c%-(wg! z1@Jq=*+V6Wk4_jP!`Oq{I0wiL5y0;4_kL>jGo>m{!{4O?$j8Lh#S@tZ$kprSaSiGR zWggO@Ue%QHCp2!EV8RV+SKjdTL&Mv@R3bR3Qp;{t4qaAcbbd^$&4v)fD_v95$$#8B zT)_vd*vtL@$l+tokHQ zC)Jb7GG%}?i0G&qp5ZbY8vEK1+{O#6Zhb|W#-rh(&2*dK~ktFtm}M;~?8+z+{xxyNwrr%CUnQ z$wdR1@5EL7pm7nHu5p2T0TLtFRrNv3B19B2HJVYKS>9 zigL?W_$0Q#eOjZdK^l^(_khpaT@f(NmMV}5x zevZ1^?$C5PjX7HX@hUX1qQb3a_K1LaD}RqqQ9-Q)-V7Pat8N8Rh81uN-ypv-{^CtQ+d20M(#f!&(y zg%2piVKN8_NVzpWfgBijm+v-lI`FKlgcj`XT#(BS1Ue`upW_E!2c>n}Wq^H$fvCg> z%92;O0X|t_0*uwr4hq^SwQEpi!ohA}9GJvUw5QUBQ) zaj}msrbC|KHK0rDLDPRrVhS)}ir@s%F>#azNkZt%du*NeBbhez9C2VvCrNs;yNvG) z7J@jIm;x%gl0Shk zt$Xb-+meP|sN=2}7D;HF?j zV+cZ*=H}RW!eBV{nk~2?WXyP6)Df;A(;mHcll$wONYfr^l0b|)&*;X{B{K{pd0gu_ zI|i1ickZ}=1Q^>mzD>z7PS7F2b+j=&k|sUPgS18X5H5Lw#evmoS@I#Ao}CHKeCx+o zcvV30BS7RpKl#)>)49b?4kRAKiKhJP&1V)TO)@#{9efUEX3|3sjPOq8=QvtIxu2BxDz=S1cNSnBFd59nW@!2*!q zg~#ym^O5l4!-(HEW*_oC-v{9!TJqE%%1m^edW~P{nL!jum5Fo!GHF!r6(xyJnl<9m zh{K84(yGArI1>sC;_1q!L9EwIqirx-2%6B)r6#nMb8v?z5N~|uQFJ-}Y4ZiHc;0ia zf{NdKG;VYzS*6`Ec`5DNf6{%7y50$^W$NEUz&WSsBA`Q)Ooq_TTIY0)Lo5vQWQaKi zo5!f%y~x1h4W*^7ps>zYk5TX;)Jc7==*&Q}cmFzB!}>6G2+{VS4QIMNT3T6Q$}Rms zag7t+g;Lgs)4&(a&zD zqBd`F?SjY?t!ippUE`!D3v5w1wq?~j1JeT!9JCZ7p97jgn?BVpNV}wqr<2CeEbg90 zF=W#JvCyK(?`vs{11_u6t$U)2nPokl6$w*6O<24!0!q|ka&VrOqMa>yY|joZR)x2ZKF(>MziOl2 zkf2_5VvoUC^_+`1oNTq`K1zM&B=!;$fNOLFM#Em}FLZ#{B4rYvcx%t^J1U`joI&R0wRz&+K$o$j6dtYZ zZJ-mefFCVG=8<0bHUUz{Usl-(>w--evTU)dRRU55pf!0*UOV9LF|+PQ+MwOE$#LBi zw0S0?Frl7yzPM&)j*u1?a1)pb;m^N#t6ln~|ApQ1U>ZHz)>$-;D7N_pCLP`ROS{Z) zo<2sipk2CniwS<(9|V7Q^(O1bkX8D0);f_vWsg6Pg`U5CyG^rjZ+d2&MR}X->}JyY z!Ljz^|LM=N)9psP^MyZZJJ+tXTkmhRFMsCO+jECj+6Ua{`$IqXeeDp7(2g-C=)I>) zOUv!#@gwc}{Klgrn^}&KF;7dmM>=V{NQ`&(Hl(d+5=p z+RBB0*_JQ9*bY7TG@E}|v~c4}`xk$DtxcbQxc$see|LNE?9sM&^D2|sD{bRA6O-*P z+6&+HaC`J5`LlPZ-C(231iN%Mn8dxoQOtCp+i~i~P2_rRl{=Fsky+$v82Pqq@ZJY3 z?nB1L;Lis)ZCh`*2Zcem*ms_$ezqR62DBBgTC`3#&nd;xlb*`vmwnVMcy}y`GVMZ% zU4E9pQFrOmm*2B(nZ|pBBk}>;X>&4JP2ASZ;xdfxh#5P|=~oh=bz>xog~=||QIDt# zT>L!BE_d(Eo#HAJkI~nEop9c*{E)}Nlh=zJJ21gX5N=3uNB1}d&OWmziP6QN57OFy z{Ga@Md-+SBZ-4aZ*V*_XuEJv<+WOfAA7ge-;Mu8@lj$?xUgSt}_%w@7eEh)&+JEuO z|83h^xzzrC?Dh%^PdN2piOKXMOzbo6u(~MUSbV}U@YWSB(sl=P#;d6pEWe&Y zG0eoeJa9a~GKDqq+Sj*EPrcQ>^|Fq4{K~Rvo0%yrvibt|)S%X*{50k( z(9zGyG4&5#{!ldlSeMvG(?QsZ!<;AMd=`Cp<`XdED75CAVCEMt(kyiS$FB&$!SEeT zE+nbQY*T2j8Zhmtj8_^Ie0mwiXu#jMV6q7k_q2UUpmHu)zzr&X$w}~mD-Pu-^&vMQ zDxASmezahU%Nea3}H>J7qUca>O$`fX8lK z;dDdCL5Wd8lsPO}*V*9qjW^zFufBGv-J)N+ z#A4`mHnTp7YVwb5l6!Ej?fH{ z>WU7eqJi&SmQZ;gQbX2&whD63XVTFlyAO&aw4WHeuYVu- zKJWWvO<1G*{rv8O;#)e&qWj^wJ5TOLkrfuKY%*asAaCB9Z#P(t_UfDOwmahBb6M_7e9ZL9en zGtcV8H{N=$z5ME1?Q36uyS@4Ld+pK(-e0`H3UTk5u(CuEQMpY}!1v8v3D|eWCg}$# zkKeuDD#D%z_xc?~_O1Mc)8D6Y8nd~qfG8*atkmE^Y1UU!+eKm{fQr+5LTsdD1v|XXt^oM%FpFpIrwSmx z;70KpS~mx3?YyR;0(2^$RO&@S6f^YMQOR9sp$7`66iiWm$WyO+3@`u0>5``mo&=6> z8a_7QRDkNxNvSOJx4k{~XxjsjWTz}k1PU3K|iRhq(2fVkE zbHIkSTwA2UtyHD?O}b!P>}fy&E+3@dwD=44PV&TN{+U94gx$`P-cT+HO|N9y>ClKPCZ8Q5V@r7s=ZbiMq}l*Ap+O@*feqsi z34r#Hl<(3lPOQ~2m^~ka?NDkRq%+QW+{X#Ha^2@&!S{SJYFA3zNpb4Hyzyu(^^jGY zD~uz7xNEa3zgLs6*&}s;d9p`)HnIn_b+j_zq;@8bMaNGa5ZZl<6j(d{IclHy+(nc- zyYVr+5qDBTn!1T;>)%dq$(PbMl|gbw={2qFjmm0yOHbnD-5aA0UL(neldJ@iAN)Ds z57UYWU{Wp!({tV`L7drrrOov7vd9bT#O)aQEDn!g-(w(Kc*ExoQsW^$uOQgt^p2cv zV*3q$*Lnh2{2{!0SH0*F?2=`Yvpn zF$D4?f(VYXBt$`(Cgs>krIbtTE@<|6SK9}g1P+b@xLVbF=J{Z*kNp1Cd+af(juY z?3Vmi5qL$fZ$Y?YGI=^^#(ZTO*}AA zx=gdO)6*@ak12~A+pR(h^7jgFmSY8-b`lQw{vGeW8K2>hzPA4Eh?9gd;2)5R*U5#{tX9I)s~HQt=K0n(mCXeZ9dXsgs$?;l?^UYgkA>GyQTq z^*tX?n`zleXo7p%&IA*r6X03q1gRm9OyqB zGdTv9v=Dxc2F=AAtJxK4*1#H$tQ~{i-FA~*j2nk%+tEiq(w3QUoMu7V@k2xH49vZ` zNP3uzVciM4iJ8=aftirDkW#^$57QH-fp!TyW49OpfBvyY+mF2PaZV}Xh+6ZG{4y_V z+(BMLKjR4=@vJ-@V&c&wjE9g3Sl71C9%d)yGYra`ZuH8tPe3mO6GsN(L6P!hUleEW zn*II1e5t*9pFcQ^}qk|Uk?70gtlB_MM7luZ(DV%SFcC96)ow7s`@jCf-)=wk6W`m; zoIBiJd-q0r;LMTs(BX0FwXJsI)DHJtxAy*(>+Q>LTqi%q+7s`tx4D~(?bBa;tzEmq zaiG&H?QyQ28)B08$dQ#cvAN799TqsWm3HXpsdn}w&$bh1A8JRpkGGxU&$RaN&$gZ0 zZ?)}nqwTGWv_wxo(w=zX2inT5t4tnVW8Mhaqckmq+G+5-KAJzXHRn3mYTKsC6WuYo* zay-U6d>t7x-HfL4)?V@1bg{tjAAYBfi&I=;lLt<|onTYcBKe-a5+S6?4GYvX#8wN+ zVOfl=L-SHy00)T=*^plR$JIqd>_obEYdfg6#9hwP6r_o@@W?}Tn{gg&`{^t05}Hax z)w)GjBu8RGPvxI&MU6U7Q=bKITK3({OZ+={X(uT-Bt;2_mJMAH6?qZF{-{9|JI5S! z^V_HNo3`{_wW`GGKkp7OlnI&z^*APfIvj?{ShW87NfY`r#%x7wa} z`?}lr(P!Hb{j5=rOCDRqowAy-Z^IFhi;Y}R;nDNT^(6Bs7q8xKFR`#=ZDG0Hx_YOL zqdT8IHQ7FLda})&IMK$A9!D0J+I#Q5%N3z>982uI=cL=g9#UYsEB_^&GQlcMHyb*x z?`Z&#pD`8X-?o8czeBe!wbLK@p7!8#544rr*O^D+)B#R5EO{iHf&A5j)RU*2E;TfK zgatL!^V|`x%x7Z`a&&~%mi{T9i@U3g3GTF~KQ`SSd3w72)nC5f=GMnpAT-jhbIjK~ zV+oE6OSrrrnAj@^BLI981A4+S0mc#7M7XlN)PCSo&$j>I7ydnHKvB~I{L1Tp)Si6) zQ*D0kX1j3dVte@Er`mU&eU#n4!|nAiex`l;_g-vov5+X&?IFW1@_g$CL0L3*lKH8( zu5Pu@zIGXRO-~WTMG(s|Pai#b1BcF{`@yv6+@mTV@!cmpfpm|_TZPt#;5`Ua3a*bs zVUj+BSis6wXb#3QfXAy~dE=;i#ngxS&fme=BTlfQps@C_7xqD%z$J(dWlPBV!V#k4 z6^G6?a44uyywB7@_*j4~{073-(I=03UiEHw2i*Vaf(*j;c)w-1E;<7p%mq8SBd+w* zpj8$)&TejDv0ZrgO8fkmzM3OhP8~ni9(ni-6TXkMr=EPYee~(a+T)L$YbQ<~r;#y{ zA9KG0vq8ae75@sW4OeOGyZX=FgUd8Z7g)8qz@+Ii6~-#7I~O@hM3_~Sk)1bJ`e#6O zfUPV}u3Bl@kabY~5ciKBVJGes9rzh0dXI7BvXi(@Mtc{S$GUpQ?j)7uAtrcL-1izQ z#mh|OI-%GL1IVJPQ3Un3xpU-@QOjeOw|yP?yFvnVEB+kKK+kd?;qGeGI&RiVw{zd zMzn!G(d?1;-lbEr2|kG>ZU^rZRbC?2B6f{**dWFYqpLJ~w5%T$w?1~>3XK4Le(0m= zvDH_7JE-VARzt2>qf=qWj|E>Kp`l`}oj5;l7>~xVyexZN`tu21L>rkkPW_MxJ+O5zKVsxsO&-`_>fJiegRjm{3o;6FQ_h%&RC^ni}JI`QRvE-G#ShtsZMI!kWGTrN%|$@fXIU_a>-EoJh%FE-0)rT{TFAU1QXaD-CBxmOQT8y37)^Mp^T?Ir)=+ z?3O7>h(q3dg%;ulNUAgi)7cG&H4Xg(eg)fy>C2#DD!v*p=L@~&RE_D%vEdy)ih^T@H)i6M|pugvZh-HDqXr|Ks-9VgGz*IX#fB~07*naRO`|;080$r7q1Q-P}TWz z@W4sXAqRjYIeh95 z3VwEkEjcx*;GH>p3`C}+ncxs7f=Z@ru~V**?_#WarOR7`;98wtZJ6#Qmi%NA|DlU| zH6RIBG8sJx^5DgNS6=#G(FR8X^)~Q{S9-{H2647v8EJCV*YMJa47v2e32`$C?jrlO zi_`n`3|kWzfuNl#gjwhHgsMR*sd<8QXbV9DSCacl!@Sue~CYDtZ8>e9uF zh~-KYJMrFAkT_u)DhT6l#r`O0(-7E-`M}fkmnYGce9B<#%6I&*Lqz?$ zkUBYe;;L$cn+JyP%O#&2SGh)hlE(}_;Xxg>-X>}9k6O<P6|b}yJ)(^U;a}X18)*{DO;r} z;jP(W8nNIdAbn}@gU@zg%0E8p{mLm}0*O48yW!=XlL(gO3^+*--*Q(R4sfWGTz2Hb z2`5StXVNdBU=AEkS0KSE^EKu^m{+XVbkw+i`Awop+_vIFexbhcyr04svDi(RLlt7&biT z+gSYtJWsJye(NUx`mczU(EOVXF}_96oBP@eXp3}A88?|P-%Y3B=Hgw(h>W;%7EYKH zBT?~Xekh|ZK6T-Bx#m@A!^cr0ZfxHG}$nv2hM5!Y!kG6%)SC8JIf@bjGtp+u#>e8)J{(ixA(8F5HA?`c}%@+!*O=LIjJ&OslK^LfTm2z9C%0>9BuwW(_Lt1Br(kO8_2H*(}UJG=M z1r;u|8YjMEv*Ydfk%>0P1V!4v@&iBRaEck+N6${TBb3YSi_2~4_{nx;=gD?#{sKqY zF1DL2vc5&1#XR#ENM&G{m6KlTvx{z8q2MEN$RZQeBqDtgIvYpWmHq6whdFi^{krYI zwx@@fEhNy`!RILknWPtIj+DgRIz*n?D96;~4tDYd=g>{izy-n&e#6l5xtG7nbwRd1 zstx7QlRx(O`F3=Yfo;;T9$gGL={~_GiUoFo9-&S+0^9<+Wz8~0US^yII+bg$v@vhC zpx-w14?S_Zot&Z1&LrNleRKwY*vH7`kj+f?9_M(=|LDK|_uK04{{43OQfnXm4}ZS> z!+-Gqw732lyH#zoK${$prO%ulZU4=G_KEguzxwI+n=iAYYUBhvsNmzmMEm{!`L~h1 z>9#rVX@q0Q(^NbA(Bsg-gdhi3KSuXX zwA*(mdn4S_3&Fc1hua}`;SWt5Y40;}_s%=Fk-gLH{Aup5-Z7A-{Idvsi+~vhU2XI}}+?eb3m&+l-m6u~Yq- zvrPEg;X^q*_R-@kcGzrl?=Ml8Z7_k&0xXV}_6oCYaJWEHzHB1v_CwUU9!YQ8qsCq> zskE)wQR{*Q7dEJ`qPLOdk~92~iHr}TJEFr`aNzOX8BZ7)XJG;5hVd^?m>Hs)ytSR ztrO_S1IbiNTA~d_QlcB3$o%{N;D2jZFJGo_G2EWubdEb5Auf<@agu|bc0cv{9{F~S z9n|aO#TM;|J?bD%o#j-`+wH&quYQrq?se`yUuUA!KC11XsdnXVjc!ky%TWi2FkR& z6PJt3)Vj8J9pgBJo;`nPr#*ITq+Mf9;EhEl&w=;eXnAYg^|H1xzx~3FZt3-x^-A32 z8`f&u5L%cnjMNl8~!oQRHTq ztNMo7?K?6t-S%eCKc^pR>u1lmk)=Cr?9SEf1hz&z!bt|R%%`}B$hN(C{NC%|Xs>+r zjkduluER{Y9zq^J_VD5M0LR0#BB;$A9&JDJqd(EEa=PpP{eS-R_TJ(Llv(PsLE23T z6q7E;#HLxevc`Onb(Qypo8IZ8oHAlv$_Y;>^)||6|FOCE+F$#3eyH8~%g?mmeDQW$ z^BxA%Yg$dRc}qp2-9E|@+{ai5Ho8aOlsd~}lc%^E==>?J5*XiUUw)Umn8u0K;BEBv z@BH4o?Z}_C_WCWBCve>Xr&DL~!W|~7cPQ}UO?>jVGs&ZTngg&G5pxXLcFy$72&ZO@ zayR*r_K8pZFzp-S#k}#_i|wU6Eco_Kc159O=U0WswP@X;p(o)PU;>AOpCdFD9Hg)^ zP|4a{@SP}e^G|sZL<$Y-fMMyGpp(eJsSvDeQmGoN{PGw40jo#nY=u&T`4!$2IRKnN zr@}aZ2Q&j8zWI+)W@^&eXb5L#(1urtb<)I@yBrlxBY2Yq5EW<1l9(Z zahrd3>a24av)2WjH2A309eg#%{WflYv`1sfU<6k0R^4SVMd&nipvwv^X+q%`hn2Rx z+GWM7CTZfGeDCtwaxYKp;1oZVHVn8xfiB=EnJI3Gp|LXUN_67eq`|Y0j*EbRDJvvG znW)YJcJSL_kZA8bN+NiWs?b;sys`%e5B<#Fa9n16TT?RVksmgSbLS;tGRQ*9LEd;@ zaq$P9S}t(kqvPa2`!22gbk^N@YJ*BXkroHym47KnzF@cP_$QB@z^bFaiomd{l1e!J z;9bZ!G*JZ)4rHjS=uM-#&<>2;?)8hSjvKdzf z{F0~pz6mKFj3vo@IcWTfEFN^kE|{U>PeVRs89Z4<$-DP6*a#istgu8T^xtxj4*k(n zF&ud)eB#*zIsG!yQymODf)48mVfo6jRJMx!?vThQWvC{saRj^?@tuw&oK*Gq0V|L9 z8uQJLdiBKRg=lz~p86n&+~`6}QsT)=YvM3oQ>T86uEN8*XOFVA$>5t^cSXxp)=plj zXZl8el@^hTo0yn9NZjH^K3rX1p5O$3c{h8OoujwTu& zVUPkCi9qfEXy z5R-)rIOwiiC4YD)Pl2oZoVzexI(=C?ScWDUrJiDd!NozAZ+R-u%`f$|ky)l=;aOaZ zW$=*A669;&6utZ3Ws_bfYC=kfw#S|$Ygv^)-<*&*UA&nIJWMce#nsG+G1lBr6FbBn^>03-X_zm1D zyEsgj?JnxKcpet;%!{oL)Ly!vy}Rh>J<2=*qEuJXnSj7&g5&kFtyqAEsf!LdutPhL_;cnEUES?}?n`2u$rB%Q?vu#5^FUMJ$9XqeHbq<(6N<%1i56%fIbK+n}oORR(=r zRM+pkH}66eZ5AW7tmirq<0rgrB>8RLdGxDg$yE3xitycVE`Y2$&6XiQ+=S8Il_(Gv zZFpgL7^eh_8@S-*+kTQoq1p-HuyO#D|H!yl*Of6QxTQb+3uskOri4IaV1qM(Lbq{c z@Hzup!0_#l|L|K1Vu*VO5A!_E!lfP3d3Ts>@n3}9^ueOTpLF!5FnEw=z` zK$O3>6^SxNn53bY6pDhAZx_$mud(fG8Dxks;cb;_a0<<~pNvO7l`H&}pTr|f_}*cb zXI|?v&W;w}%Dsg`S#kk~?Q2h_a2&+Rzft90nv2ScLH^)JQB40zosh*)9pAD;*7N|A zv_XuNxqw35qum{>>V@RJppwZC(dC2O3_lXO{M6IPk8OM`sn4Rjh})wuJ=rPgr#u^K zWQZGO_2XCd3V1Qf$rk)dyBK@PtUj9JUhP??4orS&L|TsN2!Ze8L?f3S?;8AXOiW^17CLOKaFuT?jcTiTi#egNkWfALTS~7 zrqKl?9RJQnfgSRGlrgJe>VlEcL+p^^SV=Y^T>gMTbKUsc=2+ybb1OMAUKu87$pg#c z6sO9~P`!+f(moQ`sdG%gGf8vht#+8Bf}I4NgEsqpke-Q3>&{(xumizzbj5`Qqf8z; zDaua7x#hKXk$ZQSR;M^c1y0CI>W}`qF`|LT<|O(E3@)nLbQhQ7c<|c#I&~_vs-y4* zDkSsXmj`huPs;r~6Hw{Pn0Ej>J^v7=;+LPn++}+ioGvO<#7qV0AwxYW@X9-L?9}4BG6WhZPaJRi-q&xEZWrHjPb0fQuW~f= znKLttd)VIr1rr(bx6t5_y+|Huc6ZqwM_HeqI0YIeua_9F;fUU0cKlws%nnSVo?s`Z z_t>hZN4O)_VZxK_)^*3}@XkbA;!f5vj+JJ9oTH4{(8A8)@rjxCeLwOO9AUoDZrtQ( za0c@~{l%}rgU$ALpMJ8Pe&U68k@Gz-aU}02kDR4VGQttboGb*t=eOC+a^h%v;n*pz zDDqqy(q|c9;kfPXg_}%H(pEdcPPH?X$48IQPJihOZJawQcUM;1tuK77%^!WTEeszb zPt~1QvP)JTGIEk5ov&TFN_xPDIE{mMY)C$^qnvnl+<8jEN0{UuLRT^k*{*|k9esS1 z`?YPyyn1V~-C*bJUw?KQe(rF0Fh`+3MH}NCCZ5Nb9FV%C( z6Dh)uOUp_L;wN8xx>~U}MIurXe zf-Dr^V=S6`q(|9tZ{KofeW@+5o7Q;7Sp+l6sWeU`-{KU?iNnVY;6GS3S}ZA57NTgadd;5T zBms6)6TfxpHhIR;M?jNj#Ak6arw2(gWu#w&SLdV6l$NQl^4G?5wUSs``0!s@XSO{BJ)4PecIpqOTXAI{ra!9U;Ev6+cN1HC-4?b$PUra zr_KU_cqAgYzyX|T^Erg29W#iwRroU^*< z_!^LUgqL9wkCxaa!*rpsX`iWI_t4)iK*Cb+(u{JJMj0ZHQRJO+B zsW9qJ4Pg8#;`DQb5SeK44;21Aoe4u3cG5Fr3FsXfzD%gHJ9hy=L{7GtR9rv*9H%mH zy~)PaHnz6J&R=$qbEI)(mJ&s)zb)KaV#hqY#mxtfkN+B{wO-)Z@I#EVZohxM&0fCA zanVQG4ekuzL}yx#lQt;}VU%h61Dvkd z0^RrWpTF8Z@kx%f2ky)7&m$i$5ThSR@V|HuJxqGGhFSOmCKpP0x})Q$)egrIV@#f` zl6%%GQE7@*9zc%#hwp9#7)Kw!`i(2?H-6)vx1ao}pKiCQr#}0KUv00vb){`_*NY2_ z-ucV7+pqo)f3N-ck9~jp(wE+9Z(Y8fu>jLy{!g(G=npgcRi1=$?0zY3W#ZQf+5i?yCu;+^4tzfp%qdJV#e!7dcf;}30rjx@cSZV} zK+9o3#lSxHdd51 z6|fC+D@cs#NL<3=chIc9JX9V0#Y!2plWBxsDd6k9tJb~F=j(h(vE zL)<{8;gJx;ARPE?B#6tM2u?sc0GCNR{jIqu7d9SfYE~sr_<<-$kNAA>+odsRe&d`6 zsCm;s1V>e10Rt3(`rl7O!T{eHcix5nA_I@O>}c>`3^lxX6NyeG38r6TFzp+3EN!S- zE9+&W(6>-_pyX{wFfMu+2mHiZ`B!+2*7y=V2x@|llmw9};xC?dMFLHTLM?A~+IJPF zI1-?e5No+<4S@+?Fw(3^{_{?n7?g2!c}aQ6kl|eEXr5V4Bub6b51!kx2_edp9Ua~p zE8*~1dt3x7zy8%ZS8#xf{&MZ>z3vOXRGw$@2YSpqcMmFq=Aqy6PAQh(n!<;>9@0gl zWr)tFGUynfnpqlaaM1w#EKa1uGMI)g@A|@%|4NH?-SgsUzUyh@7I!@Q1p>H6J_4Q&zBlE7KsIv6I4NSNyWXHD#5@qQ`9jLVUWrn-IjA(Lya@yC zmM`N~qy~oX)XyL}NK+M*N?v$52!Q1-K)xlQGr~&yz^My7`0fF_cMn_C!v{kOEM3C% z;r$*Ufq&RDm?%hrM>oU{Y&ui$ei(hMTm1@2#1&-8`W~rX4s_vJvW5djonmKc2Y19a zbY-Vqp-Nii$DnM1v@iQcnhs53FYTn&_zjp2Cf0osBn~_*4?02(X$G*zkF%~0qV#+c zCUGQEB>-b^Bht{rv8*WP?$)xbrn~}aOr{ADsk#nuWyFwj&8jcB<&o*-+dFDB!fmM- zIz?o>`iM`=F*@{##abb?7>5JoAcW^ZV<>v-1;dk$yFvX9Z?$xJ)scXMah1^-`~m%c>67Y!fWXbs;URg?=c3a#vHh1 z0(XT~$?8dgOrt+{aCyI-3j~jF%-;l~HLlj*W~F?z0`Ny^$1ZxGECa6uB7BhChZ@}Z zH?2MI?gC2KatWCof6L__oC5HxdP#KBEGLCa=1oft{wJQyJ!SBSb6O_YTa@eP5i@JG- zNmbKj{bkx*7~rI*#twMuE8>hiN&|N9PF1YT$1IRAHU~(MvcB#XrAanzPP~q=Yk(w0 ze;J>3zmvg{OZy|6PvI?e+6`V9Dw@czJOExf>%-_0z>Wa*@g`}TgjP?Wusn`2p)2o9$0j^; zblbL%gQ)J38^?1K_|ec@=)~a!qE6!J+af08{>Jq5X}Ui|?{B&eLiYUaLv`%#K22XA zg0}>9Y1P%ACV4Y(=w0KHbjvsYZD-jgib;NI2Oi$aSDOcVt0B{34Seac3YJ;}8LTkL zxh_maV1DDOTz7PucXix3Z6n*f#N=SDWpCHE9B*qRby*ft5;kuIReJ`7ffXm=JOa-h z$C53a6MW{+9uxKAG_84KH%)37+< zJd%0Rfv1EMe~u31+qysO6B!l<_&t`^Eq-~UP!cEpLk!*yWpO3CgmSQ>J>hz4jRoAe zsdpx6Hy%GaN!mElb7MY?7~`nY6^`vSkNZ%fP~RM8V$eFr@Q0XSTv}SA%vvt1p0a-& zot1n_LQPSO-01KneK@V>j)y>Id*H1HCh|)4(v^OQbH)v+nM5PFftStjS?9 z?&o(G)!-$p;iN&Cv%MxmoOoMifxHV#<+Jxl%R}pjRgX#zp9x1jyU76m9y_I#LwTUt zMs{y6ZZJUmm3HRiOhhq>v4-xNqyAl?&RAnGR+_iv3luo9H_z@_Pi-0}zG04z-F1-^ zI4vdS(K@pwwmqy_Y@c$=U>4-{xnO=IJ<#S(2&jEx=Z@Z6VDO*G*yKNSs7sujlcrtbAlqu<1-_zoA_p#za16x>P35AB z=TN(R%L!~IOgU z`ym#J46)LGo5>VX7``he$7UwlPd?28FBaBMa2KXK{(tnzlN@o5ow8@U?-+LsPkqlP zxcBpq+Ue6r+R-2WB=-h0`TO!aZTqSd#KC_jh%5b|A^73~pDFUd8CJ{E;*C3P zg^63k+7`^%g0$qPtSfxxwq>UDoO;B`B6nLWkee)Am_$BY`05eYXeoAF54W@D53_51 z9=Fn0Ch{9h=s-Gs5XusW!VBsh%c1S*)H$Tj#)Uv}Px_kS!lMzNVtDl$P9R2XB&gY zv`BmL624Nd##vm7~bz1Uu$!D~QuJYEC&Ko$45(jB#^8^;M8j z;#Ys8QQ6hWE_5i`VHc}&{HXBoD;t4S8o-)!(&4a^NV~=p60-n{Fm#G2Cvw1AKs7_UvAN((IjlB{@<|^F+$1q* zd}X0!zAMG@UY=%Lj<+)EPIgwc!Pha%Lj& z;qUwI_Qd!7V7th~?d?}yZ6{gCG=dHpBX8AlGfbS0vm@TC5Kf$)<^EX~soa=vQ}(M_ z;CTc0k<}R%A#5|DJIxN_al($Xn1%k|I(41ApssVCXq!8OXVsnLvy0lcS+zUFUBiTE z$Dz-~dn3riE_LD3o3FO5CqBU9aY6kK3m#0oT^V(li(n?HQ$PM)C)%?o zX3+^=B{ke`y!Ki+u|u7GhPKribd{%tSf0kvXO{O-XmFADt_|q}{F8^qp^Uju%2NOo z5S;EZnUFV+NuN4%iR0@3*+2Rx?Uk>*-qty~`O-VwG0&0BfByTQ=R{2w7jX~oYp;Bx zUAgeSD?*saR?ccJfLx6npW~hk7ccEHX^mGqjf{57H2Un7R82ka6@?T&iNA}~q-Q?? z5#XSC+}NaZ!JA6Iv9`se-4^bhw#6W72N?g{p_GmQ z@ojW`YCu&A++6^}PoMwZuUF^crJg-wdfIwG-ttLh-h(6`-A7-nHNi0y>1Q~N-xcRc zy74Ox4fupZcUF`c&Yzu^q?z=KF1!t)+={3^PaTOB%&);^yc>80w_n1V$3fa1h>cl@ zCBP1tlM<>)o2*Qz6W$wyQD>n+`ouSktN1T$*Vq{-YW{?`2>bgUW1L6MBI5v5zACTk zoq~5T;-H3d7Y~hVP||U<^FA=`cSN|#%g0VxT+GOq0nE-GIj12PfwE6qm%)u40-rv8 z-TK(Ek@#SOaCaJRvb$i9ducMTaG)ek8Ytz$9QQJmK{EAB+RcbZNLQz+(lYN339X9x zBQ9L64omV&=Z1J5%alP2`FPBrdY#ppqIBxznEK(NUT~1ucJhn2>DUA>Ka9f07^tVS zZN%=$v9HkJU?F!Uf#ZgKQ+<+-c( zToqq~198~Rs5+1xGR6Umcy!qo_^n&Mm^blQ>8zIyAtw%W=odqK4FFA7j*By?h$xTz(?{C$>-gCP8xpekR#%-om9w7Y z;h+pE2q>&#KEa_pI_V$%LY{UxM$1)*Sr|k8oMbnah-@fR(v^WnDl?FH1YTZ?8`WY*R|dPNM{L$b$Q;N_ zknl4`AAo3~$KU>mZ1EFzo2E1+9iRsAQqny-DSPRVLdMWZUouSJCwcDZ?>v$s>v#|g z^sUJgZaIi2aaA~Cz^{%-t^u78)kcV^Qq8JaQ=$G?@8!9&rA!u8fDZI70SPqGp{L7| zX(wgAJ;F;UgXCjAm=p*jj5>&ega7h})RSg{yF5kX!_%yAC3MtXlWwmB+B;R1aR=q4 zm!P;KO*%Yg(a*m9$7w8nijD#WCvb-NBt2l_rEh?URRjWMy5vda$-)TiaHJYOhzYNu+TtT&e6*e3Mhd-om&*rKD(T2P+0hQ?lBCymfid^E6f(GeG9c%DLAA10LvwcsBDNiaW# z6V`LZeD!Y2IVp60eUv9@w=AoVABhWZgpvQo?-!p%R`Jx>Q4jh80@5F{=ZbQhq~Bya zk*DhfiDTOS6W4p}a#F*LlS_QN^E$EyfU4Bp7};3~z4Crqh0cGwi{1kkf^3{fUp?a_ zqWxE1F`kWrL>Y}*rcA3?;Q<}5UQUWP6()$ zV|)llhK(m%)DO~IM+_52Jh27`Fx3D6leqlQxo~_|{ca(B%m+x}QI$x&O{4C-4-nN- z!bFL`?UJ7$5ZdHB#xzBmelFj^56Cf-bkeF0 zid+B}X!s+|*?n!IKGKB0liz9$Nv)hp7x92|T$Cf}>GwFsaiUN>?jm-_p)xqe@rC0= z4sXF#DVat`BN3{f#Den;c4>j(h~omy!x8;}sTtF@-M9ZkzS%{lh&eGm&M|`0=uYzq zc1<#m-Q~+XN(U0joB!dZdF{TKD0K2u;~}|XoT&_W%({kK$3*r`gq~%$;Wj#Y3xlkS zS*tGq?N+qp!58j)i@gt1hRUrvv{cOl8!n3kIRy_bU)uo)PaUW`7lm;*Wmmq$Ibw2C z-RQ|mJ4^=0-J#kaTVOFhll4D&r=9=&FCrVX>&)x2ni8HlCNbykz+%1$9vxsnmo#^{ zu0xcRj!`#UL~Xx)m)(EWQczyhU9VUGnk+KcL)&9rvR!hb-4kslrWV^>47HEe_t|Mj z=-7Un9b0X)T=C)DR16dp-YO?zt?px#$4Gz%0w4KSHmHo(*#&i*olhPmy-B#ZW2~6w ze%ohX#u&KK_E&Evo(ry7_LQ==PO?0WV@(;qLf0X?lNoYg=UJ^CkvfjWD+!9=DfYT57NU@|W0c^)WjyAGf#etzp2%pv^tI6U@WyuCKD# zjh&XHD>f(REjtK|Eb33Psvb)?^5>*9MTRk)1#nEdFLRHr`4dJ$9IGfRU}0zS20NHB z0`lQ~obCdfoOco)BM?zbP@cn|q*?ftvV zRXFzmfA4<0o0But!4hUQ@5c*|w@0B3L#*|UWBWBM?=u(ZuIO2CI#zMvW9@cChEdko z9jZ>LsyfG4z*d1(zWm64qpSk&S2!2 z8(cBo?n2w@+GcyqCX?CeRq_J=IKK4$y^q-8%8qhyJV$+JKz>?!{*E!aCg*!8!L3ungd)!`G;&hK0 zjOgsV9plnn?}(mc(cLuiwLE>Nt#gFx-GejeAL;>%2i&!*9(Ue!jk#2F?n!UERKUGG zcC4av57;p(D=>|;jTw0R9DQaAe;FgPb#CI2IsuPgM~`}>>g*Kz@TpfL^sh&5eaOO= zG3x13JNMjY+sfV=ao9o35z!jZColw!qbuCSY%O(u#W9icG{(KPO1q2oGhczfWP5k? zCUxi#d7LF(7m^&HY>rt7a==dJkNw^^kdk! zk33deXua{onVg)X{%04keDtI{<2aWARuc)GwuiQIp5SSlVOywSS$?KE@}Roo7{c= zPyQ+QyCa93_AuwdB?#D~UbwKvc1Ij!0&J2dpJ=nC9XYiRNNsG-P93$s`m=Md&a|b&Gkh zf9T!Q10$;$hEMj19M`Io1w@R&MIi12?G(yR9+&j4{cFMrie*3uYaQnlIC| ztSY<2_rG!kUfEl72lnHH!h`=NleyI-Q{`b%{`{52oV>8H zbv z(uQ)~1kLgkZN%O_3$Eem$N~PxH`>SxFSO&^A5hL-f5*azY06=r`hzZ;r@yp4LL1HT za-$qeJva9rx?}c#0>3Dtu1w@w~^|h$)v)BXm?_s(`{AqAK{Lg%w*bsu?w%kfS z6tq>GbB8URijcGPGhNXvnN*hJgE zJ7`~d^!G{9?Hkr`W@B(jUmc6F7wJ)9vH^J9&3$rlB>zAhj8=QRr*$)6(hd zU-B6or=dVKcyx<-0Gp5@0KW^JhLx6i;#a=eIKB zust1=bf$_f4H?4PajfDu4q?Vo;Am9&4-MeyWX^JmaSFhQ3h{+cx};$`Bp5!5zYjAF zpX3pEWtrdni6@OfAaLW`>$Ie;KR}ACE2V1Eq&S=M8;VCO;TS6M%}W)LJm^Z*w0TTj z?!fK^_lfW+&HM00A>DX|M4CC%i6JE@cvyKa_;&1y|7 z2u*ta>k_p5#VfC3AmKYO(5Sr6(c9W%0N`CS#WU$(rwiE=hj&O3g*YW2<|k!ffdp5j z7y?a`zvw9(>X6()4Y5ZsP2H2uqRL*XdLsGyv`0u&$b%!i;KT9~jk4n4-BoaQ3+T^= zpH65~oOF~uj?x_xV)9QxGNPaS5Z{*_PV;Fe^_a57c2_*rQ(8^TXhtz_`VnW64#qTt z<)9}_ot-0bfM2JxVv1FYmWpUZkl3kTT_(aSX)`sSdiP)DR{_Qs&yXJ;(&Y1$7$?34 zo{CrSz0_3R0KuU#!5tio#1rY5dqHwsUUGvMPo-6P&jgJ#wd9QgsKEvCnN|y&9oNEd zSDlFizTHjk9r6ySJjO{J=EFg=G)1qFh`h~02i&DOl6(U9Snh%iZv$~SZn z#(#l(;se%uSu_SYaCS9g$_YI|j_62JKX4nK2V_o+F|^7%Z3pp28LXEM0Tz5N#4=3X z=Y*m=lXi(4X^7B(JGct7#zt3EAFz5-gR_e*QiqXe^WbA1G#qBoq-c^))AR`kB^c1; zCs9b>xXNjuD$QPhntt&Re`)mtbUm-7J;?AgzDdQXYMCafjz&Mk#oJxR>7(%NKVv!x zcZgoJSWG8v5Ov7ONb^`Lchws}0~3v8V#XGpw>47taUwJZqc$HXPea77nD$UoilkhMgeMrN=5qW}FPE7bH z{{V${HyiZj zaT6cMS1PoYV#62m6~JK5}F7tf^tFnMw!A-3gJ zCuF_6b~l=hm3{q5BDmAc$sdjI7Lnz5WIrHSD3>JCO+ZzGNkOMLlUjIhhEM2}25V_# z13-_eG@r_42I|3;5=^`pvW)M4%exP^Qua@IR(%V8JdoEO-g;;q%A~Sy<01bMNS*uv z9(ZXFeWYc4j4clj){SmQBuR$b$<>^6C# zo1Lq6`QFYp6L}md&5r*E+^?rjWFClJgN1yVyG5ORddwsiw>U(8cfc`^Qd1|cVT|yo zS0|nKnTR~dH6fMHOxIXZ?8u_9=Kb1QpssEuvdWC^mj&~fRY1rx8YwL$IyEG9#cW?SV&LrTxyO_ZF2y2;RBJ*ee zVOOIbbWRd~mj%GdKD4@vX_ERije$oa>NW-$lFU=D`lZ>T%CusY?E{EwE34`2Z_8Yd5{A2d2})O?cpc~(&Elo zjU>lT2HR)CATdUtQUi)IzR#}29UCHv;*mm~phpLgE_q+aFt~(K(mqK*Vb3o0dwp;2p__U?#dy_HGjRamnujtM?oP%^5~%Ec%8^W$Xp$ox`Uzwi<}2iLd*k==a_ zgMvIK9g+mUHNZZyx`#Z0%OmmkHI{M|@L5j7gOZdHIpd%7s~>92HiHn)A`sKFM{S8S zW54^|2N-*&+Rn(C_UxtEc8+nQeMpkTsDXjC%_sk+e}uoKkg*E1rq352xo%p95)LmN zA3EPqh6#x1%7kF*9`uu!ea2e{^ij9jb-BB@#j%=}(`@o-J=Hkk0>~vM-Xr7G<866? zVQ>v2tw#547bZw68$jIIz0WSr84QUqA@w9h=?^gc$Dl?XC*Lk2xc_JaV<$WHq2tFN zU2h*!E#@_HQ;#$>ZL>)1-gm#-R@tE9U9&Fi(;%k_%(}Cfg@4>j&%LttclDcQ=fC&P z+xBfTo^eO-ByHXC*k1eFzw(*(&;HGaIhy>x{crv@yTTu~xBvME?Hm8zRD0*`)%Lsp z>N>K!-+qo$WWMp@WSjfW|Auj5yZwV#muZVQA{BWVXJ_NZS$1X5z^_RRr_WBbOVISv zc?@}sJ>6kDfB#nd$-jPt@p!kbVC3E6jz{HMHhk7&&FRZd!}n!nALD*b)j@CWaCG^G zJ51r@^T#*aPaZ#Lzw;9oGcq3bG!-|*XaLlJ<^nop+Prf&KQy zb6%Ul0vq_KE_QK}?sWJOO6#GzI6BeVlAY2ssn4l!5Hji=z*nfV)azQ*YD7@qdHy6^edUTp8*yWJjQ_>Dk;!#2RF zF;S&GfS!_f-q1&IXf!eVLw-AdbAT=yA%PKg?;WwQTs`H&o{vAS>qbh5K?*+OWqgIZ z<{6#C(zpoJqCBykDY?%{6Qp}YJG8;#fe98N&2nl(7Bhu3@Hxi;?a_y%nKUS4c`2Xw z(TVKAOp1c;t^&Q%L3E+7EV4Sfgknt9CyYZLEp-Q zyDa4K#3k-{2IPZ}wrC@#S(GFl%AGpD(l8aW97G!CEC+SGi?O_p1$C4(mZuNfSAPA= zTmf*sz4^Uwx9cwMfky9>KBV4H;eMXYW}X5t=}8jQg*E3j(Kil0Z5xmH9%b%rc8-xdU~GEVaBe%4aJZI&=ow zr_nXz=#N{UwQp% zd;g=4+wIkRZR`3Y+Cp~1TJP9h+t@w2&FKm^zfb?dlO#BqVsr9gJLbOIk+WCY_R{lh zf8tJC+P=j&ezkr6<>mJB7v5;UxAJXHP*|h>kk<{`auz_j7-FB@z+SQO+UqZ{U}wGE zzrU5m)E*(ekIwq~H{NIuZ`|en^#|=g{72v5nDrHo(j*%!=TYIw$T%w5W!0}^i2Rh6(m%g{+gQJX&eop?Xi*4GYtfY4L1Sb4mx6} zMS0bue;~SV67w@!&ZLw0fR>1qdE`$S=;bPK$wa}6q<4w9PeH%l-TM#2>DND>@W-S4 zx?FbvJzW3p6YjsI`O_Xr?w@k<+xZzUxd6zrI{hTD2Q4_i24M21`%K*8r0q&Q1Hj%R zZ%Qu8%9uiwam;-C)k{;wmA0Vf(@wvW05(z!!B=&JDqjw4G-4{7AjyDr&Z92qRP66^mkQo?6mn!q4+riX zj|kn4tL?aHu#yJvrjYt{Xwx{6Z|Nk@hR6d~bbB-<=;-j%@nDd&N2gP`>FEhpcaG7} zakQ03V$f+$zR0ukF+pc}jsey@_nSZ#$aYwjNJnIgl~FWgny#|j)w~ewJ+rQ0J0LMT zC+>_J$Imiy5Gha91s=WSJ(jjJ4my_@jIFZ5l<{3w&0F@avez&r4=rbTp9LMnqX~r` zu;M9igtehGPq{A>ypxof_c+Eicd!ykUg-}bQiir)%BytR`7UOH1^;2=lu>+4 zxAF{=l5u?E=}!XdtuqOg!`zTk;v`zq1ry$($>0v&?|}0zFLMPz2V;GxfFVEyS~($d z7J0A&QTTN1xGb{X%u&<>FVKScY;L`YDsr0v$k5`;$^IcHrtq(MNKSGj#*a zF@d^#OrLo2r=q9+_NE*NH;K}fILJ_r8Rl)u(rtP^nFxdET?Wz~-=?A3$t%n2rTN<-?B9uvx{!Vz+1f8{CTBJE3 zz5q#`4L*PBamBFZEub_S#kQ(&>fgmRfdBgY8a()0#_{U{q*=p5^rL|A+=V2e2S|^7 zT43e&Hj6?uruO&ixv0Rr_id9p#py%aV`)@QW?9xdMVsReQOD@Yh;Y#rejo$ZEip+~ z)lKlA>obi|fXJUqhsY9qx8MQw3%V%>ybMdefVZ3w9_T<1GeLL^uPsZaPQqvFx)N8% z$`LcT#5ZvG(LIz4-XWv+`pdirJdPA3hS*QOPEzZ~XQexO$lH@Yn6>Xjdhj{c`aj_x#W+|twy9IV8g;A&EiS@ zv`y$UmC(wgypRy-NqHx#KYe7K)!Q0ofGxJW9P*e3IGlu%8e2!(AoUg@nVhV+(v1&E z8q+v&fkztq_C85>FueFQlCUO}|1d{~+E%?Ah~!niNSko_THi~0ioO_Hkps(515wda z?U$3NCZ(j?HrQ6>7m4%5Z(mB@rakMZtGC~x2bcsUDj2P6*c#sUSXMeXPw6Q1B^JzkpHSw zeOJFE{Tg?x!XIPzV=VJrl4gqd!z9@gMwxX!EK@y8o`ehJP#Tq9#`MAAw@82sE(}x9 z_xRfTT&Kb*a93WXZfo@b0G{@B%q^Kty7qKP#3=bba^jw6T*Dv7Hm=j3*kMv%nKw;O zbCNn`Nk7ZT>MXw=Zf;6Z7Icb3er#d{vy9K8yLPv?&_C|RQHOIsD~e-+&cg^sN$JQR z-;<0J+)?Mzs?uonjUJ;c#?C$4=3dz1IOw-Hs?y_#N7@1_PAnI9CUlT(l~(L zDR!NwPfN6Lk;$4&bjwpw@h`?A>k@Jxj7B1NbT6@3oE|A|7EUmR_SC*R^zB{nx=ugJ z#V|YUnmiyqPe$8dhvgzWw&Z{E$UE!;=STN8*o~~=AH$=%09LyD>d_{7NlHns~ppOWqGoFfxmA&cihfzeUGD5x7+9E z_S(DTe;b`LP1(JAW~7}z!|7A=9Jxvc*#p^bag6gQlMajA+k4EmnS+%zj7}_Oq`g~X zTd}+Krx~A3(N1q5Q%A_(F-Fi04B3nGmKAdwJM50Vc%iM`elKM(%e>3=yDN;NCXg9q zn|UA&uM0DzT_TWv!y>yMpIO9cj*dO%X!R-j3DfALXXl~Ga`DLIsl&E}Oxp9NcfsAg zlq06ieRg(h)H;IJ5yp(xy&ZO5?;tBPGa5iJ)?#$ai3g;KNu9EyK$So10P?g;Ik^Bq z3A}gzL3_ONs9m^p4!I@*g|)yu7M$ijV(uG8&rY#QYjU0=yf^5Zq9d%UF8sfH{X6Z^2IEu=fN9H=clee5 zo^77`NC5=zi&w_m8!zp(ciwg31GNzXiY5!^pk2MN+`jU6e!e|gx!1n;y?bp1V^y`M zRu1Wf4iWL+G?EYXAH-gqw=c#ncoxPjv8CKPyiMJnRcC?TaU0Qyr!K+|-cLGyqH;zn zf!qE-j{PT(=|@v3!`|zv?+)`YE*KH|h`iJCV=N5atj5&+k(fY%W_k+s?A^UcK%= z`(KXpb|{xE@(Oj_4bIW`&~|2IHu%$?L9TjldV;E1lKq$s;oB7Py&hAe;Tk$=m8&VOGxm!dUzyef?Zd|$N&c_D#R(3`tP3ya z@S8nFNZmx1{ z^Y8s}dvKSw663CYun~2)bp{@cAWLqD7)NI;FPuRxS@eM><4gkbe$=kLb1TR7&u}%t zyMJ*PIbbmm3(14gT*#|M|#=s z%RTEm`wQ(ZyL#QxyG`4`HR>FT58dX6@;Ih1vCeVT>MH9~m`~Y&DrI8lN}XiE)X9(b zl=z14hy`$|DJjabgIR#;ibxBPE^M@(f(INP$8P=iY9i;tj+j^6gBHutF^=OMh>2>_MNK(27=7Q{b;d`?9<^-YXCSU&h3PO01{IqPGdK$COuTS0rj zp04nF2$#oN$f8hZK?%Q&6KN%SX6@ibQw?-M^Kh*Bx~ z@E$32pGr61_z0|`04|;RK3@MGFtkV12YmW_kWzSc8g3X%Pf!0Aaya~S%%Ao3SBo`_ zQ4GU$42S8iu%|$Dc~mkjr4tFQSbYrfSKTgJ^&i0YKt@SQJv9Y8fD?aLhx#ZcUw9K) zl?PrPbzk%!9Rh$HR4KbENAcA^0f(Qyu0DHLs?7Xs{f_0I_w=@p{z z8Q#Z~Q$C3mXML+TU9m)~p7fHg3K`fkbOV?F{-BU)O>Cyq!3n&u?!rnk z@WHP?ZX)mp2yO?4G4^yBHir2z9Uu$dH&4nSu1a4#!jfcQ`#2uaRK^G~$cv)EBUs$E zI)S14$op9!a-1Vf97x!?b=BxD#;SBbp;fxmVUxG=hIerXJ!QuD@@=D@-DT!4{)T<> zNq+E_W;=<}Y3CpYe!iXbVr~anqO(Nfu93<6AT(x7FbMR>Fb^|wCqpJshto1`!lYT= zD{a;Vc?`NU??!S3^$dA* z!p{!Bo$?K2DB5Ssv5wNvwV;6Cpys{`nwp#;eDyhHHsy9{UjEpF9J1 z@Rq;wfEb%VJnTs3E`LZKdIwK%lpF?!ZAl8;^vhquvl^XujP!{P^QzE- z%6i7enp2bpHKEFa?os&Vq~R`uPiE%uvBZl<>exQA?&Lj~i?^1A`4f-z&GPJJOxJwC5s%SJM9f_ap7<7-b}aAq^=|DfQ!L6ID4oq1yg{lO5(% zZj>GXmy85ezr$Z1Dyu%qayXOZo?&Byp_s?toB_yND(90h|fk5Wz$i^;x;laOLi~z!?Tl zqszb_8N!d?Oo&C7NP}=Z>H+D%5nkFaQuix6%9xq=pL)$G(km?*rYk4<@o$jN0xDf? z8BoTFMNIRB+rPB867&tP6qg?$NZQBaitCC?bGKq$l}xgRQSnPB(DF= zTU=I2C-RCr;KSKbP#FY`a-4eCC)NX)L}Z*d*{Fyo>GoiRbWfxslp9U?6n9VnoNg9x zp^Phi!4Y8Pf}Jc~91WhD|EsJ{mz^=m7Qclj3&%`V+yqn~L%EQbj<4)Tm`BECfSJZ7 z8FoRPxmjRW&=wPgF4C~?smxHyCZ1nqQ1hl!!s?wY%p)!PAj&=e)Aw+Pu`$gPLDBz_ zPKXjld6RM%=lUJPyKP8lq<=!V;vvs8I64_B?OO=j5whjPZZVObH*R-vXzblb5FI;t z+^ma7A9?(rbkgSTP^X{vkj%-$hdUFgfMl6EZoLG-9`!lA3}2ufqTOw@j{$Mo1u;xK zdsnP|19#_ZlyuRR?ePR-qCLiF9@)FZj;w9^&iA=@RylJ*JbfYzOM6%d8ufcUW%;>7*8Y)YaVULEsIR{NR-0Ko*XGZj0bswKoo6fxFLp5q zVb_5^$^c{0KK!#EHqY6~9t-O6$a7fw&M(ik114+TbtA8A>#axb)P}_@IMi5II?FMj z<-E<9SEWF<;6FTprCS&oXW`Wpu#<~RWMhQu${u1k#2AI4!F;4mg(u>9$Z-JPDJkD9 zL^d;;uThW} z@-F?}ZTZ7%H@T>Fj=r@gBDnjOekJ2mkLo<6lgBG39BDAv8*%5deP0ZJ1bF(N`A8J8&=8uGcs2>FFV36x4QqBE1_|8zku-+0~=8>C@?3%QKSsEVIqedw9<*5qNRAO+xG9Eq3s7 zr?LFj*h>v)TUxE)v%4v5W8Kv*o+FGGjx)Ss<>HH%+wryQ+!Kq@`0PA&X1$&N4CVG? zHVrVf--8!#6tvb9z-Er+gjwVIcW=M-`I4Q@`_L#=6#zEul%FHgbY(NX; zd3Cp4I5XL{Zc+Bg+vmP^xy{4O;~V!VFHSYM)Y{j6tqgD1zq!#CE>E_f|HbFq==Jrs zb(;+c@YMRQzTHEHRAUS5a(9uFJB96&TIL_!df2}6y?5Hn&tGiMTsYG%EL?22Z{KTw z^he)p6YSdk>MyMjUC=v6z1-l~59iI)8@ntp z@QBvQ!zxr$KKmO1D({|^bKWiWUm;VEXCXS$`E@}j{kDVi$!RgNKV|2+J3kvor z_rLY4KiB^8fAZ_?pZ<@(-+t?#{Ro{P?x~coJFma=*MG77=l}J8*B;*bllEWz7ypEN zdbe{tZ59!N&${J;DfRuB?E%?I+lcFpE0q7)(e?*#vbf;l1dHVM+ehrAUq&uhux+`Z z!^bvFI_-d1|Emw8zJV9~+4iN^F7l+{8&|&d@n3}iO52ERv8y_LLEsq4Bq|T3_W9`o!aU8p8yXe>o=vZ}qjeFSna?#oB z9QT4lyGKD!u}H$Q(D*+Gu4V3&wIOi6&8E=y({^q0?B#a%(H3`?vw%b8SsYD1rA|@w z-slPHpQkU5qrW{-W`Q(5`{LEMj!wA$;2!-M&&?t?$fhT$X&|&1cOdu{HFc6X38J^p zfBl!**Z#(@wC}%rt^M0K-)2s9woSsb>D6uS(Pe3dd#W4h@-CakQj zk7tiFa6}q5*d_D$4dQ?|3Sua+z;qB{c5rm`=2(7X@6dxHA6Gy@}!dUTv56jvqI z1LQ5;;_TyvR(?!t5PQgxa6)RJZhk=nu&Cp%Pa>bdR2=c?5};n6_>F%T*n##@25}_p zFZ1+y?cfJ#6SoGVg+xgxIq8rN;SUKU7a8f3?dck1R)l8B{KlD|lrur6%d0CRlOi2a zRGAyGM{J;v-zM58+&P~F!+RKHFj-(edKALo9>SzgzK212PvK7CNx;d^fP?_*{|PK7 zz(cM9YXKkNAUt&OllKt(Dd#YM61hs$IR5G7z_O>sv>ezPEqLYkPu$umg-tKv3Cy+X{$ftqx`a}Wq_*(^sRE_FM~z$gFBrJ1Vz01 zJ6Kd%D?dJ_t+GsmEG^(S)4q;qS*65q<48kt0UlRjMh3e8Aq8@$r3OwrY_0^?5UL`# z0dS|5ZM_P9jt&~YbX1FuniK>D|9V9r@7;kasdlJ+l=n4`v>3;@m=>5c>?E8_mKE=8 zT#R2G4F(*hZw8>j`j|i(BO6=qtT0@+K<=)v!FOURyLRcp+i9>N-k`(j9lfp-H5M7n z1ce=Wkg~#&dxIEoZL!ka#@`7MjlOnJCcvqotCs_hwX&X!%Qwr05OKI0PuCcJ^6ZFC zN;-@-dX^=5-t^)nVSu;OoK?^?-r)lbJEns!?idsL@ZbY8-{L4XKm+NSw!4dpmrx-A zrcJ&)R@YTrSYj~bbM#MoQ4H)!M;Y5<1Y|M#=l2L5CXe^h$W39h63>Ydk5j5ne|D6J zkIvi(E5($T=nLZdNZ0UF-{i&e0ij3pSU0PC2N|}C%A>LX4m;}BJUa`*x+CU*$%EQu zqC8P6%|Cp1Z1n=1_2%73Xf! zITyDP_3vbjm`r9#BXpP+yjFy~$Aoi?@B<_1Cu$Nk265n9-UbXfrS$6Slib7wl1jIW zpC}NPcAgl@d-MZu!y+#fyco=>Rc;ppxkh~flx6)g@WFjRr^-8MG^*!5Hp<|T@9niC zR={GUq@(YI;vTa;IsQ*NhzBBg15V1pNxDgB@>nFxEA+s)EeEj41qt(=x(N|Qo%G@+ z$T}u%^(YD5r}@+qKBkS7_JnnD6Ca=QEP3w`C0_jFBAuS6@TJ4+#98D~8o(P`@f+|Q zo^DfbT(PZTRmu+;)Hv`|R(ItCxExe?Qi7j8gGoD(ZZmMTtj2de;*}l2)?ed_m$)*( zXzq52v4-!o4TO0VqB_+Muq*LlIk2Q>M>{TQ#-9NBegOXyPO%(NFUKN#B^Rkv&|!M! z)A(c~ysq@jign5fT*}IN0bGuQBx6~igug4D)h}7B0gduaeq{oa4|n2Bu^QG%)MQVJ zoL#}#pdNFf4G4@CHs>v8MMQ$W)G$T06yWN@>Z^~}c?zL$0B3r-Q>JF5!@?_%c&wk+ z$Ue5YOntPhOHM}X#^38%E+e_^-u z;_SZT+Yy*ofpvJ8xr6VPU6nbpJH4Ym^q*zn5sXGlDTu_f=TV-m4aW8fev##aug>W^ zBAahNNRxk=ywEQ)m%u_D5Mc}pK)LxWU;R#8Ml#=d%s1b?jFx{W1BQ2K?{P{4cqA^- zfJpp&c6_P0g=$WK;T23(6_tn476W4k@f-^q7SgcB!v^9?u1e=yQ|Pib;)(oaLa`p zAedq|lz2{_j!ryusiW#KcS?l4Z60U}oe7ku0`l&{T+CySP~R$(iYH&3RCV#5_|!>K zp#D#>1P}SbPyHeS#|HVwxAz*BT-tWnKQJDppM(P*iuxbZH%!?rI{J_}xORKme0t~`~0{cM*)Be=w&3{@Mzo2dHgXMZabc7_wr zuub|C8Wb}*4>IeUJjyO?;9V%DflygEpspM-vF`kGWwH9zBN#xBY`4K@JMY4P^v8L7 z6rcX4HxGO8+B_GfA>JJ=%BV&H`i0Qrn9p&d_k*$#kFj8Kg+T>lhKYm4wrrG% zUQo1E;N~D~lD`G|obs)|r&?$q-_qfuTmCB(8nGs=f6(g!M#ppRrqWopwm0Bw|VYx1b{7K6`Wk<6Q-PTF53yE|!j(9IPtJ>P!^He$|pK7x|hWOjI&HjUEtl~>0jHAB^inse+;O8U@UMR!#=2!$uscR z{&5!LAQL2pjHBJq&6bCA7RtOlaEF+gn1D}voJ6*_KgFqJ-cbsDEKc^$K^Mllm|=_^ z#7D%RVF#sUW81#WnZJ;hU9kvacp*vReC7GGIr3Lpy7aw&t0+% zQn0_aci&rW57@D`gmLB!<$f09>pVKZUEzDufq@Ep1}Ts(@GeyFgq*1AlBo ziQQ{U^X_I_YOgMOhDI7qpjxxhl7QH)2Q{d}9IEZa{x4jH+eK0nhgef`CDur=G(uK&0#y*!Trn8i6C zu~UyktdoxKteMp&BbORk*g0rDO*fT-S>cZ2Kls*r?GL~EQ+A|IVyyik<-N~N-D{jg zGTPp|bC0{wzsJtz`F8%od5p0uZS3wx?H68sj-z=o1f9Rg!j0p0c@%^5S!Ovf(Er7c z)`8n-bIWJjbL>9fzs^0P7*lPB(tg9zR1OKvqdsQb0BP8C%^qb5FDUGDOe^g%r?<6- z0hJ?c=cvf|Wf#t!Z`8IR#4DG};;>uCm&^$_-2kwqGo&533XWW#V z6ilTYxA1C7vB^B3asU$tYZ^Zp66e6szf zt`N(lv#?491$lfE2B3GDTKE~4Q~rDEBJ|9mM*+Lwf)whJKb;e=TGWR8qOX5&`(gXL zUwNT@?dpYghJ_5{)92gz%53{Te)~_Uk1WK1zxy0Pe(2rIBs#`|uw!r^vM6LUyVMbE zaZ5__WY3WFP&Q}JaQF2ylkI~KcH3j*P7AGdeUdut;*K#Ed@OP<`8>z1Kl|KL``j;m zzJ2(^zi1a;da2#Lz0!X4o$J{N?_5yk=cw~hv*aOqn4RIzEP#^ z_>BP(`EkMJxw9AB-U`Rzlcg7C7BNthpSfp{8Tn0I=O;*ai~HQ2qnTlG3fJOtBr>Qq zL^3A61IXst=Sll&8+mxQv6U7N$H?%`F(%>ekX>R7Id*1-Q?t;ayHjm#gLyP%5c(Xi z?>gS6ub`A7EClz?jAWn7*A8SEhcc*I{$rAd;=5v#Pukrgy*+uB6Y1BbW=kNVF3 zgV#gY#yXebW&w9?OOJ{#?K$b?gc;NQSx;qD0fG>K1y2-y^6nBAhf2pxR)9V_163dS z?wn7+4FGg>IK@ZV<#`%-l$_w?zS!PH1%Z{iPg)w1gAQ+DJpJ1bV5PQ864z!V=#yYcucY!RF`nl21O`5bim;3D1dP7&NT&U)w4NkTG=2U$%ul}L)srB@ z-@}v)yHDZy)PPe^#k^k7p9mU!{$+6uBAj*%(|$VSL{`jkpG@GpNU~Ob^kJWjFW@l8 zh9S%CZ*(2+su%hU!}VV$q2+TzgezjxIV7Gw)WF_ODnQk#h;l2rP`;(XiK~*qyn+vGN$1c`2Z`9J&g2)A zn5GlRe$!_VdnsfZ6(`vSkHquzb-?s8sK?Jz%H6ThoXHV7A{xf*_@rJ3P2mz&mxCq; z!e9h}KJugROMfO#%iH!IuOc8^#_d}jEB$jEbu&-Lz`LLxx{MDxa&(l$3TKN&3{!UJ zsf}aegGYMK&;hU<9@6m$&8B6VBwX!Bm2>eG9MTH{^WX~Xn*4NNpXA~ndcmVX*)*l0 zs4+$USx&su;WRB0N|}S(@am6!b?Suy%X(s^bHc@VLhG~oq^Ju>i+vTTn_36J(!pu1F zNFKe1N8^_(TOHpxXm;Yv2_6ki9@C=XsP3R5bqtY%?+g|#FXE7#`OPGkgCw#bubi;S zaoFT3HOg=P*$FNFkcMTVAAbljyyM$41J(&$`{h2BJ$}KJVB-*Or#c-dAVP!FR-yuz zy4~m%x7-H$PrnZJ;63bVm@=N&J)ob#*<2+`kfLO)KM~Cth+2SKnIe1W zL_WZ8j@`*`nn(ew?U_jR7(P6#Gre4;IuouG*umEpZyaS`irp0v-QpnVh+|>pFBvdj zo2;hvKJroIJTeUyim212)*-P%2P6e6I4xJpT_%`M)8jt`fD?z@H2t(Oz}f%I07=~V zn?F1GG3Zkkwi}t?#?ME2R_t<253=NOb7D+;#XxVIfxNrx+~Fz>rc0KBTQ?+j@BkFb zdIKwXet7E){|h|nmT&K0kpm|@xKlvF4<7tdU-T$mRW6NHPYewt9BftK6);E~w3a{Z zR%8*tOms1La{^J`di0m|D~m_W9}E(oD3p!i$D_m?_*H`SimU{P2>CDF#Fh3AaDH(f znRT*_=_YWbP0(;?eP(d(5q>dhk{5NEiCc%pT(Qk8+c=Yb<4jy?K=7`w9GjT<4$_$T z4D*L6{d9M@_x}R^Q!!OGQ`W_a4)UaUJ|(IEFsKMQ1*2}Pz7!BvScN)|HKqPpM3fjo zmJTrZmvrz2@0Y)0wZDs<;V&tFl=De#$6>09}#T_}yT>3^MXooWx1{ zk-XX#vX}`$_kL>YuX<#hiQ-NxL}nvb_}Grxf2jfb$<$34X5$_%SnuVxa*QS-5B^Jk zM^D0vR`plat>TsO#3>A1r(XAPPTHv#UC8I;fs1XdoYu>fkNpJlFYY~8Q&^Uy=^}t! zg@JpAM!<5BCK6`SGPO4JQHkKMyRhI5I6T%*BknYdA~gC)lSZU%CYJ4s9AcEvm^H^y zk{*e#M9q`tF1x)f*BRp3|1citx}PdjKH_KoET{SaNcstr?k=WMld?@7K_rB3*pSC| zMZt<6zkwrf!9^G>N_;2EE1k3mxWTNSX(3yKmRXt*fb_8pCZq$*SO2ZALCIS_y5PUU zD`b31JhNBfLv(~sy+08<1Va!**oJ&Nr?0`&iEQ{rh5`cq>Jcv=7u zH^pSSrKO*X0=z3T_t=9#)J1AXpyg+Vcx)HxS_ekyGR`umKCGj+z4y`LwN#R{(#6iD zUF2_pQ+r%+WPeIypY=e4l)L+;=tE2Il)4@n7jDW0tk9bNhl{bmwa-158g?XZ8k!uR zZBrKxNt=)Cl%HkSsN;o2#3f@x^oKhyq;(df!=(Ku^oi*$GS))c={JxkbcvgHa>zY( z*oCt8^Ucc{=-URr3yiHXGwiN)x9<`7Z14K##8p1^Ee`51^(%cJ@@*aTm_;A!=mhv= zEUDr{zNnYk1;|9dMrX$f(U0aCh#ibI8UwvIRdwPbKig8Wl*dKThb&m;V$g~QX8VM@ ztcc7BPeRE8ysd$j8ElHqws$yTAxjPA85`jFs#J#xB zoMmS&ai56Ct71S$+tbwzw(*<^EFL58*6-i zu`Ry%3cHjZqj$G6;k(Gup$mjl1j)Z`rR{_Kl0Fx7v;LGeOU^-uGDBOp!Q{5Pv==za zH-`|&TlnOBi+7N3G3K?8q!Ed3Gjk8Lsq8d!SF`>7Rm+h?l|5p>tKydn=8#-?%<;@F zPN#jidhuN3(ImXP*Bz?%`7dDPeQ>yr-$YwOZqF@Wh;hQ>ljVC_3HiS_$?jS#@Me(? z`4aVG2BW=3hEaBwc_ozNk4+3J0FYzLjVq|Qm(})dk_CJzGt!jTJ%{bDy5Mw)1qdE9 zt(;C4;i-o8Ny`XvXSo;D9buDG7!jxE+x{%O->{arLwgZ}-8}}7Z-2n<%*!ka zW%s9Twq;>IW}f4x@3G7G`2JzL;?c|`=2Z*`GWCzSm$OIh`*$=#v#Svq+`_o%{DF%+ zE-cvB#*KW4cMATv(|CkqZ70SshEcY2Ebj1l>m6ic9KLGwK45HT|In`5*aU`77Drn% z(kEe(YfB?J28sQB%}&ZBW6~+xa%2F*;}XXIy$9^5B+dcbcvl|0*zUdit@as99T^$j zo^0#yO+%TBtibbltlho8+Gad@n8gJX$o;g(VUyQ!1k}aixv~cuXVqKC1B}Kvi%}WF z@&@(u&dMr=*#}vSvI7t9Kip{_+`0{IPzat0j4|52Jl*Mg*Y34fzVOAiM+VQ%pW%4z zb7XXrF~eaNa&D1-4Q2i#8FENTTJHR13~HY9hcqImpL_Xyd;Q8}`?DWCVqw8(`|4}c z?T_9(V1Wo*DA-jj8g-Pq_Tj_p?Z(@i?f3tHox>c*?Gg2kM?8H>ee4cU7bJ{esIu?q zvGXI$QPd(i+{n=pebOwxMDV}%8g&7_t+4=g4_T)G9zR^SeN=CZw2O<=+&6#NZa$`uNT(>Ly})_--!CW(gDeaAVLyp? z`rYu#_RK1Q7j*ctZYXEa!k_i8+8Dxwg%<0R@V=@(QwpR9x}+(({vjJY(ywvY#T^`z z{nBjv!mDT6$TR0L%F5`9efL(o zcI`pCjUjdA;cB~in`5f2GxjqOiDitc#|-}cXG<|bM`jus9(lOg9zEJ7&xnos*Txna z)S0vNYrgoxLVM%2i|x<;@KL+i&bD9s;-&WNFJ0iO98M)<=j{Gjj-UqrG{?hlvuFV_ z>1VTW2>quXy88SxZN@9?V4l2oZhMTz_AKs6j#<8N{sJ-x0_buK9N3dmrZb{|nr4e)rJ>=Gl(hOBY^g zYp=c5c2{mNe}`fBU?+3BUU6U>@6}+VjQJhUyRg%{k&!z7EL#&amzJ^eE06iHEPdxy zGAWFGSoMgi*LE;0)d7A4TwwYI~`GtM@Tw}Cd)(@|Eo0*=a4Vd8g zcG@rW7fY-{iRlZIvW9N^mX60fEhD?FsRP+i0Ff?OcEtIKM=$?G=F<;=;}@ zMaHd~euqpW7Wy8M$odCA3n=9yvhJz4e$cT<37!NNc7sm*gp~0j`eZWrnNCrWd<5o` zfTB5hh&0GEzCC!KYX6-8JbV8h!62Lv-GlHxVBpcmIC)E}!N%;tPeK#WF-_kN(NplL z=qeAxSo9>?u$O3l)*}N4&u~J+{sVwhj+9I9Lz$_@2eEVvqwC;KdF8`6C%%LD!k?ne zig%jdr(lH-niE{bi%&oa`7@s z_1`_*fUg~0rQ*88Lt{^H;jNGpe4kEcmjdM!41JW;XB+L3j}EG%y2`XqqYQF1c3s)` zl=P_jw3YqHKX7({Ec{F&$OpfOXxprT#g7vi!xJSfekZM5X;VAWh=5-pdH3m=zJp^s z+mS!QKoB^a2=BH@uS4cXMOUMdE)B4I4EWs{8G;B04IPLYAc2rL!~!mpmoz?33MOyB zI>7K=k4GG9;=s_3Qtsq+1*!jtuHo9wk$oyxOpS1_ivvJ$_w?F1NS_P8zRt$zYR3vB zDSv4oTwIpZ6dnF~R+x@*m&!4A7#lUnD;|r7cut`B0G@E&=EZ*#E^7q;Av<$(j43b< zY_l^Gw_K8zftXzU^>k9#jzM7U{EAro zz^1gsN9WpdakADj${T;|k zOih9cr;Jce@E~PpZ#w_s0v)sL@bTL`^swL|LdwR0dW0XUU8m!KB9GJvv&43=Az- z4Zn*JwFGVlFdhItt4f0DvnEQo5|Q2gri+)4lj3$z?bw@-fOc=g%|rb7nROCfpzi5m z{gn5I$ee@6btWIO<4}30PPhu#mFi`5bX7Qc?4B|}2!{u0b<7EG<%4B^mR$>ri;Emz zwaS2=&N6H`yS(VU0)y1Y(GwnT?M@Y5pg?xvr)l@~+xlYJn?rMI7^w4<>>^Egs5|I0 zckwEH>zMJBQ75AOth^}K3GpZRVz3J*Lk8?;H#G=_SGQ%sg{g`I-DSyItjdEtP##X` zsxq^ToG>$8%c=VxT4h^Q62y7rqdQleWXl2!5T^WyBJt*1(O18E+JHXlB7=Q|O*??w zyv7h8edY&nDDXfFmsoxqk^k}<-_#`uC7q7F!}S4ou#RX1awceyaF-b0M)UC{&w``-?juM_|5z^Sm*h0M zO?^li;a@y3mjC#cSq`vLc76GkpZth{i-Df*3GT8RV{q?Ld!r7rDWg%_0(4<^34q;+ zCGSxh)zB*(ZMB9$7mmp$C&X=oU0`7=-q4Gd9Z~zN;Q0Ukd0KM%{j8@CPx*&=mZcn( z*QXzSg*zo00u2FHOuSO4zDqI_F{L9ofy7B^k*4?};KP1`P>z`(0oeNw$7r8zYJ!?? z>y)&5^sbU%N=^)!jNL1R%#b?XO@vBO#aD++AV<9%#vhrs9AlIv%$SzqNq%p>%c=|sugjU2DiRU|Y2t3x+dU*R^;z>We?1RLQ zyL=OzZ-a%)2cf2$z8~ncz-*+C3*(mTB;n#|`|Q0EUxbFBwc?LqA>d z4*7i2Dd%zrs}0ou)6?+6pXLJQt{&pkL09W?#ngh z!H4J#F$Z$o@sdU#17dI_Zyt#aY zqH`^!J5-&(b4Q`ZD`h)bk`~f*C+seLB#}pg=nq?lIT;7fEHEKGRfon%Wx$0GF5Ysn z;*q<0kpp)}Y3z|6jRh`1I#MQ>%rt-Y7hD9YE*j%+O6wW4W=ul3O3-?>Nxt13EI*Vz zcR31<|nE7Bkw$_)4qv0A7AE(>Z`A|&Ug^VV-H4<89XY-N^E6`8MyBew<$GyzIvkiR?-8MnEi*IJw@jObU zT3tn^(SZ**CfG$;8k#kG@$5nX06+jqL_t)Rk6?hZy^etxxmrgiH&|r61b;4J5L#s% zV%@Ur&Cj>F1;1_AlKqfq{Tk&c(F1mu z+8?tohL}WFstqpKw1uQ4=WH7-PX*C2hB-EIjVtCu1NdXkqy5@*W9|GR{BhqYpE0|Sr)TG=dn_WLUTm*EW)dHRAUcJsl9}_MuCNef zoQZ(V9TsqKZ0ZI_{*E0^!2>iEM8_bl@$zswZK?~$7r8fj`e3$=KbUOKa1`pp?%TJcT( zaj^Y7=UY6{U}uau6H>a%uFvnhzr{{ob{Mi|Vr0z4uJ)5`701w-+imRu$5lf^7N(Fl zcd#C@6OjT4t=U;lT_2-vdzzl(vLC(mUi-nn`0v|We{nqqZuJo**Z%wi491M#KKtSh zi&ekV?q0v&9&^9-zPbV3<9x*$;m7cZnnn^(X$Q|-sM|>U{t7ycMHB9Fe)sk+Z5rbt zbj~}E*a;7=k{{ZMq5Ru+M1g`yTz;x&<@MkRucQ(Pkr+hVfVWZjqon;vJn50QfWZ_0 z>|?1<^4M-FJUr0@_=~yFl;Kic_|0$MY;S(^{q}H;lPy@AfoOAlw_`Xk(QZ2Tno~JQ zYwiABI08K=#jTaQ$TXMIBJ;tjd}R<}-VWPeu%P1RM{8~M?h!Z6y2ulK%N?%ws1s%( zRI<>?_Vez?2kpn-zn_IR)S9$QlXM=&34i(WQhUHIQ;WLi7g?jdL&jIpL;D+CHBfSB z+o-^sQ(7Vxo3WF2n?-KdSv)g(zFj$YrM>ze{Ytz1n=iM$w?1f(e{!=uVs#Jdrp>UE zeRA{yF*TG^r#YQt6g~c#*I#W@?0~iISfI`$+YdW`;~cteuU)!w8J=P6CI7IBKACdH z-PPPN?P8aU+zafEa?8dOI}YhHJ-YM5wsPk>J0H*ik2tE`#hY_yTf2O8yIL+~%{kfEt zg3~?n*M1lyKGKWUNxjA!J`}tQb4ti*JDC@dW}3jvBRdB?%Ru(=$^-N=az?@0|FYe8 zuFk$@HVx1>xyRY}qx3DMVMJK?FMpl6&gn?j6O@+sK<^=!lQaaO30-d;Qr4^mE||zi zh!h!rRXs#p4P)KHW3kP+OGj78V*0~NI7|Kc=FT1n}~}=eG}`@(`fJ37hawX9?Pi`-vQVo5@rfH4QxCq>ZFg$v~Bc9rnUs8p%Q;qq}r#a87oa znDR$?DcrlRJSC3ClK4u#FoNMsL)VpuacQ?IKzR5S82tMQ;C=$H*Fn8dUsh|0G&ke9G-t?<%+P`=oB*#MJJNajz-Ie@p{tIPwJ!@&;dPw z;2x$%pOZ&ahWcln)tLCHPl8;HjS<>OM+TEfP2^o8R<)VX#~{>uORP&SUa?|Z7Fpnc zJ9LK8>?&tc_5T+rt6Ny#wre4NB|@F0~2xN9JE!w(JB8fP6GWv7`C$qx?vQ~tcG zgN=+rx5d`=+Y6)2CBE3zIU$fZRVw6xIuEJfPzIQ&(d~emw|XO!OK}5BboGW4E)c>% z68Q=G(jiWss;fp}=&nb&dF&q(8_{P(aaWL&T3M;dw;g?_tDI=Cj6x)7rHlqNl7MLt zY{8`8>POn6coIM)fAivp@W4Z7<+SrFu)vzPeI~QhmWAg`U{K$!U7-b+jqy$u61|r?|Te^r=QyhbRZ{BMg?|ld$1ajZvIPmsS_LINz)h(4&0Cr+RjmPmUR5 zQp-g-u8_8_c$}p7D0zRN@tmZ!cGx z!2D+LNj#5ob#aYy*bfG~%>T?+*i1e?@g(3AzEAg%Pw=k(1R*kc@LP98kbEbZL0WwR zdg!iziZKAf->1UOal-xK5vocZN6#yqwyVmF*} zcjSC15B96NoI!o%HZ3<3&{cKB+wr7}*S!KSCk!3<=?HiihYxjK(oKwl*C|B4pn*gx zw0Fi&FZ>1U@JdtR(^LQAa$@&h71Bp3Fn;^~llTU1{F##n5B(h`fr}S@7j5EIcRAt1 zUZeB{`AoW@D<9+zz(HJthyDbq>zlvoVg+uzlT76KZ(DtRuZ~+6@3_Hu({WbXD0!)k`#%HmM zMn(-2%Hk}OyXv~_6^|gLP9T4lnGIs`-47|V-7qi7aQupg5-x4#jzwa$<=#)OG0k?t zyM_%9^1#)X^+bQtMZJQ7_g6ch&U{$QN+M z=dM&Nco0U%%Xhw0d-dnhu;-nx-t%n#V4JqkMFd_0Gt17s=wf)i&d!t_b_?g^+4)aA4Z-5J{i_F!Xxw|jo%_| zn)$U~KFV7eviyDeGOW6!ex~iDlj@Pg^Bg&NAA<+JS>Vyb8c$=nC7#-k_$a@Mouwx3 z7;mB7yJD4l%Rz&-aHg@vn9oy?q&M_Xud;~8K#;hMCWc@>3%B98A;P|nxu8`Ao8j;n z{Um-3#sCE`8Lqk|QT;Q*PEc$^s~>*YcAve__7~3+yRhxXunRpT#!!9nd|PD)A{M0fOFzHRetcuA-Q8eJ#18LK=3~@7#EoG zzw{6ooMcU z)X|Bt-P~z=jtzS+9Z$8l9ZFe8;w|72xfWf}CmtVWwe*Wd9cK+OW`{}h!bl^_=`LDm4KJoU8tL607)Tg)Ea5$*&R5>Kx~Tgy|DF|W5R3E1%*fZA@%5p-F*Zz z{!@Oa{?rTm_J6MJtZru8aIV0~FUBMvhE^CvFVDWa`YWo2{ zrIRq{72dh_uz7X$1`9NHX>T6=-?Y71tY+DD-?#5P*S)vquAb+Kq$yG(MUj*u+L2-< zf#blC9mJ6l2Z0|P0|}CcATI%uhXBcA5WqnoAn*X$P%O%_ENG+#&g^bByV(Y8rVo$Agvzu$kI^WCqio0Rn6U3I^6&faUUz4qE`uf6u{f)8LK!_)^7k8GN`HCB~> z|NBgaJFiZFeG|*cGR}STz@(3>?DJ=T$U61L_gC6K`Nv;pGM2F-(xtUQpRz-c1tHS0 z%8{^dzj?m>;g|jtne$X5(nKFvXS`Z~rV;%1@sR-*ih!LqUVD1Hz4HN!Wb9AjyTwTi z_Sq*{@$>ZWf0iqm z05Z4$=-V?SApDaAop{wVzF97n5A}uAkF=Lxyqevn2joM(cxAx2w!Sn196LoJA?%Pg zY#bXbR}Qel-(9(Z0lRQV8-q|v=+f&KuAwWAaU3@?4nIdHsP7)di@fWmnV37x)dJT! zcKGxej@D*T%Lo&^i}#Fhye~2a-%nyYdV=B_ZAbdk#LIXS`S)<&Nfv3WgWEFJ4sb%y zj7++Chh%P0CR-fyJh69@1rBrV@Nstao?d3*&O>eL119`$ue5Dwy7uxrU}GU1_KEU* zjfD#%Eb<)VltWL?uspRoVQ6i)M*Wrr&p3$!aDBjk-HE%KlVU=hh5Wo~ha-ONw3gO`cr2OfAZ_xq~Y7SV;1 zOpc%X*iUnu_3ifNg^QHuXgkRc=R@?1o0vAyrF)F|Ewac5bBJs+t^}QZf6{*I-0VVh z!|M7Pdd4MF*!I||F0@m?v>RvUICTMiX&E@qrtK#UdyMaRT>#5!ShU9uW)^sO)t^W2 zM=SvIM7-FgVBYtX1a&Zh)6{*BSRcW*r6k%E3vaeq+_6VnJIzjunI(A7xV$F@W^72A zgdk#Phq0oQ|0;^!<<%TWd9q@Kk+D=-o>nj`p6^2RPSm<6Etn#JFjmB%%MSpHK{pt${Z_{5QH4R71z70+@<)Il>crB!KM&TlNVlW4OJ%^K;iN+Aum|xH*Z4(wpXi64 zvRcKMLI*SH% zX+>~1k$&-asU`3040O1F*wxDpD7(_VCNGLVnG}xF*B}CwmJD=CmmMuTsv(G0(n)Z` zZ7lIs`O+>qX=7X(b71Ts*`iJWx5f(X4RHu7jTpZUV8p26GlOBFr;-gt4&Kr_d-Tyd z#)VRt$==XN8sy6Xqryn116ouGHd;(URXPxt63*<`qUBbvt^$zOL`IT7K2orb&l zaaEdwZpo*;Lmj}v_V4Cby{%!Dm6;eW;ZySEig#9f0h|FE*#)fS;VO8klmD`!e)LH( z)stUr^TE62pvw`^7?*IJ3OcW4UF(BDp@w zr_m+PFw@cb2u1>8h?IB25*{2yQy-Ks3dM40$VUdKSCHh<#(&3Sx z-Y==dGelTNjaqO98g}IRucD^&mnft8Oinug{`ZMg*A?8zAb#T)6 zO$Mpf);JEzfmXgfh|Ap(u2h5z47Sqg;A#2hu4rJ)mi(uh(Xl6mFvpZE2fCyTPBLtn zc{YdSG{zGOIUxz6^TboUqVU_!y0|s`vkRB{>)`7FcOgwXnFJjU`beh(U#J5_v^wG0 z;elRog|hOnL#J+%K{p4!q60vhJAz59^bf1|;g@o=X5#2J>6nUqkvC~0y&4ph$E+H5 zumYMKeBGw*T7S|}g=RD0#I*wfcARf}?3ugff{zXi{LP>BhvZ83c)_V7L{Ui(>k-21 zf5HpaUtl}``a1e8T%Gn2sWH2!dRCWI^P0DOs|t#MfZX{LFnA@r4V!S) z3jeoJ@HVG&=yuE1R>Q>>9!qzUyL_Z+gSO-btI6j*e(%_9%4cnDGb`ff=jYl2M=KsO zn0SrB#4QF^7C5$fj*i&%8#mepE2cL&x-snn_;Y+X>5VZFY@VzKPU<@$Q(@KNw#c3A zvJCtBqaz)+U|-MmWNM>)KQLwr{bLfBpKJ*`SYFT;0$ z3?mYzM{|dNALB01(5DSTn+R_mDECOqq{+9sL7PVB;EaQ1C12_R2k~5FhW&%_<3PK+ zXxCWTo|VmnIq<8@j~PUFG99P64l^H%@FE|~PYJ6Ib} zLiKZ{{7g=$V89yv>>#t@4sdA8YFkb-_@r$oDgK%1ezH^?rkvCg7yx|q9d^`I!sVOC z(^^k=nb6qRh{UB%@SJ5*!kyx*HHhwU&|gB8NoD3xUClt%G|1H39wWNVZnS;cPxCj+ zWb8V;5vw}{ruddmQ@~C#c(uZytFqWrmjS#$;MMt>7mr}G%{Fb@8&n~?wb*gQ%WVeX zos=?vBzdRnGp#@GhWB0pOeEeCPb#ZD3jg#Zd{Fm|kB5Bgk*G5*i5^Yrk%*I!z7_5> z|5SoFbF5Qe9_5~}3eLlJ+wdvw5_BNj3ED{-2Y21MAZ^TD6BLXKs1}!xRy^r*c7$|k{T`|!) zXunHb7XfIeStsSV+!^p6zbp{N-vxCZpIfJw*yg%85bmWiz)=Lxg@Tr?`p0MNfAGn3 zom0UhwAZ%N^3wt1)J`%I1 z$Na6+rfltTA14VbNkxxkB%BsBWdo=aN9kYkeRD%)vB5+q{6gNnqGgrI{55ymQ8+G4 z+Tt$6UF7G?F-QNczuJrH46YX;dM3m1vqq*?q8H^vn21mME8zuk$-@ZcKXU3pc0+Bo zz4zWCE#_hAt7eBgCW%W`LFcw}6hKgtfya2Gt>X3{}jP%=lk!hcWfaZJD(uV@QF?}S)FG6||Y zp;yPLODDOTcK2|iy|)VD$^G`|$4;;#ljB}FzWTK{-e?=_>UH4ZjT@Wo%mWX!XC64i zWbf(7;Q^|R9zW7Jfi>qyJS>46a(B~H0&wcJ>yMF6RJH0g3?!R}2V_Wyz zMee74=;3qi@cixe#V=4!6SHmY)S?&L4c26%!k6;uI4r(C(PXAv~O* z>}Hv0-)B)HO=a6=m$P@=9vhj4he)&f!Q8Q{c!%;+uHsz<+8{Tty}Hlm5Fu=S-FWm{BDj&!_~o+Ewq;wlR? zJPktILwer3aFNMf?hEFhb;~39?OWu8FXUB)s~sxeJt?5ZpOisjQ_pX$D*t?=XDmr= zSWxHwTl);^-BIpXwJxr)@>l<9d-&m#?FPrG|J{H1U$y_^AN^0zt9?lwBoEqnE`a9FUWt=L2+b?%38C`c z3L*ItZ;%zh$_Hy97z9*E6@rEwGAqBSlp+PdN(PKZrk}bDZ1L>B#o7PGuM5ym=V$rz zE1eKsq)DT+l%K|BDb0Z3OUef2Uyq4rmsfp66x_ppoqxguQu!7Rbj26nI*-Kffb%YK zxcmy%0mw&%#DJvAyZGWUl)m5r1HQsjDuC6OF*-C|xIX2&q>es_l2nYEbPc)#3S38c zE38W|pu=H$;JOSMFG?6M%e;uGgv_616F=zglJ9|d_EZp(K!68y^brF#fYf&Y0}Z{* z#-E>xb(E5bJ5rNGzVFDpu=;-31?L^!$Lto}u`@mG=al7AQieOk1Lyc1EhIO7+8c~McO*KI6a!P$t{chLt1K=BJRE5V>N zVQ~0QcnzE2FEn&$Lk0oF6#%G&^H!+%>M|f7`t$=jfaYc3j7?gJRt=qvh-Ei7!zz0k zASW7ExV+TC4|h>j-lg467kYx1vfJ<@+&Uy1?6_;B*cj68;V)L`g)Vhv22Oa2M+40c zu1?j<}+jc&6vTm>nu*Ld3R-;1k)0;1=PRJ-GQ7&d_NNmtR1UgO^f z#=Cxcuke_UF1;a$BR|U$#6?p*6CHnbR%GFhi1i^U6?2FzX;*dyu`bau?yx7lq>;eF z(dRpuf>7BjS?%qah#9D)Lmi+Vk=J52O2R9}AT_L{px|uxyw5dlfQAHShu_*FX3!np ziHaBwKh)WYu;;6_N~wcrRK` zA?TQFx!Vq?ONDgMFGqfYyNZx72I2e&tqjQf7JCLtB}+KVO(~ZbV#+`D2F|)5O@{j{ z+YT(!FE)|Hf!CPE6Jh5nUqo6$$S-o3vedYrDS-N!68(1-n}>5IKq0zZ{z_OZ7Kcz zbt1Ur#{Bn_TLco8wDA+td}n;4e3@)RMqDW$NM%xN#WQy}B(_m$_x5NeVs&-fda74w^DYreYO^)hlc09~Pv@4+o@}M@gDQ>|R0|7&~Xi;-n0I@uywk zm-*k=Vv!2@*LE`?gN?>1@Sx?(><U;mY7I;W>fBlnF5Zwp{}PJ7hghk;k5qF6y4LFH@W-SBbFy7mfF>8D=EK4PE$FQevhh#=hZi=QnGB0 zTvu}B&!bS?O}&@1gR4FdgZiFU0N#qjyvki=CvwGiYEHg|)I&hI1o4zj`Wd8UoU(0fhc&dw+& zP8mdAALDL9@;Am#&>3v0eHLwAyuQkUo2mB1x#Mk}1&LcMl3V5&TPHd0IX&N={oEJZ z*-zY`9hvtqX+8JEUv1C)wP)JM#vivAFRZkCKGoWZ1>|sMsoi>?U4%@cWK0+vY>~;j zRpvQrLPZ{Sx|BTGJ}Rf$1C}40a4kSaqX=#1Fn1OXoBPWCWSyu7GCP2&O1H2&gK54Gpsx0e@7vV4E%VfyJ&Moe|U2FH;x7uF* z#@E`-4|dw}Jh;EM))wH;1UtqrUW6eBCpqqv1tv2mI2zqcezw}PPo73D7g)&1sW#(_ z?EJeBK6paZ1QXAmrnJZ%z)s3d&}L2{W4Bo_=Z?cKJ-^yMpnY)B$oJl!YCpKAB?c5Wsmln9h2Yv_P<7Ew%WC8 z*O@4MpE5&ENb^(6E>`ERT8_jXXP4{j;S47ru+ZuObQnjMZd{@saLM!)CXX(%i|vz7 zF0|D@x!A4~=aAj7YwR9Aj-lX0jJy1^L`Zq3Ozm4)C)J<($l4^j^Cy1pbM3Q#% zv5p}`{3m5)Nm@uh;wC!YqB)Rf`+tt5?5m^T_r7fclXc^BOz!NhV~@~(VX@H;iwQ;! z=b3!sj^-=K2Yo|N5k&klW)@*auWCL8J83J;vbF&O~&=?gg?=BZfG6r}5YwuZY9 z=#@8CGWk8Le%NHutNl;=U+lmfFmd_IUTP`#?F0I{gCjPyIc_ z20wK30{_f=Y%zn3BxNj=P|tanyLB_aR#)grMr5P$_%l8%44hY%xn#jR)E|7{Z2Rm_ z|4jSRZ~O`U^wIXoAOCU6XQf?wt8?aI|_x}*zl|&&pp)F>v4uUc$WGUN?AP0S*V-|*p)O9$v&h1u+u6CzNdxyUFSj50 z%oFX&PkoZ|rA&@ZvVcwN1c&TRFV3{H6ZcU`_(Ml5%&~)g) zh1+ZB>jUccrS{sl-fEYwue24$#uiVVYNww#(LVOflkDPU;u$@(%ZU(cE~L16xqbJA z7u&nvWq}K6VJg%1jkO0KTBgpUA6RIz&&dhwOU?Cmr?}H@iR%F_a>~FucL(pEf4hD2 zcYnW~`1ZHkG^Yowv2f*;*$3OL2j<%3wTo?(32GNsvy?izt=dt`h2ys0yWCz!N8e_# z&U0^GXv-ABK77B7o;_qC_vA9V>5)&igR!?MP>$p0B%XcRxU+3U{3_{Rr z$k9eq=(Zo!?TlN{XPcN>WT6aWMeOJ;o4}TYIzS!MX4xPQ^QX?Vv4vCUW&{nqE?`0( z(motC*ATsKJ9X~Cc8N*Zjd}8dZokg4{gV%Kf>YNyf&LOB*c2Ib2w6t2-?6yvoAY zllQgPzWmL0&nP;RRbms!!RvqUhg=cI!YlN`85ThQ4A z;g^n|g3mkjqhzd<8l+Vbv%*M;$Ir!LHjpyiKaH#yZ?M33>Q~Y-Jsq*i4PNTg$`P0- zh^q7z$6tWsFJt}WS-_G|!GV#aidD!2?ws-au-GB`A+5>)xeA>L4v2IWbRSe-1Bkqst}f91`wz%c06*d<(YiRpX?z&Xhkfow zXZh)b?4f%e_Rj$PrGKETFDnrb6Z)6NH55VF?D(c&^d;1nbtT0Y=_SbyR#Hl;%im5! z;>I8RM$AJqyZb1wj`Yfa{7O81%PT$|XuK-^AdsN0-gYs2>=~>uG{V$l;5mpYWTjTr z8_>rdg701vf-&R24EW>WV7%JSMoXsHFsaij32>94x~tZStxC$)LaJb2(@V7N~gacVRD0v4L&lu1eXZ*8+=yw@Unrf9Bal5iqJxo)d+$0YW zDt#HWNY)Qop~>;77_c{Qa{L8h8j*G^ot#Xe8=H9Krt~#0k*Y zCd}bY_9odVq_Ls9nmg@m_sA7#U>DF3c`Vg!R%PDA7#yLoa$wy_iKLzUk)9dDOXHHv zk^mEoyl3S*BQM^GXj@{K$Ku*S?yHLYbF$cbd^J^dS#Tr)@Nti}NG|QMa>~ZcBX(_M zGDrj;WK$-7j89m2jjx?(o%t%`+ys_;nOO<6DETT~fbCd|5qK4OsbSb5&tOVstU3e&w@Rib(63HF^ia2fS;hEg;doY1tC#w+ zs{B^k!A`u=iIraX6rKSL-p842@$GzYQ68{=xOZ2 zojd|*sC=*Ls}|scIOba%PN4cUYVpNiz6CR93JV`~)HKq?xAk&7I-*M(eEzfUx#rcp zIB}pHi&w!7y_I@W(%<|^oI2ec>oOolT-`v%`~X*W)C`18c;W*@5V0vRU1*`)^B#zJ zE5{zs8*ljOtL;OMk|uq}9J3pSi0(YF^J>|;f_NHz>EN&JwS1XjfI>`?nH=)rAeL=$ zm5*}eKqCWH>St(_Z?ZBSP%AS3#bJDT=T~T!Kwa{IuXy>)prnZ##9xQPxAN$47(Q^q z``^qGN&ZC+^u+ack@%!{6ejd~!1N=J6*aONLMm$FhZ(+E2KbwOWh3`d;$6Gl1Yl54 ze4$Zr28kF1tz(-BhR!{DW_#X?$ckrqqC_}=le=?xm&VXZ+3YggB0q|5tO}E(+^zL06e;cVt16=`rv=u+>QJ->o}h@NoGI ze9d%nUOb5$bb-k$p@a5}{2Zn(A-7KQ$s_U}Ipkg4VVNnrS;-8aeHVX{;Z40)@BR|b zFOPVFsr$z#e#Z1=Sf5zOD?a|bc%0j&N5f+*M5kH?#HqMIgU1-b47}e(jXtE|53a{q z@%RQ$*I-5WWbJietL`PTwpAj75yS?YQooSHd#OXae1i|tfkYJz5F5HAz_j8z+}&4) zF#PGU3v1o~!OnC#`gvCVflo4hI-S3DD~Rehe6j4zdPkFa*k-5DA$7;2bCr9`#&8D; zr?`vH{5t4uX=3)7I+MUoR10Uj02~8{{h~7CS$N8eWe8B!nb>7|pl^Xuc04Y26oXm{ z>)vb!J*v?v+r|ZId?N?>18&$EPmD)SpPqkmwRj_gGB6`83AS{MX=a(I;V=5g=)@sg zc=#?{Ip-D}eC<#0Q8op)t#J2wzmUL%LeWYj1Y1eBOR19Tu<;RL1-r5ZOgZ)F5s19Y zuFB9=c`a!drUx8?&#S=0VO?aC)Z26kPqW4Az~<=kYSzP@0^>{8cX=gV?;TY9__PhT zE=(f_qIZWvCg>gHMpt)9ia5A~1Ds9-*xsR1Q+M2rw~k(yXRGee!R9r^EhghlX_J9? zC#}*pNfU@oUl}nU*3)hJC|A(=?&h^DZ5Pt#u`B{z?d>Xe% ze;Yf{f!a`O9{Eci@G%d)9VJ!snJB5dfyM8n-^%)GaHXC>SK0?~^fsIEjXMWYMVtQ} z&M+u)w!y`i-rZ~4wZj6015S6+_N!fIw1E(klZnvL+79-~JWZ)e2!uHC`jaQGwt`NU zY|@W%NZr#L;W^jV*&Q@K_ePt0 zll=fK;Pkel`ontrX;VtfG=9qOCEy&{QoNhA4Wb>g5ATc9cKp_t;70ZkaCKKZno(nA0 zqb@$!z;4p68s{kPE$ZMc?tR_op2yg-V6YBNI}ya}K_Yrm(o&+d(*di0}9IO8Fh4%hy7tn9q<;$eWD1T$*ca-s; zQLYgfV|U*yvb3}A#K%PY_B*%O`O3~>(tm$xzCHdkv+aI%-#Ugx5ztAQY11$lsz4>AeHgqjO#Mwwi_%5LsyWE9fd%3CY#8_#_w z@~@3;+w3vo*KSObKaPh52+fz1EY`1cLI_5+iyO9(UrM`iHw*QT$uH5No#C)Zl8wkj295&1MbBAV4dSuDJSNhm@J0~#%$Erk$)H$n;$xqDMiYivAI%( zIP*(0?TH`#bo3B|tk@{fBjqVCUe~*g*Ch zyw^G($pyNVPYH-#BH>XcR?l#pYUtc#F%FZ|6HJ<~VNjgq810>H`ZA2woLKPA;2kE) zo@mcLbx(WgrPtdN&wc?3+Gf|@_uJ>c_{;5kufEp4^7}8epZ%*(v{&D`-Cq3OMRb&l zcu1478e`!(D3WhmMGMC9KJ)L7ay`bFi|~$r<#Gbc8s1ok=4YqdH1*>It5E*IfBiSx zjcXU$yRThopZeU7wCBJ69Ch$`d-_L?x37Qg_4eAUH`Bj;e`TM0n_&TButt0I;BhuX zaBSUGM2@RfsY3^xv;I*nlT!`S=` z6RJ~fof)$){KC(*tM9+nejVL5jjfQ19D5U3aLk`P+5Wv>`fKbazrx=&_=k?>WT-Qb zo@jsXzxfC4lZe#x2Ni4 zG8?xgr9+{x}OYo;-!lWFqu7 zVfR7DI13CeK6I?zWMPzgXY6pZjdCyi?gl3#P~Sc_HQTN~u+%mmzSojylk3;p?B=z$ z%R&WEgs0Q=PqwfZ9ZT7zfYc9O17f4P$PV9JD}}z=rXG!d>ZjYt#qYJZE?i2L&ecuO z?o}d=DWQJ2H{L6p&}7K9wmSm@oY=F?(cFZQ<|r~}zeStB#u}7gbP+PRN_(-!-RvWr z>|#G@*B!*9J&xWxu^9hT@b0=7iP3XOAzS$vcO>RPKr1rcSy*3%&re zK>PUhSFf|!Z>e3nw9}3u(@W32(LQr#3Hx)jEx`xYbhS4=V9^%&Cs=_-K|vh5QBrHb3KIM!+7t$^`_Nw}4SD)K z0IUk%ffP*e2tb&cK7lY9<47EqN$)B*^%aH8D^S4n82h9K2^R2x*vex(1EQhTCn+Ia zJmAB>{*yEYaKaE?De~LVnQy|3VsdF}eCZuw=^XgorQ>&AyL1v14C1J`rqqFl211f{ z@7JU6b8hq=oftyT00^J_S56e}3e9gNml*Zhd-$xfNX7=Zj$V3N^$EQi+{3O=B<+Fs zFmLdT0Y~iOU=LOF`E~TxhyCDZpWGl09zDNIwtp8xUy{K#Om>gNr_M-s(H#FCE+6&N zM;Y=udL?j>Oh<@$jvwFkR!A$kE({DRA@p1!AW$1g7`;3?t!k)ARj&GC=sWzvDc5)8 z8NWVNW7a_FkgV#7>!}b&r6|Qi^&sj{wM`9QrL>_$V1`^Q+}m0i7z0LLyNo;M7-oj!$$e>UMp7&*#OFqLyVW(48BL- zfjk_rQz~EO1OJ?;Re`wMbeu%$Xq%Ev@f&PsEIBZJ;tu>$5Ts*1R6@AiyTiA`uddJ* zM-5T{Bb{WT24JK+n7~*3Dc!?+mp}7hC*Bp8-m#TIJK{*Yk{~T0&G(>wkgnxNK}=<})9CWD)h4IzJy>1UaK|Dfv!#6)(v|002M$NklJpaaJy4x2AqiVjPe2F@+(ib;>vtvdHR2o*JCf&P1vQI=-3#Fj79szp_jI;ftkM z6e&-LEah+hqbG#pPkzcvI~D?Ga11*3F}U;?W8hCY@E9+LEYiUuA9m;nB`z{VdQM!M zR>_+kKFa_PU3dWPzC(y`#VX3Vms1}Oioh1IfI32xKVFXjj7^9GX5`ttBvGMR zU8+nlf{}qs<5;hq*e1bXrQ>rrf+0r-!6Rp{rhJ4qz2c7plUv|jBfn0#+ea`zkz?wO zDfM+CyfmuuP0v3mQDFQ}=DqsJdSM9}Pq{TvmZe-QEB;&%A(hc(fD}pOPjH;ymO;g? zGVP#B$M-bwlt=b-Qv#u>hZK`x);r%USq3z^K}YlIQB>}dcZF)Xg4c+x#Ye=YQ`VP* z=$r^P8S|9ELOiVlVo3cY(Dy8qDS^PiMvm}QdexCr80r#L`rwFOS50eVk3*w4T;=Y< zMX5JU)63+u-ww6{r5?{ez)J4nJMt1L2#b93rM{C-W7I!+FRth@yd_RKty~z>kIIJw z(p#)Tb(gVs<;;1M8nWgteb5*=|MRAobokM`1czJk@8!uf-I@PU&b-DAKYP5yGvA4c zpDtiB80Vm;VLlTQZ+=V*-uJ{>r`0b#wWcZmMB_lUgL={59WiEi9sh6zAY<+_aB_8J z6F7N}2N>O9=b-o47)Plh=MLPgvRh@7mAB&GV?fgyvEs4K99dZ3l%y5ox2uC88BU^9D_ho z?{Yn>2i{%2dw#{=x;}8j@8t<;!Jm-&NOH=PWulk7vS`Bj04lwf0-ileU;B5$MB-;A zzMzDtEzc#2e!vU zqO{&84uR=#2PW9c&g(Km9v2MZX@MGrxVw z*v6#oC7LB-Tb4A{f&Rx|jLK5l`LXm zbT@T}Fej*_$_Xdys&0n?CY|=PcU^_`;4@8m<+rw}?-DDXl!>$fCw=2NoqOWuVrFO?t19cV3+j_q4yJRlOM2ce{&fot@MsU*1n={?H3 ze&gp4agmF`g4l#s1XI;@(v$c8r^{mh$+O~A4D(yD&5pZ9MWsacIE|Rp@vl@ za03nC2}u6Rzi_Fs#l675(~j$#057espuB;UqPOnXb5YWp1a zb-GMhQ^pviT;pU0LI0?=Q`%JG3tZ?l8%9^EQieA(HL| z19?@ZB8)AfY(SiUo8TB{pi?GSlH>#G_t;Igzr)?okl}(u6`w~nI_Tz+_L&d_!wUAo z6gFoTt%5IgQUcAqj#n}3qf?bSXs@k)j2)%b&lOf`j^F~ESY6#C)Y>DwxUFCOPn`;n zoP`X$r6nf61DW@bL>fg+C&R(jNweh(f3@Kj7v|edj~PySw(P_TY+(!z5atRJXh3TC zN1FJRJd<066Q+45^4|B~Xj9AF3rJh~}r zs)Waw;5#wH4tcRMAe^?F_i@7Jm_Ru@eGW9p-voolr`TzDaxN3l<4h`zLi5-E`M=8X z_6NxKJUfuCeD4*GZssmiYZSOsi=Y{iE z+l3Vd``I$J!_3z{c^>2VZI57f2mFS|>xOr*fkd>?x8a9J^uwG;W%$VFc_y;{1q0@r zOg7}GXar68hwnRR=a@1W;~q{Y^Qeua#ljON0>;@5jsX-Ift4v2pGt(f-{VRr>2$jQ zQ0bp=(Hv>*vm4g)w8!)Z#;|I4ktFi6%@)G_gU!6}P`_y!NgrNOw`~u0_J}jh&QI>& zb<%H|iB114EKaq1xF#U-uH0HLVYE9B?SCJPA-m*Yoc_qn<$}$;^Tb3-=-JXWy=xK2UnT2dElA0{gppOVCZu)p?90zx>Onj-5Tduk3w$F#jnlG zgbA=SoX+9tVd^axgj%oJcVt*%Muz^Z?a&L@0mGf>`@!{a=-Mo z>tpS$uU=~>p!;Jd*kKE~OVcj=B4uQ3h6xp0R!?P08)e72umq$XQh}wO8Nqns>Fb^P44O)>ge<}-Bg#_#PGAG8VvKt3xRXrWqm915 zhpo!?B@b_nwP)_xWmhEnniH??UuIGY_I=@VpKYK2rC)4ke)IosKla7{lJS|1Huukd zwf*9M`ghx@-}`^to8NrC{q4W?So@E?+?|GDj5`!;oAl%tFH+POs*wbCDboi^#|d%5ldeYegr?hl=% z4qY8-D;z(pEUKq{%0j82^m+0Q!_r7NMvbnlTV+EDsZyG)LGjmIk2@BG`} z_(SMt(F%I%w}1UNnSk9z#%5VSPO(u=>M&GkP9Pk)alZZ2|MUN9*Exw`oCz|=yF7Kq z0$*RDf4J(xuD$lmgLCc8OKXTWla|PF)B}XuK8#>LOze0?2l7B2+T$dR8WTj~NK0Jf z*#I-%KEW>H(+@w|{_NNPEjwK4qatUVkc`f$c4VHqWPNwE)E%RT?9k5`4f@KR)dwsL zaG~fLi?7~gl6DJPA9?itwti!a_I{i`t_z_}zy@xhNhjC^mm z=fCk1Ckd=ExxGpG9%tdkMEl^DdUm?aymX2Cu%TgVy}fgTWB<{Wk>lGmp2={FPVR>V?Z~gvCzk#RFzP zAuS6^#->hVA3fG~&%fTzKlgkazk!VbFC4R(;qG=%G@A6NeD1fMr2L+mV*-{1EGI^n z+D%MGud>>qt*~#T4KS@;2G6eT(w|1pZ*lzg?$T){{hwq3&5gFlsTR}R$2*N|Z>Xc; zv2tVip@KM~-vv~TJ6c{$fNs6lMxOXA`t@p?yl@fQ6KO>sk8?M$bC|R6{g5=(YgCnX zlf?!udQpzujlV$~q>hOWP;iM~_C~~)Z|dI_@Ls>fI|#(XKXrEjEd z?eRr$AVZhAB4C7t2IIM-12Vv06%qm|3rQgvoc?GqlbuG1%QXIz7!|pDccF`e_fd)v zGKF&Ce-w>=VHeC0pMo$jP{4%9$$AQ)T%V@Uss+EJKuy&2z-I_5I!Zz%(&LaGfi#-@ zU+P0Yv2@?Q1}m>+@GVs)U z=p)gH)zO*c@e^<59(cf`NC~v8j4s;1o$2$oAkVl0CR-Sa38&1;>p?_7DM+kcEDH%F{hvWIt8z2EdQhpKdtLhcOn6zdfzJ&v4oalUDQD0}!K}&!d!6(!i+; zBDd(Jez3|^GO*KC4)MC`J_cOy6`nNIV0EI!j+{Cu6cR7f-zq8?7emmr@~1Md$tY>S zEAiGDOm@XicC~^lG>MIH$#7>(=`e8;F5UX`o=Ge}@Nsf2rV!tDG$o;T8u&6=11*D1 z1gtT*%{}euOj(%Lr%Wgl*CxsI@yOtV28ok%rm1rP+j7ewBQW7P;qpQpxf>#J#S3@v zpF&BSH*t99uANzRZ8SBO6$>;2M+9gBPHTyH8rp+fq?wUi= z$1kMP&_lcTTvmpZ52%Hq<1~UcH1f%*T@8L+-OGtT@9F6BbO&tiGLc?7Z_#_yg-i+% zKgEp^Y^UF2B8yj+xA_+nFuvy{$<{mHlG*!*D=GI^d_WhhOrPbTx?OClX*{;FT_S*lB2s!&TJg+4*FVWtSp=Sw##kJFsD%0s_sE zLtb@8sldGC8&m^lxZlRHSSFEf$r$BTjOnl$+_=zhReR&+|!H=Sw6qS8k(h{yq zM_nO|-wvYs&-x|_g7jgzTTY`C9O|2Nfb+#W-`02Is9Ss{9n<4oC%?p<$z{GRV_nj# z*AM*`2)`Yy0EnqrG9hL<(%91(IKHFD5g7GBbPMk}9zJ>mA7JFO;&xz%m3-;y*TeuA za!%5jJ@aHv(pmdjbdX>bObLB%LGvN&!*%^Ci!LPkkA56o}uz+nBn6 zM}2m`io-BO|2{x}2lNm55PfJ9gCBBNrz{lz42g~~ya)3+aD?{$ouB37?$2PO4jSy> zscsMzm~;tI8iB#+HtXIq=N(^YrJB%;gDAb7HlgjC&nWta;G)stAo?F(JsVsk)>&= zzfxZTu>M<5j30l#)J+LDy^cpBQ|D_Vfh2V*6iA;*5^ul<-a7RqaB!I`lImQj3@zav zye<6!Y$66BILTp`@3a&6BrWMTO#0xNakXQ8m(L|3)J+G1$XSl92i_gKn;e@q!NBb- zWp3N*;Q1DR?ru0h2Rk_FQO~zMUJV^Kht6;@B?)k{41-1FN1alx=p6d$yzx(QY41`{ z+DFo9XqZrRW3UQFyNf~10I-hM1;65?I|Ih3!`bZ%;~lg@wPfYL@lYu;o;bGE*i}hQ z1yzfOY~v}34xhl%p#BJX{QdwZlS#ld0xQja`1ga{-AMh8<7FtmWmRaDi^4wyNmwsQ zL-E9wNQ0L?3JCNQrvUI(4EWUq9bujP2-n-U#?YzjO-=ezEcn^(xoe3M3%7)$=n9P= zJ$~Y9{{ezY!g%mPH(%b!o?8j^&m6e>BwHZ)FY2urN^j1z50pbhFQTRa0d;BE(FU6bZ2p@MTl+$iY>M~M}N3iaK$a?$lL zV}{c@I61R(RW3cep2;5`^1?K&xx=N`$CP$j1K`*t{^lEP{?SJ{CU%j!Og!ua7Y=xR zh9^mB>)FqhqRMOKC4FgWRB(nuGZ8@hG6k*~b}%_1s_Z)PaApykhh3VROd{-pbC&x_ zM@F`|_mcr*N0#Lt@pjRZ`waGMyVaw2e#c4hqG zr`pu|M%%h}MG*?LaV$v}4SIa?4m7!FP+Ql@RCTKQ$-4njbm%!EqL)o)6@koRT_%*S zGOM%5pt5%vPI1TQ)P?gbG=RokcYv~+mK~B)OvsGWu1`#EA%m0yxUuMB|7 z@H<)RNi|#8E{;cx(m8}Z+1abSPq3)qaNo9*Nevbs?=rDCe{#J2!~gw%Ya=Hg1|Ma- zeyvUZ_W#-rnFz7{9`)24j%0Rou6=eFw~mjoxRN}ocg865F^_JBWs7sjK1T{?5fn#< zYGW;)oNw1z7%Zaj z3fnRX-Vc7hr?#%ArJP`AunSujHkiOBy|&BtURWxBC)g#o>xm;wWQt9W_n+IbVohP!Uy+Rg| zZR?1qk61ISGC64>%j%1F`UOab}$=8*3@9}9S?bzwa zWbrZNX@yh$_RuMgTZLlE_yAezPoT0u(yxSC$j>f&hb7Fh<1@Fo>wOoQ7@Oe!)`i8k z#XY7=&@y-IWIMjR*p^S9Y;z0eX!91h4|cj;z0P!-@u-{bB$NwwueO*JJmgs39O)ci zxhF@h+4b&kY%nQNfIH{g-G5c{>Q_5?pYj)GcaQ5USY)uhfi9R{VuK+(c<&N4vF2p8zEN$gh`&YmHJnJGBVnbR(wX3(dv-ppG?Vq=YxVQG_|NbvizO>I@ z{%(8wPhUi?&{x#kNo43O`F!?cXWH>keTsWtr`olze51Ya>U-_oT`ffNh^|xy54on} z)S2b>@BhlLAQy{m;r!d}cYpu+HpRWHf8%fdWZU6r;Hx*e=No;0b9F0|<1PxjZ5@Xt z+xWX!X?1m{y~Q!eS_@ZKZu7Uzj@#An&ia#6Nz~8C+eMB=f9^Z4pvvGZGu@NulLOko zoJhx_l5G}^j2*m7d9zSuW=?T#ChcIoEowK`#j9q)30F&9;9Ww$^U$orX8b?UG zjUIk+!Z3A;$-}oUx0k;1l{UAx%Eat0i-A}~fxdOY$Ea-rlci&G$oo8Y2#cxSxb{wa zhvShiad)oz(TPfRkGf_N-L}ub@d8K6k1sHRjlNm8j4`xV;O8E+xDbC5JHcbom4j7I zNbw3echruz_oIY?eDdnV-F!0Z&HS9{CS!Y`h`E+MfI3{5yw6}{XmtJnx<%j+i@dnlWk|5a_yg@ z>jR$LytPVM(&jl11FVXqPQjvvm^b-xaJ%iX6MF}pKhKU_$KTzYu*C@px6yT;6f*`- ztiz5;u=Ih2=DoHWm@?~0Gbiw+h2N@rD^eDgE3Sg8;a5)$;zcNXs1BCE zPC{a+ss3X)q%6980jfL=@C+x{(J8i))q3-{Xyci5NhR_6)chD=yz9N9DhuHavLnwN zn9@iTFKR4}eD|WtS$6jVrYcOTFmwEiQ>r9a~Q;n)KigZvQ!0ScVggLDILe z=hza@JTe*H2a{yr(1<<2m=>AnV`AwK@$MqinNEywjFUnDFT*z@i1AJ*9U+Mzk0VwG zd%Tz~c@Uv#ba1IN21*0;hdBk@!2n5^`Iu#;-i}Kz^9_7_En5t0-Y41hv_;2G_@((t z3|JaZI(Q$@next`ldJ%B7n>dFTaLtIRf@$%QoCE8tDD*QNTx}~M12>Ecy^}tq0#g# zhwP{%FWx(~Ph4R&Qu~QAcVuO!fbfK+fs~){GDk9_cQOfS3g!tSEOR?*8foIGj+PW? z$i$ZpCB{6R8}EQgnFG7S@wbv|(a2NKb=Al?$dJmrBwd{mV zI~K$}K$i%ZGtfg~(g(Y9_gC1d@blk3j2+QY3{?lZ=$q3Sx0CHLZ5(UjAPb3UEUc3^ zk8X68XYv*96fr=B9;w#QbeFIAh1d*#28pk?f@Sd zjlcLS4IbqTzr)?hv!kHmOMyq?LFCsEJbWxDym=YC2Zk^_w0+E51|W&9d>i1ZOLv!M z6|8(EwmLI*2nrxxz?K{X3yAWlX335c>Sgd^T&owNS7e@!GAZ3osqqfyE!5P3)Ee+6 zT;!%fl%kKfd>6eb7h%kZxwHC;UuV8TpQTbxdW2BEsF0}>2I?D5!N2HJ;Iz|1OK>Mz z2iM{9L0DKGucEV~B(NP3!KK_;_Z+x)A|UmRy6V7@z~)z(%4%fgngP`uqmQl>XLWK+ zNL|4K0(80cfGkGtoD?=6;>|<_I1a#{ff8iRytuo41A{+^VUJ0A{oLhF21lF6&$J2VD3`T22r;Fd)43Kz*ZLa<#c=%!jfdEjoYoQx~~1+xN&A zFVf^d!zdjPc@uo#O3Xq85MQQGywp46^H;9wfo)#~F_KX6EA#?n^dhQ@(mfz0fk}&> z9*pKDg9%v?FN~1^&IBl5@+6Xjo-s^*P16}O^Xi0s2EbrCgMl2oM+bxoMu*7#@5T(b zLQc}f=g9RCMTzt&Z6%?k6dFTN;>#uLWAVBCk8tspjEkdSv<+q$>71awwvKp@pB+2f z2g|`7_o>r;J?6=%80`yxzy}@3{MOVpSe|bo!hj#px zE}eSA_Dbm#VNS&W#-r$^UwC!61BHptfQhO2Z5ye*Bf(B+I>{gVfq^_>Ttv3ZfRU$V zm@j2tdoc^^pl1}>vJRNem@_=S;B24Gn>c;9&Ra*6Z~0=r@|2-QQMh=qzMHO2Z)I2( z496)M=xpTh#W;n}c=FLS9e@dH5Nx}m9^CHuaEGJAm(vdX11tTv(a{ssTg!3>`SzqQ zce!seDB@AhIe`IMya!7@IHAA6{a#LXPr8`GgrGs&L5;1Uu$UAK`^vhev zLtFslB#o1HzEkX3Y*Jh-%7m>-ApZL6Pp+|!iu=!Xq!loJ`lm0V9(KuZ{CdC+=8km0 z6(k*5&@EloiSVOOt3xb53Y_0AJ?%}?PI|^mVRlf$7s}K(Uk5E6ABof9>5>>c46|HK z$asDuVSLH=zWy57(Ehhx`u?YJbhd4&1H|@Se@_z0-GyY+&5Yyk{MQSE#q?LRA$F8Iy`ok@z|u} zA^_{iEJV5-VurBP18B&?5(u3n+&0PH3kO+xwO;CudaUX^GKifj{nphj>aX87wYQu+ zQrHH3gUaY&Gt`%_Z>3Mx7+f^{niLn5xa3Wp3P`ylbisP`dGsc%`rXBK{i2!h16o{Y zYKrcJ^WIA9w|dmw*0z179|xUsUVg*I6idhsM4cM#~P}g=6jT$&aPx7elr&37(=g*J+O zxl8HcV@vI!Q_C6C-NX)i_44(0gI%rmgdJd?r|o_6-m`6qf#V%)x7V-SYL~q$5gv_O z8A$ol=k9H%*}XVTdvTs!hHqUzkG~6YxMTIyG>eHj<%Efg)HNmw_lS4f0wtByIWpE2 zAAZO`a(lo8<}D_cw~!Ud@wa}9r>Q3ZO80q=fZbTXnfA~lIS5GoQfo;In?$eW-?c({@+c&=Y62~83jSiZpykQ+}+(^3t&h=G} z(q{5|gX7peA#NM_8>7zTet2}l2_{RfaoqMIlL3!7Lrbb7$nMEcJjSHl(@ZFz=iXl0 zT!P%)>lG&V-8a|9?m10Xs5v(|Hu?BW+rLRZwWHW=J+?60KJ)XBwTY|mwS#Nd!q<#^ zpv>H5JT*r zdmmz==}H@W_qFs7jxQ~?&p&>a37k!ivgICR?g<@ZLFN4RHFf}ED?yUBNG9aTx5p-X zzxyFaU(@4YGM4s)v4}UGf4^-rS-Q>y%xxx?zxOh`5@~mwQ1YrScP3W3hto(6`iiho z>WcUBx?%dZvPPeC@KHKhNJnU=FeZPJC)fM`-E--bm8|4V@H74{tamdNX zm%o1nJ}~iuZW-OdKH{F^Nsa?gKLVcQXjjr(WGB1!)(rQ8-sbMs_ui!*P0Y6E-rHt^ zZzH=qM-G`VBpv%wp12x*Q&gG2R%P?24cnhq1<};XvRkeDh#3?1^o8M(8#UB--nV+l z4pTrG-o34{Ttiu64h^af4aT<0e6f$=0jer zMX@0$kNEJ^RZD3Kq)CNLZA-<}ulF~MB*>ROySwf*byCr~&kjcI@~vCQ+DX!|-;KV6 z!(=J#j_vb2yGBp4Gu-2LPjXn(7WLmY$cb=qQ%dX#ooT=Lw|=F~o;V%b{&445d+)2? zp?eJ9JM!_Go+k@^k2RCPNt)UBb@1wt9o|*=I5zo0E+@>l{7r zxWyc&Ka6m46w%k3>q;JM=%;=EI0@Bn$ zI7AudN-5g7Lv~~R^56M|wzxRk)+ZKO=yO1MqiYx+*`hst^QBkY4yPF0x_$w<*r46m zX&2sSr#0y5awkhevNAd94V9!)9l3dZtWfJD!7)q$khex>ixvYrS^+Y zooaLN>p)75F>>!VGPWZvp zJPLx#j%nBqS>Z!Two&eB808q07~nJtD$5vO#PgrR5<|)wOj!9Uc=aCNF3k6YldeMT z@s1PFY4w+s7!N#cc8#K-ng_*FA3OOvP^aT9&;T_-;Bm_4hBbp{K3` z4zBX)y}B=bl*|>vq8gac62x~PDu3gZcahA; zAb_w4V+SCZVfmB_-EbK4;U_S8bnk)d{0h3m!J}{l(GmZ8g37yq?(n-S;xG+;9LeCX z(yNb@ARfsR^z`+>`kwM74U^H|+*zJ|S%|jBrOxxqNsfxyg(*hxE9E1O;4NN+Z=FJ@ z_`r$>IxOduHP5~?Z_XAR=46^dRV+1+moY#7@VVX zW_s#JS9gwP2d(I#6`UDtq$8A7qZl~S*$6)QDFzUn z>^1%b9jbXJe>vh~gtK@wf@Yw{1|%4uBdeDHE}c;{Cq46O%K#o}%(1<^sRy!t&!pA& z_+a8NIm{rVmMhLObOpK`+XY5^S{UlF16G~spPeNdqQJ@*yfSbSUKkaDC^?X)v=*Y) zpU#0!c_~@wOek>-JMjtMxxC&5G87!tq8P{?@2Q480-k;JN(#sUf<8oG-wlInw8^z{ z72<()V$$aUo#`6r?gyIS6P*+%p|;r7$F|JvWp?-ky755fqlkmItH&P^B8%o z_Ol(et&Z{MyCmR38-(_QvGPizP+2Lm4eR8BFy%J15;68rvO&0rh!eaW^5m^6k4nc} z16Th|Jv1EgkBEs|{t3L}NB<+*4H7)MfS{tdcv_G`n8*5Z$lc?<aPQBOI*0Bu~bVZh|(cJK_wug1^dD_3S zw$o5$OJWgTpz*T~sUPKq{=DLl5%oVGwWvtVD9sgBJj$0xUW&^0PJl$^RXa(1{lX(# zlJI~h&;UX|z$psT#y2GKl-|N50B=3g_#39f)6O7of%ZjS==$;{V*Zgo2N6ctE$6P+ z()+Fsul~j%gGP3651D|^E_ZNEsn2<)TtMluezPP%aV0(Z;Og{A7aLg={8>ls%Vcqn zd4dkBl=Ryvw!9)&$~|HB6SByVZ)urwz>IWn+i`-PDF#FA6e?x53x-)%v_^S4K<#~| ze2@-WBKcHLAU}K)D{brwg8|_e^!Ih!1vcsv)2%WBL}y;eTNZ-J*kHlWAm~wogIN#q zDt~Lz({EEOXPX(h$|t-C6NDxrdGle-AIN+kap-9ham3XI$|Pl4=gvAMdi0$@0K0=j z{N&2i#hx+`j(iO;4rrCetOXK?2*xSiq{>mAOuX~Yw4E>zzsJ1GqydkqYw|Hfm@cpK zFq0g-+v!#`ZOO-+5aBsXxy~U|EF5Q&H{Iu?Q#b&?MSd(JLdpaBB0JU{Fvc6%HZea) zxawVf*F=OGw#r%@=A|5Oyh@k!Bt*h{;=A|4Erfr@O$qWWS3dn0&q6lj5%KIMSNb?T z4TMPqWgzZqXDStSh3z%H?UbbxR?fUx0y-Dcxwu39nn`f@;oXtG?_p150XcBBn5W`c z)>i8JNB%p7s6?#oOh^b6lk#v#<`1qXgDZwEM$MdBeE;8aI69OBfr!Cg+Ckr{=JvncS*rc6T_0V;yZUg7etGafzxH~i zV7wwmUZ{f$8^4VCn>gB)$+xiRmAVGS3H#!%ZK(M-uS!`o2l&-T$tvOE2PEm6 z4}B!T@uw*Uv*x=2OY7V=_mHl!ur?>H@a>{1%P9v=5Xt)I1a6899O`U&YMVUA{eDxl zHSV&o9Wq@{T0pf77Gg=K?E>I7dT?j_}lg|n3ULIpm!Wt zC!;4R+Z){Lx6TCD1oi49caN?!nX|@y?64?)rZ>%i{G{;gs`LI~cP&+3EE~&6vWhR3 zhj}jhhxP)VP4x9x81cBIe>guT|veifOj#C3*p#dh7p4# zLANz=j7fl<_R<@dbCmP8Gb|mwVR*0tFN1iuj`e*4i)9`=OZgf(ajI=U`gFVX+V|QX zy8tJcsdJ$F@-~wJl(B=!>W77yt@aQ$Eo@~%YlMljgSNs+We#e~t!vP950e#V=iQ&~ zV%?o~evRE=)B}&nJY)y!LrcfnIqpBDc+i=9wU1&*1mT(ptF@TMNO54&el+q)|w8CTi`d@hR6q9gVBgMjo zC%Bh&fe8#3={lkCjZ4>!4()JD29al-uc-^X^!7u76C!VQ_0-=JXtwDyufm&K?hu7H zj>)|E+V|Vx`&Zi&*H_#94_$2cG0D0G?{*jmzi)P(NrMaR)eB6j(tsX6@j#n9!8y0a zrJmkKmpS3P^1+WRXv+C%f>?a})dxUZYI&@sKc z%I@KJxd-!Bb`aZ_aT4>$^Tu-al#9G;r%Foi=)?(q1){? zO!1^}n|OBt-k^RiavZml&Ac#{&!q1HWzU_(`aZ>bIqZCjW9Il=Tl%S=;i%|^ zw(~X<)Aw;)@ng@ly&LayH}9o3vcl$q<+*n1sR!Ea8#n1I?6rFyKGnwdxj*^*O52C# zT)#!dm+sRD+_^=L0Y|P^nV@;$A`AD>yZbD_c=&;lj1{IL9DQqo9wm3->yUH4aF323ea# z2Yb>FtW9}r+$vlTo}6r_m&efiM2v7C(JhJ*#+ZJXoN70~FZVpDk9-q;>#evuLMClg!B7IHp{t@cyw zh`dT3SKP3&`wo+AvrMMHLt5{%@nerkI!{%xuQlE-e}F7dVAdOtr9Q{m#MkIdUu6#Q zmPg+sV;`*Y%pek<$X5M>Cfg{2(F8Aqy`K>ECUD^upwPTRfa;Q`fJuzyi5jKE=`8 zO!6`8JJCef;!f z?iH8!qtL#?q$iXhqhz1Hq6<#F>S)9xqT!YOWZM?|X)e0ZrgyWDyV}+12h8@XUp*N_ zJI;T?37?5f%MxO2^F}lk@oW*7T;WL~??F-hm8Ju>v6YuDaB)%GXXxodfooz|pHdN)Cesv!f)GtW4A=!-I4 z&w3!Q@O_FqfBOs_g;st8}0PH=s&KQ zdiBD^*a%kIdpQ?<`OFC>d%3;?{puns-R!X$cKo7mspD%LC#|D&;rD#I!~%|=V4=bJ z=a`F~oNXt_@0d1Mj;})y>^wNQWyfGnOF-hOnXanJS^t(F$}2{K6&~R`q@vIoBaH|P zD^R?{aSVgp?t?3uQ8g5gjPc#CVu$3ad*qlr)3@Gu7RcZ`At(y(2cAL*k-RbrI$SD` zF)ExpN7H5D8=EBtxhVvliRi33Q8bzsym$U(DB>rb{3Q->NgE)GF$R_Kbse61%9qNI zc{Ntx^AsMR?!m_(&Ab!Ti%7md;zv4r7}4~9rqicq5;1a(Z$RgSt@Kd?=B@KDdb)h# znNEKn%6F9kFX2^3@(|uq&LHb>8swk6ivxj&v)Q3kp?X$5^*Cidgr-3G6*kRJ7rl`1 zdpEEFDVKWm!6s`|Czrx2grY~)!&HZ+^A$%AAkM$E>m&ErhY);(*HCDZ?b)Qin5=Da z))_o{6b09R6-b|Q7vs-=fFyBxG+mh{VjuRyuoMx+@c#XW!GC1f5Yc+z&yFA9b&^m{8Q^NlQ93)`-K!zFjX`|%R)+G^sq`qUtOzTV zG4f(W5Vt={w)m=n4W*sGhN(293}SSs-|_PgT>h1=!x$uCNC=%wtyRYtfPRqFX9gdD z(K*Sc5{iy64bn7R+muJz72#r>+u1>%Xe`GFRmtms>(JGE=iNPq0t5|;`GCoMPfqM_X9Ad?F+R3C83_H@*F?{{xh zDDr|W0r@eeCwmU$PQW`k)3?2&3@j|MTL1b@?g9eN4xxNgwjHea|2ccJSkIH|zOU}S z-`ls>*{5eCIow7h%|(tVhoY3&iWMiZ0|d!~0sFxL@{;5s$cux#7zmQLAb^oP#EB!= zu|W%lV3`gjC8SA-9F8asXX9{|?w*;R-f!Qf@4n{q`JUhJe{c7Yik<4d|KIOdb?Vfq zQ>RWXrxvhf@RHq?FhW@h6UnPP92~stvhvy8tPa?WTZm$P`qCARE>9pul+7j+~7i9RW zQif;l|HC8n45;nlg#)W|L5uUzQ+wF&R>nB&mQ7-kld#@Nq(t}ixpF{ah z|4@n!m`rpTymBlXoUAO2$};Hr2_5<;EkaWcm8PjOb|f+h49Xf%BMI+|@BBFNAg>*a zP$+?MS91?yzAQKYsaZ{dpR_sQH?&(mI$;gYy)we9w5Z#CeGEy!iN|_kEc2t|GjZ!w zita-%lS^O+V^Ht90E0U;eF*sQB|MX$1K;i?`1)9uGJi}qXLr2iz`zy7!(E6Bx+XaS z4%xIkEQ}EceI%xd&wK1;vGu}*e%{yP9oHHX^k)pn#1fNgOaeIml4*`j#@sPUe2-mn zGDiJlyW^yy_a>4Wq90C^R%gJ0QPx9`Dzq-zCTtEd;VCSC%Bf=(lAtc*OFYYCk7F2l z5NbJ^1tyIc4QhZeo)fbB7%WwQ8oQj>5PraIfjSrXAoI4hTre~ct z$T0IFa%rAG))zTiZXF|m`-M=a1LrFEz(Y^k&V*EI2^c`0cu69BTbV2%sq4}eDzYh^ z;SGuLELkpI2_x_1;fZLWeV0X`lIIbJ?j%B~Mc;aAhev725|8(lRyCGmK>uZN5q?gx zYXGSFqCo>4OiDuxZgXcPv}*`4j*H;rXLhZD-!>^L%}GS|^=#^&koEuJe%dn@!@Lo6DM)OhMrVyF3o-?_sp(%bEEtOblq^|Spjwa@- z(ILnVqOE*wQ>RrbDK_YELQTTtsS`6k;{n||X~^OhCfWWK*p#ROnvd`*Sn9_*Z&teO zL<}mw^2W)!+Of3b!WDFG?~149n<(&0dy08hd$12QH0sa)O4l@iH9hl_o!f-jHmSZ{ ztf`I_MqOo=h4b4CbaTJ)w|r_!u&1WbH;9M4gM#^;Z$hCX@XBFPbS zj`%VmU0YHEzXNS9aG%HMJEU=Aj=TMcbekQsJL)FhCz&{(W-@tV24f1dz4z8`GimB^ zd!$NY6UfyZ#*s00Q{6ediGhhb9BCtCe1;0!K%K{cGR4jPusiIOME60Dr%d#VF^bm! zlDCSHX!rf39v2rP1GDa8gID$)vVch$zAuLO{FC3Mi#(Qhl13)|Ipv%(vIg4sS;a7M zW_qUWrVxy$fsi{LIUaJ7_SVT_IV>I9>}J}fOf>9{Y5Znv=`|Yibc;!P`?WFhk*-HA zdV-X(i;}+V@Q`?NZ0Xv69Z!DX0Zg!MQ2*|yg8e^&{%J)15$g?c6btld~6SU*@ zKbe62aAk|5Uoj%uiKEQzHyi-JgF$AQyxYLrcK2GtYy7BVAr#Hrev49bk9t(^B68L7yUQ}p2^4>3)A7nh{k~_40G(5%2E2nla1kB zp75MB)NR4X(-Q6-Y?TO%J7?M>7(LhMw=QpR%qZn}52Nq%PdwU&+4!_LywetUmfQF$ znu!VM363J&W}(ImhLo>7|6H3pcd?y*_%U{BG4&1~k1$fKEPbr4+)Hnx zHdon|?+z^b!`5ZsW~n=t<;>1%8(zLnpA+hkw_$dDkFbmIfa5w{%wV09WA4a1oI#Ga zeu{G3<~ZlCwxOwc=H{uN=on4H!x&sg*_^ev$uXwvICmGLy5%;j-!5;CwWk)(x1F2p z1Y9`Vj#d~iVOSiRIEB#+BR@vOeXVLN?5End=Py1^qAa9Av>cn*&-WA@b(zP_dv(?{ zmYxL`Y$KyLBme+F07*naRA^-0;IxmLlVKP3l)Y2r9AnkUoX0ia!+e8*Yuw$<*EnYN zD*5nU%;EO-^|kiB<<}cm`eGnoX)klO`16lUwOQJ=99eAT23y*0$n&%)4SD0pAnSaP zOBN$Q%lHfnM^B+Y*mdsJYpe7>kC?YonAIkw?NY1xD*dJmW*&%swd!h_h47B!To5se zQF}|n7xycFj9q~X@C8xBNV=CD<}SE#cQ1vRdbe|c0S&zF{y)1i*6yJw5Y zqQ9(T^Ju!zjv!$dhL(eD}VAv zTbtT!k6e7ZeRyqy@f3@nSvcYm)?~R|;YjCgjxuJ*RQ!Oh1B|woLbc2!oO0o_cY1aI z%FFtwjwKFq)6ZR~qg_NJz1GV$dm)>d1(6OHdKL>4zw*Bgxm)iHZ|Mv8w=h<<+(7wu|jMGbOaD+PBp;36DRd4!-SKkj<~JcYo@YjnYPZc7bv2q4oN?Y`j9YX%)X!hG%~vTcAuTy8|?Je=07q$juG=N?X|KRLP@}#*30bZ-N3l(wJcuQq^;gLs$C4nE^s)HZgtMm zxeKMi{?iYC@CxwsZIK6(La;rOd%gXO-}!cXl%u2f(Q5}7JUKR@eYkO_efZ-=?xcRS zO@8|8ZRF04wtMrP_Rgg%?aJ#%?E>XFhdw-w;ePhXzrbPFEOtBnaC_qU&$gx8OKs`q zHBM#V1cnuM(bI-j->b_9Nvk)kTZ*~QYSY4Tcuj6u&~p0p1$G{vX*0AN7iQTh&vg#Y z*ISR~&Mv|Z@&M4RPWI; zL;OI*Fp9E`V%SBPtfa%c95(_E3ALlHFrnU2)O0@KgxSx8Jk0T^XW9g7hpIjTPz`NW zeEo%&d9G$ebTRfSCJwgfKp_lcG&&@kqy8*_eI(8COq8CSAGlxwgE*^@%BS#wqAMs^ zC7mP+_571{^^}d$(mR!>9@W{<7g)mex7`)Au<#M>f3vDm_a}6vn?#1n}$W zvz*e|wXBoc09_%Auaasg(vgDe=V`Hon1?f6*sT0gjkOn|Iogo6;>s<7Jjg|NiEN$>YLy?NHy8aBh5qSOV1iR9x zw1g}X0?g2s)mk+A+0}&pcHlD^vcP2?lz0AZIS~dO;=i}P+wKw8yF*unvZBMzvO3+) zT6K^$+=+vZ8iN=IGNaIH$2I?8ly$;-8UGGtwL4Hvqc}!-!kh6N;Rg-s=J?|cMd6zR zO`RPS^JKcN$Ti#}6f;>RtK_{-8r3Nz9va}IQsfalu6#=eRNCb&=~xc_`iwEQqgCG% zuYUHx1AjSh%*5s0od7k!#2?T2pFrZbSWkHIUA{h)^$P1?@SAYro7~osK*fu3{9J6~ zacbVxG!7p$I*c)?qfGnsz8P2AS9>Qt$~(_4)BAjfa-JF_ldeCKqoCt&e}l)sg~P@J zM|M>4-q$~IDGveXCwH?9GM<>TgEOT6Rm`u+beZ<6XFCzwbzLF^l zY3u1ux_*g2kjf8o!~02RsI6QKcDz{+*4%}_WJpD~zQI@cXouALo(U@y3hzOYm0 zB#t`BR>g@G4HsrCM|Fu8SO+gw0(WSSFsL$t42r{4@P?PvKjLd-gB_{w=Ck0;rA;kq z0%Orxrywx(USpOt$Iy!~<_>W4Cq3!~a2jS?o5{Y88^z^tkaXd{h~q?#8+_Kc_-mK$8+(AIQ_|PihAXdZIJI)y4H+lfRyVxBEdM}k7Y{lxFQVt`iz1u9Tj;2gmmyY zmK|j#Y$qK0q02JmKYFpWa&{?Jaw$ja7coGkj8UG%v3zxDKlpaHr|pmf-rS3%>>`Km zhRspbJ?;1($WP*iJdyBSRCY*Bu1mj%N%r)ME4cdY0PzVM)@$@YGtDJqaF z^oz$~J7H%_as=H+`yLa=5rf<>D4eUPwHzEeSpYsKAZUv7p3{Z0BB$pw0OU!%F~kbp z1189hXuF-voV4*Kc*lV}{8qFNk*8S(=xf}Sr;#u+4t{xDeF39b)2W}rOFZvsYoW`@ zSG-f6qtG~p@mj>NT3?=B-enMf8W4*QOzM)6t{PC!WL(wdv_%ry;qYM{F9{J!*r3ag z@-A$ZlP~=D(cz4oBnBl7ALihL6NmC{(BJLpl;*&m_#rGZ-UWa2iF6!l!(aHRw7ZrMA+lK47wgUvI?i zqNT3Ra`$Q4C1ThPWnwtH>%hV>c$U2Um}O#HoEj9Ti4**M_s>w)f0%&Gh913=UUB0D zSWiEo@+b8bNa9#W!$00DZldvC_>?BGin}k zByD*}OBTLL0zB(?_sZ*xF#vF3u6>oXebm#Lr=D)x_mIhEHvU-PU>=ZAuChLk-M@-!9nDd1Gxf@hp z>!Crp-`hm?q4PGzk1-59PyW+~} zGSHB67gmDd=@}NDJV)8BVys*t{d-ur?on=k{)JDsIl`2cQRK%y=`ejS7rP%FjN_PF5E182MkS#*}C_1BYvZmqEskrO+wuI;olT+em1hq3-H#@90(&wF`^ zyExa|PdFy^xq~SdIiGG{|I9Psv_6$~bkWN4%5CPQwxX|PjMqL+^EZTobe`V+o%1*o z7#xP_AMap{xbcl|umgRwjc+c&bBv)se!mTIJnRMA7j)Pz#`UYWxZ4zcGY6ivJ8SK2 z?%aHS0bRhH#`u^9BW)Sj7c^S4mh=*WWxeqP2kY+$_lbV_H-D{t_22(1><+}Nv$=|) z?;p2Y|Hrr5-nz0U93`K;SXW4!Pf99y@W$b%_=HOQ2^VGq`MJUo=Vvi4dP>7G#;O&{ z2vJU3>9M-e>+5Fyq@HU2a>iYlrkH6Wz^#|W!H}87;?)NT5pD*2AYk&Nczund` z9%?ZB;g8;~dV_&zbcDJFu2BrRwgJ{R>xkoab)oYu)>&;fHgcXgq26%bLV8k%5eBof zOu1`l8{Qgj|LuSGd&rl(K5Reu(f`;ssJq)oSK9ag<&Q#JuA3!KE`r-Rm|(uptfrfj+Q_RSaHMQ<<;g->IY)0y)RN5xy8hB(G;ilcW&(Kq+5 zUTc?Md!s#i>MZxJueR$f=GctU3H^vJlAjDO+ts%}XqSJy**^Q_&$QELDd-EQ+L;TF zwZHja{ikjF!>jGxKY0~-+iAc4rDxhEI1a)6$;Z!fw=4^i;o}y%LqoSmAy2C3$+z>+ zGaSJlK9lG7@1XOzpM2b7IQT!q=^Cb=K99WgD{)Z|ENU92Po>PbAZel$0lJ0pFy%AO z7<^1T#sh4RYak9dBHcx@qoZ6UfILsr?v7C&))J5L9zuUPXMM1L4;)NFBS!?KZrip` zvn$v8Z@m^lzS@>M2~y*q(yLqaA$K{}+WTm|E`W6eS@>jou*OL!chNgzE+m8h?xaV_ zwx{d8Unh?3c0#XNIc{&VqZ1d&X~_Ud#!aH;~bBjI~*~ z0T=o{A`Ky2g8&Vu`YZeV`R-}96SU*km#9ahTUp4)dC1_y7!CY33x{sJzm$8~x6s=w z9M3*Hi>y&+-F)M`>@N38-*r*WG+L4JTW1IUBnt=j*>UfD#ypGCN0HeL+M_Y%-8R_e zdu!#eUAnT;o~I0UDYI9XH`>d0Z4M9!mGKdU<)GOzvooxfeUuK13QE##*xkBscMt4Anfop%Pz;%5g0ErY;RrH(@GBO zWL_F0!w@F#V;Eya6NjxMa7?_owHZO$XLZ1)TePWcpiu6pM2ft){j*S1ixfh_O0cZ} zhTt6i5j% zm1D<9|0F*|tpUno96YwbPIxcd;YFXhV6yR&x5s%l^TJgY46BcU-${b=PFyOX$}NNX z;O*!olJw{@Ap}f};^lSUuW%)Ly)+${PFOvF2Gak~8AH^-|L4E-*_Hl5!9EE3i!=8i zWYYeq=L0^b)w%vP<=B7pfq%wRx>M%$0_l`9`Xe>R#t5dA%!AYp0eNtR{gDk*;^Lir z!ABdA6sVFyJanO?M4yS*&afchHI9=P%2xO;p8*u!m83b|OKR->p+u!9|LBkusrVa* zvd#p(9WfvrV1WMEpYTe6hY@uq65Kv@Vka5GlW+17dDN3gHK}Bva@s{#FbFSW4Y86* zJ^1SqVs1E2NrR>Nk$PXvUvff#6JiS-nK4bHq(OX{&h-$TcE-4rg%rszNgRCA9*nd_&cfQDL*W7YcoZ z8z)8`wws59K|>$_QrD=@2d*LxKJ#K3b}o?o^g6(&MimEbw$+(DwfupXZ-rU@ zm=-^za6?XOz`&Kz?gQ^W9xqxs~sR7t+2n{4)bm3eFLbcQQFFKv2Ivk_4;a*s&^I#|X$z8Q z(d`|g*(oh?qyZb?qbEwRJBWf!=|~s;`%Jv-F)$R+A@~T2+%`+T8(nen&whj7%7u%( zqBl@}>I`}9B-=JL?H(~PBCjde1KONXkx%(OCh zOWyF2QHDXgpCAja(2!TslsCvwkF?S+`b<~-m3R_lCIFPz=1qMnygz9d^fy^cGBAZ! zD(t63_o$=!4xT(~^4S5uJV`y_DSqSmC%m!zbAg0#)>+$W-_>tInLTnEnko(Ak-q~w z3HYml$tj@V0-#bcq|!2u#}B&rPCBetbw@S&-tR7kr#hHc{osq{1-3c&qQgvHevY=G_iSI~^e3Hi`$#3){aC(#;kd)G?JjIG^;mSg3i!!+kGxK(+0FB(V5Lcd1Exfo?l8G1;^uzvTy zN6yOk$hP4y-oBUVJ4XQO)Gzza$uBtl7d|NWz*&DY5w0(Bs{R^c{gxte&{M$6k~Dtu zM)^7E8!bUX!dfnJRIzq)CWdp~!(SN$T;7AV(oX#|-QcpHBrg6SS-DVW=O5AKg7WWb z{M3DsrI^V}G7E$Z>74KttMlj{M$=_n16HL^FTa&tQ7AL%*ChNHi*oA*!K7CSh>Gu? zUz9<7>L3ppgR7dVhw z6LiM*&maBFr$Z+(jgTL^Nn1>YIZ+&m^G2yyV?7#826ALX&spV1#@t?}o_= zji5PEgztUg;uX3*9(Z33Z@G$={p04pg3*_Y3p7rgiAX6HgY0@ys5ZnX=< z183x!IH#EibX|=nS!KmvJN6Rf7)a+MqbwD&otr zv;z@Td2ii@uSSCq7utEhxcbQrEx{@Z^h~~`fq#3~m$*al<#zssFA-M9d_xkBIN-Ez zpln(wrFYdC?qF3u?2)0%z_ol28D$Z+vafcN|K4S~&h)7BtgD;cgGxIgDdyd|PdCgc z&$7bu9){*Ej&F7+UHVGkaH@htGUkYI`O!JE6T`3NCVe~vmu~M*JoT|pVF2T}U+#xh z3)_z|tr(DrlQhi-<+aB`wrwWZ?RSb}$Tp6r^R*?N>N@?DImR9a;<78*GT>W|$SW77 zZj$G2(2pg%fa{Nz(z<=TV;jym1N zc*Q4r%*6#PNU*NRaGsEhp_JWT(Cb)Yf;1M`eTDTT^VicD4ZYh`gTBWLAEHlev1DQImt{L;rX87Rv z+dC`W)$3T)_ap92zDwWtp&9Vf(c7dt*yfHPYe(OsBFcf(Bk-u>m95P4P^O#6-YD|BLAl>v!te{@ zcCTNJUa{|Y{kF%mR@?3l?&01D+NC>ar@(36)i%OpylA@w%kT)b;g3qj0)ke*ZK#YT znDyZ%{FPV6xXba@+OG~cZE5B11~S694OO4aiyworM7`uy71C;*M1^XdPNvx`n>q_kXwTrRDbF^}4J0?%_RlO;VRJzPea+2ibGJMLw{{ zk`n_)xnI}uUiI}>Ztt@of;(inD|MNLN!#`-pggx6clvF3`yTopgB?5LPo3lV@{3Pk zo7!yO`)A*7*Dl{}KYHadJC!-n2tiR^ZHF9Jk}CDyyko>fmmqm57t7FgEj?Oz7x^LI zUR$RQw;Z#OCNjpiZ6+=yq)uRghwY5_jJpfojZ7L6oyT%~t{kZ!Q+~iX&#j&rVMFIE zM@BEOP9XIDz< zpwl+tlYjn;Z671-J3oH2O)6SZ0N?63UVueP;oSKAvey$fC7Wbw%(7?lrZRvFLl zvN&L;ec|8wE$r~8bCU7&>>LJp?tkV^^;0g^A?<}zi=oxKb$2jijj=mf-7B9`O!9-5 znoE<9BkT}9Mf!8?8pqqOaZmX^W6r0V)%EuIXJ0@D zIN628D%PASj(NWL>BnMIef#BiDM;JO{r1Sy54ErS`Y*Q^|M2_m<~tk#&LVWj0gwJ%}hRzArUAvD3xT6LXOzE_0BLIep94jMbD~q08~AuVFys= zxk^UE12UM7zcDoySn)lc!Ce~rOco8L!$*afn4xdG+ZGVuNpTQ20}b*qjL_IIR=AxE zP~GTM(b}4$o+>j-lHXJU;eFR7CPY;e#uxv|S;B=u{X|jvp3ZY(kT<>uNO%=b zaN${#0mTEsq)TNR1!*}1w#o*w;4Q0KcyWL!s}rsg_XQ`LOQA}em~?%9>KVrB*To^3 zRMJdp2wjm9S4Gg5^Z-vVCY7Ysftye=*7LaMqs_-KD_?x-Og8OKQgGlxSjtNEZfH-K zFe(505!Pr8nh5y9sFa=U&UPyX>oEOehS+O2Iv=@@U89*;|rL|xtLA>8-$OO5As8VeQ2N7u}`Jnhxbo0 z#^DhjAs^nmQyqam@Wd0k5+)-RfF$%0Y#=K*`8dFZ-#}EZI-?z~8U7N#h2LvXY{s5;=L09lX*5 z|8{A>cWHoSkDZrHq*&fI8u&Swj4UG~mTM+CY*dA{M0rnnOPifs;wZBj7y@Icolqwx zqBDRurnHJH9WG=Quedby(4!$Q#zf(Po1yU*2c(x4w8=O zAjHv=BMLM?2l`y&p8C(uhWaf{HSv53V>9F?V!I^j%}E-jSsJZT2Bpj1Q3Aa~DruB# zCiu;>%2B5uZ3%)NI^1hp-A!pEOc?2e_u1tZexdW_2x+@o-6Mje!}92N4A=xs(Rgmr zaoDG0H=rt@9DxI9G4SNG6Ay7vUO!kic>OGJ#- z`m78`el{3byTicBW4*Bqk37!`eCZ3&mW3AUoSA}HbwYL@cwQoDD~FOG|4O%lFRpS{ z(r8o`9?+icpwB}(JXc@z&Nu5sc~KTYN)mm!_%sdR{1aXo&xEL9${e(ubn2fhkWnCv zOT-N1`5d$Z9Sun?KZT*_#yCyKxJTRb-n28xWZoG`9KgpT^rtjPS^w)DG4`k31zd}} zcvp8&NLj=sB7kj{htPAG^oPzE`%yUQN0NpU3BrXxL@^KMrx47%e`+JWZ{4nu#l)HF<-FOA-tw8elg`RO=eTSU~hwC257=29F4jkld5BjIMi_r4ZZ=7SeTtwjHgZ)NV z|9X7j?mD|tXw#ox>ah9v7g*6BVj#mjm>Xa^9!nHaL!0ykVgE_FIL0!K;!pqx6#y9zK2d>J!h4sp z;M;KFOjRV|2S9lTXP2H2X)YqF&K2)0*F>u*(#*HfPdYzqV#pV+aCn20xxL)s!wgprQKC(KFy;sxQ(C%o^cI+mGbW zZ{t@OkHGZ5)n=L|0YXB*GEHu!1V6sFq+Onaz;aGEkYBv(yu;2!85dvZ+-|iE%Ph2)`ep|S8>H}IwJS@zrX;S zs>k;}MvP64<#WuD|HA5sSh|yU@^9HociMJHE4&~@mMo(^Itdo7M~WUYX}!N&JD#>M zh#b(qYM{ZVXn`Q(>*SX?aPg#uCdX^?tolx+gY5#k=q>~jmZ;FV65xp4=gWPVlZX$+y8|@I;KUv==O#TBkgwJdGifydKxN3~Fe~To~BNhzp+TbS7!V zxUlAZlb#?`e6Xg`t#|+|WIR9cyg9nbIOuui_ZGZhId~vXNyRIQOagkYdurLlxf%0fn zaU>it?{LhVAi?6J#ET&4tC;vnBqeOWQ99Mim9Al_o+Ue^w8v4j+Z;K)e&wAu|LpUm z13GwkYpYV^NM7lw>8NjZywU=2C&&P$;t(IK-Ka^#m+oL~!1eLam4 z%f$lw+~c^7ELaAH3+vc-9UStktMXEzgUK^DO!<{LBqESdI$>`l+l zr48~#lDoun9N0KE)s^kbx3)PN9!zJEU5*T1*= zHh+XKLv+iy-=6Bo) ziGkOn@E^M1E`9htKHr}G+OyEXQPnK?IK?jTM>zU?m>uay7)*{1xQmlA{^Hlp!7=)& zOLy9{k6@UA*Hc4l9P5ot^6swUDRyF_-RbimwI|OzA2Y#m!}yWj1adXZ&eMGtW9)LA zD@MVsdl*!adG(D(DQlrZUwtcN1x2Ajc30yflF@4bCB*t_-`jZ~<;8M$-cTJegAVXc zT(5<3-p(Dk%Cuuy^$Ihz$g>-mXlESEQOBKEIJ+>JovSz2ycgP*2lC+SKFV|izFJK= zO}w#R6n;@R>0_x+Ow=9ho+$7ct_RqpZM#MrLsVqcT5f`7KN`KH%u%r9b+1`(Oj?$owc96z#Xov*UX-SIe8vgSLU-l8ttVL38Ei zI%7Tb2|~654_wTljIToPHs9JV)EDMKT`|RO^@Y=;?Q>&ySUhyCUAZ%y-QGhN_S<*A z`NMYU)**cY%9D%@BdeK{gm*O`jEvbfK-&-neZV3VPl|9pAI?;LVm@Gpxd-`Tdp%6} z1iH?h&X58W@`ZfZHmd(EzqA9iOU@~{xWz@R3&=?LYbl6__QdgF+Ej>`<%sMHj0vBe zT4saXYWwNxSi8J!?PCEnW57*ldhZs;17E(@&LbDF07q{M-q_bt+03yUc!rhM8`RBJ z=7@LcD7v%wXrI0p^o~;>9ZTHYV=TwY4fZJ``|uNIaFc%VUb{}4usF*Ob!2i%+PBtor1#HYz$x$yA=77&{~5-xw<*`# z+=D*!!RzGhWn%&0KK;lGX@kx!F0gQi z(+!|=3Iq2j3zp1}_xvIR)L#}B(N;{sL-W7Lu3=@~#g%*ZH%ZH@TmIba3=7=3%$ahg zhG&j^n?+xql9NH2ogX{W$VWOr3J$fYDlo*^p{{|PlYvgEA*dEG@RoJDLR2cN^&t|I ziE&paR?Dwlg1ggzBwV3|cG80r;Ghw~&kkRb zA~pD$Jh@WRVW4N88|I>MCn9VT%m?a{w`9Hhsc*mr{)U@Q|13sHHUGe`;`1w&kvGT+ z&!r#v&wDy96ub>c4IsU1fCjL5`aPsZNl)9Bu~q}yg?%?GkG5&vhh%%J;^8kLcpaRT5)Xo!1 zC0vZ2Qdc2?0QEYc=ezt;HvKDOE$>#GR3h+LC@Bx+1dNn}NlStQ8bPh^{h-hZ+2}W* z9OPSO{p7yD%4jA^v49f8oRVO3owj4QF7&^v&)_ZV4t)P$XPX+C69!oi01M{Wv#NJrnv zaCNaqZDx0XcoIR51B?EYC;i|)$Ms6QWr@Fk4$SOSo6GQ=VCi(1+d7FJ(7<|cjcFTh znSwO+(ymyXxS+*&wqyJRCLL8t#z}+ub|TD`aME`SYgp0Hf%`ddW+|VhtFPbUAl>@p z9iR;4@Q*waAc$?r2~>gq$j?at;@Ckqn~`4d%422wkTzSI)#0}1K6@H0&yd5DprX-m zb!*qKnT+gLKctJ<(Qoc7TBR-Ty!Dfi)$y?%EE%@Uk})2>8Y3>a3WMnvzAlXKK~kNU zj}AIM;cR5100wyZJbw4BrxJe?AvAhn04Kkdrp_b0@W+0Du{&pdAi96!bd)yeCny)y zPazEm-lgN{)BZ*3y5-R6A@#q6rF78?X3)-UXrWD;U?NTjNIAkiz9(`+xbnIQO&Xod zk$G{4z4RF;#wg+p9N|tZS%>^r;gkvgrBT*VA(My1B7fqf%bjp#MSsi2RHWPba?H=d zp`7)}mSL^prKS<)G3YvB!~r>e(f6dUhLOer%+?mi|1gMC?Pc+XK)^frwNI9TD_-^p z9D?!)P0}VsI=LsE_I(_r#POcRec(gP>7y~(CzQm9gQxXFx~mSFN93Q#1b6B1?C|NQ z5ij|)ZmG|R>olIUNS~lJu%gpX`PhkfM~}L_7GB6VfJryT4Lc26|}=0NXVjt-^fb| zO_e=3NH+Pg&n+FnN0#J8tt6L!=9>`tV$S$)(&keb>wx)7{J<5w;C?y*vxe@6wM>Z6 zlV_m*b-8)YACq*&TNf*!e>rB!$=<$i=z=BVDsz^LX+&T4 z%<1w}q!-SVU1%d0w7D5`0Vkfyl?eGWlFt*aV8BC$bEGBdSTD(Opv+0yBC$b`>>j2p z%tMhxTs$Ldgw=$WJ1CA9o`lxmBTg9GwJ+g1_=yLWq!$q|;~=M)i;g_~DXL7n@0W!> zViJnZ^f%lJwv1UxBS+MBHP=*n2>Il07$rXA6{0775{_yjz0eD`7$PJ~`s3J7{nM&3T2V!1HcM$LlW7^=-M7>vdAe5;)|U{}t>WsKYTJxj+Py zm5CF+=R>@N_+Ej5D{?x7KKL_N8rUK;!s25dOj_LLBjrMvZ;smqOaImv1xI>?P8@!G z5#B%Jcm5jEc34d7?jLtp>b5XCcQlyp4`;6n+zji)9?~!zRc%HUY z%5)!9cH2LK#U($~KQV?`WL>z=etcq_-dS$8Tm4B$$7KmV6Dr0A z+!XZCyZn`+&c(0FDL$p_h*332KS5-$Cj=R<11bIFx5`7oON|y6{}PF4yhw_E%8Pa0 zcGR|d7ye*N1p$3F=ZffGtuygA%Y>xps-DrB+t#y-MJ%=%%AiT=x@3}`e6@Ttx!Li+ z3Gf`HOsB?OG%h&X!`S77u=5GZjkZhMPrQKL&ifdX?C~Q#ckRltBaV06#y~MiJjXdz zwcMRUAIkANP#(9rOFN~(M6GPpT;)O<>l$CcvxbrE^r0836_1k@;CxyaMbwuWU*xyb zMa*UOI7|`!=!iRjcBh!Nvg%6 zE8h8Tn`n7L7NJI};Cg4$`uw9DiOG(vH($q~$RspE@8qv>tW!Rn@PFaLX#3RZ@%8}* zohb|i^Nc5E%m@JX%^yEI*8c6k{Fmt;A)l*E^z(h|EytNIwwgc|huTHYZKm(@`LDmw ze(ksZLfg6aVY~6C?@KmheU0+^hXCMnVFdA$~I~92wIr|qcy+qrA2?Rs2MsszAYG#Hz znkOda+Vr{e?Rj<$o_b=Bck;{5v7Cmvg`sKnPFucyrQLk*a(nO1x7*s%ZFYHXh9@GL zWYT|;qerh@yV(wb)mXWVjIM2Byy7n3&pdg)?cTcDcGia54g8k42X>01JfC2){OINP z+ac>G4?f&rj)WtwF?t;yke_KzhvK;5Po14=2e)?H^4-IBhc5X#$2_|udEu#t+uZ51 zZ4Q2o-?`F0{rDru^);^3oo`PK-DrESt+d%~3~wVd?KZp8{^ZgR5e? zqMlbi*lABbiq5A;^WGgLg0f~2^2@*fgSPVKJ24P%As0WpgwdBizuFO!a7rUmguGjK zY=35vgLCYlR)W^pz3Y{OF1#rtvGq}TOf=+1ZNhv3jZHQUaDKbTOM7&-yovD+oo)S? zq+Z$Au#cU&Lga1-nmnR=4_&gO0f(`_^5_W)8aN-rF!^Qb*B`RGdc(PA5<}B)FRDAj zJ@T3Q$nn%z5~DYE!0%OEE=u3qU`Mlef2LrRQx~RENc6>~pl=%k*#ZWu1LlJE57Dla zspD`*yGO_#`#agFhcT4=c|Fnr@}zAhV;X3a50*C%{-SwmOb6e>C6!G5503&@A?bIj zV=@N^4CJQ&u9}X%Bcrx^UIlQ(VgctCJvqkfqSzG5@weQ8Jh6k}@mBlzGtM8l!+)qf zJ;@9ThOfh&^UTMScLZ<#@(SbU{r1z18F)3`es+b8g50fYdw(#*VgPjc^yDl%dZ#dM z@3k*I#E$c)&an&gpuP07?Y2UDy29H3jVZ>3(BaYPL)3jwDZOyvpq>8QLR-A>1ovLQ z-&S9{*51dk_{28)iG|1yKlViN2L9BX9mJDg^JqP?37tR}-MPiC`BCnxCS;Si>RxxK z&Yq^;f8{GIAmLgf>fg01*V_kg-$wU<#yPz33j-fG=TLs9xRSud$eWy=HTwt_Z5E$g zzPv`^YX(&2DJNt=8Ji$+$JZ`(Jj2W9InDZWzwvLh$uo29!XNx;8~Mq4`x%Qy{O2Nr z9ga@^@Y>zBun1o2$X)c@JTm>nqi49L9USLp+Gjui$+q^^<@VzDe%#)=OWVwXF2%qf zdeZc-M_F*fOe3qgE^%!526M`+gTtOi8FS~Z^SaCTj@p~Az7xLfVo0_gfF(QWUwrXZ z%!;<%)DPlWU+>We_`~nMOr5gLB0sdL+6J!P!e+>g*z4}n<*0ghcn?2}F`u2uIj)=X zcCiOdICW-{6Dc?@nZ+T8v}-D?1IHxP!)S}lr@(H~s|?W}q|U4zu2QGj2!Ks8eMy3y z-|g)Kj^oU}5$$VR;6HlpCFEy|s~hOYP=>oK`gxx_yN?up>L4|l>WqGW|7!cce*1UB zs~pXaPPGI#IF;mI{w{ix#oCW?>e$9LbU)?32>Kj5Enm(14?!yY3ie(1@FkN7e`I{8hW#4fS)KZq&a{=)16t5q6E z1G*l6@w?hZ_VGtSkhLfr1*<0C>=a0sG_r~V!5*VQ_Bh9Vju)`eumkF3qr@R%e3^DR zpRPuh=K&!^HkgjzRw7wpdcF&nu8_0z9~=_hecLc;Kf}dcd>$j8H!i)KP}~kcRqB+JLc<^TeIlMd;_~E2BebptI>iyc?bK_) zwQg8S`}>x2!5ZGXS`1(Vg*4F!cmz|ITxbtoFnFxA1Djn}yglfWdDA9urb`2^VN0nr z|Gn#J_dDE6-uuulZ#{UIL7QeIFF=Dl4$`Z*kw@}K@uY0Z_vEkT(3e@4P9ID_C3%v% zKJZ`lY1{{}1n)7<;)A)C5bF}Em_I6I^iuH|+Q^%+N*0gfcN`m}QoOJ%f-&h=%*v0( z|B6jwDi-)y`axrT7eXbrp5lRAQ>S^Fi^AhmI{DR8muQ6Yls@GoyV!cFD0|Ca3LM<} zG|C#Qo`z@~ZK&PptB%TKi0|M|dgw$YH61Y(aLU~TXtYcaLL*zeYRokc(%_<7Wj8C& z2vaB9@cPeHWLpeySicnsk{a*xVZl+-al#^eChz+5s5%A?Wmx&GRo9l2d4^g1_t<9r z@0FIT2=BA914UopgfBGBk;R8wvkou#yKUHeXIY$XEXj+=Sdjuf$fJ3Za%r<}!Y}g)nC)K~?1+yH%T)0?zKU0j+<+KIP*;b#V^DoHL&ww;Kep}fflQbfw|GgP1HOwj2GnGOAD^MZUnnG= zbgwaam#URua&Fudj&Q*OJy58Ef_C|9Uu?uXr2tK-@NGQH+JP;vU746?bR2xqPi^VF ze7%z|*7HgSUt}Y^0*^9eaT;cnIzkc;xuqvCy+PE4ATmL3A$;*Yx=?XJ*3|{&NW*aQ zpGgp&6^9Z^Tg#JtdfdL)`dBm=$QK4e^C@m74);B#nQ_KZCS+M@Z=(S%nJ|FG<~{Mn zRWF3;$9K>de#tlQ4rVmw7i`HbwW-MFX}Z!L(xAJLoWR%lRECUJd1G{uauPD_C%ljy zhI%Ze6a9fK#K*K6&*TYL*6jx-f8YsKd>dY6Xs)DCS3C}W^l^NWNrS+_1e4T@EA_ds z=@b6sB>;L6gp!}k_@KP`OzR!yG zsv}M$*q?G@Z=5j3fJ_Fsv(tWty4yRkd|Jfv-1ueGQ719s58=|DBhksMu-Ro{nxv-` zNKH{>o{N?c1V(jVXaUADHs9itOZF?wi~LjfRJ~QkI=KZVz~vetAY)G6kE`RM&BDuv*ryXE4dZ}X@=iZheFJMr3k_0Pm1rpH8Da_(5$ zVwNlmcFj9!-sQa2U^NWU@EAGU1Q!*KI=EK$K;)c4H|M}sK!QnjMOkKYrP2&Fp;w!;u$-<3R_>G54&Rj&ei5-W0# z+=Q(ts7fi3^Aku2mE8l@6LMS*1*;D4k~xk%@JphdfA?M_B#z>URP(P(T@T}S&&q&) zMPK!BD!r45YRsh|h$lAWmcEBFM6n@qWP%qB0cK{>HV7G2qM2$9?2h$;G=-yTj8lGj^Etrkz-{sK5)GoxQ=;g)-n;vGfjZFLm(b; zC%(gnju`_Sr8=aq;%N@C$D)%+ALNif`?0>qJB2JA$qlKN>tX~%-YB@<=a{~6GABMG z8N+g*&%tw&Hfe?(XZsjbhljl8089gh_VS-7L@oZQ4|@_VOQU#?p2nBuci-ihS9UC( zI+u2@MpMWObA#DQhw`w8Z8{_9s%aK&+DZ-~PMp>K*!i znSf{Ke)<#0C+Sw7yW}J}wmit0MnmWG{M%;-lP8O~doy(#n&pA~aA&-AQ|VKe?{X~H z7`wil9~sB!;}NVvXYQ7Qk*|9!$e9>9WG5>%JN2XtTQp^qIejhWX*Jv-RBdPU3_nTx_%J%psgv_8xM1R)-L;F4 zthH0z2kI$k9!0x!^>Vv&<<0i~o3FN)|MW-f4(6Upj=i45=%9Fx(*Aw?;xp~)^=s`k zyO=(8YLa`2F*5Cpw1>IxcWR17_czzt2OPKjE?Ye}c33oZm$5$b_;|a~4o11}5u-h) zT(>LB7z^CpICdwYS`@v5yX94U4C)uoX9PtEg^a4BY4lu$YTJV-}4|2)%kn6I~^>37@C-J9Xf&ieH> z!Y*o$?sn(h81!0aYB8?mRlC@f^%>~f+ok`)^)eGI-f<2=UAT4qUc0k~BBadMDZh=o zo{oTyM2@UW)^%!D@K(*iK#SiTa$v34V}bGxc~Cx5_k^q$VppBDA7DRa6ob(u$4t+h znnj;1P)9K~5^s+_=st$mVHZqjq)n>oGV~b8E#IN+LH$577lzQQOklkfB&}Bma^$YVI zfBS8Li9g53>N17Ud7V8LXn1Pevu8=;iRt#eSMRkIWG3ZH8hgl&bK*xR6Y0?o6BP`8 z=NMzNG7rGYQ!`UMPRkq_QTOy$n8-h&{IyOy?c~_9V%l#bE$H8df9Iyg+C5G-oJX;q zL-%}&dvX_k{p0ZJTsv6%pW5i7zt)B(KGSwD{h+n^FSqHZ|J^qJ`~O9I=O4X>yux4P zW9pFIlItu0gpaq8Z*}I~!`p2ggX&jKkF{qWJ>MSwTmMbld*eIp<_F(sA8tQHJF(wx ztlpwcKwm?QeSZ6chvZ#3nfcYf(T0BV$8GqZ|NZvji*L3+edP)Z71$NKauc0GUqM4P z;|D}IMpI7!fCaGJMF5BGYhOOyzVH`+t6h2R_4ZG{@x!){@%ezU#p6#s-u}bC`8V3k z!Xn1Z!*==2H`@R9-~TV|8kJnVFAm$N8Org~Yyto3=O1a4i{tIqog3|$|Kv9@Mn2L0 z-rxDV?afOpT!Cf@Q1Z>Qhvd5eXq>o1=*D)2ldjHi4E00j+sr)1{xQlKz}S|k!$;Jc zH4MDB(TU^Cvn){d(@eSyuPoCqL7I^B+Xt_5uk3Dn`rJahwz}NzU?6s^qz-ox+s7VW zY)_w_Y*dr>mB*iM%LilaJ$4Y^IUMB<-nDk;>a8p+TA^LDKSPfvZIf;4F6l3^OM4Pp z?PVJ}$|4+P&T>?*GcrR~kS%oi7B&{II6^h?z0dCZ`F84&$J?W47uuShC0f@ zww;p;Se*0t6BpaiI!0XXR)3#%V-r0MgM?CzAkMr|{~WO$VmRL2Tc?>oUMUP=`nf)< zl)O$Ci*ka)nYUkJ5s~Sgp6A2_q-O`c%pe7{g<}Lh*^AkvB5l(S*+;OSp0POuxLMT` zVWud~4`?5kSorf-Kl^O^)eFcp>Ad&q5+@kIKP%!U0~xcKBMBvfw8lu>1iWX0Aj!&L zRB|0;+DWwTDqL1@SB<+;N>~+%*Xpv!gaU#Bb48dd`+Zdy&9F`ZRndZ0o{?!;E#4r8 z7Q$()?U;Bzx}E1~67UEFhXhC;z=>Wz2&)rX!Dj;C8$xLY55(GO$!bFgP#6?Ci^TN2 zA5T9!TN*bw!k@g@na4q#adpB5h6ZJbV=U}(kCQh$Bc?qDtdor@Qk9<0n2<>t3Qd52iq<8}%u6Dmdvhl@oO z$glME>Fb%!a9%2|1y)HG5BMs0K8<(MAW|_3qbL;m4Bu#sg_W+PXr4n)r3cCRHm3MZ zuO=9Q!_ypF7EZ34y1>To11&p^US;IQU%KkyuNV_AJfUF3smnujyl0Xn2`e*H5Ii$c zLYT51+$5UGO&dvJySU~}oaR#EZ72_1QK%A0Vxgwqd386ZoufTwQ+5fLTJuHh6R!IL zpXqC~I=Mq5fYQ*#i%eUA`^@#2dNh2irbwK|!zqskT}Ov$S$87*`AMGcg9Zi&04Y&; zalh*lG+3C>$m4#X`s!%yV&LbSkd?0j;$0jk@+G$hVfq`~d+||hao|;4^*eLRgsFF2 z>Fve!QJU1-uGypU0Fb(`AwsxqI`$qpW!xz`7ani#gy9CWLEeir;XoAGb1q1E$ZnA? z{hmhs<@*u(L{f8%5KrsAbwe7mBN#t*h&raSBKJKxsU57VWQR)h< z3#X=84a`7#7W!rkZThtAyU>bpvjFY{qo{SSn>5t^Vuv|f&F%6gaJ03ttpcxIJIQz7K`5N@oM^`Ug`e#k`6j?FepaFiqd$q-iE{Eo9cf!4r=(9T;_B&i z0!BEC*F32Qq#ripq5%^p5uh#kAzVDY6E=&rh-h3s_)i!+@XL$7f;#xoCJ=n`$B-g8ZNG-}>`o*B?}P5~ zdbE{PSVnei?f2w}UgXZn!%TLgH*8}xCfJ$vI4w&`o#3twClfOP3vN5fF$RQw7rxQ? zrd*Y6g2E?{$8vFm`EjMWlaFPnkS^jY=9LG*=0#JYUj6&J;Rwv%^4E z7nst(jSP zN{Jq{E`wLz1Tj2N4~p9)x)5HF1M%udI(_-X10GtY=`TW$sTsX?*A@+7t!dzrFXF_Q zmoNSBmFVtaxrMiQ_#TOaP6xGEy2E?(lQJ@GII_3zv?6}_(+6ky!7ypF92IWMO+9QG z+V|#*7;?&(NmwuLSwg>~5Mw+fU;V$}CvNZwZX8`6V(A>r5_{x|XTf#9Fhp?mEvUP& zqNA`Gv)+1)8PC92b8DPHm4(3Rc6Cc3z5K z_$a%!kIXvz#s6?XV4SrB=eQ@*)Z^1L(ELCbG#zck$Wxq;B0nKd4Wv zBTkA>Fwv6!g*ZqviWu=g3=hq;+sO6HWs`2yIfHMNigG;-`4T zBhnMkeDc%Np7H@hJb;s|V-8W?ejA^^lP+ z=+uhlMCCSl_gFXY-Slp+DcUZts4y*e&P~8m4Hxb{#C%JYWzvE6N`LPaH9d{A%o7sE zVprn0DDj9$MN5~*?!(emvY{^FRoXoy0i7H0We|@5%2-~gZjV#At*av#`48aj5qxp1kanK<4is!B zhT#pU(HG8pbXr;d^WN)8n}>)XBfO#cNxDKw6ABfdDs@H7>#HLyRd;m14p49{j==$fRn z1qAv4SQhKg&arcElB4@l=Av;t#bn-!#~DM5jiT~QMuw5$Id+1pm+`10OgY|9vfbS| z#AL6s$lwtE!ea~s>+76gLOd5J40)v(?fL;@K#fybxXZgc-o_YjcrTt~I>(yklim`$ z13k*oJ{}8OX&hyzyfGR3K@?wGO+Uxpz4W`l4dVoLmnk`9nX)62*W;v23HMm*N#-3g z289o{0$T!`FC7oxdi@eVV0xE2R@ee#(HKLTK+2DQe0Na>vWl<%;tnl@*BGPZ!{`YG zpu=E<&RM&0`6(}P=+ckjX}ja8Fkw(a_%To9Ki;Mq=IKvryxS*tj&lH4K&Zci$$LQ$ zsmohTsBT=o)aIW@E-2q{h(POfPNhM3q)&R)4H~buNWeQn^-p5FcvPz2)z_=C@_5d1 zW@X(N;x0b*hq`l&iEHy=Uv%ETn}p2isHqQ$%Re_^h9GCS5~@7%L+3zA^BAs znqU7_U#Qp1R8sRohRFsrnQ!uE{v+=SEPu!=J!x=I=G3Wuc8u+@m|cSrGi1~oc!j|r zV-IPEPeOEyF)Rs(hpyS z_iLOu@$|=@Z7+QKX&bwYZ79Y_rMp)({L14q%qN^@rNshURA+ZE2wC?T_l%BghRzX; zxD(GkmbnOzJofHjJ0r8>Q|*a|9%`!_Pq(`_Z?@GB-*0!>Tym4Sm7^O+?fR8l?MZeo zt}w1z+a7JJ3eWmbd-x1TG5@8%#g4oS?dtFRcDwf0E5t(|u-<9~1NaWRcyDj)V+?0k z?-obWqBz#br`*`$DD%UkvstKk#6WHM6#1dNnCN0se~cq!;W?j&w2PSb+b5rT8s3i5 zKR{dAUdmAV`-l8ZtBX-S^Bg~VjvdNS$L?eHg#zRnuSaH_U&UyCXQkczy>GUe*B@=u zo7{7`_bxl^-*2PH=^REDcPy@QWbB9k>^to|Mx)K^ciKA}??A+EJ9o5`9oSPCvWMXJ z>sJsB@b7c<^DCE;EeuiB=eMmGYR`Y|m)e*A;;*(*7XRH_yWGC{jc>Or-@HWKb$nKf zz^t$8O{E#hp(v0gjLYU_oBKZ3kb&GkfPZ8YIORFJ5Ad5nSii*4>02BhyEH{zIr|8A zx3Xh;ejZ&j#I-Q1?cVL1ZFl8Xc8BlptyMcrye)S4?Q-;V-!F>}#@`bI>19yHd+nur z8iX{?LJxIedK3c>)J`L}W9$gN$nNcX)UDMhWHvL{9+MgM!UXl>9M__3W9(wtBLS9* zPjwl_Eq2J?z<}oo6)s?NjC{CHeIsy-@v4nKnod<9#C@BKe;Xfn(RlIX7m$vNj^BA=dOAeO3d=^X=)=Z!hf1Aj8E`A zJIgWHXI=Qg(d~;@+R#(~WgD9Pk4Oqx-Fc}UT>Va)ya|mf*GY@C;edwPrx(WBSDt^e zO?>fJ+Uku}7NT(UGIzJHUA^3PzxT~{`<+Ye%y<4FJ3LRdjnmJx_g?$}9yq^3UE-e$ z8RpypN?z`RJ9y+wJN(^$*xrBTjrP{1*EwF8 z9x%+^#PI53B>(B`@rv!Ah?=7_{cA&1J*VfSy9$9Z$r>%g0E{1%I1uJK< z_P+4cc$>voJccg!G=`k8gF)YU9Q)7qw3N6F7hW(?>>@7(*LfHJc>)k0bn@Jtt$b3( z$elJA;r3EyZfHez=$p@TU-RbD^|p0}MJ8kOZ3bO4a+*augzt05@;;|5Oo3;UBbhfa zRBL;i;1r(`^x6(5GdT89*Ql(AhH5U(4K>d7sqCm?aaIQaGJof35lWuUsFLWS7eTCt zIoSo73|c&+QPCMzQ%5DX9k!c}LDkD96`0gR4cYdAM%z!hXZuT>c#$iysQh2J$kN7D znC+1x*%3!_RxmqER2e2tY?MJvBVvbOl0U=K;U>h%M@e?V+(DBA@jY^;RezP)(Q#H- zajFEyECzvS_Z{#|SU@mPDqWeNQpgr{2p662Bmg1u2M-F%g7#j<+(lvl7Wx>RDewvI zLC98Ld3D02gM%Vuff+(gK@g^Jct5e|P2Y*xDVT4`s8nKXfuv-Me5G?i8t(SZaSA}n z4}Tq0*(eNcaRvs?d+NNe#et*)Y#Wy9oPY_H>!R;~Cz{PjHVDsZtUG zKk&I?)Q-D@FIUmq5we3P?^Uu>#E~!VUX_gz8Ig1@WXRVrK>EY}lc8p<{P6`<_ffQj zT*CF1Yr@8XFACic{rU_iu)HktOkTyW@Ks`9BX5P3hj8`COT8Q3;o)gox?>tD{fHGr zx+~EXj^nCki5HKmY>^LP@U#*Y_TrgkC;!|bYDe1!s!Otnqw?%y*mvSQ_YD)%02cTu@F04$*oD93~z4E4T93ad=6I7-YBD;)LBypB%t8bw`>Y!6Z zzy?bg(?KOd`Nvqsw=x#E`w*4QX4j`>z)_6y=w;gW#x zRr<;+)g)|EK`I~P=po0oc2KNG4z%r{qXNl;u*d_G00f~g#^{`JbQ`Pv)gi(!a1YD) z1WJwk?BeHueQXjvhaTDRn~uev9e>hL>T0q8WXOX?h?)?QL_!fVyiwrNMmU;Z9hy7Q zY*7caqs}4PIv=B*Y%m@Kk45!kOfS#U2qm!K{vaB#89o2LtAG9>9-si{XGk|Mm4TTmfF) zqEtz%ooV?(ZL4~Ue^xEa9Gv>mm4$Jp#fx7W2Eu2M*>}^(l`zw`cZ+k9M(A`df=>wj z%4Hx8?dk#kM@GU*X$#%P_FtuGEZ>FILE5qF{Ej_NymfHqx2QZ37OK1Nllbs@;4`XK zKe2=p9U@JOW4g@i;_x<4n;Wif4+|%_3Hw-HjH5G1z%c z`Wjy&Q{b;GQa*;M8_AC{B27N?9;U!Ez5|%D;~oEXI!Td+=v4863p~TLvqpk;yrqPt$(KBR$3+_WFc!SpmT2qG<&KR)=9Z?^B5u(Kl|r@}Ys5(Yanp#DymNJjzQ+2_f(z@rj(LVWiRH zwCz5@*_$3Bh8ZCr%&@3*91FZ%KCfYCn zX$(p-<~6d(128{FyvvK15!!qW9H`QcUT97pd@7$JHXlWKe(A8uW3|y1x-rJT5CE*; z#)qy!V)c@ABhz9ume!3P{uIcG!s$o zz${m~Ogxhe-m@?QT0;^t*i0R&K2^4kp=%%_FEcaOWp?vjsZg$ljpALWC{`G!R z?nLSHB^^DP;dui3(9&H=A%Gp_eQ=(Aj{giggafRHtg^+g$MZncU*H|6Dy^|Il%qjWZG9f*TIMV`}g_QFS4-BU+eglEE01jKVJ6bG)97X4p$ zOdipX8g>E)-5|YLkcEyp;@jO%9>3_ssWNE|+_nCYjuIeGt5*7~{8@&&)D`&Y*i$cy z<39J`w}B`8lBJ&2J<=-8;IalLO%kG5Gd?iBb2+w+eNoD%jDf+SK1I!RSc;lHN%8sa zM4>yVcI=bEUl*{^wTN-mHc)<7hJ5K{h%_AY&7B+1=CP;hHQS5TRgSYn|2me-Zd>v;$qpJCqO?06v+S<3A<8N3O47wxO~3fmB32Gd zx*Ja&#OTGYJz$v)3s1&?lU>nM=rH+|IM9<51=xKx$1b9;3m{_fhwfdB z%Uj$!IL<_($1}>7eGG?bAD~aXp8U0On>#GQma>(R_}lNa4~Qft%pb>d(qVn|IOhdU z4|5R)7hSDf9uyu8OPYZy1b!A?=Le6w!_9DLo!;Nci$7$cJH zmXrR=TjFCZ3`#J?AZved$9@$ksR78KCla#A0Em0w@IJ#+9Diw#XlWf8m4}qq9J<8C z5*r??OS<$Ds5{mNwHow7!$#M4kcXM*CJpD15cTj<**E`@3Bq*Bs1<#b%_*m!|7=@& z88ZdDe8nxieLwplH&@xI#j%;&d)zI}@wc30-{u!&ToP#?-2Q(ld(&S}lk2{(?!NcE zy?0Mf&#IXrhdV_v6t$SPDLJ+*%gKx6g%BXfs~|uC=l^gJy-5H;2@(s53^=A`NT8OG zvPdoDXofRG4$0YiruTih`@ZJ$`JU&weTSqGq`L3#d7i3Mr%s(Zb!s`aY`5=x{og0f zjoWwH@$byEwd-s2OQ9E8TjOZzTkI}1^|yccemnERx7*O-O|HIhCoyvf3LEv$c`C@E zz?@4%7jh)5bH_Wp%VA~MxlHGtk~egchF#?^r(+OR$&qK1>{gs+4(8a%6i4p5bDBke zSYVE8ScMLCN}YZNpU9`%XqVUy>nxuz3~@swk72F>Dg25 zI0nLJPMiimyuq+@_u+l`vw}=frzo!}`oGhhfT=NJYHXVtDVD;{rQU=F-(P6hpr#I%aN-S*V|JJrf=Q2#yr4Yn>x=m5MJqk z5!PMfOBkzov?TWs^MJWUO~$daj*&^7%IR|@djVtbEM68uePN*(0_}`Z z?=pd@?3|`;p&Dj)p~soK0D@Wsos_BL3ywj4`q*@PmtjxFU(l6-r)pqyuXlBZ3$D&4Wkp z+t;I&Bp(>2(N+7-HE(k)F|_Vs=$|CglM}n`6ECc_lPB4A&yMH8$?qbB7uw+S|FR9t z{0cbPmA>;%8{YVF+rPcm7G8a?J-FH0b%p}#$b-kpU!H%|p142UKL7TgbNu>TyS|EH z?A}=xQndEQ+THf{!g9O!wO8B6fBU~~bN|W7_ObW=HTU=0r=Wbug?)=r>isl&Xl!hc z`?L4krB~iY|1+<^VxcoE)_TYe)b$bOUT8N^l;oF1B`g-4q+K{S=~3VC8OBd}6h3ui z{?cD_g#Np2>bd9I)bVTW^7Y%92X+4JZ~{f9D<8qA&c3AfN$%){PiPWa6$t8L&9 zzRnc~W9{wRJMHzqyo@0m9m7s$PdiwpK05E?f^!SQesbai!(sC6&d%xf;5NrkqpNJo ztOv?p`rvMCw9J4z;FO1B=P$O8|N1{^>nvhmn^}xMbZQ*<0Yj=M9cAK7^ z!KUaOGn~6Eppn$7^_ZhvC!xW`e~59-19G-Z)easmoML9@exPon;?4o zD;zD21hjX)_hXLwUj-k=>EkEcFaFbCAnDci&UfEvcOP+NGcr1Na;lwu@kHBPSZ@#R zJ*+l`^j~B*@r5zyUcTFY{N5NlyIFjK|Jg0>0%x9dae0-Uyo(&Yz0`)+AF?3jR!*cl zb@DXbfzfvR#+CNzCoa;?aGW;xe!Ed(0-EhhtlM_WNh=aGyJ17QwqH4pK6Zhby2iVp zmpD58(g(NUBf5}2f#DmExK9{(ufCmO!PGAB11$1b<0=8gN9@xq92ua{_c7S-uzqzX7 zXdD&Z&bgg<_24E)pV%-fEF&}+w2y&x#oSI-Dgg_@<2JO!Pp_WUBB05iTb}a*E(OUB z%sPd;4)IYR3K_6=0#Hi<9iWoz(jciAMl|>a8EjxhK!1Ft3e!P;o8z zEFD3gh4_$eYIwn!eD}xW&_PDAvwJFBN1bsJ6Yu`rXNu7fJ`Q7;as7BenQ#2-Lc2%8 z<6m$7_RzruobeCif!~gKr7f&7+&MFjdt6HOe{yGWrTI4BdL@s~cywV_h3v>;iA zCX{Fd_Nh8Jv~2bFsazV*EZNDn01PX-`dE1Ak{7~|&2?6$xe_^zW9WGtw)g;to zy{mei$s~L;u<3(*hK~j9Z{@4}dmKuc66K_Z0NKUlOAnwN_2nS~{N=KA1;3#DbycPO zObdY0alFF^S2C7g$+!z%m30S99-q94anKdYK%+;wYY6^$B1Dc%gNO1cbpl-e%cL0f zYPgeOaZ7SKcf9mRK1-aFTp8dZgznZ4T^)V3$O!!mU!8b-#y#o2~?F$@m`+C z<%u8vB9(kwW1Wb%CX7S)_b{liv>R zjmo$Vo{Ion5>x;25Vyb34Xhen8VxVsdU}-O1S@8x(_@47k-;4Xf-x)#B3+>%(THBW z3I5>nr^gG=`KrEd)hXlmP7*T#)Oi>pl|^ai*%hFvh(Xtfi`#*Ki#WU&aGRrLwpbkI zq(D;1kG!K!*qLKcHOs0^=1aM^EBinnlM2$R2Yo6Ah0}p4-;xVSVtT5bJaLT4irqHP zD((OgqvuDZ&#z_5!Ljs zvMZ?VhxN=_s=P!~^7N=gfh0#n%7r>S#(lrlPf3?aA^xQpsHZjAVkDviH^>0U$tCfK z-xd2o$-Cr%kZ=BcB5x)OWb}`3Ob;OE{HYtF2aE+?;X{|7BIiFei8OfeHk};VW_=4z zsMOQCNnAhtr;KSpO+;x767$!283}mv7`_22R56&R>Dq)zkD$WQ&o$qAR8j;ONpJn~ z&zizyqWL1oHjm6!c6f>_^aX)f>svi)nWdfvKd=S{&KIyL2jB( z?hs>~R25(btsC&RXiQR4a^yv6B0P~QNLlqWf24)l4*1;akolrR%8M!zZ z9M2l=$Ptq$eLbIK;YLR#Y4B>fnMRPv6+hyU-+-7tuIE9xL>d{lsPiGpd643#_{d)` zZ^SKL6xNKIM38w9`$6aq&)XP>;7+-)%KOU8v z&X*XtieB&j5?J{c%D|)){0Zb+a?95mXy=P>z%2_STYubv?F5kv>gC5Fw}A7=dW}NS z*NM|(KAJW-B!sx@jEkHPu|HwIT;7DICJY6A+lhBkoN(J(>Wz8lp9Ux$T~ZcfRli(1 zQaAXSo@dlD8@&s4gvo6e;zd)F*R(l2 zCz%U6eQc6DMOVoIlYsOyr>EGRLZ8n?1!@Bg%kD~XmW-HfoCV8nx=`m#!AINIH718M zo&;VP%PFn|vEKPD*{CwA`eKHG20Zxyru16JqYhodJCp*a?g`sru4l!u==)^jFFCz4 zISQ@n4)5^DIm*SATCinXawyxxktV6lAFvvKj^gw*!%QM~l$ewY-CUSAc<)ggoVw8_ zpL)LVXoyr`K;V)3zF03t5R4hx=4>Qk-fs@MTf=`H*_0UPK|g+qMF^C~J?;}6W#`o# z3$;&S*uT$C%B|hC$c=e+qs%P0+~MuS{5p8{kmqWeoLl91;;t>Vg2@N#w|TM-(9Gqd z&vyhob&2*7(uJMic8a;tD z-FdLp{^$SY-x3brv3S_O_@(F1w@;lvDe=)I^Nd}r4}Zw6$-n%IziAiP&Gw1YXNfOW zXj5?2<{9fd^`5lCck*JLww_cOTaUflmoX@d@76J}&M!Vq#>^&|r|cim_4G%$VJD7^X6S@#dnsaq^O*{9rg$Jsqb-|K)rsQK8X zZ)9I>l)K`qJ%WvV4{!wV@e}OYqwH^Azt!&C=U89P4PPVMi?1pW=>%!*=RSH zcG_+Ho%i0{Mz4%+wU^(!+U~!D(R6;RU8Ou8v5R*i?G)q6sqyyI#Zzq$i{KA0Ew%d? zSRQdYoaw*%{vD2po#bxLq4q@#z$Y*uGl=B=O!{x!!8vhqs6F$5d7cOFw=aC2cIUbz?&V=igI8uDUalZ|5JS&P&d3tL<;Xj?IWj>{OIIx^1gXBQTD zeI7;Lj!)31r5^3Di&?{zI`}kqNn_WFj0|8P^AtJT3r`wxm!tgY7o1Us7lNfHqIlzuj$Av2xX~t$a zvU(huhUV-fr>5^~P=!B$fFGH2{F$;dHSch>f9>fNWo*n9Wyq<9Tu*R%4_tf5kaJ$6 zv>kRsif=zZ1;yFp1HI43Crj%<%Ro@zh5!Tco(Owky^AnU0P-+K2hIEULWfB96qgF*NQfAmiK{I7kX z4UBGNvBciac>CDtr#OLwBik{SpJao?4hsxs(FeoqE*=}9f5CCK>*yIzf^;qi70<4A z^aVT}Le_^k#p(ffZ$DhTMV{&VlFudPQNRApA5lq$+9dM2$fBz;?$W;V_K(|3pZSMv z`O4My@a`Q>8$r)-BE%?@umhZuWxqjNkYhmG@D0kv#VUjJy~c;P+9yxXwC7IFwR@Zh z@OSUuZV$MN_zuUKyHRP2zRw1BD@q4>aFL>Nj@(m+?As_X8+1)>qMyWPIlGAFBw?%c zqqeEv!{ak;2P2~OcWQ9CEnU9cUinx52gg&hknGgywux*z*R{30)JB-}J44wz9>p|E zddM&Big#8|O`wnLThX4Z=ClFpGrOT#u(P^5fw6Y7P29Slc`WBPNBUB={0<}@ge(jLQ~sl9d|ncRgA=g}rvRP)C5)%No6DtCHc zZWGuNR~cuoon4?Dr`o-Fck?cyBRAUpYag@+cORjDSJ=h8(@wBU-#qN?F%Gs2S%}~Q zkQH_YZ&7!*qYI)Lq$2eq^?-NlMk*Nb1}V!Ye(nkGUS?mux&|3LNjs`8i=7l}q{iQE zXdYoKz4{35p%d)Id$Q;-`q2%utP892qtx$ZY%Lzq`l0dlZ%= z+1cmE3h58di;DRlVbFlP!-|9z6p7u_34q=0Yo|crR!O?5J{>*cm?tMrR4!(uKjJ5) ziZX?MI{l~v0LAOdI9HctLK#0-%yBws5UF&;M^#V3W^!J_NON2q8XS0cQqEO=D*tg; zPm!)GOgG`iL>e4AxZrRiLuKZw23OAvGT9YH15If(Ob>kK$sNf~?4(N$4S11G*u*>k zeDA);>==<|@y}nDkb!xRZ_@A@qt5KZ_wol{SuNXB+$U!)8en^i`{7lsfo-m#rK;Fz3Y<(OCu#Kgw4Ju}kCEUFA z9rr%eED2#8iMD~te~_Aoa@|XK%{vU&N4n}MEMN7%qR0b@#w9k$1kqUzItM&@)oanfZ+*_;z6aa;jY39zI=%sCp<4C;KRH-xc6W0y5Quqj3MSwuI2 z8(1fj3u)nbjIF#2x8({{0y_vjaFMTi>+)R_KJogG{Xq9eT=EerLT`m-s92fBqmN;# zRR>T|sXKkhM=<_JKYkYU&+CkUW>Y7j!1$#meY+pDZ*%z5d-tbZNJc*f6RwFy`f}_T@!c8d1cEv& z69Lkm?D7I&9p401Br+^-WDN0qm@cXjoD!&yk?Y|p2Q|qd|0>vr^wMSm2Ji4tryI>q zv(B=%eC4$(70svYCIqlb$F{|GBIROy{OkBF0rj`u0W1CZsBa1?!TdaSrc{@)shUN|`AKmJOXbh?Abs-9;`rmN$hd z^`?8zgP$^%8(smHv#Uz&WZKd3-m8>P+7ALPCxC)mSpS0lap{Pw{0!(|@e2`&R1=n0>nBPf2vLhQ27}p)3~foZwhu;>0ng z_f~6!kIV!Uz(Fi6QeBnX^9I_(qS1?nEq8~pxZnLhfig$bb;u-KEVm3#DfRw2tVYnf^IqR z0qwjP&p7!*SBXn_@#}ciMdpmGKYr%cI8JK!F!I?2i6&w+SBWO+N{0Gn3xZLMvSK_% zc;&6|Xe6aZ@IfkZ>XJ+j8;^95(9j`r>q7dngxNk>UiB?)q;LMARsCH%8oLK|m{;{<7`YsEUg${a~0yi1<&v}~pbq`9>&Q*VCosTbCC+52`OE5l2G!ClUxzp%(34B{SSh~8 zJwx(I=W5|m2D`fq)c2ir177DO=m-;#@;fs^&>lmTxHW#$z78<1@@RJTXm(0DwqhLS zH9EAaK_v^2;*^2YIP%dpE6E#Zay(O?<%dFppJf+6WGrn6=_}Xap=Hy_p}N+;$cK3N zmmGk{-Fc6VL#DuQL5&LfWdgY3c1MoZq@;mC$MGV?8V>F)vXG(^MwIQbX9ZNF`nePqLw9Tyrn2~C!mG(kSew|%ck?7eGhXGz^lY=TSWi9xZr%21IRV`nWVuMQ`Z4-Lgutck z6PJ7zsj9`|GaO!~j{}YFeFzW1uWqgKC_nwxeU@n!2N*Z<*UJdJ1IFD*8l`PVtx;7z zl{beUXa^Xq8!3m%hAlcUDINaeCq?F+>Yw@-CW9nx zI{wk4GWaLs`%St|mKncy>P>N|A8msjJ1fhgfV@nO+rG(v(-w_)oh@TL^Bz6RsdPPM z3*yZAFcHX}V_=mK05A-DB;O#%TDoh{Sy{{8Nl#CEP{)eblN`2K$in%%iR)c-8ZR`+ z9x!QY%}~yFSP0}D*R^QW5@4Lfl{Vg8Juxv8SSM$_Z*pg6Ju)#c$f-=`LAgeDHEek$ z%`UV#Av?l^Xm&D@XVY^>VDih4{fXHrc83zjdO5=mJKMie<&I9~Fa`&YT~wxx6X!So zl<&v^0#Uo!;0kz>VSl;^!pejE93tTx*zk_{RrlnoLS&VJ;r#hcZHk^&A5?uU?x#>h zLmoOQ2G+DHkyN|Rr}{49qKKfIV!=scD? zB%QCmZ6Gl1o%gwKzyD4zE#&+H#hD+eZCtdR0 zn9hkVaGtpRVFMg%Tkq5>wg&`b;dZ*4xFosrE_QAp0@4Gpo!AzcSSr&hp!uK zKpJJSUv}W5BiyBB8F**v)HI8iFsRwCRbK*GmEq{HyLTS6H(!6feegcU28_j%QyjmG zz`T7ABQ{6%j?*u^#fkt=%v@y-TurGi`0)Nt`@jF-RTe^17VO?#SRcU%MV}biwBNbL zw#Hi;hcR$mS!M@1hM*Jd{=2{~x~ItZ;GK8dOBdLKr}dScii7OP8yMh@P`ZNy7(bpy zC!HMT{^9d8kfAqU!(82+m1hdv5ibmw4L|ggwB4Y7-F{e!pKio5#Zi^Dif>!gEBAj6gq87`ruG`#C~W#ORx`+xIB`_{MLV@K^) zyL|_PmWwR|iiFc4aPf|I1W(zr+6;2MzId(2r6bj5h1Pmz-^c!la%?}tg$ZLUN*i-0 z@ASzw%R+}4j^7>jm{WBNv~IDIVq%6Po>>Ut$x>N7LS5M19%xrrtQqj0G`m#N-%{5| zlUee|MP@Ffj=Z7otDk_u7V0wZA{OK*{T%Wyt^RonH}?9RVj|Aq0Tz(TFYRG;fOSP9 zZ16GdiSE3ygic}%NwWCbGTV=1T!LbfH*UOB+ipXrT=F!7jEBiv!4N^GXe73r%x9h- z`H6n9eS&sq%OVicH<3)?~JrNkA^u+9oZw_&ewVxm_3X8@cgeXueHy8aj88qez#rc2;=wOnrI(? z>LmAC-)UDT#@jH9h^H`~PSFnUQMpcI$bDvZhZ7n&!k$Itt1$H*yROHX?|O>i*YTN0 zZ512M{nbhC(Vil$gZ8<<_w(&DU-?S=#vlBfc7-#?UC^+~f{!U=V{Di^d8hZlJC;kHgaU%dQYTfKE9nl4}N^Pot<{UPdCSBTS^^% z=apC6nF$DF0ZL8)L{645D*w%&{&_n^wb|ZSqdbrs^0u+E!9thYv<2uIbmUg@OWNEA ze3_$;SDmPBo!L1v|+X?FAI)?5QcI?tHwh!LJ;Qk1yp)74D=O1y8Feez? zM9)rp>L+<~kuxg;7#gGR(QQYaZD=_J*9y})`-xA$TzRfOWGxd{>arMyaOcD9?{2Si zLIPt>H=t&0f(%*qd(bz+f}wrd7VCZ5XLz_rdA#;FZ@1mE$J!Yd5GdWW+U@0wEGlue zl?{(hnrzJT%}1f_^d;Xm!1hkuz3WQfL6pCWM>Qw#mdX_vtFL&`y-^1q!MK*yVu8%S zJPL+5u98tfI`5<%+KCBQSLG)dC&FT8xx&O3M^Svokbs1vgm``m#B>;jo~ z6_6{^C)p~lQ7+krsWyoIbM+A@VHWtiPKT3M<23rxBwtm`tE_(8rW4?K+jcZS6=ysn zt60Zr5R7Zy4?BclpHNW+J}E_E0Zw;MNZAGw@pLX2^y(Ao`~z*{$$uw>9GXmYZO&6T9<2+zK~1@Q{Qk964h$b-UK^!Oeap1z3BryWpnhG&7muOret+PF|9 z@-KN7N#MW`dVnBvPPXSx5D_Q7a5@@C!NN^|RqP0&nIEo+%2t=R9qqKEVllT7p5E$S5BO+ux zh7nOmcOU1_tMjKibhLp1e&kM4fX#(<+)iP>kmXEV6VG$=h3ylH!2x(nLfw=A;Ox9O z%Bmym<+WG|z|Tc4Hd-Nre5dRrQV)`}euN*wCQiX7-R?Vs&mbsLYI3zpLsV2?ClOs; zEaDCWugZfFyU08pG{&zh1Iyn(X|e2_RF4dGv8-$AQ+1_-7FQ2B5s?84@lMZr+z2Ny zFwj`0b8e?`Tx%^E74ES-z~}H18o*&EGR+8d=cs1VOQ#R^*=ATTlNV)LJpA)0P$vbF zOM<0AE;!kypCuv}Q=ZZY?i`mEqZyNtk|i!1Wa4J`1#$FqaI??WazHeB`(L;UjfCafFw?9^fb>o|IMO z*789EMaCWY5~TbLlTYskb71P~#a;CC7%OMp5jISRao0&CI_MsSGt6quZ8~>OsG6QD zVolb(_)i_5CFVTktGY-%Bdm+7eA;HM4|oGi#f^j#P&K7+c$B^J8F+rI55nnjGeTrQ|){;a#O=PCn`iTjj0CD<%G?!oov*!+cXNZ!z?3 z`e7W(K+0p&;@ycyK?3vyn0Dlc(mv`O4@F|Yx1kojNUSY|CX4G+5G3?jtm@$qwCAF zQmbG6#p&OnvrutIOS1C^xTo%UkuKgM9kHk-si+^szjlgn+RPuvB`U@QSlH)aSr(-$~0j2$>`n zZ;N1SG32m?}9E zn|~TRq(KnJX6CWl8d(Djvr)Fq-V?Tm@Oj;Vlb>VIYr9!mS4ptlC6Uljcz4W`xb@Fp z*9OPWIJzX7U-4Ub^1t#;Oebc6_l{+TViqGwP)6h{{!GG(Uo55pd8uiYp1$JfQ{hQG z;Y~f`Il_FmT$L9oHG<mQ$E6C_FG;oU$qH2PSr)EE2?lZVZF0pN8R3WZ`Y|1WkE&f z68K)eqz8~gXF4Wkszyj&^HD(hsFMmEen%n~m5@%L*FUgv2D;oC!tU|?P53WG)z21oq1 zKj|>9=EHYVrZ0?xr<@LfTzg zOaCV_#-!rF026q)X?A;fb-*x_(;J(MnHWu((Ff6xzlBjo`Q4?h80RR)Ey{ZvT$Ah+ zSz&VT7?Z#5LUV7GZK-X7CmgJ@NM?eGTTfIOWg^gYx0x{9+*!$q4el-ubuh>F$UeHK zIe1U-C?`Jbb7!NOSFdamHi{wO5hp}w0QL@IRhx5X_AL0pShYrdWc*E~*{30J?6rhp z(S;QDi|spwW%%1BYY<#qTyG2TAaynMns*BeC*SOgWXI&8Px&V>*eFHHl!77m;N?AK z10QVahaC5kcHdXkkYO8Da#*@u87ZeuO6isSDD2Q_`YtfGWbOAe_<$$8YfOL%PTJa+ z^JI*mA_InX2(+pYj}{zu__F%wI#JCuo2h8oc{l zym|JdzsA(3adCv{bK}L?%OW3~&BB24eRp_3Gl8 znRbg^NaLJR^rdrW+7x--w$JXaKj<+Vw$b)|RQAa;iyIa>`RFvq%UYM*`RI6j7up1~ zALliEW7ILPXwqEjpXqwqox7k@7QDNNe~6<+SGLzFCkz{8?f}|8ev+N@<`e$k=HAmc zZ*R0k`U@T{YFVAZSot}2Rt=-*2jIb+b%;9oC+~dN-sPUyp&gD|hn^L5fjjrSx^MK2 zALU*|do}x9cI*NZ4ZpS>o}RM7oTv9!Zn~(Byt-4;MH|Ye#z{{;aZy|HI_llU%kqs(1jSrQ`295SaoXUomjvXZR9E_UsVG-+7j#hh#nC zi06fc!FK6}b(C@?j2CD)XwR{;@yn+s+9bR_#*RDh5O)#bAlvM$3j^p^>&6g9nhAC` zkB?IV%mdA_+k4~2QhW97w=(Y9SYKra90u6PAv9Aai)+*s@(_a`<*HnJ^!N7WMB6*Y zsWrzinh$MZ{2Ad`bM*>y?JTZP*7n(vJH!sRV`q-HEi4uqy^o#1c(DPm;rB8{YMsG8 zt0=-lvBPWr5gk6M1C(>h2!rMATZ`?3Ym5=#ao>j*8cE8+;nTD1Xy%CZ0d}uG;P}_O zk1&}~USSoyl9$m@KKP4W#BhO37Z~rY9zuQw`5VxftDce`@-(zfL-aOk7jS19D^fsvf+efYaN9vl&?JHGsfUy zPrRc1ck#DHl5aaG=|S+0f@6ps+G5tZ8E=fTv+Z&7gmPuObpV|FMKPrNs^^%{3apH%Qapk~c6meHM{2o^XDzpD%GIu64)L7uDmt?7Fu37)R@mv}ay;rX4$Zt__@@Z>Kq>fo+x;SO?mf zPh4nYU;Rz$9yRd?+;97hcW9fquIn5NBL4B;$5{D9JO9d`v=fh7yYi4lDj0}oxwH2K z^=D%m!yskoqMqZ(!zuFhnU_ztPyW`gwRisb&)OfodAnVDe~J2offpegnLvgyWUk%h zc;_ddqWq_j>x1^vCtq$~`0}r09%SqN_u8X3-f9n7kh8mpp5kPXWpu`=<0sl23sW9& zr|#v4EQz7tkfX~T7gI0BJWT@Ss4RPe$Ta0Yh0V)8ET_-6Pdzo=KL1<)w2d8~ZcqIA zU$yVNIUhs$CU@1^d6;|dh4!i6_(yH={=P%#xf zvJRd_?)6?o|BbVQeGG%G_oCk?|BH(-nKoc{W+r2A{TJDxs~p~4S#Dz(SZCqU1jhM$ zcSqZUks0iKoQTJj2A&MIM8D6L*7n`gsyy0!n3KP3dp0(nJXUyRd@ewc09+SQbX-+j$J)_RRo(K!Lxq@DGDF)wMd-rk^^Q zY6(%@hYv|JP=%ngG3|l%Q?>fr>AI*0S7bZURTUi^bd1Gm$IA&8v_=~IH40wUPuDw& z!1U5VroipES+T1#NC3`(QaUEYv7@kvu-c*WNC)Xqv5li79Gp1;I6=eeu?{xQ?!Fm8 z7$#M|;B^o|)EIHCpc)oiZcqlL0CSU{(AQ zpZ6*=W9TZ4Ds$77=M_?r6&?fzfZGPtKRd@T2oPrA7{}~W|10&v)VPGuDjsx;JY3OH{ zP1hmCUq78b3CAy-?gFGiXZpGt$jcuZD}szyI1~I+_zdsM!qh@0_y*|y^5Ov>rB$$Fj76b;4ql26~YXr)WXp z60RO5C^Rr|=3V`(ZkCnqXYu$Uckp;W@dyS{^UtYa+*w>wDOuu{|E8PF;AMUtz^&7u z+7We-mt$IJ9Mtu!#Q}zQ@HuJhyKGKJkoR3aGSN&ti?ehZ9ens{U6gk=+#c;@TsyVZ zBQ~E>WkU*Iq=`>?YO#SX z)Cv7lo*(fs^rsXQf= zK=0G3aYeLpq+n&D9{lcfkOzKeM-6o;BN3@3fvV&6lqSnpzvP%7+nbb&Wd?yUPJ>I@ z(r!`i)g}Q&8%FUUgT}6vz+tRu;XEC~T-TP$2AE4#c{_mmY=5JO;jPdY}4kG~np#lQbiHlud~R8&d3agCT~hqZ4< z^bN`QOHxuQKx5(jsGPW})9*um@MXKBGc}ExLi9VM#EWppFB~Dzd|6u(giI86@mGEh z2bh5X@FR{`M(mt%%av#SqI(@dgdXLk`X|w8P_CiIzE)&GD8dQpdYpaj@5-)-DxgdZR}1R2lfn?NQ9CEMjdN^RG5@4 z8R+w1n^R>EeRxvS55uCT^HtDCSkS?kPfGyal1?Tz`IZODlCRxoUVOLhP|XAv&-88b zRb^O+DLdne$vhM^-~7WP^3>9wqTz7j_GIuq?N;1H%Pq|bu9XHp2tlr<+!ceY#xUi}DnRm#6H zCP}3QkkCi)p*!*#zy8~-)w}6;eCY!7=={_rPO^Gcly%a0%sA(JfXN^4de>++uuZ-x zH+Sk~Aqe?M{Wb6I^kSTz-Ja^HE*&XQo)wTzI(avDdH8$idU{jVz047+e`pf&5U(Hl zB6Gr8=F*{8_ml?nR?dirSbERy+4*<4vqOrI$oS8ShF@av^EjWv|Ev^*45p8g{u22V|3_Fk0cTlS4Xa{*1VRF0l|?=j5}b9>d6Ig5sH-;+g}D z=d0`nnVp+sqO%s8$d`R~l*(I;x!bh2j$3LsJMSbq!EU=_vvb@L%H55-3-HVwnVuZ5 zOw?^0Er|iia^9oNMn>3es$kuIx6OX~%k71iKiMWYa(8`oq20LhZrk7sUXW`3-Pg{iG@pY$F)bC2Ni$`U)rPP9`P>)lmra=jGW*Kz{is{`ojQ`fk!caHlo zIfZSCBW9f>zrMuoFLq-gqzPN>VXW9+^}#t;>V*>1~}=?`u&w@SHerw`fM1$OgI zpgT5Km)oTS45*~B#00#uvxwgKaA~={edji^bu7lur_Y{fH`qnD&ZPV4W5?U(z*hUr z^G~!(AKp*>U*8&Pb0;WQ>h%?lW*&hTr;pFH`DJ#>vKw!Q-DBR{yUvLKG<+P9iY_A$ za>Y7P^BFP@sg+Tl?no$T;Gy*n?L!$VPxdS9ODW?@pskJuMHrR3QFCO(BY*ZAHT-&~ z=!rRMBnGr;-kF#;QJ75`VT>K%lnMnsJFvMwbpTpjT)wcr*#7$3BkCrn4Nyi@!thjH zTCVP>ALi)VVe%q<8qH@ZERVVOI+MGXt}#yIzEccQS01jk>l-)Pv$O2(c44Nvkh^WK z{rCe;qG6}_qcz|^WP=f#hgLN1V4T8;HpS7p)@8Cm{>`;JAfa7e@y~1wY0!kHW1chu z-8-c1QP1u)MBTPyGXw3v`7fVq|JiSUnKK}U+VB6~e`x>P|8?7<(lDYt|BN3CAKcKGZxckW^koSbE> z%YvXQcUKwXV%un(mIA+BEI&m1HA)-vmCwz!cdoKH0{PZByNSi{3olN#m!2AJfA-zA z_S-){-Y#)`_cyOF=RZ(L3@VdyD#5d0gn2@M)Y^DaV+m#jffXHQk>(+s{YG({vWbK z4#{-*?V?aVia*LD6)~*??O{%I6$AQ0t{URJfNg(Vdjv*g@{cJ2Bi{SVqG^0>op(OZB1-L`m({wMw3i`>zDVG;xJ zB;}8EPjZa(*tKtS7x2g0m2Z8wy>giy|4%&E1}K1Z`#;J%