From 6c33d933cf10f97cff54ca6c02de8b620ecca174 Mon Sep 17 00:00:00 2001 From: muhme Date: Tue, 11 Jun 2024 15:27:22 +0200 Subject: [PATCH 01/10] System Tests README extended - Extended with software architecture pictures and new folder tests/System/images for used architecture diagrams, see README.md there - Described software architecture as overview and second time in detail - Detailed and updated the existing documentation - Added hints for testing and development - Added troubleshooting --- tests/System/README.md | 317 +++- tests/System/images/README.md | 14 + .../images/system-tests-interactions.odg | Bin 0 -> 49131 bytes .../images/system-tests-interactions.pdf | Bin 0 -> 44036 bytes .../images/system-tests-interactions.svg | 1457 +++++++++++++++++ tests/System/images/system-tests.odg | Bin 0 -> 45402 bytes tests/System/images/system-tests.pdf | Bin 0 -> 31169 bytes tests/System/images/system-tests.svg | 1324 +++++++++++++++ 8 files changed, 3053 insertions(+), 59 deletions(-) create mode 100644 tests/System/images/README.md create mode 100644 tests/System/images/system-tests-interactions.odg create mode 100644 tests/System/images/system-tests-interactions.pdf create mode 100644 tests/System/images/system-tests-interactions.svg create mode 100644 tests/System/images/system-tests.odg create mode 100644 tests/System/images/system-tests.pdf create mode 100644 tests/System/images/system-tests.svg diff --git a/tests/System/README.md b/tests/System/README.md index 5450021231a15..dc019b269339a 100644 --- a/tests/System/README.md +++ b/tests/System/README.md @@ -1,101 +1,269 @@ -# System tests in Joomla +# System Tests in Joomla + +The Joomla CMS System Tests are end-to-end (E2E) tests and executed in real browsers +using the [Cypress](https://www.cypress.io) test automation tool. +These tests simulate real user interactions, clicking and navigating like a human would, +to ensure the entire application works as expected. + +This document provides an overview of the software architecture, explains how to set up the test environment +and details how to execute and extend tests. +It concludes with solutions for common failure situations in the troubleshooting chapter. + + +## Software Architecture – Overview + +The following software architecture diagram illustrates the Joomla System Tests architecture and provides an overview. +It is simplified to offer an initial understanding. Detailed explanations follow later in this document. + +![System Tests Architecture](images/system-tests.svg) + +On the left, **Cypress** is running as a [Node.js](https://nodejs.org/) application. The file **`cypress.config.js`** is used to configure settings and preferences for running the System Tests in your environment. + +In the middle, the **Cypress Test Runner** controls a **Browser** with the **Joomla** application running HTML, CSS, and JavaScript. Also running in browser context are the **Database Commands**, the **API commands** and the npm packages **[joomala-cypress](https://github.com/joomla-projects/joomla-cypress/)** and +**[smtp-tester](https://www.npmjs.com/package/smtp-tester)**. + +The **Joomla** CMS server software is depicted on the right. It runs with PHP on the **Web Server** and includes +several key components: the public **User-Frontend**, the administrator **Admin-Backend**, the **API**, and the **Web-Installer**. These components and their interactions will be detailed further later in the document. +The file **`configuration.php`** is used to configure settings for Joomla server software. + +Joomla uses a **Database**, and the System Tests do as well. -The CMS system tests are executed in real browsers and are using the [cypress.io](https://www.cypress.io) framework. This article describes how to setup a local development environment to execute the existing tests and create new ones. ## Installation -A couple of steps are needed before the CMS system tests can be executed on the system. -1. Clone Joomla into a folder where it can be served by a web server +Joomla System Tests work on different operating systems such as macOS, desktop Linux distributions like Ubuntu, +and Windows (using WSL 2 or a framework like Laragon). They also work well with Docker containers. +You will need a Web Server and a database like MariaDB running. +Before getting started, please ensure you have the following prerequisites installed: +[PHP](https://www.php.net/), [Git](https://git-scm.com/), [npm](https://www.npmjs.com/), +and [Composer](https://getcomposer.org/). + +The following steps are required for the installation of the CMS System Tests. + +1. Clone Joomla into an empty folder (e.g. `/var/www/html`) where it can be served by a Web Server ``` -git clone --depth 1 https://github.com/joomla/joomla-cms +git clone --depth 1 https://github.com/joomla/joomla-cms /var/www/html ``` -2. Install the PHP and Javascript dependencies by running the following commands: +2. Install the PHP and JavaScript dependencies ``` -cd joomla-cms +cd /var/www/html composer install npm ci ``` -3. Copy the `cypress.config.dist.js` to `cypress.config.js` in the root of the joomla folder -4. Adjust the `baseUrl` in the `cypress.config.js` file, it should point to the Joomla base URL -5. Adapt the env variables in the file `cypress.config.js`, they should point to the site, user data and database environment -6. Ensure the system has all the required dependencies according to the Cypress [documentation](https://docs.cypress.io/guides/getting-started/installing-cypress) -7. Install Cypress +3. Create the Cypress configuration file from the distribution template. ``` -npm run cypress:install +cp cypress.config.dist.js cypress.config.js ``` -8. Run Joomla installation with headless Cypress +4. Adjust the parameter `baseUrl` in the `cypress.config.js` file, it should point to the Joomla base URL. +5. Adapt the env variables in the file `cypress.config.js`, they should point to the site, user data and database environment. Ensure that the `smtp_port` is not in use on your system. + + +## Running System Tests + +After installation, you can start the Joomla System Tests with headless Cypress. The test suite starts with Joomla Web-Installer as the first test step. +``` +npx cypress run +``` +:point_right: In case of errors, see [Troubleshooting](#Troubleshooting) at the end. + +You can execute single test specs, e.g. to run the installation step only. ``` npx cypress run --spec tests/System/integration/install/Installation.cy.js ``` -:point_right: In the case of `EACCES` or `EPERM` error, see troubleshooting at the end. -## Run the existing tests -You can use Cypress headless: +You can run multiple test specs separated by commas and use patterns. For example, to execute all the tests from the +administrator, site, api and plugins specs without the installation step: ``` -npx cypress run +npx cypress run --spec 'tests/System/integration/{administrator,site,api,plugins}/**/*.cy.js' ``` -And Cypress has a nice GUI which lists all the existing tests and is able to launch a browser where the tests are executed. To open the Cypress GUI, run the following command: +> [!NOTE] +> Cypress has a nice GUI that lists all the existing tests and can launch a browser where the tests are executed. +> It is really helpful to be able to rewind in case of problems and see how the automatic browser works. +> The Cypress GUI also displays the Cypress log output, providing real-time feedback on the test execution process. +> To open the Cypress GUI, run the following command. +> ``` +> npx cypress open +> ``` + +If you are running System Tests, you will see `console.log()` outputs from Cypress Tasks in the Node.js environment. If you would like to see `console.log()` output from the browser in headless mode as well, you can use the Electron web browser and set the following environment variable: ``` -npx cypress open +export ELECTRON_ENABLE_LOGGING=1 +npx cypress run --browser electron ``` -## Create new tests -To Create new tests, create a cy.js file in a new folder which matches the following pattern (replace foo with the extension name to test): -- Component tests belong in a folder {site or administrator}/components/com_foo -- Module tests belong in a folder {site or administrator}/modules/mod_foo -- Plugin tests belong in a folder plugins/{type}/foo -- API tests belong in a folder api/com_foo +## Software Architecture – More Detailed + +Since many interactions in System Tests are involved, the following image illustrates 10 simplified interactions, +which are numbered and described below. + +![System Tests Architecture with 10 Interactions](images/system-tests-interactions.svg) + +1. **Cypress** starts the **Browser** and runs **Cypress Test Runner** to control Joomla running in browser and access the DOM. +2. **Joomla** software running in the browser sends requests to the **Web Server** and receives responses just as it would during normal use, even without tests. +3. The Cypress custom **API commands** (described later) interact with the Joomla **API** on the Web Server. +4. Cypress **Tasks** are used to execute code within the Cypress Node.js context. These tasks are triggered by the Cypress Test Runner, which runs in the browser, and are typically used for operations like +interacting with the file system. +5. Joomla on the Web Server interacts with the **Database** as it normally would, without running any tests. +6. System Tests has Cypress custom **Database Commands** (described later) to interact with the database. +7. The file `cypress.config.js` is read by **Cypress** and used to configure settings and preferences for running the System Tests in your environment. +8. The Joomla installation is initiated by the test spec [Installation.cy.js](integration/install/Installation.cy.js), +which is the first test executed in the overall test suite. +This test spec deletes the Joomla configuration file, and since the `configuration.php` file no longer exists, +the following Joomla Web-Installer call starts the installation process, including database creation. +To ensure that this initial test spec runs correctly, the `installation` folder must not be deleted, +allowing the System Tests to be executed multiple times. +After the Joomla Web-Installer completes, [Installation.cy.js](integration/install/Installation.cy.js) +modifies some parameters in the `configuration.php` file, such as SMTP settings or the API `$secret`. +9. Joomla Web-Installer creates `configuration.php` file. For security reasons, the file mask is set to read-only (444). +10. Joomla reads the settings for Joomla server software from file `configuration.php` like Database connection or +SMTP configuration. + +The used npm package "Helpers for using Cypress with Joomla for testing" **[joomala-cypress](https://github.com/joomla-projects/joomla-cypress/)** helps in writing the Cypress tests for Joomla in extending the Cypress API with custom commands. + +> [!IMPORTANT] +> Some `joomala-cypress` commands are overwritten by the System Tests, +> see [tests/System/support/commands.js](/tests/System/support/commands.js). + +The **[smtp-tester](https://www.npmjs.com/package/smtp-tester)** npm package creates an SMTP server that listens +on the `smtp_port` specified in `cypress.config.js` during test runtime. +This server accepts connections, receives emails, and provides the capability to check the received emails during the test. + +> [!IMPORTANT] +> The Cypress custom commands and the tasks are asynchronous operations, meaning their execution time is uncertain. +> Therefore, you must always chain them to ensure they are completed before the function returns. +> Welcome to the async land of Node.js. :sweat_smile: -Probably the easiest way is to copy an existing file and adapt it to the extension which should be tested. -## Some developer information +## Create New Tests + +To create new tests, create a `cy.js` file in a new folder which matches the following pattern +(replace *foo* with the extension name to test): + +- Component tests belong in a folder tests/System/integration/{site or administrator}/components/com_*foo* +- Module tests belong in a folder tests/System/integration/{site or administrator}/modules/mod_*foo* +- Plugin tests belong in a folder tests/System/integration/plugins/{type}/*foo* +- API tests belong in a folder tests/System/integration/api/com_*foo* + +> [!TIP] +> Probably the easiest way is to copy an existing file and adapt it to the extension which should be tested. + + +## Test Development + Tests should be: - Repeatable - Not depend on other tests - Small - Do one thing + ### Tasks -The CMS tests come with some convenient [cypress tasks](https://docs.cypress.io/api/commands/task) which execute actions on the server in a node environment. That's why the `cy.` namespace is not available. The following tasks are available, served by the file tests/System/plugins/index.js: +The Joomla System Tests come with some convenient [Cypress Tasks](https://docs.cypress.io/api/commands/task) which execute actions on the server in a node environment. That's why the `cy.` namespace is not available. The following Cypress Tasks are available, served by the file [tests/System/plugins/index.js](/tests/System/plugins/index.js): -- **queryDB** executes a query on the database -- **cleanupDB** deletes the inserted items from the database -- **writeFile** writes a file relative to the CMS root folder -- **deleteFolder** deletes a folder relative to the CMS root folder -- **getFilePermissions** get file permissions -- **changeFilePermissions** change file permissions +- **queryDB** – Executes a query on the database +- **cleanupDB** – Deletes the inserted items from the database +- **writeFile** – Writes a file relative to the CMS root folder +- **deleteFolder** – Deletes a folder relative to the CMS root folder +- **startMailServer** – Starts the smtp-tester SMTP server +- **getMails** – Get received mails from smtp-tester +- **clearEmails** – Clear all smtp-tester received mails + +The following code in a test executes the writing file task with parameters: +```JavaScript + cy.task('writeFile', { path: 'images/dummy.text', content: '1' }).then(() => { ... }) +``` +:point_right: As each task is asynchronous and must be chained, the result includes `.then()`. -With the following code in a test a task can be executed `cy.task('writeFile', { path: 'images/dummy.text', content: '1' })`. Each task is asynchronous and must be chained, so to get the result a `.then(() => {})` must follow when executing a task. ### Commands -Commands are reusable code snippets which can be used in every test. Cypress allows to [add custom commands](https://docs.cypress.io/api/cypress-api/custom-commands) so we can use them across our tests. They can be used to create objects in the database or to call an API. As cypress doesn't support namespaces for commands they must be prefixed with the file name and an underscore. So a database command starts always with db_ and an API one with api_. -Commands can be called like a normal function, for example there is a command `db_createArticle`. We can use it like `cy.db_createArticle({ title: 'automated test article' })`. These commands are executed in the browser where the `cy.` namespace is available. +Commands are reusable code snippets which can be used in every test. Cypress allows to add [custom commands](https://docs.cypress.io/api/cypress-api/custom-commands) so we can use them across our tests. They can be used to create objects in the database or to call an API. As Cypress doesn't support namespaces for commands they must be prefixed with the file name and an underscore. So a Database Command starts always with `db_` and an API one with `api_`. -#### Database commands -The database commands create items in the database like articles or users. They are asynchronous and must be chained like `cy.db_createArticle({ title: 'automated test article' }).then((id) => ... the test)`. The following commands are available and are served by the file tests/System/support/commands/db.js: +Commands can be called like a normal function, for example there is a command to create article in the database: +```JavaScript +cy.db_createArticle({ title: 'automated test article' }).then((id) => { ... })` +``` +These commands are executed in the browser where the `cy.` namespace is available. + + +#### Database Commands + +The Database Commands create items in the database like articles or users. They are asynchronous and must be chained like: +```JavaScript +cy.db_createArticle({ title: 'automated test article' }).then((id) => { ... })` +``` + +The following commands are available and are served by the file [tests/System/support/commands/db.js](/tests/System/support/commands/db.js): + +- **db_createArticle** – Creates an article and returns the id +- **db_createBanner** – Creates a banner and returns the id +- **db_createBannerClient** – Creates a banner client and returns the id +- **db_createCategory** – Creates a category and returns the id +- **db_createContact** – Creates a contact and returns the id +- **db_createField** – Creates a field and returns the id +- **db_createFieldGroup** – Creates a field group and returns the id +- **db_createMenuItem** – Creates a menu item and returns the id +- **db_createMenuType** – Creates a menu type and returns the id +- **db_createModule** – Creates a module and returns the id +- **db_createNewsFeed** – Creates a news feed and returns the id +- **db_createPrivacyConsent** – Creates a private consent and returns the id +- **db_createPrivacyRequest** – Creates a private request and returns the id +- **db_createTag** – Creates a tag and returns the id +- **db_createUser** – Creates a user entry and returns the id +- **db_createUserGroup** – Creates a user group and returns the id +- **db_createUserLevel** – Creates a user access level and returns the id +- **db_enableExtension** – Sets the enabled status for the given extension +- **db_getUserId** – Returns the id of the currently logged in user +- **db_updateExtensionParameter** – Sets the parameter for the given extension -- **db_createArticle** creates an article and returns the id -- **db_createContact** creates a contact and returns the id -- **db_createBanner** creates a banner and returns the id -- **db_createMenuItem** creates a menu item and returns the id -- **db_createModule** creates a module and returns the id -- **db_createUser** creates a user and returns the id #### API commands -The API commands make API requests to the CMS API endpoint `/api/index.php/v1`. They are asynchronous and must be chained like `cy.api_get('/content/articles').then((response) => ... the test)`. The response is an object from [the cypress request command](https://docs.cypress.io/api/commands/request). The following commands are available and are served by the file tests/System/support/commands/api.js: -- **api_get** add the path as argument -- **api_post** add the path and content for the body as arguments -- **api_patch** add the path and content for the body as arguments -- **api_delete** add the path as argument -- **api_getBearerToken** returns the bearer token and no request object +The API commands make API requests to the CMS API endpoint `/api/index.php/v1`. +They are asynchronous and must be chained like: +```JavaScript +cy.api_get('/content/articles').then((response) => { ... })` +``` +The response is an object from the [Cypress request command](https://docs.cypress.io/api/commands/request). +The following commands are available and are served by the file +[tests/System/support/commands/api.js](/tests/System/support/commands/api.js): + +- **api_get** – HTTP GET request for given path +- **api_post** – HTTP POST request for given path and body +- **api_patch** – HTTP PATCH request for given path and body +- **api_delete** – HTTP DELETE request for given path +- **api_getBearerToken** – Returns the bearer token, creates user entry if needed +- **api_responseContains** – Checks if the given attribute in the response contains the specified value + + +### Developer Tips + +#### Running a Single Test + +If you wish to run only one single test from a test spec file for debugging, you can add `.only` to the test function: +```JavaScript +it.only('running only this test', () => { + ... +}) +``` +For more details, see the [Cypress docu, Excluding and Including Tests](https://docs.cypress.io/guides/core-concepts/writing-and-organizing-tests#Excluding-and-Including-Tests). + + +#### Wait After Action + +When developing tests with Cypress, it can be helpful to insert delays for debugging, allowing you to observe the status. +For example: +```JavaScript +cy.wait(20000); // waits for 20 seconds +``` +:no_good_woman: Do not use `wait()` regularly in tests. + +## Troubleshooting -# Troubleshooting -## Errors 'EACCES: permission denied' or 'EPERM: operation not permitted' +### Errors 'EACCES: permission denied' or 'EPERM: operation not permitted' If the Cypress installation step or the entire test suite is executed by a non-root user, the following error may occur: ``` @@ -109,11 +277,11 @@ Or on Microsoft Windows you will see: > EPERM: operation not permitted, open 'C:\laragon\www\joomla-cms\configuration.php' ``` -The reason for this error is that Cypress first creates the Joomla file `configuration.php` via the web server. -Subsequently, some of the parameters in this file are configured by Cypress under the current user. -If the web server and Cypress are run by different users, this can lead to file access issues. +The reason for this error is that Cypress first creates the Joomla file `configuration.php` via the Web Server with file mask set read-only (444). +Subsequently, some of the parameters in this file are adopted by Cypress under the current user. +If the Web Server and Cypress are run by different users, this can lead to file access issues. -You have to give the user running Cypress the right to write `configuration.php` +:point_right: You have to give the user running Cypress the right to write `configuration.php` e.g. with the command `sudo` on macOS, Linux or Windows WSL 2: ``` sudo npx cypress run @@ -123,4 +291,35 @@ If the `root` user does not have a Cypress installation, you can use the Cypress ``` sudo CYPRESS_CACHE_FOLDER=$HOME/.cache/Cypress npx cypress run ``` - + + +### Error 'EADDRINUSE: address already in use' + +If the used SMTP server port is already in use you will see an error like: +``` + Your configFile threw an error from: cypress.config.js + + We stopped running your tests because your config file crashed. + + Error: listen EADDRINUSE: address already in use :::1025 +``` + +:point_right: Configure a different, unused port in the `cypress.config.js` file as `smtp_port`. + + +### Timeout Error on Slow Machines + +If you encounter the following error while running the System Tests on slow machines: + +``` + AssertionError: Timed out retrying after 4000ms: Expected to find element +``` + +:point_right: You can increase the default 4-second waiting time in the cypress.config.js file: + +```JavaScript + module.exports = { + defaultCommandTimeout: 20000, // sets the waiting time to 20 seconds + ... + } +``` diff --git a/tests/System/images/README.md b/tests/System/images/README.md new file mode 100644 index 0000000000000..f3d7dd07bb924 --- /dev/null +++ b/tests/System/images/README.md @@ -0,0 +1,14 @@ +# Images Used in System Tests Documentation + +Software architecture images are: +* Stored in their original format as OpenOffice Draw (ODG) files and used as SVGs. +* Designed to work in both light and dark color modes. +* Using Joomla logo colors and the Ubuntu font. +* Avoid using transparency, as it may not be displayed correctly in Firefox and Safari. + +To create an SVG from an ODG file format: +1. Export in OpenOffice Draw as a PDF with the following options: + * **General** – Embed Standard Fonts + * **Graphics** – Lossless Compression +2. Convert the PDF to SVG using the command line tool `pdf2svg`. +3. Modify the SVG file to use `` diff --git a/tests/System/images/system-tests-interactions.odg b/tests/System/images/system-tests-interactions.odg new file mode 100644 index 0000000000000000000000000000000000000000..70b9f1a12d1c8af9b9cc64edbcb6086e4c9af269 GIT binary patch literal 49131 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%0DOG4Jf90#*J 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 literal 0 HcmV?d00001 diff --git a/tests/System/images/system-tests-interactions.pdf b/tests/System/images/system-tests-interactions.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4adcdcf476a42fa015eca2c0164b309323dcfabb GIT binary patch literal 44036 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
    8xzk3$RCOb0*sy>6ASi)9BA^r8cV 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/System/images/system-tests.odg b/tests/System/images/system-tests.odg new file mode 100644 index 0000000000000000000000000000000000000000..9bdf4eca4fa0a8935c3d16f00b2f0dd31c7430a6 GIT binary patch literal 45402 zcmaHSV~}P|(B;#%ZQGc(ZQHhO+nlyB-P5+GZQHhOZNIVmMeP3BA9bVRMnzWLs;s=3 zCr>I!gMgv}0FVFxvGSNk9tiya4FCZ6ul>9N*jn0}x_CO68ag=GSQ;C;SlZh$xY?P| z+Z#GtI@8-bnA(}x8@t+?+PTo1I~h7ySQRFQ33#fe!74jNZ_BRNjx|0285?G+l&3fqxK(&24{p>?VF@@h^W{+E^=8|S3!=NO=dBJM0D6$>zT^Rp_E4A?p`V5GG6i?Domso0A zqK$G3hjBvto7xFd5lFbmR$aTqX71Hwn~o&w7*VLwU|uscxEDt5VPs-P@<~su;!Yiy z?a%SoMNu63GoJ3%Gv8YT|Cd4Kc+x#yo3QaK;~eLj#J)GyP7w3fa9$$3Ef1_pd4YGD zO;1G7W9D-R-reL79$c)XKIP4=6Vy&=aGXg#dJn__+~}tvLSf~E{CPZc@=zxaAGZm? z$&>^`93v?jYU%)hR~L~R!-C@NS={CN1gQA3t6S%v;hp`bcNNB9$Z!gi2s9oc=7eHi z{xUZ*2_$9M%HUmTMN1!}-^(9UHUD&#lz=b%1XzL!DG^h{5^k`jAWecGIs|NjL;6Gw zY*s>r@u_SIsPo9>MM!z#SUNZVAyPz!_kjPh5ivmK;ggHtB`p++QA|@6UzVr^-7%66 zlHb4l_BQ+e`c(1U8JbvIF~0ulR=?Wt>{i`iUp=4u^*FG3Y3DoNtKwz6WZC}S?nJsy zS5H5wY0)^Je_po!mLv1KXIA?Rxj0U!Iu3JL_UOfGnX%*WVPwIiA@f(lUHW-++RM&T zm3DASPR(Jd%51+kitEqONPs)-mb)qwp{8gV)1Jc@u`n_yN0o37^Y^%wOPy@HO8~#<$tdgW!hgk zlMc_zKKZiS;{^8lX_SjECZ&>-H=*)Yu*Q)Ed#}Fly~qIw&WLiDW<6hPh#Y_j)t#M( zc#Cjf$*^`3t|l$nq?uX&g)QIb&E(kNVxNnZKf_7M1RnDS}A} zt9@oBFG22+am}pzwkyHe%$rr7sx}MnG&e*E8mlxT~`UddwzSz?yO;COV1tZk_?YmPJTc7G^ zy0liWLWT~#A2+Uz0e8K}q!l9Eo%%P@B7U%GbwXPaNwHHJwN+>iO;m=1X(uQcs7Z>o zzd%q?E*Vy;%}hl_#Z;FlJVGeEBeDLMTp`{U^6L6p8TLD0|3z`Z7}VH;y03YPvoiaW zS;Dgo{p!=&Tm!YYFaMbUwK`IS2cI1tR)P>P+3iuOX#R`Y;9ypqKy}xa=wE4jJJ)1Y z#}#$%Ku%X491QzF5>k^fVlkIXH3iq_KN0;+7zoh*r>}+^cyymN7|tsyDCH=;<6pEb z{ov4kTgOZg+{*bGL}69+FFdj8M%Er##|xuNn~U=|1=JHKwOS!gO}*08$uN$pxF+}m zjKzN{P^6~&9es|cazOOj)`|aG+7yEVMxqmMHt_yzdy~67%jOnF$7&s_%6C9+0eZ~U7eMg z3Ooa5=QP{c0z<`gy*zh?R*|81UgGD8Ln%UPZ3oCcYPHmpzC*?NcA`(1f2Hza2?`J( zGJbR+G*PEY$xBf1b|%i=?x$WpUv^U9S^FOi!enG*ush2m+JHA_89#Z+>78)3d#(fh zT6(bQj6~goeEsJd9l!(Y6e?Zvj_L`k(_h5jng!tgfnuR66(5 z(FQ^1p!fzXCViil7gXJp;bXTeDDx_XBtf~yqE)U|a`Noq8Oil4+C?*?W~GM)Kl-PaSmU-@~Jec?MsaayS`J4x> z*YJKkfAz&Nme}7iZ5`>5icyb?iD6Qac39Zd#?Pa7_J40{(v$-?eb-};-4jz& z@OpaHL6L}^tVy4J(hN|b``ASl?gNlxoM}#*+vD=eKoXGUBJQ7WIT+#)5L`nW@C+XV zDDna4rdyBxuRGVw88X8%ukkQL&UAnL-{$Re+-~^%&dI`u-3zRxsMT*(Bd;?K^SU17 zYbyE=OySSZzs`^Oxs=yiEZX*at5vjLXIbnkwL8GWb}b~9bsukE48)hdx)@dP`oHh=69QUCOqhu%9vJxF>NIFejU?ixVxT0kv9XCInVFfBpqQTRJzb29_LgLo z&L~1T888S8wi7rUuYKjUXwi430l_~WXTFV;eitXxp8!D+rMU}^yrs6!in#1I*c;J}2QBMza}YVSNyb%BqTun-Q3sf%=s zKnbejZNEF?v2hVYr~9?+>|%-UKc6?f>pjQ(e0=n&Tf|7wWJV{E_L~LE=bGzL{r&x) zyeRpS&eL16!NI{hzrD8Y{+cC3gvj%G5u`RHBp~8G*;3PMsNaYRq7xf^K2Y!<-7|ca z)!Pay8rlt=oKRX=1HB6xJcGCs;{w+L&+idY;XQrcK^=UHc;F z7;>6yH9#S{==}=*PUM6m%8z<^d0BNghe*G7Do>bXe1|p3-wUt~w-?7yJV&uZe#JIh9ZSRh?ajHRjb&<#&d z>mc`(E@VdV(by3VG27UnR9uVq|JWCm27#NzMQ^&sUC?os5>ybSP8}PR`FUq^L;@&X zlgn|53X9Sb&*F^w6 z|09!E{}-+ISW8v^`cCcM2DplF{?E^d9%^eaP5uW@t7Bc$D#G({KKVUZ4B+E5CE-(&TD{Di9r0`|JzWCCd4G~;id0VV_)BOTRJJMCZq=vg%N4~T?ierx?R zQXL2gb_xbpXp%pCBVhK>~woDfH-U1{e~Sq03u{cyD|FxJl{Ep{cH83(UGMQ*#5wt^iSTNaNo8`qV~ zDOWHo=}(|a6$>Cx@cxw7FYe|9($_R~cqW5%!K5~<+iPDXc&Xc=xPQ@;o3WR^Y#sLn zAlzGgI^c0TiLs%Ymz%+~xbH6mo~VI`$g@YToILd0bdFv(mCMH<^;9Ere4hUThYe{= z_Y_JV`uC3+Q6;0Id7Rqc9$v+6R9srmdbwK|T(8s_8v($SqF>`{AN9;!O;Q) z?(R(Dz$v45%rDNY!TbeQDBG^DQs~)NvV9v!XT%*O7D~;}01XNxd0ZfYaNFZ}+aG>< z7m(d0S;jD7L<}20eA;gRZl=rUs$0P&qy~pA84?fFhJ>aV7PFzA0+&ZKsfr;W`%U-r zh2V_VPy^pz!7V}e?{?cVy2U(NeC}Qn`TnF6~U;M=1fUG+b`=KhGIp z4NBhN%+`@M8ok%HnT3qJ#MXqDSn>*u5u8~$=ocHlG~>EeFrKSrelcg;|3(LsaG}R7 zH@RGEQon8=>+n#B4lka~T zn|p(^DjJTVpbd>64z{(kp$2N&l&)X?!koPJ(F*Ii>1wen_1o(be7$=j1CmG&&Z>*mTkHeA&dk*)+K+IMTbk zFFXNyF~p;iD%A|@l3EG`fGCept!Y5 zk38%hqB`(yYyUQrmTiVOQ~X1o*9Rhkh@CgE*B~Gb7u|2$RvS1g)Veo3o&3{jArpHFx-^=t(;Z;6cy8o$zsrASF-ADNS&`din8 z+ISNW%-ZQfj>9KLXY!=xHgApuFwxTIP?KJ{h!0}M-Fs{oVa2}?R24(gS8>ee{EjE}JIGPQ7H5E$PV;*`j@L&t zf08p5& z4=_x9-O4%*blJEX+}HN{4OzzjW-6f+(X+Y*vB`MKCX0-;bm$ln|I&Ykub}%!A5pke!tEthXMRw`|3nQUtojQ6mu)2i(J#;q9 z00SAI8!T0m4O!}j6J4cUU(`(OnCfDa3wcJP5R7RHGz7J)s3C%4rY6GbWsIJk(a=On zPFY*u!c9x+MUm`DTUlPU%3iR9cu#hQ4q-l(kazEIyX#DnrJTC3DPyVApd7QQsJQdu znT;$bM6Q@s&~{_)@Bo<*2oMip0%;ikh(hYIeU_U}V8)i=0a~_mg%;&$S%>kFtr^Bh z!|hU8LU_6I^@bxK_s&zhXt#VET*|d2d(CG8nLElm1M8Omx*c`XDmZ=f8T2dqMRwCz@C9ZGr-W4cuTi@F5Di z=A=fLJe52ZTEdJITz?DpWwisfXyU z5s_1|w461N*x>79p~I7uG4ssXFhi5hrxvS}0QUi|QVeA}yzc2yhsz`ilazcw1M?vl z$q*6MVgQuK@;v*pz~|5Uy}w=jZ7jTsq{CE5U!Hn%c6jJ+=UTi6%k|WU?R(QYW*Zok zzF2|#8}z}~-+<5wE<{&b4ReN(wwO}?xWO?C^~=~8o>-X6_h}^ot<#ESjY7wuY0yoX z(G)u=_=%H}7E#)<$)x{*rSb&hrIXFq9Y~Ylp?CKeZ=mLJa?+7b0%g7Adha24)YFSk z1Jz@XqwFUM;6_5qgCwrYh&2}8(JYs!7MKCMgkj4q=yK~&#;clu(^5}L3{y$Bbw2erqV*Fz6mv& z>}fRa3BWR}yLEEqu+K-}fZd_f(9!dlDBDzNkcD{Qx zYV(s3wj?K<0Zyj~#CB*V2CoLP&muI8AS7OOBQi@Uh&wCf7Ad_=`8{vg3^l>c8=c3H z6wtjYPt`}w!Ix#r34MbThenX8*0|fC}P;4H=8a8*K5!xC}8{-KB zD#8lqH-FKm{b}&$sO?^OOPhtG-tM63=>YmXjg=2VI_}KV6$6HRN}n{ipLUNE52Mom zep$%rSY~g0aA>RiCwMtjSou4ycQ5Fn1tG_=jdx)qU{aLRoT2fcl)?oeCWMjcBhugVa7Ndgz3~~ILL}6T6v7%2w2|>XGkE(U80q*!Lkw8s zv{v)wU(R{%`#g?aT1QSUza(Xx?z#BGE>Lz zYnFH)+XHd=MH{^|=YQ3*B?)B*dkArP%3}l2<*jE%!v%AH4KGc~q>@sRTOe1ngBMNq zphA8ExE-@9ll4 zcO1)rU~JIURJY-!e64Q!YR$X^tX+K}k|R5++}cz$w&$c{Q(J$JG|cU7@q4j}kfFhN z^3daiVJVY)yMIf_e^W+>Uauq&^bm;G;AJg-{P}*lMfv_Zm*4VKEr3s?THIfo)qTIp zapy7a7dDs2U+r|)zieX>0Kt!^p=E{_Ol%*kuZ>7wIcN+p4@4K}@z~R5PX-+|Y!Eol z!>%=`TYKe!cg@YhpFXY^tni&P04A!sLS$@cxI;$*xWXS^b^gJ0-Qjzyb zBf52v&~d&!*$zq@eFik-`D(Q~zOT-a*roNGH4RaW2LjNM;|+x{(6RQNI4{)BPYm=W zJXGw(8$=3#8P2EDPAP^-olJF<-j;_wCjSd=8pQ8O7-eD=@|*oKShNDYsB*BjfwT9m zu_h5dbb<0%-l2O5IcRY|@HV`acUYV!Wlo0b)zFsmY7#1h?AqQ9Tjp0+*J=|yd_vS& zcrcT*ql_ri7!V^!#XcWU6>gG7&1$H(P)~4wrULE7pZs3O*y=84OdcG#bi=qI{&6nE zhRFAegp~LCv^&C=YNlQuR9pqsoXVuy)7!u=zL)kX<0wi^naspO_Gp)yvua$$uV{vX z2_qJ5kRwWV6&>gK`A8UdNeoaWM<;T=IJqEyCIb9SByWpzUv&HhenCRU$IPVzmdO*^ zHv0YghdnUTA-#3fNPQ&DfSt*zmLiPhSf|Y`ApX2@6}7yy{ukoc zzW%QnuMFplV0MyyWb5g)@_u4ZA0h{r3K}`txcJdjB2dW~*ayi&YVe5@Tl*=RHG#H~ zb$f0B7z0nFANlc{EyIUSHB+*6T6i+#xpyX{7Rrh!mvH1T4yD%{s`Z$!u)utI?lvY7 zqedOsac6hQe`jh7Wx1*4@%TTU#`Axqc!~QYbmvBP#MK z;IGEzOF5ZwLZ5#rF*^ClIW3!TxcFnD@CLyDSuekMZR=PLE-hV65}j z|DDp^d3&*+Y)5M}AMiZNEs+~^`cFiIYKsnTYt8;lUs3)ak-3c%+O-sk?_$P|$uXlk z1JK7--F}cRCMc?9DwszJkRE$a_#@;&3y$&1NNB{glI5o?60Q-%;4 zHj=LU6|6_iB3V{YBOKPx68au*lWk8gD@#dz#X^P~v9TF7Ir=|>MD_}2sj&M0H3|d| zAJcTqI4e+v&A$3aE2Ddx?)UtofyyuSB;-@FWL>TENL6XY?0{s^tVAK`g46Q6rNTNK zMtHq+)#0vhH_7ctKdhvhqNW55lS`Vn9t(~VB~045tr}jzwYy>4E&4e-P`kioVS{4N zCeG3S$VVY{A!>aIeRjRq{t#kCTOI1W7c(Uh#_4&1`9x$ zNl=J{r|Nvb`aT&{#I*6)U}vBr2&ILoQLf5_pg9|!)#;KPX4Ou}wCNt^-`_BZnCQ2w zOuNkJFdafd!9CT!&zZ4a|0HZ$*6Z(JkYGzLT>Im+tJ$f$Nq{P|*HocY(sy(i8y2d~ zY6);H2@E*!g71pxy!_ZIP>ey zU*38+EAtsS1ySoQ$}-h3*_M@4xIkH10ef`_vNQ$ z1ZLYTPi+2qxZZ=siTK@$Sxu?Sd&B5cay^cQYul|ZZ!hMiXRgjVA%#TBPnOX$$V!c0 zU0NlNpsHVEwA24w>^v%hmg;W<>{q$qm%@caN4eLWP0{*KGzO@YoVSITRU#(X+t-m^ z#s1BX`wSLu^N5#9qS#v-U455yR{D=Qt0+-U$7|dQlsgSaLuS-aV`5VjW%M?ewLW5% zy{TR%+d>(9*#%O;i7pm5K%5tynTBD$s-em)o0e#9283I^DVGO=xUO3=I@|jIDb;g|fk07T5xU!88 zZ$dH+g{8Pg4KQWcidIJl5)$jE*l?oZlJm+>$0VTpnM{1ikyY(y>?JUT`0;Ggrxj;EWeahpa6X&Y| zetsUld|h(V$b4k?~u%p1f~Rcx4c0Q)#=8m9E-u zsd=rXc}S#Ap~L%ek}~w~7bt1{j&(;Dt!lyhG98P=sTBd;lY36iFw$CQ6*cZ#pNj=Q z)=LKTzL6;|#5WwSoHRQP@aWt9fq@*IxJ&X9{Q2~jS+@ZkMEIzz*3lnaaMRpG#RK2q z?on^=fvjWRP@6+$xf3NbaC(t9bNVYEEgAVw9DHi?<6Xk3EIJWTUNW}3W!{WKYWlEg z0V6I3(K+4{f)#9W{DEV}pyw?#mAwSFs3mz>z?}Oz9Ym(p^u7#w@}Qk)yT+i`QCahE1~or+(6OKUc9Gm)&k0m%v?R*NdNiWpithDsH}d@o+MTqxWT7Q=Sw)UVxIe=8IvI| zorJJAI=$N$e~kJ~ckG|g_|kIHo=R+0l#Ei->>O{3DZyN;Q|?lgzK#D}x2L}GJqQqjj?Iq{wku4*%avpNj~G^t~B>anbB zk-J}&csUnB#QZVR{r&dqL(zLa5{;Y38N57zm3P#tG~s7h`Yh~pPOuDFS+`Ao5acAP z2369Xz@ovko5W%ZGf8uYL7TdJPn+mT`W@e0BqbOrW6VN!En*=wUl1(^6Xv>AMcprS z`ZRL|7IYk}Gksm_IRhcZ5a>>hcXHq4eEv#-yR~qNZtrb92bs8d9zC`9n?Stomrojo zuP5>EJAHa zSzt)oA7p0GT|UN&A`o`11L6nQ95|`n{+M3h88CQD8otn1Xm7ADE@*N$R-D?MyZ?KN zmfL+o>dLW6ki*epEZp03gGu=!IO}&Yaau+8`U?(kh$>o!7}0@~JX)6)S;yu)9$vZg z&9Gc!fMKGmZmCLx@CPb}${Y9FiKFxPdo?~QS+$XlfOBu>ftn>UYba@Of0;2q7WC|5 ztis}te1O;L`Fed}%%%D|2$<}Sd{V~50DU>8eMw4-1|TWdsQj0a8uBe&|r`E4*(=Nv@8&^_WQI_}c4IlEZE_B-a7 z=}=>gt0tY*zulbFhGqVaIGOo%e)`WUv&6iBtZw-5)anwXna`AQy$U{5%k3&y+55?! z*S9jMHvrsA%x+C{Wu21{6>6x-D|%JU?W0p*U|a*Omdch@@G#JyuWmuImAn)$*M9Q2 z_Z4Pmpuj13%jM|+EK+9R(9wz-+ik1vblzQ>lc(8oY{IO8d?;3|tGwG9R20di6vw32 zK4q}4%|~uAqdk`UAE)o)whG&56NBG*{LdEcF#7{l(vRwPyTSz#9Z^LK49Jhl^f+!TTX@O4MlpvK%4_l@>IucxSL7P!eh7Js15yJdH0^*_(g zu-9$Q&W9Q8s-mlFNSmicson@SKz2+Ho<&Cejs0AhVcgnY>^9mcJtFfnpi!?d0M<|O z@J40u`CO8$UN;ayq2H``n^ZMBgK_J$9V*?l5 zP%K*VD}uM{V+TuBBO41LmlvfHI!umBHB@sy)tc`n+AP1=34K7zRu_oyY~IIF$Bx7& z@zEoaS_9h4zuj4)osE4r_ohd((xD+T@%bfxG_gjMs!idnsCvOB%evM0v}IHB;UV$R z7m$^lD~v6k`VtQD62u0FqtGGxR3V|Hkj*P8`MB!VnWQXyeZ9?r<9ZUIRQNyMV>Z&# zF*<#?x;c?`vw^wQ8-1>fF*0Y3RT$Rw&`}}!TY#6D^%{x8sK@o^TsmHCbTpi-bS<|J z1tY6c3F4}1j?|=7ZLgQESZ=#mIhj(m7?g3;d+CV}FbB)pRuxbLCeni||NBn@(;gVMq7hpR~K=4xJ-daGtY{%Hodo55;(Bo%(z<|@06 zQo?Pp{ui2Hfi^ECEy!Omq%NlNshl%jKlGcaOFXI)h(H9uWbO*=ybS&SK3wxtR&1*R zjzkggJ_^$VqaCm;IBHOwD$)cX9Dy@?{eWvO)hkE%flvZTIzuhq_;!<*=AivGKsi{Jwkni)VnZ zo}3OTM%d3Z@#g}_F#*i@&5q&o+t)m>Ip5jl?=_TQZ80JXzIAOK?v~B>h(XptjHnQ! z$obO~%a&nM(uNg%*eCkcc8Ed8pc~Ce@*Fdd&81DusSWRC5RRb%&C1iJ77w3Lt`seA z8XhkEe)=|Ofp%_EQ7+Jb*UF=4}0ST|ivSTe9AnRc%4 z7*&FkGt~t?4}ypyG&nBdlpA(9ZGQ7J_UX)6z4e5}$sB;yAm1?f!cSl~`k1l%QPNlS zfRPZcJlsrUeRwnJYI(!_J5Y6Mg~|M8%p*sn6zNFX4m7h04()t40v_|TAV0j13!DS6 z&J#mx)CWOPz87SeOz&$-fy~H6Q}&EP!{=XwnnAxzCf^-GJHdYaS8%4Ql*Il!(JLQ+6rq@%J&ZZjiHsN&{xZBxV;Qf0tNbC zf;=k#0{`r25{ss2BHjgei+rlqgODuvzgPva{zx_5wXnp{-)dt7nLe{OI)R9AJen9RGc;mFxAOn@53 z1j|+_`@-#SlC9f4X?cIRyJN`OR~^@5dQEp$$#1WLu&_(HQev29y-(%6%BXqN8mlNL z6ecV2|Mk=M~Iqzf^@R#Qk3i2jEFsE0h z4^!^IB(c=n>RBsaOSA&Qke!Ctr%KV#Ad!txb;81L2R9-4pvaD5RQyqkkf|r3rRM^> z`M)L!}J27Eo564KtC8m0AyB$|$*bK24UvB>X zEi5c7`2wiHHUfhBIEa4OGG=qjFLOvUTNxLRy&P!_GgiM8`dk7wHgwu_JeQJ%n4!LP zW5qzoZTCP&f1S=7;GRiU!}&r6kmPa>*V%C-e`Z_rkhJ;xh*qv*|Cq_F%u#mM@lBSBuAtk zG=4Zg=_ajRU^MQ9LvqTrUMeSp3t3ojsQ91Qw|NuX*Z%o~UP8?%38e3o(D`#;$`2Np75 zN3?_avE6dj_>VRybJ7Imv~93N6WkZm8sd-#rpZNyyH}oHW=$oR^l_u+(JFDbdgdla zlIC12M4D3d6jMC@1r1KhMo^y9H3luAqeg>8MFlqpO8&4kP(Q$ApmclE=j+#O@)@tVM;7wYPM_^IjV-Sav(X^FXun7I3j2^I7cM%^ zZ+>rgK6}Hbna@3OR+a`sAdnlA{19m^EUYk~U%+kibZCv-e03BZ;hnID#owN4wdr61*ZSVD+o%~I^ zV|#6gH3~@BP4{&*hfuqRMdMLrbTs*eH_38op;`qwHnU1!Ly1p${~mJ!e!`^(zf!P9ak9PdYAd!`0MC0b88iNlahT@88WK zRGqj6If3=>HGKr#Pan~Z;MLJ+mwk-o6aO)VWjiC}d zGHj;(;@mYicwFe={uJX1E(xA;D&HM_>%h484cu#Mj(Dw}6 z@>Lj%x*2o=O0{ADzGa>Ycj(Q-&1*C7pydR^wrLw)$YMRa3ho|r8j~sf_{z&ms}R$4 z$$b!n?Z9{-8Wo_YD4tL1Q)C zCSj(98}qd+q)rrO_>*%!Ia z`tDE;`4bPL4rz60si0hFg28!vIAmnez0M_};lmbkk)2XXq{@-!HAF zcb#&%Jp`_;_%*I~r1s3%QlZ^&sb`hBxJQVxlc?nO84yWIWU$w!*!KnXUN(D*&|@Ir z-$`@2&d~C?cl7ejHHSfFtew5ZluSb-#9`^GjhicihM{9+zaIsJPZPLP51QM{V!Dx@)- zD?GkXN!9Da%66Gy+vomvm_WbLhqs;&IK6dKwlQAIZd!dAE`5nyVyk@V1tegv+q>`f zrBot#v){PD3CK@7_wG|GCykVoLnbM$x>J)^jlHOF01-ckQD{&mD@#w-EB8mE04rcP ze?!lfU>LW8@em_N z{;;19_CXZ*Q-IryOl&|v*bFXy|3Ow(%1#>Kfs_<5=M2s+W?JWMg?m)H7p~P>Y26@v=Uy&Y+J`@%6bjlV#dv>$~8O8Xa z?nE3a1@twynn+64B5sb5rc;$1a76vHaK;>T_8~bbDXGY4LHKXeVtb+Wm0TjI*CyYY zp5Lj@jh`>Sxv>fgrgLdOTW;IOFuuk0I<*A7B#?t4`}&fD`feI$Uzwu;B_sog<%>=u z#<${e1!dFhx_W)EKdc1Suj7MSr3h`j+-61V^bkBU<3)sYL7EW)0ei<(cWi-k0^!nO zJ6N1-$cgm&z)IPcxSm^tAwh>hi$@tP9q{PkOOmb1IbeePPT}r!tXJ|nT(E>q6?CpO z(_=^v_~_(OzF&u{VT4_lqFJ$-=3bA?88*`*74?rRa+pYrvrf@?%d37+ocf4d{c&HP zGgIOW12tZem2CNJ=*gQYS}Pcd;J!EOB~$aPdO`VGAL!v2jX^!z*#J-|PIGLQo(?ea zVApEv^KNFg!$P?Ucm$F72W`NQvM#o*k8?M+AL+r2S!H4Z+h#RcFC!~svxE4R$anay zSBEvare6Q!;fR^BwJNw4VBYXgkjJ*0r|fRtMj&+;Xb+zrgcUR>kfeG8`nI7L-N8>5Bfs$1|Z(KPzG>=K|<|DJbydj-4nx@D{6`gyG5 zzZupoxluEB!NIy5)(;VxasNbys|XPAC~^)&RR7sw0D%8tH%j|fAfGU^HQO_hZ=WdhpVNnSQ_L zCWuqV?fQILZ`(MPt;mouv$46jxaq_CU^u2lJ>j)B9nX+<-y&Ju5Je`h5BLrBOSsb$) zsNCz|EKd1@L9A_n42~i8up_TUq=7`!1w2lies#<&`*n|8d(-)3x8vhJH|KhO#`(7y z0TNygGn`Jak>#C5(SHtSDIg!~yv-{BEyp91rXEx_Keq}3{adysv~}M;$m!wicVi)n zyfbGb!v8MJB~Q?xMd!=&PX*AYS(})cOxbe)TGp!;t@``=KDf^TWxZMrH9B#_`?KeN z!i6G5h^_JxS6fQ`NxP{3tKc22Gak0NGbSxIY<(i8F7AsTr1ucJfzhsaZ^haH=goxQQP23@V9rnY9ohCAHL z*$Ph#9WFH36<=ZD{+k=dh}xPO1lE?RY)Xs! zAF4BG%*V&a-ky=cUOp89Em}(N0+cI8V`vW&tCIi@RLZ<_XXwVpMs{{~WF(ZqzkDr# z7hpF~Hat8$*x-57oj?$g(9EBw0m!fi2dG4`w@3S8y#;{>EXp4|xInFEYR#39~jx0}X!F+0|rxbmE;_ICSeQu@)BYCgGw6PF+yR zFi8i0~8|z*ui)dvKECz$iJ<}{`s7z9&D4l-IRpgW<<&Io(kBn!s-m^#M5dN$2+;f-W_Qb>K=9fMHwp$& zsV-5dI@K-^?gl0PzqV5FifYfWK`M`@4@AVhyU}!Qio1G21BxNTM!7bp6LHYi_)9k$ zmH3w)omyCADDvm8&Scw}d69iL6d2m+l+bs2^DM31jN;a;)}=DuPV>QOiJk@xtA5WN z+q{np%6c^zt(~Evp{}m3j*gByK2A=^ow!+nXOp(SEoL0Q30$t z&y{7=oE!~x70TUPnf8ZCNX2#3nwsz< z=!9E+u>}02=pdu=Hu%)Di3t@cDJfG^s!}MCn^hQR*q_otLC+sv2?hg@WGygOI6@+@ z%o6?Gn(JLhnzGO->?OW$2U%~e@8y1Hr-<>WZWTTu7s!QzU*&f0@JiV4id5Jaw-m)1 zru|j(GQ@%|Euk&r(g5DS#f*my0MUhSs!sJ?hAwN38aj~VaB+V6Ef)hrHqfro(Ql-E zSXj$K+3-*^Pj@~(Xty8Hs8Ho|soA||>$$DFKCd9YA*&>~DBL>GMkGpx^WMKlw)uKmh4JvDXk#}6o4UQEE5 zx6hOvWZj~V&P5`q-UlxqxM#NCWuNhDX)+Dc4#-Qu<*)}Kcd^+op} zWB;NM_!<&93bE|q%Rhhq7(L(3iaxAiKnf4|i;#OGWy2}s;o`PG-5tD`RYs`Oumm3; zABydj=cj8it*4<)*W_40?8!pt=y|@AEHlhExOFgdPXay?&Y&!hA=AaJ3}nQWTlQ>n z^L4auCZfd43E8r{ByWak%T)orB)Z4bFJN=TQjtRKqmvE-u~|=KS$^+a9W)hRc?51q$B89gs&my zKv}TU+Ux8dS1fQ$a(SMQp5tI=FVwqdsV#*S<=moAY4j_%(*CW09ly?m5{wlZZ|b1KlNPL;Q>?nl+t z-F&sm3WB;2eVH*w&-zx>-1)($a4ebpVZSY5G7WNDhf_S^FrdkSOaOy0{dSA6c`z6L zrrbfo25N$t2x6GP5rd7bY7^SFa&RLcC+aIEY=z}mbWE~wH ztBAzLPYB96B50Z0qZz#9f}YIG%&2^1tA(|-36RnvbubOe!ST>+_=sRpr4OMrC0V6s zXRhCL(c%KFtr5fJm6fkCA`9Zk28+wfA+-Kk5|MBo3ZX@0!ZPjk?wEibH zSm%=^BQ_HOYioQW+X}b^gn!p&Ie&)w(}63=wl8S$QeZ}2T1l!}!Z`H5SFM>86N{0D zgItAt|CYhAa5rJ~cCZ%`h5S%>TDZDF3gHM-v9p4xC@dV!oXl+;t%RvG)MZ%ss6<7O zg`6xcZOkkL{#_e~1yV%EgaUG_qnp4#mxQT2Tpb1eR?!h~G;y$S6L2>Z_|I}W0{;mu z@VB9V&Uo9~INAwQS-ZPC3$U?yd3mvVak4tOTCuV7^YgR)y-M}3rp(R$3(ncY)&4J( zxfz>}uf#LHM^i(Elrr|GeivaXC3T{TId$=HZE3(%5u|aINEqq{GZb=%3SSwS=FY~&&d%+?K_lT|V{gvF&&SUB zuSWh4J|S~60dosCGgli(cCwSBh^Y_78z(0RdlL$Ab#-P6ISU&*Ckln0c2iReA-4Yk z`wwk)7Cv51uI3_=J}+AA_OBNHefGb@{Db;`1yQ$fbN}CwNOMU4PYe*k+&oNQSQhyg z^=dwD?iLOd|HAek*IyWRw{f?(_`g9?h`X9u+qgsUc(__nC_^;nMNR)Q{?9%Cu=8J* z%A@_=wDhZ@Q?I_3V=#E>P0BXjoW3gxY=o{;{t-EVjNHy*iZQ25SA!YT+&w?GqbgL-grtGx_n6 z@X<1qM8ODG1rxlr?@tBVbyK>w*YHM@@f6UheZeElW=e^PC!|K#C#RRJL-p*hc&dnH^W6df*x&k2qORO zc@BFb3Zv!w+sFps%qg7xt-Fc1y8_Qz{X4x5LH`JlRF1SC`mkBTxOon~Ckjx*Cv1oF zon2hkz2^%6re-wG;Q9Dq`;n76j!uuV$CjUjr}vK$g6~`_cTEk{A>9IR`c_s7a)f+t zCEJ1^2P9`X9XCkrx7n93lmtVDH{>LOyS$<_!Y(`loB)8pv)&5;6u{paa0`c7KHlom zSJz!7j%-Nsh*T6|zk>y0nq@=Wd4DJ(8k6D@qJ3Bu*bsPqgv<)l4BWY?6TV6z^7=m6 z{yLNz87V+=>Jm~Dh#;D5fXX-H>Vx_VhN;NhOss$tsd?bx`hh3t@z=%x*a`gcIxBppXN|^8tQ8Hmy1B@hRX;e zYqxb8dmuPNT(COGi+JH@CFe&#(inj2$;D8rUIkqo2)zd}!q=qhPMm(w&3nirE#{dc|ZH-^HPvHYt@S`&^qcm z57dP!jP`RIY%VL(H6sbFc%FPmu|#FO>XVviH%yq{TKJw+XY%JsnVtE^M@%*oT& zeUaLm#fDYSrodEb>lKghuKu!d{NFAct)2saCH4@7S-hVlezfV=;V% zQnh~+({6VC+}$MBm6^KI+gXv_$_4BFFH$CTu|>BNXR(^KI_60D^2OrY zJjcBbbJE`VT1k2N6gkwON|&97b-yLn#~bJnQMe!Yi?rd2Vs?CPzfPuFi=!2%kTZTZ z${$ImE(REtCnbS*m{}fw-v#cBMUvz;7OOBM5_gfOl*}Du+aLJlV0giJL$;WU6fR7Y zTh1uj9Ne?$d1j%kj)IhBtN$#Xi(Od3yNfLpA!&1g_a=fYC;TLg9i=1M%Byf17Jg@~ z>9@weul_UC-EY~1C$f1q!!2!}=*oZ$5X-GAOBr9ow3#T%q>%UGdZ>~gsKHFODB(Y{{YM$_g)Ewv*n<$IfG5>+bBEg)- z{VhE#`mQGIuO14#$TZL>mo#?+Xb0CWt(~$iH9os2SuJCNMB(~17_Z_)fSBL_!CR`i z2+N%$1*i=pgFzm{jHN(L-sm|{m}9*`^Fz+Q$KUSeNHE0^LSN+rjb3@j4>Maz77u?( zxjZoXP62G5HqTy-D6mkh1^_#)q&~BMf>^PHxPWZPmPuN$+GGQhR|!53RMpx@@sA$) zS6^)?PVg8%r-)V>!o8Ru8knA_9aMO4NC854(qB7d0ElIsoZ07RO;AWpmQp}0lb)#C zk3`z|!ZZRX{o&O%4+CW+qs0d*=VVa^8a$AhL+0=-;%WfABFru}CadX*1F#HTD=0_N zgEK)qW*;-x>(O$ZBK1IsRSjoNg;h(ukn|`x?H4IObV#{ zsB1lqOHOuWn(g-#`p7b9I9)vU+9u;?XJ_Q%7o@=}u+T!~Tesax=3YUD@7c3TayE_D zZmGeu1vbB-u?k$_zz;Og7vRd!sj8}1ATtXS<*sor6i!FD2{R*;X>CFy6G^*NcJ8h2 zt+&7VR*NHVeasM3VOEp0-x5Q=NxMP%ozfC(y{%AY2=iAqcv3CKsc2{m_xAzQDylk~ z?bqb!QJooLed)ivk%RGoE|iJ*kt7&nm$p7MV5Be&8w?GgIMxtygI{mekMMC0Q5|9? zj&+IFa9LY!67{6aK&Og)t2E97AYle6s&F)z@r5dc=LkA{ge4C_i@N)Oz>dMC-IXT{ z=qJ)G3q@$rAK*7gs-FaWZg~~SN%rCXit6k;A1b(Ue?KuxoE!5q3{4THDGmU#Gs30; z^R;ieU^$7OB-qU-3l7W3wDGFJU=b|mXx*(i2Z89D%wHxVbnQO-F6-v2*&jWpsb)PG zB?>%_D0<#JNV&r#_?z;k`dEDt-+~h`E}M<}yoNSj49O(gE|jwYQ_i)UfNPhdt$7(j z>V24tleF}YCLq`5$=Akq_3i}Og0WV9XC%)b_`MIg1%g=c8Y!qOHzj7?Y zL@<#|b;vPaB>JIz*zvCV`f-tubQOnMled@1w=B@hFK}{<=ZLiz=!{XyTaG;VnPpKiJ@vC1Km!ca3fVuWL zHJT(=URFvcp(K_bU$(uy-K8^7)}IdJyyr^(NU#M_cWJjkDf)t$k%0IZn8S?#6Bqg$ zyv$Wg(A|Cjn3>J~@L+%6wrgVK9Lh0#llG3t_t{dFlL#175zUdeYBFPH)YruD3b8(q711Hq%%0wdi z&kpAU&s0wyqO~vMf#zJBO2|QXSG$Dsm>GmD#&GHzuWUx;7(Kxj(4PRz2jzIzmBKZ zCDYPrF;$G1^#%cFVOzt%ER6fc(@w0AGMXwbzhfy+B4wGBw0(NSs38?TU#O2Pu9t<@ z(O-EVNk|v@L8TtUIfqi5o25v0^{fqw)@`w)M+L@Af8te6-~#r=<4}ajt{3LslgI>Y zO0SMUCQk#VZ`hma9TY{u%m1oHFbh54^K{-U zPA&ZE0aAP9cYeGt7Ea%Y^`mdlqrGHZp1X0A%@!!_1*lAMI>3}J`kM<_ZC^6}dOW|8 zNI%|tRK$Ov{k{WScmeQ)Bv9=rC(M*TG}c&1jxLh}CVuf#jk!r;>!ne3`QV&g1HU2| z?Jawy=fXeCHPAYb$s0B1ah39!Bphq7E_&fyT`iI|G7)IKc)nh}pg4Fghmu;p#1&cg zyty+Q_l3~vtgnrO_!4vOn=0xIAvj#28yPh@DE)b=i<<*O9e+DnF1NWw)M}4TikEG( zsWT_AlP9`%4^>hX3yC!F?hhG7tLV`EgL+HJUr*wYe%*u-GgT`$ozS;;$2ib=Ax5>r zYKNK0PI_)6I=1$`km+ z#xQdO>ipg&kSBPAel0PqRQxj&G{ z6lzA!nFY(~OJWm>iQ}2KkUaaX;q0YI2=I!Q)&iM_Q%8l4X6k*qrqUZ{;b8dh7hyE^ zRA)icSQg_$Lv_VPMX%_J_!5a^u|L0B4bz%i-$Mc-il4E?5-6Z;y?(tdp}zLR43HnG_^wS` z+3wmGQ{9$VUVVVyMP35K_bQGVK1T{XIaQcFXBSqSlKbsR{TxfNA6E)M;d|BcTkHZa z7$fa#Oti>}_hQaB-$cR<_uX+ALW06&qQg_dimPWnK|w(c#0+#5behO8=a`i!LxA_o zXX_gNKt@<@zj3y}UQNDNcXZI290f64hf6UrQ*362G9{cawRoXxRD&j{nWpf&DU5LK zU1=G|PEJIrFwO$5cHbM&!6i}+x~bcBcp6NdZ+^8>2>K~Fp%A+%bUQ<3c7qwg*^=7p zTE~`mMIzRxHs@~J+g2mSwt>6Gg>%yZN>QE3V&rcIxzjBfS=iVfD?6@tT=!U$wPzZC zuZJMloHjW!IV$k1;1){T1uG=3KXyPvD*v%NlLRk+Wug;p_re)j62)jmTa7id?jcKP zFLm7fWXAcX%jNC5MXx(c{tq?DGc;PfR(Ob2fW~@+8i5NWk3=zL;?;UX5p(v31|Ws% z$3lG#Kv@Q_x^D&|MZZhXU!16|D6GHUtb^DoT8?L6!nzBi1>mSP3VT(Qbr&*;5$xs^ zw(7pCC$5h?(H0`Mzg}KW`|T96(V6&Wwp6-SfQN}`*tY3f2=d4Pi4aC+U&KMr{2@7H zCGgheKA&mX=g>Q;u>_wrpwDdwU%kP1ZTT@U!ut+mO-Kn#W)C~f92p_D} zaGd!rYNB^nbiw}oMByKXzj)Op`IAAJg+zX)ky9DLHQ%EF+v| zz`$SV>FSdTM3HjpK_PE9l`RRla?+2_xohc&bBEREw||6)vZJhjaFVCv0%ql*eG-*9 z{yli!$?LdbCeo+vKurcFli+QLB8^7`15l*C~uZ`_t?3;iu9Jf(O6w3 zYWJMM@~EirZlTA)fe0tZV0XnB;ee>&PuK7`qSLzJxzq*PP~?iHC(^-t*7&yXH!(qq z(4Zgrhc?avm$V}nm9qzi&|-9FGIe!hN1se9+OWejphSeSXH8e7pp{_#ulYz@&eLo> zEsC%_ahq#vCk(afclKE_niQcJs_%beIisc?vvao&uT8ALc_+{6Y0iJy56zR5C9|(j zP2q5cdn=Nxo6PD$ioWU!GU&88|Co`b^k`vu%2wlbJGc^@VYMU)7zi+<%)wFd}XHh#PMTJWd4y3F$fkjdNsnxF~i=!lt!u~ zP7Kw9|H9P9b_L{24ihH$R9(s&Rs(Fnq);~vtxY@=e!do1m(zUuG-m&J97yhDc`^;? zzoM|eqKAt^f(;xX`> z$M!jd?0V_RLVwJGJ%5W?4O41W;-4BG0{is)=%ODDU3Pg?G7?r<7Awrk)h|?f6p9KV zuIx$1|Bv%#_T&OoYxT9Oz_}s)i3A|)wL49D7ls6VEjqJl0Z!EdT}7^lU~gTd5yb(Tg|EW&|(&N%N8&k%~ggy zfx+=iEYuad6PGi|=L+_fJfolz`6M1TY5MfeS~Uu}M6IiDgPrV|8~T%9P|dMV+Bx;ciJi4q zNP5yF6ERIbXZbv^3R{Z=-Z4If!70Ry1aVX39VUeiuc zQi#M64zN2b+%Gs_Q|L>aWNo-y2B5;94pk%5X(0I7p1}w9={b0|-_rIQ*7?mQg?+gGI0@y6lwP_`=3Y zx)CY-8T0gB;-rL0v+{;6eaL(c^a!G~js|3)&#oy1I$xQDL0g`iX*G%zf>IOP5c1oIihKt#RLe@O%)Zz zS15ugeNn?wqg_g1JJ;mzY=78(CT#7w>=yP>#FV#Qa_>)JGf^nQ#VAP#gS_}IB-;%) z$VxbyFcV`kq-^9mDNpQZ`tr}d91Y3&FKiLt3T}h>Kv@_R7eb2N9(s-TqJ^cUyP+R& z`II2@tbIUshW(=9KDZqYWRm7Eltg%_ZNo9C@6>DzWFJIhogslvVPNtt#q+V z0m^n4aHU67G-PNCX@5UoS<*HvgOLOhg~A;E`X`HdGj*PNQNz#hHJ^m_wkseDhsWc9 zDh*d{IS$URaR4A=%zhq%?L+XiGK8u^&;dqe>i-eTIsAa%ehr51T#6 zCKzjRH)y&c*`vfw)jEPPxFW` z%cmx+rF6*y{p16tyO(steSvmTOKGXx{o1_)PTDRjBz)W)<^@F@F(FwA(Pc?|K|GR3 ztmvPdLt|qk)X~S#AgVaceWZ^A&8%_0tG1wQRMYde4#SNQPZSQ$6U{aOJTWvew$Gc= zqO+Fm)KMP~N9{Y=~6tEiXBKc;j-|KdnHtfk((iS%&uA)Pf z=@zn&_oJ-zj)1Z5{9py5_v`*^ZEB)|o!uhxnXYuVW;&K4fPDImyydZ|Pjfv|X1~^% zBf{Eu&E?kD8CA;Yig7D%A=9R{3ncv0x)LP~bYF(JVy^6*CVioR;@4P+&RpzYeQ%<) z@JMBxpIbh3Ba$xAvo#pNY)#wf6n2J(MYcQ7dAaiHQ^Ld+q(g_mxTgBAl)^)UvoHzu zR87=-xuxGU@<9?siL*`b|kkcT*S6b~j)VX57Oo%{v#W5yf{ZvIVwwJ3Vf2xDx z(>k4?;Et5IDSxntNh8%tsEuYA+s4-Ze&6N$YmX(k_iaRkI4~v?TYZWOTI?fZECK1_ z7y~zCK|0buH$w4NZr{t0HgkUusmNb=1mUp%xRJP)q)=EnzK;*2>}NEY{u(D@NUG8AZ0)wwr{EfXZ%k<9YoS|R%5eMZfZNfc4h?!^US&KcL?PLmS5R;TD=K^Q9*WaL zn-mggmHRkwlfvloI+}VZ=g4g|Nm7_>W8VATQ`$nu1zgAs{1neY`O$S?wfl&(#rqPD z!k405Ln5iBU;UMy_4wgbomkl`yw>K-qaeTAE)yx=1?b#6^6(u=v0iY^^a?KJ>n~Xn z{BaX^Az!2y0CgZ2EOJY0it}AXJqigjVfuY9s0Se!Wz_DLtU7u3mUJcEUnK z!RrpwcTP;~m%V$M#InbHZDeS8msT=0h_GP`_(^cp4g^0I^+e(|`sLS6myO%%BH>NR z9j7rzdUseT_q#Gs6SprH{TBMtzm;f%8$3#hK8|V53Ym3rOg&-ZXz@w<`&rUf11t4y z?CW$H3B>%S-&7K$r{xS5`f6zOUu%*e1F%H-1jH8(rt+ycKZoVDl`Bt( zgJO41)chc8hS*A;%-~{uyEluyF=eh?*YuDD2_Oik3gKqjBa&EirL1}=9WH~x(D-AnV0KV zd}S%a{KWjjA}G#)tmae}$ZHaQ-aGXIUMU^52A~cF%dyL4e?tfTVtk2Ki)Pq;V zI9A$A8ydp16BzSK2|_~_sG|Hb$je@>N+NqCjcBETYw}^hOn+&?sOmgB>~K2GKAXK~)dbXd@`^06O^AU2Y^xP_8#gCmU2uLH8d>x*j@ zL>D-S3V;XF{Q0a`O6H;SUgW`Hl2Z0$ywI=7ap^a|H>`*JW{Md;&VECI%tNTHY!}p9RzhTEx>~1~ z+tEkD5RHj;ann-N?FuBT3_wp8i}Nz|zcY#~U3Wbnxrp-l+4BV~@5tk{?8y#8AGw=1 zdg;4l;8;^L^k%~i(|~Nfwlg7FFYFb_-+Rm$+JLlMCVPc+;drdtvfyQ1mFPkiY#@$I z4?CF|U4h;G_LYHB4~Q6epueH+rOz^9%O4uL_5w(yP^W6WExuG&%)4<*pvhtdWv0!W zz0o@NsF_Wb20yE<)9IRUI$gekO?TR9<*j&QrRvae*v=>Iy!^2RY*Kt0WF)N2A+)ir zX(SWdG&7q~wnJf#D990_rUx1m!I^p8RPZ(0nY)`Rb{q`>~&M1M551h|}ygnh<_Wcw$zTXoHQ{ zq45`HORj6*Hs*B3WAPI-eZSjBcTGDZbBnAc7zG@O2E=jq%cUqg+xsV&xOnkc8&lU= z{4-L2n_Ao~YiK^WC1n*`fA>EJVVP=Bqy*j3&mT0V`aXa`afcMGI7{KFF&U>H19LfV zq#H852MN{GGH&~KDhv~UH8i*Zy}A^=GOJv&_CRZ3&If|Yjg4&$BfJ4bB`0j}CdUia zB}cP*^ePc~C1k^oYkoDe+7myATk>uDv|yQ0*Y2wpx*cl-5x!run$n#*Yc)+SeCrdT z62e+Ex`FQH+p{sfKg2bas9&7canyi)MF%VAx{_-2dAEJSBhtIH;@($Ma_O!0!hquY z3};4PUky60Q|w^Pe#s0fz7>Dh`iA05!eLy^?ytQ_nE}*1RWo+puHEe#YU_C4DUC7H z&iEOy=RTulPe&p>%hcI}21wr&ZZ+6aqo-XDY+SM`$C#Ta{L+GI;BV*$n?N?Ubsd&( zeU=zpMdS5I|H*Z|Df0jT#8NMN0k9J#+uITP9&ULLW%1+2+gxWX*&vw{fzBgdSaOao z8&0{hU_PPf>$tMAgO-yFWyj$Wol z!$Nb}2b*j&4w`1YXxbm|mW4aBkEw4a)K^~CV0t!EbrS9tpZjIV#_L#sP|FK6SgB-R zKY=jJB5mao3g{eS36+k|%vU)0Zh;`mnqEbee$l%S^wm1h=4opB!U*rLz*8yktnsaI zFy5=z&bs6=$W!wrvID}J0cwkprHCJY;*l*8#57|gPGG{WfD#;dS_E{4^b9(hvx7ap zJLG50yjgO7H$m2jn$6M0l>WN+n!cim9!XHpYBvg)5%gC3B-FW_S$NuG9#qYa#Y@wx z5H3u%#3l7DV3=##vMCEqMI#C^a}}~&WAg8&#@W_f!7HIGU*1GnEG*C9Gm9jxf6g%> z^5j z+T3DCy4ar@fI0l(McU5Ot-k|`G0cDm-aKgf_PkQ#4=&F)Efq)a2QcwMs%w4*mAsz3 z>0CgF!0Z&IH+ZiD&-QuIi!3ZDkI6s3|J4tRqE#NM7~2#FX)6aN`T_zJE8Ao@}hwhATl3QZcWV*e-$)O1&^jiJh(P_6TzRq>ks z16oHe8Kv&wojDUHqzdW`U3f$CGdir4ZmFAY)h}UrivrAX1L(c|L-{u@W*Cx#^j~V~ z6O3pd-Qu?gHpmU8V~MO}OxBAv)H8~CwX2djk)l1Q%3h*8f^TKW&SGnAo>kOAl&;U= z1Dd1nFER0ktFzP!aIOZgjRLUz%NP@q{heBc_`+uooAkaRwh&BZ3zrEez6IW$u+T-@ z{cKC}R}l;MuP(Mxd~IY^ob&myMTVdS%b!Qr;BJXE0%U3B(0|MM>iD=;j+31I!zyU^ zyAE8Do*BW{`L2Ptyvp7UzRn6!rHBKE#QY~T8i&1=lV^wbrm;Da(Z4oH0*x;)RI&bW z4wQaX4bOBdw24Qc{qkO$4Ew=vrnHIi);Jb%qh%;8v0^5lbw0;VeLa$5{C!Ah=JhYM zk}gDm^E{5Yf=hPb%__)x;m=|se-~l~p|rj3s@3X4ljD#s0+&PMypR;02W(6#eW@+I zJv}yMyMGsR4~IJP*;8vZeHu6~mnndzp^D|%z`)=g3WYj@NDGG@juO(7(t6Oo#aj{I znV2ddY7iz#zjKU~i#r^f7ga!b=pbbQzOt)j3*jp^-+OExrU4S=+5NGnsHMXse`gekeXt`#+rVvy|>J!8lzrWC#MxFqHjp-LRy{H;Z zNi)*7vU5fytL%lwJ3amZS$?(V&oIcG!}#E9DX1}TEx%I~1e z%^&yx#Ox1QhzNhYM`#R@DUsj>Nbgz9t%z z{*;ew#)efpkbK$4O5Fpx>6KF5V7 z?V;UkNlw!!!&&>?W$uw@-uOp>L>yUwma6Kh+rbySBl=vv=+ERiiHR<3!8QhyJRX7v zGX} z-d@H6a~WJrs8nbb^C*Fb0l5jGOp1ZSCUG@^oWw|z9vgPa(0R*WmpIhb*Q<$NlwdBM@z59fb@Y=Mt4G{C9zvd%@*9lu zKtlG6QE`T6DQKOoJE5<>n)b!S!v+dSY0>XQjf#%_@#Ps34tt-C=AsRQH0*xaNGrOf zQA8eg@+P_`^4>pnT4Q+Ed6%GW^%;;;^!-YFijn3i<7R@AA=_}xdykSi#^KXE`r1h9 zTRLjoD&u)ufHDf>b-3y()yU54npYKV?hFojMDLdf0uTyu{8oF|cfXkU?ZB?`vWdj}R?tqrW7 z`TZ;4#5>u6vcE4c@h-$BdHB>YweaLGZ1(`8-5;7rh;x)Iv~Pqc5|LKa)7 zt<)EOidw~UoXKAO?^7U=vYx%c4B6E_RP#tae>Lz7>u$_>H14FTs!cmWf80cXR;$nO zw!^Wd)eiXrzqI1hCsx^IPT2CeMwWfeb<0x^dI#wI1v`t0Mj3rFAN4{Uh=VG&p`%*9 zN$#8M_*7QU_r}B|ucP4Dr1wNDgOY?!fJ# zu{OfVqfvaA7fpWkq5U_~*)#|zzJ-LCvtO2ja_YcCR01q)Lb`8i6S(QV{pfKaUm(~+ zSJ=HbGmfAq0(Wx<^4}p*qpB${cdxMBZ?l0dsrw@We}qwxA)=e`FtazqcFe3w`tQJg z=q+tnjo2=OqXH3+{U+thvP~eXg<1xc#3ylhYd;}^9jhi88q3V_k{*zeVpZAAb0e#` zVs2$W*chX;w>|qPGW5pPS$8keYr!wEH8f;4%tbTl`b;=SI2VCs`P~YUVd_Hq9h_2> z2=pp9tUofoo#I4^XWPRFWHEi(T3vk*@DLb>uwjaX{(F`%^}s>*=oS9UK%kV289V-I zch6+ZitKVjsqm1`DR_-em!6fDrrU1*BeB0%lOjTx#dI8^iX`AQx+%Tn#$lfC=cnt@ z0p;Cxi^uNU>Bhbk;c{|N=Oasd@v{)FFy5w}*;{Pg3u4<8KoW>6ma<(~q13+f@sD)& z`;Jn{`e|0q6{g=D#n0L;ZaD9v!FKXWaWxPSJ}=h!{B}?(c~X&-?63IwGZshJi2x7J z1`=&0QB)w{91*4QHH@!5U+o3}z;AWUoQ4f6_- zAIW=eVYH(5j!V&!UU!t(Vs@}`o$obVckLyhmPtl^5Sp_^vbQ;ppnSl8VHys2&;` zlGD8S1hF_I+*?sd=R{{b@Ey#scv|Ys&%X<+)^S3dTP{c$Z=sl17T(cvM5;<$< z_?dE#tPlMf;8>%j_~Q=e2ljpyYGh|Ur-3~twLR!peTM|w3FN*78q5ZR33MFX-CJUyWI3;>pePlE9A&o$fC(I6djpD|Eqlo;i zIUi0>yn!lprE!4#U*YaI-<=~>u^xL4SlSxZq#a|(POq-?-W|ba1g)jAQWx}4nD>SI zR2((@kqapI?oZ&+s(x7e%55cA{U`|2gH2(dj{O-+REyU&H%y_EeraxIyBgefv2qn9 za}D#bL%5vsC3wx4Yz&IsVRjJmR;nSJ??=?EN~TB($O|~e7YKQxVm((p2P3e-c}ReL z#B^Q;V0)d8qS&J03%v^kKDy@4lEVh*PT1~pm+tNb8TS^yFfmapYJd%E?kQ8=KC`_I z#LpEsxp5YSb~O3X1bIfU2Py0tJsiC|E$r7YUQzLuN>_&uvg=Ga)?)m0#Gi`d3{fA9 z9Z+V#v&KT>>>(ZTl`mQ3#i(t#;z1^>6DmN9P*fgn4I5;TXgfZ)=e`TizQ}yDAqGCv zDU=k0Bo<#~30|Y(D-3XchdZ$bWWS9&HIpe!3xBZ)iY)+XxT^|f*U_?SeYdfP&xVdz zR*nx*09BiIL-q)^!k18c!KG_D1Tus_2u(Q%)z#HimX!&AOi5IxHKsv?OSA|I?!MOD z=8cdxWPw>A7h{Nt2(Y!g(uYB2u}`;kyNjJpYn#|$)WbjC!B1{ZJK5d0@9M7!;Wtc^ zn@+WmLZvv7HrDSQk^71Od2XK}u01faf^1As zKd0C$NZYI_mI{#5gt$``N>V}Ikj?H5s@*{ZP0&~_EN!Qw3OS|=Kk056yd%Ld(^5~e z2NEFGCI#~ZvwJbI$cN*Yk1h@dhdCVyB0+@cU*e|1ILGj%N+4UBQ%9&tMCVA@sf>J$ zOz~VvfK0#5ZCn-BS^>)zyWjM)&Ct-7emVwRhx@xGV9d3}b=*?^BM;JUtsIm!7hwUE zSURyjdH_Ax2($}%^95%Cyx1#tPaM^b@EO=rdd}YfF*v*@`UVm7!R!Z*?J3o_Fg8N> zl%^?f7$9@rcf`IYeDR8V$Q?g_DV+g--SWZgCjrN)n=y^4&kh#q;+t^2G=Qh2FKM*d zy)+Pu$L|b*%qCH%uB+CD5e(=nsr5Fp>E$ogr1dTSZ89}&X$~&qkDU$ZOwtg1Y(vX6zYfl;8tkfBtD&#R-&2!FS!MrcgC!o%0;K zzjP1uP75#B(U$LNhO@a2;S=EFvsOW(eEf)NM0}NxYz!Pw#K^|hYCBt6UY4N1D*96C zCCsliK?vO)noNcuR4@Iy*J`Of9xSK{321p?nlq5qGB;WH4pzo3byj=;6^|toR>s&; z^7*Sa8T5w26vuY%>=dlr)2v1874{RYnx;Py-UhjKQ`#7-*pPYHkje)ql`WLXJ; zs;>d!LsfqFqiR0evXIVAHN=kznl3$M1FB;R*FRqC!Q{e9ee@AJ^3qVNiVolIgHguC z$A7A*E;ix7F$&XcgxgmUrBCA6*z50aZQ9`Ps=Bo$5j)h@?rq4E>>Hi`=+74(ar>IK zr51_WbULlYLhA|qaVo_r?)Qhj?4i1QcY~m*9h?%ZGB@T{kC2qWuO&mh`$<(WytVzyca3$-DJ7*WJw!Kx}^vPg|xK20Dm~W=f13lC9%-} z%Nitr^BaoU;R$8}@`9d&COw2S{6i^AQnbN>Xlu+=1Soe{Q`Q(A=nE{E;rA!U$REF! z7bq;ZUpx{4<9t~K@SyvCtVssY8E_HfR#KTQwl%`=3EaJ1`mUsa|Kpe*uvSdBqNb*&m+1#R`$pFf#u+}O9k8KHB3g%X7^eef6T z2He~xVa2Q(^xcW(w-Ar643=NeTlQlBMeEc7yT~EP#ZBdSWSGcb2K&yqPRd?4F%Rh$ z2tLR0ncSxBGvaot6Yc>P(3x*2M4wwZJy=4T zIBH)htZ+;UP_>NN7GW&ZOYy3D3k^2{-q_&JFI$2zMD0aG(v%U@@WVb5fK?Y8Ncls> z-In1eW>F34Q#I?wJjSzyf6)k(C|&TJ%|P9Fos*M(cqoY8+yj*8``@FIqOA@N!m`hD z)Mkqrv0HOUn7~R=2~be#fNZs+Wf*PRiYGl|`xddsH>0!SA?~A{ zuC8uS7kL0sl>(S4D+qPQ$vZDMJ>oE`Djku}G>g#z9RlbOvs?u)P4$=} z&A>xLO>>P#BD#4n>f-Q1Vv#vN#OkUj5L*`8hDGJNH*9E0YP9}lp~M`GL2a1D)n1kC zC3eFDTpT5I8MQXP&ibW`|D@;q;(a1XliKCLYNU?v6Y11{cFMqRYB;IG>t zwR)%*8A!0d+AtMAZcCQ~+;IoJo&CkLDEm+1Nm8@TEr#H%*QDzolVTqzHIfHNuuT{a zIf$S`-E6w}A~D`9{R(aUn}O~k=1iUV-(9|b)?L-2@i|Sc=%-6d0?Gbp+gh~HAK6-6 zZhn>aL5W@7!azJvOMu@xpxa{yk5^1pX0QLbWbxmLIK~f)witkHD9P5BnWU;y2H4SG z(T5c3l4l4Mx^urW)3sH2?@9x^ldRrOXhY|~uSSCcukZjiupW?}yc@;HO}6N^S3Lej z?{BsZL_7+qZMLt&Ea^`mPSE%x!HVzQ)!Q7el81Jt4MNIKNGh!~Z>*94G!^sH@ zf)K9ROc?6$-~e zh9&PLSDP2+8C>eSntd94L9xAuoD#wJRU~z1pGRvUbBaG4coWv}?9;_md=o>;ONy1W z*G@1$tF!xQ`>XD% z?r(M1uG-&RX6?qexwy$nvwR#Lkkc#(Eo=V!YH5N$=W8L@U0g>Ls(=C_FY3r@8uhlN zVh7DN6(^)Y_SZk9KuO2l095{G-dS)XD9A$Pj(x7{wr37B`l_wE83PWh!$M#M<|kpU z3jR)~V#$t$qJK>&Ls~bU#4G3MT7>X%?r9e;&_A%59X~{b8Uw6cV$+WYPwzd`eR15V z8H)I0d@+pRON~ytr>jLi@nuDnc{60MLz_5W9*3DdFQe7d?}yzAE=KcF$X+~tut6ZEK7m%J!*zRo z1xsExm@cJCj()y>Aallp0?UZ$J=Eg1w13=9ad;*jd=onx~VClv#(_Y*uw;7yFac(mf()Z(UuOV(@tP9Mw-2T2Br9v>3I2dn$Y zwXwz>Q-cikCD&XW$0nP)t_mA`@Z0>N{cGx{*~&RZJGmlZFP6qGF6*85KJ7o+kM20E z^TRvP!TA)YLgZf}y8#;*7t}kfIb(EbB1vOt0>Pqbw(4AAENi~hwKb!~eaUK-|Ej$> zCQw|t)jYg)?&@Yg5^%y&US7U@dt__|;4=pR^?k$MS)VKvT(PC0bO46judcnu?ph{{ zyYF?YzK^;;ebajGP@@4C2(wSAV~&E(NputOo&(p`QVh^)<<5wYWVPW(xz>MC<4F`p}|L$qCRd^415iZktk(*o-c#iU*R z5KoZ$JX~i^bM~&OuwQsHLDESD!LW^`8uGV{8IJ?m0&Tl@! zXl`(D4V8yU&MiMLIRn+~IPHyf0&dumk?r$4ik1@5*19f?c-iSbdzHd(c={y?u2R); z*HQ!-93+2XSuBKyXrw+4T8Xlx;w+#I%f(v+$&8CfY~+pAaXBVOU+5^DTEn;};^$zz7D8 zP$8B1sV@&)43F$ZpK*roAz=NS$z5U1eXZ-DdGw51jUsHjPgkFez*qX!;Pi64%Cwdn zrXTSXGN0Pi=L?3%2~}0h)1pYWi%o6Tl&w=upqRMFbO4*zQP3p2L?`*7;d4yeBxWWjcWQ-xn-PycK%o~wd1^xnc?y0d7o2>7YpcM{m^(BYj zd4c(}=k4`41}mBd~=;d0w8527Gd@E-hWXg_#eZcS)1E49DOISqN z*q3=};t!BFt4qQ{>a8RUvizNi2vGUtZnBC&IvX!cIrq*E7;U+iYHXPD$ArGq3m1S-hyC>8#NQVndZ9bYoYyfW$$ zw_5B*W7RWHfPl7sA7idq^tysgGi7uCaV6f2b5JQcmlrQ$s2{1b1EcuNy5#M2(pi?x zdK?>QG%Da2wRnH3C|3hMTAY*tr3n<+-r{DTF$j)GvUIa5MaG{lQ)zNXwY1cl^3(R& zt3cMK-1|DCLwgCmUHxu$tXG?><`Z4u4Xm!mB-()|<4VA4f{lo?<5mi7WV!yq(A&x+ zeXX+z6-Vk>o6%@hsN#drvcRDe(iv50}Vqkc&V+)IWLXP!hw`8 zp5L2slB+!VdgBZ{veu*;>~J+lccP-AzUEQi{xGJ+3ZyS=!|M77g>fhlB=Dt--T4C+ zb*iKvldPT=Zkp8|NhO!~>X_DgC9}oIJhd1zj2#5w2d&)XBif#g&C3J5Y4sL-7BtKH zdgFQZae%G1@}{zfa*PUBxkcX++}-}g+X-uSCrTB` zeZKk%ifjG?zOFiQVT2(LU~x1GIGn}81AHinKMFyDSbik#A?0T^y#v5dL-01PSEi&R zON|BP?K$mNE`UXBt9@$A@gF?J2rQ*vZjXg_lI?u>NPrw2{ zf{-~@D$lA1>V%ToHCsQm-T6iwlfPpG6M6DE0js=V&j}@74P?4c&vL_50LJG`;F*!o zwHuZoeS9vVnss^iIUYgl2$k}T(^ag5lygv8f$U|Tx&xs-nlzz^g5+-NN{o>PIPhNW{D6$1Ck#I#TXaa$HBPCV_-S|# zDyr zX&qM|+`ON&ygA3lmZHZwZF*f+7BeF_X{*kizR5T$85x&%tfOT*v2#YF3}X3y?ilH8 zV`IuowpdIqx7eY-}q?U~sS>N|k! z+~SOhoKSdiOepdsd;x7Y$xE3q<4)3b<1!Z#o1j{QR60vUSvFxwMy|E2?jMd0)vt|l zhNV+*tFC$*b}M#G+kSm2$ie}oIhBkShC9km_E?SUiQyHYLo(oB24E04A}&oRqO03F z2q}XKaRbJjA36`$32`M1CqQ#Y%eX<&BYoC(1EYX#&T-PrqD$p>o(O41<1CTEjk6;s zjKtdlwa%Yym6Vzn`zd=+M#qg@n0Y@nOZE|Sl{St;3tK*2sr;O66DWhBnFPSi0zqJ- zaBL2)>7qekFUDAa#F;t*6djDoM^#Sfczyl&Xxgvgje*kKjDAUZ(T3jZt!6QBQ>zkv z;`B}~O4W`Fw63_28XKaPjS=)JSXmSm$p)K_Dj2Rv)Q~&VXEDCk%N%U~-9ks1kC!?5 zF=|s^<6XikGcAWO`FTKo{4Q$9(189ii@{wo_4cDV+&TT-I9ByWa_k+(cx1WcmcL0i zrDu)AGi`fH(lCAg`Gvw%6yyb@1M40{^`0Tkqra{y@tx8y|(jIL7lqz z>QRyNtRkAxD+Ny3{7!^EthYw>h#d^{0BSvpR7NT)yRz@}yDprCbgmrpT5}Y?{M3(m z{M8eb{In}F>~!X(RXFu|pA_8@vYrqxq@x9SmW1opm+7mVINBMX$KIlXva0#Ue)@6c znz~+GF{wF9HI?q`cS~|Fgl>`cPkBdJ5TUMHpDU8B=2tzZ8Pq^8>LkJumnt zExD2jv_KOrN17|neamR#jQEs7pHB*|g(Mw*bAh7Lm(9b0%xXMa8sKI^>{YTDVH%V-6Qo6 z(bZzFPq3yJzeh)z*?5^Rmsx-y3)GO!xdbjiQtl-4D~&VQu!miY+?SfDg97k zCy~09e)mC)Em5B()sLEzFDn?iLsev-s+rc?kxuFoPSs{Ij^W$$5)qQ*PLbiX1-j^1 zP+RFNC2O5EDk_m3b>pTY;r%aso8itH`XO+r;EH^qE_mytv$aw{~dA9X2|6b17oQLVFW`x_KNN zOd1REVXtLrts;iYWg;|8CHpP>xOLLN3hOETk==;NxdZYkRLEWYDqi#eXvkh0-olyB zp>&)$wk8}5Cu1t|d6^c(C*nOPpWy)^(dZ^NpaP031GDiYihz8koV(ef z)nFdJO0@MoZDh9zoK&X6^Vs`~^k5XyV*T^f36x}d3VDCb>haD7{v1=|;yDnm9ng6Z zli<?NeshFbDu z_o;k_({Q^snxA~&Ej}a={CFN!&sv^xF*sLQ93yvy&&qeK=OsUZ*kySrQ-lclu=V`j zTWaR*v!|%{s*lQnld~W!=`d$MX_ys9gt&hv5-c2wT7e(|(zo67L=`BB-K4AkOJJJU4|ow1FikR*hkxDtJw;e%$4) z=9F|IV>2`CqD{Tm8~exNx)OMRM6PBmkRX8)+MFgQ9=%IqLls^GF#Q&O46S)DTdXV{ zo7MVGmV=1wJoM>i;`xd3uBi?%$O)sF`Wb?P^%{Kirfhc{-N?3n*AM8j9=60H^Hx_@+2IphYVV~s|%BS=kjbh+i>{oqL;wz?_CtMXBE|x=iz`S}9$fsy6v1p}8jX)nHIyG@rbnXiZt#L9%91~GLR4u`$v7@=P)HTv#H6IPdr6IA zb0mQa*b<8Q;atjV)8d4f%syhg(P2|>gF!+qaR+kAX9Po;$b|HVkk1SDA5v(isFJiA zG@M0ZX_!HQDZ6OjwU{`5?W5IJC*g8>m>oQ%}; zUe2g1{k;JstA1(76O!6W_$TQwGdLZamcb#i?pgG`#ywrY36{%nwR^4~6KF^(#Iq6* zTiH5R8;V_P6o6xEbRrVMmv=Owh z=ubYLl=*q-BZyqlzycVO--fA78jmwfwK+L?SOi{bO9}`TGh9kUW|FGEow*jT6{>GZ zkYde5LVNUj`;27-0+~-%%N(_@6_p_h7>tnnw8BBPpREvd+k6R|!Xw z8-@#+R-mlW2xkSEk}_4)a$hs2$%fH18Yz2vd^S7{kdl@QT50+mzU6X5VBL}N$=l`T z2)JG!M^ufjghIkv=uF1U5kog6UP4IqSey|+7}|Xd3SPKcK0tyi<03l7Iej1AHgj5C zBo2K)NSwqSD;P;hK;-9*d96f$x*Y@)^d7bMVd7?8-cUa7uBgqhiVdk(V7wwMlI$mX z%HvX02QP)r{od|+r}pM87-jRWv6{y2uFmPXKjpm#U8ri&A7YzVm6|@N*xzd zMnZ0u+t9dlUUg3YTx?-sD-d1*{Jyi90&}}>xVx6x9FzquGk zI6_xy#);NWsnwCP4KEjdhUJOhs!c&~@f|@}POhtU$gdz*b9u-n z^(7_vb&2sH^PVJ*mC7ZLh}D?RR%{dr2GnN3Xla zXzUUTa{Gy5WwL}dX6!wVcoliVp>>Hu!kKmN7&~N4cJLdqNf!mCp=rpM}2bd!yXf25+Zx>VpD z3f~OkRFaZsnt!~DEN9nFg7qAW3G>atTu3nFs zJk;AFSJ;*uUpjJTZ8<~0z@d9lDalM^feJ#PrGuO<0$jq7?CS+!EJJ8VNQd+Y9x19W z0n4Q3gx(ZDNq(v>X(EK=>(oL^>L#ytQa`I(c@tTFR1mcNp-bO3-OQF#sc-UB4okG& zI@D;YrrqHL-~T@AA?vLj*;LNB!aTZiPWGKHE5hRJPC9D=C1l*;;&RN1EZ4_jHHRav6P#4;LyZ>o5eEA*=)g_Wk|X4c-nxlhQ3JR6h(^9YO7Y>)D~gG}rRv z=khxrahD?9W`1pysasR^SRQCAWo4>~T4|G)6Jt8#^Uw2EF)Uv`3Hbg2QYj$+{0#bM zqrGRpi%2`;^(Y(g$`i!k4W#)8tUChDlSluKh{rX7%m7#TV^ck$u=F3?)qFCa+1%Wb z!olAsk7=Mo7`#uW21AE%FlpzTUZ7Dxx;4tJ%4X)jC`Ji4F=c^1#FaLd`2a6xTk6GT z?zcCeGE)0gKqyMuM^^e0pA7HCT=(v5GVPmY?95^?cHWTr4yZj>;+F{IgJU?qf? ztG17dc83On=AF~Jl^PPn&gbBhXfM|RtRMuXP-HGp>?_^TM^?6--i8wjV9Q0~VY-fM zC?n(idFS`ZKtl*zohE@F>cQzlNY{xp=-)_Ho{IduKomscH23KPYotS1KcHgC4Gc@c zRc;YHAG(u%BT1hL^m-e|xHA|2wJMhF<|MPW_9NYO0O?+FSKXs-eSloz9EgE88cYIw z-Jzg@B&Cjd*V>wMO2IxiNwm+29T-z)O}p>);u_&Sw<%!;57U%CzQ<&+m-_)eadpCg z6JSxzic*%y4qfkEQ_@azxk0qvBmZbOR)mxjgCNp!3`g&+-XeDS`eSKR#m|p36Y!V`DnL~mDvQD#1;tODW=b7>p8)8~TNJ_9q5+7124XC?PC5y+Xv=~J6i}BddVVcFML)3gA zMDL}9NdTH(_#rg3`AOX^YbMc;IRivX9dAU|@-S%@IlJZGEPR0Kr!np{eenev_?zQi z8_s=VA_hi|Q{8w!Kgpul&XRr{c@ao74*tO`mRgtT3$Crx#a&)-q6@ipG|g;sOx8QE zG%$E+kzusM)#ej4`TjKfM!c5X7WkeSwjwI$Yz7lfD!qdvkX*&k^d}`&s&+)qATjTeA zN4ZCl%>)gJU7N(^u7nl(Y9h-+tOYe2c#%g+e+FZfX3;8KWv52nOBk0`OVRlP^f)B7 zoKGm75AI5W-y>U>!O&Kw91AaKdivsFc1P2Ev(pw|Dp%9a0>!;C;F;|{a5i&)wA_5k zyykQCk7kmsgk|P*uWcp_k8LC=yRD}xX$Dbl##0zK$K;*_tRJk216-5@#93(0$GqfM zfW5hQQzr5ko0q{+|Rm!u68pJT-Bf<5NWUFylFWr94X)jX#wvlQXl%;=2l-;ibHz_gio?4TYW_&&GK%scItb@j_c@ z?o*6w2fto7a2w-`5@onUL4O++lRU$k9##s8A{RtU><$hT9fpwZ*y=(PnjN=*uvCm$IUZYi%uhn^S;F{t%I_|4Gil|s)G`YUFO=l z)%HZWTrR`m@4we}ZnCDkzs(&bC1O)Z`kYijEi0!}#g26~$qpCj;Hakm4Yy6K*quFg zaV4^uyK0-dIlbA0l1hi#DK1jvT|)Hck3xo2WXhs}dMgh$Go!*UEpjw^TVoyysI z+C906;qamTSRTg+5iRCUPIvjr`yy>AMH`#IBJ^)uHZXoIc+18brI#ljYe${w@NE|e z^YAh$_iku*d9yF-JIn~E1{v9Wuo#!8*LCh&O1kDX26qz#sWYgBloB5zVO&}2~**ZhXD}yM1WFF$Y?v7SqFJ-g-GS!mj(tdc#1!1EFhj=AeQSPF9 z7c5or&=J1;MDY4VvN+JarT(J&V9)U96UnOv#NS5(;J!SO2-;X1o0dPS!HYV^AG!l{22S?&|B6Y1zl1NLUv)r0z+M+G_Rrx=w3ofo!b!F6wa7CFq35_1ANkHL#Q)@W4{Gj%e3D1%xqs%1E?z&Z-w>1kyXazTr z)BPStl^y8CfFFUgtNR_lY3_$M?rd|2SMqT*d@(BKuE0(}=<3?s*BcBJ;%fkxc{wfY zb7ArOtT2ML?sb&c$~QnJ9peB60a1f^t$a{0R1nlZq*-2X%Per(p4ag^uirmf>1F-P ztjt~%2i$Cp{_dr2KqTNJ0s`{-eZ3`rnf%M9lBtuGzO|m2r30PgpPR301Aj;PyHdP8cSHgUKQTt`#*?)a)`_u2A==7H#e)0dN$bTo-f4>5LdH%gEReyu@ zi){Z}l*r$p{374~7NzGmD8I<~pHW^J?w8&F2IcjP{v_xB7KfqaH+B3Mvi@hBSGxXX z=D)%DU*!GIVE=w{g}(v&E1CZf&Y#!%>p}d<$ggz%%hrB_^AF_y=T-S9=wF%UmCSz` bOX)vQyPPECtJnz0yO&SQ3qjSCz5e=tHX#5u literal 0 HcmV?d00001 diff --git a/tests/System/images/system-tests.pdf b/tests/System/images/system-tests.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e8fd77f7f068682d49bc4fcf184db9f9a5ec07e3 GIT binary patch literal 31169 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 literal 0 HcmV?d00001 diff --git a/tests/System/images/system-tests.svg b/tests/System/images/system-tests.svg new file mode 100644 index 0000000000000..ed74d37c81d0a --- /dev/null +++ b/tests/System/images/system-tests.svg @@ -0,0 +1,1324 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From ce571e4183143f42968ac0382f3b03ca2627729d Mon Sep 17 00:00:00 2001 From: muhme Date: Tue, 11 Jun 2024 16:02:56 +0200 Subject: [PATCH 02/10] added images folder to exclude --- tests/System/exclude.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/System/exclude.txt b/tests/System/exclude.txt index 027546be926e2..3ea7a6bc73e83 100644 --- a/tests/System/exclude.txt +++ b/tests/System/exclude.txt @@ -16,3 +16,4 @@ package.json package-lock.json phpunit.xml.dist phpunit-pgsql.xml.dist +images From e5382c06556a437444eabf266f683d07f8710b35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20L=C3=BCbbe?= Date: Tue, 11 Jun 2024 16:22:48 +0200 Subject: [PATCH 03/10] Update tests/System/README.md - Better English Co-authored-by: Brian Teeman --- tests/System/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/System/README.md b/tests/System/README.md index dc019b269339a..58ef4b0178486 100644 --- a/tests/System/README.md +++ b/tests/System/README.md @@ -19,7 +19,7 @@ It is simplified to offer an initial understanding. Detailed explanations follow On the left, **Cypress** is running as a [Node.js](https://nodejs.org/) application. The file **`cypress.config.js`** is used to configure settings and preferences for running the System Tests in your environment. -In the middle, the **Cypress Test Runner** controls a **Browser** with the **Joomla** application running HTML, CSS, and JavaScript. Also running in browser context are the **Database Commands**, the **API commands** and the npm packages **[joomala-cypress](https://github.com/joomla-projects/joomla-cypress/)** and +In the middle, the **Cypress Test Runner** controls a **Browser** with the **Joomla** application running HTML, CSS, and JavaScript. Also running in the browser context are the **Database Commands**, the **API commands** and the npm packages **[joomala-cypress](https://github.com/joomla-projects/joomla-cypress/)** and **[smtp-tester](https://www.npmjs.com/package/smtp-tester)**. The **Joomla** CMS server software is depicted on the right. It runs with PHP on the **Web Server** and includes From 84adb8f168d31cee44960eb0a72198ce9a2695de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20L=C3=BCbbe?= Date: Tue, 11 Jun 2024 16:23:07 +0200 Subject: [PATCH 04/10] Update tests/System/README.md - Better English Co-authored-by: Brian Teeman --- tests/System/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/System/README.md b/tests/System/README.md index 58ef4b0178486..47db9da6a2f50 100644 --- a/tests/System/README.md +++ b/tests/System/README.md @@ -23,7 +23,7 @@ In the middle, the **Cypress Test Runner** controls a **Browser** with the **Joo **[smtp-tester](https://www.npmjs.com/package/smtp-tester)**. The **Joomla** CMS server software is depicted on the right. It runs with PHP on the **Web Server** and includes -several key components: the public **User-Frontend**, the administrator **Admin-Backend**, the **API**, and the **Web-Installer**. These components and their interactions will be detailed further later in the document. +several key components: the public **User-Frontend**, the administrator **Admin-Backend**, the **API**, and the **Web-Installer**. These components and their interactions will be detailed later in the document. The file **`configuration.php`** is used to configure settings for Joomla server software. Joomla uses a **Database**, and the System Tests do as well. From 1d31c412137782896be59e689f368ed1c9483bf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20L=C3=BCbbe?= Date: Tue, 11 Jun 2024 16:25:01 +0200 Subject: [PATCH 05/10] Update tests/System/README.md - Better English Co-authored-by: Brian Teeman --- tests/System/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/System/README.md b/tests/System/README.md index 47db9da6a2f50..fef3bc3823f85 100644 --- a/tests/System/README.md +++ b/tests/System/README.md @@ -100,7 +100,7 @@ which are numbered and described below. ![System Tests Architecture with 10 Interactions](images/system-tests-interactions.svg) -1. **Cypress** starts the **Browser** and runs **Cypress Test Runner** to control Joomla running in browser and access the DOM. +1. **Cypress** starts the **Browser** and runs **Cypress Test Runner** to control Joomla running in the browser and access the DOM. 2. **Joomla** software running in the browser sends requests to the **Web Server** and receives responses just as it would during normal use, even without tests. 3. The Cypress custom **API commands** (described later) interact with the Joomla **API** on the Web Server. 4. Cypress **Tasks** are used to execute code within the Cypress Node.js context. These tasks are triggered by the Cypress Test Runner, which runs in the browser, and are typically used for operations like From 8183c86d09866676c267b0d517d6078e75a31f58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20L=C3=BCbbe?= Date: Tue, 11 Jun 2024 17:08:20 +0200 Subject: [PATCH 06/10] Update tests/System/README.md - Better English Co-authored-by: Brian Teeman --- tests/System/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/System/README.md b/tests/System/README.md index fef3bc3823f85..01928c4b5ea3f 100644 --- a/tests/System/README.md +++ b/tests/System/README.md @@ -281,7 +281,7 @@ The reason for this error is that Cypress first creates the Joomla file `configu Subsequently, some of the parameters in this file are adopted by Cypress under the current user. If the Web Server and Cypress are run by different users, this can lead to file access issues. -:point_right: You have to give the user running Cypress the right to write `configuration.php` +:point_right: You have to give the user running Cypress the permission to write `configuration.php` e.g. with the command `sudo` on macOS, Linux or Windows WSL 2: ``` sudo npx cypress run From 9ea69a523679943a655b25d9436a0cfa1b3cf3e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20L=C3=BCbbe?= Date: Tue, 11 Jun 2024 17:08:38 +0200 Subject: [PATCH 07/10] Update tests/System/README.md - Better English Co-authored-by: Brian Teeman --- tests/System/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/System/README.md b/tests/System/README.md index 01928c4b5ea3f..b9732ebea5944 100644 --- a/tests/System/README.md +++ b/tests/System/README.md @@ -315,7 +315,7 @@ If you encounter the following error while running the System Tests on slow mach AssertionError: Timed out retrying after 4000ms: Expected to find element ``` -:point_right: You can increase the default 4-second waiting time in the cypress.config.js file: +:point_right: You can increase the default 4 second waiting time in the cypress.config.js file: ```JavaScript module.exports = { From 678c7e98f1a08e5066f55cac96a361d1ca589008 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20L=C3=BCbbe?= Date: Tue, 11 Jun 2024 17:10:04 +0200 Subject: [PATCH 08/10] =?UTF-8?q?Update=20tests/System/images/README.md=20?= =?UTF-8?q?=E2=80=93=20British=20English=20spelling?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Brian Teeman --- tests/System/images/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/System/images/README.md b/tests/System/images/README.md index f3d7dd07bb924..833547becc2f2 100644 --- a/tests/System/images/README.md +++ b/tests/System/images/README.md @@ -3,7 +3,7 @@ Software architecture images are: * Stored in their original format as OpenOffice Draw (ODG) files and used as SVGs. * Designed to work in both light and dark color modes. -* Using Joomla logo colors and the Ubuntu font. +* Using Joomla logo colours and the Ubuntu font. * Avoid using transparency, as it may not be displayed correctly in Firefox and Safari. To create an SVG from an ODG file format: From 2d0f5ac10ebe853fe9086eaa907070747186f6a4 Mon Sep 17 00:00:00 2001 From: muhme Date: Tue, 11 Jun 2024 18:34:56 +0200 Subject: [PATCH 09/10] corrected exclude list to tests/System/images --- tests/System/exclude.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/System/exclude.txt b/tests/System/exclude.txt index 3ea7a6bc73e83..f9f6c592d43b6 100644 --- a/tests/System/exclude.txt +++ b/tests/System/exclude.txt @@ -16,4 +16,4 @@ package.json package-lock.json phpunit.xml.dist phpunit-pgsql.xml.dist -images +tests/System/images From d911cbbd0d8a75e411b4e9edabf63826bdfdabb8 Mon Sep 17 00:00:00 2001 From: muhme Date: Tue, 11 Jun 2024 18:45:52 +0200 Subject: [PATCH 10/10] one paragraph reworded after the suggestion --- tests/System/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/System/README.md b/tests/System/README.md index b9732ebea5944..5fd93723cc1c9 100644 --- a/tests/System/README.md +++ b/tests/System/README.md @@ -180,7 +180,11 @@ The following code in a test executes the writing file task with parameters: ### Commands -Commands are reusable code snippets which can be used in every test. Cypress allows to add [custom commands](https://docs.cypress.io/api/cypress-api/custom-commands) so we can use them across our tests. They can be used to create objects in the database or to call an API. As Cypress doesn't support namespaces for commands they must be prefixed with the file name and an underscore. So a Database Command starts always with `db_` and an API one with `api_`. +We are using [custom commands](https://docs.cypress.io/api/cypress-api/custom-commands) to enhance Cypress +with reusable code snippets for the System Tests. +These commands can be used to create objects in the database or to call the API. +Since Cypress doesn't support namespaces for commands, we prefix them in the function name. +Therefore, a Database Command always starts with `db_`, and an API command with `api_`. Commands can be called like a normal function, for example there is a command to create article in the database: ```JavaScript