From 96885dd9a72e94df5e898bea65abba5345260f11 Mon Sep 17 00:00:00 2001 From: David Smith <39445562+smithdc1@users.noreply.github.com> Date: Thu, 1 Apr 2021 09:49:47 +0100 Subject: [PATCH 001/450] Fixed markdown test (#7892) The pygments rendering of invalid json changed in pygments>=2.7.3 --- tests/test_description.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/tests/test_description.py b/tests/test_description.py index 9e7e4dc322..3b7d95e0a1 100644 --- a/tests/test_description.py +++ b/tests/test_description.py @@ -26,7 +26,7 @@ ``` json [{ "alpha": 1, - "beta: "this is a string" + "beta": "this is a string" }] ```""" @@ -48,20 +48,18 @@
[{
\ "alpha":\ 1,
\ - "beta: "this\ - is a \ -string"
}]\ -
+ "beta":\ + "this is a string"
\ +}]


""" MARKDOWN_lt_33 = """
[{
\ "alpha":\ 1,
\ - "beta: "this\ - is a\ - string"
}]\ -
+ "beta":\ + "this is a string"
\ +}]


""" @@ -112,7 +110,7 @@ class MockView(APIView): ``` json [{ "alpha": 1, - "beta: "this is a string" + "beta": "this is a string" }] ```""" From 406e6a2f352dd98623707fccc45fef7a7309eb59 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Thu, 1 Apr 2021 14:15:53 +0100 Subject: [PATCH 002/450] Update MANIFEST.in (#7893) --- MANIFEST.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MANIFEST.in b/MANIFEST.in index 262e3dc917..5159eeddc7 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,6 +1,6 @@ include README.md include LICENSE.md -recursive-include tests/* * +recursive-include tests/ * recursive-include rest_framework/static *.js *.css *.png *.ico *.eot *.svg *.ttf *.woff *.woff2 recursive-include rest_framework/templates *.html schema.js recursive-include rest_framework/locale *.mo From 78da1a824f1de338e1678a0182237d4c9b6d58e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Apr 2021 16:52:19 +0100 Subject: [PATCH 003/450] Bump pygments from 2.4.2 to 2.7.4 in /requirements (#7886) Bumps [pygments](https://github.com/pygments/pygments) from 2.4.2 to 2.7.4. - [Release notes](https://github.com/pygments/pygments/releases) - [Changelog](https://github.com/pygments/pygments/blob/master/CHANGES) - [Commits](https://github.com/pygments/pygments/compare/2.4.2...2.7.4) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- requirements/requirements-optionals.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements-optionals.txt b/requirements/requirements-optionals.txt index 739555667e..121de580e8 100644 --- a/requirements/requirements-optionals.txt +++ b/requirements/requirements-optionals.txt @@ -2,7 +2,7 @@ psycopg2-binary>=2.8.5, <2.9 markdown==3.3;python_version>="3.6" markdown==3.2.2;python_version=="3.5" -pygments==2.4.2 +pygments==2.7.4 django-guardian==2.2.0 django-filter>=2.2.0, <2.3 coreapi==2.3.1 From d82519bf8a0f0d4eb50d9ceadc52a01b1e06830e Mon Sep 17 00:00:00 2001 From: David Smith <39445562+smithdc1@users.noreply.github.com> Date: Mon, 5 Apr 2021 10:28:03 +0100 Subject: [PATCH 004/450] Updated dependencies (#7589) --- requirements/requirements-codestyle.txt | 7 +++---- requirements/requirements-documentation.txt | 2 +- requirements/requirements-optionals.txt | 14 +++++++------- requirements/requirements-packaging.txt | 6 +++--- requirements/requirements-testing.txt | 6 +++--- tests/test_status.py | 3 +-- tests/test_validators.py | 3 +-- 7 files changed, 19 insertions(+), 22 deletions(-) diff --git a/requirements/requirements-codestyle.txt b/requirements/requirements-codestyle.txt index 4f54d6e778..d9a93884c9 100644 --- a/requirements/requirements-codestyle.txt +++ b/requirements/requirements-codestyle.txt @@ -1,7 +1,6 @@ # PEP8 code linting, which we run on all commits. -flake8==3.8.3 -flake8-tidy-imports==4.1.0 -pycodestyle==2.6.0 +flake8>=3.8.4,<3.9 +flake8-tidy-imports>=4.1.0,<4.2 # Sort and lint imports -isort==5.4.2 +isort>=5.6.2,<6.0 diff --git a/requirements/requirements-documentation.txt b/requirements/requirements-documentation.txt index e969ff471b..ad49287304 100644 --- a/requirements/requirements-documentation.txt +++ b/requirements/requirements-documentation.txt @@ -1,2 +1,2 @@ # MkDocs to build our documentation. -mkdocs==1.1 +mkdocs>=1.1.2,<1.2 diff --git a/requirements/requirements-optionals.txt b/requirements/requirements-optionals.txt index 121de580e8..4cb0e54f4b 100644 --- a/requirements/requirements-optionals.txt +++ b/requirements/requirements-optionals.txt @@ -1,10 +1,10 @@ # Optional packages which may be used with REST framework. -psycopg2-binary>=2.8.5, <2.9 -markdown==3.3;python_version>="3.6" -markdown==3.2.2;python_version=="3.5" -pygments==2.7.4 -django-guardian==2.2.0 -django-filter>=2.2.0, <2.3 coreapi==2.3.1 coreschema==0.0.4 -pyyaml>=5.1 +django-filter>=2.4.0,<3.0 +django-guardian>=2.3.0,<2.4 +markdown==3.3;python_version>="3.6" +markdown==3.2.2;python_version=="3.5" +psycopg2-binary>=2.8.5,<2.9 +pygments>=2.7.1,<2.8 +pyyaml>=5.3.1,<5.4 diff --git a/requirements/requirements-packaging.txt b/requirements/requirements-packaging.txt index 091622fbeb..3489c76ec0 100644 --- a/requirements/requirements-packaging.txt +++ b/requirements/requirements-packaging.txt @@ -1,8 +1,8 @@ # Wheel for PyPI installs. -wheel==0.34.2 +wheel>=0.35.1,<0.36 # Twine for secured PyPI uploads. -twine==3.1.1 +twine>=3.2.0,<3.3 # Transifex client for managing translation resources. -transifex-client==0.13.9 +transifex-clien>=0.13.12,<0.14 diff --git a/requirements/requirements-testing.txt b/requirements/requirements-testing.txt index c5198dec54..313fdedc9b 100644 --- a/requirements/requirements-testing.txt +++ b/requirements/requirements-testing.txt @@ -1,4 +1,4 @@ # Pytest for running the tests. -pytest>=6.1.1,<6.2 -pytest-django>=4.1.0,<4.2 -pytest-cov>=2.10.1 +pytest>=6.1,<7.0 +pytest-cov>=2.10.1,<3.0 +pytest-django>=4.1.0,<5.0 diff --git a/tests/test_status.py b/tests/test_status.py index 07d893bee9..b10f7df994 100644 --- a/tests/test_status.py +++ b/tests/test_status.py @@ -1,8 +1,7 @@ from django.test import TestCase from rest_framework.status import ( - is_client_error, is_informational, is_redirect, is_server_error, - is_success + is_client_error, is_informational, is_redirect, is_server_error, is_success ) diff --git a/tests/test_validators.py b/tests/test_validators.py index 4962cf5816..bccbe1514b 100644 --- a/tests/test_validators.py +++ b/tests/test_validators.py @@ -7,8 +7,7 @@ from rest_framework import serializers from rest_framework.exceptions import ValidationError from rest_framework.validators import ( - BaseUniqueForValidator, UniqueTogetherValidator, UniqueValidator, - qs_exists + BaseUniqueForValidator, UniqueTogetherValidator, UniqueValidator, qs_exists ) From 846fe70cff1232da93f4868216d625de4b835967 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Mon, 5 Apr 2021 11:12:28 +0100 Subject: [PATCH 005/450] De-duplicate contributing guide (#7901) The contributing guide from `docs/community/contributing.md` was copy-pasted to `CONTRIBUTING.md` and the two have drifted apart over time. The docs page seems to have been updated a bit more so let's leave only that version. --- CONTRIBUTING.md | 206 +-------------------------------------- PULL_REQUEST_TEMPLATE.md | 2 +- 2 files changed, 2 insertions(+), 206 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2f1aad08f4..a7f17b1a35 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,207 +1,3 @@ # Contributing to REST framework -> The world can only really be changed one piece at a time. The art is picking that piece. -> -> — [Tim Berners-Lee][cite] - -There are many ways you can contribute to Django REST framework. We'd like it to be a community-led project, so please get involved and help shape the future of the project. - -## Community - -The most important thing you can do to help push the REST framework project forward is to be actively involved wherever possible. Code contributions are often overvalued as being the primary way to get involved in a project, we don't believe that needs to be the case. - -If you use REST framework, we'd love you to be vocal about your experiences with it - you might consider writing a blog post about using REST framework, or publishing a tutorial about building a project with a particular JavaScript framework. Experiences from beginners can be particularly helpful because you'll be in the best position to assess which bits of REST framework are more difficult to understand and work with. - -Other really great ways you can help move the community forward include helping to answer questions on the [discussion group][google-group], or setting up an [email alert on StackOverflow][so-filter] so that you get notified of any new questions with the `django-rest-framework` tag. - -When answering questions make sure to help future contributors find their way around by hyperlinking wherever possible to related threads and tickets, and include backlinks from those items if relevant. - -## Code of conduct - -Please keep the tone polite & professional. For some users a discussion on the REST framework mailing list or ticket tracker may be their first engagement with the open source community. First impressions count, so let's try to make everyone feel welcome. - -Be mindful in the language you choose. As an example, in an environment that is heavily male-dominated, posts that start 'Hey guys,' can come across as unintentionally exclusive. It's just as easy, and more inclusive to use gender neutral language in those situations. (e.g. 'Hey folks,') - -The [Django code of conduct][code-of-conduct] gives a fuller set of guidelines for participating in community forums. - -# Issues - -It's really helpful if you can make sure to address issues on the correct channel. Usage questions should be directed to the [discussion group][google-group]. Feature requests, bug reports and other issues should be raised on the GitHub [issue tracker][issues]. - -Some tips on good issue reporting: - -* When describing issues try to phrase your ticket in terms of the *behavior* you think needs changing rather than the *code* you think need changing. -* Search the issue list first for related items, and make sure you're running the latest version of REST framework before reporting an issue. -* If reporting a bug, then try to include a pull request with a failing test case. This will help us quickly identify if there is a valid issue, and make sure that it gets fixed more quickly if there is one. -* Feature requests will often be closed with a recommendation that they be implemented outside of the core REST framework library. Keeping new feature requests implemented as third party libraries allows us to keep down the maintenance overhead of REST framework, so that the focus can be on continued stability, bug fixes, and great documentation. -* Closing an issue doesn't necessarily mean the end of a discussion. If you believe your issue has been closed incorrectly, explain why and we'll consider if it needs to be reopened. - -## Triaging issues - -Getting involved in triaging incoming issues is a good way to start contributing. Every single ticket that comes into the ticket tracker needs to be reviewed in order to determine what the next steps should be. Anyone can help out with this, you just need to be willing to: - -* Read through the ticket - does it make sense, is it missing any context that would help explain it better? -* Is the ticket reported in the correct place, would it be better suited as a discussion on the discussion group? -* If the ticket is a bug report, can you reproduce it? Are you able to write a failing test case that demonstrates the issue and that can be submitted as a pull request? -* If the ticket is a feature request, do you agree with it, and could the feature request instead be implemented as a third party package? -* If a ticket hasn't had much activity and it addresses something you need, then comment on the ticket and try to find out what's needed to get it moving again. - -# Development - -To start developing on Django REST framework, clone the repo: - - git clone https://github.com/encode/django-rest-framework - -Changes should broadly follow the [PEP 8][pep-8] style conventions, and we recommend you set up your editor to automatically indicate non-conforming styles. - -## Testing - -To run the tests, clone the repository, and then: - - # Setup the virtual environment - python3 -m venv env - source env/bin/activate - pip install django - pip install -r requirements.txt - - # Run the tests - ./runtests.py - -### Test options - -Run using a more concise output style. - - ./runtests.py -q - -Run the tests using a more concise output style, no coverage, no flake8. - - ./runtests.py --fast - -Don't run the flake8 code linting. - - ./runtests.py --nolint - -Only run the flake8 code linting, don't run the tests. - - ./runtests.py --lintonly - -Run the tests for a given test case. - - ./runtests.py MyTestCase - -Run the tests for a given test method. - - ./runtests.py MyTestCase.test_this_method - -Shorter form to run the tests for a given test method. - - ./runtests.py test_this_method - -Note: The test case and test method matching is fuzzy and will sometimes run other tests that contain a partial string match to the given command line input. - -### Running against multiple environments - -You can also use the excellent [tox][tox] testing tool to run the tests against all supported versions of Python and Django. Install `tox` globally, and then simply run: - - tox - -## Pull requests - -It's a good idea to make pull requests early on. A pull request represents the start of a discussion, and doesn't necessarily need to be the final, finished submission. - -It's also always best to make a new branch before starting work on a pull request. This means that you'll be able to later switch back to working on another separate issue without interfering with an ongoing pull requests. - -It's also useful to remember that if you have an outstanding pull request then pushing new commits to your GitHub repo will also automatically update the pull requests. - -GitHub's documentation for working on pull requests is [available here][pull-requests]. - -Always run the tests before submitting pull requests, and ideally run `tox` in order to check that your modifications are compatible on all supported versions of Python and Django. - -Once you've made a pull request take a look at the Travis build status in the GitHub interface and make sure the tests are running as you'd expect. - -## Managing compatibility issues - -Sometimes, in order to ensure your code works on various different versions of Django, Python or third party libraries, you'll need to run slightly different code depending on the environment. Any code that branches in this way should be isolated into the `compat.py` module, and should provide a single common interface that the rest of the codebase can use. - -# Documentation - -The documentation for REST framework is built from the [Markdown][markdown] source files in [the docs directory][docs]. - -There are many great Markdown editors that make working with the documentation really easy. The [Mou editor for Mac][mou] is one such editor that comes highly recommended. - -## Building the documentation - -To build the documentation, install MkDocs with `pip install mkdocs` and then run the following command. - - mkdocs build - -This will build the documentation into the `site` directory. - -You can build the documentation and open a preview in a browser window by using the `serve` command. - - mkdocs serve - -## Language style - -Documentation should be in American English. The tone of the documentation is very important - try to stick to a simple, plain, objective and well-balanced style where possible. - -Some other tips: - -* Keep paragraphs reasonably short. -* Don't use abbreviations such as 'e.g.' but instead use the long form, such as 'For example'. - -## Markdown style - -There are a couple of conventions you should follow when working on the documentation. - -##### 1. Headers - -Headers should use the hash style. For example: - - ### Some important topic - -The underline style should not be used. **Don't do this:** - - Some important topic - ==================== - -##### 2. Links - -Links should always use the reference style, with the referenced hyperlinks kept at the end of the document. - - Here is a link to [some other thing][other-thing]. - - More text... - - [other-thing]: http://example.com/other/thing - -This style helps keep the documentation source consistent and readable. - -If you are hyperlinking to another REST framework document, you should use a relative link, and link to the `.md` suffix. For example: - - [authentication]: ../api-guide/authentication.md - -Linking in this style means you'll be able to click the hyperlink in your Markdown editor to open the referenced document. When the documentation is built, these links will be converted into regular links to HTML pages. - -##### 3. Notes - -If you want to draw attention to a note or warning, use a pair of enclosing lines, like so: - - --- - - **Note:** A useful documentation note. - - --- - - -[cite]: https://www.w3.org/People/Berners-Lee/FAQ.html -[code-of-conduct]: https://www.djangoproject.com/conduct/ -[google-group]: https://groups.google.com/forum/?fromgroups#!forum/django-rest-framework -[so-filter]: https://stackexchange.com/filters/66475/rest-framework -[issues]: https://github.com/encode/django-rest-framework/issues?state=open -[pep-8]: https://www.python.org/dev/peps/pep-0008/ -[pull-requests]: https://help.github.com/articles/using-pull-requests -[tox]: https://tox.readthedocs.io/en/latest/ -[markdown]: https://daringfireball.net/projects/markdown/basics -[docs]: https://github.com/encode/django-rest-framework/tree/master/docs -[mou]: http://mouapp.com/ +See the [Contributing guide in the documentation](https://www.django-rest-framework.org/community/contributing/). diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md index 70673c6c16..e9230d5c99 100644 --- a/PULL_REQUEST_TEMPLATE.md +++ b/PULL_REQUEST_TEMPLATE.md @@ -1,4 +1,4 @@ -*Note*: Before submitting this pull request, please review our [contributing guidelines](https://github.com/encode/django-rest-framework/blob/master/CONTRIBUTING.md#pull-requests). +*Note*: Before submitting this pull request, please review our [contributing guidelines](https://www.django-rest-framework.org/community/contributing/#pull-requests). ## Description From aa12a5f967705f70b1dbe457bb2396d106e3570b Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Mon, 5 Apr 2021 12:08:52 +0100 Subject: [PATCH 006/450] Lint with pre-commit (#7900) Following [my comment here](https://github.com/encode/django-rest-framework/pull/7589#issuecomment-813301322) and [Django's own move to pre-commit](https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/coding-style/#pre-commit-checks). * Add pre-commit config file to run flake8 and isort. * Add extra "common sense" hooks. * Run pre-commit on GitHub actions using the [official action](https://github.com/pre-commit/action/). This is a good way to get up-and-running but it would be better if we activated [pre-commit.ci](https://pre-commit.ci/), which is faster and will auto-update the hooks for us going forwards. * Remove `runtests.py` code for running linting tools. * Remove `runtests.py --fast` flag, since that would now just run `pytest -q`, which can be done with `runtests.py -q` instead. * Remove tox configuration and requirements files for linting. * Update the contributing guide to mention setting up pre-commit. --- .github/workflows/pre-commit.yml | 24 +++++++++ .gitignore | 3 +- .pre-commit-config.yaml | 20 +++++++ .travis.yml | 1 - docs/community/contributing.md | 22 ++++---- requirements.txt | 1 - requirements/requirements-codestyle.txt | 6 --- runtests.py | 70 +------------------------ tox.ini | 12 ++--- 9 files changed, 59 insertions(+), 100 deletions(-) create mode 100644 .github/workflows/pre-commit.yml create mode 100644 .pre-commit-config.yaml delete mode 100644 requirements/requirements-codestyle.txt diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml new file mode 100644 index 0000000000..9c29ed0564 --- /dev/null +++ b/.github/workflows/pre-commit.yml @@ -0,0 +1,24 @@ +name: pre-commit + +on: + push: + branches: + - master + pull_request: + +jobs: + pre-commit: + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - uses: actions/setup-python@v2 + with: + python-version: 3.9 + + - uses: pre-commit/action@v2.0.0 + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 82e885edee..7cb1eb249a 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ MANIFEST coverage.* +!.github !.gitignore +!.pre-commit-config.yaml !.travis.yml -!.isort.cfg diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000000..0fc181b10c --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,20 @@ +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v3.4.0 + hooks: + - id: check-added-large-files + - id: check-case-conflict + - id: check-json + - id: check-merge-conflict + - id: check-symlinks + - id: check-toml +- repo: https://github.com/pycqa/isort + rev: 5.8.0 + hooks: + - id: isort +- repo: https://gitlab.com/pycqa/flake8 + rev: 3.9.0 + hooks: + - id: flake8 + additional_dependencies: + - flake8-tidy-imports diff --git a/.travis.yml b/.travis.yml index 57a91e594a..244ab77fa3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,7 +27,6 @@ matrix: - { python: "3.9", env: DJANGO=main } - { python: "3.8", env: TOXENV=base } - - { python: "3.8", env: TOXENV=lint } - { python: "3.8", env: TOXENV=docs } - python: "3.8" diff --git a/docs/community/contributing.md b/docs/community/contributing.md index cb67100d2b..e220f95fc4 100644 --- a/docs/community/contributing.md +++ b/docs/community/contributing.md @@ -54,11 +54,19 @@ To start developing on Django REST framework, first create a Fork from the Then clone your fork. The clone command will look like this, with your GitHub username instead of YOUR-USERNAME: - git clone https://github.com/YOUR-USERNAME/Spoon-Knife + git clone https://github.com/YOUR-USERNAME/django-rest-framework See GitHub's [_Fork a Repo_][how-to-fork] Guide for more help. Changes should broadly follow the [PEP 8][pep-8] style conventions, and we recommend you set up your editor to automatically indicate non-conforming styles. +You can check your contributions against these conventions each time you commit using the [pre-commit](https://pre-commit.com/) hooks, which we also run on CI. +To set them up, first ensure you have the pre-commit tool installed, for example: + + python -m pip install pre-commit + +Then run: + + pre-commit install ## Testing @@ -79,18 +87,6 @@ Run using a more concise output style. ./runtests.py -q -Run the tests using a more concise output style, no coverage, no flake8. - - ./runtests.py --fast - -Don't run the flake8 code linting. - - ./runtests.py --nolint - -Only run the flake8 code linting, don't run the tests. - - ./runtests.py --lintonly - Run the tests for a given test case. ./runtests.py MyTestCase diff --git a/requirements.txt b/requirements.txt index b4e5ff5797..395f3b7a86 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,5 +9,4 @@ -r requirements/requirements-optionals.txt -r requirements/requirements-testing.txt -r requirements/requirements-documentation.txt --r requirements/requirements-codestyle.txt -r requirements/requirements-packaging.txt diff --git a/requirements/requirements-codestyle.txt b/requirements/requirements-codestyle.txt deleted file mode 100644 index d9a93884c9..0000000000 --- a/requirements/requirements-codestyle.txt +++ /dev/null @@ -1,6 +0,0 @@ -# PEP8 code linting, which we run on all commits. -flake8>=3.8.4,<3.9 -flake8-tidy-imports>=4.1.0,<4.2 - -# Sort and lint imports -isort>=5.6.2,<6.0 diff --git a/runtests.py b/runtests.py index 82028ea32c..c340b55d86 100755 --- a/runtests.py +++ b/runtests.py @@ -1,42 +1,8 @@ #! /usr/bin/env python3 -import subprocess import sys import pytest -PYTEST_ARGS = { - 'default': [], - 'fast': ['-q'], -} - -FLAKE8_ARGS = ['rest_framework', 'tests'] - -ISORT_ARGS = ['--check-only', '--diff', 'rest_framework', 'tests'] - - -def exit_on_failure(ret, message=None): - if ret: - sys.exit(ret) - - -def flake8_main(args): - print('Running flake8 code linting') - ret = subprocess.call(['flake8'] + args) - print('flake8 failed' if ret else 'flake8 passed') - return ret - - -def isort_main(args): - print('Running isort code checking') - ret = subprocess.call(['isort'] + args) - - if ret: - print('isort failed: Some modules have incorrectly ordered imports. Fix by running `isort --recursive .`') - else: - print('isort passed') - - return ret - def split_class_and_function(string): class_string, function_string = string.split('.', 1) @@ -54,31 +20,6 @@ def is_class(string): if __name__ == "__main__": - try: - sys.argv.remove('--nolint') - except ValueError: - run_flake8 = True - run_isort = True - else: - run_flake8 = False - run_isort = False - - try: - sys.argv.remove('--lintonly') - except ValueError: - run_tests = True - else: - run_tests = False - - try: - sys.argv.remove('--fast') - except ValueError: - style = 'default' - else: - style = 'fast' - run_flake8 = False - run_isort = False - if len(sys.argv) > 1: pytest_args = sys.argv[1:] first_arg = pytest_args[0] @@ -104,14 +45,5 @@ def is_class(string): # `runtests.py TestCase [flags]` # `runtests.py test_function [flags]` pytest_args = ['tests', '-k', pytest_args[0]] + pytest_args[1:] - else: - pytest_args = PYTEST_ARGS[style] - - if run_tests: - exit_on_failure(pytest.main(pytest_args)) - - if run_flake8: - exit_on_failure(flake8_main(FLAKE8_ARGS)) - if run_isort: - exit_on_failure(isort_main(ISORT_ARGS)) + sys.exit(pytest.main(pytest_args)) diff --git a/tox.ini b/tox.ini index df16cf947f..fc44b52d21 100644 --- a/tox.ini +++ b/tox.ini @@ -5,7 +5,7 @@ envlist = {py36,py37,py38,py39}-django31, {py36,py37,py38,py39}-django32, {py38,py39}-djangomain, - base,dist,lint,docs, + base,dist,docs, [travis:env] DJANGO = @@ -16,7 +16,7 @@ DJANGO = main: djangomain [testenv] -commands = python -W error::DeprecationWarning -W error::PendingDeprecationWarning runtests.py --fast --coverage {posargs} +commands = python -W error::DeprecationWarning -W error::PendingDeprecationWarning runtests.py --coverage {posargs} envdir = {toxworkdir}/venvs/{envname} setenv = PYTHONDONTWRITEBYTECODE=1 @@ -37,18 +37,12 @@ deps = -rrequirements/requirements-testing.txt [testenv:dist] -commands = ./runtests.py --fast --no-pkgroot --staticfiles {posargs} +commands = ./runtests.py --no-pkgroot --staticfiles {posargs} deps = django -rrequirements/requirements-testing.txt -rrequirements/requirements-optionals.txt -[testenv:lint] -commands = ./runtests.py --lintonly -deps = - -rrequirements/requirements-codestyle.txt - -rrequirements/requirements-testing.txt - [testenv:docs] skip_install = true commands = mkdocs build From 37ef62b0e650dfa4cb61416ec646fd67ebe1d565 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Mon, 5 Apr 2021 18:18:35 +0100 Subject: [PATCH 007/450] Remove link to third party cookiecutter template (#7902) The template has not been maintained for six years, so it's out of date on versions and various "best practices" (e.g. pre-commit). I also think any template should be documented on its own repo rather than here, especially if it's not an official maintained project. --- docs/community/third-party-packages.md | 137 +------------------------ 1 file changed, 2 insertions(+), 135 deletions(-) diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md index 046966594c..63a5c4f5f4 100644 --- a/docs/community/third-party-packages.md +++ b/docs/community/third-party-packages.md @@ -14,142 +14,9 @@ We aim to make creating third party packages as easy as possible, whilst keeping If you have an idea for a new feature please consider how it may be packaged as a Third Party Package. We're always happy to discuss ideas on the [Mailing List][discussion-group]. -## How to create a Third Party Package +## Creating a Third Party Package -### Creating your package - -You can use [this cookiecutter template][cookiecutter] for creating reusable Django REST Framework packages quickly. Cookiecutter creates projects from project templates. While optional, this cookiecutter template includes best practices from Django REST framework and other packages, as well as a Travis CI configuration, Tox configuration, and a sane setup.py for easy PyPI registration/distribution. - -Note: Let us know if you have an alternate cookiecutter package so we can also link to it. - -#### Running the initial cookiecutter command - -To run the initial cookiecutter command, you'll first need to install the Python `cookiecutter` package. - - $ pip install cookiecutter - -Once `cookiecutter` is installed just run the following to create a new project. - - $ cookiecutter gh:jpadilla/cookiecutter-django-rest-framework - -You'll be prompted for some questions, answer them, then it'll create your Python package in the current working directory based on those values. - - full_name (default is "Your full name here")? Johnny Appleseed - email (default is "you@example.com")? jappleseed@example.com - github_username (default is "yourname")? jappleseed - pypi_project_name (default is "dj-package")? djangorestframework-custom-auth - repo_name (default is "dj-package")? django-rest-framework-custom-auth - app_name (default is "djpackage")? custom_auth - project_short_description (default is "Your project description goes here")? - year (default is "2014")? - version (default is "0.1.0")? - -#### Getting it onto GitHub - -To put your project up on GitHub, you'll need a repository for it to live in. You can create a new repository [here][new-repo]. If you need help, check out the [Create A Repo][create-a-repo] article on GitHub. - - -#### Adding to Travis CI - -We recommend using [Travis CI][travis-ci], a hosted continuous integration service which integrates well with GitHub and is free for public repositories. - -To get started with Travis CI, [sign in][travis-ci] with your GitHub account. Once you're signed in, go to your [profile page][travis-profile] and enable the service hook for the repository you want. - -If you use the cookiecutter template, your project will already contain a `.travis.yml` file which Travis CI will use to build your project and run tests. By default, builds are triggered every time you push to your repository or create Pull Request. - -#### Uploading to PyPI - -Once you've got at least a prototype working and tests running, you should publish it on PyPI to allow others to install it via `pip`. - -You must [register][pypi-register] an account before publishing to PyPI. - -To register your package on PyPI run the following command. - - $ python setup.py register - -If this is the first time publishing to PyPI, you'll be prompted to login. - -Note: Before publishing you'll need to make sure you have the latest pip that supports `wheel` as well as install the `wheel` package. - - $ pip install --upgrade pip - $ pip install wheel - -After this, every time you want to release a new version on PyPI just run the following command. - - $ python setup.py publish - You probably want to also tag the version now: - git tag -a {0} -m 'version 0.1.0' - git push --tags - -After releasing a new version to PyPI, it's always a good idea to tag the version and make available as a GitHub Release. - -We recommend to follow [Semantic Versioning][semver] for your package's versions. - -### Development - -#### Version requirements - -The cookiecutter template assumes a set of supported versions will be provided for Python and Django. Make sure you correctly update your requirements, docs, `tox.ini`, `.travis.yml`, and `setup.py` to match the set of versions you wish to support. - -#### Tests - -The cookiecutter template includes a `runtests.py` which uses the `pytest` package as a test runner. - -Before running, you'll need to install a couple test requirements. - - $ pip install -r requirements.txt - -Once requirements installed, you can run `runtests.py`. - - $ ./runtests.py - -Run using a more concise output style. - - $ ./runtests.py -q - -Run the tests using a more concise output style, no coverage, no flake8. - - $ ./runtests.py --fast - -Don't run the flake8 code linting. - - $ ./runtests.py --nolint - -Only run the flake8 code linting, don't run the tests. - - $ ./runtests.py --lintonly - -Run the tests for a given test case. - - $ ./runtests.py MyTestCase - -Run the tests for a given test method. - - $ ./runtests.py MyTestCase.test_this_method - -Shorter form to run the tests for a given test method. - - $ ./runtests.py test_this_method - -To run your tests against multiple versions of Python as different versions of requirements such as Django we recommend using `tox`. [Tox][tox-docs] is a generic virtualenv management and test command line tool. - -First, install `tox` globally. - - $ pip install tox - -To run `tox`, just simply run: - - $ tox - -To run a particular `tox` environment: - - $ tox -e envlist - -`envlist` is a comma-separated value to that specifies the environments to run tests against. To view a list of all possible test environments, run: - - $ tox -l - -#### Version compatibility +### Version compatibility Sometimes, in order to ensure your code works on various different versions of Django, Python or third party libraries, you'll need to run slightly different code depending on the environment. Any code that branches in this way should be isolated into a `compat.py` module, and should provide a single common interface that the rest of the codebase can use. From 90635c138f073f617516a5733946acb63254a1cf Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 6 Apr 2021 17:49:17 +0100 Subject: [PATCH 008/450] Update pre-commit for flake8 move (#7907) See: https://twitter.com/codewithanthony/status/1378746934928699396 --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0fc181b10c..5a6e554b98 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,7 +12,7 @@ repos: rev: 5.8.0 hooks: - id: isort -- repo: https://gitlab.com/pycqa/flake8 +- repo: https://github.com/PyCQA/flake8 rev: 3.9.0 hooks: - id: flake8 From fd017d00f938c6629d2eeb1b4d81716dff6d006e Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 6 Apr 2021 18:34:18 +0100 Subject: [PATCH 009/450] Move CI to GitHub Actions (#7903) * Recreate all the jobs on GitHub Actions * Upgrade to Ubuntu 20.04 * Upgrade base/docs/dist to Python 3.9 --- .github/workflows/main.yml | 57 ++++++++++++++++++++++++++++++++++++++ .travis.yml | 55 ------------------------------------ tox.ini | 18 ++++++++++++ 3 files changed, 75 insertions(+), 55 deletions(-) create mode 100644 .github/workflows/main.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000000..6686ce7593 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,57 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + +jobs: + tests: + name: Python ${{ matrix.python-version }} + runs-on: ubuntu-20.04 + + strategy: + matrix: + python-version: + - '3.6' + - '3.7' + - '3.8' + - '3.9' + + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - uses: actions/cache@v2 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('requirements/*.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + + - name: Upgrade packaging tools + run: python -m pip install --upgrade pip setuptools virtualenv wheel + + - name: Install dependencies + run: python -m pip install --upgrade codecov tox + + - name: Run tox targets for ${{ matrix.python-version }} + run: | + ENV_PREFIX=$(tr -C -d "0-9" <<< "${{ matrix.python-version }}") + TOXENV=$(tox --listenvs | grep "^py$ENV_PREFIX" | tr '\n' ',') tox + + - name: Run extra tox targets + if: ${{ matrix.python-version == '3.9' }} + run: | + python setup.py bdist_wheel + rm -r djangorestframework.egg-info # see #6139 + tox -e base,dist,docs + tox -e dist --installpkg ./dist/djangorestframework-*.whl + + - name: Upload coverage + run: | + codecov -e TOXENV,DJANGO diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 244ab77fa3..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,55 +0,0 @@ -language: python -cache: pip -dist: bionic -matrix: - fast_finish: true - include: - - - { python: "3.5", env: DJANGO=2.2 } - - - { python: "3.6", env: DJANGO=2.2 } - - { python: "3.6", env: DJANGO=3.0 } - - { python: "3.6", env: DJANGO=3.1 } - - { python: "3.6", env: DJANGO=3.2 } - - - { python: "3.7", env: DJANGO=2.2 } - - { python: "3.7", env: DJANGO=3.0 } - - { python: "3.7", env: DJANGO=3.1 } - - { python: "3.7", env: DJANGO=3.2 } - - - { python: "3.8", env: DJANGO=3.0 } - - { python: "3.8", env: DJANGO=3.1 } - - { python: "3.8", env: DJANGO=3.2 } - - { python: "3.8", env: DJANGO=main } - - - { python: "3.9", env: DJANGO=3.1 } - - { python: "3.9", env: DJANGO=3.2 } - - { python: "3.9", env: DJANGO=main } - - - { python: "3.8", env: TOXENV=base } - - { python: "3.8", env: TOXENV=docs } - - - python: "3.8" - env: TOXENV=dist - script: - - python setup.py bdist_wheel - - rm -r djangorestframework.egg-info # see #6139 - - tox --installpkg ./dist/djangorestframework-*.whl - - tox # test sdist - - allow_failures: - - env: DJANGO=main - - env: DJANGO=3.2 - -install: - - pip install tox tox-travis - -script: - - tox - -after_success: - - pip install codecov - - codecov -e TOXENV,DJANGO - -notifications: - email: false diff --git a/tox.ini b/tox.ini index fc44b52d21..bf4de90d03 100644 --- a/tox.ini +++ b/tox.ini @@ -49,3 +49,21 @@ commands = mkdocs build deps = -rrequirements/requirements-testing.txt -rrequirements/requirements-documentation.txt + +[testenv:py36-django32] +ignore_outcome = true + +[testenv:py37-django32] +ignore_outcome = true + +[testenv:py38-django32] +ignore_outcome = true + +[testenv:py39-django32] +ignore_outcome = true + +[testenv:py38-djangomain] +ignore_outcome = true + +[testenv:py39-djangomain] +ignore_outcome = true From 9bdd6125a1fb1a0c429ce3ee0b68fe5d409fd1fe Mon Sep 17 00:00:00 2001 From: Lalit Suthar Date: Mon, 12 Apr 2021 16:29:58 +0530 Subject: [PATCH 010/450] fix broken article link (#7918) Co-authored-by: lalit97 --- docs/community/tutorials-and-resources.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/community/tutorials-and-resources.md b/docs/community/tutorials-and-resources.md index cfd3ba852e..dae292f50c 100644 --- a/docs/community/tutorials-and-resources.md +++ b/docs/community/tutorials-and-resources.md @@ -95,7 +95,7 @@ Want your Django REST Framework talk/tutorial/article to be added to our website [ember-and-django-part 1-video]: http://www.neckbeardrepublic.com/screencasts/ember-and-django-part-1 [django-rest-framework-part-1-video]: http://www.neckbeardrepublic.com/screencasts/django-rest-framework-part-1 [web-api-performance-profiling-django-rest-framework]: https://www.dabapps.com/blog/api-performance-profiling-django-rest-framework/ -[api-development-with-django-and-django-rest-framework]: https://bnotions.com/api-development-with-django-and-django-rest-framework/ +[api-development-with-django-and-django-rest-framework]: https://bnotions.com/news-and-insights/api-development-with-django-and-django-rest-framework/ [cdrf.co]:http://www.cdrf.co [medium-django-rest-framework]: https://medium.com/django-rest-framework [django-rest-framework-course]: https://teamtreehouse.com/library/django-rest-framework From 1c494e3d944796bef5ec27348a617afeaad792b9 Mon Sep 17 00:00:00 2001 From: Terence Honles Date: Mon, 12 Apr 2021 05:14:26 -0700 Subject: [PATCH 011/450] Update references to Travis CI after moving to Github Actions (#7909) x-ref: https://github.com/encode/django-rest-framework/pull/7903 --- .gitignore | 1 - README.md | 6 +++--- docs/community/contributing.md | 8 ++++---- docs/community/third-party-packages.md | 2 -- docs/img/build-status.png | Bin 0 -> 12443 bytes docs/img/travis-status.png | Bin 10023 -> 0 bytes docs/index.md | 4 ++-- docs_theme/css/default.css | 2 +- 8 files changed, 10 insertions(+), 13 deletions(-) create mode 100644 docs/img/build-status.png delete mode 100644 docs/img/travis-status.png diff --git a/.gitignore b/.gitignore index 7cb1eb249a..641714d163 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,3 @@ coverage.* !.github !.gitignore !.pre-commit-config.yaml -!.travis.yml diff --git a/README.md b/README.md index 305f923898..ff76a5525d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # [Django REST framework][docs] -[![build-status-image]][travis] +[![build-status-image]][build-status] [![coverage-status-image]][codecov] [![pypi-version]][pypi] @@ -176,8 +176,8 @@ You may also want to [follow the author on Twitter][twitter]. Please see the [security policy][security-policy]. -[build-status-image]: https://secure.travis-ci.org/encode/django-rest-framework.svg?branch=master -[travis]: https://travis-ci.org/encode/django-rest-framework?branch=master +[build-status-image]: https://github.com/encode/django-rest-framework/actions/workflows/main.yml/badge.svg +[build-status]: https://github.com/encode/django-rest-framework/actions/workflows/main.yml [coverage-status-image]: https://img.shields.io/codecov/c/github/encode/django-rest-framework/master.svg [codecov]: https://codecov.io/github/encode/django-rest-framework?branch=master [pypi-version]: https://img.shields.io/pypi/v/djangorestframework.svg diff --git a/docs/community/contributing.md b/docs/community/contributing.md index e220f95fc4..de1f8db0fb 100644 --- a/docs/community/contributing.md +++ b/docs/community/contributing.md @@ -119,11 +119,11 @@ GitHub's documentation for working on pull requests is [available here][pull-req Always run the tests before submitting pull requests, and ideally run `tox` in order to check that your modifications are compatible on all supported versions of Python and Django. -Once you've made a pull request take a look at the Travis build status in the GitHub interface and make sure the tests are running as you'd expect. +Once you've made a pull request take a look at the build status in the GitHub interface and make sure the tests are running as you'd expect. -![Travis status][travis-status] +![Build status][build-status] -*Above: Travis build notifications* +*Above: build notifications* ## Managing compatibility issues @@ -206,7 +206,7 @@ If you want to draw attention to a note or warning, use a pair of enclosing line [so-filter]: https://stackexchange.com/filters/66475/rest-framework [issues]: https://github.com/encode/django-rest-framework/issues?state=open [pep-8]: https://www.python.org/dev/peps/pep-0008/ -[travis-status]: ../img/travis-status.png +[build-status]: ../img/build-status.png [pull-requests]: https://help.github.com/articles/using-pull-requests [tox]: https://tox.readthedocs.io/en/latest/ [markdown]: https://daringfireball.net/projects/markdown/basics diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md index 63a5c4f5f4..e53fc3d50c 100644 --- a/docs/community/third-party-packages.md +++ b/docs/community/third-party-packages.md @@ -152,8 +152,6 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque [cookiecutter]: https://github.com/jpadilla/cookiecutter-django-rest-framework [new-repo]: https://github.com/new [create-a-repo]: https://help.github.com/articles/create-a-repo/ -[travis-ci]: https://travis-ci.org -[travis-profile]: https://travis-ci.org/profile [pypi-register]: https://pypi.org/account/register/ [semver]: https://semver.org/ [tox-docs]: https://tox.readthedocs.io/en/latest/ diff --git a/docs/img/build-status.png b/docs/img/build-status.png new file mode 100644 index 0000000000000000000000000000000000000000..bb043cb9e957085d8f693138b9625dc6095439fc GIT binary patch literal 12443 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 literal 0 HcmV?d00001 diff --git a/docs/img/travis-status.png b/docs/img/travis-status.png deleted file mode 100644 index fec98cf9b2ba728a532df7b50b89f505053e9012..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10023 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 - - + + diff --git a/docs_theme/css/default.css b/docs_theme/css/default.css index 992bc60a42..7006f2a668 100644 --- a/docs_theme/css/default.css +++ b/docs_theme/css/default.css @@ -37,7 +37,7 @@ body.index-page #main-content iframe.github-star-button { margin-right: -15px; } -/* Travis CI and PyPI badge */ +/* CI and PyPI badge */ body.index-page #main-content img.status-badge { float: right; margin-right: 8px; From f628db383a1cb47e7910ac2547d4dd53f0902211 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Fri, 16 Apr 2021 17:23:18 +0100 Subject: [PATCH 012/450] Fix GitHub Actions to run on 'master' branch (#7926) The config I copied in #7903 was from a repo with the new name 'main', so tests have not been running on master since. --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6686ce7593..1c9e49e348 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,7 +3,7 @@ name: CI on: push: branches: - - main + - master pull_request: jobs: From a0a2c5cb370ff80a95deaa8d23f099acc4e5e0c5 Mon Sep 17 00:00:00 2001 From: Terence Honles Date: Fri, 16 Apr 2021 09:27:22 -0700 Subject: [PATCH 013/450] Fix tests with mock timezone (#7911) After django/django#13877, Django no longer checks for `hasattr(timezone, 'localize')` and instead does an inheritance check. --- tests/test_fields.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_fields.py b/tests/test_fields.py index 5842553f02..78a9effb8c 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1485,7 +1485,7 @@ class TestNaiveDayLightSavingTimeTimeZoneDateTimeField(FieldValues): } outputs = {} - class MockTimezone: + class MockTimezone(pytz.BaseTzInfo): @staticmethod def localize(value, is_dst): raise pytz.InvalidTimeError() From 67b5093ca526d219b8f25abf427161e154c23c6e Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Fri, 16 Apr 2021 17:47:21 +0100 Subject: [PATCH 014/450] Fix pytest warnings (#7928) * Use `--strict-markers` instead of `--strict`, as per this warning: ``` /.../_pytest/config/__init__.py:1183: PytestDeprecationWarning: The --strict option is deprecated, use --strict-markers instead. ``` * Remove config option 'testspath' - pytest is logging a warning about this being unknown: ``` /.../_pytest/config/__init__.py:1233: PytestConfigWarning: Unknown config option: testspath ``` I can't find any reference to it in the pytest docs or changelog. --- setup.cfg | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/setup.cfg b/setup.cfg index abb7cca908..46ffb13c52 100644 --- a/setup.cfg +++ b/setup.cfg @@ -2,8 +2,7 @@ license_file = LICENSE.md [tool:pytest] -addopts=--tb=short --strict -ra -testspath = tests +addopts=--tb=short --strict-markers -ra [flake8] ignore = E501,W504 From 010c8d4f084c1c3c5f712e731351604f301d6906 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Fri, 16 Apr 2021 17:59:27 +0100 Subject: [PATCH 015/450] Use tox-py in CI (#7925) --- .github/workflows/main.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1c9e49e348..fc166c434d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -37,12 +37,10 @@ jobs: run: python -m pip install --upgrade pip setuptools virtualenv wheel - name: Install dependencies - run: python -m pip install --upgrade codecov tox + run: python -m pip install --upgrade codecov tox tox-py - name: Run tox targets for ${{ matrix.python-version }} - run: | - ENV_PREFIX=$(tr -C -d "0-9" <<< "${{ matrix.python-version }}") - TOXENV=$(tox --listenvs | grep "^py$ENV_PREFIX" | tr '\n' ',') tox + run: tox --py current - name: Run extra tox targets if: ${{ matrix.python-version == '3.9' }} From 8812394ed83d7cce0ed5b2c5fcf093269d364b9b Mon Sep 17 00:00:00 2001 From: Denis Orehovsky Date: Tue, 20 Apr 2021 17:03:16 +0300 Subject: [PATCH 016/450] Add distinction between request and response serializers for OpenAPI (#7424) * Add distinction between request and response serializers * Add docs * document new functions in schemas.md * add a test case for different request vs response objects * Correct formatting for flake8 Co-authored-by: Shaun Gosse --- docs/api-guide/schemas.md | 14 +++++ rest_framework/schemas/openapi.py | 37 +++++++++++--- tests/schemas/test_openapi.py | 85 +++++++++++++++++++++++++++++++ 3 files changed, 128 insertions(+), 8 deletions(-) diff --git a/docs/api-guide/schemas.md b/docs/api-guide/schemas.md index b4832b3690..acf2ecb932 100644 --- a/docs/api-guide/schemas.md +++ b/docs/api-guide/schemas.md @@ -375,6 +375,20 @@ operationIds. In order to work around this, you can override `get_operation_id_base()` to provide a different base for name part of the ID. +#### `get_serializer()` + +If the view has implemented `get_serializer()`, returns the result. + +#### `get_request_serializer()` + +By default returns `get_serializer()` but can be overridden to +differentiate between request and response objects. + +#### `get_response_serializer()` + +By default returns `get_serializer()` but can be overridden to +differentiate between request and response objects. + ### `AutoSchema.__init__()` kwargs `AutoSchema` provides a number of `__init__()` kwargs that can be used for diff --git a/rest_framework/schemas/openapi.py b/rest_framework/schemas/openapi.py index 4ecb7a65f1..5e9d59f8bf 100644 --- a/rest_framework/schemas/openapi.py +++ b/rest_framework/schemas/openapi.py @@ -192,15 +192,22 @@ def get_components(self, path, method): if method.lower() == 'delete': return {} - serializer = self.get_serializer(path, method) + request_serializer = self.get_request_serializer(path, method) + response_serializer = self.get_response_serializer(path, method) - if not isinstance(serializer, serializers.Serializer): - return {} + components = {} + + if isinstance(request_serializer, serializers.Serializer): + component_name = self.get_component_name(request_serializer) + content = self.map_serializer(request_serializer) + components.setdefault(component_name, content) - component_name = self.get_component_name(serializer) + if isinstance(response_serializer, serializers.Serializer): + component_name = self.get_component_name(response_serializer) + content = self.map_serializer(response_serializer) + components.setdefault(component_name, content) - content = self.map_serializer(serializer) - return {component_name: content} + return components def _to_camel_case(self, snake_str): components = snake_str.split('_') @@ -615,6 +622,20 @@ def get_serializer(self, path, method): .format(view.__class__.__name__, method, path)) return None + def get_request_serializer(self, path, method): + """ + Override this method if your view uses a different serializer for + handling request body. + """ + return self.get_serializer(path, method) + + def get_response_serializer(self, path, method): + """ + Override this method if your view uses a different serializer for + populating response data. + """ + return self.get_serializer(path, method) + def _get_reference(self, serializer): return {'$ref': '#/components/schemas/{}'.format(self.get_component_name(serializer))} @@ -624,7 +645,7 @@ def get_request_body(self, path, method): self.request_media_types = self.map_parsers(path, method) - serializer = self.get_serializer(path, method) + serializer = self.get_request_serializer(path, method) if not isinstance(serializer, serializers.Serializer): item_schema = {} @@ -648,7 +669,7 @@ def get_responses(self, path, method): self.response_media_types = self.map_renderers(path, method) - serializer = self.get_serializer(path, method) + serializer = self.get_response_serializer(path, method) if not isinstance(serializer, serializers.Serializer): item_schema = {} diff --git a/tests/schemas/test_openapi.py b/tests/schemas/test_openapi.py index 871eb1b302..aef20670e6 100644 --- a/tests/schemas/test_openapi.py +++ b/tests/schemas/test_openapi.py @@ -712,6 +712,91 @@ def get_operation_id_base(self, path, method, action): operationId = inspector.get_operation_id(path, method) assert operationId == 'listItem' + def test_different_request_response_objects(self): + class RequestSerializer(serializers.Serializer): + text = serializers.CharField() + + class ResponseSerializer(serializers.Serializer): + text = serializers.BooleanField() + + class CustomSchema(AutoSchema): + def get_request_serializer(self, path, method): + return RequestSerializer() + + def get_response_serializer(self, path, method): + return ResponseSerializer() + + path = '/' + method = 'POST' + view = create_view( + views.ExampleGenericAPIView, + method, + create_request(path), + ) + inspector = CustomSchema() + inspector.view = view + + components = inspector.get_components(path, method) + assert components == { + 'Request': { + 'properties': { + 'text': { + 'type': 'string' + } + }, + 'required': ['text'], + 'type': 'object' + }, + 'Response': { + 'properties': { + 'text': { + 'type': 'boolean' + } + }, + 'required': ['text'], + 'type': 'object' + } + } + + operation = inspector.get_operation(path, method) + assert operation == { + 'operationId': 'createExample', + 'description': '', + 'parameters': [], + 'requestBody': { + 'content': { + 'application/json': { + 'schema': { + '$ref': '#/components/schemas/Request' + } + }, + 'application/x-www-form-urlencoded': { + 'schema': { + '$ref': '#/components/schemas/Request' + } + }, + 'multipart/form-data': { + 'schema': { + '$ref': '#/components/schemas/Request' + } + } + } + }, + 'responses': { + '201': { + 'content': { + 'application/json': { + 'schema': { + '$ref': '#/components/schemas/Response' + } + } + }, + 'description': '' + } + }, + 'tags': [''] + } + def test_repeat_operation_ids(self): router = routers.SimpleRouter() router.register('account', views.ExampleGenericViewSet, basename="account") From 431f7dfa3dc108d449044a6c9eef715416d53059 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Skar=C5=BCy=C5=84ski?= Date: Fri, 23 Apr 2021 10:34:58 +0200 Subject: [PATCH 017/450] fix typo in packaging requirements (#7949) --- requirements/requirements-packaging.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements-packaging.txt b/requirements/requirements-packaging.txt index 3489c76ec0..fae03baab5 100644 --- a/requirements/requirements-packaging.txt +++ b/requirements/requirements-packaging.txt @@ -5,4 +5,4 @@ wheel>=0.35.1,<0.36 twine>=3.2.0,<3.3 # Transifex client for managing translation resources. -transifex-clien>=0.13.12,<0.14 +transifex-client>=0.13.12,<0.14 From a0083f7f9867113a37a5096a06ee69344781075a Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Mon, 26 Apr 2021 10:30:41 +0200 Subject: [PATCH 018/450] FIX: Broken cite. (#7951) --- docs/api-guide/schemas.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/api-guide/schemas.md b/docs/api-guide/schemas.md index acf2ecb932..b9de6745fe 100644 --- a/docs/api-guide/schemas.md +++ b/docs/api-guide/schemas.md @@ -421,6 +421,7 @@ If your views have related customizations that are needed frequently, you can create a base `AutoSchema` subclass for your project that takes additional `__init__()` kwargs to save subclassing `AutoSchema` for each view. +[cite]: https://blog.heroku.com/archives/2014/1/8/json_schema_for_heroku_platform_api [openapi]: https://github.com/OAI/OpenAPI-Specification [openapi-specification-extensions]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#specification-extensions [openapi-operation]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#operationObject From 3875d3284e73ed4d8e36c07d9b70c1b22c9d5998 Mon Sep 17 00:00:00 2001 From: Ishu Kumar Date: Mon, 10 May 2021 16:56:26 +0530 Subject: [PATCH 019/450] Punctuations and missing "to" preposition (#7966) Changes made in lines 221, 222, 223, and 224 for better readability. --- docs/api-guide/pagination.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/api-guide/pagination.md b/docs/api-guide/pagination.md index 8d9eb22881..632af6a823 100644 --- a/docs/api-guide/pagination.md +++ b/docs/api-guide/pagination.md @@ -218,10 +218,10 @@ To set these attributes you should override the `CursorPagination` class, and th # Custom pagination styles -To create a custom pagination serializer class you should subclass `pagination.BasePagination` and override the `paginate_queryset(self, queryset, request, view=None)` and `get_paginated_response(self, data)` methods: +To create a custom pagination serializer class, you should inherit the subclass `pagination.BasePagination`, override the `paginate_queryset(self, queryset, request, view=None)`, and `get_paginated_response(self, data)` methods: -* The `paginate_queryset` method is passed the initial queryset and should return an iterable object that contains only the data in the requested page. -* The `get_paginated_response` method is passed the serialized page data and should return a `Response` instance. +* The `paginate_queryset` method is passed to the initial queryset and should return an iterable object. That object contains only the data in the requested page. +* The `get_paginated_response` method is passed to the serialized page data and should return a `Response` instance. Note that the `paginate_queryset` method may set state on the pagination instance, that may later be used by the `get_paginated_response` method. From bc075212cb05a52a2b2b2b4c909cfbd03c7ebd8e Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Mon, 24 May 2021 09:47:44 +0200 Subject: [PATCH 020/450] Fix running runtests.py without arguments. (#7954) Regression in aa12a5f967705f70b1dbe457bb2396d106e3570b. --- runtests.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/runtests.py b/runtests.py index c340b55d86..98f34c0673 100755 --- a/runtests.py +++ b/runtests.py @@ -45,5 +45,7 @@ def is_class(string): # `runtests.py TestCase [flags]` # `runtests.py test_function [flags]` pytest_args = ['tests', '-k', pytest_args[0]] + pytest_args[1:] + else: + pytest_args = [] sys.exit(pytest.main(pytest_args)) From 9d149f23177055b3b1ea12cf62de0d669739b544 Mon Sep 17 00:00:00 2001 From: Abduaziz <68025869+AbduazizZiyodov@users.noreply.github.com> Date: Wed, 2 Jun 2021 14:02:11 +0500 Subject: [PATCH 021/450] Fixed some punctuation marks & small typos (#8015) --- docs/api-guide/authentication.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/api-guide/authentication.md b/docs/api-guide/authentication.md index 4497f73bd0..60544079f1 100644 --- a/docs/api-guide/authentication.md +++ b/docs/api-guide/authentication.md @@ -11,7 +11,7 @@ source: Authentication is the mechanism of associating an incoming request with a set of identifying credentials, such as the user the request came from, or the token that it was signed with. The [permission] and [throttling] policies can then use those credentials to determine if the request should be permitted. -REST framework provides a number of authentication schemes out of the box, and also allows you to implement custom schemes. +REST framework provides several authentication schemes out of the box, and also allows you to implement custom schemes. Authentication is always run at the very start of the view, before the permission and throttling checks occur, and before any other code is allowed to proceed. @@ -23,7 +23,7 @@ The `request.auth` property is used for any additional authentication informatio **Note:** Don't forget that **authentication by itself won't allow or disallow an incoming request**, it simply identifies the credentials that the request was made with. -For information on how to setup the permission polices for your API please see the [permissions documentation][permission]. +For information on how to set up the permission policies for your API please see the [permissions documentation][permission]. --- @@ -195,7 +195,7 @@ If you've already created some users, you can generate tokens for all existing u ##### By exposing an api endpoint -When using `TokenAuthentication`, you may want to provide a mechanism for clients to obtain a token given the username and password. REST framework provides a built-in view to provide this behavior. To use it, add the `obtain_auth_token` view to your URLconf: +When using `TokenAuthentication`, you may want to provide a mechanism for clients to obtain a token given the username and password. REST framework provides a built-in view to provide this behaviour. To use it, add the `obtain_auth_token` view to your URLconf: from rest_framework.authtoken import views urlpatterns += [ @@ -210,7 +210,7 @@ The `obtain_auth_token` view will return a JSON response when valid `username` a Note that the default `obtain_auth_token` view explicitly uses JSON requests and responses, rather than using default renderer and parser classes in your settings. -By default there are no permissions or throttling applied to the `obtain_auth_token` view. If you do wish to apply throttling you'll need to override the view class, +By default, there are no permissions or throttling applied to the `obtain_auth_token` view. If you do wish to apply to throttle you'll need to override the view class, and include them using the `throttle_classes` attribute. If you need a customized version of the `obtain_auth_token` view, you can do so by subclassing the `ObtainAuthToken` view class, and using that in your url conf instead. @@ -244,7 +244,7 @@ And in your `urls.py`: ##### With Django admin -It is also possible to create Tokens manually through admin interface. In case you are using a large user base, we recommend that you monkey patch the `TokenAdmin` class to customize it to your needs, more specifically by declaring the `user` field as `raw_field`. +It is also possible to create Tokens manually through the admin interface. In case you are using a large user base, we recommend that you monkey patch the `TokenAdmin` class customize it to your needs, more specifically by declaring the `user` field as `raw_field`. `your_app/admin.py`: @@ -279,11 +279,11 @@ If successfully authenticated, `SessionAuthentication` provides the following cr Unauthenticated responses that are denied permission will result in an `HTTP 403 Forbidden` response. -If you're using an AJAX style API with SessionAuthentication, you'll need to make sure you include a valid CSRF token for any "unsafe" HTTP method calls, such as `PUT`, `PATCH`, `POST` or `DELETE` requests. See the [Django CSRF documentation][csrf-ajax] for more details. +If you're using an AJAX-style API with SessionAuthentication, you'll need to make sure you include a valid CSRF token for any "unsafe" HTTP method calls, such as `PUT`, `PATCH`, `POST` or `DELETE` requests. See the [Django CSRF documentation][csrf-ajax] for more details. **Warning**: Always use Django's standard login view when creating login pages. This will ensure your login views are properly protected. -CSRF validation in REST framework works slightly differently to standard Django due to the need to support both session and non-session based authentication to the same views. This means that only authenticated requests require CSRF tokens, and anonymous requests may be sent without CSRF tokens. This behaviour is not suitable for login views, which should always have CSRF validation applied. +CSRF validation in REST framework works slightly differently from standard Django due to the need to support both session and non-session based authentication to the same views. This means that only authenticated requests require CSRF tokens, and anonymous requests may be sent without CSRF tokens. This behaviour is not suitable for login views, which should always have CSRF validation applied. ## RemoteUserAuthentication @@ -316,7 +316,7 @@ In some circumstances instead of returning `None`, you may want to raise an `Aut Typically the approach you should take is: * If authentication is not attempted, return `None`. Any other authentication schemes also in use will still be checked. -* If authentication is attempted but fails, raise a `AuthenticationFailed` exception. An error response will be returned immediately, regardless of any permissions checks, and without checking any other authentication schemes. +* If authentication is attempted but fails, raise an `AuthenticationFailed` exception. An error response will be returned immediately, regardless of any permissions checks, and without checking any other authentication schemes. You *may* also override the `.authenticate_header(self, request)` method. If implemented, it should return a string that will be used as the value of the `WWW-Authenticate` header in a `HTTP 401 Unauthorized` response. @@ -353,7 +353,7 @@ The following example will authenticate any incoming request as the user given b # Third party packages -The following third party packages are also available. +The following third-party packages are also available. ## Django OAuth Toolkit @@ -384,7 +384,7 @@ For more details see the [Django REST framework - Getting started][django-oauth- The [Django REST framework OAuth][django-rest-framework-oauth] package provides both OAuth1 and OAuth2 support for REST framework. -This package was previously included directly in REST framework but is now supported and maintained as a third party package. +This package was previously included directly in the REST framework but is now supported and maintained as a third-party package. #### Installation & configuration @@ -408,7 +408,7 @@ HTTP Signature (currently a [IETF draft][http-signature-ietf-draft]) provides a ## Djoser -[Djoser][djoser] library provides a set of views to handle basic actions such as registration, login, logout, password reset and account activation. The package works with a custom user model and it uses token based authentication. This is a ready to use REST implementation of Django authentication system. +[Djoser][djoser] library provides a set of views to handle basic actions such as registration, login, logout, password reset and account activation. The package works with a custom user model and uses token-based authentication. This is ready to use REST implementation of the Django authentication system. ## django-rest-auth / dj-rest-auth @@ -426,15 +426,15 @@ There are currently two forks of this project. ## django-rest-knox -[Django-rest-knox][django-rest-knox] library provides models and views to handle token based authentication in a more secure and extensible way than the built-in TokenAuthentication scheme - with Single Page Applications and Mobile clients in mind. It provides per-client tokens, and views to generate them when provided some other authentication (usually basic authentication), to delete the token (providing a server enforced logout) and to delete all tokens (logs out all clients that a user is logged into). +[Django-rest-knox][django-rest-knox] library provides models and views to handle token-based authentication in a more secure and extensible way than the built-in TokenAuthentication scheme - with Single Page Applications and Mobile clients in mind. It provides per-client tokens, and views to generate them when provided some other authentication (usually basic authentication), to delete the token (providing a server enforced logout) and to delete all tokens (logs out all clients that a user is logged into). ## drfpasswordless -[drfpasswordless][drfpasswordless] adds (Medium, Square Cash inspired) passwordless support to Django REST Framework's own TokenAuthentication scheme. Users log in and sign up with a token sent to a contact point like an email address or a mobile number. +[drfpasswordless][drfpasswordless] adds (Medium, Square Cash inspired) passwordless support to Django REST Framework's TokenAuthentication scheme. Users log in and sign up with a token sent to a contact point like an email address or a mobile number. ## django-rest-authemail -[django-rest-authemail][django-rest-authemail] provides a RESTful API interface for user signup and authentication. Email addresses are used for authentication, rather than usernames. API endpoints are available for signup, signup email verification, login, logout, password reset, password reset verification, email change, email change verification, password change, and user detail. A fully-functional example project and detailed instructions are included. +[django-rest-authemail][django-rest-authemail] provides a RESTful API interface for user signup and authentication. Email addresses are used for authentication, rather than usernames. API endpoints are available for signup, signup email verification, login, logout, password reset, password reset verification, email change, email change verification, password change, and user detail. A fully functional example project and detailed instructions are included. ## Django-Rest-Durin From 61e7a993bd0702d30e3049179000bc7c5f284781 Mon Sep 17 00:00:00 2001 From: Ian De Bie Date: Mon, 7 Jun 2021 04:30:23 -0500 Subject: [PATCH 022/450] fix comments by using correct css comment syntax (#8019) these intended comments were causing errors in sonarqube scans due to using wrong css comment syntax --- rest_framework/static/rest_framework/docs/css/base.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rest_framework/static/rest_framework/docs/css/base.css b/rest_framework/static/rest_framework/docs/css/base.css index 0be2bafa91..06b240c522 100644 --- a/rest_framework/static/rest_framework/docs/css/base.css +++ b/rest_framework/static/rest_framework/docs/css/base.css @@ -7,15 +7,15 @@ h1 { } pre.highlight code * { - white-space: nowrap; // this sets all children inside to nowrap + white-space: nowrap; /* this sets all children inside to nowrap */ } pre.highlight { - overflow-x: auto; // this sets the scrolling in x + overflow-x: auto; /* this sets the scrolling in x */ } pre.highlight code { - white-space: pre; // forces to respect
 formatting
+  white-space: pre;       /* forces  to respect 
 formatting */
 }
 
 .main-container {

From 24a938abaadd98b5482bec33defd285625842342 Mon Sep 17 00:00:00 2001
From: Finn Gundlach 
Date: Wed, 16 Jun 2021 15:53:29 +0200
Subject: [PATCH 023/450] Update documentation to include Django 3.2 as
 supported version (#8037)

---
 README.md     | 2 +-
 docs/index.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index ff76a5525d..fce275256e 100644
--- a/README.md
+++ b/README.md
@@ -53,7 +53,7 @@ There is a live example API for testing purposes, [available here][sandbox].
 # Requirements
 
 * Python (3.5, 3.6, 3.7, 3.8, 3.9)
-* Django (2.2, 3.0, 3.1)
+* Django (2.2, 3.0, 3.1, 3.2)
 
 We **highly recommend** and only officially support the latest patch release of
 each Python and Django series.
diff --git a/docs/index.md b/docs/index.md
index 530813684e..28e3302501 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -84,7 +84,7 @@ continued development by **[signing up for a paid plan][funding]**.
 REST framework requires the following:
 
 * Python (3.5, 3.6, 3.7, 3.8, 3.9)
-* Django (2.2, 3.0, 3.1)
+* Django (2.2, 3.0, 3.1, 3.2)
 
 We **highly recommend** and only officially support the latest patch release of
 each Python and Django series.

From e92016ac2e926483e05e296558fc3d1ea3279625 Mon Sep 17 00:00:00 2001
From: Adam Johnson 
Date: Mon, 21 Jun 2021 11:33:43 +0100
Subject: [PATCH 024/450] Stop ignoring test outcome for Django 3.2 (#7927)

---
 requirements/requirements-optionals.txt |  2 +-
 setup.py                                |  1 +
 tox.ini                                 | 12 ------------
 3 files changed, 2 insertions(+), 13 deletions(-)

diff --git a/requirements/requirements-optionals.txt b/requirements/requirements-optionals.txt
index 4cb0e54f4b..75b9ab4d60 100644
--- a/requirements/requirements-optionals.txt
+++ b/requirements/requirements-optionals.txt
@@ -2,7 +2,7 @@
 coreapi==2.3.1
 coreschema==0.0.4
 django-filter>=2.4.0,<3.0
-django-guardian>=2.3.0,<2.4
+django-guardian>=2.4.0,<2.5
 markdown==3.3;python_version>="3.6"
 markdown==3.2.2;python_version=="3.5"
 psycopg2-binary>=2.8.5,<2.9
diff --git a/setup.py b/setup.py
index e2a1c0222c..5fd4df20db 100755
--- a/setup.py
+++ b/setup.py
@@ -92,6 +92,7 @@ def get_version(package):
         'Framework :: Django :: 2.2',
         'Framework :: Django :: 3.0',
         'Framework :: Django :: 3.1',
+        'Framework :: Django :: 3.2',
         'Intended Audience :: Developers',
         'License :: OSI Approved :: BSD License',
         'Operating System :: OS Independent',
diff --git a/tox.ini b/tox.ini
index bf4de90d03..f23486a685 100644
--- a/tox.ini
+++ b/tox.ini
@@ -50,18 +50,6 @@ deps =
        -rrequirements/requirements-testing.txt
        -rrequirements/requirements-documentation.txt
 
-[testenv:py36-django32]
-ignore_outcome = true
-
-[testenv:py37-django32]
-ignore_outcome = true
-
-[testenv:py38-django32]
-ignore_outcome = true
-
-[testenv:py39-django32]
-ignore_outcome = true
-
 [testenv:py38-djangomain]
 ignore_outcome = true
 

From c8a9c856c25a1a360a91d2c7bc11e0dacfb9c3a4 Mon Sep 17 00:00:00 2001
From: Burak Kadir Er 
Date: Mon, 28 Jun 2021 14:51:21 +0300
Subject: [PATCH 025/450] fix a small typo (#8060)

---
 docs/api-guide/renderers.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/api-guide/renderers.md b/docs/api-guide/renderers.md
index 954fb3bb98..7dbc5eee8f 100644
--- a/docs/api-guide/renderers.md
+++ b/docs/api-guide/renderers.md
@@ -105,7 +105,7 @@ The TemplateHTMLRenderer will create a `RequestContext`, using the `response.dat
 
 ---
 
-**Note:** When used with a view that makes use of a serializer the `Response` sent for rendering may not be a dictionay and will need to be wrapped in a dict before returning to allow the TemplateHTMLRenderer to render it. For example:
+**Note:** When used with a view that makes use of a serializer the `Response` sent for rendering may not be a dictionary and will need to be wrapped in a dict before returning to allow the TemplateHTMLRenderer to render it. For example:
 
 ```
 response.data = {'results': response.data}

From d2977cff989f9b14f402ecf1e9235ee3d110977b Mon Sep 17 00:00:00 2001
From: Nikita Sobolev 
Date: Mon, 28 Jun 2021 15:07:41 +0300
Subject: [PATCH 026/450] Fixes inconsistent headers in `serializer` docs
 (#8056)

Some headers were using `.`, some - were not.
Now, all of them are the same with `.`, because it was easier to fix.
---
 docs/api-guide/serializers.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/api-guide/serializers.md b/docs/api-guide/serializers.md
index f05fe7e7e9..13c0c87104 100644
--- a/docs/api-guide/serializers.md
+++ b/docs/api-guide/serializers.md
@@ -605,13 +605,13 @@ For `ModelSerializer` this defaults to `PrimaryKeyRelatedField`.
 
 For `HyperlinkedModelSerializer` this defaults to `serializers.HyperlinkedRelatedField`.
 
-### `serializer_url_field`
+### `.serializer_url_field`
 
 The serializer field class that should be used for any `url` field on the serializer.
 
 Defaults to `serializers.HyperlinkedIdentityField`
 
-### `serializer_choice_field`
+### `.serializer_choice_field`
 
 The serializer field class that should be used for any choice fields on the serializer.
 

From 98e56e0327596db352b35fa3b3dc8355dc9bd030 Mon Sep 17 00:00:00 2001
From: Evgeny Panfilov 
Date: Thu, 1 Jul 2021 17:04:44 +0300
Subject: [PATCH 027/450] fix empty string as a value for a validated
 DecimalField (#8064) (#8067)

---
 rest_framework/fields.py |  8 +++++---
 tests/test_fields.py     | 24 ++++++++++++++++++++++++
 2 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index e4be54751d..bedc02b94d 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -1046,6 +1046,11 @@ def __init__(self, max_digits, decimal_places, coerce_to_string=None, max_value=
                 'Invalid rounding option %s. Valid values for rounding are: %s' % (rounding, valid_roundings))
         self.rounding = rounding
 
+    def validate_empty_values(self, data):
+        if smart_str(data).strip() == '' and self.allow_null:
+            return (True, None)
+        return super().validate_empty_values(data)
+
     def to_internal_value(self, data):
         """
         Validate that the input is a decimal number and return a Decimal
@@ -1063,9 +1068,6 @@ def to_internal_value(self, data):
         try:
             value = decimal.Decimal(data)
         except decimal.DecimalException:
-            if data == '' and self.allow_null:
-                return None
-
             self.fail('invalid')
 
         if value.is_nan():
diff --git a/tests/test_fields.py b/tests/test_fields.py
index 78a9effb8c..d99ca9c40d 100644
--- a/tests/test_fields.py
+++ b/tests/test_fields.py
@@ -1163,6 +1163,30 @@ class TestMinMaxDecimalField(FieldValues):
     )
 
 
+class TestAllowEmptyStrDecimalFieldWithValidators(FieldValues):
+    """
+    Check that empty string ('', ' ') is acceptable value for the DecimalField
+    if allow_null=True and there are max/min validators
+    """
+    valid_inputs = {
+        None: None,
+        '': None,
+        ' ': None,
+        '  ': None,
+        5: Decimal('5'),
+        '0': Decimal('0'),
+        '10': Decimal('10'),
+    }
+    invalid_inputs = {
+        -1: ['Ensure this value is greater than or equal to 0.'],
+        11: ['Ensure this value is less than or equal to 10.'],
+    }
+    outputs = {
+        None: '',
+    }
+    field = serializers.DecimalField(max_digits=3, decimal_places=1, allow_null=True, min_value=0, max_value=10)
+
+
 class TestNoMaxDigitsDecimalField(FieldValues):
     field = serializers.DecimalField(
         max_value=100, min_value=0,

From b215375125980114482779b36dd825775ef7e482 Mon Sep 17 00:00:00 2001
From: Nikhil Benesch 
Date: Fri, 6 Aug 2021 05:10:58 -0400
Subject: [PATCH 028/450] Propagate nullability in ModelSerializer (#8116)

Propagate the nullability of underlying model fields in ModelSerializer
when those fields are marked as read only. This ensures the correct
generation of OpenAPI schemas.

Fix #8041.
---
 rest_framework/serializers.py |  5 ++---
 tests/schemas/test_openapi.py | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index 49eec82591..9ea57f1aff 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -1326,9 +1326,8 @@ def include_extra_kwargs(self, kwargs, extra_kwargs):
         """
         if extra_kwargs.get('read_only', False):
             for attr in [
-                'required', 'default', 'allow_blank', 'allow_null',
-                'min_length', 'max_length', 'min_value', 'max_value',
-                'validators', 'queryset'
+                'required', 'default', 'allow_blank', 'min_length',
+                'max_length', 'min_value', 'max_value', 'validators', 'queryset'
             ]:
                 kwargs.pop(attr, None)
 
diff --git a/tests/schemas/test_openapi.py b/tests/schemas/test_openapi.py
index aef20670e6..daa035a3f3 100644
--- a/tests/schemas/test_openapi.py
+++ b/tests/schemas/test_openapi.py
@@ -2,6 +2,7 @@
 import warnings
 
 import pytest
+from django.db import models
 from django.test import RequestFactory, TestCase, override_settings
 from django.urls import path
 from django.utils.translation import gettext_lazy as _
@@ -110,6 +111,24 @@ class Serializer(serializers.Serializer):
         assert data['properties']['default_false']['default'] is False, "default must be false"
         assert 'default' not in data['properties']['without_default'], "default must not be defined"
 
+    def test_nullable_fields(self):
+        class Model(models.Model):
+            rw_field = models.CharField(null=True)
+            ro_field = models.CharField(null=True)
+
+        class Serializer(serializers.ModelSerializer):
+            class Meta:
+                model = Model
+                fields = ["rw_field", "ro_field"]
+                read_only_fields = ["ro_field"]
+
+        inspector = AutoSchema()
+
+        data = inspector.map_serializer(Serializer())
+        assert data['properties']['rw_field']['nullable'], "rw_field nullable must be true"
+        assert data['properties']['ro_field']['nullable'], "ro_field nullable must be true"
+        assert data['properties']['ro_field']['readOnly'], "ro_field read_only must be true"
+
 
 @pytest.mark.skipif(uritemplate is None, reason='uritemplate not installed.')
 class TestOperationIntrospection(TestCase):

From fdb49314754ff13d91c6eec7ccdb8ece52bea9eb Mon Sep 17 00:00:00 2001
From: Aarni Koskela 
Date: Fri, 6 Aug 2021 12:14:52 +0300
Subject: [PATCH 029/450] Make Field constructors keyword-only (#7632)

---
 rest_framework/fields.py | 46 ++++++++++++++++++++--------------------
 tests/test_fields.py     |  5 +++++
 2 files changed, 28 insertions(+), 23 deletions(-)

diff --git a/rest_framework/fields.py b/rest_framework/fields.py
index bedc02b94d..5cafed5556 100644
--- a/rest_framework/fields.py
+++ b/rest_framework/fields.py
@@ -320,7 +320,7 @@ class Field:
     default_empty_html = empty
     initial = None
 
-    def __init__(self, read_only=False, write_only=False,
+    def __init__(self, *, read_only=False, write_only=False,
                  required=None, default=empty, initial=empty, source=None,
                  label=None, help_text=None, style=None,
                  error_messages=None, validators=None, allow_null=False):
@@ -1163,14 +1163,14 @@ class DateTimeField(Field):
     }
     datetime_parser = datetime.datetime.strptime
 
-    def __init__(self, format=empty, input_formats=None, default_timezone=None, *args, **kwargs):
+    def __init__(self, format=empty, input_formats=None, default_timezone=None, **kwargs):
         if format is not empty:
             self.format = format
         if input_formats is not None:
             self.input_formats = input_formats
         if default_timezone is not None:
             self.timezone = default_timezone
-        super().__init__(*args, **kwargs)
+        super().__init__(**kwargs)
 
     def enforce_timezone(self, value):
         """
@@ -1249,12 +1249,12 @@ class DateField(Field):
     }
     datetime_parser = datetime.datetime.strptime
 
-    def __init__(self, format=empty, input_formats=None, *args, **kwargs):
+    def __init__(self, format=empty, input_formats=None, **kwargs):
         if format is not empty:
             self.format = format
         if input_formats is not None:
             self.input_formats = input_formats
-        super().__init__(*args, **kwargs)
+        super().__init__(**kwargs)
 
     def to_internal_value(self, value):
         input_formats = getattr(self, 'input_formats', api_settings.DATE_INPUT_FORMATS)
@@ -1315,12 +1315,12 @@ class TimeField(Field):
     }
     datetime_parser = datetime.datetime.strptime
 
-    def __init__(self, format=empty, input_formats=None, *args, **kwargs):
+    def __init__(self, format=empty, input_formats=None, **kwargs):
         if format is not empty:
             self.format = format
         if input_formats is not None:
             self.input_formats = input_formats
-        super().__init__(*args, **kwargs)
+        super().__init__(**kwargs)
 
     def to_internal_value(self, value):
         input_formats = getattr(self, 'input_formats', api_settings.TIME_INPUT_FORMATS)
@@ -1470,9 +1470,9 @@ class MultipleChoiceField(ChoiceField):
     }
     default_empty_html = []
 
-    def __init__(self, *args, **kwargs):
+    def __init__(self, **kwargs):
         self.allow_empty = kwargs.pop('allow_empty', True)
-        super().__init__(*args, **kwargs)
+        super().__init__(**kwargs)
 
     def get_value(self, dictionary):
         if self.field_name not in dictionary:
@@ -1529,12 +1529,12 @@ class FileField(Field):
         'max_length': _('Ensure this filename has at most {max_length} characters (it has {length}).'),
     }
 
-    def __init__(self, *args, **kwargs):
+    def __init__(self, **kwargs):
         self.max_length = kwargs.pop('max_length', None)
         self.allow_empty_file = kwargs.pop('allow_empty_file', False)
         if 'use_url' in kwargs:
             self.use_url = kwargs.pop('use_url')
-        super().__init__(*args, **kwargs)
+        super().__init__(**kwargs)
 
     def to_internal_value(self, data):
         try:
@@ -1578,9 +1578,9 @@ class ImageField(FileField):
         ),
     }
 
-    def __init__(self, *args, **kwargs):
+    def __init__(self, **kwargs):
         self._DjangoImageField = kwargs.pop('_DjangoImageField', DjangoImageField)
-        super().__init__(*args, **kwargs)
+        super().__init__(**kwargs)
 
     def to_internal_value(self, data):
         # Image validation is a bit grungy, so we'll just outright
@@ -1595,8 +1595,8 @@ def to_internal_value(self, data):
 # Composite field types...
 
 class _UnvalidatedField(Field):
-    def __init__(self, *args, **kwargs):
-        super().__init__(*args, **kwargs)
+    def __init__(self, **kwargs):
+        super().__init__(**kwargs)
         self.allow_blank = True
         self.allow_null = True
 
@@ -1617,7 +1617,7 @@ class ListField(Field):
         'max_length': _('Ensure this field has no more than {max_length} elements.')
     }
 
-    def __init__(self, *args, **kwargs):
+    def __init__(self, **kwargs):
         self.child = kwargs.pop('child', copy.deepcopy(self.child))
         self.allow_empty = kwargs.pop('allow_empty', True)
         self.max_length = kwargs.pop('max_length', None)
@@ -1629,7 +1629,7 @@ def __init__(self, *args, **kwargs):
             "Remove `source=` from the field declaration."
         )
 
-        super().__init__(*args, **kwargs)
+        super().__init__(**kwargs)
         self.child.bind(field_name='', parent=self)
         if self.max_length is not None:
             message = lazy_format(self.error_messages['max_length'], max_length=self.max_length)
@@ -1694,7 +1694,7 @@ class DictField(Field):
         'empty': _('This dictionary may not be empty.'),
     }
 
-    def __init__(self, *args, **kwargs):
+    def __init__(self, **kwargs):
         self.child = kwargs.pop('child', copy.deepcopy(self.child))
         self.allow_empty = kwargs.pop('allow_empty', True)
 
@@ -1704,7 +1704,7 @@ def __init__(self, *args, **kwargs):
             "Remove `source=` from the field declaration."
         )
 
-        super().__init__(*args, **kwargs)
+        super().__init__(**kwargs)
         self.child.bind(field_name='', parent=self)
 
     def get_value(self, dictionary):
@@ -1753,8 +1753,8 @@ def run_child_validation(self, data):
 class HStoreField(DictField):
     child = CharField(allow_blank=True, allow_null=True)
 
-    def __init__(self, *args, **kwargs):
-        super().__init__(*args, **kwargs)
+    def __init__(self, **kwargs):
+        super().__init__(**kwargs)
         assert isinstance(self.child, CharField), (
             "The `child` argument must be an instance of `CharField`, "
             "as the hstore extension stores values as strings."
@@ -1769,11 +1769,11 @@ class JSONField(Field):
     # Workaround for isinstance calls when importing the field isn't possible
     _is_jsonfield = True
 
-    def __init__(self, *args, **kwargs):
+    def __init__(self, **kwargs):
         self.binary = kwargs.pop('binary', False)
         self.encoder = kwargs.pop('encoder', None)
         self.decoder = kwargs.pop('decoder', None)
-        super().__init__(*args, **kwargs)
+        super().__init__(**kwargs)
 
     def get_value(self, dictionary):
         if html.is_html_input(dictionary) and self.field_name in dictionary:
diff --git a/tests/test_fields.py b/tests/test_fields.py
index d99ca9c40d..2d4cc44ae0 100644
--- a/tests/test_fields.py
+++ b/tests/test_fields.py
@@ -2010,6 +2010,11 @@ def test_collection_types_are_invalid_input(self):
             field.to_internal_value(input_value)
         assert exc_info.value.detail == ['Expected a list of items but got type "dict".']
 
+    def test_constructor_misuse_raises(self):
+        # Test that `ListField` can only be instantiated with keyword arguments
+        with pytest.raises(TypeError):
+            serializers.ListField(serializers.CharField())
+
 
 class TestNestedListField(FieldValues):
     """

From 2942590ee3d3596683405dcdb1017e1833f5cb02 Mon Sep 17 00:00:00 2001
From: Ma77heus <58952630+MattheusHenrique@users.noreply.github.com>
Date: Fri, 6 Aug 2021 12:39:58 -0300
Subject: [PATCH 030/450] fix: broken cite (#8086)

Co-authored-by: MattheusHenrique 
---
 docs/api-guide/renderers.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/api-guide/renderers.md b/docs/api-guide/renderers.md
index 7dbc5eee8f..f13b7ba946 100644
--- a/docs/api-guide/renderers.md
+++ b/docs/api-guide/renderers.md
@@ -528,7 +528,7 @@ Comma-separated values are a plain-text tabular data format, that can be easily
 [Rest Framework Latex] provides a renderer that outputs PDFs using Laulatex. It is maintained by [Pebble (S/F Software)][mypebble].
 
 
-[cite]: https://docs.djangoproject.com/en/stable/stable/template-response/#the-rendering-process
+[cite]: https://docs.djangoproject.com/en/stable/ref/template-response/#the-rendering-process
 [conneg]: content-negotiation.md
 [html-and-forms]: ../topics/html-and-forms.md
 [browser-accept-headers]: http://www.gethifi.com/blog/browser-rest-http-accept-headers

From cba24464e8f63377627f3016df88ee74d11a817d Mon Sep 17 00:00:00 2001
From: Paul Wayper 
Date: Sat, 7 Aug 2021 01:45:15 +1000
Subject: [PATCH 031/450] Botbot has been acquired, all paths now point to
 startupresources (#8050)

Signed-off-by: Paul Wayper 
---
 docs/index.md | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/docs/index.md b/docs/index.md
index 28e3302501..ccbaf73731 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -186,7 +186,7 @@ Framework.
 
 ## Support
 
-For support please see the [REST framework discussion group][group], try the  `#restframework` channel on `irc.freenode.net`, search [the IRC archives][botbot], or raise a  question on [Stack Overflow][stack-overflow], making sure to include the ['django-rest-framework'][django-rest-framework-tag] tag.
+For support please see the [REST framework discussion group][group], try the  `#restframework` channel on `irc.freenode.net`, or raise a  question on [Stack Overflow][stack-overflow], making sure to include the ['django-rest-framework'][django-rest-framework-tag] tag.
 
 For priority support please sign up for a [professional or premium sponsorship plan](https://fund.django-rest-framework.org/topics/funding/).
 
@@ -257,7 +257,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 [funding]: community/funding.md
 
 [group]: https://groups.google.com/forum/?fromgroups#!forum/django-rest-framework
-[botbot]: https://botbot.me/freenode/restframework/
 [stack-overflow]: https://stackoverflow.com/
 [django-rest-framework-tag]: https://stackoverflow.com/questions/tagged/django-rest-framework
 [security-mail]: mailto:rest-framework-security@googlegroups.com

From c4404f3d5d2df2a5c7450517b48c4e6dfeb3c89e Mon Sep 17 00:00:00 2001
From: Paul Wayper 
Date: Sat, 7 Aug 2021 01:46:26 +1000
Subject: [PATCH 032/450] We now use Libera.chat rather than Freenode for IRC
 (#8049)

Signed-off-by: Paul Wayper 

Co-authored-by: Tom Christie 
---
 README.md     | 2 +-
 docs/index.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index fce275256e..b8d8ca61b1 100644
--- a/README.md
+++ b/README.md
@@ -168,7 +168,7 @@ Or to create a new user:
 
 Full documentation for the project is available at [https://www.django-rest-framework.org/][docs].
 
-For questions and support, use the [REST framework discussion group][group], or `#restframework` on freenode IRC.
+For questions and support, use the [REST framework discussion group][group], or `#restframework` on libera.chat IRC.
 
 You may also want to [follow the author on Twitter][twitter].
 
diff --git a/docs/index.md b/docs/index.md
index ccbaf73731..641800b93c 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -186,7 +186,7 @@ Framework.
 
 ## Support
 
-For support please see the [REST framework discussion group][group], try the  `#restframework` channel on `irc.freenode.net`, or raise a  question on [Stack Overflow][stack-overflow], making sure to include the ['django-rest-framework'][django-rest-framework-tag] tag.
+For support please see the [REST framework discussion group][group], try the  `#restframework` channel on `irc.libera.chat`, or raise a  question on [Stack Overflow][stack-overflow], making sure to include the ['django-rest-framework'][django-rest-framework-tag] tag.
 
 For priority support please sign up for a [professional or premium sponsorship plan](https://fund.django-rest-framework.org/topics/funding/).
 

From b824b33dc3a3facad3ef2b41fbe02ab2a7578bc3 Mon Sep 17 00:00:00 2001
From: Thomas Grainger 
Date: Fri, 6 Aug 2021 16:46:57 +0100
Subject: [PATCH 033/450] add changelog project_url (#8085)

---
 setup.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/setup.py b/setup.py
index 5fd4df20db..d755a00fe2 100755
--- a/setup.py
+++ b/setup.py
@@ -109,6 +109,7 @@ def get_version(package):
     project_urls={
         'Funding': 'https://fund.django-rest-framework.org/topics/funding/',
         'Source': 'https://github.com/encode/django-rest-framework',
+        'Changelog': 'https://www.django-rest-framework.org/community/release-notes/',
     },
 )
 

From e95e91ccf2065cbf474892b73ebd5790e5a4ae14 Mon Sep 17 00:00:00 2001
From: Ben Hampson <77866043+Ben-Hampson@users.noreply.github.com>
Date: Fri, 6 Aug 2021 17:49:41 +0200
Subject: [PATCH 034/450] Use correct link for httpie (#8005)

Before it was linking to a fork of a fork of httpie. I've changed it to the right URL.
---
 docs/tutorial/1-serialization.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/tutorial/1-serialization.md b/docs/tutorial/1-serialization.md
index 85d8676b1d..908b7474a0 100644
--- a/docs/tutorial/1-serialization.md
+++ b/docs/tutorial/1-serialization.md
@@ -374,5 +374,5 @@ We'll see how we can start to improve things in [part 2 of the tutorial][tut-2].
 [sandbox]: https://restframework.herokuapp.com/
 [venv]: https://docs.python.org/3/library/venv.html
 [tut-2]: 2-requests-and-responses.md
-[httpie]: https://github.com/jakubroztocil/httpie#installation
+[httpie]: https://github.com/httpie/httpie#installation
 [curl]: https://curl.haxx.se/

From cdd53c7de912d5868c96f4e3883df248a3e6341d Mon Sep 17 00:00:00 2001
From: juliangeissler <81534590+juliangeissler@users.noreply.github.com>
Date: Sun, 8 Aug 2021 15:45:00 +0200
Subject: [PATCH 035/450] Update Tutorial - Relationships & Hyperlinked APIs
 (#7950)

unnecessary import, because it is already added in the previous section
---
 docs/tutorial/5-relationships-and-hyperlinked-apis.md | 1 -
 1 file changed, 1 deletion(-)

diff --git a/docs/tutorial/5-relationships-and-hyperlinked-apis.md b/docs/tutorial/5-relationships-and-hyperlinked-apis.md
index b0f3380859..f999fdf507 100644
--- a/docs/tutorial/5-relationships-and-hyperlinked-apis.md
+++ b/docs/tutorial/5-relationships-and-hyperlinked-apis.md
@@ -31,7 +31,6 @@ The other thing we need to consider when creating the code highlight view is tha
 Instead of using a concrete generic view, we'll use the base class for representing instances, and create our own `.get()` method.  In your `snippets/views.py` add:
 
     from rest_framework import renderers
-    from rest_framework.response import Response
 
     class SnippetHighlight(generics.GenericAPIView):
         queryset = Snippet.objects.all()

From c5d9144aef1144825942ddffe0a6af23102ef44a Mon Sep 17 00:00:00 2001
From: Mark <33526445+mark-gold@users.noreply.github.com>
Date: Wed, 11 Aug 2021 13:30:09 +0300
Subject: [PATCH 036/450] fix typo (#8122)

Co-authored-by: mgold 
---
 docs/api-guide/validators.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/api-guide/validators.md b/docs/api-guide/validators.md
index 4451489d4d..76dcb0d541 100644
--- a/docs/api-guide/validators.md
+++ b/docs/api-guide/validators.md
@@ -238,7 +238,7 @@ In the case of update operations on *nested* serializers there's no way of
 applying this exclusion, because the instance is not available.
 
 Again, you'll probably want to explicitly remove the validator from the
-serializer class, and write the code the for the validation constraint
+serializer class, and write the code for the validation constraint
 explicitly, in a `.validate()` method, or in the view.
 
 ## Debugging complex cases

From c927053d4b99ada6b3fd5d70c6536554ff5fe8c0 Mon Sep 17 00:00:00 2001
From: jefcolbi 
Date: Tue, 31 Aug 2021 12:51:47 +0100
Subject: [PATCH 037/450] Replacing django-rest-auth with dj-rest-auth (#8146)

---
 docs/community/third-party-packages.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md
index e53fc3d50c..933244a6a9 100644
--- a/docs/community/third-party-packages.md
+++ b/docs/community/third-party-packages.md
@@ -54,7 +54,7 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque
 * [hawkrest][hawkrest] - Provides Hawk HTTP Authorization.
 * [djangorestframework-httpsignature][djangorestframework-httpsignature] - Provides an easy to use HTTP Signature Authentication mechanism.
 * [djoser][djoser] - Provides a set of views to handle basic actions such as registration, login, logout, password reset and account activation.
-* [django-rest-auth][django-rest-auth] - Provides a set of REST API endpoints for registration, authentication (including social media authentication), password reset, retrieve and update user details, etc.
+* [dj-rest-auth][dj-rest-auth] - Provides a set of REST API endpoints for registration, authentication (including social media authentication), password reset, retrieve and update user details, etc.
 * [drf-oidc-auth][drf-oidc-auth] - Implements OpenID Connect token authentication for DRF.
 * [drfpasswordless][drfpasswordless] - Adds (Medium, Square Cash inspired) passwordless logins and signups via email and mobile numbers.
 * [django-rest-authemail][django-rest-authemail] - Provides a RESTful API for user signup and authentication using email addresses.
@@ -193,7 +193,7 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque
 [gaiarestframework]: https://github.com/AppsFuel/gaiarestframework
 [drf-extensions]: https://github.com/chibisov/drf-extensions
 [ember-django-adapter]: https://github.com/dustinfarris/ember-django-adapter
-[django-rest-auth]: https://github.com/Tivix/django-rest-auth/
+[dj-rest-auth]: https://github.com/iMerica/dj-rest-auth
 [django-versatileimagefield]: https://github.com/WGBH/django-versatileimagefield
 [django-versatileimagefield-drf-docs]:https://django-versatileimagefield.readthedocs.io/en/latest/drf_integration.html
 [drf-tracking]: https://github.com/aschn/drf-tracking

From 88666629a70f5c3fbe31e11aecd9817338de9c92 Mon Sep 17 00:00:00 2001
From: Asif Saif Uddin 
Date: Tue, 31 Aug 2021 18:56:08 +0600
Subject: [PATCH 038/450] stop testing django 3.0 as its EOL (#8136)

---
 tox.ini | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/tox.ini b/tox.ini
index f23486a685..25f8418219 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,7 +1,6 @@
 [tox]
 envlist =
        {py35,py36,py37}-django22,
-       {py36,py37,py38}-django30,
        {py36,py37,py38,py39}-django31,
        {py36,py37,py38,py39}-django32,
        {py38,py39}-djangomain,
@@ -10,7 +9,6 @@ envlist =
 [travis:env]
 DJANGO =
     2.2: django22
-    3.0: django30
     3.1: django31
     3.2: django32
     main: djangomain
@@ -23,9 +21,8 @@ setenv =
        PYTHONWARNINGS=once
 deps =
         django22: Django>=2.2,<3.0
-        django30: Django>=3.0,<3.1
         django31: Django>=3.1,<3.2
-        django32: Django>=3.2a1,<4.0
+        django32: Django>=3.2,<4.0
         djangomain: https://github.com/django/django/archive/main.tar.gz
         -rrequirements/requirements-testing.txt
         -rrequirements/requirements-optionals.txt

From 6b392a46ea025148a24ce665e9c18e4386dde8fa Mon Sep 17 00:00:00 2001
From: Aditya Mitra <55396651+aditya-mitra@users.noreply.github.com>
Date: Tue, 31 Aug 2021 18:27:02 +0530
Subject: [PATCH 039/450] [FIX] Typo in api-guide/authentication (#8144)

---
 docs/api-guide/authentication.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/api-guide/authentication.md b/docs/api-guide/authentication.md
index 60544079f1..57bbaeb679 100644
--- a/docs/api-guide/authentication.md
+++ b/docs/api-guide/authentication.md
@@ -13,7 +13,7 @@ Authentication is the mechanism of associating an incoming request with a set of
 
 REST framework provides several authentication schemes out of the box, and also allows you to implement custom schemes.
 
-Authentication is always run at the very start of the view, before the permission and throttling checks occur, and before any other code is allowed to proceed.
+Authentication always runs at the very start of the view, before the permission and throttling checks occur, and before any other code is allowed to proceed.
 
 The `request.user` property will typically be set to an instance of the `contrib.auth` package's `User` class.
 

From 4632b5daaed5a71a1be3e7d412a7f9a2e5520b90 Mon Sep 17 00:00:00 2001
From: Ryan Nowakowski 
Date: Tue, 31 Aug 2021 08:18:49 -0500
Subject: [PATCH 040/450] Fix subtitle of schemas for filtering (#8145)

Fix a likely copy/paste error
---
 docs/api-guide/filtering.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/api-guide/filtering.md b/docs/api-guide/filtering.md
index 478e3bcf95..3541388ca2 100644
--- a/docs/api-guide/filtering.md
+++ b/docs/api-guide/filtering.md
@@ -335,7 +335,7 @@ Generic filters may also present an interface in the browsable API. To do so you
 
 The method should return a rendered HTML string.
 
-## Pagination & schemas
+## Filtering & schemas
 
 You can also make the filter controls available to the schema autogeneration
 that REST framework provides, by implementing a `get_schema_fields()` method. This method should have the following signature:

From cb206e4701dd67f859c015bea111d0e77e364c4a Mon Sep 17 00:00:00 2001
From: Juan Benitez 
Date: Fri, 3 Sep 2021 07:00:23 -0500
Subject: [PATCH 041/450] fix: change View class to Throttle class on
 SimpleRateThrottle Docstring (#8147)

---
 rest_framework/throttling.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/rest_framework/throttling.py b/rest_framework/throttling.py
index 0ba2ba66b1..e262b886bc 100644
--- a/rest_framework/throttling.py
+++ b/rest_framework/throttling.py
@@ -52,7 +52,7 @@ class SimpleRateThrottle(BaseThrottle):
     A simple cache implementation, that only requires `.get_cache_key()`
     to be overridden.
 
-    The rate (requests / seconds) is set by a `rate` attribute on the View
+    The rate (requests / seconds) is set by a `rate` attribute on the Throttle
     class.  The attribute is a string of the form 'number_of_requests/period'.
 
     Period should be one of: ('s', 'sec', 'm', 'min', 'h', 'hour', 'd', 'day')

From 96001c5de61b5fe7c083bdd8e5810105e3575014 Mon Sep 17 00:00:00 2001
From: Anthony Randall 
Date: Fri, 3 Sep 2021 06:23:19 -0600
Subject: [PATCH 042/450] Added an article - implementing rest apis with
 embedded privacy from doordash engineering blog (#7956)

* Update tutorials-and-resources.md

* Update tutorials-and-resources.md
---
 docs/community/tutorials-and-resources.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/docs/community/tutorials-and-resources.md b/docs/community/tutorials-and-resources.md
index dae292f50c..23faf79128 100644
--- a/docs/community/tutorials-and-resources.md
+++ b/docs/community/tutorials-and-resources.md
@@ -76,6 +76,7 @@ There are a wide range of resources available for learning and using Django REST
 * [Chatbot Using Django REST Framework + api.ai + Slackā€Šā€”ā€ŠPart 1/3][chatbot-using-drf-part1]
 * [New Django Admin with DRF and EmberJS... What are the News?][new-django-admin-with-drf-and-emberjs]
 * [Blog posts about Django REST Framework][medium-django-rest-framework]
+* [Implementing Rest APIs With Embedded Privacy][doordash-implementing-rest-apis]
 
 ### Documentations
 * [Classy Django REST Framework][cdrf.co]
@@ -128,3 +129,4 @@ Want your Django REST Framework talk/tutorial/article to be added to our website
 [anna-email]: mailto:anna@django-rest-framework.org
 [pycon-us-2017]: https://www.youtube.com/watch?v=Rk6MHZdust4
 [django-rest-react-valentinog]: https://www.valentinog.com/blog/tutorial-api-django-rest-react/
+[doordash-implementing-rest-apis]: https://doordash.engineering/2013/10/07/implementing-rest-apis-with-embedded-privacy/

From 655e803adfb19b8cb5b94a4895f1baffed55a958 Mon Sep 17 00:00:00 2001
From: Peter Uittenbroek 
Date: Fri, 3 Sep 2021 15:37:03 +0200
Subject: [PATCH 043/450] #7157: Fix RemoteUserAuthentication calling django
 authenticate with request argument (#7158)

---
 rest_framework/authentication.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/rest_framework/authentication.py b/rest_framework/authentication.py
index 9111007c09..382abf1580 100644
--- a/rest_framework/authentication.py
+++ b/rest_framework/authentication.py
@@ -227,6 +227,6 @@ class RemoteUserAuthentication(BaseAuthentication):
     header = "REMOTE_USER"
 
     def authenticate(self, request):
-        user = authenticate(remote_user=request.META.get(self.header))
+        user = authenticate(request=request, remote_user=request.META.get(self.header))
         if user and user.is_active:
             return (user, None)

From 9716b1b6b7779543c134856e59f1c1393963e46f Mon Sep 17 00:00:00 2001
From: Ivan Trushin <33528037+WannaFight@users.noreply.github.com>
Date: Mon, 6 Sep 2021 14:18:13 +0300
Subject: [PATCH 044/450] Fix arguments (#7995)

`path()` has no argument `namespace`, it has `name` argument
---
 docs/tutorial/quickstart.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/tutorial/quickstart.md b/docs/tutorial/quickstart.md
index ee839790f1..e19577f617 100644
--- a/docs/tutorial/quickstart.md
+++ b/docs/tutorial/quickstart.md
@@ -126,7 +126,7 @@ Okay, now let's wire up the API URLs.  On to `tutorial/urls.py`...
     # Additionally, we include login URLs for the browsable API.
     urlpatterns = [
         path('', include(router.urls)),
-        path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
+        path('api-auth/', include('rest_framework.urls', name='rest_framework'))
     ]
 
 Because we're using viewsets instead of views, we can automatically generate the URL conf for our API, by simply registering the viewsets with a router class.

From 9ce541e90990307e06da1b7f5a2576406366a5e5 Mon Sep 17 00:00:00 2001
From: Tom Christie 
Date: Mon, 6 Sep 2021 12:19:20 +0100
Subject: [PATCH 045/450] Revert "Fix arguments (#7995)" (#8156)

This reverts commit 9716b1b6b7779543c134856e59f1c1393963e46f.
---
 docs/tutorial/quickstart.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/tutorial/quickstart.md b/docs/tutorial/quickstart.md
index e19577f617..ee839790f1 100644
--- a/docs/tutorial/quickstart.md
+++ b/docs/tutorial/quickstart.md
@@ -126,7 +126,7 @@ Okay, now let's wire up the API URLs.  On to `tutorial/urls.py`...
     # Additionally, we include login URLs for the browsable API.
     urlpatterns = [
         path('', include(router.urls)),
-        path('api-auth/', include('rest_framework.urls', name='rest_framework'))
+        path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
     ]
 
 Because we're using viewsets instead of views, we can automatically generate the URL conf for our API, by simply registering the viewsets with a router class.

From 73f3325f80a381d1d62ab1b84956295963f445ed Mon Sep 17 00:00:00 2001
From: Tom Christie 
Date: Fri, 10 Sep 2021 11:32:27 +0100
Subject: [PATCH 046/450] Update stream.io link (#8161)

---
 README.md     | 2 +-
 docs/index.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index b8d8ca61b1..e3bcc2a1c2 100644
--- a/README.md
+++ b/README.md
@@ -197,7 +197,7 @@ Please see the [security policy][security-policy].
 [bitio-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/bitio-readme.png
 
 [sentry-url]: https://getsentry.com/welcome/
-[stream-url]: https://getstream.io/try-the-api/?utm_source=drf&utm_medium=banner&utm_campaign=drf
+[stream-url]: https://getstream.io/?utm_source=drf&utm_medium=sponsorship&utm_content=developer
 [rollbar-url]: https://rollbar.com/?utm_source=django&utm_medium=sponsorship&utm_campaign=freetrial
 [esg-url]: https://software.esg-usa.com/
 [retool-url]: https://retool.com/?utm_source=djangorest&utm_medium=sponsorship
diff --git a/docs/index.md b/docs/index.md
index 641800b93c..9b667c6691 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -75,7 +75,7 @@ continued development by **[signing up for a paid plan][funding]**.
 
 
-*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=drf&utm_medium=banner&utm_campaign=drf), [ESG](https://software.esg-usa.com/), [Rollbar](https://rollbar.com/?utm_source=django&utm_medium=sponsorship&utm_campaign=freetrial), [Cadre](https://cadre.com), [Kloudless](https://hubs.ly/H0f30Lf0), [Lights On Software](https://lightsonsoftware.com), [Retool](https://retool.com/?utm_source=djangorest&utm_medium=sponsorship), and [bit.io](https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship).* +*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=drf&utm_medium=sponsorship&utm_content=developer), [ESG](https://software.esg-usa.com/), [Rollbar](https://rollbar.com/?utm_source=django&utm_medium=sponsorship&utm_campaign=freetrial), [Cadre](https://cadre.com), [Kloudless](https://hubs.ly/H0f30Lf0), [Lights On Software](https://lightsonsoftware.com), [Retool](https://retool.com/?utm_source=djangorest&utm_medium=sponsorship), and [bit.io](https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship).* --- From 761f56ef4025543e9cf39346d25641305e7d957d Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Fri, 10 Sep 2021 14:45:06 +0100 Subject: [PATCH 047/450] Update stream.io link --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 9b667c6691..f000d2e093 100644 --- a/docs/index.md +++ b/docs/index.md @@ -67,7 +67,7 @@ continued development by **[signing up for a paid plan][funding]**.
  • Sentry
  • -
  • Stream
  • +
  • Stream
  • ESG
  • Rollbar
  • Retool
  • From f0a5b958a134e8cd94e3ef3263e8fa623ac9b82f Mon Sep 17 00:00:00 2001 From: Dan Lousqui Date: Tue, 14 Sep 2021 14:45:55 +0200 Subject: [PATCH 048/450] Add max_length and min_length options to ListSerializer (#8165) --- docs/api-guide/serializers.md | 8 ++++ rest_framework/serializers.py | 27 +++++++++++++- tests/test_serializer_lists.py | 67 ++++++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+), 2 deletions(-) diff --git a/docs/api-guide/serializers.md b/docs/api-guide/serializers.md index 13c0c87104..cf8525748c 100644 --- a/docs/api-guide/serializers.md +++ b/docs/api-guide/serializers.md @@ -755,6 +755,14 @@ The following argument can also be passed to a `ListSerializer` field or a seria This is `True` by default, but can be set to `False` if you want to disallow empty lists as valid input. +### `max_length` + +This is `None` by default, but can be set to a positive integer if you want to validates that the list contains no more than this number of elements. + +### `min_length` + +This is `None` by default, but can be set to a positive integer if you want to validates that the list contains no fewer than this number of elements. + ### Customizing `ListSerializer` behavior There *are* a few use cases when you might want to customize the `ListSerializer` behavior. For example: diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 9ea57f1aff..3896805177 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -71,7 +71,8 @@ LIST_SERIALIZER_KWARGS = ( 'read_only', 'write_only', 'required', 'default', 'initial', 'source', 'label', 'help_text', 'style', 'error_messages', 'allow_empty', - 'instance', 'data', 'partial', 'context', 'allow_null' + 'instance', 'data', 'partial', 'context', 'allow_null', + 'max_length', 'min_length' ) ALL_FIELDS = '__all__' @@ -143,12 +144,18 @@ def many_init(cls, *args, **kwargs): return CustomListSerializer(*args, **kwargs) """ allow_empty = kwargs.pop('allow_empty', None) + max_length = kwargs.pop('max_length', None) + min_length = kwargs.pop('min_length', None) child_serializer = cls(*args, **kwargs) list_kwargs = { 'child': child_serializer, } if allow_empty is not None: list_kwargs['allow_empty'] = allow_empty + if max_length is not None: + list_kwargs['max_length'] = max_length + if min_length is not None: + list_kwargs['min_length'] = min_length list_kwargs.update({ key: value for key, value in kwargs.items() if key in LIST_SERIALIZER_KWARGS @@ -568,12 +575,16 @@ class ListSerializer(BaseSerializer): default_error_messages = { 'not_a_list': _('Expected a list of items but got type "{input_type}".'), - 'empty': _('This list may not be empty.') + 'empty': _('This list may not be empty.'), + 'max_length': _('Ensure this field has no more than {max_length} elements.'), + 'min_length': _('Ensure this field has at least {min_length} elements.') } def __init__(self, *args, **kwargs): self.child = kwargs.pop('child', copy.deepcopy(self.child)) self.allow_empty = kwargs.pop('allow_empty', True) + self.max_length = kwargs.pop('max_length', None) + self.min_length = kwargs.pop('min_length', None) assert self.child is not None, '`child` is a required argument.' assert not inspect.isclass(self.child), '`child` has not been instantiated.' super().__init__(*args, **kwargs) @@ -635,6 +646,18 @@ def to_internal_value(self, data): api_settings.NON_FIELD_ERRORS_KEY: [message] }, code='empty') + if self.max_length is not None and len(data) > self.max_length: + message = self.error_messages['max_length'].format(max_length=self.max_length) + raise ValidationError({ + api_settings.NON_FIELD_ERRORS_KEY: [message] + }, code='max_length') + + if self.min_length is not None and len(data) < self.min_length: + message = self.error_messages['min_length'].format(min_length=self.min_length) + raise ValidationError({ + api_settings.NON_FIELD_ERRORS_KEY: [message] + }, code='min_length') + ret = [] errors = [] diff --git a/tests/test_serializer_lists.py b/tests/test_serializer_lists.py index f35c4fcc9e..551f626662 100644 --- a/tests/test_serializer_lists.py +++ b/tests/test_serializer_lists.py @@ -616,3 +616,70 @@ def test_nested_serializer_with_list_multipart(self): assert serializer.is_valid() assert serializer.validated_data == [] + + +class TestMaxMinLengthListSerializer: + """ + Tests the behaviour of ListSerializers when max_length and min_length are used + """ + + def setup(self): + class IntegerSerializer(serializers.Serializer): + some_int = serializers.IntegerField() + + class MaxLengthSerializer(serializers.Serializer): + many_int = IntegerSerializer(many=True, max_length=5) + + class MinLengthSerializer(serializers.Serializer): + many_int = IntegerSerializer(many=True, min_length=3) + + class MaxMinLengthSerializer(serializers.Serializer): + many_int = IntegerSerializer(many=True, min_length=3, max_length=5) + + self.MaxLengthSerializer = MaxLengthSerializer + self.MinLengthSerializer = MinLengthSerializer + self.MaxMinLengthSerializer = MaxMinLengthSerializer + + def test_min_max_length_two_items(self): + input_data = {'many_int': [{'some_int': i} for i in range(2)]} + + max_serializer = self.MaxLengthSerializer(data=input_data) + min_serializer = self.MinLengthSerializer(data=input_data) + max_min_serializer = self.MaxMinLengthSerializer(data=input_data) + + assert max_serializer.is_valid() + assert max_serializer.validated_data == input_data + + assert not min_serializer.is_valid() + + assert not max_min_serializer.is_valid() + + def test_min_max_length_four_items(self): + input_data = {'many_int': [{'some_int': i} for i in range(4)]} + + max_serializer = self.MaxLengthSerializer(data=input_data) + min_serializer = self.MinLengthSerializer(data=input_data) + max_min_serializer = self.MaxMinLengthSerializer(data=input_data) + + assert max_serializer.is_valid() + assert max_serializer.validated_data == input_data + + assert min_serializer.is_valid() + assert min_serializer.validated_data == input_data + + assert max_min_serializer.is_valid() + assert min_serializer.validated_data == input_data + + def test_min_max_length_six_items(self): + input_data = {'many_int': [{'some_int': i} for i in range(6)]} + + max_serializer = self.MaxLengthSerializer(data=input_data) + min_serializer = self.MinLengthSerializer(data=input_data) + max_min_serializer = self.MaxMinLengthSerializer(data=input_data) + + assert not max_serializer.is_valid() + + assert min_serializer.is_valid() + assert min_serializer.validated_data == input_data + + assert not max_min_serializer.is_valid() From 250479dc3799a281429c2c10d9605a1a85d3e517 Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Wed, 22 Sep 2021 09:57:17 +0200 Subject: [PATCH 049/450] Added pytz to install_requires. pytz will not automatically be installed with Django from v4.0. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index d755a00fe2..b8e220cb43 100755 --- a/setup.py +++ b/setup.py @@ -82,7 +82,7 @@ def get_version(package): author_email='tom@tomchristie.com', # SEE NOTE BELOW (*) packages=find_packages(exclude=['tests*']), include_package_data=True, - install_requires=["django>=2.2"], + install_requires=["django>=2.2", "pytz"], python_requires=">=3.5", zip_safe=False, classifiers=[ From f651878df33bf12d3b637f2377e234a2f0a0523c Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Wed, 22 Sep 2021 09:58:34 +0200 Subject: [PATCH 050/450] Adjusted DateTimeField docs for zoneinfo. --- docs/api-guide/fields.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api-guide/fields.md b/docs/api-guide/fields.md index 04f9939425..b986009f9b 100644 --- a/docs/api-guide/fields.md +++ b/docs/api-guide/fields.md @@ -325,7 +325,7 @@ Corresponds to `django.db.models.fields.DateTimeField`. * `format` - A string representing the output format. If not specified, this defaults to the same value as the `DATETIME_FORMAT` settings key, which will be `'iso-8601'` unless set. Setting to a format string indicates that `to_representation` return values should be coerced to string output. Format strings are described below. Setting this value to `None` indicates that Python `datetime` objects should be returned by `to_representation`. In this case the datetime encoding will be determined by the renderer. * `input_formats` - A list of strings representing the input formats which may be used to parse the date. If not specified, the `DATETIME_INPUT_FORMATS` setting will be used, which defaults to `['iso-8601']`. -* `default_timezone` - A `pytz.timezone` representing the timezone. If not specified and the `USE_TZ` setting is enabled, this defaults to the [current timezone][django-current-timezone]. If `USE_TZ` is disabled, then datetime objects will be naive. +* `default_timezone` - A `tzinfo` subclass (`zoneinfo` or `pytz`) prepresenting the timezone. If not specified and the `USE_TZ` setting is enabled, this defaults to the [current timezone][django-current-timezone]. If `USE_TZ` is disabled, then datetime objects will be naive. #### `DateTimeField` format strings. From 2d9eee5d022bf77d6bb25e1d8b57da9e9c94f96f Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Wed, 22 Sep 2021 10:00:49 +0200 Subject: [PATCH 051/450] Adjusted URLPatternsTestCase to use addClassCleanup() from Django 4.0. Refs https://github.com/django/django/commit/faba5b702a9c5bb9452a543100928bcb5f66ebcf. addClassCleanup() is available from Python 3.8, which is the minimum supported Python from Django 4.0. --- rest_framework/test.py | 30 ++++++++++++++++++++++-------- tests/test_testing.py | 22 +++++++++++++++++----- 2 files changed, 39 insertions(+), 13 deletions(-) diff --git a/rest_framework/test.py b/rest_framework/test.py index e934eff55d..0212348ee0 100644 --- a/rest_framework/test.py +++ b/rest_framework/test.py @@ -3,6 +3,7 @@ import io from importlib import import_module +import django from django.conf import settings from django.core.exceptions import ImproperlyConfigured from django.core.handlers.wsgi import WSGIHandler @@ -357,6 +358,13 @@ class APILiveServerTestCase(testcases.LiveServerTestCase): client_class = APIClient +def cleanup_url_patterns(cls): + if hasattr(cls, '_module_urlpatterns'): + cls._module.urlpatterns = cls._module_urlpatterns + else: + del cls._module.urlpatterns + + class URLPatternsTestCase(testcases.SimpleTestCase): """ Isolate URL patterns on a per-TestCase basis. For example, @@ -385,14 +393,20 @@ def setUpClass(cls): cls._module.urlpatterns = cls.urlpatterns cls._override.enable() + + if django.VERSION > (4, 0): + cls.addClassCleanup(cls._override.disable) + cls.addClassCleanup(cleanup_url_patterns, cls) + super().setUpClass() - @classmethod - def tearDownClass(cls): - super().tearDownClass() - cls._override.disable() + if django.VERSION < (4, 0): + @classmethod + def tearDownClass(cls): + super().tearDownClass() + cls._override.disable() - if hasattr(cls, '_module_urlpatterns'): - cls._module.urlpatterns = cls._module_urlpatterns - else: - del cls._module.urlpatterns + if hasattr(cls, '_module_urlpatterns'): + cls._module.urlpatterns = cls._module_urlpatterns + else: + del cls._module.urlpatterns diff --git a/tests/test_testing.py b/tests/test_testing.py index cc60e4f003..5066ee142e 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -1,5 +1,6 @@ from io import BytesIO +import django from django.contrib.auth.models import User from django.shortcuts import redirect from django.test import TestCase, override_settings @@ -282,6 +283,10 @@ def test_empty_request_content_type(self): assert request.META['CONTENT_TYPE'] == 'application/json' +def check_urlpatterns(cls): + assert urlpatterns is not cls.urlpatterns + + class TestUrlPatternTestCase(URLPatternsTestCase): urlpatterns = [ path('', view), @@ -293,11 +298,18 @@ def setUpClass(cls): super().setUpClass() assert urlpatterns is cls.urlpatterns - @classmethod - def tearDownClass(cls): - assert urlpatterns is cls.urlpatterns - super().tearDownClass() - assert urlpatterns is not cls.urlpatterns + if django.VERSION > (4, 0): + cls.addClassCleanup( + check_urlpatterns, + cls + ) + + if django.VERSION < (4, 0): + @classmethod + def tearDownClass(cls): + assert urlpatterns is cls.urlpatterns + super().tearDownClass() + assert urlpatterns is not cls.urlpatterns def test_urlpatterns(self): assert self.client.get('/').status_code == 200 From 4916854492e6c999977b8577b5a15e6ffc784550 Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Wed, 22 Sep 2021 10:02:28 +0200 Subject: [PATCH 052/450] Removed USE_L10N setting from Django 4.0. USE_L10N defaults to True from Django 4.0, and will be removed in Django 5.0. --- tests/conftest.py | 4 +++- tests/test_fields.py | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index cc32cc6373..79cabd5e1a 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -18,6 +18,8 @@ def pytest_addoption(parser): def pytest_configure(config): from django.conf import settings + # USE_L10N is deprecated, and will be removed in Django 5.0. + use_l10n = {"USE_L10N": True} if django.VERSION < (4, 0) else {} settings.configure( DEBUG_PROPAGATE_EXCEPTIONS=True, DATABASES={ @@ -33,7 +35,6 @@ def pytest_configure(config): SITE_ID=1, SECRET_KEY='not very secret in tests', USE_I18N=True, - USE_L10N=True, STATIC_URL='/static/', ROOT_URLCONF='tests.urls', TEMPLATES=[ @@ -68,6 +69,7 @@ def pytest_configure(config): PASSWORD_HASHERS=( 'django.contrib.auth.hashers.MD5PasswordHasher', ), + **use_l10n, ) # guardian is optional diff --git a/tests/test_fields.py b/tests/test_fields.py index 2d4cc44ae0..a3b37584bc 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1220,12 +1220,12 @@ class TestNoStringCoercionDecimalField(FieldValues): class TestLocalizedDecimalField(TestCase): - @override_settings(USE_L10N=True, LANGUAGE_CODE='pl') + @override_settings(LANGUAGE_CODE='pl') def test_to_internal_value(self): field = serializers.DecimalField(max_digits=2, decimal_places=1, localize=True) assert field.to_internal_value('1,1') == Decimal('1.1') - @override_settings(USE_L10N=True, LANGUAGE_CODE='pl') + @override_settings(LANGUAGE_CODE='pl') def test_to_representation(self): field = serializers.DecimalField(max_digits=2, decimal_places=1, localize=True) assert field.to_representation(Decimal('1.1')) == '1,1' From 19b609155479f967a41ffc20a58bb09229f1e64b Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Wed, 22 Sep 2021 10:06:10 +0200 Subject: [PATCH 053/450] Adjusted authentication test for internal CSRF changes. Private _get_new_csrf_token() was removed in https://github.com/django/django/commit/231de683d86374c2b74da2185efc6ddfb5eb3341. --- tests/authentication/test_authentication.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/authentication/test_authentication.py b/tests/authentication/test_authentication.py index a73e0d79c7..d771aaf8b4 100644 --- a/tests/authentication/test_authentication.py +++ b/tests/authentication/test_authentication.py @@ -1,5 +1,6 @@ import base64 +import django import pytest from django.conf import settings from django.contrib.auth.models import User @@ -218,7 +219,16 @@ def test_post_form_session_auth_passing_csrf(self): Ensure POSTing form over session authentication with CSRF token succeeds. Regression test for #6088 """ - from django.middleware.csrf import _get_new_csrf_token + # Remove this shim when dropping support for Django 2.2. + if django.VERSION < (3, 0): + from django.middleware.csrf import _get_new_csrf_token + else: + from django.middleware.csrf import ( + _get_new_csrf_string, _mask_cipher_secret + ) + + def _get_new_csrf_token(): + return _mask_cipher_secret(_get_new_csrf_string()) self.csrf_client.login(username=self.username, password=self.password) From f46c33e4e2c545e3fd90de692242c53a6fe6e7e9 Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Wed, 22 Sep 2021 10:07:00 +0200 Subject: [PATCH 054/450] Fixed TestDefaultTZDateTimeField to allow multiple tzinfo implementations. zoneinfo was made the default time zone implementation in https://github.com/django/django/commit/306607d5b99b6eca6ae2c1e726d8eb32b9b2ca1b. --- tests/test_fields.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tests/test_fields.py b/tests/test_fields.py index a3b37584bc..7a5304a82a 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1464,15 +1464,24 @@ def setup_class(cls): cls.field = serializers.DateTimeField() cls.kolkata = pytz.timezone('Asia/Kolkata') + def assertUTC(self, tzinfo): + """ + Check UTC for datetime.timezone, ZoneInfo, and pytz tzinfo instances. + """ + assert ( + tzinfo is utc or + (getattr(tzinfo, "key", None) or getattr(tzinfo, "zone", None)) == "UTC" + ) + def test_default_timezone(self): - assert self.field.default_timezone() == utc + self.assertUTC(self.field.default_timezone()) def test_current_timezone(self): - assert self.field.default_timezone() == utc + self.assertUTC(self.field.default_timezone()) activate(self.kolkata) assert self.field.default_timezone() == self.kolkata deactivate() - assert self.field.default_timezone() == utc + self.assertUTC(self.field.default_timezone()) @pytest.mark.skipif(pytz is None, reason='pytz not installed') From c62e3ca764d90e7b8402cc4022cffad2a07fa5be Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Wed, 22 Sep 2021 10:08:14 +0200 Subject: [PATCH 055/450] Added Django 4.0 to test matrix. --- tox.ini | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 25f8418219..6f49d373fc 100644 --- a/tox.ini +++ b/tox.ini @@ -3,7 +3,7 @@ envlist = {py35,py36,py37}-django22, {py36,py37,py38,py39}-django31, {py36,py37,py38,py39}-django32, - {py38,py39}-djangomain, + {py38,py39}-{django40,djangomain}, base,dist,docs, [travis:env] @@ -11,6 +11,7 @@ DJANGO = 2.2: django22 3.1: django31 3.2: django32 + 4.0: django40 main: djangomain [testenv] @@ -23,6 +24,7 @@ deps = django22: Django>=2.2,<3.0 django31: Django>=3.1,<3.2 django32: Django>=3.2,<4.0 + django40: Django>=4.0a1,<5.0 djangomain: https://github.com/django/django/archive/main.tar.gz -rrequirements/requirements-testing.txt -rrequirements/requirements-optionals.txt From 1fa5bc31c0c047eb2109929b17f8e53e84b7d40b Mon Sep 17 00:00:00 2001 From: Akhil Kokani Date: Mon, 27 Sep 2021 14:31:47 +0530 Subject: [PATCH 056/450] Update serializers.md (#8189) * Update serializers.md Removed unwanted word, "neither". * Update docs/api-guide/serializers.md Co-authored-by: Tom Christie --- docs/api-guide/serializers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api-guide/serializers.md b/docs/api-guide/serializers.md index cf8525748c..377f732acd 100644 --- a/docs/api-guide/serializers.md +++ b/docs/api-guide/serializers.md @@ -116,7 +116,7 @@ Calling `.save()` will either create a new instance, or update an existing insta # .save() will update the existing `comment` instance. serializer = CommentSerializer(comment, data=data) -Both the `.create()` and `.update()` methods are optional. You can implement either neither, one, or both of them, depending on the use-case for your serializer class. +Both the `.create()` and `.update()` methods are optional. You can implement either none, one, or both of them, depending on the use-case for your serializer class. #### Passing additional attributes to `.save()` From 605a624da6958bd5e633a391eb65e72d0526f37c Mon Sep 17 00:00:00 2001 From: Phil Leggetter Date: Tue, 5 Oct 2021 14:02:34 +0100 Subject: [PATCH 057/450] Add PostHog as premium sponsors (#8193) * Add PostHog as premium sponsors * Adding 275x250 PostHog image --- README.md | 5 ++++- docs/img/premium/posthog-readme.png | Bin 0 -> 2402 bytes docs/index.md | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 docs/img/premium/posthog-readme.png diff --git a/README.md b/README.md index e3bcc2a1c2..8ba0a5e1d3 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,9 @@ The initial aim is to provide a single full-time position on REST framework. [![][esg-img]][esg-url] [![][retool-img]][retool-url] [![][bitio-img]][bitio-url] +[![][posthog-img]][posthog-url] -Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry][sentry-url], [Stream][stream-url], [Rollbar][rollbar-url], [ESG][esg-url], [Retool][retool-url], and [bit.io][bitio-url]. +Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry][sentry-url], [Stream][stream-url], [Rollbar][rollbar-url], [ESG][esg-url], [Retool][retool-url], [bit.io][bitio-url], and [PostHog][posthog-url]. --- @@ -195,6 +196,7 @@ Please see the [security policy][security-policy]. [esg-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/esg-readme.png [retool-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/retool-readme.png [bitio-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/bitio-readme.png +[posthog-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/posthog-readme.png [sentry-url]: https://getsentry.com/welcome/ [stream-url]: https://getstream.io/?utm_source=drf&utm_medium=sponsorship&utm_content=developer @@ -202,6 +204,7 @@ Please see the [security policy][security-policy]. [esg-url]: https://software.esg-usa.com/ [retool-url]: https://retool.com/?utm_source=djangorest&utm_medium=sponsorship [bitio-url]: https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship +[posthog-url]: https://posthog.com?utm_source=drf&utm_medium=sponsorship&utm_campaign=open-source-sponsorship [oauth1-section]: https://www.django-rest-framework.org/api-guide/authentication/#django-rest-framework-oauth [oauth2-section]: https://www.django-rest-framework.org/api-guide/authentication/#django-oauth-toolkit diff --git a/docs/img/premium/posthog-readme.png b/docs/img/premium/posthog-readme.png new file mode 100644 index 0000000000000000000000000000000000000000..9ca8b0ecf04599491790c65f6ac2382a1f45cb34 GIT binary patch literal 2402 zcmai$dpy(oAIIm?kqEUVMI1|COS+h2jFQXTx1B9IU5@L*+;d$jLMd%T+LDdA=Y9!U zO`&8o_mayIDdv_-A-UVxJbwN6dpyqL@p*i{ulM)+e7#=Z@At0{8Hcslxnuth5D2u> z$`W-31QG!Y^y+po!Cqx!8!Whp6OA#(AW(UN)Vj+y!7LJV#=-^wfTCV04r1+CN^`RT6k>eVYF zBcruOb2^VqMINXu5{N;Nm zqHJ#!fI!<5tx(2xq5U(1Q-n$wWLu}W2EJU6rPH6guvvy==MQlDuww4toQBkVvx=gB zS56+3F_shmk9B{jb$qEsJ>}{Re&V>w8v9)6amureTuaCH72!MtnmxS`rtIbfQ8e9$UWfTA8?9)t?!XzL_}Y0;vq!}N8n+<^&H^8AcCFY4@fNOCpmAEU**@Zl%mYXyJ-UgseWGAX^U|40*v+ zfXPrB@bc8vNIp9*MDikKcSEHwu|0PLVtGV@`6R2u#yu$wc8g+LOl>S2ad zNlq75jnbj!Li+}4Hk8eTq?md-io$%ik8Vif4I@P%8K6VEX@g_9_%%>-ohogqEmNrl zWWBQA=;}w`oukPTxMpbNgHp2WFZqNl@k?fK$Cs8z-!G%x@j@t#e39C>$l zgZtJ{NLKmfDJJjzpM)p-zow=T7c!IAXmXAAa3Y5p5EM;Z>c zOqrTzK1V;PP3h$!@uGlamb4CXM%Fvf9sS;PpLbw?dN;3?t`-CD<~==K$ffI8?KJBV z$O0~1mn?g`EfXfhy#hsnfXpWyk2r#9m7z44^L5I$0d_@TD)J6|dUee^N(9NF1QIdW z7c8JDBqEOj8U4gaCAneZ3DCwRAn``nY$?~Xx0?q80yo_Ds5fs2k_s70qc`RT8gvp` zTmuBwT)-mjhWgODYlM1lVq4QO!B6S!<=I0&irx##s3-*T9Gs{@SVZkJf7v0pGL<_l zXb8u|uZMka*Uc{xCpT@S)B;2g$(-4-#?`YOSJi-6!ACCYAY)CZ^w9FXyr)y%fk_sq zKox&aL8E}ZYC|6VH1U2bs(rYDQ1M*QV@F-69=a(k=n+(2Uo7kG{ah1=LObq9E{v5P z@wfuEW_yVEt^(zEYC-g_v**Icv2Uw@^!n2qc0lw;GgSyEajkc()wgzg zMwx4?mmd*ZSzv-sS*PrXmPwoHCu{J#mEU6f3zKHcfstl%v;N|g@enS*%Ae54Yj}uj z%lRoIKV@-jL<`+`t5!Mnl8aSt*vsldhPXT0zMwmyK)w{wBavcnpw(X>_Rr*HGi{_F z`~2dwy1Ho@*a$7Y4t*SX^aNdgA^0qU)M;vy`e}AuIy{*?sC@UQs*0i<6PuK90L3BJ z#nu2OGmkAxPU;{s;ymw-l>?7T5Yauir!94LW*z^DztyXG!f=i;5#G|L`JzA-TT^-W zHSb#W!vG3FzjIEZh*9}Hxs6!gW;WIx?N=MJ7)t$m?ZjAUQpgDMNjqCLrYR@e8Ul8~ z+Psy>pX(WZ4Gf-eKGYK;%Zx|s>8`Sae1=jgch4VabK)gvvD*?Qv2i2$B^`H8g(+00 z8erfHDDIDivGiM~LzTQwW+tc7($y{!-|=5XBhem8GYv~9_Zy_fot1a<^}{Qx3@~0n zS>`OXmrvV6GeX5woY=vOc{V)GTp#|EC$#lWGRBhLZsws0(C2FIb2}u9JexkenOO|F z=vsfrkhza|EXMqeXfR2?fdF^x_TMO+4y!qL_>}X}ju(jP#?Fv{$BUg`IpaUv(gW(Z zokCrLI|RF?YB?TgRZY3pmX*-GG86H1Km1GAOX<@~Si73-#j?8`_8RP`)TGykPIkqn zX{gu7UC#Qv&Yk?s{{C}%Q7(!+Rdy)#y!uRZldTj(uRUy_tCLN2kOmNxK6b8dBUqK0 z3rQnZ0wp{|!dKhD!%!+SW46E;%T$M|%&@3Z6X%=% E0-^VOCIA2c literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index f000d2e093..54b7881072 100644 --- a/docs/index.md +++ b/docs/index.md @@ -72,10 +72,11 @@ continued development by **[signing up for a paid plan][funding]**.
  • Rollbar
  • Retool
  • bit.io
  • +
  • PostHog
-*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=drf&utm_medium=sponsorship&utm_content=developer), [ESG](https://software.esg-usa.com/), [Rollbar](https://rollbar.com/?utm_source=django&utm_medium=sponsorship&utm_campaign=freetrial), [Cadre](https://cadre.com), [Kloudless](https://hubs.ly/H0f30Lf0), [Lights On Software](https://lightsonsoftware.com), [Retool](https://retool.com/?utm_source=djangorest&utm_medium=sponsorship), and [bit.io](https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship).* +*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=drf&utm_medium=sponsorship&utm_content=developer), [ESG](https://software.esg-usa.com/), [Rollbar](https://rollbar.com/?utm_source=django&utm_medium=sponsorship&utm_campaign=freetrial), [Cadre](https://cadre.com), [Kloudless](https://hubs.ly/H0f30Lf0), [Lights On Software](https://lightsonsoftware.com), [Retool](https://retool.com/?utm_source=djangorest&utm_medium=sponsorship), [bit.io](https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), and [bit.io](https://posthog.com?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship).* --- From 6ea95b6ad1bc0d4a4234a267b1ba32701878c6bb Mon Sep 17 00:00:00 2001 From: thetarby <45286577+thetarby@users.noreply.github.com> Date: Tue, 5 Oct 2021 17:33:55 +0300 Subject: [PATCH 058/450] Highlight `select_related` and `prefetch_related` usage in documentation (#7610) * docs updated to highlight use of select_related and prefetch related to avoid n+1 problems * Apply suggestions from code review cosmetic changes Co-authored-by: Xavier Ordoquy * cosmetic changes Co-authored-by: Xavier Ordoquy --- docs/api-guide/fields.md | 10 +++++++++- docs/api-guide/generic-views.md | 7 +++++++ docs/api-guide/relations.md | 31 +++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/docs/api-guide/fields.md b/docs/api-guide/fields.md index b986009f9b..5b9688dcab 100644 --- a/docs/api-guide/fields.md +++ b/docs/api-guide/fields.md @@ -78,7 +78,14 @@ Defaults to `False` ### `source` -The name of the attribute that will be used to populate the field. May be a method that only takes a `self` argument, such as `URLField(source='get_absolute_url')`, or may use dotted notation to traverse attributes, such as `EmailField(source='user.email')`. When serializing fields with dotted notation, it may be necessary to provide a `default` value if any object is not present or is empty during attribute traversal. +The name of the attribute that will be used to populate the field. May be a method that only takes a `self` argument, such as `URLField(source='get_absolute_url')`, or may use dotted notation to traverse attributes, such as `EmailField(source='user.email')`. + +When serializing fields with dotted notation, it may be necessary to provide a `default` value if any object is not present or is empty during attribute traversal. Beware of possible n+1 problems when using source attribute if you are accessing a relational orm model. For example: + + class CommentSerializer(serializers.Serializer): + email = serializers.EmailField(source="user.email") + +would require user object to be fetched from database when it is not prefetched. If that is not wanted, be sure to be using `prefetch_related` and `select_related` methods appropriately. For more information about the methods refer to [django documentation][django-docs-select-related]. The value `source='*'` has a special meaning, and is used to indicate that the entire object should be passed through to the field. This can be useful for creating nested representations, or for fields which require access to the complete object in order to determine the output representation. @@ -855,3 +862,4 @@ The [django-rest-framework-hstore][django-rest-framework-hstore] package provide [django-hstore]: https://github.com/djangonauts/django-hstore [python-decimal-rounding-modes]: https://docs.python.org/3/library/decimal.html#rounding-modes [django-current-timezone]: https://docs.djangoproject.com/en/stable/topics/i18n/timezones/#default-time-zone-and-current-time-zone +[django-docs-select-related]: https://docs.djangoproject.com/en/3.1/ref/models/querysets/#django.db.models.query.QuerySet.select_related diff --git a/docs/api-guide/generic-views.md b/docs/api-guide/generic-views.md index afc2cab563..fbafec93ad 100644 --- a/docs/api-guide/generic-views.md +++ b/docs/api-guide/generic-views.md @@ -96,6 +96,12 @@ For example: user = self.request.user return user.accounts.all() +--- + +**Note:** If the serializer_class used in the generic view spans orm relations, leading to an n+1 problem, you could optimize your queryset in this method using `select_related` and `prefetch_related`. To get more information about n+1 problem and use cases of the mentioned methods refer to related section in [django documentation][django-docs-select-related]. + +--- + #### `get_object(self)` Returns an object instance that should be used for detail views. Defaults to using the `lookup_field` parameter to filter the base queryset. @@ -389,3 +395,4 @@ The following third party packages provide additional generic view implementatio [UpdateModelMixin]: #updatemodelmixin [DestroyModelMixin]: #destroymodelmixin [django-rest-multiple-models]: https://github.com/MattBroach/DjangoRestMultipleModels +[django-docs-select-related]: https://docs.djangoproject.com/en/3.1/ref/models/querysets/#django.db.models.query.QuerySet.select_related \ No newline at end of file diff --git a/docs/api-guide/relations.md b/docs/api-guide/relations.md index f444125cff..4547253b0a 100644 --- a/docs/api-guide/relations.md +++ b/docs/api-guide/relations.md @@ -17,6 +17,37 @@ Relational fields are used to represent model relationships. They can be applie --- +--- + +**Note:** REST Framework does not attempt to automatically optimize querysets passed to serializers in terms of `select_related` and `prefetch_related` since it would be too much magic. A serializer with a field spanning an orm relation through its source attribute could require an additional database hit to fetch related object from the database. It is the programmer's responsibility to optimize queries to avoid additional database hits which could occur while using such a serializer. + +For example, the following serializer would lead to a database hit each time evaluating the tracks field if it is not prefetched: + + class AlbumSerializer(serializers.ModelSerializer): + tracks = serializers.SlugRelatedField( + many=True, + read_only=True, + slug_field='title' + ) + + class Meta: + model = Album + fields = ['album_name', 'artist', 'tracks'] + + # For each album object, tracks should be fetched from database + qs = Album.objects.all() + print(AlbumSerializer(qs, many=True).data) + +If `AlbumSerializer` is used to serialize a fairly large queryset with `many=True` then it could be a serious performance problem. Optimizing the queryset passed to `AlbumSerializer` with: + + qs = Album.objects.prefetch_related('tracks') + # No additional database hits required + print(AlbumSerializer(qs, many=True).data) + +would solve the issue. + +--- + #### Inspecting relationships. When using the `ModelSerializer` class, serializer fields and relationships will be automatically generated for you. Inspecting these automatically generated fields can be a useful tool for determining how to customize the relationship style. From 53a0585dacea328ce74083f0da0dea10c4df03e5 Mon Sep 17 00:00:00 2001 From: Edmund <2623895+edmundlam@users.noreply.github.com> Date: Thu, 7 Oct 2021 04:09:00 -0400 Subject: [PATCH 059/450] Update permissions.md to fix garden path sentences (#8206) --- docs/api-guide/permissions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api-guide/permissions.md b/docs/api-guide/permissions.md index 6912c375c2..19bc0e66ae 100644 --- a/docs/api-guide/permissions.md +++ b/docs/api-guide/permissions.md @@ -24,9 +24,9 @@ A slightly less strict style of permission would be to allow full access to auth Permissions in REST framework are always defined as a list of permission classes. Before running the main body of the view each permission in the list is checked. -If any permission check fails an `exceptions.PermissionDenied` or `exceptions.NotAuthenticated` exception will be raised, and the main body of the view will not run. +If any permission check fails, an `exceptions.PermissionDenied` or `exceptions.NotAuthenticated` exception will be raised, and the main body of the view will not run. -When the permissions checks fail either a "403 Forbidden" or a "401 Unauthorized" response will be returned, according to the following rules: +When the permission checks fail, either a "403 Forbidden" or a "401 Unauthorized" response will be returned, according to the following rules: * The request was successfully authenticated, but permission was denied. *— An HTTP 403 Forbidden response will be returned.* * The request was not successfully authenticated, and the highest priority authentication class *does not* use `WWW-Authenticate` headers. *— An HTTP 403 Forbidden response will be returned.* From ddc5cd7e4b5f4bf250afd412b314af6728ea1726 Mon Sep 17 00:00:00 2001 From: Uzair Ali <72073401+uzair-ali10@users.noreply.github.com> Date: Thu, 7 Oct 2021 20:22:44 +0530 Subject: [PATCH 060/450] Imported Response (#8207) --- docs/api-guide/views.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/api-guide/views.md b/docs/api-guide/views.md index 2224c1f3a5..878a291b22 100644 --- a/docs/api-guide/views.md +++ b/docs/api-guide/views.md @@ -145,6 +145,7 @@ REST framework also allows you to work with regular function based views. It pr The core of this functionality is the `api_view` decorator, which takes a list of HTTP methods that your view should respond to. For example, this is how you would write a very simple view that just manually returns some data: from rest_framework.decorators import api_view + from rest_framework.response import Response @api_view() def hello_world(request): From 00cd4ef864a8bf6d6c90819a983017070f9f08a5 Mon Sep 17 00:00:00 2001 From: rgermain Date: Fri, 15 Oct 2021 16:13:20 +0200 Subject: [PATCH 061/450] add third packages nested-multipart-parser (#8208) --- docs/community/third-party-packages.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md index 933244a6a9..e25421f503 100644 --- a/docs/community/third-party-packages.md +++ b/docs/community/third-party-packages.md @@ -106,6 +106,7 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque * [djangorestframework-msgpack][djangorestframework-msgpack] - Provides MessagePack renderer and parser support. * [djangorestframework-jsonapi][djangorestframework-jsonapi] - Provides a parser, renderer, serializers, and other tools to help build an API that is compliant with the jsonapi.org spec. * [djangorestframework-camel-case][djangorestframework-camel-case] - Provides camel case JSON renderers and parsers. +* [nested-multipart-parser][nested-multipart-parser] - Provides nested parser for http multipart request ### Renderers @@ -183,6 +184,7 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque [wq.db.rest]: https://wq.io/docs/about-rest [djangorestframework-msgpack]: https://github.com/juanriaza/django-rest-framework-msgpack [djangorestframework-camel-case]: https://github.com/vbabiy/djangorestframework-camel-case +[nested-multipart-parser]: https://github.com/remigermain/nested-multipart-parser [djangorestframework-csv]: https://github.com/mjumbewu/django-rest-framework-csv [drf_ujson2]: https://github.com/Amertz08/drf_ujson2 [rest-pandas]: https://github.com/wq/django-rest-pandas From 781890b7df88086d9cba07904e53db346ec4a715 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Lavoie?= Date: Mon, 8 Nov 2021 03:59:32 -0600 Subject: [PATCH 062/450] docs(api-guide-testing): Fix typo 'CRSF' and plural of word (#8238) --- docs/api-guide/testing.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api-guide/testing.md b/docs/api-guide/testing.md index 73de68a76b..62eb8dd1a5 100644 --- a/docs/api-guide/testing.md +++ b/docs/api-guide/testing.md @@ -234,7 +234,7 @@ If you're using `SessionAuthentication` then you'll need to include a CSRF token for any `POST`, `PUT`, `PATCH` or `DELETE` requests. You can do so by following the same flow that a JavaScript based client would use. -First make a `GET` request in order to obtain a CRSF token, then present that +First, make a `GET` request in order to obtain a CSRF token, then present that token in the following request. For example... @@ -259,7 +259,7 @@ With careful usage both the `RequestsClient` and the `CoreAPIClient` provide the ability to write test cases that can run either in development, or be run directly against your staging server or production environment. -Using this style to create basic tests of a few core piece of functionality is +Using this style to create basic tests of a few core pieces of functionality is a powerful way to validate your live service. Doing so may require some careful attention to setup and teardown to ensure that the tests run in a way that they do not directly affect customer data. From 060a3b632f6f6ff2f84235d1be5da55020c40ff3 Mon Sep 17 00:00:00 2001 From: Anton Burnashev Date: Wed, 10 Nov 2021 17:31:15 +0100 Subject: [PATCH 063/450] Docs: fix broken link (#8245) --- docs/api-guide/pagination.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/api-guide/pagination.md b/docs/api-guide/pagination.md index 632af6a823..379c1975ad 100644 --- a/docs/api-guide/pagination.md +++ b/docs/api-guide/pagination.md @@ -312,7 +312,7 @@ The [`drf-proxy-pagination` package][drf-proxy-pagination] includes a `ProxyPagi ## link-header-pagination -The [`django-rest-framework-link-header-pagination` package][drf-link-header-pagination] includes a `LinkHeaderPagination` class which provides pagination via an HTTP `Link` header as described in [Github's developer documentation](github-link-pagination). +The [`django-rest-framework-link-header-pagination` package][drf-link-header-pagination] includes a `LinkHeaderPagination` class which provides pagination via an HTTP `Link` header as described in [GitHub REST API documentation][github-traversing-with-pagination]. [cite]: https://docs.djangoproject.com/en/stable/topics/pagination/ [link-header]: ../img/link-header-pagination.png @@ -322,3 +322,4 @@ The [`django-rest-framework-link-header-pagination` package][drf-link-header-pag [drf-link-header-pagination]: https://github.com/tbeadle/django-rest-framework-link-header-pagination [disqus-cursor-api]: https://cra.mr/2011/03/08/building-cursors-for-the-disqus-api [float_cursor_pagination_example]: https://gist.github.com/keturn/8bc88525a183fd41c73ffb729b8865be#file-fpcursorpagination-py +[github-traversing-with-pagination]: https://docs.github.com/en/rest/guides/traversing-with-pagination From 0d5250cffada2ac250e24407953d4862d04d3dae Mon Sep 17 00:00:00 2001 From: Dmytro Litvinov Date: Mon, 15 Nov 2021 10:54:19 +0200 Subject: [PATCH 064/450] Fix link to installation of httpie (#8257) Right now httpie moved to "httpie" organization (https://github.com/httpie/httpie) and they don't have "installation" at their GitHub. Instead of that, they have "Getting started" section with link to "Installation instructions". --- docs/tutorial/quickstart.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorial/quickstart.md b/docs/tutorial/quickstart.md index ee839790f1..f4dcc5606c 100644 --- a/docs/tutorial/quickstart.md +++ b/docs/tutorial/quickstart.md @@ -225,4 +225,4 @@ If you want to get a more in depth understanding of how REST framework fits toge [image]: ../img/quickstart.png [tutorial]: 1-serialization.md [guide]: ../api-guide/requests.md -[httpie]: https://github.com/jakubroztocil/httpie#installation +[httpie]: https://httpie.io/docs#installation From 580bf45ccfd5c423a938729907d813f4862dca38 Mon Sep 17 00:00:00 2001 From: Asif Saif Uddin Date: Mon, 22 Nov 2021 16:48:58 +0600 Subject: [PATCH 065/450] test v4 beta 1 (#8222) * test v4 beta 1 * django 4 rc1 --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 6f49d373fc..1ab5051953 100644 --- a/tox.ini +++ b/tox.ini @@ -24,7 +24,7 @@ deps = django22: Django>=2.2,<3.0 django31: Django>=3.1,<3.2 django32: Django>=3.2,<4.0 - django40: Django>=4.0a1,<5.0 + django40: Django>=4.0rc1,<5.0 djangomain: https://github.com/django/django/archive/main.tar.gz -rrequirements/requirements-testing.txt -rrequirements/requirements-optionals.txt From 380ac8e79dd85e6798eb00a730b7d4c4c4a86ebd Mon Sep 17 00:00:00 2001 From: Yecine Megdiche Date: Mon, 6 Dec 2021 16:32:33 +0100 Subject: [PATCH 066/450] Remove old-style `super` calls (#8226) --- docs/api-guide/filtering.md | 2 +- docs/api-guide/serializers.md | 2 +- docs/tutorial/4-authentication-and-permissions.md | 2 +- rest_framework/fields.py | 2 ++ rest_framework/schemas/coreapi.py | 8 ++++---- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/api-guide/filtering.md b/docs/api-guide/filtering.md index 3541388ca2..512acafbd9 100644 --- a/docs/api-guide/filtering.md +++ b/docs/api-guide/filtering.md @@ -241,7 +241,7 @@ To dynamically change search fields based on request content, it's possible to s def get_search_fields(self, view, request): if request.query_params.get('title_only'): return ['title'] - return super(CustomSearchFilter, self).get_search_fields(view, request) + return super().get_search_fields(view, request) For more details, see the [Django documentation][search-django-admin]. diff --git a/docs/api-guide/serializers.md b/docs/api-guide/serializers.md index 377f732acd..4d032bd9ec 100644 --- a/docs/api-guide/serializers.md +++ b/docs/api-guide/serializers.md @@ -1095,7 +1095,7 @@ For example, if you wanted to be able to set which fields should be used by a se fields = kwargs.pop('fields', None) # Instantiate the superclass normally - super(DynamicFieldsModelSerializer, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) if fields is not None: # Drop any fields that are not specified in the `fields` argument. diff --git a/docs/tutorial/4-authentication-and-permissions.md b/docs/tutorial/4-authentication-and-permissions.md index 79ce355c93..cb0321ea21 100644 --- a/docs/tutorial/4-authentication-and-permissions.md +++ b/docs/tutorial/4-authentication-and-permissions.md @@ -38,7 +38,7 @@ And now we can add a `.save()` method to our model class: formatter = HtmlFormatter(style=self.style, linenos=linenos, full=True, **options) self.highlighted = highlight(self.code, lexer, formatter) - super(Snippet, self).save(*args, **kwargs) + super().save(*args, **kwargs) When that's all done we'll need to update our database tables. Normally we'd create a database migration in order to do that, but for the purposes of this tutorial, let's just delete the database and start again. diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 5cafed5556..d7e7816cee 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -1491,6 +1491,8 @@ def to_internal_value(self, data): self.fail('empty') return { + # Arguments for super() are needed because of scoping inside + # comprehensions. super(MultipleChoiceField, self).to_internal_value(item) for item in data } diff --git a/rest_framework/schemas/coreapi.py b/rest_framework/schemas/coreapi.py index 75ed5671af..179f0fa3c8 100644 --- a/rest_framework/schemas/coreapi.py +++ b/rest_framework/schemas/coreapi.py @@ -58,7 +58,7 @@ class LinkNode(OrderedDict): def __init__(self): self.links = [] self.methods_counter = Counter() - super(LinkNode, self).__init__() + super().__init__() def get_available_key(self, preferred_key): if preferred_key not in self: @@ -120,7 +120,7 @@ def __init__(self, title=None, url=None, description=None, patterns=None, urlcon assert coreapi, '`coreapi` must be installed for schema support.' assert coreschema, '`coreschema` must be installed for schema support.' - super(SchemaGenerator, self).__init__(title, url, description, patterns, urlconf) + super().__init__(title, url, description, patterns, urlconf) self.coerce_method_names = api_settings.SCHEMA_COERCE_METHOD_NAMES def get_links(self, request=None): @@ -346,7 +346,7 @@ def __init__(self, manual_fields=None): * `manual_fields`: list of `coreapi.Field` instances that will be added to auto-generated fields, overwriting on `Field.name` """ - super(AutoSchema, self).__init__() + super().__init__() if manual_fields is None: manual_fields = [] self._manual_fields = manual_fields @@ -587,7 +587,7 @@ def __init__(self, fields, description='', encoding=None): * `fields`: list of `coreapi.Field` instances. * `description`: String description for view. Optional. """ - super(ManualSchema, self).__init__() + super().__init__() assert all(isinstance(f, coreapi.Field) for f in fields), "`fields` must be a list of coreapi.Field instances" self._fields = fields self._description = description From dabf2216c33a365f80354d962177d72914e8936f Mon Sep 17 00:00:00 2001 From: Jaap Roes Date: Wed, 8 Dec 2021 15:30:34 +0100 Subject: [PATCH 067/450] Update django-cors-headers links (#8176) --- docs/topics/ajax-csrf-cors.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/topics/ajax-csrf-cors.md b/docs/topics/ajax-csrf-cors.md index 646f3f5638..a65e3fdf8d 100644 --- a/docs/topics/ajax-csrf-cors.md +++ b/docs/topics/ajax-csrf-cors.md @@ -31,11 +31,11 @@ In order to make AJAX requests, you need to include CSRF token in the HTTP heade The best way to deal with CORS in REST framework is to add the required response headers in middleware. This ensures that CORS is supported transparently, without having to change any behavior in your views. -[Otto Yiu][ottoyiu] maintains the [django-cors-headers] package, which is known to work correctly with REST framework APIs. +[Adam Johnson][adamchainz] maintains the [django-cors-headers] package, which is known to work correctly with REST framework APIs. [cite]: https://blog.codinghorror.com/preventing-csrf-and-xsrf-attacks/ [csrf]: https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF) [csrf-ajax]: https://docs.djangoproject.com/en/stable/ref/csrf/#ajax [cors]: https://www.w3.org/TR/cors/ -[ottoyiu]: https://github.com/ottoyiu/ -[django-cors-headers]: https://github.com/ottoyiu/django-cors-headers/ +[adamchainz]: https://github.com/adamchainz +[django-cors-headers]: https://github.com/adamchainz/django-cors-headers From 37b73ef46e8cf4cc746709542d7d26f6b152a26d Mon Sep 17 00:00:00 2001 From: Jeremy Langley Date: Wed, 8 Dec 2021 06:33:41 -0800 Subject: [PATCH 068/450] IsAdmin permissions changed to IsAdminUser (#8227) Documentation change to keep up with the code permission changes. Co-authored-by: Jeremy Langley --- docs/api-guide/viewsets.md | 2 +- docs/community/3.9-announcement.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api-guide/viewsets.md b/docs/api-guide/viewsets.md index d4ab5a7317..4179725078 100644 --- a/docs/api-guide/viewsets.md +++ b/docs/api-guide/viewsets.md @@ -125,7 +125,7 @@ You may inspect these attributes to adjust behaviour based on the current action if self.action == 'list': permission_classes = [IsAuthenticated] else: - permission_classes = [IsAdmin] + permission_classes = [IsAdminUser] return [permission() for permission in permission_classes] ## Marking extra actions for routing diff --git a/docs/community/3.9-announcement.md b/docs/community/3.9-announcement.md index fee6e69096..d673fdd183 100644 --- a/docs/community/3.9-announcement.md +++ b/docs/community/3.9-announcement.md @@ -110,7 +110,7 @@ You can now compose permission classes using the and/or operators, `&` and `|`. For example... ```python -permission_classes = [IsAuthenticated & (ReadOnly | IsAdmin)] +permission_classes = [IsAuthenticated & (ReadOnly | IsAdminUser)] ``` If you're using custom permission classes then make sure that you are subclassing From 3a762d9aac526f26ea2e9798140cb99a1d3ebc18 Mon Sep 17 00:00:00 2001 From: Matthew Pull Date: Wed, 8 Dec 2021 14:35:06 +0000 Subject: [PATCH 069/450] Update permissions.md (#8260) I might just be misunderstanding something (always a strong possibility!), but it seems to me that the table on the Permissions page is slightly inaccurate. For `permission_classes`, wouldn't it have global-level permissions for list actions (rather than no permission control, as is currently listed)? --- docs/api-guide/permissions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api-guide/permissions.md b/docs/api-guide/permissions.md index 19bc0e66ae..5d6462b45d 100644 --- a/docs/api-guide/permissions.md +++ b/docs/api-guide/permissions.md @@ -286,7 +286,7 @@ The following table lists the access restriction methods and the level of contro | | `queryset` | `permission_classes` | `serializer_class` | |------------------------------------|------------|----------------------|--------------------| -| Action: list | global | no | object-level* | +| Action: list | global | global | object-level* | | Action: create | no | global | object-level | | Action: retrieve | global | object-level | object-level | | Action: update | global | object-level | object-level | From b0d407fd6344e6be9a0f1374cf53cf7e5286b67f Mon Sep 17 00:00:00 2001 From: Alexander Klimenko Date: Wed, 8 Dec 2021 17:37:32 +0300 Subject: [PATCH 070/450] Made api_setting.UNICODE_JSON/ensure_ascii affecting json schema (#7991) --- rest_framework/renderers.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index 5b7ba8a8c8..b0ddca2b59 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -1035,13 +1035,16 @@ class CoreAPIJSONOpenAPIRenderer(_BaseOpenAPIRenderer): media_type = 'application/vnd.oai.openapi+json' charset = None format = 'openapi-json' + ensure_ascii = not api_settings.UNICODE_JSON def __init__(self): assert coreapi, 'Using CoreAPIJSONOpenAPIRenderer, but `coreapi` is not installed.' def render(self, data, media_type=None, renderer_context=None): structure = self.get_structure(data) - return json.dumps(structure, indent=4).encode('utf-8') + return json.dumps( + structure, indent=4, + ensure_ascii=self.ensure_ascii).encode('utf-8') class OpenAPIRenderer(BaseRenderer): @@ -1065,6 +1068,9 @@ class JSONOpenAPIRenderer(BaseRenderer): charset = None encoder_class = encoders.JSONEncoder format = 'openapi-json' + ensure_ascii = not api_settings.UNICODE_JSON def render(self, data, media_type=None, renderer_context=None): - return json.dumps(data, cls=self.encoder_class, indent=2).encode('utf-8') + return json.dumps( + data, cls=self.encoder_class, indent=2, + ensure_ascii=self.ensure_ascii).encode('utf-8') From 47ee3fc9a999440e721424aa5100f9eb216f0096 Mon Sep 17 00:00:00 2001 From: Chen Wen Kang <23054115+cwkang1998@users.noreply.github.com> Date: Wed, 8 Dec 2021 22:38:42 +0800 Subject: [PATCH 071/450] Update docs related to coreapi to include deprecation notice (#8186) * Update docs related to coreapi to include deprecation notice * Update docs to use reference to version 3.10 release notes instead of 3.9 --- docs/coreapi/7-schemas-and-client-libraries.md | 11 +++++++++++ docs/coreapi/from-documenting-your-api.md | 11 +++++++++++ docs/coreapi/index.md | 4 ++-- docs/coreapi/schemas.md | 8 ++++++++ 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/docs/coreapi/7-schemas-and-client-libraries.md b/docs/coreapi/7-schemas-and-client-libraries.md index 203d81ea5d..d95019dab6 100644 --- a/docs/coreapi/7-schemas-and-client-libraries.md +++ b/docs/coreapi/7-schemas-and-client-libraries.md @@ -1,5 +1,16 @@ # Tutorial 7: Schemas & client libraries +---- + +**DEPRECATION NOTICE:** Use of CoreAPI-based schemas were deprecated with the introduction of native OpenAPI-based schema generation as of Django REST Framework v3.10. See the [Version 3.10 Release Announcement](../community/3.10-announcement.md) for more details. + +If you are looking for information regarding schemas, you might want to look at these updated resources: + +1. [Schema](../api-guide/schemas.md) +2. [Documenting your API](../topics/documenting-your-api.md) + +---- + A schema is a machine-readable document that describes the available API endpoints, their URLS, and what operations they support. diff --git a/docs/coreapi/from-documenting-your-api.md b/docs/coreapi/from-documenting-your-api.md index 604dfa6686..65ad71c7a7 100644 --- a/docs/coreapi/from-documenting-your-api.md +++ b/docs/coreapi/from-documenting-your-api.md @@ -1,6 +1,17 @@ ## Built-in API documentation +---- + +**DEPRECATION NOTICE:** Use of CoreAPI-based schemas were deprecated with the introduction of native OpenAPI-based schema generation as of Django REST Framework v3.10. See the [Version 3.10 Release Announcement](../community/3.10-announcement.md) for more details. + +If you are looking for information regarding schemas, you might want to look at these updated resources: + +1. [Schema](../api-guide/schemas.md) +2. [Documenting your API](../topics/documenting-your-api.md) + +---- + The built-in API documentation includes: * Documentation of API endpoints. diff --git a/docs/coreapi/index.md b/docs/coreapi/index.md index 9195eb33e4..dbcb115840 100644 --- a/docs/coreapi/index.md +++ b/docs/coreapi/index.md @@ -1,8 +1,8 @@ # Legacy CoreAPI Schemas Docs -Use of CoreAPI-based schemas were deprecated with the introduction of native OpenAPI-based schema generation in Django REST Framework v3.10. +Use of CoreAPI-based schemas were deprecated with the introduction of native OpenAPI-based schema generation as of Django REST Framework v3.10. -See the [Version 3.10 Release Announcement](/community/3.10-announcement.md) for more details. +See the [Version 3.10 Release Announcement](../community/3.10-announcement.md) for more details. ---- diff --git a/docs/coreapi/schemas.md b/docs/coreapi/schemas.md index 653105a7a1..9f1482d2d8 100644 --- a/docs/coreapi/schemas.md +++ b/docs/coreapi/schemas.md @@ -2,6 +2,14 @@ source: schemas.py # Schemas +---- + +**DEPRECATION NOTICE:** Use of CoreAPI-based schemas were deprecated with the introduction of native OpenAPI-based schema generation as of Django REST Framework v3.10. See the [Version 3.10 Release Announcement](../community/3.10-announcement.md) for more details. + +You are probably looking for [this page](../api-guide/schemas.md) if you want latest information regarding schemas. + +---- + > A machine-readable [schema] describes what resources are available via the API, what their URLs are, how they are represented and what operations they support. > > — Heroku, [JSON Schema for the Heroku Platform API][cite] From 6e0cb8a7aa2db1694b46fa3eff5a5271fd7d828e Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 8 Dec 2021 14:53:06 +0000 Subject: [PATCH 072/450] Add CryptAPI sponsorship (#8283) --- README.md | 5 ++++- docs/img/premium/cryptapi-readme.png | Bin 0 -> 17864 bytes 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 docs/img/premium/cryptapi-readme.png diff --git a/README.md b/README.md index 8ba0a5e1d3..4b089469f6 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,9 @@ The initial aim is to provide a single full-time position on REST framework. [![][retool-img]][retool-url] [![][bitio-img]][bitio-url] [![][posthog-img]][posthog-url] +[![][cryptapi-img]][cryptapi-url] -Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry][sentry-url], [Stream][stream-url], [Rollbar][rollbar-url], [ESG][esg-url], [Retool][retool-url], [bit.io][bitio-url], and [PostHog][posthog-url]. +Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry][sentry-url], [Stream][stream-url], [Rollbar][rollbar-url], [ESG][esg-url], [Retool][retool-url], [bit.io][bitio-url], [PostHog][posthog-url], and [CryptAPI][cryptapi-url]. --- @@ -197,6 +198,7 @@ Please see the [security policy][security-policy]. [retool-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/retool-readme.png [bitio-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/bitio-readme.png [posthog-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/posthog-readme.png +[posthog-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/cryptapi-readme.png [sentry-url]: https://getsentry.com/welcome/ [stream-url]: https://getstream.io/?utm_source=drf&utm_medium=sponsorship&utm_content=developer @@ -205,6 +207,7 @@ Please see the [security policy][security-policy]. [retool-url]: https://retool.com/?utm_source=djangorest&utm_medium=sponsorship [bitio-url]: https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship [posthog-url]: https://posthog.com?utm_source=drf&utm_medium=sponsorship&utm_campaign=open-source-sponsorship +[cryptapi-url]: https://cryptapi.io [oauth1-section]: https://www.django-rest-framework.org/api-guide/authentication/#django-rest-framework-oauth [oauth2-section]: https://www.django-rest-framework.org/api-guide/authentication/#django-oauth-toolkit diff --git a/docs/img/premium/cryptapi-readme.png b/docs/img/premium/cryptapi-readme.png new file mode 100644 index 0000000000000000000000000000000000000000..163f6a9ea20f17909e6e38537a627f19e5766a66 GIT binary patch literal 17864 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 G_5WXyfz+@7 literal 0 HcmV?d00001 From d1bab643ab249f2c18cc0e6047033ca726c51605 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 8 Dec 2021 14:53:45 +0000 Subject: [PATCH 073/450] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4b089469f6..8875d650ef 100644 --- a/README.md +++ b/README.md @@ -198,7 +198,7 @@ Please see the [security policy][security-policy]. [retool-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/retool-readme.png [bitio-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/bitio-readme.png [posthog-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/posthog-readme.png -[posthog-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/cryptapi-readme.png +[cryptapi-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/cryptapi-readme.png [sentry-url]: https://getsentry.com/welcome/ [stream-url]: https://getstream.io/?utm_source=drf&utm_medium=sponsorship&utm_content=developer From c05998f5ddedec7c8c012a9be08aa41130a46b75 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 8 Dec 2021 15:11:55 +0000 Subject: [PATCH 074/450] Add CryptAPI to docs homepage --- docs/index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/index.md b/docs/index.md index 54b7881072..a86349df13 100644 --- a/docs/index.md +++ b/docs/index.md @@ -72,11 +72,12 @@ continued development by **[signing up for a paid plan][funding]**.

  • Rollbar
  • Retool
  • bit.io
  • -
  • PostHog
  • +
  • PostHog
  • +
  • CryptAPI
  • -*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=drf&utm_medium=sponsorship&utm_content=developer), [ESG](https://software.esg-usa.com/), [Rollbar](https://rollbar.com/?utm_source=django&utm_medium=sponsorship&utm_campaign=freetrial), [Cadre](https://cadre.com), [Kloudless](https://hubs.ly/H0f30Lf0), [Lights On Software](https://lightsonsoftware.com), [Retool](https://retool.com/?utm_source=djangorest&utm_medium=sponsorship), [bit.io](https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), and [bit.io](https://posthog.com?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship).* +*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=drf&utm_medium=sponsorship&utm_content=developer), [ESG](https://software.esg-usa.com/), [Rollbar](https://rollbar.com/?utm_source=django&utm_medium=sponsorship&utm_campaign=freetrial), [Cadre](https://cadre.com), [Kloudless](https://hubs.ly/H0f30Lf0), [Lights On Software](https://lightsonsoftware.com), [Retool](https://retool.com/?utm_source=djangorest&utm_medium=sponsorship), [bit.io](https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), [PostHog](https://posthog.com?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), and [CryptAPI](https://cryptapi.io).* --- From 1cb3fa2e81ae33d52f4dcfc8b873f7b8093acd50 Mon Sep 17 00:00:00 2001 From: Jet Li Date: Fri, 10 Dec 2021 17:31:05 +0800 Subject: [PATCH 075/450] Test Django 4.0 (#8280) * Test Django 4.0 Django 4.0 released today. * Test Django 4.0 * Test Django 4.0 * Test Django 4.0 --- README.md | 2 +- docs/index.md | 2 +- setup.py | 1 + tox.ini | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8875d650ef..7a899cdb41 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ There is a live example API for testing purposes, [available here][sandbox]. # Requirements * Python (3.5, 3.6, 3.7, 3.8, 3.9) -* Django (2.2, 3.0, 3.1, 3.2) +* Django (2.2, 3.0, 3.1, 3.2, 4.0) We **highly recommend** and only officially support the latest patch release of each Python and Django series. diff --git a/docs/index.md b/docs/index.md index a86349df13..294e1e6d37 100644 --- a/docs/index.md +++ b/docs/index.md @@ -86,7 +86,7 @@ continued development by **[signing up for a paid plan][funding]**. REST framework requires the following: * Python (3.5, 3.6, 3.7, 3.8, 3.9) -* Django (2.2, 3.0, 3.1, 3.2) +* Django (2.2, 3.0, 3.1, 3.2, 4.0) We **highly recommend** and only officially support the latest patch release of each Python and Django series. diff --git a/setup.py b/setup.py index b8e220cb43..394845e148 100755 --- a/setup.py +++ b/setup.py @@ -93,6 +93,7 @@ def get_version(package): 'Framework :: Django :: 3.0', 'Framework :: Django :: 3.1', 'Framework :: Django :: 3.2', + 'Framework :: Django :: 4.0', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', diff --git a/tox.ini b/tox.ini index 1ab5051953..f2ae6cd6bd 100644 --- a/tox.ini +++ b/tox.ini @@ -24,7 +24,7 @@ deps = django22: Django>=2.2,<3.0 django31: Django>=3.1,<3.2 django32: Django>=3.2,<4.0 - django40: Django>=4.0rc1,<5.0 + django40: Django>=4.0,<5.0 djangomain: https://github.com/django/django/archive/main.tar.gz -rrequirements/requirements-testing.txt -rrequirements/requirements-optionals.txt From 16ca0c24d3d6fdf5663f761cadc2d4b1baf8acc8 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Fri, 10 Dec 2021 11:53:48 +0000 Subject: [PATCH 076/450] Add 3.10 to tox.ini and setup.py --- setup.py | 2 +- tox.ini | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 394845e148..c18975ef29 100755 --- a/setup.py +++ b/setup.py @@ -99,11 +99,11 @@ def get_version(package): 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3 :: Only', 'Topic :: Internet :: WWW/HTTP', ], diff --git a/tox.ini b/tox.ini index f2ae6cd6bd..b7d62e0814 100644 --- a/tox.ini +++ b/tox.ini @@ -2,8 +2,8 @@ envlist = {py35,py36,py37}-django22, {py36,py37,py38,py39}-django31, - {py36,py37,py38,py39}-django32, - {py38,py39}-{django40,djangomain}, + {py36,py37,py38,py39,py310}-django32, + {py38,py39,py310}-{django40,djangomain}, base,dist,docs, [travis:env] @@ -54,3 +54,6 @@ ignore_outcome = true [testenv:py39-djangomain] ignore_outcome = true + +[testenv:py310-djangomain] +ignore_outcome = true From 217b0bf3af0b9332023113aab40283ea6929842d Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Fri, 10 Dec 2021 12:04:27 +0000 Subject: [PATCH 077/450] Add Python 3.10 to test matrix (#8287) * Add Python 3.10 to test matrix * Update README, docs homepage to properly reflect Python versions that we test against --- .github/workflows/main.yml | 1 + README.md | 2 +- docs/index.md | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fc166c434d..42fee2a124 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -18,6 +18,7 @@ jobs: - '3.7' - '3.8' - '3.9' + - '3.10' steps: - uses: actions/checkout@v2 diff --git a/README.md b/README.md index 7a899cdb41..18d1364c69 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ There is a live example API for testing purposes, [available here][sandbox]. # Requirements -* Python (3.5, 3.6, 3.7, 3.8, 3.9) +* Python (3.6, 3.7, 3.8, 3.9, 3.10) * Django (2.2, 3.0, 3.1, 3.2, 4.0) We **highly recommend** and only officially support the latest patch release of diff --git a/docs/index.md b/docs/index.md index 294e1e6d37..2954f793ac 100644 --- a/docs/index.md +++ b/docs/index.md @@ -85,7 +85,7 @@ continued development by **[signing up for a paid plan][funding]**. REST framework requires the following: -* Python (3.5, 3.6, 3.7, 3.8, 3.9) +* Python (3.6, 3.7, 3.8, 3.9, 3.10) * Django (2.2, 3.0, 3.1, 3.2, 4.0) We **highly recommend** and only officially support the latest patch release of From 773f479719755193af8b0b7cb9915893738df152 Mon Sep 17 00:00:00 2001 From: Paolo Melchiorre Date: Fri, 10 Dec 2021 16:31:01 +0100 Subject: [PATCH 078/450] Python/Django compatibility updates (#8288) * Update python and django versions in tox.ini * Update python requires in setup.py * Update tox.ini Co-authored-by: Tom Christie --- setup.py | 2 +- tox.ini | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index c18975ef29..210cc9ed0f 100755 --- a/setup.py +++ b/setup.py @@ -83,7 +83,7 @@ def get_version(package): packages=find_packages(exclude=['tests*']), include_package_data=True, install_requires=["django>=2.2", "pytz"], - python_requires=">=3.5", + python_requires=">=3.6", zip_safe=False, classifiers=[ 'Development Status :: 5 - Production/Stable', diff --git a/tox.ini b/tox.ini index b7d62e0814..a41176d72f 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] envlist = - {py35,py36,py37}-django22, + {py36,py37,py38,py39}-django22, {py36,py37,py38,py39}-django31, {py36,py37,py38,py39,py310}-django32, {py38,py39,py310}-{django40,djangomain}, From ba25869045f203c62a0a9ddf5c54b7f882d8308c Mon Sep 17 00:00:00 2001 From: Alexander Clausen Date: Mon, 13 Dec 2021 09:57:55 +0100 Subject: [PATCH 079/450] Fix `REQUIRED_PYTHON` in setup.py (#8292) Just a left-over from #8288 to sync the "Unsupported Python version" message with `python_requires`. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 210cc9ed0f..3c3761c866 100755 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ from setuptools import find_packages, setup CURRENT_PYTHON = sys.version_info[:2] -REQUIRED_PYTHON = (3, 5) +REQUIRED_PYTHON = (3, 6) # This check and everything above must remain compatible with Python 2.7. if CURRENT_PYTHON < REQUIRED_PYTHON: From d0bb4d877f95ea85446b8fc66d247f01337897d2 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Mon, 13 Dec 2021 09:33:03 +0000 Subject: [PATCH 080/450] Tweak test_description (#8293) --- tests/test_description.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_description.py b/tests/test_description.py index 3b7d95e0a1..363ad6513e 100644 --- a/tests/test_description.py +++ b/tests/test_description.py @@ -23,7 +23,7 @@ # hash style header # -``` json +```json [{ "alpha": 1, "beta": "this is a string" @@ -107,7 +107,7 @@ class MockView(APIView): # hash style header # - ``` json + ```json [{ "alpha": 1, "beta": "this is a string" From 9c97946531b85858fcee5df56240de6d29571da2 Mon Sep 17 00:00:00 2001 From: tim-mccurrach <34194722+tim-mccurrach@users.noreply.github.com> Date: Mon, 13 Dec 2021 13:08:40 +0000 Subject: [PATCH 081/450] Make api_view respect standard wrapper assignments (#8291) --- rest_framework/decorators.py | 20 ++++---------------- tests/test_decorators.py | 10 ++++++++++ 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/rest_framework/decorators.py b/rest_framework/decorators.py index 30b9d84d4e..7ba43d37c8 100644 --- a/rest_framework/decorators.py +++ b/rest_framework/decorators.py @@ -7,6 +7,7 @@ methods on viewsets that should be included by routers. """ import types +from functools import update_wrapper from django.forms.utils import pretty_name @@ -22,18 +23,8 @@ def api_view(http_method_names=None): def decorator(func): - WrappedAPIView = type( - 'WrappedAPIView', - (APIView,), - {'__doc__': func.__doc__} - ) - - # Note, the above allows us to set the docstring. - # It is the equivalent of: - # - # class WrappedAPIView(APIView): - # pass - # WrappedAPIView.__doc__ = func.doc <--- Not possible to do this + class WrappedAPIView(APIView): + pass # api_view applied without (method_names) assert not(isinstance(http_method_names, types.FunctionType)), \ @@ -52,9 +43,6 @@ def handler(self, *args, **kwargs): for method in http_method_names: setattr(WrappedAPIView, method.lower(), handler) - WrappedAPIView.__name__ = func.__name__ - WrappedAPIView.__module__ = func.__module__ - WrappedAPIView.renderer_classes = getattr(func, 'renderer_classes', APIView.renderer_classes) @@ -73,7 +61,7 @@ def handler(self, *args, **kwargs): WrappedAPIView.schema = getattr(func, 'schema', APIView.schema) - return WrappedAPIView.as_view() + return update_wrapper(WrappedAPIView.as_view(), func) return decorator diff --git a/tests/test_decorators.py b/tests/test_decorators.py index 99ba13e60c..116d6f1be4 100644 --- a/tests/test_decorators.py +++ b/tests/test_decorators.py @@ -162,6 +162,16 @@ def view(request): assert isinstance(view.cls.schema, CustomSchema) + def test_wrapper_assignments(self): + @api_view(["GET"]) + def test_view(request): + """example docstring""" + pass + + assert test_view.__name__ == "test_view" + assert test_view.__doc__ == "example docstring" + assert test_view.__qualname__ == "DecoratorTestCase.test_wrapper_assignments..test_view" + class ActionDecoratorTestCase(TestCase): From 7a84dc749cbc0db106c1ad40d7776ec307d08559 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Mon, 13 Dec 2021 13:10:17 +0000 Subject: [PATCH 082/450] Version 3.13 (#8285) * Version 3.12.5 * Version 3.13 * Version 3.13 --- docs/community/3.13-announcement.md | 55 +++++++++++++++++++++++++++++ docs/community/release-notes.md | 16 +++++++++ mkdocs.yml | 1 + rest_framework/__init__.py | 2 +- 4 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 docs/community/3.13-announcement.md diff --git a/docs/community/3.13-announcement.md b/docs/community/3.13-announcement.md new file mode 100644 index 0000000000..e2c1fefa64 --- /dev/null +++ b/docs/community/3.13-announcement.md @@ -0,0 +1,55 @@ + + +# Django REST framework 3.13 + +## Django 4.0 support + +The latest release now fully supports Django 4.0. + +Our requirements are now: + +* Python 3.6+ +* Django 4.0, 3.2, 3.1, 2.2 (LTS) + +## Fields arguments are now keyword-only + +When instantiating fields on serializers, you should always use keyword arguments, +such as `serializers.CharField(max_length=200)`. This has always been the case, +and all the examples that we have in the documentation use keyword arguments, +rather than positional arguments. + +From REST framework 3.13 onwards, this is now *explicitly enforced*. + +The most feasible cases where users might be accidentally omitting the keyword arguments +are likely in the composite fields, `ListField` and `DictField`. For instance... + +```python +aliases = serializers.ListField(serializers.CharField()) +``` + +They must now use the more explicit keyword argument style... + +```python +aliases = serializers.ListField(child=serializers.CharField()) +``` + +This change has been made because using positional arguments here *does not* result in the expected behaviour. + +See Pull Request [#7632](https://github.com/encode/django-rest-framework/pull/7632) for more details. diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index baeeaf8741..d3e9dd7cc2 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -34,6 +34,22 @@ You can determine your currently installed version using `pip show`: --- +## 3.13.x series + +### 3.13.0 + +Date: 13th December 2021 + +* Django 4.0 compatability. [#8178] +* Add `max_length` and `min_length` options to `ListSerializer`. [#8165] +* Add `get_request_serializer` and `get_response_serializer` hooks to `AutoSchema`. [#7424] +* Fix OpenAPI representation of null-able read only fields. [#8116] +* Respect `UNICODE_JSON` setting in API schema outputs. [#7991] +* Fix for `RemoteUserAuthentication`. [#7158] +* Make Field constructors keyword-only. [#7632] + +--- + ## 3.12.x series ### 3.12.4 diff --git a/mkdocs.yml b/mkdocs.yml index 573898bca0..439245a8d2 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -66,6 +66,7 @@ nav: - 'Contributing to REST framework': 'community/contributing.md' - 'Project management': 'community/project-management.md' - 'Release Notes': 'community/release-notes.md' + - '3.13 Announcement': 'community/3.13-announcement.md' - '3.12 Announcement': 'community/3.12-announcement.md' - '3.11 Announcement': 'community/3.11-announcement.md' - '3.10 Announcement': 'community/3.10-announcement.md' diff --git a/rest_framework/__init__.py b/rest_framework/__init__.py index 0c75d3617e..88d86c03e5 100644 --- a/rest_framework/__init__.py +++ b/rest_framework/__init__.py @@ -10,7 +10,7 @@ import django __title__ = 'Django REST framework' -__version__ = '3.12.4' +__version__ = '3.13.0' __author__ = 'Tom Christie' __license__ = 'BSD 3-Clause' __copyright__ = 'Copyright 2011-2019 Encode OSS Ltd' From b3beb15b00ce8b251205aa5a344d6e6ddfac74a8 Mon Sep 17 00:00:00 2001 From: Jameel Al-Aziz <247849+jalaziz@users.noreply.github.com> Date: Mon, 13 Dec 2021 06:03:09 -0800 Subject: [PATCH 083/450] Fix CursorPagination parameter schema type (#7708) The CursorPagination's cursor query parameter expects a string and not an integer. Fixes #7691 --- rest_framework/pagination.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest_framework/pagination.py b/rest_framework/pagination.py index dc120d8e86..e815d8d5cf 100644 --- a/rest_framework/pagination.py +++ b/rest_framework/pagination.py @@ -961,7 +961,7 @@ def get_schema_operation_parameters(self, view): 'in': 'query', 'description': force_str(self.cursor_query_description), 'schema': { - 'type': 'integer', + 'type': 'string', }, } ] From f3bb5b9cdc7cb53c27535e4817112e6d2eba08a0 Mon Sep 17 00:00:00 2001 From: Abhineet Date: Mon, 13 Dec 2021 19:34:04 +0530 Subject: [PATCH 084/450] Add missing commas in pagination response samples (#8185) --- docs/api-guide/pagination.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api-guide/pagination.md b/docs/api-guide/pagination.md index 379c1975ad..aadc1bbc7f 100644 --- a/docs/api-guide/pagination.md +++ b/docs/api-guide/pagination.md @@ -78,7 +78,7 @@ This pagination style accepts a single number page number in the request query p HTTP 200 OK { - "count": 1023 + "count": 1023, "next": "https://api.example.org/accounts/?page=5", "previous": "https://api.example.org/accounts/?page=3", "results": [ @@ -126,7 +126,7 @@ This pagination style mirrors the syntax used when looking up multiple database HTTP 200 OK { - "count": 1023 + "count": 1023, "next": "https://api.example.org/accounts/?limit=100&offset=500", "previous": "https://api.example.org/accounts/?limit=100&offset=300", "results": [ From 2d52c9e8bca06d5427596ea7f73b8294aa984036 Mon Sep 17 00:00:00 2001 From: juliangeissler <81534590+juliangeissler@users.noreply.github.com> Date: Mon, 13 Dec 2021 15:08:55 +0100 Subject: [PATCH 085/450] Update Tutorial - quickstart (#7943) * Tutorial - Adjust quickstart Add asgi.py file Also add paragraph for the second user, which is later displayed * Tutorial - Adjust quickstart It seems that there is no CLI command to easily create a user Remove the second user from the Markdown Image next * Tutorial - quickstart - Update browsable API image Only show the admin user New Image has similar width and is compressed --- docs/img/quickstart.png | Bin 39050 -> 27279 bytes docs/tutorial/quickstart.md | 13 +------------ 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/docs/img/quickstart.png b/docs/img/quickstart.png index 5006d60fe0c3f89723524ae5e8d45a115cd8e6d8..e3581f308b75b53443bab679e6ceb5a38b3776fa 100644 GIT binary patch literal 27279 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≥1YOF3HI=x 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 aw|wZ70#vl|AAy6>q{S7)%0%D1`#%6AGMOC! diff --git a/docs/tutorial/quickstart.md b/docs/tutorial/quickstart.md index f4dcc5606c..4fa2fbbe52 100644 --- a/docs/tutorial/quickstart.md +++ b/docs/tutorial/quickstart.md @@ -42,6 +42,7 @@ The project layout should look like: ./tutorial/quickstart/models.py ./tutorial/quickstart/tests.py ./tutorial/quickstart/views.py + ./tutorial/asgi.py ./tutorial/settings.py ./tutorial/urls.py ./tutorial/wsgi.py @@ -176,12 +177,6 @@ We can now access our API, both from the command-line, using tools like `curl`.. "url": "http://127.0.0.1:8000/users/1/", "username": "admin" }, - { - "email": "tom@example.com", - "groups": [], - "url": "http://127.0.0.1:8000/users/2/", - "username": "tom" - } ] } @@ -202,12 +197,6 @@ Or using the [httpie][httpie], command line tool... "url": "http://localhost:8000/users/1/", "username": "paul" }, - { - "email": "tom@example.com", - "groups": [], - "url": "http://127.0.0.1:8000/users/2/", - "username": "tom" - } ] } From a780e80debac0d12bb62fbb0ed98635e601e76de Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 15 Dec 2021 15:16:38 +0000 Subject: [PATCH 086/450] Revert "Make api_view respect standard wrapper assignments (#8291)" (#8297) This reverts commit 9c97946531b85858fcee5df56240de6d29571da2. --- rest_framework/decorators.py | 20 ++++++++++++++++---- tests/test_decorators.py | 10 ---------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/rest_framework/decorators.py b/rest_framework/decorators.py index 7ba43d37c8..30b9d84d4e 100644 --- a/rest_framework/decorators.py +++ b/rest_framework/decorators.py @@ -7,7 +7,6 @@ methods on viewsets that should be included by routers. """ import types -from functools import update_wrapper from django.forms.utils import pretty_name @@ -23,8 +22,18 @@ def api_view(http_method_names=None): def decorator(func): - class WrappedAPIView(APIView): - pass + WrappedAPIView = type( + 'WrappedAPIView', + (APIView,), + {'__doc__': func.__doc__} + ) + + # Note, the above allows us to set the docstring. + # It is the equivalent of: + # + # class WrappedAPIView(APIView): + # pass + # WrappedAPIView.__doc__ = func.doc <--- Not possible to do this # api_view applied without (method_names) assert not(isinstance(http_method_names, types.FunctionType)), \ @@ -43,6 +52,9 @@ def handler(self, *args, **kwargs): for method in http_method_names: setattr(WrappedAPIView, method.lower(), handler) + WrappedAPIView.__name__ = func.__name__ + WrappedAPIView.__module__ = func.__module__ + WrappedAPIView.renderer_classes = getattr(func, 'renderer_classes', APIView.renderer_classes) @@ -61,7 +73,7 @@ def handler(self, *args, **kwargs): WrappedAPIView.schema = getattr(func, 'schema', APIView.schema) - return update_wrapper(WrappedAPIView.as_view(), func) + return WrappedAPIView.as_view() return decorator diff --git a/tests/test_decorators.py b/tests/test_decorators.py index 116d6f1be4..99ba13e60c 100644 --- a/tests/test_decorators.py +++ b/tests/test_decorators.py @@ -162,16 +162,6 @@ def view(request): assert isinstance(view.cls.schema, CustomSchema) - def test_wrapper_assignments(self): - @api_view(["GET"]) - def test_view(request): - """example docstring""" - pass - - assert test_view.__name__ == "test_view" - assert test_view.__doc__ == "example docstring" - assert test_view.__qualname__ == "DecoratorTestCase.test_wrapper_assignments..test_view" - class ActionDecoratorTestCase(TestCase): From f4cf0260bf3c9323e798325702be690ca25949ca Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 15 Dec 2021 15:18:24 +0000 Subject: [PATCH 087/450] Version 3.13.1 --- docs/community/release-notes.md | 6 ++++++ rest_framework/__init__.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index d3e9dd7cc2..8629e4fee7 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -36,6 +36,12 @@ You can determine your currently installed version using `pip show`: ## 3.13.x series +### 3.13.1 + +Date: 15th December 2021 + +* Revert schema naming changes with function based `@api_view`. [#8297] + ### 3.13.0 Date: 13th December 2021 diff --git a/rest_framework/__init__.py b/rest_framework/__init__.py index 88d86c03e5..8b0679ef95 100644 --- a/rest_framework/__init__.py +++ b/rest_framework/__init__.py @@ -10,7 +10,7 @@ import django __title__ = 'Django REST framework' -__version__ = '3.13.0' +__version__ = '3.13.1' __author__ = 'Tom Christie' __license__ = 'BSD 3-Clause' __copyright__ = 'Copyright 2011-2019 Encode OSS Ltd' From 45082b39368729caa70534dde11b0788ef186a37 Mon Sep 17 00:00:00 2001 From: Guilouf Date: Fri, 17 Dec 2021 16:20:14 +0100 Subject: [PATCH 088/450] Fixed missing "fields" meta argument in docs (#8243) * Fixed missing "fields" meta argument in docs, leading to an assertion error * Update docs/api-guide/serializers.md Co-authored-by: Tom Christie Co-authored-by: Tom Christie --- docs/api-guide/serializers.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/api-guide/serializers.md b/docs/api-guide/serializers.md index 4d032bd9ec..da57ac0a49 100644 --- a/docs/api-guide/serializers.md +++ b/docs/api-guide/serializers.md @@ -524,6 +524,7 @@ You can add extra fields to a `ModelSerializer` or override the default fields b class Meta: model = Account + fields = ['url', 'groups'] Extra fields can correspond to any property or callable on the model. From bce9df9b5e0f54a6076519835393fea59accb40c Mon Sep 17 00:00:00 2001 From: Luke Plant Date: Wed, 22 Dec 2021 15:08:58 +0000 Subject: [PATCH 089/450] Make ReturnDict support dict union operators on Python 3.9 and later (#8302) Fixes issue #8301 --- rest_framework/utils/serializer_helpers.py | 17 +++++++++++++++++ tests/test_serializer.py | 22 ++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/rest_framework/utils/serializer_helpers.py b/rest_framework/utils/serializer_helpers.py index 4cd2ada314..54068f5fb0 100644 --- a/rest_framework/utils/serializer_helpers.py +++ b/rest_framework/utils/serializer_helpers.py @@ -1,3 +1,4 @@ +import sys from collections import OrderedDict from collections.abc import Mapping, MutableMapping @@ -28,6 +29,22 @@ def __reduce__(self): # but preserve the raw data. return (dict, (dict(self),)) + if sys.version_info >= (3, 9): + # These are basically copied from OrderedDict, with `serializer` added. + def __or__(self, other): + if not isinstance(other, dict): + return NotImplemented + new = self.__class__(self, serializer=self.serializer) + new.update(other) + return new + + def __ror__(self, other): + if not isinstance(other, dict): + return NotImplemented + new = self.__class__(other, serializer=self.serializer) + new.update(self) + return new + class ReturnList(list): """ diff --git a/tests/test_serializer.py b/tests/test_serializer.py index afefd70e1c..c4c29ba4ad 100644 --- a/tests/test_serializer.py +++ b/tests/test_serializer.py @@ -740,3 +740,25 @@ class TestSerializer(A, B): 'f4': serializers.CharField, 'f5': serializers.CharField, } + + +class Test8301Regression: + @pytest.mark.skipif( + sys.version_info < (3, 9), + reason="dictionary union operator requires Python 3.9 or higher", + ) + def test_ReturnDict_merging(self): + # Serializer.data returns ReturnDict, this is essentially a test for that. + + class TestSerializer(serializers.Serializer): + char = serializers.CharField() + + s = TestSerializer(data={'char': 'x'}) + assert s.is_valid() + assert s.data | {} == {'char': 'x'} + assert s.data | {'other': 'y'} == {'char': 'x', 'other': 'y'} + assert {} | s.data == {'char': 'x'} + assert {'other': 'y'} | s.data == {'char': 'x', 'other': 'y'} + + assert (s.data | {}).__class__ == s.data.__class__ + assert ({} | s.data).__class__ == s.data.__class__ From 5b2abbed25ef41c4cc1b3806037c6bd7631db327 Mon Sep 17 00:00:00 2001 From: kaushik kothiya <46051127+kaushikk25@users.noreply.github.com> Date: Wed, 22 Dec 2021 20:47:57 +0530 Subject: [PATCH 090/450] Correct variable name (#8306) urlpatterns name variable name in space remove. --- docs/api-guide/format-suffixes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api-guide/format-suffixes.md b/docs/api-guide/format-suffixes.md index dfdf24953d..da4a1af78b 100644 --- a/docs/api-guide/format-suffixes.md +++ b/docs/api-guide/format-suffixes.md @@ -62,7 +62,7 @@ Also note that `format_suffix_patterns` does not support descending into `includ If using the `i18n_patterns` function provided by Django, as well as `format_suffix_patterns` you should make sure that the `i18n_patterns` function is applied as the final, or outermost function. For example: - url patterns = [ + urlpatterns = [ … ] From f9ccbad4d910d19e4298300ee90467051fc08f47 Mon Sep 17 00:00:00 2001 From: Suntae Kim Date: Thu, 6 Jan 2022 22:55:44 +0900 Subject: [PATCH 091/450] minor update on tutorial serialization (#8323) --- docs/tutorial/1-serialization.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/tutorial/1-serialization.md b/docs/tutorial/1-serialization.md index 908b7474a0..67746c517e 100644 --- a/docs/tutorial/1-serialization.md +++ b/docs/tutorial/1-serialization.md @@ -45,7 +45,7 @@ We'll need to add our new `snippets` app and the `rest_framework` app to `INSTAL INSTALLED_APPS = [ ... 'rest_framework', - 'snippets.apps.SnippetsConfig', + 'snippets', ] Okay, we're ready to roll. @@ -77,7 +77,7 @@ For the purposes of this tutorial we're going to start by creating a simple `Sni We'll also need to create an initial migration for our snippet model, and sync the database for the first time. python manage.py makemigrations snippets - python manage.py migrate + python manage.py migrate snippets ## Creating a Serializer class @@ -307,8 +307,8 @@ Quit out of the shell... Validating models... 0 errors found - Django version 1.11, using settings 'tutorial.settings' - Development server is running at http://127.0.0.1:8000/ + Django version 4.0,1 using settings 'tutorial.settings' + Starting Development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C. In another terminal window, we can test the server. From c5be86a6dbf3d21b00a296af5994fa075826bf0b Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Tue, 11 Jan 2022 13:01:25 +0000 Subject: [PATCH 092/450] Update sponsor URL (#8328) * Update sponsor URL * Update index.md --- README.md | 2 +- docs/index.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 18d1364c69..d8fd83d672 100644 --- a/README.md +++ b/README.md @@ -201,7 +201,7 @@ Please see the [security policy][security-policy]. [cryptapi-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/cryptapi-readme.png [sentry-url]: https://getsentry.com/welcome/ -[stream-url]: https://getstream.io/?utm_source=drf&utm_medium=sponsorship&utm_content=developer +[stream-url]: https://getstream.io/?utm_source=DjangoRESTFramework&utm_medium=Webpage_Logo_Ad&utm_content=Developer&utm_campaign=DjangoRESTFramework_Jan2022_HomePage [rollbar-url]: https://rollbar.com/?utm_source=django&utm_medium=sponsorship&utm_campaign=freetrial [esg-url]: https://software.esg-usa.com/ [retool-url]: https://retool.com/?utm_source=djangorest&utm_medium=sponsorship diff --git a/docs/index.md b/docs/index.md index 2954f793ac..4871ba4587 100644 --- a/docs/index.md +++ b/docs/index.md @@ -67,7 +67,7 @@ continued development by **[signing up for a paid plan][funding]**.

    -*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=drf&utm_medium=sponsorship&utm_content=developer), [ESG](https://software.esg-usa.com/), [Rollbar](https://rollbar.com/?utm_source=django&utm_medium=sponsorship&utm_campaign=freetrial), [Cadre](https://cadre.com), [Kloudless](https://hubs.ly/H0f30Lf0), [Lights On Software](https://lightsonsoftware.com), [Retool](https://retool.com/?utm_source=djangorest&utm_medium=sponsorship), [bit.io](https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), [PostHog](https://posthog.com?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), and [CryptAPI](https://cryptapi.io).* +*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=DjangoRESTFramework&utm_medium=Webpage_Logo_Ad&utm_content=Developer&utm_campaign=DjangoRESTFramework_Jan2022_HomePage), [ESG](https://software.esg-usa.com/), [Rollbar](https://rollbar.com/?utm_source=django&utm_medium=sponsorship&utm_campaign=freetrial), [Cadre](https://cadre.com), [Kloudless](https://hubs.ly/H0f30Lf0), [Lights On Software](https://lightsonsoftware.com), [Retool](https://retool.com/?utm_source=djangorest&utm_medium=sponsorship), [bit.io](https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), [PostHog](https://posthog.com?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), and [CryptAPI](https://cryptapi.io).* --- From 94eb804abe5d414d59b3a84332e93fbb58811e9c Mon Sep 17 00:00:00 2001 From: Shivendra Pratap Kushwaha <33164379+kushshiv@users.noreply.github.com> Date: Mon, 17 Jan 2022 15:11:23 +0530 Subject: [PATCH 093/450] Update filtering.md (#8331) --- docs/api-guide/filtering.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/api-guide/filtering.md b/docs/api-guide/filtering.md index 512acafbd9..9a4ae27457 100644 --- a/docs/api-guide/filtering.md +++ b/docs/api-guide/filtering.md @@ -224,7 +224,7 @@ The search behavior may be restricted by prepending various characters to the `s * '^' Starts-with search. * '=' Exact matches. -* '@' Full-text search. (Currently only supported Django's [PostgreSQL backend](https://docs.djangoproject.com/en/dev/ref/contrib/postgres/search/).) +* '@' Full-text search. (Currently only supported Django's [PostgreSQL backend][postgres-search].) * '$' Regex search. For example: @@ -374,3 +374,4 @@ The [djangorestframework-word-filter][django-rest-framework-word-search-filter] [drf-url-filter]: https://github.com/manjitkumar/drf-url-filters [HStoreField]: https://docs.djangoproject.com/en/3.0/ref/contrib/postgres/fields/#hstorefield [JSONField]: https://docs.djangoproject.com/en/3.0/ref/contrib/postgres/fields/#jsonfield +[postgres-search]: https://docs.djangoproject.com/en/stable/ref/contrib/postgres/search/ From 02eeb6fa003b5cbe3851ac18392f129d31a1a6bd Mon Sep 17 00:00:00 2001 From: denniskloyn <97915409+denniskloyn@users.noreply.github.com> Date: Tue, 18 Jan 2022 08:52:11 +0000 Subject: [PATCH 094/450] Change `MIDDLEWARE_CLASSES` to `MIDDLEWARE` (#8333) The `MIDDLEWARE_CLASSES` setting got changed to `MIDDLEWARE` in [Django 1.10](https://docs.djangoproject.com/en/1.10/topics/http/middleware/). --- docs/topics/internationalization.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/topics/internationalization.md b/docs/topics/internationalization.md index c20cf9e339..267ccdb377 100644 --- a/docs/topics/internationalization.md +++ b/docs/topics/internationalization.md @@ -17,9 +17,9 @@ You can change the default language by using the standard Django `LANGUAGE_CODE` LANGUAGE_CODE = "es-es" -You can turn on per-request language requests by adding `LocalMiddleware` to your `MIDDLEWARE_CLASSES` setting: +You can turn on per-request language requests by adding `LocalMiddleware` to your `MIDDLEWARE` setting: - MIDDLEWARE_CLASSES = [ + MIDDLEWARE = [ ... 'django.middleware.locale.LocaleMiddleware' ] @@ -90,7 +90,7 @@ If you're only translating custom error messages that exist inside your project ## How the language is determined -If you want to allow per-request language preferences you'll need to include `django.middleware.locale.LocaleMiddleware` in your `MIDDLEWARE_CLASSES` setting. +If you want to allow per-request language preferences you'll need to include `django.middleware.locale.LocaleMiddleware` in your `MIDDLEWARE` setting. You can find more information on how the language preference is determined in the [Django documentation][django-language-preference]. For reference, the method is: From f378f98a401f28df4ef9bdaf3ee56a1017c195ab Mon Sep 17 00:00:00 2001 From: Sevdimali Date: Thu, 27 Jan 2022 19:02:20 +0400 Subject: [PATCH 095/450] if else optimization (#8340) Removed redundant parentheses --- rest_framework/decorators.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest_framework/decorators.py b/rest_framework/decorators.py index 30b9d84d4e..3b572c09ef 100644 --- a/rest_framework/decorators.py +++ b/rest_framework/decorators.py @@ -142,7 +142,7 @@ def action(methods=None, detail=None, url_path=None, url_name=None, **kwargs): how the `@renderer_classes` etc. decorators work for function- based API views. """ - methods = ['get'] if (methods is None) else methods + methods = ['get'] if methods is None else methods methods = [method.lower() for method in methods] assert detail is not None, ( From a5d741aba473d5099d59ff622dbf9702df842441 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Tue, 1 Feb 2022 09:42:43 +0000 Subject: [PATCH 096/450] Update renderers.py --- rest_framework/renderers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index b0ddca2b59..8824fa6601 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -105,7 +105,7 @@ def render(self, data, accepted_media_type=None, renderer_context=None): # We always fully escape \u2028 and \u2029 to ensure we output JSON # that is a strict javascript subset. - # See: http://timelessrepo.com/json-isnt-a-javascript-subset + # See: https://gist.github.com/damncabbage/623b879af56f850a6ddc ret = ret.replace('\u2028', '\\u2028').replace('\u2029', '\\u2029') return ret.encode() From c26ec5a3b8080d528112557f86423aee317ed8a4 Mon Sep 17 00:00:00 2001 From: Bhuwan Panta <67514385+Bhuwan-web@users.noreply.github.com> Date: Tue, 1 Feb 2022 19:33:22 +0545 Subject: [PATCH 097/450] Update 6-viewsets-and-routers.md (#8349) # Basename key missing in the tutorial ```diff +router.register(r'snippets', views.SnippetViewSet,basename="snippets") +router.register(r'users', views.UserViewSet,basename="users") -router.register(r'snippets', views.SnippetViewSet) -router.register(r'users', views.UserViewSet) ``` --- docs/tutorial/6-viewsets-and-routers.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tutorial/6-viewsets-and-routers.md b/docs/tutorial/6-viewsets-and-routers.md index f012677d30..18066f0563 100644 --- a/docs/tutorial/6-viewsets-and-routers.md +++ b/docs/tutorial/6-viewsets-and-routers.md @@ -112,8 +112,8 @@ Here's our re-wired `snippets/urls.py` file. # Create a router and register our viewsets with it. router = DefaultRouter() - router.register(r'snippets', views.SnippetViewSet) - router.register(r'users', views.UserViewSet) + router.register(r'snippets', views.SnippetViewSet,basename="snippets") + router.register(r'users', views.UserViewSet,basename="users") # The API URLs are now determined automatically by the router. urlpatterns = [ From 5bea22f32179276596b4c8152616d54a735a5341 Mon Sep 17 00:00:00 2001 From: Partho Kumar Rajvor Date: Thu, 3 Feb 2022 17:57:47 +0600 Subject: [PATCH 098/450] Added http 102, 103, 421, and 425 status codes (#8350) --- rest_framework/status.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rest_framework/status.py b/rest_framework/status.py index 2561d7689e..7df26b388c 100644 --- a/rest_framework/status.py +++ b/rest_framework/status.py @@ -29,6 +29,8 @@ def is_server_error(code): HTTP_100_CONTINUE = 100 HTTP_101_SWITCHING_PROTOCOLS = 101 +HTTP_102_PROCESSING = 102 +HTTP_103_EARLY_HINTS = 103 HTTP_200_OK = 200 HTTP_201_CREATED = 201 HTTP_202_ACCEPTED = 202 @@ -67,9 +69,11 @@ def is_server_error(code): HTTP_416_REQUESTED_RANGE_NOT_SATISFIABLE = 416 HTTP_417_EXPECTATION_FAILED = 417 HTTP_418_IM_A_TEAPOT = 418 +HTTP_421_MISDIRECTED_REQUEST = 421 HTTP_422_UNPROCESSABLE_ENTITY = 422 HTTP_423_LOCKED = 423 HTTP_424_FAILED_DEPENDENCY = 424 +HTTP_425_TOO_EARLY = 425 HTTP_426_UPGRADE_REQUIRED = 426 HTTP_428_PRECONDITION_REQUIRED = 428 HTTP_429_TOO_MANY_REQUESTS = 429 From efc7c1d664e5909f5f1f4d07a7bb70daef1c396e Mon Sep 17 00:00:00 2001 From: Josh Date: Sat, 12 Feb 2022 10:21:59 -0600 Subject: [PATCH 099/450] Update `accepted_media_type` argument in Renderer docs (#8364) --- docs/api-guide/renderers.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/api-guide/renderers.md b/docs/api-guide/renderers.md index f13b7ba946..67dff441c2 100644 --- a/docs/api-guide/renderers.md +++ b/docs/api-guide/renderers.md @@ -257,7 +257,7 @@ This renderer is used for rendering HTML multipart form data. **It is not suita # Custom renderers -To implement a custom renderer, you should override `BaseRenderer`, set the `.media_type` and `.format` properties, and implement the `.render(self, data, media_type=None, renderer_context=None)` method. +To implement a custom renderer, you should override `BaseRenderer`, set the `.media_type` and `.format` properties, and implement the `.render(self, data, accepted_media_type=None, renderer_context=None)` method. The method should return a bytestring, which will be used as the body of the HTTP response. @@ -267,7 +267,7 @@ The arguments passed to the `.render()` method are: The request data, as set by the `Response()` instantiation. -### `media_type=None` +### `accepted_media_type=None` Optional. If provided, this is the accepted media type, as determined by the content negotiation stage. @@ -291,7 +291,7 @@ The following is an example plaintext renderer that will return a response with media_type = 'text/plain' format = 'txt' - def render(self, data, media_type=None, renderer_context=None): + def render(self, data, accepted_media_type=None, renderer_context=None): return smart_text(data, encoding=self.charset) ## Setting the character set @@ -303,7 +303,7 @@ By default renderer classes are assumed to be using the `UTF-8` encoding. To us format = 'txt' charset = 'iso-8859-1' - def render(self, data, media_type=None, renderer_context=None): + def render(self, data, accepted_media_type=None, renderer_context=None): return data.encode(self.charset) Note that if a renderer class returns a unicode string, then the response content will be coerced into a bytestring by the `Response` class, with the `charset` attribute set on the renderer used to determine the encoding. @@ -318,7 +318,7 @@ In some cases you may also want to set the `render_style` attribute to `'binary' charset = None render_style = 'binary' - def render(self, data, media_type=None, renderer_context=None): + def render(self, data, accepted_media_type=None, renderer_context=None): return data --- From a53e523f939332189b4ba8db7f99758b7d63e59b Mon Sep 17 00:00:00 2001 From: Timothy Allen Date: Tue, 8 Mar 2022 05:39:16 -0500 Subject: [PATCH 100/450] We've renamed the drf-renderer-xlsx package to drf-excel. (#8396) --- docs/api-guide/renderers.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/api-guide/renderers.md b/docs/api-guide/renderers.md index 67dff441c2..685a98f5e0 100644 --- a/docs/api-guide/renderers.md +++ b/docs/api-guide/renderers.md @@ -470,15 +470,15 @@ Modify your REST framework settings. [MessagePack][messagepack] is a fast, efficient binary serialization format. [Juan Riaza][juanriaza] maintains the [djangorestframework-msgpack][djangorestframework-msgpack] package which provides MessagePack renderer and parser support for REST framework. -## XLSX (Binary Spreadsheet Endpoints) +## Microsoft Excel: XLSX (Binary Spreadsheet Endpoints) -XLSX is the world's most popular binary spreadsheet format. [Tim Allen][flipperpa] of [The Wharton School][wharton] maintains [drf-renderer-xlsx][drf-renderer-xlsx], which renders an endpoint as an XLSX spreadsheet using OpenPyXL, and allows the client to download it. Spreadsheets can be styled on a per-view basis. +XLSX is the world's most popular binary spreadsheet format. [Tim Allen][flipperpa] of [The Wharton School][wharton] maintains [drf-excel][drf-excel], which renders an endpoint as an XLSX spreadsheet using OpenPyXL, and allows the client to download it. Spreadsheets can be styled on a per-view basis. #### Installation & configuration Install using pip. - $ pip install drf-renderer-xlsx + $ pip install drf-excel Modify your REST framework settings. @@ -488,15 +488,15 @@ Modify your REST framework settings. 'DEFAULT_RENDERER_CLASSES': [ 'rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', - 'drf_renderer_xlsx.renderers.XLSXRenderer', + 'drf_excel.renderers.XLSXRenderer', ], } To avoid having a file streamed without a filename (which the browser will often default to the filename "download", with no extension), we need to use a mixin to override the `Content-Disposition` header. If no filename is provided, it will default to `export.xlsx`. For example: from rest_framework.viewsets import ReadOnlyModelViewSet - from drf_renderer_xlsx.mixins import XLSXFileMixin - from drf_renderer_xlsx.renderers import XLSXRenderer + from drf_excel.mixins import XLSXFileMixin + from drf_excel.renderers import XLSXRenderer from .models import MyExampleModel from .serializers import MyExampleSerializer @@ -549,7 +549,7 @@ Comma-separated values are a plain-text tabular data format, that can be easily [mjumbewu]: https://github.com/mjumbewu [flipperpa]: https://github.com/flipperpa [wharton]: https://github.com/wharton -[drf-renderer-xlsx]: https://github.com/wharton/drf-renderer-xlsx +[drf-excel]: https://github.com/wharton/drf-excel [vbabiy]: https://github.com/vbabiy [rest-framework-yaml]: https://jpadilla.github.io/django-rest-framework-yaml/ [rest-framework-xml]: https://jpadilla.github.io/django-rest-framework-xml/ From 0e3bc2b1e0189ecc143868ca31dd3393a8aa76f4 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Fri, 11 Mar 2022 10:58:59 +0000 Subject: [PATCH 101/450] Throttling disclaimer (#8403) * Throttling disclaimer * Expand throttling disclaimer. --- docs/api-guide/throttling.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/api-guide/throttling.md b/docs/api-guide/throttling.md index a3e42cacf9..6fab79a2b5 100644 --- a/docs/api-guide/throttling.md +++ b/docs/api-guide/throttling.md @@ -19,6 +19,8 @@ Multiple throttles can also be used if you want to impose both burst throttling Throttles do not necessarily only refer to rate-limiting requests. For example a storage service might also need to throttle against bandwidth, and a paid data service might want to throttle against a certain number of a records being accessed. +**The application-level throttling that REST framework provides should not be considered a security measure or protection against brute forcing or denial-of-service attacks. Deliberately malicious actors will always be able to spoof IP origins, and application-level throttling is intended for implementing policies such as different business tiers and basic protections against service over-use.** + ## How throttling is determined As with permissions and authentication, throttling in REST framework is always defined as a list of classes. @@ -79,7 +81,7 @@ Throttle classes set in this way will override any viewset level class settings. } return Response(content) -##Ā How clients are identified +## How clients are identified The `X-Forwarded-For` HTTP header and `REMOTE_ADDR` WSGI variable are used to uniquely identify client IP addresses for throttling. If the `X-Forwarded-For` header is present then it will be used, otherwise the value of the `REMOTE_ADDR` variable from the WSGI environment will be used. From b3083d83ae197e92591116d1cd4231ae9565dbfa Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 16 Mar 2022 11:35:04 +0000 Subject: [PATCH 102/450] Update index.md (#8411) Update security email. --- docs/index.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/index.md b/docs/index.md index 4871ba4587..e58f24df87 100644 --- a/docs/index.md +++ b/docs/index.md @@ -194,9 +194,11 @@ For priority support please sign up for a [professional or premium sponsorship p ## Security -If you believe you’ve found something in Django REST framework which has security implications, please **do not raise the issue in a public forum**. +Security issues are handled under the supervision of the [Django security team](https://www.djangoproject.com/foundation/teams/#security-team). -Send a description of the issue via email to [rest-framework-security@googlegroups.com][security-mail]. The project maintainers will then work with you to resolve any issues where required, prior to any public disclosure. +**Please report security issues by emailing security@djangoproject.com**. + +The project maintainers will then work with you to resolve any issues where required, prior to any public disclosure. ## License From b521160c92783b9d2a76d6bc3fa30df10d7251ac Mon Sep 17 00:00:00 2001 From: baseplate-admin <61817579+baseplate-admin@users.noreply.github.com> Date: Wed, 16 Mar 2022 17:35:24 +0600 Subject: [PATCH 103/450] Fix code block in `README.md` (#8408) Hi there, The code block below show imply `Python` as it lives in `settings.py` ``` INSTALLED_APPS = [ ... 'rest_framework', ] ``` This pull request essentially fixes that. --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d8fd83d672..bf40167512 100644 --- a/README.md +++ b/README.md @@ -67,11 +67,12 @@ Install using `pip`... pip install djangorestframework Add `'rest_framework'` to your `INSTALLED_APPS` setting. - - INSTALLED_APPS = [ - ... - 'rest_framework', - ] +```python +INSTALLED_APPS = [ + ... + 'rest_framework', +] +``` # Example From 070c32f4a62ef0544f58de404c87d86db36fd825 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 16 Mar 2022 12:12:25 +0000 Subject: [PATCH 104/450] Update SECURITY.md (#8412) --- SECURITY.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/SECURITY.md b/SECURITY.md index d3faefa3cb..a92a1b0cf1 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,8 +2,8 @@ ## Reporting a Vulnerability -If you believe you've found something in Django REST framework which has security implications, please **do not raise the issue in a public forum**. +Security issues are handled under the supervision of the [Django security team](https://www.djangoproject.com/foundation/teams/#security-team). -Send a description of the issue via email to [rest-framework-security@googlegroups.com][security-mail]. The project maintainers will then work with you to resolve any issues where required, prior to any public disclosure. + **Please report security issues by emailing security@djangoproject.com**. -[security-mail]: mailto:rest-framework-security@googlegroups.com + The project maintainers will then work with you to resolve any issues where required, prior to any public disclosure. From 0b88583a101d6eb95bf9bfb5dd9df47014a45a71 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Wed, 23 Mar 2022 12:28:46 +0100 Subject: [PATCH 105/450] Bumped versions in Github actions configuration to v3. (#8414) --- .github/workflows/main.yml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 42fee2a124..c88dc55cd9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,18 +21,13 @@ jobs: - '3.10' steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - - uses: actions/setup-python@v2 + - uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - - - uses: actions/cache@v2 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ hashFiles('requirements/*.txt') }} - restore-keys: | - ${{ runner.os }}-pip- + cache: 'pip' + cache-dependency-path: 'requirements/*.txt' - name: Upgrade packaging tools run: python -m pip install --upgrade pip setuptools virtualenv wheel From 75f19981233c112326b13e4b2abb4b71effd9fbe Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 23 Mar 2022 11:52:26 +0000 Subject: [PATCH 106/450] Update throttling docs (#8424) --- docs/api-guide/throttling.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/api-guide/throttling.md b/docs/api-guide/throttling.md index 6fab79a2b5..719378247d 100644 --- a/docs/api-guide/throttling.md +++ b/docs/api-guide/throttling.md @@ -19,7 +19,9 @@ Multiple throttles can also be used if you want to impose both burst throttling Throttles do not necessarily only refer to rate-limiting requests. For example a storage service might also need to throttle against bandwidth, and a paid data service might want to throttle against a certain number of a records being accessed. -**The application-level throttling that REST framework provides should not be considered a security measure or protection against brute forcing or denial-of-service attacks. Deliberately malicious actors will always be able to spoof IP origins, and application-level throttling is intended for implementing policies such as different business tiers and basic protections against service over-use.** +**The application-level throttling that REST framework provides should not be considered a security measure or protection against brute forcing or denial-of-service attacks. Deliberately malicious actors will always be able to spoof IP origins. In addition to this, the built-in throttling implementations are implemented using Django's cache framework, and use non-atomic operations to determine the request rate, which may sometimes result in some fuzziness. + +The application-level throttling provided by REST framework is intended for implementing policies such as different business tiers and basic protections against service over-use.** ## How throttling is determined From a4334a81260b15df07550f7a9e96c1753beaa269 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 23 Mar 2022 11:52:45 +0000 Subject: [PATCH 107/450] Update contribution guidelines (#8422) --- CONTRIBUTING.md | 6 +++++- docs/community/contributing.md | 15 ++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a7f17b1a35..d567d45a87 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,3 +1,7 @@ # Contributing to REST framework -See the [Contributing guide in the documentation](https://www.django-rest-framework.org/community/contributing/). +At this point in it's lifespan we consider Django REST framework to be essentially feature-complete. We may accept pull requests that track the continued development of Django versions, but would prefer not to accept new features or code formatting changes. + +Apart from minor documentation changes, the [GitHub discussions page](https://github.com/encode/django-rest-framework/discussions) should generally be your starting point. Please only raise an issue or pull request if you've been recommended to do so after discussion. + +The [Contributing guide in the documentation](https://www.django-rest-framework.org/community/contributing/) gives some more information on our process and code of conduct. diff --git a/docs/community/contributing.md b/docs/community/contributing.md index de1f8db0fb..2232bd10b9 100644 --- a/docs/community/contributing.md +++ b/docs/community/contributing.md @@ -6,6 +6,12 @@ There are many ways you can contribute to Django REST framework. We'd like it to be a community-led project, so please get involved and help shape the future of the project. +--- + +**Note**: At this point in it's lifespan we consider Django REST framework to be essentially feature-complete. We may accept pull requests that track the continued development of Django versions, but would prefer not to accept new features or code formatting changes. + +--- + ## Community The most important thing you can do to help push the REST framework project forward is to be actively involved wherever possible. Code contributions are often overvalued as being the primary way to get involved in a project, we don't believe that needs to be the case. @@ -26,14 +32,13 @@ The [Django code of conduct][code-of-conduct] gives a fuller set of guidelines f # Issues -It's really helpful if you can make sure to address issues on the correct channel. Usage questions should be directed to the [discussion group][google-group]. Feature requests, bug reports and other issues should be raised on the GitHub [issue tracker][issues]. +Our contribution process is that the [GitHub discussions page](https://github.com/encode/django-rest-framework/discussions) should generally be your starting point. Please only raise an issue or pull request if you've been recommended to do so after discussion. -Some tips on good issue reporting: +Some tips on good potential issue reporting: * When describing issues try to phrase your ticket in terms of the *behavior* you think needs changing rather than the *code* you think need changing. -* Search the issue list first for related items, and make sure you're running the latest version of REST framework before reporting an issue. -* If reporting a bug, then try to include a pull request with a failing test case. This will help us quickly identify if there is a valid issue, and make sure that it gets fixed more quickly if there is one. -* Feature requests will often be closed with a recommendation that they be implemented outside of the core REST framework library. Keeping new feature requests implemented as third party libraries allows us to keep down the maintenance overhead of REST framework, so that the focus can be on continued stability, bugfixes, and great documentation. +* Search the GitHub project page for related items, and make sure you're running the latest version of REST framework before reporting an issue. +* Feature requests will often be closed with a recommendation that they be implemented outside of the core REST framework library. Keeping new feature requests implemented as third party libraries allows us to keep down the maintenance overhead of REST framework, so that the focus can be on continued stability, bugfixes, and great documentation. At this point in it's lifespan we consider Django REST framework to be essentially feature-complete. * Closing an issue doesn't necessarily mean the end of a discussion. If you believe your issue has been closed incorrectly, explain why and we'll consider if it needs to be reopened. ## Triaging issues From 4464ce7270e6242fec212a4257aa1277d023ff1b Mon Sep 17 00:00:00 2001 From: Shivendra Pratap Kushwaha <33164379+kushshiv@users.noreply.github.com> Date: Wed, 23 Mar 2022 17:37:44 +0530 Subject: [PATCH 108/450] Link added for Test Case Classes and corrected stable link for Refresh from DB (#8381) Link added for Test Case Classes and corrected stable link for Refresh from DB. --- docs/api-guide/testing.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/api-guide/testing.md b/docs/api-guide/testing.md index 62eb8dd1a5..261df80f27 100644 --- a/docs/api-guide/testing.md +++ b/docs/api-guide/testing.md @@ -299,7 +299,7 @@ similar way as with `RequestsClient`. # API Test cases -REST framework includes the following test case classes, that mirror the existing Django test case classes, but use `APIClient` instead of Django's default `Client`. +REST framework includes the following test case classes, that mirror the existing [Django's test case classes][provided_test_case_classes], but use `APIClient` instead of Django's default `Client`. * `APISimpleTestCase` * `APITransactionTestCase` @@ -413,5 +413,6 @@ For example, to add support for using `format='html'` in test requests, you migh [client]: https://docs.djangoproject.com/en/stable/topics/testing/tools/#the-test-client [requestfactory]: https://docs.djangoproject.com/en/stable/topics/testing/advanced/#django.test.client.RequestFactory [configuration]: #configuration -[refresh_from_db_docs]: https://docs.djangoproject.com/en/1.11/ref/models/instances/#django.db.models.Model.refresh_from_db +[refresh_from_db_docs]: https://docs.djangoproject.com/en/stable/ref/models/instances/#django.db.models.Model.refresh_from_db [session_objects]: https://requests.readthedocs.io/en/master/user/advanced/#session-objects +[provided_test_case_classes]: https://docs.djangoproject.com/en/stable/topics/testing/tools/#provided-test-case-classes From 7e4e6d207070d50736827a281b5cb70eb161b782 Mon Sep 17 00:00:00 2001 From: Wagner de Lima Date: Wed, 23 Mar 2022 13:09:05 +0100 Subject: [PATCH 109/450] docs: include drf-social-oauth2 to docs. (#8310) django-rest-framework-social-oauth2 is not a maintained library anymore. --- docs/api-guide/authentication.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/api-guide/authentication.md b/docs/api-guide/authentication.md index 57bbaeb679..2f23e17185 100644 --- a/docs/api-guide/authentication.md +++ b/docs/api-guide/authentication.md @@ -420,9 +420,9 @@ There are currently two forks of this project. * [Django-rest-auth][django-rest-auth] is the original project, [but is not currently receiving updates](https://github.com/Tivix/django-rest-auth/issues/568). * [Dj-rest-auth][dj-rest-auth] is a newer fork of the project. -## django-rest-framework-social-oauth2 +## drf-social-oauth2 -[Django-rest-framework-social-oauth2][django-rest-framework-social-oauth2] library provides an easy way to integrate social plugins (facebook, twitter, google, etc.) to your authentication system and an easy oauth2 setup. With this library, you will be able to authenticate users based on external tokens (e.g. facebook access token), convert these tokens to "in-house" oauth2 tokens and use and generate oauth2 tokens to authenticate your users. +[Drf-social-oauth2][drf-social-oauth2] is a framework that helps you authenticate with major social oauth2 vendors, such as Facebook, Google, Twitter, Orcid, etc. It generates tokens in a JWTed way with an easy setup. ## django-rest-knox @@ -473,7 +473,7 @@ More information can be found in the [Documentation](https://django-rest-durin.r [djoser]: https://github.com/sunscrapers/djoser [django-rest-auth]: https://github.com/Tivix/django-rest-auth [dj-rest-auth]: https://github.com/jazzband/dj-rest-auth -[django-rest-framework-social-oauth2]: https://github.com/PhilipGarnero/django-rest-framework-social-oauth2 +[drf-social-oauth2]: https://github.com/wagnerdelima/drf-social-oauth2 [django-rest-knox]: https://github.com/James1345/django-rest-knox [drfpasswordless]: https://github.com/aaronn/django-rest-framework-passwordless [django-rest-authemail]: https://github.com/celiao/django-rest-authemail From df4d16d2f17bd53626266eb829fed40cf8a73e48 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Thu, 24 Mar 2022 09:23:16 +0000 Subject: [PATCH 110/450] Add StaleBot (#8423) --- .github/stale.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/stale.yml diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 0000000000..f9ebbced4a --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,22 @@ +# Documentation: https://github.com/probot/stale + +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 60 + +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 7 + +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. + +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: false + +# Limit the number of actions per hour, from 1-30. Default is 30 +limitPerRun: 1 + +# Label to use when marking as stale +staleLabel: stale From df92e57ad6c8394ca54654dfc7a2722f822ed8c8 Mon Sep 17 00:00:00 2001 From: hashlash Date: Thu, 24 Mar 2022 16:57:42 +0700 Subject: [PATCH 111/450] Added test client support for HTTP 307 and 308 redirects (#8419) * Add retain test data on follow=True * Simplify TestAPITestClient.test_follow_redirect Inspired from Django's ClientTest.test_follow_307_and_308_redirect * Add 307 308 follow redirect test --- rest_framework/test.py | 12 +++---- tests/test_testing.py | 72 +++++++++++++++++++++--------------------- 2 files changed, 42 insertions(+), 42 deletions(-) diff --git a/rest_framework/test.py b/rest_framework/test.py index 0212348ee0..07df743c8e 100644 --- a/rest_framework/test.py +++ b/rest_framework/test.py @@ -288,7 +288,7 @@ def request(self, **kwargs): def get(self, path, data=None, follow=False, **extra): response = super().get(path, data=data, **extra) if follow: - response = self._handle_redirects(response, **extra) + response = self._handle_redirects(response, data=data, **extra) return response def post(self, path, data=None, format=None, content_type=None, @@ -296,7 +296,7 @@ def post(self, path, data=None, format=None, content_type=None, response = super().post( path, data=data, format=format, content_type=content_type, **extra) if follow: - response = self._handle_redirects(response, **extra) + response = self._handle_redirects(response, data=data, format=format, content_type=content_type, **extra) return response def put(self, path, data=None, format=None, content_type=None, @@ -304,7 +304,7 @@ def put(self, path, data=None, format=None, content_type=None, response = super().put( path, data=data, format=format, content_type=content_type, **extra) if follow: - response = self._handle_redirects(response, **extra) + response = self._handle_redirects(response, data=data, format=format, content_type=content_type, **extra) return response def patch(self, path, data=None, format=None, content_type=None, @@ -312,7 +312,7 @@ def patch(self, path, data=None, format=None, content_type=None, response = super().patch( path, data=data, format=format, content_type=content_type, **extra) if follow: - response = self._handle_redirects(response, **extra) + response = self._handle_redirects(response, data=data, format=format, content_type=content_type, **extra) return response def delete(self, path, data=None, format=None, content_type=None, @@ -320,7 +320,7 @@ def delete(self, path, data=None, format=None, content_type=None, response = super().delete( path, data=data, format=format, content_type=content_type, **extra) if follow: - response = self._handle_redirects(response, **extra) + response = self._handle_redirects(response, data=data, format=format, content_type=content_type, **extra) return response def options(self, path, data=None, format=None, content_type=None, @@ -328,7 +328,7 @@ def options(self, path, data=None, format=None, content_type=None, response = super().options( path, data=data, format=format, content_type=content_type, **extra) if follow: - response = self._handle_redirects(response, **extra) + response = self._handle_redirects(response, data=data, format=format, content_type=content_type, **extra) return response def logout(self): diff --git a/tests/test_testing.py b/tests/test_testing.py index 5066ee142e..b6579e3690 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -1,7 +1,10 @@ +import itertools from io import BytesIO +from unittest.mock import patch import django from django.contrib.auth.models import User +from django.http import HttpResponseRedirect from django.shortcuts import redirect from django.test import TestCase, override_settings from django.urls import path @@ -14,7 +17,7 @@ ) -@api_view(['GET', 'POST']) +@api_view(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS']) def view(request): return Response({ 'auth': request.META.get('HTTP_AUTHORIZATION', b''), @@ -36,6 +39,11 @@ def redirect_view(request): return redirect('/view/') +@api_view(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS']) +def redirect_307_308_view(request, code): + return HttpResponseRedirect('/view/', status=code) + + class BasicSerializer(serializers.Serializer): flag = fields.BooleanField(default=lambda: True) @@ -51,6 +59,7 @@ def post_view(request): path('view/', view), path('session-view/', session_view), path('redirect-view/', redirect_view), + path('redirect-view//', redirect_307_308_view), path('post-view/', post_view) ] @@ -146,41 +155,32 @@ def test_follow_redirect(self): """ Follow redirect by setting follow argument. """ - response = self.client.get('/redirect-view/') - assert response.status_code == 302 - response = self.client.get('/redirect-view/', follow=True) - assert response.redirect_chain is not None - assert response.status_code == 200 - - response = self.client.post('/redirect-view/') - assert response.status_code == 302 - response = self.client.post('/redirect-view/', follow=True) - assert response.redirect_chain is not None - assert response.status_code == 200 - - response = self.client.put('/redirect-view/') - assert response.status_code == 302 - response = self.client.put('/redirect-view/', follow=True) - assert response.redirect_chain is not None - assert response.status_code == 200 - - response = self.client.patch('/redirect-view/') - assert response.status_code == 302 - response = self.client.patch('/redirect-view/', follow=True) - assert response.redirect_chain is not None - assert response.status_code == 200 - - response = self.client.delete('/redirect-view/') - assert response.status_code == 302 - response = self.client.delete('/redirect-view/', follow=True) - assert response.redirect_chain is not None - assert response.status_code == 200 - - response = self.client.options('/redirect-view/') - assert response.status_code == 302 - response = self.client.options('/redirect-view/', follow=True) - assert response.redirect_chain is not None - assert response.status_code == 200 + for method in ('get', 'post', 'put', 'patch', 'delete', 'options'): + with self.subTest(method=method): + req_method = getattr(self.client, method) + response = req_method('/redirect-view/') + assert response.status_code == 302 + response = req_method('/redirect-view/', follow=True) + assert response.redirect_chain is not None + assert response.status_code == 200 + + def test_follow_307_308_preserve_kwargs(self, *mocked_methods): + """ + Follow redirect by setting follow argument, and make sure the following + method called with appropriate kwargs. + """ + methods = ('get', 'post', 'put', 'patch', 'delete', 'options') + codes = (307, 308) + for method, code in itertools.product(methods, codes): + subtest_ctx = self.subTest(method=method, code=code) + patch_ctx = patch.object(self.client, method, side_effect=getattr(self.client, method)) + with subtest_ctx, patch_ctx as req_method: + kwargs = {'data': {'example': 'test'}, 'format': 'json'} + response = req_method('/redirect-view/%s/' % code, follow=True, **kwargs) + assert response.redirect_chain is not None + assert response.status_code == 200 + for _, call_args, call_kwargs in req_method.mock_calls: + assert all(call_kwargs[k] == kwargs[k] for k in kwargs if k in call_kwargs) def test_invalid_multipart_data(self): """ From 86673a337a4fe8861c090b4532379b97e3921fef Mon Sep 17 00:00:00 2001 From: Kojo Idrissa Date: Thu, 14 Apr 2022 15:00:38 -0500 Subject: [PATCH 112/450] corrected grammar to improve clarity (#8466) --- docs/api-guide/relations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api-guide/relations.md b/docs/api-guide/relations.md index 4547253b0a..9c8295b853 100644 --- a/docs/api-guide/relations.md +++ b/docs/api-guide/relations.md @@ -19,7 +19,7 @@ Relational fields are used to represent model relationships. They can be applie --- -**Note:** REST Framework does not attempt to automatically optimize querysets passed to serializers in terms of `select_related` and `prefetch_related` since it would be too much magic. A serializer with a field spanning an orm relation through its source attribute could require an additional database hit to fetch related object from the database. It is the programmer's responsibility to optimize queries to avoid additional database hits which could occur while using such a serializer. +**Note:** REST Framework does not attempt to automatically optimize querysets passed to serializers in terms of `select_related` and `prefetch_related` since it would be too much magic. A serializer with a field spanning an orm relation through its source attribute could require an additional database hit to fetch related objects from the database. It is the programmer's responsibility to optimize queries to avoid additional database hits which could occur while using such a serializer. For example, the following serializer would lead to a database hit each time evaluating the tracks field if it is not prefetched: From b1004a47334a0dd1929e6d50b8f7ff6badc959f4 Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Mon, 25 Apr 2022 01:16:18 +0300 Subject: [PATCH 113/450] docs: Add a note on concurrency and races (#6950) Refs #5181 Co-authored-by: Adam Johnson --- docs/api-guide/throttling.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/api-guide/throttling.md b/docs/api-guide/throttling.md index 719378247d..b875221978 100644 --- a/docs/api-guide/throttling.md +++ b/docs/api-guide/throttling.md @@ -106,6 +106,12 @@ If you need to use a cache other than `'default'`, you can do so by creating a c You'll need to remember to also set your custom throttle class in the `'DEFAULT_THROTTLE_CLASSES'` settings key, or using the `throttle_classes` view attribute. +## A note on concurrency + +The built-in throttle implementations are open to [race conditions][race], so under high concurrency they may allow a few extra requests through. + +If your project relies on guaranteeing the number of requests during concurrent requests, you will need to implement your own throttle class. See [issue #5181][gh5181] for more details. + --- # API Reference @@ -214,3 +220,5 @@ The following is an example of a rate throttle, that will randomly throttle 1 in [identifying-clients]: http://oxpedia.org/wiki/index.php?title=AppSuite:Grizzly#Multiple_Proxies_in_front_of_the_cluster [cache-setting]: https://docs.djangoproject.com/en/stable/ref/settings/#caches [cache-docs]: https://docs.djangoproject.com/en/stable/topics/cache/#setting-up-the-cache +[gh5181]: https://github.com/encode/django-rest-framework/issues/5181 +[race]: https://en.wikipedia.org/wiki/Race_condition#Data_race From cdc956a96caafddcf4ecaf6218e340ebb3ce6d72 Mon Sep 17 00:00:00 2001 From: Q_back Date: Tue, 3 May 2022 12:10:37 +0200 Subject: [PATCH 114/450] Update description of docs/api-guide/fields.md -> required (#8476) fix: Documentation did not point out that default value of `required` `Field` parameter is `False` depending on the Django's `Model.field`. --- docs/api-guide/fields.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api-guide/fields.md b/docs/api-guide/fields.md index 5b9688dcab..e9ef5c6b64 100644 --- a/docs/api-guide/fields.md +++ b/docs/api-guide/fields.md @@ -42,7 +42,7 @@ Set to false if this field is not required to be present during deserialization. Setting this to `False` also allows the object attribute or dictionary key to be omitted from output when serializing the instance. If the key is not present it will simply not be included in the output representation. -Defaults to `True`. +Defaults to `True`. If you're using [Model Serializer](https://www.django-rest-framework.org/api-guide/serializers/#modelserializer) default value will be `False` if you have specified `blank=True` or `default` or `null=True` at your field in your `Model`. ### `default` From 33b86a8e5383ae7c6bba03cf09b12b8f7cadd20f Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Wed, 18 May 2022 13:10:38 +0100 Subject: [PATCH 115/450] Recommend Django REST Knox (#8490) * Recommend Django REST Knox * Pin jinja2 to fix docs builds --- docs/api-guide/authentication.md | 26 +++++++++++++-------- requirements/requirements-documentation.txt | 1 + 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/docs/api-guide/authentication.md b/docs/api-guide/authentication.md index 2f23e17185..fca9374d0a 100644 --- a/docs/api-guide/authentication.md +++ b/docs/api-guide/authentication.md @@ -120,6 +120,14 @@ Unauthenticated responses that are denied permission will result in an `HTTP 401 ## TokenAuthentication +--- + +**Note:** The token authentication provided by Django REST framework is a fairly simple implementation. + +For an implementation which allows more than one token per user, has some tighter security implementation details, and supports token expiry, please see the [Django REST Knox][django-rest-knox] third party package. + +--- + This authentication scheme uses a simple token-based HTTP Authentication scheme. Token authentication is appropriate for client-server setups, such as native desktop and mobile clients. To use the `TokenAuthentication` scheme you'll need to [configure the authentication classes](#setting-the-authentication-scheme) to include `TokenAuthentication`, and additionally include `rest_framework.authtoken` in your `INSTALLED_APPS` setting: @@ -129,11 +137,9 @@ To use the `TokenAuthentication` scheme you'll need to [configure the authentica 'rest_framework.authtoken' ] ---- - -**Note:** Make sure to run `manage.py migrate` after changing your settings. The `rest_framework.authtoken` app provides Django database migrations. +Make sure to run `manage.py migrate` after changing your settings. ---- +The `rest_framework.authtoken` app provides Django database migrations. You'll also need to create tokens for your users. @@ -146,7 +152,7 @@ For clients to authenticate, the token key should be included in the `Authorizat Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b -**Note:** If you want to use a different keyword in the header, such as `Bearer`, simply subclass `TokenAuthentication` and set the `keyword` class variable. +*If you want to use a different keyword in the header, such as `Bearer`, simply subclass `TokenAuthentication` and set the `keyword` class variable.* If successfully authenticated, `TokenAuthentication` provides the following credentials. @@ -355,6 +361,10 @@ The following example will authenticate any incoming request as the user given b The following third-party packages are also available. +## django-rest-knox + +[Django-rest-knox][django-rest-knox] library provides models and views to handle token-based authentication in a more secure and extensible way than the built-in TokenAuthentication scheme - with Single Page Applications and Mobile clients in mind. It provides per-client tokens, and views to generate them when provided some other authentication (usually basic authentication), to delete the token (providing a server enforced logout) and to delete all tokens (logs out all clients that a user is logged into). + ## Django OAuth Toolkit The [Django OAuth Toolkit][django-oauth-toolkit] package provides OAuth 2.0 support and works with Python 3.4+. The package is maintained by [jazzband][jazzband] and uses the excellent [OAuthLib][oauthlib]. The package is well documented, and well supported and is currently our **recommended package for OAuth 2.0 support**. @@ -422,11 +432,7 @@ There are currently two forks of this project. ## drf-social-oauth2 -[Drf-social-oauth2][drf-social-oauth2] is a framework that helps you authenticate with major social oauth2 vendors, such as Facebook, Google, Twitter, Orcid, etc. It generates tokens in a JWTed way with an easy setup. - -## django-rest-knox - -[Django-rest-knox][django-rest-knox] library provides models and views to handle token-based authentication in a more secure and extensible way than the built-in TokenAuthentication scheme - with Single Page Applications and Mobile clients in mind. It provides per-client tokens, and views to generate them when provided some other authentication (usually basic authentication), to delete the token (providing a server enforced logout) and to delete all tokens (logs out all clients that a user is logged into). +[Drf-social-oauth2][drf-social-oauth2] is a framework that helps you authenticate with major social oauth2 vendors, such as Facebook, Google, Twitter, Orcid, etc. It generates tokens in a JWTed way with an easy setup. ## drfpasswordless diff --git a/requirements/requirements-documentation.txt b/requirements/requirements-documentation.txt index ad49287304..cf2dc26e88 100644 --- a/requirements/requirements-documentation.txt +++ b/requirements/requirements-documentation.txt @@ -1,2 +1,3 @@ # MkDocs to build our documentation. mkdocs>=1.1.2,<1.2 +jinja2>=2.10,<3.1.0 # contextfilter has been renamed From ed00e11cc5f338062ff2e90b552643804fc67dba Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Thu, 26 May 2022 10:40:46 +0100 Subject: [PATCH 116/450] Add FEZTO --- README.md | 11 ++++------- docs/img/premium/fezto-readme.png | Bin 0 -> 22592 bytes 2 files changed, 4 insertions(+), 7 deletions(-) create mode 100644 docs/img/premium/fezto-readme.png diff --git a/README.md b/README.md index bf40167512..9476e92d2d 100644 --- a/README.md +++ b/README.md @@ -21,14 +21,13 @@ The initial aim is to provide a single full-time position on REST framework. [![][sentry-img]][sentry-url] [![][stream-img]][stream-url] -[![][rollbar-img]][rollbar-url] -[![][esg-img]][esg-url] [![][retool-img]][retool-url] [![][bitio-img]][bitio-url] [![][posthog-img]][posthog-url] [![][cryptapi-img]][cryptapi-url] +[![][fezto-img]][fezto-url] -Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry][sentry-url], [Stream][stream-url], [Rollbar][rollbar-url], [ESG][esg-url], [Retool][retool-url], [bit.io][bitio-url], [PostHog][posthog-url], and [CryptAPI][cryptapi-url]. +Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry][sentry-url], [Stream][stream-url], [Retool][retool-url], [bit.io][bitio-url], [PostHog][posthog-url], [CryptAPI][cryptapi-url], and [FEZTO][fezto-url]. --- @@ -194,21 +193,19 @@ Please see the [security policy][security-policy]. [sentry-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/sentry-readme.png [stream-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/stream-readme.png -[rollbar-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/rollbar-readme.png -[esg-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/esg-readme.png [retool-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/retool-readme.png [bitio-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/bitio-readme.png [posthog-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/posthog-readme.png [cryptapi-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/cryptapi-readme.png +[fezto-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/fezto-readme.png [sentry-url]: https://getsentry.com/welcome/ [stream-url]: https://getstream.io/?utm_source=DjangoRESTFramework&utm_medium=Webpage_Logo_Ad&utm_content=Developer&utm_campaign=DjangoRESTFramework_Jan2022_HomePage -[rollbar-url]: https://rollbar.com/?utm_source=django&utm_medium=sponsorship&utm_campaign=freetrial -[esg-url]: https://software.esg-usa.com/ [retool-url]: https://retool.com/?utm_source=djangorest&utm_medium=sponsorship [bitio-url]: https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship [posthog-url]: https://posthog.com?utm_source=drf&utm_medium=sponsorship&utm_campaign=open-source-sponsorship [cryptapi-url]: https://cryptapi.io +[fezto-url]: https://www.fezto.xyz/?utm_source=DjangoRESTFramework [oauth1-section]: https://www.django-rest-framework.org/api-guide/authentication/#django-rest-framework-oauth [oauth2-section]: https://www.django-rest-framework.org/api-guide/authentication/#django-oauth-toolkit diff --git a/docs/img/premium/fezto-readme.png b/docs/img/premium/fezto-readme.png new file mode 100644 index 0000000000000000000000000000000000000000..7cc3be6e6c18de05af1c8c2601f4edc627bac0b6 GIT binary patch literal 22592 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 Date: Thu, 26 May 2022 10:48:08 +0100 Subject: [PATCH 117/450] Resize sponsor images --- docs/img/premium/bitio-readme.png | Bin 18526 -> 18479 bytes docs/img/premium/cryptapi-readme.png | Bin 17864 -> 17824 bytes docs/img/premium/posthog-readme.png | Bin 2402 -> 4881 bytes docs/img/premium/retool-readme.png | Bin 8962 -> 8921 bytes docs/img/premium/sentry-readme.png | Bin 24504 -> 24506 bytes docs/img/premium/stream-readme.png | Bin 19213 -> 19170 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/img/premium/bitio-readme.png b/docs/img/premium/bitio-readme.png index c47118cc6956b8a27a1be8edf3b84f8fa119e54c..d5d6259e61946a911024aaf9835d885539323c31 100644 GIT binary patch delta 17556 zcmb?jRZtyWkj5`gaF^f~+}$m>LvRmnxj2I)xJz(%cgw{R+}+(FXmDrw-}hy!wx()o zzK1@iyQWW1b@$h^9tT|$2mLWzRaq7dnFtvQ3JOhLPD&jL3L5?W`4JJ}{jS&iT_{)5*gs+flue8ZBS5RQ1VjZnx4?7 zS)f%CS+6&16wE0+XcP?#>na51}IQqCq7$iQ|cm~p>cQC0C2uD&iE0==}j|K0l_AbxD zQ51~z4)ht~0t%9ej@ z#9(5yZ3`#DVZveB=;H#Y@YANn{{vO;+Ds`#U-PR`s8Qg*%kNTZ2++TS+~jv{^vmK! z=-v(3&3~6SuuuTe{O{HP|G(z^->hL1Spd|Iaw9YXytk^yg)c78%gL*k|BR)GG|v+` zzKl8*H?6lm+WMDZcz=D{A{l`gbsDd$6F0qE&c0kcPr9YIzej%9-(!$rFTJFZ9DYn}*%-@04a4IoJMRNBixQhlghi``zhwAMljt z@VbY7zU3#lak@zmbGLwBYJ<8{zcAHN+{LK){w8p$m2o@%aAesg%nJ7_YPI9TE+LFW?oCr2KuH-VkAHJi~6 z4^D&Vrr&usmEoL(QUiaV(*gCsl5@jB%{iXhKA?!FlGUe@7 zk@Jfv%gk0hqmW}eMWtUHMoiVa>q`Bn9lukByV%dNxdVnB2tia7gqv~*r_Qz zXK4bi|H_sb)sF??DSQ$uN|o5GhFzhyNzC_!zTY+66OaE9t@R_q4vC6arkh;rHoYm_!aX|;t+V8r5mKi9aF4{!^DV86hJV>VKAj0!@trI3f|@Q zj{}t(V;wR16Fo;qdxiLI2Ua`HFN>|DUEhh@il8Z{qp6EqOB%^%y^J>H8aTq7sUAxL zBmzvAT>8!?{95YHlmY0%4xes6ehH|8P zMk>X}%+z({i*56HOD|Er@U)@0V}sYJq7CnH%&kN}kRl+D)veYpx2}b8W^}>RU0#ja zCQ7AcSBLewTqm^$3fu`YoV2z^N&_}0L3EY^kz#8)of$|C9RE-;fibeywbro>ZpV?k zsHI3(Ed{M3U;m1bs^?SfBLu90sk^0wdhB@!59a4V{(creGK>N9O_qxSIR{TSdOJ7Onp-?j`PX4$Fo22T6QK|bE|IC4bsx-XT zw7I8tr${06I7n%?1ZZJ*dINXqEIeds_iQ|_M?Ap6J+&y=HYfG?-Ws-@*fVO9>QHu( zS#Nyq60x?>A6zKtQ~Jh=<~82q$03bZMs|W5nf*ybiY29d!cdQTJFZxBIP8NE$>5#= zEJ|{vM%m5x_i*4XK3}Yd8>ejum7%fZmaVeU$PK1F0;@-Cx!g?9#B5r}kl*ulK ziM8l=P-j^5fr&9Gw0Ebjv-m?Im2hz79go3`;uk(^3_{MOZ~B}ajlPT2U-g#hLfj>R zIyN41pRj^Axdn4X_g};-{kCZ?ry5}Pu`KICCbL-?W6tew2`YTQ`LOUmG^jyrrI+Sd z!eE_prwAZYzRK=DQ_{b?=MtdgtDTnX5c)iGCb+V|DM{Wy2P}-g!flW6MnO(@L>5^z zvT4r>h_UE44@0~~?%)+#e{?z7(sd#oeEPGb5g7|J4KVx1)HRS<{B3!yVsC9IxZgD1 z78zFlIn7<99Rg#NB94`*v2JQ>T~B~*layx$023cYodG7 zM6bxh?;4L5shhC;B9if7SzAz~jfougqpj=L@eqjygjJYK_#@T)7rM)@#*tr!&)jWD6npUWSq{X9Mb z_-OkM3_ZHpfM|zLr7jZpRmxtUA(vs7(|%<9&eyF2@sW-FpU*|C8SF)df_-17<%bQ2 zN9dSE9vcterhT)$Ke9_&6L^eB6MjmV(XIaaxjQ~ou|7QxqETPxDx+CUx~gzCaTDF> zXR)+gGeO({+GW#gh5KMOmr;fY;>f}Pn)xWQ|FJ&BVyH7>neQac>W0S*OazKlL}&RE zSsiM4(IsycN(v-F8}IU< z4B4su^6$mvgYMQWMyo5LSKQE!?#~8YbrGqb6{*s^SruM>kHAWw(Xbuj!P80r*d4XZ zUQT-Jelj=k(Uq1Mva!y9xpf>$6Y@W*Cr9pYfuJMQ0ox1H^~1&03ab-n5XN^g^DS~H zBAYF9#d1lp6v%;0z&0|ut)uS!{-kz)bnC|-RVv<8+}dYf$>7i}UvY8~DK>}lX}odw##9|r^x&R9y;7MeY|5D7A}zA5R*|!x#Y_aY zUEUA~ZpH@`Tu(a%^q1=pLmr#{F%v1ES|HiK25)}4#$^oCoXOwUN~Wj=tS)kJ;--Hv zd$F)=70RQk9v5A^d+<%I-Foy_^{mWhtPCJ{z8{ZTijZe{l#I2$>v zth@CarPfGtD*+Te)^syDV-VJ*SwI8pL$@Hy7I@CCzHk&1CihDyRP}2^{2mv*oTf4G#?bg68Wg>Op&R$= zIJ!$E4dnXt)kq1zCrgxOJ>QnLVqlQbk7fn!w%5Dc9}0!QU@rabcQ!9cypf7fHKLl{ zE&MhDQhX^tP#1;kEBXDn32lzbqIkOd%Y!fWv4&Ml^NDUhls}?S{(NsCTye}?sMFHk zjU;vL1Q`!@Rb~SqX0CyyU;U+G1)nM$8ZU(RA{2(l80x3q#xH~im4+^ zvz2W?FE5)|)xH!&qUAjvRdF$ksHo zu@M%|e>>?96s$7c1b>NYdlDoJojr$^a_*>OC?BLsvONdZquX=5;T9d!w2yT}Vx>c^ z^L5?MsXqKx2y;aYvqP?20kh|$AZzq3_fG0^a_?Q|HrL#-#F#4jk@YOXqDuqH!hzv$ z70hX$yAa3GwYpx>`q%EYSO2tdw??s-4$wflK@iWrg}xx|8P#{Iclc2bJ{Z%{b*thYIa;|(|KoT|!eU(< zM)W?1sYaOFrd}5i=#V3@hXhD2ds&~zJJE2xe)OYo03*GB)S@A`$tOv?yh&ffN9dJ& z13}_`H^<@R>O;YZ=~*un^Rr(FV)l<|8_T!s^ zyq=54C@c4(*xHkUAA*LkAL8BuE9GV7)(hZ7T<^#(_ zx^x3Q4i6&Zy5y(sJ$}zhR{HaJcJ`G41Bbi=e}AX4P0T8L=>SQ23J7j%#Nj3{N>-SM zJC`q~Md=iQoM{O+gH#j89_voTUZ|u;*y-pjooG}}` zlnzp1W<)go2B?{<>Jzk9Cyf4O44ZM{{w^*Pk5)OK*I>NjetYITYLIv~gx_}A3 zG5YBR!Rl}y;yy2-T>nn(AygByx*;JgL6o1`f{v^iqdyipL_Sx}u=<6t3NAUT<+Lv@ zrrllrBL$BK59PHH#EI=9F0N)96W<-Do}{JkzyuJ)vB-Xd4|w{f zs&-I|Ls~)VdHGLMH+ba`Wb?eQ(f~+xcOalm=piygNzka$l9#8wd0u)a(CbplVq|1_ z#juYU$@xdbip|IczzVc}678OSF&uUhsS5STX|Ut#Tn-1s3(vXxNmk*qHlbuqBcbwr zq_w1yv}$gceQK&VpKi917SwJpvI9eKlCUIAKG1y>7zG*+3YjV8Y^u$4^?^^mws<8j z7NVj1R=T05&Ck$SdKZI+Z}QWalEI-M1&*2;M?Y(u%LXkp-j#%SeDn=ty@`;t5G za=HMTCH6UzjR{sVt`xV@Ci6*t2@Fx}!B*SN#DQ=yv8Jm#Y+a>`B4YS!6C|{^~F2dOoV9krnKHAc8DqVxY z#sS$q9(i@^|9&W*VXH?X-_8oQ_-)8eUT|;vR;0~Z>D}V2^`mn1mQpwi9dQj%KhYk&(GPImHrYlzL z&{DpsGdRvwa4eiVJ|5q+=|-=5E5O-5BHUGX6n~jK*$OB+UW9}!M6a7Shw2P(a1Vu@ z4C`3k`0j;b1Dr3e>vM-t=nOb&6#AAHf2D(^Yc`%cLv(C-y~O)0YmZe$=MwzK#{mOY znT!IJ=wOPLU_sw1J-Vu{ZKmCfJUJu1Z!w3Yele9Y^{8?m|9&QvLM8g;22DI{*RoUM zIh~yrjQ7GXB|_`CZa!%C=69&;cXdJ!g-!x_V6$B@oC@qN^qQTrFi;% z;f@`kUFdZ`xn0}e0}6(n;i}Vo&WF1L6X3{3;X3`J#z1AzAC`a9q~Am&+8MFz3hpH9 ze${Cgf=!6?OF4@~)W<1ue4;@UkVWtAS+%|iloY&gAF%p3*0X9~mg7Qtn>Kg@m2An* zEh9uE45Wzv-kW~e?SO6twS*oTXay(YN@<-e{SfB;cs>*8-QatBobo2~n}tt|%!L$2 zmVaN#kpJRF4ybJ)UOb#xcJm?@=$KZ5m=^#AGhLE zOYZB%E+=Ou*usV$@Q^KWu7#{zpU*nJc**mSVv6s4xdv&{_{cg*VJB5O9_$75VdzGs z)b%);V7eNH<9U1bBdd~J9sUzjI7tZ7%x=Nt7JMSvu@cUW{DwO)rb*1FOAa1#^DbCf z1Y&7S*EXy%Ot-S2_b6GGzz?6>J+TZ#Db&7)skZ#H>y0uI=L_n-5S{Di5E}1<34`hYnA9UL!HKIY2x-ttfm^vjVD6np$Nt z?xI$g)93@y-71APjbXKCcxG8}uekPzf3)nwV0K3uQF5^SFNB^iA= z{s{`~xs4E5v?Dg27h?Fb9F>T6jQoq$1Q+}cRk(xpvA-n!*m|=3zBblLlFcYN-`9`% z`up{(O)6*y@(>sKF{pgK^_&wRq@tWw2doiwEo5Bu*Y1y?XyLO}Hgk2xKVL+Hu+WN1 z^es-nJf&f8_=h8s3!#m&e9Em9(txm!lfhnCmG1juA89u8MNw636-yjnL@iKQSTPv> zS*&u2?ZBFf!A>Z7tk7+8jPqJO(WIdle8IoFNGg|!g+cfF)4%*dCn2W5II&>OZ&|*7 z+~4Ga>DQ?`@@||E0|$$Y(jk zykP@jRO@%=p&HMq&`yng4L&b;>f(*>5$AamS`AU4H$!fwYtMrmZ>Ol0R0ct=B9|yt z<`d2i`S0z+<2zWQ+3(Zg-g#%((PvLe28?vcAjilMn#@Pa`!XbLE-La>|0J)m~JaF}Q zG)uTfq{uw6L8#rtDeo2q7p0;RrBD_nj&l?xCFAb3|Fnh(C5beybT1qe5=x+R1HaP`#tG zW(X|6>3#hHqkC@jwZxoh{%`7ONtSMw_=Fd|c~wld9p9@E)}IDvHP@x3U3SDJoa|26 zyUQ4}2r{BZ;EJw&3crr!n^(Qd1M+@noLUz@T0g6oF(l1MKLduvMaUapkX1O~*$gL_ z*AZ)@fchr^d|WGRi#1^{9HZ7w0_8Bj!0N9$`c+bYQW1Q6c&I|6?kx}B-R_~t&;lTD zV{M#ilG}b${D`9XFi`KA*&JV}PIUtov{9iR55yY+C9K)GFi4B;6AWy~KUPt2HdC4V z;`|telPyx+eG$IvR}!VDyuy;U2i>;_=Fp&|2YD*-JeXlw=uiaJsPpnC>w8z5&xn|?S z3Vf0QG=w(ve5HdTYqR4WMuXbfD1KGnf9CnZW1u^x#0A+WHlkwVWZ zft#$(dQ_&ITOcgREM`BCfa**ZQ8d#{Cfbf@J3dY(aN!OJ4qXYUE+{|wjH74vttp2- zoE~m^sc*vm?TKyU7o;Z53-*%v60DG?aWm3 zG~o-2S>rZ8?7u9m3@H>Ew)DHh(LFzOh^`9YfX%t``hiyI-2GSU?v_JYRhfcg90AJq2CiYb!zHj>dr6B{~kd_N^r@$3fo zmrg(8b+)1<<-J0G@>WXLY(44_(iI#D9N#?l>K0oH&;BzUYq6EcDckyc;O5w=6&+)H zU4jel<&pa*c)|4Sz1EvMBYyNHm%*?wc|#U+bJ0!MfZ=DS^0s3jduq6DOH$_Fbs!pv zFJiLlrS6ch&;gyB{}-a*4~@Ui&86rqAElGA&{|$PUg$G6ehGH!3I*$4?atq6ck5mb z1RzjiCr=dE7-16k$swS@1ng}!puCw(-u1i;d946{tE_uSmmVRCbJ~=Y=mz3Mls}n` z9qD$$+xsS5!bsH-cE4njyRmms{Z?RDZP$POnIItO@Ze%4g+M~|+z zkwHM7kGf*4?h&|=$!8*OTo9%uPpB~>mt|VBJv_n#Jme)kK73dU2>+}Q>&~n2DQQCF zZxc@nC+8a^{c5>`zUWIj_XO_IQzV19Wn0hF?POWJDy*7MWaNn2VC`Nio{T= z|3p&P?<-2IM_0Ce+8F7k5&&YNG`J$)TG{%1S?~f)r@SB@iLAp8)@xlC+@V6^#aEQ_ z^`R%FEuvEBB+Lj(Rwe_iZWCjtW#u3bvi(u4)sU6T9+@y-ByteLbbho6%baMWXQhWvs3=`GfMnUQCslD9;Mpe|)ZoG%Zq0?amjz;tlevFrSzVnDD` zxtxaKW`|uwCi`<8^0p?T*zV8d_bs{UXvah2paUfhew3$TSb=_AB(PfkWnNq@cB;FA zl948({{#*$NVqIf|H2ayz${AJzqcU`2R1+A(j0sopMWJgj$AAFbtr4Dd|H3N3BZ3N zj;g9|6a4PU?;>sre2$9nezJAZ7tBk#t4A0L^1NV?!LO0$aokkpFd_fUu8Tj_XDfwi zg}xyP3U((@>@>V6+>Vr8?GIsXa7I?F*EIn1LN4b#i#vnz-18JaDIj}|mj6o2+_1RC z7H)*(UAe4A);P1W$f3>D^ADbLd_u7qX|1#tzBvOPj7Eh3Sn11$zM4FrF5;}{ePz4~ z2@&>ya%7P*$C2L<;RRh^D2MSl<1ikDKo9Z#G9@SBCq~Cj8&?u(=}_g}X=?KI9?YtS zps3W$?(;a`)IPKr;5tt|gCa z>J*IL7nhlUZX!?g`6H4&>ACe}tjNfMl!nHxE0QSrdwNW?O4sC1S2u$HmGSzM$=v7b zBn-K@5O%057HAZ4?_({xcvujM2Ufm9_kN>Kxtz*zPj0B53)v+;!?aM#M@v&>$Kb40 zCLP3Xy8%f83Bh0mV|oV?W;y`rtMy)`J>0B_RX65=2uUd*{#3j*&M4mn_Rg_i?HonXFjxbpBSO0| zC0j1DqSr>{E}$2wLl1#OzoB96M%P{XoQYC<0V;~s$qajy5(f52BKW=HnJ<1Bl zMwP;6=^>!s_!XSD50Mxs5HeYPpxH@!RJCuA9^gp-oiC4eWHD(y+uN2r%QWlshWZPL zjy4iMO^(}{a>69gDdZ>D8!M)wfh?rq^82Kk4-7>t{%S*Wdq#XF;dK@h{9+}0BsFMG zOK3T}8tN8;^ZntAAq{RwRJE39RW5YN)au%$asFw%EG&XIO1M079XX0pZeZ6B;VY`5 ztBK*JRXIh%53FAIxCYuuJ8^HJBzM<uq0d58bf7L{Mi>SI7>kcy@`&^hiN`b&eTbyt9Dn1+pV zBN3n9RI;yik|-1M+t!E$0Cuu?S<7areNL$XaD z#Mg)?!6P~mzH^vRsOUII3xv=Tmy!lw2mByH(Tl9Dy8o!Ej^G0BcLbEG9am`j*PgRw z><4!xBuPj?oaY>Ej7#;0OVa(Wp>sWJzNWPKjm1JAT0XAH{HEMj7EdtxSmn2nZ~UVN zRpGkZPULX0ew^}v&)a#R$}lDaaX`(!S6VtKQeW{qeiF9G5FfCP^Ioxe=96*23hGAMJ5K_5b)zz9+vas>NGZwLo5z5SfrpI zmGEeoZ@T~33)>_CKW!-QfYrg%=>zA6zDmR3vK_}hn1&mW!#)tn9S}1NB19J{o7uSB zSQ;TBAi%dBm57*A&f*0k$-^i?=(G!wcuGMCo=zfB(@v#f-+t>iI^HD@pi3}wd$A-# zx7)jgHWRq@e7P8D{m#v>Cifg!a?;T(JmE$-I%IGyxy_-;m^(rX5+LmNk>cxifE=CUBl0A(IH9((oZPUJ5%rQMG3qzKTTa07U66 z&}gSak@ITx?**^3Az!ao?1fR!Sj}a-k7)W+uM5vXI`9h73?g@1n;f1uXPJD#$KB+s zZ40&UBqE8_f=Er}_eOv)ttXLr68e(GWL7_?(e|y~)X>qNBG*tc%t&)jn4%9Z?FRgX%|lZxd>Vcsop}y{dZjWaw9tIiM%HWh1M9X4fwqLWLabkh#YQd}4FGjUlFbtGa-pXOxHotv;l@YYL zz_Gal)m613W6>_rOh{-7pvU#J?j(vJm5L+aseTJIjM0rw#OZ#5bWP(B#%~H4(G=4)w?;@Ak2xau}v`Yinw z%cfX0>LPRZ7S1A%sf?-i9LegiTgE8<&=m_!b=aJU{{nciMps=w|2kMP&-;1Jdl#18M-%;&F;{-T*H3xvq%UJkf< zpYRu6N^j4m51M_`&I?$9ExVdVsL)4AgQoW=TSRGJu3AWp^3S170%XX+{~8)5q+hM`<`(?J_(E@9O_^M6-(r5uFSofkH!udB zcxVVGMTy}tNHZ~^8vZEh%OAn13esaF+oMW*>JjJ1y*0WzQ`AdaIG29qiOf-3_3rUH zJ9Dz;;9P;XlNxHK5;s0UhKJP5MgiAN?v1$CFVa>1hf8XFgTij5?`!oA!R4rqMA zO@dvU9XlAff zAwh;OvD~v=N*CXssXVB)=PFdsyN&tHAmjkn{1h7GUs0Y%RHj-(uLO>;9P$I~r-ilG z>Iq++l$E=u;7#>N=rJwF5cQSCe)uJ`Hp(Twg^Wg`nC`56%18HWduhSu{9Ube(T;8y z@`A*(E`bf%27+o|5Dv%KRUFq!23x`G9lvqW)^9=~AxW*yaN4gtG$c){{XpQ(nlw3m z;7U`sB}=B6DK(aC6<=u5sSW0wN4n>pN0QM;)dmd}DXqFD6Q{vJ^@wr{^QmHYKzjFI z{)>lC`+Ea3r?lKFo@*}Tp9$nabTJT9=ZaAb6ua>opkeVcZJW+6SJ_F<5B^4MAhjCu ztWjJ=s1SQJ>NjaO$dt>ljh{_0#6si_1Pfh`5N@H zD{QWnev-IIPMmv%M=ShaX;}c_s0&gJaOl>DjFzu?tLp6JZ zOZZaNYRyc%VP(wNZ-?h}_KdEco`?o5-he#*53=2`#)1!7*%~BVpL$-8z=oDle0_Pn zpTj+{G*o|r>?&P6Oi0(H#~s=J+y_c33!7~e0@TS2+)^4j4QD!)bkBGvnL$>(Tn~;7 zCvOI<`?MN+fsjX0iKCh%6wUBR@H0s~oS{TZz*IZR=suVxQ-*L#y%T3xyBLR34=?#A-PFMal${y`=RwqxxLeikEnza0#~(?hrpLD?ZyS)1ELK;J0wH%H zpjBI;t={anDn`%d`BcfE`W80Zh<;un-|H{KFzNvVSXtKO6@!2Ezq@uHR~%l{3ZCJs zuTIn5KO6?1j0R<>Ksxn1-KK-pELk3-L)c|I^NBUJsE^iNz%hNdPN9N=j2HokseZK z*oMEx94E)ly^9Gw=*`&O)BLLGOm;3Oso_ z<0uig9Xq?V`e({+qRIso@O^;X>m?QR**YirBeZpnJ63=+DMO{AiV5Vav04DX;@D|O zW-6Dlk^Im&tAM*V0SH0;GWZ(cy8J8rl7Cr-4t`rE@CrvS`fwv@jxC8{ejrl6D;CO! zruyw}HDT&&n55a`FUs!UY?c}+30$>3N;R}S)_;E1*TC2xK%v25xw=D6&!bi@w01N{ zq@W#^;e`>Q2)2ndiwwzP!YK5fV*=pjjWC=vo>kWq{MR7WDAqcHdlKe=FX?8W;P9Kc z!SphQ1@f};&U_OsD@qMP2mVV)Yh&uz?WfsF1ZTOla7AX;Ke=RupS~l$sxe$Q4VKUM z650$T&&k@O&u=t@2W2UC+pM`Rju?`qVS6Q_3V7!QqQm z;uN3Caqi*rnr`^0f2!;bY=hx?siX(M!GA9dM@BvP7$b5PZ@{k{5%If(-&cHKBXcQR zSI+Amm{QT1o1muz&dDHTyt8;=VXHsmeL6uB{oCYb%WX|y>!{MjL0F&(uC z&|1WkkzSjw{tmq2-kU2nqM9H+-O}~;vMjb+TCman&b<9$U2Gd*yK@yk%sKg$!iZ!8 z-bRkMV6~<`AN9bK<|T$>XTo1j*LEnOV6iMBjN#VCLe5djdwD`?TrQ1yq*p0oPBq|jn6uyHft0&wV za{nPMT#H+UfdXQ4BPilD+F!FjX~)GviGS-AiG>t zMP3(2CoeLA&XhEyzqp%&L0@av{Z(c2+uRYhJMTxD{#WF%5tGi-Oi;%1OP9&$Wy(ds zmff`URq{H}&Y@X+nK@#-+Ml`6C;MIJu=yr5c{X&f(7?v_+f+_(GHHreR}71{e2I(_ zv^(K4#Rb-Tw`YCv$?vDl{*#BW83xfpS03h%4Ez8B6qCKrjP6MK1FHdMp1%5j+Rgck zLouK7^##!5ha#Em;!$dPvtLs&sSE~Cm_mMM%ngh@DoJ^G8v)*jXb-K{+ z{;^?}GUA=W5!HKsMcZ?Tk|l{%vwZ4SvTIdX&#!7R7T%mZ)XEogwJq#64Nr4+eO2&| znQxkZXvl2)pmY*7gA^)D9iP@T2)mx=G4a)aPPu@>W^j%y^u17)+}=P4=P1IN*}E*H zoz=YnoHaviVLz4XZXF)PiMFG)P`FFuedVi35?*Y7T0 ziVi_ZHYvbxx4ay{opsd3!_-2Rdl)>pc8j*7|M>#ejBO5D4WVt!@BTelL`{QKYk0Z3ne9udsH3!p+4l`+yl{O^ zi%PU@$PkJsDOpnl1#%xtv^3Y_Z5E_Z?EiES)ppb4+v}~~pZsMtWVFVOj3~SM{-JdY z*f>R^_(5*}M88US>?tVPeZBt(`}Qyb5BqpQxqot}KtRQQCX)5?IB)Na>W@55*_d+7J z!~&Q@Kp(0S5nj`(?F^*C`;6tj$tBF@?a2s{xQ6=r?Rd^UdSdNgbp1oc|7(_GtSuX-&`AmXYMo(Up(d6q%Fuv@DITscw@)_NOMA z(z^efeN&($iaNtBL#DYk=0zb1Ry@!fM7mrX@zUYMj!hTxWFE#q_<<~otgOrg&52`%wm7f zXxE%hyQuA|Ny68P`|+;%bJR+-q;ASoLe=-9$EzfoY^9o?*14^S5(6$(w+aV()>lxb zM9I}+xm$s4h3mO?L1Zg|U?-0eP=m#wKFBgD7k2IMI#T|Zo4+Q?*06@WfJkeWPPfCe zN-#F*vt83`wTN@rF~!{v$PNnBKya=IAUj1c;1WxP)?K6)WpytuhgwD$*-~61i^a}# zdhzOhEP|BsFPeG0fS9E~obP zfnLU;iHtmo*n=E>o}uf)8_|0anu<`>oFLMf^75WpjbeKL6H;t00k*>UV0yypY>i*E z%fg3uC$w>a``rpNh9r=s1uW0B(w);NM6Zqx;}HgaMla#@)f@W#olmL0Mk{Zt`{;Ni zW^CLi$%WCm1{N_syVcJ+m`MtRl`0iFzkT3S^;p zdz{bCyOg8L-f}qRdMq5dO%$N;HDar!%rYscP*4ko6lY=`qQ4Jv5GYl4{|-WbQT>_M zF`?qZ;2i}7L&V4f$~x!*^6KOX%m2*Mb>gBU%(%s-gV2ltMp)w%wb}ppTxN@NYyGU) zmf>~{2ANbgc)WH_T^nvyE40^W!T9a{4C-_wVE1iY3QiSd$8I43m3nsrPNYzFzq zvTt=v9!9g*n!0MxjKkf=A??RgAQCeW#%XTAWoWeU)A^DT<>DT0iTGeEMA;y2_ph#E zfApN>*#|&2tmOu?;w3LdL$~eO$)b84jknk}?Gk&+_a+YZVq9ldrYuVyYPIl(p@;~n za*9Nfdipwatq#=U)@8@**LUI^^^BB*rJCa_I%bT@IX9Zy4J$b`m0u`X(js00+5B49 z(WegT5Rz6>P^oeJ<3GT+Gyo`tE9{swZp^^-vIn-;^aYQx;g+&i&%#VL+LYeLiJsMb z-AE77W$B#5_~@Tk9mxAgBAC2Uhx|SHc85>wz7HeOQ{LU%f8vi|0R}~N!937k*SOL= zif}Yn5x3K*vIke)sH|ph(t75hbaO9Gbgpvi;3n^NCs0x#el1(M{ol-Xm|>>{cqe>! zw*d{RW;%3n%%OUe99vuK?w>O116rN5%0B|kb_Ap(EO*lRHt1yQIjEi#ZX9fwOyYFi z;2wwVbdry0yh#>qR$sq(8J}025z>@Tx%^$oP%HXA+OfNA(7LMwn~9L$GurSOoN&ce zt(7A8Yp-iNbH~)te6`KaRY|ov*u6>tCKLekJkV!eDjS3w^PvtsUUQo4S9|eOj##>| zFk>L|Ne>Z5gpTq|-}C#`fF_~w!bsP@>HjF1q)QXnSD(|mIk-Igh8rNo`VH5s*vGvGpi>^z zQ2cnSM_THydZ*=btW|um3&fc(YIG5_|G9AW(j@EFPCF=3TFa5A8-J;+qyMHO-1=4r zO+uO3ZN9T0w{m+!7FTDG0$zG}4?I4CfrT7S{kO^a!(i zejVi4_+|Ohu5u=@;IO3*mc)o}K z{>TcGDwx3Kb7%DOX?rI3H_U~^OWB&bss0bnYGX;@a{6R%Vgh%d=4LFy%G${RQ9E-?(O(Ahbkjh{cem zcDE5kwLDIMabLF8(6}Vk(kF&?bAFkR-6niAWQq3jj%uzOa^a%;vgvYwuV|omZwA4uikb>Ui`1mF)AD%SOGwy{L z-$~BvcnrML2Tq6i!l|eKA+q5m6n%D)>AaSHE6Mfhdpym_3*)xyjg&Db=8{T;BgqdM zZDiIa*RB>dhrx(eSt=iYEo9H=l-8G8wBWFMFm!5cZ1bwN4VlAOwGPA>oa4Bw@{TU6dToF?xOq@b z*nJyrJ2x8U!C>IsT%sr{Elry@&ylZ3p6!^K^HBBE&-`@tVEh`7Z*B&SIi=x^VpEQhAFimtG7fO%FCIBqoA!1}ef(nl1kLPdOr(+f(ffU7%zLhGagU@KimqVhjmTkg zwA$wcZ~#T6a6LP&#Bx%6^ji}%LJSPEZg4xtHbiei!hu0)<(*4R^USO(#Adr9&%g!I zRZ|b=vPoe5b)^~@ux5Uoe4ov6J;KOjxk$ZIHCOR-YQ6yZhuy>KO$ddZbi!chArq_F zz0=eGx@lTK!O%^^VbSa`SZ?F;U0lAh!XWwq^MX!NrRm{UQPS3?^fH##!W5hZ{c%sp zTWE7hic1VQrl>yOX*UUMza>2w#iwYf^pcWXKuIw!489!QR^9ZKj|$s)(xp`gNTro0 z@#)nMBBrVEjC&Glk5B6x4K?@0tMRES~6(*BDP;fORIZ&wp z{s4{#xYXNTUm{x^ab-yTqmcL{W;Ffb!`m8igsxju!7}Wa?c(4pVKJ;C=|J6_;uD0SiZ#!kZISFK*Ulbj(ys3 z%Pp+UFB;)Ue$ZvT=+(cRF-1cjrTNVK2&>6P#BJwtq1^V)o+)V(nM_7*8lYj)x(jjjVjL+ z%FnU191xv5*y6uoMsmbA5!WM#;$JncT#qpi>pDKN3tq!_J*>N@YI`oYCm%`}VT@)t zjtRPS|LR?wtLcjt;BXqOK5qchN%{Eu7|Oq`s6bu!8)#i==M#N{iBX-|O18Tfw14@i zH(SGIHFOnL?Od#uL1`+cs>MrWHMJpAky=+>8z<_`4C|7OZa3#$D?ef%3qDU{NTe6`w` zkoUk83UO{_p9Ts^-oY3L3AU>r;_I5&`NVn<4Y6G=S|iZ37NOLmy-Td>O)0w zHzcuNR2;uU(M3^PwwNY?n}ksP!H1mfg~#Y-ydRs z`}xV-r4XP9)4w6&VYO^k^q)L%lOPO537b&wS&Np4Ld%Mloz`$8iZ#ED@=fn9NvrVu zTqU>q8_^kCiiIy!3te<@cQJ6UU3{%6kqbva#q+Il+xHWL?A25mFsr7X&nWqmQt2SR z&|?K%;U^RnY~p`EBbb`0C&7!5ARURO;9`wgRr*KOE97RwgshS@rnEMtTdWj&Cd?q~ zBej_AUI7ySQ2k7h@s^l{t1??wp_czYvzzp#Y6^S6qkA7OR~Nl}VKr4#dbzH%Cdc;A z&r?d&`#Ty!O}x^sW-QaLFO<3Hb96zYM!~twk59b2?5EUtp_y@F@kysLuAlnP_^ft3 zst?LJ^>**c>T<8jH-Gh~RO%Lr*UrDON5-A0Z=b(!CwEn#n~`ncPOtsulXapuojFs- zP_M5heSM42+`b2z?cXJr&zNYtzj5`BIpvRP`0g|=3ZB#IBDnHik^Wi1JrnCMmcImU z=bN%PbVjxQsROIDwXZjRJ@#h*)J+^6CabdiciHKmI%8w4eaGcsmT_U-c3o*gk= zIJ@9`9+SelvqvUW=RJ|z!GA=k-rw##r?+9JlAuq-KE)?(Uzf<7b-(aWj&;J7soX3_ zSCyAPe;EAkyr;K7X4pi9A1W4;L{)g>Ce^2E&vsZ=*66EWR@`_%Fz)-p3nJzZi{~&E zL^uO?%nPwplqaw0u`Cq*8>_~;Zkk0O(~(v07C!j*KtkfFpzQ|1Y!;;kb`I|Jrgmi)~{LDHcj8Fow7nyVH%TK{uA z!fG@%cyUks(Hyh5s?YPk>ODMIKk@IyA88Nx=f8}p=M)Ll+_$weVcvP?a$V{#(%>kxiV&Z)a!zdZwOo<06f4!L@C_L0?2Uy zoilOG5p*s@B6uhArV=L*hpBH18|WMfu3+F6>%>V*g+Uylf+eQF6DTwSW&jHTuE{!c zK^)*Q5o>{GRJb%A0vZ)KBjsfah{Gb2$qPEvLSz}xs6#5=>Of9C&;pNauoDbGPEd=q zQUtk((LIV8bjn04=*$X(lb1L_98QZ%QXarVDKtRmBD8u=^8;}}ZUs7yOt(6d;#jUf a@`qhkO^(>-(f~YWgu&C*&t;ucLK6TrZLfp? delta 17605 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 QcrFQpr>mdKI;Vst0HO}u@&Et; diff --git a/docs/img/premium/cryptapi-readme.png b/docs/img/premium/cryptapi-readme.png index 163f6a9ea20f17909e6e38537a627f19e5766a66..10839b13b4835ea1abf18dbb89b0b8e9c5b6e0fa 100644 GIT binary patch delta 16101 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 Pe1VXcR*|ZfF#Y*I_$DB3 delta 16128 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 ME$q!}&R@OzA3!)iFaQ7m literal 2402 zcmai$dpy(oAIIm?kqEUVMI1|COS+h2jFQXTx1B9IU5@L*+;d$jLMd%T+LDdA=Y9!U zO`&8o_mayIDdv_-A-UVxJbwN6dpyqL@p*i{ulM)+e7#=Z@At0{8Hcslxnuth5D2u> z$`W-31QG!Y^y+po!Cqx!8!Whp6OA#(AW(UN)Vj+y!7LJV#=-^wfTCV04r1+CN^`RT6k>eVYF zBcruOb2^VqMINXu5{N;Nm zqHJ#!fI!<5tx(2xq5U(1Q-n$wWLu}W2EJU6rPH6guvvy==MQlDuww4toQBkVvx=gB zS56+3F_shmk9B{jb$qEsJ>}{Re&V>w8v9)6amureTuaCH72!MtnmxS`rtIbfQ8e9$UWfTA8?9)t?!XzL_}Y0;vq!}N8n+<^&H^8AcCFY4@fNOCpmAEU**@Zl%mYXyJ-UgseWGAX^U|40*v+ zfXPrB@bc8vNIp9*MDikKcSEHwu|0PLVtGV@`6R2u#yu$wc8g+LOl>S2ad zNlq75jnbj!Li+}4Hk8eTq?md-io$%ik8Vif4I@P%8K6VEX@g_9_%%>-ohogqEmNrl zWWBQA=;}w`oukPTxMpbNgHp2WFZqNl@k?fK$Cs8z-!G%x@j@t#e39C>$l zgZtJ{NLKmfDJJjzpM)p-zow=T7c!IAXmXAAa3Y5p5EM;Z>c zOqrTzK1V;PP3h$!@uGlamb4CXM%Fvf9sS;PpLbw?dN;3?t`-CD<~==K$ffI8?KJBV z$O0~1mn?g`EfXfhy#hsnfXpWyk2r#9m7z44^L5I$0d_@TD)J6|dUee^N(9NF1QIdW z7c8JDBqEOj8U4gaCAneZ3DCwRAn``nY$?~Xx0?q80yo_Ds5fs2k_s70qc`RT8gvp` zTmuBwT)-mjhWgODYlM1lVq4QO!B6S!<=I0&irx##s3-*T9Gs{@SVZkJf7v0pGL<_l zXb8u|uZMka*Uc{xCpT@S)B;2g$(-4-#?`YOSJi-6!ACCYAY)CZ^w9FXyr)y%fk_sq zKox&aL8E}ZYC|6VH1U2bs(rYDQ1M*QV@F-69=a(k=n+(2Uo7kG{ah1=LObq9E{v5P z@wfuEW_yVEt^(zEYC-g_v**Icv2Uw@^!n2qc0lw;GgSyEajkc()wgzg zMwx4?mmd*ZSzv-sS*PrXmPwoHCu{J#mEU6f3zKHcfstl%v;N|g@enS*%Ae54Yj}uj z%lRoIKV@-jL<`+`t5!Mnl8aSt*vsldhPXT0zMwmyK)w{wBavcnpw(X>_Rr*HGi{_F z`~2dwy1Ho@*a$7Y4t*SX^aNdgA^0qU)M;vy`e}AuIy{*?sC@UQs*0i<6PuK90L3BJ z#nu2OGmkAxPU;{s;ymw-l>?7T5Yauir!94LW*z^DztyXG!f=i;5#G|L`JzA-TT^-W zHSb#W!vG3FzjIEZh*9}Hxs6!gW;WIx?N=MJ7)t$m?ZjAUQpgDMNjqCLrYR@e8Ul8~ z+Psy>pX(WZ4Gf-eKGYK;%Zx|s>8`Sae1=jgch4VabK)gvvD*?Qv2i2$B^`H8g(+00 z8erfHDDIDivGiM~LzTQwW+tc7($y{!-|=5XBhem8GYv~9_Zy_fot1a<^}{Qx3@~0n zS>`OXmrvV6GeX5woY=vOc{V)GTp#|EC$#lWGRBhLZsws0(C2FIb2}u9JexkenOO|F z=vsfrkhza|EXMqeXfR2?fdF^x_TMO+4y!qL_>}X}ju(jP#?Fv{$BUg`IpaUv(gW(Z zokCrLI|RF?YB?TgRZY3pmX*-GG86H1Km1GAOX<@~Si73-#j?8`_8RP`)TGykPIkqn zX{gu7UC#Qv&Yk?s{{C}%Q7(!+Rdy)#y!uRZldTj(uRUy_tCLN2kOmNxK6b8dBUqK0 z3rQnZ0wp{|!dKhD!%!+SW46E;%T$M|%&@3Z6X%=% E0-^VOCIA2c diff --git a/docs/img/premium/retool-readme.png b/docs/img/premium/retool-readme.png index 56adba04d3acc812f5499e19ecd9c72d3632eb32..9715634274d3a17d50099384201259e6e2d4c172 100644 GIT binary patch literal 8921 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 diff --git a/docs/img/premium/sentry-readme.png b/docs/img/premium/sentry-readme.png index 420e8ee8770b07df2af147c9b95293331158db18..3c8858aca7093410b568e373f0a6ad78469f6c62 100644 GIT binary patch delta 23629 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

    #CGJW@%-Vi_DV!G=cC3Dxq)931F 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 Prr~5I6(!2W4gCKH;KJcb diff --git a/docs/img/premium/stream-readme.png b/docs/img/premium/stream-readme.png index 15da6ba71d07b65483d340b7dd519c6171126eba..a6a7317b7c2ef88c011e7cb8a98b649287ac0657 100644 GIT binary patch literal 19170 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 X{nT9-*dJL4I-tta)z4*}Q$iB}z?3lk From e5fb9af0eaffde683fa0af3987085f86cf0d2640 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Thu, 26 May 2022 11:19:09 +0100 Subject: [PATCH 118/450] Add FEZTO as a premium sponsor --- docs/index.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/index.md b/docs/index.md index e58f24df87..a96f06a30b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -68,16 +68,15 @@ continued development by **[signing up for a paid plan][funding]**.

    -*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=DjangoRESTFramework&utm_medium=Webpage_Logo_Ad&utm_content=Developer&utm_campaign=DjangoRESTFramework_Jan2022_HomePage), [ESG](https://software.esg-usa.com/), [Rollbar](https://rollbar.com/?utm_source=django&utm_medium=sponsorship&utm_campaign=freetrial), [Cadre](https://cadre.com), [Kloudless](https://hubs.ly/H0f30Lf0), [Lights On Software](https://lightsonsoftware.com), [Retool](https://retool.com/?utm_source=djangorest&utm_medium=sponsorship), [bit.io](https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), [PostHog](https://posthog.com?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), and [CryptAPI](https://cryptapi.io).* +*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=DjangoRESTFramework&utm_medium=Webpage_Logo_Ad&utm_content=Developer&utm_campaign=DjangoRESTFramework_Jan2022_HomePage), [Cadre](https://cadre.com), [Kloudless](https://hubs.ly/H0f30Lf0), [Lights On Software](https://lightsonsoftware.com), [Retool](https://retool.com/?utm_source=djangorest&utm_medium=sponsorship), [bit.io](https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), [PostHog](https://posthog.com?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), [CryptAPI](https://cryptapi.io), and [FEZTO](https://www.fezto.xyz/?utm_source=DjangoRESTFramework).* --- From ce21454a431e0feb057ff9069a8295e2b071d79e Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Mon, 6 Jun 2022 11:00:01 +0100 Subject: [PATCH 119/450] Update homepage sponsors --- docs/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index a96f06a30b..aa502a6218 100644 --- a/docs/index.md +++ b/docs/index.md @@ -68,6 +68,7 @@ continued development by **[signing up for a paid plan][funding]**.
    -*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=DjangoRESTFramework&utm_medium=Webpage_Logo_Ad&utm_content=Developer&utm_campaign=DjangoRESTFramework_Jan2022_HomePage), [Cadre](https://cadre.com), [Kloudless](https://hubs.ly/H0f30Lf0), [Lights On Software](https://lightsonsoftware.com), [Retool](https://retool.com/?utm_source=djangorest&utm_medium=sponsorship), [bit.io](https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), [PostHog](https://posthog.com?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), [CryptAPI](https://cryptapi.io), and [FEZTO](https://www.fezto.xyz/?utm_source=DjangoRESTFramework).* +*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=DjangoRESTFramework&utm_medium=Webpage_Logo_Ad&utm_content=Developer&utm_campaign=DjangoRESTFramework_Jan2022_HomePage), [Spacinov](https://www.spacinov.com/), [Retool](https://retool.com/?utm_source=djangorest&utm_medium=sponsorship), [bit.io](https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), [PostHog](https://posthog.com?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), [CryptAPI](https://cryptapi.io), and [FEZTO](https://www.fezto.xyz/?utm_source=DjangoRESTFramework).* --- From 7069083b0f3c67f030dad1b9f5c6c079f30a84d2 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Mon, 6 Jun 2022 11:07:25 +0100 Subject: [PATCH 120/450] Promote Spacinov to premium sponsorship --- README.md | 5 ++++- docs/img/premium/spacinov-readme.png | Bin 0 -> 56997 bytes 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 docs/img/premium/spacinov-readme.png diff --git a/README.md b/README.md index 9476e92d2d..3fbd2f83a1 100644 --- a/README.md +++ b/README.md @@ -21,13 +21,14 @@ The initial aim is to provide a single full-time position on REST framework. [![][sentry-img]][sentry-url] [![][stream-img]][stream-url] +[![][spacinov-img]][spacinov-url] [![][retool-img]][retool-url] [![][bitio-img]][bitio-url] [![][posthog-img]][posthog-url] [![][cryptapi-img]][cryptapi-url] [![][fezto-img]][fezto-url] -Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry][sentry-url], [Stream][stream-url], [Retool][retool-url], [bit.io][bitio-url], [PostHog][posthog-url], [CryptAPI][cryptapi-url], and [FEZTO][fezto-url]. +Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry][sentry-url], [Stream][stream-url], [Spacinov][spacinov-url], [Retool][retool-url], [bit.io][bitio-url], [PostHog][posthog-url], [CryptAPI][cryptapi-url], and [FEZTO][fezto-url]. --- @@ -193,6 +194,7 @@ Please see the [security policy][security-policy]. [sentry-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/sentry-readme.png [stream-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/stream-readme.png +[spacinov-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/spacinov-readme.png [retool-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/retool-readme.png [bitio-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/bitio-readme.png [posthog-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/posthog-readme.png @@ -201,6 +203,7 @@ Please see the [security policy][security-policy]. [sentry-url]: https://getsentry.com/welcome/ [stream-url]: https://getstream.io/?utm_source=DjangoRESTFramework&utm_medium=Webpage_Logo_Ad&utm_content=Developer&utm_campaign=DjangoRESTFramework_Jan2022_HomePage +[spacinov-url]: https://www.spacinov.com/ [retool-url]: https://retool.com/?utm_source=djangorest&utm_medium=sponsorship [bitio-url]: https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship [posthog-url]: https://posthog.com?utm_source=drf&utm_medium=sponsorship&utm_campaign=open-source-sponsorship diff --git a/docs/img/premium/spacinov-readme.png b/docs/img/premium/spacinov-readme.png new file mode 100644 index 0000000000000000000000000000000000000000..20e925211aecab7d5be832d9c4cd96478fb2e909 GIT binary patch literal 56997 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 z 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 literal 0 HcmV?d00001 From 333f1ffb943370816f2e0b0137f0e7cb786a1d51 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Mon, 6 Jun 2022 13:39:06 +0200 Subject: [PATCH 121/450] Confirmed support for Django 4.1. (#8498) --- README.md | 2 +- docs/index.md | 2 +- rest_framework/fields.py | 3 +-- setup.py | 1 + tests/test_encoders.py | 5 +++-- tests/test_fields.py | 4 +++- tests/test_model_serializer.py | 10 +++++++--- tox.ini | 6 ++++-- 8 files changed, 21 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 3fbd2f83a1..e6e43047e9 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ There is a live example API for testing purposes, [available here][sandbox]. # Requirements * Python (3.6, 3.7, 3.8, 3.9, 3.10) -* Django (2.2, 3.0, 3.1, 3.2, 4.0) +* Django (2.2, 3.0, 3.1, 3.2, 4.0, 4.1) We **highly recommend** and only officially support the latest patch release of each Python and Django series. diff --git a/docs/index.md b/docs/index.md index aa502a6218..2f44fae9a0 100644 --- a/docs/index.md +++ b/docs/index.md @@ -86,7 +86,7 @@ continued development by **[signing up for a paid plan][funding]**. REST framework requires the following: * Python (3.6, 3.7, 3.8, 3.9, 3.10) -* Django (2.2, 3.0, 3.1, 3.2, 4.0) +* Django (2.2, 3.0, 3.1, 3.2, 4.0, 4.1) We **highly recommend** and only officially support the latest patch release of each Python and Django series. diff --git a/rest_framework/fields.py b/rest_framework/fields.py index d7e7816cee..8d02b3206e 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -27,7 +27,6 @@ from django.utils.encoding import is_protected_type, smart_str from django.utils.formats import localize_input, sanitize_separators from django.utils.ipv6 import clean_ipv6_address -from django.utils.timezone import utc from django.utils.translation import gettext_lazy as _ from pytz.exceptions import InvalidTimeError @@ -1190,7 +1189,7 @@ def enforce_timezone(self, value): except InvalidTimeError: self.fail('make_aware', timezone=field_timezone) elif (field_timezone is None) and timezone.is_aware(value): - return timezone.make_naive(value, utc) + return timezone.make_naive(value, datetime.timezone.utc) return value def default_timezone(self): diff --git a/setup.py b/setup.py index 3c3761c866..cb6708c6e9 100755 --- a/setup.py +++ b/setup.py @@ -94,6 +94,7 @@ def get_version(package): 'Framework :: Django :: 3.1', 'Framework :: Django :: 3.2', 'Framework :: Django :: 4.0', + 'Framework :: Django :: 4.1', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', diff --git a/tests/test_encoders.py b/tests/test_encoders.py index c104dd5a5d..953e5564bb 100644 --- a/tests/test_encoders.py +++ b/tests/test_encoders.py @@ -1,15 +1,16 @@ -from datetime import date, datetime, timedelta +from datetime import date, datetime, timedelta, timezone from decimal import Decimal from uuid import uuid4 import pytest from django.test import TestCase -from django.utils.timezone import utc from rest_framework.compat import coreapi from rest_framework.utils.encoders import JSONEncoder from rest_framework.utils.serializer_helpers import ReturnList +utc = timezone.utc + class MockList: def tolist(self): diff --git a/tests/test_fields.py b/tests/test_fields.py index 7a5304a82a..ec121c822c 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -9,7 +9,7 @@ from django.core.exceptions import ValidationError as DjangoValidationError from django.http import QueryDict from django.test import TestCase, override_settings -from django.utils.timezone import activate, deactivate, override, utc +from django.utils.timezone import activate, deactivate, override import rest_framework from rest_framework import exceptions, serializers @@ -17,6 +17,8 @@ BuiltinSignatureError, DjangoImageField, is_simple_callable ) +utc = datetime.timezone.utc + # Tests for helper functions. # --------------------------- diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index 7da1b41ae5..abb4830d14 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -12,6 +12,7 @@ import tempfile from collections import OrderedDict +import django import pytest from django.core.exceptions import ImproperlyConfigured from django.core.serializers.json import DjangoJSONEncoder @@ -452,11 +453,14 @@ class Meta: model = ArrayFieldModel fields = ['array_field', 'array_field_with_blank'] + validators = "" + if django.VERSION < (4, 1): + validators = ", validators=[]" expected = dedent(""" TestSerializer(): - array_field = ListField(allow_empty=False, child=CharField(label='Array field', validators=[])) - array_field_with_blank = ListField(child=CharField(label='Array field with blank', validators=[]), required=False) - """) + array_field = ListField(allow_empty=False, child=CharField(label='Array field'%s)) + array_field_with_blank = ListField(child=CharField(label='Array field with blank'%s), required=False) + """ % (validators, validators)) self.assertEqual(repr(TestSerializer()), expected) @pytest.mark.skipif(hasattr(models, 'JSONField'), reason='has models.JSONField') diff --git a/tox.ini b/tox.ini index a41176d72f..c275a0abef 100644 --- a/tox.ini +++ b/tox.ini @@ -3,7 +3,7 @@ envlist = {py36,py37,py38,py39}-django22, {py36,py37,py38,py39}-django31, {py36,py37,py38,py39,py310}-django32, - {py38,py39,py310}-{django40,djangomain}, + {py38,py39,py310}-{django40,django41,djangomain}, base,dist,docs, [travis:env] @@ -12,6 +12,7 @@ DJANGO = 3.1: django31 3.2: django32 4.0: django40 + 4.1: django41 main: djangomain [testenv] @@ -24,7 +25,8 @@ deps = django22: Django>=2.2,<3.0 django31: Django>=3.1,<3.2 django32: Django>=3.2,<4.0 - django40: Django>=4.0,<5.0 + django40: Django>=4.0,<4.1 + django41: Django>=4.1a1,<4.2 djangomain: https://github.com/django/django/archive/main.tar.gz -rrequirements/requirements-testing.txt -rrequirements/requirements-optionals.txt From 5471f8a1d9f54e298b3826a4d910d56ad3c6206c Mon Sep 17 00:00:00 2001 From: Leonardo Gregianin Date: Mon, 6 Jun 2022 07:39:36 -0400 Subject: [PATCH 122/450] Added django-requestlogs in third party packages (#8497) --- docs/community/third-party-packages.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md index e25421f503..d4e590952d 100644 --- a/docs/community/third-party-packages.md +++ b/docs/community/third-party-packages.md @@ -148,6 +148,7 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque * [django-elasticsearch-dsl-drf][django-elasticsearch-dsl-drf] - Integrate Elasticsearch DSL with Django REST framework. Package provides views, serializers, filter backends, pagination and other handy add-ons. * [django-api-client][django-api-client] - DRF client that groups the Endpoint response, for use in CBVs and FBV as if you were working with Django's Native Models.. * [fast-drf] - A model based library for making API development faster and easier. +* [django-requestlogs] - Providing middleware and other helpers for audit logging for REST framework. [cite]: http://www.software-ecosystems.com/Software_Ecosystems/Ecosystems.html [cookiecutter]: https://github.com/jpadilla/cookiecutter-django-rest-framework @@ -237,3 +238,4 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque [graphwrap]: https://github.com/PaulGilmartin/graph_wrap [rest-framework-actions]: https://github.com/AlexisMunera98/rest-framework-actions [fast-drf]: https://github.com/iashraful/fast-drf +[django-requestlogs]: https://github.com/Raekkeri/django-requestlogs From 292ead1fe0f779254590a47a352d545d57132266 Mon Sep 17 00:00:00 2001 From: ghazi-git Date: Mon, 6 Jun 2022 12:46:11 +0100 Subject: [PATCH 123/450] add drf-standardized-errors to third party packages (#8487) Co-authored-by: Tom Christie --- docs/api-guide/exceptions.md | 9 +++++++++ docs/community/third-party-packages.md | 2 ++ 2 files changed, 11 insertions(+) diff --git a/docs/api-guide/exceptions.md b/docs/api-guide/exceptions.md index e62a7e4f9d..347541d56c 100644 --- a/docs/api-guide/exceptions.md +++ b/docs/api-guide/exceptions.md @@ -260,6 +260,15 @@ Set as `handler400`: handler400 = 'rest_framework.exceptions.bad_request' +# Third party packages + +The following third-party packages are also available. + +## DRF Standardized Errors + +The [drf-standardized-errors][drf-standardized-errors] package provides an exception handler that generates the same format for all 4xx and 5xx responses. It is a drop-in replacement for the default exception handler and allows customizing the error response format without rewriting the whole exception handler. The standardized error response format is easier to document and easier to handle by API consumers. + [cite]: https://doughellmann.com/blog/2009/06/19/python-exception-handling-techniques/ [authentication]: authentication.md [django-custom-error-views]: https://docs.djangoproject.com/en/dev/topics/http/views/#customizing-error-views +[drf-standardized-errors]: https://github.com/ghazi-git/drf-standardized-errors diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md index d4e590952d..9513b13d1a 100644 --- a/docs/community/third-party-packages.md +++ b/docs/community/third-party-packages.md @@ -149,6 +149,7 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque * [django-api-client][django-api-client] - DRF client that groups the Endpoint response, for use in CBVs and FBV as if you were working with Django's Native Models.. * [fast-drf] - A model based library for making API development faster and easier. * [django-requestlogs] - Providing middleware and other helpers for audit logging for REST framework. +* [drf-standardized-errors][drf-standardized-errors] - DRF exception handler to standardize error responses for all API endpoints. [cite]: http://www.software-ecosystems.com/Software_Ecosystems/Ecosystems.html [cookiecutter]: https://github.com/jpadilla/cookiecutter-django-rest-framework @@ -239,3 +240,4 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque [rest-framework-actions]: https://github.com/AlexisMunera98/rest-framework-actions [fast-drf]: https://github.com/iashraful/fast-drf [django-requestlogs]: https://github.com/Raekkeri/django-requestlogs +[drf-standardized-errors]: https://github.com/ghazi-git/drf-standardized-errors From 281fc074ba255ed9c5724cc971fa86c78d4dca38 Mon Sep 17 00:00:00 2001 From: Krukov D Date: Mon, 6 Jun 2022 14:54:57 +0300 Subject: [PATCH 124/450] improve performance for noncallble attributes (#8502) Co-authored-by: Dima Kryukov --- rest_framework/fields.py | 3 +++ tests/test_fields.py | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 8d02b3206e..31e5b994cc 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -62,6 +62,9 @@ def is_simple_callable(obj): """ True if the object is a callable that takes no arguments. """ + if not callable(obj): + return False + # Bail early since we cannot inspect built-in function signatures. if inspect.isbuiltin(obj): raise BuiltinSignatureError( diff --git a/tests/test_fields.py b/tests/test_fields.py index ec121c822c..19f7345138 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -75,6 +75,10 @@ def invalid(param, param2='value'): assert is_simple_callable(valid_vargs_kwargs) assert not is_simple_callable(invalid) + @pytest.mark.parametrize('obj', (True, None, "str", b'bytes', 123, 1.23)) + def test_not_callable(self, obj): + assert not is_simple_callable(obj) + def test_4602_regression(self): from django.db import models From bb7dcef19bceae1dd43c19d5a9d9dddc75868c83 Mon Sep 17 00:00:00 2001 From: Daniel Gilge <33256939+dgilge@users.noreply.github.com> Date: Mon, 6 Jun 2022 14:31:00 +0200 Subject: [PATCH 125/450] Update get_schema in docs (#7402) --- docs/api-guide/schemas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api-guide/schemas.md b/docs/api-guide/schemas.md index b9de6745fe..5bdf5ee542 100644 --- a/docs/api-guide/schemas.md +++ b/docs/api-guide/schemas.md @@ -165,7 +165,7 @@ In order to customize the top-level schema, subclass as an argument to the `generateschema` command or `get_schema_view()` helper function. -### get_schema(self, request) +### get_schema(self, request=None, public=False) Returns a dictionary that represents the OpenAPI schema: From 563a20a04098937db1e2c353b2ee6a3059e92ebf Mon Sep 17 00:00:00 2001 From: Alan Crosswell Date: Mon, 6 Jun 2022 08:44:02 -0400 Subject: [PATCH 126/450] make get_reference public (#7515) --- docs/api-guide/schemas.md | 5 +++++ rest_framework/schemas/openapi.py | 14 +++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/docs/api-guide/schemas.md b/docs/api-guide/schemas.md index 5bdf5ee542..004e2d3ce9 100644 --- a/docs/api-guide/schemas.md +++ b/docs/api-guide/schemas.md @@ -313,6 +313,11 @@ Computes the component's name from the serializer. You may see warnings if your API has duplicate component names. If so you can override `get_component_name()` or pass the `component_name` `__init__()` kwarg (see below) to provide different names. +#### `get_reference()` + +Returns a reference to the serializer component. This may be useful if you override `get_schema()`. + + #### `map_serializer()` Maps serializers to their OpenAPI representations. diff --git a/rest_framework/schemas/openapi.py b/rest_framework/schemas/openapi.py index 5e9d59f8bf..122846376f 100644 --- a/rest_framework/schemas/openapi.py +++ b/rest_framework/schemas/openapi.py @@ -636,7 +636,7 @@ def get_response_serializer(self, path, method): """ return self.get_serializer(path, method) - def _get_reference(self, serializer): + def get_reference(self, serializer): return {'$ref': '#/components/schemas/{}'.format(self.get_component_name(serializer))} def get_request_body(self, path, method): @@ -650,7 +650,7 @@ def get_request_body(self, path, method): if not isinstance(serializer, serializers.Serializer): item_schema = {} else: - item_schema = self._get_reference(serializer) + item_schema = self.get_reference(serializer) return { 'content': { @@ -674,7 +674,7 @@ def get_responses(self, path, method): if not isinstance(serializer, serializers.Serializer): item_schema = {} else: - item_schema = self._get_reference(serializer) + item_schema = self.get_reference(serializer) if is_list_view(path, method, self.view): response_schema = { @@ -808,3 +808,11 @@ def _allows_filters(self, path, method): RemovedInDRF314Warning, stacklevel=2 ) return self.allows_filters(path, method) + + def _get_reference(self, serializer): + warnings.warn( + "Method `_get_reference()` has been renamed to `get_reference()`. " + "The old name will be removed in DRF v3.14.", + RemovedInDRF314Warning, stacklevel=2 + ) + return self.get_reference(serializer) From 1396f6886a39acb7fe52729c7b99fe2d7d245dac Mon Sep 17 00:00:00 2001 From: Grigory Date: Mon, 6 Jun 2022 15:53:42 +0300 Subject: [PATCH 127/450] Respect model error_messages for relation (#7599) --- rest_framework/utils/field_mapping.py | 22 ++++++++++++++-------- tests/test_validators.py | 13 +++++++++++++ 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/rest_framework/utils/field_mapping.py b/rest_framework/utils/field_mapping.py index 4f8a4f1926..673821b5e1 100644 --- a/rest_framework/utils/field_mapping.py +++ b/rest_framework/utils/field_mapping.py @@ -217,15 +217,9 @@ def get_field_kwargs(field_name, model_field): ] if getattr(model_field, 'unique', False): - unique_error_message = model_field.error_messages.get('unique', None) - if unique_error_message: - unique_error_message = unique_error_message % { - 'model_name': model_field.model._meta.verbose_name, - 'field_label': model_field.verbose_name - } validator = UniqueValidator( queryset=model_field.model._default_manager, - message=unique_error_message) + message=get_unique_error_message(model_field)) validator_kwarg.append(validator) if validator_kwarg: @@ -281,7 +275,9 @@ def get_relation_kwargs(field_name, relation_info): if model_field.validators: kwargs['validators'] = model_field.validators if getattr(model_field, 'unique', False): - validator = UniqueValidator(queryset=model_field.model._default_manager) + validator = UniqueValidator( + queryset=model_field.model._default_manager, + message=get_unique_error_message(model_field)) kwargs['validators'] = kwargs.get('validators', []) + [validator] if to_many and not model_field.blank: kwargs['allow_empty'] = False @@ -300,3 +296,13 @@ def get_url_kwargs(model_field): return { 'view_name': get_detail_view_name(model_field) } + + +def get_unique_error_message(model_field): + unique_error_message = model_field.error_messages.get('unique', None) + if unique_error_message: + unique_error_message = unique_error_message % { + 'model_name': model_field.model._meta.verbose_name, + 'field_label': model_field.verbose_name + } + return unique_error_message diff --git a/tests/test_validators.py b/tests/test_validators.py index bccbe1514b..39490ac863 100644 --- a/tests/test_validators.py +++ b/tests/test_validators.py @@ -42,6 +42,12 @@ class Meta: fields = ('username', 'email') +class RelatedModelUserSerializer(serializers.ModelSerializer): + class Meta: + model = RelatedModel + fields = ('user',) + + class AnotherUniquenessModel(models.Model): code = models.IntegerField(unique=True) @@ -83,6 +89,13 @@ def test_is_not_unique(self): assert not serializer.is_valid() assert serializer.errors == {'username': ['uniqueness model with this username already exists.']} + def test_relation_is_not_unique(self): + RelatedModel.objects.create(user=self.instance) + data = {'user': self.instance.pk} + serializer = RelatedModelUserSerializer(data=data) + assert not serializer.is_valid() + assert serializer.errors == {'user': ['related model with this user already exists.']} + def test_is_unique(self): data = {'username': 'other'} serializer = UniquenessSerializer(data=data) From f8a03b096be27b4caac25dc119ccda81ad678d4f Mon Sep 17 00:00:00 2001 From: Patrick Daley Date: Tue, 7 Jun 2022 23:35:01 +1200 Subject: [PATCH 128/450] Remove pluralisation from basenames (#8517) HyperlinkIdentityFields in serializers reference 'snippet-highlight' and 'snippet-detail', router basenames updated to match. --- docs/tutorial/6-viewsets-and-routers.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tutorial/6-viewsets-and-routers.md b/docs/tutorial/6-viewsets-and-routers.md index 18066f0563..e12becbd06 100644 --- a/docs/tutorial/6-viewsets-and-routers.md +++ b/docs/tutorial/6-viewsets-and-routers.md @@ -112,8 +112,8 @@ Here's our re-wired `snippets/urls.py` file. # Create a router and register our viewsets with it. router = DefaultRouter() - router.register(r'snippets', views.SnippetViewSet,basename="snippets") - router.register(r'users', views.UserViewSet,basename="users") + router.register(r'snippets', views.SnippetViewSet,basename="snippet") + router.register(r'users', views.UserViewSet,basename="user") # The API URLs are now determined automatically by the router. urlpatterns = [ From e7af8d662bf837e4fee844b28606cda63c0d30a9 Mon Sep 17 00:00:00 2001 From: itsdkey Date: Wed, 8 Jun 2022 14:41:26 +0200 Subject: [PATCH 129/450] tests for #5127 (#7715) * tests for #5127 * Resolves #5127 --- tests/browsable_api/no_auth_urls.py | 3 ++- tests/browsable_api/serializers.py | 8 +++++++ tests/browsable_api/test_browsable_api.py | 27 +++++++++++++++++++++++ tests/browsable_api/views.py | 22 ++++++++++++++++++ tests/models.py | 5 +++++ 5 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 tests/browsable_api/serializers.py diff --git a/tests/browsable_api/no_auth_urls.py b/tests/browsable_api/no_auth_urls.py index 65701c0653..33491ad926 100644 --- a/tests/browsable_api/no_auth_urls.py +++ b/tests/browsable_api/no_auth_urls.py @@ -1,7 +1,8 @@ from django.urls import path -from .views import MockView +from .views import BasicModelWithUsersViewSet, MockView urlpatterns = [ path('', MockView.as_view()), + path('basicviewset', BasicModelWithUsersViewSet.as_view({'get': 'list'})), ] diff --git a/tests/browsable_api/serializers.py b/tests/browsable_api/serializers.py new file mode 100644 index 0000000000..e8a1cdef85 --- /dev/null +++ b/tests/browsable_api/serializers.py @@ -0,0 +1,8 @@ +from rest_framework.serializers import ModelSerializer +from tests.models import BasicModelWithUsers + + +class BasicSerializer(ModelSerializer): + class Meta: + model = BasicModelWithUsers + fields = '__all__' diff --git a/tests/browsable_api/test_browsable_api.py b/tests/browsable_api/test_browsable_api.py index 17644c2ac7..a76d11fe35 100644 --- a/tests/browsable_api/test_browsable_api.py +++ b/tests/browsable_api/test_browsable_api.py @@ -1,8 +1,35 @@ from django.contrib.auth.models import User from django.test import TestCase, override_settings +from rest_framework.permissions import IsAuthenticated from rest_framework.test import APIClient +from .views import BasicModelWithUsersViewSet, OrganizationPermissions + + +@override_settings(ROOT_URLCONF='tests.browsable_api.no_auth_urls') +class AnonymousUserTests(TestCase): + """Tests correct handling of anonymous user request on endpoints with IsAuthenticated permission class.""" + + def setUp(self): + self.client = APIClient(enforce_csrf_checks=True) + + def tearDown(self): + self.client.logout() + + def test_get_raises_typeerror_when_anonymous_user_in_queryset_filter(self): + with self.assertRaises(TypeError): + self.client.get('/basicviewset') + + def test_get_returns_http_forbidden_when_anonymous_user(self): + old_permissions = BasicModelWithUsersViewSet.permission_classes + BasicModelWithUsersViewSet.permission_classes = [IsAuthenticated, OrganizationPermissions] + + response = self.client.get('/basicviewset') + + BasicModelWithUsersViewSet.permission_classes = old_permissions + self.assertEqual(response.status_code, 403) + @override_settings(ROOT_URLCONF='tests.browsable_api.auth_urls') class DropdownWithAuthTests(TestCase): diff --git a/tests/browsable_api/views.py b/tests/browsable_api/views.py index e1cf13a1ec..e73967bf8c 100644 --- a/tests/browsable_api/views.py +++ b/tests/browsable_api/views.py @@ -1,6 +1,16 @@ from rest_framework import authentication, renderers +from rest_framework.permissions import BasePermission from rest_framework.response import Response from rest_framework.views import APIView +from rest_framework.viewsets import ModelViewSet + +from ..models import BasicModelWithUsers +from .serializers import BasicSerializer + + +class OrganizationPermissions(BasePermission): + def has_object_permission(self, request, view, obj): + return request.user.is_staff or (request.user == obj.owner.organization_user.user) class MockView(APIView): @@ -9,3 +19,15 @@ class MockView(APIView): def get(self, request): return Response({'a': 1, 'b': 2, 'c': 3}) + + +class BasicModelWithUsersViewSet(ModelViewSet): + queryset = BasicModelWithUsers.objects.all() + serializer_class = BasicSerializer + permission_classes = [OrganizationPermissions] + # permission_classes = [IsAuthenticated, OrganizationPermissions] + renderer_classes = (renderers.BrowsableAPIRenderer, renderers.JSONRenderer) + + def get_queryset(self): + qs = super().get_queryset().filter(users=self.request.user) + return qs diff --git a/tests/models.py b/tests/models.py index afe649760a..666e9f0031 100644 --- a/tests/models.py +++ b/tests/models.py @@ -1,5 +1,6 @@ import uuid +from django.contrib.auth.models import User from django.db import models from django.utils.translation import gettext_lazy as _ @@ -33,6 +34,10 @@ class ManyToManySource(RESTFrameworkModel): targets = models.ManyToManyField(ManyToManyTarget, related_name='sources') +class BasicModelWithUsers(RESTFrameworkModel): + users = models.ManyToManyField(User) + + # ForeignKey class ForeignKeyTarget(RESTFrameworkModel): name = models.CharField(max_length=100) From 26830c3d2d45a60385d1166c37a031e2e75cf858 Mon Sep 17 00:00:00 2001 From: Marti Raudsepp Date: Wed, 8 Jun 2022 16:37:46 +0300 Subject: [PATCH 130/450] Fix QueryDict type error in test (#8475) QueryDict takes a `str` argument. Discovered while working on djangorestframework-stubs. --- tests/test_fields.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_fields.py b/tests/test_fields.py index 19f7345138..cbec79119a 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1865,9 +1865,9 @@ class TestMultipleChoiceField(FieldValues): def test_against_partial_and_full_updates(self): field = serializers.MultipleChoiceField(choices=(('a', 'a'), ('b', 'b'))) field.partial = False - assert field.get_value(QueryDict({})) == [] + assert field.get_value(QueryDict('')) == [] field.partial = True - assert field.get_value(QueryDict({})) == rest_framework.fields.empty + assert field.get_value(QueryDict('')) == rest_framework.fields.empty class TestEmptyMultipleChoiceField(FieldValues): From 5185cc934862a5ab13316c85402c12a6d744f94c Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Wed, 8 Jun 2022 15:46:19 +0200 Subject: [PATCH 131/450] Handle unset fields with 'many=True' (#7574) * Handle unset fields with 'many=True' The docs note: When serializing fields with dotted notation, it may be necessary to provide a `default` value if any object is not present or is empty during attribute traversal. However, this doesn't work for fields with 'many=True'. When using these, the default is simply ignored. The solution is simple: do in 'ManyRelatedField' what we were already doing for 'Field', namely, catch possible 'AttributeError' and 'KeyError' exceptions and return the default if there is one set. Signed-off-by: Stephen Finucane Closes: #7550 * Add test cases for #7550 Signed-off-by: Stephen Finucane --- rest_framework/relations.py | 27 +++++++++++++- tests/test_model_serializer.py | 67 ++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 2 deletions(-) diff --git a/rest_framework/relations.py b/rest_framework/relations.py index c987007842..bdedd43b86 100644 --- a/rest_framework/relations.py +++ b/rest_framework/relations.py @@ -10,7 +10,7 @@ from django.utils.translation import gettext_lazy as _ from rest_framework.fields import ( - Field, empty, get_attribute, is_simple_callable, iter_options + Field, SkipField, empty, get_attribute, is_simple_callable, iter_options ) from rest_framework.reverse import reverse from rest_framework.settings import api_settings @@ -535,7 +535,30 @@ def get_attribute(self, instance): if hasattr(instance, 'pk') and instance.pk is None: return [] - relationship = get_attribute(instance, self.source_attrs) + try: + relationship = get_attribute(instance, self.source_attrs) + except (KeyError, AttributeError) as exc: + if self.default is not empty: + return self.get_default() + if self.allow_null: + return None + if not self.required: + raise SkipField() + msg = ( + 'Got {exc_type} when attempting to get a value for field ' + '`{field}` on serializer `{serializer}`.\nThe serializer ' + 'field might be named incorrectly and not match ' + 'any attribute or key on the `{instance}` instance.\n' + 'Original exception text was: {exc}.'.format( + exc_type=type(exc).__name__, + field=self.field_name, + serializer=self.parent.__class__.__name__, + instance=instance.__class__.__name__, + exc=exc + ) + ) + raise type(exc)(msg) + return relationship.all() if hasattr(relationship, 'all') else relationship def to_representation(self, iterable): diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index abb4830d14..419eae632b 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -1025,6 +1025,73 @@ class Meta: assert serializer.data == expected +class Issue7550FooModel(models.Model): + text = models.CharField(max_length=100) + bar = models.ForeignKey( + 'Issue7550BarModel', null=True, blank=True, on_delete=models.SET_NULL, + related_name='foos', related_query_name='foo') + + +class Issue7550BarModel(models.Model): + pass + + +class Issue7550TestCase(TestCase): + + def test_dotted_source(self): + + class _FooSerializer(serializers.ModelSerializer): + class Meta: + model = Issue7550FooModel + fields = ('id', 'text') + + class FooSerializer(serializers.ModelSerializer): + other_foos = _FooSerializer(source='bar.foos', many=True) + + class Meta: + model = Issue7550BarModel + fields = ('id', 'other_foos') + + bar = Issue7550BarModel.objects.create() + foo_a = Issue7550FooModel.objects.create(bar=bar, text='abc') + foo_b = Issue7550FooModel.objects.create(bar=bar, text='123') + + assert FooSerializer(foo_a).data == { + 'id': foo_a.id, + 'other_foos': [ + { + 'id': foo_a.id, + 'text': foo_a.text, + }, + { + 'id': foo_b.id, + 'text': foo_b.text, + }, + ], + } + + def test_dotted_source_with_default(self): + + class _FooSerializer(serializers.ModelSerializer): + class Meta: + model = Issue7550FooModel + fields = ('id', 'text') + + class FooSerializer(serializers.ModelSerializer): + other_foos = _FooSerializer(source='bar.foos', default=[], many=True) + + class Meta: + model = Issue7550FooModel + fields = ('id', 'other_foos') + + foo = Issue7550FooModel.objects.create(bar=None, text='abc') + + assert FooSerializer(foo).data == { + 'id': foo.id, + 'other_foos': [], + } + + class DecimalFieldModel(models.Model): decimal_field = models.DecimalField( max_digits=3, From 82475c232b531e075fe7666d808f9e68d052d35b Mon Sep 17 00:00:00 2001 From: Alessandro <9991341+alessandrosp@users.noreply.github.com> Date: Wed, 8 Jun 2022 23:03:00 +0900 Subject: [PATCH 132/450] Made relative URLs clickable as well. (#8464) --- rest_framework/templatetags/rest_framework.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest_framework/templatetags/rest_framework.py b/rest_framework/templatetags/rest_framework.py index db0e9c95c3..ccd9430b4e 100644 --- a/rest_framework/templatetags/rest_framework.py +++ b/rest_framework/templatetags/rest_framework.py @@ -218,7 +218,7 @@ def format_value(value): return template.render(context) elif isinstance(value, str): if ( - (value.startswith('http:') or value.startswith('https:')) and not + (value.startswith('http:') or value.startswith('https:') or value.startswith('/')) and not re.search(r'\s', value) ): return mark_safe('{value}'.format(value=escape(value))) From 2506d0b4f2ac8bdbf35d33b3dd8a56f3e8d0da75 Mon Sep 17 00:00:00 2001 From: Burak Kadir Er Date: Thu, 9 Jun 2022 17:30:47 +0300 Subject: [PATCH 133/450] Update include and namespace URLs (#8520) --- docs/api-guide/routers.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api-guide/routers.md b/docs/api-guide/routers.md index 8d8594eeea..70c05fdde7 100644 --- a/docs/api-guide/routers.md +++ b/docs/api-guide/routers.md @@ -338,5 +338,5 @@ The [`DRF-extensions` package][drf-extensions] provides [routers][drf-extensions [drf-extensions-nested-viewsets]: https://chibisov.github.io/drf-extensions/docs/#nested-routes [drf-extensions-collection-level-controllers]: https://chibisov.github.io/drf-extensions/docs/#collection-level-controllers [drf-extensions-customizable-endpoint-names]: https://chibisov.github.io/drf-extensions/docs/#controller-endpoint-name -[url-namespace-docs]: https://docs.djangoproject.com/en/1.11/topics/http/urls/#url-namespaces -[include-api-reference]: https://docs.djangoproject.com/en/2.0/ref/urls/#include +[url-namespace-docs]: https://docs.djangoproject.com/en/4.0/topics/http/urls/#url-namespaces +[include-api-reference]: https://docs.djangoproject.com/en/4.0/ref/urls/#include From fa9d516ee24b2447a351af92e139d386b4f0d2b4 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Mon, 20 Jun 2022 10:44:27 +0100 Subject: [PATCH 134/450] Update docstring test for more recent pygments version (#8530) * Update docstring test for more recent pygments version * Drop unused import --- requirements/requirements-optionals.txt | 5 ++-- tests/test_description.py | 31 ++++--------------------- 2 files changed, 6 insertions(+), 30 deletions(-) diff --git a/requirements/requirements-optionals.txt b/requirements/requirements-optionals.txt index 75b9ab4d60..f3bb9b709d 100644 --- a/requirements/requirements-optionals.txt +++ b/requirements/requirements-optionals.txt @@ -3,8 +3,7 @@ coreapi==2.3.1 coreschema==0.0.4 django-filter>=2.4.0,<3.0 django-guardian>=2.4.0,<2.5 -markdown==3.3;python_version>="3.6" -markdown==3.2.2;python_version=="3.5" +markdown==3.3 psycopg2-binary>=2.8.5,<2.9 -pygments>=2.7.1,<2.8 +pygments==2.12 pyyaml>=5.3.1,<5.4 diff --git a/tests/test_description.py b/tests/test_description.py index 363ad6513e..ecc6b9776d 100644 --- a/tests/test_description.py +++ b/tests/test_description.py @@ -1,5 +1,3 @@ -import sys - import pytest from django.test import TestCase @@ -33,7 +31,7 @@ # If markdown is installed we also test it's working # (and that our wrapped forces '=' to h2 and '-' to h3) -MARKDOWN_BASE = """

    an example docstring

    +MARKDOWN_DOCSTRING = """

    an example docstring

    indented

    hash style header

    -
    [{
    "alpha": 1,
    "beta": "this is a string"
    }]
    +
    [{
    "alpha": 1,
    "beta": "this is a string"
    }]


    """ diff --git a/tests/test_renderers.py b/tests/test_renderers.py index 247737576f..d04ff300ff 100644 --- a/tests/test_renderers.py +++ b/tests/test_renderers.py @@ -910,7 +910,7 @@ def test_shell_code_example_rendering(self): 'link': coreapi.Link(url='/data/', action='get', fields=[]), } html = template.render(context) - assert 'testcases list' in html + assert 'testcases list' in html @pytest.mark.skipif(not coreapi, reason='coreapi is not installed') From ab681f2d5e4a9645aa68eabf1ff18e41d0d5f642 Mon Sep 17 00:00:00 2001 From: Peter Thomassen Date: Fri, 26 Apr 2024 17:09:08 +0200 Subject: [PATCH 384/450] Update requirements in docs --- docs/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.md b/docs/index.md index 98cbf6a401..864c1d0723 100644 --- a/docs/index.md +++ b/docs/index.md @@ -95,8 +95,8 @@ each Python and Django series. The following packages are optional: * [PyYAML][pyyaml], [uritemplate][uriteemplate] (5.1+, 3.0.0+) - Schema generation support. -* [Markdown][markdown] (3.0.0+) - Markdown support for the browsable API. -* [Pygments][pygments] (2.4.0+) - Add syntax highlighting to Markdown processing. +* [Markdown][markdown] (3.3.0+) - Markdown support for the browsable API. +* [Pygments][pygments] (2.7.0+) - Add syntax highlighting to Markdown processing. * [django-filter][django-filter] (1.0.1+) - Filtering support. * [django-guardian][django-guardian] (1.1.1+) - Object level permissions support. From b34bde47d7fff403df4143a35c71975d7c2e7763 Mon Sep 17 00:00:00 2001 From: Peter Thomassen Date: Fri, 26 Apr 2024 18:02:19 +0200 Subject: [PATCH 385/450] Fix typo in setup.cfg setting --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index e7e288816f..4592388360 100644 --- a/setup.cfg +++ b/setup.cfg @@ -3,7 +3,7 @@ license_files = LICENSE.md [tool:pytest] addopts=--tb=short --strict-markers -ra -testspath = tests +testpaths = tests filterwarnings = ignore:CoreAPI compatibility is deprecated*:rest_framework.RemovedInDRF317Warning [flake8] From 9d4ed054bf8acfac6209b7e7f837fc97517affcc Mon Sep 17 00:00:00 2001 From: Peter Thomassen Date: Fri, 26 Apr 2024 18:05:13 +0200 Subject: [PATCH 386/450] Don't use Windows line endings --- docs/community/funding.md | 796 +++++++++++++++++----------------- docs/topics/html-and-forms.md | 440 +++++++++---------- tests/test_description.py | 310 ++++++------- 3 files changed, 773 insertions(+), 773 deletions(-) diff --git a/docs/community/funding.md b/docs/community/funding.md index 951833682e..10e09bf713 100644 --- a/docs/community/funding.md +++ b/docs/community/funding.md @@ -1,398 +1,398 @@ - - - - -# Funding - -If you use REST framework commercially we strongly encourage you to invest in its continued development by signing up for a paid plan. - -**We believe that collaboratively funded software can offer outstanding returns on investment, by encouraging our users to collectively share the cost of development.** - -Signing up for a paid plan will: - -* Directly contribute to faster releases, more features, and higher quality software. -* Allow more time to be invested in documentation, issue triage, and community support. -* Safeguard the future development of REST framework. - -REST framework continues to be open-source and permissively licensed, but we firmly believe it is in the commercial best-interest for users of the project to invest in its ongoing development. - ---- - -## What funding has enabled so far - -* The [3.4](https://www.django-rest-framework.org/community/3.4-announcement/) and [3.5](https://www.django-rest-framework.org/community/3.5-announcement/) releases, including schema generation for both Swagger and RAML, a Python client library, a Command Line client, and addressing of a large number of outstanding issues. -* The [3.6](https://www.django-rest-framework.org/community/3.6-announcement/) release, including JavaScript client library, and API documentation, complete with auto-generated code samples. -* The [3.7 release](https://www.django-rest-framework.org/community/3.7-announcement/), made possible due to our collaborative funding model, focuses on improvements to schema generation and the interactive API documentation. -* The recent [3.8 release](https://www.django-rest-framework.org/community/3.8-announcement/). -* Tom Christie, the creator of Django REST framework, working on the project full-time. -* Around 80-90 issues and pull requests closed per month since Tom Christie started working on the project full-time. -* A community & operations manager position part-time for 4 months, helping mature the business and grow sponsorship. -* Contracting development time for the work on the JavaScript client library and API documentation tooling. - ---- - -## What future funding will enable - -* Realtime API support, using WebSockets. This will consist of documentation and support for using REST framework together with Django Channels, plus integrating WebSocket support into the client libraries. -* Better authentication defaults, possibly bringing JWT & CORS support into the core package. -* Securing the community & operations manager position long-term. -* Opening up and securing a part-time position to focus on ticket triage and resolution. -* Paying for development time on building API client libraries in a range of programming languages. These would be integrated directly into the upcoming API documentation. - -Sign up for a paid plan today, and help ensure that REST framework becomes a sustainable, full-time funded project. - ---- - -## What our sponsors and users say - -> As a developer, Django REST framework feels like an obvious and natural extension to all the great things that make up Django and it's community. Getting started is easy while providing simple abstractions which makes it flexible and customizable. Contributing and supporting Django REST framework helps ensure its future and one way or another it also helps Django, and the Python ecosystem. -> -> — JosĆ© Padilla, Django REST framework contributor - -  - -> The number one feature of the Python programming language is its community. Such a community is only possible because of the Open Source nature of the language and all the culture that comes from it. Building great Open Source projects require great minds. Given that, we at Vinta are not only proud to sponsor the team behind DRF but we also recognize the ROI that comes from it. -> -> — Filipe Ximenes, Vinta Software - -  - -> It's really awesome that this project continues to endure. The code base is top notch and the maintainers are committed to the highest level of quality. -DRF is one of the core reasons why Django is top choice among web frameworks today. In my opinion, it sets the standard for rest frameworks for the development community at large. -> -> — Andrew Conti, Django REST framework user - ---- - -## Individual plan - -This subscription is recommended for individuals with an interest in seeing REST framework continue to improve. - -If you are using REST framework as a full-time employee, consider recommending that your company takes out a [corporate plan](#corporate-plans). - -
    -
    -
    -
    - {{ symbol }} - {{ rates.personal1 }} - /month{% if vat %} +VAT{% endif %} -
    -
    Individual
    -
    -
    - Support ongoing development -
    -
    - Credited on the site -
    -
    - - - -
    -
    -
    -
    - -*Billing is monthly and you can cancel at any time.* - ---- - -## Corporate plans - -These subscriptions are recommended for companies and organizations using REST framework either publicly or privately. - -In exchange for funding you'll also receive advertising space on our site, allowing you to **promote your company or product to many tens of thousands of developers worldwide**. - -Our professional and premium plans also include **priority support**. At any time your engineers can escalate an issue or discussion group thread, and we'll ensure it gets a guaranteed response within the next working day. - -
    -
    -
    -
    - {{ symbol }} - {{ rates.corporate1 }} - /month{% if vat %} +VAT{% endif %} -
    -
    Basic
    -
    -
    - Support ongoing development -
    -
    - Funding page ad placement -
    -
    - -
    -
    -
    -
    -
    - {{ symbol }} - {{ rates.corporate2 }} - /month{% if vat %} +VAT{% endif %} -
    -
    Professional
    -
    -
    - Support ongoing development -
    -
    - Sidebar ad placement -
    -
    - Priority support for your engineers -
    -
    - -
    -
    -
    -
    -
    - {{ symbol }} - {{ rates.corporate3 }} - /month{% if vat %} +VAT{% endif %} -
    -
    Premium
    -
    -
    - Support ongoing development -
    -
    - Homepage ad placement -
    -
    - Sidebar ad placement -
    -
    - Priority support for your engineers -
    -
    - -
    -
    -
    - -
    - -*Billing is monthly and you can cancel at any time.* - -Once you've signed up, we will contact you via email and arrange your ad placements on the site. - -For further enquires please contact funding@django-rest-framework.org. - ---- - -## Accountability - -In an effort to keep the project as transparent as possible, we are releasing [monthly progress reports](https://www.encode.io/reports/march-2018/) and regularly include financial reports and cost breakdowns. - - - - -
    -
    -
    -

    Stay up to date, with our monthly progress reports...

    -
    - - -
    -
    - - -
    - -
    -
    -
    -
    - - - ---- - -## Frequently asked questions - -**Q: Can you issue monthly invoices?** -A: Yes, we are happy to issue monthly invoices. Please just email us and let us know who to issue the invoice to (name and address) and which email address to send it to each month. - -**Q: Does sponsorship include VAT?** -A: Sponsorship is VAT exempt. - -**Q: Do I have to sign up for a certain time period?** -A: No, we appreciate your support for any time period that is convenient for you. Also, you can cancel your sponsorship anytime. - -**Q: Can I pay yearly? Can I pay upfront fox X amount of months at a time?** -A: We are currently only set up to accept monthly payments. However, if you'd like to support Django REST framework and you can only do yearly/upfront payments, we are happy to work with you and figure out a convenient solution. - -**Q: Are you only looking for corporate sponsors?** -A: No, we value individual sponsors just as much as corporate sponsors and appreciate any kind of support. - ---- - -## Our sponsors - -
    - - + + + + +# Funding + +If you use REST framework commercially we strongly encourage you to invest in its continued development by signing up for a paid plan. + +**We believe that collaboratively funded software can offer outstanding returns on investment, by encouraging our users to collectively share the cost of development.** + +Signing up for a paid plan will: + +* Directly contribute to faster releases, more features, and higher quality software. +* Allow more time to be invested in documentation, issue triage, and community support. +* Safeguard the future development of REST framework. + +REST framework continues to be open-source and permissively licensed, but we firmly believe it is in the commercial best-interest for users of the project to invest in its ongoing development. + +--- + +## What funding has enabled so far + +* The [3.4](https://www.django-rest-framework.org/community/3.4-announcement/) and [3.5](https://www.django-rest-framework.org/community/3.5-announcement/) releases, including schema generation for both Swagger and RAML, a Python client library, a Command Line client, and addressing of a large number of outstanding issues. +* The [3.6](https://www.django-rest-framework.org/community/3.6-announcement/) release, including JavaScript client library, and API documentation, complete with auto-generated code samples. +* The [3.7 release](https://www.django-rest-framework.org/community/3.7-announcement/), made possible due to our collaborative funding model, focuses on improvements to schema generation and the interactive API documentation. +* The recent [3.8 release](https://www.django-rest-framework.org/community/3.8-announcement/). +* Tom Christie, the creator of Django REST framework, working on the project full-time. +* Around 80-90 issues and pull requests closed per month since Tom Christie started working on the project full-time. +* A community & operations manager position part-time for 4 months, helping mature the business and grow sponsorship. +* Contracting development time for the work on the JavaScript client library and API documentation tooling. + +--- + +## What future funding will enable + +* Realtime API support, using WebSockets. This will consist of documentation and support for using REST framework together with Django Channels, plus integrating WebSocket support into the client libraries. +* Better authentication defaults, possibly bringing JWT & CORS support into the core package. +* Securing the community & operations manager position long-term. +* Opening up and securing a part-time position to focus on ticket triage and resolution. +* Paying for development time on building API client libraries in a range of programming languages. These would be integrated directly into the upcoming API documentation. + +Sign up for a paid plan today, and help ensure that REST framework becomes a sustainable, full-time funded project. + +--- + +## What our sponsors and users say + +> As a developer, Django REST framework feels like an obvious and natural extension to all the great things that make up Django and it's community. Getting started is easy while providing simple abstractions which makes it flexible and customizable. Contributing and supporting Django REST framework helps ensure its future and one way or another it also helps Django, and the Python ecosystem. +> +> — JosĆ© Padilla, Django REST framework contributor + +  + +> The number one feature of the Python programming language is its community. Such a community is only possible because of the Open Source nature of the language and all the culture that comes from it. Building great Open Source projects require great minds. Given that, we at Vinta are not only proud to sponsor the team behind DRF but we also recognize the ROI that comes from it. +> +> — Filipe Ximenes, Vinta Software + +  + +> It's really awesome that this project continues to endure. The code base is top notch and the maintainers are committed to the highest level of quality. +DRF is one of the core reasons why Django is top choice among web frameworks today. In my opinion, it sets the standard for rest frameworks for the development community at large. +> +> — Andrew Conti, Django REST framework user + +--- + +## Individual plan + +This subscription is recommended for individuals with an interest in seeing REST framework continue to improve. + +If you are using REST framework as a full-time employee, consider recommending that your company takes out a [corporate plan](#corporate-plans). + +
    +
    +
    +
    + {{ symbol }} + {{ rates.personal1 }} + /month{% if vat %} +VAT{% endif %} +
    +
    Individual
    +
    +
    + Support ongoing development +
    +
    + Credited on the site +
    +
    + +
    +
    +
    +
    + +*Billing is monthly and you can cancel at any time.* + +--- + +## Corporate plans + +These subscriptions are recommended for companies and organizations using REST framework either publicly or privately. + +In exchange for funding you'll also receive advertising space on our site, allowing you to **promote your company or product to many tens of thousands of developers worldwide**. + +Our professional and premium plans also include **priority support**. At any time your engineers can escalate an issue or discussion group thread, and we'll ensure it gets a guaranteed response within the next working day. + +
    +
    +
    +
    + {{ symbol }} + {{ rates.corporate1 }} + /month{% if vat %} +VAT{% endif %} +
    +
    Basic
    +
    +
    + Support ongoing development +
    +
    + Funding page ad placement +
    +
    + +
    +
    +
    +
    +
    + {{ symbol }} + {{ rates.corporate2 }} + /month{% if vat %} +VAT{% endif %} +
    +
    Professional
    +
    +
    + Support ongoing development +
    +
    + Sidebar ad placement +
    +
    + Priority support for your engineers +
    +
    + +
    +
    +
    +
    +
    + {{ symbol }} + {{ rates.corporate3 }} + /month{% if vat %} +VAT{% endif %} +
    +
    Premium
    +
    +
    + Support ongoing development +
    +
    + Homepage ad placement +
    +
    + Sidebar ad placement +
    +
    + Priority support for your engineers +
    +
    + +
    +
    +
    + +
    + +*Billing is monthly and you can cancel at any time.* + +Once you've signed up, we will contact you via email and arrange your ad placements on the site. + +For further enquires please contact funding@django-rest-framework.org. + +--- + +## Accountability + +In an effort to keep the project as transparent as possible, we are releasing [monthly progress reports](https://www.encode.io/reports/march-2018/) and regularly include financial reports and cost breakdowns. + + + + +
    +
    +
    +

    Stay up to date, with our monthly progress reports...

    +
    + + +
    +
    + + +
    + +
    +
    +
    +
    + + + +--- + +## Frequently asked questions + +**Q: Can you issue monthly invoices?** +A: Yes, we are happy to issue monthly invoices. Please just email us and let us know who to issue the invoice to (name and address) and which email address to send it to each month. + +**Q: Does sponsorship include VAT?** +A: Sponsorship is VAT exempt. + +**Q: Do I have to sign up for a certain time period?** +A: No, we appreciate your support for any time period that is convenient for you. Also, you can cancel your sponsorship anytime. + +**Q: Can I pay yearly? Can I pay upfront fox X amount of months at a time?** +A: We are currently only set up to accept monthly payments. However, if you'd like to support Django REST framework and you can only do yearly/upfront payments, we are happy to work with you and figure out a convenient solution. + +**Q: Are you only looking for corporate sponsors?** +A: No, we value individual sponsors just as much as corporate sponsors and appreciate any kind of support. + +--- + +## Our sponsors + +
    + + diff --git a/docs/topics/html-and-forms.md b/docs/topics/html-and-forms.md index 17c9e3314c..c7e51c1526 100644 --- a/docs/topics/html-and-forms.md +++ b/docs/topics/html-and-forms.md @@ -1,220 +1,220 @@ -# HTML & Forms - -REST framework is suitable for returning both API style responses, and regular HTML pages. Additionally, serializers can be used as HTML forms and rendered in templates. - -## Rendering HTML - -In order to return HTML responses you'll need to use either `TemplateHTMLRenderer`, or `StaticHTMLRenderer`. - -The `TemplateHTMLRenderer` class expects the response to contain a dictionary of context data, and renders an HTML page based on a template that must be specified either in the view or on the response. - -The `StaticHTMLRender` class expects the response to contain a string of the pre-rendered HTML content. - -Because static HTML pages typically have different behavior from API responses you'll probably need to write any HTML views explicitly, rather than relying on the built-in generic views. - -Here's an example of a view that returns a list of "Profile" instances, rendered in an HTML template: - -**views.py**: - - from my_project.example.models import Profile - from rest_framework.renderers import TemplateHTMLRenderer - from rest_framework.response import Response - from rest_framework.views import APIView - - - class ProfileList(APIView): - renderer_classes = [TemplateHTMLRenderer] - template_name = 'profile_list.html' - - def get(self, request): - queryset = Profile.objects.all() - return Response({'profiles': queryset}) - -**profile_list.html**: - - -

    Profiles

    -
      - {% for profile in profiles %} -
    • {{ profile.name }}
    • - {% endfor %} -
    - - -## Rendering Forms - -Serializers may be rendered as forms by using the `render_form` template tag, and including the serializer instance as context to the template. - -The following view demonstrates an example of using a serializer in a template for viewing and updating a model instance: - -**views.py**: - - from django.shortcuts import get_object_or_404 - from my_project.example.models import Profile - from rest_framework.renderers import TemplateHTMLRenderer - from rest_framework.views import APIView - - - class ProfileDetail(APIView): - renderer_classes = [TemplateHTMLRenderer] - template_name = 'profile_detail.html' - - def get(self, request, pk): - profile = get_object_or_404(Profile, pk=pk) - serializer = ProfileSerializer(profile) - return Response({'serializer': serializer, 'profile': profile}) - - def post(self, request, pk): - profile = get_object_or_404(Profile, pk=pk) - serializer = ProfileSerializer(profile, data=request.data) - if not serializer.is_valid(): - return Response({'serializer': serializer, 'profile': profile}) - serializer.save() - return redirect('profile-list') - -**profile_detail.html**: - - {% load rest_framework %} - - - -

    Profile - {{ profile.name }}

    - -
    - {% csrf_token %} - {% render_form serializer %} - -
    - - - -### Using template packs - -The `render_form` tag takes an optional `template_pack` argument, that specifies which template directory should be used for rendering the form and form fields. - -REST framework includes three built-in template packs, all based on Bootstrap 3. The built-in styles are `horizontal`, `vertical`, and `inline`. The default style is `horizontal`. To use any of these template packs you'll want to also include the Bootstrap 3 CSS. - -The following HTML will link to a CDN hosted version of the Bootstrap 3 CSS: - - - … - - - -Third party packages may include alternate template packs, by bundling a template directory containing the necessary form and field templates. - -Let's take a look at how to render each of the three available template packs. For these examples we'll use a single serializer class to present a "Login" form. - - class LoginSerializer(serializers.Serializer): - email = serializers.EmailField( - max_length=100, - style={'placeholder': 'Email', 'autofocus': True} - ) - password = serializers.CharField( - max_length=100, - style={'input_type': 'password', 'placeholder': 'Password'} - ) - remember_me = serializers.BooleanField() - ---- - -#### `rest_framework/vertical` - -Presents form labels above their corresponding control inputs, using the standard Bootstrap layout. - -*This is the default template pack.* - - {% load rest_framework %} - - ... - -
    - {% csrf_token %} - {% render_form serializer template_pack='rest_framework/vertical' %} - -
    - -![Vertical form example](../img/vertical.png) - ---- - -#### `rest_framework/horizontal` - -Presents labels and controls alongside each other, using a 2/10 column split. - -*This is the form style used in the browsable API and admin renderers.* - - {% load rest_framework %} - - ... - -
    - {% csrf_token %} - {% render_form serializer %} -
    -
    - -
    -
    -
    - -![Horizontal form example](../img/horizontal.png) - ---- - -#### `rest_framework/inline` - -A compact form style that presents all the controls inline. - - {% load rest_framework %} - - ... - -
    - {% csrf_token %} - {% render_form serializer template_pack='rest_framework/inline' %} - -
    - -![Inline form example](../img/inline.png) - -## Field styles - -Serializer fields can have their rendering style customized by using the `style` keyword argument. This argument is a dictionary of options that control the template and layout used. - -The most common way to customize the field style is to use the `base_template` style keyword argument to select which template in the template pack should be use. - -For example, to render a `CharField` as an HTML textarea rather than the default HTML input, you would use something like this: - - details = serializers.CharField( - max_length=1000, - style={'base_template': 'textarea.html'} - ) - -If you instead want a field to be rendered using a custom template that is *not part of an included template pack*, you can instead use the `template` style option, to fully specify a template name: - - details = serializers.CharField( - max_length=1000, - style={'template': 'my-field-templates/custom-input.html'} - ) - -Field templates can also use additional style properties, depending on their type. For example, the `textarea.html` template also accepts a `rows` property that can be used to affect the sizing of the control. - - details = serializers.CharField( - max_length=1000, - style={'base_template': 'textarea.html', 'rows': 10} - ) - -The complete list of `base_template` options and their associated style options is listed below. - -base_template | Valid field types | Additional style options ------------------------|-------------------------------------------------------------|----------------------------------------------- -input.html | Any string, numeric or date/time field | input_type, placeholder, hide_label, autofocus -textarea.html | `CharField` | rows, placeholder, hide_label -select.html | `ChoiceField` or relational field types | hide_label -radio.html | `ChoiceField` or relational field types | inline, hide_label -select_multiple.html | `MultipleChoiceField` or relational fields with `many=True` | hide_label -checkbox_multiple.html | `MultipleChoiceField` or relational fields with `many=True` | inline, hide_label -checkbox.html | `BooleanField` | hide_label -fieldset.html | Nested serializer | hide_label -list_fieldset.html | `ListField` or nested serializer with `many=True` | hide_label +# HTML & Forms + +REST framework is suitable for returning both API style responses, and regular HTML pages. Additionally, serializers can be used as HTML forms and rendered in templates. + +## Rendering HTML + +In order to return HTML responses you'll need to use either `TemplateHTMLRenderer`, or `StaticHTMLRenderer`. + +The `TemplateHTMLRenderer` class expects the response to contain a dictionary of context data, and renders an HTML page based on a template that must be specified either in the view or on the response. + +The `StaticHTMLRender` class expects the response to contain a string of the pre-rendered HTML content. + +Because static HTML pages typically have different behavior from API responses you'll probably need to write any HTML views explicitly, rather than relying on the built-in generic views. + +Here's an example of a view that returns a list of "Profile" instances, rendered in an HTML template: + +**views.py**: + + from my_project.example.models import Profile + from rest_framework.renderers import TemplateHTMLRenderer + from rest_framework.response import Response + from rest_framework.views import APIView + + + class ProfileList(APIView): + renderer_classes = [TemplateHTMLRenderer] + template_name = 'profile_list.html' + + def get(self, request): + queryset = Profile.objects.all() + return Response({'profiles': queryset}) + +**profile_list.html**: + + +

    Profiles

    +
      + {% for profile in profiles %} +
    • {{ profile.name }}
    • + {% endfor %} +
    + + +## Rendering Forms + +Serializers may be rendered as forms by using the `render_form` template tag, and including the serializer instance as context to the template. + +The following view demonstrates an example of using a serializer in a template for viewing and updating a model instance: + +**views.py**: + + from django.shortcuts import get_object_or_404 + from my_project.example.models import Profile + from rest_framework.renderers import TemplateHTMLRenderer + from rest_framework.views import APIView + + + class ProfileDetail(APIView): + renderer_classes = [TemplateHTMLRenderer] + template_name = 'profile_detail.html' + + def get(self, request, pk): + profile = get_object_or_404(Profile, pk=pk) + serializer = ProfileSerializer(profile) + return Response({'serializer': serializer, 'profile': profile}) + + def post(self, request, pk): + profile = get_object_or_404(Profile, pk=pk) + serializer = ProfileSerializer(profile, data=request.data) + if not serializer.is_valid(): + return Response({'serializer': serializer, 'profile': profile}) + serializer.save() + return redirect('profile-list') + +**profile_detail.html**: + + {% load rest_framework %} + + + +

    Profile - {{ profile.name }}

    + +
    + {% csrf_token %} + {% render_form serializer %} + +
    + + + +### Using template packs + +The `render_form` tag takes an optional `template_pack` argument, that specifies which template directory should be used for rendering the form and form fields. + +REST framework includes three built-in template packs, all based on Bootstrap 3. The built-in styles are `horizontal`, `vertical`, and `inline`. The default style is `horizontal`. To use any of these template packs you'll want to also include the Bootstrap 3 CSS. + +The following HTML will link to a CDN hosted version of the Bootstrap 3 CSS: + + + … + + + +Third party packages may include alternate template packs, by bundling a template directory containing the necessary form and field templates. + +Let's take a look at how to render each of the three available template packs. For these examples we'll use a single serializer class to present a "Login" form. + + class LoginSerializer(serializers.Serializer): + email = serializers.EmailField( + max_length=100, + style={'placeholder': 'Email', 'autofocus': True} + ) + password = serializers.CharField( + max_length=100, + style={'input_type': 'password', 'placeholder': 'Password'} + ) + remember_me = serializers.BooleanField() + +--- + +#### `rest_framework/vertical` + +Presents form labels above their corresponding control inputs, using the standard Bootstrap layout. + +*This is the default template pack.* + + {% load rest_framework %} + + ... + +
    + {% csrf_token %} + {% render_form serializer template_pack='rest_framework/vertical' %} + +
    + +![Vertical form example](../img/vertical.png) + +--- + +#### `rest_framework/horizontal` + +Presents labels and controls alongside each other, using a 2/10 column split. + +*This is the form style used in the browsable API and admin renderers.* + + {% load rest_framework %} + + ... + +
    + {% csrf_token %} + {% render_form serializer %} +
    +
    + +
    +
    +
    + +![Horizontal form example](../img/horizontal.png) + +--- + +#### `rest_framework/inline` + +A compact form style that presents all the controls inline. + + {% load rest_framework %} + + ... + +
    + {% csrf_token %} + {% render_form serializer template_pack='rest_framework/inline' %} + +
    + +![Inline form example](../img/inline.png) + +## Field styles + +Serializer fields can have their rendering style customized by using the `style` keyword argument. This argument is a dictionary of options that control the template and layout used. + +The most common way to customize the field style is to use the `base_template` style keyword argument to select which template in the template pack should be use. + +For example, to render a `CharField` as an HTML textarea rather than the default HTML input, you would use something like this: + + details = serializers.CharField( + max_length=1000, + style={'base_template': 'textarea.html'} + ) + +If you instead want a field to be rendered using a custom template that is *not part of an included template pack*, you can instead use the `template` style option, to fully specify a template name: + + details = serializers.CharField( + max_length=1000, + style={'template': 'my-field-templates/custom-input.html'} + ) + +Field templates can also use additional style properties, depending on their type. For example, the `textarea.html` template also accepts a `rows` property that can be used to affect the sizing of the control. + + details = serializers.CharField( + max_length=1000, + style={'base_template': 'textarea.html', 'rows': 10} + ) + +The complete list of `base_template` options and their associated style options is listed below. + +base_template | Valid field types | Additional style options +-----------------------|-------------------------------------------------------------|----------------------------------------------- +input.html | Any string, numeric or date/time field | input_type, placeholder, hide_label, autofocus +textarea.html | `CharField` | rows, placeholder, hide_label +select.html | `ChoiceField` or relational field types | hide_label +radio.html | `ChoiceField` or relational field types | inline, hide_label +select_multiple.html | `MultipleChoiceField` or relational fields with `many=True` | hide_label +checkbox_multiple.html | `MultipleChoiceField` or relational fields with `many=True` | inline, hide_label +checkbox.html | `BooleanField` | hide_label +fieldset.html | Nested serializer | hide_label +list_fieldset.html | `ListField` or nested serializer with `many=True` | hide_label diff --git a/tests/test_description.py b/tests/test_description.py index 93539a8386..7fb93ed4e5 100644 --- a/tests/test_description.py +++ b/tests/test_description.py @@ -1,155 +1,155 @@ -import pytest -from django.test import TestCase - -from rest_framework.compat import apply_markdown -from rest_framework.utils.formatting import dedent -from rest_framework.views import APIView - -# We check that docstrings get nicely un-indented. -DESCRIPTION = """an example docstring -==================== - -* list -* list - -another header --------------- - - code block - -indented - -# hash style header # - -```json -[{ - "alpha": 1, - "beta": "this is a string" -}] -```""" - - -# If markdown is installed we also test it's working -# (and that our wrapped forces '=' to h2 and '-' to h3) -MARKDOWN_DOCSTRING = """

    an example docstring

    -
      -
    • list
    • -
    • list
    • -
    -

    another header

    -
    code block
    -
    -

    indented

    -

    hash style header

    -
    [{
    "alpha": 1,
    "beta": "this is a string"
    }]
    -


    """ - - -class TestViewNamesAndDescriptions(TestCase): - def test_view_name_uses_class_name(self): - """ - Ensure view names are based on the class name. - """ - class MockView(APIView): - pass - assert MockView().get_view_name() == 'Mock' - - def test_view_name_uses_name_attribute(self): - class MockView(APIView): - name = 'Foo' - assert MockView().get_view_name() == 'Foo' - - def test_view_name_uses_suffix_attribute(self): - class MockView(APIView): - suffix = 'List' - assert MockView().get_view_name() == 'Mock List' - - def test_view_name_preferences_name_over_suffix(self): - class MockView(APIView): - name = 'Foo' - suffix = 'List' - assert MockView().get_view_name() == 'Foo' - - def test_view_description_uses_docstring(self): - """Ensure view descriptions are based on the docstring.""" - class MockView(APIView): - """an example docstring - ==================== - - * list - * list - - another header - -------------- - - code block - - indented - - # hash style header # - - ```json - [{ - "alpha": 1, - "beta": "this is a string" - }] - ```""" - - assert MockView().get_view_description() == DESCRIPTION - - def test_view_description_uses_description_attribute(self): - class MockView(APIView): - description = 'Foo' - assert MockView().get_view_description() == 'Foo' - - def test_view_description_allows_empty_description(self): - class MockView(APIView): - """Description.""" - description = '' - assert MockView().get_view_description() == '' - - def test_view_description_can_be_empty(self): - """ - Ensure that if a view has no docstring, - then it's description is the empty string. - """ - class MockView(APIView): - pass - assert MockView().get_view_description() == '' - - def test_view_description_can_be_promise(self): - """ - Ensure a view may have a docstring that is actually a lazily evaluated - class that can be converted to a string. - - See: https://github.com/encode/django-rest-framework/issues/1708 - """ - # use a mock object instead of gettext_lazy to ensure that we can't end - # up with a test case string in our l10n catalog - - class MockLazyStr: - def __init__(self, string): - self.s = string - - def __str__(self): - return self.s - - class MockView(APIView): - __doc__ = MockLazyStr("a gettext string") - - assert MockView().get_view_description() == 'a gettext string' - - @pytest.mark.skipif(not apply_markdown, reason="Markdown is not installed") - def test_markdown(self): - """ - Ensure markdown to HTML works as expected. - """ - assert apply_markdown(DESCRIPTION) == MARKDOWN_DOCSTRING - - -def test_dedent_tabs(): - result = 'first string\n\nsecond string' - assert dedent(" first string\n\n second string") == result - assert dedent("first string\n\n second string") == result - assert dedent("\tfirst string\n\n\tsecond string") == result - assert dedent("first string\n\n\tsecond string") == result +import pytest +from django.test import TestCase + +from rest_framework.compat import apply_markdown +from rest_framework.utils.formatting import dedent +from rest_framework.views import APIView + +# We check that docstrings get nicely un-indented. +DESCRIPTION = """an example docstring +==================== + +* list +* list + +another header +-------------- + + code block + +indented + +# hash style header # + +```json +[{ + "alpha": 1, + "beta": "this is a string" +}] +```""" + + +# If markdown is installed we also test it's working +# (and that our wrapped forces '=' to h2 and '-' to h3) +MARKDOWN_DOCSTRING = """

    an example docstring

    +
      +
    • list
    • +
    • list
    • +
    +

    another header

    +
    code block
    +
    +

    indented

    +

    hash style header

    +
    [{
    "alpha": 1,
    "beta": "this is a string"
    }]
    +


    """ + + +class TestViewNamesAndDescriptions(TestCase): + def test_view_name_uses_class_name(self): + """ + Ensure view names are based on the class name. + """ + class MockView(APIView): + pass + assert MockView().get_view_name() == 'Mock' + + def test_view_name_uses_name_attribute(self): + class MockView(APIView): + name = 'Foo' + assert MockView().get_view_name() == 'Foo' + + def test_view_name_uses_suffix_attribute(self): + class MockView(APIView): + suffix = 'List' + assert MockView().get_view_name() == 'Mock List' + + def test_view_name_preferences_name_over_suffix(self): + class MockView(APIView): + name = 'Foo' + suffix = 'List' + assert MockView().get_view_name() == 'Foo' + + def test_view_description_uses_docstring(self): + """Ensure view descriptions are based on the docstring.""" + class MockView(APIView): + """an example docstring + ==================== + + * list + * list + + another header + -------------- + + code block + + indented + + # hash style header # + + ```json + [{ + "alpha": 1, + "beta": "this is a string" + }] + ```""" + + assert MockView().get_view_description() == DESCRIPTION + + def test_view_description_uses_description_attribute(self): + class MockView(APIView): + description = 'Foo' + assert MockView().get_view_description() == 'Foo' + + def test_view_description_allows_empty_description(self): + class MockView(APIView): + """Description.""" + description = '' + assert MockView().get_view_description() == '' + + def test_view_description_can_be_empty(self): + """ + Ensure that if a view has no docstring, + then it's description is the empty string. + """ + class MockView(APIView): + pass + assert MockView().get_view_description() == '' + + def test_view_description_can_be_promise(self): + """ + Ensure a view may have a docstring that is actually a lazily evaluated + class that can be converted to a string. + + See: https://github.com/encode/django-rest-framework/issues/1708 + """ + # use a mock object instead of gettext_lazy to ensure that we can't end + # up with a test case string in our l10n catalog + + class MockLazyStr: + def __init__(self, string): + self.s = string + + def __str__(self): + return self.s + + class MockView(APIView): + __doc__ = MockLazyStr("a gettext string") + + assert MockView().get_view_description() == 'a gettext string' + + @pytest.mark.skipif(not apply_markdown, reason="Markdown is not installed") + def test_markdown(self): + """ + Ensure markdown to HTML works as expected. + """ + assert apply_markdown(DESCRIPTION) == MARKDOWN_DOCSTRING + + +def test_dedent_tabs(): + result = 'first string\n\nsecond string' + assert dedent(" first string\n\n second string") == result + assert dedent("first string\n\n second string") == result + assert dedent("\tfirst string\n\n\tsecond string") == result + assert dedent("first string\n\n\tsecond string") == result From 36d5c0e74f562cbe3055f0d20818bd48d3c32359 Mon Sep 17 00:00:00 2001 From: Stanislav Levin Date: Tue, 7 May 2024 10:05:03 +0300 Subject: [PATCH 387/450] tests: Check urlpatterns after cleanups (#9400) According to docs: https://docs.python.org/3/library/unittest.html#unittest.TestCase.addClassCleanup > Add a function to be called after tearDownClass() to cleanup resources used during the test class. Functions will be called in reverse order to the order they are added (LIFO). This was revealed with recent change in pytest (`8.2.0`): > pytest-dev/pytest#11728: For unittest-based tests, exceptions during class cleanup (as raised by functions registered with TestCase.addClassCleanup) are now reported instead of silently failing. `check_urlpatterns` is called before `cleanup_url_patterns` and fails (problem was hidden by `pytest < 8.2.0`). `doClassCleanups` can be used instead to check after-cleanup state: https://docs.python.org/3/library/unittest.html#unittest.TestCase.doClassCleanups > This method is called unconditionally after tearDownClass(), or after setUpClass() if setUpClass() raises an exception. It is responsible for calling all the cleanup functions added by addClassCleanup(). If you need cleanup functions to be called prior to tearDownClass() then you can call doClassCleanups() yourself. Fixes: https://github.com/encode/django-rest-framework/issues/9399 Signed-off-by: Stanislav Levin --- tests/test_testing.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/tests/test_testing.py b/tests/test_testing.py index 7c2a09fae4..a7e00ab63e 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -318,10 +318,6 @@ def test_empty_request_content_type(self): assert request.META['CONTENT_TYPE'] == 'application/json' -def check_urlpatterns(cls): - assert urlpatterns is not cls.urlpatterns - - class TestUrlPatternTestCase(URLPatternsTestCase): urlpatterns = [ path('', view), @@ -333,10 +329,11 @@ def setUpClass(cls): super().setUpClass() assert urlpatterns is cls.urlpatterns - cls.addClassCleanup( - check_urlpatterns, - cls - ) + @classmethod + def doClassCleanups(cls): + assert urlpatterns is cls.urlpatterns + super().doClassCleanups() + assert urlpatterns is not cls.urlpatterns def test_urlpatterns(self): assert self.client.get('/').status_code == 200 From fbdab09c776d5ceef041793a7acd1c9e91695e5d Mon Sep 17 00:00:00 2001 From: wkwkhautbois Date: Sun, 2 Jun 2024 13:14:37 +0900 Subject: [PATCH 388/450] docs: Correct some evaluation results and a httpie option in Tutorial1 (#9421) * Tutorial 1: Added --unsorted option to httpie calls to prevent automatic json key sorting * Tutorial 1: Changed evaluation results accurate --- docs/tutorial/1-serialization.md | 62 ++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/docs/tutorial/1-serialization.md b/docs/tutorial/1-serialization.md index c860081046..1dac5e0d84 100644 --- a/docs/tutorial/1-serialization.md +++ b/docs/tutorial/1-serialization.md @@ -150,7 +150,7 @@ At this point we've translated the model instance into Python native datatypes. content = JSONRenderer().render(serializer.data) content - # b'{"id": 2, "title": "", "code": "print(\\"hello, world\\")\\n", "linenos": false, "language": "python", "style": "friendly"}' + # b'{"id":2,"title":"","code":"print(\\"hello, world\\")\\n","linenos":false,"language":"python","style":"friendly"}' Deserialization is similar. First we parse a stream into Python native datatypes... @@ -165,7 +165,7 @@ Deserialization is similar. First we parse a stream into Python native datatype serializer.is_valid() # True serializer.validated_data - # OrderedDict([('title', ''), ('code', 'print("hello, world")\n'), ('linenos', False), ('language', 'python'), ('style', 'friendly')]) + # {'title': '', 'code': 'print("hello, world")', 'linenos': False, 'language': 'python', 'style': 'friendly'} serializer.save() # @@ -175,7 +175,7 @@ We can also serialize querysets instead of model instances. To do so we simply serializer = SnippetSerializer(Snippet.objects.all(), many=True) serializer.data - # [OrderedDict([('id', 1), ('title', ''), ('code', 'foo = "bar"\n'), ('linenos', False), ('language', 'python'), ('style', 'friendly')]), OrderedDict([('id', 2), ('title', ''), ('code', 'print("hello, world")\n'), ('linenos', False), ('language', 'python'), ('style', 'friendly')]), OrderedDict([('id', 3), ('title', ''), ('code', 'print("hello, world")'), ('linenos', False), ('language', 'python'), ('style', 'friendly')])] + # [{'id': 1, 'title': '', 'code': 'foo = "bar"\n', 'linenos': False, 'language': 'python', 'style': 'friendly'}, {'id': 2, 'title': '', 'code': 'print("hello, world")\n', 'linenos': False, 'language': 'python', 'style': 'friendly'}, {'id': 3, 'title': '', 'code': 'print("hello, world")', 'linenos': False, 'language': 'python', 'style': 'friendly'}] ## Using ModelSerializers @@ -321,42 +321,50 @@ You can install httpie using pip: Finally, we can get a list of all of the snippets: - http http://127.0.0.1:8000/snippets/ + http http://127.0.0.1:8000/snippets/ --unsorted HTTP/1.1 200 OK ... [ - { - "id": 1, - "title": "", - "code": "foo = \"bar\"\n", - "linenos": false, - "language": "python", - "style": "friendly" - }, - { - "id": 2, - "title": "", - "code": "print(\"hello, world\")\n", - "linenos": false, - "language": "python", - "style": "friendly" - } + { + "id": 1, + "title": "", + "code": "foo = \"bar\"\n", + "linenos": false, + "language": "python", + "style": "friendly" + }, + { + "id": 2, + "title": "", + "code": "print(\"hello, world\")\n", + "linenos": false, + "language": "python", + "style": "friendly" + }, + { + "id": 3, + "title": "", + "code": "print(\"hello, world\")", + "linenos": false, + "language": "python", + "style": "friendly" + } ] Or we can get a particular snippet by referencing its id: - http http://127.0.0.1:8000/snippets/2/ + http http://127.0.0.1:8000/snippets/2/ --unsorted HTTP/1.1 200 OK ... { - "id": 2, - "title": "", - "code": "print(\"hello, world\")\n", - "linenos": false, - "language": "python", - "style": "friendly" + "id": 2, + "title": "", + "code": "print(\"hello, world\")\n", + "linenos": false, + "language": "python", + "style": "friendly" } Similarly, you can have the same json displayed by visiting these URLs in a web browser. From fe92f0dd0d4c587eed000c7de611ddbff241bd6a Mon Sep 17 00:00:00 2001 From: Ivan Studinsky Date: Mon, 10 Jun 2024 13:19:06 +0700 Subject: [PATCH 389/450] Add `__hash__` method for `permissions.OperandHolder` class (#9417) `OperandHolder` is not hashable, so need to add `__hash__` method --- rest_framework/permissions.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rest_framework/permissions.py b/rest_framework/permissions.py index 71de226f98..7c15eca589 100644 --- a/rest_framework/permissions.py +++ b/rest_framework/permissions.py @@ -54,6 +54,9 @@ def __eq__(self, other): self.op2_class == other.op2_class ) + def __hash__(self): + return hash((self.operator_class, self.op1_class, self.op2_class)) + class AND: def __init__(self, op1, op2): From 3b41f0124194430da957b119712978fa2266b642 Mon Sep 17 00:00:00 2001 From: Seokchan Yoon Date: Fri, 14 Jun 2024 18:52:02 +0900 Subject: [PATCH 390/450] Fix potential XSS vulnerability in break_long_headers template filter (#9435) The header input is now properly escaped before splitting and joining with
    tags. This prevents potential XSS attacks if the header contains unsanitized user input. --- rest_framework/templatetags/rest_framework.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest_framework/templatetags/rest_framework.py b/rest_framework/templatetags/rest_framework.py index e01568cf2c..dba8153b13 100644 --- a/rest_framework/templatetags/rest_framework.py +++ b/rest_framework/templatetags/rest_framework.py @@ -322,5 +322,5 @@ def break_long_headers(header): when possible (are comma separated) """ if len(header) > 160 and ',' in header: - header = mark_safe('
    ' + ',
    '.join(header.split(','))) + header = mark_safe('
    ' + ',
    '.join(escape(header).split(','))) return header From c7a7eae551528b6887614df816c8a26df70272d6 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Fri, 14 Jun 2024 16:34:21 +0100 Subject: [PATCH 391/450] Version 3.15.2 (#9439) --- docs/community/release-notes.md | 9 +++++++++ rest_framework/__init__.py | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index f983424da4..5ec415a799 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -38,6 +38,15 @@ You can determine your currently installed version using `pip show`: ## 3.15.x series +### 3.15.2 + +**Date**: 14th June 2024 + +* Fix potential XSS vulnerability in browsable API. [#9435](https://github.com/encode/django-rest-framework/pull/9157) +* Revert "Ensure CursorPagination respects nulls in the ordering field". [#9381](https://github.com/encode/django-rest-framework/pull/9381) +* Use warnings rather than logging a warning for DecimalField. [#9367](https://github.com/encode/django-rest-framework/pull/9367) +* Remove unused code. [#9393](https://github.com/encode/django-rest-framework/pull/9393) + ### 3.15.1 Date: 22nd March 2024 diff --git a/rest_framework/__init__.py b/rest_framework/__init__.py index bc16b221b2..636f0c8ade 100644 --- a/rest_framework/__init__.py +++ b/rest_framework/__init__.py @@ -8,7 +8,7 @@ """ __title__ = 'Django REST framework' -__version__ = '3.15.1' +__version__ = '3.15.2' __author__ = 'Tom Christie' __license__ = 'BSD 3-Clause' __copyright__ = 'Copyright 2011-2023 Encode OSS Ltd' From 1e9b5c15ecc165e6d7658a6db13de98560f2b8df Mon Sep 17 00:00:00 2001 From: Ivan Studinsky Date: Sat, 15 Jun 2024 15:00:28 +0700 Subject: [PATCH 392/450] Provide tests for hashing of `OperandHolder` (#9437) --- tests/test_permissions.py | 56 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/tests/test_permissions.py b/tests/test_permissions.py index aefff981ee..39b7ed6622 100644 --- a/tests/test_permissions.py +++ b/tests/test_permissions.py @@ -716,3 +716,59 @@ def has_object_permission(self, request, view, obj): composed_perm = (IsAuthenticatedUserOwner | permissions.IsAdminUser) hasperm = composed_perm().has_object_permission(request, None, None) assert hasperm is False + + def test_operand_holder_is_hashable(self): + assert hash((permissions.IsAuthenticated & permissions.IsAdminUser)) + + def test_operand_holder_hash_same_for_same_operands_and_operator(self): + first_operand_holder = ( + permissions.IsAuthenticated & permissions.IsAdminUser + ) + second_operand_holder = ( + permissions.IsAuthenticated & permissions.IsAdminUser + ) + + assert hash(first_operand_holder) == hash(second_operand_holder) + + def test_operand_holder_hash_differs_for_different_operands(self): + first_operand_holder = ( + permissions.IsAuthenticated & permissions.IsAdminUser + ) + second_operand_holder = ( + permissions.AllowAny & permissions.IsAdminUser + ) + third_operand_holder = ( + permissions.IsAuthenticated & permissions.AllowAny + ) + + assert hash(first_operand_holder) != hash(second_operand_holder) + assert hash(first_operand_holder) != hash(third_operand_holder) + assert hash(second_operand_holder) != hash(third_operand_holder) + + def test_operand_holder_hash_differs_for_different_operators(self): + first_operand_holder = ( + permissions.IsAuthenticated & permissions.IsAdminUser + ) + second_operand_holder = ( + permissions.IsAuthenticated | permissions.IsAdminUser + ) + + assert hash(first_operand_holder) != hash(second_operand_holder) + + def test_filtering_permissions(self): + unfiltered_permissions = [ + permissions.IsAuthenticated & permissions.IsAdminUser, + permissions.IsAuthenticated & permissions.IsAdminUser, + permissions.AllowAny, + ] + expected_permissions = [ + permissions.IsAuthenticated & permissions.IsAdminUser, + permissions.AllowAny, + ] + + filtered_permissions = [ + perm for perm + in dict.fromkeys(unfiltered_permissions) + ] + + assert filtered_permissions == expected_permissions From e13688f0c0d32672d31ef3b9474c2a9f9dd12ae9 Mon Sep 17 00:00:00 2001 From: Devid <13779643+sevdog@users.noreply.github.com> Date: Tue, 18 Jun 2024 19:03:37 +0100 Subject: [PATCH 393/450] Remove long deprecated code from request wrapper (#9441) --- rest_framework/request.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/rest_framework/request.py b/rest_framework/request.py index f30578fa24..b29e64d160 100644 --- a/rest_framework/request.py +++ b/rest_framework/request.py @@ -422,13 +422,6 @@ def __getattr__(self, attr): except AttributeError: return self.__getattribute__(attr) - @property - def DATA(self): - raise NotImplementedError( - '`request.DATA` has been deprecated in favor of `request.data` ' - 'since version 3.0, and has been fully removed as of version 3.2.' - ) - @property def POST(self): # Ensure that request.POST uses our request parsing. @@ -447,13 +440,6 @@ def FILES(self): self._load_data_and_files() return self._files - @property - def QUERY_PARAMS(self): - raise NotImplementedError( - '`request.QUERY_PARAMS` has been deprecated in favor of `request.query_params` ' - 'since version 3.0, and has been fully removed as of version 3.2.' - ) - def force_plaintext_errors(self, value): # Hack to allow our exception handler to force choice of # plaintext or html error responses. From 7297f197015dce61b7f00fae80540df0cc7a4fc8 Mon Sep 17 00:00:00 2001 From: Martijn Jacobs Date: Mon, 24 Jun 2024 11:31:49 +0200 Subject: [PATCH 394/450] Add adrf as a third party package for Django REST framework (#9198) --- docs/community/third-party-packages.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md index a92da82fca..5938364114 100644 --- a/docs/community/third-party-packages.md +++ b/docs/community/third-party-packages.md @@ -46,6 +46,10 @@ Check out a grid detailing all the packages and ecosystem around Django REST Fra To submit new content, [open an issue][drf-create-issue] or [create a pull request][drf-create-pr]. +## Async Support + +* [adrf](https://github.com/em1208/adrf) - Async support, provides async Views, ViewSets, and Serializers. + ### Authentication * [djangorestframework-digestauth][djangorestframework-digestauth] - Provides Digest Access Authentication support. From 4d0662663a360bc0656f019cf215c554e466bb75 Mon Sep 17 00:00:00 2001 From: Francesco Cataldo <78490028+FraCata00@users.noreply.github.com> Date: Thu, 27 Jun 2024 14:19:59 +0200 Subject: [PATCH 395/450] fix(release-notes): fix wronk link PR(#9435) on release-notes 3.15.2 (#9444) Co-authored-by: Francesco --- docs/community/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index 5ec415a799..c3294f5954 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -42,7 +42,7 @@ You can determine your currently installed version using `pip show`: **Date**: 14th June 2024 -* Fix potential XSS vulnerability in browsable API. [#9435](https://github.com/encode/django-rest-framework/pull/9157) +* Fix potential XSS vulnerability in browsable API. [#9435](https://github.com/encode/django-rest-framework/pull/9435) * Revert "Ensure CursorPagination respects nulls in the ordering field". [#9381](https://github.com/encode/django-rest-framework/pull/9381) * Use warnings rather than logging a warning for DecimalField. [#9367](https://github.com/encode/django-rest-framework/pull/9367) * Remove unused code. [#9393](https://github.com/encode/django-rest-framework/pull/9393) From e9f3fd250aa4176b43753097add1ddcd73ea9d55 Mon Sep 17 00:00:00 2001 From: Alvaro Vega Date: Sat, 29 Jun 2024 09:48:31 +0200 Subject: [PATCH 396/450] Update release-notes.md (#9451) --- docs/community/release-notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index c3294f5954..3e5d3ebc5a 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -46,6 +46,7 @@ You can determine your currently installed version using `pip show`: * Revert "Ensure CursorPagination respects nulls in the ordering field". [#9381](https://github.com/encode/django-rest-framework/pull/9381) * Use warnings rather than logging a warning for DecimalField. [#9367](https://github.com/encode/django-rest-framework/pull/9367) * Remove unused code. [#9393](https://github.com/encode/django-rest-framework/pull/9393) +* Django < 4.2 and Python < 3.8 no longer supported. [#9393](https://github.com/encode/django-rest-framework/pull/9393) ### 3.15.1 From ccfe0a963799f52c137a7ed555648e7bbffa0d93 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Fri, 5 Jul 2024 16:56:58 +0100 Subject: [PATCH 397/450] Add Zuplo to sponsors (#9460) --- README.md | 5 ++++- docs/img/premium/zuplo-readme.png | Bin 0 -> 12409 bytes docs/index.md | 3 ++- setup.py | 1 - 4 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 docs/img/premium/zuplo-readme.png diff --git a/README.md b/README.md index d32fbc331c..fc44a461e6 100644 --- a/README.md +++ b/README.md @@ -28,8 +28,9 @@ The initial aim is to provide a single full-time position on REST framework. [![][cryptapi-img]][cryptapi-url] [![][fezto-img]][fezto-url] [![][svix-img]][svix-url] +[![][zuplo-img]][zuplo-url] -Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry][sentry-url], [Stream][stream-url], [Spacinov][spacinov-url], [Retool][retool-url], [bit.io][bitio-url], [PostHog][posthog-url], [CryptAPI][cryptapi-url], [FEZTO][fezto-url], and [Svix][svix-url]. +Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry][sentry-url], [Stream][stream-url], [Spacinov][spacinov-url], [Retool][retool-url], [bit.io][bitio-url], [PostHog][posthog-url], [CryptAPI][cryptapi-url], [FEZTO][fezto-url], [Svix][svix-url], and [Zuplo][zuplo-url]. --- @@ -196,6 +197,7 @@ Please see the [security policy][security-policy]. [cryptapi-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/cryptapi-readme.png [fezto-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/fezto-readme.png [svix-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/svix-premium.png +[zuplo-img]: https://raw.githubusercontent.com/encode/django-rest-framework/master/docs/img/premium/zuplo-readme.png [sentry-url]: https://getsentry.com/welcome/ [stream-url]: https://getstream.io/?utm_source=DjangoRESTFramework&utm_medium=Webpage_Logo_Ad&utm_content=Developer&utm_campaign=DjangoRESTFramework_Jan2022_HomePage @@ -206,6 +208,7 @@ Please see the [security policy][security-policy]. [cryptapi-url]: https://cryptapi.io [fezto-url]: https://www.fezto.xyz/?utm_source=DjangoRESTFramework [svix-url]: https://www.svix.com/?utm_source=django-REST&utm_medium=sponsorship +[zuplo-url]: https://zuplo.link/django-gh [oauth1-section]: https://www.django-rest-framework.org/api-guide/authentication/#django-rest-framework-oauth [oauth2-section]: https://www.django-rest-framework.org/api-guide/authentication/#django-oauth-toolkit diff --git a/docs/img/premium/zuplo-readme.png b/docs/img/premium/zuplo-readme.png new file mode 100644 index 0000000000000000000000000000000000000000..245ded35e6ca23cc9497992c19a887dba04b6ae4 GIT binary patch literal 12409 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

    aZ^{Oj(1+6AB14x6l!eykDz61_S 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 nITL&=^qt86PwD?8OSb}WnRxI9W>>-qmb{mzys literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index 864c1d0723..719eb6e6ef 100644 --- a/docs/index.md +++ b/docs/index.md @@ -75,10 +75,11 @@ continued development by **[signing up for a paid plan][funding]**.

  • CryptAPI
  • FEZTO
  • Svix
  • +
  • Zuplo
  • -*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=DjangoRESTFramework&utm_medium=Webpage_Logo_Ad&utm_content=Developer&utm_campaign=DjangoRESTFramework_Jan2022_HomePage), [Spacinov](https://www.spacinov.com/), [Retool](https://retool.com/?utm_source=djangorest&utm_medium=sponsorship), [bit.io](https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), [PostHog](https://posthog.com?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), [CryptAPI](https://cryptapi.io), [FEZTO](https://www.fezto.xyz/?utm_source=DjangoRESTFramework), and [Svix](https://www.svix.com/?utm_source=django-REST&utm_medium=sponsorship).* +*Many thanks to all our [wonderful sponsors][sponsors], and in particular to our premium backers, [Sentry](https://getsentry.com/welcome/), [Stream](https://getstream.io/?utm_source=DjangoRESTFramework&utm_medium=Webpage_Logo_Ad&utm_content=Developer&utm_campaign=DjangoRESTFramework_Jan2022_HomePage), [Spacinov](https://www.spacinov.com/), [Retool](https://retool.com/?utm_source=djangorest&utm_medium=sponsorship), [bit.io](https://bit.io/jobs?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), [PostHog](https://posthog.com?utm_source=DRF&utm_medium=sponsor&utm_campaign=DRF_sponsorship), [CryptAPI](https://cryptapi.io), [FEZTO](https://www.fezto.xyz/?utm_source=DjangoRESTFramework), [Svix](https://www.svix.com/?utm_source=django-REST&utm_medium=sponsorship), , and [Zuplo](https://zuplo.link/django-web).* --- diff --git a/setup.py b/setup.py index d2cfe877e2..568909bbc5 100755 --- a/setup.py +++ b/setup.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python3 import os import re import shutil From f74185b6ddd51758f5c54a4ac10e354de0c98f1e Mon Sep 17 00:00:00 2001 From: Devid <13779643+sevdog@users.noreply.github.com> Date: Mon, 15 Jul 2024 17:03:40 +0100 Subject: [PATCH 398/450] Fix get_template_context to handle also lists (#9467) --- rest_framework/renderers.py | 4 ++++ tests/test_htmlrenderer.py | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index ea73c6657e..b81f9ab46c 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -171,6 +171,10 @@ def resolve_template(self, template_names): def get_template_context(self, data, renderer_context): response = renderer_context['response'] + # in case a ValidationError is caught the data parameter may be a list + # see rest_framework.views.exception_handler + if isinstance(data, list): + return {'details': data, 'status_code': response.status_code} if response.exception: data['status_code'] = response.status_code return data diff --git a/tests/test_htmlrenderer.py b/tests/test_htmlrenderer.py index fa0f4efc61..aa0cfb19c8 100644 --- a/tests/test_htmlrenderer.py +++ b/tests/test_htmlrenderer.py @@ -8,6 +8,7 @@ from rest_framework import status from rest_framework.decorators import api_view, renderer_classes +from rest_framework.exceptions import ValidationError from rest_framework.renderers import TemplateHTMLRenderer from rest_framework.response import Response @@ -34,10 +35,17 @@ def not_found(request): raise Http404() +@api_view(('GET',)) +@renderer_classes((TemplateHTMLRenderer,)) +def validation_error(request): + raise ValidationError('error') + + urlpatterns = [ path('', example), path('permission_denied', permission_denied), path('not_found', not_found), + path('validation_error', validation_error), ] @@ -91,6 +99,12 @@ def test_permission_denied_html_view(self): self.assertEqual(response.content, b"403 Forbidden") self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8') + def test_validation_error_html_view(self): + response = self.client.get('/validation_error') + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual(response.content, b"400 Bad Request") + self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8') + # 2 tests below are based on order of if statements in corresponding method # of TemplateHTMLRenderer def test_get_template_names_returns_own_template_name(self): From b6ea11028f59677b62afc96b7f0faf017fc62814 Mon Sep 17 00:00:00 2001 From: Andrea Grandi Date: Wed, 17 Jul 2024 18:50:09 +0200 Subject: [PATCH 399/450] Update tutorials-and-resources.md (#9476) --- docs/community/tutorials-and-resources.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/community/tutorials-and-resources.md b/docs/community/tutorials-and-resources.md index f283e0e4cc..408df21d7c 100644 --- a/docs/community/tutorials-and-resources.md +++ b/docs/community/tutorials-and-resources.md @@ -115,8 +115,10 @@ Want your Django REST Framework talk/tutorial/article to be added to our website [chatbot-using-drf-part1]: https://chatbotslife.com/chatbot-using-django-rest-framework-api-ai-slack-part-1-3-69c7e38b7b1e#.g2aceuncf [new-django-admin-with-drf-and-emberjs]: https://blog.levit.be/new-django-admin-with-emberjs-what-are-the-news/ [drf-schema]: https://drf-schema-adapter.readthedocs.io/en/latest/ -[creating-a-production-ready-api-with-python-and-drf-part1]: https://www.andreagrandi.it/2016/09/28/creating-production-ready-api-python-django-rest-framework-part-1/ -[creating-a-production-ready-api-with-python-and-drf-part2]: https://www.andreagrandi.it/2016/10/01/creating-a-production-ready-api-with-python-and-django-rest-framework-part-2/ +[creating-a-production-ready-api-with-python-and-drf-part1]: https://www.andreagrandi.it/posts/creating-production-ready-api-python-django-rest-framework-part-1/ +[creating-a-production-ready-api-with-python-and-drf-part2]: https://www.andreagrandi.it/posts/creating-a-production-ready-api-with-python-and-django-rest-framework-part-2/ +[creating-a-production-ready-api-with-python-and-drf-part3]: https://www.andreagrandi.it/posts/creating-a-production-ready-api-with-python-and-django-rest-framework-part-3/ +[creating-a-production-ready-api-with-python-and-drf-part4]: https://www.andreagrandi.it/posts/creating-a-production-ready-api-with-python-and-django-rest-framework-part-4/ [django-rest-framework-tutorial-build-a-blog]: https://wsvincent.com/django-rest-framework-tutorial/ [django-rest-framework-react-tutorial-build-a-todo-list]: https://wsvincent.com/django-rest-framework-react-tutorial/ [django-rest-api-so-easy]: https://www.youtube.com/watch?v=cqP758k1BaQ From 8e304e1adbb0f99f91a15ed3abd379104bba3b89 Mon Sep 17 00:00:00 2001 From: James McHugh Date: Wed, 17 Jul 2024 12:51:39 -0400 Subject: [PATCH 400/450] Fixed AttributeError raised by data property being silently ignored (#9455) Signed-off-by: James Riley McHugh Co-authored-by: James Riley McHugh --- rest_framework/request.py | 11 +++++++---- tests/test_request.py | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/rest_framework/request.py b/rest_framework/request.py index b29e64d160..1527e435b3 100644 --- a/rest_framework/request.py +++ b/rest_framework/request.py @@ -217,7 +217,8 @@ def query_params(self): @property def data(self): if not _hasattr(self, '_full_data'): - self._load_data_and_files() + with wrap_attributeerrors(): + self._load_data_and_files() return self._full_data @property @@ -420,13 +421,14 @@ def __getattr__(self, attr): _request = self.__getattribute__("_request") return getattr(_request, attr) except AttributeError: - return self.__getattribute__(attr) + raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{attr}'") @property def POST(self): # Ensure that request.POST uses our request parsing. if not _hasattr(self, '_data'): - self._load_data_and_files() + with wrap_attributeerrors(): + self._load_data_and_files() if is_form_media_type(self.content_type): return self._data return QueryDict('', encoding=self._request._encoding) @@ -437,7 +439,8 @@ def FILES(self): # Different from the other two cases, which are not valid property # names on the WSGIRequest class. if not _hasattr(self, '_files'): - self._load_data_and_files() + with wrap_attributeerrors(): + self._load_data_and_files() return self._files def force_plaintext_errors(self, value): diff --git a/tests/test_request.py b/tests/test_request.py index e37aa7dda1..4263f26829 100644 --- a/tests/test_request.py +++ b/tests/test_request.py @@ -126,6 +126,25 @@ def test_standard_behaviour_determines_non_form_content_PUT(self): request.parsers = (PlainTextParser(), ) assert request.data == content + def test_calling_data_fails_when_attribute_error_is_raised(self): + """ + Ensure attribute errors raised when parsing are properly re-raised. + """ + expected_message = "Internal error" + + class BrokenParser: + media_type = "application/json" + + def parse(self, *args, **kwargs): + raise AttributeError(expected_message) + + http_request = factory.post('/', data={}, format="json") + request = Request(http_request) + request.parsers = (BrokenParser,) + + with self.assertRaisesMessage(WrappedAttributeError, expected_message): + request.data + class MockView(APIView): authentication_classes = (SessionAuthentication,) From 518eb22e67b443521f4a7e2be41cce603e59480b Mon Sep 17 00:00:00 2001 From: Yuekui Date: Mon, 5 Aug 2024 03:36:50 -0700 Subject: [PATCH 401/450] Fix unique_together validation with source (#9482) --- rest_framework/validators.py | 13 +++++++------ tests/test_validators.py | 22 ++++++++++++++++++++++ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/rest_framework/validators.py b/rest_framework/validators.py index 3f09c15cd6..71ebc2ca9f 100644 --- a/rest_framework/validators.py +++ b/rest_framework/validators.py @@ -159,17 +159,18 @@ def __call__(self, attrs, serializer): queryset = self.filter_queryset(attrs, queryset, serializer) queryset = self.exclude_current_instance(attrs, queryset, serializer.instance) + checked_names = [ + serializer.fields[field_name].source for field_name in self.fields + ] # Ignore validation if any field is None if serializer.instance is None: - checked_values = [ - value for field, value in attrs.items() if field in self.fields - ] + checked_values = [attrs[field_name] for field_name in checked_names] else: # Ignore validation if all field values are unchanged checked_values = [ - value - for field, value in attrs.items() - if field in self.fields and value != getattr(serializer.instance, field) + attrs[field_name] + for field_name in checked_names + if attrs[field_name] != getattr(serializer.instance, field_name) ] if checked_values and None not in checked_values and qs_exists(queryset): diff --git a/tests/test_validators.py b/tests/test_validators.py index c38dc11345..4bb8658d5b 100644 --- a/tests/test_validators.py +++ b/tests/test_validators.py @@ -469,6 +469,28 @@ def test_ignore_validation_for_unchanged_fields(self): assert serializer.is_valid() assert not mock.called + @patch("rest_framework.validators.qs_exists") + def test_unique_together_with_source(self, mock_qs_exists): + class UniqueTogetherWithSourceSerializer(serializers.ModelSerializer): + name = serializers.CharField(source="race_name") + pos = serializers.IntegerField(source="position") + + class Meta: + model = UniquenessTogetherModel + fields = ["name", "pos"] + + data = {"name": "Paris Marathon", "pos": 1} + instance = UniquenessTogetherModel.objects.create( + race_name="Paris Marathon", position=1 + ) + serializer = UniqueTogetherWithSourceSerializer(data=data) + assert not serializer.is_valid() + assert mock_qs_exists.called + mock_qs_exists.reset_mock() + serializer = UniqueTogetherWithSourceSerializer(data=data, instance=instance) + assert serializer.is_valid() + assert not mock_qs_exists.called + def test_filter_queryset_do_not_skip_existing_attribute(self): """ filter_queryset should add value from existing instance attribute From f113ab6b68e5ab8c395a93f168fe46c77c05b324 Mon Sep 17 00:00:00 2001 From: Dave Kalu Date: Mon, 5 Aug 2024 17:26:41 +0400 Subject: [PATCH 402/450] Update tutorials-and-resources.md (#9479) Included the remaining parts (part 3 and 4) of Andrea Grandi's tutorial on creating production ready APIs with DRF. --- docs/community/tutorials-and-resources.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/community/tutorials-and-resources.md b/docs/community/tutorials-and-resources.md index 408df21d7c..b128160da7 100644 --- a/docs/community/tutorials-and-resources.md +++ b/docs/community/tutorials-and-resources.md @@ -39,6 +39,8 @@ There are a wide range of resources available for learning and using Django REST * [Check Credentials Using Django REST Framework][check-credentials-using-django-rest-framework] * [Creating a Production Ready API with Python and Django REST Framework – Part 1][creating-a-production-ready-api-with-python-and-drf-part1] * [Creating a Production Ready API with Python and Django REST Framework – Part 2][creating-a-production-ready-api-with-python-and-drf-part2] +* [Creating a Production Ready API with Python and Django REST Framework – Part 3][creating-a-production-ready-api-with-python-and-drf-part3] +* [Creating a Production Ready API with Python and Django REST Framework – Part 4][creating-a-production-ready-api-with-python-and-drf-part4] * [Django REST Framework Tutorial - Build a Blog API][django-rest-framework-tutorial-build-a-blog] * [Django REST Framework & React Tutorial - Build a Todo List API][django-rest-framework-react-tutorial-build-a-todo-list] * [Tutorial: Django REST with React (Django 2.0)][django-rest-react-valentinog] From 2f28e7086da23efd3309d0767eb1b513e420d9ae Mon Sep 17 00:00:00 2001 From: Pedro Schlickmann Mendes Date: Mon, 26 Aug 2024 06:28:15 -0300 Subject: [PATCH 403/450] Update jobs.md (#9480) --- docs/community/jobs.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/community/jobs.md b/docs/community/jobs.md index aa1c5d4b4c..f3ce37d15f 100644 --- a/docs/community/jobs.md +++ b/docs/community/jobs.md @@ -7,6 +7,7 @@ Looking for a new Django REST Framework related role? On this site we provide a * [https://www.djangoproject.com/community/jobs/][djangoproject-website] * [https://www.python.org/jobs/][python-org-jobs] +* [https://django.on-remote.com][django-on-remote] * [https://djangogigs.com][django-gigs-com] * [https://djangojobs.net/jobs/][django-jobs-net] * [https://findwork.dev/django-rest-framework-jobs][findwork-dev] @@ -26,6 +27,7 @@ Wonder how else you can help? One of the best ways you can help Django REST Fram [djangoproject-website]: https://www.djangoproject.com/community/jobs/ [python-org-jobs]: https://www.python.org/jobs/ +[django-on-remote]: https://django.on-remote.com/ [django-gigs-com]: https://djangogigs.com [django-jobs-net]: https://djangojobs.net/jobs/ [findwork-dev]: https://findwork.dev/django-rest-framework-jobs From f6ea019bd9de190906973a5f743cb758a605ff81 Mon Sep 17 00:00:00 2001 From: akkuman <1075768094@qq.com> Date: Mon, 26 Aug 2024 17:31:07 +0800 Subject: [PATCH 404/450] Update django.po (#9505) --- rest_framework/locale/zh_CN/LC_MESSAGES/django.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rest_framework/locale/zh_CN/LC_MESSAGES/django.po b/rest_framework/locale/zh_CN/LC_MESSAGES/django.po index 7e131db425..719df05a13 100644 --- a/rest_framework/locale/zh_CN/LC_MESSAGES/django.po +++ b/rest_framework/locale/zh_CN/LC_MESSAGES/django.po @@ -353,12 +353,12 @@ msgstr "åˆ—č”Øå­—ę®µäøčƒ½äøŗē©ŗå€¼ć€‚" #: fields.py:1605 #, python-brace-format msgid "Ensure this field has at least {min_length} elements." -msgstr "" +msgstr "čÆ·ē”®äæčæ™äøŖå­—ę®µč‡³å°‘åŒ…å« {min_length} äøŖå…ƒē“ ć€‚" #: fields.py:1606 #, python-brace-format msgid "Ensure this field has no more than {max_length} elements." -msgstr "" +msgstr "čÆ·ē”®äæčæ™äøŖå­—ę®µäøčƒ½č¶…čæ‡ {max_length} äøŖå…ƒē“ ć€‚" #: fields.py:1682 #, python-brace-format @@ -367,7 +367,7 @@ msgstr "ęœŸęœ›ę˜ÆåŒ…å«ē±»ē›®ēš„å­—å…øļ¼Œå¾—åˆ°ē±»åž‹äøŗ ā€œ{input_type}ā€ć€‚" #: fields.py:1683 msgid "This dictionary may not be empty." -msgstr "" +msgstr "čæ™äøŖå­—å…øåÆčƒ½äøę˜Æē©ŗēš„ć€‚" #: fields.py:1755 msgid "Value must be valid JSON." From 5cc1028c2ff3bdfd9c367494d1fa36d1ca5c8805 Mon Sep 17 00:00:00 2001 From: Noam Date: Mon, 26 Aug 2024 18:32:50 +0300 Subject: [PATCH 405/450] Fix "Converter is already registered" deprecation warning. (#9512) --- rest_framework/urlpatterns.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/rest_framework/urlpatterns.py b/rest_framework/urlpatterns.py index bed5708eb8..47a8194cf0 100644 --- a/rest_framework/urlpatterns.py +++ b/rest_framework/urlpatterns.py @@ -1,10 +1,11 @@ from django.urls import URLResolver, include, path, re_path, register_converter +from django.urls.converters import get_converters from django.urls.resolvers import RoutePattern from rest_framework.settings import api_settings -def _get_format_path_converter(suffix_kwarg, allowed): +def _get_format_path_converter(allowed): if allowed: if len(allowed) == 1: allowed_pattern = allowed[0] @@ -23,11 +24,14 @@ def to_python(self, value): def to_url(self, value): return '.' + value + '/' + return FormatSuffixConverter + + +def _generate_converter_name(allowed): converter_name = 'drf_format_suffix' if allowed: converter_name += '_' + '_'.join(allowed) - - return converter_name, FormatSuffixConverter + return converter_name def apply_suffix_patterns(urlpatterns, suffix_pattern, suffix_required, suffix_route=None): @@ -104,8 +108,10 @@ def format_suffix_patterns(urlpatterns, suffix_required=False, allowed=None): else: suffix_pattern = r'\.(?P<%s>[a-z0-9]+)/?$' % suffix_kwarg - converter_name, suffix_converter = _get_format_path_converter(suffix_kwarg, allowed) - register_converter(suffix_converter, converter_name) + converter_name = _generate_converter_name(allowed) + if converter_name not in get_converters(): + suffix_converter = _get_format_path_converter(allowed) + register_converter(suffix_converter, converter_name) suffix_route = '<%s:%s>' % (converter_name, suffix_kwarg) From f593f5752c45e06147231bbfd74c02384791e074 Mon Sep 17 00:00:00 2001 From: rafaelgramoschi <45084757+rafaelgramoschi@users.noreply.github.com> Date: Tue, 27 Aug 2024 09:44:04 +0200 Subject: [PATCH 406/450] Update browsable-api.md (#9509) * Update browsable-api.md Deprecated url(), use re_path(). Show imports. * Update docs/topics/browsable-api.md * Update docs/topics/browsable-api.md --------- Co-authored-by: Asif Saif Uddin --- docs/topics/browsable-api.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/topics/browsable-api.md b/docs/topics/browsable-api.md index 9a95edfc60..fe35be8b31 100644 --- a/docs/topics/browsable-api.md +++ b/docs/topics/browsable-api.md @@ -20,9 +20,11 @@ By default, the API will return the format specified by the headers, which in th To quickly add authentication to the browesable api, add a routes named `"login"` and `"logout"` under the namespace `"rest_framework"`. DRF provides default routes for this which you can add to your urlconf: ```python +from django.urls import include, path + urlpatterns = [ # ... - url(r"^api-auth/", include("rest_framework.urls", namespace="rest_framework")) + path("api-auth/", include("rest_framework.urls", namespace="rest_framework")) ] ``` From 125ad42eb3922cd5ce1f4b332c91baf6d6162fb3 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Sat, 7 Sep 2024 12:07:28 +0100 Subject: [PATCH 407/450] Accept integers as min/max values of DecimalField (#9515) * Use Decimal for min/max values of DecimalField in tests * Update docs to mention that min/max values should be Decimal objects * Accept integer values for DecimalField min and max values * Update expected error messages in tests * Update expected warning message in tests --- docs/api-guide/fields.md | 4 ++-- rest_framework/fields.py | 8 ++++---- tests/test_fields.py | 12 ++++++------ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/api-guide/fields.md b/docs/api-guide/fields.md index 94b6e7c21a..5cbedd964a 100644 --- a/docs/api-guide/fields.md +++ b/docs/api-guide/fields.md @@ -291,8 +291,8 @@ Corresponds to `django.db.models.fields.DecimalField`. * `max_digits` The maximum number of digits allowed in the number. It must be either `None` or an integer greater than or equal to `decimal_places`. * `decimal_places` The number of decimal places to store with the number. * `coerce_to_string` Set to `True` if string values should be returned for the representation, or `False` if `Decimal` objects should be returned. Defaults to the same value as the `COERCE_DECIMAL_TO_STRING` settings key, which will be `True` unless overridden. If `Decimal` objects are returned by the serializer, then the final output format will be determined by the renderer. Note that setting `localize` will force the value to `True`. -* `max_value` Validate that the number provided is no greater than this value. -* `min_value` Validate that the number provided is no less than this value. +* `max_value` Validate that the number provided is no greater than this value. Should be an integer or `Decimal` object. +* `min_value` Validate that the number provided is no less than this value. Should be an integer or `Decimal` object. * `localize` Set to `True` to enable localization of input and output based on the current locale. This will also force `coerce_to_string` to `True`. Defaults to `False`. Note that data formatting is enabled if you have set `USE_L10N=True` in your settings file. * `rounding` Sets the rounding mode used when quantizing to the configured precision. Valid values are [`decimal` module rounding modes][python-decimal-rounding-modes]. Defaults to `None`. * `normalize_output` Will normalize the decimal value when serialized. This will strip all trailing zeroes and change the value's precision to the minimum required precision to be able to represent the value without losing data. Defaults to `False`. diff --git a/rest_framework/fields.py b/rest_framework/fields.py index cbc02e2c2b..6989edc0a8 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -986,10 +986,10 @@ def __init__(self, max_digits, decimal_places, coerce_to_string=None, max_value= self.max_value = max_value self.min_value = min_value - if self.max_value is not None and not isinstance(self.max_value, decimal.Decimal): - warnings.warn("max_value should be a Decimal instance.") - if self.min_value is not None and not isinstance(self.min_value, decimal.Decimal): - warnings.warn("min_value should be a Decimal instance.") + if self.max_value is not None and not isinstance(self.max_value, (int, decimal.Decimal)): + warnings.warn("max_value should be an integer or Decimal instance.") + if self.min_value is not None and not isinstance(self.min_value, (int, decimal.Decimal)): + warnings.warn("min_value should be an integer or Decimal instance.") if self.max_digits is not None and self.decimal_places is not None: self.max_whole_digits = self.max_digits - self.decimal_places diff --git a/tests/test_fields.py b/tests/test_fields.py index 4306817634..1403a6a35d 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1245,13 +1245,13 @@ class TestMinMaxDecimalField(FieldValues): '20.0': Decimal('20.0'), } invalid_inputs = { - '9.9': ['Ensure this value is greater than or equal to 10.'], - '20.1': ['Ensure this value is less than or equal to 20.'], + '9.9': ['Ensure this value is greater than or equal to 10.0.'], + '20.1': ['Ensure this value is less than or equal to 20.0.'], } outputs = {} field = serializers.DecimalField( max_digits=3, decimal_places=1, - min_value=10, max_value=20 + min_value=10.0, max_value=20.0 ) def test_warning_when_not_decimal_types(self, caplog): @@ -1260,14 +1260,14 @@ def test_warning_when_not_decimal_types(self, caplog): serializers.DecimalField( max_digits=3, decimal_places=1, - min_value=10, max_value=20 + min_value=10.0, max_value=20.0 ) assert len(w) == 2 assert all(issubclass(i.category, UserWarning) for i in w) - assert 'max_value should be a Decimal instance' in str(w[0].message) - assert 'min_value should be a Decimal instance' in str(w[1].message) + assert 'max_value should be an integer or Decimal instance' in str(w[0].message) + assert 'min_value should be an integer or Decimal instance' in str(w[1].message) class TestAllowEmptyStrDecimalFieldWithValidators(FieldValues): From 2ede857de0bbcc8863fadd6acdb1f8d5570d87dc Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Sat, 7 Sep 2024 12:21:18 +0100 Subject: [PATCH 408/450] Add official support for Django 5.1 (#9514) * Add official support for Django 5.1 Following the supported Python versions: https://docs.djangoproject.com/en/stable/faq/install/ * Add tests to cover compat with Django's 5.1 LoginRequiredMiddleware * First pass to create DRF's LoginRequiredMiddleware * Attempt to fix the tests * Revert custom middleware implementation * Disable LoginRequiredMiddleware on DRF views * Document how to integrate DRF with LoginRequiredMiddleware * Move login required tests under a separate test case * Revert redundant change * Disable LoginRequiredMiddleware on ViewSets * Add some integrations tests to cover various view types --- README.md | 2 +- docs/api-guide/authentication.md | 7 +++ docs/index.md | 2 +- rest_framework/views.py | 6 +++ rest_framework/viewsets.py | 7 +++ setup.py | 1 + tests/test_middleware.py | 74 +++++++++++++++++++++++++++++++- tests/test_views.py | 12 ++++++ tests/test_viewsets.py | 7 +++ tox.ini | 13 ++---- 10 files changed, 119 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index fc44a461e6..6e62fb39a1 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ Some reasons you might want to use REST framework: # Requirements * Python 3.8+ -* Django 5.0, 4.2 +* Django 4.2, 5.0, 5.1 We **highly recommend** and only officially support the latest patch release of each Python and Django series. diff --git a/docs/api-guide/authentication.md b/docs/api-guide/authentication.md index d6e6293fd9..8409a83c87 100644 --- a/docs/api-guide/authentication.md +++ b/docs/api-guide/authentication.md @@ -90,6 +90,12 @@ The kind of response that will be used depends on the authentication scheme. Al Note that when a request may successfully authenticate, but still be denied permission to perform the request, in which case a `403 Permission Denied` response will always be used, regardless of the authentication scheme. +## Django 5.1+ `LoginRequiredMiddleware` + +If you're running Django 5.1+ and use the [`LoginRequiredMiddleware`][login-required-middleware], please note that all views from DRF are opted-out of this middleware. This is because the authentication in DRF is based authentication and permissions classes, which may be determined after the middleware has been applied. Additionally, when the request is not authenticated, the middleware redirects the user to the login page, which is not suitable for API requests, where it's preferable to return a 401 status code. + +REST framework offers an equivalent mechanism for DRF views via the global settings, `DEFAULT_AUTHENTICATION_CLASSES` and `DEFAULT_PERMISSION_CLASSES`. They should be changed accordingly if you need to enforce that API requests are logged in. + ## Apache mod_wsgi specific configuration Note that if deploying to [Apache using mod_wsgi][mod_wsgi_official], the authorization header is not passed through to a WSGI application by default, as it is assumed that authentication will be handled by Apache, rather than at an application level. @@ -484,3 +490,4 @@ More information can be found in the [Documentation](https://django-rest-durin.r [drfpasswordless]: https://github.com/aaronn/django-rest-framework-passwordless [django-rest-authemail]: https://github.com/celiao/django-rest-authemail [django-rest-durin]: https://github.com/eshaan7/django-rest-durin +[login-required-middleware]: https://docs.djangoproject.com/en/stable/ref/middleware/#django.contrib.auth.middleware.LoginRequiredMiddleware \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 719eb6e6ef..0f809ec07a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -87,7 +87,7 @@ continued development by **[signing up for a paid plan][funding]**. REST framework requires the following: -* Django (4.2, 5.0) +* Django (4.2, 5.0, 5.1) * Python (3.8, 3.9, 3.10, 3.11, 3.12) We **highly recommend** and only officially support the latest patch release of diff --git a/rest_framework/views.py b/rest_framework/views.py index 411c1ee384..327ebe9032 100644 --- a/rest_framework/views.py +++ b/rest_framework/views.py @@ -1,6 +1,7 @@ """ Provides an APIView class that is the base of all views in REST framework. """ +from django import VERSION as DJANGO_VERSION from django.conf import settings from django.core.exceptions import PermissionDenied from django.db import connections, models @@ -139,6 +140,11 @@ def force_evaluation(): view.cls = cls view.initkwargs = initkwargs + # Exempt all DRF views from Django's LoginRequiredMiddleware. Users should set + # DEFAULT_PERMISSION_CLASSES to 'rest_framework.permissions.IsAuthenticated' instead + if DJANGO_VERSION >= (5, 1): + view.login_required = False + # Note: session based authentication is explicitly CSRF validated, # all other authentication is CSRF exempt. return csrf_exempt(view) diff --git a/rest_framework/viewsets.py b/rest_framework/viewsets.py index 2eba17b4a3..a9c90a8d9f 100644 --- a/rest_framework/viewsets.py +++ b/rest_framework/viewsets.py @@ -19,6 +19,7 @@ from functools import update_wrapper from inspect import getmembers +from django import VERSION as DJANGO_VERSION from django.urls import NoReverseMatch from django.utils.decorators import classonlymethod from django.views.decorators.csrf import csrf_exempt @@ -136,6 +137,12 @@ def view(request, *args, **kwargs): view.cls = cls view.initkwargs = initkwargs view.actions = actions + + # Exempt from Django's LoginRequiredMiddleware. Users should set + # DEFAULT_PERMISSION_CLASSES to 'rest_framework.permissions.IsAuthenticated' instead + if DJANGO_VERSION >= (5, 1): + view.login_required = False + return csrf_exempt(view) def initialize_request(self, request, *args, **kwargs): diff --git a/setup.py b/setup.py index 568909bbc5..08ef6df88c 100755 --- a/setup.py +++ b/setup.py @@ -91,6 +91,7 @@ def get_version(package): 'Framework :: Django', 'Framework :: Django :: 4.2', 'Framework :: Django :: 5.0', + 'Framework :: Django :: 5.1', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', diff --git a/tests/test_middleware.py b/tests/test_middleware.py index 6b2c91db72..11d4bc01eb 100644 --- a/tests/test_middleware.py +++ b/tests/test_middleware.py @@ -1,14 +1,21 @@ +import unittest + +import django from django.contrib.auth.models import User from django.http import HttpRequest from django.test import override_settings -from django.urls import path +from django.urls import include, path +from rest_framework import status from rest_framework.authentication import TokenAuthentication from rest_framework.authtoken.models import Token +from rest_framework.decorators import action, api_view from rest_framework.request import is_form_media_type from rest_framework.response import Response +from rest_framework.routers import SimpleRouter from rest_framework.test import APITestCase from rest_framework.views import APIView +from rest_framework.viewsets import GenericViewSet class PostView(APIView): @@ -16,9 +23,39 @@ def post(self, request): return Response(data=request.data, status=200) +class GetAPIView(APIView): + def get(self, request): + return Response(data="OK", status=200) + + +@api_view(['GET']) +def get_func_view(request): + return Response(data="OK", status=200) + + +class ListViewSet(GenericViewSet): + + def list(self, request, *args, **kwargs): + response = Response() + response.view = self + return response + + @action(detail=False, url_path='list-action') + def list_action(self, request, *args, **kwargs): + response = Response() + response.view = self + return response + + +router = SimpleRouter() +router.register(r'view-set', ListViewSet, basename='view_set') + urlpatterns = [ path('auth', APIView.as_view(authentication_classes=(TokenAuthentication,))), path('post', PostView.as_view()), + path('get', GetAPIView.as_view()), + path('get-func', get_func_view), + path('api/', include(router.urls)), ] @@ -74,3 +111,38 @@ def test_middleware_can_access_request_post_when_processing_response(self): response = self.client.post('/post', {'foo': 'bar'}, format='json') assert response.status_code == 200 + + +@unittest.skipUnless(django.VERSION >= (5, 1), 'Only for Django 5.1+') +@override_settings( + ROOT_URLCONF='tests.test_middleware', + MIDDLEWARE=( + # Needed for AuthenticationMiddleware + 'django.contrib.sessions.middleware.SessionMiddleware', + # Needed for LoginRequiredMiddleware + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.auth.middleware.LoginRequiredMiddleware', + ), +) +class TestLoginRequiredMiddlewareCompat(APITestCase): + """ + Django's 5.1+ LoginRequiredMiddleware should NOT apply to DRF views. + + Instead, users should put IsAuthenticated in their + DEFAULT_PERMISSION_CLASSES setting. + """ + def test_class_based_view(self): + response = self.client.get('/get') + assert response.status_code == status.HTTP_200_OK + + def test_function_based_view(self): + response = self.client.get('/get-func') + assert response.status_code == status.HTTP_200_OK + + def test_viewset_list(self): + response = self.client.get('/api/view-set/') + assert response.status_code == status.HTTP_200_OK + + def test_viewset_list_action(self): + response = self.client.get('/api/view-set/list-action/') + assert response.status_code == status.HTTP_200_OK diff --git a/tests/test_views.py b/tests/test_views.py index 2648c9fb38..11f24906ea 100644 --- a/tests/test_views.py +++ b/tests/test_views.py @@ -1,5 +1,7 @@ import copy +import unittest +from django import VERSION as DJANGO_VERSION from django.test import TestCase from rest_framework import status @@ -136,3 +138,13 @@ def test_get_exception_handler(self): response = self.view(request) assert response.status_code == 400 assert response.data == {'error': 'SyntaxError'} + + +@unittest.skipUnless(DJANGO_VERSION >= (5, 1), 'Only for Django 5.1+') +class TestLoginRequiredMiddlewareCompat(TestCase): + def test_class_based_view_opted_out(self): + class_based_view = BasicView.as_view() + assert class_based_view.login_required is False + + def test_function_based_view_opted_out(self): + assert basic_view.login_required is False diff --git a/tests/test_viewsets.py b/tests/test_viewsets.py index 8e439c86eb..68b1207c39 100644 --- a/tests/test_viewsets.py +++ b/tests/test_viewsets.py @@ -1,6 +1,8 @@ +import unittest from functools import wraps import pytest +from django import VERSION as DJANGO_VERSION from django.db import models from django.test import TestCase, override_settings from django.urls import include, path @@ -196,6 +198,11 @@ def test_viewset_action_attr_for_extra_action(self): assert get.view.action == 'list_action' assert head.view.action == 'list_action' + @unittest.skipUnless(DJANGO_VERSION >= (5, 1), 'Only for Django 5.1+') + def test_login_required_middleware_compat(self): + view = ActionViewSet.as_view(actions={'get': 'list'}) + assert view.login_required is False + class GetExtraActionsTests(TestCase): diff --git a/tox.ini b/tox.ini index 16cc3f8f44..eee1de4902 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,9 @@ [tox] envlist = {py38,py39}-{django42} - {py310}-{django42,django50,djangomain} - {py311}-{django42,django50,djangomain} - {py312}-{django42,django50,djangomain} + {py310}-{django42,django50,django51,djangomain} + {py311}-{django42,django50,django51,djangomain} + {py312}-{django42,django50,django51,djangomain} base dist docs @@ -17,6 +17,7 @@ setenv = deps = django42: Django>=4.2,<5.0 django50: Django>=5.0,<5.1 + django51: Django>=5.1,<5.2 djangomain: https://github.com/django/django/archive/main.tar.gz -rrequirements/requirements-testing.txt -rrequirements/requirements-optionals.txt @@ -42,12 +43,6 @@ deps = -rrequirements/requirements-testing.txt -rrequirements/requirements-documentation.txt -[testenv:py38-djangomain] -ignore_outcome = true - -[testenv:py39-djangomain] -ignore_outcome = true - [testenv:py310-djangomain] ignore_outcome = true From 7141bdb2dfcfa5fa23548485b8af6343d7258d13 Mon Sep 17 00:00:00 2001 From: Sina Amini <67522403+Sinaatkd@users.noreply.github.com> Date: Sat, 7 Sep 2024 15:00:13 +0330 Subject: [PATCH 409/450] Spelling mistakes in Farsi language were corrected (#9521) --- .../locale/fa/LC_MESSAGES/django.po | 3 ++- .../locale/fa_IR/LC_MESSAGES/django.mo | Bin 11989 -> 11989 bytes .../locale/fa_IR/LC_MESSAGES/django.po | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/rest_framework/locale/fa/LC_MESSAGES/django.po b/rest_framework/locale/fa/LC_MESSAGES/django.po index 6a5b99acf6..fd7001d327 100644 --- a/rest_framework/locale/fa/LC_MESSAGES/django.po +++ b/rest_framework/locale/fa/LC_MESSAGES/django.po @@ -7,6 +7,7 @@ # Aryan Baghi , 2020 # Omid Zarin , 2019 # Xavier Ordoquy , 2020 +# Sina Amini , 2024 msgid "" msgstr "" "Project-Id-Version: Django REST framework\n" @@ -187,7 +188,7 @@ msgstr "مطمعن ؓوید Ų·ŁˆŁ„ Ų§ŪŒŁ† مقدار حداقل {min_length} Ų§ #: fields.py:816 msgid "Enter a valid email address." -msgstr "پست Ų§Ł„Ś©ŲŖŲ±ŁˆŁ†ŪŒŚ©ŪŒ ŲµŲ­ŲØŲ­ وارد Ś©Ł†ŪŒŲÆ." +msgstr "پست Ų§Ł„Ś©ŲŖŲ±ŁˆŁ†ŪŒŚ©ŪŒ صحیح وارد Ś©Ł†ŪŒŲÆ." #: fields.py:827 msgid "This value does not match the required pattern." diff --git a/rest_framework/locale/fa_IR/LC_MESSAGES/django.mo b/rest_framework/locale/fa_IR/LC_MESSAGES/django.mo index 52d3f3bf84e43fd3972255b9ae363c56677e4d00..35775d9f2b5a8bd8177936a4563c023bc3ed6b99 100644 GIT binary patch delta 15 XcmcZ_do^~$V>zbVJ)57(ec%TGMEVFc delta 15 XcmcZ_do^~$V>zZ9D>grs`@jzXMU4ne diff --git a/rest_framework/locale/fa_IR/LC_MESSAGES/django.po b/rest_framework/locale/fa_IR/LC_MESSAGES/django.po index 61361d50e5..280725a73c 100644 --- a/rest_framework/locale/fa_IR/LC_MESSAGES/django.po +++ b/rest_framework/locale/fa_IR/LC_MESSAGES/django.po @@ -7,6 +7,7 @@ # Aryan Baghi , 2020 # Omid Zarin , 2019 # Xavier Ordoquy , 2020 +# Sina Amini , 2024 msgid "" msgstr "" "Project-Id-Version: Django REST framework\n" @@ -187,7 +188,7 @@ msgstr "مطمعن ؓوید Ų·ŁˆŁ„ Ų§ŪŒŁ† مقدار حداقل {min_length} Ų§ #: fields.py:816 msgid "Enter a valid email address." -msgstr "پست Ų§Ł„Ś©ŲŖŲ±ŁˆŁ†ŪŒŚ©ŪŒ ŲµŲ­ŲØŲ­ وارد Ś©Ł†ŪŒŲÆ." +msgstr "پست Ų§Ł„Ś©ŲŖŲ±ŁˆŁ†ŪŒŚ©ŪŒ صحیح وارد Ś©Ł†ŪŒŲÆ." #: fields.py:827 msgid "This value does not match the required pattern." From 61e33761ebf04a5ce795dac38b7ebe75405385b6 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Tue, 10 Sep 2024 12:29:31 +0100 Subject: [PATCH 410/450] Docs: move path converter into a separate section (#9524) And remove note regarding only working with Django 2.x or above, as it's been a while the feature is present, and DRF only supports Django 4.2+. I was looking for this but couldn't see it in the docs, having it in a separate section would make it easier to find and link to. Moreover, as it stands, one might think that the feature is limited to SimpleRouter, while it's also available for DefaultRouter. --- docs/api-guide/routers.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/api-guide/routers.md b/docs/api-guide/routers.md index 91ef0b96e5..d6bdeb2353 100644 --- a/docs/api-guide/routers.md +++ b/docs/api-guide/routers.md @@ -142,6 +142,24 @@ The above example would now generate the following URL pattern: * URL path: `^users/{pk}/change-password/$` * URL name: `'user-change_password'` +### Using Django `path()` with routers + +By default, the URLs created by routers use regular expressions. This behavior can be modified by setting the `use_regex_path` argument to `False` when instantiating the router, in this case [path converters][path-converters-topic-reference] are used. For example: + + router = SimpleRouter(use_regex_path=False) + +The router will match lookup values containing any characters except slashes and period characters. For a more restrictive (or lenient) lookup pattern, set the `lookup_value_regex` attribute on the viewset or `lookup_value_converter` if using path converters. For example, you can limit the lookup to valid UUIDs: + + class MyModelViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet): + lookup_field = 'my_model_id' + lookup_value_regex = '[0-9a-f]{32}' + + class MyPathModelViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet): + lookup_field = 'my_model_uuid' + lookup_value_converter = 'uuid' + +Note that path converters will be used on all URLs registered in the router, including viewset actions. + # API Guide ## SimpleRouter @@ -160,30 +178,13 @@ This router includes routes for the standard set of `list`, `create`, `retrieve` {prefix}/{lookup}/{url_path}/GET, or as specified by `methods` argument`@action(detail=True)` decorated method{basename}-{url_name} -By default the URLs created by `SimpleRouter` are appended with a trailing slash. +By default, the URLs created by `SimpleRouter` are appended with a trailing slash. This behavior can be modified by setting the `trailing_slash` argument to `False` when instantiating the router. For example: router = SimpleRouter(trailing_slash=False) Trailing slashes are conventional in Django, but are not used by default in some other frameworks such as Rails. Which style you choose to use is largely a matter of preference, although some javascript frameworks may expect a particular routing style. -By default the URLs created by `SimpleRouter` use regular expressions. This behavior can be modified by setting the `use_regex_path` argument to `False` when instantiating the router, in this case [path converters][path-converters-topic-reference] are used. For example: - - router = SimpleRouter(use_regex_path=False) - -**Note**: `use_regex_path=False` only works with Django 2.x or above, since this feature was introduced in 2.0.0. See [release note][simplified-routing-release-note] - - -The router will match lookup values containing any characters except slashes and period characters. For a more restrictive (or lenient) lookup pattern, set the `lookup_value_regex` attribute on the viewset or `lookup_value_converter` if using path converters. For example, you can limit the lookup to valid UUIDs: - - class MyModelViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet): - lookup_field = 'my_model_id' - lookup_value_regex = '[0-9a-f]{32}' - - class MyPathModelViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet): - lookup_field = 'my_model_uuid' - lookup_value_converter = 'uuid' - ## DefaultRouter This router is similar to `SimpleRouter` as above, but additionally includes a default API root view, that returns a response containing hyperlinks to all the list views. It also generates routes for optional `.json` style format suffixes. @@ -351,5 +352,4 @@ The [`DRF-extensions` package][drf-extensions] provides [routers][drf-extensions [drf-extensions-customizable-endpoint-names]: https://chibisov.github.io/drf-extensions/docs/#controller-endpoint-name [url-namespace-docs]: https://docs.djangoproject.com/en/4.0/topics/http/urls/#url-namespaces [include-api-reference]: https://docs.djangoproject.com/en/4.0/ref/urls/#include -[simplified-routing-release-note]: https://docs.djangoproject.com/en/2.0/releases/2.0/#simplified-url-routing-syntax [path-converters-topic-reference]: https://docs.djangoproject.com/en/2.0/topics/http/urls/#path-converters From a59aa2dfe195dcc22aca18d2a1d6995bbeb38186 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Wed, 11 Sep 2024 10:37:33 +0100 Subject: [PATCH 411/450] Add test covering Update view without queryset attribute (#9528) --- tests/test_prefetch_related.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/test_prefetch_related.py b/tests/test_prefetch_related.py index b07087c978..12ecbf2e6a 100644 --- a/tests/test_prefetch_related.py +++ b/tests/test_prefetch_related.py @@ -56,3 +56,17 @@ def test_prefetch_related_excluding_instance_from_original_queryset(self): 'email': 'tom@example.com' } assert response.data == expected + + def test_can_update_without_queryset_on_class_view(self): + class UserUpdateWithoutQuerySet(generics.UpdateAPIView): + serializer_class = UserSerializer + + def get_object(self): + return User.objects.get(pk=self.kwargs['pk']) + + request = factory.patch('/', {'username': 'new'}) + response = UserUpdateWithoutQuerySet.as_view()(request, pk=self.user.pk) + assert response.data['id'] == self.user.id + assert response.data['username'] == 'new' + self.user.refresh_from_db() + assert self.user.username == 'new' From b25028ac8f46984459f9d9e28069b797986ae476 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Wed, 11 Sep 2024 10:39:52 +0100 Subject: [PATCH 412/450] Add support for Python 3.13 (#9527) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add support for Python 3.13 * Fix extracting tox env with -dev Python versions * Fix view description inspection in Python 3.13 Python 3.13 introduced docstrings for None: https://github.com/python/cpython/pull/117813 In Python 3.12, this is an empty string: ``` āžœ python3.12 Python 3.12.6 (main, Sep 10 2024, 19:06:17) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> d = None >>> d.__doc__ >>> ``` In Python 3.13, it's no longer empty: ``` āžœ python3.13 Python 3.13.0rc2+ (heads/3.13:660baa1, Sep 10 2024, 18:57:50) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> d = None >>> d.__doc__ 'The type of the None singleton.' >>> ``` Adding a check in the inspector that get the view description out the view function docstring to catch this edge case. --- .github/workflows/main.yml | 3 ++- docs/index.md | 2 +- rest_framework/schemas/inspectors.py | 5 +++-- setup.py | 1 + tox.ini | 1 + 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6276dddcde..c48b3cf0c4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -19,6 +19,7 @@ jobs: - '3.10' - '3.11' - '3.12' + - '3.13-dev' steps: - uses: actions/checkout@v4 @@ -36,7 +37,7 @@ jobs: run: python -m pip install --upgrade codecov tox - name: Run tox targets for ${{ matrix.python-version }} - run: tox run -f py$(echo ${{ matrix.python-version }} | tr -d .) + run: tox run -f py$(echo ${{ matrix.python-version }} | tr -d . | cut -f 1 -d '-') - name: Run extra tox targets if: ${{ matrix.python-version == '3.9' }} diff --git a/docs/index.md b/docs/index.md index 0f809ec07a..24ae816728 100644 --- a/docs/index.md +++ b/docs/index.md @@ -88,7 +88,7 @@ continued development by **[signing up for a paid plan][funding]**. REST framework requires the following: * Django (4.2, 5.0, 5.1) -* Python (3.8, 3.9, 3.10, 3.11, 3.12) +* Python (3.8, 3.9, 3.10, 3.11, 3.12, 3.13) We **highly recommend** and only officially support the latest patch release of each Python and Django series. diff --git a/rest_framework/schemas/inspectors.py b/rest_framework/schemas/inspectors.py index cb880e79d6..e027b46a70 100644 --- a/rest_framework/schemas/inspectors.py +++ b/rest_framework/schemas/inspectors.py @@ -79,8 +79,9 @@ def get_description(self, path, method): view = self.view method_name = getattr(view, 'action', method.lower()) - method_docstring = getattr(view, method_name, None).__doc__ - if method_docstring: + method_func = getattr(view, method_name, None) + method_docstring = method_func.__doc__ + if method_func and method_docstring: # An explicit docstring on the method or action. return self._get_description_section(view, method.lower(), formatting.dedent(smart_str(method_docstring))) else: diff --git a/setup.py b/setup.py index 08ef6df88c..67904ec61f 100755 --- a/setup.py +++ b/setup.py @@ -102,6 +102,7 @@ def get_version(package): 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13', 'Programming Language :: Python :: 3 :: Only', 'Topic :: Internet :: WWW/HTTP', ], diff --git a/tox.ini b/tox.ini index eee1de4902..f565a12819 100644 --- a/tox.ini +++ b/tox.ini @@ -4,6 +4,7 @@ envlist = {py310}-{django42,django50,django51,djangomain} {py311}-{django42,django50,django51,djangomain} {py312}-{django42,django50,django51,djangomain} + {py313}-{django51,djangomain} base dist docs From 9921c7554f3d8ce435e45bafd27f4b241beb66f1 Mon Sep 17 00:00:00 2001 From: Peter Thomassen <4242683+peterthomassen@users.noreply.github.com> Date: Thu, 19 Sep 2024 14:11:31 +0200 Subject: [PATCH 413/450] Fix Transifex link (#9541) --- docs/topics/internationalization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/topics/internationalization.md b/docs/topics/internationalization.md index 267ccdb377..2f8f2abf09 100644 --- a/docs/topics/internationalization.md +++ b/docs/topics/internationalization.md @@ -105,7 +105,7 @@ For API clients the most appropriate of these will typically be to use the `Acce [cite]: https://youtu.be/Wa0VfS2q94Y [django-translation]: https://docs.djangoproject.com/en/stable/topics/i18n/translation [custom-exception-handler]: ../api-guide/exceptions.md#custom-exception-handling -[transifex-project]: https://www.transifex.com/projects/p/django-rest-framework/ +[transifex-project]: https://explore.transifex.com/django-rest-framework-1/django-rest-framework/ [django-po-source]: https://raw.githubusercontent.com/encode/django-rest-framework/master/rest_framework/locale/en_US/LC_MESSAGES/django.po [django-language-preference]: https://docs.djangoproject.com/en/stable/topics/i18n/translation/#how-django-discovers-language-preference [django-locale-paths]: https://docs.djangoproject.com/en/stable/ref/settings/#std:setting-LOCALE_PATHS From 81613c0e51b5a755a6a22782452ccd3cc8364f72 Mon Sep 17 00:00:00 2001 From: Gabriel Mitelman Tkacz <55806524+gtkacz@users.noreply.github.com> Date: Fri, 20 Sep 2024 07:34:37 -0300 Subject: [PATCH 414/450] Fixing and adding pt-br translations (#9535) --- .../locale/pt_BR/LC_MESSAGES/django.po | 61 ++++++++++--------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/rest_framework/locale/pt_BR/LC_MESSAGES/django.po b/rest_framework/locale/pt_BR/LC_MESSAGES/django.po index 40651552d7..4d47ce3b9e 100644 --- a/rest_framework/locale/pt_BR/LC_MESSAGES/django.po +++ b/rest_framework/locale/pt_BR/LC_MESSAGES/django.po @@ -9,6 +9,7 @@ # Filipe Rinaldi , 2015 # Hugo Leonardo Chalhoub MendonƧa , 2015 # Jonatas Baldin , 2017 +# Gabriel Mitelman Tkacz , 2024 msgid "" msgstr "" "Project-Id-Version: Django REST framework\n" @@ -106,11 +107,11 @@ msgstr "Ocorreu um erro de servidor." #: exceptions.py:142 msgid "Invalid input." -msgstr "" +msgstr "Entrada invĆ”lida" #: exceptions.py:161 msgid "Malformed request." -msgstr "Pedido malformado." +msgstr "Requisição malformada." #: exceptions.py:167 msgid "Incorrect authentication credentials." @@ -149,12 +150,12 @@ msgstr "Pedido foi limitado." #: exceptions.py:224 #, python-brace-format msgid "Expected available in {wait} second." -msgstr "" +msgstr "DisponĆ­vel em {wait} segundo." #: exceptions.py:225 #, python-brace-format msgid "Expected available in {wait} seconds." -msgstr "" +msgstr "DisponĆ­vel em {wait} segundos." #: fields.py:316 relations.py:245 relations.py:279 validators.py:90 #: validators.py:183 @@ -167,15 +168,15 @@ msgstr "Este campo nĆ£o pode ser nulo." #: fields.py:701 msgid "Must be a valid boolean." -msgstr "" +msgstr "Deve ser um valor booleano vĆ”lido." #: fields.py:766 msgid "Not a valid string." -msgstr "" +msgstr "NĆ£o Ć© uma string vĆ”lida." #: fields.py:767 msgid "This field may not be blank." -msgstr "Este campo nĆ£o pode ser em branco." +msgstr "Este campo nĆ£o pode estar em branco." #: fields.py:768 fields.py:1881 #, python-brace-format @@ -205,7 +206,7 @@ msgstr "Entrar um \"slug\" vĆ”lido que consista de letras, nĆŗmeros, sublinhados msgid "" "Enter a valid \"slug\" consisting of Unicode letters, numbers, underscores, " "or hyphens." -msgstr "" +msgstr "Digite um \"slug\" vĆ”lido que consista de letras Unicode, nĆŗmeros, sublinhados ou hĆ­fens." #: fields.py:854 msgid "Enter a valid URL." @@ -213,7 +214,7 @@ msgstr "Entrar um URL vĆ”lido." #: fields.py:867 msgid "Must be a valid UUID." -msgstr "" +msgstr "Deve ser um UUID vĆ”lido." #: fields.py:903 msgid "Enter a valid IPv4 or IPv6 address." @@ -271,11 +272,11 @@ msgstr "NecessĆ”rio uma data e hora mas recebeu uma data." #: fields.py:1150 #, python-brace-format msgid "Invalid datetime for the timezone \"{timezone}\"." -msgstr "" +msgstr "Data e hora invĆ”lidas para o fuso horĆ”rio \"{timezone}\"." #: fields.py:1151 msgid "Datetime value out of range." -msgstr "" +msgstr "Valor de data e hora fora do intervalo." #: fields.py:1236 #, python-brace-format @@ -299,7 +300,7 @@ msgstr "Formato invĆ”lido para Duração. Use um dos formatos a seguir: {format} #: fields.py:1399 fields.py:1456 #, python-brace-format msgid "\"{input}\" is not a valid choice." -msgstr "\"{input}\" nĆ£o Ć© um escolha vĆ”lido." +msgstr "\"{input}\" nĆ£o Ć© um escolha vĆ”lida." #: fields.py:1402 #, python-brace-format @@ -309,7 +310,7 @@ msgstr "Mais de {count} itens..." #: fields.py:1457 fields.py:1603 relations.py:485 serializers.py:570 #, python-brace-format msgid "Expected a list of items but got type \"{input_type}\"." -msgstr "NecessĆ”rio uma lista de itens, mas recebeu tipo \"{input_type}\"." +msgstr "Esperava uma lista de itens, mas recebeu tipo \"{input_type}\"." #: fields.py:1458 msgid "This selection may not be empty." @@ -356,21 +357,21 @@ msgstr "Esta lista nĆ£o pode estar vazia." #: fields.py:1605 #, python-brace-format msgid "Ensure this field has at least {min_length} elements." -msgstr "" +msgstr "Certifique-se de que este campo tenha pelo menos {min_length} elementos." #: fields.py:1606 #, python-brace-format msgid "Ensure this field has no more than {max_length} elements." -msgstr "" +msgstr "Certifique-se de que este campo nĆ£o tenha mais que {max_length} elementos." #: fields.py:1682 #, python-brace-format msgid "Expected a dictionary of items but got type \"{input_type}\"." -msgstr "Esperado um dicionĆ”rio de itens mas recebeu tipo \"{input_type}\"." +msgstr "Esperava um dicionĆ”rio de itens mas recebeu tipo \"{input_type}\"." #: fields.py:1683 msgid "This dictionary may not be empty." -msgstr "" +msgstr "Este dicionĆ”rio nĆ£o pode estar vazio." #: fields.py:1755 msgid "Value must be valid JSON." @@ -382,7 +383,7 @@ msgstr "Buscar" #: filters.py:50 msgid "A search term." -msgstr "" +msgstr "Um termo de busca." #: filters.py:180 templates/rest_framework/filters/ordering.html:3 msgid "Ordering" @@ -390,7 +391,7 @@ msgstr "Ordenando" #: filters.py:181 msgid "Which field to use when ordering the results." -msgstr "" +msgstr "Qual campo usar ao ordenar os resultados." #: filters.py:287 msgid "ascending" @@ -402,11 +403,11 @@ msgstr "descendente" #: pagination.py:174 msgid "A page number within the paginated result set." -msgstr "" +msgstr "Um nĆŗmero de pĆ”gina dentro do conjunto de resultados paginado." #: pagination.py:179 pagination.py:372 pagination.py:590 msgid "Number of results to return per page." -msgstr "" +msgstr "NĆŗmero de resultados a serem retornados por pĆ”gina." #: pagination.py:189 msgid "Invalid page." @@ -414,11 +415,11 @@ msgstr "PĆ”gina invĆ”lida." #: pagination.py:374 msgid "The initial index from which to return the results." -msgstr "" +msgstr "O Ć­ndice inicial a partir do qual retornar os resultados." #: pagination.py:581 msgid "The pagination cursor value." -msgstr "" +msgstr "O valor do cursor de paginação." #: pagination.py:583 msgid "Invalid cursor" @@ -432,7 +433,7 @@ msgstr "Pk invĆ”lido \"{pk_value}\" - objeto nĆ£o existe." #: relations.py:247 #, python-brace-format msgid "Incorrect type. Expected pk value, received {data_type}." -msgstr "Tipo incorreto. Esperado valor pk, recebeu {data_type}." +msgstr "Tipo incorreto. Esperava valor pk, recebeu {data_type}." #: relations.py:280 msgid "Invalid hyperlink - No URL match." @@ -462,20 +463,20 @@ msgstr "Valor invĆ”lido." #: schemas/utils.py:32 msgid "unique integer value" -msgstr "" +msgstr "valor inteiro Ćŗnico" #: schemas/utils.py:34 msgid "UUID string" -msgstr "" +msgstr "string UUID" #: schemas/utils.py:36 msgid "unique value" -msgstr "" +msgstr "valor Ćŗnico" #: schemas/utils.py:38 #, python-brace-format msgid "A {value_type} identifying this {name}." -msgstr "" +msgstr "Um {value_type} que identifica este {name}." #: serializers.py:337 #, python-brace-format @@ -485,7 +486,7 @@ msgstr "Dado invĆ”lido. NecessĆ”rio um dicionĆ”rio mas recebeu {datatype}." #: templates/rest_framework/admin.html:116 #: templates/rest_framework/base.html:136 msgid "Extra Actions" -msgstr "" +msgstr "AƧƵes Extras" #: templates/rest_framework/admin.html:130 #: templates/rest_framework/base.html:150 @@ -540,7 +541,7 @@ msgstr "Os campos {field_names} devem criar um set Ćŗnico." #: validators.py:171 #, python-brace-format msgid "Surrogate characters are not allowed: U+{code_point:X}." -msgstr "" +msgstr "Caracteres substitutos nĆ£o sĆ£o permitidos: U+{code_point:X}." #: validators.py:243 #, python-brace-format From 10b25e7d631afd7a44bb19772ed14ffbbdb5022f Mon Sep 17 00:00:00 2001 From: Oliver Sauder Date: Thu, 10 Oct 2024 02:39:36 +0400 Subject: [PATCH 415/450] Use final version of Python 3.13 (#9556) Final version of Python 3.13 has been released and is now also available on GitHub actions. --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c48b3cf0c4..d086554510 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -19,7 +19,7 @@ jobs: - '3.10' - '3.11' - '3.12' - - '3.13-dev' + - '3.13' steps: - uses: actions/checkout@v4 From d3dd45b3f48856c3513ab1eb5354194fa9898f39 Mon Sep 17 00:00:00 2001 From: Gabriel Date: Wed, 9 Oct 2024 19:41:39 -0300 Subject: [PATCH 416/450] Update 1-serialization.md (#9543) Making explicit the http GET method of the httpie calls. For some reason it is sending a POST instead of a GET request as it should be described here: https://httpie.io/docs/cli/optional-get-and-post Note: I was following the docs and testing it within the Git Bash windows console app for making the requests and debugging the DRF projenct in pycharm. --- docs/tutorial/1-serialization.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tutorial/1-serialization.md b/docs/tutorial/1-serialization.md index 1dac5e0d84..b9bf67acbb 100644 --- a/docs/tutorial/1-serialization.md +++ b/docs/tutorial/1-serialization.md @@ -321,7 +321,7 @@ You can install httpie using pip: Finally, we can get a list of all of the snippets: - http http://127.0.0.1:8000/snippets/ --unsorted + http GET http://127.0.0.1:8000/snippets/ --unsorted HTTP/1.1 200 OK ... @@ -354,7 +354,7 @@ Finally, we can get a list of all of the snippets: Or we can get a particular snippet by referencing its id: - http http://127.0.0.1:8000/snippets/2/ --unsorted + http GET http://127.0.0.1:8000/snippets/2/ --unsorted HTTP/1.1 200 OK ... From 9016efe3fc412488df92912c619f8f24fed2937c Mon Sep 17 00:00:00 2001 From: chee hong <71654184+cheehong1030@users.noreply.github.com> Date: Wed, 23 Oct 2024 22:09:36 +0800 Subject: [PATCH 417/450] Fix docs typo in Serializers Validators (#9563) --- docs/api-guide/serializers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api-guide/serializers.md b/docs/api-guide/serializers.md index eae79b62f6..8d56d36f5a 100644 --- a/docs/api-guide/serializers.md +++ b/docs/api-guide/serializers.md @@ -233,7 +233,7 @@ Serializer classes can also include reusable validators that are applied to the class EventSerializer(serializers.Serializer): name = serializers.CharField() - room_number = serializers.IntegerField(choices=[101, 102, 103, 201]) + room_number = serializers.ChoiceField(choices=[101, 102, 103, 201]) date = serializers.DateField() class Meta: From b31413d46ddd2d333e1200285251828ec798df4f Mon Sep 17 00:00:00 2001 From: Will Vincent Date: Tue, 12 Nov 2024 00:58:56 -0500 Subject: [PATCH 418/450] Tutorial updates (#9589) * update Django for APIs book cover * remove retired course from Treehouse * add DCUS2018 talk, update links from wsvincent.com tutorials to learndjango.com --- docs/community/tutorials-and-resources.md | 15 +++++++-------- docs/img/books/dfa-40-cover.jpg | Bin 0 -> 772861 bytes 2 files changed, 7 insertions(+), 8 deletions(-) create mode 100644 docs/img/books/dfa-40-cover.jpg diff --git a/docs/community/tutorials-and-resources.md b/docs/community/tutorials-and-resources.md index b128160da7..b23b299ac6 100644 --- a/docs/community/tutorials-and-resources.md +++ b/docs/community/tutorials-and-resources.md @@ -12,7 +12,7 @@ There are a wide range of resources available for learning and using Django REST - + @@ -28,7 +28,6 @@ There are a wide range of resources available for learning and using Django REST * [Beginner's Guide to the Django REST Framework][beginners-guide-to-the-django-rest-framework] * [Django REST Framework - An Introduction][drf-an-intro] * [Django REST Framework Tutorial][drf-tutorial] -* [Django REST Framework Course][django-rest-framework-course] * [Building a RESTful API with Django REST Framework][building-a-restful-api-with-drf] * [Getting Started with Django REST Framework and AngularJS][getting-started-with-django-rest-framework-and-angularjs] * [End to End Web App with Django REST Framework & AngularJS][end-to-end-web-app-with-django-rest-framework-angularjs] @@ -41,8 +40,8 @@ There are a wide range of resources available for learning and using Django REST * [Creating a Production Ready API with Python and Django REST Framework – Part 2][creating-a-production-ready-api-with-python-and-drf-part2] * [Creating a Production Ready API with Python and Django REST Framework – Part 3][creating-a-production-ready-api-with-python-and-drf-part3] * [Creating a Production Ready API with Python and Django REST Framework – Part 4][creating-a-production-ready-api-with-python-and-drf-part4] -* [Django REST Framework Tutorial - Build a Blog API][django-rest-framework-tutorial-build-a-blog] -* [Django REST Framework & React Tutorial - Build a Todo List API][django-rest-framework-react-tutorial-build-a-todo-list] +* [Django Polls Tutorial API][django-polls-api] +* [Django REST Framework Tutorial: Todo API][django-rest-framework-todo-api] * [Tutorial: Django REST with React (Django 2.0)][django-rest-react-valentinog] @@ -55,7 +54,7 @@ There are a wide range of resources available for learning and using Django REST * [Django REST API - So Easy You Can Learn It in 25 Minutes][django-rest-api-so-easy] * [Tom Christie about Django Rest Framework at Django: Under The Hood][django-under-hood-2014] * [Django REST Framework: Schemas, Hypermedia & Client Libraries][pycon-uk-2016] - +* [Finally Understand Authentication in Django REST Framework][django-con-2018] ### Tutorials @@ -105,7 +104,6 @@ Want your Django REST Framework talk/tutorial/article to be added to our website [api-development-with-django-and-django-rest-framework]: https://bnotions.com/news-and-insights/api-development-with-django-and-django-rest-framework/ [cdrf.co]:http://www.cdrf.co [medium-django-rest-framework]: https://medium.com/django-rest-framework -[django-rest-framework-course]: https://teamtreehouse.com/library/django-rest-framework [pycon-uk-2016]: https://www.youtube.com/watch?v=FjmiGh7OqVg [django-under-hood-2014]: https://www.youtube.com/watch?v=3cSsbe-tA0E [integrating-pandas-drf-and-bokeh]: https://web.archive.org/web/20180104205117/http://machinalis.com/blog/pandas-django-rest-framework-bokeh/ @@ -121,8 +119,8 @@ Want your Django REST Framework talk/tutorial/article to be added to our website [creating-a-production-ready-api-with-python-and-drf-part2]: https://www.andreagrandi.it/posts/creating-a-production-ready-api-with-python-and-django-rest-framework-part-2/ [creating-a-production-ready-api-with-python-and-drf-part3]: https://www.andreagrandi.it/posts/creating-a-production-ready-api-with-python-and-django-rest-framework-part-3/ [creating-a-production-ready-api-with-python-and-drf-part4]: https://www.andreagrandi.it/posts/creating-a-production-ready-api-with-python-and-django-rest-framework-part-4/ -[django-rest-framework-tutorial-build-a-blog]: https://wsvincent.com/django-rest-framework-tutorial/ -[django-rest-framework-react-tutorial-build-a-todo-list]: https://wsvincent.com/django-rest-framework-react-tutorial/ +[django-polls-api]: https://learndjango.com/tutorials/django-polls-tutorial-api +[django-rest-framework-todo-api]: https://learndjango.com/tutorials/django-rest-framework-tutorial-todo-api [django-rest-api-so-easy]: https://www.youtube.com/watch?v=cqP758k1BaQ [full-fledged-rest-api-with-django-oauth-tookit]: https://www.youtube.com/watch?v=M6Ud3qC2tTk [drf-in-your-pjs]: https://www.youtube.com/watch?v=xMtHsWa72Ww @@ -139,3 +137,4 @@ Want your Django REST Framework talk/tutorial/article to be added to our website [django-rest-react-valentinog]: https://www.valentinog.com/blog/tutorial-api-django-rest-react/ [doordash-implementing-rest-apis]: https://doordash.engineering/2013/10/07/implementing-rest-apis-with-embedded-privacy/ [developing-restful-apis-with-django-rest-framework]: https://testdriven.io/courses/django-rest-framework/ +[django-con-2018]: https://youtu.be/pY-oje5b5Qk?si=AOU6tLi0IL1_pVzq \ No newline at end of file diff --git a/docs/img/books/dfa-40-cover.jpg b/docs/img/books/dfa-40-cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cc47312c70368db3249d5407f926be7a40fe0201 GIT binary patch literal 772861 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%0Dyl&AJKJ=k%Cw+p?wDgs4vK4Whu&x0db%< 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≠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

    i$?4`CMH9)CT{)ezxt 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

  • -;6hwo z;`LvlrnrT~KRN@YMmitsLVjGmwmuEo4(6#>qe_!`zGn8;i;GZG1KdkIr}no~YeYfZ z)EN*PqU6w;^UToACKh?d>h9-rStvL6Pck)`mpN~?p<{fe!?bRgCKT<~c}`lC_0D@} zCoh3Z8i6K8pe^ZhaGI0<{M{jhJBPRip{ZMZw0uC_`4!Si3KacpA06|tMl-A1{5ns7 zZ-Y)w%hFQjp{ez*=?|7GKOqCwR3w6`L4eNiF7$MPo-);=2T7PN=y61JyKPH__XUcn zcXrTZ#$kQT!=ql0FE7rn9okP@HI6^1bl0 zn0qXK^%8oR2DCm?YNVA!s(I43NNyI6ZDraw?74}F%KFfeShQ^kcWc#BWRGd$ZE^Wm z*`-k!tK780i^<#d)K*eU7wUMMH2o$Ox>&C4vyU+A9l7~N~Cw9(!0`2AY%ap1f+Kmkd6W(8X%C7-WjRV2O&fVy$VJm zgfevL0#XtLq$h$QKoY;#vuDqlz0W@1`Q!Y)_08Vv=VF;faK)Frd7kIKuj{(6tM*N( zU(@>Zb@-bBp6#7t8TMbdsklU(MTbirw?1j5DyGUbT6?@OKi|&IQFa;_L-#_L0dTo3 zoUc1rSHM4;iBx#qX_H5e{Zo#6Sk@#am|mXiEa9?lR{8Q%IYGRly_Ze9-CH#w$a8o+ zDg(aJI)eNs8|eQ^Pt%EcdMryH{C+@a2LMv*cx*$>yPCKKnKvy>jcp{|6gn#$N_rYs z{lM4RE>y}V*{@4ba3V;pYHNG)UQ>)gS;_*3HQxM3&e!OboF}3sRq+Ev>x6ne^(Nwr zkS5-QMzez3YKmF$DlbQ^kGCSb{n%l~GN^R_mUu`Q&PJ0r6K&dG&wQ02T_l6FVu5-& zRza8@a-3^x%WX@7q>L0ZDh&4wTa|}3=-eJ;py@5qpk*OQ;BZ#N-erKbaJdf{Y)TA3 ziIL|4^QjRZy3lkAVm|}|{HQyz2TVN_i6md5B|bpvZDa4t&4et#<{k%LC!WPaOnc^Y zgi|~9H*gd3MTnh5k-jPHjGB8vEw}ce86tb(4)rOiv()WEp**F^l+`jri~#29mv=z& zcrYn_nw~G-q_a?Ti6wYy=khxQBS6E7F5P+`PZe6iGEp8nGZ075KYpOx*L6p0KlsD^ zg?#t6b?2+EpN4SzYH~HLo1hHmT3SyZ(vHA9`2ne10qg==mk5PIBVMf)DTM)r?!oy2 z+KnHteW)OUo_S5-*|@kwMt9Svqjzq4Iee|gy_(@M|V1bny}MuRkcMU#UNuU zUu+<$Tf&*B2iGqx*`2aQOGCh#Thon?f7u>J*w7d;r@CN!%gP4XuC+$klf-0uIX2Q{ z$a926d6x6F3o!neM?P5=uhRwe)k1$k@-EKQ4FzQQedPg)pFD#%w+D9yceWhn``n+n zX1Tkj4R)pJsR@5t%cVbou8)eam#~*`mzJ-0Wc))f_2;u`2JNQP znW{-*g~Wb8h2rtw}#=xPw^wM3$hF;9jOUCy)HJXralM8%oTw|>hiY} zT7is)(Dp*X8v4o?>PPHa4Y_co=`x{oJbP1gVGZY+As5 z;`>b78AE$f(V#~UMN$OwMeMj33t{- zx9!0*OfbGGuwy}<*o+J)p`>=wg~w(0!=B!nl;LyhPC=D9X*10uyF5|#oC4*BQul}k{v22MNTKBz8_EdGK@t zUJI8^Gqrg-6%z7Ayn5s@ zRjwD!EV5{c&w-Pj*f_1>=nwFl%X1oh1$^3Xb)3{0iWn%8(>OuF_Qqi0+d;`ti(Jhj z@5eQt3qk$Z`g&;@wcc!&1Sk8hd7FyN3HwXC6^~z4JpP0&RPYI;yU_Eren%E_BU*nt=p<_XQdacMc2^ zG_WfOG#^{+n)1JG1I&Lnz14CUPAg5NN#Sy`$<2n(dej0fGDQqn7B|@uPc53NT35iH z**v1Du4|)*|EDs7esx_J`<@2lK`c%~LVZ#XsCHex=#80V#lyuux)#vzPGFJ}C5w9Nw2k(D5= zZTnSx)Uee&#iWQ9I%n8!s~DKy0y@`oQFjmOln>qz|0h~d0A>9@oz*Hp0uewFbaohD zcM)s*6-uHZG5Z+?RP3!KLb8fi3dZCy3F(YgeQL$LdGRXP&6(G?rKu&w?#*0w%-Hbx zow69NUY59$=wd6jxN=@|@f#MB6M2o!=g`dup)#yi4@#?NH31F6;9lY$wIrJ2Bh&4{ zLl1l5T#rFX13*1XQm@N~q`7B@3U{}fK`zoZEt;3TM18X2Mv|E7w-dR$RQ5eGnIuMK z=OX7$hfC;jmb|3O5xZDnDofZ%Kct|0+h~1PMYepOq7_gHcaFdZVLnR@(>N6!m zdC5B~ycvRt-VZiisgX2vAvnzS3K82aEdxSG4>ri28TRRcj1_{FiXnTK$jMTjDV*(g zMZLL>%jg&5(aUPu#>baxrj1E={#J9I+)E`BfilZJd;r=)jtAIsHmW?GgHq*+3X8>o z`QU5CLsa~vz?A2(6sbtBQ!PGt+D+U+i{C4`5s!R@ERXko zY{oM#C4#orv&zXZJABf9K$Ri%@TrN0teeqeq?pi=>t~>usV2F8-c3o?;usRj^G^|C z`^PxL4TZDp}Q>dLZ@AxD5E8=<3pf zCdPmK;RfzEQo6BCB#xWTismJ~V*F+;a-%~1TSaJucT0};2 zTUl|L_k|y%ya@Bo`_Pk(k!RH4#_W074_A%^Is36qdzFH`Cac9p2%B!NpsyiJ`X*Uq z3y(fsI$_bkp6+o31bAUMh+N69(G2lNEf-g^=INXs!g_ApaM>mOS&0&BhVd z)I%L|hJ3m9Vh(sc>%{jz_kMVH;_-8Ox_=~M}~&P9ql=H@}|e<11f zCg{=!@NDRo;1vq#_|oQ4%G`tS;pycfT%rwfhIfJ1fXrb*~?j*J5R)Z#X`RtxGdNsx?sIw2F3)FjpC1 z`|I(=GKI7Td1Fp@O*%7sK{#ay4JkZb<||gw{Ic?DJFH0CY}2Zod!FUjU+dJ6C7i0k zg!g|vettNd0RRdMT6#9Qj}}Xphf9t>#v_*J`G6ucI-B^5u!}(*iSM2Nymy;Xo@=YM zZUABaT2s+U#nSMN>8=CTzf@Li?omxL5x)0d4@$cZIkFrLa~WVO?;4pTJ#9b>hNx^? zY`43}CvtVF72au1?{>iF>^AVomiUst!j<1WVXz|BCcTbdL8OVx;# z1WLfHj_&4LS!wai($pgJ8Dk~$xl2nC%-2ud7i5+?1g3+_Z;k7f<$AAInHjqmnZM8Y z0}%0B7xurw-2N-&A>T9~dW+Z|kEUdIwYBHqzsL0OKG>^gZr1v+}?iPcWfRVnGZ zuSG|?a+@&a9Fy749-|w%9GQueW4fB#{dSawuDhbIaz)eesW??!qDcM(jFBD5Sf8}B zQjw)x3Vvhi6Qm>Km@N8ouF1CWC`tnH9`Qc?vs*M#L8ch+=HU+E9^q`rKUJ)Ie#n?5 zdI{3NXBg_+aMlzufhL`iO(fe)dFk~RTre%qaBC8Yf_-%NqcAv~Llk%X0Wmvq_fN}e zPa$d-w+#uP5543v%FW}OpS_+2`z)oh-YUHMe(RHYde+8}{j30i*#zCeKP)guh zT82tB7dAr$o-oOoNv&G<3~YSLDY#Rl(CL2hjk&joEz1*fhG@Q&*(5U9%rEUg-&?+= zE&TfObkxk#*rY zu2Ak=kw|cl(*_f;AM_ToQjkl2=iquo&K3_KM*y~m%Y`PwrE09N`54+=pRT+#(KztA z#pO12(;zNqDbqAGSfv9JV8|bb9h;CE>%LnOSFB{39O4g5Rm|Qk=MZn&D4bUg1%D~( zvWMpT7l!2%doM2exaF*YR$(8DR0c>FCToLZoZ`x(yYChNV{hscr6s1!<{LVb68(2G z++^FEAou>pFP^$|@%o8~tJgnW42jT)5I;$JLk2e72>$S{Zzr1OycfjB;IfMiYu!UX zjyzht*v|67+H2MlU2c$dY?Tx)pfZDzB7l^irU5PjW8*kMv56gU*joHYMyp>v_&L(u zF<)KvmaaW|bJWA4b2X#L_Cu(;h3wp;0J4SfLB&B484I9t#!!ALpEU%CmHm5!Klg^XfxHy3-sV{aoO20KG5P zg2b7(gr#_bqMrx`y`wxMJ_Kfy?IsjyT9B4mh!t_ai+=6BEniS*vd)*zkuE`=aX_|* z(SP^QX+Rb~UHzlvU|p6y>Flc(lB#1klP-XGzGMC=6H>3T0u`{a z;dws!d^Dl$s$_q^Kk#Ld5phoF5;0&19#1O+;))YZlhOjxo*HVJ89FFVm7{82%>HvH ztN+B>{(5l#v1$2}{|x+ZWpoMJ5u!7d(bBPaJNmGe7OetfP!_BuPWwfPOq`DJcpVkL z-OdTuYJXFgyED4z`*Sa$NT9&qQM zXzo^>()vR1QEY9&#Jc5hpd@RQ8;=^|4#$xi-QhP)F*plLv~ijZrSrJb&mRL>1V`@0 zw4!B1yzL`6Dw1bG;Y=RCSCMk);+c)3kIK$z z7Ac2S9xM%=nZV{ARbM%MGS%?a`x>x!)|X<9@h+WtyAm}d_N{v}262hBhf^24O3@&k zjSaeNWL3mE!yg*&pLisxRK47{iFfNkFMIe_gpl_dM54myu*3RGuW~c@&0Q- zp3eP@65$;rXLW9vnW5sh695#KKByzu&c@=zkWgXilXUm}e{x@d6iF94J9-d(4Mw$^Qq7ALqQ4}m z02ReV_kDA5UCBYo#e+lZ&89BtZlw}|cqIY~(D1~C$o&MD@LIioPY&sm{IqNK%`R9D$X$1uC`Ab zDzZgLTYF8+U+gy58pf-3{4OmG211xEVzZ>canTnHZtwZ1r!~(K*Y^rMlc>~e0M&%HqGh8P5k&h;8!ucs2fL;_pR#yw)^d$yk#IQsI)ZAi*gG9a0FJ`TY+WthSIchh zx%T3MVz#o7R-b>yB%>vdPEdpWO8|_@?QzSvIulEtcWMCR@BZD<{=;GVu{)we2;ovQ z=cc3?*t^Jlg(%jo@ij}E(oL+ip&0b+ExZEcO)auS6JVt4`H5sJTn7TFl zu)OS{P5SCy3VUBeq1QC7g1g*-7RWH5-w?JTYhzY5PN~h`s^aM+L(4I&M=q3=CA-cg zSZF+|h*&7lDHlO$nOjq17Z>v|kjg-h4c7CCN!;L3hMtWILT(3G+q>n1KB{>|w9XdCOlSVA*v0 zedpa?)nmQzOY)f_)*NmkHr5x-BO}g1B0#4EuP;q^7tODir5h?vj@yu zv$r#mf_bGKinC?qYHkJ()Q2|+y0-~W9rHOkt2MY{I!3L~@l{4iDqiYoK(tTON&2!}^bVOWm2kr4w&4q=0^VfwOkE=Dl2;+1o`+>;c+0?E7j z7xlHCJDeSi{;RVixJ#GHKl*(#qciaM7FC9p)hM7l^qzhOW{B}vw(}I}gm(GG``bEr zO{owgI#%C9PP!Fu@WOjtbqZA{UVb>~hv>EqFPhAb7bZ z73XrPH3RwF*=-2pO6|2;?LEr>TQ~CqJqb#@0T_rO=)7k1^CV*XwBSIbKCtEJz^<;k4f~jFP094WF}>?)svjsPI2e%Y?K;1t>`a`R{UVzD%8p{!J!T*U2?>Ax%jOqdZl7|; zc7`r~^k(a=fQjXh!~65PZfGEvIU1l5AL^M_>=HXUct3tSp@VftC4o1@lC6tC4G^ok zUm=$7Zc3N%rmvLfCO+~c1Yn?67UDhDTblOMqDfbZrF9g***a$7JuJ|O5b9OnhAsUK z0r*`cq5kazkl?OG5u*11R#}Mk)&8bpY6$czxrm;X$`=QO;1rG^whVI-8%%+;hdxJ@ z-%h0dUI+aCDgeTNazslUZclL_8h2VPKqy!eLkE_T%7>J=;NP~vT}pUbC1XlwX=3Z3RhIL#JHk6Of%t*S5kPBo|fB|diBuK)000PX*;}4 z3pH3*HH&;*lhTj`1ra@%J?za22-wKXPc{#w6nazx#rqpS<0Z^9r8TwgZ@PH5!9uPc zY+6KJSpjtH=YFaX|*YVp>`~wOwsx*nwB#!HbyK(_yd}J@# zDGBcOD2cz9R$a(6=KQnWybvW~w6rOE53|{2FT)|JCL@-Bt~i>9^%wFAK3-S5(d3S8 zFTd_Nt&TC?-+fmz6Wx8d?JF9*Tpb_?>YHw;qN9jAa%Xb_bd=ymDXw|rDN-VR5_*sJ zr1^&H0u#%13}magEud+jSui;tfT=Ah^i6`t_DPal7lIXIC$D!J+0zifZ|fL|>XXPj z7V2COtW6mIk=UM8Uzgz(!kmY)QQQ_8tnCYuZWuT;a?WvW(BEZC?V9Ma2oY0mbrv|3 z=#;#QV%Quw*X?BWWDfeFh>0oJV0snRz91lck2hl9x^Z@|;<0@2N z=`U;>Ud&vM@9+!2`;EiQk{4J^2Lf~YVb-(Ua32gRHepN=y|Z>*=CX-|QQEXrne^T+VS~`e<;kAHh^P9#(Yq9vO+w&QbPPJy`Mop>~NL34zsic3ok-mTa{Tdz} zlSfG}r^?I5=fMP7x2#n)W#^>+K=>I2sUi6-LwiBzYYS%Q#+(A;AHvM@kqGde}DQoUKht%#2crcWd}*eUF+F+A-q@w7^%b z`Qg=5l2NP{!bb#8^o^#4JtK}H+hh?o0QKG5UnYgV%UOD4Z={R@!$Pl*BegCP_}y$Q z2mI^2REa&olCUIq{q=6!tPB1dB+;`XmnoAgZPqhig*xXjKpZ3k1x6`CdYw(ZL^$IbDhf zeyRJ1_^Fz$Qpt@yirqU9!Yz#D%dEokyyU8~s4~NmaV(EjORtN9?en(~cFh!lrjoAd z#I+2^mdCFGwQHU%EXX(xfmi&tbx5H!C*pAoM6jO($;lR6o(k(SUmsaSb$$fgsv*pR z7}?U|ynqY1>0+fJ9$CTeu{8U>qPgVoVMO%hzb#VmP|G$Gkdd)Y(I7vkER(F3dsCo3 zMR8sPM8bl~G{)`K>~-QIu3^?o0`1r*Tkwn5*a!ik)>y;5?lN#=ENUk6@x1z^u*hT% zR$~yNRq|pvzeR6T(7koT8%fdGXg|Ki9&3J>+oS!{q&sYB(1B452_e$lefQ?o~cku7A~}KulKux%Z>#tiYsf z*_M==OyJri!opN7_*Efr+DfCz$G z(qnqvvkro%1-bsQm{Fs%VVHaA$W+2n3FU9l;VRVw4`QbNNQ_OuoF#0_Gx>BDDiK#( z@N#UP2RDP7(Etp=vYu_L(}1#PF5{b5|3a9(6Ig#UC9}X=k;Lx(zKTQLqI@{>wkFc3 z)LxA16JhqSuuw05)m|fi1#&%|P;oC1o~ZE7gU3-hy~$qGHOr;k)!#bTuk^Evrzsk= zdkgs37|+g;Lr9=4f52Ez)_l(#7ut=0Zut?X>4m;%TX1g)U>*s4p4L4{uT$xITL<*685I4OY3S4{ zwqk?=4AuYkB8OnY?)LgIAN(Y#X&0B8wAlExb1{alFUbNp8*NqkW+^++C$09Ka%BDEHZ-$W3N zz(wrMxGcZr28cL6$fT;o(fwiS`bO$k-4#2roc}rm7#X?^JwclOH4qhOPaispV>(l2F$*hnfamhWJcs21-9e?%N5! zxss+`aNDoIwY7}3s09RJARV8~g}3T>*0}r&PQBT4u2t)CexWV5d++P9tS$}<=naEfTT3ZiI6aj3eQWqy zqQW`dZ6G=fPw_Z~YI7WruM(_wa)+ja!Puow#&acv~xk~esgZR zVSQUlg{iG4Nw~#O13XO^3?D2yK{2i3_v3a|MRnyrP~m|n`=r`1|G38Fs=AVMb~2F1 z(RMgXPO}@op{-K@#GSrEQQ}EH%h^4Csg75)q$$%R<6dC@h3g)VGFL4xa%?(^x7H^- z0f|)S(5jvWa%Q?*xRio3OquFuzr7r@pgPJDuE3Gp<604F?=IOciPD=!t5>V63qCot zI&jIbx_R6ZNnwb9YYkW$zxybH!-!;s=2Nr;`>(25NbZ&8Ci_}Vd^X9FWAPA^))BQp z51VG7EKM_za#Gc1n>YTM^6yWHyMOQf_xH#@0Ow3CeF91}rdiJ2COS4^FSeim=*<*N z06kk!#U?~U$@TCV0tIq^N$S15ReQ%Y^HZU^@m5hIIpO_8x^hv6)zF2omp+a%lFgKEXj)1-zY3Q0D9gdIGdSt#>~M*o;oMlZQkj6b&|C)!`sZKFw(|?bVcVCdnvVI#u8QP!PK}gNM0p}=@|^LB zV!o{&e(Qof{QxT~Z!gGdvQi@+=E{LAnv$9gx^nQQwAB+8=Blqz^rdgVh7?4ZUT)zJ z$l_xq@to#I9JO{@W-E!{cup3cmF>D~_3+|QMK4F;aFJr`HJ+-+xe2#vXKLW|z~8H^ zf2i1ghg3n!y>#Zsv~;cRDmWjlfht$V;#YMGdy4)&fc-;TRg`TEmN@P3h9zdOW!8m) z!nI8AZQWiTh0CB~gGHmcz8JGUsk_$=As?L>i50a>Moldb3D*W+1CzUX z*`sA_Th0b)%V!<3@@YQ#{f%MhMu7FHA_iN1wgW=wtEa|zo|+RphVmH-bYqj#W*F0( zic(~%g9>h#aMY3tGri-ub{{!v4HEe?0#EHpOV+REw+3V^mrdq*H)YPF#nd!JY$dF} zolu9sXn70llvL@5VfX@1m_>KyTck(CJA8Pr3-(R*l8;bULYX=xhL*p2zki3v zk63)Nt{66Qn)cfQ9HUPQ(0;}~*p@vXewu1IwnKFy8#iqfUBK9^z^n*`aja0~Pxdf< zIvzPCK2*fyL| zVPFs<`pH9g|&}o=brV z!4EyeQDV=Mj9bxj(9?fh&F89Rmfl48*u8RTZEj642u%!)8}pRCl*6l5oXf*ek|p8l zo^tz>rLK;fo8;~LV_pF1Y=f%s+R5F>l`YT*PE)jg={f+`P9QDwkry&HZs^}FHwy5+ zoBv$_)Fj>~n(L)N@db)3;8^Xrw2gH)G&ZGGLEURW80ZOzab*ovy5@wJC9*1kj%9;KmkyrF&Ap zhTjdwD{J8oTOVGSOL#P>q+$!0s96kuIkE_tbpE=dcDMZ0ioMlF(2r@F8g?$TkKPiyuq+ zl~_piXSi{GMQy7zKvU`Y?ZABQl_O1(qu9xWBP?q`BVs~}?^BToFlc@Zic5KrTDpAP zZ#wYkf?C;?7*VOL6z8w!T6KcT8)%n&jsP$($N#?&n15V@|M5{exdNU`Bzuk_e1Q7X zVA*5qpd4Ah06Xr;uA>;yw?I-lB*4GNhyItT0w9n?_e=p{Ug35w^%hC9Cx<+zaHTu& zlAoOVfODQ3Z17Z7$i7p3I*?NBogp@g$hq8W`sbD*j>*hz%+xeXp{aF&u|C~BUrav`Wh%=d zF?=^)q_jj;g-5$enlNr`cntpfEPI(4Tz&F%uG@!P>p`r1Ct%3O=ypEvefK?5hI3pe z!E?yQC^LlPvSohSL9ya~Yv$dc-;@Er@d^JwdO7|N`@)~K=l$!h^nNVpfz|biEv2^% zW)q4I9{O)0zEjHkd2%*?h$ihxLBU`;{88tamps&(ULoxRBXT&-G$%i z?yO?e5p49(Z{q#=A%}!TRIzFck7yngj&+4nR0GKvz%05RBSzZLK+LA&t7@M6K7`o4 zQcfm4yndXyOS?V)| zJT{J%t=IfhVFU{rvc>zYdV1Evl$06uE2)L-M^PcDOzowD+{`+|#j8dv%=(C%d>ya* zcfK?W#Z*|9(6Y)Vyl&V-lLl&Go~@R_jv)sbrZt!R$}$W*D!5k5SKdH`&o!nK3Z2&W@W0veLsl`(~QLlNkwWV zDO{}O1d(hvDqVY#``Bw)-b%%@r!X{Pz|HchHNubY4vn{_7@GTs6KR#|1~>pRP;U^k z<1y!#AApQWDv?yTV()eyl5T91_356xs?X~48M9B&WllE&R_z>T>%X=VRkr#e zTYbXIMZ&z;mIbZTC;}wJqkH^w12XQnmE}2TT2zMwiw5NqR|7IhXS7qhR&1sWUN|e< zLCbeckgY43ouAb(8nJQRD8n>)S|Km|{6GmdtFPCH$jPR%qsUTIh0 zXY+B(#!-$}u=Ybh;%&H4?s}uj>wICazzSIS&a^2p<*onoAG6gLV|RCDw($*Z&9-!Z z0wgzB(8uZYu6|^buZW(X8IvhB`HfURlYYj0=9-bA2p2nIB6T#fm!E6wY$vne@+)ag z#-rRq-5#5V0>?Ri>?=Q)){#(#3+A;s$-EzY*W^$VlbOqHi14M0@?*65J zXc+!T3I6M}+GqcL9PQ{|p-Ue}W;E#RMO%U8)DRNq3mJI8u`%Tt{JNVkF$&X2v09o@ zVq)vy>{6A#)izuXO~6>D=?ridm-=XdGnYkY#cDocwEEkT83qET%2he$l#z<|w28Mhh$dodG=zE~tHDK*sB)38V(+bMyMBx(5zR}o#hL@-llaEjDi09Q13 z8(bzXX>G)@hRH=@qT9bvR-eAjtEvyfL`0c7u3jIc3$IXgoh~8}e^1;0-_sU|X!(Gn z3DL3^zdX0U30R-!#Y4ZMmP#lpHMo(ZziX`iup0xV!uflJp*Hxord&IpJTKS61;Tkj zo~1%AR&7NE9n0Iu1Z}I7+cORVHzgQpiEhf6ruV3_OAh4762KXCME?MQ4!dOIsCMxUC~AwyvSX5UZGP_MHjf$U$qK((A9HSO#Lz)hVNGoI)5oB^6-;BD zJbkPaEqmwI;?!k;iqWc537kWEPU=Z%-wdQk^~%kxE!89d*0sZ`#sEKm5uGG;td9oc zRP{~ql}|*i;4`T6d-z(D)%1r!_3AS+!RC2Y@mcbEolYOXTL2$?T95V|>nEl97@))p zRm08_9$PYnRl>PRR7<)bCEl5zW%q6C*!JnksZ0V*cKnRqSLnHo+^#2<+l;w`w&vp^ zP2o*xBxSQg5q=qjN4&{uA#b5+<6 z)T!T*AL<;UV*uOmqyS*wW~AO>8=n-prE-LiENIq^Dfv(cU<@UQWVAYhn?S}!?Jw&Jl+4w{hHI;cUE`P9sDU}<$YS!lbM2cpIcFW zao7vDUl$6HVxhzl7AL@(1R*3Y<*1yOQY< z)6v?h%ftc3M_}2Y3&j7q)%a)I(f?4+{{5%<|NHMi|1OqNT0hY;!%x6c$z`;cbY}WU zJICJ3Ni7M=nlAC<0kL~cIsTW%sxU$gYab_H7&ZnX=TQlZS$|TeJbV8aDOS!mUocE} zMy>++2u^t%j_h;#JM6n5O)`_Fr6`j_-CwD@-B=d+k@FbEWha(~hkDMc#+Q3m9}~Zd zZB0S1-Zhs`s#Z8w3bdbXW{`ck-(+ttJN5=Td9p*0iMWQVIRi7m1A?Ia50CxM!}xIO zT#?jkrFKczk(5xJtwVKki5KzU%hvv;M(ATP;mUhyMurF@6Tq`n2M9AYm$-|%p!iF3 zvUq^)(D> z5?Pax@e$DW4*q*F-hWeMfs?^R2gHm5oi~!qNLpwr_KGzp!yI4BCZ^?*y_e^ zRbQqg7wfo!AkUpBR~{H!CG?z1GoU@i4vr0d<@r(K%O3+uwk>0Aa$QG^o z?L^~s&$-o?D@q)dD5LXEUI<^>4-mjpDb8#^;@7KcF;XA=N8*U7Cq48_Cp=Ah+?Cdi zV;atvtBxlT5BIOWP$P(m0~xBTHc?-VOrXPU*rL=UBJ{7}X>c3b?~wI> zTd)2p<*!=Sr7?P!b5#fCM9VSLM}D@aqr~SuS$M?CtrK%r|axW4+N7v$3Ne3 z5rJJXpq-#UuB{7erPE0=DF#nEn zs*QhFq?Q{Qu|<^ttuH5%N36nY{$X{1yV^sC{Cn4OEFb*Tv6|!V9E*Jhw_QG;Lluu+UZB&?vF9Hw^ZKa@h z`z%pZ<^m1~9DBge2F&9-q8Z5xV9GO@gi<}uw(O9gspREbwKmc^Wr}aT!rws*&t$qC z_nsyR+}S;C8Y6>B?Fdz!D2xX%6kCpuA;!6~9Iass4{dBA8)DSWFb#SV58@|CP!{Rz z8IvkwTp={eIj+Cf)U=$Ld*o_5%IX^ag9~2<>L)E`s$9864xh7w`sFKCsI>q!&B^S;+7DC za3O*(BtN{k7o&EQV?fpl(x5abzQWVZA@g!`#hU8Iz5+v;Ef}dJVFw;zb5f76f4>C( zRloapaT|hGI#HAr$VNa=bZifFPOfX#{TOt1wkQ(JAS>%U&qv9#Z?2!BU)i+uJ-%aQ zs}d_rTz%#j$d$uCwIDZL#a;Td{PadRpBwyZU2ym9VpYvyuo4eJv~jdE4`rzM z)xy20$VBiprKDAQFo|mIelaufv4_@n?JLHl~Ok zGvh($!b1<8ok%~x0|5!99HEykReco@NnSir&_hCi#BXnV|PGh>yXZl>#>DJ)?`&<3L+^Z+yf1$mCx)&uBUXJaAGD1C5 zpB1rCtpXkdg`SOpoF@6a6OT z%_ZG2*E^^;)7=_3t+GWfDD=A9Jmh2GZ9?sgp(HDUL`vC01lJr;9lxEg7wzZl9Ovw9 z7VL0Oy`G+Gp0;ecCQLq19`6}7_JhcuN%3@#&sB4IZX>L7-{1VX-hbrqdX-h@hA57Y zmbDmvRYY1=U1;1KEmv21H4$yA(M6jg2it<^7vVBqVFtoWa1(S+@Cs1WbEZ@LRjE>#jEvM6bQd(_kEhN5 z#xUR{6_`p{!jBy4VY`Zs#h~X9UoX_vyrTdaO8R$p@2-qL%o_|_X|7neq=CMTJ9s{?4x0g(y71Eg&tOag%&c>$5KrBdS#8Sil zANJlmuE}*-8^&ctq=R&#BGP-uNVcM|00HTp2uSZB5FnBzN^eS)zK|w0AiYK)fHYC6 zAT2>bdP0qmg!fsytbO)A>-+Y3f8RO$zRlq;5qOx)%>CT=+}F%pQv$z*$pC@>}K-T;>E_^eYOfpekezj2DWra;hU)qU; zp7mK65zH$s-Ym!`UnFsp)3U?}r@^9nA>D}bjMG|b26M4Iokm5W?K&-A>)mB);Py15 zgbas|p?v(_MT(!JU$^+Hdy{xspZd82Tok z_Vunt)I{@bw!!Sr!+m%$smE4pcoR!XrJu>hhE21suAIki+Mw2j{@eF1f$?l*Q5zsphV==vulHO+qBfA!riqX z{U4Aj=i<26ma|lS-~6tZeGBw~48%>wZ_W}@$~j|2J&iXAk^W~k-|&H)6+dAhnCm(A6-$o zHu|`vg!0n!xigd=eheNg*XPrEo0-*Ridu?wi_S0c%m47(*yAoxjmt91eDotz$=xx< zE;UGr6UCy$$f8QmZDz4$nO2ib8r-~v{H9Fq{GZ2DjzR+Dc+e(MHM*rEN}XicRg&zz z-z=wlJ-1BOe&- zEMU>A>#N3F;`%+FbYH?aLy3wyyvs&tsKZJ;QOMfUIBhFNQ67HlqF0G!i&K2H<50d9 zLy@i*yz;quX1x7=RM0zU)!DFBpM$GJI>PBQvOVQ6)%MGEt>C7b&1o6!a5Aqy_}+XU z#w*pi$qH+s@t|_3ASrYHlW=w4y=xo}FA@2h!nF!2dcp6mH!SJumX9@mj?8XG3hh`9 z=|;OFyd@WN)+%{tuP|T=hNvJVVU}#Y^PF{IIC8I{zEd-j zDhwI*oQHLg3(9QLomD!qD-y7XZTsu(Z()PToVyD&A%rTEo(IXoe;(Qat!{7;(p5nh zgIIbvUvrG&7t!)=)q$GYT3-53n%V>C#)<9>nQh}83<7F$F7BDw(%}O>o-S)1QPUl( z9dnV)>^d|bGylehZsD4cQ_ZgL2swQpM9=`bWm3Ay=P=QR94lZ*(mY~pT_`$d@HUV# zq5hC8Tg$@8MGEzd^Y>MjEgc@P-rx}ECVp`Kfd)YPe=JA-4gXZiBt=6U2B5ndq@th; zbe|K=vkb%7y|3$e4pXPk#k&29JsFy zJzfK*CAj2mx$NBHF{}zbq|h7@;iaGyLAsP*Z3zC;IYOSwyAMM9ZW$OuIslt^ynILM z`FwHW4S>99zvx~;bKDQPesR{R5>RaK7N-o*DVsbmA%7`|rrBQz<5{mb+<~na%|VKo zGA{wGMzhly>|p*QR8ER_|t(EBEwi;y8%jBr+*HiP-nskWVY|h8F$f_6(`DX zYq9pm*CrAic}qzf*taN7$kaa+)~t|0i1)zY_5%*0%ppZ#y5LwC{`(=t_#|TA6zs-x zND&_h^xjm;0_{X^WCnK{kjqtM@b5b#WDrWG0WM65=|nXkh2o71JEV9}!cL?G+TOnA z0jub<5^zG@2foOSn`k+t;0N+3yLz4}WTa4b*bd%)@0Wj>GyeZ0S+^w==RCeTkxa@# zIJ-J)f0y3)WtMh>H>!c$kMBkoVI*mOr42Lm-FrY2Q)f&?>l5N5Gkj_ z+{x2r5kSe32sVwp-_(*zmJJ$>W8B8gx2@9fAW8|((E3(NQ7b02m+rt@5i252iN(Hc zhB`rC=ShJ^E9VI#S5G}PJO!|{<~^c=U3vE6HYc5`(l)hhnq&2Fqx0i~vKmX2=a2IT zP(&LL$5?4kj#+4s%?CKM`fm{-!7OvgNXw&YtH`e`3kB#SCnNMNEjVJ14 z5s(I6G|y6pFC6P@qW87RjjBh=(kZKB**MkW01gsSa=hiP8^)8XyJ4b{%*-{r!Hp;P z;p~^b%U+r!d3j12f%{8AAF<{9-3-X(=^n6znJ&G{KO{z~|5zK@3XJN8s zb}3qbL((65M_)=epF)}Tt&G1eNH8Cn`Y~S}AHd1=@X24mXy0twATHP*b}+gc6qbFd z8H5GqSkI&PiV7XLnQ`Sw{$T1{5*w)w7h20r!nWFsLwgkKJ3{LF=Hr6E#Gk@DIxLdd9fcI`%X{z zvxns3#2?H1%4dj$PBB&1D>3Cn6yOM@^DI%Bys3EEn>3_-$^Oe6)XE}lV{QdhA|1m? z>M*$5P4T=Sw9z=I^KVCTI@}hoS@^V-4sM9A&G8Tc<~-rPbSnw8G}?sJRs*MHsEnrR z!dyo51*>X*%J=WgzxtHJZH+&+TbHO!N_*@8D=kJ*Hvw@yu5d1+pcc^u=Xq&W)L0+A z60yly5W?GHIuYyqyltqUG`)GzMD_08#3~};EJ7%I_ou(*O8*~I4*&9M`iJ+`qy6To z<3T<}`$d~@1+fZLi&FC)z+ie^rn{-Tvtij)7KsQp@ZGI@t-Xt#V=NK&xF!|Hi;W`l zu!dZ`i+FD+(0bJtPq9lstG(VXrCTlBnsq0s=Eik;+ z{T2`TID~ovS^Qh`F8^slERgF;ML1;>v|1rV2~r~XW|4m*?Yj+{I8NB+BqhR642=v= z_R!A#486maREQh@g=biXin3M30KZ;HRWw7J*mvV5r1Lz0#lkD(X;Pg*LJj9VqU+m>{aLSqH0W;ab+fG@I zXsJ#sJl$Rb{8mVs(>mW4Jv1G({NfKzctp;5BFB#deMH9{avRXf^`zVh>VjWf?JEI2 z4`}w*Xx(%_bAhG=*QD>T2`{+-mlK}3SlMIvl1L5vM!`RLFnekN0e!#pF#`z|$sV=$ z^H-Ez>`CdwdFX5Xl?L(CW zVLWK=OCt-$Vr;}x_o2Ubm;4Kf76(dQq()41kkhmR}U+V1$(zE z^__GQR=8o4Qf3DqlL}c}d6{-9cZ0a_t?n2kmq#|}k>0lfn1)hcRkJW>h5$AwKRiU8 zz`k~aT=L4QrS?1vQ??QZz2Rl}7^HU`Ti2n@Ok^XZ<4ZTF@T)m&TBGB zL0t6Gi2*!TOb%TosR3(MVpLuyFTFGZr4E)L^@95N*q= z)go`8k7vrrcrzBgq&56Z^^`H_?%y}ElU5-B&tH}mKcx5>fEnwEc}74SHc?i1_ayXpeEf$>0XKX3QsVW7$W)4zUFj~A#=f%2d|Vxrcmz@axT#XD>T#%xIMvY3;*vR9YZk%hZ{z z4k>;a(TzooZom#qSQtE6sBCOfJw6~ZJ=SfgyyiEB$GH-1YqF^f4sPwLcVxVW508rl5|rkvH7Zc76&yp z*(%FQV3Rx_CE1)3Q9SbPkRm&^!1Wijy;tLq;Q)*5`leboBMeEVen|?ciArh24FZ>) zNwYSr=I3E7-o0bm?|#_9Yv$1)cG+Tyc#gr*bt>xmE1@Fu2DsVl=`CO_8`Xo>aavuW z;q(jndp-MQ+S8J8lj-y87ZZUI7($q!$Meou`vg4qY37@5%U}?bDy3iJE=*9(Id@NI zK@!nc4ym$gpru`tz_;H76F;iuz%H7_-#R1CKp0{gSrfNrz4NJ=g~Oc``F_}OCxW+1aQz}yv*mNx;tAkY}4%t zrDx--)cqf4?j^Mh?}BzcNKp{mxCsu86irel`2qoi$*c2qEL;w{I{f&Dj2QchuTHa9 zSwYKuOTfG#KDN%Os;iFDv1ld5u+rSl_+iXM%o8_@1l!d6=3Yc*PMLAxVii$?f)w?n zWd*~u*4o5L?MLMZ7FhaxSd@|k788l*i``o1k6|A|W4u-kud$lPowC$P>BBtl z5tqqSX!I%z>H9vG3Gwnu)YaJ!Zjsvj^>4*vw7p^kk(6#{v0s30N6p#E%WLbGMclEq zVdvi=FMVMH7mSFt@;5iigTOF}EWgi=RKFs^vEGjbi z-H@5L2IIQE#!y&oHmPZ0a0U4*ioytgdPxq`$*ehes$G6R1CchWvuGT^c_Syb&q>Xs z+;r-maKhRCDSvJOO$GU`^FJDmwt$?X=3isnqYViE+oM^~@gS9=-M$L!@f1NoC)Ni< zMZr@%6?8bL8-IQ`W5kM3SK9oEbwh-B$u(V@V3gNH7pkEEmL2DouAa)rrgR&Fzem<)kCay%^M&myRKRnny;$0NTo13!_Z}}w* zEZm{}tU}`Xk2m^*Nd^(vDQnZs@mRZ}M?R%%{EwJ!)VV?Hcm6}@gNENHgkccRvjNBp zuiZ7?aUTaX`=2Mob#wEfZmQLMgp1@^teBQo<~CcaC4cC3zs9vZ+;05lgb}o_bu=6LpeM#mUVJn52{h=J za@xwZD#Lh@Ge)!|hUV93#*YKU!dT?YLU^`)-v*xv}Ocmv;T z_0(LLA+O0#(yy`R7j%=H34Uz~Mxj%b?clTVDiijUkJ#+)g%-Wf0c($lSAQSxHjFld zn)FLtti8!BbU?_sXVRn~^;uJ@)-}usWm*8IR1bKwx zTf3Q?9io`wt?_N*_Wb)B3C0AAqDI^Mb>r;ImINMcXr@84pGPOn>CWA$vuRJ1!J*uF zWy+FaqqcspkwGrP+5U+!wA zl4K#QsKJg)Z>+tRZ2l|d_$o7Dg9}}90oOB4!7=Uwfv;=^*`o6Z>Plkl1%q={WKwQFc8-CyCyP;BWk=Ai zPV&BfqK)d<>&ZPxT5C!xP^W_C-M>YMLKEPsqgxriI!c!@Ju2okWB#4A2Rzgf9nMTZ z@tKQ?*iE%2FWV%pLR(5iK@8$&(B|jAyZ1kzQiw|soagLXl_NfP_c?BGwQ%m1n}{-y z?|IqOil0hm`N>Q~Z{Duq{6r0xl3jE&3j_Qn4ij~UCbr6ve07}YoM(ZqGI7;L6YqR5 zloBsY`k0ngQ5Q4J9$lKuitrlAbZD_g01$Q6&3BDcw3rXh*hRXB_Muo> z22uNxO=oL+JNthZ|m)VR5TCI{zIRu62rJ`TgZ=Y^!^g;q5CL|@|eZpT9DV0#8? zp$t^%(2I^~Z-z~cV)#b$hF3??;}RElyzbYU)H(;hyQgHjlTz!fWq#}C2vTUtuILWD zZpPQN;d;=m`MpSE=s7TG9!X!xkiU}=##{PUow*bfg9W!g=z|5G=Qq{O6r5-kqTDI} zd0@D$o8F|eJ#h*#5~eyNjiOyrw0!p3*mNmCHlomYiCrbtmZ8nI&@sTZ+R*p%LowxV_aq3`t{kMx0at*R55oexUJoc^2c|u@WPPRuV|8R{c;1R45A1 zT>4n6_LfWg=SDnNkz}46UEL!2>O!`Duj8CR@2Iz6b5+%-RmHlD;9BwGo9`WF0=Gvj zuIG~zg8Gq^h;ay8l^A^$r(8`>vq-Nc&w0fcErJ;)=*M^yH$83>QT1#+04nznlQu65 z>C)*FGL_6!=q4!r);jdle=HpO{REZ;-^2o}ftFW3HXC3DR2F~6(}w!QNTJzj%IwG% z3n^s|;}uSdmbuP1Xj8mxpSYgwr+rpyoK)c%+33Tko+mh*5TfoK^RuQqTice3#uNQ` zXYFQe|Jzj>&lH=@j6rG*w&aCZ!iE;F9h zq^Z!C!pXYla6*#}18mD*EV*0$C`z7BUGsViIQ z2qoQ?oHi|``R!A;quL%ij~N!l^ptqbdvSKD_XyZ2hzgyGiI1$dwdl0$9vc0gof7g_ zlK2b|&JZ*q9rPK%8D_i0LQO5xNxAsb9RUvs`M4aLa1B_{6~eih4ZX^tYMepvG@Za6V>PG>{jooj+(44r zz5@&*6q+AD>!~HgxZ}pvk4G$LvnXiChwV3@W%x0ktj)^J?y5JsRZnHh&uk_eu$D}B zK^NR^p9u!$4?b%<<8#LM%J|k(V4mvItU+-=L1V<<%U^u{zfE2SEh2$NWEw=TCiyx5 zo+uEMffT1fOwf5CJ+`T9jaUUy9#RxoBR+Mn&Hx!s6HNAjKz-jKg;COA$3CIz;N8D$ z|ABmjkf}cc&pHw8$pF_-XBW0S_sz9`jF9pXn+ZP(NiQ>io57n` z343;}Q{=y`Z3qBG6BM$^IzQ$h2a4`ti2X9M#P}llI^um8?IDHDeF!<%hITt{*9_5n z&y$vv<_738mK_{7H-n;ud}sRmXQW*fB2#-4sB=|c2MwXBr&srF$HU8gM9$Cog^5@< zRVNsIlGZSD7UP1oFYFFn59~7oF+!(cq9U^X^T9%?&3wheKxJRbDiCMF?4O3+ut`4c=`N%b0706tG_t^Dgo-Gfqs^=#k{{A9za>?o zXpsA?+opIF`Qp*Y8^c5%m2w`zj-f%m$U-gP{bTE59?@^WtRc#lNx-vQ?SDtf{;tZO z-}Te@LNXNaUO3!Ps0uHw^Btb zO_uchKfzSBTH@>@;A(CUZu{kapSkJ`jl-_rD12$f#m*4D1=a@`ZX1KzX{TYuC9k7~ zqAf`I_i*)h>~{x0qQ2**lCIVdv5g@@(Q`xr4A_?&$*>?Ql}oO$ajdr%@JKc=oAyRV zgOGy z`->voH;|&-8c|JseW|wf4GozyjtlW>w!VIL$al5^TDlouzbW+e>L$49CT4yUkn{cG zTKlCbpecL%Wk@@wLf%}K>TFo<^R~I~I_((odZ!1uVI5W#+wl{{Sx_jss82=>vM;;%JR}v{B&zWkb2lGCIC$ z7`FrJzIk!wfvp4N4|aVo(;X(yn!zcqV(SK_O%dz|(NIS!WX zZE&2IihMcdzHAJToyLpGNHCg;@Iq`g)#U6iRt^F0@8v@Zr?9A5<9>ObHen=lfIl2E zUM^Co?l#C45y~fmi9YLQSO%7*U-%Idz^ssnd1Y(-{59sh*oq}eAJSd%w>vNGRs?Xi zO_4`IxRLBSV0Tm7exk89LqXv0!HK=g(x0)-s35TK{s7yQn7taDC}%MtJPpJ~tjVw{ zKdHMDb@!ZOPHmknIba?Lex|69xNyUh2q8LDOp@8SkZ`|sT^CY?vY}~<3d9LS;Q?zm8 z=qG|B3fu+-3FU}(-ZC@OcFsN@Y-Ye(@EKpkI9z5xp~%K7GJY(5f1OQkm#UXRHNHZ_joAE1yIjJ1)>iy^lv_5;_FQy@L|^ z7;bYV0g^X${_7lzo{{GPyy}f5S^};Y+FAhYLJM*S!V19xJeDw3@owwZDs(fCCQgn? zVL-j*e$Z`YT5YlJG1rEXEa#U7z4)D#UWu6dPt0BAy#v{PCcZ(YK+1mKvrjttfXb-? zfHz#HGHhSiqTQy7bBBgyZ(scTmV15(@^)~|5kI>tL&z^6niI~> zI}cJ4;>UYy$D}9ZW(Y=I0oVGg%wf)5S={~%gO(rH!})q&bp{qr`3Gc0Ao5o(j|Ida zbCd1rSF@QpEzecu>zHVXnHuB-Hu@Az3$*PH=>%=_QNH;ANrhDbTqj{7(x&_n=>$@t;_DHPLFm2tBlhjFaX#%MnQgAYTw|3mJ^8D;#d9lm|43Iu;d}bk2 zeLD~j8l_uOI!jpc&Lj69QgGP)EE3d*Ewhs+Gr_t@wVkMTOYlfgpZjY|OYN_M#I#~c43FD1*xDmq}>X7*;(m3w{zK6p8h$NFb)7_0Cml!WVND_9_~1K# z6r9ku0o@iTB8$`=}$l!Q4x9IMuaLn$9xJJ!VG*_gC*H?L+RkoMSUfN1oY%u zcXr?tpDV`LNa=gAW8GSnwXq!3LTbZvHACAmvNPkF!@_IABCc!0_)CUD^f73IPV3?i zt=FnEmi5z{^MDI!r;v(xOwNUT)_kUyWHK)9g2(tNj|IJUFeu^STN=*yxQe!KsfJMP ziH{whqJR|Rjc-Qu5lCGX{)WE4evPMvQP$*;nPk+3j|Ks-lZ}30J zF<_ec4(GvW)4?`6vsiJE=i6Um>^qet@ib8wD7C|GRO5=lI8nLC%#mFw-KFqUVe5$7 z+M3mwt?R||1CHuR>N}1)`7DYx#dnhAMHY4Q60b7XzD-bb9?w}=RA{y6_@UyQZO>W^ z<1D=1=Q+{p7*o2YL78G(?^NIKCRk$RlzB;pJ;~k{*S3x*nq7@K022_qI;6CqOF@H{ z90%Z9#3e9ozJqCOjw@TFhonOF1BG^s z#%JKz?z6W)^0$|Cl}Y+afYU(PZv04QQ>&dG%oX|wk^U=6p~MA5OD}>(9+11UD-qq= zv2>RAoUtuD?cM};OrwGxZ#Npr)(CTMi&s9iuqGX2rW1t@h-rj(t9M|lPRx~spuIk zF#KHqsurEP_;VhnT-GiD6^TeS0F@G=*X94G%iC|&3ugu#=mYTL0lJ1uAu*lc5klN}2Ngn}W`uAB~ zw^PBna&0!{zzo-3nW2@i;+9MwSGQ4xhE4?7di$+CW>yV!u?Y5Qt`Ow$Q~t%&Ec*n5 zF5K6}J{Hx8O@CGC_t%SC9NJrLLUMyU^<$BzBRlorA2TpwJ2W+owXL;vEpO|C*FUUZ za4QpC%U4?~cP-~Jd01bUb;F?`_|L})FavnPg0<)@Dt}lLpzh2Y)>;DCKFiph?NEAT zJ%EGe4p8N=G?Hr?qc&8gUJ8(d308l_=w_;W0lc4-g>3C=>XMq$X%1Pbul`ziM8pGa zJwQh1trcPT;EDr4x6J?Ep1VKL z(NLw_MY{v)a&Zqc$r74)WGQHiZ?m$|g;zUx`l?>ix_Q0G-%=b#WWGNu@E|xEZ#)Hz z3K%$G{S*1p3T~eKwEb_V;7Pdme--ZimgxwJC3mB62Bx9 z<^fSFaso{Fiv)g3*=& zIeIN%`nL~%2|svGte=!<)2BKil)LXiN`}mR8=OeT3K~0rYCylhbqD1qW#YQ4CuW=&(mBL4%r%QnoXYXqP(rK5eNSqf>fi zPVmneQd>@x7&TSbm2t+D?hdlg0omYs4Zj+*2ihAwVOGI;Xpm z6l{e0!m2>_Oe1)P0m-x^TX&n3a(hL>OF!#r>+pO%YMx#bRe#J59p)Idp8^6dJ{~dlIzzeOts7l)6|WkErsupbCMKU24~-r5 zFpj>b;MJtLSsR$?2l|IXUbeIkb-6Hajg~Q@a>-H}O;kbqxMC=>barwnz#^oPw6x*A zksmxX#{7O-c=I*Qs#H?y2PW*Iu4mzel3wrlXzQj1^&T;!JrgctVH!E9&Ij+leFhs^ z#i9pvJ09YU13s4;Udx@#ymae=ewm@$hmVDnYTH^f8}qYkssJQ54IDK=_rZcR@ty<0T_xu5;_v(Ndj9-mkT={I)+h z2V*5Uo6_je;3qzhiyoF4a!xB$(mePz7ZDZj^Qi8D?>9&lk$<0pbgfwnW^N}J>PYbJ z*qK)7lbfFy?X8TBavZ?aJ7uyHm38Z?oE~466YHz+`4Sz}a-rb^sCQ$n3HXc?q)H$N z?z`pO#?3V1in14bmi8uXY`zU~X-8-tI}oUmsF)67gWrECP4d zr8}hTT;ebpT;xaWR-AX4mDS5t*AQ!0U;5OcZaL*|KM20%kGqTy*iP%l3Yz- z-2Mq?)YkZ!b5FiQA1@W-k@cYryb$dv(L%Z`LunoWZ<0I^^C)vN(KgWP5Y6gdjY}T1W&^xq>1W7FsShe7=jf!Z}|3wrhTzP<4l65W6@GTOkVNZFP5LD+Pu$1atj!QI;$HveJr{- z;-n97#U(C{<|_bW6g|fzpU*q0s4eHS_zZPtr`swRK1rT`>#`->w^f=g)nU+PXQJgA z+yQXcSUp2>s}t_~o@Z09Wnl>|JBKk0y_TeIaP5aZ<&96+$a6!?Vh?~w4+hg?%i=wL6_f- zy6${|P{XwdE%?*jjc3d29G(4boJ+qr%n0IXN(yfme=%`V49RcJWqv!|;f(Ni=PY6F z|2{>?7?kW9)~`$ry~(UDsTTv*5^V`^a#Ry|qn{obuN$vhvnFtTbW$lLr1=J}>S+~w z1L_RH5d$QT>_%}(lKT^dR37d$9%LJ{Q>JC?J01p}4Ju~O&?D^z$WWlhIyBQnC)4~E zdwjv7Iz!wa4^{mgfPZ3^N1g%IU4EMHn07e?XhvbFpEK|RXe9|st-Lb zQ=AmK1-U;geE?xmcC;$|Y^qFMmXuT~VP^W}9uwW&m)EZCzZjHi^o)_W`;m9`!kasE z{SrFSJj@PV5(Xlyo!1i$BZNd={@|7ZTK(pftfD&Y*usJ>>E|m6tD0~-IgV)D>@x}Z zW;-!PLxW2BQo|dq8oISSj6m+#$9cR=VYI~13+TSh$mdZebJHFGYxmPe&^U?^k77gp zs46DU4kEt$q$4nWEC5hJ<4#C{(IWp2|Hy+yak44AP1x?M?c1Jx1=6uZvk}80u$_TSTry1tt0Hcqxu8@9h6<#r=X?g85_V)8~ zqijv?vXV&s@Q$XCUS(F`EoJT2x~!qiF-O;Rt7JAVc0qgp0aNdMBia6C-6FO-`HHEb zf42j4UD#%Q8{JhrJdgg$G8m?%4L=HYUcAO{Fo(AG zly8i!6{3eSnyT>`(Hr^{%P>0>>gFbGE-+bfq4lAXF{mXz#DVX4W zU>YM+D5=>?Y8irJ}w9lTu?eF(S83PG}u(k5Qcsd>|v#cYZJh>c#LDDa!nfs-b zhwu3bINfOQF-)EQMP@c^!23Rzj4EZS4Q@owOTU89fA6A`E+MaII4x$@$QgA@`$K&S zaNJVDhNZLoyOb^yd^%G{)ula#2M8&_F#B5rd|@4hoJ!pOp^iz|O0V2IB3&_jChhUA zcO*13XaC@kHv`V@|9Db|4Fa`s4J2-WSqcr40hpyaf+0W9ARG?yWtJQlxZ48!IEgR- z3_i^SefhCLqN#ExDp&)Ig#by^zvpBAv*_8$Twu`5IOYIB34cV&Z3Poeab*Q1?&XsN zd#pQ9AP}x}3rDK0vv>8kbu2ae-YW3hA+20IIkEiPA)UkZcDl{=iT@ehQX{=wZ>;zI zJ`PRYE<4s$16~;&Jv4S@yr3ZQbwQ4SVj93Vq`qjt>dA<$^ zZ9PP;?0L~IC21aY=Ww&M3o;(e#h;L7XZ5%ezr6zMGx2=O_#(+G}|g$~Sd+Bt*YH=+dduwv1aJ`P%(ZTp^30^|WN0mDD8~ z!SwuyHk*oVPuTr?0&x8mOeI~BN{yVWl`dn{a^}l@5nMKz>O62~x=Hy^iyft~DR4L;c{`^L{3jTGRcQFWcPfOG6 z0kHCcFqpbu(4ee?XoZE)^ya$BJJqj-DZYEq+6&ZKa&w4#S{S(WmS%62nD39bLvTJ! zXBj};L7iLIpCbIDlR>K3amJ#@v~7 zL=D6i6>aF>wNU|UYBNo~5w`p6_}Wf%_O15W@d=XKrp{j@hZ}{MCAUx>_&@QP$>O85j9Ss0@FE)$ zAChv(5b{UG$Ym6#k~DDVK>9HiIP1(0vIF!DwE^CAD${(LBOB$?)7R+O+P^F%C%?F{ zFhMuAx6l9LqmFd2YB7c4K!)ob5{!%5$xh;qd=7$+$!^qPd80%mNEEmw#4z^()#`O_1|ore;IE7FO_#Zm@7_J&Cync9FK0)lT~xXtLE4Y zZ9X|oe&^x&AJ6?Ahw}FSaU-29$bVXp$Dq3K#Hat{)Bkyc9D~w;|9K;wNcg99d4kuR zEQxl3`@s4adRf9c+F8;{5Z%v!E26#7mr$p6TIfAEq)y2o!~Xc!HY+&!wFt< z)D}Mu@=oxYSVW30`v?ym-_)oZvM_ZSmtE?*y+o4qiNJ9Zv9?qqg{QkavRD90xBRwGJnE%~4zY zILJG}YmS2#k6MQlyymDaejMbT;5Em=i$|@)30`y57C#R1PVk!J;KifX;RLTaYKtES zc_(u`eC9JR%dgS->G<~VrqsC78OYmVCD$3fl+UUMA0c+@(a;5A2W@#7%x ze;ltN5e_MW?;_f+Dlr{Ww5hZ*5cLTW_|w>KU`YIA*e^=gCSju8+Bn~AOkdy4gPU>G zj*at{7PU2wo|5LJd&mpM#&@mn@+v2b?7{ikVU}0hv6akt<7n_3Yi8E2XvZEkMbFGx z@S_cXGwp6m=vLp-%k4hwY_2M+M+!A=_$}yugO?HfYCn#-r zu7zJcq416jM~3;x*CF4JB-cZVaC3wmYF_~n3nB2}SPm(KoR?8pwr{iBl3j-sbB!Qk zDH(i75s8Fl9#W{({c=cwLxm%LltQp9pa~>77CIkCzCb*CNYOh9`Nzi~*peAO#HX@3 z2vH0RB0G!wWD{fx=Q6&lh8>!(JM?%b{Lsq{DEANh6uDHFZz&z_Ell+x|9y& zQib;1fP~H=1=mHrLy92_NE6=h)+LrT>-l1@Ly8d41(-H7$8v@Fy^M#vZd0SU)Of9F zb7&w!tR2LSn41urtb5n!TUZLGBsAgr=FzeO*K21uMqR~P83^Nsx8q+pCQo+dV71S3 zRK4Rd#Lq;zsTiA|u9d~%XE+uTc?9M>VJ=>=BVV%^s)?@)*Z60NK6A}8kx&%j$$=i2 zXAm!M&H}=@GZCJE@8(`?C}60e5r1Fdx}nExbT+h4YSw0Aj)34Wa9QFVkovJhK;fX+ z?sp*0jAi=VdA?7kLxc+iymtmmV<3x*WVeFLcrzX&M)H%=Y3$U;kR`R(| z32_40=w}=Q>}&g$)$tOQq970>rbzUX4ra-2T&9 z3MPsNr~dNK`9k7l!cF|?-C#o5oLKNIm9!fC-uxj&1UFA5ZZNdE+J;lxAJ$pWf@+w! z_Ss?oUbK;EYeP{l%6@1&kYi2dYgtQabc;Ng7ak-SN=tQKxAj_{<8W;6h994O--UY$ z9}KIlSoj{LZZ>;%W!%J!U%=CHdfF)|xYOW1m_VfmB)ru1^d0hwK6VT>Tk>#3BNdIo z=PuJuTI1`ZmDrP(4T4j4+UDX2GIf|21cW0CI&Lzq+ZC^cZKo7N!s#&}+QJSJpZ;SJ zZ%4-h=T4$3mWs-R?cuWr=|;GL&i%V?Ux%d^>M#4EN*>?_saF}$c0T0l`3*&;qJs+> z#X3bGM_mC@p`w-{O4zLd(QSUPTj8m_-)U+tfl;L`XDAFW;=Fa~K&~H3ZzKLPUcY#( z^V_M8sf@HW+Tvbp&51(r$D zGQw!P8@XD(a&zGqpNrXNO@1+|h{VH55Z$*;H4Q^V`Axm4v0Yg zE3eBMeOBGLI2B6gv8$BNo|;0tC@nBtVst({lVuezZ@TR?)cLI;M1D9_j?$3ku}6I) ztobqs+lwEZ(q7geQ%W6DoKYjC98$Q(O+Y)K)$U#H+(eh^v6^fa!tkHmDG7`gIJc*m zky>1B&5acI>s!k+=kYgcq^8kXE{7C$BQCW+dvXXy%PnOHwWYdwC+qb~B;kv_%S^N1 z<|s-pO(y=(b9*eLIqkGMzghE*{NRbWQl_O4j0HR9h$%edv3J_=-P~K3I0=((x`$HD z9g<1rUruux{5)LvY|v}!5|4^@e0ELycyo|Yop%wi>kcB?1W-1#pAox)AA@edDRE*E zr9szb;2t>0vvRl<76BsEp^e@W{0wp3aXwrs9S7V`v_Kbg8k;{o?nzr0qs?E1*lwEo7f4rzcFQA%KKQyL~-B>Lzv*q=TLhm7RefeQ zJINe~^MGOE;zh5p%?M};XrX@vEc#9G-ABSTpF&<&vX;tF%CU~4b#etnu*Le( z97aP+>dT8CJVSlVLJ6vouqbMkWFGn#xCOsVtM5kM`p#p$oBf80N$ekJr1XpRb6E8~ z6775VdWY4rr%+E(bCXB{-(V;>6|RFMe?&0wS(JIwhPPgU1>PIxwc1POK%9l~beKld zwJNQwurP{h@qt}Q^Hm zfejPUd=>YleFj9Z^2z<~$G#U1*N|qhyh3ot!~~i&q!{6qib|cfT6W9c%vef$&C0Y? zrmyaLnoV|dQvN_(wk6z0f;%5p=udOr;oAzHW{?k;ae~PG1@6wVl0Nd@EbpmkionUM!V=IfMXJGMt_nZ|r;F_3O#tE}8c`Ra*%>m|bQw>ht zJT3IZ{Q{265-tHNW^Mc&Dc}El62hcPyCdYI7~@Cd7I9N8=b??+?%iYThw?hj8gr?JYI!_}99 zo$WUVE18n+-!e^XDO0ROYNuyq8jt8?Af7o9)auc z`Y#*G8ouc9^z--k5xni{?Cj3aTs38We~C#P9e4e$;%gx({(^)Aok*|5G@VEz*A@mf zi`tn8USw)gz_!PTv$dy;BL+tZFc2C?ntJA|#IQf`5gaYib-k0R=n-A0>*XXKZJsw| z1gVRQLE-L!LMQo%4D7QQR4AF5z>9K$ghFUaTg8{54At2e9W?Qv&RP1$d9C=cI3
      P1hG5=hOJzqmLzpIsZ90<-d~#?)d%wV4=J8EQ*AF`UHpb`6f!Qr&9V+D(3i30 zyvR0~B}QdaTU7=#h7^(kJXlO=#AANgIvWUyrEh1qxZ zu8OM99dA@+6632UT|6bHRC>O>|7sPSwBvQZm94-zxNliMli%8@UOkV&J5qn~W~cg6 zQ`cm9i%Z;lFdPpO$3?Y~74bZReHH$-R_*=cy?K@1VkECFR;M~b$mJa5XW0vLWe}kcc z#vkjJh5Xtt1oWhz$Zg=9{{=z!jN=z3u&)EOlh~93t&S%Jwwywi$fc&i^??Q(eGi>l;Dmb9z|38=_y*S@%Bc2`3)C& zgHpJ!Lv3i~$<9MlBMw#z@-Iy3>fDPusOOGFY8$&qmUB(t9043v8C70xQZA(9ZyR9t zKCg5C9aL9lLIiYf^;h-MRebMS6~Iw07YR>*_b?L(Uqh005uqK;+SR08|7ALXTN^94U90Nxnd_CL%8!v+UT=U(k`XASZIfBEB0R*NZ9n&) z5{#U|NBhW)hy`EI#wdNNt!LQAM8ka_Wr`_a_b}j)uV~{bO$XDY`$zhJ8E>kMJgYx& z4(eyBugup+#3Lu9Mu;irRA2gKK(y}@f4WV#J*FiHL?))9EgR(I{QGZz)3(N#mWc90 zCJIE&%$?&q%Mf$e9o-{1lK|yKJ_02-0#m2$M!$2F-FJ^a;klm>cfW3KT_$g(K(2&B zs1q|EBdrovRu3~WzE=)rkwnggNaX5{d%Gk{e>5;?8rgfPwUfAWt?P;E>LZGgf{|3^ zIkKS{R^Jeyuop-BAzdE2Os%x}s0VuG%R>=s`KX~j* zl_P%o`L9S1-x3YnwstPNq%KYrC0uzd&x1 z(>g&HYVvqNx4ty#MpLFI*iXI*4SL;4lJCamcb}x*ezwoZunq9AF;Zz}l*0L# zoWP9@529K1A}<Pw9I==!6(tv0#kQa$9O4#e5!_=|A!Bd;$BuY5#aKW8Mz z#Dqch=Y|(Q$YJX{btC~U8Gp&v(aLwg8UW6~9h~vsO&>UzumOQ+wzpd%dYfR}3FW7U zoBetH3rzDyz8~?N*)u2Q#?ify?e{b;(Lf8no8?FP^eZ&jJC$fAIP5O1lmz0S8EC#V zwwlN_7_JcHX{h(Ma>S1-B`p8`#jv~Zy@P!-RI!*vdRzF2UF&q-vg!lHy9HoSe5p~o z8b-rfXTpA5T(W<{)OXaGQGKXJ3BKUJ^}3DUKZ|E^!mTq*w<84Mk>|?J9`UKdQiW?% z#I~F*i%5PWqn?p!PM-2qT=c$N^{wp=_A;aRUl%u27r&4R`=A?v_r=a6Ax^+ox*f&I zH>2mz;~W-^H|NjUc?8>HXCZ1DNjx7>8Rdk#g$+%D#U-xO%caS86K{94#YErsRQu(& zCpcdAFlKyhVx{=q(hDCpX+tHqfvS9Ud#3B54SXg4rD)g<#FZy%*R4>ClNWzXgU1wJ zG_|N2J7W_c=RnkR;onBhcEkinl9UFqeh@~&BY_7W0v85x<8=wfnVVd>|pPZ zoeKT+D7j6a_r9zd<3q0sluH@$s{^HGrBBE%e$8YtT$j_wEmT9UV-xxA!gkaYuXu-WXF|^W1oy|4U6K2(r|=@1_-9uG8Cx ztudIRpP-eJQ%J~9$1H+t`11&PIBOS@6BqQ3|Cpr?C$}iVd!#kK5dEloV*8HQPbU@I zpbbyg(Y-rb8mRYn8BHHr3eMOF5pP*PFgjOPO>5!t8z)jsE7{C)j9t?k6XtFwEsB?U z-$DIMVe?NpM_Ja5B>AwDgp1;~Ii6*W2RzLZ(E>-5sz0}I@2g}Rnj*RDZ9n$Q$bc9L zqE{bFYQFP_{AwO5{d6}i2UO6+IuCIp-$is_cfEZB8Ey6myDBhp)n2lF+9x=(0&%5bGuZg;4DpvR-yZ&=o|riZw@x#cmPupIl|@6TSW(0PTJY`2bh5S_;?)k{NN&~S~@ z6hnOH8>STeBtdc!bcueC;ub4+CaI#NDaZh};W}0cxnWD5p3Q915LJ;6f!AkpZnc&t zz^$(L*67B!KP>wo&8>-QD0i%wzjkntCBA52CmSNM4VW_k=Lb z%%a6R!nAV?#QWd@H~Qb>d`>SQO0Cw*IbkaGU~kK@iN~cwx%<`m?~vj_z`AOW`WM;q zAL`}*#V_zz=!O8Wd=8l-;QI4%MPY`ttxCNk1^SKg2|$?Bt)8e82=Yxp+#I>CU2tbp zrG1i5-2oq2*H26Cm$mAe^!L zCFenr-n40A7D0W$z(dL`!U(ovHNs9!pt%r@?g({!`|Wi~Jj5X)sG9aohgCir6tNxl zRD5F&%$;wFNhr;GT)nejPQ2}@(18&kmb=pI?WIf$8N6XK0EiDmE@aQ2-=%HRwaGnz zEH9v>I<8PfH>9CRKYjXN?=(`~2%%ds2qBk0cWPepEObE$VlTbnMuZf~d+ zyQ4^I8;5l8y=b)&o2pNtUDc&uT(p1fy#;-O=dgQsISHmqneQ3`4ZV^Vs0x&eRS)XK zu3xKB_^{OP#y+XRLCh|Pl;w;}MunM!=Q;imLR8}IP<-KsK`*7rJR-Il@~-vbl4?px zMCSP~9^ZG(YtM^xnk9y6UP!dk+96QmfbZ^tblDP^^2|YP5GeqvYlmG@*SnehmexR; zC%F*{uey*v-1^>yhHn`s2OPyIsnP975_Otc>}W@vG3Vs#H*nuf%fzLu$Nv24SnJWU z35oNqx)$ds#s~SfRd;4=#SV1|zB3u52EEu0CqPBf5M0bFyD8u0DsWdlPqq_>{hp8T zROo)fA2-Up=2y2J)}Z9DigP)A!#rkt_Q(_2u8i~oO)1zUgOW8)?1XW@p9jz`Jeaf+ zzS2wq6Tla~s~gBD`>h|dJg#Z^x)&N-`OBq|e9V%dI0Ra6l%H{Mm|mS!maiX0xa5(4 zdHgjvH3M!=Z}uSlY&7FESsO81GU6Vd$+sTOU3!-2BI3-fhKuaxlVes-hv(5ivBC=9 zl)>w2S*&j9t4lbG%wf|=3C9xH=K65Yqt(I68|Gi0C0aVaLaUFxpXeOvG&Ip*$8s>k z|5>UI`>A}4faC$`(eA1 zF?>0c7S%)b0vcx)4N%0wp}!%w8}JYRCu&_wPyRRL`v18-bs4D65q7}Cvkcd+Wnd6W z_nztgLN}8qUso;Y?4{00d#POmZ&ZHK9ga4XAQr&fo(}P&bXFgFEvGvpKO)Yg;{i`A zPRc(BC$;b*eQT>D(*re}m*qZ|Z%awo2}G~b=foDlG^OVj^{q_+-*wkjTI*gW=uuKW zQ5)+Ed=K12=3@h4@qA{sJq4oHVRCSSnzfzJ45^%$P#dTa`TgURMZ03|#+ufJ8As2w zMz_F}mR_XS9}c#Pw1jpx&4@fpF@aPHsnjwbS}&#Mb0^9}r(%KX z_mCagu7fx+h*pH zH@4c&cle_!N&@+&hpcj8!F)wn@m5{o^Of-TWqtkiY~7hxjb`f4nKjI8$*rfHN4m=m zV>+d#9&jS0di;336Z0fZKl%T%-A;tor!9GgFwa$a5Uf4z2X2h_tnh2V>%MU>Cqjj> z8*;nl>jMhrHLasTvg&K0vRcOYhMd8}Zt8?(^zz8|2vMwHW^L{X924%om?>#e^cT-q z89lP-hF-Ucf4W^_(Y3L66G@62qsBTp_)u%+7=a{D`*K&<@#05eOFnM>{4fm(kR=b9 z7SHn-qhBvLwj>qgVIG;jIu?m$>nhcruJTMz3J2ubqje@5u!v9X)35*mx=0)LC-)Gk zh0a7UJKXL;BZaSXKJLXp(p+H?O`5RJ7d|+ArMf=!`2^0S%Bb-c+>3zn9Yxj+B%_1; z->)9JW|hKhkDAYD#gjOk2~JCb=B3)^og`QE4U>}Z8AUuH-e3_OoBsWB@5d53hVX<4F zrIjo(0bYO1a&Fq;hJ3@@n64e0R-oHV@5ff2M!b$E55|ly?Lqn)C(?bv6{DC9DT88I zZOq+k$1K_E-&(i(m|F)QI#BhYu_&&u_P#{d`%U@{*DrMTN7c%_APKj!$x1k;4tNg9 z4XlrN8#?9m7TQP{uPfTEK>q^A0<4AZLQdFkE@o0;8%MUt#R`uLR_u#q$4$gP{NNZ34_$=)xrQKv{0afZ5-j zb<9$BbPqd?1AM=~e4LM2oQ98C#$LG5td6XZKi1&D5!YiDzGIe3(ML!vaGgr`JSSpc z{*;CU9Zt#2u3FdNrI`^qt-4?Q${@aZdQ<6$aYrv7E`VOJ(?tgxlJ&~PL0_>kvd?nIQhdQ;z<2g(ZE=eS-B3=^#0XO1m>pvfMya6y@! z_}xG7o=Ez2=0)Vr95xzg9~o)KEML#N9kaZ0f*t_E?>!_bLqi=o986SU3eyOHD*$-U z0Ow+rK(<35W)NPc*eKo|6kYJ7^wMO3EY0_wX9Mrr;H7U0w3FR)3S%zeN*c}wFKn8n zDn88KCu#+LrEp&^8z~h=2>u!vCv^BbBAc+bmUeWNO};1S?SuV|&cpjl@}*`nowVRC z;p%jvt^_IUIX9ODI>_+m)z8}yMJc^1i=lX`Ufp-=p6nhfW}&AiB?4M!93jKJ5_X=J zy#Vw)jq|vvgi5%UZT+}&ZL@o4jM0RwnE!isTigx8rmb?lms8nvV{ecfcX&C~8uA<@ z4|swyhQfvdFI&t^^^RF&M)nJpCb;$er;Cy2{Q-T%o7fOy7o)lpwNrIz@Vx`>e8B7S z$P7u;R)Iu~p9OD%IeP#Vnd08Mafht94q3|5kRNXdVBIFq~# z?8>px_)AX%*Y$8P@_c8d=(@L-eycxE*IZPHx)xs?T~>C?);BhAZ~KSWUDH{;@!feS z!% z_e~{M)!Ujkp`vc_=X~vLLP?v}+biEp3@IJ%`5K9Vlq*H4J$|-ffU^h_w|50`G2Oue zOfLBR0=O$B7IvC>%_ByaGDLv#tczZti2r$${1Sh^1+FoT8C(U=D&`ygb{uQ!7(x$w)Z$W)Ca8J92K=*Cocnwe%*cRNW15dE7x^oBSSitIq9qiDsD zi~z9d|A=Dz_B;4Jl&phFnm>Rk0rSyAb zxmdcuTd!ahnO@GQ6zW{PQ;C-#dKR6T@y^q>0R5aYJ97s+LXK7ey&?(Yx#H8EwEOD$ zEbUA)uSV(1=Z49Cy-|4UpGlHsPVtNB+Y%F;K ztOm$9HPlk}oYQNxo}_u_V~wKMosY@Z`nNK|9HHz{1e3%v%Shv0w5}f4lcbE{aR(9p z+v@UtH8o2%))y>Zw+kmOIhkEr!{r9b=lBFVkd|m~y0s1S->ERG3MXFBksDJp*R9HIi{FUZaTWi0so{o~L>> zohUHz_y>EY9|?4;K=#If}cFIna3=jdjOH&sR_n_KA=H? z6xxp|TFNoY6EJWg>v!Lv*0x|{ZuB_RiZ4**ena+|BGivrrfSJRdADEGUra&A2hD-mqP4VO*fIlMakw2D@9>}9B zEfP%3j3FY6h@vM3$Q_-CVWQ%gX3X)e17!_9T(wlrFH13 zfOx2R$k;t*$y1Qop&o z&lIh(fZgPWh>-eyx!{h2lLM(i!@C35w_l=sexD!2*`)*b&kdgQFy*Gu1!iMZO`V0* zNLq&KMrx6TQL5d09ohM81!h58)ZA^r;`JnRM=9hXq}L&41Vy0dx7`dV9dfMl{p(>N zhlYzot5J|bMM0Ha&SZJNps!GTw+UuoFGOK`t?dc3>c7td&?t;1=0-1Gq-q|s)FhN5 z*SJV!hej8USyIy^fi@9`T+P93PmaQvCeGckqwCf4hadYuyS3P#1SSmBft?9vvL75t zBKq*62yw&^LY-!Eq`BTEOM_Lm7ka&DjI4u3?>maLwV?Dz_X4x@QP#AqBF|@b2`}~e zr>l1R)lT)^;JS2niz1LEvJ~QYhx=7!WY1W6bWY@ozN(v%VTS@Pgd(3&d96M%2w#D3 zqf0aLnKx;T#C;BU(x3jw7y*QF7hEtq`Xp$|lL0}w*{z`_-sJRSLyt z-(o6X-)1$qhUZinZ-dwZ6a>H}QkglLn0TA{+{eSkBUg@oBPcU8_%7U)iWXddBRVZ+M;%T+SRs z@k7)W`}3t{?o@_$6g&PDRVV+r`1!J3Qb4=o<@!;Gp7Y~LwfYz<=1`h8E??i;Q|0$F zz7_onIILfNv89%>dNOXDnJ z62@MSjf9CpKxkTj$4mtu^ifN}SuqMIvOc78Zf?Gl$v*ku_8cvsGY7$-&LpKteJOBB zF5;wS1%x>JH@IXzs(q?RezSI~QeSVoA*&9pTv0Y$u)C&nsONah!jYDc3NdEKSuNsO zRk0_#9lpAUEU+2rIOT=&GK(XiVBcg?tafE&($V_EUxH$4hJdK zc-ZnW3qbZb8PW70fchP?Fp2=FO{*&yOOiW3#!sU>E$E)@W}X~N#!}~7VEsbplGj7XecxQx$qrzpcfMk-N+0BM2xYg zR-kG0SQ#O^lj`?7O*wqFR!X%!*><+wX{7~>y74E}!EI5XB2Sl*caB+Xg!2xb;w$V&e)R)1H2bFr~57=|Wt_<(=wR6~gI+~`Qi@Vr^kfR@odm+quY zHCf4XR#V~czL=g{XS@V089L!F7mL?HanXV!t7&C_M^WcyF5jaB?ht6bDc+NXJdH^#9)%cG+T1@^7eMnR98Ts6>^NJ-^7$5jB4=H2 zi(Q2HZ~UJ((=>XZ1T?o;TvbN zZyjkPuv}}AFjkqW%agI-)m4J#7`oN|%-~y^*}nMB$|mOMGW?i@Dnwg)AI3t2T0A9#6qXUtU zh4T5o2hK_Z0~3(DPk89xyP(@90E?#zS?xmCynez|xB#_>BcW3^RKWv^9f& z4qb_4!V#B&wa|Ik<5;E9sc!B2B@(bu{cQxyDd^-Gtm$8~P4r zzq;)ZW>w!DD*5ZFOXm15*~%4nK?TJNpKX4+v(0xOV7}1 z_nPJ}<>w}NuHNyfU@hSn1pVAW~0iLyGiU5lCy+Kub?8}}D@9!!k6Fvx|IR|~$d()1w6jb1kw&~f1Ez&Abq#iKH4X*8D_ zK@DL5U&C!{rnNl=czm^!U9fZXhvc!__s*biMg+^eXm}kGz*WEr?GhCld;5U`j;fa| z&vSol7<)yd`2X1Jz&Ok4eP! ze|S?SpZg=@{vZXCK>fi8N1R~J&9m*v#US}0cintRc3$jwniYyC@VojjJ%BuGm(F$> zKdi)e;hV$H9S2>uNxF2<^BicbEO&pt_ZF#oY(p&omvFLx=n~UqreBuWhK*0OY9I`( zq1k*EW*kS-_C0m$QqvLrpJ2t{Sg7uxTn9yt)zxCnCCL90a>D3hC&^1DCXRez-_waQ z<-Rjol!VbYV-60Knq(^6ti0*z0}mnjHDPyr8KqEQ%EzK=bbC;-^R-)D()SA~ZiE5< z-4%SDUUwSluHYI!mVTG?@ti>{DaV1YvqgL$8H>p_x#<-Da|Wh;no&QF0}mb)IK=jS zm`Xe&E^Y#Dkg@nQE!%{1dWs(i;v>*80f7+B$ zOBZ0|G4C>m1;4bge!@oJxtKC*nIrc^=!jF~b9;;Fp}AL$`2lIm03~WcvlA_k0At zHn?+Z#%mFgO+F%8MIrcUkD(Xm;VPDtjK(;PE1neNQjbIL`ub$lLOGHP?mCc|6KVSG zn8gcT)3G*use9t~H`X|fX#D9F>j$me+0M>d>;{|$Gx~|^Qg7nsOyczwE%XgYR?C&V zt;*k==|g}%2ZSk3z(+ghc*u>fZ`td1O*itm*7T7N=0MlVGyRs&2a=}}4fX3O0!t4X zm8zQkwxc8>`fgqF?A?)CL&@qfH70w()5PDw^DA_r2%!2c)B=oUiDGcfqD^zf2a|W0 zdQ(8H^^rbi@ki~n9zDP>UH<^4-Xo({vSaANFaI8b`+Eqv@$VryDFDg&k)OqgCL;GQ zBfiWZ=v6=&e}>r{EX9ynVUgh7KmH9V{nzLFPum(iDnSQl;$$5b~ zb}$!Rjix}l54lC|>1g?gnc2m1(d`>*N9$+tTx$(!rFCtiK!)r^@?QZM>j9Cjk1KIO zWfT`j}K-AjFjYQ>hYO^>EnxLyy>oMdUqssK?3)>W$UHV5{_B2 zj3f^HkM1KK0Z}dF85_OD;IP!Jyvoo ztqY_1hl?|91WXkzgCD)kU=-G+c^9X8H*BQZHp~uRYxLcPb_kl6S(X|l2?mr~RuJ_w zq#kDIXLy>YCQ6P*nx(I(De-Gc_L+KIo4wCOAU&}()gG!UjhiHmKSLM!3Nbk{rbQUE zHrI~trLcPPBDiQ?UjCj#91RnqsuNF@?x46nOFR_Aljoy@V4UCW(gIva?1eQdG{|VD zaM5X#;r7w;?6CyTfFf~Sj+|A&o#h~>A# z|3jdMW&1*H#oeciaciSxMXKhVPgJF7o;FWj=HjXk3fv;TteV$L9R$g}FrftlO*5kO z?aK!xACI^UeT($`THQvV?&i3$P1)OpadkMFoQv1{Z>PVlz1ug4OP-oeM^JFq@Pg)# z^o;i^I0g1zIo(KoV?_1l#LAZH(6pqfs`)msRgP#TBbv%e1;@vz+<)*3tHsBb7fN!v@ETPH$PAMoQCy)xtA-uM31Z3jGj9b(m_<|?5 z_aAlSl-P|R2dfUztIbVKzGB8BS0^?h#)#*2jw1FoauZ9!&Z*1WNrFM>$S%G2J)lGr zv{dR#NplM+llQYD@+(O;KBf3tI&9JEYj6+h6d9hkbL%rX&$$DxA0$m`LWN6_YVDOB zVlW~44gQ&v?F&134H@bNGmrh#K3Vit_v^WuHh!cT0t%H1Vgg1^qZ`u0 z(dvOn-Zlxl*?|@b%6!68*J`rHUoUy@CGQguY$%gSZYfhcXzcR}ew?-$337knWt9Yb zx>;6pbjrjBN$3I65>j{dNIlRVGqHXFWuSYsPql&HV`OyToE9xTqL#Y-jjr2+JH|aV zM{Ld*$6{iKKBS9N-@ArvLX=O~mTER~PFODGFVQQlmRS$S{$p|fb_kf&r=A|Oq~{?% z!>A@fatuv~1x&94ylv_NrE44j^Jm|TsembKCmPCWw3Hc6e2{4eyVPkFpI4}5Qyai^)JdTr4aK&#>R2JZr0tI~XN$21dIu{LiVhRbg7W1-DdnKJB z4sDCiq=U3)iD9l_ni{Y_Y*yw&&-Jt;?OCyE%L3o%0s;4Tth67z^A}d~-ft~wNgrP6 zmQI2v5H@G0m!$`Yr8Y08N`NQ&ld3U;tYu#nKdW!j4fnD%u`(xi3B1dj-|iYGmIaO? z=kxe-ns;?O=4m&F=-kqz$zoiY^Ob`9?PfRaTR z;-kTO3NB0(9_gfzP-oT;t>WlvW$k$(GtV2}eRo`K{1A~L=N)i0`m^fg_`?@UKS>_l z4WgA&yRO)Cb)GtvYBwo)LJ5<#M=3w@cCHMmx+!!$$7ze9EFe`a9)B3FQOt8 z`$bep*Aqg0MF&*Z`TWIkjw)X(`(j;5B@`%7q;cFq$yb2u_OkiuUFPJ9L*t12GnCzUw zaZ-@_jbk`Dl7JF>O7#3CoJOs|!d9%hVdS3)aWanf-`o$Gd0EO4Fmgj_t?7tsQ?xtG zbQr5R;P#L%2l;$!`n>qVt}guyBR2pt;y-k1Dz_%>CEfoXs&88NcBT;`EFpKudkB3g zhJzgH_|@(F;^-RhSZ?+tjF1rAU+k~s`~6bj5@_+q@*}o{vL3tW*Y?*w6)O-DIA?Li z#L2(T-&zLRQBMN5MX?~Qpk%M19&n5(KV@k178wj1Q~WMOlIuK@i*ZyS3w~E^Y^ESk z3uke@9;Bpm6Cn;xO=F7uVaAyC7l@3rq3f0E>zyr;{<#jKnh zZsEJ0e8b~OAfK{!l_yK5Efo?imTt79>fO*o{jl1!S zmz8y4#@1F#c3^z`OX=zQ`nt0tL;n7diVs>Gx1{xCYHk<1SNv+fCw;i%aeY?r+N}5V zwR-QycX~eaKaug5N-eOK`GSgTmX)@}lBQ_=i>1I{sShzm`KlPnvAmqbE0>le6;r*7 zk#F#H9`K^>E2KMg_K2ECt0%WC1N{7x<2A}sWlT)a%exLwA@{tAAa)wE-Ad#72e};s zH_}TjLL=gGee)HK@iS@~=fJ7M|Er6_D#{vm{g1lKf|7 zhSQFeT9BNw$fUHmTMDW-4|FrG-p9t*V!m|I;gUJ8#m%9DG_xKSXk?j`1 z_7P!Z0}P=5f`F7LI62|3OHZ5bVZ554r!2zWLFvUk;V`P-Z72gWv?G9B9%W*}UqJx{ zVj&CMAd!r8hR(7Qb&~=`o-rpsY22nDqr*;9(g^JSP%1PI*wmO}9icbo<6HN`iE{!= z6d!Y;K%=U1`*TLEs_lFs9y7@p@8Dfwh1|*BoiJI?fYd_UdMW-EtFR1r^PI%oQfM{($5str?R%-)pFPfE4?242|)TuITU1M3mYU3X(R>R#yQxSW7?UQDNv9LCF7VS=vC*!wvi;&qje4n zBRvR9J%S9lr<>3?VP}zr|9QHyPPLr_a9kww8|r-6X>T&&(|mnQPYOHjVn?@#f*zUq z7X{q;{HwdVOUrG$)i$A4zRLGBU!&Lj#mefObNOBu7q0y-g?_OcK;Hu0b9(REv=(?Z z-N}eQCr(pZThNC-M#>zHe3#``hvXU30FsRqxeMbYAS%%T2JP4bxe7;kg{yNSF|Ve0 zhr>d5z>Ft*m_d%hhu*>TQ66t|pr7folL+45|!>G!C7BnMG8f z-M|uz4>|v#p55)CJ_bC>bVdPwqltbU_>leItG+cdbyPt|oE^YN9J;mBFvl#{dpeOv zmuYxFRp00Y0O1Q}5%kA{W0pHenkqYB7gHvgU8o4~;d=-lY=|BLsQSuxm>+=z$lm$a z$1HlV+FGUw^c8f&qZ@FLr&nS~jIa;}?ms~3KVR(dKUX;L7$045@t8$I`p5u~^*M*3 zdm1BNyLb+O%Q|Nxr!GNv>Bc~85R2^nKyGFBe?c;9r)m#(85sPJ8N9pi(G@%|e($%* z^}WP?rZ&Krk4|(USL0)7lSDUq-qv~O295|~xIbH@zw1Nfod12Az4dP_zJ(q=;6|K0YQw$)4O2^RxUMv4YyNRBeO0ypSCjvSJTlPmJS&% z^%huXs7=2PSKtXw{M`y{^K(w{KNHz8M-+ zJ3U+LvAa6PyzZA1{+=jqWSTB!(zUJc_b`0{?PGOAr&#<($v5+b8GVyy0D)Z~A*b1y zeE5wJFUmSW5H{0x8PT7E9*V!2Gb6H}6Vu^)F;`ZF#F;(CQ*3yGG)Z78DHw}sV?0E` zlq=CtWk!D(I9APgvL<%1w0m#6x23Az#>sQL=K_wAYhLa^mya?C1E!QV(zPcMPXW>0 zD~VLE1S;eXsqJE>nVv;yzb>fjz!n=v?Ca0X*0D)aZ_d;y9Stv#7I?E1AMlW%n?<{V zC4dgO{y*?~cYrGi2S99}5!7q`=the#vrv==yP_fYw^a-*r|MW>apdSS?lI0mmv|vS z)2ZcXHxFS&W;{7RGl8wf$Jt7FY1l`$ssEOMRE19{J6&iMxcjr7x@@FW2Vo*0%$BH9AD>};dcJb{6#vLli6G} ztMA${3~?%&o1^)5&&XC(Y{_K4uu7Dk?F)A!BTa&XJi83!cYPvfLL<#;{#J-*jfqrx1{p( z`c3pKAVjBo zZ|P#H?NIfq$aI9FAC*nmEG)|OSR@7j*XfSz(f2toZQl-uYi}lkAPH8?@z=e zk{WQ#0!HouvLpUYE%rbd$kZtG04H0RG3)4TK%u^}Fwe*VoQ=J|dWYUfe}P*3s|#}C z-$h+OAHsM5i;IoXtRYN0H%p9pjrRhji1LxeqY~9!(})Z)5;S)6?bpEmz$cBPVJgq% z>`cgW`6q7Oe;O$CQGG)E)BRT#`g=cD4(3F|2@ePS$9`(x=*YXJbTQI0Uh(@uX_ssf zoA%8iccyf~OX0B7B*!b|T{gfDeGTw(GxI8rV*RB@fS~50x6EIbl2anBP_&^@o=x)9 zbA%^$L|?7@KAYxU`@>*%_PY^v%XG}=S3RfJ!Kqv%wJS0^_OMA+OJ=0&qIFs zRJr}N+|-mkXM=v8s^jLW^rPX&x8iT;>)(pM&-z-<273dYczqesuNlQ5drtMKlAv{% zvS@}nf7sn~enpy5=j6>-O^Wn$lGFjPp6FzhC&sVIWfE_q$KxSbkVS?u4fr~cK)T}; z&;~L3Re9i}Wo~ANJ92djEZYO!{(}<3Nd0yXNT24}FoB(}M##^ND8ncd$rS%Q{Hl8z>aGmS#_H>3G{qX?*lXFXgI#u_`n4U^tp2% z|NF=qJTS5m7F3#=dKHNuWyZdiO{-@%mWdwX)GxbIPUM{h#A@s=ZIY zf4f#>s+{+Ds1M>n4v3%!EC{c>qV=5CZvcyERzAQenma)VF$(WTaz43bTUhl2FPjpv zkuc43J7>Kijm;u4NyvRo+Y@|de>Rgxs**FRpN-U34W^?(9 zgB4D#9~ykQ8X{&hkX*=`7bjL`(0o#)*?0A+^3?)4&X_LKV02uO{zsLP>hja7bCXs} zsco(M&?S}lrhwZEza&UEFAjQ?+2Gk%nj1l`>5E^89E9sVll>p!&znS|LB27lYv{Ah znj;?eObh73&!Ja>)+10?{7iyjeM7@|menNUG`wxq$)aW4+gC;o7qY+;VsY~J&rNig zmgSB^uV8&kCzlgo2fTr2ze>63kliJ&@#2l(;LLz(3oR7?>)B%!eD_B&W&@%R%5@9o zK!J87TG-b6`LbqFn1*@-E!O&Vw=St7WAh%(>MdF-M9=&%(OXzk+fnPuq8(v-jj4hE z8n1)a9<$JtP|W*Vo8CaFlOr}V-_2ddPK5#at$+dKh6IpEDk(w6!s=6)27edAjZBg+ z!|oAi5=)bDqZdh20gPGW;dRVXii|E_S8ZkL;bxibSg)pO0DI`@IEi?JzmpfmP-Ql%DBlH1sjcJGug_l?K$?Ya7T76`%$-4IO-El)$#r ztWy9eYrOM?z&x+<_Yg-UFak)VyrUcH0&B*opGok;AN>h+^`#e2fSI2)Wa!%j+DU8& z=}HRSr%y@_Df}9UagQ5btflZ# zT`-aL_sOdv#kBAv;|vZJpZ+Wnk{7Wln0rIGXmkA`VItip&)qyNh-cK&Ld`Ku^ zv?^NRCV}+m;Ab~5SMIFQfwWWcqqnCmrL-ia`n04aFPE}j4p%!RdQUjw^IJhf#qrT$ zOszw~(c#NwAZZS1uxMrzm0`xIAko44-jV}KfrUQzC3tOl&|~wwU`2^ z`eBA{MtLvMFUCCwcS==mB5Lpc^Cc1gXFu9 zSIHKAFuU*Tj)DfW2}37n-8cMFFtnle#)}OxBq6;@f?Y-9bAo9#$IZY{#+`@JbJY2f zeuc1}8&%~Cx0G(QV$_3uqMo!3c*^Yu@zjk6=)zTdCBYfMEBY|ej!I7~YQS7@Gua_Y z{V07^;SqDmuS455gWJ}5X?HNEQ~Jv_(PgS8m3vRM9Qy@gx|~)lBad0yQfT5>I*%C< zPru~$$u=WnFdq}9&Ui~_bMsZ{l#5y|RT{5kzF8J}LRopW+&Uflo~F5dXi?Wz({yB1 zPUO@Nb&$4cZf$J)T0el?|8K;-cTkgSyDw~6iZl@s>7XLLDILV*6<AR@hM zkU&&=U(!1wgb-Sk4gwKEV9}*ZCqa5kr~yLOd3^W&&Uf~neP+(g{=PYXSw?1J^5nj+ z>sRe~NO3CHo~770Mt1$sCEaVDFix183w`5T^lR(x{6h&Po;?XoU;@iaL?sSMMbqOo z9))A|Iig9htMCuCdI&XwZ+oedH?^cR)d@fIh)HAg-ef<&hJY*QTB*g;6=tS}W=?g0 zy`){fxXCunai{}uK^_Q3iu3ox*b}eZ!i|r?-|($>t0Qhw*xofeI^t#=X$ySrF0dFO5)rL6*o6+^VEhwgLkltwal(&~z z4QUDTCM?H^I{0DkJ|*%!0+|AT-*xlGWP~DS}n^68gAYL!>+DA_LP%4DZc+U3+nf}x2v;>Hev?$Au8{(@_JCcQ)o-x@L}ug& z^etss(Z}+&ToM@`r=)A*ix!92vD=8PUQSCaU#AO<)yxLrPbyIbZcR!Dm6*Z}tA_^z znPo2Osd3$YP9A}%`0dZ!hQ09%GH)hQ!NZ{7G2Otj1nI|>EuxQ?!67u=S+wCcpo;J z_&c){qwk`wy4R^fdnL4Yjgvr{*t=&b|Lg7ie|mfUmz%_Y`!B)&zjr+R-vE&x&L7%R zZLtXVvqJhMgebW`=csA0gDr-Bi9E{qhi{KZMJ*e}q=^y9yJJNsgo3fe&_F zn65RrR|||I$26}YkP@=(Nr;#={LM4^=rD*C?$(a{LyM%|f;$`xgBp)(z#P3I9B@D9 z6e&7UHTtOMk*7KaEt0(QN#H$zzIU{bCrRs}WnVpC8*cNHXr)_HD62 z`TOao58-SA-{-XhmXAx8o}gGLVAUf$ zGr&j)QzBY5=(7*O--Z5YRiHuZM!iCA((X|6DUyRadCay}JKqJ*Q($o(HQ%yJ=B(X< zwUJlX)Kkn&X0-T|+E{xDcfS@kyP9!N7_i(_xKTuIcnT4Dgi_HAx9VYCPsvsH)2+!( zuH70vw!5>~dWFc;;L2~=sUg*V@U>>$tZj%Sd#6WUuc65l#chU(KxdM^>|r4}OWdQm zBI51FaW6((1caiIFWIJ`ZEtU)NQvC^K_UKTF=8(7`G9hGYzK}J5nS-f%IxdM+g!Y9 z*iv}NgyGkB{nAE^m6dnmy6Wut-!f~tE+f>Xz|pdBER#31c1g`R&Y^Pn zThiD;OQM1l#k!rg2l&p_Uhk!}C4?isF~UB!v_PT>ZX?Jc0Og1(DPS~A zN>$TOl25I;ImlYcv7`C!f!sxeIyIC6woJz7vmzK5<)T7v$8-i8+cJEg;~uA3mvw8@qC=^ZqWUL;v}Wy(*9x zm?DSIyK$Jmp(8|wvNk~v^QULbJ~~~^tv9iZcyN_8)-*ljA?r-?YR5*yF463fzz#V7 z9$`YB?^3s|%M8R&bvob597Q&3p{?E2gX=0#-N+(WqesEchg-_K@b0Rh93rW{oT zNjFL-pVE7r3G-+A&e%EXMY?X2&>=_c-{(fk0q+iWN(X=qbUR>&`rdEon1w(zjUPY{ z#P`WvXE``L@=UW;d_pB^e)krzK{-l;=@|qeqf1J7t^>V-{%r*kKYVhsP$_L;V2k~0Hy>*$13MMis-6A? zf(#*F;HC_Lyw`HDvk+UzkNL|8KXT>C-{%(d+iQj^X<8^xGQI8x^+CXdXmhh5&zRe?Y=#1wZ_D<5CTpvdhw^v-rxau-4bu*cXB;R^# zTOsTs;yD>l7`)P~--l3HL`25EvZpe~I>i>Ik&gZNFJSPKk=20-hA|03O1-K2Q~48L z{2vxBKU?8}B8yEhjNCANq?iv?c>A3TH0;_|5g=;Qw8EC^Vk*99)p zlW@+?w9m+M$e$wspL9??$VND!?w!JcS>o!>cNlZ4D9vot%Rez3@W?m6p$MCgxZ`SS z1?0Zlu~Qi0l=xU548}}v9o5+hjvVl1Tg%l9vf`%DF{&EJpJV&>1kCCS!aGPs#BlsX zM~_sNQGp)HQd>nov(!6V?-1%b;bLnm0qnikD9+5@3A_;sG1T-(sv|=T_P|D2F3KOmcFjY-GZ-66TD(>aty5Xr{$T&r~TMV!tX?O9v4&F^9 z>yRAozIs>vts4GZvb03HujAbLyYCci4aNJ@uu^@-*7YAc)>dejj?cQfyE^k3#KhY{ z(o|;&-IC7xivyg#DMg!wH>#z8)KnSkAM$cD^z2++5h*sE0Hw0 z`7l96sxczisbn2=6~IApPw9ieFCRvp&w$h#XRQ+h(THD_ zG*8P6r`Fz$pL#!Go+wGsIDhNVh~?T|Top(b zz!J-dUnVCGm8CYolVe}=txk%3xWZ)k4M)F*v=;?p#!g!7bX#==FWNAyzW;|{?SkPu zm_Vzlc> za%havtX1tENE!8~S)M9}49#62(+f!R{J-BrJ_Hxh_O{2gIYlKF#0lTQ=Lrpu@9xeU z)_6R&99QIfsNU^~-QIHd=7edR1?r_-YI))A!0G)#^AzIbPg4ufj&=t^eZd z&y8qxqnPHbnC8@Jed{9MUvzP*bB9_2pV(g-S_?LN%AM-5jH$n9w)o>b#~A-tqaEfJ z?pK+Co7Z+2KU86du115MwNv$~^sc28lFT}Se>`JorCm8o1HT%adSk85@LlKw@G-SY z!nC~8CMG~P$Xi=;;f1|-3dLx5L1LLQG$mp~=8L%4_#o&AfRqIa?SKMiXW#cKu=Ios zo)7JCD9SSS$JAd@sjn&B(#zVzsA6r|237w)N62T@kopdsP4LJrezkT}5s29<pdvi@oQd-~0xO7_R1 zi5Qv_6>^d?xy7Fajjgqn;C{o!o5DSykQ08Q3K(|uRN#`&kiF6`xiXJ~YMq5z-RQGp zy~nYfr&^#GRfMVce#4$}mvOSI#f;n^lrZm_t#Kp5FX~g9%6x=@&;e42i)a=r>P@p=M+5 zo_5;1&H0MzVu=~vhXJXCK|l&6VVp>?l2lsNKJ|kZNTw77t)j&1tG?NMJ;UO?iU!}& zWgWy9;LIHZ0{wgLk5gW~uxM(?iHy2`{e$P{_Fo#0B6_Ob9njp3kYWx-yA;Qr#s<~D zs7cL^N6$X7tuq6OB)~0@dIsEmn-Qz|C;2W)C$I?Q?)^U8CX>)fh}f~=DHI3zlz}nE zX&L;R47WUc8!|G#>jA4#Is0=y7IyM(JjNL1S=Uz%#Wu_0AGdpu0w|R&1$9a1Uj>pM-^;dG}}wvrOEwn zVvVa+=(L4(f^%b(AFQvz=BAv0*|Roc8L6~3MDNCuv7S_*t`^9mvMO0O0KCBv2j2+Q zc-SMBPZ_-N%SJ3&(>4Dv0+~sa?|Z1%ufh)!v?%>EO^nk>Y?IsoAL}rkx`B2R!q{;G zE5Zdp-1!WlTa3rpAXv!2gf&i@-?}#mq<9VD`D~w*$*z*Jx(q1V6*8$Ep+c)iz#EZv z(<5EilQ;&-OTXYF^8};8sSbr2mBrvC5Tnk@`6=aN2l}Q+v1MEhcom)IfDT7@H72;O zjUAd`Q@xR#X6?nfC{-xI$>IqV#f6-+KdX@x>DL;Nm4$(RI~_mh0WayFU}pnfj4%lD?vwj~hl zZuKs#JNWi&XMGD0SBIAnWR}2XdSz%K^^Y;zV?!r$=g#i6#?OfWM-}2esq!)Zcv+bE zQuAYdc_P2vom!n&_GH+G_C<-pOotbT1!?1i(O_k;+Qv%a+J8vqJ_SO?8N*LS3{G7_ zrjQJ+tad+p-z-=tA*qHSX}uV_0S+&8N#Cm!o-|IfXbbY9>K3cN`QTpp;Y+AF1(YxR z?tOgFj8dw`idy^g8S78zEsAX#Z>(`iwsnwBueO{uq&(P>wzFSKi4bI<3UuapXg0rE zIk<;hKf0n-J7^M9{nM=7Db+>WZVQ@faxxxd7wdDFp;5-c-TE?de=$ZX=mDGRuUqE2K3P|8<1yU=t)9BB z=a;fRUZJ8k;AtjlhB1bw0IVBYt-Ed-(7=52s2g0AJA4CtRy8UyfTXICE=wWoL^FpB zg86H&;9d+e2i6A;l{ZU#a!qt32X)>o-TbQAbkq^hI3d>1n5Md4p+ZWGx$A5((hK`b zo-TQq<6+fYiu~gEqN?;w$S)U@eA(+&ld=e{l{ZDg(WTq9MnKm?v+jvddEqKs@(V@z zn&u}9(i*hq{f*+lBs$Sw%`e&Elc#S+@EZ+8vNTyR`LAj9^289ImP*P(Rt~`cqW3D~ zK6xcdLzomSKVe0lh^aAv0utjPY~h}Jtp}UUm;9$=HNAgTY4lp3GMB|#NA0TMr7E@k zV3nh2rqOj{45xa4y=1^`8PfvQh8`KW0P(uK>^ES-Q>;SQuf{yvoF$9W2L2I=E_(%y zdOl5?R5F})`A(h`LrmcVkW~Xh3rKeA8BFtr42*+&{SIf&G6M#G9vuRB>#4?u=DLN( zMbc?QvrMUN@ubq<=gx01-fUbj2+lRL4?HkrT30vg{8YC@su?q&=h^hS+=4B;ugK&X zWiHAe&z5ppp~YJCIQ0C1yC-lsg}=NU)i1#7dsz3mM=mD>zw?S~-4%L+emzp}4IQNZ73j@j)K`@haB7RQaHN$Jwws&iZKXys?c^ zn3oHb(D3)U$PG^6y`w_8-a;@y8XU$$+s9ALeBw30a<#zq!1b7S@$NJM#M?``zpPJ8 zY9rl?P2K28X&rvBLzNvbM7sdPv)=qvoGW`di7piOHXwz?8)no%-5_^Y+%<$&y~=*p z6;NY8*Q7dUl*sZD(L7cs2#gXn4K-))-FrH=uk&v4J3Hwxo9bkd0N%QnVht_FeM>!T> z1^hp$)+2<(EymS`cPnCcM?9kym3@W_ee?~fXTJ`&3SkKN%o@mLnHG~{`$4j$GI$2nzkt|SF1m5pz^f( z+h~A*<}$MsE2w?Wt#^95H}fW+o4&rae^O9(c69EY4_Azq(sV2qwO=wr?xz$L{ubR9 zau@#soHA(@fFIXxI)ilo#=R6Nhp%R<#4kTx&7?^8xnsWkrsa+N%B*T#6BO5s(N}r^ z&#qCJFqed4vh%uEJCb_GnRcU#ME~ePV&yx0HGvQ*wC!RUKLX#-&;{gW5lx|8-XES! z0$S~@H%}=D;ojSmX!6OWzl!xx$v=Btjl;@EIz~|usrfJ`bJwclk<-dd zS~dZ&X(fJMx$G#p^mG1(H&3T}9GWSm!9;ohUdYO0;wi7M)J^6tPxH!DMX~f4OdT3k ztHT6=>*xw@p+xZFmzFW>!vI5Wm+@;gN7t#$Brx9a`h1m~o7`0`QZJIz)lV?itN7KM zbk?}2#yd6GHhz6g`Se3%U7Xo;K@{FJ`R{YAN=9bMyK#5t)8cli$hE)E?VFNVv{>#? zBrRpd*p(nTs-Y3^LTNk(RJ*74;=ngYn#(GqIhaWwzy#BGN4kKV*;_Oziokqms~DWG zQ|M~5^>a>a^ZmtqRyPm_<Q-^qer?OnhM*wHlbReboRp!~>M8(NFz10xkGy9sePXwLki=IYsyE|7csh4@B97 zb&yPXP5i~p%0JEZKyuY~>i`fh$R$W&sUbF@K`eCL-o?k6+q<55tP7y^IYD=TK-{~S zIP{}-C3JX%a}2(hok<=8QF78UFbTMY?pYG_{AP2OigaaTS)D>hHR}S>gdp-!+aE;bU(b82a`tilPFY~%Ti#j zxE|{1Hz7#Qoh9|;b_d}r+LGJGDZsiIqgywvD`VFc|Bm9-53y=q}Lj5e+XvUD}gB*$_9Uz!>4T9e{#bB-G)>&ou*E%f_6{U+SAC%vKC`K-4p zC;xn0zrs^Ir;%~{g6}4d4aybY>EPNT@dIygjj%CxO`ig!QGjnTJsYQM|!g5p6o&^tH zgpW7fZ(w<8Yx%6pzLe;us{I*lu2JRxYl*wxbtKk1sVRt1!Ry>d7K)l-BZcUjMA5(` zcWlhAp6bc5t$VLT`37j61{zX0ODFl(JCOb>LGdC^L~aLM@sACD(}ldM;Ybt^Tr_K} zZ)&O^xjjmIROoVOyv{N8b8ZIj#J}Yy(~>(n)G;*Ox28nq-c;m#3Ss7oEdKQg4P&!P z;m`8W(nE=Bbr(%RTasVDZhi|#b{MiztNBc1h@NT-+ai4~_UO2>cSO2aw?dAGhKPDf z$tc0Jed%Y<0Wks%W!FsE=*h1N*Bkxx3uVq^r)v}WGp~2SYjWf;l$!qwkX_eOIVi~_ zuBq2&IaDEHVtliO*!&TT&Z8l@j`t01#(o=#EfbIBx=0=e?l#dcUzV+uOyE-MzCWrUUC#l%6kQfd0NjLl2#RSAL#l#sK+X`GYf*>&DRNHduE zR2m^i{YbH1>}ua)ASS*;0NqHIHI$=Jr3bSLZ6Unl8u~$ws7Y$FLDrrrE>x$cDM&!R z=gP0VJ)>{eCaoUvC)*g_F#0x8kV*tfvR>chcIEuaVG$$mQwRwV;V%8?Y5XiMD+cNb z8Pc__b?e$g-fSp~fa~M8rTbLTQN9rVHgn?49`j?)yq6i$l@Y>R)=~tMf-wAO=XfD6 zwe&!Q*Z24fF>M;MXHO zLj-72wLrLND2N+AP2lAu^yh~^kJz0PfIa@PQ*-QGo55Y_pdXRM_$a~5oEzJrx&nOK zsvlZxKny%~$#|kMMu*j^oX@m;I7b2^gD!-QVCcZkG?;jurbbLGG=G#r5fdUCvMr}H zq{q6B_WBJ-{pFj}o-27=zM@?O4A36@|8yA-N9*|(7aD{1Woy$(dDW-l^wAK3VI|l# zc<7-!^|as>@6GJs@{PB1)#NuM(afS(Q`(tsGTW%q^`_LF$Xit-HM8nHjFmgs%6~Wh z%8De2&rU2lr!M;w)l=nXf`2z2sSPql0TTVzAGaGYS*^BX|jrqumFzRgy=vBIIEYFzGFk=FfO8 zAys?~fshT{S;W{G+ey~RZD3ZEr%L=*44NF9@&OSii~!4a>EaoxCfkc0A#s*L3-Tkn zO~bvU5oU|ZKj>UkKhrNcQjd`ZuDI*9UQCZj`VyR@MRY#;ggIZ#isP1rAopN3w`7J* z-8a--6mMx;7IX&jmtmCZ-kqp4}pkH3Pi#c;)NijK>$Gm+M!)uXc)1yQl z3(mU}wgagZH&E>wl*&2z$G?d;FCO*MS(^dfS_1G5eIZ0jq^H64S~u{6$KuFs9ggE+ z@E~jo(9ekv%AKn60}n#6U+C!}b~f>t2<`zNq5*^}_pA`P*^IFJ``lP4iI;BM2WUB+ zGLS!C1IvW5q|m_-QH7R;V+C){0~sA7-g@v-?-BV3kV=~#u3Cz)p4bPb zs^N`BDu8r7Tm)}$pPLdLb!rM1sQCdAoGfqUqB*8*Q*i@j)wiuIdbG)P5Gh|4c`37OjosOSwF- zo2W~#2G4@-ELJiuoMc$pSa$Nuv>*8VC^NZa7}XFd-Yw}U@gqgp3U2WdUas-=TA^gh zqPb~GA;jcEGDKJ4b>pcdeN>QVsMe4jo_y#s$QliC|6Z$z%P%3om=xh z0Pjc`#W`|USbN;94H8toNEl@Dv+?AR?$t0LAIbOmP-9e|UWL6|gz$Ab`ZP5Eb5SpX zi!ltp%z=&WfR>4m6l%ta85b>aYsx1-A?q!GHGeZD(;6bDiu9pY5SgA&n!oTbNMFN+ zXlr9rmrC+tL`YKRfiVvgE7cpXPF_11Nc=SCGVyujSxwW|M&$|lD{?ZGGN@@qd6Cz{ zz16(?i{=p*`Rr1#z2<2*Tl9RZeGt{*5`-yT!sP0Rp(#SvhXgb$J;)&W0#s55PN3i>JG6h4k27P<65tL1T{Z-p`IV5=mF}n)eN%co6c}A z%&l~)uWrgx&3X`+E82QdAmRfiy3K*SKa+A}gScTFnru*lF$F}uirIQcRh|PAiNGKh zO$5eMM^~q2nJx{1j>dRtMM|nSKe*#q)Gr<#hBi*+%_z;V`Nm_{d~bA}ByOA=Xma=r z0}OU4rEU7Z3#d3wfomi51)Yobgv|9FIVELB83g8zg;~C?5D@t$dLh@4Uv8_>P~Xy4;o^AMxvrdum}D&nmPzDK|v4 z&0Gf9%eY6fe2Z7OF$CpwMK8X!kVvY|sWBB8Jt8}VSgUA2e)ZEGzCXQpuG#y|$eLt5 zujV}l$+2fWUpH!h=}!(Q)4%w;if3JiHTp2%EXPa-axcXO2SqNF0}V1N@!*AAp<1u- zW&z^t8$zDwc!+_yTV(NyDn75`NmrIpLIp~04?vIpOX&jk zJGe^0>x6R|Ox218OneMycY){44LCUyCL&@RE#(ti*PFIfxWk6U56&oPcJ!-aOm*DIxDuu%nuoRA1HHY<2wzgfJr7H?8axRobt z4p8g^tMGpco$>ikp)&{ntz4{NV$4* zV?`G62b;VPb0gT%q&MU+Q3aq~*IT8`K0YhS)AMQ*XE{wG?ZocLQy%>(MuA zvJ`)mk`=Qt`uDkzhHvrI2k(3_D>+^SH3r6|Ysry^k=K?Rq|vO#rLkEBn#Ia3oY5Tv z_d^DmBM&oTDy(wVbW3^<6x!#>|3FeDg`)kb2YmVOdD+6R2l+SF*HR1#*zmfkFw7l> z1T|@Y>`gbWn<~=f7pGm_oHW=nwv8D%lUlO?7DVaEo(7AAt*vB3vwS)-LP>OFH!0TE zh?bol@?+<7nq^cPZ@SPjPji9UFa|2IK$k9y42{ciQk?+EGhTR%ZiOV#$&ORlW!N|L z>2dlYfT@4537JDywZ;dN66287`Ema9mt8O`u7WD$iq1$1N4u3%<#5P!g`3@lF@zRF zqU*Y- zhoO)|M}+bK7W4<2ez%Y1oTN>Ld#nmNk=VS*X?1wW&ChjhVYeqU^>w~HDox`>&W)nV z0ubz-TO0WEzqElDx51NpbjGsNfRNF&Ya1{CQ+$by3b{)j86j0Yv(~L{a*04P6iAqM zKX&WFIIEu>`Jk`$+Ndn!^shBR)nT9tK|`QI_hZkR`qmm>N>1cs7&x&CZv{I-DKb zhC6v+$AcsVwc}{Jptr4GTSnwO_h=Z69wKlcMQzLZ$x2;Q zU7kt=Y3_xteX5`uyRD_$V2X`(9MI%9_vAV!{Jj~-P#I3_*^4!_XmR)N}jnmKTBK~ z46WS$@Bql@u|_yjpDR86yv-ghivUub(*LAI$6FK=_nL0c+u;{LB1X#=>M{UZ-D%&5 z<0(M`IF8C8jstb7MUM%%kA$Z4Ih%^_X$8N<{y{Nmcimj-)sZessDZXfEs(azgxa2v zSBRi9fPH0dlsWHbFdABU_f<``4$AjB8@WO9z|4_3<6q*EmJ{DkoIknt zZ$0Jbo-rH%wOLA0P!- zr9F$`1qQwkJtYv9#D2wS*?^S^gyA3815bkEbGtS`g3hD%kU&An(y&=e^Y3akgiY7EnHaoNjM{%{07_^aS5W*82jDSFGk5%X{xY^CYNGxnNI==rj!cV2 zc8t_;n6t{ew9C)B_cZjDQ122hN@0v8^TgP#gofw00!|g+!iVi=xgc@+0PdQgn*lRP z_Whxh$IGEN^KiG0ET^T)dLsCSrOxs{#Tv**(TZDgX3B=ruTOGrj<}?|yYI+y;eq_m&~T(pe@33|1Yv-&D; zUvP^Jr*rRP#oqg-t_yx~#m$W`*GBrPnjumQTZ=rV?E~faO^quwlM{~#^q)vFBp+yK zxahD8&~CNIbckrBLfrJMBo0pS{8&sJYz5E9G~pM=Dp&@iadqaSqXR z9jp`riwG=-)i%h7%QSG-i&|%vm%Jg}U_UNBg}j^Pb^}UDdh$Dv&+$(V;&YtjfZ$fx zniP>MVN#j--a@71cO6x%;aPpCAHt4Jjzp_$zJsz#5EDte6F^b4$5!|GuEh6BmGu5x z6jKiq%)t!#|y%o(OUm~ZtNDP~0lo4Wm*L(zY(1nDH1l_F~ z|6HrWVf~XDs>}AvjecYNDNm9C8$n%qV(KRLdZ^e>EGp@uK%ci>?&NDwD>NSO_+{9& zQn2V{>Xeyq%^GB?!8Fu6Yh*Sp-V?zPW5@5k6N|XmK^LSz1eK~1M0%wboUA7`D-hp! zdbi{^=P#57eeGIOU47Pf&o5-BzTnE}GFqY?wtki ze;An4Q|8V&S3%Z^X`@!MSd@}{X{iuCPmC*s=hT|3@tYyft3ywNx>WbCA$}xn6CNUY zk{}*(7`GTkP;8Y{SWab1`uiL9E;#sX|eO*Iyo|N?y z(Wb`SadDX~QXo1@Th)RTBjR%RwT9%KYL4$hb1urmx^;*8<}~0;O`p@!t63cZpu^jG zsj7{p7-OGsRV^=x0R!#(`sTleZLMZbbiU7jjob>RsC0Wp&R4B$F)VV6O&Oo!f&8+N zTdr0PWxeQiSzp@HHVLel9a#76VQM5JX*60GEmN{hV+BtJrhSTrf92N^-(l$ zN@+W%#As}@GsMR@j5MAgA8TyjnfsT^%^T;B(%aamq6}MSr&?Cit}rH?Q(}x&T6E9_ zTMKwH!O9~MFURa^UUloEYz>x!W`H9{gqD5(>yf2mizZp^Sa|;Sq}?)eMD8G(p<8pJ}l;klW@31FMG>fjQPXPiM7jY=)&^+FC%)8l|G{H#xx-Y4hAS~VEW04@< z|E0E2jK`R;WFr$X;Kw4MCF0C)#~YhSkhLgYI@lK?dqvVXFIZo0P9`#Z@Tk0eA7w~M zBw}!g58hSQ@R$|-ONKpfTyMRIyAEkTvl z?VrC_50bl?W+zUToYD9o?omXU2=!`yOyriWw2YkekX0(F^wfTOt*%=N-zP6UFKP3W zcIoZ4mKLleM)Rztg~zNYdo^bySng#A(6Wsk7H$J`tp{7UZ;T&B;><2#)a^$_XJSoaf zbmjBLrh4*DsK$dbYN2i3)PRE0Qir;Bq;qhI{-yF;y?*l6HQw4RNmV8NZrb4pEiHXE z?TWV*%9tUvdM&TsRtW$Z>AKEKRn1N3X$N-ju(2%d^*1Cx=ut&VqKs1|Gt&YypI7Cy z=34FjDulrMf~~k;nO3ND>s>EF8GEHM);kV2Yn{r{M?h>p4!|7n`ojR~1`)}+T89lT zrvfdaSLnB1WeFxb@m$bvF*F~gJ#@3TcMVT@NEqudl6cP3Y2M`Ol$i=pyEfkh^m4cq z*G=0UZeNkzO~Gj2xAW9}yNPJECUu23j)R#~U(iLoFMDJzmX>l$f0J31zf)MUdibvf@lqe#e#<&t$*;J$0`pjkT~JnNj{-OM$Wf zcP$0yx@J7n4T(p;r*K!*5tJUVPyLHY{@|Oes~nO=15k+%3dlD75QR1GjXa*SG=wv8 zi`Sk{WQV|N(w@&)X{DyUTAcU~YAhD+N8nQ46&pyunI+O8!qo6*d6f0qy&Rzq_+OZj zUMZ8%jp$Tq;fYdoRF0(LX^C#YdLu3k-nCZ0Z?_Og!|!F{xQ2~G z_57DIyvJ>`oJ`lXTA`3SM~JJQQI$_tVhMbLeg(KBFM-G}lR;nd&(~nNt*1If8*72I zl=(>Yf$}J*UzB1{;`Ozuyh3S@sQ%Vew_xv0KNjOofsNw&i#{^kjc3|Q#!%M;F*Y^C zrxhOE${)sFpJ(-#eC4Lt_ss_Hr;v>)3|vX06)KQao1<`e`o+)`?2C0r7pI0CQQqrz zyO_8N%^dUOl)Ix&$KXX=Bwd|qOUi`;BHQZ-K2qX2YOiL_v>S+%k`RuedUf!=IMcLS z<87%$9kd=ClU!~yN;|!X&g8LdwQFIbx>grN7ed*ru8yFruA`0RPJblDrO#HbPwgS? zfT#%e7yQr^qQW-!z;5O3?)&>^mCVZBK2)1QS;FJ;632T1ZuaZGxYw>qd|}CPTX#nT znK}+Nfnbk)uW;Z@r%Tb?DT;!uR4{qE3(&xr`Fue~(in)r&IGH^|Jl=~|! z%_yhlXhM_k0eoz!Ay53{?Av=kpPI{mE)2s%JI0W^+u;&pX)RVClJ&p6j+q4*#N~#v zII7Nj-=@rY9t!Ajd#0AGlXO>9g@Y@{ z3~e-0QWbKIbh7_>Q5Guh@YPb5jnOVI-R$1jdb`gNrUzQn8gy2GTSyhE-`Q;W45MO6 zgPX)fX5?j;*MmVAz{#8rWJ~0;xG1wzMCjj2s0>gFBY8H?W4Akiq^g+lEJeEQh2{)T zB#^}LLcqoxW@!|&4D>f}$2^OfGs$HDzf6A{0~X%*x(Wg=XPrdOuRjrmp|q#nrOxoC z(g?1*1FOsY_p?Zp>*K13%Y0GZnO=vvfijNzGML!xYF*t<8{EZLC!h+F3{0O)e_!m% zJNK>9RoMy@Tj-+vhBu+C%ylZY&;0G{%;KL`Ix=GiXJ<1%rY0w+wL}R09bfS*Uc#mI z;a4COVu)gns;-@nn-}Bkl2baYlY$qOvF< zJRbK)7_L z=nL% zLD2Ij_nuwei9pDaym;NR-b85p8)PgpE_N!LOx$5v<2u=HEVW5>zIpOG88tl%n;S6V zY0h>FyenD$`cGC{bu%f5VhJ!>CBF_=_fA<6o4Oa{>oo+{`P!ECa?(!cUB`0cxYN7t z-DXa(TU=lD)0cd5-|Z!Ab%5mGjHZ+?`x3LLL35w@DeKzalXUVl{fZB8hG|f6;@M_~R#|g_gJSNrv$uLR4ncaO+xNDh1@s9MkZ5gOA$GS|xDTaXas8U+iIq5euy% z9i0jZ*6PpF$~FMw+%FtK4+Zn!T9O1ruH7?+`+Fx+-gQ#!@3Eu^E_GlYUQ|ci|48Aw zX8&@+2IQ0OWLCv*YFmzu?040{${VN|QW)r0?15MG4{9J9w!sCiHk*(2Z&4S^a-j>s zPl@$$0X!cKXTOkJQ%P$Yj+h>NN~j@utD{eK7te2kZPUGyG04HrgpV~6sUnD<{d@=qG|_;kyT=9>e<&rcqj?)O9A5ruYcq%k;C{3D@#}9 z1ic&?LX`?br2y14 zYmeUZ-?m8q$G!A_{^`HrYhDPMM>1*nQ3em?&QKxO5DLQ%69^=Qg9whM$q{7)gY^xD zNTanCdOvlX-9$0vwiauzrKIBcVmH18z1X;0qK2&*^sc2ef*ix}T98&@X7f~WHEkx7 zq#-|plFqYVn@#hNsgGCp2*+&afc}g~9*VXs{Hh?aRj#MnW|7a3Il6O@^*!Fqx57%* zh7)M7c^qbYmM0i*RW)_b>oL_8(Bxh~wwd5o=l$hq4`G+U$E{cbc+?J9sXtvo5!*LHFSA-IfCxXf}z<_c22-#+M0B{9eMpT^zB;!=Sv`=?AHFS{+ zADgQ@B=BWqMvG`0)X{|3x^`T2Gs~=x08bF}N~_F2?<4)IP+Ejn7ne}1z(Q)CuR2T~ z>0w(bz-Q2haGxugnN8Ru7Wq$A%C7VneP5d4>KLV%WkH{zHKyfy$a*Gkb*4ybntz|W zK}vSs?*}qo06zPJ6qW1nkI}(SuV}jHaH~wnaC(;6crtoJ-7K7dd*8~nHifF6tjz{r z5XIb3uPduqAK&pouiGh)ZYc(J`|C&77$|5CRd^|ND-8~-!a_@47@sVQ7Wr7l#>P2w z*FI+E0ZuKoq?{EIcu!4=knpdtTPPz#TK$RjnJQq;E>h<7)?r$*Xk{a}N64osuz%=u zkQg1LVmZUgw!D?7?}=g>f*cn^0f9k|vQ~ISd?A0ZxZ_vL2>A*Y7H_*H;JmN~{u5bn zK04z8+0d9*6!U2V0Ho0g{%bYB>4m(y)L7r#ID-0SxiwAFiLFWbb7mT@fKR+JJdNsU z*D$Mmg{Jij2TXJ?ibuy@PzxMC&p#kX`(l5)ypD$-E9gtOIHH3Qf?a! z`_a3Xd@a?Q4({UxYZtTHB z?QN4#nX#>{jw6-p?CEJx$GC~TnHBZwT)iYejInRdij0#)f1{qk#v9S;w>vWcXd{g~ z|Dop#H$PSuZ``(Y?8(9U?)&pqoumk^OQD4S@PV^NZM(Za;2#{(&1q7xzHz8Wu92*c+Bm-n})_oVk z!pIhb$J)>>B%tURo&ZD`00s#i_jyB04y->5l{c zIRM=PwuY1o&VT+I&1A?T3UFs|xc=FFiGY0{@FH7_ycH`+{fvJ` zVeQL;MSx*M(3L`7(`xDUm@@Ov@lTa6e{NBK=9Z;&|5+_SSQeKU^xRmaS&WvO^-p0Vh2m(r4pT+AQ+;{r451A~$B=ikqTtWOQ}3`|L%(`b-c zNWADE)_a2dcI7NXlYJM^d0>-_bYEB5mLro`Nj^W*=IaTI_XDOqPM>Q3OTo5Yuu zDD8#r02mZ>-1w;VWz$(B(jivhIW^?y@cUW1`@xSb_M!hl+=!7N|jy(5(K14LJg3_^UOJC zz357y)$&@T2=x#7@7 zV}Ucx=O?b%Fn{d`9tfk^(Q>zRE<*HpQw5+c4{$~@M~jyG5)W&Sc~n!-q;)>aE)CVe z(h8zfV7_qBx|OE6=W&~5d!7Sjsq5Fd6esTS<>`a83v@Gz@f1*Xp7ZD|ydj0Wdv&P% z1(dRx%Mq`FE%2$lT2!)W{dEauSCx!N#1h6fE7@(Dp?OQgwV&AKIuMb>!* znlctxzFmV{E{IvCBYAQh=|T1tK=Dv?d=juZZUKweM_!Pq%}&ajhkmm+2 z+!H*zc!3&Q9l=RANjF5~sZvb4ZFd55CJy;N_r%2@9u*2x(ZlDJrDBg{?>@yJAY|SH z50b|_*}WWvE90ltl0Qd}G-8W}r0DhKVOk?d()O;~N!Ugj;QG=B74HgDe)6#&<^wLR zPJoE3t-wz#Y#o7n7QB4s+XU$OU-f;mjg&ucyv(e-*HASicF>CZG0t@2*p~sGoyv$o zB;^aL5!r`}IgLOuP|HKm?mdJd?d98^Ra=hV=z2?JZz7TNvu6if^6 zvB@``3TTsrit>{~A&5hunDwe)12n0d>M+8rgpvDY-;OJa& zM=)RyS;=Vs?`0j^c#52-ixtzVK?x{Mu19V2;>&5VpWqedkiQ2 zX820I2X$8`DyDXK=kf7xv6-P*UEGwPNPDW-acy$rSV<=A^^kWMYRK7W{2 zi=3<@zIigGE}g^byHKoXw{@Q!!pMm2CgBaI`)g>)PQe+$N1@)(fqT+Mr$8JjD)GPm zCz``jjdx#h>_V4KCys9HT2v_17k8}FHqO+vje&2A&Oeq-rULOt zwgw3&qRMd|0t4C60o%38!%av|okPsw%RZ^D-jUpfz+&`7G5vQa=`!Qm#dF9~;OeCv zy#%hBH6s$~F%k5|9nD@TW=|kZ9ZMP-;cl|v3)4QiT(vN1+7Wy!h(uoUJd*Y zOGyIyS12Ap6Vgxg>L!X452X>Px8_(H1`Am!Sv|vVm%WvamD*)^f+qtT;y6Y-&*rsdh>}J^XB+1du9H)J>82MUk-no|0<+GzBv*IIA zC$Fx?9qa2ArSZJ#krUU5a$?}e<|EnYou6c-g{-GF=JmN*SH;V7TTH;cJP|s`Mvq+p zc*2Qe{;?5s=HuLR_9p_7^kfw2j$`)(cv7^6@5+JKF15B@SFNucynwj6hA6(kh|T7KCmz$dSx z&KFxDn0dFEsg!;+YYk0^rpzF;H=e&QkZrPSlIL}2jMFZY)`?v=XCH{VfTs^b3n1o77I+CcI4wT@r;?XicQO0SYSQOfSYGoS8Cc}D=91Q%eCDNH zC^NF0MR8~&_PAocfh&F~TE2;s4Ouy%Cg$Fap%AFQ2aT^=+pxzWtlOsYI3WPBlGv1Y zujk-vp#*{o+7nbIzIGOxqTO0lGx3G8_C4Ft9V7zzl>g|EdD z<~vVOJ8#dx#HzmFDdj&pZvM#0)vFrQNPOg@ZRqajM{1Rf)xSIZ>hOj2Wkc)d582*m zH&YcKnBYEU`}}QTGCUIxVF9Ljp>gB;yQBuJ zMJ?bA%_sU|IMvqadY#rLAV-zkXtuod3tUlz2ZR@(Jr{YYOR+ma-rN>nwcUZ>8uv!5 zy@DyEZ5)v83DgDuf zL6;MY%=8`VQe-DeGaPE6;D4NHiUxGfy3VDm2pKYH{^8MMO1_RD_dO{0 z5U>Jym~iBYL}SFhb#X9VU+CG-c7bRUD{u)A?2qwi&%c205c3Vv7_kNXQX4xt_>~jZ z-e;?!CYvs&C~NIw->>nvc;#w?y7}kEe8iHw&4Dc%EZ$2X0cX7WuBEBXS`PG<{tmk8 zadr;*#F^riM$gCXfPh1@I`A(~oEhTA=)eK_ZK^w96Mh09Z>ZpY}s(FcISCwLrTUFYu*9o_>R zr{}QR!3MdjC%r7LH#VQZ+v@lXgkr6*y@9Ld8CAMhO2joZALh#X`Mje#zd_aQZm*ni z(QlYu003f*(K^@Yfc^X53021Py`N)U#`TWVVVQklSQo>15wE$_BvrRb( z4zBXTbb5PS=4JgY=h=*@TMXKWCAPG=+{D~$&C9^N9X2~`TDh*E=1~6mELDff*F7Sl zF>Jfbw>CQ>;HM9>CGBmqUs3(YNz^Sl!MZzu)1Pkir?RqKrfc&$$EMYzR6Wb9C4=Nl z-`6t;V3#n42a|IPG!HtmYne*^_$fCKEEd75z3yc2b9z@-&ZwzTRxalO} z)=+1AWGHi{n(v+(VwB}pGwprg++L4LpA7!-8sCwoqvJvW&sovAsn4@7XIn`mpyKlF z1%1&Mhh*_SnKI_Z1G}=5*JU)e1PrCbH_wb(jn3@7wpc5|=H))$YOZgq&%KvtUjZ9^ z7D=8X^TIKaFJ_-5+7zt36>t>DjB@(m30QX^3IO6SHw>VKntoxde^)J=B2HGsbpxD{ zcEJq5>*MK07Q4vZM1-#O2H_72HEKWUQQOhM4Mgq;bTsKYe%9~ z2$$)hl$6ve@`xCXuj|yec9g01qTwIIvMs2!ooHc_7mTVurBNLuB-gGstf?KK{0)}d z25s3{d|x)t4C)mYc_^S;?U6N_A{-C#8&|+vQ~^P3k;ydUKHLVF_0kMvsABE zJ;xC#(H!SJnbzg}`zD{Y{@Oy5ZB*eM?+c~I8hR3QwJZe`s?3fj7J7fe-@oc6h)r$a+h5XYnWBMQz)Jy+Ye59pU*bH@;fA3j|`f$EVD|sE()zU>xsuK7HU@EhG|i z+Q&wDOqlMFSdUY^@(z*2scUQE49zJxkcvx_5ZLNQ8 zac`I$X4Gm(ZpODXWIs~$u73K~J(9c#fA1a(ch^goadS`CR5YwFt16 z>RTUXr#+-z$~L@5R6oF6T}#sVLV-_>SII^UaOKQ)j~>fzj2h#-c*eNn0+?1E8HJpa z6ocMHjb#lptf?e%&3vfIy5uAm*VR0I7V)^)+_+`@(~}DMVjg>#+upXFq1`AQ@VG?f zfuDhPMlJzCBfPc@dUpcBeV@>|n-pOGFb8?XD`(m+jflIpSX+ME_eG&}%M?O6C`iue z{@|h#W%a|$$j?`3Xj)c&&NI*4V_7n4jShvB+4tYaN* z3isLc=+pl=$-orB$OS(~CWG+=K+Rx9aML76_9NUhV)wLPWo@N@-v_vxzTq{`2wCd$ z@{jEu38Z$x%lo^#KXqV2Uuwol?UT5dDrX(rjS4+$O)WO^JW}R(Xh-?=qNDQ3tlSt4 z1$Rl@ktRe3(^Vs`WmkMqF?s_VtF75K7D@WNn zARStupPev~mpNyzsm!$2wxC{CrP_Bp-KFwrVFU%@_&k~x7U6aQS#~yT_ifL#FWKu? zrWZgoUpX7G|6Objg9O%4GSj__Po{v|Eg$J=EJp;$TRNN(pXV;&x#2i6U*Zi~9re5s zJ|k!dh+c||qD$c>(^ijnjGV8-dpFlD#wX6ppgt+JzWZ=DDQ$#qIJjcU65Wp-ImT~R zTHlh{EHhtAk&u`}KVKDXEDCXV2OSh2+0e|A2H_*gZEk~ilx+>Jx~pn{cUYesa(F{(qqX+&v=bN^$L{s-*ngi`hXA&r00J|W> zbF>I(QeO-Vn4Nye)0fOY7$r-4NzLnwtTy1!D`does5`fd?dK!28h2U&Bwf)NKpmPL zp#!4WWEHue={ijK9*~Ee83Fz_*2?sBoFc`192bQ=@@&%vMqvXfou{}v4B&kUZ~?`0 z=v;ZE^=%j>u5(F1M-pyAbYxU8Z_pyfyS0v*t7jjEgiw+mPj8DCa>PY&Ciw$m4VJA4ub=(k9N{SA&etF$ZoXoKXBw!yb7 zH~l07G{R(7YThO5fxO?Y9*%b{Q+&I~t8uCB=IxJ|WpqCV2I+yC#X!anacL-l2vNG^ z$I0*63j9FFZc9W4vdZxHpH0SmhS?SsUYBNlr@^xgA-W4n0u4UKOQtDIr?Ud_t6*PX2LX6`NS53Z!93#_dtX%|7x>*nTj*ckBl*=zd{4)QD;GQ;)JDIrb zW;U1C=O)e*)fr}h230{zHf_tChWdItcma|saM0XMv75xj0(r^FrHhA4oX+4Z%nQE4 zJ9U)dM(j}AjmEKh98U_@nMJd!fA$pb{xCH*%k6GOyB`UjB;IRmL0o&MIgwEh>n}%Z z>WrpXU6xuEeSX{!H}B^&nz3>I(~Mvj-{vuW=b8J`D=;q}Fg!27~ zu-g*|adInf1C=A@Q23%k&<9UzZ{PBpt$e(LN4t~nR&67^^uG3yV6HbkK7X$=&j{;J zu{!HF-;aXMe!C|oMM5Pl-iF^RB*r5&$%FH;9~TbLNyX8)k*u}M9|O4>FV_JmxO;Q8 zP+-|g4L(a<@wH->O)sz_RR{D9>5=Ve%D~ZIj2ayU<_Li$;-=>km$t;R(2nfIN&JA2 zoVUH+L{PZsfPE_^0v%pDz$n0Z>hK!tvx6+AD!1$5KUJlxcb<(NoaJefebx(a4Ajh; zcqe^w@#F3uE0R_W?UB*7h|EJvi3R(k2a9CNy7r9y^?Hh#@0ls0QdDSiA)7BUzRiXB zPKSS3BQ{pi=knh;r&11)*v=KNW$AUBmpZZ_?i^Ab%%$9w(j+*O{1Qv@(698H$qg#f zpo5)c&OQOVM6q^fiVxp^!rT?HqwftgYrh>I{Sdi{ZJhk=!wR< zX8B)&LV_6W%LQ6@s#^AYsoZ$Wmhh2t&yi-sQ@s9owtm#)w{IUlUTdR_?R)Q!CQkiq zG;;WLP6r9&h+d*z)4o{I%g?6XFw!PF2<0-*ygB5AVP9cnJNNLv0M|iMK-=_VZpq2A z@5=c3)tuv2^3s(bI$9J=LK`=^Ku5%xD0-K2geN(3Za~kgofbxsMby>}r&LZpeJ6%t zzAe~8E?Z_!{|tiZ0;^Wf9$?lCK%0YLx+M-$eBa4)C#e0UjJ4U=2YIWuKP?gpIaI#{ z$Y1r&cHOvV*|jDRESar*Iid8h{)g*}v5Lz+0BTBX)&9(c&NfZ>&)d2p^$E-sI)bIk z(tsn}ALwmre4fo%;MoaBT-!t8r;77FT<{1-kW<~slRRU6E;ANs!k}jMmC#o%$)6?& zYJ8mLSwLx~IOy9%L#}1%iW#gvyN}^TgZ4Ee6Lo}rP2+7nZu_=565l@$kiEV-Tw^n+ zFDj=r;I7~Ul^=9V9N6;Qv1d1vl5?PxlXU0|AY%~~hJ22qIiVUC-%weh6jWA!LtcCg6bkt>8qcjRIRY+SDWS0e z>;RA4_7?aXiF{^gVp18*WIX^#%{#)>hl~fO+H1nBj)XwI~z;&;WOKV+g+?Jqvh=z}ud<%jGHdhju`~ z1^ZGYD{V@q?ZNWa{H#_V=7)~ND85}yJYVS7IpMAt!yxxl0#_{)p>|n0I((ByBD#8t z*@7K#AUsJu`4hsYa z=|)FPN!{tEHVIo!))T*Tr+Z~#k^HJOD)U=j2OnjsaRo5eg>*6n#@8p?49V>wk0{e| z2dyqG>*iC3^Jn28$oS60vdVGJvGo!4_t4Pmeo#pMmL*0%-=Q4vn~Vc?n*2;Ro`z~; z37k{hCGXs){@OUD;kw6v-Fg4q?C;*^?^6}4Gbv5N1P%+nq;AXCbAY_yX;p|~b6P*G zWDXK81e(q^9);0VDMCc%-ht_-C zK~qJ_FCAi>H`y95vbFve^=W)c!{NTHIx|#XZqC%b%5dL!qpbzCXF$#oS!pw&3Z=CD zIT*TjH)6oA(+X)feoN$Ro8cFyUwTg@M4K;^iayzF2 z?*c%K*yZqadLBoC5|=17+Tq?8W)n^0m#$Ua@;+}$h?8Q-5uJWZ9I^PAv#Mj-Ei^Nu zc4_2G+oM57!#&ol@hnmlW@oG9*SR(EYdN={wT}OrnVkpqvS4H}vOBnuF20v}X@vJK z&3^QN_sEL2`{pJ0e^92cTIUYl)d-!9*is=2Om|JEd~c@tM`u-^5KtWd=baudasc_= z?Qfu=Y5~MVl_HCs015xgN2(A|c>;(kQ^-5u$wflh$O$)ic!_!S_y6{7{}K5-^RhgjEDas$DrGQx{_(S%yA~@M_@LDE)ysZM`n>n4vey2=U}@c zw6G&w&A4jXdAK-9VJW3vgxj8qUXKhkhW0#xk9P^G)@xNQqAFhG%%Lmof~(4g1LN`1 zPg?@5+Y>j(G`$y=+v?;8_hk?EAN2-GlSE$V2BG!2$}7ww&HXYZREjlq^fWNj@8wuG zR>-(S=5;ufc#;-vlWffj9%<@I)qCewBOoGtEEe4_`|SO&S|ugZPvdbAn}RJFh!G+k z3k3s8N+wyxsx&Oqj>9RX9J5BtggE&&7K)Se-%IQWW#P9HxY!P{MWEq2n2+x<@9kWB z1>P{99d-yQo@>!jp@*?BIA*Fn4jEo*aTv2xNcz|j%#p~N~VWwGlugCnQesAB)x6nrnATu0+eV0{a$1UAV;Gu zVZC>vO+R>j1*>T=Jjh~yYilA-o#V9wmKm((DdO42U|XtM5_;*jg(9sa%xHc_kw@ZT zi~5VMmc5cxF9GtMgVh1^c78)2fr)7M>N!olt&QVwoYzGnLhrrHO5#AR@YbEKe)DKQ z4fzU@Bx3&)L|wAilOprHOwn`*G-(ul)S<@c=#WL+nLxUL=PgXfnc}por_8e>BSvxM zc4Z~qg>+WYI?#%W>QIWEo0^&vd9c>>|2bL{L~Y%JQdK?NdA@rz<*U>_Uc1}(HMC#LWCk z4Ylx|lZCu@F#pTr8tqUrW{mpO2kdu%w#zfY|2lvuIn3lj0xQYqM7lQZj2(T7I*>bP z1MW_DDvtSCdw#DJiMfb;gxc$mfYO26J<>2@NQZ|}5uqM2L*TBj5KBSw>d4RyC+Pts zIk3PFYYUn(Nv~kLX2|2x8&X9x{+@zIPmS>(O&PtpUHG01G{C5SPdXuYv`^}|v3E6l z%a04?k==x!%kd;+y}ny@aohJ}FibaZJq3cTID>78+|P&MHH}V35S z(d+k*KQ-rfp}otLAp`CtqRaQ47t=UMM#x;he^SV6IR!+=^nSy`Pe5{31rtw7WhYmQ z7a5`EtUtrU)Q2`Kjv$BEH{EI4f8E@ks$0ux!l&C849DSKL`aV9sE)92*_p-%+8@B= zgHkxm>L%-3XC~*=(#N0F(~+udt10VG7cX8pcU^Jt#K1mA2fGqlaGWH=h7M^hm(P z5AY14xszTgEyE<*-tiBgo8x#P4yk*eDWN~F!e3f)m1PzRaeXLoP_?el7yYR)YgxLa z@aV_(guB=*;ym>@H6ktFCz3qO)dwwfH17~ZUH5HwcudOlGqEr!KAI5@60$^_@|k3A zY1gTw2)Nb`K4w%YzErb^>^U< zdZClbXDuJI#*~9fJz2Os1+Df#8OYLac21w{1Xi9i{d!%zp8DA&i@^7$h}KyB4;w=! zCJKFCz1C|`KxigF7xX|SFBZ$`8Y;GOtso=qwBvm!T%}PNca~(;`()t5fdTHTm(81wN)t< zpK?vG-pd2VM#d8n3UvL{2_WA{zefShiwjnx{lc{viO!tPb_zqd=r$e4>ce*Dr+dX? zJ3-+Frbo5%89aq6Skeo9NMfdYVz>PQ@hhQS64>lW1nC#<7am3C7t=svQhkeDr}t@L zxqh#Z$z7AfTP`1MUR@<&t(=|6j{ygd(I(t8@FvIyn8fTXD?9|!WQ+gq+}806GF%mt?Zqi7Eka^$_RHEs zuN8vmJd6r=)0+sr83gbq6o>H9HlHl(sC)9M%5533)rZ|RV}{#b?z0x9TmghmJ|t}?rEDpuf?OWBossX$yebdTvzdr@1etA z`wqcE6~ibJ|1ynT2-tTE_YN&>0Z2;t%=^N zB+-&cZ$rtZaq9a4aZN3K32j1{Zq8i5&m%DZyO||Ev_otSX+GS6)wD}>H~u>99*=qb zE)=YO)_-?&(JFf$g^d{VxdNUZ`He6we@STGqmbu$&B%)M!`wESmujHWumq84R31nm zf$nvG>6g_&q*v7ELBNZcB!t4hwDqnINs4J=AT0>V1}73vM`GFxN*37WH(vu5lKBED z==l2i3;+M1^xNv~S6OFSc2E8jYd>22XG*nGCvi%hrV4|1-wEcd zb&+MwTdmil-OpOG$03;uo(gK|Gr!JNA+NyCKvW}Q1Phfz{(CB45lOX+r;QVb^Y1!uIMbr6 z_~sTrd}8ha#<=E;lwJa6k1nE3I3N9KjCQA9X4GVA%{S3JZ+;Q02pceVmplM}&*?7I z7^EAmFz>9;N%(huA=lR4uX>ui^6Rqbb1eq|cn2kiryY*bfp_@bj{uaH*$<=`ff8W4 z13bnojeW=%RIN`O9;Ez`CPUh#nbMKo7YMBxWc6-2jl2iryQD8-Fv|4bZgmse?!P^X zBeNfPx1RU--f{bR#JosM|3*KhbNuLV47tx44|KUWZhVCp8CT%3%;AUuXBK2l8<;%8 zw=b`*2u=+E9frh}TgJ6t6(IGG+XB>%ds5p#ZG09&@fQ1+0Lm(hoRh;69!UXA9y5(h zmXDN&%ch@96X(>UBUqLY?o@!p85^NN1*I}?(J+5fF-i5i{P48SImO1xFGZjvRiiD_ z^8;R3r-gYvACkBFgWNwXJ~zYG_E(X$q=mdVUmM{|ve$k6d#$=i6%)AliYt?Dc4&T+ zS15dr!X>n16+|T$GJM=dh-GFtsWYVD`)PDtlJKj5K1&TL>6NQ8pZ(jSVr%pJ#J_yh zRI@E`tKpYkSu~9yPK^}Vv+8EqP7F~sPJ^UCFr)M<*H_N&|4YMlEy^a6eOPH3e^Q0j z(r-ike`pOCRO)%jCpu~TygmL?kyqfh)$_mpsZheo{&8V?#-ajJ^-VT&Q=%24F+9E7 zzv`2B#vGyYx@10|eT*fl4k!!P1{KSU#=1myFQcvRz#x_@322CwIPX|SB1|pg^~~r5 z{=T~Y$L2}Z6x}|^_{;I3)(KU)Ci$1%t_#>Thi~5udD>XovqA=LRj--lXYrV4y70;L z-$`6F_q^*=H47sA)bwp~uvX_ZVvQt1d&m_7>8V1j`laHWcGhdFX#Grg^ODNEdT}ZD zFxal27^O*v>({waGa4{g#Smf%C+;>3AC_O|9%vxxB7nA(EqZ+VzE|u3;s;{#*O@Y( zf#Xm#&4BJg5vsw?ECuz1GTi=wme?gW3;L8D;Pk_;DisIgSwQl4Xd6pZ=BRNm=;p|< z_q5^8Yh<|=3S5cKVvSHBt3ra5+vKs9F^?+CBmJW@$B_1Y_Z&6lW-(reTR{U%YQ(@` zol<|>Z)Ca-EN7*5;V=5rkuBX=m+0=NTPDd(ARD<`37J#FmOXL zK&Ym?;-D8tjxYyudO!?5QtnwA2l#tI8Y7lWI2K?cBgR1|hLr}4e-Kh9YaTz+cJ|MB z;2}rHG^t|xWhyfH(C0kOI6?{z>eG>!sAt!jI&++;_hA)zya-1c0R}<%QhBu*ld;Rj{wGVEzO1YaYPrP$|ww3g9|K`A*=2XcBF;Le^fP0Lkvhd40lptyoLb!&0 zc;~v;a=Gj7_S8N0$`Koy(Ajm(KykAOAe6NlA zg1kms>dDPS%{kqiOh!`ot7#b)ZLNR&b!$y7Fi~Rj)9OitS?rO9)^*>^8yWdo89B0z z^*C$mEW`QGiOhof7D(S`zukD|ZTM)9|47rc&M>Vn{^KFW=%Q|MReUV3>SjP?>#hDf zqo>vOQRYlu=WLf3qib#7G$%6G73;ddqB@rme@>NB*8lEMMo3c$@!o}xeyWK5LH~;q zm!Mh^k|w~C3*6rczRl0PDeX#a666oX8kgzy zqS2BcD(4K!TW*(8KPTPxm%IJ8CC-qu6KY_6(bm?`+WNw^M>nDpH$6}9Ta02RPWbzu zWV*8e3r>hqlBZdEhN>mG0NPablZ9o?Ok&3Xw=O4MOZ7Wi+OjnJAB?R&?d%0Gp8f?a?pYBml##9oet_TS4Y~-6(4aMvg^ZQE zBQDWY$zk9|xIM`l<##=#C44=lUaoS6mO;Kw9k|{oC|Tzf@`0wBY2RM36i*JT5daC(Dt`r6-D_u%ezeHh3UeAX02`ZQL{+;#-VIn*}_iE1W(H*MUbR1|X)1 zrswwuogQ}1dcSnCMNu29Y+d$WDRz(Lm$^!Rw~Z0dI`Oy)h~2;@#|q|Fhd=9aO0`ur z;A6j}|3%kB{Nq}bTWN_O}HTwHuzd*<3g8Cd)xUNEbdj8I(rOd{0>p3uNP$v;($c9tQ_DTi?AXb}@w5uzA z?-DKl&CB0<>g$V3E#}wXL*a?UbeS)6vgSFnf@@I#c_V_eGJ^WJ}O-TRvTOK%}RVTKlMVq8N(PFzX)6()tJE6k{{@ zB;Uyc4$l6f+DI_NgjD39uJ$)(V@!!K@7Y48<{ILkCnK6>}^)s+sA?9g6Ygy1Xf z1Fx@zVgivpUvo3dG*cnslYGaDY=fbaQnThpyj5g zu!$k1c-830wVvf&8Evf&{15dZDLtn{nSS#?D1moFN>FSk?Q7l!DP?70K#mgCo9wOC z=9pGigAnQ6!#rd)jo;dfSiecW5?E}&VQ{~!czdt1KTE@WxLo6@-;-1yS=Bn^YBfO_ zJjFf61cF0fTxq~3)E)E*b(* z=0&~>ph;j;(Gj?q6wg{Lzi!5wm8U`O;#6^M?RN}|Ucd8Pe)z!}6`2Thrlnn>c?sG7 zy(h}I{8N;K*jN6%&!$Uu0(C!Y))$hkO6px#S&6}At&~fV?(j9EL8+RO04z^Qa{-LTNe=jvx^~1*4;_+VU!_Ecwp8X1Dr7w=#@BX6+ zzbZ!5+qLG26|3q{S;8#s<>M^0dgbmC)s}BTb4D5%z3`BT8_53ki6rXng%0z|k(R#5tk9fqwS8wO_ z;}@YP!w(86Kjk*HAEd9%@~Y>cHbaN)ll!R-`NP6M2&H$l2%3|tl%_7x{9&c#Z8trL z#!AUK%BH!IO@SLgNSmjaw);s(2LA$dkYe}E$;b$us#iBvZ?rleRz!<~r0X}29)45w z@-{MV77fC8adm#|d+Pf>Td z)x@?J!CL4BN5=c-mY0eNM3t=wPUL^sdg?b5%!mam^z_PRtN)f14q+4?=CuyFJ^Bh#2qK(=m+pO2KvR7HFvG(mz$dbme*17fSu6wtmIiB*r>D$oG&>Ri@Q8z>ZRo4k?k$ z8fznLivQSMQL|r}j$Qzf)h?w7^D5shhMw=XH5N?A3ZoK~W*N?EpY$zWVJ2729*X3& z;O0%`dzU>Y>o*_KhT8&;{ww_ZPZS!{;X>S@VX1NC%W;T{6z9$k1?p0_x6_d%2-YDpGy_T;Qh^M=Y=v zwrL8tL)skssrnhVsQ6lv>^YOM5Kq2%0FQ846Kow47aoOEi}M>)Z59Mv^JxLv0SQHB?4IsufRl{NmzO zl{t!!FReL%GO#P6A!%5%)f0|uE1p(S=oHdVF09@ZsZIF0mySVv=Xg(7yM(Cdmra*) zBcbEn)RkD^4BRglooFA5kR$W2r@9-&K5~B4YRhGbDDM3XX=$3V{Ac#Ubi1vTet9r# ztSmQ7_46)LPHaTr0*38aqCnF`RXlIC79*{O5$F@p>w4l>pE;54=NDouSvkslWJNDS z&cp*NY(YV%jB>BsnCgrV8!fRP%ac87-m2u;ZM@I;fq@Q4Ao`O_`O4jyN*z`f-K%JXwPL%xj$ktHeuY#0 z#u(<}ltsSz=Jeb#K{Vns3eVRy5*xh4&y+%(qt#JXNCijjr8LjJo<(hne(N$r=gf9W z{!roJ#@RVH#A6b=mvVZ-T7K5T4m!3tzQEWt(N%_fjDi3^#5C;{6C3_0?K!G zO_}U9v@hj|KN(SggEMxntx68TO8Y{_vAwuhvb0Jw?NzgL?iPCV$mhKvn41>Ya|Tu5 zZ}bXEdo}eJV}Mxstm1pno$={SjsAMz_&Z(RuR3;Og|%OOmR<)uFDTQw&`ui@k<&j{ z>84SUkt;v1^anWfNbl`GKT$wHffZvzijnMqzZW54;waU=*PH?9I+2A4#d;cGV!Lp{ zz#%w-ypO(cd|DEM6Ce#N?WI&PqN6r|qiyp`9RtU=NtMcb)8!uq<35lblzP4k;CZW= zXuEpeV{B~NlnlCfasn-i3QAiO`_RZUwM;1Sh_XEt?C6zC^Ow)#gXU#DlqV-cNXb*? z$o|^F72fYH71fxNNa(&TAg)U7I@5)sfsA0}KQ`Y3X=2pJX>P4VH}RzlsS9FdKFt8S z6axIbGrV%Y&iSF%M|PC{+XQuoQrB6Swy4AZ(p9@hgb?t0AP|~d0v1T00lfN|0DhOD z^$ogL;6t7SmYf;C&W!=Oy6bx}dV+u284vLOK23PE=A}FVCV*+TmbRtNexG9wATJO+ zO=E#-%$E`32umt1P65xs1wSK~Z*(YA#UgcX{%BN&=_pZ-qXSR2y${4LJtQq%pV^#x zt%xmok*y;&5hz*HHi0kD75Xen2wvV!yJh>FRhdXyiSMy4MVoiXW#b|I@j7-B8+tvu zi5P38WC?!R^f>tf!vL}UzJq1z*#3N*=1hp1bd*B7c%}n;3pj~| zBb0#zq^X;qK=x9QPJI=kyq&BYq-`n|9r2yZXB< zeBrqeD_>=JyJz46p;O=s#K-tU2|X)~T+K=u?*?;zwCJSpU7(usO`|2QY{k_+CaR!g zUdcjx$-ecnE;VMWu(QXGc268ekK2D>5oeTj<`wU=b97s(F)Fg{;+ZX7aFT9;b?!lL z*r~23tWb8Q>aZrd^D{3}$S(rns(Gy#Ii9MH9EIs-}v(5Au%gM`a% zv*dYs3-NdPSF;9$EY9m^S`>J`D;tfG24L4k7l%Oj!zylls^nWN4cTp{{~q^4>s!iH zPUVl>$(YiL63>?oGb_xoS2EXmGz<-;#FlYPRxI$Gwo;C_p;T7lk_ht>jB5i` z*VpUqe`eT3>As0FrCCt#*gJTxcb&eh-nkvYOLfZf!fxqs)dt9IfIiTY47l`4XMcPo zklMV7mU}Ptw1cl))r?T`k1D~Z@^O2B-T7M3*0L68p@EF_62)Tv0OVJXuY4Q!@8K)N z_c?L&@Z?yz?o^gfPkJqeo=^B`J9Z6MX$ubdJpsz2yfa<5TzoZq;Cu4V{AQmkXO~Jg zX!$Xb70V+Bj~Ku!CJGK-l_YQg06qlZgq+YNcTE2c{$2ujr=QLc7%C&nBXb5oY`769 zH@2jNFspAMLkRWGom(7p+{=8uX>VR<|C_6a>Di50)T9LlVQQJ9%&sPCNbI2q*MPGT zNBu0L!SU+R-ja3f^iJ?1VhScUck|mCXy+uBOM`w%`J#+}rITQXSV8qG1MB=E!Td(3 zZ-xbA^QT(N0ucAmR$b9Hh|{@A0gJi#?)6$PFUoz^$a?DLyty=YeedN6dnzuc&7iJo z`(_#d9=?ipc88|(tb#o5`HP80bP_0#ky*E+KPW#@pf?CP*a|NB(!A(R+SW?AoM}6C z=y2leNk{{ek1dCn`5R?Brck;beDzU=spk#TYo5%T?NMiX^yIWyrMA?3$19Ky#ih31 z>11~&lesem!6M^>81>-Fa+6|*z8&x*F*Gg-{OIujr|6BLif6+7L z=prU$pEnd}o{cY(^nS>8YUaA(G z{i5ob`XTAZ?B-l>F=q2fEw?lS=}`{Lp%?_Ym2FHvahh428*C*t*S9vL+lRfA&=u7z zdb{%0WYtx!S}7TLm}K-J)J(ffyKoCT)iuKB6L}LM?#OQIF1I^}ly{Z)4b8e;KB|;I z>3&ji88%j>U+HF^^+*+_>zDlDz;o*xeI59?lpsJQ|OP@gKY9hF-G*MvbLzY zQ1bHQX_2_%Ub^I#30!zUv1|p%lSC6W!(;`Rwt5UV#a{Dd*{MKe9aYu+@9t>~Xy1Z* z^-UGr)OlK4fo!a{t54;N#iyA5IeidD8&sb&!52FXVLWrax1}WIT7|Y?JFmp0WK>Kr z8n|^x<~pQg!!jub5&-B6>Gee#I<|UMFIR4lL%#)m{B_RsB-riE&>sB~-~}uLWa9CQ zF@yf}SE3FFcj3a`SK#@Qve8o+#qmYf1$O?<*CkOFqW|uIZIR2FfKF_bCV~Xg_fp>+ zH$$LIHby~&h-WY>6-s8W{i`L5G4Z3Z1_1^LcRi}@(@A(Qg*qos?gxIQw1Fwm*blbrmJ2X!w-$|=$f(fRl2IMdXE$*e8pl9S&Tj-9 z;6Cf5AmsE@d9%f|sd5RvO>tcg_pF9Uz7s`Kx){#&pP3}t-Y%y6B$9kSiN$GMCgT3E4fS8>ME|+BImi6)RvuJEtLWyd zb=ZoKo|a6}H7wr>nQn~aNt_b6Sr^F)C%^~x7Oq0$QiXnt!^D-~Jz1Bq3eB4nS?ku` z;m!RfQ$|@5{J+i(Hzw%FP>++^4CBco*JwF+$&c3vDl(Qm6HhuB%=?ZgA; z#dF_DKJ0CJEAK3^oet-F^PNqyOx*xKqi;tD$^vcO?=)QXxB?h%WyMHSIDL`UlzT8|jCi zI>*|{#n)|Vi-EAUrpFSH{1i`;SkSKb>K-@>yqtsjh$QaL^`0H|Q;=O@>>T8wwF3X_ zQ^ySZhm`%lsCs9gRZZg;MJcYftj64ZuhE&c8^^f?DT8(|40l!U8H>($Yo(&A98Xl> z9#X`$^r0UlH#W-;JN&aQBx`5hTLq%_x^3gD{>jBWArhu@kN~jjFf*%Aoyr%jfxNI^ z27+_#mb+Gz*O4CwTg4?iamUul?@R@KTmVPo{vf{~`CVU4@Q)EzceyGc#`2bj2XpbO8TOUX`UId*9xBzW|z0%CI{{zwjb_m_}IJ<$c zVKhZ()0~$`s=9qFw;w1@8?@pmxZ88r{sK&J z)0Fi~5J$Wl-qHZ%Kj-sL-fi|!ne}^EebF;d^%ArgD6pQxOC$tI4CWde3QzBZ zp0Py?IX7N@^PB?hTZ+qlMF{eC5Ah*6i^8zHSyb*%IqI^jK5bIu&$ra45=2H*kHWc* zcbEc`>ybRuD#j)ku1$qD80L6biUBcc11_DC#FE1wvc53pO`$kkQ)z4|DGo)l?e(jp{gv2pExGGZuOiBs7tXFo4u3 zy+=eqK)OhfNJi;3BUNb`1PndWt3(Jzy3!&=Affk!W+270=fBQc=d5+^&i7q>H{2wY zgzR@e&#%I{gV^LOWWSE6CQMk%n^24}pgnC;yZgwNiLWof>dl9b$6obhd+jvo6b<>PHD!RA_e_w(@U z^!3@pBoeq7{hLuDA~LVGa!oux$9P(=6W`Q)-A0WNq z1V{0_*3>34n8zneTPm(-gTg(&;FHr>a;GX5<8|>sarj5~&0ei=z7TlPM43ghq;1tb zOYH9}+Q2PVkH=}iDzk{MwQ*-1m96FP@Xkwm$aBp37QkHlb}tYVbUm zDFAasb&XfVcN0qwV}N=YOW3`h0ye;1TSON}eVdLP2Gd@42%-+`oWZkNP$qZq0z-*_ z+9w=BX|LuXsBiyLfyIO$==VV#6iD;p7cZ%5hN zod-(?dEX)&$m;B%3jdxJ6%{S?dxwjEV%Bvx<+x%!w;)vmM#}jfFMY2K{{CJ*-dVfI&etT+XLl^g z`Dq{*&pGrvOJGj*}Bc_Vv-o7aJk5%S$RO0v6 z(w`<4+KM$?9knQS3^v+Np`(BSx`ib}-Pucuyu})VO0lyfPoP5n*Xx>H{_MN*eZvuzTIsL&!7JLwRdc**(K~m4n@-ql_~Gp7l!}Y* zHaW=W>cusb*&Jh&za2OPcR|Ks7CuxvuhWggFlI@(9q4O6?RpOk)QpNn_;Qsl2I}aO zvaFctS&t{2TU?w8uQx0jWZh1Rx5!j6sB4Oew>c?T%*MEvho#>hwg?qwC{xk#ED3-^ z?`>Ed6{YFhw0zSsC!u)kVIO?8mCByXdewK-w)~Z)(dqE$pYyS+^Y^O#mb2#Vi&6bs zUja7Q3KWmkhLjn1mB_sb%Dd5InN;UO3@vXBgHG#$$z17)`_6Uov;fHGwRe|7qDxW- z4xTpg!1!PFxyj3S0o@cOGW{-^78+|<%UghQrHtdx<%;Xyp>=?x3W8zX+uQN`kLn^d zvEI-Bf%}dG@U4(x)V4GT$TItYiibC#S*8K(zs_uDkpq}c4?#p6O~H#%B!7$tI52Nt zz(a_Nt=Q6RV;Q&4vO2R_`5#asOit*Etd217gb!F&*}*Nww~CW5z!(zvFK8X;QYi)? zv=|zOHC#kCVtv4KR_wKF0ka7cP8T3U4_SPG`w!{^W)#I*{W{}i6pK1C=!yG@gSUVW zmQnwFLP=we??<4wfz4i8mVO5{9Yh0!OJ%#STv`Gc$${Ww(HKA{c{mzHg|W=h@jzSm zT`G!IH=V$$K4Kc8zP$Tii&pv{U!(?#^&p!ey^t1Ew< z$;15zDaaZFkb-Go7^`eC9Lo>`c3YW4N*^;1Pe3vCI%J3%@eBKZl>9p5t^j4d?Eyca zD??YV9|X`LbHEF#nCFGQPGqP7afai^ZLAA->4M(y2HZ{&7LnAK!}nsX3p%}E(nKpF z(?!1{cdk28;jWo#u4Izpjc<%w^gne1dT7waNNEKUqs#u13RPOr zDn`}kP`W?m^NIvvmTKV_la+?GjD>4!*(jLH8g_t$^B1Yl#C*O*FR@~@duvK)5%(q` z%#izaV`}Cgi;gKsirxK!+fLlKOvn97K21P4x5^TG{JcE8eQeJmHIuP^Z1#(p@+*Q6a%((6>&_FM#L(Vy~Qp$Wj9j3Cwuab zcdywj*$F0=QpSLyQ1CyY`(DQmr^)~rH^HpKKfz5q9jDVwv5af9xQdN}OaC*{{7!=d zmA?@AwqaA!S`v_RPm44C3gHM1;Jh>OT)xWb`;Rtn*Xthz99i$wo;1#+&6tLH2OWxO z<#`Ibx<{w-@@Rg;B@~%-NSF_TY$0-bS5}K>&`|lGK8BN5{Y1@s;lpqf(CX4l;tYU z0&LUWxcdWn=ie1+>?d2X%toM7;S=a2;MDcMqvo=2-|lVFQzg;O>GSUBUuPU?mMU?Q zY=k*uxwqT8qFhbK!iJEgeVL|;EF1MX+)yM0)j5i)10Vk+pkLt|8l$i$IdOl7=HjAI zm;E2c>kN~i0uW+6k{cB!bv6n1RmaMgEUsu@7l5b!D0Vw2PL-f?EE@enTUi8hCf-VbLg9| zkXih=v$wsmKiLgoP7i-e+504`2!Zy1XR63?QwIwm9q{Kz;ibzoGb3>-zYr`3q%zb| zlM%QhQicNYz8+lnLd0>n!a#YXawYqI;KuL(&dZXZg^(8r0rB9A3^(871rCNW1)jiQ zCp$UIdLJqatT(k@st}7H$PGNjt?uWc)9$CnguCTZdc!k=&O6xd$RQXQas8WJCeBqF;DER|ZPqY~idv*f8I)GSlaNb(w9_gA6&K@!MTyK;^WK#qox&4xS+# zuP_TbK=byfCkWfE-s1vgS`=qr$F~kJ;x{cFcXHcpBJ>82Z|n2adEut4KLIoIuozIs2tDm z*5^3_YI_Zwq)7d}&JA`vRKB9L75;U}J&W*2X^}dUe^M}$A0aD<(t#iV<1>1eBK#vu zbIEddSMU8buDV-S_-(AO82@ob_1>8rRt9v%L)N&oN6WI7yFS9l%sTod8Fu%X#tBifI1|gi}>6->#`A9MgdEG zId^fStQ?WZsQ70(V0Gli5by))@}8@zuD;)F)%0JmEu^=a`|Rvo33bHxSUQ1^j1L_s zg$R{JyE7DXq&8tKaG)@sYQE%COGYvQ&*AEXuPMtF$Y6IBhKQsX402?V#uFQgNYGl` zHj^AMgFQ~7-J##1nGU1vXxJq`c|z?%k06E__it?a1FBa-N%Z4>UsAxu?_0Xp+LC`8 z_5EO0E}WQ18lV8}!UT@LOCpgrPsW2y7#S?N2E~#|xd-`%Z3cT0;Fsiu_!f9{hX@rL zKizlZBU1X!qXQYYHK^ASqqCG$i>&6QLqeX;^1L2=(myTNT&fOO*fwn_btLpF7AI1Z zV%LR=ZRN(sBH1Z)LJlCAQ!JcTx>hsxtm1J~)NsZt$sarYc5M?4oUec8WEBO4mbwl? zehls752pmV_1WW!VhDGw3gfUM*8espKdQt{_V3BwZZU40^{ZpS5Os-lyPD*u2T3%{ z&8nOrcAiy4`>c8&F)SbHsajb+v5Y1d#;7eBamJPm0$;GE+FV+~c$R~1bMC@a0$v{CUO$)}#`)mG6}GK+y}#|X6Nc8z8!eqOfUWWU6K zwX3$!y4f3&4Jm8>b*2?nM_g}84}_jw(N(2>Fo^2`v^UlQUIf*lCx#6cd?W?yKlWR{ zi$JW)NFhj8%z^fFidxOH{XAFpvnKX-IwPsqfrRN%(BW6sE9m0i3r)mS)^Cv$^IXig zIxw;+(`Zp+hqDSAqlnZfoj1M{_qs#Q=gmE&I2q2>sqt3rr2Rpaf#2fZW&3GJRdpp~ zklXb{Nm&Q_P;^g|_YUsW(E3V)oQb_yS7g6c22Mn?O! zmE}{NOnsiHe@R9vxIyMJ0z+^FrRYG&V0J`>X+2R#g**(hr4Zu}O=*l-are8#r%Gy{ z;HICF2`w|3-zEuGq4!Ie zA6Ot~AkCrPt`Gd`r?~=_1nYr|Bd$!XdV(Zb??|IOn9|Ia=4+Ho!IOZC-+D)8jGQxH&27{U-YS@d>sxEQ$KGX zZ<$djlJ>slQn7bSr+JUTfJO`JF{)8|hfasF<~nY*P>uTF@xWzX*nS9h-?z#=%gFOjZ>rDDcaYpOp9UY@T5S5Z)P*}6Y~lbr6F4u(jn0zDS0E+^9d5WI zuy@KXlxR<91!xDAmsyt$+iLlr7gDI;)*9Vx7SS17rF8+~u!Cb1i-Q|D9n5HGIuFB( zf+CEH(ePGNC=X=`MC|BYDls~=Z7X+Jn$(_ibf^w6Ky~e4F`UX*e>M5C?E6$(4AxMg z-Spq;;%xO>TmP)*WaS=eqn8-^hXbe5fupJIJo!OVchlVhU6m*-7pI$FLh>$2WO8}&8YvfQV>YWpWn>h( z3Uo6hz%t!rkDdK?!sbXm;-MS>$Knp}*>ate<*Gawmn~{3G?Q7|$2n`Z<M@#JdiXh+${qEW6#b{%9>ZjS*P6_+A`(N|Q{ZZ2#W?h>u9+l-3M z4$Lx08O9n6TV>tmH<1`s99SQ5-44=f^swW|atp5lSCTiR#=@WzbP|SuzsR^w3tNQ8 z6tIm04dPw|3M#5*{uJ19m<0A z@$lo@7ebCa%SCY|fcvcaA1wa`oQ6lm=1~M@->XN*IG2jPvc_=0kUf$|XxW-WA^$nh zSafjCqs=81t7Io+2D8Ci&U$>M#N05?PpF6nOes-`cwZRJ71ij1{fxilgYuz(x7*&E zk{rf3+6QlsCPvCRal4bb$r*B$r+2FGu}D!h)xxYkTgrTE%@_B!hYRtvS2@fuO?$cE zPh7PU{nK(VmQ6B;fG`px|m07;@e@xB2xy+}2N857Nb zm7O@U_xdRT&C}dFyHedZk){-j+@|hRk7S2)JFapRww8(A<%i$Vq{(90hSl4@&X`h` zAjg_R7FL$Fv8qse!iU4tVIkJOY*@wJ5DnBxoU!BDi80+$M}qZZ5zvQVLT4WpjV7}4u1^KPt_;3IBn#a_&E zf8F!Y7x&{)=}1O?HF^2dz#I6mg%9NFrxL#H9d`y`wL{-Rb7|6}k$-;iobv5**gdC3 z7(Y(UQ+Y<2%qFUC9wcUD395CP@@BhVF(2eitm3DFS5Q=U5;`f86A7ceq9pZYv71pb z1eg#lu2Vv)R&?mWmW1e}Qhh~V1K`IFat~6hX&K++|J|<9a`p$IRrXEANfLi-MN~Jj z%MPvh6ylR1r@S|w9$nQyo@s~M*H7*OqA`cLt33`-u|V9VpllFXw;?Ua&@^kU#RU~s zV6QOBVJfHxaTkRKwtP^8QZq<_{!Mc^8qKjvk5Mbm|M-5m2>3VdT)@)Xx zgdDDz1Uivb#n3Ngv)+}X6kh_*SrO0ymgrhv;2f@)`xp3kYO|7|D-^~6P@euKo@#*5t)0dm#p$VVJY*e*~F%t%|>tjggf}TGPio>`=*SB6F_AbfbczJ zQAfL~&yz+$2rstJHmVYWov^c6qYx5fl>e?CskYy@Jyi=IlxGzhy z9UJX!+ii&&wa{9JK-1WIn(`5Gh7A6 z+@q|BUiF5FQ+wU>S6h8?Jc#$Kd07dW0ER*NW_C??FQoZ`332ja@Z5O^<8PncWJum^ zArUf;HX_p#rF)i@Y2QqWi+A2PRH7tkF=T9fhy3cdQ5}ONv4f;K5uf6~y5X9%vY5|S zRWburVmQU(GLIGuiQ*;UQSL0#%?wG+GHnavTWiX*2ds;C=(?y*Xr$OYB8hB^_o`x; zPd-Z;M91RKt3|BO_PT0LWO~F7IFJ&QFa+Jprt3p5@X4XR&&I1B#cnQ`qwR@o9}*(g z*5>s8{t~$R;hN6}slWj4sA&94M<;^@TwT#{@s@FL1wD$uzU3*t0u{>ob;7 z-sqXzWYmra6)?<#b(J^2`E+PdcRw^`KbY=5p3zMxnV#)&D@1q^j+GUL-T$RU7&q3B z9e%%&L*BgS$0C;gnBNT3XleqFhG)4Y36+jeF~9KhRKv zD1Q^9{U9F>G)?Jqn#5c{7zASe1-IZS{-cayLMQmxR2SHKHr3^K+M&PBq@|*nuK~*Z zaGJqGH^#3BhK$nX5x@hsme8;M_!rPM&0lBa17^cmF#Th|4_Swy(SfVcsV9@slaKnc z1`Iwm1;EoS%P~jTMHu59=sbYRPa?v9ovBQ<2*TGH#Kx7gzAe+L9RSERzn zug_*9#5KCC%pAvL>digPT|rkijt!;adcs6{OG5m?cBU2hHI`OMO5A1gT9VD3d;{~v z5~To7%0QlFiqx#J9&(`A-Pa~0-Sy!GrssY_As z>r8YU;)hghRD>$Ymm9oC#b2jh`d}B28^UH-b-I;VuXLKEfO;Ki2lS^vUeYVnVk3}l zyKUCU;vzysF#yE(`_&p>QE=?S<%X@FcnT_;vm|={3^n|X;_4$AEiHKb&?oK@+4%EB&jl; zlS{yyaAFHj^U%~roflLbpk#csSI~LhS`=Gok@LK5rLFGiiu`rre+G|23Oca?sHsQb z2of5U4@J6YGWt9%&VXtcdlX^SxMo6R+$nSNIn^!l@B0JhUOMA6*L{zCFXJF_EYmSV z?!Rmn{wEVLjv-E6C0epwrZ3%Z$C!W;}h&Ux38z9Wa3w=R^%8?22$sVr}v* zvk#4&D#evmFn;dq<{TO2h&dP1v>KD{0m&Vg^-@| zyz)27gV@+`x1eu*7!yDn4tg(%#r=hugCbe52tV<{4Jpv=4h7~1q;CYdJ_qP(sG;nA z-d{lIe?AT=JUe8$`G!X9o>EP(eR;b_AjGgx$QZgCDY1gL?)ON}^RrW}l55&JdLdY1 z0Hvd5t)1o}R$EVgof-AoQ3i7Eo>9qhzc1G45@je&*9$W=^^k|~D_-9U^VTNI8g|PF zoC;|9ZhbN~VZc|nZPCa1pK#O0QX46(rDa^_DG(C;|u>%S+7$O(|+F7oB454Alo!+3)vu6zL33d1ow9)Gcf%2gi0Bu9!U;Xyy~W<0&FE zjfH02n4l!}23%t3*+|1U2n^$>tdQ-Kmd(Ij_tDHCaiP+MoX}vM=em63$=MBo+43tj zEXOc`gBfR-Z|Lt+MB8!WfDpeRQNo>eN}G`yufes-H|Bha-}*(%TeWLzV}DmZkO$g~ zf#~Lf6iBOYkr{Akn}o_vVJ#X&{;4pjybc&ugRQWZdE}Cd|KvF(7iu=h3@DZve8{y} z+kr7IU;nQ_BL=u1uyIhpi4Yg)P63FSfA|u%T0(v5 z8IE_xAU4ex#kr6%b2SWBv*_HmHO;)3ma@J=$x;uSozeSBsFk$m&|>qy6%+v72SNZWFj+ zAsF+w$g8wH0+bVZZYdxkQf-3Qgc3(s;Go6z&dW?J&o&YWEWt7Vqfd|axTqCE3JTRX ztmoUN^?u_-F0?%^gQk$m`fHZW^bq6p%YyXTK;8afx3a(qRU<$Kr7V6=>_$#b$zs`tvC?dnC z5t>An9POYx@>Xkux7kJsaP~xxdpmMhCZAQ8kQmb?6nd8%S`sW8(fJJw!drJaPoZsF z?Ix;<&8DqyD8H7g+7xR?bB2dVN}T^MJJR>_G&~l0wv%x-U6PsKr31}+oZ(X{7u+-1 zNh;)Wb+eVNuMy6=wIv)YyD;DV$Y;>v5%K@aRKtL=;7#f|79kLS8u>0e5w-sm3Gl_W zAb>tTDj0$th2b`DvHlu804U?Azws-wP;u0@15E`Gtwwc*GJc)u!|YqRbY_fZlP);kN4>2zQ_x$_6&I|xA$Q@2sa=ik?RHPH} zT?_jUJOFau^az?436yCicK~b0G<$BO_2}UuZiAQQ09(G!;skyzTO$p(h)#&qVFCex zj|Z7BQdQrp-Q9LYYS@xmkSI*#2O?@9eu3sr$|u}1CcV@!OZ04E7NR&`SOy;s ziiil6T{YhIOtaIe6JeBxfBLhqbe_KlDZ;iO?raZ) zf|OJC;)Y=?=D)7=v>LEQjK$V!I3@``3qcGVFF*xPGi~?iurNfE!Td2B0s?*}nE`Wx5 z@vjYs*i3%C$SA?9ImMbyA{0w#Q-2qy>hkivmz1$s)8hOeq$Q*Hatpape!wUyIo&Ty z+HL&dHc4;$6cEBn#Cu||JgQqLl7MHEeIo8r&>}%_Zj#b$#?1zwhlm2T+@;`F9$P-j&6VLbGkN+lcNf7f38KrG> zvPCyXtq23Vgx9$k=;25pDsqxu^XrU`G|=6WieLPJ`7TNpOlfyt+KF&t7Fsz|`x4vr z$xIJG=Mi5Z(Dc#VuDi8izM-@#`3gg)Ig8Vv{nJ|~{Tm1UVz+r#-ej~P@1Q{Y3I;xt zYgRX{aJD7hrDR!|GV9#D7OSqt%;oLe7opEvSbr~r>vK0a3GW0<3Dc412ni2W#jr~K zA1%8B=l!gB6r}8;ie3@4kFIvtlPv3s^e$B{0o}m5-iAD|EbRh7?GqISUCeRinRqw> z!LT7MX>Y{1s?`?6kk-Vj<0YYfU&i|u@9FS_sK%aqrW|@4ZnvBx>+WgTDt4BT@wh}= zv(mg{7->Bbuv)4Y6`5VP6@u1f7Gq4r*0`-euSYelVkIAFwp-|T*>jNH1S%)Bg4oPX zGelv=<*s9(`Dl`4c;sh>6p+%2S%gMac7TyWw9v)9Sc!|{%i%i=jm7+P78KT7VsNo{ zQ0Wf>wv%H5;#9-uNw>lK=9`>M7>9+bMMb>y6l9P2{LLOIA(1MQ>@umXwq&8PB~?VV zfcpgdTQGx2 zd7olIm&)7%so9buYD>jDQT=Y`d}NwCg1E1_E%1 zlpS3#`p$q;?`%u5|4Cs+TYf0!y)(Em9__hZ{D7wbq+cy(ZOi1z^SAUuO!y-LQCF6P2xd`6O~{lmJtzYV;- zepmn4b0zXzJkE*VwNaYK(#Drq283#whK~SE(lh-&hsHOu5)5vjPxVP1V*LpHxP4av z(ojdN%|Dc5ho}M7 z$l-J@l`!!0r>|SZ#*(gy56m(hBa%JLQh8C05l}u=PwKwb%(RbrT;7;w3})%QJ~nEh27dYRt(bhnk{+{ zk(lN4sab4rI>EbM9^$~ddyn^Wh z7voONTmG(5Uk)lfSwWIZMBJ$JIGHb2GIEc=sM~5G5~W4I4SH+ORAA#PULX)1!^*yn z+DL2Lz7rDNM8_7;gCN<_Y!6j*`*f&Q>ex4>UC7Krg4XTA9IC{%OFsiEpxepWJeQnc z+<8;Z-)dJ`d%D+XKMBx_EHG_}9FU?+GzG@fQ4T~>FH2@3*IPgrOlf=*R<-%_uERgK z32q*@`y`H3HSIgOy6^$rcGwsKu;FAYD%_FFEFV1a9*fGu!0QCZ2c0mBAnw3p@1Ayp ze<+PcaftS{gj>l?*9HR1f8yS*ejm^j6PGWMmnF-OCzp5@iT1C*`)@uq>c#O!ep?XN zRbV`)Mrkl^fccT(WT^1GldvP=uo;qK=zTbRam?^yAB@7vJQfF;Tb@P3#;b~0A}qHd zmCRdQ{_^5Zw72C)^2V-=^5FJ|_%;jm=m*V(26ZKTE!veiPTv4sy#jc-E+I+so^!iUlY<>kxX}|19MlD1Hf~pvZfY}Em@+d zO-1rWW*kBJrw)8slL>{#2c zYH-@#Cnw3ly9s4b;CUFV)7q%ppf$N1gf+=f3zfHS#R@7Ga(-CTp!8@6jo3!x-|3>~ zIo443K)kg9mx2NDMuv`uf`vz}Cv9SLd|+Rv#j3zPsVF9SW1`QUPfjn3lZ|661!?1G z@(HQL|479eKeBe*2fRnc7NyMf6&H0yy2gj^prt%|rb`rbZzqK$rX{=EBIZcn zVocQJAc&QB$eRu}=a<(P3jq_Da>}8fmpx^-3hO%$o(xswbpE#IccggT;Tx{H{*#l* z#M2dr9p%Fv!vXsMg#bU#zjEd`XP#hVZ5*z>anVpkbi4OK z2H^Xf9JkomDnZWx(eMIZQQa#isUXg`4^`^rNI`GK{3TN5*^>yiQCKHX0>LiE1c*zC z3Iw)dNsD69?l`V}j+7;qy!oq^_J&B9zxowY(JvAn8jgetdX$Q8z>|UH#jv8yiHP8n&Y8Fw&DOPcwmraMC09 z%$^r{fa^~>F64=^i#~^r-fl^ZFONXSvxZsI>c;G4xPJAG9$@kg=}abYSWOR#_P)I& zTJ`+I#|_b#A1Ty5o;Kq=5fZNLV_f2>wpt})2u!WFF0ulloA;Q2{WuB*bytKQ=QC?T z-Fu?zS*OIVz3Djf@yI`X8to{Gy}1?0dy~8V+bn@6KmXC3Rd}9#>e;dsSn0|kO|kiu zvV6;Np`Z69{_HY!s198@^}0Y*F*)dprCoB3s-K&ivaw-kw&A+N4-H||8P+$bXpk;H zO{UrITA%f2Dm?LRCF~MOp0v6_{+M?ws>HBKVCjjqZD8h8UHP+b)N{&2!gov#JuXgM z)kHP1N6*xE@IfNui`&SDXU54!j- zMht?#?4#XLQ-tKAG}fWKDDI>uZ3W_B{jYxWPPbuvTiTC|kDW#(5Lx3)sLQ0k0Ga$5 zaH4lXvCh?K?5yDefV6aL=Fvs9)AC5KOSBXu1a|cJCdVo?e_&mUL(4Rtw|vU;yHJc8 zU-%ZVKH7ybvN-qIi9!%mI>KbWh@3+=uX9fRzfk86d@D; zd>x}2*0=64#GHWxCa2*b?(l?p7S(wfx>)9_$$T3Lq1`%uN^2l*F};pGXf-$onw5DI z@rX0GS(lqO?$YXu0@30Ks&oCW@9UgW5;>^whxV+o>sP`9ygXz>MUz4&ym zn+59sNK@u()>p>mlFL14FRXon8jb!gF89=W?k!@X+UrRZ>qs%PFiHukNUl)O?)Mlq z;*Tldq|Z#K(YYPF=q8g-{UCRgt?F9Fj}$fTH^%N0?tlCgvx5UpC#5T<5f!Fw;g4Uh z&OAeS#Tq4AKlXHF0+R40nGv}MX+ar})05v%<~`2;PoOcG^KE{OL369oOqRG7tIXlr zD99gEWy%W_?`{I>FHn4;=46p;j8AZiiB0K5w2x(l#e;mU9+NAU#(j)o=wdmvRwS|q z+Su2FiPpZ8G>z1m47f^rLrF2cM@7eWXyokvG#dXS%_}0Ih*D4%P(>52_80!p)=X*t zX|cD)0X`ul>|?f{uJK1lhX?Mbb-QUaO;)Ir_~vob#uh0*W}oG@eHuOe=TwsRg%M0q zj-m~U#@naf==_G^3Q97O3rJLzc~F?#W1YvEEwrmMm1nzTIp6)gO&Vl zU2t7K{3ZjWO%bGPX7+}gT_n<7kM=iJLV$vKo4hHj;p^ud>Nt!$8 z9f@WtA8D+M9x9X20<}0=vaU?&YP)3YaF8&Hi}I4|uZ^*hnrRmsuIJDMxd+P?%*@zs z$5=tRBFDS~k%=wqAxW`To~~7R4?L;e10dbvC9X~|T$V=p5$V12@>5t1$G!xHQ?*az zb?T*x;5pG0Q->)fT&UP3URO>X<7`tjt@e>~U2`^4|fkCG*nA+DID(lT!c0!$~nrf8t-? zq!97BE2AHVH7C{HJq`7By8Zoja63^n4c3Xgb>zS0D$z$Q={M5&Qd1Y#^x2&< z$*-Mg?K6%|jF#XP<}$ogg}ehl5~SHsL4VQOD0mXS2gS7quofZYu)o^@{o$Vn!mhAw zxCkP`f-04{s(q&V*BQ5of9D5&%j!RKE|K-Ni+mO62B@*#+or0?kYyJlO(vEsH4awN zpex`cM1XkboL%?a^&BUEn zx!p57smgNQC3`jm@{|6bsS+i!J;(wnmluaMtRYr^JK$GHSlkn$xrXL_4A;0qseTz( zIF@xiLA9Nz+%xI&sX>>&vuBot1P^3Jx}vH&{{$3JXE#viSv-h?rG*~oS%wJB?Y$`( z3`QDJm2yb|TpJIv?k(ddJZ6Y?#IrY?#HGy|ol>kECsyHg-Y*RDcZ;6)`}xY_EI=G^ z@x;O?!d)N@xlF`*5uXDKht^$?9|?Y;$CFWzfKl#k_aFeiav;B~iQm02JMbsh3LcSO!P*t7G;e!JJw0kLxy29VS>@#a5WDdhCv39< zTr0KaCVW;Y?>+TlHvx^<;zyHk7uO&8-0w7H+urcX^GfQneO7}& zzDFe5lmVd$iuTq7_qy^7`PR4Pp{k75=&i9{^8Nxj2>^X|uyotVi5H)CanyySzV3i{ z&KLU{$85lEAIOj`!jkoijRYHLZ%b{%UkkFU*dRtBce?kA#?w_}gy- zr6s5uxl}bfnv8x{vLNjtj@ZIl0i&V6d<~*IrQrT_>2&;HA`9tC(~m9 z6UHpD>hhQ5BAa`Pm+ic*T+t&tsVy zHz=%B_t#zSRIR*B1sjpjOfkssC2Wu|cE{op3B>I#+ak$ff$?cmMgeu}IK#_TIA}o_ z5k%0vLh|vPyIQcSCGLEXs2ST}CZURu8^aoj8eJRssObZ6j=kTG?T2m`L|m+ndExV{ z5F!np#Y8Po{v4%AWdjDSxlQl|}2n3?d%E;OL7lcIdd?deK%SyB!iF>p}!bL>OueUx^F}-j=KRQxmbAMTQhY5 z=wMu-MPg*fh)UZ*SO7J9AI(SoDMlT+zJ>Jeb++nxo2j8W^u@wsk0Uhx@i-FVRso-J-V*6;dhg&HDe-aqaNQpl;17Y-I_gVKyt$5C6E)(ti>o>G zAr_icx?6m@Fj;ZIBvi&G#=8Hw3YCe4SWKh`?- z%dqKP)w$DcpIjj~q(U^nvAEsZCcvb=ofP+LJS9%Fg~g*E>ARYKdOz<{x3zQF)-O8Q zd;k7X%WqN4&yg8H5CljdDqXIT8%NcA#D~Ao4ctQTz7R1rL~f_^UvRpMb5e>7F(vD* zk8m7l^x|IICuc(yhxL|cKQQBheR}{8&=pT3GK>C5f&nm@F%`Ts_Hm%k3;1_FuRDHs zLFe*60gpiUyS%q3Mjze1hI`fsG0S_UqF*1P7@1uepYY94v z`43c)8T=1aIRHQvg&_cm@%|UYD_^z%`g{I#uHsN#iAp3le5v-2nnlh(=-$ z@$~)_61K=WeTdqI^McQPD7tYf9z#snd5VM{C++APPhd>ajnek+B@(SCL@gUm6>td$ z&X}_apC9_@<*D%7*x24*E7P+O%Y2!bzMNEAWU-&&G1!lglnpUDLHFR_!=iQ7X(?Uv z*MnFtsY5||kPPeot;gSyPM=qt4fF~$wx%sdJz`UIUcPX!aW?eWUU#D+o-AEYNfCRz zNebNJhQ8JbS_1eDbE;v*Qb7FtO)387eA z+#g&G?hoW+X0glm2Q&U>R>alBbw1p9Ko~RMQZn()aXo1B8%(c6KV$(%&f*+;76`$p z2Yp5*fa{1o+^&1wFV?oFHKIYUb+X_m((atI`=*8{+E;t*$!sFbkvpL05cZV$XI`P|@t=Y5W2^g;Fclng^I7l^dje$y)fC*WsQoO^-d`HHlItWBh63w> zmdxmoAt?`&4yjDd{Xvz^rJD45YON*RoyGYExMi7Af1P3Q@*Zb8ZOK&Q+J&(+dGh&J z!An0|UCT%qFwN7cV%GheM=qgB?`M4Y+y{rbeO>Tg z;8V8Kt1sD_*$MN)Uv&PYD$5RPE_9o1DR+4u-h7uYB8=efm*85;V( z*n97wCb$1-2j0s$hi(5q6VNJI#cF4Aj&Py_^| z3rb1oJwZwcNxa+d@BQP>-22zPZ<{-J#u;ZckoG)#uf5j#tflL$dm}ZQbc%W{;o-TS zTX6}_X%D#y3%F1&T&PDWdVNBVYAmZx-T~EFirN}37CsEEo$pM3o?V%6Fle^G*^6YG zp~#P`ohsR=4-OY3tR_+(`W*_MfmL^g27diKvt~OuoFFnNZUfroqIKiK8x1}1mJ;9871Oi_I10-? ziLCC6jG-|R5i!>HQ~!z}GGn)jD%qSG;?GAE=*WEClgvQY56i;mS@l>--##dQG!9}J z|Ly`sUJ5bs;V_Yp%OGk2wAO?>c6xCBwcvXPFC{zo8`!_o1X+eXMu%4+xi^=SP4nOuvsDwcAeUC?UUrMo|8 zVRw80sJ4$r`PztBJoLlxE1M*#>PjnStaVwGTxe}H&i+Udm%x7$vD(8blCKqF2Dz;! zg!4l50;B!#OSo8(y{DrX2$7KYVT5_=)EG~N)?x7c+COwh_6IC(oNd62dvBLJnf@cI z_x??a=jys?v17Ta{D)P`S`b@urlrI@CE{A$q^bMO@I|tb^5EyKS7L*5Kj+zvPNgk1 z2HjR1l&O99aba((naPSfvD?C9+YF2QI8kbXDtvGR8Alw7Q!~^!Pq@PeA&fxR2ABVg z%|}Ai3s33z+EQyUw89*tns#XxG&>!A{u1vepFLFPEzm8+SeNqwi(0E&mX!Z-?;7oG z-{&S3b%&^S6a6D&!N|dCJl%N+0{yHWl?|Y5Xe3`dAb_U9om^;fE^gbv$uGrHZTMSLU)2g;NB~_*c@p z+UN;K?Um2TsMh3dZlaHN<75%>AN||YZLDxryT+#-_}gKOUv_RT5sl&%7`^m$2?euu zMqWi7g`P8Ci}|+6Q%Rb!!Zce@^Yh?JRDy*;SWX>Y1PhIX>i@ z2AMAT)9T4*sI0QP`~h17$u0kMT2$iD^dR%fDP6@f|DrVBN?RG7VcunuuKK3mKS9A> zQBEmQe7po-@=%t-#`n>p_e6SOpsP)UD3Yi^wd!`fMLb)NuVmevs`gNwk7>~pk&hxam zlVzPf$OFcR=S-q;z$)(%=dn<3AXuu)f0MG@1uo842dz5T8CsTatK+cwXoZ*0)yq<* zk0+s0u&fVR0>V!{^J6L_OBsL>^RZ>oE<=r*c;Gb(ij!O7V9KJPc1lU)5@D5@=xvhl zMY-Tce?#>3ukNbKTWHmGT(u;I-GG|?{l0_vxGSEzrrXhTGnuxZe(lUK_!ujZ7FM#`DT}M$-{@4=0m=hy79i&dIybF(x|m)TM*rVLek9|SC^2G)?*q(WE0WRK{)511rV!xmu6F2}C%59{ zNTQWkBQg`@n-T3C{Ry}GAC+s%;XT}ucrn(8z8g6cE+H7pQ-_vk2)qfwrH!x>sDhi*)Vs$z5a`@S70#jgB;{#B!-g3Quyfbl=Lhx5*mH8|@nD z?RdnJ)>y#9Encjdx@jG4wI)rH=%uio1B5sPX6Li^4lrdv0`P z-e@AbuObk1zCx|<@!Z~4YHxb}d{flcaMHiu~O$VFK zp5~y(N_C>7ZwO_Z5|F!ef|xz~eMl?Db)3(=+p>AHsg0{||?fRE|CXSPu+MWTFz#zPc- z@zHi;MleR6N$;1=1eHkx@Xw7I&Ji+Zh6JFNE}SaB1MJ$xq|$LIZAmP zr7~7*sOMX3Xvi8-P?F}tf#Mb^ai8_B2wYL|hUPwy$+Gl%-m#M9>J(iX(Yrhy#gU|R zDzVcF=xJObcb)(b@bKrVzgg4c?tp?yM5 z{)ICp->V|3m)G80B_%F+X)Dzc=DWDPCa%Swgh*}e>_fOwDZEa_I;hP@wunxXi|;&7 zde0E~ezmZzIWOfoymZbgkndYh+YO70()$bicdfsP(|b!I_O;DK`d zE8kjCl2`9&kF#u<(5xO@4(U`_vI19ONHRknh85T*L2jgngjq%9Nz=7f9-0#sXc^!o z*M|3m`fQh;aKa4;U_Qd97;Zrj&I}<+FSL@|%S(Qc<~t`pL-ld9>WK8N@H-<;<7)hV zUe~Fy6@dn~O&bz^t}Dv@AgfuV_Nw#|c~DL0YMG6%jb*OB-&0*23NR)}ud+LANh_>)nLBo>)PW0xs5>5~b3qUPuvQ`EN1_t2a3CvpnbKR*}kb(WN{ zCX=tzx}bH;SmckK!ytm&_9?>bjWMs<;hMF%n}qb)pH@xi=ak@rGDf`gIgd;hE${lv z*0tT`v@FD-r_pvYvqz|6U0qOYu}}^48@H5K^w1tznQ{k@hFKKO%YU?rCW`j02lEzd zTiWlho}W?c6a3}5SpSMoe?cTxWj@;8Kosw>a3@1aWJq-6-35_LkGQ5xma~Q~r>&Zd zCS5fJg;P${a-U*XYx|%xljV|779i8kY2qp>sr9n zJ=T!4WKL1eWG{arS@<3$A<+*D0li%t<1S`7S=tN`fRU@s*6Fi+>je>A7x5Q5QQnsq zk>z-pWu9=^ve7j>MM|JTu}F~q>(5&x_3Itqx=bshEfaplaX($tR;X&2wxS7a5+71= z|9`d_1tqdrNsWh`g&Y{eq%cSlXfb#aObr8`nGOC^v=oe+8|4Fn4)J{~5jf7Phnc&{ zVE764zarc01O;3Ok7#T&Fsnlu5{hW~Z}N#7ez=!O-$?EnWe|sqcH|v-I?Hq3`uTl; z-*yvF401f(0W7BcDE1S#D3XP~NVjv_oCL4vJnbEBz4MmQC`xZ0QA|4|>h4zt&}krywIw;$$@>luGJtsN3{>PF;#>N_#$tg-)z9bhbouS`jRfj#|= zn(w`@KV7CU923;WNz!uiJ1=gF#WTm&3`+EHROnolru^L|`RT^Pl}7ueN1$)Dq45DJ zKw#mgTa5XqH=f6S?ALh)Xmi*TYsxS-`~{pla?uFI8O`Rme>JAvclODT1V6UbF&1o= zr37cnq#arka;c?&#jUAuGFy&=j@X+`@vmf;>W@#DXR(T=?IgdHG^G%}u=Kpzg zfDkSQJo!~bLE0B}>ECpdVKR`3In2l5W7hvZ$yx_M#5mhe8=ogc!h=YqC&Hv?lf8XN zqB?*Ak*^kb-Iu99p)BD7GkS0h^mok$<{DCFyXovk=4iU}15%g^Px`T0+)`<1)!TEhu^4q^7AvzhgPKZ6ZH+TCoZH^ zfK9ANDUg65&MmTA;uDTL0qvpVKVEc&N+;~MGFrU;J7Hw{^Lf@FGSy6ZU=hTz{XAU` zH#pyu6Q*7BjLaIg&hRY)8OZD2NYj8_#cPXnN^>;OcRi6S?ZfhEz3g6*|2RK`|E#8& zaVqB4t@)Bjb(OS0ZMg1YMHhio@)*xk?b%T~= ziYD>=_`CZ8&$_HpDaF6UOmSbUG{tZ;hO+fS_mW zb7~d=;MH`iy2U*p=p?n65r(@{+><2|8GG~2xAFMIwa7eM!JaqJ*J^cnxo)g> zr;{FK5~VMF-Ys$S>$$6ldiyQWZmX?ILp$+Ndgga?aot%!0*$Vofana0!EZYImNS(d z)?amM2V10vi7Nj(iT#=c4P*hwlS6x|6TC-h9I{0r8MuX=V%%PnaYUMPzF-SvVXAVv zn(;(4d~#+YdQLUC9U6U<(o4C1A_p4gisHZWy+q&~Y<@Us%qqldUZw5_?!eqL5nr$h zxroeD(W$@b>OGxpf71;-&DP&8U3W)7XcI`*9f~p`_*Be~P4z1vify2jJgM19KuXL? zA7s?pDyZt8vC(q8oVm41;RriK1O3sA`n>Iy=Zs+i6}dPcR~Jjr#Qo4wN)5`M?~>5p zGzd1YeuD@*1F8%dJ@JE~JsS$@hNWotkG6{M_`|UYa*(Z-XijDQj5e`n`phH0@T?X> z{APyl&R7=OwxYR??$NH3SzzD;VhLDh?#K$4V>(C@z=@A8w%ss|zQg@M*}qPp4jNI; zkt=TUwVFJw4vj$pL0R}Z>kagm1w@V);x=+0kI(`MF;9*$p>Qa^sUhdHNC z4~sg|Iume1K#17Z{GMdUi1KGBk&cp5bMU-!#vyy}PT~7EcKd=CZ&j7Qo9fbqZoCE6 zIO%$0Xk7?}ZBwe5vPkm?ANRglnL=X5{*;MIjbBv1Gw}Ff>!x;*)$8TsC?C_*r0tf; zJOf*4>u%%pDfxUrT?BC^2k@iDGmKH)css+x*ZLyqd`A+jTvt;Z;Wa77ANL+ES>7Cy zI9zuePIs7|z9Y5$0i$0{q5n{rs2JH_v=s1!d}&Jd@@WB6{F4YqS8h z2iqnLv49r1F}==f4*`tyeM|l#k|X zPVEk7SEs|8lGH) zMqn3wVWIHrCV&<6O>@#@)@IzCxtq@8i)N=(IV506(SkGvU0~5fyqqTmUI92>!HA+c zca3&mkjAd_n=btwf(T@&0zoRhUoY*N0_3>i$Y(l$c8&!wiDyX$CkEj|7&eNP3n8z! zbDl|Em2w?u2C+U*lVg47HtGO#9Gpyn;BUHa-miAJrr11wWvpg1>&dpox1aVmOz0hO zrOlEH;L~8tav_yeb@pWN@<&vf8h3T~%dbtLO}!=FIO@rGNo?$ouC~LfzzviHcf$F^ z+6$#QD`Qx4{B-F2k}oblmC3!S%B44*6o_q1vU`Dw10|W}z6Uba*~XO?J$mny#A>!i zsJ&C$I;2~OY-S1v|C2EqgUiVSMmmmDL=EoF+~hh)WQ!^}c1^`gqarKX^~PmD2`_j5 z#B2(C4b)E}_IzB7a_VO=6#ijy44G4PcddQ_+jSdE-C8{Q0FFGJgVjP&P)XUsHb=LO zUJ4H|7Klik=mX`MX#{ehKI*xlCiiFWcLBXM#z2}QLf-tQ^Ejg92r^=}T6%xeZQhB8 zR2t2M(F{rtqX4nQO9Y;5WBzcA^;gW2L-K#Ae{Vk`62mzVeM5vr+Q85yfEl8tApOFa zOlI=dp9yX%kf9$W^E<%xsWF&G$$T4}DI2QwF&H<mn+n739WMzdFkP%OAYQ!p%WjIy=sDG?Bkj$$}*y3tnKeH z8umm0Zv2ud`(qQSap9)n(qFVx^jkPHp8w)`Uf$^M-d0_*cmD#Z`G)t7H7bYUhWP^a z1(!2h;ST53i5`)9fJTcfNpwHVn}m$cPs?>FBgr2SBx4nm#&SHci)9?RVe<69~4_1Xd0%0gD6kBR7+zPc*Ll`%saFcXy zj;mNr)#`iRw8I<4Y*E@1`I=m#)nDMkc-PdvdtW08#%*z@c&cz<%n3ilR*K_?JbLwX z7YLcqy**tcR+AvVqV>^)RQHl}=L5%G67|Fk?gCnxJ7{N@x#~(?Q_($?hYV&DE+pGp z0$e7;a@k9dtL&LtuVQ6%@qlW;fNa8D)5ymlLBd{;RRO`hCU~(WxE!qR??J&LzeuP0 zwQ)73g}U+mRt{-)Slg6tQw}!!Oixw$29ISbYG$LU(`I_sgD0xM-OJ5OvYuJ?80Irk zC0B05><9~WoM+*&5W1Tze|6jAqmp4x?lPB_UXY<_nyGC)x|w#{w~hJ6SLMtr?LO+&9oJkpGsg^yaQEqR|Iu?Atx424Gu%6zuL`7k7r55Fum(X15KEV_! z1sK~;s{pp9iL}}6C``n}L)^XuR+R$Id#QqVFD%{w+Vs_DxkxbV3Md<<>4)+A(XC)p#jy$N=$J+2eO6~ zA%{>e%3dgt`0_cKrR0HsZmLxKGPff`^53wiKN3hilRo{+&QYUCUULG;L%!I|pswId z(2>e6$rm`dt!Rlw;6`Hx6)v<;b|g8mTX6p-lw|e%H{D7#xHjSwriCaAK9|hTT^HJHhHdIA3LLWS6$MX~Fv)_r8WtmMG8Uc2Wl8tHoS)fW`>Sh{h? z4JM-aPZn+$95165#jUg1N`O(HEqQlWx48u~S~IY%so(HzcUS&IqIsKR58t!1tJBg@ zm*n|QYGd<$W6PMgxBT(DZIOntU8ybC4B?c~m9U^BE9x9mKTFyNoCsH=MnnDCiJx}y ze%{jB_@53HIRA_p-yA7OC@?I`*XPvB5Kq5gAr6bt zvP2uP-c5wv^-w4_`-lSUGAoqeKeYuw8N=@4@NB(LuT7IKm{q&U2&J9@yJcftJD@JZpjq=h{L?y))#JE4M zGJm+E+nQRgaU;FK^od#L^Z!?kkGaU16WT>iLiASVi7v&4 z`c8p)I-o00sRekq7`^^Ru-i~9$K)lv+;`+1q^&t`t+T?IEi(E{0%hpa$dP@n5q+(i zThQSEZ*^3teqlsCdrT8tgmaDfvhH?8-ENkcS2-F-?_z>S}4`}6rbd^Ek zj$O5M;{7+WBGo?BpTk!j_=@Mr=&#&Zb-^gaQfDCshl z`Ma;+XUl328)VY>`_##dQ`q8h|KxPI4$r7@c!Nj$5t`2UT9)MaayWib5|EA7o zN0FuG?R#n5s82Q}aJ&esB<=C)!ZM^udKAx(p0-}CSnd0M8>)hlPx-Z{{IZ8O=9Zna zrRfFn9AR+@#kfgc>4=(@e0tL+2dmn0v2Mkhl}IjKACAHugcdC9L|#2PS1`77Ma{q} z4zAM!PE#qJ#Ip}IrEtfSQJ*powY8$!olC|{k5Ey)D#>z4a1bt>5YI>`YC_bo7me_xFS4AEEP z=V=AbZ9lNT>5fGKxA0vGumuLl4lpH5GYM7$V4?mMAc9=3Q_pT570?2b_v)zih^2jS zqn&_-IT=H)ZLxuVwV9$M1^AqB188y}UJR12|2WC}UK4z1gI3W<@|UI6ub&1LYDVns z1|&Hz>GORvx{%EFZICrO&Kh;MlCP>MI_Y1Rr-2s=FEND_gHXhxcVl+wS+A0VljQN$ za~2Wnz*TQn%zYQ7(ha1GDam~0ej<=B7DfAP&~8tM_kF+~VTkB3qVa{#&7W<#gWC@4 zQVmKzF@Z5-Efo>$lrtgnmYK90srQrk)qP^ym|vuvo@i0Ri=9>?*H+|x9$wgXrtUi! z3VqJhoT#l_GvvVAtB1To8=~%E-5Qkw)zy&GB9l;rJ8Iew%xKI=tNj4`MFnS{}1KQG8DSt;NV4WsL2&%qu_Vg5m zAAj4SDd|rbKWIuHVBnARcX2xWtZ1<>(x6xDNdz98Mzw7U)(m_ZzkT1#5LU#@9*~o ze=O2op1Xd9;5P`rN{cQkO#3iqAexp zxyNUkzDqSZs|2nzk%~XU#=9@i%8?|xrxeLLN%8}t_0AH^7fIdniB3I(qfod;lm8aG z1>^zYhuq=YC$46uj)wwJJ8aRxp@MBB3^gjhv1jD9Szk=MN}FIlkEvEhzl6IE`2K7# z6z)`K!h6)<9_y&}ty}bfO3}R&>x2Oz*w@RGBl+006y3UIG6o!sGN^Asyk;?C0g2>= z%N4oL&j=`zJd4mh^U+`4gd9N$uPKW4pzPI-m+Sd2VGNP}#VV+zeBzY&rm%IgoQUxO z>X%s$x6fgoW+IwB^!sCKP*i64*aehWk3?CCaiDv*`>sJy4dyj1Vh(VKT_R*Hf|Pq) z7ZrL94>xaMjrob*T1U7N@91&a3&H=LZ@!@JfHdo?zW?u1cH#vlhl*vvUuY79fbGKY z&?MlBpebTaeFR?_C!j*8e_nH1beG2?PhzsH#!f%}buJ1Nz`Wczbhf-5cF#4>>fXpK z0{Q8!$J?)#g6FjyD}-Cc*#IA8>2bcTPbr9e)3KK-Mntl^z?nMLjCw-Gsd;9dS!cbv zR1(tCTnSm)XX{jJRjo*+7LoLN5tsdoZGF+_fW5+nR)%Dt@sT_iR{7zQ;#Z^;%R z!a#>Q7eOTY!GpMw$9b$HPxcM&phZi{eGlto1_EWcGlDYQBzFd(#yTNVUuxBaQ=d@~28$j1_4r7LEXmVaERPH7Mjo1f|0@=PRK`lt28W5`ivqURvDBbwt-jcnl@Dd*Tvisv z-JXR?-+t4fkoh997$RF+B291wmY_2!m&e_q|3YqMbz8g)!O)YzNN?IQ->Rm4`$~pE z)>Q74TFJvlODpqgn4(IOV)cLWjvk%}kOmH)PfDr}#nEA|3v^+W2%S@)?m=`!6DBHrx>SuqevCb*nauMQ^Vv3v5 zJ9-CHN&BK>yIjL~+C?QQ*!*z!!+UI@?eFM8Z%YDT3+LHHqId97K2kf(Q3CXthD5={ zoj0kn*EUpJ+Ab2hh_|eFYs!OdqC;5JywEW=$nibcf_wi&wRlO6eqhx53BBQGDn)Cf zp<&;0Coyh=)NBD(L-4VWXzVz&+<_ z=wbL&CM*0byfn)Y(qR$KgZSpO1F7buv*^_BUeD~%A>HK5r z%-xV+ z*rf+{wx`TwJ?cB;UM%G=ko04y1gL~zH3;YC;_&w3C=EEp`kYBdf2xJrk>s>>i!lH& z;GKx?2F%pkr=}w6MW6lhv zuqK1K^TJ9%O?)?^$|sW*s5!{Jc=&Db>y5yR+rYcwCg3L2mGB5ehbUqhyr-&4Fj9UV zvDUXakMlVe{hWNlgd!t{Ao|0{+EDOaZoL}Bh`W(}t@gn+Ac;N(Ptak7`SX)?R^TT& ze$%aekvMLSLo9t51dmp%TtkdcjWC1SpAMswD|^WP{Nr86zo>j{f6*G+m@{-+gmCVt zpcEUp$_M=$N&dq(vRz7VSE*&V3dP>h9S)_Hp(x^rgB?M#9%K=%lHio<`st-fgq-Bl zhiqj9T=4VcZmf__XdvGg!%mc-=`8#i5gDmv3gT;NIK(s~w`3 z>GPGSe!~Ro?8gSk9@C5V!KQM2~Os@Z!{RYh}?4a^r}BHgNwaPWfT9a)yBH zva+%thi2;P>rSJWRq3e6B(F>yk%-m%jJNeD`zU$0a6?qXpf~HTl8Ks87lIIY6RV}> z$U=?Hk8)1BSxM0$9`9V!Wq89oTbX;;X?Xvd0P<$~ypxXTNBc!f* z?<{nPr4tQUDJofR$A5TQ!oV>1S2DkdvY3b!a|R4nY-nOMXHI-uAzRATSBesQApGIL z_gz`I8*Kzb@KvI)2`&z$e}s8r9mNRATL-vS&96}|B#{CSTb+2^(X+jJYcix2pAD?ukg0%D8 zjF3CR1m=FC+Ljb9`0&cJDaRXsa5 zXWzdqd88z#FFz`$mh`o2s%I#mSPZ1Hsth)QG{`iRNNE~MqEYd{s~IDAl5^%|$8y7c z#Zyw9PM^5=_<3M(Va79eGdRyjVn^d5#krm+oHHx9o2V=V?1Xo3MVOkz>GgQ&jqI9;r1-RXbjf}aV4xKdj&F? z(#&ek)2`TDVTzJCk&Ze>*0tk5H>DgA0@bTDz>0H=6h$p`ZZ@mPT{^*EhI9_kWa4xV z1!L^5<5wJ_mfML#mZY#4@v-P;fg89I^Tp>~&LZgD04age=uX^1BPJMIyR^Mia6nIE zWH|xL5!NESU64;ruxK4b`3NWy&Zc0vY5do;RvnP+aD|t8X$6A2<{vgj?KaJdR`<}~n!BN- z2;{w_Q$tnO$kIplS_yELuFq+I!jB&Ttfj1~oN#|9&G*Tj|*!dG_1ojTCJ^T`}s22S!xmU0zquh^}X&drkI+!z}@_oE6$qjwnBA*SP zWBL55`|vULNJ&6$oK5a5`^oO#E=c1q#g@5VP??+_!%Yi4{ZuCY^u?_YCFNV2y3mI- zUl6T`h?^&}&|V)8>AvVXc@mA~<5xf5-ox6;y~-7u+T&*^l4^0`zFhW!tj9L|>E3<0 zAoqeVkcCCe43fq+zvWdxIrB|Huo^aS_>OpYEptRuIy2CRfN4*4Z@W%>*WdD}@6z}| zV+${?_*&q-S|$Y>?*r@@}6t6OX<3$s5h*D@q)Xa?$lZJrrg zH+H%aoS;$2{mbAg1W^thWxwh6bU>Tpi5P+jbHG776OP4Yp5y_x+({WhRgk0HrIsP~ z?EYl)KB{L$Z2X}6<4}4CS>}e;{-&d*>O-me6a}bF_xzs0%KYI4%>K3Pkl=R&9{&qGzH^?+iT6;`1j7kI(En81{d{pEhgcT=^q*oox77^6 zcK+~7h>=Ui^allCu`eIELIjStb3rV+xZ&q}Ee|N=H*AsJk+EOaY&hI4jGV5&I7$pJ z#zhkYkmREmAj7N*v4Tj()E3EvKweb42lUDk|CULwHOb?Q;7fVNmV0Gpv%gtzbPB9@ zwENc&=fGxj7aR|bUa8AhjsRBkn8gixDE1X`aIuO8eZ~j$pQ~zsv8x`yMbqkzxoNiP zlzzk{H+2rt0Umupex4y5>!?b4eU09pR7o7}N(>DAbe;cH`wV9^1@gh#EmeGGV+>Y8 z(0zT%Bl*%l&Tfbw6lJV-hAx!F2f?0H9Q>QkaLo*TPCD(K6^INE5nQ0(*20%r`YcXr zU@r!>`zHV85|_?9i+H>`9rf_-Vio^~%?G$NW52rZTEg?HCgcGcV=2+o5qlt5;zOiWnQW>eY(p_Lf@|^1{O9fVT(x|W8JFu@vqOduKF+YPAtOhKeZ?& zEqTjzg-KrXJodDRD?z4x)GiB!L&d^1_D?TRl(?RWsohReOpsV;a69o#kTA=}oEU1Q z;Y*ed3Py|=k(2#ZexcLfMu)zFi4q=K7-StL`q!6T-oiJ{I@e^IRAsDmOc|PFU-$R_ zBi{b<+-a7CZ(>@y%6($mx;-W-2D%Ea*`e~2iFbHLkQ?bI>=Y{uY4zk^v&+U zxuWZ5qKZw9O2thM0nR!bAh>6>n0yXLV(c+ugDKJL$@|mz7KcO!Wc!Ut?#uFW308;q zO(!P@P?0U(#}11jwyVDY#-KNV%Z|ODLOg;d)K#6CsC5v*M`Le#`$)Pv+{PZ|aS*K{ zKU_}oJ2M>H@?b^r3rKCg@U|-lqeQ&T#IA&u8q9|h47gE9+WGAhcD0I8S=v|R zS*HuVH?({f9609Kw!3`0`8;lmzZkZqW#D?@uY>_s^=5iDekF4u`Ph(b+$m3c)25=$ zVq(;-u9TyHT;g|DwQzaL#?U|YSEl}VS}0;+WB&Nl?n#p%^(d4i$Oc&fs4fsfT}7_# zZoL8Bli;3iF$2ro724g+y#Q+3e<%;;jbAjTSJbSht%zQT0K^k=$vQqKna&1aBpRQ- zyu=NTrq#IZq}D~M<(xM6D~qv~+djB=Jag9ZGNTlSat-0GEVcP@(DL@swC%P+F>ez~ z66?je{y?icAvfjI+)IoN6m}-EH+K|KPp&Gs#P@wtxIQSVZnQCQh$7+8v_WWfX3u%S3u;EOG+|%q=my(#QKNWLfykFl=VC3xBKlJa zK&Wzgt9`i%c^CveC<}G)@{BEp(+T<==XVHis7HPtBzduEuO%!*Fi-C>s-Q$*i zI7pHhRB;Rx88j^bu&j}x>+tS#NC_DB=cI53EQo;4_H&dwBxa&qhagAzRk$%Jqylz` z{bvk*9Zd=nWX41W4zq2j-x`5h5iK!zUhXnVX(fwCw!JaPE3a2Tl}DDmy?lyeevA~B zNKjGNiEhU~cCO;eRom>zb=S@=S~n~#)yyl~6fPG}d1-=DOauBXA_bv~e9s)?s7L}7 zQr;Ecy08w4N@uR_bKI7;Q{0fBO4={3719MXQ_5n&%YOf@dRD{wJCgN`@$c>%-u{bW z!jIi$TgVKVvkm=TO1sDfoxvP_Aq5i{yP@a=gMIE%=<9elsT|AQ!td<Zb3uf*`!Lx@*~d)AZ|VY-tioYq^0Bp~zzSj$NO8jf7n|A1(nG z1@5z<`K~5FuI#itTR^bEw1;~H*e3#+SiADrTc>I~TNMYoYz2x@4mQx~jnJF3U8;!% z9f2I{UXxnuI%IExa~axsG;LzGy9;jd6ksI(R4 zCt`~E+@inaa3m=V%(f{Cp2tr27-Xz+-@G7vIpb`E|JNyc9l@7R329CY*5PpVYq_(^ zTB42ezU(jdum0!cN(ON3^b>%JazRtvp-G@L^{$!)RJT)b&(sBS$RbUZGpE`9c~HM3 zYybeYNkH;gHEPf@0;ybx0UXU8Nw9$&>-KJk0g`|d?DgZ9L4uJea1f>gPC zfW?61>rg)QzJeYaI3o_ia*$aTzuXQ)|C9ELc>2dkgzjwB??hBZcQeP%q`9(@>WLUL zp37-h>`B4xj{GAvXE2xfyf4GDH@j648K)%O?n}4SRJ;lQfotP1{|q-2wteQqD`lkm zRIHP4o+NAW5WTmv`}og@ZLLJS?{se>MWXY&jo82|5-Y>6vnYz>K#ZJZ&;!B{Kc9b- zjiE?ZbD#6*vL1seH3VE!(WJQn+|<_96OisjKD-0jf>cL$pD?MeSnZ9IUUjLTn}n<2 z;vdZZTR(SwqNbUP?l{{sW+KE1YSYD@A$Waoqpn~e(|HlF8>`EDa%kPqrj!J$oL`W{ zw!~@na3S(PFqu@`ni0!3<^IA~ZQ)$@rO#XS>K(2j<#ry8zQ?Z2oQ__lqNb_ARW!Q; z%2&k1`v3HCbB!;_*9-j$bgzH@a81lD*!k}d;xE5`y~ptWvM$}JTw^g^Efw95J!1W) zsk&N1K|exoWR$mFoc?2u#&EQ270fYe_PFeZ4Fw_XI>u-LNP>*KM91EEerz(s zgX$P339}TxQX@{)%V^~W^QG)%_4h_3B{Yp8={^OvPZhc8d-nuMm%=M;{stZFeUT_W8>y?kk8EgR@q>gw|BKiA zN*8W@|Je*wOckTs{jwWek(TA$J>ONoCs{F$o7kshZdg&+cWEZ*6DPn^3N-_QYAz9K z(2dzM1O)aW1DMrbVqTihucx5sUxI(I{swMzNq3s-0R@j34>^ekUpoQOZx9X)%hU2C z@be!dyPs9kA^LPRX&qGvvOBT^S(8jN@rl7~6))^k?f(HLcvb2az)=O1w{7wWz+zT` zYel*jK~CGKrBo#V8WSuc-whDd+j2Avi5C!=%zuc?XdsH3MW~H7CKs#cQe#&#<_`y` zDNisVpYp!X&6O;V~EqnIXVm$`ouOTK8c^usRh9_I7e+CdXN zMfa*zEv;Hs*`@skd#M7YWUk+IS=E#t#6t0JIz9#F8D<&-{fQ}wym7SMc8JP%o>^rvI$O(c#{Osms*}MWVW*HRVLEVtJ4~ zuJ~@Ii_QgVKd1Ak`#xHcd}eNZm!(+X=b_Z$I7q2 z>7F&bQbfOAQke^}6d29WPjj`Y)$_J*+27mZfAR=7SSc<4xZ#(b{=A*w<{cd5!eiQb zLVXk#8TWhZ>uoag!{&qc9ovp!d5ryA*{iH@SR zvzO6&xng(kNR+%M)Cfs*)q_J6%}%`0#6p+0>0{L5D+YbAIQmGP9{bnMFCj1bYwf=301 zc7$+V5rT9qta0S!SJ-e8aeOs4u4dyAMJaQ^mpe$nC+O30h6JSaV*I9epOT35>NU(A z$SC1G^YlFFic$AF9b7bpt#@JP&6%HvGt%ALr|_Jen9EpJ{>+SE+U0S$-FvJgB1j7a zp+P$L9&O8<2|2}I&P$E{+Zh#wSG&RL!PNvyxM?vbixU3?C8;Kg?15yf$3FD9hSIgh zo`(K3CoBGr#^j5Bu2w3jP=!y&J)9z6#qZj6w1OH#Z*J0xuyEx_5XkwMY{LQzrX!|a7qy* z9b+*I6T|GDQ|kQGnif{IDN_q;RiqmV zcDHR4++g69XV61G zE6lRS-ZhG3F0!@_Q1gl~hno{#l@^}J6|0xrNphmZoX#i1(&<_W9kA36cEUz#&8o7W zl+8(cQ%WVr+R$Y~xrm>_C~kQ~dLZH!^57G~4M1&A2<6TE%n#62g7u+lwP-*;kz8o2 z*xj6ba>Af$4hT-PpG2_;wqMbBy*0geEpQ=lCUXw_Dee!-N~ zkb3GXY3l9!GzBsTqTduI2X=7-BdXbo+i`)_FL3TQ#{DDsEt$d#c1JNrB7~Zw)0Ip$ z29hKwy!O1FRRbe>eNjA9F20wv+%&L$4$0@kn6RX8EH$0whLtt7fG-Y?2dz ztw4^l4Pe=V^s$~%FZ6^X`~qU*J;4D1Ap()^`!4zD6@WCV^i-knq2c3yX<#?1LWAvo z(=AUh{(!i8NTfwT3Em)Or$8EaL`@rx$B;9Ip{)dZO6pU{mIxv_-rrsFohSJ7qh^OGtcff2Qdd8bei7PsD5Cwf1=Fymj?>Zf9?zN%2VW>t@jbEu zaoDbZ=b0V6_=30x#xlwRfpxGDQz~$@)nBfiIqH1tV`|=YEKQ;y+H1OGq%swMV{!I` zfqkO($R4S^NI7GL6QMGnp$kj?zqa)_H2P2yd_i?hBtW10!>@=&G=t=r|IqKC0D3x> zR&hYpMtsSl1%VI5m-GMO?B#!^zV8$q29T!l&}qyfrqd{icF9c@WQJ7=kOF!v>q=!_ zDA+lO7{@u-{nM1L;pBwBd1ZdhHs+MH)5o7ZGEL306c_tuesJ2S33Ifn_BsCSzkF2O ztgtg4t)Svr_Gl8_1&K)0} z=FaLfa_dLm?)5d+$+3xu2P2G}HpjY+3t|hTLY3nHagzDVtn`esdUH3rEzgaT<|m+$ z?Tfy&nk${>v>Y)63sC<0S@H+tO~P@KSwi`Xo{`o9gj)=DJT5&`*2=EnSeb~SuqtiO z6MQqHCZ(BoNYeOvqaOvPKRj35!7}#1<8LDtccll~bpeT1hcD~LtW3tB&fU0OE}Pg7 zSwb4Y$6nri7(p}Y{0TplWS5@V)S8P4;T-w(a6F^{WPX?Kx+5w>m`9VphYzU@4$IW@ zxiC2Xg$pU!!@E!mqLv5z(x7tX1`8CG;#k-dQ&a!1pFM^yM-(V&0?&0t8)OaK{li-W z#QMV*lZnlmAUKuQi079bTCdY6C86H)1iz9$>ori@qJ`hwX4Oo5bwT%I@hVs4sN55{ zY)d_F^1Je=eAPEb?i2Mld7eRHZH>{GnKeX4+eO&_!QOiYHMzEJqpsyr1jVRGN1`IV zNs}shL>7A&E7D~q3uy*~Nbf`lMX5@aB9I`xCDcHY+kN>w-}__F z?EP!M^Sv|Q>=|bmGfD0{$#q@lah}I<9%o=2&9zzn3^(!?Rr>ywwhEmaTECSjG1;h_f6>Bh0TE`Y4s^G0MJZ#}wQZ(`N-FWh4j0&6{ZkwW|g7D`| zGK5(xk_Ggo>ut2^3t(EUl18;sZ&P_vh8B(>zV*}95_ZAS6*kB?;>0u_kkKBdOpjG` zJk@J647w20+mzO#vDG=VA&jE=ZjN8)!ROE$%rJO+@1q+hbl%Jzz)vY|ls+(PYgH{y zvkJdpPuW#s4WkK{@;SBG*Tc%*;GC1_S&7bSUU_bYsW1H} zn-%+Nv8S(Et{9_lhnR#}B?kDHTBQu-?g8&q)!!1NaAQ^kXul0jtA>w3Qf1Veg)!Ra z+i0ux$VjKFsYpJ0eIM;JOeC$@>80F~l z%Ng0ln)?W4{(f8r}I65;Rs7BHN4Cw;4TWnGxpm~T|L3G3Z1@#KUhcF;jg8D+Z z9j~`hTdv&2Q6k!k9X0KmqkZ`=PiC>TSV5;>4F5=XKhAP)dt!g@Nv$4}*yhl`qMk2Q zpGh#3&+oMqFB~b8Qc8RV7v;Vwj(uW|=XLdG`LNz-b76~`xm=qi=GDAi)9Gm$jaMu+ zUa{u1&yt^h2V>G7?b`akLE!V*$xQ)@zxnM z-<3U}*b*VS%P7EJVg&HKP`9uM<-3(5jjLNRF#K6%p$YF`X=(-HBMwgQz73`YnFuhi zjg(Xg_6mN=K0|}YR=HojcuX$9y+ny5aCN>0>zO~{=xA&2;HEVGy_-9kmpAp5p&w08 zW$1K;0j^}UMCdBV_b9xINeo7zI3 zhDoL!3;P|miFa3=r7ZG8bEA8GD}B_S*49_zt&2@KjY}_b5zMkUhA$W>B}-Z)-bn+F z3OBxi@+K4Xh#ddjSV;T;B?ymB{1||D=RP&!` zUWd)~!|YbDv#8v*-3P_Yt^`!^Cn~<;WxhovJM5KK|iZ5mT(> zC$?*2pkFaJoh6F#XeTdlB$Fw;r|zobD`%En)Cj9ZBkp>l_D4*OR)X+XCOmP`aO&f} zn!n&|;3FrTylhhCMm*Cj>h4o^xc3wq+X|igSaR+?@C$Bn($R9&#ivUR3P!OmjpT9?o{b1JDai8lbbR! z2cm3=dj-9P(3!Bi`fr${+9*wq3+|W_r!ItQNf$V}he*(#H09ErNl#T0gVNHQn+VH1 z2UZCMcDlD<0oeDB6Lz0o#tn3Zil~=Jnq|3FE)K+G8B|>`$mH3|(wAtJ?lVKloA(3C zhIp~7LTf{{-R#qx?Gyb(#wUl|z*_9$|JbdLQfj(^>6hJ(OjtabJ;5@>#f4?FSmgn!4 zIMU&6FFPljNG$Nf)MuNg-rYQSg0;@&HZycf$=?{oPfr(1enCDMSWMWzN+Y$OAax+Q zYp2^{N#i8egTCU?Zl9|BUaf|UtsQ(qp|Vf>BCfEBlkQS?@{j9Qp)Cn6Qst%xY^F5V zu*We;F2(2!(t#u8-K~-I_=-YXhYx-yI_8gOfX1jbc;rA|sW-gf?UkiI*%a7k>jGh{s4wza>nq>;cd@KGDFqsR=JYcf`nd1{`0(3SV zoDbp_jHmFegEZ(w6!D-5oGf1x)WFg75S%8-Y)o8xkfQnO8P*7CGzoACyGSu=EPEZRTz`@>70m?mQ{_?t=H_A;!eaCJ^yhw zt1qWW1=TyweL>uPT+!^whReVPZAZP#*2(pGp+N0q13WZevd9-7-9ov%J!e`ddaSQR z?PhO>A~?LqWfzmQuYmH>tB^0d*y^-ZUs}?Po83e=W$pUEuxByy4Y=;>g}|U7oaNrK znx=@UzT>X?N}ud$x9XDn6?3il$X~TqG?$WrtLWePndNlrO) zD^FL?(&Zkq*Dof6zbM&~vOH58jw3!tmVNS8L zW^qqd{sBatL7re3m^|C1RH#+*s@sSuF*Z>PH-}O$rbr6g4qn8e+ya`lKxHBjS_cFA5R0a zP8!*VLH>TdCwM)`dk2ATH}v2v7Vvc->^v9||IOFc?WZ8GV9mk~ojn9NxBsEp>6jL$ zdk6UMOawh_78jjXxd(Ua7gjbzyW7r(?f!N@1mAghv02ztv-v`+g6w}#{J>U2yDYf*gep3M_n#anXjWB zOi?5spmRb$J@Nf8T6K`EN4bc3gW1f=er?0llEWE$=nBg%?IbVCKCuvSmBc1Y-$IN< zIc1hj8f^#n47+&_x0#UQMLKm=@Eh{?NLq%`$*7U|qO(3i`c}zgzODeJgRNu<_^>z0 zBpQA)M3F9kgC0lC?SS~{5i`is_8D2c?M|mhWU88Y_PMK#&N$ihD*OHzzfJJOI;%(T znKZ=PYpw(bzkd*hy+gY1L+`rWcF*0s?aq4wM`b}FyL~`F{@{TASV1~Uc^1BD7_DX= zg%;Q9^cm%SU|Yz!u#}gaR#c0*sqMy>t{CRVEpFhG zNj&>+hJkv60Q5lBx-k@FEaH#t5*XQa&FDzeNb#lJ%cMNI^sMZVslF0QTdh2_t9+o* z^8GEX23RCdnP^X%Vvx41k<*tF@5jhEO2~=Uc`82UQwN_%uef}GglUILV7IMkw?O$* zT`;yYC5SSF$NI6jw6h$LGX<*BGsII0Xh@cto^N1tYmlHmtJKGytKM;(|J5kI*Pb_- z{BFNYNZraWU%+(X%R*>rk!dG@g~BpaLL~DzCE+w(yh8wNmIy6dGH0L_wLgl9DEc%q zo*hM4wBA}u??`%YUo9Zmi?~x&TUi&$`tmMdfuBH<8o=x38>rlq3P2fKEbABygx%8b z@JU>f_@X@e82dHVG-K{9WS;6;C#MN}`*XkVFk3npiFoE+aoBG&K;dlZBe5h)JByqs z(r}?&@@PAI;czDF;nV-{@_Qf!hwtWjf8X1kp!3sG4_F^C{P3t*Dza_hfh0(oIGK-$ z)Ohr}b=pzwuh~N3yD;AIf7x2@n4J91bN6ie9@<+8`qJm4_QfzYy68P6_?aDXeYsA$ z1L{?=m1aJktr>@c56tPtjjmMbgj#V}giY+atwlv2kAdW{gUKtznpQy^zcMScLL*r` z$?AQQ`|-E;&lv9_20uo6-ID^tXo4dnrF0BWP`loo53RcteZ%9_b&*{ESMCRfy7kJV zMJR|<39<&JPX(DvLxq|J1opv9;pLHJSAMxvRB0Uia|Dyi9b$h61o()VDnuo5H~b}y zDbGqwvjTpo>MqaoJ|;oDRaN6mzVefcvg^|~s3%Ki;fm{u9fR${Cy%P#tNl9z*`*d3 zp^fiQPgBvnS6=#*?zxYhNIJ+17;s1yw_883$g8O|+0|Q8-_A+ke|D59cTjydzdht~ zqwux%%W*e_ZeWKvDv^StZi)dC9|BL26`kx94JTY|2hH#r{s!1uB-OfqJP_hH+&xTR zn9Wi(h5Be<;`ucymQ3oDPeN6z=r z&$Q_k9GC8$g(OZrs3_Q(RO$*f_}wy_chQ`ZtXhJaf~Y~ zypUH7m8;Xa&55r%^|m5Li(ceiWm#1b7KJjuO`A`em7dtYe^Cv1YkmG1C;T8dA(J|- zu)F_ITrQKK#fe4fYrnx*D}QL%91TNhPYp<}CoIFpUz5`gh?E)*dd3Tq-(8Fjc`tRo z>YgCpSNs^`gh;Uy%I-|N4m4DsepBz!>SKbCt<&PjY8}Fxw(532$uBwK)MoUX zuAqlXu#;{pTtdzI-l8#y2Tcc?9relFxOSxL4Q>AF++m3P=J7-;}Qox}Wg?EQpzDJ;wa@kJ+XJFb&*tO<+_JL@ntwLR{iR9&9rHR`(GK;h+|ce?01%1fK_n%+&|_2uzy<9nlC z*LiYF%hSP9>zvqb&Wn6AzT3)YOv5CnHF-iN@NCRHhTiDDCNYi{pa)c4|2{nDDp?#F`A_ zOpcrz-`S5A9@~C-69l!(mI;^*yOhcvNt zwd0^pP8)^VaiQ>o_gcKjekPFKh+ffznq~mSe-dQT`pAk3$Q1E6VinZ^O6Ow>5fm0C zh}HNM*@E4dK>}dCnokF*x>=S~y$^QdjR}JtfaSuwm>M9D{=(G(-!=4QgNl4z5Bf%T z)PEg1&$hpgZ6N^(KoT+%NRhNpW0x;@BVYIepq-oo-c1m^WdYbzy2J{9pjC*#uHt9m zEQi}n4MH@cvHxoVT@=R5!|sAuQ9ehOXYpSRX3Bz_<}n4>tCDEG-?;=ngGBc%@Yf8g znFAlxm;-u^m`euoMDT-3?frgn*Y6iordj+)u&TZ$%w$_4D}0y*J4inOFtAIJE(uVZ zu=&0P;_AvLMDB~f5u?Xjkegz3L#RCqWRgZ!RV-UQx&?7%60w~O%*(+QMLtYJ9d9F` z{9!}{ARHDTlW8)XmCpM&cE=wRLTJYr0RCg03u;$J>?jFg8;RvLkm*J&c6E~mgUW=@ z{kQcp&A}M}#(wDotvkC;+Va@t78)m3ZXUa-*n?Qr1RM#T8+Nb=mYxx46xj8qgPg~< zr;_@VjQH1obqwD|%)FWg{VR&zYc%Th&h+eDR@Mxbe}#?A)`q{7_PGLil&P0Kst0`= zdH|h6v_j%YPITW&xEO*n#q$1lLM~aWpCNs<#X7k}w-Ulfj&y&g2t+93HV2AVixCHV zUWJx-y^D{3l>#?a576&1xK~zD8k@BE%uSyZB#N6Z| z@j7!3Qp2{Wsgxifj;&w@2mN8|iZQjOO+M}bVD->aj~umukfZc|NbX2q@!fWQxwKDk z7|y=DF~!t$M;;(z?%3jszYblUML+eWbS9b`E0^(o?}|aX9vuyPl=$>0)5; z19o6HgUIV+}V@ z<}eFWkreNh-!`K{p}BPHYu~gKfIaWTEl}HuP>xf*_I0~hd2>y<7p_+kVKS)9u-PB; zbaC-MQpt`>l}PrFhMpH5GkYmH7#*hJ6MNy@}l{8 zEYK92MZ zjIsKc-|XsEwony*uy65>?a`B7$i^2WpLMtl-kj4sZJExry6UIvpOH2@hk4D){y)95 z1(dswmSR88F;IXGuAl-qV@%|h-Z43Wh{^nQXtWUqr9>kDb{-%6b?74UFmV;tIeie- zs<++n+hhzxgk!84;_6o-3J}2m4}B|6|L=V((93D6H&3A}769`vbbohuflCMSZ3!{s z58rk94NMu%N;kP&O8VA;E4I1825*R0nwDiO9MU%or!L9fi)!z1@*MFeLWk8#GlHCu zTM3L?K2=~P8+eHoTbZS31)iXKNuS96nsXvCp2IX@&q;(W5{G>1xAtfgV3ng8LC?Tt z$#wPBXZ8hDJ59psQ*-C=5;Ak4?E*UdpZ~gq92Y2wJn{XgKgZ7si4Tp}V=!9dO*!$c zT~2Y9@l8!jdJBaX!SD(t?(4AaxA_JH`N|F|jOU)uWMBV8Ymn6yr~XEW@UqQOnvuDY zKg;}cl+4CD^?S}8ltHBG|G2UR4(J!&Asr(%Q{GwfEwJOu`tx`zhH%Ahmb1yH^Kgmp zNP9l}T+&>5;)mndThvMiwLl58rYVl(sx{3%gq*E(kS9PjsowePQt|RjDzlDuLYc2- z8z+v-=>@EPbm~45)eM2o;mbSE-YscASbLbzVM5n%wy21h>0f>OuKvQ13M^{+bbz5P zJBu>52yuU1lYg!EIPsakv8x(6H=)3NmT8o3qg4cVv&pm|7B!Hx++vG(i;a30okER&|>i(YL8P3jN zU9Ajxl?e0Hj$j{Qqta6gL^|jj_rGc#&eJ>BdFZWiR=&-xI$1{4g%)@K_Azx?Ap!QK z*eNJn%&cZBSmV@af9mOd`!Wy)z}d!)JiVPnGArRPLc=-f_MBmUbQhhVgwxKVQrO9Z zKKawUH5(!bRrvzqOdY;RA6&bXRh*`8HhTCr-D>a989tOR#-Hvi_ObhKKVCz_>Q_QA ziCccY(c85X87!M#b=A4nX(qyv^)9;m62gP~fs z=-d}3y_C6|x}z9o(?r5P(R%9(_!<8Ax1xNTxN5Im;mNoUeHj%NI?{NJZB3Rc<;WRw zk7#WYEzIMoa&od-n5t7!`5^Rp=4gIW-G^!E$G``wLWnDZ4pkVY(GYU9*6gE%7gO@) zJwM9Fvw3OT3L8e3&B(XM?jsuq>fg-|k6YW9^zWDwmVgiwwz&niPm0~*E|z-7d%~EL zv&IHgRE?Mq-%|g4IV^_>EOA(QRfIo(Nno=6<*}oeUq7$%vBajM<8;(_{c^xLfpUiD zWd+p{k|zQBvqI`})OJnlAr2Qg4;O>XOlBrh&ua2xWi9rw;U8DVjq2a<-76HIvTv9| zo*s=3S^ZB@?SHemEp{6< z9iJ%Xw&K}+Zl*d-BY=^S&-A7KQcFr)M_a`iWjiR;SQ8E8VfA9 zt22DmuC94$Y{u96>;nupDQJO*CU;Ly`md=-G+(Mpz^HTF3h!bF z)8Q?SY%@;bP{^`-^^!Q0uzQP@g;8RNh4d2Hh^|=ndWR+4aXSRb%n@YYCc!_}nl*bEv;-u{Ha+XxGq4ib%>&y2DAN zK)OZ@=bC7c!ENR>aLA+*QJ$J)kOaJ)A&fN`j9fI~!#tzSrxmY^E1S*FLflvqY82U6 z-w>^6Hzhp{C%h0Dv|D%(IBPhP`u+BJ!02mQh{!{QoD|dUT$Q!5VX}Jb0n7g6{$%=M z7WRH_u)km5=p2R!&Xn@KR;I~mbW1imE2hQhXR|O!pxM%9U5}dst0#JPM)!NuTuEt* ztdr-0R?DQ4l0SlnKh-zBZX4Vsl8%IkVVf2V+TF>~cafd3>HvqFi%BK+vz|AF|t*FoG=N7q0dp1~lz*H|(O?det6 zm7jp}EWmy*&;ya(As1>7!b0!Nl(x?ux1||3yra94(p~1ODDczE<4?kJ9*sYS1-y3~ z?;`}A#N{ug@_Y*wZJ%SUweeJc)IHvRp<8_`SHcp*Wcim#yqNn^It$o<(-cmG>l`S`~8j2kz@N6$O*@&Z_;Z$ z2p3z1i~sJRX$xd60k2S+i=CpSFV@k`lDaRnz{*H7O%={E0F9Jk4$rX7L^t?E#I7|f zPTA1NeK&^QPR1QF#Q&3allq0>MV!qF5t00RauEzynky}#WL-Co4!HcojfN7@D@!{5 z?7h9$(Wc3Mjjm0!j-o~V_&{JyRCoE5+XXnT# zx_e7d;VIH_Ifo~Yn!=H<=C*!XUQN}!+Os^fnW-&iF@04=s0`;w5Ny;IE=fly$N`bu z>@;1BRb8-qY8vB9th((vQlias5tX>9_l0{ea<%ID--qE!`Ux)-w!AF&Ybd-hNxx}9 zQNV|-6O)PxH+@Fy#}UJ4u@Aim+zNQqqR4a@%yQ#-NqZb6w{ScgE<<=R>K(`{8!+a; z*w_W!*NfLs7rZ85Bj$0!*mTEJsHv1LXgIKg<9?KVfeL1{$Oh)4#@mP6Q^GpOs~k11 z3e$T7+_j8&GK!{*czQS6%E~o^>-0{$1Wgu^q7a!33&nVs|%6D%uourQ>&u*^nN%g*`(A1=qS16JUAu%!ZxKMIY zs~b8~mcySY^I$&HSQFyd1G)Vm3v9>LM6ivQHgrFLZKU5b4YeSl%;&2tPU4(|7D#f- zJ0hSQXOk^e!U7kR+dqkxP{48u~C~U;y9c1WD-NZRi9m4-0%& zZUR!sgblk)VLLcIy5Y*4ga2%&<$`JA?FnF-xF$d@g_eZ5SXaipJk;tA?qCeJ14>!b zn>VOfR^lY$*P)`!3-c*G&-8!CV8ArSFhFT$tebfZ2>$ZPcH8CN`$8_rUByp8UTG<^ zxgmu3+4Z|P^RS@}#(J>j%(8GlKm#Ba%KV9)X(Vo@Opg~si{4O0V9PQTJe#mD`!mZ z68=4b4{_z`pMpeEGjb=w5z2|015Ge0a8^wQk&K3d7{=Uz+o;fYYsT6aeTv)Vwzcuu z5(K6c+O=eNzmq{F{4m-7iTL79S#eTrPl#H3AM3_RgLRZ()YTfbFAep6{Q`y~O%J(_ zax)1r#E~+sY2FcO|ECOnBn`336>52;RY>aN^m=#rrV2omgyS-;4B1KuF4viDt-k&I zU+_in{U6=f76Mp^$4@d9aDW4Qr; zDpFm#gKzaxUc>v*g7KwqfsBMb&323|CNQj7^zO%jWCgyyL$gA1!oKtzhD77H45i;hQqp>`|uB)q*J-Kz125U;N<^g^6<|*R;wS8gHF_dBqp4F?h@W zkMnFXjOzx?N7Bw4i#dc_anr@&?WLF6RD(@mFO#2fbDz^>d`s&$2B9VwJJt}L6L}!( z^Fzv^dGJUZ(J5LE-EMfX5S18i~I7n{*tz{0!JR<8#UH}o+N47G$Pt< z{59XqZ{M$dx;vzB6MVyl+>V3B?_msKmCh)8$ z@#KK!Ne%0*z_Yz3krjdGQm^DGZy0|~>ra=1Tv@kSr#_}ovAQNlBq*2W%rNXJ_bGG4 zkDUyMCj#29N%tjn5kGD*w+V-!g#T6H`fvX8>)Zc#N+SuRVO|9A;^n z*wgm+A%5}a*%DlCl3hl+3PxQ9dLl9{3pof5PZ;QZ~|ME&BCM8 z&y9vROND&PzA(TH#M9kP!-KE7l7#>KR#{L+5B`T9VO)D7&4hM1&ZI3{thp@Bb1I81 zYPB-Xc&guW(7PmQuk^?lcNcYwmHYoJQ7SlI6Qum=voubHeWc=fz3j4g>=NS$+*X&< zn)oGt9qNl%J5HMrr6qI-2^+TB9M~4Jqfx1pS}glpa-nhcaTUsmCkpq~5-xZ9D$hw! z{C-mF9$H2a1i!TnbrsKEu9BLe**r};Sb;bOX}N}Ukgfi;!YantzBh;pq?m*OiC!xX zMw<7itp#V^F$CEjweheaB_C&iJkwA39Mj;L{W?ICka8mInUhq9-eJ;yzOBmBH@0L{ z@mT#E;_jo(jld(8L*@3@n#^2hao5+`+I@j3iFvCG4#uvb?#k;j>G-BUDLqT8CR7}% zpg23OaiD8b2D@{`MpZDLQYd^M+kTq$7RZ#%Tz3KBJW5zOZ3I%M-L9{HAQ48igcji1 z7=o3y|E7J>_Qow}9T+(GR?a3hluGYxoOqZGS1lY-`RKoI%=ePGJ%MP4jrYIE(iWkb zD+KPMKP1I{G<~K{ z%aDXAB9187whiS(Sh$4dpeH8!{0lY8W87^_cTGdx_0($%(MIr}s%y7t*z*pmt=jA^ zJD2I}7YW(-(6fS4oH{-g+OUV=^}DkDq^&>7rrjX%^4+hjAlbBPjk% z87paYrIY>-_Ei&B9JhPte@=-1zq8x#MKlvc>3;?p=^$1+H_O=5b9c4q4b)T=V(4e$IV=S*6}`32DjnZCBn-)w zij$)vjogzi;^MS+y&Zdq<2ggkZMrIORfKU9!$~>M-P(c zD+9}AydUWFBTd`t9&g=FxZE;mY?*)4GKagd_}+rR z_EKkGap7t`^XY{DzW5@Z;stA!hcmCtVg?$0#)P>vv(0f7DgBOcK@rMr9_ffJp^%HC ze)%bPda^wzNnSR5WBPdsTW7P`*Id&_miawPJ@XTf#{|uyU0!;=80I5%xFA_8CP{3zcQ+XRzGUzDa%DQ8YH!e}L%m@FhPUDU9)pZ{)n`c_&s2R(4 z_+;As+ibWJFeW!|RZL-Bf(-%G8V}rkTv1k4+tgS`U!kT-2ixBgt*gtnqOCu#R=XSK zWc$GDi-3~wCrU$k+uU0hTC|_{xtIEvCcGyGzlj#RE_o+}(9fIr#zIvivxbta|Wz7EC)S zXR4Ne(X!}Db+Nh=AuE8fd`03+bsf5&IA_8Ynr)b2k>M6VdmDenOa65qlGyuhvHwF0 zMSS3KC+$e-+kkfy?j`r!#(SINo&~r*dzRONe-pQ@;WD?LRXF8nqo*-G>1bm+X~fm* zezW8t@4TcoyJ zdnB^xqoqRaQ_ICW9Tu&420P{boi@s&Z*2w{#m1=@o79Xi7prye2Y|hpg+*=9b+u1p zcvwk~&t2~x4v|2=z(!AjZ`ZLLxcR~^rMteYTv?22OBEKOrL3)&c)6wO}v7B8*VMqb$U<@eIp2|t-XRjC$NYE9GIj|55SlaOz{3~^{2S25ao zJZ7Yfx)+YY7NVRq(t-ePCOe@!)S2+vI?;rSnxQV_IDfODwTl^h&ZcD*Z?w#=3sFPd zN&5-AR=#Po_Ej2|vjPWW&z!0jN4+2Kqm0e;mwNe{Wc^uY2m17fjZRd}wvfYx*Q|Rg zjL)^rDju7d0>r4IzIk75$Yor+k#(;RpMxxz(}ni9`P574%hdTf-kpR2&6u2C9w;A8$B!-J~&^(tT%e!!sZ4CF^xBeSDr>SpD?u z6K2AHKk}*&bM{7OQl(%k}v1 zrQ2kRDX}?K!vtTnlZ&L1efd0Y@|zRF+rAbb>r1gS53{qpn13{%ySt6~fQ~17KPR#` zUt&I>RrQZyM5)9UVKLeW@nX5m0IHdPK&}e4CVQAB%c55E*ag&wCoUgQrpC_(x!mwj zcvEB}BPY&pJDw^KXRxEWIT)H`*qBwqJz^wUf3=T;EHjaSCWfm?U(8?gkC*QEYYdf( zF=|!&FvxGnZd~Ps424}A4xp(Bn&#_d8B`?S<2OLeS<(_HxabfyrVafy0BNHLH=1`l zOpu<|>2&^;W~IWili2V&xF^rUiT6L2sp@o_R6CZ9f1j9`(1|*GD~3smZMW>8l=0Q~ z?f9w`S-n5-x5!8`th8L?9*`6*N36KNs5OzC(LP0v=lF~d7Q%%o$`HUcs;Kd9pq82rZ$$D(2u|6af8aY;j+mkc#>Ac2MF%OTs6h!JDp}C# zoHW_r%q$ydb!AH*jx3BK^>!M&2vp{X3ofTr)MCG>BF?^GlB7Imnvx1 zts4R>&9LFa9nOaRs~KbW%ZAsKpcmWXQ=0UWQ)}piTm&NV2_iENe)B4Hcy8NQ963BtuO3e``7W%7d}46{+j*U_|{+Be}$=? zqxydR%DXfg{M38T@fma!2Pi1g;{H4mluJK1v*3^8OC4_JG#87RI;WJO2y$zNWyk%48X31rdn9<+r>3m(#VH>}F12&g2W}}6ck+$nRJx7h)XWOu zb75-l+cEDF5kF^DdwuKHJ=0x-vRos3Dq=eY)91OzD+qBt3M#(n`d)WevnIEss_pse zLTVj|^L)&u950xwMUX6(AWlgP^%m1a z-A)=P6o(gIKW&(v^{5ZqHyjdz&1?BLm&Rhpw$vlb;Y@kNIN)yq>lwA(Uxhxr>ojne z#u?*4YVN;7ucG8N4{EWy{T0pgkh&9A6UlU*|FkBT@nLa_FY!@Z;5Vgbdl6$Mqy9n8 z%N^T_pQT>c*QZLA%wBsE(x-s8Tbfb|6N97;nLk%>{W0l&UK9l)dpF{t=oZ{FL74rC52H?x4aa ztv*a}%9AvY4%wbhO+$2B?~b$bRT9RxcJcHvhR$;D<5w6RT0W~kT$xevwi5X#ik&BP zMwa8|UmX=o+NTDU-8DxdF9mA63=GWRF--fx?9QB5>aDo_P&=^d>A+*kUf40avywa3 zVG`|{S6u>sM@1W_Bj|fCsP3&!N2s$$@dkw_AE2MwmWoC1DNJ6A_3Kd!h4a!h&^-&> zaV6J`>dZ+7ae}o2&o`TbB37<}A2s9!wgv2ccS(dZe8PEVwBtDI+A4-U@B>KjiS$y{ za(hE+f9IKNdGr^%G%il95S}^>*Lc|yl6)2(?bObvM%T3rA(d7pvMQ+=xcDn#^bYICrIR3WTeClaYXJE20xT=_NM|q7H~}7 z27bNxXYLn@E%CuxS3DyV9lFF1d^#`r>j{1RoY*cU^V(2Qy7Q7(PU5W}`oJlZ-&Wts z?AWDK?g#ps%T*>8qvnvUD8G)`%UKEIGrq}}GF|v@j+-VsrYE}fsyyC)Qi144LdO>v z=RqM;35*ClPuqxiOf17FvkKM-A+mJenTYPP3R-1Nlqb#pUvc5X?r)ezzHG6VqA%Ha zdT9BBt|XgJ4D8|A4}}a>O}tZPkk42my8emNs=KO(16a8bXZ#OMnvK#uFdD+W8f z>CsMy!BqOU_gTcVXj`iYws}*$w%g98glPa;?{eaBky#hMUo>|9he2&@1h*Z^zr&oV zLx@2%Bn%?yBCgE5*b;>HVQ#|0?@6(VNuU$vBS4c&>3XbdEDppR zkCp(qgga0z6i-evy9gNwyw3khBqpcns;-dPy_p1tD2@kcAO*R1r$B`GqNfM7fa@U2X2O3fNbp~Q0-j-cM(&wK_7(x-|m%!ib)@_FckdmIY`QgEbKEZqOyHJ2$?wQQ~p4CSmEU z^}-o@mca-z3eHw#WIU$@qj4GBIbRpQ+3(q=fru(uQ&fiYeYdMF&YjFN?W#|WlgoeS zCOoBwn=O~IaKGnfVBsRV6MHFd_{5DXsFEC0dGbiC!_3}%XtF4sZGdfYmb@?k4^!ZW z^SBIMu7lvmt%Q_1-rSbu#raIh)|e%~9}Ve4PnPDpYmr3TtZcMAC5>9hzTZf*AdoDX zQ}rm*;o4W3=jiungchtDk^{_~7Y}1T%efvBBbgTu}iMf|;ifmTJ1o?HLZf>0vv?NMY;G;S4ea)AcPSsaMNjt7%dtm1P zjwkO4_*x%!&Hgga6v53mUVUQ%6W6-xVQd*&9GWe{sV>ol_An{8q;4fUOPb=@!5G9g z=p1q8r}uL(jsnRDpkpcGVcU_F#mEH2v26rDJ#&JP;{6_TjS4jo(AS-YM4n$Eov6t^ zH_#{;5aMj<-fI=iGFW&vyuH~C+R)z!pdHq;FD9Sm(PZZsmaQy1yI_{0FZ#}CFpgK+ z`^wMtpJUKwNKgFLo?5~una=Pn4-Z;EqxP&!h<=JxLV5u_0u+Vh`hd}8k!GK7?%VrY z^)>-w!$P83+5%~^Qm0;GaRPJ^7XN=KFbB+`W9`3noFpsg6PAs6t=J7YE_{`44I67B~-t>B;Cs!y87<iJz6l|fl0Pq30hozCv}E`R5!?Xh$?%26uT3_D_e+6sMJ z)WiFuP1ko1<$}ep#W6Mxifu#r$Bc=?i^0|iXOkp4KxUztzw=tdkSmyTtYnba_6%sB zrn`AZg=p2haA<=x>Cewhpxup$5n4`k{}vt*s|ug9f`~}77k#&Ei05eHio3OwV%F@z zZw#);twcT{0|7s~U<=sB<8R=EX#svK^bWHCze?4Sir(igP5i^);{6M%;*={1WFr+Xz7MIp8U^nz`iUj7Glh@!0CU;U*2_R zWm(mb>{?YEn_1OJrL5gCFG{*vfGn@g$FkwdjKyKE$~A+&k%K-PuM% z;P~a%kx#SK6meajWNPgy&&6gKe?-#bGBvxMk2^UUD&p*z6rgkb0|YPxC>DKZ%n~{~ zYG23(wrZbfET>-LdKu76kE29gr1t+^(%i#{8#+zLSq>7a)N=J6d|TZSO#4$X$VpyW zyC>B=*|}`g;PLy~uO{{sDQNvgjpdpPzrpl9eOA&gEVm}Cs_`KW_c!LM#j=TfpHdh1 z*8bppOb$ui!ZqEO6A30X45eDWZ2Q{UXBM4$rCK1daarfguS0Udpt(_ZbK}mCT&cYG z#=2``Q&Yp+b-B{@_57f9uTs~PblXxnvDb6yDE@5yb6MZZM2TsCi5oqCK@~& zswal4cRZm&mc!Q^Jx<+tK~96L6WYQl8fPU;U!n$bb(6U@Eb!*hriI3t7jur?l;}_} z)xY%G?lu1ZpM>(iZ4!zT*!-_mTamjmi--faD#CIXqBZ~5AtxYT%FBf`w)*$aJp>t{ zat~rh4$suU{@0`vpj`Occo-mujM<$KX^J&7!3Vc1nFGMVn_1QzD}}h3fB_5JH7ydm z6G>f#{G_)AS@QoWb56_CuWUhP>TuR8Y&7D)mMp~}zz{#di|d3;7Qmr$6^kM;bG3-8 zGd_jT+dkOFIPnQ$0rUe(fZ{F=G7j7YXKp!-77P@2ut@j)Kqc@YQtyGziSI<#t@qeb zy_eIQZodol71$QyL7z)u=qUTa?|xMvls$BZ?EsW(TV$|q7Z{EZ3I1n@jGI8hZbF<# zqcRQ_BGw3^5{~+@8SX)yuY2z%^f7*=oo6>48+Yb%Z*_lL_1o|5xh6}(d_BJoRh8d9 zDP=ZaB7n7STM2r0KVp4B(%aQiVx-0`#vNqRsmT1aFgWcfGk6v{MY`8q@_Mvav<)N6 zM@o!1sA~)Cq4IfLnH(xlPbpIu%J+1i3n=MHQ*LUoVI^zxtYE8ZLJ=Ot6XKwZ$xc_I zc)zH3uDqj?^r#+499OFtjt`pK>tbxbolk2|KbQA>O7by|fB9?I^LI5aYuT1z+3tF3 z?yREtlLaR=q}43m7Zgrsvk$*?gg7dUccZ9p!5wUnVX;Cs;-Hl!(K={aA2n4I!gbbvIeql*C_YBr_iH)=AAmj717-) z{XdtBrBtL{Y7OXGvib&+v*28H+rl3+WHzjqmU@?Z$$NW=H#9b6yB9Y!ymboB$jFEi zuw9oE2WM7cx;08PRo699*Y$~vzW03iWJYp^XZ3{FT21kP&Mb(5+d&zmNS(#s$uZ6n zIE!jc5m3$n(^1R{xj7y$4Mv-Wsp&|8Nhz`S6Tx|PMC4!pz*c`9f;e3PO4nrAW5*2X zo*?fHUzp3hx@&6NwWozYZ}(e_M1}eLuXj0v+cEE4zzD0DCIk z4(Mr+WvmLt*#<>0#@a2t&K%cd_m|K^@(-VkuLcBQebdVh^ z61hw%aAs0DxZ0#V^bpD+QZQ_W=o;TZ;?evg|W@tZd{7#7@oU{>>r6ygBr-f0YDrqFMiV zRLO@=S6Z(Ui`-tzm64G=OK^e43;F#Ls)6-vG0GEgHu`|!u`e=U-@{gf1*x%VQDO0# z{d}a0UcvY-h)6EDY6yGdl9afRZ^hT8;B9MO%xzF3)qts7FiuL1lC-LC8iPckVcf}L zG8#wn=Ju)8Z{+b#npK0Vw-1KB|Jvh+u@cevJR6z#jp8rF`x8kqe4K}F0S>YCnO z48$SNP<4bxh-HYi<5a<0QLZ$-m_|;y{Fz8wO2nG*RjO5fA$_5RN7i4#q9W9ahKNw^ zy|}wr9_b;!9lFOO{xxguOiWAnURuUx-}8StjKz0oRGYIl|}GfmSLf$2*d zCIXILKI^&(aX=nSHM8p4FdA0w?#@D(4HDMoDw{tN%ipdMWC)(Fw-%}!s%oQe$;r;& zNafE(|GXLCLYRN6dnY;f(yYX92LdpurB``%5Lg&gK1(?G_`4ar=L($vB|(q-W&5}M zs8)*4&INl|Bx&^j;_kh|noi$#QD-cuG!c+0Q9*ig54W5^3eyPdoV0LqS1Tl1_|ZgFB1)28YeX%H z_Te*^_cwXlcYLNitd?nzR=B+U6u)X$!}o%CYiPr-QX-B$M8dV=9M^lOKy<4cWx0H^f%Qv!14Fd+@cKB?fLVzWW}N)KV;{_^wEK+iBf+}x;#7ELHjS5poi1pqSRRt~ z(EHiU{|2f1@t%FNA6lVF!dxVp;oXiz1_-?uIeJRQ@Q-NUH|FH_dwE`FN?~CMS2mV> z6x^9Z%q&+?J8~79R#7_#>MY_BEQVn&91?8&G5}F2LY7s3Cn$egwEjoIvt){~kwlR+ zd6{IHlWqw9VKJul6fyz=q4#3)yol3V&K&KVaP*Tx}dzndsZvCL|>(C zQRsetnPruzkM1WAv$~50WhQU1I%<c*~8LIlWGc z=wI)$GmVnEmOeO@>v}t>wJtg2$tZdrHm8=P)C97!TC|Xts8wCF;RN26Q*_F?tTr?s zgPUT0)Z6E*!Jchq!KJ}pk2ltJxz!!SN!!`Dc&ou*C#QYhj!#Tow2O5l7<7_l+~2** zJMR%{U&b$OHuBNtVo$Hgw9K`Zhq`cyg7=2|Pd_6)a_J$R&2n8193)lL+5Q@E7ab}2 zQEH3Nq%7YKNYP%^v-Yt*9+vcSu{J^sA66#0S@@am%iu8HP#&d$8nn^CF z`(K|LvxqYnos0^<>xGd8ni`{T&a$g!M>!Vm%=0s;M8qT)m z>YYK^MEW?NQ{+;O$i-P@lm#!lytOT!-Y-=9-cbowbUT=j3Q94@Orj3$FQuK6Zo2m&UP1QPK*S6D0r4#g-Y;)@;~5t8=y~&)j~#Vf zo7eox5R>gWnAqTx7gKK=N!*!U2{IJjJEkOf*|gnvcpxB0w9a$?)frS2 z8G#i%EHlNvG5jyO?r-(n|Jm>gHY`$-u1&L>CnT!PM#E0Dh|wD;o{2k80JVua8(wEJ z?PqbN{EcbYlgtz&v3%@=5YNVrkAah^l6gdK{Av$^|A%XyA}@auUR0l(+m6=}&8c%G zDC6VTNpjp!PN0{v#14Ih`iEOig`#&$%{^zi8^|AfGs zJ5%0?&V9w&mdT&Y*-kO;;1sl1jh@we;T1w3ud`_bI_)2*9EhniEP0qf5<7-X_{xy! zu00-G>cq2tWgjOp|1K46^G#Jx^CLAx@!T6k0#2$dKg4#|q2OU*Vif!F4AcO_h2B8j znlmKAgpjWEDoPl%b(R}>{LR$rj3kY#cTo3|L= zaca7%YWBXdrKus3)g=&5obw;9MwC?-MT0S!%Z%4T^&sdxG(#oN&huyq@n!2AqetPqFrWi2XkFqEjBg%W<65hy`=s7VY`si^y9 z&(&s~#JPg4_JT_$@TGb`-qnez_i0xvUPiL~`?o@~XW%hi<~eFVm<7Ul_)vh&S-)PJ zuzVUU>u70Ku}B&G4l3^1BJ_)Fzkl@4`j198YP-?2OT^M^&E$Ih2U4Q~IvmpB{py`< zRygBgD(SqA_5&x`I$1*A^weheJ*&Mc)^Cf3^p_6kaV|Q54GQVLElVIM zPr3+ryW0N_%ELhGdO!p#56~klonkp;Gg+g*mKeVYwWH}W{cC$%gkyG3#7@J`GYq2! zEpt6anjv#8p@&4(xBea2L57KB3jS|#k@g&~cd}*Q2o|k^hT2rleJ+zqNYR4U9F@^Sp$u@KOC z*R%ImBjrP|k2q5}`-Pk~$Mw>C{0?K0LKiKL>b_??9rvv(^4Lqc1KtBx1EXb&^>DDs z$Z@^6l4Sd7LGGsFdXvI*1v-Om-R1Ca#MW*(^EFEv(DY*~yo6gm%wzag>@t;S^UGh; z@6Aw5VC)Dd^LoJ~;%(|oIDb+G9DbInF!Lno~0TATLm*w5`enIJAmKsk)L8xiO0=_vhkybYRr2^AGqAvqm3QtRNbS)nhi zX#2#J^mfqCyDryw4}NtGoibaW#uM!tTqzLfpIs4XCgr}%?T!LzVxfGek5q-E}MZPdfHo9 zAWC6A<%>-wTBL`J7zlwkh#)?Pq?7zzW!$vV6w`C=RLQ<_aGBWPG4?O6njU?eRWNPV zk3+K!&qLlU#nxS^E3@sSvUuev3^jPCl|POc(!vhOA*H)NA)8-H@|L+;=m(cG;KVGS zf_-0NbYm95b2=Wv%xpF}ltaxx&#RrkaqB}Z)vmo?X!YMCf-M4GZw7CvCE5XmdjBU3~uGdmfr4 zUGl}rYqB^NWEEVO+YXJi(IkQIqa6uV9aTkpM-~Mi`N-}svER>rdYtCUIh;UyrMDVI zeH=JOQT8|OhE5_x^?7v*bpwqHpyMSg168MC+3Fx)>Iwi2h0(1oI*Qdr=vGyIK~8rg zQe9CQVwI9qU&3kJxzfI(bM@aN@rpTJw(kzDEy8L|KiN;?mGF!nr7Al_< zmk2Sa(_*nIHZSDOeD5h6WKH5;{PN|;2Tzh2bEtv5C+z39iz!v5?pGQKW%os8o_B=V z@tE-JJo1G|7gr1F8P?=6lVrnFZQku@dkqE}``hV(baQZuriUWjS$!}v0mK>dd8f7e z?Vqs(*h(fC*WSLDT*J)5Y^LltFmrwZ8Q1W}DNJi5c6tQ!)En&{ppIS7Xcu^rWxJ_n zHR7;vGl=1`fI~$Mz8!Rr@c_$Cx1@)fihCcQ0*fCS}b>Wb@(X}3`=6qjr z2s{MRJ{vV7NIO@)dnxKXw8I?N;W=-5>V?PIRbqi6nA)(9y-bhWGA&S(kK;s}FKGRI z;NZ)C{sd;kf4j^)>*4T1y;rDv->mai(XQ?dL^4iJc5lQ|+rx&{uwR?Y&*s5$uTmG1i#liQJ%& zH#Z7RsdAK?)6GtW1DG7#B;)P7OO+RMH+*1`bE-8${tL_U`b#w2kNgqA1 z2GAYY_8$14uGxB}cpwq=vAX>s{`2e~$jf*TY&}6FzMs59$I^Ij`*1A35Bk#ND`G%L zhf%!o9tuV|tvj=vxoM(~d2-O7Eusr)RXH}_7S6q$gPY}RPa53|;Mql%uI)=3m*>|f zUzJ;yK)-_4vvnk}aU;yr5atmbmIY`ESHSaLRe3(o&_)z5x!JO-!ZbACX>oP)&FJps zyI8xac6oxTH3=7)8@)@UiFC2f(XGHBv2&KU*{_sXgwQ4LMXLXMM2KEwlb><#-FKuq zcG~Lz`*o^YXuh`YRhOXdLe~9TLeu969_@D6$U-MxM`J$l$ZgA|>fFo}1H*Kr05fhE zO5_qEPff-*#$O^kN3-ks2DgW_xTJd68^b@`Q{@;EFky?pzVVT<#dC!?eve#|yQ#`} z!%{#RjIgdCt?3yw&vtxMJB*hRMgd^D&hpItqjt2c77{xc{ttkk5=U6HU=c4+@o2JIIhWcS3pVb zpui-{t!7F!ps5aP!gRL$Ql%1H_vKUmTNBnIGbC{T}nRGTkDUvFa?d}^HZF4x)b6m9R zkND4hfjChcp@EEB#S6#PeeV|}R`xUcw~E?+>2=Uy6af83{`1*w>$c}f&sTa|oLTo) zNJUYdHm&^yYI4JG@*N*9Zl}NgkYxhtYhYX-2IQ5ba>^*{42v81Q>-u!Sr-e~Sy8X5 z7`%T2voHdsLjMAK06VwA(D#HfDni#E}V&=sATGYg>Jj zlk2MOFDng?>O7m<>c3PeCbaOCwWZS8eYNoP88otV81{mZr02KpO4G**h&HwT`m>Fq zUhnLy8xwR|t{yPkJ!(TYSVLmddFWfv`@r1m5^jz6@Dd`;gf<$%67z=fwp{vY$K&!- zUynXsF;1Vf`R;c&!?S_(*z`n~A$9Nh|-9^D9^0ND@=(q@9BK8Cc2r zWiuzG$~c0i6{FkMq7i_X^$V7^O4P9y*Q(3&l64)tDpBvbr5QhKW?l?Q$bO)7p_iU^ zw5?e^8KMye}Y_vs9pVBD}op>d*YP^o30MS>IDgw6*# z*I6*}v#i5RrcpGaseW_Voh?=`I7fEy#=HHFPcmne;$5N2CRn5SjG-U5el$=Qqj5%W z;reVQ^#XeuIqyH6Q zNZDF4wj>VX!vP9yjJCwbbg($=h>)KbnSY{NKM?8`6R9S<6T|wvh$;)=r_lsB<~ZQ^ zabnHYR*$DLOsKsyn!t1S<`Ay7349u&mMH9eH)K?JFQzW{)-6qW{9Xa%!JSr5l{T9! z1-fGf5AZ647QdrVxB`;pj!28PI6&bnZ z2;C{JHsOsj5>F8&na@by%wyq z4D+F#Qlu^!Z}w}^Bvzgw1rBtM39pHKTx3_yrJ-#XD`IH=uVhhIOK-=-<`k!KltV5e zKzMk?wp;lzb$dlqsf@@2C_-+ho7VxUxvOuiF zE%EI;`puY9ZXb(hqI!|FgW*Ps9} zgQTM@qCepPl}$y-fWELAq{M&uO`jZjrVJgPA-wJ1=Y{sovbg>PB{LAogA&jTYMKPTAq13p<28EFZfy;`%6yLdP&k0VdLKfj6JTO!zyGh*{ZtF!aJVgu z0zgPB7{2>nh3rZ)s~?vWVuXv}m=h@VWeX%oatxDiyQ)i6bzRA9DBz;)94K3Bw456i z_cpa%9z%N~oZ7`Mw^Es@; z**e$2A)PQY^dA8QItYdMB4VRW+&t<;M}NGQJNL<;dqKDEv<(;K`|pYwZ|;70|EKYL zuGIL0KA$X)$5OJ^OFAjQ(dyxkB>O@8{L69H4&tdAc1gFUfvIn)?9Y`Oax${r*N(m5 zL|?;&*_N*4te|_6p<>PKk|wH!q{(rku1@$)dwl~BGMOk2O`>Yi@FQu_(cOD18kR`KAf? zt0mm}J@3*}i!#Z|HZ@bWC*tfqvPW9)wA}?YaJm?{iNak0WBYL0R~Ie9Kr(X~+T_`~ z2#gK&(`fswkhdIsxKd%8)9$nWiJF4DT*vEX#OrMRKTnlKJl*$l6@JhMx9jpCEzdew zB65Zrf={`4OUW)yY>9O{ql&tEdr;s}5;+nqlK+x<` ze|ek0Ood8!O+BXO(>&y-IqMWa3y%3Qv(R_h8&MbGn=4R(7M%{22@Y>&{KmU#@2+A&cg;fNE6IGe)O?BiZz zu@7t>_L_4lUh0#*9wn!nFFe~^6p4%Kslhr5KDyC8qseJ_7WL6?7}LeJKMA(NXV_*s zCW){s&kzJH?X|g&EcAT;zD)J(&ITKRHy?8!7&G%Ro3V^Pesd8t!4c4}2NhVI?_Zz$ zuM+&|t|sfG!++SRswhw&aH*|(S{w@egM!|a`rI#gs(2C(0GD_r`9(Uq>|>JzPp{|v zp%VA<;B5ETT~1zyQNdf{nfK9^b9w!Tn)<}fzwnG>>1r>0MK*uBkKip5nyquRdhMebzNZC?SA+S`Gg*e^MXu>ou>B3aJMB#ZHTr6 zXH(6Io*3fpL{iSa`z|-%YKr%aTBQ8~ti9&XYCzV4Es4o~Bh&{?J-MW^SY(D9_TPP) zTuq$GNr!C?=af32M`th~%ue-Z2pPt>4k?;F;y)wBx$|gCttU$$K+i+Wc=aj;G4#!g zTx~JADrEMj1IkdNGN*g)*RKVo-tPUO1OI=Im~7A`%+~>c%XtH=E+)_r1*6fsz@G(S zM`WjFb@fXW_$)ClV>mPrE>-nXQ=ez)X@Avy*Mn&vyN`%du~ad(+x9!P2%QMw`m-6^ zYn!1|Hrm1(p!Zk6OSp?`aqkCo0h+p|`4d0y*>{EBhKgIW1Sn3xb<> zSYIgRi``Mex)u5kuWY}m{AQ;XKB`ZxO9oXRUE69G2jM__V2+`_u^^=8WIogYO4h}& zo$AyBJceATBdg{kRc{)3QWV~eHv0sS1r^SZyOHG8{CLJ6WuKe7xixcX5o6mU?NPVj z^&!&LtMsa^0LQ$xl#g9q#n0l64Fi7hvPEbK;Q@EV?5bV7_C}m`lE{RItFVU>XNFnv z)vq)d??C(9Lo!F7jVuSyXRIe*)_$!;b!x zmP=lI^OzulRH31w=aslz@)wW3{rU9!%;o&;TeMufl4X*%+PZ7U)q(h~`Dy7?hr1HCT)eho)n2 z@6@gctE(7MYxc?1-DqgaVa5>=ZB{+_xQClP7IEVgral&DwUQlisc@a7y*vWOGj_ON z@8|2hI-O}rN$Qsh!4kc}Q4orfjWh~5ZKuVM5=iiz_GVJpP#B)_RT^L@ay zYQ}=3jIyT>4`zR-tA)Fv6jvQv^2<@f1W`T6oFBVkV9hKYI!BqI6FWomb3~2q&&bfk z(m*s&+nyz+KzG$guIoz0wHxEH9>EPeH5;7OL3y4z?(jRs`3r`pLWhf+o;jwI&2pcW zO4|+@^5c}|Tcl9K`dpvqXj;&djojM(TW~9X;*zu1&->$I!nJmZ!RZU2<@3%NOiIZB zl=>)NyMPKZfB!C&an6r*YLp6@6JVTu!zsQSOb@~#pe9UAivog|qF7b>7yd21wnJk^ z>RDAJ>%wre3q=H@X+t~CoZd@lhQ4)ib}@DvdbI82WU4WH`};Qi5uS;HPTVvbeg@rYlUyvoUEeLpvhHpo-)BkkDi8+>Qx~I%_JQI5OD*Cg6`Xxy--UTW}3xXu%0OjZ(b{x=-4?W6FHN(9 z$_h^R97oq2u#9p%_FLE|i4ztFGfwf?1mZI zPPH^HY|x=5@bczjTqA2^bHbzy>BBfga+|Bfkixelw;`qAjbjg8RR`-2V+v1-*vJ1x zZMRcZhK%h7B(Cp^X%cTcmP%zk5DZPv^*z&RfE7-05tkXjI`Rv{e6HvCtr=P|v2)Og zhSr^$H3cPJq$=fhlUBqk_ED?^7eCD`>*s$8J|MG zw@s^S_9ibeL<9~WdgqYNFmBO59qKcn)bAOodsYMLFcJD*JG&tARNV$w@=1i9$tPRW zzS3uu-b?0<6=e>LNZ%c69xXR*n-V zis_!=NCS%eP>OMs03_lI;+bM#KvR^I3TwQ#+FJNYdfd_XA!}`&F|75;(G1Wi z3@iW(m6ZYmEgQAnA*JBnTE(5Of;eD{4-t_4Y z1#%fyIN7=yh9WGw3dXHXm@6g#8kozcoePWpa)r0uv=dPlOJs`* z+$$Sy=#VZcemnRv177JQcTH2fm1q0jfi_KZP_mHp;XjY zl}ITWx3_kAm!k_pa%F?s?vH5)_1U;M2Yab}z8g@BWqIjerS-=F&f$C~gr_;6e9D`p zLR*Th?-xXrJ2hRHT4}jR6T=3Tuk39`w#m7`T>6!=1nuWJ#1n1!ZP0nEqvf%9Cmu($ z;Br#FW9_qUtdX{vxkp8AsNCby`@^-48>375g-*tl5xtu@8@?-e&KlT%W=aswSiAq;upSveOBXFkgS$& z*I}8jUNydQa17A{2CZpbQ}Jvdv#|FwcxO$v^LHaop4-I^_SoZg#eH31izf z+)m277}=vL-&f?NXt+-r-J<q^swZm}&NYOxFdr1BcOVH$X>@-Y-G70>pbk3R1tpOm_iI+MVRnqgxmO z0Noe?wdvpJ?Ot)#YgQy=GhU1nJ+2-LTD@PsC=a_{45{$H)f~V47$UWRIevv|$V}~z zM;|1{9r|$tT)(IYuuvKaObzrg)S%z~%_)Ez&47OxPEXzzshUaN?}K(v?oI=*`R~k1 zFneEO0mk~u2+aen>sSMl0b^-Bk>|DxOwwgNh+z;#$;@ z<{%g~`SY&f9a=OPV$=OT&xq7tWPDIh=3N=dxfwt8QBLsD>zs98rAqsdCz%1}L8=lK zx}#zOoOVL7M6$G^*H{kerxk3rT>a#1jp_8K)TU6$uq*+Znbl{8TszVoV|UPE(zY+@ ziFuG=r=;fZV9Qmh(hN5+lf{O>PSOq=|Naf5==>OnkT1hfX4hG%=o?4L_pRoT?Kh3t8+dtPpv6KBiK zc~VG3i}Wjvk6g{|*fdQzBXJ41c%p@U2wD>&444ZO+><7)p~GDandI{f3HmtsK}cd` z?@Uz)b*Q6F?NR4PT=WjT9>VRU_tx5AL`}?da&Xy+NvY{DfI@KVQ0HZPdXUt(9qYX zRU8CPNloDO)ZfrO{2rfDm%%dzI7jL!y6kcWGP*>h^|;=go^GG_aP%lHy7kV-V2QHM zPo5$xrEOsO%RO4Ml|hG&XwZ0f^Xcbb{uuj;2zyR()uqS`lycNWJ}Mz_-?yeI=6%X| zG;}@(h#9)r&2V!0@>~uvRSr_7=3K?)#KV8+cGSr>!U>iT@+#eE?wLbHvk0}T)m4zn z9f|jSARyrXQ;cWeQJsQ>>-0&=q05$oecN6`l-jeVlAHySUKOm4?7#gE@ksydi-4l2 zBC|+|=?R=MPlWGUmE6rB(7xXwOf%=9MTOb&Z?(wwtGZt7EgKBS8H6MS zBvrj~KY!ZHa#xKX`SwtC z5uhj)3*^6{fmjFsMaXfG9~Zh6F^G|L)02d%wppWqwYErjl`*wksGlm^0wB8^fBv_u zep!yiS^gh?E_)VfMw6M%xb}8mOn~`@Av=*3NiHy-BGL@W^_7Kqdm`Jb9{#G`y%)ZE zE}WBvXIBIcG^6F;-(L0Q-8Sc{g_b|as98y^mv75bSDT6Fjke5tl;gdZ?qa=T+RZo8 zvdnTv4FT#fVWjF*4TLXnO|z~Ssot9@qMomX+Qgj>xcW%rMDvQ4YcRTYYa&G5SUJ_7 z=tldH|AZ`{f%Zp9(!^rtHaO|w9W$3n7Y6mT$u7J$G)RoPQ;D2+$-|uUk)61*6#;n_ zTXs1Sr}*qw95Ix8s&UK`{4EQdWxbKK74{UVRP#;3MFE+wpB@$QO%829TNzdIT}uuH zE@>VJuUFstHM+hPdlH0A?$X7^dHNkQe*&*z)nVKA+f0HwxXqX>qIK0Ce zgb1S_a-!FHW*AoV@G5#iU-v?L>Q9zf&d&+DIdPJBf?%-N0T3 zF~=R3{Xpwmn8_@EOsS1jd8Ed=F$Sw+%r|mi_!LZ591D2pVb7^Jq9Pl0LlGG8w>j%( zdDxT>Cd(^-NSAr`XjWyRrfy4b;=SgTw-tCR{;TJ@Vjnur;K})ZhBV1=bO3g>1v31Y z>35T~4(a(gRPQ7EON6Pz8s8re@C@dPzAGV&9;wq;-v zW@Uue-}(hCt;FE}bS`9r7(S&xUXhixIG&uVS;WS+&P(@mgFwEdJkqKK$bhpOQSrXP zv?h2cC4Dqs*F4l6{);voDFbsO~WQ}<%mcfz=k zy3h47(j1?U!iM%;b+j{GUUXd_>2O;fPK7-vN-QHj#p}e~3H{{WGzB_)w15_y5ZNzw zDwzCBb3!NYa{G9R#r1j{IAwD}E7n}*n*z2d+XKKP2cc45V-iVD4_U70xh29xp7RRk zDB2yvwc-$eI}VnF=EbisbmtznlNfT;A>$9qJT=}XJo7GIn{9LN>Gd#9uRnofo;V9m zv4w}+t%(a9l$j5Zf!6Jpx&aNh#qLmmpKGY)-~eXUbCECh}em!OIZrIh~6uGW;=J$;=}t!td8SH{?D08ZWCUBbT9iB zaPg0u0KNcL$L8_ezei@TV0L){u4(pp-&gy8i?Rh%2%#E7e&>g*c>|_TPaEt&C3KJO z#4?sIViDme+*b177NFF25)LnH`E_Tr^7xsT&^lwd)v4e1+a+>8! z!R$-dq7OOC4uJ&6%ZA5xLG-P?}M6T zYAJfO5xp!8yq}u4ScV{4EK!x4X;Oyf!cc?y85lwv^iWOd2q>5q=}cH09sHN#Q&P;h zhv=0DTK^siL3{Wyie>=@HoicCFz@Nsj^UZKaHC;?wt+28(Lnv5I*Cv**@0kLYc;d47}sDJ*u2>{_sR_NAh z7zhUwNAtC)p}x#qAR#{~QEU?hI%cDv4E4O{qg90$hTo!9=DVNUnDGJ<*T)BDc%`oq z@958zRsOuLxy%xIfa>Q@=q@vvZg0IuU0z>*TWLJtvS1mXusf*rw7!4SZuc$1f{ANG za?gvoL@jnuTY!y2dp*2u=W@!DRcXSPYW1aE|8d`7jt5-At1%QEufE={!|PRJ=Corh z9k4B{CNPJF?dW4r_bRRxT|83PTdIpY_C3|)qsBc5s`7TV{b=gk!;$c01?O7j*Zcb=g^bM6 z1<%7{zqQo6XaMolf_nWt6Hi#fGQcMwIkod2a!0{_g;X&k0C2fY>Zh^qf`<63572PO4Q*nPXS<(4r+g(z#FRTpNAECGO$wN&|Pa1 zc+&b0&^hX8ZO9H6c!Vr;Ya?_si5+^V2;(Dc!=k+R&_G9?pUjM+5cY(Cp(Fv2&n>-q zelM|8tdLje)~;Fb`hM_wcJwwZ_ASV)Ga5&a`GS5UkZlc&2GVngV8ya^U<&NfM}q0s z{yp;dwZ9-EPZ`4Cwh_--2Mh0B|7QYIhhbectapW_7zF6HROo>%*e4J$*fVFuBDug& z83#eHNS%TVZZP;nShvM@XMjZFIui@sxlJD=81#dsdNUtAhEoP#mQL4x$ToPJ^a!dr zt6wP!axnSBbKlEu3#@v3&k@YKy>;(-rLp+kS9HI_8+47am9Dm@TVwR9w*JSvnKLR> z#ipb17CCBfd(VeUIa_AgmD|rgkUvJ7(D;**E3RU{4yB$7bIwx7r!Lwf+u{~?Ed$Dp znq*0mAH0S_@y;+ck;OZug60{Upj+?4u+^BKZ&sxEac-3ntQ=az3dE&*i;UIFeq^)$ zeAD3}gw@g%GUE%lVjWNi?@OnJ_==0Xuz`np^g)+#RPOoyHlWb=BrApMgOyHG$HX-s zpU;<^wI1BS|A=3IqT1}e%Vcw@O>%(UqDe+R@fcEH7hY%?E?KeNnl$G6zRtY(yvwat z{<5eq2)Di7%r}48yMtL4%s+ei7W7H6Sam9V=4%hjk#QZ2Q{xzl^Bh~x8;9iZ=>aEh zB$P&UkXJfUT|8zgXuEG$__2b9LYeMAHz_rY;LB^(_KtNcZBxCF2pH8`iGBec4fTee z_nxieUhAMFb1wE;7ZMziJfnb z`qf4Bob5#0U!z7N4@QC$y~*^f=kUe)rQ{y3!M1tX2H9<|QhAL_exYS|5*7^V2n+KT zd9ppTUc5nh1Oh7#T_>eVMPKM)=+LZWdJ%*dfv*fXi63UHEF)cI$lp!}B+9=*JR4?Q&kHwx?e7`+ zVU+w&)t@{D8}+|jC$ERw(~P3{nLpwoQ8RP6Gp+Iwodg~TH$BOQ@4USHr3vO*we_?* z3V)rq++&0^xmM6jn0?hhVX^H>^cd{?-iIJ4cNpX?)*z+W7WuY>x|J6brH8vntsZ(i zkPia#eSD<){97GCn4x~g*-_TXC2AAv)GFs_JDP9xJ^CDoLpqN(4wF3Wa=)#iFHDt8 zd7@g1K$BbYLl#%g`p1=@7B^fL(|M_KokE>8aYJ0;WF zB;Rbwc*u|W=unq<-~RNgkL$+eW`fR86{~i;h9Lo%HHvm-cvWoko4(FBhS^2`+$AWdeyy@QnQWPBrgxQdjpGUqMIv zW-|fCH9xJ9xucjTf4)gAu^wIxJpezo(W+&7dLQKd zd*tO&#vXJI+z|UlRqaZLl9-c(oihzpt)PAYnI_=PIKev(fr6$8HV)2T=>{TU*P52h zs+2^Xx9fn+xcvoLVFxp2aP_B$qB_vKJ`grwc6NHu`@kt0`r}#}daMEbpyUF&J9;pU zWeM$q9O~%7!R<5U#@Iu*4imQAX7?UL4}a}Y^`+6@l36S0!+z)hVO;#*Bicv*J%Rw| z{fldi$k885htmJ49U$hYE@-`ZJ7kQo8$*A3cpa%76i|jxwVtd*JaPIUzdb8V*R=d| zr~`-#e%z|$f3!0#vk=GLP~YSuZWC`hiuVCmfl2NC?V5xkp0q_lBnskSkwq|VGN>1V z+a~Poc^NG0>N`mHX{7TeFQC)`;i^EB?$cf%8X&uixV>=-dBWqgGCuapRfK-5JB5UKf7V>Z8L>B{szD=UPS#@&?Z+TE3~ zR|APg3wqZw`T~;#w7&)f;Y{zn(|X%wJuhl-w%Kd0n&eNP;HPdEGvA`!XUB(jzfzSL zavKv6azX5TujE+2Mr2v{%|bRP~CK`lO$65IIj%?fi3_y#~`}tjjuwWg0xbz1jD?Us7C`PPdwe#=4&N{P)PJ zKor9&nauEjd2$d>v2oa%=iMn;=!xo6L0Wq)>?cagkakt8uG=R_l$lkYt`u&vNnV1^ zLm0x7bNM$cn@ReAu!hAhQCqSl)^-cd(eZO~+=3>4e9@BP^GfXAs5AFoidI}QKhZCr zlI~D>`|Xzb{;n!fM#Q_nvQQB$P6`}fGhwR=ZYU;FeBxjCv65BE!i zm0PHVw!YJ0<2qg}V^=%d4+mmOyVd?`(pz`+E>N1y#8U_!@f5wHh?P|%6`5;V-ZW)-~F$$4^F?DC7*&je1+-r7^{ z1skm>F_O|wn8WQAjvU{nc^9W^9~&U|Now(9u5L;L9xY-Xg4zZpD%eNe#g1O;XA7e~ zj{Hi{#wnn_t@d%krR&zvN{G_K+YFz1q?owu9I{q|TC3FFhLvpuu71v-7Py*WO_qHe z^sS3Ky7exm)-R1e>xcdAwnXz;H(I)sYwI?Q0G4#K^xV;7CQT4?XIJYf)D zWIw*FqmhgqYkN0g51$B5u-(-Oi_C9^^MAruT$!9~ix&-eBa09Faq;w>1es1gU;qO` zYCF$F+^Z-O>>Nn29FVBUa%Ze{&IjyQ>hit$)ITgdh(Jb-Z2f(lLOQ9asydP=(%PX)fP;77y<8_mO$u(jqEw4)3Z)rtn8@1krjV^to(%UXz6MX-OVrVc+;y9i!}|aLP5Jk z?aYM>%rl3Vhz3tPDHoXE{+?q_@D(&~yItI7_E=m9LY)BOBNciKzh z0wCc8qwb^2$^Q+-|1S*#$WrT2aG3wW%p`ablF?_uiZvHuIMYGg0-}l%)o`K-|B%H$ ztbhI*c~vAgOwN4ptb(EfjJ$|1l{mqvAtdOsqG=h@FLU;obUaNc>rao65?$V8e0j}kZLbELMjlMj>h`hm04@mKU8XXd4(e_F>8^tD) zdzYSB;t_+j5{m8ArYwb1oX?%J;lF*Gk}s+txM?8M(UTKIeTAL_z025J<0y0zq+ax8 z)QMZ<(H7ooa=2h47+GyqMC{x5ZnnpIr@-Z_&Rni2k_k9gt!Px1SG}F-isDQx#;AFZ-H9`6o-P;R>2x!m+{d5jY$II{H%MsAg|yeXJ!WZM zx4Fw)3BIU?g^c>WK-XeEqsIxvT7=acv<-TMA@#lTN0g7jP^-Sk&|`<4+*fBhI2Q?T zC!H#BRkIyDo2dYzYbG??6P`$&v?LYTLERo2FKy6!{=rBHPBIAtZ`~fD^DMrL3ZPpk+~;Z zHWq6*cK0o%+6o(8&Nz#1wSdl5Le4?w-nd?We#tP2G9jpuv`nc{_)-!KV`y?sNc4w@uiv*&2 zmQDMTgp4;!6^fjABqlQcuIf4d&~g#3-302Q*Z&@Qll6TyLO=0Cu=6}m9InGv(o;~- zO|?=wpW8FM$A2hYcJwR4ozvnOQqe`W8n@H@D;-{(1r0Zpb99Ox0+gtH=rwl!e~&cwZ!PU+qr3kHZSNV?Wd8R1I^!TB z0wMxZqtd%HDFPXF1OWl*orp*YNEZoGGD-;@1p?9sAw+7VBSerSfPjE>2~v^>NKdE% zlDO}A_H*`H=h^>vXPq~|o26d>kE zAL}9ob8_=`59re$> zDLmxO8XZ;>RT9zt_JxwrcwXkh!-lnUZtJ!AgGv#u1_2Jc9?DB1p?ys4w>fg;beLqi zk5`&hf=|)oWQXzxw0_ZK6Kp`7nr>!I`GtE|ruQ<#Cw+@6>(Gq);frXw+ra?+NZXvx zTrKYHrtE<7uv*IhHaJhPl)3^f=vrXPNfbb!B|yGSt#{As(xDXi1>a7|20E0i!Z!;u z>UI00eX_#;_U^5Q3G8iuh9()rJ-aXxCXRp`bfEnN@*^EriO8b8sVqO>L8f~bgFINR z&b(Ren$*cElk%WR`6}CYIw!;V$a}p-Ccb7>Az>1l0%futy1+UO>dYuYKLn=!pAsn5}PmA{MmzJvht7~4r3F%tB*vZn7~O@UnWYisL< z6Bwkie||>lQxW~Dp1{Y^_24s{cyN?W ztnrdlZIQ|tgLAlGi$ur1kD}rN3AT`gkjf!xie7+s@fa!%{~*ga)V;wa+OMftTy;5* znGn+l(9DcBPJjc3Mb{yfy!dtMoD-MywDUA}$dpj5FsaC%!jg~r3p?gy`q7X@>g*FJ zt#yG4Um9`$=V!}%;_7qh*Ye+>t87J^_?Xu0C5Q6}c2lzT z3;-4rs9yqB-#22y$Fe!cRo&58u9Y+in@Ih8-Kk%cqTbuQ_gwq(KKM%r!|ROI4~H5} zC()A~lOSL9mewUCs?{9bPj~Fo&Nz>~w-|UK=o`GwW|1Y^-w1T+m?hKik78~hpSZCT zT_eGD?h+8LO@qGXW#~*LJU6fp^EVt=?p}e(G4gax8X6~D@{$oj5;>~b-rKy*VK@7r z*%6gK2>Gf))M%a7)2!*^=orX8@}o^!x}h;X^9i>CKklTOGR z(ge!-xBQ1FO(U_t39^r_PiDp6QwbZ~&tP!@f=zZl1DMHffYQPNh6HEwaos6EvCl*> zV}Xn7-Z=Ob7z$#%UEqb!Sa&ZRx4mG+g`La*g`d%p>c5Tj%pRHtYXAZagzU>r`W<-) zv5ryzLLOjtKYr%Tgj2N`uk`@U?{O;+uxp{uMxa7LR?#XafauXrX7zU+g#0@7J9r-o zv-_x6z%mlDXQsXfA0zKEI{J8y)H(r`dZvyB)R>NX-+-D}m{kn^0c_SfAi9bQ0~LNy z_3Ko-2!H~ZqdxB{rUTK`h2yLrUHh(a;MK^382G?7nDMVu;oB_iyarghNh#ExI^0?Y z%fcVW4`*Ruk+$ReLwvRkuX-XXe2>k(YaIuaLS>h47AOqD0v^5!$?Q$lwI9HRqP1<% zGD73o-W*0oLfyND#(U86>3lF|_xu?i%}*X7*gh^(q1 zo|DEzbq)fLUVk$bgwQkn(b+}fTs>_RUN*<6Bcjc=2sj&5g<&BWq)s z_?5z&PUstARg9{_Mmb@H=O&vL_~|1?G>c6@JkWXD z)(TJ6a`NnZ@noCqd2M-|G!>6tB}$iaaAv%RO;LL7UKEwvTvX&?Z_Wu4H~Kr`5-0w3f8Eb+>n|jl1=x{BxkSMWU!6(SdFZ^ z|EO8DBfG@N@MqvBI=ZIRv>zj#Oq9))gG)Atb8ozw>K(tEYv!ka&2TiWE?26uWn6k3 zdBtBA?-Nxmr})5#(_u5I*8Z`V)Ni+$g)YKPqW%S7JzJ0Fotxid^wdX%?8YZAp++d9ny%Um;iKwdEvCgSs09(m_%4(&9dAokxG6ldM zaHeW9cvNKu*rMe?1@M_VGT?op<}ohWlhDjFB@^}xkx`%lqWm?6i~e%^K!QG7NA&4D z4N#v=OD;rRqQ%rlwX_E Z?ob-q(YXSeR?c;)o%=e$njJrzAI=@TD+tZ%@E_|1+I zp}R`CtA(ctLERG($~WG|pTBEl&2ASkib~8hv61{dQ z@E!S5rB%PoIpEMi_k!ZU+?@u%FhXwkc8Z(eIKz{=+eg$m1|>y-D-|NN>@xL2Zw347 zc?M`Ot?z$Kn6(*g_7n2o7XujO4HJ9o1(EBf5oBhdU>tzqpM3wO-Le*eVLz9>)aYE1 z-R3rT;ihTbr*0h6@ql7t$ok$e*(4YEgHwk(TqL3p536-oIZaWRb-z1}_pzW(E5UGlTyYf9w$dgp*g( zYg4ZoPnMY1{ubzL?10Hz{KJO)MuL23nVucnF#pKL_<;{I zpT*1S2ea!*QPmeq62|eJXQ{|WHmKXpB0qxe&{xArhAp|s(!JH+gV4S?z*%I%e4EVA z$(B&$hh7!XjVbUuIpdt`u2v(ZD8OCPSY{kH6(-HnZT9pWvGRAbYW3v5i~{<{Nd~g8 zl3s)Bw7TFvY*^l)`bcPUWiy*ROth8Fxc}i!DwQB}$5##q?5keRZ%g%z zGQ5V_1%{>AFTlI+Ye-Qy4>#DU5Z9*3eSf?4`x9WF?Tb*se*MlD&~o1kzU^8#hX5r> zB5`xR($k}sPF7lk-Vk{1jZkJA8m`AULLr600EZqwGkC3g$Rsp4$K6VK?c7D{1b)Cl zmbi3zxNFBywc@C7yf1w- z6?kROHve4~Ukf??YIy8;`C6xfTE*&Ex92_$-iM622XFc};^qJ8SN|V&^?xI*|G)f# z{~G`Qn-!4+UQ7f1D{0N(SsZiJaPk6vAuZ+{eU6;w*VlD%gW*{=7o|*Hd7)XWJZsuY zZOMD9C!9U6NPoRp-4-}Bm)#&~*J7WuJXaR_v_bu^u783M{7c`#K!cCg6x{3$xmbOR zR5@B`V=H@mEG+nv6LS2yoI=c}8RZLa3eL>n1#AJFvgT1^7 zmql$|Z12zVr>EUlRErTDc{jqd;fGTW^ZQ!4c`37eF?;C*xO4I9vARKf!0p{{fpMkt z{I65HCm6sVnuvT2|0?YdbOeG*7~kRi@E(PjS0#H6bWPwTf>Mg^4Sk~t9VVuQ-@A46SKbG~1v3SwDu&U-*(<85CzhH(!D+~`rGMel&xdSv1K z-h-_%1J0Pq-0?-$wj~wF(N-2c5D#nZHFKv%mNe47iHG0En)Lf`J=`@m7(>S;pG@6= zyn-PpTT7?nq5fL52hKz-WtvO5$?y?J1Y z&0iwJ8(^{IRszibpOykBZ$Sw={SN*x#El@D5DZFxdMJ z5>1PQ#~k-Td=?&87Ah8C(~h(oWoY$#PXe#(KIW(9bzNK$n(jy=ut=u)+D^PSL9}R* zmmx^Q65P6ZP1%9d2Ua3XY0r*o{mI!wn=jr&`C5(`sa_OPLY69|X+F2gP;waSwTrv{ z!A7BHhwSqhribB5GBKEsH+N{n)oPh8XWLZe-V zJl{cy@u{@$Gmvld&U)bjxjEsgcZ2;x10_RmX+Rat>yig3a7?*Wt1F3wi0KKMg0U5A~tG##hGg8;Q66F!i-gnXu6t>P(tu?%o18FZdrMV!(m zBP?lsv3r-%G-(7`$KwGpej#oz4SsKOi?QCehvDj7eY{Zj!|f_*P97GuqmFjsFj}90 zwr8)EHzA*E%vPG0otS6K@@R?jfc4#3!sWanS>KX4$4?l~G41?iD zVaEVy_GGo3IqV5S=Zn<&Mo`Xe^KZ|EI@MKrAO762gkcAaC&Au8x%ILW-mOtF+S^vr z0>ZgJwv^nF`Y`=)>c;1S2@sFP+dd3}6Hj>Btr&Rnf!~u&WCJ`kFZ$!4gh+RDn|_DJ zFmFCZTI4DhIkkJ!F0m3yOfGxGl&Y}NyQi14BS@ydS+l_gkpL0{srR&DMSvv~?UxgL zSSBMl1RBX8RXX=ZuU^8>58tap87>*BxDT`Sgjgd9p-rWp1f z6|hz-XJc2HNEIHK6?xn$UCuv?@Z7oGRV6kbhRAkzmt7jId^6qpLD}&ut{1X^v_03* z*x0Q5ET_^Yg8(S0o1SJPhN3tnr%d2#x_`Jo-`0#9M^jo`RX9;*9mla)EQQ+e~wy2vsm-y~Q`pv_2N4pgwagar>f1~LAsNnyQE4`lEGyWlc~ zF#x<{cFe2bpY>EfAU0WC3xMT6g>y{OlUR)63~G4KaUgynrG!&2y7pFdSQ#Be2ESlH zs-2<1&O?;N3X`<9rq$Fr6GRs|_jJ7Hk zC|1xIpgD-@-@pHJ3}bicsvTC!>FGPWN?~8~OI60QrYF9@*-#9Bm~ku#Z{B8IfSiFJ zF{d{c{@=TP1{L!k_I*Yry!!#%cN+n3>Dnxy$s8op?aN@}e^M<{pTZHum^>8Y&+#UG zg`VqXB#Yl+aNKbUWCj*WaFZWt zEQ2?>hq@&LN*VCIqeVVHsEJq9j~Y?zr)3phrw;_xRV~WNPNh=JZ6B6d!ArsxOGdr- z6#!AK8d&0UfLii?VI!IZpE)6q-~lHPAHhIvRL`A)x!}46=Vr)JDRxvsPK?a7iI@T$!yEY{&rI=*0#8Pz6MywY2!0$tP@-hK zdsoJq-^AWD5+7Xv?%zhWel_hG5yyHD0SVjO*QgYwe$^S}Te+4vnsgw6t~aH*Q}ahq zThc@+k{S~lmnJun_H#gcb@;&)N;f2`{s(vw1ExBT%tRhAnK>GPfGEhW$4=YEyD5%$ zs=!S9cGo}`0siWt5p~yx$b-Oom(M%j4JQRA8>mhcSZA&f>@55_R~3AzJx|BxZ?9f7 z%@7Dqa4hkB)&20NN9AO?a?aI3KJz%}jy2keOU8oV&ShvK?c<>1&F06E;5(2~Q1XHi z@DXf8Z{aP{7Bu@2OkJDw&AknxNxmQOxc)T*G~NTyKuEo2FNNX06ab zW;{o)bs;z}p8@O=R=@uZeha2cdou*_WR;EAq!MlhC$n5nzYdTL`AGC}b1EjWDe^Of zJdKa$=e3)@GhX1-**vD_Pcl>WxZp!PgL(JUDJLGP+5|9aq*KtVZsN_%(+TtyUSPWK zK zunb|-PBVKJ=1tOyW0;XYS{=Q0X}DA60wo&7)|!e{iue}Gy*D=Xy74sK-lg8f9}jbA z-3J7`L1$~+ShbT?D^$}Yd1tu_Gd9~d0eox!XpLp0)Ia?>i2o2&chUS@9kl1D*EZYz z`dUE$1kQ>;QE#u5T#||#s8^PAGEoa!VL5;o%YoUjuJo>!Wn>jYitdSWi~56Ej46(c zhTw?-4Tr`0^sI*#IXNsaO)7Jy+wY%|i${$xi9b`JA=q7KzvI^A#e|+sIM7?u?DJO5 z5#$nj7{tBylyY;L(6doJVP_%$=|*pLG+TvT1g^i1tW@})#iyt;f^igXxt>uPC*e6S z+MfLlIY_k>|6MiFG~ZS`T(NF_qWX<>){lh9H~nOa@YA&=x?)8+?Hpzev+){OQIavk z3xFrmYaw<4P)dD95DQI#Nh~#(V0V6aEW@1){~dUyogJiwi>(RRA<$jg@4hio^m>xM z*9w4(*7q)7pr_9HJge%wT4Li2Rj&O@%bICuOO}Qp2H(Gl!t=bb?R`)ttXcH{jVRJB z9{C=BSN=`Ab!d^MkPTMiq))-s$!NzY72F6S6id=>rfH|(%_XSg@{2XUPU#U=9F=W> zAU=z~zcjQhN40%_=BlV{-~FNYOb!oQo?Wl|PLCL) zi8=9N7&G5?^8cLI_^QW85d)D9N-Ci63mTg|Cbau}FzZjnAZq8^=>s=WnqYF%o3{lI z#sa(={GxrAel)@!7vF^DEn1Awb2acQI=wR2akyq(%`!x)huifun^l0q>oQQ}R6q5= z-zm~*^=8Sc%%}xUS(2*WEq<9gof14F?os^X&AbHRQGL|Sq(1Ua{;MH+tlCh}AP+=+ zP%Y~5%6S8|LWQcfb0(T)+T%zE*@=>sIhf3z!~c#!`ps+LVA~AaH1YJLIz{A!^Nq@r zK!54X`L(gFDcfS=8WEN}$ku}$Eq^~GqWJoA^3OZ68WfrTf`9@T&_=VH75S4I`(`l- zwm&U<9@Hif#?TO+M3hzhbN*7{>}tzecJo^KrXPg>)k_LU^#r&+`Ou0{<_zO6;H3B- z#R0f^7jvCT2uwbT%u6y815Bw2PvgPVstwJ=tF-wPS}r63bjq*zYRlIPQavpNq`3eJ za2G=N%O(q9bv&Soo?bV1c&rT+YaJ!6+c=Av2FgJ!UF_r*;{mk~ z&x2qor2I**T=Wm`&Br>aAV{>F{I4*Jp5y!Bx!|9h)%2{t+Nj8-8liNfMrzn@hK4lX zUJ1|chO`Tft{5X-EW%?yLw;x8lr2{^%AEAs)uK(rmXEbeJl=k5bmVbj9Fq>LmuN6I zY!_fU55cMv8}gR*q)L{K#LvMtdLxvjEVTRUGs{d5Q`mDnDpxM~PBc-3XQsqeUia(7 z02^wzJ5baP-8>jzwi`&(w{cECoPbO7$nSUEsktPBGH-RWiZ$_zRKGb9CfqD{DIFLM zv`-BK@zHb5IvhsPqx)u>BCvR|&d`)bpXH-@>5p)o~{zIiUfSI1qCG zhAoo(Zouk6FGRSo;^%V=%)^>fX5P-wRk9p%V3j~y}s zUsi6J4|EEn=FZVvW&W5f@9ep!J$zFxM5h-LPv6`Nr_Qc&;!UqmYU)hIV$&QSi(2QL zh=O^kTi0qotmIOBt*V9FOtw^yx9n5nqq+pj&LL$LZAF!@A@;XVwBX&JA@wRfTrwt2 zbQ+pYIS8bcmtLJTEPLw<=ZyhHSH7(3N5QJQpL;GOrqzsHbZzcB{gd`><>H*hIsMs~ z##|U8>ybO4P&{dGNp|^~Bf%3xt-fo5DrPayhHQq{jL^`8?HMEmbM6rk%?T#_aFhNK z98%0ns{iIDOa?!y`yL!&9+6y@bK+n`ayWk|qI(c<$z8|r#UZnc!9T*{s0~H8ph24{ z)Cm8tzk9SzhAEi+xg{j>w4hd*%W|0g>XUwJ{Hc3$TXhPgK5_VFlvIa~x!SK&pTrD+ zF52HmeovPe+txor_li+T4vsLT-t_7&0N|fcn=oz`oE>b9Q`!q?3T$uxumeC}fnh%t z7RN_w#lQ-SH!v~gI(-FW^heqm1QqispNyN9;+c8-fhLnqrg|d;I3$TOZR5>iPJTWq zUEeD5tmYwFLVehq@fI_W6g+&L@45S!Pq!pZ)cqW99NSXMaxHMFXF3CSHgBV`z?AAS z))Wbw`**|9L~=1W1s40;aAj!B!PACeP;o@wK)FY_d9ecL%Xr5fjQ?2^+pCNgU^(3F zT5SGxswr@jf?9}D9ecVS_@bn7a|rkG5T9}0_fWUx10}4bJ$?BT!;qFjT+Q@*_AINL zYpx5SQKa%0^?0tvUbv{DHPXFe!70X*AnN(X`*n^muY=<0m;>R$?`WrC+HsGwj7Gkd z4R9`Q*JJ}aA$aZAsnP16swDL2i6DYp<0Xv|r>B?{q=S+g?~Cb4pS~6bHOY}+I`w-v z^NDgjpIFh=RM+!T0KI8fE7DVP=}eH|M_}kZ0EsT3xRUBeLG*0TtoJ>K5Jp}?c=fEQ zgMGTUdeDhca#d#N?}Jaqj3kKx=m4#6>rR@KyTWV2;*EarvNcsqRB-iI8Ec#eHb9%CSaV2i`W|&;GlOb| zH9dg+(~PB8Qmy=yw4B;^CLf&yV5lPm`)AL^CO1bIQII(wgX`4&WbJI|yl|Shf)Cha zfMHz8cFwVrlQ<)#Xvfv74xi5v2(|fMyc2{m0S}r<4ZxA&$}t1q&&b!QYf!DzbL=-| ztZKzCQr_7El%-uQuzM^ywIy8wWD>7Ja(}lhbi>olatT&AW|g{TaeyH8F$BRZjx?HZ z@68t{hO;oi2M>#55HwJ?fiAUqzw%YoTeDjX{RmRQ%d=O9OEB|_o}m)g8q}HTptQC? z-b=tM#Lp3ya4qe5h+D%!0N~AU^#vQ)Rx)l87XHjYfzMAPwMhTk6uApO7K0N)zr@}s zwa*O~)d-c>LFo$z9}l}CLb}>2CMKdm1PIjuPL~dh-|U>MjQIxQ+-n-=; zc~||6S@xPV5QjM*I@`VKk%GQNVvo^`JB9gk%vS#+z=rr1-qDO=B1r5T%@mh$k=QR- zD7mmPLG51KB!RlX@u&)Zv&0@*7~ug!Dp|&{WK68t$EuzhSmQEigS$VD~I05 zX@M%X3WgX-Z7xmzYZ#~Op7(+#6|0E3g{_Ym$vGOTLb!B;?9z0DJC@=E<^5ZSq?c3< zRPY&G+7dXoOP_)urygH67bh{g@_|v?qc!^;a+Pe2p?jW(-#~?m>X%@>R|oX(p1#ef zvsP~lWi3n14J2HQ=HmY=aq=r*LkLV^aWD*+Wh@@p;X%r%9)uhi>von_kw^X)hwbsH z-7vn6ozmpq2m6i5z*GQ7aQ*-0d^dnSRoj9U048kHQGsK8 ztQ63hF4|QJoRw>|3k*B41pt@7Sm*-v0U!>z4U)kxpLPk-LrLr}u)Jk36%rf-kv9odyi zEEArfX3OHzg^N7TPS_u=4F|`YytghgoTO+y4?;z1Omt0@lrD^p@a+XqJ9zOrTPo6D z=pzOr^)oAc%X$1RUNVZ6gM%;n-(MEB^Z0v!Hu=6yv606dn0Odv2obgLI?BH?)9Qf9zN&9vAfqM^c^~A(6 zj6b_&a1>}9nkVo<7@hFkd3b&h6HsCA`G%yDdW*Sl2W1w@a7$1U2QH>yJ%v=b$5Y>q zLD5eqC!4^@3mHx&IQ>A15rG-Fs9Zp<-;NR=7%hs-gaKGiXtg-}xQ8BO=tBIpRuxzRY^ zagYfYU{*@}$?ITnQ;9ZwPEIZdqt1X(-lbjlNMquj-|lIx%A0pGT5 zo)`VT-gSD-AO{4LyX4R++H1q=uqt}O#(ul`dA7vnRdfET6Ri#QlRxQN2X@T&tUp*^ z;TM`l_|^^1)7{A(AHyNzdLo`EUvZg^rZ(zUYq{ie{hZbsdZbC)2SMFb?*7PHhrg~k zI+%>f|HaG`Fi5vASPZ5o0veB|z3%I`W%2;g4$+3z4G!3`aO}I=egfg$Lr~Xm()_w( zzyMTR)zOagCb{Nq`f24J?=TwdNmZI}L=L-&VC+p6yQ-LEy_U^7`i%kS=7ASQhD_|vtRBr-+0Vn#kpUI;rC@EOb^iilT z#8b1Ylqtm~GjD>f?Z^HPA!kyUl&U<%Jln2ht#8i8VOy_uQEda$q}y6IxqDM03g)l`cVQR^(7e|tl2Frj13ZJnC$ z4~nIxzPF{(MOy`}GEqr!F4c=c;|IymTRn!M^kZ!7LC}BmJ@;Z+92O@J85+z4xE}z^ zgVUQ!>FWdot}#79N(r~iY8Q9Y&}loG`U0%ro`Ar`Zf`P#4`yoO=int$H*e;pQzECqnJkpcFa->_;N&~Kz&NdP2DuNAjS+7d zF3f*Abs6^5xw=YE(n8Y0WtL3Tov(_`pOuuFtIY&^i*HOZj8Vk3gDF8`QCeqZphx8` zfl{^{)H|oU&ocY`qr=ak@T{9}9$f_ti1juTWfpv?1hQN&RPLQ!t?p}U%aG*E)XdD( z@~oNWN){Q2n}BU`Q`i62Hd3#S!{h~F*n%)z%luS+1=~+kfS@dJTCr!c+m`SEN0xV& zx5rHsi=(1$h&TOgGeMnG4?%;}ziKkWaryIE{Pp7o`*R?*x z+PMBuk4mT$D(=18>fu2+Z=ZhcQu(Nh^OqD!D}}1&Q0q!v>v$9EBHipC=yTaWNZKaK zv}`F6lYbLRw~DL!CYFVsK?)XC^W6MibT3DExhK@d_ASjM2&b!`PQyLAvO0|;Q{N=o zlqTV)(Q?++hRr(T|6(4Ll`7#D3-$I4Q4CFjw3Yjo&UY|Ej|`{9-WgYNf1g5L!DBXt z6v#=ft$)5YC1-H@wm$cci}H?HZ_&{-6?6V{c>gsM$eZwfkWb!$j5P%E25ZA`3Bd?h z+g({^AW#2!+niyPoViBzAX*K1<}fq60I&k@X!?z3_kU4AlbDTNRVP^Pf(Ihb3)i>Vby(3 z*DfEC;7gT}!($Za9jLZ+DaA^2Z?;K=@ zE~N6cdeyj?TpEvq=@7m-4x8zIm~=s3!F9_(O<;xFs-G;EOl=31BTy&rY_cqKNrIaz zfC33g}9u(7&6=4}P4U@*#V zrYRkR9Z8RimzN_X^CQY5JfDSo1r999nV4GzSY?G|m(OOG&&~SJwfy_zqw5GDMDrl< zi`2dAZ-6wFHWwvfho~DOJSLZ})1&my8X|=+$&RN&N6QQgJbgr5}Qox>1p~*yZ>_z;Ly4VDDb4b-L&U&D)J3PYwA==p7apMTptl58<*%nhoe}3 zktMTOc#zxNPsdyvQag{6lhGytMX`(Iy5%xm^)lSInp7o?GUYWv-ZN2;^8{@Svd;bM zp$ldf=m9pnKUQfx@qiovPVM9a@?92)TEJZW@Y9D_>&=jtOyx#!l22+jacQdH;cZO{cQ;S z{(A5XR(B`L%(TYF%{{S<&?ethSgNONSFy6)Z2`b=dPWYP0x8~Hz}f}k9!z3RMO|Ye z8DUiR10;QXu_WG#ah;9`!$fHo^gZ9uRTS=uHMn}qpuY0w@rAa}9}8~Nii^l*5Ucd> zM}XXpb4SN=K=~K;JO3c-o#9i!{Qadq8`zf$iwCoa94HV=u{KPpr(EMKZ9p1QdJ zjH3#|eZog$3Fc}vzbiC89E*Jf)*@<)f7-y3Mer=`_D*!K6zW(Nb8@DA5d$yculK9! zc=2$`SLZ;!eaqdvh){&*bDw!TDyz+*|edD52I}E!m zm|km?*N=-^wO-DA={+#HR8q@!>NyboD7f0i6QdlZNIPg|+n>rg|+F%>Jf*UHJ+anbP8oZ!tx>Rv~B+!2h&Xv&<^PS$)} z<}D)}CZQu+F&5&h>xzmdPL^o)=G{<8q~A=@jy!D@uNV-Gcib|It4=O5fjPly#ua)V z2JNe=mzjKYco6SIMMB3)oywuWFlVJ?smkVmEUg;uedPk@XA}1o3T!F)DJE=NA&y6{pX?-`~}1 zl<74O!c*jM?bUymmpQ4Y>DazZGiF6kzk~xo4E$!y2rfpSYLpyyxz1}G7;pg~;(mu; zXC$rMOufteZaAe)*u5UnY`W;u&(=}Sp-JG?KnWPXz3uu8KVeh-wOaB!)DCTBa--ux zewN9BJro-5x9!nGzTe&%jGsBMPC&{&3ca7JG5CHLBi9?JKnc>MPN1A@RwpZkEi3Jm z%S%nlC-{QVI#NRLAP9|bWP=v~fMgte1eO)&;s{`aZU@TuYj$^ko%%DcmBoRB?*_9j z{0AQxIH!azkKT-?P9OYWzK^m#`I8|H*i1>=XV!}^P?cXmE291ye<~(Jpv}WPZl{=b znf@-g)RcStDDH-2e z6g4j2Ums8-H<;7p`65n2Uv8oj^c+%%-0j=z-dEW$rgh;;8of86RCY>V`cr@oxz>4s zZchW<0cf*Nw>gN=)_Fi7e@GBL0O5Q;uIA_r!D$}3A*-i2J%rx(|Yct&6_UH#=*hwg2l5v$MCU4}weHVwMRNmTE zHn#6}uhNgGG`h1?waYVg`)}}v5*~Q>5cvJGtbcr-+m7IXnYJyBA<+Ht6__47HMlgQ zrskg(WT`iOSET7atv1d%Z3*Tmg~wnFh__yWO=yZ-VHPic&Z1+AT99eE(fDLt|q@E93bwKSuzyLvhUV{2Es>Dhmh=gI54!^$Jq^H`pDgksT&D3jtd#ln_^-a>iZ zSD54~qD|FQhK!PrBNYe(%3UJ@$gBt>DFUtuJ(M&7np&FwgYZfPD}xJQ9=g_b(nh0Blx3zj+>spR=J|5apgL!~@AgNqKhjfZN@1N3 zRuzzKfZF&`X7IdelTBrH{Xf0-sQ-C742=BWFTFagtk(%b2uy_t7+m#v1tI?Iyh+cc zbO}KP+H35nzBxol62rP`{n-WI2Sith(;YY$YR_{1u76}ipcwA+t2q}#0Xv4Dkdt<* zn*uMJ)H!s?Mg|am5K4q8<@uD>deu_s4RZGiy%%^C%qC;n@(a0k{DS+ z_8hv%>&?NAcGhv9fJzYUlq23m-K|9wz8kJR$1i0DV8hM*aRyMAzKQ?ic#i3Ucb_xh z2V$_p8JF;jnkxw^&0^9cq!4-sxg<5rU*okVCSF5@3-Ytk!TebRaO(aI3(d)vVo4?dq^3PJdu{?=i^V zOX6cvI{~`gD#5fZa&jOd6Eakztbo z?b%H4&w+5q0?p*W3u^*I!xyAE8O!OgAv+qQT3_90OmTTaQ~&msc~pm=f%yhCsaFb7(#NtrHy9a5m_h30@6(_c13MdU>}Gx%Ae}p zn{mk(#HR-#DZy_Qkh~F5Jhd}K$Dg`4D$#CttNY0diNzenoOv=IlQuJl=UFmIkD*@i zI0@!9JIx$|-vjjNreLIJQmsk3xImFmc`3);$`hBnX9_~b225sW?=V)61EYDP?j4)Z zcz#>{&RIk?uudRF@#)^od% z{JrcjaFYhys*aiIaNodhCzP%YCiR5Wx~Wn|A0#8j!|zQB zyFS{zOYb9d+0B2OUERGBsU-3sci1Nz$6GW$I|AF5{jyW|>@-ip7a-HpXl5Mg>)4o0+}ltRA8hMF2n%S1QXjza2o-}xV(u*(LT=1l_`<(0+<5_W-KtL z*a83h-+|QACx5~+dT3F=j9aRRB|VT7h;Zsk7|tV0j!q5y7D0w5$6S~g+B32!*t8TA zb*}h{t zyBa&W?3MZ;82lwHPWuzZn0ZixYu_h$oWXC*fAn<7N5Jf`dN1cY#yx5)zE%S7ai6;8 z#~Jw>mfF_?7F>IDZ2j)efkQ&N|H6|_|1US~gL_;&kt=!DpGeo~$6;>Q(%hch)zgFS zjIS))qmyfuy~6@SX4h(tGTyR(_3J4q`*kYy682Au@>S}#dVeY2arr*=yLv&evX=Vs z)MIK4?rm8 z^P??&js#9|lWV2dmoaXPGjvPN?WwS@hdP=qt}h6?tohffq(p@;#c1*Y+7du8}iC-<=9sIcWar#F`A*`QSEu&}0EP z$eY_%saw^6b>Z4^%_HaWD+<$hF?^BAPJlaDn77p3#{sBpm+ zw8&i?G#!gGz!E$|v-3s_HqNWozOf&qM8 zMruzHzE&*RfqSK54B)M|{scwG;J{QX9-=9WW0#_^8M-+C!Ly34Ldd<*K;I^5rHrjV zpvt7&ZTURKAUc1ab@MThemNO4;z^F?CXYODm=bX{4)d4R8e2LHF}V6AM0l*2+t1d){WYc8(aH7^zN>N(PQ zM{0|e2@8}#*j8Cp8>tSg*~W}@+Ge1fxtHW7af9rsnLYU9JtnYl7Xj8Em^@YF;YUjd z6p0xszV7FcUIryE@T|FMQt#&{rD{wa3#MY((QDJYM1?@!d3pgZ<|0><93u1zd`bk}>vJ07ZipJfA{fAnh{o zcKy4e%6E(VxQ2Xe`+i_=CF0yyr+kNP)UXRW&08obp%7+0a6+&}1Ft#Man-oS?8H4v zCervf1uoQZ2as0&4`0`v`cY-gwtn{bEc4raSHsni5Ko#nw``@}0;l)P(BKN2*--R+ zZgU1+mdRz1tw{@H<6)zBYL-1-amqQ(6Bj;yKRPN*@qEj4F0VouR8wMC>j3cR#UkOJ zzfK|Y&70rG46rWHEdF(BF2w@Fr-^$-cL0OBe*n+c7;F6mvH`!)JkboFZ+RUESYYw* zdf#ee%{-Pld3IPeN6dohTQZ6(J8oD5^62+wOZvLSEtp~cp&hE+z*ICu!F zCA|5*fDYG zM=tH;#F{nLCHCvolab`-fFmPgUgHA|lC|%9sNTA2KF}c{Cd;3* zUMfu}6NcUAI=-h&-Q;-sws`!s2dyG znx5}VA>@TcQ4ozAXfF8&gylSCD8OoQvrao}-@E8Xsx)b;9Iv+0D6^_@HNK5BekV;a z4>3_=E&iu5ffJ+uIVN!BKaL3~fvL6@#1j%`v;X8F9ewbEZdOWP!OwF|>s?)R{eApC zJ*ncSu0;|BOYMyp$b~EQlq4`r$wP8V6>YZ<{ug`i0oCNXtqaG+QdCN$Hz7+=k#3>4 zEM*GcUVj`T7*)%NgQt(h+^ovK3x&fQk2%#*a-e?dK>5;KDpVYhx10uNJ zM02UVtrmT&s}Ou#=BN3Wb=B8PY|i7k^)3n-Tr{=BTgaNhvj`OX0lMtQD=7Ue(7bXH z#sFRpGvE|FLl#eWBv62An69x8I$}jk0!tXeki)OR*C6!2pd;o}>LapQ$9x_3Ecf*H zlwa=|6wqJ|JB`rWJINQwj-1B;JH<3kR>~e>HLqjpkDgoD?Hdi%#ns@QX*B+Yg)jB< zh#AA}ln;odDzeC69_wVx?oK|%&zIGTEr(9PSCU-|U0HY*Kn+yQI$#ve=s)paHSO01ilaWbgE;YTDh2*0Cswx^&s6u(?CrA~EITuQEQ1-Gs=jF#zFKt-3I9g^AbW zLZx>~oxa2^fLffZ&?n;$uJH5it*&lx($jCeq{5=+Qhrn1n)c|cy*8`yO>idwQs*JLB0%xp-aLx_IWsw`$f^ROOyL3eOQ=l}te<-+8+ykKR7< z8@0PEWAPCR{~#Ko*?&$Wu~MyE5gH!CRF znk~Qf4)lh3B%*mD5Hf}jzCwgih^sed)ZgUreQ8LSa%=DYP-8r6YnZ6v*J7qwbr@da zIrexwomMxGbf}*S$MuEIen?+7`Hd`py$1#D79BM(4F{slw8f8MgEJS4EoI(PYckv< zR5=fiChd4zMqN2;SUUz>r_Z4jQy}@#vk1pbKsmmO+)NjjiO=pHT9?-NhSv10cngqfui%>nG)p6z!_3+%Y5BU%SM2wqlw)SnKXE0ePHb8PH$1Is6E zAX9*>XN>Z9e7~2~k#+@{1L$HhmVNBl0Ys?2>BUi)Xn;;+@|?T@v13 zSgNvGy^Q#c<%RVdpev5Ahwk}!<)+;8Mf!C7gccqV4v)|$^$~SVEXA|qpSyq3>!Wh? zg&Z2bK~*iw*gyspFK1yyDGkMZ1|tmZ&;ag>Ws91NVha;*-7Xp3^uN=R1>unmv`*O5 zh##1(s49MFEoU)3lx~vEyhPz#l9`*m|LD2;v9Tg}w~{8&xWExA5MU;8lrmvahVT0#v@fY%Vw&m@h-0g`dPC{*?lVh}=8C`k=?d%p~|g??dY# z-HI2xcLyT%L{Tp`oW{2X4o!I3$HaYISJKh0T0SC`;#Re)CpGj!>B{?JjvD7x8@|KB zHvDz*sZe~X>(ZCd4o*mHlHDNDIDQ``AL4)}U{-w=fOe4__{ zkiHKh79Q_$yP>cVUlXsv-6~Wt-b1RXP%U4$ar|~k68_$+g&QqF1qv$U5`B(1T%Et! zQ67u zxE?)eqQE-)J)PQ56+)9kkihTOH4O7HiTM?n)3@*5?Q*Z$YCnDwuD-npsL)jdB(Iyt z(1G`IcyW~W(U9+7V0!cR=_YM1%HXA5*z1v$idLQQ9ylck|7!25l0zq?2G@f;=A_`~ zGf%ZmW=N9`pUL3(qWE^#05>11SnS^WJ$`2Wx7)F^qJG95XXer{eeyk45xP}jR_PdY z;mmCK&Qe6F<(>@cTfMP~E;aDsofR{4+R&Rj+>4s!hv73pMTy;?%_~pg`^83{JpG=5 zM6qt80pBw+4eOT@m$jRfN-4Wc2gYW4j;ER)>?kI^<6Z1!Y1c;wdwzuQqsGEFcte-P zm_0MNIj0LNM~n((v#jGD@3e))=FFTn*0|x~e=Kt-Q_HVD2*=c^(j0Da&>)dFUSu0? ztAj9aks!Krsfbw5M2s*!A*o0%urm5>?NK{0c&tF}X>R`=Ijf6$Mke%(05O_U2D$n4 zkxTC{GNkEoRAsVE&#bUFMu%QDpCXLDLM^S8$*Dk<_2#n5$fkF{b1!HtjBF$FD)F_Q z?P+79w;d2Ss(I?n|MDz>LQgc47O}CWTCb4hVRqJ47S?AN`DL=&@=JKP8son2-+BBS zc_@CcC=!eR_dChrzf;V=bbZm3a*FD|uq$F@e7$RK*`j1!?oPRN1$kw(V9_Qp?~X=% z_xA??)yZ4~_Rjwj5D0NyIB)`Uh+!ck8IwawO6-}Re6^C-^~y6@>UZA2=#o_0W|chGI*bU}sZ5sb*G0w#I?BFYPf%cTcC@`Bj10NIC3^KiKe6M~P_TCY)iyVhuP}$8)|D?W zfLI6yUKTDki5}=4dtGYhg?;KjE;*o73_Fl_`Gqu>(b?}LG4xe0aFEoxVI>=QjIH7H~a!8OrY8%vh!&K~N3ILg1&7sFA?g3Zw zDpnAsY>2ge_7`oY zHLM?=n*7$j>lEI%laS9mipdB)qjiHD7TIQ!P%a+N*L{2R!t+fIb7=I_fMzq-M4~}{ zW?r!OaHjTT&BKw$=!v~w0apNEASf_MWXqKa3OKRNd`}Nwqvlmv$jVJ3xo zo`wx1G7xU0cK&`?uG>!wo0p}|66)^dq#LvZ9_Qcr$kP4&+;5n!ddIFRoT84ZY_IzA zfPG`lgM{!Vxik}JQ&%xe0cm{g%kI^H(hDiO#56Z&iO=t=RAb-L%Tznb=L@@*$FjIi z{l4ms+Wq+GQloJ)bWa{^UsB%YE4n!n^G$!x4%_KK@SdHlq$SY3_I`C<%_8t-&w0de z?Sq8T$LJv>Bcu!^`+l&gvSp-2jMa!VAw49aO}`?+1feW|5PyFD(sQrZXVMW*m$iscpFG3raCKROq}K%ZXFQ)Qp-C1!Zs`s%(bpbo zIpD7H)5y9$vWNic{z>Qrl#*ilT-p#`qI|4|u$Gw+w6F;wwKc=(p9qkKkoc}fd>vxa zVVdUWu>*%r6p*K=X=ouBG;nzH^!so&`zS56}zC&3*%7Q zz`E$or=?g4LVfl+lG;ierW2l{J?ZP@Ks+job-v8A#WVxyM#3IMxpU>^6=-)kg9qQ% zzQ`={8VJ^j$Lo$2J)40AS0Ze8v#KM)BcPu(OA$%$&jBF~j4!M))TOzNpHPyWkCZs)xXayk+@-K~eYaNMsBQuSqYLD$sx^Cq zldhLibE40vl=n1sWl8W{E;ug536ARgP!vmygJs#FaJz?f!K)4>GNd-p+ zK@X!=e{CJslU#1$ts;ji>%fXkN_i-{AbK_xy#Ka+WFWkQIl2lz=Jy z4|&Je|FQI$vPb2F*HS%F&`5HDmi!~&#^t9Ix?7lu>g9qVsdlSc@4glzgg*J32L2p! zzSBQWOFuxzDA;QM=2#p^4q;xk`lEPPI{9~}ytnA~#&6yWGcC44%C zrk_D}11g~Kr-8h|UzUvT6lu{Fc(_&V%rlLHDvUEKEYizlhsx9s<(GGv_Uc643OB@K z1`45r9RiGS`Uxtm+XfJ5jA4m0oau;p=G}oS(PN8tt%Ge6^SUD4_5}^;$cXUL30V1n zTj_w%L-pLGsOOEQ{Ep6(T?1OdU$#k6eRI{;f(1Hi$~?~AM>LzvtB$5!w+Ki`PqdG} z6W_7!yx5CMA~wwc&D1FxFvZHKqDNH2Lji`oU$&{kRVD`wB?>-2T5II86|)5E3pf`F z7obfw$ufpKu~kRU=a+w|R24P(>!|jB&}fhS_l@?8|ESTv0NZH-j3d|pu_mw$js4Ffp`@{$$o|TX=EQ%?}OIG(~Auw2gY=ipE-VH zraN|Q22DI)XxdX99stVEk$ekQ7ZVr79+8Ud3%CtO0ZFKHN!Dxr8D~v$E|=V>e4ml; ztLdz$?t#Ls&JKojy*NREy?Swo(idNyqvnG1AJ~1j&47c+=RdYRX`~H^25=s8!Ia0o ztywFRu$-8y_0g4MO(_$$LHw8VpjFRZS>pd=V*2IC`8u~$? z2=6lb_-IhLJY*63L^*kH^ARtZ3~hFILC^r{@D!JR6QD4Zhb#pWlBL>_yfwSL zXuM=RIp6o1iYrh|qFcy$vS;2g?9|KTkQw1IXezV;#yDO^tt3aMR-q(lM)Xj~D_;() z#Crj9o4WWx;`gBWkzav{T3joVfgBMn!$jNUrw9Xvnl-U-P8)t-T0{iElMPYoM?YpsvKA8786@!ys+w#;-iQ!CD&$|#*V>1~lw@agI2r=Rj#L;QAeo$xv{ zQEv4ifc<~l2q?UhE?|V_d>WFuju>P?xE>T6MpLZ)KRT*OCAye^FDLUiNC|olJp>G1 z|6zmkMpD2N&UtYqs{#I!^WO6_$gKhoS`i(K@Dh~{K)_?LBC2AarSX}^ZA!%M?cB~1 z(wLEt>5e;{>O%fr=y6Fo3nFsnyMsgRY{|d}s9OVn751s&G4d~j;0Khl*ov|A_O#0G zHi_smLE2)*YT&7L)a7D0PYL7rIBAjj6OaNm_^V%*Lf3%LE3eHyL4}jl*RPP)ZE5%D zMvo^hJzc^m59593=%XZErBOBe38QBSk#oxsK9yAsb44Ft9m9wxt7Fu2n`oCn4}@1~ z*^(V6#PtH*vTMP=5XxnGwyVy5_siL;^o&K(TPL$pt&hto@9d6PWbYJhB{B1L1jv5S z^MG#ZMFp7{N0&#o<%xZtKjsR_`RfHFRP0oYCrcbOE>({PCQ->+;~f->QuMbPiJOg_5Ua;z6BH&zx)BRri2F{ zfhBbuUvB(9j;$Ao*0Brm5YQ1eB!$h ze#U62bYc?{EM~M2v{GMpZfn&h1LxUf>EF5`+pGJfnn=W6N-0t1C;M-mrCa8H5k#2E z&Nro>dwu7)nlL!5DIUe>E!6ClN4Zdfsr-|Ix5wKV-!U^-${o&bc>JzfHBj%RNGWWj zICQnN7mVdqFr29AUIWxSU&oeDHReJOd)cef${wSkckh2X)20gNMHWXZHDG0r?{_3V0yS<+Dzl5vvw^&~B;a?AKA;AiJq z%Q7>*>km(6xC#~vrd1!5{`GHd8KD2uFVOvwf3lw4+5h8f21elhi9VAxPnes6eB9k2 z!PYkBv6Gd(;tuwxGFt42;uh?u)6>n#U;9bQ50FR~@r*N9l2Ovs#)Qu!FA8N0qBntb zeAG6=&h5dDIKi8;DvNUL=vt9)d1IcluBYcM1G!l3GU#dLiY$v9&yt(nD*877D= zQA6T1!4GrPWNqG{)ri)80Y5(*Sty1lUYrySOW{%#kqbVZdV7#)kvP)4G=I@&iqrmB zc}!aN5SHQ(SvLn}Wo+*qq9>48G0&JOeb~CO=Y+#sv83$&wwO*uPFiD+jmui5YXUS0c`PB5ka zN^OJtx?)fLSc#5ni`}(5=QuF;Nj>U1w6?W%6QvhZ%c0}MOEN3@h0|J)h4J;P@4Rky zq&PyeHT$L(_0HZ_aWP|UJ-b=ME89C>k$q#h(uBth222)iW)7lSyIVpcb!5m`QSWb0 zwO~;?x>cxbt6U@Dv*h7AMYUC{_ADd#=OpQd`pij#9rH`>bGGZ56$VLi^-tHutrjgz zmoi*L&P;_VidZsuU)Qvmh2(v)Q{uf)sI30>rKYnmUqXHvpk`9;a@OE{641|3b)!V^ z#Z3Hn=+CuT#jya$q~Gye>zH zTX|JpPSUV=uzob)di?UB5-z|w_3_`jHvglRCa=|9-Z#&?RKX{#Pn{IGLDW1hmmT!$ zyZh~~1@~|8gSw{He{?f_z3N zS1(8Tn0lkox|*X^_5nbmPDG_lQ~PYmG~q9ezVfxd4{S2>qV8N9kJCuF&~>Z zs#`EqM45d>%fg)L7|x7}E}r-G`?}f9(i-u(cHa#lu_1~Gn|_!6w(_FA(Sc0!@29aQ zpPTQzx$~SC9xUs!RAOOHceD2$#h+cNS@d)ZNev`P42(4cv0SX&|X#Zc(FV70*(@-ye?F>Qh0`0 zKyXVExL)7fM5!-rrQ-T%zx5ygX6G%wg{8zZ^y-?vy;ieL^|E29jL6hIiYs|JR)-i+ z{3Un#D^#7Td@ix#%Z}rzyr*S}FER^CEWh6f+B3RhlWz8|*FRk43#)|n2FVkkaSh*% z6At+3U03ctTEjX_njC&u-rFIeoK0)w8!LN>T*vpXfN^hxJ%cLN_M59%8y;6k)3lVx}nPtpxxXC%xxGb3#alB2f*CVYws)yPU z4ifyluHm%?DtXw}Edza>OyU-_USe^}+6wDHS(xAi^BmT3*NticC&_4$v%drq}wr|yH!O*HuCcuc%-EA-Hq+(|~} zyHayXy&l~vTR*R{Mm*PT)#Dm~ickKuU9AycFK?ZhtpbScR zFZe_$Ms56e$Rz2Xe(APjJL{k|ckz_*ISA1DJek+iaKUZ`Qpbxg1+>f7+ecds{c*e) z$>~)-IO2nL#Z|>Nhj|_Y*5IvR+0*z3Tk8fhhK(b9d9)PXJLRO88u>%d9oMqjb~s@gy`f=7x^5S9h?Nm1UXIX|l0~ z?1%n})2Ka1+-aiAs%EcklH;a8^s{21&b{yJ23-lduK$GfZk7TYNC<<`@Du0|>Yiyc zU2;xWO$^l50TZ3lC8QwVRL0E>*WqGjDXF2~my!hSt7w3{)~So$S!*-1;tT%$HOCz_ z*WnP62So?lGTpqt4O@%4FiXBvEM{sDlBo=iB{7njcK60pTTWNKXDa}66Z5FTF|=E> zyr)IwblOOgvlMX}?_nvB2+RW-<<`l~rv#m+$M*VnStnxOI}>o=U5EeN4+gK7v3P*b zd=N&5nlLlb0u(wq?47 zsj=X*_d1Q=30(t|s$0qLt1*g{*%9UQAzAB(%dUYwn;fx`K|aB=bufm6I#4Tdb!;1a4E-~`YJPTNdYdyeCCabv z8AcH$VV3z+$=0xDtbT(B)ipFt6gme-&Dtg(|E1wr*ONn2=P2{?-DcM3L@Rc}vl%S` zH(L0xpAx6#%Jqiur&@vxQ-C^TLnG&ecSi63Q>8|^${GZoDJr7d)r=mr&(ZBpJPLHLi3id$fDO&L&x`3yO?$FQc9W~ z{C;|}-gR$*w>p;+DH(D>8Raf?y#gOAksER!jdXYBZ>M~MeRNziSr`P~8|MQMiQ{NgZY zFZAhY=-P|3Zz(wta93u_KFBX668aL>sf!>JdKB%4Hk@+Dz73Nai6%}4lT$rd0Uevv$Mu7C z4juw9-fV;pkbJ>)`yzB>qPNP_ElYaVCjIitgBL?*z$ZIlLUCz&a_db zUifzRyOdq|C3)QFg9@rFiyR)oMYLCKz>%0o$GjGEr>+kBJkARJY?upQyhfCSU+4w+ z=$t^C?vY>_WVF1e<%1A!!MS3yBMl?cf}e7m0pC*ZxIZT^-R{+=^Q7-bUA{#Bj&hJM z%DUNJ1_%;*h{!d)?UT?7TDB~Ih^wv7;w=%N}*HaS5#b|$TEI#nh zG~ST?F}73n-*KvHXD75-T)F_u`y3F_0P1j~2!}DEbanDran(nXH}n|Vc5X+tbz=LYpQ1Ej&vdk)G}FtqbSdDDJy%p2rW<-yUm)b714oZGfU1&^x}D*5LkNOU6y!< zb@ZMw#XXx;?xzB@p{|Ix=QO<}P>)Y80MavM)1UgDOfK&h)s3y|zz>yFthBf zzr%fn8w2agQQ{Dgf>h>S_d}tbLlWM}4t2Yud?b->vBWRGy>dBg(``|r5bR?nFm)49 zTvi_4DQ8vwp)U1Le1tgbS??Mloa<0eaHI&fPSDa3%~MCunVTXc*o;wD#swT1dJW?~ zWmMCOsU;{?8@I0Ymyqi!_C`(ye@V?69J-U-o)g%mfZ>@RMxBm(LN$_AqpUo2vi6iw zM>*Nc=hf#K5>W-P#8p&qpCDQ*UzWP=C;Wbi5@DZtE~v;PcIC_V@)uR7YeZ%=uBO*G z>57gUWiY_3#(yD^PzUDWB2NvC;8WYtaguXyuCRfQ5cYO(E5)Kk3(4%!~4TB0s+*f0h_Jm-^zHzHan{Y+1AP%~>l1R2$RXD{ zpB%XOX+tQnXEYOSBhRP6dnJK5e_plHti*o1(tRb^``vrXj1pPH9Uyh{AQRiE&jJ{u z&cCpTOLKFkIFg)E7;o)eS7KqLSbPxG zC9~VVb#qtUe|E6;9(J^?rCnz}ZZo&8miHnVSIKlP4SY0|bk)WGqqjw-@gp?uY>E8~ zh(g!S+fhIZaG0!{*NKxFQ#{ z!E3pm2=`?5BYNe-QDGshwdGOEyBl)nzI8m?2dQW@(wtE{>97hg3SSrq6D zOZ?{USV1e4;mDoKI+SvuzF1$QSI>QLiv=ZA1sNY`m)q1V;oOOnwKfV~GFzJ_0 ziR?Q!(@li7hN@0qyfWOM@9#=L?TEQVI;GEl6;Jd7!nY*mBNzE{Wo2v{GzeGGo)X>3 zdJitqlWQxtCHYD8mzUe!3dr~P?ft{-O#@AgJS4V}PN8Od66$wK_JGpZ&JW^2x$gMK znBQ@r`m5Ux53^>?=;_q=yS;~1=HHrzdr^kFL?(Y5IrB@-)^a^mYEmD0@-LIgG3XT4 zH1vWS*~-xaCj08O(X^pJQh>1@g2(u2b8F9=Hs3N8$xp6KeUisod3T>s14GsDtvynTQ`IZO%A>~-{5O&mv-1UXj)4ob-fM=UdlzQ<;p~FY1^I7b%>C-JiNtJ z(_CzB7VcdDvKiP5eG8&*2ly0hwE1*QLr*m?-YymjzkDqIdfCrYbtgo7v|H7tpg@@> zFGFPxeuR$T>XMS8%)p77hlDLEUOqZIQs8KF#`}C_(%XQKIb(ebsNL#^CoCl%-3rji zv5b;)9n;6{u=?Qrakf|U-|%Yw^PuzZJpliAzU+TsqlS%|A5A;%53*6i zM$HeSW{8a%HfnwtHUI3vg#RP%+5es1!=HES*yTTe-n04hu8f^-|MQ;BpLb>Ke8Qji zZ2r6}WAinC-n04hu8hss{CUsj&$}`yS|3)*ZlBm?wp;;NT|-HKoU z3N1ajP6&euraRz{VwXx8Kwn4KFcHV7Dc<7%{$8ZyyAO)~1jseYgXxb3if5S+EHJ*= zgJKAX73s5t7rSt~vIH=eQbz%%Dk?lK%i%Y;t3}-v>3_Av( zxijzq=oe|Gl(FKG#94--j^;k7Uk>`eEf829{XAP7rVzc4{RgOzL(fnE!%rw`*>`(mFx z7wmY69o4b}bvF0Frc>CY7n{dpQg01{#ByNP`_{m|Vs$i@uY&itUA8De9GjhP?B44a?%p$%i-VvpJU%+dd6xw-!; z{Mq~r8#DKQa0}S{%nxqZfA!(~zvzA7eKtSC_GfM=`_ZXV{qeQOvOGXV{qeQOvOGXV{qeQOvOGXV{qeQOvOU88&8q6f=J|envN( zv=3U_p>B}hrv{V3QP`jLl+o8d_yo(UAl8wbR%~o` zGi+>W>UVCuyWnJq2uJu+55I5;0j+E!Cpc-fAA;IV9LJ$6Uxw^Ufcn>-luNQ7y<)Z${=c%TG@q@3A$G=E^{=De^(E~hxECVs898KWskVD)-d5~i6=^&`m-KjTV z75%^l9YEPSQKK8BvJr}HBK8@%wlU9DCAMBR6n-5O+YtZcKvaC!cIPTy#pRW5I!hE! z`+Xl&Y{D$XQiu%8eb9o%Jv}T{Bt}P{#1m*u=}SMncL;>Ga)ERNz(aCcRcZ?xGMjmur85>KxA~fBb!xn?RYqZfV zBQd)V*E#b)901NNg7Y!!HM|}kUuP=Q-66`%!FodZ=z-3|>#DwB_y-I(!*F!V)Wet% zrQ{Q=D`P#(Pz`i_w*0-}o1t#WdO`Qt__-Dn?!?5>dzz3~>`xeV#>u*2BukzlL9e8A z_1QJ$4qR=g$56ia%y89>`mH~)d!ZOKh2!_!y{$fe?DDe02m7{~9sz~qibNhzsP$hD z@2|@eJg^Ms?ciqIq!Z3miF6^OAp9L?`yZdq$X$c;wsDbDB#fT)m8%Xd4|%^PRViEg zYAR2@q59-fT^vg5T8@dReTxEZne2l;uF_hDo+E>GEorvQ;<|Npv$`h2NU#KePKbcd znva4HDLkQdYN|Dbs}G6rLLiT)e{zJK^6%tEDkML9{^r1D(!VYVK=+Uhp&GxA4fjQc zdhE%vhHUSK_+JV33PDiR$!Hn?&)%BO0HltykZ0)w&w|_WHztbH)NBppUcKbZVd&GL zR3u60eU1m!m4xg@MvLT*h=|y$mUTmarss9qYSq_2O}!ElPpcPP{6=f1BEhEt}9A+x+X95UU? zqV%cxL-k|=FN(u(`03czG>6gPnb9`Mxs+IOA}X)jw&mfsC3|~R#FMt_LDjw2c*UZj z&tV`sm~2QK5JgMVW9A7_&|`HbcplUq376PrItP|O-QBr7`L_ytCl4nk|QSe>J_^^_Vm~>NWR;$}S z=!k6AP``eRU0%;!bC^gZ!zj4STf8H(%xkhf>(Tc~r_uF%THyNw-%9??+5Z)lL3)Ce zlz2ucSy#G~b%@dzi}oPT9&;+iJ*GQ!o}BRx%bcpXc)Gse z`R0X6q02%^Aj})I=sqa&&OT_a4lAi*g5*b8(gf)Vq$J_RetGp?WdX)Tx=3Yj+KbO= z@WW_0wJ}l$`6csn9Y#E&&F`q4`90k|V0vt%1$3^_UN4ux#4b=4q&kz6d;1cIA`H{a$1yTj(u)Vm4d|s9e zJNhN6Aqg$Mmi^mOAo?#9&IBDH;aa7_h5@W_rc7K=(s@-e1&gnP8~ktIj`auo4F4?f zmm3`Y&;DLw#qm)O!Ww`>FbbaIdMD|26zzG=ZUT5>#nN*;Y=a04*)3F|W+fpir>5+k zKY7_|;bK%wjo9EoRRS6>c=D%EZ#(%qJ?k zT>8WK;3S0onBGx_@vuq(#AsNtqbm&5N@7*}5xKdpt*$xVA-vKdwz%-fJaBs$8d!tMfaQhTu5IjTqurU$F&F4EG&Hl2 z0S=`~&x>>;3hW0uF-KmGY)Oi5I5mH0gI1y{t>Yz4x_4j16;0;pa$Ft_7Dg~F22Yu& zM+;{yT>ZtL7f*Z6Oo4jgK4QsF2?wFxvyrT`bY<#!6&mzn|_IjYWwuV#!2DoatFJWG4aBra0T&(9ITt)fz5w&2Yi*{X68V>lw(BdU}9rFCIu~1uKOu0Bwk01Qry>Zma@*s5(&HkH*~A=#6SqceuZy#XUOl@Z?@cR zY<++TePAjW`&ft(yr<3@gm7&MQ(@hNdpL1DNxF;D`WmDgqeXX`#~tyMjX*it+o|F4 zOZJ$;#t;L|gYC^t0%qonI^Qx+&V>JEZXm^k+7Jf62glXaXO^?C9L*n2^I%FB5RMqhZ9p}(0^!t?JUK`Clj6%222&amews$;ouh6Hq z%ll=yqQVZ9kBTpv2)ZP+D1uOmf4Gjb`=I(h2LAwUAH;mvCNPJOgVtl$2IgT8F(7(O zc|!sTD(1XW$U}w2C~xD|zKqTdDF?%ULS^>|=kk_gOLo5Rn&HSt>RQ{~Cy6%M#t*1L zzE+bU^uIBjVK5>g5-O^v{JK(~l1GAd?WQ_@M-HJEsGM5WCfHiXhIM8d6o{ za30(~oE6UFaAizkVYuG(0`1U_dtFC$Q{mXcnVs9ww)#YI071Nfe*;}BtHKax8wS?Z z_s*^wg#bhEZOOCoI_F7K{c~4l>gOa9GRO7AQCT;w4;*UTL>MuF_ z{&2A&E9dt?hXOEfAe2(ZM2Q-M~!GoE)M#)5o2FU3bSuHEt5WI2w`$j`o$JFVU-my}znEF6VxaRfR?828Hkm zMFlH!tTa4*r=rv_2bnZnH`)7@u1zy%=CL$cLmkjm+b#$PMi@0kzFUi2R1ok^rJG!8 zAFT?K5V_e|59fnBOfK2~MGk-ZefhIVhaQR7a?&7dG^B?RFLjPSO|>P%dy%pB=?Fbt zdj0%{2*a5A;`vnPNSp0^$}w-LGt`4iwxMFei`FAwORn}4vJ#&i;rdl79Pmi6ZHsIB zz~P;O%;A`6(CB^8ZuHW~0R~{~J1N+2&d{6Cy;E2T?DhqUE(puD^;hQ;vR(|BIlp~S zh8ea~ov`)>>b}9W))RdUUO=$Gn0-*XFY_T`tqEUvk_`pdw`CCBxH<$Onvev&5BfGz2 zJ1gKX!Hn~L3;}&2R-_I71nbVY#jFQBxB0TTr!9@&f)$}8?~enn6nWyEW-BiRT$gQb zOm~7?stp1`h}%udZ{CxW17Q`g6qF1@0Eqs?W@(EQ{Cdh8^LPvgjGuCMFf%BWlzwzr2uv+0Y zNQOYjD?;5qh#?UJcuif{V~SNldDujFHS8V({uCjiR_N2gL9e8q>{3pV;-Nn2O3mq6 zeAsc4o^3W-Z*rB}(p#-zw=hWu=P{zh_X_$NM;`AQkVNy+i>V@W1KrF+t6f0g*dc_P z>IS?ZbRcP}Ga*T$$NAWpvWj9L?5>!R&8&HK)72Lz-5)IQNp|y6-Xy>J11f*Sdk{|m z7&=&2Wgv?0yae@`y$7#>-N%d~LaE3;HT#gbwo3@kNhpb%9`e*si9m()4$D{mY8ZtU zC`E*|m$dgAN|ls5d|c)uOa^lW-2`s|olc zF04p#e(-SxoEFN!!=QkWJ#9~$>*sgg-fcnlaG7xC8hCkxY`S}7PJHBGRD1q!Js?a? zfM>W4tWpu9h3&k7^;(yoQ|`JoBSdkILi&>7NwZ?xl5!C+BJ^H#Ukdj@=7p0(C%cbz-0p8} z@V|R6^m}v%l)*_Y*jsi6(gD=V9v-B`60YWX0PT*>SQlZNQ8$qRJCUtePW;JI<<41%rjWg{l2zpFr4*Kc2{c)_U}E1V9VQoe((gx_1}AoT%KL&&Yab*gPcKc7}UA zSl8ypnD(q7jO>7Vnrp%p^O#qk#p}j=2)Mb8*tsl-s1ifHSQ18_U2E9~QHCKrdhd`6 zE4EoPKMe=}OvjO01BH=FmX36X2y$hmqSS<&7CycXb`+m_iZ-@(5As?1Z;vTQs+8f? zd4n_~F>^k_+ScaDXYtMM?zet=CU$DhL*)Q#1WUOB{dgZbhl5f~;S<@k@KKeLp$=)> zp&qL8yhYt*?QuGh3PmQgd6ao8{RGgOhuWDb#3}8x*r6pBcv$_c+v$5yIe?(}3Z5de z!~$7IUO_#eM-b4P^pZV4R2nuqPO^?=R_sQx?UFX7a`u{9C_c?<7!%&;g76^Mza*9{ zq)<6-oNwv($^@V)w*vT>yG6hgri1;WybN4a&D7d`keTy=$KY+-$6!hYvx)F|8|wq! z(}GTN?1OCj5g*v1ZD6uZRsbP9gXJBs;i@p-pv|w7Wr{?@H20 z-ks!9^th&mIsIWv*X$Js14BS4PeA9()(okeWX`qmJp;Pj=Bru3j^is;E)~n0NSyIl z&_qnZ6MAh|ZeymP)Gw5nxH?*lHHFsdS;@1VxVmt~H&ke}po#On)!*rn1FRM(#XE)Z zc#mcQxa(!KWZ)|#(@TDp0>T_lEcT6L@IGiyV;^*%uxn2C26ju<_;0)!)CW8F8NICHh6 zX|RrIX*SrV?W@{8o1k;)iCR(7Bm&qsJK)L$PT&C-wi7T+b9v&JoJxiQ{gMY2I&a-} zY#-!_`GAvH-@;3wO%S6;hx$n>O~Z-|Wy<9EJKo=V<`g+EkCfGVR@G0#owH5^y@J#R z9mvBz_Y${scu`)l+=6gwjvqyCR6UVuyT7Ka)B;DE=AnBkLYbpZVosum zY=C(1>hEqYzg;^1fcNlnemv+KGzkY_;??XV?A2}z5jM$55+UM}qz;S>U1_D@x(7Iy zoG%QbUkiA)*4K{vAk&Bz_oC7UtX>LFW+rt9I8IDo3gEVQ%t_4#fME+j?K0GT+V&Ov zn4S(`N_1JjK-bpEFiuaY6Vw;Y6d1WNwmwCG!9Ti{#06^}3%=TRalXKE&!G>?gTGbN z*wK^>J2s2jAlm+a zL6BZRv4j!|f+&IlqI6Nggq~7FdXS)`K?Q-piC{RAlf&E8*WB+L@7^)qyW_pzyKnsd z$tX$^&e><}wdR_0t{t_t53|<5fq#^aJjFqOwEWc_%7*DgY%g~a^u8FdpK?>)Vf>N5 z?M%FA0$sUh7PrAo4j|vytzqs=397u4IOsU{?+O^mS(;ogaCOA;rm@OL*t=O=nbx(b z;#g=gXFbERy^OdV@jt%XVn5F_u_3zX0e@e~WPY80A#$nS@>~z^NmP-mt6zF> zm)7NHwmXTRXyAUq){5B903|VEKh~~>>~Y7sCHyg=L}&U~7uTDcq(!DPlO@+oPHB$TsimDPrPZ*>LWXkN)e}T8pFF^cf%;Mg-V0uvBZ;aKmxb7m!csM2H@xSoK|8F-@|5mF1 z6JeAx3tG|tQM2>pe0dD$j%RUdSOd3wVr)ou3~>}69bqXlHzPJp&R2pT)V24JH)GT7 zt@X|f0kM7`2(lN#WL1BTiG&nWMHF5&A99tD;=i}7uk+ArAM1Qu*&Y1xGR6lgWdAWk z{0k2ECA<9EV%^+33-@2zNgPj>=`!EF)EY~at;gO$rNkKK+ZkFlHxeRXI*?_|~Ljq}QpMls-YwW7*l8>90 zX9o@4CnGWJy6(p?5jb?uMwtc;mJhUS z)fX2*Z1OrkqUydIw>2VMrdDM5n z6*QsCwWPuFw6o<^w`-VdCD+Ltk%mWZE6!MwYM^=f5{vqT`(Z>hve@jTQmum$!u+=9 zDZQZHO|?RA{D`)q{F!Oydb>8$B9q+Bs&t z>R3e2yEh%$MMVMk_Qo$VNZQbSr{VDBGNL7EMP?H6Z=4 za&x#nlWEK_Dd`H<+p)8AVUKc%M7hp_yaDlgB0CdNNZt*@%R`u;A)z9L_JVu$g-gi~*@J!OA~SbgH7 zpJnC;Cnu+`y+i3==s6yiPe*qWCmdmRb$UoGKbo?Hxxz zHR)9N5EXHT7H~FzpAK*ge8|oTWJ}w8R3Di)E$#R2#Fip@;{IiQ7j@|<8!wak)TPaTg=;}9U zVb#@jaT<9IRGyT8_;6!q`g5#5W7kBsTe1<82YY@!cF5G)MCe9`PLy{3@p}Mcmx!-1 zP!sw1?K_203Vgu<)d+I|7k7kNU)RJ{F%HVKktQMiqPt`bhH`>?dF0U!2I&zkU4&Rrl>L;N=X(g$PO{v_~q1OGh!UK zEV+>tN7S_ne)QqviRNM;6L=MgTnkgjy)ws4ci4^IHJw=E^VHbQk@DWiwcQIbkR3sH_E;(3|2+qa;A;hEI*Qme1!8ma z-809?N)oSompK~I0vjFsM+|b8m99u5ZvN$&w;N8nD9$*@pHT!O{HR$RTMJz_B+W!r zix}h{&U~zY7N=fiCZt9=lUKBLI!Xw&&Zjw?&t zQ{!R!6W@grJN2m@wHb^J`0gvlQKJ41tCju@T~LZBh^e|12E_9Pu+EXA+>+vi@2qDG zQ+aun5ivR_fBcD60U&2sb+KlU8fsC+H`30gsSR6rSi;+O%`=>7jSZey+YQUX@Ic;iRZ$p401eg!~p^1 zR^1h+9LBPOf&62)>zP_Thu3J|U9LE(GdJa`IK3WI?UKh(grLt9JcdfAua}F7GIybO zjqoI{{hd zpeH#q17225Alqa9S}GA(s)r0J8-7Zu%(mc4QuA*Thvde_b-Yo zeL-8wIQ&ZTi>77EvzvYc>g|km1B|Ec?$>b`6QC`^NDQVT0qq?(Po6&1*ec&nUl>m5 z_6Voc7D&M#x!o;)N*NmlO$kBnu5X-8NSk}pM;c-ti8)5f@X-5qNdllk>IU_2&@&Aj zQy;1Ucvz4?SqurDP;rTc#P=K=P&u`H-4dIsNjIi73va~{-@alAp?cRsLAuNl@fIa~ zNKN^fW=2vRy`8LqT;YAC)|2%m2k<}CP&%S6p-ImnT<~PV`FadO5#wj%8QfHF!CWC> zMSe##jl?EL%liy3?J>1C&dPh>mwL3{kGG^U_ru9y9u{}?bdgUlJN=|QvrC|F`}ZDU z2Ha51W6HP4i9S1kpLl?BaN8legQK^idUDV^1owj0VGvt5i~DL5m#>KC{)I~^7rBBc zB5Xs_1MhYN2oNa?@H9(SX1<}~i%n@une8mK!aGGz)^-MZrCc=-QX?h|6NM0wEql= zR>s2H+4Qizot>Vq?nM2ev|RHHP?H>2kj#|(p3o+SUI2OY`31sIC#Jj$puttxJ0fhC zkidZVA-ddHVqDDNijGz1p<&P$Lp0B505NTG6+q+$b$+TR1VrGOOsZe@M!R<-6Q` zznSYpCRD$WG_C2|`iDGUyi9TZwB7LY$CtM;7+=BAkU!@7a{DTsN_r{Y6Fl`nhnkZ| zYd@XrKY@~vj6vdjQo8##;|6w2d4jV0pIa1s#>J%7Sv}vhQk0*si*`;7r{qHK{jnt& zxbQdzuBYrIL0Zy@u9kT-j1pd#c75pydZjLmX}oILu;Q#;rg{@cxjlekQTTyZ>)|St z6kq$^Vt0Zril(W5{k7Tr{!U`M4Z3_iwq&I|hU>>d)=sGYFcKf}m<44O*(W##}>5d)yL1M_v3w)}UBA1M)-=d5;!TEho6_Ey>FphjS| zNejQe9545mESz+x=r*&n*Oc;%nuj+ZF<$fhuG`*gdrw!~IE?>h28iCrU{%;q$9|yw zkx+6L2>s9HK>D32MvOw_hBRp{AT+)XaxwQgnfE{c?a=84DzYgJU7kFcRyU!Ju16YV z7qCvMI(Y@s(`aqdFt9+9*U+jpifKvoGc`U}+|x*Xc7H_Yx1Nxm_JKa$M?=TP;nMzw zRSRxi4reU>TVp<>kDtZeBGnS5MhG;Evp4@uVR9BHz9(COD#|&KH>A&e%PNbxzFI=7 zW9hjvZtp%_Az2^Eu=icbhm(=XYTnzMCnzzfr!e7B`sjhK!FZpwiQ`j=9<9gP%02vv)ergbwHp>7o!^-KkcqMzk-H8;_XnPJ9?Vs4=?QGO6dD!S$? zYDdos0Y%{Y6|;g*^oD2+=yZFtvy>AZ>)cwS(LF^t=BdA7qyJW)-ZzWGaRoV`-a=!= z0$RZ(jo4OPv`FO?C(ysCsrbTOJ2HMMwMo*IL z*)J-${^;D}c|NJ(%t4%#k6d*|H7cx^X_Z_n2;|#-01s0IJZ!hz=ly zedC2w9#RoA159bH>@u^P1s?_SfSLTkEY2TF=C0%r-(#;S>ZrT7U?PsMhT4Nfumq48 zcE~OGtbJ$saL}tWGhceFkG`pM>n;=*Yi>1lno0a{pl1DrYT|G)pj`IJc7aTJjw>ke z&_{kqxI5cGWw^&G=iJU2hP1G?zB=Tz(-L-*W{+iH+C!w(t)z2GW<>vfWTj^6<(qXh zn#w7|!;QDHm9h`xZ$fn=TtN|k>K3bFmOep#jN=;gEQ{pvd4L)(yO?k-HM4DTvFh8fiwi#JeVz zR4(_cvtuj1WgVB;)VWq&6}&QE6#shdMBFLm%6Z#&QW`OU#N;3#B7G>H1jG+mbvEP2 zTKymSa(QGGIqOMzGB2UAFXmlR2O;vSZ>V6!=lu)U#Zzyjv+L}(_nbFy|L71tt~rOk zPNn0}OmJU=%-2Mi$A|5R{mOzTnGYd9dPk@5DsTZ)qYv*RWaQgQbOl{7xWjj8xhvH* zrsF@s-K`P7{9flu&-$iyF3CF>e41uD0Ekk5OjQm{Tfz#8pa7_!thxZ_gIE`guba?L zP6p)QU@D=^7a-H?jOE{|JoPgQ_eAq^>D)&1tYxq&53P(z(6DPhv)S(zQ2GBhECdF+McB(>OcAg*&C*Lq4Zu5iNn_k6I$N699mrH;=)9<8 z_h0md-Gx1DmX80Gpn4-^2YuAB^WCjb<>*;lirvGH)y*2Cq1nWC5~^_@Q%ZzOvBf)N zKO^pg)AhxK4|E=F1;Y!u1n1Rp7Il^%>-Zkv)L*Z2-;YU=EO-#neDrQ_HRu3>Xqxo& zMauvkP+{jJ&-1*7N@JlCJYx0>;Jb6Ys8#@cDG~__b`pH+`@RegoN;1@5NlMy?qJ7i?n$rW03)40NOhk?~ z1-?9dKYskfPk6yUTW@AKRI`yh*T(}3LBw5V4N)bxLgvL1QF*4!Xb1 zYLBSBEMf^?<*Q{WTAkgWwm?w{#4ar!hk%tcl4$~3UrAl2%?OjHFoLCac2N9)Qe_#O z7dxJ9!kUjBXg`@Fed-k^*MH(jaRC zCw5*vKbC^$tn;y8Y9etkyD@7Wa&?fkgo@iT<)DG=aj9wx7H>O4w$*8MeEK5FE4Iue zr?9QEVa*QQ1=GJcawldTw}e_x=r53#Aq3ev)Ff%2#HO*B_|-$}_HlRb%E(%d_6@rN z`e2hz)Ju)fAg&@}a;Ue;^-*I?OM0_Sy7rz{L!WA*coNo)ZhQR&5L@-zuaIFv{xj(GS@B#h~Ag9q}2{jFOsgxE;09<(2gyz^(x zyA6t{W_iG-SsXBrTB{$g0J=^4cjb>pM@xS@59KAWOeDIQNE$o9mWR_?4A)K>i!e4r|ByRLk=z39pdxmA;&|EFFpC?iueS zRClwC)lvyNBu-5%MGnr`kLyhC&%E>Ls2I%#-G)o({{`iNQhC3hG>s?ueL_T(%*q^Zzj(+wm@-gt{6r4EW5Mnj$?AUTC z_>yUwmW73yRp$o>le_D(LLV3#mf9JZrq~*oR6g@s8)rH<8l)gU41i%4hv9r9La z^k>G|Y=U%6Ho+PuH55lv)XND(UkbtMs*s}N2jpmf2p$wUWe8vWT6et5YVlypwl_^j zIAD5UOuQ~-a8Ga1l-ThQH(tA-_{s}f;6HtP zv8RLTD0x*>_?-R5qK>7{SS^{jLDpg%hErb&D6v^M$&yFlT7lJfhB4#B6&5cWX8-zr zBz=ED-iOC_v=HA*>WzYkq)N}IPtkjCRsU_GgYX^TtjJ@~XFR_oO`b?83&F}l8c3jB z8p$TC0RP10eqI82C;1;xHDA6#Vg}3>xnTYBa)x>A*zbw!>v&5tLks=W$MeqK_j$QL zleTu?-eW&rZkLnW<;=7GN>yx&wBFlw0sb^KtJ@BnFXoi~1f^VT+H*v}SRE42z6kUdZzyA3Zx4#2=p5d{}dOqcF56 z=w9$3^@c_I@i(>$3r@owfRMAXQ&x^0Dyftd$5rVDJnkD9{?!l8$NyM>+^)}BB}tAg zpU|S0x_2||M8(TTE%RbgJCXHeZ1i}~cRA$#igmQdtmy2qS1JAMV#= z^O)OaXH7liv#>QS7=ENA>4R2JX_%GrZvp(So9)dL6A~RO70pMc;Sp z?N1CVy2|=od^v_~Pl8DV|E&%WM=TbDwhdh60uV(JA;56(yyOZv=clwXQjg_=~I^>*4Dm?jzqF`oj zJqQyHmA=YR8ImD|WOVwwnYCy({Ok&^n4`a>9X z##H_U6y-B?AIKIPkXK-x-34oL&?CS(Msmd#v$*wZWxJui3&^us+@o>sPJQCvh`#?J z9UJHu75)c)qYYNf6|_0@+h8jOF(pS}h43)w<}?V1{We1J#5G|=XjQ@@jD(uT9Fz3c z8SnnwS5<62v5&Z{O6y@wnQdqx(rFj5-9j9HnDE^!YtfeMblw;3C&uGzQj`-y2W_*n z7T;{zY_e|^;M!gKQVx7{)dN$L58?rqP$MEnl(7)X7>Ke3%jE@-m-hL!PvN|4oQ-}w zcHQz@#BG^1vbL?2fNoF{u-2hX`n(HKqh_lRz`H^YR zfxfa4f%&cEzB=L6@Ac&4^-Oj67bpGg$i2{WW0g-#i@fa2XonVTl@|x`-|vvB$n&{=qkZBvU6?v!Q!j}@pk4i3Uhzm`Q@@|E2;JE3on&9@ zew8XR=L$2F8(co0E6MsoTX#I}Ryd_jcDy^-IOJGY`71AM;#iMaf~>{)c-O>G%82X; z7-5bJoG6|M^zu#>jei^Q4cxN+&Va4gtxuP|&iKrW`Wqkmj@b$_?k)^e;64L{HjB#- zOx#JVCZa_AEN<#5-`V<5*A5ae87s~)z{@O1E-P5?U z6x5vCd*zQQV;{&rLn9>;YaDdF{9kAwyzIYoy}+qcg*CHExyf9ADvu<{8*7C*yIrrPdCnp^Cgd*tV_xEBt zgV^Hx_ZdqiUZwJT5`U>-&t{I&=&}#3z=6qKRIck@L=|{dZVEiD5tSBG6wHmb3_4{L zN>%2C?()Brau_H|qrh?t9MR?kRGsRE^b6!#GMhodm~H+Dq%&nv&Ymncwh?N4&V0fG zDXX2+v$fBS9td368JG7PUV>|l4jk}rvfW8}^G{O~B?m&xyoFSBGZ!)T9&3Hn5+E(I z5R#%e7K~$EqKz-qWjln#1S^AkA6{UDXGm!yQ@=6}k)zAjOHPMVdiAlH&R?EYbrlaK z^)xw@Kj*x9@tZh)prb=8>r1F^*@ZgYKZi;lS?4R(g66rH=Pe|NZ^_80k^CX1h(tK3 zGd3VK!dQlb(E8AquJ?Xh_p_bdyoz#0uUt&M^pGA?cV(RQm>yDZ>6-)y6et}42xz)y>CRkVC^Cnf$bz(SY;g*0*-Meqj~PNuIH@zLc?B61}A zxMb9iJCEYMkX!L18xD+nJwO+3i!Jl;V&Uv6aN{v1bn%g2;Kd0beC z0j&S*%Og>166G%$C)_TwYPqG0t#(go6xzwJ|(ub@YD2=0kIbHM}`TQJQcHM zHbYBOwhF09R29Z?fpX;#+x=0Hs-1IZuKr4i=Zz)1$pwN5wS5oh1vbWal8?8Keeyh2 z>7s~QFi8v}NpW>+JYNk{X4rO|YvZg!4J8u^OkFyE|LuzbCJoHRy~XJEV%LI_{hmpx z4u@VG@Lp74wR+voWt|uBnTPSE%y+DLC{1<<4MQxzOs;vE%sZKEj@rSrI-;^clVNJl z4Esj;sNND)o5SDW(;Y##=ra$WU4DDB&-Zdj$nDq5e>yOtfPJBs4%HCnGg~P0I0UQ} zQa#V95s)Ids#UshQ|*Oq`)_j+1h3{b?JBL}_(T-WJj_X@@^s1v1Jh+kUshISe##03 zltHTvMzEGwQH1B19h3#oDdNIWatO%0-Y4gg68Kt0#(@^QE=m$afhh%oS42m)%1#b! zQ~P4Dr*Pfj>ot;JvBef;o0cjfcm6`pSUx0ZCH}CRf%={>&d=gH)53ie<;RB=(M{Yy z(hqBDzasW7SsD(i$Rem8_@&%`>otaiB&&u zp_vgB=ZgBpp7w47jm9BNiD;)ai{ z+EMH~edW-L?9rFjpLooo`~H^4QS)h@SHVMS{|8q;ovWXgesujS%q(+wF>Wy#aaMmiWrdrP}+)oqu^R{y#Bx|G>b) z5Q$_GvzZGY;Unv*P5f|ddk=FZ!xcFV@2SVu!nB04jj20ckuko=D|flH*J;wQ!tF^y z!TXlr2lU8Y-Nxfnw52|2y)#>$d4@iuo^(H`Am0wvECb2EjIszgRUq6#@JQ5XIA%9h z#q^bV?;uEZE?fGXcp`@_?+9@$!kMb)ti#=8ZTe#vy8olp!_Pyx$BVWYiU0C-7WWk0 zBf3Dy21+NeUpRzQ;p6m zLb}}vne{`~Aa|jCNWfXq)ioQ=#Shs@^luBfONUPp2YY3HSOcF3G6B!1iB(DzuNJOg z7)uB>TGs@X?8$M))Zm1n!9zS628N`s17I$coCU!ABQxBJ z4F2AKMb!Qih5fJm6~+I7-xE5;kKk)odBTK2LM=CmvZP!w7nv4J*E=j^9D=>>r78Q0 zpm|7)gTy>;bB_7`ln;KEp3h&z{2C{Idz1a=7_h*CUdgL92`GyBkaueYtBh9HcYQz! z5yIRW;&O&%^tr4sV@hL|{?lGZTaHid^=?yNl3_=%|K$U@WnE)W#NP2M?xn27VQOGU zNGb0-Wt4jG7?Z^kVUbY)JGRiwp)XR@fG+)Uam%y&(0Rr_#5(lXGbc;=elPd6HrQ_) z`8IgIz*Cqwufa2QgCPEcA_6!ZDPU?Mwqam=w}A@(LVC{^sE%jI?}%D-g$ok~sj^wlQEh%EOi=wwrl=RtMHO*Ai|26y%hL& ztesy12sdY;+~I8pI2pvMhiuN+T~?kEq(+|2gzMz2 zGg)D1GCy2VW(+QB1J=WZ`@vr2zMmK@$MWO_gUYNZ9cmpnE@WHF7plF)M7VsKsKW5i zA30!~GB8@7-W262IluLQZ2+ZS(_(9CG(EGLlI(z3Crb|iXnSeUVJuS?Fs$R%LJ@^T zluz_cip)Njkxy2UjgU)MDK{|vfe|%@iU7xYj+VqbA?VL@AFBXzHWr>z(@w-eDmQmo zcftMcdyE@e>YvrnX!B{NldUGPqG;{=s)i-a2AgbjjCNEmIP7u_Ox^YZ2KJ%+ra*q3 zE65_2Kx41gUU$+rL_*+jzNO&t^GDKMPc69E14pl>h$e9Db^Cm0phh1zc&NW7NON@q2eRNKzJzQ zN__o?uO5aH&!ObtyQ}UTG3dhdeWs1RSVk_z{}}kY2L_v*8zDk(LJ^Sk00!XVi0=Kv zco_7f_!^M<>GJTonH)3#45TzyPbr|JzupH`B%{kJu_K^D%paJe_~aSf@5d0}V!m69 zSj#YbwiLuANGi^=xWmRufO$RiA6ezUm(1oUx&Pk90`Z~=s`;G=W{B5QbU0?9PVBR~ znDc|9hpf%}$WTS}E``uuDksNter^|3A$LXA=4bBR=fK`|CvEKEno}*R4eW-5?@HdC z-@=I>9mI0k3A%%Hsr&};SQhg-8!6|q>ICe%lm7Krw%iWe8bMG;Mke31aaPiIv^d)& zqGt!i?sd!+u4g@cpmGKp6$hdxhMkOth`90O9g^buR(*eGrh%lj-a!*dZt^gZsLJr1 z-YRF&$1{^u$&ymKV1s{=gL4;&6u9E}uGElKxSiPqusX!UAaovVbI=WS8zpmAdJjnt>Wd}haP10toz*TG~PI4>S`ztFKL z>)Zvx_dk2e0@l}GAr}e7kbOx{ka5^A-1hP!gQFGklZU#4GLQDS>)F|J!3jFL1xBOW zzm&hMxa+o2kb2<3(Hk}4l=^;5sa>Wr0#xcl$;bx0SVOk?gS$uZb*uG*D^MFa=Gd!A z&wwyNQ(_yPB?L`ezvrJ_wDVRw^4) z*yiF+BAJo9Oi%36rhG+Vx3KZ<;q*K8%9X8eT@JAq99BSM9%vZFm0KFnlkG^-Q*8j3*YCGzQ zgggu_{I<0#$p55?$SEP$tz@A+mDw4Gy7SfR2%=JD;ZHiHINuh_ESzB`5z}C((AfFDj2wBJ5pz<<{-`xGu z772(Vii9F$CvsF72PD(AlsL-;Ls6X7=ueWgIEKPtvZ|kw=JYO!_jR*`7JR*q{kx7o zJKp=HYB{wSo^QAN{NvV+{cpw;>JH=EsU?)LW{JAAS^ki@2y2FvjG3K-+{9Vj(lX+_ z;mIns4{koGFQb|=i;+^NB(-%qgh;FHv;u@(zpY`i=HBqj>m!R}7Xl=4fzVeBrbmNi zn-~fRMP`An?F3T~dJGNZs<1dFOQRwJq>R-znq6Wkk?#Pd9 zI&d#=HX?PRbv~JzPVhNQr=7C`NMa7_(hBH%8hYIrqRx6XJh;3=t9IccZ-&kfGUy5( z{f>feDi&1Duly(oF60Wz`Q;i@ntaa=Y|}7h0dte@ktkjXbRJy=hs2o4?)*H@p&V(d z<*a?-Rb8J_b*^;vWgJEy{ue2G2P+y`fB1=BFLxSAmWRe%FK>b z{pE5NMR5O0aWomnZ1Z2jy5~dH|NPCAbPdub9Y0$hKh(g+zv<+t(EAVnoF$X(6Jy#V zX$hehANqT!h7}pqbScPx<9&4Z=yxA*{je*RfF8iE~-XiMop9=Z;da>XW();6@T0ec16be72- zPIP}ddUO!?T{zR`Z`JGn?CB$BQvjUrcLa4OA`IgbOQ~Y_vt|=gd|h#@xj9#D zs-L*^b1!EZ{pH50wGulUyW?*|(n{$@u030(ejbXai>qwB?~f=idtSm00)Z1~O>l2V z?Q@1PLs*&%PRi0>)iEWf?ddV?j~$;9yW4aJtl@T=87b!{?7QT7)$`(l?xOl%+FRy7 z`}2CiMsRwD5_p((l+zRhJk@@FEwP+`-IP|su#%TDh*G|qy}yE;5ito;8k>StkT(_w zj`jC}s6HZSPFA32t^2LvViDjRbw(7{r3^@~;IO?L6lEaWM}iGI`&h{4gH6b$Lgmthp6Bm!l$n)x~71% zHU?CDpVml9d0ve}48P0*IIIRU*NaHCv^d^!9dOW(mBWJr{hm>M0#3(wyN!E8UXo(V zjQ8sn>DDv#yH}NWm+1vI%51xh!Bot;sGXGGK&9Wl2U8ubke8Se)R`Z-&q5;aMM_KI zCn>z-Mp6`$Sb6{wK0rzLU85|&M4b)HFF^z0FB#{bxz*{&?~4w_1!zXeCYFE2h%wF} zs<$;~07rX9!j9%p@fPv=RNhF>m-P`}cwg{7dFL_p` zEv45EQ#}e+kH~yOk(x5w`7?m!Tt2MWND)j-{Mhq^3m7jVY%z;FXl1{X_<7?TZQ@IX z&lN{({!Z*?N!du;=CBFITG>W7WOqyaLYExLL<3iGq&KjT`6&<65LfwC2X3|cdb3a% zPU(0Frdf7Kt0WKjY7~DW4-)A$bfuLdlhPQZdvJTP*PVx{aG1;-*%kYmjeCxk*8-D@E|HP{DI^26yGV%bQVTR?Vu@W*xP^Lf{kgTDBDzWw$*esNSb;Wvs%pM@CUJ&Vh*#Qk6YpR+h?5@M+(wUPfpInxS`)``IgpcXH#+75dQb9={L!`#LYFo;r> zUik7nXG2dFRbp9ptY<}eqRp{N*>Q1JLT=3lcb4JWKlZKJzr{uI$J@WK(=6^PL2(xM zXPS^8(?BV+xQ7{YjsNym#JU$dG$A#b8$y>PV}<=AILwxEE}7Rk$R4wn$b_JoFa~DG zj)`jUgvoj%388r&Hk?75-m*s$O}3DrtQR!}3>Ln3RyRAm(UU#H4MPT2nnwpZma9urdbKq+yFDU}sF}vuuaGpcuF_ zJP|EvEE4Md*pF4pZ&E+wSp}zZFX=R26cROcU9w~@$Z63JvAC$p{y}!upxtvj%5tBZ zoZ{TIMF{YnU>#rqoEuqv_`#TZQeUt1I!t~9Pl9VT{&lXS)$3~8ww0HrbGbZcWLaQo zua%id)zbZ>cO7$e=i28T-&=H~tw%e@*Ht{XIZRLjW(h}31$0TbIx!`?ITmfKV9qST zTL{MfssH8J|6g>yg4_?ZBzKA5QYo=qsV7m3``w>09~|>x08AAj@`tmyPoKCx4zevo zP0Dxc-eJYMe+3`^E18&o!94%|XDPFQgZ>{i@;_HZ&iW0okPO`2@ zTD$^lVyUeI96(@C==2A64J*;Yvh@bTNGuwSl^cl53I|Br z2B0Xu%GsAlhGb30*Y~DQUmt@b2izJH0!)SXEu(Y27bS&0j2}2mkTzw}jZdYIjQA84 z73HLaCB%I?a4KTa;n$lx?N+;p;x}|>+3MW^C*Ca0o+FZ%Iv|@UVo!?rH7JI7c_Ap; ztHaEsQQ#mGLhL74rL^?!8pK(+KeC3XWPE~bZs!jV)_G_}3y++=@zHSnRzBk}UJ5Ga z!h?X0;bkevi@B%8A&wt|g~X-EB~bKfdCjB@t8`Ml_&j+f8wk82>H?n1zxw#${gsp%@m*K>~6BM zywp_^TY7C*dYIfns5ex9bz!6OrJ?4~g6dlj>N7&CDeu7S=IETEqMRZqVA#lkfJs4Wv_I@|tWy?G{i zz;nu#sEP)_c}ZIQpZY7$;F$LR`%o$G4 zBIJ?3&X@AAg&7aNx?L^YmHUFzMH&wf8ygQgh32LI+@^U7?9~dc;11ADHRC`{9+yWz z-jqJOL(vUY`vgQq-Uwy6Sr~E40n|nk+3?L)#EP5g_?SOQI`7`Vdy@MQVY{(wdYz)PCBS(4#7R^ei7HBi$uIKXYGjOMDI$6K6^XuT z8m|%d)k|A_3LW2ot#9#ne7A5)1!oaMJE?cxeZ3N7n4XCzwvART8YAe5osm^87#lgfeek?Q} zTZM#(@X-%K?rffTV!C5^=v7;==kVa4|@5Ja4C3YUwRXkm++Z%aT24Zb*G z_g8rljF+l8H=!ua1CktXs*%*3rSa9~7t2&#DrQz8I8tHuKtnZ@Y^Y@WVaw=JeF|UI*f7>iBfDtJ9TqI=)zG}WG zorh{qK+eq*c1q9jNU7gU#iQbpmsyoh{48EJvWxt*URFFS@C$LI`nf%P^yox$Xuh9i zl(_Eo#gMSD5Yt|Z5XZ`vi&iCeMx~{|d;GF>>>_y9TEww9nGt%@M4pd2%KsqaQ5%aL zYNppy#6dUsoV^WX2y5P2c0@ zO(6xqIg=|AJB@^#XH0L*MIGD3=e8TVyZ1f8;hy3pA^%XV{;o_CIYjs%(5w@rqhJr5 zZp}s(cGj!P_F~PKP4+D49h;OmyK>X}>#n$5@N$S8usqjg#*gY|dU7rOmg1n?5LDd+Qzpp(Zmc=RSV;oy3O| zQOj~aPw8wMIMGM%t-a}Bcpz&Vd|b-Tsohc-P~Oy5UJ%n>R82X+T*ugkgi121$(s>p z$=MnY9V7wfH(fCviea1;u(W+OuS`dyHaXOX&6$+r9mS&bo-bOpuUDL#G#)pI|MF4v zJbL3{MYIIS-vnfpW*&&eS_y+v7Bkix@C3Op)kAKH3_H$LbOjFeptdqAWXQ=sBY~(u zXF2|ECVeKb_dRo$tPiN4u!O19g>cA?VsDAsu-hySj8mumyBYdFz?z~Q`0BbHzzKD_ zcx-W`kPyY$)B}|o13;iSi!9L~F0zvEA8a5hn~IN4 z)DNue6eTj-gF^=?(QM2duDF}mw8`d@NY8Hf^E;mY8&bk4O-I8i??*9J!Q8mSbx3fB zTiP2D{E;YIFJd(YfUW9FxN)Qf-!~zWBsWy5njCF6wLhduHRm4zwvRB1%!TN>t|>8f zEF?j_$vOv|6LOaBWK0fdRJE~#oo|%A$VuJksic5;{WV<#n%ZL&*gF}`l~cxg$>z}4 z=4w*~>@hHiYEZ!m99hNUYap_0WILge_mTh{;{}Ln<|tHCM*Q{%@%;|0G5H2{<{eRc zSWzCEuZW)H3aa?uelJEg&;V(W08OzDWfNWly*Hd9h~&a29O5XjEtCks2}sAuuqM_s zT0`QMKT$8_w7<~+6|p#WH(+WCc@5XT3r!j5ZFDpH%?U=5_u5oEMWTew8-h;S3%jSd zO8!~;V1K$(uX8n-x{MISSCD)I!dLlbgYVWjEitHj84`~!8+1?^FqS5WRPo2I+xv$3 z{-kUe$hCeYPW<3B6P*Dq=*fKK=E~=t;MFUj_E1d=5vCDQV`WGWsuX)3@&~d9~~A6h6ZSesz6URjAKxr1Ic(M8rSAmORD( z=mmo$U+0c_ojc#b1}xHF=Q~hDnK*jWe|^3KL7af8BuawJsTB_5y8`pAKQKdZ)SrcD zxJI$%8$(^4*ybgwZke7bv! z-ninywPzmhRym9pP|^LPvXis8_B+gXM8t)02+aN8!4W08#o`cfsOoXq&yeu6WCxg@ zK8Azp1G(jV`3mPT(7i{+)K6fphw+n<;9BNni{H_m;I)|9`7%UIkr)ZtksJ*q;Sk~~ zbcni$cvth1*pG%wd^yW|7{?3y{gN*gw^+lRmuU^oKeaA}R-Y{oZ&WlH$DwWi_lX6= ze8sVe_Xbjl9Do7AA5d9Z1lY*Mea-bvHWKgXT&xv*hfz8HMMe!@-HH%)(VrB{)Td9| zva|Ry_d3g|%Wb6rDaJPYx&wk*)qJ$lX|X|9jgFRqXgemoQ~Ecx<~7Pq1wM2vPn*=rTo8VD_;VPwkjMj#4!O@5zkQ;tCD^kM`a) ztf_Qc7llHNC1Rvk5Tc@>0!F1%nncS65i!`&3Q-a1#Apc;AS8%ND^O?&B^E?Q8l{Oy z0HsOj(V~zZBnTmiB3)$0f-oh?^n6&W);fFNwf3{?-2L2LXJ7vWc_c71=l6|ojCZ`_ zeM4tf;?R^s6=hNGciX<1DDQ0B9GAbMXa*C*(yK}%cJQA8j8%gi4iNpfS4CHOs0MB% zUd{RvL=<47O1UvKH5NE49HHDqsV3ikw@-nu<;Y$Am%`kgox3lRwyj{83J?4eo?+qC zb^hFp$EFXz9jYpO{-c5fWDx&{d}o>)8#-$%%}(ZHWp`{Fr(|wid60AO2b~a5iu$oX z0UIFId7gE$j1W902Ys3U_-`S5{0oQy{kiWi2r$fnn|GB6GBXT(1`QixYZJ9Sde|jk zguBN)gj<42O!X7H78MF4t(L#>4&6KbL&B+0Ok<&DZN+N#kIn0o68Og9Eot7Z4VrS8 ziSnJ87qcJ?Ba3?q0D%YsCpo-{AXIn^D;#a7E*VvJ9pyef^gR55M?ZYjy&dl-JdI5l zGAe_XWtlNAmrp_NhuQ@@`&(kJPB8R00>3fVT&)muT|Z#UMWU#JiAsHW+JI?JVVw`&1| z(_|-n%OXORB5gkH z>WoljhJ~LXmKaQm3dvb^Rb8a2;}RPnh@~&ONwI^bXUm|nLLMzjr4qBOf6_EYLw_*U&riUy1~GWn$S0{~?r?S}{T zoH_eSs000Ob(MBh;wsg># zIAv;srDujH-0|i(+QOlmYBHgzS>aP7Tefe*Wsfnp>X=yE2G;{gERXl~?(U&I4_L=e zqGtj??t=!Dw8e)(9L|?L#hJnN;y770+dBx(72RrPzrNatGwEiTQ#&lzrC;-0)o$9R zIC{Bv&HxC&_+IAHfPcl8U4>1+b`;fK90VGyqt%|GxxI)xQaGJ)A(O??e zKN+E_fn#&)yjbwuRvSPkq){3V&FqKd23)FATH}*O0kndplGBgz5(}1Oelv-CD>%#Vn7EV)E7o{ zu3XLRSr3VGZL*VNgG$q|`Z4?n<8xJe@4b1K`rF4n`Em?ANIc>4vHP_cu6HXIt4)yrn!o4<+ta-qB zox1D$Qql0l9O-f9b8YdvIOr5?>?5;Nmxo2cQqb?2@MH+)D>@yFz0KV z3(ah78`6Im49FdwJ9PiiOKgAOkQ<1Z=NSFkKnyKJvJ&}~y@2M;xNgq&fedQVF%{@5 z%!HUI!|>|wrwCVHiBJh6>0eUg3U0%iMe7NmiB ziPXkS19;Esw(XJ)(DpJ#={Gu6UO;RfP<*G@pu1g4I}1jyoCV(x_#n&Yg|5`7>MfTw zKLE^X0Mbq7j~YL`*!L?)N;h6KI?(*? zRQv=r2WGo#pJ5;mlbu!YV+OIpY$Dx#ge2Nv z$j|TrlTil3+qt_WHsms^IBB(I8-GzYwIZe#y}W9#Ajx4DB}}!({I}NC(JeqTs>owo z<=TZ{4ZB@F9_$^wv|!28CktKo*E*qA0|9cq1sA@cKE@ID$YOtpR{N_t{fR#r)ZDx~ z!T9*CNH4U|&fDWhVEf?Vv*ImDf-FVs&-CXfIp&9=e1DiA>M-aL= zfUb?7emATIKHc#!@Unz4kbn@J#Wet?%#z*1&zvKdMdD6?dy5Zd4|C9;4xuN(&hxTu z!peNmH-hAmhGX)`W-jDO`gG7)s%C+_!Z)(#2)RI=_BvoH$^c$bTaAZ2x$58_Td3B#fgHEKZ}Ry0nFx0=MRdN<^g^r1zNT0CQ=c<#Mb!^kV3Orf#?o8< zPQ`R}vVSK@?X`!Wt`WFQCk6_xucI%oGT<*r*TQp;$9^5^-6O`-Vs&>copKe^AU|y_9uTo`olC zk6obEZM2B>f?`qA01{gCi1rJb?TwLW;eDrMAeD&^k{4j0kXh;dK9DJwB*P$M$kx>d z3O7H_-`y;rXXYhNF9Gn!a4~-2bj0ZqZ7iDFrTZ;>MPd@5S@QJC!l@g9(+q7`V`%m3 zL0k#ozBONw+AKe^f_6?r`^jOzO;`rdBL=eUi0qabz8{Y)`6M~KGhJ=Y`3l=t=W>_$ zXE=n?9%>%;E~aTQ-9;p9{ozDI@fdr>JvjM3b3^~$uG2p?FAdqcUXH5t?|4Q3bh_ac zt@Z=^V+gI72&Ug}&}PnZ9Z{n7|64$lNB#-j0J%hm!Wq&G?j$&B&+-HqnQJ*P>#=hL zraTY8)IJg37$Zc17+fODq2MLoQI>WmWo4g;Nc#?c4$+UXo|i$SCTvWO(1#5%Vvi_q zDDD=PfD`kYwe!Nlrfi;Z(B6mz7M!3tRsv9he9||$QgRt-qeF-3{pGbp5V!>Vi-qLf z4Wfvc23;L?fG_0~uz3&zB^YuHkDDA6Yw*kxA0PDX=KI@Lr$*qNJ3j=qDUWJ$a$|xs z43Ad>FC~zD0$46;NEu{O4=C7Y@ED|bu*2Fw5==3MCR51n$1nLk^dss@4YHe!8;DD+ zL-Xw34!BR04gZ4ECU-feZVz(*lpJHdD;RyfbbYsUoBX_b(;`RMq>;Uhx)m(Mqt^0* zDWw3al87B8q@86b!j*MYAkGO!L10ot7$z1lZX>K*I?M_;&21o=3JC|<<(Zx0SK}K- zqR5#$lwJ4VLkrpe@#ydWfKnJ7T7S7-yYqK_X0)XfVfZ*}{3DOiIUrwH>VZGeJ`;iS zDPwn*M(BSqlvx~k`s|>!=4FdA=)}Om7|PK-NzXO`9HO2LMp#RWQY69DdRmF5keF@f zdmgt{x&abD=eO7^(a&@s>-_An(bSFPus3UJV(Qt-OafqY+*HogUi@~eZPnVyh-OaKe*ry^Cjt-J|t$Ga@=4?Z&<;JQPL?_V#4!xdm&CgQrTsgawS#82^ z?S67_sSr%^YgLXP7IvbyQ}c(e>L5m61nH;&NoaRU5b#oOoNzr}zyhsQQoC^gq2Cl`H^3q#O^3{#yuARRx|>a(obBl97mEhBZrUr6)Db zkwcGihscrxT>~|`%c@lFRWeB^ig_v2n3zG+nd84%lkV#7%${1};DJ`k6>iCgno?!6UI#I#*0+Kr_23}dBs znB~BlGXuCc>fM0vf0o-n4rwCml4EI~UbTOd4C74rm-kJ<28768-kw(w-xMug7a~W$ zdQBne+STOUK;fnu-w$kWB0*)z1ux(@@lB4_1Y&`BG-4**0RcAVw{NVP`nLM%Vmpjx zelnHqUF+i>=w%m>+c}f3u{IFzR8n31>{upek0W{*g`jtWSU=x?Ruv@=)1_)&H5}~x zWabUAIsF@!<%#|QVKh1(x1{3(mZb^bJ#zbSx;uA;bbD7YVToyys5T$~%H1Dpc*1|- z&kFD#W_;%eupXw44Ic#!KA=w29GS_T3;~{jw8a$n#~iiS;)2GeAA$a|Pil~Fx7b8Sp^3Wcd5?5Gf5qufA53im4qw^7E$SXdD3O>_ z+rcCzI34>X!&Acb(5<6D{4!WHZ*voktRcJcIC>!g-h3sT;q&Q0w+)_qn0-|?l)f-@ zY!H9M!{kI)uo5n!#NDzT^*;G3Z8(W5R|Rm2h2;5}y@hAGT63lPL*}q?E^OIcv)eAw zCqyT%VcY2?4LFG`>N2dpgWO$q`&9%CdNm`fyNik#ReKfPBEv$Y>QiDV zI5CFP=}$D9i5%((zqTqQ$Cn6XD$(sz(nqQdZ0#zN`m5W+ikRYGzZ*B#(rK?0HOHMh zeAAVJ;o+67jn*Y@P>>!2Qh-XA8Y__Je1__H-`s2*#i78Tx>~gC`QtY&;g18{MoPlX zv-15px8F{7d2q)qW-T<+(o9V3Z5ldT^fWIUfni$A_T`C=w#w z*v7#Ka_f_^m#3ZrPLjWyW+PW`rIiJ(u3O?XWCCREt>W$}fxv1NKCk=$7LY+BRxN?V zw1;*JY-^I^Qf0WbE^~i0^zka*i^LN^XUhEFWp?uj9c@1m z@*BzL%kYSzm&BSw_Se5<+lSLZ+AExsUt2w>=Pd@@`g*t0+hRi$2KspvQH(nbMZ0=^ zx*av&@OJkHFDudTb`=LLB5VXqF;+5_6O={0BRiT~KFh87iDJn6scIkf#4^fv>G$7{ zyno*k<*Oj#{9_dA3j*`E?yM;=F#)bvjO>XyjjYgz0b#mXUIo5$Wf>QZbM9x4S9t&G zTtUt93RX1g?MrpOu=`TL`~lReVyBHdzDXV#pg{*{13m}9p12P1I6!{JIX@7I>R0WxZ&(gZp-j;Y+`1awn<@UVb z?&vuE@&%UpuS=zN7w%y|-}0h?5bT4cXpq;I!&3tEvI&r&Yf>#-llz;8>uWE*^>-RF zhO=`0Q#03yHfO90d_Ukx*5frMCsN#Vh!06ib=PzT8M>zH(dI2B--BfN3vPg#*$tKv z7y$W&*oCxS68IoLS1EwS#Q@{4$0ZkOFUOJB7;zAdi9!mKHQG@vKLTL&L%CFY7np{v zm0e{|`ofK$GYnD*yXkQ-8TX~WMxL?1I7e^C z9+pK>T<;@I#M1Ziq*Cnbl4dR5)f&XS=WM3q_ z;=TfFdtSBE_J_ZIkE0iirG^Boip=_{?3wpzkmrFe#Bc_&i~(%+?$e9YYG|B+8lpF| z49*=MaHngK&vOJq^e_NmjBff8m8;MfJUH)>jetrqR~=2iboqyteBb=+iQ+xRX7)Z8 z&@YnV9U;iK=t5fULH3yl1HM76@ftHUr(ArTpbE2jWpSi)g)|YdCcQf2=Xq2`dEl2T z-n8Z83VS-iKpIRC|3qw_l;`{QeG4!-T!f(8vhS+1&~bpC)#o7-@qTgI!Jp9FtO8Y zFsQu(3|Y3a?xFeflihzr00r5!HP|I<0jq1$8PxDddLW3o@A1R4#7|c2*9_pS+Jv7g zA>}E+H@~b%8E8{R?E(tnIPgqs*W>*R@$q!@!zxisEq7&W_9&f+s+q{xD-6QMQPHK( zerOKQy<^?tp~^S7uJS=FsTneISz4xPGBi4Oa|rf1(Z|e((BcL27AygnE5x#?8f*+u zQD;oP6S(77NsZxzY-4d+gvJZAK+U5u$^o7#qO-R~0N47noF?q$s4_-f)Bd49=V|rz z^o{4wRmJ z#_nNTk?})k!-qtF7KSO>T$sC?k+CCqqIJU<=TP<|PrnM?n1GY=t;qiml;=ABdIcU> z+tY4f9dG>79y`EN0`37%i1DBzafT1`-7y?Z-rkH~5$}2!-Q4QUBgDCR(wEULK7^f{ zwL-23KUc#}nGxeHo@!b}Z9vW1fO#A`NN@6FMQk33w8OdFQh>0x;z8~Nc~3Pu5Wu>s zSNtjGw{zYw5lU60MYB-dL2r+Em6wb36L@5b$Hk?4^8Gzmv!7i~^?P@_25$`7VCd;; zaEY7e+mo*NV&`Udzp6(!(!l`GyM|C2$Wz>r!)d2%h9?3d9u-E@&rcqFGDcL98VF?0 zN7Ch=4v|)lb-YTk`4t-^FS|97K9s^M)N~PHV$HN2FuNcmEiWK!h>>?NwO7kCCELw` z_Q>C&Ttz)e(O!GI{`2Q|`j2cl9dcUT4$$^Lg3Xyk?d7nAeUeMmE^a9`-*~{CavEmv zbpq;~$_E;UlA!@RU&>afq<&WZ)gD9_zH}cZ?xD-8j})iwQVSPvKsEk>kpCYJKL6_} zZ8`(CrisH~iDVbRh>AULL#o5HCUoLlZVYZ4ooc-iffntrq`%ik_A{b@!HKV^48?q|6zOgUOTAZlmfr%w{g*vQ)QW&(1`R{;x}JyB$YJEYlRmaGD& ziM3=;q&B>^Wn*E{&lwYQ?Hh9f$Uz+whjd)7BHu#QFQEKAyNilDHwI*KeY0c4$pl7P>0d_xM5svFUW zM8lVJrD{IN4MlMuIFFs+vCne98Uss@e|if)-QqjfwZ(ya$J&DiP6h$0K3SKtK{Rq( zDe={#VS1eBauNCp#Up26JoUo3r8fwy(bB`YV_~g7TPD#jks`c|8-Ml-@v*jW60Y0U zG$~&TQsF;~1jtJO`n^C)773=j0qD4JGYm#kJUfyKp{q6NwP&G=!zyU*Rvy$O~6lrlUVNL=Y>dAz79Fmolt+9bSi%wf~OxGESqh(iHoA_k0Y$Xo-3#7`$oq2b)Ru#rL@ zLuJ(Rp;Evj-*n_U?PB(X*1oKBaCo@T;&AEnlFBPhqeW|On%5rPxgtoO%_AuJXPSrz z(N&oH_2R^U#xNw2SE&2u%%{1W%De%;Fv@mEmrvy(j=6I5yOCjlW6(!N*UmZDbAk4G zjipLxn86k4MjjV6DwvcJ9REK<3lymp9f46jp=5l`2{-sI67-W%%=q zehZ!@VWe>w+kb?%>gAHMw`J9EhRCaF&h$mig)|jcDYh#+XbDxxy@PUcAoYjZ}-ah3_>1xo52D2=-lFgH!@K7mE*OTnk)=y6p;-OsY>et$=mKzyA zIiklw#mnFVsWCLu+^C~6q=p#YDW#!Y znghCIYaZ;tgzm&Qela2Yo&7Xwy`C2s-i+G>wM9`3a|!t{y-9a;C)T>ZgBvi;RjFD-x=70# z+@Q!*9-0$c93qq+TL)1IHqY zg#lf4)(%lx?9}NliVY8o@^#CNt8yqBH_3S7H)nqJ0S5@!WKXs>IHfw35Z3UP&llo$ z02weVM;5z_62w~1MKocn3Am`dQPR_#5- z!^8m1I}9JIOBOWDJ$#_8q*ynk-dR*ycY9XsBM6 z&%y<;OKpWaB)h1cnd>7t0W=+C8)YBN2+zHFJt##$S0B$@Q`T{6>pNWA16Qv5n0c+e zJjrMIo7Zn@F!=d^{hST$or2dmH&4Mv*aV9AW0=-tNvZ+0Y8&rt)~PJ;%La?!%d?Fp z1b*OwmowS~1&Sr~(1N4RPLR5*UtxAjcj<8BOpUR1>H66@{%+aR<>_Tt9t6~2Kmt}y z14>aM^l)DdSDoS_yTSGgbQWI|F(R3Y?B(Mi^jn8Q<6U)`2BM~nEWZ+NfU?v~WDq?w zc=nZ~u}k~3wasv#*Dj`mU$$f^4y%>!+CLtNsb{9VTzYe_5lOAs%GT(J;kuL;H;xNZ zRxGmJx6svPk<)_Zi`Pc3`~#f+8zBHQm@8fBEg{qDEJOxkKw*u#40pMGoTkTVpe1`K z=+eq(153ygb-k7$F;rvt5@FxwE+UXwa3mjXbm}c$e7~$1^t#=fv1T1=@<{BD@`wi) zB3sPE5K2mt2(r7_7NVAj+hQ=qA=d`%MN6G-eM+^AX(qyo@v1-nH`xrqf%`_n&s(2_&;{k>$HyAQ&}f0;e|e>9{{-TyoCAulTiTykJ? z*+qS&m39?q39-vH6MsV5+*)VKu1Kt;fug;iHbMrj-3H1o;0ZMqhGIXkl*VVjFTiQ{ z6}@v|X^dYgOv+kEL}N9kYJj)-hNP#PDz;Tv#@K$h(!<5u)#c2#C-d$79V_`@jDP@J zNf5^gkkR!wO9B4YnXC#9f&*VJhISAzzRshh8en-K-=>J(u@+J;_c8Qku`E2C-h!x} z&B&=p9u8>;e_a6j^MZXTzLi|b5`O0Zp#z9)l=+@#RGE3_kduBf6dtYZbu(wmBMeWB zXwg;vpyFN;7^$z;YhVEk<@Tu}IK06V(_Ju=q3GFR=I+8^R(tL1nI0<&k{z}0F364g zSnpW;EVJ`tuWym@yPGSOUn_h%16EEit@a6fAt)~%u=M(9e%O9e15QH*a>oFhBUa!r zSTVpI?K6Z(0@hOjB`i0okh$2P8&EJ4?tITlYal3%R!ju+-vnTSvujTgD%N->z6~#C zfnRJ7g5O^JDUaRm1dhGf5iaFn6n#T1wzP-{d!fPiiO90S+66b(vPuE6F*?IoSg-U} z{=9H<#)jz7t5;4T`jt5=pKx!G|J1cpCpi+)k?w?Z`4LvN_@xv;#f%-=*7Nowlm0Ck zU2n-vkP;r-|6pBhwF{D^-hVvwGWGCNPN!3g{M8?TPQn3jHB?&dBMfwe#u0dQma;jh zx?J%Z*r+w&(j%BI(8x@qsn1yLSZvZyCJZO0W(DvAB0Se`d{3);SqTT{*4;EsEqBXq zt*QXSkKcn1JxQv43vBpTvNSxP_9W00q{`4uv=;oEz`1rxSGpFMS71b!l`NX^D;$y= zFyH!9)q5CHg9x+hsc{hBiacZcoLLNqWWlH21-NVUVuQmcj&=W}AdSauq-+;C*K*_7 z%2Z|eL(Q0{1?(zdXi|2FQd0*K{8*cyee684PlNe_ihXbU$2s1E&y8Z6TVC$n;U>oe zyY8Q&E5k$ty#i$Q{%8(LoGbewm>tP3p*6D;Ih(IY@Nmh2zF^ulB8s&JXpK&L9HGUQ zmtXL!D7!!0h7K@K50>`cC_n5vWUthaI;p?^SDy$unhy7$C*psimiZqS5DDOz^gkmv1Aa*0 zj2unn*zdY1R4!Phpq(_#q-)}bQ`nfjlk@>kyzEEn2LFn{^5&_ic8`4PC%I|fs0Prk zz36#j_o-~@A*eJ>x!`917|Wt#HBMEe-c!Uy!!dO=n2F~Q=&{t{IpM>zkvJRaV$rJv z5r$_0-i+qV3*BJb&-$G!HO9TII=buPf_(Lnv;sfpCxd>L$o0qW{S#V?%DwV@D_Rp% zADs&JlS64syl5{UP82iQ6x1}bv8wVlYlGA!bAZQ)oKeD= zd8dxhmIVxLC>449y5)z79AB;L^;M3wrg`$n#xKhj(`g{pdL(h9)z2rGClFQO`P7Zn z4kvTU>sXs)ccpvu?`m9a&|PCs(4=590{gFh?;pZe0gWp5w=M^_T5A9)LcO^76KzZH zVczsfSIOq-)b(J?)atWL$FwvGWf>wpac*U?>?iBxtLff+KiYDm8SS?CipcnFoA*8> zej7wwIm#u)Hl8?{zA$3wEj$_ z3p1Bp6#zOKx8{3QVRXogBuxUIkHq=??oE_gQQJ-Bk!zr}@wv#X63E4x?rcMZ#gcEc} zSxfKM(iR1dY&A^-Ej46KxpXZZ?Wt|IOX~(sr)LHOI|S#eb3T#->gL{DY2V`k3MP$@ zAEypiR&<*w<|j-@ChkmONhE`tBOg9~7;#D;86O`x8(Oq^vwlcw=(~`ct{x9l?z~Qy zEBsskXq+Tf4i^hSLm~=bGPSmN9|Ff*awM~!_Y}TQ)s}vLeI?Qs3c2&GcJtb_Jv;`Q zj!z|D(}=+H^>3fn(GWD~Ds}YQD#rlH%J?8H0k_Brp{wCg1LV-ZLj0saLZ2lNXDIvk4kEdy%Re%OCW4q4?v(7x?1ao=N+Zs zy=Br}oog?%+nFRqa(!E(LB|JWIegQl#vvn-K{CaePg?~HOuMb^1ZXXCjGM?OUb;8` zP@h{4n@><4ceZS*EcACaj(*l{=5gfX_}s_K+S$)C?UpHO$-U15QB*jKERBX!WNDJ4 z$Q$4^(ov46CIhuP+`5Rg%hpryahkFZ)XXubY4)>u--m`5e~idqMFIu-0XS|Lu#Rl& zKg;P*ta`i669rrpnO+-K@uSM3F6*NYh`u4?j>Fr{%R8g4@hVoG0gca%FUWGNZJ`eX{H7Fem}4SYMs3i?2^SK&nI9@u!Zk?~puIveJ zJv-h-D2a{e{w;T3>c0IC(1s7Tpgu8ZwN0SKU6vpT9u3Q#+$~w|ANG*;^oQ<(&D1SY z&uYNzP;i0)>z7PBo^Y(A%7T}ucQmQbxdW#%I#(Kqi&fgUZPvTlR`m&UP+eJB^cTk`Dd!Z zX<6_|*n+RPYt2ANu15<`Myw^6-KRZq;3<-478kOaLH*bod?6YzD3vK_D5gf&6pYlE zG|UmASh@fwU_BQQwBbt6=NjqwXepLgZ7Fc-oypiY9KDtE+D}~aX20^8+jXHA8jW71 zJVC(@NIS~{df&hWuEV%>WW2o=<{FUkKMAJ^Xo|l1+6|_(Wn@NEdT;duztaXrqD1^b zb}3W2(&S!3fXXgYdBOC*mF|t%&BA1eJEwY= z2-{g(k-k4i@f)6qt96R6ZyHi!^-1*}ZF~BpYbL+2px}6(f-D0No(Kcw0LGYl4Z72i zW1d+)UPZd99q;puY6Gto8E8C#KQ=ewRu=al8lz4o8it@eY_JLNfY{N@`+6H3>^)19 zoDS}AM2pq{qL)PzO$(TC?1Ae=+Aen+Fw1e9U_m2InL;We(5;+Bz)qoMN*Rth9Bd>} z8p+QaJfyd@MeA82^|<`b?OJ~{cmIn;{ozVlZ7BQQRwCrcm23y*w7~TSm$4IbQ|*sT zKqjWuKBYkyW?!QtX}}k$+$V|FzG95EOm>T91D72BESIdQZ>578#x_Kp7av8U-qz+w z^+o&cZ;`0V(s)SLC9yel|B0N822QGfZcR7;r!XCTQe`h>*=E@TAl}mDPSJtmasu#7 zpUJ?8&~;qs5u<9SQ59(4eVChQ>kgiZ8d}pWs3`3!_y9l^#~ws`oaKD2bkHulx@(Gp zDHsoHV&?&=2K*$*>ldDoT?eI0b|yNxf%cT$)QWDv>6aBJ{nm&(x2F%KHPS-g7rzAtu8wiouwg`&V7 z@S#WIwy+b9i%2z7SCNf9tM3Yzk9+FDKEu`L5$)tpQ|cqR58k}7wJ?}{w1G;6Ufx6R zX}87#O*mI2t2#utU22hAG+3s!=+>#M{>>fN8;dd)Rw?+d+pM=@)iS31?q*$U2w#s~ zGT~_j-x6S#P;iiK^d$GNNb^P&iEpe|m#N+!1iw%r26(RNBN>@yY;IND5Po;!#hN2E zD>d~lpgy{TTL41l)e10l!04~v4dh0qURx^SIiLZQCvmzPDDVp`t=1M_gd9E^uIZkV z?p@t61K9Qq(#Cju2SXlQ3N;nWr|%LO5^gRitpI1cIgz6%C~qKf!UZ9Xc#bCjLspLe zXE{~YHu8W6d_|B!ux$^bE%i%d>50@Q(>RHZnKAb`E@PLKtvglAv}u+hgTdi8gVVE` zmmihgyr7-w_KF>r9`_+nlI7L;6aIY&rJsA?yG;Fa2y4uv3uByX|Lx=axzm6 zz?A-DQvJMB?{Y&#@sVH(Ua#4-5WXb(Zo*T|R|q)`djn;X>NR{*DIViNFUplXmS zcZsIz>9P2yA&qSsWWy%vitaT%rf3y%h#O4c+Yg!?@4^LVz?~~)edCClO96+t71Blf_&t$nAWK6hVCFI> zrsaA6E)M?NsQBOU-CxnG9F#9$Qp6j`v2x+feL_&W01vt}oI3In!`znz{X&dpFPY&k zBxf4?)B+i`MKJ<~E;*(qQ?b`tHEW!!Tsmmm%iO@I(}$jH+`RoU60j*o%xzqgUPknY;t~Wx-ceI zYV&BdlM~h}f2=IzfWk)o)e1}B?Zkt`dpMU3xzYwyktIDAwV*5EuMDyGcOr`$1sHg@ zwGDKu4s76SK^w8sAVe1#>@98a2x-#YLOtF3q?n502JTYhoCJ)b-Day#nn zm!aU_3%uDJP%zW?4Ajkkx>uYbNgsb~St*oTD zxTFkDP_Hh`&aS#x8yL9YaQ%X<4-fB)ef(JdH$b;Qb7I74vRteb{}}0{F$v8Cj_NTe zBU?=81=KpKg#`U>bqm(^+sby2YWBS!w95sJ;JmS!vV;uVaqO(hyycF)wrgs;#N> z$QFDD!z6x|vyKNGgGoGej5}xNBm4~ZVqA)3FW^wW037N+`;MhFWm>HxemI+jg^=ew zyaugy5B@w&jqKhqhs))G$|InGSjuP~45&xeLP)7M?ry=T+eqRg%C3s8(m;$;SJC+( z8R1~Jagh;YvdEycBFb0)rnwvt#$O^g%f14Js)V~FTiW>U^!|MD5AdwS`VIM&@h0?& z6F`Q(R)pr6B8FGLi}=oA8AhdL7^6(4I$So^a&SK$vB~Ce(XB%f1jm5Aag6hdkr5!U zqECUPkONS8dprqf_ygllkbGzE1w;Zd26%7D)|H6oZ%D(7dBfXJZyn|TOW#6C7I_IU zjof5Ui*A-apa47)VFdVw#IxK(%wF7TsSDr`BWq#q@zRdTlbzFd1MM5BTYAhA!{)g5 zU<5NrXsKQJo$q8p;4rhyrI5eBTj3Shg6L{+>cN}Rq-qkoC&isiAdLg`NXK&g!o0J~ z=s9B*G$Bp$oh!&mH5{``GZGUs${Sn?g@Hg!E=e)KcWu&&HHmBEP4^ymMAMP&)NVYJ zE!;ul$(+TvWDls8)b{k;YeFm&jJ*02SK*97cFu1E_(p-*j(g9$3n=(d0e3kZCD_O8 z-fSG0%PQ;2E|2~YKwkeWacD*VPV3F!K}xRH(V?Rxc%uO@0_U|Yn0G)&OD>R2YN_b< zX)v^8Uk8-C3vkwOcpahv^}j74+}1mAsFRto?Nx96q2ltW z&dwoi@?kZFHmVtQfL=xu8t@|UwP1Y5`nK*ds-}hReN%Au)Yuy-ayHD=Z z(@3l2Xs#-2om5N2x&oX%Pz~5sl#Or-&pzQUTM=|i0>MYF8M1%|d)_7XriEO(M`qM( zMc-!l&T6`O&xkWFnP=p=zqCnw*YmKTcUGlo7~=(Cz}K|lN9^gFZ2%kqiI1K*0nA^d z?8L010KY+zfxsXUWKeN*P1YK+fX`^4slRa_gtPdlhGdO^p&cT2+~z`~z@QfU3|b@A zfZbyzJk1|)D1O={9O))~I1}CUs<+d^J)E4fb9>nQX@btP_K}>WcG8#Ayy@34#XbqF z4gPb@lUP_+!X^O#FMKihy?)H|)?IkBs{$J9alNM*`v2`mxY=9y59YAxci_D z@C3kNM`>g0>7Xl&=-Uc4fhNM*NSsP8>b>h5<7GNqADs0Id>j3} z_epdo{afHng@;_Y%hql#=F|EIn%_AG;1j3|U%OhztQZp1WUhsdoNvQd?(f3a*{aF6 zNcVsoyo@$n!rI=2H629pn`^n(RXn2T9Qrb#=AbV)TAFypIq4NK?px6^j>`CcRaxQ( z-u9bA{FTQ&Bk{_3zqWx8aiy$8x+{=RFXrU@hr+FeozL|HNu@?wVBq<##*NW7k(lHEI!Y`F zNFOQZN03}Z*tp=tqYXGc-~^u+kdCm6{58YM%8LTRO5c>v6%`lwmw$Xi^bgC)jksv@ z;eMWHo6Vr`&Br%yTGn+|K3U`eN~b}o37jRe7%opT#l&$@xV7*U=%dk>w1ncLacd|h zqL5f?lpuK-A#bca-Tc1!ReqbIzm^j_t0m&0zh(68PX zD9%#@fjuWa2n3JN} z*r{{I=d~0QWFZZjvvW_5-F2zx-W>8~JL=uwA0iO}zLrQOFVN>8kP9;_bg$1`(?MF( zZ5k1>tD9k(=wrt&4-^9vzel;Pq=-|Y3X#woPMccCmO<@Dz{bUw3NoMCCOqUy>L04> z+6$En%S8&!ZVMkbV#K!1#@e-P9sTqbaxV8sYQT|YDy}M+q_VodtiI7H^x#Hr@sh}h z_n`Vf#e?7CS$IzORXC}iaO9cqwSdQ-QuV$pc47^Ny?+{<9Zp(4=@;x=O~+2YT>Tx+ zO%5UgumK9DNi`V!MR)W3oG?tBOxcN7M{r=GwbVjL$Ons++DT+OH!+eb;!l+J#gcDmb*O%v=5?R|f0T(GqXZ1`7yD>Nf!P*QagvLrEZfq5?%SXmE@ z4-E}%7%nfr3glEDtc_Z{cGoJ$dNrDI?{wQy=D7?~_N4cUo5a1Yfknd2r&EVUhV0g)TO-k^_Upy3IGxP5Y+iME-{X{~_`KNr z$G?kIQ+SV01RzGU5FFbqV%+Hxbk@w zt4nG@%XQK5ADJRX_Zs^+c4Lbo@ta5gK>m9H9!`aYK+6B=`(}1YTN68hCSMgC`oNRy zKh;EEgwunYc_9g#t9Imhye4vC>iY&N3iv*qj!>DC*mX{kOdpZl>PDsLIaue8EOYj`Vri1A>k-64!3s%Ny2v$=U%h$iE6^}o>HsI1eyKO zZpMdo6)e!Fn|P#OQO&BZNOiwkS$PNe;XS))my_}~Bup;rABn*qAm)Du`0+Oi8u%jr zx%;o!yZ#y=4)L0Q*jOb*W^5Z-Qxdzi~l9= z3;Hu)jeb3w{u0mP|CWnDf5m71pDmaFTOQtj({-Z1;xk{@%on8YKfeIK;xm8phW+Pn z?f=-H{EE+fT{H6o9Dk;C{EE-~$s6`RHhTQ$KiF4%=IfgI^Ks@cIg|dMU-Vyp^8a%r z=PN$*HO~C`IP;Z1^QRKPuW{|(SA6DcocZ%{ruS>_;LjAAU*imjGkssz%-1#Zr;g{Z s_{`U{>Cc}{U->hCYLk6Eo50!h6`%RKX8vsN;46RT>zetqYo`By0kMp^ Date: Mon, 18 Nov 2024 17:13:53 +0530 Subject: [PATCH 419/450] Removed extra <> in validators example (#9590) Co-authored-by: Aman Sharma <210100011@iitb.ac.in> --- docs/api-guide/validators.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api-guide/validators.md b/docs/api-guide/validators.md index e181d4c61f..b1f58ef237 100644 --- a/docs/api-guide/validators.md +++ b/docs/api-guide/validators.md @@ -48,7 +48,7 @@ If we open up the Django shell using `manage.py shell` we can now CustomerReportSerializer(): id = IntegerField(label='ID', read_only=True) time_raised = DateTimeField(read_only=True) - reference = CharField(max_length=20, validators=[]) + reference = CharField(max_length=20, validators=[UniqueValidator(queryset=CustomerReportRecord.objects.all())]) description = CharField(style={'type': 'textarea'}) The interesting bit here is the `reference` field. We can see that the uniqueness constraint is being explicitly enforced by a validator on the serializer field. From a8595a8eae2649b763f4882da643c1dc9183d6f1 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Sat, 14 Dec 2024 09:08:22 +0000 Subject: [PATCH 420/450] Fix raising on nullable fields part of `UniqueConstraint` (#9531) * Add test to reproduce problem with nullable fields part of a unique constraint Ref #9378 * Simplify test case and add similar case for unique_together * Add test for unique together in a better place * Default nullable fields to null in unique constraints checks * Remove redundant test and move other to more appropriate place --- rest_framework/serializers.py | 2 ++ tests/test_validators.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index b1b7b64774..f37bd3a3d6 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -1490,6 +1490,8 @@ def get_uniqueness_extra_kwargs(self, field_names, declared_fields, extra_kwargs default = timezone.now elif unique_constraint_field.has_default(): default = unique_constraint_field.default + elif unique_constraint_field.null: + default = None else: default = empty diff --git a/tests/test_validators.py b/tests/test_validators.py index 4bb8658d5b..9c1a0eac31 100644 --- a/tests/test_validators.py +++ b/tests/test_validators.py @@ -441,6 +441,14 @@ def test_ignore_validation_for_null_fields(self): serializer = NullUniquenessTogetherSerializer(data=data) assert serializer.is_valid() + def test_ignore_validation_for_missing_nullable_fields(self): + data = { + 'date': datetime.date(2000, 1, 1), + 'race_name': 'Paris Marathon', + } + serializer = NullUniquenessTogetherSerializer(data=data) + assert serializer.is_valid(), serializer.errors + def test_do_not_ignore_validation_for_null_fields(self): # None values that are not on fields part of the uniqueness constraint # do not cause the instance to skip validation. @@ -539,12 +547,30 @@ class Meta: ] +class UniqueConstraintNullableModel(models.Model): + title = models.CharField(max_length=100) + age = models.IntegerField(null=True) + tag = models.CharField(max_length=100, null=True) + + class Meta: + constraints = [ + # Unique constraint on 2 nullable fields + models.UniqueConstraint(name='unique_constraint', fields=('age', 'tag')) + ] + + class UniqueConstraintSerializer(serializers.ModelSerializer): class Meta: model = UniqueConstraintModel fields = '__all__' +class UniqueConstraintNullableSerializer(serializers.ModelSerializer): + class Meta: + model = UniqueConstraintNullableModel + fields = ('title', 'age', 'tag') + + class TestUniqueConstraintValidation(TestCase): def setUp(self): self.instance = UniqueConstraintModel.objects.create( @@ -611,6 +637,12 @@ def test_single_field_uniq_validators(self): ids_in_qs = {frozenset(v.queryset.values_list(flat=True)) for v in validators if hasattr(v, "queryset")} assert ids_in_qs == {frozenset([1]), frozenset([3])} + def test_nullable_unique_constraint_fields_are_not_required(self): + serializer = UniqueConstraintNullableSerializer(data={'title': 'Bob'}) + self.assertTrue(serializer.is_valid(), serializer.errors) + result = serializer.save() + self.assertIsInstance(result, UniqueConstraintNullableModel) + # Tests for `UniqueForDateValidator` # ---------------------------------- From 089f6a697445af20f52832db99f2ab94baea4ece Mon Sep 17 00:00:00 2001 From: Terence Honles Date: Sat, 28 Dec 2024 11:22:21 +0100 Subject: [PATCH 421/450] support django 2.1 test client json data automatically serialized (#6511) --- docs/api-guide/testing.md | 7 +++++-- rest_framework/test.py | 17 +++++++++++++---- tests/test_testing.py | 24 +++++++++++++++++++++--- 3 files changed, 39 insertions(+), 9 deletions(-) diff --git a/docs/api-guide/testing.md b/docs/api-guide/testing.md index 261df80f27..ed585faf24 100644 --- a/docs/api-guide/testing.md +++ b/docs/api-guide/testing.md @@ -25,9 +25,12 @@ The `APIRequestFactory` class supports an almost identical API to Django's stand factory = APIRequestFactory() request = factory.post('/notes/', {'title': 'new idea'}) + # Using the standard RequestFactory API to encode JSON data + request = factory.post('/notes/', {'title': 'new idea'}, content_type='application/json') + #### Using the `format` argument -Methods which create a request body, such as `post`, `put` and `patch`, include a `format` argument, which make it easy to generate requests using a content type other than multipart form data. For example: +Methods which create a request body, such as `post`, `put` and `patch`, include a `format` argument, which make it easy to generate requests using a wide set of request formats. When using this argument, the factory will select an appropriate renderer and its configured `content_type`. For example: # Create a JSON POST request factory = APIRequestFactory() @@ -41,7 +44,7 @@ To support a wider set of request formats, or change the default format, [see th If you need to explicitly encode the request body, you can do so by setting the `content_type` flag. For example: - request = factory.post('/notes/', json.dumps({'title': 'new idea'}), content_type='application/json') + request = factory.post('/notes/', yaml.dump({'title': 'new idea'}), content_type='application/yaml') #### PUT and PATCH with form data diff --git a/rest_framework/test.py b/rest_framework/test.py index e939adcd7e..730b7708e2 100644 --- a/rest_framework/test.py +++ b/rest_framework/test.py @@ -151,14 +151,19 @@ def _encode_data(self, data, format=None, content_type=None): Encode the data returning a two tuple of (bytes, content_type) """ - if data is None: - return ('', content_type) - assert format is None or content_type is None, ( 'You may not set both `format` and `content_type`.' ) if content_type: + try: + data = self._encode_json(data, content_type) + except AttributeError: + pass + + if data is None: + data = '' + # Content type specified explicitly, treat data as a raw bytestring ret = force_bytes(data, settings.DEFAULT_CHARSET) @@ -176,7 +181,6 @@ def _encode_data(self, data, format=None, content_type=None): # Use format and render the data into a bytestring renderer = self.renderer_classes[format]() - ret = renderer.render(data) # Determine the content-type header from the renderer content_type = renderer.media_type @@ -185,6 +189,11 @@ def _encode_data(self, data, format=None, content_type=None): content_type, renderer.charset ) + if data is None: + ret = '' + else: + ret = renderer.render(data) + # Coerce text to bytes if required. if isinstance(ret, str): ret = ret.encode(renderer.charset) diff --git a/tests/test_testing.py b/tests/test_testing.py index a7e00ab63e..62dd24dfc6 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -8,9 +8,9 @@ from django.test import TestCase, override_settings from django.urls import path -from rest_framework import fields, serializers +from rest_framework import fields, parsers, serializers from rest_framework.authtoken.models import Token -from rest_framework.decorators import api_view +from rest_framework.decorators import api_view, parser_classes from rest_framework.response import Response from rest_framework.test import ( APIClient, APIRequestFactory, URLPatternsTestCase, force_authenticate @@ -50,6 +50,12 @@ class BasicSerializer(serializers.Serializer): flag = fields.BooleanField(default=lambda: True) +@api_view(['POST']) +@parser_classes((parsers.JSONParser,)) +def post_json_view(request): + return Response(request.data) + + @api_view(['POST']) def post_view(request): serializer = BasicSerializer(data=request.data) @@ -62,7 +68,8 @@ def post_view(request): path('session-view/', session_view), path('redirect-view/', redirect_view), path('redirect-view//', redirect_307_308_view), - path('post-view/', post_view) + path('post-json-view/', post_json_view), + path('post-view/', post_view), ] @@ -236,6 +243,17 @@ def test_empty_post_uses_default_boolean_value(self): assert response.status_code == 200 assert response.data == {"flag": True} + def test_post_encodes_data_based_on_json_content_type(self): + data = {'data': True} + response = self.client.post( + '/post-json-view/', + data=data, + content_type='application/json' + ) + + assert response.status_code == 200 + assert response.data == data + class TestAPIRequestFactory(TestCase): def test_csrf_exempt_by_default(self): From a4f6059d500efbe25e889862d12f5f7a87cba8fe Mon Sep 17 00:00:00 2001 From: Julius Lange <70386024+Gluroda@users.noreply.github.com> Date: Tue, 7 Jan 2025 20:19:39 +0100 Subject: [PATCH 422/450] Fix typo in renderers documentation (#9616) It's called lUAlatex and not lAUlatex. --- docs/api-guide/renderers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api-guide/renderers.md b/docs/api-guide/renderers.md index d48f785ab6..7a6bd39f42 100644 --- a/docs/api-guide/renderers.md +++ b/docs/api-guide/renderers.md @@ -525,7 +525,7 @@ Comma-separated values are a plain-text tabular data format, that can be easily ## LaTeX -[Rest Framework Latex] provides a renderer that outputs PDFs using Laulatex. It is maintained by [Pebble (S/F Software)][mypebble]. +[Rest Framework Latex] provides a renderer that outputs PDFs using Lualatex. It is maintained by [Pebble (S/F Software)][mypebble]. [cite]: https://docs.djangoproject.com/en/stable/ref/template-response/#the-rendering-process From 4a1d773b8f7d86e08e3fd7c6809fd1092eb69d6e Mon Sep 17 00:00:00 2001 From: Oliver Sauder Date: Fri, 10 Jan 2025 22:56:36 +0400 Subject: [PATCH 423/450] Fixed regression that tests using format still work (#9615) * Fixed regression that tests using format still work Error only occurred on tests which return no content and use a renderer without charset (e.g. JSONRenderer) * Fixed linting * Used early return as before * Move ret str check back to where it was --- rest_framework/test.py | 11 +++-------- tests/test_testing.py | 18 ++++++++++++++++-- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/rest_framework/test.py b/rest_framework/test.py index 730b7708e2..c273724b99 100644 --- a/rest_framework/test.py +++ b/rest_framework/test.py @@ -150,6 +150,8 @@ def _encode_data(self, data, format=None, content_type=None): """ Encode the data returning a two tuple of (bytes, content_type) """ + if data is None: + return (b'', content_type) assert format is None or content_type is None, ( 'You may not set both `format` and `content_type`.' @@ -161,9 +163,6 @@ def _encode_data(self, data, format=None, content_type=None): except AttributeError: pass - if data is None: - data = '' - # Content type specified explicitly, treat data as a raw bytestring ret = force_bytes(data, settings.DEFAULT_CHARSET) @@ -181,6 +180,7 @@ def _encode_data(self, data, format=None, content_type=None): # Use format and render the data into a bytestring renderer = self.renderer_classes[format]() + ret = renderer.render(data) # Determine the content-type header from the renderer content_type = renderer.media_type @@ -189,11 +189,6 @@ def _encode_data(self, data, format=None, content_type=None): content_type, renderer.charset ) - if data is None: - ret = '' - else: - ret = renderer.render(data) - # Coerce text to bytes if required. if isinstance(ret, str): ret = ret.encode(renderer.charset) diff --git a/tests/test_testing.py b/tests/test_testing.py index 62dd24dfc6..26a6e8ffb9 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -8,9 +8,11 @@ from django.test import TestCase, override_settings from django.urls import path -from rest_framework import fields, parsers, serializers +from rest_framework import fields, parsers, renderers, serializers, status from rest_framework.authtoken.models import Token -from rest_framework.decorators import api_view, parser_classes +from rest_framework.decorators import ( + api_view, parser_classes, renderer_classes +) from rest_framework.response import Response from rest_framework.test import ( APIClient, APIRequestFactory, URLPatternsTestCase, force_authenticate @@ -56,6 +58,12 @@ def post_json_view(request): return Response(request.data) +@api_view(['DELETE']) +@renderer_classes((renderers.JSONRenderer, )) +def delete_json_view(request): + return Response(status=status.HTTP_204_NO_CONTENT) + + @api_view(['POST']) def post_view(request): serializer = BasicSerializer(data=request.data) @@ -69,6 +77,7 @@ def post_view(request): path('redirect-view/', redirect_view), path('redirect-view//', redirect_307_308_view), path('post-json-view/', post_json_view), + path('delete-json-view/', delete_json_view), path('post-view/', post_view), ] @@ -254,6 +263,11 @@ def test_post_encodes_data_based_on_json_content_type(self): assert response.status_code == 200 assert response.data == data + def test_delete_based_on_format(self): + response = self.client.delete('/delete-json-view/', format='json') + assert response.status_code == status.HTTP_204_NO_CONTENT + assert response.data is None + class TestAPIRequestFactory(TestCase): def test_csrf_exempt_by_default(self): From b483179b93ade3ffbec7f1a7569a1c1c516666d4 Mon Sep 17 00:00:00 2001 From: Deepak Angadi <44173247+deepakangadi@users.noreply.github.com> Date: Fri, 17 Jan 2025 18:02:29 +0530 Subject: [PATCH 424/450] Update `strftime` formats link in the documentation (#9624) --- docs/api-guide/settings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api-guide/settings.md b/docs/api-guide/settings.md index 47e2ce993f..7bee3166d0 100644 --- a/docs/api-guide/settings.md +++ b/docs/api-guide/settings.md @@ -460,4 +460,4 @@ Default: `None` [cite]: https://www.python.org/dev/peps/pep-0020/ [rfc4627]: https://www.ietf.org/rfc/rfc4627.txt [heroku-minified-json]: https://github.com/interagent/http-api-design#keep-json-minified-in-all-responses -[strftime]: https://docs.python.org/3/library/time.html#time.strftime +[strftime]: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes From 78e0b84ac9c2dcd9b42be1397b6aae611e6da148 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Tue, 21 Jan 2025 15:00:02 +0000 Subject: [PATCH 425/450] Update SECURITY.md (#9628) * Update security contact --- SECURITY.md | 6 ++---- docs/index.md | 4 +--- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/SECURITY.md b/SECURITY.md index a92a1b0cf1..88ff092a26 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,8 +2,6 @@ ## Reporting a Vulnerability -Security issues are handled under the supervision of the [Django security team](https://www.djangoproject.com/foundation/teams/#security-team). +**Please report security issues by emailing security@encode.io**. - **Please report security issues by emailing security@djangoproject.com**. - - The project maintainers will then work with you to resolve any issues where required, prior to any public disclosure. +The project maintainers will then work with you to resolve any issues where required, prior to any public disclosure. diff --git a/docs/index.md b/docs/index.md index 24ae816728..ebeab3db3b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -196,9 +196,7 @@ For priority support please sign up for a [professional or premium sponsorship p ## Security -Security issues are handled under the supervision of the [Django security team](https://www.djangoproject.com/foundation/teams/#security-team). - -**Please report security issues by emailing security@djangoproject.com**. +**Please report security issues by emailing security@encode.io**. The project maintainers will then work with you to resolve any issues where required, prior to any public disclosure. From e1c070aaccc9cd8809bc1afb552a0a8c52b6b4c8 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Wed, 29 Jan 2025 05:50:08 +0000 Subject: [PATCH 426/450] Switch to codecov GHA (#9618) Fix #7908 --- .github/workflows/main.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d086554510..cfa4bdc442 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -34,7 +34,7 @@ jobs: run: python -m pip install --upgrade pip setuptools virtualenv wheel - name: Install dependencies - run: python -m pip install --upgrade codecov tox + run: python -m pip install --upgrade tox - name: Run tox targets for ${{ matrix.python-version }} run: tox run -f py$(echo ${{ matrix.python-version }} | tr -d . | cut -f 1 -d '-') @@ -45,8 +45,9 @@ jobs: tox -e base,dist,docs - name: Upload coverage - run: | - codecov -e TOXENV,DJANGO + uses: codecov/codecov-action@v5 + with: + env_vars: TOXENV,DJANGO test-docs: name: Test documentation links From f8dbea1a4559dd8635ac877a9bffb3599d336132 Mon Sep 17 00:00:00 2001 From: exg1o <77574092+EXG1O@users.noreply.github.com> Date: Wed, 29 Jan 2025 07:51:38 +0200 Subject: [PATCH 427/450] Add note in 'Introspecting ViewSet actions' docs section (#9633) * Fix `Introspecting ViewSet actions` docs section * Update docs/api-guide/viewsets.md --------- Co-authored-by: Bruno Alla --- docs/api-guide/viewsets.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/api-guide/viewsets.md b/docs/api-guide/viewsets.md index 43007e95df..22acfe327a 100644 --- a/docs/api-guide/viewsets.md +++ b/docs/api-guide/viewsets.md @@ -128,6 +128,8 @@ You may inspect these attributes to adjust behavior based on the current action. permission_classes = [IsAdminUser] return [permission() for permission in permission_classes] +**Note**: the `action` attribute is not available in the `get_parsers`, `get_authenticators` and `get_content_negotiator` methods, as it is set _after_ they are called in the framework lifecycle. If you override one of these methods and try to access the `action` attribute in them, you will get an `AttributeError` error. + ## Marking extra actions for routing If you have ad-hoc methods that should be routable, you can mark them as such with the `@action` decorator. Like regular actions, extra actions may be intended for either a single object, or an entire collection. To indicate this, set the `detail` argument to `True` or `False`. The router will configure its URL patterns accordingly. e.g., the `DefaultRouter` will configure detail actions to contain `pk` in their URL patterns. From 038670a4cf5ee856f2567e2a346cffb6337ad5a3 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Wed, 29 Jan 2025 06:27:33 +0000 Subject: [PATCH 428/450] Drop deprecated AutoSchema._get_reference method (#9525) As well the unused RemovedInDRF316Warning --- rest_framework/__init__.py | 4 ---- rest_framework/schemas/openapi.py | 12 +----------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/rest_framework/__init__.py b/rest_framework/__init__.py index 636f0c8ade..e33bfa99d8 100644 --- a/rest_framework/__init__.py +++ b/rest_framework/__init__.py @@ -23,9 +23,5 @@ ISO_8601 = 'iso-8601' -class RemovedInDRF316Warning(DeprecationWarning): - pass - - class RemovedInDRF317Warning(PendingDeprecationWarning): pass diff --git a/rest_framework/schemas/openapi.py b/rest_framework/schemas/openapi.py index f35106fe5a..019eeb33e1 100644 --- a/rest_framework/schemas/openapi.py +++ b/rest_framework/schemas/openapi.py @@ -11,9 +11,7 @@ from django.db import models from django.utils.encoding import force_str -from rest_framework import ( - RemovedInDRF316Warning, exceptions, renderers, serializers -) +from rest_framework import exceptions, renderers, serializers from rest_framework.compat import inflection, uritemplate from rest_framework.fields import _UnvalidatedField, empty from rest_framework.settings import api_settings @@ -721,11 +719,3 @@ def get_tags(self, path, method): path = path[1:] return [path.split('/')[0].replace('_', '-')] - - def _get_reference(self, serializer): - warnings.warn( - "Method `_get_reference()` has been renamed to `get_reference()`. " - "The old name will be removed in DRF v3.16.", - RemovedInDRF316Warning, stacklevel=2 - ) - return self.get_reference(serializer) From 8637b3d62406204c586867b3bd60594c287c5cd6 Mon Sep 17 00:00:00 2001 From: decadenza <30215028+decadenza@users.noreply.github.com> Date: Thu, 30 Jan 2025 10:03:11 +0000 Subject: [PATCH 429/450] Improved description of allowed throttling rates (#9640) --- docs/api-guide/throttling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api-guide/throttling.md b/docs/api-guide/throttling.md index 4c58fa713f..0ea8b41585 100644 --- a/docs/api-guide/throttling.md +++ b/docs/api-guide/throttling.md @@ -45,7 +45,7 @@ The default throttling policy may be set globally, using the `DEFAULT_THROTTLE_C } } -The rate descriptions used in `DEFAULT_THROTTLE_RATES` may include `second`, `minute`, `hour` or `day` as the throttle period. +The rates used in `DEFAULT_THROTTLE_RATES` can be specified over a period of second, minute, hour or day. The period must be specified after the `/` separator using `s`, `m`, `h` or `d`, respectively. For increased clarity, extended units such as `second`, `minute`, `hour`, `day` or even abbreviations like `sec`, `min`, `hr` are allowed, as only the first character is relevant to identify the rate. You can also set the throttling policy on a per-view or per-viewset basis, using the `APIView` class-based views. From 28d0261afcd6702900512e00c37f4e264c117d83 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Sat, 1 Feb 2025 06:24:43 +0000 Subject: [PATCH 430/450] Add missing ignore_outcome=true for the Python 3.13 - Django main combination (#9637) --- tox.ini | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tox.ini b/tox.ini index f565a12819..49833fe68e 100644 --- a/tox.ini +++ b/tox.ini @@ -52,3 +52,6 @@ ignore_outcome = true [testenv:py312-djangomain] ignore_outcome = true + +[testenv:py313-djangomain] +ignore_outcome = true From f30c0e2eedda410a7e6a0d1b351377a9084361b4 Mon Sep 17 00:00:00 2001 From: Asif Saif Uddin Date: Fri, 14 Feb 2025 14:49:56 +0600 Subject: [PATCH 431/450] add django 5.2a1 initial support (#9634) * add django 5.2a1 for initial testing * declare django 5.2 support * change in docs --- README.md | 2 +- docs/index.md | 2 +- setup.py | 1 + tox.ini | 9 +++++---- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6e62fb39a1..95fb1b0128 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ Some reasons you might want to use REST framework: # Requirements * Python 3.8+ -* Django 4.2, 5.0, 5.1 +* Django 4.2, 5.0, 5.1, 5.2 We **highly recommend** and only officially support the latest patch release of each Python and Django series. diff --git a/docs/index.md b/docs/index.md index ebeab3db3b..2638b05faf 100644 --- a/docs/index.md +++ b/docs/index.md @@ -87,7 +87,7 @@ continued development by **[signing up for a paid plan][funding]**. REST framework requires the following: -* Django (4.2, 5.0, 5.1) +* Django (4.2, 5.0, 5.1, 5.2) * Python (3.8, 3.9, 3.10, 3.11, 3.12, 3.13) We **highly recommend** and only officially support the latest patch release of diff --git a/setup.py b/setup.py index 67904ec61f..18f62470c0 100755 --- a/setup.py +++ b/setup.py @@ -92,6 +92,7 @@ def get_version(package): 'Framework :: Django :: 4.2', 'Framework :: Django :: 5.0', 'Framework :: Django :: 5.1', + 'Framework :: Django :: 5.2', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', diff --git a/tox.ini b/tox.ini index 49833fe68e..52a763ef54 100644 --- a/tox.ini +++ b/tox.ini @@ -1,10 +1,10 @@ [tox] envlist = {py38,py39}-{django42} - {py310}-{django42,django50,django51,djangomain} - {py311}-{django42,django50,django51,djangomain} - {py312}-{django42,django50,django51,djangomain} - {py313}-{django51,djangomain} + {py310}-{django42,django51,django52,djangomain} + {py311}-{django42,django51,django52,djangomain} + {py312}-{django42,django51,django52,djangomain} + {py313}-{django51,django52,djangomain} base dist docs @@ -19,6 +19,7 @@ deps = django42: Django>=4.2,<5.0 django50: Django>=5.0,<5.1 django51: Django>=5.1,<5.2 + django52: Django>=5.2a1,<6.0 djangomain: https://github.com/django/django/archive/main.tar.gz -rrequirements/requirements-testing.txt -rrequirements/requirements-optionals.txt From 17e95604f5056c4f5ceb40ca30cd349acd74c101 Mon Sep 17 00:00:00 2001 From: Konstantin Alekseev Date: Mon, 17 Feb 2025 10:01:32 +0200 Subject: [PATCH 432/450] Fix unique together validator doesn't respect condition's fields (#9360) --- rest_framework/compat.py | 36 +++++++++++++++++ rest_framework/serializers.py | 40 +++++++++++-------- rest_framework/validators.py | 30 +++++++++++--- tests/test_validators.py | 74 +++++++++++++++++++++++++++-------- 4 files changed, 140 insertions(+), 40 deletions(-) diff --git a/rest_framework/compat.py b/rest_framework/compat.py index 27c5632be5..ff21bacff4 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -3,6 +3,9 @@ versions of Django/Python, and compatibility wrappers around optional packages. """ import django +from django.db import models +from django.db.models.constants import LOOKUP_SEP +from django.db.models.sql.query import Node from django.views.generic import View @@ -157,6 +160,10 @@ def md_filter_add_syntax_highlight(md): # 1) the list of validators and 2) the error message. Starting from # Django 5.1 ip_address_validators only returns the list of validators from django.core.validators import ip_address_validators + + def get_referenced_base_fields_from_q(q): + return q.referenced_base_fields + else: # Django <= 5.1: create a compatibility shim for ip_address_validators from django.core.validators import \ @@ -165,6 +172,35 @@ def md_filter_add_syntax_highlight(md): def ip_address_validators(protocol, unpack_ipv4): return _ip_address_validators(protocol, unpack_ipv4)[0] + # Django < 5.1: create a compatibility shim for Q.referenced_base_fields + # https://github.com/django/django/blob/5.1a1/django/db/models/query_utils.py#L179 + def _get_paths_from_expression(expr): + if isinstance(expr, models.F): + yield expr.name + elif hasattr(expr, 'flatten'): + for child in expr.flatten(): + if isinstance(child, models.F): + yield child.name + elif isinstance(child, models.Q): + yield from _get_children_from_q(child) + + def _get_children_from_q(q): + for child in q.children: + if isinstance(child, Node): + yield from _get_children_from_q(child) + elif isinstance(child, tuple): + lhs, rhs = child + yield lhs + if hasattr(rhs, 'resolve_expression'): + yield from _get_paths_from_expression(rhs) + elif hasattr(child, 'resolve_expression'): + yield from _get_paths_from_expression(child) + + def get_referenced_base_fields_from_q(q): + return { + child.split(LOOKUP_SEP, 1)[0] for child in _get_children_from_q(q) + } + # `separators` argument to `json.dumps()` differs between 2.x and 3.x # See: https://bugs.python.org/issue22767 diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index f37bd3a3d6..0b87aa8fc1 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -26,7 +26,9 @@ from django.utils.functional import cached_property from django.utils.translation import gettext_lazy as _ -from rest_framework.compat import postgres_fields +from rest_framework.compat import ( + get_referenced_base_fields_from_q, postgres_fields +) from rest_framework.exceptions import ErrorDetail, ValidationError from rest_framework.fields import get_error_detail from rest_framework.settings import api_settings @@ -1425,20 +1427,20 @@ def get_extra_kwargs(self): def get_unique_together_constraints(self, model): """ - Returns iterator of (fields, queryset), each entry describes an unique together - constraint on `fields` in `queryset`. + Returns iterator of (fields, queryset, condition_fields, condition), + each entry describes an unique together constraint on `fields` in `queryset` + with respect of constraint's `condition`. """ for parent_class in [model] + list(model._meta.parents): for unique_together in parent_class._meta.unique_together: - yield unique_together, model._default_manager + yield unique_together, model._default_manager, [], None for constraint in parent_class._meta.constraints: if isinstance(constraint, models.UniqueConstraint) and len(constraint.fields) > 1: - yield ( - constraint.fields, - model._default_manager - if constraint.condition is None - else model._default_manager.filter(constraint.condition) - ) + if constraint.condition is None: + condition_fields = [] + else: + condition_fields = list(get_referenced_base_fields_from_q(constraint.condition)) + yield (constraint.fields, model._default_manager, condition_fields, constraint.condition) def get_uniqueness_extra_kwargs(self, field_names, declared_fields, extra_kwargs): """ @@ -1470,9 +1472,10 @@ def get_uniqueness_extra_kwargs(self, field_names, declared_fields, extra_kwargs # Include each of the `unique_together` and `UniqueConstraint` field names, # so long as all the field names are included on the serializer. - for unique_together_list, queryset in self.get_unique_together_constraints(model): - if set(field_names).issuperset(unique_together_list): - unique_constraint_names |= set(unique_together_list) + for unique_together_list, queryset, condition_fields, condition in self.get_unique_together_constraints(model): + unique_together_list_and_condition_fields = set(unique_together_list) | set(condition_fields) + if set(field_names).issuperset(unique_together_list_and_condition_fields): + unique_constraint_names |= unique_together_list_and_condition_fields # Now we have all the field names that have uniqueness constraints # applied, we can add the extra 'required=...' or 'default=...' @@ -1594,12 +1597,13 @@ def get_unique_together_validators(self): # Note that we make sure to check `unique_together` both on the # base model class, but also on any parent classes. validators = [] - for unique_together, queryset in self.get_unique_together_constraints(self.Meta.model): + for unique_together, queryset, condition_fields, condition in self.get_unique_together_constraints(self.Meta.model): # Skip if serializer does not map to all unique together sources - if not set(source_map).issuperset(unique_together): + unique_together_and_condition_fields = set(unique_together) | set(condition_fields) + if not set(source_map).issuperset(unique_together_and_condition_fields): continue - for source in unique_together: + for source in unique_together_and_condition_fields: assert len(source_map[source]) == 1, ( "Unable to create `UniqueTogetherValidator` for " "`{model}.{field}` as `{serializer}` has multiple " @@ -1618,7 +1622,9 @@ def get_unique_together_validators(self): field_names = tuple(source_map[f][0] for f in unique_together) validator = UniqueTogetherValidator( queryset=queryset, - fields=field_names + fields=field_names, + condition_fields=tuple(source_map[f][0] for f in condition_fields), + condition=condition, ) validators.append(validator) return validators diff --git a/rest_framework/validators.py b/rest_framework/validators.py index 71ebc2ca9f..a152c6362f 100644 --- a/rest_framework/validators.py +++ b/rest_framework/validators.py @@ -6,7 +6,9 @@ object creation, and makes it possible to switch between using the implicit `ModelSerializer` class and an equivalent explicit `Serializer` class. """ +from django.core.exceptions import FieldError from django.db import DataError +from django.db.models import Exists from django.utils.translation import gettext_lazy as _ from rest_framework.exceptions import ValidationError @@ -23,6 +25,17 @@ def qs_exists(queryset): return False +def qs_exists_with_condition(queryset, condition, against): + if condition is None: + return qs_exists(queryset) + try: + # use the same query as UniqueConstraint.validate + # https://github.com/django/django/blob/7ba2a0db20c37a5b1500434ca4ed48022311c171/django/db/models/constraints.py#L672 + return (condition & Exists(queryset.filter(condition))).check(against) + except (TypeError, ValueError, DataError, FieldError): + return False + + def qs_filter(queryset, **kwargs): try: return queryset.filter(**kwargs) @@ -99,10 +112,12 @@ class UniqueTogetherValidator: missing_message = _('This field is required.') requires_context = True - def __init__(self, queryset, fields, message=None): + def __init__(self, queryset, fields, message=None, condition_fields=None, condition=None): self.queryset = queryset self.fields = fields self.message = message or self.message + self.condition_fields = [] if condition_fields is None else condition_fields + self.condition = condition def enforce_required_fields(self, attrs, serializer): """ @@ -114,7 +129,7 @@ def enforce_required_fields(self, attrs, serializer): missing_items = { field_name: self.missing_message - for field_name in self.fields + for field_name in (*self.fields, *self.condition_fields) if serializer.fields[field_name].source not in attrs } if missing_items: @@ -173,16 +188,19 @@ def __call__(self, attrs, serializer): if attrs[field_name] != getattr(serializer.instance, field_name) ] - if checked_values and None not in checked_values and qs_exists(queryset): + condition_kwargs = {source: attrs[source] for source in self.condition_fields} + if checked_values and None not in checked_values and qs_exists_with_condition(queryset, self.condition, condition_kwargs): field_names = ', '.join(self.fields) message = self.message.format(field_names=field_names) raise ValidationError(message, code='unique') def __repr__(self): - return '<%s(queryset=%s, fields=%s)>' % ( + return '<{}({})>'.format( self.__class__.__name__, - smart_repr(self.queryset), - smart_repr(self.fields) + ', '.join( + f'{attr}={smart_repr(getattr(self, attr))}' + for attr in ('queryset', 'fields', 'condition') + if getattr(self, attr) is not None) ) def __eq__(self, other): diff --git a/tests/test_validators.py b/tests/test_validators.py index 9c1a0eac31..5b6cd973ca 100644 --- a/tests/test_validators.py +++ b/tests/test_validators.py @@ -521,7 +521,7 @@ class UniqueConstraintModel(models.Model): race_name = models.CharField(max_length=100) position = models.IntegerField() global_id = models.IntegerField() - fancy_conditions = models.IntegerField(null=True) + fancy_conditions = models.IntegerField() class Meta: constraints = [ @@ -543,7 +543,12 @@ class Meta: name="unique_constraint_model_together_uniq", fields=('race_name', 'position'), condition=models.Q(race_name='example'), - ) + ), + models.UniqueConstraint( + name='unique_constraint_model_together_uniq2', + fields=('race_name', 'position'), + condition=models.Q(fancy_conditions__gte=10), + ), ] @@ -576,17 +581,20 @@ def setUp(self): self.instance = UniqueConstraintModel.objects.create( race_name='example', position=1, - global_id=1 + global_id=1, + fancy_conditions=1 ) UniqueConstraintModel.objects.create( race_name='example', position=2, - global_id=2 + global_id=2, + fancy_conditions=1 ) UniqueConstraintModel.objects.create( race_name='other', position=1, - global_id=3 + global_id=3, + fancy_conditions=1 ) def test_repr(self): @@ -601,22 +609,55 @@ def test_repr(self): position = IntegerField\(.*required=True\) global_id = IntegerField\(.*validators=\[\]\) class Meta: - validators = \[, \]>, fields=\('race_name', 'position'\)\)>\] + validators = \[\)>\] """) assert re.search(expected, repr(serializer)) is not None - def test_unique_together_field(self): + def test_unique_together_condition(self): """ - UniqueConstraint fields and condition attributes must be passed - to UniqueTogetherValidator as fields and queryset + Fields used in UniqueConstraint's condition must be included + into queryset existence check """ - serializer = UniqueConstraintSerializer() - assert len(serializer.validators) == 1 - validator = serializer.validators[0] - assert validator.fields == ('race_name', 'position') - assert set(validator.queryset.values_list(flat=True)) == set( - UniqueConstraintModel.objects.filter(race_name='example').values_list(flat=True) + UniqueConstraintModel.objects.create( + race_name='condition', + position=1, + global_id=10, + fancy_conditions=10, ) + serializer = UniqueConstraintSerializer(data={ + 'race_name': 'condition', + 'position': 1, + 'global_id': 11, + 'fancy_conditions': 9, + }) + assert serializer.is_valid() + serializer = UniqueConstraintSerializer(data={ + 'race_name': 'condition', + 'position': 1, + 'global_id': 11, + 'fancy_conditions': 11, + }) + assert not serializer.is_valid() + + def test_unique_together_condition_fields_required(self): + """ + Fields used in UniqueConstraint's condition must be present in serializer + """ + serializer = UniqueConstraintSerializer(data={ + 'race_name': 'condition', + 'position': 1, + 'global_id': 11, + }) + assert not serializer.is_valid() + assert serializer.errors == {'fancy_conditions': ['This field is required.']} + + class NoFieldsSerializer(serializers.ModelSerializer): + class Meta: + model = UniqueConstraintModel + fields = ('race_name', 'position', 'global_id') + + serializer = NoFieldsSerializer() + assert len(serializer.validators) == 1 def test_single_field_uniq_validators(self): """ @@ -625,9 +666,8 @@ def test_single_field_uniq_validators(self): """ # Django 5 includes Max and Min values validators for IntergerField extra_validators_qty = 2 if django_version[0] >= 5 else 0 - # serializer = UniqueConstraintSerializer() - assert len(serializer.validators) == 1 + assert len(serializer.validators) == 2 validators = serializer.fields['global_id'].validators assert len(validators) == 1 + extra_validators_qty assert validators[0].queryset == UniqueConstraintModel.objects From fc98d3598d9c0762e0cb999992e954643e6dc091 Mon Sep 17 00:00:00 2001 From: Mojtaba A <83042940+mojtabaakbari221b@users.noreply.github.com> Date: Wed, 26 Feb 2025 09:41:09 +0330 Subject: [PATCH 433/450] Update relations.md (#9063) add rest-framework-gm2m-relations package that provides read/write serialization for generic many to many field --- docs/api-guide/relations.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/api-guide/relations.md b/docs/api-guide/relations.md index 56eb61e436..7c4eece4bf 100644 --- a/docs/api-guide/relations.md +++ b/docs/api-guide/relations.md @@ -628,12 +628,16 @@ The [drf-nested-routers package][drf-nested-routers] provides routers and relati The [rest-framework-generic-relations][drf-nested-relations] library provides read/write serialization for generic foreign keys. +The [rest-framework-gm2m-relations][drf-gm2m-relations] library provides read/write serialization for [django-gm2m][django-gm2m-field]. + [cite]: http://users.ece.utexas.edu/~adnan/pike.html [reverse-relationships]: https://docs.djangoproject.com/en/stable/topics/db/queries/#following-relationships-backward [routers]: https://www.django-rest-framework.org/api-guide/routers#defaultrouter [generic-relations]: https://docs.djangoproject.com/en/stable/ref/contrib/contenttypes/#id1 [drf-nested-routers]: https://github.com/alanjds/drf-nested-routers [drf-nested-relations]: https://github.com/Ian-Foote/rest-framework-generic-relations +[drf-gm2m-relations]: https://github.com/mojtabaakbari221b/rest-framework-gm2m-relations +[django-gm2m-field]: https://github.com/tkhyn/django-gm2m [django-intermediary-manytomany]: https://docs.djangoproject.com/en/stable/topics/db/models/#intermediary-manytomany [dealing-with-nested-objects]: https://www.django-rest-framework.org/api-guide/serializers/#dealing-with-nested-objects [to_internal_value]: https://www.django-rest-framework.org/api-guide/serializers/#to_internal_valueself-data From 0e1c7d3613905a8f9db69abb82f883e22e967119 Mon Sep 17 00:00:00 2001 From: Asif Saif Uddin Date: Thu, 27 Feb 2025 11:27:32 +0000 Subject: [PATCH 434/450] Update django 5.2b1 (#9657) --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 52a763ef54..b0bd54219d 100644 --- a/tox.ini +++ b/tox.ini @@ -19,7 +19,7 @@ deps = django42: Django>=4.2,<5.0 django50: Django>=5.0,<5.1 django51: Django>=5.1,<5.2 - django52: Django>=5.2a1,<6.0 + django52: Django>=5.2b1,<6.0 djangomain: https://github.com/django/django/archive/main.tar.gz -rrequirements/requirements-testing.txt -rrequirements/requirements-optionals.txt From 1e8ac7c23b7b9dd06544e90c0c5997b02def36b8 Mon Sep 17 00:00:00 2001 From: Mike Manger Date: Thu, 6 Mar 2025 13:30:27 +0000 Subject: [PATCH 435/450] Update usage of open in setup.py (#9661) --- setup.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 18f62470c0..f80dcff2cc 100755 --- a/setup.py +++ b/setup.py @@ -2,7 +2,6 @@ import re import shutil import sys -from io import open from setuptools import find_packages, setup @@ -36,7 +35,7 @@ def read(f): - with open(f, 'r', encoding='utf-8') as file: + with open(f, encoding='utf-8') as file: return file.read() From 73cbb9cd4acd36f859d9f656b8f134c9d2a754f3 Mon Sep 17 00:00:00 2001 From: Mike Manger Date: Sat, 8 Mar 2025 09:53:15 +0000 Subject: [PATCH 436/450] Fix typos (#9662) * Fix typo of 'related' in tests * Fix typo of permission_classes in coreapi test * Fix some minor typos in docs * Fix typos in tests * Fix flake8 issue --- docs/community/release-notes.md | 4 ++-- docs/community/tutorials-and-resources.md | 4 ++-- tests/schemas/test_coreapi.py | 2 +- tests/test_filters.py | 14 +++++++------- tests/test_model_serializer.py | 2 +- tests/test_negotiation.py | 4 ++-- tests/test_pagination.py | 2 +- tests/test_permissions.py | 8 ++++---- tests/test_validators.py | 4 ++-- tests/test_views.py | 4 ++-- 10 files changed, 24 insertions(+), 24 deletions(-) diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index 3e5d3ebc5a..5742e94696 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -121,7 +121,7 @@ Date: 15th March 2024 * Fix 404 when page query parameter is empty string [[#8578](https://github.com/encode/django-rest-framework/pull/8578)] * Fixes instance check in ListSerializer.to_representation [[#8726](https://github.com/encode/django-rest-framework/pull/8726)] [[#8727](https://github.com/encode/django-rest-framework/pull/8727)] * FloatField will crash if the input is a number that is too big [[#8725](https://github.com/encode/django-rest-framework/pull/8725)] -* Add missing DurationField to SimpleMetada label_lookup [[#8702](https://github.com/encode/django-rest-framework/pull/8702)] +* Add missing DurationField to SimpleMetadata label_lookup [[#8702](https://github.com/encode/django-rest-framework/pull/8702)] * Add support for Python 3.11 [[#8752](https://github.com/encode/django-rest-framework/pull/8752)] * Make request consistently available in pagination classes [[#8764](https://github.com/encode/django-rest-framework/pull/9764)] * Possibility to remove trailing zeros on DecimalFields representation [[#6514](https://github.com/encode/django-rest-framework/pull/6514)] @@ -428,7 +428,7 @@ Be sure to upgrade to Python 3 before upgrading to Django REST Framework 3.10. * Allow hashing of ErrorDetail. [#5932][gh5932] * Correct schema parsing for JSONField [#5878][gh5878] * Render descriptions (from help_text) using safe [#5869][gh5869] -* Removed input value from deault_error_message [#5881][gh5881] +* Removed input value from default_error_message [#5881][gh5881] * Added min_value/max_value support in DurationField [#5643][gh5643] * Fixed instance being overwritten in pk-only optimization try/except block [#5747][gh5747] * Fixed AttributeError from items filter when value is None [#5981][gh5981] diff --git a/docs/community/tutorials-and-resources.md b/docs/community/tutorials-and-resources.md index b23b299ac6..427bdd2d71 100644 --- a/docs/community/tutorials-and-resources.md +++ b/docs/community/tutorials-and-resources.md @@ -50,7 +50,7 @@ There are a wide range of resources available for learning and using Django REST ### Talks * [Level Up! Rethinking the Web API Framework][pycon-us-2017] -* [How to Make a Full Fledged REST API with Django OAuth Toolkit][full-fledged-rest-api-with-django-oauth-tookit] +* [How to Make a Full Fledged REST API with Django OAuth Toolkit][full-fledged-rest-api-with-django-oauth-toolkit] * [Django REST API - So Easy You Can Learn It in 25 Minutes][django-rest-api-so-easy] * [Tom Christie about Django Rest Framework at Django: Under The Hood][django-under-hood-2014] * [Django REST Framework: Schemas, Hypermedia & Client Libraries][pycon-uk-2016] @@ -122,7 +122,7 @@ Want your Django REST Framework talk/tutorial/article to be added to our website [django-polls-api]: https://learndjango.com/tutorials/django-polls-tutorial-api [django-rest-framework-todo-api]: https://learndjango.com/tutorials/django-rest-framework-tutorial-todo-api [django-rest-api-so-easy]: https://www.youtube.com/watch?v=cqP758k1BaQ -[full-fledged-rest-api-with-django-oauth-tookit]: https://www.youtube.com/watch?v=M6Ud3qC2tTk +[full-fledged-rest-api-with-django-oauth-toolkit]: https://www.youtube.com/watch?v=M6Ud3qC2tTk [drf-in-your-pjs]: https://www.youtube.com/watch?v=xMtHsWa72Ww [building-a-rest-api-using-django-and-drf]: https://www.youtube.com/watch?v=PwssEec3IRw [drf-tutorials]: https://www.youtube.com/watch?v=axRCBgbOJp8&list=PLJtp8Jm8EDzjgVg9vVyIUMoGyqtegj7FH diff --git a/tests/schemas/test_coreapi.py b/tests/schemas/test_coreapi.py index 98fd46f9fc..171f086469 100644 --- a/tests/schemas/test_coreapi.py +++ b/tests/schemas/test_coreapi.py @@ -1177,7 +1177,7 @@ class NamingCollisionViewSet(GenericViewSet): """ Example via: https://stackoverflow.com/questions/43778668/django-rest-framwork-occured-typeerror-link-object-does-not-support-item-ass/ """ - permision_class = () + permission_classes = () @action(detail=False) def detail(self, request): diff --git a/tests/test_filters.py b/tests/test_filters.py index 6db0c3deb2..9fc8ad1a9e 100644 --- a/tests/test_filters.py +++ b/tests/test_filters.py @@ -19,7 +19,7 @@ class SearchSplitTests(SimpleTestCase): - def test_keep_quoted_togheter_regardless_of_commas(self): + def test_keep_quoted_together_regardless_of_commas(self): assert ['hello, world'] == list(filters.search_smart_split('"hello, world"')) def test_strips_commas_around_quoted(self): @@ -516,7 +516,7 @@ def description(self): class OrderingFilterRelatedModel(models.Model): - related_object = models.ForeignKey(OrderingFilterModel, related_name="relateds", on_delete=models.CASCADE) + related_object = models.ForeignKey(OrderingFilterModel, related_name="related", on_delete=models.CASCADE) index = models.SmallIntegerField(help_text="A non-related field to test with", default=0) @@ -725,9 +725,9 @@ class OrderingListView(generics.ListAPIView): def test_ordering_by_aggregate_field(self): # create some related models to aggregate order by num_objs = [2, 5, 3] - for obj, num_relateds in zip(OrderingFilterModel.objects.all(), - num_objs): - for _ in range(num_relateds): + for obj, num_related in zip(OrderingFilterModel.objects.all(), + num_objs): + for _ in range(num_related): new_related = OrderingFilterRelatedModel( related_object=obj ) @@ -739,10 +739,10 @@ class OrderingListView(generics.ListAPIView): ordering = 'title' ordering_fields = '__all__' queryset = OrderingFilterModel.objects.all().annotate( - models.Count("relateds")) + models.Count("related")) view = OrderingListView.as_view() - request = factory.get('/', {'ordering': 'relateds__count'}) + request = factory.get('/', {'ordering': 'related__count'}) response = view(request) assert response.data == [ {'id': 1, 'title': 'zyx', 'text': 'abc'}, diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index ae1a2b0fa1..f1f9518cb4 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -797,7 +797,7 @@ def setUp(self): ) self.instance.many_to_many.set(self.many_to_many_targets) - def test_pk_retrival(self): + def test_pk_retrieval(self): class TestSerializer(serializers.ModelSerializer): class Meta: model = RelationalModel diff --git a/tests/test_negotiation.py b/tests/test_negotiation.py index 089a86c624..1fe6590950 100644 --- a/tests/test_negotiation.py +++ b/tests/test_negotiation.py @@ -61,8 +61,8 @@ def test_client_specifies_parameter(self): def test_match_is_false_if_main_types_not_match(self): mediatype = _MediaType('test_1') - anoter_mediatype = _MediaType('test_2') - assert mediatype.match(anoter_mediatype) is False + another_mediatype = _MediaType('test_2') + assert mediatype.match(another_mediatype) is False def test_mediatype_match_is_false_if_keys_not_match(self): mediatype = _MediaType(';test_param=foo') diff --git a/tests/test_pagination.py b/tests/test_pagination.py index 02d443ade0..d8feae52bd 100644 --- a/tests/test_pagination.py +++ b/tests/test_pagination.py @@ -513,7 +513,7 @@ def test_ending_offset(self): ] } - def test_erronous_offset(self): + def test_erroneous_offset(self): request = Request(factory.get('/', {'limit': 5, 'offset': 1000})) queryset = self.paginate_queryset(request) self.get_paginated_content(queryset) diff --git a/tests/test_permissions.py b/tests/test_permissions.py index 39b7ed6622..2c908ba3fe 100644 --- a/tests/test_permissions.py +++ b/tests/test_permissions.py @@ -624,7 +624,7 @@ def test_several_levels_and_precedence(self): ) assert composed_perm().has_permission(request, None) is True - def test_or_lazyness(self): + def test_or_laziness(self): request = factory.get('/1', format='json') request.user = AnonymousUser() @@ -644,7 +644,7 @@ def test_or_lazyness(self): assert mock_deny.call_count == 1 assert mock_allow.call_count == 1 - def test_object_or_lazyness(self): + def test_object_or_laziness(self): request = factory.get('/1', format='json') request.user = AnonymousUser() @@ -664,7 +664,7 @@ def test_object_or_lazyness(self): assert mock_deny.call_count == 0 assert mock_allow.call_count == 1 - def test_and_lazyness(self): + def test_and_laziness(self): request = factory.get('/1', format='json') request.user = AnonymousUser() @@ -684,7 +684,7 @@ def test_and_lazyness(self): assert mock_deny.call_count == 1 mock_allow.assert_not_called() - def test_object_and_lazyness(self): + def test_object_and_laziness(self): request = factory.get('/1', format='json') request.user = AnonymousUser() diff --git a/tests/test_validators.py b/tests/test_validators.py index 5b6cd973ca..29b097ef39 100644 --- a/tests/test_validators.py +++ b/tests/test_validators.py @@ -406,7 +406,7 @@ class Meta: "with a `UniqueTogetherValidator` using the desired field names.") assert str(excinfo.value) == expected - def test_allow_explict_override(self): + def test_allow_explicit_override(self): """ Ensure validators can be explicitly removed.. """ @@ -664,7 +664,7 @@ def test_single_field_uniq_validators(self): UniqueConstraint with single field must be transformed into field's UniqueValidator """ - # Django 5 includes Max and Min values validators for IntergerField + # Django 5 includes Max and Min values validators for IntegerField extra_validators_qty = 2 if django_version[0] >= 5 else 0 serializer = UniqueConstraintSerializer() assert len(serializer.validators) == 2 diff --git a/tests/test_views.py b/tests/test_views.py index 11f24906ea..f37cf4a16e 100644 --- a/tests/test_views.py +++ b/tests/test_views.py @@ -47,7 +47,7 @@ def custom_handler(exc, context): return Response({'error': 'UnknownError'}, status=500) -class OverridenSettingsView(APIView): +class OverriddenSettingsView(APIView): settings = APISettings({'EXCEPTION_HANDLER': custom_handler}) def get(self, request, *args, **kwargs): @@ -131,7 +131,7 @@ def test_function_based_view_exception_handler(self): class TestCustomSettings(TestCase): def setUp(self): - self.view = OverridenSettingsView.as_view() + self.view = OverriddenSettingsView.as_view() def test_get_exception_handler(self): request = factory.get('/', content_type='application/json') From 32dbd3525dc16bf51883be23f5fba129acdcf1c1 Mon Sep 17 00:00:00 2001 From: Paul FLORENCE Date: Tue, 25 Mar 2025 21:09:42 +0100 Subject: [PATCH 437/450] Add django-pyoidc as a third party authentication library (#9667) --- docs/api-guide/authentication.md | 9 ++++++++- docs/community/third-party-packages.md | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/api-guide/authentication.md b/docs/api-guide/authentication.md index 8409a83c87..84e58bf4b4 100644 --- a/docs/api-guide/authentication.md +++ b/docs/api-guide/authentication.md @@ -454,6 +454,12 @@ There are currently two forks of this project. More information can be found in the [Documentation](https://django-rest-durin.readthedocs.io/en/latest/index.html). +##Ā django-pyoidc + +[dango-pyoidc][django_pyoidc] adds support for OpenID Connect (OIDC) authentication. This allows you to delegate user management to an Identity Provider, which can be used to implement Single-Sign-On (SSO). It provides support for most uses-cases, such as customizing how token info are mapped to user models, using OIDC audiences for access control, etc. + +More information can be found in the [Documentation](https://django-pyoidc.readthedocs.io/latest/index.html). + [cite]: https://jacobian.org/writing/rest-worst-practices/ [http401]: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2 [http403]: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4 @@ -490,4 +496,5 @@ More information can be found in the [Documentation](https://django-rest-durin.r [drfpasswordless]: https://github.com/aaronn/django-rest-framework-passwordless [django-rest-authemail]: https://github.com/celiao/django-rest-authemail [django-rest-durin]: https://github.com/eshaan7/django-rest-durin -[login-required-middleware]: https://docs.djangoproject.com/en/stable/ref/middleware/#django.contrib.auth.middleware.LoginRequiredMiddleware \ No newline at end of file +[login-required-middleware]: https://docs.djangoproject.com/en/stable/ref/middleware/#django.contrib.auth.middleware.LoginRequiredMiddleware +[django-pyoidc] : https://github.com/makinacorpus/django_pyoidc diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md index 5938364114..4c045cb13f 100644 --- a/docs/community/third-party-packages.md +++ b/docs/community/third-party-packages.md @@ -62,6 +62,7 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque * [drf-oidc-auth][drf-oidc-auth] - Implements OpenID Connect token authentication for DRF. * [drfpasswordless][drfpasswordless] - Adds (Medium, Square Cash inspired) passwordless logins and signups via email and mobile numbers. * [django-rest-authemail][django-rest-authemail] - Provides a RESTful API for user signup and authentication using email addresses. +* [dango-pyoidc][django-pyoidc] adds support for OpenID Connect (OIDC) authentication. ### Permissions @@ -256,3 +257,4 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque [drf-api-action]: https://github.com/Ori-Roza/drf-api-action [drf-redesign]: https://github.com/youzarsiph/drf-redesign [drf-material]: https://github.com/youzarsiph/drf-material +[django-pyoidc] : https://github.com/makinacorpus/django_pyoidc From e96b8e49cd0a3392cfc67615d91b4914c2f65599 Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Fri, 28 Mar 2025 13:56:54 +0100 Subject: [PATCH 438/450] Drop Python 3.8 as EOL (#9670) Thanks to Bruno Alla for review. Co-authored-by: Asif Saif Uddin --- .github/workflows/main.yml | 1 - README.md | 2 +- docs/index.md | 2 +- setup.py | 5 ++--- tox.ini | 2 +- 5 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cfa4bdc442..fe31e727a3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,7 +14,6 @@ jobs: strategy: matrix: python-version: - - '3.8' - '3.9' - '3.10' - '3.11' diff --git a/README.md b/README.md index 95fb1b0128..be6619b4eb 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ Some reasons you might want to use REST framework: # Requirements -* Python 3.8+ +* Python 3.9+ * Django 4.2, 5.0, 5.1, 5.2 We **highly recommend** and only officially support the latest patch release of diff --git a/docs/index.md b/docs/index.md index 2638b05faf..d590d2c049 100644 --- a/docs/index.md +++ b/docs/index.md @@ -88,7 +88,7 @@ continued development by **[signing up for a paid plan][funding]**. REST framework requires the following: * Django (4.2, 5.0, 5.1, 5.2) -* Python (3.8, 3.9, 3.10, 3.11, 3.12, 3.13) +* Python (3.9, 3.10, 3.11, 3.12, 3.13) We **highly recommend** and only officially support the latest patch release of each Python and Django series. diff --git a/setup.py b/setup.py index f80dcff2cc..952b5f50a9 100755 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ from setuptools import find_packages, setup CURRENT_PYTHON = sys.version_info[:2] -REQUIRED_PYTHON = (3, 8) +REQUIRED_PYTHON = (3, 9) # This check and everything above must remain compatible with Python 2.7. if CURRENT_PYTHON < REQUIRED_PYTHON: @@ -82,7 +82,7 @@ def get_version(package): packages=find_packages(exclude=['tests*']), include_package_data=True, install_requires=["django>=4.2", 'backports.zoneinfo;python_version<"3.9"'], - python_requires=">=3.8", + python_requires=">=3.9", zip_safe=False, classifiers=[ 'Development Status :: 5 - Production/Stable', @@ -97,7 +97,6 @@ def get_version(package): 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', diff --git a/tox.ini b/tox.ini index b0bd54219d..032d4a18ea 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] envlist = - {py38,py39}-{django42} + {py39}-{django42} {py310}-{django42,django51,django52,djangomain} {py311}-{django42,django51,django52,djangomain} {py312}-{django42,django51,django52,djangomain} From ac50cec76c9fae76a01931d748e69d003dd79b94 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Fri, 28 Mar 2025 14:16:33 +0000 Subject: [PATCH 439/450] Prepare v3.16, release notes, and announcement. (#9671) * Start drafting release notes from 3.16 (Generated from GitHub) * Reformat changes and split into sections * Format GitHub PRs links for the docs * Link new contributors in Markdown format * Write up 3.16 announcement * Bump version * Add entry for removed Python 3.8 support * Update release date to 28/03 * Minor rewording * Add 3.16 announcement to the navbar and link to docs --- docs/community/3.16-announcement.md | 42 +++++++++++++++ docs/community/release-notes.md | 84 +++++++++++++++++++++++++++++ mkdocs.yml | 1 + rest_framework/__init__.py | 2 +- 4 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 docs/community/3.16-announcement.md diff --git a/docs/community/3.16-announcement.md b/docs/community/3.16-announcement.md new file mode 100644 index 0000000000..b8f460ae76 --- /dev/null +++ b/docs/community/3.16-announcement.md @@ -0,0 +1,42 @@ + + +# Django REST framework 3.16 + +At the Internet, on March 28th, 2025, we are happy to announce the release of Django REST framework 3.16. + +## Updated Django and Python support + +The latest release now fully supports Django 5.1 and the upcoming 5.2 LTS as well as Python 3.13. + +The current minimum versions of Django is now 4.2 and Python 3.9. + +## Django LoginRequiredMiddleware + +The new `LoginRequiredMiddleware` introduced by Django 5.1 can now be used alongside Django REST Framework, however it is not honored for API views as an equivalent behaviour can be configured via `DEFAULT_AUTHENTICATION_CLASSES`. See [our dedicated section](../api-guide/authentication.md#django-51-loginrequiredmiddleware) in the docs for more information. + +## Improved support for UniqueConstraint + +The generation of validators for [UniqueConstraint](https://docs.djangoproject.com/en/stable/ref/models/constraints/#uniqueconstraint) has been improved to support better nullable fields and constraints with conditions. + +## Other fixes and improvements + +There are a number of fixes and minor improvements in this release, ranging from documentation, internal infrastructure (typing, testing, requirements, deprecation, etc.), security and overall behaviour. + +See the [release notes](release-notes.md) page for a complete listing. diff --git a/docs/community/release-notes.md b/docs/community/release-notes.md index 5742e94696..c7b82e9851 100644 --- a/docs/community/release-notes.md +++ b/docs/community/release-notes.md @@ -36,6 +36,90 @@ You can determine your currently installed version using `pip show`: --- +## 3.16.x series + +### 3.16.0 + +**Date**: 28th March 2025 + +This release is considered a significant release to improve upstream support with Django and Python. Some of these may change the behaviour of existing features and pre-existing behaviour. Specifically, some fixes were added to around the support of `UniqueConstraint` with nullable fields which will improve built-in serializer validation. + +## Features + +* Add official support for Django 5.1 and its new `LoginRequiredMiddleware` in [#9514](https://github.com/encode/django-rest-framework/pull/9514) and [#9657](https://github.com/encode/django-rest-framework/pull/9657) +* Add official Django 5.2a1 support in [#9634](https://github.com/encode/django-rest-framework/pull/9634) +* Add support for Python 3.13 in [#9527](https://github.com/encode/django-rest-framework/pull/9527) and [#9556](https://github.com/encode/django-rest-framework/pull/9556) +* Support Django 2.1+ test client JSON data automatically serialized in [#6511](https://github.com/encode/django-rest-framework/pull/6511) and fix a regression in [#9615](https://github.com/encode/django-rest-framework/pull/9615) + +## Bug fixes + +* Fix unique together validator to respect condition's fields from `UniqueConstraint` in [#9360](https://github.com/encode/django-rest-framework/pull/9360) +* Fix raising on nullable fields part of `UniqueConstraint` in [#9531](https://github.com/encode/django-rest-framework/pull/9531) +* Fix `unique_together` validation with source in [#9482](https://github.com/encode/django-rest-framework/pull/9482) +* Added protections to `AttributeError` raised within properties in [#9455](https://github.com/encode/django-rest-framework/pull/9455) +* Fix `get_template_context` to handle also lists in [#9467](https://github.com/encode/django-rest-framework/pull/9467) +* Fix "Converter is already registered" deprecation warning. in [#9512](https://github.com/encode/django-rest-framework/pull/9512) +* Fix noisy warning and accept integers as min/max values of `DecimalField` in [#9515](https://github.com/encode/django-rest-framework/pull/9515) +* Fix usages of `open()` in `setup.py` in [#9661](https://github.com/encode/django-rest-framework/pull/9661) + +## Translations + +* Add some missing Chinese translations in [#9505](https://github.com/encode/django-rest-framework/pull/9505) +* Fix spelling mistakes in Farsi language were corrected in [#9521](https://github.com/encode/django-rest-framework/pull/9521) +* Fixing and adding missing Brazilian Portuguese translations in [#9535](https://github.com/encode/django-rest-framework/pull/9535) + +## Removals + +* Remove support for Python 3.8 in [#9670](https://github.com/encode/django-rest-framework/pull/9670) +* Remove long deprecated code from request wrapper in [#9441](https://github.com/encode/django-rest-framework/pull/9441) +* Remove deprecated `AutoSchema._get_reference` method in [#9525](https://github.com/encode/django-rest-framework/pull/9525) + +## Documentation and internal changes + +* Provide tests for hashing of `OperandHolder` in [#9437](https://github.com/encode/django-rest-framework/pull/9437) +* Update documentation: Add `adrf` third party package in [#9198](https://github.com/encode/django-rest-framework/pull/9198) +* Update tutorials links in Community contributions docs in [#9476](https://github.com/encode/django-rest-framework/pull/9476) +* Fix usage of deprecated Django function in example from docs in [#9509](https://github.com/encode/django-rest-framework/pull/9509) +* Move path converter docs into a separate section in [#9524](https://github.com/encode/django-rest-framework/pull/9524) +* Add test covering update view without `queryset` attribute in [#9528](https://github.com/encode/django-rest-framework/pull/9528) +* Fix Transifex link in [#9541](https://github.com/encode/django-rest-framework/pull/9541) +* Fix example `httpie` call in docs in [#9543](https://github.com/encode/django-rest-framework/pull/9543) +* Fix example for serializer field with choices in docs in [#9563](https://github.com/encode/django-rest-framework/pull/9563) +* Remove extra `<>` in validators example in [#9590](https://github.com/encode/django-rest-framework/pull/9590) +* Update `strftime` link in the docs in [#9624](https://github.com/encode/django-rest-framework/pull/9624) +* Switch to codecov GHA in [#9618](https://github.com/encode/django-rest-framework/pull/9618) +* Add note regarding availability of the `action` attribute in 'Introspecting ViewSet actions' docs section in [#9633](https://github.com/encode/django-rest-framework/pull/9633) +* Improved description of allowed throttling rates in documentation in [#9640](https://github.com/encode/django-rest-framework/pull/9640) +* Add `rest-framework-gm2m-relations` package to the list of 3rd party libraries in [#9063](https://github.com/encode/django-rest-framework/pull/9063) +* Fix a number of typos in the test suite in the docs in [#9662](https://github.com/encode/django-rest-framework/pull/9662) +* Add `django-pyoidc` as a third party authentication library in [#9667](https://github.com/encode/django-rest-framework/pull/9667) + +## New Contributors + +* [`@maerteijn`](https://github.com/maerteijn) made their first contribution in [#9198](https://github.com/encode/django-rest-framework/pull/9198) +* [`@FraCata00`](https://github.com/FraCata00) made their first contribution in [#9444](https://github.com/encode/django-rest-framework/pull/9444) +* [`@AlvaroVega`](https://github.com/AlvaroVega) made their first contribution in [#9451](https://github.com/encode/django-rest-framework/pull/9451) +* [`@james`](https://github.com/james)-mchugh made their first contribution in [#9455](https://github.com/encode/django-rest-framework/pull/9455) +* [`@ifeanyidavid`](https://github.com/ifeanyidavid) made their first contribution in [#9479](https://github.com/encode/django-rest-framework/pull/9479) +* [`@p`](https://github.com/p)-schlickmann made their first contribution in [#9480](https://github.com/encode/django-rest-framework/pull/9480) +* [`@akkuman`](https://github.com/akkuman) made their first contribution in [#9505](https://github.com/encode/django-rest-framework/pull/9505) +* [`@rafaelgramoschi`](https://github.com/rafaelgramoschi) made their first contribution in [#9509](https://github.com/encode/django-rest-framework/pull/9509) +* [`@Sinaatkd`](https://github.com/Sinaatkd) made their first contribution in [#9521](https://github.com/encode/django-rest-framework/pull/9521) +* [`@gtkacz`](https://github.com/gtkacz) made their first contribution in [#9535](https://github.com/encode/django-rest-framework/pull/9535) +* [`@sliverc`](https://github.com/sliverc) made their first contribution in [#9556](https://github.com/encode/django-rest-framework/pull/9556) +* [`@gabrielromagnoli1987`](https://github.com/gabrielromagnoli1987) made their first contribution in [#9543](https://github.com/encode/django-rest-framework/pull/9543) +* [`@cheehong1030`](https://github.com/cheehong1030) made their first contribution in [#9563](https://github.com/encode/django-rest-framework/pull/9563) +* [`@amansharma612`](https://github.com/amansharma612) made their first contribution in [#9590](https://github.com/encode/django-rest-framework/pull/9590) +* [`@Gluroda`](https://github.com/Gluroda) made their first contribution in [#9616](https://github.com/encode/django-rest-framework/pull/9616) +* [`@deepakangadi`](https://github.com/deepakangadi) made their first contribution in [#9624](https://github.com/encode/django-rest-framework/pull/9624) +* [`@EXG1O`](https://github.com/EXG1O) made their first contribution in [#9633](https://github.com/encode/django-rest-framework/pull/9633) +* [`@decadenza`](https://github.com/decadenza) made their first contribution in [#9640](https://github.com/encode/django-rest-framework/pull/9640) +* [`@mojtabaakbari221b`](https://github.com/mojtabaakbari221b) made their first contribution in [#9063](https://github.com/encode/django-rest-framework/pull/9063) +* [`@mikemanger`](https://github.com/mikemanger) made their first contribution in [#9661](https://github.com/encode/django-rest-framework/pull/9661) +* [`@gbip`](https://github.com/gbip) made their first contribution in [#9667](https://github.com/encode/django-rest-framework/pull/9667) + +**Full Changelog**: https://github.com/encode/django-rest-framework/compare/3.15.2...3.16.0 + ## 3.15.x series ### 3.15.2 diff --git a/mkdocs.yml b/mkdocs.yml index a031dd69b3..010aaefe23 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -66,6 +66,7 @@ nav: - 'Contributing to REST framework': 'community/contributing.md' - 'Project management': 'community/project-management.md' - 'Release Notes': 'community/release-notes.md' + - '3.16 Announcement': 'community/3.16-announcement.md' - '3.15 Announcement': 'community/3.15-announcement.md' - '3.14 Announcement': 'community/3.14-announcement.md' - '3.13 Announcement': 'community/3.13-announcement.md' diff --git a/rest_framework/__init__.py b/rest_framework/__init__.py index e33bfa99d8..692ce9cb17 100644 --- a/rest_framework/__init__.py +++ b/rest_framework/__init__.py @@ -8,7 +8,7 @@ """ __title__ = 'Django REST framework' -__version__ = '3.15.2' +__version__ = '3.16.0' __author__ = 'Tom Christie' __license__ = 'BSD 3-Clause' __copyright__ = 'Copyright 2011-2023 Encode OSS Ltd' From 6f274ab862409ee6e5d292727ebbea98abe67780 Mon Sep 17 00:00:00 2001 From: Matheus Oliveira <31555284+araggohnxd@users.noreply.github.com> Date: Mon, 31 Mar 2025 06:43:53 -0300 Subject: [PATCH 440/450] Fix some typos in pt_BR translations (#9673) --- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 10397 -> 12750 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 25 +++++++++--------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/rest_framework/locale/pt_BR/LC_MESSAGES/django.mo b/rest_framework/locale/pt_BR/LC_MESSAGES/django.mo index 5a6e3788e651dfed18d4d5cb4efe1ab658b6ed59..03a0651fa73cd954a0ade4336860db8319a9d3c6 100644 GIT binary patch delta 4440 zcma);du$ZP8NkQb#Kyc$v5gIM0@&txNy@`upvD373?>H5GZfZ$W8bECyJmOKU>xKq zAo@=ms%%Mwl#~)s(?ku5WVMQtDim2!Ql$l@kEB(al+d)QTD9pzsDGqN`}=nH3P@4a zk-z=T%+Ahy&pAKSc{M%sK~>oqMLUX2M}A$Z)CKr-IS<<0N~JWM2OHpKn1X$90z3z6 z;Uy^FzX9vvN3aR1u}aZZbKxSm7%qesS!wrm2!Zq;6 za2FguUa4l7flJ}ja3%aHTmdJb-4?hJw!m*dS$_?7!SabpJ;3?u0G-)Pya21Ey^VH5tnMG$;zR!sYN7Y=y&cE$6F$&`H5& zPDeS_17%?W-UBbex$pycH!Po`)OILm&V&w>4ZjBYQ{UksIq@2l9C#O2 z!+%2!s~Mn^YOcorWpuVA6Awa3mJAfvxllZC23Ek=6JCYe*MCU#_U2re_3KWlg2>Dk19*X61ij2p=MQ}F! z0_=oi;7KT+dmIuqbrw=6>JogZM5$Mycr-U7Hs}eshVjsk=twLp38Yv)12)1II15@( zG(8E$LoY$`#G6noRG*J6TMO4Q+zh4cPD6?Pdr*?FRLApMp_KVqxKHZ;dNQ$+IBev_ zV^B7DD`5><>}Q;YZSXQ|hb3ez8>kI%JA4*ORosN6fzs5bSlkT7!v_+chO*BUxLWGJ zlvNm`+91lRLr|*XQCJR7!+G#2xC&l@;(<@$Hnp z=b(h{Z8(qfRT;(26`)d3La_!)677I1;R(1KUWS`t4cf>7-B3d2C*!X}{?vIM7^mKX zUGT3^3|xwtZif6tH$H6PG1m=-)L=vkT=|H3fF(PARV`*!Uqtc<-G1L(#NqzwN5+eB*HHo`4 zu|f_kwukA6XZn#eq7ku7+7_fN>ct6~bR$SO9zs?lVn`)&2&qFxAw3A57>X_%ap^W> zB_eL#gSbest*5gQ*_2G|gPW1b$gE_}gA(Jlh$QPOq!lSP`N5GUmGJ-~B|Jmym&}xg zht-3Kk61_zBIP4(LyYKokf+3$A2T%(kqVL4he)mzn}k(zgPc@Zq!T%eNRynLOu%TjWOP|$iv{T4;8&4mxgRJf7AZs+!wqpe* zqdnsna)I_ukWy{H^3quy7%v|>6|*$O`5wA-US%jq@4FONA=68^KYy29j4o*n$~H_A`EIR0?exC147+K={`wCHX1TXxRs&KZqK zgGVeoIF9yd*U6;R|FOuIRe@*ewsc^-?Cy;Jc1dHVXhjd_il4-!W3FTLtifXU_^hyU z;-h7@(^nWCnz(h;+-{>SG271QuC7h%Qfh0#5A%5YQFv1L07p6B+Ws!nGu&%zy^uPu)_vze94 zxkpTgO+Qq{c0cI?2ma`-G`j_MxI&FdpsTO$77qr~h)ft1>L zD_8K6P8U2M&qOf}|6Y}wnz1AIS>AxoTLX~--DbFR$}dYQafObp44bBYvT%2FOpk4H z89A)r8%{P30nQk4Mda?}+)!6>fEU=}p%OWX9Fx#lr=Mb9oydVr5)EDT9ogQfweeA1&xE_-QNbueIkh zdq)983dKcWr!8%KVi4EB@cXrkN*Z@rIo!h;BoeQ6)+NKpB~)=EOFT4p!yinmt0;KZ z$a5nX-0=Fe`NKQwx=NY?<76!&opUu+f_8&>+c}ssPH&Jsu9FgR{qXSg>EVU?4dFNI z>+3|J!Mt_!Gndtbf2_ZD*CxleJuAFCeO`qw*47`UHpI)-bDfbF`%O+8{822mUXm8a{m<7_SsPY<&-gm3Hb2}q^Ax8H-7KVzC4Ico+>7PKcmRMI;VNh$cqkjDWzklrPxU-%L{B0)76IyOeCj!ntg96 zmr~oL$|Qj)n7GoVn4+Hwac211oKs`jnVTRAN_ePoYPhOlNf~uug(T4t3LpFx!+W9eK_Q&o*6L6$fJTj%^)952sY8=$E$Gf-A!EwB<%O oghTfZWy5WAo0q3iK241ql`*&au?=!>*cAWBEAo4y;>l$2A8DnFSO5S3 delta 2432 zcmYk-drZ}39LMqJaFYN-P(UH@03ruLF6L1Im5ZVRayba3Q7MCiGnHcpG}J#%H+8mo zsVB>Sbm7dk@(^~-1!v+8)b|f!4xYgzd>iNEhggPx;1u-S zVN4@d;wl`88Zxg@S`~j2hqsF2UnLH<{duty({R! zlvHE#(Tnr&9;6HN7*^s@EXVWM%=qRfD$B5DTC~G4%%*+7X`e!^>=o3CuA#Q_XQ%B= zi@xu|Sf1}f?Z6()!$YY4&SEjXhne^zhTK#V`1W)x#yG4+cHPut1-2r`X!bfjf$HE8 zDosvf7QT#?cmZ{!zoI6*l+N{j1FHQHDrXK)Xa5&bd5H&+vqrUN&4|vp6ZOTd=*9!6 z3B8Egf$JELIT_K3L| zWz2)9+{hvI7hwZxC1W@jk6{76fm-S3s0H0dO|*hRv{OM`iMz2C-waV{rjo<~=|MN@ zdOVN!;MH7x-7ru&0x|H1L5iLedydAY8qmE}#e;>L|rJhPQ znWB5zhb1_GOYsnDB_Ci1#>|e|g*CKKA$e#%MXmG))Ie44=#CDc`g;~h2lE!{2(Mr* zma;C?DtWycK(J2QoMFuJisDDkoC8G8!-gwF4gH zG)y~chc;ub?*G%yg9&6;%_qojgSm~GNF1XnsWMQx(SRDD70Ey2L!Ipqx^X)$z{9Ac zI*+WuR0j!UmUf^T)j==v%8a45@FX_jC5*=zTL#9FtB_V$NJRrJ#D(ZXW&eIm#;4GQvBX+J+d5fRQ{gs6 zihkv^L*0Z1)~=~k6FMU0(I#Rep$Sq#ku6ruOYnna?jw4M$--nK38jf?Qf@*;w?nJ< z5nPhU&M1#`OH?#*m32g7q!zt;`pH&VN|fpR|6dwtY;YdvNZ47ko>)%ktW_!rHpJXd z#1Xm$I<8EjjZjG?x(Fqx&iVnOnc%iZ${IfFi4={mvsFf_kSnG=Qj4CYQ;qxwqcdMc z%yu5mMPlo0lSPTdukgR6lUkkAior%= ziY-cNvlB@^Tax@+czMdG%YHX?q3yl%YWR`VC9ZH<+6ylGP5Q3z*6EEg_GZRd{7_)$ z@SwGsdu&sd*IvvT3a^`a(Pigl|89LbYr?PRTy?nu_GoUk&CS~!p2#b8*(0;FTr0yl z?gK9SeSU)-EBGj(X?Qf)AGB?SCH8V*$7FNvobi~!fPH^XO>(<`z&|o_VLZ4cV3Ug$ z*&{{!cooi^+u^d8i!<%H;@#nTPftu*r+;wEV8Fe-f7?(XxV@i0KRd6%mX@AM@(&LL zGz^bQ%J$l?%e;2y{6}qGd70f&9%nntZ&**oaaXrJUr}olD_7aJ%8J-M{-6z2o=y+A mNBlu|%eszs_pS@$+Ze)btXiDaKQiDS9`p~7`puyKzxqEqS|U#X diff --git a/rest_framework/locale/pt_BR/LC_MESSAGES/django.po b/rest_framework/locale/pt_BR/LC_MESSAGES/django.po index 4d47ce3b9e..bfd53ee0f2 100644 --- a/rest_framework/locale/pt_BR/LC_MESSAGES/django.po +++ b/rest_framework/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Cloves Oliveira , 2020 # Craig Blaszczyk , 2015 @@ -10,6 +10,7 @@ # Hugo Leonardo Chalhoub MendonƧa , 2015 # Jonatas Baldin , 2017 # Gabriel Mitelman Tkacz , 2024 +# Matheus Oliveira , 2025 msgid "" msgstr "" "Project-Id-Version: Django REST framework\n" @@ -141,7 +142,7 @@ msgstr "NĆ£o foi possĆ­vel satisfazer a requisição do cabeƧalho Accept." #: exceptions.py:212 #, python-brace-format msgid "Unsupported media type \"{media_type}\" in request." -msgstr "Tipo de mĆ­dia \"{media_type}\" no pedido nĆ£o Ć© suportado." +msgstr "Tipo de mĆ­dia \"{media_type}\" no pedido nĆ£o Ć© suportado." #: exceptions.py:223 msgid "Request was throttled." @@ -200,17 +201,17 @@ msgstr "Este valor nĆ£o corresponde ao padrĆ£o exigido." msgid "" "Enter a valid \"slug\" consisting of letters, numbers, underscores or " "hyphens." -msgstr "Entrar um \"slug\" vĆ”lido que consista de letras, nĆŗmeros, sublinhados ou hĆ­fens." +msgstr "Insira um \"slug\" vĆ”lido que consista de letras, nĆŗmeros, sublinhados ou hĆ­fens." #: fields.py:839 msgid "" "Enter a valid \"slug\" consisting of Unicode letters, numbers, underscores, " "or hyphens." -msgstr "Digite um \"slug\" vĆ”lido que consista de letras Unicode, nĆŗmeros, sublinhados ou hĆ­fens." +msgstr "Insira um \"slug\" vĆ”lido que consista de letras Unicode, nĆŗmeros, sublinhados ou hĆ­fens." #: fields.py:854 msgid "Enter a valid URL." -msgstr "Entrar um URL vĆ”lido." +msgstr "Insira um URL vĆ”lido." #: fields.py:867 msgid "Must be a valid UUID." @@ -290,12 +291,12 @@ msgstr "NecessĆ”rio uma data mas recebeu uma data e hora." #: fields.py:1303 #, python-brace-format msgid "Time has wrong format. Use one of these formats instead: {format}." -msgstr "Formato invĆ”lido para Tempo. Use um dos formatos a seguir: {format}." +msgstr "Formato invĆ”lido para tempo. Use um dos formatos a seguir: {format}." #: fields.py:1365 #, python-brace-format msgid "Duration has wrong format. Use one of these formats instead: {format}." -msgstr "Formato invĆ”lido para Duração. Use um dos formatos a seguir: {format}." +msgstr "Formato invĆ”lido para duração. Use um dos formatos a seguir: {format}." #: fields.py:1399 fields.py:1456 #, python-brace-format @@ -348,7 +349,7 @@ msgstr "Certifique-se de que o nome do arquivo tem menos de {max_length} caracte msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." -msgstr "Fazer upload de uma imagem vĆ”lida. O arquivo enviado nĆ£o Ć© um arquivo de imagem ou estĆ” corrompido." +msgstr "FaƧa upload de uma imagem vĆ”lida. O arquivo enviado nĆ£o Ć© um arquivo de imagem ou estĆ” corrompido." #: fields.py:1604 relations.py:486 serializers.py:571 msgid "This list may not be empty." @@ -375,7 +376,7 @@ msgstr "Este dicionĆ”rio nĆ£o pode estar vazio." #: fields.py:1755 msgid "Value must be valid JSON." -msgstr "Valor devo ser JSON vĆ”lido." +msgstr "Valor deve ser JSON vĆ”lido." #: filters.py:49 templates/rest_framework/filters/search.html:2 msgid "Search" @@ -395,11 +396,11 @@ msgstr "Qual campo usar ao ordenar os resultados." #: filters.py:287 msgid "ascending" -msgstr "ascendente" +msgstr "crescente" #: filters.py:288 msgid "descending" -msgstr "descendente" +msgstr "decrescente" #: pagination.py:174 msgid "A page number within the paginated result set." @@ -531,7 +532,7 @@ msgstr "Nenhum item para escholher." #: validators.py:39 msgid "This field must be unique." -msgstr "Esse campo deve ser Ćŗnico." +msgstr "Esse campo deve ser Ćŗnico." #: validators.py:89 #, python-brace-format From ffadde930ef23983f123477964d201c278f107e9 Mon Sep 17 00:00:00 2001 From: "Michiel W. Beijen" Date: Mon, 31 Mar 2025 16:22:15 +0200 Subject: [PATCH 441/450] Removed reference to GitHub Issues and Discussions (#9660) --- .github/ISSUE_TEMPLATE/1-issue.md | 17 ----------------- .github/ISSUE_TEMPLATE/config.yml | 6 ------ CONTRIBUTING.md | 2 -- docs/api-guide/fields.md | 2 +- docs/api-guide/throttling.md | 3 +-- docs/api-guide/validators.md | 2 +- docs/community/contributing.md | 18 ------------------ docs/community/project-management.md | 2 -- docs/community/third-party-packages.md | 5 ++--- 9 files changed, 5 insertions(+), 52 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/1-issue.md delete mode 100644 .github/ISSUE_TEMPLATE/config.yml diff --git a/.github/ISSUE_TEMPLATE/1-issue.md b/.github/ISSUE_TEMPLATE/1-issue.md deleted file mode 100644 index 87fa57a893..0000000000 --- a/.github/ISSUE_TEMPLATE/1-issue.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -name: Issue -about: Please only raise an issue if you've been advised to do so after discussion. Thanks! šŸ™ ---- - -## Checklist - - - -- [ ] Raised initially as discussion #... -- [ ] This is not a feature request suitable for implementation outside this project. Please elaborate what it is: - - [ ] compatibility fix for new Django/Python version ... - - [ ] other type of bug fix - - [ ] other type of improvement that does not touch existing code or change existing behavior (e.g. wrapper for new Django field) -- [ ] I have reduced the issue to the simplest possible case. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 382fc521aa..0000000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,6 +0,0 @@ -blank_issues_enabled: false -contact_links: -- name: Discussions - url: https://github.com/encode/django-rest-framework/discussions - about: > - The "Discussions" forum is where you want to start. šŸ’– diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fb01f8bf76..644a719c86 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,6 +2,4 @@ At this point in its lifespan we consider Django REST framework to be essentially feature-complete. We may accept pull requests that track the continued development of Django versions, but would prefer not to accept new features or code formatting changes. -Apart from minor documentation changes, the [GitHub discussions page](https://github.com/encode/django-rest-framework/discussions) should generally be your starting point. Please only raise an issue or pull request if you've been recommended to do so after discussion. - The [Contributing guide in the documentation](https://www.django-rest-framework.org/community/contributing/) gives some more information on our process and code of conduct. diff --git a/docs/api-guide/fields.md b/docs/api-guide/fields.md index 5cbedd964a..3225191f1e 100644 --- a/docs/api-guide/fields.md +++ b/docs/api-guide/fields.md @@ -552,7 +552,7 @@ For further examples on `HiddenField` see the [validators](validators.md) docume --- -**Note:** `HiddenField()` does not appear in `partial=True` serializer (when making `PATCH` request). This behavior might change in future, follow updates on [github discussion](https://github.com/encode/django-rest-framework/discussions/8259). +**Note:** `HiddenField()` does not appear in `partial=True` serializer (when making `PATCH` request). --- diff --git a/docs/api-guide/throttling.md b/docs/api-guide/throttling.md index 0ea8b41585..e6d7774a62 100644 --- a/docs/api-guide/throttling.md +++ b/docs/api-guide/throttling.md @@ -110,7 +110,7 @@ You'll need to remember to also set your custom throttle class in the `'DEFAULT_ The built-in throttle implementations are open to [race conditions][race], so under high concurrency they may allow a few extra requests through. -If your project relies on guaranteeing the number of requests during concurrent requests, you will need to implement your own throttle class. See [issue #5181][gh5181] for more details. +If your project relies on guaranteeing the number of requests during concurrent requests, you will need to implement your own throttle class. --- @@ -220,5 +220,4 @@ The following is an example of a rate throttle, that will randomly throttle 1 in [identifying-clients]: http://oxpedia.org/wiki/index.php?title=AppSuite:Grizzly#Multiple_Proxies_in_front_of_the_cluster [cache-setting]: https://docs.djangoproject.com/en/stable/ref/settings/#caches [cache-docs]: https://docs.djangoproject.com/en/stable/topics/cache/#setting-up-the-cache -[gh5181]: https://github.com/encode/django-rest-framework/issues/5181 [race]: https://en.wikipedia.org/wiki/Race_condition#Data_race diff --git a/docs/api-guide/validators.md b/docs/api-guide/validators.md index b1f58ef237..57bcb8628c 100644 --- a/docs/api-guide/validators.md +++ b/docs/api-guide/validators.md @@ -166,7 +166,7 @@ If you want the date field to be entirely hidden from the user, then use `Hidden --- -**Note:** `HiddenField()` does not appear in `partial=True` serializer (when making `PATCH` request). This behavior might change in future, follow updates on [github discussion](https://github.com/encode/django-rest-framework/discussions/8259). +**Note:** `HiddenField()` does not appear in `partial=True` serializer (when making `PATCH` request). --- diff --git a/docs/community/contributing.md b/docs/community/contributing.md index 5dea6426db..5a91889433 100644 --- a/docs/community/contributing.md +++ b/docs/community/contributing.md @@ -4,8 +4,6 @@ > > — [Tim Berners-Lee][cite] -There are many ways you can contribute to Django REST framework. We'd like it to be a community-led project, so please get involved and help shape the future of the project. - !!! note At this point in its lifespan we consider Django REST framework to be feature-complete. We focus on pull requests that track the continued development of Django versions, and generally do not accept new features or code formatting changes. @@ -30,24 +28,9 @@ The [Django code of conduct][code-of-conduct] gives a fuller set of guidelines f # Issues -Our contribution process is that the [GitHub discussions page](https://github.com/encode/django-rest-framework/discussions) should generally be your starting point. Please only raise an issue or pull request if you've been recommended to do so after discussion. - -Some tips on good potential issue reporting: - * Django REST framework is considered feature-complete. Please do not file requests to change behavior, unless it is required for security reasons or to maintain compatibility with upcoming Django or Python versions. -* Search the GitHub project page for related items, and make sure you're running the latest version of REST framework before reporting an issue. * Feature requests will typically be closed with a recommendation that they be implemented outside the core REST framework library (e.g. as third-party libraries). This approach allows us to keep down the maintenance overhead of REST framework, so that the focus can be on continued stability and great documentation. -## Triaging issues - -Getting involved in triaging incoming issues is a good way to start contributing. Every single ticket that comes into the ticket tracker needs to be reviewed in order to determine what the next steps should be. Anyone can help out with this, you just need to be willing to - -* Read through the ticket - does it make sense, is it missing any context that would help explain it better? -* Is the ticket reported in the correct place, would it be better suited as a discussion on the discussion group? -* If the ticket is a bug report, can you reproduce it? Are you able to write a failing test case that demonstrates the issue and that can be submitted as a pull request? -* If the ticket is a feature request, could the feature request instead be implemented as a third party package? -* If a ticket hasn't had much activity and addresses something you need, then comment on the ticket and try to find out what's needed to get it moving again. - # Development To start developing on Django REST framework, first create a Fork from the @@ -206,7 +189,6 @@ If you want to draw attention to a note or warning, use a pair of enclosing line [code-of-conduct]: https://www.djangoproject.com/conduct/ [google-group]: https://groups.google.com/forum/?fromgroups#!forum/django-rest-framework [so-filter]: https://stackexchange.com/filters/66475/rest-framework -[issues]: https://github.com/encode/django-rest-framework/issues?state=open [pep-8]: https://www.python.org/dev/peps/pep-0008/ [build-status]: ../img/build-status.png [pull-requests]: https://help.github.com/articles/using-pull-requests diff --git a/docs/community/project-management.md b/docs/community/project-management.md index 4f203e13bb..daf2cda8d8 100644 --- a/docs/community/project-management.md +++ b/docs/community/project-management.md @@ -34,7 +34,6 @@ Further notes for maintainers: * Code changes should come in the form of a pull request - do not push directly to master. * Maintainers should typically not merge their own pull requests. * Each issue/pull request should have exactly one label once triaged. -* Search for un-triaged issues with [is:open no:label][un-triaged]. --- @@ -157,7 +156,6 @@ The following issues still need to be addressed: * Document ownership and management of the security mailing list. [bus-factor]: https://en.wikipedia.org/wiki/Bus_factor -[un-triaged]: https://github.com/encode/django-rest-framework/issues?q=is%3Aopen+no%3Alabel [transifex-project]: https://www.transifex.com/projects/p/django-rest-framework/ [transifex-client]: https://pypi.org/project/transifex-client/ [translation-memory]: http://docs.transifex.com/guides/tm#let-tm-automatically-populate-translations diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md index 4c045cb13f..9d25665adb 100644 --- a/docs/community/third-party-packages.md +++ b/docs/community/third-party-packages.md @@ -32,7 +32,7 @@ We suggest adding your package to the [REST Framework][rest-framework-grid] grid #### Adding to the Django REST framework docs -Create a [Pull Request][drf-create-pr] or [Issue][drf-create-issue] on GitHub, and we'll add a link to it from the main REST framework documentation. You can add your package under **Third party packages** of the API Guide section that best applies, like [Authentication][authentication] or [Permissions][permissions]. You can also link your package under the [Third Party Packages][third-party-packages] section. +Create a [Pull Request][drf-create-pr] on GitHub, and we'll add a link to it from the main REST framework documentation. You can add your package under **Third party packages** of the API Guide section that best applies, like [Authentication][authentication] or [Permissions][permissions]. You can also link your package under the [Third Party Packages][third-party-packages] section. #### Announce on the discussion group. @@ -44,7 +44,7 @@ Django REST Framework has a growing community of developers, packages, and resou Check out a grid detailing all the packages and ecosystem around Django REST Framework at [Django Packages][rest-framework-grid]. -To submit new content, [open an issue][drf-create-issue] or [create a pull request][drf-create-pr]. +To submit new content, [create a pull request][drf-create-pr]. ## Async Support @@ -174,7 +174,6 @@ To submit new content, [open an issue][drf-create-issue] or [create a pull reque [drf-compat]: https://github.com/encode/django-rest-framework/blob/master/rest_framework/compat.py [rest-framework-grid]: https://www.djangopackages.com/grids/g/django-rest-framework/ [drf-create-pr]: https://github.com/encode/django-rest-framework/compare -[drf-create-issue]: https://github.com/encode/django-rest-framework/issues/new [authentication]: ../api-guide/authentication.md [permissions]: ../api-guide/permissions.md [third-party-packages]: ../topics/third-party-packages/#existing-third-party-packages From 9b1e8d2d43ff55a39f50f61018bf103e03454086 Mon Sep 17 00:00:00 2001 From: JAEGYUN JUNG Date: Thu, 3 Apr 2025 02:17:04 +0900 Subject: [PATCH 442/450] Add missing & fix Korean translations (#9571) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update django.po file * update django.po translators * Changed the translation for the word ā€œUserā€ from ā€œģœ ģ €ā€ to ā€œģ‚¬ģš©ģžā€ to make it consistent with Django's translation reference: https://github.com/django/django/blob/5a91ad3d7115c692d497663a155edee5ebc8989c/django/contrib/admin/locale/ko/LC_MESSAGES/django.po#L601 * Add missing translation for the word ā€œToken" * Fix wrong translation for word "Created" * Fix translation for "Tokens", just like django translation. reference: https://github.com/django/django/blob/5a91ad3d7115c692d497663a155edee5ebc8989c/django/contrib/auth/locale/ko/LC_MESSAGES/django.po#L235 * Add missing translation for "Invalid Input" * Add missing translation for throttling messages * Add missing translation for CharField, BooleanField messages * fix: remove unnecessary space * Feat: add missing translation for SlugField error message * Feat: add missing translation for UUIDField error message * Fix: add (boolean) for booleanField message * Feat: add missing translation for `integer to float` error message * Feat: add & fix translation for DecimalField * Feat: add & fix translation for DateTimeField * Feat: add & fix translation for DurationField * Feat: add & fix translation for Selection&FilePathField * Feat: add & fix translation for DictField * Feat: add missing translation for filters * Feat: add missing translations for template * Feat: Change end punctuation to the ā€œ~ģ„øģš”.ā€ used by Django translations * update django.po translators * Feat: add compiled message file * Update rest_framework/locale/ko_KR/LC_MESSAGES/django.po Co-authored-by: taezero <51291185+overtae@users.noreply.github.com> * Update rest_framework/locale/ko_KR/LC_MESSAGES/django.po Co-authored-by: taezero <51291185+overtae@users.noreply.github.com> * Feat: remove unnecessary multliline from django.po(kor translation) * Feat: remove unnecessary multliline from django.po(kor translation) * Feat: update Korean translations for authentication messages * Feat: Remove unnecessary English parenthesis descriptions * Feat: Remove unnecessary English parenthesis descriptions * Feat: Remove unnecessary English parenthesis descriptions * Feat: Update compiled message file for ko_KR --------- Co-authored-by: taezero <51291185+overtae@users.noreply.github.com> --- .../locale/ko_KR/LC_MESSAGES/django.mo | Bin 11698 -> 14546 bytes .../locale/ko_KR/LC_MESSAGES/django.po | 382 +++++++++--------- 2 files changed, 195 insertions(+), 187 deletions(-) diff --git a/rest_framework/locale/ko_KR/LC_MESSAGES/django.mo b/rest_framework/locale/ko_KR/LC_MESSAGES/django.mo index c3aeb27a96e5c3b3ef9e61ac79e9ad229463ec7c..2228adcf7ff5707481347cefb2cbe1c9b753dd3e 100644 GIT binary patch literal 14546 zcmchd3veCPdB-;`fnZ1o>y#;NUq!n8-p2yEK@OYUY&H3Hq%KuY5JJVq|Id7X0&@thi0aa8D{$X z&Ys=7lCEqSH`&p-|2@0s@tyB|&gy5Eoi}K4ZKGTvPz2kS)T%Za3gpUyal`%B5nd#g3G}#fVY9Kf%k#`0XBoTUlO(70=7_p z1-u`8=X)*dcfs}GWndR5^FL{xA2Ik>pp5_Tpv?D)OD*f;;G>}MWfurZ)=QwQ>vi+| zJD|+}Z{V$91Cv|>eir;B_+{{J@Oxkrc+vYJzBYr>ehqjnxC2}aPJmZ|KLtMlz6G*G zYw`P|`ELQ2QC|hhcwOKc@Of|r_y#EL8$V!KzXRS5O8sF__|OK*`gemOm!qaWZQft- zLCgAWo?in(vUM%^G4L)>#*5;Gcv1S%1mTE#S{V;lqa^;s)?uP}cuNP}X+} z6utUKQ@`rN5nt~BWt>MrX}1*=eI5jF244kb{9l^7V$rhhhxw6qMNolX0fp{YK;h#* zf$szxXe9J51~CQeT2S<1Id~n|4n6`N0EI9A2{M)S-=M7jGKiA;N5Dq#Ch&SN16~L| z3yS`Yg2KlaKupLw0m{7JHudir{991;_U9m~VZC9VpZ8J5eurgU3JP7T5%R5IH+VZZ z0m}GqfMN&#Yw*e|qxwpNE-2%F1(g27pz!f0pwM-(vaD9{!(bcuI4JA-g{fbPvdjCe z;9Bsf;2(iY8Z7HU@XH4O0lY_^qr~#O6Wj`Z2fPz(hDgE3!7lKdpbOrFlHCOU3CPga zPe8Go{{n@tS6>~;`w?&>^?jiDjbDOGz?)ER!A;vI`1hdDeFH|k z4%`R&;6H<9u!TY7{SQFl=Ms$jbKpAg55Ske)!?rT-j34TOT7Y0`yYZ#Vg1THzhY@L zUOV_Dp8o~78C(T(rTwemjo{ybvhIsmwCHssDC>5>$G{;_e`hNzL zcF%wpg9kwc9yQOu4@&zVg2Jyi!Detd#34$n3l#YegQ%+YGq4?e3lzE>oCLSlQ=qi} zHi&4fe+A|JB`|9hcnf$J*lX(F23e|gKEj5T*3BSOTUk)}^(@#5{umVcZ$|kq0#|_V z0oQ<^1V0UmJcq!2;4i=n!7@UD1nW!Sd%+Xn)!=tQ;d21W{FlHa;mapM>36@WZv>@Z z27DjrgNwjE@ZI1u1`mVpr~Znme;0fQ_4x9+SxH$#>80FH5xV3OeqEvOumkWub1&-^ zUWuGpzUE&Jl=($gqCcXWmr>+Gb+zplz}w^jm#kGT)KK$FWU)mam`ij~F5!h-T@Sn|px|QN&I~R_9UV+NOV__#(FtQ$*$$Q1X=3l;5Jf zi(*qgKv9$x6w$>`Q68bl^-u)b270&`oe{m2>ki5n^fWGeKH%s|k zRMo#8zpbV&dc2XcRq72rZlSa6_ckcEqzay|Y}IAw+^ouUcy0!_HgAJY+wVwP-Kje5 zc1IP;`BtZ>wzz(WTTp(7BahvJ?K@djbV}u%uS$;JWZena#Y~6tonk(!7Q5)^6pLO_ zd6`VPSah=TA|l2u_)a_Tp|R*ZR(5B+G?UJH*F(>;v&rx7bb6JWbqc=Q*6kMBp^BD0 z1v~HbGC`R|Z16Ta1$`^6GPdt}1(jhAsoJ@c+Ts*h8_ek}dR>eKWp{h!Tvk6T(Z1By ztye3=IVE4+naMbvzUpx7tW%_M(GeC{EBRF&HUkztC~5PGdE0MNEhR^J1xlL?LM3`p zQf{H-GeooMiJm~P4B@-^|F>Z@my}obW%i<7Xh-BL%f*NX=SJ$PLa7Yj{0`ffb#ZHJ zHmbZAJuax8yuEc(*2%beJGZGbXJ?#JuQGKN)tjsZkK?wxzVz1!^OW!Tc5dMVZ0YcF z&Zek)GEA!j?`0KEjW7>=Obv@ZwYd)JApBynImbo^dh%{zQ_d;0`yIX5iCwfaXnX1G z`Z+l#j~33`tKiM%=E7&3zwdmrGB#!tFEj7yRU*N;bE?HI>JK}5%)2Es*Bz-HjBD4X zQ4}pHC~O}CvU3P7VxMk?)+Z`JkECnPDV6H=gP>YJSf04FhElHF-k>sGq2!i)@dfC7 zOTo=}SqGu{BA%tjhjCLbV7#Ra(x(Dx9o?NBPC<*}jH8}*w9^c>=E1HTvA$tw|*_!h2Qni|Ec$B2mV1yWnyUT(zTx zpQdZ)=16tt?-<3nNWXp0Q#rdxOvM&hHqj9;>Z!JzXZz4cD}r>ZU2-#Vm{Ek8BxFgn zGAqq>OFQT08hnadSd@$txzk zg>@a=2 z~tPge*;c-61*%c+#ToOAGwYA(RdI0 z_6U-0>Ky?w+~d|S7Yhm#)f%h;9dBvg;Y?M*^S?}{j`Cp(LUXbkRwBEcHBY&~d{ z%35!7aaot&QS^L2CuBdQHy+kQ+KHQFB5}67X6NCxOVF&@fyrB0RV1Zm)pAXbc+yRs zk_k3{nha$F`Jqk%NqIDCddWufBDK7|S>#qOxM)GN1(FVK!IcdLn02~fV*7kb3XY@SPsWoR8Hk)DRyeyP+xtZ^b{TM04aic+^i?d1h#~P*bHoE1B zjyRq)oeP?-8+ANQH}gtoP^pEdxfR)-NOYbCQ9_XzOkTpBmRQVQahljQK4ZhV?<{qg zvGi}r5*KAcj@44o=^Uz^^V-FwYukMB7riv(qa|4vY76ZDn#yT`@VPjA1t1 z^ynlpl7u%(O4v{mX;oyEIJa)Etjf9xBZ^0Ga4a|*t=|L~X)bxUt&^s5r%W7;VX-?e z>L2D~3rEH$4YPPW?I-26xF&0(oHr!)7?E-BLl3NLvL4np9VsZw#}#Ad*ean<`z#|2 zIUXUedIVClo~EqBW-@$Y-Yx0yL}zMZXmr6ogd7jC*`1lFtX6)W za|BPVU-i%ioEp3#$ZuY>-VuQ|t}V5@*~Yud?WM*IUb9;C-~)~8oi10_*SHefYgX4U zyM9^Yb^P6+uDh-I#+$BL#Av-g)~;E*sz&g2P0JSD9dWL4 z11_zZbE&QVwH!dWh2=UBaB8)pWy3v+mPN4BYOc(i)(h3eo?c$CWEZvCt>THQGk9@-V` z=?nIZrHoGm?jo|RG3TJn$eq|^enPljoGA1{>hJwArYI2W2U~j@=s7XIbf|dtqtyr=JXB}g8E1`WKe{N-&b_hYrei@R#1#k@N?JbMD;pn}R7^hYhO4pqWK$CDFJ zIwt;`(@!xaV^KOs*Wt4_I5CNPSJmyur(Ycpb|A~~19u%u@1~_pl>l}6HCJ3Q#!(oOa@;Mf4_ zqfR&AP#?A?aaMK{3Y7}?jOu$inUWcT@#n%BF^GnIbCH)s4%1yn4#L9Ge%)8Q;Mx7c z!HS4z7xEk!40jC#mA>G}ac#uuQ4k%&CRd?byFoHVdq=r3$yC19Wo?6hDb!jxm zw>V-|eXbJj$5rVlCoUw|O=@r~&L0-uGJI`72#St(iKG_pkYI12((@((L&t-00=pzb zI?t*_u{c%_o6wvXE+6MOREiWh+)tK-%4@z#-V-r3b^2SMl_n3UGd4%U#-Qhld};bv znSrBVHb-xwJS!eXq<>eI)ogXyFi zI~hEMM@w|=TxQjrIekv4MR0l!CYf-;Ty_IV-r6+7q8HbWO_mscQacr|Yjx>kaFS?p z%!+ix`T%my#CNA>7k?#gh>RuKdc@8z-OfaYr%nY&w-dYw588F2dZfdzqg+Yjl#$I= zC009koMZqAK=Gh6^X>(WGd(^MPE2Y69G)aDFPNk#Jfzm2Y>VE8G_mkmNBj$-tEzW2 z=U|4X)y=aR-Ly@4KzwH%0YnW%5zlOS=Q{t{Sa~#;j;gb%PHCnNqQStxwZZF^fS{ze zzh@A4?78P3Hu+`|xl_qD*+Pe-60zqpu||%BoM=1$cDhJ-olTSYmD{Q^?|m>GcxvQuf-m1!*gvq$Xm7;!CQhfch|-K|N*`S4 zb4}?*7CbYm#H^R-E16jM>{Q)$4be>KT!S#WA+2}~X)~HV0qhg0hz5-ghp!FK7gVEm zdXq!WGT2`y*hgnYIuV$$?3vz{+DN~ZT9@88=wt{Q*o5vm5T|e9_&0TiH0P)!aiPJU z*U5c{O#Ts{LiO=)v-LjmEXY@eeZz>}N;A+h`VldSSU39=#vE)}iCdeMKuy2CJzkT< z%!$dx{3}!RU5L$*X25B+tKJu)Xum$|>yV5BKV&1nhf}!|qr&IG*)os#6h--%cXF&T zH7-e5@YJi=t?V#Qv5l1xQy+mu`F3tMCnWl_5Kp40J6CyYVv5fS<5Uu7#{@><(Czqe zO>?29k!fv6^b`B4u)Gm*W=Sp>C)$##%{htD^GJ$PQ+C8F^rkJ61><>AyB^KVq@ASd za}-g!M1s(iqxLkZ4!#_`cr4{jX13B_nPBc2hm$W(3u!m&i&L;;G(0+-BxW2F%%cV~ z$(l7v_}sub53zroW23Vk<;?o41r_fjV<|n?uY!GOL|qw0t|^v`gfHZJ+8#O_6R{2s zOrJcCy+@k)LbWof54z_MWb(~RRFk~r*L89mB_UP>i`lI%iN1^_?ng{ZA5cpy(r4N= z3p+flId*t>`p*a@oLJV|w?z(5P8=lu@xjb|Bhxv|(QV;#duwq*5BJIxp$Cf+JFM;; zPAk8O;5sY@uS|tQ>_>ky8f95j|I^x!nKTOUV!Gw%Hb66EVvDciG z%xRk1fauc#cJ|iv3DPIdZ5d^3AB07IJsxYv%dl~dtB=ka=&h+aQb~m}`8;Pl|6FGn z2dB}&V3gy3+;cRN2q1DH(V-qEZ!pEgz3Q`1%KPcp`f*>H&Y8hBV3CCX`Xj$Pm zhN`>vhEt;!DO7OelzFU=m!?$eZDkDYXG6_+e7+%G4443i&Yp^I;R{EB_{4p|o|E`q WU5h;lwCnFNvRIfHMH%7^wf_TE%p8^g delta 3827 zcma*odr(x@9S88Uit-Yar{DuF4`CPBT|httj7p5k!*{eKYVEpvflXi+cNa05xTtG} z3eJ!oRxn+dHBr$96J)W)LMCG~)Bd58Ogj0anMvO>9m_qNNoHyr?TqR7x4Q^U?4)Nn z`#I;_d(Sd1gjb{vH*Xt)D6z)1A657xpp@Di+qpTRnq z6wO!#G(fuUf%WiHm<2NyF%}P>gEYVfNbT(*FGA|?eOO9UeTV{$P#+VV;TlLUI0(z( z09+40fzQIYSjKd4FT@{n;fL|(j4gv(Ak_~;n!yoBGjc;(%CS)WLFjsX9Aop*UIu9eDqtGi26JHxOon|>g6}|Q z0t)v~!0NI;K|NF;wuvoAFJv~P2eoh^+ys}xI#>vekhZW7(f~gXU4Iy=$KfRuBRW_H zYawmjsRXP)HQYu6&G^gEjnRq05#~Y~&{jw@J_ac+Ct*Ik1B;*^z5vsc5Ww&im}Nd zz6Dpqe?saw4{tvVOJF1H5BV5wLtVyf=@j^!DA3V+1fPcuSf?6z15#}K3vPlPSXXii zwm{X&-~cU<1~d$5CGJ6*;p31+2!MU4n_xYhgtUbb=?FyVT#Ukg6n+G^!YOzGE|4&4 z=z$%u1R-4jN8kbY8KgZg%M5xF)}sDvNWm6|h^6{kXofE6gkL~Av|!ZubF#nSw*(F0 z_`0A^Rt49?A3_SQA!vgihw9Zi!Sic}^U?kuq}cJn3iuH$hmjZs4Wt@B7!!L5;#KTC z#4fQhSWZK_i^4)QgsBH|GVTzZ+_4Nj^k@_UegkQXYOx=5{m+ns z?>?jntU#nv3}|2_JOHVEAmkOOLY)%5KkzV#?+?R4c#>%Jv}Dv7r6^>4YZxZNet=Aa zo=FWT#3R#-DBuw2ffGYPP1{2fqYBcC$QzI;m?KzmAwf|ZtiZlZwNGpB*Js|Fc66-c}AOF_C3nLg?CQCo{#N$Yyw|D&%JZ zrQlCwsJsKNL8bspM4pF?PeUN$x4<}Ld>R62H-7gbBb=V3bd-{jC1g5PEc1lf($?L6w?z&W?~N_tk7Gaesh5a`Z(I=;VsN$8&A93S~bx|hSZj>!1v!#hIS$V?QU^r@) zZPE^#$$F&y6{+f&HCWovVzyY1nhiRmwe^{(dV{5@-Owa!pO+1-6;hqmCL1i0I-o{U zH#;0{6?%O~M~BW~Gg$2AM)?>$s5iZY2d!G0YPin$7A>QocJ?Sf>mGh%waNO@2RU7!{ z(Wxp856{cY*l0A$Z4RkfHkhzTxL1tb5Q8pB8SW96Zu;F`zN<7b;>@6M-Bfz7@f7JE zkIy)=XsB1Y`hn;gm>%tv`1Y7&zB_BFuKR}Q_K1PYIwrg>F*YuVu6M*xui9j8GCS-V zy7xq@;n<;Io$t&_Eu8bn>pkdCczY#0qFf!3gnLNzqxN5Y@C}*Cd{XMY7clrk={1^Mwvc+gM zAynh?QvRR!6hHkvk}@)ZnTq~#+92h2m$*HlwznCKvR%WwwK@E*CMNdjBTs&Mj|g^k zgxc6{vs-O6%U5|-ehy!je~bSk|H}VD{MwNwP?7uJUvD^jXtKt=rz&hVgCW9A_18I diff --git a/rest_framework/locale/ko_KR/LC_MESSAGES/django.po b/rest_framework/locale/ko_KR/LC_MESSAGES/django.po index 722dc2c82e..f98cad67d5 100644 --- a/rest_framework/locale/ko_KR/LC_MESSAGES/django.po +++ b/rest_framework/locale/ko_KR/LC_MESSAGES/django.po @@ -1,37 +1,37 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: -# GarakdongBigBoy , 2017 +# JAEGYUN JUNG , 2024 # Hochul Kwak , 2018 +# GarakdongBigBoy , 2017 # Joon Hwan ź¹€ģ¤€ķ™˜ , 2017 # SUN CHOI , 2015 msgid "" msgstr "" "Project-Id-Version: Django REST framework\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-10-13 21:45+0200\n" +"POT-Creation-Date: 2024-10-22 16:13+0900\n" "PO-Revision-Date: 2020-10-13 19:45+0000\n" -"Last-Translator: Xavier Ordoquy \n" -"Language-Team: Korean (Korea) (http://www.transifex.com/django-rest-framework-1/django-rest-framework/language/ko_KR/)\n" +"Last-Translator: JAEGYUN JUNG \n" +"Language: ko_KR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ko_KR\n" "Plural-Forms: nplurals=1; plural=0;\n" #: authentication.py:70 msgid "Invalid basic header. No credentials provided." -msgstr "źø°ė³ø ķ—¤ė”(basic header)ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. ģøģ¦ė°ģ“ķ„°(credentials)ź°€ ģ œź³µė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤." +msgstr "źø°ė³ø ķ—¤ė”ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. ģøģ¦ ė°ģ“ķ„°ź°€ ģ œź³µė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤." #: authentication.py:73 msgid "Invalid basic header. Credentials string should not contain spaces." -msgstr "źø°ė³ø ķ—¤ė”(basic header)ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. ģøģ¦ė°ģ“ķ„°(credentials) ė¬øģžģ—“ģ€ 빈칸(spaces)ģ„ ķ¬ķ•Øķ•˜ģ§€ ģ•Šģ•„ģ•¼ ķ•©ė‹ˆė‹¤." +msgstr "źø°ė³ø ķ—¤ė”ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. ģøģ¦ ė°ģ“ķ„° ė¬øģžģ—“ģ€ ź³µė°±ģ„ ķ¬ķ•Øķ•˜ģ§€ ģ•Šģ•„ģ•¼ ķ•©ė‹ˆė‹¤." -#: authentication.py:83 +#: authentication.py:84 msgid "Invalid basic header. Credentials not correctly base64 encoded." -msgstr "źø°ė³ø ķ—¤ė”(basic header)ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. ģøģ¦ė°ģ“ķ„°(credentials)ź°€ base64딜 ģ ģ ˆķžˆ ė¶€ķ˜øķ™”(encode)ė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤." +msgstr "źø°ė³ø ķ—¤ė”ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. ģøģ¦ ė°ģ“ķ„°ź°€ ģ˜¬ė°”ė„“ź²Œ base64 ģøģ½”ė”©ė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤." #: authentication.py:101 msgid "Invalid username/password." @@ -43,11 +43,11 @@ msgstr "ź³„ģ •ģ“ ģ¤‘ģ§€ė˜ģ—ˆź±°ė‚˜ ģ‚­ģ œė˜ģ—ˆģŠµė‹ˆė‹¤." #: authentication.py:184 msgid "Invalid token header. No credentials provided." -msgstr "토큰 ķ—¤ė”ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. ģøģ¦ė°ģ“ķ„°(credentials)ź°€ ģ œź³µė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤." +msgstr "토큰 ķ—¤ė”ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. ģøģ¦ ė°ģ“ķ„°ź°€ ģ œź³µė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤." #: authentication.py:187 msgid "Invalid token header. Token string should not contain spaces." -msgstr "토큰 ķ—¤ė”ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. 토큰 ė¬øģžģ—“ģ€ 빈칸(spaces)ģ„ ķ¬ķ•Øķ•˜ģ§€ ģ•Šģ•„ģ•¼ ķ•©ė‹ˆė‹¤." +msgstr "토큰 ķ—¤ė”ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. 토큰 ė¬øģžģ—“ģ€ ź³µė°±ģ„ ķ¬ķ•Øķ•˜ģ§€ ģ•Šģ•„ģ•¼ ķ•©ė‹ˆė‹¤." #: authentication.py:193 msgid "" @@ -58,6 +58,10 @@ msgstr "토큰 ķ—¤ė”ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤. 토큰 ė¬øģžģ—“ģ€ 유효 msgid "Invalid token." msgstr "ķ† ķ°ģ“ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." +#: authtoken/admin.py:28 authtoken/serializers.py:9 +msgid "Username" +msgstr "ģ‚¬ģš©ģž ģ“ė¦„" + #: authtoken/apps.py:7 msgid "Auth Token" msgstr "ģøģ¦ 토큰" @@ -68,23 +72,19 @@ msgstr "키" #: authtoken/models.py:16 msgid "User" -msgstr "ģœ ģ €" +msgstr "ģ‚¬ģš©ģž" #: authtoken/models.py:18 msgid "Created" -msgstr "ģƒģ„±ėØ" +msgstr "ģƒģ„±ģ¼ģ‹œ" -#: authtoken/models.py:27 authtoken/serializers.py:19 +#: authtoken/models.py:27 authtoken/models.py:54 authtoken/serializers.py:19 msgid "Token" msgstr "토큰" -#: authtoken/models.py:28 +#: authtoken/models.py:28 authtoken/models.py:55 msgid "Tokens" -msgstr "" - -#: authtoken/serializers.py:9 -msgid "Username" -msgstr "ģœ ģ €ģ“ė¦„" +msgstr "토큰(들)" #: authtoken/serializers.py:13 msgid "Password" @@ -92,390 +92,398 @@ msgstr "ė¹„ė°€ė²ˆķ˜ø" #: authtoken/serializers.py:35 msgid "Unable to log in with provided credentials." -msgstr "제공된 ģøģ¦ė°ģ“ķ„°(credentials)ė”œėŠ” ė”œź·øģøķ•  수 ģ—†ģŠµė‹ˆė‹¤." +msgstr "제공된 ģøģ¦ ė°ģ“ķ„°ė”œėŠ” ė”œź·øģøķ•  수 ģ—†ģŠµė‹ˆė‹¤." #: authtoken/serializers.py:38 msgid "Must include \"username\" and \"password\"." msgstr "\"ģ•„ģ“ė””\"와 \"ė¹„ė°€ė²ˆķ˜ø\"넼 ķ¬ķ•Øķ•“ģ•¼ ķ•©ė‹ˆė‹¤." -#: exceptions.py:102 +#: exceptions.py:105 msgid "A server error occurred." msgstr "ģ„œė²„ ģž„ģ• ź°€ ė°œģƒķ–ˆģŠµė‹ˆė‹¤." -#: exceptions.py:142 +#: exceptions.py:145 msgid "Invalid input." -msgstr "" +msgstr "ģœ ķšØķ•˜ģ§€ ģ•Šģ€ ģž…ė „ģž…ė‹ˆė‹¤." -#: exceptions.py:161 +#: exceptions.py:166 msgid "Malformed request." msgstr "ģž˜ėŖ»ėœ ģš”ģ²­ģž…ė‹ˆė‹¤." -#: exceptions.py:167 +#: exceptions.py:172 msgid "Incorrect authentication credentials." -msgstr "ģžź²© ģøģ¦ė°ģ“ķ„°(authentication credentials)ź°€ ģ •ķ™•ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." +msgstr "ģžź²© ģøģ¦ ė°ģ“ķ„°ź°€ ģ˜¬ė°”ė„“ģ§€ ģ•ŠģŠµė‹ˆė‹¤." -#: exceptions.py:173 +#: exceptions.py:178 msgid "Authentication credentials were not provided." -msgstr "ģžź²© ģøģ¦ė°ģ“ķ„°(authentication credentials)ź°€ ģ œź³µė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤." +msgstr "ģžź²© ģøģ¦ ė°ģ“ķ„°ź°€ ģ œź³µė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤." -#: exceptions.py:179 +#: exceptions.py:184 msgid "You do not have permission to perform this action." -msgstr "ģ“ ģž‘ģ—…ģ„ ģˆ˜ķ–‰ķ•  ź¶Œķ•œ(permission)ģ“ ģ—†ģŠµė‹ˆė‹¤." +msgstr "ģ“ ģž‘ģ—…ģ„ ģˆ˜ķ–‰ķ•  ź¶Œķ•œģ“ ģ—†ģŠµė‹ˆė‹¤." -#: exceptions.py:185 +#: exceptions.py:190 msgid "Not found." msgstr "ģ°¾ģ„ 수 ģ—†ģŠµė‹ˆė‹¤." -#: exceptions.py:191 +#: exceptions.py:196 #, python-brace-format msgid "Method \"{method}\" not allowed." -msgstr "ė©”ģ†Œė“œ(Method) \"{method}\"ėŠ” ķ—ˆģš©ė˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." +msgstr "ė©”ģ„œė“œ \"{method}\"ėŠ” ķ—ˆģš©ė˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." -#: exceptions.py:202 +#: exceptions.py:207 msgid "Could not satisfy the request Accept header." -msgstr "Accept header ģš”ģ²­ģ„ ė§Œģ”±ķ•  수 ģ—†ģŠµė‹ˆė‹¤." +msgstr "ģš”ģ²­ Accept ķ—¤ė”ė„¼ ė§Œģ”±ģ‹œķ‚¬ 수 ģ—†ģŠµė‹ˆė‹¤." -#: exceptions.py:212 +#: exceptions.py:217 #, python-brace-format msgid "Unsupported media type \"{media_type}\" in request." msgstr "ģš”ģ²­ėœ \"{media_type}\"ź°€ ģ§€ģ›ė˜ģ§€ ģ•ŠėŠ” 미디얓 ķ˜•ķƒœģž…ė‹ˆė‹¤." -#: exceptions.py:223 +#: exceptions.py:228 msgid "Request was throttled." -msgstr "ģš”ģ²­ģ“ 지연(throttled)ė˜ģ—ˆģŠµė‹ˆė‹¤." +msgstr "ģš”ģ²­ģ“ ģ œķ•œė˜ģ—ˆģŠµė‹ˆė‹¤." -#: exceptions.py:224 +#: exceptions.py:229 #, python-brace-format msgid "Expected available in {wait} second." -msgstr "" +msgstr "{wait} 쓈 후에 ģ‚¬ģš© ź°€ėŠ„ķ•©ė‹ˆė‹¤." -#: exceptions.py:225 +#: exceptions.py:230 #, python-brace-format msgid "Expected available in {wait} seconds." -msgstr "" +msgstr "{wait} 쓈 후에 ģ‚¬ģš© ź°€ėŠ„ķ•©ė‹ˆė‹¤." -#: fields.py:316 relations.py:245 relations.py:279 validators.py:90 -#: validators.py:183 +#: fields.py:292 relations.py:240 relations.py:276 validators.py:99 +#: validators.py:219 msgid "This field is required." msgstr "ģ“ ķ•„ė“œėŠ” ķ•„ģˆ˜ ķ•­ėŖ©ģž…ė‹ˆė‹¤." -#: fields.py:317 +#: fields.py:293 msgid "This field may not be null." msgstr "ģ“ ķ•„ė“œėŠ” nullģ¼ 수 ģ—†ģŠµė‹ˆė‹¤." -#: fields.py:701 +#: fields.py:661 msgid "Must be a valid boolean." -msgstr "" +msgstr "ģœ ķšØķ•œ ė¶ˆė¦¬ģ–øģ“ģ–“ģ•¼ ķ•©ė‹ˆė‹¤." -#: fields.py:766 +#: fields.py:724 msgid "Not a valid string." -msgstr "" +msgstr "ģœ ķšØķ•œ ė¬øģžģ—“ģ“ ģ•„ė‹™ė‹ˆė‹¤." -#: fields.py:767 +#: fields.py:725 msgid "This field may not be blank." msgstr "ģ“ ķ•„ė“œėŠ” blankģ¼ 수 ģ—†ģŠµė‹ˆė‹¤." -#: fields.py:768 fields.py:1881 +#: fields.py:726 fields.py:1881 #, python-brace-format msgid "Ensure this field has no more than {max_length} characters." -msgstr "ģ“ ķ•„ė“œģ˜ źø€ģž ģˆ˜ź°€ {max_length} ģ“ķ•˜ģøģ§€ ķ™•ģøķ•˜ģ‹­ģ‹œģ˜¤." +msgstr "ģ“ ķ•„ė“œģ˜ źø€ģž ģˆ˜ź°€ {max_length} ģ“ķ•˜ģøģ§€ ķ™•ģøķ•˜ģ„øģš”." -#: fields.py:769 +#: fields.py:727 #, python-brace-format msgid "Ensure this field has at least {min_length} characters." -msgstr "ģ“ ķ•„ė“œģ˜ źø€ģž ģˆ˜ź°€ ģ ģ–“ė„ {min_length} ģ“ģƒģøģ§€ ķ™•ģøķ•˜ģ‹­ģ‹œģ˜¤." +msgstr "ģ“ ķ•„ė“œģ˜ źø€ģž ģˆ˜ź°€ ģ ģ–“ė„ {min_length} ģ“ģƒģøģ§€ ķ™•ģøķ•˜ģ„øģš”." -#: fields.py:816 +#: fields.py:774 msgid "Enter a valid email address." -msgstr "ģœ ķšØķ•œ ģ“ė©”ģ¼ ģ£¼ģ†Œė„¼ ģž…ė „ķ•˜ģ‹­ģ‹œģ˜¤." +msgstr "ģœ ķšØķ•œ ģ“ė©”ģ¼ ģ£¼ģ†Œė„¼ ģž…ė „ķ•˜ģ„øģš”." -#: fields.py:827 +#: fields.py:785 msgid "This value does not match the required pattern." -msgstr "ķ˜•ģ‹ģ— ė§žģ§€ ģ•ŠėŠ” ź°’ģž…ė‹ˆė‹¤." +msgstr "ģ“ ź°’ģ€ ģš”źµ¬ė˜ėŠ” ķŒØķ„“ź³¼ ģ¼ģ¹˜ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." -#: fields.py:838 +#: fields.py:796 msgid "" "Enter a valid \"slug\" consisting of letters, numbers, underscores or " "hyphens." -msgstr "ė¬øģž, ģˆ«ģž, 밑줄( _ ) ė˜ėŠ” ķ•˜ģ“ķ”ˆ( - )으딜 ģ“ė£Øģ–“ģ§„ ģœ ķšØķ•œ \"slug\"넼 ģž…ė „ķ•˜ģ‹­ģ‹œģ˜¤." +msgstr "ė¬øģž, ģˆ«ģž, 밑줄( _ ) ė˜ėŠ” ķ•˜ģ“ķ”ˆ( - )으딜 ģ“ė£Øģ–“ģ§„ ģœ ķšØķ•œ \"slug\"넼 ģž…ė „ķ•˜ģ„øģš”." -#: fields.py:839 +#: fields.py:797 msgid "" "Enter a valid \"slug\" consisting of Unicode letters, numbers, underscores, " "or hyphens." -msgstr "" +msgstr "ģœ ė‹ˆģ½”ė“œ ė¬øģž, ģˆ«ģž, 밑줄( _ ) ė˜ėŠ” ķ•˜ģ“ķ”ˆ( - )으딜 ģ“ė£Øģ–“ģ§„ ģœ ķšØķ•œ \"slug\"넼 ģž…ė „ķ•˜ģ„øģš”." -#: fields.py:854 +#: fields.py:812 msgid "Enter a valid URL." -msgstr "ģœ ķšØķ•œ URLģ„ ģž…ė „ķ•˜ģ‹­ģ‹œģ˜¤." +msgstr "ģœ ķšØķ•œ URLģ„ ģž…ė „ķ•˜ģ„øģš”." -#: fields.py:867 +#: fields.py:825 msgid "Must be a valid UUID." -msgstr "" +msgstr "ģœ ķšØķ•œ UUID ģ“ģ–“ģ•¼ ķ•©ė‹ˆė‹¤." -#: fields.py:903 +#: fields.py:861 msgid "Enter a valid IPv4 or IPv6 address." -msgstr "ģœ ķšØķ•œ IPv4 ė˜ėŠ” IPv6 ģ£¼ģ†Œė„¼ ģž…ė „ķ•˜ģ‹­ģ‹œģ˜¤." +msgstr "ģœ ķšØķ•œ IPv4 ė˜ėŠ” IPv6 ģ£¼ģ†Œė„¼ ģž…ė „ķ•˜ģ„øģš”." -#: fields.py:931 +#: fields.py:889 msgid "A valid integer is required." -msgstr "ģœ ķšØķ•œ ģ •ģˆ˜(integer)넼 ė„£ģ–“ģ£¼ģ„øģš”." +msgstr "ģœ ķšØķ•œ ģ •ģˆ˜ė„¼ ģž…ė „ķ•˜ģ„øģš”." -#: fields.py:932 fields.py:969 fields.py:1005 fields.py:1366 +#: fields.py:890 fields.py:927 fields.py:966 fields.py:1349 #, python-brace-format msgid "Ensure this value is less than or equal to {max_value}." -msgstr "ģ“ ź°’ģ“ {max_value}볓다 ģž‘ź±°ė‚˜ ź°™ģ€ģ§€ ķ™•ģøķ•˜ģ‹­ģ‹œģ˜¤." +msgstr "ģ“ ź°’ģ“ {max_value}볓다 ģž‘ź±°ė‚˜ ź°™ģ€ģ§€ ķ™•ģøķ•˜ģ„øģš”." -#: fields.py:933 fields.py:970 fields.py:1006 fields.py:1367 +#: fields.py:891 fields.py:928 fields.py:967 fields.py:1350 #, python-brace-format msgid "Ensure this value is greater than or equal to {min_value}." -msgstr "ģ“ ź°’ģ“ {min_value}볓다 ķ¬ź±°ė‚˜ ź°™ģ€ģ§€ ķ™•ģøķ•˜ģ‹­ģ‹œģ˜¤." +msgstr "ģ“ ź°’ģ“ {min_value}볓다 ķ¬ź±°ė‚˜ ź°™ģ€ģ§€ ķ™•ģøķ•˜ģ„øģš”." -#: fields.py:934 fields.py:971 fields.py:1010 +#: fields.py:892 fields.py:929 fields.py:971 msgid "String value too large." -msgstr "ė¬øģžģ—“ ź°’ģ“ ė„ˆė¬“ ķ½ė‹ˆė‹¤." +msgstr "ė¬øģžģ—“ ź°’ģ“ ė„ˆė¬“ ź¹ė‹ˆė‹¤." -#: fields.py:968 fields.py:1004 +#: fields.py:926 fields.py:965 msgid "A valid number is required." -msgstr "ģœ ķšØķ•œ ģˆ«ģžė„¼ ė„£ģ–“ģ£¼ģ„øģš”." +msgstr "ģœ ķšØķ•œ ģˆ«ģžė„¼ ģž…ė „ķ•˜ģ„øģš”." + +#: fields.py:930 +msgid "Integer value too large to convert to float" +msgstr "ģ •ģˆ˜ ź°’ģ“ ė„ˆė¬“ ģ»¤ģ„œ ė¶€ė™ ģ†Œģˆ˜ģ ģœ¼ė”œ ė³€ķ™˜ķ•  수 ģ—†ģŠµė‹ˆė‹¤." -#: fields.py:1007 +#: fields.py:968 #, python-brace-format msgid "Ensure that there are no more than {max_digits} digits in total." -msgstr "전첓 ģˆ«ģž(digits)ź°€ {max_digits} ģ“ķ•˜ģøģ§€ ķ™•ģøķ•˜ģ‹­ģ‹œģ˜¤." +msgstr "ģ“ ģžė¦æģˆ˜ź°€ {max_digits}ģ„(넼) ģ“ˆź³¼ķ•˜ģ§€ ģ•ŠėŠ”ģ§€ ķ™•ģøķ•˜ģ„øģš”." -#: fields.py:1008 +#: fields.py:969 #, python-brace-format -msgid "" -"Ensure that there are no more than {max_decimal_places} decimal places." -msgstr "ģ†Œģˆ˜ģ  ģžė¦æģˆ˜ź°€ {max_decimal_places} ģ“ķ•˜ģøģ§€ ķ™•ģøķ•˜ģ‹­ģ‹œģ˜¤." +msgid "Ensure that there are no more than {max_decimal_places} decimal places." +msgstr "ģ†Œģˆ˜ģ  ģ“ķ•˜ ģžė¦æģˆ˜ź°€ {max_decimal_places}ģ„(넼) ģ“ˆź³¼ķ•˜ģ§€ ģ•ŠėŠ”ģ§€ ķ™•ģøķ•˜ģ„øģš”." -#: fields.py:1009 +#: fields.py:970 #, python-brace-format msgid "" "Ensure that there are no more than {max_whole_digits} digits before the " "decimal point." -msgstr "ģ†Œģˆ˜ģ  ģžė¦¬ ģ•žģ— ģˆ«ģž(digits)ź°€ {max_whole_digits} ģ“ķ•˜ģøģ§€ ķ™•ģøķ•˜ģ‹­ģ‹œģ˜¤." +msgstr "ģ†Œģˆ˜ģ  ģ•ž ģžė¦æģˆ˜ź°€ {max_whole_digits}ģ„(넼) ģ“ˆź³¼ķ•˜ģ§€ ģ•ŠėŠ”ģ§€ ķ™•ģøķ•˜ģ„øģš”." -#: fields.py:1148 +#: fields.py:1129 #, python-brace-format msgid "Datetime has wrong format. Use one of these formats instead: {format}." msgstr "Datetimeģ˜ ķ¬ė©§ģ“ ģž˜ėŖ»ė˜ģ—ˆģŠµė‹ˆė‹¤. ģ“ ķ˜•ģ‹ė“¤ 중 ķ•œź°€ģ§€ė„¼ ģ‚¬ģš©ķ•˜ģ„øģš”: {format}." -#: fields.py:1149 +#: fields.py:1130 msgid "Expected a datetime but got a date." -msgstr "예상된 datatime ėŒ€ģ‹  date넼 ė°›ģ•˜ģŠµė‹ˆė‹¤." +msgstr "datatimeģ“ ģ˜ˆģƒė˜ģ—ˆģ§€ė§Œ date넼 ė°›ģ•˜ģŠµė‹ˆė‹¤." -#: fields.py:1150 +#: fields.py:1131 #, python-brace-format msgid "Invalid datetime for the timezone \"{timezone}\"." -msgstr "" +msgstr "\"{timezone}\" ģ‹œź°„ėŒ€ģ— ėŒ€ķ•œ ģœ ķšØķ•˜ģ§€ ģ•Šģ€ datetime ģž…ė‹ˆė‹¤." -#: fields.py:1151 +#: fields.py:1132 msgid "Datetime value out of range." -msgstr "" +msgstr "Datetime ź°’ģ“ ė²”ģœ„ė„¼ ė²—ģ–“ė‚¬ģŠµė‹ˆė‹¤." -#: fields.py:1236 +#: fields.py:1219 #, python-brace-format msgid "Date has wrong format. Use one of these formats instead: {format}." msgstr "Dateģ˜ ķ¬ė©§ģ“ ģž˜ėŖ»ė˜ģ—ˆģŠµė‹ˆė‹¤. ģ“ ķ˜•ģ‹ė“¤ 중 ķ•œź°€ģ§€ė„¼ ģ‚¬ģš©ķ•˜ģ„øģš”: {format}." -#: fields.py:1237 +#: fields.py:1220 msgid "Expected a date but got a datetime." msgstr "예상된 date ėŒ€ģ‹  datetimeģ„ ė°›ģ•˜ģŠµė‹ˆė‹¤." -#: fields.py:1303 +#: fields.py:1286 #, python-brace-format msgid "Time has wrong format. Use one of these formats instead: {format}." msgstr "Timeģ˜ ķ¬ė©§ģ“ ģž˜ėŖ»ė˜ģ—ˆģŠµė‹ˆė‹¤. ģ“ ķ˜•ģ‹ė“¤ 중 ķ•œź°€ģ§€ė„¼ ģ‚¬ģš©ķ•˜ģ„øģš”: {format}." -#: fields.py:1365 +#: fields.py:1348 #, python-brace-format msgid "Duration has wrong format. Use one of these formats instead: {format}." msgstr "Durationģ˜ ķ¬ė©§ģ“ ģž˜ėŖ»ė˜ģ—ˆģŠµė‹ˆė‹¤. ģ“ ķ˜•ģ‹ė“¤ 중 ķ•œź°€ģ§€ė„¼ ģ‚¬ģš©ķ•˜ģ„øģš”: {format}." -#: fields.py:1399 fields.py:1456 +#: fields.py:1351 +#, python-brace-format +msgid "The number of days must be between {min_days} and {max_days}." +msgstr "ģ¼ģˆ˜ėŠ” {min_days} ģ“ģƒ {max_days} ģ“ķ•˜ģ“ģ–“ģ•¼ ķ•©ė‹ˆė‹¤." + +#: fields.py:1386 fields.py:1446 #, python-brace-format msgid "\"{input}\" is not a valid choice." -msgstr "\"{input}\"ģ“ ģœ ķšØķ•˜ģ§€ ģ•Šģ€ ģ„ ķƒ(choice)ģž…ė‹ˆė‹¤." +msgstr "\"{input}\"ģ€ ģœ ķšØķ•˜ģ§€ ģ•Šģ€ ģ„ ķƒģž…ė‹ˆė‹¤." -#: fields.py:1402 +#: fields.py:1389 #, python-brace-format msgid "More than {count} items..." -msgstr "" +msgstr "{count}개 ģ“ģƒģ˜ ģ•„ģ“ķ…œģ“ ģžˆģŠµė‹ˆė‹¤..." -#: fields.py:1457 fields.py:1603 relations.py:485 serializers.py:570 +#: fields.py:1447 fields.py:1596 relations.py:486 serializers.py:593 #, python-brace-format msgid "Expected a list of items but got type \"{input_type}\"." msgstr "ģ•„ģ“ķ…œ ė¦¬ģŠ¤ķŠøź°€ ģ˜ˆģƒė˜ģ—ˆģœ¼ė‚˜ \"{input_type}\"넼 ė°›ģ•˜ģŠµė‹ˆė‹¤." -#: fields.py:1458 +#: fields.py:1448 msgid "This selection may not be empty." msgstr "ģ“ ģ„ ķƒ ķ•­ėŖ©ģ€ ė¹„ģ›Œ ė‘˜ 수 ģ—†ģŠµė‹ˆė‹¤." -#: fields.py:1495 +#: fields.py:1487 #, python-brace-format msgid "\"{input}\" is not a valid path choice." -msgstr "\"{input}\"ģ“ ģœ ķšØķ•˜ģ§€ ģ•Šģ€ 경딜 ģ„ ķƒģž…ė‹ˆė‹¤." +msgstr "\"{input}\"ģ€ ģœ ķšØķ•˜ģ§€ ģ•Šģ€ 경딜 ģ„ ķƒģž…ė‹ˆė‹¤." -#: fields.py:1514 +#: fields.py:1507 msgid "No file was submitted." msgstr "ķŒŒģ¼ģ“ ģ œģ¶œė˜ģ§€ ģ•Šģ•˜ģŠµė‹ˆė‹¤." -#: fields.py:1515 -msgid "" -"The submitted data was not a file. Check the encoding type on the form." +#: fields.py:1508 +msgid "The submitted data was not a file. Check the encoding type on the form." msgstr "제출된 ė°ģ“ķ„°ėŠ” ķŒŒģ¼ģ“ ģ•„ė‹™ė‹ˆė‹¤. 제출된 ģ„œģ‹ģ˜ ģøģ½”ė”© ķ˜•ģ‹ģ„ ķ™•ģøķ•˜ģ„øģš”." -#: fields.py:1516 +#: fields.py:1509 msgid "No filename could be determined." msgstr "ķŒŒģ¼ėŖ…ģ„ ģ•Œ 수 ģ—†ģŠµė‹ˆė‹¤." -#: fields.py:1517 +#: fields.py:1510 msgid "The submitted file is empty." msgstr "ģ œģ¶œķ•œ ķŒŒģ¼ģ“ ė¹„ģ–“ģžˆģŠµė‹ˆė‹¤." -#: fields.py:1518 +#: fields.py:1511 #, python-brace-format msgid "" "Ensure this filename has at most {max_length} characters (it has {length})." -msgstr "ģ“ ķŒŒģ¼ėŖ…ģ˜ źø€ģžģˆ˜ź°€ ģµœėŒ€ {max_length}넼 ė„˜ģ§€ ģ•ŠėŠ”ģ§€ ķ™•ģøķ•˜ģ‹­ģ‹œģ˜¤. (ģ“ź²ƒģ€ {length}ź°€ ģžˆģŠµė‹ˆė‹¤)." +msgstr "ģ“ ķŒŒģ¼ėŖ…ģ˜ źø€ģžģˆ˜ź°€ ģµœėŒ€ {max_length}ģžė„¼ ė„˜ģ§€ ģ•ŠėŠ”ģ§€ ķ™•ģøķ•˜ģ„øģš”. (ķ˜„ģž¬ {length}ģžģž…ė‹ˆė‹¤)." -#: fields.py:1566 +#: fields.py:1559 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." -msgstr "ģœ ķšØķ•œ ģ“ėÆøģ§€ ķŒŒģ¼ģ„ ģ—…ė”œė“œ ķ•˜ģ‹­ģ‹œģ˜¤. ģ—…ė”œė“œ ķ•˜ģ‹  ķŒŒģ¼ģ€ ģ“ėÆøģ§€ ķŒŒģ¼ģ“ ģ•„ė‹ˆź±°ė‚˜ ģ†ģƒėœ ģ“ėÆøģ§€ ķŒŒģ¼ģž…ė‹ˆė‹¤." +msgstr "ģœ ķšØķ•œ ģ“ėÆøģ§€ ķŒŒģ¼ģ„ ģ—…ė”œė“œķ•˜ģ„øģš”. ģ—…ė”œė“œķ•˜ģ‹  ķŒŒģ¼ģ€ ģ“ėÆøģ§€ ķŒŒģ¼ģ“ ģ•„ė‹ˆź±°ė‚˜ ģ†ģƒėœ ģ“ėÆøģ§€ ķŒŒģ¼ģž…ė‹ˆė‹¤." -#: fields.py:1604 relations.py:486 serializers.py:571 +#: fields.py:1597 relations.py:487 serializers.py:594 msgid "This list may not be empty." msgstr "ģ“ ė¦¬ģŠ¤ķŠøėŠ” ė¹„ģ›Œ ė‘˜ 수 ģ—†ģŠµė‹ˆė‹¤." -#: fields.py:1605 +#: fields.py:1598 serializers.py:596 #, python-brace-format msgid "Ensure this field has at least {min_length} elements." -msgstr "" +msgstr "ģ“ ķ•„ė“œź°€ ģµœģ†Œ {min_length} ź°œģ˜ ģš”ģ†Œė„¼ ź°€ģ§€ėŠ”ģ§€ ķ™•ģøķ•˜ģ„øģš”." -#: fields.py:1606 +#: fields.py:1599 serializers.py:595 #, python-brace-format msgid "Ensure this field has no more than {max_length} elements." -msgstr "" +msgstr "ģ“ ķ•„ė“œź°€ ģµœėŒ€ {max_length} ź°œģ˜ ģš”ģ†Œė„¼ ź°€ģ§€ėŠ”ģ§€ ķ™•ģøķ•˜ģ„øģš”." -#: fields.py:1682 +#: fields.py:1677 #, python-brace-format msgid "Expected a dictionary of items but got type \"{input_type}\"." msgstr "ģ•„ģ“ķ…œ ė”•ģ…”ė„ˆė¦¬ź°€ ģ˜ˆģƒė˜ģ—ˆģœ¼ė‚˜ \"{input_type}\" ķƒ€ģž…ģ„ ė°›ģ•˜ģŠµė‹ˆė‹¤." -#: fields.py:1683 +#: fields.py:1678 msgid "This dictionary may not be empty." -msgstr "" +msgstr "ģ“ ė”•ģ…”ė„ˆė¦¬ėŠ” ė¹„ģ–“ģžˆģ„ 수 ģ—†ģŠµė‹ˆė‹¤." -#: fields.py:1755 +#: fields.py:1750 msgid "Value must be valid JSON." -msgstr "Value ėŠ” ģœ ķšØķ•œ JSONķ˜•ģ‹ģ“ģ–“ģ•¼ ķ•©ė‹ˆė‹¤." +msgstr "ģœ ķšØķ•œ JSON ź°’ģ“ģ–“ģ•¼ ķ•©ė‹ˆė‹¤." -#: filters.py:49 templates/rest_framework/filters/search.html:2 +#: filters.py:72 templates/rest_framework/filters/search.html:2 +#: templates/rest_framework/filters/search.html:8 msgid "Search" msgstr "ź²€ģƒ‰" -#: filters.py:50 +#: filters.py:73 msgid "A search term." -msgstr "" +msgstr "ź²€ģƒ‰ģ–“." -#: filters.py:180 templates/rest_framework/filters/ordering.html:3 +#: filters.py:224 templates/rest_framework/filters/ordering.html:3 msgid "Ordering" msgstr "ģˆœģ„œ" -#: filters.py:181 +#: filters.py:225 msgid "Which field to use when ordering the results." -msgstr "" +msgstr "ź²°ź³¼ ģ •ė ¬ ģ‹œ ģ‚¬ģš©ķ•  ķ•„ė“œ." -#: filters.py:287 +#: filters.py:341 msgid "ascending" msgstr "ģ˜¤ė¦„ģ°Øģˆœ" -#: filters.py:288 +#: filters.py:342 msgid "descending" msgstr "ė‚“ė¦¼ģ°Øģˆœ" -#: pagination.py:174 +#: pagination.py:180 msgid "A page number within the paginated result set." -msgstr "" +msgstr "ķŽ˜ģ“ģ§€ė„¤ģ“ģ…˜ėœ ź²°ź³¼ ģ§‘ķ•© ė‚“ģ˜ ķŽ˜ģ“ģ§€ 번호." -#: pagination.py:179 pagination.py:372 pagination.py:590 +#: pagination.py:185 pagination.py:382 pagination.py:599 msgid "Number of results to return per page." -msgstr "" +msgstr "ķŽ˜ģ“ģ§€ė‹¹ ė°˜ķ™˜ķ•  ź²°ź³¼ 수." -#: pagination.py:189 +#: pagination.py:195 msgid "Invalid page." msgstr "ķŽ˜ģ“ģ§€ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." -#: pagination.py:374 +#: pagination.py:384 msgid "The initial index from which to return the results." -msgstr "" +msgstr "결과넼 ė°˜ķ™˜ķ•  쓈기 ģøė±ģŠ¤." -#: pagination.py:581 +#: pagination.py:590 msgid "The pagination cursor value." -msgstr "" +msgstr "ķŽ˜ģ“ģ§€ė„¤ģ“ģ…˜ ģ»¤ģ„œ ź°’." -#: pagination.py:583 +#: pagination.py:592 msgid "Invalid cursor" -msgstr "ģ»¤ģ„œ(cursor)ź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." +msgstr "ģ»¤ģ„œź°€ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." -#: relations.py:246 +#: relations.py:241 #, python-brace-format msgid "Invalid pk \"{pk_value}\" - object does not exist." msgstr "ģœ ķšØķ•˜ģ§€ ģ•Šģ€ pk \"{pk_value}\" - ź°ģ²“ź°€ ģ”“ģž¬ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." -#: relations.py:247 +#: relations.py:242 #, python-brace-format msgid "Incorrect type. Expected pk value, received {data_type}." -msgstr "ģž˜ėŖ»ėœ ķ˜•ģ‹ģž…ė‹ˆė‹¤. pk ź°’ ėŒ€ģ‹  {data_type}넼 ė°›ģ•˜ģŠµė‹ˆė‹¤." +msgstr "ģž˜ėŖ»ėœ ķ˜•ģ‹ģž…ė‹ˆė‹¤. pk ź°’ģ“ ģ˜ˆģƒė˜ģ—ˆģ§€ė§Œ, {data_type}ģ„(넼) ė°›ģ•˜ģŠµė‹ˆė‹¤." -#: relations.py:280 +#: relations.py:277 msgid "Invalid hyperlink - No URL match." msgstr "ģœ ķšØķ•˜ģ§€ ģ•Šģ€ ķ•˜ģ“ķ¼ė§ķ¬ - ģ¼ģ¹˜ķ•˜ėŠ” URLģ“ ģ—†ģŠµė‹ˆė‹¤." -#: relations.py:281 +#: relations.py:278 msgid "Invalid hyperlink - Incorrect URL match." msgstr "ģœ ķšØķ•˜ģ§€ ģ•Šģ€ ķ•˜ģ“ķ¼ė§ķ¬ - URLģ“ ģ¼ģ¹˜ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." -#: relations.py:282 +#: relations.py:279 msgid "Invalid hyperlink - Object does not exist." msgstr "ģœ ķšØķ•˜ģ§€ ģ•Šģ€ ķ•˜ģ“ķ¼ė§ķ¬ - ź°ģ²“ź°€ ģ”“ģž¬ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." -#: relations.py:283 +#: relations.py:280 #, python-brace-format msgid "Incorrect type. Expected URL string, received {data_type}." msgstr "ģž˜ėŖ»ėœ ķ˜•ģ‹ģž…ė‹ˆė‹¤. URL ė¬øģžģ—“ģ„ ģ˜ˆģƒķ–ˆģœ¼ė‚˜ {data_type}ģ„ ė°›ģ•˜ģŠµė‹ˆė‹¤." -#: relations.py:448 +#: relations.py:445 #, python-brace-format msgid "Object with {slug_name}={value} does not exist." msgstr "{slug_name}={value} ź°ģ²“ź°€ ģ”“ģž¬ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." -#: relations.py:449 +#: relations.py:446 msgid "Invalid value." msgstr "ź°’ģ“ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." #: schemas/utils.py:32 msgid "unique integer value" -msgstr "" +msgstr "ź³ ģœ ķ•œ ģ •ģˆ˜ ź°’" #: schemas/utils.py:34 msgid "UUID string" -msgstr "" +msgstr "UUID ė¬øģžģ—“" #: schemas/utils.py:36 msgid "unique value" -msgstr "" +msgstr "ź³ ģœ ķ•œ ź°’" #: schemas/utils.py:38 #, python-brace-format msgid "A {value_type} identifying this {name}." -msgstr "" +msgstr "{name}ģ„ ģ‹ė³„ķ•˜ėŠ” {value_type}." -#: serializers.py:337 +#: serializers.py:340 #, python-brace-format msgid "Invalid data. Expected a dictionary, but got {datatype}." msgstr "ģœ ķšØķ•˜ģ§€ ģ•Šģ€ ė°ģ“ķ„°. ė”•ģ…”ė„ˆė¦¬(dictionary)ėŒ€ģ‹  {datatype}넼 ė°›ģ•˜ģŠµė‹ˆė‹¤." @@ -483,7 +491,7 @@ msgstr "ģœ ķšØķ•˜ģ§€ ģ•Šģ€ ė°ģ“ķ„°. ė”•ģ…”ė„ˆė¦¬(dictionary)ėŒ€ģ‹  {datatype} #: templates/rest_framework/admin.html:116 #: templates/rest_framework/base.html:136 msgid "Extra Actions" -msgstr "" +msgstr "추가 Action들" #: templates/rest_framework/admin.html:130 #: templates/rest_framework/base.html:150 @@ -492,33 +500,33 @@ msgstr "ķ•„ķ„°" #: templates/rest_framework/base.html:37 msgid "navbar" -msgstr "" +msgstr "ė„¤ė¹„ź²Œģ“ģ…˜ ė°”" #: templates/rest_framework/base.html:75 msgid "content" -msgstr "" +msgstr "ģ½˜ķ…ģø " #: templates/rest_framework/base.html:78 msgid "request form" -msgstr "" +msgstr "ģš”ģ²­ ķ¼" #: templates/rest_framework/base.html:157 msgid "main content" -msgstr "" +msgstr "ė©”ģø ģ½˜ķ…ģø " #: templates/rest_framework/base.html:173 msgid "request info" -msgstr "" +msgstr "ģš”ģ²­ 정볓" #: templates/rest_framework/base.html:177 msgid "response info" -msgstr "" +msgstr "ģ‘ė‹µ 정볓" #: templates/rest_framework/horizontal/radio.html:4 #: templates/rest_framework/inline/radio.html:3 #: templates/rest_framework/vertical/radio.html:3 msgid "None" -msgstr "" +msgstr "ģ—†ģŒ" #: templates/rest_framework/horizontal/select_multiple.html:4 #: templates/rest_framework/inline/select_multiple.html:3 @@ -528,49 +536,49 @@ msgstr "ģ„ ķƒķ•  ģ•„ģ“ķ…œģ“ ģ—†ģŠµė‹ˆė‹¤." #: validators.py:39 msgid "This field must be unique." -msgstr "ģ“ ķ•„ė“œėŠ” ė°˜ė“œģ‹œ 고유(unique)핓야 ķ•©ė‹ˆė‹¤." +msgstr "ģ“ ķ•„ė“œėŠ” ė°˜ė“œģ‹œ ź³ ģœ ķ•“ģ•¼ ķ•©ė‹ˆė‹¤." -#: validators.py:89 +#: validators.py:98 #, python-brace-format msgid "The fields {field_names} must make a unique set." -msgstr "ķ•„ė“œ {field_names} ėŠ” ė°˜ė“œģ‹œ 고유(unique)핓야 ķ•©ė‹ˆė‹¤." +msgstr "ķ•„ė“œ {field_names} ėŠ” ė°˜ė“œģ‹œ ź³ ģœ ķ•“ģ•¼ ķ•©ė‹ˆė‹¤." -#: validators.py:171 +#: validators.py:200 #, python-brace-format msgid "Surrogate characters are not allowed: U+{code_point:X}." -msgstr "" +msgstr "ėŒ€ģ²“(surrogate) ė¬øģžėŠ” ķ—ˆģš©ė˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤: U+{code_point:X}." -#: validators.py:243 +#: validators.py:290 #, python-brace-format msgid "This field must be unique for the \"{date_field}\" date." -msgstr "ģ“ ķ•„ė“œėŠ” 고유(unique)ķ•œ \"{date_field}\" ė‚ ģ§œė„¼ ź°–ģŠµė‹ˆė‹¤." +msgstr "ģ“ ķ•„ė“œėŠ” \"{date_field}\" ė‚ ģ§œģ— ėŒ€ķ•“ ź³ ģœ ķ•“ģ•¼ ķ•©ė‹ˆė‹¤." -#: validators.py:258 +#: validators.py:305 #, python-brace-format msgid "This field must be unique for the \"{date_field}\" month." -msgstr "ģ“ ķ•„ė“œėŠ” 고유(unique)ķ•œ \"{date_field}\" ģ›”ģ„ ź°–ģŠµė‹ˆė‹¤.Ā " +msgstr "ģ“ ķ•„ė“œėŠ” \"{date_field}\" 월에 ėŒ€ķ•“ ź³ ģœ ķ•“ģ•¼ ķ•©ė‹ˆė‹¤." -#: validators.py:271 +#: validators.py:318 #, python-brace-format msgid "This field must be unique for the \"{date_field}\" year." -msgstr "ģ“ ķ•„ė“œėŠ” 고유(unique)ķ•œ \"{date_field}\" ė…„ģ„ ź°–ģŠµė‹ˆė‹¤. " +msgstr "ģ“ ķ•„ė“œėŠ” \"{date_field}\" ģ—°ė„ģ— ėŒ€ķ•“ ź³ ģœ ķ•“ģ•¼ ķ•©ė‹ˆė‹¤." #: versioning.py:40 msgid "Invalid version in \"Accept\" header." -msgstr "\"Accept\" ķ—¤ė”(header)ģ˜ ė²„ģ „ģ“ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." +msgstr "\"Accept\" ķ—¤ė”ģ˜ ė²„ģ „ģ“ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." #: versioning.py:71 msgid "Invalid version in URL path." -msgstr "URL pathģ˜ ė²„ģ „ģ“ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." +msgstr "URL ź²½ė”œģ˜ ė²„ģ „ģ“ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." -#: versioning.py:116 +#: versioning.py:118 msgid "Invalid version in URL path. Does not match any version namespace." -msgstr "URL ź²½ė”œģ— ģœ ķšØķ•˜ģ§€ ģ•Šģ€ ė²„ģ „ģ“ ģžˆģŠµė‹ˆė‹¤. 버전 ė„¤ģž„ ģŠ¤ķŽ˜ģ“ģŠ¤ģ™€ ģ¼ģ¹˜ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." +msgstr "URL ź²½ė”œģ— ģœ ķšØķ•˜ģ§€ ģ•Šģ€ ė²„ģ „ģ“ ģžˆģŠµė‹ˆė‹¤. 버전 ė„¤ģž„ģŠ¤ķŽ˜ģ“ģŠ¤ģ™€ ģ¼ģ¹˜ķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." -#: versioning.py:148 +#: versioning.py:150 msgid "Invalid version in hostname." -msgstr "hostnameė‚“ ė²„ģ „ģ“ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." +msgstr "hostname ė‚“ ė²„ģ „ģ“ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." -#: versioning.py:170 +#: versioning.py:172 msgid "Invalid version in query parameter." -msgstr "쿼리 ķŒŒė¼ė©”ķ„°ė‚“ ė²„ģ „ģ“ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." +msgstr "쿼리 ķŒŒė¼ė©”ķ„° ė‚“ ė²„ģ „ģ“ ģœ ķšØķ•˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤." From 3ba8ef967e771c8e4e0ba3e7976c8baabe4d494e Mon Sep 17 00:00:00 2001 From: JAEGYUN JUNG Date: Thu, 3 Apr 2025 02:35:29 +0900 Subject: [PATCH 443/450] Update GitHub Actions to use Ubuntu 22.04 for testing (#9677) --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fe31e727a3..bf158311ab 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -9,7 +9,7 @@ on: jobs: tests: name: Python ${{ matrix.python-version }} - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 strategy: matrix: @@ -50,7 +50,7 @@ jobs: test-docs: name: Test documentation links - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 From 141ab8e585006e215f01ad8ac7a7e00210d69b7f Mon Sep 17 00:00:00 2001 From: Stefan <96178532+stefan6419846@users.noreply.github.com> Date: Fri, 4 Apr 2025 10:24:28 +0200 Subject: [PATCH 444/450] Add missing & fix German translations (#9676) --- .../locale/de/LC_MESSAGES/django.mo | Bin 10490 -> 13177 bytes .../locale/de/LC_MESSAGES/django.po | 87 +++++++++--------- 2 files changed, 44 insertions(+), 43 deletions(-) diff --git a/rest_framework/locale/de/LC_MESSAGES/django.mo b/rest_framework/locale/de/LC_MESSAGES/django.mo index 98688039789f0300dd6aed554c84050365f9991c..99bdec2c05139c0c0927ccd2c38719685a40f447 100644 GIT binary patch delta 4789 zcma);du&|A6^Ca-NF3Xc#39DSi5Z(bjcr084@@AjaS}`t$6#zHreLnUv%5Fhy=(5n zj%}PpsHI5#1JSDlDx@I9Lv1L6)D^8nBxo(DT9pcD%cCuzszqu60j;X0DNyx0ckiY~ zWt;qryW`Tek${(W!{`>Xe8T*APH zMM_n{J}3^@P{!|xc>>A?zk;%1`C>MO+o339Aik(?K@sme@%ST99QYaB0_U*FHh49> zj{VgnjTZPk#98$bl!>3i%iyLZO09({SP$=mjqoIt`G0`2@dt1{JOgFD#tW3{ga_a? z@KGr9{|J}CPhdd?DwY;cx(v$6uZ0qlTjKul`2BP69LC>;_@@2@>)=13EV#59gX^K> z#7-zVFbMfm-{eEX;}9R!^VR52zNufw18+h}mJgvwdK!uXD=t*34DOBD2YICi;XF7B z`BPJTY=%dnDDg790{#ce!8YKPdFq{rh1v{U_lD_!e9MD>;rNT{RR1>mY@r)_`y=SQI=*K1J9XAWL) zr>JVU5w3+%lENPP$DnNVK9qSI8wm^C1*Lxw79^SOq=EYC1l$RK5%(7pNPJP3!*X~4 zN-UEQ_0>2e|I|Zp1^f}@km|Rv34R7;!*z6|zlRUfLyg0E@WCeZmpXo!frao{C?|di z%1O^a*?1jZmcc8bY;+Ag7v2IzdJ9UOkHKrK zekHq?dSp%)KlX1Tr%9Y+8 z_az_XslmP$wfJEF=!eIKOR%|^JV%O%%1fGk7&#hUormB~Yz`(lGl)rSH6|ApxflI| zu^-BFQxV0|qb+&W6ps}osqTzBC2(J;8{^L2(je@?CNN1bc_gvqk&=^VJ4S&-rPc@~ zQP*N}?=QyE*lk!ItH*fSqyN=*(OQ8m#H5Vm>BNSx0qMj~4&ENO&x5_#Xt=6uZ|jJa zHrfetL&nu(wx6*b?PrW;*mf-6B(-b2AnR+-_${gpSnhB}`^L?MPFe3NJvnM+12gE4 zkC-WKCynFVsd3v$vx@EMNyo~WsqlrePnWTnZ|97T=Ieam>wHSPmXkKqKVC4F2v3(+ zmzk`|v4R)ATV4}hR&izcad{bBHa~t5-c<44{9eZ%&L>T{sj{xJN#|Xi86U|Q$D6LI zyfv|Z$Keq(EPh*~mYubRvPN^H$uZ0Jr|^C_?<8B)SD565rE7q*pVdcKQ_EvhT;>r_4vue*v-64|1dc-qg?^aIz?BZN;v8Fp4pZ0ZSI zH=o8;J)E&z3prd*TP|^CF)N$RkC|kv?!9zUbQ~PX+m7G5e=7V*)#lx{WBaz1MYE(i ztW$12r^hn3MEvYla_rcF7IpLgas`$2aNv3<6U8|EdsTL6(vIY_+;N?=#v=!Y%=C>* z-b|Dug)W{lT(k7krv7M~lx?y}*(~r3I~#`pCyhuE$sO+->gsI;Lg|w%Drvl7<0P4) zau%^JjXT!pkmV}Z+z}Y`CStj>9otFe>3AbVRuY6>;Mh#0?VB`WMn@bDcu8r@@T+?cR3BAUk6V(r+*WmxZU(`LxAJ<>XDNGYcD1jCsjlXmS? zD(tRt8)a;E6*WbR6f37xQTBwaH~m6QRbpj_nY~wMwQzXp=o~LsXRu8|ZOxlB4yz(-u4oPL=>XEw5iRSRxy6t?Pu4|g#Zh7{wzCL`q zerdSv;tjLs@kBU>A&7bXbcw%jBqA7fF zZDXO+kwQ{!L)055aFXhJD;U8=JFB{^QJedj>?JNKmwUT;C)ZPu<-RHnbaE-VxoDD+ kY5o|VG=FiF&?ikG$>Zu>mNOx@P;)=|q0FLLucDFv0(8LP#Q*>R delta 2482 zcmYk-3rv+|9LMqJC^vynM7fCRdr*OcfM8;X8i=1?oA#Q9Fp7%xUeoyj7d6 z^~^0db?fFT?V=~QYSvO)waT_`Q&)3lbG2F1Ra>b!`~J>(wVv@mpXYh6&*lFHefqGg?HnRI2H5KjA_I+tik6|=YPN^9F}g(7+irvaXYGm z&$-8sx}HTn?*>+xh%r;{i1)A;HNrXGHuml$)k1&s81wMo2cpMvezqvwXI@Sz{KX4H)h@ zY4Q^0;6bdwlc**A6V>5qJY46OqS}3^oOwEn`JYVXH4enq8r9Al7Vq%_)P-x%!JViM zy@Hy7Gnk0^!{Z(C;&|G{Sc!{pDegcG>^$b-Mbv<94rl&#Acf&f!~!HAO&e+kI&iHK zJdfNTG1<(c9^8z2@Ltq~KO=wUs@u*lh;J-q$UDq(RL3{F?Gvc%zJOYSRMtsLFdX%q z5>zfVVJY@tfxiFU?tyoZL7I!GnMhzk2V)v)1o@~3H=>fK9hp4Sfl9*1P&2m`@4-E| z7|)swLnb&~g+XQ|A_w_UH{EZTL2@vPsDy5RsaIP)oL3NN8@$IGx2aRVmd zqo}W7D^ABZu?K&{SjWj&hjs@>*agiNDjNANRJI;Mc2)BeYQ&e(g98aAjn?~CnM*~Z zR?#k}uScDlN~jYmQwTj@`O-;r5PA-%qs1j>LcHbS$GMp*rIbD$5AX zS_`2}XVPNR-H0k0fXYH5C02{iD!X*7=xZp|`v1Sopt00Fa2GPevCmNJsbo^o4#$L; z2Z#ishET?56G~(iPc-m%D8r&Ufotcea37ndd6>k7p*KL{u(SvoXc?W{4Ff61(v2vVdBx+ZurN zL^5H&N*!T8ORccgX)X3}+TYQS)59LSE@P5Cm+@^hWk|Irx+n8xk9{{Q-EPWS9sMJ# zet`97Z%pj!eK_Q|`8k{HshldiFt;oEeeUNTdt}5_dp3W1sz1=bDiHDqL*3CGBY*YS zqoW>*Hjf_SiEeZDdF*MgVt@ice4Esd!cI)*u zB!_#~1VY@^=c`Rxq<>pXClm~b)>isFc?*L9r#~3-JE7QZD+B8T X+#c)>+Ycv}q|I2_9}X~xkl*|ZGe11{ diff --git a/rest_framework/locale/de/LC_MESSAGES/django.po b/rest_framework/locale/de/LC_MESSAGES/django.po index 12ae5ba183..48e59e8796 100644 --- a/rest_framework/locale/de/LC_MESSAGES/django.po +++ b/rest_framework/locale/de/LC_MESSAGES/django.po @@ -11,6 +11,7 @@ # Thomas Tanner, 2015 # Tom Jaster , 2015 # Xavier Ordoquy , 2015 +# stefan6419846, 2025 msgid "" msgstr "" "Project-Id-Version: Django REST framework\n" @@ -27,19 +28,19 @@ msgstr "" #: authentication.py:70 msgid "Invalid basic header. No credentials provided." -msgstr "Ungültiger basic header. Keine Zugangsdaten angegeben." +msgstr "Ungültiger Basic Header. Keine Zugangsdaten angegeben." #: authentication.py:73 msgid "Invalid basic header. Credentials string should not contain spaces." -msgstr "Ungültiger basic header. Zugangsdaten sollen keine Leerzeichen enthalten." +msgstr "Ungültiger Basic Header. Zugangsdaten sollen keine Leerzeichen enthalten." #: authentication.py:83 msgid "Invalid basic header. Credentials not correctly base64 encoded." -msgstr "Ungültiger basic header. Zugangsdaten sind nicht korrekt mit base64 kodiert." +msgstr "Ungültiger Basic Header. Zugangsdaten sind nicht korrekt mit base64 kodiert." #: authentication.py:101 msgid "Invalid username/password." -msgstr "Ungültiger Benutzername/Passwort" +msgstr "Ungültiger Benutzername/Passwort." #: authentication.py:104 authentication.py:206 msgid "User inactive or deleted." @@ -47,16 +48,16 @@ msgstr "Benutzer inaktiv oder gelƶscht." #: authentication.py:184 msgid "Invalid token header. No credentials provided." -msgstr "Ungültiger token header. Keine Zugangsdaten angegeben." +msgstr "Ungültiger Token Header. Keine Zugangsdaten angegeben." #: authentication.py:187 msgid "Invalid token header. Token string should not contain spaces." -msgstr "Ungültiger token header. Zugangsdaten sollen keine Leerzeichen enthalten." +msgstr "Ungültiger Token Header. Zugangsdaten sollen keine Leerzeichen enthalten." #: authentication.py:193 msgid "" "Invalid token header. Token string should not contain invalid characters." -msgstr "Ungültiger Token Header. Tokens dürfen keine ungültigen Zeichen enthalten." +msgstr "Ungültiger Token Header. Zugangsdaten dürfen keine ungültigen Zeichen enthalten." #: authentication.py:203 msgid "Invalid token." @@ -108,7 +109,7 @@ msgstr "Ein Serverfehler ist aufgetreten." #: exceptions.py:142 msgid "Invalid input." -msgstr "" +msgstr "Ungültige Eingabe." #: exceptions.py:161 msgid "Malformed request." @@ -124,7 +125,7 @@ msgstr "Anmeldedaten fehlen." #: exceptions.py:179 msgid "You do not have permission to perform this action." -msgstr "Sie sind nicht berechtigt diese Aktion durchzuführen." +msgstr "Sie sind nicht berechtigt, diese Aktion durchzuführen." #: exceptions.py:185 msgid "Not found." @@ -151,17 +152,17 @@ msgstr "Die Anfrage wurde gedrosselt." #: exceptions.py:224 #, python-brace-format msgid "Expected available in {wait} second." -msgstr "" +msgstr "Erwarte Verfügbarkeit in {wait} Sekunde." #: exceptions.py:225 #, python-brace-format msgid "Expected available in {wait} seconds." -msgstr "" +msgstr "Erwarte Verfügbarkeit in {wait} Sekunden." #: fields.py:316 relations.py:245 relations.py:279 validators.py:90 #: validators.py:183 msgid "This field is required." -msgstr "Dieses Feld ist erforderlich." +msgstr "Dieses Feld ist zwingend erforderlich." #: fields.py:317 msgid "This field may not be null." @@ -169,11 +170,11 @@ msgstr "Dieses Feld darf nicht null sein." #: fields.py:701 msgid "Must be a valid boolean." -msgstr "" +msgstr "Muss ein gültiger Wahrheitswert sein." #: fields.py:766 msgid "Not a valid string." -msgstr "" +msgstr "Kein gültiger String." #: fields.py:767 msgid "This field may not be blank." @@ -207,7 +208,7 @@ msgstr "Gib ein gültiges \"slug\" aus Buchstaben, Ziffern, Unterstrichen und Mi msgid "" "Enter a valid \"slug\" consisting of Unicode letters, numbers, underscores, " "or hyphens." -msgstr "" +msgstr "Gib ein gültiges \"slug\" aus Unicode-Buchstaben, Ziffern, Unterstrichen und Minuszeichen ein." #: fields.py:854 msgid "Enter a valid URL." @@ -215,11 +216,11 @@ msgstr "Gib eine gültige URL ein." #: fields.py:867 msgid "Must be a valid UUID." -msgstr "" +msgstr "Muss eine gültige UUID sein." #: fields.py:903 msgid "Enter a valid IPv4 or IPv6 address." -msgstr "Geben Sie eine gültige IPv4 oder IPv6 Adresse an" +msgstr "Geben Sie eine gültige IPv4 oder IPv6 Adresse an." #: fields.py:931 msgid "A valid integer is required." @@ -273,11 +274,11 @@ msgstr "Erwarte eine Datums- und Zeitangabe, erhielt aber ein Datum." #: fields.py:1150 #, python-brace-format msgid "Invalid datetime for the timezone \"{timezone}\"." -msgstr "" +msgstr "Ungültige Datumsangabe für die Zeitzone \"{timezone}\"." #: fields.py:1151 msgid "Datetime value out of range." -msgstr "" +msgstr "Datumsangabe außerhalb des Bereichs." #: fields.py:1236 #, python-brace-format @@ -358,12 +359,12 @@ msgstr "Diese Liste darf nicht leer sein." #: fields.py:1605 #, python-brace-format msgid "Ensure this field has at least {min_length} elements." -msgstr "" +msgstr "Dieses Feld muss mindestens {min_length} EintrƤge enthalten." #: fields.py:1606 #, python-brace-format msgid "Ensure this field has no more than {max_length} elements." -msgstr "" +msgstr "Dieses Feld darf nicht mehr als {max_length} EintrƤge enthalten." #: fields.py:1682 #, python-brace-format @@ -372,7 +373,7 @@ msgstr "Erwartete ein Dictionary mit Elementen, erhielt aber den Typ \"{input_ty #: fields.py:1683 msgid "This dictionary may not be empty." -msgstr "" +msgstr "Dieses Dictionary darf nicht leer sein." #: fields.py:1755 msgid "Value must be valid JSON." @@ -384,7 +385,7 @@ msgstr "Suche" #: filters.py:50 msgid "A search term." -msgstr "" +msgstr "Ein Suchbegriff." #: filters.py:180 templates/rest_framework/filters/ordering.html:3 msgid "Ordering" @@ -392,7 +393,7 @@ msgstr "Sortierung" #: filters.py:181 msgid "Which field to use when ordering the results." -msgstr "" +msgstr "Feld, das zum Sortieren der Ergebnisse verwendet werden soll." #: filters.py:287 msgid "ascending" @@ -404,11 +405,11 @@ msgstr "Absteigend" #: pagination.py:174 msgid "A page number within the paginated result set." -msgstr "" +msgstr "Eine Seitenzahl in der paginierten Ergebnismenge." #: pagination.py:179 pagination.py:372 pagination.py:590 msgid "Number of results to return per page." -msgstr "" +msgstr "Anzahl der pro Seite zurückzugebenden Ergebnisse." #: pagination.py:189 msgid "Invalid page." @@ -416,11 +417,11 @@ msgstr "Ungültige Seite." #: pagination.py:374 msgid "The initial index from which to return the results." -msgstr "" +msgstr "Der initiale Index, von dem die Ergebnisse zurückgegeben werden sollen." #: pagination.py:581 msgid "The pagination cursor value." -msgstr "" +msgstr "Der Zeigerwert für die Paginierung" #: pagination.py:583 msgid "Invalid cursor" @@ -434,7 +435,7 @@ msgstr "Ungültiger pk \"{pk_value}\" - Object existiert nicht." #: relations.py:247 #, python-brace-format msgid "Incorrect type. Expected pk value, received {data_type}." -msgstr "Falscher Typ. Erwarte pk Wert, erhielt aber {data_type}." +msgstr "Falscher Typ. Erwarte pk-Wert, erhielt aber {data_type}." #: relations.py:280 msgid "Invalid hyperlink - No URL match." @@ -451,7 +452,7 @@ msgstr "Ungültiger Hyperlink - Objekt existiert nicht." #: relations.py:283 #, python-brace-format msgid "Incorrect type. Expected URL string, received {data_type}." -msgstr "Falscher Typ. Erwarte URL Zeichenkette, erhielt aber {data_type}." +msgstr "Falscher Typ. Erwarte URL-Zeichenkette, erhielt aber {data_type}." #: relations.py:448 #, python-brace-format @@ -464,20 +465,20 @@ msgstr "Ungültiger Wert." #: schemas/utils.py:32 msgid "unique integer value" -msgstr "" +msgstr "eindeutiger Ganzzahl-Wert" #: schemas/utils.py:34 msgid "UUID string" -msgstr "" +msgstr "UUID-String" #: schemas/utils.py:36 msgid "unique value" -msgstr "" +msgstr "eindeutiger Wert" #: schemas/utils.py:38 #, python-brace-format msgid "A {value_type} identifying this {name}." -msgstr "" +msgstr "Ein {value_type}, der {name} identifiziert." #: serializers.py:337 #, python-brace-format @@ -487,7 +488,7 @@ msgstr "Ungültige Daten. Dictionary erwartet, aber {datatype} erhalten." #: templates/rest_framework/admin.html:116 #: templates/rest_framework/base.html:136 msgid "Extra Actions" -msgstr "" +msgstr "ZusƤtzliche Aktionen" #: templates/rest_framework/admin.html:130 #: templates/rest_framework/base.html:150 @@ -496,27 +497,27 @@ msgstr "Filter" #: templates/rest_framework/base.html:37 msgid "navbar" -msgstr "" +msgstr "Navigation" #: templates/rest_framework/base.html:75 msgid "content" -msgstr "" +msgstr "Inhalt" #: templates/rest_framework/base.html:78 msgid "request form" -msgstr "" +msgstr "Anfrage-Formular" #: templates/rest_framework/base.html:157 msgid "main content" -msgstr "" +msgstr "Hauptteil" #: templates/rest_framework/base.html:173 msgid "request info" -msgstr "" +msgstr "Anfrage-Informationen" #: templates/rest_framework/base.html:177 msgid "response info" -msgstr "" +msgstr "Antwort-Informationen" #: templates/rest_framework/horizontal/radio.html:4 #: templates/rest_framework/inline/radio.html:3 @@ -542,7 +543,7 @@ msgstr "Die Felder {field_names} müssen eine eindeutige Menge bilden." #: validators.py:171 #, python-brace-format msgid "Surrogate characters are not allowed: U+{code_point:X}." -msgstr "" +msgstr "Ersatzzeichen sind nicht erlaubt: U+{code_point:X}." #: validators.py:243 #, python-brace-format @@ -565,7 +566,7 @@ msgstr "Ungültige Version in der \"Accept\" Kopfzeile." #: versioning.py:71 msgid "Invalid version in URL path." -msgstr "Ungültige Version im URL Pfad." +msgstr "Ungültige Version im URL-Pfad." #: versioning.py:116 msgid "Invalid version in URL path. Does not match any version namespace." From 5c21fa757c8cc41b3af66d682f92ccd6a52a60ce Mon Sep 17 00:00:00 2001 From: JAEGYUN JUNG Date: Fri, 4 Apr 2025 19:39:11 +0900 Subject: [PATCH 445/450] Update test matrix to use Django 5.2 stable version (#9679) --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 032d4a18ea..0adcee3a46 100644 --- a/tox.ini +++ b/tox.ini @@ -19,7 +19,7 @@ deps = django42: Django>=4.2,<5.0 django50: Django>=5.0,<5.1 django51: Django>=5.1,<5.2 - django52: Django>=5.2b1,<6.0 + django52: Django>=5.2,<6.0 djangomain: https://github.com/django/django/archive/main.tar.gz -rrequirements/requirements-testing.txt -rrequirements/requirements-optionals.txt From c41314f1fc898490f27e1015cc859e28afe6f7b9 Mon Sep 17 00:00:00 2001 From: ren000thomas Date: Sat, 5 Apr 2025 18:02:59 +0800 Subject: [PATCH 446/450] Update Chinese translations (#9675) --- .../locale/zh_Hans/LC_MESSAGES/django.mo | Bin 9938 -> 12348 bytes .../locale/zh_Hans/LC_MESSAGES/django.po | 62 +++++++++--------- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/rest_framework/locale/zh_Hans/LC_MESSAGES/django.mo b/rest_framework/locale/zh_Hans/LC_MESSAGES/django.mo index 670228a8346076571906d56e43817d7e8354163c..b30686c1f94058bcd9dc64c164bc7a3faba4294e 100644 GIT binary patch delta 4458 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 S+>uPwrdr&7SGJ?$z4{N5)-neG delta 2330 zcmYk-e@s?Y9LMqVfDj<@Q{|V*Bcu-s$diFS0xE(U{-8ufLo02fCN$J(>0s+IO^`Os zdFB>YbD6c$TG>->QKPh`%^$6zny%)oi4)gmOaIWhe!M^TUR!5;@9UiV+j@DARC z1@XpIV-RQKCfBg(rScFbeB51yb8rd1h?DVGtiY_H#>~S8EXUVTzyE^saaf`;`S>KJ z;ZD>5U-r&_?0Esz-(Of}!p2Ow*B#+{)EjO=J>WGA;dz{nsY%AvU_DO2eaN5rii57} z#{x`DHfA)I;doq%bYZq*5cl8&JdSgCzWIa7R4h+%JKT!dv^%}_LDZWaMZM9FsHyzZ zYnP?Ezc0jS&OeKqfi@h4-KhTF#Q>hd5qKTLek!qCosIz-R=fdm}1mcBeD{lc*f#gtOMDcGfU=#0yXtwxAz7 zQ3HA#H3R1{26KkH0~w8lvU=rYW24tTg7?!tjoJm*k^D0^Py>j~ zbCu?r6 zkGk%Z=OxeEn9cJ|8pGC97JIHj?{|b z2vbL>DAN}b4Ft<~5!MXH^l2dOiv2tQR=TpzWv<>*5?k97~AVM6Pqj-OtL0 zCh@|CI&QrhBa@tR|H0_Pc~^ zdpaR#LqqHB(V@2@ClfdO?1rRLdok&UNL)(D7wJiT(`P?PPqc06&5;}F)ls%-#MYQK z>z`?DvN;)T_FP7pU6i>d@^j`HpZzfVw!M%uHKA$srd6w3o7T0ijdYCs+h>oBT52ce z{uY_!5Bcn&(d9NN@3=jiA0H{rf5R8?kKxvuK&mYav_#$sbVS*8 Date: Tue, 8 Apr 2025 09:29:40 +0100 Subject: [PATCH 447/450] Cleanup dependencies and conditions for unsupported Python versions (#9681) * Remove optional install backports.zoneinfo for unsupported Python versions and associated code * Remove conditions in tests for unsupported Python versions * Remove condition for unsupported Python versions --- rest_framework/utils/serializer_helpers.py | 30 ++++++++++------------ setup.py | 2 +- tests/test_fields.py | 11 +------- tests/test_generics.py | 14 ---------- tests/test_model_serializer.py | 5 ---- tests/test_request.py | 5 ---- tests/test_response.py | 7 ----- tests/test_serializer.py | 9 ------- tests/test_serializer_lists.py | 6 ----- 9 files changed, 16 insertions(+), 73 deletions(-) diff --git a/rest_framework/utils/serializer_helpers.py b/rest_framework/utils/serializer_helpers.py index 0e59aa66a2..e6bd84f30e 100644 --- a/rest_framework/utils/serializer_helpers.py +++ b/rest_framework/utils/serializer_helpers.py @@ -1,5 +1,4 @@ import contextlib -import sys from collections.abc import Mapping, MutableMapping from django.utils.encoding import force_str @@ -29,21 +28,20 @@ def __reduce__(self): # but preserve the raw data. return (dict, (dict(self),)) - if sys.version_info >= (3, 9): - # These are basically copied from OrderedDict, with `serializer` added. - def __or__(self, other): - if not isinstance(other, dict): - return NotImplemented - new = self.__class__(self, serializer=self.serializer) - new.update(other) - return new - - def __ror__(self, other): - if not isinstance(other, dict): - return NotImplemented - new = self.__class__(other, serializer=self.serializer) - new.update(self) - return new + # These are basically copied from OrderedDict, with `serializer` added. + def __or__(self, other): + if not isinstance(other, dict): + return NotImplemented + new = self.__class__(self, serializer=self.serializer) + new.update(other) + return new + + def __ror__(self, other): + if not isinstance(other, dict): + return NotImplemented + new = self.__class__(other, serializer=self.serializer) + new.update(self) + return new class ReturnList(list): diff --git a/setup.py b/setup.py index 952b5f50a9..e5e78c2c78 100755 --- a/setup.py +++ b/setup.py @@ -81,7 +81,7 @@ def get_version(package): author_email='tom@tomchristie.com', # SEE NOTE BELOW (*) packages=find_packages(exclude=['tests*']), include_package_data=True, - install_requires=["django>=4.2", 'backports.zoneinfo;python_version<"3.9"'], + install_requires=["django>=4.2"], python_requires=">=3.9", zip_safe=False, classifiers=[ diff --git a/tests/test_fields.py b/tests/test_fields.py index 1403a6a35d..7c55dfcc5d 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -2,12 +2,12 @@ import math import os import re -import sys import uuid import warnings from decimal import ROUND_DOWN, ROUND_UP, Decimal from enum import auto from unittest.mock import patch +from zoneinfo import ZoneInfo import pytest @@ -30,11 +30,6 @@ ) from tests.models import UUIDForeignKeyTarget -if sys.version_info >= (3, 9): - from zoneinfo import ZoneInfo -else: - from backports.zoneinfo import ZoneInfo - utc = datetime.timezone.utc # Tests for helper functions. @@ -641,10 +636,6 @@ def test_parent_binding(self): class TestTyping(TestCase): - @pytest.mark.skipif( - sys.version_info < (3, 7), - reason="subscriptable classes requires Python 3.7 or higher", - ) def test_field_is_subscriptable(self): assert serializers.Field is serializers.Field["foo"] diff --git a/tests/test_generics.py b/tests/test_generics.py index 9990389c94..8748e8f170 100644 --- a/tests/test_generics.py +++ b/tests/test_generics.py @@ -1,5 +1,3 @@ -import sys - import pytest from django.db import models from django.http import Http404 @@ -703,23 +701,11 @@ def list(self, request): class TestTyping(TestCase): - @pytest.mark.skipif( - sys.version_info < (3, 7), - reason="subscriptable classes requires Python 3.7 or higher", - ) def test_genericview_is_subscriptable(self): assert generics.GenericAPIView is generics.GenericAPIView["foo"] - @pytest.mark.skipif( - sys.version_info < (3, 7), - reason="subscriptable classes requires Python 3.7 or higher", - ) def test_listview_is_subscriptable(self): assert generics.ListAPIView is generics.ListAPIView["foo"] - @pytest.mark.skipif( - sys.version_info < (3, 7), - reason="subscriptable classes requires Python 3.7 or higher", - ) def test_instanceview_is_subscriptable(self): assert generics.RetrieveAPIView is generics.RetrieveAPIView["foo"] diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index f1f9518cb4..eac51ae704 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -9,7 +9,6 @@ import decimal import json # noqa import re -import sys import tempfile import pytest @@ -397,10 +396,6 @@ class Meta: fields = '__all__' expected = dedent(""" - TestSerializer(): - id = IntegerField(label='ID', read_only=True) - duration_field = DurationField(max_value=datetime.timedelta(3), min_value=datetime.timedelta(1)) - """) if sys.version_info < (3, 7) else dedent(""" TestSerializer(): id = IntegerField(label='ID', read_only=True) duration_field = DurationField(max_value=datetime.timedelta(days=3), min_value=datetime.timedelta(days=1)) diff --git a/tests/test_request.py b/tests/test_request.py index 4263f26829..fe3efd96bc 100644 --- a/tests/test_request.py +++ b/tests/test_request.py @@ -3,7 +3,6 @@ """ import copy import os.path -import sys import tempfile import pytest @@ -375,9 +374,5 @@ def test_deepcopy_works(self): class TestTyping(TestCase): - @pytest.mark.skipif( - sys.version_info < (3, 7), - reason="subscriptable classes requires Python 3.7 or higher", - ) def test_request_is_subscriptable(self): assert Request is Request["foo"] diff --git a/tests/test_response.py b/tests/test_response.py index 00b5691b0f..a5eeae8825 100644 --- a/tests/test_response.py +++ b/tests/test_response.py @@ -1,6 +1,3 @@ -import sys - -import pytest from django.test import TestCase, override_settings from django.urls import include, path, re_path @@ -289,9 +286,5 @@ def test_form_has_label_and_help_text(self): class TestTyping(TestCase): - @pytest.mark.skipif( - sys.version_info < (3, 7), - reason="subscriptable classes requires Python 3.7 or higher", - ) def test_response_is_subscriptable(self): assert Response is Response["foo"] diff --git a/tests/test_serializer.py b/tests/test_serializer.py index 10fa8afb94..cefa2ee38a 100644 --- a/tests/test_serializer.py +++ b/tests/test_serializer.py @@ -1,7 +1,6 @@ import inspect import pickle import re -import sys from collections import ChainMap from collections.abc import Mapping @@ -205,10 +204,6 @@ class ExampleSerializer(serializers.Serializer): exceptions.ErrorDetail(string='Raised error', code='invalid') ]} - @pytest.mark.skipif( - sys.version_info < (3, 7), - reason="subscriptable classes requires Python 3.7 or higher", - ) def test_serializer_is_subscriptable(self): assert serializers.Serializer is serializers.Serializer["foo"] @@ -743,10 +738,6 @@ class TestSerializer(A, B): class Test8301Regression: - @pytest.mark.skipif( - sys.version_info < (3, 9), - reason="dictionary union operator requires Python 3.9 or higher", - ) def test_ReturnDict_merging(self): # Serializer.data returns ReturnDict, this is essentially a test for that. diff --git a/tests/test_serializer_lists.py b/tests/test_serializer_lists.py index 4070de7a51..42ebf4771e 100644 --- a/tests/test_serializer_lists.py +++ b/tests/test_serializer_lists.py @@ -1,5 +1,3 @@ -import sys - import pytest from django.http import QueryDict from django.utils.datastructures import MultiValueDict @@ -60,10 +58,6 @@ def test_validate_html_input(self): assert serializer.is_valid() assert serializer.validated_data == expected_output - @pytest.mark.skipif( - sys.version_info < (3, 7), - reason="subscriptable classes requires Python 3.7 or higher", - ) def test_list_serializer_is_subscriptable(self): assert serializers.ListSerializer is serializers.ListSerializer["foo"] From 2fbfaae5078caed98c1447cd2b8f7a3ebf210f68 Mon Sep 17 00:00:00 2001 From: Yousef Abu Shanab <93343012+youzarsiph@users.noreply.github.com> Date: Tue, 8 Apr 2025 11:32:04 +0300 Subject: [PATCH 448/450] Add `drf-restwind` and update outdated images in `browsable-api.md` (#9680) * add drf-restwind * Add images of 3rd party customization packages --- docs/community/third-party-packages.md | 4 +- docs/img/drf-m-api-root.png | Bin 0 -> 83057 bytes docs/img/drf-m-detail-view.png | Bin 0 -> 123502 bytes docs/img/drf-m-list-view.png | Bin 0 -> 125547 bytes docs/img/drf-r-api-root.png | Bin 0 -> 83518 bytes docs/img/drf-r-detail-view.png | Bin 0 -> 121052 bytes docs/img/drf-r-list-view.png | Bin 0 -> 130100 bytes docs/img/drf-rw-api-root.png | Bin 0 -> 78192 bytes docs/img/drf-rw-detail-view.png | Bin 0 -> 101333 bytes docs/img/drf-rw-list-view.png | Bin 0 -> 102083 bytes docs/img/rfm.png | Bin 137450 -> 0 bytes docs/img/rfr.png | Bin 145437 -> 0 bytes docs/topics/browsable-api.md | 51 +++++++++++++++++++------ 13 files changed, 43 insertions(+), 12 deletions(-) create mode 100644 docs/img/drf-m-api-root.png create mode 100644 docs/img/drf-m-detail-view.png create mode 100644 docs/img/drf-m-list-view.png create mode 100644 docs/img/drf-r-api-root.png create mode 100644 docs/img/drf-r-detail-view.png create mode 100644 docs/img/drf-r-list-view.png create mode 100644 docs/img/drf-rw-api-root.png create mode 100644 docs/img/drf-rw-detail-view.png create mode 100644 docs/img/drf-rw-list-view.png delete mode 100644 docs/img/rfm.png delete mode 100644 docs/img/rfr.png diff --git a/docs/community/third-party-packages.md b/docs/community/third-party-packages.md index 9d25665adb..d213cac3d4 100644 --- a/docs/community/third-party-packages.md +++ b/docs/community/third-party-packages.md @@ -160,6 +160,7 @@ To submit new content, [create a pull request][drf-create-pr]. ### Customization +* [drf-restwind][drf-restwind] - a modern re-imagining of the Django REST Framework utilizes TailwindCSS and DaisyUI to provide flexible and customizable UI solutions with minimal coding effort. * [drf-redesign][drf-redesign] - A project that gives a fresh look to the browse-able API using Bootstrap 5. * [drf-material][drf-material] - A project that gives a sleek and elegant look to the browsable API using Material Design. @@ -254,6 +255,7 @@ To submit new content, [create a pull request][drf-create-pr]. [django-requestlogs]: https://github.com/Raekkeri/django-requestlogs [drf-standardized-errors]: https://github.com/ghazi-git/drf-standardized-errors [drf-api-action]: https://github.com/Ori-Roza/drf-api-action +[drf-restwind]: https://github.com/youzarsiph/drf-restwind [drf-redesign]: https://github.com/youzarsiph/drf-redesign [drf-material]: https://github.com/youzarsiph/drf-material -[django-pyoidc] : https://github.com/makinacorpus/django_pyoidc +[django-pyoidc]: https://github.com/makinacorpus/django_pyoidc diff --git a/docs/img/drf-m-api-root.png b/docs/img/drf-m-api-root.png new file mode 100644 index 0000000000000000000000000000000000000000..02a756287267e89a3f63921259cd3e221d94b191 GIT binary patch literal 83057 zcmeFa2V9fOwkRG%L?Jsd;w0UNrqJAFB-U9%fT|A+WlpowOG%~(LKKW~n?`4+O z9&X>i|4AaYyNmnYIsnkm_fK&CDEoqqt%o%cVT1T)hY~v{5=%#f>Fj@n?|g@?eubsK z!#1u7b_v$s)`v#T?FSCV&-4i#UPcJaAi9L8! z(RW=`&(kZpth}cF5*v}0j1!st4{DzKS z`yoG1ES0ArQhA2tJUMab$Vkb)Baxh;Aw7GA?zZ54odmK+x|Z(Q8&_GMmc8#iM@ugx zYz3Vn7Xd!lM3ncjvCBVeVK~JDC`pN3(2&vqO2X$v{y1DJ&>ODT!?abT9-9Pr`3-3oj4&vwnh(Z+p$N3 zR&B{F7qSBChHIcabmY!zMpz5HW%bMsFYy>dORBd~g`HdB2lZgOmla0(kl+s{8W;q} zS3$W}jT-Vx?t+4g5fN`s*37jF0?s+U-Oux#dfy^cp7*tKiFNz_xtiDGkCvEI8_nPo z?Yq6nCX z1T2+uhw6<&jDD$7{Tv)pC-m{_%?`WNAb*uMIq6dXt#NUAlpQXBH~L6?iL&CHV6za+ z%BxLteJh9$BNo%|x81wO-v6%mO@QH?K+SOeCd^g#*0;qC`0o3_b=r4+e}U|^ zNtNEOS-)(WuuK0ybX3n5a#{jL$hO~Vll&FRl%`@LuZnwg7zA^@p1(a!{TD)hko04e ze(2JlZSRN0{qRdaT;-2|@^@i3>({U=K*dkHjBM^8+jd!^efJ~u{+OWrn8y95&n!p2 z-)|RLPc^q(Ni53P%T*r>5-Qz_z}G0Va_%B+(oXKUO6g}2vi)n`d)6$8T~;Mir&;yk z4|#Bq>Z;~>&0Q$I>-Y;Hh+<#O--vy5nrp}R{U;{^F3!;X);~%_4*4t3G})LsEWMvtzAWJ=?cQ09g~3-*>0XO z;Aw{mL0ZwxfkU2(0lod7Gl1gS2*fFXX|HO}J#x|q!{YX(pMH0WIi6YtpwnXBeF~U6zCEII3NRQZUza);9~j$sNn*F}7-ZUFitB zYYCnmMi~!s5|kuD@DWbi`i_T3X0J~Hvf8WTjy9)&w(!1Y29OAWU#7l3T8P4TywTqcoX8#U!va`?Duh+>rQLriZW&;40vt8TGv{a{nAi$ z!lSrDZnwDuc>D-8(9s{Ey1COHZ`wx}CK`|w4L$`_b$RyJI9h*u-w-??H}qzC;6m(#%~_4{U`^=a zwNgGrRxQKdRtNOl7u#pwoUWqBKYoKiI%_$nK~DkO@d#t7_uh@nlO|U$R6J_cR=3Lz zODKt~FEIcX#)V8T*v(lOBQs;V?XN&mKQ(WtT9-PB3hdZSOx&DI>@Xj4vRLkHZVD1P z^Red-i$4T5*`5NPsWS&ymW7}=Pxem%XHz71Tdht3`kKevORujA&ut4FT`^o4p^82> z65H$8XD=J9W@0!fcU{lY1e9e7q=o#ZN4fVLagA?=nz2bCfd>v`G2a4nJF?!p<_8Me z7uH)kY1_7K^?xYmW9JQ$F1PK&L68XaEJ(hCLCW?+w|i0L*kXQ8Nlx;Y0o_mS*3$t7 z9FPQW1R@K;HoLHacx1s^Ea4zssS<`GM>IAFXWB*!&_Jm9IBtYP>7+Bss)wrJ$U(2shb()j;}fp)-i$OZLuDX zAE&5?wBKK{zvA7j_ZYLWlr}|OEEE)aL=E$YoOo~g9GDjz@5rX8?lNr1Ixdxd8)=_d z^3U2ESe%=vzIpW&KyeD_nK=b0p8^U!bAD^K&ceUFa-99eh~*eg0f?D>5gj?|kQmX@ z?IF2JM?hA1^9Lq_Z>u-)A}gSB3wXJ}ws;8krWjgHYPIN328$pXtngnAb49=Tct!EV z{pR6EZ!_KyaWPkX_~BJ%@Zc$+(V_V>+bO{B5{_Xtd|o!=6!56yr083-f^zz%%k2&y zEn0%%MQkiuv_ZGXswhaB|FamltOv>+GLG%kR$*}{IR&ht6i=c~0bl&CWwo`&5h*?e zgimLzB8no?Vz}o8XhbuOcWORMwO1OFpPeXc?7GXD_r?Uwud94>B;a;zkA6X;P901fX^F-na4MTtjQ(9?#KdtBeE^%5BO?=cfOWKdg2;EW5|DdAv7m*K3HddduKUHYF)Zy54^_jHr3#;py|VWek$m! z`DPV9?0kW}sDS{Jum!0tG?(w`*UrK<6pUc!BSYd=_rBh>(cp2^s)Wz`p}wK^MC5zl zSR)~zBq*v7>ur?pPy)_(tl-Q4ndqcBe`h8 z96|?AnmN%y6-S-|rWX2Z(agqgwyPG#rGc0xLZGStonzgXzVUH1&VhRtCE!jeAM+K{|(JRT=rqELW zw0MZHb3+s@j|cj2)?4wsI&p|t_okFNx;?bODBHNt@Jvgf?ImtG^$|wLsU%3AkpLP( zc7YT?3OyV$T-nSVR+-$Bor0pgy`eKC2BPK0c6c=Y2wGMG&TV?>jz%SSMJ}EK6uqI|Bwd&={tuIp1FR})DDCz_TCe!QSs##by3u8L{y`5#F7fY{LQ<^>H^L@@TxiAG; zGqEvlP@hx1nr6ZV8^CF0;A4GGta)|6D(op|2x5_Sao@JUu~d#DOlFnqaU!I-umI0g z9tyv%K?{ZU*eW`0sLfy*2I%i*^#fAgDywURCYL*Dn@hD>T=UlgyM@ zisDaFuu6~Z0EC>6rEews!hZ+VUhR9QRPVCgFdtplelM0Ex~c~TGN;T; z)AB94Q!21lmVzpgt`Cz zwU#j0oJS5ks(i#L*UNetzaUr&(E(w=-1fz3{O#R#>MOuH0t4MtA$oUtG22DeOydAt z3tQ7GjKt_8?U$jft3Dl;lj%Er)lr)U>UQWLGdd{uec|E41+j5>o>u4)rO%-4jHwx* zbLuTHpncGx*w;Ti8TTowI6B5!SV3bDf~8%yrpkKX@NK9%WD0Y#?^8SMn=Na^Bii(+bhtg;ki~mwFT4}X2$WC;|wYYLn+qqW0U9VrIObuh> zjY`TB*60m!Uoxe-j~F5h%P8ib0(@Y{-6(p(R$q>#D!m0dV)cO5MS&@lljXgk`V~hO zC&Bvx_4*chIo6PDRja445exR}O?GAqV$+hj^O$)o!%Hu8d_T(2EyGFpDX4)LSZH7Oj8W1#+2 ziovQ&vx)re7-0oneizin;jm%Ga)mVx^%h5Mct0nDI!f>>)7zf#LdUxcWgK1p*VvTg z+3WI+%0#(2gIF5VGR0IY7R$GvqOvrN!dRR7^dNm4u;h&uVYvo>9$jF!Y-T%m#>c@G zvm{3RS%9JU0gqPv;u~!JQUt%4B=Ye2g2AJa{Lr^)G2Tdb*vC1{2uM=&hF7J|iDp!j zRo02oh>NZf+E*K3B1r$?8eb$^qQQHo=`1GU&SBMKnPx~p^%}30`c;~+j)?hUM9qk8 zZZX8E2Z5Z)(p@ZgJ&OrqHq9)l-~ip1EM0k4CgyqM74BT?J*O}tqp2}qz!b=E-cJq4 zVQr&GFhiAr=o!GwZeL;Ahoi!$fQ>QgQ^04>a#4*ID_5GkICYL5nlZ=X6tIhqiT;|3 z)gT0z%3)doMR2y6CrkCDSHIfo`FNcEttIuu5}lK%VxFkT_G%aHFppNtdOKcHirzNz zGT_aMTL`TEEa+7}qiYw$KBCuE1p*_)kI{WKD88OcW8AzoQ7+m>Dm!rwRrq5A7Ywqn zxlR$?>EEQvE^4Ca+@g~9K?QH@(^c%clgt>M7=Xb<@#5mA2nJTbu9Z7%?Jp zyp=cI$M}4yNp)u;T{=Sxnbkd79ic&I-vBq;IRm_CbbB#kHX3bh8lTtRqG8CYhLc@C zbnBCK!{|%nf-;l?8oA{_bfHrP_~Wd3to~e04zAFvHFy|(ErjJUWk@6~nNdmNqeuPi zn#?l743T<+1Xz7x;T%R-Z#3MuWys{hBh9cknIo4h{q0THdJ@$nVZoA3wgaFUCVnHa zRU~1(`*m6YXeLm(YsF>1CmHT)N)n)P9`<0SNTLc{$CBSryB2g%UuS#xxzhE>+9kiz zfpH0v1FpWP0g@JEMf(BKP}V>yfTDg>2@}w-O|4&}pK*6Q@VTu+>4O?(R;8MN&@LX$ zw8UKLe2uF7q=N(mk~8=eunQX?#JyPJW}O@kvuY(A*)o=20OLgGOH7kNBa$*e(*cck zkp*oZ7;G7Nw=qdTn%1rI>Jod+jBzbDExYxKcvZBKKMhpDtT}R_*eKLhoc~ZaytMKN z1QJ^7^nl=j0%vQ9F(uwU_LVXL&a7~z(6xhHmS^ysR@KXhoD;_Bfhu~Hn$o;+8T5DQ;FRw~Z7 zVGygwH4hl|8t^l3zdSxj?d$q1Bqr(bYER5x@Ut>HxFkJDNwhoXt$aY01^P=KQ25@A z4)zUJrR-C5O|KHSJq%o`rL^8hWyew2pMIyP?5$zYo#_G-PY@6H`-cns#t|Q!Ob4yz z*~?__dX||)m*CW6=fmJ}*<5k4;?<2`>W0g1!fK?`;bX{WuX+%W;j0HNj**Q8b=hma zOthw7tJBrjKy>^~YD0zjC1EPr$p(Cdb1nn;bX_4?-c~V6<_L%z7N>I4-~qt~{j_VI z8>KTsufve7JK*ns3W%787btw;Ll3pp>$UP^bm=MIM;4nIrXEn4?jk(1KdkUGfAH;4 z5m#GzULrAaM?Wul=^~%{>@>c<>!?E8;K4y8l8@GTaLc*{>CP#&HoxUK{AM@4)HjuC z++DK?EZS#?k1uj6mtcnq?9eb4Ha9*T5s$t!^f>R!1g*_$t5FL^eICbG(Yn>tZ-q5?Eky)_238^K2Y2e?YU1D1P=@2F>8Tk>)gei@0YOgAWmA7 zl0PeZB4Djo`-U9Km|IdQ^*aq9QMS$^ePUb^%_o_42!RsOgb610INIuK&pE=~=2otn zWtUAI@Ee%vWHB&Y`v9>?Ll1IuDZl-YF7UiyyUO8+;}qboKGmNI%F|G*xcgQTbPBj= zbwe=Fo2hBULfsu)c9kr^0$$Hr!vzGP;ErE%M@@1*SwA&W=H#y6BZc&KYiDe#qGP*d zVxV)oNd^2#eFjH-u6>t;-Yk(>Tj>sSqwbV4QzZ7O9Gjj3m_bJ$-8(8bXO5I}9PKNV zJ)V{Ea9e0BEGx~k85W`~mh;=Y2UE<6PuK`+SU7j0S-qSpI)7ftjQVD)a&_Ad{aP)> z{RJOLYI?@x*lvXt!a0Bs&n+v-Igg#Zp&XQ3W$A}NwR*+Cq< z{AAr_%xfPl67aJNZp6RWbji#}D)FqUaY7YyyWkj~bv-@ps8U0ldsbdQ(4?nx7HWnV z)b+3H!#m(a;As6;#*b_IImu9s!GZ8xk!Khhj7=MkyY5~UvooEx3B;M;8ikZFOux=n zC1g6tzSQly&OU?8V0+x=t4sdK;h+uOsHpJ`iAxmm&@~ce1t09rBRB<^w^{^@y&_j?*X5w}{s9UXI!g~}4> zLjS5rWEvVAfg;FU{KWP+uTNjPj{j=8(6fHki|s%gzFAKf!>VNcs|9&*BQz#0;L}f#Wm!V^N1Of+<+1m6J>2v#Y$3aUGO_h>UYId96YKZ4S3n$3-lz5oOboHZqn_Oo#-5D}5=c(1K{a5LqxJw(0MJwvn_+N5@jPc2E%hs)X zmqT*4dhF2Px>tMo^t~?e8+m%Nq9GvFSjV@+ z3vc|Trx95W=f#9QX9qM)`8P$X_W_9 zpDg0@pvdwV!!%yMD-3nTHlIojM)fK2K!j&ayxV|@LH`1G4$ z{8GwCATE=*Y!w!grFgP}iGq|!odO~$iL27l$AhqIH`~H-&9tY0oVlC*0h712JXDN49B0~aytn>7UJMi{SnD(3I zr`y_^A)m+jPXX!!r+}t{zE0Ve6LO3U@Dw2B+i)zPdvcI@qhYsonz(!t^6e;uxHhnJ z=_ME=7ZP20bD{G%9h3jt3+b%=7YE8jWP)kPxhSrw_02HsNdWn7>@C`jz5Q0=8n?{z zL#0e`wfZ(r@x-3`AZLE3Q#mM^TW7*ni)lykW;KglU&r=y@8iOdGD}=Z$RRHJXj*RX z#cI9biJQwr74Q6xuCwcM5y4%5#+I&_4W2Mv^ zov%w9u%d8sli`apA5rNOw6KBUM$lzKK1*Zov^rVM<&jyZmo<_q$SDsq7!SLZglIvX z7SPxFlEI+pf|=FpLX@3xMYq>Czbn^p4xh{ud%UU>U=`Jg%I|io0f)m@T)1fkYM|(wQOkCX1ZM^u6nOns| zwdoRPtPzLwsAs%_hXL4bkoCxiC5Bh`;ltie>B^UGKOLlQCP|9-qS&^&jk+><5?Sr? z)q;jmP2(2Z{AT6^1-Gp94oQ>Aq87E87U)6?^@G|OawE>dys(sHmuTL^vLcNk8(e%+ zC(9V98@$^6`YY_hWMQ^K;yQbAx4i%7?|Vq1UbS!pv4QhFhCK6)nDT$zwH4UGXi z9_jBuqhP0))7%4wq?NiH`Z@WP-ale=&yTHDbd*x}Im}DU$HeAl4(JieyOtw*w{s&B zt9q-77W2)cGb_Whn*QTI+zUJNMv^2Od?PfUK_r`|r2UC_eyIhslOnLBX2zD4U=~ZoHj{8tp zlvMk1sBrx~z05*3NQVaGf4PuPSeRyv<_4l`#I)ynvsj$xZOWm&aM2{s9Lr~_ZgbTG z-3tC(G`zjWg8CiQ?b{ZK?UIE2DtJNXH5iP!7q zCV9WVu`!s@cj?a3%(L^bm^g8KEW|kTd_+18bxLzfO-Oc~V?3qN-8}1p%3*pg1t@ow zO|t2L*~sN?y|L#^3@RO^S6PSqg)!6jNEFBso<=Ro7ao72c4=im@eS|Lo!^D@i;9&k zq77INw84nA#qK@0HyLp)`IWw7R6eJ98FI?~$v5e@Der>=@zI5Y9TdjsZY%EGs6zPB z%dMZ|XV?SNY>Vein`tBNI{O%N_CD@;9AoS8&M=Bn-Ju{KmY<1+7(E)41mZMOMIZ^m z`Dd?2R<~&i>KU6M+H<8ovvdeqA4nQ=jk3eRp;7uWmbg?Io6Z|?-F>Ew0+FyX$L6bs zx%Cw<@Q_9H4h2Yt%2_J+X*u^iasa2OZJ<_EdY^`diB@vAT36&ajwza!L6xlBXeQ6= zh6p-zNt;r=F9u>B4gZ`Bx<`jsY3!Sf&OZ~E80x@}&8T(+#m~TwhU$P`RXQ?fmxy;+ z{m3&`cC6#I30Kn_4hbVMeRGx#kD%OYF>)#|AMy$|=sPqza!YiVz|D)}uJve$jY7ad za74Rh^?Q*{9m$bJoY*JAqJhL`=#h}*HCC@RegI&I$E|fAb#|DKAuvS8302i(r>Ski ztf?U264EJ2^eM$yJ7>L4O7N7%wMI$Z8i7+lKT2*c^C#M-#cGt4d4dZrAn)@CSzH~q z64wm^HiGrJloFdn%!DjeaUWa=+Lwa@h zkg!P_XMK$}^-9aJ+vaYcuQyH^Ga5_Wb;UryH+fjfg$<;u=x;=1%2w*un$)UV`=5I# zv+E>dVBi{hccug$yCRiyf~;eSh-iA7K&5rzExyyoDSQF|9=hJMdP4wS)U=7GrH&Pgy0Ls?jt;+T5 zO05WUDGrV2^3G0xl3z7d)5D3D)6cHiI2&{dT!(QlBm$uzyyx-l znQnA~An*RO#Yje}FVD`Qox?;H!LECy#VfZWqw$AHjHS*~`ZB$BEFC9M8nTN5OQtQsE5vkk zbdasAAZ*2es(daNI zW;)Qizeqgx@k}M}u#ncQmoU@+pi(&8$mf&+ufzn|NuL3Heq3w;eODWmPHX%)ABIf6 z5o0TFx;SVgWZH|2UKxMbjeTJil?Gl8B441G1sQCr zmy|I`H}bjs%r2~Tt?Po@0Kwg4X(DtwPz3oA{?>zK0FutllT1%fi%mVG@+X^@apQcI zS&|;y|COtG>JZMDN^QBUCRLLs$DWrc23deLGQ^mUqWVy2j57t&w$Q5KMUH}MWstR} zOKxokX<`vjMr{sS!!ZnF)0K|(KF@b$Xg^)6Hj54q;RESQ%W14UzaojO2Xm;-gIzr` z3Nu-9wcX>}Bu&~3Q)!IKfL>Jfk|?I@%u=jz3bBh=46xT6*S*68Bwwrfzd-F-&<*Q~r#x<6&1~t`IWEv^k2Yq37cIDZt9%#C>8+dV^^D z(QKju-XHotq=74osLp~6{Zq!58Du)yp{UVWDCZ|EE&CAU#rcTx!CD^*_)9^mj&mb! z(hqgMjI6~CS{FT1Qs=2&^G9JBz{phvNncttZ|t5=p=W1wb_?z;??A5pFfy?`st)6i zRUkkc_-wtA1-V6uHLpKT^T}CDE7})V)IYO9gQv8D5Ere( zhT{g!Yw%(Jw$vfM-5TvEHbW$Se^y^9Dk`fJAt!RE-iK5;0habXKDW4x9D@|qw3oDL z^IkHJ5cV!#mS9eF28|$5Raz{5X3+}t2`+AOHykhsos#eDWW!CoJh&zJyob2_ z?&W#61;~yP`9{%3IPUr{_d8}{?d-;;?Ij6FtVxx8l1$f}p6-%Kl8BykV~fG_yng!8 ziMTh?d?}5q3MJVF;Novis%)U)k`$vVD27&Kq|Cq0oZ0YYKtmSk5lP=SF-6Zf?;T8NS^$yjEvH-=9z<}PW z=||3SO7el#7}nXL0vUd zrLw1c4!M#hny2i)>{U2fZW4c?d?nY?lf7;?)H z?fma*eedq?YjLbkY*Z`;3|HUV?+^KO^S9mlQeY~yPP#U!y9&3R`!2I5BK~>l=vSx#EXqZO-a*oqs`>9;sYkExjCwjDC-p@#0D{A+`DT zXLOc7Q>-}I>wb{bS@N_z@XzS+zp^UFjo5Ig9s4bVvi~}Ra(}=e(;qMx`&$N|&*}Y^ z!H(ZDNL03efk9c&cLwYK#GvP9N=WKgrCHO0YzmwqKF!&#~(BDh&R~Pg< z3H}={=->CT|E2_qF8OyZ=(iHQ{YOqF@Xt=>fA3@eWgGmLB=~C(`Nt|sq?i~)ekZ}d zW$+&dk$>Pt|AxVTEI}g0e;XzL$cz3Bga0^6{$mLWoEwv7ovr6-W0E^c{%t_`y}JFI zF8}}fkp35G5NCMAIm>^Okp3TY`Tw##eV=&$CwRm^bot-yiRIZB8}0aWD>6c=+;hY` zk|bT?+I)dYnVWGxRgk*G#M$u@!ncDE!UdZI-O*TZLA&OV3HxwS!OWclee8(6~WA1+SY?G=8MG2L(_izTTVPJtD zjn#g1`wO}@pMQTrkzg(hO4iXdUo{s1Y9iRCzrHwro;I9@7~^1rZjoL-1)%IsmM|hl zxm6lRPuk>`hePV2_LrKdd+9vk@`{4m3%aOpIbRPv-4Z!FcVEn3TG=Y+{?dZleaLrK zBIxD*l_#2WB)BL8&$8w-85nhJ&7=)LfY*9eMEg)jY|>=Qq1sDxpPJn{Q#bgW=b5eder!(5 z=^HG+;88A;%{|*v8peuEO84m*=%eD()Hc1c*3t4QYbo^?DZy|{EBD)lK?Nn zFU^zuiud`6xuL)>&6ECu_k)ZdqtX0BH^e4?SjrE-@xzO1?*C0pG1>SYQ)p@*4Pi02 zUEkHsVjJc59XEs~8B#dz&5;_&^2w47ls^Irsf=t0-C{_QODhT~oOtS<(&g@Pncao{v_eS!YzpW&z)ig!^rx`*iUc>?1IV@I;Rer`<BkWK(1L&25MEq-mdWwcZ*A@G;psgvB4C$Z;bRT=>~6q7{oiB! zPst%C=SM6on?-r>eXdhLt!wXQjO;$V_~Z}CuMitoK2)6kG~su1jo}HvlS;^%Qap>~svrAby4Osd)cgEf^e(c-0Z@TK-ra-xb0G+yytH|R%`wE!`y=D3uXAUb( zE-PNa@Xaw`+_N4sk%Y3{Ate0@8^{1sZlR;GGSa-}RZ{I6v^p}0HRMqzp59ojYLv^3 zcf1+OUv8XNiU{@M$%q(Jv~kSZib7-cIsN!s-&kt$3~egTbbc!y?54+T@afUjM9FF$ zMCj&iA|;3q>S*+f=#84ZXW?I_a^{3@IC;f)4F?AyxZ$cCJCzr!=hflJ1%7{g;ab$J z3p%*j2wbB+sOHSy=deY2(;fZ{@f7T5!WL^fH^VrPjQTLwhTzBQ;d-)#XwWz=&|$hb z9rqs!>Azhe88W`!qFoLjE*kXm=o0-+&*rF*s!L9XclSwtIa&6f5=@rXv?YfZxN3L! z@f6_j7SOjhDiK{7n|FW;MeZ4e7rHs~INn*-k7ZYb!NO4a9yEvaG_V+q@JL$yMVrVk zKbx3gaDE}zjMj%}l_j;``S?enLU~`tHuRb@Yqoc=cC-27oCrEPBhVh4_hIsuGy9mE zOju{Q09`qr$Fj7v5S8O8*e@iGr7zqW+5wq1(wl{0KkPpki@#UZaly>K@L9?N11;~% z<$;7Em;eH;sIlwctI-aWy6ZTd9}jfWfY2D^>Cp1!c7*sOasrpvw;?4LAL72`1LrC| z`ZxE{^$xW|SlA{~m`hCdrPA!c!`x4J+G&iW?&hcX)%<$%(yU4 z&$Qk{EKcRQfRX7~X0Iy`=Ry9+!irBuq1*25aK)GVI`7N zFwP~7&T~t6BUgYPQX)J3O9m?Y#!HVY%nI+^8bn}5 zsCp7z&PNa*OVli_!J$}KYTnLhnt8tdG77trN^Uk0$wZk_o#QZCSq@P_CT&jG8*t#3 zdW0)+I)j$X_a5U94lW+R#HI?2t|H-?eN|O=g_(~K1;dKkOZ=_S*|dd3J0ZoT2d=_m zSy6oTGX8J$vLC+qr#kT8vEVk&yoapYyp?CC5!$uGz{ydiKUwW^l0H^-;-zqe87tG0G&j%O15} zMc*FUyRGPMWlOP-3TeK(|9J{mFn9l#_I_SXa{JNLkFolp3_lF#hiCZVMgM;d6Q=-e z@AmY`h+l#Zpo~luvC;_oY+;=E_W|(#rJPFw0c_T}0SP5wZe-~LRz?dYXCB|sDhSp<1fwgW8F6m;*HI#?n~#HE=jJd?qXm7nfO3Kz zV=3KA-bp%t5HqC@=SwwK>vqyEge=d1g?#Y@>trAZ!~oQcUVbQM2msug;3wcH_=2{| z5@jiZM3Ns>izq^?Vhy-ixe@k>uF~x{H)0*kZ9vf%XOt11D2K-u$B$+7sd-KTKkLe8 z?aDJ9{d{vfuJ_qK)PejOw!<~$*vP6V`5?v?pB@D+ZCo=DByMJ>{^<;c!;H^M#Oo!9 zrsph1xr5zB8MtO1s;HIt{jV$jFG-96p<#)-O2)L!W{6VqsnlHYgA{4|h9yU8g+(?~PtMEAJ%t)@$9S1vG z=iU<2USUFJ*5rq|Q$QNkaf_4^9sa==uWj-^U9q^l9JQ#kO2?6wns%%%#63+td*5tWWwT&paB0tt4sy;?#DRQv*OiJX2&%{#d8oAK&pbf1+)t?6i@(R-pQHRyR zGra(k+2EW0iXS9pTmYz+TJ*YI9HP1ia^+dMiukT@q#k649+)6(7Tu^$w-d-#t5@eT zq)R*Cuuj6d{HW(jT~#thGn&&`4~qDTq1_}MoZPfsf101+79?H!T zb4ewng4@MgwtaGHP64YgcdE)YZ`>q=7rY+i&hcjD?0LxY0YHMQOgkF03Lz+3>}pA8 z9o^XXZuRZm<$$f(B8n4IMS*DexkerFrk_FbI7W>Vmom8n*3v^R7K;-qi}@AeuG75h z$FEolw;0GuPXXoL@k#OT1`i%i)*-04h6}QbTVCqp2L&I&>z`e1<<;I1Kt#liEbF>F zk=A*)&17}Vv}AGF&HlsA7O2D36I~;-jEvE@X$lLX@}R#Fxh#YBHMykCB6xE7Fu8}i zAvUiH_^Bv4-6X>e7(a4oBIo`!T!InnkxWA)46=AgPaa1oXwgzZ-h*=P`$z_~r_E5=}0Hh;ZldQ{91 zpB~gj2V*Euv+pDRT#i`PBNe&yG#?{qi8(*%pJ5qdF8J}SCNqx#*TAQuvd9yx#UmDr z)@zVZ`-|S+%mO-g3@I*xxJx)VD6+0}G7`82kx_)b#t?u^6ZLi6#!vk?K%UovV#cjf zdV})@F|*0kiPz@454d4pAr+&uAJ>kU#C66uT{sKB%%|~nI(`_qxHyww)Lva?(uZ}G zw@4XFrWUBL166|v0ve&{CjqDT+1Q|FMwVyV6uHh zSvK)lWUJm^scwsnxT%vTi35yo*RCY*f8lp1e{i;+t6Y#Qq zAXMU$9weD%M+1+_QZ6KX{~MkEvFQxe*1BT&YSrGzOH5SCgeHex4|F!xnh_1!zb(Ek zK%L2<`kWy7>cNOmUiURU4hmx|p-vd;iOh;e^c;1Ot4ykcOZxN^Hz&?Zt@0b_V`Wo9 z&9iK8)FHW6%dYhguUp$#zuF~wvckfqN@-dI(;%hUl}Rw~%}`GU+C?h^t;Ftj_r$st zct!KerEY)hnk zbj8w9yRjk=+|G*9V(-MheeG*rA)d!5y+_BV|KNj!hkg}JFnPG|IpP*{yuoqEUcu9^ z4*|>&)hrB->lC0sJSW9wX2FN-5?ysH=~O^t+|0ADsi~tpOb>_evMW_Z#CCIF7#s=8 zzr*j&dS9V^7BAJ-%}dkxXc2=33!DNdDJG_Fw48L7-3*-gnh9NN6;`i@CI;PfpilzR ziE&4a4zF+&soFl{7%Ii+6i07DOB)>5zA7r8s8V}}hu10_@{eBkT(_CJ@cgc6ih8>; zt#^K`kX7S^ALCpZ5Dz0hAmsPjRhHr{lhqg76y!oMI&L9az({sVZxmaW@3-j$!WY5j z(Zpl6Q&w?t2(RM@&*B2lZWk~eG=S0>EdoQ)uP|4E(e`K z4Q;7qj?B*V6i#Fgtz6W}cE25LGQ=&v*3J9Gp?hF*9wQ|$#fFVbX>ruYTV$zrxeDS z*6mnDJWC3pI8>S>VFS`W5-pSEs<~5Gf`8;GU;(JR$1(x%jSv5DZR;k(V`nMLN;UNu&{_^MQKZv+ zH{>pD>O_(a_^@22){kvpWyNtA;UwYY(f<-;byb$rAA9|5A(6Z7kxkNpA?P~Gt=8S{ zRn;VZx))eh7v(bM)Pc><@a99G#lfS#_(R8d{Y7LPBsgZHg#H1yIu$&jRB=gh8s?|2 zZE@T{fSfogA6LE$F#R9vGk+m`11)0U7CY4lZb>M;8NMNzvrHpeW^!hwGiyz)#C|e> zcw9@5Hm_jUVkX-STw^02NbBVhm2&nas#lN)KBMxH4g#qZ?L9OSSN)>~>?)Xw(fTzY zS}Wvy^D~l~UK(00msofk}YYjAO_<%!YR9!ISYPlp5 zkL&1!mnz^+;;IKZYqZs#BAS0jI^JFK^wOaPPS86;@MFu77ZEJsU(7Q$!csPpZxBFl z`pg{>PV~E-@EF(ySegXTfOvvwnYLWW`Sp?BtOGUFDc~o3{e#KKoHaH*-Dwoaxs}2q zH!?1;MzC)^AoiDCy5A>CH0>^P`DX(1Itmiu;$lT+I+D z+;nb&D?eVnyf|l5>WUzQb}jaA2G;RgU=^iMz9hJ@1r@=RbU|huesBfq1)ZPm$p&>5 zZOHfei}bos^zt*uQ%<5ZJUvSYxjq_6atA#=>Mt+heM6p@O5$z%#*}J?0&xwjtBx9#W98LjVK{8lE9|29*k#AbyJm{?p!2&fMhxH0(x$c_8#x4np_ z)Jq>SEWSky0K}s}#0;~J@ARzp7*A738-}&Jzv(f?IT>^vX816^EDBiejhIJ@@g{+2A2U5%mNe*XPgTEmX7i~)j27qInd-Yx z%omMx>*S{0I-20SD^hNxA8uR}iS>K;3cmL~M@5Jih=Zk>In6Mzo2K^1))A_7xoS3b zapLP2zF5Cy@_WC>Nj#`FCnfo0&2BdOFqH!cPZH;!ioNZ~-JfTyArF0H;p`t({)OF7 ztJoA@ic{RN%X*fc9qVC;t6QE^P%scE@p(G+`QpK&)aT=TZ{7U+R^JZOLYVo`)gek8 z9;rFNq1fPd#fdk2WHKN=Q>vo8q9_N`v}%>{IB-Fou4QRu<7=54OUQA&leL2~=t0!W zoiF^k8z+~vUheU?%1b@5{TjNO+j`*JMo9VKq;g{iQ!)xeMiNLH+|W~Z!wHb*Ja6FF z>J%+v1l;Q5;^1kWY(-W5AlqQGixDVfCiiONY|}YLrjlOKs5Ia~re)*wg)8+XafdoU z-EX1-jkMqsE*V-kvEJYq^ryD}#ol|zHMOmI7IR^I5 z=f>!!v-saYj>O6eGrg$xa2~@C3q?Qg+2^1Gc&Yc&rVEGV)`Lh}^9>7Y{KVAh%QNv$LiCFKRkNA4?yuy>`7yOr0-l zkJDM$%?ijmif7mXFCN)7mR_9{E7w6^)It_ME9nSF^LTAQ8!F1y5RC?J0u$PU9wi^J zoL4mWBcrqUT#FSDr(#Cr2>sMp<)wgkpDrE6h1;nN2=LWViM1v4cRQ*1X=xA_c&izOb8kMam)e72vBz#ndo{u+#Xwk~(I- zq~;n8=kXKb9CV_>p?pKVR)VT4kN;f-~&P^j=1z31;X4I(nWL*0@!*4f_ z@a~1BW1FcK@}_x&iX3=UWav#o)xf=1hCK9x9@PCeLQ4NLE9Qp=6RTIUV5Nvi86L{- za|$~8OrdJXm+^A}V{2l)%_pBE?>E+6x71p;r+m|Nea&P%a{-M!2GBs1msP z$)Xt{Qr$z;ArE^SK(B?@X8xt)z-7G9+RUrWIi5ysj>%Y@pERn#b+;W5@R;SLNUxGq zUu|Zl5$GBiQL}}@4$*h|6IWIJ8DBP9=357ezhQyRgmo*o+~y3A(SpPAL@F8Trit&0 zc=-eCl4toS-i|T}oWtehx|SBVQKUm_)VtrjbC1*jbJ)@$EtHwNVaqV++Yy%^&QbkK zr}HvQ>`Py|iZu7y??WA4v##Z$-Ht8NED+0M3VE z4{3gkX}`k$@=#d`Xh-~~=U_AS$7<|$-}wBb3&5+yBE|@q2X8b4;*6VlU#ALv!sT7C+s`ZN)j;~#{$9yl zp4rF0nz$w8gIqBiHU+k3e50#6O)yOxikQBRf#4$swFJ5mK_kBGSj<#Os@?s$ zCl~ZbE&Rv=Hko5t9F^C%FVF0g>7vHp@B_1#!BdbP)h6pZL)e?v&zMttp@8jWm04ba zv{=d36-IRns4`|J42o|0<FMXI^Uu`D7OR(#rMSR=#1o3)k^ZMwP^TFtcnz0q(_J=7fX*d-e zPC76j4%ygo&a5z`MBuzWWML0-{72@k%d%pn)lq{R*t=zq4!f*hdJj6^<`7^4lhAW{+_T>PZm=#g86V4(o=M*g2!4usgS0bRmGjZ6LW*I06KAi9m~XJAduWSt-{lzXY#u zy=ukDYv&<@X28 zaKYoZFewPs2nvJUv(sgqY92ymYfvbJtk|q~8Ii&xKI8RKTJQt(f_DYfER#?WLzta3 z5s2g=$ID1htKFa;F`+>h*y1#8I1^r`q`7Z;`eBFuinK3d#5njM43 z5@_unWs3Ku7m2RFJcBYMzu0utfG7`D~V2yXmT`T zHb-J;Ts4E8!LFRY^_oamEDSpBMoWM#$O)!?mqW9i-MB@lJuwB*LvLQ(Qk91@w)O=Gfm-Zshe(ld<0!VAJmT zk)fpckX9lDHHf0J4J99T-^n(OKgZdBF2o(QM^X?115u82$b4@rj5eOitEu?DvV*4H zJLHNN3?if}V4s@uLB;tZHc-@VST}&p<9&J!`AKhg@D-aUYP||KT1Hx?1Gh@At7!t* z7EQOMchR{CpE_jZ*B+;}b1HOubZo%&zS7XZg?u7bp#4;SUE&ka*+tWl0_!$08no6H&8&;9s_8&N-u}Ou-jqGx$-vmp-(1N!&fAoHx0k?Wbcr`yZk|rT-*3=$*J>N%*ViSp8 z=r>%+VLZ_gtg?J|_T^*<-v_kB5>&Z4?qRFsoHoZLbiRN3iKaBd8kvln93yNavea8E zmF*at%AMBpp4;Dqt;K`Pgr7DYNB8(ANckteXL0-FlMi}Kolf)}CCR1FWUXtS8Ed6^ zWWN&17YVIKwMBs<^`hZ5?Cr#a*{@ZzlD=kqGx?C0j&8%@ybz#f$ZeN+nGTwUwl(=c^ej^~F`~ zPP5U{rqW{Ofz*Zf8zqI(xNud`^0Hj{mI0aNu5 zt2z@pe)afbd~v3PIy};N-c_5=wS81ni$aD#B!nF$wY#XD`9%U;1=R-6^1T5{*CN%U zZ3hw3%xrcvJ$lzg4{?|UcHIoWTPxL6?l&Rn;-U_FTd#jK$EzM$;OVz5{KBN>M*7p- ztdu>!E{!;5HZF%bsov9yj8papGBiE+B>gtR6ZPXnQ6#*^c*6(lRCXq#qjSBuRrOJJ zp-qqH4RU|G0=dAN89;~UZ%2h-JF>%7vOD7{2%Lb($8VB6R?Juy%jL-t#GC>rX26CG zeh8>Fh@#PBRAhjjz+0jB^?v4!e)nrN_C_q|utzW>UO?CTI| zH0yuLSfWgp+KDgqRq*Q|XXlYSIbG+NA^9&##wa!+csf>pq}(!*!}9r!QP(GI+-8pJ zzKY=fnR{gGin5`4X}wqphlwh_?qVLG02+fyzW%0s!u?#BS1ZP$ApY)vRl5+{#cM0H zJI28T#CbFe2F|f+j+iRj@-@gV5u;$cSGuiZ37J7(NgQBfzYML5AKH& zDl72?AhRk&mSuXg!UL4Dg-b()(`E3pI)rL#qZ;SNE4g1?wTi()(cT=`OaZV5Vdqvs zQA9!((`R@yoty+X;kwsBjPNMb>4mO{1_TugZVE->O&|3iU#HU-VKxsux_yfp)c`FK z$hWOZZU|vd`7RG}&d6?nhu%PTNHsdG{E)4BO2%~U@{%r&eW>3`hhvHnUpDJ3tJY(P zG%6^TASHW87uPGu_M?fMVJQ#@lpl=G>GH>Qa-aR^^UPnQ7QO1!6n6}}TQ}e=X4TF| zEb`H0G2b0M;ViSW{0vAuViqgmO zErlv69#)+0ObJIp`PT*+&F=BypE(=pL}*#rp!apE*i4w2Wt>-51m+Z~XqRtPz-Eq| z0lWEu6DStAh$39si4^`qCls5TRW4lSh4ojhUJDU_owv0S{dIY4q{7xVns`h$U|-C~ z*OI-MAFO|8IEMO8eP`HL_Wf3!v59XwNsK}%MRPd!AD(Yodn3i{)|}MRsODI1Xle@Y zyt6u#>DTNT4@dQg5TfW&Qx=m^0&d_#FHRU?_db}#s{0xO`C+0*U!q7iY8Hbj>8)t31?%dDm3T~DseRPYPx*yHh|A!+T(=nx;2 zFYeOW5U;0?OJ~Nj5&q=W7#(&~JrM+4xYw1GA8lK}O(4-ccm#CJDP(U`FC4G!eu-SG z9?Q%++_}EO_dI--&T25W7ID#VP(p5EsHOn!KangRGVJ8EVg5#gkT)$NEqk%bOd38m zHFmMxO4C4Zv|>K=v@Gij*tvW@2;ay`2op&7oRd!WCft6^lDFV%kUbUxd4YH3Uluy; z36Kx8azlv4>FPRUoSQ*`??va-joc8@Mz=w zU_oAhCk&PNURk~BnzsU^bwA(N`Bi2@w}DkmGn#;v)gT*0cdQ6FA@~PDG<6Ge9bh$h zE~pk+ycivKDZ^A*-!f;2sEh z?5ML|F?`kUaWldhaxQG`ZrRQE)y8ge^xXooFqF|{s37yhy?VZ9&|#X zvgIV>n6oI!`zPc6&^{3l+k3=3C$1HocFe}I2=fgp2PtRC>5=*N#`qNlYS6}$8&2E& zJ#6}AtLP?M5n&gY<~^NYaS2y+NU}JJxGFlM%m<$mOVr~H{ajtfaZ(&lUITZSLeGMQ zQWwjNZ8geGq_G7sPb8k=3`6x~<)Bo-2H8&V*Eg*E^5p|<%WJ&|K?rCWA@645)oCOIuY6MkJM*TDDoT^HM)vd{x%WJl##a;~jfe}QyGVh4dRv?dLp^Q-vS83KC_ zraQhf*y1E#uzoF{tayA`DvZmL9c2Qj8FbE@llZOQiRjI}c#*$iJi)3RWg>_yYY8 zhKWxqqNOwP>D^99Ug?_L&pokf?Ckzoo`4aIv=K$ZsPM+U=KWaxy2EEw1^P;g@ecm6 z$BVc6IjecyMQXDyQDs7f6SAYLca~%>82OcIkM!^gDz}BD$k-CnW0s0He=L5qR;JwV zv@LSBIMZm_xTV0 zuxoR1IAv2bb@}bG;<;BHQfb4k&F$ukPPQd>1B_Xn$Vccd@H@M#JD+0M!xA`B5Qy-s zG_yk1fPOCtdFTrw7Das#``L(zy1~lYypQ(hn!BRfMpy=x*pU1IP^7?4N8}2~_30vb zi<_DCYaO54cJiTVN{KE`_u7ar)2ylTwOy|f%nBfnH~LAkqpb&pGe#QX;mO&IE)U4> zo^y6#z4SaV#&iLg$HWF)%FCcN-LUga zrY{FrjW1H&ejz`gs_{{sn1rc>YLax{#?B<%UnjzWW|=Wvx6iM zLL%V36G)!z>66SC^DgP^r*)$O?IB*lf)`RYDxD?O<9;M1%p(yqDf^m zj}65ZYrEE#zz~LTE=N#Er1!aaqv!E4Qa%<}*H#>}bCD)@=DdJdB0CvCNGTS5DPjON zfHLN--m)oDv?|&FflfM*K{RKa(+vZ++=!yOa4QKZb*JJ^sfj8-?fcHm=mMXyr81qd zi%%z}i;FcPVF#)Gn1~yE+PbXSbT{;%UMhvhWx9yvlf{qYffy`1aK!Lpr4}v}0Jy=+ z+zrx?z?fOHw`5%(bVAY{ArA!R-u`&4%v8NCRGJijNJ0pdilE{V(&kaf4L)tKfv^x* zn7I}JhFfDXH1H_f{Y^#ct(I+Sn#U%(DyQ&wKD@_2xFVkj20AVU#;DJ?8!s-> zYk(7d$B{5=49uIuN}s+Si!^wZ_)>lN_1fd%MjB0n9)zRzM~u(Zg(P6YdUKFU{BezNxqU?i!!P_F zMg`*sx*f7&G)X1t%Sgh)6fs&xZZ0&GQ_qQgu$?(C=2qJeSN*{xoL3&c9I7kfrMxYT z%Ba!(0<9NgYiVfR*4HdC!B>*he}C6t6%0`bRgig8WMvF{5YJ*nbjUpDWWn-%X0GSW zvwRRr`0QAL6%U!R6yqQE=|WWL*nHkXv1wk~!>|nYB5AXXxqg%jfWtacpuZ_RbgT<4 zE`i=s-(~yAy!0-UkRZS6cq>5*Avd+hLu8w%&76O%#*%)JY0U*(Q$`MgJhsdhKAtUy zeq2d;xNJ-Zs4nm;?^idE0|~>BF5Yy$2XH0U1p0m}lrVp?s>|>==5|hmWsD3ZQZJs6 zoQYcx=`-1YO&>{@VTDtpc6iW!+I@5n*~g!rF5f0(N20M>wlRRAh+ZpTk#A<9s!o+l zWet*CdRIUHNXf=wy_WCo+4$@nC3@QC$I zw)@Enbz0dAHexg7)J!>qKeppW$W6+ZuE>4ccW^5aS7}%K&LH*l5Ayh4K#t-?%H0>l zXrH$`kCo<@Cg0a~HGOB`zj93dqfDR5>G%LVRN!q@T7Gie?q4_irtPc(VuDW{{viI7 zwwr``vutI~zn!bUN`G1)DvIVI+Rq(%KK0pAsqAP{#ylNk6|3|ISvg}xzkx(&&S7)B zqIst0-t#ez^)7=i55F^Xb3Y&B{Aam$C)X0eyNe1d4bJ*)2_wo`d7X%NzSDwVVVxyHhax(GE-+6MpkYJ^6HLhSRYXCNV{D{^}!}1G!~v-1DR-W4zRS` z`0UYjDbpnorF-}Cy~GMX^EvI}`QN4b*<+WW&msk`2kC17&Ks*mY_j(de%Kb=uo&eR z@-=uU461H!izHxp74imq&p=e(xa6RS+F8oChCnAb-W36hPItPO>mH=LmzuYi#-G0X z&aldnfm<*$kUJvpbX_iwEBh>cCDnzk*o8j;uX6ahM<#4kCZ=xi=85W|D}3;46b1Ll zyE>=*H~h0XhniSNp%c~b41?T%P4yj${2!GcINlX?&HP*9b^B)j9~$eSx* z=`V0k(LdrrgWP1WKtI z50fUe!A%qvN36FZ6|#&n6?oJL&5gBT;!Pr{STc zbI|Sz)!b*xUe8Ze{k}b+Q~W6XK{i-iVnWv;x=7fVbwg<|^z;}wC`gv&rnsNc|Mt6aul~unKNVV16RbHs&sLZibu{+}ai_YZBzEj__(tC1#QlLz^X_yNs~jxFSmz!}*ij=4WG2r^)Q1X>q)&78v|0e*N*VoD zJE9BvaTXrQlKKR@&~Ac=D2bb2uC&<;JbV8K`2U1P`Ak?MpFHa#D(T%5m0$r`3Th`9 z{3^w8uMc_0I@uD`PQt1W4Vj%{GPxaO?JvQH1`22a$1$--0$9DHx|wz0-Ab_^Z-<#D zWrVLKb}JZF5P?~>uvjl2N^01z8)U=|gIxh?kGNvqQl62^sL2NMd zupNkZtfcWE)Ie7d0AZYap*62bhQI-mpz&3h^aqJ*;Y>naW6F49gYWST;>W_vNd){@ z8H0@ReWpO$KAD)UJ+$d$ZTA%x)2qF@oMcF`3nU$+6)>%!$neTC#B$KP>;Rw)0x=S2^(}$U1EXqFn_bX3D zItA7;>V1G_R@&$EaAtvBP?IapdVTc>Z5ywtgVI%6nM^S>#+v2?Q8>a5vTT(hClr12 ziYJT!c{v^updh2Rt}mdG#dY%x2*WrIPvRliZ3|07rMhz+{0v@B$ySVcrHC>j6ANnh zb%hS%QDdW-u9eENq6GPS=Tn%5KQ4Xy&hR1N(-0j2P|N*01GD8oDD}xU%zUux*s_M| z-F?H3vz4u%;fK$O{f+vT1a|PRj^)>;3Y~TEkFDR8ndZ&w&0!ENG525wYoZRxDdB?( zH%>jI$fp^(bW*hN>2?8!h89vqLSd6h+SpT|naTC=IY3*4dau%+jd1X<###9}70_Z5#s_>U#e|nl zh9cQ%mDp0RDNO<+cz|MgVA&7{haLaiOOjs2MRy#x39yHVftF-VzU?9#8%lsF9}K>m z5;uTFo0$nL$NQQ)smyS@?Ra&~>2t4U;?oUjojg1t#AkZX#skB!oMCrGT^?+|8+Z3x z#SL^kTP{oSC6<2*KP@_p!3EY{BP*gP4Ve{Unqc~bM)*J*} z26hxGW|}K*r%S_Zn8A`|mVFH8%b&eF=XSvazf~TXU2)Hd&YBB>3tq!Vd4O0l2pBv* zd3B-B<_`WY*|w6fb{4Z)x`Q4}?(_@a9*k8cuVe?|jN0%;Spd#RC)0sKY9f9Or>CUVg!|kY7APl; z^qw|m5N$eB25~57pAZSJgd)d^IT;v?Sh>E**re@LfEW zxdSwAExJyThZ8870$*>Mz1-$HD`I97_qmEkI=Vj#it>-U+5l*enMSMN;PoHhpEtY1CO7-J5XTp9ea%`C69l?(}-hqeJT$KVHzRxzO@nWqF|9FadVUX;V z_^r!g^=*}|3O^wzH_YiEkNpH8&}u`Oubu5v7)MI74US(QINO`eX=WPnp@pYZ*RgI; zp;BAO_2EG0{bEs9jKkD?z&k<#m`+8;W8-ahdrCysS$||bUKgS5nu#kf&NEHCZEUR} zobm+@>Qph(gmgo##I&R&o?-HDqiLb31uaW+QGLSQp{W_#VOd_P(sXhUb>vOB53ujsIr&egO!)*;;}{j*SM(5%Zs!MZTml7Oe)yHaimz6rGsxxGrFW|zQ3 zA4|sB46jLV3?Xa>%Ga@Bpf1AudZcAmeyF2h&@dy{k5!wg@ruZl=Vmu62Es`Np_S3J zu9n;fG9Y!4>;ZvV!@6$<&-@u2F6Q-01)eW zTmV2Vdf+?5N)nwdOk^{HzEV1P?n>6XGoN~KLGSx|zeeX2?wqI`3)@XeUk-`CBSp+H zeby0??nD-`=18Z7I*ttbHWS=zsLwLkCwNbn(R1G!*sip^09P|end$=Kyvi?{I1nG% z^y$-VqH82IrJw6~z4>^MW-(v2)wT`{YvJ)j6`7ps750jX$e!faaKElQ!+)J@xo$+@ zsUb?mmF`GUsr?T|-Us5_Mh4s2LsuVsJ}Y2n_a!L|{c^z1<T#Q{<;@VL&G4v`rYH1`H_qhZ-kE3Ci{pcJmW&G+w-13| zRZEKu>)P|?BILg_$PWiJTv<2v=gyIgFyL|=k}c6L*OVuO?0sB38o;0f$k%pMf&;n? z-c%dRxqb2a&H#PKaK+)9Q|a;yz>QA#-EBlO4@vpXu-q$;B)aSzT>k17V^lT+hyU2j zk>x>WRrBk>gvPjZ=IED$%uHPJY+cU6O24*Zi?t>SJU#Wwfc|kEPu;>*Hbhz%xn|K; zpAcrAa7p%!1z9hNXN6ZThTtkvnvZAO_cbV3xnkb20yt%ez=JcvWedUuCJKH1J6g(} z;=xu;nCR_(Au`0zqxan#yZX$>D`ZnQ$?k$UtAQ|>-FisKWeCxf7d79_41p`R{$e{; z&*I{CzZG3Eu@e|9zEEZy%QOIau!5FXGgR;?mewq4Pj{fKck-P3waHi~_S{TLw>OSZ z%w{I)E#>?wD^x=^Ub*{sTE0$RExrL>xzhOM=2MKk$H6s34Kf@7B-dOZ7F{-2@g*b^ z3LuR^b;@oaF6HE4xD=ICP(Dnea*}0Q7@A_Op1Fl>(Jna)nOGJ^^P<;XTjqnA*b#;g zAL*vKG`D?FdseP3S~d*=cv?)LaW(7R#tW{FG4mAX+fjbf#!)cz2CUaAdA03M>N3uS zh5j7$$e$1GDm~F8G4TvZCC^OWj_$8a>08#Vazu_PG_RftTo=v<*HuJy1ZnR(qj?sI zWESBXi{D0K*6b@L@4mQPqa2+{g`gY+M^k`29>5ai9w!f_u9ZbkxpJLd`(1cv;z!|P z0=ZL&X4+TTS@K!hX*sW{lxEacic}=ae5m{71^DZ28f?l<$?hvRC&zZ5g)72Y)mfK` z_1EIg5FqCPPoCCl9v=eeo}M2KeeZ)!(Uuw0)sUP!5SY=$ce`~UZz;UDY2KQyR!=SpCbard7V2C|(WOA`d0<8RcDR9v{^#NNs? zKbBMpp&X`$rR#3B8*ojO%4Z+Jb^2+ah?zAtLYzXpFGRYp*`FFs1uD}VP{qD#BEx~cbkXWeY8mSag73b;7#i!y|V8PJwiQM8ykAXdF#zHZA6Wg5dmcCKiY;NJ^CzUXfTi+Q*{&fGL z`+SqK;T3^ft8e}NJL>m_F#GW99+BGn`pzjs0a;>reS?>_JC0<&~2f);bphtJIM?l)1NdLHS(v56w3)K{%zkTT)gMDX6V{(dmT%ebPW#V%fXCBA9^D8M~aTjy#!S1h>`sF>wFzLAh zgNhb^u|iGevhovvJ!D2nKu(ui6d+eRmaG0EX@{(}kel*ghZbemj7?$wI5NGZ?&*1u z8W7nHJi2IcYKuEvnSS<{+U8I&KW}NEQ1``>x~-`FvxtcPBo%J$9fY-sW);?#Eit44c=?r;XVnK*0>e8 zT{4AlSrgmjf273pJcVV@k?|(#QH2$I5=BWk*QyNr>eAQQ*R&i7~vx ziL3+R8Jy2|4Ja-8i)7d{*O6FpnN0gt*!Z?A7U!Tw$Z~GO=k>eHKZQRP;Io2|yH}K6 zGiE=wKhG+y+Zb;w1fX_&=(Qwj%H|qL!{{-C_HfV$IjtkTFRw9LXTeO}VnQ7ycpjE< zhB|QY%1*j}8*s`Pc0}%My{Bg-+MK@`_f$NjinXK?I#R0*-E~lk$zAO$FTL53TNFF| zWbL1{^+ySavsn%K>iDy@178%JkAa;auQ;g0?Me7;asByz$b1XWIn0qxxv zoeZMt#`!PlEe7W13SX?5eMIcNvi__tz4=d<=i^n3UXNW_P!3P8YBm3x#d+(mdi?J! z&6n-r*y~|MPKr6)e^$3A_NT(~rc%4U=Ack7pYn1 zBNVgbXe_h2g#$m=XH4D_O<`)jnz?!lS@#Q?rnB>cF*L)Ef}XsvjLW?QQ~br8T3u^= zP>}`BV?^Xi?-EjmSXYaFiO^MVgGjilH|a&mC)mOlp2UWl50@?XL^Uq2U#M@0(0R$E zsrQf74g9Ur+##f3UdpY$qp7_;6G>o#$uskNLf^;br<$ShwbjZJw5B&Rn=1zOg`3{A44fD)K&S zFqg(Ad&GnXL#f=Vth*U(0`_Ac4s`$D2tGp)d|fuRWH}v*a%hH5A_LBR_lEx<{>Nnh zLEA0EcNcB9Ac-|PFYhGQXqfK;|M&9$)M`0{A>anb5ZQ|Bg`XY=dS`(i(&?c8p2uGy z?fyNp`d4*l)pneotqiDqF!yKSzUa$;^@jiG#lJRuRY9}A>VFbA!4sM@~ zrrrbF&l3~$K<00t7Lq|3=UOS(CwUvOB<(b=2ZBdIA5O0ZELL6q&VUQpNq2VPc>Jud z=N6Tl6<_^H2v$67eA^bEY^m;_y6Pj8N?PfahIbXnVu2)Ia5V{Az;bOn>|5F1wH9Mj zPUN^>17b`uhh0>BN?mMsghH1^i+jZsVL2eaRN@`f%jlIP+1*HKg5Gt|1(^U(Dv=aeCPM0f- zSkmBtu{kLn@G@SsVpyu!S6ttELMS!IeBVIH{e@_Z%AZ*OAa{+FD_1J%1CnH{U0Ek8CH z9Ti?5v@Oo7hR%lu97OnIlXEv^WRjlfj+83Dx!WT~nd#^_aF>A1W7<@Qi=Ta@S3dy){gETu9#?~My9 zE$z7cvyiCef)eEIJOU0E9dAe;t2RY0DWgI{LSt*+xFyYy6*HfdJyfa>mGgT9WTe>^ zp8wQ&3d}8E>Tq(fhJ_}J>TDI)M)t(FjaPCGM4lUX9;7?UH{1auaROi<*%F%uqBL-^0@+9;#r5~<737w5v}ZG4^%w+0t_^ou9f_L zwA8&J&e?Nu!sf5zRQg_Ym4IBSf}VH_(Pd5mxqCTmz5WjXr}anS>dg zRen5Dofv4ZpA@4$Y%tkxanGL4n(mb|O=)C`O!wteN4jWO3LVPY zbbaT}PVkjUv*$&9<`!zw97M;tG{;4~>`>I88A6~dUb0;m%9bfKi^-LtWWD~C;nuJJ z(a-1Kb^pcRn=#YeqioT?2tO|WyKek{O~feqd_JJmT)2Bb`jq;Ff#J%p-x+>Z`Dzv% zFrad1ARTo3(_GGx!TCd%Uq^S^{VDw-2?>-Tqe>0&xZY5bku+otD^8>)KHz>k6Zr1f zF;@@Z*mwXmbpql^oCG*2jVcL+bdMA`m7s>*$sc4`6FRf}FEiC?{?y+$npZ%Juv*jD zmtZYg#^965a5h?>AvR!#ST?bNdhbY_&JC*cZ{q0Nt>VM z{Ru9w_wTwTW*Gx<#RHJ6wY6+euD5A_rW6SA;8YBXFd-0VJ7rmMq1pF-9=l)c$Wy4x z$?cw|9J%D~*KVQ;BedCgCdvZknV$p92sHGD7#z`*%jVV8`lgqvg&Twi*Y0lztJW?T z26DfZYJXFj94h5)SqwJ;-f|uoM6)!{4^WS?8`%potik&pi!rSBjauJ@bX%A{W2ieyi{L=$gh zNZ1SEovV8N@+uW~Z z6Of$6PZK*m@c}=J)c%H5YV^*}3?wsADrGvt)jg!G&5}12mM-61)K%~N&M-%xyrt z1KykT{GK|2WKGjDUS5_Wlu|a5_Z5;*d!jl+^0zd_>h)JsISa4dN zZk|<=D!Hdg6Ed!b87doNhU_A`pNk}~%S4^mzk+c7`Q11vbSI6gmYC)Qw2*XI^oq`x z5RWj>M$(2r=t7Ozia7fgk=%WCbx$Ow#QyRT?rZxJ>5}&Zzcaf~4jAB2bzxGNHUJhP zqUTS|>C-pG@STAy5tv>jGt=w(D77)mdIeN-((uihsuwp)X4&O4pa3r2CrJwkCqI#H zIDPj^vR!9=#+%JRqLT~uQa>1nQbzF3+e%Y=tQtt)8LIF*2-_3Bw(+sceYHvrQu}KO z3F0Rj0+d+|G#r{W+5X;D2NMBWK_v=*0jFmPcflo5kIU*9O>~ixf{|NX1?PX0dYWr~ znQa2(NoA^SjQZR?qKEvr%3r%(=w`HVt#unYrHTY?Nc5EY=AdSL9|(^4$wOqE zY{C*OLMNoo)Ms3KRPd{rS9^|}JS*S>m6McQJ!j*@XZEkmsMLy5on8Pl1IE@t$OE+qqRo z?S*~(UG+me{RgejjQufZ=1kDWh!61>T}PL*hBUtDrYM9c0cRpM>s+nu=n~ZES}bE5 zfBTLVPLp6m8br&gynp+n@<>v|R}b$lz0JYjwf$Ef|Lud=|4L*3nAd;1;q|l5jzOPa zI}V+=YuV)c6{laAdsd>CH;~7{j9RaGD$vOGxWDBbdHgnsJgg9sSwRy4C_M}EPX3zd zgm%~J_Cl3y=!eIxTrbN>^4IU1b_X3Wb{VYJ}cEEB>yoXwu{TzMfsqO@O)OC<}qF-Rv8=~W8JMX7It$%iw(@7c7k zTb9A=s?x4T1LY;YGtl5DyINBDf1&6m@jiCez(5fTX?5Go8|2v}PTI)`7$ufS;{S+uxjOC!@R z?XrcDrj`FV2Nz$Y200H)ID9))Dc}~jp9;#kF+xbhq^r3i{P2!6WV3;12ECo1dL=VH zTv%)mlX>*VSK+@z{%;>xGD^d|;)}B3aYgz~s9hT?dCBRR1fy;TFQy!CQnaNLd7Qmr z66Uj`SKO6!HV}gbD%>6dDrh~jPLy`0ui+*gzolHdJ5a>)N|H4l*u7grEmRYqAMeNDN-wSR*~=wFukKlkh}HJ}z(sG&h182;2Db^q_| ztC{0v-Z08za$L0@y+#PpXShE|T8l#?ygLm3SNz|4_=kH5)FQD63YR2p)QvyWCi!>7 zq`&KN2YdMT;_FD)iPy5O_vO$0ukgQ>@HgIsACtHAFfaeEFXImlnl^L&K_?sp%i!t?WtH4@8T)%RSUUj!RCmyhM$xkDlYHw84Z z!Ok9{=D9pPr(cphZ^ZW;Z)FQqEkT)!rx8y+Mdga{pi09+c9?U}rKBq3WTBPS;SFFT zuL&>Ud4MB;Z6cT8T3#iM$w)BY95gxrct07d40_PDZ?~Y{^(E@ZNxR0jiO$>-c+jm$xgFm!6IdA2 zs_XeKZ`%!6{60+Na@U{XwzQ(enI9Bx0 zZY6dG7V^Om3~K=cfdn2hrn09S0=4ps+qPq(-uu}n_Vb?jCt?meP{%lR7*zo9?)6-V zqT>)m_zc@k?1>ff0vaDsp&@bzhcAr=p6SyfEyEyi$0Hv@P@(BVnkT}~PNrL`Wpq%Z zdS!;qACtm1102VUE^mV}{q_iCM=Mh308g$CnwMPm;vDL8@XwboRM@Ng$)xBYJucbulr8SlAB#EBT13|7ebRGSpq}~Q84RpHcj)g%4!RnS7a`HX+Mg`xpJHg7+u(Z9G+q4>LYt3T~-}Fxn86wLN=yS*IDdtZ%UWp;4ah0=*yHhBHN4Bli1jj>)novr9 zNW?A@ z{gW}F^k$>RT&A$HFA-aBsx9-lo2M}I?RFPjKf;b+o4#N;M0Qu-ia?PrUbKL=CrcgPVoCVbl<=BF+P2!V1>5 zRv%kH_z&>Y{U{_Z2#UV;-L9RGjPta1AsvQa;y&NRi23k5g_(kr zDPo&4-f$*>=T(IbU5VN>;Jyvy_(L0+k{Y2Y6 zEM*;40$Nc<=&FGp&};#m*ET#B^R78G!B1L&7$mwPft~OK7vV$Xvy!hn%ThTWGVR-= zTm8gd7wOU<%YDiC+*ey2owmhFghH}oW;>rIkiraS5y(8;TT0Nhn#uJoY^(-KJ@tE6 z*6xx2j{LBfOE>`STUPwun`Mf^y_Zwo_i&MpEV^?zsRRSt1^lEG+aRkUx6ksJMC}p# zFyq%TPG3I|NRE%rbbm|~68Jyty?0bo+q*98*~PuBTck?SEmZkt^ zq#R_a_}1Dis#6LcZfUC$iskaQ0~U3x8@4C%;~;e(i6N1pg;(~v{t)8+^-G_0 z8qvBy(ljCf5Db%!{q=_H>b~1ic^U43AMyaMn7DgK#m4w%XRN{Ce2=hP@%ZC(OE`MbO-!w1hy=;m%Hgdar$1}{zn?s>dvb|$L;CD1UlHxQGrrlCj;B84^Vc=_xTh6c-$Gt_ z!rqJ8AzXgx6)a7RZdN4fxKeDgdR1W}yWGE+Sv8TvD`(R#8#Qjm((}Os(r|7D{wJh5 z8w(k)+qWg0U%R7{g)lbq#f;8%yUp>WO_wYwEYyYKTBq@#o3Rv|rRN8eN9=jIFrtLr zYFev+8BuN$n_odV=C2JT`^$r6G&BO-YJwfj^|m$s)czsReNsXu{m`L@|6h~Uf7tPV ze)#<#HkAL(3;q8iAN;4KT!%~BNBdh(E{pQ-=S=BH>AinoQ~yY}G?nl%&q3FX30WE= z@_cnV2b&wUZ*R#iw-r^@~;UA zI@y0QeKv*{@_Dhk-T4-UZ|&2ubJ!h_ujq?HqF~#?;k51J825~^x2b|&Jr;x~Gackc zOnuxc=X;y-WBu^bPO=cR8{JY%C}z9LwAe@GDSK3K7t)rQL3>z`vmSHk6@De_e5=Q2 zk&CLY*bAjHF9{>uzAk$F!|WY;n-05& z(@|yJK!_^uP%c-ULfmM@F@31=C_qc6PFoxJ8jZAwg=wJF0rp+F~4Q(^qPWk}8Ug_m&!=mMG zxt@h~DMX=Yi^>eFU@NMSu!S{YW%Y)%<;QCMOv-yCkXbroZ+}dZp9KaTSUS8*wKt~L z?b&)g1gDM`zu&51Gt=tXs9?kSb+ zjn~^7PS=tLda(sIS1zXeWF3agCzzWXJPNmMH@aJ%+nVUAFe0R; zFQ<{&Edf4oK#)#->ZxluAGL9|NiFU`&6b6*^hL3MM^$3gh0O2{KqILbgjP{bZYjm! z4g^RSXwh}Fo4j-Un{MN^V>)na3|9bjM|90qJN2y9hFxW|`guK5f5F|ehCSo*DC*#U z{BZhzb6Wj(pZ;%1%|DG=y3(+yEBTl+-_OSCbP{OI}HoX*I#;C9~ zmZ9e;&UwJimj-|@QX4OK2wmEKf%=#*q_*lzKUr$|z-RcrIek13dwyxLzUyWa)aQXk zr1aph=|jGgnZ0r25ee6eG6La2OogLGo@Z1_I^KCJZJ*yK;%aGPJWNBh&J&D0Yy%fMD0;74Kq7wgf6L zg(wjaA7vNeYrZrL^B{id7D{g!1moQr-~8@3;OEq6Em5({4aY#Q=D|nPRt!#>u*SoZ z`Re>{EM7@zTV7v73jle&TOWh?HBVa7b!mY{>FC9NIulsgdAUU5ohYtJRu;9vLE8#V z)RN!ySW%UU?p*=JDOkUg5YN2u$E`4?uJ6%X%?l%$g&}w8I`{3~fA@o9uthI)w(jfT zmbKf2kzvamQ$rdD*w?3sO&U_ zW$mB~g&iD}f2TasE*J8U)#MBSjU6x)x}%GH2rH>Na#a?ibh+tuoV=*-)Zz%D?K%@q zje8zm!xO;JOkuC;l5$!)0EPdirg9!4|HJx=-Sz1Dsg49kW$pUFR6tg zOlngj<_cAD-^@7Hc?IlLAUj6@14%bF1yE6vu8BA2lh( z#)tJ0P4Oe#Ec365LgVQpM{Q_phi8r50Cxh4QSOy~VY;5XI=s|077Q616>6_9ZDRiS zA*Ipk`5syYI2&5~*i(zau3rFqzy_0( zD0)q^Fz@!C%2&IA$4H$3tr4WFYjJ-uf!{j(IlENrPJQg;IowEr^`4L7U75@&F*7Rv zXJVCA>qDMGWe5G!m)MqkrpK?8v*ivkJ_OqO7{ld3;VSZ%ajdKbpCx$oNgwIzK9|U* zVGKbQ`@CxrC4=sx0WWMLV`7U2DDAds=gpC2zRSw+G@qG|+ig{KQz?i6{1UaA{fKd( z0SKQA-AkEUN%+Cpy7I=@`?MOaG>VovU`lH#)4bEygeg9Iy9r{Cm=vom^|;YuMYrgh z>VDM@?F7S`2+IQ{6POOEXtd|)ANvL`hgXr7t}gp&720~eKSnhW{Q|6Z|2{NnZr3Vp zhADWQN@Vwr*#rbAe{nhPk;&Kt0}L804>;6eg}Hnur;bh-teZe%W%49_o#1e|goLpJ z2U@PJVvDg^2JYrD7OjE@SZZ2#f}_I8jNl0AHxp0NYNGPMTaUk~(iz6iujCeHZ4L6# z2gbuKlv}frY1Z1yva$eH1)Z>o^`WWre37$p9vhOrfxb_4?G0ejiXIPwmdf*qJtLLI zR@p_a1Rb(gj=p>2QApqT@Lo3IQ)}bZT;NdX;C%4{2Vm@OntFN@Ju?XnNKjF5%V}Nh z8K!S5c8s%>2JsIR&zFggqw5;^_ruK2QwZcE8pT=a7P;4H+35y(NR%s0FqWTKYa#to z8u7$7qDwACJf8V+)?Vp!x0JiP6SM}-^F?ih(`eKOZ{t*1@3p>ixA#CQm$w)fXvNnB=F|O#hr2xroq7alTCh92NXxPy z4)=S@@>PCtCCRvO&37_1NAR&T8$HM(twoU12qxcBB=Q(7x8z@u0Vbw?a>W;Jg+#n< zB(BX3zFbhv)%qwDZb>gyyok8Yc{1KP4%wSN0FRY1q(J|LE81fM`KXr#+Mu*edxN}* z++Vv5qGcM7mpW*f2I_M6t+)W?1tLuo{K6J2AJ@k=iK1-BRFvY4R*FK)tX&}o9$>R@ zccKn+qL9JW_;X>r_*}F1Q0Oy^W>QLkzSA;`lPV5mK!X{z{fiHH;g zXN1`XwdFM}l%y5vZd@*sG$87og(Dg^r0K8Qhz1*CqoacgH_&(1&UZXEl zD8-w3cj&Kw{JSHa|8>U;8?~+Xuus;!Rw9e2opLF5Qc4@5A*)b*or8&!PT=sw-)sUZ?1)WiV$AS;k zn-VutnR_<0fuyzC%7stSgunyg*Syo0ebGkiIVjdxAR+NWkOT68VY4wgWcG?On608w z1uu8+_7CCm5nK`W;kP%$!i0y(yjOK zv1aP2#B%rX2a!DP^-Y4W!({PQ`LFM5h{v_ft!8|kCNHGr`#WFYyHORO$ko*)5cq*E zSc}33K9!tVUMl05`P*`fljt;Flv7Mzhh zS71@+WMlm6+0^XhETLU4m^_zq^?llhHPWr+i!Lc+W>6KUZfSG(Fr%q0O8|fp2pIxQ zuSpq1_v!!|-d37-;?v%~-kRA~&5@snOcM&vSUAbaMWkWILl_p|bM& z=~m-(K0UupDV1T+kU!w$$DlHjj^>N4#MYC?@xo{hSIN{9)8#7`=A;=7(~An z`W7B$2zWqylNY9Jm180#bTO$bTT-tPLHNCKkm=M|iZ?Z+_f$(S*0&6?$*0uC%zHUw zbnk}Ct@Kt0Wyif9o{q_W($P@mV4H?$ObGd6>*vD2JptV+tsbrLDS7rh?RrRb3D8 z`vA`MNUbsVJk`JptYD<175rMxf~$UL1mQ|ZYxLZlX(<@c!s~vzJJfFF>Bb_>$w*yI zYS9jzy>?CW!Ci#zm=-C$z#`~vSP00(gE6XNK9y<4e1B|5vuR|Sx_MR(Whe9HK6ULQ zgEUcFB%xO@N!riq3$c`GjmRniMS&!dCE9F7=U*j6%g1l6?Nf>Lu&Kwi55SqLD6k^w z{*#~z{}TV$h;)=bKMi16$&%}#(mzB7?c^%?5Y zW2F|Igv7C#{r4nK+nMbA{_^o%smZm1xK*gIl8g{I4_yrm59puR_ILT-)68YsG#?I+ z6&WKzd7#^`t40L`2>Qi`fl^`rV2gIkOb-K;bbJ0M{*Y@$l@`)fpCs^G%W(!_a4Ucs zJ050CV}tn*l9FCZGL+b1JACmKyIM{UQ3Asr|I622Mur z50FKH)@d*Wi=3yWHAhIWi#Az4R+HyMXpWj=$H}Lq^9|}*Ob7CFG9&FmX_UJ(HV&ow zYX?$UOIliyqNe-ptOOsd)Oy1eVa*J?;e-M*@)C^knTW2ljf(_zHkvL*=NCb*{p@oP zEp~kYJ9Rmw;st2GX3YZY5n#dbKu2^XwS5bbDn6f{nH)rk@L3XNBe(opOH|6dzg_ga z81uUB(4XKlOm0j63hM-%T@y%w`0+9~?P>D}u8al1k4ggMz(mVgKt@lD3aa1KLB{Mk;?7U7A<2kggW+r1n2@0gEZW zhAi+2Ti^1vJCIgg*uHZ!?y_N zQb_2$rB=a&P_Msw#?I)kwV2Q&dSh2$k!kif#M`-sWRRo*f))bjAx&oj`1&UJ004{g zB3|FjNg<#-kI=dPpyth-*Q*-~x0*Cdd#)(F`gGEVepM+6Urg~U4ZfIfImBOqnWn2| zi`F18INW0~xFN`a)}8cwJ1ETUfMR~^5%{1u2JY?;a{pwNk*%@NSb?WkvJzh(*qWc^ zlGSSerF>JJSabI0^iwxxdQbew#Jy12c;rs73(+Tc zf!{14W0g6MVbAA2ayRZNyKI*fnBrHB?SpwoI+m>tPUo_jFh)wMRlK2d>mY z+&>NI*Z-NO%`y}}(LE8T6j7R-CkdUaSm@k_VK@gc=hm@AwVFu)*5Hw$Tv@)*7>dxi zZVq569^mQ3xjBzQ-o-aBX#qp*P)>ZvePa+JRlUJ&W%&Ia-}T)% z;fX1BS&d)E+@J*`Epr>BAP>@?qTy_UWggC^vvm^OObbln4YUqdjR}xCcfM?A_2gc! zDWz&jr@vkE>zxU+Aq6Va(aJFN9M=@AGb5OLEVY`A;Pg0M-eZM4b!&OM z61Y5V>mb3zSBiL#=v2eQokd=EAf*5IKchzE5q=Zws8xO8YLr!6x6NKcr$ zx}igBwoGFwU;9ymUR$!!q#_&j+C#?k;)aAe!QQUf>rQ^+?D?2ihQqVdIv<*+@=0hq z2AEe3zh32+k%hEY7$=ZRax-$S{cPVAeaY~6L~@8r@$`MHY^ryYhg_}mAXnDSg2JBo z*nPFFmWLBF&8crbP*W+7S(TxGxn0RIvQV80z)cTe&O`m`C(iby=P|P=IFMup;V>8a z0d6LdeJN?y#2#3~3bOBBS*Ay^A_nlWCdl16+!^%mBBt6r;`VGNv86Ms( zpR-xP-Oqy#n-5++Fud?yJNJH7Z@6TQLvtx1SP9p#3`g@gK6uSth>R`tUV%)|Rb8N} z-D=_G*T3{T5QwXO%y7WkW z1IbfPUVt!=Fi*B{qQ15g;^Z%F4Ar@DCO(JLgs5Dpj9%F=DE73OpL!gV?+=rj&`uIT3`qtrDQ8qYGm-m%Kj z<41ssB|wFrWjEw1fzy2Yo64)#Raa9-S_eW4rSCYXMJ~XNTW7BJVSj6jNow;-q&Clx z(wmSb_h}X6Jg%A)AT{k+!W-OyW!jAja0so>WS!4Bdve!Cgh?)YOt^P}elet3_2Uhd z6}aT~P=%UBYAG1CyU&k*M8uaJ- zBFd;8G=O>?6utP==FF=7^A(muR^`6l>*yXEEf1CR*8cQ+gFMxozOkrJ<`DZpW!iT@ zh=H%fin4CSyj|W{2+Zi1Cs4DQvbh2;(m&F7 z+j+&kL}m-QxqjoGGuhB?%^z(lt7h*HU)p}WZ+~ufw7x+7Av#Q{XpM9)pQ~ADwdLtB zR-_Ej;f!z94m=zCM`+qR;z-PlK-hSusrOdXO|+u@iK`OLLR*8aiR+biVRmal&wW32 z%g-a#1w4tK0HnE{-{a}ri8E3z>?DBPXwGUG=J!aegM63ubRB$1nXijoiJc2=?O*^K ze)!Pm`xjN`NT*A+ecox3`$wC?`{NxL@qSJYXe@4iSE)(B zdBMRfkQ44p#wHdW1CTf!qmm<8a)6@6n|p4#IoX+;$d^E39HscTv`)IX_rxW1{~lQf z9U0oJ5qGOhW#kloj1An-G=FxB`hhh(*8g_MePttO1`rhVyP*6a#&cu1%pMe$l$RDa z2Zn;DE!qJNU%ILg%0L-(yxDVli$Q6-v|QDxA={`IW7Ga+`J^J$2~{1BKmZ61ccb$5*Yiz1KzC?!|X0j;DOz=%DwW8u(xtmpxPu9-^mr3mw zYoZs%-~~ztYw|%#eH+#2h*yT?R<$!e5dm z4*|KOU^IHS3Rn?$!Jir`+g|fgne3P8DxFFv(BdAxoUt|7X_CIlncDRDVQeL=$suiL zC5d5BU*#)&8`d}-cx4B$YI&AW%tup8{97pFwm|JW=+}EB2G-*Y2&!t#1oJCfrJ*hr zn!Y6^rS%>&-0mNsoJ9;_jxt&l2Z{UmDTD?9gP2ywot=D#X+=A4;gyLmtJUFJb zwECt403@;C3)yGq(aZll`=kF0O3eTJocW*G`lk>4rtZ`w^2^6=9LW)A_YDzN=kmKu zr*j5_rZrvifK~H|DZzlSIKXBA9>!q5g5o&fBqjt-D5@*%mS3y^@ed4SZQo*;r)&WS z$@&VvvetMTJwK4WA!=$od(p{QZ&)}ml7C0x`nBo_j)eTW12r}L(0>}r|3Chb|MZ2> zxId>Fqq}p8(Wd26Pq5nyOp3&Eqz&}gE)&!hdz_)cB#~Ix6@?%FDVn=XsYC;8_HkOi z@PPmtfJW&{duBn;WgI%BNql{4*yX9biQ0iO@C3T=2-yz$*TxP?IIdtDo-*>Mm;IHa zRXumqi&QheAoouUV<(p%X0o5665_4bw`*9hnAEM_(27^X!9MwJf8jUp*qWSoMO7+% zhCE!M%@ZhLwD}Dk6B`yNMzr>qww&wk;Ze2nlzHRfuHzYz49jxaW4UfH3ogC*7M@#P zVNsVIar3^XPXf?7=*47+T->qV_=Kb)mZ2rM@?qG81$s_~rSfLB(A)#oE93;7th3+R zmd!Bne>LiPP%N%9BmIi zLfX$`dK8)}W3y{AMpu4Q+le>z@DCT*J9cAGkBAoA*w%Neb&lb=9D>IqN>CG({-G1U z3Ch}jfXy3y?bfjR$)k*#2LB9WQ^#IU(huwv>~u z#zNRZCcnCdxP)buR^i_*{@HKmixxiY+_2?uMM=Y<aKQMx0HNI_I zwthh5UuupTKke%d$1lT&ZiqzrCa`1bj0kIa`eN?Y%vvp%bn%R!8{ufcbJG8U+xy_G z8!Dlz5GY_@0Ig@$H~^b`nxHp3^qlBx7b!DDyS~D6XU^7gK%&)x;Zkk0)S8yx+GD~v z$L6Kukt>|v6B+@2fzpyWJ=wl3gJLoWX!!(2>bHWrYdNwwLoQcOtW3o zdwVJKXrb0nS`myNl67-f?uC-4SNi%WdLW)sJNSMj!PLV8R;@Z{Z+gAE<9g>s8-ID) zJPZCN6?a0~*El2kzUD<%{a14zW1CnCnjW5SsO4Uf&M$VI7xy*0>Zr-xEi?h$S%vsQ zLEk-hLw~Uu1Z#5-vPPHS+@T?)7og}U+#z)V3hC6E%T*htr4~xyLUbE}gFoX`n`g9v z5e%Ep+Eqzt%>A1)D5N8}h0cmKm9^MeD3n!&Nf2h>$)EXkp|5v7lf#xNP2J;Sl%fQd zFmawEunwYRk!u*9>YC>&x~>TiigA~XfgLV|r`&6z>Lds3wTHC^&Zh}B#kyzO&6UZq zBN|o}_!r?2O@|Y3K0-A(SLf*Q?siQ{J)xhx zTJ)VU`Ntrer#q?30;U1;wnif!jVVPp!tCX3s!eMdS8V0i(!Z8?amv*x9vT7ssa&PR z13=q6HAhpdtq&U-G4gfc_nyR5(OLst8|ejfy$0f8u%ew%!7x7Llf99H65L$3b?t7h z_o5hpp3qHOm$UrIO;<*ZQc=O|D2NgAwTaRu5{2I;1xmIjXGw*5B-*#T zwY5X$j#hcyCKy*I`8FC8js!`nLF|OrPEa&{TMpr1GRX=lN~CeK)STWRYJ%C>Kt=nYOO1=kD5MZUX+wQ#r{u6ph{#j^4Egjb=?+r{4N-qMPly^0~!^X~c|E zokaj~?P-N2mdXLEL%_+Bc|CGAzb3c4 z>fWqAH{@@2PWqTKoaZ9IVph73A|IF=bijmniY8v(3xZ^&K`K}w_Q3;yz<-4IZ#tVVz4$}sP zun9~|hm?%1>AKd6cl@UN*&X9EExQ0AFMbj7Nq#g$~M`>ww+nJE1}@$J#n7 z-;+fca`{||r@K%m=)2%QGcccZEayvl?1fhx?IVA=dN;ZwXb>t1XXr5yawQZOlFY;jEhv40_1`V%yOgN0 zPDpI$R%UoCD+-=qD>hy~^sEy+arM!tc+D}aF+A-_-AkUurp>m?c>WgF%C1w6Je^eC z(JMXas=u@b+n^GwIj-VP3Wg9XXn!}UHd@mxTD-;j6R9{{K@A`VWW#A=v$JRDt^8#P z4zluq91>;G>d9Q|kVON|-#C0=Gh)9G{BzuEUS+vWdft~JmBdLzR}WF=K;52}g8r7Q zYal01SM)A$vR4VoX2YQZt{c81rwT)&u9%zeJppX>rd-${jH*(YZmFR+T%J&6OM27- zULdc0@Am-UP+$OiT4%Qqq->QtDn4TmWlrRH?u{#>t13aB53V!pDA|b(Lfy8=_PYTT z?D4)K$*K+gYq%d3yzR`QTD{%9db9FwIAs-nl(N_ z4^FhCq}xmvrsq+`wu6*`%66H;gqcZiIz2dQ1V$9(077z<(MEqC`YBw7 z$w8eUzYmS#ZCWC|E-IJC))^X!@oNw-L?`Y0Ov4%TmZ?^)K#>9eSze-3D7%cNRAAV+g%yJ(gLueZYR)JMSwGoeiDgJ&q+I zVKc|*zq1Bh9VQBo_EdD!Oy3OCCyKvjeItb)R#K+YjVsbd?ykL`=$3=EyAjz{&MSr_ z^po@dP~&(jL@bb!lI!cGHYpfJriK2ldWY9bZqkR@4_POk*9?~UQOnDD>#^VFRtk$3 zFE;nkTGK}R3|uIaSGAx1@_NjVK_UA`uA^fmbT<$+OfP5=Z5}cqRMypErcqQ9=8fuy zbgzKS%HQ=}%+}sp_?)IA*eNY*y(()n>L1>sngv4pKXt(5WY)gRRPM?KY__Q32f`~N z(@*^JvC87@VBn6+RA$uni{W77CMRrZd;Mj2x5^6r8KJDAb0Md*1A;V4u%cC@TI0V2 z6pO#88X8BBbexml$GySt)Lp5AZHJ5oJ0LTejL{K03m%`o)NxrZBBp7rW%5&%c%{X1 zWMo-4tY{|2pUi$+1|%O|eBx}y9nfms0I0YXukI3R>|5oBJy#{)7dD%!wUDR-jU8H` zqASMqT(_38zBjh%mnIA?#{8R|^|%{W<3GG1^~~Gxubm4+&t`roB2(OKi}nemTZx;5 zYiiiOo$s^KAYXe}A2iOK416K@X*s}5cjnsV!)O!t@}N=WN+5Yd}o%UeBJvuH&67jo1;Mm}*PKQZwfo^128 z{(L!_w737FbhcT^y(YQvH+xg_DCfie8h54`7u0)lSx}6k{ zgp~X0#UHStb=_NbF@>zGF98im z0qO!1_DMLX;&DayO;+Ts)sH;Mk}C!89QxR2k?Fa-<<#_c?EAXmk4^HrK0_w+6&if$ z?_;=j`U5{s04XMjfCC(L6H_?yRcU{cdsG^I~1AuWQG%#rLEP-H0|#TQ4VX&edrH z_`wV!^sH5-7iO()PdPt1{B`G9QvRYb^?M#G|v0;naGa z$M`P)Bx8EzAc>^evNn(-ajwp^a7Qt)oqZJJ9?f0fVmvEAI!EPz&XMMb7pwFdu~2u2 zP4^>$dpx6yIs+Pn!&+`RPBqlxxPmmBMnsUj(Bvy_M`wR-!NPgCA=H4k2h@ zlxaFPf7Z`(^HtDh$+mn83*$bqi#droUnINL@+K1Hc>RET=6#S(G z+)u9z8ql*>ppHLnJJV;s00<7BCCew~jCXYTtQAQgIjmGYdpte|Y35vjjyB43cgGZy z$-%gwLfrl%(HY7nNjjrSMi<@n_o2vd$R|fNPF~vmLjZ%AyMHu8EN`6l#h6oiL-=L3 zxe_BD%TABJ7WoAWL}PYYI9J_@X=^xg-^AFyjHJOJv+#4VEN=OAT8J4k-d5*LZRLRK zKq+-Z7jc>84H!55xfAf9H?AT9WGKb+vt)x}SFm=ZvQ^3SwT6x3{24kVLXW^zTp|RB zTh*IUtZOndn$dy41gkL6J$HP#6~=rB^JJ&V@&=K)6|-@ ztc%E5Y~#Fn-);?Sz|&~65%FI=el|ZI{$?0#U>Q(RF|2H;y5!zJlw946dsu^g6vULH zZ8+qQ@AJn`%O_)Q34=5znZx@dpe2u|r=@fMh^b8(396|yZ6vUhW<-q{=0CeXp**LW zl!kBK5tEx`)f_Tuq3Ql9{J`Qy=6GmIaom%ylv)cz4M!b1in+Ez8!lhJ?gNyV+)1j8 zxXS6ZYqJJxzVLlhQw*pqO_cSE+zQQlesf0ICNfqCQ13vR7zXm|l>5_lTU1`mXlq4u zf;K1#xNKq=-LGHZ!|SXwg3I~p$h1ky}tFmd>f_W8`*vQlak;Wj-F*`C z?@a&d9x68&a(bLrWB=*`cD3DkL>qK89jWLHsbTd`a>{XW{k+fzXQr#qUTBMP{#M0n zC=#&805o{It4#-Hj$$2)W7b9GmZ(kOR-K;Ps;$W0Y$U~*A9sm9X%^up0P@nRZsee~ zBxuEKBjlz@(__P9*4|jTC_)}E7$T%#qTGl&cPOZc-9@5q?Gz^=r^;mH?&RPWGOTt+ z-p(;;MH?iDaMMz-597E4PE%6}7Fp<8hX=ZATeZ7|hf{ik*!Dp4mg%3bHI+2Hd&^8$j!LJ4jkz%>eYc#>0QcU|fqD z@-S{*`owB|;km3X_!8eBd2B3HT3`@WFk)shTLk|IskU3xb$<~K-;<1tGN_)^ZB8;N z{pc2wSLv_%(WYu9>N%zqZFHA5@AWb-eG3`Vaz`up`SWsra(84@@K%3ZZG?=Gd_{Wk zot0}>bGdG-G8kYhsS>fINd=SJJ6GNJBc`7=;XmRHVsDM>-~Cc`S0TRVHvQ{ZQI5=K zw~6l#tP=Tj^EwOMKF!Yat63-|Dac5K45$O0-Hymh7>E9SNb@&HWEF$szID$_zP3sl z4h+XccG(Do<$>G-W6Q7ZlvvIWE@iI<-(g@!(5!Cx*9R<9`Hakd9uKk|NLt*Z<`(lM z8KE_UHe#22Vo*u^En?@S2Mo6RJf#T@7+{Oad$AiOYL}xdf*syu8`|>QpprgU{w%e2 z@{qP$3FZLysn6W=y4NGN3wF;ZvqeCJ&Z+7l)cIh$+@m~|kt@QDC=?uy9Hs^L8F@c@ zy#r9Z7J{t={d7E;xW%;IDVU&Oyo~gHq@m}Vb;*_U=08lJ!YGZNI!wbSXj#{*!aLu?Qeqj&MA}2#KPPUsG&5J;g*LkNbpbsGYLdo^b z*`1d4Q)#c50aRk<-HR`j!kXXPpLGrS;IS?>+$a?Z-uKiEM>j*&b@jIAo|-)i(xEM% z&HqrQEmJ|CtzZv>)ADqBijA8CFjn98Ysjni^kUuuujTy<8TIm%{J#&O%d1j~0|f2e zL`FtltAF=~U60r8$@J4hmevVuGgm3cSruzZj8eWUnIagazx8?9S#p%|IlXV{??ZCJ z0GkhDn!axU9aNmEhLugcmOmTqmv3|I1;vJi2FrA}*9hegHccyIX?{gV@exCws-=xf zog-=5;lTbbIF8MOiKDtT$gU!$-H0}cPD?+qsx4H0dVEwfIIAskhlE3&Qy?b*^xsB! z?Bqa4iZMi&+rp&c*Au!YC`5L?S@*bQ#S>@Cd^avuuOI&4@@BTKVOo~cw(}GDl9RVL z*cv?gC6@G5wtbDDN9@A&PaZ@%@s-02xK?S$;Lx%$Ovv{4!@OFbC!loKu#~pwBrZ^> zcLNco<26SK75RJ_y5`i=_Sc7XxnM@M==Tz9p^UkYPH1ll$fI1#Lbh#KW(3T;MJch( zGZWJWWzd^L*Vas@w%<^kvL9pzu_`4b24ZjDroWzMhh8Bq{v=wO#*9rM#pIXo7E zPfagIGoOOs+swc~3)J1r;-^~cag@UD5vfrypw zxUz!~*HVWBFL2ko6Kn$RB=r?kT^Jny#b{HpFb{q3zIFr_Q{w7?nR(DO&q%MGaojj+ z_~R3KvN|Xv?emqD^s-7SE|0eQ5DFXny(&1`RSV?I)KriPy7B1q7Dz6Q{?s-vTn~XX zIpt#q$IN|bGdHbGTjRRt$mXJChIY%u&YI?_N(AQ--N`t-`!}1Z>MZ$o*azn+hCt}#{H@1` z8y2T`AhP5~41QAJu+c zHoLx|O@2piu>2ku zjMNn^Wet>pYT;jx89To=RKz6FKCIEG5AC(ciH@UVZe1n$ATQ^Gvb1jtay`{GVL>F; zL2C0M-Ezu5{}P6*KKW_$DSM&i^{`g6>A1v9Y%FG;J#ylHT6xm^)$s6A-+XKNN&jv= zq1`tOF~Xt&z2Q_656phwUSN~n1`Mt&s_m%-SIRu~0|>|R?}RMtUxr#l1GK#dgy4M> zQxEGtQTs+OM{LCDnQg~!2w+0LI@8TXW<^B>t>}Q`*lcpR z@ILIzR{!|=tYqk~9FnhkduqBP-Oj7aD;MUeTs)szU*;9j&f5AgN-j-k0mHOZlHlab z{Wrxdq<`Jii@yBdA1F-S`p~bEUo>KTK|3AT&zBBWtC)QvhzLOMkGw_9y#Q0kfFgBP zZ+49ZupKP28TLSHs*x=Lw9Xu8Eoj&wyMAJ)sP^;y>V8!h#BN{`^(ML&gbSigj!T2% zQt8^{C!?9TzYle)AUoXjV%H8_dKXdW?xSyiH+YRWZvL~D_`H>~o28Irfc!4acI2{b%M7%|G5{3j2Zmq?|>(4L0x*2>9^YXII$bClRSG>?c6qC17m?t^hieCt{ zD)e#=YG(b1NE!TJfe^gc_uTUwoy^UnWqS0WGk#3o>c+H#-6s6ghHEG7|Ge%0TE|qW zQ(*jD$ze4IJb#)NDDFN{AC|j5xu>b1{+;u!*9%!W9nes}yz=wZQ)@Lf;8;C8s-F#R zaWfCmN9U{uN-YKsGSTyOKx%za?2wF1?Szh0xbuWKi1D%ZSWyB9+zgb;>W=bHjFXmd zV|E{aj(q|VsKzHgsswXbHl_I1)&2 z8&t^5N(5)H!{Z8K-vM;`h&=P4DvRt-2<_{bXs}umjj8GTk!JM)70X)VsxbTlTRtxw zvKTvLXo%FVL41p*j$RHp?2s5{lISdXAf?{8~tNZ@wx_@5Pd#_*J$G@{r ztvYqis_$E8*Z1wc_Ogp^AA1pX?tNPMn<1 zxk6;i$O9T4rU~?(cVdNB0ht1aba)q#K#B}(v|9c7Kn-0=-CGOrRE6LN4haS3me~3zV z*F#Il_c8b8*aAS^5gX|hz-uoVa1sUKP7E`?;Twe-ZEI0j?NK*37|W}@j19o^it>IU z8iWJ#C4PXHq^l4$fNNza5R7CAkyTQIM(PZzMMHUf7*2yi5l+73*^p!H_IB30Hpr7` zQ~`Cc)$?#+xm_9zCgCh&F`%9KL%Cvfg22$kj-5YFPmqh6wwn(_2STSzP=WaXh86>-(0!)S?XJf9b4=^PeJ zp(#3u|Kx@CffXKgIs2@a)A!nxPSzw3>49&viUQmv4~y*{E}|8JIz=^a$}XIb z;vNRyEMiYTDn~MAEqn&LR2^EB{Jow#;B&y+5SOyCC!OvjCEp3H$@2n^oBGM};|+E| zcU$Ng#nQ6qsL={rvZsVRlR8;oj&EJx(SJ%7@r|eqnwxTA0fU^UN_htd$+bp9`iaW| z_zJe1l37tzw6L8m?`W-lC6_Gtkc+qByKbBCEj@#^SU2h4%#Sc5YcXGDJ7rtiNjdv`rKS;u(Wgr%pk+>74Gg^C*z z*1Ldt7bMtvVAz$ynTecLO3qJOo zscGxb6!}_N3VABdLez>+v(yVU$wswIZ4=5_(z$aN1kT(bGzO9nG9M*mS0#Uh4zrKS ziw8+6Y0g$DjgJn1V{mQA?u5t}3)K)|qi1+&`brXOJOH;*!Hw?cR2ru3b)GZ}_>(rt zAINWznQQo$zR65ZoyYr*@-6Y$*zg@?kD8b97UAB8xF>sQ?cI7gnzUk4{FQ@Gl4u!| zeg|EI2sJ)zPlY^da1l+grm1rCYV4P1}8M_{WxOQdOhI=I`}qdP=qw?5%Dd%8rk(mrkZ zbPypUTf47(wSK8}Fdgn3XmDd)Q-p4E`urN7)n5pRA)=)Z(37m4ywUQ8-3tN%MoRoa z93U2CjM4{o(&er%QiEG^cjg;FJ{@GnoF;=MF~2k!`~iRRbu3V>C0SJNIDTFxkUEpu z-%+Y4r5B_UQSXW}Ok1MSFunS~zr97CZEY~%PItvuk-~(UHgkdIg)UED@U-81=fb;P zb+WpYwNen+d*2K?j)aP?Q)BWET8=n^;4X|HYVH}afyFc8!Aa&~YEsGPhluA&OO?~h z%M{*WwW=+LNsC=W0mR_87V5N;x*3o)%GnNeK{B*xxzROKol`FME%)D&+O`Q7z=5FL zy}IQ|cneHMuI52N{Y)wtfsI75UT#S?Kx0z?s&@3ff>wG4j*ODbi zoLzv@bIJ#B)9H8elSb(mXHA%42c^P>kbyHeT|o$b-1ji~+b%%M-s>Tx-1+F^;lo-|<+@ z^hq{VJ8{hJGxquCk+Fv8PyUX>8$#VxpIhw1pHi*5xPEekkhG0Nt+qs zP9BoS43GM_gF3A_s+5;Qp}I?09e0e^CL`2bY~;gS2H>YoEipxfM>u!$uy>uyMGw@9 z0VR2jLW>>>{%Ope?gwl)hQKfI-BD&lFZ2*cLjf+pAZbl2@bwIp@Skev(8R=C{bb#$ zw`{)An`|Fcgce(`Pi{?Sb}LljcuH{Pqy%SLgmoYu%{52b<>j7mSBn%Rh z*^fM$VUZQX{Xbb;gX-sMQ~&<7eVFA6igkS~A(!nMHrOs2bn}-Fes9TrsehYdeZA?G zvfM@~!fleB=A)mnRX>vO+Vnv-L39CwpbPwGHy)a4lzNkLl|$`sqNpPbjNKs9*Z1>H zsQxKSfi4U0bE_GJE_*kv*|eOU6mfat4Y2mK*I64E)(GHP@H9A5-$NxXjnC;aY;SQ5 zu^(-?fKVF=)>@v+|ZB3awMYJ^(SI2=+8Hs{sMDjxfsF5F)qU;uhDZ5 zS%dqD@_E785?)CRzKtrk0YZ=-cd#H;Y1&gXR*qV#t1lLM<)2iIxDpJkV#&Q-{T>&MK0Cujj z+gO04vK#IogMm2Oy>F(`-D0d`7YQQe z;^N!sO=#aF=T42OT|ijuUO%6LRvYj1sTsS$x#sGBZe?h&MS64#21>X2?CID(QKns~ z6l-c2<&|Yr0Dta|g(S<~Tez;+)^|n*5PG7#33BZLwkGpk!E~w-w%Wk|lul}T#=(mG7q~|evWV5tc-~oO>U%zE9mP2!UzFs~p$ta0lfHe9f*Jk7YXlATQ*GdUa~|{R zG=&wt^nk~`C0B<;L+SHjfq~C#`%Od6Ej}J9iKd6B?b(HMoB=Y1!-cU;y8qZw09_)? z#|NGAiI~ewtkCQRcn`W2`eD#%9wkre7V@9ZeOpbJ=c$C(!>?I;bS|MhIK>DQh3xD$ zQO~FkXgU|jSPyaeh?KJh+}_-3PI=59f4o=A^hsCZyhFzdVDc4R1v3%4Yu<)ysk=VF z=t-vE>z+05T77{T`q}!|tzP9@u~#`v;_aIB{#pH^tkjz}gp~AxG)8i55$r^a6ZEu$ z9Q>WFBB%}GW4SX--HG=$Wx~tjr)W&_>rfsS2VXBjkBlZs1R={-6Z7h*kc z9jtp~qK}9$3`;?$gbJ&lIEJw5XcR(j!v>y*DTcVj%}&MzvhK{n#0&$-+gf9Xu^rc1 zJC=ufL8;yKv*cj^RkypIS2xkxSzDcoC=ZrS+7IDMtU)Ug$S3bcEkbWN>7bWHvQpci z&_WlP{#=M~Va;0L8U{HL49$z%XPj~&TM4*}>qaSfsVyxmW<6P)<;rH|J+6_dfNTzN|6v=}#b7wtDTzn>Z#b z7qJMmJ|oXnTc#Ggi;N9v>{&I(-9Xz3Q}j(6WAHEfSDV$c-aK>17!#30&SqQYizTIJ z@0reI5g3~&22H8fIcjW4gIL&VQhV6Q>y#>#KC@F&eKm8s&|g+Fq8#sF3%jMzQ+BCf zjHLF};~MXZ>M)$tLo;f7zc^phO<^%-6ZBvs6j2hrEA3thPB~hBSgU+*(|Fd)9W2>i z&!#kM|DWDhx;+9$)Jq*e~_Q9ebzcToU37ooO^6d7;;2=bm{@9ULw3B8v zgJNjqrtdjNVA@ws+pmAzO(M^#G8)F`ITAlGNwR9e$(+3a7uek7)*8-rGoR60uL>%C`pS0mYL>i>quLs}TBFlbgQlt#=Z z+b>ZzPU+~m#uu}jAU~ecH$-PzT828Q^jdK5XIQ)&g`fPRGqsq6-q|AZ;8+WL@rtCE zkNv1CJaCa|GaIQ7YG;&v?D+8!g+zFiJbK`({~q6qKi}!XJEXsr5RveJ<#y)8=(gQ( z65w(Cl|rkkELIdO0ACK1V|isnRGbY0998ZGSrsH4xuERaAvFFs)c-Hs`XArZ_Qk2( zazrs?%J_K{r>thteD1?-Z3)v+!6-KO{Y`6g51xGnKb#=h{3pOZIx&_21ub9_<>^kMDka&`s(0&q&>e?Gv&eA-|^delGlZ z;^4&Z{4CaRtKo7BYp8s$Bgb4cGn@O6qp>=~(zv)MY1{m79S+(5CRP$XL#%?SPjuZpV&ob3U3Pu=?Q>tqWCNS>q2skr zqXKKI7kT6ll7E%>GhipxxSlb4la8gGu)I>f*kmYoGu}9I>fp>&*v03KhrE9qf6+~z z?4_@I{^RNa@LX4T&;TCzMqvcAyc0IdKlI~1Y@d+*2-(ktKS>-caaCiCCmZp`){awO zCW5NQTGe-bpcBSVssD1Q_WDh$zWiNwGY_QvE@`H}sq@$0f7Q4T+tc`cLVo!%|3^f~ zA4@mY*90!e$;{E~7_9p(jckNy7y|q*&v*s?<-PNC(RX(r4&d@HH>LuoF11fjtRKwb zXES$B_&|r^#ow9K#vf5m!M_rZ+zG2*FpW2MU)TBtq_BtnUZZQVq4&qx^@*TY>|a2U zd*}nj`;Xk`azBXnv*-V&Y>a0?vrOt>&WK9a2sNXnO8L6!cK@KuGJn*}{qg@x27Vs- ECyp@=T>t<8 literal 0 HcmV?d00001 diff --git a/docs/img/drf-m-detail-view.png b/docs/img/drf-m-detail-view.png new file mode 100644 index 0000000000000000000000000000000000000000..33e3515d8459b4c57b0287ca10de886b65e33509 GIT binary patch literal 123502 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д8Ol{z^h;5zLx=mby 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[$s9W+MY6)!ZGXl>>Xg(^cv$nCUk&Dxq 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�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 H)ct<|!I%RC literal 0 HcmV?d00001 diff --git a/docs/img/drf-m-list-view.png b/docs/img/drf-m-list-view.png new file mode 100644 index 0000000000000000000000000000000000000000..a7771957d1849639a9f3e8a3a57e58cc5255fb1d GIT binary patch literal 125547 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 H{4x4>^Jksq literal 0 HcmV?d00001 diff --git a/docs/img/drf-r-detail-view.png b/docs/img/drf-r-detail-view.png new file mode 100644 index 0000000000000000000000000000000000000000..2959c7201a38293eab3a18824e5e5e392b489453 GIT binary patch literal 121052 zcmeFa2UwHKwlEwkDxxAyDHe)IXqys{zPB_1140ryVM`~WNSAKeDn&p*P(srHNk~W{ zC6v%C^lE_61B$dzm0kqCc=p+6pWF7m-~asI|K0oiOrE^&lr?LuS?|o6HS0}g_WJie z0nQle8R!8H8~^|gus(pju><`E+S>NF%uMtQZtDJC&;($G!#@E4o?iaGX8PAJSz1|N zV*B)ajUQ#V9sTb7xc>)%g?Fv@2X+9UTlznM`K#>XPR@RgEP$`9uc$AJIEz_sR-D`Q z_xRNxafjdI>ObN^{&)OYFt>iheW7OBthf^^e%1A#;tu~5cf8~K1O6!sM%~jR;0LWA z;RnYjoxNZX*8LdkD+urdm;v+w*MGF1m1YHRGyrgI6#zK&?9V)hGytIN5dd&*@XtKa zR{+52-vEHp&Oh`1l*ygjzPJB|?l9|m(8UD+Si%AT9994T*GB;0gw5Z|SeO5Rw@a)d zK^9-$tdA?e1KSOi4LEf0NBD6)#0rOx9{v%I9X)#F z=<#DGP8>gW{P>BJr%#?>KgE9hI0q-ksnci9aGp7F@+{ZcGhD3rnIA|F{HS^8@G(}! zGwjFNS-Jn4Vec(~^VngBqeF)d2m=ms9yr8#V6P4!^rJf+Iq;(={t*ryV6n({JIlp=S?(9p+sU+JJP;@>F^QM&oUpvP z&-2$^_m7KQH}elDDpmj~DLeS)6pAWd^Ly}4yX3u?MPSN@?knOtEZl-DqAZF06Xn0- zW;@0zy}`+1?BKz}$B(leJbd&J;1H{09OOK7`0Qo5*GG=>{9+18Ormk~!EXE9FMRiv zi&t3Q4EmYPSMj>THxU+Dbdl(T_kLYVdxL9c#bn8nwAz7|L5a(#e%z;~B(W4{;+tPl6iny2yd->qDOP z4;6)NHpLsA*0Q@Pu?LtH;2D><^g~RJtixM;hT;V;>km4+cgMfXfkga)h;w<-VNE)+ zI_t`#WpMWPaV^m4#fypqdw@5|%eQuyvJBqss10QYm#@-Id}{tJ8`n26ojbo}qn@lM zpgi^f{RW%3$h%9%rPRO72`V$M|MEWh#(y%5F|gU&V!CQ z&}`)uHlk-2C1&x1K^0YgMHsm_-Iq+M|X5RcYA9;L1IoF-ve-5 z7|_bET|Xth*8Md|I@-qFp<$w;RP^(VxS!x|W-k*Rfz?w4$L;|NZ|>4%_W*ip0dp&D zlajSYBX`pt>G1)ag`+6bnDAx(w;ug9ZN=XQ<82;`N85Upd~AN(EUjqMj$F}Yz-DQ; zY9j`&bj!tv+mbglMq*O35mxS*)X{p#%MaHq6Zs)rt_tenNmzmADc($t)GGVJ{6i!4 zKdCofOTtL$3lb|e+cv&gzw9E?x58w!Pvv%XMx-cLH< z)pu|HMkM2m2}JT&%%i2I#i9m~?ZkIZz`YYObf_;7=nIrk`b9mlS@BLatsZ-91%X$9 z(LnHfmslR1koXwVXP6KVhhlQ4LSkW~0Ib88d|j9W*I#t%HF&&_vW3^{RShVfaU(hwkSx5u|Ez<<`bMEG0imA=@juLmw2@adsT-A^&W zCcbIH_ueRgB2!dod}%+I9PO+Nz;GfdQkofaSH)eGb0 zX6SmA#^HRqKb(&MfRm9I>A_?6=RHO8srj8w3X=XF@h<62vE7(_^4QU9KR}K&<>Rk7 zC4D%YB+osP*p9%m+B%G@TCd%g<;&|8yWee1O&x@SM&$jTPN=Q8|sHVi{{9RH6I&&v1RopV0k3_%*=VV z6PX_Rc**3ia`JZB&ew8J7F5~{mL$o{BHSlDJ}ySW;Pp`5IaAfrM6#nD3uQWUDqaaJ zdR9pVG#o-P6~daW-2Z1vLS(N!z>K8#8q1Y*Fyq#IXwV+O)FzTb-ryd4BJfV@bIy?L z&%2mC!0@%~A(MBbfwH^x3fs`y9f1L~hy6~B>so%~mU1y^DzeUE{zZ+C_U^;vJ-`NY zL$iL#y24_h>gC#tAPU_8Y^9U3%Dt>dRaH5!6OT*`p_y_gBt0Hguw9hOb`|)U9I%#D zlVl*0n$OvZC<9wh>?Xtba*M}_u!O!jcC`;ORxk|BA}p1Z#6!&Y2(6Nqv`m1)=+-gS zLi#yH!$wXKH{bM54QO_GDsQ)RQ~BMbyF^y{GS5Zh7iFSbsKSDD82H+A3xy5gm$k0i zZROTa^X?8yq}IPjE%Wr53|Ob3$T|FD1Vq$S@4)v=A60d6&ro-M)}8b7p@Zp^wm6@68$oWacCfhx+T1rtH8zqEy= ztmSysOl=#tEycDA71?w_!0ZUb`HOVjH2wxc3W(t~6B?U-d9X%{!tUi8mG88VyS@R$6ePMiI?{v$dc}qjD*j+dA_(%^JccnL?)AnL zGcefsX<$sWz%Z^7zY80mPzy?4>CJrkYr0|mY%x1DpoAiyC-}`m zj-Yx+wde+2hzxYA%4lu=7?v2`?k9*kYBnBhH#U3H?yY8@y%O=ulN zOcF2|CsjeCdMc}-jK8{y{C1@fD}7Ay^Uy?%hM?kNegc@*ZeK<2W`TpOH)*ch+%LV8rlpKV%LkBd0Y99R6VeU)PMrl6tGdea6Lg3XIhnlpB`M^ZSl-#;FKR)CXCwF?J-D|dQs#j6W;PvCbl>%28>Cn*-U zKoe}|;RygMg8A(H$2Hh7zZBcfOY^m5eeRH6`2|Cs*&(L!26O}%8p$Xv%Rpu3zgLufE#?o z<*Cd#@0oApPY~_ONg*TAedZ!CPM(&knPC5PQGCqAGyNp{UrUDMDr}C}MFKX<#{Ehh zMdGSRu&Fs?nDp?{Hpu+){Q-0mEWdFIpG4u+;N)CAwzfbvp(~@LORUa^wKAEDL6W*c zOL)~5wG^pin+~CzoYvEQnSvRa4+wRG8j-RSp?YzPwB_37wq;wf@`AvjM>VTFgMERI zy1HOReAh_~yFO4`kR*(o-rnaPY_p^qb1e;JTXfF7f8w*GMArq5ma29gMYKdU1x@ff zV#%1IP*nn;V1bU>``3w3ec=j_4jkGCHqxUz_se^x!^VTE%TcV4Efs%Cr0M{qm~KK$YO-lp{ip`M~lUylf5l+V%=gSWsd!y(ROi zXE0B;3}I6;`BQ(plT6I0AdUX<=H_mhQasF99}`>Mmp?Y*5$f2K|D|l$r?r?lq&6dP z(%)8q*Mday%`xSKh4eJasm^yVgSBQXhrGAjt0G&C_5jl~e!0r|!nufU@{LByP^^hS z8H|Us9UDh7Hh#`BOnMX_xP5LaKTu56Py5scn3K} zO6uX#w`w#w%vOujo$iiTm|uSROXO=bE6AQTci-Z@OXUHY>$hY+ubjv3~=UG$^}HUC4PZ@cIlV$T8rJ=CR3}C7sMzg z#ZworRK$&0uCA%fEZtnn>Xan#rd}=2NRe+@(6tim1$rsW3L^+D)Kvk9oOPQl=U||k zouZ$Ckx+4<*wYbsuW%MpFDFMN~H`>9Ft8cU+q%e#1`OkUpaMI=uGH31~FRN zxspxBw66_%$wk^SdlXQmrdH!ih|erizDYP^$>5!dN_Z3nd;Sy0gA;J-E`L`Bb=8q;a6HxhY7`d;(EK#Ct+ z1{NHKB`?`L0-rGd2SuX(}DL(+TyeDM!cQ*1dna< z{o6Tjz7}4mdk=i(r$eE-x^xT3iFfgxHf|pTlAV@x9m*Mav@?5t##(nXe;Je})LKK* zTX82R9$(or*DN25Bo1kc#PO>V# zJ(xhwkF!DF@x9Rq;ta9S%a2c^n3odmFXmra)oCpIoL_4#XX`LZIa$-3V1LQu?0}bC zTVuECIh;zeE(|uJV{CWpql}ttS#WBCaD&2CZz$Jr8Ztk`R5NpBsgh;QR|NQ3z#~ky znTxgxH&3L?HOm{pdZ}os2XvcLeawg`oP5KQKQy#+fa}h(FA}`x^vP3=(XsJ z#AM9AE;YFQhOwp*W0L6XW64D02}pPe85hRVs5*{{<2n;Cm;zHFF8QO2a>0TCWzeva z&I2{LF{2@1B1OZ?kosn?RAo0pZ1bw;Cbx?#FGwcBy_9BV?R1t^EhVm*OTzP4gS%hk zk}Bw$K6tQ^orA`L5SI^|7p;bnmB18EE7d&)7QYSZG?3jx9)`OR(qem z(&%+9bBTPh5)_x8lW4iqD1xdsjLCEhe$;|O#k52NXE0&KHz&f9Gy?oGs%G#u+#@3J z9y)R+oGsR-xX&YpBY$90OV>)VxbNHM73}?HYVwuI?cC|^&|##C3ztL7GCN~zG^lJ) zDiC#-cgn_u9rFk{9F^cC%S{ZC)4?>2(6v1{buE9Xh*t4th;{ch43=R zl4P+W#@+UO&lf{&99gX1rXmXN!xZKwp%)76He?>fNIy3-`!d($ce7OOutIOA_Mx*6 z4D+lm+x0CHcsMg~IMfUQgPEyxc}*RXPQuV+%jb2ax&4c25K|?$jOiiFwqVuZbVkhG zA+63i-mAH!n#pzdq*AmyDKOYgKtscY1h<3vBQsD4Tof)3Up;x5doH%>SfOC*x0rrn zFJYO$lzEXq?S>2DDJ+FTjrm}39bXwjb5m5vojGqoB7th{X=98osIX#AW#KbRH~C`< zg%_2S2_+FRDCGBG1FJQxLnE`WB|YG9hFI1f0Ok{ZWg*TmSWyRQ*H=lN_9z#+(vca~ zy!etb$h6#)hArj#b>F#}>)2lvA3><1l4ef1r%h-7W`)$z(eEADw92twb97AREt&|v z5NhK3U~LoqK|34M?3KcAOG_TGXAQX)!v?sPy3AZpN zV%Vx5#_ zskCQlU!#e@jAZYGms4{?R#hc#Czw+a9D1^^L~j1&lk8_64WH)op`Ur7al*J4PrJY( zWsaUAL+_Pz?Pn;lE!Cc8?eNY5&+*w@R_I%PF~Dh^MWVy;D$*ZRiyma=p8%VdG)B8-8SFYbMpq=c@El zk@5{fPMHgg;R_1!2Zx*nD``0Am-mdV5pzEFI+e6Vl&-u^DQuSH$8V&ol4kI3)%-G# z)n5o@I`nOMG@h;*CIIsZ=@6bHx);7!*9Vdi&14{2CaPMz&>-1^e6dx0Pz=os$S3I= zLBPnQ6#ic06}Y|;S<;#`Gx4#YZF^eYs)@e zdcef`Wr}{Gvn^^h0XpH|LmTjXHatN{%`}Z^q{KsMf_Rk3c0hOf^XFEY9I3Zcx0P=D zlS^4W1_Fex+@aFC%E3y;NYgaV7C)6Vy@Em?XKpCo4>DCY4cHnU9wVAZF*mPEq&L(O zJp~8u5M)#m+aZpXw!K3>c)h$LyoE4CbR-@QwvHbMFFXRhvet0RhKyj|`JyuN`W>vD z<7b+ARUDENg>|MvGuxi(OpHu+ryO?){O&@#6Vn}UD@L}yQLfrjPZLIkTLe28`#bmv zlQmIUnR>nQsEpfkWz8qF9vZs#)Xik(vp z1s|%GezYBUZ>ImA4!)S{B&Q1V{x;mbfl6EWv;~+1G=qO zv4$BnQ=&ZOU0%7K@m97yej@e-F(djSn-z+e9qW8lJzQpau%{wyI67R6yvcc?cG9AV z@m()HWL2ZMOjQP^y2LZzwR|l&ylAipKZY3iQR0<%$+6KDE{KZd6SV-5u|uq-Hy$-<0h5)rrYd)* z`NQrb3Dk;LIyF2G)|1!O=+G31eB9@>`A8!=Ask{oksG#yhfe`>D5>Bxwy!cPff>3!rE&niwe z3f!sv61c5oam14>Zk1-_W2oO)Aqs|t+H<{tLTRcY;Kr%qi#HpupyFqJN2aK#w}(tkdIIqkFt3Zwex9 z${DKOAE@krFYU8q2EO=3Oga^QVqx`lN|jY`Z8|tIYil?f^Y}<$BO!I?*HXvz7G&O0 zUBj6cqX%`<*8MLD?+N{QJfoclcGBpmm227O^8qn=OL?$~uhf*Y8rGF$dH_6L8&Np# zReu|tZFCUY^gZHnY5Zqud!PP?%EUIjG?P`4ONa=L#Uy{!H_pJV{D1^E2VG0W({eV%udXxrlnQu z!*u#{KGA{_ZO5meP;a@`W0$lzx4t*&nG#n}p{ZEpD|TO* z@Fi9Db^2A%4InVH)g&vYKvL+7OxR6_!tkP!At%7Wf93c`4%KeO4DApj-(tD1jhy)L zzH$9kBqVY{&}1I_X)&D-YAcaX2EtelAX<&!MHd_Ghr9;T7B1Cpd4bz3tJ^WiMBGqF zrPA~r4`_LttMGR6T82`nMBKSm8288(uhkK;Z`luKKH1iA-0kUxan~zwDWx}H==c?2 z94xqpUgQ6hNfqb1d<1Rz^@H$F2^Gm}s4Q^Ymh+%Wkl+1 zO$OD|1y-5`fBp1w;AKuVNA6^00CZFNXB4I?SgSR7u@+$|B2e{WQmycEvi;YLYL~!oA8MkL1EH$RD&*FYkime_T_+w6aqm$E6vFj zaX0ljK+S0K72r_%OGGu|Ul?M1W91fa>tap}d~xst6#<1K4@Lx1w+#t3LD4Y)!U$84 z9GcSMJA)_S@z4K7#p6;%gf890q4sXwz7$1amInt<#joK01a$i+sMk!7>lUPJ1Yw?9s+IUt=dj7pIwlyUQBFRudtnx`O)_LpZ_&qY~h1D z559yqzOwN+g)%hQu+ST^kPL#UXiS~50e!~fO7ZQG326(vEd>igpVT{p z)?lu877t;=Fa5gBdbidgK6jB-|8KxNN4k) zQ(sks{(*kw{=H^Ii<_z~aJJmF#*EmeYzf52XFt=t9{mj~VNuK5T0+>;mm zM>p$s9{v#B^0T`Hro;m5)1>C#LGLYVj1IsuKUAH{{1g43GQ0pupDD|DSZ{A&;!9?e z`vaKm54rm<{saF%WVnL7wwx1f0$hR z=EA;3w{LW3zu7mse=NK9*G2nF*FRRq`{u$Q&X0ZX!oGKbKL$mJy+V|1@;phDS zyLX`{=!bXV>OZ?tp8*lNHvP6xT?wkMiKceY8_N5aoS>4dD8-*IR}LzN z8caXbxuhLb;N`;TTG{I@v%D(m`T=W{ z(o`Qu_t^iQ%851)$z=@Qchs5T7dMUkJr(~uk|S~ZDEDQ#---4|&%WB&*O&Vf#eY6S zdjC1;p7pb>XN1D=nI}-(2T|g;XsR*yB+vmITsYi+l4S2Ve(zuZ@ zgnLcfl4Vw&&l~WsPBBLG@UnG}IaBoa053?p9ods_>i@Np|Ci}Qz`i{|cI-F%ZHX9X z*7mW>-y$UU0M2qh13a!>kiB4^46&L)2!Rc9FoeviZ$CE>vKHXRPE7evzgnc#VcAc6 z6plGS9_jR%HzD5+C=`IpYfQybheYZA#ic4ZC%=F&+KnD_nW&6e5=z`4T8Zx^q^r}; zG=}j7gYipO??fk_=R#3|DlI5s^pZ>-zSYqb25nc^aOs{Y5)n9si>~Q=dfKH1c*T*o z!m*JcfpZ)?s=!rKr1*td5C(CVt^Fi45 zL$^tBL|lwp3TN}GieN0>4Tmg~G6EKxDb*~-*5=!z zoC-?LD75g>(t$Y_-dRwNc!hQ0Rs|j>0Teo{(3W2<4Dz?|6&44gvr;9aXrqNs(VM0a zMc@8>Vcesq-GRDcQT6%=6cfF2UVZ~K>Ed`AbtRlew7qF~2fZ4SQwD(@ZI2o&N#n>7 zEAQz6bIqmFiO~h!`jx*S{R8vcSE;8#{UqZdvr)VF;jY1`cnr`QYzwZx?+qTrUh#9Hp5mZc#DS)~^lT)+a1=8aMZ6m*ikBxGCA8 zSS*(Mxz!_Qt~_9W+R8N^3tmIZwKn5{{s9+YDE=UOiC^` znqE@rYf9=+y$0pkmBqu8H`*tBmyq}fF&A8nf1U!~qw7HF(49dbBaN~Agl?Q-KAWk* zei?jCSxHZ&h0sjO$68HTd`=4|^|#VHc`LhY#u?^x6J60em7#Oft6)BOyqPhw>Q3m{ z&uL*w3D3D4`tHt$;&xSMB+hcs?Ktm(m024XIn>EF&o>7>JWp-DURW^fT;eNb%P$i% zzoSUwQS7_*B#EQXsbBi&M_4qXS>Y67VhT8}VN}=hISbz5)hiQMHd=7rJbPg|7 zP8_L`C@WX)HZ_p6r&85)5i(RDrdp@XW-JOX_T^AdZoO~Fc5bhsVBnOg4;E&?+EpZR zSuejM-r>rU``}|*)SRPIOI~gFW)f3Z;{ik3BhkPs#a@)CM{uVp>Ka^#r*mcN^yzZ) zfxkFvvsLImnCt__pwt2{hv2i~hEn9Te~}zzr)EVltgB-jXkX5YHH4rLCnLT{e4QL{X7wUq4~N7e^gGPkaLsxIF6W>}`?s zuazb$PvFv=U?I6kvS)hSQvAEbFX!U*WBXuzVHp*_xECa$MV&GPa`km4bYSDg=Cd0D zkKV_+`B(Z@*~{|qoUHpb>oxr>)oBcAM8y>{N$G=2KzGs_RuVrXBowaZCQz(?oz8{7 zgffivWdD*GEl7;)frVi3aos5@DK}^4%e&;4!%^u68_C>3Mj5L#gWz2MWJ(ecC>I2e ziee39>-^5f<4$9ACbD{R5d95IX;i;P7HzZFlb|D!LnLo}2;9qK+P)|Qw8G4l45%(} z%j6h+X!3Do4H9T{rM;MtOzcT%K5M!Mkb|~wFbYt<7@VV;7q@X-p_-$Ornwx}|-=Tbf1p9fl#?qS2rQhObIUaL>0nsMTsx zvLb#kml9XhGcYsORT{nqHCHn}bYB-nAKC%}{e<~v1E+2@rSi`Cxia}HgDq1B6#K}= zXEL@!;`5?;^qSsCSdKuE^GiVS8f^sWOf!9BWy;7NjB$}xPIw5HPm75>6;FgSAnnqR zcYY~RtCTyzNCTUf-jMb$K+wPy+&t1IQ{_-yFkdJP27mbR0cAaG-FSf*%i=$vm2QYUB$x?)F0`OF<8KVCkr^@E+jQncoEb^DxPevHc4N zxb^@AtsYS|E6-|y&cgXGNuJQQ4u(anb*A;J42*+&2~7YLIBIW%viM+SVx!J?w3=et zG})G5XPeOX0?sf_ELtn$tn&q9jiUxW#kMQu!BP2%rX41mR`@l<6ZIJ|2)dv`2 z3<9>kg-~p`LsmdM7CO6EU~ot%vC+-PU}k8t)xQh+%OOXkf8rj%y#oritwQ+;QP=se)A?aH)eLa!enx6%fO$!UDOB&7SY1Gnd0@QPizxrBl(@zpX!DaJZ zY9?WioQH<}u0I18NpXC`DhPQeLKyFb9-h`p`tV`lTP+%%F!>+a9(Nc{{+1@=_WVR%X2Cec`2O9QUS@ zHE=8k@kGSXMKo|3FMiBI`MruqJ&&oL7@2pV*iJ!BSXGL26e4f}hr(53w!oYam?B)GhR8M8VzDMUL@(y2pm00wlkeDquKY>j5 z2mwZ3IMbBea==-~AQ1eZn$r{#@<5jc!R}lpq|`Nif;_=SD=5P9cn3%k%^DX(y7B)Hz6AJg#-p{ ztTg@``;eIWY^|c(RL;0D914TdO)f~+C>{2@J#gV@UC5$}fOn$u3u0u(s^P=&9<9WImL5bqcD_* zn(SMjwIcM^5Jjk$Ut`51kJU9+|tk7hPkHA-5n2s;3y zF%UWB=y+H6n}IvU#H7vi%db7f)>e~Ddp-_f{qE`)i9$#G0>%*)O&OS}5}SYzmrHtF zRh}xhS)1G9sy@4s37@Ybxx#T(hXTg+aspVI-y{toi3H|)P(TpFweS}jGx+R!1E{SR zkH?J}0yYgtMH>iLaE%zJR_^%S6&}*8n2hj#BR^CPdnjBz4(&HK2`X&$&QeS)Q&Odi zaiO7fk!~HN~b(Qmm#EU?!ikwpEcWV24&=-Wu11*J!^C?wWY(<9!W! zN7d_Vm}Hs%%*UclOybjc1NdYEN{%N$59@j>(?@Q#a}4FEr&(=G9`D>8VXYZ`Y$Kb^ zc1Eu@c?cYSf2oi$gA>qb8QV0^(v9mduc)NreU}i}%a4PZBSnz5jbR)S=9t2#JM}XY z69&HDRqg12r^Hmn!KP^J^&!MLhO*&b)by7omk26#rVPuhQpy9gaYNFE#Opl-VRJnKDOOT|5X=Yt zxLN(eCd0%^q#R0_=|NP8`2x{?mpxM`i9OObz&wvxQjrK32Bvww=8ii?f` z51ddF-A=Xw?E?KHDyn#%s@=S~4Bpk0&3Q9RubKL_e`i^XXo$PrBy&p>O&OYwiW)h7 zVPZGt1`!U|QP-t-8Zt^ylBK=9<8z+giPBIy*P>}PukNrpW-VsK8O)V<>TGdGq0*5w z)-g4HQ6CP~%dt z#z)MLO%w)4CQ{aWU5m#^`SE3CTD1Ld#Jz1=4LQx%V^GJKF8{B9(;g$Uu zBX=X#&>R02@cUk}e_`1De_hm)vj=GHi*z+vwsc5?Ms9{I&M|k9CvW{VAM(V=&5c@~ zJwVY*jBbryy%pCmRaho#_j+5Q=6NCRIH;e6@h#!M#_`{{^bjy%44>uGeqbYBAh7bI|?;**-dU|^5?4F1hY&C*pK_8}qde0o%31q7-);_H6^bBNYd zI5Z*_N@$c<^M9@kJbn#`a#tLQ+Y+9p0YmPAA18hC(jI7q$O+Td*Fe(|jbHlZEBzq44ej*HrDBrY? zWM0|aVHoTI0xu>u&L*U+?-k0dq<2oSO+>^M19 zVbE=?)5YdaZ`%;TVz2WG^TaR%_2*|=`qK~bfOZ36lkjRqokO3`M5NpbJ|BF}NgtEwy)BVC82f$x5LJT!M>AceVxJ9$>}PF3q-|@i86&T)KG1v-7q} z);sx$`la$TDG10JO?t%l0G|N&pMf%s@2R|1^-hj&CJuQH))%|Ju*m~cvuY&919a7_ z$=+=I6^i=8SeYlZ0sSSvnrwG-TV?K+SuCZ;tfq*0hY+2;;UZFITA+s(t_b$;IURjq zOD;K>H(1K*o6WG&Fj3N15=?dP@eOeoFClRpj%qp16 zg^o&Q^rF$A^Q79HbmEgH`{pt>^n;;N4xA}ApY;&Xh(r--@rIvy%YM!TN2@CQR*faDph-=FjZg*x|qUQRpVZWG$ zMy1>Kb)<~ELTCteRfsEh*1XU*<6eZ*Tj)=%tdkX_YeFUqc;*To zM{vZ<(|v)=_K#ThCEcZ88`X0lVm7-FJJ;olyr0U8^s2>9?DKq%wg#7Y$Rt$JtNs+=8_94^K`%rFGCuHM{T^*|W>el{ORaHZ)xBU)2~v zhn({~Yi&kp8sW5DQ^D`*blVd*E{ZzWHkTF81@Tsnej2o!beHadz~q(XIW819RB-xx z|9Ua|?Lc7YeTGtU#^6^q!H@M;fp|l=+%(uZ`mCMWneCSP?^!ln@8+e+gKIRw^$M;C z1EiJqA-k?P7!)=!drM38z?PlSxcE3WgSE}+CzV({KF3?CgbxENFsy1J>H|YNW2$n( zGM6I7GpbW1>#70=;C)7(u2IhUdoS|SyBl7LS_3ABen zeZl;~6;Z1+7-+m_s}@OwFf2{w%!`k)j>%tEHrzYSh0}OQU~T#Hr0x{ z$o+7|tbJTvB!gN;IL`ZRUX$a`aIslvkPVO~ zKITF38%A&3#V3RPk()G&*8v|-cm4z?q4A~WonGYoU!mPMrt{*MIWN~pF|3`IaUn0g z&L_gJhsW>{QUtao=F{#~{i)WR?(vC$-{Q7WeTsXnRZlNRV*&-c7iZLj_a zI^m5ZxGQAK@=^?11*4lZGDLdxs#jKxKmOK#aPwZz4pT4T_bCp`G-tXk=jg8XDNL4SAt;l7W)2DLQ3s!uEOY| z32T??4~asARv9`3v6S3ybBl2nQ(kpn?AMfDb6~eEW!ZN z-40WSmV7HnYFld*fMj;SXq;NnTb&cxX07%~abu`_Q*u&jQYP#DQ%G6z$|2Ut8A_5m zBc^vnWTVe^Nz?H8vICzvNtT;?fG-Tq{#`Shz>l+m!A>uDojp=-0G$E`RiUtHV~$Rp z35GHJ!?N+Hy%my#t+1K7cmymJhdOV`I@uaA6BFAT^JH}U%&w_N;AaH3UTN0NPYijM z&+b*iqZp@duyaBt9}!{~a_{>NHa|Znjl!LBR$G$Kyhd5lHg@Cn?1UA@G#%R2I}wD6 z&D0fAkPt?_9_qZ2zGjWDB4Db;nKc&UAI9HJNV{Zr2F;H+fO!C)^5Akm%925aSR^Y zn4m2cozI9afEI=m`Ep>oeP1=NEhP{2LP~dD+mZs-RUZ$yyN2<$aEIjHdQYeE1*O?8 z1lS*1dDzTPrF$-!HpqYxx&2m?ZNR*{$TQicw5^f9+~n|c2xVEP5ift20^S(TXo<;q!eo09FXl1GmmKRC z^~&{piI_%57RVGF}jUw)T-h8 zPSMgTHQHVNX1|E=UOscWmkjhIniPgdGZZ9|mSq;A{^oRFWQBSy?BX7vUODso>BiWJ zt>t7pgly1uif%xFZLCyx$Esfj>of)ai%$0h+xmp;rtifU_fJYZ(it)h1mxyQ9yPCqsMGIEPfhnnVkR?^;Cu2B@h zt6;&}M(zGxu=mc-P}Un9SY(WRWQ*zU4pXb*6YDhi2lj@0fGgk4Q|FH2ja-kWELK8& zC?=FzDx*DA@#A;aFF1ZHb6wjh7&j;}H{Wcr-pm>Rat;;gSFf6b;JRKY_t*2AD#15h zE*P&f5%Xt?KD(05zioSvpdPsFF2o){m)RT6j1Sh{ln6GqaV&IEEZquyq#b1bV4dB1 zB?uz6E!o=M65G!=NT_gYuM*lDN-aD+xtlb+$9mlStG-)!@ zi@;DqFQX(NB_Jdrbd*j)krt%Ms3SrU7&?SD1PKsGkP=F0D!m&Z1VT}I4ZSzN%)IZs z?>^`I_CDXYuj`y^zxz7;vz}|M#l3z{p66NXUh6JD_|vG50tn*k<7KSRDzW~}r%rSf z_Qm07nI$?>{Y?ShPCX{=DLv&WdKQlS(3oNyYTPkzTOxxf-9ym+;NI)q0T~A#)|P3V zT%m*=bHPpx`Z^vf@}5(wbDx*4a<067rI(}TnJb6c8h{Ur!)L0`Y=!1J*Xq<6hjy2# zj%GqvVK5BLj0B+h6Xt+M?^NOO*$JTmi8>yD1}t7*@_bG)W**vnc&GwLDIz=S7@X@s z2!l6kaRxH;Zg-lLI?iXabbIvE{c94iAql^GF+o^?Q^{kNeeI6rAN!tW<~xjN3TmU` z6=~Xhx*RWcb%msZ01J#k3It^5y%)O~Z(iUzdM2mc<@GH*EdUpCeIV(USxt=BWM|e4 zKrAfLz)7JhNK*Pn>CziHB32dEBNPV_RLY13jUo9;H0$QRu^eM>t)Ci}8`su;vJvCY zHzUF>J`W63`Nq=d&Uv(&eyqDVpR6-nR4H3ZFPe>J#BBK_RUTgA%u=f73|yo~gCJWs zI{HqI9yfmR`!c0DaS8=}V>z*l2n%BpOXjv;n3w8j_}0UF{A%IGaQLI0cs*QD&8iQP znU?hVt1yvps#icQ>VCNawbin~!^6qrtp1KqbDQ)sok_d0Kz=SdAGmA0`Q#f*eMZ7j zl2*^pDL-vaw~B3eiK}BTUmWEHET8{)dyvAt=l}|+Z=XFCrGDw?DzkD1l;g*VHicR#_>Byj-_ub z2ki0B$uHJ*lZ+F4jVo8?8Za-HO~7cY`4EmJX6^3qw=p4*g@RKv%+DmLMWVF9oB9M8s;@09# zt;GtlTS>w-3Eewj4&1bys3dvYH}0lt+z-bUANRGAtC_iV^DoTngBgJplU9XCGL@O{ zz8;B>G?lF!_Gxr>UH$FB{$reD??ez55MW(^5m@Xh;E(1?c8i~<9oD5w)Yj$K38HXq1S#v>J&oAri^TbxVS2? z^+bDBl=Yj{6ymnu7r|m|sYoh-={j;FvX7unQpYQL&t8h2PR>iUdD|jVoI%Ro8xHf)UU}^4D zT6=cNq(ewf(L8HT10928IzmhMN{I32HrPHl;JWj9=_?)AC)Hb01No4+$1S!!DH7f2 zw6YAHozc=*T3;c*EOad@Mb>LPkj`MMFeM$HULH3t-W5I0Re8>Z$ZOqAaZ_Bd|KeN=YwUEff_Y|*lx1l3Y__)`C6}pp7D$WkZXI|OKL5!E2Pn>Vvx{o09cP_i zQccq@he8c^e6wa3sXuppdRq6!)dFzmE}D`D>u>y3|5-p>?NY1CQbf@}E;QUYd^Xi4 zn33kJ_OxQKw3F%ty&elQ3T21rJ{Q9W2XoV5M(v6z4sC^RYtIqnD;A%N}H5B4kiL zO!M}<;vaaY(Z$A(qS9M62Kh-=XKuF%FP;$r-IYqn~7hO zqpaVrG`g@VmO-J&C3?Gq{k8-Nv-X@jXML_;F*b=|B~{$L#q$ck${sUo>)hHr=fIj% zICx>fc+-a=M@@9c*E;!c$;Vna#dW{#>Jq+JhcC!fRe{?zAMkX(>PVL#ZuRoPJ5@@r z*r+EdxAu5S6M%;ihtD2^Y-vg`?U^vKFXCg3of6A>!mBTn$B~sPt2wzZ0A^l35;e=6 zvjh96Gi84%Z#{n~Z?(q-Ul^KPCoy3gIh%V4r$eKq*YZaz(aUn7uPvhE?wJt+_+Zq{pmLr z>^Bw_TzK&C^+%~j9`;>B3DLrs$@2kc8f!m2_0siRrVul}K7aG?>UNAQ$f^0p0cZ*} z=2Wd#T=$?ndcDY^$?F6L9#?`G`Oc5&9Bn#?ksOi6O$U`k3F4LDfH3cNGLq7LfqC>3 z|BYpF^VQL2%5lw&uBIg|aXTs3QWw^ubh=wZI1sU z?y8=Xj?pF6749$QUT9WL7w|zkZu&~X z6GE?!Lj5*0Z{vl$?ofrCZix`SOw1msZf*0&k6f+r{j%yiN{=)UcILJnEJm0=~}R2~)TEa#z zkUCyFain?fkIwq7Ka~bzl2(r%jtBBmZEaM02eQM&6kEKMNpo-bKS&$+*O>GecHr{S z8hnE69{vi_@WVpQ*cCRo1nS56DjYwdq2>`R8pwOgB>{*md%1Z6Pz> zBj`qDVOU~{17}o-Oy_Q>zhwmw-uhdM8uw}@@2v6Bna#d(+Hk{hkfu@0v+h+NrMmAcXNS6iT>ygi3#gkRvSkir!{KmnWL*(5vTTlM3^%eiA z^=VH#ln2TjJgDjzkgjoDYfavnzbq~OAy4;Q%}(4XeSy67UDb`*Yu{J~NwlNNsN?cQ z<_?rWZ^@M&aXb>QG3rw>Hv>9ex7)6Wmr)fpLgUdPlCw7}6&a&$Nx=_1qCLbR;PYA> z7S%Qr*T~3vtncafd9UUzjC$oP)vK=8g1u@eT0trfwtkDqgtQ*p#7A#zH*+?vyHPS2 zYot^%0zYO{7APTx{4vsYSkMQ*?&G!#BQN4NCGIw_C^L@4s@vS!?(L*VbilaV#h>`a z+Q5w*jerbW?KMNz1H)nfD*O=xelA%bC(9!=bV6&B+b;Q@Np-sh86lpUj7M4)<`uS} zJiPr;YlFzI;ord+zW&gkQ$BK4UP)dl5%JVYGTFFNul|%;{BYYBI{}_sD(ru=l!-OC zkkl66B<8j(sJF@_{xZfcRgg9W5HUv4cOn{JVzX1Nyy(;}k91(Q$Js^Cm*JMJWr`m! z<4JGrT?eUwgL|kmv%*;iniDg{t@$1>Vre^RsDt{9tKu|14AwF93&Kiw#M!&7Xb1F4 z;XUk8*Hv_@;XdtU8f#j2n0y>0C4=;GrAwU->s2#jjiQYU$1Svk$VxObx3Nzwoku*=fMM}i)fSH zPR(aKNx!B^7SRt(IRtMHB2A(ZqNad?><`p`A&v82M>qaIM|!r{bBjJf0xIzlAN!3e z_AGhp>n}=7zs$n;B?Eyz#qUW=8JSk}OUJUT>RVo+C7XiQBe+*yb&t1qd(x&4rX?Li zXqdxJr4I$^rSHUg*g3OPg0}%@WZf_>827*6{K9hUugiayXBqcAF!jV}wU z7*V%KkB=VIOe@;5M)oVR$Nq}iYN#;uS!#?*Oh?pk&)KVBkES#|?y>y*Pa*$WSBci~ z@~4ifv?N{W;pMT6-l|b5CqbFXW2?I3Os(`twdLqxrC{}A+myS!On`gHq#@VU&@!QO6L3zlKXrsn%9Ge z__d>^OFX#gcnSOdnu5qr1Ophkrtgrx+*5KFU1e?TTnQ$PSNgM`4`tVwqL1?F%a)a; zgu~U$sgOgS&OzqnHK*i}=bo)lJuq`HcP23Fu#_Zyy~>8?JRl?*A@Fdw20e#gz^v8) z0K=70UiqJVuWBanPjzm)EHt8B#ELoNN5fERGC zp2^^iN8$w}5Ow*aWDh0w-m)SRb9>t?;q+oC-0I$YZR=uxo+*1dE@4!5??PlzoFC1^ z8Z_mw43~2~R*EGM5us|88l_IRr70^YUQ-Ef9)Bq!P1r`w&Ahl;RsY%Ez8~~(p`e!R zcX#V1*+a?oCzpdn6+?~=u@QDYcA2vWH{C4ImCle-`+^vM#KT1Z*qY&J!v;_zvSrUk;N7E|c6^MFYf&xJ3jx6;LUk({^+C~c%MGqxuNxSDhVDk643D*# zc`f3KYWni^R;t{eC2f9;vsY;l_bw#a_^8NPa*i%rT?0u0qsM}I=Vg0>VG)CKGf?Vf zlhDf|VF27wW4t}Zb@7d5NrmZ{PyMe>aJ8P2A8XB=ysadO3QrgLti54PHH~q!uzU9-E`POD5 z!n-qXbz4h|XfIwbp=V$qL~TIIQpI9``>l>_M;`GS$3274L&S(Q+a6*x#DK^1X1}Zx zLd6ekT`=Bao2NY6h)9j@yHWhHyxVr#;{NrOB)jbu5rjX+1` ztc-``EU`)31ACR5u$HGAaA|e7>13OYp63^*?3xBGOjpS z$H2QVZFIK}Yez=1zLcv?3>PQYCUPv6E-fc2xH(LD=L!Av6eC+&WsE0)6#}$G#Tn-A zWz&^czp=O~*9}=3#^=ful$ub-vRW0xGjH}kTnLCW5khTQ5i=s9a$b}kzjCUQDz{io zjpcyG9dfnWE=y~-x3J&tyh&SFxyHz7XNz1#uSENk_iGS@RVilwS*p8sm*5-68faOFk7IWO8lC`kP6ASa5Vy3{QJ(qz3RTnT zT`{C@Nc^~4Uam8wOkAc*m)ETZY$7zcDEfUi1#CGllF^f`R2G9*fDSWHrScl2G-PWS6Ng;KfMM?;{xLgJca5+r|Vhu7|c znVM4DkRzhhvm*VdqrI?6$;KG+Q{Rsr>&5)6G4#WLDFr~HkKy9Yjz{IN4pkLa<07nH z?LbdqA*4_0-p1gE9mi4)A%}!aW=;c{x*qnnM6hq!5lN6ETAjZ<=8aWX;iOB_>!GCg zvZW${lD8BPf+lr=5U@(c!0!{qG&QG2_0jX;eF2rj@>im%rNf>8cccZIVHT|5bu6@B zRD(l`j~NFUUcsn#?=08C(Z@%flXkdFjoF>7J*r8S2Y7m6y(*}t4oyblcGJ6v;rWpC zl>wm+pSQ0Rno8vLf@)M7&<3F$@4NJAD!qQ56AqYd8%PQeI`G>^LqpdAb&9M;X?bag zK8}p5jtMaQ=siZ9&7K|cq`ES;W^RX~RWZt|7h6qx)Ut+uPg{y4@8WiM>uNhAtcu9v zW!9`eRWbskTZ!q3G9_gO*9^T1Ue*vn52wcw60$waH{Rh<@#qS~xywJ6Q+L|bLai8$o7Eu>?URv_z#vsLnXCV-}LkN zjuNfHJ?srU?<7_pO8WW5;9o_RcGyXL=-EkUuG)ni*sZ%;jrFvwZ5%0MA(B{2-r|U4D(VCLmlV8Ukkhn?-3fkBS9#I* zoE4eGnc;EvtV}EE4aL+z`tgftuX2Z`b!1QSIKaGMZ$-lq6-FZqkBc#?ZrtSDDP26k zB<$J^g}qUqW|CqFuf>Varn8|GSmq+hpKz?izxu%gtvEIXSwt* zyQ}$Y59UZ;g;gS>0rYXzCYYY2b2!krY?oMo`{|}4?P6*}p&$22Ekl4DPmY$Z*pBq^ zWI!tt<38Ri>@Jum-3$ye3hiZ?Cx_mDKN&cu_Y1tow^d>ahsQ`?a`KZ3PQ@%2!P;w! z=oz@WOOa(F0w^MMu+PFo$_Cn(?3PugCrE> zQM5^9lXHUyP3Ed@Hw&z1WN?yah8Kb{bJ)1}wevHpm=c5`k0&R-XrNf$!5RFY1p zHp3hKcFL(IKvdUUiJa|8w9P@l{*Avb`1N1R`AQz)YfGmBo74XXoSysZ;zIxLff=2rOT?9DS>CdT5sZ|c z{}rfn-E;6gSb#(GR%Gm;u6qMwOL%RV`Xwdomo4FCT%UDzwA%5FJmYg}!MV+=M294N z;!;5YS;8l$FzYmaR?foRuq~0QDl6}Cdv32%t}e8#d)nmHt}Hj?W@X@*U^gw+acJ-Q z`W@%GV38^&?coziNoE?Do}P_@>7=YGrPloDQQ-lzd2HBb*g$>Q|J23*;v6$OirBtdoSf#7Xnj$r2&r6#@y_k zsL_slp6!CYp01s3-cEv&y)kZ2Xz9P&SDjA(O?p}~y(7OcCLFJ8a9%rJ3D8AE7xiY6 zlXI^~Mnj)W_P{euf-RS*wwiqMHYOag$lmYfVqauE^ryWFsv3KDjVqcfHF*#`_4R`5 zrqxFVm#3YLZ{0v8R`Q-~7q2ncvP=WUjn7o|EF}HbLCfwoNy+sv5`FW`?#eIE)Hr|j z#%@zMD}0wLblq#*m18U*++gFkHhB&SP+zfkJ`&Hxemw;_hxvKg{g$$ujV*2CHPivN zmNHG^00p2>K*5wIJ89b3QC+%ZIh^UJ@X(y+TPbv{il%FIE(CY9@>oXN&Z4LzxR63;>xSO zaIf9Oz5I^{|3*j%y8CotqVcW_LkslbDE1Z2*zrz?d{{+(z2=SHe+t2|hbC_!bO`+e zR=Ra$rMExt@7VUtXm9_vQC4Tvkvf8RuOi>Z-z~7Of&-LN>#u_rptg`ZGPlIhB2PD* z5j#yT;wPTXCEOTa6?3$Re>Y4iX85_^ImH9dEsfPl*Dvr5?wZ1?lzi`{@i6U+TZe@h z35-kH+P-<>w26_hnutK~&)2>hgY5Ssqc89y0F>MRx>dMhbDDN4V<>2>C(S{OatEqi-zlSNW5}UhJp|I)Zg{ znvo_7%;26M;y(6WqxNWzES|>961Xk!B`2j*2UasD-&lqNZggpV2+3|dx;}Z}vd<5F z(dB;{Vb#6*=S0x5S@jQ@zZ__V?eaBk_N{9&EltZOKLlp}ZANJ@`$r4E=-O#h^>d5U z3)CNd#>22TUq`! zT(0QGYdB=4_e~`Rbt6Sy#jswX)oehS>e_95V80QJGF176g~4s&A$m>Lt(;amWua*p zFRk^MSS@7fMNq#Uq_hDQm1a-5AM}Pdowr(U@ez8VVEkM>oOu#}SIP{$3E$@{N01J_ z=Rq~2?*B4wVP8eSgct6JE3weYm~bymHzDJN<&Htjo!)MD9$@(aXk`wZV<%3G#pf3J zpSNaLf5K;!Nad|P6saR;3UadYc4RovJ2b5hJPxsT*=!*7pnzRVx~=+PNER zWQftq*LL-nPcp++!#^QM_KpPoPkS5pv@<8a96D?5!q#1%+U<|Ytj0#o56(%LsGzgC z8s47q!I*tC;q8ko1H^#L)Y3WzgV~34%t}-4Jy+^6mZ!wLRaMf^v zjrNLIFlwwpcEG7x?$@B7A|gtl##&0Hldnc=2CP;pJS!#Suu~@-0obKst*=I;W%UPX z-S1|Wk0kJscsip;Q9g(i|?H;Kl$9k znxNKBGK}dXtamDIoMD_>$9(OFEa0atqWgI&4a^CK`n3KV%OyXrC6|+;^j!$kQ%|Pg zmkXtusz?<@8!OkkM-D?s?r~}MjSf{=>ZNmBJPOp#SD`x!?>L}$H{aOd} z7LyPt(W8`0^6rv)#t>Ku*)iOl>nQjei}_=w+cF#TobFKLeqFi+qNtyUUaHUcsvVrF z)_=?O;Y0V6CoSCGuqhE|0L(KmZ32rIKons`RkH-;Lp1fbE9Hf&q)cnQ1@yz$y!@Yw z)K@O&d6c;9sOu2i>?~k<4-P1P=F=FI&K{DoV~umH75X6bp73gBNB-_ZYNVvqI|2&h zm3y#9_LrTWlf{yAFAEH|%pD*3>pBm)Cu@t(Y&*WzdUwiO(*c8{%(c=Emv3?G*m(e~`{*kQk==3Uw*r_#AfQ0+5KUiKj5h5AeR-5O|} zFWn?95Rj?(7?5oX2&6LCv4VQGTJ!5lB}DO|oOrybkXsS!tJpZs+>FmsM)9?m+r0G< zHrKA-&#*37hT#j!fJy8(zU~-#%-a7LbF&pIJ`j7SG*NkEAV?kp^YC}g-*0l*)~d0#P7Lct09*7Rp|PVnE*lk zM%>NK#XfSTNK}PQ=9BfW0f_WaJZ1!f_#H!xA!gR`CT;>-f~}c`c1z4o#-40BoWUbE zGW%dqHGV@{QmQ}8dGjgE^|yM!3Khn#n%JNi%zt(pW(YRPEzc5hR`ZvP|0;cB^7h-1 zd-{c+j=fb)I3sbG|@_o9r-H*mtUo zHyuWmneJRa8A=dE^sdh$qE_eF2>{ zy>xGB#2Z6CKt+kvLh6%idp^dsJR(GwL0}+W*NBV`^6ZS#=DxZA6Sp3v%wVj`*P$!;H%6y06a=76$u66`)TW+?MVzBMT#ovi77SA~GfL`L!11#hWj)^vT^i z%U5MZN`ebBA_f^Va+P|g+w0$0*693O!(N=%@?Fd{s%_jBN=ONikavYROBEq_^Zrm? z&)B#vSYbxq`_0ind#r^`n;6xqM=*0qY=PtTLO-L|CLOHL2dG;3Oqc%E_wOgm&@l+j93t+Tdn`2u@^*wuTdw zysCYLy$=2;z*;_<7?0)jf25?Oho9~l55^imOu9@(ZpAL26}Ec42eZ0E^o?Gb}unEze9^6oiu zjO6P(;=ULRN~l!7GeFX|WzI)NpYMw6!ShGyQX|vxCsy@Vx=;0!CQ~dRZ-9s6AsOM+ zbP!Sem(KAbC0?H=gLeDp9noc*9XmUS#jf43{j_& z2;#xBrBjazS-j_?EjXEkZY%Ai0U#idk)Ns1yWp9){)aok6SKY({ zM%7`(h{nC_Q{j7@tNi~^D=q}*Z#GT2w;eB?ly9({PyPA7=+ z8v0>kYN3s;sh%)oGY4kiHN`+%?|v(+UsI_~P_rUxpcunkNYJl{v=+~6L`Uw!0qzugq=ADYnv z?e6Yw?zYONs&Nn3j9FVQ5j|L;mL42C;q}>JOdrb?rqb%C$ZFfyI3iiH>(7j@W}965 zn=@q;R+Ay*?M&e zoG6Z+i1rrLDX6=QpM|TyV1Y0wi>b4-mv}^F!PO$;!=b1nVAzy4TX%VBAKA1BvZ7C8 zdiDz}6&>$cB}Zos54 z``KBc#fi_&Z{&vj8~s_+NAu;TT1~&{Ou&)jKxx7d*=~{QyqlIvgYlaCPMrzq9ivsc+NSXn{*7}H~?s@`WH>st$Bw&PbYhN0SM!a zBas^8vdiqBW}26YruPc{3dsFKKc~k-z(T7@L@#7O1w-|=EG+&bUO+?Q{$p{6CrL&i-~eQz_!E~& z)=0TBBAt!t*8)1{7MBsD$4-`z(Mhjs9X!vaeoq54x1q#LXgb`WbZu_qU`l`r!U_m( zfbdk_E#B4Oun|7t0XN0aoX^&oI)~z>h$XWsGgy18MqFcQ`v@;)8 zzgN?R6%bWTACNV)MJY#OHa28bm+-;Pc9{qN7fnvXu&k0N1|C!m(coi;eZsmj159ZT zXF+@7vsqVSm0Iu)xaTr;J~tI+pJKznS{JXUzYp7)?K_eTYkec9s@R15F~5EJ$7CJS z4%=uk=rlez&QE#uhsX?)H^1fhe1!kNo7Q^-7&uoyY$wHsg%7ZkATeM*8afnH&wwjp zuqsKcdE7HLTH1>|y`SH|eN9dJfgzC`o;3}!&~2Hms_)n4gBB+PVIYb%x*2GjJNL8u z6KB!O%sDxB>dS=-pT^F=Vg}qsMnVS^wk@AaH&romEqs-Whn8WKDit?=4G_%wX|YMo zriAMdDKPM6{vDPU8%U%zP0i)g7m>B^*PnBqpLOf}dTQy_;I$Pr9K9nOLhOqtXSx`` zLfDILNv9w4Mli;M0G}6q8Bs3VY1cfF_9NJ;yM+bGWvXa;3q~wIu5&g>7b{YL$7kx^ z`CecCcA`m+QBSc&?}g6!QU@Mxk=@F|)H>VUbdNWB&8X7*Ag?Y)O;0@T=*|-W00bF< zeAM8-8k=C_XB(iR(bDbZX09ll*cVVb35y#ok^(4_@p_U~S=;GAxZw883`jfeYzVHg zX=%90j>WMk0}Q!oI~&~|xm zGHcG~Z{vZcoX<&Udis^Vt6Rr(IP-D0P+!Glcr}!;F|~KEQfjMo!=^T42l72L>}@X9XA) zyy*!y2U(U$$QDL8kKSa5^O9FtY>UnU{ZXWnZNC4%l_>x{*fj5$N!>Q&UsFP z%I8rjHRBG30^yx|>7Z<6t{IeSqDlfhcyssTm}KTx{5-30q=F%%f`M?}RB=C%)p3r% z3+B~_Y|KoQ=&ctVOn21VCQL#=e^NpE+J#n!?ZK4SYOUD^wS)fNXtLFo5L7Sv2^aMz zYgOp(Br`-D8vDP|CzSq`h~=U6-2pFcXJ3xZQctHYYO*WX{J|!vy;gPObSZb0cHaMo ziH2vJUhsGO(7(ef#4h~7fyw_T8h%u@WI_1OUm&EK5GkWcLKT2Szu0ipszz;5XL$CX zz;L3x)xI2Q*t#AFYo#zkx%Oisj2-go=1<$V*7R2Njf3m-4<-_Z{j&C+Wug8c*USx{ zz3Pb$uGm+R5pG&!nqlhs)%t^PB}}Z{oDVX#Hw_-23Z(x**!4!t!4EQ?|6$WwGi}W{ zin3KNS}Lxwx^XAq-L9}`{e)=dp8$Nql|UNwkQ@IuVYdcp@DA1-TwZuu$xOia8Td@g z!Z%odc1g2f?t;pKU7+qKRwJwHB8T&%@>*ObtPg(Y_V}f%!dCj(N$-^wOqsqV*~P0( zk`n}4mpy|(U_>Nv{>q%d-%G9Y_eTNmnpD3B5f$g{7E_* z82oF{2z-^FQ_D@)q3SO=y8T~V8*-4VgHx)1{wOj}W35ETG^L;S$FzAKS}`~Wr9$bk zc@31%2efhVX1_leN3YvX-l;UM4zWJT1-{uy=8%EVOBA zo*}k^`to-uC6RXjJD>n{1D&j{DkP$ThK)7UuUw$g%(Tkik!foL!3*Zdq9&%Pb@JJ* zSl1E`XW?wA=H4@%_N|K7%_8uM;6xzh@-N<=pE<=5cvlIB;@mU}n6>K9#41+b83J4K z5RygL3y6^wtsP#8M~JS+k);}mWkn{ef!(vFYklGHr9r#18QZRzI>j?STc;0Eme1y! z27wSROs&n8`6kI7gv<-wzq;-H!O;3>lecl=G&#%d4S7Z`$ z*?0WUPpsXC8AErYp-$@vllkw7x!Sn!YOUnP>0JJUgZ0i6%c!p=Ta!tLB+d`{8h`%q z>ThHYe>_@lVxH<2er^bnYc#{|vxV$CJtu(H#rytz$~W$IoknQ>KVXsjpRpM82+(c8 z@%@Br(C+XHp_LCXUMTS**G!OsNx}!LUm@uV%*LX}`ao*d?nCN-cHpyUOcKj|$b$m%g-ww>mQ*q7 zg2cZs>pW*_r0|@;c~%DJ74ZCnKPE4a+Z^5UC;3Bzqwnw861OyXtpN}2lcOUsi$xi; zI{7k|S<#wJC=x77%lW6rRl=QImj|UtCWM5SI%|>?SOARdvlR9Fd@1*?!ehUTHyv#r zsqd1jeR$7SM(*MF8HpDUp4i?gT)?*v=n~Nd)Om`EO84kmd{yFgfKy?+SFLP~$!NjX zP{W;D2G^Gb>=E-mS}-7RK>!gE)!|m3@s3G2=T4}%Uc9$U59ov2sQY~eHdFiJR&_`P znFxG@r2r!Rfr!1pX3O{Eq|7YivbU#<^26E|Krg;W@JV4-8b0nFe$Y1+v$cv}s4u`_ z&C<}=^@`?Z`p;*?n0K#K9P3C6ad1(_eU=7L1j`QaJoi13oNvC``zXD(+qa&j)Mb#x zGEIE5df0e8oyt6NS9WQLy1C)kp_rK6miU+YxZGzbtN<~RSlG@a;0k{SG&K6~zX}ce z_aDlCzD2CAnP(6j80FS`9v1irzjZS}1@3#s%vW6Q=9c(ROu3wHi_V2U@4#SIhDuki z)qVlTi?okcPiEo+MFSM$aLb{~y)dDwZOfT}X~C$0H?Xi|>0%mK&FR;xtG8Z_Twk+R z*1zGXR_`4q+HxX4B5^|GUy2#JC|~_&?bAsyjo(&xnmRVZ40rW4M{n%tBERDr6TVQ! zH&OjG@lJa{(B#a1BQ99z$X$!dSNwy^-zz^o3cfqO{3c=QG>v%z|Na{b6!rdo=HF{C z-CubVK)hodb?8!NT-kJDLjU-Ez~3r)|0X(6Q)V%%{P5qY3R6f=P`>(;(;_k@ zjw8r_`N(a`Dl5jEJ04qUo`TVlE<6tUnQfyu>fN*m9s`vizhf3 z6|S>@kEkQ_!CA`9%++(e1HSl@GqR{AWq5K_XiLTMHEoYETWEAWVjCfWEs+u5RO~`g zQ`|FC^m&BLmX2T>Z)2uCYD_D!n4H^W5{$?+b;#w5ua3K&kJ6AkyG90=5 zf$#f-k~9MfsDeIjAITb=anHZVeDzBAZLl4G?-3Ab^KtjIae_I))HI z(_l?9;lV%W&X9B(wdhjRLlxCbOTSB&Op>F}C_^7c3YUI|QO$SN;sPPiC5^h2PDwW| zY40b!bNHNh_?9Vmjv#$Y9l7`zjvDwYcRME&7~CfCP!I2s3%=}p1ZByjSIJV(0B zNT|EH6CWSCb4{t?`}V4L#ZGFrv`&Ts)Hf+u!G~YWgSFE@l`bu|B8?ljFQcE;Lr5;>7G3I9kPYdFZB_@ z)?-q_+9EUh5%8QCAPl%bF=#Ng0vVu22^GqYl)y%3!*?W$9fYRztt6A)=WBAgdAbs* z!(S3l=I6af?fVFXTAKy;zDkQH?~vk)3%qgno=TcWV&xQkGa@o23)?+L*jvZrAx;l} zgTWy~m5tw6*l!u|mXVnLnKn`FbNDUnR!&SrD#k6-gflx41v-K^&Sg73TdUloWId_@ z?8$CE8TsBI!FsORdU<*67BjC9!+K{jNrUbhk@=?kf=jo0F)BObN$-a>)EHRmVq4o) zzg;nVf6c?C*~pI07MPKr@<&4nk;o#Nyha(*|IE<08Hi#zC-?h*eo_BF_|MBSvTmwZ zin=Y0evzn~4E#+-+1Bx_$@ZyGyY9e#!VfHLwvS~XkawN)?Tq2v+2F>NNILFgj6Kbr z>=+ZTke?In=Sy43N2jvwE*2rhN|%^fq*Wv_WvKdg=4ZW$i(FGXNv7yIRB3zW+5_SM zH(^@u>Lv1XHZDXCZluVXDY}?l;|cYpOf9J+rrFjN*`9n2>n?J^tA^a+OK?#h&y0rm z3qw2lgbGV!zPewn9L@Dy789pv?SAgKK&dhM{_AlJ?-QqWH=H2#27mX{7%zY|EhPg8mQo-aD+RtX&&-#u3MYiU=spkt$tEK&soAbnvZP>JV@-Gd;$i6Q?lI4LSR%gF;8-%AfqJFZMfo(Gq2KXT%GWV>m~xJVo1g;TjLntGbcN=swn6t ztgnAvEx=#nSKT?=x59vvA1AL^DI}5J+*isF5<)`+qGNEwsnl@|g;gr+y*r^BL)X zP?oZOg){W?R1DyYv#e;z$g?`*XmZ&jD!M249jt44ZrJXuU~@^!yR26UCxXpiDmD4= z`%?DiBbN)_u(7-`W_es^zPY7S^P8u-`k&kT*Cl@ZFZeb8iJ|>JdMbO`SDbN*6Q%ne|Dtw1H7R<-lfphm#cizzO4f1D8*TJv7~ z!Bg|zOWI)FjtOWcOx+0-$TY1!EgX!ID~imu@+s+QVu(L-d_(%mIC0#Y$0RIxE&$Da zK0|JxdeV0Fo2LYWBB$PnAO^E}N6%aZ`F=Wc-l#PfD;K%EBbvAj%v>f$d*@bnexNQZ zBcs?##0{SNGvbq-@xu-dSsIk%D{-cgY-&JuMg~W-$KW}6ldxyIm-=*@?oP#L6u+=Z z>k%vAJmC8k9ENMeNrj%-^bXUk%u=P!Tn<+8{c6L`c8REA=)wXOSHMtEFW9!HjV+J- zd0oq`Cx0k<(#O(|}N!PpCvM)ZjppN-fzv56-)8dY0?07NFT3e$Y|4sBXZ2BliT zBWL}o$TqmI%#_U~gU^X?hO0jG%B;%x3N?a=#p}(IV8l7;Ed>RG+02OdSYqo$J0zgk zHn^iCBho=R;s!9=5Vc%|hb6ca4r4f-TG%{3Hcpd4Cm?a%;;&Wk=bRBdd3n7y+_nj- z?()nC_owygjyK;`p{)yhXUjpDE)^K42G2y|uUeap~l!iJ6hDOrnuz`3oE| zK9}FE#A)12tjn6M8QP}$(lqHn!_rmha_XMUw7PYIhWgA{>L)K35zSK@_@iu7yNmX4 z5YO21oFWuOGSb^39R&i)0;QVkRXPt&J6s$s5BDnb!={QZd9*CwsuPf)v&E~OY(%ps zvda1OqPv<~J6jwbkA&-Gw9*upS;8OO)n%at47jKbiRgCSuWpZx68@IN1LBjev?O9U z!z|pECW6u8eN_evLu&;B*3ly{aL(6xsOFPT4oT55HA}zpK;IP&qu`6q<*=9wiz?8- z5PtOsXCcb3vsxx5>>X#zDC{I-dj!!F#ARKt9FPIw;u0=b_1-^tVQuAXpKZtT6tLgY&KLT{J@jVNC)t8~?RQz4BPjBg7}y(^|JzS<%}VHO>-Wq+X8EH?w2;hpxN29@@ZF|jMa)bg)Ve`A9(TSz|_s zK4lMH=5<-1Qb#{4zVJ?#r?OUgS@kI6^}gP94?S(N9_6)M&8_*417`#Re}yqm9E_L>5k{VP^xfwYO^v!bcQKdffeLfLT+&$ zBCVF(7EANz>oYTsx~hS5i0u#CP99(HZL?tYV%4=gJZvblQ;cT12eX)V6|aY5Lr|n$ z@iGm9*2B*0$`&T|AQd)VJ*fibV!x4W3}t-LJ3jnf3;>$|YFzfTRmHsnIuKb`sizLP?|)*$1Srb`Jg>oI}IV zkr`4!K7FkYUi%Q8%crOkczuYWj00TZvs1+&n4Ki(Ji@@g+hJ4%nlK|uj0R)>~#P*5F*L9_!87!%};8G#b>y=Rk&+de5anp)pq~w+~ z{wL{ov6r5=&3>A18*;@GB52(FL>!`W?LiXy1-c+*{PgO(i=>*=NU}}!4U?IaaHi*$ zolpFkE4xeIOwJa+BiDO8uLN{wbW2W-k=ZP1E5cXMHbNXyUWuz+b{FeLnSPRgoI!Y5 ztKausceeKmm45?YPTJ!DLNaP1RTm%|FLux9D5cp!=9>od&s_WM&$rFUE=?>Vz8fIs zEn?~F3ks-Cb^F-R*uo}Shjn!BKI@*ND?}m=J_ct+}BXdU!VKw=ICHi!Ik<;gbOY79vqr?DwSYpK4vLU>PTREZj$_$J)s5taaWCY}ESbn=1t6`KQ<}r;-v>j9r=$cQfnpS=e zFu$%||a8dOLyJ^I&436fQpOdoQb3L`r zPe#lyO$PH@mt%}S6WfC0FKru=f_yVgPj+kDegP zZ9-{G&S-ODRxsI~wpa^k%o+C|R%WOxZt~AjANDUiR^)VTTtptdre@K60($ zIp$N+qey6&-RD`!*VKXcrf;B@qDIGE0sUOuTSbOG{=LlmacZgIvuQr9U+ORb8_WSr z|3zNT@03rU^9FJWdTy#)Aw|{WT>(c=*7Jkpny6RqElRT~(7%`+N;GRD9o#o*0Z+9< zy1nrV2qC4Fz(&tBy-rucTCpPVMX}OF!(>ei-{VnE-~Q}n;?4W0@+(DCz1Q_2v9Mu+ z2jFsgJTeG5>G{7v+4N~`R2-{=W;(y)<$*giJWUPPLWP$O1^!3LXX ztM&?q67&ae^0H38Q)GwHn|E)#4ru<{_H&%lcc1@l*EPE=yg*UXhs*Y7ku0|d*B9J$ zxzbY;XH>k8$}h`M_Wz-PrVR)l&#YXvW3S}9(<>u7nC zHvSfb-hrjdWe72Bv*M?QS43l<)g1n8_kO`@+j+Dr%EnYLP0vg0y;tF0a zRO7_*7m$Z084Gj4DrqaaKGtaz#Fn~7taGz}nZu5hcVWkzKATlEA|OB`J?kW6Dg4-z z6nQ{+XI{k_iq+75zIg0BdHj6zGFXsxJtLuKG59hkM=PxrV8!2>Z<3RoY8^oWg=x)k z$CZx;;XRLA@`AbJr{HJj)~C47E1FcHboMhmMcUSHe?No#TK9!S-5Ay`8Zli-~! z)qFR-vD;4O89P>3XrY{dCbUHigk^2AxOZ0+>U6B^Lq>A;-znEk}_|Nx7c^Z0;?G}GOu*B zjXqyoPNrYwo}o*w4B3VMz1`fcFNFHLMt}A8@F9|@wgXxwf8EHPzqdl&^EKm8^Xq@T zI`F??jr_lUx9F7;*ZmAZ#CGY&mh|>$KyPDI!<9>4a*+j!y83%RZ9fMGUH5gXA-W98 zWx&C(`@2lSblE$%5!hC9p-7)-tws%l36-je(VyHKE+Og8!f zdgeRFql*tKrlZ1LzB+i4;cB08 z)J?t0=9w>3XA0yJpR+%C?@A`;6 z!y62XVq_% zVc>o(5-)$#S+W9H*41_0s+z$>>?5pOe2f!Rf(ZxW^*d2cw4T8{SX0E8r$0u0X~6nQ zY#w!9EAHX8%_@0OST|pvozaC+h(&2?mot~gTuLqy5y)*6YRrrENnBZ|q98RiZv>!& z`|P91>GwXYg>Dfg2ZY7CU^HpO_?f5m$Ww0yIszL|r>!CzAsnH0R%vo=@x@w=J=Ac zz|p=sp=!ZtD+yYIaG_W(2Av-nv&Nr;Rc*aY9HSEZy%8DC{={CGiSdic5JR836Ze$h zGRwv9=}Y=^O)l|w>72%i8x7O$t!x^TkWEBIM-MopcCJ&FS0D1Q2uTrSI(IrXOh$g; zhTC%J6`bCQm-dz|Um_Mf{m>#!XBD>$Q&-Y@r+2Q~D)^d|m_gYAiyrm7`e^P{0Y*6X z&J@$-z{Z0|zo@00H1mnIIA&#JI1PN96X-g_7GJ8=tLTEE-8zYWOl1bymiGMa5x+0n z#X5D1jn#JH}}0L<@-htvh(+`e=nZRzt-h{YI!SN zJgckk1xWC(;@hk~49sjj$LiRMKXwvns!tE`N z^O~E1tMl`uP<@LHmA@CYT^!*mAB+F}1`F)|&E(H>6~t5j^<7;1(;WBD@AvG#Zt9Q! zmv8z1$7#iqDlp`J*`NIl{#|K*MbNsqZ;f!Vo`k81}W{-!`4K4*nxjF^eM~Al>`^P ztvBNMB9c7Q6TqMK<-$sutAC~&c0$vTmVXU=c=3VOlZQmIZ11MW0x&Lbl{U>8B* zYFn>zxadZ?CyjH>wMX$o>tNixX?1Pw1)WHBca7(+EkJm*=GaKl;3|^!Q}Lw016J^2 z$B|%S=?QU0*5FYs$$CG*MxeTr+2Vp?3Dml;KkKiMZxtt|-6`@qa2r!U2^aTT4p(qJ9`qz7S1W|f_6qC~fyIMZwGFH`Fxska!!g3Na&?Vio5-FT;MGG%mUV?Ni*YaS=k zL&?Y@s+v#_GeJ?!opO}}a{Xo_WEEOJ7EnMR!e?QKl&oa*vL~bj4ld%pHNb&N>^5bx z?$cLLRaKSYbFO4V{cN%5&`G#@UId%|LddK>VR>{RV35v4s=hYzv=$ZoK!;m8I+V60 zbOTm&ozo)+c>-=EweHS@4Sc$5Hs$RE=*yDTjX5u}CQiXIu(=<`!hS0w?Wfx+T=jZ| zl}?vd$=$e}a7n+l3%{TsLe4X=_4q;hge z_@n?okudcxSd?gTTHMvET6Hq_1Z!5p`un=gpqA2hMq=CXV!t(!*%|~HSKegyPNeiqbvMg6j zoHI@Kg@K97-Y-=DICHM`7G3ey`?>{*n4q`3F{u8A2u5FdD7bbyFY8N7vr0d@i4k&s z?3Ui}y1pI#CCyU%lPSzWJtuYT?e)h1qEY&LMacX%blObTm4Tc0zS(zlsbQ>sJ?h2D zk>z%X|KZ`fYhQ4@`)+$7D#NL3nRhSUnu@rHWyhF#90mq%3zn0Cy3-)YX#;tB%X7dv znC9%>BReSW;8<>r*uS7Py{i#;o^`bmcZ67yc*}LdjhumbUEtQVD)=)?n&Itdzxw#3g*J;=doF@x}!xl;I_5P zpOdU0^KW>GP$J1A%*xnrw_byjSW7Ee3Hn3PTW726rqWyn+)GEkySA>>(`-h&B$l^_ zl-S(zmVtn4!K%i}JcJ>RuX5&Z%35niSB*b9!~wd5Pt>Yk$>)X)6kbMtGX&h?tXnG@ zMeRl=enh#qAMu6#JEdA8SDBUv6e2RJ_Ze8lIuwN*QM}F>pfd#X75KC7|S5f2a*q1 z^&ahfQc1N%`TXtyNeBkk5N}{!w2_GHB6}lueMjs9+M=`NeJ#woDIL`6ca4~e_Im5O z{$C9wZ0b!Kp{iH!%B4CS-5vtjcIKGkmhqy1n)K6S-+y z^uoz38s*;ZqqMANQvwPDb-e9y4#_sLV+x6^hx8sJD?c1D?s}2|QHXbUQDTj$tM6T) zxG}Mvy&tJA ze6INTx_fl-o*kfvuF(kD@KbdG*bsxsrdF$JpmYEpaE22dp$`;)-#7!o={3*4V!+6H6C zLm*cq6xZhqtP!~($`8b6?b$r?0OR(lLF$<5PR4Sz!-2y45mGaYqZZ*c{q~MgFuIvZ zNp*Sc#U8|VREB8rF-Q&3vFS@Fn!#8b-7IMEHuhe9kC_gJ5N~nvuQYJ9EdH&wB7EbJD1AdlIy7AGN;8NB`G(=UobA6D$z0_y38M=)*d)bsd^_YG4~RlT1@Ful0z`Qh(&bwGrXdvQ~oX<;irgQXziF*)+fXYZ@krbV95f_ zIUh;3ueZq{QdBjqe#Vu}D%$U9LTN_I){*Z*zi-^iC5MDH&s;4U$ylB^h>mZco(jpy zp=nqeYQ-2X@N$&FG3tqYagYGWZyT$(%-S)YMd^G_nBd>PPH*+hDNgSRyt!e5(w60P zcOQoNNtZ8@s?RF4{FGapK2~I1(>Mb_78DOlU>OOw4TwBW2>Go$dIijWC`bcvuPc}B64L3ZQxI(@qmCI^7xcXL83PHXKCO~&%f5}Rnw)z~F_1tR4MawC?O47w z8VGB>hfGeWI5K3o$1G*oo|?6~Jid#_;;%P;U)U4_^*jbc*^j1W^Ge#ip^lba3w`;a zjkdsvr~&7ae$##>SR7R&XU&9)^^v|6q*^_hr7wMw^c2-M5^hUSCPpP7tPfHWecg-% zK|!zx%2N7>DPP_|eM)R`uId=P$S?#HD3`;n`5=rCZcwqA-j`2lCh4BTY^9pwTuD-Y%{f+I>>O3pu~73#(VR89+I zxWE7-@d7SZhqiY?C&AlNT406FpzK}BoF8py7nt@YRZ&-Q^3^Y^Cj}nY%xjf?975Y1 z-YiUZqA?eq+xXo-&wwEhw{52P-hVkZPYJXFjEx`_6pc+I6nj9G2|1zheWQxY4{kNe z-{>2Y44Rcx6Gj2#W~qg15q`GByl7|_tPL5P30|VNqQqgja{;j}8Y9UKv|(*+tU5mE zv?4NmHv5$5L2IcF%PmWFk7*5Cwz@jRgFgJ=dEm>u{s=kF`qBvGU;Rj24Ypp@1=ru3 zXzS5Sw9VUV@$z-9YFmLv0(mZNkW# z(d`cqW-Mmt-z68?uRHJCV4P;SQLQV+l{Jas%`QQCgq^V$QPpixr4h}2Z*USWS0uCT z0z=GD_8_je{w&Ww&M0n`k8Z|q2G?M`3XhG%>ZX!ARg@p0TC5j%#`Xyd7N)$>r!f&# zVPlU9D_`3d?CUiMgu%NV)jhZ#y+9pm%=kEvu&LeBvPRA274>^bn71=(MK*;KY0qk9 zyh!p&N3ZHJRBI96nD{w3NJ*5P|)^qIk1P+_sVl?cbIa@^sRarLO3`bsd~F4bGzuY+SOU#3tPw+G~ZWlz)QYG!vFi zLcN+V=??k2pm0GT##HW@4JD2JlOe&(-D;;=Pij-E`!E1xsmIXX0Pkb1d4&waDgWRZ2w{(}z zkp;BHb>~O?dE2?O$Dm+e&nVIeue=VcL9 zl+%Pnw$rNpXd{@c_#heXkyP3GvuisfXKA^M`Nx@r>=}Uz1JNwkvWCX|a)rtPr$#v# zPw$`%G4l}p0=kl@*413jAeL9mzNWU=Nk+{!`dp?TQTZ99q;o*`DJ7-FU3!(p%y{Ou z?vWHxrg%jwR{E+`8%t$K$I7`*H5v~4wXapsw-7>9lDac)9^=6fO;jr>yV0v^k?Mev zd%F^PlQAOtYVNll%UdWsrkr^tl3*tyInD$sw!uFrFUGL;6<*(H_wBI*FPXHL1t_sp zZx^2ww7!}yS0Tj5pJ>|v%i2oINRKY7P>sIGXL-V6vx@5nd4;Ia`73-<%{q@^R*JG# z!r09tWf`7L@O~G!->9l8^_f?3IwfiL4b0x+{U3b z$3x1VtNoirH!M*()QwQ5$u)Gj=%6qXGoa@bJq5!A33n;oS}s98T1*0sew%xDc-EjJ ztvxQ3^V$xkWV-p~&$}7aQMq1-PJI12ddaP{FxcZstZ$57!A>HNV0T+UM?2lqZu+2T zeycTjQHxuGP-!P$9PP*RGLgqr`(|VX#f%mM>-n^^`QR=n(@6)E2CgM--iM1OZL$CG z0Kh)#=+fJp(UuG!fZ%Efb%4!5c4gb=g-Z6sR$`%Q7gtvS%k6MEpv<{x_fF9pj%?&OUcBRD(F}?HZ1~&1Yut9nGf|bo>0JX`gJD9ZOPE z<|JDvFAC12Ed#mO5o(1Jcr~2a_X~&ae>INwm)+fp`j7MS1#E2c8RFKP*&qLeCSUjy zk$mU2$)xd*XU=>}MrQ0n!lQ7-=KT-sA4ODh;3?;vNauz z+t0waF|#5Sbs25IfL|hmKOP(9d^|GPPi9|Ycf(jxwgZ_{Vz0_yo};U{PF3PSmUfg# zZ;FJl`E8=@3T5)?T1h>o9tE#~@fQXe(?F1E5QKK6ya*eyQe}MfxXj8W9$UC)<#+|l zM-m$^N%ZqeNCp`$pK4b16fG&!iyq3M#gq9mi81Oo^U+QK6_Xc__k1dO(4bZHBLb{; zf8YEdaw#{fuqHKkY%VoC7wuyVPOP-@n09UMu@&M??IyYCv5?Ql{f=l^=Q}@H!`*m? zrDKKjLL7&^>5I=iDrj~E}CI+ z{?3K%AtYRhzQX)dirTX-m*9?98Tlu5W0`HGgQ#Qw~L$dv_vBiM25(1!-wJS1;T9@ zk{9k%x83r<3JyDg!YAp=dbNs9jUv?5VR;nj@wH8#z6sv%F?KYTZ7111>TWi9st@Q> ziof(7;ktGO1JBZT>+4m$x8JV^@Y3Vuw2Kt!FGga0CnXg8nU!yE-?@JS27@(_cJ+1k zILj?4bpB4YQCEpofA`UO zwbUA{m zwsnzIP|UNf@w^ z)34C-O$e%q6_pPkIK73bjHaZdM3UXo+Uju|+(XUN{^*H`4#AE@KUNW3tva=Z%ommMYR1H$ z+Ha(9WyoHJn8Yki`B^Ibl(NIa&FmD18B>xhG7I8XZD1WRCM*c8la^hp>cGL0_c!*h zm#Y~IoAjsb5#5+o{VjW06m%o;nViG!N~&3a)Z) zJnsUC>H2LK#~C&XK3B;$x|oO8lQ^Wg0U`YKrO1#A_}4N->2Nj^bv&Uyy1_^ozal4BLeRKv94pH4y@Wu!C0P zbK^o&&7K$NV`9zJwAouOm0cDD2M6cMzURD$7Sot_7QQpyMA0~|E1p=F4+Lf8eH0H0 z#-Lt$b9wDmE>^Goa=wjVBMpsApz&}S3{%j1X>WjiOBQl4wg5UdUG}f%|d-+TaL=KQGw_ToZ?2Y-*E{{1$UD0=VZ?Ti* zj9E6TYEAh%FynM7Ge18k190jS5MY~DLCkPcP>m!X+mdfbGJAG|0u>nR2eBExk1#D5 zDVn<^e{P$1KK~4g%4DcMv{L4e)9waX*8zbG2ra2NInc6 z#o$XxMDvbS1qp|_ zV^ANF>zwH}5~TF=#7S;6gzCx4{y24{Gq`G6e2f*;zlw8$wfIjb##QM?^RSgPlVQ`d zk3JLdNin&W2CQ;11z%4Px~qvHwf!JY&RNE1C{gun{5XAyVFx=(zK|1_c*C_RlNiTl zV-;i|3rwd29!#2}djLbK50j>rE5D8pFnfN$(+zhX6P?5SryRtfGwg>^gIN6%n^$~D zRvz@^y@;rsRIM)=`%?3A`*QET#E=p>qvXoK@@`Z{-}s?b4rORgU*AT6N9ee9Y}ckV zW^{2*qpDxkr6{m6()kvx{Bq4o;(l=V>xkS3mJ1_d*Nta2q$>k>e068Q8OCV%2hife zz7KVx>prbPNNaZ`)1?t$zOotC`Y4V$L=>T0e~gzl#4A6ZeSrwyMr;!i*i(u2my_j> zJKfdKy}lN2KsLiVRSqwh`Nn8B#f7GKh4jSn`08YJ?ly;Y2goirY{=JaXha4j*6f*_ zyELM3PH$I7#W!wqsbazi zi3M@+lw2NQd}xApu%3qGqRm^VbEqtwa!O&G?Rjj>3Q>{9&V*_h%*qQdH~OAjP4=v z<7gp5*Utf+3FIty^W9Fee`4R|Oyqa#R)VJ-xEpx)=%Bb35?i(l0eADnv}mQ=t4ypT zagJ#dts4$UUBs159dHpNSkWxJCBoqyNLnIqM>mM=g|@0pv;!c)2?5JY%^h`)3q{sN zu1kK#Pa`#A6ZZ1Q<378yb zEi1JQmE}YNd|-$2i}*e;*pv81D>*-nErqnXV;WF6nQYwd$yE=!Vxl?m(NdTbFrGdN z<_m@=kRHi-slYstx<}|X#nG+;)Yv_rvrC#fZJ#P!G+0+$l9#JgA>+J{~ z=Lm^$g)O_A46#wTr2VdNMyyMaTqowur}QcxU%tL+hLg+m{dHOvKHjMC< zAQFQ`u~w>X#j%pL$V^#2bM7ni|`!KEh9Ipnx-&FzB&~*1zrU z{ikdG1OK1c01(L!#`3vu~tGA7AM|(p|lxDj%MgPQn|; zZINsHvJQDA{x}1YJZ6IwyuW9%!RQE5Q~0%(zv`}P3~RF!PCht9nbdkYy#fo^+}CD~ z_LIQgLnXj22&%Y)D$1~pV7mD^X_3a0P0$(Dj6-&=|@TadkO0HUl&fEJY zo|XA)SL<)b!|s0X6!6ckT7TyM9r(vy{@4BSjcjollZ|KAmb}QEL&m8ap+8YC>^U4= zLE4UeX(omae{voP?Rj{Tbaiv+TFsg7vj6*2mtlG+O<=b3Lm6v+;Vy-@wf1Jq5dT2w zW2a#o%M}g5sO~_RCZo0dxXEdv{E<{ zZQim(q*km%_dgZ;Dmh@OPGbxDOvbxrym-upt~`u2F+<+K&Aquz(JSQWvj>$n=$sG&rmTSZi)%{lPi!5RN zHx4lWUwM~cEj@6v#8#8%IR@C~JvB8}ffC8rWZZcqF#Iy%1cg@w4+6>_}o-9 zZfmoG1|1|VsusTQ?R7$57Z;I#1|G89rGAIB60q$Di0U3`$e2Dj`|U~A7**EcR^3wH z4P5;#h!Dq=N}yP`SnQ~6R(`|>a;j>}1xm8Cm6Il{o7vWMGaP&3qR#bT)pLB^>?wBP zYi)Q+N{RD3HjhF?3MG%N)#th8QC2lbl|5}ehyQ^#IHqzrOy_}+h$^8yg1r(QYUt`J z8N5l_^eV<9Nhg+%0bh@$e<8zfaG!lKbsTx>luzif(7&{nC^are6A}d$;29?9RKX z17QGa+&|Y8#3_e40$`@SKSqz(z8Te3t(MGR?J5HOt_diIgU+Xsnc&<=RZ?mDPYnb? z@FJqj6c%)8Kr#W`uNoEeDA56Pm-iKUErvavOud}w;UXH(tBy`cPDuE;xvm|C5_L`N zHxxLR7)MS5b5vOlvP^ii7{uouLEE~Ryo!u4*|l>sMWy!#-5(d*>rc`Lqq8^-YTMwt zUDn7*7dU+{NPuT3nDV%+~nnL29G*=&}t(fpP<=eQ-QrT-fHWl+bgWUdDrP-!QtXw@H?T<;;vJ9Q~WT3 zAjOpct>m+Tjqn#pFLdOd6Yg76vAR<*uq4NexANeVu+B1HbhM;vmsi86KG`8S?+|Sl z6IOLR2aIYZUM`+Z!VyXW!eXYpeU>ICL z3zkMM`wyg~6oJeW0%rH#{xlde5L5LKgPxydH6NjBpV5eou79}LEf4~i%5t0|}w!>c2*impm6 z*E;T=H}|TrIrGU}a*N{*HF}jn%eLTa-qO#wBoBY9?A8ry=CRzZug~m>wls z-tADjwNhs7yD=gg^8qX>@>9eYlEZ0K9NGqw(*h>71iA4D`~<=kwRf34a>X_p8MZhY zA`t2h=6&}E*|IX#jqj&_j>whhpZ(*E=Sz)A`v4X#+imar=V_QW1?X}XPi{5+NJ~-i zI!>R&-$)a#yx6dSw}>kN5#$F{W1qMEjEfH&odp_rWCz8WVdEu4MPm~Zpt>_XInb{c z<8DBBcS40PwWGm=EYjHIp{VnLa6LxtS4RsuVIP~&R__<~xs5!z{O4l$^^PkxFfqBo%q%u~2Wx}BfV!ato6|KUIFN&ou>{{j662aI&$rhkHauyH5y zADry(|H+y5k!Zz@x^h7h-qja0gsF@zd}OPTg|0rNm`STspimoA$OnU5l%h0~FXF9h zUYOV>j_~%CCr5Jfi47Y@q!D}F_@_pl`$z5PaJZePduC*x1)`tbkJ};3f%P5a!#0?o z60X2>#)yV|N9(8}U%&bZxodety69q=kYLuD2H(EZe7+o8LBQB?NNqBw7uQU%1hMT=myV(9CZ_qQko`40A|pBk$MN&$97 zCqe-`5MC|5^G;LWHB963N%9pB5p} zJrAuo#UsZamk9jor;%I)^G#3!ZQI&9_S=HHi#m7OZ)?7{-N@PDTX#qAhqO!Ov^&JG zymf15>^=6!pTWf`Z{x#V>Cm*R`TLp0rRox(pSpD z{39Tt(*v#0Ji7mbNg^0YEIxhpk)Xglz3cplcBu{a9(LtpPLi~dC-x&g5Yaro=#5^& zEe(Kd6nBUr7+s)Qcox}flVSB^JqjZej9u`IaGfnxGVA@S^Px!Nd|^}g%CsGI8Vc1%eJc zdh22fIp7Hnu2Hqj`yn%|l~2I@hrG!yu_tv@HLRKk5)a0AB$YeW?0J7IvUC$8QVQ5H zMpqG#oosax3c7 zp!^f(XhPB;D&J!NZc@fPm91X^f%VwNIAo%--T06mgS#(bk)wkE&K3HJw;`@6O4QM+HgW!eF0t|}>H zpd1lLwImYzAsb1!+-=P!0%e!6Fo3wyRzM0XIcxY4^?|nJZElH`!JCN!U<+N`aaVZ? ze0X3nW{X()DEuAT=NFfn%~R7Y@wVa+#ZzoRHr*N3BWsc0J2f#e(RhG4oIAm_2tk?y z6NIunQfST=b|(66G^Sj4uEB7$LmId~@fLBr%sd**R5#b;QO0!>RdC&hYwlK02lWQ& z+`+_p@=j7vu4c0M#3vh>?f|xiA*^9c9>f%sZRG;zAC+~ z{**SdGkkLe+_$bBIkFy|W4X*(v$Et_t`pezMUIMrY5)m(3PVgHR@#STdU++>F-ail zLh&$QA=Y`1m`{;;Z#ss^Fc50t$R1h@E8_uRNR{|w!x!%TmEp6rRb6k_Y2e)PBjNqw z*yvScLJl8LN!Q87FPV0*5xf*_w^-CEB^Wl=xUuL)K2pH849Wo%g2i>F zWf;uFVTze(7jd;V5>=I2`XFJqgYM?jG%vF$EkNs=(}Kbb9`NDQUO(RP_K{|Da(cPT z=rrwy!k?2H7UM5?K)J0DJXVzL>$$NelVKHeWlI%%GRbK$8)GlsdM{{Txji8Zd(Zj# zc5c9IkObE4Kqq}Oj;f|rdoMV9Diwvz9dY?WRvl`w)#)XojAhLpk6yBYnL-c3zun+X z-66B{a)Af9&u0>U{NH~K|DTpOZ0);!`QU8woinh2nynxHg5nI)r0EO@NFPc-KyXG0NC}8(5D1KP5&{AV2ncQ) zLTE$pAfY5AB$1K;p^Zwfh7bY?Md@AX0>b_>dw<_|&OT?I^S)=j@5vuoD{DQuAD%nc zecd+6>U)VKdC6E=jh{lu<+~ok@+OaB`%Ndt2$OJ*)z8q-d zd7Xxf$nCL$9SbO@+<=$<>6Z|@x8kq(duCa81Da$J1En0*BK{%7iTiWmPs1wP`cV;3 zsL3B)&&A^RIp&_p|f5=yEZ1Kp9X^!Mt@4^|zZI55ne4*u^=EKzTM~7Q0 ziZ8b~y3RjOC@u5SuK}Xa!zAvlDZ%=X@Ax+yx-)E0r(UkG?WZadtDiAafc)feeJFKP z@sYJ$bDn8g-X7a%p*XBY*l#pu-}&x8J3;@Q*ZqH3$!)(W-J=n6d*c!_laZ0B-9NeH z9~%^J>m2t}lo#fc-L3}hp@zPYf}pIlOi}7fG6wv`CEfBh3rd?fr6c z*IS(>iw#<76jb)oxW-2ihSyd;pBmeT zso}r`zT4NW&zwO*zYgJoI}^G`ZJJ5(?2(Ya>v*uyMwAVHXn#^JB-~~tyuuqSiR6Vz z*k8DP(p!I6Av%PT!SE;J5fs!1ocV>Wns@OR6g!hMm67u&*`pSKUw}8Bc=#_c*W=hp zZHT>k7v`8gnxnS|AN_T1P+e_>E_*ZnjrF;LE2!y}rJ2z6d=nC1XaRfy#yL0~?p7+# zehlg?)7{XA?Hq%xzQPSGu0mVCuX9`7-L0LVkhLZ4tw3Onid07fU}&}w4c_?sSBhF> zsodQB?o-PD*&p+7`8Z*#;M+Z?8-4!I;)M8ykjh*v5_PcyGJ4G;3A<{kc=h7%{~cJD zzy2VF1kb3ii2MpwXxc#9L8Jdxl(tFg{V2gi3^w5z??eKMG{Ih5UK2Ksi3(-WXOfTL zK>I^hgyRV7sc+|JJ4l2AXspIJP}edyn}+gjkEQ-+uC8C)_4yndVSJctSpdamkdn@XRR~ zaHoNSGhFA!(&(pQb~_zL4Z5*yD_ou+*DNs?_9F5a3c%0NAGd*ipc z4|(_URaonC*Ot(3o(s(-U=P9DC=>NsD_MbQ-{Tc8}M!Ac>lD1kF;nvT>388`&7 z=mo&6H77&&bZ5GZ=u-tMojImxy@9*aNlQ)x@T|-t#aHMJp9bkQ6#H?FF#kH#aj}<9 zNoVC%CD*)6b*FX;k$q@{i$D^Bws8e72TUraIxq5mcqGzc4tKjgtu>k^0G$ggsvwsi zQSmC(W&0v`i=uacQe#cvYfQO+vV>+ygw#> zAgg{lJYcMcJaCfWrP0N2x!R!*u8kSl2?3Kbh6B`V9fB)3eQ^yYa}{_lBnX-U~3S}nDZ`iJNN3TSSVc+N; z29UXam49OH&(wO3aN%e3EEf9CrGd#Ti|nY>@Ex|n;+(Mp#fwLo!0LlxY_QgXwVXe( zGE+v&L#3&ylHVLZT3W>3rS&>O;9`(a!9!%_=ApaKt&fgf%h9<%w1A4nYbfhTfElp2 zCiWeJ;ZRzh%ybjow&~JvOS11$S)n^$&-QY*)VLMX;96``?a6)Tvhvv&08N8Y@|#BU ze#&JFc56GuAGEZ#GHju4SfA3=mBR1hD6|$Eon68EII@cN z$b(~@+MoAH|GGm3J9ymkmaWwp9F36tQGzGMFQ~g4RE4uY(hP?+vvlq?e`qodG)rC= z<*6S5qoHRq+1BSAtglq$KMNAdD27y!R50QioX-@zXOV}|cvr)}4KBuA3O+6zS%V!# zFz-Sk(@R$f)+=OliXyyG(4SPv?&&3~LiORm`hnCTiJeCJHotk{})CAE8CZV807w@()#dczwwSJv=p zt+7lEFWn)y`~{6d@ykS=yGslFx1;! z=5u&^qwF0#;Hl;lTMaFCM+oN7`sdPUJz8>Vu|I`w7~l6OcCsYnX3H9pYz}>&716U!8h_C6+&A*=m`PHySHB&GF=)%^7*q|0^c4 z|B8tn-2n5&Ocv9|=(U4&;EO~U)c$zvrLUewHWi*KUhWW+?wJc1ocAfI8)3s?&k!iL@`IU3U)*5oM z0ul?CBWbGFe8)qgv2d7$PfljqFhVO8`@|3J?IdFSM_No_xc7dq(-nRhA;_D$jyPg+|ZU`C6(k=SwGHF8^Eb zV0N2+YI(Y}EbPOHmarQR`}u zx-Z@j0>u-8KB9@^Q}bWGTRL1|)k3UzwHHF{HBCuaod(1GfG7Nwk^13L zTf;S+ejtJ3%&Q>bTfE!HHf+yGPR)jsOPHK-4M89!+ODaorm<;&LzOhx&&1aeRtGC< z9sg~;=S!~o)L)Mo<*!nQr_bD4nx$jJ%TFTS_3TNC6CvzJr|+ova16HJ$Ta_3h1F zm;ZTJBk8rs?RFIwcuFf%qK+X3=Gw|r8oz1@ckE^PQF-Z*UvvaIJ-Ydr;pNENY9&lq z&Euw_d2;5!)Cu~qJBi)f%vYCep(|W=*8{Af|NRLA$0pm(uza#s&P|E*RzP7KFlYER zLC@D(5%9nYE3{>tTU;(#qfX&)M*|oQ~ zV>?c6H|6|W*0L}4?zpDWY5m9IgCtg(rdu~-Q?NYiw7gRBFe&*AQZhV;79-?(v-}?9 zmecyM4z4?4J#tT2b%C!<$n3B$7So9!vIw%`l47Bos@@^$6QRU)czo*{z^-6Ft*KJN6iG z=5e{eH!UsY61JWK5wlG4oXx8brb15eO7aPWOH_JKp8^f^q^drTS-~x@^nPpM@I}w+ zZg+amb^ze!Y15uYvCM2On*|iQ5K(u~fQs)VdjK*;@~Y_Mf_wg;!bn@#1847;P&3~D*dtEp=2 zfpV**4PGF5l^?SCTGy@McetdBf( zC0{9wOZJ@goZfXbF(+S?QTaJRTjr8yoU4WkUZlOGD!DQap8{Lq8QDK)gHR1dvIT0L z2_W6*bT%`*rZX^}_RE5b3Z~5yC<+WIMc~O4f+99wboj-OFU0Cb1=^f}hk4c)S~J;8 z-8uLsGIyEx$L^l7mykppjMOo7&#Zp{x$MS`_zSEFE+ucoeUoZKVVJ1BHTS8sX;@uor)3I3z3k|bv!^f$QH8LuDk zgm0@tEawgfgz}4cY)kQka`QsOH(WX?1yi0rsnF7!aAy}1AOG1HoL(skm+1YS>6PwI z%gPDN3?)~6e}`3_ZoJg2lzxa%*;hrBRLjV#w+^aM6^sjo4JFZa@%7v`Pl*L|k`|mD zx4wiH;i8u2Aa3RA3ude!-5xqZ;T8&zl`kbwZ5VYfsU#57iXyI#jd)%;@uyV8cgI&Q zx$9(x4`ji-WRjS%BKZ7_vmUoA1>zH(+V`9ZbHd?j(-Z0ixyg5QK4>SH}QBb zTL_COv2U!=2w=ZIP(EQRh`2r26>ZIm>;&{bPt(X;-E9V?fQEGm$eZHb=o6nEn`_>5m>YVL^Y{f(Ed0v1 zM9dSOxs`)MWMwpokd!xA|B_DvS%r;hJmMGV)|m7Z;nI#)HuwR#udSloDuL ziq-Fb_S&04Ix{RYVY^3|cLjD2-p1z#BplmXhh7?Db_BNgznq9Pif~#t*_ksP9HH)N zz9pn6VQN}y0-h_Dk?U`cGV{I$T6HMamqWo8?kknA;QTA3Rl77$ zZDx}gvA!cD#x)BSL2=^g$%ehw>>Zh!142Di%2#HNox<`cT>n;DTq`wlKS1f(j1Swv ztkj*xKa~HQqazjqfh_6G)lCo>9g%5x*t;Q(mw225=|DEGk<_9dM+%DaWOROs?ScZW z&f(w`kd_6TQ!SQK$R|)7O?bCP2QWLCxiL!B-KrC1HCCdM;Mw`9szS%@rcEG3$c7fT zd|>EbV55TLK){z8g=m%Z>%JajKbjJxW08A#WA68)$H@Wk|s#I6u&fPT(8570BvH&`5>QdgjHsiU$anr1oxa5(>}RqmNw zrIG>iif4K%7_zXg7XSLeXD6Ho7i}R3ddonC=HPe|z>nq?*}wTWBCp}<9sBNNRGUO( z#?!x*4Q-74qr*~&?vo|Q53)iPWT*de>T`0pMxaQ3=D4>|WqmZGI@*{1p2oiMc>Q^|A$-OGe+9UIjB`>O6d9-U$1hu0Dt2zp)^W7j6mSC&#=BmP8w+3ZYF zwPvd+D8iVi=lK!jDa#uXy$N(xYbM6_YNwR2g&18lXC$*;J&7i1OF-jKSD?L~lki=P z=H{wMTIDcj(Qoddo}tqOHA+4iMZ8JW%QZr`^d8;MS`M#DBhzreG-qkJv7-U#(PK&A zf~w$AG;t2^$AIs-JnBXEHldELKS>=GAfp3bb;R0wByE9>$%mOSl|Apci@cYg@)=DE zO@29nP@D0UO3j9OQ3926X*Fl>*Xq88gdsvBRJv^Ty#*p@efp7%oufoY>8kJ3+FJB| z51uK;o2X$sa88<}t$)V~JwsZW2_w-$2&iLe3r>1LlA&$QmzZL+N~X6Ym*XvwcI(zz zl3Pc-yZY@)rR-FAA;8}LR?^@64tE8wA8;Yi%dq^G>&bbqt#J=84h#}nAIr$rM0|K( zM1v7pjG`3Cs&26z$@7K@fdhI~9%SLMWZg_YW8gLyQ7M;+B=3ag-BH1{cR3`nbtB@J zKGl}59j-tAJsWY3H*bbSVw6?CV=^6E@GF@fgw7frt`i$xT>isvjajF&I5Tj0CW|oX zoEY?*BS=!C9D_0ScJ@Te7bGHG7ijx4A-}5l_#DfLm5TOaN+A%8%c3E|kn&|E`;vAW z*NRYTF2Mo&5L*I91$A+TFKjb;_Fc%ChE1b8W>=omV!n{}w@t&L7L&pP=rxJXL<=h; zUboOD%qJ45uQ0foAN|d{<&B3113fAg(O0Zx|8eU2DC|DXN@oY>>)bePNc_9WQ$sxO z53bPCIuN5p80m{5;8Ru^y*#=et!aXE{}hm6p>={$^-T90Q-~RN&zf}B+zaQ=l*Kx$ zaaSEo{bgjWU(@-PEtH-w4w2cI2Q5!tNIeh2jh}(GvRZ93R_%m_j{0D!h3cSC4IEee z)xl>e7RxlIv1+*?X~?(Xn_zS|DTGX+8sO3lkykH^6Dovi_VZTJ#4X`}GD4qCqTfY^ zlydNELXW^c6*-A5X|zUR*>>YXi?pC5a0JaB8{GMuQv$FBw(s^=(%*jcsE4bURL-7y zwT6G|97Adx<&L_1E?c#IZFu{qr0z=Mj-w=BQAhjPcwZvi;+&NEcGVRaH7q zT4TJqeLmE+If1B-u4K))fZlwn@Vqv!)k$E+a-q(_RSnAexmCmM)r{26HWv#E5Hu1p z^D8rBJF-3iMph){Wbzwb%v?DD=v{01Ip_)$YKoH@+eEpt@+y@{w$b*gXJW~v2|*@B zKGkAwiSEo1$inii*sn6$!S;z!=C<6=6~3#O6Z^gZev8?Yqu*m6)(%NIsT0#!7quuL z`QScT%Xv$(Vq-5itVKR9;K%hv@#l@U9sz4JR~PT~{z2ciN5DDJK`VYdz%>4{*;hW> zm)#MW?1V`{34fBt97-H{n@)|LPkG10-yY?4Dkyf*W@l2xEy+SpfStT#_dNdALsijg z5Ym*Q#mIKv2z08mu*n_UYiv1>9Bstfdlo;I!qalNKUnUH<|Q9ENEbAsj=I_UdQ-?JTS; zCdKVQ9|u<(X~S2EgtmtT0}2MxT?|@1lly0j2mB-1R=py5l2clUT{pX2Q1x@uotniW zT;a$tUl7#rYevd+dAO95P)vCU6q&3j(vFy-FPM8nI^b z0U+5OPd9v_*@M|zh5dG)i9nAsle0=by}e6{e^X5%m|Cn}e`mLvPf%q4{+FBVhJoq5 z_Io|SVep#B=IDm!DrV8oJs{ABfvLSzhvmRV1gS0lsUa^|K&5@^J2qg*hpWGA)O%iq z>~eW;1@PqMn$zOq`N4l8$aUo5Vz(Xe=P>i9RKDdPTFW^pEnu*Eq*0Am92yYfz$us?v>Qp-MG=|QGb_3OQy)?W{f_Ia-E|QU`npb@IyU9wKQ}Q$ay*U z_p*+Us|PNBRwxz*g`R109Mg9>vo*75m^B?*K`tB!+)gvR%`>%FMv6IDR_baNt8~-C zucz5UpimBkZRR(vew)`T+?s+k;5ghD&~2%f1=W|e%zCubL+*up+(1f~diC)19AXegS1wbtBHG{RMdt1AM;i_1Y0 zVkRdo;h$5b3f&RZPpAI&lW<4>?!UpeKsd}Pg&W?2ueTlls=>YEbJ_{|8c7AjkKW*<2w434>ZYF3elHroQoJ9cgwh2 zs{Zq2>J_g<=p0f$o~&acM_ui85Py1O9B8kcIC1aoo&&)VJkrmDaw!!be4+~X99>D1 z;-$Cn^JCruv0nOT>MbdPtJ%g+4cRG+?bv*AH1l76Rp(<+2kL{$peVq8fb zv_Kkj0Vc=wXu;2|Yma2dJ2|f=lF3a!;v!wpTF}%kxm>X7cg;%fz2uaYrEA>Ij;LCu z5wdD`#9HSNP)U3!H`KqG^seRU#sA}!Px;8l+l8NRfTX8j9tHtIjE9}B zveT$l)zvwlt&P$~wh6$?Dx8lBl9YSOt!E5 z*a_~glKlgVo?{2nKTLgjv>pE*oA)r5bDq7P%bKcMJ#&U>BK=!ee(R!P?!77C0tY%W zC+W0s3wU~k5@00zz|)d4mzBAOc8m~uy@zw$ZY0U!mv=TaU!D@WaW?aC0%s!r2z z|I>PqI%k2LvsfS5*3pP}czO%(0gn{9jatbMrr@GOVHRNo60Jc5J? zcd?TmyON4tnGOaf`>4}a0IU%Io(-@$*UG16ZQV0R!?n`6hdSWkq92$?!%4j{Cb|e=VNK zZseVJBakZp<{iB14V($jV$Sefmv8vm4W$@;O?!G}a$Zq+pRIUN+;}OPkIzHXc@|&n zGCz&FC3fh$T4q=vbOtWN_loa*M!n?-B8sC*eQE-xHTp?48MKPqqYozU6Z7UTrL}hw zl$ z+Ov@Jk5lpbCd4A8&+DE2ocP=p>c#vGk4M9-kP8+~&mgExy zoB6c7pPS#yU1(bu;Q+&#u1hbIS!;q@a)zw31lhI->=L`8)$>J7uHRN-6hg_$bxH|d zOW100as*0o>g=Yc>*scVsc_PAI$r&;r^eKEwCU~3;%8-aw0EpuCX@z>kd%f3Z+7Ao zC~6G?rI+2Bb$b-ED_F?8KDPv=Qq;no$;W*oxddrb}2$U^?d2y*u}^HIUJ7`potsa#l>{8WatsRQV{PeKWDKX7u+5 zAhb?){(u&8P}*ix%dFF|<8@0uOI=61nRa~M;M{|U%J!1M@%Hj=iqi;YMRU1R#(*T8 z?6Z+#uK)B4ok%CP2&O%(XVW5`X`&yBCSzDisRp13tp2*=m~K*;Rkmk%)Riz+WM-PI zG3`70?MwsMNB^N-)}zxIPp*CtxlhKE2#Oxqmg9UgTYDIpz=2Vm`E=Za=Y~4Sq!0Cc zsff{8(KlrD^Vca8?=zu^9;)bUIJRU3I@gdO>}GpQjy}#+o)IX2-Lx;IWe}8RkhCS7 z7$_=4)%nlgs;>iF`%grxF--s$@DHlM(#=QaypS5#S3KuU){eUMtp}ymipg-gt4^Z>l-M9t1;+6(98FFlY_3KZQ zIK)oC?s~I}d&AsPQsyJskChWM4KtZXz&fvNx#J=^b2H0sKYyfCn%U}E>8Do0yiD1F zf^8~FDNnV0?x}dD3?TR$*XMB_(cvFIYBv}9JUIvWR4`))HCT<$V{Q+bFWBfsis_1z zN5==w&!$ei>RB6C(ALG(b4KUW-W=|8U7Z$gj#|Ib@MHs!ZUw9Fyl3Fes#4`;l#15Q zUVfz2Z(8Eo0|@n8D0xb3z|9MZgS>nH`;dbu7X(HcSh#7e?S)kjeQUuf1(=4JhP|@F zgJ%xTLmf_Ib~&)&K6GOlYN3xsk6&Viphh5W$>2V3AX#NWtSh>fk*jR_6Vb}G0r*@_ z!wtW$qtPh$5uEl^;h`2x*??oPmVnuHdCxHZuENJ7Y;}CKt)tm9hg&orQC`*TWoXiS zt+47<*ZqkQ;umdBY9xrGNAKJi3wVIb*B}-qgkYk`f!QkEpHnX`TnS!g?>0XA`dW_K z^EZx9pI(z-lcUkRi~_sc?PO~33JzI1?7SsHL9$+Fk6++;*LPUirI07#H$Yx7c_FBI z_u%yp=f|^jJR07?CS}Z^EBw{y(3wVyME0PSdbM<>d2eXJb*Z->+-p1Om#%(+VtBi2 zu&NC1i;Dq7-b8kNYC@=%cigV&lyAhJipo>eNss}2sY zMlU3nNL_o6`e=5kIS&;_3Vr2gudVPABvp*|z1f67O-vZJ+;7*8vguZTC8r6iib`%Z z#TnR;N8fNKQ7g?XS{{AI|GjJ-xWo<|Rm(L2-#_L2*Rl1#^7@aET^Ev8<&#pyBoT9A z31fB$UxYHB38*0-f=Zn@O3{^n%o(S3t`o1;%AZRp5}iKPGVLGCH`Ug< zb*>)4TIhhE>uWRhObsto*HMyf2hOh;3c|u`t(o=K4Axp!MPbdaT|Z%SRtJ3!QOpv@Cygv z?_M$ey`N(MVc!Am0|z<#Ho5q380_ekn<31koG-chIWVh!8lr< zaIG)<`g&dY;IexlG1Fg>W}^yGglOui2O7)p@d=+VSsEuhq>g~T z2JB$tzkaAx4A!278l@W8Gq@4SPs97FQT<=h*paQkM-7Hqd2+T5>7}I7P%ON3&dmxS z9ziO8EHnZ6sWV{jVQktwqR)GVnsE}?XrAkPTb4%`8L{9xx^h9%uktN3C=qpMtIx3+ z**4A>;uGuGuY*a290IVT94V)0S}tDr=*%y~aYI;NA$jt4FKX27cN|n1dcAu|L0r;t z1HP?jWbam5?%U-2=HtcVLjk&pJ2K>wB*3IvUlHlZdVq4=LXYH=D2JB(7$E0JRl1`L{&oR!)Lyn5Iw?`0AWx^WT{vy1Dvbb!fxP<|cL(5Ch#7;o#X zU?IU}^A}+}!DanaB`fvD@PbLK5T3Wx+(}JXo65>YG4|x~mJU80S?K4(K#-iWrabG> zHq`UcL80QlWYLrBgXGl|@4!-P<5nq?P(brxenU8YsFOBa`%G=mFooM_xVanxC2%v96{hF*MEjVqA}Es3NmZ(z`cpEQ4NPx1MGb&;));N zZcVgU=l2+L@&jT6dpGg6d!DlHFWn6gKWEKjtq26=>uSvlblBEL{bn%5b;W;G8vw;- zB$hw%FTQd|KTk!STnheVe~Zu;9A;c&LS9~#Q{FeD!EEM2G{%F7NF=S;+bgrDXE@P7 zYBu-mtaYwOLt`>%F63^DBbbgfjxTH-O5qJS<*zP#&3rDL)~2Q5N4nWR#d9UaZFaow zw@-z)^!2}JlIq@yWC;|6Ck@%pAtL33QVOw9L1ZwYPpOsKMyj!#-T?FyLtSJI0ZG-> zl-=x9D7^mWro{GPTc$dh6kk7D!LX{y-_2XJ4JKzzyEp_j4YMaaiG|8I(@8~@wYY-r zW|B81`|F0g-p(qHf#pO@c?cpOtn}DXN(Q_NAh#b~rMlfx`i}pNkxyCQOas@3H@RWJ zFko5IraaXjSgG%7FSG8+_}s`^KkJuFvqtIKGit6c(IXy+1frq)nUnBdD#&Fx3T`7g~H$-On|8p=X4TSe>#2P=d75M}uZB|<3AawUGW zxu8(RcR+G*GW5yxqn2?JS?rw_NIsKl{UIRPg5C3O!ws@zVjysNTeUY)8t-+!Q45Kb z1QMQSXq@|{L)6ym{bbJ&!Jn=>w2fL*U(J{ZJ@Rq5z76Lw=lZZ2gVvr8)0C#=iua&$ zlvGLMotyq&HrXVys%50Jb5@sE`4HV{Ps7DZxplNh-8ajo3{v_yuAtVm1PT>1*}c_Y zG1lttf+aH9tXLnYV6O2stoNDIl_xitq?17V45LMikx0Uo{`vA2!m!UswHf2WoyISg z4~kOIS3HiHjW`rJOl{tA-TVo@24S0Q*L!%odgV|SSYG0!lwr`mqfqKBZ3^I>xNyq=uC2DH!DN| z?wbqKMRzT0<+@obAWNSWA(}LIv{MH{2n;D1@l^7hP>f;_30b-f)?d!4dOmFIiP~nc zwp1JJ_!JF$7H%DJ>cSuY9pvY~4w0uZ?P0{c-}f3dKhF=SEqk*Z-Q+twv>A|;X`$`i z>j@S%FIDB1W_*jhLkKFK41i}w{DDb`jz)_AcxZGF3NL*5AwN3HX)?GwXjBDO=2+{j znu&I~Lhjt&Auknvd$WmIFJ7?)WR9FSnDGed>=gBAl@_C7^>&l~2dcvi2hy(!gbgYx}C9=yyGq`Nqu zfoi4!`kFwBifB1-D)(W_8t@hu5`A5^txa za6=X$nZeHHBBuELw}G_M*b3T# zS?9&E=`R7naQ)k5P$4p-v>-1myGn4c1ra975Up6_8_say0V~hn8Rk;qcdf4I8TWgT zwF@fWJ)}S*nqUGF6%Z~PPohq!N)R97t6#S^4Ncg4O+kQ2jPPQQe=HDR1BV7H{{xZgTw8IzC64*vxyFUWUkZl@$;@Xuh(Y0Sb$brum5fj z9Mr3w{x%2$1Oji(I?bhBY|Qcoae+&0$XMz~<9W~=H**v+6_~ke{5)EpCe1f|>tdi~ zse#zBm`AD8Hd=faccs|1d^xVxNrEOzZ{EtTS3NRz#Ppe$=#j4C>Yh0Cu(@NkXk;%H z+i=%4Frs`0MZs>6%2Ic=M~k3r$^Q96N_Ro0>{8o2SN25zhJmA0sUprz|o$J_fv$s+)(x=lp zZej4YW{|+rkRFYBxA0PKFAd6rl^je%(-uFuDB1M2%$S^ge*F*qXQ|8bpQ`ddqR`z7 zlwGKOtztIn=r*Ct-1_c9wjWh4;j#qAHZ`te5rs3V&FQ)b00Mw}LkTzd76SMvU39G( zj?QJCK8?vKA5imGqu-ytm*kW@NqH_=-S%0L{_`X6gKyaL{A0SxpCz;7&-SIE!;E{@ z7Z5MVjlER2Xebo)-HxVo{*+l5v1OLQFbEehy8mhf+=%$hHE{&zj1d%bO?C4U^XpQO~s`<<}=IrtsOvB9Bh5m?d#0 zbi39TW#}yvS1Ous_C6=n3vyOu2&sL|{9NgE?Sj?Mmu2K6&%X=J_hxBenp7LX!{A0K z6)V%cRC36%8~xAKFS>uG7yg+jPpwP}=W?XlnxY)!bO7yOOVa2@@C}vrUo_cA>J@2c zpG9;4MQtk;t@;$?pv&@+>gpTl?!f)1%wb+J2DUDd016>?Xog%#LMfG|+eBkmmd!y7 zpGNQGNEXHZ7SdKLv|uIMN{`Sx4~4>UG;(u!V@-b^0maJw$Q`zIm;0Fgp#4h7-t6GuQce-%?ho~Y@=mh=l%q^leW zJ(p$`qlB>RrEu*+pSJn4zvWLegKDoo{plrLSoz~1RtqiuSXwZBVPP+B0W$t^=6qkx zivh`7A9n|{zMq83jryW`payUvI8)5nt||82HiasYwVLIEtt`(ZcfHlJE$A|;bcBre zeLC-}aZUGyLBAt3bSMg1PMM7E>lAg=^&gMkI%M)P+ya||LAme|W`GCf2YXrmlHm32 zk48%SymaLH91lF7i1s%QQ?>>HJsa=;I1E?rRM{YG3?{)!TY8DvmmE_<&rutWln! z_TSVm_}(wLw6U?VZ=T5um&dbJP_KG{bJ+BkD~yzlbES8A z#r`rNL;VE7^!=uZqFuaHhz3{8b$(y5a^97?3(HRe(Hi4=@y5kpQ-M6(IurP(G;Y-g=X!3NrOUA%5sB@Yqretp<@>-K!q#5~t^ z9tnjk?%4rNHOG?DvA=%(ci~3%|Htb;s+64i#=B@c^p&fUkgqfef?hC|QB>59TcEh+ zsjI7NK!pIzvbSHik3~sOyjAMC_oQeS8*O1Q7)pr0I5vyU1|eBO96#0`3Ald$f77CW zJ@x&mQ$HYcliek>h$-sLhAQ>JRTwO3Brwk}zNI4X(yzh?jm$Uz9%gl!8`*}W$>D74 z7oI1f9{`12$2rivy~P~wR^L~+m4A-(|2`|04zJ4O2JQd({&oBxD*w+{pHUF%#mAfG z;J5!K@t0h@t@U2|ruN_e^##+`*J0G!HE|JYt#{TKO2bD8%BNg9^h$k@39vCQXOXdt zHeVw6+22fNrUp3TTQGlog-S%Tih1DtGj~Jpv;&(7J-MoSm*_JbW$d1`%RQfJYc2O} z^##*Z*|>!*8JUxzbih_uOTfZ$dKsp{ThC>&v46B0+H};^8{ds56>a|}B&XCSTB#-c z%vZqgVll0L>Ps>hl9$c+Z0aTa@k!X0s-oP+@ZQ^M`61LNjOA0``h9En@T}SBQX0)? zZtaown))EjSQ6?8e^q7q9AY^Z=gk==UhoZATX)}z9iyGDHPv&tSJICOze+n__C6>h zsv2ey*ER%HilOBZLUhy##W#v?uYVgPXV%L^1tRI?Z`8a^DcPizO8 zKFa#=Dn+GV-2Ym~6T&Je59V4UD{SYJ|FV#I?PAUXBxi0M`S&%Gr@VmI&xPM}IuF1M zZY9y&HqicWw=SnUzD0S$PCU)ui0H`jT!Ze4gRpb!3gAK)(KV<*?gUgxf14}2&`5ttQ9cqCu(sygwi5sP^ z90gC{0wTo2SCvvt&)ra$i+MxMcVWHrsCIu(e)@Bo>4m@4Ge+Oy6WE z1oW9CI9;fxzO7hR1$(p=^8>0s`Iq_@R< zh!QI?$|zGF)}|`6XZ|J3U+?xZYHi18P|QFGL%J?hz9sUxFrj&kg<~WYT8doo&(`WyKXkR+_)KZFE1(t(I>(RnAw~O3)G>-akqju6!4eF_1d)NBf+;6wdu1 zJ=G**b3NnQbh`F9GyU%i$xoK}wm?ipEbj3Yt3FK(_6K&1u!h2--&}DX&zgQEfc336 z0fy9S8Wdkm5F6MK&wa@XM69spAM3?6mUQWEk*(}De38yxaAwS^)(gsCmNh`C{s7zF zS)P{gi%UY6MUoq_7F?(;PyAw5=@wr=FbxVb1w%~^gT{^4#stkTYXhwOV%gIjwa2^Y08PFy3O)cs0laZL|NR!nTIY-oJDD5*z#AUXY; zjubt>XK^L_)zfGC!MFXlT*YZqmAqAf?1J;c*3ZG%iHf|KMEb|0gdp+0r&A-~IjuGt z3nb?waEA3{+&pG9RJG=M{n0{SVmw#(QsIp2%J|?l?$t-jdmRXwq60u|uy!R`NgK{G z+ieM7Q*riak2}@BU2u2WNHh6}vF+m~V8vBL@nG-I!deuhI#Xu)!I(ca6AYmS zMT17$*jirjIch;~B|HXPcf#!3AiOZ&e0uB8L67;s#ZCHF2()v?y#q1e(ho+Ee`P@W zjoIU~!;9OwF)v~XNaE#rJKBuQ{Ju=&)Xa5vswqey{@a1S;v0E9)w+*;Hsfd;)F7UJQ~F#~HIq^l z9qC`0rJTG#jZLSsF?mNYAve?c1{c(Xss&2i8(0*ch`eubL(UzrS$p|q-|MxTdD)F# zCz_V%rpTn=x#fbqtlLIlem$Hn%xkTJ@iHRBnoA3>W2#;b*;O@#@SzbBnR}k-TiwtW zgPbOfs|_WqsdpHBzJUC4_C_3a0|btAjy`hlsb^)doD$nI?G44)R&#YHUag4-Ie78b zNo@8)#IBq*Ku@6*ObNp^XLzW`z14d;6m3Vp3-1gEU)3qyS`vt>=uPwtNBBx#v6o#U zRsh5<4@&7Jpf3#7L{I39Rv32~xGgnia}!vf?v3Ko~BjM{8T&pEtQ}LBkg$+ts>{d@L zCdsU(*QIlFAi;=KsupqW4<30Q;DW#~#H@>)g1M;QEQrbJHjQR|`mVq%coZmqI1zH}pO9?$La59tK<_Kk};%}MYGeC+0ihe-bZN#5?#qI_~BRVA%VHJb8%IZ6#|~{ zalJN;ESB1N?EDjfJ@HT8 zuoHy)PK(1|_9c%V^~XSkNBAoXgsSQE@}P;wu*v==^p|~=hCD(RD6qiC`tyZyLiD)7 zjcUILt=}r#CGe=2?Jc`-&1WcOayJ4?06=V_`Nx3Z$k{VJ-<{&>r=D$WdBibl&S5Z; z6(2;YUs5)KUE1!d%(+}H+NxCkOWA$&C3SLec&u=d8AeAIAP_Eri2$I>5`C&5 zL8-Ca#$1| z9v|YIz}e7pVWlP{Lp{k`tewZH|90CZux`EB!xu|l<*%ymFZgT$nO~SOMklz8>eYq& zBq1@(!9h%6N@3v2(5!Y-pl?`Fj?2~uT$w4Y>b$8N1!79oKDFzvoRt`x5hJ{}?0#WN zirK!B^(oQxL#*P~pu{X^%J#VD5>-tipp;v7zNCc4$gANKH=GQ16%<2|Cb#!H!k#bZ z3yv#ziQ>!xN@q4n+bM}zxvSQV?L%PGNa@V=h636~Y{7~?ZCFcZK^vL5NbyNLZpU?- zD7x9L9buMT&bS}WP zP9aDP5sfLRKJx(4vUEp?eRc6`FAye96?jhg7>B~r+(zFnuNUfMAe&pq7ZeWoL?|XE z7;j}V#|B|?Az5D!2aEMM6LMh(YXp&LvZ9DsGLC2go<=1q%L2*rYBX_V zO4rRw#~-0E=$>&Cbl-`Q|JCv4pV{tzqM9Wkpqa??5eT%Dbjfdd-c}xCjWS>ekn}My zpzB&}6ZizoXdp91SS@R$F1#l2vU1>b-D(dz*m-%;4=61qCXc_K0P1Ms!YFjISC&G7 z(#upEW$Xj!^l&x8B3BsK9;RKPzj;L0TvJjD=`IgZOjYrvK@gD3gJlv**KuQXNpR6Y z;gOy*9N(>8KqS+@-t)Nca+1=1b8Si7w00sFI$8QHSn>3GdRq>Jdiyv=w?vPntm4_z z6H=*J^dQ$P34&t4-?Yqb%CjBYx1L`BXl2y$)Koy-#!$!AJjD?X*Um8-aF#ZzqpB6S zU)&HyD}4XLN2JED$o%9TgioE0!`;;ryoxy z+a6DR3S!f!npDDV8OVj4o)=X=DyQd9)P&GnP%Kor&_lcAab*^NK_z0!H^tE^jO|RE z=TA|$a~AiWzw*HQt1OMJ-?&+n8g%kUy}Gq%G6M%ggjMP*6KSS^J0O35z;&=||GLi7 z6gg1>ucXLPjuvyust@P-aK_SyuV&rV2p!gpZMuBZ)J6p;j&-R`1}c>`k&aI94+jK$ z$hR-3@Tzl|J{xgM4}J548Z?UrkfC5>kX%(~_U*5{-T*=KSt%XyyL9Lc_y=lq=<7Fs ztsT#|m-}vv`sCSk)qv%1$%DSA9~-{O=QQUb@7yIdRFXTW^LhR>cJhPL-r#fxR`0D% zUdrA=;hjQ$?;p$A+QuWZCSXShMEZR=!(kzqaOPhM@cuVMRzHgDm1djbsB;h;ke^C% zR?k0A>3-<71R|WU>2I<;sY)_bY@M^x;oy%hjz2IVjxA)%!)J0eJ|ed+?EA|1_kHFu5xSi> zPR`I;SPJ(_gG3J~??^`yda*j?i43>^Y=Ez~6Ul5x+0lD&(ah{Sm{aMtOTN)h()N}S zUO;0x?rMn0=mTeHJAn-MDDBh-mPTE<@rzeWpE)c%K~_1#A``hLa!|PvXZXZYLxq0V zy~B|GIflaG5L&{z$+}N4PLu+Hy4Q~;b+wmC?T6~=dGD=?)<4l#)Q@wz{989Y8aZ+3 z8TTk`8Ovy?mmB{afyCTx=1e1(z(U=j9A1c0hvMA&Gc|(hc!UT&jgBOtoi0e@aB6rV zs;2Qt+oQI0V}l0m*>kC~NK?j=zD?JbF@-cXgK@;ePOJ88UT8TnT6V4ujglVI3I@uF z$v%0d03Xp0?l<8+{9YWEu7@s&8(#5RdKQd7| z?u;;JB*Q4iM2rMYgWkX3pm35Ou{72+zchAO#LRy^$AthX0Y(Tyoo9VJcTvLoCRA7O zcH&ubGsZTaZyw%BVPNxF?A+%FB_=nlQa$L+A2JTXy1JO1jG2?#zQ{vcpSfIW!KdSC z-E&$ol0GsMLtWW4=?=rXm52S9K6Sn9o-;}bVwul}FG#p=HE;iFSccB-?Aw3lpBWhb z7uWd;GOMlr8!0l$w(kHkS6BbQ+@bE@?JNqKv%cTEeaw5`^H7={Xb;;4_I%_Zp)i+` z+Mj=t{VGPw?kVnpU3l}jc_-4!8)k@Ld0lzq;Sz3+wxxJS8t2fx_xd|Kq?p)uRO;sE zgZdXfU$`@ccr=Yt(bNPfvU)F6tK`mDV7{x6m@gvM%QIVY8K-f$Ai|e@wY0v)$x||3 zcUKns8ke{AKh(&Lrg9e?63GtlMkS{93~TC_eM(?c|K@P^)sa=X989@_;%?)ld^7?8 zB|6IHn;KtE0SJOfxybV5vE}n47ix`jntOaE{q-(_2?iFQnCpLJ6zSfxmNC;{H}*cE zT__5yMrX~`n~R_an0HJweVA2E0&K9h-%Dd`&V0{(W7ow75m}V(^fZJu>MtS0V5KHp9geMh=Hj9s%U?(FVgh; zRMZOdkHwk~Rh1%dy$FOU`LH@Z`nQrU4Tfu1_>gWL#awfmvT(h&M3R_;-Vy72&YrvSE@aDCy2U92UQpC$) zU-}R87nba!xftyH1p2Uas{75LpR>-oUN7+L4P%=~XPNK{e(CwyZ|+=sRZi=v$B_z( zL;SauB-~^cFHCP;lj61=rVNxOJmZGR0xBUEO#XNXgLg()Y9I2<<8(~5>1B}Qtvp?l z63z*D%iOCN%mbz&R*2c3ovRz}%*8ac__J(nZGZDp)tQ0w91pZ_StVe&D!I9%_Z_l# zl6cqIzFEoJFLW&JA9*Orgp|@_K|xt6=TRWH+~hGFNz!dWME)2vw2%_8ZC{ekd+ffl zb-XSlwk--MR8C?2P_U)yGfeK}JK|&I9>ot|^xR%oW5|bY^}e3N3s2n=k6D{8?WcL! zT8SU@Yo;y2>YSw(8{O-EH09;Z5RK&z`9T|L+C9ehcJIh^#Rn2bnDa-G+TzlCrM94x z2TEJg{fMlI%v65xM#_YfN-l%A3Hoaqi|cA&K+vYi(TAR2mC3Zw4D4V&)?wD_zg@hE zEpcs8vdk8g*-}i3!iu;=wakIx*nH{N4!zbRZ-YiSts94!Xz!=vK6Z9y{1j`1jf&^6 z9=&KsA_46jbrgio^gCMbx$@5NLAs`I4vVkFxSXB1aw72)aU2axE6811>(Q(Cd+xu| z;3ta(maKmRLtC`l$B(3|Q-ew;0~xadSQ)0Mom%hH_a@_`dXF0e(NcGCT-jaJsDaZM z=kdoVOzXD~5W^&74klG4cp~Thd#@YPM$d=MGA*k;JKaTl--*yarngC+)2#VcJ@hs# zGExqcQr%nDqDzU??U0XxekeOZ0{xoeh>{|@O1StSrCUD^O~uv^^<&n~L!kiV36(+3 zF1izUnTicM>x2;WU_rH!GNi%cSvijq>WdoNwG)15D~?DZW&!(^QxZ)60yMhqrCkeSOHedFS|JPOn|)Ee5B0A9&5J!aM~Id!JqU6{;V! zgi>y9R&3}q?^wu}#X46cnuBfV8DuF~RunYt=t$%0PDH&Z^m5J7T9Nv*=K7TZBsiyE zQX$fmE9vMa?tLn}hO~!vDaI}MW^?9}QSKeMX+qF+cFvz~f@a7v#^|D)QhF(^6KB*g zp6^-IUHgG!W`F30=?85^zCJL}yqh`Wb6R4!v$26=CIGT|T)n|i{Fom&sK2B-pkvB& z8|L9v-F=DL5?JPu2SIe^bBS3}YSHRAAN&S0k&7#hBZmsNQDML{msi*rJp1`wIQLTU#%qg$^_Q&a`+EeOP|MV&w8B}(1(AJb1T-ffPp)Xr;60dHWJ7t&2+ zNa6M6iRBYhRC%84H$-;ttyUV2M!||fmHVHs zD-(|o2NeW-Zqj_Sl4c@>btj{S2hsfq+D9U+d`?bNX6|6!&`bnQ1`j>f4-+kEgFQBe ztjC-`dK*q-!SP7|RcCwgl+FRKpt|5W&?KrII3c>h7VUEs6dh|s}6%r|U zUJReVfHV+mx}KYa3lt^nIEd+|3H2wngOjcgEDc-fr*SRC9M3EdeWUCWwCUQb1}_)oqx}7hGwQ{RR=7(!Q0QnnhtTH}GeV4BASKc8+5RFG3RMv={XDqDc95gEzw4 z4z8_TL>odJ2`qld4~#Ym-M44$YTRYL^ga(Ej^f!ePP5UvyoH#6TOp<~R_G(ncLc6| zenVVw>}*U zplSmkAaa5an%m^g+*xwCeBI6`8`;rsS%EcxP{S(-jlTg^DY;0A1(F;4X_+y%^>83}9ped<50zTjs>j zx~^?n<%f$_YwXXL1Nima;2N%N<>7ziAQI4 z*t_(!fI1utbz^@`$6TN?YQhP?KCli2K3*uhR5Oe+x(&@oYqFL?X7uHM2;uBuL4Rg# zHldssE=WXJ){6rLUW_haK5i_e=^9}L6I%`skc|)2T*l+B#w@&ImGB$nn`a5N5Xj8z z%%wru;nN=Q?9#!(5Omd)_BX%$MWwZb<4$S&K)9F{63kUAYRN!&Wp=F|(Qk+iKi&|$ z{%p3{uU%)TlgPD|$dDd}hZPBe-q#Dd1#(d1oc9|FCDj*R#k{&d63`w*o6C@?6R85@ z!@R9yJ^V*a-#0V%UN^JY+ybfh{v%cRl|p8 z{C`<8Y>2vijK+XKurFzqKQ!{{#oZxpa1K4co#o)_K%KzVAv_mASL0ZPKZjVJ7+zD` z*ig$ZGkGo!zZZAK{>UNi*B0JB|ZO96aIYf$xVE1uUsa%GH%Q7TY zqDOnNq3E)k)Zy60lW!K4zjr%}BX^Uz3v|!i#1Kl33M0vX$U&4|n93i+PT%8yR3Ta` z8{hEglH|&xv_5x{H3Wt9XZh&crmW*44r}S5W>6kS_Daj=)<8O3998${W%pGM_EY-g zJ51D*vWm714J<&Dz<%xKPrm@n-V>G8Y~`h{?!VfNk+61wc3=cL1aO z6zUJJ%(%V#CmEPkk&@}Tz2zQX&aM188CKoEN}aL^&K^xrjlrkqEvUGfoEVFsoaS{< z7fCqlKD~RQp?+0HU7tmcI+aGP9p=;1^Asy_*~4`};>hR_9YLC&Rtf0P+f}WdLit&r z?Zm~Z`auDZ>3xfIP^~iFDAJf>>`CJ>^I~So@RbYz0t>B#Ilkg(-)i)ijk)!{N8L8u zHw}VNOeSDjL2PjnGX)-@TsW!Iy^+8~O29&wrxV4>`q+C}G-(oAUJ_LaqEfmx=1y{$ zokiRkqbQ&r8rw2#a|K^)n4IM^`ay%rmd=CaIXitVjA$!-S(#}@U&qoPM6}ekve{8C zLziaf6NT>6_z$EHAW2GTB(Rvs*vRP(X}a~(tn>1mUg{d!my~}Q2uWag9V~CP$~(x! zK;?=mMB$D1oZmd_+0SRU*xq2WdD_tF}`2Gr`nk2TrKR8=K(P7}yV zrHR?LJ-(S@-$CQj&4I}$x>rF@|B-tA%caD~_&<)%Nm{fhuMcwaE7SacDcAjX+1~$# zkJL?#Ak!b(SEM5<5(&R!t~Y)a+4<~X+u-}Opa0gu`t=`&hzeK4uBY-0Wuq`B`Ri|4 zK%M*p{Dv_Cu>!voLUa($esgX2c~`^7<$&($-4|8YSCbsAk|LsSV?xGEp=C-Vw`@q9 z37pQ4lPr&rhA4_eqbjZbp0z|Tv%LV9!Pvi;07RzgV1tbm$EU7RLz)ix0f3rQ>j^fT zrjq@+MPOoLlJRIu=h@+oZ9Dl77J6X`eeT82Jk`>z8&j=2B+;CqBiuVoc{?9cy}wKM z_+!%0lGf&LURsX^8)@x3df?k{t>#=zeIyhlQRyxAg%2|u3*<5NhH>l!40&b6mpo>w z7N5Y6kB?6nxtiZ(nc#bZPRog@wa8oA)Ox zi-5eFa;s)h=W}N_<{QubiH*;iPsr!_Av`>5e#b}aH?N@l{1y+@9%*h&4Aii5i^0ROj7@uHvBr$kHd+Z zfca1yWu8_PoaxjEj(CO+Eh`VPe#ax6nr%8q5p!|9 z09)>}4+L*U@R+(WY{h2~2F!Wy2GQWT*;zFeJMW+6YS6Ra)TuRJZQEF$kS;IYWL-g( zWeYTSPqAw6_J3etAQEgM%=+o_1A~;xld?>9J`_F%c@!n1ADfA9-!))s$cUw(gD52ot=EIvG4SSR9q~3jN)0T^vhNYn5l{&-Z$1sXN~k z7;4m4xLmJ)fFq*OmCE^tmjbflE?%b8dT8}uVsQ?H1+H|+fUWDDSdED$%T{B|Z+z;P z*L17;nr3d)m_J^37&#m5nKDWit+GV~(0tQWj4-{Oc?|k!Xx44gG&SwSv!P3=^^nBE zrF==Ni1KwZc7CFH{S0ezv~8%&|9D`)_fwi)tfH`e5&wj&yX_ADma! zxztY{9!3}aQtgb8w)ThER=C_0^og-s0}{$dmDl}&-&mR<9h?B8PezvJO*Vn6GCZ6@ zarE;|&^xTv;+=vPqlcLJ=N&zN)EWB_(4b0luRLL*YL(`A z@lxcnS03Z8(WZah)Q)?O>LmG{pyuK0*?V911*I&)MkEP}UX56-en>bSqOH$XlibDE zwRN>*6WDw5P4?g-?pGmbo0NG)byZZg=fK3J zjDz)xRjrIG;I9|a|@xiZHfA}mmp-~0-xm1pnWNiT#8&t5QrOjv{S+<{<7~_ z^UWh3IyO!THhy`-*k?J0hV2FDWw-ZMaEUc}cA8Y|J<)rk9LH{h=&=J5QkGA;okz-s zOFIysritd3k3|k+phxjaDHvZN+do9@Bk6I5Z!JTi7Pi~;!zw|5Alazol&=2iSY9U` z8Bcf`EEoKpW|jED8i{R@pL1D&ScT3O4Z1Fl6NfFmeh|z3x6$ZdKo1{J&o?Tju*q7=sv7lUtIhl96FvuN7`d;ptKk4(`xB#ztx3Lw4#^R)p2Bu&3{r1YB z@|_lbJ9)fM_igvmr|*93dEQr5FEWn)_4(h66#ri7QtMja*vi*m_Wix^x@4_G3XMe( zHHZFl5C3@`{`3Fg|NL|DZ;z&OHLjiiS+$W5N)GM-6wU{&>7Y+XQqACzKqax5KrITH3 zeF>uHh)OS7rS<)u-xHt9PDs=)4;9%20OAI;k2-zVCZuiqHX^E7n+QL`V8pq*v$N03 z@F1=ha0C=nF^wfIRGKiC1GG8UJTBE@)|?31iybro(@M`%3~Qd%Buf`S!ZeESc=z*a zLz(k{t}H1y{E%ZeZ6lh3LHgC%BSZ6r_{0ggaLlY2ecnbT(rt`CycEuUCWXrfQR*2wAU~ zwpms`Yf78tj%^NkNm(Ozwu|L;m^L~|ywa38^PHhRhBQVyYgQGOq*t@;Myu5XMmqt7 zucpH5*TzjO5Ea0eCNrmA88^$^M$1g#)Zx6Gwc zX)nGCMb@2~U__7@d9OlW7?FLsz9&nvC75~aNP#LC>)0Og+SLdpV{#&en9$p`g~a$| zj-GQJB*aQD(tw-aQMGCY&sNp5nW4&=SDj6zr4>8q>s~{9(#oBBdm&Fkq(M)*v>%ps zXu0fi?V>mpNy@CVuSfYaxX%NDjdmVFYh0pe<%7Q8#F?V9)In0CE%Ie&e9gMOQ!#e6 zm{2EOv-?pdK3=%RoW|~Lp@a;if>Q5yAxA=QR(05fauC`~cPu~TWqyEp=ZNfCv}fWf zVtUYqkiGpXG(G8C=P-K1=+&Y)4^`riF}>DB#W8lt*l=Lu=bk?dnA>wrTi9gtM&pSH z|GNe?Et$)A7+L$ZOR8S|DjF`HaLKSs_O5 zP-}Va9#vN-{`xN}67)&V3-tFjZNo#g19ZydiIuyWaiyCNpmrY^`_s9HVtDDc3s1@+ zs8iDt&R6IVJVFPUIx;Mg8!?c??fT^+)ok}e+ZPFOcZ`OVd4_418Wiyl^AdAKx{mSp zd;Y3uSy{v=kJY|6W~59kZ!2aqbiv7meyw6yXk1l07iO;+;l2f*u^P^c`e|ogGvvH= z4}PSjONBGKR5_gZ!$M&p5Mo8F8f-+LU5k#Cue4Di&cPw`CckJK+^hw}tB%}KW?sld zNCeJrGiYatkTZO-NL1*vz{h+;xN z_q>ZS?5*dAdLBYxVi;c5bJa?G>)lGu9@R`~D{M4sE8b0G1$;t;9MJ)%q-*Ad4FD#a znnGv!HRX$NtKkxpA3Mz}rjk=T9!--tyNhSK7ja8hi=fWRZsY_5w}yId=>};&X8FL@ z#8UPxyFmw-?Dj_q-%9Xk23mCmJ-w%Nz+X()3rulvVvDr) z7BQ87me3->X>4Vy5jtL~^ur<$0^t5nMqO$HI-C>dP>=u?w{*0{5A0hLJy^YDB0=-pKd5R;RYxe|{G!Dm=*iX%bLFmqld0Z@U zH_Q|C!ZvrX zA!rLFNKGF;Ks{fa;{G^zy+?$Eyx@Xo95LusJidDNclWGpZG7llt8G&E-j{t3zjI-9 zhD@k!BP^Ywl9dAUsqQ0U-OngjhGI$-F&2${YZNoElRRUjwb~!hvGNPw%phgUuA0v= zf)BpcuR=>_kUJC0x$5qUCuA}kJeG3)itpdseqZnJwQ*a6#WO;rP9>1-oo#IGz3|Kl zKP%5x^>v>hroStd3POOUj063#Bf>dKfnB+zXtP- z5a&j}OUmW@5@_gg)~}Gr_GhV^K>l+5?})*D@j!We zHn4FaEPrNb2 zsMBJP1~DewZr0cKH%4=DPb_;6NI){3ZER;AT1LhY?()Z(zfbj_p8f?9>wkKm{~xWG zxJkaDI;Z?v^S`@h_=@^v=PpY;4SP?&f7Gfo0Br#Z%i+U!$d!YY5dQbQU4}`L($$xJ zqkrUn@N?L(aQ6+al4x0kfr#Wy2qDr-UawJyK$iMiMglRM6^fyb^!IPI%)C!bpm zQc7?LPrdeKxAQOu%#XSF!^aJf*&qpZT+vW}^3tiG$%8(fHa!U;|C`=D9$ggYK)=6clJa!D8QcvQ)X+|y=o z*GCSCH;9Hqy#8ttj`tazuFm#kwWWl7J!9!XOiwSJcpOvkCLkfc@=Z{VbUz}VTf0P* zNKdN`Jw$x^a529bitwl&t6du3**^R<`rAV@CinX$HljQv{@!0t1mjxJ^_birJG0pn z*W4<`XBL90-xzCN$h78%$B)&)T_;XFuDNxa^i3-EJYsR$hXf^t0cGmWbi}UhvMBW2 z;jECuJ6&v2rOZ<(zRnfl0)ksa*j(X~jUeqMuh(7!XI2pcWV zMhYBq<6HFx%=gqm%q4`gDSYvR_Q-0-w7B$ilIvWRS0GMPh5}C&&)oCU^o)OGA_uVw z!*aJ3qy4sqlJFtFc|~{O-FSwIDgz7ndjq{r%6btp@&X7P8JIKzLsvK z(C4UgMii*6f8m=l;u1u;F7@qdsBDViUaxCuZlld5VL=-HXMb^uTu>M5yw3YsXlQKD z5VM3#yWU@EV>P>>DFX;1bhls?ajG?Wac?3|-B2^n^V9(JZS+}Ua?^`f&|kOmZR{OK z@)H{vuCcMEy-sQy>B8j?S4KV~4sWc-mcD#lUee$SAGi+ddbtMnwN?&ncsSl~TJsAm z>X-Q>9H;TizHhOmTiu&pFWPl-l%5Ju1W&pYPo++L!w6=MZpoAHUMO~@OUdO#R2J9A z@0z2lHC=mgE4AEk+kB*F;8cn=psMd;Qa%Uzvd2T@iMQvaUvgG8Ss|LKrMyd5RZ4pH5K+Z znfN5jp(WLONzWpos|OR`PhSttJN>6uY=0yWAc0!HB;IoLVPE)0`h{9)aa;ADP5g>M zOXR_RTgSZ!J!dJzDT%8pGn*v;!&ppVc*&o0Zav@tHm0moce_KKgoii>+i3*c6P>+Y z*RbX~Pj6@pIH(ETYOXX>{`D*0f9{p1qCVnscuxHv^RKPirT@9D{%@@HwPp{bIU_ge z_X>$Sk-pTs&u5$eaT?!Q3jMW{$Co9DUganG)zd39O3mB0i~IjZ^ny%?80c{aky=0& zif%nVzrvsUecom2d=u(V&y5O~#8R=xRiZr_qBUyZ8)t*(Sesd)okhyjGTSNSa+@(n zTwEuRVBoIUC|2t!CY{wLOSxBi$NDb;gtE(d9=ivG&#-8RtA%1=H)CszPr@I0h7^TOEPhr$6Q=6#bNri)T$MNJoh4r^mm4s zyD=k-bNSHNBmT|0gUY#RibwJ9c35m2zieLe zD$I(7^u=Lwc-x|yLLkTSaw*22)~~^_AwV-d$6!}|BlbKP`lcvf>k9aWWmEhNVhl>c zZfuYZu*9ai2Ipu8iAT*{KYWjYx)*3&!0PPmJn^Uss2O*!Ip)ET9`!~<8&Y`w@1j7=#5Q7`Ny1hdjrU>*AAOElDO~;8*}MAJTD!y? ziaBw?RM}zMaj2Ca#$04(FO-=Si8;5^Jr|kBAGu@NL=!KDO#Lnk5ABf4hfPFk0KNUs z&2GhhbM2c72%WC#>`pOdzpIIdcA-a`@o4g8XGvjCf|2ynGnarQXCuc>DVbZI`L7^J z=9II@!~>Y0`FNnNaYppWbXoyKzOI;lE~L*Xf-^x|kboQ0{vEh+{8rvi{nNr8zf-?H zd$r6eiMk}Zho^BL(IZl!s}f`ZsV{zr;I$NzJ!0;8U#@Xd@Y5iseCR-Vg8IGoX@aWv zmwmQOM~Ks3&puxKInmzGsn%TSkqR0Qh3&p0>_|I(_WZLMZ9vDhek-u4Rvh5ijZD?7 zY9GL@Y-+K<39TsRyAXs|#dJT(O2uE8A8_jrwyfAPze6oXD%6~TDh?3gq>xLXa4Azx zA^onOe-CTNZH(N3bqiS`k}C!pE1>U(ZE7K2HF-99DO1J`KwZcXNRHp#KBoB&Ze5ko zGY8sG4lm!5n~S_E9Q5CH7j)UQ1oii|DE3D2TOW+ws^^-a<rFA!t|3a zK;Mu>6*ElPsx62+gP0yeJCkPRSbnr`1nm+@X-(K+?Tv)1BrENFITbQ5)tF%Nj|(uy zayVt$4GUnjYSC2(b|6>wQVt=AJ;96outly~!eIN|pa8>fU)=nQm7@eU5Amyw$}jaR zO>sLVbYqn!)zJ~e2vFFm2ldLm*Qk}xOuH&vxd8~*B0q0#z9AHW;iEk|`kn;+HS#vv z(765{Q5prT+8*Fi3sp)fC*}nY1ZNSLa7pLAm`4@rL|-p01WH*T)|?{+9z6hNmM4?? z-4eO=Iay{uWY)IG#pNIQ?*g*7tHkIMrUC&e}xD1TtoMH=i`XT3TJgSKGcR3IjCRWBthAF2ov+qv`dLG9?KiR)a3Mx)U_is2Un=Mx%lfi!*gs`{Zrrlx+42WajYxLq zM(x?-yc8496belRr99u_iff4Hmi=Y`7&g^?lwQRBzP0|*Wh<>>Jg6*rrEKiY>9dUF zawb{|999O}I$0%YDyMIGJ>1QWoj)DE$Ue=KNR0&b zNb{rzr~K0ozf`mUGUVE)>wFNOud`hTUASd`TDM)EGjT?#$WaiZ9c8~X1ZS8(eStO~ zXnh|e;-}JbRS@fXNaze!g3KGR;x$R)4nwO6nA6|Vll%S^@yY)i1L(g$=6_IgFum2r zlr3LReloIDX?R@5I7f@f_Y5n1%0e9ruk&b_v6_XzGQZNhnVEk(n{7>Lgh>mHNzn&( zP6_?)M140F6dGaA^OL4urA9&b8%hW;nyyxRl0qS^J&~(!QayX}l}f|RNm)I@%Yif% zpKMW+o+jPvMkd@) zBi%J4#7KvZlP^15ni1A`Hn*q=0Dz4XLiV6iZ$*TecA7f-3Vgtiy>q}FD2_92SG&!p zJjB@GsRY7&!~H`>nnyyfKXo>`qkskgqrY)h!~_Y>%F*xNfL8H>`kB`VX+23RMvfpd z|2*i^rO&ku?Js64m=)Cyc2>GdoF%V@FXFlYwhVC*ysW?bJM!v#Mwwb&pDh}nA|aK4 zW?h>*?}O=%LW+z`Rh{$bV*HI93F;~p{cor%l*`|!tG~fV%91Jk#Mwau2k2+c`_iCf z=Tntw^TYn{XINv^;p1V^s!&qdne5U@G1lhAK=V83#s1R8G9#uVl(cvuQImO5_T=rC zH@7uVH}IEg;|I8G4||m3HokPZBHH7n9uhsQt6!;B_QQT_y13x|TkD6zp-J_>Wsm6& zM~O6NdJoWQI+_FNfqwMY*J7@)4O2A~SLRI0fwAeZjWYe*mkWgIDX~@l+PxvTeaMr# z>wIau=RKxI&*2Efmwj~=Uwg0X>2-7H4#cLCG>gAk9O2)n&ZcTPsg$J7+$cvX8-aE@ zJIKIlGXEiA9hT>>U{lof%LP`zXqF6V?p#PPF?!EDh@4^_rfv$BqJ2DKaZn)ld>GOs zYXy_iGe32jH{me6^4%e>yN=tkv4RYQ)GNKQ4 z_Ww6J1WT-30kb)_$nXY$M)xEtlg_+vDnt)W_=t?mBe;B{{M7U&4K>PWH@*RAj05)H z3elLaZEKN|O^DwUNNtd!c>`ks|CP?*gt*>uhMxSG0wt@LjglkC?hO(uw7^u(GW<#J z+g**o;0?64K78nPO?s0o%jT?Hd?$24G2wzdNV8VNfLqxpufCJI|I5=+t!FVK4I^Bq2lOWcyYRipC*(9u zp_%hpthr*M04;@t!!bpFeBIE(ULrwDX5R^|zw*D^^Eh?5X)BCbQC2EoU_0NrHlAoG z7t9P|U_C<0>8 zkO5^=r3hK})R0!#ob4${65r3${Ngv-ejaCw<0!oF&y#gGjoXKVfY=ZziJA^UWF4E} zYOKF$fq=l5;=tIVL^qj}t$q)!$mRT5xYbOkjo#+X6Xb1j(4O#h@`-@~BDByeL=Kv_ zyggxaJ&wu|Ly(6(L&7WXqu4%ZK?hJ+KUFuRVt=hUSP;<}6;#r?>Y9KhAtt4HpjA`o zxGNi$7bQhHe@0DP+IX&ML%Cn7Up9PHLA5O$nZl?)!|fX{dp0qTQ?L)sV{4V&$?Kf! zoC71u=R)yCk;4(?+j<@dZN+-jbDK;t6TYK}o!ko_;Gaz)vrK>#GObI#bOS6U0!d_r z{48!40qKc=e0#*r%coL}Bg>}+au_&I3rbZj?(u3ST?f zk~rO*3$4s0RmC)R3Q!W09CrQk^H4ZGTOF03QQ<$x#`O#p`Lc_A=fJ-9MmIk%t_-;#j9hsKt=B3N1v6F%r@v;e7HrJ7L28>n zru7;uH7!}(edhn30o4wx{aIokpO@M1E?5F#_h#G2<|$E__*_~qRelxcKwV$FaR}A(4$bNv2pXFO6md6jNi{RKLs^U$#=E{}O+YG`*a8Q}`1p3sG!s>{r zD{pFTf39Q=`YxfQy-8y$m$U53>(`Pi_fn#CFHxDf?L@^d`?Owd?9AO{)3w+T7%7g2 zu)Q8bJ8bSfcquvkz-<)|31~2>LqcEKysm+qY>17;YLr3Vg~+0krXJrEG#YrsLZOw% z>icL2um2p7JxLkjmA2T#7EyL^D@9G6 zzYm7~Pk)xegz21ZnD#v2v+&XO(cfL4Gk>4LQIFHjYrB{DC8^_kaRYjld3#iSLqe^G zgtiDq^dCJt|3UqkU{JgkUMuhkb7wl0B)$o4K(fdIIL{p;xBNL{iB?{2Qsrhsd!uY( z=&^*HUlK3eoT zX}3J?iKgaQQ@LtX?2a<1NIIhgO8v4g`bCIaxNSgdGT_dTMzgOkP+3wx}Bq>}i_! z%R7>zK(Sw7yx@NMAltL#ELxtn)3`y>De@}YF2{>ZtWWg{Hfk7&{^s1?a60E|N9?uJ zw()VaNUFkKZI2n4vbkBf9(~CqY4lOBoP?z+*XkvDf8g`so5~;P>>EXY^JuDIi|P|h z9GdsA0W5QK8Y2L{LD<0K&oKufGLev;Qp|$Z#-Tq>2FARo0pN1PBiKOCm|(`aT#d&18D5C$aU8SDtuf`?5a$~Y!v8`uXQb_s> z3uec|Mrx9vf}{UsNZzZC7^>4nnv#2*^DRn`jlLJ*nP} zpbOK3FyDmhRhpYKCDw@v)vOptZ8PH4{ko(hj%apFWM(>18K{PI&I02|b@l&9~58V_hEfke%}jE*^@ab4PEOp9Lwhi^#F*-WjaAEr`K(xiFaaQlXsfk zT3a*u+`-AfNuNruNeHnRkvHBWmUT8@D2CTyub8R5Z>cwPXOh${H`z!69RsZI=79uM zx|c>DTr2MD8+}xhr_wTZ?pn_lgmym^%c@o%ZV*}3*5yLed&WOUe!+UMM|qn!!sC7<(%hTZRi?q*Iw zbRmqE4teo4qd2@)GI3&)*P8A_jT$&_m*S?vhZV$~y*DJlA9@E8Jv-9&%d@lHd*uK3^pI z=4omzkqsMF_}=Nn(%sAzP`La|yBCrJyYwx@Z+k^U@0lv4DwASpwm_4ecfb6{^E%s`plG6XPrxb52W&Q?_ zZ#nyA%LMkq@_Qy-fW*n4NGMk?m*lU29D*0o&Mvt5dU-Yw&+phX@4XZ;{F>q5&i%$#%w-;Kb>r*nMZ#?F^)JB#)cf_bvNl%-{FjFTyZfJMXyT1%Mh;Z=g3x&2k_9L@_ zdpbN=!6PZ1v#0Kq-0sSv8Ct5qj#p+*b|Z9}syL>##S1KIwjrh6)U+c@>HLg^Gc4%4 z&kw~)g7cpq-N|Cvl7xbwO|kWu2QbNcPU+y~Q#%rsT^6`s-_tM}_+oF=3dlQJR&O5|n;4mOY*(B) zMFxW}#y2%ye2%4l-BPOWxNk5DLTc%l5gH_8Cn&l(CJ_Pd2n6fLG6!6Q`3bE74WtMp zy1e{8MbB>MkCokw(xMJ?y18ax4*Gt*foBAofSJsvTHZ`-cK#wtst9Tmc`z?MaMbh? zvQzGPOd{s~an$v!@tCR>37jFm-pzlX2qJfy_U}XO^Lh)#(_2BG9q2RFVafkGB_5)!RSJQ#Le!@PBk}rtW z!*S%9Vd<)SkC8z!A;Q*#XK?*WgFJ&J9Bm>bTi2!th@$?e{#I7`Ph)sjA4%AgIxvAx z-LgFIM$M3cWlg&4C&?0Nwa*kR##rEHn*hddDocDzyJJ zCu`D#m3}_Tb5sgND(sX@Q!qqcv}46+IX8{WkU(q z*I84IOg6i+SuAp7+Cs@)AGJIg0GeP6{@U~p>NKx_I=p*cd<6ueQ*i(N7f`-Q8H)z& zC8$+@RyKz4cg)k`nRRDA{oPp*e=YE@rM&IXZhdZ{h|gUJQd=)I(ob=JEhZE0jxaL9 zLJcn~TMA7aNUd5@05)5#A5?J7R8vRs!OduTN?PM~gD@u|{$%xW--IZyJ=z$9ttr`t z%?Lvn{SKS%>B7FYQ0b|BF)+L-2)K@|DuZP; za#P)NE|;w_?AJHj8s;N6z_w#6`z^cT=HSn!&Tum;c5AbzFYI@J9AE6yh7)(!ba^d6 zU~ZOJMyL2+nlrtkitp-wdt>7M2aCArxOs7G!P(TfZn-Ply|+nw6W}eZi#d6{v|<0|coi4B zZG))~ZDgC`Wa}T)+@ZUw1Sk}X$5It;P;|iPP;3HE|Knr7`8xTp9Z}yQ?PDaFh?j>5 z@tj&X9>t_XU>OA<5U=84IuQQS_4oWfk^lsEyb9(yjUlm5-g~%NE_>XFy3qVdg7w&Po^V;FR_#B9 zWK1v1^zF4Fxwm)68&@+%-MF<$SRQjkU3!GQpkbhW4KIvL+QkWfj|zO3XejK6))pBI z6b0mxv<^6og5hWdiiQbbHjss+aTwpc@%%sFkSJ;YC69m>J`HZ5mxSikdY3ZZD}O8c w<*<3=$C6tC{HsZ6KF}Xv=ui6UEer4W3hsvR4Fon2*g#+df%k|2-%8tm0IoHINdN!< literal 0 HcmV?d00001 diff --git a/docs/img/drf-r-list-view.png b/docs/img/drf-r-list-view.png new file mode 100644 index 0000000000000000000000000000000000000000..1930b5dc0d2531ce0a6bdb25fc306002b26793b6 GIT binary patch literal 130100 zcmeFa1z4NQwlJJ}OG_z5i?+B^Bv7ohh2Vig5?qQql;Bo&1-AmlZ5IiUKqwL*XmNLf zOL5m?MZff%v(G-~-v8X^`S$((^Xz*cR-Pm)Gizqntar^?>z#Qsb3T0j4RB9EMqUPR z=@I~N3I76|&s-Xomy$Agsiq<$uLSyQMhgHBS04iawsuZ%HQ5&rHMO)K-uU*{59rG{=H*Wu4po!F<0g2V&HNv5qkq7SU&DXWhu~?%ZEc)?w)GQ!a(u_s4hF%0 z-^9OZ0FD4PfGps}&;H|o_3GWi!yGMMF;Ld%L`}auj_`RQ%T>4q^%GI0rg7-eP>gB<$o|1QdGWSX|32_3nYR?EAEIV-w$c77-bj4|UV{R%kBa0dV;rx%g`< zH-7RUM~r6?&%-T(YnQKGzW$Ty(q-Z+S0C}Ie!h17KG}0fL}V{11r%oJ@V20Ki-eqk zfBFVo5cooEn^A~Kz{s(%PU>A>+W9Ep4!$hDBr!k|fEx}b*7?$iIS@+WI?|f7T(w0{yCH4K3L_N)r&^j=tatPIA5c4~ zgeL{eecAawP?vfRC>YLv6j`6BA#_;f$=+=DBuTc2`m($TKzo96EpRer4`F+KFj7C7BVWInSX_7`;S3o!uclplYMQ?nKPfIYT-k20Z0`O`1&H!T=%5Y(k`*Ye zQ1d>-s3ZtIp>`y?V)-xy*xKOnebcvE&cDkOn7VsVRydpa@lhl!N6g1qMd zc>FnljQ6a`#be*Y%#m!$dQ)7fF8%f|{1MXHyAa6-p%3|Oc+)>Es4pX=u`qN%VgwKCgkIE5|>;Uv|(hy{KF1( z)?Iw2za3}Ycue_`^$Yq+)062vK0_K29T#sZV1Fi;$10VWgzi~VY>$GzlW?YziqJP1{#!*W+u<|Sf23_*pg-tnNE@n69FLb9SjD)9HxdYG0Ex9Tbrn( zk@@_*ET)ftmif29RS>L|1o#rLDM->^p_cZ50giB&K;qheB>!yw^^J%BnTz(^a?YmM zQOXVI{$b8CLTTDtPwL?`BspLY1oys{!rZ&hUiXo|aNXXjPp&*KCo8&0DsK)oj0~t! zV3jEpTrvI?0HB>x5qBuGd>B#Cnv#w~2CQL!ljh&rqt5@A7U%P<8|#Un=lm|wiv4MQ z;A!zm;=zk^zyW*ew%R#h&D`wPXP@Iw-G@0o`vOHnjx{r!2ko0lFV6vwTF(LN{X5>l zYuZ?ik*W|6#fs6D3`B04!cmZWx^6N}NSZ9LrE)1d$a$a5a+7MdQtN4$;9LFGb!Km- zNLg+*#uS{L7N-3Sf#eNIUsFfc3WTkg z0y#$qj(~+{(r4itqOxDhTpt)zeT*G8D%je|s}>!ZjnTg$>^Xpgfn-^bz{CmM3^2UF zKtX+VL$c3Kppha$%%n5}k#K!rfM24eh*1*J(=6+Mh6xNp{s9=6*JOCrpX*|@E~hEHiTUZj;v)u9FZ~Fz8l@7V!oY)T-g5 zh3nJ+KcRH8tYHy#^3tDetc(#d_IGs8rA&LBR&KTj5r8(cO80BXV(wVmik<@|ko1Rh z=K#calY}wlngc8UGZD$<%5UG!0o#I}lfBI~$F9PsHJX-yOB=kczW@kxK8F&)j6JgR zU9DX6atb*OeJNPgC2DSorrRGSpG5hv4u;ge9%Hv;&CK#cDo_YXBRo|Z^q}JrSxk0T zc2?&A=J}2u{RSI(lcLT5c3xqmwy?r5EdjJ6A}x&*Q>ekg8cLMmUH)wID42rmmcO+m}R$7q74y~C7#S!(rx!LR#+kO7hWX`QP3!dRV(=Cb-NKQ@fk z7j?dZ!D@A!e$KLShD?#52EVPjSv7aF(u2Uf7$u2dZro-xOQntuSRvHRB43_reRW1D zLb+jg%*1Qt9H8W-*0WUDY@bo$>D0VC$mu&uK2R(BMe${B;5pz@p9nIb<40)_?cD+9 z`unOzTp+MzI3Yi~dA1WzbY#C_t(#U*LTFsh?VyW;w5DZOcObAHmDZo33IY+8v~5n^-j0&1EA`Vq)#3p=g@Ka$k+WV$V0J?Ji;9 z&7xJGbgfz4`{SInCDZm*AQ#NUXQ$$58{ZxjMg!LANLz&rGFq_C=+HcoSCu8<%j~{a zuiVUgOGo+RmK|))>XGmL#4!b!-7oW@gPuB3u|Vn8O4Ke54MvqFXs(mk72$4X1uWvO z58SoY2-tK}Z#4g0-6N{=LSAqv4{GAH&A^$|V1+y$fORJ2B)YPgJ#hN^QTTRu@R#{{ zJ1D7hSO#+Xp(Z^Q@*EH|2Z9aCvI^~Pe~zBve9D8`M+I&PJ;?R#)tOD;sPO8}J{XS| zfeB0S>)Cm=Sa*gixdo+&c{ktHOI0435;F`7es9#a*VzTNV&KRZO>!hbjJ-iAkH#F? zo&(%V!%>R(0UJ;oG6fDd-c9z9kw6bim+MY*iBrfpWyrE2ktQ)2X z^2vIehs+B9;Kcu8&(YC7ltS`rbVH}>zJ28>$z68=D~y4QzYX^<>qRW2)dsxWetrjV zZ-KNCb)_<4;YqaeWOz3(xz=IpI3#VAuw8DbLj6I5)4<@W69z`XDld1KhG}S?&rTfj zoo@xgyBYfL&76>dOzX%)xFu|j3|B*>S_|72#e=6RmBP=q1MZ!%9$kYUKNtQEVQ~7-N0pOwyx} zS2aDoP+1lIMC#>Cgcb$cc&-P!2*BDoj?0;jV-F8R3brr#Yt=XVZJjham$xF++p zSsLA`Tj<4A1cri+ARj}J4RM?V-`dgSwFexlxrgsOoO5%sv%cxvd0eBHXYB}s!RGai zwnwGv!}^_t#HOvDAeoI&WxPJ+grI{OO~~w?-h}yhMtI zIyaZ94IJ9eS<2C}PykU)`9T8ITTSJQE+QCwRmqsKCZ;FoD6dFcq^@~(Cq(;`I##3z z#Pe7vVkyU(wWe{=+i7LCFZbr|r7p zwP5DKUcYZWaaLG#uVHz;M9dj9nwE@;?22IEkWCFFg9$vYXX)MGvm2Q5)JYoFbR2L5+bbeRdW|8Fgn=Ux;TcT}4Gya}{;F3w$VG34YBy zGStq)-vIeK*s`EKA)h^j?Sx7@VlWz9{crRcsS;^MCGreK*&@whTKPcdJw6m%`K~}>YA|v|)*DtV zc@n4u6zHmpS|E|5LwTGl^o-FEIA6S-^du5#&}SS<(ql|LDCW2B5{cde!S1VxhO_jy z3t9yy79F&vY%a!!sp;=Jc=t|(6U>NpHcjYRXQ!AeUSlO_w8lwnay;l4WgYq6k4=12 zmTI#P_tK0Jsl`yTY|~=*wubs}{jxeBEdmbyv|9o=4~9);kWy@1vr>(G9C{>(XO~Yi zEk33KSWc}+)p;z>7%ur{Zkq!Y>)K;<{WJE8s_q>ArflvPvKWWp$I+=*G?()<%;X_K zoFlZ5h;XQ15Cw~^on^UfMRUv?zvt;wGDS=x$n7mlmZBb#%1r$Qat=|}edZMANHUFq zts5QoYd8?SEzpxVL$v!9ggEu9X-D>Rc?8*nnwZDud=gtz_=E)=*Q^d)m$hn_~y-&u47J9O_)#DkWX4 zsUflq1xI1BK=)`ek)99^=)izFR9*unFrQ$~ITx{-m^42RQ;S1vQ#t3USNr$4X-|af zrG-#K(mNzUT7pGG>pNhTD^V~OFxXsvrd_AU_({>#VF&%kRg>HYp5AGVmRWD@V8vVI z7HWAd0Shmhyu_zc8RnkhEH872Q@ms2B8$GKw>1y8`7T10C$kj^>}d6JPvfyL7dqwr zwxSS>TG!wV^&JkQL?W{?vShhwt>4h0G#rP|^mE$-5jk;Vl5b|A(%!3vYD*qS^s4cD z!WjbVWb`pjVf||-p0^A(oM)~#o9*rLd9`Avbw&KR$|d>)<6Nnqd&4lzq#d@TpEg3( z^t!;NdS>X;<<3D_baZx(gJ}tJK7^MtVfYh{6vvZ|u;KA#F-yy}2(E(b9(*U?KY5;Z z!uX-UIi=pKT$ht~0Q~L-ShkigA-|KVVkqB7HE2^%$&)D2^iej71l8=g!VBX-yKlvl?6+X0ZGgPyF#(nn6`?dR$+F+^wWoi$E0c+ z27FbcCg|)0>*O@;>)k3^iLr02u)r>*BB;`LAZ(NGmU4FaWiG}*drI|2JB&fHfxJ_d ziWEpHJ1?{_E$uZHxgpE2P*KWo|MimnU3J_9w@@Cds=99O?)Pq(@|agBNHfAYks3E5 z$*fd#=Gisq%|86)REQ?0^rd{A*5;lDMW5B&Kvoo!3}*ZYdv;y%mt{ex)dkjSLu*W5 z!Hza+{@V(B8H*as%}vc{ebAM3SvYJs=>w%5k^odWl6-GYfg)Or>nN<=U41 zl;BJ0V%`+6+Z3`Qp<--S!>(Nr{3C7+g{UArSU@EjZ`K?|T0oQN_baRkoP9slsp2j45bFZ+h;pOQr87p)VWx)EB zyn~>TcCz*x)sq5}UcQ4&|6eZu@}FlK{-38@H~-x3M}=9Y>(mR5e99FDnG2~HH=c!QMwOt!6ZbDZXxM&SAv`)j6$Ch2*A_K;*m)Esn`IVfMo^H zGT7F@lYN^f%${5aCPbT$8Jf@$tup=W$s{8cxe(?lY_D6Wtk>L`HTon`VY0bH&o*Yr zr>qwSVk8SdBlO%3OcQBiY@v%%vkHR{SuJrVwQ>cQwmIJorRa`MXBeab8BarM5g#5L zlgD>I&E}Lubj+7qn43|5=@If>iW~R9Hke8R?Gy%zfa~kV1@Cesd>!exRCrG`eVd%T zZg9-j%W1nht;$Y)K`9Y3^ad#@(Gt(%Eel+~E8%!Ayn%|ZOiTgxgrO}W19pF1FiLJ+ zb4+f3D>Oo*)tbWN1jmM3I%?E%Nc-|F*Ma;|#h|)S1be)F%ykwEY)hmFj4UVSEN?+K z!Ki)@bxiV74Z7;lPA_qc8Py*i-Nx+3) z)uDHgyr$onhTa>i4ufb2Avg#UBxEo_YvZ^m9gj2~IjlVkJD*U{mov^(xtQS0Q3RHj z8w^A%K&`dJdR;|z4=~6L+aC`q$2JXKbXDECd+^@8(9lzcDWQO-REss#a*$i&MFCnd zVX>yi4@T!3?EqXQg3gp%S*(?`*uin_%Gr&^qs<&9VKAkLQ}_AS%5`$qufs*xb=HRK zmJMvtm_aC%F(=1OeSjY}2%QJRIzBdxD%8b_KM%DdKN!daZZu!34y323o~9g*P#tgG zq;Su!)IXd0md0SbXLHoNW02}sL);tnH>DYT3s0ffqfCBY$%O{yZ ztL)49cMWxgLs3g#aIN_=ohatp?6f475-TPHaAf-T`H3za7M@~ZkQ1dUEyp-}{)y54 zis$5wcj_lRUPB)j6*WSb10A>y(+PEvi;+ubRB5-C4+Y;ks{&OW55|+y^2o#O`|ihA zS|0b+cEn!OdOgXQfM|BX=9SDsLlteIXlaCejX%%YXxMndBs1TyRuVZ+8}@{*H3FYx z4)byIH#?gI(-g>Wsxc{RV8;U*z(?cp_EIH+rPGO^I%;L=GDZF3h}X{1!I2=rALzn{ zr0j+{kiKpa(~4k05b|-IVQDLY)a741}^AEh|R>MT4QA*@4yeD**JT6}eLc zicz3>9+p>3A@urF#1;l3dm;wnf`HW5qTYH?x>tfqAd!Xkhy!$a;WipoGJ-jcq(2dyqj4F8pnWWmj$WI%Ilf zm9qfUP729X=f$>Ov!eo8@fEalCWM(-Z${`~Th72Ev|Mho1Q5f-4D}?M6CJ`X7kT^q zOiw*-CM*235|4~|ZZpftfj!?kqopF<^qRYO;b;L>pn@K=7(|9#E+Xv6?7%7$_)tomDQc z(wK!I@@?O?mt=v0Srv6m{wE|hNsr5gODbKLS}$ zy@DI*=oG75zbD(;#5Z$e99Ew4{jIi30fkPg7KK9>Yr|j#`exlem23+}9nlrdwqPK_*?7bWD-~2SBa0jHY(x&*XVM%*94poPr4M$GkZxL=QUgs(r+mhiafL241mDLn# zX|jnLupemanQ>Ef3GU%s_Vndf3i0&*ODKyCs$86tmsqJtP|Yn>3du}Dh`w*Z7{recV|-o7ccJn!vN-6fD#+Dbu#dS!&u=az$@P6370g=By(Vdxp{Iy%3N6C32|#GeSv7q14;Jjq7fyFW@I*ETflY5Ew<^+ZPZ)% zA#fG~c7l+0D2>`vJy5rvQBBC_h%5EIb8GwE(RTKxF1_kb#$dTKbiedjJi-(1)9?QDl>L>AuoiEJ ztC|#x *v+O8?A&6>Z)(8$P`|5yCSW-jNFMLUgT0+kBP+q3uV-n>hk{6UlN8Qle6 z!1o=Q^dIQ~!W*$`6x17ZZ*9MbTC%fF>ruO6b&xp~eHQbDlT=6?Mx6n%IV@JTr)Kaf z*~#bZewx8Kz$AZ_ynCNWUHBYO$Hj?X28%v5t~KT8oPT`|Ac}B1sBUj^o5`a5UadFZ z4}uVr&?F!Pz38;IC8j!I$?q%tNhVHkT0bj&^&AAJLn8T#!H{~-R1&t!kc zq8G~Z{_ne${|CCII))JK*EMY~Ds{ z;LN)c{yWCe>8#WBYNj+d3#;+IJ?wA2dHq}W=+ch^IiJ2vJI?Wedj1_tfhDYzCe=3D zYpKBVZ^ZuA#Pn}%O2{7ESNHl1I#4^y{yUcA^+&GOzq4C^NHNmeiuBaK$34kgW#52( z+nN1M_kL5x=IpZ>h3-#m)hh-#y5F%sBEjrGsDoyILA@3PTV*C*${6l{K!fX9LVe-e!`=5Sj z{jqNSF++HvgTGHXvHl@fV(^Dt$scmYf2v!^jK9owe*Vk6XTa*ym(xG7f9e*!MK?Ib zGxz~pk-ii|TnwBGqwuG& zlQe6Rg2{NZylA}gj2RZ#;ry*Xp5QBi_t-!0|J_?6AD5fd zH&Vf)rIo)?T&cO5)bfOBK`QHSm2Ce;arfk+nG2!)MUO8u?PAr*>K#8?8`Cj z;NIE2mo~){bdoTFUkP;nlJWenR2;vs|25eEL$CD-)Weq{$s#}&{*t{ZBaVZ-kY{1WLJkNsx zxfrw7FL^)q%kq`WP*~r~=OJs6&>_CUzPh%<=eXwcdz($dPna48fTR(95K%D*qm_!nBIoz$4bY%^4Oc=? zK*~0}+db4$jC$roBH&92W$nOVEY9cwlF_M@Ty8-oLN*^uxq!B^zQL~ll*v$)&pmj# zH*F~SO+!OR?|c6z(N=y9*DJqL9*~YZaDTsQylPq)xo-B3U?97s1^$ z6ky57G_qUQH5ac<@emb{IM}9CmoUM+fj}F0+W@H5(HaKhryLQtAwa|jk22U(8TC^H zR#Lj>a%onAi%0v@>}hX(eWCAAeWxDd&||P|nl=XEFsA`J7c?B462jARZiPExKJ0o! z3=x$RY{ok4PENU6){MdL0z2WktGN}!30RIDv$;w0+w9??P>8>DM^_%zdX|)Cd=eL1 zJTkjCUs329m3F!IiUo=d$(a4lEPXbHl`(D~y$gko=L~8ZB|Vq*eZ5{!tdakN{K&Oy zZYP?=5t66DbY`xf-=Eh><;?t?_`~WZg_5ux)*#0ak&nzW>94=*5rJ(@L7E{eiXLsp z2%zgVQ*UZ6TfU0n0vQ0AHlrjgMq6}u)#oa)2%YcTh<&-l#_8DiBu#PErFSMD=at9A zJkatf-}dT?5}!4{!W3W1Jl`3R_xW;OGRc`ZSe zA3{ZAoV-uhlrGbuD5p87D_sc2RV=fxov}AS+$OfkKXy#1(1k~LhiJ5XbN7fcDvT6O zN!R3}d!evq>d{EfNFWrRhA70eB(31uKUxEs-v%rjQw}bj17wBQ%xyE@ArLsZm4LLw zr-Um(iLo$M_|%M=-KK=X^e8gHI*GisL_;Fl5kpHWhH)H%bEI*w^6WA19p8=n5XU#d zXGd4BuIR1I)8t}7p2m`<4uv+VkSP`_jdz-xM()f7Rc3G>D-BZ+8I3(9D>I^o+Eqg2 zp`(F3#C#D2#ANXc6?@+gP_ykWrix1y;x`D@vBaHFD72GI-2BnA|6=t1IkL!wi6+-m zxA9w?rL%kew@pvqkw%#jjY>u(@aw3bo%rHpY-vTGp>#3WQgwB-_Gk`P zb!0BIJ(1C2*y)CzVP&mXsuJbO;gQ9HG22EgxuOa~D|P(lXha&4rBDpMgSlz#Q-Ge8 zcuxo!v=k=Qv|cN*vbO2fwALaMn+rq+Gg!-@VY)lrE_2}Kg6Y?2g@oDr<;4xXl89{* zLFop4ZUJj;7U4=d7DZvfPQhN!onqxgka~4;`2xw|BMk8}inOp`q-$K*P+ntkQ6qIW zo)$6oV#+BZ-P)Qbx@0dBS>+NWoX%|b(i{sTle`?{NreVS_Y13xD$COZ42kgcE@USK zrd}JY{&)^B2Dix;$_t)mEIt+Aqbaq(>7)w(&D3=TZEP2&`yqY-#GN)%4_ghX!6O)B}!;CIeM8iltqBiygb?G^j zPoG)>`+#KGdlfQhX?9)L zPr2YhP$Rf4S&Q;|q;46C%y5GG>%69UY$!S)DNylp8V0pDr=GO~5w0I}uHRSSYGcwwGt43ItlwUY}GCAlh?4-FBXED4ob01W=uZQ^=KQ!kio6Y7CGhu z6VTuLS4(+zmxIp%^&{EyZ|IUq?0?9oF{%<16O%;T!zI`z2HFkNQ{fspM%RS>TVKaK z!L43Zd$GV26cALNjf~F^B+Pb-VOuaxOAx9GQ;J3_^}g&%em!nsId;ZhU#`$xMm6%* zPE}vWvaEXDKvf}V$?~(Uc&L@g50fy*3~8CgRQ3=<#pvK0v&Y`=2{lIeY`G^7ULr%@ zp96xl5gu}jZ3m{+LTKC05gz4Mfu|obOM7}&nQ3Y6S;My+(j9kcK(?i|V#rsY--#q| zW!PAR87wgL)_7OmH!>3wHfY>2y_RD)pqYBxXx!O9w-h;s(?K%iV^+t3G0vLIK_C}9 zFc=K7vI93w)C+0LdOqC5z_Le?$UBeB-if44aadKEn^Xps2iR)a#w;%?!nY^u&yec}aLqPkW-&*sSrOn#vryhm98zlT`O(dQ<% zKDuiS<>C$Gm6E}>t_0OgIX;)bYC|tQixq-%OdCVFg803-PK*QBoCc|=#w3)i$)Ie55V@sU&1t={ zXnv>_b(^(b$!E=#AOd%CCTXK;COznavT+rNj8;dx4XK%FO(B#%944)w+c`N=YQ$a= zZW^tb=cuZggUm@V?QnS_Ej{kfg#Sn8pB?`D9>ov}}pqdx#9)N}Rh^L7<`>_YHUvJZ~ha(10Gf!uOjF&Mr zmOk!Y7i1R#xzLb{v2bA=F0AGMX1@^sR}V-)S`6K_*tnKBj>WcNv2UW)%KmHLdXak} zfj^%F9(yxemV&hDhavKseL?k29>*+wL;1IJVoJ30^uZ>(Z<8*I-JPN4;VS4g(iM3f zRzBk3iy_7EEuy%rTkyLz!Kt`4=y|YS~zBfK2V71@9k|^UW^}^r?JH^iMBTc{GxZ|Qg2g=lT_wt zTR9=MG4l2v=&EfDLe#7!n3@L5fG&bWt12A=uBYtFAG1D|EQr0+Yq0IitmibuK1d+S zp&PM-WU-5^kgkA8NLNR6hl@_EV*>WD z_vP@fe`oH0EJ7qy(?m3F(Z7WCIgaXsbmnirKhzdH;xRaz!-@9gsT7_D`W#yKcAvaU zJfgN3sBWk^0WK|`JqMo>7MsZp&`EgWH#OSc7C!0PJKdqHOZlhY)LEIVx)Q!O<25cGh;_TERn?jR zN4tN25D>4G`1BlbBL+y;F3MNZebaA=v$9r&Hi6cz?wry)vpc5x9KzqI9RR#~Ze}@tl)h5~W%am*(q5`*O?rv!4lX z&w$yqZ9ffBp=ea)X@M`Wj1dL`jJh~vaLb;-oLA>tp9Vx&>GPop4&!m&=kiV&WhEn) zn3oDCtIX=wX2?C5OjhViX{A{I@n64dT=o?-wrUR%)D?N<2E7?9{kfk-_7g`5NCoNIP<&HnkPoR<68*}a;B13I6!WuF!CJ<6TM zlSe+A8{+4H=)QBnfcpv`axYW#y_zRORmhRVzT$L(l1P}Ip3{G3gvq8#&1)?w6R#(FR$C03TK73L}p_*n5=tLFsT+& zFWgw4QC^Rgjk}*>*7KZkg*oB#(RXOq2`0m1#|+D0C;b-?_zv+T-)(p5-|)>XSFIdn zw~cm{w~9NmG8Zv6za}=T6y1iZqK@w_FhSd#ZF)8#OqzZL&>H2b%VnX$GpX{T%};5r7*Km;|R^6-Vv63do@uo3~W=_Ny7VU zn;`Sr>Ao~LGglz3Q_x~TRCY!zL{Od?R<3<(MxGXh9z-&T28zy_>LS#*Ocu;8M#p8c0Ism9FycPGA7 z6Q@AX+i2tsra(9bFy>VQ$u#5 zD~5EKWf*o2+rh&9?9i&!8wtZ=Cu+N>KnLfjyEqHK_N&5*p+M5eQp+x(R!&W{(nO3! zSjTQgM`H}jH$c$;SQ`hRv-Js~uj|d~h2zg=Va>=&qMyAXE81rcP z>p=*~;}|%m7>+#$_*K!I16tT?K9_{@t_hUay6r!<*g+<*!}+^fXi+mxc8)N~D^3q0 zfj7eS>uOHC@W)vQRQY)Me+hHc#Cb*&Q^h0m1Bo6=ynF1hS(JcWeTF=8flhMtwxphv zO8nrR@mt2Ri%u__7p5tWKW&y^koPBtmI)K7zZNI=I0qEz?zA_@n17v`7IW&Yq7!H& zE%Q^LEC4CJ%*@&27;sGMbRMJ1KPqaE@<_>mK_G+uin1EFP5oR%MHt~`VO9u*prjEx zXU~WDIbMQ|v2}IveUTaRm+eep*)!UKrR;jF|U?Bg?kM{mMtN^X z*^L68W3X>=t7(~@?awVC75iar3oLS#*A&cKlHxf^vv-T0d)U_|_iNTlGprjwBiT=S@p=KV(f6$*RN%)x|%)Tpym zBopIz6cbp-FJsu_4~o8iOuy@3TX*Q0%C%XKm~_Ypl7}@4+AfPMX?U+&9K%=k;}_Gb{C<143bM zq#UUprNm~GgL}~=eO-63-@J^i-<7Y_9_iv*RUu9OaW&Jpz)dRF zeVDub8k~ z+Z2aJOHW5KP7L5padpX@Yr{`vCvdn1OH1mt`C<{?mdV>IYXG*qnJ1VhQHSB_Ma^k zq@IM8o&|^W{Nt|=_rI6^M?*i~eTYBtXlmU39Kea+#W4H(fH7=U!TCmmHFe%5dv1RZ*1kaX#cs#nHP8 zi(__9OG!Y^p;&x;RxOnO4a=UL2#u*^sR}OzQ%?xW`kD5ce7bFn-!k1nRw3^kz~0g@ zXx%HE{=HlLU@<<{;BgpbLt*cLfejQ^q=Pih&4{tkUaS?M5RwR+2Z6Rf&+{;>04MH8x~YztLcuHK%bnG8lB^iIK9afVF)p zE{)TwmH813ms<=zB|ueZVOiW6vO=O%l!zsWs*x7itHgPz3_mBkU3o@X(`9l0eI>Pi z&>7>ZBAK|7f7n`1EhZqe)$&`n>!a084m1CcXRY1mfOw8`KsQ(Fkq3NwmBV9rj5|3@ zwyw`s(>gbjApP3*^HqXVo?Z+Py1|SW9=SsM)Rgaoc(RCeNRl(#`fs4&dcRI zvc0>wz@WW@o~o&3rGqr|`fB_#==#Gi6Bdc^68$BPWx9mU6oMFesw`0vWVV+>);VCS zxwk9IKH9B9Ha5$UI@x*x2of-yW@nCYMMcD?6~Nr#y5-^c)9#PCP9r|;a7&O!uGwaS zTCwU-;mK2|Qm6`xQxS##Ky^pAS=gmsp>VrH+ zpaEEGB{sqMgw2W7=~utwtlRU{GeOhz^|j#ZHw8QIAgMdqx#+Lm1EoX!&0s{L4M!C)0C{wL{HCZSd= zbJ8!A8bH4WR8FeL)l*Eb-SFphu;VD>_v^Pcl8347!fcc@7_518b~;~f`W2W_HmMJ9 zQbO+OZ0xEraGIxQ+vH8nz^pd(Gbf)f`^yZ78uX?-?9FSdw&JiprOq)>C19u)$B~f{ zyTa4xT=jhFn!)>2&9c7~SJ->gooXm@4WQfeayxGk-!F3WhMYYDiV6h}PX|ml-`6>; zlaoB;WL96l4NI`fmES6L+nI=E#~YS9x(UzsfZ4=oC3wjY#3{>^qe4PfZg}W}`jKYv zF6G9pa{xiEfjhQV3*pTriil)Qt4{Fkj@}V&3S>&X(UbKnm3Z$0Nv|1k={GMDtFS4n zlBS485)qh}9ef8B?TXAXGh%2ZcCYB%+*a(h{eIh0lE`wjS%pCj*GwoOy=J#$_06T& zYJS@+wdYuJIDakU>zfv?8#W1%d-C8Q_T>?>u70lUkugpPt3;^YrqO%?hk1-=Co23k zIcc968M-!Zu$!>0-yzgE;TEK4P9F-#KhUx(e%MEJs4_!!yJ3i%(30=dZl8oYhi6zN z{KcdlxuoyXi-v~A3=Cpx*JarSqq$^?okT;6Nnaz1qsbsbY{N+_iyRD;JRwd8>7kEj z?tqMX*Qa?p>y`aP%UhyO{N-6ntBh-KG026=q>Ml#&&Z_WKg8Cgwm#qVZ|Kg|gBq0eBN_H23E=VV3lNEUb2LQBGv;YOm|g_aH+iaxcUvk4M8@ZURDrX^09(96^PM~5?X!E($5>n$d$oRu&5oLvob!nt z;mFGB>);r#AM{dqTM-(zul$XJhICvlhB-ao)~=^`T&M&L#kFgR{E#OPWchwa@kCg1 zEAWHQ43Fdy7CfPqSw%hOfZBC+ZXzGO^J3UIxflk?;Ef1B|j;w<4KwD-|S6z7U=c@6%lw5-0#CWEcL z-u-v>J+mG1&aq@O3CbAhYgTz!p$daiLVQXw!-GVsZna9kBBulU!>HeK0bbY z`eC2QWYxlfwt6E*31;)wG7Y7uiM z7}Ch3cVH{;TT-(rGJ9=jDuH4#K@^DBb6T zKsT{QgU8^(vI7ej=<6lY|H=OLe=qMhG|(uT4HFn2A&GH9GQ+nZE)5M3EfYp19z|+} z99&UYa63aA33dkdni<_u?+mfx@p#_w1h^YfNX^YmrpN-)vm}2*A_$$E$WDo3rzIAX zefZ7n#=~!Oc#+)z!0+CDhDY#cl+xf60f1S--;(~4xXKt^fNgCXM1Bsih$7S7PPtM# z!&%paf$?Tr9}2CMvZyeUxb_TOT?#&Vn%jV{=zk{MkoPe=2Otr-`;QBHmppJJ{jB^R z|A)Qz4r_927RA|H-EKu;BUP$`fKo*Wy=;}xix5H$pmaj-9k!yB(4>>lG(dm^f^?nOW;ynOU>e%&ZEWv`xMimko-j zgMVUr7yXfdiv8p_CkzY8mT8loS>D&{sDt!L{W4`e($?i>D$O}WGREir2q*J@W{OV1sjUW@y-V| zaz3XLs6f{j9AvQ4z>Sp5{t2X?bH0mxh{4D`5p1NX^}3igIxh3IJ6L4M$ZwT#iD%P~ zg*nnyzyPI!PM6nUB203A8HN(fo4irKqM}#V-p$(P5mpSCWBe9jqKn~lj;>IWGbneA zkOoF`GA^%dQg&aIYOez3t{75``Wa{95=d~X>Tt)c1GLrV%T0bsD=&0%7ALZ8Gk+^QBaau+Rl+w@~rK@~gGQ8CfI1|~pD z&+IyObtufqG1dqmT`a%UI$Q!tnev90iwQXPCiL#)j9s1O6{Y{!>N%FUTT$|^e4~V5 zS67;aXg1(7;{oVLLt>3<0OOj5WtLhFUo+oW8_&f#vLkvcvQ?r6R?edCVVq00GIi6)9(?RO^z`j2@5bQClA=8}F2uo+60E0%E*zBKd6YPtPCN2= zGu)!B0D*+q+EpsL%pD|-ffmiRdertN80QP8FK+@|+f$RD(s!=j=Gdtawlr>266H3u zNFTsGK>*(<#p2DRrn!HGi@DCH4gtD*U34i@sg@6GuC_ti9~4v;-qGO&#G(s`gT&q- z0z6U~{U}4DMq#axu1<{TGi7x*n>_kjv(T$EPrLhg-UKc5 zfE$<*I}i3W5jGy#iCX*FKqTF^=@42gcdgtZ+?sUNWl7GJHOTw5Vk$6Wvs>))WX_Uk zVwb{j>sYw0Q1q4NicX`LJD_3AOtqG*ukGyXEq_-4haYQOR!;nd0gsfgfRg^0``v>^@MMvp7Y=iYv7?b+Jo4DF3&E3G0T+NP_Y1P^5djZBl!e z|NAGtQhpz+1{V>r()*L zuw4yfn+J(cmOA_up1yUcx<=)WZcM<^jxye%$!%XuVdidkA|A;FXwqp}bV3Ks6bjKU@>yov(E=*GG;Nybmdv1u z;awP!K83};N-x1$1GZ!%olrtx9LeW}2@s_f|ZCTYz zkhvlUNRNL5?}d&tX^mv#j8Me57a^eGPVutdY?6M5Ujg8R;v(&5QC%wn4w9mMy1!(3 zG7ttuO8aLjB*tiE`X)Gmz-n%uqH9-1I1CFM0}oh-Ea2Si>~szqVQ1UJu|EArN1oSc zR}W-ZZJOD9G2+g?8MAvro$;wvfNIX z5RYQn2%H_>8yw+OSm???zE4rSsvhEEBGT*%xhv&j+(#b4ZVx5qDlOaQmxJAoIx!m9 zUa!Wk7I9tVw3eWYP4=Q3r9hUs`E*^}z z1F}`rsKLkx6S>O%8QQF*Dfvr5-|_qv2+{7|jJG<_PD?AV8Znxex;JU5(daAxX{J`n z;`4Au*Uiy~MnK)J^t!z!5PFcq1Q92+;R>zstWYh$A?HIm-8#|GsCqsvO|A^hVyw#` zcVmSy>x{Hq)+5K?UahP98S-R2w3`53y&biSzva+tD8^IFkdHHjt;6V2whuy?UilW@ znU+?ym|06z_KDi33`s)8Zs-_r;yYo70vd|0yL<2!uD26(R2~&-^2f#3nH#8p?z!&@ z?P)j1(d|Pb(+6PvLdYHvG9)v9$Wmr&9`!1}RlK@||F#rZ)K0y4yYLy>B7!3)4yc9; zSj1j_>=)iJi0HQ&9y+D}OqaSbMq_?UX~>xOp-WURO#5T!;#i+#s8f`12UgDtT|2_f zPN#3!^_HJuRH>}gJkLrn<3LNMZtUjuoKg*94is<&Lxwi)3BT%XVAyJ)({b)w?du~ zFL85>K91$3y^yj*%0zs?714YT?Q1}d+aSJ!_&~p2Bs1P-P{c%c-ds}ROUX3kuJSu8 ztfkRPx?}uzaFt2`Ypc*D=K9-H`I>JdOIf(tPap|+f!N}_&_M+=5qkfmvNd|cW_PKc267ICyABst39$H0P zXGYQ9%DiRhju?wybE)Sk)d5w|16gQM>VAG1`~CMFT6a(?9pEsm(=J%&L73Rsj$Q>? za(U}3X9&-Y`*|Ncc=$?)yodrgXYV8uzziF&#Kii`&j42R2_ML={r9wM{=xN4+I^8q z$wwQ+uN8*ADHAlsHL=~U7WvECRadT5ENhY(IsOLmyjfk@SNGtJG# zP?K(>)tij(H~pGl^j+$%>UIOKmiDzgQUCJ9T44yyj?z>>+lg^PMr*>qUK76;f?!x# znX`A1A24Sa=wKXBi=~o){qYYr{#%#sZyvYZ(C3^MOvxZRCG#EdU^v1@+~yaa@v1UZ zWL>dY`pv9Up}c?0hBHINi>ridt9jSyj+x&gf6c(;&b3b8&g$HPIAva97Xlm9K^Ziw zM}?WQH!~wf9DBQ~0XKZ$>9TG4JMoeG+qVdz>da_#e+l0~R%1q#>m-+hw1PK}L+cm6FlrNmSi0lur1N(?S~aDn%M=IvL^{g|_00g^9=t;0(c&f>MY z-L$ko;PJd%)we;}KK>yfYQO?mlO3MwYOanvGmb1`+u0M}e|dRJk;e?stJ>dtLsI(q zAoOxKbdT~M#XI~>-advA&F*a0)-Ju}1u~10l%=Ir$A#OX8e7*1Bwrv_{PNU4;QzU) z$>67>lx5kTo|z3hN}uT9_4Q5u@6AXjl~n7KQQPrZy)pVhTMvUC|D!0x`2&{qM|1z% z@im`G2Z4TKS^f`}_vQxK&N|t;RSb7-ha4eBigW;@d9WJ5bIuO>co{IL=m(d7w0e6^ zIF^FVNODj_j29x153@0h#52G#EXllJDiDXax3@S^fkiAloeE9rsi<3BZ8I%eg{x-@gcR+| z1|-vuY%QXd8E_IDP9n+6Gxf@&8&h5(rN@Vw@_3CydOgV@>#;a%?I*s*$ z`FUeSn(cZFeIxV|w^(%Q>OOXs`{ih=vX*|QgmBn?*7l>+` zhsyw~7&_BK|7Dt$qGg8JyH4E2Pf=4|vDI>-W5KRxu0J`;7-R+Jzw97Sj5l5$o*&O! zLBKM@`^N;>_9iGt?@s!+9@VWD`4Ky7(HQs;U`h6h>A{>>XNHDGYLNS}%&d5PsDpU_ z$a#InVOQw+(euL)uNeEPpk8-58*86E3cDU*6F1pF;fzpCUw`^t4bnWw>{{9SJB0U- zMwyQnYv%w<~A0KMWGgtt*)!U1s|A;$!;UKX__F>_rZx`5gE7exFWq557;E z|A+&Zr8$XZ_oLj;=kcToYrT8w_XC&A5By8r5=G*8pSH}%rSFsZ%KwwhzWUo>{K+iP zdZQngGpD}aANm_C7f2?`k zC}7P!VUj{OM4njPueREi6ClGWB}-G<9%&Z9QxowH5-;3iYL$^t%yqvnz3HmMZj((h zRKC-DGHL?uRa7Vh+m*czrP6ZM zG5W3wwSTBW?@J6~vG&9CZj5=qoUFNr(3s#$=|?vIP_Jb_)T`X<1?o@dCs6}!_H}=3 z=lnyl{xi1g2^vj%i((*_lEW*FN&nF4sy}r4+%c<`6lHJ9gqmm9Fy&3de<)M_AIdal z+DCr3iAS5-#iD-OnL)MuIFNlrZG*7=|{!|P}{S`F}JFbHTEjQHLIMwckRau z;j2RcP%A9BQzlBQtyV+F^^@7;QRy@>qc#1Wu}C74T!6Dq<^k4KSzS7_+1*jsPS9`x zUe?pCKD+f{p?C%VvOh`zjhrUKI{z21`F<%p)Cj67u>MBILvlkh?<^&1S}dKxT1|KJ zgAS!Ja`Hh64P9<*Q*7s^_b-t_QH_^Vd1SIJPfk|d$fqO0k!ZTq+apk3$V9IjQ~ce7 zw3_&ne2E|Ph^5R;<)UDd}4*wO4eiy zGw$>dr57OmcWqz|>P3*1u<-h@v8)-CiIpqd*EX^c<$|8?);u-a@$*yz{6TgYtz(q1 z-A|XwxvsBBW9A;~eDJ1z_WeR5zchuf*oqF1>Khk-`YPw~VaMsN!e_i6v)n0^O~PR4 zyh-pltf76vR}b6FAiMEan@cu&U=+w=48zx%MGRoGx|gvtO(ud%cS(WyD}R z1)Y{Z7;-JNxW(#jQ6NPh5TbM7+u*A~6EiP=&b&-jE}^~_G{Gx(eogK|G~Sv{ za4XXiQBZ$N|vQ*Fohitg4=b_Q%TBzI}Iw;#ZZMNa0g0enPo0RU?>jIN{ z1o}qSliWjgWkayF+xpJz>KJe~n9`uY-`W`qQzk^`DcxnZ?-JuBZPMkzEsU`2eODk+ zkZba=O?jhEr*C9?!1Df!tzi;#2SJm4V|NEZ$Le3`%3*o~YUS~*1#r9_LwmmgWMF)L zGA%b8LrrI9x6o};ua2DBtmyEwG7?OJJ^n;;#6+N+SFu)BnB@gcpiWC6+io4iDX3zi zQ1o2=E!-)$7Ht1m=ebGzYIlL#=#ZEejy;Q|K^7$Z*n#UC*(d|kH?mDc(1py?wDj6? z@Gb^fU1U47eJHJWLn~OE;cg_Kcvdp43A@!OPo-M-*7sEtdOo}}n?tCFBCd|#zIku~ ztp|Oe{9?k=ORUd))Co5@CK3SpL@eZ8($Dk-4K?55E^i94=aOQ=njuex@4t?6LimePGr2x1RgIl@rgqSpR(P^T($gY`) zQM^wo>4n-v`MNg-?uD(3`@|~y*JyvO@Zx1Rm{(ZC8qC9Y6W|e_nk#ar*c-HD--vOr zy%^EbAL3bvD++fL;jR!P&RkHL2yt?%&vfV+T^XZ!#226KkR;jw1`Fd0pi4vWPa-ZM zqLG>~r>({{n@`4YWfuPWoG4(NQu)E6e!qyLFJ7%W8cYA{?A)xY^DMvYS!={(Ksu#x z>g=RZ@NR!Z3ff71zqtin?jNn@J~@TS1qpv>t9r7c+sWj~RXH%Aw4u<(+`hz%E8%?P zSkXDEIHW!Fg$!182L_uTF+w!GHZvDxz!me~6+D;>Si1(&v50B`mJ zNp4Pqko=i~0-&Kc8#~8BS29@IiZa`nW%~FN?I`jMQQaZG{Dr!nqMk-`w2BYASshl9 z+Xy7!^^XCzA9;hrY3|r}^_lA(HFqKNx{mnnn29tSmv3M4HHqiPD~D_)cyaY(w86QFYIINC2cuPlt6mL`;7E+v#Ggo20=2ibHfKB^VO*!?Lq?Xe0f=atSqE~G+EDSwi zp;1a+y~0gz>!u*SNB&`a4(@i!_GivYYN z(#!z0)VhhZhE@bdTY^~K>;#n*XVcww&dPu^?sD!Uh37F}}T>d5ck{mgB5nv`6_%ZJ8)X zR~KNmJUq}9Z{<~!h%F`-DPdzsDZV{}gVx2It&`&lVjzNfLdx1tN;MxXQ;K@_UAFmh&1IG5=cb z%HF1$R2mO}uF0L;Z;6}cQ`5LpbU!6Lrl~NZIZ>Zxg%ICc+&9K}jw)@PYi8lx;!_3Vwcdrd;}amW_V4$EmO z$l}tLu)2SLqHH`WiGS1*`L$jwug;toH180H)G>sz-qsJN9#jCh?Vt<Bylk>?`Re!7*pF{9Eqhwb7c%EY-{TPvjd{ITWG#KT77s>8pQ)n8{ zRlD{awqKbIjo6s_Y25xW0*J2m^I+mxsj?naCNDQRDmrDv0_EiwyY*T+7gNx%6`05* zF0)?_6HgamA}D)N4bPIHwrid=<7bg{njX({&W}Yhp$gn!Hv7IQDihBYjbPSANZgZ; zfDvWD6NwUu+T|Ftg&x>DCHLZN%r)7#?Spi>))UXud^-NvYN#a?W(@*LT z|%Tln!M zQ?cY-HQO%>KoH|1z!W9ePs$=?Z%0nOW4q97$jq~7DJk@gtUiJ5QuvJ7tQC~ScD6!V z(ap&fx24TGU3?*hV~po6E^oIT-*VbW{)#_-=;}Q6CX{<~s3qNWTW?vq=uqby+3c0O zK`kxc$esxkubMd%WQEFH(?5Sf$&M#9gNNsG)LXC)aP~A2YrDxyuJ1{o>My6b^ zX1IB&_ejAE4oCO1ZqehdAGGo{Q_mW8SKggNIhrn%TEG5Ojt7oc=eMKZN`$4hOh~KP zqVi!@+wq@fBA>&!#wyUxg z$fA7?3>BbfSiR?7ysh2Bh$}Gmz-xiUK6Z$#z|2vCd)q#I6$+6MMi;Ihe{SGuD znx7@7@Lh-H8qE1Mi`JDv4*^_tbUL&&bGEBT?sTnt zJDi57RQvEau3Oj#7M);BCV(dHzy-~_ZEtGtW^X()_dQdGEhdOtTEtbnVMJw@6E#W8 zTXVM(dxvq%dDKv_$dE`sA%MUt;AoQu5ik119bcwdAy_ng@_|ixTqcIWbd2k&-k77V zp|qlF+?c678WU|ht6L6<1FVCO(BUi3n6BE40lmlQ&5UG9qO0Yb2DXMB&Rm}$cX*UB zTg)4HT_n$Hu0VhSH$~o5_2lE3j9=SeNO(%W5LK?d>GD@n;9$HRDG4PQSke2k+Q95x zq#|M5xKPB^a;tKoP9hRA7hcn5{z`-5!3+`08h>_OZk)F0@=4`oY0L-B%(~#rO^Ts! zWOt27n~7~-x!*Tkd^!vLIVkz%H!^#&D^C9+j{3i1BY{}o(R)N2*|0zgMq2mL^=(;y zQ>JU`E)l`6du+@P1eRE}wxW(mN+u(?!(dwaM4F4+7mU~pr*1-kbk&J0 z@IoGCF7{4Okt@*g!6LNIG@MV)%fskEOwZ`Ym;RnUf5|UPz zp-CAZ6IQm({NiT-wc(lfxv!T{ya`rH5u+X54#eAjNzndE`0Bv3R4>-XA+sMb*Q0hK zt&nsbJJjNM8w*9`r-EsLI8aBljv)rPK`kVVvFji--K~{0LqJDRgaB&q+WplKr^sT~ zC?~oTrgz&w5A4i?4)y_6XM0u!$%c-JXHXx7Z0>FwiO`U3KI`Kuph%J*iDZM9Ao zX1n+ze`i@|{k7|5E3++Tdl8DVva;ebn~?1oSespPae<<7W$IeCWk#b+9K#cr7u(k7 z_{`Bcqtx$DmyiE?3jJ=bXRc%B7p9ALhD|5f#4xevS5GP0^e=x7xNg4Vw*QCxtlFbc zp#XA+6hyDO3(7t!kt029UXguMTb~hG{b?1Jm#W68)1n1MZm-a2J!N_oB3c|NZ)Z5r zK}Fph=0(<1!ajQMp3Bljdo$Z^XXdE}cchmR_%Uc2)2Ftvr=@y@F`};54_qj}2G)_f ztGUAvczjajCU*ij%bhQJ)3Eu&z~&|ImyMt_vRQy;O=pLQvF{?w!y+zjfFh{X-L_l_ zXD@#k*HDsiP2ldm?BWg3IrQUfe3-UuYYi{KQM-8%aMr8&i^s(}pvEd;DeDD6#mgL0 z#9xd3ga~kPU=t1Z?;(>NIJfy+{I*oVS-z zwNiKyyci56s5ZG%|Ef^15?)+>bW>}zKu=$L!q>7DWr(&6j|_j`Nt~=jqYshyOFm0% zJ6qp`B2aq*8E#SRt z2RWZtr*NlQx{rC_Mkurl&NB+GCC}*8ttkGwkW@t8n|xZ*J@R|2s3tip)>tc7x5h+N zV~9)j-JZcsIm(-6W=9dt>Lfv?^XasZ#i+0HhB7p^%-vhPclr?lmz7e?X9NF6CcP(2 zMqw|__;`z^wNg(gtql(piUOaARkm7L`**Q5rWlP59N`9wLg)M<)^>?qAcI23BGWHI zqXEAe4PEPcyM}#I5bl;&-8c9a9Y4lP4WJHCXWag=i{>v2i(ILOTvk^7*wgVUf3seKxEnwo zPes%39bP6s$sd@K4%!|luQ19lq#IRLX9Ab)zfjb?!?T#z3Sb=AXQ%&t>(&z;wf6gF zq*Fr1@0k`bvr_#+Y9=1i@_6s#~A`wBh8;>;25I zPx!Xmv(f=i6I;x~`@eoI5VW}ajSSIjY&p5O3EXj#94X^OJV1FA zMqUhlBow%+GSwPx=z!Jg?^w@?8orZn-z8-)NJGK1D9jL6PBvj-^%0u&{B)UtBhIaw z6g!YfD}Y+>FS6vhbdjqPbYOFMeOrwt=$V!g7>Sv+cI<6I@$B; z&{0}WL@|s)p>R&-{V(&b{8L z>E6CIvud}=)m(*53b}A;76YJ_p^p$78SnzT`>%0JxI*aG4m$r+e8N(qM%nhDr;AJR z3YIu~xe`S!>4Y3DTX%etA_QdcBxqo}0Jk-ZC%+ySdz4JM8#$C*I3w$fUS>xztbsd! zLAkZoW}I}JEhLBgbX2_La|mioKIhDqwpDk}tuwNy1neg$U&$IWEAJCHz>i%9zd{-8 zMs>l5o9EbmHJ4Z5)DotqrWT?Pk1#azXvQPY9C8q@`Xb;?6#uT>O&MA<7)F5#*`i;c zF#~!hunpnJ;L*6v74oo3v^77o5sU{8)=p)pqyQ_IT%Ez$K!S|JP=r06DcO&)v<%Y;|eCD&m zS}CnJ+Fj1E3BwXRLyzK3RB$|u)w>dt+PEIq3r>|NMw6ADB$3u*KkByUrZE1)QE}S+ z4tDM8_;*L0Fq{NSD zZ8LnfZQbgtWeRvIy0GKt@z;Neyy+w2*R0Jr6a1-e@C+EfDat4rQCQAAYKUV8#yv2B zB&1w7C1<1l*+(C&rcp@kaA!h?v@@Sqd*v|&S1=DD=3=k%8`*L1x(f^*0$btAr0-X2 zDguJuwC=?oy>tLpPpVQXCmoCJ5K1v7@EU#|-4b1AY-9_bEr9s`DDS z9GuA%43d88yW$Maq8puXG|Xu}^csy_zA(84nKurs*LW5kwbS>KDW`L`;s7&8u5Mha zXQ~GZjRBdSxG|&vXw@`%QG>^}JIOM4Bh_Rzxq|E`nXZYHi--oWeAPB2#J_yBnrj~u zX#1jM;6X=COOnA|ZQH$D{j(7poxwjT)27ma_`IsGVLi+GonePv%;EI_pz#Rf3&u1< zl$CYv+DCk7 zkLMIfq^~FLL7yjg^l8OBG6WIL$iS{w5HmgJs8r;;<%Sz*{47LeO(84elcwC#oZ4N- zeMk{hC1rYU>2zVu_B%ps*w(VBc$vLJ(~d+pQP zh3`Mdgn%bV&z43*a@}B*@x@nxA6eA;H;%Bibo7W)`qTDSfxf9%n*^v9s zForIfJoW_#PB8m84JeHl8e~|$SCSLr#53`E5 z&&VH(-f1A1+1=jU(R8ltj0bf!0z6p5lYDsCROi#09xRIQh|e`u4X87~5h!l?=GCOU z*`;eUL|RZV)#K09znC2&x!>CL=CduZ_PYdi0+t41cHx)G-A^>k8&5n1OKUWPJAAm< zD(htVu8cYgo+#9w#$IY|h|!;CnFJ`2(kW#ANkuT(>`bccm{mD+V@orF>@YRrQmaTd zJ1D_VowOtJa41t-uG9MD`!I(7dysV%)8U@On5|^QSlK6w<+z-Vyf${rLUd~BnlN8{ z$~@kn8;Ts|n4n^NXy{tyj^FRCw+eJ!ZOvkg(xe)`f?mIBdD-IBOt(^)EUBvl>Y31M z-N)0!|B{ckNkPNQnix{t%?RS&vEJ#_)M&$JnBlfJi|{@mzrE4|m}s9GpO>|1`sG4k zW-ZsH?#a_QH&$J7zqd&KW1@^UmfgiQACdb=(HwY|yd9)k<-0O2({(JDGcM!4DTew! zT4sCS$ZmM_WxlV%Ehl)2nBs!2@7IK4)0@T{f=`W`hBW4UExx}FQi_>IWB31lV3z+; z7u>)1wDo!L{_WsTg`HB_B7Hgo&+?WhUR1ZYEXgm4W+-=4NSiRu+=5!ccC5?-u>O^I zj<0Y>Fbqo=vgh?vJ7{p2303ELlI=Lzkdu-jktYhTK+Wu9+u;)E)I{>n=F}8vhE}lI z9Z4?k9J73slSV~F9^rPJGGuu|ib^k*1$Wcrdcjm{-a!g>pMaM8FZQ*_zseK zOl18V2&LG$;l894h5rm|g<;$0gVf`4*5cmRYhpWS8FQ;YXFsdcarv^lC-X_8jD30X z_bRB&t7%{SIW$Ip1o!8xPrc;#Wnl@Gb&fIOx10|Av&x&bG>9&1P}K4J1bVgjjV!_> zRPj}B8pmLl!S_1GtU*>%w^~TuN{w^76`xZ7&vat`iH;$O&d7H<;r|*7iNe3c;?poY z^pP;^w)E>k$>8^KBM}Jw3)$cLBlyqUS|C_Ut>9fR8ZH!!L!5JJC>o1je2yACb~N7f z>dPjH3RfSB+q1bpZz~AS&6f-iOopQbZnfQ564r4QD&{gbk7~Qe+PEwZ=t&Z}|Hd7s z$Rhi&Vh#U`|7|rp44+MHUIc!?-dQ;;{myLbm!@tlaqqI`ewjNb#*?25>39>h=X~TB zXX2~o#;K805+*f2gsk=U^6*Y(^08QcXy@g0I^9X~e zT(kdb^^TeJBdPASk;vVTiliTfNey)Wr@{Y>(*NUAV@cxSnp6iUAwG!fckp%jKx+%g zXHsSW7VroQo&3)z8(|ICq|)SAG$4~S>D~V4b^ibGI{zHX(&ur}rL~C?%D>(Guo~UH z{vS%Y89k1;)QR^jrtJ5d)%4DeT)p3aII>fUT7pCj$jf&~|4v0EcE9~UMDc&Fl7cpG zqcij#xmOm_OY+e~O!uPan*97Kp4{dEp4yu}EtkTj$+#+qclUR3H=-W6hN#jV#h7|j zB=IbMs;RV2VnG#62VYZ3t$vl(i`vFs&xTdfntZHm(c->FQ7zFE zdyco$f^5ydOH@dBd|QCpQ6iPPk28ErsjnQ6hWCKPl6<_7OEr9@oYR)~n)pV|2=(`2 z^>(t{u$-h$JzX&RDX;fKqs{|-ex@M1RZdQ-CL?Dvy?%kGy`?(XSUM{Fz37eD&VzX% zJ}msatKaN`@A&5^OJkX94~Rt93US*x_Y#?|I6$EqQ4jOr0Uo)_`}6fHX6-^fw3TL~ zDvwrdu`bTriegREq;c*dZ6-x)wwQ<{kEc#&t?njlo+)@Xsd`MduJ!s#cU&m3fmdbUya&hA~5-&7XXc*;N9L|R^ zmH2xBIWVqT(|=HrT*A$Fv4LcEMC7;%Hq$VLN{*rS3K}kI$mubJcdttK%|T;b@sYVLZbg{l06UpbZ#ix zs6_3PDp{6{~G#hpDWLBAV1Tq2Y<2g zjVw<5FA6{-%9bqq2d|kLb2H5LMV$ZSMv%QQbe2$Y=l7`ZIDHxaf{l;WZTe@PrCLXF zE)oeOp9>eI?Ozpt{rdCzzib}yUj?4uK|1|k{Lb!zb4;L1XWG;?jU8}_qO+4-R;*m# zH18jzNl;NGP{=W~e3@qil9PrV0Xsv0rw!xp5}9yhiDv1YTG)A>?_mG-=cgtdxn%US zo$+_+iub5?F29jc4n1>!6LEALh?68Ed42Y&uEuNVKiwZ(gjk`PhJ0a$%CuA^8WD78 zc2Yiv`Q8>dwm6_isy@sqP4De=G2~@i*(V}F((w*$!OSbSbcCYbalfq_r!dcI9+fZ zk465F;x;yUhPOOc?BIS%gkmeVzc(L#@v_S?lP2T_vZYX^td-7>R?1{hlvU8F3D|4Q zhH&*~Zh%MFOinmCCc3{T`Aq|16``Pq2t>pBCI47t>95O+#9%us?1$PZ44Vk#PRWdG zTuzi4!OhMXNALBB8`@am2Uy$){0LJZPR>UgR!RbO+*0tm^BMfDxoQ)sf$$iw9_n8T z`!5I!MFCW5CKj?soR8y=enX*+=zk@^^lmxfP>R zPaU%r1e`l~308@E@nV1isO2nh=|RgPyGOwJfj|l=rN9x%yV#Ef!t0#DM~G(nq_L{% zpzdD=`W=sV=R6Cw^Cq5Mcb4;Ta6xHu*rmAuF|ieHOY!!S5ux6)Ic z5%K?nRNMFd0I-H7U|m}GXIRFs2`+QrJYm6;Vhs{WQ}NqA7Y}I<`>@RZ+ETbQ$P!Phwc1kAc5REXWT~0ptyd$?aPg zpu-$eO=wC-1&`8HfizLr`s(YtxIUipE*js+4hg0$ADq(ptE@2r;ruLYVPUnF?hB5% zo2dcjEAt99GXQXHUTvpKvzol(l&XuQmGzdk)N`*+zs(ykeL-TSWi~o5E6H&9fXCe5 zl~?x>sLP4HDCPl3;@)G8Uq9JgwkO?^xLS}qlan92r&6LS(kB5qVLg~!;=vwh`_IE` zCsHEFe*VAZ?Qtc$p)`o7O%V}$qa(lSZ02K=xBS?E!GP)`Y2Sf;KGVQU zORuGf8VYLVD;Szn&-CNGF5%ZhR;ml#aR9l7g)1|S{(d;db*JHcPMS7YR;?h}6 z7kgum*zCQ7dn+l+l_zD2XDMaJWr^HAVxeWmkvlRUE62bUG9k*wCnd0dEf^W6o{h{4Rr=wo`?0~bA|rX==9#oQR{y}ga54Q;R3&ps4-nA{S|hppep{0}=7f7HbMAgcJ&yo3oh zqy0bVJ@buu1AS85aR12l1oNP3Kg)l69Q{LiiGP9A|2rUm{58_7T2YrL8woK#-U0XH z%OsJQ5FP`tMXR2QmvF3Ts08VB2~*qr8g?wk9ii55LMu%DjSMBtm@5_|KZ#i6o)RoA zyT87KHbnc&mIm-R7pEn^>TW?FcW>eHPS-bRr{bdii59@RNp(IlQ_^^CKwn<{#uX zmj2rI{aCxpP#@(5F_#9(8I9O-3uyJ$Q6prsJI7$W|`r`D{*p ztFH;15$v1VeAXJ#d^Owuomr&+yMGY)LFw-Waj*NDqrN<6Ic+?E&dm+1F8(qUJ#e8{0iZ*sc+{QBTka(<(}I_Q~F z)ZYuFh$Zf8svP|n{NQu)H}!qrikI~i^O=jFd`Ff#c8S8I=+j%tPZ5v+PF(ff z`k7Iwmef1r=H?TU*jkEME!bj_q@&L1t)wyJO=dU5{7ojn z87d#f2v((>0Jbyc{1LCxIXi(z<|}aZYopPR^wW5=fqGf21M})S>K9P|E?Wp+H z&c)mVpa+rKmLLoUYl%f^AC6071BJGWcdO-qLIgBHZ8;-i*?%qk;r;Siro@U=*_%mN zeS=H^3?wh}Yt(~czQnj$^2no`UQf07)#8+y5QVy!G)#LEF%(pB} zAJndc?xrar`I+-8t52B>PNgloejkK@Up9GoREBRIh?GC+`+Q>jS@eM}GE2)JGWUIL+JI6R!jtosx-K`o--ryo}M!_B5oC(`$#)g>EPIW_{gIC6$H#*zp(*B ztEAYXbX7kWD965x9^NrU?wb$ zIYt^AbVZ`5xw$Tl7h1W$UQ!nx{x9y{1FETQZ5L)+w*?jHRi#Ro5|HXv2)zhN2ql2h zdk3kqEg%E~5~L(FX(1#KAP{v{{-hp3P@`5vat_mw(T{j>#Z+41;>1l{b~M?OWSNIv+rKN2&ZnNMY$B)p zA`kVxZ{Fi`v81=97*$ViQRRZA&z_5-?^n%SqFwp5sEo4#Y6hvYujd~e)M|!!i6eUb zHs`DujDn05K3rjG^4V|fa;q>C+a*agnHgZ`tj7kO<|IeI?brvG000B8%zYs46ekC? zbE!_SAi9>gW^F4uIG-i@q61ffsX&o2c=EtF-ByX_s4LOJZO1PO6D}~M*Urw{H;BM3 za@#HX$At>+@Td5g1!zyPk}(%cjOP)9Z>mIN*G=PNxq%5Lle1J%>HLHPdqH7D;ehF+ znZD86k}RgcC(df$665ioRF*m?sidF-kQUzhCPrGS)r@3o*IVsmNBaB7y(mtF69-%>2TdOn>N<2fFGBFWCKXQr z`Ci=o3ky3vP*i|UzR-T_wLTRxW0NhJxc-mg?6`ah&NWGV4IR~Xsb$iB|Qg0S6T;% z@o~gikGoz8)(O|X5)Cns0B>7OV3RGJqNXS5?lFkewTcQ#2(fd>pfFj<&+*TNUvTmX z+0~s;f$}PnI$td5;MP6NRtU}(SA3l)Es%2*DUT$C=Lm!Yt>(UF#kIoo(7wsyS3YUm z$gTs1^g|I*0hoN-%TWTGa)SgMAo%H*&o@1lzIH*@oE!XD2zNAnGV3Pz&?wH7Sk)6C zc#9j`{<-jSuk)4HEtp7LQnG;r)pvJZ@>HnH(!sL3#G8-%?{PJPNjS>*uIkBX1cHe= z;O_x$((IMzpKJcAWNF`2<s(?V#8yPn6C8L-pOG75 zQcCGAi1(TpQrY}sxe$@w{rTIY6nTFEsk`;%vF1m_&Cf81+!{-krBHe@#Ro=an46L1 z7Le%JFFt$#prLt3o!fqS<`5{OaCH)v?}RTL<`@=TJ@G<~PmPQf24({C(763K{S0Ub z>5+E4dHApj$;{FxLEXrseLa9b2v%SvAhhr;uHdTZo37b~&k`OUR=YX__kOL9%0V}0 zovM=X6i`dr@2O#w2#>k(d-1oi$4yDki5Ch1gFf+JcVQn<90f6E;@9UQ+y)j?bTOS~ zyL}u9r><;@N8+bzDvaere~jRJZ!`!-@Fom0c@%{Wi=~c}C_p2QzzX=1=naIj78pJFInNgRnUn zn83CM56>p{F^al7jMDk)!)kl*7hnd91guKEVnSpU7@SD23$-hZt)>)&Ga?M+I9dYb zn57q`-X|rofXt1*(A~(@8DI>>iD!nO520bVTL@^u#^Hcvs`Z+#xy1U^NW!`xas1gG z$`RwZ*p(`aW#eObczl0nAq5z?vX4e#cER%xz7Ak6vj#pV8>lN8@-5Vv+2|tAT4&@@ zhXr*Z@%OMdL**0t*+DfdCeG{3<4UzVkZa~l!+OJDA}PiRfW_Aq%h7ehQ>r7J&z)d;;BC2MBa3JS3`4 zcUMPtF>b_M8@;``LmOX8`cRfB##lud^s+CX&qsW&u9)T z*c)6nk<^P01#3jdEPAL#9;qe_> zC8QEz&9w?>qfw+$j5n}zuBQ|vlq)-7G+*bo2}XV@p{PeV=GSOz zycM>K#4h6iFeK4Y&J2n7($j+|Qedo!`14m!k(mgU$K-%013C$Z{v*IHY4 z?uU*`$*SA98iB2{R0mfEW97|otTVxf1xZ4fI4&FMZ~I#259$mE0?^4-Z#yK;CEoeU z4o6VRs^|JCJNjg*OqmSywwg73!W7|9}xX@Cvv?RA} zK1H|rS)uf4$139;{l}y!hlQN{=K?YscKfd8w(~Nqt8x=;k_Ra|9C9@vDLMr!z6D8t z(x>^Q7J{f0ofHkts=_T>7g(mxQ+}oH9YKFw1RUR<+$C(`7HOH-$_4;Xfvz$Ob)Ce8s}muO-5*{yyY$dZjM<1d17#%6 z^I>vIOQYl0u~z&-8oc5REJx*4XtmO&-(M?c!0SpJYiRa!3Q~1rEZosR2z%q zK~n)ppc2dHDV+vQC+(MMBMS?f5;_&Ohdy_Qt97^rv0q9-VX6unbSk@CWi*o_s%>AG zLV|8ddjtIoOCfz;k)rYaW-BX0VXL~AyJ0EOv9jFUIQLZ1}`If{^1TK(citMTg9M_Me-g_P@<0ipZ)XXx_d^tr#&6Y+l zDT1Zyt2p??4(I4NGn5uuapP^QHi1+pL#d3Ce4lh)SFpHU?XSDuI($J?rhI5%h{%xV z!dTk-Y`YPk_-nJ}%Zcrs1f%1-ODBuL@D6P=aGrtT%57nDow@8ZKY~^(RdbIP@)pVn zbV)?Gd^^q9I;Pch_rl?4L8j9I^fr(| z;FGtNLi629k^VZrpZfjpUyJ|J7d zk$QRKYl(3*hp#lAHqhQQ&PC^*83s*Z2V^DXm|vjilTo@5>QZL_A%dqbec~MpYGVU{ z4%4$FgWW$We&w*5v2!TvNQzub*8X&m_REY&LGWuGwmLfh_3)B&ZF};L^>bsJE3!2~ zDLd2Ku1|K^r=HxC@X*gDPsK1>qQBHa%#n@U&CKnPD8{k8D7Ipgw>UJe8Ej{%=A0;F zs|C}Kz^1hITdY3zanTsbM|I!^=TxWL!|gY`2SPhY(}V8*dveSF$YUmr^`j8!(__E> z36IcUTl3|Q_zG8roi-T7^9fjFz#MFvH@c_y5d6+1)H^NtM3-=q71UPQM>Q+w9}YFB zT@>+r@mw%U&Hl>tq<)lC18O+5A{-FXlfIb{#}L58;pA@y`V; z2I8vu2)`5`_XfHj$W$L9Ho5*x&<&$smVT1eyil_Vf!dJX%iQ}j$4?WBnC~=k&h^-- zt$&J38BSfnttC`Y8}C0V_Gjb$v+d~rXu7{CTib%zg&nj4dDh$F2@X#*{m6dfFFF0$ zbl+MUl;hL`74@8ZcOib-u+!E@snY*=O!_l@R>~=!wA#1)7<_A^_YEQK2({b~sHEmk zvZrT2fMImz^dy(4!TW=6nsWm$zcDPm2OG0@VtqAznVbiM>l8$ z`K^SK(hhi{s;iq|*>J7mLt#-I?ML*Oi+c3RXkbM{+^7zsGfno({7HUQAC?CZD^c9q z?93KHbswY=@v5aBdt*?9i}8KhrH_@h^hY>Ks7;Ve*D?oaHi2K8Nvd**WN_p-x}Nyx zm#swd`=6bhLk_!uhoLezz=onpP+AFVZxOIYQLQb)km+a`x0s(AfP6;*P}J9xr6AIj zqs*lWk2;QA#N+Tb)m8ePVOGV?!kD5Jn>gM^lz^uvc|vpEVAz%Gh7n8IF_u=}{%X;n5%1dnG*RIEIGr}dd8Grwo&%gXP z^JBN{mjA|s-mEvj?$?LDT8+zQu&i&|?f5`LBV8B&t_8wo|DODDWra=q6{9)yWqxG8 zdS1afN2FN5HnT-r1Ra&=5?5XwYeT$3R(|i-WLBO@qc;i5_NpNPfFN14H z`<-St@=DcRXGI}LaemCo7)N>NVP*Q`Z}%J;zhd*tVv}|vZ zQ&V=$WA*Ir8?Ufy9wUT`&P{y-OYok&KPjd8X?}1N(l&O-7f#`f?z(RWhiY`PIV_Lu zc~!Cux;ZZij^3G1zryEbvXrcsC^YH@kgxyN8R<0~xJ%H`i~}1}w>TmluWY^WAk|&A zgfC|#n3+*r56Vp;sAU`?Qqk?nt?VrVdkxva?1r`3n!&*2R!Adq9-@9J)=XWmO@+gg z03&FOCMTvslcq)n)JH%X41=XfxUu+HvTo^b=oN|$$~GV6-^qkveY7fy`(%?{hF@|k zP=lx_65@&cTBx9TSh)}?A~iJR1^~6>%$j&jGxxGoEAoS;IGyK(UIpw@)7HdmdFAthSVdv7Qe3 za?iY5$KuN#j%TTdRy)+2buGThEw#s)Gh8?pzT3e#A?<`k?QhGBMq5qZm~n9{Eo_$A zU^C_OYLMc}M=IHL7;q$SgSS{IV7HAfL^e;_{zn0S8?kv3*lL;X2sm3kt*Q{qWM%LQfpY?;Hs6_PRxrA`X!J;E_vum zcG0*8MJa*FtN=hq>2FMVjfxpo-zAiN`{rcX5SH&V5}n0#|G|*C(DJCZ;yNrrV+=>- z%H=X4Y?C=6=8jh|%8}3&RC=xVJ#Z1t|G|ANB6VNu;;YyTqyOK1E&RtkFY5Ld{v(!i zt^SldA^iiA$K@X-_N&rGt>llEk8Cb8I+rc zzPS2l1f4;U@9_S^Lk8Dj%Ndm=L(mI**2)(Ie~Do351E-936Tt625u@h4R-2Ka(c9V~1 zPME=ZPWWHWU_USZ|F9oazg$;`1vGB|oX_6T&^%(ZZ>|V$2zPWS3hss<2UOg@|6mco zfq+1QCh|V1T63vWoog~!htQ3A5?GsQOO2Gr;z`2qdC`3?&V^js9dYE4^X9ydf`QS+ zUpb?Zi-;RDb`YM6Og60-=k8+o9mDN)l|dV?NWL?BlXN7kw^TiHrv8E>6lz?>G>j zT!31Mm}gc)TFPy*YhbR$S|rEoa_rnBMss|}w?7BEBiLU2khR^6F7EJG;@0^I;iLiHSlF_tGj8Hb zhzi}BSMVeR0$Bl>PTZN2%PgKfW&?dZgqJoyS*bcSqi)IM+AxAX;|lu%Rv>3uso+%GC&xm%V8>w2(`7A1=P&K67hkn6N%z}zpgG(un z$qwU%&@UsSn{8i9o1iHMXGI}Er3BLm+vwZ7+3_C;`fA)>n?U_Jt;bX^jJa3MiWva_ zpdysb4@?vs&Eui#NYm55z9}KXt{YL52EUGTQQ$M*B@a&Umt~PT`BaH@kQl&ZntRs) zs~bxNOl;)ov{$uBx?_G`u1(yB+V(|IEeK$RbAwf01w4a59ybpY$e|&nHFmr}KsN}t z9p_ClB`l~saGjZ1x+y?Y>KZ8rwMY7&}zhx59^Ut8z;S;A)TV&ev6d zS?{Z^yFow}blSj+JDh5#@Zp;;Hyqlm_~Ngp4vJudtGYY9&3(N1ahUn;`7B+}Q2Q@C zc7>xN3H5BV)n#$TX*c{5*7q%<+n~DoRN_tve75uQ$gZE;RNXx4H20p1Q zpNg1e3!%Y_KbWk=e|oeXuM45H=t$`XPY>`^5KP@PxI#@XW`-@wly+w|SGrMsK#t0F{rsc|v2ZwAd02 zVc9c+NT@DA1=8MT-;SVkXyA^eW)+5Bm-VgVmZ&MKEcI8t@Yj^I;Gdf?p6yDA3E}HzQEt+ zZyi+dcKY(J)=+hnT}jfWvNHWFXJ>L{gwi?ivcR<**CWPHeiMSXHvmJEv89L@lgB9I z;Z*@jpBPd7ev;khE9@38#Yk?=uR5MWk-@|Ios|=~Xc6Y^IK)t(+*n=*iZ3HY$-l|p zZ&f`oD@1x=ngH=6jRq}cV}p`57brjgy;B|gPN+yPKIn<#3G4oy*UT{lmU=epOB_ZC zK!+wqPqR$I5X2N6A6baPrbN7k@;r@`I2>t2)%zqmBAbrq~niJ!$(+QyAsq&>xhXQDFotO$5Tj^W-F-zmaRG2Cil?@v> z`wB^zonA$vINEX#<4l+XcA}sr*bN_Lo7_fI)w)Lx(kf!73o~3s;>#~4lT=2={Fk!| zwNmXe#oWBngQ|MIvNED=zF#@4!#r#;gPmhhYs3PTiFs8F22ok1J5f!cKY;tHx|Vn8 z590T9b{r3uCVF1e>)vf#e_o_QV7fwEF0^u}U@n5>cY$j~j$T&+wc+#ei3X|YJ-sB0 zJ$RA8FRvVBs>7&g6~FLA6E+e%l@i~_0pE@r!UVqA z{EMgztM4Ja++HJ<9gSizJNBH7~4`+~Zo@-n|~^f$LXeD>ij!v1TiaG|YsL8@3q& zzDXmyM<&Hi^uyBB)FX}1^g^Rn5$$~MV#Ge2LicrI({ zsni!WU#)zmQ$~`NKd4_>*H&X&Kf8I;RI8tfy}?wkbkO1>uI|yW;Tjb1j4j4h4OecS zf+`27-0s(9x?K-?q!a4c7~elQQ(ZR+b?_pQgfG9*yhNNvR@QJUi0owwzM8%xBioXs ztu<*#G3R6OTlML6zf#AJ2aJmrRVlKiMFP&W)CV+KO)`}F39uJmv4 zHYdfXGaaP0?=O&__%5UyNNKGA!{CDp9UGzBV9_EjK);w|jVDP=lJvRA!X}&01X3ND zdmc{|hP2~1yz z`+5w^>=7xJkL;5W40W%gS}32S_Sj1Hw@J#YXT|!a#UL1~;3+t-rTHnDAw|21t|VoA96HT7<=3sy#)GmIe4F%h1~QzZ*l#eXkBch z`h0o+`A5DpJlo^Te;0Ma6T;h1!TD_XWz0U}ueT;lYs~Oa zGyNB({1-*}Po+?6^)JfuGlTym>fgwl+B*Mi2ZMF<_BqQ1KN^}-y?^T3=tBIC8!dCF zV08p@#08Cmi!Ce%7ypyj!{evMt>!0y>`d@agyBBO{l^VGQxx1W@)*SY)lC0|3kRFmxNnQG%C*@VI%wodp@hNX z_D!&_uSSZrq}+CKH$)G-7lBoM9MmgQ0+aR(sI+G5%J=UVyI6+wBXJ}Ad}BGeU{PrI z#qQ!ppY9e#)PPK?sX)B+w~yO$rF}w*K9+M+nqKeBo{u33eEBYd@(uauWj2E8sJDH! z2Qe%FO9m-bm`_1HACiDsO+hr6%B1 zB^#XTqMUyhqye_#yk+5HDqlW4X-|Z0#zPp&1-Y$wDEZdgUIN@gSq6b6;vR`*$&*}) z&<9asDHdSR94wm7J8v2H%@gWIcPQsH;HVE?FO#klozID z#xp7mV9UuS?zrg8^Fo=L>?AZU3b}dsutGY$xbWg6)+3&CBiPytkMUl~)DFf@o#kwj z1C+b>QDH43KE}CpgR{(ILU(jsmFR7Q9W9pGiYu}BIO2SV*EhZ1b9SD0mT*;e{Dsl` zo}V5)<>CVm$VTjoidET>!;tfUwDs2xd3eV;AHxSbPl-x3c^&mU!etWq5NfvDS{!o^J1q0N=Y9a|Y93A5_74l(jJJ3^3ddA`l^T3V^ z+sZ|SRNhkNiw-M-i*DJm8YognHx>fFJBuh*ZMJ5K7$V8h(Z|xV%J8)jmpU6l(MJH< zHbyHJ8!NnlQ35>EeLGXt!eKWQo%e+4c8l>TU7j&q;lQ+6_?lo)MnVDoOZ9wjIVwxB zuy>^7p}M>Q{b62GOrb!$TT}Z=Dg;RN5gWcDCoO}JxS|wy-IzD6>ew@@<~Jg2zwsQA z1y-DeUV_NcoB6?7`*2MoXmcL&tg&a%Y;luYi1d)TDkZ_!&rv40GSeo#D}Q}nN+P)l zJ}bKEv2e#;9LjIEhCOZKn0pQKf!Oo7Y}PD{h+9;kSeFfaCV4lvF3cgI-d;V7Fh72m z*@$YplpB(uWfhJR6}J0mg-K_s%ikk?mkdIFBs-`<+0=b3(+z4X92@w0VHgzUVHfA* zk@{4!ppHDT24FT4H8YLIq{*%vbyu=gQdxe)!}cua(qyLXMl;IB*Ab{vhFDOJYF}RR z3pdm4T5s>+R7e2$d9kC^FSE|`YOKXpPFh_#!WIX4CiyYergP4Tf&6n2Rp~UQ`sIr; zmzM@KnJM zleS}zrz*YRKHaK2)AN$?x|#Ny=E;}nXQO1UmUM;GgXJ&Yg|#ZJTh$uCu#uIr+j#;E zuhIOvYzxCA4$2A$9K@5^Ec1;{S*&Ol*X3MryG=fUUxEx?)oR{5?3mR#kn8FZp1rIB zeAFo8OiLLW%LfH#m1@IUGwXg$XFw`-11IzIm^6FxwcKU*LyUZM)W(n5?|!6g5qQXD zY%R!H+FR6R;qy3$j6#Bwrh&%1Q|>{5dy}q9yxhU%OQ)?BEnWNlIGO-SFX$!&B>Df_@#o3IQ(tV12V|c6fI8Ewm0yN0x?>60vim0VE6b*B`j=qvee&oE zKCUHAJMn|ctadMB6O`S&cfVEL%v{pUVL>B)bLi=@4q28P$0qfw!{+s#-25jxJ-4Sb zLqtV!j(pD6Ls;izp=`Iw_CcLEF>k2>Gfz%96`Ls`TEaL4)P{s)lxw>TTEFwQSaiMz z&>?qf3^4SLyC>6UIw4|rsy$vn9kpg6#r%iQJFK)t;6xr;&Q?&2jQTS@4ok_c1qgU` zoUAswP)dh?KH77=T3vS4#yEc4Jm0u6yor`f#?%ybKrVR)^3R)_FfylDs`gD)2e%Kn zJ1=>2H5-qOzH%Q4qU~cS8J?9#2`*d3#1}*ZkeZy`Lz&zmVk&3eQ~c8}F9&|g>LLgi z)IZd>j{b6)gq>nyHFBfv2I}wNY_MtE7+NQ5gtQgR>pM;8{jhgB0B6V)1qI>FkCor8 z;J5$6P%CjG^vQ=r^1ZXS6tnNnjl=GC1x`jjSWZOvtkKB0s4oovsxT{C$6 zHZzt&Z=B`4a=p+T;7fk;IS@tIWKAARLXA-h<=L~@WL94n4%dihjh|y}-Ig0E`y@)M zyK$E;uI#qsLi|_()op_jue;%b+N6Zv-9}?|Etb%6U0`F$1$9lnvPA{ZD@rQ1s<6uo zCnR=aD+=nUJ-nVYZ#KT0to-s^e36m$WzL*@+3*ej&Z^`4QTY@Svdwr1(_^4lgcC9G z0vJO13k}(^gDog{;a({X-MfElS^4*gs1DHoX$M13{14ptDTA6Y612f^{^#ML!syd8 z)8_Xwc-8)SLbEIq$)Fz(@@6CK+?vR+JVL0SP$A)&&-&$!v<4G$08=|X22d~GTjP(j zPflx*PkQPhS0G+f?;egg-us$N`RyDcJZ_&>jE3omR^T(644eK(=?WUNHR<&C4nG9;e_U>CYxGd$ z@z)`dyr&bDVebw9%;^28=^vuhe#l9rxfJq46#EZ3FdEUXKSa4ua}GgyE06 z_|hsZL(C+}Sa7)&97LEcq?715HLKgvI!k1Ut=c+# z^_3_Wrn?(`z7XFK^Nn-;6bhx6s8vK_WNWs(&R>$aY`84#{R*il&c=IKp=sbsHD2|y zz23H2Qy7@*BAV?Y`ub);0vRf#JQ1;yBoIl~W`{7E&O2>(c)=2}MMaKLr>x9UMRCL4 zK{*7wTH)zSD2}5NqvEbgSmdmn;I_O~5@yUdn4fCuum+i@my!x$J5rPto;7D3E#~LW zZP6>N_yBvCJIdrF6c%ao%F>)=tR~u=e?| zhz5K+5DO5G0*ISra|j)A_R;Zm(8%IWln6+59a;=ZSFB6!SZ)_WV`!k$&vDih~%CVsevs!PfzTC5}WdA>Cnekk9SnDmd<+K zOB7oO#EWE#+qDd<1Xq?kIs!&-hSZYFbhEDYaRTj1N}MWVWn@-zqozm~8WFZSKHxYb zol5o7oIHsrIw??shezHqh^KSq*o7xcTkTRskBMC+44DRr?*Q^W zs7eC_kx~lmqe6E<;sB%PJH`I}Fj>qr_EuIJJcHOzRGQ#pz~V0r7Z_Z?amqMse2R#p zHMD@Oyy{&sUNnZi-R`D z-4I|Yw?GORCphxkY2X$})s#vh_tm?eUL(dM-av!Qyn*$j5`TXZ6*34S0Juxje_tuK z4ezijRU5jm;**6|bxC0({+fcqLsRKwuQPG7%&dw$d7HWmm2=%9IH2^hZAC@dXIWz4l8&q3I z%;+x0kbJ~3LH3cAc2NyDXCd*Zl)l)Ht$fCD%&6f}cjSSZ0Qc=k^0)oU#xb$d8PhS- z3b8$>vJVf644NR|!sv5iYv^>f_4!@BGi4O(G2NSWRUgO3_=BV;-l9=Dq6`R5p6AON5hq!C;-*L4D*}uTR#!uf;?zTSD_*y>x>MFP6|o^9=2tU?muZdZ(W1_a9Qu?caztw016{uKeG;9m$OR}!t)}~X9HKo1!^KgQSm0F2KG&qJ@y^OJ$6JtA#6}W z*Zd(-FTrK?U3Q=5wVj-{(fK{p<;YPW8_kQ#Y_fkD69UT+V5fGJ+(>!t8(cGoH=-F9Q|8+WcaRpR2E z95HsL(b0NF^Y!960o|WZkG;<;l?r2hRB!C&Jv_-C$)4wd&BvPX$I?kU@zhW`HZc}b z1z9S73U1t`R_N-Ce{XMH3#QjOA#R37@bDe{;w~3VCyLfR?;}1-&QQHKhLuo zj_g8{I@+rb7`mQ`a-?Yn>5g1JWNbh_8n?I{M)Dc_>hv~00~hY=ssmspc<~(gCYrR@ zEX^}iu{3%-j+$akGd(PumCa5Rs$7JE_2#-nrYQ*;_U}tDd&@k)f)8y@MF34l23I%E~xSB#zy|V2DTfh*WQRyV7O^rR^J9Tb7mU zp$t&f#Y0)z3ZvPHjY#g$FW=PpPIG3bc>JkgzpbjjWM)upWnR>*kC#Mg-boAhZza61 zEq9Mbrr=T4vI3D8DTlhXqea^T(81qUk<+Qx;}vI(0Cc!rl(ky`4!}IMEwsy8pnSdz z)E1s;Ga&RhtTz#`A3CReBjh_x|L%$H#R4u18q6QM4ky+>xn!(c{XCa9tlO?)K}%qNjTb&oi1 zejK+AbvaYnApwy9H?Mg=vL1fcIXAuwEN$7LIaTr7|5PtJHT2>u^&@q$>v+YSsq{t( z6|Sgkx%p7+zt6mYsx=xzFRIv;SO+myIgNdj@PX&u46EwbJQJ~$W5pdjN*8*l<45R= z^l*Frd6E!~S~cDq=<$y)?NBVr@0}5d&$obPO;vwWTPn!UDJS!a zBXlO_Eo@XFw?4bcHjNw(t`4zb6EIrAMKCW@Rz#%sxe+h&GCC;5D%lsnidX3gH zZUC&_I1qA}JF-qjqikoZBB_heq=0O!=^yJjbJOK8VfBj#Ehb)viyVoS9p3wdwP zdjaIi2{!5Cf;9=C4lDc)CG?f5pF~pIH-C%_uucJ%q?{}yerKui_#77|Aqe3r)1oti zCK%P(YLG_-A^{~9*;2nh;TLD}P#xEi=8Cx^qeSj~>-xsh&1cUnWcaG5JFPnKJu!6$ zM~S?VD1^6|>j{X`WtikC`uJKn6F(H=yjnN}-^JiG1&QIzlF({rO{!szRy1%PLY*UD z$0=?D=*u^CPx8ktr-5j0?QZ|`OpaVJbRUlp8X7Y@olDUq;*IB3wUALV)soS{Bf-tEr zBjd^ZwopFaE;b(h@?g~vmZZAPlrHThr|PjXo)%-tFE)kGtEw4bVhjT=xT3lX5P~&Q zPft}=s6u-_w2<_g6pT=nbXje{DrE(()>>or&ET?4~o^49~Aw4 zUK~FO3&ejKH~n(s559swX_AOv?_0?yD21J>j2h2;nBnWPsq<5{%;gEr44r zs73>0mbKz%_(%kx&8Z^bA_KqMZ+vn&;tdH9mlvQ_F@3cw>W=Nvr3UcZehblf@MRQ8 znbtP4TiupYfMU(8QiM7+Fm-X=A@v&=jXBP~b298}Y!mTR8Wsv{ zufcz3%>VxSNUb1>PlQa8f~w8w|HjC3oct8W3HRA_c~iVTXO!{q2iw{I;@_WBj^R9n zP6{$%_Cer4%+D-ccq;utCHT@CDvyQx1mB_Aal0|uKWg<)Amwjb>g`6i+uDu(KF8Cq zyqJ7B!an_A&-#sL_W0xmLGO*h9}vpl{z%65okm0cVfvZr$0a~p(_W?)pPJQGTO_$S zS}k-}m`wY-$&jh&lM9A{W4{W-7Hgi8TLXflbx7ko3cNjv0oUEhdl`=}xVM#AI+WFT zN8kn5se}=1fo=KQHX}nuJS1-m$aE}^eM^$_HIw0MCWUW({T5b*an|vS2+DjTfSo!V3>YQ*}l*ix@PJ0eorT!4wK9YyKt{)&gG4BMxe}aI)(kIt(jpgf7CT{YI z8PN(MTr6pqUcMcixa_c~%oi3jfvS`YHD$TNjCDD@NnU`Da!idDuteX+J0uA3WPEhW z4x;)76E%kb`|>Fg0TJW(OrnmT3Q9@PD=3N`DsN@ioPM=hLEMcJ9rT4sg7OW!Bj#ca z7}@e>ClBdL8#t`kw#nuo=u2?%ZbcbVTBbHqzCX5rU|$eiFoMy3m^xkwam{2SR9GmN8{ zGQ#na6{?>9$eL)^(`{=1sY-0DB3Y|U;c1K;mHFl}7&I-2m2^K+M3MT2oP@pg*_>~A z{$4y+(OFGrpzUG`EQVbVV>VM}zMFLHR`@D$Tij#3NRO|HprfF!BAWT6vJfuhW1|;n zo95avfEsoZb*U0eI-q(a6RH4V`6syplyDL;4rnA#{a3%;T$Jb|eT zGKR+CC_*Y`4EjAElt9wXam|(2?dYH3eL_HyTQ+yqMmnAI0r{>gM(^`Yaw!w@kcssv zX(?+79ABX6xCYuRzu`%sg6$RNJVMxR>045KjJd|+F^~BW<9xUc9X}RF+!- z%Bu%~?Qtmx$C#VEc9CDHQRkoPnpP=CyrK(xWiCCoS6>d|KU+{%rI1sH{>0!V5icQQ zL|TrEIa_M!)DR%t|P;y$#)kk-BB8zE>;4ndos#6Iv7^WC)ia>W_`38iQG)r-LiK zZXzV;NdTRuJEQ!|#KUVYaXzCVzgm@>-!^q{w#_Ot6W(MORS?2uXT+GlQQH}Estg?8 zBjr+S0R{Fbn`BJa(*2($zvbg}7}XjpSlVM>W-g4)Xd(?#j+8iP zAxI#Cn}SpqkC`TDyhKQK9F3KgnirR8R=L!@WdHf3*uwTOvKkd|Ma!ryB@8Oj)In4N zDAc05ROS!yrVdByT7|kR8kBqVpP~{ZaAj7>h@2$1kmsX}!sOx(gL{jbiGikauJMNb6X{&pUI2ujp3@@QE)spcs*+Bs*df}ywji0r3U@ll zevUL5ix^EAgiN3oP?>h9jH$4nGA+_ASv-T*8nIIyT=o&Yx}J4z%29|1F8D4)SKeu*a$ScawP2xF!i(z% zGq{!;$TxVWZCdKB)9X3zD#Y%xy7rSfO>+&+<|L6rWnpHk^FYlBNh_Pd} zb^JPo4p;EqpbmZA%O>s7VPnMNj#+OgRZm%0w#*&96_hsMOoTbz$}aG&$|S|+o~Bjt z8n#YMoWjjz>8=Ht$o%opem21aDMqW+rws6Tp~q=B!i?-M>Y92zj`mMYZ~(bjS=@dE zt53r#YymVmYzkgAtrW)X>&mfZD`mo+DY29$gDVvB78EO6vQzk@@(FIK;u)9BM3?uH zttKi6gm@{xY*4vCZC?AFp6wP}s9MDWl4VOzuEhwS?YmK{>-KCLS81ynC?n)B5|uy{ zhsM0EvT{k~z`7OuY{zpyOB&9~l;k2(;EG$O66)Z;b~xDub25s8SmabV@!U!re2vCZ4SH{1hr0Fvf^ zkrx&KF=MAN^QnR?9iR+G6FcIswk!mzlruBFPGX2STb)T{C8X=yo5UeAC@Iw?ZihOq zQJ*NaXWm(Tnot1Q^?943>z!+sFQw}gOm-@(e_>T?cB9uQvyv`Y19N@`&q|1zZ$25q zBWn|VvNZktJ_mD6HrOTvSEcRUyDb77FaPTZ5jni9jC`))K!0_Ts(4Y2-vvKxjz%Uh zdXYE%-y}d_HuIz zq5F?={xO2EOvY&p8i#KJ>L_*GniC%AE8 z%;M=+C$T+)#U$U*o^2SR2b)q!3V7*A+1s=7akdHiOFzFXtebc_#OZyxS@daqMix4H z8Uj@^*Ah;pw?Y3mN*5?VNQ0WCC!wygq>)A_rdeFRkisKR2+ z6Ta2hxtZxE3)}u>q{lmNN%1!AJ2gD_wCybz$=oShoN&sS5z4c+k?fP_#_{8KZ+U~H zCkTDbIv;VXE$KHb?=UuQLVc)1U)sEif$>gow=<&;T*^i!){v$su4y*0wXT;`ig9{gl{XADzx;P?68~7t{6ev4CFpr^ z&!_EfaUz_vYtBa&>)m?($*xj44Xvo)UoMA;H#-@4*gk&gfAIF6K~1jh-nVO6mJOGP z6lp3|x|D!4y_Mb#B-8+sP!j?esx+4cgwP~N3vHP|APETu2oUO0YJi9VLNC%g2!b?q zJ-PS(u%Bn%*&p^j`+k`TlgVVR>zw4ubspt^{Qf)EUM7Lt*SKq^dC~gYv#LcXU+o0n=^wQm|9HCK^w8cc=CNmO5aM?OwG|5kP__HpZ=Q*nUaQFt;$_HyX7T|;f9}T z0X)skeP95x*&x-aMw6q-R+F< znJuJ+Lq{3{n~;C_RS?n^vp!+jQPhG6{Brf@k2^wK_TEA4o<7%d<*9bt>;8H%tSQbh z6A+;V0D!eCH7@Bi`{D9z4kG(JV@l-UO4(+9a`Tx?QJU(Ps1@M7AuKbypU~PKVIu%_ zUcVOP+%aGV$NB}Nzn8#^SCj^;S%;WVqk7$TcW}bhs6(}nD}R=hCSEf;1vGA8)9Av} z5BM#$Of)YVz1Vf}Y2Ckuso6u;O4(}fC}7Oe`R%ln_ogx4rk`~tT!UJ#W=6~o+XOZ? ziB;SE^&?Cxasl(>nh4iJSnOika^jo$kijp_W**Nq?}AyI2q6F3NAjF}zTBUPkU6d` zrBdtl=2m}*s%P_{Gve9@WwxR}+3}8jM21pNcAB(yP>@1r-owS#_Z5QQj+@n=p7~Zd z8bFHd0UFpS42Mp@w5)vB+q1A&TLrb|BO z6gZn8q+voXY0I_ic@Xq=>6IfW^6MAam)YBgkM%VV4>TQ5e181L|5{e?-yP^*DvNOm z0t?Cs%2VtB4Fo?xM(X+BCxV*B;BzQ>+7=n(7@A)wtJ*azt489zfNM0b6=Au~oz~p! zwVWrFd4?DM@}|F8!=I+#^1Z`57gw7pC>isM&5BtPUC+^lt1Y4Y$g%moe?oD;>_&)k zj0@EHoJ6VT*3sd(p?&s_Np@K4W) zOg2n4pCMRur@6tFf1_0b9Cuk%%S`Q0HT1EKZ_a0tVIIv&xrL72mgYMoUf>(z`6|Wl0Y)Ip#;CzJ*+yDPsVR@c zcu65wIpO5Jk4u*GvB+R)atI9}A80vFLKjLRe_;nU34C!(vKn*CHpD;`z>D13J~0n! zIgR5Ct%w=+2hEJ7gyDfPYrzPI*gd9B_g)Q;9MpM&Pi)}g_{Nu+o_sLit0tpTYQr<=GrUyz`ZbnRU&e57qEKB`{ljL**2&?Fp2V! z!T~RWK{qRM!j{~NMF9!KQDL_83K>@hjAW~)VAMCrMQZC5`!*3F?L>lGv zgAXIc!D9{cfsF{ZNJ}OU=^Ro(C!kG&y{Dn0C>?n%YGWI&u(Q($^HcHcU&|KUen{UV42WHSYRqVS zlziVQn7sj(^neA;`Irx{5gwD5C;7m{pB1sh@5#cgxQWQ|tn-CyuY6&o)?sn+jj$M$ z1)%lT#1wyG_aK-V>JaIZoiP1*5Uho5-lbh_Gc;!LnAYFz2ywm{CQuUuoOB7sRGPxd z2F-H>=-wd^iD>?4IHj+R1Y3DqZWCTN8(C86@@^0CF@CarccVatQ&v(G*Xy6U^pMGwB_<@|m)=}E`2U~#*F zTru-ZPZLk-1tdQ|f7pO^rk(=6FdW}3c$A5PaJ0Og8_q(B8ZS<-_Qhk~3%j}lgQ)2F z;r1Ycl_&F)%x=_JGRq-7So1HX-HDo{+xaoCD)t1+?s9$Jj6wRNe<>Pn8k*6+}4#y3UI1fvY+ z4cD}8NckR*(KPLzC5bAg*eTiLgxzLvq9(2{<(ECtzu6DWGPZUHj~~$Js`6AIdEm1) zum^LHd3o{=>)d)nu1D%VjWCI;Pa=r6U9p>yrn#-I%%Cx5n|}8D&4T6Wi@Os;_~G!h z$n>gZcYd&0+)!vKh-yz&0cG-f8G|Z`Wz$Oh>(TH+OLX8Pmys%y;pNnsOE=pd4|*uy zrO(PQkj?VKoIT?z0hDx%F?ov(2)1$qL6WC0&Ri%I?}(`X!6S9f0)?x&9|$*V>an?) z66`t$_gVgEiM zC{gN^K0^_=dDJ1GTf##sL=OkFesviVU{PsSQtKID^(i7o8S&9S2;j06h;}h*KGG9@ za(h#*3c5n`YPdi_qp{}oJ!vO{{Mi%Zq=kTTrKw>CkP3De_x{vMuN6r_KX2YL?lvDo zhgs-d1cOpmbIHMOP{Xrq?tS6Judgn2p-%K?VrAO##dc>uQ{!-iNqk{4F2Q{n;c*(`cPYz13BFxNc_6f zA2hw}a~Nz*HlN`Uc>uc$XFEt{vP?660JX&z=kw8n?t60dKN4xGA(!q}4b6)3B=`#q z(Kz7>U{|TL`*6A^Mi9WLNK^++IrnMGx7Nk7EWBHRQ?k#`{z*zyxb|z6y2)H@KF3NBdO%rk583Wl=WR_aNQBjDLf&#hl%MU6eaH6jO>Qv&wL8~hd0K0iW_z0T z+6FCaIglIi=)$-Rsfkm(izI4PxI+Gt{N}u&!JX47*JFF4G0>x<=)kWhe)$J?d;j-# z3Ql-L44Z4_^M<4QT<>#1iet)xFGHL>(`{9$QL&lBmWk@T<(18<@48j+S#R^P{-RRIr;II|en{wW#P}s$OqMA?h_vcpVBN)bEnJFPl=yMx zDXeX1d`gTyYnWMGz3+U7EaAUpOaiQ%;8dI?wp3>7##j9`k0Mu}_*H^uaur;~&ARKm z80QFMcaQXLEV$cDPi38c7G$kaIVrG^0KYwME3AYSqJ$`1zaZn6U&$>h_et#&>z>hl z9~>j<*{~s~qf|#F#N9585-j!?*tTVgqTte<4C5{P=oJvFj4$F-2~^FClz^^kK4_Qs_;wR)dw2ST_vRI8iZyyWT>ElaGkPHj67 z&lp)D-zwmbwvJY71->VJ7h9eWvHEFFi26q+1y_n>Zr`Oy!mXFnfk`rMhc1QRtNIkX zlgmoer5u-1m{-W|8R?;5ZQzpxQLiMyOCI$}ED~0vz|Jw1P-32COcy`o4TX>~n_%~O zQ@X0xu$GmB8r4~D?rkm&RIepvtIxn+&u#+S2uq|33BM3@xjhLG*KV?%47@lrvr2sH zh>zXtk*Sa|OIP8y3)AFq-~**+(lT6`8Cu?q3YpDdbW~#U0MioWc}$ zp0gKu0{eNSnE`R#hY`jksg~q#<^3usJ;lFZb2Vm6~gktz3D~lH2K*P?b6m8ibf|Dk0v^ zx>Yl>b{pA`2>nPpZyK=8$kRHf97*gcN@(u)PFDyC4e%Nhy%y4JTO&sxVG^Aa&AZrw zT5G{Ls?!sBREPT&sug}8jxy#CR<$(F_5S1CyUCfBk&XQ^--#}&1`TXHjG|YniY7EY zk&At7X{GM>_>W)zyVT@=rzWW1{=~p{#saCV%*5?!ok#h)W9Ni4n;OFNW zo-5;ufwfxtf*BfpC?QUZd9At2&tGXS#4W)FugyLO2LNn&Af6a}hsR{oJ&OF{p6lIU z3x)CnJl{%K9}hBK0Ws5BYwW*fJ6dd%UJipS1T4}WP%-CCoxWJBwgQ*?=XkI>EAJL6 zslzCOmw{us+4%2=DX2{p;FBluYYLE;%55=+L`d5aB<}9oeXnx4n~uyLZ{5ghaP5we zBxa=}#(z83x*#6O8eRo~j?64A5@uULk2%Z$3dKq4^SGE|iq_#7+Fabeu9k7bf9~uY0Po_p~@ejDjt>pe%?@H3t{+P(JHrhw$ zkIuW<`8n`d!0RDo$?~_DK3zFd*{X;A$5FQg8vWXwgLkf1_an#Ojp{0Uf@z!yBq-$F zr`e=}A=9^cPBc4~h2rDYr6vcb4Wpl4-(=ZT`8uc`FhS|vUsO!}z~fruLln|r1-ly^ zuoFDQJVeE#`r>S?V>-*6UUypAf7aUiY_UkA8ge9k%fJCalpa?z2n73wRn;(ap zgBHh-&WH7bw47xP-k0~W%95jiWu%Fn1@&mTxbcm#ahP$BG}+|aV*4o!04P&82na3A z-C2FW@Gj~=MWmV~a4s6MD*8tNp}QmQJUx#a?3=zgFAq7R6CJd)X;oU$Q_G2P%Dp>m&obg}iFvbG%Th7Epo+`w;HSxZKL zpkpu6DloC^kpHKQLJ_IA(Jwa}rg+V-{oAz-z~JrfpTC-}6v#X=-d6_;hVQ6q&G&ZN zOiwfF=(Ez?tZL8^%`%B7PRG(iwg(k`cTpW_a9!!1&c=?QyEn+q6OYfxQ0n1MMb0(H z5LMpx|Mwswns8<#o=mi$56fhDt=a!o&Og9FK;Q#pYEIVViz>I1 zm{hLp45(2M)LWHtwP)yHbDJWu1d9MdR_b#sCXy)c882geSnM7nna<1KGt@{peVUd{ zxn=iopkGHp{LEYH(`b(I-TJqr#H^I~>!8Ou}C1;U)W*j?*8 zJ&IrZ?(s@GG)028jpgYx@@E_%Lney-HD_J;>0z~dNslH|M>RY;9&HYshgiKZAXS{^b>%IGt1 zA|6&w*&+-<*}`&UN)=~(k@yVeWhdOrfw>FgTq9SMEx;MtY_OoTbaFuJeN=14IF~oc5xmSEcb=?@>$VmnB_t1S;|Ku` z!MQiRCr?@K{_+2D-8%WZl{9y7nr}?WzMXyLo4cpt=^r(m0kEg*xqK>ouUYQ(?2f;rxCpwL8@Z84 zB6;#ymLps?n*2dEW~Yg?XEnjNc_D~Ry_NT%>T{i($DG5Y1Q~G$WW1{RnaK%d>1 zF}XFlqkAt43a5*!6s<}`l=b6wLf%KGe&v z`gzo~Bd{1#epxim@S`T9@uRiT+HLJ!L^3(3hW9zCgHrxJv>!KM;+8zVGM~a`Y&YFK znc>9GJJDUJ2CTnLDon*xzPQK?EYH6DaCoSa+9WR({ZKMplseA>)Jllboe_EP<|Q#L zH1ufH^9Wqi4jBhUMDFWH$>lnLE%=qI-=ynrBE%$o8k`&#tc%q>A#A|{b$}b@HbJrx z`WxhSjc68jb>uA?d(0CBML4IKD0ru3ZoqMyi>N&FtLg7LMj@$@0N(CGK+lte>VdH8 zsgIwzCKdlitl&Q*&$Ce-S6cU1I~*pFy@g@G!H0m&1yfn$;_@TW;J|T)0!wtE&zVDitI@=UL9fM9W%!L*0xo*6ay5KfuAC zWfJ38_^(WiNP*+!Tn&Ujj%4e1r7ajvphKKM0nZHC8jT(@V4rg&(3k6Gir#1^niE?F1S>jvhrwJ0qE+*R>yw$Qstg zwz_+C)FH12<|@gZ4pC)*>D}K{fjiy}6C5LuTa}@2b6+SovdX$aEU$bB)eh8?Mh34= z)ygfHO@C;WRNp4}k%$5a(GJstlX zB){R*Lz>0{b#z*p{4*I&GEFXi6>0;lE!$kkWLOi+l?53uvdyX5$ijjKG)38Xpg;Mg zdTA*x-Ti_>kk>_I%)&|MfUuO7N&((2rC0N0~#|+;?=z$oWKUZF;yw zxhgm-#7rlXLR_}S&CcQwntS)oZZHM49) zXks6)K9R_Hc;wA~5k!fnnjb4)e~T;2V5ziDWAV8)zPgO1Gw{Mo>^LNfY|z!ncVp6|K`gT<%3 zj1~;k1(O~O;D#M%gcL(YprbbN1T!SCzhg`b&pBdC+JQr}v%_3^8tO^T2(XS`5qFf# z*;&_1G~`W?iH((I8$uEm>f9j_U}$rNR|p|8BO1`1HA9|MV!c@--utz_YvSufbDS1` zESW00qon@nu;|iE68CG{e5uMR%pKfcOPS?ZIk{o9y~^UfwWU&4xh4U*GH!~mU$<#> zyJ(*J_F$A6u0g099E1p<3wFE|69K}S$~=wa@(pHo@{!Z+jYPRyWmg6)s$ATdauT02 z?0-}LOy+AN&UVr3KIcn^GdiCzX2#BAM>0vH3(u&L3J#iEply|#(>r4bHY8@J;=3*_ zkFX6eCN>`yQLt6!=hv)LLZZ0g_etbFLY{Ni+LZ2`uz)(KbibCja%Cy7O-HUh*m2FH z0!9I({4;gX@jbM>q38eHcW%WvcFhw)di+I$0+w1UgCx;%3yX2x7xr?N=! zD1BiIQCob0aIuxqkTqxu{qpDa_AF7LbhoZp6g+FdNxGThoQE$c;>kVW==lh6FZwU* zm4lA{Ap1ifE2rx=7aXaUU#GL3Jn-eG1K1x$kk6mv%uAVe`bciQ*D%J)uwTbaD$EVw z;I%6udMCpQ+&e(*bR~HEd7U_!^7?-xxBqXB@vou}PMoN09HrzupHw1jn~!15_99Ft zNV%&F(Il)q_fKLmX;$SQmvf@dcqGfO6u%pT5ioCgr88Xn^}F&DsF9=vPNCt*3Hl%Z zu`E%~OaBn{e075>gLr>w{o0G^hxEV?Sw7YkGXmhZiEh+BegD1SKK;Xt8<)7^>=VW| z@#UdfU5}-WnlKRJ>}L-y=bu*l^u6Vd(Nx1uU#t`6(SIEFzxnr{r1^gzx9Xp#J?Y}7 zaAMXHobZU@v>8xZn)bV!5*6lU|M!V%kecR)?-_aE@$bgWQ#mcu@1g#j@b3mm8pxNo zm4$2V28O2;ip;z-_kMSEcQTm3JLnu-b4p1k&7$j{$EjC{ zWsV|`pTW$4j8)xCYELHy7a-L;<{jF*$^Kq!XxL^<4jlM?TTH|+_UqG*D83H>8DzrkB&@mZ`&O0eqHfk5lb2;r~ge^v4tdmFUN?< zWdmN5k!8!M6|N;UmCfoR#VSNq^P$~kqKAI-pD}XRuMif7QizNvf=^yUe+W|MOu{Dk zJs6s3gfQDIu+SSpmnyL@k6g|#tIzATi0$k%|rM=K7` zr%k(ah=l0AGH#npDy5s$+rlYyx-2Z(v?7O9FKw9R}8B&Gl}J{RTOHN|pW-Z)$&H9yxi$uYU^5v{x~7ti6yGMHfS1r}mMfW(@qOTpJ+m zFRD=;l0k+qi&BP+O*;d@mOE}<3Xl+&WYS|-r)(}G34p> z9-$7-$YSD9$a{N|`5;&J9WGs#;qbf|yuTHwgS)2Yll4`!!@d{sIJ6`v>_%~ow0<;d z;tK8(-z$RA{&p=BY;!H0@FZ|S3XUlGujyMrC#^Cboo8?djw{3nl@#W#DU1pO`rP=B zCx|`YSs9LBb3a)TW$FXNNI0r_!29bp^K0*dQ2%x6fBUn4X&y>c9w$Mf zn!b`gzcm3@`^ohx#yuNAVwSdyPXF3MYh*}m;$Y<#D$DEGHxHXbE|8_#M z9HnWmX{@WsP&d*QsM(t2He3qSo*s4z#bdV{zMM%36g)B?{kuH|`*jPky!D2K~YG$ttN zX#5yodYhBCcD!<^bqb>xkaB?@Z_05F7QO)x*`L#b8S~+KVOS*XdarV#u!S(fT&b0q?C9t}=UmZhU_@eus zA`P6Z?8J~7yZz;Mb{~89JX2P<-4@UhzZvPg;h(tYaaAleyN;25vjU3bj%5|M5`Uw0hWs1TVh_md-+K)Js>CP)!TF6J?B5sXhvMEdVv-&6QtU z&RKa?&K#egQgK+B=8;zGPNxZXC`|2ZKjGy)7jtUa`*Z&t`Tf+#TvZI^-m#VRsz{2f zSo3e)=;})U^i@Er)hMDt!>vk&omq6Cl`mf{sV5~ zDH_p{ciw)wd?d@li>Fe+>iq!0mZf!ekm))bV9|wCKuk(EXPGb{OAp$??!v2Yhd%Vi zDl0`m@=(a_rthMh&pWqQ+M2eW#!+S&C&aSP{tvE_|M^@0#SO!*EXDh|DG)UyMCn_3 z@aL~=`lq(R)R18DK_>9wQnFljF!-bU6-ftx@*hU$?-X4;JIW`k-4|J^#^_#e;j>#Q zH5`t)JtxZNSzl{+a+D;mA_$HrLJK2@Oo+xEtJF#WHEJHb1hZ=X&C-0==`B1amHB)( z_hrZ{ysSM_TB_=yyJQ7}sn!#anYU+eXP^wCe{JiP8o1IQ;r{E2BoEA0!X>NkzFquw4A^KW zYd+I=6q>oao^mq;(sHilLWZPhi?4y%FDT@)mIL78G4+j1|aX4t{MkG(SxGbeeM2RdC{~FW5eF#f(ooX;am8Z}rCdoD^ z&v*6OV@pp=my8!SCCKTvlE5GE^BAhp7SU>0p$B z?@6G#;I~rQhbJWe@jv*s|9`oC{KtB3*B2;1B3U$k(+0EY{$ZoO$bIJvl^`3(bjD_Brj$K=Zz0Po+Uk`?N<`7w zIj;DrDSP6c-9x&-5(w8Rb%h3Vbf*kf zac(wWTT`9^ty_T+Tc(OosX9*pnFHl=qgO z>%(0Xoy(=k+hLMhmK8iMx_EaA1*GwhNM%{XM2Q}_O2IqjB{Ru+4w1@8+i8<}_UJiM z%$hE!Zf|62n|};5(R+L3<}4GMZvS>?K3_t=F(G%&Yxib`kQd$}NB%Ihc9gPL)l6D) z3i`7Y@h3{M1P3AUIAAn~~0QRsxDolHN^v^L?lxT_bK@ zrgJ|a+w}4P6Wn~_+(g`7-<8>DY1|s&X0!86^a>o8`DMV4`Ju)Hz%b4&O>t1_2zfAf z(aQ6KP;BXCsFs4S9Q_K|^uTDp&$xE#V4rcRS-|FJ6PT?IaPX~d05^E`xIssNMnK-H zQ%{#@9p^JH_r2V(n{7`@Stv<0Z%eGF_@`QO$_ktoz9&{)wUVB3yVa)EL~_l(P;Wos z`d-=JaU?Cw>}N$JvCA_AJUD#bm$XuBqQ(t4zRnY|-i4A4i7yggJ)!2la`;{FQe6Up zO#Ow=0__jZ9-9Ez1f}eYggmygyA(Atsy^txL~4GKmwJmf7Ep7n6chc}-c|IQZ3ns8 z2#(PG^!)Z?nJ222Q^OoKV!F!wqY^Klx~lJ|%-_Hm4MSAdpwU!PZVzNwrV4^inlrjn zKHu;<6fri>qMFF+D0{0ELjoo)c$HG(laSOp2fOhyKi)C2Mt_rVVv!n`O-Cf5JUkpy zARcUCuVhQ}pfc=g!R78}XqaB$hFi<;V{*$i-N!$o{3H{_vWk53YlPr z&W~)bzdC6Fx~+BceWw=>?IdBObef&fRfJSk*E~z8LuOyul$>q*`rS&=sh&9Hx+V_) zW7|>j^x^l?>UqGEnLu8#E63}@8eMO^RJY|8*oM7sWA&lYyZqikL~;fg7~{V#ymrZN z_zVboFnUFEO&j>pvQ~D_0Giv`GrK^VpXGYPao%^f_L?YM z3OISDJredl=fM^LGbioO(V%Iou@CyJ1L2mi@5AIzw zgQkp&0zaqtm#8)?U|*Y0e|)fWyHKa~;L>y9m`GC(M*i;;l6N9PXE|4ag1PYel~w|rguL8!|JCR&eDmxoj4K-IV1O5zbYQ8S+L>RF1F zW${?C(CHZy%XsYT^G7YZ9s`$|fEJ_@qRrGjjrK|Hmh925p0F|Pj?~T(s2=Ezh_tkq z;fi5u7(z+cGZ>csgwC$-%I|)4@zJn`wRE*%n@w{dK7`>TkU)}a&K>N&-%%CZqruWM zvF{P#I5UM8tU*S7lIV{X4KFIr3F`vgCIkHUUzv&A6-^23X9)CXzj_oJJkqhIy zB$sTpu|3p#|CPH&#fvW+G5w<`a&E@x^nEc~O+js8ItG59yQhS!sOCs4HO{sD)%GEQ zi~W`ejS4aRPLQ3Qyi@G}8nB##9i|mCPKa9nPd4QLd++|&tEDGS3?JFHKwXgIr$^pR z4(SHdPA{6vV_(@7caMyl=uPdB%5v8Xrx$YH@gPgO5qW`i=YJS@)=d!ChezQE5d-Tg zGg0fe#6&St9tSWFf2w9<(tIg#--hXycNv;5o4gU>zz-pARy!;&j;y)-c2X+XIAI}W z!wAH5!QyZSZ?bFsbkDd3q>uSh>-#PDJ5Qn8O$ov3L&o~y+Tkj)YB{WreKGx^-?CPZ zt-Ml4eTvCmqM7B6Brg(HI_3KN9a_1O>smLtuI;w?X_8B2bs`TfOzj((&)I*72+iGe^{lRWPA)QcQGr5Dd6TiqXwFQ*4$| zm^zQ*_H3mVc>RRm`@I{LZJg|{A@iq4Q>*A?xm0&mEOIyn8#KN)DC{Bbnxl~WPLcPMyP)Hy+fSR z(6F@V1&wOJWs|MBD849Q_f{M;FFb|!X;bs%40ZgLPtslQtRTMi>WF9ABSY~s?$VW5 z5d7~GxwfnrU$*w&CwiX#Szo&%cmc8j-j8%<3Mjz(b;>6BFpd)pIIb!iz*1Z49l+|+ zCRGk#XTg*g_BvKKT?6m~&4F}J5*3TV08g7N?srAxX$4NM`m}pO)A}qFXeMo9TtQh$^Yhfg{5JC z)$K~nIdSHmB4&4#aEFWnj46SjOm_-*V0J^-QTpb<>W zJB5%+Gybj;nKvLk(b#P^2u;#g7Wp=6_mDPjn=3!$pbE5=w)_fOn74a4^r$EF#qZ;U zYG+!npeDr&DHaOQ;<39}r48=QOvshcMsW*1PbGbwD8orZX)DNxkA-I-Yf35cbE3Za zB3>a+^m+NhoJeT8ja16x&~BLGo!T)`&Fou4Gbmi>2kg}a%o&mdL;uzzPCcl`s8~0$ z{YjPuzzRoU#oyw5SKJ2GXla)vViz(p@+94>&aCK+$Bn1vJ}N6~j|d>>#?+(}w-(=e z2EIT=uzOT4>}rfSx|nc;T&{WeO5mb*?Jbp$BZssZxWS-wa`rvGf{cO{MQ887PsB(~ z4P1|$$-HNFN53vMgHLlA0~}`lH6STW#W<;h>?Qdk8ETM$c1+Hu@_;Lv39Ft~65gXh zls}CZ8zy!yr@N(OIPt2R;7}4f*d5pFbLU0k8h9x@JLh%nrCXX!l~Ujw&GQWBcY}uQ zMni@i5XkD#lvJn|TYJXF=tV&k&3Rkee+L>V!h!H_6GjyzGRyWgr3{&&;j25;2YHsL z<|7ThiVX3=Ch<(l(8QC(w@t3{S<_;tE2*gkH-if&2B4r>;v*Z1w$Bp1kY;{_nG#YxX^(6(Pw zFX_}H`E@UT^(9BY14l{6$*p`MRx(`+7o6kz%4EXn$$PN_oBQKhWxCt zihl8{B^9K24yuyVyXtnDt0$~{keH!11U3xjax%OP9MY6(oh|r3zE2>2CQuusFD7cp zQ!~4$Cik-yu45w()oyNp!21*7ajJ$nVa=Gr)OH6OiJ^h=z|sQu^OFCRun4a+*jL*} zpKn_P?3iYm7sqL&bd-aqQvQ=&X5qIKCiP!xfMQCi#w4$Hl9J z$I8@zE%drqghoX!)X9?7hYX)eEMSh#ndje!7dHWCR#wyLdu%feUazM0G^Nm=&de1+ z*cn{2^L9aV(s^f9o)(@41a`$Jykzis=H|5UfPOfs9L>OaV@c$?{LbB47km8=BU6}8 z_YnMBbS0YhMm4C)5JN`~hD5mB)(jBLWS&WeB?Oy#8?P( z9Hb5Ko+&AOKg=oV?r(X(_aD_c zm?Tr{TFyXq>?gMU!$siZvksgG9l*c3NW7H3PI2=>X)fJPZrEc|a=7#5Fr>}cjfNuJA5n@7EH7ESUd_UT3s zJFTdkDH@%ZpWiM&uiyA|TTb4!Nmrke=%Aq)Ew<*{nDxLibFQIs{$>q6V;QVCc143L zK+bp&Ui1+6 zg1ei7XJ=}jZs>6}NPuSUofAA(C*FB4JCiFb$qkK>3zpeA8D!&@14QZ8`1i1?@9HT< zCTNXx8R$)|%DA+*rI9p7AY^J^8M5j!8j_HcZTV$XNlU&^$y*FVfSW-b zck+B;&U;3dKhKkd7S_(p4mQDbHvsVjk_>d*b@4pN(5QkCpIU&CR6j6JMO4}d*Gfco zjB~iQ*xR$aAG8#ZZ*!2la$pymznaZz;v0aD4Fgg}J$G&Gg#C_}v*hyzK*!BN8SRdv zK_A~Jf%x~&rM0yONlpQ7d0Ep{y`fT)XdF&6!#)2TaaOaP=qHm%x0-jo)<5Lvf`S$`h4KRg&J&j$vB_mja&Q_-(H={`Y!A z@XU0-;?IPXb$c_B%05{@IJe`9?`NGlGHrVFWaXdzSW&*>?-%x)dQ{F~7chV;n)A(i zgBy5JeKQl+h&FD5P1iCpWEMrGNMNja7!r6j%XIY~z=9$b`I85*8)2Wi3opL6G^XB zM3)WGo(?U5dZeav-I7dmoSQi=;e_&ZSZ$LeF$IdU5Xn{o*`v1l9+y`*-)l?4MW3`X zxbJ@P09uc2Zbqkp>B=cI^UfgOc~D47NJ^wuC%GZk#C$?OrnF|_@m;|e*DSz~%kic4 zI`smTHRhTKL^iSiCMxR}1pYBA}Sj`$6Sp1*vs(*Hhn>Ir@D8r2MTzn>&%5uh%nOjeo6DIyG4$$MfcT-;p0>=qekAr7x2V_Pq z)J&=SUl^o%Zsof)g;*rd)v`_Q$>QgB{n06sGiMd6wdU)k25Y6eGjBqhb}CYMi7gt; z;Ki=aU7O_64z2H@3IVp9hd{TR&l53P4$q+Mzn0V$t88MI5R;m_w#>jIlMf@_O};ApsJ|A=eGel96@hCc z$~T6IVj8I?8`0{Z|;0BU+42_1J#m<%P?v%F_aR@ zR@0Pd+Hz&t)4;hn+~P+gX`Rp?lcZ{R04(EWpH%O>;(w-ciks7Q7Q3~_uW7h#!QuY` z2LACT?R7bj`}n^zzW?|6ZzVpP1+hYa% z9_Hlo{Y1a{F?kix@DjCVgLF2JPjHz74^Y2horj%enIRfEb}O~lfew%&F)0C^b1QQg z%bdO_nTD~XT^TqcUrT!Fif_gJT|pO4H=xNLK5WXI7==qX%Ah0~vZXEGOdV7ijr=YO z?sQN5@*SMX+xAY1sF==Rt0;(;qY!{6*&0#{A0h%gtMTi*%j10g76@l7g@96Z#3tlr zaGi1?9}*JiKlctY{qj1e64LP3|Ed$N{nc(7$$U~qsqWMI9T|@^!kF7D`lh8hg_95x zq!_7twC>38<>&3c+6Xr_*lH)t4;hVl^=W9LaPpo+hNV3dH*xxv3T9SUTs#%s>|?sm zyxNZk_dzBa#cOchja{yhvS7@Z2C_b-)X34cC%D$tmpJeLt$REr`aE?4GsJM!nr%pZ zEPkzOVtY!YWe6IH)ftC^{D;1Q@RH@j-qu4tM|8U3kSrH`VAveB9 zBvgYlPZ-%X%L22AZY;wS1aWqr)(RiKHF`nIT8Fc=cQbX+yYTtuy{`H1&Mz4!6DUH2 zISrN81FC|dKfE|Orim`RR=B`&n`nNKao!s{TSgiXQ-sEjCb^HaYLvzy9Rm#`jfpiK zi_L3X`g9rC%}L;5?NgbzNzRI~{j{HHv-HUTHT5gwt2jnw9CN#VUCvGVF<2<9hN6nM`bJ;8 z&bGf2Td10O8vJ2RM6L{(dAmZWi5gt=fn4P-?45{-NSahx-ns+{X?iYCCM&C!j1h=c zWCch^t?j8EJLdd!wj5@f@%HC53LkWV;wE8EM%~^k=3M6`0w!y?PR@3+A78lDcm`}v|PpSq3grvu^w(@VphIX?$2c#ggZD;H&`8MOEj)Fr9&RX&L8l<-ZuxZ4Z?hU@d!%HTwr?ZYAj# zl4Wrai)R#s*N3`U^rYcRkxr{vIw@bW`N~$NL)$B%a3i6fi>y#$&5CLgV3EGJhqCa7 z!t7_jkroM-Y{c6bn^C6CrePR00Bt7)S_&rgRc| zRhq92AwU?w0153iK!5~-1Og-!hh9RF5_<0)QM%%sytChZ_Fnt9_FDVw-`VGntmn?k z^W3=uYu)9#zSrlgeE4GO$E#ll@`N1Rx8XYy@p@CXm+riYJIvYre55KATifiJ z6*8=u6DRn@4Zw1O9zLhmTQTB1(<5?Kqxmkv1@16@J*u0v}xi)-ZJV!KvkO5 zxeqJDB2VJNkQ-XZSZvzsWFMYX4XSTAt~Y?(NhVVRs6PV6^m*sB%3#$~dcOC@7j`>L zWSp$WsVmSxqaVYHRdR97!CwVk%SBSu?29l?@_qV3!?^|EZl>LcYI;Mik;IbQR}wJX zKweM*_v;+Cq~5G-r@3bU1=mw>&#K-Fz8a4> zxLcEm@+7038lW_)DXddEV7Rl4_*I!?SLX)u?{kx{vDT;9`FEcIl}Ngr2Y=%ah9(#q z5uaxeT$5djYUzz*Vjmy36h(=*?!Kd0X;TYvUK7&EC=#T58xM!_C#iK@yr4IPjL(}1 zs925ROw1wc*o>A+&A1oo&0R*CQpT(G=_?uEpD&gb`c{VHyj__u7tNt?->}={n^Tw- zJ5C%TrKOr(-HPq-7&!a0H&YbpLLklSeZNXp$d7o&=vjut9W0D`iF(G5YbRCD%AfxbzCeW?gNQ^-+5ke}#B!?f{$47Bt*n@sg059XFD#9QWKB zNhbD606Vz~^IyJ~w8`@cDN@9fwKW#-eb zPGrfzB1c}2@XJoDNC^tBGYT+f8?nQ-G?q!a!@|WB4ol{ZF2zt-J+S8Eo6U!<(YjI6 zZ7}$UCP|18JxO$BDig~w_0y*8%5#!!XOXo4a&s-m1EXS0MM5mHOamKTF5ooKdkLfCPUAkMx&D#s33tZCbWz#m z=;taY9s4@lV(P8GTS1#1cHKpOdmViKhx1HuWzI|XTJP^&HzO1GgvQ7Hd4%MvT96%% zy5gyJBOMZ-vqy%!jTq1RE)H-01fN3}r`1d;{JpRkU+mKFuR#RIAIeMF-j@2ZgOK1+6>>a6uGC32hEO5x4YAOX|(5Q@bwAQX_* z&EUpN^3AP%JIUdNc}mI@mVp#us`*K=0(O#8cAF0TvnbModTF@w_A#(kggC5}`sb-c z4~hq=!%-krc9Ed$QCP%z)neXaa{au?ng&JxA&q6a#YA?iROX&f)YsO9-7ER8?hDtd+(&rRoOML5R|85cblQ`3 zA_frCjIV&2kj*ulCx4!DKCu#Jv^*`F>jZ>Vi>%Bhd2`GCG8~Z0`xO8*czr+T(w%p? z+`{K@$0(AdIvCt#iSBKKlpq>|s>^PVax5d77d#go?U3rNrLV(9J4a=8nrmI-R&6cD zYqe6T1f3)0Sn*peg6Lc?1um+MpSNL0DD~N4cS>lJs&n1#X)j?4uH~J;5Z8J98GSP% z3cM-@c^*Cwu_!)1MJ}wr!^^@H3NewdDM=k}9f|ncoyJBfD1|E7y?Y@_;`3T6mUA~N zUKouhz<38Bk5V<(4P+H?365U_Is~_NGx6CX4OFLME+QV|CS|ztQLf-&OvSiWoynWz zHZ05u8qVgYsyBmsayasg?X&aNAFKqMQl?Y4;ddXMFn=i?b!9ZiFcXZA9uUa2NBlb1 znp07V*J5~|HYQaE)IUXgZV8@OE3zBGOP0}|7vZ%9g-c8ia}2A~u2|kTi`ikz*vjY4 zK5>vSGSFQ7$EML(E-(Hwcj(*mh?$HKz37+2fe2<%#eR^93}TT=4bO+eVPG7hrF#9y z$5!=Sfl^|u=c0o*KQGBwhrW_^jdUVhp4PGR`Rkpyw{MA(V{RHg1DjQ}Rqyj-`IJWb zVg1)j->hztQx_E+@POYo#yKak1hG{~zfFC@zy_wY3YnXqpZDslMazXpYxIQ9l5a_u zJFfq6_#^v8YIRVeX{Ytv16wgKu%VG_s>u&u)#yjxu6S-%S(m=EPEFNW2@aN<8x?F% zui5^~E^}STpVNtjR&rNy#R%N-<1!2}gZhP2Csf!T!z22yCxN{e!z$t4k z8X`M&ys1czO?y4|yc&O;f59?0F8bDf(b?;DAe%GMb7_FyFIq}8E6L9eJA%-{VStKC z%;)Mu+_1oal^j57nyAD(ASNj_^QBsq7slo&80rYYy*;kkl0=f{ytbC1;lx`xo00!` zto^UP4@%oNKPKOO^yP-`zgjK*CL`8v3y%;~w*BjJx-M-7vNv$dXXyRU#&3UhE?IU_ zrs7GM^}34SMU1w~44&K)#ux=GCi^aceujxmzt+39`K-DC>om9A{-F|bR7@CS#!T6J zeYYbiJs%*6R@(WUDDl-3#pn&YmUW-%B)Bw$@2G>Ts2<%DJzbTxqbfWE=k&PK<2y1O zpB?2;q;Z}ZSH6Tr^DrIJidX(YGZ@8s?@TMKD34&Hjk*Id(|3RIr(6?Ad?E87555>i z)b1E8d|lEj{v=!<;wsa+c|q+FNSu8kVB6V&9RCAV$dHrI;`jW4!2>pwIyK0Op{JvO z{jHFT$p`M%$@%m__0`658)h;aBz6$ERu{0YxNgQl(*A_;Jk4kKVG>BNMKxoowH8pb zMm5{-Mb}bjOLn!cI$4S{08_lY+{b2Ybdd*%lWzUcm1v~kux0dZ@gY>yiIc0ks!){n zO1ygYG}qYng%9kB6z}j{RBNjO9lo9d?aWBg`_Ab`dZyE?bEKfoaE#P77Pu&*sZ4*ABj$LqY&mPH1+5k{rOPj2zqf!C(8x zYNAMaM_OZhinF49AlVQZ!eNpH*R2eBoa5EE-)vZ0RsMO(BZ*DxH^_?Rp9_a}D6n}0 zSt+u0&yzAq(sbq@)k(<@DoprT#bwk=a>PVAKT$>6Gvgji)Raf#n@fX;+Lil=mhj+y ztZt?^Xb>%JtdI)|2w$+PHFAH}4Oeh2^YuZ^(KF*pATMPrOYI&X(|sR1oN#Er zEm#_CrgK&so_9eB6y_t5y%6V6>f+-pLN(&#fzOB+F$BYU4u`g(uJi%e0H+3{C%HcL zOez@|Za3UHRO}J^qrg2`B^Lf`@!v$=M5W#mq>@Nj&M)GZCKisOssNSeHGRTJOW&oZ z@)zeHXj!xbV*C6Uxu^vr-B-?n$AxfavxmvU6%-El;*EmLX zRt&xehrcd_XOi)na{3*+vM!UHNU1R&!eG*~=C;kaXlH^IC3qw*nZfujz5d(7n%loQ zYj{gN5!>rl5?UuJSrQ|R9B>Ct`18I&C9+ z9nis&><;eSK*xsdj&?SO>fJYU`&cYY&=PN7h{Y5Mj26@lbs({8P)<#asiR$GjH+mf z)NF*V@!gBpYjOdLL@deBh>|%(vDBS=C^_BJh80hxu^5?R@ zRW=jNzMDx}8NBF>Va6At*;wbS_PAoaud*-GxM3uKvA<5AOzP$5Gf65zNJC)Vf@?YF zLQZ~2mX@Xb+{t=YImZnLuJu`rVF2y@)-t|QBej^SQR-6uVrHG zdwzhL)4y_o-paMm?B~oN>Tv?}JF93;2EcM?;_Po1EOzoQ@H$Z`l@q04SIAl7VCxVi zRUkZ=uOi}oCa9V-uT@JAA@~| zuS{(`tBYzoL>`1jVu$@_*YJ%ILdwK7<%b;;amhtVXa05Fv6=igmmd}CzeRF?lD~Gt zI+yeM*Bk%8S57>`W-ve)`;Qpzsl>R0!zhN%UC>`a-2Zs<=~s}6(l9$WMe56B?L&Hc z|G3G;M@w<2U@3c@<%Q2!yWy7P_l&zz_CNNTPxyjb>i1NcdV#2tmbBt)0+uq~*i zMIp`B^&PL*R0gZDePUm)|<~(=WCvr?EJECJ@0K< z2uKyhn83-@WMN`~B*U`gJii(ke6pI8Psrl;t%L5>7`!qIdGG?~vV~#FsGRTxpZ+{hC#9U!ZDuW#W$g!(Ru0WCbTCML>t) z?KNcn_0ZJNIVyeve+8d@2>Rj3f)>ncaB^}NrbRrBQh3aKbLmgUDZPc8MbwJ`%&ugXj}SCFT%A z#+1?r`{d6FhU@4QW&4&^z5&6HeAAvEPNJ^Vj*yif8IVS*M1sX^`FRC9yBLDJ&|pNA zDcaQjqO%zGT5|}1Ae|REe0soUHfak2BRkc>Dc{*O#~pQ7W(cWs6yVhSOO+u0vBCut z02LvFF9YvOiH~Gt@7fJNSFJHtb|y~AKU-+t{qt1gS8PSqW~ZntHcBBxGg9i$Qyr5n z@`eYwBK%8 z*S8mEL+#&}6hA=cnLsn7wS7}$7LP9&8-^pZ@h-8oE$U@9u_a@`X7-_KV&s?XVW?7F zS-A~M$B5jO(#lw@?)bphp)U=b|X`>q= zttn?mwr@k;&W|qCwLnTu%n=#SS@31U0Jqv0vdc)0xlpE5_&y!_mUB-UTPcpY9`=-GAk#H|v1bFHSjsiHeyEn(f7 z_33Qla7OqxuS7Ae)U3F6rPJ=oA*A)~&X+JZojQP8H6`On8~K z339RMJh%;lJAgpuCb6^e3VEnfXQhXn5U&vJ<>q}4Z$&fdcq^Dm<8lg|^T9)LcyerCrQ-==@lH~p$ zSbs$UuJvH-Kp=^lW^<=A+3JsYaP6}--A~@H=no}=djaHv-EQc1TuT8>lX1(Vtqbaf zB+1Ikx$YW{SKWWDeJc}!^|9){@g$Smy^@wc90G$|buPP>TN=h@)Z+q^E_Y)GJ>zO~ zAbX#1vFGh?9SlEKSL!k3Z@TJTT zsTW&PMRmmQ+rIWG%`2a)d4n!V{PUDX{@_<&2_}SNX^~zs#R%ATaMo?vJK*k0w-kBw zgnQ0%%y(T0qVtJC_lfnK7UphuoA5aNg^Z$&}Af3F&Z4#OrrefG~Ux{*u30y{c#niP9X%NpVae?Y_2@yoM15ux^;)%_0W?N5{I z-hDs{{EW0mF;?3{|IPlPD~!4CXZ$Kgt=lFtQNJz}_e|V~8FD_QWqh$Ev#Waz= zDO+)+heEW}o4i!(r19(}MsSiIs*4eztgQ9(M_y!U^-H#pEQMkAq0(AKebtnnbXVoq zG9V^4+mql{lctxjd;ZzCO~;S9uzB)&v`$~$F{b0?b`Tx*p})NywUT;X&dM~=ng}{X z#k4F;X8b-XwEogT$$yxJrKY`gBHxE|wJ7LhvZpYPKj}C%dwAHXzE#2L-1+0F>HO<0 z=-_O4w>W&GC?A$!%f}FM(+)MzZ)bM&y!8gmY(Rsl{bnT^0A|eAkgguAR^VB_;m+U# zn$)w2p|xdpQvFXpNkZTDCkvE!(`usbq!#=#ruqvo_yFLe=CW&AIaY`q$|ac~0__qe z@G1(=F64l%!t=Lz#*4hwZ?n54zKlQGH=JOX(ekn3X+@$K%I=jJIYXnyv6C|IAl}`D%ZZNcr^RX*?1^bunB`^ zGWBJ}=s=S^`z|YDom#J6_sTCGlQqVJRl^a@C!%g&-DI%<7(uApUQxOYR6 zau?-88(*300-8P#>xeML7>(YV+^+BOb_9GHOjUG)y8d zfN6F#aQEk*cc&aR@4oT3y53xEQJ>s~xn5)z*~wiJ*@un&05f|~f=0GX#1GriGis*Z zM~0J{)8enZ`0TBW_2nHNQI$wW9yyv(E~wsxwWNA1EF=kvl9}}~9BWspbiZ1HMS{0L&#BvHQyccX<7?Ca(D8LN60_`ZKb~hRRd+2*!*(I z>-Wxy%oZE*nt>Gi6XaCQwH;6kv9Xs1Li^V(hi)U&z#Y{NkVs>q0wT(r zm3}PpYoA_e$eh!T+pFTn5ezHN7oH~T^zQw~PkpzAM^}>bd8G=xd|$#k;CNjd%Vs8P z9;7p|3y-lw|$e!|hS zplKk#|KnwZRTDQS`lI0z+~Cl`pQGVYSlja8+Or0SX{EII8$nEiKToMq1%f|Ve*WEz ze-$r!Up+I)4=qYu_vvV_2Woo8I#l?hKO)%dp{Y{umkf@q=_Uo}xnPJ!7Ew|?FbUv3 zLA{8DELHW*iV#q$y1Bx*+PJ3S%8Rs{K~isR?{bUTrFsmVHTnD$0v?NFXB$zgW@}v| zm@}qh85eJ2x6PzuBT7mVoC-*|!BRJ<<_rZ`C6!Sl{V;H4&D0ddWnEY}<8te_);0kz zFrk&`5)<1MW2M=767kV{gp>ho&q^?R(Z7E8mFKQA{55q~_(2g_{+gdD9BK6NRTTXE z9m#b-frHPn8Hf6@Hcu>AA&Scc(;aTm>ZjK5^0 z#zGir5xy7sn<}&bo37a`zx)zPAtlfH@A)oVgbmC?6T#^-z-LhSvkUk6kp2l8v8os2 zR{WH<$V=-Pc^K$H5fS3FO*sRFt3OzUGFCq=nGCkK+KjM`uOG!J}Y6Ukr)rGvhi0g<~^8`?2>aoi*Ra`chMCFG*NGoXGE0!Qog zccr0C!y%QMt93jKPipEiD!01#uKoqwBV)DI0&w0NyFs{f-pe8Nn|owkg^pNe zcO|o(O!XctumT|Fr=Oq=-WV-^Z$=MLjuP|xgFU`|OSO&lx6e4=Uti}avoQw8^_aAJ*huFP^-J8OxC8QhWJ&?fn+zXl!91ASgN&mc3 zC1ZEMIOx?&N*+g^)bJo12>uG%A>#KMsoargAd%qiXi*PG#bn*21QdW=`Y8rga$!Kz z?(`zXN4F)l>;5Z$3E(>aglC!3RyO9@dXa@F7shjsZqNVBwgzt76YX#e_RJIO(W-g0 zdY06pe5JbMuGbsPV7~h~G5b;-l|~SJdho%@f#c#_dG7Y~%w+I^S#Ze>+cz$-Z-yl= zm3c?e?OR3#NZgtnCiOhP)eg@O-?C%y@&gT??}KI)vQ`fPE8lG$P1oYs^|(*{+O^y+ z@Q^^YJ6BIyyQzOviF^>R_O2e=sW4hLZ?&oNfPoMw9;3$gIMLy}aBbl*-+PY+bo6tCol2cy7UMqsnwPtM$)hMj z4Ay2;>QKLd|Y!z zt3OR8%~bXLB%dt1<6JmymDJvK6!;*CRkC=4SvC~oHL}lS&ia#6<%UNm-NS&|QZ{0; zwBV(FqYQK7oe)x=+O@Dv#V_(U>Rudw+w@&ypk-@Zd#LJ!{adPL#1+I_uh1hex`k!l zt>H3WdoGg0x91joLt#ja7+gZo9!*|)dDd9weu@l^QyLp^qL=Gg_7wTZzNAWXu+6sw z6AJCB*!#6j@^gTsBn5#FfK3i5SD06iqdcT2sknjGm41(Uaa7Ugl#)wXCy7km>ZUl= zmX?wI11WFo*7wPljP5~-RSO>_Z?coIzzDoC($JX8hgl<2kQ(Sf=v#<&FhY%_bIs({ z@(=lb4c(8PeBl@MsP9Xfs-n)aOed0aY_2D)jB1Zj?LOjh<7LXyA=%{5^u{s^tl}jT zzhGU<u|VplsWGVbFX5Ra+{H&xSe3FM=Z^qe^-l20SuWKC)Wqcfag1OM{-n}i@Z}xYu$vUh zQ7oOjU!!c7nUPk!(Av&^1%bm=b6Y!N(=v6m1Mh@Zb<GqWp6j9h;t9Q7;>I0m5GDGIGiA13npRTfP`A^zS` zaPKhk5;i~+-jTeROb>N2Ts1d=S);a{ngkBGcvZR7Z?<4wp`4`yMN$q%G58Mz0 zza5XxyP%r8?j@`UK_22Q0i4vG;i@YE1m3f5U8340A^hS3BI7ji_xe`mKAxFny}63@ zDREs|M&jrQZdTT#)hUJ)?zk{#m1FzI%P*CA=ShDaJJ4c&ed}8F=$hw3G%C#0M&w{! z){au6hzmRhzdGk^cL%$v7x)(Cl6tm%CC{r&M_Ve4V9Dcq#}1P@9f(nu-TRmkpd6q|>U*bJ$ob<+AZxB~4_kTQ;J>{80r>gYZnO zb7YZIYP{tDQnlTt`JNvMBBo!Z>C|CF&yxxZy~U~Fs4G&)cr>*BhykF|e0Zr+J{)jX zcH&2h(>%|$*$M9_Z!b$$l0C9oPN{lt^AE+7-fu0rQF*e}AH_>LBg) z2wd(RPcUy$wgs*==?ZEQwQaDzhn++`EiM{jHsS;-K3mk=OkaIK-r^}L zj)^JCj(AfqHE{JjZRP0rZuF6flE7ep_dRL~!ZRrWJ~MDAcN^t@NLec;No>$hgjq5BiM7fa3`Cc67G^t$X_+%50Wv_VEaRGcVkG4+7 zl!os~f$QdZ`}Lut_kKL2IY zJN9PIZIc{>ntJ zeL`0&IVOZ?6w{&5ok}(xV`>4u~1)(T8HKD4Hf4}x?As@d?ag~BGktK zoti_p`%H@IL6D)zMndIZz4NM$G8Qb6T7u8w4EX3*W~u!VkyRLfP&5Z7 zWW?B^iE(E&YAhX>t0zlBbx`ho-XWdYXHDd%7)-e(4Av)npf#@U*9-EoyD295n0W5^ z_2RvtKx9r}UZlXKgbl+CsOVn6_GFif*1B1`igEC})Co=z7@c0m^eFO_&w&D3*@i)w zAxSb&5UREyo*9NFd1Q38#(A-K%Xs4;&xyVU-53PVrN^BcGM){e?!)gwo)C00yg|}y zodg?vwgqrK+XohyG)g4qrrkE@njz>3-**@f4sKnvaoEca%XnkTQlv=*pxl#zMKy{^ zyxeFK?iMKbyoEEercsH;*_ap`wdt6?tC+1#|N+E#U(XB&PgMXw%|tHrht6!E{`;IaLipR-aLCX2Xf3)gR5 z)L=5MLDkqjhVUIp6kUhleoFkJNZhIa>&UzRu9*l|VGNm)d|mwI@L!}fx%QTY5ZXUT zY2=jf%`cL2fZQ?43h2!6Z|h>C3Sv?c8FqMLCZijL)^3lrBtN=RdET^m!A8B3k` zve4CWwoZ-{AO4xpz(u7sw!i~)^qeW;jeKgMrkCgjJ1DBzc>P6S#K@P&9IYutb6 zLbDok(xo|d{f%ksvfpJGuqP0zxpmKC)t&ArFX3A|?nx=iEL@Bx%C@(_rsBvoRYDrY zg0D8TJwX+t88ScsH{RnESebQfb?ddJAKGn@t)8lmP=KJ90kV zo4LU2momb7_F?+-;DFr#b|JrjNA}8QY#}J8lf}WP{F20! zFB0v@F?h&!$tbrQR_ucW-bJ^B7K4b)o=XBSme7a$0(d*M1IJ;ibIIJIS7RI^@ zUQN|b_6{LSObHk15`Tip61hJd4SeUHgC7vqT#`)ThT`; z)T^iX(Pko9Qi;EOI$Ur`mZ>fDt?tL;Q>!{N|7X+5f8p-`-W2=Oy_y5j_>ZqS>fZc- zEW-$OzI$=0HG+(jo99%05@NDVC0IrXkeG$`Uiv;q0`ykT8C*kH){c0PU^gf&#DP(= z)jR$?wJh%W+*Lp;Yd78WsdF9c)nlgVhK*oSkGFGCs<5=OPig(kIDqa*`6zuqxUc!} zu~9o-yCaZB*@{(ZVZZ&sbZ#qu+;unnk09V+Wi>^9s~YZ`DPW#7aqYAP zO%+N*t=*XdYz;31!>3NvuJQ1-fx$tJ^OU0vr?F=P)ElioS|WUdn}mcvO%y5!HAE!P zON^m_Zn3Lnbsu@e6AeM;{9mQ~Cn>zfi9wLukEb;VX#UEvwoxgnPq%b;qLRCu6fU8o zBL`5bt#q!e=0VwtlqvHLhUNaA;k5A^3r9`HzUL!oX(2;V>naT$lFwB%ZJ4U5KYyI6 zsQH^ePQYKO=F)vXS9F%7RFYeQXjcj@v>>Ju^9*P-<`yoss3`{l8XwrMj^X>Ge&1wD z^)33SGai|!3k`w9JZE?6w!OT3B4P+VV0Nga8;ROqkE^IL-gw@oRiAjK$%8RoQf_7f zj8qG2qeK=a$SsBk^=dw=vZ>p)uh1(S=~m;h05>C5@3ix_;)1G_q^rZ)?S*la z;-c)0J|3yJyWCiEg>SyN3{c5H{Kxwdx#;QGc`YP}%4DGN88bmGN#RH#_ zK87TWiIE1`Mm?#2$jhPJLv)I`@T!0aAd$I?uB=b$O z47dE7$id~u<3Eq98t_vhX-lm`svU;RgfMfl0re!ot6lZ9ufij3KYLb*k9>wW-1uWx zjn*RlVe)fxXb%@)sh9^XH)~ypHTr080dxR?+iN-A)NRm}8gTVJTTpVFC6*jQ(N_{5 z+x<-H=0~=v0KyO1f{0a32S$$XD{Pj)fP}`5cTLnge;&cmbeoaAD_HuMDxU5A<{L}F5d>l_0fb2E}f{dQX26-y|w9+g5IMX=R7a=CCg=`7J zW>r}GaAVjl5H(=64S_*%HeLq;MH%4}U+#wx$dl(myA!9bc>NcqHVz8jJ>;a(G5_Pl zn*`yQ`kJU&mHz3id#!QJzvM-{af*+4^Y}mSMl1A&JG9+F_xJL`g`W*nre}{AR?i4; ze?AEa`u7jjqVlHVrN2d5|KfFOmAth)i0rUsm-LYVhFjqUs#@X#bHHg&IiOzZqUQtuvX*X*ueY4Rup01QaZCmi<`I3D@#3ag8P8mn~S!E?z>Q1sX?wg~&C zL($ichAOkP{R`=Yx^fG+BsHKcQ8lx^BvsBt65`av8ZAvukL}lWWB@Z#J=oJ96|3Z> zuD<(R5u$59RZsND336hJ1{H*LZNj?O;#szE?Jumbz?gyO?t`l_V_h%eV5=(UEXO^R zi-Kln8T6ifFJ7j})r3QbJyS6W}l;MrRz(vSC_tbrenmpg*&?1q8 zvS;c>T6&v*2w_9ROoDjiffxq)*WC9>;uEG2K~cqo_E>^Ge-foru_T!XYMhVuF2CyJ z;Twv~R>8g;MHoN)onsQ1d>f&^HV7We$jFYsxTV=&pEc8$I1>zEy>ac!l#%ir`6onZ zVi?Y^I9zhh@Zn%=-E7h;!NUF!u7av@pNF-opC`xma%aYoSrUIkld|4ew+jbc?Lc zp;@{vZ}??hi^(y|f1Xkt?6S@Cy8c}&J-^DTugAsKE;#2+Ud zd2L4IT8->424XECdNyWC_Q|DhOrKeuPhX;3;~zLtMs0&SprMEF=JXujE@F0c6~>A` zFgB`{&3>5D30t6J(L!Pnz(pj>C*^Z6-y?-BKGQ1E2kY;>E;B)+)2Vq_qk=lrG6R8s zhCS$(nfb13RS~M2Txn!9N*YY)eIT-B{Gc#<=k_$=@TL8`SK=wxX5Add-`e=iQZIU0 z_(4@2Q=~zIVdMZ{fc@f+8_ktoO24IvO*-A>&rVXkjnFYJl|l|qEw0_&gk^gKI8pl@ zguH1ArQFtK5QQ0MzGP5}4IUldRc;6#cy2Rfe{&|L#Hxn14My6sawPb2;r0q67^;(; zG7ZJJz1S^yiuKc_=ra36VJOSig=}NKSs0x@*5ubJTVJ(!A!Ux%lTC zN{e4e4bWcU@hqJ81N{?`Vi|(YsI{AaG&0k=p>wZsB$`CTL^JvZEgEsR??c7jhk*zr zrWCE4K_t1p7IpX|SeQ%9S-Hn+81OEih-h4*5kVlBk+!9r4{H1FhDv`|19slFxiU;4 z;?tCT2}{2-JIhhebQgDZqgvf?A+XkLPElc({z8cje;2IzW>$%U~nZv$YR3{Vt_+c;Qjx<(jm2NQ;eXktp2GdXVo+^p2?olZXsiyby*BwBsP#lYPKR zq3M%RDXa48uRLvhfY32?aUe_s_c)|Bxzepl-3>WPbpQU^lf5+=;MR9g*=34r)HnzB zq@8n~_lV<*+J8Rd_HXx{^laQ4`WxDljZd#f07{A`7qf$>2e1W0d@n5qr| zfy+S%asXZ~+V1p^{vNfAw|Ov|qJ8(zU8pMcuyVz{01hqmx{g=RPq80`EZB2;I-J1T zg9>3J7qimxGisR)j1|p`5AZScsodRJms2(E&aXZ9yr^nmY+L@ez2ynkfu}>Drvm}M zT0^f=-m-7(h)Q+(mqoMu-)#aM?f*>%{l?6?^mO79?wB-M8fMKx_WOPpY}R6njGPNsU`d*&a-L zC|^ReRoumS=cZNyqlric(YkL{^xG0WhRi4hP`B>${_#{af9Si)TYrd#mbaT|P=J!c zY=Y7T;VcxIH4eE-M?*V{YNW#n9BlI=d~1kZ`29Fl?`a-e>V>>&h?@y1 zH&#Mzl|aT_d?6?(A!Vt;SE^d=RcY&Xweqfeg#|4;8P6=kw~#~{wK-*4|0OATk&k&6z7Qth(Hg*m2T2E9JD4!h6I(5>%283&eB zYKX-{CH=f{eG9vWkWn|v{Ow0_V6eFfuV-uo`|72B?<(%9t7?}9VNSK0mJ-a#2Se1_ zUB!gY$|m#ZR0rV|&krA{i3N=#EN;s-!z0eA&}RR@ih=+4*hGzVMR0>^_%}zbj=!l! z^0ZFIOqxWIh;%30Zwr`VF?(1$Y7x~07572Y2?R37e{xZh?9-J~(vbXVX4zrGY6Ie^ zSDhWbXT#GdVA^3TkYLP60+zrIYQC_59gwN>;BNIVR!(~k$gvi;VoK}N0bUlz?Tovd zG%2C5cHK(<$XKHm6;~%H*bPE`0T7nDU#do5+kYR$0Ab`Gzq(jLd|&yLb6S#KRm+2T zOtk4jH({KO4d;)HyOi4?k9}C`wtkpjVY{8%P@t$|U}nF325zfV73=YL3eyfH%>Zh7 zxMmflWXHtB581K#rCDk^{R!Fif1b*nxa&^;qa4nDWG1d!pfH)bV4l}`*WG-2s*&?g z8<-o?AnUAe={2UmKMbo+&BiwUgB570X#UbQ;${LYWEXB!qZ|af6<&F&<-308Hjm(x zXqdP^H26WG=p+$oBTsba=C&J_`VvLsSne$_d<~+1=9DN0JwFMkcWK$){9OK1Ux;{a z)!?+Mw0U!4QJwk4Pu~_y1ZaxTHF|e~$Rw;IpxZKvEE2hv!vAF16VS$CyA8{i>BoKF`C8cY!IegJ~d*!Pl2y8I zM;s^HsTm_%7&Ge4sv7G*tZa)>FNmDimB?OnemVW5`cVm}HEXaRX8vd>R}yWXf-B+R zGZ<CaJmg(W83bt>9iIi&79FqfN>KRhDxSFZ{XA2H6P$bTE+}wFC(8n3@RMzcMaK_r zdJ>^MhB;azGmWqN!_4b{wRhcdO(okucBL-TT&hx~3n5g&RVgA6KoV*I=_T|oRb`bP z1f+!CO9DZV4uW(D9qGMG0O?IY_+?k!eeZovgr?Qf&pi`MW*l<}>c&RLONmzx&L1NReRojh|%>(r? z`V7(ZA@%L2{5&IFKeoV1K`gFt%Yo2qr;8JYg;Ibmg0+@aKhI=IM9F=v`m*N4^9 zXA7&1P_-|6RUnJ*18qa^)nx)_bku<^0?7rZI1vy9ckXrbeH|%U*L`xzmyQ;^JPlx9?JT8iihU-F8bC0Ki|Vnnon*1JCW% zc%E_}QidJWk2i$+vp9t2!sDC!)J4gF?*#-Qkal97rd2bJYIDgM zdhwxorN?hn(bV%k+dY)9Dl1O}J%e*FBMm#bx1GA}XTe|t~VZ3{A|P~EDtAQ#H29%7bKQKL?|5o%>qD5qDj#-|lE#{^nd9wR4t}hLe4t2eR|#bXt4R0;SZC0W4QvHDuDN%~(o!*6+B~DVM6b zxwU9gh)#T?xb3^n6GfrIQ`>@HK&Z7H{LxxXLR4#3XCW;a{pzMw zZK#raa-qReT4~BQ5fq%4a*x&L@Qrkq$NgY6sTltllu232UV9QN6YTLtyzYI&??1NG zi)K~9^)991k`Bq`f^-(D#eiY0*k?usoN|N@?j^lS*IQLNH za{}>aD#|CapA&?BrFyLPjoEdYwIEEh>Bi{v*4^kgjy##Dbo|7_u)%iM#ZQh13JvAlZQfcVzn9QnUS;!Z0imu@RKG>YPi;|K9Tai?4H%-EHBY)Pxi0{^y`e zmtIPu>wUwV8M@RQ{D8`z+O}dmYu34e7;@jQ?2QU8s>@DR<-T9y2fX1qoBD{*0wc|t z4&~LWY*qHQhR=JK`^{~O7`BC9K%V)#&*Gv)?96^flu}sA& z@A%;@+KAacOd^H2I3&Gp_$uC_S*7A^cl?BgC8J2qe#!nh;WO1Q2JzPfpU+e$+5er; zS*GEX_y3j!k@F&lnWb7}GNp@)2Vu=#uaj+4l#gG%ni3g+1hKvv z$&gyl1(JCu4_Q0EJO=EmjST@eqU^izOLlqUZ&y3~gljAg35Z;2NqlLSn>w9aQD8bp zdqH_n(q{5ZuoWYv)mZqg>oeN24cab7ome5#*gayO`6GZxfA{*YtPr3=4`_+A!eQ#e zkJXP)vfP8!aMQTX4nlY)hZkgt8f6Ra{{*ePDMD7IxTYw2SE)^v_TiJso2 zQXW*r#^?XCt@B-|J(e*>=dNs&-^E3ksBt^+bvNHJVCHoxGNZ0oQ0f>kS$NCT)Xq*x zDN-}}8pR{m$N4+e2KfK;f9-`kP<4ha-g_X@p`lSFQGq*>=+K{D7Ytfjw7h<;oL8lE zw9;Xd6!x{#o=N|Dw&QOdx}B+OTAh%*qVaS=`<)lcHLOyomu>j)ndqp7wx5UmaXQ!- z!3IrhUDjNDy!6djKHn>)y((fE2I9sIA+V__D9ll+wS)Nj0W*KGXnh2<7!|!-+}J$d z^Ps!F-$FLwgDI2Ad*e6iakZ7KGpoTaBwdZS5182-#tE>KD$jhQQo6~GqT^RPh7eSp zh6a89x;*O05$@Pp6Un^++Yc9hZu4BnObuUY7Qfk2QxziXe3K3~6SrjXAyRP)$mjtt zb@ur}N@PT0G&v!gTETEZks6Lem7z3VqTVGNcMLDt`CJGe{BP?uC`6Cmo_4 z#h4+ZadQ6M#tL7vn{0-kOZL+|n0U)gJb%&w;gE|i))f9Cp7c`m!HiB_A^!`}a34No=YtIJ+|&#uO!Q_%7i6<7IRVNABu zO9}FZ*FG=|#L#A^yl!Bz%h|pdijLcEDbLkeN))^17x$wV>7?bT!lb@_ADK|BG|+r- zwxNCPIdS#n@{|LUzXGQ-9#6LbywsWZbnms*E%CeKJ|oTWrD_bXI`Ex$qHr;M`!@;V zT5IB^=?B+Dn?(Ej{+jCW3E0}Cc8`UeiF1gz!oOJMm+JnaAIU*a+Tv&zw*H#X(j|z6<(Vdr;#*Qxk;;bq zM2$h~QNu5ONx*MD4XmkI?euT{%5TmJ^(5hM{>twHA9Mfa0)6#=?7RT4zFO0%ul`TN z-XCZA=Tn~-=rXSoSX&!Y*CqOui>ReMVc0j)Ba`dRZj(ckM^71oA2RJo&C@bDT=ux^ zKypd+anKNXw55NW+?rgQ2+RCwpb=QVfSsSchW*B5c=W~gP|@ejarKF3^`h}q>dYRnYF@A0#_*;A}zt){hrQ47E= zEGF5Di6*-hwL|715`Z1?!%*CV8e>mzB5Ba73Am>07(0&=}K#smEOIy?;b z!)q!*QeYQS2Gqu`-=Rpic|4iB*FtsE{O%F^{GKFghRffVEKm#`e@j9&KjTfTYrNGi zAvow^Syh26)Ot5N!bJ|UvshoRv{e+;-%{DB#9-l3XjFc$5fpt4pc~Kkg!grpL95i} ztIr{48#5n($cW7Lg(*wfk)>Q0xYSpQ7LRc6Bx0&aHKvxgOgHzU3%v$oWy>X3MkO0s zJz4AS^>L#MAHX7MK^|*0Q1H-TK{2HoZ)&KD%dCldEWPdvN6m9!;hIPo&~K5Sn7E(` zL{DgzsMeAY6v0UAby--#%Cb_XxQj}(VBz3L=!A{ahDzg-BL1+jCfbBqV=VpSUpd!fp z%}i8ELLe9cT}|!`>zFjQSCL`SH9@V?fD}~B6Y#-*is!|8JQJl|Gtjc7^Ew z@xdYHxcX3jRT87mxdJ%_$)Erw^a!Hg^ejy5LCaTU9pp?l$1 z%tjcewPmj4mBB1Ego%fBtP1;B=maZy-C6~Mtd9X+D-f{J(oI35j7n}X+v^Q=dEpR4 zs70P|hT)hF46R^qld{vlL21|^5`m8Z0F}laid4eqWU8VOiqqDmJtq7;GPI>#JqB;+ z^l1$j7Q-+xT5vi=gh!|<6c&&hb~EZ`)iVKZ!?Z=LBB?%|yrPe-1J~*%>|u_ZMv{^{ zZD?-a*eaAv{SjiO&HSm^mOKN3+qI*Fx=(B#JBa4IK5@p(08WXf6;bji$7WTOSo3>8 z11((?$sSg+%RYENn$stIiE~IFdgFPp0b*Un|{siUT20GakNAp6Cp@>brU+%drSfbme;<|yOt>_k852JF_S=8y8@ z)%cSt=b_$~pJURIvSe_>P2UzX#0KXbG+%R=orn18j6NiGG4m#WIW@7xRidUGlO z2WIa~4N@XfRF~LsYb+vfL=y&Or9#heUiA>*ryEGYo1%6~>U#T011}ODkytkN{H9>v zy;3KYVm5{wqLdi5G64we<>Z0hecc-N@qBvdd)d9GVH5J2%;`?_hI(l7D7RF)UT9xu zeRf4ot;Aa``MnWePv8-9AI<(rW_m^F9B3dqfXz@rL2;&lk)X})?z6RZi;Or96d#7i zCU$Pk^Y+T=9=*mP1}L~cE{s|)A=x+m1O(X~1cI8_a{7P_xHXOGJYrShpi9+t4I6usNq40&3E4n_j&xXGHc@%aC6X=yJzntf{7JCA2@xW#!bEK!6UPpl1=d7woYDhjz#?t=gxmK<(GBxdBcy zECq5?X^*9njG{+~YxiCYJ*BijwdI584kLuw?qyZfd{Fpf74|P|&H7^k{&Q3mv$M>o zGK$df7YNj>viOkK*$JIn$t*HoZva#6vLLO>0Hl4~V^9ZScW^7=^kSPd)FTE%Fiwe6 zSVTfO5(0t(S)m;e4VA39P^e0qv`sB6X}xxCIkLNaQ^Tfu?7lVgm5PU4#xwL9>s#Bv zg5m~Qb?LK;kjZiEvk)DfnRXGuR-9@`XiElDg0GOI#3N)(KHDZ-(8@nUz(xx}mBJfC+VYj$j{WHu~%fZF`lJrUr&sJLqmue6t` zB>4-Q?rPp;c{fTA9w>0h!7)Eb6lRX;ot)jfj&2PzRqO)OSO;0{^T{O0z6+cW>-Mh~>S%K-Gs8Jq?3rm# zwIh}B!kDEdp&VjsQn0T@O%0gJs!xOL z7iawwKgZ_LnnlcGhmv>mLu7&gBPN^h4-7^QXE|y&98!RhQ zuT2ffX7yXHT4Pd2!pR&Uof7lr-R@f>PRD?!1|~KI2h)=I+$4-fR4?FbiW##D3p`fV z*K+g6`2~hEvy%g^YvvNGauf|7kvKV!fznz6FyqT5tCpnp=t_M;r=H>itIBp&(u+kq z3;kklKSOoY`BCq=RJlvwyz&VfR5Ph<(%Pm;CGT)zyNap`5tmfeUcB8^V?hPrja5Kz zUn|?Je;8*n@QE!nQFicw&xOG~MZ^;X9J(0O;Sh&$h~jC9jZkM9MXvCuMMpp7BPR`U zgzA9~q-Z$0wTW@^WvS$>qz3fyuCca=87VHLIaT{||5|F- z0oPJ7t-~0I-plHK7TeSq(AZ)wOcWnlwc$is+3KYkCdS`$#NDv>js#zF3ZnG#g+*UV@T>ay zGA@%?l@Au^h|7XtnOStdU0Uu%d0xh*2v>D-J#(h|LQ2(sO|xzU0+Ve%Iy#8zbEjMk zmX^UBmUl$+-K7NW-ICStMXX*?C)d0Y&l8!g9~`s##2{GjY)&XTtms2KH46mR)>yXZ zf!ZHLfu!8M96#|kt?fju?x86b4iJ_*qO+w2ZPMmb{lRKlX67988e@bJ*c|szKZG6) zXU0A4y38?VZ9#=koYR`i{KYfQ2@UXMV~QY4`*h1!0vYD6(z{vxCi$tti-#=zEx=LM zWyjiR3ESGPao%tYRRs*Q)sYp7aeS@TxN|=QAFIbUAnU&H9S!Z83PCt46rMGSj;xBw zW(ZCo@a>g!Ztjz66?(H2xgs^rEX~ibnttFIVUAiyEA>yv~x*j$>_wD6y8fS(o*dxc^PRhq8o?mpx1;43%KlJ5g@z>2sLluv@&RWxgg z1e`4bb6aDz@eM$bVldyCwlO-8aUySkh>LEm%L+#RV>Y*06TB!`(bT$A`(-}@0&cmV zViJ&Qsf49f_`G}NAN6AY((aaj#QZ;<{`;i0=L2hHam_Cssq~O8vYjzR@WGdftW%Ae zagPB25z%if&z}uRKa4dGQ-jo}M6(j&@Wz{a;oXZ%A|DAFu6!hT`;C0RBe|pZHGRk! z_MRy4PLH!mz*z;5{9U!Mib>x0p6Bm07056T&N|>vGt3NXLSKV+GIb=(Xj?feqr`4* zs)>hxbT}2|!=Ru;u6j7k0sM#xur2L~xOMPy{N)*@^P(R*qLLMHw?AKg61ZWQFp6`d z7=Ov|`ErK&ghUbd--65CmyM3-W58&}R??3@@UL2}iAu~-lx?G^iiA;1Pr1$fiQw4a zIlcLFAFxH7iCf+tXv&_?8b~qJc$tb)=d!hZ1$kza@pU-~d%1+Iu_o)+-|L?efTkiHMEz7kz zq^i3EOqzAcZKmp*a-qB2%I2rg24Z01dfOP E551PJzW@LL literal 0 HcmV?d00001 diff --git a/docs/img/drf-rw-api-root.png b/docs/img/drf-rw-api-root.png new file mode 100644 index 0000000000000000000000000000000000000000..15b498b9b29a5402f76669e391aafc10a082e766 GIT binary patch literal 78192 zcmeFZ2Ut^Umna;?iXtK)N>f2VsUjpuKT1;|AS59`C`u^lu zJK(&b{sVo$ks|=W5%v#oICiA(fsT&-LvvI82gZ7TMKl4}aO@TUfcEskm>b-?YH4MC z_2l=za{L+h*wOpRpZ9+Q*yV2a{8>5x&?Wb8r1^geKJDb}?Z{5>gZ;mbVH0OF%g4s~ zT>rvv{E0jKg=_qY`}sWaVW)ZcCys%d>#%VrHh#nPpWzPw40n8j`7`}%b{Y+|hwq=X z{)9g{KI`lWgRt+X*neSwH^3ZV0J!((`?H_f;6(rc?rZ=69KZilm_sT6Q2q)4xHRxj zVb|XR0NlR;0A(Hj6!uRtdGZ+Z_;1A>V_%QDxBvjFBmjWR3IO2!3IK2-{ual+{2RPo zWk(6K`SN1_Tmc>cXTVj!1Ar&M5g^aTZUb%s6ak>aL4Xc`p0q;UFaigbi zn?oKyeO|0oBz{le(q-j477p1Zo!3DsIxue^U+jy-(vRPMNWqgntw>lpClI>2CG{Ph zlG#Lr+0_469snH2j~r$5af%(Q!^7?)M~|L7ah!wWD94GDY&QR7f#(7r|20MPr^k7f z?wUP*9+zG8QS5f-iP0Y?S1yX*JEi<0p72fJIuL>>{&YA1ILpB%!Nb7=&;~63aZ;zk z8#B=Y@=k<$xH=~N{*dLC9lbR;KK8)={w%M5;`)LgzSvV*wH*r8#YWciL#8j;$bE5c zUm6kcj;J#W%P}brx;yG?f3wC6=B<@I7&st!e-aj85Rxn@c5v1++O(NFb}?@93?+1N z%bhcdGM9RNXYWkbPwbXPFf0($E4wc`$MK0iDb>OyL_zPmOV_T)hwg`_hkC@`fExUn z$%sH8E*WS$90JC)M+b*iHb9ewR)KlkXAmu>i5E1rH}^|lLBWe^&9^s0=ie{*Noc=2 z;|`J?82oK9>nau;V~4cTZ_R+Z4Yc}n*!HM)AVVJrQV8;!6#QJ&V7^M_iG7MB!$s

      CB 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 S6!dlrE)3CLiRI6L- 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 LzfkRq&tv}s!G=!W literal 0 HcmV?d00001 diff --git a/docs/img/drf-rw-list-view.png b/docs/img/drf-rw-list-view.png new file mode 100644 index 0000000000000000000000000000000000000000..625b5c7c946336f8c724d9ddfd3dc6541b4b528b GIT binary patch literal 102083 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 >kqLSU1T5SW~y$}Vg&1}t*0NdgIk36cO2 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 %A()oe`-FiZ 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 NOY`0Th~vM}{~wy;vS|PS literal 0 HcmV?d00001 diff --git a/docs/img/rfm.png b/docs/img/rfm.png deleted file mode 100644 index 7c82621af715eca1530d8a244a5b20180bddbb79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137450 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

      Y2;Ep^b>( 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 Ak^lez diff --git a/docs/img/rfr.png b/docs/img/rfr.png deleted file mode 100644 index 1854511d0da63b3c192323716ad2187453b9fd23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145437 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≥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 diff --git a/docs/topics/browsable-api.md b/docs/topics/browsable-api.md index fe35be8b31..8cf530b7af 100644 --- a/docs/topics/browsable-api.md +++ b/docs/topics/browsable-api.md @@ -81,22 +81,43 @@ For more specific CSS tweaks than simply overriding the default bootstrap theme ### Third party packages for customization -You can use a third party package for customization, rather than doing it by yourself. Here is 2 packages for customizing the API: +You can use a third party package for customization, rather than doing it by yourself. Here is 3 packages for customizing the API: -* [rest-framework-redesign][rest-framework-redesign] - A package for customizing the API using Bootstrap 5. Modern and sleek design, it comes with the support for dark mode. -* [rest-framework-material][rest-framework-material] - Material design for Django REST Framework. +* [drf-restwind][drf-restwind] - a modern re-imagining of the Django REST Framework utilizes TailwindCSS and DaisyUI to provide flexible and customizable UI solutions with minimal coding effort. +* [drf-redesign][drf-redesign] - A package for customizing the API using Bootstrap 5. Modern and sleek design, it comes with the support for dark mode. +* [drf-material][drf-material] - Material design for Django REST Framework. --- -![Django REST Framework Redesign][rfr] +![API Root][drf-rw-api-root] -*Screenshot of the rest-framework-redesign* +![List View][drf-rw-list-view] + +![Detail View][drf-rw-detail-view] + +*Screenshots of the drf-restwind* + +--- + +--- + +![API Root][drf-r-api-root] + +![List View][drf-r-list-view] + +![Detail View][drf-r-detail-view] + +*Screenshot of the drf-redesign* --- -![Django REST Framework Material][rfm] +![API Root][drf-m-api-root] + +![List View][drf-m-api-root] + +![Detail View][drf-m-api-root] -*Screenshot of the rest-framework-material* +*Screenshot of the drf-material* --- @@ -197,7 +218,15 @@ There are [a variety of packages for autocomplete widgets][autocomplete-packages [bcomponentsnav]: https://getbootstrap.com/2.3.2/components.html#navbar [autocomplete-packages]: https://www.djangopackages.com/grids/g/auto-complete/ [django-autocomplete-light]: https://github.com/yourlabs/django-autocomplete-light -[rest-framework-redesign]: https://github.com/youzarsiph/rest-framework-redesign -[rest-framework-material]: https://github.com/youzarsiph/rest-framework-material -[rfr]: ../img/rfr.png -[rfm]: ../img/rfm.png +[drf-restwind]: https://github.com/youzarsiph/drf-restwind +[drf-rw-api-root]: ../img/drf-rw-api-root.png +[drf-rw-list-view]: ../img/drf-rw-list-view.png +[drf-rw-detail-view]: ../img/drf-rw-detail-view.png +[drf-redesign]: https://github.com/youzarsiph/drf-redesign +[drf-r-api-root]: ../img/drf-r-api-root.png +[drf-r-list-view]: ../img/drf-r-list-view.png +[drf-r-detail-view]: ../img/drf-r-detail-view.png +[drf-material]: https://github.com/youzarsiph/drf-material +[drf-m-api-root]: ../img/drf-m-api-root.png +[drf-m-list-view]: ../img/drf-m-list-view.png +[drf-m-detail-view]: ../img/drf-m-detail-view.png From ea1da761963fdaf1e3d40bf399a1d5e144d89bb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Clgen=20Sar=C4=B1kavak?= Date: Wed, 9 Apr 2025 09:24:18 +0300 Subject: [PATCH 449/450] Add pyupgrade to pre-commit hooks (#9682) --- .pre-commit-config.yaml | 6 ++++++ .../management/commands/drf_create_token.py | 2 +- rest_framework/fields.py | 6 +++--- rest_framework/negotiation.py | 2 +- rest_framework/permissions.py | 2 +- rest_framework/response.py | 2 +- rest_framework/schemas/coreapi.py | 2 +- rest_framework/schemas/openapi.py | 4 ++-- rest_framework/utils/field_mapping.py | 2 +- tests/schemas/test_coreapi.py | 2 +- tests/schemas/test_managementcommand.py | 4 ++-- tests/test_exceptions.py | 4 ++-- tests/test_fields.py | 10 +++++----- tests/test_generics.py | 2 +- tests/test_pagination.py | 10 +++++----- tests/test_permissions.py | 4 ++-- tests/test_relations_pk.py | 2 +- tests/test_renderers.py | 4 ++-- tests/test_response.py | 2 +- tests/test_routers.py | 12 ++++++------ tests/test_validation.py | 4 ++-- 21 files changed, 47 insertions(+), 41 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8939dd3db6..27bbcb7634 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -31,3 +31,9 @@ repos: hooks: - id: codespell exclude: locale|kickstarter-announcement.md|coreapi-0.1.1.js + +- repo: https://github.com/asottile/pyupgrade + rev: v3.19.1 + hooks: + - id: pyupgrade + args: ["--py39-plus", "--keep-percent-format"] diff --git a/rest_framework/authtoken/management/commands/drf_create_token.py b/rest_framework/authtoken/management/commands/drf_create_token.py index 3d65392442..3f4521fe42 100644 --- a/rest_framework/authtoken/management/commands/drf_create_token.py +++ b/rest_framework/authtoken/management/commands/drf_create_token.py @@ -42,4 +42,4 @@ def handle(self, *args, **options): username) ) self.stdout.write( - 'Generated token {} for user {}'.format(token.key, username)) + f'Generated token {token.key} for user {username}') diff --git a/rest_framework/fields.py b/rest_framework/fields.py index 6989edc0a8..89c0a714c6 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -111,7 +111,7 @@ def get_attribute(instance, attrs): # If we raised an Attribute or KeyError here it'd get treated # as an omitted field in `Field.get_attribute()`. Instead we # raise a ValueError to ensure the exception is not masked. - raise ValueError('Exception raised in callable attribute "{}"; original exception was: {}'.format(attr, exc)) + raise ValueError(f'Exception raised in callable attribute "{attr}"; original exception was: {exc}') return instance @@ -1103,7 +1103,7 @@ def to_representation(self, value): if self.localize: return localize_input(quantized) - return '{:f}'.format(quantized) + return f'{quantized:f}' def quantize(self, value): """ @@ -1861,7 +1861,7 @@ def __init__(self, method_name=None, **kwargs): def bind(self, field_name, parent): # The method name defaults to `get_{field_name}`. if self.method_name is None: - self.method_name = 'get_{field_name}'.format(field_name=field_name) + self.method_name = f'get_{field_name}' super().bind(field_name, parent) diff --git a/rest_framework/negotiation.py b/rest_framework/negotiation.py index b4bbfa1f54..23012f71fd 100644 --- a/rest_framework/negotiation.py +++ b/rest_framework/negotiation.py @@ -65,7 +65,7 @@ def select_renderer(self, request, renderers, format_suffix=None): full_media_type = ';'.join( (renderer.media_type,) + tuple( - '{}={}'.format(key, value) + f'{key}={value}' for key, value in media_type_wrapper.params.items() ) ) diff --git a/rest_framework/permissions.py b/rest_framework/permissions.py index 7c15eca589..768f6cb957 100644 --- a/rest_framework/permissions.py +++ b/rest_framework/permissions.py @@ -225,7 +225,7 @@ def _queryset(self, view): if hasattr(view, 'get_queryset'): queryset = view.get_queryset() assert queryset is not None, ( - '{}.get_queryset() returned None'.format(view.__class__.__name__) + f'{view.__class__.__name__}.get_queryset() returned None' ) return queryset return view.queryset diff --git a/rest_framework/response.py b/rest_framework/response.py index 6e756544c6..507ea595f6 100644 --- a/rest_framework/response.py +++ b/rest_framework/response.py @@ -66,7 +66,7 @@ def rendered_content(self): content_type = self.content_type if content_type is None and charset is not None: - content_type = "{}; charset={}".format(media_type, charset) + content_type = f"{media_type}; charset={charset}" elif content_type is None: content_type = media_type self['Content-Type'] = content_type diff --git a/rest_framework/schemas/coreapi.py b/rest_framework/schemas/coreapi.py index 582aba196e..657178304a 100644 --- a/rest_framework/schemas/coreapi.py +++ b/rest_framework/schemas/coreapi.py @@ -68,7 +68,7 @@ def get_available_key(self, preferred_key): current_val = self.methods_counter[preferred_key] self.methods_counter[preferred_key] += 1 - key = '{}_{}'.format(preferred_key, current_val) + key = f'{preferred_key}_{current_val}' if key not in self: return key diff --git a/rest_framework/schemas/openapi.py b/rest_framework/schemas/openapi.py index 019eeb33e1..eb7dc909d9 100644 --- a/rest_framework/schemas/openapi.py +++ b/rest_framework/schemas/openapi.py @@ -82,7 +82,7 @@ def get_schema(self, request=None, public=False): continue if components_schemas[k] == components[k]: continue - warnings.warn('Schema component "{}" has been overridden with a different value.'.format(k)) + warnings.warn(f'Schema component "{k}" has been overridden with a different value.') components_schemas.update(components) @@ -644,7 +644,7 @@ def get_response_serializer(self, path, method): return self.get_serializer(path, method) def get_reference(self, serializer): - return {'$ref': '#/components/schemas/{}'.format(self.get_component_name(serializer))} + return {'$ref': f'#/components/schemas/{self.get_component_name(serializer)}'} def get_request_body(self, path, method): if method not in ('PUT', 'PATCH', 'POST'): diff --git a/rest_framework/utils/field_mapping.py b/rest_framework/utils/field_mapping.py index fc63f96fe0..15c4b91055 100644 --- a/rest_framework/utils/field_mapping.py +++ b/rest_framework/utils/field_mapping.py @@ -66,7 +66,7 @@ def get_unique_validators(field_name, model_field): """ Returns a list of UniqueValidators that should be applied to the field. """ - field_set = set([field_name]) + field_set = {field_name} conditions = { c.condition for c in model_field.model._meta.constraints diff --git a/tests/schemas/test_coreapi.py b/tests/schemas/test_coreapi.py index 171f086469..a97b02fe1f 100644 --- a/tests/schemas/test_coreapi.py +++ b/tests/schemas/test_coreapi.py @@ -1234,7 +1234,7 @@ def _verify_cbv_links(self, loc, url, methods=None, suffixes=None): for method, suffix in zip(methods, suffixes): if suffix is not None: - key = '{}_{}'.format(method, suffix) + key = f'{method}_{suffix}' else: key = method assert loc[key].url == url diff --git a/tests/schemas/test_managementcommand.py b/tests/schemas/test_managementcommand.py index c0713f43ce..fa1b75fbf1 100644 --- a/tests/schemas/test_managementcommand.py +++ b/tests/schemas/test_managementcommand.py @@ -70,7 +70,7 @@ def test_renders_openapi_json_schema(self): def test_accepts_custom_schema_generator(self): call_command('generateschema', - '--generator_class={}.{}'.format(__name__, CustomSchemaGenerator.__name__), + f'--generator_class={__name__}.{CustomSchemaGenerator.__name__}', stdout=self.out) out_json = yaml.safe_load(self.out.getvalue()) assert out_json == CustomSchemaGenerator.SCHEMA @@ -78,7 +78,7 @@ def test_accepts_custom_schema_generator(self): def test_writes_schema_to_file_on_parameter(self): fd, path = tempfile.mkstemp() try: - call_command('generateschema', '--file={}'.format(path), stdout=self.out) + call_command('generateschema', f'--file={path}', stdout=self.out) # nothing on stdout assert not self.out.getvalue() diff --git a/tests/test_exceptions.py b/tests/test_exceptions.py index 9516bfec97..67be5cfbd9 100644 --- a/tests/test_exceptions.py +++ b/tests/test_exceptions.py @@ -43,12 +43,12 @@ def test_get_full_details_with_throttling(self): exception = Throttled(wait=2) assert exception.get_full_details() == { - 'message': 'Request was throttled. Expected available in {} seconds.'.format(2), + 'message': f'Request was throttled. Expected available in {2} seconds.', 'code': 'throttled'} exception = Throttled(wait=2, detail='Slow down!') assert exception.get_full_details() == { - 'message': 'Slow down! Expected available in {} seconds.'.format(2), + 'message': f'Slow down! Expected available in {2} seconds.', 'code': 'throttled'} diff --git a/tests/test_fields.py b/tests/test_fields.py index 7c55dfcc5d..d574b07ebc 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -662,7 +662,7 @@ def test_valid_inputs(self, *args): """ for input_value, expected_output in get_items(self.valid_inputs): assert self.field.run_validation(input_value) == expected_output, \ - 'input value: {}'.format(repr(input_value)) + f'input value: {repr(input_value)}' def test_invalid_inputs(self, *args): """ @@ -672,12 +672,12 @@ def test_invalid_inputs(self, *args): with pytest.raises(serializers.ValidationError) as exc_info: self.field.run_validation(input_value) assert exc_info.value.detail == expected_failure, \ - 'input value: {}'.format(repr(input_value)) + f'input value: {repr(input_value)}' def test_outputs(self, *args): for output_value, expected_output in get_items(self.outputs): assert self.field.to_representation(output_value) == expected_output, \ - 'output value: {}'.format(repr(output_value)) + f'output value: {repr(output_value)}' # Boolean types... @@ -1422,7 +1422,7 @@ class TestDateField(FieldValues): outputs = { datetime.date(2001, 1, 1): '2001-01-01', '2001-01-01': '2001-01-01', - str('2016-01-10'): '2016-01-10', + '2016-01-10': '2016-01-10', None: None, '': None, } @@ -1489,7 +1489,7 @@ class TestDateTimeField(FieldValues): datetime.datetime(2001, 1, 1, 13, 00): '2001-01-01T13:00:00Z', datetime.datetime(2001, 1, 1, 13, 00, tzinfo=utc): '2001-01-01T13:00:00Z', '2001-01-01T00:00:00': '2001-01-01T00:00:00', - str('2016-01-10T00:00:00'): '2016-01-10T00:00:00', + '2016-01-10T00:00:00': '2016-01-10T00:00:00', None: None, '': None, } diff --git a/tests/test_generics.py b/tests/test_generics.py index 8748e8f170..25b96fcbb2 100644 --- a/tests/test_generics.py +++ b/tests/test_generics.py @@ -289,7 +289,7 @@ def test_put_to_filtered_out_instance(self): """ data = {'text': 'foo'} filtered_out_pk = BasicModel.objects.filter(text='filtered out')[0].pk - request = factory.put('/{}'.format(filtered_out_pk), data, format='json') + request = factory.put(f'/{filtered_out_pk}', data, format='json') response = self.view(request, pk=filtered_out_pk).render() assert response.status_code == status.HTTP_404_NOT_FOUND diff --git a/tests/test_pagination.py b/tests/test_pagination.py index d8feae52bd..d8f66e95bc 100644 --- a/tests/test_pagination.py +++ b/tests/test_pagination.py @@ -536,7 +536,7 @@ def test_invalid_limit(self): content = self.get_paginated_content(queryset) next_limit = self.pagination.default_limit next_offset = self.pagination.default_limit - next_url = 'http://testserver/?limit={}&offset={}'.format(next_limit, next_offset) + next_url = f'http://testserver/?limit={next_limit}&offset={next_offset}' assert queryset == [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] assert content.get('next') == next_url @@ -549,7 +549,7 @@ def test_zero_limit(self): content = self.get_paginated_content(queryset) next_limit = self.pagination.default_limit next_offset = self.pagination.default_limit - next_url = 'http://testserver/?limit={}&offset={}'.format(next_limit, next_offset) + next_url = f'http://testserver/?limit={next_limit}&offset={next_offset}' assert queryset == [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] assert content.get('next') == next_url @@ -565,9 +565,9 @@ def test_max_limit(self): max_limit = self.pagination.max_limit next_offset = offset + max_limit prev_offset = offset - max_limit - base_url = 'http://testserver/?limit={}'.format(max_limit) - next_url = base_url + '&offset={}'.format(next_offset) - prev_url = base_url + '&offset={}'.format(prev_offset) + base_url = f'http://testserver/?limit={max_limit}' + next_url = base_url + f'&offset={next_offset}' + prev_url = base_url + f'&offset={prev_offset}' assert queryset == list(range(51, 66)) assert content.get('next') == next_url assert content.get('previous') == prev_url diff --git a/tests/test_permissions.py b/tests/test_permissions.py index 2c908ba3fe..93fe7b9410 100644 --- a/tests/test_permissions.py +++ b/tests/test_permissions.py @@ -353,7 +353,7 @@ def setUp(self): 'delete': f('delete', model_name) } for perm in perms.values(): - perm = '{}.{}'.format(app_label, perm) + perm = f'{app_label}.{perm}' assign_perm(perm, everyone) everyone.user_set.add(*users.values()) @@ -718,7 +718,7 @@ def has_object_permission(self, request, view, obj): assert hasperm is False def test_operand_holder_is_hashable(self): - assert hash((permissions.IsAuthenticated & permissions.IsAdminUser)) + assert hash(permissions.IsAuthenticated & permissions.IsAdminUser) def test_operand_holder_hash_same_for_same_operands_and_operator(self): first_operand_holder = ( diff --git a/tests/test_relations_pk.py b/tests/test_relations_pk.py index 7a4878a2bf..14513f2bb2 100644 --- a/tests/test_relations_pk.py +++ b/tests/test_relations_pk.py @@ -586,7 +586,7 @@ def test_one_to_one_when_primary_key(self): source = OneToOnePKSourceSerializer(data={'name': 'source-2', 'target': target_pk}) # Then: The source is valid with the serializer if not source.is_valid(): - self.fail("Expected OneToOnePKTargetSerializer to be valid but had errors: {}".format(source.errors)) + self.fail(f"Expected OneToOnePKTargetSerializer to be valid but had errors: {source.errors}") # Then: Saving the serializer creates a new object new_source = source.save() # Then: The new object has the same pk as the target object diff --git a/tests/test_renderers.py b/tests/test_renderers.py index d04ff300ff..1b396575d4 100644 --- a/tests/test_renderers.py +++ b/tests/test_renderers.py @@ -408,7 +408,7 @@ def test_u2028_u2029(self): obj = {'should_escape': '\u2028\u2029'} renderer = JSONRenderer() content = renderer.render(obj, 'application/json') - self.assertEqual(content, '{"should_escape":"\\u2028\\u2029"}'.encode()) + self.assertEqual(content, b'{"should_escape":"\\u2028\\u2029"}') class AsciiJSONRendererTests(TestCase): @@ -421,7 +421,7 @@ class AsciiJSONRenderer(JSONRenderer): obj = {'countries': ['United Kingdom', 'France', 'EspaƱa']} renderer = AsciiJSONRenderer() content = renderer.render(obj, 'application/json') - self.assertEqual(content, '{"countries":["United Kingdom","France","Espa\\u00f1a"]}'.encode()) + self.assertEqual(content, b'{"countries":["United Kingdom","France","Espa\\u00f1a"]}') # Tests for caching issue, #346 diff --git a/tests/test_response.py b/tests/test_response.py index a5eeae8825..83f8a67172 100644 --- a/tests/test_response.py +++ b/tests/test_response.py @@ -267,7 +267,7 @@ def test_if_there_is_charset_specified_on_renderer_it_gets_appended(self): """ headers = {"HTTP_ACCEPT": RendererC.media_type} resp = self.client.get('/', **headers) - expected = "{}; charset={}".format(RendererC.media_type, RendererC.charset) + expected = f"{RendererC.media_type}; charset={RendererC.charset}" self.assertEqual(expected, resp['Content-Type']) def test_content_type_set_explicitly_on_response(self): diff --git a/tests/test_routers.py b/tests/test_routers.py index 887f601d54..91a6189d57 100644 --- a/tests/test_routers.py +++ b/tests/test_routers.py @@ -447,9 +447,9 @@ def _test_list_and_detail_route_decorators(self, viewset): url_path = endpoint.url_path if method_name.startswith('list_'): - assert route.url == '^{{prefix}}/{0}{{trailing_slash}}$'.format(url_path) + assert route.url == f'^{{prefix}}/{url_path}{{trailing_slash}}$' else: - assert route.url == '^{{prefix}}/{{lookup}}/{0}{{trailing_slash}}$'.format(url_path) + assert route.url == f'^{{prefix}}/{{lookup}}/{url_path}{{trailing_slash}}$' # check method to function mapping if method_name.endswith('_post'): method_map = 'post' @@ -488,14 +488,14 @@ class TestRegexUrlPath(URLPatternsTestCase, TestCase): def test_regex_url_path_list(self): kwarg = '1234' - response = self.client.get('/regex/list/{}/'.format(kwarg)) + response = self.client.get(f'/regex/list/{kwarg}/') assert response.status_code == 200 assert json.loads(response.content.decode()) == {'kwarg': kwarg} def test_regex_url_path_detail(self): pk = '1' kwarg = '1234' - response = self.client.get('/regex/{}/detail/{}/'.format(pk, kwarg)) + response = self.client.get(f'/regex/{pk}/detail/{kwarg}/') assert response.status_code == 200 assert json.loads(response.content.decode()) == {'pk': pk, 'kwarg': kwarg} @@ -557,14 +557,14 @@ def test_delete(self): def test_list_extra_action(self): kwarg = 1234 - response = self.client.get('/path/list/{}/'.format(kwarg)) + response = self.client.get(f'/path/list/{kwarg}/') assert response.status_code == 200 assert json.loads(response.content.decode()) == {'kwarg': kwarg} def test_detail_extra_action(self): pk = '1' kwarg = 1234 - response = self.client.get('/path/{}/detail/{}/'.format(pk, kwarg)) + response = self.client.get(f'/path/{pk}/detail/{kwarg}/') assert response.status_code == 200 assert json.loads(response.content.decode()) == {'pk': pk, 'kwarg': kwarg} diff --git a/tests/test_validation.py b/tests/test_validation.py index 6e00b48c2e..a2cdd1dcb0 100644 --- a/tests/test_validation.py +++ b/tests/test_validation.py @@ -148,14 +148,14 @@ def test_max_value_validation_serializer_fails(self): def test_max_value_validation_success(self): obj = ValidationMaxValueValidatorModel.objects.create(number_value=100) - request = factory.patch('/{}'.format(obj.pk), {'number_value': 98}, format='json') + request = factory.patch(f'/{obj.pk}', {'number_value': 98}, format='json') view = UpdateMaxValueValidationModel().as_view() response = view(request, pk=obj.pk).render() assert response.status_code == status.HTTP_200_OK def test_max_value_validation_fail(self): obj = ValidationMaxValueValidatorModel.objects.create(number_value=100) - request = factory.patch('/{}'.format(obj.pk), {'number_value': 101}, format='json') + request = factory.patch(f'/{obj.pk}', {'number_value': 101}, format='json') view = UpdateMaxValueValidationModel().as_view() response = view(request, pk=obj.pk).render() assert response.content == b'{"number_value":["Ensure this value is less than or equal to 100."]}' From 07d3e1ec8f7cab7d9df8ee5b5551caddf5284325 Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Thu, 10 Apr 2025 12:05:06 +0200 Subject: [PATCH 450/450] Updated funding page to represent current scope. (#9686) --- docs/community/funding.md | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/docs/community/funding.md b/docs/community/funding.md index 10e09bf713..7bca4bae4c 100644 --- a/docs/community/funding.md +++ b/docs/community/funding.md @@ -114,7 +114,7 @@ If you use REST framework commercially we strongly encourage you to invest in it Signing up for a paid plan will: * Directly contribute to faster releases, more features, and higher quality software. -* Allow more time to be invested in documentation, issue triage, and community support. +* Allow more time to be invested in keeping the package up to date. * Safeguard the future development of REST framework. REST framework continues to be open-source and permissively licensed, but we firmly believe it is in the commercial best-interest for users of the project to invest in its ongoing development. @@ -134,18 +134,6 @@ REST framework continues to be open-source and permissively licensed, but we fir --- -## What future funding will enable - -* Realtime API support, using WebSockets. This will consist of documentation and support for using REST framework together with Django Channels, plus integrating WebSocket support into the client libraries. -* Better authentication defaults, possibly bringing JWT & CORS support into the core package. -* Securing the community & operations manager position long-term. -* Opening up and securing a part-time position to focus on ticket triage and resolution. -* Paying for development time on building API client libraries in a range of programming languages. These would be integrated directly into the upcoming API documentation. - -Sign up for a paid plan today, and help ensure that REST framework becomes a sustainable, full-time funded project. - ---- - ## What our sponsors and users say > As a developer, Django REST framework feels like an obvious and natural extension to all the great things that make up Django and it's community. Getting started is easy while providing simple abstractions which makes it flexible and customizable. Contributing and supporting Django REST framework helps ensure its future and one way or another it also helps Django, and the Python ecosystem. @@ -165,6 +153,8 @@ DRF is one of the core reasons why Django is top choice among web frameworks tod > > — Andrew Conti, Django REST framework user +Sign up for a paid plan today, and help ensure that REST framework becomes a sustainable, full-time funded project. + --- ## Individual plan