pax_global_header00006660000000000000000000000064152500060370014510gustar00rootroot0000000000000052 comment=e34715d1e9e2bd6f5306662e8ad495eaf0c1325a narwhals-2.26.0/000077500000000000000000000000001525000603700134165ustar00rootroot00000000000000narwhals-2.26.0/.github/000077500000000000000000000000001525000603700147565ustar00rootroot00000000000000narwhals-2.26.0/.github/CODE_OF_CONDUCT.md000066400000000000000000000121511525000603700175550ustar00rootroot00000000000000# Contributor Covenant Code of Conduct ## Our Pledge We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socioeconomic status, nationality, personal appearance, race, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. ## Our Standards Examples of behavior that contributes to a positive environment for our community include: * Demonstrating empathy and kindness toward other people * Being respectful of differing opinions, viewpoints, and experiences * Giving and gracefully accepting constructive feedback * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience * Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include: * The use of sexualized language or imagery, and sexual attention or advances of any kind * Trolling, insulting or derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or email address, without their explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Enforcement Responsibilities Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. ## Scope This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at hello_narwhals@proton.me. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident. ## Enforcement Guidelines Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: ### 1. Correction **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. ### 2. Warning **Community Impact**: A violation through a single incident or series of actions. **Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. ### 3. Temporary Ban **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. **Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. ### 4. Permanent Ban **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. **Consequence**: A permanent ban from any sort of public interaction within the community. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity). [homepage]: https://www.contributor-covenant.org For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations. narwhals-2.26.0/.github/ISSUE_TEMPLATE/000077500000000000000000000000001525000603700171415ustar00rootroot00000000000000narwhals-2.26.0/.github/ISSUE_TEMPLATE/bug_report.yml000066400000000000000000000032031525000603700220320ustar00rootroot00000000000000name: Bug report description: Report to help us reproduce the bug title: "[Bug]: " body: - type: markdown attributes: value: > ## Thanks for taking the time to fill out this report - type: markdown attributes: value: > ### Before submitting a bug, please make sure it has not been reported in the [list of issues](https://github.com/narwhals-dev/narwhals/issues). - type: textarea attributes: label: Describe the bug description: > A clear description of the bug. validations: required: true - type: textarea attributes: label: Steps or code to reproduce the bug description: | Please add a minimal code example to reproduce the bug. validations: required: true - type: textarea attributes: label: Expected results description: > Please paste or describe the expected results. placeholder: > Example: No error is thrown. validations: required: true - type: textarea attributes: label: Actual results description: | Please paste or describe the results you observe instead of the expected results. validations: required: true - type: textarea attributes: label: Please run narwhals.show_versions() and enter the output below. render: shell description: | You could do: ```python import narwhals narwhals.show_versions() ``` validations: required: true - type: textarea attributes: label: Relevant log output description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. render: shell narwhals-2.26.0/.github/ISSUE_TEMPLATE/config.yml000066400000000000000000000004641525000603700211350ustar00rootroot00000000000000contact_links: - name: Discord server url: https://discord.gg/V3PqtB4VA4 about: | Developers and users can be found on the Discord server. Please note that GitHub Discussions should be used in most cases instead. - name: Blank issue url: https://github.com/narwhals-dev/narwhals/issues/new narwhals-2.26.0/.github/ISSUE_TEMPLATE/doc_issue.yml000066400000000000000000000016131525000603700216420ustar00rootroot00000000000000name: Documentation improvement description: Report to improve the docs. You could also directly open a PR with your suggestions. title: "[Doc]: " body: - type: markdown attributes: value: > ## Thanks for taking the time to fill out this form - type: dropdown id: TYPE attributes: label: What type of report is this? options: - 'Correction' - 'Improvement' validations: required: true - type: textarea attributes: label: Please describe the issue. description: > Tell us if something is unclear or incorrect, and where. validations: required: true - type: textarea attributes: label: If you have a suggestion on how it should be, add it below. description: > How can we improve it - type: markdown attributes: value: > ### If you'd be interested in opening a pull request to fix this, please let us know! narwhals-2.26.0/.github/ISSUE_TEMPLATE/feature_request.yml000066400000000000000000000031041525000603700230650ustar00rootroot00000000000000name: Feature request description: Form to request a new feature title: "[Enh]: " body: - type: markdown attributes: value: > ## Thanks for helping us improve Narwhals! - type: markdown attributes: value: > ### Before submitting a request, please check if it has already been discussed in the [list of issues](https://github.com/narwhals-dev/narwhals/issues?q=is%3Aissue+is%3Aclosed%2Bopen+). - type: textarea attributes: label: > We would like to learn about your use case. For example, if this feature is needed to adopt Narwhals in an open source project, could you please enter the link to it below? description: > Link to the project where this will be used if possible. - type: textarea attributes: label: Please describe the purpose of the new feature or describe the problem to solve. description: > A clear description of the objective. validations: required: true - type: textarea attributes: label: Suggest a solution if possible. description: > Please suggest a solution if you can. validations: required: false - type: textarea attributes: label: If you have tried alternatives, please describe them below. description: > What you have tried if applicable. - type: textarea attributes: label: Additional information that may help us understand your needs. description: > Context or useful information - type: markdown attributes: value: > ### If you'd be interested in opening a pull request to fix this, please let us know! narwhals-2.26.0/.github/pull_request_template.md000066400000000000000000000026601525000603700217230ustar00rootroot00000000000000 # Description ## What type of PR is this? (check all applicable) - [ ] ๐Ÿ’พ Refactor - [ ] โœจ Feature - [ ] ๐Ÿ› Bug Fix - [ ] ๐Ÿ”ง Optimization - [ ] ๐Ÿ“ Documentation - [ ] โœ… Test - [ ] ๐Ÿณ Other ## Related issues - Related issue #\ - Closes #\ ## AI assistance - [ ] No AI tools were used for this PR. - [ ] AI tools were used. ## Checklist - [ ] Code follows style guide (ruff) - [ ] Tests added - [ ] Documented the changes - [ ] If this is your first PR to narwhals, attach a screenshot of `pytest` passing locally (not CI): ```bash PYTEST_ADDOPTS="--numprocesses=logical" \ make run-ci DEPS="--extra pandas --extra dask --group core-tests --group sklearn --group plugins" \ CMD="pytest tests --cov=src --cov=tests --runslow --constructors=pandas,pandas[nullable],pandas[pyarrow],pyarrow,polars[eager],polars[lazy],dask,duckdb,sqlframe" ``` narwhals-2.26.0/.github/release-drafter.yml000066400000000000000000000015231525000603700205470ustar00rootroot00000000000000exclude-labels: - ignore - release - dependencies name-template: 'Narwhals unreleased' version-template: unreleased change-template: '- $TITLE (#$NUMBER)' categories: - title: ๐Ÿ† Highlights labels: - highlight - title: ๐Ÿ’ฅ Breaking changes labels: - breaking - title: โš ๏ธ Deprecations labels: - deprecation - title: ๐Ÿš€ Performance improvements labels: - performance - title: โœจ Enhancements labels: - enhancement - title: ๐Ÿž Bug fixes labels: - fix - title: ๐Ÿ“– Documentation labels: - documentation - title: ๐Ÿ“ฆ Build system labels: - build - title: ๐Ÿ› ๏ธ Other improvements labels: - internal template: | ## Changes $CHANGES Thank you to all our contributors for making this release possible! $CONTRIBUTORS narwhals-2.26.0/.github/workflows/000077500000000000000000000000001525000603700170135ustar00rootroot00000000000000narwhals-2.26.0/.github/workflows/check_docs_build.yml000066400000000000000000000015711525000603700230060ustar00rootroot00000000000000name: Check Docs Build on: pull_request: workflow_call: permissions: contents: read env: PY_COLORS: 1 UV_LOCKED: 1 UV_NO_DEV: 1 UV_SYSTEM_PYTHON: 1 jobs: zensical-strict-build: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV - name: Check docs build run: make docs-build narwhals-2.26.0/.github/workflows/check_tpch_queries.yml000066400000000000000000000021511525000603700233650ustar00rootroot00000000000000name: Tests for TPCH Queries on: pull_request: paths: - "**.py" - .github/workflows/check_tpch_queries.yml - pyproject.toml - uv.lock env: PY_COLORS: 1 UV_LOCKED: 1 UV_NO_DEV: 1 permissions: contents: read jobs: validate-queries: strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: ${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: generate-data run: make run-ci DEPS="--extra dask --extra pandas --group core-tests" CMD="--module tpch.generate_data --debug" - name: tpch-tests run: make run-ci DEPS="--extra dask --extra pandas --group core-tests" CMD="pytest tpch/tests -s" narwhals-2.26.0/.github/workflows/codeql.yml000066400000000000000000000020341525000603700210040ustar00rootroot00000000000000name: CodeQL on: pull_request: schedule: - cron: '24 7 * * 3' permissions: contents: read jobs: analyze: name: Analyze runs-on: ubuntu-latest permissions: actions: read contents: read security-events: write strategy: fail-fast: false matrix: language: ["python"] # CodeQL supports [ $supported-codeql-languages ] # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support steps: - name: Checkout repository uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Initialize CodeQL uses: github/codeql-action/init@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9 with: languages: ${{ matrix.language }} - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9 with: category: "/language:${{ matrix.language }}" narwhals-2.26.0/.github/workflows/deploy-docs.yml000066400000000000000000000025661525000603700217710ustar00rootroot00000000000000name: Publish Docs on: push: branches: - main env: cache_id: "" UV_LOCKED: 1 UV_NO_DEV: 1 UV_SYSTEM_PYTHON: 1 permissions: contents: read jobs: deploy: permissions: contents: read pages: write id-token: write environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Configure Git Credentials run: | git config user.name github-actions[bot] git config user.email 41898282+github-actions[bot]@users.noreply.github.com - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.14" - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV - name: Build docs run: make docs-build - uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0 with: path: site - uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0 id: deployment narwhals-2.26.0/.github/workflows/downstream_tests.yml000066400000000000000000000647021525000603700231540ustar00rootroot00000000000000name: Test Downstream Libraries - Fast on: pull_request: paths: - src/** - .github/workflows/downstream_tests.yml - pyproject.toml - uv.lock workflow_call: inputs: skip-fairlearn: type: boolean default: false env: PY_COLORS: 1 permissions: contents: read jobs: altair: if: github.head_ref != 'bump-version' env: UV_SYSTEM_PYTHON: 1 strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: altair-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: clone-altair run: | git clone https://github.com/vega/altair.git cd altair git log - name: install-basics run: uv pip install --upgrade tox virtualenv setuptools - name: install-altair-dev run: | cd altair uv sync --all-extras uv pip install -e . - name: install-narwhals-dev run: | uv pip uninstall narwhals uv pip install -e . - name: show-deps run: uv pip freeze - name: Run pytest run: | cd altair uv run --no-sync --all-extras pytest tests - name: Run mypy run: | cd altair uv run --no-sync --all-extras mypy altair tests marimo: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] dependencies: ["core,optional"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: marimo-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: clone-marimo run: | git clone https://github.com/marimo-team/marimo.git --depth=1 cd marimo git log - name: install-narwhals-dev run: | cd marimo uv add ../ --editable - name: show-deps run: | cd marimo uv tree --group test-optional - name: Create assets directory, copy over index.html continue-on-error: true run: | mkdir -p marimo/marimo/_static/assets cp marimo/frontend/index.html marimo/marimo/_static/index.html cp marimo/frontend/public/favicon.ico marimo/marimo/_static/favicon.ico - name: Run tests with full dependencies if: ${{ matrix.dependencies == 'core,optional' }} run: | cd marimo uv run --python ${{ matrix.python-version }} python -c "import narwhals; print(narwhals.__file__)" scripts/test-narwhals.sh --python=${{ matrix.python-version }} timeout-minutes: 15 scikit-lego: if: github.head_ref != 'bump-version' env: UV_SYSTEM_PYTHON: 1 strategy: matrix: python-version: ["3.11"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: sklego-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: clone-scikit-lego run: git clone https://github.com/koaning/scikit-lego.git --depth 1 - name: install-basics run: uv pip install --upgrade tox virtualenv setuptools - name: install-scikit-lego-dev run: | cd scikit-lego # Temporary pin to get CI green https://github.com/koaning/scikit-lego/issues/818. uv pip install "pandas<3" uv pip install -e ".[test]" - name: install-narwhals-dev run: | uv pip uninstall narwhals uv pip install -e . - name: show-deps run: uv pip freeze - name: Run pytest run: | cd scikit-lego pytest --numprocesses=logical --disable-warnings --cov=sklego -m "not cvxpy and not formulaic and not umap" shiny: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: shiny-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: clone-shiny run: | git clone https://github.com/posit-dev/py-shiny.git cd py-shiny git log - name: Narwhals integration setup # Deliberately unpinned: the `clone-shiny` step above already checks out py-shiny at # `main` and the steps below run its test suite, so hash-pinning these composite # actions adds no security benefit and only risks skew against the cloned revision. uses: posit-dev/py-shiny/.github/py-shiny/narwhals-setup@main # zizmor: ignore[unpinned-uses] with: shiny-dir: py-shiny - name: install-narwhals-dev env: UV_SYSTEM_PYTHON: "1" run: | cd py-shiny uv pip uninstall narwhals uv pip install -e ./.. - name: show-deps env: UV_SYSTEM_PYTHON: "1" run: | cd py-shiny uv pip freeze - name: Narwhals integration test uses: posit-dev/py-shiny/.github/py-shiny/narwhals-test@main # zizmor: ignore[unpinned-uses] with: shiny-dir: py-shiny tea-tasting: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: clone-tea-tasting run: | git clone https://github.com/e10v/tea-tasting.git --depth=1 cd tea-tasting git log - name: install-uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: true cache-suffix: tea-tasting-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" python-version: ${{ matrix.python-version }} - name: install-tea-tasting-test run: | cd tea-tasting uv sync --group test - name: install-narwhals-dev run: | cd tea-tasting uv pip uninstall narwhals uv pip install -e ./.. - name: show-deps run: | cd tea-tasting uv pip freeze - name: run-pytest run: | cd tea-tasting # empty pytest.ini to avoid pytest using narwhals configs touch pytest.ini uv run --no-sync pytest tests tubular: if: github.head_ref != 'bump-version' env: UV_SYSTEM_PYTHON: 1 strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: tubular-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: clone-tubular run: | git clone https://github.com/lvgig/tubular --depth=1 cd tubular git log - name: install-basics run: uv pip install --upgrade tox virtualenv setuptools pytest-env - name: install-tubular-dev run: | cd tubular uv pip install -e ".[dev]" - name: install-narwhals-dev run: | uv pip uninstall narwhals uv pip install -e . - name: show-deps run: uv pip freeze - name: Run pytest run: | cd tubular pytest tests --config-file=pyproject.toml plotly: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: plotly-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: clone-plotly run: | git clone https://github.com/plotly/plotly.py --depth=1 cd plotly.py git log - name: install-deps run: | cd plotly.py uv venv -p ${{ matrix.python-version }} uv sync --extra dev_optional - name: install-narwhals-dev run: | cd plotly.py . .venv/bin/activate uv pip uninstall narwhals uv pip install -e ./.. - name: show-deps run: | cd plotly.py . .venv/bin/activate uv pip freeze - name: Run pytest on plotly express run: | cd plotly.py . .venv/bin/activate pytest tests/test_optional/test_px hierarchicalforecast: if: github.head_ref != 'bump-version' env: UV_SYSTEM_PYTHON: 1 strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: hierarchicalforecast-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: clone-hierarchicalforecast run: | git clone https://github.com/Nixtla/hierarchicalforecast --depth=1 --recurse-submodules --shallow-submodules cd hierarchicalforecast git log - name: install-basics run: uv pip install --upgrade tox virtualenv setuptools - name: install-deps run: | cd hierarchicalforecast uv pip install datasetsforecast "statsforecast>=1.0.0" scipy "polars[numpy]<=1.32.0" pytest pytest-benchmark pytest-cov uv pip install . - name: install-narwhals-dev run: | uv pip uninstall narwhals uv pip install -e . - name: show-deps run: uv pip freeze - name: Run tests run: | cd hierarchicalforecast pytest tests --no-cov --import-mode=importlib formulaic: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: formulaic-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: clone-formulaic run: | git clone https://github.com/matthewwardrop/formulaic.git --depth=1 cd formulaic git log - name: create-hatch-env run: | cd formulaic uv pip install hatch hatch-vcs "click!=8.3.0" --system - name: install-formulaic-dev run: | cd formulaic # Temporary pin until it's addressed upstream. hatch run uv pip install "pandas<3" hatch run uv pip install -e ".[arrow,calculus]" - name: install-narwhals-dev run: | cd formulaic hatch run uv pip uninstall narwhals hatch run uv pip install -e ./.. - name: show-deps run: hatch run uv pip freeze - name: run test run: | cd formulaic hatch run tests --config-file=pyproject.toml pointblank: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: pointblank-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: clone-pointblank run: | git clone https://github.com/posit-dev/pointblank.git --depth=1 cd pointblank git log - name: install-basics run: uv pip install --upgrade tox virtualenv setuptools --system - name: install-deps run: | cd pointblank uv venv -p ${{ matrix.python-version }} . .venv/bin/activate uv pip install . --group dev uv pip install pytest pytest-cov pytest-snapshot pandas polars "ibis-framework[duckdb,mysql,postgres,sqlite]>=9.5.0" chatlas shiny # Temporary pin to get CI green: sqlglot 30.18.0 refactored `DROP TABLE` # to use a `tables` argument instead of `this` (tobymao/sqlglot#8229), # which breaks ibis's in-memory table creation (it still builds # `sge.Drop(this=...)`), causing "syntax error at end of input" from # duckdb/sqlite in pointblank's test fixtures. uv pip install "sqlglot<30.18.0" - name: install-narwhals-dev run: | cd pointblank . .venv/bin/activate uv pip uninstall narwhals uv pip install -e . - name: show-deps run: | cd pointblank . .venv/bin/activate uv pip freeze - name: Run tests run: | cd pointblank . .venv/bin/activate # make sure that we use the .venv when running tests, so that # the local narwhals install is picked up sed -i 's/uv run pytest/uv run --no-sync pytest/g' Makefile make test validoopsie: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.10", "3.13"] # these are enough to cover all the tests os: ["ubuntu-latest"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: validoopsie-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: clone-validoopsie run: | git clone https://github.com/akmalsoliev/Validoopsie.git --depth=1 validoopsie cd validoopsie git log - name: install-validoopsie-dev run: | cd validoopsie uv sync --dev --upgrade - name: install-narwhals-dev run: | cd validoopsie uv remove narwhals uv add ./.. - name: show-deps run: | cd validoopsie which python uv pip freeze - name: Run tests run: | cd validoopsie # empty pytest.ini to avoid pytest using narwhals configs touch pytest.ini touch tests/__init__.py touch tests/utils/__init__.py # Keep `--no-sync` in case Narwhals is re-synced with PyPI version uv run --no-sync pytest tests timeout-minutes: 15 darts: if: github.head_ref != 'bump-version' env: UV_SYSTEM_PYTHON: 1 strategy: matrix: python-version: ["3.12"] os: ["ubuntu-latest"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: darts-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: clone-darts run: | git clone https://github.com/unit8co/darts.git --depth=1 cd darts git log - name: install-deps run: | cd darts uv build --wheel uv pip install dist/darts-*.whl \ --group dev \ llvmlite==0.46.0 \ numba==0.63.1 - name: install-narwhals-dev run: | uv pip uninstall narwhals # TODO(FBruzzesi): Install polars & pyarrow from darts requirements when they introduce it uv pip install -e ".[polars, pyarrow]" - name: show-deps run: uv pip freeze - name: Run tests run: | cd darts pytest darts/tests/test_timeseries.py pytest darts/tests/test_timeseries_multivariate.py pytest darts/tests/test_timeseries_static_covariates.py gt-extras: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: gt-extras-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: clone-gt-extras run: | git clone https://github.com/posit-dev/gt-extras.git --depth 1 cd gt-extras git log - name: install-gt-extras-dev run: | cd gt-extras uv sync --all-extras --dev - name: install-narwhals-dev run: | cd gt-extras uv pip uninstall narwhals uv pip install -e ./.. - name: show-deps run: | cd gt-extras uv pip freeze - name: run-pytest run: | cd gt-extras uv run --no-sync pytest fairlearn: if: github.head_ref != 'bump-version' && !inputs.skip-fairlearn env: UV_SYSTEM_PYTHON: 1 strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: fairlearn-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: clone-fairlearn run: | git clone https://github.com/fairlearn/fairlearn.git --depth 1 cd fairlearn git log - name: install-deps run: | cd fairlearn # TODO(FBruzzesi): Align with fairlearn team to get a minimal requirement to test narwhals features uv pip install -e . lightgbm matplotlib polars pyarrow pytest typing-extensions - name: install-narwhals-dev run: | cd fairlearn uv pip uninstall narwhals uv pip install -e ./.. uv pip freeze - name: run-pytest run: | cd fairlearn pytest test/unit -m "narwhals" lightgbm: if: github.head_ref != 'bump-version' env: UV_SYSTEM_PYTHON: 1 strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: lightgbm-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: clone-lightgbm run: | git clone https://github.com/lightgbm-org/LightGBM.git --recursive --depth=1 cd LightGBM git log - name: install-lightgbm run: | cd LightGBM uv pip install pip build sh ./build-python.sh install - name: install-deps run: | # scikit-learn's dev floor can briefly outpace the nightly wheel index # right after a stable release, so install it separately from plain # PyPI first; the rest of the file then installs against it as already # satisfied, while numpy/pandas/pyarrow/etc still resolve as nightlies. sklearn_spec=$(grep -E '^scikit-learn' LightGBM/.ci/pip-envs/requirements-latest.txt) uv pip install "$sklearn_spec" uv pip install -r LightGBM/.ci/pip-envs/requirements-latest.txt - name: install-narwhals-dev run: | uv pip uninstall narwhals uv pip install -e . - name: show-deps run: uv pip freeze - name: Run pytest run: | cd LightGBM pytest --config-file python-package/pyproject.toml tests/python_package_test scikit-learn: if: github.head_ref != 'bump-version' env: UV_SYSTEM_PYTHON: 1 strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: ${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Clone scikit-learn run: | git clone https://github.com/scikit-learn/scikit-learn.git --depth=1 cd scikit-learn git log - name: Build scikit-learn run: | cd scikit-learn uv pip install -U ninja meson-python numpy cython joblib threadpoolctl scipy uv pip install --editable . --verbose --no-build-isolation --config-settings editable-verbose=true uv pip install -U pandas polars pyarrow pytest pytest-xdist - name: Install Narwhals branch run: | uv pip uninstall narwhals uv pip install -e . - name: Run tests #ย Based on https://github.com/scikit-learn/scikit-learn/pull/31127#issuecomment-4425039398 run: | cd scikit-learn tests=( sklearn/utils/tests/test_indexing.py sklearn/utils/tests/test_validation.py sklearn/compose/tests/test_column_transformer.py sklearn/ensemble/_hist_gradient_boosting/tests/test_gradient_boosting.py ) pytest "${tests[@]}" narwhals-2.26.0/.github/workflows/extremes.yml000066400000000000000000000124131525000603700213730ustar00rootroot00000000000000name: Min, old, and nightly versions on: pull_request: paths: - "**.py" - .github/workflows/extremes.yml - pyproject.toml - uv.lock env: PY_COLORS: 1 PYTEST_ADDOPTS: "--numprocesses=logical" UV_LOCKED: 1 UV_NO_DEV: 1 permissions: contents: read jobs: minimum_versions: strategy: matrix: python-version: ["3.10"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: min-versions-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Run pytest run: make run-ci DEPS="--group extreme-minimum-versions --group plugins" CMD="pytest tests --cov=src --cov=tests --cov-fail-under=50 --runslow --constructors=pandas,pyarrow,polars[eager],polars[lazy],duckdb" pretty_old_versions: strategy: matrix: python-version: ["3.10"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: pretty-old-versions-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Run pytest run: make run-ci DEPS="--group extreme-pretty-old-versions --group plugins" CMD="pytest tests --cov=src --cov=tests --cov-fail-under=50 --runslow --constructors=pandas,pyarrow,polars[eager],polars[lazy],duckdb" not_so_old_versions: strategy: matrix: python-version: ["3.10"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: not-so-old-versions-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Run pytest run: make run-ci DEPS="--group extreme-not-so-old-versions --group plugins" CMD="pytest tests --cov=src --cov=tests --cov-fail-under=50 --runslow --constructors=pandas,pyarrow,polars[eager],polars[lazy],dask,duckdb" nightlies: strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} env: UV_LOCKED: 0 steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: nightlies-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" #ย Manually install pre-releases as it's not possible to specify pre-releases per index # See: https://github.com/astral-sh/uv/issues/15780 - name: Create venv run: uv venv --python ${{ matrix.python-version }} - name: install-reqs run: uv pip install -e . --group tests --group plugins - name: install polars pre-release run: | uv pip uninstall polars uv pip install -U --pre polars - name: install-pandas-nightly run: | uv pip uninstall pandas uv pip install pandas --pre --index https://pypi.anaconda.org/scientific-python-nightly-wheels/simple -U - name: install pyarrow nightly run: | uv pip uninstall pyarrow uv pip install pyarrow --pre --index https://pypi.fury.io/arrow-nightlies/ -U - name: install numpy nightly run: | uv pip uninstall numpy uv pip install numpy --pre --index https://pypi.anaconda.org/scientific-python-nightly-wheels/simple -U - name: install dask run: | uv pip uninstall dask dask-expr uv pip install "git+https://github.com/dask/dask[dataframe]" - name: install duckdb nightly run: | uv pip uninstall duckdb uv pip install -U --pre duckdb - name: show-deps run: uv pip freeze - name: Assert nightlies dependencies run: | DEPS=$(uv pip freeze) echo "$DEPS" | grep -E 'pandas.*(dev|rc|\+)' echo "$DEPS" | grep 'pyarrow.*dev' echo "$DEPS" | grep 'numpy.*dev' echo "$DEPS" | grep 'dask.*@' - name: Run pytest run: | uv run --no-sync pytest tests --cov=src --cov=tests --cov-fail-under=50 --runslow \ --constructors="pandas,pandas[nullable],pandas[pyarrow],pyarrow,polars[eager],polars[lazy],dask,duckdb" narwhals-2.26.0/.github/workflows/pre-commit-hooks.yml000066400000000000000000000014601525000603700227340ustar00rootroot00000000000000name: Pre-commit hooks on: pull_request: workflow_call: env: PY_COLORS: 1 permissions: contents: read jobs: prek: if: github.head_ref != 'bump-version' runs-on: ubuntu-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.12" - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: enable-cache: "true" cache-suffix: pre-commit-hooks cache-dependency-glob: "pyproject.toml" - name: Run prek run: uvx prek run --all-files --show-diff-on-failure --color=always narwhals-2.26.0/.github/workflows/prek-autoupdate.yml000066400000000000000000000036751525000603700226630ustar00rootroot00000000000000name: prek autoupdate on: schedule: # Every Tuesday at 06:00 UTC, just after renovate's github-actions window. - cron: "0 6 * * 2" workflow_dispatch: permissions: contents: write pull-requests: write jobs: autoupdate: runs-on: ubuntu-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.12" - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 - name: Run prek autoupdate # Same 7-day supply-chain cooldown as renovate's `minimumReleaseAge`. prek never # downgrades: if the newest eligible rev is older than the pinned one, it keeps the pin. run: uvx prek autoupdate --cooldown-days 7 - name: Open PR if changed env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | set -euo pipefail if git diff --quiet -- .pre-commit-config.yaml; then echo "No hook updates." exit 0 fi branch="chore/prek-autoupdate-$(date -u +%Y-%m-%d)" git config user.name "github-actions[bot]" git config user.email "41898282+github-actions[bot]@users.noreply.github.com" git checkout -b "$branch" git add .pre-commit-config.yaml git commit -m "chore: prek autoupdate" # `persist-credentials: false` leaves `origin` unauthenticated; the gh credential # helper supplies the token on demand instead of writing it into .git/config. gh auth setup-git git push --set-upstream origin "$branch" gh pr create \ --title "chore: prek autoupdate" \ --body "Automated hook version bump via \`prek autoupdate\`." \ --base main \ --head "$branch" narwhals-2.26.0/.github/workflows/publish_to_pypi.yml000066400000000000000000000126311525000603700227520ustar00rootroot00000000000000# This is taken from # https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/#the-whole-ci-cd-workflow # but with the following differences # - removed the TestPyPI part # - instead of `on: push`, we have `tags` in there too # # To gate the release on a new workflow: # 1. In the gating workflow, add `workflow_call:` to its `on:` triggers. # 2. Add `if: github.head_ref != 'bump-version'` to every job in that workflow. #ย  This skips it on the release PR opened from `bump-version` # (otherwise jobs would run twice: once on the PR, once via the workflow_call below). # 3. Below, add a job that `uses: ./.github/workflows/.yml` and append its name to `build.needs:`. name: Publish Python ๐Ÿ distribution ๐Ÿ“ฆ to PyPI on: push: tags: - "v[0-9]+.[0-9]+.[0-9]+*" env: UV_LOCKED: 1 UV_NO_DEV: 1 permissions: {} jobs: pytest: name: PyTest uses: $/.github/workflows/pytest.yml permissions: contents: read pytest-pyspark: name: PyTest PySpark uses: $/.github/workflows/pytest-pyspark.yml permissions: contents: read pytest-ibis: name: PyTest Ibis uses: $/.github/workflows/pytest-ibis.yml permissions: contents: read pytest-modin: name: PyTest Modin uses: $/.github/workflows/pytest-modin.yml permissions: contents: read pytest-fireducks: name: PyTest Fireducks uses: $/.github/workflows/pytest-fireducks.yml permissions: contents: read typing: name: Type checking uses: $/.github/workflows/typing.yml permissions: contents: read downstream-tests: name: Downstream tests uses: $/.github/workflows/downstream_tests.yml with: skip-fairlearn: true permissions: contents: read check-docs-build: name: Check docs build uses: $/.github/workflows/check_docs_build.yml permissions: contents: read pre-commit-hooks: name: Pre-commit hooks uses: $/.github/workflows/pre-commit-hooks.yml permissions: contents: read test-sdist: name: Test sdist uses: $/.github/workflows/test_sdist.yml permissions: contents: read build: name: Build distribution ๐Ÿ“ฆ needs: - pytest - pytest-pyspark - pytest-ibis - pytest-modin - typing - downstream-tests - check-docs-build - pre-commit-hooks - test-sdist runs-on: ubuntu-latest permissions: contents: read steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: "3.13" enable-cache: false - name: Build a binary wheel and a source tarball run: uv build - name: Check wheel content run: uv run python utils/check_dist_content.py - name: Smoke tests (wheel and source distribution) run: | uv run --isolated --no-project --with dist/*.whl tests/version_test.py uv run --isolated --no-project --with dist/*.tar.gz tests/version_test.py - name: Store the distribution packages uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: python-package-distributions path: dist/ publish-to-pypi: name: >- Publish Python ๐Ÿ distribution ๐Ÿ“ฆ to PyPI if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes needs: - build runs-on: ubuntu-latest environment: name: pypi url: https://pypi.org/p/narwhals permissions: id-token: write # IMPORTANT: mandatory for trusted publishing steps: - name: Download all the dists uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: python-package-distributions path: dist/ - name: Publish distribution ๐Ÿ“ฆ to PyPI uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2 github-release: name: >- Sign the Python ๐Ÿ distribution ๐Ÿ“ฆ with Sigstore and upload them to GitHub Release needs: - publish-to-pypi runs-on: ubuntu-latest permissions: contents: write # IMPORTANT: mandatory for making GitHub Releases id-token: write # IMPORTANT: mandatory for sigstore steps: - name: Download all the dists uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: python-package-distributions path: dist/ - name: Sign the dists with Sigstore uses: sigstore/gh-action-sigstore-python@790bc6befb9d733738f18d8f895854b453640ec9 # v3.5.0 with: inputs: >- ./dist/*.tar.gz ./dist/*.whl - name: Create GitHub Release env: GITHUB_TOKEN: ${{ github.token }} run: >- gh release create "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" --notes "" - name: Upload artifact signatures to GitHub Release env: GITHUB_TOKEN: ${{ github.token }} # Upload to GitHub Release using the `gh` CLI. # `dist/` contains the built packages, and the # sigstore-produced signatures and certificates. run: >- gh release upload "$GITHUB_REF_NAME" dist/** --repo "$GITHUB_REPOSITORY" narwhals-2.26.0/.github/workflows/pytest-fireducks.yml000066400000000000000000000017701525000603700230500ustar00rootroot00000000000000name: PyTest FireDucks on: pull_request: paths: - src/** - tests/** - .github/workflows/pytest-fireducks.yml - pyproject.toml - uv.lock workflow_call: env: PY_COLORS: 1 UV_LOCKED: 0 UV_NO_DEV: 1 permissions: contents: read jobs: pytest-fireducks: if: github.head_ref != 'bump-version' runs-on: ubuntu-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: "3.13" enable-cache: "true" cache-suffix: fireducks-3.13 cache-dependency-glob: "pyproject.toml" - name: Run pytest run: make run-ci DEPS="--group core-tests --extra pandas" RUN_ONLY="--with fireducks --with 'pandas>2.2.0'" CMD="python -m fireducks.pandas --hook-import-module -m pytest tests/fireducks_test.py" narwhals-2.26.0/.github/workflows/pytest-ibis.yml000066400000000000000000000022631525000603700220150ustar00rootroot00000000000000name: PyTest Ibis constructor on: pull_request: paths: - src/narwhals/_expression_parsing.py - src/narwhals/_ibis/** - src/narwhals/_sql/** - tests/** - .github/workflows/pytest-ibis.yml - pyproject.toml - uv.lock workflow_call: env: PY_COLORS: 1 PYTEST_ADDOPTS: "--numprocesses=logical" UV_LOCKED: 1 UV_NO_DEV: 1 permissions: contents: read jobs: pytest-ibis-constructor: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.13"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: ibis-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Run pytest run: make run-ci DEPS="--group core-tests --extra ibis --extra pandas" CMD="pytest tests --constructors=ibis" narwhals-2.26.0/.github/workflows/pytest-modin.yml000066400000000000000000000022351525000603700221740ustar00rootroot00000000000000name: PyTest Modin constructor on: pull_request: paths: - src/narwhals/_expression_parsing.py - src/narwhals/_pandas_like/** - tests/** - .github/workflows/pytest-modin.yml - pyproject.toml - uv.lock workflow_call: env: PY_COLORS: 1 PYTEST_ADDOPTS: "--numprocesses=logical" UV_LOCKED: 1 UV_NO_DEV: 1 permissions: contents: read jobs: pytest-modin-constructor: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.13"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: modin-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Run pytest run: make run-ci DEPS="--group core-tests --extra modin" CMD="pytest tests --constructors=modin[pyarrow]" narwhals-2.26.0/.github/workflows/pytest-pyspark.yml000066400000000000000000000103011525000603700225500ustar00rootroot00000000000000name: PyTest PySpark constructor on: pull_request: paths: - .github/workflows/pytest-pyspark.yml - src/narwhals/_expression_parsing.py - src/narwhals/_spark_like/** - src/narwhals/_sql/** - tests/*scan*.py - tests/frame/*sink*.py - pyproject.toml - uv.lock workflow_call: schedule: - cron: 0 12 * * 0 # Sunday at mid-day env: PY_COLORS: 1 PYTEST_ADDOPTS: "--numprocesses=logical" UV_LOCKED: 1 UV_NO_DEV: 1 permissions: contents: read jobs: pytest-pyspark-constructor: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.11"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: pyspark-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Run pytest run: make run-ci DEPS="--group core-tests --extra pyspark --extra pandas" CMD="pytest tests --cov=src/narwhals/_spark_like --cov-fail-under=95 --runslow --constructors=pyspark" pytest-pyspark-min-version-constructor: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.11"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: pyspark-min-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Run pytest run: make run-ci DEPS="--group min-pyspark-version --extra pandas" CMD="pytest tests --cov=src/narwhals/_spark_like --cov-fail-under=95 --runslow --constructors=pyspark" pytest-pyspark-connect-constructor: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.11"] os: [ubuntu-latest] env: SPARK_VERSION: 4.1.0 SPARK_PORT: 15002 SPARK_CONNECT: true runs-on: ${{ matrix.os }} container: # env context isn't available here (https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability), so this must match SPARK_VERSION image: apache/spark:4.2.0@sha256:fc64959c04bd87b0ac686be9aaa9008b69cdb1afc695400528279c8b01f43d89 options: --user root env: HOME: /root steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: pyspark-connect-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Create venv run: uv venv --python ${{ matrix.python-version }} - name: install-reqs # temporary pin to get CI green run: uv pip install -e ".[pandas]" --group core-tests --group sklearn "pyarrow<22.0" - name: install pyspark run: uv pip install -e . "pyspark[connect]==${SPARK_VERSION}" "setuptools<78" - name: show-deps run: uv pip freeze - name: Start Spark Connect server run: | /opt/spark/sbin/start-connect-server.sh --master 'local[*]' --conf spark.connect.grpc.binding.port=${SPARK_PORT} sleep 5 echo "Spark Connect server started" - name: Run pytest run: uv run --no-sync pytest tests --cov=src/narwhals/_spark_like --cov-fail-under=95 --runslow --constructors "pyspark[connect]" - name: Stop Spark Connect server if: always() run: /opt/spark/sbin/stop-connect-server.sh narwhals-2.26.0/.github/workflows/pytest.yml000066400000000000000000000150431525000603700210710ustar00rootroot00000000000000name: PyTest on: pull_request: paths: - "**.py" - .github/workflows/pytest.yml - pyproject.toml - uv.lock workflow_call: env: PY_COLORS: 1 PYTEST_ADDOPTS: "--numprocesses=logical" UV_LOCKED: 1 UV_NO_DEV: 1 permissions: contents: read jobs: pytest-310: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.10"] os: [windows-latest, ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: pytest-310-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Run pytest shell: bash run: make run-ci DEPS="--group tests --group plugins --extra pandas --extra polars --extra pyarrow" CMD="pytest tests --cov=src --cov=tests --cov-fail-under=75 --constructors=pandas,pyarrow,polars[eager],polars[lazy]" pytest-windows: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.10", "3.13"] os: [windows-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: pytest-windows-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" # we are not testing pyspark, modin, or dask on Windows here because nobody got time for that - name: Run pytest shell: bash run: make run-ci DEPS="--group core-tests --group sklearn --group plugins --extra pandas" CMD="pytest tests --cov=src --cov=tests --runslow --cov-fail-under=95 --durations=30 --constructors=pandas,pandas[nullable],pandas[pyarrow],pyarrow,polars[eager],polars[lazy],duckdb,sqlframe" pytest-full-coverage: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.11", "3.13"] os: [ubuntu-latest] include: - python-version: "3.11" polars_streaming: true runs-on: ${{ matrix.os }} env: NARWHALS_POLARS_NEW_STREAMING: ${{ matrix.polars_streaming == true }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: pytest-full-coverage-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Run pytest run: make test-full-coverage - name: Run doctests # reprs differ between versions, so we only run doctests on the latest Python if: matrix.python-version == '3.13' run: make doctest # Test against smaller dependency set, used e.g. on Gentoo. pytest-narrower-dependencies: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.13"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} env: UV_LOCKED: 0 steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: pytest-narrower-deps-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Run pytest (pandas and pandas[nullable]) run: make run-ci DEPS="-U --group tests --extra pandas" RUN_ONLY="--isolated" CMD="pytest tests --runslow --constructors=pandas,pandas[nullable]" - name: Run pytest (pandas[pyarrow] and pyarrow) run: make run-ci DEPS="-U --group tests --extra pandas --extra pyarrow" RUN_ONLY="--isolated" CMD="pytest tests --runslow --constructors=pandas[pyarrow],pyarrow" - name: Run pytest (polars) run: make run-ci DEPS="-U --group tests --extra polars" RUN_ONLY="--isolated" CMD="pytest tests --runslow --constructors=polars[eager],polars[lazy]" python-314: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.14"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: python-314-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Run pytest run: make run-ci DEPS="--group core-tests --group plugins --extra pandas" CMD="pytest tests --cov=src --cov=tests --cov-fail-under=50 --runslow --durations=30 --constructors=pandas,pandas[nullable],pandas[pyarrow],pyarrow,polars[eager],polars[lazy],duckdb,sqlframe" python-314t: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.14t"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} env: PYTHON_GIL: 0 UV_LOCKED: 0 steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: python-314t-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Run pytest run: make run-ci DEPS="--pre --group tests --group plugins --extra pandas --extra pyarrow" CMD="pytest tests --cov=src --cov=tests --cov-fail-under=50 --runslow --durations=30 --constructors=pandas,pandas[nullable],pandas[pyarrow],pyarrow" narwhals-2.26.0/.github/workflows/random_ci_pytest.yml000066400000000000000000000025741525000603700231110ustar00rootroot00000000000000name: Random Versions on: pull_request: paths: - "**.py" - .github/workflows/random_ci_pytest.yml - pyproject.toml - uv.lock env: PY_COLORS: 1 PYTEST_ADDOPTS: "--numprocesses=logical" UV_LOCKED: 1 UV_NO_DEV: 1 permissions: contents: read jobs: tox: strategy: matrix: python-version: ["3.10"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: ${{ matrix.python-version }} enable-cache: "true" cache-suffix: pytest-random-ci-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Generate random versions run: uv run --no-project python utils/generate_random_versions.py - name: Show dependencies run: uv pip compile random-requirements.txt --group tests --group plugins - name: Run pytest with random versions run: | uv run --group tests --group plugins --with-requirements random-requirements.txt \ pytest tests --cov=src --cov=tests --cov-fail-under=75 \ --constructors="pandas,pyarrow,polars[eager],polars[lazy]" narwhals-2.26.0/.github/workflows/release-drafter.yml000066400000000000000000000016761525000603700226150ustar00rootroot00000000000000name: Release Drafter on: push: # branches to consider in the event; optional, defaults to all branches: - main permissions: contents: read jobs: update_release_draft: permissions: # write permission is required to create a github release contents: write runs-on: ubuntu-latest steps: # (Optional) GitHub Enterprise requires GHE_HOST variable set #- name: Set GHE_HOST # run: | # echo "GHE_HOST=${GITHUB_SERVER_URL##https:\/\/}" >> $GITHUB_ENV # Drafts your next Release notes as Pull Requests are merged into "master" - uses: release-drafter/release-drafter@34d80673e067bdc0c24568d3af899c216adcfaa9 # v7.7.0 # (Optional) specify config name to use, relative to .github/. Default: release-drafter.yml with: config-name: release-drafter.yml # disable-autolabeler: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} narwhals-2.26.0/.github/workflows/scorecard.yml000066400000000000000000000042131525000603700215030ustar00rootroot00000000000000name: Scorecard supply-chain security on: # For Branch-Protection check. Only the default branch is supported. See # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection branch_protection_rule: # To guarantee Maintained check is occasionally updated. See # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained schedule: - cron: '15 18 * * 5' push: branches: [ "main" ] # Declare default permissions as read only. permissions: {} jobs: analysis: name: Scorecard analysis runs-on: ubuntu-latest permissions: # Needed to upload the results to code-scanning dashboard. security-events: write # Needed to publish results and get a badge (see publish_results below). id-token: write steps: - name: "Checkout code" uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: "Run analysis" uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4 with: results_file: results.sarif results_format: sarif # Public repositories: # - Publish results to OpenSSF REST API for easy access by consumers # - Allows the repository to include the Scorecard badge. # - See https://github.com/ossf/scorecard-action#publishing-results. publish_results: true # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: SARIF file path: results.sarif retention-days: 5 # Upload the results to GitHub's code scanning dashboard (optional). # Commenting out will disable upload of results to your repo's Code Scanning dashboard - name: "Upload to code-scanning" uses: github/codeql-action/upload-sarif@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9 with: sarif_file: results.sarif narwhals-2.26.0/.github/workflows/test_sdist.yml000066400000000000000000000050301525000603700217210ustar00rootroot00000000000000name: Test sdist is installable and self-contained # Builds the sdist, unpacks it OUTSIDE the repo (so there is no workspace, # mirroring a downstream packager unpacking the PyPI tarball), installs it with # the `tests` dependency group via plain `pip`, and runs the test suite from the # unpacked tree. This guards against regressions like https://github.com/narwhals-dev/narwhals/pull/3664, #ย where the sdist shipped without `tests/data/` and the suite could not run from the tarball. # # NOTE: `pip` (not `uv pip`) is used on purpose. on: pull_request: workflow_call: env: PY_COLORS: 1 PYTEST_ADDOPTS: "--numprocesses=logical" permissions: contents: read jobs: test-sdist: if: github.head_ref != 'bump-version' runs-on: ubuntu-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: python-version: "3.13" enable-cache: "true" cache-suffix: test-sdist cache-dependency-glob: "pyproject.toml" - name: Build the sdist run: uv build --sdist - name: Unpack the sdist outside the repo run: | mkdir -p "${RUNNER_TEMP}/sdist" tar xzf dist/*.tar.gz -C "${RUNNER_TEMP}/sdist" # Fail loudly if the workspace leaked into the tarball: its presence # would mask exactly the kind of bug this job is meant to catch. if [ -d "${RUNNER_TEMP}/sdist"/narwhals-*/packages ]; then echo "::error::Unexpected 'packages/' (workspace) directory inside the sdist" exit 1 fi - name: Create an isolated venv with a recent pip run: | uv venv "${RUNNER_TEMP}/venv" --python 3.13 uv pip install --python "${RUNNER_TEMP}/venv" "pip>=25.1" - name: Install the unpacked sdist with the tests group (via pip) run: | src=$(echo "${RUNNER_TEMP}/sdist"/narwhals-*) "${RUNNER_TEMP}/venv/bin/python" -m pip install \ "${src}[pandas,pyarrow,polars]" \ --group "${src}/pyproject.toml:tests" - name: Run the test suite from the unpacked sdist run: | # Validate that the sdist is complete and usable src=$(echo "${RUNNER_TEMP}/sdist"/narwhals-*) cd "${src}" "${RUNNER_TEMP}/venv/bin/python" -m pytest tests \ --constructors="pandas,pyarrow,polars[eager],polars[lazy]" narwhals-2.26.0/.github/workflows/typing.yml000066400000000000000000000026621525000603700210560ustar00rootroot00000000000000name: Type checking on: pull_request: paths: - "**.py" - .github/workflows/typing.yml - pyproject.toml - uv.lock workflow_call: env: PY_COLORS: 1 UV_LOCKED: 1 UV_NO_DEV: 1 permissions: contents: read jobs: typing: if: github.head_ref != 'bump-version' strategy: matrix: python-version: ["3.12"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: activate-environment: true enable-cache: "true" cache-suffix: typing-${{ matrix.python-version }} cache-dependency-glob: "pyproject.toml" - name: Create venv run: uv venv .venv --clear - name: install-reqs # TODO: add more dependencies/backends incrementally run: uv pip install -e ".[pyspark]" --group typing - name: show-deps run: uv pip freeze - name: Run mypy and pyright run: make typing - name: Check type-completeness run: | uv run pyrefly coverage check src/narwhals --public-only narwhals-2.26.0/.gitignore000066400000000000000000000006641525000603700154140ustar00rootroot00000000000000# Byte-compiled / optimized / DLL files __pycache__/ *.pyc # Distribution / packaging dist/ # Unit test / coverage reports .nox/ .coverage .coverage.* .cache coverage.xml .hypothesis/ .pytest_cache/ .mypy_cache # Documentation site/ todo.md docs/this.md docs/api-completeness/*.md !docs/api-completeness/index.md # Environments .venv # TPC-H data tpch/data/* # VSCode .vscode/ # IntelliJ IDEA / PyCharm .idea/ # MacOS .DS_Store narwhals-2.26.0/.pre-commit-config.yaml000066400000000000000000000107671525000603700177120ustar00rootroot00000000000000repos: - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. rev: 'v0.16.5' hooks: # Run the formatter. - id: ruff-format # Run the linter. - id: ruff-check args: [--fix] - id: ruff name: check-docstrings alias: check-docstrings entry: python utils/check_docstrings.py - repo: https://github.com/astral-sh/uv-pre-commit rev: 0.12.8 hooks: - id: uv-lock - repo: https://github.com/codespell-project/codespell rev: 'v2.4.3' hooks: - id: codespell files: \.(py|rst|md)$ args: [--ignore-words-list=ser] exclude: ^docs/api-completeness.md$ - repo: https://github.com/zizmorcore/zizmor-pre-commit rev: 'v1.30.0' hooks: - id: zizmor args: [--no-progress, --fix] - repo: https://github.com/adhtruong/mirrors-typos # Use mirror to avoid autoupdate issue: https://github.com/crate-ci/typos/issues/390 rev: 'v1.50.0' hooks: - id: typos - repo: https://github.com/pycqa/flake8 rev: '7.3.0' hooks: - id: flake8 # TODO(unassigned): replace with ruff once https://github.com/astral-sh/ruff/issues/458 is addressed. name: darglint alias: darglint entry: flake8 --select DAR --ignore DAR101,DAR201,DAR401,DAR402 exclude: | (?x)^( tests/.*| # TODO: gradually enable src/narwhals/dependencies\.py| # Private, so less urgent to document too well src/narwhals/_.*| # Internal use only, less urgent ^utils/.*| # Soft-deprecated, so less crucial to document so carefully src/narwhals/stable/v1/.* )$ # Keep in sync with `flake8-typing-imports` so the same venv is reused. additional_dependencies: [darglint==1.8.1, flake8-typing-imports==1.17.0] - id: flake8 # TODO(unassigned): replace with ruff once https://github.com/astral-sh/ruff/issues/2302 is addressed. name: flake8-typing-imports alias: flake8-typing-imports entry: flake8 --select TYP --min-python-version=3.10.0 # Keep in sync with `darglint` so the same venv is reused. additional_dependencies: [darglint==1.8.1, flake8-typing-imports==1.17.0] - repo: local hooks: # `language: python` runs in an isolated venv. #ย The scripts that need `narwhals` add `src/` to `sys.path` themselves. - id: check-api-reference name: check-api-reference pass_filenames: false entry: uv run --extra polars utils/check_api_reference.py language: system - id: sort-api-reference name: sort-api-reference pass_filenames: false entry: uv run utils/sort_api_reference.py language: system - id: check-slotted-classes name: check-slotted-classes pass_filenames: false entry: uv run utils/check_slotted_classes.py language: system - id: imports-are-banned name: import are banned (use `get_pandas` instead of `import pandas`) entry: uv run utils/import_check.py language: system files: ^src/narwhals/ exclude: ^src/narwhals/dependencies\.py - id: self-self name: don't annotate `self` argument using `Self` entry: "self: Self" language: pygrep files: ^src/narwhals/ - id: dtypes-import name: don't import from narwhals.dtypes (use `Version.dtypes` instead) entry: | (?x) import\ narwhals(\.stable\.v\d)?\.dtypes| from\ narwhals(\.stable\.v\d)?\ import\ dtypes| ^from\ narwhals(\.stable\.v\d)?\.dtypes\ import \ (DType,\ )? ((Datetime|Duration|Enum)(,\ )?)+ ((,\ )?DType)? language: pygrep files: ^src/narwhals/ exclude: | (?x) ^( src/narwhals/_utils\.py| src/narwhals/stable/v./_?dtypes.py| src/narwhals/.*__init__.py| src/narwhals/.*typing\.py ) - id: pull-request-target name: don't use `pull_request_target` entry: pull_request_target language: pygrep files: ^\.github/workflows/ - repo: https://github.com/pre-commit/pre-commit-hooks rev: v6.0.0 hooks: - id: name-tests-test exclude: | (?x) ^(tests/utils\.py) |^(packages/test_plugin/) - id: no-commit-to-branch - id: end-of-file-fixer exclude: .svg$ - id: trailing-whitespace exclude: | (?x)^( tests/data/.*\.csv| .*\.svg )$ narwhals-2.26.0/AGENTS.md000066400000000000000000000203411525000603700147210ustar00rootroot00000000000000# AGENTS.md Narwhals is an extremely lightweight, zero-dependency compatibility layer between Python dataframe libraries. It lets library authors write dataframe-agnostic code once using a subset of the Polars API, and have it work across pandas, Polars, PyArrow, cuDF, Modin, Dask, DuckDB, PySpark, Ibis, and SQLFrame, without depending on any of them. The primary audience is **library maintainers**, not end users. Because of that, stability and backwards compatibility are taken extremely seriously. ## Read the docs first Almost everything an agent needs is already documented. Read the relevant page instead of inferring from the source, and update the page when you change the behaviour it describes. | Topic | Read | | --- | --- | | Internal architecture: expressions, nodes, expression metadata, broadcasting, `over` push-down, group-by | [docs/how_it_works.md](docs/how_it_works.md) | | Contributor workflow: env setup, test invocations, backend-specific rules, docstring style, PR conventions | [CONTRIBUTING.md](CONTRIBUTING.md) | | Stable API guarantees and the `main` vs `stable.v1` / `stable.v2` diff | [docs/backcompat.md](docs/backcompat.md) | | Adding a backend: compliant protocols, plugin entry points, the IO namespace contract | [docs/extending.md](docs/extending.md) | | Row-order semantics: what `DataFrame` guarantees, what `LazyFrame` doesn't, `over(order_by=...)` | [docs/concepts/order_dependence.md](docs/concepts/order_dependence.md) | | Null vs NaN: which methods exist for which, and what pandas muddies | [docs/concepts/null_handling.md](docs/concepts/null_handling.md) | | Why the pandas `group_by` `UserWarning` exists and how to avoid triggering it | [docs/concepts/improve_group_by_operation.md](docs/concepts/improve_group_by_operation.md) | | Boolean semantics, the pandas index, non-string column names | [docs/concepts/](docs/concepts/) | | Which methods each backend implements | [docs/api-completeness/](docs/api-completeness/) (generated, do not hand-edit) | | Public API surface | [docs/api-reference/](docs/api-reference/) (member lists are validated by CI) | | `narwhals.sql`: generating SQL from Narwhals expressions | [docs/generating_sql.md](docs/generating_sql.md) | | Security reporting and release-permission policy | [docs/security.md](docs/security.md) | The one-sentence summary of [docs/how_it_works.md](docs/how_it_works.md), worth internalising before touching anything in `_pandas_like/`, `_arrow/`, or `_compliant/`: > An expression is a function from a DataFrame to a sequence of Series. ## Code structure and design Narwhals follows a layered design: 1. **Public API** ([src/narwhals/dataframe.py](src/narwhals/dataframe.py), [series.py](src/narwhals/series.py), [expr.py](src/narwhals/expr.py), ...): the user-facing Polars-like API. Thin wrappers that build `ExprNode`s and dispatch to compliant backends. 2. **Compliant wrappers**: one folder per backend (`_pandas_like/`, `_arrow/`, `_polars/`, `_duckdb/`, `_spark_like/`, `_dask/`, `_ibis/`), each backend implements Narwhals-compliant DataFrames, Series, Exprs, and Namespaces that translate the Polars-like API to native calls. Shared protocols and base classes live in `src/narwhals/_compliant/`. 3. **Native libraries** (pandas, Polars, PyArrow, ...): the actual computation engines, never directly depended on. Outside `src/`, the project has: - [tests/](tests/): test suite, see [CONTRIBUTING.md โ†’ Running tests](CONTRIBUTING.md#7-running-tests) - [tpch/](tpch/): TPC-H benchmark queries, see [tpch/README.md](tpch/README.md) - `packages/`: uv workspace members, built and installed independently of `src/narwhals`. Currently just a `test-plugin` that is a minimal fake backend used to test `narwhals.plugins`. ## Hard rules These are non-negotiable and the most common source of review comments. The long form, with rationale, is in [CONTRIBUTING.md](CONTRIBUTING.md). * **Zero dependencies.** Narwhals must never add a runtime dependency. It only uses what the user passes in. * **Never import anything for `isinstance` checks.** Use the functions in [src/narwhals/dependencies.py](src/narwhals/dependencies.py) (e.g. `is_pandas_dataframe`). * **Never iterate over rows.** Assume infinite rows. Column iteration is acceptable. * **Never modify user input data.** Especially with pandas: no inplace operations on user-provided objects. * **100% branch coverage** is enforced by the full-coverage CI job. When a branch is genuinely unreachable (e.g. gated on an unsupported backend version), mark it `# pragma: no cover` with a one-line reason. * **Breaking changes never land in `narwhals.stable.v1` or `narwhals.stable.v2`.** New public APIs land in the main `narwhals` namespace and graduate into the next stable version. See [docs/backcompat.md](docs/backcompat.md), and add an entry to its `main` vs `stable.*` diff when the namespaces diverge. Backend-specific rules (no pandas `apply`/`map`/`assign`/`drop`/`reset_index`/`rename`, no Polars `map_elements`, no ordering assumptions or materialisation on lazy backends, DuckDB Python API over SQL) are listed in full under [CONTRIBUTING.md โ†’ Backend-specific considerations](CONTRIBUTING.md#backend-specific-considerations). ## Verify changes before committing Run these from the repo root. If you have not activated `.venv`, prefix the non-`make` commands with `uv run`. 1. `prek run --all-files` โ€” lint, format, docstring/import checks 2. `make typing` โ€” static type checking (mypy, pyright, and pyrefly) (Optional: `make typing-coverage` for type-completeness) 3. `make test-full-coverage` โ€” full test suite with 100% coverage. Very slow, see [Faster testing](#faster-testing) for alternatives. 4. `make doctest` โ€” tests docstring examples 5. `make docs-build` โ€” run only if you touched `docs/` or a docstring. The build *executes* `exec="yes"` code blocks, so a stale snippet is a build failure. Docs are built with `zensical` (configured in [zensical.toml](zensical.toml)), not mkdocs โ€” the nav lives there, so a new page must be added to it. ### Faster testing Full coverage runs are slow. While iterating: ```bash uv run pytest tests/path/to/test_file.py # one file uv run pytest tests --constructors=pandas,polars[eager],pyarrow uv run pytest tests --all-cpu-constructors # needs --extra modin --extra pyspark ``` * Default constructors are `pandas,pandas[pyarrow],polars[eager],pyarrow,duckdb,sqlframe,ibis` (overridable via the `NARWHALS_DEFAULT_CONSTRUCTORS` env var). * Hypothesis tests are skipped unless you pass `--runslow`. * Dask and Modin are not in `local-dev`; add `--extra dask --extra modin` to test them locally. Do not treat a green fast run as sufficient: the coverage gate and the lazy/SQL constructors (`duckdb`, `sqlframe`, `dask`) catch a distinct class of bug, so run step 3 before committing. ### Test failure patterns * `request.applymarker(pytest.mark.xfail)` โ€” planned but not yet supported features. * `pytest.mark.skipif` โ€” conditional skips (e.g. version constraints). * `pytest.raises` โ€” expected exceptions. Always document the reason in a comment. Details and examples: [CONTRIBUTING.md โ†’ Test Failure Patterns](CONTRIBUTING.md#test-failure-patterns). ## Inline Comments Default to none. Only add one when the *why* is non-obvious (a hidden constraint, a workaround, a subtle invariant). Never to restate what the code already says, and never to narrate a diff. Comments that merely repeat the following line are a common tell of unreviewed AI-assisted output and are removed on sight in review. ## Pull requests and issues **A human opens the pull request or issue, not you.** Draft the diff, the description, and the commit messages if asked, but the submission is made by the person you are working with, under their account, in their words, after they have read the whole diff. The same holds for review replies and issue discussion. Unattended agent-filed issues and PRs can be closed without discussion. For guidelines about PRs (e.g. title rules) see [CONTRIBUTING.md โ†’ Pull requests](CONTRIBUTING.md#6-pull-requests). **AI-assisted contributions must be disclosed** in the dedicated PR-template field, and the author is accountable for every line. Read [CONTRIBUTING.md โ†’ AI-assisted contributions](CONTRIBUTING.md#ai-assisted-contributions) before opening a PR. narwhals-2.26.0/CONTRIBUTING.md000066400000000000000000000571711525000603700156620ustar00rootroot00000000000000# Contributing Thank you for your interest in contributing to Narwhals! Any kind of improvement is welcome! ## **TLDR** If you've got experience with open source contributions, the following instructions might suffice: - Install [uv](https://docs.astral.sh/uv/getting-started/installation/) (required). - Clone repo: `git clone git@github.com:narwhals-dev/narwhals.git narwhals-dev` - `cd narwhals-dev/` - `git remote rename origin upstream` - `git remote add origin ` - `uv sync --group local-dev` (creates `.venv` and installs project + dev deps) - Install prek as a git hook: `uv run prek install` - To run tests: `uv run pytest` - To run ruff formatting and linting: `make lint` - To run all pre-commit checks (which include ruff): `uv run prek run --all-files` - To run static typing checks: `make typing` For more detailed and beginner-friendly instructions, see below! ## 0. Prerequisites Narwhals uses [uv](https://docs.astral.sh/uv/) as its package and environment manager. You must have `uv` installed to follow the rest of this guide. The Makefile targets, dependency groups, and lockfile (`uv.lock`) all assume `uv` is present. To install `uv`, follow the official instructions at [uv installation](https://docs.astral.sh/uv/getting-started/installation/). If you already have `uv`, keep it up-to-date with: ```terminal uv self update ``` ### Dependency management with uv A few useful `uv` workflows when contributing: - `uv add --group local-dev ` โ€” add a dependency to a group (e.g. `local-dev`) - `uv add --optional dask ` โ€” add a dependency to an extra (e.g. `dask`) - `uv remove ` โ€” remove a dependency (with `--group`/`--optional` as appropriate) - `uv lock` โ€” refresh the lockfile without changing pins - `uv lock --upgrade` โ€” upgrade everything After editing `pyproject.toml` (or `uv.lock`) manually, the right order to refresh things is `uv lock` then `uv sync` (the `uv add`/`uv remove` commands above already do both for you). All of these update `pyproject.toml` and `uv.lock`. Commit both files together when changing dependencies. See also the relevant `uv` docs: [`uv sync`](https://docs.astral.sh/uv/reference/cli/#uv-sync), [`uv lock`](https://docs.astral.sh/uv/reference/cli/#uv-lock), [syncing the environment](https://docs.astral.sh/uv/concepts/projects/sync/#syncing-the-environment), and [upgrading locked versions](https://docs.astral.sh/uv/concepts/projects/sync/#upgrading-locked-package-versions). ### Optional: Java for PySpark tests If you want to run PySpark-related tests, you'll also need to have Java installed. Refer to the [Spark documentation](https://spark.apache.org/docs/latest/#downloading) for more information. As an alternative to a system-wide install, `conda` / `pixi` / `mamba` users can pull a compatible JDK from conda-forge ([`openjdk`](https://anaconda.org/conda-forge/openjdk)). ## 1. Setting up your dev environment You can contribute to Narwhals in your local development environment, using `uv`, git and your editor of choice. You can also contribute to Narwhals using [Github Codespaces](https://docs.github.com/en/codespaces/overview) - a development environment that's hosted in the cloud. This way you can easily start to work from your browser without installing git and cloning the repo. Once your environment is set up, the rest of the workflow is the same for everyone, please follow the [Working on your issue](#2-working-on-your-issue) through [Pull requests](#6-pull-requests) sections. ### a. Local development #### 1. Make sure you have git on your machine and a GitHub account Open your terminal and run the following command: ```bash git --version ``` If the output looks like `git version 2.34.1` and you have a personal account on GitHub - you're good to go to the next step. If the terminal output informs about `command not found` you need to [install git](https://docs.github.com/en/get-started/quickstart/set-up-git). If you're new to GitHub, you'll need to create an account on [GitHub.com](https://github.com/) and verify your email address. You should also [check for existing SSH keys](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys) and [generate and add a new SSH key](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) if you don't have one already. #### 2. Fork the repository Go to the [main project page](https://github.com/narwhals-dev/narwhals). Fork the repository by clicking on the fork button. You can find it in the right corner on the top of the page. #### 3. Clone the repository Go to the forked repository on your GitHub account - you'll find it on your account in the tab Repositories. Click on the green `Code` button and then click the `Copy url to clipboard` icon. Open a terminal, choose the directory where you would like to have Narwhals repository and run the following git command: ```bash git clone ``` for example: ```bash git clone git@github.com:YOUR-GITHUB-USERNAME/narwhals.git narwhals-dev ``` You should then navigate to the folder you just created: ```bash cd narwhals-dev ``` #### 4. Add the `upstream` remote and fetch from it ```bash git remote add upstream git@github.com:narwhals-dev/narwhals.git git fetch upstream ``` Check to see the remote has been added with `git remote -v`, you should see something like this: ```bash git remote -v origin git@github.com:YOUR-GITHUB-USERNAME/narwhals.git (fetch) origin git@github.com:YOUR-GITHUB-USERNAME/narwhals.git (push) upstream git@github.com:narwhals-dev/narwhals.git (fetch) upstream git@github.com:narwhals-dev/narwhals.git (push) ``` where `YOUR-GITHUB-USERNAME` will be your GitHub user name. #### 5. Setting up your environment With `uv` already installed (see [Prerequisites](#0-prerequisites)), set up the project by running: ```terminal uv sync --group local-dev ``` This creates a `.venv` and installs the project together with the `local-dev` [dependency group](https://docs.astral.sh/uv/concepts/projects/dependencies/#dependency-groups) (fast-ish core libraries and dev dependencies). The `--group local-dev` flag is what pulls in the dev dependencies: a bare `uv sync` would only install the project and its required dependencies. If you also want to test other libraries like Dask and PySpark, add their extras: ```terminal uv sync --group local-dev --extra dask --extra pyspark ``` You don't need to pin a Python version manually: `uv` will pick a compatible interpreter (downloading one if needed) based on `pyproject.toml`. If you want a specific version, pass `--python 3.12` (or similar) to `uv sync`. You then have two options to run commands inside the project environment: - **Recommended:** prefix commands with `uv run` (e.g. `uv run pytest`). `uv` will re-sync the environment if needed. - Activate the venv (`. .venv/bin/activate` on Linux/macOS, `.\.venv\Scripts\activate` on Windows) and run commands directly (e.g. `pytest`). The pre commit tool ([`prek`](https://prek.j178.dev/)) is installed as part of the `local-dev` dependency group. Run `uv run prek install` to install prek as a git hook. This will automatically format and lint your code before each commit, and it will block the commit if any issues are found. Static typing is run separately from `prek` pre commit hooks, as it's quite slow. Assuming you followed all the instructions above, you can run it with `make typing` (which itself invokes `uv run --group typing ...` under the hood). ### b. Codespaces Codespaces is a great way to work on Narwhals without the need of configuring your local development environment. Every GitHub.com user has a monthly quota of free use of GitHub Codespaces, and you can start working in a codespace without providing any payment details. You'll be informed per email if you'll be close to using 100% of included services. To learn more about it visit [GitHub Docs](https://docs.github.com/en/codespaces/overview) #### 1. Make sure you have GitHub account If you're new to GitHub, you'll need to create an account on [GitHub.com](https://github.com/) and verify your email address. #### 2. Fork the repository Go to the [main project page](https://github.com/narwhals-dev/narwhals). Fork the repository by clicking on the fork button. You can find it in the right corner on the top of the page. #### 3. Create codespace Go to the forked repository on your GitHub account - you'll find it on your account in the tab Repositories. Click on the green `Code` button and navigate to the `Codespaces` tab. Click on the green button `Create codespace on main` - it will open a browser version of VSCode, with the complete repository and git installed. If `uv` is not installed already, install it via the [uv installation instructions](https://docs.astral.sh/uv/getting-started/installation/) before continuing. You can now proceed with [5. Setting up your environment](#5-setting-up-your-environment) from the local development steps above. ## 2. Working on your issue Create a new git branch from the `main` branch in your local repository. Note that your work cannot be merged if the tests below fail. If you add code that should be tested, please add tests. ## 3. Running tests - To run tests: `uv run pytest`. To check coverage: `uv run pytest --cov=src` - To run tests on the doctests, use `uv run pytest src --doctest-modules` - To run unit tests and doctests at the same time, run `uv run pytest src tests --cov=src --doctest-modules` - To run tests multiprocessed, you may also want to use [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) (optional) - To choose which backends to run tests with, you can use the `--constructors` flag: - To only run tests for pandas, Polars, and PyArrow, use `uv run pytest --constructors="pandas,pyarrow,polars[eager]"` - To run tests for all CPU constructors, use `uv run --extra modin --extra pyspark pytest --all-cpu-constructors` - By default, tests run for `pandas,pandas[pyarrow],polars[eager],pyarrow,duckdb,sqlframe,ibis`. You can override this with the `NARWHALS_DEFAULT_CONSTRUCTORS` environment variable. - To run tests using `cudf.pandas`, run `NARWHALS_DEFAULT_CONSTRUCTORS=pandas uv run --extra cudf --module cudf.pandas --module pytest` - To run tests using `polars[gpu]`, run `NARWHALS_POLARS_GPU=1 uv run pytest --constructors="polars[lazy]"` - To run all test with coverage, use `make test-full-coverage` Tip: passing extras (`--extra `) or groups (`--group `) to `uv run` will transparently sync the environment to include those dependencies before running the command. See also [Test Failure Patterns](#test-failure-patterns) in Rules and conventions for the conventions we use to mark xfail/skipif/raises tests. ### Static typing We run `mypy`, `pyright`, and `pyrefly` in CI. All of them are included in `--group typing` and are installed as needed when running `make typing`. Run them with: ```console make typing ``` to verify type completeness / correctness. Note that: - In `_pandas_like`, we type all native objects as if they are pandas ones, though in reality this package is shared between pandas, Modin, and cuDF. - In `_spark_like`, we type all native objects as if they are SQLFrame ones, though in reality this package is shared between SQLFrame and PySpark. ## 4. Writing the doc(strings) If you are adding a new feature or changing an existing one, you should also update the documentation and the docstrings to reflect the changes. Writing the docstring in Narwhals is not an exact science, but we have some high level guidelines (if in doubt just ask us in the PR): - The examples should be clear and to the point. - The examples should import _one_ dataframe library, create a dataframe and exemplify the Narwhals functionality. - We strive for balancing the use of different backend across all our docstrings examples. - There are exceptions to the above rules! Here an example of a docstring: ```python >>> import pyarrow as pa >>> import narwhals as nw >>> df_native = pa.table({"foo": [1, 2], "bar": [6.0, 7.0]}) >>> df = nw.from_native(df_native) >>> df.estimated_size() 32 ``` Full discussion at [narwhals#1943](https://github.com/narwhals-dev/narwhals/issues/1943). ## 5. Building the docs To serve the docs locally, run: ```terminal make docs-serve ``` and then open the link provided in a browser. The docs should refresh when you make changes. If they don't, press `ctrl+C`, and then run: ```terminal make docs-clean-serve ``` which rebuilds everything from a clean state (via `make docs-build`) before serving. ## 6. Pull requests When you have resolved your issue, [open a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) in the Narwhals repository. Please adhere to the following guidelines: 1. Start your pull request title with a [conventional commit](https://www.conventionalcommits.org/) tag. This helps us add your contribution to the right section of the changelog. We use "Type" from the [Angular convention](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#type). **TLDR**: The PR title should start with any of these abbreviations: `build`, `chore`, `ci`, `depr`, `docs`, `feat`, `fix`, `perf`, `refactor`, `release`, `test`. Add a `!`at the end, if it is a breaking change. For example `refactor!`. 2. This text will end up in the [changelog](https://github.com/narwhals-dev/narwhals/releases). 3. Please follow the instructions in the pull request form and submit. ## How it works If Narwhals looks like underwater unicorn magic to you, then please read [how it works](https://narwhals-dev.github.io/narwhals/how_it_works/). ## Rules and conventions These are non-negotiable and the most common source of review comments. - **Zero dependencies.** Narwhals must never add a runtime dependency. It only uses what the user passes in. - **Never import anything for `isinstance` checks.** Use the functions in [src/narwhals/dependencies.py](src/narwhals/dependencies.py) (e.g. `is_pandas_dataframe`). See the [Import section](#imports) below. - **Never iterate over rows.** Assume infinite rows. Column iteration is acceptable. See the [Dataframe considerations](#general-dataframe-considerations) below. - **Never modify user input data.** Especially with pandas: no inplace operations on user-provided objects. - **100% branch coverage** is enforced by the full-coverage CI job. When a branch is genuinely unreachable (e.g. gated on an unsupported backend version), mark it `# pragma: no cover` with a one-line reason. - **Breaking changes never land in `narwhals.stable.v1` or `narwhals.stable.v2`.** New public APIs land in the main `narwhals` namespace and graduate into the next stable version. See [docs/backcompat.md](docs/backcompat.md), and add an entry to its `main` vs `stable.*` diff when the namespaces diverge. ### General dataframe considerations In general we assume that dataframes are used to store and process columnar data. Therefore: - Iterating over rows in Python is never allowed. Assume that there's an infinite number of rows. - Iterating over columns is acceptable (though native APIs that do the iteration in a low-level language are preferred if possible!). ### Backend-specific considerations - pandas: - Don't use `apply` or `map`. The only place we currently use `apply` is in `group_by` for operations which the pandas API just doesn't support, and even then, it's accompanied by a big warning. - Don't use inplace methods, unless you're creating a new object and are sure it's safe to modify it. In particular, you should never ever modify the user's input data. - Please remember that `assign`, `drop`, `reset_index`, and `rename`, though seemingly harmless, make full copies of the input data. - Instead of `assign`, prefer using `with_columns` at the compliant level. - For `drop` and `reset_index`, use `inplace=True`, so long as you're only modifying a new object which you created. Again, you should never modify user input. This may need updating if/when it's deprecated/removed, but please keep it for older pandas versions https://github.com/pandas-dev/pandas/pull/51466/files. - Instead of `rename`, prefer `alias` at the compliant level. - pandas supports any hashable object as a column name, whereas other libraries tend to only support strings. We tend to just type `: str` in places which accept column names, with the understanding that for pandas, other data types will silently work. - Polars: - Never use `map_elements`. - DuckDB / PySpark / anything lazy-only: - Never assume that your data is ordered in any pre-defined way. - Never materialise your data (only exception: `collect`). - Avoid calling the schema / column names unnecessarily. - DuckDB: In addition to the above: - Use the Python API as much as possible, only falling back to SQL as the last resort for operations not yet supported in their Python API (e.g. `over`). - Use standard SQL constructs where possible instead of non-standard ones such as `GROUP BY ALL` or `EXCLUDE`. ### Test Failure Patterns We aim to use three standard patterns for handling test failures: Note: While we're not currently totally consistent with these patterns, any efforts towards our aim are appreciated and welcome. 1. `requests.applymarker(pytest.mark.xfail)`: Used for features that are planned but not yet supported. ```python def test_future_feature(request): request.applymarker(pytest.mark.xfail) # Test implementation for planned feature ``` 2. `pytest.mark.skipif`: Used when there's a condition under which the test cannot run (e.g., unsupported pandas versions). ```python @pytest.mark.skipif(PANDAS_VERSION < (2, 0), reason="requires pandas 2.0+") def test_version_dependent(): # Test implementation ``` 3. `pytest.raises`: Used for testing that code raises expected exceptions. ```python def test_invalid_input(): with pytest.raises(ValueError, match="expected error message"): # Code that should raise the error ``` Document clear reasons in test comments for any skip/xfail patterns to help maintain test clarity. #### Hypothesis tests We use Hypothesis to generate some random tests, to check for robustness. To keep local test suite times down, not all of these run by default - you can run them by passing the `--runslow` flag to PyTest (e.g. `uv run pytest --runslow`). #### Testing Dask and Modin To keep local development test times down, Dask and Modin are excluded from dev dependencies, and their tests only run in CI. If you re-sync with their extras: ```terminal uv sync --group local-dev --extra dask --extra modin ``` then their tests will run too. #### Testing cuDF We can't currently test in CI against cuDF, but you can test it manually in Kaggle using GPUs. Please follow this [Kaggle notebook](https://www.kaggle.com/code/marcogorelli/testing-cudf-in-narwhals) to run the tests. ### Imports In Narwhals, we are very particular about imports. When it comes to importing heavy third-party libraries (pandas, NumPy, Polars, etc...) please follow these rules: - Never import anything to do `isinstance` checks. Instead, just use the functions in `narwhals.dependencies` (such as `is_pandas_dataframe`); - If you need to import anything, do it in a place where you know that the import is definitely available. For example, NumPy is a required dependency of PyArrow, so it's OK to import NumPy to implement a PyArrow function - however, NumPy should never be imported to implement a Polars function. The only exception is for when there's simply no way around it by definition - for example, `Series.to_numpy` always requires NumPy to be installed. - Don't place a third-party import at the top of a file. Instead, place it in the function where it's used, so that we minimise the chances of it being imported unnecessarily. We're trying to be really lightweight and minimal-overhead, and unnecessary imports can slow things down. ## AI-assisted contributions We do not categorically reject AI-assisted contributions, but we ask for transparency and accountability. The aim is to keep maintainer time focused on review quality, not on triaging machine-generated noise. 1. **Disclose AI usage in the PR description**: when opening a pull request, the template has a dedicated field that must be flagged to disclose whether or not the changes are AI assisted and which tools and models were used to achieve that. Disclosure is for transparency; it does not affect whether your PR is accepted. 2. **You are responsible for every line you submit, regardless of how it was produced**: the disclosure does not transfer responsibility to the tool. Before opening a PR, read through your diff and make sure you can explain and defend each change in review. 3. **Engage with review feedback**: we reserve the right to close, without extended discussion, pull requests where the author does not engage with reviewer comments. **This applies whether or not AI was used.** 4. **First-time contributors** are asked to: - Post a screenshot of the test suite passing locally (not on CI) in the PR description. This is a quick check that your dev environment works and that you have run the code you are proposing. - Keep at most one open pull request at a time, so reviewers can give it proper attention before you open the next one. 5. When interacting in issues, pull requests, discussion, discord, etc., **do not use LLMs to speak for you**, except for translation or grammar edits. Human-to-human communication is foundational to open source communities. ## Claiming issues If you start working on an issue, it's usually a good idea to let others know about this in order to avoid duplicating work. Do: - When you're about to start working on an issue, and have understood the requirements and have some idea of what a solution would involve, comment "I've started working on this". - Push partial work (even if unfinished) to a branch, which you can open in "draft" state. - If someone else has commented that they're working on an issue but hadn't made any public work for 1-2 weeks, it's usually OK to assume that they're no longer working on it. Don't: - Don't claim issues that you intend to work on at a later date. For example, if it's Monday and you see an issue that interests you and you would like to work on it on Sunday, then the correct time to write "I'm working on this" is on Sunday when you start working on it. - Don't ask for permission to work on issues, or to be assigned them. You have permission, we accept (and welcome!) contributions from everyone! ## Behaviour towards other contributors or maintainers Above all else, please assume good intentions and go the extra mile to be super-extra-nice. Some general guidelines: - If in doubt, err on the side of being warm rather than being cold. - If in doubt, put one extra positive emoji than one fewer one. - Never delete or dismiss other maintainers' comments. - Non-maintainers' comments should only be deleted if they are unambiguously spam (e.g. crypto adverts). In cases of rude or abusive behaviour, please contact the project author (`@MarcoGorelli`). - Avoid escalating conflicts. People type harder than they speak, and online discourse is especially difficult. Again, please assume good intentions. ## Happy contributing! Please remember to abide by the code of conduct, else you'll be conducted away from this project. ## Community Calendar We have a community call every 2 weeks, all welcome to attend. [Subscribe to our calendar](https://calendar.google.com/calendar/embed?src=27ff6dc5f598c1d94c1f6e627a1aaae680e2fac88f848bda1f2c7946ae74d5ab%40group.calendar.google.com). narwhals-2.26.0/LICENSE.md000066400000000000000000000020721525000603700150230ustar00rootroot00000000000000MIT License Copyright (c) 2024 to present, Marco Gorelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. narwhals-2.26.0/Makefile000066400000000000000000000045651525000603700150700ustar00rootroot00000000000000# Mostly based on polars Makefile # https://github.com/pola-rs/polars/blob/main/py-polars/Makefile .DEFAULT_GOAL := help .PHONY: help help: ## Display this help screen @echo -e "\033[1mAvailable commands:\033[0m" @grep -E '^[a-z.A-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-22s\033[0m %s\n", $$1, $$2}' | sort .PHONY: lint lint: ## Run code formatting and linting via ruff prek run ruff-format --all-files prek run ruff-check --all-files .PHONY: typing typing: ## Run type checkers uv run --group typing pyright uv run --group typing mypy uv run --group typing pyrefly check .PHONY: typing-coverage typing-coverage: ## Run type checkers uv run --group typing pyrefly coverage check src/narwhals --public-only .PHONY: docs-dynamic-content docs-dynamic-content: ## Regenerate the dynamic docs pages (API completeness tables, docs/this.md, ...) uv run --group docs --extra dask --extra ibis utils/generate_backend_completeness.py uv run --group docs utils/generate_zen_content.py .PHONY: docs-build docs-build: ## Build the docs from a clean state, failing on warnings $(MAKE) docs-dynamic-content uv run --group docs zensical build --clean --strict .PHONY: docs-serve docs-serve: ## Serve the docs locally $(MAKE) docs-dynamic-content uv run --group docs zensical serve .PHONY: docs-clean-serve docs-clean-serve: ## Rebuild docs from a clean state and serve them locally $(MAKE) docs-build uv run --group docs zensical serve .PHONY: run-ci run-ci: ## Print resolved deps, then run a command via uv. Usage: make run-ci DEPS="" CMD="" [RUN_ONLY=""] uv export --no-annotate --no-hashes $(DEPS) uv run $(DEPS) $(RUN_ONLY) $(CMD) .PHONY: doctest doctest: ## Run doctests make run-ci \ DEPS="--extra pandas --extra dask --group core-tests --group sklearn" \ CMD="pytest src --doctest-modules" .PHONY: test-full-coverage test-full-coverage: ## Run the full test suite with 100% coverage across all constructors as in CI PYTEST_ADDOPTS="--numprocesses=logical" make run-ci \ DEPS="--extra pandas --extra dask --group core-tests --group sklearn --group plugins" \ CMD="pytest tests --cov=src --cov=tests --cov-fail-under=100 --runslow --durations=30 --constructors=pandas,pandas[nullable],pandas[pyarrow],pyarrow,polars[eager],polars[lazy],dask,duckdb,sqlframe" narwhals-2.26.0/README.md000066400000000000000000000313261525000603700147020ustar00rootroot00000000000000# Narwhals

narwhals_small

[![PyPI version](https://badge.fury.io/py/narwhals.svg)](https://badge.fury.io/py/narwhals) [![Downloads](https://static.pepy.tech/badge/narwhals/month)](https://pepy.tech/project/narwhals) [![Trusted publishing](https://img.shields.io/badge/Trusted_publishing-Provides_attestations-bright_green)](https://peps.python.org/pep-0740/) [![PYPI - Types](https://img.shields.io/pypi/types/narwhals)](https://pypi.org/project/narwhals) [![LFX Health Score](https://insights.linuxfoundation.org/api/badge/health-score?project=narwhals-dev-narwhals)](https://insights.linuxfoundation.org/project/narwhals-dev-narwhals) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/narwhals-dev/narwhals/badge)](https://securityscorecards.dev/viewer/?uri=github.com/narwhals-dev/narwhals) Extremely lightweight and extensible compatibility layer between dataframe libraries! - **Full API support**: cuDF, Modin, pandas, Polars, PyArrow. - **Lazy-only support**: Dask, DuckDB, Ibis, PySpark, SQLFrame, and Daft via the [narwhals-daft](https://github.com/narwhals-dev/narwhals-daft) plugin. Seamlessly support all, without depending on any! - โœ… **Just use** [a subset of **the Polars API**](https://narwhals-dev.github.io/narwhals/api-reference/), no need to learn anything new - โœ… **Zero dependencies**, Narwhals only uses what the user passes in so your library can stay lightweight - โœ… Separate **lazy** and eager APIs, use **expressions** - โœ… Support pandas' complicated type system and index, without either getting in the way - โœ… **100% branch coverage**, tested against pandas and Polars nightly builds - โœ… **Negligible overhead**, see [overhead](https://narwhals-dev.github.io/narwhals/overhead/) - โœ… Let your IDE help you thanks to **full static typing**, see [typing](https://narwhals-dev.github.io/narwhals/api-reference/typing/) - โœ… **Perfect backwards compatibility policy**, see [stable api](https://narwhals-dev.github.io/narwhals/backcompat/) for how to opt-in Get started! - [Read the documentation](https://narwhals-dev.github.io/narwhals/) - [Chat with us on Discord!](https://discord.gg/V3PqtB4VA4) - [Join our community call](https://calendar.google.com/calendar/embed?src=27ff6dc5f598c1d94c1f6e627a1aaae680e2fac88f848bda1f2c7946ae74d5ab%40group.calendar.google.com) - [Read the contributing guide](https://github.com/narwhals-dev/narwhals/blob/main/CONTRIBUTING.md)
Table of contents - [Narwhals](#narwhals) - [Installation](#installation) - [Usage](#usage) - [Example](#example) - [Scope](#scope) - [Roadmap](#roadmap) - [Used by](#used-by) - [Sponsors and institutional partners](#sponsors-and-institutional-partners) - [Support](#support) - [Appears on](#appears-on) - [Why "Narwhals"?](#why-narwhals)
## Installation - pip (recommended, as it's the most up-to-date) ``` pip install narwhals ``` - conda-forge (also fine, but the latest version may take longer to appear) ``` conda install -c conda-forge narwhals ``` ## Usage There are three steps to writing dataframe-agnostic code using Narwhals: 1. use `narwhals.from_native` to wrap a pandas/Polars/Modin/cuDF/PyArrow DataFrame/LazyFrame in a Narwhals class 2. use the [subset of the Polars API supported by Narwhals](https://narwhals-dev.github.io/narwhals/api-reference/) 3. use `narwhals.to_native` to return an object to the user in its original dataframe flavour. For example: - if you started with pandas, you'll get pandas back - if you started with Polars, you'll get Polars back - if you started with Modin, you'll get Modin back (and compute will be distributed) - if you started with cuDF, you'll get cuDF back (and compute will happen on GPU) - if you started with PyArrow, you'll get PyArrow back

narwhals_gif

## Example Narwhals allows you to define dataframe-agnostic functions. For example: ```python import narwhals as nw from narwhals.typing import IntoFrameT def agnostic_function(df_native: IntoFrameT) -> IntoFrameT: return ( nw.from_native(df_native) .with_columns( category=nw.when(nw.col("animal").str.contains("whale")) .then(nw.lit("whale")) .otherwise(nw.lit("other")) ) .to_native() ) ``` You can then pass `pandas.DataFrame`, `polars.DataFrame`, `polars.LazyFrame`, `duckdb.DuckDBPyRelation`, `pyspark.sql.DataFrame`, `pyarrow.Table`, and more, to `agnostic_function`. In each case, no additional dependencies will be required, and computation will stay native to the input library: ```python import duckdb import polars as pl import pandas as pd data = { "animal": ["blue whale", "orca", "dolphin", "humpback whale", "seal"], "length_m": [30.0, 8, 2.5, 17, 2.2], "weight_kg": [150000, 4000, 200, 30000, 85], } print("Polars result") df_pl = pl.DataFrame(data) print(agnostic_function(df_pl)) print("DuckDB result") print(agnostic_function(duckdb.sql("select * from df_pl"))) print("pandas result") df_pd = pd.DataFrame(data) print(agnostic_function(df_pd)) ``` ```terminal Polars result shape: (5, 4) โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ animal โ”† length_m โ”† weight_kg โ”† category โ”‚ โ”‚ --- โ”† --- โ”† --- โ”† --- โ”‚ โ”‚ str โ”† f64 โ”† i64 โ”† str โ”‚ โ•žโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ชโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ชโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ชโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ก โ”‚ blue whale โ”† 30.0 โ”† 150000 โ”† whale โ”‚ โ”‚ orca โ”† 8.0 โ”† 4000 โ”† other โ”‚ โ”‚ dolphin โ”† 2.5 โ”† 200 โ”† other โ”‚ โ”‚ humpback whale โ”† 17.0 โ”† 30000 โ”† whale โ”‚ โ”‚ seal โ”† 2.2 โ”† 85 โ”† other โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ DuckDB result โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ animal โ”‚ length_m โ”‚ weight_kg โ”‚ category โ”‚ โ”‚ varchar โ”‚ double โ”‚ int64 โ”‚ varchar โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ blue whale โ”‚ 30.0 โ”‚ 150000 โ”‚ whale โ”‚ โ”‚ orca โ”‚ 8.0 โ”‚ 4000 โ”‚ other โ”‚ โ”‚ dolphin โ”‚ 2.5 โ”‚ 200 โ”‚ other โ”‚ โ”‚ humpback whale โ”‚ 17.0 โ”‚ 30000 โ”‚ whale โ”‚ โ”‚ seal โ”‚ 2.2 โ”‚ 85 โ”‚ other โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ pandas result animal length_m weight_kg category 0 blue whale 30.0 150000 whale 1 orca 8.0 4000 other 2 dolphin 2.5 200 other 3 humpback whale 17.0 30000 whale 4 seal 2.2 85 other ``` See the [tutorial](https://narwhals-dev.github.io/narwhals/basics/dataframe/) for several examples! ## Scope - Do you maintain a dataframe-consuming library? - Do you have a specific Polars function in mind that you would like Narwhals to have in order to make your work easier? If you said yes to both, we'd love to hear from you! ## Roadmap See [roadmap discussion on GitHub](https://github.com/narwhals-dev/narwhals/discussions/1370) for an up-to-date plan of future work. ## Used by Join the party! - [altair](https://github.com/vega/altair/) - [bokeh](https://github.com/bokeh/bokeh) - [darts](https://github.com/unit8co/darts) - [fairlearn](https://github.com/fairlearn/fairlearn) - [formulaic](https://github.com/matthewwardrop/formulaic) - [gt-extras](https://github.com/posit-dev/gt-extras) - [hierarchicalforecast](https://github.com/Nixtla/hierarchicalforecast) - [lightgbm](https://github.com/lightgbm-org/LightGBM) - [marimo](https://github.com/marimo-team/marimo) - [metalearners](https://github.com/Quantco/metalearners) - [mosaic](https://github.com/uwdata/mosaic) - [pandera](https://github.com/pandera-dev/pandera) - [panel-graphic-walker](https://github.com/panel-extensions/panel-graphic-walker) - [plotly](https://plotly.com) - [pointblank](https://github.com/posit-dev/pointblank) - [pymarginaleffects](https://github.com/vincentarelbundock/pymarginaleffects) - [pyreadstat](https://github.com/Roche/pyreadstat) - [py-shiny](https://github.com/posit-dev/py-shiny) - [pysummaries](https://github.com/Genentech/pysummaries) - [rio](https://github.com/rio-labs/rio) - [scikit-learn](https://github.com/scikit-learn/scikit-learn) - [scikit-lego](https://github.com/koaning/scikit-lego) - [scikit-playtime](https://github.com/koaning/scikit-playtime) - [tabmat](https://github.com/Quantco/tabmat) - [tea-tasting](https://github.com/e10v/tea-tasting) - [timebasedcv](https://github.com/FBruzzesi/timebasedcv) - [tubular](https://github.com/lvgig/tubular) - [Validoopsie](https://github.com/akmalsoliev/Validoopsie) - [vegafusion](https://github.com/vega/vegafusion) - [wimsey](https://github.com/benrutter/wimsey) Feel free to add your project to the list if it's missing, and/or [chat with us on Discord](https://discord.gg/V3PqtB4VA4) if you'd like any support. ## Sponsors and institutional partners Narwhals is 100% independent, community-driven, and community-owned. We are extremely grateful to the following organisations for having provided some funding / development time: - [Quansight Labs](https://labs.quansight.org) - [Quansight Futures](https://www.qi.ventures) - [OpenTeams](https://www.openteams.com) - [POSSEE initiative](https://possee.org) - [BYU-Idaho](https://www.byui.edu) - [Intella](https://www.intella.tech/) If you contribute to Narwhals on your organization's time, please let us know. We'd be happy to add your employer to this list! ## Support If you'd like to say "thank you", please give us a โญ star โญ. Please contact [hello_narwhals@proton.me](mailto:hello_narwhals@proton.me) if you would like to: - Receive professional support (e.g., if you're using or would like to use Narwhals at your company). - Have any Narwhals fixes / features prioritised. - Commission any Narwhals plugins for new backends. ## Appears on Narwhals has been featured in several talks, podcasts, and blog posts: - [Inspiring Computing Podcast](https://www.inspiringcomputing.com/2107763/episodes/16702460-the-rise-of-narwhals-in-open-source) The Rise of Narwhals in Open-Source - [PyCon DE & PyData 2025](https://youtu.be/DJk782DWcss) How Narwhals is silently bringing pandas, Polars, DuckDB, PyArrow, and more together - [The Python Exchange March 2025](https://youtu.be/TvFWFlK-2po) What Can Narwhals Do for You? - [PyData London 2025](https://youtu.be/r2PxJlO7_QA) How Narwhals brings Polars, DuckDB, PyArrow, & pandas together - [Talk Python to me Podcast](https://youtu.be/FSH7BZ0tuE0) Ahoy, Narwhals are bridging the data science APIs - [Python Bytes Podcast](https://www.youtube.com/live/N7w_ESVW40I?si=y-wN1uCsAuJOKlOT&t=382) Episode 402, topic #2 - [Super Data Science: ML & AI Podcast](https://www.youtube.com/watch?v=TeG4U8R0U8U) Narwhals: For Pandas-to-Polars DataFrame Compatibility - [Sample Space Podcast | probabl](https://youtu.be/8hYdq4sWbbQ?si=WG0QP1CZ6gkFf18b) How Narwhals has many end users ... that never use it directly. - Marco Gorelli - [The Real Python Podcast](https://www.youtube.com/watch?v=w5DFZbFYzCM) Narwhals: Expanding DataFrame Compatibility Between Libraries - [Pycon Lithuania 2024](https://www.youtube.com/watch?v=-mdx7Cn6_6E) Marco Gorelli - DataFrame interoperatiblity - what's been achieved, and what comes next? - [Pycon Italy 2024](https://www.youtube.com/watch?v=3IqUli9XsmQ) How you can write a dataframe-agnostic library - Marco Gorelli - [Polars Blog Post](https://pola.rs/posts/lightweight_plotting/) Polars has a new lightweight plotting backend - [Quansight Labs blog post (w/ Scikit-Lego)](https://labs.quansight.org/blog/scikit-lego-narwhals) How Narwhals and scikit-lego came together to achieve dataframe-agnosticism ## Why "Narwhals"? [Coz they are so awesome](https://youtu.be/ykwqXuMPsoc?si=A-i8LdR38teYsos4). Thanks to [Olha Urdeichuk](https://www.fiverr.com/olhaurdeichuk) for the illustration! narwhals-2.26.0/_typos.toml000066400000000000000000000005411525000603700156300ustar00rootroot00000000000000[default.extend-words] ser = "ser" # Used in Series classes ND = "ND" # Used in NativeNDFrameT ba = "ba" # Used as column name in docstring examples (way too much?) iy = "iy" # Used as column name (once in a test) pn = "pn" # Used in docs: pn = PandasLikeNamespace(...) TYP = "TYP" # Used in flake8 rule [files] extend-exclude = ["tests/data/*"] narwhals-2.26.0/docs/000077500000000000000000000000001525000603700143465ustar00rootroot00000000000000narwhals-2.26.0/docs/api-completeness/000077500000000000000000000000001525000603700176165ustar00rootroot00000000000000narwhals-2.26.0/docs/api-completeness/index.md000066400000000000000000000007271525000603700212550ustar00rootroot00000000000000--- search: exclude: true --- # API Completeness In the following section it is possible to check which method is implemented for which class and backend. !!! info - By design, Polars supports all the methods of the Narwhals API. - "pandas-like" means pandas, cuDF and Modin. - "spark-like" means PySpark (including Spark Connect) and SQLFrame. - Backends provided by [plugins](../extending.md) (such as Daft) are not covered by these tables. narwhals-2.26.0/docs/api-reference/000077500000000000000000000000001525000603700170535ustar00rootroot00000000000000narwhals-2.26.0/docs/api-reference/dataframe.md000066400000000000000000000022611525000603700213220ustar00rootroot00000000000000# `narwhals.DataFrame` ::: narwhals.dataframe.DataFrame handler: python options: members: - __arrow_c_stream__ - __getitem__ - clone - collect_schema - columns - drop - drop_nulls - estimated_size - explode - filter - from_arrow - from_dict - from_dicts - from_numpy - gather_every - get_column - group_by - head - implementation - is_duplicated - is_empty - is_unique - item - iter_columns - iter_rows - join - join_asof - lazy - null_count - pipe - pivot - rename - row - rows - sample - schema - select - shape - sort - tail - to_arrow - to_dict - to_native - to_numpy - to_pandas - to_polars - top_k - unique - unpivot - with_columns - with_row_index - write_csv - write_parquet show_source: false show_bases: false inherited_members: true narwhals-2.26.0/docs/api-reference/dependencies.md000066400000000000000000000015711525000603700220270ustar00rootroot00000000000000# `narwhals.dependencies` ::: narwhals.dependencies handler: python options: members: - get_cudf - get_ibis - get_modin - get_pandas - get_polars - get_pyarrow - is_cudf_dataframe - is_cudf_index - is_cudf_series - is_dask_dataframe - is_ibis_table - is_into_dataframe - is_into_series - is_modin_dataframe - is_modin_index - is_modin_series - is_numpy_array - is_pandas_dataframe - is_pandas_index - is_pandas_like_dataframe - is_pandas_like_index - is_pandas_like_series - is_pandas_series - is_polars_dataframe - is_polars_lazyframe - is_polars_series - is_pyarrow_chunked_array - is_pyarrow_table show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/dtypes.md000066400000000000000000000016361525000603700207130ustar00rootroot00000000000000# `narwhals.dtypes` ::: narwhals.dtypes handler: python options: members: - DType - NumericType - Decimal - FloatType - Float16 - Float32 - Float64 - IntegerType - SignedIntegerType - Int8 - Int16 - Int32 - Int64 - Int128 - UnsignedIntegerType - UInt8 - UInt16 - UInt32 - UInt64 - UInt128 - TemporalType - Date - Datetime - Duration - Time - NestedType - Array - List - Field - Struct - String - Categorical - Enum - Binary - Boolean - Object - Unknown show_root_heading: false show_source: false show_bases: true filters: - "!^_" - "^__eq__$" inherited_members: false narwhals-2.26.0/docs/api-reference/exceptions.md000066400000000000000000000006331525000603700215600ustar00rootroot00000000000000# `narwhals.exceptions` ::: narwhals.exceptions handler: python options: members: - ColumnNotFoundError - ComputeError - DuplicateError - InvalidIntoExprError - InvalidOperationError - MultiOutputExpressionError - NarwhalsUnstableWarning - ShapeError - UnsupportedDTypeError show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/expr.md000066400000000000000000000023531525000603700203560ustar00rootroot00000000000000# `narwhals.Expr` ::: narwhals.Expr handler: python options: members: - abs - alias - all - any - any_value - cast - ceil - clip - cos - count - cum_count - cum_max - cum_min - cum_prod - cum_sum - diff - drop_nulls - ewm_mean - exp - fill_nan - fill_null - filter - first - floor - is_between - is_close - is_duplicated - is_finite - is_first_distinct - is_in - is_last_distinct - is_nan - is_null - is_unique - kurtosis - last - len - log - map_batches - max - mean - median - min - mode - n_unique - null_count - over - pipe - quantile - rank - replace_strict - rolling_mean - rolling_std - rolling_sum - rolling_var - round - shift - sin - skew - sqrt - std - sum - unique - var show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/expr_cat.md000066400000000000000000000002641525000603700212040ustar00rootroot00000000000000# `narwhals.Expr.cat` ::: narwhals.expr.ExprCatNamespace handler: python options: members: - get_categories show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/expr_dt.md000066400000000000000000000012021525000603700210350ustar00rootroot00000000000000# `narwhals.Expr.dt` ::: narwhals.expr.ExprDateTimeNamespace handler: python options: members: - convert_time_zone - date - day - hour - microsecond - millisecond - minute - month - nanosecond - offset_by - ordinal_day - replace_time_zone - second - timestamp - to_string - total_microseconds - total_milliseconds - total_minutes - total_nanoseconds - total_seconds - truncate - weekday - year show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/expr_list.md000066400000000000000000000004661525000603700214140ustar00rootroot00000000000000# `narwhals.Expr.list` ::: narwhals.expr.ExprListNamespace handler: python options: members: - contains - get - len - max - mean - median - min - sort - sum - unique show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/expr_name.md000066400000000000000000000004121525000603700213500ustar00rootroot00000000000000# `narwhals.Expr.name` ::: narwhals.expr.ExprNameNamespace handler: python options: members: - keep - map - prefix - suffix - to_lowercase - to_uppercase show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/expr_str.md000066400000000000000000000011261525000603700212430ustar00rootroot00000000000000# `narwhals.Expr.str` ::: narwhals.expr.ExprStringNamespace handler: python options: members: - contains - ends_with - head - len_chars - pad_end - pad_start - replace - replace_all - slice - split - starts_with - strip_chars - strip_chars_end - strip_chars_start - tail - to_date - to_datetime - to_lowercase - to_time - to_titlecase - to_uppercase - zfill show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/expr_struct.md000066400000000000000000000002611525000603700217560ustar00rootroot00000000000000# `narwhals.Expr.struct` ::: narwhals.expr.ExprStructNamespace handler: python options: members: - field show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/group_by.md000066400000000000000000000002431525000603700212220ustar00rootroot00000000000000# `narwhals.GroupBy` ::: narwhals.group_by.GroupBy handler: python options: members: - agg show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/implementation.md000066400000000000000000000001631525000603700224220ustar00rootroot00000000000000# `narwhals.Implementation` ::: narwhals.Implementation handler: python options: show_source: false narwhals-2.26.0/docs/api-reference/index.md000066400000000000000000000020041525000603700205000ustar00rootroot00000000000000# API Reference - [Top-level functions](narwhals.md) - [narwhals.DataFrame](dataframe.md) - [narwhals.Expr](expr.md) - [narwhals.Expr.cat](expr_cat.md) - [narwhals.Expr.dt](expr_dt.md) - [narwhals.Expr.list](expr_list.md) - [narwhals.Expr.name](expr_name.md) - [narwhals.Expr.str](expr_str.md) - [narwhals.Expr.struct](expr_struct.md) - [narwhals.GroupBy](group_by.md) - [narwhals.LazyGroupBy](lazy_group_by.md) - [narwhals.LazyFrame](lazyframe.md) - [narwhals.Schema](schema.md) - [narwhals.Series](series.md) - [narwhals.Series.cat](series_cat.md) - [narwhals.Series.dt](series_dt.md) - [narwhals.Series.list](series_list.md) - [narwhals.Series.str](series_str.md) - [narwhals.Series.struct](series_struct.md) - [narwhals.dependencies](dependencies.md) - [narwhals.Implementation](implementation.md) - [narwhals.dtypes](dtypes.md) - [narwhals.exceptions](exceptions.md) - [narwhals.selectors](selectors.md) - [narwhals.sql](sql.md) - [narwhals.testing](testing.md) - [narwhals.typing](typing.md) - [narwhals.utils](utils.md) narwhals-2.26.0/docs/api-reference/lazy_group_by.md000066400000000000000000000002531525000603700222620ustar00rootroot00000000000000# `narwhals.LazyGroupBy` ::: narwhals.group_by.LazyGroupBy handler: python options: members: - agg show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/lazyframe.md000066400000000000000000000013151525000603700213670ustar00rootroot00000000000000# `narwhals.LazyFrame` ::: narwhals.dataframe.LazyFrame handler: python options: members: - collect - collect_schema - columns - drop - drop_nulls - explode - filter - gather_every - group_by - head - implementation - join - join_asof - lazy - pipe - rename - schema - select - sink_parquet - sort - tail - to_native - top_k - unique - unpivot - with_columns - with_row_index show_root_heading: false show_source: false show_bases: false inherited_members: true narwhals-2.26.0/docs/api-reference/narwhals.md000066400000000000000000000022231525000603700212130ustar00rootroot00000000000000# Top-level functions Here are the top-level functions available in Narwhals. ::: narwhals handler: python options: members: - all - all_horizontal - any_horizontal - coalesce - col - concat - concat_str - corr - cov - exclude - format - from_arrow - from_dict - from_dicts - from_native - from_numpy - generate_temporary_column_name - get_native_namespace - is_ordered_categorical - len - list - lit - max - max_horizontal - maybe_align_index - maybe_convert_dtypes - maybe_get_index - maybe_reset_index - maybe_set_index - mean - mean_horizontal - median - min - min_horizontal - narwhalify - new_series - nth - read_csv - read_parquet - scan_csv - scan_parquet - show_versions - struct - sum - sum_horizontal - to_native - to_py_scalar - when show_source: false narwhals-2.26.0/docs/api-reference/schema.md000066400000000000000000000005661525000603700206440ustar00rootroot00000000000000# `narwhals.Schema` ::: narwhals.schema.Schema handler: python options: members: - dtypes - from_arrow - from_native - from_pandas_like - from_polars - len - names - to_arrow - to_pandas - to_polars show_root_heading: false show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/selectors.md000066400000000000000000000010151525000603700213750ustar00rootroot00000000000000# `narwhals.selectors` The following selectors are all supported. In addition, just like in Polars, the following set operations are supported: - set intersection: `&` - set union: `|` - set difference: `-` - complement: `~` ::: narwhals.selectors handler: python options: members: - boolean - by_dtype - categorical - datetime - enum - matches - numeric - string show_root_heading: false show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/series.md000066400000000000000000000035351525000603700206750ustar00rootroot00000000000000# `narwhals.Series` ::: narwhals.series.Series handler: python options: members: - __arrow_c_stream__ - __contains__ - __getitem__ - __iter__ - abs - alias - all - any - any_value - arg_max - arg_min - arg_true - cast - ceil - clip - cos - count - cum_count - cum_max - cum_min - cum_prod - cum_sum - diff - drop_nulls - dtype - ewm_mean - exp - fill_nan - fill_null - filter - first - floor - from_iterable - from_numpy - gather_every - head - hist - implementation - is_between - is_close - is_duplicated - is_empty - is_finite - is_first_distinct - is_in - is_last_distinct - is_nan - is_null - is_sorted - is_unique - item - kurtosis - last - len - log - max - mean - median - min - mode - n_unique - name - null_count - pipe - quantile - rank - rename - replace_strict - rolling_mean - rolling_std - rolling_sum - rolling_var - round - sample - scatter - shape - shift - sin - skew - sort - sqrt - std - sum - tail - to_arrow - to_dummies - to_frame - to_list - to_native - to_numpy - to_pandas - to_polars - unique - value_counts - var - zip_with show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/series_cat.md000066400000000000000000000002721525000603700215170ustar00rootroot00000000000000# `narwhals.Series.cat` ::: narwhals.series.SeriesCatNamespace handler: python options: members: - get_categories show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/series_dt.md000066400000000000000000000012101525000603700213500ustar00rootroot00000000000000# `narwhals.Series.dt` ::: narwhals.series.SeriesDateTimeNamespace handler: python options: members: - convert_time_zone - date - day - hour - microsecond - millisecond - minute - month - nanosecond - offset_by - ordinal_day - replace_time_zone - second - timestamp - to_string - total_microseconds - total_milliseconds - total_minutes - total_nanoseconds - total_seconds - truncate - weekday - year show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/series_list.md000066400000000000000000000004741525000603700217270ustar00rootroot00000000000000# `narwhals.Series.list` ::: narwhals.series.SeriesListNamespace handler: python options: members: - contains - get - len - max - mean - median - min - sort - sum - unique show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/series_str.md000066400000000000000000000011341525000603700215560ustar00rootroot00000000000000# `narwhals.Series.str` ::: narwhals.series.SeriesStringNamespace handler: python options: members: - contains - ends_with - head - len_chars - pad_end - pad_start - replace - replace_all - slice - split - starts_with - strip_chars - strip_chars_end - strip_chars_start - tail - to_date - to_datetime - to_lowercase - to_time - to_titlecase - to_uppercase - zfill show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/series_struct.md000066400000000000000000000002671525000603700223000ustar00rootroot00000000000000# `narwhals.Series.struct` ::: narwhals.series.SeriesStructNamespace handler: python options: members: - field show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/sql.md000066400000000000000000000003601525000603700201730ustar00rootroot00000000000000# `narwhals.sql` ::: narwhals.sql handler: python options: members: - table ::: narwhals.sql.SQLTable handler: python options: members: - to_sql show_source: false show_bases: false narwhals-2.26.0/docs/api-reference/testing.md000066400000000000000000000002261525000603700210520ustar00rootroot00000000000000# `narwhals.testing` ::: narwhals.testing handler: python options: members: - assert_frame_equal - assert_series_equal narwhals-2.26.0/docs/api-reference/typing.md000066400000000000000000000040231525000603700207060ustar00rootroot00000000000000# `narwhals.typing` Narwhals comes fully statically typed. In addition to `nw.DataFrame`, `nw.Expr`, `nw.Series`, `nw.LazyFrame`, we also provide the following type hints: ::: narwhals.typing handler: python options: members: - DataFrameT - Frame - FrameT - IntoDataFrame - IntoDataFrameT - IntoExpr - IntoFrame - IntoFrameT - IntoSeries - IntoSeriesT - IntoBackend - Backend - EagerAllowed - LazyAllowed - IntoDType - IntoSchema - SizeUnit - TimeUnit - AsofJoinStrategy - ClosedInterval - ConcatMethod - FillNullStrategy - JoinStrategy - ModeKeepStrategy - PivotAgg - RankMethod - RollingInterpolationMethod - UniqueKeepStrategy show_source: false show_bases: false ## `nw.narwhalify`, or `nw.from_native`? Although some people find the former more readable, the latter is better at preserving type hints. Here's an example: ```py import polars as pl import narwhals as nw from narwhals.typing import IntoDataFrameT, DataFrameT df = pl.DataFrame({"a": [1, 2, 3]}) def func(df_native: IntoDataFrameT) -> IntoDataFrameT: df = nw.from_native(df_native, eager_only=True) return df.select(b=nw.col("a")).to_native() reveal_type(func(df)) @nw.narwhalify(strict=True) def func_2(df: DataFrameT) -> DataFrameT: return df.select(b=nw.col("a")) reveal_type(func_2(df)) ``` Running `mypy` on it gives: ```console $ mypy t.py t.py:13: note: Revealed type is "polars.dataframe.frame.DataFrame" t.py:21: note: Revealed type is "Any" Success: no issues found in 1 source file ``` In the first case, mypy can infer that `df` is a `polars.DataFrame`. In the second case, it can't. If you want to make the most out of type hints and preserve them as much as possible, we recommend `nw.from_native` and `nw.to_native`. Type hints will still be respected inside the function body if you type the arguments. narwhals-2.26.0/docs/api-reference/utils.md000066400000000000000000000003301525000603700205310ustar00rootroot00000000000000# `narwhals.utils` ::: narwhals.utils handler: python options: members: - Implementation - parse_version show_root_heading: false show_source: false show_bases: false narwhals-2.26.0/docs/assets/000077500000000000000000000000001525000603700156505ustar00rootroot00000000000000narwhals-2.26.0/docs/assets/image.png000077500000000000000000021666261525000603700174660ustar00rootroot00000000000000‰PNG  IHDR๐๐Yฌ=ๆgAMAฑŽ|๛Q“ cHRM‡Œ�R@}y้‹<ๅฬs<…w /iCCPICC ProfileHว–wTTื‡ฯฝwzกอ0R†�ปภา{“^Ea˜`(34ฑ!ขEDš"HPฤ€ัP$VDฑTฐ$(1ET,oFึ‹ฎฌผ๗๒๒๛ใฌoํณ๗น๛์ฝฯZ’ง/——Kส๐ƒ<œ้‘Qt์€`€)LVFบ_ฐ{ษหอ…ž!r_๐zXผpำะ3€N�ŸคY้|่˜›ณ9,ˆ8%K.ถฯŠ˜—,f%fพ(Aห‰9a‘ >๛,ฒฃ˜ูฉ<ถˆล9งณSูb๎๑ถL!Gฤˆฏˆ 3นœ,฿ฑFŠ0•+โ7โุT3IlpX‰"61‰ไ"โๅเH _q�W,เd ฤ—rIKฯแst–.�ิฺšA๗ไdฅpร&+™ษgำ]าRำ™ผ๏�Y2โฺาEEถ4ตถด4432�ชP�u๓oJ��Ez๘นgญ�‹ํฏ�า`ฬ‰jณ๓‹-ฎ €ฮ-ศ�๛bำ8€คจoืฟบM๎๒ะ]9๑LaŠ€.ฎ+-%Mศงgค3YบแŸ‡๘�uAœxŸรE„‰ฆŒหKต›วๆ ธi<:—๗Ÿš๘ร�คลน‰า๘PcŒ€ิu*@~ํ(  ั๛ล]�ฃoพ๘0 ~yแ*“‹s�๏7�gมฅโ%ƒ›๐9ฮ%(„ฮ๒3๗ฤฯ H*ส@่C`ฌ€-pnภ๘ƒ VHฉ€ฒ@ุ A1ุ ๖€jPA3hวA'8ฮƒKเธnƒ๛`L€g`ผ a!2Dไ!Hา‡ฬ dนAพP ลB Byะfจ*ƒชกzจ๚: ‡ฎ@ƒะ]h š†~‡�มL‚ฉฐฌร ุ ๖CเUpผฮ… เp%�…;เ๓๐5๘6< ?ƒ็€ขŠ" ฤ๑Gขx„ฌGА คiEบ‘>ไ&2Šฬ oQEGขlQžจP ตตU‚ชFFu zQ7QcจYิG4ญˆึG� ฝะ่tบ]nBทฃ/ขoฃ'ะฏ1 ฃฑยxb"1I˜ต˜ฬ>Lๆf3Ž™รbฑ๒X}ฌึหฤ ฐ…ุ*์Q์Y์v๛Gฤฉเฬp๎ธ(—ซภมม แ&q x)ผ&�๏gใs๐ฅ๘F|7�:~ฟ@&h์!„$ย&B%ก•p‘๐€๐’H$ชญ‰D.q#ฑ’xŒx™8F|K’!้‘\Hั$!i้้้.้%™Lึ";’ฃศ๒r3๙๙๙EยHยK‚-ฑAขFขCbHโน$^RSาIrตdฎd…ไ ษ๋’3Rx)-))ฆิzฉฉ“R#RsาiSi้T้้#าWคงdฐ2Z2n2l™™ƒ2dฦ)EโBaQ6S))T U›๊EMขSฟฃPgeed—ษ†ษfหึศž–ฅ!4-š-…VJ;Nฆฝ[ขดฤi gษ๖%ญK†–ฬห-•s”ใศษตษ�–{'O—w“O–฿%฿)�Pฅ งจฅฐ_แขยฬR๊R�ฅฌฅEK/ฝง+๊))ฎU<จุฏ8งคฌไก”ฎTฅtAiF™ฆ์จœค\ฎ|FyZ…ขbฏยU)W9ซ๒”.Kwขงะ+้ฝ๔YUEUOUกjฝ๊€๊‚šถZจZพZ›ฺCu‚:C=^ฝ\ฝG}VCEรO#OฃEใž&^“ก™จนWณOs^K[+\kซVงึ”ถœถ—vฎv‹๖ฒŽƒฮ[บ]†nฒ๎>�zฐž…^ข^�u}X฿RŸซฟOะm`mภ3h01$:fถŽัŒ|๒:žkG๏2๎3�hba’bาhr฿Tฦิ�4฿ด�๔w3=3–Yู-sฒนป๙๓.๓ห๔—q–ํ_vว‚bแgฑีขวโƒฅ•%฿ฒีrฺJร*ึชึj„Ae0J—ญัึฮึฌOYฟตฑดุท๙อึะ6ู๖ˆํิrํๅœๅหวํิ์˜v๕vฃ๖t๛X๛๖ฃชL‡‡วŽ๊Žlว&วI']ง$งฃNฯMœ๙ฮํฮ๓.6.๋\ฮน"ฎฎEฎn2nกnีn�ี��[�g=,<ึzœ๓D{๚x๎๒๑R๒by5{อz[yฏ๓๎๕!๙๛T๛<๖ี๓ๅ๛v๛ม~�~ป�ฌะ\ม[ั้�ฝ�w๛? ะX๐c &0 ฐ&๐IiP^P_0%8&๘H๐๋็า๛ก:กยะž0ษฐ่ฐๆฐ๙pื๐ฒ๐ัใˆuื""น‘]Qุจฐจฆจน•n+๗ฌœˆถˆ.Œ^ฅฝ*{ี•ี ซSVŸŽ‘ŒaฦœˆEว†ว‰}ฯ๔g60็โผโjใfY.ฌฝฌglGv9{šcว)ใLฦ�ล—ลO%ุ%์N˜NtHฌHœแบpซน/’<“๊’ๆ“�“%J OiKลฅฦฆžไษ๐’yฝiสiูiƒ้๚้…้ฃklึ์Y3ห๗แ7e@ซ2บTัฯTฟPGธE8–iŸY“๙&+,๋Dถt6/ป?G/g{ฮdฎ{๎ทkQkYk{๒T๓6ๅญsZWฟZทพgƒ๚†‚ =6�Dุ”ผ้ง|“�ฒ�W›ร7w(l,฿โฑฅฅPข_8ฒีvk�6ิ6๎ถํๆ�ซถ,b]-6)ฎ(~_ย*น๚้7•฿|ฺฟc ิฒt�NฬN�ฮแ]ป—I—ๅ–๏๖��QN//*ต'fฯ•Šeu{ {…{G+}+ปช4ชvVฝฏNฌพ]ใ\ำVซXปฝv~{฿ะ~ว�ญuJuลu๏p�ฉ๗จ๏hะjจ8ˆ9˜y๐IcXc฿ทŒo››šŠ›>โ=tธทูชน๙ˆโ‘าธEุ2}4๚่๏\ฟ๋j5lญoฃตว„วž~๛�๐qŸใ=''Zะ�กถา^ิuไtฬv&vŽvEv ž๔>ูำm���ฃั‡Nฉžช9-{บ๔ แLม™OgsฯฮK?7s>แ�xOLฯ� n๕๖\๔นx๙’๛ฅ }N}g/�]>uลๆสษซŒซื,ฏu๔[๔ท�d๑S๛€ๅ@วuซ๋]7ฌot.<3ไ0t�ฆ๋อKทผn]ปฝโ๖เp่๐‘่‘ั;์;SwS๎พธ—yoแ�ฦ่EฅV Adobe Photoshop 23.1 (Windows)Adobe Photoshop 23.1 (Windows)2024-01-17T16:25:162024-01-17T16:25:1602311 "ฏณ!tEXtCreation Time2024:01:17 16:25:16]๖yผ๑IDATx^D�Iฌek–็ �พ~wงนญuฏ๑็๎แัgSฅ ฏ”HQข)J! S  ฤ!@ ”!•`ข@Iๅ !$`‚@I‘ค*“ศศp็��={๖ฌฝ�้v๗ต ๖‰`fบf็ฺ9g๏�ญต��ฟ๛?๛ทสoฝ|ฮปำ‘๏Ÿ๖|พY๓โbร‡ใ)Žฌ๋– ?อ�์jหษ๛~‡E rแ‡แฤom.8ฅDง?^o8L‘๛=ฯWk๚่1ั“ฬR๐i๔RI๊”XYร)eฃBpm-wว^I็?ฮ d^ฎZ*ก qๆบ๋x๓๔ฤFinW+ฦx ™]ˆผ๊*>Œq˜‰นpˆ…Bฦ™พ๏‰Jใ็™ซ–็ท7คyF”ยJวž�๎ฤฑ๗˜ฦqc`*pi-ทตแjณๅ?๘“ฏxต�๒โbหeำฒฎjB)( น|. 1g†”ูM HBH(…\ ฒdR‚@˜SB”‚ %A AJJJ*R)ˆ9# RRสึrฮ”œAR.@Kน� –ื I,™œ3Y”$)ขCขไยก*c้ฌ&็BBH�ฬท‡ว๑žืป;๖�‘�ืo™?pๆขm๘ร/ฟเลบใลUวซ›ฦfดHฉ…6+”ดไ’ HR๒ฤ8PZIค\>“)Ak JNห็+๓๒~ฅ6P–๏DH" …$ๅLL‰ูgN�ศo?๒รปlบš›ห-9%ฌำ8k๘x๗„”ค"Xญj6›Ž๕jCก`ญB+…@! ”bนฎ PJ „@)ๆ�>ร๒^ h%าc"„ !Z+RŽฤ๘๎�#ฟ�๚[J˜นุด��o�˜ซซ+ฌ3$ ฅdR\~ŸR ! RคX�O,‚)e๎Ž=ฟบ{โื?|โ฿ฝ็Ÿฟฝgwš็@ Bเโลํถ#+Eฝ]sูuิZ๑nัZ#ฒภุ†)ฃ1๑0ฯlฌๆหํ†ูGฦœpRsfNQ AkO�ภmSs๏=WCฆ^nV|๐3F žี E@k4CสHฅ|@คย•3ฬ!ขฌ! ม…Qหu6Ga—+ฅXรษฯ�อ3Ÿ7+๖๓ฬqš0ฮกbเขrฉH)r๔g,…‚’วนvŽทำŒ-…Ÿด-SŒ„c@JEkkmฐB๐ษ{ŒRd%้”กU’>%‚“2Cฮฤ0R3ไฤแิ๓ฒmy ]œy˜fบ,๘๖ดว่๓�gถ%ั–ฤMcEแ‹�R–ิฦqYี�M�ถck,ตRฌดๅ�t‚ —u‡•‚Fjv) ฅd<‰ยZYŽ๓H%c\*T’)๖$ถฎข-…}dญpDฮ�‡ภ"?mทŒ%sส3ญฒlCศฅ  Lž�Lง4ต1Œ%“Œ91อ-’ว8qฬ‰Zh^U5E )J!ฤศชชฑR๓~ะฅp?{ด(ผ{~ปฝๅ1 haqขหภLเ…]aค&• h�ฬ=:ฯa1ฌ๘แ๔žต‚ฃDK2QI‰ี‚พ(Vjล1xฎœ#”B?๖๓LŠB!๓�๋ฦX~9˜ขhคd??๐E�pYฏ๘4eพ;l”ฆ3†ปฉ‡œy&žbเ™ญุOฦ:Rส�8CQŠฎช9ลฤ‡idซ$s@*ษ…$gO๔‘6‚๘ป�”zำ"“เO>ฏ,cL�‘‹ฎcฮ…ฺhN๓ฤถvคyBhCe+mีผู๏นj^JPัc*Eฅ%VJ�๒แ!7ๅG2+'ฏ๘qsษ\2ฟู๏๙8๔tBฐn*6Uล๛ำ‰)&ชฎๆฦZF™Jแงซ_๏<œz~�T$ฅษb9งทUอ�00O3าh”Tฌ•D๘๕n)เ�ฤ"WซŽŒ`gLษ(ญธ๋=kซนp3ง0qfฌึ๘Sฯeํจ�š‹ฎแŸ?็๓ํ†฿๙’Wซ R nฺg ฑ๚9ฬ• N BฮTฦ …%BJHฑ์H,‡~ษ…T ตT( SD!ฐZKAIrY xฬส๒บสhฤนฉ0R’J&F+Œฤ˜–ืๆDA ต$ศŠ”RH9#! ็ฆ"ไๅ็ไLg-ˆย๒R˜h)ฉ„bŽ‘fพ}zเ�้G�ภ(2ไu]qํ*ฎ•โEฃYซฬชjจฆฒ[25ฉhRN(ฅI9โรHฮrJ[คะ‘ัRRะ”’‘r)–!zR X�2‡‰R2ฮบฅ”Šˆ†\ ‚DN‚�nฯqˆ|๛ร'ฦifšff๏ฦˆำ’,NIn.พ���m‡”g+ึ๋–ยRฏs^ ฉ!@Mฮ‰œ—๗&ไาh $EJ!%)…s งศ9-ๅ�ณ„”Š9^|โรงG^ฟ�ž4Mผผ�๐โลs^พผก้* …R ม�4๑v?๑๕��๊�#o�?๒อง�Œ๏G\]ณZท\ิออ%๕ลšง”๙โzหa�ฯ‰MSqีิœผงค„ัเชฎˆั3„ฤ�จผ=žXEWW|ึJ!Œa๒ฉ[kY9หวqฤi…VKƒ5วภสhๆ‰N)ถmC–’kgBเKa.œๅำ8ฒBRiE‚1.ชŠ�8qUUlŒๆc๐lญ#ว„’’]˜9”ยoต+๚น๓"ežBเา*~ๆถnrยJEe ง˜ฐF๓4ฯ�ฺ (<ฮ3นดฌดแ0ฯK“ „๙ฒk)ฅ0–ย”2…B’K๓ไ๘”9๖}Œ�ๅaOUาR|rขN‘9Eฺส๒ฃึ๒“nอc‰ฌ๋ธช[:็pาpŠ™cŒkXวั{ž79�De[mฐฦ@‘์sภj BะวภJYŽ1ขc`@P”ฤS ผ๊6ผt5ฟ8<ฑาฅ%ฎ@*-๛”I1ฒu5?LGดP|n;| dQ๘f.tร1E”|๎j& +k9ฆˆ( Oม#”bL3Veฌ”คRฃ„ไOŸ๎xYต�VO)ฑŸgฦID�N=ดบแ'๓X"sN\ื%ดj&ฑึ5ว๙~8๑�nP)๒ฏ๐dœึh‚‘ึ4„โน—<ฮA" !kฆ‘X พD:“ศyโ่•ูrkOaเ)ฬด(BV4ถๆ>f"‚Ÿญ;v๓LN™>Eค6Ls †ภืงฯป5*EN1๓‡W<Œ=�{je๘0Mh)ศ!ำ:R๑๓Oผฌฤ๚๏�ƒฒฏ,Nข’ดFา‡ศ๋ว~บjฺ่š�ภใiวฺ8ŠตคbX5_@”ฤeeน›f.Œ!Nž>ะU–สYถZS” ซD…ไฒ†P9Z๎Cเส*ๅ๘vฟ็่—"UWŽ—ีŠวxีv8ญV๔E`RD)xfฆ๑“g=มฆn่„$xฯ™ฺ::ฃ‰)SbโP2มำ4ๆ@ศฐฎ,ไB.™qžSก5šJ Zcx๛ดgL…ไ�ใŽUeyพ๎8tึrœFnถžฏ;Vฮ๒ลzร———|u}รOnฎัJS„D–ย)E6J3ๅ„”หก”ส2I*!1J’JA–‚q๎bกเKAIIษฃ4ž‚Q’!gRJฌคsฮ$ หไž€Zสe๚Ž5มKโ๙ภ‘ฅ3()–ฮ;%B. 2Œ” ‚R๒_7วyฦ‰ค€Th!Id@เS$XนŠ,ก€Ož•า|<~โ/๎^๓0|ฟ{เร๑)ฏฺ†�บๆoผxฦ7ื|นนฆ3ค#ฦHHะ„์ก$ค(”\R#HPนH”\*b>7'BHคึ”Rะb ฬ�ใง�aไใ�#wG>= lึถ�5/Ÿ]ฒYW4MMm )b˜y๗ภว๛~ศœษd.ท+Vmอfณแ๚r‹ซ�๒งฅฑ’BณŒเ’’ ฤCrŠฑ49g”ิ”ฒ\ณLย*Cฬrข‘JITึขๅ0ฮ|๗ๆ๖๋๏yุํธ? ุ๕ ัXพ9น;๔ผน;p >€RlซŠ๎jร๚bƒ4‚TUไชล ๘๒๒ Jๆ8อt•c7Ž๔1า*อึ(2‚ฦฃิ2™xO‚P ร@็–ข™bDM,…—๋ฝh)H9sูT ภตsฬ12งŒ•‹ Pศ9ำhอส๎ผG –‰เYUณ Ks^K๚Xkอ˜%eœ’d$ฉ$„Tlœ)ฺ")<๙‰2“4JกH–๛tฅ})ิZqH˜ ิdQำ๒ฬ�๗#RJ\eจ„džf|Žlๅำ8pฅ5ŸrยXห˜"O)ฑJ…wใ@ŠY"%%b๔�lี๐ฬd‰Heจโฒฉ๑D*!่lƒฯ -–ย‰ฌmห…ญJbŸ"ก$Œฬ,…—ี†�4q<ืuอœ#/�5ต|˜Gjmiฅa—hฅd๏=#…S๑รดวIล+SำjรฯO;Vาฐ6–~D– B)h„ๆC๐ไœ่DI%ดฉจฉุ ฯ �ฐ–ŽS%ษJ3y)2($`@‹‘†PCNผG^˜Šึh|ืำ งaฅ%>+.•d๔ๆึ๔%๒ใ๊†๗มณRะiƒSŠป)pL•S*�rฟC”ฬซศ"ำอ1qฒฆO'‚ืd~เฆบ&ๆภป�Œๅช^๑ร๑#+NSข6™็uร.*ฦ+ฃุฯืh�๖fMสŠำH…ๆๆŒดเ—‡#�‰�็ผ›'� #ฟืิ�๘vเ๗ฺ–P Bเงซ5๏B@Kล8NlŒE�+�หP]…ฐšFH”ึ๘2โ…ฦO=�82�k4งibk?ฺฌนฌ-?L#c,\ล]๐4Zฒ•…9ฬ๔ำภ 9eญX[Keรฯฺ-R †8b IpJะ่Rโqšyูิ\ฌึ๔๓ฬ๋ร=N9\ <…ฤE�เƒว#ธฒ๛ธOิ$พZmน›grITR^&9‡8wR‘)R �cคโธ?2+A#ญuปผ ญฯ7+n6~vuล‹ํm,ติ <ถ ้h)0็\๒ษ๛˜๐นเค@)…”ห฿7RHตRL91งฅA*,ล8ค„,ง–ƒW cB ะB2Q็†€\˜SฤJIฬ‰)g‚FkBฮh!pฦ0็Œ)>eBJ„œI9กฅ$–eโ/็ฤƒ‘ซsษ(@ม>ๆœx{xไ�แž๛ำ#วž๏ww๔ำฤOV~�ณk�่ณฯ๘ูลˆยถชฉดB ๐12…้Œ"d”Tฤไ—ฦGJ–KฏHrŒ๛ร�ภ›๗๏9๖‘ง�ภ๎xdฝnนพบเๅ‹็ผ|vมๅบCษLL๓R|Y`�…ˆา-ร01Œ#Oป๏฿฿๓๔td…0ฯ��ฯพdต^๑์fรjฝB) RQ–a›frA^ฑŒ๎EhดZจ€„`.ตตHa(%a”$„ศ�ฉ็ฑyFพ{:๒ซ�žo๎v'~๑�'ฦง]Ydำpqนe&ckCณjฉชŠฎkQJb •ฅจ)”ฤึY‚o†ž/บŽR ง˜น;์xึิŒ!QUŽ9ejฃ )3็Dํ,wร€ั†ฯ›šaš1RRดขาŠ+ุ๋ฯ๓า„วศeำเหRlO93ฦศชช˜rD๚ˆ‚ำ๙พฒJฑฉjž7 ใ@ƒd(‰ฮUgtH คdญ 8ฟ D)าlซŠZIดT„’sโc 9ำ๛ภ\ษษ!Gฎœe็=๗๓ศหชa ‰รภM�@†OำŒ2š›ฦbตโ—{�„Š‘๛ูSฌœฦ‡‰1)๐ำภฌ[^653ห=*%kk!ฑด–lkป4ๆมSฒdฅ-}่9๘VWtีŠ>FkัฮQKMTหD์SDxfžb$œ๏ฏ๛yโg๕ !เ1xTญsฮˆ\˜r Oฃ •ชxฯLว�8โJแป8sใ*:ก8ไDQะชๅZj)pส"าH+$ญv()ฆXU‡ฃไฬ)'ฆyๅ*๎b"qฉg7ZแC า'5Yi๚‘9X'Yiม!๖LI๐yตๅ�—kช-JHผ/ด*"คไำq!-sึฬโศ็ใBn๘8๔L)#ŠลZอ1$nญลวภŸ_บŠหสqH‰ง~d?zพLขภjรหบF*วืว=kฅ(>"�“�ึ�บŒซŒฆ1šษฯƒงณŽ์’‚โjถึ‹เ็wน๊Z�ฅ็ท|๐K'*RภiIU$9F?3 A#wใ rเชชpข๐a:๒Euษศ‚†:ป B.…็fv๓@&๓{๋~ณ{ไ๛iไ?|๛9฿๎?ค็ง�_?จ$l*‡–กฦiย”‚2–�<ัว‹ฆfˆžOCฯฦ5�๛™ŠR‘cกS’ฏ๏(RาT รไนถšงUฺ:J) sภHม•5ค)ฦPkอ!D”’Hkฉฐส‰ร์™Bไบฉ๑ม๓๚ำ][แSไช[๑ใWฯ๘�็ฯ๘�ํŸoถtฎฆQ [!ศนpŒซ–"ŸSย—*ึJ“หRT5หw<—Bb™เำ–ฆน ฅD5Kฑื ฝังtๆเ kฅ9ใร‚P–))ะRค\�._๘เBŠ‘Rส/ฅD.…สเ„ Ÿนเ|.๘Nk|Ngฺ@เcZ ?™‡รžปพ็O฿ผแ๓K|I�Hอjี๐๊ณ-ธพเo�n๙ัอ5—mƒ๚๋ฆA0…žy๒ix{๗ภว๗w)ฝ็ะฯ„h›†g7—lึ5M�ฒ๊*jงQฒย‡สBd ฯยu,๚ !A)B-H†Œ>ำ๗ร8๓ๆ�=OOŽžำ้ฤฆs\^l๘์ี ท77ฌV5>'j[“RfŠง49/Ÿ�*ƒั „`ށ’"๛ำภ_�=๒๏๘็o๏๘๙ป;vS` ม- M2•า4๋5A+DใpmลE]ฑfœณg$*ัYC‰‡yยXKQ%+)RB+I}ๆ�t.�Tว™ร„=0ฌTรœjณgN<ณkย%>ดฃ็บv<–ฬญ]3ฅ™ร4-CM&j*~}�!ฉนr3#ฯช– วใ8ฑKž•‘Tึ"ขฃ‘ˆ็ร| R-‰ภวำ‘kฝกQšo†๏N3+ixนZqูTผจ~s๊y3�มzร๗วV+Vฺ๐๑4๐�๎ภ๓UB(ญนั†_=N๊\๔?๙Ÿ–หฯ^QdDkMYจQ๎งบQ๐ีี5฿žz6Mลื๗w�ธญธr†ปเ๙bฝ!ฅE ิ‡sม—Š+m™สR(HโŒ@๐z่dแหอ%…ฬZF~ฝ฿ฑveอVz?†�i"Kxีlx7M8™yๅwa"ๆศญซ้ำ21Š,๑ใH๋,‚ฉZน คคRŠZ >หไ๖ะ๗tฮฒ๗3๛iไฒ[๓๎ิำQ()CFkMๅ๓0แŒ"อ‰ฺ๚”˜CฆR’//.ษJ2ฦศ�๑„ชฆASx์{�=ูTห!7อ๏วฅ๋/…��+~r{อg[^lถ�แลซบฆ2†•ิL9s็':$hตfˆqKก/wๆถ‹Xb#C$Ÿy๋FI„Tหa~ๆlต”()ˆ ๆ‹(…ฤาŒ9QJมHAฅR)R.ฤ๑1S„ภ ม๑\ด[kb$งŒๆRSD L`ศ‰•ตlœ[ฤ>ฅ0ฅธ4 ภฬฺX|\ฆอžx฿๗ผ�๏ธ;ํ๑�ฬร�sัZ~l?พฺ๐w๛+žW–o฿๑gฟxM.’O{|L<ฟู๒ูห[.ท+ฎ.:ถ๋šฺ ญ- ๐�#ฅYFไ\ $Šdุฝ ั ษ(ฅ‘Rำา˜ Z‚A฿ป‡=ฏ฿พใ๐tไ_ฟ!L‘Ÿ|yCwฑแg_ฝไGฯŸ“”Zธษ ฿?=เCd8๑็฿ฟๅŸ|โ�ใ‘ฝ็SธบฦีํฆCU57]M#ํƒ2ดๆ0TึฐvnกSRฆฒ–ตณจœ1ภ.&ค€9g0š�สrœม๓ชF มcŽฬ>๐0\ิ5T<„ภƒ๗ฌฅX๔ฦ,ิLษ8k&pJ‰Z(ฌ((!yวiไUSS„\ฤ“RRKm ข~ฒZq๏=9g.ๆ๕0ฐ6†Wmหฯ๏๏Yƒ+—‚ZKuF‹ภอร<๓ัOผjZ‚R4Bกrwใ@N™›บแฺRDิ†หชๆ�4-ดGJผ้{พ>œฬขฐเอแˆ.!ก™฿n*ึฎยง€ฐาŸ#/๊Šฯื†3Bฆ”ๆq่‘%ำฺŠป0ฐึš•ฎัZP+หง้De-4ิJ3ฆ%%sŒ””8ว=ญVlตรJร@เาZ†8๓�0ั๊Š๋ชฆˆศL&dC+�Š&ศ๘ ‡Th”D มIz:ฅ๑>pใำq๏=;?RRF+อC๐ผrฯช–๏†1Ejcู…7ฎfkj†œyใฌŒก5YคL'wำ€,’ญs<…‘ฮVtถ"V.่วฮ:ํ8ฅ„$-"ทx3 |e[ึฺะงง4เ8†=๏็™—v‹r3ง ตฒlŒฅฤ™CP�วG*cนตŽำœ8ฮ„$P†\U*๔Hฦ<ำช†!O.>Žž\"ฏš†งะ“๘Xx฿Ÿ(๔๙Gพ์ฎy3…’=!๖s$ฅ‚Q bไ๗//ู—ฬ›~เฺ–]ฬœbไชภcŒ�ู�ภU�๐าU�ชiเซฆe_2A ”ˆแ฿�7‹้Z๎ๆ๕ชBษ…q�'„1ิuƒ‚ว0๑ลjหoŽ=*ฯิB3อฆvฌฌ&xฯฆถ\hรวy ศฬ gยŒ-’7ใศท“ dถฺัJษร้EUS๓ข๎sฤ ษ"7ฦ๒z฿“Qผj6๘’q9ฐ(ว)r]Yฌ\Tธ๗‡=๗งกฯ๊5ย(jฃAd:ฅ๙t: ดไฒY3ฮฏO{Œ0\บŠวiวหnลCŒ”จy8pๅ�ฯ๓ฆˆ@ สา๑gNi†ุฯง Sษผ~ฺ๓��ž_ฟ�ศ?๙๚kสpเ& ฺูผธเทฏถ�๎‹ �เซฯูฎ*ฺ๊กิาฐ”ฒ4‚‚ ต#๗นˆ‘ส"๏Oฅ ณ`สึX„dtC A.‹๎€Ecฮ\ฤ‚ไ@…J):ใธ?Ž�้Ÿว๗๏>๑ๆ้ฤ๋w\o:š็—|ไ~˜๙ณw๗ฬ†9๒๑4ัm6lฏ/ฉšŠW›ชvฑ|/ตsฤะ1rˆ‘ส.bอJ+�Nl๋†›ฆๆ<ฉdn๊šถ์ยฬ)%Œาฤœ˜cข–ฐ5†!%œฑ บtฦ๐qž9ฅŒำŠ“\[Gค๐aœศมSis&m ซตR๘3uีUŽปูใSไGซ5ŸfOH‘VิfปญRญ™sf๒3’|?อ8ญู*ลX งyๆ™ิD็H)q๋์’tฮแSb<1ฤœ๑Rัอ•ต)Bdฃ5? =ต6<ซ*Bษƒ็~A|IคูS„ไOXเ?| ?ik~ถiHVF!JfŽžŸฎืงอŠ(RJje้KBช…ฏฏฌฃS+%ปฉ„ไยh>†% ใ๐yๆนi)ช๐4ฯ4Rณึ|#sL…9eดดฺp*žœ ๗�‘FIะ#ืีšPj9๐ชiq‹ศ‚!eVถข‹ศฎ“Žง ,‚ึX*ํx๒#1{jแธึ oๆq&)มZJๆ‰—ถฃ–šo�žตrˆ”P2q้V qไT&6�†JZN1SIมJ;ฦ#ง0rฃk|J�ฅฬO๋5ตฑ™Qขฐ ‚cH)ำY‡Ÿ5ปožC1 ๑D‘™s’cfNp�lx๒{คด )Sย‚g;๑%๐ก/l”ไ๙jลฺ8ZY๓i�sฬ3ที5Oaค*‹+ๆ๋aค h„เ�iไL�(ษ…s์ยLฤ๒bU๓ฦฒsS9๙D[๏ฦญึˆะbฤ—ร2I อึ |žุšŠ�|โS่น์œ‘นฉNำศ˜Sq 3•tJ0ง‘1<†ฅ_?พcฅ/ช%แืŸhLaฬ‘’MUa•f๒‘4”า„9pณ�๐j�๑ๆt • tๆษ{žต RCcN…`ๅ*ึฦ๐ใอšhึi~r{ƒญkชอŠ—]วแ�ใ๏฿~เ็฿ฟๅ฿๙๚W�ำoฟแํ�'>์๗D E+Vถ$‘E๔Vฮำ๓”"1D(‹ธg—"Bg }ฮฬ1๒ษฯ<อ3ฦฅฃ=xๆ33HI…Fž๒2Y'`Ÿ3Ÿb ?๓�ฑx–4ๅลžE^&v%Až'ๅBˆฅุ๙ดq%>'rY๘งˆ*ฝ(ฤ�_้ดbN2\T–฿บนๆo๕%?๙๑�ไห/išŽ9๑ 4฿G~3ฬ๔คeยqzแใ•&„H”V $นฌ\ฌV €‚‚)%2 Ÿ^ฤb‰qF A)’”ภวHฮ’‚a๙๊N[KS’3|๓๘ฤŸฝ�ศทใฤ7'ฯŸํz�ฝO;�ั๛�๘ใ๚แภว1a๊Žnณๅูฟโี?็๊ณ็�ึ็ฯนุฎตกญ^nป†X2ุงŒTc k%iตfUUฤR%ณuŽวเษ1ฃEแ1,ขึj’>FฌZšตปi๏9๙ๅcค2†"%ซ๓Ÿไโ€๘ขm8ๆฬuS“…dŒว‚ีฦ€R์cdm ฮถึ`ฯ ใฦYbNMผจn0า`ตๆหuCพิžN<ŽlตFไDีT�ฮซ็�๔ู-ฟu๛œฏถ๘ผˆX0–ฤS๐ฌ„คZ๋XอViBJŒ%Sฉz์cไึX†”*ฅ8•Dซ4Nmyแบ|.(ฒ)rJ‰็ึาŸyvs. SฮTBะรั/…>ซุ•’()ู๛“็{<cู‡ก5WU;O๒ใ™'ฏฅDษ#๑ ท !–�[ *ฅ J2L#�pโ›๘ๆรG�๒๕{ž๖O\ถŽ‹๋5ฟนๆท๔œ?xvอgmEฅ9…ณ_A‰ ัcTE@`คย(อ<ฅ| ดส"คฆH๐ฅเคb[ต์�D๏�<๓'Ÿ>๑ฯฟ�ฤท฿เธ็�ร‰เ*ชU‡”’ีvอณ›-Wmm^\kJัiƒ/CกดขHAศ…1Fn]ลS”Xฤ[�se-•QC ง‚gVkž‚็ฒช๙0ฌ+‹–’๓ฤ็uC[`#ป9p๔ž�บขำญ}.#•ึ์Sไฺˆ‰�Y|ve-;?s๔ฅ’XนLึEภmU‘ฯืผ:�—๖!ขลBiIQcโฆn9ฯme9…ภำ์ฉ+หซีš1FZmธญ๗ำศ!%:!ะZŸญŽ’ฮN!0‡ภVkพzพู๏hแำ0๐q9ฤฤึๆyๆ‹ฎๅณU‡•ข็G]KŒ3ฒœ‹‚ต์fOc47mว˜SŠ �“…เY�aDแเ=�บ9SAaฬJŠฑd6ฺ`%�…jน0-ebฃ-!๐0H&นญV\š†”ร๐ฤG`mZข”\jK.QNiFdA% ทUว} TR (8exJ,2ฯu…Šื�Ž, ี!&ถrxRฮฉ๐%c…^8Z!yˆ'๖bก2ืฺžฏ�roŒฉเ„ฆž๓ศ>{้ht…V…ญi้ำภJU$แ9๘D%jr)|œศฤตQŒ๑ขข”ฬ0/ถบwaว฿\_ใQlดโฮmyJ‰ฆOƒl๕†??}CІ“—๒ฏบ5?mฏ’'fวFีข™hไฤืว#W‹w>L<๔tย2‡DŸƒฒ8™๙ญีŠวP่วqBkC.าr?ฟ;žcโJkŠี�ฌ๋cกั–�4r’`+%๏็‰็U‘oG�7ื|Gฤ๎฿�๛eจเืw|๛๚œNุถขญkšฆใr�0ฆฤo]]ppฅ"ฺV\W s™ใ„1’บฬtส’ฤโ…ฮQpฬ๏‚็บrไ ๛˜Rโหี†๛ม3†#“๘ฌRg1ฌน๋?‚ชธn.H%ฑ =7ฺฒฎŸฦ'B˜๘ฬUผ>= Uอoญ„ฯ™‡๘ศสXฦ๙ฤ)y„บขS‹ส๏รaวฦ ผ(|v�อ๋กq�ฯO��ๅ DvผžpBatหS�T7ฆแcฟ#Dˆ‰#kทฅีŽฑd|YU RๆาVฬม3๚ญ6� Ÿ#ืซ5Cฯi๖XmIก๐ฎu\หงำ “3J/Jไำไi*sๆ๛�อฆๅึžฆ™ใ๑ฤ…’D ึ(พZญธYฏYu ฟs๛‚�ฎ#JI‚ดZก�zฺอ4Jณ’’DYฆ๎sศ„:ฉyส‘ตาH@ ม1xjms"งŒaฑคอ,๕ง่ษฅฐ‘ ]`*‹บบี%%กd๔นใ %ณถŽƒŸ…E1ะ‹eZฏfkโฌ(ฎตๆ"+ญ—฿—วฐ(•3…ใEŒฒ˜R˜r^4 R’ฯณŸy 3O!sœลๅ๓g\n:ฺuอึhlSฑช+๚P)bŒฅ5 ฬzŒ‘Jj๎็'ืฮršgœRิฎโ”"ฃ\ี5FkพNTZำŠลA1ฮgุM�บ&HIง•”์bฤIษวiโ๓บ& ม1tฮ์gฯฆฎน๓3ง˜ธRKณˆœpJS[ห~šู‹ณQ O9AJD!B ‘’ปiคRŠWMCŸ3ตHญ˜ฮ๚‡ต-EIB๐l\”‰เฺ9๚A/šO‰””c1gตyFp7๔~ๆส:v็๐—>E�Nœ�ฬ์vS`‰F๓ฒkัF๓;๋†/๊ซ4[cฃG—ย(kmมc˜1b™เ๖~โ™uˆœ™สโฮ8ฆศMี๐4ฅqฺฐฑ#%๛iโเg:ญโฬบv\ุŸf‘นถ[ix?h™ูธŽœ–ฆฉณ5ZfT)จ์๔์๛jwK–š83=#–&3—„Fb„ Oงฟำ^JแTWฎAขH:]dD$A*™ฉภ่'R <ฮžV~w}ษc9๘ศMีrŒ[eศBŽ�ผเYฝๆาjขศTIILq$—Bc6ไ(qฆ15w๙‰—ํN*๚”™ฒยกุุš 4 ๚0ณO™!yD”๙ขนไ”์bFEฅ "Qล๔9ฒฎ-V|˜vฌ…"ว›�9‚šX—Žญ+$Qใtลใ|dฃฺฅYก6า๐�tBQSSธ{43�า๐––ค`e4k——0*„hฉฉdไ‡ำTจ9๘ล]๐lีpš.]หX/lล?ณญjพู?!Š คศtZ“SฤKwฆศฆข๙อ~ฯUำ๐ๆxไJiฎึ+ฒ\ฮม^Zห)%ฤงo�ฏลึ–๏งย�็รศof~8Fพ}๛žo๏>JไižIฅ ค@_lน]u|~{EืT<_ฏxตn๙n� ฿?bD`];B]๓๚tเeๅ˜ษŒYฒ+?�(Nษ๐�!rํ:t8…™๋ฆE+MJž„gk`ฆ Jล…Rรภร8sํj>N;ผศ�ฌ~ลq>‘J`ฅ;๚ผง`hฬšำ์ู…ๅท(Yq็3/ํ–ฺhพูฟ็'›RYN!rœzพ\� Eโ�๘„”ไY™?ฃR ไBง*๒Y˜ะV-ำะ—ฤxN๚ๆB�r„,ธXu�๕#ำศm]ณฑŽ๗วถr�ถ-฿zถZะ‰%uงQŠSˆh ๗รŒOmๅXUKa�3P+‰ˆS`?ฯผ�tดZัต Ÿ]^าU—]หMณB)ลDฆ*หแtL+W๓c่s"ฅEก�HEซ›ษ)ึRqL‹งฺ็Dญ งนtศEญ๊ฮ๔œ๓‹ง%ลฉ2†J+ฌ\๎V>ฬขœิฬ)หา�L9กDas๖ฮวฒ๘สVŒ~ฑนไ”ธOหb…ไ1ฬฌสข˜๗฿๎˜–ภŠMี๐รxคV†3ฟ~๗–7?|เ—฿ผๆใง{Œ‘l/;พผY๓/|๕‚ฯ/W|�ดt•ฅฮ‘Cเ‡aโW;�ผ�๑้๑ศ0ฮ||:q฿O|คhวลณ\ๅธธฺ [‡ฯ‰ซถ%(I๐ฅ๑ึ „ฦขYุTއqไๅjMT’Œ9STฬฅpw<าJAS7ฤR0RQYล๗\Zวaž้Œ&xๆ๏N'(…฿พบโq™S"ฑ๚LBp^T5w๓ฤ#Jkฎแ>FŒ1l•ๆำ00–ฤ)&.ญฃUŠงqๆฒชXYฝˆ‰”bJ‘meนGZฉศ็ฬ‚•1์�"xJฐฉ*ŒTฌฅD+ษฮฯl+วT ณว ่ŒeSW 9ั(๗žใ0ฐq5วx" ƒ(’ฆ‘Z)†ธค‰)2)Gm๘ูzล�้ฤ�ง%ไฬs+ู8ƒ’„ ไศœฒ๘˜K"ฆ„ี– @ž)ŠX<�Gฆ๘88ฃนฎ›ฅษŠž๋บA ง๔น๑‹�คŒlŒคQ5R ”,ิาฒa.™ฤฬFvŒ%ฒ=[]/9 E‘cโ๎‰ลaKั‚™„S/NtๆŸU๓v�ำIลฅm๘8Ÿุว‘ Y‘$™ s๑�ึkBZ๔‡ธhŽ๔LSฆถ‚Bƒ`.‚S<ท5ว8sGฎ\รมGzmy^kŒศ(นญ์c“',กฆ=ทzอNŒluลญ๋๐HฆมJ-บ%J ห.=’„ก‘5ำ‘6'fห”ก“_R)^ึ+"ถX5ฒ ž—ถๆ˜}< …EษH?eSเE]๑หแ:-ฯๆ1 cx้ž๑�8Qkุ(ลT Oำ#รœ9yT–W�šภ‰้@ž�ฤTWNะ*หใิ๓t’\ีO~BคHฃ N-ˆl’Š=7ึ๑'‡#m�0\5ึh๎‡ž[๋ะYq ˜ ฏ'*)ฺ•แUใธิฅ วู๓๎ธ'ลˆ��;ฅ�l5ํบค8ศŽท๗ฏ9 {>๖‘๏ฟ�Mผ"_ฟ�ฤŸ?>DaีญธXญจ๊Q)VZฑr†ฏบฯœๆT2+ฦiFป%คย„@$rŸ๕โ็dแf_6ŸW-o� ?:SqH‹า\ŠHFNษใ”aJžNUTB๓ร้Q"ฅjUฑ๓OฌอŠ1 =Mต" ลi~b[ญุš๚ฑ็�๛%˜Rb†Š™‚งkถ์|f?>ั)Gศ’ZJTI(แƒๆ8z6™j‰Jอฉ |่๗�๔โ–นL†"5Ÿ†#กพ๊6�pyNม๓ขnq็ ˆภIม1ล%1.-๐gKqj!9๙™ข ม)ฬ�บŠพ€‚ฮb@ž]sŒฤณ`N+Eซ 1'bษ|š'^V-C ‚็Eฝ@„๓D%%๖~๑๚ �~วwo�3๔#‘ไ$_^ฎiN#yxท˜#` Wซำ:&กนนXณnk.6.ึ-)DœH)˜ !H$N!aลK�[๓ผk๑)ri ณZŠzขะ9K9็„\ัำ0C\nเซ๕z‰ดอ™+็x”ฮaraศ™๗�ภซฎลhอ‡q`k,>ŸญD)1†@L‹V+…’/ึ[ŒQ� c”/�– ฅ๘ุ๗ฤ%2{ึ8h%‘็ดผSN4f‰9๓ูvKCฮฅ7}ฮฤˆ9q žF+|สดuร#R�8ววเกภ๋ร‰JรOบง#%'ไ9v๙ySsJ‘ตRดZsm*.\…b๊ฯ9 ‘ฤœ"‹ฝ&ณ'!ศ%RษŸ CˆgแาsAเฑB2ฅลข8ฆDฃ5ญZโ9‹Œ)ฒ6–J.n œาศ…ึฤ๐9ฑ’ Sšะ"`EG)~d%�ฆฦ9‹’•VผFฌต\9‡”’๗ง#ซศjแž7J๓ฒ๋˜Cไืป'>kš%yL)š•1ผ6ฮQkM๏gฦœ่cbฮ…M]sๅ,R)ผŸ9ฮ3ึ2ๅฬmๅศBqJ‘kkZqส™�ชFJมำR� ฃ+Uƒจ™ณ'*–นฤ%๙บH( …”sฆลˆgซ+@ฑ„{f„์ฑeั1h2Zึฬyๆเ่"ัยฃUลฆzF …ฤุจ–นb^า๊Nyเยึไ\ˆู#˜Yฉ )Kฆ˜PาpŸ๖T€[4งาcfฅž� !4R-๙ศ"Gฆ์ู๊5Ÿๆ ฤาฐTสๅL'ย‰9~TwฉQYrไn>’Sแา-z†’oz$‘ฒฤ*KŸOKฬณ2()ศR0ลH*‘ั€ิา$ฃŠ มฅำd‘(า€Š’ืRŸํช‹Xกy {ฆ>ซ6<&ฟฤ —ยœ'ฎŒๆ+ธWป?�w๙'�๖�œ฿๙—�c�๘?๕oฐ๓ว<๑ฌZ3•™_œ"9i>ณ†ปp อMีq๒#!IฎฌcJ‰w}ฯฺj^น†_žธi6Qุ๙๗\ช5‘šŸHRัหœfD†9.ัธพ฿๑\[ฒ”ๆ™Ÿฎึ�Y`ญ–‚gึ๐ว#ฯœๅYU๓ฯžYKห…ซน›&:ก็�’๗�‰Kk™Kaํ*:c฿�Ÿสz�€ะKZTY 5ก—(A!ว@9วRfFF/]mŒ‡ 9ฅยวั๓‹๛=�๔อ'�์รŽ๗“'—h�ะGฒvผฺด�๘ล œา|uนEฺผ�taเฺx|huค#๏๛‰•qคฐไ๚^wฦ8qm.ฮโž‰)Ž4บeN‰ฺVผ=}ขŸ#ืฎก…Q…•๊˜า๛Œ)ใHL…›๊‚วธG$ม“)ฑ0‰‰Zี\้Žฑ@ฬ‘ŽิJ’„dž=sšr วหี…ยำ�~ฺณ๎V€bฬ3NIR๔eๆีzฝx•เ่=0%๓หง;6MB3LG�ฮอฯ›†•ญ(E’'•‰Z,Šyง+”–h!—.‘Lฮ H R.ย;YPสQ้ŠฬŒ‚)yศ†P&R1ไœJbญ-ตฒA E(=>{„h@M”)ลฒEษ)„ศิาs ™ ื-j�าD*ๆ4p7๎๙I๛%Ji๖๑„…’cธั+ด^ขdต>คXmdดฐฬy&แI#H)น๓GT†ณ$ ตlำฬcฺsUw\™K>๘=ธถ5CZดG+S‘๔‹O ถvEสา,฿ธ๕’ง8!e"ชดไ๓งH-,J&Ra™Kข’šง�@evหœ=s†•i(ฬL œp„”y=Wฆ%ไย”žธฑkๆ$)]ใ“'ไˆ‘‘\$cัH)่„c,‘?�?q++ฌQ N ržยเdbำฌy�แ��ฝ�v๔<�ฬ๑๚7�Gไอ-(ฦs 3cnY๋Š฿ ๏ˆล’rไณj‹วp7X)h#•LFŽำH'5ืฎโำผcŽฐ kgธึ5sNŒ ฆiู๙๑”#2 sŠ_ถk�๙%+รœ�9๏ฦ‰[ซqR๑‹cฯmำ1œฯ›ฆภท‡ใๆŠ๗ำศJ.฿‡•’�8!๖฿�Ÿหjป%ลD {”VH�ห6ซef’3Bี(gณ=Xrœฯ‹ำฐ$_,นีD๘vw CโืŸ๘}๓š�็o๎๐Jณ›3^hบี†›‹-ฯ6.Zวท-J .ฤ—S„`”ฦคHŸ3ฦtฮ<๔ž1&VอฒgL…9D๚qD(E#ต^–FิฦP+E ža๔e8๕3ชบฎAŸ9ำ/^�ฒ้b†ใะ•ๅYำฐช+ค’ 9๑ขชธฌj�=Ziœ\’ืRฬHนฮึฮ-0%œ.…(e~ฯx"Ÿๆ‘Nk์yแย๚ลySืœrโi^r€[c๘4์Sโom.๙อqฟ „ธ,PุM#1&ไนqศR.฿Y.Qุลศฦ:†”๘อ�‰ฏ7”R–†A N)"Rๆ๓ํ‡d.หfฌŸA ZeSโ&Zc–ไฌR0ภ็๋5ว’–่_ญ–ž”h„ข/‰c๒Ÿ˜r!ˆ‚‘/Œๅฃ๘“‡�‹—[ฎ๋ŽZCcฑHแศญ[qYีˆโqYขีโต r‰ฬyA:„Pดึ •ภฉ†)LKl่YศจLฦ)AษZ"Bq$šL"b•c.ž—ๅ=J,อนP๒€ซ,!‹hQ๖lํหvฟศ)ฅAก1ฒ Jdcพ็สq9WXeำศœg.d‡Šว��ฟK.‰)๏ุM฿ž0บฐ2ใŒ”‚k{IญŸโศห๎]X^S! >Ž˜iโSˆฌlร๓ช[–0เdM)…) �๙ใ=/๊cภงH-4๏†โa๑)"ใ…ซ๘ล~OU–&ุTŽญ/—%:ภม�ที:ตฑvQ๓#�์แ๕?๘๏�ื�ž1rX&o๑Wนอตเ2Ÿ‘ %@Iฑa @H?mN”"zrˆ”X"saN๑ฒซ๘ƒ—�g�เG�—�ๆ—�kใ�๊๏�ˆ?zพแ'่๙ศ�ร#๚๚ �๘�7�ใ๏�๒๓w๗�=c1dUศ”pyๆ‡ำo๘0ผg7=สศ”งลz”&ฆฐ$.กG๚”(yู|ษHกx่?๐่฿“$!yQญXฌฬ๓ีŠบZQdMง;ๆ ว,iชg์}ภ)MๅZ # NIตb&ฐ:๛่•ˆD]hLหD R’ฮถฤนฎ1&NSฯ4{ฆู|$•L๋,7m‡‘’˜F@,ยฌy:[ฬๆ8คๅPํCเ}ฮ\บEิ6+ษ>๖~FๅLA0Jม˜37ฎ& ษตuTBR”ฤ(อสUฤฒจ่นฤ6ฎ•มวธ@ลZq๒bยงด๐ึEเ”"ฒธึZณ›gๆฐไf)๐4MคฒpูcLx –ฬณuว…1%ศR๒”2AI:ป|')/idR*ฎซŠ�บF‹>C�HษEU๓YืBY๋cyูv(ต๊Tkญ– ฤโซ>’ญˆJขไYWjI๐Z[K*-CŒxเถiJ’ลbล bIN�hรึ-‹WBษdŸw-ปyคั’kk้คbw: Cไ�aOษ#ฤ‘รุ๓ยภ…‚[Yhuไา~็rอ฿พผๅG]วฺฎซ–�Z๓ฒU\Tง,B,๖ฅ$S�S› % Edœช2“ส„#ํฒ”„ZUXัRไ< ŠFGๆD)‰T>E„ŠXmัR/R‹็บฬไ2ƒศdฑZั™':4ŽX"99,ะ้sŸTฺPฉ€*fษ+(+ฅŒ2VdŒpKTฑ"F*ห},ต$‰@ฃ+Œ2๘โ! |์นะ—h–๏ฦ—ˆ–™J8ค s ๔%`…Y๖ีebฑ€ฦR)AŽำ‰ ำqŠ=‰ฎฐชFKˆŒK R๖H™xЇPฺseืhกPBฃŠ^–ฐ,rเ๓/‰ำงR&Dส่RQส‚˜ๅฒˆ ‚’CŠหN2JfฒิXๅ(b cฑZะV' Vฎ)6บมก<)VHJ% %ๆ๐sไสn๘๗��+�๏�๛�ท—[ผอ�ว=�‘�๘‘‹�ฏ˜ำฅ"›Šฎฒ|ท E1yU]๑YWแดB ลnMศ‰”=+]แ<ล -—ุ๊ �R))0ว‰oOTBณ‰9ๅ%eQD43kื2„Œญ๊%’šย๓n@g4๛‘\ๅ๘ผY‘Š ๚\0Za‹เสYf–๕ฮF,ม@^Hฤ�๕�ฅดญฅ”iูษœ=น„ZQ๒Lษ™RยฒkZW@d‰ใ๘ซโ—๘Iณข$EIฒง…T–’–Ma‹Hnฑ-๚Y!,$Oˆ‘9K~๕tเŸ|�‰๘�#3-ฟ๚๘@ฏm�๑8žhjk ฮf~|eนต #gœvl+‹KBS ฉ$œ้8ลภVWHรภ1๎้LCWoษ$*– ๛~๙ข�0ใๆŒŸฆ=NZ.อ5ฟู�Sฯห๊ ก,ลร�=WvKV YjศpSPิฦ๘ษQ๒4œ(iยjหฮฒ\ถ5๛iคq +c1R1ง%ฅR‚ำ4าว@#5ฝ4•ChKI™c’<ซ›%ฃะyiNeI�บชkฦœ0eูMพ=๋ZJ�บgU9ถ•ฃŸf.WV-žวB*ดาิฦโsa่ษฉPคd=OGถ�Žฺ.๑็ื—2B.W+*ญึฮ๔} l”ee�4“าRว๘ษ๖ด"Jx^7หญR1ึญศฅ๐รุฃฯ%B*6•Cฦe‰Šี†’—Iฟ)%SไƒŸiกŠS ฤธLn+W๑ay{:๒‡›+b)ผO %๓ช้ฅpЁ๏๛žKฅฮซ ๋ผุ�04Fc„เUS3๗‹S–ญU๒|ภฯ>0†@Wื q‰"•n›jY5™พ›œY9Kk,~YQIษƒ_ž•:&>ฮ3ฆๆ gะv‰wีbู5žSแฤbืปRšG?๓ฆ?๑ท.ฏ(E0ฤ™๋ชFมย"'ภJตL71.Q K<,‚๗Cฯ mฐ)กคเ”ฏบ- Yู,Fj 3ฯป—9N”hฌCYAk. AกTฤสe"I ศ์Hษ‘‹มว@.‘ŸXฉ ’(ตผมR2‘=ฒtูQิ!ธd.GDXน!–™��C‹Vg ธX6ํษ%�6—ŒยไbYาาเห€@#qL้ ' ’Žœ3s~ยฉ-กดX�†A{6๖šฝ€ธฤrๆ< Uยจ % !A"3ฉAfjูrฬ#น(:ๅส [uŸโ_7cxเF=Gหš]q*ใฬ’โ(…"gษ\&PเฤroY)QY"Š สS8’ณข2ำ2–yq‰jิ่ฉdG.‚ƒ?"$ดบ!ฆyัธˆ–ฬˆ5ฅ&v$*jนP‘=!e*ต%โ™� I.๗•สhe‘,ฑอEBRk"หลเSภ‰Hญ,˜"HaฐJ ‹คJHŽy^‚…”ใฝ๏yfZ"ž}๐ฤ›”๘฿��u�โ_sฑY๑�4๓ณฟ๓G�็�›�}6ฎฅR†} 9โ˜๙<ง‘JZVjŒึ<„FFึ๖‚7�“,งQN"Œ„lx่ฌคล*ุ'ฯืใˆ=ตฐl๋ฅฉLฬY๒ysลรซA�*CZ Dก,L%*^u �โฯ๘/�มW�k๐’�๒>็_��/๙;//ธ'๖ง5ฯ ฃเ็?๔|ท7�f'ys*xูโ0์}ฯึnศฬ”|ย ู’cฆxึnYQ•ž่Dห•ุ0ฯŽ5ฑhด*ีณV๋๓š;มeี@™ฑ2 d้ฑJ ศ๘๑iขˆD…ึ4ศœ0ชหL1™ห๎๏U�Qี–ตsแqVsีฌศ"ัธzI’Š) KŠ(ิียa-ฑŒ(iษyYจแ}@*’†Bซ์BiไŒ,bฑ˜iE- !x ๔>„ใ8s฿$ยj)I๓Dซ 9?๓๊bMีšฺาิ–รฤ๛ใศทป=ฟบ฿๑—๎๙แใ๏w|xxb๒3o๛—ฎโฒฎนฌk)r ‘cH —ฆR/›—†y"ว%Œa%w๓H] ฯ มb#้sข*‚ทง#๛y:O๗ฐ›'J !p}N�ด]-j�œจ�b[:ฤHg-ญ^ญZาๅ๚’ธฌ*ฎ�ยื9)YWŽ˜37ZณVš!Eฒั4ฮก<ซkๆจ„Dคผ๙œใ€u)๔%ใตfๅ BI๋ศŒ11ลZCYžญ5J).ซ {ฮภ?Šฒ4iRะธŠ ืซวฒไš7ฦ,“Zb]kYธญk(y๙žšš็•)ธ‹๛i •…วid๐3?๔Gz๏Yiฬ™&อž๎ qๆE]๑ฬjž‰‘—ซŠ?ธผเหฮqำ>_;ฎœฃr3›บฃ6+"ŸะZทฦY‹U–Znา“KBš’ฒ(คpฬ1Q™%Ÿ^ˆ@&แTG๏๏ศ9"ฤ-$iน�•ฆd…‘$๖Tzต<ช#‹@3JZ$‰JญAคลNZ@”e฿ซฯ‹�ทฐ6!R45นdฆ�€Qสrฐ†t Iซ,ช8คRH$Z†ผ[,~ฒCฒคฏM1%A hกQล,ฑจขB0B!๒rฆ|$หฤ…�,�ลโH<>๗H๐๑ž9d‘h Rœชpj™†[ใะบ`ด$—ฃึ4ฆ#•Nี4ชB•…฿6"bจPูP๒„ฯN :YหดDgž9 8c™ลL+JeŒtH ศะXŠ(hํหŽJWิzDDษE1^r –+C‰Dิr๏‰@ฮŠ\2OใฅPIอ!Žำศ)MXmฐ .ํšSšiฅdkVฤœY)Azzวฟ��๘Gผ{{@๋ภะ&?๓ณ?�ฯn3ฤ"Yฉย.˜Šเงอ5ญVŒiยาpŠž Ž„)ูpŒ ‚๐)-HV86สฌQ๘0�ฅ๋ฯ๐žาฬ๓ชขไภ)D|1Tg*๐~ž๙ีš˜"ฟ<<กสขrฦRซ….ยฐ๗“น฿แ่|ฮา`YU)ลฮ{๑๘ซ�Mนธ�’0Ÿ% ช๕ข8ฯ า(J:-ข‘8�]]#Tท@่B‚@yYˆj้สๅr8AY–A”ผ@๒yแี3bู�ค$)/๑Ÿ ฯ;žๅyา/Q–…$%r๛1๒4Œ�฿~�–�ใ‘ow฿fH†ีๅ%›ฺ๐� บึrำY:kPVSิŒฐVC&D9!ฒ็”JถHaูบ i,4V,)Iฑ Dมˆ–1žธฐ-๛ˆŒฌmGส>Ž์† „Dk….5งq’!{ดฒXฝdh7ึฒŸ๚ๅ#‹š *bDแq฿ณฒŽ๗ใ#ฝeสตEอ�4.ไ)‘’!KA,Bๆ4จ"1RQฮึ‡F"‚8OฝlPJyฑฒฌ๋eฏฐŠŠำ0”D•ย~<ฑฑง!Gšf3ฯบŽวyYฦr�4Dฉน;žศ1ฃJๆaX6xYฅุ3J)ข๗Hซxู5|พYSŒๆ1ek๙bณๆส9ฌ1H1 ฅ(9๑Eณโ1Lิึ0P่ฌCๅฤZj>† {Oง4‡ �๓ฌi้K&Jษ็ฎโฯ;nฌใฺX)โKๆRY†๙ล๎้ฏ๐๛๘ฌฎ™sๆS฿#ๅ๒เ!ค%พ/™/ึ+:ฉy�๗œผ็ฦœๅR <๙r!JษMS๓ีvKrY_–-c/šŸ–๔ฝ $ึUลหบe7OL!เŒล)ลJJžRไ.zJ.�ดYqฬ‘#อญ่๓ขYYƒ)&"……•Vจ”‰qB–B '?Q[ลฦXžี /šv9ฯA9ฯ6k:ฉH1žWข B8pZัง=CŸvtf‹bN$๙ศgึ๒sฆ�'6H$JB‚’Zคั[ฌถH๓X2FIt๎˜rO>Oฅฒิูำ่ Œฌ‰Lไข0Rสว ฅ ฑŒฤ2ŸEท Uชe™’๊Qฒมศcผ–IQกแ›ด(aแผqฏ”iู€Z”ไ้ˆOำ"t“เT‹@PJa.8ั’Uม{O+ฏ("สH),นe R5Fl™ำŒ)ZฎeB E”‹ญฏั[ใ๋› >„ฒP„% ญ2Vื€2.็&%–hึ!H้ะH�ky๙�c๊ฯƒต�าณ>์w฿kญgxงฝ๗ท๗7žฉOŸ๎Vทฉ[-!ค 0B€…1˜€มŽ ๅ—ๅฒSฎศ6v™€ฑ“”)Wฅ\IœJƒMฉ ƒb3Ih‰nฉง3}็|ำ฿๑™ึZw�Xo+๙ใิฉ3์ณ๗y๗๛>k�๗u]ฟ q#ำTไ“ฆ๒(ษฐMทŒ’Y…@# ข ฤไ!)I"‘Že8ม;GขGiฉh‰าก าMl&Dr‰๊Šl‘d^*,๖ถf๎ภฤรซงeŸ™ใ^=�ธc๎ๆ๘c,s›*'œ๚%3ix5nฐœ8 Kถ’่žฟห_���ๅo๐ฦฉ๑…ฯ~/๏ปŠฟ�_ๆ�ก฿ร๗�ไ๏E๚‚w$นๆ6{œ[ฒRืภv*Cjึ™ึจ4\ ‘๗wj๕�oต8มจวdโลุใอ๑Fี๐ ๋-ษ&ฮEู›๐ช๋ษY8ต๗ผ์{Nใv้DุŒ‰น>ฝ\๑ršhCKŒ ษF—&>ธ�เœ*ฏ-ดNyั๗,gMๆผ™#๋o�[^ผEN=–zฤ-cภ/ว]ูฒู"FŠ=๘๓า�$RY๙K‰cDรผ๎8 )ฮQฑฒ2L)Eฤ…ใjซ๒|งลr๙p=œ8rท†rะ Sฯ]๙๚หK�ฝ9๐‹ฏ๖ผทƒcรU๖รž~ธๅtู๒ไ�กu<œ{^[ญ๐–ธ็&—ฌำKZยฒZQป]>0๒DSีŒาAœ“&่%คBE1อจyศย>ธฬไAq๐‹CLsG4e? *qๅฦฏŽฦฯใศ!n]าhหzZswธคt6ีธฌL1"}฿แ�œ”abฦ<0k็ฆŽ}@ณ฿0s๛ฎฤตfUอ๛ฒ I‰ฮ&Nๆ5b™yXกZSd?ŒŒำศฎ�#ภ�ำ3rŠเษ ‡ฝ�ช}q๑ฦ‘๋ฎ˜ยฬ,MœUส”Y�’M๘๘๚–่‡‰จยถ๏Q๕ค˜YฬjฮWs�>ฟว"”Xิkg๗ธމašธจ*ฎาภIำ๐ๆษIYกgJ๖\•CœX9Gใฯ‡‡ณฬI�p/Tlวป81ๆศรzฦM(๚UƒS๎ฦ 9Vœ๎‡r‰Kฝป฿ฑแคm‰)#�‘œ2ฅฬ‰:ฎวždpฏช˜bไz8ฏ[n๛Ž๋ฑ@d/ฌชŠ>Žผ3_q5ๅ€0Xณ๑/ฆUฯ`‰ทš1F��mP็x}พd=๔ลน_—า•๕4r๊หJฆส0ผ<์น&.๛ž{uEสXUž‹:p6/ Š8R3_Tฉฝง๒’แิแœรฤศdfNสบ˜%ะhE—ึdvx[๓ ฒŒด๎Œ1฿‘่ ฎ%ป‘† †ผ#ๅžE8GฬbOดฑ‘ึ_ะ†'$ภIB$‘ษD‹8ซจtฦ˜&บ|K%3ฦTžE3ฟ!vD3”‘6,1๓ลณใ^+ข� ึโญฅณ็D;Pหญ?eŸ/!œPฃ๖K‚ิd‹D�Sป™B’fd™ฌ'FGถH- Š#�HŸ7จeฺ๊œ‘Fๆจf";œฮ0„”{$ีHv๔ถ&ๅ ฮ–ดี กR‚kSiMฐ QŠ� ž>ฏ9L{Zwlf'5–ู:ฦ<ขา ’J„า†ย\๐N'&‹ธiNถ Jู๘๙Š #3ฺD>nY[ท@D™lยRภH$้˜๋’โ�H…ž7ฺ-ตž฿F”Cq่cGE1ฃฑ˜š[Y๕@ํZ‚ชะŠg2ฃง˜ถ<MูลŽ™ถ8หฌใ@ะ@PeๅZ)s;n™ฉrNุงŽฟ๔ง�๗�ษ��Ÿๅื=Y๑…O–ฯ�ณผˆk�๔๖—๙็�ื�พ๐ฟ�ํภฏx0{‚นŠJ…Œ'ˆUœ”�‹มŒ S>Hžิ3ฎw<฿๕|�ไ>Y„็๛ •หด~ฦว๛5s็น3CœฐF.ชตฏธ�๏้ฦโฃyึxT7|sฟๅsง็\งฤRK๓ใd™ZใqPXช๒ห›5๗ซ†F•y่ฦ ๏ �๙U฿๓z�"/ฟ๒งlu๖W-ษใ%ข ~๖ไณ๒ภภ*ล,3๖[D<ุ€:-ฐ๕ฅ7ูฯ_Qาฝ yยh0ซม&L<ขG�œยธฮ1ข.€ช’ใD>š›T+ะยช6”ŒๅR(P\ข ใrV๚‘Fๆl์”๗ถ‰ฏผธแ7=ืรฤ๓อžม%พนพม‰ใ๕eรw_ฌ8™;ฮšŠ3—I:‚Wฤ2YงRvaJ? }๊h� Hเ๚๐๊ iุ‹๖!ู�ฐaš&ค*,[ฏ‚ไŠซพร™C-3คžเgLC$๘Žล์>iช@๖ธP“-3ูH2ElBฌ่^—‡kZถ8๕ลGiพŠ"Œcั—gีœ)F6}GPONฅ`#ลLญŽQM%Œ“ฐ๏ิฮ3 Eoฦ๏CŸ™bคi+โa`TฅWกvP๙ ดb3M�L™น OVK†œป:๕๔‡ี|Iำ,Šร|์ ฮ๑ฒ;0[œภ`ผธ�ำ=๗f ŠัVž“yC#BฏŽw๎_Pต ž,Wลจ5๕ๅฮhF*^vฬฝ็6Žœ7-‡๑๗�ฯvำˆ\„ภำพรฉ๒ฉ“0ร9ฯืถk>5[๐ห� šs2นืฏ7-wqd^ื4มณถSคVGm@*†มณBถ &Vƒ็a�pฺ4ŒฉศFฝSฬŒฅ๓<=์i(ี˜ณฆ.ฑ›œ๙hท#mKํ=‡4•’u\ ๏๏6ธ8œฃ‡1c่๖ผฝ\๒‰ๅŠน๗,šŠUU‘อXV ุลHqR€,ญฏจUู ฒํ˜W'ˆิˆvdzยQฟDŽ€้ŽCผf&ูลW$"s9'3bฺ'สญฏP d๓@™.กbH๛ฒH#lN๋๎cj ้๎˜฿Ÿ“lภR ง�1ูฯ’!_#2ัศ}ศ-I&’PIไ๑R\ƒw็ “ขญPq˜ f#0I ๑ต/ •?มRยd* D%0ั‘sัฬี ธ‘)1M›•#๊Ž1฿ฒะ7 tมฉCƒัศ=2™‘.;ฬz๚ิ“ำœd‚‹ฬ�ฃ"ธ‰ษFฬ2jc$ศœ�.ษZั๊Q 0Asรnฺ"Dœ–†ตส๙Fฑh;*uxฉ‰4ทคM˜fjmK’B"‰‘ษ '8(๋ฃ๎฿ฌg&งd้ˆv %ก’š‘ฮ{’Œ˜–ตผR“่pึŽ}ฺะวŽF–งTnv�ฌfrqCฉฤศ&tVzฟฉ˜ฬs7nัฌฬTSวฬญ่์@NŽyตโo�ล�Œ?๙'�Cž<9ๅ๗๙ณผ๓�_โ๕Oผษ_�/� ๓o�w�ฏ���€7?�#ผww‰jไ6N�n๘ฤ๊”ํT HU๐\„šฅS>่…ˆฑ‰‰d‚\ใ�n๓ูXฺfต-ถ:lบ!ง฿œตn)ี ™†Ž”Š๋ฑฎฮk™ ล#n†ณด…4`ใ่ ด)&7Q4,€T&iก@d|]ฦํ”0หˆห อƒ“Qย๛f†:_๏4S๗ซ+-0โ`{j็pšษงxU0Šซพšฑvค8Tจ}ร'ฦ#ซ7&W๒ŸH(1Bvžริc–9ญNุ w%ึโ– 1’ญcแ—ร@SอกbๅgŒiห”:๚1R๋”n„CทgH3e�ำHE[ณ๎6ๅ 89งฒgŽ๋iBีำวถ�3ไฬลlNใ F๗J๓ัซ�5โ๎]๐แ�-qŽ�”น�o ^จผgwุsฺฬธำ4ฑr�HฆK)rณ๋๗๊…aธh[t�๒๘�Œื๏ฑXต|ืkOpuล6'N›อ‰3ธ.น๑F•—‡ญ™็]ว>4ดzqB๗Xข\๔ณe"ธฆผก’๚(}%ฺ๚”FะMท ำ๑ ศfLyา’rE?nq’Yดง8ญ1-๋l1ม3#ฑgศk๚™‰˜Fค0าH๐วƒDŽซy'sF^1ลž '$ฝ#Y‡w3*9'N=ฮ,+๛้–“๐ˆ”3]R๙๕qญ,&D้Qqค4ะ่=LJห3cศbYศ9ƒmQ\YBZฉกฉJt’ZQ 1 dถd‹=%ธ–ษvิ:Gฅ%ฺงsศ”wx_ำวHBe"u๋)๎๐๙>๘H–gsŒฤฤ%^‚ฬ™I๙@ซŒ๙†รธมI‹ณ็ 'ฤ<แตก>๖D237sฬbื8 ij4บ:n-<"ฦ˜‹ซ฿(ำ์"5gŒ– 1%hล’tVภAcฮด2cbGZทค‘Chี‘ล1—@&ณ‰ “ศ๘แ๛�ก�้?ว=ฟๅ|๊ป^ใ.�หŸ�_{๗?๚{�)�ภฟ๑ำไไฉ|MG"TRq˜Fv1แtยฒาฅLฒ gˆโูวLฃŽZเ ‹2Wว”F.วRf“อ8ี†ํุaูุงฤ… ž�๓J9X&YลE]|เe`7MฅgŠlง‰O/Oษ ^๕=๛)๒ฮrAฒR8%ฎT๚–*Tว`ะ็H?&ไ๒—�”?๚ฉIฆยtUิ์ธ#ฬ@\3 kชูศ{,m �[๚5พ}Œๅr$๋ ue๚ถด…๑อ}P)ซ๒iƒธค![‚,”ฐŠ‚๓ลลฮwbffX>N�)MG-ฝ0�… 9ๆaQ‡ˆ��A+าดcv8ฟ@\้}6ส„๏}]tzuEฯWƒ$ฤ >�l๙o>๘˜Ÿ�๘\m่w#—ฯืl6ggง\G}~ย;Ÿ๙^ฮฯVlูดขqŠๅb๘รzผิŒฉh+ู„œc‰v๘–ษ๕ไัM cๆด9!�ศ0 €ฐจฌ๛ ำ4ศขฬ๊Sฺ*ะฅrEใ ์รQ“ฒŠ๙*ฅ ฮyีŒ1EฆA**utใ•kh|UnฅำŽd5’[vำ-]ฬlณฯw7ฬ›9‹ถใž›�N‹�WืžฆชหชuLy`ึ,ฯฎno<ธฯณ๕ �9โ”xฑ฿ฑ:ปภ๖#ฯ๎๎ุฆศ๓9!4๔–yRR�ํ42kjj๋อ–^’ณCิจๅ &cฺ3ฆO…ืถ\์EJD-X†ศˆcFๅฺฒบีบDm‡Cq6cŸž“า–Jฯ๐พขทWฬ๔ม7Œ๒Œ ็8–%gE๗–C�`šJ๖œe@,กxFสๆ9!ฒ%T”i<lจฅˆI$ธมฦ|ƒ—9ކ,‘QvฬๅQ˜๒žฬ*L ต„R“K�[L์ ตŒ๑ ๏ฮp๊1ท;:G‘๚t ๏64�๘;ฟภฟ๓G�%>sqย�ๅœฑๆๅอ%i8๐+;แw��Ÿเ_�ื�5ฐš>M(๏๋)รH ๅ†ฐ"ต๗�ใ�<ฉ๐ฉล#๎ฆ‘รดcฎ1){‹ผั––ฝ๗๛ ซzมฉซxต฿ฐ{,gถั˜๙šสyœWรŽฯ,q5tx็9ฉj^๖=v,ผใผj๙ฅป[>�.QU�฿ํX…dห\ฏอๆ\ด-�™ปภ๛›5ตฃดผ�‡�ฎฟ�}ุtK_‘i@H‡"์ป9๎ั0/๘t‡:A�=rŽ8-สท -9'DๅhrW฿?‚ �‹k$,mฑุ“›eršPW ัQ-:'ข%~†aูc๙8ซGฅe0…ใม ิ#6a(9จDซ๒&tณื๔k–ฑ�€ำ ฎVศสfฌHู๓•หผuอ๚ฮ๓๗ฟ๑1ฟ๔WŒ›5ํษ’๛oผอ�'ฏัyGSช0า๚Dช9wด:’ำภพฺ0g1oฎ˜r๖qOEKŸK๛ุฬฯ ู๊ ฆdTฮัO‰“fAวˆiqึRใPN^โ<�80Šhษ่#ฤฺํช<�wผธพแฐ�1 Ž—ฑง1A‡ำŽ๏ztส็=โ|1๐๖ษkฬœเ\S*RSIgL6rZŸ0ๆžห�5ม+Lo9›-IGCแL/0"1w ใ€iข sผVŒyGญ†˜Cฅ)iŠ-Œ฿าOปmฌOA…x„๎ฤd์ํ›ฬ๋—ฯ9 W AS๙’ฑ์๒G$vฬ��Zcซ2mrห”8[แœd‰H&ฺ'*5cพฤฒฃา ก๊™dฃกึ3f‚gY๔[ู",pมด…œI2P๛eqOวžJ็`JŸoˆyZKะŠP๙#†Uศ6!ึ"d)ฎuอ�[ู”œ#deสปrˆหH๐K0!่t ธ•,™๒@ŸืHLถ'(TzNไ€Zuผูz‚6 eK{ผญP5T#9U$๋Qห8;Eฝ2ๅ ƒ๕ิZั๘ขยDู–8ฉIlbfˆ#–๖ด�5ฤลยf™โจ๓5Jมี:ซษฒวปš,FŸ>ฆฒ'hnศบลIƒˆgWxซqฌจ�uศC^$0ๆ/3j=cฒ5; �‘…g8‚6%ขjฟฺ�ฤ.Cส‰JคeA?ev๑@ใk้€โf�๓59GRี_^๑ว�—�,ฯ๏"�๎YุŽทœqฝ้๘Zj๘๕?๖��+?�ฏ ~ETภ&ฦ่ธœv� s&K$„ญMd3ฎโฤcทdœ8G๐‰JvSูๆœ„*ž๕;7งิNyัmY–ชžนT’้sๆY7๑]ณQ ฅL่Ywเ` ๅิื�ยอ๓,|jqยืถต3ฆ#ฎ๙ๅะ3sŽทํQuุ4AŽศๅ?๚ทํ์ัg?#ํพŽ๘โ/๖ฯŠ–ฅEทฬฆๅA–7ไธG\ƒVge]ทไq6ืS,ฤ6ฟ*‡โwๅขจoศ๑€]๎%ขv‡ซ^ว˜m0).ึฃZaV4;แˆj59๊mZฒไึก”*สœR1ห‰!๊สfเ;/ƒปา†ฅŠฃ:ล\@3’ฑสแ�ผ็๒๑‚`=1ํม]p9Dพ๒๒%ฟ๒๔l‡]ไW^๎๘๖อžปป U?ฐ๊๖4MCx๋๒้ ็vT.šภEๅ9ญKะV ็2คภฤD7fB>ม‡€ศภ~๊ไโXตKฌ' .W$™ˆyค๑)'ผ4�๕r*[ป~รชฎYึsฦผc4c๎ๆˆ“*^ำดใ0Tิพๅบ‹�u#มส๋๘x๑e[.)๔y`ณ/๚n[Z_ณ๒ฯvwจ $"f+N๊%›iไลnร“๖„๋n`;๎™75š…ง�–น“ฐ�๏™)z%“Y„Šg๛ ๓eรถq๛1NšŠส&๊ึใ\`sน/ฌ๗ล‚ซปi?pŒ98��ซkV๓Šำ๛ฌœ๓ไม}๚ูM8 ฑ\ฑZ๊.k–•ข>CรYุu†aDงฬ๕nไjทgŸ2ทCฯ4 ิUลฝๅอถฅ!ณ˜{�ผ8ใำšYe4VัHฅช๖ฬซ9]4jmP—ุŽญ)zภฃŒqคOฑ"ูจ�๔Lฉd†สฃฃrsผ LนI4ฎAิ›œJ๛ึGฒ๔ฬร’}พfฮ˜์@ขใคพVัูิ๒#1ฺ f๚)ฬ"ป้$ท5I๖ด๎“]ู’Miไ-๚๔ ฒโt†wŠษD-งไ์ฑคdึ"|ฆ’sFฎh๔1I๖ ‘ 'ˆST2Sฑ)Nไ4 x‚_ฒช3ฺพ่อนลi`ดkฤ‚,๒+œึTœpศ/‹ๆ.g+ขm0แ(ใ่€J‹jFฒ9Rฒา0(ม‰Br ]!ว)4ฒ%Gจdy�ๅ}j–9ุทhไ5TๆD<ฮEฬ2'5Cบใ0์3‚kจยT๓%AfE๊sˆyŒl…๓๎ฤH๙@ญ็คT.@ู ณx๔Hฒ๕$ู’ไ–ex ฃ&ฺต†ษ6จ8*นWž-์ฑ๐:รdภk1)ยDg/จธชร2วฝ่gNฬ=A็Œถมๅ‘1O=YSษํ[Ep์ว=U.ร>๙aด/Bฬ-gฎfL=ณล9�์฿เ�[�&_ฟ�˜๏บ_๓]ฏ}–O~๖ำ|๘๔๋��/?%<<ใ_๛“�!Cตd�_ัV+ผ[ >ฑF‘๋iเญๅƒยํ˜2�!๑ห‡๎W™ื็]2ๅฤ&ฬœร๙Oช9ต ฏฆ‘›ฉร� #ฏ‡ Hธ็กfฒฤ`ฦ�yข(=ฅl้2�8rZv}Oญพp๊Šgป2P�o๚iไU฿๑๑~ฯ>xฬ‹aไ[›;ไ๒�ธ�{๒EฆรGจ_ พลRวpธFฝC้I�ัZ-IำA/u�แ�‡ค๎E‰7๘Qˆ�+peาฮำืœƒดไดA� *๒qsฤฯสtoŠๅก�dิŸRกม๙ๆ–nA*ิ)ุ€ๅฒJ7๓7 ๕๑ฟ๕๘YฉธTZŠฃฤci$ล5โDC‰ƒฤพT ธjŽVslฺน �ฃeˆยdFถฤฬ+ฮ—ุึ�Ow‘งw[ž]ํx๚แ พ๙�\พ๗“ฆจ !P}๒S€ฐl9{๘0]ำดส"x๊0P๙šอ�–ำู‹pส!Ž9๋๎Žั:j”xค9ีaFฬJฏขห๒’P ฑ|@๖ำศY๓”zถร%ขEณฤQฐŠƒmcfศ™˜Vม๓ชปb=t� +Sข 5‹ชeœŠ3ง˜:บ~ฤ›ฐl[๖ร†์ี9ษN —')๑jศ๔รฤฃลœ}4,มuฟใษ|ม0ปฑFฆัแ� uยุฏ ต#‡–ซSฎ๏ถฤํtDTIเ ฦร๋-็'+ฺlL�€ “�Pฬa9E๎๖;โ0rqzสr1g^ืผvาrr�Œ�nเัษSๅใํ RN\ดหย”๖ŒSฯ‡OoฐmdฑœฑS%ิฦงžใ›‰Ggžฯฟม“Uรผ œT+œ”DFฬ๛’(`ษ”:2„V‰$r6*=cด%ฃคr€ฆ=ฮญ่้Jwr๐ถภkษD6 ำ–™_เต%าQป–ึŸDeZใคEฬ“$0ฤ &V—Dvxจ๕‡๔ ็3šc\�9N`5ƒผGฐ7sGfย�‚d;L{๖๑}๚]ebณ+Z�˜œ2ฆ=๓p•Sฺ•ษี5 ำK™ศ@ชPฃถฤฒ•ฯฃ– 9ึ๗fMtใ+,HRะ5๗‹ Ÿ G…JKาํั]>#๋พL}นhื9'zJ ็ฎค‡Hึ!นFT‚ซŽ๙ๅษ r6^�๒bVR6ชJส–”Qฏ ๎„ Lbˆ#š!“I)R๋)&ฤ FฤKCฮ�—่,ฑ$yp$&๖ใ žู1ษR—aฤ%,K1‹Y‡Yฤฑภฬ•รูxq(5{ญพls‚”;L{*=eาiๅ“$บd…“ูQฯ.฿#Ybด;*]”a(ทจ:2FY�ซฃ�hฒM-.�Œอ’>ไภปย”ฏM_foาˆM\]#GผjNFœ"iธ%�วต๗‹้�@ร๑3”=Šซ‚ฅ๑+๒tฉGย qณ–ทrP †ชC\Mฮ๕hZ3,ธฐ" r�โฺOปงˆk๐uq’Žนf)F$คภ?, †hƒธ2•ฃศฑAM�ั9๊ฑหi‚<€zA�์WaๅfYšT)v%–ขๅๅไจใ›%\จ ภุGx๏zรท=๏ฝZ๓แ7฿็nP>zqว‹Wl๋š�ๅ –็ด/pาs๏์„ู�3–๓†ี�aZ1ซ^ซ0csุา [บกcึฮSG2aๆ[*� ฌท2…:Z_ำ8 y �„สฤ,œใ$0ฆ5ช5Hร.�ขฬ‘X[Dซฐdo.G,Oฒ1M^–ณ{Œน8ณ—UKผถ]Yึ-w#์bOขงK‘ำบ…8q3IŠwีหฤ0%^m&.ช%งห�ดaปนไ�โ„๓ี’nณc}}‰ถ5พ]๑๊ๅšบ.ZuX2๖‡Ž�ํฆ๔ฅ#tSน˜<8]pyปๆลอ �๕คœXฉcูึœ�?ๅTปyuธ&JMUทธ!�๑๚ฒแ3๗W|๑ํwx๔๐>]ฬDw`ีVดพf C�Q|3W&พ}ผกrKฆ˜I พขFฮไศu๗‹8ๆ๎ uXนขbF5�5˜MD›xGŸฎจดกั{ˆUmˆ6‘bDlF”•=•žเDษ2ํี ฏ )๗eEDiษนร�• ›ส๗ฌ�’ฤ†˜ฤ8ำ†hP๋C’Œฑ'ฺ+{Db‚Fƒtˆ๋™๙ื๒-Nfิzัฃ”่”š_w ฺ%ญป@˜/ัฉ�3:œT8jŒžศคไฐsœfจ-˜ไณ๐Oส=^K&ผt;‚’-S$ล QO๐‘ˆY‘CR๎‹ฌ j‹r9ค”uxญ129wx9!ๅศ”:”†œ UeJฺ๚๕Šฃ‰˜“ฆผ^ำ@ž2Y๚ยทwๅ`ฮน€Jr.ไ8็=รุ\ลจ*d&„†˜Fr๎™ธมsฆ%ฆM˜ฃ>โ˜aptŸ ษTบยiร˜๏่โต<$ณ'ัSูขพ ฺ†V฿F,Ÿ}‘+Rt�FJ6)qธ|Kเ๏๊[s ŒDdฯ\“ศ$ถ˜9ฒีd„แ(gฦ ฒ๖ุฤ&:qฌ™a2cJใQย…Z<ป˜ICดฬๆ฿๙c�ตฟ๛7๙ต?๖�Ÿๅณ?�S�ฃ๐ห˜L<�ฎ๙๋?๗U�ภ�#|้ว� r4*_ศบดaCq.sฏjษY้ขัxŸHlํ•๛uร.Oผ์ึh†‹๊uฦ.FN|`!Y9ป๎า7็+„†w7kž๏ืœWHฦYลvšŽHฯ˜2๛)ฒ‰™3_ณอ‰Œ1xUถSไž๗Œ9ณฌ]ฬผป�๒zUใQไีW�#;ฝ�„a�mrฆฌฌซe-œ|–‹%v—h8†r[œ๖คษร ข a�๕หrR๔œฤีeM๎สdŸ‡gธ๚”๊ภฎ#ศ’˜ืว้l–nNถ tค ลtd9`tŒผdŠF{T๎–<]~Ž—)GผOx;cโษห2!ส€ฅ“๏Tมูำ/ั\#ฬ‰rK“ใ=ญVฌธน ‘œ!ว€ˆแB,ฏyVRNวU|IฉฬัถลŸCEด[œ)ํ‰ฉhLrA[ษค;ญ๕Aœถe[’Wค�1ฅ/K†|Wไ s˜เdVLhฺ™้@ท(%ง>ฅอ5&‘”"*™ฌ)๗ฬ�“ อU5ฃ KR๎ษ6NบUˆfb�ใ9#Nยฏห ฤHฮq2'ำ#รVส{ฤjœ‘u G™rt…ทLy‡ฦ DGPŽŒย�p:ซ˜ุ•X ฬุ็gฤษิ“่h�ท$2 TBd‹gE"‘ฬ่๓DEรh™˜"–K๕G๚”‘\Ÿ–9&ขVผ๘๊?เ�๔ฟฮJฎ๙งฟpŸTฝล่๎๓๚ง฿คj"๚�๙Wq'+�7๊?`ัฮHูแ‚��฿ฐ‹Jใ๗› Oห:%ฒp –M!ez›ัz!b�ๆ~� ?๑ฅO๑S?๐I~๊฿แ๛?� ฮN๚ฉงฟฝe๘เ)๋o?ๅๅ๛ฯ๙่[p�+Oูฝ๛Šปuว~฿‘บHšF&=0ค )้X6Œ˜vฬ๋Yษ๏kคŸ"รด#™ข•uTn‰s#UhP7ฐh”ำชกั–1E†4ขๆใ@๐…ฟ]IMํๆ…Žg‚๚Œ%ˆG™๙ฐฃุv=�pเะ\:๎ีž‰ห›n๛๙B้eMS9แœำ๙๏�{๕”nปๅผ=!šใูfอ8�€๗pฆ‰ำณ3�:]aS๏˜ท33๎Ÿ,Kƒยผ๑$ฆ๒ิSฤyวๆ๎o.”�่_�็๙]?tŸ/ฝUqeœฯŒทฮ฿ข๕งHฮ์ป3WัV™๗œี•Dํkf๕)NAยึ?"R€Nก ะ*Nภ<1฿เดฆึ%ษvxWงี-“mฐ่™ธ)kF›“๒ศn�€ภ’.} ฤภภB…„ฑ0lbดkผ๚โ=ษ๛rQ“uฅวf4๐˜ปื0๋หกง'๘ ˆ›ศ)เผแิฮqœ!šศบ)ฎa[ะงk‚ธยปšภ fะ/ศyŠผ“วbŠ๒ๅ‚์ิSWณข5‹G5อ1ษ7รฉว๛š  2[ฤE�@•4�"RศgB(ซyฑฃฑํ˜uงฤุr,‡ฉจ"ฤ"ˆ/ฮ9cท|ฆเ่าฑT๖๔ตฏ8[-๙๔ใฟ้{฿แวฟ๐6?๙k?รฏ�มฯ๑}฿�Ÿ}๓ฌt6z67kถืkžtษๅื฿c�ัsบซ ำZ8แuล<<`—!๘š“ู’1:‚[เœ x๊z†XE๋gด~ฆˆUคx ’ŠŠœ๚ศa<@ฎ๒€JESภ๋€jf{fว5Z7๔ˆFข%< C์PํฉB` s3�QY$ฦL— j2หEf๖œฯฯ œคใ�|Op‰a๊Zฆ ฐŽถ�ซ๏s˜ำT่rน๋Yญจœ# โŸธ8cฟ�a�bโnฝa;Ž๔รTฒุรภฦŒป�rsลŸ๒ฯ�ฮท ~ภIM]9V๕๋ฬ�ผ™W ตŸa˜น%u‚อดLะ"[b�Rห}Rห๋ไZผƒ.ฝ&*ื2ฺ%Žวœ1฿•5_1 0XภyMXผึyLเœัธHoŽŒRUๅเufฤ)“€ษมx�0จVจ9GF‰œึ5s?g—"+)uวAส€W;วaŒ|ฐ฿๑ูณs๎9ฯzrฉ8พ:žํ๗�›อHชฬ›†๓จี๑ข๋นF�ฟ๚‡๊g‚๎จOJF›Œธ@๊_–ีทบ2แฆjv!แgฏ!หงพ ล”ฆ*ธฃ›7T8bธะข๎;fฃ-โ[\}ฎAฃj๏แ๊3rฺA> แ”‚5ฬฤ�"ณใt๏P hX!Œˆ.PอXฺฃีฃ๒๓oห‚H(ฦ6๛ุมำ)™qมr,‡�ิ—Ud.–"•ข�ไ๒ด!wไ4”<;†M–บโ`ฯ‡โฅฅ-ล‘œ9$็›๒�œ/Qœโต+ู‹๙วขฎนฟ<แํG็|แื๙‘๏�?๕k?รo�แ๏ๆห_๚4_๚พO๓™w>C ๆ๒ฃ—�ผ๛œหo?ๅล7>d๛๎s๎>๘๎ล ๒๕ž๘jCwท%Šcฺm€‰๙�œ~ห๋็0ผ‚�“๒D๐-c�ฒ๋๖ๅR’|ๅސŒˆH*‡ป7�–hFๅซ๒`•๒?อัธ9‰็…ถNฬ� 'ต็ผn๑ฒ`“2Z ิ:P#X๒ดถBYณ๏^โฒฒคภฝี?หไ”8™=@๖ำแภ,4\�nุvBoฝบeL“มv�Hๅ”ห�รฎ/†”bฦU‚๗5๙ๆš๚ไ ฟ๑7|7S‚ƒฅ{น>ูะ๘A|˜h�“]••ูdˆ9๏จdFสRธ฿y„ฌdLผ๑L<'ฺU™JำŒd{ขํหสึB‹wsข–V/ฏ ฒn๑2ภ;€‚,Qbq�ˆ็ไ8๕Agคd๊ฐ(ฎ4‘ฃ1L=S์‰นภ0r่๒’๗เ{šjŒจ5Hnษ\ƒ;@š!"DนF}ฆv๗qP?tN’+ j�็•fี^ๆŽ_‰~:,+‘[TๆG™awฑ@N#‡�u&ป,ภF\๙�q€|‚บŒ†=ช{ิNŽœ๏ ั๚จ]พBตLƒ[งฦ๑ˆƒžpœ 8R๎Kไหญˆน๔EOถ†\•ซฒ„จ‘pnŽQ๎AO Gยo๐ฎ.[;ส4,hb.]๘=ฅไฉyจ b5)ญQBูjธrฌ�‚lCZฃy Y˜๒]กืูฒP)ŸC็^N0@vจ–.uqdURธ๏พ๓ฌ ŒyCสcูd]‘ศ ๐rAฬษ:†iOฮลWuM6ลฒcง2ศ„[‚ิๅ๒pL&80 ๅ5pM9ค$™ผิฅ๗_j/ส“#“2M™1%ึรžœ ึัHหMบ=ฃoฯ่ฟ� žๅ็9=?ใœxบ™ˆ์Hใš@/5ฑ;๐ฃ?๚e^๓|ผฟฃ›&ฮ�ŒŠ=—ใ€บŠำ8ฤ3)่ปiWก91sฒ!Aย8๗-S.ื=ฅhไค๒ัcš:,O์ื�RV2_0ฅXฆžฺ—ถดชยM‰EXอkn๗ฃV3ฒeถ7ฯ๘๔๙’๛แ๏๓x{pœเถๅฝGฬ%f�ฮํHึ“sF43๓ซ’ažใ†R‡ฒnช!(UP๐A[œ.สฝPzZ๗t า่Xtj—i8Oว๒˜ั %”‹ญณU6Ž๋�9๔๙9gล้0"b5Pกิe’ณXVฑฎ<€ฦดลปPxrGํNส๛U  ำc์ z†๗ Žšา’P[r_จ_–H฿9๔ษˆ”ึผZž0ฤ[๚i V๊:ลบ�^WจhIX๙yD!ห“„‘It=ล;%�YYวjูR8i nŽธ‰ gˆŠ๓BdMำB‡ณ‰1ํŠ#=•C฿Ht๑๕๏็<ู‚/5ง1ํษ ฌF^ๆิz‚๓Fะ•ฏ0vˆd‚ด?อx#‡้Ž.พ ่)F$ๅž‡จ(‘kHฎถxAŽฑ9๊งขGณ"KW6€R•uฝ๑ฒbสป2%ซ๕ตUน˜q ๅ|ผ0ขพƒˆ#ง‹-–รฆKH=๊ฎš•ฺR�C�АoQ๏ “X4แย rB]…ธฒ2wฎ)‹„ฃ‰IPิฯ ˆFš‚sฅ* ฎ\€Rฉด”ฑ4วกt[.:SNes€uจ9ลเg‰ฑ฿—\jŽ%’$Ži๐šyใม’ฯ}๎ พ�ƒ฿รo๛‘๏ๅท�ะ็๘อ?๒ƒ|๊๓Ÿๆมฃ๛TซSึ๊นพ�ฑ~qษีซ;ึ/ฎHOŸมๅšœUฎH]dณูฅๆdyAจ–๘ฐ ศ์8น•‡ฃwฮข('$๋KL'ฅโk รคธ”ฬP)‡�HAe6~‰IกฟีพeVŸ–ฺฮi๋ลzBํ*œ–d‡R3ฆkLx—5h�๓9�NKำ–๕hไ<–‹›๑N พE%๒@ŸžaV—™ห [Oๅ๎๔ง-*‘•#’S“5ฮ–]!xผ.P L6r7จœPŒ`ฬ�๓๊ :j้9 Cฺ2Œ[’•’•ฒ.yjฬ|aฏWzŠ/^Z๊สปฏgxๆŽh๋โš–Tf�b*}9bู“rฺ๋ฉ�q•?ร็f1OLฉ'ๆ-ฮ5˜�\ าแ43ŒผB$า๚‡@w$ฉอ๑๎”1nHถGY`LŒ|\ŒzนGฅมๅc,ญ’&GS้U!อ้ฒ?R?&ธ‹า„ฆฑ0ัฅ)f` ศง‚iG-‹›Ÿู๖…มฮŠศภi‘U,-]Œ„'ๅDŸ๖Hฮจึ ydส‘)็ฃA8โ%PK-๏GY๙†(s7ใn๊p�˜๋œ;ฦ>ไฯ�ป�๓็�? ผ�่„epอ}�z๓ ~อgN9ไŠ๗_\๓ู๏๙4?๘S�$โft1q_ro™๙{œV"’่3xจตแล๐‚J•EXRฉgๆpž^„�ะ1˜Rb?%B2ถq`;t˜BD๑๊จฝ1๗๛,ิฎ4�='TJ�ยว‡=Ÿ;9Eี1`ส]Œœ7e]^‰ฅ�ฤศ๋พc>ณ<~ๆTธ<๔ธ?๘ฯ|๑gšf^LM�W\~�๋ห—ผ๘ฦ‡|๘ญู�<ง��"วƒจGฝ๚ฐiƒŠ1ํŸใ๋9quไ•๗ครฎ>Gดธ�ใ}ฐ๘ๆ>๊›bƒท„oฮQWฃี฿>D0R๗’ะžใ] ^J“sธf…ฏOz๓๕ำ5yฺโ�๛ุธ!วฎนภ7๗ งBsชgh ๊Oศ�–#Z�][ฤฏŽฺO้ฅF\กย้o–เHrหฉ #๓Dnษฑ+k๘ิ‘ใXถ้๎H•+ไ%ฑ2a็t\ว็ขฟY:๊ๆR�ล˜qฎ่XNๅ่7ห”~4ุ9_ฃ�#ฎ8๗ษ†๚ฬ้ฝฏ=\๒}Ÿ\๒[พ๐:ฟใหŸ็'ร๙‰฿๔k๙ยพ‡zนค๗…บ๗แ๛Oน�ฺWน�๖ฌŸ�Ÿญ_�1ํ4›ํโ*L]ม&&กR™๒žhฐ ๗YิงD32#�๑หYCืTZCv vKpฒงญ„Fฯฉp8qD'œ5ฦ““‡ิ�”ำzŽลม5�ŸแฅaY—Dšqนyฮผa„ไ ฿b๊จ‚า็ŽถNl†ž�fDฬQซัm๖ไcf�8ิC๋็+ฆ�K>ฑธเ๗�ไ๏cโ็J๖”Y8'ะฒŸž#Ž W‘FœbeMe_ขO6ะง+ขง‹อHybLฏ˜RYฉ6พhŽ™C\“c"�ภ!}›h#ต>Dกฎ)้œ–โ^'%[Œ–0ฏ�!ใิP7•U&™œz[‚ฏ nฦ”สg:ธjŠcDl‡jK=yrLqOิNe†แPmˆ๙ภaZ3Œ}+IY {ืทอ๑ยฑ=^†3ธ็ญ>:RK�[DQs$�“1ๆ[„†”zฆ8 ฺ–|ทญษy$HMะ†>ฝค–๛จ$๚้‰ง$;`า๖€VวธV‹Qฆ๊ถUfี�9ฆ�ฅข๕๗@ท8ๆวuyทbฦ‹yWถny…iฺแฝวค”ฉBœSพ=‚f<>็~ํฮจ‚เ]๙ืnU�rCส#ขPนถ€คdVšุ๒€ฺŒh[&ฎ!/`Z‘้™R‡X9˜c๊ˆ๑@สœ4…ฐ—zผถ4zNไu%q โ*L•;ลษŠค7…แฃy^d?๓G—� ˜#ษ-Bัๅcqy:‘tƒฃAi๒%P—ฆJ@tWžmธฃg( ฎโhn0Id1*mจิ4ณ•ไ‰˜วc,Wˆ6ำฤมมฬsปฟๆ/�‰Ÿฟ๓ณ฿๙#๙�O<ไ๑“7๙�_�;๘‘฿๐%พ๛อ†a์y�vd��%�ไฟ๐?ไ/~‰•ž0‰qg_็ฤ?b๎—L6ฒ•Ÿฅ›J๗B๐Žน6G๓งbณPEูKSV๎†Ž—�žมŒŒ‹fษ<4xŒdSašˆcๆ‹P Œผ:�˜/ห๏<ญ6CDrูH4*7รฤอกฃๅf˜ )ิ{N๋†นwt)๒ธ๓tฟว�‹ฟ็G~ฆjN ๕‚ีขeœ฿ฃ9}ภรe[๔ทมฑ}ฑแ๚ใ-ืO_r๙ญ๗๙่W�ใp€q๚�ฐ๊Wอํ•j๑๕-กฝ_&ฮ< ๊qีŠ4uิ‹O0�ฝ{Œฦ(0‘† – �‚ธ�ธดp๙๒„8C(ญQf‰หzu๑Jอิ�€E\Unนh)EษวยuqKRvฤ้€fก฿>%Mช๊„8mสa.๎๎›N‰� hEN๒ด'วฎไ6ำห="นdๅ-“R"ล็หš�b‡hu<Œ‹้D}MฉŸ•ใล bค๒ฯด-ฺb#n๙จั�9)ำ `y8\~Kฑ ๖’ำœึxN[วใฅ๐นวŽ๛�~โ๛?รO�ภฏแOŸ๓^w ‹ฒjFเตYร0EF„�iยลฤWo๏p�๓?๐?3ฏ %pถผฯผ๒˜Œœ>�'ฑ|๘€ล�7ฉfsฆ~อ๕๓W�ผุ๐�›ฒนšx๏ซ๏๑�/� /Ÿ�๒โ้-wืw †�ซ2•๐u*ฤ~ƒ„3\sฟ๔ƒgรr&ล งL๛ื๏1๎ฏห‡E2่ผhำศุสฤ’ฎ:!k\hฑดมื๗ะP“chEŽทฤ†=ำแ–q๗$c<|„ลร‘๒”ัP๒‡EืึrหลM‹ซำโห�ฑท�ใ|ƒซOP_Cฑ้ฆk$’วbS�X.ข๛เc๏>ex๏cฦง/แๆš�ๆ๛๋๚�-๕Tอ •ฎ๐ฮแ$a 3ท"'ุNkTJตiืO์โsบ)โ�Œ๕pKด•.XศЉ=หลฌlorฆOฦํ๎Š�ฐ-W'X„Šw7<8?ลJ?t8ร!ิมัฏ?ผวzป#,Z๎อื7โt ฉ iรีี‹ดๅw�ฦdVื'-ษถค์P™!.–‡ฆบB ฯ)ขๅ๖๎ƒ+—:+p!ส4ๆWQ_ุูnw๎๘๚8ฐp์.f;Gi๓NIถล@SZใhpAึˆ ฎ;อ„${ฆ|(n่ใ*3ิj=%ห%*‰ํไ๙ลป_นN�์‡ถ�~ลๆ๚}~๎๒ฟํณสฃ๖{xู?ไ�ซ„ณtไ|8ฦzœ,สz[;ฒ TzV“RwŒxใ™Xห”๏ศ–i�๏ๆวฯ}*q*หˆOลณbจKิ~Fpsผ๓จ8jฝO]-ษr ีTพ-บซ›\้ก1‡แษQŽ+d!ฆฮฮˆiว”Wแ‚aRš�Tj๓็๗๎๑ษท/h๊%7ื4๏นู์๙O�ยฯณM���ฃ�ํ ห+&Fบ๔!ธ๛8˜5+๎ฆr‹sŽ1oI1แlำั†๛Mง” j–"ป!rG.ฐ ฆ™•ิฤiโf�“ILSมฆ:”ึUdŒซฑ$2\จจี1wŽเ—ฉ่แ 8mœ:Z็่ฒ๑`>วงฬ™/ภ›ป˜8ฉjL=]ฮ๎��‰Ÿ ฒ&ๅŽฌ5�ฯสช6M˜8rŠLร4า,NX>xยล๋๗ธ�๖›<๚ิ;�{�5.ฝy u=�็ฯุ฿�2l;n>�˜g฿๚˜ห?dทูฎ;ป=พ^‡=y: ฮ‘ากTŽj(9Hญฉ็๗ฐ ก=Cย็@ต"๖wเ*b�q9ด]‹บWc9#n^Cฉฉฺ๛ˆRVŽฑ?ๆย]กk…9๊kย์>yบa�]aฑร9#;|U:ผSสลซ‚ ศE๋2gP7/ฏ›•›ฮ@�1z•ษำบLะร iฺวi,.ว2 XD|Y7!‚๘ชฌฤญรศัษ/ธ๊Wฟ๊็=ฎšกกมIษœ‹z0+ฬdr‰ุ‘ฏŠ’หฺrrX�ำVž“๙Œท฿xฤ—?�ฟ๕‹o๑�~ไ{๘ษ�?๔=ฏQฯ+ดqฌ›–��O?zมG—7ผ�๐)—_—ซฏ� รำ฿�้#‡�'๎ืP{œx\�bๆY6sŸผฦ,,ฆัšคUูhจฒjqV=&KD™˜นc2,๏‘ัด5๓ๅ9ัŒF็ิอŒบฎุOk4nhญมU3๚ฑ'xแzณƒ99Yฒํป~ ฿ธบ[ณ:ฤ)ใkV ฟ๋7�zๆอ ๏=S๛‡mPฉtEๅVจ/ฤ/ฅ)“žzŒX�{6A๖8ืP้y‰~™‘ุโŽ๑I5)Ž�œQ[อ˜P.ผŽ%CzฦืจฐŸ^A.ส>=�ญhไ“จ8ฒAp5•žzฑ1๐> :‘eOะ9/ึs�โ?บdุีฬฬ๓ู๙‚บŸ}๋mพ�ัC�ซ>d;�ใ��อŽ�๋?�:๎—พBทนไตวซtห> ,๋ŠZ›ฒasฯqวCcˆ—์ใ8Jฤศู’ฬœ›ดLฮYŽ�™ŽP—–ฺ-@ฦB;ิ๗‰)1ฦีrvŠXUšฯฒbdœ8‚Ÿ“IyOดคบภkŒำ-&%&ๆ�Qใีฎ|.…’?็S์ˆr‹iDLIrCื!ULySšห ฬส…+ๆฑ|ญ)’Šไฃ�3ฦ5&I อฬธฒฑCFิN›ฒu<X[�„yuืc�เœรป9�Zผ— b๊หeErฌŠ‘R”1vzmัใญ#ก )๒ํ}ฯท๎F^๎œฯN<]:C5mอ({ืะศS;�Z|’ ์ชL2 ๒์A;Ed"ูHส3Š }ฺ‘ฌ˜ใผฦry๘N-"M๐g8ญ‹  ŽlB๋{� ๙”F*ฦฉวœใฟ�‹žw��ฟฮ,Xถีฌฆ žำ“S8ใฏ�์?เ?�ฏพย‡/๏Xฟ๖ >�ใฟ‘ื๏Ux™\fวภ•‘นžbR3๓5A”]พม$อ1Šq^3q;ŒฌวI)oบ'61ฒ๒๎hl,†้.๔wถ‰!'ฎาTHส๛s„(1ๅอvม6&2™™+DภlF๋=+็i\ู8�OBอ/��ะลศฝฆ)~„”น้8Svใ๗/��_๛3๏ฟ�ทWื\�\rs๕๛�+†ร–ุmส”๊3Us‚h(ต„ฑGD๑ก%ฅžูษ)ํ�Q/{o~‚ลูœ๙ู)ห{๗ฉ๊๏jlLคัs๛แ+vื—ฎ7ผ|�#ึฏ�ง�]ำ:ฤฯu4‹s„ ื�' [าดGซ ,–ส6๒DU,ซ๘9Hลฐ�จžrฤาฆ aS${๒๘ %โ�œLF}Mš๚อณbe๖จ›“ง‰4ฎ อช€ฦ[Dฌฌ๊ฅ&My*“qN™i�ฒ•ฦ[ฤUจ/๎๛4m˜ฏสz๏8 งธ&ล}ัฑ๕;Sr(ซOŽx!™ฉธ#V‹ูN<&Vฆ๙T๔x!—?ซ ธŒ˜•Ÿืื…l—ฟณ†/๙Oหว•ผMeซ๙jdภSd<์ษใ@ŒIห ผ~qสo๚ย;�Ž_๗~๒>อo๛๒g๙๕_�฿ธ@Vsา้Šห˜๘๖‹W<�’ซฏ�ปo}“อ7฿ฃ{๖‚แี๑nCิท‡-sWQ)„Vh›%ห๊„�ุำธNฺcไg_Vrษำล˜:ศŽอกงญ=m{ฦf7ภุำ๕—ผ�๘}คพว๙๙#๒4rต^“ฒqˆนd/CMPๅฐ/•Š6DZฉจซŠ์„�ๆ†ท๎๒ป๔GhšŒ1P้=;ฎKง�_’า„ZSศ]2ฑ฿-L์œศน0ตK;[ว˜$ป-™๊81ลŽ1ฏI6mY$J=dัgd6ว•๓ ฑFž8_ฆb„“1oษ์JT้๘nKถว�y้ฏf‘ŽโM™Ÿ�m๚~โ๖ล๏ใ3ฮy๛โซลข˜cขใ/�ญฏ๐_๕ผs๑€฿๕ฮg๘ว๗๙;฿~—‡–�ๆ;&™@Wdืแยg'ฬ�๋ˆŒ \R…๛€Pป‡ ้9S:เ�‚*Tลg’gๅฬ„wŽ$�qํIถรijห˜6ๅ๐ด๚�g 4ญสจฎธไ–รY8NหRVำฎะะฆด#ษŽเxWะ=)Meาถˆ58 dฝ+pฉP'898ฃO“ $อ ฮJง5๑บภนe)ชW‰\ช—N๑ม9Wแ\‡ช‚–ุ˜JKb[๘็โห@ 5ูFฆ4ขy…ไS๊˜าš”ืไ��%�าธ‡?aแšฦฯˆt\W|ด�๑ช๏๙๊ี–oพ๘+฿xŸ๘�-ฟ๔�s�_ฟ๐หุ ˜mธ� ๓ึณ‹kิดี‘ใมฃ=ต–1‚y{ฒ์ฉ]sฌ† จ€—9จv‡4˜8 Ž�ำX.ญV3“ฑ|%bœLH แส‚1fบi‡ศžก;๐_�ง�'ฺWw<>9aท๋x|1gZพฦ_๛๙๗๘s๑o๐ู๊{์o^qPใih๙ง~�วx๛๑C†้Y๙]ๅs�เ,3๔U!%ZfฐคฑHC K็ู๖;ฆX๓j�ำ8OpŽ™ˆใัผๅลุั œึ N<“%LQ…ัเqsvฌู-ํu• 1Fห๘œพˆŠ�`›3/๛ŽS็˜ฉ็0๔�:ำHŸช๑€)&^lwœ‡ภหพว�ห์�๒3g๏|™๚์“๘ณORพFฯฆ๏y๑๊%w77\}๘�ฎรป‘4>ว๛Yกž1 �P?C)>/Ai–๑�Sต ําำœœใ*eq๏5B›Yœพ(ร63n<›หศว฿|ม๓๗?ๆ๚rฯณw฿็๎ล‡ค8ั฿>ลy๐อ’<ํ‘ผฃjO๓ท8�}@จK-ๅ~๓ำแ’P-ศใศิ="ร� ฒPอ/Hรš4�โ�Œ4m้๖W%ผ_ญ˜๚Wว๎๐b–๑พ�xDK…H(๋ภc%)ไใึภ#2#�ฑฉ€ ฆ=*ง‚๗?ฟT+‡ -UsŠJUL| ง�;‡k*HึœGHฬptฏKq2u๑xŸห๘‹|��>๋งฯx๖�\ฟ๛.๑ูGุ๚ฺœเ็oะˆะ wผ�พdืO,ซ%f;ถqร�p@BXMj2�ํ+6๋jwJUี$้ึ;Nฮ๎0‹๙’Gg�ฝบa$3k+b?1wยbVณ8cOแw�ะ™ืห5)n…ธฑ *E‰ybLท�_ฎ�;ฺถ์:๏+ํpา=7พX๕*W!UHQ‰lK-ฑe[๊–�n’ษม(ต,5์a๗dทๅถฺญ๖ีร๒ฌฬR3ˆXจ_พ๏ฦwZก�˜๛ผ}‰โ{๏œ{า>kญ9็7ฟ๙}ิแถ0ส•DZใ๔XฤHœ"Q๏ๅญ‘*รณ์ h‘.-…ณญ;2}‘ N‰zU#!ฅ้Hฆw่b‡Sc2s@Š’x‰zAoั๙%คŒ6ž๕ํ:แDEŒK ำ1ทN‚pmบESฏณ-ไสu�pทn๘์g>รyเ J.Œ&�๚›GlMุm2ัฮ’1E'EํOั*ร๊C๓ VจบAีdv t…NNa^ั†>ึˆ�ญฦ)!oajน�#ชImดหG่TRGL+œ)ฐVฃ0=ฃtส่ขุ๛fzBP ”N �%BชI!#E™Y๛;ย9‰VDX’&)/ญ)ญฑŒˆ|h…<�ฺ๋Gึ๒y”x*$Dเษ…5 c[ —“ฉ!--s2nU—g�ช#9คh๑พดม’X’b‡าพC‡†ฆัrkใbm:P`ใeชฆใญณ{|๋๖^พปไน�g�สKว|๕ญ3Nๆท็Œ+ลศ'žŒ๙�ง�อd˜๑/Ÿ{•‡ฏ^`’+ึอ›rrcฐYKแFฬยM:ๅูฑWPฺc(ไ๚ฅ€าšLM1Lค็อMŽQ‰ุซเ%ศŠINZIa”รb๊ะQT<#โ–R$๊ฃKชhชel ‚ZกTล๙ษœo�ส็่n“รมฅ๙ึฌใงฟ�ท^…‡vนM”M,ภืž�ำŸ�A&;�ฌ�œสw,|…gEL๔6ะQงำl‹&*๖‹ ขa้]Œdึ2qc c)uNGdlนuฌcEAŸ<ฺh๖Š‚6š˜ZหผYˆqQr2ฦŠโฐZcb"wึˆƒ�*F&ึแSไฦzE�y๎65รSใ-j๏1)0ซ*N›šyL ฌc0D=๗ึํt๕ยž๔แ”&x1๑~E]-Xฬ๎q๏๕๋4ณ;,ฯ๎าฝ‚!Š0?d4r vvO๗1ษc\Ž !วธm†฿AZc�.พ9ฆ=Œ5„3av๕ขฃYใ2หูั)๕rฅqU็Q™๔2cฝโเ๊ˆฝkOใลdใฦิี1$รp็ฌฯ^B� m,ซำร)ๅึeฤ�•8ค…_RL%ฅ@u�บTท*บ†|ธG6ุ๙T;‚”๐~†+. ฤค �—๏BีKลด›H’็ฤถ๊eW๛žYZ‰7#aๆ* *วWwI)a�@`uS {MyEBน)‰์A่D†1†šD.~่z€ฑNชj-.Bสฑl m ™ำG ฏ…AญŒ้‰€ัHณ_`w๗ฎุญE5ฯ8Q�C๗“‡จ”HI\…ศขH9zรญณฏ-y๎hมแแ _{�.‹ำ3๎�9ไ่lŽืS—qy{‡ฝAฦ๔‘G1W๖ะชฆ�.a4ไโ วฆ’จu<วwpa๔Uำrพ’Œ˜y–ุดxบx,–œอˆำ๕ฏปใ%sขทX-Še"๏ซ๑aEี,)์E”7ทค:š๔ชHuฆก๔ Uลจุงด1LHษp�ฌi’แ๚้Œ/ฝ๐{ำ]พ�Oก1ขe-Fk�ธwฬO|ฯรPค„าšy �ี_๛ทาลЇ๗๖นXLูOุอK9 ฒงึ(\–ƒผ|zศ�นŸใ฿{๖�ฯkฯtPเ2ฯ๎hŸปGง–œtง\ีWล)ฎๅปON›เ“ฬ�†D%„ถ˜JRฃƒXฅŽHำ fA ฆ‰ 2๖Iฌษฬ€จ;bŒdfศยkŒช้REฉถ๐ั“Tไ๐๐œ๚7�o}�&”WXtgloyถ๖™nํ0(3ขZsr�&_z๑”ด๗๏�ฆ;{ฤPq�žณŠฅ-M’้!Sง9๓gzศiปf๊rŒษ8๏*Zoศ๚๓ฮb(MมฬwZC„ยึฉล{MR‘J%ฆNแ”ๅจ‘ูm“ t‘7็ว์˜m^_œ๓เhยQ �ฌื|p็":)๋šV5<1œ๒ฦbอทf็\Œh“B‡ศ~QpงฎูqŽ7Kฦyฮ,.็9หชAฝrใfฺ฿šศฐ|’ั~ฅึ9l–กตก ะ6ะy–‡ทฉซŠฎซ9}๕%woัฎY�}็ ำ-Cแjด๎˜์Œฑถ#iหxoฅ5&qฌ็ทl]ฅศท„ฬ–*!ผ้Lzยส’‚งšŸ1?9'ฤœfUj‡dไe‹_ž�œ๑�ัฮร๑”้C๏a}๔<ƒ�ซคดb=ฟฮ`๒ฺ 1ๅ~}ะถ›ำฎฑƒ‹ฃจ็oษธาฌŽษวWฅงn‡"tๆr�1!ถ;ภุ1เ‰ํPm‡ฤ ™ดV '=s[P_'+†ุ|B์Žฅ]H/ฌDV ๛*XFฮะNฦ๒”“žwlHกWทn!A]‹1…ถ#ŒB@๔’คุษใฑBายาUb$€3 �BฆKฑู๋ซž h+ี|ฃ…C_ญˆ_rR†่;ดŠ˜l$z๐พF๕ๆ1ฤYะ)วูผโ…๋'|แต��~ใฯ๛Œืฟ๕ [๗๎2ู�ๅโศr๑ฑkจ>รฃv‡{�8yžd–„๊ Kฟb˜`X˜อ*’2œ/g อเp~F๎: ปลJๅคฆfh-ววg(Xห๚dNVXLžฑh;Vgทนไ=�ฏ�'Š๘‰Rb_ฉtDง…eUg�<;ใล;-/žฮ๑ึซŠ๏�๓๐.1ํam"ฦตŒ.iษัƒฆฤงs‚ž‘ิ,Ucqj gvhป]ๆMห‹ณ%๗Voฮฮ…DาŽmฟไใ๏xŒgธJ�ถ�wึj�ผsฤฒต<๒ภ%,bโhนๆ��›ฟส฿iiฺ{ฃำญ%…}€=5eแ_bš.QฒM–-)ณหด้J%ฌฺUQ˜)1ล~~ธค ‡จ8F%GP‡ �พดฒโŠ.ฮPL@ญ ฉ"W๕ฉ$—qBˆkR4ุ4-- ญ ฌ L…OญdX„(ศ.)ไtIฃ˜™๋GŸ’"*/"L$RŠไ๚"๗ˆ)ขำE’‘ฒ”ก)X7 –�‚ฃๆŒ;ซš[ณดฃ๖‘Y�ั๊Œkใ!F๑@9กิ†qฎ๙า7yแ4๑งŸy€ ป{"นjN็(ีฑlœTpgตๆญU‹O%ฯฯ9Z/ษ]ม–)1Mรฎ\ใ‘้Ckู”Xปd` ฒl"_$š‡$`1ˆ(^›Ÿ๐็~๚ง๙ฃOo๑๐žฆ๓†ฝbB– eฅkq*ฃำIrLํ6ุน$L1ŠB%!xBZัฅ™พˆณล}w9“ DRค๋��4๑d&ร(ƒN†e� ?ธM:ี�˜_�ฺ�ฺืop๙]๏แฟ๛{� UXPง@H5wชง/ฐ›็ิQL‚ึญยj##’)ฒJดร‡†กR…V#4๓๕œ:มศy”สHบ@ลุJ�฿'GกŠ‘‰Bพxvยฎrทm-ข-ฆภฅฤชkษu`โ,oฮOูฯ'�๖๙’งฆ;ไ(n.—”.c๎W]ฦy๐˜”จRB+รฌชQท๎ฆัH”จฺ6HฯตWณVc&m0VฃH ฅhชช…ถฅšอYฎkšๅœfvส์๐อฝ7YฟE7ฟหคœspi€Š‰ค ฒ?f๛๊.๋ใŠษฮ.ƒา0ุ0ฺ-_xฅ;@  “ จๆท!z‘6m�pŸ่kฺf‰69nx@ปšฃญ๋ฅV•๔}K1ุq˜ะโ“ๅ’uMh—ุbท'y\ฑ+� >0j7ํt.3ใํ ฺ Q๙%1rQฆgTZ‰ �7 ถคn&ƒif,T2b�b ฺ(-3œ)๑=W=�Wgฤฎ๊ี๏DD6บ•บ85๕ใ' GŠ1V(๗^ํฉwSจdœฤ–ะ_ญs@แปš%‘I)bmŽ2ฝQN.d?’โxึ๒ลื๙ญ฿�Ÿ๙ฉ็^แฮ๊๏h:.~๚ใL{‚‘:ใฦ้mถ๒(mdF ”จZa0_%r›ััz๎'ณ3NgKฆnŒ˜คP1Rท-„€X–u‡I‰Qi )qrใ๛6๒�๚_โส๖>t2ฆVhJ™xŒš.ฬDฌ"ฃ˜๖ำ`ีHD‰Rd้o‹�งUขฆ+ŒŠผx๘:ฟ�šf�X‚J\˜Œyๆ`‡ฆc�๕kทXฟฬ~hฬฅ^“;โฒฃ3Rฬมฤไiš5‹jŽ๏,m3เคZqT[r;ภcฑQกฃgึ,ู฿špqkสn6โโ๎6o�ปมY7็ูG้ืsค๓m[q|าิ€�ฝ V2gy๕่„ฟ๒o~๏๙ะƒAหมpศtค่‚a3Ž�[Œย[jL–ญุฮŸภซน(+ฆN‹D3*ซi/ ฺเิ61FB:'W’ชjO5)ญศ๕5|šฃใฅ^฿#K๛klฤ้KEด ฝKY?2ฅWhmE�Nc|:ว'SไไvJJQ��”ย๊1$62zYAL4ฅ๒‘y�pฒjhขง๗ธฑNไjฬ~^๐๐ึE๖Š!™…2sŒƒ�}ฐ฿ษ>ตŽฏพ�?๗ๅo๒‚+ำ=V^qcvสแJ๑๒๙ฟw๛wิฺ๒ิมe�wp‰�ม€+ƒŒ+…ใB9&ฅ@ar0า…i฿/d��F5xOLข๒˜RDGxแ�„ฟ๐ณ?ว*rๅส”\o‘Rล0;`/ฯ(Šš๓ุs†m›31[8Vๅ( บtŽa‚IC๊t—.ฌ1\ฤฺˆSŽ”rฑ_U+1SIฉิข\จฤธฅ๎jRดd:ŠVผrh]ำค€Šป,ปs–ก#+4Cษ�ลๅ๋Ÿ�uพ๏๒�|„๗}เC\:ุโ่ื๙ึWฟศฺม›งK>�อ๙?�ะษgพ๗{๐M`Nฉz‰๋*”,�ฃ Q‹5ฒ฿แ�ŸsuธCกrกcป˜Rล5™ฑœ{ฯDฑ*pgต'ฃจ:Ay}\กษ˜๙ศ^แจบDก็็ด‹bvb,>zl‚]2๓ž{ํŠญLณgงผฐ8&ฮx็pB“"ฯฯ์g3๏ู1šำถๆจํธXŽh:ฯญๅuใ๎Qฺ฿bค้คย�\ษ*d–”�žR๊ณ˜ไถคz7 $„ุ��Š-\ใฉ๋Žีษ'ื_ฦ„5ดgจnษ์๎ซฌŽ๎PkLึ1œ๎‘—2๎ฒ 7�“ญ๑ัo:&ส๒ค5mป ๑+Š\ฦ“šีœฎ…ฎ^ฝfur๕ัฦ*Š‘ฅไ๘บbzqษ�”ไ[ป�Œvถˆอ)บ�ยก7๋z&ไ2*ELน‹6™ฒุ�๚๏a[คn๊๛ลฑซˆ�\`>บ†ฒRวn!}rฌŒคฉ@จO0๙ฎฬ€ทg(7ŸโธF๕๚อJ9ฏA‚-LN ข๗“ว7'}_;C้8/!s๊สŽ@็BJ๑-14าWา1ืF�Ž” ๒F �%B8@๔T๏2NQิใฤ+Hิณ0rปฒBf๑kRา([ขษ\•.ะ0%Vร์•มWฟ๘9žŸ>อ฿�ีŠ฿‘ญ?�)�๑‡?ฦูbมแ๙Œ\i2pzLYไะyf๋ WlQท-Cซงœœฮ8บsU, ๎จป–+W/ฒXฌกYำลD žลบAนฐ3เdีRฑซ๏ฏ�_x๘โ˜U]ก๐โPีฯ…วิQ๛S ปW็X-3� G š˜j*Žำใ^ฯน%ฅoc]ม็พp�A>�žง8)�€ไบP๑๙ืo๒อร;�ลO<ฦบโะjตขZlั5Ÿญ,๊%ƒม˜บdฎคฬs‚V˜D4#”]ˆ8SสiาMภแิ6นูีัฤctIJซ ขž“ข%ฦตX ๒H/zาŠ่’jIบ&DaŒ”มs„ “^‡ปbUฮซ#ๆMM,ัูP:G:vห’ญ,Qฺ’‘อ1)ฅ๚ zโhฏ˜ษ(ฌv�<>แพ๚<ƒห[m˜u‰WNy฿๎5ล„็ฑษ˜‡ฆ{์ๅยฒ–“Vชj9}ล๘(!ฬ๓‚ฑX‹๏#เ˜†ไy:€Žlถศ2{tGœ๚T/†‘z’ฅX0สัŸ๚–‹"ฏผ๒"U=็ยฅ‡ุ�ฺล9CH ฃ4o๑1ะ๙Hๆ2๎ž๑ฃŸ๛๏}ewหแP\M๑ฎแbvcNUL%yO๐โAฎฐjŒBำฦc๒l@i. ŸDŸP่’๊ฉรฆขxช;'d—ิ๑†NํกขA/*hมกำฃ !6(1jDฎฃp8u‘+|š“Z–…E๋ซ*'t–{gืYVŠH†3†UZฑ?ูยf#vหใฬฒ••�iR๔hใQโUฃศ<๛€–IEฌษhcล?��็์_แ�—.rฉtŒ3GnKู—›Š:ฅ�นPฮ\P๒�m1D<%ถQB–MIพcy|ูๅ”hช†ข,(สœ{ณ%�แฟ๘gผ๗‘mž}tฤZ5์๊ t๚:*์/ใฒ11u‘:ึdYมุfฌ|วฺ7ŒฌW็ผ:eูฎนZLฉcฮ"†EAKขDั๚ฅ ำ|LH-๓vอq#฿yฎ->*ŽšŠ YN–wฺ†7K.moัฤภถ+๑!๐ึbม›ซ5ๆ'~๒'?›็zkda*ฅ0VK BZฑ!a'[ƒ1ฃๅ€J]H๋ฌh†๗ทั;(ลฎ•‘ญ่ัฉลiลx0`2=เาC๏ไ‘๗}Œƒ'>ย๔าำŒฏ}ท�>ฟ‹ฎxŠฃ›-'7Oธ๛ๆ๋œ�ฝหj~&ฅj5๋œ๔‡ฝป๊๊:ดž—�Œฆป(]ฑ�ะใ\~โƒไ“ล๎j0  ‘ป‡๗89พรัแ)ท_ปฮั7จ็GิGK|•hฮ๎_aœ%tkBทฦ๛†n},+ึฤnAW�5ฦdh]sJhฮ๐๕฿. uุb aIŠ56aฒ ฉ|M6%ถ3ข_ŠอŸ�๎๗์F”ฅW7]@he63ึฤ๖ผ฿�šV7–�wาƒง�“=I–งTŸ($ERš่Bป"๘šะVขY๛j"„^GNT๕ดB ๘่eๆ=t•วˆาF$H‘๏฿˜Bิเ”ลdนฬบcH1p~ใทy๙‹� �แ]฿�ฃ<๘ศำ4~ฮO�ฮ๏๑ฺsoฑ๓ฤƒL๖K๒Nำ่€ึขท}ึ5‡๓3šDฮjํ้ย‹กm3ศ B์Nh MีB็ !าv‘ฎธ{ิฑ\j†ช mๅhภS—ฏ๐่มE�ฟศƒ[{\O˜Mฎตฌ�˜ˆ�๚‰}RDดB›ตoถนLฎ7าƒืJ{ฺบๅอ{ว|�ฉ'ylบKi,#HM์แ��GฮAAR?6*™‚H/ว”ะF4ใ้‘2๚\ฎ�ป"‘ DจฤZ–uรฯพ๐<๛รฤฮ๎€5ก‹ŒŒeึVlๅ{`š•ึhpฺXˆพบŠrฝU†PcT.zษีšLMpj,qAYŒr$ZŒโี1: ๗กๆF ล;"‰UtVtqŽŠ5ลฟ�G�?๎พ๐๏x๖ฑ]n%พ๙�!>ฒฯ๚รฯ๒๊ํC�ม?�พ๐๕œžŸt@mm๓๑๏�ปI0bp7žBE–อ9Ng�k+bฬษMขtา>V*Q˜‚ำบ"`E๐1ฑฅ !0ฑ ฃ˜5`”c@†ีŠฅ ”vภฝFฮKk™5์;วช๋จ;/๑*%ฌI4QsT7ไV“[ษS"0ฬQ-ใd'Mว x (8]Wdhๆmหผ๋Z‡๙ฑŸ๘‰ฯ"๘ฐAjดีค Y 1็D!ฬ#šวVC’�™<&ษๆ2ึbดJ‰ˆŠฌ&-pRJโศผ๔_S k‚oq™aฒฟหึม;—/ณ�เC<๒[ฝŸ๑รยmฝ‡ถปภbQr�๙[�|�„ร� nฝ๒<ห“�,็'t๕=Rฌจ–'@GŠ MSัถKb€ม๘2Z;Œฮ(F�Œง{LvwM' ฦ&{ัๅ€ ‹ebพXq๗๕๋�y๕๋ใ5gท๏ัฌV๘ๅ ššั�รขธม>ฦŠ{™q:�–อ—ธrŠuๅ�๋ขmŽอ๗ะฺแ›ณ>ฃฯฤฆ:B›tั;ฌัWฬ€ส‰ก#๚ตX'ึ'ค า™)H?%/-ิฤฎ•ว๘5่\Œfย�Z6 _m?&'‰HJา2Iˆ Œศr*bซ{๋DmZ%@‰ส“(‘๋„๕๏ลw8%ˆ!าvย�ฟ�ศแ๕฿c๏ษ?ฬ#O�)†ร-บfฮ�ฯ๘—_๘‡ฯฝ‰�.ธ๔๘ใ๘ ธSŸ0.r†ู€A6dฮ๑&WาัRwBN๎2ฐŠมะาด-ฃั”N wภ’ศฦC4‰,ห$ะ9Cฑ5 5 †ฦ๑ษ๗ฟ‹ƒษ)ˆ6ถ๗๏Al0Dต่]ธ"+/ใŠ EH 9๗n/Xฬ#“aเ`บลมNษ�๖�ใ}บzมbนเสีหฒŒม–Cสlศภ๎r๕๒Y)-9~คu‚ฆฏดไORLาฦG�”๛$G๕cbZƒ l1%i…m‚†’ ก”ย๗EkฤŽ๓�ูŒ฿z๋WนฤAุ้ฯถ)2หd0 3:FFaา@ดูอ9VMEFิ$i3คBศKด่XŠŽvส<@‚`H>VtมใCKjฑ๋ ขA›ุ๋ญฏ0&ร‹าข ๆ๔มฬฐf"3๏สƒ ’ธRโี)?๓…7 ๒มว็ฺฮ”ฝญ—๗vธดฝว หzล7M่<มG’๊#b/*“�แฆฝx?[๊/ 6šd ”�^๏๊ฆœŸ1;:แฺล+V”๚$นปMะ}ย%<$ฅฌผ�Fvนํชช1ฦ`Œ6:ฝ”ฒVrU"�ดฆitJ�๓ฏ~ฅ๎x๊โ.็๓ทศlB[‡+Y้d5 �˜\)”s=F๋ˆ"ว"z žตTใ"+ม~R‡AmAๆ™ศธ้‚บ^ฤe€ฦ‰฿ป–D(ำŽ*iแ ฟ๑›ผ๙สkL—ฉVž‹;9ใ�>�๛/๐S?๓ผ๕ฺMzษฮ�€ถdMโ์{น0™โCbัAH ฒคiา*F2ณO+Tา m‰ำ�D†รฎมXร^V ิฑ"ทCขJXญั‰>ฤ&T๔�™ ๓v%๒KFศฤึยา{bŒ ะ,ป–:) m9mf\pV!q:œึ์ธซ๓ชfุฏลSุ ไEŠ55‹ถaซ( (n,˜�ฑŸ๘ฌศ?๖g@ห$dƒงิฯ๗}oฉ�6P  Tฏ$๐บศI๔‹ผไ)&ผ ห"Dทฉ๔Jจ"šˆ฿6D฿’—ๅtฤึตk\~ๆ�<๐ฬณ์>�l?๘!ถ�0ญ฿gน˜r�†ืฟuลแšำปžfๅฉ–kฺีœย*œีdนลืghญ๐�บOP ฌอŒ.2š\fผs‘ƒ lํ_ขูพ๚(ๅ�ดorx}ฦ�๋']ฟวูญืY฿ฃ>;…TšDlภZE์*!X'.ๅฎฤถ‰QัฎฮI1ัฎOH�B ธ๐อ‚P๕ษGhฑูz;ำ่kBwŽ๊๛lJ)kQVห๖†+ŒฃAfสIx_๕.jR)“๊^�N`r“ ๚^ฏด>6?ัฃbฑณ–$ูฝŒ•ษกO hcั�{‹Qฝ)zbT„(ื ™ฟฦ๑K�Œห•ง�<—๙.\^’’hO“9~�๗žใ๐๗ŸcธฟO๖ภึซsฃ]vส]BR,ฺc|ิ �ญ#นSŒ๒)ซVฑ ฐ5ฒZฮะ)ะ4+Bhชšแ0'Zฉ–ึซ #oฉๆ3lำ๐ฉ๗'{ใŒys๏[9œด@šฦ@fงh œ€Ždj‡N0Œฉ�-๎.พส๛�{ำ!ฮ)ดสD†Si–ี‚ฮฎ\บะ๐ ฃU=c~^กา€ญiI =aq…งุ—|oWWะ๓๚�๛๛”™*@พGmeหmมทํ=ีคlณ.tา?ื “เtนไง^x™‹—5ฃขCฏงอœ‹ร+”z—uธล(ํaยˆ&œ’Y3ำ๛=๘เ=ญ_า†1ส+ขnศฬH@%…2•( šVะ+%#ID3#ฑRUจZ=’VLข๗�‰*ษโดลnๆฒUŽา “ขๆ๖Yอ^:โ๏z…ถt^ผๅตึฝ ฉ$ฺYหFซ ฯ�`B$#•rQิสbา�๖žๅbฮูษ7฿:a]ๅ์^ao๋ค=y?มฺœ‡Rfห๗ึ�)฿ำ&_ะาบ์ื„๗�พƒUŒด!$Y3ฺH›๓�>Fั4-ฟuใ๗ิšGv;๙6Q๖—ษั œewPฒLKส0มi0บ๋•ิไ๕Q†”4‘†.ษ$ZU‹a*าฅ’ZbTFH‚ด้\พeัช$SSTR„ิbด8˜jH—ึXSbบœฏ�ๆฏr๒ึ์ๆŠ [�hG|๑ๅ›ผ๔โk”Dฆใ’‡†<ด?แ่ดๆ,E>๓�’ญa&ำS1ˆ,UอnพMฎsฮš5;y‰2Žฑษiา‚.‚Uj<{ึ`{uปMLŠ\K๛ฏ 5>4,ป5๓ถฃ ฃA้ศาGœถŒ(•3๗�9v๒œuDค ฝท8%DG™xะIึ_ž4oTg์KŠšจญ๏ศ”$]ดaฺ๛{m‡๙ฑ๛ฑฯZฃ๛�็X7จ^†4๕pจŒ$HeฃT�1๖%ค eˆIก๋+ฏิ?™1บึ ำฯ+%ฝ1๔rTŸ(-Ž.!xฌ6h")xŒQŒ/ฐ๕๐์?๒0>๛1ฎ~วGxไCŸแมง?อ`��ุษใุ�g89T,ๆ#ฮ๋]Žnญน๑๒ ๊U t‘nํฉgทH^HWฦ9บnIWฯ0nJื1%ึŒw('C[9ป>B6�eฝถ,nฝtส[ฏ�โญoพฤอ—^ใ…/ฝภ๋_{ทพqำืX]ฟI\ญQQ๊šฐ:Bป‚่kบ๚ถŒš™‚ะœ;‘ีFแ†ปฺQf(Jxล.(Ghgจ”pƒะถฤ7 ”�EerŒหัฺ‘�Tฤธ]u“๏แ๒-ะฎ—„อH}ษDโ๚พ W๔KYฉ@^[ Qzแ(”ฒ2'ช%˜+›ฃRCJ`ณฦ ฐนc�ึoq๋๋�†แƒไ๊ป� ฃํ+=<AีD<รมEn�9ใKŸ�[=ฤ�แ�ˆY7fdก วฤ”1ฐl– L ำ%I'ฒฌภ XฎDฅ8:>'š(�รm‡A’ž๓๙R4ศตbถจ&อd\2k*ฒค๘ิ‡�ม๛Ž6xฌ€iqถDiDก&):‘๕~ึ๋๖š ทX47y`๒!ฌ๕ีrั3ี็็sBทd8ฬX-—œŸžq๏�1ง็sึ•ewwŸม {๖Uฒฬ‚K�$WJ๎์5๏ล5O๗.”’ไ\๕ม3^คญ์ฟเ%9ค‰DH�œหธurฬ/พ�?คธZ8–'Š3&๚™œย[š8c`wลj2ฎ่8กฐ#ดษH*ฃ'าโ์ซrฌ™ O^:-มิ_/ฝยฃwDผ”B[ใeˆ‘่;ภ|CSญ �SญืœŸ/XW ''sฺ.ขฆ๏qๅซ\ุ‘ึไๆ{L๘้�U‚ขl*ฆ>˜๗…พจ2๊�ัPก”๎gศA๙�ดึ=ชำW๓�ูSขศฮ>�๒+ถ ๏ผ|ฝั.J#เLN™ุาึjjฮHัj…&งK น�)Sƒ็4"ๅหšLmกt$ฑภ(oqjLR+!ทjั‘้ZkB"XTJ๔ไ:๊&๒ฦ7พฬ๊๎ ุ˜xe o�ปหล,๐ม๗ผ‹ผ๗Qž~t‡าWU†‘E>แ�ภ�Žƒํ=ฺPQฅึฑํFbmJษภ šฒ๋ฦฌ}EŠะzMีu”&วแYงŠeฅฝกK4ฑCCM‡ตฬd(Uเ”B้–I6คIซ:‰š“ฎeb #ํจPฌcdหYnTเ(HlGีxN๊Šย(”‰๘พ#ถ๒ž�]วะๅ ]Œbpข Gซ5>xิ;wำhT๔pฉdj›E๚ตcŒ‘’ ํ<]“†„dกJ‹า—๎+ฅ„ฅ๚…่}ลฅ�DJ|�1ยb�๖J_ซข žMqaต@ุO+EJb๒แฌญˆJcํฤ๐MGW5$ฅฉฮฯ8บ~“ึฏ˜ฝ๔yิ�3ูA…ŠๅอpCอฮ…=ฆ{ปXk กข”ฒดMEBcอ ฺYฺzF–Xฏฮฅช5๓ู9๋6ใ๔๐.กYใB"‹‰ Enไ{ท9ุ/๎LบBนณO6ฺ Q0ๅก]าญ๎ก�(ˆ� ํFฤn�ฦ4n๘(ก=’๋gŠNฯ0ถ „†ะญpฮกดม๛ eทับ่GNฒพ๗.6ฅา‡Kท9ฬŒจฝกลN4EQพา]ปB%ฉ^ขoษF�€๘—'4ษwคqลิฎน๑ี_g~rศฅ๗�1๖� d๑Q `P๘ุRC9ุ็๏��ฏ๑�๘ฯ�฿\�เ{y็๗}†ฑ;เๅณทุD๖Š=ฮ+ณณnMตX3ํS`พ ]Aำz๋5C•1_6๘PuM้ไภผ'กจึk๊ฆeฝuญyHFB‡2ทป๎*|_fซ5ื๘‘Ÿ�U�๗.วw\ฝ€n^œn ™้Svอ5ฆfฮN~‰U7ร3–Dห8�E'MŽ๐*0-ฎ๕Šฎำ8DŽน ฏ3)‚PเใŒฦิ�L8 *bโˆณ๎˜�‹%ฎ›๒ึโ๓ตๅ๖ผๅdีเ“aฐอณ—ฏrmgงำฒภeซไf9Xว�ทnฒจ๎๐๘SOแ[ฑแ].–ดm‹หršถ!ฯ…Yไ™(:๖ญ@1ัh“a{Gภ…ว ผƒุณฦั‹,k๊ฟง๛•5J*ั�›–�๕gfuหั%๗o’ธ๛฿๏�ฏV�ฝ้yว้:_สs!† ฺ!๖ญฅ1ฺ๐C�๊งxต™๑ว:`ฐ›(ฒ5…ฝˆM'๘qฦม๐*—mฮ–�!ะ2P‚V%’X๛ฆ• ‚jP rต}฿พ5Pัล9๛�yณ&ฐฦช=Œ*จรŒ”1bช€„OVฬ�G]ว�่*ีW๘๏�๚ฦ_{•G/Ž๘>�a>๓�?€n1ฟu›/~ƒ{ท๏rzzW๎ฮ๘ฦซ7ธ๘่w๐—�ๆ฿ก8šค™ทฏfbงฃ#SP่)N[BLี็คจัไ๘คš†h4]ิธไ@ญัj‹Z:๏ูง�ใSภู€–y—๐กลใ๑ษ12uŒ„1hŽ�–�M8๋"ฏ.ฮกi“ฦ9ล*tธ!>ถบ`ัy^]ฬนTŽi‚g+oศ’โจmนXนUืจป‡๗าt:”ั/%tp–ๅ"๊;oณิ’ฮ๗�ำฝw๊&kŒ1ษXYlฟฝ2ุak4mP›กrมจ๎๗ำ ’รศ๗I€๏„BฤX!r(๚ืIฉ'ŒศARฉ๏ๅuตA[EŒ)9gถR†ค-„@จkชำcฮOฉgิ‡ืฉืKV๓{˜pFX3(:r y.Šiy)uธb›ๅbNVL0ถภw-]ปยๆ[]�ะต UตคZ5ฌึลผใ์ไ.หeŽ ง`ต์ธถ?$/Jฆ;~๊*ใษˆlคศถ๖๏LํŽPชข‹•ฤถๅะf€oฮะvD ŠพžZ‘Pี%ฦ”„๎œ่WุbO„�c$๚)V;D›ŒุขtRšุ่\2�่ๅ๗\IJy&,)4„ะโ๒–�๘๒op�ลืธ๖ฑ๏ๅw~H’ผ�@ I๊’ฐŸอ๐)’�่K_ใฟ๚‘ฟษ๎;Ÿไม๏�nูฐXAใGDํ),ญfxหชbงุbจšŠ”rช:Qลศษีxf๓6wœฮ9=;cœ;ขีœ/+v&#:•˜žp�ํ_๚?๐ฬฃ่bKnฆ@$ค3บิbี„คfคTc๕c,]\Šฏq๊p™โึ้๏3แQ��1ฎ€กTแzIJy๏BWB_1๗ˆŠ๊วมคฅฅดฬเwอœ˜,y9‘ �6ปํ>%FaŠ�ำ5 ]'._1&ฺV=F“!Gwั™%+rƒ’ัจ˜qๆ๒!ฐnkR฿›๋ข็ต›ท๙๑Ÿ�e>๘�œw๎๏1‰ึ–ธํŠ#›๓�bWyJv„ˆ– �Xœ�โˆคfิ๑qq•I~Aๆฏำ=Aฒิ„Zฝศธ{/Uwยแ์•ฦT�Œฃณป/^สญG%ร�dญ ำแ˜ษ $/rqFห6m‡(๚xˆ‘เ�–ƒๅไ่”›7_ggg€๏1\V0™N)‹ผ'ส9”ฒœu฿CพŸ ษY&~}�บฏึAษgฯ�P๔ฆ์คoซธ๛‡๕eŽTๅ›๓ฑ$sผ}ˆ๛๖�ฏJ้o{H฿I ๏;‚๗๗ vBr‹(ญeBจwบ๚๋Ÿ๛Eพq~?๛๔ใธIหฌ[0อฦDuF;๑๔่IฦzŽM–ฤœLiJปˆฺ‰ฆนrb่kŒqโ2วš;tีTยฉ] ขPtiไย+ RKฆถXวSฺ–Gmbˆๆฟ�‘�3?๛kฟษw=๛0�ังžๅ‰Gฏะๅy๙[op|็ˆ‡ปศมฅ1w฿ไ_�์๏๐ญWn๒}�ษ๓‘?๙GฐiDาPฑขึ‘ํ|Ÿ=J%Fz€-U0ด1`ฬ;งก BอQu cr rญzEท€Š–A6B;iญ[ฌ2ฅะXš)Mฮ™oC‡ฆ Uœ๓ไเณึsณ]R �ŠRN[ฯฤภชfjJบ˜xiึ_๛ฬQ9ืืkสคจQXi•%ถƒ� พ#‘รxำkz{ัnˆn’Pส,๗†„ข0 [ฟอ�ZคcŸMฆุืื=๖พy\Swาณั€VXc๐�๗ฦฺ�Tฃฏ๚}BDŸ`ตพฯ˜๎๓~klชCู$m6๋_6‡ฺ๔${Qะ‚ฬY”ฑ}๛@ใฃ]๊๕šv=ฃZฎ9}ใ9ฺ๙‚ๅทh–gิณปจ0g22WžgŒท๗z๘ L^ะuIiบ6าตdๆVƒฦณœญ9?ซHd�นq•ท4พฃYWŸ(2#ณ’nศx2ๆk8ุณwๅใฝ1[\$ฅs�่"ค฿ž‘TI c(›๚๑6esbs.ึ•ฆD›]ukƒ~zŒา–ะ-ะn[๔b‹๏–h๋ TฃฐๅeŽ่ืDrผOVฬฏ‹ืฟ๘ซŒ.=ฮฃ�ฃ=bืขœ;]ˆชุfBก+๓!—~๙[ฯ๑C?�ทุz์O�ภ๗26†‘1๏ว๕){YATŠ"q8_ัฎjผiษ€�MYฌ=gMCQ0m ถi!Puž{ีšฐZ’ดก๎"c—กTdฝ^pูภ฿�แ�=O=xJญ๑ฑ5%5มวVปพUdiใ!V ่า’Ž9–œณล๋˜4ๆ๑ƒฯ๔ย)‰ย^Œ€*Iฉ๎ew+œ๘มศไpOาŽจV N๎b�€ƒƒ]ะŠถํ„tี๗๕ภ:ื+r ŸๅึYaB+้YUkั�ฮ2ืCยฒ฿•ึ๘”zxภ‡†ถ๋่Rโฮแ]~๒็GŸ6|๊‘k่XฒS*สกกษฐฬูN‘-ณ'>ฮบ#7cR„ชžฃ&ช–œาlฃ”ฃใงvˆฉๆ…ฟษ้„rแxŸ�ํkญ้ผ็๒๔€,ทdึ9‡-ฒo ฆ๔1พ Sคˆ5้๏“คGณ^ญijOV8rg0ฮ๖•๏&H๖๐tpDๅโ�๎ึ›`�6ฤญP�knฒ ŒRณ๖?›ภห&่JP„Eฮ]xปาNฉ–}0๎+`“ภ๕ฌ๘๔๖๋m �W�Z)”้Rพํpฮ๑ท้—yn}สŸx์+ืbหCm้ˆyY๐ฎม”ƒ,เ๔”า”คt†กD)OT น�ย๊’-*‰œ2)นY NํัEQ{าš๎ลžŒ�$#ชyˆผชฦัpDใ-& ‰:๒ฅ_�E�ฦ�$>T๒g฿๗8O=๕o�^r6W\y๘a�๙ฬใLง‹“7๙๊Wพลฟ�น฿แ‰}?๐ŸZบ ับcอŠก-้!!yฺฮฮป51ไTฑfเ2”ฮัชc�ด,๋%ฅ1ฬY0ะป์fcVพม๋Dแ„h็Stdzภญj…Š`ท1*v]N�วส‘-น�,˜:…‰%็m *‘็ณvฃ k+2c™uŠuU‘)รหซ%]L<2�f` ห9ชข—dmไ2ฬ�๘_๙lY: $ฆ๏M#ะ�TJซ•’ผ_„ฒœ”x�๔ฃฆo‘๊Aชˆ t.๋ญ'ม๕ีrNฉ�ทz๙=ษึ—๏ํื~t-Dผ๏d3๔=ฆ^ฃปoธ์m’BtSัU@‘‚l^ŠX ZEฌ3 ฦ[lํํฑ๗ศ;น๘ไ3\zฯณ\}ๆc์=๑a&–DHโ$ฅต%อtwภคp4อ‚‰ฑ�ภ‡?ฮtPโรฉดย์ว‹ePT�6มทt๑Œ“œ(จรmึี ฅ`๔‘ญ3”  ‚๔ส๑าฆยcญ5BmZ*Hย*Žoณ\TLv๖‡t�ฃpS\&s์ลฐ$”ƒ๋ y™S ไe‰uNfล๛ฃ” หฤ(=๏๚™ัh%ะwL‰u�ะEE–[NV‡�ปืoฑต•qao—vร๊†<ๅD่�œ‘�รโaŽ *j!nwฺC'š!Pี็dz—ร๓oq็vล3๏z’w>๑Nž|่1.๎๎pฐsภลฝ=†ฃœขpุฌ๏๗็ศ9•’$ๆโ๚€ถ!มภฆ/ุ?"’9CY:�ทฑ๎กG฿ˆฟ9�Tฺยภ–็๎ฯ4ไผ็`~�Q}€฿�(x›˜ถyZE�ผ๊ํDC)A0uทซอ๏›พmา�๔ฐผœัฒฟดไR^Wฮ5ฉฮ…0ฆฏฟy“;๑œ+#อค�gpนala{\โ\๊ธvQ๚งrRLX=D๋ˆำ6ํJbฏj Z9P2)`(ฤ๓<z5He๑Q�GOPษั†J‰งU†ETD]โช#�๑�฿p<;แ=yภ…๑_๘๒uNื~๏ง๙ะ'?Fแ*vผ�โื๙G?�M๊|ภŸ�กe๛ยURjฅกมฉ ํ;fอŠ;ี=’28ญETJ็(�ะคށ)@)‚Š`™)E†&yr3ขมctรXo๗ˆ•h˜˜ฑ -ซะ’’ฆCc๛Vศqตfัต์ุœ.E ํPJsZผ <<q�ถXํ˜ไ… xป^๗๏ฯ”ฆิŽB+MCฉ4ซถcๅ#‡๕ ๓c?๑“Ÿ-๓ CfดA Mญ…อ(ีน,"้s๖‹ฃWnSl6�šำ2’‘R"๚�ฯ$6๖+=!-ฯ™•ื>๔•Nฟ ๚uc ฤ€V๋ด(P๕2fJืฝงžธณู<ฦš๛ŸKiIN”V8g๎๗�m฿‹ืZแLOฬ#‰ฝึBถ๋ฏƒ๖„ตsถvนpํ*<ฦƒ๏y}๐ปน๘๔G9xฯGูy๗ณ0ผŠ7{%Uษูyโ๐ฦ ซYห๊๔œลlมฒYณZ-iปŠึG””ใ!M๋ษ๒‚หW. าe lF ›YBh8],น{rฮ‹ฏ๑็o๐๕ฏฟษWฟ๘*/|๙nฝt—“7๏Qž ๊‹"Sซ"๙`7<ภbm d๑+ขฏ1ฎ“•ค่๊c๒มฉ?ผฺ�๔IDAT~/+•ค๔L5ฎศ้ท๘ๆO�^�ย7xื�“<�กg้šก�i฿œKาfส๛ฃh))ดอๅภ้ื„า๐ี—o๐ ฟ๓ œƒ�w=J‘•4แ\XฒEษ ฬศŒ%š!1@ s’หฉ1\ํcŒfTไไ ฺฆล:%ฮืkœ’๙\#™SœฬOXฮฮ๚‚O}ว“”ร/z�ฦ๔IœcŒ'จ9ฅป‚2ตจฺ$้e›&] ฤ๛รหh5E�WrJๅฝๆ|ด€˜e;”๒ฒวbm“แ;ˆMหp{ฬ`4ฦe†ข,ฐN๖ฆ�H2ด้กJdธ฿=ฝๅส�’จ�WI�ฬ)'yำ“CปpZSf–ึW��็o0�0<(ษ”ย6 V๏p็๘ะ้†59ะ†[ถˆqึ.“yํค<6mQวSึ้&ฅฝภัู›xฟไ�OฝŸ�ํข“6มY Aข SผซD}[—ธื๎งW$m*ี๛แฎ?๚cก]ูNิท์�y6๏ใ�ฯ�ป7Aด‡ฟฝ๙RG ฑ็$ขoๅ5๚s •z.Eฯqเํ‚ฃ�8๗ฯึ�…๚๏ฒ�๚€๎ฏฅ(็๏&X๋๛ณ�rฟ้ษ‹Q)b 8e๘๒๕7๙ฺ้ ุ2( ฆใ)ฦด้จlเ�†ฝE๔@1:‚NโูNภค=X‹ฏw?๒—๐(�ๆƒˆ|ญช ฤ!ศ(Yยฝ"จ9นูot2ฌ*)ๅ์ญ—๘W�๐pqRp%๑ึใ‰ๅป?๕a.^นJ–„ล=พ๖ล/๓๗�ู๙๊๕ž|ๆ|็งฟc J›aดAN†Š@ฒl‡Qๆฐ6รุ1Fต,Zeœw5*ยภˆFง[ถฤงd&โ฿eิัำ๘>i P‰Q1ฅ0๙ิhอ0/ฉ|  ˜:Vะ>ญ8k็ุจษอ€:ถฌฃ ะ๚ภ<ŒUœท!)ฆฦาYOฎ M $ฅะึb~ไG~์ณึjBฯW=้K)%ฒ73‰1’‚d๋1 แBเiนO)™iีJช๘ิฯ%j-c.lเ๓อb๋�ญ๚ปBfม58geดL๗ฐ8@Roฺ^œ@kQ�๏๕Pบ๊ซ‰อf�lŽดA ๗งUOะ๋ฎ”’ˆ#h�#ป‰Eุ์)…Tฆค$ฃFๆdc ๘ถ#t 1t6ท์์ฑ{๕ พ็i�ะGx๊ป>ลc๛ ืž�^๖�๙aถy?ญ�ใxžX.=w–œ�khE่4M�ณ์ณŽrจ้‚ว•Žัธ$ก(ส-ถG{ “gg2boซ`<)Iพโ�์Œ�G‡�ผ7ใ[฿บษ๓฿zo~ํMž�๊›ผ๖อืy�‹ฏs็ีcV‡วtwnๆ็ฤ 0Jใส‰ˆณdl&•ฅJ1ex_ำ6 BWกuภZฯู+ฯ๓๙๐?ำิ‰�เ๗ฐ�่B—ะv$"(=k^�mท๚ฬ‰z•S๕sทšศ‹ง+~�฿~‰-ี๒เ๛Ÿฤe9ั+ฦๅ€V+ฐจ;๎ฌ๏bMฦdPขaี€๋“พีrNS“ด็dพย๋ถก๒นส8[ึ„\ัล–ฑ‘ะ!๐ษ๏ุgwgDi.ใฌ%ฦ ร!Uˆ๋๑ˆ–$™ฟฝฎU›ีธMh=[ร‹จ4 Q‰-hฏV%ซZ‚๋HLK2ฮ(ัิQCฦำ1ลhˆฑ๒=ผ˜nๆ๔๏ฏjน}SU๖๋^๖@฿2๊ื๙} ู…$’่๗๗�๔๛ง@Lpz�๐›/ฝษี�;Rh˜”‘%‡อ-’—พQ‹ผฤ™œj†QฃFX5B)๗ตŽdz‹6tฏ8>(–ธฑ๊๗†a๐”“ฯฉ$PงQis:ศuPต๏ฮก๛kค๚ ุ�])๕m๑Yห๋๔3ูชoฟ�฿๔�๕พ ๚–๋vv๏MU“ณฃc๎�<ขYืธฬะ5 _�ยWภฒ<รb๐ำฟh�‡|๔ใo๏oฺ›dB’๛ ŠR�็์็ื้y*ศูl“ึฃผq2kษ\1๒/พศอถawง@่ฑฮt .cŒH(eฐสศ�Tฃr ฤฉF%Cคข\ฒDฤ0D)%�๒*bt‰QIส”B้kNํ๔Tป�๚ท*อื๗ท๘ฯ� [ค60+>๘๔ƒ”Œฆ��ปy›๖Ož�น/q๗๘•iy`o‹'?๐,ฃญ)น)H ดฺ@ๆš@`  Œ๊)'OŽ@ฤวŠชkป1JyRสจSƒEj„ีมœถง,ผ"๚LX…5ƒlภ@[FV(K๋อJ‘&%J๋h’gัyฦJŠฯ:Fn.+ฒ’6ึค น[UฌฝŒงF8šซƒU๔\จปง[ร‚.FVu๙ห�้๚ูมฐ1 บI1’Œ0•–3มำ๗ำŒฬjkŠ1ษลา’uHดึบาZขYVทั๋Eช ำณษ้“‚๛sโU฿ฎ0”Tห›ปJุ—›.SLฝ๙ยfส๚7FpŒ�gj๚^)N~WฃาF�๒��O�K/QH@dา„AIฯKฅ�อf๋ซ๚ฌฺ{ŽIส*ส2c8r๑‘k<๐ิ“<๖๓ไว>อฃ� —ž๙8ๅ๎ešVแu‰ฏ‹ณ%ณณ†“3O[E|๋้‚bYญQฆร” ็`พR{ฯแ๙Š{๓%7x้อ[|ใ…—๙สWžใ[฿|™o��+|ํทžใ๘…7ธ๛�MVo�c}ผไ�ๆ]BQxYศฦบ6ฯ่–Kž�…_็+��—ูz๘a>๒็�ใฝ}RT˜|_Fmzขกห Lถ�ดQ๐Šžp„ฆ—Žตผp๛ˆ_�ี฿e๛โ6{๏~“l—yตฤ7ฅEœคbเผบCenูฮ,A4IำHQu‹๓9ซชฆ๎„ˆฒj0 ศนณdƒ‹!ฉDGƒญ=฿๗�งx๐ยฃกnฯQXB\K฿1b ด~ษ !ฒ ้šD%ถข1cฑ˜ฑ7~MNJKHฅ(-สx`ๅภำน์1-เ@‰F?)๕Noโ๑ž ฏ�๚ ด9๐ำFQv“T ฿„6ฟทฉส฿›~ณŸืu‹U[Qužd4็ณ9Ÿๅ5๖/g\šNฐL4`+šlHiv(ังRบc/ฟ†ีCBฌPชƒX “าŠ“ุGjั)๏|ขP;์Ow๐พ&„sRrmAๅคิ๛ัำ+—ก๚5“€~ฦ]๕-‰ฺฒ%๛ฯ%?›ฯป๙๛ฆญคฯ…AN?สE๊‰oJ‰ฦA_”�G8’�ฟ{ท๏Q%X,kŠม๕rลb6gต\sๅแk FCฃAŸไIRกเ~7�yืn} @„อy&7์ฏตœฟJษnRJ*๙เE—] ฒ๏…PgฌกiZt?๗๕�ทxmตเฺ… ‹fMSี ฮษ๓…าลฅ”fง ‰šH$ืS:u„ัฃ†u„Q…ฌyๅล$FK5้Hษ าฦ„i-,‡Aฺฅ‚ก๓k:?'FึŽ—��o๐าWพŽ๗%u5็๒�SŽธyึ๒ีฏฝฦ/�๒๏๐อืnQu ฮ8ฒฝW.ํ๑�O|ถ(Œ๊จยฃ5-‘\Y๙Ÿำ4–6ดtพมhG@aR แ(3Cา‘a– ืฦ&†n@กด9Uj็;Œ\ฦ*v8ฤ๖น ‘EWQ*M“"็]Cf,ำฬฒˆP T๐4ฑใฌ Jำ†–Y�P˜ ‰๔ธ1%;ึrกศ8๗Sฅyuฝd้๛Eมภ9`�๚๖ื>;ๆt^๔^ญ•uร_ำ}f˜๚ะ๔ P!p4›�๚ู์ุริq6‚๛=„bฌน�ุิWฬา…ฉฃŒ—ละF„^ฌ•ืศ^6W๐"6ฑ‘Œ‘y๔ <.ีtฟธ๛”Hยjื#;—ด5๒๚ �X96Bช–�}๔โ6r†&A6‚ J๕0––ฟ๏ฏญ„0ด้็{Šาƒ��SxไOผ๏�ผ็cŸไ�—Ÿz†้ๅkธษ"uีฑ^f'Kห@])VซŽz�rพh™-,�%ษ‚ห-1(ด+๐^ำR0ํ0ส H™–ŠfUuœœีญ7Žๆผv๓oผxoพ|‹ฏ~ํUพ๔ฅ|ๅหo๒�ืo๑ต฿“ืŸ{““7`ั๐ยo|™—พ๘O๏ว๘Ž?๙,ึ ˆAc๒]”-ล5ษlนhกo 9tฝk™ 4$!เฤเ1ึrwฑๆ๑7ศGC~฿‡ะ]ไฮ๊ŒYฝ„0b�ญฉ�t*Xท+๖ห‚�LHึฐ•d.ขฐdFaMม๙๙‚ษภa\AE™aH”N‹(‰๊hBหย†I๓=๏ฝสฅ {"VฃZBl j J^* j‰ฑ g,สT$='แษ๔Ht�šํ๑eฌสHชC๋-Pคœ””%ฒณา๏๕ 7มป_›Šุ๋}#ษJาง�๑HvคาBV„เ�@ตฝแ”lิูrˆj-}Uฃ mืแ{Fz—]่ฐึ2[ี|�ตืนrัเrKแ ”_ณ_\กCำขุ19š‹ฦฤŒฺŸR‡CIดSIืyi7˜ห„จ(๋1แ2]Wqa๛ฺ๔ะฆ-D 9“$ฉ๑}เ๖ฒ�ฎQดฝ6ท–`๛mPz ฿�‘รแ~เ�\—ุ› ํบB+Eต\ฑš/™QKq„ทก๕žๅM’"f๏โรษ€ํ�)ƒ๑ัtยxkB^n$SๅLธŽ•๊฿วฆฏ.Iล�๛๚s(mn๏็วๅQo๗๘S’sIžV>SŒBBAHฟbt๓ี’�d|๑๕ท˜rV•FใใŒQฑล™‚า ๕šJึ)…œฑสซ]PV9Pข“aJ�4nlC{ธ”HzML}ฯซฒeฒค[ฌึ8=@™Œๅํืx�kฯฒ’|o—›�๐ย๑šร{3ฮN๑x๒|ยัrฟd<ฐปห๛?๑วpนฅ๕kŒN“3 3ึASš‚šsŒษqฎฤวš.yšษtNืh3 M+บภ๊D๒Nฤล’&zƒง#ชD2E ๘เY„š่!๘ˆN0๋Zพก4Ž.6ฃV็D`หก!š‚ƒแฃ"๗š9mฎCf5.i ํจบ†ใล’eSฑŽ‘+ฃ-RRŒ54�CJ˜�ั�lž�๛Loฅeี‹ ฬv^zรZKๅ›Mๅ”ฤ7\k…๗฿?iB›B”Iฉ๏�๔ใaqKเ–q39PTŸ,hฅpึ๖ณ‡Cw7I‚B*็์}ิp๓^ฦ—ไA�ฃผฆํวาดุ���)�รŸ๗ฯIุ|ถ�ญ๚`�G๕ ^#ืFi๏Dแพ(7FภฝะทไตฺŒ�b!๏O6ฅ๊UๆดQ Gลhศมƒืx๘™๗๑ฤ‡?ฮป>๘ž๚่งy์ฝd<œ2ฐ;9ภ†œี2:จ[G U›X๛ภˆFถ{4าฯTฦ #%Wฒ&g8œRๆcฒ\�“›๓ชaีด,�šฃ“3ฎ฿:โลW๏๐�K‡ผ๘โ฿๘๚[�|๋.๚๎๗๒พ๘Nบฆ%x9S่ˆ~! r*ข�PT฿0 lฯDไ�เœp”ๆžo๘ๅ฿๚2ฑmy�๏G้Žeฌุํqiบรฝ๊Ÿ`o2eๆ=:”8WาฤŠeตdUIbTท‘หY-–ฤดeฑ\SญVฤบaฝชนป˜3ฮ4M8ฯู๎:~๐แโ�žU˜ ัฌqV“›}œแYเฬPชd„ะ’ญa@Œ ฟฑ3|muo+IŒ๔.[ภกPขฃT“ฉ™\ค๒ํLฑ“ึu_)ชิ๗ฑ7 ฟ_A๒ฟ&๎นไงฏพ{๎GDส)l”๗ห๙œชช†าKียG0Jแดโ๓ฏฝสป’‹์%).i�Ž{ชAำฐk=ฦ‰ผŠP‡rป‡ี#”*1&Šdz*kx•B]#u"ฬฒ7~…4้ฅฆt๖๖m๗�S|ลฌงญ=]ีะU-็'G,ฯฮH>Jิสš$ฉพJ$oตื๋5ม 2ปŽำ{งฌ—+ึซŠณำ9ส:&[ฃŽŽ๗1 ะdๅ›9ŠัM’เkญร:GŠ^*กอก"Yว�ฏK‚๔�L๔อ|๘�"๘ฑwู๋่�xZgฐ๛ว๔ˆABˆxnƒ้‹ึ{Œqึ๒ลื^g™)oแ•f sปr•จฅูcฏฬH*‘ว–D<1)1.ั–˜*ฌ่ะ*รช^)ฑb– PzMR-–ญžƒิแ๎'จIไข้ฤ/พGDหlฤ/�ฺฏ๑+�๎›œ8i5'อW่:โใมhฬt๙่39w–KNฒ!O๘ใ”.Šสข+สณT‰ก0rŽ�j”ณ•—8ญY๘ŠA6%&O;ฦfŠั]Pุค๐Iฺตซn)f?&ฒ&แด&)MKภ๊œฬไขโI ๒-e–ก’ข "Sไฆเฐjูษse„}7BงŽUWSแ๐น�ส0๗ญ5w๋Šา:NB$w”% ฿ก€ฃีšuJ˜๛๑Ÿ๘l– $cฌม่ >ฆŸ๗N)‰�ๆ&#์Ed<ฅฏŒ้ี~zI?g Wูฬo*Y™ืZ‚$Hฅ9+ชjHลnŒ�^Qไ=H2!x๔Aม†Xีg~j“H๘žฉj4F bฐA6ะบ๎[ฉG Tฃฃeใษ๕˜ชํz•ฃพ !‚rŸฮi๒ฌ? “dษ$iDึIk!!0™�่๗ ฦฆกTฏี”;[l_พศ�ฃ๑่ณๅ‰๏๚|๘ใ<�์'x่�๏ๅ๒�E.\&ฌZh5ํ:QU‰๙ผฅํ:โ๐๖!wnฑ\,Akถถทdz#๖ยZ"อฝ“3~๋ตWุžยฮhศY{ย…|‡ยmQ็%Z36GLณภ6 ํน�fไvฤ์ฤˆ๎ybIL"ขYโา„ี"Qี .๎’&!�JERชˆQX๛ฤ\‘D)ฺฤ์dN"ฑZT(ฅศ‡#0šjูptxฎm)สRY’“J’) 7“ัFำฌkPšb4  o˜๎Nู=ฉั”*๕ฮ`}เTJIeฎ6D^™WJ@๚ ฝนํํz�}Aจ๔๐ๆ�€��(น�rฮH€“sKๆำqน��=ท"ฝ}พ๕$฿ชjH!1, ˆ‰o^ฟฮ›ซsพ<แจ>ๅแƒmึํ’&*ถ†%^,N๑ษ’ XDA/P๗>ํำžI.คgฅZeDU“้-1ต!๕bEฅฤH —jŠ่So€โ๘น๚๙�ืAk+žฺูก8ฏ้š‚ƒ฿อ๛>๔>>๓ฝโS7—ถ,yา,–็.ฯ—ฎ๑ษO�ร\ัฤ5ใ|‚ณ†BYฆz@“ฮ;ฅ‰!R๙ฅ;v*–ดษ‹มV์„ุ“�|lะ:Rััธ4�ฦ)(Lฮภ iB ถ๓‚Qž1+ึ>bฐ4ส31๋ ฉฃ‡ะˆภ‹OฌšฃKษMŽ7‘.บ<ฐ–ฑVผถZ1.‡\*RP+ล*vณ‚‰‹ๅ๓W�๊�ํณ๗ษj�แ ๚j�๕ถกr8Eฉ`ต˜/ ็moล&Urๆฌ๔ฅS๊Yฒๆ>„ผ!ทAOˆ๋๛ี๔ฤฦh่!๕${Kศqศ‚ฅฯ.7Uk"๕#ฝ”j�ผ!Hฦ*ฬๆ~$PJฃA6๒f๛๔๐™ˆ.H0•๗%‰‚๊�zsM๚?%0ห†าZ6—้ว7Œ้ฏ�ฆะ๗โๅฺ๕Dk œ=AU! vJx|จ$๏E๕ P๒แ‚ธ$…�สฯฒQIฑทหมใ๓ภ?ย#๙O|ไ“<�์'x็G?ษฯ|ˆฏ=ฮ…ฝ‹์]z„ฌ˜V ๋uCj๐A2?ฺ$TŠฅษ3C #ญ๏สQŽฦ˜ฬาีปฃŒ‡.Œๅ9�ฃ฿ษ`ซ$๎cฦๅ[ธb"ฌj3’๑>%Tุณ๔บ�โศฆH2.‘ภ‡ฃ-_ฝ๑*?๕‹ฟ Yฦ๔jNn๖๐ฉ!หkผ6fLR†&ชๆtยGวผn๑MCต๐ดuห๎ึuํ้:� Afž{“‘T7ัc•ฆ้Zๆ�ณo พ๗™†ใ)mทDงฒ_CŠ.4 ; ;ลชŒ.อจป%:9R๊๐ฉBฉ MNต2lทpฮ๖ซmˆRญะzิฏฑุ ๅศAฮ�~ksิ๘ฆขญmำาิ-J)บถe5_1?;g4฿‡^—‹%wo�@%ธw็j]1žna3w_๔ศ‡„ห่,c�โ>;{�Lถฦจ๚C?!ศ}Jp๛ไ”฿~๕ .^r MงkHiภZ7D=gชvฤ"Kผr”z‚Žš&�E%AŒwท”@ล„ึ…ภ๖ๅโ๖%ภ๖-…ถฟVขจ๔จGoึ(๑]รz�’’กpน&Eลึ�yแ(C†ใร๑฿Vณy/า’zพ@L“hcศCฒฒ$หsฒผภธพŠ–,ป/„้ฟฉ˜egพธษ"๏ผ:›ำL.คX���'?Jษำ�]๕๗๖gŒ;n`๛�๛็‚$oC์o๓€ไน6g˜fตZฃตโ|นโKฏฟม+ี ปcE3Zำฎ—Jv'%ฮ้Lว$1ฐ†B QHsz€!#‘ะœฉฺš•๗‚๎GS-ัหm‘•œ฿=k!ญPœT‹Jฟ๙น_ไ�๙w�[bช๘ฮํ)ลชใ๑งŸโ฿��C�ƒ?๗�|็ณ๏ๆƒ!t ‹ำ3ฎฟur:ไxvฤี'฿ฯG>๖I”าDตย(Cๅ;๐žณๆ„•ค/'ัt“‹zbา4ิาถ%าา0v�`ช�7ว+อ8หเX๑y/”่œฬฺ6Fš˜ๆšคจSยจD#]—HกๅN5รFMHŠ๓T1t9ซ$ฑ๖ หXI$ฏuJœฃybผEฆw›š�ftJS๔๋ํผฉ1?�#?๖ู2wค$%ฉ'P€0yuฟP=qFฝ�; ๙ปฺHจ๖๓� ดˆO, ๛็�๔=‘เz๋B้ตำg— !Hๅฬ&หฟz๘Y๒�>7ย,•พž�fM‘oฬ ๚๊�h žRแสˆ˜<ฆฐ}าB฿'�๔”Rุ2Š ชMKQ4โfˆณ=Mง›พb๏บฝญcฟ๛QHม ŒผOIไ`๕›๋ัk “ชw13J *Šญ [—/qแฑGy๐=๏ๆฑ<ห๛$O}์“ผ๗SŸแ๛4O~๔S<๒�ณํIฎ>๔8รผdตฌ่ XXฦD<สe ฦRy7Mรฅ>�๑GมฯiV �žง)Gฦ”h7ผ_ฝลจ๑]�๗ฅW–’xLำ�'jSHฐ2›€nฑYษํี‚_๙ํoฐž/\ฝฦึxิ �“]&๙EœฒิกC;รฌ]ฑํQ–c†Yฮษ:แ"@ƒ3ชF˜ฒI+TLt$ชฎรj๙ฎQB€{'ว\qŽ?๒ม'ุูใƒย๊‘ฯ’"‘i๑n๗œau‰ึ–@Oวrศ™‹่4ฟล๖d๏mุ y P)๋:฿W�ˆ7ปาh G7๏rr๏œู์„เA›œ|‘•›•hgฑYฦrถ$/rY[ˆ๛THŠผ”น๐ํ�=Aี”$โฦฒBzฒE‘3ศœ•€�‹1 “Y๖@ฝ้บภืฏ฿@ <๛ำ]F.งkŽุ_แ<p`wQqE๊ฮh“E›1ำl‚็”@S;ฌบ„ธยaๅืแg‡ฏpi›Iู๗ท%QF=y-‰ษTKh[ึ‹–|ธE9,ฐ6แ›šฎ…r8ธ1k-โSƒQISตฬNfรB�่“"ฅTฏS฿'N›•zt6q๕ํ€(YvP7;mช้�M`��~_หsษตnึ๋ๅ’zนfต่P2'�@ๆศ9Jฏมญ”œ๔ zR/๕ล_<%ฑ[ํ“<ึฯๆ|๕ญ[ผูฮyๆษwpมLXTg์mOุb—ฝlH™•XญGฆ-‘%Ž .ํศ๗@ƒย RAคCฅ ูY-Iue$iำาZ‚Nฦ=๛–‘Vฎ?K ัฐ๗�บษ฿�› [ดผgoJแs>�ฑ'๙ฃ๔Œ‹‚ฃ78|ํU๎ผ๚ w฿|“{๒"ง๓7n�แฃ฿๗๏qๅ๑w‘+Gา‘ฬJ+ดอ๐ฑe�ฌY„U�wX;ฦ(‡3Š5žฑ‘ฝ”€’ ดJ“๋PิMEใM—Xถ็˜จ *_•"s ‰UษตลXA”K“S0ฺ0ฬ|หีA‰WŽU�ฐm m๔ิพC…ั–ำ”ปœmํฤk�JmXด #ฅXzฯY ›12s_ขT+JWแ&๐mข~ฝ๖}`๙‡FF"ฆฺD `}J๊E(ดUำรท›=at_ู๖0ํ็ดA้๗+ไ�€ฑFq1mงTหฐaธKเึZz�๗}�{฿ฎ��฿%มฒ'ั)$กˆ!๖ษs”ฒ้ีkqPำJ๚฿ด!‘กGคึผ-KK’ /Y dN,Aฺศ^—k฿๗๐]ฏlงkต้๕#เูF0'%!ษ:-จˆuš|Pฐwๅ—y„‡฿��๕แ๓Ž|œw}�S<๕ม๑๎‚k๏�N๖.?ฤฮฮ>รญ}. ยŠ{‹ภี %฿๓‘k์์[^y๓.]�๒แ?๔n[ปhIฑุ`ฒIW˜|*‡VŠุl(}`J ฏ!แัสศ<ธฒ("ซ&๒น_�๊*pๅ}๏b2,^‘ขล™Fมฌžc ฌZลุฬWktดธ2ฃํ–๘UฤนŒฺw๘UลรcŠ"ร‡ศาwX“š†ส€ณลฃ~ะ�ฤ‡žfozItธCczFฮ%H „m›ค*KIฃqdvDR]ศก’‹5™8พล•จQฅRI฿๛โ6สCา�|๓ีzมxงdบณฯd{—b -้‹ึšเ;ฒ"ว:Iดั วcฒ�’น๔m๗ƒO‚>Q—u–zVˆAจžLšz บjฺ กใwŸ™ร… 9UZ`cีšŽ„KฅV”6ฃNปGกkŒอญƒh$E ฮŒ)ฒ-œ�bตjYœu\ุ๗ะSˆŽ\— wข&t‰ใร{ไๅ„แh ฉ%…1XbHไEึว0ฉ๘APฒมh›ีr ŠกผŽา2ฒ'\ƒอฦO=q๎�Nญด9#6ื€ฃ่Œ“6Yแ›šุ ผ–๑+๓ T›ฃ๋ZŽฉkOตฌุนฐOž๗dท๛มปํ�ฑ’<ศ๓ษู,็FขŸ ่X้5ห่ฎ6ลFfฺ)ณŒฏ฿ฝC๋ว#švอม๖˜ณฆมiลž‘iหš[&รจ•;iDๆDช~ไq@  จF‹ฒŸ"ขแ"…๏e‚uฏแ/่„VV‚Y๔$V�๖/�ฟ๗๋?ร;/ocซœษม๏ธv฿๛ญฏ๓าsฏPU E™bรฮม„ —ฆœW‰�ฯ� �<อw�ฉŸแ`H›ฤ ท0Žu๐XWูฏk"c;”ธก"…rไช”J6u๘Pกเ4ิaIฤaญฌ%แ4ฮจ )šธขPwฏZFn‹รฺ{ๆ]ภGฯศ€QVX๑:‰๋†&ึไI1HทW3&ฦpฺึไ:รQดZ˜ํZCำฤˆใี ›9’5”ฦa~๘‡~๔ณya๛อ"คY๘ัค?ฺW‚ฝVฒs)M๏ซฌ˜^๘E=„# ้��ฃ6‚ลF�ญgr&PHขzFป,Zyฉ‘ข๛g์ลa|ุ่๗ฌ~๒œฝฑIุ6ม9ฅ$ `iำU=ด%{วwภ๙}฿๏@IŒ๔ฏ7ืC+yl์ขb์ล_z?eฬฯ“’pฌ5Xซ๏เt฿–ุˆั]HQ>ƒ,๚†๎ซ cdŒD๖x_๑๗]0T_ษ๗ํ แ*ศ}ม{ข๏]+�…—g์]พฤๅ‡โกwผ‹w|็ณผ๗Ÿโ#฿๓Gy๒;ฟ‹ม๔2o~ํท9ุjน๖ภหีŒฃใกKผ�cO2ฝx m…งดรๆป+ีŽถ9&ก•!ฅ Uwjค"^ศmI๕�”ั�บwฬฟ๚•฿กา–kฯ<ฬ๖p‹6z|hI>ฒn็ฬซuไ;,›–Aถล<.A7}ลVขฝงAQี-ก๕๋ถCg[eN�E‚ŒCLœฆk"์ฝOฒป?A%‹QŸVX5 FMใ็ฤะ@JtiMRฃ๔๓BŠ4qMB= wึธ~Žน3”๛”๎วศ ”–u'gg<๐๐5ฦใ—M๚COK๏Pa]#ู]๒‘ฌฬึู,ะอมฟษฒA*ต?ะี๗ฅ,A‚@่Iฉ>FBŒ"m ฅ!พ๘ส›๘ฒแ‘ƒ E๎ˆมณฌ็ไyAฯัJ1rSZ}ซ;\\bโMผƒeŠ&#)ศฒ)™ถจd๙�s๕gAทžื}'๖{ฆwุำ7๙8H‘”DR’mjฒlท�vbูNนำ.'๎ุว๎$ถSฉNUXฉTuUช:น้๎Š�Iนฏlวvห’ฌฉ‰-‰)q'œspฆo�ำ;๚Q�ร�่o๒ž๋ฌ.ถX—ฉ�“5ีคมฺD ฺ-J็` ร1ฺ6zเ{โ8‚ชภ4Bh3NrกSRเ่ พ/ Wเ ะ๘Œk+j]ƒŽ(ๅ1Us–�3 ๓x•cO=•�ฒ˜&lชษyŠฒ†z>“)ั8šสQี5๓Iร"�0ะิŽบjฑ92๘‘ใ๓ตh5•FฉDRBฒ™ฬ„”"่D4D%‘ƒF[WSนšฦMpf!Œk’„หจLf‰R‡ฅwช๋ห) „`•Rโเ๐gkRช‰พ'<๙ๆ@aฐ็์eฺฺ!5”ษ์]ฟRLbx”ๅ{ {ีrุ-๐ช–๋X~o$์วˆซaL™3‘Zcœ"S|fขxำSฯ๖ศTฤQjส8’ฦŽ~xB6ฌ๚๘PL้โcrŽTชม๊ŸึdPบงฒ5ฮ:Œ>’ุษคHi[ฮแ/คJiฺvQŠทๆ>BP›ฮ็{็)ศZฤ\<9แ๔มCฺiZ1v๋2]—*™$ฮSiMŽ#1 œ<9ฅ�๔๔]‡‡ฒ๗ฤใ์ัŽณฝXr�เ๋ฅฐ๑sV์rt๋:๓�=9Škš�’ว“kPษm2\ฟu;i8=ฯ๛Gw๏ฑYฎ ๔-๚นฮฅม•ืถ๛U ๕โo‘“p:ฦqผ< �่ ;ƒ+m่BไัzE^u\฿_เ�€ฎ7cๆLZร&-ฅษคT๒’”< ทฉ˜กuคึ ฌš ป?Mศษศ๏UUFาไd „ะ&ฃmDฃลG!ฎ้� }ฟแโ์„ปฏ�c/Cs{Aํถ|่#ฯ๓3?๛qžz๖i&ณ–-รูCพ๚‡_ๆŸ�๓?ไS_y•›Opๅฺ�pม0t aไl{สช๏!dฦดeRอ0.blMฃ+ซc,๓zNSŽ&uต`jduฑ(jŠuX’IŒฑcFถ!cฆฒ5™ศฤ:P หqลบ฿๒๖fลสdBฒŒพg฿‰สฆฉœษ\m[&ํœXk๖›){“9•ญ1JำZ‡ณŠ๋UZณQpาtJฃ›šZkz8]ฏัถีดMY \๖a!ส่|ภ{้คคFส—"E ็O๐AไdqWDdmต��!ฟIQ๓^ศ9ปวŠEบF’)[+ฉNZ‹ ฬn_—2ยT-๐7ˆ)~Vลึ „eฌHไ(ฐท|‘5ึYœ3e๗'YH๒๚ฤxFŠ๐]…ล5ˆ\ ขฐ?๘สjQƒ”ƒS“QEใžR$ล€สBR‚ฦ]v�G‚฿1฿ๅ’%€ฐ๐uัคKB’ผฆ?ฝ5šบฟwIลyG>GYณ๏8ช ,ฦส^ิYKUYyOฌมjE B�๖[2#{{ ›�าHcฬ(WSนLฮไuู–”2a�2nWฤ0ขL-Sc๊0ฆAi9,ตญะn‚q Yiql‹ฒfา๗,U-ƒง6-Gํฦxึ’:dฏ™ฒ๊V\i-O๚%-บA g-}ˆT lฮdcัY‡ˆ–๋Ž'O๑�žมgCŽำ{z?มฦTdฑj"+ฉฬ”‰ป!.…JMซ#็ว3wS>w.vจส@ž]~_snŠ)‰E9m‹้‚~VIsฃดษูศช3zR์dšSู‹&r.ล]้ยŒ.ฉND9J•0„w“\"ฯล๑  �ณผX2x‰5๕1แ‹ับ๋X๗=ใฺ๓hีa๕„ณ๎Z;F�๋5ฎพBfฮ*Ÿ2ค{lโ ‚>#OˆYEะ่eลฃึdF*WctMJH–|ˆh�”†EŠ่wอwOฮdชลX'cl9 ”์ึkฮžsqq†i:ŽฎOฑF!+�ยรPc฿๓เอ๛ฌฮฮxp๗O๎?แ่๚5Gๅ=•๔ฝ9อXG;›’ฝซGข๗><ภ5 ฺ1m* ป�H[.BแฮdึVิำ)9'๖๖๗xๆ๙;,Žฑอ„ํfเแฝ๛<นŸี๙a์‹KŸœu;h�฿ dž‹SซึR๔๛~$ฃ™NZ 2™ทMBำข9ljฎถ ด™ข9“x2ฎ่ณ!ฅ–>๔„$){6_gˆK†ด"หฉF&sGฬ#]ผO0ฦ5*7x?2๚‘1žซŠดG�ŒณŽi}“ฆšยˆี•รล)7—฿s@ีDพ๑ƒW๙ๆ฿ๅ7ฟ๐�ป๙ห�ื�ํฟๆฟ๚วฟฬ�ท๐ธp�๎qpใะ‰Q%*ซŠŒหc•8—5ฆม้†™™ขrเผ2ฬฌฆVซ+ๆv‹b)fา8ไ<โC"'Eศ‰.tค�ฑง[jซPฦ0ฉZšถa05ษ9๖ง๖šŠถnั–ซีŒ…ัฬญ›sNิฦาซฤฌi0X•๗ุค˜(หรํŠZ+ซšฝ้”“–ง�–อะณ #›1�ว๔>ูถ•ภ�ปErู๕ไขNQ&7ฤe‚ห;&8…ˆ…ย—$ฝƒ ฎ”ภมนภฟƒ ฮkv„ิkฤu๗&*ฯIหจฉ์่”X~!ษ�Nเฃ]ฎ|ษๅ๑.�ทƒง฿ฅซŒ!˜^ ๑ๆงฌศาฌจฬ_v๑ฉศโŒV%˜โ๛ ^� [ึ 1‰NA!v๛H],gw…–๒žษm’HM(ฃv.MPy^๒:e'ฯn�_žว๎๏t.ŸUฺM}r”•ฤฎqแ’ ฃˆIบอะญ๘ึo�Kึ๋ž}ๆ#็ž๙ผๅใ?�~ชษœกฟxSž“‚œฃ๋0uืฉ+‰My‰JZ&่4@–�_N็ไไะf็พฆ0‘Ž"ืฅ�ช๒ลK]“SOฎ;#ค$ฅzVkฮNฮ‰ร@G\e‰�๓๘ํ‡ฌW[NOWr-ฃะฮR9น1๏]?pถํุฤภw฿xศO๐ิญD[%†จX4eุjE๋ๆTz‹6-{“�ฬtMฃ๗าˆกฦh1๕iฬ1„ิaจ๑กแ๘โ˜งฏLQฦ ™O+”šHถ}๔ไ์้ถ[”ถTnGG1x�เฉ[aฌ�ซ๓%>ึL๗jGำ๙U”ชุ,ฯฉ�WนRฦ:�ะำm=ำ=1_ifSqœt eŠ}32™Oลตn.›้ผ+ิj'w�E‰ส™น›โw'ส;ฒœ9gฌ5LฆSฆ๓ ึ:IY,2ภฑ๋‡ก\/})!“f\x>‚๘ูส2 #(A) “2�(~็�฿ba 9œ€�ณๆJsภ&œัซ-G๎ˆ\^Q+!p…1’สู&ฃRท“>ja๔[5Aซ†คฤM^›วะ’v๏นšแฬผ(€*าxมซ_๚=�z๓„Xอ9ฎน— _ypฮo�แื๘ิง?หg๗K|�•ปฌ7[YkฆŠn6#ิ-ฟ๘๓?หโ่)j=A๋๋ฐeชฺฦ2ๆเsVม3xฯž5๘”๐ฑGซ†1๔๔Œ1P๋š˜>E|1*กฌล๊ F'„๖ •ฑh]37Ž>E|งต†™k1Xm๐ฦcคQ™MPœวžืโtb฿Nศสp<ญ*งYฑฬ[šฌHYำวภ“a า†>%jใ2h็dซJัชฅช$c;E‰Di!;^ž๑ฅ,{]ฃ Uํฐฮ‚“—]MศIH`’Gภฅ˜—8อ]�aสจ${v๏E�K ูe Š‚œ“Hึ”Xjง]�(ะ‘ั๒œGคNSuI์ส.]. นx‰N!…ุ•)^+iไ1ๅy์šU`|ซทฦPW†ช0ๅP*dภ\’าสcK!ปsU^ƒ์$enฆrซ%Pe๔’๛›B!ei"v †sWโ_w+‡]v{๐แ]แ4Rุ•VPt๐ึyŸ”4bG๋X๕i๋˜อZ๖ง์ท‰ฃ�D=›c�ฃฎช1lจšC๊๙mLต‡q‡%เ &…‘8 #5†œq\กTยุJฆJFb:`3@ท:aุ^`lรถ ,ƒ7DีำฺfYฑ “g(;กnZ๊IC2‰ั,๖๗PuM�48chlลlมtฺb”ม‡6ร@ฟํใ“&Ÿ้�kj4‘cV-คYTะว'๘0†จถ$�‘REHาสไค1๖*ส4(€ฆ์ั=ฺIDซ8ธ#ฑป?+)ฬJK€‡v%1.ฃดฃ๏r(ำaน@๏ฝ�&w_๛!'ฯฐUอัุ๋v‚ฉ$QJiฒŽf6ใูŸฅjŒณดmƒq;›dถ†้คแฺ�ท๖๗ั!ฑท_3ซ็ฌ† G“ซด๙€&&ั1๑P็ &Mqc#›pNUฮm*ฦ^ณ้Gข7„Yo/ุvgXํ0f†ั5ฦ&a๊ซ$“ก›๎KCฮ›bธด-ำ,ฒO๖ีษgOX/ืL๖Ž8ธzH3็f’ฐWˆจพ/1ฎ;�…R์_]p๕๖u๖ๆิ“VHpาชƒŸ~ŒmŠ‹žp=@2ิsูmK1ถ๏ dๅ‹1ะฏึ๔ซ 6็gœผ�Go�e์ž฿)3vˆBฮ‰fาppดว�มœลม‚f:รT-�X]ฌป a์฿5้หต.+อ{๐ฅ]7Rfฝ�ขcb“a�๖”!%ถŒ ใ’i=ง1†“๔oVL�=0Š@@WNvว:‚๊E๛MนFQaน‚eQ,sฦ$œฎฑชF)GŠ2ˆค์ษมเ�ภ8๖ไิณYพอชjy+W|s ฏ~ถ"ด3’.eQเฺYqr�ํตภะฆหTNฬLœ็ทคaุIุไ๙eœ•นzKฒฒŸฑธŒษ๛”3„ˆEoฎXgฑ•ล:yŽ1D’—8Žข0Enฆ )ฯ‹ฑZ\ฝŒ<ŸTฆ้“^k1ˆQไห@)…qาŒ‰IL1฿)๑ฏ‚LHแR\!ิฟ{k0:'*7aโWorxeŸ๙Td{Cท.�‚€mpํ R่Iใ?œษ็6t„qK ~\“r,DF['Ÿ–Jิอm‹๙‚ƒkืจaสf0L›†Yณ‡ึ™y�`ิ”ฺ9ฺฺาโํร@žฌ,สึ(cจตย’h”ศท]ฯ~+‘ก๗tซ%๗O้†Žฑ�2uŽฝล!�กฑบลๅ}”้@oฉ๕ข TGใ#อ‡1JX๒ฆยจŠวRŒYัzŠ6ตศ™hPช•„ท8BสŒฃฌฏศr=ํg์ข^“'ลXฆ…ลฌ%—uฮd้ม7๏<อ|Ÿฆญ™๏-˜ฬZดu๋ธq๋&{sด†ฆญQZˆ^ฉ4ึ�t!c๏9฿n™ด -Š‹๕˜žg'<ุ>ภgDxุ|"„SVใ›X]1ซŽhM‹Fl2]H:€Ž“0•h�E+์s%ฏy7 *eะf~้ข(เP#’ผ 9๖Œใ†พ_3�o8ธ~@�8r�ศ‘…„–sbFlqรBา (ฑ ึ ƒ=็Xืฤัฌm้fฎ+๖๔>iH„ น๎ŽhL…อs*=ฅ23j=ม™ฃ51Zbฬ๘ ๑^�|์H)2ค3ขZa˜ŠLOh๑#pNฮ†ภšัฏHฑ็๎๋_แฟ๙'�„฿๚๚ซดํศ฿j๘ฤญ=>z๛*|๊ฯ฿zž๋ทˆฃแ๛oœแ‡ศ< ธSq8ๆิถcฯษpJ›Gีc ke…k160w ตต๔*ขซžY-็˜ละ่)‘D[;šฆ‰(nกัร8t๔>rf9r „34ฺ#u\m๔ภ…\ฯE๒< [œัtY$ว3U1UŠอ26ใ((Œ3ฌ้•ย้Š™kHUล w&3*ญุ„ก๐d@‡่๛ฎ้๚ne๊._][$J1J2‘ุฃ–ž3&’/ve:WปiVพํ$dbัO๏Š`,$-bคpXchjG�T%‘L ˆ.6†—๗+W&)ŠนŒ˜ขศt]W–ส‰ิB:J$h‘ว•ย'ltˆIไฉ์ฤ].พ”9ˆ๏าฑหฤ+็หฎ)ุ�ส%U'ลLฅ๑ศ;ฝุย๊๗+Ud2Zโb�8SเขuฑอewoM‰`-lvฃั;`(B™ไwo—ฑ๏ฌ*gpถึแชฆุtZHƒ�า‘B,›สp0ซPGื1อ>๛mƒษ‹๑•†!ัธŠๅfƒณ &ฦั=}w‚๗†!าญฮู~Œœ^ฌศ�ณ๖"๛ž„bo1CY)„:d*UฦT’๏*}ญžวไฌฑjAฦc™ก&Bไp`”!FM“[r–2Y‘RGฮEE!Aa–งะCOฮF6ห$1lQูํธ*zq™N•ึ@…6†qPบBY Žฎqt๕J™ฬฤ# gi s๖uJฑH31ฦฒ ’๏์ะ ๘ัs|ฑๆํำ žฌV๔> tๆโ,`�Œงฺ}šษ@Ÿ3wSฯy�Pวฦ8โl‹ตVM1น%fH9ใˆตL_Lzฆี!UำาH N๖๙น์นSyฟา Sฏ‰ไTษZŠL$Eฑโ�ป’นrฃลUJฟRwY@%ีL3t‚`Lๆ3)�ฅ ๊ƒมไป˜cYI๚ฑใ#›ำ'D?พ /+ภrf…ตŽ2ธชๆ๊ํ๋�~๎ืŸนลต›W™ฬฤ^G> นฟ, 8ž\ฦพ๎ธ:) ัu�ข๋B—มA(i€ฺ๊กญa2ihชŠฃ�}๊้„JXญ™O8r \สŒ>@ศTnN•'ิyสrxภเทฤ�ำsญ„=žQฤโฌๆY๒€OKA Mลฝ Uj†าg[*}ฃ,Z;švฦƒ๛ฏ๑_�—�7~๏ฟฦ‡๖f|�่:๛๕ฆZฺCNว ษํs�ึužฟsฤ'>�4ํ?xŽฟ|›ส^c�5\}แ},n์ำ๙ {๕\šcจ› ำzBe˜†ึึิ*1๚‘>&B:ฃอญx6เ.๗M–๋ฎ๐™ํ8ื�๋�fูoAQ™e$$๊l์ฉTฦjCญ*:Pูpญžฌโ๖|�๓ C๐ฒน‰&fถพง๗ม{ฮ๛R`Œ็ฆ,ช†>&rˆฬ3 �@.ูฦ68ญ˜:‡vu‹ญ1ˆ0 ฅ$dชœ"มK8บ)า'WІL}b�Rษ๑.๛m QLk%šถF’y‡9.ึ†R@ษ๏ฒ�+๐ผฐcๅ"“์RJ๘X’ยbผ”้wฬŠชvT•+EU:ี\ wJฒ’ฟ—ข%;๐ŒตยยMQX๏) มฮ{A �]ฐmฑA5Faบภf)ษ4๎ ส@ฆh†eRฺ5Aปษ_…ส;(_ },5ฅยภ/ฯ‘ไฯ(ด–ย/0น8ivไBูa#ซnt‰P�๗ุ๚ล๔AะiŠR‘ะษŠC&ืจ*z๏ูฎO้‡ภz„ํจIรฃ"ีt!’ฑ… ถ‡›?aƒlV)\ฎ|ฯ๒ˆฒ5ษ๏[C๒‘่{2‰ถ6ุ๕,รvหฒ?็ฌ� ฒรวฤv๐lzC่=M1uข[wt}ขvtไษล–mืบณณ ฺชขMyๅh[วตƒ=Žุ›ฬh&Sz฿ชqyม่O‰นƒ4Cลฉ์nฃ'ง‰D๋&CRQ=(คณฤ˜z๚ะณZ{V›‹าผ๖eBŽไ�•ั‰มŠ›`�„œ`์"}?r๚ไ �r๒’ ล7: )!_ษฏPZๆwศ—ม–i, ูr7ฅ�{[!{fฅฤศศh|Jt>Sbพ˜ใ๊–ฬ›†qำcš–%฿xโๆ„�ฐgŸแฐ=dฏนฦlrŸNีx?โร-c๊้โ96]G%ล˜.@ตhihkัร็มo ‘๒z59oqV/Šui+ถๆZcช KVSษ_Wาฬ@-๋ง็Lf๒พebyผฉƒ$ำ”ผวฒ3�นๅv1†ปฏฝลืพ๘Mาู่^œฦฑ๐PvŸ*ŸU*ยฃ DAวS@‹_0aA๛rJคุœŸฑY.้ื[†mฯ๑ร'ฑS#๊ญeฒ6ถe@iฌsค”๑~D!็uŽ ฃ4c๏!%R๒ิFกฦŽ๛3–�ฦ•G็=ฮทgX4U๊8ฃs �ฎ Uหzุฒ๊#ใ8bfL›สŠ''ๆฦก] *r^มถAพ'ฦhึ~ *ลญบ•์๔คY๘เอ‹srฮ์›ŠฦY–มฃ7ว_&n_‡แ œพ Z\ำ`๋)ฦถTต๘V็lH!ผษๅ@ะE^ถ“Gๅ(22๏qวf"gศ)ใ*‘j๑.ฟr…�ฌค‹I.y \๊ญ5T•ไ$๛QCฦม—=น'๚w � —ะฐ�ล{ฒูeม‰qˆาs•*ป฿๒๓—ฒฑœ$ัLน]ฮ่ไ.ฐณ“ ชฐ�s™๘หก9)ป$5?สe-๏ฅG/A‚ศลr�k ึ�๛vทไr�Tnคธ<ฌs‰k5v'!“ซ_& 1อ1ฆKz[Fดค๕dส๔เ:uํ@Wิอ๋G‡s๊้Jทุz&d5UI๘†žsH}yO“ตLEฮF>‹(ฯ+ฅLG™,ดbึnฬgTณCฌณฌs วก<<ฟ FET-*kBู๊FO 0™_ลบฃๅฯaษ^ฤฆmร�jฦฎ'f่6kฒัbGF?:แไั ห“%ฤB*ล"ว ๗“ล}MŠ—พ’ฌp‡ชไw`�2j%+&g„ทQื5ำI ฮI:x|`6mYžlY+วิyฮก=€aMJžs=rž{.ธ ‹-ห๑u6�‰Lหู3„ตฤLฺsœ$sBc'Lชฝ’%-qลJ/Djวz"zb[]^ห๏ �I^o–„=ุ5/๒oJIณ9;ฦุศม•yฑi-S~�Jมฦำ(>JณZž๒ู฿�#พ๔น?แหฟ๗๛tหS^�ฦ7YoŽn]ใ๑ใcพ}ฬษรให†Hฎ%uู4ษP-o�qU”4ฺ:ดฺVา„\œญQJaฅj*šv๒\Ÿ“4dยุ3l7,OO้–ซหAŠœๅผ+ูC?0Œ^<-€อถ#gลrณๆ"'ึซ-�๕ˆUše๗ชฦs1sAdข๖™๋[‚โๅšHA•|– ฐชFSฃฐี`ุป\๋ล4J*โศ—„ฒ&Rnไื>๕o๘า~“Ÿบ}ฤK๕ณฤ฿�ฅ๗๑ื�ฃฟย ๏}‰ฝ้„ƒฃf‹ZET๖ ็[฿๋ธ๛ไ ฿|ฮt๙ษ|•ŒšใใCืฑ๊ถtaพL\๓H0Šบ ์ต"็|�_pา0„ cศy@}้HI1ค?*ฺh˜ุ “บf๊ZtY๕•aXyksย�ี)�ะณ ‘VYฎ! ]Q9อํ้Guอ~;ว[‡ืŠYeฐฺbฆgc@ฃyฒ�ฒ๎%'�+U4โpd •6˜�๙/^๙ไƒ?๙๑ๆWG฿�mVwฟภ๚๑w๐�ทใ1ัฒwหฝLแฮกuฆ"+#ฬkไะ!า”฿d"รmE7ฎ‹q ล?=๘€/…[ๆ๖�.Hถุ–บี†œeŠ5bŽ1;ฦฅน<:–ว,๑ข%0Fเvน่ฮนœƒปbฉuูx^k‰8ฅ์Sฬ ไ5๎`yส�ศc –Rยeฏถ+่;๖๘ฎ(ลUŒmDš—’ j๗Fไว ฤ;e@‘™ฒ"`ว>Eเ{ฝSPV ฅ€ผฆ2ผ]N�rปJ…ย๐�?๘ �ๅซ�พy๏3็ว์ีผ๘ก๗a�ฅRV„�ฅ[”iˆ�r๖ุ้3h-aสNษq ๙ 9 รbู ห.�บšO๑{|็ยs๋™+ธZั(‹ี }"Žšฆžะ๙Uี“5+†คะ&/ l$ำ7๋ ซ‹%OะฺPื–๛ฯป<�&0Qšฟ๙็?ศแ|Fฅ๐œ`ญ+ŽR€NคQ6ษ˜ˆส‰&dUฑ�3ั3๖fทล๙kื*aฎ’#ซณ›๕€ฑ–ลแ‚ฝร)1d๖8บvH;› i้๔gA๋,ๅ( ฒ^n%�q"ฆป๏ˆžH[šฝขึะ"วR…›ฑ�l%ปzำs�ไ˜ษl‚‘m7า žีุั1+๙�w๙ฺ๙wžŸqซี ฆ"งใ {ตๅ J„œจจูwcง *j3กrSB� ตฅ6ซtัย/ท็4‡8็ \-Že"ทKๅ�s๘a`ุ๔ิัGฌฉ ก๑กผ‘๕ู’๓ใ% ฯมีฝ2ตZ”ฅภ๋ จF�ุTi�I([ณwxˆ้๐ฦ�ขžอy๙ร/ณ8˜กmลี›ื„cัดฅY�]Tน<ฏRภหเเ‡ L๙]#ฆ ‡D=ข”ฦ#ํดลีสฦ~๏‰Jไ†›ีŠํj-ƒP฿™‹ณ‹ƒ=ุ คฃ &Yiy\่Gฑ้mŠƒืงพ๛m๊mโๅ๗~ˆ.?ฆM™ึSฮ6'TีU๖›๖ŒF็N์N‰ ้˜J-้ฌ„�Xbๅˆ๔(%๛๖1^๒@คC็นdƒซ•|/ตวูฬล้ �๘ฟ๚b๚็›+t�s~�ฃO1[๒๚ื{jWัV-๗C kGJ0คฤ*๖Jฮฃaษฬต„”ุ„Ž™i9jงlsD1p2FjYธ"&g–9•ข2†€bฆ-Nมรอ†™2˜�๋?๚[Ÿ35)Œrฑ„”๗ถฑร็‘ๅ๊!šฐ?ป-{ูvŸ()$ึ็Œcd๏pสdV_ฒ๐ปm(HŽF๋švา’Uข�tดs9ฌๅ{ขXฏ6heiงP�Xึ^‘ปฏฟ%฿ร'ไŒLtZฑ�lน๗ฦ=NNNธ8[ั’ม๎g๑มำ{ฯฌmูŒ#1ฦเ๙ๆw~ภ�*๑๔ญ)^'š:1u5ซ*3w‡ฎaๆฎŠ฿นŠLํญjj3“์hdFBZQ›C ฤ–>฿cน‰ฬ�„I#ฏ€์ˆฑƒด†œHiภ5�อศล๑uc0nŽRกž4๒{"พœฏy๔๐”vZs๕ๆuQไbWJ.ฅน�Yษ�ieค้W™ู|มีk‡�ธu…ฝฃCžz๚†(3ฌฅiดึิuS๖�ปโญJWฝ๛;%a$ฦะo7ธส•&9“| 'pตA‘ุ\ฌpM‹ญ*Y'%†\ๅศ1ฐูtญY๎ัด UUแ‡ชฉล€Gib.vฮZแŒฌG๒Ž|์%�อ�ี?ๆภT$GE7zD…ƒ�ฐ ›๛UKVžmŒ(Šซ#๛ฎeˆขbฬŠ…ฉh�ซ3ส<†‰ัุ่„ฤึ&บfbomฯฑูฑG4‰A‰๏ฤฦwนใภ�›-๓บยูฬ�ํˆSŠFp&–)ห��ฮŸ๙ไต[ฯp๕ๆ n>๛"WŸ~ž๋w�รมีC๖\ฝยคษ่0โW'๘“๏ฑบ๗Ž_�,๗พ�)๎~๛ำ<�๖ฏr๖ฺop๚รฯะ|†7‰��ไดคช*ู+�ดtภ1 ไ›K๖ทRR0)…N๖ฐ"๛HIบี]!L)฿๕s1ส.9ๅฤ0ฌ(ŽLปŸ‘8ัXŠิๅใe‰ yIพิ•kตƒž฿น�ฎ [73Œขo”��๎K+วณ*“–4-r(‰JUu0F’ัvšอbCy/t™โๅหฮตด…—ข8ฮQ8ปว�51 „7PโNA�yJ๒:ต–;:ˆใXไSŠุชๆ;๔{ ็or็๙g้Vdgร‡>๖>š๙สXช๖{lต@�]ํIฃ“ƒศศ"(ไ}P*“b/i@ฆ•ตIŒฤ”q ~�+ฏ๒๙ืqt�&‹ชfp5F9ูAำjษC`M�ŠDร๗๔ใศู๑1�ฎ„ล9ชถล๛Hิšสj๖f iKู๙ดEYCืmฉ’ๆ๚๑ำด็จดภhCˆ[4ฦ,dผร��5ฝ๒ญ+H9;ฦAผŒ‘�Œ†T๑ ฿ฌืTuซคฉˆ^ชต)1ฐšบฉH1สฺ,H„งถBฐSEvjดน”ษycxt|†ต†๕ุ๓ฏพ๓ v€๗ฝ๗*M}ย�อ)ปษคูฐอ็xkจ์{fBm๗่ใw g&BH3ƒม๊J2�ีุคฒลh‹V‚„’!ฏะ4จ,HŸำ3พ๚™ฦ๗พ๖\œะNZฮ—‘ณอ’Ÿ๚ฉ๗๐g�์Oฐ๋y’฿เšWทT,ษ็ฏ/ž๐ํื�อW๎rใ๙;�…�ู_'*อ˜ fƒึIิ4 ฌฮPb~sB่ท๔ก#ฆC…ถšส\Zบดb•;4ŽƒjNRKVูฑpsฆฦฑ ฒฒ@ฮ  ง2๗ปฅศไะ MMฃkฮฦ-NAซ ซม๓xณaฯTt~รq™ูฦ‰ฝฌส †ฌ ๛ฎข#“ดขq0ๆLศ–VŒBp�ท–!Dฬ฿�[�dUCŽ#ม'2 ฃํโ��`�๚mฎ฿ไฺ{>ย•g฿วีg�หํ—~‚๋ฯพ‡ฃ๋Wนv๓๓ล‚0,Y=~““7ฟฦลฝฯs๒ƒฯr๖ฺgธ�๕_แแw�-ซGฤ๚๘า๐�ฑ8ํศˆ“ฆศmJb—ZV Sd‡�น›โ๛o?b ƒร}r’๏q= ฌใ๚อk,๖๗˜/fB -P2,๖็Lฆโ%{Sล"ฮ9b–p“1GNŽ0ฤ@โ๕ณว˜ƒ)๋“ 8 œฬถŒ�H †dCสิ:ำฺฉูGซs’^cUรศ9}8‡ฌQ‘๔ŠEs“J_eต=ง55๓I] ๓ิTˆz†ึ“� ดด“Zœฏ|G฿y6ซsะฺ4ืžบฦlฑภนยlO\;PฆcYa€Aiy๏QMAˆz”š\^?ปBผำหฯ็ห�6;๖xน>ฅrํšiน˜Šaณลีcฤ+#งD๐žชฉะบโ�์ ญอd dผ๗ค,ฦBJ)ุ)nช 2๘QฬmšI#ค๓rส1SึŠJ$ฝ!&ข‚สUผฝ>ๅ7฿๚!uศผ��†Zw“Ek1ชใภ\แ™๙ู]0K{จ\จูฃR-‘žJ5ฅg‘5GŠŠฬ@R็(4/N*s๑๑HkB่Qกโหฟ๛ซ�๛�[คฑโ๔bIkF~�ฝGผ�ๅTK;ฟŽm๗ๅE๙%รใ๏q�›฿ไ๓฿8ๅwฟตโ‡'น˜V�๚ศ๓,๖& ^šฝึM%ขXgZงIZs i]Ÿบหณ3+K:t:ฤiCไVOiด%ค‘!UB`รBV๔y %MEƒ‰žMฐนโIF#]–(QLๆฉfFFฑ #•efFg)เ“'1fฦžญh ๘จ่ฃไTZผืญศgฐfส๑0ะjฦ@๔(%้ๆ?��ฟ๘ษู�ำt๋ดpฬ>Yi”™�Šะ=ฦบ=ŒQค์ฉ๊Fู๊Œ๙ต๗ฐ�yฎ�บรณ๘)nฟ๐ืžz[/�${‡7hชYq�๐๛œ�๛:วฏ�o๛7x�๊oq�ƒฯฐ~๘U�๚{ŒฏฃYใj๑66V‚0Pญลฏ\))ผbฮฎPIั–� ซไvชBŒ‘o๗.ถT•[!ะฑ)แ$†ผิKนhcH*X]+ฑ5U”‚]ฆ๘\ ๆ�/ั—‹ฉ\ุi๗็"ูก4(>ศกzู,”Bo wˆ่า์ŠใฺN๖&ฯmƒหaฎอV—๛ูฝ/๒$ๅ๑C๗RผืK๓T ~geZลท�๐s\��{ณ=6ง�๋ ถi๙่O•;l{ X๎ฉ๖_&วฟฝGทบบฦึ‡(=%ลe@�นodส^ฌXc@W5o�ยฏ~๓M๖ฏฒp5[„–ซ%ถฉฺกŒพc žŠ”+‘"ฮ&็่ืkLŒ�ฅฃ๏ฉฎฑง!Ž8ะz ส�๑Ÿ�ำI$x+6ึ1u$:IK็4Nุ๒†”“ฐrMฆ๋=&Fฎ-^ถ๒ษซ )ถ๋Uฝ฿9๐Aƒฦฝ2šบ™†‘aปdุ๔ฤงงgไ”%}Lม�แณ้ŒชฉZ7็*ฺษŠ$OพฅY,ซ ฅภaช—o›mO฿๕8-]็=ฝA3‹ธ‰รฮ+fณ ผใซ฿_๒ ?ฦO7ิ๋ U5แ<ฌ‹Lตแ€๋(•‰ิ๖k*{ฤ˜iอmq่ฒ–นนt<>“š‹#‘fคศr�Žกสข—ฯU]1฿[0฿k˜ํWฬ๗ฎะNgLf ญœ”ี�ห‹ีกเ์ะ5 ณศ์�ฬไ๑ TDeUีv/…wฐป้๎ฯๅŠพผ0ูญฯDำฝ“˜)ด8แี5ฺH”fn�Qท ฺ†n ๏z{ณห๔ฐกจ�…ฌ์RJX็Pe๖่ั “้๋์ๅ๊Debrฎu‚ภฅHSีDตๅ‹๓dyฦGž;B77จCOSฎั0z Q ฃ$ฏ[c่ฦ•ฤๆŒส ™RMค#p‚ำ*}Xยzฒ ฉJ2Š ฿<๙ฮ็x๘ฺ1๋๕Hซื\ฝqื4˜ะฦ%c/๋~uฬ“7พล|แ~๙๒…ฌy‰›NดF฿ผรฝ๗็� ุšึอฑฺะ:iJ•ถ(SแtMาฃ#ญ™`๕>›ธ"ข™จC4็ใ],‡๔1ัลž™^`eL‚D-SวฬLั8็,ใ†3� q$ซศตv†Eณ๖žuˆ่œXุŠใ~KF�ณw•ฺfฮ=4ส1ีp6ฌIัฐ #3ใุ๘€�I‡oงDpแ=ล๑ะse:cV7˜��฿๙‹Ÿฌ+]�s7h+{ไ—(cKPIFป=r ]์Rญ!Œฎ9ย ญฑฎม0Uล๔๐๛ืŸแฺำ๏็ึ๓เ้๗}Œ�ฯฟฬอ็>B3ŸฃTd๓เ๋<๘๎gy๐ํฯr��Oฑพ๗Y�๚ฺ/ณผ๗yยลท๑›ืฤฑJืุชfบู%สbBุตๅ๛+ฌw‘—ํพศ9ส„งุ.qhS…lถ+ฝข ศ=”๐\.ฮk\••ลยZ‹2;Kิt�ฮ�_๏เ๔bAธ3Rฉฆœฆ๏–฿ํชญใBŒ+��Ž�*ฏต่โภ ‰.–†@)E rฦสAฒ›เ฿ฝš๗ค่KKฟ{ฮฉ„ซcyๅ Ÿๅฏ‘+ำ–ไGถƒก?�‰—pตยT‡่ๆqผ@ืWไ๙ihOcC้ฆx|Wh+แ$%แy”ธมฒ;ฬ�„ฏพz—๛อทูๆ๓Z=Eลš๓‹sŽ—gิฺฑ้ึ„HadLcZZ“$PYBLจ10m+NฯNูœ3œฏจ&-ํมœ4J�6าุ“"t�šฟ๑S?ม�~…5ำe๗ไจIษเำ™@จษฒxE็b๋™•\์ฺดŸ฿ว3nฝX$J†œบํดกi›ฒ7rะh‹VŠnปขR๑0O0[9bL•่IWี’-�‘ฒ’ษฐp$สt(฿าจ…ฑฦษ ^g๔žอ่ !ั๕Yiฮ.Ž jษ๕›ืธ2kธ=›๓แWจBโ{[Ž^ใ[ฎ๎�`ปh๋Šg�+8ืPวL ?ฎqzCzcF*sงงX)w(�3Lจนบ›ฮษbณSVBึ}Bฉ่ r•PJJ9KบŠข�Vถํพ’ฆพ8ฆ‘ ์ ฤฮ%�พห$— vwม”ทR๒๗ๅฒ-�n‘~ํž_น๏$์๔G}Š"ฝmง-JAŠ’=0�›•ƒ ถ‰…ต–พนชm…„k-ฤ„s–บฎŸHb(ฃญ…”Iล‘rปํytvฮ�lฦษๆm~๛ีoฒYรsื,3wˆษ†ฉk๑ใ W5œ‡'L�’�๚•ปีึM0nƒำ•+”N]Iย R?๒…rผ8P‰[RศTํ„ณืฟฦ7�๘Opn‚ฺ฿ใํภฯถผu2๒ๅ๏๓ๅ๏>เ[฿�>�ลฏ๒ูฯ?�ๆ Cไึ†�ท๖จ๖x|๗˜๙3๏็ฯ}โ๐yภช)•ฎ7๚ชbŒ CLดฦ8a;*}@ว9๓๊:!wt้ ฃ[|h9า˜–‰;d’gI่�01-!)ๆM…V†eœŒฦUS—,ฅๅ๕ฃ,d D|๑Iจ'U;ฃชkชบงฐ SีฅbB๓Ž๋aY1‘ๅ5]OทZqv|F3ศสฆฌ†ŒR—ศ‘2Šuุ๖#ฺ’–Cbณ}ฬS7Žˆq$ฤ@?๖จ๘g฿�>_›ฌyชัซ†‹ำห•!. _��]š™bฟ†ๅู|ด8—ัๆœ>�Eซ“๚ Cd u‡ฤ|NL‘š๗ฎY“ำ(’3 (‰•bX•@+฿UeKAญ฿u›X`rU‚_JัV+9ฃr>Ž*,wถๅBs—Mี๎=�ฝFๅ1M_ฏ์Œห)^foHbฤ"†0 ”fุ™&zL‰ฑhฆYซt}?ฐwxTš_Aํl]ฃตล=~๔ดำ �jล“่{/ฒ�ยฏQJ ๓œdฐH)�Hฬฒ1pJ๑ฦ๙#~๏๑}ิึ๐๔ฃ ืุั2›-๐lั.ฑ_9๖ฬ3ขฒ  HLอm&๚ฬHสAF•( B์ั5แIษใ๓•ญ8�e๗แ�ฏ~้+|ๅตท๙A—y}นๅbuŽ๊ถ๔c`ปฝ ็l๛%m3ก๋ึny๙ฝผpฝฅาžlเแ“5“็Ÿโ#๙ ZY๖�„<1z.�cŒžฒ ]ŒWัฺžm:วู}„ ถe=fฆnBm 1Yฮc ๋Gิ๚ F/่า†ม๗คจ‰ bTฌ}!ฑษejฦœQ9P%ล��~ YฌทญญJำ๊šฉฉ9๗fฆๆแฐLยิ$W๋†!Šี`Ÿ3ทง RJ,ว‘V[�Zo0%!0 จดfูo1๏oฝ�“ำูŒฌ4Yี„QบS‘bHg†sภ ซก{9ข] f&�ใข‰ด(�rโ…�ซึ†”ผุNjG ’Gnฉ' ๊บfq๔,ำฃ�\๎}<๓�๑�๛?ฦอg_ๆฦ๗q๋™๗0ฉร๒>ร๙ทy๔๊๏๑ๆื•'฿�M.๎~†‡฿�5}็ำฌ~‰ํษw �]4[ศุ`lMสeŒ•@ˆ”„ง‹Dl7ก๎˜ขป‘]#ฒ3]Hsน์žS™ถตื6นX‹พ3 @–คด… บ๓@ง˜ถh#D%E!ฏษƒ–‚.BŒป็ต3Ž‘fBynr๏ึๅ่ัbฅš’<']ุ๒”Y4คV่๊2}—Ÿฝ—aN+ยธๆ�ี?ๅ์ํNAi?\aววๆy2‰œ5ร๒Mษ๙VšุŸb๊Cโธฤิใ ˜PHƒืษ{k„‘Ÿฒ 8J9lตวw๓้๏�ใเๆfำ+\œŸฒึLฆSœญษc$่ฅยh้ืghc Iฃซ›3acฦ•BŒ๗ไษ„ิจœุฆฬุ_puั’ฝxFืฦ๐‹Ÿ๘(ฯ^ŸขL Rs‰Hฬžฤˆาญ+œ^Yค<1oQL‰4"a๒ฐัq4^พูฃตร#JK�ฌ กJhฒMำะL*ฌmสบe$…@๔a�ฃœภไป๖ธ”Tiฅ9}tLทํูlzž<>แ๔lษlาาNZ(dPnฦ0Ž8'HEUW"3R†ณ“7ฑz`ooF฿ฏั*ใŒใอG๙รWŸ`ฝbถiุŸ`ๆWนy๕&?๑ิำ�ษ�ปŠฏ๎‘�9๓๊*ฆ:มวŽส^g๊žกีืยฅ -ฦญูl—ค~ฮตร(2ฺDดb”*ษm๏�(ลYหค}™ฎู‚Z%Eษa —$6ฑO�ฝ๙b0”@MPJŒ6ไ฿$˜Hš+Jัฆ�[.S†r)์๏*๎ลw^Rฯ ›ํฅ5u3‘�๗่9y๐˜ลแพ4๚ฅ๙ฒ:ใ‡๓“s\eKฦ9t�žำวง<บ�€aP5์Pี• eช๏OFQU–q /7๎อ๐ฃg�Tๆ{'K๎.W|๔ฮmž�ฟF—Œ* ๒ศhทน�์ืTJ$ปšŠัoฉีีขฃIjคR…๙ํ๑œสสABฺ๒HฦA3+Œฎจjว๏�หส�?�ฏ๕š[O๏๓็฿w›=๛<๙เ๘๐๛?ภ๛�๛"๏฿Kผ��—y๖™งน~ํ๏{๖:s[‘6็ด6๐hUs: ฤ|Ÿ�ษใฐˆั–MัฆgศKฒส5eแ"ุฤ5.๏’ฆง“ุ่3Fร&g*๋h˜ฐ 6]Zัลศฤฮˆ 0Šญ˜T ฮ4ดNa•ๆิ๗ŒZsะฬY4-•ั,์ดม็ฬิTh'D7•�ไ้”ยวˆำ‰+vย2พฟพ`฿6ฬŒๅแvCึโช7$ฬ fG๏;”s˜��฿๙หŸœ/fไx._:(‡๏ใ7Jf๓–แโุ๖ ฺูๅh xัVjK—@ยwK9๘—ฒ ํD*Wษv `Hดถฤฐ)ัˆาHŽŠ€kู๊๕�Gทž็ฮ‹/๓ฬ‹ๅู๗}Œงž}/ทž}‰๋O}€้lบj๐หท8~�๗y๋kŸโอฏ�o๗ทy๘๊งy๐ญ_็โม——ฏณ9��ลซ“@ี„$SณLDฉ”.า3™~ฝOsฅtัZ–@’25 ฑMŠ๑ๅ>๚]ผb‡า•]s‘ฮi-†ชLฮฎ8�์ i*žๆ๏Lวาeง”‘ี๕nj†|.“˜-ฬ๒”sœœญ๑๒noI˜“๛–�/ LŠAุฅ�1_�๔ฟฆป8็ฦี#ขทผ�เœfฺ๒๑Ÿ�q”ฒฟ’Œto ๋}ชูณถ(;'… ด�ƒไฑีขฌ]&"ฺฮศq+ฝา�๑w_ใŸฝ๒ˆ�ร2UฆŽa์๘~ภN5$่Gลลู)›ฎ๋0ฆ&{Oุtค,Ž}!% 7˜ฬ Gfำ)umฉ]Eใ“ส0ฦศฆศ~แc/๑�๕#T™ŠužโsWฆื)–†J ญงDต{—�ึRลห็$๗ฏ”&ซ]‘�M่ศ็Ssสg4v|ื3l6ฌ—K�เม{s”28็H)ัmชฆก™ถXg%ำL]WTmหd1็ฺํ์๏ํ‹ฑ๏[+8ญ…?“sf ‘สZšฺqฑฺ  ˜*๐ๆYวw๓ง฿�"ฺR5‘‰�ว˜Dใ&Œ*p`ฆ(=*‘2:kHฃฤำฟ1Wหiศ*PY‡ัFอQ Bฺโิ\ zrM]MxๅKŸๆ�“สR�ต?ร/ฝ�i5‚k็๒นL…1ดฉะv‚qsHk”žฃM hr\UYQ่2แBฯ่๛*ญ๘“7W�๊+˜/๖ภo‰~C(๋ˆเืเษสึ†8LีFศฃgV;บYoถ8ซiด%ฦภแ�]WŒฃ'๖ฝฦไฑฟ qSถc`;Œผ�}7x฿ญ}3H‚ฑ%�\k&กะฤ0โใ•ฦดมsNา-64่ะp0Šฬ(ฦ$9ƒŠœ_0_,๙-ฑชL…b*"*ชืฐ้6“Y+Pziฑคธ+r’m4M#แ$jง’ศbผ^ญูl:ึซ-g็+ึ›žก๗<>ฝ ๋Fฐ–ร+‡ไ่iš‘็žพM�Lh๊Šูdส๖|ลเ'ผ๗…็ธฑท ฑš�fสยิTส`”ๅ›๗๐๚ๆ /Œ้1*ะ๛3œฉุซoโำไฬฦ?dŒ'h]‘้Iกbป\A�Jƒ‘“D]:็†‘ณๅ†ฝูค …เำˆฯ#๒เ!Ÿ๔˜Ÿ|ๆg/h� j-Vบ•ซ1อ’™i™›CฌัD.„ฆ3ฮXขบภ้F^l6ํˆ9@ชŠ}IV๒ืนB)Mทzฤ�็�๑็ปw฿ไO฿^pหGฮNฯใฃ?�|๘O�4w��2ท๏�โเฦMฎ�พมห๙ Oฟ๘ณโ๊Œ๏�๐Mš[-Uxฐ๙ุŸ๛%žฝ~อธ•ฮŒ9“•cฏš ดรง›,C:gฬkบXAฺ0bะz†6 ๏{5ICฃ,CJDฝยฉฮN่B iฯิดโฆ-*E6~ค 3•ตฌวฑ!IBr๋G.บ-1Vc –ใศิ5Tnิ|๔tHโ^Šำกใจny}ณ"ก9˜L9Ir6๘”8t๓�๎/}ฒช˜)ุ…‚�9ixˆึ–œ:\sƒD2cฟมิGฤ0R$ฦ สVำbซ9l@7ลเb Žkb่Iฉ$™ (K๐็2ลW{J๏ฆพ@ส#ไmงคค‰~‹"Qะ:‘ ล?ใหฯ$[2™z2gvpƒร�๏แ๚ ?ฦ๕๗�)nฟ๘ใ<๕พ็้—�4ท_๘QŽž�ตi‰OVฌพ�ˆทฟ๔%��ƒฯ๐ฦ็?ล>๓ฌ��:ห‡_gs๖Š5ฺ‰สsb๙˜๓(D?Sฃต#.ๅ:—ะzkA]H]๏�้ฌ„žศฐฟซูešีภ;�๐N๓@1“แ]ๆ8ยภ—�ศZ@ŠพR’ภ&ปy)ิฦyoืญKlฌฤ‰ ไ+g„u~uส๏��ตQ\;<ไษฃ=:ใ๐ฦ>?๖3๏%๋••ภโฆB้e’<4œแททว(ปGN’)Œ’ฉ3วu)6๒€qSดชy�dเSฏ�ฃฯจใZธ1B•าดณ=๚!‘ฝXLFีผfŠศ>|$G๋ฌhฮ}ภ็HEฆj*ฆ“)cื‘A'Gท8]-Q~๒ร๏ๅฮ๕ซิสbญ\๊JŒAg43*mPz ฐยง‘˜=='ิๆ€ฦฑ\>d่ืžfณชษyE]Uฒ๏‘fR vyˆ๏Š—��ฎˆmV[‰ษlQพ ™”รๅ็Ÿฒ�$Q[pฉtศผ๖�ทHI6ดำ ำ๙”ล�vR3™ถ\ฝzศีk�บq…ฆญ๐>โT`์ฯวLื ๘aเํG^x�}ฬ'rp็โน๏ว‘3ตณ|๏๑ ฏ\<ๆล[ะะฃโซ&’‹�D™ฎS‹'s$DหิFฯvํนs๓J —่ป)Wฉ}Jy”ZีGu…เฆส J๘ศ MP.$3JกF&HQ=ศ9"Sถ„(U•�›‚–‚�๎sQน�g.ŸัฎธJฎย;ฟT๙฿ฎฦสฟY+๖สฦ(qWำๅ9ษ\ข^R๛Kรภ;Mตฌ>dฺNลf:Œ๋‹ๅ%มั‘บ.Š%ถฉ๋^ˆ{ห5ฎRœŒKพp๗mVห �๛Œโจ�งVsB Tึ�šฺ]gช[]dTฆรช)3# sฃrV51๕„$�‚\ˆƒF7Tzิ@ศ[�๘สg๙็�โWฉฃใšฉจรห/=อ /<ว�โ€ถฉู?<โ่๊>Gืฎrด฿2ฉ5�ู#~๐สท9Yญy๊)Kณื๐�๏�๔3��_�ฬ&J�MMสCN k7รšDฅ,cิฦ‘ญ&๋šJรจ<ญพ*…S%บ$ภ33g<‘@ึ‰18๊์ุค36[๚(*Ž๕ฐๆt�2ฉZ๊ชfRV‘‡“9W๊†>ม“a`T!’vT5Nk6ฎU-O?ŒbŒ=žภ6&BV�znตS–ŒR์U Cฮ<๎ดV\L1�๙฿๙ลOVบG)อุŸฦ Rธ ็ ฎ>ฤMฎ‘�า€ถ๔ซGb^o๗ฉ'Œ+Œ[ไ[ฬDr…)0dข_JW†#~�–Ztว)ฎe‡[‰ษ˜]อˆcOŒž(;ลธล˜‘n; ษB๋b๖o ะ‘�J „j *rฟ„ุƒสEขfhง๛์=�ื?๔�๘‘—น�กpํน—˜์pxๅต9็ษ+_แ๕๗ป|๏ท…{๒oy๔ญ฿โ๑+ฟห้๋�Ž�ไO�ทึoะฏ“ย)ฎฅนP5)Uไฤง )ƒตoZิmไb8๓ฌ-น์นหฮ�๊หฑœ‘|e%,๘�ํP—๓ย%#„T'ท-0ฝ’ใEฮ•"!+ ็L๐Rd…ษh†ณว|ํ7~…๕ู•หŒ}โโb‹>�s€<โทOะีm59lPv j$Ž็˜๚!^ใ)ฎฝNฮm'2meาข�ีฆ%† Fiพr๏˜O}๛1๕ิ1ฉ,ถjจ๊„ฒŽส:2S|สh‚ฆส”;,Š0fNฯ–ธบ")GŠa+ูฟxOS[Œตlถ#M๒ะ8บ�ฃ”ใ/|�ร<{ระบ•mะฺำซ˜<วง-1(Iy*ป(ะHHฐ k†�„Zื-^(‘“’ถ†’คค๕r‰sึY1ไIe๗Zน‚ฐœ?9!ฆฬโ`๑NQR”ร๙œXZtIขBtย9e๎ฝ�ˆ๋ืธz๕HRฉGๅ M-rปฺœ1’Y=Žฬฆ-•›3๘Zb<ํh9<ผJUiPsiึฃD็Zฅy๋lอ๗฿ไƒOร"_'ST ฮnSWฅม้Cฌ1Xณ‡ฦตเlตๅฉ+70:ˆ[ Aฮrญ ฃ�mผ$น%ˆฃ” cuบก�ฌ๐ฝ๙•’๏ฑD#�๊J|'”2 ๋าH๊B\บยผซ$ห>p‡y@๛฿"๕’ฟฺญA(UะดฏC้สหไ$(œœ Tฒ4—ื๎…ศุ]�๒ะu >p๚ไะผ}๏!�zK�ดิm%œ™โ>้œฃ‘๙คe6›า๛-๗ทg|๓๎#ฮึžึrE_ฅั3ฌฉ‰l๑Lžq`'TฺใYโฬ”ฉ=DๅDฬ9B๊IูใรZ"Dูb”ขถ7H ยฯโ+auร็?๕ห|ใฟส{\ู;ฤธ†‡WXญ‰BสœŸโ}ไ์๘„อ้#R $G7ธrธ8=แ;ง[�|{รไว?สฯ�ยOsฝนŠU ิŒŽ‹ึ-.Zc่ำH๘ฌษPฉซ,VM่ฝฃ2†”.ˆk:%๑ฝ1)ŒถD">e|�1d2=AซŒ24ฦ–ษ[Q!ื†$ฏ)* ญmsฦฉ„๗‰ํ8ฐะฐ๖#วฃga]ู่ฦDึŽฦี„ั)Sฃ9�lQ%ฌjํ=3Wฑฐ๓๗��ไtqm๘ํ›DฟFwu€ฉฎศ1y�ไฦ9”ีิ‹gคH‡-สX†๕}šษu”ชPฦ‘“x“G™˜u…ฉjŒถ�ช$,\ำ€mPส\�9Žฒ_Wšr@'\ฝ(œ@๚"›*Œ†ฝไR‡ b~kP9Š�_IdŠq”๘ำ(ฮKัฏศูขrฦV‰zขุ๊›๏ฟรอ—žๅึ‡?ฤณ�1ž๙ะ๛น๚�๛˜L๖™ุฝ~ฬลฝ{ ๗^ใษ+_เอ/�.ว฿๚|�ำ�๛๚o๑๖7‹ใ7ฟศษ�ฏณ9๙ฑ{H +Œสย peZ”ฉšทEทช„)ฎ -–ŒfŠŽœา—๏i2E๏€<ูใหmส฿–ด7!ว•Ÿ/�.ˆfวZUj Š6^ษcŒมฏW�ัฏ�2ฦdL dูl=บ™๐?๛"ฮ&lsXiฏ`š#๒๐”@ฺ้8\5มิค$นุJb�โ€ึ-ƒแŒๅ฿ธฯฏ}ใ ำ=‹u3R฿QW™ฌฆ fœ/ฯฉlฆ!๚Ž 3mี€j}d;๖TJตยeรm+ši‹A3lื๔]mอผฉQถแโl…สš�เM๎�ผI ซภiษ๗Vธ’iฌล…-ฒฺ–ๆฑขOkT6๔ฉใ|}ใ W/ˆTuน+ีฦแœๅโtC #1๔ุส‰4EŠ#9มษ“Sb†+ื$ ฌSv“ูŽ'!iPข:ึF!มโฝZญI>rp8฿}yค$•t<) าฌ…”Aึะึ-•3ิ•ฅm*šZdnตณ V(ปWฃoœž๓•7฿เ#ืh๕0เœ#ค-สœษิฎ1rŠh•™U๛ไ`99]๓ิ•Cด–•™ผฮนีEG,ธa์ึ�{ํ.Cทๆมฝวจ�ฃอm๗๋�‚|�m^ธzฤ๊|I?^๐โ๓-/ผ๗iฎ1��็เ้็˜๎2�›SUืดดG�N฿๘/z๎Cทxๆ/�ežฟ� ฒ๔Y†m†)>DbN๘ุิ#ฦไK“ -cJœo#c9VhUห๗S™žŠ8cY‡‘ึ58#๙เล:zฒI4ฎ%๘‘.x๊ฌˆXบะใC"fวึ,C/3IกRย™ฬi?๒ๆ๚”นำ4บๅ|„ํฏ,šฦV8ฅลG�9|?’’โd่q ดฉƒว็ˆ๙‡��ฟ๖ษ๙b฿=ภMŽฐฮ1๖วhw„ถ-i๐�ด‘/x=น*;A•ˆ�ฑ˜ู๒™ถำJก1ข�พzฅe็M‘่ •E>dmKŠพ๘๕^”&‰!~@kŒmฑv‚ฮศQvใ1สมbOฮZข$ ัKy. ‹ค!็$Q‹กรKr์1ฎ–tฌธ8ศ›U‘HIุ‚จW'or๋ๅ็ธ�แ๑๔G~„็?๚Anผ�ฎฟ๘ท^x/7๏�ๆฺอซ์M,auฮxz—��ท9๙๎ธ๗Gฟรษื~ƒป_�-๎~ๅไ๑wีƒฏฑz๒บ๓ท ญˆแT@i๐!‘0ยšWดe๔๏B4r&D1๊Prž_N็น@v๒vศไ็Tq‘�:)ษ}๎xฦH*™Bnปc็วฎ็3ฟ๖ห˜ิseŸn ฌW[o]ใ�แ'ฤdC[l{‹0‡”#�60[ถซ ั+ยธ8ฟภžz:goo^>;iึค๊๚’โ;„ฎ๐ฎ(�˜ฅฐ รศ้้ggKn�บ.ผ]�๚””ญJ‹Eจ5†ชฃhเ“DR MrใsยiML‘!‘.*ล[็|๙�=žฟบเlyWeœŒ๊˜ฝ๖*Nตฤ4 ๒ดGฃ™ุถ}วใ“Sžพvฆj%๓\- ผ]&ใœลlEU �ภ�ทŽiงsn=w‹u=กn`:Ÿ3�›‘ขf่ถป(๎e๑ษโยYP‹,ลด8ศศ[ชdˆSbตw—zง฿/DB”ภ้Y>ไ2-•๑�m ซำsฌณ,O/ุ.ืt�Ž~+†3บค: "–QF๔ฟ1ม๕งฎS7M� HT•˜ni2ณ๙๔ฒxK.ธฅF†a rŽ1xQอ้๘สร3๎๗นณฯ�~ลcตก =]AND6\ซ'˜<รๆ)uUc•ย`H๔Xฝ@aๅ๛ฌ4š ญjB๊�ห>1vhต ฆŽO๙�ฟ�~๘รว\ฉ,žiํธ}}Šษ™dฆL๖Ÿขi&ธถE'Aฮ๙ฐ=esv—ไพ}oห๗_}ศต็_โ็�ฺ฿`ศ™*’๒ŒัcpŒQณ =mฐบผaภQ�k*k๑jKdQณรซމฎE๎ฌ4šDฬฒๅ�ห~ปีŽU์˜ป)=‘Z+ฆบๅxX๓ธ;ๅJฝภจšeุฐ๕ๅ|์XฅžƒบAci๊ฤฌฎ˜TsšIลิUฌฃbTQฺEe8๋z\…ฯ™บš“aล๙(’�รษŒ1Eืช๓�๎_�d�8r\aชC\s bO๔[โฐ&3B๎ศใ?ฌP ๚ีhป(๛ฬ„R˜"ถฺรwถง?โH [bT(]�ญE#ญดล๗'ย๗+๚อ}ŒซะfAฬY,wฎฎะฺŠAA๖ำJค]![ฅไ1ถฦ:0F‘ใHฺ๙žk ป7“S/$$#ณฆพ@สฃ์ุใIฬค›ดไ8‡Yฉย‘R‰,h๖๗™฿|ž๙ญ็Y<๓>Ÿ}ž�๏–ง?๐w>๘2ฯผ๔Woํ1?8๛ˆ๕ ๖˜ำWฟฮฃฏ�พ�‡<�ฺos๚๕฿ไโ{Ÿe๓ึ๏3œฝยล“ืV๗ ›๛Œ›วeืฆEใn+ดฑXW—tธRต0ธV๊Nฺ๖ŽGLaช๏d1ล๑-œ4Oข —ี‡�`พ๐ฉ_!n—R๔sfต๊QMลO�๔ณ($ธฦ8†ี=”]0ฎ฿&Œ'(ใ„ažWคธ*rž,ปoS \ฌํ/b๔โŒๆีSฯ�๐ี{4ฦpuOกข!ไ}ถC5Ši;c;œ–k}์zะšฤ@@ใ\MŠ‘J)’‘รฮ8C�๖๘qd๐ๅ™Œ๑์ลOสR๓]็CO=Gc[ฺfคq•ฉ๑๊ญ\™พ5สDข2˜\กRา#IbN,�ซ๘ีŠgฎ�)™žs.๖”คญLUYฆ๓™Xช*ƒuยฒฎ�Šj2a:Gต”JŽw9 ูู—๏!ู];q—Sล4ศG1‰่บž[7ฏขKfฝi๔คแห๒*๑ฃ2%สํผ—ศษสZๅI-ผ ตsFTŠฆชx๛๘œ๏ผ}Ÿ—oัิžง uีะจ›ธ*ษ{ฆฉฆฅ™ุะซอภ ท๏y’AใŒๅ‹›„lFโ`า�|๊ƒ+ืฑึัNฐ�œs�์„/|๏uN7#?�ฃ๏แJ3ๅ@MyzrHŠ=ฺ(๖Zอ~5'๙Šช2(ตE#AE‘’E_�dP 9ขศฉ"ๅ”VM‰,ัJ๓ฝฏ~‹วฏฟสCหด2 Iำoถ\9˜ฑwt•z6Gป •-Mหธฤo—œ฿๛:๋‡ฏs๗aฯwษ๑zรŸ�_�]Ÿ�g5ŒXำ’s‹ฅ'‰!G;%ๅ Žส,จดไ{9aM‚ธ$ๅ ึดดถมA-b๊pสˆL๙ ำ ๋ฐ%ฦภ*l้ณc๊*Zญหฎ�ข Œ>ั‡@Gด๗ป!G๖›Š}7ร˜Lฃ`ข'จฌiTฦ!าMฃ{.|bbkึ1Q•๘ษfKM&[อ2รย6ดZัŸ๛ŠŒ๙ฯ�๊ํON&ถน‚"3ฎ’ยc”n้Woฝ$�rุขี€ญฆhใฐึแ&ื0n"_€œ%‘hบฯะ=! �2WhK ฝaไ8bLU์QGŒ› �า€ฒ3ฌฉDKlน0ไB‚ษi”B[ยธลZฑ!ฬXดmษqK๔[‘คู•=(…q{าiฦAไเ‰q”ืL Eyัgแal#ะ้(všq\วตtส—ดA‰—mะnJฝ� ๓›ฯr๔žr��/๒ฬ�(w~๔ร<๓cแ™พฬ˜/ผ—ลมMOก7=�›฿c�รWุผ๑วœฟ๚y–฿�,Oพ��ฌพ๗{<�ึx�๚ื9ป๗mVO�d}zŒ–8ๅ%'gฒฒ([ฦฒ!๎4ๅๅภ–�๖ป5ฌB’H)3Ž^๖mˆŒRšฑ๘�ฏ� �‹Sฆถยd8^n๑>๑3w0z [Lฝ‡ฑโxๅ7oใ&)™<ถž #ฟ�GIฑวMŸ…์ษ ุ๚€”‚๘ $๘�“c�๙฿'=ำ‰ฦฺ=ขr๔yคq–~์‰QฑํFฦquK—ไ\1F‹ฮ:๊บ"ๅฬp~F฿ ดตฃช,CJ‘qฝคฮ=m๐)0l๙เน๓ิ”ถนR฿ 1Sr^แฌล™ฉ 9jb›ส€c =ŠŠอx.“W๎ธ8ปวญƒQูIi๚Tแm6ฤpึP7ฎฎp•P 7);ิˆRฆฌPคŒไ !%œ1ฅyƒ$ิc๗๙v�9“๔› mำะถlhฃ8ฆยาท=�~›v6A�zร๒๔ โไษ พ๋Yž]เชšชr—ะฝาขI˜บš0~๏•Wธy}ย•ู”y3+�–C0•ฮh<!ZTnษj$Ž๐๘xษ๓ท�ƒ3 ๋3-Tั‚๋หยk]ยX€F�˜w้ธตฐดs!€Fโ.‰ๅ�ฏ�™š บ .]ูไ]–ภ’ .อJฆIQ2ฐ๛%ฟS((หฎ๙PJ3�[Bd~ฐOU‹—{;kจ๊ชด ;‚ˆhคนUJ"šหz ]T-ชุMg!จฦ0rzvยk๗๎๒๖ใ‡|�อท๘ฦkฏ๓ฅ๏�€/|๋{|ๅํท๘7฿�ฟ๕ƒทy}€{๙*~๊ }/ghgXญฉชWฆWQฑ-†QฅW4vFV‰>�รช…œlศjฤ � 7(mะ:`uCึ[R๊มzโล)๗พ๒'Dๅธแน๗ฮzB–&6 ‹ล>ำูŒึ'oั�ใ๕ื๎๒ลWฮ๘ฏ๓๊๎๑#แ/๒ั�ษ_ง๓็๔9sXท วร๗ูF65•ถLšIจิ1Œ#Š}”ฺ’ำŠUP„�เ๔”ส2‰3?ขXัล€ONไf(6Cฯภs7e•กrfH#ตiXิ-ณช&Z‡r๐8%าjฅS‰ุฮ8“๑a@%วiฟe๋ท% %ั๐ดฒฌผc8=I)ŽปŽ*รฤ5จ"‹rย‡L๓w�ๆ>นxƒœzLต6าป๖ถY ’Dฏi[“‰T“ถZ`4ฤ0 LEฯqNvlฺษ4‘bคช[”ฎ„ •’่ฝ}G๔ั{�ตE)Gย IbXƒ�ฦุE™>ข„ญtฒ�Qปˆธ-YQ็ทKrŠฤศ!ข"†N๖Oฺ�ญkt5‡ธ!ง5dEŒ[)ึ~@้FX๕สCVฒฏe งาPไpeฺ9™ข'E!๚imษสMป%cหn~(dญe$eง^า๎๏1ป~ฝ;Oฑw็6G/�แส๛^ๆ๊‹เ่ฉ�yŽ๋/พืTุชGOุพ� ็?๘2ฟ๑๛<๚ฦ๏๒ฺ็ƒo}๎Sผ๑ๅวท>�๎๗Kคี#6Os~�*าะฃsขช›หbPWuูC sY1ย�๕A�N[KX-๙ร_๛W๘ฑใ๚พ\ผ.:ž}้~๎?DBฃซ))๔’BๆZT\b๋L{ …%(3Eฉ–•ัn†VใpŠาขัŽqฤห7œ๐ห฿:วXอ•๙‚3มh๊บb=t$-ลhˆ#{“šฌ�qH๘์1ตลhอั�ง�ŽjาาTb;iญ#;G e+0šZ;†บีศว?๚#ี2›dบะใฬŒFอ๐้ฃ">3ลฦSqƒฺิY-ท�นy g*2พ ญ”ถฌ$5LทF)™LไhQh†MWVhŒ}/ฦQาb a-‹ฒ�ฐWต8›iฬ”ส8ำb๕TH…zฤฉ}4Žฌ„ํ.๐ฟ#„3Œž‘“ฆ๏ณy|฿��—y{ซ‰ฆก๋cฎY–ฏ�1฿๚�C�xใ.w_ฟวwฟ๕*Ÿ๛�W๘ํ?zฯ~ํ ฿ฝืs๗dอ6|์�ž�‘3Œ+๚œ9ฐ–•ฟฯ*ียื5สXaฯG8๎OไณŠถ๙>cศxHึ๊�วิŸ๋บฆg}ุ๏™�้›ืด็ฝฯ|zž$u‹–ิ (B@ฐ์ *$ฅ`ง ฎ€ลbล6เr•S&'ุ&–ŒŒ„d$!ิB‘Z๊Vwซงำ}ฦ=k�ๆwzฆ�๑|งๅSu๊์ณึทึฎตพ๗}๏็พ๏๋๚]ฅ)uNฃ,!m•.ัา %8h„ลจ@)*ดษูถi�ซฉXด5!F ‘QiI-u”์ๅJ VฎK…6.ๆHrฮบefRsัo้ื6>ะ ลฦ;Fฺฐ_ไTE†ั†Yžqปe˜ ๒‚ีป+ะw~ํฯวk7_MTฆ๒:2ฎ@g9†ุเ�บๆ’,ซ่šฆ:๏q� ฉLฒ�h‰TC๚พ%\ก฿ S—, ๑็!!gอ`7B” ฆDทฦ‡มƒ'tํบฆฏืtk89^ะ�ศ;Oธ8[R‰–เjN–าTฉศ3๖oRWtํรlศ๛ตg�_�็71:็G{H˜2oV<:k)dคท=UU2T,7[V‹-๘3#&p0ฌธl: ๏".e‘t๋-Mำ1žžฺศŸ๚แ๏แ๘7ช}๖’ฝbŠQ„รˆ ญใฮ.#่รŠฦ]ขไˆ\‰ฟd��ใูฃื๙ไ๛�ดœคเยnŒž้}—)8#ฺิi v‡?kAฆ}~๚Gะ๗=J+ผ๔ฝEฦ่o’๓|Hเšํjหd4bต�ฐXฌัZ๑ย‹7)ŠŒึIฐฮฌVซฤfGเz‹s–๑tLŒ็ำฉ_I‰ท.iฅC๊O…’„ศดมDx๋้ๅง�!�๖ ผuƒลvลิ\Mวฌ!—5JDฌSฆdV\eๅl65oฝs๏�–๏"ฯRn๘7ษkังข+uบOEF฿.pฝ'/ ซyƒm{tf2Cg’fSใld9Ÿณw4ใเ๚Qฅ฿ึฎ๏ฆO1๎:ๆฤืสฯฺKš0โ๖ธข‹šฺ nd,์9O�'ฬฒ1&V4�!…ธCCZทฒ Wฬง�1�๔ฒ็ภ ฉc: mฑOn‡ ๑AำZถก‹ยIDข…fZXวš™cmฯฒ๗ู3ัหพแอีœ™ณ+ฎ &ปรƒDจœ๋ศ‘œ๕mบ ",ฝฃ‚ล€ol6Œคค2%›šำฆA|ๅŸ�ัxใฮ{๑!’ŸรไณT,๚B8ŒlWะz‚ํWILcšfI6LศW็ะๅ�ฎRU3b ]ฌพKชYUฆBm†„จpถEŠ<…ญ(C๐[„,QJใฝE๊2ฅ+ฉ*ํgํN,‡ยws bฒq็xK๔kˆฉ2D6K7ฐท ๓๔๙(๑�&ฉ์qจ,qˆ@V๋Sผ_็i7 บvหr~ษ�ษCึ็ฬฯV)ุœฏY/j6๋†A‘ฅฑท*ฑ}ภy…‹y9คk:fืฏ“�ณ๑/™ $ท‡9๓อ–ใeร๛?๑>�ร��Ÿ&ฒู=ื ฮ5เสLุ^~‰แีOกLA3g=Yตา)ท7b€Cfุnฬn‹nŸ๐�n๘ั�ฯcฒ�๐ยต ส 9ผบOโ�“S $$ฉ่ฒ ๏;ฮ.ืไBฑ?ฒXืเ#C“ิูu�2(sฒ"'“Iต]๗�4iด�Xฺfห๙ลŠ?๕#Œ?�ฑk™‚ฃ๊\yชBA�uŒ(ฺx†็Ha(ธƒ๕k|์ฉร�ๆ”‹go๐‰๗�%Œง<๊R5]ผ ‘๙n™;€ แ+…’“mไ��9—^-vฬ�]hŠ�ะw}BKมฃหุ4 ๏œ3ฑ๏�่Ž$R&…p๐IC"ež~ถ˜บUOHษ|!€’DDb์ˆo!„d[�1œud:ใั|ษ�ไO๐฿s›๗�ฆ๎/™ ๗1ูˆภ–ฑ tGcหL๏QdŽีช็‹ฏฝร~็wRdใ�ฮ{wุฅ�ญณ๔ฮ?ไ๘ั.Ž/x้/p~บM้d™b8ณ�n‰BQ (ด/yž&์F๏ีไ๛ู•้m’๚[�ฏ’ำฐรyษH^ๅด,^%šศฦŸq'ฟƒŠแ dŒ<๊ฎClุเ…ร่œพ,;?g๋<md฿dIPHd??`;*ภกJฃ่Qผไqทฦ;ม W‰!2:/๐ยRช4EZZหฅ๋ B1PŠAf8kถ\หJๆญๅคฎู79k"'}xใ—�x�ลO&ธ]“ฎ#%„~E –ผ:ยu—ธnž,PY๊ฬ‚ะด� Šb†ึ ุพE็”.0YNp–ถY ณ=lข "ค oด๔่|†๋/‘ฒ@jM๐=ํvŽ’ ฬg{ฒlLฤ์9ฺTฤเ๐�ฅหไ๗ม7Hก๑ถCg#ขะญ๎Aไใ๋(ฅ BcŠ{kŽ‘4  \฿!ิDฒมie0ล๏ถ๘]Z๐=& ฬ€เRHE�7(UcŸธ฿"๎Ht!Y๋ขO�hiาh�mRTชบ%BD„2i‡#B• Mฒผvdฉ�รฤw้แ*4B๘d�“E*ม!T‘N๗ˆ4_}7�ยข๏ฐฝcป\ฑ<;ก^7lฮท,/OX/ท�๛๚=Z๋ส;วลณ%[Ÿ๓Nญ่ญg–+ƒO็—|ไc7๙�ูG‡฿ด‡…~™bฒฤูs”ูC็๛ุๆ ซใื0ร+dๅ,jDฺ]"@่!ถซ‰กGว5�๒K�๔฿}]ผ๗ๅซo่TIf4^D.›šJๅ,ฺ-๛ฃลณuร^nPxฌWD็ฉท5Eฎ!๙•("&ฯ@)ฌ๕่<ฃฟX“น–๓หK~๐฿๙ใ�…๏๛N&2’แˆt”ฆ$สKbŒT๊&Nฬฉ๛ Ltˆ4!!zllYฌOx๚่ท๙ถ—�<ร�นิฅH")šลN�” บNŒ$RhB์“ฯšไVฉU�p“8เธ\oYด ›~ลลฦ๒เrC๋ท~็�T[ฃ]ฯ‰v|๒เ ๙S฿ฦฯฅฟSคฑ4bะ;๐‹A 1น!ธ@๏vพ่q�Qื5{๛กm[œs“ฑฉk†Eลใ‹9?๖ำ�€}�6ฏ๎�fpkv‹ฆ7(ฝfฯx๖ส+hฉA8 !‘ฑฆ�พ�ฦ9฿๗‰O0(EDb’f@ฤO›ŽIžใ€ฮ{ฎๅ9k็ธด=Wตๆrำpู;ถม1ะVฤฝฯ�•ธwp@t‰ลTืRAm๑�ฅsผoRšUุโmภ๛ฉ ๕๒)ี์%” ขรป%Bๅฤ p�šlpDP]G๔[œ[า7[ฦณˆr@ืo(สR›ไtถ[‘ๅc๚nน+ lฟลdCบzƒาSฮpฎวhMhฯ๑;*T>�GX/กฬบœa๋lปbx๐>ผk“-&้‰�{Po;b6Aส’nsB bธ‚9ว๛ฅ@็‡ †ปิค4ฺ๓n›bN…J~lawDจw<b”�uจlHAฑƒุผnแมทษขขS๐!…vDoAฆ.!Fฒ"๔kbHฬre’‡’ฐ Rฅิฆ่,จ2u�v›ฮˆfˆ”‘5ั5๏ู^^โzKณzFณzศ๒tมๆ๒„{ว5o�›ใ]D๔=วงžn๙ฑฟ๑#˜ษ!RๅUแบ6๙ฺƒGfSb่i.฿ม”#์๖BๅI˜ํ#ดH๛qื#tw ๋ำ7ุ;ผร�๒pหŸ�/ฟHตwศมี …โLsน†yำ!ฃ ‘ู`ˆษ*šพรD‡V9J+”ํ่๚ˆtuืโค",dฺWz฿ฃซ*sšฟ]qvฒโ~่๐�ุ๏ใ0WTZโย%-!ฎJ0ะ/่Yนทศไˆ(žกพ™Œ:พe]oy๖๔_๓[�6ณ๊ฃ Iฬิ"โฎ›”ปn,KืcHฬ„ošฑษO๋;–mหใๅ’ฏ?9eQื�;=am=๊55=y–๓ด]rh$ใa†6=/๗8๖ฯธ:…ูใ ๖๗}ทฏ฿Ld6‘:�ดฆvณั+Ž=cบ?%Fุnk๚ึาบ•บ73|HฅBทmzT„ง๓9๑'���ฑ;ฦ[K1บNณ|D5ุฃoฮPฆDi.Qzˆญไ4ฉ„Ud}๑ Šษหiทๅ๙๐ื.ฒC้฿.’ฅIgH=รต—ดอ%J•)๗VW;r ทะfzŸ; ฅšŠ๘&gH๛2!SมŒัฅ>tJ๐ฑO ใะ#ดIฆ่w~้4MSCด๋���จำˆขLู$u ŠเBชH"@e;ส—…ะงƒ‚๎&}๊ ]สr„ษาฯ๊z รn/่š-�ลSPอrษฯ�?5›๐๏�๘โ์ก;฿ฺๅ#5มฎำ๏FT(ญ้Woข‡7vKW/z€.ุฬ๏’ฎเป ๕�-nผ๐�|๚�3~เoำฯ“kM‘KƒŒ6€k๋Zง;‚ํvCže”ƒ’zณขo:Œฬˆm‹ภc…Dˆพ':‡— ‘+2$_k8?ฝไปฟ๏ร�‡โ๐\5Aษ-A„–จZด1ิื้โ)ฝ8MV=ัแB†aŒ‡c�ฮyt๗_๒m/�˜ๆ฿‚iไ่ƒOขPฉาเ�ผ้ฐชm-ฯypพไขํyใ์‚{วฯxธ\ฒ๊ื0สˆ™ “ฝู”ษุ0*#ณL เf™ฑoึญจฬg๎๛แ๗zม๗~๔ƒ�นqข&ฒ�]›ป‘ $ฑ]๓ึ๋ธy๋รษ๏B ีˆษก๐.HiEYไXkqึ|�ษ#~��4๛๎8บ9b5(ศ2ลXฎธ’๏3ญrFู 7d" „งi_๘โพ๗c฿ฮัมไ›=1$xฒž๙ด๒. ฅ ฦฏื๕ฆ1x๕ว>๘]บb…I•ุ้๛ง�&‘X’ว]@‘ฌO|y 75Kkนป^p\'=ฯzณกถ-™œฬ—œิ-ฃฒ`˜๎ž_`wมPฃฦฯ�ะ0ฎ އฤฐค๒–ชšฒ730ฦ 2`ิ9 Oำ;&&วYอEท"W0หฏฑp= สht„^„ฐH้1Bณ๑ ฮ6OนV�b6™ •ขdHoๆ ฬŒŒ ฯ๚ว8นd_\GวŠc๗˜Œ๚JิLSˆ)Vฬ‘B‘ห1น๐จh๐r a@.‹ฤF)V4z…s6ฃeฯJ๐—�๖฿ๆญ�๖ฟใ�_~‰Wฎธyี๐แo�F+Fณ#ำซD‘c๒ 4q—a›5�~›๗Ÿ๐เoaยœ'งœ็cๆ^rบ๚ ,_ฃuษPกeหฒ๏Šœ&nศ,ป’JiD&idฯ3ยˆ!ซ้#”yวžšฒ่�ะ hJข๏ผO+/ฆูˆใพรpขฃs`Tม@iํŠ๓บfฏ B@aD�e^ดกcจ22ฅ้cค krJ|Œ,g]ฯžฮึณqŽ\'`ฺž1\t›พ็(ฯhฅเคตe%& ^_.๗๋ฏลฃ+Gุ~ คN4OืlQD ‰Ižฑฅ ”)ฺ่5JJ\฿ำ4 ˆฅ<„žม๔y‚๗,O๏2ฝ๖^�ž'ั›ส&ง๏:ผw๔๕%"Dfื?† ๚]8‚ุ)fƒC p�โCž’ฏฺsŒษv(ฮtใ 3Dฉ1ฎ=Cš!‚TI฿/ษ‹}คะoOัลีไC:โฺ „!๓พo ,ˆ(|่ˆถAˆSBธ๖,ุฒ=|Xกฒ:›โ๚9Bฉ2B8ื" ปb:๘= ‘-ะส์ผะ‰ฯLดi๒f75Jฺม.2š฿๕�ฒS็KSฅQ๛๎�oŒ—%0Oใา]พ›zp ‘คช†$ฆ‹พ[งX•ฅB๏mRj‹�—๊”†๕�ส฿b.V�๙�๔/bืO้š]์a�‚m:'ุ ฆ:ข:๚v��๖1Yu„$๘a&ธnƒ —Tณ๗ฒ:� �ล’ว7๘้_๘u~�อŽห˜“›œฐ?D”9ƒรkh-@z2ช<็ฒii›ถ z8`6ฉ๐MวฒwธmKA ศ •Qx)i–หไฅี้z ’อK๗ซห๙ิ๙ ๒;y๏tŸ™ˆไR“ษ).^$Uฉิxฝ†cV�†„่ใš]๑๔�—๙ไ{˜I๖>ผO-„@k™rัcฤ6หล‚7ŽŸpoฑไwOŽ๙�้3ฮฺ=•nVšjไy๏�wฆSzีra-ณ์€2+ฉ�2ชh›ฏsh^ ช)‹�u^UทˆOน}#็ล[7ˆaD~ว/ ค{M๎โ ปฮ‘›฿ำWxpฮโ\ฌY็J&kŒx็‘พx๗!�ษฯ�,่?ภัhD4�šqYฑ/z อ~9cd๖ฐat๔vE๔#พ�s>๕�ptธฟหSNlฟใฤ ‡”$ยฮOŸf\)าื†๖๛}Šใ�ฮ‚Li”lšRBีผญYบžทึKฮ›–ฃฒdำ5\lทœื5ฯOFLŠŒ“zล:๔์็RkJe่‰ศLั๖-™ฬ˜๗Žศ–�|ห™Q™’Yณlฬๅ๖”m฿ฑ?ผŽŒ‘Mฐ,น์pย ƒdฑy@cฆ<ข้/ศL…ื)โถ,ำm†Rฒt(—3.ว4ฬYถฦ๙„€ก 5…H?Pbอ™ศLฟˆ Žง๎„™R\—%๛r„ยbย)4—๔%ชLนุร่+ฌ\อบฏ)ดba{ฮ›9EมI๛„kƒ1_:๋๘‰ฟ๑W™ผv—Oพz‹๗�ษู?SŒฉื ฃ๑ˆ็^y™ฬ(\ฬัล#ํfNปฎ๙ฺ~—ˆg6 œ?ปฯ�Goq/1—š๒~?๔๛�ˆsดœ@ uฮฺ:†™ข6๖‚ฮOkลฉ]SM!™œ๐V='S ๛…Aว1ˆŒ.4I-Fj�Q๗6f…&žมP+ฺเฑึ3zัฑq=นะิ>%ภUj@�oˆAใeไ0ฏDึnK""z†๙˜ใฆa๋,๓�7š๐ธiYuึZUฮ~V0๏z‚MำpX<้ทสŠหmรฃฎG<๘ฬ_Žืn}”|{ŽฬฑกžฟIื,าM*PŽ๖ˆย`ฒ‚`ืD"J1ƒkด๕9}}L^อจ—ฉฆฏ’™œฎ9ว๛ศX๋‡ ๗^@จŒnsL@ฅ)฿แป yu€ฬ ผ�v‘ธอโ]M’๏ฦฒiO}IฅSฬ!|Ÿม�iFC่$X„ฉv›‚ :@WDท%ุmโ™!Bšำ Ÿ๘ฟ�gจiวŸ๙kปz‚ศpํํ๊!ช8@HBdร›ธ๖ื\ฃGWื่๊sฬเ&:๖|ๆ7~“U?c6�ใ๖9๎?'3b>CxEฝ]s!,งฃFทฎ0˜ ่1๔"C*่zKำงLY(ต$ฤ„ิ๕.$๊_ืSEŸ<–ห%EQแb$ศศภ๚ฆฅ@ำ.-๙๖›�Ÿ�ไ๗๑�ัM†™%ฦ9š)-Ž rqH‚ณ๎3 ณษ๔![;วฦˆ—taษ�แ;|่ฅ๏f/�’iช2}รณใ๎ž>ใ๎|มYื๒ู๙ ]•!๒'“‡ร†[“็ุˆ-ฤ-ทMฮH .ฝ#ช}N�—นฆ_F‰ž‰ส‰q„ [ ึ๔�œๆ[ศ„Gช� N๏ ฎฮเ�ฏ�F„ฃไ‰Ž‘’*้0บุจำhฺฺไ+ืZง7ŸขH๗๔}On2ตใ๒้�#�ใ_๘9�ะ๗=ฯ•๊ˆ:ดฃ รกj)„!cฬy� ๖‹;d& โ€ว>๚๒ุ›Mฟ)่“rg•�ษญ๓ฉ\ ’�Q �dยป:)q.)๑c๐H“%ศ9ฌ‹,› OW ๎ฏึผ�ฌ่CคP‚�๗41Rไ†J*ฎ”ก>iRDœŠDUR˜!น6”๏#[ปๆ(+ษdษึ:rQp�=&‘žิyํ—รฬา๗ššdMษ>e๎P๚œะ—8]‘‹V๕} " ฯน๏0zฎgPh”ฬ�”ฎt<#’ญ๗๗ฺ›|๖ฌ!Œ’ฏZv(ก่;O 9๕f2†ัt†ณŽฎฉYญ6dYN–edEฦ๙ๅ%jตnฆฃ�๚ซ_ๆฟ๘—�Œ฿�ฟ}•็'ฯัหŽรjJ•ฺ2R&๚ ฮGžฎฟมQq…Q^"ขโูƒภทผ๚!&“ม7ฑŸ์ฐ�acภฦ„”e@ฅ�bง tถงu=๏Xูž“MอI[ณh:พ~~ษiำrคู๒สแ5nfดฌธ9ผB yFพ;tฮcฃeข ๚`ฑjม’ษ€–ฦ7 zb”๒!%•Tิขc๋ึ -[Žฤ!ซz‰‹2ัฺ%yร[w�%œˆ@M&F42b�‡x ฟ!เYKgO๐Ž?e์หy,pา‘ก(ๅ”M|Šณ +ง้ๅ’ŠŒฉฺGจˆ %O›gซ5ฟ~qBก&ิkวƒหS>;eณ๔hู๋lฺ‹ฺ€ˆž(นาhmุบ@&™” ŒIB_ะ…!„†๎฿�sพ็JษซG‡_^r8jx๑ฦ˜รฃำู˜ฏ~รƒ›˜,51๏ฎ”‚oiๆู.\>|‹'๗^็ซ‹’_��งผ๔วฟƒO�ฉฟˆ๊{N6็dQ!^็ ๓Š�ด•ก๕€6n™™kฤะ3๏W()˜š”`˜ Y‡ GfสฆDY#…F"จไ”•[ณ๑–žŒRZฦF๑ธ�R๗ Wฬ{yม�๚<น`˜๐ {สตbB–œu[Z'9ศsฮ›*ชค3๒–ฒ30 `�Y‹Š•๗ผ3_ps0aR”|yต pฝ๐ฐ�25 ‰ฤŠศP‚‹ฌmG็ญP�ึ'Ÿ๛๑ๅ้ฯ�|ภ๙ƒK–Oณ||ส๚ูŠ๖bVเป BEl{Lท9KE$€s :Axฟ€ะ`t‰Tพ_œรปืฎAๆศ,ร๗-ถ[&ZY!bKf&(]ัทhS‘ๅcค๐ฤPC๔อ’~s‚๗)‹9ฏB|KV์‘U๛ƒ†ณW8๐Kผซwษ>•%`H„d/3B0(]ขดB็ผญ‘B�*๙ห…ฅำฤฆ]ทฺฉปC€$„SN๐�พ[a๒=‚k’ญฤฆ —R๎y*ถฉ*Gศ’uŠ\u�U'a3 =RษคJWปผhฅ“O\hd6ม๕K\ฟ@{ฤ าH1ฆn<’0ฑ*•<ฤR•D฿๎ˆS!#Bš„}7'tฒ7}St๋wฏ“[ขs�!๒‚ใw๎ฒ~vŸ๗�พัoŸ#H3มต1 ๘\ป"b‘ูอๅ]๛/}M^Žiบ!๗�ธห_oyใ�าด=Z ฺ๊S7=Dฯf”EI1ะLต็ไูœหฬfXkiขG#จ๋-™PไFัxOืw‰[v�‚K‹�RH…t-"„(DD๏‰mห^ฝษ‡^พลมuดฮ(ตฤ0Jส[yB&'dโห)นbฤ/< ก`m[.๛'ด๏�oธ7?ใแบใl๐GŠWŸฏ๘ึ�{\o8*[ž+ sŒ_#ฃโฒฟเI}—ฉขe@ษ†Š=ฆFr”e\1’}ๅศEฯ@–ไRกขฦวS|๐x‘\9{8๑”ก)0ฎคฎ-7ฏฅ๋Išo๚ฮื๓9งวs๎พ๕”ฎ๎นœ/่:‹ั†แ��œ<;ง๋-R+๔Žตฝญบ�ฒXo >๐+_~ฏœŸ๐พ๗ฟฤA5ยไ‚\T Œrอa~5ํกEภศ’าTdJำ๕’๛ฯน>ป‚”‚.8ฺเXu-[�ณถตณ๔xllXtsVถฆฑ ว๕_;}ย—O๓ล๓c~๙ษC~๎ม��‹G๗๙็๓นหS.dเ. ๊"๒�7๙๘ /\Qผ<ฝFžYŠLp”ฉฤ’*jdPฅŒจ่ม pฒE V)“9WJๅ้cณ5EI‘UDํfษž™qhูุKs๖#„e‚ai JถaL)“ขผ๓@ฯE–;F*ฅขรบ9#rฆzL๎#UฬhbG๔o1lศ0ฤM%ฦ(uื/ฮ๙™/}…�๙w^ใ็ฟ๐:�่ท฿เณฟ๑€ฏ~ๅ _๛า]žผ๖”ห‡5�ษŠ~�ะmำjศhTโ„dTV .b4{ฅแ 38ะFrํ`สพฮxฎ,งวˆ‹‡�™Žh7+๖žฝQJ<˜ํก๒’jยuKดฝลู–ฌ(๑v‹VU*,ช"F์6มโ%DOปz’D)ยขtI๐‚่สTุvEp-ัํิเv‰TJ๑� )wฑŽพCš ‚ ฟ a้ทgปE™ถ_!ฅภu'(5ุม&lฺsฦฤzทํ2ฉึณaย…ฦ. บH2!UฒŽI)ง('š›oัy๊ฬ…N๋�}เสกJd6B๊$†“zDˆIฅž2ง“*>๘f‘ธƒaธฤzzวƒ�N๐ึํฤAษž๖nแFh„2ฉ‹' EŠ; � % ๗พ๘Eฮ<ใ�ฟ๏ฬ @้BF”ฎะลŒ‚S]#๚–ุ/ะ๙a๒‹ึ~โง_ใง~๑๗Ÿ8"-๋MKณฑ€aS7ดmท�ณฆ�ฅํ{‚Œคแไ๑Sฬ�]”@๋ ญsœ๓ฅ1yŽužๅfK™–ฃ๘ฮกB@ …Xท) &jr-p6Pa˜ Fิ๕†ฏฯ๘๖|๛ฺ!H$%‰ค๕'-ฝ฿B4ฌํ�jŸ(ท”f-K6vฮข[ใญฆฬวŒGŒ‡\9scโธ=jxy<%cษ0หษT…TP้$–›SSฒง๛าP†5ฯKฎVฯ1ะ…ฐL๔52Qš)Fา‡ ๚xŠU:FรX�BหษBMฝส) อั�!!$<ซ@„วฯhบ@–—deฮแ๕ซ ฦใQ0™ฮ8ธzศ`PQU>DบฎObฑLมoฟ๙€ง�’ผr…QUe$ฃ%/ฦŒTN†%†…Fเ ŽลฒcทิาฒhVœn/Yตึอ–“อ‚ว›K๎ฎฮxtyม—ฯN๙๊ษ ฟ๕์Ÿ[>ๆ3๓%งฎงอ"[ุŸ*Fำ‚;‡Šoป1ใSWฏ๐สมˆ;ณ=๎TžŒ 9Š#`$*rฟf-ฅฌจ]Cๆไาหœ <นัŒLAฉ%ฅถŒอRt๔ไปไพ.ัฦเ)1BQ)ฯพ�gศ˜ Mอ^;r1ยdhE 6>เBM!„„คŽฅ]ะJอžฉA1'ด‘Z’Q๒ดฝ‡ํ%ฅ,iL๒ศค4ฬƒๆท—|๖Yอ?๘ท๘ษ๕�แ/–ฯ~๖>๏ญ™?ia0}$ึฅฑ1RลมมŒชศ˜ &y†”‚Uษ•c 2ผฌะZ0-K*†4ึ3ีL๔<ธผ Zหฺmyดํ1Bฑ_ 9iWD��๑ดฑDธeั%ฆ฿45ฤmW”ๅั- a‹ UDื คก[_ ณ’พž#คม�–่๒๊n{Š1%*b›ซณืฑอฎKYใก_|O5{ืฌฐ๕%Iฟ=ƒจ่6 ฮใœลถgˆ˜<คIฌีmJ(“ฆ K๐oทD<ัmv“LŠ๙ฉŒ#/Qล๘-Yq€ ่ฏณ!R(ค0;สYโ[Kd•;‹า1hb่2ม b!๓4žG\ŸŠทLูฯ1€@"ณjทgw�;ฦŽเง]ศ!ัตiงH“@B&]R๑๎์ล๙ก๓ไWึ#ะ9˜l—–.D)2/Y==ๅ๑7๎๑๏๚ู`’v�๙Az˜ซก_ สซ๔�|ฟ%ซฆื’—3�ัฯ~†_�ย†ขb�ฮ/ึฌึ5ซuหลrหz�ฐ\ญูlถ,–KขwฤLว๊ฎeZสั/4™ฬ()ซ;#"B@KCแ#&ดDชH›~‡OE$v=ั;j'ฑ]ฯทพ็&๏}>G‡ŽRuiํ “Wั๙K 7่์%V,ศtE•ํ#Eฃล‰S#dŒhS’้1ฝ›C์ แ�Ÿฃ”a˜P*อAvˆ'Œuลพนอ@; a™VืzM%g ไbธDˆŠŒCœ_ ะd4ฮข4 ะ<ูl้ํ–œŒต‹<ซืดV`2X8Œ)”b<™ฒ_–x4›„jงถf KŒ”น’1Bข ฑ[r!ฉTN฿ZšhูxKc•ฑ่{"ž�K�†ใๆ‚ซ๙๓vรฺv˜<�ฆgๅ:๖๓=Z้X{ห�`ภ^Q๑ดmน1˜pT Xฯ8/‰Dึฮaw!F�๎™66๗๔]O&4๊ฯ�ฑ๗�ธฐ.๙ŒI#Tฅ ็ �w๔ฎว”’มม˜๑แ˜bถG>2พvศ์๚๓ไใC๒J"dEปูp~�m๎๕-N๎?ไแืพฮฟ๕5๎้ ฯพv_|ฦำ7žฐxบd๕lCtvฝd{๙˜Lฒr€ณ5ƒฝ[“�mJคJ�bU์!ีh—’ึข๒&b› Fkฒฌ$F”e&่,วไ†rxƒ่—ด๋'h#๑ถฆ฿œ‘W{H!q�šฌ�Ci า UVŠพ>!๚& 9=H"ฆœผลv ฎO)n1t่|ก l{F๐-*?Lœ๕เ!šl"ว๕๋ฤ†W!8๚๚1„-ฺŒ:…e๘wฃ6๑ษ2|"ดํ 0‚dYพKU“Y‰ิ้uฉ‹–I้nŠu‘9่<}vม ™ึU๊�^#T%& J‰(„6tห5goพฦ๓y![„ž…มปŽ~๛ [Ÿ�฿.Q๙ืoู?เWใ˜Ÿ�…wศ๓ศrฑ dl[ม“g ึ�6‰‚ถ[ึ๋5> ๚พcฝู0ัZcŒf6bณ๋ฌB*ฤถG๏=ฝm>rจ {“AR!wžุ:l‘BกLF�{VgวœืKฮ�gป^“;ห๗}ว‹|�ƒ/#๚šฯ-ึ /8Pž(ฆx—A™9ดฎศฬ<ตƒmื3าทุ้เใšLPศtƒ–i~‹*›cอXใ‡Œไ๕Dเ>1œล กึ ี ีขรEA๎#]‰–ฦ�VไfLฆ FูŒ2+wฌ์Ž2ปšlIบย:ฯู๙–ษเƒฝ!ฤ„A !lผ๗่G?]oiญา[KSทlท-M�าtŽอถมMQUิ� ฏ=zย[๓ถ51^~๑ˆ,V‚(น.ธZฬ0ช!“Uโฉs&๊e|XขคมJK-<ำr UAœcร}มญ™bo8ไ๙ฑโV5ไ๖Xssdyap•‰.ฉ/ [gi�)Yจษ๕ˆฺ%v๗๕|ศพฑ่ภพšขี‚Iพว ฿G›&=7” ส ณฯิL(TIf S"ญ„ฐไโ-,*:ชlA6"ศ,:โโๆˆ มใD‹CECฉFTบค”#r%1xŒฌ™ŒQ~€�e„oC ำื)0ฤ ศqtธฐ% icฤ็1gJ�X ~ๅั#>๗๚=~๊ฟฤ/๚K<�าc๚sฦ"็`6b6ž0(sฆEมL ย‘+ :tฆk•โdU`ำฏ้|OGห>ืโQขก-#ี#cว๕J0อr #\M‡ซ์jNฌ/ุฌ:n$!žต#.บŠำตฆ๕C2“3”ŒงGyJ�4s.ปž_�าC~แwŸ๐›_=ใโ๔rdXn%๋‹]”\1ช" ๋‰xฮšŽ/Ÿžฐ ‹%ื’ฅ( ๛ƒ ciจ]วำํ%$„ศ๙vI๔‚ตŒดd\ฺšก,!ะ๙˜๒ผ๛%>Fบพๅญํgx!ั"ขั,ฝ%ชˆ‘9y–ำ วDๆ4œ๊g ^ฌYฤภX� F๖uมPižu=ฦค๓Hก�ฃ…`ีwX"7ช!F&ก�@J๊ฮฑ้ึ๖จ๛{o�x^aLT9&c๛diชชถ฿เl‹ A…ะ9&ำร ี๔ ๙h๑ž ็ศย1ุ›1ธ๚<ๅžf๏๖&79|๎€ซ/\cr๓"‹,W=O]๒ๆ7Nน�ปธ�ีG<{ใ’๛_~ฬื~๋ ๆV๘&R_ฮ Mˆญ%y1F…T=G Žjr ็VoษG(S) >e] FQ\ƒR’bpˆG1˜ั,๎‚w˜๊ฎฝค฿ž"อ ฅ2l�“Pzˆณsผ (5H!%! ‹QE๗ซ]žตกožกห)มw่l–>%�ตื�š`ืIq.@›eส’’อJC“ฤมบH{pe’z\™oZb*‰�„ทU ๔h'x‹ศlธ#Eš†‚็ำ˜\สTฌ•I63ื]:<า่=z�Mคa ๋ใง<๚�gธ๓ฑ๗ ๓ฉ'๔�';ื@™V!& จl�9‹‹Žฟ๓ฟฮ๙ZpใhLVŒ >๐ฮ�S–ห-}฿c;หปTฌzปaป�ะิ[šฎaPLง3r% า0—Šฎmศ2Œ ‚G๑ซ†ฐ^sพผdณIY�}๋๑u’‘๐œฝ๓‚ศ๕ƒ}ฦม๑๛>�q๗งผu~ฮv]๓UปfฏT�ฮฃ�งฯƒoฝ๑Wว ใษ่Pขภฤ)ฝ;ร1G‰-่X‘‰%%š\ดศ่ฃlL%GdฒฅT#ˆ Jx—h‘#•@ …’F•ฑฤ่�MOJ‹1 ค!ข(ๅตดฮ๑-�๙ไ+kkŒšE‹ต๓‹žƒฝ ฃชฤ๛<ุD™cฌ‹Hi"}ฏฬ้ผ† ณ๋=J)๒�P7-ๅ $:ฯ[ykฝแ•k‡hY๛ž็_บยธ*hcฺrhฦLฬˆˆลบ J(2h;G.ศ™0ุqบญพฯ(๗ๆ‚:ฦX^gช„e"ฺลˆR9ZŒŽ(ธš_ๅJ9bjbŠ]C ืJษ@;J)ศ„ึŒ๓๋สP้ ฯษENฎgไb’ๆYq‹ˆ๋–(แศD–Beุ%wฉa๒“‹ŽRอฒฤsBฉ#ADข„l'>ˆY"็EE,"่๔�ช ฉ{D(QqB74ัSษCrQ"cG๏ซษขแฒ[!}Eฉ>,นดŽ฿xฒโg?�_�๕ืy๛s๗ธ�ีSึงŽ๒ ๛ใ1ฃqลxT„ ŠซUAe$…Œt6eh�เะฺะปDิZ™คภ/ฑŒhXีJ นt …ว‰ฒ–า ‚ไจ7ไพe_yค๕�(ถ]ใย€“Zค™฿ฃ]ž อูW้๊'€ฆœ>ŸlVZฃอ€บิu๛D7O1<@ชมีทDf{฿d0‹lbŽmOบฤukดcช|‘ุาชL#mUฆ"ซ \�4ฉบณซ‰†gFIp;lชBฤžHโs 3ฟ"ขRŸh_>กUฃO8WกT๒šGR$!]ุ๙ฤฅN*t฿%;ฺ.sZศภJๅiี;Df8�า—๙๔฿๙/๙๎�๓cv๋๔!�๚พ�ขซ1สฬPูŒพงห๙]~๎_๑ฟ|๖o๖น2\.,o?8ๅ�rMฝ^ั๔น)Lมํ2ปEส6 ‡�น}‹๗ผ๚*‡{ิร1�fฑd#eUาl7l๋–ฬvผ๏ฺ/�ธมทผ๗ƒ์*ึ๕E1โl ฟ�ฦ7๘๔ร|tk๋†ฯญๆ�฿�ไ๐\URํฯ๘ตปo๑ๆ๋op)"ํ†Wฎ๎นœๆdม'><ข�ึ๑'ฆ>lF,ป ็�ฏกคงศะแ*–œผd”]'ืXซi๛9ƒbบำ(ฤไึภำูcŒธ‚๓ –s29f�"าำ๚ง1Eห %*ฌฟฤฦ‚ยO้รEB…ฦŠLฮXฺฯ#ๅ€J�นฦฦK2nา๑าU<|ปไ๖ญ�\=šamL�w ปmI฿vด�Žฌ(0…ย๗ํjรถ้(๒Œr8ค้{|๏๙ย›w้ฅเฮ�Œy�rใฺ!ื‹’ฟ�~Š:พ็{๏0Œ‘lูSฅนZ� o!ๅ†x % Nฬ‰Xดš"ดภE/!ๅ1วX|† kBdฆฤฦ ‚!่-…แBGe&(ั๎�ห9มu„˜ำฤcฌฟฯA�q„X์พJT˜โ8#“3ฌ8E„‚Lก•ก๕O๑QเbC&ฆ๐ฎm0:๗ˆJฟŒ’'71APแูX`=ุ(ศDสŸ�บg่xD9hัั"ฃB‰=„�ขEเย^`�’ก~;ฅ2ิัฒด  Oปc๖ี”ถ�ย—ฟฦoฝฑๆ๕๛็l.ื('ธ:›ฆ์pฃP๚่QBะลศฤdxŸ`O–6๔I-%>:l๐B•f�Zฦฎclืt›5ต—,๒!๛“!“ขdำตไกฆ์| ซƒ,ฃYnะ2e‹๕œํ�ฏs๖๘){๛\™ๆ\�l$+$fPฑh#gหšีฆeฝฺา45…ˆฬJษrฝฅฬ“"|iํูL ไ�k๖‰ํ–ฉ�zฯ!ฃ—fฬUภ0ๆล๒CฅyึฬนR‘&R‹†ฝมU๊—]ร{งFฦะ:G-"๏Ÿ]แAำp้ึ�ฮG๔Q2ำQijW๓ พเน๊"u0ุุq=าG$ษ’๋ ๅฯšNi2gูŸ"�%เYณ Š’ฃขเlปbRN8 xึm๑>ใ๙ม˜ว๕„dํ7ซ’eo๑มs-+8ํZค์ๅoญ/Xu[ƒโ—��Ÿ๛๛ทฑ๕3๚fI=?g0(ศŠJ็ƒ”ษศrIDก'ธ3„ํF0Cbh‘2ล�9็wั‚%ํ6e$K=@็ฉ[๒n‹’SBศ๐ฮ]้„ฝข�\ฐธ8กพ�ขี‚`3_p�๘”ฆTƒen•๏=fORL“รืo� œddƒ‚j4AeBDiI๐Ž 4๋ฤถv�fว4ทTใฃ]ชEkkฮ1ร#t1MˆUฉ๑œo(ช๒ม๕ฤ!3”’  Y‚ฝWฐอ }�„|p �]ฝ�)ยwูไูศกŠ]”ค฿ฅS๕่��.ถE—‡้`ทจ�0แJ�–"ง-ุ4๗}™ป\KˆŠ่:d6Bไ`ทVe๒;›่J'๖บO๚ป๙ๆBํ(Wv…ศ2ๆoผอo�ฝฟรท�™๏cz๛ัwฤ(ฑ๕)�๕H3ภ‡‚n�W|�ฎเ๏�ŸG็๛Lฆ7ม]๐๚�9หUหf�ฐZm(ชŠพณXืS7[Š,ฯPRg†�ฝ ฏผ๚>^x๎9ถ�๑9/x๋โŒฬE^>:เ;>๔*่ƒ/๓ญฏ>ฯd:†�๚ๅ`ใ!;4ฟ�๔“AษMฅ๘•฿๙*wฦš๗พ๒<็็sn^ฟย['™ศ‚ื๊_x๘˜‡อ%฿qtภ�ื๎๑ู๙1ณ^แ-฿๕=A™'๎’q ็:ƒ�อษิŒR`tIวัเ‡ฑข๗6>C์hb2fธะQสkZ๊๐"r}•\ั๛"™บ†ต แ+œO<�.žPeWq~าQfทˆฑลหsถ—%๗๎U|เฝฏ0’„Ž$ฌ‰’]ทๆื๏ใzษd2ไเฺ}x็ปฌ›†L+ค’L๗ฉชŠฯ|้๋ˆAล�ฎ“IW7<||ฬ฿�๙_ไู`ฮ'�77นš0ษ po๒žฝRช‚u๗67!4h1YD(…ˆQ˜HF‹-O.žgีฟ‰™cใฤ(ƒ#Y"hฑ&“๛HB8ดฌhใ96<ฅŒ/เXCGežงณKึฌฃ'ตO#{ฮVs~�๓o๐O๛ซ�ฮ7NQ>้R2%9ฌ*๖%ZzQFใD$‹žผšะ+มjป"ำk;„6LสŒ*๔ˆฮ"zpšะฃํ5_ณi:r�ขe$_!›Œ)ณŒXฏฑ๋ ญmนาไBแฌฅฬ4/N8p—#Y๓�Ž ว๘พฃส2f๛ทR0ษดf2เC n{ž<9ๅ๒๒œ๕๊Œ{ž1ไŒŠหfศง/6ไ ��G™\�0ทœๅแ๙%—e ผ>ลผr‹›‡wภyฦRc„ๅ ฬx๙hLํ5K'ฐ*P)อีฒไ้vม~นฯ{ฆ6p๎Vศู่3#šนSxึ5t22ีถ+tP�Lศ…ไคiˆ*gั_p%rXNyาฌxึฏธYpo=g2P`5c๓คm™w /VzzดฬQภฦY2YPJอณฎe ^*fฦฐ๊;škรรํ้…ˆ สŠงmฯํผD�ุ_�ั?x๎๒๑ูไฝ>Dut…  ]PlWlืง,/Žฉท+ž��*—ฯ�กฉ[บzม๊๒œฎYขtฮgั��-€ฐณ%iฺzEˆg7)tDJบพม˜ ต ๅฅ3ผmฑevใe๖n�a�๖ �™r๔�>ื^yŽ็>x‹›ฏ์๓ยG^b๏ๆ„ัม.vิฝๆ๘Iร้�š‡o\p�๚9_๛์Cผ๖˜๙“—๗Oธ<�ะl�๒฿uHั’•cชษŠ๑Zฆฝ4!>*œ“)��;BจQZฅ„ฑ …ญ[%พธšคtญ่q�:ูฯ„$ฦ)ฒ„eฅhNฑ�iฦt๕พ›cWKwJ๑ิยค#ทภป‚Kึ1=Hแ%บ�แOป]มา; YD‘MRAeส‰ˆ|Špลว4bagCำˆˆฮฝM MถExว๚โ‚‹ทฟภต๗ฟŠฎ ROฐซ{ 2ผ�b›ฎ_%qJ>ๅŸ�สcŸm(ช}eษvuม๑ูšพm˜_. !bCI�“gZe˜� ณ,e �Žชpxtศๅล9ว^p๛๚�ใ๚�'?๒�ั๏๘/�นIก ุ9ฎ]โœฅYาฎ๎ใ๊Kด)ธ5�cฏ}Jฟz“|๘ป9œๅhO๗ฐฎŒFEฮ‹ฃ1฿๑�m^ฯ๘่ั�เท‚ฃmไำ_~‹_�ฦ1G‹>�ั�ใษy7,’’LkBฐœ>ปว๑� 5ฆ\๔๔ญgkฯฐพ!ฦฆ1"ฐถกw๑qข@2@’ั3G*Alัr–˜฿ฒGŠ‚\อะ2G๋WศXก”AJวzุุ)wฎอva))cฅ9%ภฬ!ฯ^๛_๙'Ÿo�แ?ม`ฟB็W อClป%^ร�Mๅl็\.#?�_�"ัI†ีM๏X-N๙๚›O9ป\rนj)๒ŠผศYm–รมŒผเปญ Jฆมมl|่Cœ๓๒?ฤ�7�#ฒธ€ะาทuš:(ฯ๒โ”๚โ*#บ3ผ=%*I9šP _ข™?ก˜ฝฤ๘ๆ'“ถ zข*A"\Mp�t๐๔Cสˆฃ ฟ๕ลอO?ๆ Ÿy๏๛ฮ๙#Ÿz˜=Oื/h{ฯxดฯ๙ำ7๘™Ÿ๚�๑ล฿y๕บe:๒ม=วท~ื‡y๎ร#dจˆพ$Sึ7ศX`คขw—(ู“e#Œ�Cblะ&:ˆ!ึ(๖q~NŒ%“Z€fBŸฑJเ’๛๗็�ฝธย๗๛eW๐q‹๗%R„a฿[œd&ฃท=มฅŸ%ฑึั๕–"ฯ8ฝX"|เืฟ�‡‡S>๕แ๗๓์้)gว'ผv1็๘ญฯ๒ฉ๏}ŽW^พC #}Š1’k๚=dฑง๏™3ฬn%CDจศDŠ3uœ’‹}pHf4๖า(*}mxLฆFฤ˜ฑ๖่�ญTฦPชŠ�ตDษไ!Rษ๔|!s$"ฅลE่�Z์กฤ(}L:dLึ(BFใž%|ฑ์ษฤ>^^ข!ศขงo3’aฮSžฑใ\J–Š๑ฅ0G(hฝ%๘–HCนจศ„ภ M๋zb\าPฃ�>ั ฌk ขf…g` Tด|ๅ๕ท๘๔o=ๅŸ�ฦ๋ิ-์•ฆy†.4J ”๗ิึQU9…T๘เ( eFส€อ ไgำuM๏-&๔H็้EO�ืฬ๒•—ดvCๆA5[[=Q–ข_CŒ๔uไ๒lล /ฐอ†ู�จศkw฿โ๙ฒใี#Š"ซ ฑA3d YQเzวฐฬcŸ@pŽอถๅ|ฑโbฑaS;คŽ๘~K50|~~ษ…0์เ๗๓ž—�ฯdX2ŠเW5๕fหษbลๅjล…ฉ}๔,8ณ–Wฦ%ืฦš†็F7˜;วหำ1pwqฬีrL&ฅŒlฝc\Niรฉ_SชืณŒฃข ‘ ปฆCŠ�<็ตๅ{า ”ฃ!๒\q…M่1ส3o" ”Hh_ะœwKฯ•ฌเaฟe sฦZ ๋ะค`จ๏น6จxๆzRใ}เฐศ้ผGK‰’�'*งx|�วฝƒรo*’ƒwŸ% “ิh5D*kB,PjŠภะmŸัี+Œั๕ มyšzร๖๒>�ล ฮzผƒ~ป ุ ™ส้7 ฌsWC?วต[ชj€คCช รฝ�เWไƒ+dล฿ฮ๙‹ˆึ๋$�ท”ฃCคHˆE™UIE-‡ศX#DภฺšฌบCื,˜Ÿ�ฃkjšVRoทไ™ขท ?*E—nN9~๚”ถn ]วบ Hื1Ž&๘(PEษ็ฆXรฝƒฒ"ฦš�_ฤไ%"“่ม˜zsŒ@PŽŸGช1�ื‰ ็:œ]ข๓รค"Wเmƒw „-สŒ‰bดƒญhœoPf@V"ฉณ๊N!ฎQfด‹โ�EŒFม#Mน#นu9&‹T‘vvzFใฎI{๏oœ$bฅก):t;ยU3 v;tๅx๚ปŸ็๕�|๘O|๙๔]IยŸv*fDื!ด‚ํ3~�—พฮง๛˜�š ฉ๘๕ืฯX,.๙๚[ว4ญฃตŽ<7"M็‘:c<แ}J์*สŠฬ(” อท~๋'x๚๔˜?๘พ‹๏ฯ~'m{F๔V๓{œ<8evๅ๗�x›ฆ๏ๆ#fรšร�ฯ`ฒGท9Fฉ1�j„Œ๏| ]ŒA 9ถo‘กOยGญ‰ัำu5 Pา์๖ฑY๗ ?�ๅg�ฟ�“Wo๐gฟํyพ�ล�Fpvทๅ๏�ํŸเท2šเqt]Rs7๎Œ๏๘ฎ๑#�ฯ0›�!8Kภำบ9"Bฆ dิกQข ะ!u‹–i�๎ด๖#๗ส!ลษˆj„ศPlย7๐ฑAณฯถyฬ�ปŽทึท๘?~ฯง(dF]สˆคฦป€๗‘ภyOื๕dฦP–9›๕6™๘€D๐๘๔Œ�ืฟ๙ >๕าK�‘o๙�:>�ตo๐_ๆท]/๙๖ocสk\5%ž2ห9ศ^ฅถo‘›š, ไjŠaL๋ž"C@ Mฎ' {JIำwXถTzŠ19MXแ�็%^x”– ๔Uคh1ฃvo’ฉ;h2ภข˜า‡9™œQปw(ไm"4แ”JฝD1‰�ุ@ฤ h�1ฮทH1™๋Q8\จฑœัว)ˆๅKF๚„ˆด� ‚!ต?ฦp@ค@Dมึ?ฅ[†๚.n ๑ฑ ็>Bh 1%†ศึี\ดs–ฑ4ีF๓้ฯพฦฯ�๊<8๏ู+rตฆUิFำื ™Œˆ‘ย“+0Y์ฑยณšaUแt ‘*3 l๋–Bด˜ุา[หช๏ภuไ1#๗ e‘แl&g$$พc„BฐยฺHh3\Pxซ๐�->X๖ฎ\แbปเ้ฝo๐แ}วี้ืI*$'๓5k+ษ๓ ] ฐmM�ูไ!‚"ำ๘]ฝ%หo�๖ ชภ‹7ฆœ/=�ไษ9U๐๒Gฟ—ƒฃktyIกฐ[ƒ ฟญ้ื5oŸžsผผ ธ1ฆ�่‡น(rfYฯอI†T3cTภ•แ„yท%หฒdใSŠกษ™™Š“vฆเๅม!ZEอ†:xฦ3V๛\๔ cฅY…ศช[sTŽp1‚)5.6ฌฺ–-'Wxุ,^กU‰5Q*l๐์‰‚�[ฏQ™เZนุ%โ=i>~pHํmœ75•R”ฺเD$ึ+ฤ�o�J<ุKฉKQX”RxŸ<๚ืูใ� ฅKŒง ฿ใผฤ˜ษ.ฝ,เœ๛fj– e หัฃขoึ8ืำ๕ �๚Œvsษ๊�ซำ๛ธฆf=?กokD„ูh"]@aว4›†๕zหแตศ I^ �N‰Y� “อศืสะฌŽY]>dต\ใใ<ฌ'Lฆื(ซŠพYแฅšโ}รzq‚ฮ† ymณœณู,้๋ฤU๎šH![„L†%]นykฦx<ขู๋dภd’“ /}jo†2ฏ@XัmŸ€ศ(ฦท!ŸbปKDฬv๙แ‰A]ฯ฿"๔ห”๎6y0 ซjF =J:คž „I!#hข๋_]S‚[๛”เ„]!หYšŠ„.๑ัCHนฬw{๓[$์(qํNžบ๑”{,Yฮษื>หื~๎๏๑แ�$ูไ•�&๚š๚โตd…“ถ[ั๑฿��#ž=๋ธ:ฮpฑโsฏ?eณY๐่xƒ1šพwธ ๑ึาYฯx:คkำž^้ c4eฎEญศy๕•—ุิŽO}โy~ไO>ฯำวO] ใtะ> ย–kฏ~ท_�(jฐ—๖ฎฆฤ๕+œ/ปxl|‡lt5m„U†๗]๒พ*ตรอB฿utฝ%ห ฺๆmŒ*ั*e~ํ w๙๛ฏ๐๕ีœ�#ฏ๒๛‡%�ฟ๑๓ˆึ!TF" CoEฎYuž<พเ#Ÿx‰�เว~”,3uxŒf@ฉ๖‰ยBpˆ˜๎ขCซ‚(ฺ”Byฒฬ›ƒ4nถว„่ษล5œ\R๗gH!่�š๑™cฎ~+๚ใ"์<๕1†t&๙]SุJ$ฤฤ�ถmŠ๋ฝ\ญสjศณณ3�ึ/�nY๓W่Xณแ๓๒3o?ไ๊mรw๔*'อ Wห›ผOPฒฦP1Q2ใ(M›ฎa1B!QKb-*r๐œฤ˜ˆUะ‡†€%&ฅฺG"้ใAิ ™žเร|Nˆ ฅั78ถไโ€.Sš8ขL0IžFใb‰)Pฃ๓sค€เMŠ๛=Zํั…GxภO1RฒŒžๆฮ^I+VOŸrm^yแ*/ฝ|›ัpศ๕W?BCม๑๑‚หณKห5ตฉJ8ฐ+๊๚’ส(Bำ๓ซwŸ๐+DMnpp๔*AjจFŒฆSผsผฏ(1B}ฯ@iN– = [�G�ร“›ผgศ0+ม`ตโฅมWวฺ่Y๗=R็Œ2ลฬไ\๔U^…Lšุาธ>ศ)๔Œ•๋นุึด}.#{yIo1Hค”ด~ห6†”N3๖ส’ต•lป•ีŒี4Yƒฝยฦศ�zรHKn—œ�Žp�ด� Y‘ม3๗Ž‘ษ9ศ2žู–'อ–็ฒŠโแใฏล๑p„โ"ผDJาRป|kฤ !Fด�วAค'ƒs:] บ Fp6ช@ฅ�›ˆ(ฉ*�p!ค�ชภแฝรv”ˆw[๚ถฅk{œmhึ'4๋Kl฿าฏ/Yž?eต� ๚Ž<ิุฆe:า =ถ๎™L1™ +4สXz?ฆiay>‡จi] ULfร� ฺ“UCฺmK฿ต˜ผยูŽ�ึ(=คญท„`Œะฦเ๚Žz�”พO9เ›ี%ย|ืRฏ#‹yO™•”ZaŒฆiož ษสŒข0ŒŠั•˜ฬล0g๏ฮทhPEI1{Žเๆธ๚”lpกJ๊ๅ�ุๆ:?BศชkHU%ฒ›ฬ“๒\ๅ แc๊ถ� ‡wก  Mฒ—…:#ฺBw๙โ!‰�vifัC๔bท+�Iอ.„Eš‘นx๓+ผ๑ �5ฏ�oAfšr๏ใD;ง™ฟ*ร65�fI><ไ?�๏๏ฒ˜_rmoˆ”฿xpIืี<>^ะ4-ีpภzีกอndป]“•9�mฯloJŒ’ูdยๅๅ9๏}�{ธ~�€ณณG�แ฿�{iศ๚โ)หี–[ท‰jŒ‰Š๋๏�~ฆW^@* ๅ>ัฮw:†BžฒิmิกำJโ]๔n:หไ  ข๋ˆ}C”!D๚อŒส บAŠœL��ฉ๚๏`อ๒๔พ๛<ฟpโ›n๎๎้žžููฐ9`,ฒT’ศฒLูฅ*น,ป,™*า^‹U6)QYฌ%šA-‚„L.,ˆ%w‹ล๎b1›&๕tผ๙�7๔ �ใwz–๊บซ๛ํ{฿๓žsฯ๓|ŸoธธบเO�๓ฤฏoy๖+฿bw{…‹ฺ(XœขสมQฑn<�ํ–๓ซฟ๏ฝส�ร€�#X*{ฃ45DQ#๋๖ัgไถ&ช-Fgˆiฐf‡\n (iนOoะว‡8<14|�ํc�็ฯ.๙๔๗๓‘ป7่๚APJcถMKž็hG๏ม ซอ–ฮ;ฎื-MปยHไ�๛น฿เ็พ๘[�แฦ |๎๑1฿๎=/~จๆว^=ภv–\[ฆบb?ซ‰(l8fnžaj๗่ย›h™`™โใ†\v๐๒mŒ์XSdป!เ#๘ะ`™ขFิฒยVvQฆaPษ๕”"-3|่!f:zŸค˜šZๅH๔ˆ4ไf=ƒ_%Ž,Jr:ŽัqŽ–mx€ฤ ผ"จฅz–ฅป aKasJฆtqIˆ=•ูรyุ๖† /k‚Œ”„่Y‡kJ=รป5มMp(ผž„'์EMs๙kŸ� ?๗ู7Yฎ‡UมQUั้่bB ฮฌp้|"‡ฝfMึnุฎ,๑‹=b^ฐ‘็SฯUณd& ŽŽมn™ส„า๔ฌ๛†ุ9‚7hŸ‡‚Be˜ะโปk๒dใุฌฮq[ว๕ลSฮษMN่zf7๎px๓o]ž๑ญฏ~™ฬaZL8๋[ผxC๑ย๓๛์ฯJ๎ก,fHH‡•6=eฉ‘Yฉษ& LDŒ%Ÿ�5`s3Jผ6ˆ$ƒ‹v}w-ฺVี>]{‰๏œฌ.ึL็ป(อjอูใ‡„ Yo{ถห–ขVtcำ4ฬ‹’๙ดฆ, ‹iIฑsฤ�ป˜ผภ†–๙[8฿1฿ษ™�$฿�ีขํ#ฤeถงธ๎<9บ๙“๏‘OžมทO๚kด�C�’#~ุขรไ‡่l๔FW2ย๋ฦ&rS)Ž4&e@๐ˆ( ษฒ5หY�{‹7�ษห�๚Aฌตุ๊&ซiWobฒซ�œ฿รนœ?๗ท๎q๒๘‚็w๐ไ|๙[Yญ.9_'=๓bšSีS�~๋ ฌษุt‘‰]ณ๊5‡ปS<;{ปด>๐ง�Ÿ�ฟ๘O?ห›ฏฟษ�แ๓š๕5G{ šnห๛>๚๛8ผ๛a”-@ีiG๒"MtรDˆฑ€(7ผk|}๗n�t’๗ๅDัi๗?ฎ“|{Mฟz’2�ํ4y'ศภบู๐�3 }๑ทlฮ“fB™6mโ๛;SิNษืP์f|ฯŽ๘m/สY่&RQฺ’*ž3Qš’ด*่ใq*�\"1รjAซ+%Amฑ์คAK…—>กพNดฯ่้�9ClP’!ู ฅ=ขV/ั…7QqŽU ย:ฌN7„5‚ฅ�ฦ๙%ฅ~‰'gธธ"SทUยฯอํิผชwโH ะG\„K<0ี“1…ญฃ+ 9ข—ฌป :ฮ‰Zrดไtกฅ‰-™Whั“d~(lu„„ฎŒจ”�•ใ�G ข“ีฅฤvl–4xOT61ะงuR)q*ธŽฺ$m�๕ƒ|ใ�,/�ศSฯoา^�รT‡hm้ืoc๒œํู}‚�ลฟ{w๎ต���มhหฏฟ~อ๊๚Tฦf�า Šฟ๒>N.ฯy๔๐“้ †๎ ƒ LชŒ›ท฿หฟ๋C˜่๙ใ��ซ�ฉ?�ท9ฺ™๒แศdห;ฯฑ��'ศ&๏Kžํ^ƒxD•$้e b฿Œ>๚:ูัJ AL‰D—ฒเ•J|Sเัh“ 7*ูฤˆ�14— ๋D›WฌึโO�ทlฯ�ฦฺบสF–ท็›ฏ?fฝmˆััvŽY]qxxˆš?๔๏�๋ผ๒�ู�ษ1RเbOฆ’�he๖‰กc๐(๒}D"ฝ_ฃFbKŒฃ*†xLDPbฐfNT‘.žqฝพโง>ฟคผP�:œะ x”ฃจ'ฌUไญๆ '‘ณฮcsƒษ-o7œ\ฎ9นFs�าiุ�Y`ฌ0มgo๐ž9๓)L๕”84์xพ|–ฉถl�ฆj—C๋ะฺb(PRโโฝ�`จา#พcš‚๔h• hD(QXmp!ษqCˆ["’ld5ิ๚.เาคฬŒJ฿ฤณฆ๓Oฐ๊(‘|$ขตมว-ญ;Oพ ~Iฎvˆjƒ–9 5ลqŽ•}„"กN|ุŽX•a๔—แ1r•1ธ-‹aB ลฉ.ฃขukbฌุ„+ฒจ‰Aธzฎิ๓C.ฯถ�อ_๚5~ๅ—ณ\9ส"#›T"�@ิ€ŽHfA)๒ธ%ทฐ:ฝ&>ธGi ŸฬX^_ฑู=b็ฝ/็ยฤF,›ๅ%ฮ9ศF๕”nHซ™เ@[ช|†9uPhืฐ�.‰}‹ี%รv �ฌ4Cื3x(mลvนฅ*2๖๖0YมY8�๖k”ืด?ใูร’iqภขฎ™ฺˆถdEไ๐ฮsLๆไำe]“Ÿ�C$๚ษ4�ณoแ6'X•๓S_๗��ื�แๅBัฯ_dYีฌUฦผ6lUŽร๎dฮƒuห{mŽี0)3ฤZv&ั9�:ฝๆ๛1nM�ฤx๘ฬ]rๅx้pฮดส ! ๅ•๙ญ๘ญๅ)F ฯd%๏�™qา๗!ใผ?gQVผ<}†‹nรo]๓๊�-ูrแF/˜[ล“ี5šภใfƒ๗9oฉUฮ$/ุ-sŠฬr๊:ฆึามDCฎ๋vCอŽฮDๆแrลษxุnษtBฬ๖๒‚I^ฐ ฃฤ๗ไ๑�qwwJ๐q โHณยถน@ษ &"k†�b‰6ešฦุOr*\๒�ึ“d%ฺoˆ�กm‘ผฦใSำ๐.IœD@k0&ษต$FผฦเŒท+ฅ๑qภ๗mbškƒ �๕ๅ!@ืด‘๎u฿1 Ž,/ั6KzWmS2ZฟNSงhึk‚.hืKฎOนพnYžณY.ู^ฎุ�LsqŸ๕z…ัq$3๖Žfิำ]dˆ)ˆฮ—{t}CT%ห๓+ๆUM๋<ๆฮ�[�น{‹Go>bต้มวงg์ฬgจะำ'=;๓ŠGS”Œั๔Mค[oบ“อiวีfMฉ#ว^ฅ(ŠŠ|ถเเฦำIฦlฑCฝปO9฿e2ซจง%๕ดค�Mู�D‡ฎ๗‰aITQy‚–C7:Fยะกm…ˆOŸiLๆ>!‚ฤh._�:o}ๆop๋ปŸ็่๙๏cs๚•DJ™!๔D้ท็จ8๐�ๅ?๛‹x๎ๆฃง<ธฎ.'gW๘h๘ศ>ศ‡?�q�ส_๙๏ฑู„�Eอษ้c๖Ž๘=?๚=�Ÿ�ฝใ{_esyIํxํmห+/ฝศัํไำgะๆ€žFฆ8Hฅ-"Š ืI {”ีฤ˜๖�1FฤTi2๗-พkn@St^จƒ=LโˆB”ย๗n{Ft[ดD�8ู๒ฟ��O๓เต/qvู฿-๘๖๋o๐ๆ;—h"mืS*ฯ8:: ฎ Ÿ�=฿ฯG_}?‹�Œร�#ดIŒห#†(—ฝb’ฝ‡(‚พ&† ฅ-V�’ม7๔ฌPไX๖pr‰อYsอ�Mไ�ใkฺพแฦ๎ฦZg{ิYมEsษฉ x�!๙.฿จ&lคๅดู๐x=๐ีำ‡�(๗ะyฯAiy๏dŸ ธ๒+2ฉ9ฐs.๛oฃ�5wํar%SยAฑ‡UWdฆF‘ฃB†จ๏;!œ?ฃา{ˆˆ@ฦธ�—+{๘i�ึd ฐtแŠZ4{๘pŽฆ@�Gib…—3@กe%-บpยf๔ฎˆJPข‰!า๙'ไ๚6ZU„เF๎NG.‰”XUัน },๑ม3ฤ $z,Sะ}Pจ8KYุถรˆ&ฤŒญ฿ขB‰รป–e฿pM >็7พ~ฦ฿๘_เฏณ˜ฬ˜์.ธ๖‡yฦอ"็�zEำo(j› k฿ฑ๕ฌฆบโ|ต"lฮ่ONehwwูฟ{›Ež ๕ฐฅ์�8 y2ๅษw�'“ฌํเษuศ|กฃบถMฬ้u˜‚ซe‡4&3Xใุฌกo=ฑ๋Y์๎POJ”R\๛ž'๗�ฤœœpใ™›์ื5าm)lฯ~๎ูŸ๏q็นฯ�ฝAน{›ƒปฯcฒ‚ˆJ> มณZ^1ฤภ๑๋_โมทพฮ7‡šŸ�ฦ–�ra‡*ท\๎qaฒd"ƒฒโฦ๎!›(ฬŒแๆlสe็จ๊5)9ะšฉฌ:^{��ใทุ๙ภ{i?๙�@yŒoYิ„.nRdš\ฮ�5๗VK�7+ฑฆ ๑š6ฌiบ†๏>xŽR)>wyล๛งŠฬ๑;o2หื|ใ›—|่ƒGุƒOํ3ฬsขš"v!Œถฏ?8ฤ”Dืฆ.ปX Œ&†‰i๚xw$Iโ‡-qh๓�ิc๓ฤั•N„HL.u!ฆ็O[ฎiNพŠ)wษŠNN๓ง�ฬฯ;๐›ฏ�ใ์๔‚<ฯ๑Q˜ฮิ“)uU็ย‹ฏ~˜�เ'ธuธห‹๏ฝ‰ี9ั�ัษๅšI1กถ P "%ป"FOฎ ั%ใij|lhร„g‰h–nลตs(=xŠsšBvˆ8ŒCAฎ3–n3Zซ*†ฐ%๊ภฦwœ๕osท๚หxอฑˆT4ก็ฆ ิYA% "+l8ฅT ฐศj‚4r€ศ€‹+ˆ!๔X)ศตฅ— ‘Ž\โ\‡ K”ไๆฏˆQ!:โcƒ—–Lƒ‚ (L๒7็ำไจีฏฑjDMฤุะ;‡Ž;ฤฐE‹ˆฆw+\ธฆะฯ#Qฑ๕ศ๔JถˆฒhUcฅเย?ก๓…ขs ม_S่}zถ็ไชยล6K’“)Mค#Dรเ{๚8p9>�ๆ/…_�ย�ฌฎ1™ฅุ��2‘ศn^_0๘ภฌ,ัtธะ0ณ†ำvX๛es๒ถงŽl–ฑ— ะ6—„พ%๔ซaC�4 e‰=ุว๊@๔ZGœ[ฅ้ดซ!v็4}^ฑฝ‚rXฃŒ'7 ฺฆฃ๏šU‡1†ลฮŒเ=A+\ใ฿~go�ฅํvิ%zvJ]XvๆdEอซำต<�๔IDATl–๓์หŸ`q๓”าษ3มX\฿p๖๘šซว4WO๘๖ษ5?๕•+พqัฒ8|™i>E=ๆdฒเก๓ึา+รมคๆนบค;>E‚g๗่๑๐6ฝ1L'5Ufู)+œ†ห&๒ซฏฝA๗/๓�O|€G๏yŽe฿’M{๓9ซ6๐ƒC๊�’[รue†ว�–—‡์Š/?ๆ†.Y6=๏�?ย‰PZKฅJฎ๚™†e๏™%JGNึkZ๛UลฃvCแ…้.็�†ตo™56 ณL(TลEทA้œ›“Dจ|ธm๘่๎‚‹พ็xป… �œVด}ฯN–๓ฮz…�ใ?๙ใŸชชฅsS้ไบ$BbๆS$ฮX/‘ขฐ ญJŒอ1&ฑQ"n<๏4H`๐bbtฤ ˆHDT๒zVสเ|๒|๕�'จ* 1ฤ4‘JDง�y๒6๑ฯ~ ืx:ญ' Sh=ฺ๊“ ;ฑkำื๔ฎK�'*lValNˆ’ุธ$s $๑Œeบฟห�ญ#nฝp‡—?�!>�ร?ภ‡~เy�๗�>๒ร?ย‡๘wp็a๏๎หฬoพ‡zพ@ูŒม ืำl[ˆfuIณ^ryฑโ�ƒSB฿pv๖˜ๅr‰๋žฒYฏศฒ? X•ฌ,—็็hญูถ[.ฎ–ฤพวฤฤŒŸ”%k)Œe6ŸSL็c qภ๊zยjตโ์jษู๙5'ว9?ปเ›฿๘Ÿ�•ฯ๓๙_๙—|้—~•ฯ}ๆ‹|ๅ3Ÿๅหฟ�พ๔+_เ๋Ÿ๛u�๙๊ฏ๑ไตฏฑz๘�ณ3ถ'h–Wlฎโะะ�๐ฺ7Ÿ0ฉ,]sสถutmฯถ๋xฯsทูฎฮ๙๐‡?ม{žฟษง�ัg๘?๖ฃ�ภ’฿๕‰’ฐ9ใ �๒+�ุ๑˜zฮ�๓ฟษ๎]สู P”)’Oผ6เ@๐”R้y6ฃ‡ผาฃใŸคD.็Fž†$=๐8น+“๒ใใˆ๒ฤ๑๙Iz๘ญ*" 1ฒUr#B๐,nq๋ฦฟ๔™/q๏แ]ื€hŠjFYๆิy†zŠผ ช žๅฌฮ9�=$ฯ*ขZัธSด)าD+†„ah!ฆต†Šš๐˜>#XขŒ)q!0ฤ‡bีmำ^�๗ qCฎsด6Dต!7% F่ย&๙ณM3ด8ั…ิฆdว๎cล’Eลm[โ๑@ษ\๕rIn3fv—‰ตด�1๘ ๏๚ฤ‚Nป.œ_โใ–@Zขn’งx๐ˆฯpฑ�aฬซ'D้‰าฃT สฃŒ`uาะ+ษะRYแใ!ๅJซ8A+,:N่�ผ็šDถ• DPT4๎ F๖๐!2„%Ao๐,ษิQIzyว@OฅfฉˆวŽHŽ %>H’<ขi\‡ ๏Oศ;ฯ2œเcไ�Uห_�็฿ไ ฟ๒uฎNึไ๛๛LfSๆึr$ ืtด:"ฎฃ4š"ืLํ€ธŽ*3œu-Dด(๖๊9;นE�&ลํ<รpM๏t�ณํ�ไœผ\ำฏ”๊ƒ ’๗๘fƒRG๎’Egm&\n .FBL$d›Aฉณ,$ hศŠม๕่�&)pQrฑn‰Wง์ฬ*|Œ๔›kบึAุะ8RX‡๒ฤ ไ๕<ํๆ’ซ‹ †ี%gO�ๆ๋Oึ�๊}๘ฦษ 9|‰g�๛! ฟพโBiš(ฒŒXGถ:c; ฌš†ๅี1N:`pTำLฮU€in™รyนรู;๗ศ๎ฝษ้t—kฅษ”O.สะFฯKำ)�กa฿NจMF!วฎีถไQืsP˜ˆC`�ฅHั\`้‚s๔�sฝfZTL หฺ๕ ม‘๋’Aw\„ ๙ญน‚ซ>btไค้น]Oษf3๔่น@o4หฎง๐Zั9OPy๒๘ญธฟทHบh“ดฑ1:‚๏ A%g ฏอ๚ทh�ื˜๏๎กUุ์ฏ๑iฑœโCƒศ ๚ค'xƒัขำn›h๐>โผGPijž<น)@yBpญ@T’…ฤ˜Xิขา^‡ฤXมš” ‰i_วƒ—˜$Bj$› -QJ™ดUa<˜‘qี™d5 —Ÿ<นc๐iลบ”J"ํ†-1D\ทฅูtฌฮฯุ6-ํz-4รบ็แ[iป-๋‹๘!ฒฝZำ4[œ(บถรอๆšอถ!ฎทtƒ']ฺูGล�ดยไZš�Q� ฅ�กฐ™E๙ญY*F!+' C‡๗]3`‹Šฎฎ/นZ-q.Pe:…BŒM๐Žๅj‹(มXCVไุbŠd•ๅ�ฺ)1ี‚Y๛€฿๛๙T{Sฒ๒ข�‹ื)fท๑ฎฃฝ๚&ัT๕.๗ื�ู�๑ซศ ธf�มzฝก46+y฿�[ฌ;x�+/๑w~แ๙�ลO๐{~์%ฎพ๚ณ|๙+็({อ‹/�f็๎ข๓ะv–v0JƒญRS6F๏E7$?Lฒท%Œimi5�@๔}šะ�0’ี(PโR$y*๐1Aฺˆ9~์"I23�”xฆˆn ํy๚{U๐'�ิว_�?รdRsyqŽก(rr›‘Dวั๓�๐ฟ๕ce@ธ ะ]ธH฿;ผKๆ^�๋kL^ฑณทOYUธฌๆชํy�•/ �%ฯ฿น๖๋ฤfฯ+wf”yF%5๏๕ใ์<ณŽ>ฮฏท|ใ[ฏs|~ลW฿^๒[อํ๗๒กป/ณ—gœœp๕๐M�C`ง,X"ฬt@Ÿ<†ฎCฉ์Tํ�Dฟ็(kXฬง�นsฏ…™Rˆ‡—[^;;G��’[ฮพ็ปPฅรฺœ�bสฌะ์•k-~x~บวIืRdยฺmธŽ^/fsข๒็๔ษVKฯjฝๆั[_'ฤŠํชแ๘อทpํ†ุ๙ไ’ืmู,/Q~ด@zว|2กฬ ”†ฒสฎ'S94�#l‡ศe3`&eiฎ.˜–%๋dFP๊ด†1!ƒhฃนh:N๔�ปจ๙฿�ŸพŸ๊่eB๐Cƒ�ž’ีG…ๆ๊ๅโY6๏0)…ฯ|eษ_๙�_aj ึ(6ฃoึ\]_๓�฿๓{้E๘ึืพฤแs/๑ฉ�๔sฃxฤƒo�ัVไ‡ฏbส—ษ่Œๆูฑ˜ฆfK$ญLฦ0m4สš4ICBnผ ™‚้y‹ฃดฮ)ญMข'ช BLZ)โเR3จR!!87ขUIz%ZฃDฺs|ปไ�้ฟเ/�ๅฟล้๑%๋Mรเ}šZŒ&ฯ3ช"c๗™›�๎?๘ุfม�ฎแ๖ํf๙3xฮ(ณ นฎi�%…ึิz‘r๊ลใB—†สbOˆ]r่cย[:฿ƒ,ุ๚G ม“ฉ >๖๘ ุXำsB กฮ๏2 ํHTตบBiEnJ$ยถ[C0(Qxีbตย‡ˆา5}\‘กั:-Z4S๕m8eใ!~‚๓kฆล>™žเฃGขJฐทบฆะ{xZBpฮก%ว‡จ[‚WŸ wkฆiฅงh)@๚x‰ศšB�6„ 0ชฤ๙%ัDYกใฅl’�ฉ�ไ๚[D4>๔ูCฤำ‡cœ(ิWt~I&ฤจ่‚ว#๔๑,๗้eา ™> ‰ขBโz๚จฒ0ฐ้W่~๕แ1๙๏ฟฮ้—฿ยE1Ÿฒ๎Lk&ึฐ‰‘ญ˜ ธa@ež> ดฝ๊LQ[C A)ด ๘aCๆ<žฌ0ฤอ4ีบcาฏธ�^ฐน๎ฐE…LMลฮ๓GH1 :"‡sาำ[VOถl6–bž�(mŒฤh 1ว๗ฃs๚ึAืŒฉษtล�ั(”๗๔!๒๚ืพD{~ส�อ›, ›KŒฬง�Uวแ^อไๆ.+—ฑูtR+ะ‹บ๔ฮ ์FจKKี๖ฌถ[Ÿฑพ๔LŠ้,ƒํ…ฐํ:ฌžb† ะต‚ †L{บMGื8๒ยpธw@PBfE=EอษทฟฦูƒฌGฟ˜Œf “i๏Yoz�ชง]^2อ ฒุE�a็ึ]สฐPย๊�˜“vษfป&ža>ฅ…/'฿6์U5W]ภIมั�.>ณ”Yฮ,3ฌ๚ž‰ถ<tฤUาพปฎ'�_7|๙�cฎฟ๔Y๖or๖๑W˜ฮ็*c;tผrฐร›› �กๅี�\ุ๒ๆzเปn�โ๎<ใตซ34๛๕”e?ฐk4†2๓\ธŽ‹~เทํฝ‡o^žฐ๒ื}ฯ�ž›า๚ภ^Y๓๚๚‚"ท�™0๔-๗V[ฺ ผo:ๅดm DnT*cx�6ขศ•โคoษM†œ<ˆ‹ล„T U:ฐฦ(IฅำฎMิำ)t@4hcpCหๅลทP๒:ณฅ&ฤธAซƒDC�7)ฅL&„`ฦ8L“ v฿…แ•h|h 8๙h๏8๊•JพนywoƒGkƒ(ละทx็F๒ฺXD“Œm ”ฒใ5&>ฦ€wi๊Mzฤว๖ƒ1bŒM51I�bค๏›ฤจ'^ฅ ZAั=๖1$“ฅ์Xภำg่�@Œ’ฆ‚ะแ|สโ ฮ%ž@‰ ˆ�จ—7#ทล๛mช”ข”ๅ(ั) Cปaฝ�ruฝf่#็งว\œžฑ]^ฒYmXฎ8;ป`sฑb๓ไ˜ๅ๕jd๘—ฑรก5–^,9iะษr6mCำฌ๙฿��Wy๋๕{ฬkฯฟ๛Ÿ�;จb†จไšึญO@[ฐ:�&H†อrถo†5๕ฮMพ๔–โฏ�๔t—๗)&šื�—๊s๗}๐ซ‡ฏแ�tV’ํ|S=‹R 6I0(1$2šสR๑’—@ ?คต†(…R‚๗7ธwW1*aญ้‘๘WฆwQ  >…ค6”} ณะJŒฉ€GQษ4G’ฉs>5>ํ ม๕�ํฟ๗๙ห�ำฯr�ไ˜ฎmQJ3ฉkbŒผ๚;_ๅG�ํ฿G•์,v™O,Yแู„L๕mr-๘ธฅP๛ิ:3 R 2ะ๙%:NpqืM2ŽP;\ ๗hBƒ6 ‚ZcUŽŠS‚ืR˜!v„ุ‘๋)Q(G ฃ&I.้-จ+บ๘n@ศG†ถŒ–บBฏ๑ไู๊ไ((ภ9ฝ_ƒj ฎ@ะXฝC๐�5๘8Pจ kŠlร/ใ๔/ š๐!:ฌ์'โ›D*zฟIY�f ผOึคF Zjาu=ตQ —k�ษ”ฑh,eฆฐuFŸ$ำTณ]Z%์ไืT�ภz“1ั5.ำ(ณeb ฦšฆก๑-aฐ8/”๙�2`๔@•Yบf iz\ื‡–ฌšขlษ�bJQิไ*‚๗\ญ6�-ื๋†ํvCฟYR๏ฬ‘ขbg๗€ซจ˜๎1ฉาNผozฆมsนนไห%฿Ft†ญKค,ธ๐P9zึ}OฆkZ]ฐทุฅส-:ฯศผcงูฒ๖žI=g~ใˆ๋ต์–%๛{lB ต9฿ztยทๅ)�๗แใกVšวซ;ผ(~้�˜๏=:เ™Iษ?ฝย~=แ‡wX‘๓~รฎ-ฉmR:ผuฝๆ=๓;UE๋�ะณฏKพvuF:˜๚@ศ2ž๎ฐt-ฯป\4N๚kชlŠั9ต(5[ฌ1�(*ฺฎๅา �(kšู่†ศญฒ@�ไO�๘ง๒ยโ} ๘Hp#T�” & 6L0f!x”eนOำี,ฏ๎cว˜Œป‘ ิฆxLี|Ÿศc1'ส’ฐT†R‚RˆCDPฺฃิศD—qวlDฉDกLา”งขl0ฃs$๓ฅ ฦfcดง%ข0&Inใx$าก‰ข’h„ฯ•6้uQ1โCฺk>�๚ฉqHล#uใ๗•4}ƒBL๒$‚]">2&Mๆ0๎ฺS#แ}š |H+86J+ฌี(ๅF�q’ผz�ฐMะohSส™*‰Qแ๔ฝ#ึ ๓ล”๙ฮŒg๎Tผ๐โ ^๚ะy้#/๐ั๏๛n^�ก๏แc?๔ฝ�๙ภ{˜>s‡ษอ๎ผ๘>‚1ฌขย‹aู ๔ฝcฝ�ๅƒo!๔�ศ๗žฟม�7๎q๓hฮ~๐U�๐ฅbJ-รแ‡-ร๖”( 9P$9Kท9ว๛–ฃฝ]ž\๎๒ไข็โ๔฿๛๊‡8฿ �ะ]nฝ็4vr“lv]ผ�B้“ฦ[›ศ)˜tฟbL<€885~�B฿v๘มง�uˆ8—คcJ›ิ�(2csจ” Tโdค$ธดR๘O'wฦฆ-ํลำ๓; .=‰Qฺbฌๅัฝท๘[๓๏เ\ไไ๔<ญดฮ@+nผp‹?�^สฒ$ฯื \Se56ฮ�ฏ†„Pั`ณfด�…Eiƒต™ฎฐ:#ˆร‹ฒ%r™ ิ(ฑ ๑ญ2 H ๕ืd&ว2'…ฦฆ;ฤ5"‘(น.๑ม1pI•ํขิ€‹๔�ๅ๘ม�ฅ‡dะค๛^ŒVz2}Hi-™ฑฉŒ%Š#W้Œฤ|\ด ‰‘ฤฐทj่€่:‚s8ฟEk‘ฮฏ่ร%&์โ| :bIษJ:Oฆm"_ฉ9ญZ2ฦ๘อ‡(eฑ์ ˜โƒc;œโ„6ฌูบ–•๗80Zc๕œ>\%ืพณ้O8:นบB+หดผร�แฟ�›ฟJ๓๕ๆ“){ิ…A+A ŽMปfž าmะมCh ฒผคˆ_ฯqั’)ร“aห<^มZฌoh๚&qv”ขห4ฃq}ว|ฑเpฑOžีฬŸนM}Pใe ำ%‡‹]*“qP.ูต‘ชšrฐุ็`'งฬ@‡–<(ชฌย๙ขนชCA๔BYz �lQกH�}�ั๗ฝƒ>บhษณ’ƒƒn�พรัอ›|ไใ฿ห'พ๛๘ศวฟ~ไป๙ฤ๗�๏๛ะ'ธ{๛uŽ 3 ศvล9Šo\\ำxวrpธzJž.ปTFฆ…๋!ฤโลRY–13๋กk˜*กC†-ถจX,ๆhฅ(DRณ?8v&Žฝๆ๑o|‘ฃ:็rถว๕jรท—— VFตg;l dลตk|w†ษฆุl‚าY9!+wถ็l>ใ—พ8๐สพ‹ใ฿๘ƒ|้ห฿ไ฿๚�/๓#�ๆโึัœB+bœฅgอ.ูG$Kซq€สม๛ฑhง็!Mฬ้ษ!Žจฤx/†กOศสHBิฦ$้ RiวM*ไ‰๛ iฝก#1A่๑ฉ‡Aช฿1ค{I๏]jฦ็4=Ÿ‚๋:ฌx๓dร?�วฟœ~žL>&๐Y&ำŠ��78z๙“I‰QŽบ˜1ซvะสTK–ๅX]“›9ฦr;ว2ร่AƒFQใ|Gถ™ใ@๔โZผk๑พฬศฯˆh@ซœŒŠศเ"Zมw8น&7 3#JŸ<TNฎ&hใPบAณฯH}ฤฑยE.Sbฐ‰ภ{|ะX ฌไˆlF็ฉ๘ฤ’�3 }๚yศ0l‘0Eb† KŒฎ฿•›๚ะ ก!ŠวPaUล6< P‡hSเีซ*DZ49โ†6lัโ}Cฃไ’�Nฆ ๓‚wšึ]ฑ๑๏๑กc[ดXœ4h&๔ฑงถŠˆ53.•e๋—�ะฯŽ}Ž'๋ภŸ๘ฉฤๅ—๏sP„ฒf>-๑CG>$ๆw:บ๋3ด๗Hปฆi6ถKถA๋9ฑœ‚ ไU’9–*ๅูณ†ฉษ)๓ˆฯญzIiศฒžC*JปC7ตฬfyXv9{•fง๐ฤ~KฅU"๋@n ึ—x฿`ุbM…๗–Mััะฎ‡ไ|g=ึN zฦถศŒล‡H๏„ฌช๑b?เบ–ึ+.ลZ*Šaˆฬ็sฌษ˜อฆL'S6›5อj…๓Žว๑่ไ˜ีบแต'gผvvอส9bฎ“)Eฎ๑ฦเTฦA้%ˆa�8Tnˆ:xgขX™ ~ป„fE์{tปยิSfuมD)z[0ญ'LŠŠB+vS–:็๕_�,U ๘g๎pฐุแฦค`ข"“,GŒg7Ÿrซ˜็ฏo—jย‘ต,‡†รjฮฬžˆƒว๗ฃ๘๐<ฤฅๆT{ฏะญ`Šb †ํ5ม]bสC\{‰k/x๓๑”ใํฟ็�›�ผqภ~๒{‹Œ�/พR ฎO~์Bž<$CL†ไข‹ผ2�๚8บ๗ลS~ป%c:) |๏ฐy>6‡ใ๓‘:€ไษ?ถQq$ฝ…เIฟา.�่%›�-Žฐ}„ด๊�ฮkวฏjŒAg ต(nอ}๒ฃ\ญ;พ๔ๅ฿Bฦื)lR๒พ๏�/}เๅไ`"Vr;� JIก˜Xั๛3”XL˜BวถใฅศXะ\์ˆœ๏าnX—@‹บ‘ไVุซm๒jV9™ฎาJ*ฎzb๒D0…^$๙U่‰A!สั๙S4S\\adซUฺ้kƒe˜�คk.,QQ‘ซ‘‘ˆ5e:Wฤƒา%„ฯ8ฌ.•ฝ;ํ#B™-’9^์Q”๚6น›ซฉ!P3$‚Kˆเไœ!ดมัธsษ‡ย…‚วร[Lั ฎA�Bฤา„G(™3เX…w@•„ุณ็ิถ SS)bJชณ~—MhธC# ต^ใd‚x๛๊š�๗O�~ํ_# T๓uใตะ]^ำ๛„ภุfน:อ๊Šฌช™(่LฮP–ฤษœƒYEž)šจ๐xnูœ…s)QLร~9แฺEสฑc"๓bสา;ŠJ1ศ5ล จูGๅŽ2 ุL(sอีpMV•X=a2ะ: ฐq=Q็ฬห9ฦ(Lv‘X์EN฿zด๏ษ3CPšฌ,™/(ฒ’!*ฒzc ส2ƒฌไท–[พy�๐เโšwฮฏ๘ึฃ'|ใ�}^ป๗€ฏ�ฬo=|ย๋K�8_๑ีซ†ท:G5ฏุŸ,๊’@คถDcฑ*ึz•“ณ:'hล4 )Œ&์วvyม๕๑;d6ษF}ำPNw™อ็ฬซ)ถH?งำ2็p6แร/ฟฬzฒหฃฏ�ทg˜๏PkXไ)3ฃ้เ�zร๛&Sfฺ๒x›T๋!IVŸ) ๚ฮ๑xฝd Go-ืtขุฦภUฟแ ^0อซ�Šฦ ›ษ2Cก2nU57kฎ\ไVU๓l]๓ฦzอํขเlศU‡Jj-$๐�่�‘Oอ็“dจย่M๎�˜ฆิ$—!$hx<ฏFFnš2‰[ด�ม็\.ษ๓dถร๛%!$ูX`™ค9ธq�โ�6 bRwA้<5:"$g8IบO›v๒1’�•Bk๓.๘)Dฎิž2scาt%’ˆi2NJ้�แ�ศว&ูP"พฅฏcฦืคff�ŒB9้ีj$ฐำฃฆ=๘˜ยฟBBโำi_6ณX[ ญqx฿ƒ46ศุ,ฅฆฤ t–t๚าคี‚Ž(U ตยฺcึNี&ิภจ'*9!๚tธ๙ž�[|4”•ฆศ+ŒถXฃˆAใBษเ3†ม�[๒/�อ๙ืธ๛žศK‹wž'ฮ9:ช๙เ๏๘~†๖S฿ขkฎุ\?JJwมะ ธพ%๚ญN–~ๅซย'เws๗}ฯั^�f Ÿ™=ระญ๐ฎG›z�๑/ &)€d“”พ&iNอิธร–˜!ฦีO‚K๗ว๕ร˜Q’P‘ภ =มG†aเ้”FฤSาขฤฑ)9!� ใณฆS๘ ฉyŒ!ญ{DIโ`xษ’ญฐา†(7t|�|ONฯxํตo‚UสŒ—~็วy�๓ฯำ๔คXRW hย ่�Y๚พก$„+|l๑ฒEดขฬv(Lใk๊ิxJ  KT(๐ดไYฦ$�%7–Rอ0Rขง ฅ™aฤXฅค<[#(ขฯƒe๐ื๔aคdไpฎMŸตjมŒจˆ๔ใคฌpแ’Lี(<"ำฯ$ส“i=#โ่vข1Rกค@”'J‡ึด”@ƒฆ$โRŽw๐ แ "h&ฉq–.ญถค —๔มฐ Šม]ฑะฬูบิภ~>A)O#‚•=ฌดxฑDั-xีcึm\2ฤ]ฆj‡่„.lษิ>mุrๆใCฮŽฎยŠ™�็�ฐๆฯ๚ื๙๒?�:YQP๏ํ2YLˆฺ’๕Žfณย(Eี7ไ™ล„ภึy2ญฉzืC]SLg์ขlFŒ†�5่พgึ ุกกkฮiฎึไมฐQPศ†h4Kื“้Žา7)ะชlร�<ฒ˜Yv็tQ0ŸL8*ktัฒ๕W”VกŒฅsVด]หฬฮ‘มโ]G๐[*3ฅฬ'๔>b๓ŒjwBn Vธ> rKV”UM=)!ข \7[�้็ฺpฏxณw|ํrห;๚ศงฮ#™eทด,๒H็ZๆEฮ๙fอ&E�;ถ. $#tƒJaŠ โญึdม!�้BณE๛]”จพ็™ƒ˜i†ส4“,!™{‹=|Xn;>๒ย๓œฆฒA2Bุ užุ�!ญ*”ึ‰g๕ดYˆ9ฮรีฒaนN;ucrŒ.AJbด2S’ๅ ขคจMbŽs_�…Ÿes๖:ฏ|๘eฤdeม“w1ษ#๏��Oฆ(•�š่V‰Œ—M‰รฅY9ฅํเkox๏|7?๐C?@h๎ฃ�b ๛TDC†ฑ3SD๒ัยt”1JZ๓ˆJˆM*šใ‘พ้ˆ�|ภป๑๗!q ๒<'ฯลู9ํzM=#87`ฦ๕’x ‘ัhk��้�'nยปMญึiสฌอะY๏‡4|วั˜H ข,NU˜bย‹/ฝศ?�์็น8?%†ศ�๛�ร๛ฟ๗cD๏hิ’Eนห4฿มš˜ค<ถ@�ศzxBmoฒNqฑกฬ็dYMฎ'i{ขJ EAT ‹–<™กDE.Uฒ’ฅ€1IุYย–ž5นญ(อ$y0ะฅฅ OR๑ค‘1GศอdCญŸ'S ญ7”บฆิ3๒ฌ@ฉŠ EAฆ“KY฿PaุGH;Abคs„ะ”t~…QV็๘ธฅ๑O Xbฐ ycb0ฒHื--Q[P5ืlฅdืฬ๐ฌ)๕.•]€^3ท‡XUะHภฐฯ$๚ธaใฎ่|‡3:'iฉิ>YฌqCห&ฎน‰ม_)M/%ฝt\๚Kด6�า7O๘g?�D(Sฒ"CkลŽฑ m‹ ำ,ง__�@ฏำt8ฯ-ฝ๗๘ขF”๕”ผžCิไ™ฯtณA–ง๔�’ฦ)L๐ะ\Rวดœดgja๊:ไธธdZ:๊\Se%ณCf &FศdษบนงจŠœIฑƒ%Sฝภ†9*Žhgl1ี€ี3ˆœ�ขJK9/™Mง(5กะฆม่$ชต.ญvดQJ15†—n�ไึlB5ญ˜e9“ŠฝบdVๆ์g†๗๎Mธป[QŠววฒๅtี ZัQX˜L็X)ฉ2X[Aขฦ˜@“ฬดa๎=ฌทษใรuฌฯN™ิSฒชB ุ๙‚F žLeไEษ"hรvpผr๛ป'_๚"*/ธo„ฉ&๕„NYฎ๛ ๛uฦ^Q2ฑ5wชJ„i–ฃ•ะJd7Ÿ03‚๏;&YฮสG๖๋=eะ\uK 3ฅq๙ดนข29>*V]วƒํ–U� ]OWtDŽ๊ c X‹–ศ5 �ุ๛ษOๅ๙hฎ2ผฤ๘N{โงๆำ]ฑHL้U2jฦI™ยOwดUyDณ}ฤลEรb1Gิ ‘€PืH˜€x”คCtzŒpดO†.„ด฿N$ก‘ฌฦ=๔S๘s,ชม{‚๗ฃ‡หxภ?ฦ‰\Dา>;DD‘�<6- า๚ค ฿ฺqโยX์!&ถนJำušำ4–š‹qช�Wฆ�ง `ูคo๏‰q…’Œ(I“�.฿ญำพR Z ‘†ศš(ศ๑๎šถˆธQK๏|;€V9JYSœW4ฝG™šยNQ’กคF้kJฌ-ฑY‰R%Z็“šฃ5ฦdˆh~้๙)*นไ�}ฅsฒผเไ�#Œh^��Wฐๅ.�๊ฆœcs‹ถly“๕๑ฏฃLIV์s��ิ�“�๐�^ฌvtหฏงfหรpA‘W3\๑m3F˜>]Lฦ35kIฆ๘ดธŽ]ูป�‡Scx๓�฿ๆ๚๒้๐๙้Ÿ��๊_�ŸฐJ๘ฎ๏~๕�uŒ}W�R36mฤ$-D๘Wšด ฮใ‡$กบ๗๚๋|๚๏�=สฒd๏เ0M๓’ฌ|…"(ฅุ=8bน๕|�ณฟJ$๒๒o�f/์2ซkสjยยฮA"J@ซ€Q5นš&>ŠฐฆB๋Šส–ภ‡nิQ ฮป”gr C$ŽฯJู๑h‰yฎฤค|ํH2๎ก™g7Q€Rฬr]Q็ปXซ)ฬ ซJPBฆhTฬPพHฺ๊X%ซT Hฬ\ขHฯฏj�Aฌ0๑ˆกoh‡s”ไDาฺB๋d‹R‘LO ฒยช]B€มoโu๒๐ฌษะfeุ่bฅ„ุdสžžขci่qdX ะGpbะกเบฝวzธค +Œ PLุ„‡ไj‡“ษศภE\"สR๋dโัIIฉ๒„š(ฒ)_ผฟโ๏�๕มู“+์ม๛๓)•1LP ]w‹�ข\ž=กฝพ฿Se>z`”Jึผ๓ฮ�l˜5[ฺอyˆขธ์"e฿0UžI]1[L˜†าuTตpบrh—วyถ‡1Ž�–ฎ?ฆKผ› �„BYgฯ`•ขoฏiบUสืL๎ศu•M˜ฯษ*KQTLซ#ข�`๒ FA฿ฎX์�DD1ู™ฑณ3'HD�œ๙"gQjช|}ร�$8x7ท์ิ3M";fŠนญะัฐ =หถร+ƒ๋๚ไ–9 ไถ"หต๑4์จž!หAvU`ุ๔˜<' -ฮ ฺ’9ƒ๘ ณ ฃ-Cื๓ณ็g๘�?�#_�อopvนฆ“๓K~๎็žฝ9Ÿ๘ฤ'F๓๔\x๗ิ[ Mั1Dข%g:1าSAึiีข ว๑ใ?๑ว๙'Ÿ๙ ย‹/ผ‡้"%\Ÿึ1aด�อญEฒŒŸ๛นOฃsรั~Œ๙ฮ‚jŠ&GiE:๒๑น4’ใ]OฮRJ™‘ŽํpJpษภฤวBIDย’ฬ&•†ˆเใฃ ฌž`ตล๊๊;ศ!ก[ม%6mzŽC†ใ๎›€ฤOG [Œ‚ฌPX:wA๏Z:wŽีsฤ[\\B๏>มธ*/๐ึเข5ŠUปAบžJ NC"*จL†ฤ‰ c\nd?wฏอ๚šขะเ5“\ฆ@‚0)r:็มuไZa๚พก,*n฿แ™��ธ�bn,v˜˜<ษh‹-ะw๛�ฦ�ฏ3น\โŽ๐ \ฎฒ ฅ#ต1ไขxผixะ6์ีQ„6 ิี„,ฅ.[วบ๋นZrmะ"X3a+†๗L ฎบŽ2ซ๙เ|‡‹ฮ๑ฮถๅNYฃ”ๆIืฑ—[šมqูด�จ*ฮ6ญฉ๊Šรผ@�๘�ฤงŒMp <…ŠSXศป5=๐b9สซP์ว‰4ฐค*/น�H˜ิ=ฺl’4ห]@ด‡ใมฑI“ข*ฦFกIˆQ(ฆ ญ“Lˆ‰tคt–Šง$๏ใTt’oน™วiโN{fฅฦŠŸR$c‰๑]ิRlคOืO Œ‰5๕2�([FซึNกำ$'Kzเ๔ยค)Žโ€6ษ—๐(-๏^;qฎIS ษ้`๔n†ˆ๒_ี€ึOฝ๋ซไlว‘ ฤเœฐู๖๘ฦ FA –+ด.ศLV‰ คฯ`D[ผ๗ž��ำฦM๑kฟ๐wั๑Šg฿๗ ฮ C฿๒ฮ[o†k^๚แ$๔W˜|Fึ อฺd๘๖Šv๕ ๗ g�๛๘เ^b>โ๐ˆ,�PQอf4ฺ�Fg;#*หัฤƒ™|Deขณt}zๆž๎ซ!ธธพO;ฺฮ๑�ยวฯ��งY์๎%ˆkZฃD‘ๅ9—ห _๚สW๙�?๖{ุู฿O์๐งืฌาCŒ˜,—/1.g�U5h›alฮŸ๙ำ†O�ณ_ๆูg๏Rd9๏ฟรว>�ฑ๔žBrาp>๙์์๎๑ๅฏ�&็ช็…๙ํLtษ$ฏ9n/ศฌมชŒGศ<}X‘�Œบ8Hืฎถ#d&รš’�,qRJzท•ž3#Z)"=Z[„ ‚Kํฝง็dz zทDbŽŠ†�_ำธs †x‚H†[D  6hU$�ธtczšยG‡ z�ฅ,Fgx9F+Iแ ไD}jภจEjฬ0ฉ๋>4คอืุ�ฃ‰ )nT4eา|ห5kŒ๓Ž!€ 6:ˆ9™‚(!l๑!]ป’2Eํ* ฑงด%ำlั%Q+ฺpEt‡)šU4e<$Sซzœ$>@๏ฎYG บฟคs=ืมq�ู/ฝฦ7>�&ูดๆฦdB™็lB2‹b$ฮnปหอu™1(m๐™eพ‹ช*๔แ ชฝ]ขว-�fIX_b]ภ๗-ฆ[Sำำ�k!๊51Xzsศม4๒๒�Œน™#ฒa–ํbฬ† (์œรููซ^,รฐ%+e‰มฃฃ้ย ‰ร”�๊&ฎkY5WdyM>้1นมกžะป�ัด ฮๆ๕ณ„ุฅeกช ช|F]์“gUส0†"3,ฆvห2C*r%ไพa๐-ฝwษ๐Jk"}ฟNƒaฑC‰ง`๋Z|1h‹้–๘“—ป6รŽ�ร๒้œอf F1™Lูฟu‡ป7Žธ}๔ 6„ณc๔เ’r%œKJขซฎ็ๆ| ‹฿�๒—ษ%#ปฑรEำัˆg=๗ื็\ท[‚ญ้”&Sš๗ฮw+Žฒšรrฦ�› !zผคa ถี3rษูฑ9*6>ขผPฉŒ‡›<ตตdEACŠธVšณอšฃฒไ:8Š’รผภˆJxQ&ฆn๐>MŸO‰cf$๑ŒO"†ปGฅK;ค�3Šj1ˆบษvธพบวf{อม~†HE”็ฎPคร4น=-ฦ€๘ฑhh’O4ข Z“&%IP} �ฑศ&BQ*ฒ‰‘œ&๑ฑˆว˜ข0วฦd<‡‰a”•ถ˜Jbฦ =i๏}๒�}๊ฦ๖.4?N๑ใ�;iๅำื๕แ้ฮ[ฅ๓bœข“t.BlS\กD„”ฉ.โˆ๔]#* ๔iMอx}่‰ฑMอ“XD\2“‘Œ�m่๚€s R3bt…ัป้เ–d๐”=Ÿศ{‰กG˜X$! ŒE๛)มO๋‚o|๖—q๋ทธu๗›ี'ง”Uม๛เUŒอำ�wMb ๎พ„�œะฌ/9ป \ลWx๖๙๒�—o2tง๔๋{ N‘UฎŒYลุฮvรšะ%ไ†aุค•‰eืฆ`“g(ญฮQU5?๛w–Ÿ�;?ฯ�ั.xฮ/ฮ1Yฮ0xฺฎแ่๐oฝ��เ๘เว>†๏วp“’œl”˜A‚ใS/.@ ร€-J>๛O~‘�๚ฯ�๖nฐทฟOžeœ]๐สห/ฑณณ ๚Dz ‚|yฮะ9พ๚่n�รTตแ .h‚"7“\Q็†ะ‘้ J)J[’1ฅW(�$๗Bอ4eˆ‡>MๆZะชฦฑEลมะบp5Dฦxฬฝ‹ Dตฆะ{#(ฺr{:Œั3tCฆ(ะRฃHฯ›‘9JeXูฅะ‹1X$q’[šKŽˆ์ ฎ‰>วศN๒3W[zทEล)Z:N๏Z\Xง{.-Cธ‰m*‘_ลโุคŸW*ถกม๙6ฝ=aฮฑั`%€ž`M…ั-žuิ”ข(๔ซ �ะาGwHž๔Žส่Q)f๚�Ÿ�ง�๑งl‘'ฉฦHๆJป�๏ฺ„๔C‚แ)ฤœŠ๋S„a<gdู.๏�?&ณว”E‰Vๅศ2๘x๔(ฉ พ%๘5ฤ ‘‘‚ศก‡ั<%Aึ‰ะ”˜‘=‡”|FrJK๏็; ฦSH�)ญ -ŽL6ฅิhฒ26,*ํ๘c pยาว{"ธฅร$๑๔{๚ฉุ%ฦz"ฬ๕(P“ž๔^|X}ฒkMzKŒอ8‰าใร๏I๎ิโ6ํ�Iๆ-ฉ]Iฮ„˜Aœขdญ็(ณƒตปˆ ษ �h“&•–�uกN๛{5†คฯ”ผ�๋Ÿgs�&ทŸ=B›“œ=ผฯ๎แ‚็>�!โะ0ดืจ,วุšอๅ”๖ธฎๅมฉแึ๛�m>��ปˆบํ›ฌ.�•ก์.6๏ุฌ–o’Lชฐ0†๊€ ฆšนt�1์;dBƒD›Wผ�๚›�ฅฟ๔ื˜.vฐFำ๖'งgD"}?เ๚žลงง็Hp�พ฿๗ปQj๔2'�๗ิภ&/�่Bฒgq๒AŒย๚๊š�ไ?๛ฯน�่”|๔#ฬ๋šผศh�žgŸ{–็Ÿ>Ykา}”ๆหฟ�%๎_žฐํzฬมŒ๙๎”ฃขฤ๘ˆ. ๓rŽจ@–MจฬฤกRS(!ล?Šม่ M๋.€ˆงCY!2`ตa">… yE นๅf†ฑŠLO1ช ฦ,9แ้DVJ&1š\/ล…d?Lิ–>รธ�ŠฑCขฅฎ@ Z—DI‡ตฤ E™d“พ#F…wž=žkขtฃะช@ฉ๘dจขๆdถฤZ! (ฉPขq#|*า'R'*ZŒ™ะจlAญ 4ง V zฎ!X‚L0q…ŠB&�xลส =mุฐzBธbํ{ัo่่ฑ*#HOM†าตLษ๕Œ๓ธขW–G—=๋g~‰“ณžรสœณMKPŠ"4๔ว๏p}~J๛่-f;{T7ษ25 Uๆ<^ WฦRฺdRิ7k�ฐE๚†rp์ก฿"มQๅโูbย3ทžฅึŠuฬฆ9ฯLvR‹ทจpƒmปๆryFฎŽศํ"qƒ๔1k” ”vi๙ uUWQ˜-cl1อัž\2)ูn{D+L�Rš=*{“๋ฆE่๚„Z&x—ยoB (ฃ(๒‚+ธ91”1 ๒bย๎lมDa.ฑวHฤIมํlหBOXถŠ™&QณzL์1ศ,M„�ลŒฝลœยท็่vอท฿�๎zI�vรๅjK>+ุ�†L+ŒRูฟq“฿zp#;s.ฺ5ฯฯ๗น:>ด8d#WcW ืม%ิb O6ืˆ-ูฬ(ฌ&39Nlf ^Xw]t\๛–ซถG…H/š�ขไn^๑จmฑ1ฒ&6ง0šม{๒ฉตแดkั๔�ฤงะk’‰…ั*MOaโฑ�†wO'๎QึiโM…-’็%Zœž9สr…5="ษMT๊rbHล฿๙&™8ศ<‘โTHyโ’‘˜oJึใ>;1ด|Ÿ2žC์ฦขฆศ๔+ฝ็ง๛๏ฝ ส$ำ %OA๘tM้–ฑp}gฎž๊‹IŸฯำฉl�@ฦๆbŒ™Œ!6ICLฆ!%š9ฟEค‰‰‰.ฃ\MKส$Oต�ศ ฃMŠK”˜vฤ2@TD,ึ�ม˜›(ต 2U!’ฒถง๗il`ž^o๚&ใ�สฌOื�๔�’”Wh๑อ_๛†“ฏ๓ฬ{๎‚*วี“‡ฬ;ฯ–\?y‹พYำmœฃ[�CIไษษ–ษ฿ล_�ฤแr”No ›Y>�sŸๆ๘k๗พ๏En๎s||ฬฮlฦtพ 3š}์#@‚อE„ม%•EŸ�าo`+กWLwgะ*Nป ๋Œข&vฦ$ื4แ1น*!.ดl�96๎`$งืˆIขขFUˆ8‚8r3#ำฌฬา!lๆ&ญ‹(…k‚Vh™0„M"s‰เ�โ๑พCI‰M็N๑ฑมช]บ๐ˆ -น�มณA”A™mrVtD‹sCผ& PQmQ&`TFn rต›š]๑(4™์‚j๐๊„L�"b่Cร€ม QxˆZrMภ้AZt๐LUIG‹e‚H`๋/Y๚H)ž;|ะlYัซฯ�+ษ๓�S`UN=4”fA!yฬYปBล*ฌˆ1ฃnเŸ�๚=�๚อว˜ฒๆv™|d;8z8;;ฆ;{@๎{:•“ฝ๔1๊"cๆ#^ห๚sฝe๐ร(กห‚G๛ *ฮ�@a�ƒ ซง๋ ^๗DkX;aZ˜V๔^Qไ“�ฐS–Tb่˜�œฺ– �ๅอ้)Y–ุ๘&hnOpx@฿mQหฎใv1ใํหcฺ1ัqี4Qh‡ุ/jfEลิjึฮsงœpซžะ๘@–W%สเQ\8a'+จ”‰ขs)“โ žะGฯAVRืฎGB$/ ๔๔๛#Ÿสซr๔๑–ไ-lT�”FŒ ร(้ N@ำŽ๘iEQˆJ“eZ+๊บ *oณ^G”rhว�pƒtŸIRVขM‚วำิฏˆ� :O์๊๐TJ&%iฏ,‰๘ฤf๕ Mพเ๏–จฑ8ฅ%ถH’!A"ฟ=-ฤqdผ?•{y—ะž6OแxBjlžึo‹bb‚งC/™ศŒ €Jำ~ค'ฦ-Fฒl1พOREb-ง๋Nิ(5ม ษ€Žƒ๋ aBค‰ร่Fˆ$ižˆŒrถง-‰฿ะwรH.Lแ2&ณ|๛ื™อƒฏ๓์K๏รEpkฮฯฏ1lธ๛แ็qƒCL ๚๏มศภr ก|–g>ษ๙้’��š6ฤaIŒ†ข�ม‡ c็hUaอ k3ข&๓"‚GbH|ษเm”ยC2W๑พ๋pƒGก๘?�๓�ร_� >โ�รG<99Iฏ ๅe™“�ค๛=��S๕฿Aพฅ้}๖yใ‰ฟะ๑†น“ณุ],า‚ Z‹ขh‘m�ฒDLEะๅ?ไาฐ๔ŸK%•หeหฒEนฌขm‘ LH `A`�ฐyfgv๒ฬอทใ/๐&�๑žพ฿ฉฎ�ำ�ทร9ง฿็yพฯ7œž๓™�4/พ๘~ะ6[“�ัต‘ธZ)]=)ซ%�ม๗฿๓อ—ฟอั๑7ฎ]รZหรG'ฬฺŠ—_�6๋๓S>๖�฿ง%3ึ–ห–๓๎’W_{ux@็ภZEzŽซL๊’&7ภF๘IŠ3CI‹ั%Rด(!A8ขุR˜9Zjคะ2ฺขDึK4!]ˆ(bŠ๘0Nซฃ@J#‰@H>บŒ๊Y้B‚J„C8มง) „QฺQช›(– 7๑€‚'ฑโhbธ &Rซ9@(—•ชF ฑฬœž Z,€ภf4&ถlร 4คŽฮŸใใIฒK[ =Gเ1ขDˆ5๋xŽ ฟฃ๗Xน ึ -*.้„ง”ว˜8๙�Gอ˜rฺXซ็ฬอซx‚U–2๎ฑฯY‡ ๚ุ„KึaคŒ‚yั๒{oฝว—พ๐v๋žcSกดฆG ymbk’จJf๚n๗ุwN$6a šX๔]GaฃqรžHิถapบะ4Z‘Rภ‰@จbm™5u�ฐmF์™šRš2เๅ๛่$ฑe‰T–!ญˆaคฉฎAlˆใipDŸcƒ†awษ8๔,BjŠdIมR™.<ฤ สHŒ™S%}ผ‹’Š'>ยแ์Iถ}ค๏{Œ1cq‰|V‹Œ†Fึุ์ป#ษ๕l�ศJFœQุ�ฑ‡ๆt็yเ#[ŸY็rปฃ๓ ‹šF[ๆฆD้๏uู eยซD4อผ-™ฯๆิRฒg,{๓ณถFาล@Yๅฌzi%6fฤิเฐฆFEลฎ‘ฦ@Œผx|ฬeŠผ�ตฏ๒ฤญงฐ{ุฦ˜้’๔, หอถๅมฎร&IRŠฃถฦ่œ>S™4=S–ำ�Ž๗บ c8.,›nรNDfๅ ฉตะ\:ว�๕š]๔�œอ1Zฑ๑žuN๕๋CโศXิ�w�ท/ฅE ะz‚ฅศSŸศJ*1ํG'9ึใย• ‚`’๑ไr9ํZษำฎ4ฅฆmŸ"DMWtgฐFI i…@กิ“ ั_‚C้)ฌ'่rœœั )Mำพ๐ภข"ฦ€๗ป‰�k7๛�#WNN\)kธ3— Šอรหfฦ๙๔๕๘ภฤ%ME]Nม#าฮ0'‚II)็–KฉPส?&ีpeัI†ฤ๓ฆ+z่ฆฟ%)ฤด<มฏQ“RKLKbฺวGCJPZ›็ศr6A†€|˜‘ซŸ]ˆi‘ ญ2กดœ4ไ7f‰‘`ฌๅ๖หภ๖๖ห<๕กQ–J9ฦณsš™ๆฉO}’jqทa๑Cวๆโ'Žž�$ฏฝSrใๆ1mkถ๗่7oฃํ‚tฑ@&ƒิk*�Hข"kbIr;โฐ!a@j„1“E๊xYgทฟ�๖�๒_๓ฯ๑Wฑeอkฏ}‡ท฿ปร3�/|ไจขๅม�{Œ�ญ3„ฅœž>ไฯ�…?วณฯ>�˜ผ™ักIY1A๖)Dโิ4H“อ|�ั�๐Ox๓อื98:ฬัท๚~ ๏zBŒ<|tฮ�เง™-H9ษ0qŒ� sฐว้ษ[ซY๎ั‡žZhnอๆ8Rk”ฮ™œ#1”ฒภจ—:ฌHณ�J,!ู‚7—uำbศ๗YŒฤด&าgดŠ|๓]8ฯNq๙ืญk ต$‰ผง3ฒศฒลจqแ"งฉ!=R$ฌxEN† q‡แIDชKwI"aไœ˜2WEI›QคTขf๐'ถ96tzึขุbฤ~fE‡ R$v)›ผ’R%Jืx)HJ`ัค, ฒAŠAฯ.ฌ๒YBHซ%c2TAฐ๓๗ข$†M–ทNVฑ หeะ Q๑ ผฑsP%เจX’d`ฝs�หฯ}ƒป๏Qฺ†}cจดB'ฐ1ัKP)a?๕ *E’ ! ฌf๐‘ญsุสฒ Ž‘žขtเP-ุhลQU2-JvJฐ<<คช๖9ฌ็�zิ฿๛ป?�’-Mฎฟแ๑�๚=๔ษา็ฬP—dฆ๒วR&“M�RH@ค0KฤธรปŽัAŒๅdxq’ศขBคมzšธ]ถีTy๚ฮd–]†๎1 ึำไ:ู…ฆ)XM„บ+่<็ฏ^ฝ.'9‰‰ >๔D.6ฯzเ+(=๓ัง=ฉH1 ๙ะWML6ฏนบ>‰-PI].ิq$†5)žNoAJ+`›™๊r๒—9 $%s ็*ท๐ก&aฑฦไ๐ŠIn#ฏ~†้พI™ใ33tž๏ง๚#†3WHB6Lษ๗_ชl�*evyป๓ํ?เม๋ฟรญ็^D่\๔พ๗>ฆxโ#ฯ#๕)4ร๎‚เป�cไศท฿ีดวแCyžะฏHแ!qธภ๛šbฑ„q…)j”.บ€]\C่„๐[Rtคdv6อdžCnฌr�ฃŠ’�ๅ†�ใ๑_๒‹Ÿ๛-f๓yฮp๊ถๆ>๑Žึพ�3?สลjว๗�ขฯx็ญ7x๎รโo�ต�ึๆ&HLF-)ฤlสข&;฿ซ #ฒชP†_๙ๅฯ๑ฺซoP†ฒฌ่†ฃ >&Bp }วมม�ฤง๑nศฯP‚Bๅง่อปw@Yš�หขยŽ…Vhm2กQhฅ)ศ&>�ธf๔#ŽฺดำEฃi\‡‹+\:G` )'๎U „GHH#’ก<(Aฉ๗ขหMถ: ค !๖ธp‰sดฐŒ้!Zี๘ธA&•=ะฝ&„žฤˆ‹gู-MŒ์�;8P๊HrwLƒคw+RPธธฦณฮฑยR U‰•ๅิ”@ afDJ กะ"ะ j)สlขยŽJXz†‹5ตุ‡tFH eM/=V6$v๔N’ยศศCšL‚"ค”9’’>–$‘่qX-9+*๙ตhˆ"ัP Lล/�ฮ๙฿๘ต‡ฃy‹๖nัFณ%ฑ๎”Hถ5ถ0ิuลA]qโ�ฎg +ฦจVQ‚gTษ�ฮ9 Ž�Bpฃช™›ห๙œธ_`g-7ชcŽlAญg0nW์5๛ฤจs“6ฦ]‰าY)๊ฆก*๖i๊†ัCjจ•ฆ)3ฮrฐื’‚B%รฌnH^Pี %” ฌ65ศ…ุB“d &ฑeY=ƒQ5ม{๚แ’ฮฑ_ณืฬ}�}ืฅe๐๎q๖ฤฆ๏J1Ž[ŠาpTXฎ%ฯfณแ}cX‰ศว�†}้QRขDCk+F™PZ†๏ใ IRQˆRค-ฦ€-Z5ํตB๔๘Xฮgด•Bu1ฃฉ๛6ฃMฦฮY,Žฉ๋}ีฌๅฦำcฑhฑฦPU๖QPŠ๋๛Kd]๑+ฟ๙›ฤขยkออฆฆP ?&Vก็ม0`eIOโฐฌY=ฅ‘\ =ส๘)ฮ๚rปAiร๕ถฅ0‚e]ฃัดถbฎ4จ|ํ�~วqQpoXw=ฃ9(J*ญ8๕ำ๓็^*ฌฮ,ํI*•Y�๓๚๊ะ„\Œษ:jำแ?น€M•?ดSA|<™วฬ�VฦR”7)Š›”ๅ b,]‡”Š"-ตฬึญย#T…P#B4@N๕BtูKY(เ2งœฅ‰ก>๙˜็(ศ)๐Bš _}#SมBLล ˜ษ˜๖ม๙ภหึชjšš!*ศ„ฒˆฯ~Sแํ?fฑCŠ˜งกPา#ฤenLD †‡S � ฐฑ™๖๘u&ๆ1B๊@ฬ่ถ#ฝ“ o‘RT:›ฤL Fบ2ด™๎c&eGนซ๕ศีวฒ‰MJเœฯw5‘รXBฤh…6 )@*รํ๏|‹๛ฏ�.‡ืJsy็๋‹{ตไ๘…ใ'Xโถ‰ๆ‹%๗9ิแ็ำ์วqdw๒e\��jห-ณ๖�]ัw[๎็๛0nฺ ห9าถ9ำ{B @@S�-„ม๓Ÿ�gŸ๑ฏ…›7oSfˆ ตไห_�=พ๔ฅ/๓ฏ~•�oฝส“O=มุt๋ํrษ๙๘฿๓ิฬ<ีeถอื�j�1…ฮ2SXŽHำ๒๒ห฿โห๐‡,๖1ฦ�HHญ ๗๎�ม˜‚ำG๘๔๗~œถi๑�ใw่๛sฦqว;๏?โแฆวีฺ*vใศC6H‘‘‡nหRืฅฉCช˜C๓b•))\่ัฦธAา`u…ิaraหฆ-Š๎Sฤ๛-R๑a…– ค(‘ษา†1vZฬi คZfโi"aฤAถa๕ุนwQฒ`ˆท‘ขฤจN<ฤส๋h5cไ"7 ขšP.GH>Ÿ! ต•‹์จ–’91)tœ|„GศšA8คศอผ6แ‚‘ศ='aPDอE�!t…ีธค % bƒghu-็6๘+sjOE`†๙Z$•œณ‹ U”๘ธe;Šw/ึ�๗�ไ7ะล6„9w ˆRณิš�ชยXรa�P–A‰|๏ส+q€yYฐ็r ›.ฉ‘%J[Vc‡’U์™'หถกถะ๗Žy=ฃฐ3๚ฎG‘ถ>•U4UI[RO`Š‚q ุยา6Rฎ)(hŠ–yน สฎnq€ยe‰ๆ(ุž(…7žำ๕#!ZJ�œatคงwkฌกTyฏ~ธ˜s}Ÿใ๙‚ฝฆ%ฅ�sฎG*Aeจตเrฝแ|ปมhลณR“‚ใTฌI@Y›�ฟฝว=ƒ‡ฬดƒ4ข]Š#B *Q>!ญ&8,+ฎอฎฯะึเโšYฉ›D%y๖ษOขฅ`^Jฌี\ฟ๕,อโˆnุขDย˜!ณฑŠพ๋ึ“�แ�^๕๚ขโพ[ำXหล8rP'ฌiู รฮ๕�ชN๛‘ กif4RR*‰๎t•า�จ„Pสb”eป�๑�ๅ%า75ร8๐�w๏2‚ใบa๋=ึ[Ž›™ฃ๕S?๛ท_šทฺศl’ฒ-hœŠp&mๅ8หผ ฬลAJ™w”)เ1๋;หฝฒež๊ฆI^™)˜$ร์Rอ)ŠH%›ํˆQ[ฒ&ฝผืmถ`%หfrŽทCจ1mrใภ•Cš™&ฯ & ค4ๆ}zฬ฿฿U’๗แ๙ภพ*์i๒{O!0บ‹ฌC†ๆJ ึMqฉGช!๏E๖MOH9๊Qคˆsทqฃ็�ด#ˆบ|%›ผป–=1ฦ๓„+ำฉษ`"คๅk}uง��ี @ไ}�ฬ.ศ�9นษๅiพไไ๕ฏq๑ฮืธ๑�‡)‹‚แrอท�เ๐ึ ฎฟ๘ �ล}ty„-k’;a่F�พ;p�้๏ใ๚“/d๒T�.�๛฿ค<อม3w‚m_ค๏%B(Œ*qrำ Bgd&?Kไ็H*�3ีตด�7�็�š๘ฃฃkHกhš,—2JแCฮXF(Žฏ_g ํv’pพฺ๐ฟ๛{?ว‡Ÿ?fถ<€”ใq…ดฉW“๘4ฅ‘ฒฆW๘ˆP’ํzห/�าฏ�~�๗๏?เัฃ3ผPฆ`พ\pz๒ˆƒฝ}>๚�฿อ8vl}“„ภถ‡ฌทkพ}๛็ฆ2–�v†‚1��ฌxz๙Z–ญกฑ%ฦxลญ]ไ(]9โ&c•าL ‚CๆUHAHkˆ—VHZ|\’’(V๘0"“AQ3ธ bส$J)J=1๕hU‚tัขEฮฯถฦขฤลj%ๆHiPขAฑศ)^ม#d��BM…>็ู‹คˆ!{›็ีฦงUFจ„คOD‘๒๏™า„ช1ฒI[H‚วR3&วErxตPขฆ>)$š]ฺะ"i6มฒ =‡J0Š’1‚ลเโ†‡๎œ>l9Fูเา’–^zF้๙�/ผฦ[_}Ÿ็—๛”uล6A?Ž4&๓3สhk‹,,%ƒ็|}F{*e๒Z ๏D$ต6Eโy0:.ฦ-J๔ิJฃ‹Š3ฟๆรQนภชศพิ๏ˆฮณ_IfE)�`MMQhชย'อ่‚ุ€’8ืaิ kJt4๘~ ๏{ฺc ๊ขฦงސ:–หC*[RX‹” ณบbึdพอ่Fb”XYCฒถย๛ฃ-‘)V9FJcYฮgˆฉf^SŠˆืน€๏:d๔ดษQษฦV—} ฏ*คฬ”F%ะ!q�ฮX.Dก8ํย9”ฮฉj C๏(๋š‹%๛U…M=ZEฎอ.)�ฆฝF�>คยa›%R Šู‚๙โˆ”ฆศ)`…ฉ(ตฤˆœ2YkAฝศo}๑w)ช ๖๖i+Kฉ4๛Eเภ์‘t‰JŽ…ต��uคฏฤ�Bฌs:F JŒจ!๕ค่ใ‰ฮึน„ฆ๘PมjxJ?ษO๑>Kฎ dถ๓5บ"ฆ J5hiโCv๎5)„ X�โS‡3„ะ๘tIคCง๋h–ScJํ!™#€&’œ— ๎œ Vh–ˆคp้ญช�ฌสlู่I=ํ˜-E c(U$Ž;�ๆ’ฮดRœœโ‡ฒY D0gDQฃŒf�„ืœ�{ณ;wฉ8'่„nฦึXฃ(lƒT9CAสˆ6–ัGหš/�นรฃท�เ‰[Oณั™}NJœ๕uิ๔nG ฃ,�†™)่�ศwฮฯp"�ี5}Œy`2 ฉJ๎ …ฑV5๗w{EEJ‘‹qเH)<+%sk๐$N๛๕ำ?�ท^ฒึ|B›\C๘€จลฤdฮำ�tฆNS9LฎmB@๒Sพ*ฺyrษU สiฯำn’ฤ่ ฎ'ฆle่ย Nฮฮฉ๔{˜ขBP#๐yZV ศ;ท„”฿ฆ2มMJ;ญโำdฯสd“ –ศถŽRŒคค๒๋ �๖ฒ)ษ,p‘“ฅ๒”‰กGŠ+F~˜าีฎš…!K„OJ=‰GY/GRIษOrฑ‰h'ฒ์+ฃฐก !ัํ !=อ��Gณ๑  •ษ“wV็"ฅภL)P vJูX&��W“xพyBไY;CS?%งธ`๒ำž`๘Jq�ี/s�ี/า๎-ู^๔ฤaหv�ˆขP?;Gt—๏2nO9?9ๅtซQณ๑ฉ๙Iด6ธแ‚๓ื™ธพฒ1‹ะฆ i๖€"+์T๑๘qษ/ำ๓“๒7š’ ฌ๎๒ �่๓ตืnณ�์๐�Q•%ggง”EAˆqjๆ{๓Bœsผ�ึ;<๓�“�ง?� &๖๗Hแง@2ปcๅๆONidY๙๓ๅะถเ+_�&ฏฟ๒ ๚หGt—นqดวณฯ=รrนวvuษnทใ้็žใพ๏“0�ษlืb‰D0„ภผ�ลแ๛ึขc$Zร~cxฐ]ำ๊ŠV—เ<ฃ;e็ถ„ ัา#X๛๛$Zื”บยO๛๋Bทคค้�ภฮฝC P™kๅ‘Jd?s‚2“)!K—h1G๋fz65JY’(|ศ๖จFgค42ฆดšaฆ๗ปะแโ%‹ชFดXร”f(ณงz–บmAd_uk๖*!&ฏu!))‚ุe>VD™™ํŠ‘D!:51•ฌ8GJวŽ;Œiฬ‰p)ฑ !๖l�) E3zนย ‰3*:ผุ0ˆ ห>…ดaจฅe.ˆ์ฑษศฏ�ซ/๒๎Y%1@‰เ}fŠ;ฯvtภ่ปํฑ[SEJ'S‰9‰4ำ็/ฒำูd%ส)ซxDŠผ�A์&c–)�t"ˆำ๗ "kโ๓๕8Eศ˜ถ*ฦกb Oัฮžอปhqฅ ศ!*WHG^e$Bศ˜)yMMคฏซ:˜�ึs#&คx,+หu)ฝ่Lเหt#>:��ฺ็ธผ๛*G7žว๕q}ฮz�ฝร๛O ๑ึ็ƒโr'hๆทธ๕ยgPฦ ์ โH๊฿Aศ’๊๐ใTmM5ปษ๖rGŠ["lฐ‰ต{ล O)0๎N!DD๒�{๓๙ล฿�C๎>บ`sนม๛ภฎ๏9?ฝ˜TŠฎ๋2+|่�ภ;๗)ชŠฟ๗w�O�˜แผงต(Uขmญฒ=ญP6๛่)e๏ช้‘ฅsฤซา’ชก•ๅ�ีฟ"ฤศบ๋9?{ศู้Zภู้Cบฎใ“Ÿ๘$Ÿ๘ž0ฎ฿gป>%‰@ฬ๊Eiท�่Yฬๆ์์แ‡… *,‹}‹ตฅ}P(q€1s|ฬgธO=Jvู/ eฯx0h!HDด,๚เ�_ฌ ฮแย*R˜†่-EตODQUyฟ… ,kLQf)hŒ„ฮ ๔}—ื}ึ"…  ู๚|ฯ++)D@ ‡’ kjŒ*ˆฃgvl อn่จโศแฌECเƒงึฦใฝ'"pฺu$[าปž4n˜ีŠๅฌ%ฅ e\sผ8ขชgH๏8y๐.ฅิ(�ฆงP ำ.Xฬ็XS‚#ช็๏‘T B!E�…ญฑึ๒๋๏ผC<ฟเฃฯฟภฌ™s9t[ ญeHŠงฺ=”\3–1ข€ญRรvฦ›5 ๐Rfืพ�ชา๛\ไผุ๋Ž#sc1Zrs1วIA)›P|๕w�“Ÿฉ,‹vaB€ฑš4มจ™€›™หRๆr.8ำ$'>€…ูo๘qแžา)>žฏ&ฟ\฿9๛{šเ‘Tล——kb๖”4(„œC6@Iq—ตบ"็Šงˆษ็ย„ลป5มญAY{œ๔โำื%ฐู‹=๕คRิดGฯ~๎BLฌvIŽD• ฅ\ถD๖ฺ™็ฆ€…’ ๙๓‚ž>W1ญ ๒T˜/อœฤ!,ะCฺยiv—› ๘๘4U๛fา�+•ฝ฿Cศ–ทคDˆนpว�ศ]ษZ0%ฏM —!๏บฏ€”‰/ hฅฏG๒�๛JR–ฟ฿ณw_ใแซฟฯต[ฯR5-"l.ฐผพฯ๕Ÿฃœ� Ž;๚อ%}ช๐ฉลษ'ธ�ิวั~nหkฟ๛ (ำ�dีRึ )0šู่†”q์ˆ>O6คD๔C†ฐƒฃ?ถงฌ๛ศฏ�›ฏ๓่ัš~่Fวะ๗Hm(ช†„gป๋่†\ฤOฯฯฑUล฿�O–๏�่1yŽฎ3[ดtป@;฿๛เ�ศ"ว—ฦ�H0้ไ“ŸโA'‚[G๓%Ÿ��็y๛ญ7™ทsb “ี�่H$>๕ษ๓CŸ๙Aย๐ˆฑป Qล—�†oผ�กjHJ1oๆuI?$Œ�˜ฯู/—H]1/ฎaดDh…ีhั`'หิev9Kž”๊ฤ ฯFฟย‡�o๑1ณฮฅ,ฒ?๙๔�™๘ฤฤัiGdƒาญgy•$.ž‘) ŒสะบJๅ$ๅฑb†L KยO้g– i21๊ฝฦ….gิGฯz|๒๏” ฏ๓„$ ล6uh,B•h!]E๊Z�๕ Oƒกˆ3<Іณ82O+ะ2ะ๛—~Gˆ=ร:Ž-ˆ{ขfว%๗ย=ŽTA%งaไฑใ?็ษขไk_|›ำ๗Vฬšฦ,ซ’ฒ(Cค‰ถ() ฤฑงิ O@y‡ท๔2า๏ถxก มฑ‰ž‹3ฅ)Š;ฌq9'ผhY(๐cึผฯ )0มัง@7กB.F6�@ฅ3œ?ธ ใ(PTธPฑ๊#n๔DB๕ nCQ• ๏>FŒะนx๊’ถ=ภ๕Rส L!้GOiZสฒฬiif†1Iไsi�.ฑE5!S1ล+kญQส`ญE’WS�ะฑ�mS$xG@าถI็`ฅข™sG†ไYV-ธ† มm)„ขn•—งDืณUm+๖–,-๛ึr�เ bุ`ฒฆถ\>|‹�ูŠ�ฃป์†1kืmb�‰ง)หLB5eK๒€ท˜าิ ฅU•๋*ฅ๘ย�ผs๏./.ฐMล=•)จดe็%;็ฑ)าJจหŠํ80›tๅฝ Dฮป-‹ฒโ‰ฝ%ญ.ุ…ภ6no6i(ญea-ซเyก!}&้f~ ฤัก~ๆg๎ฅบ.๓พ{bfK‘งธ„ธZA"ฆin\#Sว&์‘(‘๓ฯ๐ไ๛์ฮ฿ย˜’w฿Ÿฏ��๏qดฬฏ“dอ๊�;ด‡Oแ@ืsRม#l;1เ%สTจขB�†่สู’ณพโ+_�—็]`ื๏๚e4�f )ฑูํ่๛žอvเ/�๙็ณ?๚)’ Xkะ�8’ฒำ4JGbtฑjj|ค$…LdL"s8„”๗๒Mำ๒๖ปท๙โฟ )ะ4-ฮ9๚./�{>๛ใ?ศGžญq›๛TUCั#‹†1๔|ๅอทนิšงŽ้ป" 2กฅ`มšŠห�Ž.ฎ™-•šก)1Jะน.FB’ธ˜ำ๛๚xJL๙๛Kยclภช ซŽั:"…Fหš€CงynLโ@ฤgT(Q!TBซจ1bN[ ข๕ ญ๊ผ J"*1žขา �ธAษœI-”$2—ค”ทXโ*•t้&ิ$ส‘BฮrGiE ริ(Œ1ŸiฬฏK™ jสf*Rไi฿ภไ%ฎ,`‘“แสไ"d๖ŸŠ<2„˜ๅี”Hฉ'ฆ.ง=ฅLด่้:ŒคtA็ ฟ…ิNrขึฤtŸ”@ฉร A๔ป\๘0๓ežธค”(‘Y๒W“Ÿ”j’…ๅK‘‘< yีŒ\�รIื?5Z™่wตวอ’ณœsž�R9;ธ“y‚วุ’ณปฏq๏ๅ฿ฆm9ปฦ๛/ฟŠ ;๖žผฦl)8{�›™•,ซKวลฎโฉ๏๙3\ฟu‘$รๆ!ฺฟI{Tน๙]?@พ%ฉSแFGYๆ8Q์็ŸS0!9๎SJE๊ึุ๙œ�{‡ท�xท฿ฝร๊๒‚ %EŒ!ม;ึ๋5�ฎgp#Ÿ�ไว๙[?๓YšถGkƒS$ส&“Tผิ๓ร|MB˜ž Mšบื ซ›ผ—กาๆํ‚_๛�็ุl69์ม่ฦ้9Š�O�ฬ�„ksฯ๖๔uขj(ๆฯ`Œeพ�๖�ผตฺข€u฿#คi '็งtฎcfKN‡sชขไจ> 2’dOiสŒ(…ต%R(FฟฦงRๅฐกR๔T๒‰�๓ชšณ]ฏQ5ZU<-Š -JB๊ ”9ส๏ฉมงž1ž`ๅ<็ึ“ฐช˜ผฮ5.žฒsท3#›-WS^e(]L^�–Rฬฏจด„ลึไu˜GQ่‚g\„;(,]�RQข˜1คID†hฤ@‘. Ї�œGพC นLP ฐ""ๅ€T5ฃ44 fฒdว@’‰ฅั์ู}’> tาTBฐNŽ2V๘ yฯฝOc_๋๏�๚[์้L�\9G‰$๙‘ีvGซq์\Šˆ่0$ไธก๐:'�™ฒFT aึฐ0%ญ2H7 'NJ็a7 ข ึแโrCTฐGฦฎG #ต€ฒฎY‰4Žฌถ}^%ศ’ƒƒCบ� ๕ฌฅฒ*ด^{ ๒‘hซ9๓zFm$ฺฮ(l’ศ63าี�BH„PฦะฬŽ่บ-2H]โBยys๓ูจดฆฉ�)zYeี…-hšสXb”EM c Šฒ&Fฯ8zบัQ5‡Z l�ˆ,ฺY‹ื“!jกRd>?ภhล๒ e^ฒ,ว{ืYVŠรใ็ฐฆ!…5…ญะJใฦŽq7โw ฿_ะo;�เธy๋7Ÿ}iๆฉ๐�9Vๆ็w่/:“ษ"็=ฝิEษื>เ�[oqtํฑษ$ฟƒrฮˆเ…fฦ^ำ m&ฏGฯq3็ฐiธˆ -VjๆEอjp�,[ฦเ9ู^PhKเยž*-2E�ุฎน�๕œyO+5�0P‹๚�๒Oฟดทh‰1แฆะ†œ• ศี$ ง ํ+้Uฎ„bšN๒ำ(D..ˆ<ัˆซฐqU�๓ิ›ซ”สฌiฉจส9›.งt5ึ’A"ๆ.7Fณlณ qุ’„‚8‚ฒHยใ0ษ(Rศล—ไH)ร@๐.OฮใRs„็ข’Ÿb๓พ9†‡”F”j1N…�็]hซiว]็@ีนŠฦ งH๙)ขมืœožฅ™-ฑz*ิ";ฦๅ •,ลI้ ˜œŠ๓ีŽ๛J็�ม๗N�%Œ9-_ๆผ๓ฮัง~—2'ซฅ้cBHŒcnฒคT�}๋e~๓ ”บข�fฐrูะ์G๖ฏPุšบ= O/1‡?มง๔O!D@W‡ค๎w�๘CNNฮqnวlq„––ๅ“/0ŒŠfพHL– ฉ u๘~•‰MB2nW`j$Ž�ู[�~ะ๓๕o~‹ม็n$~J�JHA ผ๓�•ฟ�|๖฿๚‚�กuEYง๏=‰€-f•ะL(ฤฯ/"7šiฺษOซˆ0Ž์ํ๓ีoผฬฏ}‡n˜˜๊1ฐ]_rํฦ5~๊ฏ�%ฝ๑›ˆโˆf�y„ถ™Xฉ4o�{ภฉ6luโp9gํ{nฮ๗้บ,tาaๆZuDฅ4ศˆกค’5Vi„Jจ()ด%ศ•ฬไ!�๘–ไ-@Šš€รฅs K\8\ฺแ�ˆ๏'tR็มฎจๆ4ํŒข˜‘Tษ0x +สฒ�๔e‰ึ*oš†เฒmnšJA๐Ž<ฅญ)JK[ทฤ)ถูุ‚1ee@้Šrถวzwษ�ม-ๆ‹}Œ ใ%ต0,+K‘eู๐ฤS/Rต-ตI์ํ_งฌ ๆหHvtc‡’‘่/1QTs"™ ท฿ฅ,eำาฮ9บqศโฦ-ดiq—o ว3สฒEy'ˆ”…E๊†n์ู9O%bเตำS๖eโึ“7IฉโZaฉM‹‰>Fm๐jฅ้B ัŠ๗W็hฉจ‘\v;ขœuฮบว๕ŒๅbNฃ5']ฯฌฎPฺฐ‚Jjmมูะ37๕7�๖ฯฟดœืำิšู‚Rf[Uk 2›p‚mี$ื"ƒŒู %์™P•฿‘ฅำLPzฦeงw\ˆt<งv!t^“ห„ี'—fMถ"�RD‡sBq�ำ†ข๗ ฌP"๏ฌย๓N[V„0’โU˜Hแ๒n[*)็ \~ฬ€–ู 5๚ย€—W๘ณฌซ•!‹้ฅšุ๏ B,3,‹ฬฮmฌ แษŸfˆ- ฤฐeGฮV‡ดณ'i*s9’4Mฦ*๙:f6๙ี "ฦgRŠคHnภ_า�p(ฅ:฿3ญณŽR2';‘ป0}ึ"�g�ื|? รทพ�ปœฟ�Uฎ1[2ฌฯูŽ็,ฎYŽn�<ฺj'๘๖[O�ฤOณทฟGr›Lุš?ฯะ๕ผ๛๚+ฌNOhํšๅ“EีฯขU…ึ†0์ˆaD›mTฝหkฟ<��๖Œอรืhže๏ ๅญ๗๏ry~žcW…ฅ)‹Iหmษพ๋C/๐ท�ๆQhIksธ™ึ’qุ"uฮŸ7z†ิลd/:ๅฤ�๐ฎbgัO„ฦ)ผj./ถ|�ท� eYฃM–โญื~ๆฏ�U~ไ๛žf์ฮRcซ9e=Gi‹’๐๛oฝอZkฎ๎๓��5๊บฦEIฉUกhซZVT”LนAIžRl�)2ๆ๛H”sกU%ˆ=ฯฝมวศเ.�€ใ))#ฦ“ltม˜v„4N๋˜ฅ AŒ(Qbๅ’f็฿JคะHQเำึ”๊ฤ'‡#ๅ฿‰ดd Žัo๐�.Š‚vt1kดK5 T‘ฝ�q๔"`I lsžดš32 ิสPt)หอd*น฿A`ัะใY‹ŽJ4่่Q)ฏ–V1 BŸล"ษำงZT๔qหฉ)Z.“fˆะI!dM-,ฝดœงžค-็;๎~�>uYcฅ`ooษ^™ญ ญ1‡5J"Sฤ =ใv;#สF็๑dหฯm„ฒ,(หŠKฃ™Kร8์Xyฯั|aุฮฯ3ท l˜7s%PB>NlkC%2\FAupDัฬนGzSR{ฌ/zR(g๛๔�]฿ำถืp#”eรb6#๙>#Vq‡Oฅ+dชPBbขš!•EK…ฒ ‰-,า4 ^ผงฌrZ\J๏�่่๚Ž]ฟร๕cvิ†aQR1ŒEY •แrณd๖๑'0[์S4K๗๖˜อ๖�3›WDทฃฑ‡$ฉ้ถ็�BŠŽช6,g3ๆณ}๚‹ื)๋#ข?G๊ฉ$cw†P [,ฉOำ๗ิVS‰๋NัJR75ี�แ฿งm(E‹ižDชk็ศ”0:๛ำป่ภT กPš฿~๛m†“ื‘ฦ’CE!QH๐$ถ1Q)‰’Šย(B๔��œ๒�b1Enฏฯ1!!ดข. vฎyE|tฑ‡$Q • ๅFฮปžฮyิฯ�๕�๘ฅถฮ{ ˜ฏฆ]ฑ9หุ‡„šd iาƒ_ษšฒzฎลู๋6kภ3ำ4Cณ ธศ‚Dž๓ิ7้Žฏ2บSfm…ฤ’หี†ƒลd๑9fศ=…ุ_ ํ! 2 HU"ัฦœ%žrไฆฉŠIW>Nล4O™จฅ3ษ 3ษklŽฌ$š๒6๛สL#Oีค„Rj‚นrC–ˆd—6ม8�(x๙>ธx“นžฑ[ �y๋Mtญ™_K,Zˆ‰z6ใ๖ƒ‘๙?�c�.ฑ;a๗�os๑ๆoณพ�าุกm€ธEงžร็˜�jƒ๋2lN‘้aZTูLŽ[@ถF ~`��G”s„ะ<๙์ &‰sฦธEˆ–$Axึb (ว์ห‚1ญฑq b”5ฟ!*ลฝo_๐ส็฿คิ‘yอL�8ฐํฒ๏CีTิ�nรษลปณ ใŽต‰ร# ปํ[อะ๛‡คYCด–0kจ‡๚ํืQCOู,ˆZภ.ณิ3)ฌvั=3+‘ฮ3:ุ:,Zฌี�?yDDอ oฏ{6ม1+Jโเฑถลš"ว‡NrS)ea)l‰ึ3†!'<šขษ^B’Di@U$e‰>;SF$qฺ K“ีDป�–�nƒ‘$$u�d›ิUƒ’ฆi)LFกvใ@a ดH4๓=LQไTฐปAQDฺู1ษ_Rศƒฅ๒,๗nฑ<ผFUŒาูฆิ]2ง์.^งœ฿ค(Œ~‡ญ๗™|JV๘อ[$3งT†พ;ว6%#†[฿๕If•คj0อ1ถšแ‡๕c5ސ ็#}ฑ ฺT)(คเ›๑สWพ uEฑW1ำ%ฏŸ\Rj”‰m์yaถGcB%ขิ%‚ฝขๅZ�r2๔จฤฤฺy†”8.+๚˜ฦ๛eษj๐�sgตยƒ๕ท�“Ÿษช<๕jฃ1VcŒ๚ XOพุW“xˆฅ2ด(ๅัk*6"๏z˜’ญ2šวฎgy๚พ๚“ นำ฿฿,Z"D‰‰าJœ$Œ>ลš ’๋z ศดA5$ื“บ „ฒ9 #ŒH�>f่ฆ่๒!V๙๛ˆร๔@ค0L$ฎผŸC ฤ86�˜†nŠ๕$ว|ฆ†ะ= ๚‡•†ˆ; ห๐~&ถr$ฦหผฏ–Š่GRtูN-ะ๚ˆ%ซ๕1e๓�,็ฒ%๋ธs!ฏตyฟ”ฌ\ˆSส ฯีŠCสฎnๆ,Lr3>ฐJ�€ƒ›ตbfy๛�จ‡@py7๎|ไฏ��๛ฏฐ7�ฃœ/W[ค1Kุฟ>Gˆภ0��ท?๘ูฟส�Aห๖แk๔็o#‹9รnรๅ�ืุ� )Kdะพ๐CH6์VgิuIั^Cท7มm {ˆ,ˆโจภ๗„�"์(็7@Xถwฟยมแu�เ+/s๛๎ 1ฤ้bK�ึซฌO6—่ŠšฝชฅJ‰ะe={Jpแก฿ํ˜+hKร[wฐu‘�0ฒF.{‡๗'ฎณ‰;งภ\5;ฉ(๚Žฒl˜อf๙<™†๙xฅ™ๅ‘!e )ันH cŒ๔ฃฯ#ฉคู้๗)ขตฅฉ*œwูธ%””ิUMU•S๚bษD}ฦช์๑O ิณ9eYR”%"bญiƒิyภ0ถมpใ–ขh˜U ๕�&๓ๅFKlaP"ฃhบฺร– Šb™] MEŠ#uั"v๏า๗'ล k่Rกtdนฌ9พ๑ั] อŒ~wJ ก �ธ" ชฆ:tQกl aดษ๖ฐZ๑๛oพอA๐ฬž~ŠMŒlBย*หZCก [๏Qย3ฦDฅuฮ�‘BHึ.`ฌe{U�"ˆ˜Iล+็8zœ๙Œท†3?PYK* ๊ฏ�๕Ÿ{ฉญ's‡ษ๘JJž๒มsสฬ๔ฌ�พ"S]ํฑ?˜ฎ•TH™ฯW‡�{๑iฬ๛ ฦ<†ิI){’OŸ?kษe†ลˆต›.aนK �ฬ|•3„ฑ$aH~G–ะm‰qาฃ!ฆ3๙  โxŠ4B)‚;#า\F ขd“ฤbศ๑ aฒ ๙Gูฃ]dยN์�4ข์lฺ�f20 RํHq™ฝบศผฅ0ฆศ{า๎ช�m=›*๎ีล™ฎรTd๓ตฮ๖ถrฺ‹C.ฐแŠ….$1eญ7d�‚๗ูง๒^;Nf Wป๓ฌqŸ’i฿cสpต๓์vฺX๎ฟ๑N�๚*•ดธฎCบ@ฟ�๒ฤ‡*Žž|พ๑๊๚ฦฟวg~ไGIร ig4Gข(lึG.žแ+฿z•�๏=`ป๎น๙�๓์]{ ?vิห9็\•ธอ]โ8’&‰’ธฝ‹ป|›�๙ gฏ „q vIYืผ๚๚�|็�4หใ82์ึฤ$(ๆ‹?๙g”'ou๚uำ GมะuDัR7%—™ไ–ศคสษ=๙@๔ูผG(I1๋ZevU2ฦ๒๒ห฿ๆ๗พ๐R�ะ๛ �๋?����_A„B่๊]ด$r#uพY๓อ�๏q_X �pyq†า’ฝู’�รQa)คaฏ˜c„ย%‡5ู๒5&ฐยRยสมศ่ื๙�:?)$!Œ™sไ}ŒD1เำ9)Xz‚H’yyˆฯ†ส์aU†ศ“1ชศษyI`MR1*ŒhAuฑ E …Œ5:ตxเารœŽฬ�ิโ๏้ฝgŒ‘!ํ๐$d*Qฉan…ร!ูaะ:�ย>aๅ>•(Pjอ~UขลœQฮbรš"9Œนค‚.ด์ยภB6Hsก‡  )pแ;|2ฌว3๎นqI5ง๑”=�ณฐืธ›Fบฐย้ภ�ป—ผ�๏Rฺ ฅsญ"xไ„b‰ˆฮ1ทก-1F‚V,ฎ=*Z๔l†ฎ*ฅ1ฆค‹pqฑf<{ˆ‚ิ˜�Cฎ�|1๖Thv.`EJEpฑ�ฌ{O`๏เ€T6tcFkฉุlถฌป-ป~ไฒhlลสจ8ฎ,ฦๆL๎Fœ๗()ฐFƒา์๚k ฺ๙^ฎฺ T†ฟญ)(ฬไ2' ถจ0สPEๆ…คษ[gRฅwู๏�หฆ�"Rภ{G ม๙|2šบn(lมro-Jสฒคnj0บXะฬฑ*๓}ๆ๛ทะeMaKชv6๓ฌ™š่�1ๅา€’k T�†Gฺ`U"๔+”*๐ฮณ>ปC]qt|ƒn๕-”– ซ‡ฌOr~๒>มoจgวๅ$[ฃ๋Œ>ว@ m4ฟ�่„ํ�;.ุŸ-ณ|p��nxbVฒŽ‘เ=ถhaูSšฮ๗ฉ9๏GซŠสjnฮfธ˜จฆgmใ=๓ขค)+P‚$ฒ�ทTŠRg™ณ๚�ฃŸ}iนจ3‘™๖ง™•฿ีIY Žศ6…0™d‚•HnSE“๏ธ€\งข�s�Uๅธ*์W๒�…ไCไรX‚ณฤิaไA* ยูศ>Uฤ0`ชผ‡PR#โ]Zdค‘Hฆ�ตžๅ/ทU 4H™ฒ=ช!Y––’ ‚d ฑCจ9R๏#ย าิHญภ�ฯฅฎs&น”ค�๛0lI�„�#๑�dฺ6�%Z?OQิrFGyฟ-&6“�|; .‡LžๆนPซs9๙ฒ_๕Dj’”…s๑N)[&ZƒH7~0น3M็$๐>1Ž>{แ AJŠ;ฏ�!แ๔Fภษ{wัDNWง=]sใ™kœ?:แี{ื๘์ฟ�ท(Lศ.Z1q๗ญ/sqzส๙ษ๎ผ๓uz?2ฤ‚n�sxXs๔ฤ‹"E=ฃ;๙6ัๅU”ฮซ‘0 �91t$2ฌ;{ำ�@แ(žขฌ๙า๏็_xŽ#g็Tอ ฉMS๑๏�;œรƒ9J;bศ่’ใŠ~—0…ค( Rค,ัzNFฮ\ฐ:ฝ€ณัญ5จฒส“ฆญJ!|ศฟeE๐‘_๙�o2฿k๙cŸX๐‰”ฬ›ส๖ Ly€ฉ3ห1Nึ+พ๐ฺ๋Œอืส†๓ีŠ ,eƒ žอธฃ oœ:฿ั๙Sdส:i)%Vิ„”iภ…}�`ี^œ#„งดsดQxถNื-Zf ฒN=Bš0i“ื1"G~&้ฉฦศ%คˆ'ณส5ฑีฝ‡_qwฤTb“ฦ…-ŽMN \ D™#/รšmธ@0ฒ‹•>Dˆศ}๗:ฺ4YใP”ชๆHYฝW9FF�ฑ/ฎsถ>]“ *=คJž*=ลสญPQ!ๅ’ZVDปธAFม6๎่ร&�~Dล&B่i๔ŽึฬYล–•ฉดGล้Wp๙ส)ื–,็3dYฐX. !ฐํ;BH๐ฮแlษ 5ฉ(IึๆุิD%ุ๙์(i…Bึ–hำคฅ|แปx๒ฦSคอV*ขRิe…•‚e]0„l‚Rท5Cl}bป� “gื ์|bใ#็๋-> tีโ}ค฿t)I[5”MKŒ=uu�ฅB‘”กฉk๊บย5�{˜Šฐ25Fg…P&:gKๆพ๋!erณ๓m ฅ)ฑ…ฅ,‹ล,5ฃsธ1๕l55Wไhฅสย0Ÿฯ(‹*๓ สkŠ),ฅ@าgฟ๕ขbุ�…ะS \่QฦP†’M=ว–{X1‚_กL‹ฑ5~8ลก ฒฤ๕+–ห9‹�=ยๆอ�๓ๅŒGoผ๏eปว�ัำ„4Rุ!e‡ฝ„&†ศเปัaฅไ๋› ๏ผ๖บึ˜รฌ*hห–ท7�ช วeCฒ >๛๒ป.&f{9ำ€ฤฺุV $KSฐzBˆX)ุ:‡H I"ˆ„A0๕S?๓s/•F“ศzแฺ(†1ฉไdล™๗ฑ™๙œกU?ใ+๘๛J๓อ$กแ๑D๙xฬgค zฯc6น๚8ศ’ณฬึ-ะZRซตรธ{ฝ# „hPๅi๓ gf�ย๏1‹ * ษ๎g"๏ฑ‰Bš์=๛\๐d�ฯH!39mสถ Hnšศ‰$Ÿฃ่D�ผ&a2กLิโxN7ฤ๎ม{DaภJ’ุ‘P๘P3Ž7‘๊YŠขษฟ�.fึ็•_๙ไIu}”สMžฅ'ฦ8ู๓๛*ฯ;11ำฅz�oSฬ&�WR30M�!ลษ-แ'�ฆนนะฺLD9ˆQ๐ฮทพฤษทพD์.xpฒมฦD–7J๖๗FพsงเcŸ�ฯx๚ู'ป'บๅัeโ�ชฤ”{ผ๓๎[”…ไ`)yๆนg)7I๎B@$=m๗๒ืื   คma{ฺู0ป๕ฅiฐež๊33D2O็F]ฎ๙๚�Gฌ…ขิ’ƒๅ•)0 ��SXK$bฌขT/>yๆๅœYนภšDdหฮญ่Cd^์Q่šยf]๛D9E$…Ly’Ž๔!P2Obน‰ค$� •3ภSB’#6‡x–ํ‡ฅฬ�Nๆะปุ1ฦ-ˆ>?ทขGณ$ศค็2n™้† :#RX|,8I;"‹A*K“n0บst*YPbb4ง๖ฅa›Fp้�Šu์QI`ยฝชลœ.6œ๖�Xฐ Žเvg™F\ผ 6 ตญX˜%วฑK;ถัSล&žbEหนx๏ื฿ๆโ�G๛K๚‹}„”\n6-�3=ฮ9ข’จฒฆhZ”ฑจฒf3v˜๙c-ํ�3Ÿ#Q๔COั;ฺฒfJJิn‹๐ฟูโ&rชwBภv7pู˜*;ิ]๎vt�ภ`L‚G›AdขX,VีŒ•‹ฬห‚~72Ž#ฯ?๙$๓ถ™ะท์*V%‰ผธ"ธฦƒH”ฮ+EST(cง็W1:๓แฑ+คm u]าถ-Jๆ�c สชย๊ฌnAd9YQdŸ1&'ฟ™œlฆตฮ๊)ฑ:m•ฬผ>ฦ‰~ ็$Yf[`‘ช ๚ ๊jFY6”ถ$F1‹๙ฐ๕u๐b๐ฌW๗)ญกฎJ๛7ัแ"3ํ‚~ุ๒อ?�ฎิsหlQ •E™ถ�หซRฉู #}สล*8ฯ7ON๙ึซ฿แZฅู{๊&RkŽ IST@คดš$x~qศฦ9yบ^ะ‡ฤ{ป-3m้'าฒ‘Uื3ฤศ&D‚1A%%]ฟใแzอQQฐGิฯ�ตฟ�RUXS่ไ๖%ตฦš์ฮฆ”BJ๑�ทYG•ee“์*ปw]จ2k๒ƒb>i’ฅ˜Šฆ๘ ่๓GwใW•>3ค๓+D๊๑^B่ั< ธ‘ษ;„ฟ$‰€P%ฤŽ˜D6ด๐�ษแM@ุ‚(ˆฎ'โjžoˆ ๋ตI“ญj„h2ฑ ฑƒดžX่a„๕4}%โpBŠ=ก?%บs’HพU“š Š>‡tจงโ:ฺผHQ=Giห�v™กญ Zห�ต>&ๆI<๏8๓๋Y YไดฯvฃY๛ร$›|`KœxC๏2สบ]žxcฬ…�๛ฬจ5ฺ"์ถ=ษ{ฏ}wฟ๖‡ ƒ#aธ�v!ธ~C‘lค;�_๒CโOgbaฬcฃ๐่�{ผ�ึ๛่๑.›/‘ิแ„Zฎ)ฺ,ฎ}ญ!xls„ฉ/ฟƒW(=#๖ˆnG7„๑ำ^CVว`–(›%`ZRt0[ฮy๎๙็Yญ.†‘ฝร}�7�ม_ฤช�gีA;”2HUข๔†@‹’ืx๙๋๏๐_�W�”oฟuŸข9เเษq๋น‘Tลษ๙Š�w๒Kฟ๖๋�ำ๖/x๙;๏r๛�)oฟ๗w๎<โ๋฿z•฿๛า๏S้žฟ๔?�วO_g๗เJhๆืžD sอuA”™฿๐�๙o=Zซ9mUั๕=#›q)๒์rŸy=ใ๚�‹ฎฃด%ี‚JU$…q :dZข5ฤดลŠ•ฝฟd๐gัRภ….ุ…ป”๚ซkคQขBJpฑgใ�g็Qส=H2‡PC’}fก#I"Uย๊%Zบ0าš=๚xIVษ*<%Vบ((ะ„(ฉ)ITt„ฐlำศLฬ~DFO็Oxไ!ำŒ>8.Gxc8E'อกZฐ‚ำ‹@ฺF๎‰g,dMJ[\่6[��็ �‚k2๐เๅ/0šgฉ๚ป๔wพลfำ ฦ ๓เœฟ๗pk๊ลM0Kzz/ุน‘ฒwy๗w฿@งl2า” M�pู๗ฬŒฅตห%RI’Œt1าป@a Œfฐ{Mƒ* Hฌ-(fzD๏DV็'H˜รๅzล๊bั’๋มณsž1$ฦ†Žม็คž$�่Xu=H๓9cŠศhตA(ม�rFSU<{tH[WX[ •!ธ‰-พ�al‰ัฅฮ็™” (KสชขฌjŠฒ‚|J"•สผ™่Qฺะิสจษ!2zŸ๗฿๙+„*K“ญฑTU‰O‰ํ0@ŠU‰”‚ข*ฐึ"”ค*Kชฒ@*EYH)1ฅฅฎgิอ,๓„ฅj"R-VxŸ‡ฟเปl็บฝ‘d -ย1›ํกใ ฦฑg bs�6ฒุCฯชฝง8>ฺc�6ทC• ”ิh%ับ@›ํˆ#ฅ้คเw�ฝรM7ฐผyK?PมฒœฑvOิ ษj์)„"ŠD๖e5Œผ๒เ>๛ึ ดFงDp๓แ”Yัpิึ$๗^ๆแ+฿dX�ไึrฦฃo•ๅตแูEM��]F๙)f œ�ฮ�•แ๒Qอ‰โ&eจฑป๛ธอ#Vฎฃ——ศ็ขค{๓‚�_|—ฆi8\,)uม่<•2Z3๔>B 8ภV !d ุชซh”ฺฒY]dxญYํึ9žR&F?’Š‚mˆฃcำ๗FำV—ปŽญ‹ŒฮแS@�1`ซ’aXm{B๔�B[–$>}๋&Ÿ~๊ฯ์ฑฐื๗|๘๚5ๆ™0–Rึะ7uƒ2Šฎ๏๓๔+๒ภ@JฃHBP–ำผ5>ล)ล๐๔ดm๋วNŽ!�่ฐฺ0Ž#ฃ๗D@CY”4uCU—HฃจššYำฐ�[าถMNไD_�‘“:"†!ภ่ฦlฐbคภb‚ก;a์/Izษ๙ฃฏ#ย%ณฝ๏"Œป{,?”ง้0@tฉรพ?A„ ๛๓Š็>�ใ4ณ๙„<$U"„b์32b"&‰šj›L‘_{็}.�xบ0ผ=Ij„ฬ\'GV�sฟ๏จห‚ใvA7Žฤคx๙�สขเxVS— 12k5F’ต%CทฅQ‚J œฬ ‹=๊ง~๚็^Zฮ๊\<€Cฆฯวษก+ๅ]๘•แ‡”Wฒฃ|ขณkW.$Rๅ ฎ Q�o_~€ไ3 ši'N˜|จSึ#r Hฎ๚ำฅB&7คธ$v—Hv๏™"J7จr-"t่๒Qดู*าmVf๏u""๕ีBYOนAช’#v๒d++Dˆb‰ไ"ำ5ฅ!wAทคaE’ฉHขรนGศh‰โ฿MJฯD›ุฆ!๒ƒšR�๑ฎฎฯ0dFi.เ๙ล;OŒู๘ ๛–‹ษ5“ ตฮŸ+{˜g$srคd„$๘ฌyO1kHlYAเ]ค�96›ธy๋kฟห�o~‘ถˆ$กฐŽG�’ๆลใ>๙)Fบ๎�พอป๏฿eืE�{๓[�›฿�-๓š=FTjน็kโฐcXฏp๋ปTณ= +(/ฒ;�บ˜S.žล๏nƒ๏ˆ�‡˜๖awŸ0yส7ืพ7{<‡ RD๊v/หฦBถ<๗๔5>๖๑[|์#ฯC@๊ศ{o฿งm—4sw;†1Kผ�ๆฟ�๋ศG?๒a�z๛=~�ื•_๙ๅ_ไ ฟ๕t—'�ฤO�8/|ไ{นw�„Wพ�{�ฤฟ�็๘ป?�S4*๑ึห_แ•W^fท� ซภg>} ยฮZšู ๖žว*“Z@ไbฝแ ฏ|‡ป#”ห9I&๎๎.8(4QถcŽeดบิ๑สรทyv~mทก.41ƒ(้06PˆŠR-1ึ2r†ี9AOQำ๛ Œn(๔>F•ฤ8โฃd ฉ q—๕ธ…`PฆšŒ_ฒt๔}6)Š%C:!ล#๖า!%jyŒ––>œณq‘rb`Jz.\—›**˜ซž$"}ผิKL๑่๋Œงp�็มืจ.V,;ม^๙,zXSฎ_ฆ=C]Tฮ x๕฿ฐบ}‚yโ)๎�~�~ว,}Œ๙๔งฉนเ๘้?ม O=รธ9ง“<๙ฤ’๕{ฟ‰5ฯโ'™-žfu�mบ{o�†ณณw‘~ไธบN*oR‹‚อท/น�ฺ]šบขญbtรHYู•+R l†ฏeUฒhvป-QHฦ80kZtlBGต\ขฝร ;b7โœฃจ+f �fหๅvภีŠh �!„@kอล๙ฝ๋1Vฦห๕:๏tU$zฯ๗>๛,?๖ฑ๒ั[Op}oA[7�บ~ƒ›๛\›5ูj*ภ…-จช’บช2SeยฒRšขด”…อCI"ว‚Šl๐ฅ”||6)ฅ๓ฤl r Fฺlถ ร8 ะ ใไ…žฯงฆชQZaญกi๓ชงฉซษ�ฅฆ( |๔™?Dข0v๒&ไV€ฑลc�๛ฑปฤุฃix˜ๅM`s๙6c”Eƒ๖ฐํMJ[ฦ ’Y"&‡™z�C1J"‹–ยึ„แ�ปบuฝ{<ฝ;็s` 9ymtY งYก4o}๕ l฿{ 7Œx๏QถโฤA๓๑ฯ๐‰๏�Qnฟ�๎=8ๅ;ฏฝมo�ๆop๏�}�x�๋ผ๓��|โฃ/"/{^{ๅ>฿yxฮ\บ_�ึพ๑๊ zzษly„,nเ7oS,žว”5~๛™<รล[Ÿรhฦ๕�๊าjd5ว™1’ฆ�n 1เ�Š˜zfณHJk%�pม���Kชขโ#Ÿ�ฎ[ใH""ี!ณล‚/~๙�l.ึิณ=^�๖๋œžqvzย|๕ผ�ฏ๑ง�ํ? J๑K�๒Ÿ๑์“7๘�ฏ�2�๙KŸ��?๘ผ๓�;ฬš9�ๅ๙็gŒrAปw‹ฯ� ณๆ03S „H฿|�ๅo๓๛ฏฟว K�๏‡ฬr•#$2:ส*ฮื;–ฆ&`I�SHff†ŠEmr‡อ,ม0Rš*ญ$•KhfQ!…ค๗#AL;|qaK*D†ดFiจ๔!)j†xFโF†ะ็zjPi†‹H1c@ข„ฆ—h3'ฒ!`™ู !4]X ฤS qC0Š–Zฯธ|๘€ห๗฿%žฎ˜;รasฤห}n6ซ<๛�Gธ๙�งฑjZู๊๛ณ9{ื_ฤผฦท_}…kฎไ‰ใใS฿๓ ฎ๏i–/pํฺMYฐทwใ�•๕�๘/~๗Ÿbน|‚ฐz—Eฝฯต๋฿รขบฦฒนŽ๊^๛*qsIฑ๗ o~๙Mฮœ็0!%ู B๊ชฬฦ> v�SUU…ฑš�zNaBหลo%บ฿กผว ‰A คฆ”Šฐ�r�uH7ฦžQkœ*ุใๆ’เ๋sVปƒ๗ฌ๛ฆ,†O>๗<๚๛พŸ๏�๐‡x�้งฑ“ƒ&Bbภ˜จdญEK=9น๐Œใˆั&ฏ๎”ฬ“๑$Eํป)�{R\€ศซ—&ฝ2�’”e…V*๛ชW๕DUจษ|&uSSVJ*lY`ดฮ“ฉ–ฤ”‡มยLa)Lž�ๅไุ้‚G*5นชuH2Ž[VซปŒIPVsˆ“–พh€Q9%ฬNkไ—/.๙ึ๋o๑lฉฉžzŽบœqX—•U#Šภฮ9Z3ท–“aฤ‡ศ๑lฮf nบ่FœOุ”p$Jkqรภนs์–ั$๏๐)… K๕�‡ํฅๅขษ AญะZQุ .Ÿ �+”’ู]^IœBยป\dว1d7/9ํb'ˆVN(ฦO๙ธเOล[Wษ �ุ &๏3๒Ÿ)ง ญฦญN๐� ๎rE’Š4๔ูd “�y„ไPลR&โ๎Rต{ฑรk�ธ…˜ ]่O๓ž[ืH]d้—ปศpท_e™ลšผ#‰”ฟ–�!*K#Bฟˆ*ฟeŸEk‹™์gณw๎vตฮน๙|ฐzHLฒ”้ฟ,๚#Z๎˜@Hฦ1ะํ<�็I;๗Hู.5M๖ฉRๆ=ึ0บวไฤ"CŸw\@ษdB„ฤ;O๐1KใRย9˜เฏWฟ๔yึทฟรั๑Mค*ุ3ฺ๏๙พ๏‡„ณ๗x๏Qวร“Ž/�แWนœ๒นใฐก๕#๗๏\๐๎‡ผท[ก็ว�พ{ษูษCึฃd$''ผ๚ึ ทž{Žฃ�ก๗ˆมำ=�n๗%:๚๓;Œ›s�8b๋Rท9า5 Y“*5R—ค”PฒBศˆ6-R*ŒU„8๒ฟ๑m�y๛ฯ�|‚ใk-!„บิฐทwฬ�มS�‹�kˆิ๑แ|”ล|Ÿ(%�nว+฿๚&ทžx’ื๙ว�๘�อท_~…_๛๕ฯ๓๐๔”k7nq๓ฦuคั|่นŠ๙ญšฝ๋7pพร–๛ฬ๖nQ0ูา*ลๅjล?๛�๏๒ู๊Žโ๚u\Uฐhjje({AูXžฝถ@c˜๋็‡mษฎ๏ู›๏ฃคข-$V Œ0ˆจ ษใโ)ฮo ™=!ŽHฅHQgฏ๔�\�gดeูu฿‡�Vุ้ไscๅิ9"gs3(1Z"%ส2%?ู’‡<ฦ{๖€ฅแ—†<��๔lQษE1‰A$‚$ˆH4บะ9Twuๅx๋ฦ“vXแ}˜๛Tร.|่Bีญฮูkอ9�๓ย>Jี๘XChT4พ$ต]ŠฌQเƒ•ข“ำอNHจ ) Rฤ’™U’จล์EW๔๕ ฅสqxฒุIฌ0Jัฤ�Wทธ๕สืู~้\y๚ ๒ฒๆุๆIช›—8y๒Žƒ•“ฌฎ"1าhง16‘Mj-��๑ฦ=T{ z฿wq๚ไ V†6ํaฌE#ฤOญIšRไcบลPTฎaฐrฃตSŒ†+t‡x�้'9ธ๘ฃ๑!ึF‡ฑ<�์EขCีY‡Nฏ/ oZQี5I’“d)ถำ5ŒM๑eซฆคyF/หัIฦVy€*ฆ—�dจrาบf1ฏะM…฿฿›@b่„ˆOrชด+R<‹ฒag:eๆ*Š$ร]ฒ๎€Q’๑�๏y฿��wฑ2์‰^๚NŽ=yBคฉ+า4ล5%(แฝิ๕ข•Œj‘$ตd‰Hยด68/๗C’&ไE&a4Dผ X+>!ห๛฿ฆฉฬiฦถdZ…า<%หS’4!+คˆฃ%O@หฺP-[k)z6ลฤZ”5ไ™์สตXญพฆฉvI‹‘์ฒQผ€กFึwu=ว๙’ผใ๊^eิตง.'ฬ๖฿ฦืปไ�c,&W%ีN”12œU[$i๏๐1ไcฌ t;ซุ| ƒ'MsAจฃ–„5๏A�ุ�แฉ๓WุH4~�็า�Œต~A]7้(ฃใา|‚ žQ’Q…€ถ)ฃ,ๅ๖ขb=/9๛Mรฅษ๔”b/xVบ=ฒ่Qัำษ Jญุ์๖่™๓ื๑W>ี้\ก[ฏm๏ฤh‚vZ๕.`์;ำบ�eฯgbBB๒)J+ผ—B�„Y๕2iวๅ�ปญfด4๕๘M�่ ฏ—ฬpฅ…์ๅ)( IผŠ FgB๐r ฐbํG˜Iจ‰Š(k‰ๅB์N“*แ[C๔bš Œศ�๔Rึ#ฑบŽฮ๚˜ค@%ZwZš!๘=pช“ใ\…ื๏'ํm๚ บ$ฃEY=�™ถ‘หMไz‚rผณ’ฦEd\-Qํฮ๋�yณ ืสW\�`Œ •’FJฌ[฿iบไ๛P4ต—|๔๕0J �บnpง,ชืฺKิ{’$ใ์๓Oฒ๛๚3t๚]ๆฦ?NL2f[Wฑบไฺ๕-^?w…“‡ึQำ}�|ยฮึ.oฬุw—*’คC]V,šši)ฐ�ข๔LggฮใC๚๕|—ฦiตt�‹�่dฆžœ#ํฌ“t์�8‡ํgp�จPCจศzkุ–`l‚๗‹–˜ขๆ๋Oฝฮ[o^ไ่ฑC<๐ะฃิี Mณ`meภ‰ป๎ๆษ็�เ…gŸฆ—*ฮœ>ล๚ๆav'3ฒ,็ๆ•‹ผ๖๚›xฅ่ไ9Ggmu„JR�ซ๘_ก�i:Cีl—"อ่ฆ)ค‹6โข7อ๘ใวžaž๖�u†‰Šฌค…M˜นซjฆMร"FYฦzbุjvษuีN‡$‹็^Q6๛าฐ…J\œโ}@afA–vะคvฅK0Eฺฃ› ศLJ–Œ x[€ฎัXR-ก)V๕$–ิ7คlเยŒสM ฆธ ไX•‚ฮุ�:ฯีหฏP๎๎cใ-œ[(Hจฑ ช0กฆaVBุjะทoั๏ญrไ๐} Tรธำๅม���ˆ่Kโc,ถNƒJ‘$ ศณw฿� ƒ~ซล-OตผW…Xฉสyฯ"-๑VAhฐJศน‰Žฌฏๆ๘ฑปYˆ๕Œz๏€‹W'ฬ%รN อบ$YN– ์Lคiสh8ขq5:-ศด!๑ŽชKโp@H&๛ทษฎผ‚Ÿํx_กๆW9ุฟลb:ก“xบ้e3bšS)ำƒ}f“=ฆ.@ึกœอ(ซšnwภJ’๓ƒ~๏yเB„ษl&^ใมQึ5��€<ซ�ฦีm#cฉkน3า4iV[,;น4"2tE’$!ฯ3ฒฬbตน3-ห  Hฌจeค^hšบ[l" ๑ํk“็9^ท-ย๒Z/ฅญึ’4EYMทSPd™�ลJ†7cŒ|บˆํ@–ฅi�ว;%๛๕๊mRBน1)ม‰5pฌwQฺ‚IศŒ‘„ษดKชj\ตE–๕ศบG �รฆ9V‰7พฦ‘kฮ$๙ *,ฐ๙&กžศ]ฎข2„vศŠ@ 2‰Š/พ}[ฯ]%ห$ฉๆํฝNd9ตฏ8า_ฅ฿๋0qง#k�!ใLฌS••Ÿน“dxmgo์ํrฯh…›ฐ�”VำัาญX‹๖๓K๓W>ี๋ๆw,SโฉZ(6Id"CลึwYข๋สั4Bk*/ก�รฃ$�C ฃ]`ใฅ9Œ์น๏ิgm฿!ตฉ–เฆ•ุพ™ภ@D้ŒDƒ&‰ฆvPYฺ ๛#t>Z)bฌ0i‚ษ‡(m‰‹Lฑ ฎDฅ}b=Aู.dLh �ว๔Žศฯจ3ดํรBขHฃiฟงœPํต๋ƒชv*0oJB๖a๒�ฃื�‰ๅlป|mฝ2ไ"ัฆ๚ ’WU5ก}�—f9K6จmSศ”V4Mธ๓zjญ๐!’$–ขH๐N ๏eoBkพำ’ใฺ๊ัด๚NTตฤPึUwrแUuปƒoรk”ฒœ{�1.พ๒,Nณ•ฏฐSk”๎2ุผ‹W�ธย+o\เฬJŸ�ซWุ�ูๅฦ�‚…ฒXv๗w„อทv๖I๓>‰1���G้”<[‚J8๑&ใ•6Z'บผŽ;<ƒํŒูฟ๑yทวส™๏ฅY์Rอnำู|ทtใฎฤ{‰ถ๕ฑฆi'อศ‹/ฝษ“O>ฯก1>zIZPีSbtฤ )๋Ž:ฤG>๒1ฒ�˜7.\ๅ™งŸม๘š๘ƒฤ๘หฏ~…๑pศกต5:ฝร๑˜๛|„��ฟ๛oyฯC๗๓ตฏ}™’ฦ�!}SP4s๒$ลฺ^› ็น}0ๅท>๗jผŠ๋w1ึ’49EhXธ97kลjžI๘�็Vตฯ้อC์ื๛๔๒!Jงhm)ี�$ ‘€5}B๐4กI™ฃ#wRฬš$๖Ht†‹55–่=>Œ๊@Hqพฦจซrj?ฅnๆ4aNCInว8_SึSชฆไฦฅ็8๗ึY:q้ม>oฝ๚ ๖ฯ>…-w‰นยw:q่j�<ฯ8–;q7ซ‡Ns๚มOpไ๎ะล&š$ุc้I ‹9EZต๑ธmจดŠ„@ ้J�vืžฅEC๋@9ฒฮ*ถูฆ7C’u‰ฮขฅฎvišl’0™*{์Yฎ_฿ๆ๛ฟ๗[ฏ๔i\ษlาP- ๊zย๖ึ.:�๕เƒ|๛'พƒ}ฯฝ๘*ฏผ๐,ม9n�ฺB)อสแร|เCโ๛ฟ็{๘™O�งNฆฌ*^|ๅIVEVRรฺ๊ฦวก่n’$2้๏L๘�ฯ~™s วส}wS…w0ม-* ป“ ุ.IฆนฒฟCJเโมMŽๆ#ฮฌn’ฑD%9ณ0มhวะnRุฅไ=ถ6!ศa€ล…)*F๊0ร๛ˆมbLภ›1Vh�ล๊Œสอ$|G ]*ทOๆDใ่ค:i๏+jf๏ ฝ#�u๗๛9q่(‡œa|๘QL็8ปW.ฑ�9zYI/ํ\฿ใฤแs๘žณบ๙ ƒแฌŠh&อไ๙,+BŒ-~�‚>ษM จIฤYND๋Xจ5สX๙ฏCจwVS-šฆา–wฃ„ฑob|๑RTtTUฏ*์�*งŽce0f๋`Npl˜ ’>8‚kH๒Vk�bNe“aฏรโ๖›”๓�์nq(้p๏pศัCญญ2L*V6ฆ[ภฉ'9}โatณK5นอ๎๎m.ฒ˜N(]ภ›Œข7 –ฝNŸ๋๋|�'>ฮปOŸยค’�mญ์ทต2dฉ๘Qญ)๒c išกณMm๓ฎi‹ด•฿[iL|๔bT…8ฃ €Išถdตค•xiญ1‰"išP…4ขiB–Jก^� ^�Bผ๓hีสdตLฎwธฆF้vHl�œึถ[iศาŒ$้ฃ"ฑ™ yฬขาœฑ)18Tจภv๎@Vดฌ‚ซ๑ชƒo12สdฝฆL—ฺษ3Uก&ธ ?ปFžuPaŽ6L6ค่ฌขขช็ุl€JRฌ‘K+E‘ฆ<~�&็/_!๏'๔ว›L\Eกc๐V"ˆำมEสฆ]ˆœ›M h k๑DTžqb8ฆWไtำ”EŒ๒_ฮะ1pป,้g9ฉR˜_๙•๐ฉn'k๗กญ9ˆึ$ึสแipk5DHSษ'J็[c‘ช”iฮ9๑ฯVHA0ฆ5 "oZซeW,๏ฒผษดd1ต!�&A)๑ฃF‚› �ิ€cvฐหข*ษย68ูซเะQฃTZIิจ‡่ขN๐ณ-tฺC%ฉคฯจคERษ„Ušธุ‘�7 ก�'ธฑูA+R๓zยฮ~ ณ๖๔zวับ๕ˆืB๐H’ไldŒ„“ฤุ๎ฑclรc๘?2šhํๅฅY{Mฝฬ้i™RJH๛DŒ‚ชtธ–ั๏ดˆึa)ฒฦ`ญฅช๊;l๗ะN๋F้ขTไนLy๓ซ฿เ/�โ/xuปbp๔(๗ฎ%„�+<�ๆ5f>แก{Nำิ5o\พNฏืe�อQๅ‚บช˜.J’,ๅ`VR๓้”ชฉ˜ฮx็pฮัิ1j|3'I 7nW<�๔ณ<�ะ]ฌŒ:ิ�โห-&W_ว&๏fณ9๋GNR/J&ื฿`๛โใ‡กX{ฤฅษ76IX_;ฬSOฟฤ…๓็1}๔a|ศ8ุฏฉซ†r^ฒ7ูfoวณณ7็น๋ฤQพ�;ฟ›—^=ห7žyš๎`ฤ฿๚•ฟหO�•โพำว9ด:ยนŠัสˆฺ;ž{๊ฯฉ็Wฐ๓ยc3C‘&ฑ96Myํอ๓�๊๘Cฦ๗�O<ผซKBํฝ�~ฺeะอq œZ;Œอrnฮฆผg๕l J ฅI€ฒ9ภจœ&hโ“@ืฌฃ”ม‡’ฺO$์ร]2rณŠฃ=E้†T1ชhaห c=ฉM!$B.2‘ <…’ุ;,ช ž‚ล�6้bมก๛่ๆ’4'U†•"ๅ๐ฺGO=Šeฬฅo| ต�๛เ2�ธK๖†ัƒnmjฃ$ปษD™ขZฒ&ฦHตhcAซ–+#C.เwทญ.S๎‰ฅe๓๒ฯ—FNJR2”ูfhผXฯฦ@Sืx็ŽึX?|š|pŒ�๓O2ฝ�*aถMีTt6ฆศ2ฒpญsุผย‘9‹ƒs์ฝ๙—ฌฏnr๏ฉ81คอMzซGY]r๚มฒ>6�๓ศ‡8vฯฑ~—ม๊a.^นฦ•7_eทถL\ศ>ุ๘’"/ุฎ๐เ๗๐ม{๎ขืํ’ตบํแpศ๎๖/\เฑ'žไ๑วŸเ‰ว็๕ื_แาฅห”‹)๋kk$iJUืฤจHำDุŠŒN‘ฃ”ข�๏สนWขลฆ5’):ล{i๐ฑหึ�˜จv%˜&โ่F .๛ <ีขช%>้F˜่‰•ศ�ข๓6ฒขMs๙๚Y๚ ตภืsนUhี6ZEšฆ$†€v ˆ  ฟฮbh๗ใ5ฦๆ87!๘’$๋“๓ูUน‹ฏงxWRtW‰ก$I,ถ‚ฮฐI›๔ˆ๕!4ค�รฅ๐>P;OYื@ไs.๓ๆ•kนกษป๓ฆbก#งz๖Jแคtlสค^Pjหค)ั.ฐšeXฃ๑Du:@žฑŽฑ$ ีœI9gิ้pจำeๆ?�[�ๅง’"มถ’ฺ:„ฅ4Lฮ๗ ฉฺhสR&๖eง+ฺธฅVP�,ฦฅeIถZJฺC‡ถ฿i๙ผี€/ �J_v�eA›„nฬt Jฯ้v<่ไh›HZN็8”3tšarIฦั 0ฒ็P(hjŠจSดIลจล—˜d(†.I†ฒ)ฑžy,ู™ขผ‹�๐8�5ผวฒ$žต†+Kถ๓ิตภืQ‚ื ฝˆLห<ง•9'/ป๑w ผ๗‘ุr P �BTIjจชšฒtDr1O๔H]Iิจmฅkฑองu`kšึ๔e)๙ำ[�ๆ+_๙ ^|ใ*XOๆ๘rย…=ฯ�eœ\]ๅส•K\พv“^‰b์เœgแ=U�ะxฑo(ๆeC ‘yYR.Jชชf6Ÿั้๖88˜SU๓2r๖ํ |ฯw}+kC &งปz?๕๔*ึ$4ชCฟ“ฐuๅ&o=�$YแYฝ๛[ฌ฿/คฌ๖g#FblPคx฿0์ู�Y๐นฟ๘ทw๖๙ั�A๚ƒ1{{ &;ถnฯธ}๋ญSB4L'๛\พrีaŸ#วN๐…ฟ� ฿๗�฿รท~เ��ธr‰+W.St;ฌon2 ุููโ…—พส™w=ภ™๗|'+‡฿Gb ูmsvv๖๙ต฿�#ฎ–{โ&Kูš—dƒฮhlˆ8ๅศRK`�๋0า–kๅŒีฌรl2กฌkสw“ํzยศHม›œฬฆื3”ไi_ถS* }LR *ฆุ่ฅ |œกbJฆวDZ;�v—ŒJh�•+q�2ฉw๑lŸ{Ž�&iัๅ๚Ÿgvํ†ใul1ฆฉK™’ดcq๛u|๏3�ธ[2ฺIZเชVeัชC„ไคQฆ=็wฮrฯฤฑฝsZŽ%•�๙;ƒภRภ"Œํฅลฐ|%{GทปVฃLๅส€‘ฉsดฒส�ฮ‚’!๗<๔(+Iอ•๓ฏ0น๖4��*ฉ฿%ีตธฤ|vูํณ”—žๅิๆˆ#‡กŸฆป็Pƒป9~ๆ^Ž฿๕Ž?สฺฦIบƒM NAฐ›�บqŽ+—฿bO'T�e).D 0๊๔ู8ดม]ว‘[M‘ๅญdา๑ฅ/��๛ฏ�๖๙/๓๔s/๐ู๊ทyํอ <๙์ณ|�ฉงy๚ู็ฉซšป๏>CšๅญศฒL๎ k…\›ุ๑๖ทญื‡ตcM›o0‰ล5mฬ2`L‚ฑ‚&cฤkฟฝฏb๔ุ4iู้ 6I๎็t๙็ฦˆw‡–5-J&Yƒยีsผ$6ญผฏฤฯ฿GฌVu�ฬCˆžfzบฎhช)(Iล”*‘d4ข๘•„i>$อW nF�ฬHฒ–€Idฝร(/กSบ8Œถๅ|“๑พA้”ดณ‚M ™ฺezEYAพv๕ฯŸ=ว‘ี�๏โb Yส๑nQnนQ7œ้Yฯ;�จg๔lส�ฃ5v}`�ิ้๔˜–%:Zฺ ž›‹ว:j็XM-U‰าšcฝ0ฟ�ห�ๅง:ฑV4ๆ�t0"๘X,*)Dดž�nฉcึซIฌม$ฒŸb9U*�ไ7mดค‚!ำj{ช>ื"SzฉŽ—ร&จkaฐQฃ—ŒอIณ‚ฝƒš"i ฮ!สด๎™เu ก$ช”0฿‘ฦ ๓โ๔ ัbu›ุ4ฤ๊T‚ฏv‰๕>ส$˜ผGฝw–‰\��dด๑Œืก–JK7:‰ข\�ZLZ่[:ศe Œ\,Z�VืญP:J2O๛>ศว›ถ8I+ป$yํฌUฬญ†ฒฝภา4ล๙๛ˆD…†Dหู›ฤqM ฎฝฃฺ”ฌลขDนz�,ฟ�‡Ÿfoถรธฃ•b–ŒXT[/ธq{W;ึ:9�{{ไ…ุ๎Mฆh`ั86WF„ ๐Fใ!ฮG\]ฃmBด–P{Šผ@ู ็„ˆcŒๆฟ๏�Y้Nะ้&ัฯIฒœูอ—้7ธ๖ฺซฬg N�ตJาIŸ๙Aู๊6๕ม[คƒป๑Mำ*|ป^Hฉช’ำง๏โ/พฦ‹/ฟย�ึ-�๛ž‡้ึ8˜VLg ฒlDฏื'zOU;VV6(Š‚บ\๐๔ำO๓ฑ}˜ํ-ๆ‹‡c}s“5ฒ,็ล็žๅาูฯs๗ฆข‡Žพ‡อ‡1:!๋t๘ฬง�œ?�“/Q>ฮ"MqUอีบฆk,อขFiOึMiผขc �ี‚cฃUv]`โy นV์ฤ)ใ๎ˆ" TษธขuŽข’Hอ(eˆ b Q=“ก”gล�%‰C\c !P๛9Zi*Wฝด&:IอS๐ฅ๑Q4ฐ(‡ฏ=~2็ศๆ:Yไ‹Ÿ๙~๓ื�ˆ_ฅ?ฒบyW—\xๆ฿1Zฟใ� @ูKrฅL๒๕–ฉ…Z�"ฝtvŒ!6Š่ฆrFƒm•‘ ตšjๅง!ศิํล�@้6+žๅD.ป_นO@ตศ"Jš]ฅ•Z‰:๓ V.=๛›\?๗,ใNยแq๚ๆซเkˆ๓้Iณล`พล้c๗rโฎำ{ˆCG0X9ม�๏๛vŽ8ฮ`ด‰ั‰„'9 ๔ศŠฮ)ž}๚kฬๆ;˜PฒฝฐTu6žŽถ๔V78utHadฯ�O3๖๖๙7�๖฿๑�๐3Lf eUq่ฤฝ�ศฯ�~ไ'Žฃงฺุ�ใ๚•K\บz•�ƒ}��ศC๔๛)ฐZ<;bPิ•คธ๛ 2Gไ>๐NlUe/-ำ๐.Wํ๋*๛๏ึJhdiF–ๆ่๖๕ี-๑M”4’‚b@iู%kฅP1P• ."Xmพย˜E$ิป2yใQฑ†่1~ŽNZฉษะไ+L2@'}bt$IA ๏=มีย}า)Fทh-04<ี๖‹`{$๙�ี4ๅmt:ม/้‘ฆฝV๑™ฯ"ฯ37n๐์็8ฒูe�ะ!Š229;๓ ฉถ”Qs~บรfZะล”๔ฬรฤ2kD??H,ฏm฿ฦyG๐‘FE*W’dโNืUš*Dฬ/�ญฟ๛ฉnงไ๙OCbฅ+ฒV:ฅฦฟ3ญ-ปbำ ๔c7CฮO�5ท…'ieZKwฃ่#‚†‰cุฒ–฿ดะz„ฆ‘�Nง ๛ข๋ิ๖ใ“ฌ *๓ฒ" ื‰~FดTาๆ› Q�€ˆ†fIŽฮF๘๙พ)Q&C)ƒŽž่ฆ๒{“'7 กB% พผอข\pcqŠีณบ~Dถำฑ=๘-!CทบZข*ฑ|=LปงSJษE%7K๋f$W�‹Vฎำ๎ัC„ฆ^ชค+จj'มหฺBN†4Wu�ะ4mžm�Ty/๐{];๊ฒน ’ๅา‘{๏iผ8o{�E�ๅฟ�Uvwฏs๒ะ“v0ลQbั4ิZ1HSRญุญjผฑ,š#ั9œSˆชv˜$a>ŸQ.J‚o˜L่๚คฦRืภjyฦม�ัืdyฦ}g๎โยๅk�u๚ี์(๑žo฿ฤฦHo˜ฒ}ใišั,nะxO2xPm \็\� โ td4Nูุ8ฮsฯฟยW WU|เฝะญ’ๅ+ใล๎�ขวฦฺ 'N็•—_แสี๋<๚ศƒXc9t่0w฿}†cGaฌ� Ÿ�์o3X�g<� ๗Šz๛mV6๎รๆสู‚๖ฯ�/ฝ๔:ใอร,ฦ#ฆมฑw0ฃ›$\ฺูฃ ž3ƒ๒Lc“”}ฏy`4ๆ๊bFฯDŽŒV8า“�ซูˆŽ๏5ใt„Q†ชŽฉcๅัdิnช!จš�Q>a^฿&*pฑมScMNš$8_ I’auŠRŠาOฐdfHคB[K5™a&7ู•eb๙&’#�fe‹{ฯ’=ฝดฯk\%ฑ…ห Œ%IJ`r‘D0’ค5}iุะZ๎E/]V\ๆา*Zจ| •-ลSQ๖\QŠธ2IKV 2ๅถ]P’ๆlํ-pอ6ป(4ฦ๔0Y" m…CำHhƒW€$ผX“ ร•Qก”ไ›tŒjๆ˜คƒ.„๊67๖7ฌ}€อฃ๗�!ฬ,��—…;.Ž๖gPญฉํ$~็Žด‰?ํƒะfฎห[C:๙ปลผฆ*kB�,ลึ.ตฝ• ?Iษ 7F|”"^ี/�๕าพ5๘HU7ำ[cZRaง“cภ�ฟ๕›�œƒ�oq๚ไ ฦ�5ขWLf�t:๐T3A4ฆฮPฒgD‘f {‹FผŒ‹ŒYY1ŸMธv�&๓ู”ฒ,)๋†๙ขฆijะฒk3ฺฐณ7กq Gฏ๑าซgY�<ส๛ฝ‹�k/ถ6• n๏k'๎ขšO้๖s ผ/†ฌngz๛5ฐ๙เŒ˜๓่e’vฅ!rมำ'Os้๊6/ฟ�oœ=วซ/ฟQ๐๐#ฒพนมสส*�ม€nทร๚ๆ:ฃัˆ/}แณคYส™ป๎e4๒เCr�ไ1z�*>๛Gฟรม๎ใ<๐ศƒ;๚0�cคื=Bั‘t๚�ฮo��แท�ƒแ€ล[ŒO ฌฏยคไะ๊*อุ่๕Hฌก›etฌฅgลlตw6'Sฅ&~Ž5 ต“ฆฬจศAu€sบYฅ5šm=ฺ%3}t1ค๘่๐jAž 4ฉํ‘Duฐฆ RcT†ญ ŒVxฟ Mํ๗ฑถรๅ‹oกฎs์๘ฃเ*ž}โ1ž~แ๓Eลน+Sถฎผฮ{O๚ฎ@า‚าD/ฎarฉึm“keBำา๐*ฅdsึขsัฯ‰ีพพ‰2l็0ฺ d)‡ก•ˆั๎บ•jkบ’t@�ยๅดkไฯ๎pQไsจฤข%ไธVล!ažฮ`ศฉ{�รx๓nHแUฦX_cxโƒ์›Š#›งH~7๙ะป้5GŽlph}L–$zBำ”t๒ ซม{GUNp>"t อ/œๅ๖ฮ-๖ศศณ!M]าู8ฬ]๗�ลปŽฏาฬgt3Kทำ็ณŸ๙3~�?}Fx�Q5Ž&|„ฎฑฌ% ท๋†•ขหชตTuร‘NN;e)คฟฆม��ฯ�อOฅฉLJฮ \ๅcl]อฺษฎ…า๏ึ”้B[t–o�NWษœnŒ�นk ฝ<หƒjPF`uญญ<ี’M|pm%๑”ฐชดmษ)ญ๋[\๚ถื์L้9ึ*”ŸI์ฉ“I^4ฅ“Pฎ75/๒šจ F‡29^%๒ฉฉ๑ณผฎูuง๐ูป9z�˜ข%‘Iั^ŒฺoEŠถ“ธU�๚ๅ๋ฃต44!พ๚อจํๅ!p”ฦ5คum‹Q&p๙ผํร฿&้ึOท_KฑV‚iZ„@)C๐ข๓7ญaLS78ท�])๊ฒๆ+_๘=ž�1ฦ�ใ�*Šภึ๖บ…aนukส�ผd4่’w:„ษ‹œ†ศฮtN‘ ใ๓๒ี๋์๏p�ฺ šฆ!M šF ฬNฏO’ไYŽ"’g)^)6acฅวต›{=t„G๏?Lต�*&Stื)†CงQ๑€$ํฃGw1Z?JUN้6)V–‰Bi”้#๘Ft๎MํัX~ไQ^yํฏฝ๑“yอ[[\z�-^๕Uฎ฿ธŒs ๓)ืฎ]ๆห_�O?๙ึF วŽžๆžป๎b}}ฬ๔เ€็Ÿ}–ฯ�แฟg๛า—y๔Cง0ณ Fk'Y=�ฎ(๙ว�ใ?ๅ๖๖.Gข๑ž�ซืQG6IฒŒ•NNฬ2:�ฉ��ปปl•SV=ถ๊†ร�๕lŠ3 ใ"ฃ“ YMช‰6DpfFวŒ่งา$ฅ ;ไฆั.,ศีฤ�)ฤ†Vต,d/ำKฤBƒ Žบ x?G้Xๆnฃ๚�ธ๐2#ซ‡เ๚ๅืนp๎Uฎmํ2Ÿอุ™)�w‡Ÿ๚[�-อ‡@I‘ีZทฯžkืD|ัš ๕�Yp%อ๔"&ฉงฏPสcฒutา%K[|ฃŒส„๙n›0ุ�Fƒถw�ๅPถƒ€2ญ็‚ธ๛ะmZrI;yzั+Cpฅ ฯrFkGaNท;$ฌ>สJ7ๅ๙~Žmไ Šฉu๔๛™d2„ ;ท๗Imสนห5g฿บฦ+฿x k3Ž?�6K†fz“๓ืnq๕ฺ9œ3l�ฆ*zฌoฌp๒๔:๑•ฤ–ฅใื��๏ฑฝณC’&’ฉรัˆงžy†o|�ซฌŒ๚l;MY–คึ”ๆนงž x฿๛�ล‰ฃGศsaฐ‹ษTปฦำโ)๔�F9ห�ชดภฯ2Iท@ˆ7qMฬ[Rด5ุ$mwเาศ�&์๕ๅšิ{ฉ7J[B๋FญีsSกพ•Q BE๐%UURอท€”เf”ณ๋]คึง�เ›‰d[„’"๏ขL็‹ล.จ”จriาL‚ฑCY'zNŠถษP4Qu_พ็4'ฺฮy”Jhผฃ๑ืขฦhŠ4ๅk—n๒๔ลหฌŸ’็p๗๘8ใยฒ‘'ฬ‡Cszฐสz‘sณœ2ดF)ฎL๗9”$xeHขฐ๕๗jp ญ8๐Ž’Hใ*|“ญ,ร‡ˆ๙‰Ÿ๘…OVVไAo%dyš’คFฬ't๛&C–.%miE�“‹\J)ฤ~ฐตfอRK];ชZเ-cฤ\$Iไ้าuMดๆaYิ–ฟยฒป�&ถ)JH1พฅˆh๒ฬโœyฉIํLd"ีl†J๚/Œล ๚?—๏›HˆžPอ žใ๊šjถ‡้lขรW๏0qk์๛G8zโIฑ"อF‹(ฤ(๑ชาฬหคญhนm1—]‹4ช%Ÿ)ฅฟI๏IZฉ†@Œ‘ฆ๖ิ•tฎด1B�"š1šดe‚ถc‡d๕† A$ณ4ขsโ‡^.jeESืุ$กnฮ�พ}›?�ƒ_ให_� รขรก•Uj7กšoœโ`ชธฝต+ศƒRL็3ŠŽLนด^ษs๔zf‹šสร`4คnuใDญฑiฮๆฦiššZ&�$!ฦH5ฒตฝอมlม[o]ภ†�๛�๗`๒cๅ1i‡ูมu’lฤมม”ฮx“Kฏ’G'ต”“sุฌGิื,p^ฬMขๆ์\}•ณo]g^บ™โฟ๛G›S๏�IขŸต;้ถ@ถฟŒ5ฤfŸเn~•P—,n<‹ซg4“k4ณะ" Ša†ํ&้E)ด‰ˆ๘ี�[จd$qพีฺv�‹ฅภ—wG{Tา(้พ฿๙‘‹<๘ ฒ$ฉๅD%ำyjว๎"[9Mb๎น๏=$ึ็>6ธ้5ยl—•รqแยuพ๖ิ9.]ธสพ๖2ฏพ๐$Ÿ๛‹/sํ๒5บ‰ๆะัร$iN3฿ใตท.๐โซ/1ู]เŒA๕V่๔:ผ๏ฬQ:ฮฃฃง3๐ส‹ฏ๒ฅ/>!|™–kณบถฮx8`s๓ฺ^{�e๎น๛~๎่QFใG7W๙ร?๘]šบไC|?<๔@;Tศ‹ฑ„€�ษ๏พ๑w ญต‰�!m†B๛f�น๛ำ,#หSaฅ“^lัGdFG+™ภUŒcq�Q.&˜ถ๑r�กตใฐฆ7ร$‰ ›นฌ9ตA‡EoMคภส€‘{3IG4ีพฌJ#ไU|4๘‰‘้คsฦvpMMUอจš†ฦ‹/‚ญi.•AงŠb€N๒;„c‰Mp!P9GnS>๓๊Y^บr™{N"ั_)\XะOsู™ฮ8ูpu~ภNำPWž๙dสคฎ)‰๊˜U%3็้'–Y๐c้gยQ›6%U]b  ‘Ab1๕ฏ�โงmฌศ> 1d™ผ ฤHbๅb€ุ2หE�ไฝ/๏DxOD$ZKฆt๋‡ž–jQQU2}ƒhแLหG๓ว5�ฮ~�๙ ดต(ำธn'r)˜ํ�๛&—<ฑึชIQ:%K็Lๆsˆ9�,าฬwq๛ท๑ตภ/&๏ปจ0วค=ส] ‹}Lฑ&‡น™เๆ8ฅ(ƒcหฟ—งก่๔eŠ^’ฮด–˜นD„#พ…เ$แG>6ฒ�ท <พ�ฅZw ุB้M#l๕ธ�1[จ<ถ—n›ฌะ๊ํeCS7wฺๅrฮS–8ไEEˆะ†ฮ4NV จHpjQ๑ว๔๋ผ๙สื8sd“aส๊ a83k,.j”2 Fซํ ถหF›ๆt‹‚�;;ญ”DSี i&lู่:ฝžL]@งศษฌยนš้lNฟ�รปšฒZ0™.จOง“ณw0ฃn<~xL’1�#ิๅญj‚]ล๙‘๘„ั ร|1!ํฌกmŽ;8‹ŠBrฬG$ีฌ]s,ช†3งNฑw0็ซ_}ŒiUQ+ว?๐^>ถy†{’ŽŽ๒žม!a5ไฯsฯฝฬข‰œ๛"YQ๐๑ฝcsTาแ์KOr๙๒LJๆลำ้๒ศษC�ฝฑฦ0่vHŒโฑฏ<อkg/าษSดึtบŠnAjฦฃ!ำ๙”rฑเW^ไฤัUn^ไ฿�๊?ใญsg™ฯ็�๘�๗�ušบฎ๎จ8๏ISqโ AฌBMปฯ^ ึŒX=ถŒtk„ฅฎ•Hหา4i‡*น฿šฦ�Q1ูT,X”ป#อWใZยƒ�+yŸ‚oHฒE]M x)ภmW้€ฤZช๙M’ด‹ึฉ4๊*/ฆTKˆšบiสด2ศšขำฅศ{(%นi–๏k@”V6ํa“cS ๗ ‚Œi ฎ+‰œVRฤัยภฟ5๒/Ÿx–ญj�4*‹ฆ"S†šH V'ฬc``3Žvz์4โฬhDa Aสเุ์๖ัึ&†ำ�‹บ&ั2 ึ1ฐVt&)ๆง�๊/~j8์ัดDฮิj"ฒ’�่e‡&~ฺˆผกญAต๓ข;ึข‰SQคJ>YชฉjๅRZ „Ž‚Jh%Lu-๚ecๅ ไ,‹h7�.บ}ƒ…ฌ ฐ|๎%–blŽQSๆ–"ฉศ29˜ dยO;ุฮฤด+l[ฃ"บ{ำYEล�5Dํุ‰1>�1†ƒžศธ„D)จนไัkูโึสลฉ†ฃi–า1™ิ%์E>ไ"ขuถ[,๊’‹n็ไu๗ญ†^šMำšฦ“คVdgญ.ผi–ล_^_k  2ฉ’pdŒฦ{ศ’คี„;�เw�-ฮ}๕QA?WŒ๚ูเ0;ณŠ^*x”‹๘ชย{OทศฑJฑLฆSสัyno�–8B๓Eษม�„รแ4ฑ„้๖๚8๏ุ��g๛ๆ b๐์์Sฮล��hEjขR์MJEสปฝ‡zฑGLtRห๎ตณ๔ึސe๚�”ŠŒlte:LnพI”ปคใปHฒ“๔ZHฮะ4 18n�บฮ ฏพษมฮ>—ทnย ็#พ‡ตีMVวซ ;=ึึqPD�ฯ� ฟ�๘_๒่พ…๙k�ฝ�,Lo2XปŸƒ›zนๅม�uฒโ_�๒—๙ฟ�ใสล+71D๒"ฅŸ't๒”A{ฯธŸq๛๊ fWo �#‡9๐~TL€ฬj๒$eฒ‹ี ใt€M2”nIำ4TQqjธF*nีืY)๚ค:GGIชซ}d๎wับฆWฌตยๅ๔ฉ�f8kฅUญS:yO&‹ฺ“ะฃv๛8—R73ˆ);ณ›์œ}ŽA ŒN<ส…ืžใ�›—ธxซdc%แ็�g9~฿ พj๏‰wP&mlKTŠ่ด_�ยีm!Wฐุ฿fพปKwe“ดำม�1Y�Ib฿!œตง ึ๘jm2|ตKcWˆnB(ktาnFh ีฝศผ›ฃๅ^ัFฆAฅภ$2y�u]-DS/ไงH๔พล>พ๚ซ\{�1^ผœ๓็_}žฯ๙q^yใ๛gสoŸ#Ms�ณ_�%~๔‡พci&๑ั1Ja’•“ iป_h—�่ญำZ ทฐฐ‘€o๚8dลแo9B2ส}-ฦ_ขBฒค‰]•–8S็Z๛้ึนiธ๚› !4ืท๗ฎ๓ Š@ึ9ส LŽsŽEีดHโ" ›dyWฮŽา$ถภีŽฌ�=–ิ$€กศ‡า 8Yuฅ๏ธz๏h\รผฌฤ์*Dt"�ญ]ผฤฟ�ฦ+ค๋ญ๔rb�g=KQ*แpงƒ7P}Vlฮคž ขข“ๅฌ๕ป๎๕8จ*Vฒง„ูc ง “ฒ$ำ†&Bhhbคu๐˜O�ไ_�ิัcTตคฯ กiคh„oส–ถถZ!ิkฅหฒฃด์ฬZ’‚า ”ฦ˜„H$ฑโีmCšตาฅˆJใ‚h ำTŽศcฐปลxก�๚wสPBขะๆiH @ฃRฆำTMภ4[่4Eง}‚_u"d5�mฅ^�ฏRข*Pิธ๙6fธสvณ†๎}ˆต•ี;0น\€rฎใ’ ณ|€ต˜่6(ึ-‰}Jิชบํdจ>–vฅZ๖ี‰mฅต†ไ’Žˆข ืFcำข~QvใFtฃ61$ญMไ24€(4ีผก*%ื�5ืY–5F%<�๕ฏ๐ฺ‹ŸgyYไ๐๚:ทM=# š.žฟย๖มŒ,อฑVำฤˆ๖rพ`ื5P-˜ํ0ฏ=ๅbสd:ร&)iš‘w๛ธZ.ภชnศ3K0_TLf%6หX”%Z[L’‘ด Wฅ5“ษŒหืvy�#w1๎ึฅx๙mX'‹๗็๖๖nc๘fBจงิณดQTื๑*CQc;๋˜$%IRfณ—ฏ฿ไ�๛เฤษปธx๙*o\9ฯ๕ูmบ๋c๚'6ธฌ&|ๆ๕ฏ๓��โ๑ง_‚{z฿๙�฿ล|ƒณ�>k+cl“C๗~ร๗2mบ�ใ๒�โw~�ำผu�Mำ@„มฐฯผ๖dึjศ‹ฦrู9จจ& ๊ํ}Šแqฟ`ทi8บ:fPtธ^/8ฟu‹ฃฝ1๓Pั5šœn›/ž›&เ‚aœ ศ’ B‚ฆฦุHิ‘ฺฯู้1D1พะคT~ฅ šฒžด ŠบบT๑ำr‹แ‚ฤ ฮ9ฌ†๓g_Gํํp๊ก๗SOn๑ไsธyใ&Ÿ�‰๏็๛~๒o ฒdZ>K ฒ"k94DPข๗Deธ๑ฺgiสฌั" 5Žd�$�๔)†ง)๒ผ…ยUK„ดI๋Œ๒๖ ”{o€Q”ำ›่ pำ‹4ปทˆ€rส&(›Iบร\o'เ„ฐซฤญซ™\$ธ96ต_I8’wบbึZaฌ"ธ7^�Cส้”E็>~๛ำ_แีs7ฺุ:ธ9/าศ(ฅ(:ง๏๚่‡9}โ(!*๊�+ผ๒ฺืyแลณTฝฃ$…af ฎb๒”~€~– Cอ3฿x…so_eะ๏Qtบ(“)ด,)›†ข7ค7๒๐ป฿หw}๏๐ใ?๖ใ�ไ'‚ฟ� ฟภ฿'$ฆๅ, *Q82i&;k๏$ฉP&r!ืย๒๎•ตึ๚Žž�X{GF[~TlUJ๏!zฑfUศJย;/.m๒—่vํฃ7ม5พžSอnฑDPื3L’‹ฆN„P<ฺH�†1Vฆf“ฃp ‚ื์OL&%oLx๕โM^ฝ|‹'�ผฤ+Wn๓ยตmžฟxoํ๓ฺ๖>[%—v๖9{ๅ6ทๆฬ›†Žฑโjh$ไฅศ2t’ด‘ืดโ~�YฮŸ}›๎แ1g6ึx`ด‚sฒข8ึ“DJ†FฑS5ฌๆvๆS๚INภCํˆ สชยี นฑ8๏™ึ ตŠฌ็๖ห“บ&i หต˜Ÿ�™ฟ๙ฉอ๕1ศณ„ขศ$wถ•QHรIS)ึJE้ขDึ,oT�ฉ‰ฮนš3�๊”U5JkฯeฺYQd`‰8ื๎ฅพฉ๓“๎Yd„(ฅ="„บNAฎ L๋ ดJนนs€+งf xtฺมืSšล7฿ก™฿&ึฅ|ฝภ…ฅ\๗.&แ6ึ‰ิก5ช%ุVศฏ”0ธ•–ญฝ่ซๅ็_6,ึt‹.,งใ%๋๒ฮ๋า8ษืล�สUห�_’F–ล\๚(A5ยRๆdฺH^8MใฉKGีxชฒbพ(ฉ[๘›ฺคผ๙ฦK|�ซฟวJ๎:ฒ‚1š‹ืถ้†aฏฯต[ถถvpuรก๕Mzyยo๓yษ~P๔บ”�š,่ไ &ษ Q1 ไyJ]5าภMlNe4ใ๑˜nžใƒง่YBั-Hฌฅœอจซšฝƒ)o_ผฮฝ๗�ฯd๗"ฟ๓ว๓ศC๗าŽpeํn ร”ณฯ?…อW้‡,ถ� ศ:้0�9ฯมตg~PดขhาผรๆๆQN;ฦว>๒A~๔ฝผ๔๊k|๙้'๘์_โำO|žฯ>๓8๙า๓\ปฝอฝพ›O�ใ�>z‚/�ฮ�f�๕๔ึW9z๚ฃ�๑็^ไ?�๎๒ู/<ฮ๖ฮY–ขŒ๘egึ’ง 1ฌ5lz` ฃ)gSšh้:B,gุQnžำ๋๕่ฅ›yAuPqze“Dดอฐˆ๙F'ฑ‰‹ฦ“ขQ�เBƒตะห๚ค6#จ@p‘ค~“$มซ9ัg„XM%%Iข"K*™กŒ&ฯ ’$ก ขLvฆฬ/Ÿใ๎GฟELxvฎsฐทอ/�ํฟOo|D<‚ฌัbนงฑ–เE>ีิ šบIOu‹jบGp%ค—๔ฐรปX9๖(yท/�Qšg9< _ํฑ�Yœw์œS?'VlฒB(w ๅ h”MER*•T`Zื“}x+ks‹kฤะt7๎8ฅ5PDtš�iŽ}5‡Izว‰qยW?๗Y^9{ •wฺูžQN็,ๆ3ซศ๒„ด่0๙{ฟ๒Kผ�ัปมk\]ฒฟ{“ฏ<�%ฎ^พL::LำD๒ฌG9HษฌjMj๚��;๛<��+๔z�;“๓p4โ}x??๔ƒ?ภ�หฟฤฯ�ฬ_ๅGเป๙ฤG?ภ�๗œโไัMึW8ืศ๐ก"u%HŸัโใ‘f™ไZ#…:ถ๎ŒฦˆoESืX›�ษOYณjฃฑV�ˆRŒปT(ฅ%7ฝ5๋ vญ>โCฉˆMD�'œ)ECฌwฑ้๏JLาAฅ#ผ/๑n†ษV0ถg+F"šฆฉQส`%๘ภlบ`owฦ๓ฏฝอใ/Ÿๅ‹/ฟมŸ?� �เ‹Ÿใ?>๕8_ฝp็�|ฏ>๗uฟtžฯพยห—/๐�ๅ๓<๙ฦห<๕ส‹ผx๛6ฏ�บอ+�[|�ย5ฎNฆิeE]IZ[a-]kศ€}๖-~�OฟBคไ๔�GฑมฤศญฒdโkŽhรอ๙๋…คๅMฬ _Yดa‰&5\›Mุ^Tไฺ0i:Iยfงหฮ|ฦ<6โไ–%ฌๆ•ร�ิ'๑SฃQe~ีZัษญ˜~”5!ถ‘ขmam฿Bไากีตร‡๖m๗ผK2•ธท‰ฟบ์ใd/โC@)„ฦศฌ-ำ*w|น#RๅผัLทŸKู9‹$„fiƒ่๛ หhีgw Š�ย�.ธ6หaพ‹IsPŠzฒฏ'ฃIVNฒ�œb<~E๊ัะFๆ �nูวฅฎฝ•D,Ih๏ Jv๕Jœฆ”^BHา[#น�*jn�ผลฏ>๖ฟb๓ซfฝ…ตD^aŒ8�ฤฉk/f,N\๎B๙๚: MFS‹๎6ถAyฝ–�„<๏ฐท}›/~๎7ศ๕Œ3›jpMเฬ๑รLkหญ�นไกืŽย67V™V๛“9๕dŸ}/]iGCD฿๏ไไำษr‘y ปวƒษ>ฎฎ™อf๘เศ๓ŒAฟOใณฒม˜Tฒีcd1_0›LXิ ฦ&(cูŸฮนฝตK ›dฬ๊„y7�มๅ�4ฑฯ�—๖ูซz„เ8z๒MใQล�bD+ส๋ฯBฝ‡Nz ้๗{tปibx๐พป๘ุG?N’๗*ฅtสEzฝ!฿�฿ล฿๛ปฟย'>�ž�โฟเา๓ฮ๑w+w+:ๆ>�5�ลฟ�<๗ยYŒ๒OVHEก�^ท๕ฉN๑>ะฯRV:ซ#๖ง์^>! FctฟKhJYฦน�}ŠิเfT๒,%ำŠน[pPN่%9ฉIจ�฿BPฬโBพmI”ลjIŒJtŽ1โแlต" ‰J˜่>4ญ4“พ‘,uี%3+ิa‡\ฏสณฎีดd๗ีop๗ปฟ›4Mธr๎y๎=6โ]฿๖“bW์}‹Dt’ขŒย-„ฦ‘ๆ>๋=4ป4ำ๓ ,ฮ-( +›gZ—œ;ี*9Tค”fr๙/™W[„8ฃžOˆต'๏ฌcJพz7้๊}˜�:ฆป.nŠ&๘๛a+ส=#1Šลฅ6�๔ถ ณžL�mCฎPr”ุƒฉ%๓๙ฏฟ๒ MPิตcww‚'ฅฌL)z:�.฿๓�฿อ_๛ั๏ ฉKBด(cธr๙,O>�EB> ๋n’Cง่0ฏ2(rVKhค‰ก7๒๔7^a6[`mฦ{�๗(๏๏� ~๑~šผ�=ฌฏ้ำJ๋บ–lŠบMrT-j‰HXm"ฺ๋4I‰มฃ�Xะ4หHำT=+ Œ˜S‰บลZฑขีฆ•�ถkำะF+ญZซี๐@ ฃ])๊บ"‡ตš,ฯ�ฯ+คhญ„ก”!*ƒIR|T๘(ฆ/˜‚4ี|๏Ž„9D๓๋yษึํ o\ูโ/žy™ฯฝ๖ฟ๛ิs|ๅญืy๋ึ5๖wท้หปO�อGO�อโ�'ฮ๐ศ‘Sœฏ1ฮ2V๒.aV3ฺูf๗ฺฎ]นภฏฝฤ�ฏฟฤำWฎ๐�ญ›ทฎ�`ถhจญุ๊ิจ$บไเ๐^š)k๓สฑิME'O8qโ8ณ้œฦy’,#zGY–L$gธeดส%ฎัม‘&Pd)�}˜ีQ—ฟ๖W–๛๏=†›Ÿใ•7๗ธyํ2_x๒mถถn๐�‹ฟย=wญ3/สญ๓d>”—๐t�๛ƒจฮ1|u tฎd]ชชd1_ฐ7/น~ํ๛“+k๋œ8vŒaน๐โง๙ฦ—�-ซวOq๊}“o<๛2ฟ๕๋ฟลหg/0/า4ฅศS:YJˆ›ศฮ�•sŽฌ™7ž^ง`ตืg}<ใ ๛Iื/]a�เ€โฝ๏%�–๗qธ�ใPงหน้>woฌsุๆ�‚�ๅวว4ฉฑํIf6฿ลGMb ่)›�U6ปcTฌ‰ฑ‘”=Uhi์ฟ/„ -dBฅ4us@7]oaะ@T 2ปBรmชZlj๑�ธt๓ฟ�k|ฯ'�vผส›๙๏้๎โ�O�ฎœŠvผฉุ฿�แโ�๙ส—ใษg^ภš”~๔��ฬฯ�ใอร”๛—˜]๛ {;Wi’Slž�VV฿+์๕ๅz -+ฒ(…@™œz๋%.ฝ๖๛์ะธŠิhึO|tภ่ิ๛ะi‚ฒ]ม[9มฝตผ“bภ•๛ศึฑข�{“!�…Nr™"นZ;ฉห…`dแๆ�_ๅๅ็žเฑง.๓ยซฏ1-ืoMู�ซX?t˜,-ธ๛�ใ�“��ฟfcu็,d‡W9vxL5aj ฏopq�€ลขๆdoภN5ฃSฌqช—acE7ษ9ฺ_ใยtN'I)PT%7หG๒Ccyc6ใ๎ม€รE‡๓{{ฬ\รแ~น๓h็8p ๆ๛พ๗'?ี๏๗$บ%Xน%`=—=‡Hค0'‰}8็ฉj T7Z\ู๒T.,ีzj+ญIำTฆึึwุต{•ลผกช<{%ป;sšช๗ทDtฬโ�&™ ฒงฑv) ‘�8Q๔โw ตุ:‘i๙xm �~‡ํํšทnQ˜&.05b=รนRฆ,งž�†ดฯ�ฌไึโQ9ƒŠ-C>ผรฎTJˆช%f,mฃƒ–ฆ%๖๙v็S;!ฐฉvํ@๛ํ– วd"ล=ั9_ฝ�9žพ�5&“š฿๓QV‹Mืผีœ๗ฤ6-Nฒ‘ลDฦต(‡iง๋๙ฌ]wŒฬf%�IgLk˜& ป�๛�ง฿๛W˜ล›œ\ต�ฺฺฦค,ๅ�ล๋8n๎„[9ๆG๙ภอฝ}vw๗™ืy€EgSt{8ibฤ&)L" '๓’ผ(-@Q’ฤZMSUUIฌข(r๊ชขช=y‘Iภ†ผศ)Š็aŽFฺุ™q๙๊5{โ๎:>$ห๛ผ๐๚-ƒ.Ÿ�โ \ปq›{๎{๗œ>ฬd2cq๋ฤฮฐy‡้T�๗่,nnั4ตVหmใK (“าœ็อฏ�;�8๛6ฅkHsƒ้ฟ›ฃ๗}/รฃw‹qSW‰L ศฬ)+.(ฤœ#\]แ]ฐุฟ&ฏฅ,JK1’ะ”ฅGปL๓DJฃU`ฑ๗6GŽ�ร๕7ใๆฮ>๛ำ@R๎น๏AŒ†G฿๓ �—_๙E๎ป๋€”Nุ�฿ใ‰ง>อ๋ฏ]B™!ตŠฬo�Fูก7เมใง่c่u๛$i—AgภC?ส‡?๒aพ�;ฟ^ฏห|ฑ@�„ชฌZ^’กฉ…๏Bป†ิwฬk "๗€ ˆยส—=�’4๋„,S‰5dy�r”’vPQ’๔ุบLJ‘ป์%�Ilo�๕Gฝ‡ฺgฺโฑ๏mZs๏‚ฮ$฿ตถ:ฦทE;K-y‘Š, �ฏZ+ปc �R+๛†ฅฟนjwนห�I๏@# ไอT … ะv๗ฬำYล��‚เZภyสสQื^าaูห’ ดNB™Xสณ–,f: cVืVi|ฦ๙›I}•4ฬQiฐ%E!ิจฦSqˆ›�รl}ˆ"xปi]ำ`i*จฤr๒�ฃ&๒Ž™อฒ‹/j9‰ฤƒ† ธAใป� šFŠ$็๋—ŸcWฝฬ^}ภPญ๓แใกt YU�qt“�‘‚f๘ ?๓rEั8ฯ|!fBข“ZธkDร��opํยsBgtC"ใA�ูœLyA7fd6กgSqGTขลORƒnฅฺšXA^‰ :yซ!U#*7งศ2‚š‘›E2 ฦ(๕แŸ*Œ „4ลอoใn^ฅฎ'"ว๘จ K*า”%รี1๏๚ภ๛๙ฑ�A�ฦ/|’O~๒๘๘ท}ˆ_;วพ๔๓�7๘ศe�พใุ�฿N�้‚Žwะ$พ‰c‚ึ([ะ”ทy๛‹ฟสฮ๎{ ~ˆ๕ใๆิ�฿Go8j‰sHPR'j“%œ(๗…BŠฏRŠฆžQ•3”N๑ีำkฯำ�xH๒ฅำ๔Ž๙ำ2=ํ“พMU„H’\zแsผ๖๊‹lฯrn๎Ud‰eผ~˜๚แ๏ๅ๏�ํŸแิ‘5ช*f&ฑdY—วŸ�3žz๊+ธ™ฆ69ๅtŠN3บใUาคเไฺ&ึZญ่dYšณพถมฉ'ˆํใ\ ฉช~LhฅpZ ”๎ฝG้–um"ื โ๛^๛ฅ•คพต;pญๅใbkย“ZนรŒ‘ภ+ี2๔M๋Mก”Lไ‚jดƒŠ<„h๊๏ลŠืhCˆY Q๊`RbจQัalŽึVคมy_˜ๆJ“ นv{Ÿ?~๚~�ฯ>ว3oผฬัแ˜Ÿ�ฤw๒w~๐ฏ๐ร๘วืฃ’„:x ‡ฦใ›„ˆžเJBA�๋}…w‘๖c”'MŽฎฎ๑กSw๑ฑw}�|๋5ิbฝบJ~x…afศ๓UMฯXึอ๎|›ฆ1๔;6ฦC*m‡ี~Ÿๅ„ส' ฒ�‹ ‹jŸฦifฎๆไx•ฃ�>{ๅœฒENฦR…†ฝ้”~Qpt8”๗ใg~๖oJต)a"#)ถZ+ชฦQUŽล\&98ถiœ์_}h%{ู–Dี4๎ฮ�Wญ่ฝi�RD@<ธ]ปOืZ พ๓‘ษ~I๐‘มธƒjูฒWฆ-Žฑ๕๊EXเKXฅ๎0ๅ้๑"ฤ7–๑ส*ีBs๖ฺœฎฺฆ?^Aใ!อh\„๎&7ร๛ู<๖.6V{#MƒาRxM๋\ฆ๕าMMˆj1ศ๗ ฺยmŒ49U);%ส�}u h%Z๙ฦ‰Dฯh…Q /๏<ฯึโซ๗y�๖6฿yโร่Xเ‚k๗ๆ2M $mLคjฒk A>฿ฒqPํSm‘!ขง“wxํ•—๘๓?��}8ฅnฐ9#�E์€้โ}Ž1ล=rk้ๆ|b้ ๘้”y‰ถ)ำEษฐ›a�`ŠI,eํจSU-{m+ ชชข#ฒท/ซšบnX,J|ิdYถ<๗t๓L|ใญXร*ญXฬ Fc’4ใ`k,อ๕ํถ๗Kฎ�ุแ•7.2-peลีทธqs‡�iอsฏ_ๅฯ{ƒ#cลึžใ_�๖_r๎ืุ�;เOฟ๐2็ฎz.oE�๔๑ |๚หo๓�‹—๘ฺSo๓ุSฏ๓๙ฟ|•g^Ÿ๒๒UรS/\เ๒…kฬ%ณEM’X“H  ๗’o=yฟO–ๅคyAa^Vtฌก”ซIณีb]ƒM2Š"#hwŽ›๛๛ฬo๏ฐq์๖ฤ!nอgฬ๖้iE…ใ|9aาฬ)’TR๒Tคฃ ป‹�ฌ I"ชrไI^‘ณจ่ฅRี%jG45�ลจŽุฅC%14โฌ่-‰ษIu†ฅ›้UBด,๊=bˆฬ๋]ฏุz๙q&7/q๊�wฑr๘ ˜œฆvqb4'ฏ1๖Pฑ!บšc›}>๐@มฑใc>๑}?ร{ฟํ็)๚G„ธไฎPR  �}KแฅRnฟ�Ÿ˜-z'๎วๅG9|โ}=๑^zฝบอต�นz๋—.pใ๒�๘jNoผ"Ÿ'8)๎J๊Eซ�.…ุjลCข™\ม๏ฝ†2Zด็*“)ถๅนศ�\ึvชฝoดอqๅŒsฯ� ลR’�๔IDAT7๗;ว๖nษๆ]โg๚‡๘ูŸ๘๒ฤŠา&ึ–��—y�อ็™\Ÿ3ฏY�ฃvN�ก›˜˜ฐฒ2D1ศUd;็™ึ– ฉ+! ถC†ึ็|›ฎ !ฅ)i–"ื2บอ๏ฮ3๑7ื2 -Sษ–ƒ‡�˜K.’จgผsํ�#ไcญพูf)%”ั’hญ$—�ฆโ„†—ฝธ1 „ๅ –FLCใj|ฉ�|V๒๔๋็๘ญ'žไ3_๚ yฺใo�ะO๒หๅGy๗=๗%†ญฝ=&ณ\ฌ1ส“™@ฆ=*T$6‡ŠNฒฤCƒV^{|�ฦZK๚Ypฎšะ”3๊rJะฐ~Ÿo๏x่žG`Ÿ�s/สอฺฉญIอศ*\=กV–ฺk6‡C’ฤฑb;tƒณ‘YPํฌยญ22ะฏงzCWsปฌ‰!0LR๊บbฏชHฒŒกMู›ฯI”ม|�๗�ตO้ึฤ>ieaMใD"eงปจฤn3I,มIˆ†j๓P#b,R7^tา!2ŸืD%“v ‘�(ใaึšํ ๛›–Œฃhฒๅ'X๎ฐฅ‹ฃZkGŠ„Žะjู‰้˜๗^�๎ฌฅฉAHSCท่pez…'.� ^็Z=แ�ญK|์๘ททนน๒šษgฬAุ็m”Ÿ—ฤธฤนฤ‡ ‘ข-K=„H’ค์๐{ฟ�ซYMธ๏๎3 ’Wฯ˜น„บvloW๔rEฎฆ”!๚„๒ๆ5Jq0™suoสผฎYิ5A&ำMYั8'ๆ3!ะ45A%ไE‡^ง JK mำะ) ฒทฯู [ผt๖2_�ฺKผ�ฺ[|�หษพ๒็ฎฮุ[ฎ�nธฐUquซโฺํ†ฝนb:]P–%:@b…D้CคฎคcืQ|*๏Hตยป _—”UMoะgmuLš$ฤฦำŽ�ฺบ +มa;“} "็นz๓&รมuโ๋EAง฿#KŠ$'ืš&๕๚ RMวๆ์-*ฒ$e˜งlฯgคึา+ ฌxฉIจƒฃ s๚ถ/ฏ/ ๏kt4”อ> Evฆภชฅ5ญ,1Jถq้๗D™b$ wsŸnตล�AT6Fi‰็]j…๋ฅBม�ํทธ๔ยงูุ<ร๗�ฤอ]๗ผ‡JˆU “ท ๊้‘ฐรล4\ใปLๆ sU“6Ž>ย๚๚1:EŽI3ฆ“)�ร?๚ฟ๒?�/�ฟ๙~‹๗kฟมg?๛Lwvx฿๛฿I „u›’fฑหbฑ &‘A$:lžŒล๖„f†ฮว(•Š–� ›š gZฑƒv๓›์_~†ัฺWo—ว>ส?�๛ฟฤG฿sœบ๖ิญ๔M|+ Sผu๋€'>�vฏ�ขฮฦ,าT$~u Šา๚�.:6X-&&ฝN—ˆbQV-{[ดBP ็ม5ข๋‰xญ+'้^mƒเฃธทีuMžw๙๒—�”ซo?ฦ๛น—QZS•ณF“�”�๛šF+:q—’.A�ผ|™yZ0+kฎ�ผ5–ามฌ๑<�~๏";ปS‘ˆ) iXYษเ�nb`ฑXฅ†$อPฦา๋๖HูงีUEš$ืฐณทsg}œงœฯ™-J๚�>Ib้tD�œdy;กฟใ“o’ค ฿๐tŠy.„ั;*นฑ3gk{ฺส๗‹ชbQVะJP’4กฎjาTต{QGŠTำT5Qษ{จ‚ฐฃฃŠX“’KUV$ฉ8'อฆา4cะํษsญ4yf่็อ�.c�เŒeกš๙‚ฒช่C�)อržํหWIŽl’๕{ฌu:ฌš!dG#5—v๖'k�žŸ๊†nา%M,“ษeศาk=PƒC ฅเ(�œ ฌ)ฐ6ร 4Šม BF มวปTn #iช่ค=’Xขฎ๏rไฤVNค๕ำoP:๕ITX›2›Nน๖ๆ็ุฟ๘yŽ�๗cฌ��]Dฟ z™ไฺ4‹VM"<ูˆ-aY˜Ow)CZŒ A‘w๚tป=ฒN2)!D>๛ฅฏณปhX?zœร'๏แ�…‹�ูŸ�9W�~‹๗ฝ็azฃC ช�ซx_ขฦ{…1F{ๆทŸ%ษS๚‡�Š5ฺๆ˜|„2-ฅ *าฆฝsL‚Šญ-ฝvท๗จฒC�ิ'”‡N%ษ*D”ภHยฎฦrแํ๓|๙�9ฏฟz‘�d9ๅySU‚ํ๗๖z CะฺกPt:z�nkค"์k)บ"EZ~F ป^ฎจฅหฅภิชLtkฏ�ด฿ถmJ…+ป๔;ศ7๙~่VIcZnT’%˜d๙พ‘•iโT;ผุ4%zAเ‚ซ�IกvฅภูKgK+๖จkpnAŒ_G.�ุโ฿๎‹�แSO๑]๏��อ_๛yพํCำษ,“ษŒ๙lฎ&๚&TCชZ;\ฤy๎ฮp'wจุฉส๗kํr=E๒�^RVdะ 1JhŠŸำT%>H#๒ศฝ๗๒ิ๙ืx๙��ฝ๏nŽฏ p็ž๑a&qJฆV2ห�|AU–l9[ำ)๛‹J`ฮ~ุ๔ุ่๕ุฉ๓9r฿—Jณ^t@+า,ฅง- ๏ †I†๙ษŸ๘ลOurูืฅi*…ง�วFKญ๑ผkฤLภXi_šบ#ฃ(e8ฤvฯ�8\ำฺ5ฦ {N็๏ภ๏‹vฟ-Sฒภ๑J)าึwฝฉ=ณIIัm�ึ�ฝ๚RknŒ์ฅ�l฿฿B]ห -Šฎ,สจ–ลšr๘๐)t:เ•๓3&ี'๎z+ฃ๑;„ -…ลด�๎หฤ1ู Dกˆพอ๊ึโท‹R(dwฝgแˆ#šฐCฅจฮๆ ‹…ศฆ@ใUเูkŸa8Xฐ’a}ฐฮgฏzสฺ ฌRึ5“้”ฆฉ้)>ๆe-{nkฐญโขื้H่…Q‚|4B\Œสาํฐ~๏๏�๑‡จๆSฎฝv•…ถจฆbm4bt๔Œฌ–”ยf*fรไ[�{ิ๓Šxโ(™1xฅ™ว†&:V๓Œฒjุ)+†iสํฝ-๖f{4Z3ส:TMษ 3คื้ำฐภ(O/R5 šXT…ม2(F ั+RซpพมฤMๅ‰1ล#vฆฤe<จ 5.(จv˜|ใk๔6ำ฿x€jz •mเŠึ ฿~ืŸ� 8๙ฎŸฆ่=r‘7ต†vฺVZ Qญลท„4&(›j�”Qยdndน๏$อฐ6!4ฒฮ๘๘>~๎ง”ฟ๚S?ฬO�ไ'๙Ž๏�^v๖๖๙อ฿�mพ๑ฬ3˜ฆb�๖5ถn]แุษ“ิ „ุ$�`าšƒ[ุค&#ํŸnuส2ศๅฮ! GหŸM:Cู๊EN�๓N?LDฆ`ฅไp* 6๏r๋โ~๏ื�'ฮ฿š0IQY๙ษ{ฉล˜‚แส˜ขืฅc4ij๗dyJั้ฐ: ˆ๔๚=ฌึw�2…ณ �ฐนรผ—๏$v 2|-iฃศฒ\†ต6ศฤด้dห๛v)!Sบฝ ๕าFบuVปœศ๔๎œฌPuk-ฒโ€ฏKน“๐h%„4ฃฃ๘c`คYJ๓;ึฌ1ภ��Œ?y๑u~ํ๑วนตตล฿๛ฑŸ็ไ &๛สลb…%|ลขžŽC š่๗ะษ*1้R+pณ๖ตLปšเ—$WKัํpํ๕ฏฑุปLฏื#ํmด+%‰Vม๐™_๛฿x๑ยuช์0ีK`4“( IJะšข\ ดกำข ŒG#๒$eะ๋‘ฆษˆฤโZk H’ปK๎@“XŠBP*ฺI�ดA#โ๘(^�‹‚ลAก–w`Œ‘€pvŒiจถ๋QJฑุ–มJสeณHrฑฃmชฺdธฆป�%[�็J๋ ”G!รS3ฏธp๕&ฟ๑�+�แSOpwwฤ฿�ไ/๐ญ๏}„r>e:ูวUXํะด$k#ำs‘ฅbXƒeK–ง4•t„ถ_RŠrQ| n๕ร“y)ลŒvบT ๏ฺ‚ต$P4ŽฤZฒ,!MEชา8า†ฆ– lูŸD๑›H‡ึ:•-ฅX!‚k’ด–ถ๛ณ™<ฏ@น(ัZฑฑฑŠัŠEๅ๐ศ{3,,FมtQัอS๚๛]ๆ๓)ม{๑หGQ•ตไ“�ฝnAฒRp฿ทแ�ฯิG๋–Ÿ๕เ็v|ำษ็ๆ[นJ$•T’PI !‚$a#l3`lฺq�ม๖๔๔Œ5�๎ฆ�3ำถืšqภ^ใ6LๅX*UReUธทn'พiง_˜?ž}ฎจต๎ชช[uฯyฯ๛๎ฝฯ๓๏�ุC|่ง�ฮ๛?๖๗=ผอ0ตผ๒่k�ๆ?�S>�‡OSWƒ,ก HC‹ A–ฒ๐ฐบถ๖Ž&ภlถ hบ@ง,wผ๓-\^Tฌฆ)ฃฌไพ•U๊่„.ˆšคศษa5r|eฆk1ฎC'pฐ\S$็—hญIMตG…๑šYตวtZ‘ฅ–$ษY67AA‘lศ`ุท“ก!!ง}้t7'o“{ลDšีvฮ๓•?๘'˜ธว{>๔๓l�๑ฝฤะˆ`,J€‹ g��ฤf$ณญX1�JHb< ๚-IRฌอ๚็Bำ/๐žฒHp@ดฦ$่$ล;)H‰1๒ž๗ผ›๗ฟ๏|๏๗พ›�ไGธ๛ฎ�‰ฮa“Œz~@ps”-hฆ;ธ๙๋ไ+w`m‰NFD*Vชื�˜D u๚AไV๋Y$I'\ฟq…f9็เโSิปฏ0ุบ๏ึ@๔ฬŸ�ฟ๛…ฏฒ�|ซˆJ‘้ ืิิณ)๓4รีK๒hศ†C†eษxผสh8"/rส\tJJ‰F0ษH–โB‘ๅI’H RX-$JาT๎ท#v’E‘fฉhxDส�ฒb๛ร_�ผภฬR?,รpRฟ*ด‚h™ชŽ <ฦˆR‚ฏdH1`m(œk๚!Dพท2_5|๓๙๙—O|‹ง^y‘๏;y'๋'Š{๎8ลlvH[’่ญ%๋[ฎA†‹,ล๔aZ๒—,Pฐ6ํiQอ฿Ax'ศœ่นd Q๔๗}ฅ๗ึ›$้๕Pพง’ŠLณ9^แ‰—_ใKฏ_&?6aณ� ทš4ฅ๎ ;ํwื™vŽ5›ณ`ม"DLHHฝใ�lE๋ษฅ‹‘Qšrฃช(“k,Uรดซ้|G๋#ใ4eฟญ0?๘C?๙ษแ @+จ๋mสd5Kฝกํ฿"๏ซ฿zลsื๕m3= cŒค‹c่‡2ำ๛ยธ(‡šx•{Dฟu{฿ ู O๒Qฝฯูƒภ๏u%�hื~ง๐#I{ฆW,ฅ5M มQืŽฝCฎ�ุงชkŠฌคฬ‡#ก�GƒƒVbอhZ‰ A ๑เ#Uๅ๐พWg๊>๗ผ‡ษ;/๖6QึK๛š๊ร๛้[ฦชeKตhฉ๊NDCฺะถึ2•๓ไๅ'ฉ“—Y)V]รZž3๕šวŸy‰๏พใ�ค6รฆ–ะรมs4mGี4ว’๐'ฯ�ฟ๙�/s�ึ�ษTAU-๘ึื~‹ญ๕w�u/ชบF�E1Š;Zvg†่[ึJMจ ำeC๐žฆZฒ่ฯ)ญB๕™ลBโFgl๐ืn=€๏*\�ัu2P+@[I!“Gl๗ํ†�EQใ ฉ+Z›�]alB’—ุ�วM ”…”o+ฟ$€$โ[9ดšjA5�a{}ยฉS› ‹ฌlVR]์f`ชฝ็ษว๐ีืํกำ5Lฒ‚อRyฝฒ^๖\ถ [r0[AึขยสLc�'๘^wwˆีu†[๗q๓ี'๙ใ฿�7œณ๗ Š!ฅ)h•ฦ1+ICdk8f4^auฒJšeฌฏฎ2 ‡LC๒ข“’HำคŠX๕๚mz๘ฺ�Q s*๕GŒ�sJ~กแzˆ�HWxb๛ฆล~ƒทฆง"•,ฦhk)9ไc<Šฮ›•"tmฟ๙žrP„ะ ฤ\@)T"DS~๗O๐ฯฟ๑(ฑi๘ูwฝŸŸ๛ฑ3ๅฬง„nNj%โ[) าG๙1๖*yฮหบ-kจ(ื…p๓ Šกsnก๔์ั ะ‹ฅ ืีขบ7 ิ>~ให๒์ผโแปOQU ดาŒาœซห9.tฤฎeแ›…ฅ๒ =b�ีดs.’ุ”Qš0)Jส$•๗�Ž FLา”Yื2HSขยZ&Yฮฅ๙๓ม~�“ึZy(ZC–ƒŒค์ย&ใ ฝiป‡c„ถ;J๖>๚H�+1:$  HจชN„X ผ ิM+ถ๏Qบ๗ฉบ€1†ผ๏?‚สc…lื:vvg\ฝzภฮอ)ม966F่D„�K�ถ†บ้ธบsศ…หืY,Y–ณ2๕ฅ))Yš‘&N ๐’ !ช‡พcฯ-ลmใ ศฎh฿}Kแฎ๛ษ/ฤ~j ขRQ^s]w1�sำU�‚2r่(E‘\ู�ใ�_f4Zส็a†„ นs๋A?�*ใ8แ�S้แ3็๛))b%Krฎ^แ?Ÿ๛ง<ณw‘7mฝ—�ึฮ๒๊sส+ฏ<ฯร๗฿mn`ึ" KŠTamไฦa +ื™ B‚๓ŠeตคMR–ำuว05XจขhƒM-u]Q-ๆozGืึิUี๓•r˜%Qดมyสฒ *อ|:ว‡Hำtฤเษ‹œษdm‘๕๕5•n๋๋[dyF‘็ฬ+‰ฤŒฦ4uรh4dzpภhTาึ•ˆ๘๚่F็„" พบงi้z`�6 Šœจญ๗rS*KQ๚ุOไ9ˆhฦ[๋|เg฿ห๗}�aฎoํำ”K๖Ÿพษตฏํ๐๛�๎k�ษฟ”/�แ3\ฟ6csc‹ต•†yŽฑŠAf(‡#ฒrˆZL‰i �อ$๊W[ดตฌŒP”\ฟz๋๙ม๑u*๋Va•aoน uง6ทู”<}ๅ*Šภฦ dฏฉ่š–ฬไtthี‚I™$ฺn†Ž ซt;"Xสd„VA่ˆJ"U›&ขuภš„Ew…๙์�WEอY;๙.6n ช=ไ๋Ÿ๚%�่ำŸโ‘๗|Œw|฿ฯโƒ%ธ@ืฆำด 3Y!ƒR2ู>C>:๔ƒtšJ•ฅRย%mน๘ ฃ#F'b�ŒQDH}�บRŠฎi๛Tฝ‹รซ๒ฬา]�๖‹CKืRW‡„ hืั*กู†bใ ฤ๎dฐ บ@k…ŽJR;/Ž—~('๔7?B‘…่ฉซ%—ž�๛ฏ}�฿Œถ .�ึฏ�kžู5ฬ’-ฦฅ&S z,๎‚D)L1`<ณ9ž0ศS๒ม›eมสสI7ิFถjzแู‘+Dqขดญd'h#ญˆ>HZฃฑ๖ึ {ด‰Aๅ2˜ˆ•8ษา>ซ๗๚ฆ?+่ตฝล"*Š)G่*it๋kGฅFVZรlšŠญถ ŒIฑนhŒ๗\บ~“_๚ยW๘•O�1๗ป๐ฑO๐�ทฟ™z1c>�ƒP๗ชyก D€fHฌ<ฟEซ!tืตˆชOAYฆŸ3FI๋ตฏFKOE์‡๏ไŒ^\Fม{bฟไลqNJYTk๎Ÿ<๑ �๘ำŸลŸ\ฅ("ณบeฅ(pกbง๖q*a5ฯfZต,ฃf”d6ฃ๑pf4fR˜yTLฒEd˜๛M#Hgฃ๋iBฤ�๘O�์'k Kšฆฅn[šZnGSงLk๒ร_%{!๖?t๏็–MVDZ๒็mฯeeY‚ ฑ๏ื„(‡xื9I๊ŠGฺยนดz>มฆซไฆฆ?$•6TVิ‹–‹ฏ๏qํฺ”ร้’รiล…+๛8ง™ŒW™Œ†Œƒ[ฝตG5Š�4า�M๏‰Oแ‹šฺQ7�ว๛ŠO๏ฆ?ฐ๋ฆษŠUร(ฑX„(ช๙ฆ‘ƒBพG€‘`าoจVฺ>๕‹lŸp”๙‡ด�‘Dƒf\ผzภ;NผC�ใฦR}�ฆ2;เS/�:ฑ˜�?y๗mžๅั/�ภpฒ˜ัdวPn‰;ผภขLฮA[0 s2ซุนดC]ี์xุน|™บฎ˜ท-ฦwฬช†�yลฒiYY[๏i›†.D.MgŽฎ๋ค38อGฤ๙ศ ฒ,“–2›`’ค`+ฦ+\<ถ-ƒa"�ิ=m]Q”9ƒR|เยiหMด\.‰x\�1/่๊ŠฌศXฬ+๊FR�๒,ฅํ‹]\_ฎถ–ผศๅฐŽขฆtี฿ี’\eคำxcuƒื้พหฑrชเด๓๙๖5๖ฟ0ใ้ฏŸใโk;(ู�^gฒ2’DByก,ๆs\[1ŽPึ20Š.œkIฒะ1ศsœอiช9[�ว™/–,๓Œ๒Ž�๓g‡%ลˆ$ห ฌ$ tŽQ9 H,๘$๎า๊@™eคฺ2ฒ+D‰ตํn’™’ฆ๓ดaNf ๕’=มฮ*’จๆ๕ ู*Zรข�ง๕Kื_gqๅUฦ�pโž๗‚ๅ~ใ็ฅืฏ๓๑Ÿ๛‡ผ้mF)Mื*šฦ3›ืิm M-ฃQ�+บJ)2;\ ต‚”:mwฦศA\พkฺ่ฅ$6Xแ7ญ•ฐืu=‡)าอ๒*ฮีd๙ช eพฃซwฉ7้‚ยว„ึy๊�+ฤPแบฒัqฒมqฌอi›J†Swิ6Hฏฮ–!D๘pูP�ู๋Tืe๛�๗“ŒŽใ—ืn�ฯณฯฟยŸ�้็q[ Mข-mž G�F๖ššl0duS„N^ฟV’๎งaP”#บฏแดฆoณbK“็ฃธ€ˆศaญe๐‘mU”เFหf‰ๆเSไE�งจษณ�O่ซ๏@�ฒ•ษRำ[l๛ฅJšžM$"�5๓[_Oƒึ=UจEกN๚”ฆใ+ฯ=ฯ�๋K_แณ_๙ ?x๗›๙{้็9น5azp“ถ:๕7‘:Yฒ๚P1kฐึ�*U1�๐p๋k-uฆ! ฺไg’r%กยŽ๔DIญัฮ8฿ัz๙<"GMnต;ื‘ฅ)/฿ุๅฟ๛฿ๆตD๑Žท>iฦLNVษJหN�๐ภฺ1r“ฑ=ณ่Zฦ&งv‘‰อะ(*ืฑš%ไั…ํe๙kผว{วฮ|JKI‘ฤฆ‰ฒ4š�แฟ๐ษ4M‰^์Q“ษmLbฉชFชๅ€4•ี4ฑ สœ$1dy"ผƒฑ}ฉLjมYDฆ๊ˆขญลขย‘Eค‡eฒ,!อ3ฑ’๔ั}y‰D)1FHบY#jๆขฬฺ่ภฮ�’6D:๏hO�z†eษdTPไูญP‘ฅ๗Jศฃฏๅ& ^ย’D…ฎ ด�QHŒพฤžซ๏ท๏Q)’�็จตฆuึ/รŽx{9*‘อ#Fh[แ_ฺV์_หถๅ๑้g9ถ}‘�&1 ฦH?๓๊pภ‹็wธmxƒญ�{ุ^'่ฅ๋๙ฝห�„�๏^e๏Zย‰�>๎]ป—ง_zต๗<:2\ูฤอoเา5ด ิ๖ถ>ค`ฦrY4žฝ้œ้แ!aน`wูPค)7ง5^k๒ิเc”rykะสฒฑฑFšฅ๔ 6ต$y.๐sU‘ง9Mฝ$I4I"ฑป‹ๅฃ„‹๓A„f:IฐJ2ฆซลœัhˆMS๖๗ฅ๋ธศS๑^ทžฆํุ�=ม‰ฤ\ึข�DหgBภ$9‘ˆU$}นฌPฺฒฒ2ฆํ1ส†”2Uืม5๘^”yห• "ห๚€โอŠƒ๕†o\}Ž ฟ๛๛_ZŠ๒ผ(zฟญB+รฒrิm+lš`Sั[ฌ42ื‘Vpmวdu•ฬณ์h…ƒร)7n์ฐฑ}Œรฝ6฿๔ฃษuc™ตŽอแE‘f ฉัฬgSฦ๙€AžR7KฦENf์,+œ[`’Žดื‹ฉXJ7ดM.€q$VผมหvJชืฤว$fLš๊๎uๆ๛๛ฬžy–Iyœมึ��สฟ๚Eผ๑—�๚?โิู๛‰~ษbZ3›ีด.psNYคlฌoAญJ d�ึ-uีP7ข91Jh�?;bmGWใ„ฝ๘>ะZsหZz$X”ƒ[๒ฮๅตkธv†ขฃํšบVž1a๑ชุย/vˆFง47ุl›โ B•‰B[ W$"�B%ฅ#พฺc๗�น�์2\?ษ๊m@'#>๓G�๓WXฌœfmPฐ\ "1์`"!O9ฑ2ฆ™ฮh0lmภ$น8’็ๅฮ˜”  ]ฏษ๒^๔Yy1ไ�แŒ�็�>ำถผํ{฿สVž‘ช†ฉa-K9YฎUไXZาฺ่\ฏZชฎใ์h…]‹ัe็™$9s๏ธ8;คn็(าŒA^2k0e-ญ•XV๓๓ำ?๕W?ฉ๛I ‰•JQ›šVbไ\็{฿ทl–"D ยiป^yn%�วป^ช฿Ÿาฑทฃก.x–UCŒrแ„>%ฯdz๊บ฿‰5‰>–๏hใฅผ„Iำ„ชu,›–บs,�›(Eส๊๊ˆีี!ƒฒ่ี‰†<z่S฿่U๊๔๔\ฒ|€ฃีtNT๙๒๛r`k}—ษ๛xิฃหIผ๎Šถ๕h-CศัEัvvโงํไBn:/�_ˆดฎใฉ_dด~ $f1Zลส`‹ส˜บไŽีปจ|umG็™.๙รW�=‹Orzผล+็[�z๊�œๅ…o}…ื/ผสสึq&แ-”k1ฃใะy2ทร๒ bฑ>ปEฌ„U+bฤส| "œS฿ �กu?Xแ™ฮP€M5ฦXขt]'5ฆ๓™DฆฺŒ๑pฤข^0Y+8นฝBSตTหXR+b�6TmGื9ชๅœ,+๚ํอา6FC–$LงSŒ้UตIFA9 ศRZ'ษNวถท˜อฆ=Bdh]ฤGQฌ#ษีsคฉ+e)Gcฎ^ฟฮขšแ]@Ÿ:ม๊ฦ :็ู_ฬ9X,ษ3นฎ๗๗๗˜ฯFY๒๚�5œ œŽI“œฒ‘e6Nษอ:ใdLPฒู.ฺZŠTส‚บ๎ศž๔ชc…‹ Œtqฮ๒ฦM–O=ƒ+O๓ฟ�ฤ|ƒฟ๚w�V6Žำ.็L+ฆ๓Šฝรญk+C66ฦค™ ]ำั,;fณŠบ๖t7D%ฺœ>EฒฬKžฟพร�๕?�Ÿนนว้ท�ร]+C:Ÿฐป˜โตp๓ฏ๏ํ0TCฦฌsyถ^‘ๆ)m„E0ฌ•ุ๊p๗๊qVณœหQ๖ฺ†ิ$lๆ9ฅี๖แ;kYยz–ฒž•d(ฬฯ�์฿�d�ดฝZZ.€ค?Œั$V„]๐1 /เ‹e}ห w๔ก{ฐYส ๘%?pื ็ƒ|บn$เพ?๘’D�xะ็\'๖–�มOUทt๘{UK’[’ฬ0ฌญ 9ถตยๆฦ ++ฒL฿9x๛ฺ ฟmฌ&Kาฤ๖"ง?๓s'‰X ผpฆJI0K๔๎" ๚ึ๔ฆ ™ฮy\+ุ๊๊Gับ�} ^,L2E สšฮ �\ีมห*ฯcฟDฑฝวๆhฅa4˜ �นเ&�1น e>ศM”š‚.<อŸิ�ŽฏฅŒ’už{ตแ�ง�วmซgxโษ/Q/๖y๘„ลM๎c0{™บU๘b ี๎`0�ผธห`2ภ‡์^พHทX@QฐlZๆu‹๏Zšพ?yZU4}มJืvTญรyูB~ฬZKณฌdะ‰l0 ,Jดnx็�oใ๏�ยฯpแ�^}�:ๅpH9ศ!ส{>X[฿cXYŸฐ2ส…ปV†ฎih\G™%์์ใC`eฒBžfNูX_งm—tm J�๛ƒƒ)1*:็^"nำ#[Xู้œc:_ •ยนญyQเ;๙l๒4ลน†๗�ฤƒ|๘#๏ๅ�cgธ๐ฉผ๒ิU”’ฐฅ``โ๊บฏ žฯษC‹5VBb’„ฮ9’ผ O,‰ี hšฅˆดˆ"อsสแˆฝฝ]šชฆธใv๔ฦฉไฦ๓Lเh%ชี:YยฌชXศ๒‚ีr"๗Y[3H &"$ำŽย$TS[`ำ–ฆกYใCGำM้|E–จยe*Ÿxžรห OŸฟ ู„ฟ๑๗~‘๑pฬม�ำ†k;Sgบภ`˜qโ๘ซกm:)ๅ‘ๆ•'ขษ๓„,WษัCตk[ ั๐-:J–ท๋Zl๏Uvฎฅฎฺ~(ni๊8๏๐า$#๚ื5Xซั&•hN-ฉ‘Zk‚[โซ=’lL;? (ศว๋Zสี16ํ�ž‡ืGŠyใŠ Oธใฎชฺ่ |๛S$y ž$Yฝ‹ฏแOxๆ…—p๋wโZวฌ้๐(สฒ`4,)๛#<‰a` I’S†d6กศคvทศRฒ>Jฺ+po/TS(’4ฝ5เdY&!CV฿4อษฒŒ4ห w,ikzคืQชื�กB6>zŽ`uูjc?+-_S้ฃ”ฬ๏ขใ Z’ฅ)M�๒๛_Œ��?�Gž|�1�ื}�Ÿ๘ ผ๋ํo–รปซQxาT์ฬม๕M˜Fฎี#ฅ�9ธๅIดๆh)“ŸG’�BํMŒbkถ&มEŒฆ๓"Nn\ื�j�๋Žยบzมขุยคัฑศrพ๙ฺซ�ฝ๛+|-Dn{๘^ฮ“„a’v›%วFฌ—%ำVcSง‰ึrฌXกศFฤ9&ิgอๆ4mหย;Žๅ๓^อsฺ˜wY’ขU`ฟQ�Dฅ4ดsย4อQ๘FG$`ญ%ฯR’$%+rŠข Kช>‘ช(s–U‡๋3อ็๓YbัDฒิRd๙คI"ำ�‘m$*ฺฮ‘ฅ’œีvu�โcdูด์M—ฮk–MG�y’,a0ฬฏไœ9ณฦ๊jษ๖ๆ˜ญอใQฮp˜’dŠ43คฉมฆGLB^ฆ๒A๖*Dce๊ Q6bQาG•ฤ๋ษลเ‰tาฮำ�ƒžMkูฌธTก่œงช;–Uรl!Jๅฎ“"แ๓ไฆำJฃะ: Ksฑu…@™v•e“a5 ๓‚"+0 rkqQ๊ˆm?l%ึ0Yึ >u�Ÿ3\นสDงผถS1[xฦfH�6L—‘mฝƒ.ถˆํ งม ึฐ,๐8๖nฮIRƒ7 ญ[ฐ?ฑะšบih•bkEบ‘]8˜. X”ฑ’Ž–—dYษฦๆซkk ฒ"#K-iYฒฑฝม๖ษMNŸY็๛฿w’ฟ๛โg?�ฃ�ม๏Ž^ปฬh<ๅHด"+ฦคy._8ฯ๛ฟ็-�ฏ�๐ฟฅศ5ฃอŒฦ#�๘ฆ�๘๏��฿ๅ์™u&ใUVWW๐ฑ%-Dู�ต5$ u�2=œqxpˆ๏ึX ~A*‹>:ะ7ž•Cสr$(‹ฑุ,ว&)Y"y๗Mตค�6|ื�Šึ๐๊syๆณฯ3(eP}๚มtN[อ ฎร๔Ma๛3Iช๋ขEWWื1X๒ษมyšๅœฆvดส MŠ^ะ™ŒืX.ˆ๓9mˆ�lZ†ƒ‚๕แ€Sฃ1gWVุ (ห.F’Lฒ๑i�|ษrน ŽฆRnฦข๑L๋L$K=นYมช5<-Ž%ำๆบ\ซZำ‡๗าึไZฯมตŠงฮํq๒ฬ=�ƒ๔/ุ:vš๙ฒแๆ๎’ƒYลฒ๑์,ุ\p๚ิ:พuฬ—ฬฆำรš;3v๗fX+^]ำนฎe&ํ`>เ]KbzŒ๏ฐฉค<.ๆs้f๐{iU$ฯธ[…&าVป฿เ:OŒขyItค]าฬฎ3฿ปฬ|็.ฎ3?ธlB“ฎอ:Uฝ์{zจถ๏!—รBฤt!‚ „Nฤฉ 1iA6>Eปlผฦ๔pษ๎…1k[จrB9,)‡ฃ$กXV,f ’จจช†้bI]wย ฦ@๋;ูBญุ6ฆ…๓ฮา[ถส’\)\–้cช“^#ƒ(:�C๐1Hq�vTu-Mf!Šzฝ?ผ๙3ˆUTbUยxBOU…^�ญ&†@t^fญฑ6แ…ื.๒?�‡฿เ๛ฯฟม็Ÿ็ง�๚~�ฃใฎ�Žำ6sšzฑC+ช ฿nD้ฎ…. GŽTโ๒ตญ@๛}|uื‰8ZqกZ็™Wณล’ฎkYV หล’ƒ้’๙ฒใpQ1›WTm`ัVЉšNmR๐ุท_ใ๏�›_ๅ™ฟ�M�}j…ส(MŽัŠ{Vึ8Uฌฒe2Jmุ( ฦๅe0ฌ–9wŒื‰.า,kฆ‹ฬwcน:=doฑ`^-ฉบ–ฤZ†i‚ื0*Lา”าŒ๏SEญa”ๆ˜�ศ_๚dY–$ฆ‰ๆ(]#‡E–Š๗Zk‰ERˆpjฑฌq�‹๏ถ๓”eŽึšลขฦ๕๙ุ!J6wšZ\ำ‰คYยฒnนq0cQ7ฬ–tพรZƒ2Š4ต G)ซ“‚๕[[cVWJแ�ญยZ%)>:bRแU%V�ช7=JŠ‹ฤž^’šE๏ๆGฆMฃA๋Hˆ™j-"็[ษ@๎น๚ะƒ#!K์๙o�g๒‚ฑ$™x5เ~ู$๒i›–ถu๘€”ฝ)ุต|ฏ'.>J\ฟภฑQBŒ*Œ๐พe˜žao‘ะ์็<ธ๕oEฎ �๓๓�’gš_ใtq ํ'ผถoูป �?Nณฌ๙ฺ—�„{n;Cบ~šb๙mบl• �‚ล�s๕ตืY9yš6ผ๔ิsD•าฅ9>xฌอ(aฏ๘ถฆ ฏฃRขJ[1:2ˆ ้'s�q็ ๏xhƒ|xฬGฟ๏Aๆห’๚๏>วKฏฝฦ๖‰34๕!ซ“w�s/๗�5&ห†4MอฦFษ�zฯ?๗<ใีŒŸ๙๘๛ธ�ฎm>�#?ศ�ว ๗=๘0/ผ๔"IžSN$Z4K3’$ํฝ๏VZ๏|$(™‚‹ข MRœ*ร&†ฎi �ฦ m{ IDU-๑!เป–ป฿v’�่{ศำœ?�wŸๅs๘6I๛ฐˆ(ส"วyฯฒช(‡#|ืc2ณ2žƒง(Kฌ…,/OV0xฒแ„มhภ|z€สJ0 6KYฮ็4N<๘|ืฑZไXฅ8จ็\ุ฿#ี–อaษd0 5าWpํ`ฆ™3,%ŽX‘ะ๙ ฅ ‹A1`˜ฆx/\g’ฌอˆJธT2ฺ0#ตY’ะช†/=ห“�'ฮ�ฦG~โฏณถqœ๋ืธpe5{ า4แถำฌO2ฆ3f‹็#๓yห�ดๆๆฮ!Uีฒพ:๔ก๏LะF”ๆYf)r‹ ฅb;3Z’ต–๓๙-GJื ฺา,Eล@ืJ I่fดอ‚ช๎^Kลoืั.˜ฯๆฬ๗ฎโ�‘”|0คqžๅ�Eสษ)”ฒ่�คคsEq-˜#YK™2F~ัoฃ}น))น๒ำk็Ÿ}7ื๗:ž�๊๏ps|šร6c9SถFข์เบศม|I<“rภl:ฃkj”ีุ4ฃH,ซรF+&ใy–“ฅ‚คI"ก#ฝCC๑�๗ศC mYbzDRž๓PWหบหํญYrฯu_nbดุ๘Ž~^สฆ/ศฅภํมiœ๚๔9-Š๙้ม‚_๙�฿็๋7y์ู็xวษ�๙?}ไc�ะ‡>ภ`˜ันญฅR%�&}47‘ฤX‰ๆึฝกG tŸG"lmภ{ฉญ*้๗!าิ-‹F`๓ถuฬ— ฤภ�แ’จหฆ�RO‘€ยE–JxYT"J^��็�ฟม๓6ๅžw>ฬ๑๕‚i๖š%&nฮ—Œูภ^Sq~6ๅ๔`u�“วdp–มh›kณ%“๎4?๖ฦาบ–s/?ว๗ฟ™ผปŽqsโ๐ัฯQ:cwท"อrŠฆฯ‘™!ฑNีt$ผอhCd>›b’T� '๎‚ชjh๊ŠบชฐF1Ÿฯqญhn;•๒ท�ฺxืmVฦ้x“ฏ|k‰Šื๙ูŸ��x๏๏~็=<๒ŽGx�Cg๘เ๛�ภ‡>๐�|่=wp๒ฬ\ป1ๅž{ถ๙ฤŸ�๊เy��ŽกC#r็�o`8ฬุ>};?๒รไ™็^๛š—Iขด�FC ฐ˜/ะ}3^ตฌศSกO\�‰]i)b‰ŒลนŽฮทRMt/๓›‡�๛๖�์๏ต๙ m d==ตA� ฅพnP!๕h*R:M๐ญdลฦ+ฬ็‡˜b@–&tห›ๅคƒฑs,šŽ��ฬึ6ื|CšยZQ2kZTQเ่(a#@ู๋Yฮ9พนมึ๊*]ำqX-Aiฟ Hsึ[X%hN …%D‡Q :ๆิ๎ญ ฌฮqn๓๕lษ็~�?๑าณxๅ*|๚3_ๆ๗๗๗x๑ล—ฑ ๆKqb�}๛1ึฦCชฺณXvไEI]w์HK าšขะ‘ึ(Š"ลฐF2B_๏จๆ๓žsmฺ่ชรET่@YšzJ่*ูถฺฦ539Xผˆๅ|}๔mSาb•”ร•ํพdbบI–•ข๔๎หดQ๒` ฿นๆๅ–Pญ ฮuศCมq๙ฉ฿f~�“�฿ษล _�ฦ—8ฬื่ฌิ“ŽMJ‘ZuCํ5y™Q &iJจkŠDยPชบ"KึG#ˆบm(ณ ฃMืฝข[T็i*a,ก๏9?žc‰๔�O’๖พmYnn์๒…GŸลGลh<ฦjEž‹�‹b๏๚๏"ะG^๛ ”ชง๐ฒDฌฦ}๐‰M &ห u<๖ฬ �ใ_๛~ํ๗~‡Dๅ�อ�s�•?๗#ผ้ม๛พE้>)-ŠCษXM’สฦ๚๏ƒะ#ฒแ+ขBา{ซ›๗Žบฎ™อๆ"fDs0[‚bQขฒ hEUี4ญœsฮ{šN๔[ฑท7ืวE�v$ึาtญ๓๘฿~๋w๘ฦ๙๓�๗=๏ภŽ ƒฤ2TCฎW‡ธš‘Mi”'WH�oำารษ๑„ฤ&Dxxu‹๋อ †๙u[p|ฐA…P}e–ฑฯKRmธ8;d”$tMำง�yœR,ฺ–,*ชึa>๒#๑“�l"Vฒ,O‰งK9ศbค๎:ฎํ์ัถN’x7.KRFฃL-ฎ“@–�CU�ล`ฌ! ธถ;ลษ ห‰ใซ�ฯ n;ตฮ๚สP&ห"%อ.า–>].ะˆpฃ‰‘CR)9Hลฮ 7˜@8๒�ส�฿S!ฃG›@Ÿส(|™kคฌยป�Ÿ{ปy0ฤจIาพšฯ‰ง9†#Qƒ\\ึZ น•ง$ศภ๊บฅํ: ]ฐ–ด็๗“TิถฦZŠPีฝอขGY๊ๅ‚jฑฤวH9ฑฝ1เ>v†‡ฯจๆKF๋ '๎|'๗�6แ�๏z€ปo?ฦ๖��ศ{9{ลn� �๔ฤuข๎>ฒbล�Zึ#๋ฤเIำ”4‘ะ ,g<๗ฬs�๛O}Š๖+�–sฎ๒แ๗}˜�ๆ'’พ๛ญd™๊ K:ดŠX-kyฟlƒฝ3(Hเื‘…K)Mšf=’*E๏๓ล’๙ขลจ[ัBhญษMช#๋๚rI~ิZั4Žผ,Hญกช–ภ๖‘€ ย{/;O–&|๎…๘ญฯ~‘ํ‡๎d๛�ำdiฦH ˜คXห้ษ&“,รักI€PŸ“ฌไฐุ๋ฮ2†สSซ„ฑ)‰ัำT ๛M…ว3ฑ)Ziฆห ;ต[™พŒ&Oดฑ์TSV๒œ๋Uƒ๙้O�WŸTZ“&–$ธ$Mล(b Vศ๓โVๆฐ,๛0EžJbZฒศGdyสฦ๚„ฦ9ๆU *rโ๘wœ�ไ์ษUถ6Fค™ไJ �ˆ= 1ุค‡I๚บทะg‹ว(ก พOˆ�{e`ˆฝˆฅฏ๘TZใ‰XมYแขƒ่n)ZCฯํ…^ ไ !e~ ษล*‡|ำŠw]ฦTE�IXMšฅ�6�ถถํHณž/๏#U0ดPŠู๘NNบ ˆัa๔ˆ29ม๕�ง์}�ฟ๙ ฿����‹�k�Xm3žlQไ#ชบแส~ห ]แปฯผ‡\ธt‘W_๘'ทื‰ู„0ฝ€7+ฬ)lยฒžAีฒด9_}ฝฒ$ƒ~>œ/ูููc<โฃย๕๕p8"อ B��๘Y][วZอ;฿ดมเ๘qๆM๏d4))'wัอ/0�บเF[wแฺ›,็Kฒัqšรsฬฆ;คฃSh&PํฝN๐‘ี“oข_"›œภฆโ%M“œีต8ไ�ป๏d}}ยต—/]&:ั;`ชบก,Jน&ขะk“MŽ•๋�ฟ~–�๙f�ผพ๓-|๔ž‡๙ก{แง฿๙!~๐�ท๑ฑ7ฝ›ข9ไฉฏ๒=z'’ �๘W?ว๔Pตavธ‡\WK3\€เ:‚w“dฃแ€ิZฒ4“‡ญIษส’,5Z’„HC”ั4ห%ลpLZfิMอb9ฃศ2๊Šษg96^มZรีๅœตbศqrsนdฃศ‰F1ญ็dฦโข'ี†F+&EŽ๗‹vสอๅU[ŠN$ษฐ6G‰ฺฤŠX,1cq|˜œฮอ๘ี๓ป�ธ๊ธ๗�‡B/จ้ผ็าๅK�ธzK—ฏ๒ไ /๑ิ3ฯr�๒^ปp™ฏ|๕๋<�ฏ‘f%gnป“<•4ฎ$ฑ‰๎๛Dœๅ๑ฎnณwฉฬะด†ร›ฏฑ{pH=ฟNโjšฎกmfิ>งkkfำ=ฎพ๒U #ท)„š \xUEMRH4ฌI‹>d%ƒŽื7ๅู"ะŒGรx/„B œฌต้7qYดต4‡—ุyแSจชไ,w—\๙�๊ํฐฒล–ึด�3ด—บบกn:๖ |j0DFึ2Œ˜”9yf–R\โ๛ไตaž‹�ฆo%i ฎŽผู�32ํyแฅปB๕b,็E€š&)gOn tส7{Œฏ|ๅ ผv้*ฏ_ฝษ๎ตซ(–บ$‘ลรH ežฆXฅ0Hผญา†�ร9ฏžปภŸ�้Ÿ๒๋ฟ�ป�๋฿๚Mพ๔ญงน๗ถ๙ซ?๖S|โฟ“ง6จชน<ภฺฦhBC �จฺ้–ถm๑ฎไZฐถ6+ัi ฉฅภhฑฌYVญ$ศ%†<หHฌฦนŽลขbพhHรฒjจ››hูฎ}คศcุึ\฿ซูX•จฮป(Uจ*ฑ�สง�˜—บ%๗ฟ๗]Œlษฒํภี…ไQzIฏ- ำŒeplง‡kหiTไพb$Œ9lๆdฺrุีไYยf>ฆฬR2kภ$,]GํซYNิš�ถfฅ0LาใขฤGO4๓?๑sŸL“Dn>๔^?๑L'V:šต‚A‘aQํ๖K๎-�ล๔ะd–eฌฌ –)‡๓9—n์3Y๐ภฝ'ูX)I ด=ผ*(ิQSO์•†โหVุGk&I‚6b-QฝยัZI_‹Hfr์๏&ำึR+_S๋ YึVถxTeˆ„2X›�บ ”V%7จภkG๚™:%หYแ"ŽQ�=ำ‡”ๅ!๔ฑ†� ด็zัH%ฌข๊\9ธฬa๙4ซC๐>้U๋3\�ฏธ=›ลˆ๒…�;m๖ ›EQž ˜š่SŠ�6ฮึ่eย{ฯ~7ฮ{ๆณ9ำkฯrโิํุ่ก�‚ฮn% Y์\แุ�oDอnฒทW‘OVฉช9๕ฒfgY1_,Wh\‡‹Š้lNชก(SQขื zฦPๆ ม7ผ�ปN๐ึ‡๎!฿8.†$ฺโฃE™Hšฏ€rฒJทผIRฟภีSา๑Iˆ“4๓ผ๓”kw ้p$+ฑIึrอfyAQ–t�'Ž�ษmทโ�…ห๎ฯh[)ธฉซ†ฤ(็(cส�ท๎ๆ�'๏แมญ“ผu�8ฌlpถqjดยึp…อ Š"e` c๘็�€รG,๚ฎ๗ำผธฯSŸ’}๘Cฮ�qgฯžกržวพ๖ENœ<ร๊ฦ6Mื1ศส"ล&†ฤศaญPwI"Tpฎ:ดปŠู�9าl�^ว้”บช๘๖ีศอืp]`˜ื ฦ'Qบ#ฺๅxM„ง สษ ขธWำ๚ ”bศhผ†ต…ธMz~7อา๏pผึ ๐คฒ šง๚ธPญ-พฮ๎+_$ Qใ“๘˜s�ฅงXฎยf+”QณฌjบะJlš‹ถa˜ฅŒณ๏<…†2ห˜ rฒ˜,ซ ญ-ซeNšส}'ฒ ฺˆP( XRJ`๖ุ[พšFF๑ ‡œง)๗�v’{n?K’ไ�˜ฮ๘ๆ‹ฯ๐๕วๅฯ<ห ฏผยำ/ผภ๋;๛�œWผrํ&ฯ]ธฬc฿~‰'^=ฯำ็/๐๛_��้ณŸๅพ�E�่ณส๋ปSNlๆ'?๘Q~�ว�oผ็4(IEQฏpฮI*ฐ~าื”๊พKƒŽWฝลห๖ t๚ฅอ๛Žถm˜ฮ+v๗็’pฉyžgu#:ฃถ ฬ[qui:Gํไ™ขœ!ฆ‡เ�.’ZหๆZseีbM‘g<๎5~ํ‹_!�u “ุ™rmถคib”{;ขจผ&Kเฤp€#ฐ็*\l1FP฿z†rš“ร™อฉฃgญ(ฤ*a˜d,ป–aš1o[ส$A๙ศ๕JZ ›แz]OSื˜�๑Ÿ�ค๏“Œ’Q ฿ฃอทฎj™ฺœgP@คnส"ฃ(sŒFเ๏4e2)ฑ^=…yื๐ฦ๛ฯr๏วษฌฆ๓ตฆ=ฌ.ขฑ{ฉช"|8*‰OIฺIE’Hpฝาา!ฎ~ศ‡Šะ‡ˆ:�hIrพ!FแธM/ดะ€Rฺ!�PIBำ}z�!ผ(ะ‘Dฆ๖�พฝš�๔‚฿ว ูๅผ๓๘(›ึยFhC/ม-ณ~2ิ=-0_ึเ"฿พ๖{ูSฌญe2๕๋ฃ5Pฯ‡<ผ๑v�่น_ๆๅร?`k#=femeKFๅ1ฦƒใ\nฆŒปm>|฿ะฯอหฏPฯw9~๚โ๔ม™ึŠrฐยby@ eaะณ}v*Mช[ช๙œชU4ฝุฮXลแr‰s"ฯ๑Qาˆ–ณ)>‚อ2าผžิwฝ้ ๗�$]�Fล–ฏฟˆ0\ฝ๏=รอปะ&#I‘–ซ„ถ&œ%+ถHำ16กข"lค})‚•ชร่…�ะZโฃKB4 'NœๅฬฉใEฮl^qแ�๋4>0=œrj๕ ๑ฤผmํ›iAท\2ษr e วฃ!ณzสa5e:�cพร๓‡ฏ๓;Wพฤ]฿�๏ป๓<๚G_ฤํี�ิ}?LพlIว้แ;.Pำก‰Wฃtสd<ฤ๔Tฅ&M พem2A'–บฎ)9ƒ"ฅjyV0›อi๊ฉุ๒Œ,ห๐>rแๆU’qๆก7ฐ5า e-วGc*ซ)ลฦhย8`ต%‰0( ขŽธnN � h}Kข5ึD\�แš†*ฌ6df@�ึดmE ะ…šฤๆ\ฝ�Ÿ�ƒo๒ฮ๏�0๙็�6�่๑ึw|7{‡ฯ>๕8พkุ<}–ษฦ1&ใ S๙–ญ๕u6&#Nloฑ?ณปฟว[y7ร"auu@Yศ†จ๚ˆศ;”ภk">k[qช1PMฏ๓๊ท>หษณ๗โซ์่ไญๅ"ิ‡ฌo'๓;”wƒ๒ ‡๋”™EgBhศ‹1iQส=#Iš’fCF“m@’ยŽ(9›|งฯZเrษฟFIƒZp} k[ข๏ธ�ญ�ย๎๙H‹ŒZฏ2�ธ›ฏ?ฯ566Iำ„ๅฒFนg-�hRศ2KH ฦ*ฌxฃX๘–�ŠM0ฤศมแ&ฑ”e†ํ+‰1(+ถธ[ษd}๕ง1Zขeๅงฤ1ˆ-ห$Fš>a3ฦศึึ:oyใผ๋แ7s�=๗ำ*‹‹š›ปป<�อวx��/๒็ฟล�&Ÿ๙๔๒ฤำO๓ต'็ูวฟฤนgž†&ฐ1Zใo~?�กไง~๔Gx฿w=ฬd” |m4m€gy.–^->๑#พ;๔ษc๒4คiึ฿๛฿Y่ชบe:ซXT ‹ช!ข0F๚)ม{\ะฐ้ฌ"y&�{’52๒uƒˆ$ง‹šƒรŠ•‰ˆคc_๖’ค"ž๛?�๘3|�โE6๎พ|ีŸOƒถfใด ฬ3V‹”ฤ&Œ’‚TCฃลช|ถ\แุ`ศฬขNๅ์‰žจ,…Uมry6cษbค%ฒhลK๎œวลHƒ˜ •/{ืฒำ-0๙ศ'>Yๆ9ฮหิQไ9Jฉ[7NีCi–0$!Hรp3Œว˜ฮ็�ุ�#d|ื[๎ecmะoศrP'‰hิHŠ—้ี� ฿aŒจำฤ๖[น‡ุ’g�u!4D$7�9‰N‰ท“�/ƒรGG็$ %2Kั’‰’�น@ า#๎C x๑ซJแ…Dกถmบ฿‹oBฦ %ึ1กjŽ๘แW}\คึฒyYำwญ[’+˜giŸgฌศ‹’+‡—นš|“ญ๕„่!ีZ'4]ษโ ใส�๋v‚ท�~�{�ž๏ๅใ๛๓�๐พŸ๏~๛�๘�๗ผ๏ปีก4ุQ‡‹ N„มZ+‰ฝuRL%ํžถ๔สZ�7คษ็‚DY7mว|ูH>ฃg0-@฿yQฑ๗ั�>DาTz5T6Xซษฌมy๑}ปำEห~ๅ˜ 3ๆu‹R† Žภฮtฦo~๎ณไ9w>๘n__แฬส{> Mยf1 ฤศj1 3–ีlDื.yq็:วซฌg–4ฺฮP…!ฒ^ŽุฏfM… baซBdซฬXvณฎรลHQ ฦฌe-ต,ฺš›ห‡M%ƒฺ๘ง?iKืJ๖๔h<เ“^i ‘ฒศศา„แ #ห$Cท,R†รc4‡3._�ฅ(,w�y‚;ฮl๕z9๘@,๒สM!!'ฝฯP5ภ‘สัทศeํPt�Ÿฏh็ฺย?SH๛๎!-ญ#.HปVFฤ9�ฃข๐๙ˆ T์E!ขดAŠk,!ˆฐม9ก๗lฑ“ํ�ฑJ‹ๆ่ข<*aiฺ>ำ9ฑฤ]'%๗ฑ/5Iฌ�DY฿ ค๛lโ��๏b2๐ุมilบB6ฃu.๑”ฑฦfซ@ฤu•ฤ_†€IsBืั -1ˆ็^gb๐๘่๑�Hุ‘ฺ^�  จญ<1hŠrฤ]๗�รw?๒0›W;V์O$t-นNธP๏๑า๒"๏ฟย7w^ไู+/๐าม5f8 1‰ช๓์t '~ไ.~โฝ฿ฯท>�U~๛ื>…[ฮyแา‹ผฒ๛:‡ํc3ŒIู[ru—๑xL็ฤาโ:ฯขjลf‡l?>*ผƒažณฝนลhดBำ‰’<ห2บ †Œ†–๕’e]cะ์อจปoc2ะ›y†ฃewูะ:วF^ะy›]ƒŠžห}สlภฤZšุข'ตC|lัfมฺเ‰ฮฉšcฅ%/จภส`ˆMdญžเีgฯ๓/� ื/\ไ��ฎ^นศ#ผ/~แ3|โ/�,๏y็;น๚ฺณ4‡ืx็ป�Kฑz’ฏ~�ซฬ๖oPFt]อ๋—.๑พ๗w�u�-HTยก"iขe๏้3กิั/ˆอ ‡ืน๚๚๓”ร1ๅ๊iสฒAทภ๛ŽตญำXฑล6K1iIDเrcRไtN$  ๐1งฎIถtK–ข๗|+ 9โถU/:ฝU^าSxG fJif—็๒7� :O˜œผ‹๋3ุb1ฝฬซuAใ ึ’„ebุทšฒiฐiBuำa[O็Ub96r<ฯ('cIฤ‹ZŠbHžj–ฝํqu“ฆ2Ptฎyั‡˜„@�ด๘พ3มQ1b{1Wำถ8ืI7vฏ่ึฝฃษRCžhNlฏsๆฤ6w฿vŠ7�๏x�#ผ้M๑ฆ7>ภผŸ3gN0็ ‡ZGบถฅฎ๊ž"T7Mำ>ไภ7Œํ€�eลa5c5๐ญ�ฌ๒œ(3.ฬk๖�›4่ฃDผ(จC ‘น‹ฌค&’…Qใขฤฺ„Qž3ษ 2ฅY๚†ิ๒$C‰7๙‘Ÿ�dYJtขั ็\mqšะWฯ%ึg ƒA†Rp8ญ๙๖kqพๅ๎;Op๖ิ†D–zyภสข*Lsา[ภ๔QฦyŸ‹kดไŸว่\‹ึ-‘%FทXฑV๒‘…๗––pฑIฌ 7•B�›0(ŒL่๙ขฅ ^q4ฉ‚ญ- ƒR๏e๋ๆ(๛<(๒BTร>Dโ‘gา‹uM๑�แLขLิMวr)7QำถtNฌm�s฿@6&mmyํสk|}๏L„ฦ ฆxŸใ�ˆซ7๗Y0œ&ใ &ซdv“3า๔$ฉ๑ลWŸโ‘โ=�๐คฃC‡ซg<๛โ+ฌ%Kฒ"วg[˜dŒ_\'1šz1gw่3,q๓Oไฦlšฎฎ3* ›X\_จโบ–ถญ๛ฯ�ำิร2ๅoน“๕•าbƒbผM๐žb๕$˜HtKlถ บzNฤ‘!H๋ˆN$๎าXƒฒerด•บ?ู*„ฦI"‰ํ0vjN๐KP9ัK๖ศ;–ฏrmoŸใสาต-O๎พฬหs\onpฐุก^ฮฑฦ—rฃัDดฑไ้ฅใ=แm|๗ูท๐ปฟ๚งผ๐๔Kl Šม€@ว•ึaMฮ[ท๏แrจ9๔ ybล*มซศ �ฒ๛Œส’ญญmYFข#ใัญE9kœ„$…6อ๐ัฑจjฺถฅฎ+๖—K์ษฌlญฃ›šบญ0YA–ๅ$(F™ไ67]หผ= KFๅ .ถ4]อ )่\`œ 1ถก0+5ฎqh๋ศR5C‚jกS’ศๆ=หV๑†ปโ฿��_ๆ?�ๆfg�ซืฎ๑เ›฿ส—?�~๘รeP”�ฟ๙ �๒�๏—0กๅ>๒cx3เ๓๔[ F็ฮŸgดฒลฯ�•ฟสp ฐจwฃ™3Z๚ฮ;ู‚จฐD…šลี'!–๓%๕ขf�๘�ธfAำvไฃc4uE1“ๆ˜ำ‹ำผ(›“  K าb“r0 O-!j๒,!ห…ž9‚tu_E+ิQย— 1xู๒B)a�•ฯำ๎พ€ถ;(นyh9lsฺ๙ื‹nH™kชD Wป}^ ืั‰ภŒรั ู`D6Z!ฯ3ฒ<งŒ W่Tว พ๓˜+n\Y2M(สy‘“—๋ฬf5wบ—๏๙ะ0mิuE�4›ฃ &ˆฯภ5ดห9Ibภhฆำ}Z็X_]!อ,น1ฦ๔ i๙€้ผf^‹ฒ:V5ณvŽอRV'k<ด}ฅ4ซร!EVฐQd€MGT]Dั:!กญ:า˜0ญ๖ฉf5๛‹เดยำสฐ‘ญbŒข#ฐจ–DoIฃๅิm���/� j‡xv‹—.]กซ—ฌ sฎ^ปย…K—Qiษฟ๚ฅฮ๏�ฦฟเอwฃOx๊้gyํ�E�๕=`mu…ฆuฆํฌ จ(ขRcdP3Fั\ฆู?O ๕�EŒMษ“’๖p;ุภท t2คัฦ‘ๅp“ฎˆ—YงไYA’•4M‡ี)ฺŽะ&Š ถsdฉฤ,C�*๒<ั=ย#v-กฝ@่ผh0ข8c”6ิณkฬ/?J2cฒ ผsŒKฯซฏ_ฅ‹ถhIอ^�RvŽX”L๒„ฌศฐyส 3„DJ3ฎีKฎMศซ็k–หรขคดฑซษลจศXจœ›ณ%พs ณ้.{ป;ฬfKvvvYฬฝOz $ขVxเเ„'ฮฒœฤ&าแญ•บeCฎฝmšพฝ+fRšฅ๚ฤท<“Œy�7ฅiฏY9ข;ƒ๏ฝ�ยำ๋>๏�นkญP ฉดฮ–5๛‡์๎2[J1ฮ�แ›&ฌฏ %qฏmI”ฦ �“yกท8งIGp]หrQัužรi…"R–2ฯุ˜ไŒriหŒ>ะy)หi๋†oฟ๒"‹่Yาd•ัฐฤXHำ!:1ดฺ3ฑYขนs›แ ™�%ง†\œ/H”fฌ Iะไ&ๅ๘`ERJ“”2ฅึ3ืqํpฆ๓ึK \p4ฎฃ&ฒ1‘รฒญฆ9M<ๆว?�sŸฅuญษR)2™Œ๒[bณ"O™Ltฮss๗€ฝร9k+|ร)ฮœX!ฑ�ืsนGึ ~7๖�มุ็b W,lŒŽBX \Zอธ%ผA0๘ 8ybญฤ ื‰uฌฯ๓ �๗บฅd— ุ๔iiโ�–&ฐชnPDœƒบ5x่Uš!้„E*๙œst“ื�ซ฿ ฟ๗cสE)“คlโฦ dฃ”ฆศ ภะถยต—yAQไ๘60_TดmGืu ณ฿๘๖WXูTlฏ J‘ุฆ‹็ืhรx�8]\bํmVศอ:•ซ๘๒ทŸๅw�E>๔†๗โ”4ฯฅKWy๎[sๆุฉ�ˆ ๛ดME็5W.฿ t-๓เiv—โIEำuž้ฒe}u•lPrp8ฃศ ŒMIu  ขb8ศฑiF–ง็ฑ>๘ฮ๛8}z[lRŒื‰กCูŒˆฆ[œรdC šด-${พ‡ะc@‚3t‚ฒ)ั{BืˆGk‚๏ฐYFˆ‘ZP ‘บo#สz๔'‚KOœใMwฝ‘]ฃ๘ฺอs˜,bCƒMrŠพ5Ms”ePATาื-›๏ูโ๛�ๅw�฿c˜X‚�8h™ล!x�๑7~๚ฏ๑•็ื�เทฉ+๑p+mJ“•าิBชฉ^.‰ึืื™/›>กmยจฬ ]M>k^’็ไ}Œk�vิอ’ฝๅœี๎Aฏญณ5žฐTŠ,ฑุเYธ%�รUJฃ™บšิh4Fป\รt9eฟ:ภ‘gMำา63ถWืHLNnๅ�Oฌยšฃฉต\ธ2ๅ์‰์,x๔_ๆญฟ…ํ๕Uพ�โ3�q๖8'ฮ�หง?�G4MMšค<๑อฏ๓�ทพษอ�}บ˜๑ั?�—๙ซ?๗—1สSืาหmzๅq DกžŒ‹ฯโเ&ึZ๊รstj้๕—IF+ŒVN`cC:็BŒ-ฃษ:™“ŽpAใ‚8NFฃ4+R-QI์ฏ "$ QCd1xO่ƒZ”ลน2A๊๛zde์-๏ท2ษŒาดณซL/|`Gไ'ัๅ:Y9dNฏƒŸ๓Zฅ็พ๋—•\'†๙ฒBGFS75้|�,˜ําิ“AB์–”‹ŠฉMศ‹„, MFํ‡ณ9ฑ•cYIฉP�–UE–9k%๓_๕•ฦ>:็ะZIฐPo็SJUญD3ิ9 š’ฟข$มe™ะ Aœ7ึ๖ฺ^ํฃ Scฤเ}”Gฎ” ณ!x)59:ฤ๛ื—ุ…1šบหošZ’4!KsŠาvAฤt๊จ์$ม๗สsญi*ฦ|ฃ,Qษึฏตฦyi9K๚aๅˆ‹ฒ&%:…-‡๕W.ฑ_ํqq๑:Wช๓ฬ�‡nO,xพ ฤศจ๑สฮ๓�l^ec�D฿ eธvฐƒk6W‡$V"LฃŸะ5Zื๑์๕s�_พฟ�ถฟV๊Lตฒ„ะา6/ฝ๘ใ<ค บ�ก๖Œ๒ุ.rชy:วdฅaัFา,em4”๓พผD+ฑฉฤ(ำ3ฎl๕Nƒ<5ผ๛อ'ธ๏แGQ‹�ฦZะDo+)'1%Z ฺฃ’\†+๏๐Aก๚ฦ!mไฆVZฃTnakะ‰BูBm6ษ0T์0VcำฃSL่ๆ‘ร'^ๅ=ว›,ซ;ณ}nฬ์ฮจฺ–eำก|Kpuต`:ฏน\ํrฯ�[ฬŸธษo�๊๓าซฎžฅ<๖o|๛๐7�๒฿โฃoy„?��๏๑๋ฟ๗_ธบwƒัxDŒซV l๎š†A‘ขLJTš_ฟขBำnlmฌpธ\rso6Mธ:=เ๚มušฎลOํ*Ž ึฤ7Zค๕J'diมึฦ1ฒ4cY-hซ††CFYFชs†บi$J68ฌJˆฺ๒�K˜๏ํ๑�๚Aฮฟฮ‹O=สต+จ›†่:|่อฮ–<๛ญ'P n๎์qsึ๒ม�$๋ฟ�๛|์‡~€j9c>›๕ดQา็{KWบํญŸIY๐ิฃ฿ไs๚๛<๘ภด๓tนB7ปสp๕$ถOํชf;ฌž~{฿็žฐจกฏ;๖พฃ(ส[žmb$/&[�By|ˆไy‚ํหQ’<ว$”ก“ค‡c%“\i้ŒWษั!(!NJ ำNฏ’&KlนF]ํณr๚x•qsฯแ,–-m�ัjหฒnฑฺฐะDE|๑I‚"bซ)aถ‹๑-&ตด12ฏฌค0ฮ N[tb().qAั5-U�2oZฅฐZaณkšf‰kgิห9ฎ[‚›œ๎Xัใ$ฝฟZั‹�Œ ญึJvEŒาAฟq›DBญŽ`๖#๓šwฮ‹HูZbOฉ^๔'ศhGS/o}๚-<„@U5๘ šฆu]‹2<€wีฒfพlh[O’๖bแ(96‘เ-e‘๖K•คoฎMฦdฉ!I-รAาm,ณ†แ ฃ–ฤผaK�T�๑็>ห�ธไ๔ง)๕€ูฒeร‚Ÿณ฿t่จศSADžบy‰ห๛ปฌ–#๖–57ๆ�๋ฉ˜จœ�บBes๏ธs2FYKก4-Š,ษYษ :ืับ†ตม„น๋ภkฎW †ึ2HS†6วฤHb5ๆc?๖3Ÿ }ํšTpJธสpTะuŽkืwy๑�Š"็ wŸโฤ๖XBไh•‡n?9�Daญจฎ\ฏp„(ๆ{-B็[blAนžใ๑™"JšV(ePJโF๛<ฐ�b‘ํ8บoŠทโอU_›q็ส"ฟฏQˆ^๗ๅ"Z‹ฅLยAพ#Lั}aHT"Q๊(๋๗;i�t8๏%r1Fผ‹๘VQฯ.๏]ไK็>ฯ/šGฏ}™ฏ_�2O<ม๙ๆ�<}�qžป๚<_น๐eฝ๒5fq‡ํuฮฎžfฺอxๆเซlMึHา’ฮฯ˜อ็ไEA1”๕Az‚49มฌjx้ๆฮš๛๘��ไVชQฃl Y>`>[๒ฤc_ร„†ญSwPฆŠ๙ม๙๘ชบBชก ŠลaM:ฌ๑ธ`ุ9œำ6-ƒแร้”รร)หชฆฉ[j็่\ Iญxม]›g6Iy�ƒ'yร๗ใ]$*+๊่ฌ ฦ“ไXcHว[ฝว6Cง)‘€ �ึึค–ญฝำะ:สƒU›พ"ฮหกฎ2bœA๔�YC์p�|`๕ฬi๛�ใ|๙ลo๑๖7<ภ๗�๑�r๖M�{๒BPฮ‹e`ถ„E›‚S54ืŸ›๒๒3ปœบ๛~ไฃ?วO�่ฯ๐3๚{ว�ฐณ�ฦo�'ฎ>wžล|ส…fW„W็ฐE.hP�โ•Nzc’Œ4Iฉ๊ša‘‘†„U�2[ฬ$รนs,–5u�Kˆเดe๋ม๛˜llฐ:rs—an)†Cv๋บ๓๏�๐O๐๙‡�?๕“?ฦJกู�ูแฦตtญลXc 3ดฑXš’,แัฯ}™_๙•_ๆญw6lŽ!ฺ &ิh+��r�4้สํtอ“ไ;!ฤ”จ%rธฎ–ุTŠhl"E& t~+�ฤGฑพๆE†ึ›gฝ�Xžhสศ3K>b๓„ž ะต๘ฎ‘ƒtLฮฅัตฝๅคrฮ“ZƒIนอาซ%ขWเ|กN|๐4} gžฅ\ผt™?�ฦฃคทก\ฐธห๙!!4 sอฺ`‹ƒุข\รฤ4FƒอุสGh4'วcผ†ฌo๘ป้jX?Na5YT,\dึาธŽc๙„รๅœส5,ข็ุ`ยA]S7 p้๐ซ!Dฯแ|Š k๛˜�ไฯาK^fŒ'ฅx3 ฬKf๓รั€{๎:ลgทL฿๔u$R;๚เ๓~k“อ๏(์„[�’œึต Zbฌ‰กA+ฑ๕ $D&8AeJษGยYBฟU+%“d๐็ท๚iๅ"4:!Qธ็๚ฦดŠ��ณู’�ฝCฎ๏2Ÿwจะ[*Žย]๚[ถ}ขฝฅ6šชฎ฿๔’ฑฎภๆณ%”?น๒)žlๅz๖'Nฏrโิˆ;๎Xg๋Xม๚๚ˆ•ฑf=1Hjพq๑Iพน๗8vาp�ๆx๔า็‚hH™ํ/ษ'p|u‹"ูD™1Y:โ๙ซฏrฦ�ว�ถฟหึxLีTฤพ‰ศั!\฿ูใ[O?N‘Fึึท้–,3+O7ปJำมlึ2ฏ=YแqัฐœษTŸๆ%IžฑฟทGำ:ฉeด–ัdmผ๋H๓’ด(ษฒ dEฦ{฿�Vฮlศg2�ผGA*’f4˜ม๚-ส-ZƒT9ชž๛VV*F&ืษฤ!๘…ภฺกm †š่5Fๅxฟภน฿:ตภ์E๔ๅ–งฯฝฤห๛W8ถถฮ#พ™ผ๕ป๙๘w��ฝแวพ๋ƒ|์เ‡฿๓A~เร?ฮO|๘|�ฃฟ๐cŸเG฿๗ƒ|ืู�H—‡\}๙พ๑้?โ๋Ÿ� ๊๒>๗š„/พสิ5คส:ใLb‰m#yิฺ…Q0CV†’Dx;Mณฤ&ญ๗ฝ6Dใ"dYสt:ฃnjF�มLiŽJ†“๋ล›d�ทถE๋;2 FYšถc˜hNฏฌqแๆ5L(ผ ะ6xว0/ฑ*ๅpพ ๋fฦะล‚ฤAช(›Vวœs;\�rธ7ลื w�๓฿๘ฦWi๋เ‰'ฟล—พ๚5Vๅ๏�๗� ๗o�uV2ธvs‡ .1ŸาE˜ฌฌ’e“๑€ขฬฐZ๎ซ"ฯxโัว๘ล_�วผ๛�„wใฝ(ข+๖$b ๖อWJ)ˆ�ํฝˆืด4H๕ฯ…4ฯน฿5„vJ{๐-f๛‡\z;�"ฎ3X9Žีžฏ?~ŽQฎ9จ4‡ตc4*๑ซ*†ฃB*,จถมทฒ™*ญHBC}8•๗ฦb^ ๓Œ•Tะฦ%iๆ๛Tm‹๋ฃŸๆ fณ)Vด28)๒‚"ฯ r้ฝทi* ˆ‚P@pGฅ'}์จ๙NผฑรjKˆAฤg‰•รต็ณ5ฝˆXะศฎkiš๚bืงชล�™คดPtu]ั44O6ี-ฉš’~ดภ่\`PXFรŒบArYXฒTDฃฺhœ‹$&Š๓Hลžz๕R‹�Gภ&ึ ‰,๊–บ้ะฦะz)`าZ3mY–q๎ฦ._๚ๆt›%'ฮ�‹MW!h{ษV9bb`้๓:pfธฦ0‹๘จ8YŒุฏศmม0-˜9ฯย9ึLJึ็‡D 10[ฮุสฦ,:วด™sl4a- ฒl™M˜ห$Iธ:ฝษึp…Tkfมa>�‘O|re2ฆศญุq”$ี สœณง79y|•ั0ํทkูง•RX#Xk-I ฑรจชร๕�ัแฺ Zแ˜hQสฃ”#ฦฆ‡Ud› ^œ@ ๒ค–43}Tููb4ญจ6พHๆ่Cึ”าิuรl^qํๆฯ๛užz�พ�๊๋<๙์+<๗สyv๖x๙๕+œปพห๙หืxๅ•s ฒŒญญ�7)2 zฅตpํJษ๏k-?ฟํm$‰MˆNqn็e�t๗wyQ?ฮ๖้�k–ญUหคLIฆ๕ืX6ˆqek”Y2มx์ธ๗ฤdzภ๏}�Oู?<วขs Wkสด@ล”�๛ไcหjพ†๗ ž๐ํ๓ฏp๚N��๛�6ว#ชถ๎y�Zีฃ —^?O=?dmm“รฝห(3]8F๑ik™V(ๅ8qj‹รi ช็ิ^1™Œ้‚'ดŽฮE’$ม/žRฅ๐J ชฤj‚kYV518�๙ŽGธ๋ิลไ˜(ฐณA๏7mPJ๗�๖ Ÿ�๛i]ฆ0”้}›Z*XcฯCjD5C+Uํ@”ฅว AXข๔พ+•กTŠึ-ำ+s๎ฑ'y๓ฑ�qs^y๎9žxแ[|๛�ห\ฝy‰ู|ŸฝvฦผSwm=g�๚e๖vฎฐx๕พ๕ี/๓ตฯ}†o|ๅซœ{์If—op‡ฒY”�ๆีo๑๔๔ฝ…Edัt8/�\ท5ใั˜DC0)ซใ!eา'}…ึฝ*]3Z]งA‰jฟ(ๅ}Pšฝƒ}๖๖X�fํ๘q–พam8 นฎญYvK๊.RุŒ้โบฺ#Gsc9•่Kฏ‰สฑ๔5วฦk,๊ŽะEผฎ0idต\e˜ทK๊ฆA#4€.ž~๒.\�แ๘ษ{yๅ…(ฦ�๕เ�x๊_aww‡๑๖)พ�cŸเ้gxไก{y๒ษop๙ฺฏฝ๒‚voฒนนลhX2 r+�f‘e|�3Ÿแ�ล_ไ=oZๅC๏บ4)ษWทecšœฤ–H †+�d๙ฐ๏t†,ฯ…๒J-ฦf Gkdูฅ‰าŒŽฤจzแจ%ตZ"#๕“!†�6vิa-ฎaๆฅ% ๕QH€”Š(ฑG…ต’ภžE–๔‚;…5†ึyฆห†$ฑ$V2ๅ“$ FAฉ5๛uหืž–�ั€ํญ3ุิ2N3N•+ดRCห^�Pท- Wxn๏ ซู* _1๏+๙€�Vึy�p—ุo**ท PmฌษŒโfSแ�ŽAZp:Ž•R%น๒AA<:D2 ๒Žผ›ฏcฬ‡>๔๑OnnL Š‹Y้Tาฏ‚G๗มrx+ฐ ‹6yฯy[b~<ฤื๎ ์•ฌ€ฎ๛ฆžญ„9(ƒ2J9lijšหซ�››ฌrJœMFŒ๗*�ล�ธp‰^y‹—.ำฝ~…^ๆ�3ฯsแษgูyํ<—.]%ฬH5…ษX+Gtี‚?�y‰ว�!E’แฺฆh ล`L–ฆd‰x’7ื†hญศ๒Œแp ฑชVสๅ,— าผkE๗ะ ๋ Bี:vg4วถน�ž�qภƒ}0‘าt่ธ9ซธmu‹ช^ดว๊L6“ฒ\ถ+ถV7ๅc\hš–HC1ฐ่X BBžcั:#ะ`ญ#I"ฏฟvƒ ฏ^fใฤi๖v–\ปv…๏y๏๛ุ�นฦ๖ฉ�๘ฤ_�yn?qŒz~ืฮŸใาี+k๐ม0/8q๊6ึVฦlom0ค™amu€�๚�๛/๙ง�๊—๘ะปN๒#฿๛ ง๏%œ`ผu—่`าUL:ยฆ+(%ญฮu} ะwฤOฦX\๋hฺZา$#$Zใƒบๅƒฮฌ้๛ฌ5:1h+ X6อPVจฅeธ๕ะ‹‚‡เภ‰ะVvŒ_๏ฐw๑U๊�W้‚"_9มpu EG�z,Ž/๓uฎ๎๎ฐ~�8iZ3Cฬ,~ัฐ’eŒ7ืhผ'๕บmH L๗Q>เ›Š4I`”“ๆckุฉด๗ุ�RูZŽšฝ�ฝ�ใุ›อAiสLถอเAI4้�gmŠ๎ีใขA1—Dล ฅz1pŒ"จ�H˜์๛ฎn-��Aฺฯ|/nKณTli}‰สั/ฅตˆ<„นศ$ฎ"B s’แƒ”Fษ กhšN*F#Xซ๐ภ�m'Qิีฒี—hฉภŽQยฒ†eŽ }PาธจOU{าD“งšฤˆ@ภjล๕ูŒฏ>๛-8sŠ�ŽŸฤusบhุYฬศ’‚Ij8t ฏ๎‘jˆ^š๏ฃ:ีด%ก#5—SŠˆ`ฃFลŽ๙œYW“' ฉัx`ูถ˜๚๐O~๒ญoฝแจ`4. 3าLฌwXญpAธŽ ๓,5dy‚RKPlOHขŽRข o�พํ+H0†pอฆง•z~๙ปาาozkJห�\i�@[‹ฑkj๊jษอ›ปผ~้/Ÿปฬ…‹7ุ=\าEMžๅภƒ�ม้ck”V1?<เ™gžใ้g_เ™gžใ๑วŸไูgže๏ฦUฮ]ผศp0ๆิ๑ฤุ+ะƒ๐"๊Hะั๓C]'7Žssื^โ7พฤbs[�MšฐG๙�3๕฿มš^๗}'๘9แษoผ๙v๎F#fREKขŠ’\ถjm๏ŽWถ$[ฒ=žฑื๖์Œg‡žู�ูumอิzvํ ๖zฦAฒ2mRฬ A‚A"  ั9�|฿๘ไsฮ�qžn.ชPpซ/๚}Ÿ๗„๏๏๛�|ญ;dY�แxq“า� ฑ%Qฐจ)ฌC(h\T ฅซ ฌ1ฒฑั#)ท_ธษh+B…‚โจaผun๐๒ o๓พเ“�?๙Ÿ’f’ชmpฮณ*่|aลJก•ขศkพ��gIฃ€€ŠE)ตc‘ฯุŸYค5$}ลอ�%mฑdY5ค ญฐœLi๊#ผฑmjšฦข4Nษ‹ )eู ”FJวƒ็7๘ฤ'>Lะ฿๐J@GฺR:รš tˆ ผARศ–aญw๖ชฮๅ฿�p~๊ u€Tg5ฮต@ๅ‡šF`อm๏h๎สoœž›ฎ˜iAฑ�ฌG9™nฏ‘ฎญ1์X“ฃ0ๅฬh…SN1,[‚ชa�IึำiึgฦdALซผ7โฮโ€�๕ึKผ8�#K"’( ฌkย@ัt>้Z†�ฝ~Jค5๓EI[ทฌฎŽษ—s๊ฒ ฝ iJTฺรช€ึดŸMฆnŠช‹=ž<ม" ˜–9Nƒ6–@”•%ึŠAŠtฐา๋ณš ฉŒล:ม ‹Y–K–yษJ”ก”f^อqขa5ณ?=$Yœ๊:’e„ึแB–Uมืพ๐MB�#JวไUอใ�ฯฮอwx๘ก๙ศG>ฮอ�7จFรแtAฆ$YŸแh/œf}mฬฺ๊แจG/ x๓ๅ็๙{Ÿ�ฟ๑‡_�๗�สgเ—แgษ†[ู:ึี2Œ๊D)ย9‚0๖qOใ{�{ฝŒ0 ปนต฿$่โŸI(ยุ๓ึ…รG๗„Iนึ฿Fฝ^�อทUทqwฯœื–๏�ุเ\‹35ฮิอฑ๛าoc›#๊๙‚๋็ LW1ลฬƒ‰ฺ†ขผ๘๊-Fร”ธŸQš†ฦXNd US#ฺ–~G!ลrŽm�ฌ�Kฆ-V ŠYiัI‡diมด5บ(Rzi€^œ’f BBี6hฉH“„^o@ฏŸ%žฝ/%�ํ�?ข#žใ7อปฉ!cผQ�œ\�ซt๔๋LG^™๔/ุ=•R+Eจ5ฎ;์ iผŒ�6 e^`ฃ( �็[AYท์๎OภตพVVฬึา$ฆต]$XHoเR�นถฮ��nหŸ’‚ธหž7๑…Vึ๏_u_ฮาof๎๕|k›sำ�ถ-ap็เoผ๖ หฌวษตUคซ๕ืˆ“แ*ข0ไะ)l 9;^ฅ–!‡MCี–ŒUˆ‚$ิD2&วNฮฅ=ภ1‰ณPน†V Rฉจ›�๚ัรขศูOจš’BJIŸ$Nhš’aฐณœข�ส_�Ÿ?{vƒ0๊บถ฿ฉFw�w฿/?kVZu&ถธ)”“: ฮK*ึ๙fฐป‡‡ฏ๘›ต๑�#L�อ`„ภใP=Tฅญ M�2Ÿฮู�ูใฦต›\นz—^}‹W^ฟสๅk{��ขร˜ญอ-}่>��ฤรผ๗ั๛y่ย)6W๚4Mมตk7x�๙—xๆ;?เ[ฯ<ว7ฟ๛ืo�ข*KL�wนๆบlธu๓:Gว��ฤป�|Vษฮ@ฐึะt�เ1HงธณผยwพสŽบร�wฎs}็6ณIN,CายXะPRš’(Lศโ!V4"Fปˆƒiอ4ฯุ=๊ฑ{ฒ�ต V†hนdใ๔˜ๅฅตdวt�g๛�ผ๑ยk$๓-�›?๗_Žข๒ฒน3xWพํ‰Dใ?TE^r๑อw8ุปNIf%ŒK�–,*Eฌซุู9ข2 กา 2ˆ8ุ?b2ฯ‘BQท u�๕2„า” ค™oณjš–,ัa€คไS}7รตs`kOP`ร!ƒ>Ry€ƒ3^VswฑHฟpŠฅjปgK*ญ/2Qฮฬqถฦ˜cฐๆ็RL=ลšŠ "Dˆ Nๅฬ.7ŒณBขรฉ%๕lก&V!ข,ฑMƒจZœ า�๏eQq�|๛๐ OฯnrะTดU…ฉ*Œiจช �Z’$๖๑”0d4#ตค* d”&!กไuลๆhLTENœeD�แฝD‡โโ ไ๘่˜ƒฃ หบ!|่๎๐>b%œภŠ€7Oฤeฝ BrT,๒a-‡‹)ฝH๛�op๙๖ณๅฬ{+ดfนฌะ"๐ฃ-ัยา˜hฏf˜šขž3Zูๆ…ฝภ•�ไ#�(>๖nT[๒ฬ7พฬ๑ัO=๙$g๎{มhผ*‰“”mฦใO<๖ gNnrrk„ oฝ๖ ��Ÿ�S�ณ�โ๓ไห���ฯ� ?๗ู_ฆw๊�$ƒยัidดŠณ„๘…$J{ก'Cา5�•tฅT๏ฦŽใะgบ…๔ ฟe๘อปรหป=ย€ฺโJง6zcNƒmr\7ย•4ๅ‚|๏5w.#“‚(dฐถMิ[C ƒs†e^“&}ฎ์—\{๛ ฝQฦฒnIฌ%eEาIทEัเd€rGZŽ๗‘@42H๚}”าจ8ลD ec‘#p %พฺ4าŠ~ฏOึK0"ฅY ๏*o�ฺ฿ฎ[_x>Fงƒภฟ๏ฺ.bฆ;Wบ‡ย๘Rฆ กsค;๋ืxo$๖kฟ๊Aฮด�a฿ท>6MMU๚9๛dพ่œ๐šฒฌบ๙ต%ˆ|L3ฯKชฺcMต๖ x฿d็/wฟทยุp„ Žดฟศ8aจ๊–4Ž|ญฏ๔สK yY!•&Š’�jฃต� ‡R\น~‹ฏ>�ห,a}cƒ้*ใXS9:d3ิ(™pi~ˆ+Jกpถไธi‰Hj‹%M=รุ9ฦiJkaยผ-‰ใิ๏G* ถZkrc��ึ'YORplJzAภ(ํก~๓ฏ�วŸ_Y้#%~aํd#�-šR ๊ึ๚Jน@"U‹ต ๏เ๋L � ์a๏4รแRฃคoตm�uภJŸ:2ผ�๕ถVEล�๎;;๛ผs้฿๛ม‹<๓�—x�ีK��›ขขงNแพ๛/๐๎วๆษ๗>ฦ{ˆ๛.œfu˜2ŸLธ๔ฮ^}ํMž~ๆ๛|ๅ฿แๅื�โสตyมxะ'V‚S[œ;}–3'O1๔FT๙’ežs<™๑๎wฝ›^ๆgณAxƒ†๔Qจช๖ฃ„8Š)์Œฏํ~็๖^cv�๐มSŸเใg?ŒN".ํ๏p�๖>q›:…h{ะ,—-ณ™ใ๖^ฤly’ำ+Ÿโใง~งN�ญ}Œๅ•–>� ๔5ฃ‘†  ฺmŒฺEสtY๐ฮซป�—๖�ฬน๑๕†.�q†ญuH}—œgป�ปI—หœW^y…�7�ๆฬึ˜Vค๔tVb ˆ"ษ๑dIูhาXำcะำ:–ECี990_ๆ { ฆ*qฦd‰ว__Šฃฅbล|๒ฃOฐq๒ี๒ฉcภKZNd#C,]ฤฤ฿�•'ูแ็โ๎๙OIส/B�5ูด่h*pธ>ฮๅ@ŽRธœD„‚ƒ‹; �—HLUCี"kƒะŠฦ์๑‚คถDŒฬœฅj-‡ฮ๐F9แ›วW๙๚แ;\ฮB„1Q’‚”TE‰1~๓6uNš$lmnb%4U…Bz�ซiBFŒ#†YJึPืQš‘ค=๊ช๎f‚บiฑญๅฦฮ.๓eI1<�gึวd*ไฮd†าŠL:ฎ๏cฌA1ณฒfฝืง5 …mศยŒbฅ๔z,]ลธ฿Cใ+Nuำบ–(ะ`s‚PEฺฺR�’0P�r๎แGน}s‡พ๙5nฝ๙2_�โ๏๑โ ฯs๕๊พ๓?f๗ฺ"Qs�ูS<�ศ}œ>ตษ๙ญ.?b๗๖พ�๏๔�๚�ƒ�แ๑๊ฅห�าŸ๚ Ÿ��‘๗~่'ั+๗wฦW b‚(&ˆRTิC(MD€ฏฑฝKfฤ๙๕รZ_>!„๏—ชำkบ<ท_�ฝฒ‡๐EHRส{้ัตs๙ฃ�j”์H^!ยตธ6S คภ,os๘ึ๏S/f8™Q;Mิำ่(Aจ!„k˜ึ ?ธุr฿๖ˆ—^}“้lฮ๊สg 9P5%IงDIด฿ฃ* ย8 ŒX%Qภ๘๔9Lฒฬgไฑ`™—EYข[ฯUฏ%(แsะAโด๔h๊บย 1ฉ::บ# C„๒užึ8<�LA๛�ฉพฟโ๎ž ฅ€.DgL๓rท?Dำ`;ไฉํn๔ึ:๒ขBi฿฿ถ†$}wทs$ะ‚PC…พถX9†ร”$๒ พฟย›็สฺำ็ด’~-่’CNxo–Pšบ๕6ฅ5ฆ5ิuEธฮ�`ฺ–(ิ8!qย'จ)ษ’„รcพ๘ƒgiCฮnญั่ˆLงฬ‹9วล‚@†ฌ%!eC๕ฏ[ษิิœmฐ&่ `g1ใhน 552\1އlgซ,ME้ZฦAŠ”ŽูฅฦXAืšฆˆ•B:Gm=ฝcITˆx๚ป/ป.lw†AะU‰สฎEK ลzงฏhฐฆ|๖O :ณ—ฟA๛‡Œปkฯ๗๋ฆm0ฆs0ห%5m�ฐ˜/8<8`goท.�`go‚ "า�ํญm๎;{†อ๕UVวCึฦ‚ุว!05ห้œ7os๕ฺMฎ�ผล[;,—%iโ็:gNœค—ดaeeŒB๒Eฮp4ขื๓D๙bI%ผ๘๚+\ผ๘&w๖๘‹แ7ธ๏ยo๖”‘แๅ้ชnฉ๊–X‡|๕๊๏๒o/}S�s�้‡ž๘ ๏Kงไส�5พs็9�ุy“[‘ ต8‘]เ=k๏ใ=›OprธI/๔’ˆk[._ฝฤ?�๏�?เ๛œ๙ำgธะ[r๑๋wX]9Kนิ\บ}‡}เs�>๓ืh\C”คคi†ิ ำิชะ๏}เy๏w[‹๒ผไ_�๋฿โ��?็>๕^ู#hv)šˆฺ“ฉแp^ะ‹Umฒe็จเhV1›อ tH^7ฬ๒‚8P~Žฺ4ŒVฦ~.ู�ๅึ;6ว!�อ�๑วO�์Ÿค.–จd„i œ๐3�จฟๆy็�ญ๑c๖พื๗�,Ž.W/•้ษlะ๘็MF`Kœฑภนgฯร/wธึฬ Bอฟ๛›ณ ๚�>ฎuุE๎cAวslY1ปrƒชญจ‹%7—~8?เฒ(ธe็�ž1Yฬpฒ0 ษ2–gธGA@Q„คEcุ^฿de4ค4-๙ไ˜ดืgุ๋KpALO9D’ค=ฌsq‚P5mง:x ณj w˜.K�cs๚“O 8=^aw:aฺไิMCšค ข˜“qFn[ “svue$(‰5ŽƒรCtซ้eqาK{Teษp่ำ'ˆ›ƒ1Mแ‚i†วล!สจ*หo�๋g๙ๆ�›YฤcO|อํm�y็ž๛๎3”๓ใ~ฦ้“[ GรN=8f6_0หkฮ�w?๛sŸๆ็ๆ<๑ุP}Ÿ2pึD\7�W�V็� ^�ดฦเLาG?� �_ฅ่'ฮ$12่ึ ญcAi„ฐ`ผ ึN๎สไบŒ7ฮแค€ึุคr ธสฏNฐธ�<o�!‹ฅ$Z}ˆz~‹�p@2>…ษ๐ ฮT„ฝm�่้๋|็;/rผwื฿พม…วƒ^Bฉ™”„Npju„ต†ฃeมส GS–ิี‚^1-ฆศ ไฬษ3Qภ�lJ)Šฆ$ BŒ”ฌฅ Bใด„ F หJฺ'o,Š–ำซkhฅ‘AL–๕ˆSฯฺT)C„Š�Lฺั1ฝ*ฆ๏yPผ‰ฯYKG�๛‚gตKŸ ืZwฝพสืZ[.Šส฿เ@8(A]V้•ฝ@yฃaQึ„qD–†,—9 ˆ"MQึeMš$พฦ3๐^œCHcึส๏Fa่•ƒyQv�‹ผฤแˆต"o,QฐX–๔3O–+koผ›ร4โ…kw๘[�ฟฯruว๚ƒTAŸGF�8บƒu–XงTvมฌฉูnณ&\อ็ฬœ!kู€}[’๊˜I‘s{~ภ“�็ธ2�a 4gง(p„ขล …v ณข"ีพCb8nŒO๊ธ๎๏ฅืๆ‡œM๚h"พ�รื�ฉํ5Z๋OฎJ๙žkc<แFใ๓ทยoๆญฉhฏา๋g*gฬ3อuW�่ฃหลœูไ˜�7or้า &-ท๗'diŸ�`ศึๆ๏z๔A6ืW่gฉ๏pŽz6ๅเเˆ;{๛\ผt…›ทv˜ฮิeEฟŸaŒa4ฐ2่ฃต&Nbย  *Kคฌฌญ3์๗Qาsu iZรt:ว:ว๋Wx�โE.^นฮŸ๛3ž‡zญqโ็;�]้7ญ#ฎO฿ๆŸผ๒ฟ€ˆ๘ฅ‡~‘ว†ฃดCญ 2” 9ฌf,์’ฦ0ะื ๋้ˆ0 iฺ‚๋๏\โํ‹ฏ๑ฦ+/rธs›ล๑ฆทฏ�เฮ™Š๛>ปJฒ˜เnฌbๆš7ฏ_ใัแ�ฌป”�hDฟ?`eu•wฝ�)ฮ=๘(๋'N๚ฌ็�›�น฿4-Q๓รพส฿๙�ƒ'�ไไึ)Du›V ฉ๒ชยPทawฃMXฮfeXๆŽ�รœูbม,ฏ“ˆ้ไุcMฃ๙ขฆืKˆำ”ลฒgฉ›–•Aภ฿�O� ฟ�ฟ�ศ็tผBSอPA‚ิ!aบ‚`|k›ร#:5ๅMl~%๑Pืถ8ผ์eอ็Z”`ฬแB9`้อk"ฅY�ยš!2`2โ•฿}…ัŒS›'Rะ์Oh๖๖}.Lว3v๖๙aตรwnฟฮ+อœำ UY๘�ŒsDJาิ5A’‚5˜ฺฯ�]wlš†,หต7� คb4“E:Iฤ!ขฬฌm๚’๗2œpิeำ;[d 8š.ูู=คะ ๊=sโOฐ=๊“ ลฌ๖ฦ– ใuŒิฅ�ใิsภ‡qˆฒ’ร|Žj[ดึิดlVูŸ1L๛lF์N๖iชCฮmŸฅq9ฉr�y6!�d•$nA๙ยkา์!พ๒๏�c�๒��ด˜Vq๕ๆm._พฮซฏผย๕78>>)8ฑฝลhะใษ๗=ม“๏{˜�hm…3~ำ5ญ๗No๑ ี�่ภuy]็ฆ;$*‚ิ�ฆ๎ฝR�ํ|oN�mะˆ.Vไ7&�{�4ษ]๓ˆฃ3งถ�FŽ้Pพ๗๙XSเช]h &Wž็๘เEUŽ.ฐ@iI4ุ ํo ’5LSฃำำ/๘_�๕ำ�่น๏3›,Š „๔Vh็ฮžค?2[$aL˜4JRท>v&”wˆฏญŽXI3ๆห ก…4„I†่(~‰ณ๔ฃ^:`VืhJขฅ ’B*’tเ3๒A่G ฌฌร„ฆ๕ดL_ธzณ ๔†ุฒ,h›บ�๘ป:ึะฏั^�่Xะyก�๛YUฅ'VZHใ,Z f‹$‘ฏsฝปั๗๛ฝ,ฅn<โZ(M�4„‘ฯw{‰ขPSW5N(๒ขfuUฅส:๒ช้RCสึํ๊BPEQล฿C฿˜'|+ๆ›wŽ๘{�่ฒ?๑ุงŸขฎกR๔EUตค฿Kนพ<ๆษี“L� !%ฝ &Žฦ* -gฒ1_�y‡…)๙ไฦ-oLฏณœ@ต-กึž&�\พล7๕tD&,šบคXIv‹%MU’ ๑ฬณ฿s็ฯŸBi…ณ†0 ภ�ํ€๎œŸ_j-CU๛สDŸ„0ฝคu่"5๓้”�ทx๑…ู฿?d:›s8Y0อae๋ใaืิœ=J)o๚‘�า4!อz�Œั6คI‚ึ’;{{์์Rหฉํ ๎;wž้|ฦืน๘ๆ›\ฟฝรฯ�‰ฯ๒ุฃข”"ษ|ตช๋bNB B๑�๎wyๅ่G<ด๖๏~Dˆ@ „oโ ใฎค^HTW`\‡ib๖ฎ_แ฿�หฦทพ๑5?� C"q7Ÿุr4)XT-ำŸqแ E๐�)๓iฬ•k3 ึ‘MƒV^ึ+EจแhฬO��ŸโS?๓‹ค� แฺnž็Qœ�ํQ�ตฟ�79บ๙&?๑ก๗ฃ�r“Rว, GUVDY‚–ๅ|Ÿฒu`ณยb„ŸUUล�ั„ช*�ลฆu่( K#œPLf ฌd�อ_�i~ํ?๙;ิห9BG€ภZแ‹JฯOงซ9ค›7J B‡�ๆuW ]Lฦ,;์ฆล‰l€ะวH!คฟM๘7๑ู�vŽณฟอJร~๗yยทเ๓8›ๆไ;๛$qฬ�<{๕E^ฌ๏๐��€Y�R%‡วSBะKCสข$/J'Y ่ว’ร9:ˆฃะgท…$’ๅr๎GB0Žz($kkซธๅœ�๊‰ึ ฒ dิR2™/ัZฒXๆ~รฐŽษtสอฃ#ชณ็ฯr�{b=)�†ี8เอ�c�ตตอีƒ=6ฒ iสบFYIi๒bษธ7`ฺ.) cูศdHazf:_Rตstฝ8D˜ gืฮกœภด5ใ�(ึไfJSYฺfภไฦ๓ผ๚�ฏ๑ณ?�๓๘ƒ๏BเP๒3kŒWHlฝRบSN˜w#ขm]v›ญOค�Eื/�”๔‡9ภutF�๕�CแœW_ค_ปp •7c‰.…แEnร๎ค4gญว์Jx\*ถมoะ๔ท; ฎEH็�HšลMชฝR�dฒทGx๊)ฺ๒์„(ใคD QฆญJTzajพ๖ฬk�ำ๙๛๎๎r8™ฑฝu’ช.ุ;ฐบE…ผ2นร…d›ื๗o3bถ†Rฅ8* QŒP’qœ2Œ2J“ำZหแขมถ ฅฉ‘BRต๊ฏ�๕฿๘�๊xฮข๎BX$Hๅ0]๖ูšNw%=Uหu๕oRjoธ1†;ทn๒ฺ‹/๑ๅ/}๖ฯ� �•oqๅ๖"rๆ�‡๙่'~šŸ๛์/๒นŸ�$|โaฮlฏ#\Kฑ\r้อ‹<��๏๑ฏ}“฿��฿็๗พ๐ž~๖9n�ฺ%๋eฌŒ‡<๚ภ9ึว}V‡ึWืY]๗rhšคlln2X[[aะxศAY๐ฦ;๏p๕ึ-ฎ๏pœWฌŸ>EผยK/ฟฮ™›๗r“๙’kื/๓๘ฃOp๖�9Tเ �เโgf~�pฌฆkฌค๋<4|Œaš‚๖ „์ๆkQ Pสว Zkpx€€’หoผฮ฿๛›…gพ๕-†Iสhะวต MUะด“iแ mM=ญqq{0c๗FA˜(NPW &E ึP7ญ%๓ล’๏<๓ ๙ไ€๗~เI >f€$‰PJ2ูู=ไ�฿~†ฮoณ5J˜Wญwœš%ฌ3N BIQดBฆE!าY๒ฒ&ฏ*t ‰BMYไ z)J๙ฮe),ž_็ฉ๗=‚!ภูฦŸ๚ใๅ›เœ_ �"lŒษ่เวfขnGสฮเe๎A~„,มฉึ=�•]w��ปนY“†šร�CfWsNฌlR$!L|�๙ฏ๑?ผ๚eพ2ฟฤjฮฌถ4ตกต’A?CKhสƒฅX๖้e)Eีขt่]พiDšฦเ,ซ+cpŽ8Iู\_๕Tจควฦึi ค" ผ๋Wd#ค"ฯ šฎ0งq–ึ9Ž๖ูQ รw?Nrr“รถ๔QMg˜, ๚�!RJฎOุ๔qฦฑsลg>๛9>๗ ฟภ็~๎g๙ะ๛Ÿไ�้S๔Eรd‡ห๏\แk_๛�๚ท~—฿๚฿ใ฿��฿โต7ฏฐs4a:[๒ุC๑ภ…3ฌ ๛œุ�เ�้3 „Tฌญฎณตตลฉ“'XŽศฒ„ถฎุฝณรลK—นx้—ฎ฿dR๔Vึ๘ฤ'?ฦ‡Ÿz~๒=<�ุ�œ�^ใ[ฯ>ฯ‰๕5๏btŽ4Jxํ๕‹\ธp?gฮžFูษCฉ$–ฎ�V@ค#6“ t็TืฺKภZ+ธqฮCคธEืnš†�้��แ…_ๅ�ำ' DK•็Lfิu๎แ๛า/pF(Dแh๏TพณถจถY(Cั8ขศปqใะAฤlY๐๒žๅ์‰<๘๎'ฑึ๘๏�‘ฆ@กฃ„?๘�฿'RŽำ[cแู… ‰Pd�ณeIS–ดึ‘W5ำษึ:šชAIแๅณ(๕ถ ขฑP ๚�Œ$ŠัJ๐ศ[<๕�G‘a‚tฉR„N/xัสค๖Yาปศ[!uทธv tw5ยขT์–B"”ย๏�ถv๊ณบขDใ�m/ั’ (‘ZQ/็�y๙ˆSkงpUEปศผ๕]�แฅ๏r(kfyKแ%H“„,‰Iขฉ|C’ F!ix๓Œ๔โภซ,ฦ €$Šจš–อa0ˆจ๊†•๑˜บ,pภฺ๖6ZเM/8j๋pยฑ(KA’ู๑7g9อ๖)’ณ�ฤYสผญ…‘“„aLุc5๕l�^œ2N๛Hๅa%+ฃ>Yš:ลJ6เh:`œ†ไe’!ธณw  zi—0„AD%”๕’ขXขuD๋rๆ๙œบ‰ฐกe๕�ใ๔1฿๚&W/�ˆูญื˜^ๅฮี็(.qt๋%Žw^ง˜฿ขอฏp|ใ%Šใ+P/A„Hw๕ผg*\SuQB‡ะโ„s8ใc’ฮxF6ฎลฏB'ปก฿ุ๗Pxณใ]๙�!คF:–9ึ�]=Ÿย‚๑Q1LํMoึa๊‚ๆ๐M๒ธ๑๒—XๆK’•-์rAบบํg๑MฐPฅข!eJF็ "฿้ฝฒ2du๓4฿�ม+ฤขๅbkm cฮœ:ษใ=ภฺ๚ Iœ0Œ0ฦ2ููใ๊ๅซ�พAjก˜M‰Te B ๋Y๋aš›g%๓๙’qำ ศ[?�dCZRc\Cค* ‚ฎUbšŠ JA4UE™O0Nแุ่๑m‹5ญ7าเlฆsw+%‘๚ฎBโ=ญ1พถิถ€ลtนP๛Qิ2/ˆใˆฦXข(,eYัXBาฯbสชF _ฯœ%๑=ฃ’า๋6ยอh‘ฅ‰? /‰ IjI $ฦถhๅi‰ขklฺฦ๊:ฏSำvฯƒ€g฿~›‹7ฎŽFใ ๒vษยZŽ๊†“ฃ1รดOeฉY๏ ษTH-%็7Nำ หA™s~ธย(Lฅf๖ธน8`i#ฌ)นะ_a^-…โธXฐฟœำS‹rIaj”P,›ŠwŽ8™AH+ึ๔T€๚ฟ๒๋Ÿ_Qา›ื่ะyJ๙<ฅg฿โ›Hข0dv|ภฟ�ฝ฿็��’๏<๗‹Fฐv๒�ศ‡๘๙ฯ}†Ÿ๙™Ÿไ'>๖)น�zZณs๕ž๖��แ๏��๊฿�6ฟ๗…?ๆ �พ๕๏ณwpภส๊&ฃ๑ ฿wž๗=๖('ึืX_]%”’ ŠYฏฐบบBฟ7ไไ๖I6ึืh›Š�wvx๓๒พ๗โ+\นu‡ieฎญ๒๘ปๅใ{ŠไI�๓๎‡Y๗ˆด�ฐทU‚_z$ H“„้๑:P\บ|‹ไแ‡!Œ4aจฑxiG‡๔ะบ)๏5‘ตึh�๕J๛‰ฎฅ'4QW’p๛ญื9บq…�Yษ[—ฏb„๔‘ B…$qโ!:@ส�Vฬหœežc9=— „aไ�รJัZม|ถ`z|ศฺjŸsง69ฺ�ๅฃŸ�9„๎ปR!…ขœp๛๊eพ๙ญoณs๛:็Oฌ’ฅC‚•!กซมJdะvจ‹EEใ<H‡��ฃpTUC–ฦฤAภ Ÿ๚J˜ค?ฮ…>�ุ>�แ๗๚๎๑ถล:ร้ฒป€ฟiu …ํศIถ5ดMใoๅึg#qŽชƒด80KpQWz"ฅ๋6‡ภหฃBขดC„ 3™๓ฮsท9ป}�ฯ_�m�๙�฿e�O˜ฯ็,kร๖จOU–X๋๛ž…mHย€บm}๔ฯ8ˆฅWข8ภโ*g[ŠeTฐ2ฑ,+D2H"D`สœ0ŒH๚}สลT@”dพ‰ฮตžAํ@Iอb1goบ„ำ˜Ÿ�"๖e)ถ5ฌ๚dqHึOหฒmฅ"’ต,cQๆ~V—f~๎็u�p\Uิฆ`g๗B˜zมญฝ7qฺั[้1ŒR$†~:็oŸJ'คILจ๑.Z•ัZp%++Šต3๏"�zˆ‰ธ๑4ƒ~‚HฮPYE^W,Š‚k7ฎrt|ภี7ธ}ใวทฤอทพลญทพลdfIz'ฝุดพ๔ฦ_ก�ณ!๏Jๅำ6๗`ึด> F/ภBบ8M[1Wโฬำฬ๎m�ฎ)บ๙ถำษ้ถบทูะึ[SNฎp๓{�‚ร๋/ฏžd๕ไƒ$�5๊๙.a6$ˆ†4ห=‚ม&’ก„45@†+„qŠPwn฿แ๔๖6y-y๑ฅWx์ณ€ ฎ+†�Œ๑xL[4Mร>ฬ้ตUโ(ไิึIฆณœ้ัœƒ�{ด‡4ำY(}ฯ|k‹•–Aึc�Tญiบ˜—"ฺ%Uื,ๆ\Q UY+แ‹=๐๎fฉCO/ฦ๋nยป๓}Tหว�ฐฅos`Ls/Cn;•ึ฿์๊€ฺ๒<วeQ2[xๆy uใ‹bขภว=:U2{ใZฟ†พ 2 MkัJ“$1/จจฎ*ฺ9KSUX๋ืJu*ฮ๙๗ผหธำ๙ƒฌ๋jฅ๓ŠึX†�ฤืุv ฅ<3�ฅ]�z๋ �S�œ9u’V:ฒ$ฑฆ้ฅ`ฒ\ะื!๛eNQ—œK๚ ƒ˜A€eVd2aY-‘ฒE่>ง๛=ดฐไึฑ™๔˜แจLลH๘รYk ›้)aุฑด–q’…!}ฅ0u๚อฟ๚๋Ÿ_qVt%~เ+บฯŽP>G)…DXหั��งฟ๛฿๒สต#>๕้ฯ๐ูŸ�i>๛sŸแำŸ๘ �๕เV}ๆ{�z๕už�ฦ7๙็�฿ฦฟ�?เซO?หๅ[{”cs๓ซkk๔ิSฤIไG าร4ด๖~��žP�กน_ัZ’$�ไํฌu]คยฏ}๏œRใ,ถญม†&!Q1ฦ๒ขbถ๔FjN]8ว'?๕a��Ÿ�S�๗เ~๐อฏ๓�Š�ฺež3=š๐ฮพศ‹ฯ�{พ�ต/ษ†หทŽ8{r“~!TFXš|IฦิU AHจE�‚‚( R’E>rU”J ฺบขื๏!คdEำrœ— cMœ&ฬส-๒@„DhEฺe}วGSฺบก(‹ฮu.\่ฅ *ํ1ŽpR“Eฉh‰ฒำใ‰/L่๕A@]ื8abZCSื์�พล4๋ใzˆช3ˆ#ฯVWЇมr๛xยฌ๒๑ฬศX,‚‘์ฬฆ,šŠq’’อjˆ$mะB“๔CขD2]NPiฦ�gฮ“!๙ฒA(F๋วQ‡�TXฑคจ ญž2eจ#D+่ล#Ž—โ่?�น�Œณ|Šงโฤน๗ณ}๎ƒœ~เใlž�0'ฮผ‡ี3&่Aส€eพd�ฺW)ฏณyๆ ‚4ํ.wี—ŽMKG๐ฮ฿‘่0้œแ�ฅ‹1`k_6d})ŽฐKœ๑นใป๐ถ.iชฅ7A*ฟQนfฺตSy3ฎpีโ:ี์:อ�ึ–้€ตs๏ฅY,ˆ๋˜ฆ๖$ฐlศ๒๘˜ฐทŽฑ ‚– „ BE $—ฎ๎๒ๅฏ~‡๑ ๅ๖ม”�›7ูX_c™็,— ~่ašฦฒนพฦ๚๊ศ;๋ฅ Ÿลlmlฐต}‚8rผจจkวัํ=�์€*/˜ZƒHD�2kZฦร>ฅ”ฆง™TนG9ใ2 -งิMEaY๔“‰๗(ํy้A#ฅ!|™Š”%ม9๏ฤ๗ฤMNbM๋S(S�:ป’าฏปึ4ิญ7>GwฌK!3Žบi�M[็ืฮAฟ‡sŽถmผ?H^๑J�ฒ]ž_)yI]ตพzT๛ุฏงย9ชบ๒๋~๎฿m๐Z๛~ีด๔’(๐†<ำ6ฑxc๏&ฏ�ธลpตO0์1 "„ั.sฌญx ฟสวw0Rp}qH$%Y'ฟ฿^L˜ฬfdAD$aRึ,\ฮqี0ˆวœ่๗‰ร€ฺY๚AŒ‘ตซจ๋cGต55’ต ลถm)ช’ขiจห ๕~ํฯ~meำVX[{c€ต4MMำv/h�RU%R�๑�๔OYˆŒ�๊ฟ�|ไ�ณต1ฦไ%฿�ๆท๘_�ลฟไw~็๘ํ฿�Cพ๘ตo๒ร—฿`็๐€Mzเ๎?{Šต1\8วษอ †ฝŒตuฒlภฺx•ต ฦฃา$ฆศ็()98<เ•ื^ๅGฏฝส�ถฮž็ฃ๛Ÿ๘ุy�ปๆ�นœุ^cะ‹‘า“ƒ|ฦ�;ฐ�บ๑ๆš{A~:เํทฎ ไไฦ๛GวไEฮ[๏\B…Ÿ�ฤวˆปศšu~ฎข”w&Zำ-ย@#ฅG;ส๎ืฮ๙ฦ]ฟxw€ะปW/ฃคโ‘ง>ฦ{ž�๛ฤวy๊ฃ็แGๅ์‰ ฮœ:ม๊ฦIฮ]ธ๎€ัh•ำNž9วO�ิ'๙์Ÿ�y~๙ฯ�2๊?ม�sžัฦฒมˆฟ๛-6O�ว�ฟูtสหฯ�฿๘๊ืy๎;$qภ#?ย›WAฬ้อRž%C#%IคภXฯโm จ๊ ฅห๙m[ขฌO/KHโˆ(Hฒžฺ5†aณน๒ก~ !/ฝIAFจ ๖2นภฤค๏S8PAW|"�้a�ื฿50 ั5’๙�„ณฅ7Oนิห๊ญภฺclณ m4Nœ‰‘ชเ^ฆ๏V๘฿�"w๒cฒ,eZ5ำโUI กlZ„RDI‚t�6…!R๚^๚ ŠHร‹`™/‰ร,N‰ร€$Iq:๊$A็9็mMจd@J’~'่b~�ฐ๕ ฯ๕ฝ;ผS:‚ม{ต!Œ"Lจ=”ขn˜-–�— kaฬขช0ล’ณ=ฦ�iฺg<่#„@ZCS{ฌ‘5ฝD๊Iฦษˆส6˜r้ซ}mDc qไHฃEUPีŽ$„ชาXู„ตYR•Ž,ั˜ ๕rสb�=๘>ข8๓|zJYชŒ$Yะ2์Gฌ $›[็9�ะ'้Ÿ๘“Oำฮ฿a๕ไป<ๅฬk.�๎ฅLฏ|u9ํป‘C็;ผMS๚[ตkฎฦึsœ)1Mั)0�โœฅํสOภ๙dอ1อaKšrŸถธI“ะไGพ^ถšNPๆ ‚ธ‡i–4ถฦษ˜zบOิ_งฉยt �,‘:F†ซ�ฬ˜Œ‘:F๋ฎ์ี|๋[฿%ฐwtLKN:ใว’Rฅ ึ6���ccm•Aึ๓F0๋g๙๋#า4Aว)‹า2›ต]฿a็๖>‹ช Œ:K้E!Nk๚ข&Ž"ย ข฿ฃโฬw ˆA{ษ< ด„ฦšบVyƒX]-ˆใŒ ˆ0)ำู†ฆฎhššถญยุW‘ฺ็”ฃฌ*pึsศปูณDšบu4ญ!Žย{)Ÿึ8”–$ก&๒s๖0 ยะ{ul‹ณ)ปแมcแ |ฒุปฮปˆ\ำxU ŽBค๔๐ขป—SบชุขjะRH��Yg‘RHว�‡{;ปwx๛สฎ�ฺe6ว(อ`m}๒ใ|๖gš=๙๋๋C"ํeึป wืัฌ๑ัGy๗c›œ?wšฐนEปธ‰5พJฑ•๏ผ๖io…“ผ‹Ÿ{–็๔<“ฃ#"Q๓ศ�็9{ๆ~n์Nx้•Wน๏ไ iM๎7„@#m๋ปŠตฏอ๓†4puCœ$ะอิ๛ซ๋8gฐจ(ย!นณป‡ฤbญแ'๒cผ๛=๏๖0… ฤูฉ|ฆ่>`� ึ-ศ�โ,$โn>�โ็ึ๘™งkqฎDธ�ฮขE๊ฤืฬถ‡1WcฺClซhZํฑซHt�ใตWn`&–?พ๘“บ H{ฌކฤq์ฃXต—ิฌต ๚Cฦƒญ๑ šพv0Œ#†Iยr9๓%+JัKcโ0@ I�ิค=OฬŠใๅผฬ๔ziฬxผๆ;ญ!ผฯขฌj”V��ฝรซG ถ�๛~ฆฝŒ�9า ๖X้๕˜mำล �ƒlฌƒ54ถ%‰Zกจส†3kk,E^*๒)*’$ 2าธG(สชฆฌJt”ะบšผhูŸ]!S)Eฝ$ Bย ขจ*๚=M ๛จ@ะ7 ตขโ€r9ฅ˜<๔เGษ’>H๏ฅ๑ใ‹k+žh(d„Š2šjI/๋๖ืธ}้zฉw[ใอkฆm�s`kฟqเ็โฐmๅว28ฌุปธfก@xˆR๛_[|/ƒs„4žเื”วดีŒzv kJชฃLณฤๅว่lS-�ฟ™/ฏbส‘Ž™\{ƒ0 ณท_จญeCD8Dk #œ๓์‚3'ึนถSr้โk๔Gc‚ภ1๔ภแ๑Wo\๓ภจฒb2™xXŠ๔ซซซhข„ck}“๕•1kซk่tภ์`ฦไ๚yัK‰‘–, ู—$ฆ๔�ฃTยฌฌBขฃ„PI–๙Œบ•hZ ๊ฆฆ˜xCX๊ำ้Ÿฉ๋ œG%>qฃด๏Z๏ฅฒึัถ>฿/๐5าแ!+*ภ:_ลฌบ’*kl—rrxฐŒ7อE(ฅจ๊!ปฯ”ึDQLzeO q�$บ„T’ผ(ฑฮgพฝวฦ�ะฮ฿ชชกn,ก๖ใฉค7ฯEพล๎ซฏpด\ฐ}rกป‹’ํaŸaRบ–~—Ÿ฿NzŒ‚ˆรฒFXษ0 ˜นB b)iœ`+]! 5ฆชˆ„โp9รโ tถ.™WRม#ซง˜ด%ึึŒย”นiQ2คEW9ฮตX๊ื�๒ฏ~~ueŒ1}jŒEซภ\:ษฤš–0 x๖ู๏“f}~้ณ?‰’๚�๙ท�_���›ฦœ>sŠอ๕uNฎู��&หRNlyทo–%ŒcโดG?หยัึ ๓ษ„7ฎ๑ย+/s๕๖j!ฎopๆพ �ฤO~‚ฯ�ิ'๘่S๏ใƒxœsgN… ำ48{7๛yทlฤŸ …๔๕ฃ/ฟt‘|™#•fueL�e]Wฤก”โฦอŽ'œ9นลฮ�.ฮ:๗ศz=ž๚เ๛)ห’ฆ๖p|ืe$‚Pข•GฮฆYุI5ฅ…gGkŸ[ย;�=Qหw™Kฅ˜๎๏P-ๆlž?็ๅAXใ%)c�ำตl�บHอํไMl=งฝIปธM[ฯi็ื(งทhญกข1?๘�(‹†xm›7_�ื� ถšS็฿วึฉ‡i๓F}อ๗_นDU7œ;sa<-,[ๅ่�ˆ@)สฦั‹b!(ŒCศฐ‹ ย(ขu‚@H-9:^๕2ด44ฦ๒—�WX_๋ใะ�€tŠ%‰kํฝฦืษ๚›นฝ๘#Žถ^zฆ:uว]๘˜็ฉ‹๐ฐ ม\ๆMFT˜ฆ%ํฏrใ๖1�๎?|™�พ‚U๋|ณšึžง=โ4ฃฌkญฉสƒฃŸy๘OQU”‹9RIŒ๐ท€,ŽIโฤo2:๒Dง0fcuc[Zใโ็$๋ซc‚@Sๅชใh%1Uฮม๎ ŒึธEฎŒˆ๚=ฺXA–Pท(๚Qt/๗ฅ1‘ihญกqŽ8 XฏัXKQไ”Eล๎�ST‹‚Yqฬxc…4L'ƒ"Tฃ$�๋รuBะXMึq|ผC  โLา˜”P7Dz€paฝฑำูฉR๊โm�$aE/H“็�฿�\โ฿f๏yุฆะ65ๅไ"„cชโˆบlษ†›ุv‰”žS-hผฑฎ[X…~ไ‚DJะA๊oT�ื+•aรถ‡๏ฏ6ถ๕ฒคS4ห}๊ล.ฦ4ำkดี„f~›๙มUยdŒ$ Z1ฝs#bโฌ๙”‡จ ฌ“่0#�x”rqฉu>#Hืˆ’>ี� คดuฏnšŠแh…Aฬ^zƒลไ ะ, ฆำZLgsสฒdk}c,mฉส’,Š่ฅ1าฬA ่g)Q ฌญญ†)—_ฟD~˜SฯจmM0ฑ฿TS#l้ˆYSขฑ๔ฒฑฯาฏฒ6" ”พท�›ฤ,Z'>>Wฮ�{'ต‡Š˜ !ึz‘5 5ะถ MY—9ึzCZk,u]ฃ„7๛*-ฉสื๕‰ทญ๑พซ ๐พ!ญIำฅ|…่r๊‹�œา4้ U‰ฑ›gทm๋ฟ‡1�๊|จQไKJ|ผ ฿c�u4eMk�~ฺ)…~\*Œ{1/๏฿แํร'7S†้ืฆR! dฤjœฑ4%นฉY‡์ฯ'$:โTฏG(•ณ<8Zั๐๒มM0ฐg�.rฐŽzษ Y“1/๎_็ฬp FDเŸ|aษT@šd 5u]าHฏ ญG)๊7�ฺฏ~4 D่คฟมJู-ขNPืพ๔ู๏>ฯฦ๚*=zงฟ๑��?๘ŸIณ.�วๆฺ*aฑศ—„Jy˜i ร3งฮะ4ถญนvํWn๏ฐ7Yฐl 'ฮž็}�?�ำ?ลO|์Cผ๗‰‡y๐ณฌ๛„JxOส�(�Rึิ-Ÿ9\,rZc:2@Š�cFใ[[k„‘FชCํ �5Zs๓๖ป;�c,Qเ#ัNv&ฺถ!Rš๋ำCพus๕Qฤ๊p™i่…Jฤ�ž์ฒhk*[ฑ๖8สsŽหร(fท^bq�฿1iZฎ`ฃฟA�ถฌeZฅXT๋ภํ?B๙mgา๏ฤ3m‹1†ฒจ๘๎ณ฿g4๑�w?ม—พ๚,_๙๚ื9w๖,›~dฌa4st|ศม�G‘/ธ~ํ:W๏์ฃ{#xืป๙๔g>รŸ๚ฅŸ็็๖ำ|เ�sแฬ6ƒ4๔ุฝถน'ŸJ)ใ8<8๒…๋]omY6ผz๑ฏฟu™ gO&ัฝ~ks…แจ็gfยฯอ๎ฆค!ืo�booŸGผŸ้d‚sŽห๏\BŠ|ไC„กฯ~k-ั’n�ใO;๋ ฦxนX8 ่๖�มu>Šb;ฒRq|๋ซ›ฉ๏ถฝวc–~‘าฯ๋�-^€iภไจl๔4ˆ๚ฅbคmmœTX=&œเญW_ใ…=ฯรœg๎็]็ว๔ไ�฿b›‚*/pึKz7๗—ผ๘๊›lmฌ๒ๆ;ืHbอ ? j�=ท.j”ึ4UŽำuYฑ(kv'�ูู%Gj๖ˆยˆขฎ9๎Ÿ๛�ง‘ฎ๑•�‰=HWQa่ีrๅ็ุ* ๎:&ฝฤ)๐‹Eg>๒ณ@๊ม]ธ>ฟ๋|ฬNศศท‘™ˆiช+˜ฦ/:ฮL๖ๆ�็๗ฟใฟ๘4'ท7ุ�Xง(rn�บI…ฌฌฌ{ย๘พงภ6~œu๗ๆv๏๎P:ภ6ฅgp …1%ฆฑ$%อNฦ)ฆ™๛bแ!?�ภ๋ฐฦa๊‡ฤฺ–rz๊}ค›ณœ์p|ใปT๓=ŒL™์ฝI\�6Rงีmต๋็งqJพ๗ย6ศx"?ธŽN†$+'ฆฆ˜์ข›TUAŒif4UKU”$รMyE1ฝEฌB'd›OะๆทHFgฉ–G8!?—B1/Z^{๛S.๙ั /ฑ1๎qๆคgQ๔ฒ„ช๖พ ˆ8<:d9Ÿโœ75ถญวศ6mEcZ”NะRลEUvU›!qs๎�Yฎ฿ธล�`ฦๆ๚6๋['‰คฦีBWRI]Hd—ฤdย† ฑ็•BvnKฑ(ะ6K”}lถ๋Sยศ๗l ‰ B๏3h›{5ข๖&เP๙ธ™sฦsEZ‹’’(๔JŠ~Tะถ-ึX‚@แมXฆญi[ว๑ด$Mฒุ›W๑7w!�aค([zฉ�œ†qโ}5ฮQU5ึzR่�ฝ@I‰ว:๘๘[Y๙Yน่._ฦ๚ผtP�’?zๅmZQ#ขdLฌ[ฝ1ฎ%N4'zC $Vภ^น$ีkู๕$ภหอEฮV’๐๐เWSดsŒโ •3Ž๊‚ํ�ˆย4hุ๋ŒR ็ธ>= v้™Št@�ถดaFจ฿๘อฟ๚๙ัศฯa s v’x{�อšฟ๕๔3œ=}'�๗a.พ�&/ฝ๒�,cccƒถ5๔ฒ”8Šฉ[วฒlธz๋ฝต�ฤg>รฏ�๊ฏ๐ง๑gy๒}๏ๅ์ฉ ฒุ7K�EZk}วณ๒๐)$‹Eมม�—ฎ�โ๖๎1Wฎ�f>_2๔I’˜$M โˆอ1R9p ต—Q„sฬงsฺฆ%;7ณ๓ป๘ม�ฏ]|‹ณ›� š็\ฟuษlม{฿๓^าฤgใ$Bv’B๘๖ฃฦ4~fฃ|eงํ�Z฿ณ๘รฯ�›นภซq–qpใQœะ_Yผ์๏ฬ�ูยฟ`}�ฉRc–ทฑอaๆุู5ฺลฆœ`MƒT!ฦ9JืC#ž๙๊Wy๕lŸ:ลFš“ ‹&กžะ–Fธ0#‰{lฌŽx๎ฅKฌŽ2ฺฦ-ฝ^ŠCs�๖.]฿แึ๎!ซซk๗\‡ณ%ใ~�๛GŒ‡CVWF�ู? nึV”Eษว?๑>๙ฉxฆ9!<๑J้ศ�ฯ��ํฺbดW!œC(‰k�nžีโฌŸ#ฃBดพ„ล9oฃ็‹ฌSa�9:H‰’„0K๙ญ฿� �๘_�2ˆˆใุป[-๔†Cฦซซคqศ ๋ั๋๕‰ข%$ฆ.ปV.็Gaฤฺ๊:Qค™็%ย:‚4C„ �,c6=&๋eฤaุ๕ ‚@t‡Qไ๙ำq2™q๑โ๋ผ}}ว’€0คท}’jeDบบBฃ.ึŒ*ห81’ุ–a๖ฺ†•^ฆiXึq"lMmd๋(–ต3(‡ำ#d(ูษI„fิPถs0P6 I�'ˆ„‘(แ(ช%ฎฉ‰tยฒ^ข„ฤบ‚•ม&ญญ@@ ˆ†Pภt9A๏�แฑ&Z=ื)#�!์๎?_"ภ6%ถ-hZC[Wœ™#รuT”z9ฅ}ำxŽmA†,.amM>ฝN3ฝCytl๕>ฺช ฎjฌ)I“ฎ™b๓%ลbม`ๅ๛ฟ๛ู&หร7ธ~�66>วh8`vtโจbt๎])ุ{๛Gฤใณด๕>aบMUฯฐฆฅ^.ะqฬ่๔๛< (สPq0�BJC”m#tŸz~›xpŠ0Œ1mหh0`Z(Ž๖๖x๛อืษหœ�ฃCŽBqgw$Š† oผu™๋7oaŒ%/ 'zYŸบj9}r›ƒร=ชช"Kz †}V†C๖ุfŒWึx๛๒5Žo๏qj}›�ส ?ร_์ฃ”ย‘ฏ#ต%LQฎAJM�ZŒ…H)#S [ฃ‚ฤำุ่ฦ"ยhํ3�~ม๖Ÿ_g}ฆ< ‘BPื%KkบRgqฎ+A‘�V์™ๆ)MkiZKะu–฿=Iฅ˜ฬ[’8 ‰ฝR,•&Pสซ—ยัถ‚^šuั2‰ร7ฯ-พฒ4ตGbwฌฏ๘gห9(Š‚ธS•๒๊VSWdฑโซ—ฏs-฿ck๛ซแ€H~๎X‰ eไ!^2 hrช|@a„ฦH‰19๓’0ไฦtั€›‹ hอึp•$ขตp\อ™ 24BETถๅธ,ƒ˜aš ปŸe>G�ฅฟ�??yฉD'๘Yฑ^�3Mƒ”๐�^`�๒�๗ฟŸW_y๏�YNœ8แงฤำypฃ".ฟs‰ฟ๕ท�6็?๙Mž|๗รŒ๛ ฆฎ0MีA<อญฎj๓œ��C๖๖‰รˆ8ภม๎�?|้ 6ท6x๘ณ๔๛=ึืW3ยPำdlnฌ!…ŸƒดuK‘—4eลแม”๙"'Žbค๒๎CภŸสคbฑศy๑•ทุZstpฤd:ๅึ�m&“)Ÿ�ฤว zXgPRu7/m !oฒ่�าพ  ๛o�ฬ�฿$}ค ภY?ž๎฿a๗ๆe6OC:็๘รฒึป�; คธvA=น†m[์๔-๊�7ษ๗nS็Kp…4ลœd๓ ฎ�8เ ฟ�‡Lอฉต+bฆu†ฎ'4๕‚ส(j‘f}BY`๊9W๏ฬˆ‚€ผฎ๕๛lฌ ธนsศณ/พฦ‰ญmœไeEฟ?@…{{๛Hญ™-rฌฑ์ฐq๚็OŸเ๒;ืะaภ_�อ?วๆJKŒm๓.๊�โP]��ปก9�๙่“ฎศร9฿‰l�ฉC๏<งEะ_P!tึIซ-ฮVุzโ_G้ๅ„หภIN�โ'?๓q>๓3Ÿเ� q๛ๆM"ญVX_[# ๊บ๔ฃ–n†ึฺ–0ŽXZ‡Œu�2+Jฦƒ2๔ฮ๛4‰Xๆ า� ›ู9ีš0PA@–$คก"Žทn\แ•ื฿เึมœชj•`em )แ้“ฐ6f*Q/ev™ะฆ&(**cศ๑๕{=คmนqxŒijNRเอ‰…ฆี’ตac‹ถๆฤ๊†o›r-yพ$ัFhษ€$๊cจ: S8ษj6 Šjย0 Oโ„ขjnกE„v1uณD‹”บ\rp3j8ฝบFผ๕๎Žœ๊WFk ฎ๕=ำดตg˜ืK�–ซ”Pณ5B;คN “1J-PAไG,� ฝ๊":ŒiŠ ณ[ฯ`+ษ��?ไเฦ5›๗ณœ๎ \E` ”’Dฃ ,็Sส�›ค๋g1eAณ˜๔ทฉ‰™_{‰VZVึฯƒาุลmย๑�hฅ)–9R†ŒNฟ‹้ืqชG•Oจ�F่l ๖i›ŠจkZœะ๛ˆh้rขdฤซ8<ช{ผ}้ทฎ_a๏`ฉ#โt@ฤqBž็ฤก& 5+kœ;s'ฝรzะS7่Pั?–“8œ3h)ฉ๊–‹oฝr งฮœc6ฯy็ตWi›šคใฺ%SกY_Yk(ซ†ํZ†ฝA”Q Y ยฅd‡eUHi|„ฬyใ™Gฯ๚‹“รท{Uuณ-ฆญ)ช†ฒ๐…%ฦ˜Nv—”Uลpะ##‚ฐ#ปi฿:งCM’D^uม†�ฌfŒ๐ฤก๖ฆ8๋�ลฌ๕า{ี4h%ดฟ�•�…ฏ็ ”ฏ)ฅ:ฎ‰W๛�D2]T$ฑO›�ธด1-Yp้๘ˆg�y‡s็ุ+s๖&3าdภั�ˆใ:g^ UฬV/foนd˜ ฉ…ฅ-*๖๒šญฌว๋“;$*%j‡uล‰�€ฅิ„บe+ษˆtDDจPhŸ�iฺ–T‡ศ0dฝ7&’ฒm™ิEU"E—ณซสŠถ๖7KฟŽ:pg�ญP 698<gPJPUUพ / 0–ใใ G“)uำ’ฆ x�ขDQWuUัถ†บช˜ฯp๋ึ.{Sสฦ z,๓šข๔ตว๖๖:�ศx๐� zฝ˜ำ'ืX[ขCํohxภƒ!IcXๆ%‹ขfด2d8า๚zพ{d&๔"‰cOฺJRŠบb:;F‰€ฒ๔�^ฟ๘๚�ฑนปˆ�…นHiODช[Lใณ�ฆ1�๗š†ฆjฐญGƒjญ;I’ม 7฿x…ษ�>u]ำึ•ฯ�–U—ฉ๔T!‚†%QQB˜d(QใŠl๎™ป4พ€FจˆxxŠจทAต\Pปˆ4‹‰[,m]�$/fH1แั›ๅ๑mf“%ญ๓ิดฃ้‚ฃƒc._฿แํซG�ฺ=Fฉ(าlฌนuk์œล�kE้#"‹|ษo๑ื�ฬ‡๘๘๛Oา๙ฤว�รฃ๗mP”>šๅดีc›{5ดRˆ ํ7qกƒ๎G�cชVg`๓�…ปฎ๔็B๗QA่ฦญ'™ +|ŽUลHัถŽฒZP%ใพโมํ นน๗*GดwG5ึ2่๕�BkฌoF Ct‘�^ส๖ฦหบฅn ƒ4ฅ5-ฝ^฿3‰›–••5z‰ฟน{S\D–๖I*คซ8<�แ‡?|žo=๛Cฆหk[’Hฦ!u•“ฦ1eำร[78�?dฑ\R”Uc�” ‰™ฬ ๔=ฃ‹d4RhAmแฤ`L?e)ซรพ๏nOR๎?y’žะคR#ฌภ  าQœP49�ฐG$�L;N"า8$pqะ`�„Ljฺบ ฬsŽŽ™/,ยiสๅl™“n?ีyผ QhŸๅAเำ_LS"uˆ๛„ฑ็€๋0&ส6ก9ขฎJฌ๑”0๊๖‹ญต`šœjv ศ๗(g‡ไตโpย|QQL(&วฬ WŸ�อ|—๑๖išๅŒๅด€d›ๅ๑”ขฬY9�$้ึcLฏพศdrt๓a %ี๑[8ำะ?๓~๒้2่๕ืึ๗ถ�กเเ€ถ1ไ‹#–eEQถไห=d8F ƒ4sD0คi Š8Nฉ—šOœ�๒JŠ8ŒุZ]%ิŠ4 ิฦpt4eETล�ถL&วTๅ’๙rฦี�ืูููA)ม|™s4›3›ฮู?<คŸ%œ9{ž+;‡ธ:็3?๕q[ผ๐ฝ็ธr๑ใmN๗R•‘ฅCยpภผ]pX;๒b้/a(Žfสบภhเœฃฎ ๊ฒคmjฐ–บ*ปจฌ้X ~CŒฃ„ LP: "๏C^ข–R‚ด„aไ]฿8tG‹‚€ฆ*มนnC๗ทl!UYฒ\,X.sฺถํ�mผ'วดH)‰c฿]ม=ฑBJม ฿ว::“7ิแผ่?X•BP-ฎ[LSกฅ$ S�{๚ฒ…๙r๊็ำฎFV “ชdณทJšค�Xำด‚@:ด yptІFxšเษlHช5ื›‚ต^FHฮe}Œiน6Ÿ Q7ฺุr"ฮ<–XjšT์์q<Ÿ1- Šบ๖*‡ฏ]Œi; –FธแŠ H‰‚�4๓e๎ึ#๕œ“์ั4–รƒƒฮนR–a’yGu'/๋ธฝณห๑dAQ{ษpผถย‰SlXccsญํut่]ศข“ตUŒถฮ“ ื)ฆทแ �scฒ๗E=%์ จ‹9หรk„�S>—คศธ‡iJฬbJœฌ“—…ฏิ้ โมYO6 W๏ฉJMSฑ2๎qั฿ a๛๚9ํฃ@ƒ^$ษX[_G:Gc,รั +ใ1i"บ›+R„พซ1Ž•ต1[�klnญั๋%�๕gmซฒุถ๕Rพ่^เผ *Jž��หผ๐โEฎ\ฝEYTพขณsrำมgDGL'ูอg .ฝ}•ห๏�คฬซ{™qฅ�ร†^Rื5วGฬ็Sฆณ9y^ะ?ฏาS}„TQB’d Fซ๔†#าดG @˜[WดeISไดEAปX0ฟ}“ษอk_{›๋/~�w^ฅœ๑��อ|ว๓HฌGxฉฑล6 ถชก12Uทด๙1fvS~.TWˆ$ลู†ถuXฒ0แ๋O?หฉํ5Vฦซดี!‡mc4Ž๑jศสx@1]0ู;ฤไ�ษ๘๐}งhpJ๑ฑwŸๅg�ทฮปXc>Ÿ1ฯ๒ล‚qส�๗ฟ๔ Ÿf<’WKฺบfkmL/uฬ‹9A๑‰ฝŸํ๕1V„˜ฆธW�(…B…]�9š<ง)JLYa_�่]๘ ำ: ืR'  ๗ไ,jL=ริฏU ฬกBtุC้!R ฦฤbฮพ๚พ๛•oตKT“๗d�ฯ8<ุๅ๊kLfผ�ฮvvnณwxา4มZรtถ ?Z%"Ž'‡kI“a ญ3>ำิ”MภGยYŒmI…ณืฎ�เญซท™W&=ข@่€ัhฬ‰5Vื6qx็๑`}ลw๗bึึ‡TJ’[GิิN็8%ง!ก’dIB`\^P,—L็คqBk[n๎S9รู•UŠฒ`QU๔ใฉ%ƒ^^š!ตf>e^•lW)ME‰a^Oiญ@BตBคW@ตBmAะ@“ค{ฏไ–๓O|สงฌรต]k\๋#Ÿฎัก‚๔ณB�ไ4mEP•5:เ๐ๆY๋��ฬŠา“๛ย$ฃท๖๙ัU๚๋g™๏]ฅZ1่ฉ&;Dใ-ŠVRๆK'N09�ฅiJึx7Z–”ME|๊1ส้U„L‰z+dg™ํ^!?พJ0:ห<ŸณํMคtƒ-๒ใ;พTj‚ฤใS๛๗œz~“$]gc๓io ^ง)ง้tฒ†Kไ•Miฌ‘Rq๓ฺ ขP`Mงผ๔ฺ+ฬ&L n�บ…ฑ-kฌŒืXdqๆ๔9ฮ}m]Q—9ฆmจห‚บ*๎I3พฑ/ษ|dฒฃ –…Gว6u้ำRโh�[Ž/{C3ซฃ>I๛TBแTา+ฑึ–Eลมัk|G�๚žr‡cน,บuศgผ=…{DH‹Ei<ัญ๑๑8ญฒ’๚ไศJึใิ๊+aศP๛R)๕~๕W?ฟบบ†”Jฦ๋�žBy|กณพัEมๅ+—Yฬ'|่ƒdg๏€/~้Kh)ŽGๆไ๖&m�0]ๆห9?๓้Ÿ`mc�ฯล[รtบ`8ศ:�จ฿ฐ๐gTœ๕|m! ห<ผช�|๋ฝ^ฦ�๑œ Š{$iHฟ—�ปญ๚#พ@:_บR. ฎ\ปลีkทHโ„ค?๔ณJ:ƒ\�ดผ๚๚›œฺุเ?zŽช๒๊ร2/๘ฤ‡ŸขŸ€3 ย6(m‘3?ุc�๊��|�E^��wx๑_ไู/�!฿�า๏๑าำ�Wฟ�%nผ๒4o|็Kผ�ํ/๐ฮ๗ฟฬ‹O—พ�G\��W๙ัท�˜ฟ๓%&“�x๕uNฏœไ L๋ Eฦ๐ธ7�5”‹ mq„-ฑลvyBาขQYู)LดEธ๒๔…ฏ๓ย๓ฯ๑เC†S—ุฦ๚\r$™๎ฒท7g�เ•ญ๛W“(M-$็NŽนoอ0/,ซ�๒ฦฅ+ิตŽ๑๘c๗ณ>ฬุ฿ปล๎aAัXธฐษ฿ๅ9ํด†ฃู.Y6"P^yา;Tฅ „lปร—ภv7n)|q‚7๓�%ฎ๙ฑ‡>่+ควน t) r„ีธ:๗นr+มHค ฑGฏ๐/~•๏�mVFCœ๖'๘.�ๆ›฿�!R*}๔QNŸ:อ๕๋W‰‚อ๕uช*ว8วpผFดmล�แ!UใyฮXฌp๔zพ_Yซ7้คqโ Œฎโ๘pŸ๋7o1/ค ษซ ๅ|ดj4Li๊-,qฌ ตศ0Fžุ&o<่ง™5. QuƒRŠ4K˜. Šฆaฟ,ˆ„ภึ~นฒ6&ั7&Sา คnJ๊ข $„พๆ3ิฉŒฉLใkRฃ” ˜บ!๚IHjZ๋๋4—๕YCY๙jฦบqดฆ$ŠBŠถe6ฝF{๋MzไgYัSโัฌ๑7m/ม๙นี]iStฦL๐ฃ"ฉ,2H|Yh)0๘žWฆ,~c ฮB๗™�x‚˜้ม!:Lˆ“CEา ฑuEพXวLwฎ“6ˆ“mlป$Ÿำ;๕0ำห/๗V่WIา1G{7‘อ”t๓ด˜rF:>Eถ�ห้NiฌŒะัkrTv '”ณ]šบDช˜(Q/ โZc0ํ๔i[Oj ‚˜~?ๅK7๙โ—พBำ”œ;–ู,็เ๐ˆ๕Mn฿�๑ฃ 0 8šฬ8s๒+ร>Yž;‘%1MYฐ( ฦฃก–�ููแ�ู3DqLพœ3™-™L็€แ�้3œ9sžทฏ^c๗ึ.นINX๏r๊dภฉํˆ๕5ษฺxF?…๑œ9฿็ิู1›[p�Bศ#เฑ‡VXNf��ๅว$ศฦ�ธึU๚ูŸ๕ Œ็7วP�A4“nFำข’ ‚๕วะัˆ—��็_�"“้gฌ๕Cl+hZ Aˆจ-ปวฬ–้hDึ้ล๛G๔ืว<๙ฤ}จ๚€รใœฃz@6\ฅรตซ๏p8๕`ต•ื๎ำ‹$ !•…ฝ๏97fg‚š]cัF$ƒU๚ร5ี’ OโL๎m#eฆDF}ฯWพVRtฎ}:g๚ฝ7ีแื�Bยx*›0Hๅs฿ํbk,uตO[”h'ศ๏ผม๗๘มSึWWฐ๕ำ ^ผrฬWžy‘( 9ฑฝŽฉ+.ฝ�Aœr๖ฬYคpd�ใแ˜HKฺึ0_.ศฒ>ร�ภฯ�„b8๘tCทH™ฆ&Mb% Dอ•๋7นqk‡สjgไ๓ U‘spp@’†`‹ู˜S\G=ฺ“�„YŒE€ XK~tฬด๔<็@B๋xt0dz๚Zว ’-ฝ(ไh:eะ๋ัพ€" cย@‚๓เj–UI?Šุ›O ตfุKธ3ฝ F…1E3›๏`G�๚๗bYฬลฒ˜กิjvฬเิO@นห้•๛WOw1ฟn๓๎Lœพ“ภทษNeฮtd=จ๓Z๚3ํิZ„ m๎–ุ(ฌ…ฆ\ะ”oผฮlโ šๅก"Ž๖0uI2Œศ'ฌœ8‡ฉK๒ษ้๚�จ0คš\&Y?GฐFฑ�&ัh…@Kt�‹;ฏN ถX๎พ…“•๖ฐUC]่ม)ฺjJ[ฯ ตฆ ถจ‹Cฐ’ด฿๓นegpอฉcชF UˆPฤ„๐|ŒํญM๒F๓ย๓? Cโฮฐพ:ฆ?ฑฌ ๚ฝ>aขอ๔๘ใู”ชj่ฅž=น}ฐGฅ4Ohฯๆ` ร~สๅkื98�g8b‘œฺุf+’�€W.พIฆCฮ?|?G๓czqDU๊‰ขฎ� แL ีฌ›ล๚.„# CkžDฉƒุทว I�๘Šph/ฐŠ3-uc่๗Sฟฑ ภZด�Ÿg=มui(็`Y,sหšัฐG(šฆ“๐๑Rwัด์็ฌ�%‘ฮTEพคฎ*ขHa/^๑ๆ7_ „๓ณ๘ชiqด„ถ้”^แ๒Z‡|ๅํ+ษ†ำkCึƒ gqช&•}F*dทสYŒXO๛, ทs’0`Eฌ่1yS1H‡์ๆว\ˆ{H2kK"!˜•5ws6ำ–†ใข"V^ o๑QๆH+jก=J๕7๓7>ฟถพฺG|คKฺoชTH๑�c๊ฯ‚-ป๎;M์[kํyŸ๙œ;eๆอ@b"‚#’II,ชิฅ–[Uฎ�Unwตป๚มv„Ÿ� ฟ๘ล~๒๐ะ]�eู]๎๊RIURฉ$Rœ) @ฬ@ฮs�y8๓ž๗^ห๋€*D0Id$'๏�kฏ��๗๛><ฯๅัฃ=ฎ฿ผฮ—พ๐–Iฦ๗๔|? Fฃ!ห$a>_PT5งใ1Ÿ~๙%ž~ๆiLme ‹ๅ’~ฟ‹Rซึ๊?Jkƒใ(fณ%RIฺญc4RHย•๐�ิvฤ.ค\ๆๆถ|๏{๖9ัุ7mฝ^‡ �lmFฃ?6ฌนบฌ๘๐๗๙w�c’4ฅฮSžR• สFแT†t:#ij”็#„&0๔nฎ‘M'>ผMRi—่˜)W7Šฺp0^p~sDง๑ยsื~ศืฟ๔"ฯ_้#๊ŠO~โ9–… r%�ฺ3 Fรพ ;:b…˜Rำeภ"1ม�๐…ด*Q๋ฑฐ฿P๖ว}@"ค &“ุŽฟŒะu‚ฮ็4ฺะิ)ใ;๐๑�’s๙L‡PO™+gDkx†้|ฮ|6ใ๐๘„G;ปœ��f4\ณ‡rฃI–‰�Ÿฏt‰าqับBHAเ๛ฤQ@•็๖๗$ JHขภลิ%Ÿ<ไ`Ÿใi‚๒"fำIš"”"/5U]ำิห4ฃั†N+ฦ‘vg Fศณ›8ญ๘ิaDG*’YBงsn4`YU\๊t@ึร€ขiPBฒ(2Q€’’๑lตZ๔�em™ึบฮ‚€ฌช˜,N9žOp”!๖[8พค็)–yร,/i!yฝdZๆดย>ˆŠ$ซQฎ Ž[HPๅง„รงhฆSiยลO�Gภ*x† �m{5Ii,}ฯพƒ–V>ƒฤ4ชJศส ื qใu”ƒ} ใQU๖๛8/ ฦ๗ฟC].˜žฒ~ๅ3dใCSS จ อึsŸ"Ÿ์ฐv้5”ืแ๑Gฟคตv๐ฃUฑ$๎มdL'ปTE‚๋nP)rq›ฮ™O"ค“‡ฤฃง‘^„N&คฆ‡๏Y้N่…ิฒ‡5ญ�:aผ‰ฉ—V+šโ7:ฟย‹&(วa+W.^ผH’พ๓ํOป�"Žcfณ)Ž0ฬ—KfใS”#ƒe–ฃค%•อgS–I@;๎†Nงลฺp„‚4อ9:>e<_ฐw|Jt�ผ7ผำŽIดแฃ๗ozA )]ก<'"t=š๒„ฆฮ๐ฃ5� ฐ๏ะ•Žบžƒ๏*„๔ะuŽp|ขVฅ,`วฎ^-Cยs;]ฝฐูinCUVdyEปู`™ึิฺ�”ฺ๋๎ก}฿GH›�ธ“]–Iฃ~ ฉzีาฦ]ฯe‘jโHญ^V I]ฬVื�ŠXษVคดใ�f‚cฅMาื•ธžZa„=\วก„ผ�x‡Oๆฌ๗ป๘Žd#h1ฉ#7ไฐศ(!แZgDญ+ดSณถ)rษัrR1r=J'Yฮ0p™ีงห%ล’บlp๊Š มนธหฒฎP@„˜บ"t<๋boŒ=ภ76ฯZh‰๋[วณุ๑„X ' H้pxtฬ;๏�ŠW?๛ชฆแ‡?๚!+ู��คiว!Œ[a›“ษŒ็ฏ]ๅ“Ÿ๚” |ิ ๓eJ†ธŽข*k ถŽฅVHา'OX&)๋Cป;ั๊šบฐiร<+นqใ.ห$งn ๐=�ภ]�m8ข‡๖-ตชุ‡”Š"หx๏ญ๘แ_็�ฮ1[››xชแๆอ�น๗ะ�a+—๑xŸ฿�ฌไตฯ^`ซWpu[siSsvจ ๕’bixๆช!S๊ลŠ๙“bชลัmHŸ`าœๅ้Œล$รญ๗ัณ=๔b‚ฬRLพคj|fผ๕หˆTษฦ๖y ]�Žญัาb@M(ŽฉgiŠ9u]Sีํ๗i�๓”:`๗���๘้๗y๏ฮต฿แ…gŸก๙Pืแ/Jihšฏำฃ˜Li�ตชฎ89>eV๘ํ-ข(ภkฆ๔บฆฅ‹๏๙tฺ!vD+Œ™žแธWึ5>ำ้Œถ[vZ ฯ\&๎ ัuAซmo‘ลrๅ์(T๙+ž๙ว‚†กผอฑ.zm+6เิXB›ฃสa |BุพบPmhf่"]ขคC:9โo�็๚�9็ืBำ0› ๒\wฌ†๕�ู-ฮœ=ร3O]!ŒCšชคืk“,—<~�ˆ4ห๐V๒oลZฎ๛B๙q‡aGˆUำเ‰†,™s๋๎}์์!0TZ3>“ๅ9B@†(ฯรu=๊า ;์ไAF�0ไxพ \า๊wจด$}–IF; ‘ฎฅ ืe= ๑คd2›2ฉ*2�Pีวงญ๑=Ÿ0 ษLI[9L–ฌฺd\แ „วqvJ�4„~‹@zLๆmƒฺKY‹{Tฺเบ1ฑ๋[ืฝงบย๗[๘สgก%ล,!ป๕žปp�นOZ{�ชni๑Kฌย™B�Z&bƒ  M• ๋ฯ'4Hค฿มu5Rูภฆมฑ้๔lJUรไษuะ ี^็ไเ †(ŠHงวŒฮ_ฃฬ3า๙œ�๙kTษ˜*K๐๛Cj]“,Oะบย‹ึษฒ)^เC�อO0�}ๅบ�ฏ‘Œ๏Q6a�,Žœ3Y4๔6_"๒5๘kA`kœฒฆ2ช"Eเ€ฃ„B:-K ซk๊:ลhƒใ„”UE–ี\}๊ižžp็๖-Oัํ๕X,Rย ขจ ๛Gว$‹Ežา๏ฌQL6ึื }—v+โt|J๘๔{=Oศฒ”ธีF"(๓ยZๅŒŸ;wบสฎyt|ฬฃ›๗ธ๖� tmกจ‹1ˆˆŽซJา4ฯ1ธ~ˆCAxV;-=๔ช! œ`u ‡๓้ฯโบ.?�ู/ุ�yย๚hสกำ้ZสTQ2ORถทึy๕‹Ÿทl!็„กฺ๋ฑฃTๅน)If ŽOง„Qฤh}dปดR๑ๆ[๒ม๕ป,)ฎ็ฑ,ฮžYgsc@ฌ[ฦคi™ษส๕ัeษ“G;ผ๑๚[�์๏p:Iนx~›ต^›wฏ399แd2c™ฆ๖ ศXค)Ÿ;“ฐR')zv€hj&๖iฦd๗˜้QC/˜ญฎ€.hส#CจNฉ’1ฆ^€ศ˜Mr๒คกฃ d%๑"E-งฉOำ๊1อ2n๐%kฃ]gRXmข #\Kถ๒†8�หธkŸBต/SSฬโ]๎พ๑n�›r์๖ุX๏ฌjy‘*๐H“’ �ม7ŠดศะCงว3๐ Z4F ›ฬฆฯ˜Ÿ๎“$zฝ!ษใ�cฆIลlrJm$‡๐“G�ปyฦi3 ฝ€ขศ่๔~ ำTะSขผ6ฆฉVฦ)c๗ ~hว๋โoง27์พTุqฌ�8ฉnๅึ>`Š)ฦL‘ชM]d๘n@ฅแเแ �J0OMS‘-็ื#[ฆธŽรZ+"๖j.lตฉeฤ๕ทธw�>�ฏP''Gด:}ชฒDkƒ๏z  ฝ๊ฎ–UM่)Ÿ|ํต๚ ญ7�†ลjj็/๖ญวZ�ภRฎ @แJMกA5)ตัู้ W�Xlฆ‘Tฺe�๚ศ')Kร้xJž/q�˜"/๑‚ช6$“z็Ÿgบ๓~{๖๐,้แm��EดNั5–uึ/!Lƒึ>เถึ๐z—ัหGDฃkงO1๙ง๛ฦxfIใžมuuyŠt†ไU…r$UcoธŽ,1ฒ็วxA„Rถ“mฌULจˆƒฃwฎ฿ ๒$ณูŒGOv๖บ8Ž‹i.^8O„,’”ผj่tฺ$YA†]!UYPอ๑๑ ญ8ฤ๗<ฒฒฦ`|ŸVง…1ฌ@UKzฝu�P็9qฏวฝป(๒†ตอ˜แจMwYๆ— ฿้ฦxคP-้t?žf*ŒP๖๛ปัุQ๕ว#ิช‹m์ชsU้๚๘ะL‹šล"ฅ�iแy6ฃWŽ๗ฒฌศ๒ฯ1ซ$๘|’‚ผจ˜/3Z‘GYซลพZนŒg)aเŽใู›ถR4Fp2หYดlpPRูภ%–'ฐP™ešแ๛ZRฆลพ]ำ �๚ๆ}vi่z W)B้ฑัRhK ”ฯฃ4กh4หษ˜J7Œณ’Aุbณ�%i*ชชF ฅ ๊ฆ"’ตh˜U0 ZLห‚ถP$eษAฒ$M2Bก˜–9แ ีญž�”฿:z๔ำ“Ln`๒๛,N>ฤ$Oh๙sํŒ^”ำ‰*j๎์็|ๆ3ฏา่†ฟ��wIฒ ๅฺพrSWHY–st|ฬh8เทพ๖›v๏ฅ$iRลแสตญจหŠใƒc=�ใ่tŽ๏\พt–U=�h๎>: �๎r้๒6Qr๑โ|W�mg’i;ฤาa~2ๆํท�็?๙%ท๎>ฦs".lŸฃป<ธs“w?|—ƒฃŽO™อ,sบƒ!qปอbน`*|ฉ™Ÿ”Œ็้ฌf:๓Ir—ฐๅp๓!๒C”6๘AŒๅ‚lr›ฏšา uN##–i ด"์ีศ(คฌ ช –EE;TLซปผรษ�cmCิjู๚”ฉัuaGXชแ:ยmatE“์’พลฏ�ๆoฝ�„…H้}Oฦ๓†อ๕ ๊2ฅ(kๆ“น…ฆธำฃ Nไน.๓ู‚รd‰Q’j™๒d�i’‘f%ฆN™ฅ Zฌ {�}ธหั๑ฉ ึ5E#ˆฃ†ŽYRSปmฮll1์ทมm]คฮN1ยAนบฮq‚บ\€1ถ,ฌ€)Aฏ฿ยพด�ํห‘ฦ45่~1ŒP t~„H”�ม‡โ๔.๏ผ�{๛Kโ‘ฬ—ˆฮ&uZ’œŒ)๓Gิx^MVรร�๖Žนx๑—ฮe๏เืp]ตชฺะ•๏z4eAUTYยษษ;;œฮ "฿wHำŒู|N^dฝชฒ45ีช2ณLr‚(ค�ํƒ+๋�™aŸ`m“ฃYJั้rฐH(หทใด#ข( /†อธลa™ณ=8ŠศwY”ฝภ*…PF#TEUุฦลฒJร6วูŒถ’์'KŠJฃ$ฬาŒฆ18BsxบG]-™f k~R‘ำ+อฐทIšg(๒zF๕๎w9�๐:/ใฯ Ÿ�ŽฒกT„\Mฤ>>ธ๙�<ซฆ‰ฑม.!]จSŠlŒ๒:Qฬl่หฑ๋คFKjใR•%Ž๋’wHsส"็to—xธMฆHวงช%ูlมนgฎ- สๅ‚ตง~ƒtบO–คฤ/z%ZW8ฎข�šชฮ :=t• โm’๙G6˜๐ส,ะ๏ช:dฑHั6๙b—4[Pิ>ฎฌัF!�MoใตFh์๏ม๕|šฺฎ าlฆ`}mƒย„ผ๑ฮฬN(Šœขศธpแe]Q–ญ( ) $+w@�ฅ)วำBkŠ<%อ ยจลมั1MSณ6ก๛ขื c|?ฐm฿^”:ญRนlŒ†ฬณ„๏฿ขท9 ๎@•g8Fะ‹;ธ:E(ฯš๖‚ฯกBŠl.บฮญ”H๚–ฌฆซ฿ท_๐๋—9ื๕ํˆๆoนคื‹‘Bฌ`0๖F™ค9“YIซ�:ช\ฯšษV›รqยฺ ๏�‰€ใบhmp=—๑ขค*K๚ศ^„ฃ๑}—้,# ฎc๗์Z�ฏIญ5uSฎฺPP6 yญ้ถย_ฏ๓ดึv"็8ผ๙d—�ษŒึlF-†QฬฒHQnศนv‡vSีšaิ"ฅขั’+Qวูaอ ษ๊‚�dL‰ บdไ๙ดฃ>IY๋†P ศดFธ�jๅ&ศ‹ยึ�O�ไ‹฿๚ฺWฟศ‹ฯ]ๆ๙‹W.๖ธผsn-ๆ้Ÿekหg0lฑฑn8ฟxoŸ็^x™Vปห๋o�ŠูtB0Bน.Iš@ำ†1‹$eุm๑[_�ช�ฐอ้xJ™ๅคหŒฝฝ#ŽNฆคyลฺ๚ˆํณlฌ๕PซŽต .ภ๖ูMถฯญำ๊Dพฒซz5^7 +k(’Œว๑๓Ÿ�’_�๊}Iมน3็8ท>D๊’'x๗รx๐x‡��–ห%ฎ’ไ^แ)‡้lN�๋35C�;๒ฦnฤ›ป>อ๚ผชธ1๏qฟ:หฝ…เ�='๓ทv*]’ำิ%kบŒmด่CcˆœŠZ–ใฏฌ1yB�เŸ’2—๎็(/f0 ธq๓.ทn’ฮNIgSชtF•ฯ)‹ŒฆJIฦ{๏�a๏๎��~�=��๙-n�zแแิ•ไร)๋k}z�€bน$YT˜บมดIO—@‰t$ลbฮคl๐|…ง|’บ$ื/ˆ— yš‡1ต๒™/–๘n€‚nงKฟืeซซ9d„ช S.]บBปํ ‚�ม:ez‚r์!จซ'�:เƒ่ชฐ/^Mn ]Mสณ “�วพฑฝ}ฃšzŽRนh3AW3DS๐Atqำผ๓ฝo๓�Ch‡"“5!ํ3Oใ6KLš‚ ๛1qหEน1ทO๙มO฿เฬๆก็p�แC?dccD]V<~๔ˆ๑dŒijšบfฑ\pxxภ�‡OH“„8ดกฬ@Jฆyอัษœฒึee BบึvT7Hญฉ4 z]:-฿Žึ}วu่๙Šจ3)4มZŸngภฺ™ œN€จ5=ฅ่๘Mฃ ”bฺXๅ๋i–Sณ4%P’–0m,zถ\,ุ›็l๗บ้์˜lrื9ุyLST๘ฝ "_ฺ—ฅจG�‰๑}uE0Xฃ\ฎt7˜ผO๏�็๐ผy~Jž/ฉซ%iกqขRWไEM้ฌc๒=ส�๖L๒�!~�ว1 ˆN_ฅ6mํu��€vV๋A+สะZฃ”CV”e…Tา”x^ศึๆWฏ>ล“ฃw๎�ๆ๔่ˆnซMง�cบ˜1™L้ถ;ด;Šบ"-2Œ๕๕ tcuœ;‡Veตูู�Akอฐืc™fฬf36ืื˜ฯ&4บAIษ๚hอ�Vืๅแร‡คณ„ ’่ฟฌpDMU Š,Cษ‚nงO†xพฃส pƒ.บZ‚๒,�พฎ‘@�ุJฑ0ฺฆห๋z…Oตy*ญ5Enนฎ2Rื%u]#•CUkสFะ‰<ฯมH‰็๙ถา%,›=อ4Žาพmฌ4+#ฺš๏ŽtZ>ฎhc ˜ฺ4Lg‰’eeฟ^…ซ1ฝFc'•คiง,‹รqm+@(E; ™-พw�&™๋ท8B�I“th๙๖ฟง๏("ฉภu„>งีแ„l„mN–>ุ�ƒฐลIž"ตย—‘0;h)ษtC7 xบ;@a„/%ำ<4E–ข�้?๘สทF]‰จg(3GิZuH’๙ฟ= ฿S’d5?Ÿ็_x…^oภoฟอแั1�gฮRึ%uiwีฃัห4ก,3~็๋_วsmาx‘ไNiต�๔}ถถึฺุะjEญ(ข0%๗n="/เ (fง8n‹ัp ฯxŽDˆภ6Œ ึม˜ฺฆฯฅMงWui้’ตญ;ซžธ�L,�ฬu]„ใR5v๚#Ÿ๊ธธއ๋:L)๎สศ&ฅ ฟฑ ชi�0žY‰PฏkีฑMUQ7– $<ุ›ัkฟ๎�+)q”`:ฯํธ�แ�ชฮจMƒฃ,ื]ฎั“iFทโ8สบฯฑk&ฃk6CŸŸ�~ฬ�ษ)gb'๔Hณ”ฌ1˜บ&ษ ฺฎวคศูˆZ าซย%๖"N‹Œ\I^ฺูฦ—‚ช)1MCคกุŽzฃ™eกxB อฒ(จ1%๖ข{๊��'พufรAนNxš)าํ 'ุ<ฅ3เ‰Sสๅ”Jท๙แฏ๒์‹Ÿงำ๑ึป๏‘fn‡4/ˆ‚UQ™ฯฬfพ๑;ฟMท�Bฎ๖‡›๋CZกฯd<ฆ( –ห”V;f:Oู=œ0๕ป˜Uy�c–ธแ„‹ใ~๙๓ื๙ใ?๛6�ผO�ภล —ธz~›N่pธ�˜ทnq๗มๆห”“ษŒ"Kน�๐!“ษœnทฯ๘๔”,ห‰{}พ๔ๅฏ๐อ฿�-ฎ^�ฆื‰ |ฯ‘œ�ฺ$ŠBถึ7ุ:ปอฦๆYƒร.ฯ?{O~โE>๑�5^~้E^y๑2/ฟ๘4ฯฟ๘<Ÿ~ๅฎ=w+ฯ>ฯๆSŸฆณ�ัึU–๎€,พศq็yp™ฅjใx52์ฐัช=M’ฯqบ.ญŽไ�X2_ž29พวม๔”ู�˜\*6† 3)่ gบ.๓ฬฅ2’d!/ �ŠQŽOึจ@S‡tšั๎84ฅ&M –FRๆใyŠั‚d>วqว“yžaคb21›ฮ(ห/ˆH2mQทFSdiํcฒc0 ~๛ �ŽDs๖�ะ…-ˆ ้8~ ”k1“R€ฑกG)4Pกผแ† อlุ้พฃpร•Paeƒ”8ฆlะ9เไ4๕œ๙ษŒฟ๚ซ89ำ๒+&“š|:ว็”๑tฮ$q๐Zd1&~g||Lณ˜rๅู+ŒF#.no๓‰kWธr�oฝ“ข(ธ๖๔Uๆณ9Eฃ‰"Ÿgึ:ดขnทCSคTาGึ9Iฃiส?p)‹W‚ึ ้<ฑฺBกIำŒผศจซ! kƒƒ~ชšFฬ๙ปฟนฮฎ:\๐ฦฐ˜pr็ อ้วTx‘Dบงiสขฌˆ=วภ ŽI ๘žรผ(‰|eY2ŒB้ะ ’2รรPT วiB,aห๕9š,y89ฆๅคeJ?ฉš†“ล)ฎ๖(uEYHBฺH\!x˜-iy>JลฬŠ’2O!MS[“3ฐH2’ฆยWถ3 cฒ,C�o�เ3฿Z:iwซ:?F:1!KŽง5G'’3็๚˜ฦ%ˆ�ผqsŸs—>ษล+O๓�Gื9>ุฅ‡ธŽวฺh( iu{ฐLR�ฃ฿๛ป๔{m๊บฦqฦงŽNiฐ*ผV+ถทˆVฬูอ5ึG=[ฃฒ๊–™ญŠๅ’�y‡๓งฮทฟ๗Ž&)—/\ๆ™ห้ฦEถเอท~ม}ภ๛ืoฐwxDUืL&S„ำ๙‚"+ัZ“•รญs|ๅห_โkฟ๑›\ฝxžv0Ÿอน{๗op›ฟ�แ๋|p�&๗Ž9>™0O8>:ก*+|/@7ี*ล่เz>~w ต†๕ˆZZ�-zร-บฝg67ธ|ๅiฎ=๗I.]yš—?๙<ฯ>๛็ฎ>G้9ญcŽ–ว๔"˜ๆy!ย!นซ่ [„ญ€ณ๋!ถ\Oไ5๋mE]จF๑�ู6ทžhฦ)ฌต*๊สj‰๒๒[/‘dš0ˆ‘J`„‹”Bj�7้ฌ�ๅย�พ„@ku M (PtBL•a๒ า ํฏแ4๙)u}ŒrB\ฏโ๕Ÿ�œ›7NqชSŽwRYAoรAI—4qhwcB•ณจ=–:`z:!�?ภm)\O •ซj๊2็ns๋�C�ววG4uอ‹ฯœ็…‹#|;หœ*_r0Kก*I4,’ฅฝm๊š้tJždynQบ~`๛FทปxŽข฿Žจั„ฎk•Š"แตงž=�ๆณฯญ๑ต—7x๖r—P–๔ฦfิEN_๑�†G'pxxR…dษœ๎๚ณคyA 2<ฯง2Žืฃnๆx$ไ:ฤ {คใ�8แ~ุฆฬfฃศJ‰ฃ ˆ:Da‹ฦ(@ใ8^`+auฃ‘”4Vhใ8$ c์m'Z#Unnooแ๛=N็Pๆ9BJv๗89>ถธั,ณเ แ0 1Bเ*gๅvฐ๙ขณ็ฮ3™.ฎOฏ;ภะoตiท�๘พ"ŠlJพiJ’‡ป<พ๛มจGิ๐ฒ%^2_คจjWีt[;5ะ‰็\?ฦQ ว(ซruฃี,ฉๅ t�ฟ†u)ๅุx]ฃ IR+pq”ฒ๋�TTUลแษdีฐฦAซท]ีจF#Š”ูไt~ภxผวฮม์�โ�ัu๎๎�d็ไwŽ>ไ๖ฃืy๏ƒืyใฝ๑�G?ใร›ฏso�#N๒]fี ฅSเฦ>พ๋ใš�h๒2วร้,CIhตB`\ืรu<ax๏๎>ฏ/ว'จ“†^Hัnใฉ†ะ(JŒKฑkBW9U‰+าฌ@hMีTคU๔BŸaะf?Mศfอศฆh๒,งQาNถuƒ/%C/!P�ไ๏ฝ๔ญแศฅฉภว4šฺ8ถo๋HvN่t<ผH„1o]฿#๊=หูs็๙ู/~ฦ๎ฮ.๏�ฺ@่1q”C’,ๆs~๋kฟษ๚ฺ€"ฏ0Mc‘‚qฤู3kvD‚a>[๐๎‡wศฒœ๙"a4์#•K]ึ�ฟ}›?๛7ฮฟ�๓ฟไํ๎wึy้…ธ|n_ยlvส๑ษ1ทn฿b๗๐˜y’ณHJา,กจJโV—บ(ว”ฎ=๛"_�๊W๙ฝ฿๙mฮlŒˆ\‡ป๗๎๐ฮ๛ื๙แO~ฬษ๑1ฑ็ำi๗่vF4Fq๛๑>w์ฑ{0แๆ�G|x�oพ๓>ทn฿ๅมƒว<~๘˜้๑˜l9๋~ฬZิเ๊”@ึœํฺ$˜fษจ�0” #ตๆBGrm+โว.“ิ0่D8~—ะ™ฑ,ญนญn2tึะHA#•ลฤ HฯตะGpr2! Cfณ‹ค ี‰ CŸ๙lnฑฏ๊ฒฤ๓””4F3K!๔}บNส•ซ็YŽะ�ธ†1 ูl7่S—F— ย•‘คtํM(คใb!=ป>‘Ž]™x!:›…M7;>ศูธพ‹า้s๗ึC�บO^ลธƒ5ฺA™ย๑A†๒a'dZ NŽfฬOวฬgs๐ �~ศbVก]K Bq๋ม๛๛tบ=๚ฝ6—ฮmpv-เ๔่„ฃฤ \ฉแ`ผdžไฤํวG3;๊40ž,ษk็‡Nก5ญVD�๊x วu่wZx~@“ๆเ8t‚’ืฎj|O#Mˆ/aซ•๓�• >๗ฬ:gฤ ฃล-ฤ๎#ฒว‡L_๚ย๏3์lเกq_ฺjฤา?ฎ )VนE๋ฆAื 0;�๚`ะิA ฦธ ฎฬqƒฝkAš7ค“CŒ04้Œช4ศp2ฃ}ๆežโ๛i2กฌ*ผภ!�x )j0)บ.p;�่ฆ"™?&lฏดถYฮviท< ํP7เงฑชฦ`๕AฬbzŒฎใธณ้)JIข–]KธŽฤq ฌ…ล|" <Z[๋•ณJc+g• ภฃi*„1Hว>o9ต#†ƒณฅ&-ฦ' ึF›,Wุั�ƒ=6ฯžฅ�๎ 0„A€4 พo+Yณลœ^› ๔ษ–K๚�ใฉU–ฆ้’ชฑ/โำ(‹,#o*๏ะ๖}ึ.ฌฎฑ๙~ฟK7Žˆƒแv๐=uŠ๒;ฌV!veŒ�=ฅฆ(Jโะงช-ื�›kช›šFฦณ฿๕ˆW—‚ฆถ้yว๕ษ›š4+hGž็1;=โๆํท๙h็#~t๋ว�ีฝ๏๓ใ“w๘ัแปผ9นษฯNn๐ำ'ื๙`๏๗นปฟรม้ ท=ๆรวOธqrฬฏŽŽ๘ัรปผ๕๐?๛ีป�๘gฏ๓ฦฏ๓๖�7น%cขŠQิฃๅuq]$ซi4๔ฺMาฏฆภฆั k�บ~—{Nตบ์Q>ๆŒใฑุาr=ŒvH๊š ํมญ๑หขBiลษrA+ ศฅภ(C�u•`ด‘พวฅnŸณQ›'ษ’^"€Nาu�ีํ^ YQข�๑7Ÿ๛Vฟี`L–1Mr€ฦ š#ๅ0Lว ็ฮ9Pk��่ง{…s�—ธq๋6Ož<"ŠB:ฝ>‹๙ย�ด]—Rรัแ_yํ5ถฯŸญiดฦužฃศำœฒฌจตๆ๎ƒ=ฒฎ^พHฏืevzยwฟ๓]�๘O��๏ฟCฅ^|�%>๕โslฏ p�ธ�|๘๛ว'์์์’…57%US…!J*ฒ4E ษSืž็๏��฿ใซ_y•gžพJบ˜๒ั\ฟ๓€›žเ8q`�ัMSแQำŠ|ค4ฤพห็>๑ฯ=}•ณ›lฌญP,ำœ“ำ9OŽธs๏!ฟz๋C�๙๐oผ๓wn�ๅ๘๐ญa0โ๚ oำ–Pนe^๛=ค�gg็˜}8็ฝS^h/้๖#zญšKฑ&]ZNรบŸˆšฐHุ์ต9ทqq-`ซ-XfšฟzgA‰ห๚ฦ%†]‡<ญpƒarๆ“บา,kปใฉZC’คtฃใษŒร“1QSUI^ั๎uiท�ฬgsNNOูุ\ฃฎrŽqƒภท;ช๑tiร2ำ#6G๙โ„ัูซ8žบภ‹๚้R—–S์๘–ร-„^ีใ"@๑B{หึฅญฯ้!=h;Š5vOnš0ฦ’ลt™s๛๚‡<ฺีH? ฅ'์๏“฿ฏY๊†q"HงUU ]”†ะ!ŸUด;ตะ”UM…t�>aจxๆ๒UF�ฬ’ๅbษ$•TBโึ9iกYf^LUไ,๒ฑ$ิXo� �ฦs;V,K_Q•9ะงีm:.ตะจ0ย+y๙’�™ฦj‰(Nจช Tsฬ|Ÿuษตอ6ฯt�ŸAนห ^P=zฬ�›xuE[yˆศก?์#]ŸEพ ŠรดเRฟOS$Yสีอ-Za„i,Hฆป �S’ฒ†ช œ>€�;ธงcึ†็๘า็~W^�;ฌ ฮ;‚P ย‹,IัŽฮฅ�ว ็ฑ๛nซŠาjs๙˜๐h๋ŸF�ฯKPขตD๊SดฉะFแ๙ตถ่อช,I–ๆใŠlŠใ8h/ฆส็๔ฮพ@:> ชL• 7จณ�่%๒ไŠ#ชฦCปmZaD–Lhw78™)L๚˜0>GQ[[VwxSอ™ฬ็l{AJ‘-๑ฃหดฦwฎก”ก(ญภฃฎ-ฌฌJซ‚”เ๛พ๏แ๘M� Dƒr\”ใR–J:ซ”ฝม๑<ะ ^›ญ๕w1Ÿา ลชขSkƒZ…:wž|ใฟ๘เn.�ร๗[ํM๒EIQึt�`๗๏u]Q9ฆฉน�h—ว๛S^ฝp‘๙2gg๗>Ušฐึ �€~งห"หXTย‘-S" •ะ8žหZุF+Oภฆ๏JŸY^bMุh"ืใด*… t]\ฉHณŒižโ;Ÿ,ซ ๕O�g_�Vฟฃฉๆ‡6),Kค๋!’=Lฃ:=ฦO่6่Ÿ9วป8\x๊™็x๏รx๐๐็!Y–†แ j8>ฺ็ีWฟศๅ+0บA)Iำv๗ŽHณŠnทCซำaksƒQ�ใ�ท�ไO�อฟๅ�ลฟโร�๗9wๆ<_��ธtv฿…4]ฐป๗„๛๎๓เัc&ณuฃ™ฮ็,–K’4G#iชŠe’u:|แี/๑›_�*Ÿ�ฬง๖�4uม›ฟ|๗ํ๏1ง\ฺ�ๆำ/<ฯู๕5ถ669ปuว8™งŒK&ณบ*(ำ9ณู˜ลlL๘ดใ/่v[\8ณมู5ถฯ_`๋ฬ6Jบ\ฟsŸ?๙ฮiw;ผ๘ยณxoฟy]ฉฎ …โ�ํป�ี๗ฬใ“‚รIฦg6Oุ่ฆ$2f–Tๆ]*w€ะ5พ๏ะ‰PRf ำฅเ�Aษฏ—ผ๓ธ`mธnSขbษผˆณ%‡ใ Z+fYNSื8ŽGฤLWา–ษ"a–ค–Eaž8N€’ำิLgvWื5๓๙’ผชัMƒฃyšะเฒ6‘ฯˆUNšิ<�โง ฃ^เ#T`๋#ฺvมฅBฝฐ74F74B*ค๒ัฅ ตIๅ€t0UB]ๆ6ฤb๊โA‹ฆ*)๓ช�˜ท฿ฺ'™eฤลIQแwึpDม,Oะ5ศบภ ์๘ซิ1ยโ=ฉyฃฌิG*ข( + ๆ๓1F7ไu@†ฤฎเเไ”ฝรc‚0 ฎk› ๏ูŽฌ‘”EMMSฬ“Qhฝๅ๓eยFฟkงฺ�:pOoภ g Jh†]Mุ]C๋ส๐=วช}—pp‰ํกแSŸ|ŠWฎx|a�ˆงฮYฬ+ฬ๑cส๛wI�F& mณ`่ป๘พC^kŽณ’JƒทฎHชœXI’eยรฝ\<สด@•9#Gqvt•฿๙๊�‚/}้›œ฿~†V{ˆ็Z๕ฃฃ์>ำŽษํalz๖/หdฐ{ูู๖b•L—Žฝ๒มK‰ึ DM]d4MJS็,3ƒัŽญฒ0ฆZ0>�'›‘๎ใ)…๊œc๖๘ํอง™NŽIว้oฟ@o!๊ ญVŸ๖ฦs˜rŒlNid›�่"y6%K๐ฃ-ŽN \ฦ„�หœŽ'„ฎ ืฒทป‹๋Gดฺ]–iนบa๚hญPJเzฯq)ซGฺ‘ฏ็9xŽDІบฎˆ[ฆฉqc๓"~‹บฎišfU—W(ฅฌ_;/ฎ๕ธpv‹๋ทŸpxtDž%”Uฺเป.“ู”ฃ“–iFY•xa›ขช˜Lฆิตๆ์นณT@pแ�6›[[4+แย๙๓ก‡๏[a†H!8LyๅS/๓ฬำWฌ•J[๚T�jำ๏uhช’฿}—?�ทฦ๓ฯ�?ผ๓ั}pBž{๖พ�นฯณ1่0Ÿ๙ๅฏ^gww—ใษŒป๎q๗ม๊Z“dY–"คd<žP”ฝ�€ต๕-พ๖๕฿โ+_zK็ฯัkG๏q�๚‡ผ๑ึ{�{ผว,ษi๛Š<™2โ)๋Ž=ฯ™-– ๛}žฝ|‰ตั�`„๔&‹ำeฮ“ƒCŽNกชh…gq{ญ8"๖$วใ ๗๗N๙โ—?ฯ�฿คG่สึค(?ค)s~๖7ฏ๓๓ท?dใ์ฎœฟภใ;๏า-๎๑ทŽ๘๗oOy๛IฬC'ณ€�lศ�qง�ุ๋๐ึŽไnr‘๋‹M�>์ณ—ฏ๑์•ณh\ฦ,ห7+YŒวธ� \ '‹9บึ$Eฮ�้Œชฐ๊ผy^PV พ็b„D`�ฤซ0‹๏‡๔†#ขV‡(ฒ€ G** ๋kk๔๚]ๆใ16Zื็™g.ก‹HทpขOฟF9v�ไ „๔จส ำTVjbUY ะHวG*‰Q SฅH7B:บZ’Mก�.M™!ลณ™ๆฟนK9฿Cz-jโ›%หฦ`J…ง์C5/4e™!ย๐i๐Z‹ู’ืำฬ Z[„n ชบaบ(QBPU ใ“1w“%พ็ ต j,mKื”Gฅ„ึhcŽ็ำiทศŠšQฏKท฿งั†3�• 1B๐ฬzลู.ฌ\�ภ&{� E8^๒�ส)!pฉ…,rผjฦ๙ญMพ๖\‡WŸpmณำc&woSฯi๖๎!fวฬ“Œ|q‚x\้z(G“ŒขJษtถฤ,๗iMฏsM๙—>หg_๙�nตโšำุ—,ว๙ธ๛ท๛l!, e`Cฎtฑฟ–�m'�ถ ์ฝYM'h ›ัศจด7:#๑ƒh๕๐Œศg{‹1ฃ+ิIBkใi$E ๙์ ณฯPœ๖†๘รg‰ใๅ�~ผลฌpqHะล)-:ฝ๓œฮ&ศ๚ˆฺฟF]อˆ}A–ืdูœ8๎Q’$ฃ฿้"œ‹๙’^ฏEZJ$Š0nแ*‡ฒสiตฺึ€Uี๘žอฆ€ํ5+{ญ ฎ*ะ%Bx8พoฃfE๔+kห Šป๗ฉKอ3O_f๗pสัั!B7DQศ๚ึ&ฎpp|ห�ขvqแ�6‡GG๔ปถฯฅฉ+บฝ6๋4yมใ�GdUE�๊0่ด์พนฌฌฌฉIช’๛ท๏ัต่ญ๕iE!ฃN‡nซƒึ’AฏG]ึ8ฒS!T€vฐฃ0‰n,jUน>1Tต•(mH๋ฏะฺ�f๓ผ$ษ \Žัํ๒ง?�7�ั�”๏์�ไN'เ่�š�&U%้+—RJ™ฆ'='๚ดค:N˜NY<ฺ็๐ฃป์ผ›ำ�CŽvNY/˜.–OHr๚ตม8‚ฦำ%ะบD˜ํ(t#9ืเ(Ÿ[oฟรฦู›kฯะ]ฺqฐบP(|ืG)ม[7ำTฮ็�๚:ŸพrŽ;iฮ‡iอฆœv๚ mวฝๅ‡L›‚3ํห"%๒"Žฒ%Y‘3-2๚^ภค)IjCห๕้๚>Z@ืu๑‡ฦ`2Bฉ˜5šv—ุqQ�๋oพ๐ญ~/Sกd~šS7ล„ฬ็ำใฮ]ŒธฟSฐ?–\{�=~ศญ;ทYI–KŒฎ๐�€อMชชไมƒ{ผ๐์๓ผ๔สห(ืŽŽฒล’๗�}—?�ื�š�๏�๏โฯฟ๛c’žแe^y๑9ฮŒ„ž$[&ฬ— �~๏m=�ใxaoฌ๓iƒH'ธ›[8F,ge�๎‰๖hฎง˜&Mฃ‰ฃ/pAฎรุ:JVTxžG8Dฑ‡#U]ฃ”G๙hc8ณนFxไEฦ…uŸฦฮ๗ชlฏs ]%ิษค�มq}t5้#+fฐ PPฎํv›้Fกจ–งd“ธaวmก‹9U:ร ‡4ห}wฬ๛ผ�๖„็ฐฬ‘˜RI‡:S(J„ใ’g5yžฃ|Ÿฒิ้œฦYŽิก สชขj ๏0].Iฒœ˜<ฯ9>=eพฬ8<™ct๚=Œ6}ซ%I’"ๅ*B?ภ | ฅ$v‡NงMเ{ฤพขำํ 0„กฯ,Mนดแ๐ๅ+sdพค(;P :๎ ฃ*{ฃšา๎q๋๔1u‘ะไcด๊ใด{่๔–วดๅ„ํ8็SŸพv–งถืq)ษwโ?ฤ฿ฟฯ…ลย|NRบt7ถ ซSใ๋\ฬ๏๑bงๆๅMžบ๔๋[W๑ผึฐฟ\‰vฬJ บ—[B–E฿6um~cY�ŸูฆัฟF#[ฟปฒr“ีธีqe•ฃdMB^6P/ญ กณN�(๊*#Yฬ)ำ$ธa žGฑ8AuF,โทฺธํMt™โชœยxQอ‰3ลœ~oภtฒ๐ฌŸy™ำำ๛ {}Dp฿Mะล˜y†qไr:>ลQฃั๒ZโHPN€Iใ(j-ˆยฟolP+/Kะ†f%PาUŠบžKY5ธ^ˆ๘vjฑ2J)q=/๐๙ั/�e็ษฦ',าŒบศq=ื:๊’ฒ(˜NH JJ<ฯeถX’ฆ รN›้|A™็t�1;Tตล�žห๚ฺ:MำPUๅ O:gš$์<ธฯ๖นs\ผzืะY†็*ึz]<ฯฃ,Ktตฤ๓C๋ p|คt(๓œบฌจซ„_Uฅ™�—v{ภฌrวC*‡4-hy๎�เ�๖ฦ๗~๒]n4)้+W‘kด,)KEgVฃwฆจีอ�"nMษoq๚ๆ]๎r๘ั#�ฃ�sz๗”์๎)ำปคwŽ0๗ษฃ๏๏#๗Oq&ฤ๓œพใ’‡…Ž‹ฌ พ�Ÿ|ƒl|ยฏ�z“g/^ๆ�ฦ6Žฒ c4yž!‘ผ๙แ=๖9(& b.ึธr๎<ฏ๏์pt๓}ฮ*‡ใธอZปCวqY๊า]ˆ}Ÿำข"ฏj†A hฎ อฏ}ฦrช‰t|œ8‚ฦ ำSขV‡๓›/^r๘๔ณŠ—ฎ^ๆBฏ.ทฉ'‘*่xนS๑‰ั&Ÿ๛๔7๘ไ็�K/�ฝองP^LS[x �mเ์cฅ'ฦZคใู‡ถ’v�ฝบq กJY๕๊ชไธซ=8ถF(” asฉE}6)บqPชฦq;‹้>‹ู)๓้1y2&หิๅc Aิ#๊]&=นM๗์Sธ^@ฦ˜j†๑†œLffBก6้ด[xAศ29ค�9ƒฆG=D8Œเ‰” )*—^ปE�ูbถศ๐œๅF,S›Žฎ›฿p\‰๋Yู…”%ฬJฃชภTDพภ๑#[๖๐Wฎ6!-์GI…ุ`@เ9ผ๔�ež{�™แg?�ำ๑1ยhึึ‡h ณ๙฿wIKชชขจkาd‰†�ƒC–iส|ฑ Yฬนt๙ eY E7nฑ}f‹~ทGD I3’4ใมฃœ=ณฮฦูร์d‚CN฿ท™ผ”HR\ฟrC[ฺู=ๅโdษfRฐQ๔Œa kFขbญ0Cย@าŽBZžƒ๏H"#ˆชQดฅ‡,$�‹„๒pN�่ ๎๑„J8ˆฒF๋Šฯ๊Yฎ\ธภ{ทn2=8โตOผF:TMe5นJ&)฿}�}ๆnง�ฆv$ฅ€Qrns“ทž08ู‡๕3ˆ8ควdMp%›๑พ็qง4ึƒ R|G1t"œฆแดฌh)‰ซ ;ห„X9ฃษ0\่…D๊†ใ๙๕_��ห฿ฺุ>R`ฒT|ๅt‘้u#0"ภU7๎‘œf<™‡œd!ฯ?�)๖Žวผ๓๎๛tฺ-วร๗\”ใใ:ŠวqzrฬO๙K~๔๓7ู9ำ นz๑"็ึ‡”ษ”�ว$Yฦ›๏ฝ‹ฤ ๛G'ึศณœณœ[ๆx]ไ”UEฒ\ล>�ฺ—๘ํฏ}ฯ|๊“ ฺ๋2ž๒ซ7ษ๗๒SvNh๗F\ุพ@ทืg™ๅ<|ฒร๕›7ธ{๏&Ÿ<โมฮ.1lญฏsfmˆ๏*F›ฃ>ฑ๏1O3้ำjท <…ซ UYญnjJh๎?ูๅ;๘โ—พศ?�๛ฟวkŸ~Gฺ0Gฃ-ธ ศ2�}็}ฎ฿z@ทำใฺี+๔{}ยะ็ฦป�ž��Ÿ�wœฬ<�์ง้๖ฏฑHSฆณiš2ŸOFะ”%ฆ, i~ญ{๕$์ํ๎A]bŠU7”ลŒู๑œต6ށรร1{y‰ืL’แธxขๆ่tสแษG:TตฑiฉieUฒ\.ษ๒’ขฌฌLภต้๐0n!œ;ณฑ:`kด z7"tv‚KC‡œฮJ:ฑห๐ฬ5ฒษ.n{“*=Eช€ฆ\P,Žฉสฆ.p<bนKšฬ0uESฅฌ&ŒิUJ:�'์nRฮแ๗6(ฆn…ะw๏-นww‡ํ3#บmƒ�œVQ,8ษ"ฒบF6%ฦส“ั้๔h*Aญ ˆบคyCำTไฅa<หQHขภฃ(Jส"gพศศ !Iฒœฒlƒ€ๅ2รQ’,ฯIำั4ค…�5ปŽK+ ฎ•?,—95ะึ{]ŽK6{ ฏ]…nหฃ8 ึ7i’]y—ช์ะู�@ๅ๛(ฟ‹Rฦแžม~p0๕>ย]๙ด๑#L5F็{4๕!2‚๖ำDn—a฿แ้O�ญžร'žนฬ็_�:ฯ<�;l?๓*�ัฎง,0GX๚�Q+คฃ์ฎำฐ…[จ…Xฉ ํ�ป&Q+I‹Tฟ>๔ฅ”(ฯŽ�m/ื WทrŒฺ*šบคจ  ~R ”ืฅ*sfว™ห฿�โo"uฦฮ�}าฅเsฯฝฬฺZ!,.๐}NวSพ๓ฦMบ›�lŽzฤa€p]&Yม็ถทYTšท�ๅ๒ฦeoHปฎA JQs�๋‘ุฯ็ผดถIฃ ำtŽึ5ข–์ฮง8FำVวY†O) ก๕=ฎOiึฺm;ฮ�ว฿x๖[k๋C„,ู)ฦi#L…jฦhฃ๑hา‡„รgย†eช9œรน ฯs:Oธq๓&V‹nงcCBเ{EQขย6ฎ๏า๊u๑”วF฿ 'ฦงว�๘'Y&)Aิ๊ฐœM98ุงj๒,#KSšU5ežไ๔†k|๙7พส��๏๓ยำOYs–๋0ŸM๙๑ภ๗�ๆŒ\ฝ�ฯ=u•๕~‡~ŸgŸนฦง>๑ฯ>๓4eฃู9š’5Uฃ™LŽ9��aถฐฆฏ[ทฎs๗แ#N)�N‡žพส3—.qf}“มpDซี" B<~ฤ\ว1฿�ญ/๓�ฏ}ŠV่ำิPโ8M�๐่���เ5W/]`ะm[ศC}ส{ฟ๘็�ซ๕/น๛่ˆญ3ฯQ้.ใู˜�ฃcฦcป.˜ฮฤ‘O !ห3ส<กศTYฦ๎๎žต* CูHค#ศณ‚ุ ˆ<—'GK๓‚ตvฤฒ6Of8eฦ"ฯ9š,๐฿ย3 ิUต าิ”uMิŠ๑]๋m๗ฝ€ัฺ€,ห๖{xพKš&ค‰ํLž๙œHฎnHFaษ8‘$‹%e–า[[c๛๒‹L๗�E๚]ค’LnRีเ(iซCBข04ี!ชdLถุว ‡]Rคคื%L3รk๕ /๊`ส’๛์์ŽYvI–>u•ฦ‚ำผ…ผ&ฑตŽดขiR ]3]6บภuŠา$i˜$ ชi8™œฒH’4eoŸษดฐึ< yiะBRๆi’"%y‰tzร!~�ก�iำjลv๛นชuบ]Zํ�ะล#ฒโฏ"คำŠE†ก๏ะ๊ว่,ฅDณ?68ŽCฏgยsษ๖ั8Tuƒฌ&PLะyM5= ๑๐Ghแ๗ฯฃœ‹Eร๎“)KณNฐ๕E–2โ� ฟม๖ๅOF] K์Jal,�๚ูW !V)แีก-Wส๗ุ๖PทK๛มพ}ู`"ซฮโ‘ํ฿ืeEU•4ตฆi*”4ิu0%ื จฒ~4@*t~ภ2ซ}…p#t‘๒(ฒ”B[๙Qต<ภoฏ“—้bŸ^gภหXrืฬ€€$ฯˆCŸeVน)a๋,ำEEืŸณ(bฺญ›๋}–™ก,ZฑCš ป ญัฎ�,ชSk„0ซQ6่ฆ€&E)cHื๑ษฒe‘แ9ถz)Lƒ๋๚ิตกั6e+ސ(ืฑ#wGัๆiร��Ejk—ž๋ะiวDQD่:eM–ฅ–IแYฌu ์Šq�่B6ด�= AัฦVJต๓๋dน6„ย˜†$I)jm)œซdc]ืิ•m˜่ฆแ๕gผ๓ๆ‡|๚+ฏbF’฿ปK� ้ผณเ้ฑๆZ;`ณbŒ ฉ]D`�็ใฅa–Y๕g]WFฑศjfIJณZ�Tเ4ธเธH?B8!Yู0-$eญh ‡ะrœ–์‡†��� /mฝภ,9ๅึ›oัŠ/|๒Uฮฌ๕1ชฒ!๐}๎>|ยฯo=ๆฅgฎ!‡–๋ A8U]semฤ/๎�a๚๘�ฺึช+ศEษ$]2/ญ‹<๒ย ไašโหœVpšู‰W่บŒณ”NQ)E/Œ˜Wพ8าAWาhิ?�ฏ~k8์ุ Q9กLiŠYTheM;2Oจ’๑h œ’ผ;ว{,Kx��wย’”ชฒdcm„n4สuX๔ผ€&ฯ˜O˜ฬfižQV๓ล้z๔๚Cชขฐ?v์!††,/8ณ}‘o|ใ›|๓ฟรS—ฮ>ญV‹ฆศ๙ฮwพอ�๘ฏ�„ท�yื‘UฑDน=„ hฒ)o�๒:้lB$#าา`ฬœe“Rฯ๖ฉห‚๑4ฅา^ไp4ณ–vฌ˜'%Iš’ƒใ9ฎ็9๛Gงx‡šใIF…4uI™xQLงืกฌŠฒขฬRคTด�mzญv+bนXP็)สu(ฒ„(๐ {t\‰๋ปT$ผ๖”แ้๓#N็ ฯlึ.ฎแศ’VซF˜œe:็เัGoำkยฆ จแษญ]Lน$nนิี’บ’่ชยศ ้ด˜&�นwสุy‰ต�>^๙๛tึฏ0ฺธD์๛–7.- K*{[ถlh๑๑%�ฮโใC๗?ˆ‘ฏ~พอ.ฌv�e�โvbuฤV'*คดŒ๛ํJHฑา+$5F7–U`Mc{�๖ะA๋š ŒH๒ฉ์Žพ* +๑}\ฉ(๋š�๛�๗์ํMน�™+Dญˆƒ�O๐V๘e/p*MกB’ช!-ฌาท*jาช!ซ\j-ฑโ่†ดาTฦPีP7ฆn ‚ข(จŠ”ฒ‘h#HตไHH�Ÿํ�็�ร�…WŸ๛4๛ู๒วผ๙�Ÿ3ุXใฏ}~ทeฟ”กผ}๓๗ฆllœกGtใˆe]ั }ŠฆฆDaฬo� ฏฬ1ฒล,Kh๕zฤm%ภ‘Š๕จMh$žqฉ3ข๋–F:AศขnHส‚-?ฤม`„d–e8ZำCฌ๊�ฮณ฿๊ {4EB“ํRฮ๖1^„�โ”ฃq๘~ˆ.–ธ๙˜ท)ดlำ8!]ฟxไyFF8ฎ BPU5วGG่บก(KIŠD”eมษ๑!ำูŒต-บ6ฆชXฆห�^.SZ�!Ÿ�ิgxํK_ๆ7พ�%ฎ^๚ษร๘�=~xC’:Cโะฃ( ๓4'ห �ฅ๗:qD์+ชฆ!ำ๖  •ก฿n‘–ฝN—ธี/"!๒%e]ำ8ŽญV–9ตT,ๆKฒขdšFCQ5+t UmรEB $”yAYi�HA9Š<ทญ$ฑ์ต๕>q(ูธ<ฮcฆไ%ฎไ์šO%<|ว๐x๗˜G‡9žR\�๎ฎ€^โ๙1หฃ๗๑‚บ*p๗?xภ๕›‡lฌEฤกOฃK๊บฒJ@“แต†ฒ๙„jแ๑ฦ๋ฟโ๛?x“ญมญ'์/ศU›tvDำิ$…!IR:ฝษข@ล™aLmuีะ๎ถฉดKY’4แเ่˜ข,iลY%)ซ†ภ“ฤqๅzxŽB {หภ@ฏืทำ$G งหe‚เป Lƒ1†ถ๏S็)aืgฝ'๘ไู€บะฌG †jืพคไ3˜Oh5รsCj)8zxŸ๛5ฑะ8ญ๕แ ๆ๖Gง cFWžลฬ๗ูCN&}��hษaฑฦ™/�—\{๕0ุ8i,ง[WฅK‹.je€ร2งถ!5ำX�ดํq�๑ธฝF+•k‰ภ�๖ _�f๕kK๛kยวฦภ฿์ม/ฅBŠี?Cก๋ p)ŠŒ:›—–7๐Z@œํ’ฅด ฉส„*ใถฯPฆŒcwฬŽจX�~ S.QฒกำูฤHƒวsใ้„จs†๕a›ษฒ"๖4�แyฦำ”n; อ%ฝNฤbฑค*kบ�ๅธTMCฟาhƒ@†>y‘ก„€zฦเŠ#$JIะ%R9๘Aˆัต]ฉ!P คใาhAเKดq ฉp]—ฺ๊ต‘Rขk แ) อ“ฝ)ฎฃธz๙<้"ใ�ใ=�ฟƒ–น{pH]ฺ•Wตp]—ํ3g˜-ึึึ้ถฺxžO่+žพt™“ำcย `m0ฤs}J]R•๓hw—� 6๘MŽp} žั‡0๊ลn8 ]Nฉณ#”฿C8Uพ@9ส๕,l iˆคB’“bฮอ‡ท๘เƒwx89ไพ:โ�oฟษษ^J+๔*Gึ’G้ ฮฌ$P-ด�”˜U‰ก1ถz๖ฅ^นŽ}y0)< W8h�P6`„k?{)iœาsูIk$%pG›�ม�S�ซ�๊�ศึูwwมม๕Ÿ๐�w~ยG''lm?ลื^y•n+ ัฦ๊[ห’ฟ๘ัฯจM@gm‹Q?ฆ฿‰้ทฺซqwVืŒบC�~ผ‹š๎ใ7™้†A7bรh!• ล๎rA^ีlz1’„J7๔ใ‘’hฅi ช˜—า� bVfxฉP�›฿ๅ[ฝN›ฆ˜A5Eึ)Ž/PบFธฮ๊๓ sGๅฤฑห�ิg’ฤ๘ญOž์เ …R.q+ฆi,_ถZuฑ[ํ–�Ÿ!ุjMQ”(ร~)$๓๙ ]ืU…ตx๎…—๘ญฏ�/>๓k#ฺQD^ไ๑๎�o๑ง�๎ฯนฟ{ฤ๓ฯฝศW>�i.Ÿ�ไ้Ky๙ฅ—y๑น็นt๑ว“7๏=โม�1'ห ก5Mฑไx๏1๓dA๘ฬฆง|๗‡฿็ษษŒW?�_�๔หloฎ1์๗q]ลh0ภsฎ๔๏�ธMุ[ใ?�‡Ÿo~�5ZกGฃต  ธวG‡�ผq—vqผ^ทK่ปธพOปีๆ๑“=�ไ_�“;ฦ๘xฮ_~(‰C^zz›ษ้ŒดTt{=Œ0 zm^y๖)6๛]qศp4ข็+:ฎฐ!ร(fวžKQศ2Cึห�็/�๒฿๓o��พอKฯฟศo๙+œY6Hฒ1ZC5๗n~ภG}ภ"ห๙ฬg>ฯ๏|๕ซ|ๅี/ฒถฑIZi์์๒ม๕x�—ฏ๓๓ท�Bถ<๗์s ป1ฦ4TE…„ธJ๒ฮ;ฟโ‡?�%๓Z๒ปฟ๛w๘ƒ฿�:—ฮญฏ*ฎ฿uX.�ฝs‡pœ€ต5=๋ช•Rbดแ๛?�)๑WŽฟช+พwำ'Š}’ล’wv™,k<฿แ์ู-^z๖/ชษพdญUแห%†fœทุjีฤnCev๖—LวxnCไK&‡{่jNkดอ2U�๘อqฬ�'์๎O8ณพ‰Q].�ํ�k�ลฟ๚KFฝ€งŸพFY„�ั�๛฿ฒwผค๛$yCฺ”œฆ !*ไ๒”ษษ’ำ4ง�iฑ(rาผข๘คEษ<ฏP@VjfIA™ๅNๆ(!ัFโบ๊ืฌ๊:/Y,|฿~nuYP–YQว!Q’็K!AธQDoุ'Bฺญ8D)อฺึ€Mฏbซ�p�Rศ`(ุhIผมe\ื ฃธำHD6ลL‘ždด}†~ทFีOx๘จdwฯฃี๏๓�ง๊?ƒuอฮ๓L์Z้อ_�yŸ:7œ#ARขD‘)Š)dS๒ˆe—สปฆ\ž*๘ว๘ฯุ—USๅฒๅ —$ฯHRล€ ๎Fงำ�'็ฟ�ฦต–ผ฿ipบช{๏ณO๏oฟ๛Kฯzž็พฏ{8€�๐?y}Ž?๛y>๖7�|ไ๓ฟD–ฆxืดE{ล$ˆถxหvฌ�ŠาV๛jhIฒ�k ูŽ )๑ๅ0-:Sด{]๒|ีfFำmแWA+ต~Tดi ปksP+Ÿ๘ส7.ตZav‚šrฑO�8†ƒ!uณ Lทšฺา”S’ดhf‡{”‹1>`›%ฝ๕K„ู อ๔އeE>? ้ฌQYร��Mถถ.`๋)ณEษhิขQ๓ส(๗ซ๛G€ BzฝŒฦBย@ST5J:ฉ!ฯ็_bย[MQพBจ ๅl9ร#จ€w’ชƒo_KB ฌ-Zฅบฏ‘Rwpด'ญuYฏ๒็�UฟŸ |ร๗�GG'TลŒ๗V‚@ปโฅ‹๖P^5ฬง'L'NNiฌฃ๑žษัYฺa๏เญ งww9ตฝM 5ฮ{ชชคย๓ๆ�Wih8qD’๕่%}R้ˆำ ๅt“6๋�„]ŠฒFธ%Aบู๎๏E@�๊ฒภ:ห๋๗๙ฏพ�๏๙?๘c^y๛ w›&qA/h‡<ฉQ‡K๊eŽKิ…&™•ฌ๗c:O \ุภ&–ใ&g’[๖วjล]/8’Yr ๖Eภ�ขโN#8 3P,๊*†งœ{�"Ÿ๘์_ๅฏ�๊o๒ฟ๑[�ฮo�?�sŸฅฟeุ;x‹๗?๒ึื�oพ๐"๗&c๊%~ะˆ'wžๆรO=ฯZ7มzG�ธy?|แว<๛์9s๖4‰V,ส–!„ p’PIฌผr๓&2?F๗†H หฆคิ–น•,dรVœาXม$_rs<%Bj๏่˜€ ุM3J๋่<št9G(%ZJ"cPฟ�ษวพ<yด‰ั>'œร(…]์ใ์‚บ8ก ๛4๙Rญกš๒F๐๊-ษp๋Wฎ\ล6%�~-�“�x:ๅ๘๘๏ฆ๓๓ๅญบƒQ�FAF_[F�ง๙า/�2�ศG8ตณEš$ญ}#Žน๚๖[�๐๛|็‡/2ž—ฬ ”„�7o๐ฺk/s�๚5�ฟว๑๑ฏพ๚�๑O�„๛ใ†Ÿ��y๎‰KDRะI".=ร๎ฺษ๑!oฝsตญำ|๎3Ÿใ‰๓gfหหขไ๐dย;W฿แ[฿๚s^ฟ�Ÿ�Kฟภ?๘;ฟษนSุz5�ึšลtฬO^�฿๚ึ๗จญd{sƒ8ะ !อRสชๆฺอ��แŸ� 7๚ .ทxzญแO฿,yx4AVK:Aร™ต๗y฿ณฯ๒กgŸd1?แdšso�ษlสขชฉ›šJล”ฮsr|ภxY1+*๒ฒfฒ\r�hŒ„n๔‹ขฦ OYๆหŠๅbฮรรC๊ฆE…ฮgc๒ผ$Nฒ๖E�4„กม�†ภ(f‹–ผfญ%5M]โœEjรp8ไฑmรฅaAšลY0ไ*‘๑TฮpŒ'ATi‡ึ8i4๋Qอ�ฉ็๐เˆื฿~ภ๑ษ”'ฟภkฏพร|ํ^{๗“yษc็ถy�‰ว๙๊7พฯํปว์Nx๋ํ�pภ๖๖:฿{๑uพ๔ลฯ๓G�้ฯ๘ฺทฤล�ห0ฏเd–ฃส ำiฮย †ƒEU3_ไัฎ#&๓)‘6M–,‹[[Žฆ ผhญฉงฎKขHท"'ข$�ำ4–ชฒ„ก!I”%๑‚($Kc†ร>ƒฌEU&qDใฮmE\๎Ul&บiiฦฌ้†„)B่dญๅภO๏bt„ t–opๅ AwmHบ�ฆ�‹ฟฤ>�1ฮ>ฝNะ+˜อoq๏�๋ผ๙ฦWxๅ๋ฟฯ�๔?๑๎›ฏr{ชbEƒO<แfฦ�Iฮล๔}๚๚�)$๚or}oส‡>๔ zu]“7 ตoฝ�ยรฌฬ ค&ŽB�™ŒY�ฝEฟำaกl’0ฤฅ๓g9๙q._~’ตณฤ�5j$oผ๓?~๙^~๓mŽฦcถื๚lvb\ฝd9Ÿacrrฤ๗_�>๚๕ฏs๓แ!Ÿ�๔็๙ๅ_๘O๏ะหบloฌsfgW�ไ'/๑๒›Wx�}ฯ๓�gฟรsO\ *�T „f|tภ๋ฏผฬW�์๋�ธทว๛�๗Fƒ �w๏�Cพ๙๏๑๚‹_eฐผยcƒ#FqEeœ^“<น๓›_บฬฏ|์4M ?ฝ๓แgž`�›๗๗ธ}๏NH&๓9ำูœZ(ฦG์ู;:ๆxแ:�ิ็๙์ง>ลž}†8 ดคiผP�ฟอW�ไ๙ส7ฟลpmƒO}๔ฃ|๒รbs4bะ๋rfs“KgN1ฬ"๊ๅ”ท�xZ(ž~�G๙ะ‡?สฉ3็Y ื๏�ๅอwฎ๑สkฏ๐๚›ฏ๓๏�7ฏ�$๊๔๘ญ_๛u>๓กE]ืm๒ึษ!๖ตฏ๒ํ—^ๆฬๅ'๙ปฟ๓ท๘นO„4RิuCท?ฤW ฏ�ไว�๑Ÿ~{{‡์ž>วำO<มฮ๚Dญ…1?x้พ๒ต?ลฝษำร†ํhส0iHไ ๅฆœ�่ฑ“มV/งฮy๕ฦœWoื<88aฒศ™NงR�†ขqLงS&“1w๏�E+มbฑเx<ล:‹kJทไงE^QUŽ(4ไE๗0›ฯhฌฅถ qฏFก†~ฟG’$”uM’ฅญIฒ๋imป๓“*`wwกIp~wศ๛ฮd๔ร‚^๊รตฤฤ œ@4B(Iิ์ฑ(ฎผ{DY–DB˜ไMศ…KO๒ƒW�ฅiเw�ฦ/s~w›N–๒ฝฟฬตซWนy๗O=�$ฟ๔ลฯ3่๙แKฏฒฟwศแxยO฿|%=—ฯ์p0“H� k‹–ตw,š€อaHพl8™$‘ l4 kูvpฃ^ฝ9OfEซ๔๗ํ$"‰”h}สuัfšWUอ๘ไH%‘zฃ!ตW4ถก“„”EN�Xชฆb{s฿TœL็ŒFk์ކfŸ;'[�ู• ึฯ?ฯ/�ํย™'?ˆซ๓Ÿumซ๊�ŽฯYฝ[›พ๕#|ซ — \ี†Ž>*�ฎnGโ๕ดฌแ‘AŠ_�วNฏฃ†ฯถธJZrŸต ณถH7E[ะ‘ซ"พวY‹o*œm๐พUW ฉZ ’€บฮั:คฎ็m’iหลo ยธหrqŒŠrrƒดทKuPv† ฮคร๓ะLQฤ้qถF'ั่ Gณ\�'Œ7hœAAงำชษ‹ชกืIA*คTYูท4Jต‡ิ 0ฺ g—(W ๋ M=G‡ผ;ฟรtr„๒sชู>&;‹ฏ&๘&GรถCWฬฉ๓TผƒTบ๕|G)ัF๓ณ!FญŽZžญ�u6ึw๙“?๙ M9วYว|6!Mผณฤa[8สชตgjฅ้d ลrสdrBฏำม ษ๚ฐOใว''ิuC…\ฟy‹\K{�9R%กญ^L%tBCึ]#๎๖ัชฝoกปHqุๅีฃ{�“?๚W์ฟ ‰d}{‡งืR๚‰b6.p๛ ๙aฮดฎQ^3YZฆ7&D*"์๕)งวSP:วัxฬQY0ซ=‹‰็ไึ1ี�๗ภข+}ธ น3็๐ญพ}ภ๔ฮ‚ฃ;s&7ฆ�{๓!ทo�โแ�ื9~๗&๛ท0™ŽฉCOxฦฒ$�๎’t๐žT%˜ะเษยHLฮไaมลมc|โู๗“ฅZผ�ƒ๏๒G?z…็?๐qฮ^ผฬ๎`D7Kฑ�1_ฬัซ5•Z >K[ำ3ฏผ� ZzIBฆ#r้ฉdอ0๑ SHA?LIM@ๅ�F@+ƒา’'ว”c‰g7๋’)อผฎ0RRึ5๊wพ๔ไ—Gkํ˜NbกฮaŒ(โeŒฐ3(็4N"(‘ข๕ 7ล”{ณuŽ&๓ถซ^นโดC†diฦษxฬx๘ฑO๑ฉO~’‹งvยณฌ,*0„A€pๅอื๙W�๚�ว•wศข€Aj$„Z!๑คIยtzย‹/~Ÿ?๚๊Ÿ๐ำ+Wู๐Om๓ุนณ<�ฬณ<๗๔Sฤๆ•ื฿เ`^rๆ�%ถwvI’„ลrฦ๋๏^ๅึรฆ‹%oฟ�*�๒฿�[\6โท็ท๙ห_๘$ƒ^BำXโ8E ธsํ�฿๙ฏx้งoฒฑตอsO?อฉญMŒ1 ิ�บ{—?�๖Ÿ๓ึOพลฉเธBW†jL:Œƒ Šฑ&!3šใทQ6็ื$7'ฯ>๕ำ้ ๛๛‡XัŠ4&ใ ต๕,‹šชjนๅ ‚ฺYผkฃ๙$ž“้‚fีA-ใ!๓ฒ!ˆbโ$F+E` ฃั€NฏทโQท ,qžU๎ฎ'cย(bc}@–…ฤqศZfx�Bย0ฎ่'%ฑ˜ iv4ŽฤหI`A„ฎgธล”HWYส�‡วุ<'ั N)ค\ะ]ไ/}้๙๊ทพห๙�-ฮ9‹’0๙ษos๖ฬi>�ัg้ฅ1Iณ7ž๓็฿๛ Išrv{ฤอ{ธqgŸศ5ฬๆ dh),Jษูํuณ)tป๓�ฒ?™ำMฎถฬ—Z Nฦ ”TŒึืฐ2ฤyฑ๊„$๓๙œูlึา—ญ๐ค“2่๕ZาMSœs-ฟ“ข“ ฅ ;�[ุบๆมั1ƒaŸญ5ษ'๏ก�’๗I”Cศnวr*:ขฃฆ/˜�{ศฌ4๘๎Qw ?ykX์ใƒ]ˆ;8เ•ทC~|{Kฯ|ˆO}้WโึถฃๅG�ํŸ…ˆดAHตฒ4ตนPmah�ฑPพท_ร–ซข\‚_ตฆ*€โ!"ฟ‡JฯแŠ=„oปQTฎฦื๓69NxPQ{X�+$m๒œhG๖ฮทa8Rต–:gฎ๑X�`T2ย˜๏u1ร�‚*Ÿ’๖ฮC5ฃvž ๎“ŸเD€Ž �ภ‹€bq�๚ฃ;C„ษ”วว็–ค�;ด’ฤQˆuŽขจรฐ=Xเ�˜cฅกYถgั6iกMHฝ<คiJTะCป%ญฺฮู7�{ใ…6ิ;…๔ข>ยห™๊]ญŽH๚๑ถBสh�Šฑt`ฺhNฟฺษฏึธ6�;p–ำ;[�ผ�€๏�ปf>Ÿ1 ™ฯิuk� LภกตF)ษฝป๗x๘`Ÿดำagg—อ๕uฒN!Q’RW%o^นBggฤฉ๗_&สsFiศzชฑฮ„ F”ฤie\SเeBS7Heส๑O๒uพ�ๆ  k6ฮœๅ‹ฯ๏`ขร�–ท^ปอ›ท่,:๓˜‡๏bŽข6Xํ(๔’ฐ—‡1๗ธF ฦX*ณd*KUลํ๑Gำ ๗f๎ๅ3๎67&‡�๓Knฯfœฐไจ™3.วxUPI‰ห . (๋#4ƒ~Ÿด“Ž:tำ>^KŠŠd (…ก\JNuฯ๒™gžc4ศ(ๆs�๙ฟ�7ฬ‚ฯ=๓<ป[งู ภ{ฦำ หb‰mฺ้•ัš( @ค5ท>ไญซืศF[ฉ™,rr้่ฦ)ฺ5lw{„:b+I้›€ƒฒ`=ษ0–JฒีํQ5m=’‰�ุบ=,�ฮ/>๑ๅN@s„ว"ฅWถv;]ฝฎ{ˆๅ1QX€6ฤzมwa๎ทนv�:k�ฌ ‡„F‘/+ฆ‹ฃอmžz๎|๚SŸไย™3DZDaฺมyข๕ฎโนทˆ ข(ไ๐xฬป7o๑๒+/๓๏~‡—_~‰7^•๏�เ|๗ว/1ž็|์ฃๅ ๛0�ˆ6บOxวl|ฬ7ฟ๑5��๛?คฟพรo�ีฟส/}แsผ๏ฉงX‘Jฐฑนอญ›7๙ƒ�๘x๛๎}~ๅื�&๗o�:wืWงษฅ๗n�ไ?��๐อ~Aยณฯ>หฐ›€ทคIDฟ�แ��๛|๋‡?แ›฿๘ ๑ษ[ฌE%ฬ๗้ฅ–„1iคIฒ&Lตค—J�|Œ–—ng�›—%O=๕4๗<ไๆ�t:)4jSeฝฺO‡”eCใ}�EKM]VDQD’ฆ8็‰ใmZฟcS[” ่๖2ึึ๚t:ฎฉ[ตoU ฝE+พกqถ�)E™W!Žcฒ~—๙|†’^lt›๑˜4p ย1qณส0›7”UF*Œp๔ยฉŸึ!JD!่8ฃšs|T“D1‘๑ผ�๖ป<�ไจj๓5ฯ?๛8ฎž3่eœ?ณหŸฺa˜J+)Glmฌ!„เ๒นำ|์๙'‘^ฒ,,ณช$อ๓ยq<ตlฏ ะ”�ผ{Œ‰N(ไ‹)ฮ6ฬ—%๘ถˆงฝ~๛†)ฺษEœฤญฑซ๑ฃิฉšฆf8$ย[ชช" v6ึยคqภ๖ๆ&๋ร>Gวค�Ÿ๋๑ุVซ)ˆUอvวืc"ญ8ต�g#œ2:ณมฉ-A*9ุ฿goIX ฬ๑ฝ๕,พž๑ย—<8i๘์/�ฯ~๎7ะAฺ"ZW^๎ถ`ณR—ฏ๊3+๙นo้jF้BHh–๘โashJผJ[่„ญ�nH6 บ‡ฏfˆxˆH6๑ใ7๐ย t�dŒ๐ ่xฅbืm7พ๚๑ญา}๕A€’-์ฃฝ,OYึHฉจ๋\ƒิ ฯbึN=„,็'Dq†GQ_kG๗2คXŽAKโจƒ ๛ธzŽัญCฌS$ูฆ•’vF˜@ว๓ล‚ภ(”V-tษ9Œ6)‘Tซ๔,…p9—เ \S‘f ฒ:@)[�E)ๅษ�xป Y#]ม�๘ˆั๎)”จcLฒŽ ฑ(iฺไบ็พย; �I<น?š\H)ฐถ]‰ดขX‡4iาแ�/|ƒ�=Šข& ฺƒ›_‰+gณ9Yึ%Šc๐ะXวๆฮi‚P๓ฤฅ๓ ๚}Œ1ิM‹žL'ผuๅMบƒ€อำ๔›%F 6:NA7Q4ๅ”บcซ%:ฬ@†h ฏŸ�เฟ�๊7K๚[;|๐rŸQGฑฅแ๊๏pit�โ็�ฟ๛นฟษฏ|์/๓ฬูว9ษ๏s๋�]Šj‰ื%4 ข–Xฃ๐ฑ&!‰BQึˆฒ้๑ฉภd ฝewฃหv7ฆ›HยTา้˜6l”’m๗‰ื;D�”( puร,จPฑขvฅฏq=ƒ๑šEY2 ,ำร� ๘•~˜ญต_๛“?ๆ฿�๐ง<๙ฤsœป๘4wNษ๔๒็žแ๒…๓$a€ึ+"Ž ZusSำM๒บ& #ฮ๎n๓ิ๓ูOŠK—็ใŸ�4Oฝ�ƒlœพ€Œ2็วณ%:Jศ๎�ผฦ๔C^y๕ว์?ธห�ƒป�ป?�๊Wxํ๚]ž�๐ว๙•Ÿ�›็ค๗$QH•/y๑๛฿แํซ7๘�ฯ}‰๒ฟ๚=>๑งัขตd:ไอ7฿เ�ํฟแ฿�ง?ๆแษ„'Ÿz†ำป๔;ญฯฒพ”|๏ลW๙ึ๗_ไ๐ๆOX7๛tใ†๕xN=ู‡ZqvduBฑ า%~>%ห!†PD�๗/ฮx{_ฑœs��=ถ7lฌงžเm‹๖ดU‰’žeพ$0Š^'ก�อhJ‹ฤR”um1บ๔eIดncUหลoตs$Y—"/)๓๖๑•ญwฝjjšฆFAš„ฌญท‚DฅCBีฐึี<พ •ha‘ภDŠ๕กa2“PWl๕ๆํค$ :ย•SD(1ฒยyI7€ฒฎqตcบ€ศ|๛ต.œ?รง?๖a2S‚[โฝ# กช‘า‚J(ๆ{ิห#Nmญs๖ฬIาEa HSร,/ัม~/ฃฎ—ฬJหr€ศ€๙ฒDk‹ณ'Uc‘hB#ฐพfzา>฿[X๋MฃจmIœD๔ณ#aฑ˜aญgwk#GำUYำอ:tมƒฝd]ล‡.uX Šๅ”,๒lฆ5�ุะ๏ล Sฯ�ธ&๋X฿ˆ’˜ฮ๎yF=H2ฯ�›KฆM‡ผู&]�มZฯ‹฿พอtqฬ'~๕๏q๚�ฟิx[ฏ*d๛fฯ*ฌ�qทI`ํฝeฟื{าAฝ@ฌฦๅ�ต9ฺHๅ>Bต�Ÿฯo#๊ "ปะชฯgท@ลศฮนึRf-ฝถK d๐vแ�ฬN๖ศR&Zd™T�ิฬง „\)�๑4ึR9eYRีพฑ˜0ลYHำธ MY<$๋m๕wPR ƒฎ<@๊q6hฃ-UŒ1 C’๖ษ‹ฃuK9S’ PhMSEa"š)ฮ+ดภWไEI%;#ิ๋C‚@!�ŸOQ๒๛@HS๑�ฑุ{Ho}ICS•xฏ0Qˆอg„OagทP้™Vี๏J<�^ฮภ๊ŽB้U+ฅD่<‡๖ฑ๔zผ๕ึ�~๛mโ8#J2l�ยซคT(-๚จีDอู†sgwW JHฏืฆAฃ˜/,— n฿บIำ ‰ฒˆ~Q0VŒ่ฅ†$้€]เชCt8@=„’„แ๗฿}“?~๗๛ˆ^ฤgื9ฝn฿,y๗[|โ�ฯ๒ฟ๙�฿็ำ—žกืO ษณg/๓ุไ_�่[Œo�!L5F<•"ก}DE่AH–%H$ั&dkกl˜„Aฐณึcฐึ%[kwฤY7"K”PฤฝจฃQRะAIสข@ใจG�TิงI{พfAษ|ึฐV ๙�?๗สูœ�ๆ�๓/p๑€g–วž|ŽตNJใa2aZฬ[�iำ ”"”G+ISื8)xใสHืะmฃฦโyX” „แd–ฃใ˜›หœฺy6’„iSใ€Q’ะ #")Y–นwtข˜Aœะ #ิ�ื?๚e) ห“#Q #6T<ยีณvิjBœ๐.ฃŸ UAใ5งืžš]ษON˜ฯsฒ^g+๗๎q๓ฦ5„mฎ<�n—a'#P๚ฝำd`ฺP๛8 ฉส‚( x๒๒žพt†ง.Ÿ็ฃ๏_๘์ง๙์ง?ษ?�9>�นฯ๑ฤSฯp๙™็ธ๐ุ3$�u๓สo๓ร—ส[w้๗{๔ม�ร‡�~ธวtฑเ๎ฝ;�ูืฟย๘“?ฅฟ{฿๛ฝฤ฿๚ต_"‹๔jW'ยo|ๅ+�฿��O�x็&gฮ_&O?๑�nทUะ‡!'“฿��K�ป{“a˜s.žฑOv ง; ถGŠ�๛sbฑ;‚zy‚ฐ๓eI�ิ„q;ช{้ึ’๏_ณ\•\ุŒ—–"ฏ™Mฆฬ็Kฆ๓(TฤQ@˜„คYm+สrษฒฎY.*:iD„a[dซช@เ� ๒ ฆจqั๋dmQŽSย(ย„A‹ดŽ้dฒฺ๙…m๖w]“F’n(x฿…Œำ#มZ?%๋uฉŠš๕เ˜Xื(�ๆผ7หšAๆ1H�Av#|s�ฦ€šy`ฒ.พบหั�}บร๓|�็�&]8ฯZj�ฉPํXีh|q้faีชฬ}ู๎พร>Bิa��ด€hว่B Cะ]X�ร'ˆh lัŽอณS+ธK€wถUž๛•€ํญํฝ.�ั๕ถ…ิ#๑B`tปWฺเฬ็Sฆำ1Yฺม6 R8lqD„จh€ทST�ว!๑ึฃt‚S#|s Rฃ•ฤ� +๊r‚’0N)ช†8nASฮทhT-ื‰P—3LS9Fค>ึ+$– ๎ ดj‚“+ˆฮํiŠ)หรปD�ผ=ก˜Œ :๋(‘ใญgน˜e๒๛/๔/"‚๏Lฒ†/�CA”ญงู!W)o+��#•F๊vEG‡วผ๘โ‹/่tS–หqะ้v8��cพ˜3›อI"อx2กvž( Y_[c4R–หeฮx:ฅฉJ๎�พM%lo๗†„Jเฌf˜ถย>ํ—„aŒ{ฎqฅๅŸฝ๘nฬ�FษˆS�„TT�แ็๘ล/}ž_๘า—๘�~ŽO|๚ณ|�๓Ÿgccยมญปwน๒๖;ผ�ๆผ{�:A6เท�ฮ฿็w�ฮ฿โฑs;LงSย$็yๅๅW๙g�ืฦืพ๕^._พ@ฟ฿ฅ“v่ฅip๏�}พ๖็฿แีื_Gึ'œ๊”lw—์๛h3Hz~F'tค*็5ชqี |ณ+@๘ผn ม”฿๛ๅs<ฝณฟศY,—T$DqฦึฐK8 ำ้%!EQD*ˆุูา๋&่ "Žสส‘uvถF(Rืํgธ*ฬBB'MI’ 4di‚ย“fฒ,FฏศSฦh:iศV฿ฑ1ŠHƒˆa0ฅ5งz32Y’7!รภ2่”8cฐuM/จฬฅRดƒ5ฎ�m๘ณ{O๑ฦA—ร94 ๙ศ็~ห—'s๊ลMšบขฮ๗ัพ$ˆ:4ำ8B‚ฮšz‰u5^EิฮP– t2$5%a˜โฌไํซW9sๆิ‡‡Sฆณ#Še… �นๆ•ฅ(ืฺ2ŠbA‘ทฤนฒฎั&lฝ๐‘กช,hƒZyกํŠ๛ฌŒก�ํr๑�œ$iภt1ฃำQฤ‘ใาN‡ต~B7ฐไeM$ ถ;�ึทvY฿YGYO/Zฒ{fบ:ไๆฝ‚รฝ9‘rDfŽGะ]฿fcทรม� ฿��O1ƒ>ฟ๐ป�Gบ[ฯ!ฬชป}T �ย>ปๅŽ?jt%าฌ„k‚•šฌ๛ฤ;จ็ญhM*p๒�ึf'๘้Uผ ฑำ[๘โ๔ ฉpณžมYอ๕๐Aฏฅ;‹0BšถS4ชวใ}๘‚”aZzS%q;๙2kAiC”t(‹šชสqถ…ฟธjAc%uฃ๑�ำS•%: ›1๕ว่ †ธjŒิญ๛% L< vํมฦm่K–ด้XฮyŒQX�๊?ผsฅ1Fขควb0Z‘ฦ�ด60/Cšโ„ฦyŒึX[#|อ|๏*ณ‡7่l^`q๔ืxŒฒสษ=:ปุชฦDtvŠ๒๘d๗qTQ—*ฬP:hGฦกYY๐�/ภ|ห“๗ •ฆฎ^๘ฮ �ป�๏Z”�d:F)ษ��=zฝ!k๋\ฟy“๎`ำ;;Da@ท›ฑึ๏’ใษ„ฯoพ�KdaHcZโ Tคแ๚�{|็1‘jWAI FaณMƒึžฺ4dYD ‚ิเข“jาnœCฃะกยชึ๊*ำ€ฐฃำ€ช)กไิลMTฌ๑ฺ!‰ฏ=R่Aˆ 4TH#ฉ#ม|YR์็<=บฬ3๋#�ป?�CB“๐ไนวy�ƒŸไ๔hฦEฮม๘˜ฦฺ6ีQ€‚F€S ฃ%ZHโ ไ๕ื™ zCš8iqฉ”0 ู์t่ฅ]:Fฃฅ$QА’”ืm�๓�้„~œา‰SNชŠH)|Sฃ�ัฏ่หช�„ูธ"TDuˆ+ๆ $ล�]œt„qŒฉฆ Mฐ†"ฤ็9หF๑ีŸ.่๕‡t;1M#ˆใ˜0 HโˆPkข("หบLfsŽฦ-w๛๖�ผ�๒นs๛&oฝ๕&๗๎�b>=GวmฐซฑฎRr\b�ฮy๏˜Lง4uึ2๊g\<ฝลำO\ไฃ� _�ฬง๘…/}‰O~๒ำ<๓์๛๙์g>ว฿�ฯ�.�ภSmฒYำชJงGG�ฟ�๙?็_�หษมxฮๆๆgฯœฆ฿้Qีกv�น}›_}ƒŸผ๒*พ8แ�ถฒ ‘8ไTpDฆsบฉแฬศ I7‚AXq�aฤฦ@ะOR”็*ช“Xv7>�๔(ฯx้ c;�eซ๏qRSyละ๋๖้ืY,rาHr�๔๓Eมฺpภ ฿ฃ฿K้w—NวDกๅ๒๙!ฯ=ตฦฅณ].๎szwภฉํ›k›ฃ!รAสz?a6›a”งijŒf5บฬ‰โˆมpภZœณ6ฐ4าฐ6,kRŽžฮi๒šแึˆ(๋ƒ+๔ŸB˜ษd‘s�hศ็ฟ๔›ๆ‚ืn๑์๛>ฤ…sงฉ—wั:ฆ.N’VŽDš /5N(šชคษ(–3œ‚kุX฿`น,™.KNฆ ๖Žงฌ–yรข,�bkGใ�p`ย$"B&ำ9 ZQก‡ฆq-�็mbj๐5J ’(f8hรzNm๔้คมฝ๛้๕>๙์ว6ม่’iQัM%สๅ`—lฅฎํІไ์“ธCœ 7{๔ฒœ�ฝŠYž† J4i‡ล4เ๎ฝŠ๕Sง๘า��ฟftๆy�4tบCผTUŽญrฌ-™อŽQ๑ฎ:@ข่ ท dIPQึ†฿49F7tG;˜ธ๔9I6i"„j๓ณuซ€ošวนฅฺD>!Qœ††๙|ึ&‰ษ ท‚ูท@`Auก:Fš๖ต i$ศR ข~ŸxxŽj๑ ๎n?‹tบ BโT‚ฌ—่x@ณฺ}:฿ยŸฐ�ดิ4g=rต&qึaญงฌ=F*~๒าหœด^๐ๅbAUี-ศi:emmตม!%gvทˆMck6Fkํมfำ๙สayฺ๋U.?ฑลึvFf T7›“ฆŒฐเ+ผŽ ย่0#ะ…2�?�>ำๅŠ˜๕ี์ฟ~ฬ๛žyžŸโฃ”yIh”n๓ย…๗„JqBอ�ไRฉ ขี๔$K‡†T8๊ฒBw5Fแ๋ีx�@กณNคตฃ0›1ขฏ  "ิยS‡ ื – ญ k(&9vVaRกB’&๖SPzหฒ,Y�_ฒe;ผ๓ฮ5^ฝณฯวฮœใยGพศณ/2Hc๗)ญk]UEhzIŒ6ฆํ–›†ฬญฉส†—฿z3@'Cอ TัE>_ฐ‘&ถfž/ม[ŽŠ6Vนํไ=8fลleV๏โ<‰๚�_�ศ—ืทGg๏๖า 6/\+q2ย/๗ัฑE8ีz=…eพจ‘aH2่ฐžไ�|X๐`b�Œ(ŽฉAท฿ว�@฿๋๖qMEโศ‡ฮ[NV๊ub�่ูlฦีk๏r๋ึm๖๗ฒX.9::f>_r|xศ��>Jjชชข* ŒjSmLะF]eE�8šฆ"_.่u2†�”วฮŸๆา…๓h้X.ๆ๔๚}&'�ร�>�ง�๖Ÿ๒g_�า._ผHุบๆโ้Šฒไฺ๕��ปHYๅ 3ลฉ~ล“๋S†๊!kมm+บาฒ�ฉRด*0ฆค�p๛คฦ:อ…3^DะxŠYE�4๔ึปˆธหด ˜Nง, IuCjรธๆ‰ วcg6ึ3ึ†kiฮ“;œ“Dฐ3 8ปฃธ| ?qaว๐ฤนŒอQ@d ฎ”ี„nธ Tฝิ2์†YอZOsแิ:ฐถ> ถaฮ;ล๖ฦ:ปk‚‹ง%�ิัS%€^?ฃ฿ 8™‡ฤม’8Žˆ‡�t†=TิมD)ำI[ŒัฑGwึ‘B’จ /พ~‡›๗-๛ื~™ผ*๘�๗พหว>๐,ธ9M]uฮaซIหโ/๗ฉฝ Y dิ๎ิ๋%าtVพแ– l ˜NfTeษล๓ป<�?d๏xI'm;-/ ฮ;ข@‘ฦร,ฤ[วxž#•ขำษPบ}ำดiVžชฬ๑ย“!งwทqึ‘Žอa‡q�FืžูP|๊RHจ–ิMNj์e#F#ษํ9{G‘lจEฦ /M‰ทŸๆ�ัKo�๘ฒUท๒–ตษ พ๒^��t฿”m‘we+*{ิ7 จั_๑๙>�‡ญบนบ ึต�o3CTSd๏์ช๋‹‘รg`y!-ฆsdˆW]แJuN{R�Lภฦ๊กZq๘ถ๓ฎหึ&' * ”–xส่vไฟ‚’”•'JF๔๚]ขดK j’๎:&^#RQwแBทv3ฉ2์ใซyห(0า$ฆๅ’ƒlฝบy @h–yาŠ82: ัZ#ตFะ๎ฝhล&0ศ FQข-ึณ<มค๋Pžv๐ี!qœa—GDƒ5ค[bาmๆ๛7 {งQษท�ฃ\Sกรดศbฅ$ถnฃ\[U�ฯ[)%สดQœ/๙�ส๕๏pฐฟGฟ?ภ„1u]ำ๐^Qๅห6 ตkฃ5ชฺฒ6์‘†mฮฝตฃณล’{๎ัฅlmu่Eก”HW*ƒฐํ�Yg„ŠGญฯ\‚า_y๋๎�}D’ะฤ8�^ร๙�3|�้0Ÿ-0ฆอLทฮต๖Aเญ๛7๙๗/|ƒŽHŒฦ…ฐp5eกฉ@ิŠ^ขใˆ$ ‘�Vณ‘๖ B7x’,ขวํ8Yศ@(… 4ฺyŒ–H/ MŒ –sหbQa3‰O\l8ž-จ๓ /~ูฅ็‡�ฟ{ศsฝO๔K\~฿ธผตŽwžษ2็ึแUY`„Be4u„@�ดX�Pด=พixๅส›%ไh„๓๔ฃถั=jjDP–9๑*Odo™ท๋f%ูNRผ”๘ฦrRไh)‘Mƒ๚‡ฟ๚�/w:!ขSไ%o_Yวž^ฟ(จภ#๊ W œญ@krืๅ่hกฏHร€yส หคล;G$+ด๒t:]ชบ ฯsชฆaถXญ%"ึG#ถ7ึ๔๛๔๛ฒ,cุํแ…g2s๓ึM\cนq๋6GcŠ|ษอ[wyๅต7๙ษหฏ๒ำื฿เอ7^็ึอ๋�ฟ{Ÿลtฬ๘๘๘ฝำพ๕->ด๕K[:Y‡—~๘}�ฯ�๔Ÿ๒๏�ˆธำวhัฉ Eฑd8์ทัข72^”œH.Œ,ง;.๖&tร QืŒLอ(Vฤพฆ–!R”ศzB‘็ศ(คง๏s๗๎’๕^Œฯ‘QJt˜็ฎ.ฐZฒXไ(๋hฐฬsษƒƒฝฌ"4ะัpiz่&ž,rŒโ‚NลZO2HKบaN8iอdถภ(ISึฬ* (Nrzแ’~(n‰9ƒ$gญงจข�๏ฐึ•\<�็๒™ฝLฒตฎ่%–ฦDฦขœล ล ,ˆEŽ‘9๋ฃvิฑ‡ะŠz~ˆท + ณฉG‰‚€#ผซpuมฮ@๓ฝWn๓ตoฟศฒ๔loฏ๑�“g"D!:ฬBเ๒{่ ำึขrB˜mแm‰ฏ็x3ภนgKค ืJ3›อŸ์3žX+ภ5DIส๑xFHŒ6ฬๆ3๒ENูxšฦ‘ค1e^โ…"X๙lฃะ0‰โ€@Cจ#:�>›kŽX ‘QŒึK62x�tJฆง์N(หš๓Cห 4>cw=f”X:ร”s[19C, งฮQq„๊lฃ‚*�%Z‚ต5ฯฝป97ฏy๋ํ{๔ฯ>ลง�ฦ?!๊ฎแ|ีzถ�ฯิๅ�{|Sท Pฮ"lฝ๊ฦBจvืญ[,๘aํˆ‰(ภ[\]แช%๖๘ง่อฯA~ท8FtรGxz`�๔HŠบ€lic>Eจ/ฺภ–V}�(Bt5xtโ€hilBษึฒ(‰6ญXVฝBนบdR๛v?- ^˜hDง˜0รึeKช ปxทัชวฃ(F)าีh#Iฒv�ซตjjซ,๎ฦต<๖4M0ฦ ค"LBt F#คlำู˜ภ Eี†•่g[!™IzธrŒ4 ๅ๔ฎ) š ตฆชrชๅ‚)BคŠ๑�#ƒทผIะ=Oใ สฤ $:Š๐่–Zท"่icบ��ปU†บoลŠqs๋�!?๘�๗˜Mงem*ค”$Q„š๙|‰[yๆใ)Yc๋‚N– •B)ZŠเx|ย๛Y?ฟCึอˆรˆaฏีล่iRšzAฏทFญกƒ”ฆœตื‰เ?ฝ�#n�,%V!›I9)I–šO=๕๒าขU๛ณ„”8Zin๒?|�ˆMุัิก@zฒDuŒ ษค‰ยฅ‚xญK-!JNzาจ-f!$iฃ P"ฤึ€ิeN“D•โ€�๖€xci8.rฌ5L็5ำ๑ Y�มœDœ’Šณ็Ÿไฬ>มSงฯะŠฒแฦ�>Ž๖ม;*็ะAHๅs[ำx‡๓žบช˜็9‘ ฐฎ�บฮฤzฒมˆฅ๔„dscศามลั(Hด&ห2บF3H;$aภคศY%า;ชฆ!ฏ*UIช$๊๏��c_๎v#„ ะ<ไ๘ะ2?ษIC(D#๐บ”’z|า$์/8ž8๖—ญ฿ฐKR9#”ล ษ ด�}ธGฝœส’n$IC‡๖5R6ืGฌฏต๘ศAoH†lฎญฃ•ค“uฉK'ํฐนพFvทwภ{�>aะŽะaศํ‡๛œฬธ~๋._๛ฦท๙ร�๔วผ๐�๏๓็฿๚s^z๑%�}๛ ฿}แป\yํ5^๘๎๗๘ฟ�ณ�Ž๋ทnั๏wvR„0DILGบ=•๏๏ฐaฦผo�ั1'œJุM็๔โa+iIK|S`ข˜ฆศัaƒfB—h${ำŒตกFgฺJฌŒษmDท“’็c็P•Žrนค(z™`ฐ–’EKฐ Kํ*|ำ`๓9ฒš0่8Bท 4˜”ขาะX[๛‚“�pXhฮฎ+บaล$/ ”ๅธด่ @ชš๙dŠห—ฆ&3ค_ฐ7u TC]{"Uฐ•ๆไEอZœ‹ผ%ˆiฯ๒๘>R'ญp.ศ6b9kนM™Sฯ �y�‰หx๑์Gฟศฯ��—Eป‡5aŠ-ง;ฃฉฦ˜์ฒ™ใšงืฐๅ”ฆชp2 ฎJ๊bJนุวี „ŒO—๔;ŽNฆฬๆS–๓%GหŠ|™3[–&@™ถ+ ใŒ81ฦ ƒˆ|1EHM?3$QJœ๕ธt�,'GฮKฮœูเ้S9[IA?๕ูะุЁnธt:b'ซh’tœาOZ)ึปฝพฆ;4์�qt,ู|โร่Pใ๋+{4ๅ!q!dศ_z“๔๔S|ๆื� ๚�็๑ถ@ƒm6๛ฃ�ทะฆๅš?R–ปฌวฌฦเLึvลMั๎ผ…n;ไr ะb?ฝB'เ%^ลุใwฺผ๊p›ๆ๘]ไ่)Dq !5ฒฉํ๊ำu„/๑*Cฤ#”๖ญ]™ถ€?ฌม{๔2|+dm ๚ชฉดYMK� ว๊�5€ตmNถตฺ(หีม_J!EY(“า้ญaŒ&Ž Yo  u„ึา˜๗ฎC+0กอลPฆํz…”ํฎ~ตKฦ5+๕๗๊>วถข2ฟZฮโ–qๅa;Ap„ศ huyE˜„’Kํžอว„ฃ๗ฃ“Gะbl…GญเLชต’๑ศ�฿ ฝo zH‰žตต5^๘ั๋�ผv…ฒฬYไ PJE้jิ›ฅB*ŠฒD)อ้]ข4ยี xฃa๏่„ƒใ#.?นEฏนœHGDI‡X”ูu“&!:ˆฑชๅ�A๗๘ึ•Wyc๏ค&์8ตa89:f๏แ”งฯฟ�ั.FC=‚�Œ˜”3�๕‹_ฃข  Uุe-‘ณh฿OrRโ#‡๏…๔w{ิBb"EomI„I YึมJA#[พ|%šผj0ฺ1‘QDYH%*ฦ‹w™—ตo˜5ิพA�ŽPว .6x๚ณgžz–^‡ฒj8œฮนwธ‡„5J๐‚8 hฌลM 5 ึ’( y�ํ7˜Kั๒�CCํ2 H%Tยำ1็{uksถ&p`”dVTUVŠผฉ้‡1ณล๕๗�๒๛พ�๏ถ/4ํ–ภ’‡ˆขdฐ–Dx |=ๆ… Š G''ว%๛“]ณคŸœ_œ๎ld3า`I/จษข”gฑ,(–3ส๙1M1o}žลœHP/๐ๅ1Mน ,x[ฐปฝIฟืEKA'Lฆ'Œ#”lˆFxFฝ.O^บศ…ณงx๒ฑหœฟp–ตญ๚›ไฮƒ8ฯธv๓.฿๙ม๘ัBw0คำํ!eQ2่v:ิUC^y„/9฿+นะ=$ฌ๎cฤi4ฐŒBษZ7`,ฑฦฌQ’๚ vพฤW`ย˜�ฦ…O˜ฯ4]แeAึ,ฬsK/KQqF”Ft๕’nธ ึPวธzAใฑ€ฬฯ้๋%ฃhL?ตh™ฐ•)bY“/Ž๑๙‚N$PvมzฆY f˜Xะ๏„ŒBวVpศ™Cจ„๛cMQ9‚ &ŸO˜ๅ5ฅK0ๅ„Ty2=cYYค7ltj–ฮะU‚q!Bณึi๔R‚มyผ่€S]Lบ†,ŽIGย4#_ก:ฤ(Cอž๘ ฝ^V�h‹ม5 \~ฎภ+ƒฏk๊jฮผTิ“�8•Q/)๓ญc”b9นอt6ฃฎkP1‹ผไx:C›€ชฑ๔ฒ˜ H8<:&/๚ƒR œื$IBhฺN0Xeะkrjปฯฺ๚E#ˆIn๏๓�}>siNคjB[ฐี)ู)v’qฐัi_hYฏGh`ศ}’zฬ๔�'3ฒ�ˆts๛ึ„ใ{GคYHœ‚p3‚x“๛wrพ�โถ?๖��ฅฟ๛_2ุ�ฦ7U�t?Š๛ค�+ท๖ฯช ๐lู�4๘bาZพ]/ง๘bŒ๗Wฬ:ฤฮ๎a‹ส/ะ�”hๆ'ศแeLะ&ลฉะกดDD[ˆตgฺP!า ๐iDต�ทl๙�Bxผตmมฒ๕’๛ฆ��๛ีx]ดoโแ—hฃL[1+ฎด๓ne๛ja$ฌBฐฺWทส์4Iˆโ8ดฃhั&ร)ีFKJ๕3(Šณ-ฬFK‰’„kลkข�/{็��ผ[ก_แฝ๐฿ไญะO8„๔ธjŽฏN0้ˆzฒ้Œข?๊tvื:D(Ÿ๏ฃฒMšๅ!:�iQฏ๙ฅClq„า1ึตCs็Zฟ2ฆ=ฐIูฎV๗ƒงอ,ฟyฬ ฿�>uน$M;ญ}ษh$ … �ํ „ฤฺŠnทฯh}ฤึ๚฿ดC�Tุฆแ๎�ท๏฿ๅ๔c;„‘f`jา0FG$Zg#"ฃhŠc‚(ใ]�Z�ฌๅ�dฎ_ซฐฦะMฺๆ�}Hฯg|�}GKถ4;œCก8ฮO๘W/�!eำNLšPตAuภ์ไ.พžsธท 4๓ลŒู|รS•%RHFรก1œู�ไ์ฉm?wŽห็ฯp๖ิ๏{๚I�qฎ�ผลl2ฆื้าISฒN‡8 จ‹œฒXฒ;๒<ฝUsถ{ศFV‰šN$ัhv;›ร„DU่ @R1ž.8:๖ 7๛Uใ– |ใ0qtฉหœ^วr4หฑuEi|SะTž๛%�~‡a\ะ๏zา8ฆฬPc็%*_ฦ3โ( ‰ส็ำ!VWย0ัtต%39�hยฐkvฉ bวvbห(๑่ไaw‹€œ{›Sน o=ปGฟp�  ŒcฒLธŠN–€์!};ถพฐีe#Y@4@#„( ฒถ;ด3,Ntเ„d6kPAŠ'IสหฏโยM๚ิE�e !๑ฎ ฮำMา๎พ<$๊๎ ดม'”Ešบœ4ีง๊ฒfžไตภhล๚pศ�๛{8�NŸ๙|IพXะ๏vษฒcBผTิี’b9C๋๙|ŽžQ?AHCง;ท$‰$“ขแยNภ‡ฮ8f‹†XY(%K{\มVWฒq๊)ƒ]ฮ้{ฤ๕1้่ฎžใญ@ธRqŒทsคJะ›Ÿ@… ๖แ‘คI@ฤศ�“๘บฤฯ๏ าS•แสvW๛๕เgลYฌR“|ห๑๖ฎi แฃฮ�ฏฦ๊ฦ๋~?ฑbด{TขํŽต&Cดiw่aดy์A€ึ‚0P$iK”Rด๊ีํ{k๑๘ถp{�"…jแ<ย#ดยฟงˆmVl๘V{‡กWฏ’ํ:฿ฺ์T‹bล6ดขzƒ 2ค\ฃ ก พ9ฆช*ฆG๛-0&�ย.๗ชอ>wีฑีPŸใ|ะ‚tVXืบjะA›ล��ํ5ถ๛%าš7n๑ฃ—ฏะไๆำ)Zส–U!u–ตLฑ�๏ขต!ขก—fคiib”R๔ปm|ชฯilƒGaคๆซoพสbพค9c‡Yอษ�{7๎pv๗NŸm%ฌ๓4ถขกๆ^�ใ๑Œ``Z็QๅhB๐Z"|@6่  @Ci=aะ๋&ิ�’™€ชqไซภKอฒ.ฉš†EูIir๏ศi•๓ฮzL'Œ—%ใ|ฬฒ,‰'=ฬี˜๑qฮskk|๖ƒŸแูO�"~๒1ข@1/+๎r<Ÿ(ะT‹ฒภใ™Vถiป†‰mุŠยภะ c˜/ ~๒ฦOฉข.*Mh’N`HBXV<ดŽw– ž�ฺbณ�AญYฝ8๏HM@ขญ)ฌฅลจ๘ซ๘๒`} กd ์w�AL�X์๒ˆ8‹ฐMMฝœ!ใu1c<^ฒศก)-A^0์ฆDก%Ÿฯ(M'Vฤอ ใ�ใํ ฏŽ—ิyมr—ถ‡{ฉแLpŸ@อY๋xูAIรZทหn฿ฒึt„•YซŽŸ€๗ไUฮbRา๋Xj[ถขำEhbŽmf$!์x ํm ก(ฉ ึžดฟFu0๒้t•ล.ะaDฒญS่lHิ$aJoณรx“๔$qƒP• IUNช-๑p—ภi"Wฒg‰G๋HวCถ;žพšขซ:!–ญgQรฌู์ืh้‘>คY-ธธ!๔$a”vG4๙คฅบกS%ฎ#�’ฆhPแ€ข ˜œ๘ยQTš ลตw๏ฑqๆ๔ชSฺ}ค๗€ ;gฐ๓๛x)ˆ’!aœ E…๕“tจg�Ž3่ ]�9ัํdเ`:ง�ษฐeถฬi๊฿จ(fนฬ U ฉ‡m’��ฦใc:iLUŽัF‘ฦ1›Š็ฯU๔2ร��๐๘fอนm—†ฝ{9iิๅ�ปDYDc! Qo๕Q�ณค๋๋„qสป๏pํชฅฟพฮ…๗]f�ศฒ�`ษ+๏–\ปฟเcฟ�{<๗ษŸGŠบ-z๒๕Qแkีๅฎชฺ1ชoWUย„ํ+�ู–C.E[lLง-8า#T€=z\=M3นN9ป‹2>?F๖žย E๓เปxกข˜ฤ๋ธ2งZNฺฎ9โ}ะŽ๐ร๎ฯ‚ถxฏฒฤ�บ้~ฦ\r๕;ญFา+฿z+ฏ๖ํA้v��Uฎ]~‘8”H J”i ‚ํ๘�a�ฎ�›๏r•แฬ*ญ�๙ข๖=ŠL}T•i“เ}Mฌ นoA4�6พZ ๙๎ฅj#WE€Œืi–‡Tณ�(‚]"tBSUษ[,L…T!fํ)ชใซ˜te4^ฅHแ(kMJต,{)E{จXyํยฅ”ฉธ๗>/�๐eฦGiœฅ.–ญ(ซ’��Cชฒ ฆY๔า„�อu”l)ty^!Gใ1%Oพ�<�‘ร— :H่ค!ฺ[LฒŽซ'DaŠu|ญง Nึป}^ฝqทฏ_G•emH73าิp๛}ฎ฿ปรsฯ„KฃMŠฆ"<ํศ๙›7^แๆร[˜พภtM๛ผW acC‰‹ +8Z*"� 3Gfเ�,ขi|มฐฝฎู์7\Xsœ)บ‘$6`“Mชู‚[๗�หฌ๕˜0DF‘ž'L@ุcD|ŠxธI-แ๖ฝœ[o? ทq‘ญ ลŸ~�U๎ื#~ํw�Kฮ?๕,พฮWล๐/Œ˜�'vŒjZะ‡ภ!๔*ฃ�•ซ�ํสZ๖่๛UŒ(Z่Š/๐(š�˜zzWฯ‘แz{;*ฤๆุๅCด๖ˆไ4่Qเuึ๚ใMค้€”จ(]ํ2=B่ี5ฏZZ!€v�^แ„U๛่sฺฮXฌ นhGี�ึฐ๊†ฝ�nี6ํHปปดB8กVŒw฿F–‚hฟgUผ…๐ํaBชŸ]ƒ็z0’ชํz�ฃCไฯ ถฏหึ฿เ๋๖%๘บM$ำญŸ,พฉฉNฎเ‰ืž$ŸOhช%:ˆ บ�4ณ}ข�a3Tg� BwQQ'3ผญ1P): ฺ7+ ™‡๊ัมMˆvผญุซฌy�สu๖มVิฎ=๘•E+|์๕‡,sบฝvาุ๋vฃฃฮทใ†ฆ.9<>ขŽ`ใ�ˆQ PUEkd9ฅฎหฦ"lNšคจ วr~‚๐9qg<([ ƒ˜o�๔-tท‡_”ค�u.ฟฟวาDLฏ�% >๕�ศ๖@็วHษW_�!W\E c๊rNใกQT@Bc1@Q็d#อฐ m'$a ูŒ็hjbํลSฮ๔ฦt;1‹ฺฃDEUM9<9ๆ��ซ�ฝsท๎๓ใ—ส›o_ใ๕Ÿพส›oฝลญ7นs�๋› ,ฃNอ‡ฯ,จ๛” „‘$‰ปl‡5‘„Žn&–^&Q"Bห[4ํุจถQ€ Iปt3มร92�  ะฒ@ุœ&ฏpฎ]9ษNoฒXZvฯuHF#ฆวKNฦŽฒฌัi†๔_ wŒBลผ ฑพFฺ1ขOะžฬํœใ�#สนcmg ‰@*‹žฦ„(qMNฑ˜๐ฺ๋๗่ล1ร!‹^@๗ัาด@™x@คg4ีCฎ^WœElว{d&"];อ•๋%40Jiy๖puu5"กLท�๙*A˜ซ้ฝ$P–ๅbNQ Bcน}Psๅํœฺ๊0�นˆ๕ u�แ—Hๅโ!สDx๋มˆฒ\โšฆ๕vฏาซผŠ๐ึRW%&JQaส๑ษ”ลขภZวdžiจ9>“uปํsุ:†k4uรษtFงำacุใ๖�‡คฉbm”ฑ�ั๔Mอ ๋k!irz]DI‹ ,ถ6gmซรkืน๚ฮmฤŠ™/'cฯษร฿ฝรxQ#h(สšืฏr�ํ��ฺ›1๚ภ_ใฏ�ๆฦ๖๎.ุzUhํ†ฤีG๏Wœ๑Uฒซย"ุ_œ€๕ญส�.q๙BqศไฺW0�ว˜��slqL3ฟ�ฦษฆธๅฝ ชบHญั bDg฿4้�(แไ "์#ตFA[�z`ˆซ�hฯ-Uป_๖n5o*4๖gใ`� ํฺ"^ฝwHีŽภ๑พญ๑Bะ4 ส(ผoำนคj v�ฅซUื฿"Z%กฺ๎ฝํฆๅ๊ฐฐบ/ํ#A�ฯดmN�q+ต:ฌ:ผฏ�k’แ๊Ÿ ]ีา๊๐๘ๅฅมฦ๛('พA›e4ๅœp๘$ฎ<ย็cœ้ผซ‘*ข(*�๒‚8รฏ’ญ@ฌ˜�rwYฉ๘W‡#oWo�ๅส•w๑uAšv ิึ’$1ƒ^‡๑ไ„4Ž๕œ={†(4ิUน Nฑ”๕‚wฏ�ภฌง\พดIT—„RaE่Jzƒ-า4ฃ�%ƒีkฏ$ŽbTก!ฯgœ^�ไ{y๋ํŸiEYJz6w5ล\r๛{ฏo์๐�๙‹ซ qA`"~x๕^ผ๑f˜ หFศ0B…!Ib€็ภ‡’~Wฒ>Hฉฐ”M ย‘W%ใY…Œ„,๒šeY๐p2ฆฒ >VLซ‚qY%ใ๙Œr`ŽึแNฦไฦ’“‡๗ุํh~๎cŸ็3_๘$ แ�~ส๚(&อ@k ฒํขLิวˆ ฦt‚šฝร)฿yฉโฬ(e}wDา€‰y�#ฝ„ธแ๋9ี์ฐEPช๔ฺ79WS7@3ฦ53š|Žฅƒ๐�ธ;็แ~%เ๖aรั๖ัแdฑXr๏�/ฝ�ล์˜ช,X,Hี‚‰คRฬ'3šบย’'ป„ท&)`ษ—9‡ว�y็ปOlsqw€›ื„ฺ“ฤBE๔C˜nกD…Tญc) D›ฅเฐruษูํ๓|๕๛?ยZhช‚ผ‰ฌKtVs็Cn]—ํ'Ÿโ๒`/<�$ใๅ[?ๅ?}pm๕A ผTจH–(3ผ1R“ลBAั44Mหl8jTดh๏›ฃๅ‚[วG์— –EŽฌฆŒ๑ช{rฤ๘อ {7o!›9ธxš|๒๓|�#?๕,g6:Tึฑ,k�}๐€๋๛{ 4ฉ1(๏ ฉฑM�ฃ9ฬ็ฬสŠภ(t1Œ–uIใกXa�๐ญืธg%iงร๙�Mผั$@ว(-8ทถ†E๐ุ`H้=†ํN—ตฌC ež3+rโ•?\�ํ/<๑ๅ4rิ‹�ึ*!\yH‘O MSN™•H4iิฒ›บข™฿ร- \ฑภ˜ื4LNกึฤfŽ”ŠHAต% ,�AF„\}hX&lg‚๕zN‚„tภ6dMมh]Sฮkjฏ*ค�๏กLMF2 V5RNu-ฮึฤบhใG}@GYRำฐ58ฝ–rqงวนQศฉNMGอˆEร คAภvฐnŒข‚4v#tMPa+วฒPศ8F‰ฃ4%ี4ชCน8กชkฌอย2›ผ}}สƒK$+’n—dดƒฒ9B4 บ1ŽiJฌG โยๆM#ŠyEฏกยฦ ฯ๗Oaฬกƒv4Xี‘๔wฦp2-y๛Zษhำ]แeƒW๋HwˆvKLถŽ 7๏6%.ฏ#|€”!ธุvฟ)…‡ขโยฉ˜ู|ฬ+7z<~q„‘9ช>แ๊ต[ผ{ณ"V–@•ิ H_ทjdีม7Slต€ |ํฑึโฝย ‰กฆืฐwXq๕�’อ~‡‡'‡ท�eg#aดs–ฒjํFB„xืPๅ3l5กฬg-ส4้�,ม;T8ขฌชฦฃLล •ศจ›šบชธ๛๐kir๓๖]L˜ร๑xสๆึ&’x!��๓ญ>�Jlcัพfน,YŽง์�_๐๖ี Wฏอน�`ฮ;7ฦœL'ž,y๗๊Yุ%‰C:IˆG1Lู้์ฌeŠตDฒIึปšใลŒห๏ใ�๘o8ฝฐฆ�ล�3.�๊ล„ T๑Myฺุอย5tผ‰ญJ\ธ…”ญBวํ๕นWีญะ๋ฝฉม_ผVZ๕๔ฃbบ๚บภทJ๒G๛hน*โถ~t๏�ŽXํ๚�ย.Zต]ฐณ`�๛ม�ถ๛๗ถYกPไีฯ”๐โั>�Qฤj‹%ลป๖:Yว�#•|หoะ’DผGศY๛ž๏^p5ฎZเผย7ุ!@…]\~Dะ?G“!ฃ d๙Wแš%-๑่1l3n_?a†Jึ๑ถW!ƒ~;สwํ4ย5ํฯ๓ฎ๕t๏%–อfs~๔“7yํw˜์฿ฃฌŒัm*กฌญoP–%EQฒฑนลฦhD๔๛Cด–Teล๑ษ˜๛์ž_cmฃCG "ํIณ.ฦืDqฏ]›๘šชl๓„8Wณ’�am Zณ=ฐท\๒ึี[๘สRปšŠŒมV„J“+‡�พ๛ ็9฿Rึ/�z—oพuƒฤ๗ฅว6†|/ง:ษษว ๊bMŽhr๒ขb9ฏจฌเแ�˜eqย��)Mcศ:1EำP”ำผฦ-้ดO|<ย๔แ`ฤโ0ๅ๐ึ„�wฎŒ๏๓�…s�าง� Ÿ�ฬ_็s�e�w�ƒ,`^4ฬ๓Šืo฿แ�l�"ZL |]Rไ9ถnจ‹มณpŽ ŽญฌรภhzRRyO)$!1�8ๆ๊ตwysพฤซo`-ŽPฮcŒๆฺั‘RํŠค,ษฅ' ฐXฬ9Yฮนท\เ๊’ฌƒ๚ฝ฿๘ศ—ใ �ซˆfŒI๚ˆz†r"่“ฅž๙xฮฒฑฑ–a"‡หg B‚n‚1“t๑&b–kๆ“9๋k z็รฌ#\ƒ "‚,ฤ•9”9aqใ^ฮ0ฌ8ตQ"ร”�?Y�๕l[še๗aฟฯ-ปํฑืป๔Y.หvuuตA[4ุ $!@‘M@€(J|S(T๚$=I/ฒT(‰ั mP๎ชFนฬชสฌดื฿{�ถห~F฿:Y‰ะ‰ธq๎9๗๎}ึZg๏5ๆsฬ12แฑtดiFhzฦฒงฐ[ŒสO4&T(Q“hห,ญ(‹๐fๆŒอf‹nZvณ†๑8cšัxŠะR๚ ฝU$น$ทtขธุT8 iเึ]a&Ÿค่\ัo– S่l฿‘dct’ขF๛8Pฌi๋š-Xo5w_ฺ'ธ†fyJ”!™q%ๅร๛gไl™Œ*|ื นภึ[|ะฏP*c~๕./฿-๙ษ{๘๐ƒŽปWRB่9<˜๑“Gมญรœษ^‰kึ่์ฅ%Fœ ˆaส}T2E™R๚N …gowย๑๑žoุ™8ูด�ไo๒ย‹ฏ0น๖"๋๓#‚๏่›%่1ฎฏQRPo*๚อ9.ฺี9ยธtฆฉฃ™†]ใ|ฯฆOAQU�s๓ฺu.V+žŸža$lถ5ใ๙œI™ฑญvvฆ4�%ฆฏ}รผP์ๅ’™ด”กa7์e†ซฅไz 7 วีคแ๖LฐKห~ึqkฏไ T์PHห$ ่nM™:�๚‚2qlฅขอฏ๓™—v9๏Ÿ๒�ั�ฬ๖ฎ3ฺฟ๗ง}œ๗ฦนฎ๘๘ˆažํ#e-อะๆQ๘ีฏ‘ษาญใบ–ฮhž�)ํ๙CสรืPzCท|‚ท]ๅQำจN? ้4UตŽ๛แRpฒ=B`Q๙!‰ืค)ะi-SV@จH[,จq†aoH๛๘๓'.� `Ÿo!b7lœ9ห!นL๊A�=\“@ˆมBตmร˜Aสaตึโ’โเ๗ึ๕ ไ๗ขƒœ๏ป่H'ฎ Heถ`0V Žเm,พคF๘ •฿ |‡™์๒เว?D› ]=ค้2ู‰.ZI)vi—Op�าt=� \ปŽม1มc{๘"ช๖•6CA๗ย…ˆฎfoฝ๛วฯ/8?zDRไhฉะ&!ัœeตZSŽ ๗๗9<<$I �ZRmะJ๓ไษSN—'ผ�๕W(”ง์Y.82ำฬสrLขz๊f‹ึ)ฦ(P)*)…NsคRHxํฦM~r๖”ใฃ็฿ั,^Nุฅ@฿˜ฐ๘แ?~๖ฟ๗๎)�่_~>yยห7^foผรผุe๖ุ็*ื๔Mไf‹9๎tฮ๚‰ข~jš3E8Ÿะ,$�“๗�ษ!ฅo=&ฟŽญžเอฺ๋2ฯถ„๙ง™L'x4]฿!•ภปˆ|Ÿ ”ษf๘นD า็b่jฃ˜.ฮŒ/w|‡ฮ๙ฒ›ศƒ๛„ปร ๚r&อpnoใŒZJ๙S (‰ุE๔๛ะG€f3~8N็ฝ@Tq#†็"มศธc๏]ค9…ˆโข( ๓จ4C˜แผd์ฺ‘จคN&Gะ#•Fจ) ฎYโฝภ๛๔กe@้ oA'ศ$ม6KDZšๆ์}ชฮb)H‰—Sฬ ฦ—ZลQŠซdBล"qU๏�๒�GXF‘UšG็9ืท,—K๚ฎe\–�ฝw›ืฏMื๕ิ]รู๙๋ี’'ฯŸฐ๗ฉป†L:FฉDจ&‘ะณ{pƒ"•oQIŠ19ฺ$˜$๛x/•ฆ๋Z๖ฦc^พ๛*๘ฃoำ^ด„ณ– sBH)w 2q'฿[26ทxแ๊mพ๚โง๙๊ซo๐ๅŸๅหท�เ—_�:ฟ๚ฦฯ๑kŸ๛?๗้Ÿๅ+/~‰/฿๛<Ÿน๚Y^�{;“ืนšพL&tห r“#๕Uถีี:็�้Šอ‡ว่> 7คFpcrศgoฝฮ_๚™ฟศ_�•฿แWๅฏ๒๕ฏ�*๗n฿fwR’&Šบ๏9บX๑๖“g<8;Aโ™ไ9Z tแยYฒ$‰n}€w=ž@ํzถ]หฆ๋8ท'`7Mษ•ฆ'พ2ฅ99?ๅ;`๓)ำ�า มสZ^บrภีฌ@–9E€Q–ฑ_dไJRอ�๕š4rฅX;G.นˆ?�ฟ�ยีkปธ~ƒด+ฒษ B๓v๑9{…Dฎvอ“ง-�ธ6YขŒCฮ_Eฌ฿มหฟธO ›ถไ๔๙Šล)ผ๚สˆ,]ผFv IVโmลˆบv\=ใม�-๓ูœฝษูXcฬnดkปhืƒ‘˜ฑมV[BzศW��ืฌZอํนเซŸšpuิฐ:ู๋4`ฆ�ีhใh…`{ jฺ"•ฅM๗( รฎi๐RSW=๗r^�o™MZz‘b[l�`&)Hฝข“Tจ ถeSy #Ÿ’•#บๅc�ฆฃญ–$ใ9พWฏkฮš‚๗ต์ฮ๙๔ํžiพb46X9วทk�ฆA๛œ๖ยvLำsd2a��‹ถgฑpๅฺU๖ฎdxo1Fำฆ�ปฤ‹จศHฐžgG-�เž1Ÿ์๑ฦ๋‡Lๆ’พ^แ™"EV๑†ถูด�๋๏qeŸ/ฟaุ6 แฎ฿๒๔LF‘X๐ฌถ=ม6<เtkจ�„ิh:๋๙๑ป๗y||ฦ๓gGิ]ล(ฑ•b] 0Žวžฑ?6ผteฬ,ีohปุ๙จD#L๒จ�/ฅg:+้\ŠQšLKR“€Iฮแ;G`คว‡-ต๋)๖ฎ๓ ผ฿�ส_๚w๙น_๙mส��@wฝ‰T๓ะฮ@6|ธจn๖�‘ސƒcWL๛า„ํSDนฎ",฿งซ/P้>ส”TŸ~{Œ๋;๔�u‚žัฝI::ฤ/ะŸ}ัdฃ)fW๐zLWa’ฮตศ� *อQZว8tอฤผ๑9;�ˆŸ—๗QI.โ;ธ๖ฑc��้]๘PฌD~>�ผ0\›0Pศ_ŸH†N;„B@ม B4ฉฃILpัฆTลฎ�฿~>†ฮV!‚%;ฬุฃ5งPr ด‡เ˜` ฎ‹@ช3‚oฃrฝoจŸ�k{Š๙-�๙ๆอ๎�Y1B”ทiŽฤ�OแBˆl†9ค>}—t~@ŸผB9*q^กtAŒXีัาU ำ�ม้.๘X �Ÿ�ๆ๘?�_�_�๓OฐึQ”9ึ๖ุฮ„ฆ๋n�ผฮ—�๘ ฏ�ปT- ›บๆู๓#>๘€Ÿ~ฤW�ฺฯsgœs(+ฆๅˆ6฿gWึไBp๛ฮซHปกฃQLถG�ฌ1IA฿u(“ข“2RํR`๔˜��w�„�ี�๙วN3BL3ผ”ำซ๘ชเg๏|…ฏแณLฆ%RH<’ฎŽ‚“ัฃM�!\‡Tญ"[ะน๏-]}ฦr�€ฅ�ก˜�$-Kหซล9ํj ม2šŒฑึณป{ภ๕ฝ=๖๗™LฦLสŒ<1%"ฃืwœ-ึ|tvสณ๓ ถ}ฯNY‚#Wš$1l๋ �๗!๐ึ’d)™ึธเ8n*:<ช-AjฎFค&ฎ‘่„<'‘’kๅˆ๏ผ��๋�๊ฟขน�Wฦ%ษ(ใโbอต๋๛|qŸ๗ปšย{’"gแ,NIng)ซฎฆ1Z#•ฆ้&ิ๏�๖gฟฑป7Gฉ€–ฉ$‰ ๘๊^x$†พiM๗ฉž?"๘ภx‚Tงh“ละ€ถFฺ h;ถญคiSv' ั5€BMgจPัฉ’žใ:ŒจYoกH'ไบGค)*ŸแผDฆๅ‰ฦHลŸK�๗d˜}๚/ฃ๖_เ฿นเฯ�ณผrCฒท8_5,— ณRเํ1Zj฿’ป†I™PLฆ”ฆ#๗K’b„๊ึdบFษลqึ �m๑vฮrdšำVŽz�QW็๔ฎฅw–ฎฉXmมตีA๏i๊ŠT–h1F i(หŒQf9;พ@๋9ใIm78k )q๋5ู,#ปrศ๙…ว‡‡Š๑�Uส๙5Žึ9‹eG6š1ูู#ษ Fต“ำูŒ 2”n้lI฿mAhซ3�ๅท๒ว?8โ฿�๘9฿๙แ:~�ั)฿�แ฿z๋‚�oy๏ษš๏ฝ�฿zงๆ[?8็ป๏n๘ฃฎ๘ำ๓ึ{ ~๔ัŠ~pฦ�ถœ.=ซล)ฯฮ[Zซนุ8‚utี9]X5ส*ฮจ:OืV œ๕ยใl๏zศค�’ณ\‘ฉŽฝ<0+s��ม–“‡๒ฉ;=ฎo้๊SBฐ๔�#&vผZcป5ม๖ดmC�๗4ซcถ›จG:ๅbีฐXn8Y,@:]gงœ.+&9*๚>p็ฺœ™ฒ$ฺ‘&%าŒูŸ๏@ะŒา„ƒ2!Qš$ห๑คไ‰Šพาึล(�t"H3วd$ัฉ CZฮxึ๔|๛hษ๐ื�ฟ๑;7:๚f„หN๕’R�$˜�ๆฺธ็๎‰ๆ!09๘f˜฿B}ŠL'่W‘Abฯ฿ฤnŽœพ@� ด�เ„!จ ‹‡฿a๗ฺ+4›งd‡o ๒}\ฟ@e3๏d:@รƒ๏‡ฮY ฌxLR†™2แงณlืป„Šภ/†s‚มe๎0tษŸภ1.A�`;dป่ิ†๗Qฉ}yฝ>๎๊‡?2ย[ ฮล/;๗�— ?~่u?dฅฤร.ปฺ๋ก‹Dณาu๒ำ�w๗—…ญi’ๆป=bถw้2LHควŒฎb&w:fl[Maฒ๑Mœb=DTฟP'Qธ;rGJs||สŸ�๙9�“บถงฺV$yมฮ�RH๖v็ผt๏๛ปปไY Ÿ!เฝใ้“gTถๆ�งn‘‰€’คLRT>ЁŒ์Rฟย fŒ ถ๏ะIลงi‰ฤำw-๋บแg^๘ ๙ม�ๅ�ŒิJDp4 |ๆ•Ÿแ/��/`ƒgฝ�D_|็ูฌท!้]ภ5 ๕๚9ง'ัc>๘sฺ๊˜f๓W}„–ฃTsXย�ธเ…ซ๗๘ฬ�y๕๖ |้sŸใ๎kผ�โ+|แ3Ÿๆ ฏฝฬฝ[ื8�™2)RB฿ใœๅ|ฝแ|นเษษ1ฯgœฌืt�ก๎ฺ<ยป=+Y’ภฐื'“$l๚žGี†รbฬฅi๐๔BฐŸฆ$ภดศ)”ขฎj�๐�wูฆ9ใqI�๕ฌ�Žฆ๏‘Zัxด\’ Iฏg›-uคiŠ6 ณขˆร4)8ศ ิ๒[Ÿ�ฦมตซRฯ t้tธfญz์ถEฅ3„IธX&ำ็rค_"๒1มL‘ีš–0บอSฮช”คœ1ั+lจยก๔.ํjIcœ=' ึ:ฌู!MAe็โ:›SŽP/๑� 2ิ�“sŠพ๑๓�๎฿๘๘ฎแG?y‡w๏q}tฬ๋๓Sึซz–๋ภdR2+สท๔๋ Ibฺo€€ํ=ถ_aซ-ฉดิ•ๅ๙FใdB๊ื8ฝ3dๅ˜ฝย;…ฒmA „!๚ญD่16ทศDRh˜”ši™ %<9่tสNั#ดฅ๏*าฑŠk6!E็ žtธ^0��CคSคszบฆnณ‰bV.ฑVาwื]ะ๗!R๚ีi< หตๅŸ�้ ถoH๓)^f๔^Qตสy๚ึvฑKLฒดคฬ Fzฆฉf”ๆฃŒk๓‚ูhย4…‘e4žp0N)u`7d20N ใL2K,ื&‚I˜ส†i ป“’iนg7 ๘ฮ"|อ,“Œe๐ปฅงL$ณ"aRฬุ+ มm๘๖๛็?zยตคb4›DE< ฆ=E$#”ส๑>ะu-:)�•d$IทDLเชถ-JINฯ์์์`ญGหม8มo/ุ ๆฅA+ศSCšFZต($ijธRJด6 ขmง ฮy|๐$ฉ$I%HG[W๔ํง%A€e+Rพ{Tq๗ๅ/๐7�ึ๏"ตฤ6-ฎwPฤ@C*h1์วฦax&‹%ม๗qŽ lA_#‚@ุ%ฎู`7ฯhฟKณx„†t็u‚WฌN~B฿;P)��„t๏5ดl่œ =�2ฎ=C"1ูK†)็ั Bฤ๙ฏT€$ุ6‚ฃารฬ๛“Eศ„—sZ‘;า�CQ".[๗ห”ดหฝ์แ฿aุ/�ไJ]์ƒณ๑=ใ�๐ƒทปˆเซ‹หฝ๓XT1ถบd์0_ฟ ] ิ"ตN๐ˆแ็ ฉฃห›T ิเCŸDฦมuq/\ข9Wแm…ฮ๗pํ ล์**ใฺ ื‘~Š Š่*ธ>E*fŠk/ะ๙.m๋Pฆฤy‹ึŠฎ้๑ถGJืว†�wO,ฎฮ!๘ใ?}‹ณ็ยF+\_I‡–Š2Kธz๕้็m�ฒX.h�–gฯžกง ท>u›nน%QไZ%”iJŽc”•ข|น๗2ข?G๊ฅคo(ฆW#ˆ @็,ถ–Qž๐K/vw๙�ๆจฯl๓ฅŸ๛EฎecV๔8๏"KไทัT#แ�Udฉ”@ฺ-ซฺ CMšTัD"T„ํ6ฺQ“ฟ|ฤb]ั`ุ™x�๖”nำก&‡Hๅhซ}ตภ H‹‚ีfฒ‡c„]ฟ:E4=คยปฯ$ท^๛*w๏}†gวG|๘ั.ฮŽ๙�5ฯํฑ$-3dุDGS F…ฤฏฃฯ๐x�€r”ั8๘๐dฃzFEพD)ƒ7งง็œ/ฆe†I}ศ พC)‰NFคE†Fเ“๊ฃต%ุฅ }–‘ค้jคษ‘E‰’้nส๒โŒว'-I6aoWำฃ’๋8]C”š�‘*ยัญ/Šฎ‰ฆi่่�ร~๗vนaฝํ่ยห แ{4ม9๊ฎ7๑anธ์$ Huˆ–†h:'๑ภแ(๊พ๕ ๅั*p็ฮ๋�x้g" ๐คJ๑�’˜ฎr\ณภHA’e““ไ\ปขs†ึยjปeน^๑�๘˜2K8=;c'—:FฉbgRฤ�๛,%ห t:"M4ฮ6์”-=ฝ—q#ภhฆ;ณซXL๐~ˆlmD6ฃฉษxFถsMxฐ\s^ผฬ๔w�7^วb5$…๙ธฯ‹Š+J;ฎ8g่ ]3hฎ$‡1y นa๛฿ื 5v๛Œ~๕�ใำ5 ่5พAปx—ๅึ"�sNV-œฃณๆ/|ฟ}‚*ฏaัh้ะู.มLI๒2 bhCCด!—TถdXใ๚ฤ,œa• †ฬธ—{ึโR�1@3ะไรc?๎พU๚'ปjˆ˜R&”Žเษ šƒธซ>ธ”�๔ธยŠr9ซžŸแ|ธคDอ]ฮฤ‡'๘แ๗"‡ต4‰ภ"L:ฌญลรŽT~ะ๔ �ืศtJhดหวศ�*ซ็๏dIทz„�D๖ฎgs๔Ahd~…€%Ÿ]'xษ(†ผxะi=) |โๅŽ‚?B@hชŠ฿๛ฃo๑๔แ‡๔m…N Z'ุฎใ�๔”ถฺ ตไSฏผB–eิuIึซm฿๓่้Sฎ�ปย๕;;๘สS*ห๎๎!๛“]FnCš˜ๅ แ{๒๑�`w›ข๒=ฐ5RศtŽ๗ ็%ib่]ฯฏฟ๚Eฎ฿y•๒7ูงเwพ๖+ดซ ซณ คาคIส๙ู)ซีWฏh.s๒๘CNŽžัี-้|‡,SดถGช”ฝ†�;ฺถ"Hอษjษ�วฯ๘�฿ๆมำ'��œw�็�๛๒มƒ๛<;=ฃท็=JH’$ฎœvม‘hMข}฿“(M™ฅŒา1tๅZT€DK๊ฎว‡hDำHม™ณ๐g]อส[v๓œ“jห๓ี’[ๅˆuำ lปšo�เ-.tNบ?ฃH “ผ`wgส,ัิฮก”ๆ๎lNž& ฏฯๆˆ๘`yมDiNš`$๊�/|cgoF฿lใ M ชงs€mดิิปจๆ„Dญ้šž2�โถ'ุ.ภ๖๔*หHvnQŒ2dฟฅZ.qฝขHR|็p�9ฮzD่AไcŠร๋”ชง�*„œ–ฉ,&+hZAฐว๗?hPปฏq๛�g99~ฮปผฯษ๑sพ�Rฦห7ว$ใ Iขvรป.ถ9‡ณ”ัแ“ไฯใๆ �ฮนrPฒฟ3&$šDwha1FQท%�ำYB9๔MK*ท1s6I๑vZ ฝฤหภbี I˜อs’QBwvB฿4t*ร๕’ฆZ€ํฦtี’ณuษ$หษTEg=ษ่ R8T2b>+จ,/ธบศฦ3F;s<๊q60•”…@ๅ9�„œA2#„€=Zh’๑œฝ๑ŒวOœฎ*G&า�ƒšV๘@ V’ฅฒ๋๐ึb}Gื๗˜ะาถ-าw`{Œ680R!LJ";–ซ†ถํ1*าแU#๐AโT†IKด$Z’h =“8ฅั ชฦ“fš"K HVc]ทูฃคกwŠi๎ุ�ytม›๗Oุ›นq�gท„ๆ๋�ถx=ฅฎ7ฑจฑึ๖x๏H๓’‹ณ3ฮ7žฆul›†gฯŽนธXา{h๋Šy ๛ใ’๑t\์nคŒ›8 (้}CRŒ้\ อศ๒ &1›0ฝrH0ลIฑCHฦ˜ษY9ฃ๏`f{|๐�”ฯ}๑ำ”�P*eดs›เข/u�/พ์J%ธืn }œ‹วLoM่7เ6†cH�‚ะ-iIฟ~@s๖c\}AP;ไ;๗ภำ7Kผ�Anบ็}ใ;v>�‘�3ฬฮซdำซHZ๔่6ฤ9ใ%่]ฎYลฮ๔ ซข |‚ๆฟตหฟ sfฬFฤ๐>ษแsp๑~ ดๅ Hฑร�iwฯะ•_ัf”Wซ‚ฟ๔กK–ัํc”ฟม;7mHใ๚�'๋๒รlR™’หCNBื๚:Šw‡sมแmK>๚กืจŸพ‹—c�๚#ŒษมW˜ูหฑ@rึ ’r3ฺร5 ’้๘~v1{< ะC™@Dๆ@p>*๏}ฮS๒๒]�{๛‡H๏˜ฬvh�†ฆํHฒ*Q�พs{w๎ฤ\lฅ1ฦฐูn1ฦ๐แ๏q๘๒>๛๓ ู๗์ไฐฎ{�†พi(Œf6;ฤ๙t2‰…2รhฐG™๏a[๛hขTŽ@j:g๙ู^ๅ�g[ฺ๛๘๗พ�+ผwถคk{๒4ง้-}5!�ฦฒ9;แbฝbsqFณ\็9ตสAkด qmืGŠsะY‹ะgฮ \ˆa’˜ิJฦ——€ษ$ฦฎ AY–คi‚ฐฺิH๓โ›บ!•ฑT! \์ฦƒณุพร[G�whฅYฺžง]Gโฝ'hJs7ฯ8๊Z‚Tะ๗dส0)J|]๑ท฿แ๙dฬt\า�hผ5อS2ฉxบูr8ณmดŽ…๋บ�‚‡บ๏้ผฅ๗–Tล•J้ฌCชํโป� $5*๖nJOัI†ึ‚l'ง(](๑6!5I@ซ Jดq๘ี’bฬม�!มy�}šะe7)ฎ�ย่อbCปญกi่ปŽ~{LฦŒ็ฐฉบฎ*๕lŽ๐*G‰ ฃ พk่๚Žล๒‚mตEIวxw“ทุ๊9ฮท”II–H>xž๐ใ‡%�าา๔–[ฯw฿ืTมฃฒ*๐Sˆtสd๗*ๅLแ์Šลข'T กฝ o*„oพยu=น&e$ภ๖–ใตกu†ฒdฃ4š�๗-vuDปชHส‚ษ�ฐ;ฒnŸ;TนO6�'เษ&B;lตเี› ถox๋ƒdz€ฦ3ฮ๋H'นg๖fŽิ; ว5ฆณ๋Zงภ7˜ิ๓๙—nฒ?ึฐ๎แ�lIŸŽX…”•�แ"Œyผผ๕`อ{O–|�฿c]ย’t� ๖_๘2มข5%ฃy‹ˆ@;ธ(ฬ’ฺฤฎ๘n‰o.ฎ7๋ๆBT[KฐีMพ�U&/�&ใน†�„U•bฦW้EJ{�C6mNุ<…|J_?ย ษ‘Œะใืษ๔}ต๑FE๐รj� �—ภ8€ฑŒ‘ฆ1Bฦ๙๖e๗| žแ2ฟ๚ฒSฝ์ฺ/็ฯ!ฮ๐�ฬbcX ~๊0TЉH—4ฒD&2ห#ฅญ†cƒ NศมคๅrV~YXD6 8๛1“z ึ;ๆ:A:Gศป9c๑ฮ!LŠL2B1u* k}บŒ๛�ํ™ฮ๐RcืO(gป;‡c๐��๚1Aeไ“รจfWััฌ[0Rœฅ๏-๋ี9‹ง,—YฏŽiบž‹อU�Pี Z)”RฒZœใmOžD๓ข$1H-@G—ตฅ๋1RวM‹ –+i7ญ'S‚�ูŒร๑):ห้ žMืลuลฎgyบ ^ญ‘ภฮจฤ+ษฆm(Mสม๓บฆะšN*จœeแ๊๏�๛_�ฦlRโญฃYaปš$Uั†1 MŽ)ไcค) Vะ่=๊UหธดHญฐ%ุrดOp[๚๕9InHŽ––ฆuLว)24๔หst1ล ‹)*œป@ŠQNž5‰@K‡ 4I"๘๐<ลŽ_ๆฺญ—๙�~ศ�๏�„j๑”_z�0‘มC"LZrธkhฺŽuฅูอ=ฉุ๐ พอฟ��Š‘\๐ู[šL- �ขu+f ฦฏQํŠชMAๅไฆรy‹‘บห๒)Fงใ้ษษ๓ฑู๔9ฉffB@:Bf#Š้SŽ‘2ฐช ็ห 6›%“๙”ัฌฤ๕ždฒOณŠL†5ณiเ๏mูl ฎ]‘˜pฮbmcธ“$|G฿9๚ฦc2ท }}s!0šŒน~xภใ“ žžž#ฅJฦYแyg๐M…ํ�ุ˜"๎ชD3.Bˆ7Uฃข!Km-Fฦ๐'IขZฤ*Qซh Bภ9ศLภ A)ฮzฦนกHกฏkผ๏Qฒgžšxฤฅญ y6!ฯ ŒRŒxpR๑ใ๗q}Gฑท?ฃ๋,8?๎7ว( สk„ฎข๋zTqR‚o9_ล�ฺชjจ›Žnsมฌag:#3ž‚Šƒ‘B๚ŽmU(ษ„ญK9nNถ‚'วKŽONื<9]q��๒l�๑่xษ�๑�ำ ๎ฏธ�ไ„ฃำM�๑่ัป<\5|แท�?๛k›—_�Š่(&ไ%จ โ/"0g#x+}…ภ"ำยี„๖<บฌUหศ�ช)ถzNp=พ‡ož`ื๏ ๔>ฒผIu๑6t็ิuKณ^ ฌ z�>ูตO‘˜Žt๚"R8‚ูAๅ1bU›•ฅC๚ีะํŠก๛io�ำ9๗ฅสๅฟ}L“]๒ˆ‚ห๙๖'ๆๅwผรŠ๔ใ\๚ฒๅ�DQ †ฏ/i๕กˆ๘๘9ล%U~yMEj�Iš;žำวว็‡ยF3ก$�ฺธฦv๙ป!$g฿๛๛4๕)“;_‹‚B)ขc2ยeฐJป@ศ„๊๘>NŽ‘J‘L๏@s„ูy๚%ถ:ก�œ`ญ'„ฮhชs„*ฐ.Ž—.g�!€ยG„’qœ$าค<zฤ?��eี๐ร๏ฟ…–Ž$5(mX_,HเษาŒืฏ‘š„Dผ๓4mหใG๗9[S^?เสต1A|ณฆ4%ฮย๒แ%M&็ฦํ๋ศd‚Nข6ลฃP้Œ€"ษฆ๔]OืT(ญ‘: ญ4gUอ�่]พ๚๒ง(ำ„๗๎฿งizฺพบo18lฝ$๙h‚E �†ฬ๒ฝ›(E‰ร6?u�Q7–บvœž.i-1žี;œ0=i^pv๚˜พ^’S”lh6'HกHหศภ Hดf”D�r<ฉึŒ‹" ึด&Oา4!1š๓พงทฒ๋ฉตขWŠeำ’IAกวmHnŽGQWc u[๓๗�่››”ฺ2ญ1H–ซ5�ŠFK>sํSฃ้ฅ$I wF#ึฮข”B8Gก ต๗dZฃ�ึoผ๖ฝซุถ%)SาLว�`ืา{pNา;ต฿9”„.็ิต@ึฯะTฑCจ.p:ญ �#ูl‡บฎy๖h…Q‚‰ุ‚หI6’ฤ๕qŽ!ฮId่mO๏rŠ‘ฦ5.๚ฬษ�'Št�5n��>|ภรGO่�5_พ#ูฯ;„ฃT‚-™๒คพแlใh|F(o๓�ฃ›|๔๘ww/�˜“ส˜l„ฏW€ 'ไsษฆฎุV’Yžลตˆ$ฺ�‰bLศ3lป!„@*^ึœ]lมGๆD ึG’@ช�WHฃQ~MฝYฑฉ›*!3P=ํvKš‚ญฑ!ลdš๙ธๅ๑ณŠ$TL ๗ŽgฯกัยกBƒaE2สษrย ฅ&๔=&Iะiมhš๐สKWYn6,7=B–ŒRORLZา3P�‰AxA‘%จ,)(ลEe9Yทz๒DเญccศcŒŽT–ทั…/Q ฃ-ฝ8ฉ hศำ„ U;4Nd"๔˜$%e˜ฬะ๖‚ช๋‘* )Pก็มiล๓ตแี—๎1็4]tำBเEB�๗ด]อถ74Uลถux5aฑช๑B๐แรง๔›3ฆbKnbqโ{หj�๒๘tหำEวัชใ๙ฺ๑เยrrพแlmน�๐dๅ8kK›R๗P5 หีš Fซ˜+-๓"G(ลfsฬ�๚!_�๋�K~๋฿�n^+ 4ฏV—`†Nืู(J Dีนoพ4ฅ[บ†!t๘nญ/๐ีItพkž"ผ%โuมๆไัณตs„mุž“๖-ๅี›์ผ๐uBฐŒ๖^!˜}Tถฃ5@“ฤคซุ5Gฤพ~8ึหใ$บ2^o��ฅjโฃ>ขok:�ัlท\,—JHf๓9Ÿ~�UfณศC฿wฌ7-� ท>� y}K$!d์ p๐๐มŽNฯHG๗^~™$฿!๔kค2ัjXจจ?šชii๊5Z'1ห<ฤย.M3‚T�ห๏�€4H๖ว3N—+ฅศฒ‹ 7ŠB+บพนภ๕ ใูMณลZห�๕›ไi‚ั‚ถ†M�ำปภำ'งญXUฤ`$)QIF๐cฃั๋<�ีHmุ�))F �YZd‚&!—:ŠC@:‡ึŠิค€D้˜!‘&8;ฅต=wวS^Mษfคนาt›5�โ[฿b{ฐฯdwN*5YšเB|~‘%LGื๓‚ใบฆิ ัG‘�ลzหำME’ง\MX๔๊๏�ๅฯ}c2หะIJb๊(žแใบ-‚ แฮ่ญAีoฃจศgW่Kทํ˜์ฯ“ซศฆลn—ˆ๙]ยูGธU…ซ;„�pดม˜ษˆdZข‰]ใ’ฬๅ$m็ฏFx.*…ฮง$ฦAhx~๔ผƒ๙�{๑sผ�แ†ลYลx�k7SŠ้œ๕ชมw–ข0L๖w1ฃ+ุVใป%-Z78 T~@9=คฬrF‰โlฑaฑX!e‚l‹‚,อH$8•โ’œฆญฐึR$! ๎=–…LฆคEgJ*!U�Z”l๑ฎf�XRํi;‡ >”  R).ดh่ดฒ 5†V+ึAัIมŠภMํ!่ภC๐’Ÿฑํ_�์+ุ๊˜ถŠมฝWl.Ž่ฝb[ท๘ ฑ6ฐnถดูรงฯธ:า$‹สsบlXีž็[NNTญc�t8ybBขHฅษC†‹๙ิR“็)พ฿ฐiใl ศ๓๏{ช๊œ;/์๐๏�g�[�ย/�“ข‹"ด0ึ.)|ื๚C24ุ์6vกJEหฯK0Bx์๖ป}ˆก%™} )Zถ] มา:C2zš1ย 6Gฐ›c๖>�๏!Š„LHF๗hป€s}์๊.ม{ ฐƒตัผE]vฐƒนŠˆฏ‹K�้q^%ƒ้Šภ•aฝ์’fฟ์ชใ“ –ฆ2�[ํ‡.๚œ/� bฑแ้#›ืz„ไcj�;Gุ ื]jsq‰‚ฤŸแ-มvฌอื฿โ๙๏!‚a๙“ฦณfJบ�ำQ†๏‡k$u,T4 ศศRmžณ>zั5Heฃ=ญHศvoRŸพOฝํศg{(ฅ1ใ� tŠ’ฌœฤsุเทร�ท๓ร^{@J…I3ž,๘็��?ฅnZ„wHฉุn*„”ค™กkk>๗ฦ็๘๔kฏœฅฎ+๓๓3ž”ใฏ�%5ฮC–ฬบ …Nฉ๊šฃใSชmอxoฃืพษา`า่ฤBคๆปพ%ห Šัlศ%—1˜(ภค(๙�ฃ'|๗o๑ฦ�—)Fใ8ฃ6๏bVAUW!ุlk–'OH• (….๗1ล„<5hฏ89>ฃoumYl;่ฌEช€่๛ถ๋bq๋-Mตกศi™bmCšDcงq1ฃ๏VX9"ั’า(ฌํฉึ์LขฦูhQ[dqmฌ๓๏U[z%Yจญc�Y–UรญQษขd”คค@ก4ZJ–gว�ณท�bปณวม|D_ต„DS๚€๒Ž�้ˆižRท ซบๆฌชQ* ๘‚hmธQ–Rฐิ๒_�ฦ�๕๋˜T#ๅ`Wจค= ๔INh„ษI ล5|ุ!ษR6ห 2I1n‰d j4A‹$F�ู”b4ก้;ŸX’๑uฦ้ฉโ›ป7y|!&}ี‘& y&้๚ ็ห–ฤฎI ‰ž๏ดA^๙%๎�พว�?๙1oพ๙&M�๓ต4๗๖<›m š‹5พ๓(ํPฮ๒อw-ปฏ� �ฮ_�m�๔_�:ฌนwด=G๚5…ฆ๊hชัฏ้ึ5yฑC�ตT 6#5็z\€�คtHกก๕xฏHs8]x–ํ˜ฝฝ1WฎคQ-k|฿#ยI†ผ\lฺdlฺๅdยธฌ0ใtZ@ป o<:อHวšชอ(วcฆ๓Yชh๊–บหฯ>ะื5R:ดr(“า��ฎYณY,(ณž๋‡;X/x๏ั1ยZสTเ”ฉฆถQ|)น‚ฆฉุฎไ™!5)Az'่EJ–Fฏp, ษFฌzI็@'NคXกY6‚ืด2eํ$‹^ำจœEHXษ‘•T้_Œ9rŠฌuNๅNCยยึNsิfTึเsรt”๑�ปจบ”W๏์ขจูฌ[šอ‚ฆตTM‹‹uฯถ•ฌ65ห5oพ๓>;ณดPtN`ฒœQž0•hญ๐B‘9ๅxBšeŒRร(Kษต Sขฯพํ*r:J�ใ|ภMช ฮv$ZQี[Šข็/��g|๕~�๘z*สK๐šหKaาฐ{#=ฃw�‘�ํVศtŽI`๙๐›l7+Š�ฯ!e‚ Mณe{�/ง8/Xฝ›'?ŒR6e็๕฿ฦตว(ณG็ ALขฃบYส๘>4!ย@ๅ_รฑ^ฎฝ}Lฏ_vึ—|ู_&‘]uˆภ์ใH&Šใš๛c%๛ 4ปคเละ-ร%ชยล-vํQอY8 Msฝ/]ูC�็ j,Z}ืFŸ๕A9/”FJ•�„ˆQ›]ำเศจ�ๅ'o�+ลWุŸ๒|…eBFCƒ=bื๗อปอ)ํ๙GŒฎพŒ๗Nข`48Bf˜ู๚๚t่ฐ3”.ฺ่iฑ?ตฤJE p๎าภ%~F+eZRื‚�฿�>‹ำgไฃ‚`[Xฅ ฏผ๔wn� �niปŽพ๏x๔ไ1•๋ธ๕โ.{cC•Mษผcfฃ^ฃูิ๔› .ถ–;w๏๒๚ง^ย๛จtŒNJTRฦืะ๗Y>^WŠ@ช„�๖˜ฐiฦ?~๋G์ส„O�ผIีwฌถ5ซz‹ั†ฎwฌVkTRะƒะšัฮuD6Cจ„ํถวขจkึŠ‹U JŒ <]Hา„ั8Rึ]ทAˆฉ.{K�๗œ6- k๑มำ˜& !‡*A˜hล4Mึก•โูใ‡�ร๗าŽ'8(uJ9ส)ต"•ฅ$ญV4!pึิeธ5ใค$ ‚ตฬฒŒgmรุ$จ�๐/ผ๔ฒLัชว;E่-มญ@OZัT•_Gจ„AO๖0บ#๘5ีโœ<ื (v๋ฐู.�๙9ถ๑ขูŽGG ฮ.RูRธNftUƒ�ž"B…ฒฃ ญ5E"พ‡Nc2 Mร[G’0ƒ[7o๐ƒพอ๗’$šŸ�ฬw&‚ีชกซขHoIำ”ฎผสŸผตd6™ำฎ—��๐!ณQหgoyคซฃ–Hพ‰ส๘ ฆ4ข „Œ๓ จ์›8ก@BปYPW-^(d>Fๅก๏ุึ-๋VาZษ(ตH Z{’I†ษวด�–ฮ9Œ๐ฬvถu‡ŽOฆ๎˜คœะVK“ฬxŸ๑�๕jลๆtwกร’ถณฌkAY8Lขมn พCศHii1าคคฎz๚�a๔˜รฉ s=?พฟค")ฐึั{M‹D่ ๅ6€3ึ6A$%hƒO&tfฬ:T–ฐ ฏู๊9�ฃ+wi'WX‘ฑp%uฑหF,Hฉฝf- ็คิฺฐฮ็ฌไ„เJฉ(นุ4ิ๋Š๓E๓ฟ{ฯvkY6m;๔mžฒWค�เG๑แ“57ฏ๎‘้€VŠค˜ขตคต ห–U�๓เxอ๗�๙|`ทศะถล๘ŠqžPf)™Ž&iข๑JฃM B"๚†œ๏:\[#ฅŒ3พg�XL>cg2Fช฿Qู–[ฏ�,Ÿ�๊—๘๐��wฒ๑-f7?โR|%Pบ‰จธR"ตŒทJขpชซฃ๊ต[ท}Šm–œฝ๓�9gv็ืะ ฌž�+ไ๔ำ1}J@ฝ>ก:z‡N]Cปjฆ๗พ@y�ณ$ำ๋ะ“อ^@)Cž'$ฦ ut๛๚xฝ.V›มเd น‰ฌ’๘คmูปn๘iฑHว‚A;Š๗†ฤฐแฑrn9!^ปธ3�‰๏หใ —…ภฅ}jBM_t๏?ษEถ#Š๒๚.†ง\ /๗ซฝ ๔ฮE…ปะ('ฟษ3๑9๖ฒGเkๆ๛/ฤzใใใŠnr—๛ๅกYฐ}๖า|„buฅฑ={@U7ธfA0ŸƒˆฮuยŒษ” S’ผคทeข—๛ฅU,>;BŠ่ะๆ๓ฦ๋�~๕‹ �ปX…จ[APW+t6%หccๆล 2`�u”:แ{๗?เ๛<ๆีฝ]v'c‚ 1ฮZJ:๋ฉ๋%้l•OัJก –mีั๖=๖2Viา"Aธ–ู$บ”-ื]ำ0+zปฦ๙ŠัH’ํk&ฉ$Oืๆ#ฐฉฏฃๅ{2mศC™&x๋p�3ส32ฃฺูžึ92!xดZ๑`ฝf7หฐRฐํzฺถC ษ4+ธ1ใ๐Eด›อ–ฎmy็ู3พuบdzธ‡* ๖อ,Mฒ4a\dไyฮอฒdœg์�Y„๓ฬŒแ�{nOฦˆญจฟ๕›Ÿ๛F‘จOp�ๆ}ยฎ้›-}Ÿ6š•t=�๚!}�ป@๖K‚”(ฃp็๏ั_,ขว)คj้ทtgสAัฑ^\pt‘0ฯ1i‡่5:อก7„0ยg;$iFnบึฑ{F‘b๘`ฃi๒ปผp๏E==โฃ๗้ถ'�ฺ—g\šถA้œ4๕ๅtส๗>’คๅm>Ÿ{�ี?๛=๎Ÿ๓๙{žyY`ƒ&ษ|ศ้ป ถ!‡lDำ ดpTใฌS8 hAgม�”0ฬถซฦใ‘HัPี5ฯ..6kIฆ€†เ:ฌคใ ฃฑBJวlb0แ‚j}ฬ๊๔‚ด�eถ›š็˜�d~ aWศ )3GSปHฑ…5ก฿เ๛šjiฆ Hฺrี“ฦŽๆำ} Sฺ5A๔ค™โ�ฝk\ิžGวRIœT๔IŠ*3า๙„สYึ=N+’=ิdL›๔“9ข0˜�šัๆsไ•ซ„+‡จฝ=ฤม๊ฦ-า๋ทW)o�`๒ยKจƒา๋7)n฿%ฟ~0฿ง๏R�ผE~็๒๊mบ�ฬมMฒ[/ข๏ผ‚น๗2“ื?Kv๛๕ี�ค๗^'�}:�AŸ?cŸš‡ฯฮ๘แ‡'ดVsr^ฑธุ๐�ู’วOŽxtบๆฝงK�~็}ฦYยL[DทFซ(ธ“มcืำtt‚)ฆไyF‚ฅm*๊ฎฃ๕ฐ้=ZKข]=ภ‹ ถซh\Nฮ@jฺ6#฿ฝƒv'7พBนr~฿oษวื&‹‰vœตัo�G ฮGตฟ x�วีรk'|่rๅๅื—�๔ž—�A^Šอภ•‘ฦŽ5ภ0b˜#_Zต^�ๅ‡๛)ํ=t๚มฺุ5‡8�Eฦๅcีปwฑ ‚ร๗1๒Qุ๊eห!†1b‚–ฯเฎ๋ฑ}  ฐ}�ร_<๘&๏=>ๅ๚ต[ผ๓'�%ฏผ๑๏0žฦTผXGx‚kใ(ภwฅ๑ถFุ-้ไ �โ)*‹c'็zdrืฎษwnc๒9BJ9Bง˜tŠ๋=Jส(ZSƒ�ซF"š‡‹ฯฆnx๖lAช%฿๚๎;๓:ืฎŒPาฃป]TYฐ}O�YŠัœ<ป|ษ8๏<๋บc”eไ2๐Oพ�&๓dฦม(ง๏{„‡ยจจ™QŠ�v๏่›-ซำg๔๕แl\ื๋[ภ#eหม�˜ร�:ี์Pfญ�๖คn๎Oู๖ฦปฦ’)2jpFำ„ฎFฺ3แPfJข }[#BdรฒDฃ…๏YYหขk๙ืOsณam•ํุ8Kp‚GUอ๕ษˆ šyžฒUL(๖F%;ใm๐|็�๗y็ไœ้ฮˆ้�ู[ `ั๔( 3I ้ดฌฌ%ำ†บo™š”-้=‰<ช6จ�ษoๆำฌจแ–Dึ ูธŒ{งf‡ 4I–ขM]Ÿ"๚ึงศnถEš]ึคZกส$2O ยผํฐ]KQๆไ)<9ฌรˆ�"#ษjT‘แ ถC†4ู`+‡w†u็@๎0Ÿ[~p�7๛๎�{‰?๙ึทx๚�_Ÿ๑—พh้Šถ—„�ฃ”@ฉ„��๘O๐โ�”[R๒ัใSŽึKn฿žSืm8_ฅl[‰ ฐisz็X],HeL�ฆฆํ.จ7[ฮN7้่Lส“ี`๔"�ฦำ๔#6�˜Mใะl่l2gœค xoษต%หZงุฮก๑ฬ&šTKฮ7c<‡7๐*‰Uป฿bญก�ฟฮhwD฿ดฟ ˜dฉๆูณ†ฦOศsE1- ขCศnFฅิm‚ožežt4Fgปd‰โ๎ .ฮ|tฺcŠ”+7n‘ๅ9zŠํ‚cค@ ๑6ฐฺl๘gฟ๗๛�ป{?๓�๙๑›g™ฯ๗่งู6”ฃœผHนvํ*“QIืu„ะัท หีOŸŸpๅ๖Œ๋ทv02%๓m็Hฐ่>้กฏ|๚s์Ds/�+ฅ‘Rcญล‰„2ฯQ*^c%c๑ผง๗‚ลzหt\๒า�!N๓ฝใื…!K4ํนXฏ#‹( i[lำะV+๊อ9ึ6@ห@j4{;%mU‘%ัng6e6*IAžHf๙฿žBq8I™eฃขD+ CTฌmb\q{Œ๐๋ ฬF1ฐd`gหข@ฐ่ญeœๅคJr�uq๛)K)ฒ„—ห1m�ลSฎF์ƒq,5ผ๗่!฿}p7*ฉ๊ัvt.ฌCฝ„ถwิ�แฝง’ญb Mฉ$GMรฆ๋Iฅไรm…๚O๓ตoLw๖Hf๛๏้๛’ถ๕Hฃ๐"ว…Œ$�Eฺ#ผ‘jำ้ถค“=ฬไ:Rงx*ผฏ้�8:eัแšŽ  ฺšzอูึำYลค์q�ƒ„ถยะ™งญOใ.V‚\๐�๓-O�]6๋5฿�๎[(ฅ ม๒‹w{ๆ…dS)š.A็ถ๓?ฺ๒ฮQยห๓)O>โ็l”เsฏ(ร†ฆืX/0Zl@HดBฯ๙ู‚mใฉ]Fฐ{Ž๊*7วˆ–ฆำ,69gซ”วซ'MA—ฮนh.6 dฮ๙Z0.S๖ฏLIŒทฦ”%าŒIŽkZ’bฦd'e�8๎?Iุ?œ0JVxBtธ ภ$hำC�ฎmHห9้hŒmฌN“–%พ๓Hฟ&(ƒํว๔=ธพa๙๘=ๆ7^`ฒ;†าดวLrฯ�คใ้ฒfน^ƒ‡ ำf<ฃMุฟs—QY Q]ฎ4้d’Œbถƒ™๏bจฌ€$g<™”ฦ๚$๓1AjŒิlšLŠิ†MgiF’ีชŠo ฐึขธ]๋‘xร:อ™๎ฬ่�ž๊๘ˆ}!(็ืHส)‰tqตM(ŠDฃ“Œซป3v๗w9็”Zโ…bำ:J-ศ“8ำRR)Iข%ย{š>เ๛ใkฒ$ฺhvึ“รฮธ@ A๘8�ืบ††1ต_๑ฦW>รฏ��w๎�$๔�xsปผmS/็ฒรบTC�นื e๔� ๓+ไฃk”ป/ฃา„อร฿ร››$“ ิl–ว˜๒*Uฝฆ_พว๙๑)�๚”โ๚œ�๘›0�#]E๔Dr€ษF8ณTbโL0Y:(ใ~Q)2Iฃ๓ืx'/A๙,ิๆ ็w ”ร็หวธa6.โ^๖OŸgฐŽๅ“๋jิ~’†'‚๔YWBโด‹"฿w๑๛"r˜ฉ๛่‘ํˆว|ƒyhป็<ฮตqค[s�มทX,Oุ{๑ืy๒�ฤรท�5ปWฏ๑ย็�":-ขV`Pววูyd0|uŒ=*�ก[~ˆs 2แš 2�รตKคฟ ฿Bๅปทfปmฺ่5&ูฃชท "H_R็RชHงK]ํ†ฮ|4ž๐๐ม#NŽน�่˜฿�1™64]EQd๔M6ฮ๗ๆผ�๒ห๔ฝฅฺn(๒„ๅzรณฃg<;Yฒsgฦ๎ซwะj„๓’›ฃ…#%A๚–7พ๖ุ;�GงLR…‚G๋€ํfI ’๖๏๛k-Jg]ว&“QN‘gR๐{?๘ีชc'M”4ฌ›–ีฆŠ.gยญeš�qAขฃCb–ฅฐม1™–ไYB"ใL“ซภ๎ศ0/:๋1ด์๏ŒHค$x0J’+(Œคญืh3ŠซฌมAŠ Ž|t41q.rx/�๋ฉ1บ�˜O:บB๓๊อ *™เeFšxฌ๕ธ ้ปŠvปกjง)�ฆ๏Bไl�˜gkKซ4vtูํ™พ๐ทพ๐Ÿ�…/๓น_z/�๚W๙าฏ�ๆดพฏQ}MbR‚าTMO‚E O]ญ่$@เCด’•ส`ฝ$H�ฑS“๓`ดRxฉ1xFๅงsn�๑W�ฃ�‚๋๗nGw.ob qQ -โ<�๛Ÿาสถ‰คk ํ*o อขฏัู„อ�ฮ๒๑๗f=ฝGu๖๚�Qู:บv๐Vท[‚šฑsใณุ๎atdq–[์�ล˜ุ๙*๓ŒQน-ค„Q1�B™hzํC/?>1kพ์˜‡ั@๐�@๘“vชแR(v ฦ‚ฺ"‘ฤฎ๕cvb(j. ž‹„แ็‡OR๕qw^•ไ�า๎5vฎ�ใUฒAๅ๏๙8ฤsq|ดRแlE๐Žฆบ ญ6๔^1;�,ว๏�cฝ๓MคƒWพ๚ืธ๖๒ฯโ�ฎ4b ก]าožแ๚๕โ#ฺล3Lถƒ™บ-ม6ุ๕#tžb&๗Jใป AกIŠ�a฿�$ R้ศ€\�Dคrฝ๓�ร(/๘o���Ž7฿�Gฯžbป ฝตEฮrนยv-๗๎ฝศง^} A ห2”าl๊–ณล’ๅฆฦ^฿'฿-™็/NวLส ูtŸoฟภ์ฦ-R eฑ‹ญAคJBเ]‹u`ตฉH“m ถw8gฃ8S(6UK�9Fฃ‚qQเ…เๆ�!ฒ^๑?๘ˆ=3แp\ คยhM’"/ะx|_c\ฦัW+คส0ฺฆ‹ใญเ™ๅจDน฿ี๔อŠjฝ"ˆi‰‘q๕5๘vX d&e\Lƒ`ั˜’คธŽ6cB๐ดM,Bœ‡u�ฐpŽฺv<ชถœZK™—˜$ก'ะ[kขภ5KS”ธึrซ()"Mึ]ร?๚๖wนPžlo�YB€|\p8“t–$5๏8ฏ*6�!์ค)หถ%๓ั‘ณศfIF!A�ํฟ๒นo�ธŽJฦHอ๑๑[|ทคฉ[zKL๑@s‚6Nwสš B”.ฐหG๘๊)46ฮะฒ บ�Dฅญ(Hว๚uƒ กM- ๔”9จn…๊{TšัีBดคๅ้5ูุpพœนœวํ˜ฟ๛ป�1ง็Kพ�ญ๏๐•Wว|๙๕=6]ื#<ซตว‹ภป/H�/O&|pฒๆ'‹šw'์๏%H‰์่;ฯvใh:ฯำำž็ มฃsIWฮ™ผ๘2ๅฝืุ}�/�์—yๅKw๙๚oผภo�๕฿ไk๑s|�็>ล‹ฏอธzซd2ญศ๓5ณมอ—=ฏ}้ฎฟธK>พม�ำ1฿๚�)OŸ5tซ ํvt[dขI‹]d�2า5;ำ”็ว–ำ3หฌฐปxkiืKคcฦ71ฃ9-SL–Q์2?œกำ‘๏ tฦxไมตศl,ลTณฺH6'KาQŽฮวxปฅ๓ อy๙ึื๗RVVrr|S jwP8๏จบŽ|�Ÿๆ` ษl†ศR„˜,g\Ž!I่๚žฮzฒ<ว Eภ‡w>jt‚a y^ฦว,C+Gะถ๏<ซบeTŒRb๛>ฮี6ตตฌz‡้:ŠgI่ญ%O4ย6ธพฆท"๔ั VIฌ0ดํaL1ฦฉ”`๋ก3ˆ๋Aซฦฃ“ ฃใ:PชมzMf4 ำษ”TุhI)E–‘% ™’\�™ฃG,��ๆ฿�Ÿ๒โl=t•รผ๛2๐c ƒฃบ4ฺmฎv็…อSDyฅ t �็฿"ศf๚"๖์mึ๋'ะ/้�@6ปE_=กgป�ˆ<5d‡_ข˜์แCร์๊๋ัlวฬIห]๐ฉRฦyd4•‰๊Z)#ป ‡�้8—�„S�?๎6‡™นPƒ#"6๎gศ๘ธฦ—เM4)น|HlŸ‡ยเRอ~ูอGภ ฮฦ สEZ๒ใ.บ๏ฃ:]GŸ๐ุะj๒A9์ฌุ๏}Œส† <ถฏbwฝฦ@๎=lื'๔gบ๗Muยษั๒6{ท_ๅฅื๎!š tq็๊ศ< Dxฉl}Bป|ชD‹žd|ฐศะGฆฅ{Š�Fฎแl™D‘ขF้PจKำุ„HกฦŒ๒่ƒ๏ำž้lสw฿zŸ฿�ƒ?ฤจภล๙9M�œงชjฒผเฦํ›|ๆีW)๒A ๏{ชํŠOOจบžO�๒k˜้„�Trs6!†ยh‚ฐi†฿‘•ปHแ้๋ ’r/j )m�ำYK‘gHep�ัwm,ฌ*K’�ูx๘� ’ิ๐ส•ซผ๗๔!฿{xฤีด ฯฺฆฆi{สrยdTเœeฝ<วv5็็งุฎฆ,Kสข$/ LZเ ์ฬwHณ(๘:;>วษuๅ‘zŒ๕ มื$Zา๗–ฤฺฌ3จเPขล…Wภ์‚ง๏-ญํi]เธฉh‚g�v|PWจข`้0ฏ_XK"ฃcž4†ปe‰’y’2ฐ�V$ฺ๐เไ„��฿%?�'๎ะีํษ!ำ’ชฺ๐ผชHา„^+ถฮ1JR๚`้Œตย)8n; ฅ่๕Ÿ�_�ฦlทˆด’dผOZฮ้7GxืกdGRไL๗&ัถwHญ .ภ๖ es ฿œ B‹p‚๔จJ๗ ชChi�4่TๅŠeUใค‰fRHผ3xื@h้mย|K>M้ป5N–uป�ยWฟศŽy๗�cnํi๎์็q#ฅ>ใbแ8_;Vไอ๗k^šํฒซ฿๗mfธ๓ฺa|๏ป@ีVฎ อwะ‡ื™ฟ๚ทๆuพ�[_ไ—็k|๙Wžฯ}ํ+ผ๒๙ป�|ฑไ๎+‡\‚o\ฟฤv+ฺf”!�,ีˆ"ด์�พล+oŒ๘ยื_ๅฮห%k7็ฝ๛-ต4�œ้ฮ”|bšT’“Lg์๎F?p’)ฃ่ดDˆ@ZŽ๑ํAํฒ9ฝJR|s‚Q ำ‚ํ๑G8ฏขo=ื^ ๕ˆผิl–=�๓ ฝ/Aัmžั6[ณแ๚�›OH|๐�ct>ft�:Iจz‡Gฤj“ะ๕–bฌๆฃ1ำ1™จ�์ฏ}๙™‘ ถญ่ทkB๐˜ฤฃhc•ํืCด`ษโดA‡-า5- fŠuต}€๔6๚'�‚ 5ีr‹ฬฆPoบยbqA2๕๔มSท#vษu.$ฎq(ฉฃj�ั+ษดLyบ\๒ํrพ�ฅ/๑�ƒ็ผw�1ฏ�พย ‡†v}มbแ9Yt"xzgg-Ÿฟ~W-y๓๑sฤNฮ� `๏…/qํ๕/p�ีปผ๐•|๎ฏ๓ูฏ๒™ฏp๗ำsฎ5dI 2'ฐŠ•|๐Hi a " uƒObMb–$ษ)*7)$ˆ%๘B<&ษ{ฎพtƒฯๅ:Ÿ๚ส.ใ+9'›†๗?จ8{บ`2M•)พ]2�;@'šอzE๋&„f…v+Lž`7็(zาQF{�œ๚์!z‚น%xมf%Hำ”๑,DUณ>@A–ดtmอ๓งวฌOฮศrM>ฟ‰#BะLwx้ึ>/])๘�›๏ณ๕ ณk7qyษd2#ษR„NศงsTšG+วM฿t{Œ�ปุVุใb„ํ,งuณŒMยฒช้œ'KRœNhบchA%:็X.ึธ�โค`>ŸโญGY\๕y~สx๑œY`’',^Jฒ๑”<1ศ$ExKก…L2F! cz๋)dGž$XH„#๐]ƒ–MdP๋-ฎ]กด!อ l฿ฤu•ฤ@ฐX็Pฆ`้[�ยo�&/~๊‹Q-ฬ€g::} -่l‘VJ!|‹w’&†๕d{๘fk6ฑkฉกt๋7ุn‹ษvฉฯ�ล$%พธ*็�›�„`๖9�เ[HฝCณู0{๑ซ๘พ%0ž฿@ืhš€T—ละๅ)Lj>*ดฝ�œ2"ฎ*]ฮ}t/๛iว็ล ž[/�mฐ#uัN7๘O:ด]๊ะ}˜๛!†~j�".uW๑k)ใa9‹ฟ,<–@\v์U๎๚ื๖xม�ู8โร๕ฺfอโโˆ๕๒”ลษ;(ฉi๋6*๒E@&cดpœ๔ฏ๙ƒ�ๆ�ษ‡๗๏๓ๅ7ฎ๓ยอC>๗“Œฎฤั„รJ'๒F1�๔IDAT�Pะt+บณŸ`า1ถ9"™�DR!๔$Š๊๔ก ึ9Ly$อvEช5[›‘•%C“%€D้B ?)ใ�_J9ˆA่„็G��ฟ๘C|ทฆ๋ใHห;‹NRๆ;Svงs ะถ-~(ๆฮ—+>�เื๏ํq๗ ทiฌ็ชv์M‘”$ๅ˜ูd†‘Šั๔*&-๑� •Œโม…uฝ ๔^0—x�แ�ฐe“QทŽฆํ™Œrค๔ถวฺŽ.8๗ฏpXd�—฿�ส๒€O_?do�€+๛๛diยbSฑZ-hVง$ล”ค�R3{D’ฃ๒•j:[๑๐hIี2“„a�ฦยญํjค$fwจŒถ๓T')ฎ‚*Q้/&$IAZหพรhC-ฺŽ$1œ๗-๋ถa�๗,ฺžL+Bg้ผgำYœsผTŽH•คo[ฺmƒ1=Œˆ�อO�โฯŸ<วผ๔BI๖Fif8ํ{vส’ะ๕ฬ•d>Ÿ12 •‡๑xฤkณg}วึ9ฮzว‹๓ ‡yFๅ<๊o�าoLwฆ๔m Bแ:KปY"@ช ‚ฃฟx+ก฿rq๔ �B‘ึ!้ฮŸเผ@‡lฬี๋HฉจN–๘๖‚ํ้฿U(ูบ-NI|ณŒvœiม้yBใg์๎—$i อKty@งธyoŽ๑="5<;ฏ๘๓ว%ฟ�+‰๓Uห;๏ฝฯ๎X๓๊อฎทไy† ‚U“๒่ธEดฏ�ฝรณgxบ๊™�บส๏��?๓k_เลO+ฎฟ่9ธึ0š Œฑ_|ฏฮพFe9RญฎE้!*”)ับAฉฅ7(ตB‰ณ8K ๘ธcp:ธ4yh๏C�ๅxหญืๆ|๚ำp็๓/ย่ทฒๅแ๛Klีbฦ%๓q๏ถ@ซฃๅ�•H{ส3š ฝค๏=อบGe9ฦ&Wฎ’ๆ#.ŽฮะiN>�ม”„*‘RcL`>ฯ rยษ‘G้”478๋p�‘ฆ Wฆผt๒เw๘่ษ ฃ๗˜ํ_ดDd%ลdสฺzชพฃMJใ1cƒ@รh2c\,ฏซบ#อrๆำ)‰I๐Œ‘8H•BjํMด�c�ธŸ�บH้ !hmO'พช9\Ÿ2ำ=mทม:2%O}�ขผCKAƒA‰ภจ=G๖•™ \OาฏhDŠžQ‰”‚ึ :Yา{จฝย O๎ทX‘ ๓9}ณa’ฆeฮ$K๐ฝๅฺ๎>ึรี�w๘ญฟ�ปศD ๒ แš๋rv.ƒ:<ศ˜-N๓ฉ4[฿ปลญ‚สฑ�๏ B•ุี„)H๗ฟ@u�}๊fล๚�)=uUsxใ%š�1ฝ๖"ส$คYŠศoก’ rศณึIYแcเ๓.ช†�`}~zฬโ๒ˆ"†ญ0๑"ื๏ฑmKฐรz�0‹Ž4๚ะน‡!E&ฑ มฯ-ส�ธลฅb}่�‡Ž�cท4‚๘œB€q…ษ9‹พ~ ˜cฝ G฿ฎฃ7|ืS7k๚๚‚๑์&:�E ะ:มYKป|ย๖์}�๘๗�ฝห^;ไ๕O��ืั๙Œเ{‚ํภY๐ฦmŸ`Wขฦwจž~S\#I|ปม๛Žพตธเpห๗9ฏKฌ˜2™ฬฐํŠlzฮ”ใbhQ˜D#‰ป�ม9Bp„ื�q4�Pjอ›?x—�{�”nปคฎ;F“1>@™deฮตซW™Œงคฦฐูฎ้ป–mU๑ไู1{๗น๖๚uJ๏1T$fลลx—‰–ั@&@’$<ึA’�;.ฮNโฮvš ์ กPJ#Uสj�ั๕ž�ฝ9ZG$qฅN*‚€ฒ˜๒|qฮw�็j>แ`\2* ๒<‹6๎ˆื2eX๋๐Apก&ุ4CUocD3†ฦ)ŒLศu‚๕Ž4ห้ป !ผH๐a„ 9y9Fระz‘ฆฏ!Iฃ—ปา<๋,+�sัึ|tqมูบ"(Eฆ4MำQ&)็��Gี}[š็ฝุo†/ฏฐืฺฑvฅฎิ9 ปั�ศ ‚คHJค$[รmYวถ4ฦ๑นตว๐� ฿xy8H็Q)Rไ!Pˆะ:‡๊สนv^๑‹3๘bฎjส5FกชB๕�kฏ�อ๙>๏๓�KžคH๏I๑๔ใ„ต(f-IH”ย:วิ�โ็?a–ไจํ-Z.Iิอ4ยหมlAาหIข๐Z๋TmMคc ‹eไฉิิ๏็น๏ฎ Xk้๊R*lW#” ITเ�ZG�[Cป9‰*Yฬ:”/Qขรฯัฑ'–1z๓,ฆ๓ิe q†Œึั‰ฆศ๚จ$ใPt8�ราIชฎใม~‰ˆRฦk‚š>๐ƒ%?๚xฮdjฉบหธ{ฒลฝjงvwธ~๋67n฿gไฦ� /ž�๓8~o[k‚ล^ศ•�” แšฐCตeภSฆCD{ˆฉtๅlGs๒๑๚KH�ฃ:๚Tฬ�มอ2”Oฝ๒๒"ยeฃำ/ัO5‹ƒ�่tƒ"ฒhWแ–‡ˆๅ w†UฏbTค?woใฮ„ฝฒ๗ก �„fถbฆ{�z=ฐ’ท~5(‡ฬฏ\ษจธUฉ_ฮ„l ’๐๊ วปUŸ๗“}๗“งxำแMทbmฏฆ^ถํ่:ิบภ’WZ}�จR*cZ&''Lๆ5mgpถ ŠฟL‘xผญจ็w1ี'{๗™�b๏ฮm?็k฿๚ผ๘ี� �/�I1y๏ีๅฤ[0ี!อ๑Gุ๙gจโ)p% ˆ‹ ๏:T”c&แ`7'Ÿ.ะˆuฌ7dฒฦส‚คทƒ1q’ุ.ดฑ}๎@ ใ8Hๆฮbื…ฏa๏�ฃฟรŸ�ษc�–8ษะ�•rRd9Wฎ\b}ผฦ ฯจ๊–ฃ“#Žx๘๘ปฏ\โ๔น5D9Aวšs�้Aึ'G‡ธฒๆ๐๎-N�E๊‡สYe4ี‚๙ข!ˆใ€‚ีQŒ@ •ขํ<''szyJฟHรZc…zล;œ๗์Nธ�hสซ็ถx๛๊|p�„+ฃ5’4b:_ข„bgcฤp๋D1ฮถ”ต%n“Ž7ˆ๒œV„–ฎฮ œ6•-“yศœKแ่:OYdา็ค†…๓˜8ฤ€๋˜w™ึXฅ8ม1LJ็ธฑXาi‰JC้าƒูฉ4‰—‚“บ…HำK6ดf}u™ธุ+ภXz:ข5†XGฬgว|�ว? �9ฃl่ ๕œ“บaง่ฑ/ล ฯฉ8แฐฎY๏๗™XK็!r รcฝ#Žิ?��/}wฐ>แ๑ุ๐ ํฤ15B๘่5pŽdp–8๊แ}ว์ฒ๑y2B!c0ƒ๓,๎�ว”‡xๅกXGง9เฑธถF ‡W ๅ uี&หf”ฅๆO~~@ดsฏ|๛k<šรIย๕G’ซ-ทp๗ณธs๏.วืั–๓…aถpdฺ‘๚šษ๔[/้f ๊c๊zŠ๕ธ๑ูc^%C&5xณŠตึa €Ÿ=lทภท3„=มท{xs„ B{ˆ$Bฏแ]ฒCˆP่>ุHพwฆ  V,๋4�jภGsN_jx๎๕>ž�dZM8žไิe‡Cไš^Oโš ฮYอีํฒ ก‹AzšJา–5Q$i“ใ†ผ—ะฮN0๓t์ัqAค�"&ค,งsL9ง่Fืด8�Aมkฯ์า๎๏๑ัปŸเฦ�ครJา(4๒ Yšฌ,Hxฉq*�พ+rตuWI‰๏ '‹eธ�ท-X4ํฒ dญฮาิ-ยy๒$A*…ฉฺชeูvฤฆกท�ื5คiN/MC[Q>ยซ๏=EšD หจS‡็ฝิพ&‰ำ`p“U็(์’(M๑ํ’ฬฯ1ฆ ฏQึรyG$l๕ฤ ถฉะx*ณ้1ุโ _~‰ฅ๑ึ_&Id8 ŸŒชซสหภฑ6ซ้UoรOฆ+p•„‹m� (ปฤL>ฦG :ZรZG๋$ฆ|Hm๑เๆMDTฆ๋๙S]๛)ฝลu�}Ž�ำฟc๒ใ1๙ฯภษŸ�๗L�โ_q�็�Šฃ๏�œ�ลฟข๚ม� �๎}Jดx€สSิ๚Sˆ8 J’ ฟF‹ก�ฤ`ถ:9V“ต๏Bค.จๅซƒ#ผ1ƒ|ํยไญ]•ฌ์'m_ฌไซ B|^ย*๎ขTOšั$ย;ฌ%8 W็œsžฎตA์‚‘v>›1Ÿอจ;Aื–H_ฏxใgุ๚$ิซถ‡x4๗>ๆ๖/ฟว q๙ญ฿ใฉื�>็ŸG'b๕9ฎ"Rโฺ๕ม;แใาJง˜jŸธทƒkฆกVf่ตห4“OIzงq†1‘/AP=”๎SทA๓N`]ส�ŠRง“4ดz=yme ็)ตบ,)อ๒?�ซ‘%iCสร{Ž๕ฯ^พBž%,— ๐ž๙rฮั๑ ว‹–๕/\ไฬFŒ๔8ึ'ข™"ฅขYNImหใ�๗น�้]สชแ�•็ˆ๓ภj/—KœLูุ\›ขRีน๐^™/Z:็๔”’aฝธ๚�ž\P–•aY5ผt๙<รzม� S พxnc;:S3่)Yยฐ—3X_cธนCœ Q‘FkEฟ?ข๔‹า2,)"ษ2๒HJฆXQšณ0 ]ณ฿ต5าƒqžปห%ฅ๋p@isoi„ไุ:g้Œฃ๎—ฺภคjJฑtม3ิ’ฆช่)ล๙^AŽ@Z๒ ใˆ8I๙ๅป?ๅgืฎqฒu†,Žiœ%•’ฃeษtพ$๖‚aค(ต"‹็โˆ…T๔ฃˆ ญฉŒaูดฬšŠ"‰iœgR7จ��o>๗� t�CG q6@3ล7ว8Ÿ"คG่˜“ร’fZ‘G ค)9™.Xฬbึ๒%JDt๕ํ|‚k็TKBโUŽYึx�ภฎ[b\ŠŠ_W$–“ฝ%o฿,Iถฯ๒�ู?ไ•ทพฦ_�o|�ซ|๑ห/า_๐ัcพ๓[‘ไ\ฟuŸsปk�ใ๔M^{๓9^�๒ |๑/๓าŸ็๘�‡~๛โ&๕ใป”ใ3��?๛›<ธ;a}Mp๖สdš˜T‡๐Dภ� #๕’8 }˜ ค,ถFŠ\ŒpC0�ฬ]„๎ˆ#�แjJษยญ�uเฃเค5๛a7J ~v๏$ุ%ล ไยsฮ^Jัi�ร%ท๎ิT๓ี5dบฅZvิmŸ|| ฉ œท("}ด’†ั๎ฉ ชใ=ี’วx!ผ!l5T'$‘ฆi5�vฌz yโ$CF–Kง3ฦส๐�ฯ~มIkงฯฃฬบ–DGิMƒs–ึyสฮะรฌฎจššาZฉ้ืะmหดฎัRP6-'๓หฦ0ฬšฆEญnไบ346ธ…•(<PB"tLR-M๖$’q“Cๅ#๚า l‹ภำ่—๔๐�ูฬP(โv‚ฮ,Hฑ๕‚VHtชWฅm๐๕‚ส:–jHOCงิN O?ีAQถ%qoE“08ตฦ๐ิ6ฏ~๑๋llยฑ-รพV(v•"ศœ2าHนšpปaฃš๊!�+|Wโช‡ะ-Ag˜ใ๐]Eฒ๛ ฬ�MyŒิ‚E9aถ˜3ป๓A9ร}v“ล๗� ๙้Uš�งผ๚K๊k7หCt{Œ๋:Z฿†•U’เผฃ]L)ั\�9อ/~€}๏‡ฤ‡ื‘ใSˆ๑SAษ๖O๙ฝณxgpฦผ๋ช ๏Wฒ๙ŠŠ&D8|eww๘jWญV6!�ฺ๓€�๋๘˜โฌ‡˜�ƒ๋Zฎจฆํ่š†ถj‚|ผš0ฝciš–ezฅON&”ๅdฬขjะย`:ƒŠ ขHbฺฌ™ำ–๛DLฉS^�1ํษ/}๕๗x้7�l^|…ผะ(jC?7�Yฎ ิฤ$0แฑ๕ Q6e&Qv๑‘๏า.๎a]D’ฏc๊>;…ฒG8™ฃd‡PM“็ ึi\J‰u%ฃ`ิใฟ๒Q<ษธ�œ@๒_�๊m>|๗็ิeึํสำT%ฆ๋X฿Xง—ๅŒG#”Tด]ร|6�Qฬฉg7ษG}ึโˆ4่5-ำEE๎-ำ�cŽ๗fฬๆ%‡ณ9ปOe0ฺข๋,ํช�0MRฬ*žgW ๗ถณฬส–,HMวx Žbดึh�[๓yลhุgmXp้�Sdำ~Xถ”วKžฆ ณEE/Oไžถซฺุ3i[ๆฆฅ๕{๖–ฝ(gZuTU‹@ฒl;๎M็,ดยG1ญX!‰๓œXวMตฤXM[6�๙์.-ƒoQN๖4ลFฏnYัsผii#“Zง(a๑Vะ9…ŠRโ" y‘QD๛ว5๏์ฅ|ๅ๋_ไ…ื^ƒโ,ฮvhแ‰�œ““cn<ฌ๙ฦWพฬข,๙๐ำซผ๕ฦ �ำ๔-66bึ7FŒถcค€_|๏#ž�“ž�ใŸ�มŸ:อท��ฏัUK&Gฯฟ�,BฮภU+#ม\cรไ,Vm RฦHi๖!r วท'ธ๒S๐ ˜&ค`|ŒO"6' ึA ม5ะแ๋G @!\|f*E0]1ง=ฎmะ‘g�tสล—Flžหฉœๆๆ=ฯdฮ…~๔ผ/HำภžN๙๋%Qณ\–ดฦฤ๋›�Œึว๔๒”XG,sNNŽ8žอ1สs๎ตsœZKYOk‰ฆ‡Dช˜ลมcT๋XL;&sK’jา,ๅู—žกnPืK’�`@’คม$h JวH)Y”5^h๚yFi$เœ กีzคiŽXฆW$ฤySYยม๑~4ญะ๓†gถ{Œว$%ˆ(Rดไจn‘b๎:๎/k�*N J9์ ๓ฦ`$ธH’ฆำฆฦลšฺ‚ฉk„qฤB2ศ‚vnj๎๏{วอฆcR-ูฮใฃก7�วฃ<ฃPPท†ืทท'ัOg้œcฃ?เแ�C�อ๗�Œ้S—ษ‡#FIฤZQะ4}ก(—5qฌฉฝe<00ำ4�[,8จk„ํจP๔’”5‘zฯZšโ<จ�ๆoฝ๒�ํ๕P์!5�ขTA;ม๙ะ�ิ5 ‘_ฐ๗่ท๎6์œฟLฟ04G๛x๒๕’จBไ๋จKDˆๅ!�Gฏแ๑xcต3Cวดเe…—Šฒ4ผ�`D:>ลฅณ�ฌŸ>…๎ํะอnแบำ.ธw๛฿\rfw‹ว๛ผ�๑งผ๕๊�xm›ๅ�PMะพๆ๖งw๘๙๏๐า8กน๖6ืฆ๋_x…ท~๛[hQ๒แOor๖œฅXำ`—ุๆฮu83Cธ9�-2 !b†`‰ˆึ„ฒืMภp!ื้;ผญnk;ั…ฝทmมแอ/"dT โ>ศ/R„ށepตา€๖ˆศƒoฎB*ม`Cqๆ๙S\yuŒO ็)wnM(†"ฏY�ฮ9�ศ๒่˜� O”ๅx=ค™์c๋QfฑUG39&๎็ธzJ3ฏฑMGล่8CIKS–t• Š]9ง>9ฆk*vฯm๓ฅ—ฮณ๗‹_๒ูGท่m๏R๔ืศดF8Aใ m�า9”๗๏ˆญฃi๋@i3ซ4‰/ถiฐMKฌeUำูŽชฌ๑Mปj‚jV2ซยŠ๛าึ1,RrำฒกE็=ข,ง๕WฮฑZc๊†$ŠhUBใNลฎDeโ8&“žส–-กท\ คทฉนlฑˆ ข8BšŠ…Q,EAUœบฐหw�๖?&ึ~ฅจฐฺ๗ฎžชซŸ2า+*˜ZฒmˆŽฉU ฿žษZvIU.๐Q[�Fๅ�Tณ#ฤอcส_�แ๖/฿%ijzฒ‘ฌeุ8f:™ใUC�ย.qVํฌ3ผ๐4ล O:ศP�[ฮh3RZ4-��Mาำงgv9น๎'?E5ค_DึWต ๏ &ธ'*ทZ9รW&CVฎcxฒ๗8gqฦ„บฑtM๓๙$Wา9<ม \O$๚ฐ๋ถึSW ึ†ฉ<เNร”jฌฃ๋:�๊@๕�ก”ย I‘gไYฤ|~„m่–™฿�+ๆw~ยไ๎/™Oact๚uฮฝ�{\|ใท9u๑ขHc�๛คŸ�…+�ใ�%ฮ,zq แๆ่ัed2Dธo€)้Ž฿'ฟŒ๋Ž‘ษ)ข�6พฺG๕/ƒki�:qึฃ^RŒ.bลr๒ˆขˆ0Vใ(M�๚5uแsณฦญ�R! คDhE���ฟ�\๛์*kk#แB%1]ืqๅ๒%žฝ�๔j฿oX.็ฬ =ฺว(ษ๖‹ปฌฅ’žฮYK )๕’ตแ€�; •ขณ–อ3<�ฦW‘2ขฎ-Rง z9Jb™5m�รtV3่ศาxu9H!รs?�Šฐeห — •คm[๒ั:kmร�ญ๘Ÿ>ขœ๎้ภ$›ฃฝ"จฅ๋ƒyำdส‡หrโขVŠฦ…บใ^/‡"ฆ6วMหฒ๋ธ3™1๏วฯ๘๐�Xn๒�wฆฦw ŠA†]�วด-ZI“}�ปQr้โำิใ๏~ฤ•s=พ�ฅs,๗ } J๑�Oฎcš‚ืwึ˜�ผสm“๒�ฏผฮ3ฏ๔nLyp�6ท>ฌธ๒�:*šโฌG’R:B€ิ)J{P+ญŸย>F๘R%ศh ก ำภ!gผ2ปต ืมึ`ฆะMWำyส,\dT๏มM๐ํ}„{ฒHฝยะแ�฿>ฦ73ดœฐฑฝว™K0�‰xฐ_q๛^JW' ‹Ž๑F๏Qฑ†ofิว๛”‡{H‘ŽŸTP๖dj ็�ฺšL�?"ํ2Ÿˆ‘๔hซ0'จl#ภ†~�!{ฟธหญป7ุZ[ฃ— 8:>ก0E?�'ส-ลz%L}Jฉ๛�ธ๛˜ฯฎ฿ใ๚}~๙มM>๘l_~๔€O๎Lธ๕ธๆฮใ)ฝ4ec\็9n>ๅ๐�=ช๕ง^zSอ‰1u.Eุ๐รJ>wซ˜– ‡œmLืxหชขิป•c}%๗†C:�uฤ�b6ผH�บ‚Z�Z5ฤZ‹]มgบ.ะศผ๗ิu@@HฺถA6ว์๖น๓ษŸr๏ฺOxp๕'=ผKื8๒อหl^� [็_e๗๒์œ™4O๑ถฦ{ƒ"ตขๅ—฿แ]‹oงtณ[˜ๆSัอ๏ใ๊�ะ5mJ0 ภโ\‡ ึ,ัk/ ฬ fq5x.H้jH'๛hท n Q:ฤKbJjœD' ฮ*.})W\zVซ D€๎xม�ปวƒ‡ศ๓ !#M#โ8ลv'UV+ZฑดŽ“ถ#VšชณฬสŠรe…qŽQ‘aดโaี #๐ขCYรธˆก €žRHๆ&$dขXกbอlQฒฆ%‰œฯ Œq”ฮก=ไ^bŒgT์-็�ษ๗�3SmžA8รฦZซนT”MCSืฌe ๔ฌe9…V็ุ ๑ฑbคcช.4gF:˜่ข4กŸdจ�ร๏ผ๑�"Sด๕�.pํ!Bวธถล5GดตE' ˆ˜^ๆ™LK๎�ญูืคEM;{ภม�หEL*ฃ!ํผม"ฑ> �_Y“b•๑A:,‹&แทs�๘๖ฏ๓ตฟ�๗I‹”ฎ๑๔‹฿ฮqN‘FPW๏]›r๙สs”UษŸ�ไาูuพ๑…5ดซiหJxฎ]ญhjอ‹Yร๔ม๎ฅ|แืžกื; อ๗ษ มpยhใๆd๙ ฅO€*]CF�`>se8ดล*ฯซ%ยีั]U๘64y็>ปฤ›1�4ทDo[0%ฐ™‹{xsvโVA3วw%…ฟฯฮAŒ@๔…kf˜ล!˜=ึwRž~%&์ฏqxœ1่wŒถ‚emส20 šล”ด—แญFKƒT‚ธ?ฦญ: ฝHืเŒก\”!่๕Sฒ~ฌŸใ�*๛ฌ<ฯ๖8;ฎพ๓>ๆ$ร5T’!%,�–ถ1ไฑBŠ ๛ฎฃu๏@yG�5c๑ึ ๚ฦ:า$.vcˆWฎr�u(โ!BI๒^ีดค๗oา“-yฌiฝ ฉjb%ฑJaป%5R„ƒฅ๑$�งิึb๊V$B โ๏ELุณv†ฮ;ผ๓ฬO-๛l๕ส–uอV‘’%)ษšๆ[ฟ๓๛ไƒ๕U,j๕cฅ ?‘ฬƒณ{5ป@ฃ]เ›ฎm๐อcคŠB4J๗ษ๔ฮhซDท$�~ว?๚c>๘ำw8˜NุะMวไ`Bฏ—’๖3๖สއไล[ผwจ๙ู�ŽŸ฿ญน�๐„Ooํ๑๑ํ#๎>:แจ”\;ฒ�™Xฎ>œ๒ษกไำCฯปทฆ<~xฤšomษ��)gsึ_x8-‚ฃ[Gท‡P้|ˆƒต˜'ŸLัซCYสUŽ9fฤZำผ%ซ?เ๕]n„ืตmšPY ˜.ิใzoฑaนlQQB[rp็mฎ�๔๘เว�žป#—ุz๊M.ฝ�›ผ๐ๅฟอำฏ� gฎผย๖้ ึฦจภ<:Žˆฒฅ,าืP�ฅ=๚˜n~ๅุn8\s‚P1QœƒŒqŽPด ฌi@๖๑fŠฬ/†๏๙๎€x๓ต0mV'tูณ�นq•๕๕mU’.ำT'$�MtR`:ŽtPV“w”ุฮj๓๙%ง๋ ยCg,�๚_�kŽ@f๓9ๅb‰Ž4R^x�y�m�ะู๐5+๋†G‡3ฮ]ฺไ�K็YืžขHธTHFqNm๓�GศฆAIM}ภso}ƒ�s็จบ #Ž:Šฑฦ†„‡Ž๐"bQต๔zรแฅ‚A1H์ฉqr๎วำ’, DLญŒz�NฟศVŸ�ปษว{ v†}Nฏ…–นฎ-‰ตโเhฦQ]37ณึ)E�t”ำ%๓ษ4ฌ• $ศ8fูถ8ฎ RK๚Iฬqgุ[ึฌi…t wหY*้บ’น1ŒณŒ$R<(—๔ข '$"ฅg)†๐ž>ฅ๚QL”hŠ,ๅ็7ฏ๒๓�๒่ณฯแvO…ิ“DBPHAg=๕ ’Ÿฆคยณ,+vFŽmหq๋ศ“ญ#ฦZำZKช5;EมรชD�ำ฿z๙ปyฆฉ็3ผsdรuผ3ดGืล„_ ฃะ๒"ํcึ†– ฑWฌ๗X_[cx๊๛หฅฆศid๑๑ํDWa:ˆ‡;xcะYBฌมถo5๏฿œศ3�ƒ�ๆŸe� •*Oyx—ค"�;฿ฃ1‚๏•œ=s‘ฒ*y๗รูู่๑ฦู–zYโŒa:k๙๑�ถ=N_ใ๐ไˆ๙๎yพ๐ซ๋$ูก-kcxpห า|๖๖1ƒAมzƒk๐fn‚๐‡xป\jL7�ถxใฐซ๘YpฌฯCŒฬ{ฐชXํบ๐R dQขจx‡9�ฅก.Zgฌ#๔ฒE$ "ูU{คจlA�W%ฃ —^ณ\บl™š>7oY�™D%ƒพ ๛wืขค$ษrtoƒๅแ!พ›!าํัcš้๕ฌฅm�Uุฎ#ษ‡ƒ็‚K\ชˆธ—“X'ฯœ๊q�ฺm๎\ฝCฑพN<ำด!�ธhCฦณˆb‚ช Yุ,I@@Y6(‡IอYŒsH|0*•u�bšg"R”uฒv}xูิุฎ%c'i=(ัSเ“ ฃRŽKTKAiŠšุ{ฌส#’ฃR|]b�ŠDมฐ€Eชp^#}‹r–ฎ-q(2P[gทx๋[ฟบ7l‡3๖si9Hม๕`ๅย„x–kๆซ�mƒpK”‚ซ!?ถฆ9z/ไู›ข๕—1ํŒฝ�๒3�y็6�ฃzQฮไpNา?ลAพฮ>|�aอํฦsุxฆ(&U‡‡ PQุูŸ,[ๆUหขํจjAํ#,!&V9มใŽฯ๎า_z&ำ ญ{L~๙หฤใ]”๔(ฃ#๗!าแ0qฮฌฺจdxฎ๊0]๋•๑ไใ �ฆU6\ˆี”0ฎUYใฌรแฺ่!dˆ„Y‹”‚บฎ™/‚‹บmZeK[ppใว|�ƒษซ๏ะส1งŸ�_๙ฟฯWพ๙[\~๖ถOoำ๏'คYD,}๘|”@G’(ัDQิฑvF7ฝ…™แช ศใ"ฬโ>พ#tŒŽr”NBฆ฿LปภิKฺๅ!M[‚ี่มel7A๚%๔พฤ†ๆ€์์—นq๕STถฮFai�&ƒ๑˜eู„>{)ฑฦX‹๗(%qฮกฤสSเ}x้d˜ฬฝ๓8๋y๐เ๐o��ƒCšถร;Oั_็ู�ูโล็že�/VMmžูlสัั๓Eลล—ฮฒ๓ิแ$ฃฤ“ ’ญ^Œิž�ำlœฑนณษ๚๎%๋,U�ข” ์ ฃt„”2ๆNฒ([ึ๚}ฒ,g้บฅ4* =โJ*œsฬ–5ร^๒นฤ๎Y]%ŠcN_xšอ^๗n^ๅ๛ืณั฿เฬ0"IcฒHก”คฎ-ี|A‘xr6aัต๘ฮ€iQฆ&Ž$™Q(M‘ฤLššึ†bฃ™1Tญๅl‘q�.hฅฃง– -B5L�%M9gw8ค๔R :`ึถ’ˆพމ=leู ูjyฐ\๐๏�โ99™ใŸ�2ฦะt,5. E%�[Nญฏq็dยจ(‘ไNำฑึ๏qi}„W7ธถE+Ee ฦƒ๚วฟzแป๋ใ>BH’ฌ@ชํ็$y/TฉPย!๕˜4ฎ‰ำˆวท่%)ล™-๚[—pํ‚๛ZTืฐu้T๐ Zใm…Ž=ำฬˆTัV‚yY๒ฮฝ„Wฟ๓;<�ล71มV‡๘ๆ1mฎฉ๕�์>K—๓ม๕#ถ7w8žอ๙้ฯ฿gk๑ีg3–ว3’Aม|๎x๏“%Wz’ญใ\Ÿถ—ŸSฤ�„(ฑHูPฯS๖Tผ๕m—%Ÿ�๒ˆๅžฅ?Žˆโ ฮLC พ›!ฃัสœฆ๑fฬฌ@G•a๊ธzฒ"ฃY„ษ*๚!zY{โPถq‚ิ "๑U"โ ก{ธ…ฃ9Yb—Žn1่˜๏[–ำว{&๛1ฎkŽ๏ถ<�ธโ�/ๆ�:ก™u8!๙ล ~๘๓ŠลRpf7#KIVฌ$%ๅ�#–ำ)ฮ(|}ˆํ QพIk ฆฉศ๛#ขVฅ)ŽZhฑC!ฐ(๒ฌ(T้ Ok=ฑRar3 ชžำu EไhฌExุ์gHo‘R+…ฐ-’%ž๓Wžๅๅ/ œมถซฺJญƒ”พ:œ„แฝฐ’ะ…4บชE2@ธ๔ZhตŠG๘ๅ]šษ ’b ืฮัqŒ›๏s๏‡7™=|L?๗๘น%Y[็ง๘ƒ›{�-่๗2๒,'ฮdi†๕%4ucX–5หึ€—4ฦใผค(zx4ฦ๙เzถ-�ดL]ŽžV๔ใšํ็ฏฟ�7้m์i .8ะฅVแรevีฦฅ” d0Xฯ�Jๅ'ฑกะ๖ๅp. X…THญƒไฺtaาๆษdฮ]jX�ถ )ฉ@Fxo�˜ฯ�๒_r๕รŸWพ๙xใ›‹็ž๕>J�Uๅง "š๗xแ๑๎‰!FDq˜”ซ}ฺลฆ &สฆšาL๏ ฺ=š้-ขมiขค@(h8T2FฅปศdšGx!ณ ฬ๒!R๔เy๖g(wBพ�อ๔€kw—<๗๔YfำŠtํ‰ชY,C๙…pซ�ถ ฅฺWฉ๐ฺe#จO”Œ(I๙๐ฃ๘ร๗วเ$‘Žˆขˆ" �ฏแUFk$็=ฮfณw�gY.ุx๖,.wฌE’Byjใษ!sF…&�8อpผKฏฟ ธ"”๔ศธOƒRI„ฤYรlQ#UBžg!๋ฝ’ืฃ$t€ฃญ๖ง๋Xdt] ์u]‹3vลSwXำาŠ”x�+y็ศ๐๊๎;รˆูฒยYวฉ๑:ส:\�แhนwtฤbYcชŠฮิ˜ชคžOƒFณtšhญฃ๒–ฺB9[bซ%นŽYZG*ใ4ขJcj)HโัuฤฮRืs�งต c=ฃ(ยvcฉGšชฌh%N~v�#�๙/†ธ๘2�๎)ŠHโซ†8า(ฉจaศHc’,cซศศข˜,OIยค3ฌGšณYJๅ=ฑu\;™PD’XEึ5๊๗ํู๏ึบ*4#IY"TŽHw�>�+คฐแ@%ม–' ืb„p�~H�‡d€2Sสeหผา=‹–‹ฅฤ:‰h็dฃ-ฌซฐๅ,�4#x�fร"พฤo�ฏ�BJ์โv๑8"ํป<@ิS๐งS�๊ฝ=ฦฃว๓–Oฎ�"Qž7.ๆ 6ื–ใบว‡๓…พfฐ8เำใ$ƒgžŽ‰‹ˆ4] ี1ฆหx�งs^~=โฬณงฯลT•ไๆ'1m1�XjฌE บˆำpะR�ฑฏ๑�#eิฤสฅ๋บ&์/e‰HR„r/ม9ีฮจ๖gฬึ˜๏%<ธš1}๓่Cร�๗%๏�ฐไง�yษ๕ކ๙�ำขจˆาz{_87`z4แ�๏เšš|k Ex๏จMวคชั‘ฆว˜ฎฃ๕žว“ yšาXKS[’Hฑœ/้ƒฑลซรฯำ9Oํ๏ฎล—๐fIw๒)๓;ฟ z�.ๅƒ1฿ฟMu๐ ๓ป?ก<ผI3?มทG่tˆ 7}ˆLzD๋ฏ"t๋5M5!๒วด‹ค�oแ๋ŒฉIึžใแใ#ฺๅ๋�‘J๓เ๑‚ั๚6Qปฯคฑ{ชวbZRู”ตa†5๋ยฅ1ไ��บ5ฤWCนโ†ษฬ๙้�Š๏๏?ลšฆชฉห’บkIฒ”+—.ฒ9‡ษึ†h ้ZฆหŠธ๒ฦำฌ๚ฌE0’d9a-%‚(ษˆth๑ Xโ>2Šฉ–Sšผ่ฃ๔สl'$�‡K๘ขlะJ’& ล=Jk"ญvๅ ๏%Gำ†ญฝ"E‰ฺ้ฯ฿ึY$‚yี๒๐`ษSgฮ๑ด=ไ—ท๎๐“‡3.ญฏฑ–G็HcI ญ9ุ;แึมถชึแะดฮ"�e0ฝ๑™ๆdฑ&KSโ(โั|ฦ8JIŠˆikQ|โ˜{Gืtฤ]0bึCJหF�a๑Hิq#Œe2_r<[E1ว�๓หก‹ฟ๑สS8ฟ๊ฆ$q‚๔Žต"ฃ๕žยถถ ุบv๚_�@ว)า8†ฃˆ๙ษ!ถKศz~1g~t“รฒ‡๊คjIkRค[’gQp\WS\m๐QDีถ�่�šพ�7x๙+_วWG๘r™m"�ว๘ๅ=< 3›…2ฏ๘๔ฑเฬู34mร/฿ปŠ’Žo^N่^9n�mYภ—vršฝ๛\ํ2ฮผผอน K้ -ธctา็๊‡-*Y็๔…š ใํ>๙(erุp�ฃf™†‡ฃ^โฬ า+|3AะCDzํHฐญฅ<)hๆำ๖if9‹ร„ร; ฏv\๛Yษ'?1|๚3ร๛?\๒ฮO woค|๔Žโ“n�‰9™d-78Xhไ`ศSฏ}๑ๅืุบr‰ญgŸใ๒›_โ้/พส…W฿เ ฿๚u�๘๖—y๖ญทx๖ญฏ๐๔—�ไส+ฯ๓์หOs~gฬ0ํใ—–[Ÿ~ยน๑”ํq๋JœWh ณ:ึ๘๎˜๙d7†$“่ผภฎaพ่h๊’vฑ m+”™ขฤEŸ(Š�gก)�๒ย™kฝˆฎŸ0{๘]๔8i,ฝ,รHAšค4mวข3Z3่h› ™FDค[™ฟฌาDYŠk;๊ฒฤJ…—�v0;!�ฟฯzž’ŠmKลิฦโš lE‡F๘ŽNฦ!›ฺ.ร๖่ž˜ฬ๐”,;PDŠQY๊“‡&ฦฐ�‹ษ#I,ร�e]q๊ฉ ผ๐ฅฏณก\GXM฿Ÿ3ัระป๑]`�กzA:_�ล9‹ญ'ˆ๖!ยL0>Bv ศ„h|]„#L ฆ„zส๘๚ัีเ๋€ลเ�Ž�ฉ็ษวง)๚๋�-ขœศ๑RฏัฬกฒuœN่fืฑีQพ…๓)ึฬ2Aฦ=๒๑sฒ๐€3g/ ถXฮK&Uฮฉฑ็ธสŒทษtหฒV�~pˆ A@K0~…DCบ๊๖๓+ฬญ1฿��_๒๖;๏แ‘œฬf”U…ฐตตอsฯ>ร H้P• สrษƒ‡{$k.ฟr-<)–แbยดชFŠj9วJG/Jฐอc *.BPwtL–f+๗y๐1(ฅฉkรtYำฯA!J€‹๋‚ŠฒXVิUร๚(๊uH)‰ขฅŸะ+แhVา4gฯ๎0์๕่?เƒร ?ธ7ใน๕5vGq๐`Hดfk8ๆ๘๖]์bŠr--กZโป็ศ$FF1Ež“j‰๔–ูฒฤKอxำฅŠ4ญˆ™๊X:C๎ศˆสyŒ—ำ~์ )Iโ-1=<ร$ฅฏcถึ๚ไEมีฯ�ๅ�w�Fผ๒%์๚‹งฉkzใ>(Iชษ“˜Cำฑ�ฯiอดฉ91ส9บUห™๗ใ`-Šƒข้รE'‘๕/�๎ซ฿���EA)„"tŠซ๗๐ฆฤt[—$1$ƒS่b€Ž5*MศŠ”๗*p9‰›า G�,)งKฒ�.รอ‚XTˆ8)qmƒsŠฦล�ผ3ใฺั€ฟ๓O�ท ฦ๋ธล�P ุํS?�฿9„๏จ—Kค)Y4’tœฺ�เฏ��€บ1ผ๚�i;ใั‘เ๊–ยยS๖ˆ‡๎s/.ธ�โ.q"X฿Œ‰3ฐ�”ดhxtฯr๏VอณฯsGJžณต�ฤ„๗%‡ „ฑ Š%ข;ใYL2n}ุ็—?๐|๐Žๅgู๑ษปŽ?Jธ๑Yยต�}๖ึน�0ใ๖ฃ! {Ž.:…n’ื9u๙iถŸy‰s/ฟฤำ_z“/�๖ฏ๑ยWฟมณo}ƒฟ๒ž}�Kœฝ๒2งฯ_d}}‡๕๑A‘E11Q�aqฐวรO>เเึ-&ทnq๕ว?็�๏ฟอ�?บฦ_�งŸ๑๖~ยฐจx๓ูm’Xcฌคzx /S’พเมžใัƒšS๋5G๕)zกถฉiิ€RอKš6Biะพ"Ž3Tึ‡Œั๙ื-ˆ๓ฏ\ฺแฅ‹›�ธSr๔๘1rs“"ฮ0ฮR6-๋iสฒkY–EขQึณXลŒ„X™W”"ษSTใŒง)k:i–2o: ƒๅœB„o๘ฮyŒh�เmอค์๐Xน=ำB€…(_#หrœTxำYีYŒ()่็1ƒ^/B•#ฆDป–~ ‡kK,’ฌ่ฑ์–l์l๓๒[฿\Mย••ฌ๙๙ท‚mเc��*ิด–{˜ถยท%พ>&qฅ$ฎ› ณm|ปภว9QDSpใฯ>ขi5/=�_๘ึ—xjkฤsbJT๎srrBSฯ™ŸS–K๊ชขn; แuำE1ณส2ซjบฮ+ษ๎ธว๎ฉmพ๕ฅ—๙‡฿~ƒ7ฯm3�้/ธ�๑ฑงฯp๚kŸ^o@ืYา$"หƒQัtZGกKฅ!ม…h„�?ก+\ฉ@.ณn๗r+็xj]YI๏mืา4 u]ัYŽRl}ฤ๔�ฯx๘ู๗x�/�GZS๓�[ฟลซฟ๚๛<๕์หก-K�^ป*ัh'เƒš$บ n๚1ถ>av๋วt๕”๙�–'w๑ํ!�Y๒ง‰[aภํฐ*#e„ˆวˆ�qแJp็=*�$อ๚ˆ(ง]์๕žยF๋DQD[๐x๏�+Œ†�KfUฮ`˜าถŽ‚อQBUU8ซeำ8H๔A๏็‰๗Q8iC;w�็rบะ|�๛?เรฎล1…[Eเฦk#.œ;G+ค€ฎญฺ้–“้„>พสs/c๓โ:าz†พ$Eัี-�ฒfj หrึ‡๋ม\๗Qq๋ ึyŠb๘y๋XเžGXk)ซ–ม `Pค€'N{XปRB\ 6ญแ๐xฦp“Faฯ๏#Š“!W(„`�ธคm;Nm๔ื7 œš�ใรฝ~v์น˜็xปBิ+NRฦƒuๆ“ ณชfzด‡lช€>UmAจˆ™T์ท†8’๙ ฯQIBฏ฿c๊kาจFgX‹ึŠ„8Š˜YK_kคQ‰;ฃuึดยv†ญ(a”Zœฒ �๑?�[Ntฦ๒�%ผp %ตwdฮ#[C'%Om3i[*cุŒ4�"็ณ๙œฃถล9วดiB$-Š9hZฺถกถž^’าO]‡๚็๏ต๏ฎm ฉห•IรiIŠu‡x3EE๑๚Sะ์…oR•๙รญปฐถณEฃ]Kฝœฐ์"Ёย7KŒ ;ฎถ<ม3ŸOy๛ชแฉWฟอฏ�ญ฿มVว˜๙]L}LspW/๐"ย�–nv‚ญ[–]ส/o5œ>ฝM’ฆผ๓แ Z'นฒะ‹47r๖ีlฅš๕“›์M�ฯึx๖ีm’TRd็g$๑*YวV1ทฎท<๕ฬˆ4~Œ[�นT7d0p๊™/นw}ษOว�บนร~๑ร�ล๓๓w “r„Lฯา�ผศำ_|“ฟ๑M^๘ฺ›ผ๔ตWน๘…+<๗ๆณผ�+_ๆๅo|‰�|•ง_�O]บยึฮ)†ร-ฒ('๕๑ ฎ�br�‹ƒ}ฎ�โ>�ซ�ยโ๑#n}xƒƒN๖wฎ>โมอŠรรŒ›ฑ?ณฌG4โ,“fLgยOŽ๘๖+1WvF ํ”f1ก[œP-jœReqVrธ฿1^หX?5โฮํŽ„๕QADK>“ฦ1Iๆ:งœ;„P$ED่›Rx[c›นํฒrŒtอ. ธzkฦƒG‡0่Sw“e0.หzต๋ฒฬgsฌ3`ฝAดค๑ŽrY#œaQ–$yฏ รƒ1๔•$?ูงภQdhMฆY‡.๑X’ฆ=ฒX#!R•ฏก]K�ีHoPฮ m‡jž’ƒD“๘กc6๒๐�uพ ฦ%Xฬ็x4ฝ4e้:ึทฦผ๒ึฏ€‡ิสg*/Ep ‡ฌ๔y�#ข4์ป…ภ5‡ˆจ€๖ฏ |ทDz‡HvpถฦเQq๏"r�›๒แŸ1น๑nฺ๐ิ๎/์๐� ฯ๐ฬ๙m6ฦkDqBชc|WฑK๒Xกผg�/ุษ็ึ .Ÿ�ๆ›ฏ=ฯ๏~๛ห��ฏ™oฟ~…ืถธฎณ๗ฃ ์„โ™ณˆMฬนฏ2[ชชฆ฿Kˆดขฎ[ฌ5ฤฑฆmฆึyทณ…‰ั{1กๆUฌd`)Cำ™1–บnh�–๙|Ž’กYซm[บถ#า %=�bŸฃ[?แึ/�ˆ;ื�ฦ ว+_�ปผ๙สๅ—ฟAฏ๙Ÿ•ฯภ 0 Dท _ำ ่พA˜}ฺๅAPTŽิ1�”่,วฃัฑB+๐ฦ Šำ(ฑ„(G๕ถCD3vA‰ป"O"าv ๑เ2ฆฃ•%ษถytTฃดfs}„้Zๆณ �•dIยdfXxg˜ฯ ฝaฉ$qฒ๊UgU‹*eุ]ปpIJ!•Fˆ`gๅา�ร๓‡|๔้งฤZะ–U ท)ล๎๎.gฯœ"K2&ณ ๓๙ %๖๗ธ}๗ป/'=ฝมHzD’uแ=]ูะ-JvF#ึ6w๙6"Jยู๙ภ‰`ญ"ต,kšึา/ ๐ฉใ0กหpH;ชLงำ%ญ๑๔๒8@“dุ‹KฅƒัMG(“yลัคfk}ศฦZxFงฯ’ล}z๛ืx(5๙แ�iฮlzBัK(๋Žึ'TF#QTMร|:มy‰ŽCKๆ่ิ9lาg-M1J …ขมณ0 ฑ‚วห g=ตƒJKRk้)อq Jฌ;่�.8…1–uู๋ฬs6๒Œ< š๏�เๆวo�fm—ลฺ:Cีิขๆฬh@g=>‰ุ๔P�3L3N๕ œ๐D*ขรSฎzถ’”ผฉ˜T%‰qŒ๒)5๊๗ใ…๏ๆ x$ฮดใบ*๊กE…73”0x็ฑ]‰oึ Lcฑณ;ไรm9eน์ศzE‘R5๐๘ฑ!†^�aKชษืj็˜ฮ�ป›๒ญฟ๓ปœyๆ|=วW‡P>BฦQ’E1อlAs2ฃi:Ÿภกq้สEผ3��ฝkดV๐ฅง3N๏ฤ�ูs�ธนวฅ๑€๑ไ3ีg/๋s๎ผ&+2„hจCR„�ค๔s๎_๏่akฃล›){แ›>ส2ุฒไ้๚๏%๏ฝWก๚ฯ๐โ[O๓฿๚ ฿๙_�.o�ส[<�ฺณœฺํ1ศ‘ๆ1๕๑]บล”ู�1o<เฮ‡ืน�‹k��เท?ผห๛?ฟมอซทธ�>z๏รƒวD๙9T๑ฒ8E็ รs_e๛าWุ}๎kl]�"�—฿`๗ูืูบ๒F็Ÿg๓ฉง้mžฆีใำ็H๓Ÿฝ๗พ๚ิgฒ%RD "โมก"dา#mาฬ[๒X โN ๚ู YVs๛ถAJล`ฌhญ1'า-icŒb>›ใฐฤ‘ลt!,ย6A>vฆYาษ˜"qผ|พวฃ‡3๖ฯŸ=‹ŒE8O?‰iMh3�ฒ!๏…=ุ|QbฺŽfูเฤJว^)Zk‰ต }pBzb้0m$% าw๔๓ˆ(JˆฐDŠึ บฎ#ถ5๋ZZโPช#:'้<,ฌฆถŽฆœcm:หัyŒํ,Yšฐฝ6ค’แhWพ๚kaสv๖๓(T™ิ_๗d?™สY9lxHช8 Fถๆ[O๑hฌ5tVS>xงRtฒŽY�รKO–*~๔‡ต`๏๚=�มนwB฿uฌoos๙�)^นpŠWŸนภ›/?อฎœ็Kฏ<ห[ฯŸใWž?ร›็F|๓•‹|uปฯ—_|Š3EDwํcŽ๚s�๔gTo"sO�ตื)q�:|ฤbx mGฅยšฃiZ๒<'‰cสฒ��p%V•ป]ืโฝ��L›2<๘ญลZ2ๅ�#}ุz`นœcŒแd2แ๑ƒ=>x๏'<ธ๗.i์y๙ญ_ใ+ฟ�/8๓�—I๓๏š๐R›k,tพ:S†ฉูึธ๙]สใ;4ณG\�+D38�,ฮt‘ๆ สฮˆำ•o!โ-ผŒถWฃ†OำM๎`ฺ็%.ๅบๅo@บลrZBwB9ฝE[U vพศษ๑cšfย™3—qถมธ๋#†�”ใ้’$-่1ำiCฑ6 /šฦ„Z].<xB„฿ ฑR6d˜ฮ�็%9žjY๑����{๐฿”ฬ—KTั๏๗xแูง9ณณMG”‹ล* hนu๗>eี๒ิซ‘ข%J$gฦ๋ŒLอ�Gว,OfDี‚�mz[WA…๔๕Šฆ๓HLXwน0{๏XVaU’gqhภแ0€pQ3ฦ3]V๔zด#DH3๘ลญ"œBJ๎๏Ÿ`Œใฉ3กMJ๐Žแ๖)ฒ$%๏&|x2ๅ“ปฒ(็ิ(%‰3๊VP๛œขทIš๔ัR+mำฟ๐4[ใํ �7 žCJษw^ำิ ำาฑ`yบฏฬน^Gt�kฌƒŽ(“8$BฤIL’๎s็zCำฅœฟ8GG๘iOภ#hY์�ฟ�๏-๑ฺ�ม๛฿๑๋ฟ๛›œ?ืงศ +งฬ๗๖9ธ�ˆืs๏.�นq๗ฎฆiฯ2-ฯ!ฒWะƒ—Ÿy�gฟฤ™—พม๓_๛-žy๓79�๒ฏr๑•orแๅ/๓โ—�ห/2ฺ>ลฮ๙งูy๊Yึถw(๚9Z <้-]Sา”%�Zฆ“cผ3ฤZ1?9โฦ'๏ฃฆ๓ฺ้)ดฺ‹ฦะ5ๅ*ซ�"DLœ๗(—%*อน�`ŸษƒCถฦklž๎q๗�‡-๋ร;ขt ฅาT $ฬfย‹‡IยZฤ›ˆS‰๏&จ8งงk^9;เเม w๏2\ctPชU %iฬ๑๑IpyKIc:ผ๗”uรึx„ณ–ฮvk �ฅOGค‰หษ%กŸDิŸทkMjCkVˆำฎข3†"I(]‚q–Q/G Hด$J๓ฐฯuาwก๊4J8?ฮI“„ึX†ฑ#อ3|”EžWพ๖๋ศ8�k็น1)ม๊�6&ศ็Ag ธiƒ”.$2 š=\ตน๔๚08y›e0Ÿecl๕gฝ~Ÿวท๏P›[ฎCxO4Gว๘��ม>ํแ๒d=Ÿ#ๆ หCŠู><|ˆ{|„9>`๙๐฿y—ว๏ผหƒฎฒฟwH”z†›=๚—/ั๑‹<พ�ทfO…ผฟ‰–๋‘d4Axุถฦเ‘๔๛Z‡šห'ํqq” VRจณžถihšc=M]!ฅ๘�‘� hฬธy๋NŽ๎้—ฮŸๆ‹฿๘=.ผ๔ซAฎ็`Vญi*\œฐK„™"|ƒ๋j–‡Ÿrr็วฬgว”'ย‘ฆ ษ`Hˆฎ -sอช 5z>8๒M‹ญ๗B`mL}p‘oo>‡5sDนmKด�<*N8ผ๓>ีไํ๒.ฦฏ1ุ8หlบOีดœฺ9 พCeปด6ก?่๎3ฏ"NSWฅ4ฝ^@ ใล“Vึ๐�.5ฤMCr%Pแยบย{‘f6™๓๔'์ํํaฌ%Mฒpษสb.]xŠ๕๑˜,9::Zๅ๊='ณณฆโ�—/cงG8ฉู0 ฬ�1|xๅƒฝฟตหฦ™ ๔ฒJxt”าZŠ,ห‚!“p8ทฦัGฟWฤqpำ๋@` าน@ A�tƒ^Bธบ�ตย€ฉ†'เ ร“Š8‰ุZ๏ก•F้xฅ๒8ฦgฮ“&’๒„หnW}ีgFจ("ฒผ ๋8s๎QฑF6ฺ!ZQaHญง0๔9๊Z็ฤQL?NˆญgฟฌqYŒา‘"}D_%ดญ%"ๆeƒržืทท บiY๏‡ �Ÿ�้ฟๆ๖lI๓า[LC๚R!ˆGงšL+jo9ž—Dฦะ๘เเ#ร~0xJIใ‚ยTViค!ŠH”dVื$@l๓r๚็ฟ๓ฺwว#lื ดย™ (ั=Dฆ็ ูFค๋มžฦˆ์สLฒย๘๏R’"ใ๐Pขฅ`c3c1›`ฌCJˆ๒ˆ(q Sผณ�=ˆˆ6Ÿ็+฿๙ถYะอnฺั|็c\u„s’๊pŸzัโ‹ ฆmส�‰ๅย…ณ˜ถๆง๏~สแั„W.๖‘B0;๔dD์.๎ำฬ—|fbzgOก• —w”eษ�ฃg3Šไi฿NYฬWž]†ษษ@แ›T๐o�eหƒๅE�ู�๕�ฦฉ�๎ผ๗}๖jทƒNŸ&๊?G�๔ฌ_x“SW�เ� _ไ้Wฟย้+/qๆส3์\ธภ๖นณŒOข7“ๅ9Q’กu„VJ T$1mฉKผณ4๕’j1ฃž/ฉห’ชฌจห–ลlJUVTu(n‘ฦZหษ๑!ฦ �ฟว9y•3ล‡ลt-ฎ-Y,b”)ม7DiŽŒ šy‰73v Im ึ62†นๅ“[KคZc็์�:tš`ป m&yฤ๔ธ!IฝตT:[|‹ิ#p'"œ…86ผr)ง™,x๗ํฯ‚ั%๏“Fš“ๅa}ุOkIk็s:๋ฏ ๐๕’eUำ:O$d€ฐ4-q[“<บM!a”X!B_ปก#:™iAKBๅ#*ข^9=๋ƒToาง)dF:ศ๊ฑ์ cŠ8‚๒˜�ตt �4ฤ*ฤโ–Eิ๑ส[฿DeƒpZฏLlB…NkoC๛ุ‰๏lˆำƒฏB๏v2@ธ฿–จd„ฆCe๋a�z๊้Cโ�.Q>ึ๋๏\cร{๒vI”8Nรฒš0y๔€ฝGs–s&๗๎ฒุ{ฤแอ‡<ธvGทrใๆcŽn฿a~�˜้dณ5�๕ฝต5F["๊ำ�9C|๚)&waTสฮื~k“Yษฺxˆ’บ๎˜L็X็h[ƒา‚Tซเo[า,L๒.เO›บก\”X๚ฌtฦเVตขส7˜fNWํ๑่ฮปL๎ฟรึ8ๆ๕/~็พ๘ฃmผk๗@†i้B‡ธซอ#\๙๋3švAW-ภ[Šมฌ—!0ˆXกฒ1ยwP๏ใหcขตgk/ะ-ฺ้%ถ�ร‹5ฺ้=œ,ศOฟ‰žลฝ“๕๚คใKฤใ3(f๏�ภt3 ๑๘uึ66˜แ“mถถwฐ]‹L6ฑNัีGdล“นcฐึรKUY๒"ฦZOU5่(๔E+ญฐ�๊ภ^ล�`ๅ:_ลก‚Wญ$๖ฝG๛��ำr|t@'ก๘ฤ9ฝœKŸbะฯ–eโ{ย๑เแ3—_ฟHฺ,Iฌg๚๐ˆ“{๛XoX_๏‘ฤšณ—ŸfดพIiดŽp„�๚4+ะ:"NzซK…IA‡ฉ:ไ�ŸจPk:บUึZIศ œ ่bฉฆkั: ัB็9d4ศC‚ื9ดึธ•O็#t4โlฝ‡-Z~|ุ2ะkศฎdฑœำ๔ฉ๊š้bIo0 ŸD(&ฦาb–M�9Eด‘ƒ\Ikุฬ๛l๖ืhฝ`1)YฯG่,ฃ’อภิถ<ฦ[hfฺ้๕1*แ Œนsโy๊�ib-๘ัฯ?fjุh™p๛AอvฆนuฬfK๖ำใs[,jhซŽHZฺN2;"Q’๔ ๓ˆฝ‡\~nว่๘ื4่\pํƒ>?�๑�฿�ทll น๑๎_ .๐ิซฟสๆนg(ถN“ญˆSM”%่HGฎtธฎล;จUmƒํL]bป–z>ว4uYaฺำvด]v@Z‡Zืฅ*I๓Uๆ3dhฅ๔dEJšDH๏™Oฆฬ็%uY1™ฮyถq� ้ฒแ€(+ฺ่Š4‹‘yNW;”ฐุึ •$hDž‡–žํ‚›๗*ฆ‡%รAภศŠจGท8 ฒง–ฬงึ:"ํ๑ชืเบ`๐q�aฌภ‰˜,ตผp ๚nฮƒ�OJฤฺ:“บฦ”a/Xฮ็<<>A Y[๋“วๅฒกถ–~o5�9C�tไXหk‘$“‚ฒœ๙*เ'eŒ$>็ยœ+๐QŽšiำั๗-N'ฏะพA)MฌIฌi:vฅ�ก“Œชkpา(4bตNpด,มWผ๔๚WษืO4ฎ”กใ๚๓ฆูSญไฯ•มKJต2ุ2™0SDพํ 'jDqA‡ฤ`Cึใš ]ฌนy�๚คย/BงธฤI•ะy‰Š"๒ 0ŽสIŠ~จ•\JOำ:2Jo๚ร,ผoS…PŠค? [ำ˜–“๛7˜&CFฏ|›,อ่<Iˆ’•ห%Ug้๕๒pQZWฌsDQ˜ศ๐Žบnฉš–ฆmจ–%ฮ„์w5นNป8คkๆ์๏sใๆM�๙˜๗?๘%<_๙ๆo๐ฺW~ƒแ๎e„7x฿€RAWloO๐ฆ‚ๆ1‡Jึƒ*ะ๎ฃ„Aิท่๊๕ฯแ—ะtxใ‘:A/`–Pลio‹nvฬัฬ3<๛EtšR~Dำ ง_ป@ฤ๋ 4๛,yถA?ลฺ(กZ,˜ุ๋=”ŒXvฝPCk;โtL�Zา,&O5ำYKoวŠบ2ฤiJ”†๕JปAว๚s#›2ฐโWช<™ะXม_�ง๏๓ว๒g, Š" (_oศณœ��ำt]ร|6#Šc๒Ÿ๓ูตป์>{šัล1š^‘cฆ ‹ƒึ†}Fร-ž}žแhแฺ›U)ึ8ด ๆ9ทŠฅฑบุ แัZำึU(-ั๑๊๓๒Xk(›ฐ†-ฒ˜$Q*ด}YkPZ›Šb"ฑX6,ชŽญQNคux|๘ณ�:<‚ว‡Sd’qๅโzจปC><œา๘œ~Ž5!5(!ˆฃˆฦZR%YˆงZวš;|๋BB[&1ฑ๗D"ฆ๕ƒ‚8I>8ร{qฬfฌi๋†กH$ท>{—?�แโแ`›่นWh•$ฒ–q–PdIฏ ะ:๐/jC2(ุ 93วŠ; %ัึ!œฃณ–ต$bb:๎฿�c#ฉ”ไ�ฺ(ฌ�้oฝ๘�D;ฌW!*”e่ค‡ท]ฦK\ปฤ.็๘6ดuIืก๏ˆฒ:๋แฌฆˆ-MS3?šะKCูปาฝ4ด-๋c�ปfyํ฿โ�ำฯ@ทD๙oแฝย–‡xฏฑMIใb&,หŽฃ|v/<} c ?๏:๓ชๅ๒๎ใ~ญe-’lWฬฌaถ6ๆลgฦœ,<ว ญdg+fcง ้๚t6,Ÿผ7ๅา3�d๙ษ! ๐ำ๏๗ศ7฿เหใื8ธ}ฎ™s�ลWั:ม;rผNเปภ4ทm‡ijบ:๐ ดMESทtMC�ด!fEฤIL”ฦซfะZaมGฝ,๑.0‰ผutึกtDZไ$E/%:Ž:Ff9qžณถต๔์6›ษ>me‰}D$Pั’ฆSดCzƒT™ญรž๐ศdHไgด๕‚Y9ภฺ„อ ธv�>๛ฐณ=BE-ฆฉ‘Jา_๊q๐pJSต”ำ•D(ีkƒ๓ ฬแ๊ภfฯwyๆBสซ็๛”‡๛�พ๙ˆ(้!uส๑|F�v๔๚}Š, ๐ฅ่:KูuH๒ผ๓้<ฤQy๗ฝๆ„ฤฯQ24•]xจ-Z‡้ZคŒjgคล€VFำs‘Rก]‹—’ฆำ•4MC๋4�,bTD๔"ŠผPไ‘คWddI2ฆ๊Jžy๎Uฦ็ฏซ“[ฌ๖”+IฑBจ��  ณก�;‡/ัNn"Š|3ว๐๕iŒ๕Dข!สืีc๗๎ํC+็แPŒค%S )โฬ“ค=œท๔zŠ$ฎ-I\หฐุ๐:าƒ%‘์ะ‘$[มpฬtQ๒๐ฮ'จณ—=๗ญภ฿Wป3tึ“Fš( Sโw:+†ตGะtŽฆiจ๊`LSZ*Š˜�ไ่แว,gy๏๚1ำฐ๙า—�เW~�ทŸ:๚€๊IˆQ …ฐเฬ_Oฐ'† ฏš"L‹๒t32[ว-'ธๅ„d� ษ๐ํ์Wไ๋ 3T!JG8๋88Yเ=Œ๚้ช=ภ€ค”X๏้Zรัค"‹5—Ÿ~ŠS็Ÿaญ^R�ไฮ๑>ฅHy๎ย%R-Pาณฌ+\˜Ež3ิั9œ€iUณ•ฅ,:CU6,LวิXRก‰ฅ$๔่ลeำPC‘คŒ„f'Žู‰S„Sxแ๘แ�มงeGs๑%์pHีT๔,;Cว๔M–๕Uโ1qDžฤ …งแ๛',—่ถฅ‡dRืม"$ณฆลข8ฎ+Fk#ฺบๅ๑d†๚'฿บ๔�๑ฦqฟทถฉQฅ5๓i‰ึ7ปJืxคЉc2 ฦZ|‘ŒQฺ'9ฝšล!ึ๖Œ๛ฤb‰U}Z฿'–sšjฦ;W—|๙ทํ�ผ7฿`ญร—ว8�rฒท—šฒ…“ฃ%หVqoฆ9XฮlHดเํ๗o0ฏWฮm‘ CทXฐe*z“ป�\X๊‚ํอ>yโ้<žxŒ๕˜ึƒŒXTŠ$๎๑ั{'\ธฌ่[0 t’SM5�\๒สฏ�-6ฮ<อ�เˆ�x‹bผ…5>เ QH•|.oด@%:๋กำ”8IIฒ”คศษ‡Cค`u8‡๛vำvXใh: BgQž‘๕ ๒�€4Kษ{9iฟO’ง$YF�๋“๕2zYฬx}ฤฮ๎;งทyp๋.Gw฿ใl๔ˆฎ ฏงํ8ฃาu–ว'XงัI†5*้แภ…ณ QZ0Ÿ๎q็๎1๕._ฬYTืo”,gŽ,†b}ŒŒ3”g];lป ‰-: ๕‡ธ†8๋!�G†ํZผŒ้๗4o>ณCฝฟฯ?ฟNoร๖f+T“๎๘˜B ผ—ิuรูงฯsๆยำยฒบ‹กฃ$Pฤt„ŽcคิX ฦฺPg,�Љ^๋Vพ๙ขฆ฿หะ2Lาฦด3,XT๐ฅ๓๐poJ–hFƒ|๘ `…:Uc™—็Nˆต IFงŸโ™ณ—˜<บห‡Ÿผรƒ“%๋�ปŒ๓„ใ้ ฅใตร~ำ4L–%ย QBไหU3ขAW๘xศฯญ๙ฝlQ�ณำ๏ฑ‘Fl+อnš‘I’d�๚๐ว�ไณ(Ÿ�๕ๆQณ•งtR(E/0tใค Qแ๛vCJ|gศ๛=ฒ<กแข’)tŽ�•ฬฟำ๐ฐmƒw(Iธผตม�ูŒ“e‰๚๏ี๏n์nโZƒ! ] ฆšัvŽ้ค&SJ.้๊%‹[ุfิ5]]๋v†‰w๐ีTฬป ญ‘‰}–Mฬษด#K U5ๅำ{’_๙ญ฿ la–{AjOvมโัC&“Žๅผf6m™V0๏"nfห–แ0gุKy็ใ;ฯvF}ถ มไ`ฦ๎�YWq�™=โค@K๖3ฒ(DŽœ๑*G ษฃ�'œ=ซุ<ณu{ๆ{'�ฝีใสฟD–or๏๊gฌŸ~Šค?Qฉ‘:�|G%ฅD(T๑๊ฝ๊O๖‡7+�d๘ิQภ็%iLึ๋‘ๆ9:}ิยL]ใLGWืฬŽ9ู{ฬแร‡�ศตOฏ๑ษWy๗็๏๓แ{r็๚mงุƒ๗น4\โH@ƒ5�‚5-YฟภุŒฎ^ 1โ๑ฺ‚ ฦx฿ppิห”sg๚,อ„๗>š๊>รq)ํrJ�๑"ฦ4็"ฒฌ‡ทณะๆ“n„‡ oLณภฺdิ็ฅKงจ็>|็:ษ๐๋›TmM็ฅ9|%ย�ณž�`qtีฟ@q๖›ธ้ฬFด'pอโ‚ษdมawžOF,Žnณ9”ดgพ˜Q›‚แ๎ฌg5ว?eโ6Y[฿a•8ืั‰>"’๔ฯ13F›k,๎3๔!อ)ซƒ๑6ล๘ๅผฆn:zEBg IยHGš(ŽpึฃcตRฟร›$Dฤยฏ2าHkฤjŸ๚<Šš�‚ษKˆ 5�เ/ศ�ัใป ๘ฅY‚iƒ๗ฉs็ไY˜`…()นv�&{ณ’3_ผ@ฏŸแ5E�uDq„i๋gฮฐ{��AŸX้ aซ GBวDIสwD(Yฉ๊! �8คJ‚Aัปฯๅ�ษ|TŠA/ ซ แฑึขT„’โ'”Z™ุหฒฅ฿ฯ�\�iฌeYzž‰=kฺ๓>ำoฬ9Teึ\œŠขฤฆZฒ,S”กมCC–�’��j žบแ ฃ`[Fทฃ ฃ–‹RK€Lา”(ฒ(RลขXsUfVUVฮSddฬw>๓ž๗Z�ฑN _ €ŒŒˆ7ฮ�g}๋๛พ๗}�อZภ๙Œoฉผhี:ชฆฃฉ;ถฦ‰ŸbูฃรmF;7ศ†ปผ๗ฦ๗x็ฮG ';\ูฟ„ต=a iญ l7dzvใ˜U�ำt=ปiฬ^ž’†กwฌ 8žฎุ3ย(เfžฒkvต&’šชs<พ�!_๙๚ฟๆh็ อม L#๊ŠNJz ๊-•„YL�v,ๅ๊(#ฤก„#ŒBฒม€,ˆHคcFŒ#o�“Rา#IฦjMำth)0ZแzC�‡ฟ๔์—ใ8 \-P&ยuซอพตe=ฝเโdษx( ด%ŒZบ> ้rDyสG4๚ถYB_PอฑeEฒ}ศbถคk F;CบjN]•TUศ�โ‚‡š/�โ/’ท +‘RแŠ3คŽฑuAQตœ<^ฑฌŠhบžฺjฮV;;[\ปดอ๗๘6u|๑WYฎ;˜ฯ๙”.้ฅแใ^ํ์F EYa‚ˆญA@d4g ่:ษโขฃฏึDแ6ฯ|"$JJ„ )X_tด๖2‡Ÿ�3˜ ไึ_'_bฐwี6คR>zำ:ฐกnXะะ!œ๕‡5�–)6P†พ)=iชn่š†ฆ*)Kฆว'œ=9ey6ใโ|Fฑ*™ฯWEEU7๔ึ"ค$JsƒWฏ_ใ๊k\ป~•kWฎR%�์ฯ_Ž|าV˜าฎVTu… 'X A$) pVกะษ6ฎ+่๛%]ำ`›†นl#ฏ�,m�P”5iจฺ…IhVeM[–ฌŠ’ฒj�Tkฺฮw์aจ‚๙ฏ๒เ—yr�m฿�!Yข๘ู_๘K|๒s“ �หะnR๚š%�๚ �๊!v๑>�๒#ึO^งท1s\ณ )ืศx—00QโƒCtHื :1ฆ๎ ลjI%ถYหKhีpxi—ฝA‡Œฝๅ5ฟH2<คY=d:=E${\พผ‡*จ๚ง"†[๛ศp›eQ3ฬ"ำ ถ.“Œ๖9?พ ฬF †~”น\ืŒ‡ Mำm 6Hฅ c?ึa๐“๏ปฅ}ษำฉ•าา?ั#ฮ'๙ ถอe?RJาี-�เ�c^๛}Œr4MKื4ฌWKŒ1<๗์ณlmmำu-ึ9‚0ข(ื�บ๓pwB๚�>ม€�ษ)�YŒr-ลผdw‹Ÿ๚™ฯ‘\'‹"B BiสฒaŒ๑!*ฮ๚\o eี ตฤ…าสฤ€Ÿb๙‘ธใbถ" Qt]๋๙๙jณ๙�m)ฝ�bพฆl,ป#Œึด}็Cn6ifE้Uใว05t}ทั๛‰อ%H#ƒ17ฎ>Cฐ|ศ�{“V*>y�โ0ข๋zq‚ูภ…Šถ!”ก๊‘Š‘ืvˆึr9Ky~gภ8จ‹’Kฦ œฬ–\œŸ๐G฿๛]^Gั�� ฃaฮnpพ,HดB6ƒ0"2†|˜๑dพ`;าดUรบ้อฮึˆถojษฝๅŠD(ๆลšD+:ki€0 �}ถํุMS็ฬ๋ ๕7�ฬอ/v‡พย่ ฅ%A:ซ™žญHม`8F"่ึ+„( �)%ษ�ณืะ..ึL˜B๋˜ฯ$IlฌฮN%Mง8:๏๘์?รไ๐&]y†ํก[>ขo –œ<^3ฏง๓†U๏๚งซžYุู้สนr8แฏฝวูขแลKTWถ–ฝfฦช“ฃูปบฯ †ฺ้1ว„ฺ2_uฦ2ศfณ–�wื,ๆ3n\ญฺุ๋ฐ.@1็O:ŠUอ`�:Qv…๏}ใ’8b�๊Uฯz’พ๓ถ,ฏฎ่ฐฝทKx๋4Eษลั M�ะท–ูล9ซๅŠล|IYmภ�ฝฃท`˜0"NSโ,!CL`ˆ“#}˜ฤbถ \/iซ†ู้ณ๓3ๆำ9๋ลŠขl่ะผ๓แ.e3‚๖‚ฺMํ๐j๑ฉ5&2;/ะกAEgšี�G]D„Aศdo‹ใ‡Sฆห˜ํกEซว�ฝปฆkcโ4Gส๔-‚ ิ๋†บ"ฮd#„IŽP’ึ& „่ฒไ37GไQภฏพKWต˜แB{จEำ๗ฤB zGgAถ–Kmแัถ๛i่Xฎk†yJื๘๘Z็ ŒRZ ่Hด j-}ต‚พรIW-‰ ดฟ„ญ๊–8M(ELูtŒ’€,PญC�ŠA!๛–,0ˆ}�๐ษขไาๅ1‡Ÿ�ณ|๐Š฿oJ๔ำํ‡ๆ�b๗“ขํ“หผB] ค๖ช๊~Mื,p2ข˜?Aธฃ%ชŸำ6>•*ˆB\Ssu�p์๓๑�3l%ihˆอ … Š &0#ฐถล๖ฉf3�†#„ํQqŽํZ๊ี’�๚Xร๙้Št—๎เ3ไiLำ๚ธื$MŒใ5-^€(๊ึำน†ร ‡ ฉ šบ$O5งO๎ฒ\W4=์�เ�โ�Œฯ~้—<ƒข๓>�z‰ํlืา—ธ๊ป~ˆญฆ”g ต ๖.#�ฅ ้แ็‘ๅถ˜า๕=�$}p…ฆ-จk‡sูdฬx�[iว๎ฅซ$AK�6ฬ–ŽVํฃโœfy6ขะ<็ ซฺ fผ� ฮ .f+ฺฆมZษd๏ะ„ฬ็๑`ภx< *�ฅŸ% <^ฒ<ฆ^ฑบ˜2ฝXะ๔>ศ~�H. ธs�qw ็ห‚qฎyๆสoผ{›{ง์ŒbDU๓ผiุณkf`ฅf‹eูัโร ด’X�Q>kxk†’'ฝม�ฏOqMฮมๅœ(K™Ÿต|๘ฦ’ัnอ๖ฅ9?_q๋‡?โสsŸ ŽD 2"uˆt�.ค;Hท$˜�@˜ฤSฅB)„c่แๆ‹ฯ๐ั“#Ž?~ยAB/p]ƒ6ŠฎY ]kฝ*Y้ZDืD HP8pฝu ็:šฒDฦ)‹้CVษ๊สOำYMzZ9?ึ-=^u]4ธบๅ4ฝฅ.f่โM๊วศ๚โ8ห๎ฯ๒™Ÿ� L.]�จห;�ž๘ฏ]cฯ฿†๚„ถ!4ฑk%.พAc{฿�€ำ)4๊ แ–ธ๒>&0šฦ#Šฒขรd)q:ขญJNN/ะZ&ถ&9Z f‹Šl˜’ๅ ๋Uๅ}๐ฃ ้B+ด๖Phœ๓œwน้บ7;•Ÿ<สl‚o6ชrื[์Fค&ไๆyj�L�|Œx๗อท๙ต฿�Lhpญ#ๆ๋ˆ“„�ฝ=w ฦ๕W�ž“‹s๎?xHrm‡Kื๖‰G4ฬๅล์๏ †ค๛W2$7š8 e€•Bhb‚!||lYตhฅˆขp“š&~๒oznrvฑ อ†Y๊i8๋<}M แษ}ฮRึ ๋ชag< Š�ูh„๔]ฯbU#„dgœขๅF["�๋ำw–๓‹]ำ1Œ&#^�ิ็x�เื�๚1_{๓mš(ฦD>›a'„a€ uำ`…@!ฅ9ป[cc…`˜ฦ$ZSึ  PB๑ฺ�฿แ๗๏พ�ไOกณ1yฌ™65ญP„ขF0#d`p8–e…ต+A(Bm˜โ(๛ฉ4๛YŠ‚u�Iษส๖gษฃ๓ข@ …–}OQUฬ—ฅ_‹�ญฟ๐ษ/>]ชซฮ้?ฒZRอN<�ดญฑN eƒํW~4Rฬ‘&ค๋Jฺถ…๎ e ฒ0ฟ…ํ–T`5/ ด$ Y\๓ั“–“ำŸ��%โ|Lป:ฦ5kำ สฒวZวลา๐ฮ#มE!xrฑๆแZ1Ž,mgAžฟ4เึ�‡<<ญyfๅšซิ \วรึ0ฯF„ฃ”๓Eวช่XฮWพ JษฮN†QŠŽ๙ขโไแC๖%๏|ะ๐แ›m™ฐณฟOSen๏…’Wฟ๑โ ๅ๊ง>‰��„ญ๔Ha๛6๘C็,:๐‚…hD‘ฟM*ๅ!R{�ฐ๔*Mj˜ภd†|`Hย–P.ั�)บ=ฆ_=ค>�;{‡๕ั�๋�ผ๕ญ฿ๅีฏ�K�~ๅ๗˜}ศใณ_ฝCีฃุะป! ‘&FR‘Ž๗ฆš.9`:ืไiO {ฏj*�Bจ‹ vม้TกMฮ+Qุ๑แวkฆ๋œ๑(&า B(โ<ืrzVRLK"ใฉPฎ๋ฺ๙xN5 ซ+๚nิพkนz0เ๚�7^yƒ๕tM|้2V*จ๑ว‡ 3Šดซ1gˆบŽ4pุฮทw3C฿ตtฝc)”ฌซ–T5D๙PฤJ*˜คšิภช้ฉดสบฦธู๗hzฌ๕ผ๐QPT~ฤvฑ.iœ!ด5Eg‘กไ‹ฟ๐๏#t๐“=ธ—Œn4]ํl!‘�;๐?มIgบแผFB๊๚ฒ[b๋%:;คฏVHู#ƒœพ58คšŸขŠG์_�ใญGg\g“E›ณ��/s๓Sฟภs/ผDุฎ๖a(luFs๑6ๅ้{ิวฏณ8{ฬzvส๚�œฃ�ฏq๗ฃHcAฌ-!]1gอว๋+ฬ*ุŸชžy-X.…E›€ฺjฆkห์�]ำ“Lžg๗า3คzFฟพO�มp๏9าแMS{Zv@6œ`ย”บjhZGœคDqฬp˜"•dฝ,‰“€(‰i›–พs$Yโง)xะ ฮ_H\ืc;๋“ง�„Eฬ[ 7b5!�ฮw3™โižผ�๐|๋๗แOฏ‡พ��G�๐๓๊~ฤ Az”๐jฝขm[ฎ]นฬฅƒ’8� „ิฌŠ‚๛'3v?uƒK‡�d&%‰V vw†\฿�c�๐‚8ศั�็&าv�}E�17Hฅฉšญ5ZAืV๔ฝ฿ำป  eต*ฉ๊šษ |เ๒–Lญตตkฟึ้๛ŽฆuHๅ/R*/๒�H�œƒฆํy๔dฦ๎๖€4๒พR€พ๋(๋Ž้ฒ@ วึ8งช ฎ�|žo�เ‡|๏�๓ๅNOธ่Zฒ0ๆฺxL�ถ ฃ,ๅtบภ!ุ6ถX‡Žช๋(kหjฝๆอ_ๆท^�ํๅO\พAi*�ฑ\U ณภEฆ4ส(r๗ฮ็ ฒ”รaN]–”J’็‰V”ฝๅzž3า†Gห%‚ร๓ข"OcN๊†ถชศข%]ำ8Iำ6žฤถ{i!5๕โ ถณ๔ๅ �ึh-จASฌY<๘ะห๐ำ&t‹%*อQh์๊œฆ^ฒ>;A)า9lป eฬฯฌฺe8tฤใm.ฆ๗Žฎ]สน|๓9คhส%ณตaน๊y๛�)m|ฌ‘ K"b-ุJเIโlร๓‡1�;ใ�ษ’กถ\อ4ฯšU.xทัD�C^บ‘๏ซฎš–ๅฒ$Sw ‹ตใbnyx4#ึdรR5ใไ่ˆ7฿<แีT †#๖ท D˜ณ๕9๊๊‚ืฟ๛ีtฮึฮ%�Hฺฎ/*@† �ุcป zGฝ\RœQอฆ,�e๑ไงท฿ใ�๎ฌ฿ก8นฯใ๗ศู‡฿ใแ�฿เ๑;ภ฿�]>��Wธ๕ส๏p�แ7y๒ม๗y|๋G�z�e�~—ี๙}Ž฿Eช†tเุฟฒล‹Ÿ>เฯmq๓ฺ.อx๗ƒ3Fa€ึีั็ แึ˜ ข€bฝๆโษ’(ฬ0Q†–ฎํ่Aู z!&–,�นทขฎ;ฎ_ISx๗ร#ช*ๅาVˆ05ฝSธzŠk–ฬVพ™์ะบๅ…r]qŠT Bito๖Zื.r}ศ~๔ล๑แ๖•T4MƒะHI�uศๅ9๒�1cjœ>ดฃ+้›‘๎H๓ซช%hXก่$ŒUK[b`Y๔ชฦ4„ะ„ย!บŠ8Œผuชท^ด) qะ9‰ŒrFi„ŠR:ี๓์K_$™์zแน๔EZ๐ด wˆ��คPปฎC8oCค๏พมึฮทน8พอ๙ช#]g๗า ฤQยrฑ cH’๏g ถต,%B)’,&Œงฯต-๋U‰รว!]cฉG’FภZ‡2^ม-7ม-x‡ฟฟฌo ฬOF4›_๗‰๏ฎ�ˆ�ปI`ฃญูจด{ย‘ฺ๐ไ๎�๋๐฿ฒZฮ”B๋€ฒฌAืต์๏ํsธทs–@˜ D+ษ๛ท?b�ด�์ Œ“Œกึ[aดแ๚0ราโLB+ Cข•ทˆ!$uำaญภ์บvรE๗$ฝ0 �ื(กuเปๅพ็่tNžE ๒ท™(<�p_ทํ{Œ1ฉ˜อ�x8Mƒอ��ฃw�zย“�.ๆป[ฉga๘lZv‚uูฒXี(-ู›ไ8‰๘เัc�แo�>มีg™ ฌฮOน89โqU"mƒk;B๘X\cจบŽas<[PW5ง‹! !5ฏพ� �๕๋ฏะ?๗9†/}žษ0cต˜ำtฮ�ƒ;ˆข�AŠ1šI Y๖–ฎทไyฬณป�Hc่•$T’ญ(ขm;"แX6 uYฒFTฎG:G�ถM็ํ€xŒ๎b]2‰BŽ‹๕w~ๅ3_Žb„่‘R ˆ“€โ�„บT$แ‚n}B[wฬ—†|o— �CุL€Hฝ@ฉฑ่๒+,KQ:Fฺ†y)8?ฏุ�qศd„ึŽ๗฿{@Dz—w^~™ทฟ�m๎ผ�nฝวั‡os๛อืy๋ป�Ž7ฟ๓5^๛ฦฟแฃ7พอwฟฯ{ฏ|ฟ�\!า’ููปaภZHฒ4GG!]�ฐชk์ฯ*:‹๚๙ฅ/GA็๗Žกค]ฏ7๛บŽถฎˆ9ฃญ”ฺๅฬ–†jน&LBtA_`�dˆˆฦจฎคwจ*๕!ฬy๐คฦุšt”“b}๔>3วอk†ฯัิ ฟ�›_รu|๊zฦ lIdษ (ืq8๖สถmhั|๑Sืx๐๘”๗๏q˜h�๔าjล}9ม&‡ืวf4ฮQF3ศC†Iศ“iEKภี‰ๆแ“3šีF[�&3๖๕Œ�(@*รh!๛†L๙ึหว�ป=ๅpข๙าŸนฤ�ณื9^ื'๖/‡\{.ๆฅฯ]โ…O๏qใ๙ Ÿ�ฬ>7oŽy๎๙]ž�ฤ๖ฏmqxฐท;`<Ž็!ฦด๓ลู”ใ{งผ๗ใ���๐!๏�๐C��๑‡|๗฿ฝฮ๗�่G|๗฿โ๛฿|—7๘ฝ๗ง๎B๓ห�‚›ใธGำ‘ฦ':่;\3๗ำ•8วไ;hณEมtnัRbDM89@›”ถXะ‹kƒLS6†ปwVdฑๆ๐๊qุ๐ƒท/จ*รีห RjŠ, Lว์xฮb"…ล(‡S1}ณB…!R‡๔mM฿ค๖#�ซ“ˆ�ฝ<>bv๋6้bฮจญSาๅš-ฃEU+qั€^ง42!‰b†i์น�=H“เ์งŠIฌˆ”ค‘ฃLFฉr8“ะ9 ฝ%1๑‰TไiL(-ด�ะ•4 ศ@๛u๋จDD,ฮy๎ฅŸ๓‡ฏ`ใ๗t*/l๛“;�ใยo”ู่$2ศp]0#?ž_>Bงc„ฮกzˆิ]m‘้ฤใX]อ�๎6w>�ˆ๗o-…`zGl|'ำZตาB฿ ‚(Cฉ%ตืpDฑGลGคWฎrz๏.๋|›ไฟเC‹ฌ๓๐‹<แbฑคn{ขP’ฤซ“x๏•_็ต๏�[n~ๆฯ๑็�สสแแ>ถ[mFŸฮOฅ๚nu—n๚.ล�๏Sฮ1}๐ยP<ข)ftๅมไ‡$�—I๗nb…EOพˆI/s:ำฬษ๖Nยแ๎.ให?อล๙ี๒„แ๎งูฝ๔,สฎ™อœL{z—ƒ™0edู„ีชaต^ขรƒมˆะx5๗|พB่4‹‰c๘ตV�@U;ฯ\๘Q9Rz๑ูฆs�ษลLุ\ คยถฝlู‚ฮŽง�“_�ง�ฝ๗ฑ฿9[‡ัŠถih›Š๑xยีซ‡X�“งƒAN]W๔ฝๅฃoใ†รซ�์ 2Bc ด!’{ป‡ ทvฑH"`ค ‰3t˜Žบ„aไฃaqŠšฃ๋-j“ฐ็645๋]�Qื^mG>vิYx�๎ฝ๓€|�=พ๕ต7xๅ[๏๐ฮซo๐ฃ—๏๑ๆ๋๓ึkr๒่1๋ล‚ลู๓้๕๚�ิŒำ#kาTฒ5L8�Nู฿I9�J8…��Hˆh‰ดb�๕ะ—ฐž“2Jก•%ึ–jฝยชˆ� ต% ‘’›�x‹ี1ยคไŸ3nb9-›9Ÿ�ยŸBง฿|๑๔`฿๒อจ๋•็Ox!6cS้wก^ศt p}‹-N‘้%\ณัƒˆส๛วq=]Uใช'ั๏~‚K—‡|๐ๆ›ฬปˆ, ฎAปŽ4˜ศ„ั„ร‘OŠ’ณs [ื๔Rำณว˜ 1‡_$ˆ4RิUมบ(่]‹’ป|ยG?๚mพ๕ฟŽฟภ_๘๋�~๖็�4ZึุฆB™ก่+ฺำw่ฆ๏ั5เ‡ฤ;ฯ“Dํ*dผ…สžEั๖‹(0=ฟวฝ‡‘๑.6นสjน$ŠB.๎’็[4r‹๙ล}ยะ /†๋ล็็+สึั3`”‡FขMLg:ƒmO=DSิไ9yžกดมก่{G฿๚]si‚pำ้�dขโ�ฮOฟฟ�๛jก๗^6ถ(�}�ศ�Ÿ๊�๚ŸYŸ๏'.O+๛ำอ3๒'ฤ[Jkด ๙ํ฿๚ ฟ๑��5ดVLฯงคyNY•ฬฆs๚ถๆ๊ีซ<{๓Fƒ�ฃœ;YW5๏ผ๗ป/� ูษฝขjึศถ`wฐว`˜’`๛†4L‰๕FU.ฌิM็ฉ) �‚U~฿์œแืEฦ๔ึQT y–`ด๒ซ„อ…UJ‰Tย[K7S๋ผ๚< กQX๋;s๛4ŒHJŠบeฑ*ศ1Šบjผ๊_”R”uฯลlึŠqBdC~๋[฿แ•๗o]}†ช๏iำEt8๒ เ"อฉwvi•คœŸ๓จny�่>w�ๆตู”.ฮ˜E๒เ๑ต›ดนKํKoN•ย(I็A3’qQGัw์d๗ฮfญ˜Œ2FQศE�p9ะคZั9วผช)šŠHk: qฑ์ZvvจปŽ๛ง็คIHl กึ์NฦTU๚[แน/งyNFtอ‹ฦv%Bง„a„’v5G‡)ƒฤuklำถะถ ญ็ดUBฃด%โŠšฎ-‘n"e˜',V ยโฐ!Œbบjฮท~p„p†ฃวOH’Ÿ�นg<ฝ-2˜ศ+ณำAJชus‚�g–;+๎O๙ูฦ่ฆแัiอcqไ/|�:‡๛qฌ}rZL๖9>š๓ใท�cUTœ฿go?ไฺnDฆ-;�’,5่0 จ„N…จจ็๒ธๅpRaํ”?:ใอ�ใึG�๙pส\๒ƒWNyๅี'|�ๅS^}๕!฿๙๖]พ�๕๘ฺ}ศซ/ภ›o<เญ7๏๑๑‡๗y๓ํว�น{ฬใ“‚‡งkสำGL~ฬลู9Uฑ$ำ%qœ`”๏เฦ™โ๙๋!ป[#๖๗'์๎Nุž$\พผล�ฦ#…์+โ0ม1{;1ฃฬซณ‘"JŒ�–%‘˜ AD;›qญ@่ภง4a™ฯง�พ_ฒ*"Q4-ถื๔U"@ศ‚P5HiนธXRwI>แ๊ฅ�ฏy๕ฝ‹2ๅ…็wัสาฎฆ$[Œ๗2สUม|0ุšn]Bงจ0@ส‹�9ถ-ับc˜E���ๆแร3ŽฯฅU�ƒ6จ0ฆqšภt]์jสึr^ ๚r…tGื”diJ/ ำฺ2I˜PYELT๊[ะJŸล�9mI,Zƒ2ค๖ˆJ‰#Š#VM‡าŽA>เ�ษ”7o0น๔‚0ฑoŠ๐*b฿zlธงgณตo%„?์?Hะ›Lh�ใˆ�ฏฦ๕žว-”ธU๊งฬ��ฟยํœ/๐R"6ฃe_�าdผ๑ฺ๋�Ÿ��฿gน\ะvะv=iS•5ซ๕’ ๙ฤ‹/rใ๒%%iššฒฎ‰ฃไ�>b๋็^"฿š 9H†ฑa2ู%#ูำฃHb)้zpฌ(ฃ!ะ^�‚p4ญ฿ฯ๛ƒ6zรCXฏj@g๑&ธF๘!�>)�ฝw–๙bEำtไyผนm>•9ภ|Qcญc2L6a.>ฒVJ‰@2_•ิckœ’Dš 9ญ๘ฏ�ูฟเ�I�`ศดmภhฺ8ฦY‹l;ย$ฆ5ํ๎.๕๖!b0"ฺ�งํใถ๗‰๖l 4MM฿๖�aำดŒ)YQ ว0MBะšภ9๖‡9+gฉ…d?Kโˆ ิผ็$Z10š“๙‚�๊พ%‚ูบฤv2# RpckฬYYQ4-0ž,„ฆฌ[ิ฿๙+Ÿ�rœ„จภ€Rิล�่z“ถ$่qz‹$MPZ1Ÿ;Œl‰SMoฃฃ”~=%J\ฐอ)t%J๚oจ๎f[\]„ว„ฆcqrสท^ฝลษู9Mง8ผ๒7_ภ๖ๅฦ"ฅCk…6!กr์d’ฒZ๑�žเ_ศู�5๗ cษฯ�ฉk|๊3‡ธrA์%$ฃK<พsฮทฟ๗๏?žข›‡€ฺWkŒ่ัข,[‚ะก™ฐ]‰k”‘Q„ 0QŽฬRๆะ?๓9ธ�"็sสzv+ึ�เฮ~›G�˜ƒฟฤ_��g|๖3Ÿฦ„๎ญtยโส;ุโั—ศfJณxD�๗4๕’ข\"ัะ,กšั\| ฎbน๎YซCขญ SIบ� โญู�ปD†ฬf3*ำดไLv/้Šี|สt q>fฃ5eูั๔‚|4"‰"\k้6~์$๕Ad0B ‡m;๊ฒฆ�์˜•Vhใ]!�ๆw�?๙๑Tpๆ6�ํอฮZ(ฏ(ฺ5;6Eู๚‹„๒ฯวO~ฃตถนฏ=–ˆ ๛@็N๘?�_�o||๗6RดHณ„บip€VŠ,๐๙OฝDGิuƒลกฅ&ŠB�z๗-NสŽํ—ฎล1[aภ8 !3า=าญYu=ZGศฎ&ibฏสo;GE�ฤBๆ'G%็‡ฉ๎ฎ๋|aQ „พฮ_zภฟฟ7;k)%]�Qิ�ย: PZmF์ฅ79โฝe:/H“€,1�mƒ?'”๖…์tบ$�๚ณ๋:ย แ7ฟ๙}~็;฿%บt•ฒ๎iTFณn˜-h…@‡�4ซ‚]กX9‡#iสn>€ชฅ2Pท„An๔1Ž<4ฌ�)ร,aนฎฐm‹0^iฟ๎:ถ๒ฤฏ<๚ŽหYฑbVฌ ‚บ๏)๋–ณ๙‚ฺมใUม0Mˆ•ฺˆ๐4ฦ คตฬห5}ืใ’Uw„Jก��_�โ—ใ๊up…๗hZBtคpอ ื๗ศx่ให%๓"`1๏ยœซ ™Qืะห ฉ[D˜#ใ T z�`๛Žฮ)ฐ!I คa5d ,ึ+�y๗˜wo=ก.,�[๛Œถฤร]‚|“z‘…m[ํx้ฦˆ›ป!สึN _xq‹O|โษdDณ!fxภํ'š๓‡๏๓[�๎m–๕‚IZ๒๙F�CL/ธ4Tจุ$† ์ษ.]C†ถฉษำ”ํœชƒJฦ`!–8A˜ะฺšํQศ^ๆ8ฬJRน&•—w—วš0JัqHKd Lฤ(ชˆƒ -Z๊�‘%‚,ŒF>์egX3HkLPำŠm:าL2†Œย“„ม0$ „†�AOข-หiร`รค%ๆhZ"U“dJ4่4D็9v]"]}Cu6ลี Q๎ใ๗FีšYฮ—!๛—& sC฿+่– 4า:)ไฃ˜ia)f v๗wู฿‰1�œ7?:แ๖�Š็žูaŠูœ@7„ <น๗ˆณsˆยฅ}ตฆm+ ฮJCœˆPJpxy›O฿ฬนu็„ำำ9Q`Qฤู่้KhขP!ƒ8ยษูชbัฮหžฎ^’‚ื]JDดƒk.pB‰pVšš|ดอk?x“ND ๊Žม$A"ˆ’ิ๚ถE้ ซ ‚+ฯ่P“Œ’,P\y}้sธ๚„ีG_็ึw~“฿๛ู�U��_๛_๓K���ใIŠํl๋_aWˆv ั-h็S/R๗!…�ย)ฑฌ้ื ฺrŽNrคญYฉ›r—ห—/Sฺ•ฺ'Œ2ถข’ช“\,Z“+HWั“%ฒ_p~6ฅ“#ถvถไ ueY!4ร<๖ษQญEjI˜อไG*‰ภ@ภ๏ณฝ�IขตD ็/Tqโ้ฮ�my�ฝ›ฑ๙u!ึ๚]J|'-žvำOw฿พ๐xกฺ`‚/๚I[ท�†ฦH/๋�‹�โฟไวoพN�๖ดmKWw~บ(u�ะ5{{{\>ุ๓ั}๏ำธฌcถ\๑๊obถธ๑Sฯ2J%ƒ”Kรœม`„จๆ์_ร้Dj๒0 0‹‰rฌ4uM`๔ฆpBo= ีู)ฝnศZŸ6ึt=Mำฤ!J= !ูhD`#Z๓�ok�\Vฦ!Q่ŸKน!ตน��ีชค([ฦƒฝก:>๕“,‹ŠGGไYศ0๓แ:Uว��7‹๓้ }๕L�Qcitฝ#(\ „bqtฮ(Œท†ธ$B”•ณธ8`j{โaNจMๅWามขXCo ‡9fKฟฒ‚ีบbb|์้ผทŒ)ฃ.x�ฃ�อพร7ฟ�๗๎พว•qษ็?3ฺฆc” M‡ˆcดฑฤbA”๚lkmk\ืำฉงBฦบไ๚ถcฒ•3ฺึ4อip%�; )}ุ‚‰ษณ˜ฑA) Bด ฃ–<๊HMว(iฃœ(’dฑ% ‘ฌI๓9�ฆ!"ใ‚,“dร!ข๋MBฎ_3Š;{9Yaฺ–ะDฤYŠึšt2ฆ^3[&ฃ-FCƒ 3t:ฤHฉ$มp๊ั;œ0DC :๖"ฤ0c{2<>-9?๏ษSˆƒ ํ*บบฃช:๚พdผwศ๎^ย๑ƒ'”ต$‹ึ\น2ภHอ?8แร๛ŠKป[;!ฎž“ฆ†48?=gq:ฃZทdƒฒ+คŠฌkฐย iฐ�ŠฎญHณgŸู็อฮxp� หh0 #คkˆดB ‰seD‰yๅฌfZถฌฺ†ข(ถ#ะ†�v้h๛อ�ฯสฺbEฤV’ŽF\ฌ*vsรRFดMวศXBัำศdC�k‰GcŽ–3~๊‹?O�!/}จอฆุ |a๎ญŸšส?A฿z:^฿ŒX�ม๎ีซRkœ“ดๅ กฃM ”ร้ก ฉ•L*๐@•ฐ๓ยO๓สทฟร๔dฮ3i่�ภ=„F!•q€"0๛€šฎiฑžœ=โ$�โ๑ร˜๐U๎฿y—พฤ/�ตฟห/�๗�'\ฝvพ[m.&!=ๅMจา�˜๙�—™Ÿ0;šขTฯxwBh"ส&fZ‡ฬฺฬxรO๓ฐ}q๊XWpVวไ๎1iQŠ=V]Bžš๚‚ีบa˜ดhY–•^bฒ=B MY๔žŒ‚๕ชฦ:Gtเ�ย^—๐๔:ๅwฐเฝุR ด๑�๋ง�fโรaฃฮถ–วG(%ูgHํญmO=๔Jk–ซ†eั2ฦ-‘ภW฿๙฿�๚7pใmยญ ส9ส ภ์NุŽ"ฌํ้{K` ZHl`โˆซฦprrA‡Lห5BJI‚๊ตslG$Zกƒ—็คa€Sไaฤ0ˆข„fๅ,Yฑ—%์jEp-M้›ัต ฅไdน& ็๋สฟ~mฮq�5ืsพZำt=ฃ,ฃŠํ เแั)ฑ๕ท��/om h๊†0‘BฃคEi‡R1F[šฺูโTˆ ฤๆนpR“ฆ$)}y� n�์ฃ*oจVh ฺ– ่™ฮk–eฦึn@:ฬ˜ฏN/4/\ ๘าK!/^VloY๎Ÿ.๘ฃ๏ผว+?x‡�่-�{๛�y๗oฟส�๏๑๑ ��เ˜๏ฝ๖oฝ|›o~๗Mพ�ฝท๙๎ซos๏ึ;tล1;šฎ†<{YัKAd2œˆ'Ž��"ํ‚X–(ZŒv˜`„์—„rMัFœ^4@ศ�ๅ dอข๓ปุbz# วํ„80ย2ˆ4a ‰ค%M0&"S–,Oศ �ฑ" 4Iณฟ;bม คF"LJ%(ข]j-aฐ“ืžช”oก@ธ ‘Jโคฃwž,ท�ฬVงS=ิ&&�‰จบ„z9ฃ/X• ‚LŒต ]� ƒ @4UKฑXั^�e2า๔ถไ๑ัœ{,ƒุฐต7๐ชA!Q3 Tห�๑}ถ๖ฏำ— —cFนๆ๎ƒž8vณŽ4้้ก!Žxp๏g Aฦ&Ap2๕�SงัษTBำzๅ๗ฯ<ฟร“ว3๎>™)G฿;�j5Šฎ๏ฐm‰ญciถ0aJีด,ชึg”‡ ฃ$ฆ้Z\�"ั C 4VLrŸVฆuHูZZุ๋ฮ y ATM‡†ฤึ\฿Kyฒชุ>ุg�ฺง ๓ัฒฎ๗–2_,6\k้มยmlCฮwฎทฬIWฺ�Iผw�๖ศ AEา�ฆ$ ฮ็ทae†Ž‡›?P7Š^Fคฑๆ�๏}—ฅ™คญZIO๋{šzA[tVะVkฯนŒจeฤo?เ�“cฌhxๆg�ๆฏ�'�{แฏp๕สeํรY” มฎQาBฟคฝx—v๖>อ�6ํj†พHด�ู๎!ฃ\ำด)'gซลg X ‚แ ทวต+ ฝิŒL…ษv้โh๓้)Nลl๏์ะT+ฌู'Œไ™มYAUu„IHi$Ž� ‚ุxE๙ำŽYl,\›!6xา Mฐ๐เ�ื}ืโ:ฟำฟ‘BaปŽbYั6�&RU •A )‹„#ˆ๊ฦr�แ”ภh’ุfp^ฬhกk�พ]หพm(็˜Ÿ�ๆรw^แๅ๏ฝยฏ�ใ_ๅ7~๓๗๙ฃo}Ÿๅrภฑ.K‚@ฃฅ ด4hmh�–8 ๙ยg?ํ/ง}‡ตŽฆnศ)งS>พ�1Wๆฦ;)t= Ž ๅ#}‹ฑ=Y>$3>Ÿ�aฺGฤ:'�๗้อXJK„ขท–9kYฏKc0ฦ๏หปฎ๓+}๏ญส]ื๚�ท๕ป๔4๕้]๏/FA�ถ8๋in‹Uร�๎ˆ(P�Jผ๖=Eณ>9™“ฦ†IŽ‚ชu�7_๙*๗>$บrสšน XEํz2gY๗–H๚็0TX!ัu๋รฝwไ„ญC E(ฮ—ž๐ ‡Yก�†go4�ฦpฌ›†ชฌนดฟ…�3x=ะ<^xœs$%ํ9m{””œ[ูคคlzFIŠฐŽ$ŽI“ˆiYะU=m�‘&1บํmวGวง>๋�๏�สK_ŽCI฿ถ˜0ขญบบDธา$H"�ƒ0h†„ร=ชขavVBuL>ฬp2๕�S8 -–เj”ˆะa‚‰cDบK8šฆ ณ๓5บ?GึGdyยษEEQ8Œถ์."^ุoน>์ฅ“เีQO๏qv~ฤ้๙ชโ”ฃ‹Soูา ’š‘ใ™Kšฯ�ู�ฮุYŒศ0ฤบC�ฑ7ึ(ฑXร0 Pยุ‘่ ’!ข]ข7ฅ“ฃ3ฮฮI2สjŒNI๒„(อX”#. cฎ]�eฒ5ๆpโศาœ$0YJ`œI2�‘†–,“ไใ:‚`ฒ1!ถฎข"ŸLุษ #Kีjชvฤpะ#Mๅu ถฆ[?ฆŠฎ8ฦEฺ^ะ— ?๎KŸcทœ=yศญG’8NIใž๒ไ>ีบEg9Biฺฒ๑)R๑hsXะ1่g+šFศžหWท8_k/b–+Av๖4Rดhข‚ˆึYd{jV„ร}\}ะ� กฌฉปžลฌ$Œ"’ฬเบš|ผรชMy๛ฃณEK]ง8ค$Œ4Z๛๑TL่ถ๗+ฑi‹อรwO๎๗า}ใwฒnำ]ซ ฅ^ฯ9yrS†<๗Xb!Cl[s�รW1ั€lธหโ๔Cฮฐx•แ0กog๗฿`v~ฮ๑qอ๙ล’rี1›-8z|›ท~��๚ฟ๚m�ลฟ�พ๚Go๒๕๏ผษG฿'ŠS์S8cB๚�_•๐p—ฎซฉส’4Kู฿�"Ž|เHž&HญPžs�ั.๚Yถ' ีบdH’ั˜<:A๔ฤBค“hย+ษฝ๗�ซแ•๔S ื{๗ำ‘sนptฅชขps p๘Nท๋p๘๎ฌE)/@๓ฟฟ'KฝHN๋Z�5Jฒ\58!e:�ฦK`{วtพไb^‘%ihร›w๓Oฟ๚Gฺม˜jBY%ก…rฑภฎkข0$ 4pmKd{ฉ Sv•ๆdพขrฐ๊:šuล0หpฦOสฒ&pƒฐ–HBUืิUCFDyยaณj๊ถๅับขฑŽH VM‹Dps8ค์�Ÿ� Œฯ4จปŽ(0H ๋Uม$˜•YใคfZีIส๎ E�'ฟ๒™/GฑขฺฒA`i›n“R%้:0Q่๑Jใฺ�Zสชe9o) G๛3กฏฮX/kๆgKdื�  Eำ9๊ขม˜ŽzvŸbบ& &Jh– .f‚lฑฝ5ฆํก+VŒ’ˆหฑๅฺ$เ™รœ��mžน4ไูร˜K�‡ฎn<ปmู —Œ ใaŽ’=Nฑr€V �ใAโœฤชฤ็ ;MhvถL๓๏�MฒlHWฎf}๔C 5xลJ1ณ{้ˆQะฒ๕ใ๋?วj:' ,]๒ลzอ๖ึ˜ยf˜ F8GoAo�ัop๓ำฟD:�ey๖„�แ?ๅ�“.บN”OศbอษƒW๙เƒo๒•฿๙M�ๅoท�?fฝ๊ก๗วฎ๏ฉ๋ g�ธฺ!่zKšฆAศbฑคช*๚พงnZดT๔mGฑZ๘ w็0FF1๏tŸJ*๒ซถท‡˜พc7ษะฃ!#ฃฉ�#Uศ8L…ฦ:Ÿƒฮnข’…/ภm�ะถธฮ‹�”็ฟ !จ�!5Ilฺ{วŸฺวคฯ36bธUQขต๖เภYŸ'n7[„คฌ{า$$ mป™pm.ฤฝณ<9ž#€�� ๑ฯโฏ๛�๐ฝw‘ฃm\Qt=†ฆจศ„ค๎!ฆ4F๛วภv˜บง–™Dญe:_C‘D‘STถgk ›e4…ํ9›ฏi\G„`Q6Œด$$Œ๒Œุ,œe?ฯ9)+๒8d?ŽXV%ณีšวn–2oฦAภ๑bI_•8ก่ฅฌkVuC,ซ�ด์d E�๒�๎6๋‹)๊o�๙็ฟœ$ฬO.ฐMฯ`’bEBตฌQJ ำmLบmSำต=ฦ@U^ฐ. ชv/๏"›Sšู‚ฎ5จ| ฤฤY ิศ ๗ภพ ’’^fฤƒ!q#uภใ“’,K์5ขwจแ..฿Aล&ขฃ IO๖Ieๅw'QŒBฐZ6X้pˆ่{R‹>$B:—ฒj B:ฏ๖ํ{’ศ‘หฃTG(ๅฐ2ภ๖=ถ๗แู`‹ลล9ณiI฿งlmๅฆ_2ifณs๎�™ำฏ vถJึ8 ฺ–fuย ำคร:ูมh้ะฏ&ขญ+”ณะ_ “ 2�๓ซ‹t„\Bhลk.Š1รัh0Dh…Jว3๐B–0Eจncร=d8$Šq>ไฃปงœ.์oฺ๊™L&กซ[G”•ฃ(;Tาt‚ลดเbjYU!E%(ส†L;ŽNO๙่ธๆฮEศผqบ|pฏโ๛๐�ใžžH�yะ๒รj^�จไ;ฏ?โ;๗ฯkŽ.*n�=ๅ;?~ศึผ}gฦํวsึEI]<9=ใ๘ไ˜ำ๓ำEmW๔uมชฒ„J’…Š@ vRHฅ"=a?gVvฬQaŠ+ื”ๅ-%า8`›#]Sณฎ*Šบม!a8$฿ปส`8ฆ(ื�9›sพ(ษcgฯ�|žซ7nฐปฟฯฅซืนtpศ`<&o“F์๎๎๑ฬ3ฯฑ๕š๙ชแแั1w๏�แโbFUU;f็@า‹�ฌ0� ‘๏ฤ ‘\ม'b�W/ฺ้าอ?ฆณแึ>a6!่๊%]sฮป๏Z=j$Ÿ๙Lฤ -i;่ญBว ]ฑ‘ฤ‚ฮล่`H=?ขs†ื_ฟว๋๏3˜�ไูK!สญะQ‚ณOŽ/ธXY”“,ื-Qไปฦฆ๊9ญ M'ˆ”ฃi[VMG฿ทLW Uใ=ชqhpฎกฑ-ก๒๑ Šiสa-FKขHฃฅB r5ณUร O‰ ฏƒจ'”=MืัT ใ<ฤv…fใ ‰Crด]Gั,‘ฝคZืpดvฬ'ฯ0˜\a็จ ฦ ม Ž(ซ‚บ๋‘๊ึ๚ฎรHpMI’ค)MUp�ไ#ฆำ)ก ฆšO์JFกd&ท9‡$Fฐ. สชa’€1ํjJ8�A ‹ํ๎ฮ{ข็ฏ๒ท��฿ว vqถƒ�โ์f฿ญ}๒T ๅ›ผxฺ�ษ\[cปึ^ิfg.�8Šิ6UYGdใl]ƒณR,งO๘สo�C�แ๛}._�,๗฿ๆœ�ใ็ื+D1�o ้ืS‚0A™!3"~๋ฌยส’�้�๊ห๐?๋“วt„าš~uWe็x๖ ๑p‹๏|ๅฟd๚๑-v?�pp๓*]ณโƒทฟว๎ไ—ฏ^ฅ˜}ฬƒ๛๏๐มฝ D� าt‡ช์ooฑททK 5ห๕šัp„jดRฦ˜งภHIืY,~T[Yšmืb‚€ถ้8ป˜๒อo“๏๛ฬง,gsvฟ๐"Ÿ�ๅ/!W ฒhภเา%s X1 zฎ ไAยฮฮ ”Iั&ฆฉW(“`d>Ÿ2ฬ>ผฆฎ(ึkฃฝี,ˆ~"าซ*๚1๑ใ้!.vƒv~บิšลrsnmoiฺ)�จ^*ลlVฒ,vs.<ี1l2ษฯงkึeร๎๖%AIษ๋�็?�Gฟส\Iฤึ!ซถก๏[_W๎๏เรรๅ2 ง๓9ต#ฑะtึaยื;tฒณ7ก+*š�กรe;ฆณ%[[#่:ๆ๋‚๋ฃŒe�†ฝษEปiฬลlŽPฃึA†4Uรษ|Ie-ฒoุŽศuภบฎฉmOUw์ๆ)•๓—๘aš`�–yฑๆ�bษแhภjต๖ฑด๏๘็ฟ< šชE+ƒ "ๆณž P`{tะท ฎ/้๊B‡�Mƒ ฤH%™žฬธ๏œ@๗ไ�;8s๒dมู๙a{FcอzeอBฦ๔zBื\ะฏเl‰P!ฒ=ใƒ;m›2ษ ฃ+7ม@ฌก—ธ�Aใ”BดSDฑ$6ึAศSMŽี ร๎ฅ ้๖5า�˜' tรึ$bๆ8g้` M่{…Œทฑ:รš ง2p–kT1›UX™“ไcยญD$�Œv/s~๖„๛;ขlำ=Fi‡� W mฃh‹นWฉŠาคุzEUXdzเ}ฅA‚“†N่‡๋kŸQ;ˆ9ŸถLg-}"ฬˆNŒฐ2กlcŽž”||oอป,๘แk๘๎หท๙�k็|๗‡๙เ๎9wœs๋จโxix�๎œ7฿ย๛๗ๆ|๐ธๅƒ‡ N .๊žูขๆxถๆษRb�žŒ[ฎ(WQ๏†q ุu3"a…’กq์G‚ก˜ถ&๋gฤF2‰ใTkGฌ!6Ž$0แ,R,UQ ฌฅojŸu-ส๖ุ๕E*รrฝ„\ NGค๑ๅœ "‚Pq\ยhศh๗ Š่œ#๐๋Oย(A˜ชณดUŒRTEmำRu ๗p&กถŽขn๘่ดขuŠ�<ยธŽ@[‚$ฃ_ฏจ.NiZ/ผQt &9ฎท่0็ม๙Šƒgฎฒ}๘‚฿Qoฌd>aJ๙๒ฆ]Rn€ยSผ6�aน)๒b"^=-๐j�ณณ๗๎�&ใ\‡�rฤ9ปŸdตผวหฏพ2 อ๔œฯ่ญ$ูXaคA$)ษ๖ฏฎฌj�๎�แ�ย๖‹_ išMศส ้Z๚๙๛ธfA็-=ฤDoำUํ์โษU\r“EฟOฏv(ส†{๗�ฆ]�bถ)ี!a‘…ณEM:น‚า‚ฒฑ„๙‹%์LM� vwGh%˜^ฌ1aฐaŽK”ฺtี›N๗”!.๐��Fี�5=uแ#Uลฆ {>›lnŸ"(tJปบเญo�&฿๛ๆW`็็๙ไ�:ถ8โษ��šwฟ๑ฯ"ษไ๙ฟL+r�๚ั+|็k�ŠWฟ๑›��W� ๏=ชˆ๒๋”ำ‡��฿๙U�z๏66นมt�˜[พมkoผG�ย๙tม+ฏฟม๋ทฮX‹ &ŸโำŸ๚"้pศณืฏrฐทว Oฉ›šษpˆ%“๑€<C*ฬf=ฅแ ๏d‘อ††(ิฤกFบž�ญ?๕…ฯ๓น/�,๓ีŠท฿{Ÿ@F๎HF)20 $“(F…1นQ์Žv0Bะฃฃ เง@eี๚๛ฃ๐ฃpc”ทษ9‡1!&ŒRัwญOฅณ`ฝ‡๛๑�5Fผ ”ิิญ#Nbยะฟ/„่€ฮ+๕ณEษx˜ฦ็�ดสฏ|?_ี ilภ9Œ ๘o~ใw๘๎Gท0ƒ-ดิฬซซ๛ฃ!FIขํƒaฦ“ขb =าิ E $U�a’„Iา๗๙ฮชฒB ๅS%ฅ ’‚sk้�š80ฤaศฒ,Y ลQ�ะZG dJณ’ <�๖ŒT@ำ4Da€ #ฌ”ธฆ&‰ Eลีฝ ฦRฃpR ฌe2ะu‹ชaลŒยˆBแ ›�แŸ}๖หYfำŒ hฺž฿}ยฃGSv‡4EEณ.q”๊ dใ�บRแ:Gkฺถใมร3ึห’�ฝฅg็ žฬฆปป;Œ๖=mงƒฑง85๑>ภfEš†LW1ณ•ฯg�ฟั;ƒR-VtD๔" าๅ:dข’)C;gg ๗ฏ9:k๗ข!R5A˜ ˆŒฤ`ปŽ@…๔V`๔รค1:48'้ hZ‰ ย„iNัHŽŽWTซž4Q˜ศะฺใfฤAฯ�ญ9>“ '—^ม C>ฅyt„P9ถƒฆ\ uJืKสZyง™PตM3Ÿ�๛่U—pฑptTs1oธ�๘œ[๑๚๛ n฿/x๗ใ?x�”พปเม“OKฬ.:V๋’ฒj)มhวัร7y็ํG"ๆฅ~ษ�8!x๘F ฝ/�ถศ๙��๗๘ซ๛os๓็�U‹]�QW์o.Heัา๗ež!เ…U^ัŒจ(EH่‹3�~๕ซ�ฺฏ�y๋ีฏA�mฝเƒWƒื_�]ฮXชหœ/ืผ๕ฃo๒ฃ—ฟม�๛ท๘๘ั ็๕9�4“ษลู=๎�?ฆ1‡ >ห$ฎ™–†t|“๋7?ฯ้:ฆ9‡W_โฦ๕y๑น็น|ธวแ�.Y’…†$ฐŸtืw„aH†Heแะ6kz๏:qvใYไรlc๙๕4E้้ฌE)ม�ฮฯ>�<ฯŽน๛สYŸฝLล$กd”ฦ$:@ุŠIค‰ƒ า ํW'@ู๔แPส�ถlWำิ Bโ$�ˆ�@C�x@xทEทัq้u#�ขๅ+x�48a |๊™sุ~5บมฃEอbน"ึvžมฐูKฉ(›žลฒb4Lษา)|ฆร?๙๊7นจjฬ๎ ŽV+‚($M#„QTZS%q`q Kณู฿ว ‹"�Eฉญ[ชึ†Šaq6b๛ž๙bE’&\Y�Ž ๘ฬแฮ–ึ1Hฎไ)‰ั\"Šบคu‚ํ4ลJษƒล’๋Iฬ$Oธh{่zฺบแ Oจ{หูjvŽซ‚u[ฃ:หh2!h[ลšขตะYิ�+Ÿ๘๒๎•ซhญ1AJ๘�ยรG3ย8a2‰้:ะฒว:ํฯšพ๕ืฆ๙ ใ�ขfYฒ4b<จˆณ!'šณis1—ฏฐr„ท้Z‹ิมฆ๛ศฺ้“ Žว<ธ๗ˆฆiูž IF#z5 ย„ˆ(A‡่j‚A†•)F”PŸAsFSYฒqฮ‡q๏aย1น|€0น็฿6 ฃฐT๋5}Wg„ิ4ซ ‹b=+จ+บ>@ M[๖0L#?9ๅ๎รัฎa5]S”ะ้ ๓…ใฝ;วœ.4MญฉJหใ3มE๓` ŸIฆ+อ>แญ+žjn฿๓๐จไํฆผ๑ฮ ฏฟม+๏\๐แ�บuฤ[ท.ธ{ผๆ๑๑žœ …eถ,8ฝ˜ำ—qะหŽฎ) ปU“ใะ:b;6Dถฦ„$Tใ,ฦถ4U‡lkšฮขคย:Mฃb็ˆ•CIGiแผ๎่œ้XดŠต‹”Dใ๗T‹FRYIjq–1Hฺ^Qด^€!uB ฿K6ุ†ช‡ฦ(ม05Dq„”†ะ†ญTQิ-หชงฌVUtu[ำทKีS–ฺd�](œN08tWcซาT‰(%ัHดm™ไ)ฝŽฦO–B)Qx/ํvš0Žด2A€ัยค,ซŽวgsึEAฌฦรภ‹SEœ%˜("ะึ-]Q๒p9ๅ…—>G6:@เw�๘&ั‹ุ�—‰๗�ถ฿ิํ ๗Zm:oฉฺ€๔žc�๙ุEกป;ปฌ—snฝ๕Mถ‡cข|{ณฃ‡TECšล฿} ฑZ๑™a?๋าPฏVศ8€แ_น}‚ผผว_๚�8ƒhจฯh่UN?�ญ ฺ•ฐx‡ฮ*ช`‡^ํัˆ]’$A5๗่ˆIฒ๑๘€ ปJŒB2ฺูๅb‘FŒ†1ณ%R๔-ญHbนQ!‡huีn:nส[„ฐึk๘ฌ๓b>kฺ้žuัFhkสชc0ŒPา_hค”"•ก)Jnฝ๓cพ๙{�œ฿�ต�'�๎�‹n9ธษ๔�1‹ล).�&ฺ๚ ้ฮ‹จd‚T#’ษ3ไปืษทฏ“ฏqํ๊ณ|๊นห<ใจt‡ญ�›�xๆYn^�็สOsๅส3์o๏ฑฟฝลึ โ๊�˜็ฎ^fg์ำฑา$&0Šถฉ=วZIาฤฃAƒ": |ึv๓�c๊?ฃvอ๎ณN๐ทใŸ๐ๆ“๋T’Jฉ”,YมŠ–e0�`0šf-โ@๗ M˜6ณFอL7==@ำ4aฝlŒ#ุ8 Y–eษJV*U•*ืษแOผำ๓a?%ๆ�ฉZguฮ๓>๗ฝ๗�]ื๏ซีš,KญZrร�ถ6i�BˆofณีฆdEŠดีIm`e]bŠŒฯ~๎sฌ ็y€…k9?seI bฅเ`4J๋๚b e2ผ> ณ ็ขD่ฤiVyb Ka8›-y้ึmณป7&/r†!ะฎgtรฺœผศ่ปdสjฃ‘๙์ศ’zk—vีp|ฺะ8หม^F฿นE:LQ…Eจ*ต1 ˆNค*;ปร ถฉว#ดผt๓.ˆbบ="zหํ๎ฐœ7ฤh99i9=‹<cลอ�Kž}๑˜฿�ส พ�๔}žx๖Œ'žŸs�ฮŠง_<ใ…k3^ผ~ยอใž๛ง n�>ไู๋+พ๔๔)_๚ฦฟ๗ตc็Žๅบๅฺ๋�ฝsส‹7V<kฮK๗–<๙โ!Oฝpศอ›ว\ฟำr็�’ๅู17nr๛ๆ'๗O8<=#๖kD๔Hy๛฿๕�?ศƒฏ}}฿มpบ)— }‡=Biฒ้Cะ"/}W?†f จถฑ�6‹ๅWผšผคA็๐CวzŒฆ8>ํ(๋ŒQe9>^ฆญŠ1๔2+ CH‘1ฃ่;‡2 ฃBIิ+ฬpRฑH BDษbูแ=Œว9G๗fž4œ�ฅ ˆLšlฟšs�ล—๙ํ฿๘O�็Ÿ๛W|๚ท~’/}๕๗นwบไโƒ๏aด�Lพรซ^๗Nถฯ=ฦd๋yQ •็๒…๓”ี”ชชีป�{lO๎x2ั5 uUrao—�iw=�9ถฆ�hcRิKIฒ<ุZ)”J ฦ๚>ี#y–ผ@™็8๐�ฃดฤ9’<ณxœรฺไŠGคr๒XDฺฆaาŸ‰H•ชc{๏y๙ฅg๙์g>G๏$ลdL^jดh่u ๔\ชr๊ั6…ษPสขmตa$>C?8ดJ0)DสuoXๆ “3\@?คฎ๘ฬš ค&&๎�†3ŸJ^‹UKื ิU‰ู|๗•าH’=๚มัด;[5e™oจm)ycJ$4m‹ ้Dส‹~๒Ÿๅ w๏กฆ[่ฮฑ’LB7p6›‘)Eซ$m€fฑ‚QJ#g\ไินมญ{œ xฃ˜Xอคศศว#„Q()9(- ’ฝLQk ^Z๏9๎Z๒Œฑาด}ว3๗QรภนบfัuH็้„ฆ*K cธ7[ cD[หๅs๛,‚'4�UIซ$;EN"ซ8].ม{&ใ1ำ๑ˆ“ณ9๊/~ไ๕ญ'#๚.Q`ผ๓„เ9พwJ฿E.\ฺ'บ†๘สŠฦyŒอp.M}ำ˜ขขm5m/ุูPK”Œ,็Kl^p็^ฯ�มลจD„ิ^SLฮcฌลๆ5ถฃLฦhk›ูYไ�QDหŒญฉ ( d ฑฤ‘ใ\dตr4`ถR�น฿ณZEๆ+ษแiร๕›wธ{ุ๐k พ�ไ=พ��)O^_๓๕g๙ฦ๕%_}iฦ ืO๙๚‹‡ฮw�ŸIe&xโ๚ร์&มG|Hฺข์NHฤ่ ขผˆY=ๅ”ฦ—8]cช df  š.ކ.Z๊๑9œL&9eฎ˜/ZสQ‘ภJ3šึ) l^ั;!ฦ˜&Jตdท‘!Bh†vAำ,1Yล�รE‚„๔žงž?ไีžฃจ ฺณSž๘�'๘ฬว�Ÿ๚๘โ๓ฟ�K<๛ฤงi๛ภึ๙ืฑ{้อœป๚v๖$ห3๊๑˜�ft]‡5“T่ฉฒŒษd%ม๙!2 )�ี๗(ฒˆI>ผsฒศQDŠ<งiŸสFŠขHถTUIืw,–+๊ชยl4_ฅBBžgศแNoฆmญ5ฮ{ดNnํรF:ะ›ร†มแ6|–ๅXkจG#†กใw~๓W๙สWŸขชG\~๔ /n3)$ถqnฒลAUR–ด4฿ƒL€ˆ ๏œศ๓ Rฆีw^0ธ~sฐฆ็ษZƒ�ฌม‰ I+๙ๆ%EI?xBpXฃ›B’Sถ;ฤ@$2[ฌ‰!Pไšฐ‰Nฆ?O| i;ๆไน!ฯ ZJ๎.๘็ฟ�1NTป๛TE-KœL‡ปชJฦyF=ฉ0yŽrนั8!�ˆi๛%ะ}O;xดT8s9จKnŸัv=•’˜M๐ไ�qด!ี-ว4ห8˜nฑ•e,ผใ~็8]ฌ˜อœ๘ภธ(x��ซ Hjทฌ8[ฏ8˜ŒษคโฌmXuY]2อrถLฦ‹ท๎ฐž/ฉ๊#$žศDkrcP๚C}tTาร"ำMัf–ฆ้ธ{ฏa4*9wqmrฒ\cm–ˆNรภะ: m นตœา6I‡ฌrEำJPw—œ,SKอษIรO฿แๆํ%7n๓โ ทนqใˆžปษ7พq›7Žนv๋‡๗ฏ๓�3^ธัr๋ๆ’ฏ?sศ—žธลSOฅ฿๗ๅฏ^ใ๋O�เ๋O฿ๆ๗พv›งž?โู—๏๑ไ G๔๓ฬ’ี9Qmโ1:แซ� #œ-ณe–‘ถzG๏"‹Uวะy QสLaี@ฎน‰จ่พฃะ7tฌฺ#EŠfitŽ่[�ะr๗ุ!ใ€๔-ัyฺ.ะ‡ฅึ†u๏Yฌ2ญ่z"ะšฉ“ซVH…0ij�ฏ ึJถG–("ฅ-จŠ’ฮy๖GฉชOzxr้3bXsฟS�šถvOv˜XIืญ9>›3›ฯišดบสญeฝZ}3฿�t-ฃฒcฉlNe U–Œ™ัdx)“fo ฃ_�ฤฏp้‘7ฦ;�ม{์hยk�ๅ�#eey๘ตoโท็‹hmฺุ�ๆ๎�๛<:๕\ี‘QF๗Œ/\โX๙๘ษ๐�Yฎ>�n|ฟBkอm�๒Aํs๋™฿e8yญซ฿†ฌ.ก&ขฒ �@จAfSส ฒ้ƒ๔biงTu”kk๒ยRs‚ฏจ๊ ฃn๐ไyZฝ&]๕•[ห† พ™(ำ0Sƒฒ๔‹;|ใฉฯSทi๛ŒUำณ5ฉ๙โืnq้�˜ีแห|๒cฟยว~�Wx๎๙8[5DY1ž^f๗ส›น๒š’U�ธ™Žw0Fใ๚žฝํญtอKค„2ทihฺุฃmืฬ ดR”EI?ธDCRf™ตœอNqฮก”fTWEล08ด6ENืตญ้#ณ~sุy‚ฬฺoNม\? ฅ J)ŒัH-p’™”’aBR”)ƒ-ุ,eฎญอR้OY{ว๏�ึฏ๓?�๓ด}ขxm_ฝH1pywชฎ80km›>kSฅ.๔n…†a๐eYฆlฟ๔�€’ฉVUk Bโ�ชCeาหcŒธM่7ัณBา๗E‘am*%‰1=ฏ๔„‡9™5ิUN‘ฝRžฦZ”LX�ใู#๖ท(‹เ๓/�เ็ฟ๐จGE†. &eม@คYญษส‚ลlษ<.n่ง‘ฺZ‚๓T“Šฑˆ๘ถใฐ่cD่ญ&˜Œ๙rษ0xbL�S่,็คiษญๅี[ๆภA‘ฑWH฿'ใY฿ณ[Vผ4[Riหๅญ1†ศตำm฿sฉ,y๚�!นีhเ้๛‡ไy†ี–8x†ถใ�บ,gปฎ๐nเl�ฆุ้r…๚K฿๓๘G'ำ)๋•ใ๘hAณ๎™ฬธธL5๓žำูŠ๋/฿ใล—xู๊C^บ~สํ๛k3วWฟq็ฏ๑ล'y๚ๅ{\?šqํ๎Šฏ>sŸฏฝpฬต['<{ํ67Žผp๛Œ7ธv็[ท๏๐ยหwนqgมํ[๗x๙๚-๎�9J‚fIปš1l\ฑพ๏Y5=‡'หžo[ๆณšๅ‚ฆ…†(q]ฯV™๔Ž๓ำœําRYลิ ŒP่‰žR+r!ษdฮฺ+๒Smช เ=]฿ณ๎ฎํYvท๏…๒๘(ˆQแ‡฿˜ L!zOก$}R1G็$•Ql•†>ส t /zvGŠ:ฯ).ฝฤ2 นpฬึ้e‘I—ภ๛2ed’dh๑�‚ุ7L”G๔kFฒลธ%ฦญศ�@=ึ@ำ:vJ้6Y•–Yภฏรภเ"ญ‹4ฝ 79ZZฏศฒ’ข(™–9ำBฃค'CTLG5ฝKคอ+*kˆhJ+Sๅ฿8ัasลจช—„ˆŒ!ๅ�\ƒP‘ยJ2‘๔เพwt.ขg่[ฺถใฌiกgงLŒ๙LkjฮBฦึx—๓ใํZ† ษฒ)5พk๚ตO“?ฆ /rฌอ้|$S ฝ!lJZiฒ,cpษๅช!้‚Rะต ุฎjŒถDกYตท๎ฯpv‹ ;I์{vv๗x๚๚N– o|๓ปˆัง้ย๙”๛6›:U‘ถ]]ณ$ซ๒ 8ไฟNๅ๕hฤ3_�$b�s๐เc›’“ิ.e๊ /ถ๖‰}ฯ~๛yวท}€ปง_๙๊S์ํ๎rใฺ๓\ด;™ขqŽ๕bล\m๓ิrI'NจฦW‘ล๛็. L์็ฌผๅw~ใืyแ Ÿ็M๘~สห฿’0 :'FAิUj 2–u_3‘—9umP„ะh›j|�เ™ฯ[Fใ ฝรfย&‹ญ“ฉnใ๒�Thn|*9๐…ิ0ฬx๊๋_ฆWธrๅAบ>IL_{๒/ผ๐4๗^�Ÿ�า<๋”KW_O>:`� T>!่œฒžเ‡฿-้ƒF+C‚ีrษะ๗,—sธMrt|ˆ ?๔‰9%ฃz” ซฆc2QVืn\gฝ^กฅฎjชขdตZโBšฦœ๓mp.UลบกgฑZQื !~S๎‡’T๐ŠŽาw=Jkฒ<ง(ŠdVำc“iอhอh4"ฯrฌIz๒z>็ฅžใณฟ๛;�‹๑O๙ฑ�๐3อTEŽอ ฆW/ฑs~ฤn1%�™ขU P’*+B;aLŽ ล—ฐYมfO„’"IF&ีฑฆ}‘@i“peˆ›ร<ฦWŠXำ�๙ด๏๛žPห…ญ)'Mหึtส–5L Cf2–ฮ1p""~๚o~ žœ5ฬลั"�ซล‚aXSe‚ฆiXถi’ˆQa”ฤ(ษ5ฝk1›bŽnvฦช‰ไ•f{QณXฌYŸa‹ศๅ๖AT๔>&&ทk „ QF…FHM�gฅIiถภtœำu‚Yำ‘หžu;0‹Qjรฮq�ฑ[+Žืฐe๗ๆษี\็‚€c่ap-RDฦyŽึYบYโ๐มใ}zi �Q’yใ8ZvhPBขBdg{ฤม4ใ…kฆSƒŠžu�Qจิ?mมHต–ำv`Rภม4ใh1ฐl1*ส"#๔))ค (Cˆz:ฐV‘๋ˆˆ้.„D oY#Yš)KปหLYศ-m�R[ฯ–[ภ�;ณรดn‘”Nะ~S@0œ4Y\ˆx$V[๒\‚J`ญ’3ำ{มด๘9Y:z?‚Gฉ@๔]H€-#‚žฆSิŠ[kK; ไ๔T…ฅ�7sห’RFส V.้ำVu™S™ไroz‡ žฆ ๔nRฺขไyลW๏xž;“ผ๊๊รL๒Šตlmmn่ธ4cTZ’๒–ฦLiขPธเS\MฆC:ฤH?๔(`TWtฝCฬ5M�0๔iลชตฆชฦ,—sf‹3g3ด„‡/Nุ/ถรŠ๚๒๋๙ิกๅไ๔Y�ฺ฿๙ผ๖Mฏ%4Kโฆ +าlžฃศษํ—)๋)E]Ez!†กGšŒŸ๚พ๐Ÿ�=฿๕C�#๕มyเ~่ฑ™A5ํฝk��ฟ๕y๓;฿G;X�ู�:ใฝห�ฝษC�ใ๕[šู์$�sž—็’cqษภ�๔ัฟห‡?๒ผ๔น_โ๗?�‹4วs>๐ง�"—�๚aโะง H‡sp=}ืโeถ–<ื๗็ถทวDŸL]FดœฮฮศM–ึโYŽะ๕=[ำ„หŒฺu‹”›[ดJม%ƒใl>ggg›ญ้„ๅbฮzฝ�ธŸฯ89<"ฤt๙==9โ๔lฮ /ผศหืฏsํฦ-ŽฯfฌšŽฬFใš�ƒ}„ฮ๘ึ๏๛0y^:ฯC็ทศhูชFLั]!tAQo!‚c’แิf9Fm&lฃXญVX“Œt›๛$ึ–4ํ:็(‘4&™H7๚ถRŠๅชฅํz๖๖ทR3t�FฐIJ‰‘ณE‹sžƒฝ1รเ6ู๑t๎H•,๗็ŒซŒชฬˆ!ฒ๎:�าฟ�Y>๛๒MชK็่ฯA‘3<๋eKV–ิฃ‚ณล’ต5ุ"cXฎXžก๒ŒFDฮ*ŠQM)Ro€อ-}fXถ=lM˜อผx2ฃฎ2lUแg[x2ญQZsาด�nZ^7ฉ8Yท,บฏ oน|‰ฮ9\๐Œ•ฦEมแrE.แ|Ypฺด|ๅๆ.ํoฃ7ีฐbไuNแ=ณyรน-ฮ๎ฑ6’G๖๗y๎ไŒฺhึMƒ๘Ÿ�ุ›โฒ้กGJC?€ภฑZœCGฆRk˜่e0ฒ`�ร(3 rฺ(Y7™๑จะฒธ{q@UHaัEE่zŒ|T':šิ C‡k;th†ž=ฃยฃฦุ‚สภแฒ'DมศJJฃ้|ฤฤŽณTyzp๛80ฮ2ฒ๋ZLnำฺ ฬZ๐11|‹a-ƒ๓์–ก2๊M�o�ปdะžูz`wmฉiซHน�u๋จŒคศ$๓>๑มŠ๕0$ƒV?ฐ4F) +วศ Nีญ@‹D;๊:ผฌ(eŠFu26Œ3C็$bXฑ[Jnš=^”r˜=ศYyžึ+†u:P[ฏษ&ล^Ž †ฬฌษ7yMs+'฿@อiME]*-น;x†ถลน–๑จฤล@]HขWิฅEH่] ‡šถ“ 1าtBOญอ pxF™"Šภ0D‚/งฝeœ''ต–’B„Xv-ซๅœqY „คq‚iaˆฦฦR˜ด&ž\Ÿ*EาBต eจผเcOฏYvฏy๐ฮํ\ –ฬๆดmƒa”2›ฑn†> ฝ`ŠฒN“ุjIEdk<มไC฿ALMGMำคX๐mษ‹ŒีjMTฅ4w๎�f1ฟฯศJŠญห �๐–�ึื~‰แฯ�_�&ฦฆุ 1ญKำx " fง‡4ซ๛.ฅC=คI[(C�๓ฟ๛a๖งWy๛G�\า\�9ZJ>๙๑฿โ‰ฏ<ล{>๐>พ๘[?ว็ฟ๔สTPO๙๊sว4งGผ๕m๏โ{�เ�™-ฯฺุ{˜k/>ฯฟ๙ฑŸไ�ล‡นp�*_๘ยg๘เ�โ{>๐F~๏W~–ฝ �‰ฟ๓_ผD่†D‚K?ข๔�€4†ฌศS�‡๑“g=C็’�ฟ™ฟขH†4็RLHiEฤ'G๙+ฎฝMด.ndฉrpkฎ=๙ซ�ํร*ษ›ื๙าืžย -CLFC#™1 ฮs๏๘#u]cŒคฒ*�ฅไโม๙„๖TšฎkRNทwœ฿฿ep‡วG์๏ผง:ชฒdwk›พ๏Yญ—”™กw‘QU1ธ๛G๗™อๆ๒ะWRัต-;ป[ฬfsœOฺฝ๛๗ฉ๋ %AKI^ไ๔�@ืwฬfหดW฿๕๔รภอชม =๓ล’ษคbT”�บwŸรรCผ 4ƒKุิถ!lฐืƒ'ไLบ@ก BE&“)ฃฝ}พํพ‡\GถvK.ํ๎Sษ†Gvฮ1ฑcฐล6&+๐รšญK ‚|ณสO฿w›-—‚Qฆ@ษl>O~’VmL’ค‘Lจ'ณ†,3ิeZป‡q›m‡฿ ฯๆBฦežฺ๘Bภน"Z)ึ]’'u†�4~�ู๘k?๒s๑ใšLฦyฦ ถ“Šึ -vฆc k™฿พฯlฑ"฿ž&ถ€๗Lฆ5ฃœ็ฆVไ™ไม้„ฑ�บwฬ~@•9FF.–ผผZณW(“3ŸฯˆมัG oo�฿c’็ผ<›s …”H็QD–�ภ ง3สฬฐSUtm—ž›่ฮ์ิ5่O็ˆญšญ,ใพ๓ญะฝC�o๊๑8ญrn฿Ÿ3[4LJมส•4๋#ีrz๗ )dVใƒ'/F‘ใcDHี)๗Žv๐H๏ฑฦ1[ฌ0q@*M{ใ แAxr›ฒืbณfYทžVฒเXญrฑ™!†ภผhษค.“ึำบศชO`ะ@2–m—Šyำค๗ด.ม„ฐด(+ู*“ML‚๏;ˆž& ่JIฉ%CŒ&!=ซ„Œ~ึไ2CF— Hšฮั ญ,ํ ™d‚ฆo"0ญ ๋65ฌฌ†๔ฐYaX๗Žษด"ณšR๎{{#‰:๎.๑�๖�xา?ส้A<[ฃล€”พ•]โC๚oฑ]ั›–˜Iฒ�ผ๊ธZ <|ใ+\zๆc@‹.J–a„ˆ? ๔พกV.Fผ่ ๊Bctส_ถN„๖ดพ)tไ๔ฌCฦร2v<ญ‹ >Zด0tถs‡๗‘ึ ถsฒ‚๙zลญใ–‰5(iƒgk,ฉJƒp‘มG7`r๐Ž๙ชeฅ1(#XuŽ™š๒ฉoฬฉ ์]~=็๗่ป5rpฤ0 TZ�Kฉฆx๏iVKŠjLำด พgTX,W6ฯiบžข(าิd-Zi๚~@้‡ข@๊T…69W!"^๎๗ QUlี9฿๓฿ว�฿๙&ž�ฦs�ฦO��๙ก?ว[�๛�ๆ€ฺโ1ฝghืผ๐�98��ป;๔')ขcJฎ?๑›�๊�#>๒�!็}”ะฏx๖ฉo๐ง���žฃำ%็wถxวฃ%"wผ๛�๗์<ฤ/�๊/๐ ?๕ผ๗ƒเ�ไ๗a�x๑Y~๔Grดล•+—9::ไฺ๓O๐@นเ-ฏ}”ืผ๕=|๐#฿ห่�# ๛ชR"(““xS๕จ6uŽมงƒญQRรf-ฌB|๏6Qน@eฬfcพ1ญ๙WŒ{ฏ˜�^ฉ`5t๋wž� >๛ีC–แ!fง‡อ์ํpr:ฃจG›ŽvษsB(๓ๅ‚ƒญ)ง๓3‚๓ฬ—K๖ทถฺ่†ญ้„ณ๙‚ใ“ฌตœœฒณ3agk‡yำฒ;s็�]|๏ษ‹œีz™j3ƒc่Œ$xวษูœู|ฦ0$ ึ) :Œ1„(R5g^ะต=งง'้‚ัจJฦฐพ™๋ี ืw4Mณย9Ÿ6Dคฤ@ง๏�เRRT9™ฑฉ;ฦ ๔”ฑ”yฦชiPJำ;ยc MYT\z๘ฏ�ภ›•ซ#“�ฌ,็Uเ`๏Q‚DYRV5„$#5ญร๙ด…0ฺโ�@ำดTUฑ‰๛iดฑ ƒcน๎ศmrŸวั&วฺ ๏า๗พ๏zVญc<สป�ด1›ฌ{Bโ�ภ๑ฌมjศŒDI๕MYA๋๕9™5dV3ชsผwฅ๘นO™ฟ๓3ฟJyฐ“�.ฮฃ2ห4ฯ„DŽJŽOg่ชฆ*2ฬbษ์xFŸ็็0“‚ฒคฒ†ำู‚EืใF)�ืฌV\ื,ฺŽษdส๖ธdฌ$ฅ”จฬ๒โrE-Tื›–;‹9mŽถ†›ณ์lsฑชธq:ใฬ \™NPn`ู9ๆ�ณ๒ž‘ี,bเ ซXฎW�Yญ)„Dญ;.Mวฌ�@ณn(ง )1eฮต{‡„ถE�๐w=ทjE?Dš ่�&้ศJาฏZNVŽเGำงZนq!ำJ-๊ดึ#ฒ๊J ฅheN฿wŒs…-าถkK.หๅŠ“ำ”›ซ ล "1Jฝกฮ ั#d mAฎ4Nl&q.า๖้@ื9/฿žX5 ฃJk๊*=L IฉO/ฎฑ"ึjๆM B0ชหค› MQjvสtp๕โ0เcG)-Wฅ, l2ฺA\OiAYƒp็�’ฬFvJ˜ทขfgbi;ฐนd4ฮYฮ;ผ_“ี1jNื”าQnY>7}'_oๆ๘ฐ่1๋ธฆศ‰ญc=Ÿc‹ด€bjh‚DX�9ลฮˆม|Œผsดโ๕_๛ิ์ฑจAฒ`ั๔ˆฐขk#ณu‡ีuกp^…GษŒขฐDU‘>�๕rMฆ,! "=ธม{\ (,;c›ช•c่� ~ถ†ฎง2๒"2ฌ=C”T™ฃoš•ฃสภICa">DNVซๆ#N๚ภiHQก็O"ฅ–\บ๐(U–c•โ์ไ.EfU=&/j๊ข mšฮU3๔๋ฎล˜ŒฬXฺฎ%ˆ29ข๛ฎง,r iืKชฒค:IK๋ขโp0 ล6ฏ~ำ๘ภป็ยDฑตทE”dล/�๘?โ๔ๆM�ศ_๘([๛u:ด_Aจ†@่[”T�z๙๗น๛โ7xใ{ฅ6uHฅ๘ฅ๖ืi‡Š๏�3‹ญ+๑๑_๛M�‡ฟ๓?๑ชWฟ†ฃ๛๗ธ��—x�{^ลท�ฑฟห�๖)=_�ฺW‰กcท^c์6?�?ษษู[ฃ)ทn฿d2๑‡พ๓�๘ฎ๗ฟ‡s<ยh |jเBฆชL\ภ+i ข๗)ป.ฮงฆ,mdb๋#QนI“tH•!ส]$ฉขsำมI๒ั+/p!a–sž��ฟๅำŸ๛2/ฐZ๕ฌ�–Q9"ฯ3ฺa!นw๗uUBค๋ |C œœžัถ=�๗d ŽฮๆdJpถlˆQg†๙rMz๊qI–WDYYฒ\4d™FK฿v4๋ddหmฦbฝBฤHžฝƒsœ?wŽปw๏Bค*‹อ๚ุั4 R'�๋�wRm F‘เl~JUฆn๋ๅ<™‘L€ก๐มใฺžฒ.ัZs๏�"8คดรŠ}BŒธถ%/k(ำ*พiึ-ษฒ‚l4ขส5ฟ๕1๖>ฯนZ0šห็&ผ๙โ์dŠํb T‰อGไe:†พeนJ&/ˆMtฒ๕บูธๅJ[ผsด]‡ฑ9y–ั๗ BHคLฑไพOฅ,CH�2…H(อ b(ญX7=‹Uฯ๖ดHฤต zUฉ฿ผ็l‘. ฃชภ;Gp�ว��๙็พBU•”Y†Cp'xฦD-„d4‚(่dคœฏ8vžบ,˜ุŒy๔TUฮvYpsฝฆฐฃ%ืŽNizว๙Q…ส ำ"g�h๊Šน๓8" ็p!2t-A}เัญ Zภ๑บg?ฯ(Œไ ท๎Pห#“š/�บอN^P(C(, ห™๗!๕ฅ฿[.ูอ2T?#Yลฝฃc�๔๐UŽฮๆฌผ็ฦ้‚qfPo9๏?๊B โ‹0ฐ\ฌPฑI‘ฅฆCˆˆั:ี,FO?๔„a`่:Š,ะvซ.z4^)BะZดัt}หฒYฑvš sFใง5 หzŒซŠ๑ธJ/)(3E‘EŽ5†้d„5ผD"ูฉ,…IZl]dา3อ5"*b”L+pVhr-qNฐSiผ—(ม๗dYN%FยฮจfT&]ผV`3I]FsH`jCบAบBKvฦ9ใ20ฒ ผGG‘; +๐ฝgœIข4TV1.R๖ืะ5-e%’��$ >ำ�ฎX]ธย'.�>๕�Uไ๕u<ฃฟศ8มเึช‹TดSl}๐ j*0ฃŠๆิ‘W/ฌGดฝƒ�ห”ร •ช<2Y„ั˜ ฆใ‘Žณดž’ะLKษ�VFnBญ<: ,W ฌMฒ€A€0`T2.�–ขะd™&Šžม 40ฮ-R Š"ลIขฒŒถGกรM„( ๋X3“cfมเฐŸ.ก1�นฤ^=ข0ษ 5 Ž๑hผiชšc$ฤHำถษ0โห๙)1„คอI$`ก,J|ฟNY[็XอO6lๆฃ๛wศŠ%&+Y‹’›แโk็{ฟ๏ร|๐�^ฯๅ‹[ฃ? „กC‹� ๑๑_๙ Œษy๐ี“ุฐท5HญNyนว๓ฟ�kHeo_�ด=„•lผ–/}๚?๓�—›+—ฏp้มว๘�—Ÿเึหื9ธp™ลjฮlyว;ฟqแ™ŒRŒณดPXอg?�ฟ�ษ/0๘em��ฟ๐ื๘ม๚ณ์^ผœJ&๚!i�›า8Žqํ-๒ro“ใM— iา&โ๛ไV๚•๒ไู@คๆ/e€ฉาฅ€„ู„Tโ’\ฦDษญg~Ÿ/�ฦ?โ฿�๔o๒ซŸ9ใู็^โูgŸใ๙็ž็ฅŸใkO=ร“O~'Ÿ|Š[7n๒า๓/๐ฬ3ฯ๐าK/r�ฺMฎ_ฟมหืnr๋ึmฮๆsŽŽน{tฬjีrบ่่๛@Y๔.เ†ผำv๓ลฅR็D ฉกสhฒฬ""ธ0เฝว˜; �ณZฬX.—้ืšูู'G๗่]@jลj9Gjค/็Yญ—‘\ฺ๋Uƒ'2ฺุ�ขw"คฤแj9'ห ขs,๓o~V1x้ฒน8;ฅ้:้Y‹.ตฒu}Š๗Jฉ(ชšzTrแั‹l•9อม๙ œ›Žจ‹’ ำs๘ฎiP:ญฝC่q�/ZูD2Œ‘เ]๚Y+“:ำcDiK?8คLCŸึi*›:Wญ5!DšถGk…ั:Mำฺคtหf›ใKk๔(2›คทW๒๓.ก‰—ซค—y๚{ วงg�“�๒ป\k:Fส2ชJฺQuษD[ฺu@0ฉ+N Nฮศaํ™QHcะJRg}Gืถฬฺ–2ทHำ้ตa™฿_ฎฺ5฿ธy›“กgงจ8l๎ฎZ.f%—'#z‘ˆฤ!:”Th›ฑ�l�V]ORััึคฆTšต๗๏Y.ืJŠh@Y)F่,รXIž'ƒVžฅEK–[ˆ ัด^1ฎ ชบ`ThชLณUฆฦฐฉe\j„ˆd:ๅ,'Yj 10๘\Frญฉ•BnึปF TฒcีขศŒ@DGฉำŠฉ๋{ฒLกm FO™๊J!”  -!OnHไ+แฐ"ฒjzŽ-‰~TfQBf@Gว๕{3๎Ÿ1สฺX๚ึแ†TพฒำQ–`๛�Yฎ{ผ€H@1•†Q]b†%ฯ_x ฟQˆ—Ÿฉ(๏žัอๆ ๋"8$ซถุอฦฏฆdk<"ทผืไฃ–rRญ฿vM>ฮ‘!Cgav——<ณ7๓F๕•ˆECU(TLฐ„B["7•ฅฬ%๋พCŠHืw4๋!U f ”"8M™—ไeM™ฦUขต!�ดิXj ้มๆ†่#]๋ะฺDH๕˜�ณ๎N)z$g�rธŽ�_8๎5ž{ วผƒๅzอูlษนsWู�:Gฆ$ฎ๏่ึKดJ‹ึ–พ๏ฐFงจH๑1ฟ‰๓eEžง‹กอ2๊ฒDHมzนยไ%!D๚๕œาๆ(cศฒ—ฌEอฆฌณ1๏�ะป๘ม๘NผบK–ฅI9๚€4บS|;งจฦฌcฦ�ฉอซ}Œญ Wมงƒ2ฝ~1:t–ำ.{ž�าวน๒šw mชW”า๐๙฿๙4Ÿ๙ฝ/๓ุ›�qฦo�โฟง_�c:ฎ๘าWŸขœ\`ด}Ž'Ÿxš7พ๖!^๗๚7p�๐&JgX :฿&ํpๅ‘W๑�w]ไ�o~รัKผ๋C฿IYM‰~ x๗ษ&gnrN๏�โฮฏrp๑QT>Jzฑ‰n๏เSฅ2˜†H~e6ๆฬWr๋ฐ9ิ!มl6Dฌ่=สๆ ฟ๛K?ฦO�ซฟวฟ๛ู฿ๅห/Fฺ�ณZฏฺ่Žํํ=๚˜œ�eQฆƒm“#/ชQภจฎฉซŠช*1™awŸขศ‰ั'—x•‘ฉ วj“๒๘1๕JCHฝะCฯj•ึุZIบฎ�ภ฿D๒,ˆˆQอzE฿;Ln๐}ฺ†ญึK\L&–‹‘ˆwžข(ศ๓ฉ4Zƒ๗ J‚K&ฮอ%tฑ1ฌ๕๋›–ซ5ฮงพํพ๏ฬD$๙B�hmจ'šถฅ(“c�๛ศd{‡๑จเ๒kฎ—uฆศ ร๎๎™KมHZิ& TŠS‚฿ƒสำ๛@%ำaŽฎKไฦๆ„R้›ธ้ๆฯู4พir�>8(ฌI‡พJผt!ำแ-6UฅM;ค’'“โhIยIำz ‘Uำก•ฆศmJŠษ็žy๛์ื`R3. ส�ฑ_ๆm๏๘ ูจ6šฏiJฐต™'?๓ –'ืน๘ศ›ั6c1›๓๛?ฬ/�๊วyโฉ็x๕฿อ�…ว๘๙Ÿ�๚แ”ํƒK<�์ ๚f…sU]๑ศซแ๘่&หู ๓ฦp๏๎Mฎ^y€/œ�ฏ9:œqํ๋_ใํ฿๖„‘iIVไ้%I@สŒู�—๙๚ง–W=�N๊ซI—้ยc$ >m/”HS๕ฦ<.„Hฟu3i��๖ข฿tกง๗q๊ŠฮFœ�|‰Ÿ�—�๓Ÿ�c>�\ฯi[aดคmW„ม}s#�€ึŠญํ)~h!ฆฯ>ณ้Bุwฉžถoฌ1้ ๒๕ชกช ฺถg่Z| D\$  ชบD+M�ต ฮฃ„ †€ตำํฤ่w‚d๐VฅDB=A”t]ฯrต&„ศx2!วะ;šeาั7[Kf“�ิ4�fลˆ‹ง'gฬฮฮhฺฤ็ทYŽ1ษแlดBHM^Vุ�bคกชk๔f:-Š‚a่(gำ6 =ำํ1{„์๒.ยwŒrอ�ฮ˜ฬt(<2DŠ “พ&+Q›ค„’’( 1ฤ ^8IํšบฌI‡ฐ”ฉฝKkตฑ1$ („ „ %BYฆ ‡๗.ต ๚ MNbtร@Q&’žษศ%Eช-•Rเฃ$3š฿ำ1ttƒgXอ‰พcู .EพŠฒยX…gฤ่hด48\ฯrๅˆJ l†ิ“๋„t•† m็๑Cฤbˆ$'m -ค2ฌA]ๅฤ ‘Œ– !! �0ค/ŠU,ฯ04)GฉJ๊< <“ุ2ฃฎ#™H%าX๚!RU�ใ<ี ฐuŽ’>u=[Mฆy]กŠi™|ฦพž฿ธ๓:๔5Oตrะดtร Jญ 6x฿เญ$ฺภ›__๓พฟ–ฝW]&ksขpl?4aๅ–฿bXฎ(๋md™ๆwษ\ฯ๒lอ๊๎Kิัsw8วH6\ฑGtH:็PYIVืจข$Jษดถlหtมฐ†<ฯุ��AjหบIฆe3Fu‰ญjb D0t^rบ๎ธปˆ\?v�˜I๎, –Lx�๎ฌ ฯ ^šIฎฯ,w›’ณNณ์ฦ”Œสmฦถd29เ��F๕”หฏr๙�ฆ๕„�]ฬF_ซชาุM.†ฎ%ห2‚”UฎYb2Cieง”คk[Vซ๔%�sr‹่ำช\+t^ƒฑฌฒ]๎ท‘๏๘๐{xฯ�^ห|พโ๐x…O‚qJ=ˆด&JK >1๚‘ ox๋ป๙า็>ร‹O|7ฝ��H›!‚๛ๆ'ะศฌFฉšŸ�ท�;|��h�ž๓#?N–gœฟ๔ฟ๐Kฟย^ฉฒศ#๏๛Kผ๋ฝ„G_๕0ื๏�ๅ๘่„jT๑ฦ7ษแ้‚๚ฏŠฯ|๚3\yเx! ฎ9ๅ?๕�dt๐z}๋‡‰พOซqฉ}๏Cช=%ekำ?เZ:๘RegšภcH@–o๒R t2ในฏ~Ž�๗฿�๋�๔ฏ}‚ร~‡๑ึ>rcxา6#nา~Hดวฎ๏ึM‹œ๓xŸPฝƒ๗4]‹ึ–Q]ำtgงง๘!]ฐบพE˜�}ืง๕xžด�aRf�ง๔‚�ฤคฌ }รเ|"ฒล€ัาŸ)IV�vhญฑVฑZ,Xฏืดซ}?`6—fีะดIฅq+/ �ฆ�“b†YQ"„&‡2š�†›ฎีฃM�ฆaฝZฑXฬ1:ลข|ˆ<ม๗8ืฑแ€ํG <ุG็ŠสX&•กศZ๕ิป—ู.j&ึbMFDกL๖Mณ˜า†พO&ิDM{Eฆ๊ษL–j!๕vฟ19มA8Ÿึ�1FบกO`ญ“ƒ)‰ค‹\สƒGบ�aMZ'๖ปfsอย๙@฿ ฏ@Bี.š†๙ฉฯq๏ไ 9ัลฮq่Vณ8Yu)า&+๏ูัšlT3R&ุ’๔>เuยKื™ๅก�)A ถญe[Iๆ�ณhืx็xqถคPJ๏:”าŒf�5ผxz†G22†�ห9A%พศค(Q:ๅว'UŽ<ญ ๔Cฯธ,ๅDศข`ช�ง์|%%gMƒษ2 ฅธฟX1ส2ิป;�ัu๋i]"m็9^,Xฎ:<‘<ƒีบ'๖-ย{V.ีชA†”่V H2 น tวmเ&Fiฌ A๒ƒวšไ>–�ำ4ะ๗œฬ“›ป(s๊RงPฝไฅM@๛Bฃuา‹‡(0F1ฎฦŒซMบ1+Up6๏ะชcZฦuชช3™aTjŒ‘hk1ึ0.s–อ@•มธฮ™Ž-Zd๔HฃP6Cแ)ฌยuฃ“ฬ ”ว–e DO”)๖ฃBE™euI๏zšuC™iˆฉใU—9‘ˆช๊dฬ�š2ฎsพคแื^z}(0COทZ2„�Dน „5š%>,1๎ฏOฑฃnq๗™ฯ1N๏ *}ž‹�็‘1p็ไ]X�บ‰ฮ2fทnฬีจภท'๔+O์#ซP๒บญ“T–ก2”1,W1& �0 ฬ›ศฬi๎ฮ๖ใา…}ข€O๊“\yีฃผ๓฿O๔/oxรฺุ=เ๊ฅmนrŽAlsฒt\ูณŒ๋œ๙โ˜Q=F›-†ีM>๓ู'๙ุงพฬฮ…‡๙๊ืŸไไlฮwฯๆไ๚7๘ต๛๛xนล๛�๘‡ �ๆ๛t๛Hฦูัฑ9&ซ'I.`ำ฿*6€š”!KZ๚fšŽ๎๔ฒ:cvxศฏ�์๑��฿ๅน�3bq<ฯ9;=F�<ห�€ˆ‘ฬd .แ7็ณ3Œ1 }ฯb>'ฯ“g&มฮฮUYฅ"ฎ‡˜ถ>ัง‰Pšœบฎ715…Iืtnภf›ณ6ๅ;‘ฎoq!I=CŸ6yอบE*I? ฌื}฿แC , Œฑฌฺž#ฺd๘ีxLž็“!คDYƒ”"}'u†�ศ3‰~™S”ฉU‹: t˜ฌLSuŒธฎม‹ˆั ฅ ฦf-ศสŠ��ช*gพZs๎�9^�ๆGฺุฉฉง#Li9จ5##*.\x˜ญ๑ˆQ‘S่ฃฬฆg=m"bƒ๓‘Lˆ1 ๚พ#๘ˆาฉ๔GฉdT๓!ฅ‰Œyฅ”d“Jˆ็C?PVe23Šิ^f6๙้4ลK๚MJ‘YBH™๘|šาc’šฆEА๔vฉธw:็฿์3œ๕}ตdีจdี9ไชง ตขœิdนๅl�2hษ๎ฮ˜eำข2“พFำ…Œ๓ŒLำบžลjอj�๐า�#ด6œธทX‘Uง] ถJ*๊ยฝใp�`M†’i]r6xO ู฿ๆฺ้Œืํ๏ฒ์{๎žžQ9]ฌบŽฝฬะบ@่ดT,๚žล้œ�hšh–KŠ๑iาฆcัv ิz�ฃuว่Œฎ[C ษน่ฐ*า๗‘ถิY†ั”bซ2J&ฒ4”y‘๔ผ0�@Š›Xสฒ&ทfs๓Hๆ—ชิ…ก๑ั“็#ส2K…ใ‚ฒช|@ pพร๕�เ)2Eืvtm$รจ’ธพลw =้ฦ…$†ž<Lฦ*OU}็(ชœึyขŒห„)ฬrCVF‘•R+lm)k‹$GHC=ต !ข2ะ•!D‡ิ–ถZค_#mmQN*7 2‹)+ชํ=คอ1Y ฺ&Œ`5Bๆฯด.xู๏๒O]@,4าw,ฏำt๗�1ัยŠฮ5 ๑”ิŒฝ�m�น�ฯ?ๆๆ๑ฟ๖๓?สล-@\ฅ_(+Šฑๅ๐ฮ ,๏฿FvUŽiฎ?G}ๅQฺใ%Cำ€‹,ืะฏO9บ?็ฺ‰โ้;Ž๋'‘›Gžgnœ๒ิต_ปฑไูป-/6�=้yแnฯ๕ใรน็d�rฒ�:kธ?ธ5๓œถ0PกtI0ฎฆ์Oง˜เ˜f–ษ„ ำ #kูญ2 ‚�ษซC�`‹*"„  ฎ�˜a@๚Žู๑ัฦ์(ว;˜ข [-™ฏ– l!“ฃkZŒRlo๏—้ฅm•ยๆ%ฺ‘ฎ๋ะRขm†อ๓คูCปัร2cšuร๕Eฯ฿๖-<๚ภ%8_s๙BM^”‰Nึ/ C“ช}‹๏{†ู-คฑศ|‚ั)$™๖ผ๙�฿ฮ_�"ฟ๒ใ�;ํู-v๖.RŽท9<<ใ๏�ฏ�'3๎œ.˜๎�๚ฦฏ๑ลO}œธยฃฯฟ๐2.์qt|Bถ๕0—|=‹ๅ}FErŸ�Ul)ค�ใdm)ฬš(&œœ�c{:eู4x๘�๏�~๛‹7x�฿ฬ�๎>๋fอ…�šฑ?โ7~๚_p้U๓�?๔ทฑEช€D$๎ถด%ทŸ�2wŸ๘8็}3ฆ'yR&œg ง�+อRฤdX{ฅฐEจœ“{๗๙›๕/๒ำ?๕ใญ‹VS–%๋๕ฉ32ฃฯปจˆQ0ธชam†อ "qย‹’ฒ.7ฺ k�j "ฅBi™”YžLU1เœ#ธแ’<ึท ƒwœsrt‚ˆฎm้]bุญqฎgพ\เผ฿`ค3สzœ�ึขlF–gHศ‹šผศQ*ญฝ3ซ1า;‡Žถ๏Y.ืH"mป&๘)‹"Qฦขs8?$ /ฆ‹""ED[ƒิฉ(E[ร๖๖.>๚*|๔Qพํ]๏ๆฝ฿๚-œžp�่>—บH6ญถ. e`b qู่�*ูŸnQฐRcL†๔m+lV!EZปMษ0t)}’_ภG(ŠTD"7ฯfŒ)RV๙ญ 1ฆ๏}$2๘@ตนœ„˜พ�งษฺว$w ฮฃดฆ(s มปBŒ n ึŽม๒�ขuโŸ้ฅ��็ฟBนฟGi-FIDQภฒI‡ผVฌฝใ`kLa ญ€่�lE5%ำ`? Œแ�้)U]ฒ3Iน๋�ซ†UXW–‹�[,ผ*9Ÿ[ถณŒฝบเ‘�]nฏvLฮiื#ˆฬ๚ž*g*$cงMGฉ 'mƒ&pด\sถl9?ชคฤมn™q็�!หถCไ6mb`4'OO ์W%ฺDn๑mหํปงจ๗?Z}ิะ3•ฤ!Pไ‚ชฬ†ศแโ�”ฑEะl–Qไ ์Ž5RF2ศ3ร5FF…A[EŒV๛ดf๓aภoศC! ฌ่ฬRZ‰]ณ‘\ อbIืถ›ข"เ๑(๊บF›ˆฉ๘Bˆˆ’ชSิyBS‰ํh4$ณฑิyZหุ"วไษฬPDญฉF%J(\๏ฐUA=-ฑe™hIE–ถ…2#ซ*la1ใ1NHLQPLถ™A่T XooaGŒอฐe‰V%br=่fๆว๎=ฤแ๕ัฌig๗ม฿A‰มงต^nkบ5ฺณ�w�๘_ฒ–O�สฏ๒ฑฯ|‘srฦช‡�๓o$+ฃ|Dืญน๋%‚–dก@:ฯ้ฝk่j‡`šeL๓œ"ฏก_S*tpT6แKƒ๋้– vฦบnMื๕ธ˜rกฮ t๋y2 E6:ภE‰อซd$Mศ๒ %CืPU5„@–Yถฦ[Hญี#Œอq!e๛“�YฐœŸ&ฒžาt}jRRZำ,WฬWkดLtฑฎk9s†๋a๋ยE�๐zWุf\าฉ7>๔+p ข๏‰พGฤ€ิ&�์ํขG’สA2›๓๚7ผ™M๙…Ÿ�<๙ู_aq๗๎�}–oq��%๊ฬ๑โKื๘�๏๛^‚T|ๅ‹ฟอ�จa-J^z๑›ีฬfs{๔"“ฑๅไ์aXGใ3ฆ่xฦ๑ั5ฮ {�5ๅ่รฏ์ซ<๔่รœ��ใ๎��ฬŽ^fG�G�ภท๏Ÿ็ํ฿๕gP2ež!"„B่šใ›๗gx่œ๑… ‚ข U}ฆˆุอน'|cึ“! ั �ิฟ๘_๙ี฿�u>gถNษน1ฃY-Swทc(ห"eจM2�#J บฆลZอ๒lฮู์„fฝไ๔๔Œ๕bฮr='z่šฮ๕œอf,3‹9a่q�งhปธ่)ช’r<แสCFduMž,ฯ)หš=ถQึu5b��9Œฃ EYBŒiซf,]�ROฆ์;GVhฆ[;œฟt•G^�*.^นฤทฝ็ผ๋ฝ๏็tฑเ่�อdิ6ลิŠlรŒทwศ‹’ชส7Zธa{๐Œช’~๐C|๗‡ฟƒ7ผๆQ�๔๘ธธฟ nมWพ๒/ฝ๘;W.`G–.FŠ:ง™ฐตตอX๕Xํศส’ฬZฦฆ$7ึ–@๋ด)xลIฎ๔ฐ"RณZำค-ฅยoา>$๎นV):๘JAM2ณ)†ม'ดiฅžศjฉูL๋T~โ}ฤ่$iพ2๕kcศ๒|3‘งr”�ฆฟ“ˆ๐[ฯผศ๙สSิe- \ˆˆqBโbํกˆJะ…ดM0งue]ฑXต,ปž๕ะฃญแสน,rž?;cงฌgฝRผๆ�Cฬฺ5ิ%’— vsหีชเฮ|ษผ]SZรsงsฒ2ใ‚R„vอืn฿ๅฦั)Vึ1า๔Žำ๛งlๅeUฑR0๘ภŽิ4>ตฎ�]—ศ"K๏ตฤ’dฑN๐ฅ5๋ล*ฝำ�ว๏Eฅ4ใบค]ตฌึ+FUIื{ !ˆR3*18ขซ%Ai„ศ J’ๅ†~ํJ1 ระั ”ตธมQ–ม'๎ถ Cf+บ>e ฃ0นฅk{”i," �ะ"Š%า ฝช๋oV้Yฅ๑CŸโ*R#UHตงาใ}LzถƒQUง[ก ฃฐํ)๚€ฤแฃOบฎสฉ'S‚ƒผฬ๑�ๅ2ั๚-Q(คฑด�€๖•ฮ�‰ฎA ส*TV ๑๔ซ1‚สXuŠ๕ชก[xพt๎5|�ฮ˜๊$ะ�[ฺ�Hy‚  8ะฒ' ‹—‘๑ศ๒อ3<=นฬ๗Y-fHcy๓Dq๕ย‰—�4;๛5��c^ธ๓ฟ๙ฉŸbuzŒ=Œฬbu„=D(wฐUŽ;9ๆ�ฎf๏ไ๓Xญ™XมฒM7~ท™œฌƒgัฌ6๎TชE7\๑^๔Cฤฤภจช๑}G)!m!Cฯโ๐.ึ(T๔Sขล…žพiทฺฺุโ์์'4ZIฺ๕’�;ึMCf3vฮ_A๙ผฃO่ึษ!<ู�FDฯj1็่ไˆ�ฝ๓D?ฐ๎ส˜”ต–)๗mตก๏ึ มงธš0x๒ษ6้บ($ƒwธพ#๖-N•�—[ุษ”w|๋๙ฮ๏~7/@XงC)"‚ุญ! =ัu -า„ญˆ�Œะ{ค๔)’ฃถˆฎกŸ�คš๎st๗Ÿ๛ฬ๏๓•/~฿-9^ต๕ พ๔s�_��G�—฿๘aข_liษะฺูMŠz ™R~Fmบืฎ๙ต�ร�ไ/�_ป/8›ฏ˜Lท(‹ ืweฮzี‚L)ม{คH„!’ณำSFฃ1y5b่NOŽXฏWIฮ ‚าp๕ัWณณปK๐=—xc eY3;;eนœ‘Y‹ึЇ|„ข,ธ�>ฯ๏s็�=r“ณ๊Z.œปHำฌนuใ:Zf๓9J ��ฆ72_ตTEัšถmpฎag็›\ฝr…ฒฬqํ!ป๛จF๛ฤกก]Ÿ ฬญ,��ว���Ÿ�KlถMV”Œ๊2}�!E•ƒ`นXaŒข๋ถถถ˜aโO�เŸๆย�๙$ฯdขใฺKฯ๒ฃ?๙๓ฌว›พ๛�HใษC$d’Qfนt๙ L9ญนr�2๛;็)}ค.ถ(๋iช ี๚ๆภˆ"]r}TE2—ญš�›เ‘4Mปเ)๓�›ฆFนA‡(8›ฏษM๊3—Jฅ„ŽOQN“ฅ•sื๗›K{J*ฦ๐!คJR!X,ค”d™a่d„�ื/}ŒŸ๙ิุ฿�ELGœญZ\]Rkอผiˆ!&(s๔]ฯ�xDV—ผx6็`kฮs�๔”*หุ.2ฎœ฿ฃภ๓ลรS2C"๋เูWˆaเึ|มXiสชdแ`/ืิDฮ†ภYืใดแฮบใตใ’"ฯ�=ฤŽ'TRrาทไF#‚ XuศIลR‚ญ fวg<œL๊Šฏ�น‹UงHCส&!ก๚6ค3ูZMฉ,๗Nฯ�D•Uฤv‰V’!Jj๋ศคAx0ฺ&ฎn•๗%Zแ„DK่ปดล จสšข0ดห5‹ฆ%„H๐yUฆฮ฿fA<ั%ฺัจžา=๓๕:Wส"มš๐ฉ็;บไึ%4e!7eQ๚f‰ŽฬฆFจฎ้๑ฒ,K-8*รBkd๐iตฃMข, …๐mZ •— -]ณBEOึ(›c๓<แยะžC—ฒˆœดNB่p]วฒ—4}…62iแซ@+ t^ำ:ฺ่ฒw๔—/๑า�C}้eโaภท+‚ป‹%–12ึรœiu;ส�ศkฬ-n|ใ)ž๕š˜Jญธบ;ฆ.ใ๒ซ€|ZขŒค๗s>๓๔ฏฑhŽqพๆฮณOPฯใE…จฦุญgุ^๋?หโึณ”ลˆNh่W 2วD๔zfหyQ$ำ๓”ใ)ƒูb1(๖sหHœOทๆฑVLชวณ3D0ึMรฮ๎9ชฒโ๔๔ฅ3บี)��[ธจ +™Vว'',ึ‰K�{OžYr%p1ล„บ๕ŠขžbŒค๋’F้๛k-xš~ฺ่5eYๅ5mปข,s2mสPU~๐ญ๑1ะ๕Ž,หX/็ฌg๛‚ปฯ฿�*�ไ๗˜ห^M“ฅKซฤMชกsbwF์ˆ์˜ฐบ’ื=4๗!?OำvฉฤA{โโะ%}๑(9อ�n=็๔ฌใื?๕ป�ๆว?CณXขเฏ�ๅฟภใฏฝŠษ' อ๒„gžฟฦณืŽy๏;'ำ+Vkษru†ั 08?cน8ค_@ฤŽลโn�X๑?๗ vทงœฟ|‰ืฟ๖€ืฟ๎๚uล๘w?รห๗Ž๑!๒พwผ•๒O� ลtฤ๚๐Ÿ๛•ๅ๐ฅฏ๓Ž๏๙ณ\y�w�&'@ศ‚็~๏?aย W฿๑ƒ›๊ว YKl๔oaqซŸ๚ฑ�™/|๕ ^ึฏfน๖x฿qฐฟ‡ฃ“cบฎ็`๏€ แ��>Hอ๏}๚SฬOx๘5ฏๅสฅซ\ฟvƒพkišG'Gดซ†ณณ๋ี‚]BŒ)๙ƒ฿๓‡๙หๅ/q์nง-ีjลzร ๗มS%BB�ตS2กฬsŒ5ธ~…‚ู|…Š~p๔อ=Jซฉว—Xญ–(%i�9VvŒถค, œ@(บๆ„ก[RŽฮ!ฅfต๘V]หv่Xูœ�ฺrฐทG�Ÿ วู.8˜๎1*๖ษณŠ*ฏP คญ CCpkt>I€ญๅ‚ฒS1šถ'F‰1ื„˜ŒXษd4AkCˆ้{ ”ฆ<�0P—มป4}ห4ฉว@:ไCคi:๒|ำ>Frฆ“–9(%™/;ด–X“์‹ฆๅ/�Ÿ�†o�9คบxUไ !าEAVeˆฮฑ์Neค2ข04�qๅ๊e4p|tยqำ’Eศeไกห็h๛Ž“.ษ ~๓๏31"Œ!8ŸQjE!$๗ธ�4d!‘Dwฆ#๒0�3‘‚ง็ 2)xlw›฿?$ทฎsฉๅว'๏.*„J… �EŠ"Cฺ}ะŒ•"' (Š‚สf)ปจ$&ณHkฑED"”BFOืถˆเ(สš6&œd์[Œ้ฦ; $ฺจิึีuธพรป7x†ก‡&4mrส<ตA™ข"/*Fใ&ซ่]Šล่๐Mรxg—ษt๒M&ถsCโO)ใ฿,ฮ˜ู=.ผ�ƒ�7๎#|๏� “๑ˆณ๛'�ป}Hณ๎Yฏา฿]KMhg0ฌส ส-„_#„G˜|ชฤ ?,มwHท  ?!DI?t,šˆด56ƒท>�ฏํฃ.O>๙ ฎฝ๔๏�ถ๗1ฺูฃ[�…กaบ{…8วbqฦแYว๑้Šใyƒw‚—ธ๎Yf™-NXฮOXŸ>jo*^๓๚ท๐�๗+ฏy๕>หๆ”‘อ๙ิ๏|™'žฟษใฟ‰Gzซๆ”o}�"O๒๙�_�wไฃš๗�เs๐ุป DŸ�๓R�~ๆ๓\��_ไ‘w�vด“JIH‘1ฤ 8พ๓�ั�™ใeหท|�฿เ]฿๖~พ๋;>ภw|่ƒ|เฝ๏โ}๏{๏฿๛๘ะท๗พ็]ผ๋o็฿๚>๐�wq๑โež}�9๖ท๙๖๗}‹็ธ๚ภธมsz|Š1ŠญํนชGฤศjตเม+—๘Cเ;ื9Cฟยฎo‰พง*Sœ+ท Š|Qšฬ(ฌŽX#บSŽ๏>‡1yQ’ฉMŸฮๅˆผัถs๓Nie…’ถi‘Bัฎ็ธกAจœถs ]�ฺŒล์”_�ๅŸ็l1JฒZญศ๓b`1ŸS%เq�3)หšำ“cP’๗พ๋=ผ๊แ‡้๚ฃ%ซ๕šใฃ;|�™gx้๚ ~อU์ฮ^&บGŒGLsล–•”uอ�fœหaRMPา d†kฺf‰ถ5มw„aM”ฦ ^ H๒ธแี๛1ฦคR™Vเฮ…$Uลt๘๏BคธX๐ศMQ า ษฆภล9๚>=‹EY’ๅ†61PฅPJใ#8ฃq‘N๔w็ ~โฟ�ญนป‹VŠึ”M่๋เg*mหB?PVAHVัsy{ฬ์lมญใ.์`ป�<็ๆ|มq�๒๊�]ึ!ขค"Xอ�[)ั1 ƒไจmy๓ล๓จ,ใฌY“ล–Rฌป56zๆ}Ÿ’NRฑ’ำ๙2Eข—+ฮqึฌi‡vถDw=k%˜๛4€ ญจŒf้ว5๗ฺŽQf˜”;U2๎ถร@ิ ๕�z๎ฃ™…าDชบb‡๔eฮ๓ุดNEฅศซmฐๅ˜l”š^–ฝวน6™ŒMe๏ส”fุ€ +e2•˜cKi}ู5sดฑHbr:ƒั)ฆฅว ม0คLขอ2|๔ุ2A|p .Rึ9…Nš Jฆ์u?ะฮf4ห9๋.9 ฯึ,šฃฅfูk๎ฯ%wŽ๎ž \?๊น}๊9J๎อแฮ\๐�]ฯอ™เ…ฃฃ…ๆ๖�pwฆ9Y–ƒข,ถQยPcˆำั˜ํ,Uไูฌฆ]- CฯVQา๎_โูNฒ<๋a้ั� ัi”*Pb„ %ฤ๏(ใ.9†]ตpWน{Tณ4—ภพ�ฝ ๕8?นฤฺอ@ภึึ�ะเBรWž�๏F�ึ_๙ใ�๎Woq๏๎1�j คE๓,ไอ‚—n,iWห ั,’)Ž.ภ๙IŽย3x +‰vฏ ฆ…ฅ– \ฯค*ษ‹ŠฮyfM‹Ttฌ ๊"cT4]‹ษ2B฿qถ\ะ›7๔ฤกลุœ>‚1†L)Fนฅ0šชฌi๚t`๛ Xwฉ่กMฑถุ๔งจ ค:NbDโiึ+ ‘ผ๏๑~y‰‘๛๗๎ะn.&หYฬ็�๋-ฏ�เw๓}฿๓>ค๓ผ๐๒1‡ว+๎ฏpมณป7a4าไYA่N˜LEศFะ!B‹ฌ/‚ž€0I฿ำ9ฑนˆCr)› Ef‘ฑงmึฬืฉ(gฮ|�ขสหผๅอs๕๒”bฒลน "ขcนธG+๎žpฺ๋ำDฦEฦvูr๕า6™1ฌš3ŒŒD-ั~‰ 3:y…a์oe์ิd๎หปO‘-๙ย๏�>Oผpwผ๓ฝT๔<�์“\ญY฿ ื๘พฟส›ฟใ‡0&'๔๋ไH•ื�}๑)พ๔ห�o๚ะŸg๚ภ[ˆฑOำ“H๋ฯลrเฅgŸแ?�ำฦŒฯ๑ึ�uฆำ-ถ๊kH~!ะ D๔ไVaตBษH–”Œ\นr™$Ÿ�O๒๐ƒqๅโeฺ๕‚Tมน^ญJ'ฃTืะ6 อชลฯ{฿๓nช*ว๕R้ค7+…ือกรdZz|?gฝผฯ�๘…ิ@$_$J›2ว�’†k๓ ฉ,ัตHแ‰b„๋Žศ‹1Œถ๋ˆ1ฒZะw-J%xI๔ึ& 8†ศ็>�IŽ=ฝ‹h›ฬ{ง''tรภ๎๎.ว'ว›3Oษฌf6_ฐฝ=ๅํ฿๒-ŒG5jSbdน8โห_y<^�gF#ป†ซ[C฿PˆภA‘3ฤ5ๅh‡7\ –cŒฮฉสqŠwฉไ3(ช1ั7H™PัrƒKี้…ุฬโฆ/;i็)N˜ึ� —bZรฟา(ฆ•JCbˆฐ้ 1�LR‰”B๋”I1ปe1โ|๘&๗<ฦ„๊}๒ฺM~๖ำŸก09พชJาn�๗2หiฬ2Cl:tžำzืŠ‚"ห8›ฏ8[6ฬบ†� LŠdd”คVš&–�ัzฯnYG8mR฿ยน้oLช๔‘go฿็�|N–g‚ฺš—+f๋†jTSจŒกฮ4ณฆงห ‹ฆeซชุฏ+ŽzOY•ฬWk๚ (sKฉ-˜‹๔y/—+ฆ&!wห�ฆzึ๊_๙จ๖=๕x‹j๋1xl์S†ฯdx|GtฝM฿ iญ�ตD-1yE�ข` ฺ๕šu7 T๊฿M-ฎDสcW๕[–๔„dEEQึภ๗™ฆฎ ๊๑”\หžำฅวซ‚ูาq�dษ๑"0๋/฿=แ๐ดๅ�2r|6๐ยํืOz^พ฿r�~ห#ฯญนเฺnอ"ทฮ"7f–{ซœ›sอั"rาhN[อผ…ใEd*„แ‚ก ฃrส,9^วๅˆQนEฆ u5ฦjMi5ัฅฆ5–,JFERŠฎ™ำ5+šี bค๗Ž๛น฿j˜ญกmQ]D  Vžgฑช`ศ(ญกvำ;ฆbL/!ฮvูณซฯำ7K,กG็†hZ๎Ÿ�Dh8[�ใฉงŸๅฯ|ไ |่m;�#?ฬ[�๛a.ฝ๕๛‰>!&_1 %/>๙%>๖“�ˆ๑��๓ว�*๛{;d&9ƒ•T(‘ถ9ฦ$�C๐‰~$IPRR9Ÿ�๔gจŠœฝขTXk(ช’๛G‡๔mห้ษ*ห˜Ÿ.0FstrŸWฟ๊ี<�†วpร‚ZดŠ„~Np มh“Œ[I๒R$JV Klฑƒีย‚๕โ˜มม }7C� ฮyˆ „ส‰H๐s”ใƒ@ชTิQfเ|คํšoHD…”:พ๘้_็๚QหdบMf&+pูมปž“ำ๛{{๘เhึKบfอฃ<ย�฿๚6ฺฆa>Ÿc๒ŒQUqํฺ |๎หOฐท[S]ผภ้ะS.Ž8q w๖(—วŒGcช� ุผโ�xแ๛d`ำRH�L�WฐฅYzž‰=ห�v›cาWVgu™ฎ๖ ำŽฤ4จกwข‚1 qŠะHท ฉ/t7 ลHbL(คแะอˆ„†œ!9 @  ํ}W—ฏ๔'๓ธํ~ทœ.ึฎยTDGVVeฮ�g๏ญ๏{฿๗yฅศPฅ ZK’”$�{ฦiz๏b–RŽ—)ญQ*ฒRซ\๎ƒภุœ^"า!&ค’“Mฒb/J%๗ฐ–ฬ06WŠฆ๘G�?ฤˆsŽษyF็ฑZํู่’฿�สW๙ฏ}๙ม1มึ<^ญ1Uอขฬ1ภG�g4๓ถA‘(ตaง‡๓7g5q๒lฃฉK�ฎ็่`มฌฎ1ฑC๒X%‘12๎.7n.็ŒRฑF‚” 5ป�ภSลณฅfื�pณฃP†จ j™7=�9dtœsBqฅ,0ฦ๐คฐJฒ\,ะ“ฃsžรย‡๓qโ8ยvœhญA+ลfrys๊}๚๙/]9˜กญ…ไบศHปผŽ6ฦZฆฮ%„˜|Šˆขษ…'cO฿ุยะฮfXฃ‘บ`Œ e&NIัส‚q๒Lใศฎ�ฒZmาะ žอvdFบม๑๘bเtํนwฒๆี‡พ๛๖š?vผ�pล[O{�<ู๒๐ยs๗้ภษJsr1๑๐2qฒœญ็ฝโ|ิ “a=@็4ฃWLฉ"ฉ%‹#ๆณ”4a‰IQู‚บh!€Uk D‚RiŒะ)Qช$คlฮ1‘Dคฒ–$ ฮM„ฉงP*G•คุc�่ˆ@˜<ๅ๛Ÿใ๒ึ <��ท๑›-ษo‘!žQ…ย็จufฟ›X23ณ\O7Ž่)๘n…กชดว.,M�ฐq+ฮโSFทe{นๆO�๒Os,฿ๆ@œ๑™—–�โห๐งfษa]๒ไ<าo;๎^ฒ๋:บ)ะ๛ภฐฝคฌ,œ3๊A6ฬ M‘<ŒžฆYP•%) ผ›p1OEa๓ก)$ณาขฅ ‡VฆZ ญe่7Tอe๊Lั#CภjษnณลG?Œนะa์Rๆ๚ฯk }ŒL�Žiฉ‡Œ.grวพฒo#NeQาฬ็XS ‹’ช,‰1ขห์์E(ฦnั๒ฬ๗q|ํ9~�๓ๅฅopฐ,(+‹8ฤจษƒ฿-!๖นำg`K่Wx,i8{o๒Pรc๙~Tธฤ–s0ฌ]‹s=ึศ\ตi ’0“TAQ,(Ššีล�9อฺ์ข‚/I๊˜nา˜ฒค*ๆxy๔เGˆธE๘๛w๏ณ>_1l7ŒO_กZspๅ6ื฿�ำ|๐s’ฯœ�ต๓๖›oกmษํ็_เฏ�ตฟย๑แ!rxส๗๒€���๖w๘๒Wฟฮ[oผฮ~้W™_aฺ\๒��๐ฯ๙๑๏�—,Žns.^fึิด$?e๓“ด|็๗�=�เ��แๆ‹็—��฿ฆ,”ˆx7’ฒ›<‡Œ๖ำœ๙sƒศ๎f‘YeU๒๚[๗๘�ทฟฮ๒`ษตkทP$ฎัํv๚•kBซชBชl !OŠฦjไโ๓๎sR+…’y*O)๗{ว)kม8ๅN๙ยfยš๓q฿ŸkMๆา IŠ�๊7�o�ไUnผ๐a&ฉqC`”‰ม ๔1สŠชญ9จJฦ)` J๐�ล |dpŽ”�–gฎSฮ๊ผA�u่Oฦ‘เ…”\g�BBˆู=คˆp๓๐หเYZอณอœ ‘@๎,fึPKJBฤอึ9Z)ภV~โา9ห IUdJ�ปXQ์sๆึถCO]W”Jณ'บQ๙—?๒ฅาๆ[Ÿ๐eั ’ฤG”yํ8vฦ”\tซ>ฒ ,Œc†hœn๋.ฐŸฎ™‚!‰†ํ$ธ{ฒใ๑ูฤลฦq�้ศ�ง๏<ํ9Y ๎]*๎>q<บ�;�ป”<�Uค g$7ฃ ฤซ • •\"ัฬตภธ�ส#ฤ(‰ง=บปฐุึโ๑ บใญว?`sqฮ๙fอฯ|๐/฿x‡๎�!S,˜-œ้บวฌ./Qฉ ๘l ‘*“้fอœถ=ฤ‰/ UœฐัaCbึด,K‰~ณfVทฬ็ $�ํซ†ศิo!%œl…ึŠqsฮฮ%tUษฝมใ42vบ�š)e#สf} ’ ๊‚Jgz•0/ชจฉ รrนภ(ห๙๙ข๗3์ถh)™-฿#>%!™†ร4ๆj�0๑4vœ๖‚ฯ~๘#|๑O�•ธก‡๖‡๙เN ฆ"vP,ม4ไ1~ศ?บฺฮ‡-ษ,(ๅำƒน8๚‹ปธ�”ฯp้jl:ฃ๑ุ ฬ|฿ฅ}A�1›฿ค๏Nธ�๐!Oฮ{ๆmษย&Nฯ๎ณ�n™ฯ–3Mฟ~•G๗_ใ�มwp�c\wฮ๚์„ถัฬ์ˆฤqx๕�|่3_ไล�ืo�aัไ�ต๋W๘ฤง>ร_๘ ?๖+ฟศK๏ป‰’�๒๏�฿๚แOธy๛Ž๙๑~ฤณว .พฯ��๘ฟ๒฿�็|์s_เ7~�)๗�c~๗ท�-/=�>n�yžผฟ��w�Ÿ�‚;Ÿ�c�โŸ๙๋Tฅฅฎ26ด๋ิ!ช”% !ๆตRy+Eaัfษฒ]๐{๐ฎ]ปสs๏ปร๙ๅ›ี†ํฐcฝฮ•เาจL?S†<ฟ๒kฟฮ|qRgž9}‡๋ฮqำš=1iLy€ึ‘dุเง-ยV๛9Pิsฌrt}ภM#"t๕5d์6OrbฃบBBโ๚K”)๑n$&IY(”ฎ฿รŒฦู่m6|๙ท�wํ่{วbฑD)ล๊โฅ2.ถiZคQX[2Lk,ฟ๐๓_`>Ÿaฌกฐนฦ๓โ�_�ึwqBqt็ึทฃั‘ซ?r|ใ:fถเAฟ%N=sฮAตD™ž„U‘Rbส*ัย”ฏB๛ข’LHห€–€ e‹„›รฒw%๋฿ค}TLๅถนŒYฯัฒw์J)„ฬp[ไ‚ตoU“Rfฮฦ่(Mฆ#ฆูt�๏฿�Vปžูี› (b‘KRŒะl๛žฉ,˜[Cท�ขcศ—5ฅจ$˜”xบ�โWฯ�ผฦ้0R�๙6FJ[ฐดF+Zk้ใมถc^ี\ฏKNวžงรฤ็ฎ๑ไ�Fวฌา�ฝ\ำฺ’ซ๓†ัM๙Rqœx๋้)npฬญfณ/หK“’ฅฑŒ!แ๖ฦ=SWเ<ถ,@ไmE]WlB 6šMศ�#๕3wฎ~iVคัlwŽ๓Mฯ๙ล–GO.ytั๓๖ษฤรหศ๋OF^9‰�;�=ู๒W๏๓ๆษšwN;๎Ÿ_ยฝ๓‘ท.$ฯ๗Oื<:xธq\vpัรล(่œ&ส–ฒ:ค,ๆิบภ&O[XfeKU,จlมแแ1muภbq•ย.ฑฆ%Šm๓dข•ค(Rสํ`Bi SRHฉ1Rc”b>[ฃฤ'!•&"Q2วส’4m๖T)hช ซ5mi0R!m…- U‘cZK ?ETQกŠ‚ฺไโ—(5š„H„ภO#J[R‚‚D{ใ*้๓?วฃทฑบ3(Dะ!ฑโ*^yŠ)ฎ0‰ฤฤAs…›ล‚ะ(•จส‚ษOฐวsV๊’ษ]rttฤr~ศำแ!?~๔6�)nื๓๔ษฟนๅใ/_0ฌ ๓ =๊iG��Cฤ@่{*�`lอๅถรหฒ>b๋K‚X‘จดสํ7Jฃหื๏๐ใ@LPืณl�m(•กT‰ํvอv๐์†‰อไQVณฝ<ใtต!้‚ขฌh‹ฅอพVSขuI3[ คa‡Š�4ไLจ0”M ฆ ,**ญฑ ฦ1ทDUUMำิ]฿QิU�}:—/กรภถ๏ูํ6{'ตdc$พฝล็>๘a~ํW~ŽfVg$ฅูŒ“(“sฬฑฯฤ5;{~@๘-่v4$D�Z)๐�L๊JgปฑปํšษlัPfฟŽN•y�~š๘�/�o=�:WYrvพขj*๊ฒf6›aดฮๆฑน~๕?�ณ?ƒ$โ|`š�uผ๖ึ๙ฦw~D=/ M…™ฬ๚ํฬME_/ ”๋0าpXฯx�ผ@sRม๊Lห,*ค’๛จืโC>จc(™�18„ฬ&Jํ5�”pฮแ�DY๎kU๗F4"�็๚f๙P~wB—๛ห€ƒ ๙}@|Rส…9™!“ t)&�99ๅ}ๅ˜†iqL žqฟฆ?4Šjึฒ 59|ฏ$*eyฎ๓žี0pนฮ“๖3UIน8ไZ�ฐz”€็f3ฐ".ฮ&ว\k><Ÿ๑tณB ธVV๘iเํ๕†J&�้F‚ะ�j๋ฬ4Bะ๛1qแ<๋!•P  !ฃตมน�*sฑบ‘ปt็‹eึ@‚วq>i.~|l!‘ฉยว9ฦ:F3"๔ŒF”ดฦbฆDฃ5um) …gค˜W„2!ิณ [Hž๘ทX…งผ๖่GYฺzฮON๘+ฟv‡็_6\<ฎ๘�“ื๘;�์พไ'ฏฝม|นเ๐๐ˆอฎ็์๔)�ไyzqา†กฯฌ๊ขjุlืฬg��ฏ�๒{“œญ–ุjž@2"ล€bศ“ค.‰~ยM;’[แ†5จeŽ~แAข;ลณ�9Nจ�+๘hnMป|†ฑ;ู"pฬวE…w#ฮ{„X“ฑฉ ๘ฟ�o๘๑ซ๗™อTmƒ”๙ฯ-ถฎฆ‘อfIฐ�ฌ๘ฬg>รญkWฒ†.“�ภwพ�]=|ส๒๙็้*Eก$หBS”š9‹ฃkศ8B๐4Uอ|ถเจะXeฉ๊ซ‘)ั ธ/2~� l…-[\$ค@$kเม๛,—ช\5„ศ�Hcrั‘ฬ—˜‰™ศท฿จจฝ๎ฝGIษ0y$"{!bfy‘฿;>ไพ๗ tส‡แw๎�็ฟ��฿ง๕ๆวl\ ^ฬsำŸด‹–ๅbFˆ‰ƒeKS–๘~dYZ6�H ]”๏1๐ฺๅE Q’.Dz๏™Mm๗ว‘ ็I.ฒ, }pLJ๑ฮำ๋๕†|ยุS<ทh(๖FH‘"Gmอaำpฑ�ัo{ึฒํใศข.น่z๚ง— Rเ๖�๓˜ฆไ’ภ”ธ~`sพฆฒํ=gรศ2 บaD}๔น�_๒ฃ็๔์’M)uIUฮ9hZฎฮyๆส-n_นลใk� ji�%วหcjmัฆย– ๓ู‚eำ"%Yฏจgิ๕ kKฦa HํGŒ)H)โ�ˆตGW&‡๛์Ž่ฃ ๗†JฃR`๐ž~ณฮ]ฝZ3๚ฬjŽnคชjชบก๋6„ัแ รภnท&*‹4Eึ"ฦ รไI10odtัฒฃsœซ�Ž”"cL$eHาะๅ‰Zhค-จ ‹ ‰”"SLL>ฒ‡†!ดม”ณlฺ1๋อš66F๑ฺ ��‡zL*1แ’LŒj"jลMฉjTƒิY๊ถฅ]– ก>จฉM6}ˆi60,ถ\ŒOyผ{ศใoฐ>}ย๙ฆใW?8็?�Ÿ%ลg๋๗^“|ๅตงผv�1'†Ÿ๛เœซ‹{EdผtTี[y@r…L”�SiMีฮskัฐร-%๘ a,ญั4ฦ`ศ$2ก4ัTดuEฉs�โjปฅฌ๊|€‹,WhkำHท9ว–•�;k๗}ไฆชฉšS”๛�s`:บ~ฤJมด>gˆ`ซB&D%!ฑe…6eF]Šศฎ๋˜œร๛‘qูุc๔๑>๓โ ~๑W�#.์FG;ฏณฆ)๖-[{ฎ3ษC‰ใŽ8๖ะŸ t‹7D?ๆ๕ใpฤiEt[‚sธ(ม_2๎.๗ lอfชEAQึhm)dๅฎฐํ&ถซ๛X;ฃี;ถรH2sjGำ๓tๅน\_Rš’ƒซw(ชšี้‘�ป์ธzใ6วฯ|ŠๅํŸก=~a ‘ฤเ™ถIั฿Pอ`Z#คข0 S4œฎ=_๙ๆ๗จ›–7ฏqๅฦ5พ๘ล_ๆ/�ู_ใ/ฟŸบช๙ฺืฟลo�๖ฟ็๘๐€ซหซำว<~๐6Ÿ�้๓S?๗y๎|่ฃ�้ฟ๔ืy๖ฮณเWธiฤ– น;<ป�๓„+)ส".ศจŸrไOše๖ดฦ›MฆRfgธw๛no’ไุฉส‡๕ป�๒ำพศ$7ฅๅศ™ฯดถ�„อ™+๖-‚!x”ฮอ—)%|€บฒcจŠ‚๏=|ยฟ�๚ทั (็„*W]ฯššB(ฬขeYธ~ ( ใฎว"@K:™'ํD่‚วKษๅฎใrืqต*IBp6TJั =W๊šySำซ�yฑsžฆi๒๓"F–mหถโ๑zEi ฃ›xผ�Qง�ดy>8\UXฺบdœ<&มzฝeดฅี๘pB2บ‰หอ.ื5kลBLY�ฟ� „ ฉ,ต5จฯผ�โ—„ƒ„ๅ่่ฅึกฐBP6-1I�ิกMม œชˆ@r=›อ%บl€ฤฐป$ฆD?Nืง>?lืgศเZ็ข‚qวBDขวป‘ํ๊ ฆšผร ฌf”ถฤ์ปcวqbQ˜”๏]ืๅ7šTDก™LQฃ Ijสv(,ร˜๋4uีฒ–yำbห:gฅขฐ–ค สd-FจŒิ~B+ม|พDY“uhhฺ9Hหเ>E‚มดVT:k์a‰!›!ข� j9{๋ป]!'อข�Fy6๑ ษZฺฒค(ฤขขi ฬขFึตbf(ซ\ˆ สHฏะ‹sB8๓�ืฟอ;๗^a\]pvzษgnY�Ÿ�‡rxญd8}ƒ”q8?`nŽˆN๓ก�วผp,yๆ๊�ดuค4วลศ๑์˜วOzโvรข,๑RQ ำ@3›cศJย4’‚ร˜’~่๐๊vApซอš~yฐฦRอๆyฦุ]PŒๅ๛l”ไK]Q1o๓๚P(ƒ.ห<•X‹I‰ฑ�’ข'๎Mh�7HYcฒ‹5บอ*ฏRตf่ถู€#ฎผJ\qำ>เึํ[ˆๆ€›wžๅ๊•ฅ๖‡๖�ฯH@พƒไEƒ๐+„-v†R๙แคŒFฤ! „Œ˜๚ˆแ�-ts j†๋ž"๔œะผŸ�๖ŒมILQ1[�z8"ญAบ‡ˆฐใ่เ:ฟ*ขร†“ง+.6JxŽ็%es…ํล=J5qp๘ w>๘kผ๐ั_ไสญณ8พล๒๘ถจpำ@ทzL่NPบ$ข(ิฤ่3ฏฉ(คL,Kž{฿-~ๅ็?ยฯ�๔ฯ๐ูOผศ๓ฯ™B�\3.ทฏฝ๙&J%ฎ^็™gฎ๒็�๒_แฏ�/�&Ÿ�์'y๙Cฟa�cห†fv€ุท Bศhฬ*3ด1H >ดอู๋�'ส๏ตb าด-o฿ศ�7_็๊๑1ฆชJ2#ONsv~‰Ÿ�nƒsBJฮ/ฮ๘ะหฯ๓�_ฤ;\F˜VนxEHi˜ฦiุ`ซ9`พรปn{JH‚ช\ขค฿‘‚gืeรZท=Gฺ ๗ži1ฉ91:๚อcำ๐ฅฺlr๕#RUlึ—��๓?๐๐๑คaท^cŒกฌˆžูl‰ฑˆlท[>๚ั๓ก_ฬ_#b ˜ขไไ๔ ฿�ม)3šgŽ}  Qh8;ฅ*๒คษ็yYฑ\pฐ8ฮAำ%�ฐย–G๏ฝ�R*ŠชAฤกหผ’๒g"o4๗Uก)dใaค˜\ฦ•ฆ๖Mey[สพ4_ŠณพO™มพJ4ฆ� ฎTๆๆ+ฉ œ๓xhš’”"Fพ๙ฮ~๓๗~‡vฑค9บฮจ%ฝ๗0Œฮน žอลš‹~ไbฝc๒ž๙๑‚๓~ฤจ|™\m;ฎ.ฑmรี=™๐ฮ•cJึ[ฬ|ฮ•ถ!MŽRภakูNตศตฦปืห’V+ถๆZขฦ“งŠ“ี†ˆคH๐ฮzC�w€Wึ’๖�๋)E’ๅั‚#ซ้R$๚>ฐ๖‰๋Mล๕ถA*มfต…ช ึTnlBข�ยฯ}๎Kปอ–BJJ)qCม1๙‘>x�4„”˜ฆ‘าHดาธ$๐�!•สเฑ#๚‰ยXv๋5�๕y~0วศlถ$ …�ฏฮค.ฐฦf}b฿aซช†iw 27ฌ6HัO4UIQฯP@ˆ -ขhPe‰ัšfฑ„iคิ็FŽ–sๆuม4๔H!hซฃt^ูุ\สRิ >ฆ t{ชชฬ�แยไ้)IJ˜—นอ*)C2฿ ง‘1FC ค„ึyี›ˆ๘พรวˆ|ฬšžzถ•แ์ู;์#7=-ทมญ8๑…ลจžVLuK9[b3์ผafe!f‹สZv๊CuฮP&žlž๐�7พฦำ๛ฏๆCŸ๘“Ÿนร๑ฟ�Woถ ฑลจ l฿b9_๑™O๐+ŸธลGž^}D9�‘”็เjคlyฬ๑ฌภ;อภ!)xบอ9ยXฌตน 'xD‚) ฐ ษzทษช๛"{tฒจ(•apคภD”2ื€*E๏ฆjhซแE]#bฤษ�ล‹wqใD #SLบศžm(ห’�ฐฃ 2/ F7rv๒nทฃŸFบกวM[7๔ฒeX�โศ�ใู� Ÿ๚…?อ‡>๖ ช&K/yษ=�•o)ฤ์<ืU�‘๖เ=ญ–0‚,r๖;๖จ๊Kด”๘๎ 7^"eEฯ›๕S6}@kมj=๑อWN(ไ3qB�cŒแ์้�์6 ปSVป@ิ%–ฃKข4DทfXŸณ~๘6Fxnฝ๐1Šา"…ฮฑ,cpใBG #ฒ:Bฅt‹{03ข�2MbOŠ‘นนฬ�‚ู• 3Z?AวK„’๘˜ท–ฯ�ฬง๘้ฯ}ŽŸ�้Ÿโ~๎ง๘ภ wจ๊–เ7h%จJห์๘6eำbญ�ฃ"%0ึ` ปf๏O๒ฺX์Wฌi�ะB"”$…๔^ซก’‚๛oฝล—�หิEM;›qyqฦjฝกฆ}ถg'ผฯ˜ฮํvห•ซW๙ย/� �ล]ฆ๎ ฆ:"ทืwศ!d๎ึž2๖O9ธ�Qด=d๕๘ปˆธ#L;&—ฒIญ;Gู%บ:$Œ$ทล Œฑ@™�ูเฆ5IdŸŽฤ!๕ญAk‰)f๘iเ_�๋ฮใงkŒญ้ง m4Ea 1PUๅ QJ๐ง�?‚}ถ:ฆภุx)๘ึ[o๑๊ยั‹ทฌฆ[ฏ˜ฮัFP๙j>'ธ‰ยZ��์mH๙โ i็WIฆขถ‡<|`˜ึdL๐ž๔ญ๏๐�ฏ}{p•ฆ=b‰)F ะว�ืงl›&O[ฬ๋j฿2 EŒœ =Kcx๖สk7ฑsž;mลจ$gฮ๑|[ณ๎v<8ฟ ฉ žlvœฌ7”Z1"ย{v>ปหE๐œษX4’ั'หŠ]JY"๒‘YU ฅ ‚ฒ0,สŠตห�F)ฌ6๔1ฒ*$ช~Dtฝะ์ผC ษอƒฝึˆ˜ำC๊Oๆใ_Zwษๅ*I[ถ ใศ0 ๘กรศ\ณ็"„0ๅo�ุ”ยุ Sึฬ�๊ ค '๊ฆๅ๐๚m…ฮP“๙๒˜ฆษต’|๘๙”๐�‘`yt!2žฯ์'<[ึ8๏น|๚ˆnสะ2:ย>ไ๏วar๔�ฅ$I?๔”&7#%) “#ธEb iทฅ๏6๔“ใ`พ ) ถ�5ำ4a•ย‡Œd•ฦฐ�ํ่ป1Fถ)๗ำ†เ๑1Sง mัJ"คส›VL1คข*,พ๋้ฎใ_z‰๎ตว๔ง;ด†IeะA ;ขฺ€ตฤB0ถKdUsํ ฆP ฉ%MUฃ”ข( ekQfมfตใ“๏๒duŸi7๒ยญc�ืๆณ�Ÿ�ึmfMG็ŠŒHdŽึ-ฮฑ๖’ล๑ๆืVจลDdDh…จถฺqpุ๓ฬอ5ฯ?ปcQ:�|ซใขซY\ปŽ Sคา–ฆฎAf‹mYผฯฎห่IEลฌฌะabป�bด"์ฒ-…ฬฮดo' ใnรVHVรฤฐ:ฯLุm6D!้ง กhณCเ๘่่Fด˜ื UU"TฎjฌšQ(KๆuE”}tม=>p �๘Ÿ๛฿p็CŸษ,s™Iq๙Pคy‡)เัๅƒ:9%ษ{าด†ฒ.‡ —ฤ๎)ž%ั๗Lc๎ฎNIาง9Cwฦ้ๅ~ฺ0OV…ผไ๚ฬก‹%ปีซ๘Tำu๘�ŒbvฤแแŽf3ฦ~‹w๑ quB%ืo?ฯ3/} [-Q"฿ๆ…„nท�š-q�‚ธa‹s}>D v *ฺ"ะTูu�4-า#าศมั ๊ๆ€บnนr�–ห+ฮXฬ[ฌVˆุกt๐[„ดจrž7kู”˜ฺ Œ&_นณ=ลHtS๎@ˆขหุ�ฒใŸผ#Mธํ ~ุขญไ๔ษ)ฏผvีๅฯฟ๐21‘y�bดแ้้๗ฦงlˆ[ฬjพ๘k?P`๊๋อ1สฮ‘fมฐz€Iฆ�4c=หc’>D๘Kึ๗~‡iwNsๅรธจ ๘�U.ัEลธz‡iธฤ4วฤe{ ญ5ำฐBiCYฮiB ญ–?ข4gO๑ฏ�อ�ภูสq๕ฺŒ'žอH>|โฦญgุฌNy๘๐Ÿ๘ิg๘ุหฤyOBb”&%ฐZ๑�๏ง'O(Ÿ9dRทบ@ส= ฑ2ุzF๊zfV’ฆก>ฤiล๕B…@ ‰Qน�~๊€�ไ†4D?ๆกGi’ษ{DสN๓„`rนภJJ…ฑ–$rLธ.‹�น€PHฤ{+๔3Ž˜”+HƒyJ`m๎๗ฮฟk…`œ&œฯ$7ญ›”๘'฿๘w๐}ๆ7Ÿcฑ\เ…คK‘ƒสrฝnYu#บฉ “รNž๙ฌฦP’BI�8q6ลwq�ุฒ *…ฐš�ฟุ …dัึl\$$ษๅœว›ŒO=^ฬฉ๊r/j\’Œkd?2+ šฺฒrŽr˜ ด”ภnœ8๋zฺwม11rrน%Yลถุ๋ŒU4Bภ8๒tYXMS•P—๕qลตซฯฐZอ9;[กยH]•Dฅว‘F–’ม9็ฉKาิฦ‘ม9ยฐ%๙‰�8AŒŒcฯ0N$7r4kภ{tYโEf งHใ@aJœ๓hฉะฆ )-uY2Ÿอr}`ŒX™5ถ"ถ™กŒข�mฉg3ชยฒ�๕ฌ…fJx๑Zไฯ��WŸ�ษ๗yโN‰B~ฟA{๎%�˜อ1ถฮน[!ศPtปŒๅ ‘4<%I‹Ÿ:ดi@)�๖1“บŠˆ}ิ]cช+D)ิ€์๏"ฅค]�เษฃื Aฒy�:บPิeK\฿eณs๔ำD!ม–�z๑ำผ�น?ล3/�ฦึ{w<'&/‘ฺฆ3ฆหืIฒฤhล8์ฒŽ๏.ฉๆKฤt‰า …žจ+KูฃT.IะฺPสๅ•�ุๆ* ‰Ry*ิJข„งชJT�กd"E— wฒฐฒw’็>p!ฤ�ธ_ง A^น๚)pข฿_‚Bไ๎็8ํL๙ก].ัี ekn�บร�๗๎๑๊ซฏs็๖3�บu%g—งhมGบ]wรพ๋�์์œŸ��็น๕พG‡;ฆอ ›‡_ๅ�มwƒค:�าเ‡งฌ�๘Wุขย.žฃ<๚X^ OY�ˆb�‹ๅ5ย๎.ฮyšฃ"dฦ K‘ฅพiะฆฮ—ภ”kBํพไ%Lํ|ษฝ๛๙‡�่๏ƒชะZใฆv6czฺถกฉKNNN‰~้~1็ๅ… ฉ๋} rมฝ๏๐ๅ฿�]BŠิทŽฐEvZ{mˆฮ‘ฦ-WKอhKผHฌVฮ“มpฅ.˜—3คหš|]6YฺJq฿@–ฅ!‘�{—ยDๆhฝ‡าฃ ๛ƒ™�ฅ){ˆšz฿ฎaO “Bเ�D๐˜า{๏“LS@�๛ๅŒา™%‘๖—ด q X_�๖w๙ฮ[oา�y‘ฒ(ูjลY?ะฤ@ีT\†H Q!˜‚็ภ(๚ษqฑูCเrส�ภI—ซอ.3๎›้ฎ฿eฬณฯeUWsฎฯf zุŒŽ+mรQฉ๑ ด(ธศๅถgJ๛ฆG็ื[Š~$Iม…๗  3ซ9›&ึ›M[ฅdนhู๕v�aฌaMd6k(œฎท(c่] รฒ,11ก>{็™/™)ณม“ศ��)kˆ�ๅ7ณั๙=ŽXk๒78ๅ๕v$’ ฉ( C"!\ˆ‘a™ถ”๕ !$ธ‰0ๅ๊H๏ฮ{–ว7ฑ@]”Tๅ -1BปผBS7ฬ๊šอูV็O)š9ววW21'%Œั4uEaK aลžลซ-ฃ๓7UAa fUัšvึ2ลˆšฆiจ๗}ัรžv$M‰ฒ–ล|–W#&๗�ฆˆ!RนYI™’บl)๗ึ"Z ฆั็I๋wธ˜|๐ B๓ฮ�€�iข๔$ๅQสDฯ$=บ†4 Dสk๓ฬ.๎7ŒtิตBี%-วsชK2ก฿ฒ๑\^�ใื?Ys$=_�๊ฬฏ�`~๕Ca��ฅoc๕�<™ศโ*บบ†ึ๘์ธืf†#๒โuบ๎‚อ้O8ฟ�]๊ร็Xผ๏ T/"ฦโ๊u�๚M์แวiฎ Sฬ™บบณo2๕+T๓า”œฝ๖/ุœ?ยพ id่ฮ™‚ฦOqฺ’T6—–ๅŒ:”ฎ‰1ฑ�œ‘b ฌๆผ๒ส๘—�ใ�ˆRฮๅfปซืฏ๗xาฆi๑ฮqํฦ3|์ƒF)I�.ฐ๛ร๓๒�Œ/��ฟใีท f˜Fฃdbn5.AQด‚‹ี–zQแง 1„ๅŒฏวฑ��Š>Dํ๑Mผ๗�(M๒cnซฒิelIJ2ฎrฐz›&คฬ๑ฎ”รั2—Žh“s�‰l0}/.d>kbยุ"Ÿ{ํ\์!1)ๅๆ๗�ต!~t�ซo}‡ผ๑ฆ> ™ฯนpy3,œ'M c --NJ๚]Gจขเh1็�9คโ๖แŒk๓9๗7g 7ช–ํnว๋'็<ใ “ ฌ�ฤแขกQŠ!NVฎTu]า A?ฌวc*†)�hฅh็3ž\ฎY*MW๏zJ$UYPี5ษZฐ†่#ษ*‚X›อ–‹˜ภ(:็Yjอฌฉ่ญฅจ „๗�j„„อv‡z้่เKญต\n6ธOd์wHRJ[Pฮ–ุช$˜†ขฌ˜�ศnทAื-…ึHืSM[ืŒC1qt|ม9Tู’„ไ�์i6ฏƒ๏:ช๖€บQYƒ'w‡1ํ‚ชm!e=yŠL‰ฐ%uำ€ง�๊s�1v�{|U”$"2zฦคRสํ1F3 ป<ฉOนฝLKIท�0…HL‚ยๆๆU%"xฯvœXŸฑจณ–?…ภ0ŽMQขDbŠ!S4eมไSˆ๔}วุwิeน/่ฤคธิ3บPk4‰จsc›–๊ I ‚q๘ช šกด็๔้ผ๓๖wนˆ[ฦjD/47ๆฬฎฮF’c ฟ๙ีืนv5๑ฉggผ�อ7นw๏Œry“ๅอO1MWvž4พุ}ั?AVฯB๑>ค}U^E2!ขC5วHeƒmfcH�)วW Ÿ|ฉโ#ฯ�ข=ธร*hV�ญ-ย–่ขBว‰ฒ(‰ECกใ80 ƒ‘’ศ๒เฉ2Jณ0šจ,ถ(นุl่‡-n1ขคฆjg„)kดE�เฆ7ๅVขq่qc‡!‘’ภิณl แง!“น‚fk;�pฦฏ�ู�ŒO�์็@z’P๙�ณืใ„ศกd–พ‰y:ืจ"๋แใ( ชฮ  �4ฏuฎŽฮแ๚ B”tฃ@iอำำ5๋อ€ถ5!8Œึฤุณ9{สๅๅŠ๓'?A‹M$ MUJ�ไ๑ํหิ๓;œฟ๚›\mžp๛น—™�"๚].Q ฺล๕}_tใF๔h;'…-Pฦไ.?2v๋ผู้]ิ ก{ˆ2K„ะx็‰zกGhCŠสยPฯ1ถDสœดะJขซ9ชZๆ8 ’ซ฿หs ฅs�.�lฏHไ•ชุ{„HIa$L ะ3„(:—%ฅ˜ต๊c�‚ฤศฌm๘ๆทฟอฝ{๏p||atฤเ ัqvvฮไ�zQ’D>p๐+ฟ๖El{…z๑ฯ~Ž๖เ}จ40>๚*็ฏ�6‹๋ฦ}aL�cฆํSบห7‰IP}!๋ป�ŽX๑ฑ๑ยgIdึEฮG'๎?ธห7ฟ�U.วDu๛ ‡9—=JCQŠฺ"…โšŒุYCำฑ›iๆJrลิเVDำ05TeCEDH›ฟ"oณข๏IRcm“‡™�9i๒{ๆ]์ฉศv ู7bt>„!็ผญัEI!k฿&ศ!xBŒธ)หoBˆ�Ÿ3๎{2Sฃ(rl7M�หo|›Ÿ�ไ']ปCWXฌ’”J2›5นm2Dๆถ@ู’~AJlUฐXฮHฮกSไมfGUX„ัs%ธื๘สP‡@ฏ$…‘ฬŠŠ]Œlถ[๚iโrrx!จ„ไtฝมš‚ฃ}ชฦปˆ5–žˆ&ฦา ช•>Ž ƒ๑ป'H�•`qtิ ˜‘›ฯ„”9z%aw/KAnึ%่!Dบ๕ cNi<ชX ๅ„!ำ›kHVTณ%E5ง0Šชฎ(๋9RJดึ™ ๆ69๙aๆˆw/5๛้I์_ว”Bfฺฺป‡5d™"���ว�T.คF๊ฉ+Rtธ�)๘-aX†‹�ี7 D"OQ[Žo๒;ฟ๓edŒผ๐�pมฑูๅ4ƒ6šuืe3ๅ40Ž#ฮM|ไ#แๆต‚๎๔vฟCุพษรo�7ฌืt� 4W?„Ÿึl/๏ก•"Œ+dฑ <๘(ฺึ<�ม?Eิ๏ใ๐๖'๑›Wqำ€ฌo“BFฑอ5b่ัฺd^บ๋ ~`Fฆhสข•แ~๏w๙ฺืฟาาฮfดณ†พ๋0:ืไ†ฉ›†ฯ|โ“�บy‹พ๋q>P•–ก๏x๔๐.฿��ฐณ๓[G ร6C†R@ จ›Š‚RD–•eœ/ฑDŽf%ฆliใDi5•5์\ฏฎ0uงฤจ n )”สํiสd7บ2๏#F+ดฮnq็ณ|hŒสt=‘๙…}7’ฒ~Ÿษ&ฤ‘RAส1.๏#ใไ่๚kMFร>>ฌ€ฌท��ืŸ�๋๏}Ÿท^ƒ๊๚s JaHŒ"ณด€ษS-[j-Xmzfuษ๙fหLIฆ~d;yDYp�ึค่.Wœu=4%5‰"›˜2ฬฎด5ฮyบั‘”fn-วuMs๒jrยXขH(A6ฐํ:ึ>1ฏ๊~G|ใU���ทธw๗!๋˜ุ==gsถb0ฑฺก„d(3Xว)Eัึ %• r?ˆ[myฺ ิZา”๊“7ฟิTๅ{ กระ3y™F“` ‘qœ่วi2ใš0ก“Gฤฤฐ]Sี%บhX_žโฦ-ปฎฯฆฏํ๏=uQ U.#งž�vM?NฌVธพg๐ž)E”ศฐ/2ถิUป๏B\`�^b”ฬ๋:�ตล43ŠบB$0Jะิ-๓๙œBKŠQสไ่‘ฮํ6สVุยคA‰์ทuMUV4UWู๚Ÿา 2ฤlŽSc 2E„5Œ!!&วผi˜ฯฺ==Hะ๗[6ป๋~ไฑ;ฤฮฎาŸ�Gˆ„งG sxˆชอแ3ต5ฐฒัK๐—$7แ/Ÿr๒่u^๙�—๙ษ+_แม;฿ใ�›?`šf:2m_ŽXนqTQศืญน�ึc�~ใ>๋]ลภพภ๐1�ˆqะD๛ฆ}Q?‡ฐw๕๓H=CV/ภมKl6ฯ๒�้��ไ�Š฿{}หฃปฏ๓'oฎ9ฌ/7ฤq‹,*คT์ึ+ฦฐ/ฆ˜\J4ua8cŽร cฎn5ฺะV%"E [ะฮ—ฬš#RIผ›ะึ๖I†บ(Y,ฒ‰๗Z[\ˆ9y s$ฐK[5ฑ\^ๅฏ�ญ�-Woฬ้v#ฦfญ-ํป‰…ุscศ‡าปฮrธ9ื*„&๎NI๏Nฉn—ฐ0B€ๆYDq€๔+?ๅ‚ฆRธแ%#CดŒปงจtNi vป'ฟแ์ษ;o ;!Š‚ขฝอญ็>ษ๕๗ž›ฯ†fถ�ฃVwฤแค่ ปวh[กTร}dศ0™bv )่.ัqƒR|GUฯ™ฝโ5o�PVe=ร”ู9Mย mK ži๓0kบก'Ši๊l2�g„D�QeพTผซ…็ำ=Kh๏^”ค�_œd^ง๚1G๕ย€”%ฒจ*sฤฃ‘ฒe‘บเๆณฯ๒•฿�*OŸœ๐ษO|ฅ MUpr๒ˆ''ฮamล4tCฯ่‡๓‚฿IŒ?bปz‚Ÿ"c๓Q์Oกล†งo�.�๖’เvZcšุ๋๖&)yึo�&ชธสต็ฟ€�พล่๓๋?‹U๙ตัๅUt1ฯ“)š”$ม๏๐>ฏ€„,ฐึ"ฅๆ_�หฦk?y~ฬู๘ฒส๘าวำฬfอ‚ลrษ'>๒2M�์ฅ„›:6๋w฿~‹N™_=DTLัg ›ฐeM-๓ดผจS�ะ๗j๊ะHZ™ 8RmฉญE%‡73 1 ุb‘‘คฆ�ณฯ=Iุ�‹œ�โ/qใ๙9�ัk์„ย.๑@IJjkˆR‚วฯผฉูวำอ.กิฦ๒เ�๕ม+ว_JS5VBก๒ชF‹‘Šณ๕็C๒ ภ็๕ณt6ฐ<8ยึ5ซอ:ฃญ%z'ค)้/ฯ๗๕ก&”ศำBำดH›+(u�ๆ›˜)Qื-ณ๙œๅ|‘�ๆRdจˆ1Her\(—ฃLu‘ilm]S…Šhฃ~๏ฐึฒ^oAJสฒDฆ€&b๗Nภ1Ba4>LLภิ๗T2ฃฯŒๆง ?9�ธฃŸ<ปibš&Bส๚i˜ฦ�ฺIp“ร…H๔9ภ๏} ท–๑ล—Y฿=C„€ ษ๚œBj—๘)ฏ%–GืุฅSึ๋Sฌฉฐ6"�ซr)vฆญHqส9g๘pี๓๑ƒภŽแ�‚ZKNVžง�ฤ›งž3_ คม๐เตวฌN$กฟŽ ัฟ‚�=e{10t%15„8gšๆ๔ร’อ…e}9๐้�ๆ่จๅแฝว�๘4า‚ถ*นw:เbฆ—imูlwไข๒WุฉI -$S฿ร„–๏rตขญ*ดTL�–๙|Iz็Yด MYRhM˜ฒ<แBD+ษถ�ไQทCuU2๕;6ๅ!>ž๐็�ฤ_ไงฟ๐yบaยZ™M_‚\m˜E๏�py‚@Wๅq‚4ฒ-@—๛๕ฎD˜y>˜`™ฆž˜F ..V<�– R๔ŒปSv^s|pLŸr๚๐u6ปKJk่ฮำงw?๓qทฟภีซG_ฝอั•+4ญe�] �cdึžq'ฌ;มT D�" (ำๆฬ}{%#ฆพ‚่ ตข9|IB3tฑฤJ”i+‚�ฏ*e“ึ$Tต@ค€ฉ „,ฆ]’ฤ>Nคrซ”{M[—ˆ}Ž^H‰9๏ส�๔„yห!ฤ^งl&dั"TEข@ูกj„ช๖ฏต&D""Tมใ‡๙๊ืพสตkW9>บยไNNธ\ญ†ก๏v$‘06ห4ฟ๖'�ี๑ว9|฿ฯPพภbV’ฮ�๑๒>ถน†๋๎ฃˆฬŽ_B่็:.฿๘Wฤ 0วŸ`ฺ�ใ๒�Mt๙ ZF๚หื้บ-”7ฑฦเ�Žอฎcu๑ˆย”ศ=c๒sKiMž�฿o�ทผ๓๖=๊ล1u;C+M]˜ฒbGๆ๓–็_xผ๐Rไ)7๚‰ฎ�2zฯ�*OžP/๖ฤ–ˆ)*H&&ฮฮ/้ท[ย4าOb}ษp1ะJK๗.ล1อณฯs a'3ใ\‡ŽบฝLžฆ\›š< ƒู„89ฟ�� โ~ ๒ไtฺ{I†!๋ึuU‚๏ญอหชุgอ๗ต}R G‘๗d7)๓ๆ†|‡1าwC~S$IษW~� ฿๙๖ทiฎ<ึ Šผฒ&วบ๋˜&Oฃ-ํผf ๙"~X—(k˜SL,3ดRL�H๏T c๘ภม๋ธz|๒ธXXห๙fหบ๋ธฝ\"lบฎ๏‰ฮsvนfต๋ฉœ็ผจคศฅ5�ภ‹'œ~๋��z�“ฟ๔๙_�๚ฏ๓�bมjปแ�฿�ี[xฃ‘ึๆํE7ฒ(Kญุœž6•ัœ๗}&ฦอKK_–จO>{๓KหูœZEš๖=G‡Wะ&›Žn�~žเ!L � Uีฐ<8$„ˆˆ>OFรภผSุ c4�ฺ๙็#๋KDีฒh[ŠmทC‹,3^SkM�6L.ร๓K[@Š7u\œ>A˜‚quฮ8๔คเ9;}ŒKก+สฒย*R†อ๚‚n}Aฉ$ร80z๗‘(5็ป-)FTQbหŠaทc7๙ฌ—ธ 1๕ฤํŠษ{ฦพร๊lศ}ž2ด-{๘€-J„ึธษฃTnลอYRMa3y-I“7…"k#JH๊yรัฒzp†ฎ4บ๏P๓มH้IฒภGฑPLDWa ฌ}ฮ๖—$ณcฺ}^C๙์เsษ#‹Z0ฦD๏ำ›Qs2XNื๏<ฺpบD�โ|ม�GŽหs…‘X.)ๅLใ=บMว้ฝGผ�ฺ]ฮ฿�>a๛CŠ๔]ž{�)ฯ�8โ฿�ฮ�ุREP–ฆศ7๗Y3งฎ+คVู�ฏB4UCL`eBƒU:kต)oฌ—ณZ ฦaภ#นXฏPัs|p”๋��ฤไ(C๒SŸฃ/n่DดLY-Sพ„๐ฤฉ#N}�L+�ะแงa�฿A่1ฦ"ฤD๐Ž?�ฦYด3>๖‘1#uำBt}‡1š““ชฒสrWื๑s?๛ ด‹9:ฌ8�ฟg{�ลโ%ข๎)บพŽšฝˆ.gŒปSN^๛็Tํณดท>žอ๚.Jฮรcwชข9�aZก้ฌV…F˜BpDทAJ‹T–ฒ*y๓อ7๙�๐ฟft‚Yปฤw]4eIBpt|…Ÿ๚ฤ'1JdืถŸ๐>วฉขw|็๛฿ร)M{๛ˆ8nJRถ-าƒržmLศยpTึดฆB๘‘ ‡Mษ๊ม#ฆ�ŽมASข“งาBW �#%….pพ'‰‚ไ*ฃT๗฿�œ ฯ.๓l~อล*ถะจ�8๔#Earย#‘หjdึผSฬ_GคฬRWR1๙€sc�นฝ+s\๛_—€๑ตo๑ฺ+ฏ0฿‹8kู๖ฮJ!™#q!�Zำdpสเ&EขฬL��๏ก8จสฆขGฌR4•ม มใ๕†�n$xวLKœส>ญkSdrง�+5�˜˜–ชชกฐL—[„1ด๋ ๎}็๋คfม_�™O๒>90ี‚ห๓Sพ๑�๏โฐ{�ˆ™๕ฌAฦภ๔๔œเa˜ˆ]6™G" Ci5›�B ~๚ล๗i9[ฐพxŠnjLQ2๖;ด6๙ๆค H•๘)R55(~`ฝ^Qึ5nณ>\กyrz‚sQึ่”๐รŽv6G‘ˆ{m�ไั=๚�)r Žนธ ฤภ4๔!9;}ฬ่cˆDDพBžx•A–%๓ูฃ๖fฉกฯiจซก-ฒจi›�v›uŠฆฅฒN(’า(‘กEQ!LA๚ฝ.mส •A†�I�T[ไ›ฒฉj\-"04 ฉ FkBJูผ5‘b6ใA*ูญq{JT ธะ! 4 Q๕่Yห8€๐‚iส‡Eœ\฿ก4จง ”@jอ•ฺ๒้E†ข.˜7-!Dž์เ�Jำ…LฝjŒaY”่pcโค œpฒN�์™v&…6ŽF=ขNo3ำoฑl^C๎~€tgtง'|�O๙๚+วัแuะoฑR2Nž@d3 @iI๏่ว |. �0t;knฑyใสๅๅ%รไะัS� ๗iซ*็Hƒงฉ›๗๊nguAูฬ๗ฅ žBKF3ใโ๒>ฟ�วพศ๛?๒i"f^ๅอ8๛›•ฬง<’๏ฏ�๏�ฤ˜6Iๆ๕ฎwˆ้|o๔j๎‚q่๖ผ†อ๊œU/™‚ลO—T์œๆเ๐ปี9๎�ฃๅ!FKVงg\v‘๙bF;ฟŽŽช-ฆiน�ม_ฯ@•0e—๛t–W๘บB0‘†วน&มิฏ/�aZ฿C‰€ฎฏเงŽไwX9!�9v�lFSช= 2aKn1ํช>D�ผ�†}ฯนฎ�่ฃ‹l0๒9nGŠBึ3๓:c�บ๎__R~ ษ๋๒่=a SOท�ไmEูไฏGfไ# iฺทo#Mษฐ9! lQๆฏๅท่ข฿Sห‘o�เ5ฮž<ๅC� ฦ๘idตบไrตยซ‹ฮกธธ\๓๑ฝภ3๓๛\œ�€ฮŠล๛~อ๙ู]ฺ[?OU_e{๖ 2 œ�๛&ž’๖๚g แ‚q{ืM g๗pฉง^�ฆ:๚หดฝ‹ต%บ˜ๅ|ป�หgn๗žภ˜šข(๙ฺWฟฦฟ๚W�4๓€อz‹ั–๙bFท�r๕๘:Ÿ�ุGธq๕˜a๓๓W$ฮฮNมoผม[oพNs|ˆ9,cอ‘ใ”/ฒB`ซ ฯ^ปF=kน<;ฅPiธxxส๚๔œงCI�qt|H]1*๐ฑg^.Q€” ‡1†ขlPV#ฤ˜%&k๕{k๑Dๆ™๋|PO!แ}~$ค�ฏ๓9ฃ/D๎N—J!๗๑)ฆ์๏ ดB+“/A1Q–†ฒ(pI๐[?� ฿�ษจo฿มด-๘ภฌฉ)‡^HV!ๅ/็ฌทญVŒรฤv/ล‰aไค๏1Rqดœ1ˆ„‘09ผฬyศ็ฮ4eX—5šyYณ๓s�X.QJ"ฝงฉ*ขQศhˆีŠ‹Ÿ|ง+�ๆ/�,ืฏ\แ๕ณ5�ี†ทžใีŸ�ˆฏฝ๙&๊๊๕‡ีšึˆ‘ใD žq70Sฌ3Ÿต๓†1A#IJิ'๏<๛%ฆc ‚ ]‡O‘‹๕–ˆd๐HTeษฐ>%๚‰ฒl้ึ็๔๋sผะtรˆึ&SฦŽ”@™ฬj%โ>ฐ:{Bท�โบMv]V-˜ต *Dค’่่™|@) nส4Jฑ<8f1_R56“ฯุฒBคภvฝฮkyฅ๑Baช’dมyL ๛)YSืMŽป(%่ )"mฒ–บ,˜Wนีjู6ิJแS@*•�ฏHฤ(ส�ฆๅฝ#ฦ‰ฆฎูŽž1tฬ1น˜"ฦXbJ8๏8;พฮ๊qฎuvฬบkJ$3แ พขฑบE$IQi๊ถม…์๊7$’vŒ�$ฆ0ธ)0/$//-Gmn š&žฌOฦ†`j#ญ)จ›I*dฝ fฺ!Db5)~roโ;ฏ{NJRฏนxดฃ๚˜G'†uท`uq=x–�๖๗ฦ�q๋ฦmฺ๖%$"Ev}G? ”อŒํf )ัใ8Pู‚aA$„w˜ขฆญช}=ฃ'Cฝ8dพXEึFmQ`Š’ฺjคถ8๏‘B็ชWc3ฃ>LH[2_,๒ๆฆช๛ตšัถ‰็?�๋Dกธyk๑?1Rํ�J9ฏ �ๆyŠy•|^•‹ผๆฦ �%TK„ฎaZ#U•ป’›#�ุั‰ v� D๐ฉ`1_p๖ไ>gBW4‹๋\>z•กŸ˜_ปNQฬ๑ำภly…[/�า”ๅขิ\พsI๒ !ตฐˆb$ศ€9:@™ˆ-*ขUสก[˜FคJ์ึkยฦQZรด!ยแaห3ขcV*H‘7ญนป-PEลผด,ŠฦลD‚!&๚~‹r=�ๆ‚�0ขL‰าpถ›xธ5ผ๚X๑ส�ž{g �|ธเแำ%ฏ<(๙ฮ› ZGiQd_CYี“๋;ญRุฒ&T…าิMKL‰มฺ�šm>›H๏ฉ›š  #ัRฒฝ<ฉh๊‘�fCTŠ&ฦกGš\ษุฏ/0UK "Eิพธ:ผยรำs๎<{“›�ืฏ4ฬส<$๎ื็ˆฝYm?ฟป�}๗฿ฅ!y5๓„ฉ %i2ว?Jผจ eฏฤ๙ค4Tžž=%น›อ9๏~‹ฦค(XŸพล๙ษชซwษ1t=ทŠ;/}ž๙bIJaZฃ�”;ฅ\<—‘ฤaMY6™xfชผ>ื"n3aฯฮฑ๓[่ๆJ$DqีœญNJƒl~ฐsDuD ๙ย’B$๋=ึ"„&ฅ|ฑสๆ?ปศDCกณฑ์=‡นฬST^™๏�ท_hไ.€!oหˆไˆI E™:็ป“$บžBF่บˆ฿Bจ‚$jฆ�ยn}Fต|{ๅCฤโ&hM;›๓‡_๛&›อ/>�"ฃs๏ี‰nท— J้\ม๋ƒ๘ไK7�;l=฿๚,u{…0\"ย91์๐๊ �;ช๙s๔�Š�ๅ]lน`�^ฒฺuฬn‘‚ œฟค ถ'฿EŠ—rzEKOeฆ:ส†ะ!u‰ึ‚ํvเ๏�ฝฟห้E‡.jŒา mำPึ%RY^~้E^~้ผ๓๘่ภฎreปๅตื^ง๗TUธ๕–ŠˆebP&ฏ๑ฅกiสข„(Q*qิ(TืQYIฝ˜มเฐ๊ฆไฺ•cคฉd‰žQfR[ฉŠ=ฺ4!uMŒ?๕„ฒ„Jžขีžฅ0M-E.๎)๒ฅ0‘ป)ฃd>ธSvจ“2†”ฆ |ทฆ4/วฒ,391pบ�๐;ฏฟษ+?๚๕ม1Av�bสๅHUH‘Z ๚่Fฯ๒`ฦขi{Rdน˜ก|ข‰ิT๙ูโ=Nฉ��"Ea9๏zV�Ž+ห6ž�ถร"่๛ํvฯปH‚q�qฅฐhc้ผƒ�ํ๘›ใo๑ลO}’ง—#ฯN)�9ุL#?~๐€๓nหั๕›่ม!"0Ž0๔๘ำKาถห`)%ฑ1โ๛จ5ฮ;๚อŽBVำ„๚ู_�Rฉ`Gสฒฆจš|kิ™y๋(ŠŠคKฺ๙‚[็)š�็‰ง0–ข,ฑE‰Oฺ(–U™sี)งŽถฒeฉ›ห๙Œyำใ„ ‚C"้ป xGˆ)GA๖™ฤ)E†�†�vอ4Ž@ู‚เsiมn๐๔ฮฃซšŠžEYเ‡�ƒA ฮ/Vlึ+|ฟ�svu]QXห4:�4ฦฉ$'Oใง‰ฎ๋I ›ด-๑!ฑจKด-ฐFS‹”๓žB Eฎ4ํ‡ฬUgŸฏš6 คเธ6�[mx๚dคผ~"%dฺBmAง U‘ {E„วณข^–ฤ่W+ชาbฅazPต็ศ'/xqปo=�q:–ˆขฮf‡ขF —”ขาŠ8๔L�ฃ%�่๐าˆจ”(Jห•Eƒ๐#+งธ่ป1pาEœjจ›อHc‡๓™_ญtv็ญ)สr฿์ใ@[•D)9_o)’G„Zฃ•f:‰ 1dึ๏ะ๗\๔c�w� ฅ,คHUึ()Yo.w)ฅ]‘้ณล‚ลม’b6gp‰ง็ฅ„O๚“ผ๏๙๋$๏๒๊X€ะ:็ฟ฿ Sฬๆชwง๓˜๒กญ๖Œ๔iณ_O„~“<ชd;Bิxื1น@5;ขฎ5�๚* ฌถ#็งฏณ˜-๑nโ์้�\ž>ๆ๘ฮGฐบงิ%ฯผ�E๎<� ำธยศ„tO)ฌ ˜� K๒ซฌCสŠ4]บข[“ฆ JLX v~ ี>“นํaGœฮ@–0ž“ะ]iลQฬ๒9„ถ๙์Žค๋� $3PEๅ8r?‹=ใZˆ}kU–ซไ_‡|๏๏…ืwูp#ั{ ซ9(It9‚9๎ฮ™FI`Š:รก�.ง ๚K�๖nFฐ๊–๊เ9LsLQ(’๋น~�Ož๒ตo|›kG”ณำ4า”ง็gkr ˜ŸB๓ไษ J >�…_c~�๓ƒ[œ฿๛CถฟŠ=x =��๚eฏโƒcฝบา%�ๅCLy€—ซ,ช>ฆž� l_g�๔uŠ๙๓ฬŽ� C‡*ัEKr+”.๑�Sึsพ๙o๓�๑o u iŸง7–r}f�ฮx๙…๗cuฆžใ€V ฉ ๋:Nฯ/xใญ7(ฎ\แ่๖uไfรbน@Yƒ˜ต$)12/ Iๅธ–TŠฺLˆ๎- �M‡(5Uกฐััํถผ�ฅ็)Š.๋๔RSึW‘ส ™๒๗8˜r™�ฑ|OJ™#ŸRnžB` “๙ !หaRf [?x๊ชD๎ื์Jๆร9ฦ|ˆ1ไมˆฤ8:†ษฝS3ฦB`'„TuIQี�เไ”?๘๒๏R\ฝA0%„ฑ+ •PL๛nŠnr,KK]ถฮแว[LB0?\เ๛” ถฮ3k*Žฌอ}ฦ๒pตฦนภKว‡Œฮ๓pต†ปMว้j‹ฺง•œ 'Jห๎โ’�[o๒‹โ‹�•Ÿ�N/Vtฃใ๑ู%I+ฺชB7s^}๐€“‡๐ี ?yTLhยG๚ํ€ -๓๋š&Gไ*ฺขd๊FโvGYZิง฿๗ฬ—D๔ค˜�ฆฑจF‡0†ัG„ถฤไฉl6bx)rฉIaqรŽสhŠfฦลลi6)LŽB+šถe7 ฤ#_ร8‚gš:„ศ฿ศ‹‹ ฮ.Wtใศrึาu[ถใ„ฌ[ฌฉpA€1ด ษ;†a )ละ๘=)(ุ:ปท‹"ฏผƒงGาฬ—”eมj;ฐ๋:Tีเœร ƒฉj|‚eQไž�ฒฬ[R—5}Uิดณ%Qid�fฆ‡ˆyตk 69ข”\v#ซํ๏ฆนr[,0 ”5Hฉ~ƒ*Oธ2ฟฟ€™#ห˜๒VแRf๙@–{yฎื„?r�ัd�G?๗nNฉ๖๋๒�๕’๗ค0B๒„เ!๖๛6พˆฮ!ๆ่qSOŒู]ญm6โ.�B๘�๙=ฆ� ฆ}–zyej&๏(สษ๕๘qKXฟCU/๙แ๋๗9{zย‡?�a๚.{a6›mๆC๋ี%ค€๗n๐|๑‹.Yฟ๕๏ู^< ฮ>บ$N+บ๕ƒฬข ‘ธหท(›ซหk่ฐ&&จ—/โืฏ‘Bภฺี�6ฺ(ด๒8็ ำภิ] ”E™ู^…(๘๛�๏๑๊ซoๅ๕ฑT„ัฺไ †*x๑๙๘ศ‡>„‘บฎ‘Je์h(ญธ�๐>o?8แู>•TUCฉ๒dธ�Ÿ'!hlบ-‰m31‚คฐš8Ž$‘Qา1:fMห๕gฏpxๅz†เ๘‰ช:D๎น๔ฆh�{~H]ฃ”DIIQ5Lฮ!%h n1มไcFขฆ„’เ๒gส)%‚e–Qผห;D†�t�H๐Y๏VRelซ c@JMS[*ญ8�๖�๎ืฟอQWฎ.ถ J!$W%“ฯ]่*หฎูํช$ฦ0…ˆ #;)ู๚ภใ‡'tภ4 lถ[.ฆ‰#ฅ.8šตจ0!P…ˆ‰ษE๊YรัขมEOŸ"ื๋‚ีฆ็้+? ด–�์/�e„wฌ๛ณอภVTe‹ฎf<{๛ฏ�›ปw๏S^ป…. d฿ฃ]@†€ฎ L[โ๚ฆ,ฐฅ%ๅมœ�ๅ–:ๅธป๚ิ๛ž๙า4๖Tถฬปฎcุฌ~"๙#`ท^aMŽA๒ํฉ_ฏะJ0›/Y?ๆ๑�ท}`พ<ส๙บqไม“b˜I0_2๙‰˜dึ@ดaุm1‘„fr#อ�[อะฦนพ(-•-ฉ็หLC'Švฮบฯ‘ฅฆฉ$jฃ๓AdK*-ป5ม;’PY‡&แ๖]ั3kpใHกEn ›F‘ชฬทๅ$@ ัถ`ำ"68œ‰nD…‰หํ– …s)%Jc‘1Q”%า<๙ปSJต๊ฑภMฆ”1wศTƒ0U๒ฐV‡o ถAesผศq.ฐ\n �’็๗พA^bวmืกE$๎ฌ—�ู�ˆู ๖Ožbo>…8"ย&ฑสหŒ<ำZc\พŠp[ยธAŠฎGีมSจฌF๘†( "�Kถ%ฉvฐ• aฆDทEไ๛ศ๊xg๑ฉSvc<ศ|gงsฉำ&‰ˆbD็ ;ซ&@ดŽC๕ม๎๏{�™;ภฆQ=ษ[/คL J‡ ๚๎e&‡ฅ ZF่ฮQZ์ู2?$หs–พ‹สKฦๆŠๆั7hฮฟ†ฐK๚ํ}6—o9คž๐๊ห/๑๊›๘ภ๛?@^”<:;eGฮ/.(๒œaน:ฟ /K6�‘g�sยแl@7Ÿ$ฯ%y�PิำD{\ผกYใ7ฏ“Mฎa&วธฑchฯ(๖?DฮQRฃMA ๓)‹`ฤตK|ˆX๏ะบB*ƒ†หหK���ื฿ฆ้ดษะFฃUฒด:็น~ํ|�9๗๗YฬfXkฑึB ำ†�ไ|แ‹Ÿใj9|โ.^kสฌ Œ!ํ™ฏึ[2%Y๋v‹ศ �vX๏™e†P–h‘ฮMŽ,+สบไ๖๑”bฒ ฤ1=กP%ี‹"Jไ.4KHลdR2(E.เฮ�ƒHฆชX๙H7 ิRq}VS••aคi;ฒ[ณบDF8oปt–XKณ�ะพ�=~๑O�?�ฬ3ฌ›Žญ‹๔1B?XLQr๗x7N๑Wพฯไ๖M2๋1ฃ) ฃฅŒiฒ๋ฌฃ ๋t๎ƒ<ญาฎ|� >๒ฤํฯคŒา”๕:หs6ซKถ๋%"Fค้�ePJ1ŸฮPภl:eŒษ‰า L๓–auม�lNpžqู่��KqyYF5™PฬH!šMb5+…ิ†ฒฌ0สเ†Eฤvr))๋šะnpC้„˜˜นH‰ํฒ8Ri‰"0Œ›อ’ถ๋้วmJeT“š่c WžvuN฿m‰*ง�ฎ่ป†ฒฌi๛ฟ๓บk‘บ 7๔ุq ˆ‘ $—�–ํfC&"S#)2ฮส]Žฏ ฮRW”๕‘eŒึา];ๆั๗_รตK1@Pฤ-ู"ว๋žrRก Eืl0Zข0 ๆ=๓ปใˆา`[.jf2รˆๅ9Fดา�!cภŽ#‘t�๚–z:ChE฿๕lฺ†เm?ฒlZขTŒ}G์[ขHQRiT^ฃฒœi^Pไ้vvž๊l7F-ซ’า์Xๆy†‘‚ ˜A็Q่†`Lยa:›.oมฒ้Gิ.ศ&�n๗รภะทˆจงs๋นztฮ6›๔ฬ*ญ9ุ;`๙เ๓์�<ไG๙?G้าs—J$คDhนห}OขT๒๛ำ๘\ศฐอ%หa š06#6hฌœฏX5-๓ฉแ์มซ˜rŽwำ‡ฏ“kม๖๒!2ฮฎจ๗orํๆ๓เWENž๒z\O•ƒฉ๖ะ๕uŒส‰รyJื/1ๅœr๏ ค–ฤq@ Šƒ]JZ‡ะ"_์F�Q,fšเˆDI‚#ฦt8ล0‚PJท2ญคุ}R๑์Jvyฤ ^7‡fทท~$K!€o.Q;"—ชPีQ๕‡Žh—„เ]-ใ๖>งฏ�ึiPฑ8dto;J–œฎ,฿}๙G{7n�คูฆฮ�ZฟC>oบ>Y’�@ปyศ'~�—)ๆท๐ใ)ุล� ty“1,`ธb๓เ๓4รf‚ํS4kV]วS�๚tฟูRฬ๏9นึ4o€ฬจ๎ข‚M‚=]2ฮ๘ญ฿�-�ูฟ๘ ๖๗๗๑ึ14 ๛๛GtCGYีผ็๎<๗์sTU๕.๘*ฦˆT)Lไมฃ|๖๓Ÿใ๐๖LฎRึ{Hืฒต“•Tฃg; \๕-&ฃˆฉX"!:t^3=9"ŸM8บqํtย�Cn฿พK 4q /&”บB†๔๏#า๛Z่*Mจ้ฝจRื= ตK‹1์ผ๎ฝEiEf2z๋ Š<ฤำ๎;นฤ.ํ’จ-xJขT‚ธ๘เ๑!�ค"mŒ�๎ฟฤ&๔โI™3ศวรmห G1ก’cTeA5เŒฦOะ’�Er 8;เ•DEม๛Nฑ�€‚R ๋ธZm‡‘m7โBฤL*B‘ณ้:&:CUร8าw๏ข�ว�๖Ÿๅึคfนํำล7Dl?&ž‰อ'ผvuษืพ๗]ฒษ‚ย ฐžผ2 x3&‹๖‘I �pVๆธ~ฤ Cฝ?ผ๗™ฬhฆำ}k-�8`Œฆš,ˆR!ส)บœขณ<‘…bhุa@็Rิœ‘พร{˜/ๆ้ถ. :K" d2 •�ะ ฃ GŠj’โ7—Œcหี๙‚4vqB1t-}�ฑiZdYฑทฟOUบํ†๕r…Z”Hžษ~ปฤD๐tŒX๏)ส*�เดฦ๏’มฦqD5ฦ$cฟŠๅf�แ5งEN.6 คฮศŠœ้์“กSp…1เ“�ไe๊>bDลˆŒ– y5A+ษฑBX7pvพแษ�5๓ฒลตKN/-ีมณ8o9}๕๗ฐหoฑธ�QะSข�ค ๚y–ใืฏจื1ี1*\w๋/’x๊เ9–v๙ ˜9“้!�~“ฟ๙ท�k..—ุq kZ๒IอtRฑYฏน}๋6?๙c?ฦ๋'•„“�ะ&มฆdyมWฟ๖Uพw๏Oพ๘๒สP•9 GT’�kGUMวhŒ– #6ŒดB`Mอ‰ &g9)YHI]W”ว3fยPš‚"xชbBf �ฐB™’ฌ�'๚†เ-Rค์๖|Sช$Xด6`ŒA๏ศ”Bบ�bŒBJฒi-FIbˆ„vิBสงq็ึIะซฬจฤF฿ๅ’{ท‹ํ‰๙๑/ฟ๒U.ฺŽnะY‹2†‰Lฆ5QfฃG”9:78๋6%!ฦH:ƒBไlนแbฝกํ-7็S็ธj{&Zbd=v๔ไ:ร๙ศ$3˜YฝsF Š:วไ†m7Ry๐&O�ผอŸ�ไงุ,ืผ~นไlณaฝihถ-cŒ8ฅ(ส‚e฿๒o=])M–i�h‰R]ภib˜—%cŸ,paVขถ=^kิ‡n^�La Fฆีล๙�ุฃt‰ษ*ข”Lฆ ์ะPdBJŠขdzV๋“ษcง4�ค>๒ผH๑g]›่mะญฮ้‡็z๖eŽ:ฺมข๓Š2ฯ๚ž้b‚ง�n๐c–Š้lฮ�d–<ญฺ€2๕Œฌจฅ๏นZ.มไˆ+{Z• !1ƒผท่ขb:™#ตF™ !Z*DpdDr“e $ศHฒถ�2ป<๑q„เ˜ฮtž„Z%�Hำ๕ด.…ย!่‡>aCƒลnึT๏}–อi๋7™!ศo›ไค— =จ™EežqีRสcคฐุ_p๛ึs�พ{|ฌ๘KŸ๘ณ�…Ÿ�“�ๅ_๚ณ<ฟฤ๕๓S^{tฦbพ@zK>6ะ…H็"ฮGf๓)U–%>ฑิ๔}‡‰‘R Ž˜ึS เวขช‘Jbƒc�ކ'๑�’CŒ‰๙�nqํ–|‡”•BะทF&z_ำฌQyIำตdส`วz‡ส๒”Lม˜, TЉอ‹คTฎ๓Œข,ฉซ ‡วิ๕4…‚ฤ@ืฎ๚-%{Gื(หเม๒u>๐“Ÿๆใ?๙็!ถ;‘ีฎxง“c๗k็WŽ‘8vIฌๆ=BฅXโ ใ„ฉE|4ธฑงํzB๐ฤจx๓—๐�}YwcJdžฆุ�;D๛†๓Gฏqt๗�|๒#ึคล„/5ฦ้t๙s�vs?ฒ๊c๊*C ‹RกJ—ฤแ"MCชp�ฤ „”F่„!YยtJ์#FะE๊ฌฃE˜*tv]ัNO�น*€[ูaf…T้B`7Dg๑ึ"„I0Hงพ…ะกŠQeศ|ŽฉฏCq ฅK๒ชฦdปพวฐ=ฅ฿.ษ๋}ค.ฐ�SŽ๖๊uู๊5T}฿mh/พว;_๙gุอ�ี’ษษ5ช๙msIืu�?kx็�)7o�b�เˆ๓ณำ$b#0๔–ัฺค4๖Žซซ ๓:๒C~ซŸคฺ’\naผใ๋Tว/ฒ๒8ดzF๐H -ฐ�&ล‡ŠลD๊,cำ๕ษ:b4Y–ฑํZ:›FahwA๔ฆi0*y„•ษี,๙ี‰ฤฑงi6ดปWUฆ  อะ3Ž ฮ ‘�่o๗-Œu8ภฦ%Uอฉ9ก�2> ธ•ย๘C�ฃ_�S�ยG~‘O�}‘[ำ#�ท๒/๓ฑ๗ฝภํk7ุ›ฬน๓ิsิ�r๕o๓๖zCa. œPฤ„$Ÿฮะ"`7KPGขbFIถอ#RJฮท[�.hำ4๔Qเo;ฐ#"’ยf†ž0๔„จ&งศ Šฒb์:ŒI.†,/๑คฝปu`ดกช ดฮvk†ˆาŠi]#E …ษ˜Oj๖๖)ซ‚qจสet-๊œal6๊j’Fsv`์ฎ๚—๎Œ?�—�*‹รร]Šw;หิกสดงE$0์ผ฿คb๎“’Z่ิE ำธ7z "OQต‘ค †ซๅ†7^�Cn0Dรj๕iฝOำœา;‰F.๎ฝB69เƒŸ๚s”นฦ่@VT„qใ ฃ<~๓aฺุ7fŠq—‰๙฿�C"›ฅdซูHS!ฆwR-"›#ŠyฒูฤxLJK;„�i*S˜*ๅ น๓yวดฟ&’ +1คqน4;๕ดMฟคFไsd1Ed9R$วˆ๗ ส"D†ˆค Ÿ๔*๖๒๛HทIQจํ’0๖๔�{ �n๓}ฺำo๒๐•฿#ส ]^ร์ฝภีƒo๓๊�๚QS\๛0ี๑์�~–ฌHvT๏๖๖๖)w๘สWพŠํ[>�ฑaณY#%l7๚nภ:‹Žfำ U"'�โŸ๚๓ฬๆฉx‡†๖๒M&๛O‘s|ษ๖โD๕$JjฦซืฌD ข(QีM”R4ฏ อ ]แฺSดัDื๐ํ—฿โไ๖G๘�๏�K�๛�แ๏`wรœมhมbพวt6ใ‰'n๓#�hbะ๏&N�ถ$y–3›N๙๖+ฏ๐ํ—_ๅฝ/|€zo๋J†กa}yล๊�’(…1ืš,7”™"(7ป๐ฃใฦแ}๐d}ฯ2ฏะMห^V g5๙ธก,+๊๒L‰v+"I#U–D€c๒ุ‘œM: $�9ฺถ@›ไ๐JโไyZปfy†๕‘a๐”น!$บ ู๎�BHแ�hQRคŸำฮn–t)%™|�ฅ—๙ๆ7ฟFฌ'ศ�}|�#‰ไRGKฎ5g}ฯผส1^ ดF9ฯh4u™3/3,‰7›W”นFHpฝc,XตEฆษ‰๔ัณืธaเช๋™Ok6�Hทi้�cฟ(๙3?๕3)ุ๊บ�า[OณZั-ฏ`hศ�ภ<“ฬ็ผ�๖�ผพ\3=>ฤ.ท„ฐBเƒG 6ํอฅภต�0เฅภฦHo=YHำ ๕ฑgŸ�Ln � lฎฮ˜๎_'/’’/Sšฑ[cํH™™„%Œ‘่=๕lNzข,ฏ.p�s|p”anhฤศ|:'(&sฺฎMYฑี<�˜ส A†ฦ7Zข฿ๅ๚duqšn๕BcCˆH฿ฌY/OฑBtŒ�ธฑC ‰ึ’,On}ณ&F‡ํ†fรเ6|„ถ๋ำอ[Š2ห๐RcŠ‚พ�าuฦ>ฅ๙"z2ญ‰HdV$ฎTื31ำฝฦฐ�A–e4ถc�\ั5kf*pณ๔ไณ}�\ 5%(… #*  k<“™dขnsญ~†Ÿ�ไO๐gๆ๘‹Ÿ�ež<ธฦฃkผ๏ๆำ\�๚ฏฑ~xำ?๚o�ฺฏ๐อ_๙็ผ�‡_ไ้[ื๘�ƒ‡๒S’�น?Ct}๊eฆ ‘ TjฤSW.า ’ Y “!bฒ๖คนฑ4ัŽฤ˜ฌ2�'�}@ENื\1-"}฿q�ัด๐ *ฮฮข]GถlฎNน��ฯฑwx ฃeUฃตฆศ%…�`ช“4.QฑE™erด่จฤ/ถA'ˆ|f/ํ'ISQ&Deˆ;…yž8ึฮฝ๛ZฃL,aP๛ถE๒w๏^ดุ”HLถ;•ํFๆvงZฏv Žแว>��_%+›๐ —฿"ฦํ’ๆั›HR7%๋‡_ฃป๘:ซ_e}�ถ๋h�ต๗๕๑ๅ”‹๛_C(Mu๒^๊๙ŒษtŽ1#~l�S2ัSWtqฬณฯ�ฏฟ�:฿}้%>�ฑ#…ไ์โœqฐlทIksuyIืต%ธ8_๑�๗>อํ;GฌืW ๋๕ฆุ#h–oSึ'ิ‹๔_G˜=ช้qbย7ว-ฎ9ร๗[&G๏ลn๒�ฯ�uNž๚qพ�อ/๐๊G฿Ž�?�ๆ฿เ�๊„ข,JŠฒBหœษ|สคช๘๐ž็๘pŸ~่6vˆ!ญ”าญ๙�—พศ๋+n์qxธ@่ fำ5๔cŸš A๒ฦOฆไ&าธ€๐–ž”๕0ญ r46@7๖L๋œ.ฏƒๅ‰ฒเ๐`Žด—VRh("fSผ]ฃ…D็ušB)CpmB๖๚žูQ!สb‘‚tŒธัขuRฎ—EJ3‹!ษโ‚OยZ๛๘๙�ัcส”Qผk)s. E$ห ฏ�ศฟ๚โ—(ฏ]วSฬj $J€๒ฅD9ฅ๓๔!]บn`P-#^Iœตฌš–ก๏)ช"ศšH๐EจคB–9็Xo[d7pต�2ู›Cค๋z\�ณฝ�6?�โ‹|๚ลqึณiz–ƒcีถ WดMC1ซ$vsŽทผu�!/=:#ซ+ค€nำGe ชJ์บHฐฬB™#ง5t=…” ๔ใฯ<๓DD0*ฅุ๘˜vuUฃณ‚Bฅ1‡๓6์Jฆ๑๘ะœE+™ข I#”mืณูฎะYษเ#YQ w7~ฅ5]฿ขค`ณผไโั\๐D็วลzƒ6ำฝ๒ฒข– ™‚๕x"e5I†ัSO็”๓}z)ช๔Mั&C๏lBชšั„`๑COฎ%U^|@ูaื *ด€ฌšฅ{!0y‰�มlฒr‚—)๖.ืm!F‚T �ˆษชใ#ซ๕ง๋ ฺๅฅ ไสcDคฬn=หๆฌGธH z‹cไhฟไ'๔™็�_�ำ�„?๙ำ?หฆ็‹��ว�อ�ฏ}๖wนx๓ พ๒๗�g๓_�� ฿๙�็Y๋ซ4็’ข๕๐—/ึ‰vWืŒ>โว‘IU€2dZ๏�”F)๒z†'‰F๖ฆณฤVึšyžงค$%ฑCฯค087ฆ4:%ˆ>€”Lf3ขwฤกรวภf�ะm4ฅ1ŒQฆจูฒb�4๔}GŒžบ,นZฎˆ2ฦžีถๅpoŸ|งd–มbL†ั†fปf‡ไ|Tำ=n�yฅ y‘์„�ุ2ิ��_๙ซิณ฿ถุ~@g‰$๕ƒN{'q}z–๚่9๒jŽp+\�Yl˜อฑ›ืศสฦHฒุ0\พJt[๔โ๊�๗a‡ ไ๐๕ี�ๅ๏~‰ƒƒžz๒)ถ�-ระำvอvCำ5H“ฃuA�๕”F๑แ฿วล;_ขk[๖o|€พY"…#Ž๙ไ฿žกช๋ไี%FL}ื=@ุ็#ล์ฒ๎}๗wุ<|›๙Ÿโ๏�รภUซ๙‡�๏๐ๆ�3LVะwe‘ง˜ๅฝ9Z*ฎ]ปฦษ๑!Yf B; l6 ™ั๘(ซŠ๓ณSพ�วฤJ€5†;UN~p€pภ V™ฅ๑ธž•ไฺฆaด™ๅ4ฮ3ีŠ้tFg†เYิ%Tไ“Œ๑�œ…Ql–Wฌบžน‰dี แZœฉจดฦd5Yž#MŽ1 นหn@่”2bL: œEKA�I˜Ešl`pž�$~ฦh-ฮ{„‰>'ำ฿ #uU&{ฏLbษqดษตฆu_�โ—)ตคผ~“<“x–Wgฌฎ.๑บพG+ม��!Dฯfณย(C™Wุ:›คXปค#Rฤแ|Ÿฌž2F‰ ช,้ฅ 3–รษmำ ๓ <ร˜(YE1!mฟ๋”ูYj2„้ก!b„DฉdsPฺ`vยบำC็œฃ2ู™ผM�7‚QHšฎฃoทhแi7+ขณไ๕Œvv(ม‚๋ytuNs๕ƒช`>อัeฮ%{ฺณ�;เ|i`h�ƒ„๙ม”ฟ๓7��ฤงŠŸ�ษแV=แ�ฦลฏ�_�Oผ�…ฯฑzpŸซื_ๅ๛๔ว<ธำW_ๅtณฅY-ษชšขžฐz๔=�น{‡wถนา๘กC™NLชŠmณF))ง€ ื ’ขศ †พ#xฟS…:ฌบ!มKMื๗๔]วถูโœep#๋ํšั'๔ฆ0๘H^ไTEฮU฿๏โ oฌ ‰Ÿl฿ขคแไ่˜\K&Uลดฎ(๓Šผช๚†พkะRaคdถฤโ่]—ดฮlืkฮš+ž�ฤ'๙‘�4B(.]โ}$ฏŠ”)ํ�ป�๖บ๋tธA๊Z…H8Q“ƒ"0BH‚Mิ@!3”.†‹ซ%™์i—oaส=„ฬY_ผ‰ํ—จฑ%†‘vuมั{~„ลัMชฒHFSว,ก}€p+b๛แื่ษMDดศแ!ช:ฦk‚‰ํ�่l‚จNq@šฒ>L�r!“G{wูFฅ"-dRƒงฎ:uFi๊ฐ›้๎Fๆมฅฉ]๛bฐ‰Jง "ซS1ญยธK$หัๅั ๘ฎK8e)ู!ส๕ุ๕C‚ู�็จ฿G>ฟอ์ๆว(สœข˜ขtฺํi‘๚อ›T“kŒฃฅ฿\ฐ:-E˜Wต`ฐ=ลม‹DYเบ„๑’`๖Ožไ๓_yG๏ผษ‡?�ถMระไyมฝำ‡hฅ1Yฮ8tธู6=Ÿx~รkท)�G==ม—‰ngJชผ‘จ“รNVฝ<ๅงหŽ๙b{๐๒g�:Oฟ๘ห|�ฅo๑๕—^็;฿๙>/}๏๛�ธq )#ฦฬ๛าตŽŽ๘ไว>ฦ๕“๋ิeEำn‡ฤบHฃ Ažๅ|๋;฿เ๛/Ÿ็n�เํกg\_r๛ฺ“ฝC6�‡`R—้๚‘ุmัY†"ข๓UNษŠŒMQErT๔ฆBx’‘<ฯ˜ิ5~ูEdqxgคาิ“u9KๅฑE˜๚]zžทtฒ—=ฆ์|�BHbŒษd vท?ะZcrƒ‚q๔L๊› uถรซ:c๚Vลยqํ*ีS สCL5EŽ[�๒ฯ|Œฺ๊ำำ›x฿�@๖MBX—1๔k\ๅปy!K3�y้ทYฎฏ๕ สตH5%T71๕uF;ะญ_e6;ม{ชor�ึ ข]๓;Ÿ�cn�8แเเท›zุnทิUE฿6dEฮลู'Gผ๘‰Ÿ&/*|{J/šC� ห;‰SแVธ Hก ~คu*ฎษงw๘๚g�O�|šษ๑�ษ?ๆ7N๙ๆท_งžNษTzฦชชๆ่ไ˜`GŽฏ฿ไG?๑ ฎ๏lข+๎ึRJ ะ=๐ฟวๆ�Š�8&Ž=_=ฝไHGๆGวHQคiงV˜บฦไEnh�1ฒ˜ีD•เEeฆ๛6+ˆU…rž*“์)ษข.บa[๛G”ำYz6™1ญJถv็Sm&x ŒKผ๏*O๛j“t!ฆ`”กั:aS‡ม“ษeด`ด!yล8›V|Bคฑฐ฿Eฮ9dZโ H(V)$e•3ญkพ�ึ}^๚ฺS�ผƒDณบZ‚ก…ะษN+ ฏ�บศsP0๖-Qห†ค%ํ.ฒฺวH-ง›f ณB๓จoV˜อ*๗ J’!ท=๙้;|์…๑“?� ขœญฎบ‘�i•4+ัฺ-Z%˜ฮ|:CบœเkoผYMm2ดุnd่Rษvฑรˆฐ–˜c๐y†raำ0Œ๕ณ|แ3�{Lฆ“๗pิQีIVŸ•Sด6dyE๐‘ผžฅp๕p~„เษ‹2qwฅB™œ‹หG๔}"~•Uลfฝขzฺํš้t†;l่�†บœ คdปY"ฃGบญ%nะโะ3™LญC๔�ิQzวุ\1ฉ&์ํRUฦvƒ๚อ’,ซษ๋)RฅฎIแl#ิ๕„ึlLถap.ํqv`.DโLทh“๊:J๋&)rbVb& ฌsd"RQŠ{›5หฑฃ #๓�p0ษ้ญEyวฌิ ผ9Q๏ฌถฌ7+บQ๒ื�ฯ�9๒g’wพ๘yพ๘_|†/�›ีฝทัEAต 33;8D�คšฯaปFNๆLn<ดอ02ญJฆืnรdF๏Mn฿ธฦ๋›–fRยNpฉ^I…สŠdf“4B—1าuฺhฦถ!S ฉ3L^0-sf“Š�z !0ยsธX`คฤY—�ฐฦpฐ˜ƒ ึaผฃ˜Lil7โvJp;%pn|WHีn–lN฿!JCYOฺ†ม{ถ›Fifำ)ๅdBณ�"|i๗ํ—h•n์—ึr๋�็็๊ำผ๕๕ฬ฿�ฺ๊Or�ึyกRMVป๕๘?๑˜ฮ–�ฉฉะฅB˜ นภ๕ษ—ศX‚(4QhV๋-�nd1eต)(Bฤ†ศ7๎?โฮ$cฒwL‘็x™ฦํ“Iz)ษrMPc฿กเฅฬศ"ด>ฑšuƒo{ๆZฑV”Dw|๔เถMG ’ม๗ ๆ๕DŸž-U�‡ไี&ห‰ัb XJ‚4ศv‚Sฅ$ร`qึ%a)Pงm{ฒ,ญyฌ hฅ0ZHซ้ž้)๒œ,ฯB2ŽŽ"Kbใอฏ}แ‹ิUงํเ๐ใˆŽ0=Z$(VpDฅY6-ถ๏h‡ ‰็ฎ๊2BQ•้ต ‰ื •^{๐ทํ้‹อำย0™ึ๗ซ‹'>�R์฿ๅึอ้ฮตป‰=๎Nแ ๔ว&๏~|7n้็/•B(ยAdฒป)ฅRืุท\ฎึ-้\MV๘q‰ั‘Lต4›Žƒ�?ฬdถภจ€–ฒL้fR)„�"|‡œ�JŠ��*๙ุ]‡,๖ภ++พIล;;’H*น›,hคIฤNa/ไŽฒถ{…_�c›?•์@•ฌm"ฆ,๊๎ \้9๐6‘๏์่1: �†ี}์ๆ!˜)QฯัY ๚†๕ูซIฌิŸฒพ๗}ิ�#ฤ๊2ีr๙ส?ร๗+&๛ื๐A`L‰sk๒z��๋ซ๛T๎”๊่Eไ�.r|H�-LพGUา๖T…ฮ š!าm/8ป๒|๋ปฏs๛ฮ]ŠขbตZ1ุ‘fณๅ๒๒ �๔cฯฃณ >p'๒๔3OฃŠ๋U ŠCฒ|ย๊โ๚อ)'w?‰—•“ๅsพ๛ต_%+“ˆ๋ฅ฿�oนฟนห็ฟ�2�่�s>ZSฮ&์1๖๓ฝ}Žู�K„ตว‡์ํ%F† :I๔ฅLBˆ†เ‘B๐o|“๓ณ >๒ิ] “zฮ“ำ)oœ>โป๗rcVqt๋ึŽฌ�ŽIžำ;‡. {$ ar–๏�‡ํ ัE†ัa}D+๏p>ฒี�œƒ\ใ{‹ะ ฅณไSํฃ๓Œ"K�xRa*=ลu— %:+“ ซM]vJ“zkฑฃE 6}o)Š „"FvHฺ4Jm FA™ผw(ฉ’Mฉิ์Iร?�฿ฆ:B}@u0'+r�่๑ึcŠ Mไ์l‰S ื๔ฤa$Tณู”๕82™ึHET’ขศ™e&๑วC$XK๋๓ึv:„ึœLk�9ป —ฝ^C�๒ๆgYLkฮึ[ผ0์ฯฆฌถ[ž�วv-Cืa๛+์ุsvzส�คไฮ�ง๘๚ห฿็แrC1฿ฃ�9สฬเdข[N"จข`ะๅ)SXG๐'%๊ƒO>�™ร้ŒํๆŠ\ฌ/ฯ่‡Žษ๔%%หซG“งez๐4�ˆ้–0yQQOฆ4›%Jฆฑฉsrถฟ 8)ฑํตหึฎ๊}ชj‚s–‘Œ๋ืn์ฤ1†hJŠข"ฦWJk)๊Eข๓จ&IมnIŠbฉ4ฮŽ ึ’ีSขlบŽnฑCฟปอ*T@ SŠB ‚P!ะ"ขBL@ •ขA%เ์ˆmื�ฅnฯ% ผsŽQคศC…ฌ›5ง�ศๅ๊œาM &ฅaฟNpŒREฌ๕ไJฒWU`น˜˜‘๏/n๒๓?๛3|่๔฿��”ฆูฒi;ŒV8ฅ)Nnุอ ี'[�มผb{vสผ.“r๛๐[ฮˆv`OK‚ฮYŸž๒�ำO ชЇg6›‘ๅํf‰๐žชšโว!FคณD7าA^ธะ'B)6อ–ม:ถรŠณ่ยฐํถฝe6aRAiงณด ็qฝtธพIA&I๊ฤb6c:ฉqใŒ2ิำ)Z�ฎƒ”ปm,ฯ๑>�€ฮ Šบย#1D๚fC�๕<?๓o�<฿�็x='์Šำำ‡๔mฯ๑๑�ฎrํvพ;[Uฺ๙ช�ุๅE-ฟ#Eฅฎ4๙Ÿ“0,๘€๓)I๋อš,ห่๛ฃUตOทน1iwึต�/PW ญ๗๘๗ว…<ยhSท�xE ฺžะ_ํฤncr#จvX“ั‚kY?�"ซษ็wqDบ%�๚ŒเาdXœ#ป๖ไ‹c่พฯๆอ฿`uนไไู_กPู�^ข”ฦลœ๕fM)ชร๗‘=C�พŒ/]ฤT„จฐๆ&Btดซ%ฏ(ช'7Ÿแ/ฝ‚{žพ{๛]ฦ~žWŒฃลzว0x}฿r||›O|๊็ ขย�„วนศwพ�O™<วt๏€,฿็ๅo�&ฏพ๑ ๏y๏ง๙_�็�’ฯ}๕Œ๏�s�แ?Oปํ™]c2‘่ผไ๎“Oq็๚un�ธม๕“kฬ{&ฃ๏{สฒFkEU$Dฐ’cr‚yใW๙ร?�Gำ)?๖�gฮ1zO๋O”๗๛Ž๏ผ๚ ‡JS,Ahฌu๔�"ผo\ภˆๅํj‹™ฬน^ฤ XวศพŽ๔Qก๛ˆกแ่hฅs†๓G๘ฌb=XœŠิeM้TJ๊สoPู๏zPEzD‹ิฉ€k“’ศ|xศดB ญว™ึไyฦ0ฆuOn$ึ๙ดC'่ค”4mข™iฅมฅgฯ& [UO๙อ/•ห๗˜�บK+%™–ˆMGYTuIปmฉฒ  v“็@:๓ฝ6LDค๔Žต๓)ถ[†้ญฃsk4‹ข@„ภ#M–ห†‰uœ>ธว<๙$ฟ�ใ?ฮเ�ัaWXพ๒UขMํฑkั!]หฐYaป "Œ_ปลท^y…W๏?Bเวืu)h�จนฤp™ฦ แซฎC„d๏T๏;9�L&"vhษฒŒฝ“;ˆฺzŸ`Hœา๏จ�ฆ$*@*Ež—I”f{ข1ศฌ็ัSLฆฌึk๒ฒภวˆะฝ่zF^Vฌ—็D™ำ๔-]฿1ุ‘ahวัŠขภ๏ผ‘>ค�ท เ�€ ก C฿๋=ร’ชดิH`ป”U๋’5zO3ŒDฅศดฦHอถ๏qNA"๋๕Š\+B A vYม็าไLdL™รhฮ}ไr๙†–๋‹)7*ฎํU„hYdŠ\ ๖g%๛ำŠiก !า=|๊��าม1ฏ�ฺ�สrนbำด„ฝง๋โุc—็๏88:bชnณ"฿?Aธ‘‰Œผฝ\qี๖ฬe „ˆฝธฯตฃCฮ—kš‹ ž9ž๑ฐ๋8๋FBปfh[F"ขจ8[mPLQั๔=Ef˜ณ#Z .G๕ศ‹‚z6ฃw‘ฑ๏จโp>ม†ฤšื&c:a:ฉ)‹rGไ? ถ3Zๆ{‡ิU๊ ‡ถK7๏ศ๓ “—ดป‘u฿l)ส ฮŽdE™ข–KŠๆ๒็-:/h7œสษoพ—งN$Ÿ�ต�/๚ฒ�ใ๓–็�{“ฝฝŠhwก;ฅตx\์ทอJ@*€aWศy�จ'บณŽก๋,็็๐ฎ'ฦŒ‹ซ+LธเโrIsy5๋ห‡Tณ;�~๊รT…F…†2Oนษี�yQ�sd•0ชบ<@ d๙s๔aฐ—จ๊Y,Rท`๖ู์pAสhŽ!ฅฎ=ฃฅOผป๏Nc๒ไดH…�๑Eๆy –`“งWฤvD8โ˜„dม#�c{ŽwS.ˆHข๏q�9๘]]ฃนz›ํๆล8@˜~7œโฯŸ๖์ซœžžณ�ฬฯัoฯyํตoฐฝ|ƒะž‹๋HU!�ˆŠๅ�โๆ ฺ๓—(fทฑูuฏบ$ห�๙wู5†ฑ%zฮ็žฃ…ผๆฺั Mำฒ SU”ๅ”!x„๓h•๚-ื๒ ??@ŽeทBŒŽฑœ0ุ–RjZ๋9๏Gฦฌ@ตงฤ ่๚6!ฏวŽ`๛„รึแ{"im2ณƒฑ�ˆ”eฦ(|๏#ั(%่G›๖�"2X‡’)~Zอ8zบม‘็iชคdpฉ$‹ษ”oผ๒&_๚๚stํ&QdŒ"โ�Žูม”*ฯyิtoษuโ^ŒF“K0E]าw=ฎhbภm{Fอh .ฯงLณœร"-dYžฐฑ�ศ่=›‡๘s?๔q>��ณ๔�ณ้^๚ํศ๋_๙}ฺอ%QW,›žๆ๒ํ�ทalทWL‡L๘ึ+ฏ๓า›oกง{ฤมข|D†�’Z"Cš๚Ž~g๎เฺŸๅจnž|F์ ($ล4)ช๘ ั"ญu^ำฎ—Œ�e"ๆ˜‚ัiง3ึ๋ สขฆž.Pมƒ™๏ํภะฎษฒ’"ซ“'�Žl–gl.ฐพxˆษ2ขภ%ตsŒ‘�ฝ#๖าm2| HB๚ผwธ~Kpžขศ1R!”aพŽ<หษ3ณใ!8g^*คJ‰[EL์ํผชษ๒’(J2ฅi7WŒ�crดDฉ0&GjIกูn|ิ8ว#ู๋ฌฯ)รศฃำZ0ฏr2ำค 8Ki xKFส‘ ยPO >:ูgบ�๒่ั#l�โœฅ้zถmKiิ„|WE?]$์ๆ๒โŠb๏ืฎ้‡‘i๔จXoทX๋02ะ๛€kถ๔ซ+ฎWš{ลซœํ่ศฒŠ่Gša@ลศุฌมGสฒ`Œ‘ม{ดsˆ่)๒‚บศ˜“ชฤŽ:์ุ#… Ÿฬฉ็ณ$4 #*8ฦq@‹Dฑ๓�ง�๖คf2ฉฉ2™V!*�สึlšMš๔*I๔IอฏซšฒHB็๚](ŒH�S๔อŠb:c:Ÿ3"™œ<ม�ทพอร๛K^9+Pี”<�>�ยDWปoŒป‹จ\ต��E_1�€ื,ซูYŸ’ฆผรู€s๋#]๏1Yมีบ#ธ5‹๙!ฏพ๚m๖๖ฆ(ฃฐ› ส๙�zโ}ฬf5Eก0า“U ดฉˆฎI๙�บB˜<…bุ5ฒ~ฒ9a๓ขธ†,ำธ<ส’ &๏า_ลŽŽ๘ธัN/M€ิ1ย็uK‰ุMฎw๎๏v๐ั�&�ปส'>ซ‰n -ัmฺK†v‹)Qฒ ๘)tฅตรŒีๅ;4ง฿dป~@ฬu๖oœซG_ใ๊ญ฿มˆ–ํจ™฿�yดxปฤตiฯ^gr๋Sิฯะ\ผ_ฟ( ยฐd�œ‘อoใซ๗ขฒ)VคnนxŠql88ธ†๋ฮุใ0:๐๊+ฏ!ศนq๋ 6ซM฿ขคfฝZbว‘ผฌฐ>ruuม�['๙™I]!ขงฎ*Vซห�$วawรา �+์๖ŠฬdLgs„ธกcv€›ํ2ล[‡št`8 !ๅฺ๚ธ‹<๔-S�ธ๋ถา๎ฝž๎ฑ88ก,'ฉฉช ?๖lปญeYาD็ฉซฅ่ -บš"#t�>สไำ๕Ž,“,แ%ซjBžๅi‚เยTฤqภู€Vคhพ!Eช,๙ศE^แคฆา้มYญ.S๒ฯ8๐psEป:G๛›{๛•ฦ ={ตF„ภี๙%9-uฎฺ่DฏSRทษbเ=w฿AแVK|ืฐ๊์บแI _ณ�ส้Œ8ุa$ข่๛ก:xŽo�B5+6>r0ซุ:ฯr๔H“SUUŠŽ็5oIฤvm1CัR"ผEำฆจะeR|„G™‚yYข%(ญD†a@‹’ฮฅ�–6๋%รvƒา7)ษ(ห‰สฬฐ˜L๐ํšqป"�ฅˆmšgวdฯ๊zดV์ข•ภHI–g่ฒbพw€ตg-B*ฒษŒaปD"Eลลู#๎?x›R,1ณg1Yษt๏Ÿ�้Q์lB$บX}๚ู ‘hc"ย๐xgผใ~หิ™็q�Hk#!|BH๚�qฑ<็pฆุ4Žซ๕UU ขรG7ž็ฺ่-ดh "Ž˜jA7ธี+e hแPบ@F‹š�ื�€s-Qิป}c…4Ugg๙ฎxงฏSH…ิ*ด์์=‰ฐ๖ุ฿ฌr๑๑H=์�๐!้…ษT‘ะ_a๛฿-ู^ฝ“ŠFyผ>Aˆ€/ะู,ฎู>Yน—.U๋ืVoRพ|๚>7t›ืุ<� ™ˆr�y|L fRX�ๅ๗˜�๚aฎ=�\�๛#|wŠฌึoบ ลม‡่ๅMฌณLซœrzn{ฅŒ� ทฝ‡1šh๖ุถ9พอbo๏ฝzŸo๛%>�โ ๔CEžฅdตZRUฮZšฆมŽ–งž|Ž฿��or๋=๏็ƒ�16W๙ส~›�ๅ๏�ฟ๙งฟ๑ฏy๓ิ๑เผ�เaๆH•ณ|ใ79น๓$O�พอ��7yฯํ›@ค๋„าษzdrบก฿ฅ1*fu…2‰ร H!?~)ชŠฏใ๋��ฟฤGŸผรำืO&#‘าส]ฐ… Riอตษ”sx๙�œสสษ‚A_ข็rฝeนฺ2) $Š๊์œ]ฟษฯ�ุ .`Cคต {๏yžู์€ฑ�&f=a{๑_.ธ๓Rํา_{๋ถ๓=T]ƒu่่้Gหv‰>Ym็yU ‘ยภŠ๕ฑปw>“ซd”ฯŠš๙�1UQา-ฯ.‡ˆ’n}E5;`ถwˆwZi๊"gvxลม5†ถลy›๒ธท+|„ข, L–€ �yส,รไ™– cหัอg’&8ฒผ ฤˆฎVKู๊; ้ใ†พcR—H]ะ MR€็ุnืH1Žอๆ-$ีl‘:งกรyQ;ดดํ&๎ED˜‹็วt๗&uQฌM0!ˆมa]`ุe†ซธ>[๐ะ �<ฝGi-{ำ)๋)ช)4mืbดขœอ˜๎๏!„เธš�HnHมEมฅะฅq$Hอfู’g†~ปฤ]]1 #%‘หถC๘-๛FแmฯjปEๅฌ๋)ซ Y>ม]ฟ้]Pั.C\ษดืv!ผG Fห0ZŒึษ3๎Rlh�ํบCH๋*ฅ4M?็)ตRจฤG?Xฬุ‘๙�ฟลต๋ื)ŽOธlง,7BPีE ัาšN‚)3šaืด ต˜5S{s๒,cื็3๒Iุvไ—k�ƒ?๕‹�พvฬ0 „pcOQN1{ื8�฿วYK]ืI?"ชœ1น๓>๖ง5FD”R|็ๅ—่ŠP`G่V&E?�HัŠ2g>ฏ1!MHUU ^ธ~�™i=# ตŽy=ม๗ รุaŠš"™ษ™#wc�oฑ>ขLš}รfyฮs๊zu#ำฝ�‰>แ…ฦป”5Ž#�;คสˆ$จ†�`\œ�gฝพ"JI=™แl‡ ื๗X?„F้d'๐�1๖ใุc`ฝYbํˆQ:ูฆ%$>x๊ผDŠ4šตฮั[K�y�๚f‰’ฮC�mษ˜rJ‚"+๑Rฆ�ขํฑ"pู4ŒอšรRq็dฦ^m(t๒ั—22v[คณ4)ฮฃ0๙คม[K5-ษKCธฐฮุถ-�Eผต  "F�ฎภUu‰๓žฑm12Eํ"a์่›žจ4^i๎?xHVี์ี�ล9H….x‚ฮัJs(=Q ž*3x๏ูz0yฮฤHfZ1XฯึคV)ฃw— Vไ%‹ล!82ฃJ03’๙dB9ญq!ฆ�mžผco:ฅšิHฅ่š–ํ๒œูG;2๓2็`�„AฬธZž1;2�้็OSNงDำŽ8ค€๙ุJถ+ุ?เ€?›?ฅ๏จR!"ขภนภh]J๋SŠพ9=_ใ์H;๎?z ฅม6๗pรม2ืnพ‡๙�๓�BJข�Rˆ39F็9Jขvข:‹ศ๖ˆ"™#Mb๗ห๚a&?เš๏F่ ฤฒ+ย์บmv๗c‘�ca้u !าR฿ว;*3ยฐ%๚5มv™cฆw‘ฑร6)Oฃํ9ร0โ…&ซฏ#dมธy ื^ฒ]?@็%blXฎ6„๒&๋ท?O–Cื1ด+0‡ˆ์˜ฆ‹DUฃฤศๆ�q฿g๖๔ฯ!…C„†ทฎq0ซ9�Ÿ“‘:ลL๏โ‘iUฃMบ๗ฃeVUdFqน^3๔ฃ)MŽะ’($UY๑ๅ/‰?๘ย—๘ฑ�ว#ม๒�เ‰ฌ�ž‰”:s๓,ฃFฦq ศSื*uพ^ฅหรjฝ"ืšขžฐู4D!)ห”ั�=ูt†r–=,z๏ห ‡“ข`6ำGศซ!AyOกq๗<”eเFดิธพลถ[�80ŽŽ€L๋‘่pcฯzyฦ8Œ อ�ฆบ,J%�งX?!RtฌžaL๒YfศตI„น<‘บRyA^UL๛8่�–ผฌ๑]วbZกแ�>ไg~๑—x๎#?"r@ fJฆK%;WŒฉ3๕;ูผ)+$ๆ i”‰ŒรRิl—ซŽ๛ง—8�Pdซๅ›,ว(ข๏QRSๆg฿�ๆวท98นพGˆ@aยN,ถ๓s]#๒#bDทM—–�"}�ๅอ„่•*Y'#ฉ0ง2ถฐ�g?๎ยEธA‚นศวพo"ˆ„GŽ�ƒs๘๑D๎ฌi๖๊{Œ›s๔์Yl{;Ž๘โˆผ>A+Cw๕2๏}ัC;zบํZ ฒฃs�{ฟAกถฤ่ะf†๕5='xsย’ษcWl�๙๙ษฃๆOฃฦ7ษตA˜ cทNy๖ณ'ฉท�ฺ๕#ข˜3ญสดf0Bฦ๖!ชผŽษJTXฃu5กk7 �๛4ƒเK๘U)‹’ฆiฑ!๒่ั)ึ[b๐๔;ิชตวทžbqpยํ;ทธs็O>๕4๏}๖้D๐šิTyŠW=9L…*๘H7๖ฅ|dด#! ”Jู ึyTd“qฉhš–ฒ(ษŒF้šV5�~‹๒ซฟมร^|โR(FoSvืQ—สฒคzŠLS™d9k†#วeลึร็ุ\ญ˜ๅ9ลดbณํPถ2}}ึzLfXฺ‘0_Pษฑษฉ็‹$$ ‘งชœยu๔.D…ษ$�๓Sคณก˜ฬฆิUM™ฯัY•ะุ�๔ฮฃ<’ฉ*œี1ฆ�7!™ก,‹ฤN0:‡w.Žl‚ถh“.�itž�โJฆHำเ=ฮ๖Kร;็W�ม?G~r€(ณ„™už~—‹๎†‘ตH)ดๆ‰�ืp.ฐง0} \—tAu”J1[ิ”™๋ ทŒํ@szษ๖ณ‚žบรฒ๋“ฒ^)์˜ด\ฎkx็ํ7ธZ]าดRi‚๐*!ธqฐเฦษ‡๛‡œพ๖ ๔เ upBnjดญภƒ4Šฬœuจ"วฦ€๓หคลR/œ,>3™.R๑’ —ศ�ˆ $oๆฌ?ฺŽอz…ะ9eYาฌ.h6W˜,G๋k{๒rBYTฤะฆภ๛€P’ช(ฦ๔wโ๚vCUฯ(็ว $ฅNึดz2c6�c6™‘g†อี)YQ'•x๐LrMQN มา๗-yฑ๓m;หt2eณฝ" ะRbT†๋Z–มฆ3t�”5-า›L๊Œ1ค๔)๙๘ะ๓Ž่Fœ๛†ซอŠหํŠ{็็`;๎ฯx��c>�ยณผ�ฝO๐ฬญcžบ}ยs๏{‚�๘ว๙ะG_เนพ>๒Ažzๆn฿บร{๎�ๅๆษ{ณŠูb‹0cณ‚Ÿ�ิ‘•%๔? ฿พลUciืK™"+ ผu8)Y�งศViฃ]pC’ cO9_ค0-ฑvdVป,^AYไ\]œ“�F็ฌบ„nTฦ…ฤ๎ฦJ*$[‘ัiฯ�YK๐ž๕ล9ม 8›|žZ@‚ 4ั; m๏�ไl7+”Dg1:cถ8$+ PŠI‘Sd.Œา“)�๕ŠษlNYฯศ•L‡ผ ฯR๎:*uม�DŽ "ญQ”bŒ’ํvอ+็฿ใ๎‡>ลฟ๓� Rxbp?่ฐw}h๊tw�๊ใัณH ัฅ1ณุ‰“RK_๚d�0ฺเ=l�k{๊าะ4+ฦ๎‚๙โ6รๆŠถน"‰฿>โโ|ล{^๘LfภmQaKžหฤ#ศ็ุๅห฿"๓ัDท�%’i=j๖ ไ5่๔ๆGํๅ‚bท ˆปUzป�พA๕jr›z๏~Y��ใD฿†r๏.1‚ฝ๚บ8I๖หๆ ฬไˆ,ปฮhฎxฒฺงฬ,‡S)hWoRdฑ�"ตษ งXฐอŠ้“ฤ�„อูซ(mุŽš\8ชษ>บL9��๊-ฒ๚(]ศB‡ํ/0ๅMF›ท)๓œgž�(๘ี๏ฐ^]qttฤุ๗X็†1d:t‡j<๗�s�พu‹�๙Sจ…ุAŸ”l›๋ม๔Cฺ')bˆ่t๖H6ซSึ› R'Œ1eO�>)r‰แ‘1bว‘‹อš‡› ฃธu๛˜๛ไ๙ท๚#�ฤง>ฤ‡>๘^Ž๗็๎Mษ‘๔ซŽฎ๕ŒcHQจ‹ู�งšึ,fTrษฐ้ะล‚๋ท๏๐�ำื๙ุ๓ฯฒ}๛”ณ๏|ฅ3๊ล”๕บแ๔ท™ึEฏไ˜.่C ะ:}ผจPeลกู0™L’ฎฐค.-์LB™็!ู๔–ซๅ�*ฅฃ=๐‚จอป‚งพ๋˜ฐ.0›ฯจŠ kbง ํบAdพXg2+)๊Š`Gr-ธ~ํ:U–rเ…ˆฬ๗ฒzJ^Uไ๕”`m* ม%ี3เvโมฆ B^ีด๋K.ฯฯฺ†ถ�2 ํ๊’ั–�†ฑ]1›ฯ +xุ฿็้O�,�๎ฟ�ฟg1WŒรˆฺ)ฎ�อฎ4ฉัwฉR|JJJอyขa๑X๘ๅ™M๎n�๋mšโ๔ƒฅ. ž_‘—23ใต๏�ƒ‹”Fั]ผฦญ๗�Gw>€ึHทค,2๒ู ค� ย€ษงHS#๓}คŒเ:‚๋‘:CMo#๔\ fš…คJK“…๐oˆ๐w฿๏NBRำง—”ชปO’๏_˜„"๔๗้ืฏaŠู�s &๘ๆ56็฿`~�cLŽ_ภ๖-๋{@V-xคgY�๛v๙‡O|’อลท™๏]C่ฃ“๔ใดกเŒ\9t๕ใ8า>๘<ี๕B์‘ํ[ˆโ: ุๅห˜lŠ7'ฌ/฿ฦ˜‚j๏I„�Rd 3ฝE๐~�6*Ÿฃu๏ใl ›�AH��รถ—˜๊_๘า—ธถไ•Wพลแ๑๕]Z—a2)Sื�u8Ÿภ็็ง๘ ธy๓:๋6น$Tฒ/Iฉ่ฌฅฎ*†qคฮ…ดvœTd*J๚~dV—ไy1Š๓Lฃด@ขXฎื๏vโFง1๘๊๒Œฟ๛๗�>ฏฝ�{๖nฬkถƒ…ฑ%หซtนถ6Y{�ฆ$Aึ}z?J"ณ2งฮ3 ฅู›ฬฐม๓ฮƒฬBK=ฉศLA์แLg9e‘I–ฅLƒfKP‚Y–ฅ3mฐEลฌิ<ณฟ V3ถ1Uฮj>ร็฿=ป@5ํๆ?xŠLฃ…G0ะ๔1ษ+”"“๑xา๛ศวdษ ๑]ั[–ฅ„๓ญRฒdQฤ˜TํILk๐1%Œiฅqžพ{—G๗๎๑ู—พฯB์�1u‘18‹�ซFฃ"าํพ–yˆฌปžฒสQF2Hณž�ข`^dl‡๊ ซพ#ด#qฤซ†ฟ๔ฉ๐'^xžmณคR>vซี †๕๗๏฿Oฎ"�jอfฝaฑฟ, ดˆ์ี%2/yํตW๙ฺ;๗้M…АI‰QŠjwy3ขˆ๔ร€ ik–ฯh๊O=๕ฅั;†f•เม!ฅAe5�’ฃ”ฮ‘‚Rข๒,Y•๚”ต\OžWฤ’อ' ฦถ!PJํ๖�ๅl(5ํhฑ}CsuŸvyŽu#มY์˜�>]ิดอ:ัวขDi ํšกงF cว‘Lg(ฝ� FAฆD$ิ ชzJ1�ร�dYะๅผctžI]โCdดŽ84ฤ(ฃ%‡7o๒๔ ๏ๅgแ“�๛๑—๘3ฟ�S�ฤง^ไึ7™-ฆิUชธz๋Mฆwœพ๙าตœ�HปP!พyDlฯnอ86tmRu^~���ฃorใฃฆ˜p�ึ=ึ� yดคt�€ŒอเะyŽoทdJc@ๆ�อ:ญ;ขgฝ�เขd:ฉ �2ถ ีtn`์z^� ๋7n๒ๆทพฮ @ิ{Œ็gฝf!ญ| ˆ5Š[โปKส�๗bฆwฑอCฏ6฿วgO2=�(aX๑เ��T…gJทz�_ฒ้v�*ฆฬ‘ู”a�6“ใำฌทุ๎Ё*3H7`cลv,ฮฟ@๐‚ฺ๊c์;XkqjFl๏ใ†b๏yˆ–@ฦม๕็1 Bƒ™�ร๖!h…6SฦๅKฌบ‚๓ตd2›ใ‡K›~๕ื~“๏ผถยู–7�z‹I=ใ๎�4อ†ขฌ่ว‘หซ+ึ;ฒคต‰ฝp|ใj—๊ถุ�ฃฬ M7PW'๛๛HญัB0ธ$v:œึปK๐๎E@ ษ8๖L')vตํG\LNŽถiฉหŠL+�|�~�ท~‹—^~“๗�y‚๗�นIำถ8˜๎ฌฐ*3ฑ0Dจณ,่#ก˜ืuV ‰Lส ƒcช%7gS!๙ึ๋oัŸพE!กœฮษฒ ๓˜•�6‚s\ดkZุ๋6[Jฃeษดž2vต�™Mจฃerp„–น„˜ๅtฺ0ถ็่`จชcšๆ,i54\]ผQ"uถณJ‚‹‰rพณ2ชธE*E–)๒<%ดูัฃ•ฤh฿๑ ŒJ—ำฎําT Aปทn๓;_�Cึงุ›.“)ึz,‚�๔"Q* ก้†ู'กฌSŠ(<ฃํ๋`t(ฃˆyฦ^‘ฅKภ0ฒืE๎Lง�'ฟ๘Sฬซ‚ท฿�W—๐ึq๚่>อ๒\รฝw�aำ$wfหๅก3&๛˜ษ„ผฬธvpˆฉ&œ฿‹ฯ}๗bน w ณ Di‰—)LHI.STต ๕โŸษMฦะฎRnดT7 ตกiถŒอถoR';tฌ./@UV้n#b'กฏส c฿ะ๖ํ Sฒ]_&4 ษSC^QTb�Rƒ1Qh‚@gๅ$)!ฃ@‰ˆตŽูมร0ฒํ;ชjBYN ~$Œ#บจํุ%ฌตxย˜„SZดVxฉษ”Bฉ”WBคู4Œํ–ขชธ๓๔|๘ว~˜Ÿ๛sฟภฯ�้O๓้Ÿ๙๏�เ๓ฬ๛ศฌฤ๚HTYLBR]’้�๗3ฟ๓4“Yฮๆม=” _ฯX^,9ป€vฝA I–าTภ[์ๆ”อ;+๎ฝ|Fืu��่‹t๗ื4g—๔�หTl�ˆ ‘ 4มง=ฎ๗‰ิ๘4u(”ค๗�?ฆ�+ศา-=ฯฤže~ฟ]๚๒Uว�>ฆฝE[   †Ip8 (gFข‚RhbBก˜‹Žะต" ]0&ฤกH‘ ‡CH€ภภv่Fw๏ฯ)›•>ท��2บXปNใขขปฒ๊ไษg็ฟึ๗~๏๛ผŽe*๓’$๐ฉPH๏ะx"ู ภซ˜้แฺ5ศ(c๏‰ว๐�0ฎWค4QJคCF3Žtˆ.:ขฉ*ด๐t]ฯ ฯ)†#Œ๓D"ธแฃั„ฎ^โิuตํืŸซ๋ฑm(ž‰ำ‚ล�Œบ*ษ#ญษCz`;Q–ฃโ@๐ห‹‚ญ� ˜ฎeพ\1˜Lย;าDq&tฏบŸž๓_�ท�ป{r๋ึ!“‚4รแผฮu?8ศยิ๚๖฿nํ“&sp}จเ�ใฌฃkC}hoMk(๋–้ฒdX$|ฐ?cg,hซ3บfFž ‘�P�aด๗ —�ยฒุ$9าฎp๋*FS#ผค?{ U\๘ะ!ฏฒ1j๒H๘ŠE„ˆ‡แuฌ™ํ�บP๗ฉB’ Œๆ๋รตฑ-Œ๋^F„’xS#Dh่๓ก !ˆ6ogกmpy™?ย๘โวhฮ~สม;ฟวขQŠ๋f๘ฎa~z �Nั�ูฦe๚๙ํะ‘>xำM‰บศGื่ชEXqธ ด,๑‹7).|i๎ห˜t็Sธn†™฿="Šrตภ๋-†ฉงชfT]„ิ ฆฏp�“ไX��ฯผ}๛œ›'=t…<ช0๕’7�บลฟ๚๗ฤด+ุ�ฬ‰ดไ๘|มj1ใำŸ๚l๘�;วd8fฑZq็�€.Ž#šฆๆาฅ‹$YAE์Œ2ใ0ฮฒป1"#ขHำ๔ก {g<ฦ8K‘%dI๒แŽYณี’H‚u‚"0C�ศย หyๅๅŸ๒ป�๑˜.*>๓๔c�ุโ๑่8F˜ฏCF:‘มdฺ๗EV‰qšา[Kg-ญ6ำีˆ(8ฌ็ซ’ช3์ฅ1E–๑�ัŒ{๗๎"}รฅ� d"&Všฤzฒ8Ciอ Rศ+ฒb@oœ3๘8&�ฺฅณฐX-piqBฟ\iอpฒIž*ส๙9ำำ)…ภา4=ธ-mณDk‰–%�‡๔6)ร@ฉ`f๓~๓uก™.ฌ6nํ๛่Œ]'+ยฯeo!ฯย๗�าล‹ศคเw�เ X้i สbญRัโ‘๋�นWdTฦฐŒ๗ฅ้Gง1iCoPeฺ/นƒฏ~ๆy~้้G8:บร|1e^.ฐmLฒX๏๏s~vŽvŽี๙ หb>#ษrv~‚8IนดตลีkWัIฦู�ป�เ�›ิ;d}่=ฑ‰‘ร[g:HโภฤhB*จHcิGฏ]๙–ด}ˆ‘้ˆ|`(ฮt8cจสM]ล9 ๏ฌ˜%)QœKˆาœด‘ฆ9B€iKคŠะq†งsŠb„TŠ"IBVผซml2mแงwŽ$-h๋ฑŽั:YฃสjEช#า$Eล1ๅ�g,uWa๚๐Š”ค^œาดi>ฆqœbปšีrF�๕ม(†คZ†=ธŽ?�_๛ีฏ๑อ฿๚ พ๚kฟภ Ÿzžฝญะ‹&ฌD="ŠqRใU† H'8‚ซ5m’_y‚�k;Œาžnน œW๔mG9k™Ÿ- Yขบ†ศ๕ฤ‰ขฎS�x๛ํ-๖เ˜ณ“#*c าะ์–dŒ๓œe ๆ•๗X็๐�sWšแผ'ฺุ ทษด Oขะพฆ"†I„3ึX’4ฦ-ๆฬฯOqqฦcฯ�เS_z”|4dzึฑ+;št@๋}�ะW>Š้cฑšS$1�ย`ผIc{V‹9ฒk(—sชี…ง.t}ƒต†f5'SŠb4! d*NะqL62HSฌ Ž๐มฦVh02-Qš#„๗Xoืู�ƒ$I2โ8ฆnjzf9วแ่็�ษผ๐ู๘สฏ�y็ญw8=_๐ศ๕ํภgฝ๛�ฐ.tญ!ฏ?ๆอZ2_หะb}€ L_B‚ิำ iŒฃฌzyŒณซยœัZ…1u]ณš�งY-x์cฟฮ๎๖รQ &šฒ= -dํัžQh‹#dพฬ๖BF;� ป๎t#pฮ Mc!๏ญๅ๑๕/๕แu๑ 2ๆ~v๛5ฐฦน5dรczภbญ u™�<๔gO? \fฐ๛$หปฟG3}—ม•/“ค‚jvl�ชพR‚|ฐEำ.๎<‚/๗้ขํฐฃ>� *AฒFรวHฒ‰นOœlัด†aิ“m=RS�Qb�ฆlnlณ��wXีŽ๑ๆUคล,:ฒธ�^}็>m�,ฯ>yอ๎�๚€�๘G฿แพ๓Œ˜ฐ9)0ถ็ย๖Mฝโๆ๏๑ไcq้โ%ห}ื‘ฆณ้‚บZ%)๓๙œ8ŽNถคŠ้bม0ฯHข(`~ญ๛๐=x�ยmgBLhMNœ•+v77๑ฮRท]ˆุีq’0‰“”T ~�ƒ�ฬ�ร?"•‚ฏ=๗$W&#"ร$&๖-๓ฆฃ้ZD฿ำ™@ TRาึ#.:–P~ก”bัZVmื1ึ๖แฒ Cœ�>:ๅ๔๐PŽัpƒDฦILW๗$‘`kc„F๔[Š?ฑ้Bณะ1ฤ)eีAWฑYl`|O–มฒ,ฉSFƒไำโdฤhQฯ๏ ข1Bฅ8ื1ษ{”˜n� )$ฮข$๋ผ๓ƒI] A‡ bมpŒยใษาˆพฉน~�v|ส[ฏ�„IžQECผ๒ˆ4ข๗้< gจซ'%"ฤ‘ฦ)ลฬ�l็=ร,ขi;z’'}cทž+—ถ๙๏ฟ๑uดmฉซ9ˆฃˆ<ษˆeำำ65ฑ–ฌ+Vำ#d3Ÿอษถ.ฑyๅF๐�$)[ใ!E>เ๘๖๛�ษ;๏c’!ฺXLk*ี5ป๖o))B๚EขHAˆ‘ล:ฆmœwdลkZสๅ‚|ดM–Dคู4b๛๐DEภฺ’�ไf฿ีH%hš D๐ ส8ร๔-‘ .Xำฌpฌฆวิ๓3ๆห9็่›ก"ข4วyX6๕๚?h‡๕–8N๑ฆกฎ–tmE”ๆ(แ?”า;ำ’ค#:@๛฿ตเกช;สึaญแ๒ล-^๘ิG๘ฺฏ_๙›ฟส—ฟ๙U�ศำdE†้ m]แผDˆ€R–o9›† ล…ฝขณg=ฮ๔xg๐ถC/ข04็g!n1ŸbšŠX6”๓ ีึ(ำ#q,๚ŒมตงนE”ง3ฮjKีถ์Ž \๓ิ'?Ovq“zนdัt๔ฮ1ดmค3๏ะถฅI“˜HGŒว#:/จปืท$IFี›ภ}O ฦถx๔‘mn๙ๆ#H้ย9ซrฤเฑตษH& ‹ฐมs&ฐูตฟคฤ;๐6Hใ�นuž=;ึท’๕๋Va{„N2ยึKค_ั�)Zluvy ถ†d›bใ"}y“้ม; ฏ}aๆ,ฯ฿fฐ๓,Qwภ๊๐ว .~‚ฆบ‡ศถ๑Fฑ8~‡|๗#D๖Œ�Jไเ Š–8N้ญข^ž1Hr๔$ๆ์e๒อเโMสƒฒZ3�y–4ฉzI”Nˆ“฿๛๖?c<*ุฝ๒ ึ๖ฤIม๑ญ๓ำW฿!�y’gพศr:ใ�๔�เG?โ๘๘}’แw/แ'M3&ร/$7o�แ`�>๚ZEกgฯู๙9ซบYฏr:NNNน|๙J(๐1ž$ ต˜ำ๙‚,K(�Žอข@IEู4 ๓„8Nฐฮณณฑล8ฯ˜ญVDqBžๆ(3 iช๏ผ๑ ฟ�{ฟว��Ÿ๑ุๅ‹|๊ฑlลบ`ษบธฮ \฿2_•ฬหb9งiดJX5�๚"‘G!ย๊˜�๑  ‹c๚พF)’U�‘ฤ1ƒค OœžL9<บKYS5 นkตR’ว“,G๋ญ๖†า8"ษr†EศC[/ุœ\คLจตb”ๆh/่�›tาP$)]๏i›oกต)�ฒว‰ k �๊c=B%๔๋FHญ5ๆC“q(5y#†ทเLื๋dˆ\วหL฿ใ๑ ”ไ๙งŸ็wพ�m�๒Œัฦ•ำฌๆ+ค€L(สพฅYQHCI็‰#…‰"&I0ส Tkะิฒ%อ�ป_๚O สzบ:ฺšฆ-‘B3ฏZๆeล ฯ‰œ.V,ส†๓้Šh|‘ษฃฯ##M๏›ใ1ป›c๐p|๏6฿y๗dฑu‡4'=^+Lo่ช…}ธ76P๙ึอƒ๊…๋Wฟ…7ฤQŠs–พ)‰ใ  /†ำbฌฃ๋„ตHn{ซลซู)USาึ+ŒฤQ�”ท*iร7ถํ:lWแบ�ื_:ุXG ‘”x๙`@ืUTe‰ k;tคฉซุ%%Y>!ฌฃn2oะ๖*)ˆา”fน m ฮJผ\ผq•/�ย็๙ๆ_๛:้ฏ}“O~๕๓\บ~ ญ k๊UึZก“„r>ฃ^.qึRอิe ึะ7๕rค–ถc5=C้˜d0�|” G�ด๛๏sv๋„ฒn‰eM�`ถSŽj^rถˆYี)1�๙œHNฐ>aokD$$ณ๙”TŽO™:Mต\0ศRดŽBšudZ…ธŠA‘n{�2ฏ:ฒ(ฦ8วp2แ๒ีผ”\ุะlN ฆG็ผ�๊=\Uq้‰Kl_0=๋›ŽV)nอษb@8qยx8")FdIL[G�p8&I๖.\@E')Mง$YŠbšพe1=ม \ฏ>ไ�stmอ`4!M8ปญฃ€ไlBฌ*Mจ—KL฿ใคค/W †ƒ๐พTE่|ˆŠฺ๖\ป6F่๖ƒ฿วE[|๖๓ฟศpคยฮยไ้ ุ�โ๏ร-�C77ก'�‹3aฒ๕๋‚…ะO์้ŒรyIIชฆ,‹้mp=๓ีŠบ*ษอ1ฎํ‘ยฒปw‰แๆ%„oRฃUศสKoกผƒฬ/†˜šˆแร˜พฦ›งH=„4ฆmก4Dศ๐`{ &< ฏฑnถBฎ�์Ccaa.$ˆˆพœƒ›กำmt2 _ฝ‹kฮ‰ข ฒญว‘ถก[�กญ*6ฎWฝว๔๐-|<ภ-nฒ:~ƒถS่b“fqL~๑ฮ฿๛ฝฯศ†cฺๅm’ํศ๕ู{$๙ู่:สีศh„ื—่ญP�”fqศึฅ็Lฎpz๗ว,ฺ —ฏ=ฬ;ฏ�knฟ๖y๚ฟšญe�ƒ๓ƒ—_'š๑ุ �žล1B…rคb0ฤZOšๅB(%z 8RQ„๑‚H iฤ`8ภ:EIA‡ค๕0L4ส๖$qBcq$ม9ฺฎU๏�‘ŒขŒ๓{๗x๏ึ๛žžP๘ะQŽF(1/ƒQ HUฬ8N)คd9;gglŒvชˆA6`Vื0�@ล!‚›m์bหs†ๅ|ส๙|ŽJG๔ฮq||BmึEQผ=ึแm"‡’ึAZ‡u๖;ฌjฝ๗8”(v็Z€5=ื6'ค�—๙ํ๓ฏˆW็\ˆ ฮU‚5M]c๋žLHq„ล๚"/}ฯf‘ cMไ๓รzk๘ปŸ๙฿|�iVี’ฎZQVsฺ�PvฦBำ…dkk + *ืงธ๒8ู๖5z‚ ล1Y–ฒ‘‡ตๅแํ๗๘ใ7�ฦ$2 •8"^ฮyL�ก#ึRลq@š๎#/|K Gน<%ึแt> Y.ฮ€%ภY๚uฯCo*อPฮ3ŽศAณrม%+ใ$๔‹ฏฃBา[ฌ๗l๎\B้˜j5#ŠByงรฮzZ๋ะiบา|ภ b Pฌม65’ฎiฉซ’พi0อ’แxภ“/>อ—๙ห|ใo|“_๚_โ…O=ฯ๎ีห)i๋šฎi:ฅkๅ(ษ ฌณฬŽŽึyฯ๒่>ช9%ห3œส้บเฦvฆวt-ƒ ’ม˜ีข") ผPแ{~‹ๅ้Œล�œXปPะ๕ดตว๖’ใeN–๎R๏ฐชZVuB11™$��ฟ‡๒–๓ำชฎฃY,R†‡วrAถ}A’„ๆ,•fม$ำถ-ำณSาข ะ#ูฝดรล ๓iอbี3]ด˜ล)ใ†#\ฝbzXาT5ฮ nl�w๏กHsŒsdEŽยR.มW iJ–ึั๗ู�ฝBว4mK10Ÿžbฺa:๒แˆู๙y0F ๗๎CBWื 4I1"า ค"oS—%ถoัq*Mฅdฒ{‰ฒ*Ai„ŽจV bฅ!ึ”ฒเตื�ใอw�โำฟ๐w๘ฬงžrsXZใm0ช �ฬiRญ%๓uค,œ๔แเ๓…ล‡ผR*จ-–e�kผc–œ๏™-–,–g\พ๘f๖Ueุœไ�xๆkDZ‚ซ�‚8 � l�4ด~"@‰hxaญฤแ5Gq88ฅH�J�์"๒เต=PX›๗ยกb\[bšCโมํ๊6ี๔.ฝข™ํcบ%m=ง๓‘Xัี ขษ#,^ฅ<|“อ Oเำ Žo�y—!]…=฿g๋ฉŸ'L(6ฏา.ฮ้—งl�๘ QœSžฟŠ 4ก๘รต ๐-ฃ ฃุz”ีั+žฬI&ื8~๗wx๗;�ˆ ~•‡^๘tK๎พ�]พ๛็?ไ๖‰ใ๎ํ[�~๏%š“Wเ๐Œ“ &OSซ=EA‘$อBŒ‚š'<�ป{)Wฏ]cฑ\ัถ=J)ฺฆตรMPwœ5\{่a†ID–$x!Xึ5ฃ,คi:kˆUpใ:ฺถ ’ฎิMอ|zส๑�{�ู๗ฟวw๐}^zๅu่-7.์๒�๕K\ B—ทฑ$Iยxฒ\ีฮา[‹ึ"ไ๒mGšๅฤสce�็.tg๗]KYU8<ร"ง๊-็ห2ท8จฺ$ัo‚๎MOแ “๑oQDซฒๆเ�>ณ๛ท‰|G‘'ศ(ฌอœิๅa=ฆohชำาณlW ฒฎ7ไ*f{<ฆm฿@I‡ฺ�Bศ`š๔zภแู1ถฏช‘ใXใEDื[ผํจฉ๋q^ๆยบ [Jvึ.(jnM๔๋ตข”)ยฯiˆ์ี|๚๙็๏\็wฟ๗C}ษ�`€��ฅํBฮฦZาTใc…Ž"๒5cมXƒŽ4ƒึr|็.ฆฑ|๋ื~‘o>๓8m_ั5eURw-MืโdŒq0Lu(จฌาˆlHดฆำy๏HMžๅhญธ42˜ŒFผ�๊K�้๛wจณ1ฺ9ฌ๗DYBไมw†ึXtำแepจ‹8ฆwazิใ{{฿R]Iit”‘ฦ$ูฆZ~ˆฝS*"M2ฒ|~˜‡›”ๅวl๏]e4ั6 ฎLs)%Y‘3(†Af่L่M6yšแe€!๔E6คiซ ัซˆD+ฌq๔k‡Žrฌ3a2.—xMน:Ž(6 žx๊Ÿ๛๊g๘๙ฟ๒K�โ_�พ๐๕/๒๐cืnŒฑฮั6-5มกโ”ๅlEตX’†ธ๓›พ�=,Dš�เU2w&Lc‘ษo{\[’6lํaŒcv6๛ฐำwvrJ’e$ชฃ]�็�;w)คAHƒTmaej๋:…Kรฐ์ะ2ั๓๎๛๏b{Kš 1ฮำ,gศuฑHmzFqฤๆ๎คTธ( ๛ื3žŒูพzแ๖ฎฌ้บ�‡xฬ๔�ƒ๑€ว_ธส8vT•ฃ4š้ฌE4-ฒ]bV ผ๕Rฐตทวิลไy๘๚สี’f1—;�Iฺ๒€d๔B&”ง๗PqAพ๙8ี๔ชล]โd„NF$อ๒˜|็#คล๓ป?ๅฮ{?ไ� �๚ใภ���ฤ๙>๗ื�๏T็w๙ำ๗๗yๅ�[LฉN_E.�็สภ(ƒ'=�Elึ|^ฝยูrž-yฦrUG1ฮรู้ ำำsถทwศ๒�dิvBชีŒีขค,Kvท6ัi‚ฑm Eส˜—/aฝ'Oผ—Tuล�ั)วggœ๐�;o๓็?}‰—^y‰Ÿ�๔%๎RDšn\ใ้หy๔ยใ4%O3๒ฌป])‘ึะ•ๅš)nฑHšถAแษใ#‰3Šb€`ญฅ\Ux6๕ฟย9ด7$‘bU5คI‚ŠcใC5ึไ ˆ3ŒณD�ขUยจำถ=GG๗ูฟ{—ณใCt_#šŠ<_Ÿ qŠŽ‡4ฆ'M3V็งhcูุนD6žP{‡๖ฌ–ŒขŒl0ฦๆtฮ'9วps›ถmP*ฅท‹Rอމ"อrนค๏ 2*XU5ึtx‡L๘บ๐H)๕แ%ึป`๊2ฤดไีส(f�ŠOฟ๐ƒษE~็ฯJw๐>[ถe[Ft*ข๒>ภ y฿E‚ฤ:ใ;��”๛๏พอ•๑.�ฯฟ๕_๒+/GJ…A1ซjบฆe{œ“Eq1ฬย๐๖ปo๓�ปX‘<X|oะiBช5ึ:Z!ˆำ4ฌ ผวV-๊นKพตGเEœ` ีjI’ ื0—kz”ึAf7�๕D:8ึ… E๔Iž"„ ฉซpป)†tM‹5-Q’a๛#‹ู MSแlO[ฏ่ง,WciกฉVH Kย^Zห˜ๅ|ม๙ู!ฃแ€หืฏ๒ไวžๅs_�,_๛๕Ÿ็+฿� Ÿ�๊็x์…ฐu้"J)z Aืv…ฉใ�๎{’ัๅูซ;ฏ“ 'จ๒ซ›?ฅ3š$RDๅ{มัjภXA4ฺ N V-Eก้ฝฤฺกƒ๊ |ศPJยฟว๗KาีMบ้U�†บื *Ÿฎ สžื฿|๙สฃtฬชiH"ม๕หั;Œพ๘ถ๏™.h)ูOยุฯАตWŠฮtˆXใซณ๙‚(หe5ๅฉ็ฎ๓ไGb๛โ„ปoํs�`ฮp2เ๗�?ฐ�๔IDAT…]ไา ส�Cฎ>ตƒ5ซ•็โ0กฬœ/K|Uฑ9 ฅเย•๋diŠ๋*„3Tๅ�ด์\ผœใJาVKะš|4ฆojšพล"&๚๛ฎCฅ๒ษ&�tฬฆง๋(W+"ญBcุz2v%ศใ”ฆฉ1ฝกnjสล’ฌƒ2ฑโาG~…b0"Q5ฒ?'I‡hJาโ๑รˆ๖OPษBฅaฺ–Y่�–„๊ม:>&ึ๕ตณ2�ญืS๖๚ฒ>ฬศŒH�ฎiฐํ4T“ช�ื๔ซcขม เฬ�"๎!\Š$ศ๏แEDไงœพ�}ŒสH7ŸFD–'๏"ข˜ษ๖CิGoณ๑่ื0๕ S “MLูPอ? _ก.8ืข““ ฯขuL฿[’มEฒั%\3ๅอ๏��ูซ๐็�‡�บ}B1‰y๒K�5๗๏�ไO๏๏๓�qOพ๙8�{1™\`ธ๕(ษ๎Sศํ']ธมxP`ฺšฬ2XำQค Oค5‹ๅ’ฎทœ/˜.gฤาs�๊U–eI]7ดMอ๑๑!งววX�SWM�sๅฺ ƒใแˆ+{;”ซำ๓)ฆญน{๏.ฏฝ๖*๏พ๛๏ผ๕๏ผ�&ทn�ก_ฮูศbฎno๓๘ล]ฺžฐ;,ุศbI!ค@')G฿ถaชใDP7ใ;Š$๏ฺูู&อrฺj…ฒ<งwPD‚Qกœ%‘ ญ!MRโH‘Gแฦ{0†a1@+Eู๖ b-RIFƒE:"IRฮNฯyใ๗8;;วอOฑห)ย4lonลi่v/6B0Lˆค RJ!โˆฎซQู˜”๏$ t-{F“!}พ็O็•,5g รฒ ืi-%iข|ึ])ัZ}จ’y๏Q:๘YH์ฦŒ1XใXL็<{๕ =๒7หŽื^u|— า‘[‹7‚พ1 :๔ำ๕$‹)อ�898ไ?๓e�๋o๐ฑซป,ซภเ๗ึกUJk๋้œ`ูv #zhrUำ!tL�w”UM_–g’$œ-VX<ฉ–๔}หช๋๘ัฏ๑๚ด &^ฅฑiP| N†ฝฟ3ก๑ธ ‹:‰mz๑๒ๅoล‘ข7็ HM=?ฆoชฐ4ท†ฎž“d–‹s๊บAว)Yไอล๔ฃRp='๛๏ำฺP0"UDUื˜v…s–$‰ษFc๊ๅœี�omJššl๐่S3dฤ‘`0ฑฑฝอึ๎.“ํ!ืพฬ'พ๘พ๚k_็๓W๙นo|™O��วน๑ไใ 77ะIพ�\=MนZcQMY!T y ก่�•dT‹%ณwL;T}ฬ์�ืัร l]˜ สป(uŸsvT2ผ๒Y์ก9)9ูŸc๊}}Žqšrฑ ฎ`3'N$ฑฒˆ~Ž?}๙ษ”ถ๓ม�ฅaVVไ”'>๓sฌ๎�ฅš•TUs=EใeLฅิuร๖ล‹\z๊yบฒคญๆ™ข6/Q๕เ„&�,‰๒”ๅtฦtVSึ=เศ‹œX iL2ศน๕�!๏�ไe'y�บๆูฯ=ฬx,™��งง<๔นงXฯh—žุ[บ8ๅญ{วไา‘*Jจๆg$q‚T’พmPB2œlแ]ิ๎Tืว๛˜�2?=Dศ M9cจซ%Biถถvม�๕Cึ†�๚`Dต˜‘q1 เ’2 ป�คำzฯ`ดAคฎoˆ\วp<ค์O™ๆ7๘ิว?หฃ7ถ‚๛| 8 ?์ค๓ฟเศ^๏บVปนžย…™j‚ฬ.exXดMT*œTVค9แฝ�ŠษdDฌZ#f|—อ๋Ÿไฦc/’D–H4ฤ‘ฤใ›Cโ|ฉ3h ฺภu <9ธ„ิI(‰AๆW:ศ…ึ…;† ปl!ไฟื๛๛๕%%\Tย๎}ศ฿CฆRTR„{Š \I6ก={ฏร>�YGg2�ฅ๏:V๗�„�w�”8�ร มฑE[Pฝฮ่๒gPดWฑqํs,๏� dศญปDลtvE‡Lทm�`ถดผ๕มป{ปD้vนฯ{?๚ว|๛Oพร�ป+๒ฝgˆ‚8Ÿฐ็}�z๙OI7Ÿ!฿yญ5ใแeใะi†ŒRLืำทฃ1m�p�ไ”ถiYญ*ฮKœŠ[S74ฦ ดฆ[-8;=fooฝ Hำ”๙ฒdพXa๚–ชชQQฤ หฉ—sŽ๗o๓าห?แป฿�oฟ๑ฏพ๑:ทoพฯู๙ ื5l3.ŽF\�๓ศ๎ปฃใ๓,Ÿ�ีo๒โ?มงพ๘)>๚sŸๆ‘งโาตห &cผดMKSทดM‡้:๚ฎฃ๏์Z%€ฎํ1}0hG๋ฏ-L9แu�Ea} ูœ๓ํ�๗ธz�์ั(ภ,L‡kฆX'้–ทAŒ้‰Y�=ธD/&ะž3ฝ๓ปœผJ7m๏ัpoftg฿'\!฿~‘๎�œ‡+Ÿฆ9{;/�1�ร๎ฃ_ภ%ืฐ]C>บ@6�ฆmoผปOš%lonฒ:~‰ืพ๓๙ฝ๏ผฬqนอ…'พˆsK�ู[TซBฆ<��7X๙‚ถญ‘สบBIh๊–๑hB%hป“!วณe่2—ก๙ฉ(|UฎHึฦ()AEงงวYสลํ5{?A)ลู๙)išแไษป๗๎q๋ึm๎ํ๏3=;!SŠT+ถ—ท6นบฝมใwุะ2%[ฏX๔†ฅ…iูฒฐžฃUรขn(ฒ˜"าไ๙ญJซภฑ่Mธ8œึย‡>loXฌ*ฺ>€„สr‰V‚,อะQ„้[z็Yิ^@฿Uุ>ภจฌŒˆ๓œช๋‰…GkEŒ?$‰ „2ๅ,ฮ9"�Ež3nE�Y�ฝ{Ÿ�ว็,หžฑi้g30†พZ‘ฌ•.aBf$ucYKQŒcข$%ษวศq\=B ‰ท†้|†า)ย,PยP6p|ถภZAU5tuMoึฌัศk฿J’DHฮ…t>$2ุB:ใPฮ๑ฉGn๐นO}‚>๖i^|๑“์\˜วฏ฿`gs‡็žy†_�ยW๘อฏƒ฿๚ย็๙์…๊ถล ะ*@ฤฌณก=ญ]ฃw]‚๕.|o�:ื๔†z5Eด5‹ใc๚พ#Qž๊่nX๛7ัqฤฦpภูrม+๏ฝวq็‘I‚๋๚€จ๖ปชยลAHิบ'cูugฦข>zๅยท๒ด@ น6บh†ƒแ“ํKศ8aดฑ‡๏ฒbBตZ๗าŠภว‡h8ฺคฎ—จ$'หxพœsม|d<๗ฬš†“ฒๆฐlฉVSžป0ข๏=พ๏P�@9'nเใ‚�รฑž๙ษ)ฆwX๋้�ะ mzKSwH!”ฦv.˜Jโ€ฮ‚5ŽถlhŽ9��p๐ฃโLDe‹ฃ}o�ว1 ํๅู9™๎จช)w�ฝ]ใไค!k๏3ฺH‘D๘ฆ#uS�๙–๛๏C’!ฬŽะJ สซำ3ƒํงิ๊"O�ย_c๙๊�ผ๙ฟ�!‹NP:!)6จฺ๛โ'4‚žtฃอbฮrvŽ—‚\ z์qœ‡:Rะ5hำa;‹ํ,I6dv็ฃ…วดกํ--†awฏ#œP”ว็$ล�ฌh|Bu2วYhห’พ๗ศ(ฃ=?b*4u/œb5gธนE1ฅi6 Šc’(fผณ‡^n�w ฆ๋ˆคdดฝƒร ORŒ>t|KฅiŒCxKชY–3=?งฉ–4U…ำPHQWhPญ–H%Yอฯ‰d ยI๏ฉ๚sฤ•|�“ฟL–Eฬ›žษฦ้Ÿ™พค ]๕๋ฝถ`�@&7๕๕ืœฺvศ?๛%43ณ๖Oิี ฅ<ซฒคฎ+า(ๆ��›ะอจ๎�€�'‘ฝK7ˆ#KขClP ภตD4ฤขฤ7็ศx]LPฃ‡ ฿ƒพ=BDรpฏญิโA ษƒœ[๓รฟ^ฌ๛เ’ข@่€8ฦ9DบซŽ0�คGง4ซ)…v(OD<~‚ญ‹OCฝฯแปฟ†ษฏRฟฯbพ M่ฯ฿ลt=๙๎ว‰“„๖๔-า‡ด�๙ั?ฅ4;<๒ูฟษlๅYญZ.^บF”ฌ ^}็€A๓๐•mๆวo๓Ÿ���‡o�ไ-ฺ๔qถฏF๏ยกฎc๚บ$ฯื‘บไโฮ.ู`Dู4,ื�Zˆ„Aช qKeื!ฌ ž@{ปnฎ“?-<ฎoQลGhอ0MศuฬfšƒsœV‡''ิeEj}ีbปŽ๒�Œd8แ‘D:ย9Gฌ5๚Aฬ™€`�๗X/pQถBkฅ fyH z/Xฎิฝไ่๔k,q’ขTh"๓k.ƒ’2œ_.ธิ๋B�ิGk }oi๛Žก<9๒์…พ๘๔S|ๆฉง๙KŸ๛_๙่Gy๑ก๋\ฤ�Qฏ‰œj�\่X ึ{๊ฆฅช<ะดฬ�‚Hว!…ะVะื˜ู)ท�g<โVSช๙œ8Iุพrƒ|ณ=สู?Ÿ๑ฝ7�bี{Lcpฝกว“+…t+C•ชŒ5F+zพiก7๔Zขพ๐ไฃ฿’ัkชภ7o๊เ�๓Ž(gฅwฤIx“ซ4ลูƒ o;<ž(าท-}฿โdดฮซตdƒ!^8ผ’คƒ‚NJmEู5,ZC1ฐ\-๙๊sqๅา.ีrฮhsฉ๚ีŒ๖๔W—ุf…5–ฎc<*IQiฮ๔]‡๑`Hœ็ดMGU–ก—;Nƒ„q๋}_y…“๏�'ฆฏ|—›?}‰ฆvœ.‹Qœโ•ฦ V0?;กj{N็H=dถlช[;#V]ยษ�ึ\ื0;<ฃํMี3?ผG{พ_q๚๖,*มููœ– {/|…้O_็๐งoะUc:ำ‰ˆพ‘จค‘al‡v%C2ฑ8[ะ5 LวkHฒˆUืSL6ImKล”ฝdV๕Xฏ้ภจีT่H“Ž6ฅ1>ข"…ฉ–ศbBuธOcP)q‘f�D4 ™žฐhjฺ$#O3ฌ๋Q:&m€Šh๋JKสชAi…Tš้๔œzqฮฐ ึเ›z9ลJ…Cฒ8=`ผฑ…’พtMSrvx-%๙h!9ŠcLUขฌฅMJR–K๚ถ�{{ ขงํ)7ž๛4๖žเ{฿�g\ผ๚{—ฏf}x9Y<8˜ลฯๅp@ฏ#en�Hถพต?˜j�š4่ญ ท๋ถฃ๏{Veหมั!๕๊„ฒ๊0ฆ#๋๎ข‹=n<๓ด์ษRI$ JITกuŒ_�$*&ฤ“Gภ-PูDvLฝ�๚TภPฎ:๘๕ฤไผˆ๕ื๖%‚๏ ƒธCศ€ŠBA4ยW‡ฝฎn”ก,ฮ๏’ฏฐ:๙*�bธ๕‹{฿ง> tฦึ#ฟJ;�€ำ[ฏ3y๘3,�ภKฑ๓ูๆ“๘๎[0�y†ท_๙.๏ผ๙>๕�+8žฎธt้:Y1เ์๐ฏ0eฒ1โ‘๋)็w๙แท��้;?ข—Qั6งว‡๔ี ๋bJฑลti˜žŸฑšำี+Žนw็6ๅlฦัษ ‡wo๓�อx๕ๅ๓๚kor๛๎m๎��€๗�y‡[๏ภ�;ทธ๗g็งLฯงœžž2=;a>_Pถ†ฆmฉ๋–ฆ๋ษcPณณ3Lน`UUTU…v†Gw7HG&=ƒbภ0หHข„ํญ]4ž�ณsNqๅ๑ง๘น/}•O๔Eปq {; ‹Œั ใื^โw๏฿rz>cV…ไล•ญ-šr 6<[“,#"๒4ecsวD�ั›ะุ'ขF€T$EAžฅ4uI–็Œฌ'๏(ห๑2Byƒ7=ๅjAž&(%iŒฃ3–X \ื ด&Ž4รHE m๏JR(A&\˜lฝลฉ™fŒโŒอมcวซš['g์ฑ8=e~xL{6ลV%ึ๖๋าญ‚yธ๋บะ]$Ž3Fรœ|<"$Dƒmผศ‰ดgผฑK”Œฦธ~Ž๔–า(<1ฮ†Šอ4h›.@ zC]ทLืญฅu!ฐ.$Gผ ?ปึBื:gฑ.P>C<ิP55HY�™ึ ็} “zB7น๗zKชึา๖=ฝwดkฤ๗ชชัJ"ปอjมแํ�ม7c{NNฮจๆgl?๒ ืnZฃ“Œ้้>y1@FŠ�MŠัˆฒkษŠPvาšžชm‰tฤ�ฦใAฮ�ำฺž�2œŒษ778ฟByพ ุุ$L๏�ใ๐ๅWฉ๏ัŸขบ ฑ<วฯฉ๗oาŸaงG,>x๊เ>ซ{ทi๖oำ�zŸฃ~๙Oพร้+/q๘ฃ๏ ซ3ฺUษlู1-kN—I–“gI Šyม�ไ˜ฒชhš>”IDšaษbnX�'ัะwŽ้แซ™ม๕pv๋ฃฬ’ๆ”้ฉ็Qž2พ�;ืžงะ)็7orv๏กF˜Dณจ,‹Pั•lŽฎ]!โญrฺฆ m็˜-ฯ)†)uYcญeธฝำ1�้"l๎าตฉPI†2ฺ�ใสCื่ŒCI฿•Lvvถฃ3ว ’ึxše‰W๓ำ#\฿sฟ้ั๙้ 2M)๋S-™ŸŸ3;=$ห๋ƒฦฒ<; ŽR&›;a…ฅmjาbH_ีฤqN’dˆ$\๔บ&‰Sา|ภฦ๖’,0�…R4ๅ’ศ;6ทถฐ(ชๅ‚8อษŠ!R*KใTฤawฦ๕๋Oฒ˜Q-n๓๙ฏ�&Iด–ื‘*แรฉ็�ฺ�๖แ.�มะ๚�Z\๒฿!gอ˜ฐmk่aYYl_ฒ˜r๏xฮพ9กศ‡[dEN ถ>FH๏KtwHผ๕Bฆˆ๖1x8|]พร; ัก‚‡XCgฒฌUฑฮxฏง๒ต”.&B"่A&แ—๗˜๙ุฎ$š<ข*+&YฬSW/‹>LณR2ษs’ตฟb9Ÿ๑๎ู9ืๅ~้|ๆŸโา�.๙ 'ฮrŠแปทo๒��˜๛ฤูฌ"ษ šชๆเไ”อษ˜ฝัo =:46jลhิ-ืq’่m‡ทญYšcญกญKpฅVMK]—Tๅ’až‡g‰ตDฅำบกo;ค„Xkค€eำ ค&žDIzกˆฑ(l่—*Pใค'มฃฝ%ยัIE๋ ŽA>Bจ˜8 E.GตแdถขบŸๆ๐ูฝ{t็็xQ’ขใ ฅcdiึ1I^ ใK&›ธ(AhM’d 9Q2ภ™%Jxฌศ)ƒต=ซU’8ข3.คCxึจJOlXx'pŒsFู่=๘k{šฮP•-ฝq,W-ึ†ยšฆํ้zรขฌฉ›ก์zค๒ฬซ‹ ^กๅ฿,ฉฮ9?ุง-W๔ฦ"dDkO|�‹\��ฅˆ#ข8ๅตw�ๆๅ[w้าพ๏CF<Š(ค EUZ bMgzคV8ฅI€XIL’ >๑ุc฿ฒu‰P’r~‚D า‚ม`D…สJgY1$าšอ๑fฐฺ+…Ž5Ri๚บd๛โ6/\ KฃS้M่ถ6–ฃู‚(Šูž ™ rŠ<็xQ๒ส๛ท๙๘ล >�ฤ "ฑ��>QQp๙ษว0ฦqtsŸๅม ด“qศ#วาB5g�ฮ�T๗๎า�กป—๎�=ๆoฝ†;พOp—ูปoBฝคซ๊ฐ๓‹cd”Q๕p^5ฬDDgz”pX'ฉ[รฒทศ(#‰#š�เtสช๊8;8`+ณŒ9ว‡ ��เ„ใฃฎiูปดอณฟ๖7y่๋�%>�56Ÿ�{O?วลg>ยๅ็?๓9‹ƒCฺUรโ่Œiฝยฎ8Wณ๒%ฑ0|๒“3_Uœ/-ใ๑ˆิt"๑ถ#฿ฺ@ถฎ\Rี5Ryl\ ›‘คค“ ๚ฎGyˆ„ “rWณ1‚ัล-lg@ฦด๓"ฮˆ๋3D‘#ดย;CณชนyoFฝฌYฬgื“&ำhศd{—Xว,ๆgฌ๊ถฉษโ˜ขฌ‰F–|P„�ฟปปbผ‰Nย'ID“จ@™RR‘คJ+Tก"ล๒๔(ศjฦ`ฌล%M]!ฅยK๓žถฉQtฑšŸacGูๆ�ป๓ ฯ|๒๋<๓�'รf}8ChXซb=น†๒Z>_›ีa’J: ฎ7t}OUต,ห๏ U�ฐYtœMงฤqฮVฒคซkNoฝอ�ฃŸ$ฯRโ$ข/ [โ=๔็o’ค ้๎Gqํ‰E่4€X’2Jร�ฃšŒึ€–๕๐-xy0…�…�๗ƒK‰€$Bล˜ลMฐ†h๓yšำืจ3tqG ฮ`V๗^๘4๓“7ฐๅMสชงž}€‘,ฮ�ฦuS[ืQhdถM>�ฃุzŒHkšี9ีโ+2ฆณ[<๛‘ฯขtมู้{์์>‰p5?๚ัŸโขK<�ศNOฯ๘ฝ๓๗yๅ‡฿ร6RRพ&ต=CeูN#Fาฒ[ค์ๆ W&ถา„ฝัˆญอM.]นŠํมว?๖q{�1>��‹\ุ�fkcƒ(‡IQd8โGUนbPdx๕ชฆ๏ZT“ลฃ๑„อM08?9`”ฅ<y‡๋“œTJข8a(ึ Riฮฮywถโ‹_�_๛า—ธtq—,ฯJ’ๆ9Ež๑��o๑�ษ?โฝป‡lnL่ฅ^ญุ�ฺกkฮฆSปt‰4หยดุีธฎฦ๔-:ฮq�bบ.4๔YCื7Tห๙:งl๑^โฃ”$หฉห%ฮx฿�+I‘ฉ9K๚ฎฃˆcŠ๖Ÿ��‡'�ส�ŽษŸ@ฦa"•qŒ_@›๔ห%ซ๓ว/ฟย�+oฐj$M๏ฉ๛ำืˆศำKฯrบเ๖ํc๖.^เโvมู๙)8‹ŒSt>ก_• ๑hŒl๒$F๔ ๙ึฆk‘qF$ร^่โร‘&’fy‚ึŠู�{ศtศ๔๔ˆ^hๆห’YีฃTยดl™•-ฉฐ\ฟžฒต›q๋๖Œญ๑ˆ่โC๘ด7ืjEšคไyCกKฑฑba}วr~ŽN3ŠแcpBั•s๊ีc:ฺฆc>;C็ฆ๏hห%QœQUซะ E(ฑIา„ฮzœ๗”ี‚ช ˆ[็ ฃั-%็ห• XุˆE]๒๓฿�[์^ฺ‡๐zฟคๅŸฉฯฬ/až๕AnvกKศฐoR†ฉุ9\g้๚เtฎšžชl˜ฯๆhูQฏฮ(›Ž�ษˆถ>e~p›|ฒวรฯ}"OยฟซŸC{ฆ%แHG—ภี!๗ญ"D<†h*านNB฿7มถžผฝskืํz็ํ�ฯฆo๑ 2fย�[ฦ๘ๆ ืญลc4ณ›”๓#๚่Yd‰Šmฬโ&ยY๔เ"G๏}›(ฒ:y‰U—ำ‹”๊ไu๊ส ำœอห B"Eช$L%‹ปDษ„ใƒ›,WSyโ๓,ห9ว๗_ag็)^�๓อiฉxๆษ๒สห/๑ป�๒�ออWฟฯๅโไb“ ว††อDฑ1ศุLcFqDb[ ญุั}หvชน~๙Uฬ\ฯ=�$7ฎ]%O#V‹MS’%)M�prr@UึtuK฿uLง'$:%ฮา0•9GYืtMEว &�lnls|๏6ฯ๏ ธ6.QR2. ฒ4e0“ฤŸัNv๘Kฟ�M>๕๑"eh‚“k‚Xวผ�สK�“๑ฯนrN‘งฤqฦว>�i๊ถ[››�฿?ไ๊�ฉด,งงไiา 6ฤh•HI1ข๋Z”N(†tš‘วกNX'I0พumศB{๒า:อ6๐ุuDk(P�VAาถ=]�ะ™uฃM฿Pีตt�ฺ—VDB‚ทHลแตNดd˜ฤ�ฃ\O$}หร8ŽศขP#ƒŽณฃc๎ฟ๛ท^{•^{•ู�>ฆ,ฑฦ"ต& ษ’ ก$q’ลŠ4Mค‚ญm&ฃ ฒด0ไyšำะ@้ฝE Aoยฺlนฌภ{z๋0ึำw–ถํฉช0IืmOำ๖(ฮ…r“บ้QJ†ยับฺT ้zร|Y“&1ƒ<ฆตGิก2k๓๑๚‚—่„ี�/ยa[wษๆž�ิ—ู��!่•โ�bฮท๐NjG""%ระ,C๔oีดคILœhฺ�ว1:NHโˆ4ŠHิŸz๔[qœแ]O’ฆ8/i–sคP“-,ž๓ใ}œ๓จ4่Sำำ4Mุย I๏ๅ|Iน*Y.็ิณสรฐฑ•ฅ\ูกtฤ[ท๏qบ(™7-™–��๕=ฎ๏m๓�7น�์3|ไซฟภํ?� ๛?� {„_๛ไ`ศpœcUฬ๒๖}Rฅ!8x๏&eYแญงฏkŽNฮ8Ÿ/h›šฮูฬษˆใU‹๋[ฺบeYwฬ�ข˜DJฒHง)ษY�เ„d”ฦฬซš8ฆ -z๚�s8ณ�>+นw�„O}�ฃ�๒�แ๏๑ฬฏ�m6{D„ํZ๐6์qร;‹Š๕แ�ณB฿4๔FptzŽSวlc6'c๖ฯgdYJ.zฌiˆ“˜4ฮู��fธs‰้แ ๙ฮย๖ิ}‡ฦ“ๅ9บE1ชoBถ `#$m�ั/็ฌ๖๏ †,–K๐ž"ฯC›Yœาyม๔|J]ึข5†“ƒC‹9:JจซŽ(‰:&MBฬ ู`ƒtธ&S ณใv#ุู��ฃHS"ฑ9#p�่›ดร1ฟ�+ฟฦ#=Dื…a&ƒ๓]+ลwพ๛'�‹��์kลpดมง?๓y~๎ำŸdฒนล;๏ผE‘งฌ๊m[ฎon„jYo)F#”8mS2��!M˜อ็ ‡cฒผ ีม]e8GS—กขIวA[R ใณฒ o Gšฮy๊บd˜&ศu6^ชเ�ถ„6I-5y‡็ˆตไล€"VุพG O‚C ‡[7FŠ`z์<ิฮำ4’๐๗…ฦ๊”4+pl๏9;8โญŸ�„ปoผA{~‚ด–|8D&ฦAo�š:็qฆกศRฒ4ฅm;ฌWx$‹UE฿u8�๗ึ…‰ZkI�˜ˆ๒มภ'„ \UX๏qNEฯชl(›žH้ตs=ฆt]XGึuฮั๛`|M“ะzฉ”โdน`ั4ุถ q:Bแฑ@น\ 0ฤIฦฦ๎%n<๛Iฎ�x/,:‰™Œฦผ�๎[�มK?Ef็!‰HŠ$๐Œc%\H ไ ต3ค^`#ŽiฌIt„๚ส3O|ซ๏{bS•+๒$ฆw/%M5'าๅ๒k{�:Z+„ยถ5*Šษ‹ƒlD’ฤHญh›–HวT‹)�AY5œ.V�Ÿฮ1ฮSƒ๑๐�ฮˆG62”<๔ย‹\๒���฿#ื๐ฬฏ�U6†ฃ—ย๙{opผ‚9›SlNx็เ”ท��U๚บfฐตžuIDk-Q˜วึ:ฌT�9>#๖NHฺ><ิญP8)&1^GมีG0 Iภ�ใLำXCY7ม์ถjน2egœ๓ซ�อรg�ซ�žโ๊ำก๐ฤ๔ก๚Ni๋=ซ๗`;|]!๐ิำ3สำ9ํชgูถdZ3N<๚�ณฬNŽˆmฯต‚� ๎œาิ;ฏ`IXฮะน&ํ์”d4ฉนpa—cถl๎]ไ�๎๛ศ4วึ%ถ7ดM…k—<๚‘‹ไ›Cฆg[‰XญBฅj{f็็ |ษbี๑ำ�d>ซูุูa’Eœฯq็่gXR*Eมhฒข6ึฐšOŸฝ\€R$qยโ์˜XJโฌ@g9ฎ๏ภ;ฎ�x„8ฯh๋๊C„d๒ ำ=Nฑ�!tuETŒI‹"จซีแZLืัL_Ggy๔iถมํW�j�0ลๆ#ธี่jF&’5xˆHkรMdด‰๏ง˜ฆ$\`บไ‘'~Žz~‹W��๗นzๅi๎|๐#๚่!๎�z•w~�;์yมรใ‡ะึQไ)ถ๋ะJไ][ใ{รh< ๎ไ๕ลสูžX€Gœๅte Z๓มม/ผ๐"?�u]ำ™žฆ*988f1›SืซUvฉiLงx!่;ƒu! อƒI*อR๒,!K4ำ“.r.ํ๎ข•ฤฌ/ๅm฿๑'ฏพษ่สร�๚ฏ�:ป;›ไ๙€ถ๋I’)า,ใํw�ไ�“สtนB' ู`ฬ‹/~Œ ;$iDค$ฏพ๚ ^HฺUลV‘rmcLš็ไล…gUึA6•"ธฉฝ okP7m(ช๊j…5=}ำgE–qพ˜aL‡ึIx^;pk ‘p(ฅI”@ OZ Hใ8ิฟ*ฝ†๘Y†YJค4ฝ1ซrEคG`š%‡ดย๔8ก๐่๕�ูI…”AyQ ฮIม8KC5ฏh�~–่เ๐ึM^๛มน๛ๆ๋ฌฮN๑R"U„`ฅFส0m:oQ๋ŠU็q84mkกู‡ฒn„(จT๏ฑRhฅq@–ล่Hณ\ฌ๐�“f BJฒ4 k.ch›�รZำ@ป €€ชทloŽศอผํˆ”kฉร๋ฤ ทm์ฑตs™ซ>OฒฑCKฦƒ‚$ŽYฌ�๖๏�6ฏŸฏศณ1‘ˆ4มW-N Œ๘>@~Œ�๒ย ฌธฎ_ซ�๕‰7พ•ๆ9’UQFคI’“$ข$กmปP%š$๔ึn-ฉdฤbMeZ‚ด2mสpŽสŠ๓บaฺ4TฝฅlZRฅธž ถฒtDว,>x›K?ส๕Ÿ๛2๓ใ๎�๑๏๐มopr�”ยติJ๒“W�แ�oกŒถ60HฺฆกญZTšั•5‘R”ึำtกeฦyPZฑฌ#ฯb้Y่œCzณฮ๖JคŒุศ5งUหฒjpึSทZJพ๖อฏ๐�๓หๅฯ~3˜บz-^Kœแ1Š๗aท"œe๙�ป~๗?3ปw—�๖\�โ‘ง ถv8ั1==ค/ฎ๎๎ฐฌknฮ๐8ŠMŽfKNŽY-ฎ็�๔] *tฅ8กu’z~JeaXไ$y†่*&{—8?= ฒ+๛�3T๓šj�ะ™–Eอฺฐ็ˆสc๚ฎb#u ตใษงฏ๑ั�ํ฿c๖ฮปtUI_Œ(EB_•ฤIยx{‡ัdแ *Žษ‡clg)FCŠA˜ฮ๏"U:%ฮม˜†ภดIžำ”‹€รu ึ2žี)q’ฒ*—ดMG็Eจ€ญk‚ถmhš†A1Dx‡4-R*šบeQฮ9˜๓ไ'ฟส—พ๐ ดZO�"ภ‚LZ!3 u8๔pกไA<(�Xkํ~mn1ŽพํhฺPฤR7†ƒ“qฏ5-Q”rv็‡<๒์Wˆ๓m’Dขต@I�9พ›’l>‚๊Ž‘ํ12 u‚สvP้^hd< ;ฦ๕.^ฌ%|�Zโ _T˜4ซy–๖ม๏ถŽห ผ b๚ๅธvJบ๛ILsD�,B ๔หใW){I–ฤะNน็uœJ_๙$ฎ+1'ฮ๐๒ว‘พ').0ฺ}šHโt#ฤ:ห}t4ฆ4‚Y%xๆ‰'๙ณ๏� œQ ?~๙Nฆผ๚m6ฺŒ‘ฯY.๔mK)�คyFณ˜‡Lrž3�ุยู`ฤ โ8ม๙žj9วt-q^0y๋ฮ=žyๆvwทY–%ซrษ๑ู”ถ3ฬ— า8];‰#–ณmSฏื"a2’Q‚q „'Š"Šbˆํ๎ผ๗†�ร์ ท๙ฃW฿ไ๚ฯ๓[๛รึๆ&e�ฦ“ ๊ฆ!K3Ž๘ง��Ÿsพ\1n0�บภง?๑I}่ฦZ&“ oพ๖*oผ๕:ฑาิuร—.ฒ•E˜ฎ EJJัY‹ํ{L฿ำC�6๏่š:Dฒ’ iCV4ึ=x‹ฎงํpั๏๏0Zฃaีบ�‡™พึ1Oa�)ํ๊ ด=ฉข^`๊CFWฟภ๒�๗ศ6nะ-oQl๗Q~ํฏ�:Z"Zฮ>ž$Ž8;9แ_�๖�สKฏผN�๗์ํ]ไษงŸๅฦี ๔}0ขฝ�ึ[|็;ยl:ฅi*Šx๎๒ฃ4ขk๊ฯmลณ๊ญ —‹|H฿[บพ‘ฤ1ฑ ฯ่แh‚แŠฺ๗=�ญ+8•ฤx์CI$„คnช๏งmo่=”UMช#ฌํPR“g)†p๘ซ8&‰#|฿1L6ณ„H8b…คํ:ย ชšฃ(Bซ'C‹กsž๑ึ6yšsv>ใ๐ฮ]๎พ�:w_{•nqNVŒH†ฃ๐ใ` เฤŠ$ŽภรผฌฑดŠBใ˜u˜pK …/๋��J ฺฮRตIœ`ฌใ|บคwPU-uื‘f :า(!YT-R‡> ‡@F*Lฤ�ำu-]฿†KMkดาtF ฃ˜ถw$q„๓Žบ๏ฑRe๗gS�แ?�gผoใอ="แQ�“Akcฑ2!‘YŒะ ฅ%ฎ๎๐RญˆตB}์ฑ‡ฟต:;ฆ/็Xคเถ^ัT ผŠhซ’ษhLื6ฌ–s’$ก๋ ำ๓œ…แhยึdฬๆ0ฐๆห%ฦุะำ์C[qŽ( N`i ฯM"ผ,›ŽD ฃ1๛‡Gผ๗ฃ๏ณ<9"Mcv.nRฯํปวH๏‰”$อS†ร‚y�p|พ`#ีDEสqูฃ•คS1uดM‘ๆฌniบ€แ3.fฝงwมธ$Dุฅ4ฦณชnฒ,+&iฬำ?ฬW�๚฿เ็�๎�…ญ'ž ๒u๊ๆรU*ข?�ขิบฃู{คŠ‘:!ปp™dฒล์๕ื(OO8~๕5๊๙92Š9]•$:ย8หb>EHมร?ฦฒr๘๒Œ ษxฒ)—lํํ0L๖.p๙‰g9~๓%ฒฝKุถมธตษ$ษhึ฿๛r>ƒvล K0MMWUh)ฆงšžƒํ˜-VœถL†›ฬVœŸ–ศbSWธฎes ™zลฉ๑Ž1ŒcฮŽˆฒ‚ฎญุ๗อ`ฮŠ2yNU•จฌ ึ_—ุฎก๏:g‡ิm‡าฎ๋p}ร0/๐Rขำœ|8F A”�#%mื ehdŠTDœๆคi‚Bา๔}ภ•KAี—ธX๒ฅO|Šอ๋7~vธ๙u๐ำญYโ๋W8ศืฒ๚บ �ม๎+˜ย@H5DxA(Spฮsrถภู%ส[๖OศณีแหH•SไŠLอ 6ฎ&.ถQพย�‰ข4Uˆ๑]ˆฦˆdๅมUL˜ฝ ฮำ๐&ำA฿W๋)\๐กดAลd Z<�์]<‚t๛)่–ธvŽ#ฆ<� ชธH?{๑•O€ซ่ช%า/�Gd—ˆฐอŠzv—t๗I่ฮ™์<…๓ำœณXœP/๗ฑอ9U?ไdๆITฬ�›ฬั์+๚๘„+DŒ'อl\พJ’$ˆพ!+†ไร}]‘ŒทH‡า$&pm‹”�wธฎ!ค(@:ถ ฯ’ท๖ศ๒‚G}็<๗hป–{๛w˜/ๆTM0ฏ ฦ#ดิHญรE;Љ"๋-qฑ3โะ6LOธบนมีœœ๒ร›๗๙ุG?สฏ�ๅฟย`Hอqˆe‘tฝกํรk๎ป–ใณEXAญkŒŒ ฑณ8Rt}8ฒ4ขHC]gท.4J็้๚๓๔ฌช&ไภA —Š"N‰ขP๕*„fPD‘F๋ˆขHั*xฎพ�ร๏๑�๔๛จฝห์%)‘} :f]‡่ ^Iz)Iœรจ”$มิ€•‚pm๚ฬฃ}+ำ็-qœใmึแ› ‰้kฒb‚ตคยXCนZฑฝw>� >๖ฉOฐ9าด-ใมฅง๓)Zช๐ะ[cํ–uKm,ๆ‚Bมส8$กง๓%eSฏๅAI1ศู?8็๘tสข้ešQฑชNฮƒ ธ9ฮจ[Co=•u”mvƒ,โ~ูQ5็๓>ฤ.ฐ๒ก;ื9K็=’๙|I�”์\ผศg๙—๙๕ฟ๑›|ๅ7~ƒO�ีฟม๕ฯ�(i๊๕ดžกุ๖ชR้ ฅหฉ2ศ›BHpูWtห}๏X1?=cีvHแัBาด=Y‚ˆฆRt�Œพ2’�ด$ู%ค“-H‡~๐.ณ้ mชึ`œG')�ใMกอษ“aŠŠฮOฯ‘Jฃโ‚ั๕k\�่วฉ๗๏ก‡lnnฒฝฝอj9C ม•g>ยrYาฬgฑdๅL{z�](ศาฌใ์๐๋=I’PŒทัY†ํ{r%}O:3�ุbใโU”ิtMzฐฅ 4ทั*อIรp‹๏z,/ ๋๛๏ำšม`@iTำถ๕ฺ5๊qBำv-'ำ{\z๔iพ๚อฟJ\ไแวr}@CศwMz n‘!ฃ๕!ž%แBถ–ฎ o๏0ฒ=˜ผื�๛@U๐keAQxฮโชSTบ‰Š‡xSQอn!๓+ฬ^กY mƒ\E Fฌ�`บ„j5cy~@ฒ}ฉ บำW๑2cฐ๗y:ภ‰๛oฐฝ๓0›;Oq{ลษ๑7{‡“[฿'fE~~ฮฎุ`kk‡dผ‰Š5ฃ๑ˆnต`ต˜งy(J“ม dบšฆ\าตอjIทnฃำIŽใ ้`@œฆkp^๐�๑”|P๐ิOa็๎�;œB›ํัQ‚๋ZŒq4MMต\ ข(N7่MOže,ƒ<%อRf'G\�>8ไฅ�S>๓๙/๒™/~‘$ฯัR!ค&OVeษp0โ์์”๙ฟ�ฯ�่ฅื้A๘ะdˆิœœžp๋๖œŸp|xŸฆช‘xคN#>๕ะeถ3Mg ๙d‚sŽๅrp†ฎiHฒ‚ฎkƒL+ ๋:L฿‡œท˜พรz‰๓†rต@85๋.…ฝฟคyฑV M�‡U็ๆhฅย9ข(B*ณกD)…ดLCฌ5Eไ๎บ74„ vV5Tmึš$Nˆ%DRก„ง7ŽQž1ฮsœ๋รn]„xไf‰ ณ’ˆญAJŒ<คiธฤ4ฝcs8"lเeย๙ู)๏�๔‡œ�zSVไใ1จ˜ึ๔›%เC‹ Zฟ^๋,Y–1H`:_กต$าŠ�:ดึศ๕3ธmZEFขึา4ๆ|YัC–ฆ่8ฦCืV}วฌjศาœ$Md9“Aศ๏ƒD้€:nPB0สฦฃwŽ๙�ฃ�/ณฆggธ…ถb`๊–ึX>ŽQJQ๔ก‰Qค1"ศ็^ขD`Rฉฏ๎}k<™` o™l] z~œ T„“ญ#๚ถAหˆ'ž}š_๛ญ฿โกGฆะ‘deรaฃKมp๖๊ มขiYถน–<6ษ่ฝว9OkŒ๓ดฝลต๑œฏj‹ ฌjžพถA1๒๚อ#ชUอdX'1gห’,R๔&ฉๆ๒$ๅtQq{ZrVwิึัฎ�a"ั ลฌl‚1ฤ:ชU‰๖ /|์#�๒๑›�ฺ��๏๒โ7�2{?Iถน…ˆ๕'ค� r่šุฅTh6ƒ`ถ๑ ฅ ฅื๔ฎ๐1ทœG�๔'์=๑(บฏ9;3LG(ghM‹ˆRฌt�‘็(<ฎฉ๑ึRW^ed๔๔eลษม>ษ…ซtณ“`จ:?Cแ˜Ÿ!pค‰โสC[llๆดฆ‡gD:ข&โแ^เฺSฯณบ}‹ฝหWน�ย‹๔ซ%ส๒แ๙ฝ;Lุ�“&Šs5เtY1ƒแ#M xำ“Ž7๑BF ถw1ฆง-—่(eฐ{1˜`’”<P/ืบ(bU–ศ8 ŠAำR–%‹้)ฦ๊rŽ %%I’ขคคnJ” ฅ:I’ขใgm˜2„ใ๎๑ž|แใ|ๆ๋ฟ ถ]nิfฒ�ฒ�Bฌk6ื7p็๐ึ�ŒสF˜ะ?$ฏ‡užฎ๋iฺŽูtI�ฎˆ•a�่œกญฮ่WGˆ(gw#aใสSXืIืฮืr\O2นา)JZิ๐*"�…xคoฅ?ฌ0}เ}เ„�๐เ๖๋๘˜ %PI8์]่ZQXชณป๔�œึฅx‘แช{(_‘ื‘ใซt‹ปิ‡๏ฃGc๏~Ÿd๏)๖ฎ>ŽŠี�O_�8“ฝ'' ‡8"Tย๔ไM&q2K๘ฮŸ|‡ๅอ๏Q๏�9‘i๕ไBำw ลdค�uง„ฆ>$๙�5คYNื›เZ–๋ B' ทvะJโฅค˜Lh๋e˜’’Œค๐�ษ9ƒัO?๓ e]ฒฌjฮฮฯ0k|ฒภ…”Œ‡�Z๚พ'R ‡ อ2โ,ว;G‘ฆAšŒb๚rษ๙้!็ำsN;วW๑W๘ุง?žU�r2…† ฮbำ๗��๗;|็?ภ{ฯhs“,ฎC Žถ.iป็Bh��T�Wฐfูyฆ‰=หlฟwl๚,“…๒(x€$4 บ๎i4ง›ญnติNjลtH R่Šะ•บM( ลดb&=ํ†lบ6$› ยeณชฒา๗�ํ—ัลฺ'Aๅ(sp๒์�ฏo}฿๗พฯk‡'bฆ‹#n์ฯน–+R้Cฐœs }Oำ๕DJ a,�๕}็pž2K˜๒cX!ฺ†4หIำ<ไyฦdq€RGG �าฑ9kI"Š#ึซ pCกv=BลT}Tš,ษcM"BŒฏาšY^เญมใ‰•$Ž4ฮt”Q่U“gษHห‰ค'๒–๕ถ ืJ“d!vำ{‡zp–ฝIDRu-~hP�“็Sโ$ม[‹—1‹ู, ›ร“�็ƒท฿bZNษฆ3บพC ฯคฬ> ๊šถง๋:†~`�ดศ("ัฮ:ผPHแqn nƒญฬ{P8ส2งj{A�–งAP็<่8Lฦ”TคILขC M2ขฅ•w๐Jำ๔B†uZšฆ87๐๐ป�้Ÿ}›oน–`ฆ๋0ร@5ฎdค‰”"A(QY G))@}�๊•ฏeq„1‘Šyอw!๋๓'tC|เ}š˜,ใ…ื^ฅœถŽ"&\}๎9ฎ\ฟFDh๑ณ"gฝ�a%Ošม๘BKฐแืZˆฃˆ�บp0 ‰T’$’ผteŠpŽ?็1๋ฆ็สฌฤ)ล�G็D6ฦQu=yฌy๏ขๆeหr๐ฤใศLxO4&าl๛ž‰Š8ˆฯ^�ใ็พ๒E~ํฟ๘_๐ฅฟ�Oธ๖ฦ็!ษ0M้:ไ8V๕ฮ"ฅ ะ๏Bเ‹"!B๔i'ฎฃpศบPผรฟใ๑ึขณŒล•ิ๎ �์zวPmqx&yA� x้ฐQยvน"ีŠ ‡นเ”ƒa`ุ,)o฿ๆล/� Gทผ๘…—hึ ฮ h๏x๖ฮห่yยต]Ey‹J3>๚แ{ณ9๑tฮใ๏vt:ัTggˆฎ ึ�ฃ…g>-‚�฿;>j=ฝˆศ’„8N้†žถkมY†ฆยtปjK3 ˜ถม Vj:g๑f็๏q๖๐้d ๕–]Sัต-‘T๋svี64Hข(| B—ัแ„F@!คcก฿œbไiฅเฯ�4/}ๆ๓ม"6*ูฝัจก<�d‚โ=�ุฐ๚CJ]๏�H\ Ž„ > $&c›ช!RŽฆฉู์ย�ฟ�žแป Edyๆล/px�ด๗˜ก!ŠTPค๋˜lvx�<ฎyˆL๖ =•‚้€›พ‘Pฌ/ƒ ย๗6Nt์่[sฉ“ฑฐ๖ปQ†Pž๖๔Mฌ˜ั5งD๙5ขHQ=�ลไ้๑Heh/ฮฑึ‘ๅา0น๙9ข8ล:EwqไเYD|@[ั›ˆ๙�5–pr๏ั๊:_�ณQ}ศ๓‹ iซiN2Q ณ$Ÿ8ฅ i6a}qNThPNKภำ5 Y‘!‘์‘ฅ)E9A hช๋ฮ๔์..ศ& ์V0i–๒ๆฝ๛%y้ล—่๚žjทa0>ฤ‚=mฝeป�ฟo]aฬ@štMƒŒbคะ๔ร@’&ฤiA^–,"มร๗ุZมWฟ๚ท๘ิg?รrต ถ3%hปฐหRฑ7›๒[ฟ๓›�ัŸ�้X�:n๏!๑2bฝ�E๋0:ppt“+“‚gKอตIธŒ6]ห0ฆnER% e9 กCุ็ฦQdI๘ูtกภ J2’(ม.#อ'ฏะึ#…ฬ%5žHBว”“q’QํVX4C฿ฃ•ย8ฑมo,„ภ‰€๎”ฮค)‡’’<ึฤQvฐ68LคDJฉะ๙ช(ยXวrปCށ 2NHใˆLวhยšศษ0Y}z~ แฒ2/s์ะcšiค(าxฆฅL&3.ึ�{๏]ขมr|xƒ~่qศgoฺ>ŒรฝฃjzšมขUฐศ)แ€4VdYF�œsมว/qฃดf[7dqDคƒ^ชยšVซฐ&Mดg•ม9?f%„Ol�๖๏ศณ„ฝฝ ฯo�‡฿เ_�ึ๏โ7๛q‚ูn้V'”fภ „ˆ]-QJฃ'1‹ง‹5VJ Dmย‚H5Rxิ—_}๕knhฉช5‘๔ฤ๙ผแไษ#ด ปŒถฎ‰’,Œฆ v|๓�€ฎiธ๖์ณฬ๗ˆ‹’โเู๑Žฎ]cทY๑ม�๗้กLzkiร๙เyX๕L๓”็o฿ค�mูฌ7จพรzAe<๗<6-?~ฒ –็อภฃMC,kหฮะt=vg�ฐ‡ฑฮ๏œ‚"น6Kธร'^†ฟ�_�ฏ๙ู๘ฟไล_๙›d7๎>;ำท(กขgƒ0L้8��"U<๎AH=RฝBไdภ]†c๕r๋EHšฬQB�๐=๚'1�์Wp็'๘ฎยูp๛’J„ฑK�1›Nˆำ‚ก”ู”พฏ˜$ฎo้�ภมํgจ�ฃ฿V �ูตNอŽ(ฮษ็šH <๘ม]6�๕ถAๅSŠ8FดUำ M‹rฎซIฃ0n๊๊อ˜&ฃ•ฆjZ��๖ๆฌ–gฤYมะh๑dฑใ๎วYบชfh*†ถฆi[๚บย;‡tŽษtAฌใภฉ๏;คD"L'TVฐฝธ๐ —ฮ&;`ปฉ„V9ฌo[o้ซ-I^อ'œ,Ÿ๐๙Ÿ๙9žy้•Q๑>Žฦ �ญ/ป๏๑y]๎พG•๗ๅt‚ฝLŒ9เR+ด–H)F“0;ฮV5ึJบมัlฯศูฐxศ๕—พหL‹๏–H K�๎•โ}ธL8Tศ’$‡B|I†rœœK๕tD?‹หโ=Žำฅาx�a.�มซ):ฮมโ|Js๚mฺ๕)ลอฟ‚ำ๊ำ‘ล$Œะๅmœ๋4ช?#;�$ีๆ„ช๎HฒIš๓เมปlŸ�ˆ‡หฟ�'ย[w๏QuŽjณ%-ฆ\๎9ภSd*Jษง3บถย!ษ๓’ฌ(้ปv�#ถ 4“�๒"ร๔A ิต ฦ L๗๖๑Ž F๊*l�็ ๏�Dญ"^{ๅUผ‡''™L&๏Xฏถ4uƒTŠ]]Qื5i6 wkD ซMส%Jฒฒ ปฺกๆ�ฃวผ๒้ŸๆO~)ซ]NOฯจ๋Š$‰9ุ�ใ�่๘ํ฿๙Vซ5RIŽg%‡iยdถ‡’aไ๋˜TEฤQฮีƒcnsP$\-cnLc’8FE }฿โ AR@VLQZ…"็HาŒX ผˆฒ ญbvอ!%ำ"vป-nิ?lชใ,Qœ=4๕–8ส๑ฮ…zZะฑŽ๑ใYyฉQx"ฅh๚n่ฌA้˜ึtmEI„ŽRผ cdโญ%}฿ั6M‘๒–พฺbl๓™Mง!่รYฒHข€4IYLŠ ด!ฑOkMš† ง้[ฺฆAiฆ86(๓�ฎ็h6็bปแ�?๘ชซน~๓Yโ$กiŒwYAำ„ะ‘้t†a’ึ๕ ้จ๘Ž8/Hฦ ‚๕แmmใ๕ร€1vคาYVy“&Q ฺ๕ฌ#ŠRเKžgYย�ด L3ฒ8ๆ๋๘ป�ฟ�ลฟยท†;๛ื™G9‘˜f%๓ษัฌ‘๕ัื$ƒ!ํ;�`0^$๋J…Uฃ๑•ฦ˜� >yใฦืR-f@ง9Yน‡mC‡ไฝ œ-0}‹ิ yV<ไ‹Tฤ้ฃ'ผ๛รฑZ/9ผ~<หhw[d๑ฑO}š๊โŒG�ฃ—’ม g1ถuหO��W๘?�?�k>๙ฅ/q๛™�ธกฃชk–ห ช�P{I๋RJ๏1Bา๖†m�sาtMCl:ฌƒ�iมณW๗ธy� ฯ^?ๆhžรvล'_พล?�ฟ�฿๘โ฿��|๒K_ไ๕_๘eฆ/�>๛Zำถฃ't_�uๅeวฆt๐•#;!žv฿—ฟ�จGณ—T…฿€PfsNvํYLU3นqƒ(+ู�๛0ฌiuD‘$แeฮsชmลsฯ฿โเสULีณ˜N‰๛วฯ฿Dฎ.IŒk[l�ฒ�ํ(&S”ต,}D~|ภซ_�้�a 3%3๒ข ึŠถํ˜ฬ&DJ 1L ฃ็ิ™ nwAฝz�t<๐1*ކ๐LŠ<\ิ&s†jC_๏ศ๒œฃ๋ฯ$}�ล)ศ0Ÿ์eYˆ]/ูํvaฬ(IšazC[WL'%mต ส`-ุ^œP๏6ไyฦ`=UUซ0Bถรภ��:’ดา3ธฟ๚ซ—้|L4bœพ €(>๊ฑpv|žฃz[ช€”5&o%pƒล9แž–‚อfร้๙#2ญ่mLฎj”�ฐwใ5ฎ�ึtHป @ํ9ยTจ�˜a�บผ‚15ฮDz๘๏ท/ƒcแพฎ‰q/dะ7 E๐๗*=�aฦ‹ˆ”tง฿ม๖‘_รด‰Š+˜nรฐ}„OŽˆ๒–LทนsŠ1–บ:กn<:.ะ:ฅ(ฉVอŸศIฏ™อ&ฌทŽ๗~๘Ÿธ๗ๆ๗9ผ�3ผ�๒วyแลW8iz�โฃGผ}บไ๑jฌ™Q`BDZโŒEMS‡)ŸŽ้‡Žอ๊‚ฝซW๑ฆchšศ1 TD|)6ณ†b: (หถร๙เe~๓�}*/๘ฬ'>มjฝโั“'$qB]ืd f0(ฅ1&่๔‡anุ ฮ[ผ๋ษŠ ฮมำu-ฏผ�qŠ28แฉšภพ.ห’๙tยทฟ๙ �ํo�6ปบaฑฤ,Kxแ๐0@a’Œ2–์W๗๗ู[pดภ$‹Q�qญˆนš…|๗บm‰’ˆX…้ž’:XผœE Xm–จ( ��n k–ƒ๗T› i–แบcผƒDG$QLSmh๊โโ �{๖๖Žˆต$I2�จR๏GถB�์Pใx=Mย•ะัu ]ฝ ~|!(ฬˆš๙dFื5ดuฤw24Ke–Pณ �j�0ก3G…(�ฮ8บฎf,ƒณl6k’q}$„`>5/Rาื:าเvˆต"–’,ฯAF(4ห]ร๗�{ต�r๛ึฒIAœว>8ึUฯคˆม[†n  0ฦฑู5d‰๛d!้ƒึฝ $R„ ŠyžGy– ต$#โ8ฆoว๏i ษฦ˜฿ƒIฮ$‰d„o+�ไท�9�ฯ��_qึ �8ผยมœžE’๛ ฮR Cf-™i˜ุี^Œ๖ษฺ้Zb๋‘QDืlR็ิ7ฎ~MฺTŒŒ’`P ‰`qpฬjyฦะตXใˆŠ้ �<ฑšw~๔cพ�อoาึ;Žn�dบทGป�2ŸLI๐ฌ—.v;ผฝj _�ูŸแsๅหdำw>๕Y>๕๓ฟภ้๙ฤง� 9}ฤ๙ƒœฏvtฮตu฿)ม�ดไ๙go๑ๅฏ�พ๔+ฟฤW�๖ฏ๑‹๏ยฯ�ฟว�๓_ใ ๕ฏ๓ำ๓๏๐๒ง?ษ‹ฏ<ร๑งพŒž]%:ธŽฯf˜ฎ `@Ea�‡๗Diฦธฮ…TR)คŠยก)ีS›๘ะy๛Pภ…;=Fฏ๎eq'ถjฒ‡ˆาู”๔๚ณ๔b�g0&�…ไ๊sฯrqฑ$ย“๎ฯx�ฮ[œี[ึ๏#Rัš<๖๎s๐�Mดmˆฒ’ำ๓5^ฦhM฿ณy๏t2ฅูv,>&*K’D#ฌ!ึhiw”๓ RH�ะฐูึx!CฺV฿ณNfœธก�0 u๗MtŽชฎPQB”ฤำ9uณc่ฆำB)Šขภล้ร8?{‚้š0ลPZG4M‹5}`๛FI8ฤฌ—็h3�1ฅฦฑI$กศ'$Š้‚ค,yp๒ฝฝ9ํ๏�#ค;ช€ถdTe๛โKัแegz้@4๓g,v�co]ธm๗‰1ม่ƒหŸๅฆC8ธXWœ-Whw†0;ฏฝ@1ู<าDส‡(ป%›ขgwBจ˜๋ั๙!"ž!U1^วิฐq sํ*฿ปฟิ_o`-.—ถzBป9EM_฿a]G6ปŠo/่w็ค‡Ÿf๕๘ปD๑„b~L”ไุฆC'’b�B tบฟฆ�‘–WH๓=V็๏!ฝเ๏ž๐๖7�ณ้ nฟ๔E&Yฬ�ฌไฅ;wx๕ๅื8บq“๘�ƒSพw�1wฯืœl*/Iณ…<๓r>ฃซZบถEว1�HtŒ#ฬ—ŒjgqึวIšMIฒฅb��่gปŠ�7ฎqพู0๔/แ์โำœž`ฌวมฃ๋x็่วquk,N@คสษฅ5nhฉซ-ืŸyŽรฝƒQu;0”ฤZ๑o|�๐ฟวv�e“X๒โม”{๛ฌ›ฃ”DRRทmศB%‘„น่8สำ๙‚อ๚‚๕z ชž*ธ…TศXEIธดฦ)Bk†พ!ISดNจถKๆ3ฒ4!้บšผ˜e9CW!u๛|ˆ�tAy�–P5u[“ฅกkNำ„~ฐXcูv&๙„ข๋ m�็Z๋ ส4หlZŒ)eกQ“๘@ฦร“$ม{I” ื๗qใ๊ืฒ(F่czฌ้qฆฃmสษ>Mฝฅm๋~ƒG ฦE{‚Œ๚พ&ฯK๊ํ’{๏ผฯƒ๗๎๓๐ฝwhššคฬน}็r่yx�มำฌฺ]�p๓๖-~๎W~‰ถฺ24 HI<s๕ลW๙าW•ฯ๎ำ�8˜s�๚5~๖็ฟฬ/�็ฟส_�๛�€ฟ�� ฟ๒๗�!ฏ}ๅWธ�ษฯq��‹$ๅงRD’ชะ,žนรไน7hซ�7x็0mฦไ—V‡ั�…่ำ(อRแญiมึƒ๙ีแด ธย`;"tI:๘หฮ�_ฦRสQxd-"ษPล™M8๛๗�†๖�ะV5หวบžม;zำ!zรไสUž��t>ม+IRdT๎ฝ��vวะv ญแ์�Cžผ�!nq•๚ม=d6แ๔ร|BฟํจVแ&>=บ‚9Dข$ŒOณซฦh<มษร :9B [l฿Qืคœฝ�'ฬ^ภ›ุฝำ{แ‰๓#๚vCR^ง฿�งoื”{/ฐY>ๆไ�_็มyฦใ~ˆ_�€—>๕WY>‡ว`ว๏7Š$‹ฏฟ๘"Ÿxใ<{็Eฎ�~ž{ห-v-๏-๙h]qVwจ$ล{วbฆ]ตฃ๋CฺทถoA)ผ ุtฺฤุฆฉ้๋ใฌํy้ฅ—จฺ–ำณSา8ๆ์�ฉ#๚ถ#K2ึี'$Qฃuv—ลc-y9!/ฆไEB1์6kฎ\ป"C“Œชช‰#…V’ฟ๘๖w๘๚Ÿ�1ห‹UPว’๖J็‡œ7†Aฅ SE$9ฬcŽห„—n�เjำoืฤiเ)๔m7ŽDc„ŽH"MYLYช&ƒ'์ฒ๛Ž~�มfI>Da†ัฎGe9:NYฎƒ›$OSdศbZJฺnว`m฿…ฝpต ุ$a6ัต “ษ4 wใ`wาIB'cB ใ$ธY„ ๏๊6@–๚ถกmjผu๔}˜hfๅ4L6ญ#Nsโ(&Mฺ�ฉฃ0=:bPค ช*8„Šฒคk;คŒ ม9CGSื`›กฏ7x)ฑfเฐœ๐hณใ[๏ผEd{Žฎ฿ไ่่;ฦฐv�€']kฑ6D๛�2X‚“ฌ!‰#โ8ย8Ošh๒,!ึแs็/ํw2œn\!โ@งLS\� ษ้ฝw๘ใ฿๙ื�ท�๒Ÿ๓๕ฝวแ�˜›iNฅ( Aญsz3;C,@EAฐŸ็จ(ašๅฬๆ\฿;เPG์ฅqsA๗๐-ฤ๊ฮ(ิ'n��šM๎ฎซh�-ฦสง7฿ํ๊Œ4ษˆ’”(ษ่\8$ห้œvทfท]ล-5Gื@xž�๛๏�ูŸ๓ึ๗พหfฝๅ๊อ˜บfตZณiƒQ}š&|ๅ—พ*ฤู้พฃkjD’1ป๕ ฏ~ๅ—๙์/�U^๚้/q�…™^ฝA< [ ำ\_กใ9'๗�/๙โeN?�3��๖ฟ็๎ฯๆ๎๏2[�ไนื~…ข˜เO/ึฑง๓;tฬ'%7ฏ๓ฑ;wx๖๖mฏ฿BๆNร[๗q๗lษ้6ฤe* tDVNุ]œำ55:Žˆข˜ฎชIหภ—0Cl3qฬ #�~|ย�eQpzvมt:ฅmฺฎมXC�UิmO฿๗Aญ;ย8”Š๐B‘ฅE–0ะbŽ๏*ถ๋WฏSw-ฮtHฉYื oพ๙฿�ๆŸัu!xฃT–g๗JŽ๖้u†ี ฝ5dฎใp’sตLศค็pพ‡R‚n๏๚nปaณซ‰ฃ%#ฒ,AQก“˜ถฎHbMgzยง^z™7ฏ!ฅคiBFทคŠุnร™%D‘&า;ดกwž<‰h๚)Yขƒ”V๋่{C฿ CHiI‘gฤRัฎ–�๛ว�ษ�u�๕ฟ�๏๙ๆ_|/ n^gฎƒ@WIIEิ„ตIโ‚ฆศXKI�`xb<‹"ฃิฐศRำ=ฎ_แฺ�ื๗Ž˜เ™wkŽ…๚ิํgพ–งฆซ1v Š2fณย(ฉhซ5ึy๛G่$ลCš—Tปm๘!ฦ�ะQศ ๎,&ภล๎พร;?๚1จ„ฦ.ช ๋i๑ห�ู/SฬfX3b้œE*ํZ†ถม๖=v0 mC฿Tทฆ ้[*ะl฿‡ฝต”K>2อฅŽp6|เยAŠณ๗AฌฃBๆฝ”O‹๔X๐C=ช~DZ†)y๘%ๅ๘๛qฬ้Ghˆฟฮธ[ E?�sAz�Y�๎%พ^ณฝw7๔ุชใสํc†ๅIฐ/์–,nbซืๆ9/�ิk QฤƒO8=[3;ฺใๆ'>Ž[=ขm-ทžูC›kz๐žG Eฑ\6 :+ุ ’DkEQไHญ้zƒ,�[ฌX๋iบ†พฏR0+g๐์ํ[L๗(๗XwŽ๏�{ฤใฆ็ขnX6-R*Šูœูม๐dY ๙ap6\ฒงำ’z[๑ฝ๐�๓ฯpr~F‘ฅ(-YญึดmG?8†กฃ๏๊jบ&ฌ}ŽยŽ~0–Dระ๗\ฌ.X์QN&8็จบ–‹๓sพ๗ํoฑ�UคiB+nอJfำ=tq€๕`ฌฃ–2IH];5่ฌล—ศชฺฑ�m)Š)�‘นฆแP}]B ฺม†ย#<ูdร“Eƒจ๋ อ'คIฦะl6kฬ0`Hžกใ, „ฅฦŒ๏o1™P”s๚ฎ_[็QฐรB฿6! Iำิ C‹๗Ž(I๑ iQไฤIŒ–!๘C ๕c†พๆ๊ี่8cz๊zKื…ฅฎi่zร`m8ข็ู A๔ๆMj‹๗#ดวŒฎua E1e �ปQ$.'ำข ชj2ฅ™Mง�=?็p�€—^x+BฐŠ๗Žฎ ๏Doปํ%=ฦtX�g=i’ •Dษ คKbRŠXGhญCฦ† #‰ึD�๒ไ๎;ผ๕�ฤ�อษo�๖ฟแ�๗? M๖ุ฿ปม<-๐ฦฃ• ืก ์ŒมZ‹๖้ ฮyฺฎGjMEแโ %E3I"ผsก(วแ�!ณฯ=๗1ŠbNG�๔ wพๆ‡†ชฉPQL’ุnD ล”ฆฺ ใ”(.ภ[๊๕*ฮœ€$ ๚ฆู ”"‰cช๕9Mฝก7=ˆฐS7]G. :NxฐฉYฎ–�ย/�"Wn\g}v๐xc‘บ6ŒlD[ภธW๗—ฮŒถ ็: า1GZiละ๕์VkคRจqOํ ๙ถŠรŽ� }่ฬฃP`™๋'B"!Bแ๕—๏หŽNŽ"ฃฑ๘ุ้(\a"B†p kZใบ–๕Ÿ�&บœ คg๗ฮ™=�"ซ7@_W\๛๒/r๔ฑ;ผ๙[ฟHžy๕{‡3N�ฟGตnxๆ๕g9บ}…๚ษ)me9๙ึทุnถุ๒ˆjฝB9รณŸ๚ี2นzDšH>�ขฤ@>!‡Šฃฃ’2ืด� '^''้Eยม๑!งู๋n า’ค(ฑ]วfuNืT+*5พซฺŠ~ศŠ;„gณ[ฃฃ˜zฝฆชj’8 Šพฃฺmุ,ฯh๊ ็,]3�๐eDณ]‘HIYLƒŠถ˜0™ํ…์พ๑cแ๖#_|ด‹ูacr, B„ƒ]ސ‘พ7ciš๓u๐แรถZm8ฟ8a’ง๘ๆ1บ~‹r๏ล�:J๔(ืฅs”{฿ก๓ซำ')ไGกม\d.��ฃฺ\ศเE็า ๎@„ขฦ์œม™ ‘L:e่jฮ~�/๑.ข8บMฝผK”ํ‘Oฏ3l>ยฎ_๛8ฆซ`๓€๙ณ?‹J\œ=$ต!m�a{ฆวŸฅov�ลŸ� �บ๛˜ำ๚ˆอbฝg[w�{tส�๗๏๒ฝ๏~›0ด ZKŠ<W๚กGŽVธ(สH’4์w[fณ‡{๛�ผ~�ฯ>ฯt๏G๋?�๐>๏-yY๑เโ‚๓ชฦE C฿#n ฺ,iw;6Mร›O.ธ��Š�ถ%นธXา๗=''™uีpzrB฿DIJง$ๅ„Bˆ'”SV›ŠพฉูV5ืn�โp1ฃ(K>๘่„ท฿z›อ๙‚วkWxแ๖-zU†ฆมHgูO‹<ฦ๖5]�โ”ฆokคŽ0]ลvท#า1ฑึtอฅUบม!ฃ$$๎ูเJ่๛žพญˆโ8์jซ ‹Bต8 _'Nh๛–ก๏’,มึ@:BhE�ิฌVธง๔]GSท!ฺ๋ ไyN‘็ฑN„ฉkตEKษดœbงฆoฺ้8๏p8p๙)•ฤIE%tMอruŽึ1iQŒำ%…ณ†�tšฆ(ฉPจ^๏=y–ฑa’uป๗เ I”เœงฉkฌ — k-m฿Rfyฬคตœ๎6�`yมKฏพJ๎กwž8JˆDŒย%ข๎คะสszฑf่[๖sส"CŠpq—"์ถ๕dLˆอNใ˜ํล฿๚ํ�?�W�-๒๛�Ž๏}๛›|๐ไœNฯYd๛ค*&ทJIส<ร‰(ุEHm‹โxด๎Iญ8สX1ฯฒH“วŠ้tFฌอj‰ŽŒPR&1ฒmˆ‹๊•y�5๋zสผ$OKฒ($Š CGค$C?ะ์.F‚†8FใIา ๏A*Ž4Q:มw J)๚มฐญvXฉ(าœศ[tšำห~เ Oฮ๘ุ็yใณŸข�l2<`Fฏต3็,Q„efะQ๖หข$EชะA[3เG8L฿ถ๔m‡าš|: ็ท๗xoย ลุQฤ&ๅX�ฝG๋ะ32€C๛= ใxU\vr"t�กศ‡"}ู9=ํโลฅ๊y์ฮ!5ๆษ๛ศ4C%9nsฦโำ_ฆ{๏{Xaึ็๔'! ษgง+ž\tำฒธr„Lb๊ๅšiโธ}�€fuฮ๚แG๘ƒ;X+่6บ]‹ีม๖�”ตIi—X30_”,2ฐ}Oปซ8.6=U๋ฐB3›ฯูฉ˜๗k‹m+„Xใ๐8ถซ ฺถCใH“ ฅb๊ํšๅูIHeJs๚ถขkzVห ฺบf�่ˆ$+ˆtayศh]ฝร:†Q’๖dF^NˆtDว(<อvC?" ›ั>&cล๙๚1ฏ~๎‹|๖พŠ้�ฐ�vnฌูม&ดB่|๙ื/ง!ฮืA˜พ„๎�๒yyยฅSGร`i{KQd()8ปุrv~Fืญ9œง๔๏ใถ๗น๖๒ฯขโoร๔รv[\ฟ‘ศx†P บ8ื7„{ฮ#"=Bg.G<แ0A้ะฑvลp)lƒQg‘ฒ}๘Mvgธ๑™ฟKทzกrง N๔d‡wะฑ‡ๆ>C=ฝสG�M�0?ผMฝ;ๅร๏�ีฎๅ๐นŸๅฝ7ภ๏�ๆ?cำD“8็†"Mู_,ฐ:ใy|vฮ‡๗?โ�๗�็ƒ๎rz๚˜ๅล)e9Woq‚๑Ž๕ฎยXห0˜€๊ฤ2™Lนzๅ*ฯ=�“ฝTšฑ๏Ÿœ๓ฝw๏๒ึร'|ธฎ8]ฎ�czCว›š^{ลlฮลjI’ๆœฏ6ฌฯOƒ}จ�ฑ\o‚ ]Gh%ะ:ฌำ,EJE–dYม|พ@,ฉืn�D*ลร๛y๋G฿gน<วt-Zx>๙ฬ5>�ยNjวฎทจ‘็>QŽBz†f‹ eQ"ฃ(`†ฅ 1ดึ€าa3Nๅ๒ผฤ[CYๆh!P:ะ…P C>/6๐8„Rจ8Aศ0 €’@j#,‚ุ55qV"”ข๏zv›ึฑฺ‡ •RxKšฆก๑16$aIมเ,ปบAKIฌ#ฬๅ+ต ฎ*†กร‹0ต่ปŽบฎศำ$œื(œx7ฐ\ž“f9{‡WB‡=ญ Tฒฒœฐูn‰ข”(Vb5^ๆใ$%’‚$IIขhdฌ{†qšช๐E‰7ถZ&N'�่ษCส›7y�ๆณ$yฦ$M˜ๅ1�ฆgป�ฐ( ถป ๐vฮาu-E“ฦแ์๎ปžม„๗Tโว๔Cท†ƒฝ๏�}—�๗�๗ฟใlำ‘กzย��u๖ŠœB Œ‹ทNP‘&–„l๗หษšฤRา[GkŠัึฆœ พXEšวgงธzC‘%”วกNZt•f‘ >๓ฬฏEยฃฃŒhsHoศ&3บ6(“ญ #›กop}Žs&ำ9ึ๖ก[V1ำ้ lEแu„—0ฯ ฬะbผง\กฅF9CINซŽ{๗๐Kฟ๐sA‰ูvciwI฿6€xz;๔fภ™ภๅ•ฃธษ‹ณŽกkŸvฯ�9โ$!)Š0y๔.„ข�๎F{ะๅิ{‡ร .ว๒กcุc‡-D(ย^Œยขq็Š๛X๏/-K�…ึe‡~y�9ู#:พ…@ข‹อ;? น~›ฃžCนž๎โs๑ˆํฑฉฮŸœ๑ัษšt2แ่x†ท›๓Šณ‡gœ?:!:<ฆ%แฦต‚fปcu~มฎถ˜อ–ำ'g�}ฐc_V\ฝ}…็?�"ีฃฺอŽํfG>™Pฮfดƒฃ2Šb’๓๖jลูฎร mฝC๘9<๎ณwpDšมz# ˜ฬBG1 l7†ถฅœ๎ัท ณลJวcฆฏC๋˜�ƒcโ(บ&“Z„dข$+ยไฤy๊๕9�๖‚fปม{h†ŽnะXt”P%ฝwœW'�า_๛›<๛สวŸ พ�ธย~jนAh(ดyฦcท‹*]vuƒ 695B๐aฏ๋รXG�ด$ZR5Oฮทœ_„ภ’D[J๓บ ๛w~ืoS � ์‰CW๐ฮ ใ:)ย!ำixoผ[ฃ0๚ฃ�q–/D่ศก€ำ„p1�ˆ„iฮ๏ฒ๛เฯ8z๕ืpรŠณ฿ฃVdTOพOป<ง|ๆsPŸ`vgHS�๘,~Œ@0ูป†่—œ=|Ÿ้แวˆf/๐ญ฿��่ป_็๑:แไไœXXผ5 Bฐ˜ฯฦฉ“%’Šข,‰าq�๖ป๏๒แG89yยใ‡๗นXžE!ชXIIี„"พmZŒตฌท;๒,gฮด,9�?ไๆํ�ผ๘๒+ฬ๗Žp:aู9>\๎x็tรIืณ๋Nรห/ฝJžง|๔เyDW๋อ†ฆ Q‹MSฃใ$ 3Ÿย˜�[โ$#อSดาฬสŒฎ๋YnV\ฟ~“๓ๅ†๏}็�ฌOข\x^>šq{oฮฺ'l�!Y$9สbฆฑ$ั๋\ ข%yšภŠ ๎Š(Š‘2้คiฌ๓tuฐ์:D@๖ƒ *i%M]Sตม.ถ�ฎF:ฆf:า8 {ี$AXGVไไYNวOC‡า8FๅdŽŽค8ฮฃxe๋(b่๛pvFษ2“pถZ r7&yEq‚๒ใ=qใ„ภKž; �„kYŽ›ค, Šyœ(ำ(ย#๐ใgP ik’,!NR๊อ K๘>้‘*!NL฿‘ล Bišบฆ(J’|Bg� HฉY9''๙ ๘ไ‹/’Š sCžGgkvu…w†บn‹ ๖•0mk{š6ฌ6ดsc-ยนpั๗ŽYนเ฿~—ท๊ž;GWู‹าXa-ฦ/NG(แ๐ใfM �C@`BIส,%•!ฃ�t-J€Žcชอšฎ |’I“6ฟ8ฯ‰“๋@}�น็พGZE ฆ'M2ฺfฤ2�_fVลป๕ญ#T’!TB}๑g!‰ห\จ ฺv‹4Cุฉ4[’ษปณXS๓dปๆ๑๎‚ฝIส;<"า?�ลŸก–'OPq„m‹w4ึฬ00t}๖Eึฺ�Žถฎ0ฦ„K‡…ว…Qฅ82dMพGฅ4Qšแฌ จม$Xย,ฦ# ี{Fฯๅ�‡Ÿษุu‡nh|ธภเF„0Š๐5ยืz*l#|=ฌAๆ!ดแถฃ๘>๓_กผr#(อWฺถ'K"ฺ�r๚๘‚พ๎Hห”ญ> _žใMOGJJอ3ozื๗�นลหใYฟ๓.QLื๔ใธXืQE‚๏=8'ั’ฆชI‹)๛‡WP*Aลi^Pฬ`|ฦร๘ะษ:<ึ[’|Šs!ผําผ :šํšธ(Y_œ‚—่(ฦระa‡ึ6๔�}ื!G�๋`  t(๏‹ใ๋HฅุิงคEฬฏ�ร�’ษแมS‘’มว-dุ_vิก †gไผ‰_ฃฒ4์ธร?โC*]฿‡HวฎBFpoh{หzำbŒ็`Q0/"v๏�ๅ�1๛ฯ}ัopอCh“คูโ6ุ[?DdWPQ‚ฮ๖@ลเ 8‹ม^…1ฺุย;3�FT>‹"\ ลำ ฃŸะœฟอ๊�7ศฎ�4"R,?๚SZ/‰ณ=”T,฿๚-ๆฏ�Zฐ๑ฌ๎bM n ผ�iชีW^aฑŒš�๚:ู์�y็�;�w๖‹‚—Ÿ�}Ssฑ`yz†้jb)˜ y9ฅ‚Ÿธ๊Zส,gฝซฉบžฮฆe‰Vš้ดคœN(fs6› ณ›ำิ5ฦ;ชjร“'ฺ้ž8ห1ฮ0˜ภข)ƒPะ9O? aฝEฬf3l฿ฒ^ฏจชšํ๒LOI^พบฯ็_xž �ฎg^„�kๆ ‹LGm�าšฅC‡ต>่kฉ5�่•–„hฯฎ๏้œฉ้ะRัi’’“ะ� –"ฯL‡๕’8-ˆ‘�พc7ฎ$ ณญcHโ”ถญhฺวไi†P๑ุˆHชj7ฺ*yYbป/ิ(L,Bา=i’€wA`•ๅXoูํ6 ู˜ฉ๎๐(ญ้บœY๋f 5Q’!%ใธฟลYK>�ลฦCเcxข…๓’(IB๖@[alฐ}๊8EEํnP  ]V �bญeWีa"’็tำ๓ัfร:›๐KฏฝJ–f8กY๏v�ซ๕šึภ4(‹ cย$ โ(ฆ๎ Eš†€๏‰ใ{ม…tรอzMžๆฤ๕Ž�๐ƒ๏B9ๅ@(Zฏh-dIฬ"O;Nsi„Š"R)ศtDฌ5ม.ง็‰ฅBปi46\n‹‚yำื;ฮ—kฺก'Šš‹t–aPจื๖หฏY๋i‡Žฤ๒ษ,�ข ๋=išำก๒aŒ�ใmฐtค“Y1ลv˜ใ๚!:Jศฒ qš3C๋แย{ชกแๆม”฿:เ Œธต_ะ55฿�ฮ;�•_๘9โ8ฆmZา<ฃ˜M‰ณ”$/ˆ’„กmhซjด}‡1k qš1t-]U‡KH�ข” นozcกv6ฐๅe๑cถํe‘ ฃK‹ปง=Tเ๐u�%$็ง]ัๅฏง#๗1ร…ฑ c|eให“9ฝO4;D3†๓ฬลŠพ^s๒ƒโํ๖ฏ์Sฆdฌ>ภ 8>ศน๕า3\œ,ฉ›ซR.–5œlธ��}�`Xฎk\\เป๛ไ1›เlH ฺญVศ8ๆ๊•=ฦ3�{ผ$–’รฃซ”eฮzyAฝซiทœ…~ทAzวะึฤI��ฮ’gY6MœฤDIF™ฬหpเยY’rF฿6ฤ:&/&!(ฃฉ˜Lgศดภ X�CO[๏Hา8| ๊k:šชbซป๚ํ�ืoผ€ืฃท[ˆ ฺพ,โ๒Rƒ@i—99พRํฦๅฅLฉ0N—2Œ๔ค”8/้†พัพx๘ไ‚,‚m�q๑๘.y๓7�๘e’rpธๆ \4gุ>ภษ'R„ฮˆ’๑—.ˆŒŽ” N ็‚‚^АฎBบ‘ �Yย{&B8Fsฦฐ๙โ๊็ษห��-IŠ96z†ณ�˜XงควฏPพEณyŒิ! W้Œd๑อล�2นฦzปd๕แ๑๎ฟอ๙ใG\พD’์QŸ๗DBpธฟวตร}žฟ}“็˜g)u7๐ไไ„ๅ๒o-“2Gซ ฃOื6ิuHข�ฑซ[œsœœžq�แ�ฟ๛ซ๓',/ฮฑ.t{m\-ฦX/‚/;ึ์v;6U Ra๛–H8Ž๙๐�๚มฐZญุํj6›5Yฌ;Išd๔ƒ  1K”ค$ล!#๖gT�5?|Ÿvไ์๏ล‚[‹ฏ�ธF+s.ืx็˜&šศY2aุŸ•ฏhบ†ถiย3ด†,/ƒ฿ป๏ย%ีYŒ๕ฃง\“&ša "8zk้Œม™ง‚-ฬX3Žyk๚ถมzV‰g่C&"5ด”ดmKข4vŒ^Rฒ˜ฯมKŒํศณ,X7…$IS้ปpัpฦ„sึVJฮ0˜=ํT„‚ํfC3vๅึYœ3˜G�ื;&ำQœ`บ:ค”ฅu๏รว“(Ÿ+เIโ$Ÿ"=ตมAะ Mšๅคqxo†ฎฃ๎šบข,�เ<ตแข'Lg cูn7ผท�๒์ซ็ฏพ๑Q่]ืฒูฎQA’dD>4'Ž€ฒC–$di�l6ฌ”าhšพHktœPํถ์ถ[~๘แ}ฮา‚iNฉZย4R$8œŽะถฃLbคˆค$KR–l2;`�Šูค$ฒM˜:ด-š r‹คD Iำt”วHแIcEœๆXcุu๕…^๘Zงุ‘“ง)มะีคำ†พ%O2ฆ๛G fภ=RGำพฏ)'s†fn‡* bˆพโGใธฐ�ฐใๆ<ๅ๙ใm;6›ฮ;nf��เZ—๒๚ง>๗žl2!ฮ2๒ษ4ŒลZล1ํฎขoฺาƒคo;6็็aง;Ÿ“dQšฃqk,q–=9้8pอ‡>Xำฤ(tSzด๔@ BXฝท&๘pว�Qุฑ๊ฑ‹พ๊็y ล?Žีฝlt์�„๘ITฅ ท[าe่;ฌ้@ลฤIจ^PCrt”๔mKื5ุ(ฆูญqCึšก๋ฐึ0™ฬ"มดาธดเ�๊}ฎอ พ๚7�gWฎขาEaw,ฯaฑ;_xพ—Pศา#,ๅR‘๎์(†๛\็Q2ˆ�švเ�๛K.ฮWt}�pฑํศบd๕>Gฏ�\ุI๕[|ท JVืมฐEE1Q:G2•มฎ‡N*Bชัู0^�xฑ~์ฒ!™ ่W„w ็q� ํฃ‹+t›๗YŸ�๋%‡ทพฤrนd๛๐ฤณg‰d๒ตeF’ ข�:fpฬ_แโ�ืIง7™ฟย�๗พลฝ๏�:฿sM™ GUœะี}฿ฃฅย๔�ะ"Tุ)—E‰“ ํ`CI?คช๗xUื1ๅ๎ษด$Ž"”RL๓)�๒,ฃ('8gQR… จ4ฃ, ส<#NSถี.ไ;Œgิะwด]วjuJgMศขw:Jม Š4รึMyšSf9Z“ไ"ฝE')ƒตฤZกG=Qštm‡บQ‡š›ม๖”ลŒxฬ5฿U;–ซpแำ:BEj„ฃ„ฯฃžb2CŠ`)ปธ8ก(ณ’$/˜N็(แฬ0บฃ E^ๆ%u? Lฯฃๅ๋ร#>u| ึัน k้ร8–!ƒผs*ะ๙š–อ๚�7k(สu3')‰ึHA๘ŒŸฟH)ขtย๙ƒผ_ื/ๆ์7U ณ)Ie‚–L;‡GแHt„๕/CW{umkpar’ฤ ำ้เ‹๙œขศCV†uOV„—ดNข>๓ฬอฏ%l?ะ์V๓c”Ž‚ ิ“š8+i7gtmKZ”๔อšฆkqBง›ํ |O’…ะŠ]Uั"8ํ*`เๅ+s๖ …ฦrฑ�แใฮ;Ž&‚ณ฿็สsฏ๓ฬซฏ0ด-ฮXข$@•ัrกฃวDq‚5๏BQท�@1PฬfH)ษฆS๚ฎว‘b๔|_ญT*Œิe ซ]๎xt’€wิ#z3ี~2ย|ฌกุ‡ฟŽgMุyqขๅ9vO#�…ฑ@0ฺmSaVธj‡(&๘��้c<Žำณ*ฮXผ�: †ๅฝ8ซ U�!ฝ`sฑbบทG]ต\ฌถุฝk่�7>๖1&‡G ป� TหฎmษŽiถ5ํถโส๕ซ‡ผีฅฌชšถฺ2Ÿํกฒเƒ๕N๒ูคdทYแPt�rЁี๒"pฅ‘ฌ–gม_™คคI†Gา -NHดไำูรชIณฅ4Rวดใtวถ5I“f%ˆOI“ k v่™N ้ภ๊�.๓o�|�ฏ�*^jZง~rH=r๘`;dด๚ykฑ#ฑm่ƒ:Zศq@ํวหุrน 8ปุ๑�฿ง,"eN;8ฏ™To1๔ /๑„๖ยึคำซ(-qํ’xz3ญ’2*ƒๅ1)Ÿvี^€ื1A^<o\ญ๛ัV6ย†./'ธ!cD\โบ'ุn *fqๅS—ฐ>๙้์:g๗�Œ˜ๅ๑+di:ฃโ:‹Šfœ}๘ ฆG/ขโ#��๚?ใฝอชพŽ๐Q่:โ„ๅถfำYถฝamBจFk,ึY†�–,ฯ˜*ฯํƒ9/�ผฮ<‰Q@�ึ�Šฎi‰“๋=zt”diB%D*t๒<ฃ(rv�-›�Žอfหฃ‡น๛ึi๊†ฆk้๚>์uฅo๘๐�cๆS^x๎u]ณทท ๏{=~Lต]ำw]Hฎ/‰�:ข$#Ÿ.ศ๓œ8JะqDIดNธ�๘ ปี:œGณ ฏ฿พMe$็๕o{ฒX‡TEญ("Aiโ,4;่†0ฅi๛žM]!€มXฌ€�๚qฎรt*NCQจ�: 7ว)ิ)“ษdyyŠฌ หาb‚pม๖ถฉv๔}‡ˆข‘*แuธ`2ูรKEš&xPช]�ฤ ญ‚ฦ่bต Ÿ{กI‹)E9!Kขq*1ฦ„ตˆืผƒ้tJs๒€พ๛cฺ|Ni)ฒŠDx‰"Ks\_ฃค&‹4e’)จw[า4ฃิ>์โuธะeNEx3„ห@QPLง˜พcZd)h›ž้ั1ปบB}๊ฦ•ฏY7PU;า|Rณ<}Hž,ค�ื๔M”’ฮ โ(มFๅyผ฿›SVหำ$€Bไ%kS“F†ืฎฮธฑW)I78’H‘ฅši™ก„ไ`ฮ๑ิฑ{tŸ๙อW(๗โQEq€๛+Mœใxฆcฒw@1†Ž-ŽษสวAิ'T�mH๏‰ƒ๕F' ๕n‡ึQ =�‘๛@ยบ,าcNํๅ์Uฌmฃ-tDAๅบj‡3rฤเ�Xล/;ชQ๐†๘‰Z}�๛B†NgquC๓ั}Lฝ…๊Œ�…ื้๏~Ÿอฆfฝ้0(ฆIŠ๋ฮษฐพภ –๛๏~ภรปฐ�ตฬ{dส ฃ` ้ป8/ษา˜{zส{[†ถก�ญ-‰8{๘!]ฝaตพ`ตูฐYm0ฃ๗SV ˜.t%Zเ.–c"Xำ4H)IฒœjทC+ุํvhD!ฮฅzโ1อXƒะJฺฆf0†,หฑH*1๐ไ์๛ผ๒๒O๓ท�ั�†|А"ฺaิ;Œ nR๘�จ;qxฮAญ>.`.ใ3Q*ค)ขDฅ—ฐw?(ยร)ŽŽ4yYขฝโ฿�s๎‹ˆ�("3ณHr%S83KCฐSฌ%Eข)ห ยย^Œฅ,งtี†8ŽZกฃํƒตOIA”$EŽh๋lBpำธกa๊sฯ��ฺtzˆ”ฐwp!Cฝ&ษJŒ c …่=œ'O#สษง$Zะ7;โ<ำจXฐ&V๔ฎใ`–๐ฑรœY๊Iณ2ื‡–8๒Lฒ˜อvKžHๆ‰A๛_?เ์7™?๗)Šลฮ๔ $:NFฑ’ ŸL่›๕ฎโเ๚-p–ํ๒"ฐส=๔}ฐ›ฅๅไฉฌ{qA]ฌ“”‹''dEH2C‚.; ๎ิrLต๒ฮ…๑…`๔ฉ_ฺฯย^[FัธทavูนA(๘ะŠqœ๋วไจpX+šวh�ƒพมœ�E”๛x$ํษบี†(ฯYžฒYm™,lw;NฯVฤiB–Edณ�ํ฿ทผ�ู๑ฑO�คY6` N*ฎ]ูใ๐สœŸธƒŒsึง+ฺึp|๕ˆMนฯฮ6๔�~Hำ”ํ๚้%gOั๖uื3๔ณฝƒI๙๎-ˆu„:์ฏฅฦ๋‘ไtฦั-:Jiปคb I’อผHแ*ยa็mมC’คNe,E1มJอ�ว๏๒๘ไM๎ผ��ั�๖�ฬญŸ ซœห้ŒจDฃโ0jผ์ส…Fญƒ�ณก�‡€ D‡ห฿e5'ฌeƒwŸ๘แƒsค๐ฤ:\ิคTุ‹๏`ฮ฿โ๕ฏ�cข4ฦu+�P!ฏY'พ;E  =ฦ›zด}%แp2Bศภ9ฟt:เA„Ÿซ`œ\j'Dะ^x<…ท=Nd อšํ๒#๒ษ‚พ:aฐท�>Z'G/c๛ Vจ ๚ฺp—W8�เ`lย๏�ึฟล™k๓=ฌ๓8-c'ผ๛ฮ†ฯ‘๗Pu†N%๔^K‘utmK–ฦ•)7ๆ๛eษ<ฯ่ŒgตซXฏV!๖W)์ะX�‘ไiเ…ใIฒŒข,C I\$�ํŽ‹‹%U�Aณ!Šwžžฝ๙‚$Žy๐๐!๏xถ …Aซˆ�ฎ )wฃffh[šjCV$$*bF‘งœ>yVzw^dzxDeAๅI9ก๑š‹่uDงRo*>ผX๓แ๙Šw<โb[sัดtึ!ขเ^ษำฅCกดฮฑ�mะ*!˜R€uญ4ZkALีv�ะ…]ด— C@P–Sค„4Mษข$์ŠฅQd9‘ึTmเTR0+Jสผค(Šฑ’’ฆm1ฮาถ UำGŠ"ฬ€4Š๚–ถ๋จฺf์ธƒซoC™wมฮiLะDZั4-ำษlL์ ๊m‡ภแ฿ฟด@ yูอ$YNY�ฆมyะ:hŒก+๗almMุีk!™อ()ศา ก‚M-Š"ข๛hณแ•q๛ๆ ^ฟvธœ„ฺc J(N.Vtmˆฏญ�%ฦ+&EAk๊*L$๐ฃQ*์`ะ*4$^Eh e’฿๛๖7๘ภ8r!ธๆZ๒8B&Eศ‚<ษˆ„ฃํz<g:b๘๏}[ำิ;&ณ)ึ:ฺmXO9RY^ †-BดnQLP�#“Œbv€๚๘•ƒฏอๆ๛แvl-BBžมฮฃ#ึ็‰๓’Ia†Žอzบ ญุ]œ ใ”พoฑNat‚ศS๊~Gฆz>veŠtoƒ.‰5ฑ๒ฤส‘ฆ“Lณ_H”iฐMo๊G?fจ ื>�๓ใC๛ ฮR\ขPฅย™ ึQLฝ�๑๐ร๛l–ซq\ �‹ บzบฎัJ‘•ึ็็ฤq<�2-ฆ๏HŠ2t�—;kBก๕ึŽ๐Œะษฆzน…&O†]๗(>B„ฃ!๐$ุ�˜.aจ[B*„3ˆกลœพmVoฝIK†ํ–อ๛๗๘ุ_�E๖ง%O�~—กํ8~แ%"ฎซyๆฮ-J%9=;C{C�่ ]๋Yž\O R้p€ญ7\œ7ธฆวt๓๙7?ๆI4C+E–ddๅ,๘ ‡�zŽฎญQIF1�c2ฒฟ@%a็V„y๋`m œ>ๆƒี’ำกใImyดซุ:ฯE็8Yquสฮ…nY$ ฝsิ]๐ฉ>bY> ฯY„เŽ]ืsV_๐ม้ปD™โงพ�U�๎?๙฿๓ยซ/Žพ๊ภฯˆเ๑cฬฆปT6�์c�๛`�ฮXœs~5�๒Œ#w๏้F๒ใ“5ซ๕"Šukˆeร้� ‹kw8xๆu”kPยก“ivจt�บLˆŠ}dRŒ]๕eืO˜ ศK•9ใุ<\Vฝผ\„ Nx๗‚ฆรด…ทŽ‹๗�ฏfh%y๐ใ฿งญโ.๎ณx๖g‚ี/žใฌ Yลๅ”ษ์*ูไ �๚V๗ฟม๛๏~—๛2&“#คํฮRLฆ$ฑขซMฬKั€ิใฅU@๏,ฝ1l�Ž“อŽบn‰ข;XฺถGฯี�}ž;�ใ๕็Ÿแh๏;ึ�šuตลKœคฤI6:lbDEem๚0z.Kbณvป‘ฐ�บuk oฝ๛'็glื›@Hื]Z ะqภ2๗ฦ†n$i™SW;ž<|Lฑ8ไฮ /rดฟฯ[ทธ~๕:ฯ฿นรว^xž๙แทn�ๆๅW^แ๚ํgธz๛yn>๛<ำฃซ่้YฬxT๗<จ:><_๒๐bษ“ีšชฺR7�ฆ ๋;c8ถป]XGFฮyfณiO—nz @+M”&mำRWuธุhMoรE4MO_้ปฒf าQคYฏฯiƒ’‚ีn‹uมUั™H'\นr-cLฐช ไา$E4"Qำ†ฎoศ’”,+๚ฉฅญชwat๏<ึ…\ƒ(Šฑ6LwE#ฅขm*๚พepแ]O“%$�2-ฌะq`8Jc… 4>%ษ’„ษt:ฦ ถu‹›6ก4^fเ๎fห‡~�•—8˜”ธั1dG�่๙jGำvHกุUyžclO–„XUฉ$‹้3๎บำHำ qš’Mจ( f iZ�๛๎wX -ušsเ�˜gัCK�4A02Hา8ฆm›P“„1ฑqึ—‹=†j‹า ้จฏุ›…๕I”่(ญAE�ิว๗ฟ&ฝกmvุั†ีT;า|Šm+,’�ลหำว\l7่$CHEWํXoฮ€๑ŠPLฆ)‚–ฝB๒ฑk‡‘BŠ0’ฬ@�ํย‡ัYฆ™b๕L'i๐‚Zฐกbv�B ล•O�|“šแz๙KI1›‡ฮKkโ4Gโษฒฅฮ‡�ญŽย๑ึ‘ๆ็Ÿๆqำnทแ%Oา7ฐAX&F;š5#�e|่aฤ>ๆD?ีK]๎% ฺšง‡Fธ\�๏PDย๗~น,�ฎŒSข�cฺ๏=CถX`�–ถ คฅ๕�?ไๆ'฿เ๐ฺ!ีvษnำr็Wามะq~rม$‹นqmA�๕lฯVBf:”7\๕YŽ>๙ป{จชขœt�‡zยถํ‚Ek2C˜ŽกmPiŽN2.�cื๗ฬf3ดpt๕Žบ�ะ๖=u�rQw�]ž๐รำ‡Lฏ�ไŸ�)^�ฬธ๓า'น�าวน๓าk�y�“�z๑,ฎ=‡˜p^7œ5†‹มฐ๒Še฿Rู^wฌปsฮ› 6ร’G๋ว4าrp�ˆ/��/๑w�ษ�‘�์o�Oู฿Ÿ…ุO˜ัa f€�†]ฒณแภน$T‰Q_hฦ}ูำg@ธฌ]บ น๛ถi๚�๐เษŠ4Ž)๒ คโbำ!V฿A๖_ฟBš’”DqŠoซะ้2**Bควaฎ"ค–้ฐ76t,CHQ ุ]‡wA FแRy๙}ฺฎBgŽ„ํ๛ฟฮัiฬ๒ไCชๅ=๖ฏ|Œๆ� ้�M‚(?`'ๅ๔ฅPg๏}‹'�ๅt{„ซ"๖๖C๒ฺIOyยƒ๓sฮท[6ฃ sฐk†ภ�๖6์ฌ}X! )ˆ“Lฐ46}’8m฿’Œ šถ๏ฉGฆบPšm]แ„gณ�ฐซ[’4 3@ช@ปL” ย4rL.3”I—ฮำ6U˜Dแ็7ษ‹ะ@๙@?�ต-›๕ฅCMธ<…=นๆ‹Cกห „$i†v"#�X`๛™d8็hฺฅ4Eข˜อf์๏ัตป]ศ;๏Œc๐กณึbพ๋xผ�๐Aฒ7›๓‹ฏผDZNQฃE8๘๑ก๏ƒ๎ษZ˜ฯๆDZ+A?า8ฅ๋๊ฐb่‡/ณฦ 8ั qคมšบฆ๏Z>ผ๛๋•033%‘ฮ …๒–ฆkˆฃ0พ๗ฆฑŽฦ•AF9™RLฆ)Iโ”ูม!y–ขm ^`ฌ#)ฆธกฃฉถ˜ม‘อC.…๘Ÿ~ีZำ!<่8ฃkj๛ว๔ีš(ส0ฆม!ฉฺ†DK/ˆฅ ˜ฝbมฆฏ‰3…้w�>(นyด B!3]Eื๎(Š,|ะฅ'ฦ@ตd6อ)'yฅm+.Nฯ้ผC Eœhž๙…�9/๕Ÿ†.�cฆ๔ˆCJ •b่:ฺชข�ํXŸฃd๐ฆโฦz–1›OัYฮdฑ ›L0]T’b> �เธGฝ์ๆย!—T6om มI1†w�$อ์r�ฮB๗.„@F—ž๒0:_—ะฑ{Oธ6zบ‡€1ธอ9ี�{ฤ{๛œ~๋O9�ร฿%*J?๗”—��ฃฏณk[|’2ฌื์ถm�q�ฦ!ฮดh‘’ดฮr๓ฏM�๐;ขฒ‚ู4็ํี–n„ฐดmKšฤธ&cกย๚ kุU;โ4งZ‡พpDqJ—อyRฏุธ–_��c�ึW�‹ล>Œ8Sil฿a†คd,ฦ86�ห๓ ๊ชๆมใsNNฃๅ†ฤณ^nh:หt^ฐ˜฿เน็_โฦญ็8บ~~(สšฦแฃจะ{ #ยะภ1V๐ห"~Yธร/ภโฅยŽ-(™ƒ๋เbUƒฌV‘–๔ƒใษู9�ษ๏ว–yG/� E–'1q,aXใ›ว฿ฦ�]� ฑตQ‰L&aฏ~)„ต�†หœPกฃ๖�ใ†>dงโœ๐Gน|wจdŸ๕JiŽ�ฐ|๒6q~!ฮ>๘sŽn‘ฮๅ-\ๆ๛วใEฦ7�๕�…?�ฝ?ก˜ผ‚จ—ศHใQดu๕ิฉ1?บB]ํœ`นZฃŠษศฝoฑ*ฑ•ฆวด-q’`ฺƒd:+‘�ค.i”‡ฝBใญฃู…ฌสI~��].v5-W,ท5่(\|ฬฏrๅๆM๒,#ึว๛Sœ7TuK;Nฮฮน๗M&‘bRf่HszvŽ๗Žพ3`ฆ„า<ฅk;ฒผ ,s’$ฅœ_ก๊z–ง๑ูO–๋WŽH’0��ึ5ฮ…ฯ๗jฝfR”Eสnฝ"ห2๖ๆ3Œ๓ ร@^” }วํ79ปธ`>›rธ8เมฃ‡<:yŒณžzWq๏ม}�nร๙ูC฿ฃ1t}]GkŠH3/ f“ล”iŽ๋;ผทดร@ฌร Oมค(้‡p9U:ฦJ*6ป i1ก3=าZ&ำ ฦxšถazา8ล[K’e๔]K™AEฏc” ฦาด5ZJฒฌ`Wี4]Mว4�@�ดไYJQฮ่›-]ณ#/ฤIL]5lw[า,a>?d2™RW[<‰ํFฦASoPQNฉ@ผฒbย`z็ˆค 6ซฝ#”,w›q”ฏ1^ๅ�{†ถ&+Kl฿๑ฃmว7:รW?๕๎Dœ~|#๐tช:ฤƒ!R‚ณๅEถฑ–"‰้FkkำTa"ไCŒ๐boฦt:ฃˆE 64ผ๑{�‘_�๚Ÿp29โKฉ`ก42Nฆ'ฦ…ด7�>ฝ€ว‘ย๗ ๅ|Ÿ~Vฺ้|Aป�งQคY์ํณ[žกคย๚หsฮ!ฅ'*ฬฏ�ขjิ็žป๕5ญcfณ9m[…Cฌญ9ฺ? ทAฅ้๛8อ˜Lๆ ]วโ๐ปอVGศ4รสž�๚”ืor}ฏ$า’jทF  ฿ขฅๅp1g’8†๊;4Xำ „ฤ[ญฐBโผ ฃs้x๔�฿ฃ้,7>๑Wะ#j’๑€ฃ%|s๖ูKฏำ>yศ๚�wqƒฅํZบํผ%+ ฎ?{•�YNW5G˜ฮ&1ำฃบ~ �ิฌ.ZNชh2eฉc–ป-mUณน8ล4;Œ๓ˆ8eฒwˆ๔>Œิำ€gœ,๖)๓‚ธYำ๊ŒT–ป› ๗Z�้�๊วฏ�ยๆไ๔{�žฟ๘‹?็ท~ศ๒์ ณู<เ‡ŽกญQ8ส"ๆ๐pฮตkGผ�โณผ๖๒‹ผ๚๊'x๙ใ_ไฯ�_๘โ/๐™/|…7>๓ฎฟ๐<“ล /ƒvมVG๙ฬsศ8ฅ}๐>้tŠžดUƒ้ ๅlส�อ}๏\'U:ฯp}‡,งP๎ใDL4? ๏ฑQ Š)4[ผณdQส�เ ลโ yY ฑิ�Qž3Xวdพวb1ลฎž๐�“ tัํ_a/฿๑ _x•ฟ๕๗��ง�ป�W�ีอ�|‡''็<99็ญ7฿ไ‡฿�.‡‡]ฝ‚‰g^๚ฎง3�ใ4B*@8โDฃใเ�๖b์ด�Rอ ย6ƒฤ ๖˜๔6�Œ�rญ"กะ}‹1N๖R็Šbุ‹‡ห vฤQT6 Žมy”๐<||N‘Eดmฯฆฎq�@ส๊ฝ�ศญ—ฟฬตg_'เุื^€Rฤi‰า)"ž๋q‰Šร‹7�ใ &�ป&�o4B† ืี` ฆญฺšกnฉฮ๏S�๚4�๖.�๊!uตA(KถธB{�&บธB'“ฮn ่YฎNY์’•�่›฿เ฿�๚�‡ใ๙5&ลŒlพO7 4›%I“–๚ฆย;วtฅ‰[ญม,3ิะ๘$DY`ฝล"Cผhoh‡€ฤL#๖–c๐๔แm*�:Y๒็w๏๑pำpxๅ*ฏผ�?๛ฅŸๅน�ืƒ�SภมbNี4เIคƒ|ฬ๙บ†ๅู หำ'8cจ›jาuธ_:฿?&ŸฬHWธ๕์‹\ฝ๙ ืฎ_็๖อkHำ=Yคศ‹‚ฯฝ๒2ำรcฺบFศPƒง[ลฃ‘˜.$ื$YN6™ฯgDqŒ0Y,จซš“‡'์_9‰ํg,:Ž้›†กฎัQ„ํl�Lfa?zว#†SI”ฌ๖pนถฃภ@'~,ไ#3�ฉษ^๑PmpBเ‡฿Vˆ4E&)*ษึ็่"gw๗m|1ใเำŸgv็eค”ุz‡:�L�GฐeY~�‹�–ู~s�ฝ้*หป๖ฎฎA ‚๑ศG…4PHiฆก4้ˆhย"!Jก(<<๐hแmชปบซชหWeeeฅฯ๋๏q�๏ฝึา`,"#r’u+๓�ณฯY๋oพ๏๗9กBM”%dฃฆWŒ่;Cxp!qw>gPZJ๚ถ๓ิกlดฎๆ*๊ฒคฉK–ซ%�เ‚€ๅูR ฏ�?ๅอา๐๕Ÿ๙vทrVG๒›ฟ๙OH6žเŸ�_�วg zcˆ“„ฒฌhฺใเ์๘ฯ<๗<๙t๊ซaดพHฝEหแIG๋Y๗zงฝFึฎ/8g=X€'ฅiukฆน5v}๚ ‡sži.ึฏ๓฿ž’ธ5 CJocณึโ๋ผา�ƒ5@*?ๆ:›ืิu‡ณ†“YMคคŠ0๕‚�๔}ž�สoๅc7”ะ่t ฅ"d8F†?’Œฦจ Y#�#wƒืSธu`‰๏ภื้ฤB~gf*€ข\ทฤV ไไ*0ซCH.q๑เ{„ฃ+„้ฆ<"ูธฮะตTรˆ้๖UBูr�่&๙๔ีชใ?�ห� ฎซ8˜^๗žPS]\เใ#วปa าkฃ‘R0;9ฅ*Kโฤ[Gm�Y0ษRถF9‘้}q˜ฤค‘�๔œžไ9ว EUpใtฦig‰ฦ[\บ� /ผ�>�™ฯr้า>ib‡n}นดฐ� 7k/๘l6ใ่แCfง<ผw›“ฃTeAU7เz†ฆก๋ดิhjว๕'ฏ3�นย�ฮ”8Pค‰ฦต J๚ฯa�?F๒*๎฿นEค`ถ,Y,ๆิT •gW˜ฎ็bฑb’ลtรภ๙|IQึŸชซ-x˜•c๓ลœษุะQ่IpqD!ฃ<_ฟท5RB?  YฒทปรW.๓ลฯ†—?๓Y._นBถฝฯฌณ.4ฦ’ลQ๛ฉ—5๔mCYU4U…Rใ,G)EQuพP•‚$J0ฮะตu๏ี�ฺ3C $ดฦgใึv1)ฐ}ฯjน@กgzถw๖1ึ…!ƒฆmู��$ #ฒ8F้a0่0"ฯGŒวz๋WjฮZย(๔ศfแUึ˜ข,จ๋eฑขmZ๋0NPฌจ "–%่�ถผำ�บ˜3jพ๑นฯฑ}p †คIА‚a0ž„บฮ๔žญ*ใ‹!Q ฉ�ž$PXใใ^๋พงZใiหฆAKม8๓4น0Xc9>:ไฮG7ธฟ\aF›<HšฒไขjHต`#K!Œฮ'&Šย(๒๗ฦวegฃ)Mฑ๙x‚ึ!mSำKt"ƒศณ๎•BZƒ0=N…จฯ๏m}+ฯผ]C๊”อQย‹?’tย๙โย[vค@่ˆ ำ+GQฐ•พ๚�lŽŠbEFiเ/๏$ak\[&!ฮ4tu‹ณE>C�q่ซ�บ$ู�`)ฦ|๘จแี�˜wช5W๖ฏqr๏6ท฿y‹ญƒ}vฎ>ฑ&U๙3ฯญw r=Bๅฑ[xBย8!h›žrตไ๒๕ซc9๘ktณบธ`๖่!“ญM๚ี‚รท^ctๅ:}ฑ๒cYแซg!ืถ}SฏฃM=ฦ™�ำฏต๋˜Sฏ„ทžผฆ$n ๙๔๒ถk2[๛Œ๊ถ๖!J1,ฮฉ�#�ฟFว่H!ฃ”�า6_z™n1รษกํจƒˆฑั&่ั6ฝƒ[ววœ/HแจๆžaŸค ็G๗ษ'[hฅ9=;ฃm[’(bต8'Ušข๋yๅpฮ(ห8นธเึวฐ™iพ๙w—ษ๖ฟ�o�w๏�ฅhjย0dUึˆ5sนXขq<๑๔S4ญ๗+‹ตผ„(ํcd}‰ฟ\ฏฌ๕—3T่ƒj�นฟ=‹ูDŽ~฿�ธโVสซป…๐นผJ)tเ๋�๊ลวsŠตxQเ-+R ฝกjzB%XีizEทšbfo3T3ž��/DฑฟnXกำ=0%N&Xo ƒxM†{์๓�ฏhW„Wฬ‹ว@šว๏ „ท+ถsDƒ๒‚ฆก<#เtNs๑!๙ไ uuN[0.ภ5วศdrต`Ploํ0t5ณำ›ญเฝW_ๅญ�{�ื DB4ำ\œ!”b4�$ะŠl<&Žภ“ิ†ฆ!C๊ช"ษ2ด๒ำl:๕@%Q \[ก�เแ,ฯj:w๘ไ่˜๓^๐ิKŸใg~�ธ~�:[�;\ฺ฿๓]~ไEYe]QB8šฦw|หUA1[๐๐แ#ณSfg �€ิŠp๒เฌฅi:šฦg’omoฃ‚�๖looญญO’DKชบก๎�๎5Ž}n=B2[|�แ{=bv~มัแ!๎�ๆแร#Vห%g็3ฒPPT~*ƒPŒ’ˆq–ั;ษ๕K๛œ-Vด]CฌCฦฃ1uํ/ซพm่/Š ƒ`}แ;ด๖œ€ก๗)Xfๅ`†ฮ77 FiสsO?ษ—ฟ๔E~ๆ็พฮ‹Ÿ�"ปWฏSษ€ONฮน{rฦl6#ภ‘D1VŒGŠฆ.<�XJLืข”?ฃ—๓:ษึ1ก}ื‘„|ตZึ()=!qpCG>ูd<ั75q“ฆ9/"Raฌ! #"%u@”ไดึ ”ย๔=A‚u%+a่}๘‘”!,หี‚ข\!…๒I„kž‡u�บ5สฝ�KHษxบษi�๒๊๙œdqยWžyŽ_xŽxsวw�@]W”MOY๗๋้2žOQ�–ซ%ยAี4; ตฆญJฮ—+็…~ย'ศโˆ,I"ภมแ�;<ฌ[๔ฦื„%ŠฌŒc�^vึR• ’$๗ข=))—>Yฮ –<ฯฐvภ=ใ้tฝย(Y-gR3t>เihjย0%qA„๚ๆ็พ๐ญ, ๅc„ำท^$`,NXำ„{—Ÿ%M™WTๅื๖&|ๅ๙'ˆCIUHyˆQiถฏaจhWgิEํ๙ศC‡1Mนภ GWญXอLwถ';ผzณเฦ��6คฮqi๏ ฯฺn ชบ็ร�ˆP.=๙ A6BHY{ๅ๑ฺ‹ํ<๓ฺWิ�u—Sศ†ž�ซืpn ฏkฦ›S†ถc~rL€esg›๊ไ˜jvNพ‰พฎ8�๐mโั๘ำ�ทŸหโ๑…สซlMื|:ฮgmQ“า ํ�9-�!พ<พ<<๐`=‚ตพ PAไ��0$ศFLฟ� Œ…๖่>A’าี-R)‚3}F๔x"๎๗�uื-ื†�ืIว๚—Ž๔ฺœฏธ‘ฌื+€๕ฯอ�mหเzL? �Yด]GQ5œžฬ(ช!q ™—-ระ2ป�=ย$ใ้—Ž0L0อ9ถ_ภฐขo ภกƒฬ๋"‚‰ทบ=ถ ฎ฿“Rฏ=์สตํM ‰ืตธม+จ…๔ž3ฉDาญ2;นE�4tล!U=#N7pฦฐ:นIพ๕คw T%ำอ‚hยโ�.wnฝวปฏ�%]ใ…{ไใ ย๖่(aฒฑC ถ๋ศฆ›ญ้สยปDด +xBข$iŠ“‚ฆn่๊Šีl†’Š8I08๗—5Ÿ\๐ฮ{\ด=;—ฎ๓ณ?� ^~้E”pR4ส™ไy–ก…`ฐBIฌีbษ�Ÿp๋“[œ�็แ�;,ๆ็~5ฌษ{8PาตkAไ51I@žๅ$IDQUฌŠ%—ศฯฒ๎ญC+โ‘„Š4Š˜ฏjา๑ึšึืแ”๗#ท}ฯ|>็่ไ„ใรGœžp�ั!ณณ3Vซ%ว‡น�เ}ต`ตš3t=C?ฐ1 ‡D+ลลล�เTuYฤฑG๗=Rzุฬ0 �s-๐ก+@]UDaJี๚�๒4ฯxโ๊ežพ~ž}–g_x‘ฝkOะจ€๎q|~ฦx4bgg็ UำฐX,)หgฺพeตZ…‰“�|ฝ๋ทฮx=kฺš$อฦDQˆ,‚v/ตึ28K�ถฤq‚šฆF†!หฒภY็ืซึ1X‡yฌๆถ…O็Jา ่ @Iํ;wc M’$xFxจฐRaญDšŸฬ็ผใC~แน็๙ฺWพ„dเ#dหสwz P4-Cืฌฺžอ้„ถk(ช#aœ0Oคๆbฑโh^ฐณฝๅ&ยดไOป4มด=oฝฯํ~ "ฎเ#kC;)R34%ณลœv0„ค) Bญษ'[^�czt”ขŒมเณัฅsdID:�\Oใฃอโ้B*๚a๐J�Ÿ}๊๊ทšลFEดๅŠฆ)2 ฺz ึD).ˆqฒๅ์ไcฎ์Œx๎าŽu†บ*ฺ ๋ MCšล๔สถ(a�Žบ๎่ญ#DะKฌ>jภ:๒ญd”๓๖Cษัฬะี [›;�ม†I>%Ÿn2ด๏�่‡\�ปร๎�>ใƒห๋ŒU/†p๎oลฎวฆ�ภW~—็qB6ู ›LI'S’ัˆษๆ&—จ.ฮY?$™LYŸSฯ.Pa่ำh‚cz‚8๖๕ฺš`บf€ๆ/…วข^p'•B<�y๛>ฯ{žํฺพ;ทŽณ4=2 Q๙=ู๔โด�’ํ์aš S.ฐๅ =šโฌa�๚+๋ˆะˆลผยจˆ*ส๘๑‡pqvŠา้hไฒี’tkญฝKฬNฐ}Oำถ4}หโ๔ษxƒUำ%lOržžคผ˜l^zตsภP>โ�{งผ๕ษ_�์K�๊ฏ}“ปŽธw๏>uUQี-]g˜อœœ๒โ /๒๔3OQ�เvฅ}qำ ฦฎฃฏ}Xภ`ผ7�[��๘๕๛๔V_;๘ฬZ}Ž๓BBฑ.ุใำŠœ๓EN๘ื฿‘KํŸ k"š1ึ[zŒcถจh�Žถท>)ซ๗qขฑฌ™}�็<�๒/ฐw๕:ZJp-ข;C_ฦ๏9•ฉวจฎ‰†ึŸ๑mํงถทu-ธ.@๑ึ1ฉq}…3 *�้วu8‹ต C[ำ฿„๘วo)I&๛HS-Žฃ˜�ง(สž�Zv๖ž!Jr�~‡ทo2?Œ’m"& M]ฦ่ะ์qS-.่›†พฎqR … ^.ฝ*ื๘L๋nู65ูxรwxึrใ๘œ7.xดj0:แ๓_�2ฟ๐๓?ฯหŸ�ใ๑ˆ0ˆย'ฎ\๖จ1hญhฺ-ฆoธ๛ษ->�๐Cn�๚˜ณ“บถ]?๏f้ฤlหาOท„]ๅ:|#หำ5'�1MhชัทไyNีY๊ึ ์โ0 อ–EํญbR ฅY]xf ~Diฏ›0พH/V ๆหซชโ๔�ŒGGGผ๗แM๎�นร�{๘๘ึGผ๛แ N=ไ��๛œอfลŠพk(ฏ๊žŒง่ ๔บ0ค๋Zœ๓Žญ4Bxฒก0ฝ*Aืต4u…s–4˜d1/<๗,Ÿ๛าW8ฎ�๛่Cฎ๏์j…qฮ ๊„๐ชlxE…ihIšŽiฺ) ‰cOsำค ญ+๊ฦฃตา>๑ฌ๕{o๋@:Oc์ืxไ0อ‘Aภlน๔…ก%Š"ย(ลYKQ๘ฦ/าIFm�PWuืัƒภ1๕เรโ(ฦY็่ โฦ๙)?ผs›ฯ=๛ฟ�kฟ†Mrˆc&ใ Y6ขi{'๋1พ•’ขฌฑฦฒ1สI"VuC’ฦŒG)‰ ฝฅQjอ(ใŒ!Kc๒p}!_\ะท=G๎๐ึkฏp1�็z–ฒ'a8K฿wDJ"ฌฅ—!JiŸ g&[ป$๙˜พฉฝฎ ‡ŽSย0"}aoูdก$ZJT่cZƒ$GU� žN๕ทŠถC‰uFsท"ห6X-.‡Q้ๆ.หvมัแv2อ๓Ww uDQ•๔mI$ฃQฬt“&ำโ๚ž ฮฐดํ€r†X)‚(&LGa@˜คไ[ :็•V�ฝššภ๘ฏํ=?xผฑ‰ c�ฺซญ“œ[~ภแ‡B_s้™็ัIฒพ-R{`เ๑žBเึ^n฿•๛#^�ฟIญ‰๒‘รคa์#หณSlฝbผ@y๔€๎๐A:F&ูงE‚]ใPEเีŠBˆOำอ‹ิ|aแEp๘ขฟƒึป(๐๒วฟA๘1Wš#ฃg กt่}Tœœ๐—ืโญืiŠ ›ŒภIBซšw๎�ลG2š๚L๑b‰RV๓ ฺฆฆnjŠ๙ๅjŒb–3ฯRŽ?z„sฤCM6๔Wža.แฺืกโ“๗_eP17๓ๅŸใ�ฃˆNfEI;ข(bck—/�ฬฯ๓๋๗Wึ`่๏6f ้โศO{๚ฮ_’~�ํว์BH฿ ญ,3xB›13XXwฦ๘n]OU๒๑Eํ‹นวำj๛้บย๏น}>ท›นu�ป”‚ถ˜-kโHsr6#P’ฮ?™Z�C,฿โ…ฏ�&“„Šฑอ!vq“p�ษฦuฐ 2ฺEฅปพ€ฐฮ_0๋‚๒qq)X'จญ <Œม ฯฦF๔ˆ0Eˆ๔อ kdฐAq๔:n ฤ)n8E…เ4q–‰˜ฏ,B…l๎\รYว'7_ๅงo�bํKวdœ#๔ญv6ล !`่:ค ฑƒ‘ํ๛žlบIWธม0��งฏ*ฺถ!PšฆX0ฺ�†lฬ๑ฦ�cฮ{I2�เW~ๅ›|ๅซ_ๅฅ—_$ฎ์ํ1ฮGJz€G�ะ4�โfญแ๘ั#n|๐ฏฟ�S�|็]ๆห%BHํ#'=�GmJา6-ฝ๑N‘aอhษ'dyN%g‰bMk$ณ า,Gช%vญ๒๏†i;hข็'ิe๑ฉv!"ข0$ =ฆ๋ฏgzฅIณœัh„šถcนชh๊š>นหƒC_ไพ๛ฮป|p๓&�๘€7฿|“�Ÿ�ไ�ฝ[�ฟs‹ฃร�\XgOKฑ.”Œa:VหZ$k๘ิ`Œฯ_ว„ภๅƒ}~๎k?หซ๏ผว๒๔˜หำ v0D: KSฉBิš\–†gฬ`้†l๏…ธยSฤFฃ1ฦ”Eƒ1wW h๛Ž,อ bฏฒUˆิš$MฦdYN฿ $qLวธวพยโฆ๏ค`4‚๓Iqฦ๔UKœๆฤูึ ค๔๋-ญฺ#4ž๐สG`เ�๚฿c๋๒Uฒษyš’ญัฉึZ’4!N2ŽฮgDก๖B9ฦ HIืถt�@ž%ฤ‘ขํ{Veหt<%K�:<�]าT q’๐ั›opgถคฺฟฮ3n RŠ4‰ึ‚๋Q>ฆํ;ย(b'๕šฆ๋ˆณ][ั๖ญOอ3g๗wC฿ยzชัถุ้�Ogง'$ู”พ)้‡Ž( พ๘ไตoeiN,าPc๑]eว„ฃ]ยษ˜Uq„ฒ+>๛ไ%6Rๅ_€ภ‘†Š,‹ˆ#ลๆHGk๏AŽ๓kผš[9ƒRำ7๔ย1ฺ�# %P†Y ?ธQp๛ดgc4fค5๙hDFไ‚8%Is.ฮฑ˜Ÿา�–าvฌบž๗�x‹โแ].?๕ู�๗KZ/ ๒d.�แ[7r๋ฑ้ใ;�๏ฅ˜ฎรš�ผƒ€ลัํลRK†ู9Xวษ�OฐGทI๗ฏาwฆฉแฉ/�:a’3๔ ฎz�‘์๚�e7 “Ÿ�Xผ็"๐"<๑XŒ็ซ?"{��nha† l_c‡ำญ๓]lป ]f—(W็Hฅะ d)ยด^กฏ2–UAUU์๎?‹ํ—|๘๖_๐มง\ษ'จฎD}Ubบ7 „bh;์0e๙z’$P‘'Cั๗~็ญuQdI1[�œ—ผ๒�G�_V\{๊yพ๖3?ร—พ�ž�9ฆำฑW๙;‡ฑ…cU”Ms’“๓3๎�นล_็ฏ๙๎wฟห{7nฑl ;��dyFšฦlo๏Ea่…ZQ‘ฅฉฯOึ^ฌๆ#’~0$‘& โ(Bk:บบ" Eนฤ =ูxB5๘rบ,*๊ถฃAจภ ลลlAžศณฤ_:๋˜ฑn�๏๚=ง^[�๔…๒็Ji,ญ4Y–า๗=2๖๛ำบiYิ5gณ9oพ๓>?๘๑Oxํทx๏ƒ๗๙เร๗๙่ๆMn�บษ้๑ัฺ2ๆ)xZ}๊”$)R+คDqF’&lom •ๆ๛ฏ|Ÿญ$# |$ฆ�…ฏƒ-]๋y็ฆ๏QADื6ณF;G'่๕™Eา๙qทP:ะ~ยฺค๖๗B…˜ฎล�J~๊งค$PŠ~่่zKUิUR`”ซหbA? QŒuพ๋kcว„ยGฉ๊dฤrฮkwnำtŽo�์ืy๚ฅ—ัaฐvาu๋ตm?ะด=EYัทIัv-รZ#ฅค า,#”šชiˆuภ๖ๆ&q…a…šq“hฯH8บw—w฿~›ฃlสvšrU๙๖,p~>K=/\n า0&MX%‹ีŠพ.(ฯd7†0ะ ึ7พXŒHวcสู}?็cย8!ฬ'$๊‹—/}+Q5๘nีvคใmdqQ\ฐ\�gฌ~๖sฯ๒ไม”ๅช;k…=yกiฐmt>ฅฅ^ฮ้ป†ถํ‘ึ2t=ฮX๚พล๖5Yาu๏>จyํพโแIม๎(gka๊ชd:ูคw‚ถ(ะA@ี 4ฦq1;งl:๔hBQVlNฦ�ภ›฿๛.›;ป<�ยYฺชD PมZ| ื–ข5๒ิ�Zซ”…๗;k‘Rฤ�…N77)p๖ษMw?bห.IขbตBฅ9้ฦŽฏTปค๐้>๋ญ3๘L^ฉฌึ6ด;ด~" nh=,฿Z�ะำ-g^Q/Cนย/„3ƒ‡%จ๑j4FDมdสdcฤู๙ŒWoŸp๋ฮCค5Hใษ—/ฏ…A`Yœ2 †(Ž˜lํ!ค้†๋}�0ู฿˜ฒชJ^9š๓มฒec{ŸK—)๊wR›”ล๒ูรY฿แม[ผ๕ๆ�ป๕!rX๕็\��˜ท?zฤ๏~ฤkฏฝม;oผฮGผฯร{ท๙่ฦ �g6[pxxDS•8/N้Œ฿o๗kgƒu~wๆŒ+๋ณƒ�ฎง�สย฿Yc�ฯy2�ใฒ้qU; �๏ย{‡ม UีqพจIใ€ณำ สบ#K"Ž/–๋I@‹9�66.ณ๓๔<๖QvHึ6-Q:F†SœJ2@ชu|mเ-a�๕›Y๏X„๒ผ๔มวu ญ}ึฑ๐๑}y๊3‚ใM†�r~๋ฏHท?CนธG/”ฝ@c’0ำถ+uตไแทh†ˆซืฟˆmN๙�_�G†&ใ๊๖ฮz[^ลˆตs#L�”+Jผf$ะHแลT@jŒ๕ะ–บmY –›Gงผr๓6‡ๅs_๙Y~๑ฟศ็?�Eฎ]{‚้„ฆฉ8สช""6ท6ฉ�Ž8๖J๖๓“G|�{฿แoพ� Gว'$iฮมต๋loN)็ž™๏,CืฒXฬIฒg,C�R.g\ไ$i>%ฺฺูbg:กชJ์ะ“„šม๔ฤYŽ—“ ฒ|Lืy[�ๆt๊ฯฌ=ถ�—๋ฃ*c Cน@J0ึwž}๏Œฒ,ร ฦc^ฃˆมZ‚ @ h›Šฎฉ|XˆX?wแˆยˆษ”|2๖#๙u<จ’šัd“4หq" l;Žฮfœ/�ฝ๗€7฿z“w?xปw๏๒่�mn}�‹ลŒกk™ฯฮ้› !$›ŒGคŒF9?}๓uขกgwœSKz็70ฮา๔-]฿Sืํ:4$`œeŒG#‡๗�‹5I8ด๔]ๅ` ฮม0th)(๋†ช๖1บ๗ฮ"VU้ง]X$–4อ˜/ดลŠ$މา}฿ำถ5uoษ๒1ถo�๚2ิ>dลฏ z็xPญxๅ๖]œN๙฿๘->๛…ฯ!•ขw–ก|‘% o;–U‹ CสฆวZะZyZœาคกข:๚ฤณ๓“œq–P7R๘&T๋ภ�ฯฬ@ค5Qเฃ%ํjล�๏ผอวณ๓`ฤีzI`�Dฤ"ฉ๊š�๘>แR8า้“œธฎe2๛BHAž‰ณ 3 Œง›>†Vk๒อ-D๙BzR(ใ”0N)ส๕ตk๛฿ถง๋:‚d„SŽฯ9œ{[Olณ‘jชบ%‹‚@0J$ฺ6ธกeh*ชๅ9ี�œถ๖l๐ฆฉฉWsฏ�6ฦaสxบม๑iษO๎�y8เ)Iฟบ`ฒนK_ฏˆ’ CฌCถv๖I'[�ซุVิ"คฒ0ŠCŸŠฦYฮรฃc^๛๋ฟby|ฬ๖ฅ}า,Chละถฐถ ๙85ฬ{์|๋๋+fฉ=.Pi�ฒฮข“”๒์˜{ฏ�ํqยjQa๚…!ฟ๚ C]ขโhmล๒ย[หl๏q‚^ฌๆ�R*pฦซำ‡ม�c„`จV!i็g˜bŽm†bN_.ฺ่๋�Zœ$#M@ไc”3ผ๓ฦ{�่อ› Hสูนท*ฤก าิSฝBอxc‹ี๙)“ฝK”ล‚ฎmaLล>n2ฮะคZ-๘›G3f„จnลฯ�๊ฏฃฃˆ๏�เœ]ฬฌไข’ %ห‡วK=:ๅ7฿ใงoผส[7x็ๆm�x๗=^๛mฑฤ งK๊ชฤXรูู9=b~qส๙๑!ซู1ซู)‹‹ŸCŸฤจ@ำด-C7เp”M๏m=ฮั๕ึ,~raฟฟt@ื๖€}ฺญme๗�f๐;๏มX†�ฒชฒ,ขmZO—Œฒ˜ฃณ%EๅmDฎพ‡พx“'ฟ๐w™๎]#p5Aบฐ็Ng{จhก#D0๒๏ฅะd `-’<ๆš[kN�ะ!‚ฑ>$�0ะ7+๚๚CJ฿[ฮo�)2:€a†Jv@"ญ๑ฤฟ•ธ~…้:ข๑'?ภบ'ž๙ M9็/��OPV1MF mEEd›[4ล’ีb้fmU๕jฦ|6งo;ค๖…oฝZะ x๓�1o><ฃOฆผ�•Ÿ็�๎?โห_�;��Œ๒�w|k!‘’ม๘๗…h%๙๘ฃ๗๘แพหฟ��‘�2��โาฅ+Lฆ=‹ู9Eีข” iบฮ‹ข๊ๅา ะŒลฉ˜|บหณO?หgžธฬหืฏฐ—Eผ�ฤ5žx๒g EIจ ๖(&’@KŠrI–D\ฝv8 ™NฦžรฎVhชึ0%ฌfgะ5H . �,อz ิึkฎพ๗' ็จŠ‚ีชค๋{Fฃ1Iœ"ค"I}ถถs>บ๋jฏัAxgŽตไiฤๆdฬ`z๒ด-}]’Nwhซย:kœฌs)J๚๔ณฎํะqN˜ฐฦ‡Dฉ_y�™o!ภ Hฒ 0œ–sด์ูศ$ฯ^ฺ!ึ>๋U+AJ672B ก๔่Kื๗ุฎงoiฬคU„$ QQr\I^ฟgXนMd�py๏™–(ฒป{@gำาTi–SVs)8?;eูถถ๖˜ฆ)n๐ข8'ฌสย3jฑ|๘ฺ๙ษ๗พO %�;;X3P,~/พ!yผ๛ฦญEDโฟb-…Zซ„…๗ๆ&ำMT5ƒ0$PŽธYuQ6๖สฒBีˆุ ฯ ฟk•ส๏–๚n=ฮ— u B $ุถฃ9=Cด=ฎ*ฉ๎� =}H??๕]็c<โzผ$นŒ๔้dฬล้๑๏ฟอ+๙ืdใํjNณZ0ูุfu~ยฦม5ย4แ๐ึtƒงษห O}“‚พ๕Vฎฮ TuCืT8ำำ,็ผ�่”™ฮyแฉgxp๏ฯ=}ภ���๔�›ผ��๛ลญœส([RD”2XF$ูทถYไIถ'OSฆใœPK๒4๖~m“QJ†X fXฬf�บu“{๗๎Q+๓%]๏�ขm๋QŒXG�y๘JUu8็ŒรYึ:Ÿkฌ”๚t<-�ร๖ข1๋/o ƒcUwฤฑ3Ÿ.ษ�o5ฝ#�Aย�วlฦ Wฟ๘�ฅlV�ƒญAฅ~Eขวศx{MR๓)wผ�b๖?ฃxผฮ^ิˆาศ ๑ใ6เLƒT‚ ž`b๙่ฦ{_๐1๓*!™>ฯโ๔#‚hƒ~h}jU}ม์ึ_ขรŒ้� ,gง๒า็•๗฿๘!ฏ�่ฟ W™Œ�{ิ9šbIน\b€@Dก"c0†ฎnpR“ฆ1๙d …ใึษ?yxFŽ๘อ฿๚]�แ?๘|๙๓Ÿg{sJ๘]ฒg3ชชใั˜$I(Šoผ๖ ๕Wฦ�ง?ๆๆ�L76ู��e:๑~๚~ะ๋Ž#�Q%Mำ ƒ˜ฮ(ฆ[;<{๕Ÿ๎^~๒2Wฆ#a ”ค7–ํqฦ8Šธy็B ๒Q†’a่}4๊`‹-=3ขk[ชช"I"6วA ฉ๋ถํ)W โ(ฆ5gJ{>zฐ†ิ(้5>AtกpฤZก…รš�6pำT๔MI C฿๙œงู9มlvŽuŽ,Šˆฃˆn่บ– ˆย€$ษศFc&›4!ŒRz‹ๅŠ;w๐สฤ^๙w๎�แั�{<ทณอ$KRา–v๐Zช*�LยZดT„ug็งTUEฟผ8็ˆcฉล‚4ษู��aะh`4ณนตƒ3†๙j รคข\-๏รn๛0๑ึฝีrมdบAว˜๕9�๕ฝ ฑ-VGธ(ๆงณ9๏/ >๓ฤs��_�&ฯ<๗ F๘uo(/บs–ฎ๋Nเgˆฃˆ‹๙ฐtmใ™๙Gœ>ผImล์ฉ’้&ก–,สšjฮ‘ฦ)O์‘%~lฎฅ`๙่>�๚น�;๔h‹'›ยำิฤJdFHR%‰]K[W>Rน,ฉฺ-‘’,ซืึไMวjvB�TิuKGLว#�0x+_‘onC_ำ5 A2B}ํฺมท4–ัx“๓ีซพ`š)ฎ๎Žy๖ส.ณ๓3-‰“˜8(้Pยขค%Œ$’ิ‹9}SM7dˆ|ดŠB-aฌ้œเ๕;o=}mร8ŠูฉซยwงRqqzŸๅ�‚EีP6 ํ`=ผิŠอMะŠ‹U…Qยšฒ๔T4c@ikธ๙ๆ�|๒ฮ;aH" ทn „๏€ƒ4๗ฌฺ๕eํwๆ๋Q�`๕ๆ์ึG\ผ� \‚จlDST๔ณQ %�ขEห‰FŒ5CUz_๘Z6t-}]|ฺu›ฆฆ9>Fด๕O่�a8?eu๒E_ฎh[_0๔่4'šl#ฃ˜8ห‘aศk�ๅฯ๘ใ�็�‹{ผG>สYอ็ฬNŽงQšb Xœr>›S,ๆJะ6จ bบ{@งด๕Š(๛ฑฝ3ไฃ ฺ ๅฦฒe<ูไัั#ยzNิ-xแ™็๙•ฟ๗;Tกฌ[ŽŽ99:Fh๊’ถฉนr๕2IšceB�Y‚(%:๋…]ืฐ,kๆ‹%}็๗dวะ๗ด]O]•~๗�vฌ–+ฮN9=zภ๑ษ1ถ_Sค"ัี—๙Cิญ)ฝ๖ŒZใw•Bเ-+xW@ื๕ใ๊ฦzโPาถ=ว's/4iVUว(‹,ทแ๎ณ{ๅณ์=� บโ„กx„3vจผนFEธ`„ 2oe“�๗/ึ๔ภว2๐ยฏg[:Ztฮ๖ุฎ@ลc„Œh—wษw_Dciส ‚๑3tห[ฬ.เlG์ะwๅูGค“}๒ญkแ๋หๅ ๙|๛��Ž๙แ v๕ำอmtจฉ3„ }Xฐ{ๅ ฐ–8๖ลh โ4E๋ˆ>ฮ๘�ปpฏ…ฯ|ๅg๙฿๚mž๚)’Hcœท�y•�zc%ฝ.ฯ2‚@๑ฦภ๏��฿็/�๊oธ{xRฑฝฝอ�ม%/๒ด^�฿๗ƒ™-]ใก๙hƒซWฎ๑์ีKผpํ*ืง#žฺžp0IะRRu้�4&ชฮะ –Qยฦ(็�ูท๎šปฎC‘ฯ�6=ซฒaUตŒำ„t:aภง^%qH*ฒิSด–‹%๛;{ผ|ๅ€๑hฬๅญ ฎN'\ูšpmwŸ$ห˜ไพร‚ะ_ˆ8Šบฆชœu4�เQณยQw-บ~m‘๒^k3xŒm คทšU…ทU!Rz�ท"„„,Iโ„(ิlL&ฺ๏ ฅ 8<:ใ๕7฿เ K๙�๕+8`vqŽŽา5"[z*bS‚sdqยhcƒ,Iฉ฿yO'St”`์ฐNYT( ižกeภbนฤ9�~ฑึา=A฿uH ฟk^ญ–4UลjvB� ~ส)…g$iF(}lm6žฆำ้6B8Š…P�๔ไ!Ÿœฯyv�*ฟ๘ลฯฑ{�)ข$!ŠC�uฺฆคm;†�0ุข\จ€ถ๋จึ!(ฮ �PPฮO).NQ้”�๋ฯ‘ฤ‰w98ห$‰ุ฿�e2ŠุศฃuWŸ๐เ๖M�์฿แฃ3D6ๅZ_ฑี”า4~๔?้ฅ(Kคณฤk\ํษูฅUH{ำ)�{4ล’ญ=โ(๔โมg#ชญKโ$f็ฺ3 ฦกฃgl฿“llSKิ—๗7พฅโGซ[ฑ•วlfšƒq†–ฌฅ�q( …ƒพ ”แ๚ๅงgิmMUzR;@”fดซa๒p^๑“ป๏=่ฑ.ภิ ฆaศ$3�พDนš(๏�- ‚๑้x“4Sด2LqึP5IšPท>PDXร$KJ2ูุ&อ3ฺฒ"Ÿl0Ÿอ๙๑+ฏฒX\y๊Il�ฐ8:ไ์ฃ๗น๕สwะ้˜ัฮZxค<šผ๏ธon�๙๑ษ�}ฤ๙}˜ฯhปญC�ใชึแHPฃฐ0P0ด+1–vv†ํ๚ูั:LWSŸŸำžŸR฿พม๐่๖๘อแ๊๙1AžxaS!ยdˆ0B%:ฮˆำŒ{7n๐ํ�ฯy๕?�gfg' [{—|}ฒ{ๅ*[—ฏ14+„ฑดeษฦ๖.q:"ฮF~w…EG‰Ÿ 8มูฎ B๒Mnœ/๘เ๖mvาˆฟ๛โำ<•E๔qฮ+ฏ�€็ž~†ฟ๓Kฟฤฏ๓—๙น_๘:ฯฝ๐2aq�้g๘�>OืTœ_ฬะส‹ˆำั4-u]‘eนฟขฌaoฬsฌตd๙hฝณ๖โ?�ฝ6&’$fhฮOŽ9;พฯษแŒqlํlcOR‚@า †eQฃ•@kOๆซ๋†มทf4�@� >วธ้>�Oฯ g^ Z5<8>gœง8Mต‚“๏“u_๘ญ�“mm Eƒ0%๑hฅ ศv ณ-คZ‡Mศuh‰yฬXw๐x พžYำ๛•k]†๊ฉ@ำ็ศhŠVะืs:& ๅ-š†พDธž|zพ:ฆ8ปมd๗s€#]ฦต+๎๔S�ป๐แ�฿&iZžzโsLถ6จ–Kœตl|ส๖ฯฦcooZ-ˆGSp†�ž�ีปขw.๓�ั?แื~้—�zCyq`ื๙h฿พ๗)„G ธ๕ั�แ๚�ร›ฃS฿i\บDค[�)XญVหn�! ฿?_��แ…'ฎ๒ยม/์L™hวกมUญq4uCˆ๑ใ`๋(สสำฮ๚%เฺฅKH%๙๘ม!nmTZ2žl"dwg“ษ$งm:โ8โ‰K๛ไkฅvีด4MEžฅ4Mว้ษ1ป›[\šๆไZ{๚�xสึ8็สึWฒ˜Ÿธฦๅ —าˆƒอ .ํ์pmg‡i–ฑต1a”ฦLวSF๙€ัxB?ข0!x,lด‹ฅจ*†ฎรเผอAž%>ญญ*iฺึ�ฌยk ซีŠ~่ั(๓W76๙า3O)็]2ภe�0_.IŸ+.ฅยI:คช๊ต๗:`k{ „ิMC]๘ŽZ๊ภ';žŸฒฌJฺถฅจK„Rยใข…Xฉศำ”Pj0NฃƒgDQ„๚–�iฦiB–ฆTฝOž้บญ–Uอ›๎s^๕�ผq'$]ำข’˜nตไฦป๏ณXฌบŠfvF{rŸ�๛฿็มO^%์kย$E%X8๙ไ&?�w�‚�์f8?$j๒ั ศ0๔p๛ฆง3Žถฏpu‰มขƒ”พฌฐm‹ฉฝษ฿ฬ \10,*†U…yxŒ{xŸๅญ๛ฌ>๙€๚๔๕ฒ ฏ—ิu‹œlขFtœๆc’อ=’้6u�๓�~ฤw�๗ธ๗แ๛l์_ขijโ8b็เูhBS•ฌ–KL฿yะ�๚ร)ํm uA฿๚ศG็,C[ำๅโ‚ฆiqบกe4™ฒๅZพzi“ห๛{ผ�๐‚cซž๗?�xใืน{๓}h็ŒcศTฯป๊๙!‹“Oะ๑ญ#บถ~,ฝภฌiyQb‘Œฯ�Œๅ๚O18ฟ8#Žื๑€ร@jคƒ0\ณใทUฬg3šbฮลู��;!)ซvฝ๓๖P–บ๑ศุnp”UK฿ชบรG8ลชข๎,๓’ลฒ ๋:.–�ะถฆคk–ศี�่ใWy๎—�ท์^{;ิฎย->@ว *ู๒6“๔x�ฌต๕ตB ด๖#vๅa>พื๗w H„Š=ว‚t5ฮtD“งY฿ฤ‘M/#บc’ัuยxL3๛†๙ฮ‹8ืฎา\�แํืศk?}‡ภฎุ‰ศโJ ส๙ D$Iๆื:๋P‰jต ท=น๊{^ป�€ปตใ—~ํ7๙‡ฟ๓;์on ฐ่ภำ๎ํWFBx์ๆ`œg:_œ๒ํ?๚�อ๏�7?นหhบฝ†šhโ0FMUrrxŸbนข๋Z’ โ`wŸง.๏๓๒ฅ=ฎS2;`š†e�ำA(z'YีB สฒค๋ ƒP4ญ`uฮŠ8๑]ฬมๆD<8b+Mู�˜r0suw‹ƒ้„ซ[Sฎ์lsusยsป[\฿ูเๅ๋Wุู�˜kEžไ„aภ|นข,J‡ไ“)eูprvŽตŽช*9;=็๐ัCNฮŽ่{G’ๅuฏฟ�"ำ,ลด-ฃ-’(ฆฌ*FiHงX๋จ^ฑR1_ฎXU%i1gTuGQ.Iยํ-ŸE %Zy;ึฏปV- Ž"ข0็ ;ป‹๚Ÿdhื™ุC[ใค๖ยYcY…ทv5ถํhปŽำกใญใC.:ร/|๙gx้ษkl์n2ะaH{์ทA!ฅฆi;:ำ1ฮt‹ชล อEีก…๐ยฯว„QŒ–ถ,P:$สงB…๔C‹๘฿�ฝ_uณbN@ฯ$xแาiš4–>IJ าภWนฑ๖Š่๙ษ)ํ`ก‡ฆ\"l์ฦ!”szกธทิผv฿†)ขoว›“mšฎfy~ศxcบ.ั"ฮ6Xฅฯ๕UŠซ—ฎpv๔LOซcZ็๗ฆ๏LO�[FYŠ้;’4E AQทŒฒ hสถ๓r|แiKลrAJG2�ไฺSฯ๑�หฯq�๊๗ั|y[ฒ�*ว…ๅ๘bลก1,/2FCˆ#&ฃP:ค™ฯ่ญ ส& mOพณO4ฝŽpŒ$J& }E}~แว<gŸ�%์ig(�{ดmi/h๛‘l=๛4มมeฯ(ฟ๒,ษt‹t{e�๘ษy็oพร๙๙œ'KS�^แญqŠฆXฌJžy๎9ž|๖Eโั”8Ž ด ฎZโ$D G฿;บม0ลkตBI฿นU‹VŠ~ฐ,fศGuำ"d‡นx่�l>๙ซ<�ณฟีd8Eš�๑kค—พŠ–+Bิ๘)„๒l|!@> สSเsํ*ํ` "E”ๆX%ˆใ-$Cฝ@aฑม„zgฺลC็gvDำK˜t›ฆ๕้fฃ4&๐ฐ9"-ะาR•YฐฟณM†DQB_ี|๗อ7๙รฟ�M?0สงlด-ปž��ฆ๊gญ#0ฌ9#JKBฺy๖H'^ฬูศsะŠzqม8๖ฺ&OA1šn"„@+‰p์@฿5$INš็kัษˆ IX- C฿ ~๗ซฯ+—5›‰โ‰1BคtDุพ�ช5ˆd0๕’j~ASิt=h%ฑBjC๚Š�์โ‚76�ธˆƒi ำัฮxแ‚6�#หว C<บGืw�˜ŽฑCG�4ิ"`ู Xb%ŒB)Y–~tฤš\fX"ษPBFBH2e‰ด" BBฅˆข€Yำs๋๖}ส“Cž%Xr�า6Ttผล�ฮ-nU-ู๖."JHท๗H"Ž"ฒ๑a Nไ“-'I๗.!TJqฑ Y-tฦ๊ั ๓Oัฏp…ภนQจๅCpA5Xโq‚ˆ ู’์๏lํเT@ดy‰ญ>ฯ@ภอ7฿ไO�ีฟไG�G๔mG(†ช )Kp~฿ำU%uQ ย˜r9g{็[;พ*ฒั˜บ๒ˆิ|2%Š2’‘ฺJณs๙ œRค๖Bg‰วnœ\๐ฝ๎2Ž฿๘ูฏQึ… I๋‡ณžขUTFcuฮฒhhŒ๗ภ*"‘h%ึฑƒ–( 8ฟ˜qrrฦc฿ถpใ๖]f…�‹ดdscJQึ”uƒ ‹b=๒ฎ(ซš( h�-=�ัฃG�๘๐C—/_กจ}ภD๙ไ8๋Iฌม๙ฮฒ๏{–Eห๑ษŒีชB p†๓ู‚ * Nq๙ณ�˜'ฟ๔[<�ณ��ฬฺกฝ0JSTผ้พั5„Šผ%(๔“%กื๑ก๋q๚ง๛n8‹['t๙\y๋าฌภt5H˜ะ๕ฉง4oQ”5่1�๊tฒEYœ d‚ J d;Ÿล+ยt—$฿แต๏�ฏ�๘}๖พDXy›g–ฆค;ไ›[ธถaจ œ5$๙”ัdย๙ฒเ;๏~ฤƒ~แฟยo�7ŸQšะ๗ฦ๚ษE?๔๋"ห[๒’$EIม_�ๅŸ๒/�ี�›๏�๐'tƒc<ู M3ฦ“)qะ4 ซีŠกุ๋฿ฺๅ /พศำ—๗น4ษน4สุˆB™ŽฐqŽ’Q๊?๛uoฝ๕K+คhc”ฆํ-ฑ–Dสณ!zg=]ฐ,„ขnํรa67ทฐ2เ๘๔ๅ‘๒d/c,ณลาgZ')Yš๐•ฯ %]฿ใ„$ึฃ”G‡จ๊†�้ษงา>”B8Kzข™ํ[X“ฯp†ฒ้h๚ม�Gำ;ๆuCัฮ๊๓ช็hพโ|Qฐ "เ�๙‚eำ0ฅJฑณณรๆฦ”ํqฮ๖ๆ—vท™Žs^x๊Iถ6ฆ�ไตŸ๘qฑ€~qม4 ƒใ๐ † „ก#ะ๚S \šฅdฃ1ษขQ–u$ฉ๗Ž['ผ`* ฐkHUณfฦg‰! ฃˆ$๑�o3๊บขํ ]ื"q:B+้Zฒ$ MS„๔ญฅา:BIo๏›l๎r‚ไ{๗nSV%_�สืx้ฉ๋จ Rญ‹๘ BKมแ?ไ๐ใท๘๐๏ำ#้ˆ˜~ฤr~Š้{ชๅ‚บXq๑่.ูt›ญฦYDี4tร@*$~ถ=Iฺุ˜ขe€ํZ๎�นห๏�ี_๓ืo�šŽKษˆQ฿jEmeำy+ก๓I‚n่ัยณ=ชึ3I„TŒใ”fต\’‡B*vท6=ย\…dIDY,ภะ ”ต็d๘5œคm*ชbAY–ิeมโโ„ฆX ��g๖พ5ษ4“<$าjแ?4ƒšvAำ˜ถง˜‚Sw4รศˆHY–มJฺfมฃ“ ~pgเจ�&Šธ|๙I๒$๖โตuฉ—ƒ๓ัw่”๓ฒ๕I_beL0�ฆsเ†ŽIำ#HŒณŒ0M๒ั˜พ7 Cย|„Ž�Y๒,cHฺฆม9C–ศา„ช้ศอ4”ฤd/ษh…f/2d'wั}ฯnqดชจฦ�์๎ํฃึะ๘�เ2ƒฦไW‘ู]gศทw ‚˜(2Dู‰ŠCdูฮAใ,„™รฅ9Ž๔่iŠฺ�Dํ๎๎^#ุ:`๚ิKจ้ท>�„๏�วฯO��ฯ9;;g็เ*}ืขฃ„l<%OSถwvฦจ0eฒฑE6� RŠl2!nไcบช IG�ภ ฦ[�คใฉ๏�Œ�[8ฬrํฅHวcŠบฦ่o�๘m.]’+{{|�ๅ—ูู�ใŸพฮ|UPิ-mืa์€ฑ‚$ึ,+’$๓ล@๛�kฅะk A;๔(aœลฌ=“๓…WณJ‘ฆูš™l ค PzMิ†a่ฉช–ณูœั('ะŠขฎh{om™อ็๗<�‘คซ+2ํ๓ณ{ก่ๅ:šทoฐCG�๖”ฝE…1ฆ๋จ�ŽP ด๔นศHฐ%„๏xLว`กญk’@แPJeR๖G^ฑ}~q๊ใ+ฃcอZ�,Iฃ้('ิŠ,ฯY ’0`zf‹า?|@>ู๔ซ?) Cค^†ๅ�วM็ฟ๏ ŽฉชŠPKŸ]‡  ”sŒฒ„P แ๕8hฌฃ๊;šVลœ�xC’ๆ\ฝ|€้L฿๛ฯ�เ‹ฒeUrใๆMชrม•๑˜ƒM"๊ฆ"OFI๊mTkจCฌ๗๑’บ.ฉšก4แz=า5 �ะ3รrนbน\`†žt4&’ะท-aไŸ9Vล C฿…ป›ปf0†$ษ0CK’$dูˆHk๚u์ฒต†ฆiฐR3ท–7๎~Lu๖€o~�๙ฬ /aไ@ž*าlDgผ�vต\๑ษอ๗h�–Ui ทฏ2˜†ๅู าAื”^฿ก%m]‚ฑl\ง๏{ๅรฆ„€,Ig)IaชŠ๙ู)�ƒW๘ท?�!็วุ"dKeLTHF8กYE5X„1่4้ T3๔RJฟฦs*$‹cฮ‚ึ]vฆ-“,๓า ๐์’rๅIคI†ิตึ68ำฆ9nˆำ๋@ฌฃฏีo~๕™oํnMคek:&Žc๊ล9qจต๒ฐช่Š%V$YFค$ablMD( Iฦœ5!oœ„4ŒIดB-[ำ-B้วฆGFc‚8&ŽST”โ์€T%t‚8๓oึ‡v๔b%=นญัA€’�โƒ†์€ฤaP-šส‡ฤ[uว!ฒ^1ISย@q~vฬvฑญ|๒ฯม€2=ัj‰’ฐผ�4�O>Eํ๎!ขนu ฝ}eธ8%J#โอ๑ฮ”t๗€ฎํ๚šl๏2แฮ”pwLธ‘เTร [ฤึˆx7#ผดIBาkืIฏ<ุผD4�แม�#~๐วฦ;?|…ๅั#โั˜8อˆาœ|อ�?ค_๓�ื�W\{แgฐCวะตe*Q�Œ3คy†kFี8gึ๏ždฒb๖Ÿ|‘ฝ'X,gิ‹3\฿าญ!;‰Cๆ›ุhL�ิŒำˆiž3สbฦiฬ$‰Y๓�W_ๅปoฝวGwnฃห%#‘ฑมXย$& }ฑR;GขYัฏำ% HคqJQw=›yBšDuƒฐ–X d[0สRา|ƒz5'ˆาˆP@WUXะa์yึๆS”’Xm[ใ†‹D�ำo|ๆ[ฃ,"e๋yมt$Iเ๑ขMEวllŒฑึ ฅaฐ5Jy”ฅฒ][๓pัrซฑj#ฆกdšO™Žw๊2)๊ŠjqNพu‰บ๏hบšชi‘าwj๓ข <™ชzLณคX,ˆ’”ฆm0}O6� 7–ฆ้i๛žฮyR0ถะถล5�`ˆโ„$J่›’< �ภะTโyเม$‰yQ8,ฐ=?๔ถ†๙’ฉ|ิi~rใ.ใ=‚ั”pkษ�%&{ค{W<@f[ะท-ลrI฿๛.ม:/4hฤ ลlนขฉ‚(dฑ(9><$ั–ํ ๊�ฒX„+์บ็]฿1CG๔ล1�๙+4‡฿aบ�$/|�อ๖�SkผMฬTH[#lƒิ˜NQa ฮ3ฺ�ฤ„’�.%B+kuฑ๔ijพƒ]sึ๊๓ฆZ!uŒ3๊ี9ซ“ŸขEMำ4่(ฃœ}Œ‘[ฅX�๚S’ญฯ0ูพŒฉOpกt@<ฺว–๕�˜<ไษญgุ�๔๛5๚~mต ฺึฃ*ƒื๏�็�ฃ��?�_๒w๑๋L6ทื5_dXg้บ3xŒ๐ฮ[o๐ฏ�อฟโoพ� FH‚ D*IU””EAผpๅ2/ํo๓๙+๛\งดmx_1:ย(Eู๔,+†ม{ญS Bัwึ #h‘”ฝ%M<บtBฅˆhฅˆ"MF„A@hฦqˆจWlRข$ ฉ[๓ บฎกmZ$’๓๙ŒฒXg)Ž๐ไฦ€ููก–ด�ภ��>๛{ ?E 5R+๎r‹KSฦY†ํk66ทฌ!ษ"ข4k„$ย+?Zขiยu!a๛๋ึัฑCG Iจ™„‚8ะิฝกjj–๛w๏rvqŠD0Iโˆฎฉ๘ม�†ื_ม:ฺบ Ž'๖‘Z“ฏ๕Aƒ๑ฉช\a๚– อi๋ คทซ…Zญ๓0bโ0@ หะ๗tฮ‘ฅูZฌุุ�ขฎjฮๆsN/.ะa@hœƒถ,่๚%^_U ฦ็’๕๛^๚ข|4FA&dqฤR‡ผw๒ˆƒญM~๙๋฿DkA˜„dฑ฿ำฯ*pฆฆž1?ผ้*„TLถ๗ษฦ� ๔uลูัC‹ œ3ฤ๙ˆข์่บžอหฯฐณฝล$ ˜ŒF\ฺ�#cVี‚�ว‡|๛ี๓ฃo`Vง<‘ŒQ2gฅ๋pฮO+bOษ�๙@l[3„ฺณ๕ฅ’ิV3ิ%“,ฅh\฿1 5†4 hไSšฒDว m�0��F้€ชX ร„ี:๛�XฯดฦะVCต"หSฟo�๏พ�โทย(ค.„ก`จW�ซ�ึ๔ๅำ5X%H“�>DมYVล a ๓Š�’w/bj—ฒ‡Lำ)ถฉPยา๗ ด+ฐฌ��ก3#IัvTึัศโˆP Œณ BSZๅม u… BO๘ZชพวHอ8 ษฅC9ร(K คคmj๖๖ศยภดlo๏๚D˜ &LสbI<ž “Œ'ํ@ขac;B.W˜ฒBg“]๎ถn8{๐w_}•฿{—zYฒ} ๅฏฟ�6~๐SาHฑ3Jxr/ๆฅ'6๘์๕ฆ๎Œ๊่œ๒เhAUV>ห7๐;ๅ@ Vซ‚ชnOฆ�๓ฺ๕๔]หชฌ Mล~ฬ(Mืฐ,jVUํ๑ˆึั๔-“4cน\ŠๅjEืw$qŒprrFœ&Jrz~ฮอ›s๗๖วไy‚S„kM�๙xVร0ะ—0ฟ๓glon๒ิหฟมฅg%5ฮ อ๚9:ˆPD#dH”NะaŽRฦ่ภg(รZศxQšฏฅ}W๎[o‘[ซิq0t5ฝ๑L๓z~›๓ใ[8ก‘ย04งtํ’†-Œต๔G฿%n?ฒK’|lฦขdƒlฒรk�ง�แ�๔ฯy๒๒uฎ๎=M˜&Lทw0]ใ uBF8ฅx๕ฮ#�?พเw๋w๘ูฏ~็@(Ÿ# ต๕t@…”ห9�๙�ศ�๗๗�Gn฿€Ra"ืึKg _~๒฿�ฬsผti›TB:™bƒ˜X๛5Bี;’$ฃm=j8ฯ2*ซฎg’EXำฃตย Eƒฆq‚ฎํHคc#K๚Šฎ.C…z๔ะE!วๆๆ”8ะŒโฺhด (‹ึ hDˆ('ฯฦžŸใฌ%Oผ๐ชki๛Žeฑ`s:eœล|๑ๅฯ๘‰US“'qq6_P+ฒ0ฤด-qัี%ฆmH“ˆjฑ �*2าš0P�fgz๒ศjฤ0เฺš๑ˆIš@ ค’Hืใpaศ�‡‡ด]KSw<ธŸรGว<บw‹w�๙)ฏฝ�oฝ๓๓ูgzL฿๒…งŸๆ`{—,ŽPฎง๋=าบiJ”ไ๙„อ†พE‡!I” Mจก๒๕`,– †ฎม:วlU`‡ำ๙ๆm่คRไ™ภ ปF ํc\ฃ!ึ๙˜`๏ฬp^ฉ.$MืำTISิ-œ=ขZ~๎K_ใ๊ๅKฑD:Cีuฌƒ4 หใ{ฌ– ฺn šŸR45หคJIาŒฎํฝึ*ิAŒด-แเ‰ุพ๒$qค‰”"า’ryม;7๘ร� ?zๅ{ฬ?�ˆจ‡ฝtƒ0ศศƒOJŒ%ฮฃUญgม9Lื’G�’6 Qa„BXC…ดN5th-Iใˆบ7diFh”:B ะา�๘๚มฬะ€ƒ,ฯะQBป8Cbูุ�#Jึ<€�ฟ�ปฮนŽ๙ัาะ0J#๒$ก˜]0˜I€X็ๅvCGi”้YงKลI›pิฦtƒๆู+W้ฤ,ฯยั9ลb1g0AเtH”Žจ�T@o-กDAH฿4C“jM-s$‘ ™nlะด5๓ช!Oถโ€XIVuษะ4DQ‚v=๛ืžฅœฅm�กBM[—DQย|vA ๙ฮฟธšฑ vฏQ„+–D2เ?.๑ๆาr๙๚3‹w?พมฮฮ“้&็ว‡0��ยุŽl!ะธแ˜๊๔ ด]q๕™ฏ๓ฬ _CJ’>ฺUx\JxŒkจhŒsพ‹๕(\‰T„๚ิNย ำ�฿Š?E ด๒ะ uj[ุm฿ฑ:ฟณ-*ูง๎D๗€@:šŒœ$9ณ‡?A)[Ÿฅ)fh5Œ๖ัษ.ึ„9บ๕>��๓�‰‹ณ[|๙ณฟJ–nฤ!ถซ้๊–ฆ,ื วOž๑ม๑Œ฿๙o~“/~๖%T’!ฅ๒ฏณ๔ฉ_*PHก้ššื^� ๒gยo„‰๗ XยHณ7™๒๒�/ํo{•zฃ“ิ“ธšŠ{๗2 ัยแ„ฆ๒ำy‚ฆ๏‘rฝ�‚มZ๊ถ'”€ฑDZ#Lว�๖Sฏ˜อ์omขด@™ขœ|œ Cฅ4u้m™RCSWฅื�$็eว๑l…ˆ2๐มG๏๒ฤ•ซ„qBีTkbฃฦ9ธ|™o�ฬฯ0�๔๑ซB๖ํ{�ว�้๗xf2โน�]†ฎกฉ–Œ'[LงS๊ลŒ�า$&ŠSCDtuณ>ุง์-egMฦฤQDUtmGQทฌหฌ๊่ๅdU๑ษแ!}฿b†Ž๙ล9ฆ๗ถค8Ž'3„!ฯ_{‚ฏ>๓$ชog)‹‹* ่›สฏY”fs{ณNqซšŠ0๑‚6i‡๕t,กX„IJQ,—(ฅ‘Zำืซบ&‰RยP“e#ดUEฦUl-(Iœๆ,/ฮX•Q˜ ึไ:#mำyฦBฝ"NSŽŠ’7๎�ไล/ฟ๓๕o %$ฃœใ๓MoบŽ๚โ!�`iห9ถ-�x>� ูบย�•—‰#OฅoY>x‡พ\’ฅ๑dŸญ�Kธกg1;กX,ypxŸฃำc.NXฉฮู฿พJšo‡ ็ฌoŒC"@ไ ฒ€H”#tฅQ@d B‡Xแˆิฺ�ๆสิ„8โ๑”ฎ๋จŠ�“1™๖Š๛0๑y]ฝฤ‰†บm้อภt)ย2ษFtu้ใฃ„ข๋hŠ‚T9ฌ~งงฦ๔ิf๐c�กG™ำต>€e9# ’ศซใ$ฅ8;pq~Š b๊j…ฑ>�3Žย $šnฒั\kJH"โศQี7หŽ๏ฌ ๊`4Jฉ‹•' …[๛W�8;Œ‰โ€ีlฮฃ๛๗x๘ษ'|๒��พK[ถœ|r›ฏ~โ๔‚ณ๛XอfŒ&4eม๙แ}^Šค ญ!หbาญ1๏๕’j๐Bผr9งญJ’<ว:‰@RีีjF?v๖h๋‚b>ฃ, Pšพoฉสm]ฃ•ข) F“Mt ษGc’0เ๘�mfณถทwYœS,ฮhสMY!L'S†ฆ&J6w๖(็g๔eํZฦQศv–q0s๕เ ืท๖ธ:ูๅส�ež{๎3\�ฺแ๚�O_ฝสG'XQyฒ—๖9้m�ขต^หhฌ†P’ใณ3ฌƒ4หˆ“ˆฆ*ฉ�–ูฒ๐{WญX-–œœžSญ�ั‹ลแซขFHํ9�Aภ` Œc’,Cหขไ๎Oดๆาตgศา˜ๆ๔ว๔พห�ฅ'yๆณฟษตง>K*๋@ญื โdอวD€\งLy1›็ม?8‹/H;๘ยห�-๎พp�6ZyึณTธn‰๋8 าค4ดี v0dฯa๕C;ฃž฿eฐ‚ั๎็ึaด ‚m t‚bๆGw๘7�์�ศอ฿็ษงŸ'6ฐฮ๘ฯ[�่|kฅ๏=:ใญร3~๋7›฿๘ๆฏา;฿๙๙)…๕?ฃ’H$๏฿ๆ?�แ�ฬ�้Ÿ๒๐๐!ฃ,ว9@B|๎ส>?sm‰๐‘ˆ6J้�šฎXsฌ o “v@ว)1ึฑ‚ฮJQ9Mc}โTจผ8,›yยVฌลŠ<Žุ�ูdc:erp็,5lLF0ด Mหh{—๊๔˜ีล)ใQสd2&9_U^ i}]3R†$๐ขฎ๓๙ำ้„UQP, ŒXฎV�5มzกำtŒVŠQž3™Œฉช’๛puoGk‰Mง m…0ฝท? Hฒ…(ญฺ†(IIำ)= 2 Cบี‚ฎ.ฐึกdฑฆ—^กœง) pB็„RไiN–็ไูˆญ<ๅษK—นดนK„ฯhืAไi˜ฆ๕ค<PVหี%5USq>;ฅฏk๏7–บ*P"‰S’,ฃ,8cHโ Da@ž‰BฯkHโฅ4uSั๗-:ฝ ๋hปพoeน็•Rยชฌ่;/Z6ฺม๒�ร�ดพ๑ ฟฬ4t�}๗UŽ๎�Bลc‚ั”๒�ีฒ ”‚๙ู!หๅ’ี|A:žฐ}p L •DเˆณŒัฤ'‰M66ัR๑๐ฮว��๘C^�๐C~๒๎;�{๐€EQกฌfor™อK( m‹Ž๑hD๒ก&R’( �:้s#zƒถ>h*ิši๛บ�็"”่ฆD:ค6†0Ž@(B,๐)ŠZเฌOY“สƒะบ+}ั•o์D ีโ ‹@G๓ำGtMRฃ~ๅลƒo1ฤ v73”ตลฎ๏0b Ž,}[ำ75Uท/$oมฒSไJ0‘Y’แ”คฌ ๚ถย11~/ํXงห@ท�๚๕ร@ฝ˜yBœโ”fUท”eI„ศ ย:o่4]OQฎฅ ีก€4ŒูœNัถcบฑKe”ซ%I’2ฺุย˜žีj๎วคmวtk“ฎ๎HำŒ|<มIA&{๓ ๒็ฎ˜žำย๒ฝ๓–ีxŸ ŽHGSา$%อG”ล‚8ณผ8Aว!Qโซ�j5'RTฒ้ ๛—Ÿ`9?รถ —™Lงqยะ5Tซ%ิ<ƒ!้ 2 ˜d)ษ๕}๎ท–>นC;;!Š3คˆา1]ืา7ๅzD+ศGcฒ๑˜ู๑!ฦ ๓st”ณำ6๖.ั”^\ถํI6ทถจ็็่0ขk{ฦำmฦฃ1ฎXœา4>Br{ot2!#โ8๒ก+ฦง)A”&)ฃ$! ฑˆฎ#ฯ676 ๏ึb‡–ํQB"เฃฃ3’ิGึm๏I�@YchปŽบ้=“Yiฒ4%C–Eษฒn#ฯฎ›–๙rEีtฬลš์ึQu~8๋hฤ$Š ร€0iซฅ%išbไ๘tF$L๘„Lฏ8xๆ—y๊ฅ_๕„8ำึซอื๏ฦ=อm่+๚มxหุš2&ืIsrญฬ–qฉฮw�Rkd ๋หฑพฬ‘€ม”'8ำฃ’}z‚™{(’m:ลษ”๚� ฮOo>I6พŠr‚0A‰Ž0ูDG#„่ ๆ‡๔�ใป๖วL๖๖นฒ๑าzy–RZ#ฃ˜0 ธy๗ฏ=8ๅื~๙W๙_๛&FJŸำ,ฝ๐ฮ~<�๊พว�ั๑๚[๏2›ฯˆ‚ˆ ๐‚ผ4Kธ<ฮ๘สี}ž�(IูŠช& ]Yฐh:l<ข(+” hญ JbŸ�ญ•“�s*BtŒ’ีทŒcล๖$cskBล(; …C�š‘ต๎xชี ๓1กซm�`„�4<่ามCนbตXyz–‚dใMสฆฅฌV„q‚สำๅฌ๙V•_=�์ Œ๓ฦ lNง„Z๓ƒW„ึš,Ž ๓ภ Nฉห5dฃ‰wh ยั5 ฎ๏J๘ฝฒต`’(ฆ๏:„Rฤสว™๎ln0Š4uฑ Sฆใ1ำ<#I3ถท๖ฅ)ใ,็ส๎๛“Mญ]A,ฝพขn?2†ฎ0€3Q็9]฿๛5V฿’f#า,Ei…V!ฦ „a B“๚ค,ึดMญY›~ฏฝถDโ<ป^jญ=)ฮx+ฒAbฌทm&q† ๚0ไƒ‹O<�Y~ํ~Žใำc๎~r“eีฐ๊<พ๚๔๐uนขXzมbSV=ษๆ.ษๆ๕`ัRเ”„ถ@—็,Or๋มn�พมƒ๛wธ�๐>g๓QสF:ๅ‰ํK์M๗BOJ‹•๐`ฑ(ฅi[?๑ึ ]ย๓”@ฺg-a ˆ$H€๐’ฮzฎ=]ƒฑ†U�!eศๅํ-ฟ"n*ค้™lo!ฌap0™n๙้SSฒตพ๏ฐXฺb‰‚b~ม๒โ”0ฮ9}pฉฒ|„๚_พ�ญDก๚ส๏šญกZอ(—ง8cจ‹%}๓�g๊OƒถM๏�,์8ทkฟืg{๗�ิjต๖e$อŒfฦ๖x3ุฆpจJภUdกRIAQ๙D%T%ฉ@ NH จŒIวo`�ใฯXฒd-3#ิjํ��ฎฯvoืzn๙p�ั—V้mฝ�}๗�\ืy��ฟ฿qlฑ.ฒio])พ{ฃธ้•’�]_p2›s}�”,ฏnค�๏ŽJ>ฯ�ะกช^Z—ฬ;u‘C๐tฃc)ะ๗aจดfฝ^S็…จ˜tZkj ZL˜˜g0›-จ๋†iˆมS73ข๋Q:Ce]ปรู1)Š‚8M�{๕"SปE M]s�ู;ิ/�Ce บ›อp็๗pJแ†–ผjธนyNท�‘W ท7WฉถU7<{๗„ ฉ็ ๊zFYemุ\>Giมๅำว„เ8�>c๐วฺ ‚ื7จร๋`ฒœพ;p๕ไ1ทื—!นS*.ฮฮ๙ม๓kฦR$—คŽsž#tJณถ]—่1 ‚็ฐo'3Œใ€šผH„ณษ9ชYƒาI๗W•†ฎmฆ ;&ซQ”ŠกํRXI%RุไO†4็)dฯ0Eฺ)c}๚R—ไล #ขะ่"ฉ0M^r๓ฮ[�๕�ไ�ยำ]ฯำW)ฃฦ;9ฒขค\าํทผธนแ ?~ส๛?๘!�ไ�'Z1 =‘"$f}pŽ฿๙๛ฟ๙w�๏ผ๗Œก?เF›Hy!pฒ˜๓ม๕Œฯผtณ:ฑ้•ษา3JBQcU~dD#›มฅDฒlฆภ€ฦM–G†ง* หB3ฯ• จ`ฉš†ชž!ดbws‰Œ“g‰moงฤ่๕ƒG˜ข$๚ิXฐฮQอวU€ฅœ-ษช†‚ภ๙๙9AQf)T็<หๅ’ง/.้๛ŽfฑDˆ@ป฿โฦ‘ฎํe5kXฏ–„่qฮ"ฅโ้๓K��๑y๕โœฬtV$CฃOทvgสคRLฃe์Zฌd&…0…HP›จ0เ=ห;๗1ีŒa‰v$w–US“‹@ŒณฒdY•ฬดเฮผfn$ฎ฿Q*ะาะCrฐ#Fg„ษ”ค,*ๆ‹5Eีเ}@หHู,Rญq์0&็่๚H๐–๕<๋2ฒrมi^ruยล�๛ธฉcฟปฅnุพฅ› N็ ช Ÿ=hฝ>ก6&Uสb$*Y…›JฃQy•าฏัaC`๒ั9‚นณ\PO%๎v2E3#DRธk่๛‘ษ9๖ทWฤเgธjุ\>ร…€วั๏n้‡)%/ฎž๒J฿ฑช ฒ๗ฟ„พพๆ๙wฬ“jA;t„ัาŽํ๖…'›ฏ“6„4ผx�.๓ลIขœนy๖%%v์ู^_b'ฯ์๔‚ซวOPEEณ>cšz>ฦ„จ2TY2e$฿8xŠfIั4์wท(“nฆระRฏฮ’0ยู$๑ะIEนึาG™I$�Q$&z ‘เ#!Jขjา-ˆ–LYข^2Z™n/๙_Pd’ลbอa›.‘@Sี™๓ไ๒Šย(„1์ถ[�ภ�ฐวN#ำ4ฒ^.S˜VeœฌWฌON๘_๚"'Mลฝ{ะฦ „ภ๖=YV9สขHuศŸ|g๒ูŠrพ`8์๐!M †ร–่8N›’นdZ ฝ=N �{uƒ๐aถXา๗-R๋t“๔I#ฺvieโง„?๖Žaด ฌe-™�ผ#๗กศ3๊:iYe ศ˜‚š!FLV‘™4๑@คjš”Š"/*๕พ—ฤ5yV0N#7nเ[ืื�m~๑ำ?ƒSSTX� ชAj†ฎEธฅu=#"ศgงไอŠณ‹Gœ.V, E�์{|�ห_เoฝลŸผ‹฿๏yนฌ9ซVœญ๎R็5AfH?มิ#”คะiหํBขไ6!cญ๕h7&_„”YF‘้ดยาšY]ฅ>ัฦ€2ho)ตdฐS(m0ดNๆน๎ฐg:ๆ๓9.ฆรN–ฮNNุ^ฝ`'„6เ-v˜ญฯ0E v/�C ๕l–๘y…๚}๖ั็๒ไyฦฐนb์Fผ(“Nน๙lมmซy๛นง “ื�;ฝรหdZงำฺdSoพค๗‚อQ�จฆ)ฃsD!จส ื๏hปž)@็๚่_œC๋CŒ>p่ZLp้2ำmPSGQอฉfKŠบก��2ปอ-Hรแ๖ฃษซ7ฯฃแ๎ลร„งำYบE ‰wมytQฑz๎`y๒�„ัไ}หตฉน ‚ู|Mpžฑ˜ฯืิห5OŸผ›|ฏZใญใ�K/Sึ ำ8 c`ฑ\“—ม:ผ๔*y=ง˜อSสตoaโห‚*@_6?Qื†ym๘ีด.RัYlD(ŒFHษ๕๓๗p.ฒX.“r๏XA{ฎ_ผ`ุํXฏ—๘ษQฯWdeลีใwฝง๏:bHI�ำ nšF�8’W%ใ”่VR)B-%FJคJXึ|ถภวˆิ/ฎn Jฃdc#�่ J‚ึ ๆc„๕๒„Y™1ŽฅSGธ๏LvJ;๛nd“hDkE7ุพใ๖๚–อfรd=A(|LŠมกศณ๔] ๋!ศ4m(‹Ÿ�ข ๗ึ†?๚มŒ๊ื…ฯ�๚�’ูษC‚ํRšิบ~‘nูษม Z๐Sบ! qผ‰ง฿ื)dD1โ�„ณSขฺUฅBู็โ�๏ๅ-/๕ฃฎ+„Hื(ฅศฤ„ท{D~!$vุe›:"%๕�.E‘กฅOย ,อcธพใw�ฺฮ_�/�Ÿ�ŒŠฝ๏ร\,ฬVk”To^6ำ�่ฆๅ_๒๋�ไ?ร‡>๔กtฆpแXณ้๏_ พ๙o๐ท�ฮ฿ๆฟ›๖ภRPื eY๐าขโg๏žpo^3ฺ ‘ๅˆจ–+Z๋่c:Tvรศa˜ุztQาaุ;ุ #nงtAXิหB1ฯ4'ซe–๖€Z ๊ฒL “ีIสฌdง๋5eQ0v;P •ๅx?"UNฟฝF*ษี“wปฅ4ฦ(šล P๘พ%8ห๕“๗ม"…d7N๚-%Ef˜‚โpุฑZฬ9t=แ่1' บ~ภEฯฏฟมลู1.ฮฮiว‘ฏ~ํkฌหœLฦdณ\Cฦำ-M$"š&7ั๎7 tzIหิ"Aข”L‡]฿#ตN�฿ ศฒœ์Hซหํ ษส*TฃG็UŠ\ลH–e(ณ๙Š,ใะใฃ ,๒ฤ€”Yบ<ๅeEด‰ิ–+ESฯา4ฦ;๒ผH|๎ใ๗RฺกรNา๗ขทmศŠ Aฤว@7M์ฺ=Fgด}‡zค2�hwรฎํ๘ไkฏ๓~'4a ˜\ใtช,–ZPไน2dEIิ5E=ใโ�๋ๅW/�ๅ๋_�Mพ๖๕/๑|aฟ็~ณโnฝขษg8•dXฝ๕FGฃ"•de…A _6ฉใํFฌH4E9vฬ๊“G�@มh-1€‘’:K�‡สHผต)ใ"Ž฿“เAJT๐ไ2 bDI‰hฅ‰(–ณ†&Sแ)W)๘ฌDขนน�ˆใช?์ุ฿�ะ,V4๓9n่1 �ูOŸ|พ฿ํ้nžัw๚ฉง*2ข(ƒไฝKห[O:lพ&`Xี๋ชbw{aค.j‚�N้Ek}@Š€Ÿ&ฎ{ห�yFŸFˆC฿sh{"‹tz&G*“,Uาเ…f hGfEAm4qุ1ห“;œ฿Hฆำ ^›œfพb>_�™t|3œw„ฑฃฌสล๚Nศ 1 ฅf}rB3_คข[^ท�๐‚ธš‘฿nimไqพdนœS•Uำ ŒA+มธปๅฮร—Y6 Z+๚)๒~nชšํ๎†�Z'็<—/�ฃ(๒)Ÿ=ฏiŸ�า)IzๆรŽฌ2|g;๐๎n@k:ยคTŒ]‡‹@L#ทn่นพ~Ž‘‚ขšำ๓บก™5ฌฮ.า˜Q4ห5Y^`‡)ˆ()›9ป�[Šผ))—+”าXg๊0F๊ฒL๛DาหZTYuฦ`�F‹&หู #7�˜Vภ!ะ๖๛ฮ2๖{ๆ:r1ซ8_.P€R‚ฒš#•กTšีrมฌฎX”Š๕|มjฑเtตโ๕‡yๅม=^บ๕jษrฑโlนโd1ฃส3†ฎe•#X;%๖rLlใ�‘��๛Ÿ�ฅ_็รฟ๘งRhnŽ/*ษ0:†ัL6 คDฉˆแ๘าN�uษ›|ผKฉS๘„๔kฒฉำX]้sArVฦ๔ว:฿๑xc™ฌ‡ะ1uืธ ัล)‡�Sบ�{u†‰#vrอ]ชาคžฎ’ 3โq 1�>ใ‹ๅ?ๅฏ�ๅฟศž]๒ั7>ฦKgwŽTI๒ลŠผ(ษชšM๏๘ยทพอG?๛ �๚ฏ�ใุi$หvsท฿ง้Œw<}๖„฿๚ํฟฯ๗ฟ๗=ฦกO�้,#„ภKซฟ๐่ณ*O7wกˆGธฮี~เf�"ขง‚~H๙Ÿ• AะOขงึ‚:ำฌJษร“๋าPW%†ศผ0(Yฝ`š&ส"�ฺโ๔… ๔V^ฆ๋:บ�ญ4�ๆŠอณgดปฦ�€ะŠ0Zฒฒ`พ>มu{\”xoัJขซ†เาnปYฎศ”  ‚�2ฅh๊†M�1ด;ู๊‚ฎo)๒คคŠ"#หs�ปwธD^z๘ฟ๛฿วv-g็็ศเSสมM)hd A โdiu2ฺ#C "U๚s H!IH•;ฃLฒ๓E(f)8็B G"B(fณMถE^ ์HF2ร™ข`lnn)‹ "๛อ5…–’ฉ�’™Œ๕ู92ฆ ˆณi”›ดฃ๊ง9”‘P„9tƒณบ็�Oฅ6Fkœณ(“j\วQJ๚ก'xฬฌHz๏๙�ๆ–RI>๙มฒผ{C฿แ‚cืฅฐด๗iดบ QอPYษขI๔รwžฝรo|แ๏๑๎~Dณrษ๋w^ๅ|q†W†NLŒฤi`"g^fิ2ฆ—r–!bภJ•ุ�ข"”J ƒCD‰๓2ชW˜ #zห่<�”๒EY Tฦุ๗œฮ็˜<ว#(•ภ„˜ฯfฬk&;1ห$e=gšzL^!•โฐ฿เฌ(ฑึ’iร0๖iอ2Mษ€ฉ E‘‡>9@~ํรw>฿๏ฏฆิ;2"uI๋4ฯท‘\KถqžŠ่2R้Œก๏qฮโB`?Œ� ซ3r“S%ท‡–ƒชP๕ŠŠ�2DยยE๖(สu‘ฃฅคšฯฑB0ด{N›Šำฆกฦ‚จ๒ใ("/1ว:˜’ออs๊fyฌฝH�ะb๒œฑoฉ๊:ูp„ฤร๖–มZฅ n๊&็pุ ใ}ทWTซ9ฌ�ๅ5แ๚šทณšก; ตๆ๑ใwว‘yYฅ/qŒ๖;n77”uEท฿คชC฿ฆ=฿02t-๓๕š็OใใไโR�ฑ‡%๚jOท�าf9Aj–ถ%฿\๒LUNa”!zิS–Tอ’rึP43†vOืะ€’šjนbถ\ฃ๋,Y� ดแpุ’ื3์ิใ๛1 ฦกc< N๊ี v4ลN<๑”เ'งิe•ธืถ๛ปถet–ํํ-‡Cหh-ื๛�กeo=�~`๒ฮzฌ๓i็ๅฮ%dk;%฿31๒๚ู t—ื/Nyใ�9ฏ๒เ.๙ฏ�ปฯz>็#ฏ<โั ๎4N–ฌห’ณ*ใอปงผถจ95Šฟ�2๘3Ÿไ<ำ่0RI ึŽฝZ๓ �ฤฟภG~�ืฐSGpi Tบ๗ƒK‚ ŸPซYฆ˜อ*2“XๆeYงNฎาHu x…ศd]š2ฺt–%หัO@๑๘‹๑˜�<�Wb$ขัแ†+ˆ๓4‚ #�แšถ/ษณ’-ฆ<ฅช Œ’H) ผiฯ:ถ�๖_�s�w�o๐tณใ#๏�0gE "M}—ธ�ฺฐฝzมีfห�ฯฏxฒo๙ำ๚_ภจ4�WRโC`ำ:iณ�๒พ๒�ม~‡ก˜\ยผžœž๐าล);_s�๔Cฺƒ฿}€๔6MA๒Š ล๕พG™๔‹ขdดŽฑO(ั™ำ:ใมIC!ซYƒRŠnฟ#7ฤผยปใ-ใ๎?๘~ ฿oPe[\ฟ'G8 L†ฮญฐศsšณ๛”๓%v{ระ ™!LŽษ๒ฤnXžค}ฟTdอ=าŽXฉ™ผG มjพเG฿aสzฦlฑคk }วอ๕ nX.g�ฝ๓ฅ$ณูŒ็ืื|๛;oq6_Rไฉ+คN๛๘)๑ฒu–<ไ]ืกŠŠชฎi๗›๔ขศ๋ด๊า)#cƒฅjUลdฮฺฤ0่z\๐XŸ่•Yžฤ2x‹*-Y4ฉc_–5สไt�ู๒ŒYS3vl๐,Wgฉ฿uีPไCŸž “๗Lvภ›&๊๚Hน“*aISฉ~ฐ]’]ีUC]งx฿u ำtไ#”J/uกuD Iืwl#�ธ�ณส4oพ๙a1rh{๚›งฺŽ1ฆ,F@ข๒%Ne-Yึ ‹ณ พ�o๒พ๘[Œ› wwxๅฮหœ–3 “คAฝ`'Lp„ฒaVd,ณ e4ร4โฝร! ม“…‰,ฆJ็ฌ*˜W%ัNด1gŠI™ป�๏๑nฤต{|้g‰3/uQ$YYเ”a‘kึeAก]ื!M๊ฟ•๊อ๛อMZ/Oˆ1ะnฏฉf –'gl^คVC=G�๑}พ™•วฝHDร‹ญใ๙ๅ†ํTp๋JึYฦล๚”ำ๙)‹๙š๕๙=œ™1†ศ�‚ั;๔ศ"gGฺ)ไL๔ฬดBK0&#‘แฐGiฆLPฅqๆd๊wิNJƒ๖=vะฆ`urNฟ�ะ-ณูŒ /žพKVิ˜ฒfhD}›NๅAŒ!ม๔ๅ๑ร฿\€๙๚”ก�s{sMั4#ำ~ฯGคงฒฐศบD=~ย�\NC{€กฃ™-‰†พEฉ๊9มas›nXํ!4]ปฃ(rŒส0Eษz}ส09~๑aร;q๛ฝว-™คdT�u�๚eAทผ‡ห ํŽ��@3›“ฯ*T–CHAฏ๕๊Iฤบ‘ล้9™‘ CGพX! �\=gh[”�>y~์ษŠ$�8น๛ ฅุonh‡ฌใ๖๖š`ำ‹w}vJฆ%ทฯŸฑ�๎pึrsฑร@ฟoข 3’ํกร‰*r}ฒzeN‘ฦqยFจณ$ฝะE‰P;Œ4Uมข4ุaภ†ˆยƒตLรD)ํพ% รŽร๕ �ะS‰๖#๓B“KษดปeŒฐช ต, N๋Šณ“qผโฮ๘…?๖ฯ๓๊~%e•ฐŽษ๕m›ฒ1Q๋คˆ $งหšฒศRลํ๊2J!Eบ๑t�ศ8N้ฆำํZs์|C๔�งb!ๅO�ท^KAM?๎ะ*๕วฃl‡ uณยS‘•gL.ํรuถ ฉ+$ว:1ญ5Lษ๎ู๘›�ษ�‰�ๆฏ�.๗?๗ฉฯ๑hy%%x›&”VX;qุ๏ูX๘ฺwภง>๛‹|๎g?ร4&C•าhoG6�-_๚าy๏�๗p1Qไ๒ฬ๐ฦK๘ฃ/_P‡‘ษMฬ๏�ว%a๊้บžM0\žvL;าเ#ฝL�1ฎ๏8ฉ5Š,ช?ŽLรHฆ"xKtžณ๛๗“ฃพ�ขƒcพ>gl๗ไอ’;ฏ~€qwรธ฿ขH๋”"++๒ฒ@ล๚มซ‰Ve-ํnC6[Rฬ—ิ'duM{Imถ๏ุ=F–i๚รlฯฌศi๛›ถg�4ฌ็K~�๔y๚w ๅQS+ะYษ�ฐ็ูำ'ผ๖๊ซE:่�ฝ๛€฿�ๆ7a8๐เ์Œพ�!ตAŠ„ ี:M�พ'*ƒ–‚พ�ำท{ฒผL›เQRฅเ฿แ€๕iฝฑปy โBdšF ญ)ตโ๔๔ธ  ๐คe3C้ฤ%ะJ3Ž=RใC@ญๅ๒๚)u='ฯ36� —ืW ฐ"ร” -"†)ๅC๒ฬ คข�^ƒLปn,eQ2 =‡q"’ะี:฿ ้‡Tห๚‰\ \L�๓x่น<์yx~—๗ฟ�ฤฌb�=็|™—]cฒ–UEมณ*ท1๒ี?๘ ฯพ๗-ึ"ใฅ“๛ฌ›9z๊ @<๊Nฅ#$๓ๅRุฮไ9ฮ{ฆฎ#uM๚˜ข! ‚วG@i๚จ˜คa‘g,๊l:๐?หHก•–าšDEฯ่<…�ฃ้3ฯK’่วu? ฬO/˜ฆ‰iPJƒŠi*Œ„ฑ๏Rำ˜”]R9Cฟใ๖๊9ฮGิ?๗‹>?ฏgดป-�x~๋xz;q�์ฌF�}‰Eี™ —•l† ็F๚๎€.Kn๖{†กง.+nงˆ๓#2‚.pcO“kผฑฮS7sœ0ŒRึY๚พฅŠžฅ‚ZุtJC�HYีdฆ`ปMง•,+้;ŒR„hง1Qหm2๒L#Mบy….Šขfฟ�์ศิn’“ถฌจŠ9�๎š*/๘ุะ&๗๙ซํjฟแฝรฤำzอฒชป–๕๙eณโ๊ล ส"ใโ๎}๛ ๓“ ๎=z‰พ๋(ซYQ€ทนมe]ฐ=Xe๐ หศป฿y}G)#]ˆtสเzKvพ"ฌg�ุ+ž]ํy�ƒ๏1_ฎ(สœซ'๏aฃฝนยร่า‰�M#&+น|�„๋O)ฆ�lุnถŒํคE•^œ๓ีbอ~ปม๗๖›[์ะS63ˆ‘ล๙สข"LรnG^/ภd่ข"ำk=“ิ4eฮ8๖ไUMszJž็ _[xฉ่ฌc่R?a‡‰ฦHดั„*ฒู๏๒ขเrณg็gu‰ะ†qX•†อ๎@@กดdทo9vIšTซฒLp{ุZ‡๗–ฑฝa{๛#Šฺ๑‡�ฤ�„}ๆW) "…โะZบ~ย:ห0”ึ๔ปwจ+ลูษš�$(‰R‰ฆ6 =!F†ฎฃ๋'„J™ดฯ‚,3(“ฬBำHS)~RรJึ€ดรœ†๔�Žผบƒฃแฐฟ!/คn๛เSbX™ฤO–"ฆ†D๊‹>�ฝ฿ไ?�ท�ท�ญฟ๛wี9Ÿ�ศฯqZฯฉึkข”YN5kะYN^ึ„x~น�ฤฏ�S”y๒Ž๛๚�โธ—ํ{พ�ๅ/๑ล/�†ั‘WuQSๅŠ_|ฐfYV\]ฝภT3ชYƒฐ#ื‡gVณm:d‰w.ญ๏ธทฌYiวข,˜U5YžวŽขฌX/fiท็(,ฎ๏(Œ&ฏfฬ..จii๋zLY%Bแ�‡XonuO9ำ0”โๆ๙S๚ํ */X�yHˆaƒา†�ฐKže“3์7ธฑ'/*ขธกงฉ*ญน�๎้ขbต˜ฃMฮ“็O(‹,ฅฤ•L็นผพกj ^~๔21Fช<งŸ&พ�ีฤƒป๗ภะŒ‘ จB xOSๆเใไ’ฐ"B๐ฅภnณa:ฒฌ8ฆถZ๔ฑFช”ๆไไœบ*!8ฆ�ธJส3๊ล ;NŒรศvฟc˜Fr•2/„ภะ๗}บ5—U๚HMo&+cมชบฆฉ็ “MekSีฐ0†aœ่‡‰ฤMŽ�9l่,c;ฆ)={„”8๋\@‹Eส0xฯ“ฎg฿x๓•WนxpษG6ืฯˆyอm—ฆ?BjbHอฃW๎.ya'พ๐ต/๒๘๗พส™ฎxx๑ฌƒ�F„ึเึ{r)1ฦ`2Mฆ4"Dส\‘ห„ดEIโ4’ล@J#™U5}฿qู;ฺaค–u]€ูu#ฒจS_;ฆ‰ˆ๏,^ยะ‚ไๅ 5์ษ™ืTU…wŽๅฌaVี)™ฆ‘ีษ2+pCํ'ำ Sฯ™lZŠ,D�0ะ๎6ˆLใฌๅ๚้ปig�ฯ~ๆม็งร Wททmไ0Inํ™ี ํŽ๓ขfฑ:Cg9�ฎๅj{`ทนฆ) ƒ'D‹›&๔๒‚�8ฑoŒร@็"ตh7ะตYณก“I&ห‘Dtด่่YM๎;Lฐธฑก8=ป‹Sbาไหลœู๊7๕L�k-S฿1›ฏจfณ4&sLง]ต6ก;นkทY†8ชIฯNฮจšส—งผผฝdญ๑�9ก�ฃv-Jf|ท\ฆ๑าa‹๗žzพภ ำ4‘•5c฿ฃ๒Œกk้๚ํะำ๕‡ใˆ5 ‹Œg—/ุm7�^ฉเํ๗๘ฮ;ฯ!‹ฌ•g9zNMdš&๊๓?๛‰>จฉC0%‡Qฐ;L่ผยว๔™“7 |$ํ\x›z–ฆY ฒ]””๓%ADชู!YYะ๘aคT $จฃaว(IY–D]คJNnyAp–qฟล …7š::ฒฒFIมa`œ,m7$๚Y72Œ–yžดา๛ดŸห3ฦษณmGถ๛–LJชชฦ"98˜็šีฌ jjF๋9Œอj…ฬ ๛ถEๅ% ใ”๐žฦฐ฿ํศณTyk‡‘ซ฿ฅษ,๘O�‹ผ๑ั_`6ฯ1นกํGnvm;2Z‹๓’\ธ�ฏ †๏s๑เcฉงKDk}ไzgSโ|`฿๕HSW"&๏uQV้ฦ+ต”:ภป”2—วเšR:ํฌร€FใdŽw๔]‹ิ ป[ˆm*ฒ,ฃ,’AMส$,–:'๔[พ๒ื��ใ?๛ฟ็๋฿�>g็w๙ศหโๅื�ฯ��‚๙‰O%C฿จcงฤhวo~ใ๗๘ห๕ฏฒ;๔DฉาGD~ๆlฦซ็งฅGKŒ…เv‚w7CJ๛ƒ~ลvH อEฉhŠŒUำpฒœSic…†ผฌ‰xfซU�เ‡,/๎�๐ษำHŠ~wษิตŒv"kๆ8?ฑ}๚FgไuƒŸ+�ฺ‘ํ๓gุษ!871๖์/_ ๓‚ผjฐ]Gู4yE5[Pญฯเจoœ฿aุ฿2 1/(ฅiุต=ท—OQY†›F์ไ9Zb€qXฮ€T‰ˆgรป"ฐ?๘kใฏ๓รwฃณ eR๚๗ๅ๓s~๙ฃ$šŒ~1สชแ’‚ห�€sำ1ฎฃภF02P†‘US‘GSd ูปฟAซt๐,sƒ�]ฃ๒i2†�-ณ๕Y๒x๏ทุัโ†๏&l฿B`8์67๔‡yQ2?ฟGฑ>Eš’ขฉษดNfฌf†)J์ะ3๖่,g~็~lฉ๋]”˜บAh…. $฿๏)k์d™้ศ๊์Œซ๋nท‹5๏={Ž๗#ม{์˜๐ฌ&Oษ๏พ�๓๗ฟAำฬจ๒™|�k_ใมษ-%Mž'{Qั,Wฉˆ0NH‘ƒทeำ ฒŒัyฬ&โœE*Mท�r{๙Œaš๐�c:dzŸV’‰อ�vGœดIุ#ำž6หJš๙’ีb…R •”MณUUฆภš๔}ŸBฎ&cฒi�฿๖ฤ่†‘"+ศ3ษhG”ิdJกŒA›๔ผIหžR’ๅฮz†�ฤBเ#D"m<�oYf†|เ�ศLำ;Io7ปŽัฅq?ภร“Šฮu�ฦ๏�ป�€Gw^ใแูŠฬะจtษห†BK‚(yQAˆ(!vD*z ฅำK�OจะJกฒ•็Xg™๚I w#ฅIฟึNŽ่\rค+ค฿w‘idžƒsœฎึฬgs�p :OV(๓๙,ๅŽำธฌจฦžฒžŸ7o-#&หi{ข€ี๙}ผ0G‡Šn{BP–e๚œƒC�๊๛fŸฟ�O์ป‰ฑ|Z๛KฮN/จณ"ีย๚๔‚Xอ๔ึำ,–่,#†@งJl๔ฤฑgVฯ0"P*๐�„J’mpำ„ˆ)"%,า[feลdGฆv‡2o']’‚�๕3ฺร†‹ป/แว)%ฺ6� &ซจซ!ฮ[ฺ�ŽฎMv.B@™<ูถคdุb๛“™d: ก๋h๗{บ๖ภfฟ็ใBrjธณย]�.ฏ‘ฮ๓MฏูNH์ภ๏…"›ฏษŠ%R(el'ดฉศ๓ ญ3‚๓ษw^Tฌโศวฦ ๑ฆใKอ9฿ฟ๓ ฏ^mwภ* 7"โH์Fฦวบ๋[�}๛฿�๎SŠwภ\๑ม๛†<,9]%^๔0ฅ}ห >คัสR€nj[‚๐D”๔รศ4๔เy–ณธธKž็ าKซ* ฎฏฎx~uCฆ€ฑc8`�=ชhXžŸณ้'tŒœฎษห›� HMศ Œ‘่่ศLih)‘Jpป?ฐ๏GM}|ัY–‹†ฎ๏ูท=๎๑ฮ%9Eฆปž"C?คzF๔ฮ!ฃ@ห*i7ึง+nž~/�แ?�'y๐สซ%ฺh†ษำ๖I^bฃdx๚ถo�ท๘ฉใ�‡~ๆ๔)i-„ ํ01N6aณ46—ว‘น”ฅ“‘*๘€ณk=vt W ‰โฆ4ฐำDŒ%mๆ0u,f+lฌ‘๑ภbฑ จV้A"SJ]ศ ผๅ_๛๛�ี�๔ฯ๑��๓�!฿๘๎wธ๛เ~�3�=y%"ั;†พล;‡FคธใŽ>+\ๅูํ†๏>~ฦว>๑I^z๔ฮYดษŽี2Cำ,๙ƒo~ƒฟ๕w�.U='ห ๊Yอษษ)ปํ ฯ�ำ3|{n-ŒBำ๗E–ฅw�ำŽ–ek•\๎หบHR)ศD@น‰ฉ๏ภLmwŽฌžั]?Ee*ฯ‘Rณ�”jนf}๏ัMe“ฌMณ๕ซฏ็~์ัEžึb๛ บ˜Sึ3‚ษ๊ฦคDปu–ก�ำ฿^Q6 Qถ7WL�๖ๆฅsbฬ–๋TัƒTgณป]หyณๆ๚๊ฉนษ”ัธiเ๒๒’“๕‚๗ฟ�บฎๅโ�œ฿�ึทw7ฌช’�hชูŠ๙lFpSš€ฤ4Š–ZกDrh#DบQ�~ฒ ฮSUๅqํ”ฺ(ม8YLQ`Cค=lQช๙%Jb๘ษ๒Bโอ ถท7(“ฅึ๗t]ฯ89ฦฑรศHžWุ(pvdืuฅpฌตTy–ŒwY‘๖ใว`๑`=U]ฆo่ฬเดCOŽqq11า๛พcฐฝ<ู^๑๐โ‚ื_~ aJzoˆRั$Dฯ๋wf”า๒…ฏ~‰๋~‡;'/ณšฏฉŒ$;V‘†“Y&rฌ%WวTy1Jก‰J`LŽไyส& EY$p“ษฉซšU3cตX… W ฅค ื‚า(Œ”LdyŽ6yขต‰ิ…wร@ูฬ15Y’ih™ฆ‰ถmูํnq>ข๋ฆ๙ษ9ฮIŸ�ฬัZSี3nฎฏpำˆˆS{ภ“๕(-qฮ3์ทเ๊อต��“›‘IญˆAแฺ[ึอ‚ m”Œำ„ะšชjธ=ดุaฯ่“‹L*Kิจพง'†v‡ˆTžฦหึขข'ฺ„ รื(Ud–kฆ๎€1C฿‘ N้ล'UJ๊็(็+สฒ$ˆคกฯ‹Šฉ๏ฉ‹‚ี้ฦ˜„๘CR๏๗^~?ั[ดัษ์โ~h9ฝxH=_ฐXฎ™ฺ=‹ีQFส๙‚W]วEืBžแ3 ๛%7ซ;<ญD็ัFฃ๒กr๒ผ$/๊”8๏Lู`ŒB‰ไRƒL6๛ใ†1o๘ญ๒oซ o-Ÿ4=/-U๊ฃึŠึC78”ศ>๑ ,"ม)�พžxบต\}็’ล{๙€�๒นๅใKวฯ|lอ+g9๕ข šๅผบ,‹ศเ`๏’T๋๚I2บžอะE‘|�"b๒‚j6Cุ๗ถoษ�€ึ“๗ $็็ŒใD, ่๛.Fส"'(Œยฺภai2I&#ส(ฎv�>๕ทgนขฒช˜ืถhmd+š˜n„ฉ9ฑํง$F@UN=kRฐ%หจ›e2T^ฑ\ฬi มี๓๏๓่ๅ7๙์๙%๎>ธว๘~๓7~ƒ'ฯ.๑1#ชœ๖ูo๓โ๋‰ณ{เำฟ�ฟby็�i๏œฅ$ธsะ๏,Z‘tคwž�๗/๏4ู8pแˆฉวฎ$6!าMื๛t#O*อ4ฑŠQ‚�’gE}‚QฉSข@ชŒ๖ล๘[แ฿ใ?��พ๑ึ๏Qึ%Ÿ๚ิโ—>ฦ<›1ฒผข,ห4jษฏญL†)หtณ”Š0๔�๐G?ไ&(>�™ฯ2ฏk8vีวiB+อ{๏|Ÿ�๊ฏ�ื� หyC฿๎]`ržiJฺWฅJ'PUD™ม‡tšFkSฟy(‹Œขฌ“ษาyสขbtžร8ะvXŸบั8xว๗�ฝว^{‰ƒ<นJ9…)ค ึร;sfฑๅ7ฟ๒%�๚๖pฺœroqšพง�ŽษNHc˜gฅ5†H}Bํ*Ie ™Œˆ่)๒ๅCe–แH<…ฒศOฐc‡ฉ*ย4ฐ�nศ๒Œ,7ธ๖€g9ใะ"…ภZ‹)+2ญฉ‹ญ5Z .ฮ๏`Œf�mYœœqุn˜ฺ-ฃ ๊2ู‰ถk๛)Rv๊{f‹5ศ$UัJง๚�๛จOผ๚า็ƒ:EF่๖7�™งผ��1ฆเA^H%t๏=ษฃ๛ž!F”ากษ‹โง9ฅ4า;L˜’�ส(‚ษ”ฦFiT–‘ๅ%ฆlސˆs#Rสข j–L}‡T†อbz–&'ซkbŒLใHUีdJคฑrgG๖ป ีlEpEYฑ:ฟ‡ฦs{๙œ๖ะQฎNญฅwŽ„ศฝํs์ุำ7 ถ‡žn?p]ฮyงฌฐ‡mช๔Fก(บตˆฃมษ‡ภ8Y09“sHFๅŒ฿$—�@๎Y์ำ็9wฮ๋iผ˜mิุ}‹ล(๐ƒE =w C%%ไŠว1็ฝฮp๙tG�๔๊ํ๗xๅpอโŽฯ�ห๙่rโS'ŽO]Hบ›ฒ๎–ฬhz‘1_,i˜ผGศDŒR&ใ๖ูc๚ฎฃ**ขL;ๆCป#’ฒศุuZH6ทษฒิ๛D฿}คฉ‡}˜&‚าฬš•ŒL�Zc] ’#^ฆUสไIU•(1๚ภโไ„jึะ.*ฃ †<ำนf>ohป‘nr๘iค!%ฯnฎi7~๎ำŸแอŸ�,�฿ฟ๕7๙ท�ฯ�.๛7ฟภทพ๕Bย‚๓��x�ำœฯ�๑‘ฒ^ฅ”ฮPRฑ?Œx.Dฌ๓(ynศ๒<;๒€ค๏&X"Ž๛=I^ฬว๊œK7x‘๚ณ)88 ฉ�‘ษHŽ23Š<ฝdšqร๗ฟ๘W๘/�ร�+ฟ๑[ฏ=zฟ๖3�9{€๏จข h อ"ขจˆRัY=CV5�0าv]B–v#ฯ7ท�ปw‡—^y�8MHเ‰ฏ�+�gแฯ๓��ˆล๚„ฌ(Zqุnึ๑™O}Šzถเo‡ื_~•๓‹ป ำฤไ‰B:Hd2ม[สู„`FrฃYฮืIฒ4Hฐ#%‘!ะ๏nท<บŸg'l{หฎณธ˜ PMmx๓ฮœ/�๎ื๘ฮพฯƒล)๗N%วwHt4™ๅ‰…h"ฅฃDZ�ๆ†"O ๊ฆชฉ็K๚รŽั:ชฒ&›ZZ3ต๚ถK๘๏iภyK&q๊(Š2q๊‡ผฅn)ูnบฤ๖ cX-— ฮs่;JญศสYชE†ˆ)k๚�k-ณๅ ~< ฒœrพไๆ๊Zงษ†&�ุ%ึSฉFXV\ผ�:Cปเ๔มซ7‘Uฆ^ ~ๅ“?�yแ&„=๐าƒื0Yษ‹หkPŠ Sว0*อ~{› 3*‡jNฆR@งZฎะ:U0ชฬk…mw4eA“) bัlงภ'_9แแ9กมถmห7&I0ฦGTˆ(Q>0๕#ห๖ภ™‚FL�]Hิรป�(”ด:็�–๖x๋ฒ็ฤ‹ลอŽง›[›n%ึ$ ฦิ’qH*ฦรก ำqmแฃ _ฌR๗๔ฐง*f4ซnฏฎPBR53ฦ ๐H–M“่Tไ˜,AFขJ{ซ*7ไ&งnjฒฌ sž�'•h๏ศ‹‚ีjE^d�nwฉN("'ห9า<ปพEe2/ะ1Pโp!าžกX49u–�c7nqใ–ื^�0฿{๒”�ใฟ๓ฑ›"ฏ๘g˜\ไ๑๗พยr๓u�๘ไโs�ิ�ญc‡]หh}R๚t P&ง,0Aห4๙๑ึ1MŽถาศ�yBLA3ฃu‚๘คศ91ฆพ๖t๔˜w�ฤะ{ ฯ#๕์œขšS:ฅduฦใ?๘2�๕๔o๓�ย_เ็๏๒๚Kwyใ•Opq๒*‹ล’i่pB‘อ„ูn๗ฺ็<&หm’"L�๓โลฃstm‹ฯJฎ฿~๋�จธ|๑”๏}๏-�›�๎ฟๅทฟ�Uฎoท˜ฌ€8ป{ม/�ยfถ:ใษใw! >๛ษO๑๔๙3ž_>็ัษ’ํพล“šyfhV *W4e)#ัํุ={œ^�ณ�nรๅฟ4eยu�จ‡อ-1Šzภ๎ลำtS�oศช9๓ป/ฑฟ~Nึฌ˜_Ad–ัnฎS•ะZยa—ฒ y{plx\_พ@Hลa{หๆูSฮืK”ั\m[๊ฒภ‘z๊™ก(K๚>ญ,�y๒„*3ผ๑�0?=c๒฿�า๏pgนฤู1™ํtFžkฺ�žE&II฿&4๓4 L. 3๏;๛=โ่Y1$็y^‘g่ฤแ—Jฃ(ชšพ๋1E"ชIJ#\;u@š 7ถ๔cRYR[ถ{บa8ธ* B๐hฉSภKk”T€$ืŠปC‚ออ “ณุhนนฝf฿ฆ !ฯ[%ษ4ท{๎NVย Qฅ ว{ีœ�ู)›อQ4de‘‚ช(q�!…ฆึIDHล่A5>xขส่ฅN;™(]:หeอ๙\๑ม�!zย๕-2ภ๘^U๒bูpS†บ มฺ ญฐป‘|ณลŒ#์:žฬผf~Vsน>แYSฒฑฐู;� ’q}ฮปอ+|ฯฯำ่ฦd้-* ™ฯฉ๊9มNLึ"€eS1›อจ๋ณู’;๏b`�ŽdEฮ|นยไm�‘9~ะxŠ�ฐX,(ƒลd-’๙ช�๏1J0ุd๔)ฅ s้—็š�fห~ทCJ๐Qเbโฐ—ๅ ฒtxฌหค~๕ว�ฅw-AO฿๗-ษŒaถ|�ษ5ๅ7พฺ๐+ฟ�ห|๒ฃๆญoฟEธy›ฯ��'๙ๅ�แฟJ^ฮไˆท6๐โๆ@�it*$eศโ‹ใ“Fรฤพhป‰qJžp!eaศsฺB› หฺŽ<ฯ้บ�ํ-gggฬ็็ไRehญ๘๚฿�/๘๗�฿๚Gฟหb=ใ—^ฆฮqr�%<ป๖@TคNŸ~`šฆ”�61/9 iว6Zวd=v่† Sี˜ชแ๑๓|๑ซ_แซฟ�๛|ๅk_็้๕žบž‘ๅ)๚๊๛฿ไƒ๚(๗๎\pvบ"ฏj��๑น๗‚ลbษื~�๗pC:Mฬ�ุSๆš“บf�฿’๙‰‚ˆท|Hึfฮ2ย4า�^ฃŠ’“ณS ‰^Wี 2ฯษซš่&š๓๛ดื—้–โ#c฿“ฯMPSิฬฯ๏ž�๖Šbฑ&๘dS2q๖ป�†lž?มuสคไ๖ฐฟลv ›[6M"3ึ ๅ|มas‹Ryb็;ีA(Uฑกฮ ๛�ฃ%ZI.7ˆ–aฐ้™$%“ต�nท<ผw—บชฉ›š฿๛ฦ7ˆ�S•5 Cw@ช Hกอ,#ืš~Jน„”8ฯฮมัrWJ ”2ไesLOOฉš่]ร*ƒา2ษQดbrž››kbH์�ก๏“ฯกmQYมt|๎�lฎฑ.9'Rm+ญ€fณtp1JแƒGeej•อhงtH -`ด–�0C`{†กKฯBk ม%�่| คถ%ฒk๗\‡ภฃ7?ฤฃyลำet „ไ๕‹%q๗œฟ๑ๅศยM�ฏO(ซๅ-%–eSฆI'pถZ’๙๏=ํะำ๖๚ถMำ 7!ฅftู1—ิu ![ื ‹๙ยัิ#ชhPักณ‚j6Oภ$;ฆIq^%†ภ40Ž–ูb๕้3 nคkH!ัJAฐXั"ฝ}<ณบก™ฯpA€Kˆ]คB้”ฆ�opvค™อQZb�ฺdl^<#ฤ”L฿onqำD๐ฺิจ_�์ฯ~พ.j�p`่{ฎ6ทlmฺ1*I? D™aข,J|ZโŒ>rFฌตฬ›�PaB๚้&Jc(ห”Z๎‡Žณำ D$1ฯปgGฒ�็%หี9B)Œาh“กณ‚LJVw LŒำฬ™๚?๖ฑ<ฟ6Šq์)ช6D9งŸฦเ RแEฦnฟG™ฃ›Zi๒ฒ>šฃ$Z>�wฌบŽ0ฯxQ5์ +K>๖+Ÿๅ�ฤ็X–ฌงํG�D;$”kGxF 8ฉy49" ชูœ`-นLฮ’i8?Y3๕ํเ๙�ƒY๒ฟ9ใธž�ภฎชธอ ?๔๏*อ๗TNฟจะหšผ0๘ึQถ-r?R๏[ฒvหขผ๏ต%ปLฒปณ`บ๗om_�คศไโ•”Mลฌช0ZSašฐํ#‹ลœฆšQ—๓y…”šp�wุิ ซๅ’<3๔ป=�[|฿2/sสลŒร๖†ห]G0~šจหŒ~ด๔ึณฬ…ไeš6๕‚ํnห�”jCJfซ5žH–๓Y’  ศจF-%�aฯaœR2ซkt™ก� พ๘ญ๗ X๒สซฏ๐กผฦwฟ๗}�๚ๆ—๙ฃŸxภŸ�W� ฮผšv—ำHwไtwcา):@Ž๏เฏฟŒาหณ7ศฒ!]o™\bKKฅำอ\Iช2วd้ฆ‘rภฑ๊fญg,‡ถGษศผYPV ˆI9(Mลดyส๓�๋�๎฿แซk>�๚›|๘ี‘‰อrฮ3ฎฎ7์v‡$“่:bศฒฦO#Aid5c๐ฉ5�tฌษ„€iๆ‰ฝ=�lny฿›ๆ�ƒ—ุwu=cพ\q�แCฝ๒>>๑ฑ๑สƒ8›8ฬgg�่ว?`ท�!uค&บหœฌSF`์8;=แ์์{ุฒ\ฎษ›†เ,๓๓;,๎=Dเ้nฏˆDœ ฬ—ห$ุ™อˆม!ซ&ูยฆ)น—๋คฺ”)”—5y‘ŒanŠ่�>y;๔อœเ]eH‰ฮ2ฺซ็“’๔y5KผŠรž๑ะฑ|๘ '๗_Jœ๛ฉฮ๏S6s๚›K๗)—K๚v0ีlAt–›็Oะ ฮNึุidVื์‡‰ซซ+ด‘t‡–aัF”†๗๎qq~มf฿๒๖[฿ๆ�้I:ฤ็5Ÿ.yI�ฬ!žฃR 2ฬKLVเ�”jขGž๘dำn:หKขK$1ฅ$�O K->�„=�9ถป[ด1dY–~V”Fˆ๎EŒJบ�a้บžฆชC>หpvLT8็@Dฺ๖@�v(‘ oUีค�s–แฌ#Ov ๗M!�ˆส ๒,GJลพ="ด�žหอ –^โอ๛˜ขBฉœปห†๖ษ๗๘ฏ~…�‹๗ธ;?G ํ…–`-™H—“๕iชป€๓ชnPฤdฌิ)ไ:›-Xฮ–ุกe๒IBT%ฆฌ �cLท#ฮŽG*c“#~สJ๐lทท 4๛�†~ด”eI^dZcd$xK–•่JŒํ8o คP~Le๙L3[œ0ถHm˜53ŠฒN;kฉ๊šล๊”กkษ๓ŠฒJจ?S๐ธq`>_RฮWธพcšFๆห4Ž๋๛Žฌš!ตas๕ŒM?ะGลu70Fม0M๖[œB0#๓๕)E=วNh‰B•ขศs�x๒.ง๛=‡ีœซ๕9w/x๓ƒฏpz^ัhฯ๋}}ดเอฺ๒f6r๏ฮ’๒dม�ซ็�๔žnŒ๔รˆท#“K07 ฉๆ5&ภฝั9C?p�Žิ™แีœฃOh7ยอ%งi1รHเโdลz5G่2ƒ|้๛ี)Wyฮด\aต"ธยCด฿สชkyๅขfกo]uผc+B๐TYN–”hD๒ะ†˜voึก�ํ Y�ะ6ด›MzqF๒oฺaD{ฯ๓3l?2๙ศ{๐ฮ3์[FKป�“…‰ปw.ˆvข6š\kšYอ|�P*มษษŠ๋›[ผDำต)‰Ye’uฎ�rำh)qB2: 1’‹ศu;ะ๙ˆ1*q�๛Ÿ฿๐Oทิ๓%�ุ๙%ž]฿๒;ฟ๕w๙™—4�ณๅ_ใO�"nL้็Cืณ�๗๔dนฆฉsยํ—h๔wนx๕r๖๒็0Fงํ”HT!Fฦ๑๘(K๒LกUJึ’ญห9Oˆ‘ถKถธ�กงฎr๊ขค(+$iฌQ\ฝ�๘ฟ�๏�e�๒_๙๋�ํ�|๔!^y๘Aฮ๎>@D—Bา$„f ่ฒ!๐:#++ฆaH๊รi:&�I”Aภ[หไปถg�๕\๗#‹ลŒw/x�์Y5ใ�ฃ‡ผ๑พื8?=ก)Žผ„ัฆ>#y�๔)��ŽๅjลaทรYจŠŠyณ(sดVฬrISVไ‹5JDฦรž๚ไ”iุ<}็ฃ๓ุฉ%7Žตฑvฟล๙€ณ}ืbLŽทC๗ฬ—ษ48๖์ฏฎจWงH)้v\฿งี”Jrฑbุ�"‹ ็E–กดขœฏ™บ=�แ@Vีฌฝ†ฬ2ˆ~{MดruB{๓ฆ>‰#LN{{Ct๛ํ5๛ัbฃJ��ำแฦzZ้ฝg๊“”ฅY%€ˆ—9็็ง(‹๙’o�มทจ3ร๊�‚*Wธใmปศ Z์d“vม4ŽdZำ –�ฐI้saว1šดมy‡‘ฉcBคส rญมbŒฆ๋:ผˆ�โ|jWไyž€0วCNฃ4m›R๏ZiŒิ˜L1ุ)ัรฌลN=]?0 C๒~Oซู2až6.b$W’2หYฎฯY.ืD—Bu๘)แ›]Djƒ๕.MU‡‘�๎†หฑe<นหวผฬ้jมKwNq7ฯ๘ๆท~Ÿท?ๆ๎ู=.๊vLที“*cีิTEมlพ7aงy t.gsฦ#3 ,„L0ฆจ4Ii’ร< €Dต“J%fY`”bp‡� RH์ุั๖ H5ส,ญ~ซ5™2Œv$Fqlฮ-๑ำ@Q/ฉ—+์ุƒิŒึ3u;„ส Jำ๗๛-ณz†๕ibฅMF–iŠผฤM#>ชูœ(ำ๗o�โ1e3วGAŒ>]ฆ๕O|ไฯ›[ผฮมกฆ‘i์ู'}J'�๋ขฬ‡.ี ๒"฿ขKษbฅP~�SešบชAg๏˜ฆ‘“ณ;Ipุ่ลo:–๗ฯ9)เ๕rโใร >{ฏเg?๕€Oฝqฮ๏”�[eิ*ฅฉw๛=nุi$ฆฆ‘ษ;ผ”ธ~ฯทŽZ\”˜eฺ“๋่น+=f1งEpฒjx๘เœ\ฒ"c~๗ต^ั/f๔' ฎ žE7L,jC๎#ร.๑„ัด“็สiJ“‘‘Xไ…(‘ย0~‘ฆHฐ ์HปOaฆบช@kd•MC>_ขLN{{ลุตeRˆี{ฆvŸฌEAต:ว;K�ืฐCŸย|ฺ$}dป#ขฐำฤๆ๒)ฮ:๒ล"‚ˆG"˜๗ /ฺ‰o�๘ขpฌื'LฃMnz)S= x๙ๅ—šYฯvฟ็้ใwSOœฆc๗�จ7ู๔ฒ–i)หRh๏ะuˆูv Lชaศณ"ตvŽ}็,3‰X็#Sท?๚ล=:3ไU6†เ<‡รž($ZฆiยMมY฿-R�„[n๘…(ะ:ํฑหข8Z�R%5 (๓ถ‡‘( Q$ฑอ8๔”Y ๕ฉ‰ศฤฎ'ขwx—šปpw๐‰‹SfUอ�๚฿๙�ฏ๒ี๏ฝEur‡O฿ฝG!%^ŠhYTe‘‘W5Jย~ทa-�O m‹sBb๔(mPภf{หnฟ�i 48วะGร{„ภฃจ๊v่ำgค3ผทT‹๊rŽVšขi(Š P๚"’"&!—ต ี"ฉa'*ฯ๛>ภฎ=คีึแภู้)นQษ่)5:/๑ฮ3=y^BLอช่�nKืถX็ุํv๘เษ๒‚ฉ๏PŸปป๚ผ#ะ ;)ผฑา b y,ฏOึ&Mž4์บaG๔ัฺRC™iดฮฆ‘awM$bง>i$วญsšี)Sฟgฟฝazšู ผรน๔%ง‘์(0฿]='„ด๛Bกซ9ปถฅŸ,“P่ขLกฉ‰ำ€w^H&า˜ธช มQj‰ต้หc‡*ฏาืึ;\ ||�โˆ�ฬง8ฉ ย›๑้sx�‚ธ�ขv[ธบฅ‹ฐน> Oๆlฟ�.๚ป?ๆมดๅam๙เฬ๓™ม/พฏแ—�‘W>�ฺŠห๋Ž 2วv;2ฅฑB๓ฃm ป<๐สJRผ๏Aช์v�-sสบคSลbNUfฌฮWTฅยH˜ืš๓ปkึ็3b™ฑ/K‡ŒญT,ึ]Y19sั๑ฮFU`4ุใ)ฟnๆ4ซิ็R •ไ์์”๕๙]DปปaพXR-ืฅศ๓œเFV'ง(PR$ ฉ%�~OŒIคžyีเบ}๊๏ำŠfฒlฎฏ˜&GŽdตl(”bี’!l�ิไU…*j^~๔ˆ“YษเS8ซฮ สชเ|ั0ฏK�ๆ E“๑ีพวr9็ฃ๏•฿๘อ฿F๖๏๑3/7�์/�ำ\ท–๋ฯ�Y~๋๏�&‹ๅSฮนู ŒNฐ}็๏๒ไ{�ˆ๗�์�”{/}œi�3ูˆšษFํ@?L(’๐แๆ‹%(O^A’ ˜œOง๑}oงdhช๋Šฒ(ˆดษx๒๛ƒ๗�๐ฏ๒ํ_๑ ?๓๓ผ๒๊gB“้H$ruปe 09Kฟ�1ต]z`kƒะ๗ I�ป$‡‰ขด]ค๚ฅ’bนฆจMM‡‘›ึ'kdŒ�๘ฝงฮNNy๕ๅ—่๚Ž7^\฿ B  คH%.��๖€ษr๊f†ษ3ะIŸ+‚'Hะฆy† ฉt• ]K1Mาb “~48ๆซsคษุํฬ›n่™์”&.ื†i$ฦดŸy)*ŒาTeIฆ2Lž!HแR; Teƒึš๖ฐ)นพนNใy%|ฤไ†<ห มใง.ก|ซ9E‘S็i ฌK6วc�kznŠ’{หณ�๑o~“฿�ม�\Zžัxฯฦ:*฿sg™4ฆRiœs น* R 1}ชwU•ฆผัปTน‹;:" |#ห๕iZg˜DฒX—&.D„สR DgวmJดŠถ—„F&gBฆ 1x>Y๒บ‡� ใ�“WŒcOˆฒJ—ศฆ™!ahqHŒ€�๎็[^C฿งฝบˆ �ี #I^5t�mช-~๒•—>‚งณžกk9์๗�ฝC6ส$v;8œ‡(วถM ฮs๖›K’ปw๎’…๓Ig"I—†i์‘:ร”5ใ4ะmoRˆFๆซ3Šขคž-ˆDN๎ผ”�ห�ž ๅ)Hล`“์>JษK†ก�'฿7)เไ•!ห ข›($EJุถ�%4e3c฿ถไณฃs�nnˆ:c–ฬƒ;<๚ี_FLb฿&`sภlฤำ qฟƒ่ั—aB7%ล๋ฏ๐x?๐๛฿yธ�ใ๐”์fƒvžb่ฉงžีิs&FNŒ%ธ‰Mฬูน@žšฬ๐ธ|๛ว—ฌ•ใโีSฒ2cฺuœ(ษ๒dมํdฉๆyฎQ –'5๕ฌค๗‘›ฮ3๊’P5์&x พf|yX๒ฅ]อ;}B\ถQQ�'๗ถ2? ์/Ÿ0#ๅl™iUษbน ุ ฅ@•9ทOŸRฮ๘รž›ง๏Rฬ”yI."*Š,Gวˆ๏๖ศฑgฝ\‘ๅร0aƒภOป�ฒตtฮู� ๎Pี3๒ฒF็9>B!cโผOg๋งกšชขษ$ฝ 4นฆฐ=—OžbŠ’ƒศ๙๎ณKN ฿๛๎ฺ่+�ศ›KtฐPŸ๑g��?ฯ๗�ปๆป?zย๓g—ผ�gคภ�พล‹ท�>�ฃ�ฏฝ�œํธ�์q.0ZO�๕์ใ๑ๆ0�ื˜ฏ๎ฒธ๗๓า!ำฮึG๚�qh{ฦa ฯBD2ฃP*CJรฟ��โ฿�ื�ื�๘rเำ๚js‚. �~ห~ปe?z‡~`๊{ค€ฬ$’™!7*ํภ•92ดา"Gืธ เ€�34u… ,ฯPRp}ณๅjณ็๑�โ›ฟ๗uFŸ*-ตVผz๏>AgL1ฒ^ฬธwvF�4์o7ิ๓&หฑํžบ™ัฌOlJy….rส๕!X^<~‚า9*Ošาพm้ฆža{หิ๎ฺ6�ƒg๕‚�ๅ%nšจVgdนa์[ฆaภ�’�GยZ1[ขหืwDญม{ฒbGโญ1ณณ ฦ๎@Qี”ซSœsเ&w๏งtgtด‡ฯ฿{'ฝB ฏ็Hฅ98๘อฏ}‘•|ไC ›�[nฏ_A R„ผ๖่!ฦh�}๏1๏<}FˆžปซeJ-ว@;X๊ช&†49,T๊๘ŽฃลzŸ๘๎ม'0Iจtž1ถ�ฆษข๓‚›อ%๛C—h€~DๅษrV†y3K€_ฉจ๊†L%Z]?Y๒ฒ"หS%1J•F๎มbญ)™&D์8%‚ิgQYN–—4MŸฆTฮK�x�“<Z็ธ๛v,๘่1ฺ`LN฿ํ™๐๑AๆMฮำ�5ฟ๓ป๏๑๎อ�W~•yS๑๘ลŸ��ฅส,฿�ญ�๙ลว๘ู?๔kh้ฆ‰ˆคํ=�mฯํฎeด0o๖๒o“๋‚ำW~๏†4~K ฌ l๗=ท›Ož�ข3E‘ฅ๏ด9๖ฬŸ|ใ/๑๏�ู?รŸ;~๙sฟสผ8% อbNw่dNะ%ร0ฐน�$’Xžณk[๖ฃEMpŽiJNโี‡$„S0ฬ:ฺพCdษณ*„ฤ๖i‚0ต{ค€zถLฃ›0–vฑฮฑู�Pไ"ฦผโtsษ+ซ๎_เฌC๕›ห~'(�ฝ‡วEŽ่-3%1›ž๘์o't�1฿oYVŠ;๏€ช+�พxkา|ป<กๆฑ9ๅ๗ป‚ 2ส"cน<มds iแqR๓[ลื~ะQ๚–‡ožข"zห�ฟ�Cพ๔^ว฿�ๆŽ฿y/๒tฬ!‚ิ/D‚ษT%J …–H)จ3…Œ™็Œ>ขœงPฐ^.RK$‚˜8ฺƒ๎ฝ�ร„1ะgงœ�นKทนแู๊๓ฃขuภฺี�{(“3;='Ÿฯ1Ja๒๔%์ทท(<‹บ@ฤ =ฏฝ๚sแnไvปE5QJ677ฉ^†ใtฑเแรGฬ–k์ะrzvFž•ฉva2ๆห%CH •ู’{๗๎๑๒�{�่w่๚Ž_๙ฤ๙็�ุ/q1Ÿัž๓ใ›�zlyํ๕7x๙ัพ๚ีฏ๑พื฿ฯ/�์G๙�ฟ๛Ÿ๑ฝพว็~�ฬฃป'๔รภ4yค2 งฺ๔“ 3ž›�Q๖ซ�–ๆ้Aฯ่ๆ˜ํืญต๖>๛œ่ฃ"#32#ํช2%งซ\UTแฒฦศๆ!ม_ภ%w\โ d‰ฦย”Œม€ ฐมฦธ„(ถภๅteใฬส.๚ˆำ๎ฝW๓uณ ๏แ‹RŠPžณึ๚พ9วx฿฿๏y~๘ P_๛๎?Oฮ™”„Icไ:, cเx๎y9��mน�6Tฅฟ! ~๖� �ต้_ไrๅท�ัฟB�ฝ/uย%๚a”=5™หษZณ&x>]–g4ใ0Hๅฯๆ›`"eaณ+#ฒ็>Sž7~ศ9jฬ=—y!dลp=ณ,+?�ม๗๙๙Oฬ๕๔ฤŸ}ส��ไ�€/>�9ืพวyO฿_จญ็7��7—#ฏบ’]ๅIำ กฝ๓ ๋+ดQขlดqBฉrยNฮgฌqTป{Š, ้‡o| 3ฮ{1ภe๐M‹๋zโŠ’๊๎5Eท!)ู๏†ˆ10 W!36สˆ"๔ๅณOy๗๙ง 7ูฦบ,Lง'\YฑŒึ9>�๖oเ๋Ž—ฯ~Nฬเ›[X^žL๋ย้�[6oุ๎vจธŠ%ฬWค๘ฃŸส'/|ๅซ_ใ๎pเฃW๗”MK@| ///ฯฌำศwพ๓]ฆyโw�๗xy9Rี5_z�†vปฃ)9D’rcฮ็+^ž�b$uUกอแcฝPไฆฺxb˜๐�3#พ้(ผฌKึ(†นำหำpa]a]ไ๙๓ qฌ2NSZ+aไล3N+9+Izwœ/Yฃtฌ _�ฐทึ…สœ‡QุแึัุBt–ฤ๙๔,ฝ๛�อu˜|ีะี YLQŠฏ{น๓žo}๘u^U-uQpwเ�k:oู๎๏eว?^)œง�์Hk .=อ๖Žyž9_/$ํ๋ยWย<“rบ9!,ึXŠข`{๚๋kKž�/pฌ!ฌ”ต$๕๛qขช*1–%1E้฿฿ 59g še%/ีฅg^ๆ_ึ�ึyฦบ‚iผP6-:Fฆqไ�ีr\H ]4c&ล…WTJ4mGQyึa"ฌทบuX˜‡ณพ็๓ืๅ฿C)NงณผTตแๅ๙ๅfฯlJ�พ}ห†L[ZlZู5NIaฟ๒žฒ๐\Oฯ,หDแK��3ฤo+ฮ�u๊i๗ฏY็ใeŸฆา7Ÿ฿ ปึZ–˜—•„aw๘€0_ฑฮ1‡IN@(žฮg"Z Fp~9 ฬ ญ M�ฐู่ว™๓๑฿ถ —ใณF\Iธžฑฎ $จŒฦ[2Ž“rผฉ4‡_๙บชˆวญ$๋๘ษiโZี\�|ภฯห†/RFง•fอTK P‰xผ`ฮฺ๙fซxp๐ZZฏ่ฌๆ4Cธ%™ฦค€ทซ-/งชบข.ืd๘‡o�ห…_�ฮ=OSโใŸ=๒ฑ�๒ƒุกำฬฮeJงัึ w !‘ื•u™ฃ$๙็eฅPYุู&E๊ชฦwX) Oู4l|]สํว;tŽX็้/>�ัะฺ /Pฦั์๏ˆ๓ฤๅxD)8พ�œ9Dฮ๏ˆkภhwดาธฌ0 6�Uืฑ\/จ้J[X^o;^=<๐p�@wO้=›บค�lฉ๋ศ<Ÿฮด�ณ�t\Ÿž9ผzล๋ถd=>Q8หกt�ึทพม7_ํ™–‘๋๕ยpบ๐g_<ำ'ลwพ๓\.�๐�€_๛ภ๐��฿ฟร๏�ฮ๏๐แw�&ใo� tŽ๔ร$ {ฅ™งภดˆ\ภ>�{ฬ็g~ใฏ�wจป ๋2กnย’Kฟ2-‘๋uไ๑้BUU|้อ=u้ฐฦQ7{>�ณ��ว�ๅฟฤ๏�ั[�ยŸ�kธ๒@ธๅMๆyfš'NืžำตgšฤWผmkaฉ฿ŠMำเ\ม๕|f^ใ<ณ„ !ฯชยb0J7eaSXTŽ๘าณฌ ๛Z”/งงiเr้Yๆ™„ๆ|ฝ๐ำŸ�”ฯ>�„——#ใะK:ค์6"ต!s}yฆ;0…gบž/g†๋™œZ[สบใํ� \ม๓็Ÿ�ุFRฤSQโn?>>‚)LZ&|ณมี-ำๅศๆp*œภFฒโ๕7ฟ๏6ฤy`tŠEq%หxEkCัดt๛ำ4๓��๐9Ž3ฟ๖ซฟสGo> ฉฺถแ๕ซWไฌ9ฮde๘ฮฏ—ฏ๙#��฿๛ป�ไง?ฃ๎ถฌkd{๗Š}SR'yนLำˆ5Šช,…ิฆฅาีถ )Dฺฎรh๑JR–%9‰๖“ ำะSWbณฦr:=ณ. ใ†œลฦณLฮ*Wเดกj[šอ^j’ZXKHฒ“/ญนeKDœ’ศ†q ๔ญ5O_@Jte)bœ รผ’ใŠ7 ถจ๑U%sชฌ(o๙„f^fสBำ5[j๋9Tžํๆ@ใ ]ํู;-—ฝe"ฤ@? ฌc*3ฯKฦ†ศฆ2!^ฎ”ใ=-tF๑Q—๘j—้๛… Žห0cโ:‰้-ฅ|Cฌ� Œใใั๓๎“3oผๆํsO‘� ำ*แ‰e€Jก”!†Hผ1เ—˜™o‚‹„…_๎ฝ B�ฐฮEQืbd|yO{� ง"็๗๏"`ตแ�อ‡พ๚MRˆ˜e ู฿3#ใๅDŒ‰วฯ?E+อ๖๎mืึ@๛๐T]ถ{บ‡W”›-๓๑H]•”ฦาmE:แซ’zณACXŒ+@AXW‘ะอt:aH46็‘4ฯไ%ฐูv”…•๔จqt›๏?�‹)๙�1ะ _~�š๐ปฟอŸ3๓ฦž9gขi๘ง�๋�mพ๛_ญษ1ำา8žฎŒ l์'ฬฟว7��‹รซ/‘sD+!ฎMKเt™8_F†af]#๛ฮำ–Y,†|�ฃ��ท�ย๏�๎๙ี_๛หTี=ฎฎ8o฿พežrฮLซด1šํŽtฃFษณEฑฉk๊ย€VLำŠบ‘ึฅgœn"ห2 ณ> *paฦๅH]•|ๅฃ/๓๖้‰ำ(72c�ญb$e%’ ็,ถ(๙Gพ๕ซl›Š 4]กูด-ww*›ฉww8Wˆ—ุtู0๗gัํ†$�,ป็จแ๒๘Vเ5eอ๗็3ma๘์ำ'�ย7v–Ÿž๖๐†œ5ื๋mE�Rธ‚kHฅษภฯOงš?;G^Vลช%D”•ใˆช ดF�ภnฟGIฎฺย ƒ˜( Soiœฦ…1„izSJ˜ธ2W†งทŒCฯ๑๑=eีQoท�=ผ&คˆuŽuธขดe๓ม„ua:>C–tgY–�๔eŒ๗”›=…6V๖ด๓ศp92žO,ทQZ +ถชฑ�๓�ูงœ฿ขg<ฝ0ผr=>Sถ-!ฎไuข(;ฉยEนู‘ต๗แ€1–ชขก/K^�ฝฃู๎ฐ ดUไ k†ธฮ2qšg–I‚Auื–™๑|�ๅศ�_๛+kฬCOูmนส๊wZ่ฯ/TeEYv่”ธ\/(cภŒcฯ:ฯไศqb8Ÿจ7;ๆ%ะ_ŽxงฑM#—ˆห๓O~๛[฿�”žešฉšๅ –˜ะ*3]žQ)าิ-ižYSยox# ๑ŒTgšร=ใ๙™q์i๊Znfใ€VŠyšXๆ+๓<1Nฃ0ธื…0๕ ื๋<ฑ��AŠLำ({๏ ILศ„ฆ‘ำๅBL™~ ผ6–ฐ ไU0๓8pz๗sŒ-˜bdGฌ—ะVฝฐ,3Yผต˜H1ะด-หๅYNจiๅ๔๘9F+�๔๓3qŠ�๚Wถุส–…๖|dŠŠซ๓>g^ฦฬ’ใ�’X3,บฦจฬ0อhSˆ็U~8๊ยQiInž–H.;FSกLษŠm]ฃดข,<9ˆป:„ˆบี�๔อœัจœ0*R9+๛ ข 2b`rEAทูฐ�tาฑžษiดcsธวxฯ้๙-๋ฒาฟ<ƒ1ฟผจ$:อ�รฅ/ ae.<}�)รๅฃเ๙ณŸs|zว�œŸžู�?@Ll�|U๖œฦ2ž^( OสŠnป“พiŠ„Xฆ•fwGณ�HGธ(iท;rœiPฅ…ีไ$'๒ežy<ž๘ร/�sพ\นž^๘ฏ�ล฿`��1Gหฐ<๑tน๒�า_ใO�๘‡�w�{�}~๏O~D4ฟ�๛ฟร_๚ญฟJu�=�แ��ไีฏ�s|๐แ—( มฅฆ˜่‡…Ÿ๚ฤ�๗gสา๓ๆีum9์6x[๓ำ?�๙ท�อฟอ�มธฟ�บรWธŽทšKJฬ)ึ•)kBNxฃะึp๊'ฆห•~ B|2*4%Œqฒ�ฮ’_่šŠuži๋’~‰xง๙ๆ›{vฅaSyสBไ*9,คuA๋ฬ้้=jyฝ�r_ึ์+ฯ~ปฃvš๛ส๓อ?โuW๓ต^๓+o8จ@Xf๖^qgลง�–KR™ด.ฌทฝผญ[ึกGูพ๚ˆ๑rB็Dำm(๗๗Uอ|:ฑŒื C฿s๘สื๑พๆ๒๔N€ใภ:\!‚+H*ำ_.(ญE[y=3Ž ร้H|ข�์QZ3_ŒฏnŒ่‰ผย,ฯ“#1ดumัF3œŽL—+ฺ•คyย– K\ฮ'ชฆ• าvKีvUMœ'’+๘ƒ?๛3|U๒๊แžส;ฉn)ธ๖=1gสขเ“Ÿ�„ฯฟ๘•กฌJœฏ้๊ ฏ6 อกญจ*an๔�™R+๖ฏ�เห’#ฦชถc{๓&นYvปรp37๚ Rโ|ื|RŠ5ฌh็๓๏V9ไรu’Pื2ฬcO้ กืiลvปงm6%/o๏„ึ ยŽบn9_ฏ\ NฮI๛E 1ส~ถฐโWd9p, k„0“Sh-๋Ž�rฦ{q8ฅูlไ0‘};J1Nฝ๐ํ‹’kd่{า tฒF;วๅ†ู๎šrภW-9&‘ อ#J)B ฌ)QXอ๕rย]ทกฉ;œRDฅhš mำ’ัฌ๋„ษ+Fe๊อX๎rf‰e]X็žiฦ|[_ถ›C฿CRR฿,+TฮLห*Acn��ศ�_แแฃฏJญyน๔*ฮทš™"†‰"Eแฉš†t๋iื  jR๓�Ž๏ๅแ„฿�กดแ‹OB/tuร๕๑๋ฒเ}…RŠy่ัึั_ฮ|๑๑OธNWJ_cาสห้ฅภป’ห๙ _5ิUรต?กHXSศฟผตrบu%ป‡๋ฬšช!คฤŒธ`Lมผ,dm™b๑zhaaS—ฬ�‰”กk78k˜ฦ‘€&dEi-คDœผฏˆฺฒiZ๏™—™\จy|zฯฒ๏w;บvร��฿š๙์�ภw^•&ฑ(หWJรฯฃึ6["ฒจฝa๋ TNผ‹%OนโใP๒3ปใ?5ภž฿ำฟk>ท;>%ณ๕4�ำ”žย ฺ:ฉีจศ)3ฬ 1E๊ฒ‰€ีฺšeฉ*/ฃ๓นG+ม'ๆ c–�#ฦŒ+ ฌ†e์ั:ำึ5(Ž‹L'œม5๗ฌใ…js .+:Kทั5 ววw\ž_จฺ–uXWPo:N๏ฟ`žgQƒ๎ไภ7อœ฿~Žq%qY(ป=o?�•5_�*�๖ =๑อŽœV–๋Yไ'�Žฒ๋จฺŠf'ใะ�JQทŒร™ฒ9Cึ™ย{LY ในฟp~~OЁ—woู้+ไ9ื‰ว5๓๛?�”ห8๐Wฟ�†/ี%9ฌ|rน‰�‘OŸG�ฯ�ฮภฑ๙›ใo๐ฏ|™?�Œ๎Ÿ๙หคŸ�?๘|ุ๓O�ำ� šช@฿ฬOฯฯ=ฯ'>}+Ÿฝ/ฟน็~ืาิึึ�่��๚ฟ๚?ไ~๗Oฺ่W์๎พADษํ$Fพx๗Ž๓e คDeŠ€%$œ†ค\ั€จ,EY™ฮ;๖ปŽMื b ,"น่ รฮJปj:./ฯ$ไwu=DBt9ณLเ Cฯพ.นซK>z�Šฏ�m๙จ+๙๒�ฏ�mูบL็ ฅอ|ฐ�ฒišฆฆํ:๎฿|DYืฤq ญ+1'ึy–ภYSCF\…Xษ’6˜ช†�ฤ�Ÿฉ๎? jjt\ษ B œOGด๎t^0บ๐๔ฯOฦ”`tใ*กฒ๎๐Šœ“ (ง~่e๚g„Zีด0†ฒlุ๔5สช Šอ๋/Qีใ๙„ญZ–๑ส$SfžG๔m,:\$฿‘c`นžฺ่ ?z๛ศใใ{.็1‚+<ง๓…—kฯ4N|๚๓Ÿ๒ง๖g(ํ@หา�‚�๖ภ��]]โUขญjy^อ ีf‹/ ดVฌร@Š —ใหmBี‚)„™ฑฬฬำLJ‰yบS„”˜Vษฒฐๆeฦ:ท ๋ฅ-N+ึ˜0E1�"cด0้cŒด��a่๛e1)า�.a]1FsŒV 3mำƒฦ9‹ษ‘nsw ฺษ8�CŒAชRหJUตTmร๕rb™'ฆqี*Ž๔5%Šชฆ)KŸGy�Mหย๛ฯ?&ฅภ"qYh7โ2ฑ\Olww‚a^#Uณ‘ ^ŠXุ๋?|(‹uฤ ฦœsX[p9Yร‚ส‘ฆ�qF.งw#eQ’ตฃํ๖(D\dŒ%ฎณศฉ๔ช1Šn{‡R ฃฺ,qฅฌ;P7Hหบ2ดแฮ8ฌ๓ฤบLฮ2/ญE]cn‡�อfร›o~‡ำำ๘ฆ๋X–•uy +ๆ/ฺ๏MY๑๊๕—p$TLtuMQ””ี†ย�ฝ�ˆอfK\Wย:ฑ}x#ก€�อ–ํ�kœ5˜œDv`-uำ ญC)Eูดl6;๚๋_uXmx๓•oฐ.#aˆยแ�รศฺฒฮย|nบ;\!ขx“"6ห OๅHศ _wขAtัpTMKa4…ต”…ฅจV๋1$๎ท๙&ซW9ำu-q]8์๎ุ๎d<็ผงkk<‘พ๘แg�˜•‡_๙ ว�้ฤฯ>.ุ”ุtส�ฟ฿�œ�่mเg“แ3SึD ืหEธฦJ$ =]Y๛‘ํ~N+i™ฑีpณณQ6$m‡‘e่)TF)8=ฟg]fIƒิ๎ดeB+ŒึถถT*R[ฉhi-ปŸธLZ)N๏ัdาxeGโ,Šฤo�#ข,Y็‘ธNl6{สฒก=ˆSฯำŸsyyขtŽชฉ๑�Ž้r’4lYำm7MGีตT›-eUฆห๑ rDๅศๅ๙‰l ฌ๗l๏๎‰aๅr<ฒ๔=ห81<ฟ€าpฅ”uล๛O~ฮะห>งUฐพwEQำํ๗์>๘€—๋•Ÿฝœ่#�ึฏ~ƒ_�7๒‚Pšท‹bI งg�๘gŸ๐ƒฯŽ�ๆฏ‡_๛ฦื๙๙ฯ†๖�์?Z๑��ศซ๏�ณ��‰ฟBส‰็หภำ๓ ๓ุํถผ~ตใa฿แŒล%฿�ฝŸ�๕฿�๑g�๐วteร�แ�\{ฉ{ฤ”YR"/ ูธขCาญ๊ณN#1f”ั"ซศ`œ-ดัทJ•JIˆŒำD‘ึ)บBI[–y!ค$๕ส1Zร2cK9h•…˜Žฌu(็1Vฃ3\ฎฌs’y@ WฺYศศุ{ž้๎@ษณkบœx9ษ9ณฮ3พ:X>2Ÿ�๔วฤฐPV-kLœ_ž๐mKูuคiฤรฐž�พ#ฦ(cใบežWฒq„y ‡•"�ป;œ3L็ฺ9ฺ�†ยWํ–ฉฟ@สุยcŒ…ดR๏ศ*Sํ๖๘อ–้๒ย2ODePVVG๋ผร*ถฏ[ฒŸ ณกฟ eRkฃ†Hส‘]ทกj7�๐“O™–…็็OO๏v๓๒ย๏�ƒฟฯ็๏�ส 2ˆ.ดดฮWtMKWถ๓ก)ษafzŒ• ฿:O<Nฟ๐jฟใใว๘ู;๖|�W?ขjkพโ๘รwlถ Ÿ|๑ศ�๕�๑Ÿฝ้ง•าi๒<ก]ม2Cฬlššอ8ิUMีิฌหฬ4MŒ!๑tY๚)e–ฌQึาy‡ี ำJ฿€5วห•eY0…์สŠํ=๎ึ}ิ*ณmj|ีะฉ9Dm GLŠgY—#5�า<ขXฆพ๔Uy99�Z]ะ��ฃ”๘–ฯฯฯ8๋่6[้้Ž3eทใ˜ฏสอV:ก๓Lˆ‘๑rd์{ด๕œ^žYรสrน�nT �ำ[†ห…ห้(พเ๑u…6–jำ I/fดี˜(๘Kฅa์ฏr3ฅถธฝ?€ส,1๒๖๓ฯI๓ฤ_๘๖7๘ฏ|ภ<ฮœ–@ธA๚ym๙ำO�a\รwฟ๓kผ{�฿��Ÿ๐ื�ฑoำ�๔๙ํ?๚˜_�ว�)พ๕ฟAœR"วฤ๎pว๋‡=ฅQ[เฌๆ~๛�ฮฟ๑ฏ�m~๔ƒ/(€พ๚็๑๕^ฆHd\U�œ[ึ่ข ็L!๏Hกeฅ$๙(aฤ5eL\1๋$#�œHkd'์:๑z'Dบœ’์"ตTวa Lค€N™fปรd…+ 9D!ต-ฮ ˆ@ฦ’R"ว•vw ฏ 9นAคDŠe๓ๅฤำปทฅจ๋mไ y=ฟ๐๒๔žy’ั๋ธึศ๋BŒ ญไลฆตEiƒฑ–ชช้vชฒB— ว๗๏H) b&งLัด”mKํd๊tฝ\PEมฦำ3q^ภ8™๓ใ�ฯ�สใgŸะ?ฟcG๚๓‰Ji^žŸฑFc�ๅK‘$ ag๓<ฑฮ“ผฝd|ผ๗๘vร›รŽ%d>~๛Žฆญx�๘ฬ�ทŸ๓ล�/8ฏ”Uล:M๔�…ฆj๑eรก�HXJe*eš(ฌ%‡ˆฏjฺบ’็ลบR–%ึUฤวยฅฐ๐•ข�฿แ|CiaM‘ช� [�—ฃ0Fณ†ภบˆhi]ๆi$วศfjo฿c GUีภฉ๏Y•fนI}ฅ]�โฝ'„@BึzUีึ•aุด[™)‰!.ำDRต–€๑,i๘y8กฌexล8KธQงDa4ฦP†lไ`‘ตม‡%aœ#,ฒถV๑qTeEบ}ึ�ชขp๎—ปeL๕้๒ยหห#ฺ8qฌ+ึXRL’i0 iฅ่œู1Bd^Fสชขฉk6‡ื๒�t_H~`ž&bŒ,1ฌFkด+)o๐�zๆt>Rd้ŒฮP: สH๘อ—ฌ๓B�ถ8_สฯธฮ2žgสข‰“ ๔:๗ๅ†แrd”)X–ศlฏ0�•฿�๖๗โบฐขhบ†ฉ?I$_kั"๖Wฎร@V†wึI๗ะ �rข(J�๑ K’~�หหMปƒ43ždW ึดชะฦะŸ_1qzzหผ Tณ"?]ฯฒ/P†ขู2คศ8” พ,้ฏG_โ ฯำx‘}์|ฅด†vป็�ปO9พ�œบm‰IแซŠ%ฌผ{~",๓pAู’ฉ?W sญ!pฝ\x>ž…@Eขซ=/�๔%“ŸŸ๙ฦฏผฆ|sเ๋o๎๙ํŸพ๐|พ๒2 �ฅ้ว™ย{(Btพ`ืตxญ1…Gน‚ฮ[ฆจน #FAY—ฬYใชFจG9ณ)คŸ^8ƒFฦ’eแIึ‘gืmYs&9นัFฑฆฟ๐ลjG?rร@Syู…—“ค๗ฤ๋๏œจ๐Jฯ�๋ลฅ?ณฎvปc๎ฯ\žžpอ†fว๎nO�m่ฯ‚UL7LโใŸ’”f])EชnGZVชฆa๗๊ชฎ%*หๆp‡W‘ผฎ,�•๑|แ๔๔ž>๚k�ํๆตข4^่C!Šถ#LWrธ๑ว็™บ�PwBA:ฮœ^^X‡žยYtส\๛lวหภe ฯ1ž.#๔ำw|๘๊ฏแว?�S~๕�Qว+฿�ษฯ๘์eๆฏ�ต�฿�ำ๐ฟ๘Ÿ�+��ฟ๛๗Xๆo�๊ฏr8H)แหง&�ำ�๗�Žใ_๛W๙โGŸQ6๖�FK–d' ซฅฤธส�nNYU7ื๒บฌŒใHi46GโิSŽฎ02ปฑซ‰‘�nรฆp” +ฦ;ซV+ึ”‰aeบ๖ฟd*ใ@˜F๑ฃ ฌฅo๓"`cŒ�~ญฆฌ;{�โฤ~กฐ†vณ%ฅฤ้๙‰ท?�)9C�npU%ฯ„i`่{Šฒร—%๗_�š|–ษ๘ฒezœณT›ูZ–u‘]ฎ`M\&|]ำŸL}-KNฯด‡{rZน\%8งดBป_–ข๑์{\Yำํvไธžฯฌ๋ยx>bdgูป’)\mถN๚ผฦhืnw”กญ ็#๕อน>]ฯl_=เผLฐa๘๚›Wุย๓ำŸ�ฅภU5›บฅpŽบฎฐ7/yทนร)EWีlถ4Žoํบฎฃn[rสTต์ฒcสจuก�๎eJW6ปeY1=k’�xYz†พ—=ฒsŒ๓ \�qไ|ฝ2๕bฬ€ด8ยบโŠ’ฒ‘๒:‹Sธ�๖ึƒ–ถร<Žlบ…๗ค,ฒrF!ร ร…Dค๔›ชk หศด.he๐eอ2O7b˜$ฝw‡Wฅ—aแฉJQ“J�@“ฒbZ&สขfผœHFžรํฅLฬฬห$ป�s6ฌณ�ค\fฬ?๖๚๎{~๐†ธ.ฟฌNผ๛ไง๘๎Žบ�q|๛1อf+ะˆ”(š-U้™ว‰ฐ,4uลo:ศ[P&kกž…eฦV-ปํžฑ?cญeณ;H}#Jนฟ(qฎ๚JnำฝŒ) ็ฑ*ฒ.๓้‰8ฤeย��@kผ–tZWา:ฑ9<ะฟผ็๔�ž๋0aŠ’ชiˆ๋Dˆ™ง— ซฉช–mื‘ต ๏l)7ืu๊Qd\ู0ฯฎjูv;ดฏ๙ม)๓ู?ๅฯ}ดก๛๒‡ผ<๖�tฉ01J… ช—L2–Mๅฉ›ณZ‹ฬ„Dธผ0\/จฺ1ฆ„สP4ฅง6†q่1D!o ƒ�ˆj!๖ฌซTLQ0-ผLธธฐฎ‹คI„0๓xฤ#Lข4Šบpโ@ทŽข๐Œำ@Wzถ�-ฎn9>?ส(�ฺSไ‹Ÿ�”งฯ?Eอ๛/พ n7์>๘_คiภTฅ�๚Š’อ�@แ+.วgbฬค้๗”]Gแ<€ไnตฟฆk e๑๖†@QืาฉœF๑ห/๓๕ศ๑�็<}�)ฯŸ~ย|ฝเท[^�ฝgz๊R๊Hhห๓็3^/Lำ‚RŠ๗ฌY„ว๓…•LึŠฆฎq)rG~๚าsผ <�ํy~~โ[ฏ^ฑฏw,ฆ„๕„.ท<ž�W�๛‹?๘ำ๓Ÿ�ษ๗๙ูฯฦ฿๚[�,o�@X๙ูŸ�6�งๅภฟ๗o�_ธผ}Dี{6o~V อำŒ6kQ;P†žu0๋$M‚ 9ฌ๒wjบชข.=›ฆคฎkBV$m Jใ5t��๖lŽฌD41O#!ส๚jธ๖ฬ๓HF๖ณไLXึeไx:2งŒM‘วw๏ˆฺ ตคดตV�ฟ๙2ฦ–๓ ร๕ŠkZ@aœวžใ�/x�โs๊ํVะฮ`ง( |Uqx๘€vปฅฌ*|+๋)ฃ พฉ‰๋ŠR_ื\OG.ฯฯจยหชf่้๛‘iธฒ ๕fG�4คiD—ฮŒื+ำ4 ห๛ๅ™ฆmษAjj g�f/ํ”(๊Zํ 6๛=aC^uธร—E)†ฏฐฬุขภU-อ้๔ย๕tฤCส‘y’พฝ"3NฃเMว ižจ}ล5ดึ2jซT๐rfำvิ๕Žmaุlw์บ†ƒK|Ti๗๔}ฯ2 ุฒยj™€Eม4Šanพž8ฯŒร{ณS% ฏL&†ˆQk…€็}Eaญำbเา๗ยะ–˜มU ๕-๔–ฅ,9].8ฃูu;2‰„ถุ๗'_žๅลa4ืฑว%a]ฤ็Kยpeyc>€ต–ฏ|๙ซึย‚+Kด2 kภ—5!ฎ\//๒โ, Œ‚”ร<ส็--๋Lแ<1$ึ ำฤบฮŒ‹48 cูdๅ–sD%V;ช[่อ9ถIIreEซดbฅ<พ�”"ฆH3ฮค$7�”`$ 5Nยhพjจš–ล>Vzฯ8OœฯBŒhXzlQ‘„ฑcสLำ Ÿ็™—‰yœ๐Fชš:gPŒวV๖๗1bF+แ‚๓๋˜๚‹0(ฎgึeฦ�อo}�{ฮ{ฌ)hฺ-iyน\่ถ[ฎง'lู‰ย—ฬ๓@a,…1ฌ๓ภn`�๊Kไผงžอfัk๊v aกู์IQtpถ(1UE9’—iaw�ำp%ๅD? ฬ๓(c#mhชŠRNื๓ญณ\’R’`Œ๕(W2‡ศฆkะ$๖�žฐ.Tอ†fณ'…/9?พลฆ•๛รžyˆ1าm:Rgล)]ท ƒ”๖ฃฉ —ฤi ฅภงฃแO๐)ผ�‚ตp™ŸœงLC,dŠฬ๑ๅ™4œiœฆ0Šq่๛ !&ฆ œแŒฆmZสส“ณ์฿4p}z+4ฃฒกฟžฆQB61ฒ,+UUbRคะbพ๕†YYด๓L1ำ=9,x. oนชk๊ฆย)EฎิVฑ?ะ*sนœ)ส†ร๋7TอF|หพคl:šํžW_�Uำ�ศo–น(›šfณ“[’‡) ยmดาŒ—#ว/>!Wึ�ฬ|yAฃะฮฆe-YA้� uค—ทŸs=˜ืD�n)ผL.ฺํN๐ƒ�†�o๓ย�_๐EลŽจ๑*ตฮyBก™b 0@Vค,ใไeป��cญใ๙teaฦ*-์๑_^mAŠ eUSีˆซXวbค(JŒึ๘ฆF฿V+}แ๔�$#d-ุ\นฉ*บm‡1แึVฦ+� >Sbž'สฒยhรดฮฎ`ธcYโ:ม๊ B‚ฅฝ`ฌฃ๖^š Wiƒ๔ใศ4O๔ร€u๒]-‹R*laมz!4EA Eขj;สฒยi#a=%Œ&ฎ !ฬ„8ฝ<ฑไ„ตŽ%DTNดu‡)Jฆ�LZ&มฑฎ_x6ํ†Wœu^}ˆQJึ*๊q2๊Vฅ�‘‘uืno์†™aXึˆี™Mท“qJUหห๓3๓ฒเ ก%NC/˜่แBJ‰˜I๊บEYห#้–ศh๚�LึŽeXื…ห๙ฬบฎcน^ฮH3=c�ึฏ๛{eY0ฎ eณ!M=พ(๑ฎเฺ_ฐEA ‹Œp}IzฦOlท;ฌัผ๛โ็’,|Uัีie”โkึแBv%cbพแ‡แ‚6๛๛ื฿}Šฏ:ฎหย้rฦฉ-ฬcฯ0Mฌ๋BQz๊fึc�=๊ฦขM1@‚ย:9แ™‚ฆkE>ะ๗T:’ใ‚ซ6TuI\Qฃดeš'ฌR่!&ึ๑‚Fาฦถฌฐ…็๔๘Ž8๔รภtนะึžพุ๑ƒ็•ใ ศO‡„o7|๐pOS:†พg&bN๒กŽŠu8ฃรJˆQไ์๋Šฑ็ –iม–ešไcœH2$๋Qึ๓r=ร*ใฎึิพdŽ"ถpฮัm๗bฺ1ฅ4N+ถ]‡/๚vจฒฺPŽดฮ�?�q�มRŽSPw{šฆมื �๛Wค�ฮgธป ;4รๅศำ�OIAˆF๋O]ืqy~ฯ|>crb๓๊#Bศุข@;ON‰ฐLิ›ฆ(eผศ�ดนเีG_ฆ้*๏ัFj+aุฝ~C˜' /›WP๘฿uดm#ี—eข์vไ[หแ4Šฅจ๖�8๓|:S้ศืw vžำ๙ฬeš1EIฟสฮ๊ฑ์๎^๓+_�ฑ?แxšy๛“?แ?๚�ฟ�;ฟร4ๅแซุอW๐n‹U2ฦ&ั8ข4œB"j1mฉEr…บS@‘•}'™)F๚ieX…W‘:อดฮ ˆQสฌ‹่ํmชrzy๙eu3ฅˆVำtd2ใ8R�ึWฤ@Uค่๛ฅ ฌ’ฑDQ –U*Ažฑฟข“์jใ8ะ��ฃซšะ_0ฮฒ,+) �^า— ›�ŽชiฑZั๎๑uMส™rณป‰ ๒•เ๎อ—่๗X+ฒc5๓0ฐฤHŽ+๋42\กbขpWw„้_1ฦPT-kˆฌaeธœ) วpฝะŸŽT›ฺZย4sน Lรภfณกjยp%งHๅ=�:ดถ๘ถฃl[ๆaค,+ฺํ–x ผต๛kสTMอ]eQใ…๗ป-ลmอ—ใJk3- �Bcฤ˜ศiก๒๒}-aGŒ‘�n‡าkK‘uค€Š’6๎ฺNะœใ@ืํ„yq�๙†eฆ�๎น\OLk€ั9S759%ๆ%ƒินึA&kK‚�rโ2Œlฺ–ฎพฅฒ&.3�‰—ฃQ7GUI†(ูฏk•E:sStfmQdB–xUฒz@แฌˆ^LQ`ฌ#ก0ฺRzGY6ฬหL˜๊vรvณEๅ Zจh)+2q 9“•’gจา๔ร…qH1ศ]YRU๋aปฃt–ชฉ(TTŽา๙.+บอNBขZก•ฦ–บ�฿,bขd]–Y2.EมใปฯXืฅ%หดŒbศT78YY–MSQ๘še๎e ก5EaeJcKสฒคฌZQทฦH&ำ๗gŒ’‰ุ2ษ!‡œ$3b4h#ทขbG\U1O+ๆทพ๖ั๗67(ภต?ย,/หv%3ฯ ฮXฮ็ขฒ งGtQฒ๋:–e"ไฤpฝ`ซF 092^{ฎ๓DL•ŒDง ฮืุขไ๙ๅ‰งท๓๊ี‡(W •ฆ�์XSfš&สชขฐหบ๐๒๘นœ"M‰-*"‰M�ฑŒgŠธ i[†๑สuฑVใ}อšใๅ$|w'ใฅยษ>๕t~aย:ณฬฺ9†ใ;ึ ‹๛รMำa=Gใeบ€�˜6�-ร8๒๙ธ.Aฺ]G]TไœฐEฦRี‘ฒK@I=)\ี8ญูึ5๓4โn6ขx uMƒ๓^Nฆ)R� :ฎXkๅi,*L”…„9ฆa@ๅ„ท†u๑…ฅnZ’Rฤuฦ[MzA“จ !8ฅฐRoทฐฬœฟ h:.o๙โใŸS•" 0ฎ`zๆaไ�ว?ๅ๒๒ศ4๘ยƒYDXไ฿ซ๎6 ็#eปธ ื‰0/˜บAAำH2ฝ�AŒ’n�เ ฺ:Ž_|1โชŠอn‡Žขn0ึแ๋๊6ช3ไub9?3๔โ%WJq~zคz‹V™น๏ CO�6?�”vs@ว€J+eUc€ื๛-ปชกฉJ.ำฬu˜™ฒล–:%ฮcเi˜E~ณŽ�๐“ทคูWดฅู•๎�›ิ›ืTพb{ฆKJRแษ1C ฎKผs\‡+i–ห+šˆึR๋cวฒี2…QJQ้D‘ตs$Wฟx6ิุ๎ๅลฌ4ำะฃ\)�๙uE๛u‹,ำศดJฎภX‹๖5หˆh๎๎๏™cไ2Ž๔W�งgฆ~@)นํ๚ช๛WŒ4‡;|แ‰๓,฿ูeF9Gฮr^ฆ™บ*ู�?P–ž5&ชํBฟาŠ8/่[ซbs๗ึ�าัญ”fzฆea้Šช"ฦD˜gpUหฐŽo?“รPำbญCk;*ํP)2O#ๅ๖ภๆ๎žฐ.๑��H‰ชุ้�ฟฆiZž�}Žužฒฌฐฮฑ฿ไdœdSu;ž฿โTbทูฒ†H�mhส’บn)สJ€�ฺ2‡•๑�‚๗%ฮ4ปRX™ฆyะฎbœ&ชช$+E|ยZO��แผงi6˜œIห•ส„Eˆmcไr:แ}IU–ิeษp}†pถ�žย” Tพยจ„+*‘ปซฬ–›ืR๏่๊‚Pฺถฃฎ;สยั6 ต๗\^žDqg๙ถ็ดฮoฅ5&jง‰!ฐ&X–•�nV™5ฆะถ@‡I๔งUMR†%‹ลฉt–ำ8Iภศai\๚q’:ฯา“bฦsป ญ7Žqขฌ๋_*๖<1h5�N+ฆ๋…�xโ๒๘ˆQาฏ7ฯ๗tน €‡ืoPV๔‡ฤˆ-Jฌา4อ†ํ�kv‡=ฎ()ชŠฐฮ8็ุvข๗‹2U‹ะ"ึธผผงฝ{ล๐๘HV™5–yf=Ÿqe‰)<�้DFz•—๓‘๓Q�บส8^>�„kV4ปี๖ภห�/่บŽl-็—ใp%*EQx๏๘ฺ7ฟ)Žๅœูlถ๒…6Z4˜พโบfœึdฅฯW>?sๆก๒�๘'Ÿ๒�๙ฦW>dำ๐ๅHA\…^6ฬ3SRr“ +!EๆyešŽ็3 ฑƒimy๓pGW:t\(H็1JณูnจชŠ]ืrขฮ+y1)p8„บท.ฤ”X‚ุปย:ณ #ฺบ[BvลY+ำ’qd™0๕„5]{TZT‹V /ถpœ_žฑฦ Cb าูUถ`8ฟPท|]Sิ-�vห2Nไ, …ขฎ)ฝง?‰)ใซ’eธ’cค�?0–iึ๙้…uY๓LœzŒ6pKx_฿1Lำฤ:M\'laน๛เCสช!,“ฦcb{� ฿ถจu&งHณ�ษฎiI7Š”TRื•nณ!ล•้|D ห๏ฑฺ๐�“Ÿณ, อแำ4็Yช{ศภธk,ื“tย็yf์/<๚‰ณrฤื 9f*็ะaฦ;y1f@i‘คะdโะฮQต-/๏฿ฑฮš ! s&……ฒ้ะฺ`๑20†€ฦ๛Jzศ1s"dลฅ‰tฮXcจป-(Eี4๒7ีŠe 7�Bๅ ึ˜y๓๐šuy|9ฒf™lฬหJ ณฎ+VCYVไ,”>rFeY+dE$แ‹gŒจ1ไoฌ€dๆi`Zๅp?1‰๕o™–9ขxถฏืYiแคWชn‡๗^I๓ฤ+ุT-ฯฦ5บVดล๒�6ฟผ�/๓ˆQ–ฮ™ค(ฟ๋”peร๙t$……ฐNX_“Aึ$ษdYI„งœio5bฦ%๓:แสJjš9aฌ%ฎr I[C฿๒'ฦ˜[ๆฉ”ั๘ั–‘iœXึ™าhkษฺIu6ั๛k”x?B”‹tX˜—U|เ�ยo�ใ฿S1rนœฺ่-…ฏฉJG�๎ธ ฃœlc,�๛{tœiท;ฦ~@)ƒ"sy~KQoh�-Myก.๔อL“R$K–… �3ห,(ผyใ•j�šiY—™yบฒ. ๛ื_AYื€Ušฉ?ยญ‹WI2;, ›�VR Œ๓ฤห๓ป��nC]ี„œ0ท_Nืuฌ!Pv๚qGmูกŒEปํJ†50ลภxนศwxมๆฤุ_XRๆ๔๔๋+ฦ5Ž”Lyๆt|ฯ’59Gึฉ—๔:ฃณ�mแฐึ‘ฆ™u๎Qie๊/rKЉ"!eฦyฦM3KSx‚’ัk yธ0#*'ฉไ(Œf}ำโดฦ…Dฌฆ*›�žํ�›3&หรฏ�l้ถw”ํFช'ห„ฏ*ถwฏธ�๒ื( ฯ๙้-o?ใW�4Tอ†i8ƒVt‡R^๑mว๕�[aช?ฟ'M๛๛\แ้_žHฦตa9น•ขจZ4Š'๖_ยxG฿Ÿ9>?QVRZ™ๆIBr)ใสธ$†ฉGxฯS’wื2ณฦžยšช'@ูPh YทฺEณ( ฒuย{๗ฅ๐nWฃฤ{AŠLƒ่p]^ธ�฿ฑํ:ฬฟ๐—�ย๗RBฯๆ๐€ณe9๓๎็?dY๎ฟ๔59ํ‚9Œ7฿j�l˜ฎ–”่ššำใLใH�t›/ฯoy~��ึๅVฎใฏ/<ผ�ˆฌว—๗b6หิ=ศหะ™_8y0ฎbdฺ้WЇVA[ฎQ๖ยฮ{ๆฉgšgโ:กoต)kY+ +L�k•๎เm WVต�*�4 @fz?๛DFWฺฆ…๋ผrบŽlvwดปฦฦE …++RHค,4 5ฌ๔sฤื-›รsV˜ขคp๒๏^8ู™XWก|Y˜ยiž) K]”ฤ”0๋„ปฝ •ฅ;ฺnpZณูlฐฦ` @�ด์*ซ๑ชR>$t"—— Sถใpaz|Sณ{๕ชถE9ะ?ฟe‰[4<<เ%หด03ฺY|กุ�?ฐN“[ฌCฅ•๖p‡VJเ,ง#แF฿JJ‹ �|’ฐ†U8_0ŸOGNวgฎ๏฿แH\NGต๔=ฯงg–ifณ�สไe]aฅธศฺํญ„ใS&i%ุY็ุnZŠชฐ�ห๐›฿๘sฬ$yž1ZำlZbˆXgจ-2…ั7–ตฦฌ6EบาโŒA๛’ชชˆYจK1 [|๏uฉsf�mhบ๎ชk-๛Mห๎�k-K฿Sื !ห KฤญภhEHŠyธๆ‘lไ็ SO&ใK/๚M็จ�Žใ๓)Eฌึโ,พีฏย8Pื ‡ป{๒บฐฆ„-ซ[0ิPVสqeป�ขŒไRสด]GŠ ื~ b„8e5ํ๎Žฐ,dฅไ๗C&ฮ“€qŒfธ^a]ัEI\™Zฤ•๓UvมำๅLY5าฐ{HY๊‰๚๖๛.ษhIVAซLสšx�; _Œ6ฤไ%™…„Vธcญ�ฦshีเ&# 1ฐLƒ �”–<ฒV+�Hฬ"grEEihIxใฐฆ +yI}W.uฮZY� =9 ฆgbX!-ฬณ|g”Wr†ขlY—€ต–aธึ…~ 1"งŠภS[‚ถdMืŠlšฐE…&q~–รฺfšZฮxcๅ6Rีไpe…oZฦQ$ฺhฌs(#๔0ใKŒ‚uYYๆ[฿X+มฟ๋๓#C?า๎๏nDญm4z•&EXดฒทiแ‹8าฝง{x…นe&|�`ฤeมึ 1ญLcOJ‚Ud–u‘Nถ+P) ฑa%„xฃ~9Œ‚ร~ฺ’oทฺห้…หๅส8ษ4Pi…VŠœeย‚-kชฒฤธ‚qš˜o๗”ลศUxy๙ŒำDฦ�X;ฦ {เdBq#ฉล mUส�;,”EIฬยดะ9‘S ฐ’โ6Zแ +< Eธi@— Q Kˆ”��็ส�ฌnทLF‰ฐFP๒๛ฒฦH•ไณิuCD1-r0Xbผž ำฒลP+ฆAึฏฤHฬk ืแBส–aš˜ฦซ„›}K]Wx๗‹IŽฅฐ–ช,0ถฤ Q–†Œาๅ Œ6ุข$*!ัM๓Lށขnฅห>\0Z๔ฉ’t7?'#�†้rDGšZ�ขP–ภpUVd%าใ„๊–Qc™วžyžqึbดฦ�ๅ/�ฏป{M˜ฮค8_ฯ์๖w็นž^ฤไณNฌ๓ย4๕ธฒฅฟœ)� ใ<ว‰ฑ?ฑd พbผ<ฑ„@น9ะŸŸฉšm Sแ๙‹Ÿษnฤz†�ŠฏZ™แrข?ฉ� )๕;็n)K”�t‹RL,mปฃl7„ัVvแUQˆaa�v2"*<`xzy{รู•X็$q;/๔—3›อ๖&s๏™๚ ฅ๗x็™† 9Fl\ฐ$R\dL<\„wK1šนง๑•๐‡]�ฐ฿฿ัm6ฌืฮLื#iY)›SxฺRf•ณRตpu)cฺœ•3Tu5•DกY%aณ�โ๊“›�Žํ�),ดํ–���9ึiขูt˜(ดโี‡_ยค(5–ช$ฏ>น�เ ํรรญnใh๎^�F[R!N/็ษ$ŽŸ�”ย—จฌศ๓Hฮค่6ฆ๓ Nม�Oฦ๓ใ#�fฯ:ŽœŸ฿‹๔$~�rณม๚‚ถm„็~>1 J22ู�•œ๋ฒRื5ํv‡oZ หU ๕nƒ+,ฦWฬaaฮ4‡;บ�5EŠFjฎชฤ.4O —3็—gbบ™�ดb�ตคyข๏{ะk ญ’์ืึ0M#รI|ษตw|๕ƒ๘่ฐe฿Tดพภฮืฤ”)ส’าdพ๖ม=_๙่CฺฆFeจ ห~�า”–djcไ๎ี„•�ดฒZ&น/“ฐ๑o/w•“่}…r๒p“ƒ™ฦ#•ฟ…ฎๆ=Eูsขฌญ+Zษไฑฎ*l!�Œฒ ฆึB?sทะซาฒˆ~ๆ๑สผฮ๒ณฮ#kXๅขUาิIซฌ“ดฅฑJำํ๏ฐฺafY๓pค๎ถ”eร4^จo้บชA)ดสXm„ฝฑF6mG +sŠ๒]ำห;–iDห*์ญ4qD‘ญ ŒR”ฅ๗๚*๏ฅ$ฅญก้ถ5Dษg่ว‘๛ํFพKYฤ๋2ณ,3หอฎ–€l,ๆฏ~ใ+฿;>}Fฮ๒ƒVอ–แ||b๎ฯคue{a�jCูnQ Žฯ๏y9iถ[TVT�–๋ๅDน2๕/€&ฬ“ˆ6ๆฐฬ๘ชEน’M]ฒป�ฅ4Mท!†Hทฝcณ�bตp‰R’ชฎ7ิU%ษ>miบ ถ”โ���:ๆ�D �peGบ�+”s7ซNเ๙๔ฬp9ษจัXๆea/Xญ‰ำ™iFQ•%๋"{rข๖%ส*”uึฒ�฿S8๙b`w‡{‘*9ๆœiบฝ�๛ข!*cฐ ถwl� q™„ w๋]ฺยณูtฒ฿๖†MSห—�hv;้3’"›n‹ส‰�ร�๎@œG๊ฒ’/~˜1ฦเ‹‚u™๑พภ๋LœFŒาœž฿ณLWv๗Pด›› @แ�\มบFฦห‰ต‘Aށ๓ใฬ—‹t1Sไ�ษ—.๏฿กด’ฤ1ะ�=ภ*€Šขj™ฦžns i7๘ชคฟส*#.ฦYŠบเห31Dศ Wื๘บ$ฎ+Fชฎลต;B/5Ÿ)Fึฐศส„ฬt>ัŸฏŒร…qžฑฎไ๎อ—ะF†ž็ว'–uแใ}Ÿห้ฤ๖pO>s9]IZฆ0ถ(X‚์+gh GืิLื+ำ0ขืยย���ผมCื5˜œ9์4พเ�ฐใี๋Šuค-4]ๅQaฆฎkศQ$(งJซ‰ำภ<๔ลตœๆ๏„แMฮ4mหt>2_ฯ”•X,ฐู„sฝ,(ญ๑ฅXธ–yขฎjถ�-U-”จWy๎๖Eฮ‰สhสบ–๊ขต์ทฮ/ฯ`ไ๛ด^O0 lบzŒ๖ม$ท4ญ4›ํNvฟฺRu[ๆiไ|9ฑN(อvw๏ฆu2้’“˜ภ”!Œหฒ—™xรจบฒบญŠ�๎ -dล0.Qฐ–)`gท฿3ฃ @ašg†หญฅญฒฮ eำ ”�r๏?๘ˆึท)ข*=Eแธปล: \ฮgŒต2 ฮ™ถ�1ญฒOEA f'5นฉฟ2=Feชฎ#G HžŸ฿s~zคชJชถcโ2cŠ๊–=ˆ๘Rชฅ9F6[้9งeม8‡ฑu]ใ|)แิeมX'cb+n๔๕ๆ…(สk LK ทรฝfœฆ�C?ฑฬหpฝ`ดขฎk๊R๘๑k”ฝผL�ค ฆR&„„ย(ผจ>ญ‘nด5m0ศาfH Š)หst™e๊ƒ�3ฆy"…(ฃ๚ดbดEiEพ�ส}Yส*gB ’ฑ^XY์j๎ฦ!ษ$Œ6€x.Lำˆs5�xล่_Œ฿“ฌ@หZะช7<ฌตV.Eษ4 s�ฺŸ๐E5P”žy^9Ÿ„”ฉ๚Fี‹7�จ.,ฦZ2š�9๙น๛'ำ%ฐœดสแชจ$_ก`จฑ^V7pU776‡eฎศป1Bึeข๒WK`q'ิˆ7ฯE%€บiQhฬ_๛ึืฟื•ปื_ข๖%๛ร้�ฬpฝpธEฮ™��๊ 1ษี{๊ํฝ์aฦžeนJk�Šu lw(ญoเu-Hญฉ�ސ2๓xฅธQ–r–ะŽฃFๆi$ล„R–œ‚์ด–‘b†ย9†—๗ไYๆ…๋๕Jฝู฿ฦ +EีRไ๘๘V(^IDmณนuสญฌ”’�}ูฒ��รย0อl7{œ•—ก)jŒ+eฌZ”ารUŠ%ฺN*aึ:บฆรM iM Ea่บŽฆnP$|้ัI*:ฏ4eมvป‘ฎUิ�แญ%�BMฮtŠ ืžข,ฉชš้�LœgIžVฎ ,‹T฿ส'าฒะlw Œ๔s7”†�รk.O๏่๛+ใpํ˜๛+๏๖#ชฒ– ี๑=™|ฤ zฒาb*œgฮฤq ปCทPFูnฐ…# #eSQu์ท•ฆ.+”ส’T.kยฒ ต•nพ‡pผํฅmQฆWีLณ$eำ2q>_™‡ใ๛GN/ฯ’าšอŽW_�:อ~ฯบฎฐสฒdษ‚<ุบรหห ํ�Žขฎภา๑OาปN1ฐป{เี๋8>พง.=ฏcyปีึM-xPฃ )J]EC]Vท{ภFคœ้/WtN\ŸŸุn6ไ” ำ@Zgึ%P๙’ฎk1FœqHˆEฉ�lฐฮัn๗_2๕ƒˆQrfณูืYV<ศsNฒ;›…ƒ_•%ึZฮ/๏hช’บmYงฆ,ู์LCษ•๏>�”า{ชํNยƒ…m๑^3๖6ฺตฦฑ=ไล7/2ํา[zดึ’Dฎ’fvŽ0ฏ,!ฐ„pcˆฦถ(+ึy ฌj†iข?9>ฝcxyๆzzม7๓p%- UำP�Beพฌˆ9ะlvPJInซY่b๓๕„ำšป$์ุŸl๗"Jฏฒ‚ขช‡+ำ๕Š+œไ"6;๊ํ†๋๑ศŸ~)Sถ๚ฑ'�nว+ำผ5ษฒH�"ๅ,hๅ$+า{b@ฯห๑c,�hmๅูV ื*ูg๓ย’โๆˆA„๓ฒ`ญE฿n€e)มEJ*ฐ้บ+ผ€f–e!ๆ$}๓”Xร-lไ…ผฎ31Fฉ˜YI›ฃต|FŒะโึu•�h;š1†enซฤ•3๓ะZ^เโแŽ‚&6†˜3,K #มœEโ4‡„uŽช๎Xึศ๑๔‚"ะOำ-ลงซ5รpe\fyWล@QV 5ฎg๛8๘ฒB็,อ+mฐึaŒ”m�1ฏ3พ๔\ฮG”–w*2^/Deหญๅฅํ\มธฌ\Nฯฌร™ถูa}M฿_่ช’ขฺศJ-๒/€6$าพ–‚L)Œ๓˜�๒?๒฿�฿ฟฅ(Œ˜ซŠชก์6 ืkL<|๘UŠแrbž'Iชjƒ-,eaหBูฤ`”mท•๎h)=ฯ” ฉ™”eKX'žOG.7ฝhXfŽ๏>ฦ๙šงฯ~.Uƒ๛Wฦ_$„d—dจัŒ็ู“&yวuมธ[ภkณรYKaฤีญดBŠ่า_๔UE�mX็_ื8๏ฉ๋ŽฌEฌ0๒แ™Fๆ�•_ŒpฒุขRŠิuK�ตR่/X๏ฏWv๛=M+ฃ$ฃภ฿ชtZgœ1ญˆ๓ ธR–ฦฐ :E g˜็…้XIdRN”›=J)บ�–ต?BVฅIใ™บ–�tฝ�—…๑"™ƒฅ๏ฉ6;พ๚u้*ฟ<ำnทท�tย9วt:‘ฒTN๏ฟภ๛‚๛ฏ~ยŠ5Œเ@wฏi๗rภ(๛fฉฯ”›ี�@่ฏŒวgฌ๗”U#แร้Œษ๒ฅ!ฑฎ YŽ๏?็๘๘9ร๕B\ฮ๏ำ€ฏjฉm6”M+U›ees�฿ถฬ—+ปรE�เฺއฟŒ+[�œ๔ึiv‡ํn/^฿ชก�๎0ฺศŽ™ )q9ŸPdผ“ฝ/Zช~๏>๛X2พ ดW”ผ�Hฬ](๒42\ฯTMMu๗Šzท#ฤ@ฎ(SPmถทA๗sL ็#y$�็=ํv‡๕ึ •ฌช[œ–”sžzึ�"๐aธœTEษr>๒��…ตX_2œžH!เmAัT่ฒ"-พ�ษK่z!…(„=ฅธธชๆแK_F�J—ใ ��+\Yส๔e r;ˆ+ึœGึ0ั6วฯ>ๆๅ�#๓ผฐ}๕ช๐<ฟ๛BBm93๖ึ8^8ฝKŽQ๖‰Aุ๙�้…�z•๚^)†-G~€“Žๆ|=“็‰�~วๆp ้Z\U๓�/๊ฬy,หฒ๋�้ŽoŠ‘Sซ›!$Aาค#W„,9๚A�ๅศHdwWWeฦ๔†;žQฦพY2าH ˆศธ๏ž}ึ^๋[)$ฌณา{พ”U Wnoฏ พ๏U‘ฏ๋zšถ%ง€_W†แNษ"กืF^ฬ]฿ณLรๅ*ไ%พ฿Hฤd| k;Ng�ฮt‡‡mr/” d)ฉไfUrฦi Y†P] U]S”8kO็hkศ!ฐxiQ+Qvฅห4ฒฦฦขฬร€ฑJยYCBหแ‹ย๕{!Fœs”เ้z์ตณเjดซE)Yฺใ‘๓็qUร:หšA‹ฉjrษ,—7–ีc›šไWยฒB๓`ฬ[ืิMƒQcื็o{J=ŒLฮ™�้ŒmZ�†ํw=u� ]ล0 Xญqฎ"คD8R5ตฌถโ˜ข4ท๗gค-Cณ. ๓8AI๘อY฿๕{�21-#U� ต!x1๓ฉ"Fพ”2]�`]อธฎ„qฎยUR“iก‘ฉฅ)ฐA‹๗^ y�cด )1vล ๋/ฺH]ํฒฎBƒkไู$๊ช–ห…38ปญ“œC#{ุkฬ๋J�ฐทฦึTu%๒y7›iด�€&Eฺด\& ิP[็z‘ฅ"หฒlช(#รˆUm็GYฃฤZTMำำ6 u%๛vAF ขต 7�ีGข_ฐby™ษูS� ซศชH—บ๗›มXSR ซ,บ๊˜ื‰๐}Uƒค†ถg'ๅฤ<�จชj[qT�ง‘ฏ/_I1r�๕ดMวแp$„ซค ถ?%f๎yDeO…Wœซ๑1`UDtXI›ฟลh )bœกi๗TZv่U]ฃl…๙ื๚๛?ฟ’1#อF๏ฯ'Ey๛ฆ๏๗+นHไฆ6Šถํฉ\อ๙ำgR$ฟˆAŒฤtฟJA๚4ฑ๔‡ฉ][Wฌซ้ัฺ๐แรg–ybธฝ๓๔แ’‘ฉช‡q ำ4H”ศฯ๒ Eคmด€+ฌa.Bื:=ะ๖7ฐูKs™ณื`R@ฅ $ึ๋;u%ŽC’p‡๛ถล(ฎ๖{1ล@[7ดuร: tMCฅ ท็ฟเ‡ห4aตฅฉ+ฮ8 ฮnภ}่๛=˜†Av๙qๅp:๑๘๑3V+*gูิฎขฎkŽOท[aMSUำ๛ฮjPŠร๙ƒภsก;ํ๑หH้ฃ}{ACำ4\฿^ฉ๛ท_fบ�x๘๑ฏd�4s๙U)ใษใืE@ ็๙O�ใฟ๓๕—?แ็้๚ฦ�๑ฎํ(~ก}๚ˆ�ฺžฺvO‰‘โjึ˜0J1 ฅhฉ0<ท>oGฬEP‚9ั?< ฎลVšพ็๐๐Zcช–แํ™�๕BZfๆ�ท็ฏฒฦฉ*qEว„ษฃ,o_แ>ญ>�ํ~‡rkฟพ]x}๙เCb้9~`w:ใฌpศ๛ มุ4 9ฌœฮOฒฆ™'v}KืดWกR ่=~“ิล\$ฮe[$.”ฑ[าB>WหฒP”fฺvฅa๕$๋8 uฉํ่๚m-บชๅuงdC–tื๎0ึ`ตฆnZ๊ถ“|ฟณ๔วำ�+1ฌดMร้๔€U ?อ�*ํ*ษษ.#หผP๕=1 l�แ~ผ“7็ป_ชฆงฺ\ภ~ฅ8dปฮgŽ็ว฿n<‡๓#9ญX6๊@IhภบŠใ~/Š๛pงค�2Qฒx”6ุF�~9}�L˜&ด๓�0/ฟแ0ืqle%ybท฿ำu;(YึGJใŒ•�ฝFึoบพj��ย2N`,ค‹{ซ]5ฺะt-P˜ง‰๑๚ฦ<�ธ_�1Jq'rHจธ’ฝงxณ›Y6e”‚išh๊ '็ฤฆศš…บ๗๔แ]฿แ—™ีGvว\�2อ9F้฿๊ฑฅLV9Ešไ'\#xํ’งวŒ๓HQk…๚–•ด[ๆ1�๚�‡yž‰a†œจv๋๕ญdฟ7yL=J๖ Jแ*™ฺ™พ?ส•?ฏ ทป˜Gฌe�๐HZ๒:‘ตก>sŠฤuf]ฃdฌcคkkŒ6L๗+uืQbเ๖๖Šถ•์ง‘”ฤั�แหฒ๒I��ˆ1†ชฉqตšYˆ„”ถ—พpฌร๊eฟ8บpฆUุแแ‘ถ๋ˆั‹สซ-ใ๕•๓fฮฐญ1$ศํไศI^๊๓0ฝ'ลฤ๊ๅ๓๋œ!ฮ a่ป�4D/ทG�uยไง`Uแ��Bณ�ำˆ! ˆg™(›$*7� 7โฎcูฏkXนฟ_QV ?\8O( ำ๕F<แ็ ฟฎค :'ปมœm-ฏ฿พ2#9Y)Dณา๋@๔ฅiปž…๎7i๋่^CdQฒ๕zญpVvซ~ƒุิUEL…คธฦ˜ํ’uƒ฿ขSฺกุmะŒศฐeหmษQ๖าJชบCAฆqUEŠ้7๓p๙žฯ.rx‘Mƒ8พ}Lx/รˆฺโM(%ุา"—พ\ •ญศ’ ZIรXeŒฤๅŒกmแ๓+…qVnต€าJŠ—ฌAY1U‚ฌ/c��เ!Diฬฐ๚ys๕GQตb�ฺปสๆ|฿kXคฅp฿Jm‘I0ฎ–aWมโฅT:า…T“@ฅ่™— ซm]‰iญwรj'ภaุ๔\�bฌ้ฒโญถฯฝซ;๙i-๋วฐJจ๘  ัG‚6ไจ*ฉ๔6�ํ?�หึiDนšใ๙#ส๚๎ภ๎|ฦT5ฅ$‰v)%Žใ�Jๆ�๓ฏL๓Hณ?’Bเ��Œk;.ฯ_™๎ฮ~ภU ู/ผ=�*„ด0ฮฑ�_฿_ธN"ำMใzwB็ฬแpJ 8 N;Š.ฌใ “ }dwz ฎ‚r>d฿wิป=ูฏผ��G|ฮ�฿_Yว;ป�^zท“HFiื1UรงŸ~GAq{กํz†๗g>}�ใงฯXWaJมUnSœ˜ลj1‰(…l�VuํHฆ�U$|)y\ป'ฤฬ๑รt ฬร„_=qบฃ‘aต�}ภ/วำInm๋JL‘<ื—W๖วำYน2\�ภ:ŠR ฏฯร}bQKถ~๗\2US๑ห�ืo/`=ซดฆ�ํ˜f‰บไIEc�Žพ๋Y–Eไ๗uๅใ—/8c dชฎC+…_Wษ;หxฝq๎ิJw๏d ?�$ญXNไ๛บk1Fqฟผ3ฌ™บnx�๘‘— ฝ๑๘ๅšพ฿๒๑ฒ฿ช*ฉS=๎w˜e$๛…ฆ–ฌตฉฎ๏ฏ(k0u+ต ื+ฆjqึ0ƒ�ฟ)ุO2Pฝ>ฃ2ดย.N‘e๑ปนRKมไฬ๏�ๆ?า=<ะํv ชฮY์Fงs•รV•˜œฌe™fNXCซดKฅภ:™์Zv‡=]/N๕vฟฃr?Oคœฉ\MW;ฦซิ๐๖ว๓4โC$ฃ†‘u๑TMGขŒีMG V๚ำ™บ�‘cbG’๗3"ำ4�พpป�e/�pฃฉx]จ�M'A�ไ๘ešไห<ะด๛=)FฦaˆŒ๗ฤR๐นเ—•u]%๗>\ฎW1K์š�ท}jQ’นฅ(��^้ฯO˜Jส.4๒5™,ฯ็ฦ�wฮq<=ฃงคฦq{}&ค ฅเฌฃชj*'M\Z[Y}UcS–๎pฤฏ‹จYUณUŽŠ™ีG)ตˆEฺใrษ(-Yง�~ƒกˆ�;ฯ4อL๓ยผ,8[c]E�Vu� @+%โVืiญ%m�’K‘ˆ ฑ„$-y๋/hฺ†u4ฐฑ’“Qฬ™ห*_—ณ�ปขZU+…ึ†ฺYษkoีดฅDFฉZฮฅPr�‚ดี„ ”ศ๋•ซpNผ 1Fดท๘ผH‰OŒ‘’%ต!0๑฿(ไ๐ฏซZ1e”V‚โฅ5)œฑt$xชชฃj๙7ƒวจอœWถปพ’ณภุ†ชnษQ๘฿U#ฃฤ ท„$J(0อซๆZ๖๊*‡฿พญคดไ6Œท;1กY1xA,7~†Cำv„่ๅ™0[R ฎy[7Œใ€_gดQ„่…h™2๋t—rญ0ทsP�รงŒิผ9gy๙๚'ึ้Nำt3ํ�‰œ ๋tลฏ+��$}ฒ1ึ‰ห๋/ด๕Žแ๒Nท?ำŸฑึเชSทTอNย๋ฑpyก˜Š�ใ*'ภ๖ฆ�ฃ]ล�pเp~"๛En$ถย9รฎ�๑แฏ~วแแŒญ*–๛…Ÿพะต‚ ฬaAล•TŠOฌ์—iwาผSw=M฿ั๎ดป=*ญ�_พ‘ข@๎mUq8?’B”๎ุม~/ฦฑ๗yqM'>•ty/หฬ:�๐ำฤ8J›’ฑ[ต4]Kœ,๒P(mh๗{๊๖ภ๙วŸPY).๓o c]ใ8qฝ\(~CW๐„ybบ^น 7ผจa3~์ฯOฬ— ‡ร‰รร#ฦX�/๏‚ดด–ำร™ฟ�ปภT-ึ5์ž>*t๛ฦีt]Cื๕\.9H๎#O?�H{zเ๒�•๖๔ˆฑ–uX—•ำวO€โ๕�7ึe…œธฟฝlmK{๒:๓๖๒ ญ y๛ๅg†หษฏ�๐ืC];Ž_~bw�H�ิ<|�ย�๕™yธฃ‚xชn‡าVเ)ฅ0ฑศ0ถ?Ÿทแ,Iš!ว#Uืก”๔๗NทสXrฮdmIหฤ|นRะธฦ‘C 7TUa]…ŸGดณTU(‘ุดAmฏรใ“tท—ฬ๎pคn{@";๖;โดmP%‘ึ™u]่;J‘R[นํF Js๎ฌ>ฐ,3?��gๆ\(ถbฅ 3ฃ™็•e]YVฯ่WฆI ,bŒ\/oไ1๎ทปิ*-=่}๋zrJจข@+J๒ิUƒฑV๒บ%aŒ%nชT�vิตcา45่-:—2�~ว้๐ฝc9RŠQŒ,ฌถŠะฟšบfwz@แฝOืwูฟ‡(ข}Uqฟ]™ง‘~๋4nžฤ2�น฿n’_.๐๖๖&{[q}๙&dธ-ฯผ;=H�ษ/(+ฆขฆmDvO‰อ๎ˆำฐŽ#ล‡=ึฦyฦ‡€_ล–ra™๎T•|ฦ*๋คคB+Y-…๐�อ‹"คฆmDK‘Œ*Aผ8a �pขt[หพ{–Sษฺ@f)I1ศ^}�CGฟnŽm#< %rrษ[tซ1RŒjB…5'Iใขu์บn3yญ ไy 1’ถ^T์J qน@Œ…ดฮiฤ[l�^ฟฦˆŸBoฑBญŸw[… e4 16_Lษา์งด|๏XKูJ_–ีำถJkึuPH�ืJ�%สภข$ัก`jlีโฌฆrŽฆ…ลKXG P7ฤ5ต!ไD บ’มFMๅฤิ�ถH�V ณJ1มV-ฑnร๙๚BeU�1�ฎ(mˆ%ณŒ#�nOI’0Fฃกํ˜�๒ฯ�๘‡ŒโvyาŒฑTฮPUศภฎแแำO,ห$ˆป่ฅ6ิ้Yญj^๙w~๗ท�ฬำ—Ÿุฯ๔ว1ษ‡aœb�‡;ฺี�‡�๑L�4จล ๋*l-ำnŠžฆฉ˜๏Wšบ%g‰�ร”ซ˜วร๓/,ำDำwคฐ2\^้w;ฎ—ยโๅึU9V?mP„ฤ/�๗2{ฯ�๔ภ�๚Š_F._�œํ–~wคvยช฿_ˆ13 w�^พฑŒืหUบžA@[t#๚…ใำYชmล��An๓LU แ๖�•ธฮhญ9}๚W;’œ>}B9อr}ง‘๚ƒคœ‡ Uี4Mฯ๙แ‘ๆแL R>฿‰๓ฆ�๓ใ฿�-}Uใ๊šฺฺถๅร?‘ญม/3ร�ฮรใGB”� J‰คeยlฺ2�™n7œ“Vซ่Eึํv;ชถๆ๚๚BNke—;Ž#ร�~ไ�~‘˜M�าN,๓"๑บbฝ฿™ฆ™\๋8Rต;š�ภรวOงq-ฎm ำuษ)2ผ|•ๆ;ky๙๖Bzภ:y๐Sจ ดPP� ท๗šร๓๕] —ํซ3q^˜__„ฺ4ฏ”์I!ใSlฃฑ4M'ทeฅˆJ‘2๘˜%๖Dแพ•ู˜อ }›fRฮา#ณ_7p…gธ] aกฑฟ,L๓Jึ†X ไฬฒฎ�๎7.—‹ไผ๋š๛๕�n‡ึFzดื^~๙ }ฟง�คQีค(_= yูคhO'Rˆ„e’†,ฅHJaถ,ฑD&มmj�M(e‘่๛�<~Yq]ห4Žฬำ]ŠPๆ‘œ3อ๑(ูx M฿Q5ไ›•ขhEป;bŒ๐ฑ•RL[แ9ฒ๋{>��oPVฃRไ�้ •‰�ฟo/฿ไ{ำ"iบ–๗ื.ฯ/์'\ำ’์9ฟg�ตฑ์Ÿ(^†œy˜p[ํฌีšท—lUQ๏L๗)KN|๕[๛ใ‰�๎ภxป‘MMี†™ขฤW2Hณ`�ํหLJ‚?อ%ัZ#ฎ้ชกภ4ผพฝH;กฑhmฑF3Nฃำ”ฦ‹฿ž?ด–Cจ\-ฒnใjดu ›๑า”BŒ‘išไF\72T9%ึuูškb๐”-๕#ร" k--\NTยฒe‹ญ6r๘Yปํrเ–ํ@)ndLนนno@ด’Q ~้›Kฦh‹ัPU.E(fr๚J'ฅ ๐Rd๗mดFiyW‹rX[‡CŒ‰yYไgฺ๐ฟmืKR''bJฟเ)gR–ร8xQ”๊ถ‘ม#EบZ"มu-ิ:แ09ำ๗{€Œขn๗T•ม(๙}Kด-Kิฮ(ฌ“D‚6)ฎbNญ[ฌ‘ฉชnEakšํ!?ฃๅgH)Sฒ(J!+B ๒W Su,~ลึ51$’6ฒoO๒;๐‘๔.˜�๚/�๒๙เlี’“l˜?ƒ5šfทz#mSบบ�‘ถ?ะžฯT]ณeอ%��LT5�๒•"งฬ๎๑ �H9๓๚๋ฯ(eI1๐๖็?โ—ฟฬ(๋„lU�ะ๗;๚ใzทงไH๔BŽ3Nrบฆชไƒโ,ฺ*ึฑ]ฯ๕๒ย๓Ÿ�,$2UเพลศRŒ\Ÿฟ1 7ฎฏฯ€โ�๙๛ำ™‡ฯ?ฃdจ?��?@ ค˜8nTน๑ํ] ช†๙rแ�๑ณD2Rเ๐ ู๙่WวNŸ>ำ1ฦะ0�_uaบ“Bภv=ร�3หํBีvคy?ๆ‘�๑ดŽไธฆŸ�๔oR‰ๆํืŸq[%~ๅp~Dี ป}/ฆจeb&’Orฃจj–๑Fš|LธสัิbฆŒ!ญc˜gพฝพP5—�ื๋%ษ‹อ{OV_4>I๑†QEœบณTJR2ใผ OZ)ึ”YSก้๗๋ถC<1�oL๗›์–•ฟr|x 2Vเ}G Q|J*ำ{ณฮQK฿๕R0ก6…ภ24ฬฺ8\#fIฅ4น$./ฏb rย^žเWช AŠtMEำ๖,๓ฤ|ฟCDๅLศาxw๛Š5–�๑m e{‘ึ[L/ŽWŒsX[QiH๋‚ตNบแUfผ]คแห9RJ„uมร4/ฌำ€ตVVM‡ำpรK +ถr,k ฎ E‰๙I[Gษ �44�Ž%$�฿�่G๛�†(xˆ*๏—อว# tฟฬไไ้๗'ฌULทVC๐ ~šฐuห8�วไๅ–งœฃ�๏จŒcบ฿1ฦ๒๑ห๙lqู%Fr†‡ใฎmั�gยEDHk๓ฒHj@ึ€ื4 šBŠ‘”3KH[ชC†g4nK�ศื*ŒhN�์JT‰Ÿ†ฐํƒจนงํ0Vrู\m๊` ฅ%iPŠ `}=pฮฒ๖าฺP(ฌ~!g14ๆ"ƒ€ณาWO‘R,ฅf2E>#฿‡%p!W‰[โณB”(b”<:_�ว„ตNภ(1mศีญๆTKvฝไ„ฑVึS�:า9วพ“พsŒม(22`ค,ศีฺZQƒUมj@Œ ฟ$qฦืต`eซช&ๅ„๗ซฤ#ญ"gฮhญ ข_PJแWO‰A�๐9ก7Žมšคฮ5”,+ุMลH)ัด]ุ ไšบฒ+9๒qผc�๓?�ใะ†็็_ษ)ัถ=บi.P"ฯฟ�™๗หeƒ�+ฦแNีtิUC‘ถ?ะ?|เื?�oข2 ื๋+ป๓�฿฿iบ…iชร™ฆ;0 Šฉ๘๘๙ �nฯ๑้3iYธฟ�‚-‰_~ขniฉ๚=ฎ—}FXWž~๘=~8์Ž|�แ๗dภu=อ�๓ว'‰Šํ๖hญู๗ธฎๅp:rh:๚ำ™ำงุ,ๅZAณ—h•ฉšใ ฅ• ๛๛๓r“ยaGำIษษ๎tฆ=๎๑๓ฤ๘๖ฦtฟ‘ ๘แ"๒‹qเภbตFkจบQiฆ้ฮ๕ํ†+๋2}ไp~ข;์๑ซว6 ูOuืq�๖2ซ—ืJฮ9–5R�B\=�?�‹แ๒ฦ�&ฬไธzฮ?‹Yคชุ?=’‹ศ@�~ว�๘H ‘ถ�ำีป�ฟ๛kฌ5่E‚*้v{b๙ฎi๊M"ชYฆใํ•ร๑Lณ?ณไ1UMฝ฿oาŸฌ”5h ำ๕…้๚BXรz�†�ฦ�๖Bส• ~ธbwa'™JCˆฌใฤำวDZL‰y™Yๆ™V\ทตฃd†ห…’ ซtว#!ฌจœ$��๘‘2ลฯPท„R๋B@ณ„ � J -m]QŠd@งuู^่3aYpึb–XŽซภ้hืBญšผ—]ชถจสกŒๆ~ygg๔ftlšญ5%Š’JƒAQีึ(๊บฃ฿๏eG narwhals-2.26.0/docs/backcompat.md000066400000000000000000000241521525000603700170000ustar00rootroot00000000000000# Perfect backwards compatibility policy Narwhals is primarily aimed at library maintainers rather than end users. As such, we need to take stability and backwards compatibility extra-seriously. Our policy is: - If you write code using `narwhals.stable.v1` or `import narwhals.stable.v2`, then we promise to never change or remove any public function you're using. - If we need to make a backwards-incompatible change, it will be pushed into the main `narwhals` namespace (and eventually `narwhals.stable.v3`), leaving `narwhals.stable.v1` and `narwhals.stable.v2` unaffected. - We will maintain `narwhals.stable.v1` and `narwhals.stable.v2` indefinitely, even as `narwhals.stable.v3` and other stable APIs come out. For example, Narwhals version 1.0.0 offers `narwhals.stable.v1`, whereas Narwhals 2.0.0 offers both `narwhals.stable.v1` and `narwhals.stable.v2`. Like this, we enable different packages to be on different Narwhals stable APIs, and for end-users to use all of them in the same project without conflicts nor incompatibilities. ## Background Ever upgraded a package, only to find that it breaks all your tests because of an intentional API change? Did you end up having to litter your code with statements such as the following? ```py if parse_version(pdx.__version__) < parse_version("1.3.0"): df = df.brewbeer() elif parse_version("1.3.0") <= parse_version(pdx.__version__) < parse_version("1.5.0"): df = df.brew_beer() else: df = df.brew_drink("beer") ``` Now imagine multiplying that complexity over all the dataframe libraries you want to support... Narwhals offers a simple solution, inspired by Rust editions. ## Narwhals' Stable API Narwhals implements a subset of the Polars API. What will Narwhals do if/when Polars makes a backwards-incompatible change? Would you need to update your Narwhals code? To understand the solution, let's go through an example. Suppose that, hypothetically, in Polars 2.0, `polars.Expr.cum_sum` was renamed to `polars.Expr.cumulative_sum`. In Narwhals, we have `narwhals.Expr.cum_sum`. Does this mean that Narwhals will also rename its method, and deprecate the old one? The answer is...no! Narwhals offers a `stable` namespace, which allows you to write your code once and forget about it. That is to say, if you write your code like this: === "from/to_native" ```py import narwhals.stable.v2 as nw from narwhals.stable.v2.typing import IntoFrameT def func(df: IntoFrameT) -> IntoFrameT: return nw.from_native(df).with_columns(nw.col("a").cum_sum()).to_native() ``` === "@narwhalify" ```py import narwhals.stable.v2 as nw from narwhals.stable.v2.typing import FrameT @nw.narwhalify def func(df: FrameT) -> FrameT: return df.with_columns(nw.col("a").cum_sum()) ``` then we, in Narwhals, promise that your code will keep working, even in newer versions of Polars after they have renamed their method. Concretely, we would do the following: - `narwhals.stable.v2`: you can keep using `Expr.cum_sum` - `narwhals.stable.v3`: you can only use `Expr.cumulative_sum`, `Expr.cum_sum` will have been removed - `narwhals`: you can only use `Expr.cumulative_sum`, `Expr.cum_sum` will have been removed So, although Narwhals' main API (and `narwhals.stable.v3`) will have introduced a breaking change, users of `narwhals.stable.v2` will have their code unaffected. ### Exceptions Are we really promising perfect backwards compatibility in all cases, without exceptions? Not quite. There are some exceptions, which we'll now list. But we'll never intentionally break your code. Anything currently in `narwhals.stable.v1` or `narwhals.stable.v2` will not be changed or removed in future Narwhals versions. Here are exceptions to our backwards compatibility policy: - Unambiguous bugs. If a function contains what is unambiguously a bug, then we'll fix it, without considering that to be a breaking change. - Radical changes in backends. Suppose that Polars was to remove expressions, or pandas were to remove support for categorical data. At that point, we might need to rethink Narwhals. However, we expect such radical changes to be exceedingly unlikely. - We may consider making some type hints more precise. - Anything labelled "unstable". - We may sometimes need to bump the minimum versions of supported backends. - We will drop support for old python versions, roughly in sync with [their end of life](https://devguide.python.org/versions/#supported-versions) In general, decisions are driven by use-cases, and we conduct a search of public GitHub repositories before making any change. ### `import narwhals as nw`, `import narwhals.stable.v2 as nw`, or `import narwhals.stable.v1 as nw`? Which should you use? In general we recommend: - When prototyping, use `import narwhals as nw`, so you can iterate quickly. - Once you're happy with what you've got and want to release something production-ready and stable, then switch out your `import narwhals as nw` usage for `import narwhals.stable.v2 as nw`. - If you're starting a new project, use either the main Narwhals namespace or `narwhals.stable.v2`. - If your project is already using `narwhals.stable.v1`, and you don't need any of the newer Narwhals features, there's probably no need to switch to `narwhals.stable.v2`, as that would require you to raise the minimum version of Narwhals you support. If you'd like to use `narwhals.stable.v2`, make sure to require at least `narwhals>=2.0`. ## `main` vs `stable.v2` differences - Since Narwhals 2.26: - `Expr.cat.get_categories` and `Series.cat.get_categories` are deprecated in the main Narwhals namespace, as Polars removed their own `cat.get_categories`. To get the distinct values present in a Categorical column, use `unique`; for the fixed category list of an Enum, use its `dtype.categories`. Until they are removed, they are implemented as `unique().drop_nulls().cast(String)`. In `narwhals.stable.v1` and `narwhals.stable.v2` they remain available and keep dispatching to each backend's native implementation. Other than that, everything not labelled "unstable" in the main namespace is also available in `narwhals.stable.v2`. ## `main` vs `stable.v1` differences - Since Narwhals 1.49: - `nw.Expr.arg_max` and `nw.Expr.arg_min` are deprecated from the main Narwhals namespace. Note that the `Series` methods (`Series.arg_max`, `Series.arg_min`) will remain available. - Since Narwhals 1.45: - `nw.any_horizontal` and `nw.all_horizontal` have a `ignore_nulls` keyword. In `narwhals.stable.v1`, it defaults to `False`; since Narwhals 2.0 it is a required argument in the main namespace (and in `narwhals.stable.v2`). - `LazyFrame.with_row_index` requires `order_by` to be specified as it is an order-dependent operation, in the main Narwhals namespace. - Since Narwhals 1.43: - `nw.get_level` is deprecated in the main Narwhals namespace. - Since Narwhals 1.35: - pandas' ordered categoricals get mapped to `nw.Enum` instead of `nw.Categorical`. - `nw.Enum` must be provided `categories` at instantiation. - Since Narwhals 1.29.0, `LazyFrame.gather_every` has been deprecated from the main namespace. - Since Narwhals 1.25.0, `native_namespace` is generally deprecated across the API. Please use `backend` instead. - Since Narwhals 1.24.1, an empty or all-null object-dtype pandas Series is inferred to be of dtype `String`. Previously, it would have been inferred as `Object`. - Since Narwhals 1.23: - Passing an `ibis.Table` to `from_native` returns a `LazyFrame`. In `narwhals.stable.v1`, it returns a `DataFrame` with `level='interchange'`. - `eager_or_interchange_only` has been removed from `from_native` and `narwhalify`. - Order-dependent expressions can no longer be used with `narwhals.LazyFrame`. - The following expressions have been deprecated from the main namespace: `Expr.head`, `Expr.tail`, `Expr.gather_every`, `Expr.sample`, `Expr.arg_true`, `Expr.sort`. - Since Narwhals 1.21, passing a `DuckDBPyRelation` to `from_native` returns a `LazyFrame`. In `narwhals.stable.v1`, it returns a `DataFrame` with `level='interchange'`. - Since Narwhals 1.15, `Series` is generic in the native Series, meaning that you can write: ```py import narwhals as nw import polars as pl s_pl = pl.Series([1, 2, 3]) s = nw.from_native(s_pl, series_only=True) # mypy infers `s.to_native()` to be `polars.Series` reveal_type(s.to_native()) ``` Previously, `Series` was not generic, so in the above example `s.to_native()` would have been inferred as `Any`. - Since Narwhals 1.13.0, the `strict` parameter in `from_native`, `to_native`, and `narwhalify` has been deprecated in favour of `pass_through`. This is because several users expressed confusion/surprise over what `strict=False` did. ```py # v1 syntax: nw.from_native(df, strict=False) # main namespace (and, when we get there, v2) syntax: nw.from_native(df, pass_through=True) ``` If you are using Narwhals>=1.13.0, then we recommend using `pass_through`, as that works consistently across namespaces. In the future: - in the main Narwhals namespace, `strict` will be removed in favour of `pass_through` - in `stable.v1`, we will keep both `strict` and `pass_through` - Since Narwhals 1.9.0, `Datetime` and `Duration` dtypes hash using both `time_unit` and `time_zone`. The effect of this can be seen when placing these dtypes in sets: ```python exec="yes" source="above" session="backcompat" import narwhals.stable.v1 as nw_v1 import narwhals as nw # v1 behaviour: assert nw_v1.Datetime("us") in {nw_v1.Datetime} # main namespace (and, when we get there, v2) behaviour: assert nw.Datetime("us") not in {nw.Datetime} assert nw.Datetime("us") in {nw.Datetime("us")} ``` To check if a dtype is a datetime (regardless of `time_unit` or `time_zone`) we recommend using `==` instead, as that works consistently across namespaces: ```python exec="yes" source="above" session="backcompat" # Recommended assert nw.Datetime("us") == nw.Datetime assert nw_v1.Datetime("us") == nw_v1.Datetime ``` narwhals-2.26.0/docs/basics/000077500000000000000000000000001525000603700156125ustar00rootroot00000000000000narwhals-2.26.0/docs/basics/complete_example.md000066400000000000000000000130101525000603700214520ustar00rootroot00000000000000# Complete example We're going to write a dataframe-agnostic "Standard Scaler". This class will have `fit` and `transform` methods (like `scikit-learn` transformers), and will work agnostically for pandas and Polars. We'll need to write two methods: - `fit`: find the mean and standard deviation for each column from a given training set; - `transform`: scale a given dataset with the mean and standard deviations calculated during `fit`. ## Fit method Unlike the `transform` method, which we'll write below, `fit` cannot stay lazy, as we need to compute concrete values for the means and standard deviations. To be able to get `Series` out of our `DataFrame`, we'll pass `eager_only=True` to `nw.from_native`. This is because Polars doesn't have a concept of lazy `Series`, and so Narwhals doesn't either. We can specify that in the `@nw.narwhalify` decorator by setting `eager_only=True`, and the argument will be propagated to `nw.from_native`. === "from/to_native" ```py from typing import Self import narwhals as nw from narwhals.typing import IntoDataFrameT class StandardScaler: def fit(self, df: IntoDataFrameT) -> Self: df_nw = nw.from_native(df, eager_only=True) self._means = {col: df_nw[col].mean() for col in df_nw.columns} self._std_devs = {col: df_nw[col].std() for col in df_nw.columns} self._columns = df_nw.columns return self ``` === "@narwhalify" ```py from typing import Self import narwhals as nw from narwhals.typing import DataFrameT class StandardScaler: @nw.narwhalify(eager_only=True) def fit(self, df: DataFrameT) -> Self: self._means = {col: df[col].mean() for col in df.columns} self._std_devs = {col: df[col].std() for col in df.columns} self._columns = df.columns return self ``` ## Transform method We're going to take in a dataframe, and return a dataframe of the same type: === "from/to_native" ```py from typing import Self import narwhals as nw from narwhals.typing import IntoFrameT class StandardScaler: ... def transform(self, df: IntoFrameT) -> IntoFrameT: df_nw = nw.from_native(df) return df_nw.with_columns( (nw.col(col) - self._means[col]) / self._std_devs[col] for col in self._columns ).to_native() ``` === "@narwhalify" ```py from typing import Self import narwhals as nw from narwhals.typing import FrameT class StandardScaler: ... @nw.narwhalify def transform(self, df: FrameT) -> FrameT: return df.with_columns( (nw.col(col) - self._means[col]) / self._std_devs[col] for col in self._columns ) ``` Note that all the calculations here can stay lazy if the underlying library permits it, so we don't pass in any extra keyword-arguments such as `eager_only`, we just use the default `eager_only=False`. ## Putting it all together Here is our dataframe-agnostic standard scaler: === "from/to_native" ```py from typing import Self import narwhals as nw from narwhals.typing import IntoDataFrameT from narwhals.typing import IntoFrameT class StandardScaler: def fit(self, df: IntoDataFrameT) -> Self: df_nw = nw.from_native(df, eager_only=True) self._means = {col: df_nw[col].mean() for col in df_nw.columns} self._std_devs = {col: df_nw[col].std() for col in df_nw.columns} self._columns = df_nw.columns return self def transform(self, df: IntoFrameT) -> IntoFrameT: df_nw = nw.from_native(df) return df_nw.with_columns( (nw.col(col) - self._means[col]) / self._std_devs[col] for col in self._columns ).to_native() ``` === "@narwhalify" ```python exec="yes" source="above" session="standard-scaler-example" from typing import Self import narwhals as nw from narwhals.typing import DataFrameT from narwhals.typing import FrameT class StandardScaler: @nw.narwhalify(eager_only=True) def fit(self, df: DataFrameT) -> Self: self._means = {col: df[col].mean() for col in df.columns} self._std_devs = {col: df[col].std() for col in df.columns} self._columns = df.columns return self @nw.narwhalify def transform(self, df: FrameT) -> FrameT: return df.with_columns( (nw.col(col) - self._means[col]) / self._std_devs[col] for col in self._columns ) ``` Next, let's try running it. Notice how, as `transform` doesn't use any eager-only features, we can pass a Polars LazyFrame to it and have it stay lazy! === "pandas" ```python exec="yes" source="material-block" result="python" session="standard-scaler-example" import pandas as pd df_train = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 7]}) df_test = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 7]}) scaler = StandardScaler() scaler.fit(df_train) print(scaler.transform(df_test)) ``` === "Polars" ```python exec="yes" source="material-block" result="python" session="standard-scaler-example" import polars as pl df_train = pl.DataFrame({"a": [1, 2, 3], "b": [4, 5, 7]}) df_test = pl.LazyFrame({"a": [1, 2, 3], "b": [4, 5, 7]}) scaler = StandardScaler() scaler.fit(df_train) print(scaler.transform(df_test).collect()) ``` narwhals-2.26.0/docs/basics/dataframe.md000066400000000000000000000161261525000603700200660ustar00rootroot00000000000000# DataFrame To write a dataframe-agnostic function, the steps you'll want to follow are: 1. Initialise a Narwhals DataFrame or LazyFrame by passing your dataframe to `nw.from_native`. All the calculations stay lazy if we start with a lazy dataframe - Narwhals will never automatically trigger computation without you asking it to. Note: if you need eager execution, make sure to pass `eager_only=True` to `nw.from_native`. 2. Express your logic using the subset of the Polars API supported by Narwhals. 3. If you need to return a dataframe to the user in its original library, call `nw.to_native`. Steps 1 and 3 are so common that we provide a utility `@nw.narwhalify` decorator, which allows you to only explicitly write step 2. Let's explore this with some simple examples. ## Example 1: descriptive statistics Just like in Polars, we can pass expressions to `DataFrame.select` or `LazyFrame.select`. Make a Python file with the following content: === "from/to_native" ```python exec="yes" source="above" session="df_ex1" import narwhals as nw from narwhals.typing import IntoFrameT def func(df: IntoFrameT) -> IntoFrameT: return ( nw.from_native(df) .select( a_sum=nw.col("a").sum(), a_mean=nw.col("a").mean(), a_std=nw.col("a").std() ) .to_native() ) ``` === "@narwhalify" ```python exec="yes" source="above" session="df_ex1" import narwhals as nw from narwhals.typing import FrameT @nw.narwhalify def func(df: FrameT) -> FrameT: return df.select( a_sum=nw.col("a").sum(), a_mean=nw.col("a").mean(), a_std=nw.col("a").std() ) ``` Let's try it out: === "pandas" ```python exec="yes" source="material-block" result="python" session="df_ex1" import pandas as pd df = pd.DataFrame({"a": [1, 1, 2]}) print(func(df)) ``` === "Polars (eager)" ```python exec="yes" source="material-block" result="python" session="df_ex1" import polars as pl df = pl.DataFrame({"a": [1, 1, 2]}) print(func(df)) ``` === "Polars (lazy)" ```python exec="yes" source="material-block" result="python" session="df_ex1" import polars as pl df = pl.LazyFrame({"a": [1, 1, 2]}) print(func(df).collect()) ``` === "PyArrow" ```python exec="yes" source="material-block" result="python" session="df_ex1" import pyarrow as pa table = pa.table({"a": [1, 1, 2]}) print(func(table)) ``` ## Example 2: group-by and mean Just like in Polars, we can pass expressions to `GroupBy.agg`. Make a Python file with the following content: === "from/to_native" ```python exec="yes" source="above" session="df_ex2" import narwhals as nw from narwhals.typing import IntoFrameT def func(df: IntoFrameT) -> IntoFrameT: return nw.from_native(df).group_by("a").agg(nw.col("b").mean()).sort("a").to_native() ``` === "@narwhalify" ```python exec="yes" source="above" session="df_ex2" import narwhals as nw from narwhals.typing import FrameT @nw.narwhalify def func(df: FrameT) -> FrameT: return df.group_by("a").agg(nw.col("b").mean()).sort("a") ``` Let's try it out: === "pandas" ```python exec="yes" source="material-block" result="python" session="df_ex2" import pandas as pd df = pd.DataFrame({"a": [1, 1, 2], "b": [4, 5, 6]}) print(func(df)) ``` === "Polars (eager)" ```python exec="yes" source="material-block" result="python" session="df_ex2" import polars as pl df = pl.DataFrame({"a": [1, 1, 2], "b": [4, 5, 6]}) print(func(df)) ``` === "Polars (lazy)" ```python exec="yes" source="material-block" result="python" session="df_ex2" import polars as pl df = pl.LazyFrame({"a": [1, 1, 2], "b": [4, 5, 6]}) print(func(df).collect()) ``` === "PyArrow" ```python exec="yes" source="material-block" result="python" session="df_ex2" import pyarrow as pa table = pa.table({"a": [1, 1, 2], "b": [4, 5, 6]}) print(func(table)) ``` ## Example 3: horizontal sum Expressions can be free-standing functions which accept other expressions as inputs. For example, we can compute a horizontal sum using `nw.sum_horizontal`. Make a Python file with the following content: === "from/to_native" ```python exec="yes" source="above" session="df_ex3" import narwhals as nw from narwhals.typing import IntoFrameT def func(df: IntoFrameT) -> IntoFrameT: return ( nw.from_native(df).with_columns(a_plus_b=nw.sum_horizontal("a", "b")).to_native() ) ``` === "@narwhalify" ```python exec="yes" source="above" session="df_ex3" import narwhals as nw from narwhals.typing import FrameT @nw.narwhalify def func(df: FrameT) -> FrameT: return df.with_columns(a_plus_b=nw.sum_horizontal("a", "b")) ``` Let's try it out: === "pandas" ```python exec="yes" source="material-block" result="python" session="df_ex3" import pandas as pd df = pd.DataFrame({"a": [1, 1, 2], "b": [4, 5, 6]}) print(func(df)) ``` === "Polars (eager)" ```python exec="yes" source="material-block" result="python" session="df_ex3" import polars as pl df = pl.DataFrame({"a": [1, 1, 2], "b": [4, 5, 6]}) print(func(df)) ``` === "Polars (lazy)" ```python exec="yes" source="material-block" result="python" session="df_ex3" import polars as pl df = pl.LazyFrame({"a": [1, 1, 2], "b": [4, 5, 6]}) print(func(df).collect()) ``` === "PyArrow" ```python exec="yes" source="material-block" result="python" session="df_ex3" import pyarrow as pa table = pa.table({"a": [1, 1, 2], "b": [4, 5, 6]}) print(func(table)) ``` ## Example 4: multiple inputs `nw.narwhalify` can be used to decorate functions that take multiple inputs as well and return a non dataframe/series-like object. For example, let's compute how many rows are left in a dataframe after filtering it based on a series. Make a Python file with the following content: ```python exec="yes" source="above" session="df_ex4" import narwhals as nw from narwhals.typing import DataFrameT @nw.narwhalify(eager_only=True) def func(df: DataFrameT, s: nw.Series, col_name: str) -> int: return df.filter(nw.col(col_name).is_in(s)).shape[0] ``` We require `eager_only=True` here because lazyframe doesn't support `.shape`. Let's try it out: === "pandas" ```python exec="yes" source="material-block" result="python" session="df_ex4" import pandas as pd df = pd.DataFrame({"a": [1, 1, 2, 2, 3], "b": [4, 5, 6, 7, 8]}) s = pd.Series([1, 3]) print(func(df, s, "a")) ``` === "Polars (eager)" ```python exec="yes" source="material-block" result="python" session="df_ex4" import polars as pl df = pl.DataFrame({"a": [1, 1, 2, 2, 3], "b": [4, 5, 6, 7, 8]}) s = pl.Series([1, 3]) print(func(df, s, "a")) ``` === "PyArrow" ```python exec="yes" source="material-block" result="python" session="df_ex4" import pyarrow as pa table = pa.table({"a": [1, 1, 2, 2, 3], "b": [4, 5, 6, 7, 8]}) a = pa.chunked_array([[1, 3]]) print(func(table, a, "a")) ``` narwhals-2.26.0/docs/basics/dataframe_conversion.md000066400000000000000000000053521525000603700223320ustar00rootroot00000000000000# Conversion between libraries Some library maintainers must apply complex dataframe operations, using methods and functions that may not (yet) be implemented in Narwhals. In such cases, Narwhals can still be highly beneficial, by allowing easy dataframe conversion. ## Dataframe X in, pandas out Imagine that you maintain a library with a function that operates on pandas dataframes to produce automated reports. You want to allow users to supply a dataframe in any format to that function (pandas, Polars, DuckDB, cuDF, Modin, etc.) without adding all those dependencies to your own project and without special-casing each input library's variation of `to_pandas` / `toPandas` / `to_pandas_df` / `df` ... One solution is to use Narwhals as a thin Dataframe ingestion layer, to convert user-supplied dataframe to the format that your library uses internally. Since Narwhals is zero-dependency, this is a much more lightweight solution than including all the dataframe libraries as dependencies, and easier to write than special casing each input library's `to_pandas` method (if it even exists!). To illustrate, we create dataframes in various formats: ```python exec="yes" source="above" session="conversion" import narwhals as nw from narwhals.typing import IntoDataFrame from typing import Any import duckdb import polars as pl import pandas as pd df_polars = pl.DataFrame( { "A": [1, 2, 3, 4, 5], "fruits": ["banana", "banana", "apple", "apple", "banana"], "B": [5, 4, 3, 2, 1], "cars": ["beetle", "audi", "beetle", "beetle", "beetle"], } ) df_pandas = df_polars.to_pandas() df_duckdb = duckdb.sql("SELECT * FROM df_polars") ``` Now, we define a function that can ingest any dataframe type supported by Narwhals, and convert it to a pandas DataFrame for internal use: ```python exec="yes" source="above" session="conversion" result="python" def df_to_pandas(df: IntoDataFrame) -> pd.DataFrame: return nw.from_native(df).to_pandas() print(df_to_pandas(df_polars)) ``` ## Dataframe X in, Polars out ### Via PyCapsule Interface Similarly, if your library uses Polars internally, you can convert any user-supplied dataframe which implements `__arrow_c_stream__`: ```python exec="yes" source="above" session="conversion" result="python" def df_to_polars(df_native: Any) -> pl.DataFrame: if hasattr(df_native, "__arrow_c_stream__"): return nw.from_arrow(df_native, backend=pl).to_native() msg = f"Expected object which implements '__arrow_c_stream__' got: {type(df_native)}" raise TypeError(msg) print(df_to_polars(df_duckdb)) ``` It works to pass Polars to `backend` here because Polars supports the [PyCapsule Interface](https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html) for import. narwhals-2.26.0/docs/basics/series.md000066400000000000000000000154551525000603700174400ustar00rootroot00000000000000# Series In [dataframe](dataframe.md), you learned how to write a dataframe-agnostic function. We only used DataFrame methods there - but what if we need to operate on its columns? There are two ways to do this: - Series, e.g. `df.with_columns(df['a']*2)`. - expressions, e.g. `df.with_columns(nw.col('a')*2)`. Expressions are by far the preferred way: - They're inherently lazy and allow for optimisations. - They're the most idiomatic and portable solution. - Series is only available for eager backends. Nonetheless, you might need to write dataframe-agnostic code which accepts user-provided Series. In that case, you'll need to pass `eager_only=True` to `nw.from_native`. ## Example 1: filter based on a column's values This can stay lazy, so we just use expressions: === "from/to_native" ```python exec="yes" source="above" session="series_ex1" import narwhals as nw from narwhals.typing import IntoFrameT def my_func(df: IntoFrameT) -> IntoFrameT: return nw.from_native(df).filter(nw.col("a") > 0).to_native() ``` === "@narwhalify" ```python exec="yes" source="above" session="series_ex1" import narwhals as nw from narwhals.typing import FrameT @nw.narwhalify def my_func(df: FrameT) -> FrameT: return df.filter(nw.col("a") > 0) ``` and call it on either an eager or a lazy dataframe: === "pandas" ```python exec="yes" source="material-block" result="python" session="series_ex1" import pandas as pd df = pd.DataFrame({"a": [-1, 1, 3], "b": [3, 5, -3]}) print(my_func(df)) ``` === "Polars (eager)" ```python exec="yes" source="material-block" result="python" session="series_ex1" import polars as pl df = pl.DataFrame({"a": [-1, 1, 3], "b": [3, 5, -3]}) print(my_func(df)) ``` === "Polars (lazy)" ```python exec="yes" source="material-block" result="python" session="series_ex1" import polars as pl df = pl.LazyFrame({"a": [-1, 1, 3], "b": [3, 5, -3]}) print(my_func(df).collect()) ``` === "PyArrow" ```python exec="yes" source="material-block" result="python" session="series_ex1" import pyarrow as pa table = pa.table({"a": [-1, 1, 3], "b": [3, 5, -3]}) print(my_func(table)) ``` ## Example 2: multiply a column's values by a constant Let's write a dataframe-agnostic function which multiplies the values in column `'a'` by 2. This can also stay lazy, and can use expressions: === "from/to_native" ```python exec="yes" source="above" session="series_ex2" import narwhals as nw from narwhals.typing import IntoFrameT def my_func(df: IntoFrameT) -> IntoFrameT: return nw.from_native(df).with_columns(nw.col("a") * 2).to_native() ``` === "@narwhalify" ```python exec="yes" source="above" session="series_ex2" import narwhals as nw from narwhals.typing import FrameT @nw.narwhalify def my_func(df: FrameT) -> FrameT: return df.with_columns(nw.col("a") * 2) ``` and call it on either an eager or a lazy dataframe: === "pandas" ```python exec="yes" source="material-block" result="python" session="series_ex2" import pandas as pd df = pd.DataFrame({"a": [-1, 1, 3], "b": [3, 5, -3]}) print(my_func(df)) ``` === "Polars (eager)" ```python exec="yes" source="material-block" result="python" session="series_ex2" import polars as pl df = pl.DataFrame({"a": [-1, 1, 3], "b": [3, 5, -3]}) print(my_func(df)) ``` === "Polars (lazy)" ```python exec="yes" source="material-block" result="python" session="series_ex2" import polars as pl df = pl.LazyFrame({"a": [-1, 1, 3], "b": [3, 5, -3]}) print(my_func(df).collect()) ``` === "PyArrow" ```python exec="yes" source="material-block" result="python" session="series_ex2" import pyarrow as pa table = pa.table({"a": [-1, 1, 3], "b": [3, 5, -3]}) print(my_func(table)) ``` Note that column `'a'` was overwritten. If we had wanted to add a new column called `'c'` containing column `'a'`'s values multiplied by 2, we could have used `Expr.alias`: ```python exec="yes" source="above" session="series_ex2.1" import narwhals as nw from narwhals.typing import FrameT @nw.narwhalify def my_func(df: FrameT) -> FrameT: return df.with_columns((nw.col("a") * 2).alias("c")) ``` === "pandas" ```python exec="yes" source="material-block" result="python" session="series_ex2.1" import pandas as pd df = pd.DataFrame({"a": [-1, 1, 3], "b": [3, 5, -3]}) print(my_func(df)) ``` === "Polars (eager)" ```python exec="yes" source="material-block" result="python" session="series_ex2.1" import polars as pl df = pl.DataFrame({"a": [-1, 1, 3], "b": [3, 5, -3]}) print(my_func(df)) ``` === "Polars (lazy)" ```python exec="yes" source="material-block" result="python" session="series_ex2.1" import polars as pl df = pl.LazyFrame({"a": [-1, 1, 3], "b": [3, 5, -3]}) print(my_func(df).collect()) ``` === "PyArrow" ```python exec="yes" source="material-block" result="python" session="series_ex2.1" import pyarrow as pa table = pa.table({"a": [-1, 1, 3], "b": [3, 5, -3]}) print(my_func(table)) ``` ## Example 3: finding the mean of a column as a scalar Now, we want to find the mean of column `'a'`, and we need it as a Python scalar. This means that computation cannot stay lazy - it must execute! Therefore, we'll pass `eager_only=True` to `nw.from_native` (or `nw.narwhalify`), and then, instead of using expressions, we'll extract a `Series`. === "from/to_native" ```python exec="yes" source="above" session="series_ex3" import narwhals as nw from narwhals.typing import IntoDataFrameT def my_func(df: IntoDataFrameT) -> float | None: return nw.from_native(df, eager_only=True)["a"].mean() ``` === "@narwhalify" ```python exec="yes" source="above" session="series_ex3" import narwhals as nw from narwhals.typing import DataFrameT @nw.narwhalify(eager_only=True) def my_func(df: DataFrameT) -> float | None: return df["a"].mean() ``` Now we can call it on an eager dataframe only: === "pandas" ```python exec="yes" source="material-block" result="python" session="series_ex3" import pandas as pd df = pd.DataFrame({"a": [-1, 1, 3], "b": [3, 5, -3]}) print(my_func(df)) ``` === "Polars (eager)" ```python exec="yes" source="material-block" result="python" session="series_ex3" import polars as pl df = pl.DataFrame({"a": [-1, 1, 3], "b": [3, 5, -3]}) print(my_func(df)) ``` === "PyArrow" ```python exec="yes" source="material-block" result="python" session="series_ex3" import pyarrow as pa table = pa.table({"a": [-1, 1, 3], "b": [3, 5, -3]}) print(my_func(table)) ``` Note that, even though the output of our function is not a dataframe nor a series, we can still use `narwhalify`. narwhals-2.26.0/docs/concepts/000077500000000000000000000000001525000603700161645ustar00rootroot00000000000000narwhals-2.26.0/docs/concepts/boolean.md000066400000000000000000000107641525000603700201350ustar00rootroot00000000000000# Boolean columns ## Null preservation Generally speaking, Narwhals operations preserve null values. For example, if you do `nw.col('a')*2`, then: - Values which were non-null get multiplied by 2. - Null values stay null. ```python exec="yes" source="above" session="boolean" import narwhals as nw from narwhals.typing import IntoFrameT data = {"a": [1.4, None, 4.2]} def multiplication(df: IntoFrameT) -> IntoFrameT: return nw.from_native(df).with_columns((nw.col("a") * 2).alias("a*2")).to_native() ``` === "pandas" ```python exec="yes" source="material-block" result="python" session="boolean" import pandas as pd df = pd.DataFrame(data) print(multiplication(df)) ``` === "Polars (eager)" ```python exec="yes" source="material-block" result="python" session="boolean" import polars as pl df = pl.DataFrame(data) print(multiplication(df)) ``` === "PyArrow" ```python exec="yes" source="material-block" result="python" session="boolean" import pyarrow as pa table = pa.table(data) print(multiplication(table)) ``` What do we do, however, when the result column is boolean? For example, `nw.col('a') > 0`? Unfortunately, this is backend-dependent: - for all backends except pandas, null values are preserved - for pandas, this depends on the dtype backend: - for PyArrow dtypes and pandas nullable dtypes, null values are preserved - for the classic NumPy dtypes, null values are typically filled in with `False`. pandas is generally moving towards nullable dtypes, and they [may become the default in the future](https://github.com/pandas-dev/pandas/pull/58988), so we hope that the classical NumPy dtypes not supporting null values will just be a temporary legacy pandas issue which will eventually go away anyway. ```python exec="yes" source="above" session="boolean" from narwhals.typing import FrameT def comparison(df: FrameT) -> FrameT: return nw.from_native(df).with_columns((nw.col("a") > 2).alias("a>2")).to_native() ``` === "pandas" ```python exec="yes" source="material-block" result="python" session="boolean" import pandas as pd df = pd.DataFrame(data) print(comparison(df)) ``` === "Polars (eager)" ```python exec="yes" source="material-block" result="python" session="boolean" import polars as pl df = pl.DataFrame(data) print(comparison(df)) ``` === "PyArrow" ```python exec="yes" source="material-block" result="python" session="boolean" import pyarrow as pa table = pa.table(data) print(comparison(table)) ``` ## Kleene logic Generally speaking, if we have two boolean columns `'a'` and `'b'`, then `nw.col('a') | nw.col('b')` and `nw.col('a') & nw.col('b')` follow Kleene logic. That is to say: | `nw.col('a')` | `nw.col('b')` | `nw.col('a') | nw.col('b')` | `nw.col('a') & nw.col('b')` | |---------------|---------------|-----------------------------|-----------------------------| | True | True | True | True | | True | False | True | False | | True | None | True | None | | False | True | True | False | | False | False | False | False | | False | None | None | False | | None | True | True | None | | None | False | None | False | | None | None | None | None | Here, too, pandas backed by NumPy types differs, as its boolean columns cannot store null values: - For `nw.col('a') | nw.col('b')`, pandas returns `True` if at least one column contains a `True` value, and `False` otherwise. - For `nw.col('a') & nw.col('b')`, pandas returns `True` if both columns contain `True` values, and `False` otherwise. In `any_horizontal` and `all_horizontal` there is an `ignore_nulls` argument, which behaves as follows: - If `True`, then null values are ignored and contribute nothing to the final result. If there are no values, the result is: - `False` for `any_horizontal`. - `True` for `all_horizontal`. - If `False`, then Kleene logic is followed. If using pandas backed by classical NumPy types, then this option is not supported. narwhals-2.26.0/docs/concepts/column_names.md000066400000000000000000000020061525000603700211640ustar00rootroot00000000000000# Column names The majority of backends, as Polars, PyArrow, duckdb and PySpark for example, only allow for string column names. What about pandas-like and Dask backends? ```python exec="yes" source="above" result="python" session="col_names" import pandas as pd df = pd.concat([pd.Series([1, 2], name=0), pd.Series([1, 3], name=0)], axis=1) print(df) ``` Oh...not only does it let us create a dataframe with a column named `0` - it lets us create one with _two_ such columns! What does Narwhals do about this? - In general, non-string column names are supported. In some places where this might create ambiguity (such as `DataFrame.__getitem__` or `DataFrame.select`) we may be strict and only allow passing in column names if they're strings. - If you have a use-case that's failing for non-string column names, please report it to [https://github.com/narwhals-dev/narwhals/issues](https://github.com/narwhals-dev/narwhals/issues) and we'll see if we can support it. - Duplicate column names are ๐Ÿšซ banned ๐Ÿšซ. narwhals-2.26.0/docs/concepts/improve_group_by_operation.md000066400000000000000000000061331525000603700241600ustar00rootroot00000000000000# Avoiding the `UserWarning` when using pandas `group_by` ## Introduction If you have ever experienced the > UserWarning: Found complex group-by expression, which can't be expressed efficiently with the pandas API. If you can, please rewrite your query such that group-by aggregations are simple (e.g. mean, std, min, max, ...) message while using the narwhals `group_by()` method, this is for you. If you haven't, this is also for you as you might experience it and you need to know how to avoid it. Take the following two codes as an example. === "Approach 1" ```python exec="yes" source="above" result="python" session="group_by_warning_1" hl_lines="12" import narwhals as nw import pandas as pd from narwhals.typing import IntoFrameT data = {"a": [1, 2, 3, 4, 5], "b": [5, 4, 3, 2, 1], "c": [10, 20, 30, 40, 50]} df_pd = pd.DataFrame(data) def approach_1(df_native: IntoFrameT) -> IntoFrameT: df = nw.from_native(df_native) df = df.group_by("a").agg(d=(nw.col("b") + nw.col("c")).sum()) return df.to_native() print(approach_1(df_pd)) ``` === "Approach 2" ```python exec="yes" source="above" result="python" session="group_by_warning_2" hl_lines="12" import narwhals as nw import pandas as pd from narwhals.typing import IntoFrameT data = {"a": [1, 2, 3, 4, 5], "b": [5, 4, 3, 2, 1], "c": [10, 20, 30, 40, 50]} df_pd = pd.DataFrame(data) def approach_2(df_native: IntoFrameT) -> IntoFrameT: df = nw.from_native(df_native) df = df.with_columns(d=nw.col("b") + nw.col("c")).group_by("a").agg(nw.sum("d")) return df.to_native() print(approach_2(df_pd)) ``` Both approaches shown above return the exact same result, but Approach 1 is inefficient and returns the warning message we showed at the top. What makes the first approach inefficient and the second approach efficient? It comes down to what the pandas API lets us express. ## Approach 1 The literal pandas translation is: ```py df.groupby("a").apply( lambda df: pd.Series([(df["b"] + df["c"]).sum()], index=["d"]), include_groups=False ) ``` pandas experts immediately recognise the issue: it uses `apply`. Any time you use `apply` in pandas, that's a performance footgun - best to avoid it and use vectorised operations instead. Let's take a look at how "approach 2" gets translated to pandas to see the difference. ## Approach 2 The literal pandas translation is: ```py df.assign(d=lambda df: df["b"] + df["c"]).groupby("a").agg({"d": "sum"}) ``` Because we're using pandas' own API, as opposed to `apply` and a custom `lambda` function, then this is going to be much more efficient! That's why it's preferred. ## Tips for Avoiding the `UserWarning` 1. Decompose complex operations: break down complex transformations into simpler steps. In this case, keep the `.agg` method simple. Compute new columns first, then use these columns in aggregation or other operations. 2. Avoid redundant computations: if an operation (like addition) is used multiple times, compute it once and store the result in a new column. **_Happy grouping!_** ๐Ÿซก narwhals-2.26.0/docs/concepts/null_handling.md000066400000000000000000000131551525000603700213310ustar00rootroot00000000000000# Null/NaN handling ## TL;DR All dataframe tools, except for those which piggy-back off of pandas, make a clear distinction between NaN and null values. !!! tip **We recommend only handling null values in applications and leaving NaN values as an edge case resulting from users having performed undefined mathematical operations.** ## What's the difference? Most data tools except pandas make a clear distinction between: - Null values, representing missing data. - NaN values, resulting from "illegal" mathematical operations like `0/0`. In Narwhals, this is reflected in separate methods for Null/NaN values: | Operation | Null | NaN | | --------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | is | [`Expr.is_null`](../api-reference/expr.md#narwhals.Expr.is_null) | [`Expr.is_nan`](../api-reference/expr.md#narwhals.Expr.is_nan) | | fill | [`Expr.fill_null`](../api-reference/expr.md#narwhals.Expr.fill_null) | [`Expr.fill_nan`](../api-reference/expr.md#narwhals.Expr.fill_nan) | | drop | [`Expr.drop_nulls`](../api-reference/expr.md#narwhals.Expr.drop_nulls) | *Not yet implemented (See [discussion](https://github.com/narwhals-dev/narwhals/issues/3031#issuecomment-3219910366))*
[`polars.Expr.drop_nans`](https://docs.pola.rs/api/python/stable/reference/expressions/api/polars.Expr.drop_nans.html) | | count | [`Expr.null_count`](../api-reference/expr.md#narwhals.Expr.null_count) | *No upstream equivalent* | In pandas however the concepts are muddied, as different sentinel values represent *missing* [depending on the data type](https://pandas.pydata.org/docs/user_guide/missing_data.html). Check how different tools distinguish them (or don't) in the following example: ```python exec="yes" source="above" session="null_handling" import narwhals as nw import numpy as np from narwhals.typing import IntoFrameT data = {"a": [1.0, 0.0, None]} def check_null_behavior(df: IntoFrameT) -> IntoFrameT: return ( nw.from_native(df) .with_columns(a=nw.col("a") / nw.col("a")) .with_columns(a_is_null=nw.col("a").is_null(), a_is_nan=nw.col("a").is_nan()) ).to_native() ``` === "pandas" ```python exec="yes" source="material-block" result="python" session="null_handling" import pandas as pd df = pd.DataFrame(data) print(check_null_behavior(df)) ``` === "pandas (pyarrow-backed)" ```python exec="yes" source="material-block" result="python" session="null_handling" import pandas as pd df = pd.DataFrame(data).convert_dtypes(dtype_backend="pyarrow") print(check_null_behavior(df)) ``` === "Polars (eager)" ```python exec="yes" source="material-block" result="python" session="null_handling" import polars as pl df = pl.DataFrame(data) print(check_null_behavior(df)) ``` === "PyArrow" ```python exec="yes" source="material-block" result="python" session="null_handling" import pyarrow as pa df = pa.table(data) print(check_null_behavior(df)) ``` Notice how the classic pandas dtypes make no distinction between the concepts, whereas the other libraries do. Note however that discussion on what PyArrow-backed pandas dataframe should do [is ongoing](https://github.com/pandas-dev/pandas/issues/32265). ## NaN comparisons According to the IEEE-754 standard, NaN should compare as not equal to itself, and cannot be compared with other floating point numbers. Python and PyArrow follow these rules: ```python exec="yes" source="above" session="nan-comparisons" result="python" import pyarrow as pa import pyarrow.compute as pc print("Python result:") print(float("nan") == float("nan"), 0.0 == 0.0) print() print("PyArrow result:") arr = pa.array([float("nan"), 0.0]) print(pc.equal(arr, arr)) ``` Polars and DuckDB, however, don't follow this rule, and treat NaN as equal to itself. ```python exec="yes" source="above" session="nan-comparisons" result="python" import polars as pl import duckdb print("Polars result") df = pl.DataFrame({"a": [float("nan"), 0.0]}) print(df.with_columns(a_equals_a=pl.col("a") == pl.col("a"))) print() print("DuckDB result") print(duckdb.sql("from df select a, a == a as a_equals_a")) ``` Furthermore, Polars [excludes NaN values in `max`](https://github.com/pola-rs/polars/issues/23635) whereas DuckDB treats them as larger than any other floating-point value. For all these reasons it bears reiterating that our recommendation is to only handle null values in applications, and leave NaN values as an edge case resulting from users having performed undefined mathematical operations. narwhals-2.26.0/docs/concepts/order_dependence.md000066400000000000000000000046711525000603700220030ustar00rootroot00000000000000# Order-dependence Narwhals has four main public classes: - `Expr`: this is what gets created when you write `nw.col('a')`. - `DataFrame`: in-memory, eager dataframe with a well-defined row order which is preserved across `with_columns` and `select` operations. - `LazyFrame`: a dataframe which makes no assumptions about row-ordering. This allows it to be backed by SQL engines. - `Series`: 1-dimensional in-memory structure with a defined row order. This is what you get if you extract a single column from a `DataFrame`. Row order is important to think about when performing operations which rely on it, such as: - `diff`, `shift`. - `cum_sum`, `cum_min`, ... - `rolling_sum`, `rolling_min`, ... - `is_first_distinct`, `is_last_distinct`. - `first`, `last`. When row-order is defined, as is the case for `DataFrame`, these operations pose no issue. ```python exec="yes" result="python" session="order_dependence" source="above" import narwhals as nw import pandas as pd data = {"a": [1, 3, 4], "i": [0, 1, 2]} df = nw.from_native(pd.DataFrame(data)) print(df.with_columns(a_cum_sum=nw.col("a").cum_sum())) ``` When row order is undefined however, then these operations do not have a defined result. To make them well-defined, you need to follow them with `over` in which you specify `order_by`. For example: - `nw.col('a').cum_sum()` can only be executed by a `DataFrame`. - `nw.col('a').cum_sum().over(order_by="i")` can only be executed by either a `DataFrame` or a `LazyFrame`. ```python exec="yes" result="python" session="order_dependence" source="above" import polars as pl lf = nw.from_native(pl.LazyFrame(data)) result = lf.with_columns(a_cum_sum=nw.col("a").cum_sum().over(order_by="i")) print(result.collect()) ``` When writing an order-dependent function, if you want it to be executable by `LazyFrame` (and not just `DataFrame`), make sure that all order-dependent expressions are followed by `over` with `order_by` specified. If you forget to, don't worry, Narwhals will give you a loud and clear error message. ## Aggregations To make `nw.col('a').first()` valid in the lazy case, you have the choice between writing: - `nw.col('a').first().over(order_by='i')`. - `nw.col('a').first(order_by='i')`. The first produces a new column of the same length as the original dataframe, whereas the other one produces a scalar. If you're using `first` in a group-by context, where you're required to provide aggregations, then we recommend using the latter. narwhals-2.26.0/docs/concepts/pandas_index.md000066400000000000000000000054141525000603700211470ustar00rootroot00000000000000# What about the pandas Index? There are two types of pandas users: - The ones who make full use of the Index's power. - The `.reset_index(drop=True)` ones, who would rather not think about the Index. Narwhals aims to accommodate both! - If you'd rather not think about the Index, then don't worry: it's not part of the Narwhals public API, and you'll never have to worry about resetting the index or about pandas doing funky index alignment for you. - If you want your library to cater to Index powerusers who would be very angry if you reset their beautiful Index on their behalf, then don't worry: Narwhals makes certain promises with regards to the Index. Let's learn about what Narwhals promises. ## 1. Narwhals will preserve your index for common dataframe operations ```python exec="yes" source="above" session="ex1" import narwhals as nw from narwhals.typing import IntoFrameT def my_func(df: IntoFrameT) -> IntoFrameT: df = nw.from_native(df) df = df.with_columns(a_plus_one=nw.col("a") + 1) return nw.to_native(df) ``` Let's start with a dataframe with an Index with values `[7, 8, 9]`. ```python exec="yes" source="material-block" result="python" session="ex1" import pandas as pd df = pd.DataFrame({"a": [2, 1, 3], "b": [3, 5, -3]}, index=[7, 8, 9]) print(my_func(df)) ``` Note how the result still has the original index - Narwhals did not modify it. Narwhals will preserve your original index for most common dataframe operations. However, Narwhals will _not_ preserve the original index for `DataFrame.group_by`, because there, overlapping index and column names raise errors. ## 2. Index alignment follows the left-hand-rule pandas automatically aligns indices for users. For example: ```python exec="yes" source="above" session="ex2" import pandas as pd df_pd = pd.DataFrame({"a": [2, 1, 3], "b": [4, 5, 6]}) s_pd = df_pd["a"].sort_values() df_pd["a_sorted"] = s_pd ``` Reading the code, you might expect that `'a_sorted'` will contain the values `[1, 2, 3]`. **However**, here's what actually happens: ```python exec="yes" source="material-block" session="ex2" result="python" print(df_pd) ``` In other words, pandas' index alignment undid the `sort_values` operation! Narwhals, on the other hand, preserves the index of the left-hand-side argument. Everything else will be inserted positionally, just like Polars would do: ```python exec="yes" source="material-block" session="ex2" result="python" import narwhals as nw df = nw.from_native(df_pd) s = nw.from_native(s_pd, allow_series=True) df = df.with_columns(a_sorted=s.sort()) print(nw.to_native(df)) ``` If you keep these two rules in mind, then Narwhals will both help you avoid Index-related surprises whilst letting you preserve the Index for the subset of your users who consciously make great use of it. narwhals-2.26.0/docs/css/000077500000000000000000000000001525000603700151365ustar00rootroot00000000000000narwhals-2.26.0/docs/css/extra.css000066400000000000000000000032621525000603700167760ustar00rootroot00000000000000.md-typeset ol li, .md-typeset ul li { margin-bottom: 0.1em !important; } .md-main__inner.md-grid { max-width: initial; margin-left: 5vw; } /* API Completeness Table Styles */ .table-container { overflow-x: auto; } article table:not([class]) { width: auto !important; max-width: 100%; table-layout: auto; } article table:not([class]) th, article table:not([class]) td { white-space: nowrap; padding: 0.6rem 1rem; } article table:not([class]) th:first-child, article table:not([class]) td:first-child { min-width: 150px; } /* Column Selector Styles */ .column-selector-button:hover { background: var(--md-primary-fg-color--dark, #303f9f) !important; } .column-selector-button:active { transform: scale(0.98); } .column-selector-dropdown { scrollbar-width: thin; scrollbar-color: var(--md-default-fg-color--lighter, #ccc) transparent; } .column-selector-dropdown::-webkit-scrollbar { width: 8px; } .column-selector-dropdown::-webkit-scrollbar-track { background: transparent; } .column-selector-dropdown::-webkit-scrollbar-thumb { background: var(--md-default-fg-color--lighter, #ccc); border-radius: 4px; } .column-selector-dropdown::-webkit-scrollbar-thumb:hover { background: var(--md-default-fg-color--light, #999); } /* Dark mode adjustments */ [data-md-color-scheme="slate"] .column-selector-dropdown { background: var(--md-default-bg-color, #1e1e1e); border-color: var(--md-default-fg-color--lighter, #444); } [data-md-color-scheme="slate"] .column-selector-button { background: var(--md-primary-fg-color, #5d6cc0); } [data-md-color-scheme="slate"] .column-selector-button:hover { background: var(--md-primary-fg-color--dark, #4051b5) !important; } narwhals-2.26.0/docs/ecosystem.md000066400000000000000000000100471525000603700167050ustar00rootroot00000000000000# Ecosystem ## Used by The following is a non-exhaustive list of libraries and tools that choose to use Narwhals for their dataframe interoperability needs: * [altair](https://github.com/vega/altair/) * [bokeh](https://github.com/bokeh/bokeh) * [darts](https://github.com/unit8co/darts) * [fairlearn](https://github.com/fairlearn/fairlearn) * [formulaic](https://github.com/matthewwardrop/formulaic) * [gt-extras](https://github.com/posit-dev/gt-extras) * [hierarchicalforecast](https://github.com/Nixtla/hierarchicalforecast) * [lightgbm](https://github.com/lightgbm-org/LightGBM) * [marimo](https://github.com/marimo-team/marimo) * [metalearners](https://github.com/Quantco/metalearners) * [mosaic](https://github.com/uwdata/mosaic) * [pandera](https://github.com/pandera-dev/pandera) * [panel-graphic-walker](https://github.com/panel-extensions/panel-graphic-walker) * [plotly](https://github.com/plotly/plotly.py) * [pointblank](https://github.com/posit-dev/pointblank) * [pymarginaleffects](https://github.com/vincentarelbundock/pymarginaleffects) * [pyreadstat](https://github.com/Roche/pyreadstat) * [py-shiny](https://github.com/posit-dev/py-shiny) * [pysummaries](https://github.com/Genentech/pysummaries) * [rio](https://github.com/rio-labs/rio) * [scikit-learn](https://github.com/scikit-learn/scikit-learn) * [scikit-lego](https://github.com/koaning/scikit-lego) * [scikit-playtime](https://github.com/koaning/scikit-playtime) * [tabmat](https://github.com/Quantco/tabmat) * [tea-tasting](https://github.com/e10v/tea-tasting) * [timebasedcv](https://github.com/FBruzzesi/timebasedcv) * [tubular](https://github.com/lvgig/tubular) * [Validoopsie](https://github.com/akmalsoliev/Validoopsie) * [vegafusion](https://github.com/vega/vegafusion) * [wimsey](https://github.com/benrutter/wimsey) If your project is missing from the list, feel free to open a PR to add it. If you would like to chat with us, or if you need any support, please [join our Discord server](https://discord.gg/V3PqtB4VA4). ## Related projects ### Array API Array counterpart to the DataFrame API, see [here](https://data-apis.org/array-api/2022.12/index.html). ### PyCapsule Interface Allows C extension modules to safely share pointers to C data structures with Python code and other C modules, encapsulating the pointer with a name and optional destructor to manage resources and ensure safe access, see [here](https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html) for details. Narwhals supports exporting a DataFrame via the Arrow PyCapsule Interface. See [Universal dataframe support with the Arrow PyCapsule Interface + Narwhals](https://labs.quansight.org/blog/narwhals-pycapsule) for how you can use them together. ### Ibis Pitched as "The portable Dataframe library", Ibis provides a Pythonic frontend to various SQL (as well as Polars LazyFrame) engines. Some differences with Narwhals are: * Narwhals allows you to write "Dataframe X in, Dataframe X out" functions. Ibis allows materialising to pandas, Polars (eager), and PyArrow, but has no way to get back to the input type exactly (e.g. `Enum`s don't round-trip in Ibis) * Narwhals respects input data types as much as possible, Ibis doesn't support Categorical / Enum. * Narwhals separates between lazy and eager APIs, with the eager API providing very fine control over dataframe operations (slicing rows and columns, iterating over rows, getting values out of the dataframe as Python scalars). Ibis is more focused on lazy execution. * Narwhals is extremely lightweight and comes with zero required dependencies, Ibis requires pandas and PyArrow for all backends. * Narwhals uses a subset of the Polars API, Ibis uses its own pandas/dplyr-inspired API. * Ibis currently supports more backends than Narwhals * Narwhals supports pandas and Dask, which Ibis has deprecated support for. Although people often ask about the two tools, we consider them to be very different and not in competition. In particular, **Narwhals supports ibis Tables**, meaning that dataframe-agnostic code written using Narwhals' lazy API also supports Ibis. narwhals-2.26.0/docs/extending.md000066400000000000000000000106531525000603700166620ustar00rootroot00000000000000# Extensions and Plugins !!! warning The extension mechanism in Narwhals is experimental and under development. If anything is not clear, or doesn't work, please do raise an issue or contact us on Discord (see the link on the README). If you would like to make a new library Narwhals-compatible, then there are three ways to go about it: - Open a PR to Narwhals. At this point, however, the bar for including new libraries is very high, so please discuss it with us beforehand. - Make that library Narwhals-compliant. - Make a plugin for that library which makes it Narwhals-compliant. ## Making a library Narwhals-compliant It's possible to integrate your library with Narwhals with zero code changes in Narwhals. To do this, you'll need to make sure that your library complies with the Narwhals protocols found in `narwhals/compliant.py`. For example, you'll need: - A `LazyFrame` class which implements `__narwhals_lazyframe__`. - A `Expr` class which implements `broadcast`. - A `Namespace` class which implements `is_native`. - ... Full details can be found by inspecting the protocols in `narwhals/compliant.py`. ## Creating a Plugin If it's not possible to add extra functions like `__narwhals_namespace__` and others to a dataframe object itself, then another option is to write a plugin. Narwhals itself has the necessary utilities to detect and handle plugins. For this integration to work, any plugin architecture must contain the following: 1. an entrypoint defined in a `pyproject.toml` file: ``` [project.entry-points.'narwhals.plugins'] narwhals- = 'narwhals_' ``` The section name needs to be the same for all plugins; inside it, plugin creators can replace their own library name, for example `narwhals-grizzlies = 'narwhals_grizzlies'` 2. a top-level `__init__.py`ย file containing the following: - `is_native` and `__narwhals_namespace__` functions. - a string constant `NATIVE_PACKAGE` which holds the name of the library for which the plugin is made. `is_native` accepts a native object and returns a boolean indicating whether the native object is a dataframe of the library the plugin was written for. `__narwhals_namespace__` takes the Narwhals version and returns a compliant namespace for the library, i.e. one that complies with theย CompliantNamespaceย protocol. This protocol specifies a `from_native` function, whose input parameter is the Narwhals version and which returns a compliant Narwhals LazyFrame which wraps the native dataframe. Take a look at the `Plugin` protocol in `narwhals/plugins.py` for the signatures. ## IO functions: the namespace contract The Narwhals IO functions (`read_csv`, `scan_csv`, `read_parquet`, `scan_parquet`) dispatch to same-named methods on the compliant namespace. This is a single mechanism, shared by built-in backends and extensions alike: to support these functions, a compliant namespace implements (a subset of): ```py from narwhals.typing import NormalizedPath def read_csv( self, source: NormalizedPath, *, separator: str = ",", **kwds: Any ) -> CompliantDataFrame: ... def scan_csv( self, source: NormalizedPath, *, separator: str = ",", **kwds: Any ) -> CompliantFrame: ... def read_parquet(self, source: NormalizedPath, **kwds: Any) -> CompliantDataFrame: ... def scan_parquet(self, source: NormalizedPath, **kwds: Any) -> CompliantFrame: ... ``` In all cases: - `source` is a plain string at runtime: `NormalizedPath` is a `str` [`NewType`](https://docs.python.org/3/library/typing.html#newtype) tagging that Narwhals has already normalized `Path` and path-like inputs before dispatching to the namespace. - `kwds` are forwarded to the native reader, and it is the namespace's responsibility to translate `separator` into whatever its native CSV reader expects (and to raise if the two conflict). - `read_*` methods are eager-only, so they are only ever called on namespaces of eager backends. `scan_*` methods are called for any backend: lazy namespaces return a compliant LazyFrame, while eager ones may simply read eagerly. Namespaces complying with the `EagerNamespace` protocol only need to implement `read_csv` and `read_parquet`, as they inherit `scan_*` default implementations which fall back to the corresponding `read_*` method. ## Can I see an example? Yes! For a reference plugin, please check out [narwhals-daft](https://github.com/narwhals-dev/narwhals-daft). narwhals-2.26.0/docs/generating_sql.md000066400000000000000000000041301525000603700176700ustar00rootroot00000000000000# Generating SQL Suppose you want to write Polars syntax and translate it to SQL. For example, what's the SQL equivalent to: ```python exec="yes" source="above" session="generating-sql" import narwhals as nw from narwhals.typing import FrameT def avg_monthly_price(df: FrameT) -> FrameT: return ( df.group_by(nw.col("date").dt.truncate("1mo")) .agg(nw.col("price").mean()) .sort("date") ) ``` Narwhals provides you with a `narwhals.sql` module to do just that! !!! info `narwhals.sql` currently requires DuckDB to be installed. ## `narwhals.sql` You can generate SQL directly from DuckDB. ```python exec="yes" source="above" session="generating-sql" result="sql" import narwhals as nw from narwhals.sql import table prices = table("prices", {"date": nw.Date, "price": nw.Float64}) result = ( prices.group_by(nw.col("date").dt.truncate("1mo")) .agg(nw.col("price").mean()) .sort("date") ) print(result.to_sql()) ``` To make it look a bit prettier, you can pass `pretty=True`, but note that this currently requires [sqlparse](https://github.com/andialbrecht/sqlparse) to be installed. ```python exec="yes" source="above" session="generating-sql" result="sql" print(result.to_sql(pretty=True)) ``` Note that the generated SQL follows DuckDB's dialect. To translate it to other dialects, you may want to look into [sqlglot](https://github.com/tobymao/sqlglot), or use one of the solutions below (which also use sqlglot). ## Via Ibis Ibis can generate SQL from the same dataframe-agnostic function: ```py import ibis df = nw.from_native(ibis.table({"date": "date", "price": "double"}, name="prices")) print(ibis.to_sql(avg_monthly_price(df).to_native())) ``` ## Via SQLFrame So can SQLFrame: ```python exec="yes" source="above" session="generating-sql" result="sql" from sqlframe.standalone import StandaloneSession session = StandaloneSession.builder.getOrCreate() session.catalog.add_table("prices", column_mapping={"date": "date", "price": "float"}) df = nw.from_native(session.read.table("prices")) print(avg_monthly_price(df).to_native().sql(dialect="duckdb")) ``` narwhals-2.26.0/docs/how_it_works.md000066400000000000000000000507451525000603700174210ustar00rootroot00000000000000# How it works ## Theory You might think that Narwhals runs on underwater unicorn magic. However, this section exists to reassure you that there's no such thing. There's only one rule you need to understand in order to make sense of Narwhals: > **An expression is a function from a DataFrame to a sequence of Series.** For example, `nw.col('a')` means "given a dataframe `df`, give me the Series `'a'` from `df`". Translating this to pandas syntax, we get: ```python exec="yes" source="above" def col_a(df): return [df.loc[:, "a"]] ``` Let's step up the complexity. How about `nw.col('a')+1`? We already know what the `nw.col('a')` part looks like, so we just need to add `1` to each of its outputs: ```python exec="yes" source="above" def col_a(df): return [df.loc[:, "a"]] def col_a_plus_1(df): return [x + 1 for x in col_a(df)] ``` Expressions can return multiple Series - for example, `nw.col('a', 'b')` translates to: ```python exec="yes" source="above" def col_a_b(df): return [df.loc[:, "a"], df.loc[:, "b"]] ``` Expressions can also take multiple columns as input - for example, `nw.sum_horizontal('a', 'b')` translates to: ```python exec="yes" source="above" def sum_horizontal_a_b(df): return [df.loc[:, "a"] + df.loc[:, "b"]] ``` Note that although an expression may have multiple columns as input, those columns must all have been derived from the same dataframe. This last sentence was quite important, you might want to re-read it to make sure it sunk in. By itself, an expression doesn't produce a value. It only produces a value once you give it to a DataFrame context. What happens to the value(s) it produces depends on which context you hand it to: - `DataFrame.select`: produce a DataFrame with only the result of the given expression - `DataFrame.with_columns`: produce a DataFrame like the current one, but also with the result of the given expression - `DataFrame.filter`: evaluate the given expression(s), combine them with `&` (via `nw.all_horizontal`), and only keep rows where the result is `True`. The combined predicate must preserve length and produce a single output. Now let's turn our attention to the implementation. ## pandas implementation The pandas namespace (`pd`) isn't Narwhals-compliant, as the pandas API is very different from Polars'. So...Narwhals implements a `PandasLikeNamespace`, which includes the top-level Polars functions included in the Narwhals API: ```python exec="yes" source="above" result="python" session="pandas_impl" import narwhals as nw from narwhals._pandas_like.namespace import PandasLikeNamespace from narwhals.utils import Implementation, Version pn = PandasLikeNamespace(implementation=Implementation.PANDAS, version=Version.MAIN) print(nw.col("a")._to_compliant_expr(pn)) ``` The result from the last line above is the same as we'd get from `pn.col('a')`, and it's a `narwhals._pandas_like.expr.PandasLikeExpr` object, which we'll call `PandasLikeExpr` for short. `PandasLikeExpr` has a `_call` method which expects a `PandasLikeDataFrame` as input. Recall from above that an expression is a function from a dataframe to a sequence of series. The `_call` method gives us that function! Let's see it in action. Note: the following examples use `PandasLikeDataFrame` and `PandasLikeSeries`. These are backed by actual `pandas.DataFrame`s and `pandas.Series` respectively and are Narwhals-compliant. We can access the underlying pandas objects via the `native` property (`PandasLikeDataFrame.native` / `PandasLikeSeries.native`, backed by the `_native_frame` / `_native_series` attributes). ```python exec="yes" result="python" session="pandas_impl" source="above" import narwhals as nw from narwhals._pandas_like.namespace import PandasLikeNamespace from narwhals._pandas_like.dataframe import PandasLikeDataFrame from narwhals.utils import Implementation, Version import pandas as pd pn = PandasLikeNamespace(implementation=Implementation.PANDAS, version=Version.MAIN) df_pd = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]}) df = PandasLikeDataFrame( df_pd, implementation=Implementation.PANDAS, version=Version.MAIN, validate_column_names=True, ) expression = pn.col("a") + 1 result = expression._call(df) print(f"length of result: {len(result)}\n") print("native series of first value of result: ") print([x.native for x in result][0]) ``` So indeed, our expression did what it said on the tin - it took some dataframe, took column 'a', and added 1 to it. If you search for `def _reuse_series` in `narwhals/_compliant/expr.py`, you'll see that that's all expressions do for eager backends in Narwhals: whenever `Series.foo` is already defined, `EagerExpr.foo` is derived from it by mapping it over the sequence of Series. They just keep rigorously applying the definition of expression. It may look like there should be significant overhead to doing it this way - but really, it's just a few Python calls which get unwinded. From timing tests I've done, there's no detectable difference - in fact, because the Narwhals API guards against misusing the pandas API, it's likely that running pandas via Narwhals will in general be more efficient than running pandas directly. Further attempts at demystifying Narwhals, refactoring code so it's clearer, and explaining this section better are 110% welcome. ## Polars and other implementations Other implementations are similar to the above: they define their own Narwhals-compliant objects. So, all-in-all, there are a couple of layers here: - `nw.DataFrame` is backed by a Narwhals-compliant Dataframe, such as: - `narwhals._pandas_like.dataframe.PandasLikeDataFrame` - `narwhals._arrow.dataframe.ArrowDataFrame` - `narwhals._polars.dataframe.PolarsDataFrame` - each Narwhals-compliant DataFrame is backed by a native Dataframe, for example: - `narwhals._pandas_like.dataframe.PandasLikeDataFrame` is backed by a pandas DataFrame - `narwhals._arrow.dataframe.ArrowDataFrame` is backed by a PyArrow Table - `narwhals._polars.dataframe.PolarsDataFrame` is backed by a Polars DataFrame The same holds for `nw.LazyFrame`, which is backed by a Narwhals-compliant LazyFrame such as `narwhals._duckdb.dataframe.DuckDBLazyFrame`, `narwhals._spark_like.dataframe.SparkLikeLazyFrame`, `narwhals._dask.dataframe.DaskLazyFrame`, or `narwhals._ibis.dataframe.IbisLazyFrame`. Each implementation defines its own objects in subfolders such as `narwhals._pandas_like`, `narwhals._arrow`, `narwhals._polars`, `narwhals._duckdb`, `narwhals._spark_like`, `narwhals._dask`, and `narwhals._ibis`, whereas the top-level modules such as `narwhals.dataframe` and `narwhals.series` coordinate how to dispatch the Narwhals API to each backend. Protocols and shared base classes live in `narwhals._compliant`, and SQL-generation helpers shared by the SQL backends live in `narwhals._sql`. Backends can also live outside the Narwhals repository entirely - see [Extensions and Plugins](extending.md). ## Mapping from API to implementations If an end user executes some Narwhals code, such as ```py df.select(nw.col("a") + 1) ``` then how does that get mapped to the underlying dataframe's native API? Let's walk through this example to see. Things generally go through a couple of layers: - The user calls some top-level Narwhals API. - The Narwhals API forwards the call to a Narwhals-compliant dataframe wrapper, such as - `PandasLikeDataFrame` / `ArrowDataFrame` / `PolarsDataFrame` / ... - `PandasLikeSeries` / `ArrowSeries` / `PolarsSeries` / ... - `PandasLikeExpr` / `ArrowExpr` / `PolarsExpr` / ... - The dataframe wrapper forwards the call to the underlying library, e.g.: - `PandasLikeDataFrame` forwards the call to the underlying pandas/Modin/cuDF dataframe. - `ArrowDataFrame` forwards the call to the underlying PyArrow table. - `PolarsDataFrame` forwards the call to the underlying Polars DataFrame. The way you access the Narwhals-compliant wrapper depends on the object: - `narwhals.DataFrame` and `narwhals.LazyFrame`: use the `._compliant_frame` attribute. - `narwhals.Series`: use the `._compliant_series` attribute. - `narwhals.Expr`: call the `._to_compliant_expr` method, and pass to it the Narwhals-compliant namespace associated with the given backend. ๐Ÿ›‘ BUT WAIT! What's a Narwhals-compliant namespace? Each backend is expected to implement a Narwhals-compliant namespace (`PandasLikeNamespace`, `ArrowNamespace`, `PolarsNamespace`). These can be used to interact with the Narwhals-compliant Dataframe and Series objects described above - let's work through the motivating example to see how. ```python exec="yes" session="pandas_api_mapping" source="above" import narwhals as nw from narwhals._pandas_like.namespace import PandasLikeNamespace from narwhals.utils import Implementation, Version import pandas as pd pn = PandasLikeNamespace(implementation=Implementation.PANDAS, version=Version.MAIN) df_pd = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]}) df = nw.from_native(df_pd) df.select(nw.col("a") + 1) ``` The first thing `narwhals.DataFrame.select` does is to parse each input expression to end up with a compliant expression for the given backend, and it does so by passing a Narwhals-compliant namespace to `nw.Expr._to_compliant_expr`: ```python exec="yes" result="python" session="pandas_api_mapping" source="above" pn = PandasLikeNamespace(implementation=Implementation.PANDAS, version=Version.MAIN) expr = (nw.col("a") + 1)._to_compliant_expr(pn) print(expr) ``` If we then extract a Narwhals-compliant dataframe from `df` by calling `._compliant_frame`, we get a `PandasLikeDataFrame` - and that's an object which we can pass `expr` to! ```python exec="yes" session="pandas_api_mapping" source="above" df_compliant = df._compliant_frame result = df_compliant.select(expr) ``` We can then view the underlying pandas Dataframe which was produced by accessing `.native`: ```python exec="yes" result="python" session="pandas_api_mapping" source="above" print(result.native) ``` which is the same as we'd have obtained by just using the Narwhals API directly: ```python exec="yes" result="python" session="pandas_api_mapping" source="above" print(nw.to_native(df.select(nw.col("a") + 1))) ``` ## Group-by Group-by is probably one of Polars' most significant innovations (on the syntax side) with respect to pandas. We can write something like ```py df: pl.DataFrame df.group_by("a").agg((pl.col("c") > pl.col("b").mean()).max()) ``` To do this in pandas, we need to either use `GroupBy.apply` (sloooow), or do some crazy manual optimisations to get it to work. In Narwhals, here's what we do: - if somebody uses a simple group-by aggregation (e.g. `df.group_by('a').agg(nw.col('b').mean())`), then on the pandas side we translate it to a native aggregation on the `GroupBy` object: ```py df: pd.DataFrame df.groupby("a")["b"].mean() ``` Each aggregation is evaluated this way and the results are concatenated horizontally. See `AggExpr._getitem_aggs` in `narwhals/_pandas_like/group_by.py`. - if somebody passes a complex group-by aggregation, then we use `apply` and raise a `UserWarning`, warning users of the performance penalty and advising them to refactor their code so that the aggregation they perform ends up being a simple one. See [Avoiding the `UserWarning` when using pandas `group_by`](concepts/improve_group_by_operation.md). ## Nodes If we have a Narwhals expression, we can look at the operations which make it up by accessing `_nodes`: ```python exec="yes" result="python" session="pandas_impl" source="above" import narwhals as nw expr = nw.col("a").abs().std(ddof=1) + nw.col("b") print(expr._nodes) ``` Each node represents an operation. Here, we have 4 operations: 1. Given some dataframe, select column `'a'`. 2. Take its absolute value. 3. Take its standard deviation, with `ddof=1`. 4. Add column `'b'` to the result. Let's take a look at a couple of these nodes. Let's start with the third one: ```python exec="yes" result="python" session="pandas_impl" source="above" print(expr._nodes[2].as_dict()) ``` This tells us a few things: - We're performing an aggregation. - The name of the function is `'std'`. This will be looked up in the compliant object. - It takes keyword arguments `ddof=1`. - We'll look at `exprs`, `str_as_lit`, and `allow_multi_output` later. In order for the evaluation to succeed, then `PandasLikeExpr` must have a `std` method defined on it, which takes a `ddof` argument. And this is what the `CompliantExpr` Protocol is for: so long as a backend's implementation complies with the protocol, then Narwhals will be able to unpack a `ExprNode` and turn it into a valid call. Let's take a look at the fourth node: ```python exec="yes" result="python" session="pandas_impl" source="above" print(expr._nodes[3].as_dict()) ``` Note how now, the `exprs` attribute is populated. Indeed, we are adding another expression: `col('b')`. The `exprs` parameter holds arguments which are either expressions, or should be interpreted as expressions. The `str_as_lit` parameter tells us whether string literals should be interpreted as literals (e.g. `lit('foo')`) or columns (e.g. `col('foo')`). Finally `allow_multi_output` tells us whether multi-output expressions (more on this in the next section) are allowed to appear in `exprs`. Note that the expression in `exprs` also has its own nodes: ```python exec="yes" result="python" session="pandas_impl" source="above" print(expr._nodes[3].exprs[0]._nodes) ``` It's nodes all the way down! ## Expression Metadata Let's try printing out some compliant expressions' metadata to see what it shows us: ```python exec="yes" result="python" session="pandas_impl" source="above" import narwhals as nw print(nw.col("a")._to_compliant_expr(pn)._metadata) print(nw.col("a").mean()._to_compliant_expr(pn)._metadata) print(nw.col("a").mean().over("b")._to_compliant_expr(pn)._metadata) ``` This section is all about making sense of what that all means, what the rules are, and what it enables. Here's a brief description of each piece of metadata: - `expansion_kind`: How and whether the expression expands to multiple outputs. This can be one of: - `ExpansionKind.SINGLE`: Only produces a single output. For example, `nw.col('a')`, or `nw.sum_horizontal(nw.all())`. - `ExpansionKind.MULTI_NAMED`: Produces multiple outputs which were explicitly requested, for example `nw.col('a', 'b')` or `nw.nth(0, 1)`. - `ExpansionKind.MULTI_UNNAMED`: Produces multiple outputs which depend on which columns the input dataframe happens to have. For example, `nw.all()` or `nw.selectors.numeric()`. Unlike `MULTI_NAMED`, these skip group-by keys when expanded in a group-by context, so `df.group_by('a').agg(nw.all().sum())` does not try to aggregate `'a'`. - `has_windows`: Whether the expression already contains an `over(...)` statement. - `n_orderable_ops`: How many order-dependent operations the expression contains. Examples: - `nw.col('a')` contains 0 orderable operations. - `nw.col('a').diff()` contains 1 orderable operation. - `nw.col('a').diff().shift()` contains 2 orderable operations. - `is_elementwise`: Whether it preserves length and operates on each row independently of the rows around it (e.g. `abs`, `is_null`, `round`, ...). - `preserves_length`: Whether the output of the expression is the same length as the dataframe it gets evaluated on. - `is_scalar_like`: Whether the output of the expression is always length-1. - `is_literal`: Whether the expression doesn't depend on any column but instead only on literal values, like `nw.lit(1)`. - `nodes`: Tuple of operations which this expression applies when evaluated (see [Nodes](#nodes) above). ### Chaining Say we have `expr.expr_method()`. How does `expr`'s `ExprMetadata` change? This depends on `expr_method`. Details can be found in `narwhals/_expression_parsing`, in the `ExprMetadata.with_*` methods. #### Binary operations (e.g. `nw.col('a') + nw.col('b')`) How do expression kinds change under binary operations? For example, if we do `expr1 + expr2`, then what can we say about the output kind? The rules are: - If one changes the input length (e.g. `Expr.drop_nulls`), then: - if the other is scalar-like, then the output also changes length. - else, we raise an error. - If one preserves length and the other is scalar-like, then the output preserves length (because of broadcasting). - If one is scalar-like but not literal and the other is scalar-like, the output is scalar-like but not literal. For n-ary operations such as `nw.sum_horizontal`, the above logic is extended across inputs. For example, `nw.sum_horizontal(expr1, expr2, expr3)` is `LITERAL` if all of `expr1`, `expr2`, and `expr3` are. ### "You open a window to another window to another window to another window" When working with `DataFrame`s, row order is well-defined, as the dataframes are assumed to be eager and in-memory. Therefore, `n_orderable_ops` is disregarded. When working with `LazyFrame`s, on the other hand, row order is undefined. Therefore, when evaluating an expression, `n_orderable_ops` must be exactly zero - if it's not, it means that the expression depends on physical row order, which is not allowed for `LazyFrame`s. The way that `n_orderable_ops` can change is: - Orderable window functions like `diff` and `rolling_mean` increase `n_orderable_ops` by 1. - If an orderable window function is immediately followed by `over(order_by=...)`, then `n_orderable_ops` is decreased by 1. This is the only way that `n_orderable_ops` can decrease. ## Broadcasting When performing comparisons between columns and aggregations or scalars, we operate as if the aggregation or scalar was broadcasted to the length of the whole column. For example, if we have a dataframe with values `{'a': [1, 2, 3]}` and do `nw.col('a') - nw.col('a').mean()`, then each value from column `'a'` will have its mean subtracted from it, and we will end up with values `[-1, 0, 1]`. Different libraries do broadcasting differently. SQL-like libraries require an empty window function for expressions (e.g. `a - sum(a) over ()`), Polars does its own broadcasting of length-1 Series, and pandas does its own broadcasting of scalars. Narwhals triggers a broadcast in these situations: - In `select` when some values preserve length and others don't, e.g. `df.select('a', nw.col('b').mean())`. - In `with_columns`, all new columns get broadcasted to the length of the dataframe. - In n-ary operations between expressions, such as `nw.col('a') + nw.col('a').mean()`. Each backend is then responsible for doing its own broadcasting, as defined in each `CompliantExpr.broadcast` method. ## Elementwise push-down SQL is picky about `over` operations. For example: - `sum(a) over (partition by b)` is valid. - `sum(abs(a)) over (partition by b)` is valid. - `abs(sum(a)) over (partition by b)` is not valid. In Polars, however, all three of - `pl.col('a').sum().over('b')` is valid. - `pl.col('a').abs().sum().over('b')` is valid. - `pl.col('a').sum().abs().over('b')` is valid. How can we retain Polars' level of flexibility when translating to SQL engines? The answer is: by rewriting expressions. Specifically, we push down `over` nodes past elementwise ones. To see this, let's try printing the Narwhals equivalent of the last expression above (the one that SQL rejects): ```python exec="yes" result="python" session="pushdown" source="above" import narwhals as nw print(nw.col("a").sum().abs().over("b")) ``` Note how Narwhals automatically inserted the `over` operation _before_ the `abs` one. In other words, instead of doing - `sum` -> `abs` -> `over` it did - `sum` -> `over` -> `abs` thus allowing the expression to be valid for SQL engines! This is what we refer to as "pushing down `over` nodes". The idea is: - Elementwise operations operate row-by-row and don't depend on the rows around them. - An `over` node partitions or orders a computation. - Therefore, an elementwise operation followed by an `over` operation is the same as doing the `over` operation followed by that same elementwise operation! Note that the pushdown also applies to any arguments to the elementwise operation. For example, if we have ```py (nw.col("a").sum() + nw.col("b").sum()).over("c") ``` then `+` is an elementwise operation and so can be swapped with `over`. We just need to take care to apply the `over` operation to all the arguments of `+`, so that we end up with ```py nw.col("a").sum().over("c") + nw.col("b").sum().over("c") ``` !!! info In general, query optimisation is out-of-scope for Narwhals. We consider this expression rewrite acceptable because: - It's simple. - It allows us to evaluate operations which otherwise wouldn't be allowed for certain backends. narwhals-2.26.0/docs/index.md000066400000000000000000000043101525000603700157750ustar00rootroot00000000000000# Narwhals ![Narwhals Logo](assets/image.png) [![PyPI version](https://badge.fury.io/py/narwhals.svg)](https://badge.fury.io/py/narwhals) [![Downloads](https://static.pepy.tech/badge/narwhals/month)](https://pepy.tech/project/narwhals) [![Trusted publishing](https://img.shields.io/badge/Trusted_publishing-Provides_attestations-bright_green)](https://peps.python.org/pep-0740/) [![PYPI - Types](https://img.shields.io/pypi/types/narwhals)](https://pypi.org/project/narwhals) [![LFX Health Score](https://insights.linuxfoundation.org/api/badge/health-score?project=narwhals-dev-narwhals)](https://insights.linuxfoundation.org/project/narwhals-dev-narwhals) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/narwhals-dev/narwhals/badge)](https://securityscorecards.dev/viewer/?uri=github.com/narwhals-dev/narwhals) Extremely lightweight and extensible compatibility layer between dataframe libraries! - **Full API support**: cuDF, Modin, pandas, Polars, PyArrow. - **Lazy-only support**: Dask, DuckDB, Ibis, PySpark, SQLFrame, and Daft via the [narwhals-daft](https://github.com/narwhals-dev/narwhals-daft) plugin. Seamlessly support all, without depending on any! - โœ… **Just use** [a subset of **the Polars API**](./api-reference/index.md), no need to learn anything new - โœ… **Zero dependencies**, Narwhals only uses what the user passes in so your library can stay lightweight - โœ… Separate **lazy** and eager APIs, use **expressions** - โœ… Support pandas' complicated type system and index, without either getting in the way - โœ… **100% branch coverage**, tested against pandas and Polars nightly builds - โœ… **Negligible overhead**, see [overhead](overhead.md) - โœ… Let your IDE help you thanks to **full static typing**, see [`narwhals.typing`](./api-reference/typing.md) - โœ… **Perfect backwards compatibility policy**, see [stable api](backcompat.md) for how to opt-in ## Who's this for? Anyone wishing to write a library/application/service which consumes dataframes, and wishing to make it completely dataframe-agnostic. Let's get started! ## Roadmap See [roadmap discussion on GitHub](https://github.com/narwhals-dev/narwhals/discussions/1370) for an up-to-date plan of future work. narwhals-2.26.0/docs/installation.md000066400000000000000000000131151525000603700173720ustar00rootroot00000000000000# Installation and quick start ## Installation Narwhals requires **Python 3.10+** and has no required dependencies: it only ever uses the dataframe libraries you pass into it. Pick the workflow that matches how you manage your project's dependencies. === "uv" If you're starting a new project with [uv](https://docs.astral.sh/uv/), add Narwhals to it with: ```terminal uv add narwhals ``` This will create a virtual environment (if one doesn't already exist), add `narwhals` to your `pyproject.toml`, and update `uv.lock`. To install Narwhals into an existing virtual environment without touching `pyproject.toml`, use: ```terminal uv pip install narwhals ``` === "pip" First, [create and activate](https://docs.python.org/3/library/venv.html) a Python 3.10+ virtual environment, then run: ```terminal python -m pip install narwhals ``` Unlike `uv add` or `poetry add`, `pip install` does not touch `pyproject.toml`. If you're working on a project, you'll need to record the dependency there yourself. === "Poetry" From within a [Poetry](https://python-poetry.org/) project, run: ```terminal poetry add narwhals ``` This will add `narwhals` to your `pyproject.toml` and update `poetry.lock`. ### Installing with extras Narwhals exposes optional extras that pull in a specific backend at a version known to be compatible. These are convenience pins, not requirements: if you already have the backend installed (or want to manage its version yourself), you can skip them. Available extras include `pandas`, `polars`, `pyarrow`, `modin`, `dask`, `duckdb`, `ibis`, `pyspark`, `pyspark-connect`, `sqlframe`, `sql`, and `cudf` (Linux only). For the authoritative list, see `[project.optional-dependencies]` in [`pyproject.toml`](https://github.com/narwhals-dev/narwhals/blob/main/pyproject.toml). Specify one or more extras in square brackets, for example: === "uv" ```terminal uv add "narwhals[polars,pyarrow]" ``` === "pip" ```terminal python -m pip install "narwhals[polars,pyarrow]" ``` === "Poetry" ```terminal poetry add "narwhals[polars,pyarrow]" ``` !!! warning "Library authors: prefer keeping backends out of your direct dependencies" `uv add "narwhals[polars,pyarrow]"` adds the extras to `[project.dependencies]`. If you publish your project, **every consumer is then forced to install polars and pyarrow**, which defeats Narwhals' "support all, depend on none" design. If you're building a library (rather than an application), keep `narwhals` as your runtime dependency and pin the backends only for development: === "uv" ```terminal uv add narwhals uv add --group dev "narwhals[polars,pyarrow]" ``` === "Poetry" ```terminal poetry add narwhals poetry add --group dev "narwhals[polars,pyarrow]" ``` Dependency groups are not shipped in your distribution metadata, so consumers receive only `narwhals` and bring their own backend. Alternatively, re-expose the backends as your library's **own optional extras**, so consumers opt in explicitly (e.g. `pip install your-library[polars]`): ```toml [project.optional-dependencies] polars = ["narwhals[polars]"] pyarrow = ["narwhals[pyarrow]"] ``` ### Verifying the installation To verify the installation, start the Python REPL and execute: ```python exec="yes" source="above" session="quickstart" result="python" import narwhals print(narwhals.__version__) ``` If you see the version number, then the installation was successful! ## Quick start ### Optional companion libraries Narwhals has no required dataframe dependencies, but to follow along with the examples below you'll want at least one of: - [pandas](https://pandas.pydata.org/docs/getting_started/install.html) - [Polars](https://pola-rs.github.io/polars/user-guide/installation/) - [PyArrow](https://arrow.apache.org/docs/python/install.html) ### Simple example Create a Python file `t.py` with the following content: ```python exec="yes" source="above" session="quickstart" result="python" from __future__ import annotations import pandas as pd import polars as pl import pyarrow as pa import narwhals as nw from narwhals.typing import IntoFrame def agnostic_get_columns(df_native: IntoFrame) -> list[str]: df = nw.from_native(df_native) column_names = df.columns return column_names data = {"a": [1, 2, 3], "b": [4, 5, 6]} df_pandas = pd.DataFrame(data) df_polars = pl.DataFrame(data) table_pa = pa.table(data) print("pandas output") print(agnostic_get_columns(df_pandas)) print("Polars output") print(agnostic_get_columns(df_polars)) print("PyArrow output") print(agnostic_get_columns(table_pa)) ``` If you run `python t.py` then your output should look like the above. !!! tip "Running with `uv` (no install needed)" If you have [uv](https://docs.astral.sh/uv/), you can skip the environment setup entirely by declaring [inline script dependencies](https://docs.astral.sh/uv/guides/scripts/#declaring-script-dependencies) at the top of `t.py`: ```python # /// script # dependencies = ["narwhals[pandas,polars,pyarrow]"] # /// ``` Then run it with `uv run t.py`. This is the simplest possible example of a dataframe-agnostic function - as we'll soon see, we can do much more advanced things. Let's learn about what you just did, and what Narwhals can do for you! !!! info These examples are using pandas, Polars, and PyArrow, however Narwhals supports other dataframe libraries (See [the home page](index.md) for supported libraries). narwhals-2.26.0/docs/javascripts/000077500000000000000000000000001525000603700166775ustar00rootroot00000000000000narwhals-2.26.0/docs/javascripts/extra.js000066400000000000000000000041721525000603700203640ustar00rootroot00000000000000/** * Copied from Ruff https://github.com/astral-sh/ruff/blob/924741cb11a68ed037899f9db1bea6969c48385e/docs/js/extra.js * * @author Astral Software Inc. * @license MIT */ function cleanupClipboardText(targetSelector) { const targetElement = document.querySelector(targetSelector); // exclude "Generic Prompt" and "Generic Output" spans from copy const excludedClasses = ["gp", "go"]; const clipboardText = Array.from(targetElement.childNodes) .filter( (node) => !excludedClasses.some((className) => node?.classList?.contains(className), ), ) .map((node) => node.textContent) .filter((s) => s !== ""); return clipboardText.join("").trim(); } // Sets copy text to attributes lazily using an Intersection Observer. function setCopyText() { // The `data-clipboard-text` attribute allows for customized content in the copy // See: https://www.npmjs.com/package/clipboard#copy-text-from-attribute const attr = "clipboardText"; // all "copy" buttons whose target selector is a element const elements = document.querySelectorAll( 'button[data-clipboard-target$="code"]', ); if (elements.length === 0) { return; } const observer = new IntersectionObserver((entries) => { entries.forEach((entry) => { // target in the viewport that have not been patched if ( entry.intersectionRatio > 0 && entry.target.dataset[attr] === undefined ) { entry.target.dataset[attr] = cleanupClipboardText( entry.target.dataset.clipboardTarget, ); } }); }); elements.forEach((elt) => { observer.observe(elt); }); } // Using the document$ observable is particularly important if you are using instant loading since // it will not result in a page refresh in the browser // See `How to integrate with third-party JavaScript libraries` guideline: // https://squidfunk.github.io/mkdocs-material/customization/?h=javascript#additional-javascript document$.subscribe(function () { setCopyText(); }); narwhals-2.26.0/docs/javascripts/katex.js000066400000000000000000000005061525000603700203520ustar00rootroot00000000000000document$.subscribe(({ body }) => { renderMathInElement(body, { delimiters: [ { left: "$$", right: "$$", display: true }, { left: "$", right: "$", display: false }, { left: "\\(", right: "\\)", display: false }, { left: "\\[", right: "\\]", display: true } ], }) }) narwhals-2.26.0/docs/javascripts/table.js000066400000000000000000000215531525000603700203320ustar00rootroot00000000000000document$.subscribe(function() { // Only run on api-completeness pages var currentPath = window.location.pathname if (!currentPath.includes('/api-completeness/')) { return } var tables = document.querySelectorAll("article table:not([class])") tables.forEach(function(table) { new Tablesort(table) addColumnSelector(table) addMethodFilter(table) }) }) function addColumnSelector(table) { var thead = table.querySelector('thead') var headerRow = thead.querySelector('tr') var headers = Array.from(headerRow.querySelectorAll('th')) // Skip if table only has one column (Method column) if (headers.length <= 1) return // Get backend columns (all except first "Method" column) var backendColumns = headers.slice(1).map(function(th, index) { return { name: th.textContent.trim(), index: index + 1, visible: true } }) // Sort backends alphabetically backendColumns.sort(function(a, b) { return a.name.localeCompare(b.name) }) // Create container for the dropdown var container = document.createElement('div') container.className = 'column-selector-container' container.style.cssText = 'margin: 16px 0; position: relative; display: inline-block;' // Create the dropdown button var button = document.createElement('button') button.className = 'column-selector-button' button.textContent = 'Select Backends' button.style.cssText = ` padding: 8px 16px; background: var(--md-primary-fg-color, #4051b5); color: white; border: none; border-radius: 6px; cursor: pointer; font-size: 14px; font-weight: 500; display: flex; align-items: center; gap: 8px; transition: background 0.2s; ` // Add arrow icon var arrow = document.createElement('span') arrow.textContent = 'โ–ผ' arrow.style.cssText = 'font-size: 10px; transition: transform 0.2s;' button.appendChild(arrow) // Create dropdown menu var dropdown = document.createElement('div') dropdown.className = 'column-selector-dropdown' dropdown.style.cssText = ` position: absolute; top: 100%; left: 0; margin-top: 4px; background: var(--md-default-bg-color, white); border: 1px solid var(--md-default-fg-color--lightest, #e0e0e0); border-radius: 6px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); min-width: 200px; max-height: 300px; overflow-y: auto; display: none; z-index: 1000; ` // Add "Select All" / "Deselect All" buttons var selectAllContainer = document.createElement('div') selectAllContainer.style.cssText = ` padding: 8px 12px; border-bottom: 1px solid var(--md-default-fg-color--lightest, #e0e0e0); display: flex; gap: 8px; ` var selectAllBtn = document.createElement('button') selectAllBtn.textContent = 'Select All' selectAllBtn.style.cssText = ` flex: 1; padding: 4px 8px; font-size: 12px; border: 1px solid var(--md-default-fg-color--lighter, #ccc); border-radius: 4px; background: var(--md-default-bg-color, white); color: var(--md-default-fg-color, black); cursor: pointer; transition: background 0.2s; ` var deselectAllBtn = document.createElement('button') deselectAllBtn.textContent = 'Clear All' deselectAllBtn.style.cssText = selectAllBtn.style.cssText selectAllContainer.appendChild(selectAllBtn) selectAllContainer.appendChild(deselectAllBtn) dropdown.appendChild(selectAllContainer) // Create checkboxes for each backend backendColumns.forEach(function(column) { var label = document.createElement('label') label.style.cssText = ` display: flex; align-items: center; padding: 8px 12px; cursor: pointer; transition: background 0.2s; user-select: none; ` label.addEventListener('mouseenter', function() { label.style.background = 'var(--md-default-fg-color--lightest, #f5f5f5)' }) label.addEventListener('mouseleave', function() { label.style.background = 'transparent' }) var checkbox = document.createElement('input') checkbox.type = 'checkbox' checkbox.checked = true checkbox.style.cssText = 'margin-right: 8px; cursor: pointer;' checkbox.dataset.columnIndex = column.index var span = document.createElement('span') span.textContent = column.name span.style.cssText = 'font-size: 14px; color: var(--md-default-fg-color, black);' label.appendChild(checkbox) label.appendChild(span) dropdown.appendChild(label) // Handle column visibility toggle checkbox.addEventListener('change', function() { toggleColumn(table, column.index, checkbox.checked) updateButtonText() }) }) // Toggle dropdown visibility button.addEventListener('click', function(e) { e.stopPropagation() var isVisible = dropdown.style.display === 'block' dropdown.style.display = isVisible ? 'none' : 'block' arrow.style.transform = isVisible ? 'rotate(0deg)' : 'rotate(180deg)' }) // Close dropdown when clicking outside document.addEventListener('click', function(e) { if (!container.contains(e.target)) { dropdown.style.display = 'none' arrow.style.transform = 'rotate(0deg)' } }) // Select all handler selectAllBtn.addEventListener('click', function(e) { e.stopPropagation() var checkboxes = dropdown.querySelectorAll('input[type="checkbox"]') checkboxes.forEach(function(cb) { cb.checked = true toggleColumn(table, parseInt(cb.dataset.columnIndex), true) }) updateButtonText() }) // Deselect all handler deselectAllBtn.addEventListener('click', function(e) { e.stopPropagation() var checkboxes = dropdown.querySelectorAll('input[type="checkbox"]') checkboxes.forEach(function(cb) { cb.checked = false toggleColumn(table, parseInt(cb.dataset.columnIndex), false) }) updateButtonText() }) function updateButtonText() { var checkboxes = Array.from(dropdown.querySelectorAll('input[type="checkbox"]')) var checkedCount = checkboxes.filter(function(cb) { return cb.checked }).length var totalCount = checkboxes.length if (checkedCount === 0) { button.firstChild.textContent = 'Select Backends' } else if (checkedCount === totalCount) { button.firstChild.textContent = 'All Backends Selected' } else { button.firstChild.textContent = checkedCount + ' of ' + totalCount + ' Selected' } } container.appendChild(button) container.appendChild(dropdown) // Wrap table in a container for better layout control var tableContainer = document.createElement('div') tableContainer.className = 'table-container' table.parentNode.insertBefore(tableContainer, table) tableContainer.appendChild(table) // Insert button container before the table container tableContainer.parentNode.insertBefore(container, tableContainer) } function toggleColumn(table, columnIndex, visible) { var rows = table.querySelectorAll('tr') rows.forEach(function(row) { var cells = row.querySelectorAll('th, td') if (cells[columnIndex]) { cells[columnIndex].style.display = visible ? '' : 'none' } }) } function addMethodFilter(table) { var thead = table.querySelector('thead') var headerRow = thead.querySelector('tr') var headers = headerRow.querySelectorAll('th') // Create filter input row var filterRow = document.createElement('tr') filterRow.className = 'filter-row' headers.forEach(function(header, index) { var th = document.createElement('th') // Add input only to first column (Method column) if (index === 0) { var input = document.createElement('input') input.type = 'text' input.placeholder = 'Filter methods...' input.style.width = '100%' input.style.padding = '4px' input.style.boxSizing = 'border-box' input.style.border = '1px solid #ccc' input.style.borderRadius = '4px' input.addEventListener('input', function(e) { filterTable(table, e.target.value) }) th.appendChild(input) } filterRow.appendChild(th) }) thead.appendChild(filterRow) } function filterTable(table, filterValue) { var tbody = table.querySelector('tbody') var rows = tbody.querySelectorAll('tr') var lowerFilterValue = filterValue.toLowerCase() rows.forEach(function(row) { var firstCell = row.querySelector('td') var cellText = firstCell.textContent.toLowerCase() var originalText = firstCell.textContent if (cellText.includes(lowerFilterValue)) { row.style.display = '' // Highlight matching text if (lowerFilterValue) { var regex = new RegExp('(' + escapeRegex(filterValue) + ')', 'gi') firstCell.innerHTML = originalText.replace(regex, '$1') } else { firstCell.textContent = originalText } } else { row.style.display = 'none' } }) } function escapeRegex(string) { return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') } narwhals-2.26.0/docs/overhead.md000066400000000000000000000044041525000603700164670ustar00rootroot00000000000000# Overhead Narwhals converts Polars syntax to non-Polars dataframes. So, what's the overhead of running "pandas" vs "pandas via Narwhals"? Based on experiments we've done, the answer is: it's negligible. Sometimes it's even negative, because of how careful we are in Narwhals to avoid unnecessary copies and index resets. Here are timings from the TPC-H queries, comparing running pandas directly vs running pandas via Narwhals: [Complete code to reproduce](https://www.kaggle.com/code/marcogorelli/narwhals-vs-pandas-overhead-tpc-h-s2). This comparison is also run as a regression test in CI, see [`tpch/tests/overhead_test.py`](https://github.com/narwhals-dev/narwhals/blob/main/tpch/tests/overhead_test.py): it fails if pandas via Narwhals ever becomes meaningfully slower than native pandas for the same TPC-H queries. ## Plotly's story One big difference between Plotly v5 and Plotly v6 is the handling of non-pandas inputs: - In v5, Plotly would convert non-pandas inputs to pandas. - In v6, Plotly operates on non-pandas inputs natively (via Narwhals). We expected that this would bring a noticeable performance benefit for non-pandas inputs, but that there may be some slight overhead for pandas. Instead, we observed that things got noticeably faster for both non-pandas inputs and for pandas ones! - Polars plots got 3x, and sometimes even more than 10x, faster. - pandas plots were typically no slower, but sometimes ~20% faster. Full details on [Plotly's write-up](https://plotly.com/blog/chart-smarter-not-harder-universal-dataframe-support/). ## Overhead for DuckDB, PySpark, and other lazy backends For lazy backends, Narwhals respects the backends' laziness and always keeps everything lazy. Narwhals never evaluates a full query unless you ask it to (with `.collect()`). In order to mimic Polars' behaviour, there are some places where Narwhals does need to inspect dataframes' schemas, such as: - joins - selectors - `nth` - `concat` with `how='vertical'` - `unique` This is typically cheap (as it does not require reading a full dataset into memory and can often just be done from metadata alone) but it's not free, especially if your data lives on the cloud. To minimise the overhead, when Narwhals needs to evaluate schemas or column names, it makes sure to cache them. narwhals-2.26.0/docs/resources.md000066400000000000000000000036471525000603700167140ustar00rootroot00000000000000# Resources ## Sponsors and institutional partners Narwhals is 100% independent, community-driven, and community-owned. We are extremely grateful to the following organisations for having provided some funding / development time: - [Quansight Labs](https://labs.quansight.org) - [Quansight Futures](https://www.qi.ventures) - [OpenTeams](https://www.openteams.com) - [POSSEE initiative](https://possee.org) - [BYU-Idaho](https://www.byui.edu) - [Intella](https://www.intella.tech/) If you contribute to Narwhals on your organization's time, please let us know. We'd be happy to add your employer to this list! ## Appears on Narwhals has been featured in several talks, podcasts, and blog posts: - [Talk Python to me Podcast](https://youtu.be/FSH7BZ0tuE0) Ahoy, Narwhals are bridging the data science APIs - [Python Bytes Podcast](https://www.youtube.com/live/N7w_ESVW40I?si=y-wN1uCsAuJOKlOT&t=382) Episode 402, topic #2 - [Super Data Science: ML & AI Podcast](https://www.youtube.com/watch?v=TeG4U8R0U8U) Narwhals: For Pandas-to-Polars DataFrame Compatibility - [Sample Space Podcast | probabl](https://youtu.be/8hYdq4sWbbQ?si=WG0QP1CZ6gkFf18b) How Narwhals has many end users ... that never use it directly. - Marco Gorelli - [The Real Python Podcast](https://www.youtube.com/watch?v=w5DFZbFYzCM) Narwhals: Expanding DataFrame Compatibility Between Libraries - [Pycon Lithuania](https://www.youtube.com/watch?v=-mdx7Cn6_6E) Marco Gorelli - DataFrame interoperatiblity - what's been achieved, and what comes next? - [Pycon Italy](https://www.youtube.com/watch?v=3IqUli9XsmQ) How you can write a dataframe-agnostic library - Marco Gorelli - [Polars Blog Post](https://pola.rs/posts/lightweight_plotting/) Polars has a new lightweight plotting backend - [Quansight Labs blog post (w/ Scikit-Lego)](https://labs.quansight.org/blog/scikit-lego-narwhals) How Narwhals and scikit-lego came together to achieve dataframe-agnosticism narwhals-2.26.0/docs/security.md000066400000000000000000000051631525000603700165440ustar00rootroot00000000000000# Security ## Reporting a Vulnerability If you believe you have found a security vulnerability in Narwhals, please report it privately rather than opening a public issue. We support two channels: * **GitHub Private Vulnerability Reporting**: use the [Report a vulnerability](https://github.com/narwhals-dev/narwhals/security/advisories/new) form on our Security tab. * **Email**: send details to `hello_narwhals@proton.me`. Please include a description of the issue, reproduction steps, the affected version(s), and any proof-of-concept code. Do not include data that is itself sensitive. ### Disclosure process and timeline * We acknowledge receipt of vulnerability reports within 7 days. * We aim to provide an initial assessment (accepted, more info needed, or declined) within 30 days. * For confirmed vulnerabilities we target a fix and coordinated disclosure within 90 days of the initial report. We will keep the reporter informed of progress and may request an embargo extension for complex issues. * After a fix is released, we publish a GitHub Security Advisory and credit the reporter unless they prefer to remain anonymous. We follow good-faith vulnerability disclosure: researchers acting in line with this policy will not be pursued under DMCA, CFAA, or equivalent local statutes. ## Security practices Given that Narwhals can only work if people trust it, we recognise the importance of following good security practices. Here are some practices we follow: * We publish to PyPI via trusted publishing and are PEP740-compliant. * We don't use `pull_request_target` in any CI job. * The release CI job can only be triggered for tag pushes, and only Narwhals members with release permissions (see below) can push tags. * All members of `narwhals-dev` are required to have two-factor authentication enabled. * There are no binary or opaque files in the Narwhals repository. * Release permissions are only given to people who satisfy all of the following: * Have met the original author in real life on multiple days. * Have made significant contributions to Narwhals. * Give off good vibes. This is hard to rigorously define, but it's there so we can refuse anyone who, despite satisfying the above two criteria, we don't feel like we can trust. On top of those criteria, we cap the number of people with release permissions at 5. Even if someone satisfies all of the above, if the cap is already reached then we will not be adding any more (though you may still be added to `narwhals-dev` and get permission to merge pull requests which you believe are ready). The cap is currently reached. narwhals-2.26.0/docs/why.md000066400000000000000000000027061525000603700155040ustar00rootroot00000000000000# Why? You may think that pandas, Polars, and all dataframe libraries are quite similar. But are they really? For example, do the following produce the same output? ```py import pandas as pd import polars as pl print(3 in pd.Series([1, 2, 3])) print(3 in pl.Series([1, 2, 3])) ``` Try it out and see ๐Ÿ˜‰ Spoiler alert: they don't. pandas checks if `3` is in the index, Polars checks if it's in the values. For another example, try running the code below - note how the outputs have different column names after the join! ```py pd_df_left = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]}) pd_df_right = pd.DataFrame({"a": [1, 2, 3], "c": [4, 5, 6]}) pd_left_merge = pd_df_left.merge(pd_df_right, left_on="b", right_on="c", how="left") pl_df_left = pl.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]}) pl_df_right = pl.DataFrame({"a": [1, 2, 3], "c": [4, 5, 6]}) pl_left_merge = pl_df_left.join(pl_df_right, left_on="b", right_on="c", how="left") print(pd_left_merge.columns) print(pl_left_merge.columns) ``` There are several such subtle differences between the libraries. **Writing dataframe-agnostic code is hard!** But by having a unified, simple, and predictable API, you can focus on behaviour rather than on subtle implementation differences. Furthermore, both pandas and Polars frequently deprecate behaviour. Narwhals handles this for you by testing against nightly builds of both libraries and handling backwards compatibility internally (so you don't have to!). narwhals-2.26.0/docstring_template.mustache000066400000000000000000000003551525000603700210430ustar00rootroot00000000000000{{! narwhals docstring template }} {{summaryPlaceholder}}. {{#parametersExist}} Arguments: {{#args}} {{var}}: {{descriptionPlaceholder}} {{/args}} {{#kwargs}} {{var}}: {{descriptionPlaceholder}} {{/kwargs}} {{/parametersExist}} narwhals-2.26.0/packages/000077500000000000000000000000001525000603700151745ustar00rootroot00000000000000narwhals-2.26.0/packages/test-plugin/000077500000000000000000000000001525000603700174475ustar00rootroot00000000000000narwhals-2.26.0/packages/test-plugin/pyproject.toml000066400000000000000000000003701525000603700223630ustar00rootroot00000000000000[build-system] requires = ["uv_build>=0.11.0,<0.12.0"] build-backend = "uv_build" [project] name = "test_plugin" version = "0.1.0" requires-python = ">=3.10" dependencies = [] [project.entry-points.'narwhals.plugins'] test-plugin = 'test_plugin' narwhals-2.26.0/packages/test-plugin/src/000077500000000000000000000000001525000603700202365ustar00rootroot00000000000000narwhals-2.26.0/packages/test-plugin/src/test_plugin/000077500000000000000000000000001525000603700225735ustar00rootroot00000000000000narwhals-2.26.0/packages/test-plugin/src/test_plugin/__init__.py000066400000000000000000000011011525000603700246750ustar00rootroot00000000000000from __future__ import annotations from typing import TYPE_CHECKING if TYPE_CHECKING: from typing_extensions import TypeIs from narwhals.utils import Version from test_plugin.dataframe import DictFrame from test_plugin.namespace import DictNamespace def __narwhals_namespace__(version: Version) -> DictNamespace: # noqa: N807 from test_plugin.namespace import DictNamespace return DictNamespace(version=version) def is_native(native_object: object) -> TypeIs[DictFrame]: return isinstance(native_object, dict) NATIVE_PACKAGE = "builtins" narwhals-2.26.0/packages/test-plugin/src/test_plugin/dataframe.py000066400000000000000000000041771525000603700251020ustar00rootroot00000000000000from __future__ import annotations from typing import TYPE_CHECKING, Any from narwhals._utils import ( Implementation, ValidateBackendVersion, Version, not_implemented, ) from narwhals.typing import CompliantLazyFrame if TYPE_CHECKING: from typing import TypeAlias from typing_extensions import Self from narwhals import LazyFrame # noqa: F401 DictFrame: TypeAlias = dict[str, list[Any]] class DictLazyFrame( CompliantLazyFrame[Any, "DictFrame", "LazyFrame[DictFrame]"], # type: ignore[type-var] ValidateBackendVersion, ): _implementation = Implementation.UNKNOWN def __init__(self, native_dataframe: DictFrame, *, version: Version) -> None: self._native_frame: DictFrame = native_dataframe self._version = version def __narwhals_lazyframe__(self) -> Self: return self @property def columns(self) -> list[str]: # pragma: no cover return list(self._native_frame.keys()) _with_native = not_implemented() def _with_version(self, version: Version) -> Self: return self.__class__(self._native_frame, version=version) # Dunders __narwhals_namespace__ = not_implemented() __native_namespace__ = not_implemented() # Properties schema: Any = not_implemented() # Static _is_native = not_implemented() # Helpers _iter_columns = not_implemented() # Functions aggregate = not_implemented() collect = not_implemented() collect_schema = not_implemented() drop = not_implemented() drop_nulls = not_implemented() explode = not_implemented() filter = not_implemented() from_native = not_implemented() group_by = not_implemented() head = not_implemented() join = not_implemented() join_asof = not_implemented() rename = not_implemented() select = not_implemented() simple_select = not_implemented() sink_parquet = not_implemented() sort = not_implemented() tail = not_implemented() to_narwhals = not_implemented() unique = not_implemented() unpivot = not_implemented() with_columns = not_implemented() with_row_index = not_implemented() narwhals-2.26.0/packages/test-plugin/src/test_plugin/namespace.py000066400000000000000000000026241525000603700251050ustar00rootroot00000000000000from __future__ import annotations from typing import TYPE_CHECKING, Any from narwhals._compliant import CompliantNamespace from narwhals._utils import not_implemented from test_plugin.dataframe import DictFrame, DictLazyFrame if TYPE_CHECKING: from narwhals.utils import Version class DictNamespace(CompliantNamespace[DictLazyFrame, Any]): def __init__(self, *, version: Version) -> None: self._version = version def from_native(self, native_object: DictFrame) -> DictLazyFrame: return DictLazyFrame(native_object, version=self._version) is_native: Any = not_implemented() _expr: Any = not_implemented() _implementation: Any = not_implemented() corr: Any = not_implemented() cov: Any = not_implemented() len: Any = not_implemented() list: Any = not_implemented() lit: Any = not_implemented() all_horizontal: Any = not_implemented() any_horizontal: Any = not_implemented() sum_horizontal: Any = not_implemented() mean_horizontal: Any = not_implemented() min_horizontal: Any = not_implemented() max_horizontal: Any = not_implemented() concat: Any = not_implemented() when: Any = not_implemented() concat_str: Any = not_implemented() selectors: Any = not_implemented() coalesce: Any = not_implemented() struct: Any = not_implemented() scan_csv: Any = not_implemented() scan_parquet: Any = not_implemented() narwhals-2.26.0/packages/test-plugin/src/test_plugin/py.typed000066400000000000000000000000001525000603700242600ustar00rootroot00000000000000narwhals-2.26.0/pyproject.toml000066400000000000000000000404211525000603700163330ustar00rootroot00000000000000# Reference: https://packaging.python.org/en/latest/guides/writing-pyproject-toml [build-system] requires = ["uv_build>=0.11.0,<0.13.0"] build-backend = "uv_build" [project] name = "narwhals" version = "2.26.0" dependencies = [] requires-python = ">=3.10" authors = [ { name = "Marco Gorelli", email = "hello_narwhals@proton.me" }, ] license = "MIT" license-files = ["LICENSE.md"] description = "Extremely lightweight compatibility layer between dataframe libraries" readme = "README.md" keywords = ["dataframes", "interoperability", "pandas", "polars", "pyarrow", "dask", "modin", "cudf"] classifiers = [ "Development Status :: 5 - Production/Stable", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "Programming Language :: Python :: Free Threading :: 2 - Beta", "Typing :: Typed", ] [project.urls] Homepage = "https://github.com/narwhals-dev/narwhals" Documentation = "https://narwhals-dev.github.io/narwhals/" Repository = "https://github.com/narwhals-dev/narwhals" "Bug Tracker" = "https://github.com/narwhals-dev/narwhals/issues" [project.optional-dependencies] # These should be aligned with MIN_VERSIONS in narwhals/utils.py # Exception: modin, because `modin.__version__` isn't aligned with # `modin.pandas.__version__`. The latter is the one that we make # API decisions based on, so that's the one we track internally. # We have yet to determine the minimum Modin version we support # https://github.com/narwhals-dev/narwhals/issues/817 pandas = ["pandas>=1.3.4"] modin = ["modin>=0.22.0"] cudf = ["cudf-cu12>=24.10.0; sys_platform == 'linux'"] pyarrow = ["pyarrow>=13.0.0"] pyspark = ["pyspark>=3.5.0"] pyspark-connect = ["pyspark[connect]>=3.5.0"] polars = ["polars>=0.20.4"] dask = ["dask[dataframe]>=2024.8"] duckdb = ["duckdb>=1.1"] ibis = [ "ibis-framework>=6.0.0", "packaging>=21.3", # runtime import at ibis/backends/duckdb and others "pyarrow_hotfix>=0.7", # runtime import anytime pyarrow is imported ] sqlframe = ["sqlframe>=3.22.0,!=3.39.3"] sql = ["narwhals[duckdb]", "sqlparse>=0.5.5"] [dependency-groups] core = [ "pandas>=1.3.4", "duckdb>=1.5", "narwhals[duckdb,polars,pyarrow,sqlframe,sql]" ] plugins = [ "test-plugin", ] tests = [ "covdefaults", "pytest>=9.0.3", "pytest-cov", "pytest-env", "pytest-randomly", "pytest-xdist", "hypothesis>=6.0.0", ] # NOTE: `plugins` is deliberately NOT included within `tests`. #ย `test-plugin` is a workspace member, so pulling it into `tests` makes the group unresolvable # outside the workspace (e.g. `pip install --group tests` from an unpacked sdist, #ย as hit by downstream packagers). `tests/plugins_test.py` uses `importorskip`, #ย so it skips gracefully when the plugin is absent. #ย CI jobs that measure `tests/` coverage add `--group plugins` explicitly. #ย See https://github.com/narwhals-dev/narwhals/pull/3664 and https://github.com/narwhals-dev/narwhals/pull/3665 sklearn = [ "scikit-learn", ] typing = [ #ย Type checkers "mypy", "pyrefly", "pyright", # Dependencies "hypothesis>=6.0.0", "pytest>=9.0.3", "pandas-stubs>=2.3.0.250703", "pyarrow-stubs>=19.2", "rich>=12.4.4", #ย type import to resolve ibis "typing-extensions>=4.15.0", "narwhals[dask,duckdb,ibis,pandas,polars,pyarrow,sql,sqlframe]", {include-group = "plugins"}, ] docs = [ "jinja2>=3.1.6", "markdown-exec[ansi]>=1.12.1", "mkdocs-autorefs>=1.4.4", "mkdocstrings-python>=2.0.3", "pandas>=1.3.4", "narwhals[duckdb,pyarrow,polars,sql,sqlframe]", "ruff", "zensical>=0.0.38" ] dev = [ "prek", "ruff", {include-group = "tests"}, ] dev-core = [ {include-group = "dev"}, {include-group = "core"}, ] core-tests = [ {include-group = "core"}, {include-group = "tests"}, ] local-dev = [ {include-group = "dev"}, {include-group = "core"}, {include-group = "docs"}, {include-group = "plugins"}, ] extreme-minimum-versions = [ "setuptools", "tzdata", "pandas==1.3.4", "polars==0.20.4", "numpy==1.21.4", "pyarrow==13.0.0", "pyarrow-stubs<17", "scipy==1.7.3", "scikit-learn==1.1.0", "duckdb==1.1", {include-group = "tests"}, ] extreme-pretty-old-versions = [ "setuptools", "tzdata", "pandas==1.4.1", "polars==0.20.4", "numpy==1.22.0", "pyarrow==14.0.0", "pyarrow-stubs<17", "scipy==1.8.0", "scikit-learn==1.1.0", "duckdb==1.2", {include-group = "tests"}, ] extreme-not-so-old-versions = [ "setuptools", "tzdata", "pandas==2.0.3", "polars==0.20.8", "numpy==1.24.4", "pyarrow==15.0.0", "pyarrow-stubs<17", "scipy==1.8.0", "scikit-learn==1.3.0", "duckdb==1.3", "dask[dataframe]==2024.10", {include-group = "tests"}, ] min-pyspark-version = [ "pyspark==3.5.0", {include-group = "core-tests"}, ] [tool.uv.build-backend] # The `src/narwhals` module, pyproject.toml, README and LICENSE are shipped by # default. We only need to add `tests/` to the sdist; `/**` recurses into # subdirectories (a bare `*` would not, dropping e.g. `tests/data/`). #ย See: https://docs.astral.sh/uv/reference/settings/#build-backend_source-exclude #ย > Glob expressions which files and directories to additionally include in the source distribution. source-include = ["tests/**"] [tool.uv] # NOTE: When updating these conflicts, every entry in a single inner list is #ย treated as mutually exclusive with every other entry in the same list. # See https://docs.astral.sh/uv/reference/settings/#conflicts. conflicts = [ # TODO: Remove these conflict when Modin and/or CuDF will support pandas v3.0+ #ย In the meanwhile, this is needed to run tests with pandas v3.0+ [ { extra = "cudf" }, { extra = "modin" }, { extra = "pandas" }, ], # The `extreme-*` groups pin mutually incompatible pyarrow/pandas/numpy # versions, and all pin `pyarrow-stubs<17` while `typing` pins ==19.2. `cudf` # is here because old pandas/numpy forces cudf-cu12==24.10.x, whose # nvidia-stub build backend fails on non-linux platforms during lock. [ { extra = "cudf" }, { group = "typing" }, { group = "extreme-minimum-versions" }, { group = "extreme-not-so-old-versions" }, { group = "extreme-pretty-old-versions" }, ], # `dask[dataframe]>=2024.8` transitively requires pyarrow>=16 / pandas>=2, # and `modin>=0.22` pins pandas==1.5.3, both incompatible with the older two # `extreme-*` groups. `extreme-not-so-old-versions` is omitted: it already # pins dask==2024.10 and pandas==2.0.3, which are compatible. [ { extra = "cudf" }, { extra = "dask" }, { extra = "modin" }, { group = "extreme-minimum-versions" }, { group = "extreme-pretty-old-versions" }, ], # `core` resolves modern pandas/duckdb/polars/etc., conflicting with every # `extreme-*` group's old version pins. [ { group = "core" }, { group = "extreme-minimum-versions" }, { group = "extreme-not-so-old-versions" }, { group = "extreme-pretty-old-versions" }, ], ] [tool.uv.workspace] members = ["packages/*"] [tool.uv.sources] test-plugin = { workspace = true } [tool.ruff] line-length = 90 fix = true target-version = "py310" extend-exclude = ["**/this.py"] [tool.ruff.lint] preview = true explicit-preview-rules = true typing-modules = ["narwhals._typing_compat"] extend-safe-fixes = [ "C419", # unnecessary-comprehension-in-call "C420", # unnecessary-dict-comprehension-for-iterable "EM101", # raw-string-in-exception "EM102", # f-string-in-exception "PLR6201", # literal-membership "TC", # flake8-type-checking "UP", # pyupgrade "PLW1514", # unspecified-encoding ] extend-select = [ "PLR0914", # too-many-locals "PLR0916", # too-many-boolean-expressions "PLR1702", # too-many-nested-blocks "PLR6201", # literal-membership "PLW1514", # unspecified-encoding ] select = ["ALL"] ignore = [ "A001", # builtin-variable-shadowing "A004", # builtin-import-shadowing "ARG002", # unused-method-argument "ANN401", # any-type "CPY001", #ย missing-copyright-notice "COM812", # missing-trailing-comma "D100", # undocumented-public-module "D101", # undocumented-public-class "D102", # undocumented-public-method "D103", # undocumented-public-function "D104", # undocumented-public-package "D105", # undocumented-magic-method "D107", # undocumented-public-init "DTZ001", # call-datetime-without-tzinfo "E501", # line-too-long "FBT003", # boolean-positional-value-in-call (We enforce at definition site when it is a flag, not a value (e.g. `lit(False)`)) "FIX", # flake8-fixme "PD010", # pandas-use-of-dot-pivot-or-unstack "PLC0415", # `import` should be at the top-level of a file "PLR0913", # too-many-arguments "PLR2004", # magic-value-comparison "PLW1641", # Object does not implement `__hash__` method "SLF001", # private-member-access "TD003", # missing-todo-link "TD004", # missing-todo-colon ] [tool.ruff.lint.flake8-builtins] builtins-ignorelist = ["format"] [tool.ruff.lint.pep8-naming] extend-ignore-names = [ "Series", "DataFrame", "_Window", "F", "_F", ] [tool.ruff.lint.per-file-ignores] "src/narwhals/expr_dt.py" = ["RUF002"] "src/narwhals/typing.py" = [ "PYI042", # snake-case-type-alias (catches `_1DArray`) ] "src/narwhals/_*/utils.py" = [ "PLR0911", # too-many-return-statements ] "tests/*" = [ "S101", "C901", # complex-structure "PLR0912", # too-many-branches "PLR0916", # too-many-boolean-expressions "PLR0917", # too-many-positional-arguments ] "tpch/tests/*" = ["S101"] "tpch/execute/*" = ["T201"] "tpch/queries/*" = ["PLR0917"] "tpch/notebooks/*" = [ "ANN001", "ANN201", "EM101", "EXE002", "PTH123", "T203", "TRY003", ] "utils/*" = ["S311", "T201"] "utils/bump_version.py" = ["S603", "S607"] [tool.ruff.lint.pydocstyle] convention = "google" [tool.ruff.lint.pylint] max-nested-blocks = 4 [tool.ruff.lint.isort] required-imports = ["from __future__ import annotations"] combine-as-imports = true split-on-trailing-comma = false [tool.ruff.format] docstring-code-format = true skip-magic-trailing-comma = true [tool.pytest.ini_options] norecursedirs = ['*.egg', '.*', '_darcs', 'build', 'CVS', 'dist', 'node_modules', 'venv', '{arch}', 'src/narwhals/_*'] testpaths = ["tests"] pythonpath = ["src"] filterwarnings = [ "error", 'ignore:.*defaulting to pandas implementation:Warning:modin', 'ignore:.*implementation has mismatches with pandas:Warning:modin', 'ignore:.*You are using pyarrow version', # Deprecation raised by DuckDB 'ignore:.*fetch_arrow_table\(\) is deprecated:DeprecationWarning:sqlframe', 'ignore:.*fetch_arrow_table\(\) is deprecated:DeprecationWarning:ibis', # https://discuss.python.org/t/types-uniontype-was-merged-with-wrong-class-not-even-a-class/102275/31 "ignore:.*'_UnionGenericAlias' is deprecated:DeprecationWarning", # This warning was temporarily raised by pandas but then reverted. 'ignore:.*Passing a BlockManager to DataFrame:DeprecationWarning', # This warning was temporarily raised by Polars but then reverted. 'ignore:.*The default coalesce behavior of left join will change:DeprecationWarning', 'ignore: unclosed =2.5 deprecates generic-unit timedeltas; pandas (>=2.3) trips this from # `pd.Timedelta(...)`. The warning is attributed to the caller's module (e.g. test # code), so it cannot be scoped to `pandas`; keep it unscoped for this exact message. "ignore:.*'generic' unit for NumPy timedelta is deprecated.*:DeprecationWarning", # Warning raised when calling PandasLikeNamespace.from_arrow with old pyarrow "ignore:.*is_sparse is deprecated and will be removed in a future version.*:DeprecationWarning:pyarrow", "ignore:.*invalid value encountered in cast:RuntimeWarning:pandas", "ignore:.*The behavior of DataFrame concatenation with empty or all-NA entries is deprecated:FutureWarning", # raised internally by Dask "ignore:.*Downcasting behavior in Series and DataFrame methods 'where', 'mask', and 'clip' is deprecated.*:FutureWarning:dask", "ignore:.*inplace keyword .* is deprecated*:Warning:dask", #ย raise internally by polars "ignore:.*interchange protocol is deprecated.*:DeprecationWarning" ] xfail_strict = true markers = ["slow: marks tests as slow (deselect with '-m \"not slow\"')"] env = [ "MODIN_ENGINE=python", "PYARROW_IGNORE_TIMEZONE=1", "TZ=UTC", ] [tool.coverage.run] plugins = ["covdefaults"] [tool.coverage.report] fail_under = 80 # This is just for local development, in CI we set it to 100 omit = [ "src/narwhals/typing.py", "src/narwhals/compliant.py", "src/narwhals/stable/v1/typing.py", "src/narwhals/stable/v2/typing.py", "src/narwhals/this.py", "src/narwhals/_arrow/typing.py", "src/narwhals/_duckdb/typing.py", "src/narwhals/_spark_like/typing.py", # We run Ibis in a separate CI job to the coverage one, to avoid their tight dependency pins. "src/narwhals/_ibis/*", # Remove after finishing eager sub-protocols "src/narwhals/_compliant/namespace.py", "tests/ibis_test.py", ] exclude_also = [ "if sys.version_info() <", "if .* is Implementation.(CUDF|MODIN|PYSPARK|PYSPARK_CONNECT|IBIS)", "if .*.is_(cudf|modin|pyspark|pyspark_connect|ibis)", 'if "(cudf|modin|pyspark|ibis)" in', "if not .*.is_pandas", "if is_ibis_table", "if MYPY", "except ModuleNotFoundError", 'request.applymarker\(pytest.mark.xfail', 'backend_version <', '.*._backend_version\(\) <', 'BACKEND_VERSION <', 'if ".*" in str\(constructor', 'pytest.skip\(', 'assert_never\(', 'PANDAS_VERSION < \(' ] [tool.mypy] files = ["src", "tests", "packages/test-plugin"] pretty = true strict = true allow_redefinition = true # https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-allow-redefinition [[tool.mypy.overrides]] module = [ "cudf.*", "cupy.*", "dask.*", "dask_expr.*", # https://github.com/ibis-project/ibis/issues/6844 "ibis.*", "joblib.*", "modin.*", "numpy.*", "pyspark.*", "sklearn.*", "sqlparse.*", ] # TODO: remove follow_imports follow_imports = "skip" ignore_missing_imports = true [[tool.mypy.overrides]] module = [ "narwhals._expression_parsing", "narwhals._utils", "narwhals._pandas_like.*", "narwhals._ibis.*", "narwhals._arrow.*", "narwhals._dask.*", "narwhals._spark_like.*", ] warn_return_any = false [tool.pyright] pythonPlatform = "All" # NOTE (`pyarrow-stubs` do unsafe `TypeAlias` and `TypeVar` imports) # pythonVersion = "3.10" reportMissingTypeArgument = "error" reportIncompatibleMethodOverride = "error" reportMissingImports = "none" reportMissingModuleSource = "none" reportPrivateImportUsage = "none" reportUnusedExpression = "none" # handled by (https://docs.astral.sh/ruff/rules/unused-variable/) typeCheckingMode = "basic" include = ["src", "tests", "packages/test-plugin"] ignore = [ "../.venv/", "../../../**/Lib", # stdlib "../../../**/typeshed*" # typeshed-fallback ] defineConstant = { "MYPY" = false } [tool.pyrefly] search-path = ["src", "."] project-includes = ["tests"] ignore-missing-imports = [ "cudf.*", "cupy.*", "dask.*", "dask_expr.*", "joblib.*", "modin.*", "pyspark.*", "sklearn.*", "sqlparse.*", ] narwhals-2.26.0/renovate.json000066400000000000000000000024611525000603700161370ustar00rootroot00000000000000{ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": ["config:recommended", ":dependencyDashboard"], "enabledManagers": ["pep621", "github-actions"], "labels": ["dependencies"], "lockFileMaintenance": { "enabled": true, "schedule": ["* 0-5 * * *"] }, "packageRules": [ { "description": "Never edit pyproject.toml. Disable every dependency version update; uv.lock is refreshed wholesale by lockFileMaintenance, the equivalent of `uv lock -U` (latest versions allowed by the pyproject constraints).", "matchManagers": ["pep621"], "matchUpdateTypes": ["major", "minor", "patch", "pin", "digest"], "enabled": false }, { "description": "Replaces the github-actions ecosystem previously handled by .github/dependabot.yml, which opened one PR per action. Every action is bumped in a single weekly PR instead. `minimumReleaseAge` is the supply-chain cooldown dependabot expressed as `cooldown.default-days`, and `pinDigests` keeps the `@ # vX.Y.Z` form that zizmor's `unpinned-uses` audit requires.", "matchManagers": ["github-actions"], "groupName": "github actions", "commitMessagePrefix": "skip changelog(deps):", "minimumReleaseAge": "7 days", "pinDigests": true, "schedule": ["* 0-5 * * 2"] } ] } narwhals-2.26.0/src/000077500000000000000000000000001525000603700142055ustar00rootroot00000000000000narwhals-2.26.0/src/narwhals/000077500000000000000000000000001525000603700160245ustar00rootroot00000000000000narwhals-2.26.0/src/narwhals/__init__.py000066400000000000000000000065641525000603700201500ustar00rootroot00000000000000from __future__ import annotations import typing as _t from narwhals import dependencies, dtypes, exceptions, selectors from narwhals._utils import ( Implementation, generate_temporary_column_name, is_ordered_categorical, maybe_align_index, maybe_convert_dtypes, maybe_get_index, maybe_reset_index, maybe_set_index, ) from narwhals.dataframe import DataFrame, LazyFrame from narwhals.dtypes import ( Array, Binary, Boolean, Categorical, Date, Datetime, Decimal, Duration, Enum, Field, Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, List, Object, String, Struct, Time, UInt8, UInt16, UInt32, UInt64, UInt128, Unknown, ) from narwhals.expr import Expr from narwhals.functions import ( all_ as all, all_horizontal, any_horizontal, coalesce, col, concat, concat_str, corr, cov, exclude, format, from_arrow, from_dict, from_dicts, from_numpy, len_ as len, list_ as list, lit, max, max_horizontal, mean, mean_horizontal, median, min, min_horizontal, new_series, nth, read_csv, read_parquet, scan_csv, scan_parquet, show_versions, struct, sum, sum_horizontal, when, ) from narwhals.schema import Schema from narwhals.series import Series from narwhals.translate import ( from_native, get_native_namespace, narwhalify, to_native, to_py_scalar, ) __version__: str __all__ = [ "Array", "Binary", "Boolean", "Categorical", "DataFrame", "Date", "Datetime", "Decimal", "Duration", "Enum", "Expr", "Field", "Float16", "Float32", "Float64", "Implementation", "Int8", "Int16", "Int32", "Int64", "Int128", "LazyFrame", "List", "Object", "Schema", "Series", "String", "Struct", "Time", "UInt8", "UInt16", "UInt32", "UInt64", "UInt128", "Unknown", "all", "all_horizontal", "any_horizontal", "coalesce", "col", "concat", "concat_str", "corr", "cov", "dependencies", "dtypes", "exceptions", "exclude", "format", "from_arrow", "from_dict", "from_dicts", "from_native", "from_numpy", "generate_temporary_column_name", "get_native_namespace", "is_ordered_categorical", "len", "list", "lit", "max", "max_horizontal", "maybe_align_index", "maybe_convert_dtypes", "maybe_get_index", "maybe_reset_index", "maybe_set_index", "mean", "mean_horizontal", "median", "min", "min_horizontal", "narwhalify", "new_series", "nth", "read_csv", "read_parquet", "scan_csv", "scan_parquet", "selectors", "show_versions", "struct", "sum", "sum_horizontal", "to_native", "to_py_scalar", "when", ] if not _t.TYPE_CHECKING: def __getattr__(name: str) -> _t.Any: if name == "__version__": global __version__ # noqa: PLW0603 from importlib import metadata __version__ = metadata.version(__name__) return __version__ msg = f"module {__name__!r} has no attribute {name!r}" raise AttributeError(msg) else: # pragma: no cover ... narwhals-2.26.0/src/narwhals/_arrow/000077500000000000000000000000001525000603700173155ustar00rootroot00000000000000narwhals-2.26.0/src/narwhals/_arrow/__init__.py000066400000000000000000000000001525000603700214140ustar00rootroot00000000000000narwhals-2.26.0/src/narwhals/_arrow/dataframe.py000066400000000000000000000753701525000603700216270ustar00rootroot00000000000000from __future__ import annotations from collections.abc import Collection, Iterator, Mapping, Sequence from typing import TYPE_CHECKING, Any, Final, Literal, cast, overload import pyarrow as pa import pyarrow.compute as pc from narwhals._arrow.series import ArrowSeries from narwhals._arrow.utils import ( arange, chunked_array, concat_tables, narwhals_to_native_dtype, native_to_narwhals_dtype, repeat, sort_indices, sortable_table, ) from narwhals._compliant import EagerDataFrame from narwhals._utils import ( Implementation, check_column_names_are_unique, convert_str_slice_to_int_slice, generate_temporary_column_name, not_implemented, parse_columns_to_drop, scale_bytes, supports_arrow_c_stream, ) from narwhals.dependencies import is_numpy_array_1d from narwhals.exceptions import ShapeError if TYPE_CHECKING: from collections.abc import Iterable from io import BytesIO from pathlib import Path from types import ModuleType from typing import TypeAlias import pandas as pd import polars as pl from typing_extensions import Self, TypeIs from narwhals._arrow.expr import ArrowExpr from narwhals._arrow.group_by import ArrowGroupBy from narwhals._arrow.namespace import ArrowNamespace from narwhals._arrow.typing import ( # type: ignore[attr-defined] ChunkedArrayAny, NullPlacement, Order, ) from narwhals._compliant.typing import CompliantDataFrameAny, CompliantLazyFrameAny from narwhals._spark_like.utils import SparkSession from narwhals._translate import IntoArrowTable from narwhals._typing import _EagerAllowedImpl, _LazyAllowedImpl from narwhals._utils import Version, _LimitedContext from narwhals.dtypes import DType from narwhals.typing import ( IntoDType, IntoSchema, JoinStrategy, SizedMultiIndexSelector, SizedMultiNameSelector, SizeUnit, UniqueKeepStrategy, _1DArray, _2DArray, _SliceIndex, _SliceName, ) JoinType: TypeAlias = Literal[ "left semi", "right semi", "left anti", "right anti", "inner", "left outer", "right outer", "full outer", ] MYPY: Final = False class ArrowDataFrame( EagerDataFrame["ArrowSeries", "ArrowExpr", "pa.Table", "ChunkedArrayAny"] ): _implementation = Implementation.PYARROW def __init__( self, native_dataframe: pa.Table, *, version: Version, validate_column_names: bool, validate_backend_version: bool = False, ) -> None: if validate_column_names: check_column_names_are_unique(native_dataframe.column_names) if validate_backend_version: self._validate_backend_version() self._native_frame = native_dataframe self._version = version @classmethod def from_arrow(cls, data: IntoArrowTable, /, *, context: _LimitedContext) -> Self: backend_version = context._implementation._backend_version() if cls._is_native(data): native = data elif backend_version >= (14,) or isinstance(data, Collection): native = pa.table(data) elif supports_arrow_c_stream(data): # pragma: no cover msg = f"'pyarrow>=14.0.0' is required for `from_arrow` for object of type {type(data).__name__!r}." raise ModuleNotFoundError(msg) else: # pragma: no cover msg = f"`from_arrow` is not supported for object of type {type(data).__name__!r}." raise TypeError(msg) return cls.from_native(native, context=context) @classmethod def from_dict( cls, data: Mapping[str, Any], /, *, context: _LimitedContext, schema: Mapping[str, IntoDType | None] | None, ) -> Self: if not schema and not data: return cls.from_native(pa.table({}), context=context) if not schema: return cls.from_native(pa.table(data), context=context) if not any(dtype is None for dtype in schema.values()): from narwhals.schema import Schema pa_schema = Schema(cast("IntoSchema", schema)).to_arrow() if pa_schema and not data: native = pa_schema.empty_table() else: native = pa.Table.from_pydict(data, schema=pa_schema) return cls.from_native(native, context=context) if context._implementation._backend_version() < (14,): msg = "Passing `None` dtype in `from_dict` requires PyArrow>=14" raise NotImplementedError(msg) version = context._version # NOTE: stubs don't allow `ChunkedArray` values, but `pa.table` accepts them arrays: Mapping[str, Any] = { name: chunked_array( [data[name] if data else []], narwhals_to_native_dtype(nw_dtype, version=version) if nw_dtype is not None else None, ) for name, nw_dtype in schema.items() } return cls.from_native(pa.table(arrays), context=context) @classmethod def from_dicts( cls, data: Sequence[Mapping[str, Any]], /, *, context: _LimitedContext, schema: Mapping[str, IntoDType | None] | None, ) -> Self: from narwhals.schema import Schema if schema and any(dtype is None for dtype in schema.values()): msg = "`from_dicts` with `schema` where any dtype is `None` is not supported for PyArrow." raise NotImplementedError(msg) pa_schema = ( Schema(cast("IntoSchema", schema)).to_arrow() if schema is not None else schema ) if pa_schema and not data: native = pa_schema.empty_table() else: native = pa.Table.from_pylist(data, schema=pa_schema) return cls.from_native(native, context=context) @staticmethod def _is_native(obj: pa.Table | Any) -> TypeIs[pa.Table]: return isinstance(obj, pa.Table) @classmethod def from_native(cls, data: pa.Table, /, *, context: _LimitedContext) -> Self: return cls(data, version=context._version, validate_column_names=True) @classmethod def from_numpy( cls, data: _2DArray, /, *, context: _LimitedContext, schema: Mapping[str, IntoDType] | Sequence[str] | None, ) -> Self: from narwhals.schema import Schema arrays = [pa.array(val) for val in data.T] if isinstance(schema, (Mapping, Schema)): native = pa.Table.from_arrays(arrays, schema=Schema(schema).to_arrow()) else: native = pa.Table.from_arrays(arrays, cls._numpy_column_names(data, schema)) return cls.from_native(native, context=context) def __narwhals_namespace__(self) -> ArrowNamespace: from narwhals._arrow.namespace import ArrowNamespace return ArrowNamespace(version=self._version) def __native_namespace__(self) -> ModuleType: if self._implementation is Implementation.PYARROW: return self._implementation.to_native_namespace() msg = f"Expected pyarrow, got: {type(self._implementation)}" # pragma: no cover raise AssertionError(msg) def __narwhals_dataframe__(self) -> Self: return self def __narwhals_lazyframe__(self) -> Self: return self def _with_version(self, version: Version) -> Self: return self.__class__(self.native, version=version, validate_column_names=False) def _with_native(self, df: pa.Table, *, validate_column_names: bool = True) -> Self: return self.__class__( df, version=self._version, validate_column_names=validate_column_names ) @property def shape(self) -> tuple[int, int]: return self.native.shape def __len__(self) -> int: return len(self.native) def row(self, index: int) -> tuple[Any, ...]: return tuple(self.native.take([index]).to_pylist()[0].values()) @overload def rows(self, *, named: Literal[True]) -> list[dict[str, Any]]: ... @overload def rows(self, *, named: Literal[False]) -> list[tuple[Any, ...]]: ... @overload def rows(self, *, named: bool) -> list[tuple[Any, ...]] | list[dict[str, Any]]: ... def rows(self, *, named: bool) -> list[tuple[Any, ...]] | list[dict[str, Any]]: if not named: return list(self.iter_rows(named=False, buffer_size=512)) # type: ignore[return-value] return self.native.to_pylist() def iter_columns(self) -> Iterator[ArrowSeries]: for name, series in zip(self.columns, self.native.itercolumns(), strict=True): yield ArrowSeries.from_native(series, context=self, name=name) _iter_columns = iter_columns def iter_rows( self, *, named: bool, buffer_size: int ) -> Iterator[tuple[Any, ...]] | Iterator[dict[str, Any]]: df = self.native num_rows = df.num_rows if not named: for i in range(0, num_rows, buffer_size): rows = df[i : i + buffer_size].to_pydict().values() yield from zip(*rows, strict=True) else: for i in range(0, num_rows, buffer_size): yield from df[i : i + buffer_size].to_pylist() def get_column(self, name: str) -> ArrowSeries: if not isinstance(name, str): msg = f"Expected str, got: {type(name)}" raise TypeError(msg) return ArrowSeries.from_native(self.native[name], context=self, name=name) def __array__(self, dtype: Any, *, copy: bool | None) -> _2DArray: return self.native.__array__(dtype, copy=copy) def _gather(self, rows: SizedMultiIndexSelector[ChunkedArrayAny]) -> Self: if len(rows) == 0: return self._with_native(self.native.slice(0, 0)) if self._backend_version < (18,) and isinstance(rows, tuple): rows = list(rows) return self._with_native(self.native.take(rows)) def _gather_slice(self, rows: _SliceIndex | range) -> Self: start = rows.start or 0 stop = rows.stop if rows.stop is not None else len(self.native) if start < 0: start = len(self.native) + start if stop < 0: stop = len(self.native) + stop if rows.step is not None and rows.step != 1: msg = "Slicing with step is not supported on PyArrow tables" raise NotImplementedError(msg) return self._with_native(self.native.slice(start, stop - start)) def _select_slice_name(self, columns: _SliceName) -> Self: start, stop, step = convert_str_slice_to_int_slice(columns, self.columns) return self._with_native(self.native.select(self.columns[start:stop:step])) def _select_slice_index(self, columns: _SliceIndex | range) -> Self: return self._with_native( self.native.select(self.columns[columns.start : columns.stop : columns.step]) ) def _select_multi_index( self, columns: SizedMultiIndexSelector[ChunkedArrayAny] ) -> Self: selector: Sequence[int] if isinstance(columns, pa.ChunkedArray): # TODO @dangotbanned: Fix upstream with `pa.ChunkedArray.to_pylist(self) -> list[Any]:` selector = cast("Sequence[int]", columns.to_pylist()) # TODO @dangotbanned: Fix upstream, it is actually much narrower # **Doesn't accept `ndarray`** elif is_numpy_array_1d(columns): selector = columns.tolist() elif MYPY: selector = columns # type: ignore[assignment] else: selector = columns return self._with_native(self.native.select(selector)) def _select_multi_name( self, columns: SizedMultiNameSelector[ChunkedArrayAny] ) -> Self: selector: Sequence[str] | _1DArray if isinstance(columns, pa.ChunkedArray): # TODO @dangotbanned: Fix upstream with `pa.ChunkedArray.to_pylist(self) -> list[Any]:` selector = cast("Sequence[str]", columns.to_pylist()) else: selector = columns # NOTE: Fixed in https://github.com/zen-xu/pyarrow-stubs/pull/221 return self._with_native(self.native.select(selector)) # pyright: ignore[reportArgumentType] @property def schema(self) -> dict[str, DType]: return { field.name: native_to_narwhals_dtype(field.type, self._version) for field in self.native.schema } def collect_schema(self) -> dict[str, DType]: return self.schema def estimated_size(self, unit: SizeUnit) -> int | float: sz = self.native.nbytes return scale_bytes(sz, unit) explode = not_implemented() @property def columns(self) -> list[str]: return self.native.column_names def simple_select(self, *column_names: str) -> Self: return self._with_native( self.native.select(list(column_names)), validate_column_names=False ) def select(self, *exprs: ArrowExpr) -> Self: new_series = self._evaluate_exprs(*exprs) if not new_series: # return empty dataframe, like Polars does return self._with_native( self.native.__class__.from_arrays([]), validate_column_names=False ) names = [s.name for s in new_series] align = new_series[0]._align_full_broadcast reshaped = align(*new_series) df = pa.Table.from_arrays([s.native for s in reshaped], names=names) return self._with_native(df, validate_column_names=True) def _extract_comparand(self, other: ArrowSeries) -> ChunkedArrayAny: length = len(self) if not other._broadcast: if (len_other := len(other)) != length: msg = f"Expected object of length {length}, got: {len_other}." raise ShapeError(msg) return other.native value = other.native[0] return pa.chunked_array([pa.repeat(value, length)]) def with_columns(self, *exprs: ArrowExpr) -> Self: # NOTE: We use a faux-mutable variable and repeatedly "overwrite" (native_frame) # All `pyarrow` data is immutable, so this is fine native_frame = self.native new_columns = self._evaluate_exprs(*exprs) columns = self.columns for col_value in new_columns: col_name = col_value.name column = self._extract_comparand(col_value) native_frame = ( native_frame.set_column(columns.index(col_name), col_name, column=column) if col_name in columns else native_frame.append_column(col_name, column=column) ) return self._with_native(native_frame, validate_column_names=False) def group_by( self, keys: Sequence[str] | Sequence[ArrowExpr], *, drop_null_keys: bool ) -> ArrowGroupBy: from narwhals._arrow.group_by import ArrowGroupBy return ArrowGroupBy(self, keys, drop_null_keys=drop_null_keys) def join( self, other: Self, *, how: JoinStrategy, left_on: Sequence[str] | None, right_on: Sequence[str] | None, suffix: str, ) -> Self: how_to_join_map: dict[str, JoinType] = { "anti": "left anti", "semi": "left semi", "inner": "inner", "left": "left outer", "full": "full outer", } if how == "cross": plx = self.__narwhals_namespace__() key_token = generate_temporary_column_name( n_bytes=8, columns=[*self.columns, *other.columns] ) return self._with_native( self.with_columns(plx.lit(0, None).alias(key_token).broadcast()) .native.join( other.with_columns( plx.lit(0, None).alias(key_token).broadcast() ).native, keys=key_token, right_keys=key_token, join_type="inner", right_suffix=suffix, ) .drop([key_token]) ) coalesce_keys = how != "full" # polars full join does not coalesce keys return self._with_native( self.native.join( other.native, keys=left_on or [], # type: ignore[arg-type] right_keys=right_on, # type: ignore[arg-type] join_type=how_to_join_map[how], right_suffix=suffix, coalesce_keys=coalesce_keys, ) ) join_asof = not_implemented() def drop(self, columns: Sequence[str], *, strict: bool) -> Self: to_drop = parse_columns_to_drop(self, columns, strict=strict) return self._with_native(self.native.drop(to_drop), validate_column_names=False) def drop_nulls(self, subset: Sequence[str] | None) -> Self: if subset is None: return self._with_native(self.native.drop_null(), validate_column_names=False) plx = self.__narwhals_namespace__() mask = ~plx.any_horizontal(plx.col(*subset).is_null(), ignore_nulls=True) return self.filter(mask) def sort(self, *by: str, descending: bool | Sequence[bool], nulls_last: bool) -> Self: if isinstance(descending, bool): order: Order = "descending" if descending else "ascending" sorting: list[tuple[str, Order]] = [(key, order) for key in by] else: sorting = [ (key, "descending" if is_descending else "ascending") for key, is_descending in zip(by, descending, strict=True) ] null_placement: NullPlacement = "at_end" if nulls_last else "at_start" # NOTE: sort on `sortable_table`, take from the original, so that # dictionary-encoded (categorical) keys keep their encoding in the output. indices = sort_indices(sortable_table(self.native, by), sorting, null_placement) return self._with_native(self.native.take(indices), validate_column_names=False) def top_k(self, k: int, *, by: Iterable[str], reverse: bool | Sequence[bool]) -> Self: if isinstance(reverse, bool): order: Order = "ascending" if reverse else "descending" sorting: list[tuple[str, Order]] = [(key, order) for key in by] else: sorting = [ (key, "ascending" if is_ascending else "descending") for key, is_ascending in zip(by, reverse, strict=True) ] keys = [name for name, _ in sorting] table = sortable_table(self.native, keys) indices = pc.select_k_unstable(table, k, sorting) # type: ignore[call-overload] return self._with_native(self.native.take(indices), validate_column_names=False) def to_pandas(self) -> pd.DataFrame: return self.native.to_pandas() def to_polars(self) -> pl.DataFrame: import polars as pl # ignore-banned-import return pl.from_arrow(self.native) # type: ignore[return-value] def to_numpy(self, dtype: Any = None, *, copy: bool | None = None) -> _2DArray: import numpy as np # ignore-banned-import arr: Any = np.column_stack([col.to_numpy() for col in self.native.columns]) return arr @overload def to_dict(self, *, as_series: Literal[True]) -> dict[str, ArrowSeries]: ... @overload def to_dict(self, *, as_series: Literal[False]) -> dict[str, list[Any]]: ... def to_dict( self, *, as_series: bool ) -> dict[str, ArrowSeries] | dict[str, list[Any]]: it = self.iter_columns() if as_series: return {ser.name: ser for ser in it} return {ser.name: ser.to_list() for ser in it} def with_row_index(self, name: str, order_by: Sequence[str] | None) -> Self: plx = self.__narwhals_namespace__() data = arange(0, len(self), 1) if order_by is None: row_index = plx._expr._from_series( plx._series.from_iterable(data, context=self, name=name) ) return self.select(row_index, plx.all()) sorting: list[tuple[str, Order]] = [(name, "ascending") for name in order_by] indices = sort_indices(sortable_table(self.native, order_by), sorting, "at_start") if self._backend_version < (20,): new_col = data.take(pc.sort_indices(indices)) else: new_col = pc.scatter(data, indices.cast(pa.int64())) # type: ignore[attr-defined] return self._with_native(self.native.add_column(0, name, new_col)) def filter(self, predicate: ArrowExpr) -> Self: mask_native = self._evaluate_single_output_expr(predicate).native return self._with_native( self.native.filter(mask_native), validate_column_names=False ) def head(self, n: int) -> Self: df = self.native if n >= 0: return self._with_native(df.slice(0, n), validate_column_names=False) num_rows = df.num_rows return self._with_native( df.slice(0, max(0, num_rows + n)), validate_column_names=False ) def tail(self, n: int) -> Self: df = self.native if n >= 0: num_rows = df.num_rows return self._with_native( df.slice(max(0, num_rows - n)), validate_column_names=False ) return self._with_native(df.slice(abs(n)), validate_column_names=False) def lazy( self, backend: _LazyAllowedImpl | None = None, *, session: SparkSession | None = None, ) -> CompliantLazyFrameAny: if backend is None: return self if backend is Implementation.DUCKDB: import duckdb # ignore-banned-import from narwhals._duckdb.dataframe import DuckDBLazyFrame _df = self.native return DuckDBLazyFrame( duckdb.table("_df"), validate_backend_version=True, version=self._version ) if backend is Implementation.POLARS: import polars as pl # ignore-banned-import from narwhals._polars.dataframe import PolarsLazyFrame return PolarsLazyFrame( cast("pl.DataFrame", pl.from_arrow(self.native)).lazy(), validate_backend_version=True, version=self._version, ) if backend is Implementation.DASK: import dask.dataframe as dd # ignore-banned-import from narwhals._dask.dataframe import DaskLazyFrame return DaskLazyFrame( dd.from_pandas(self.native.to_pandas()), validate_backend_version=True, version=self._version, ) if backend is Implementation.IBIS: import ibis # ignore-banned-import from narwhals._ibis.dataframe import IbisLazyFrame return IbisLazyFrame( ibis.memtable(self.native, columns=self.columns), validate_backend_version=True, version=self._version, ) if backend.is_spark_like(): from narwhals._spark_like.dataframe import SparkLikeLazyFrame if session is None: msg = "Spark like backends require `session` to be not None." raise ValueError(msg) return SparkLikeLazyFrame._from_compliant_dataframe( self, session=session, implementation=backend, version=self._version ) raise AssertionError # pragma: no cover def collect( self, backend: _EagerAllowedImpl | None, **kwargs: Any ) -> CompliantDataFrameAny: if backend is Implementation.PYARROW or backend is None: return ArrowDataFrame( self.native, version=self._version, validate_column_names=False ) if backend is Implementation.PANDAS: from narwhals._pandas_like.dataframe import PandasLikeDataFrame return PandasLikeDataFrame( self.native.to_pandas(), implementation=Implementation.PANDAS, validate_backend_version=True, version=self._version, validate_column_names=False, ) if backend is Implementation.POLARS: import polars as pl # ignore-banned-import from narwhals._polars.dataframe import PolarsDataFrame return PolarsDataFrame( cast("pl.DataFrame", pl.from_arrow(self.native)), validate_backend_version=True, version=self._version, ) msg = f"Unsupported `backend` value: {backend}" # pragma: no cover raise AssertionError(msg) # pragma: no cover def clone(self) -> Self: return self._with_native(self.native, validate_column_names=False) def item(self, row: int | None, column: int | str | None) -> Any: from narwhals._arrow.series import maybe_extract_py_scalar if row is None and column is None: if (shape := self.shape) != (1, 1): msg = ( 'can only call `.item()` without "row" or "column" values if the ' f"DataFrame has a single element; shape={shape!r}" ) raise ValueError(msg) return maybe_extract_py_scalar(self.native[0][0], return_py_scalar=True) if row is None or column is None: msg = "cannot call `.item()` with only one of `row` or `column`" raise ValueError(msg) _col = self.columns.index(column) if isinstance(column, str) else column return maybe_extract_py_scalar(self.native[_col][row], return_py_scalar=True) def rename(self, mapping: Mapping[str, str]) -> Self: names: dict[str, str] | list[str] if self._backend_version >= (17,): names = cast("dict[str, str]", mapping) else: # pragma: no cover names = [mapping.get(c, c) for c in self.columns] return self._with_native(self.native.rename_columns(names)) def write_parquet(self, file: str | Path | BytesIO) -> None: import pyarrow.parquet as pp pp.write_table(self.native, file) @overload def write_csv(self, file: None) -> str: ... @overload def write_csv(self, file: str | Path | BytesIO) -> None: ... def write_csv(self, file: str | Path | BytesIO | None) -> str | None: import pyarrow.csv as pa_csv if file is None: csv_buffer = pa.BufferOutputStream() pa_csv.write_csv(self.native, csv_buffer) return csv_buffer.getvalue().to_pybytes().decode() pa_csv.write_csv(self.native, file) return None def is_unique(self) -> ArrowSeries: import numpy as np # ignore-banned-import col_token = generate_temporary_column_name(n_bytes=8, columns=self.columns) row_index = pa.array(np.arange(len(self))) keep_idx = ( self.native.append_column(col_token, row_index) .group_by(self.columns) .aggregate([(col_token, "min"), (col_token, "max")]) ) native = pa.chunked_array( [ pc.and_( pc.is_in(row_index, keep_idx[f"{col_token}_min"]), pc.is_in(row_index, keep_idx[f"{col_token}_max"]), ) ] ) return ArrowSeries.from_native(native, context=self) def unique( self, subset: Sequence[str] | None, *, keep: UniqueKeepStrategy, maintain_order: bool | None = None, order_by: Sequence[str] | None, ) -> Self: # The param `maintain_order` is only here for compatibility with the Polars API # and has no effect on the output. import numpy as np # ignore-banned-import if subset and (error := self._check_columns_exist(subset)): raise error subset = list(subset or self.columns) if keep in {"any", "first", "last"}: from narwhals._arrow.group_by import ArrowGroupBy agg_func = ArrowGroupBy._REMAP_UNIQUE[keep] col_token = generate_temporary_column_name(n_bytes=8, columns=self.columns) if order_by and maintain_order: idx_token = generate_temporary_column_name( n_bytes=8, columns=[*self.columns, col_token] ) df = ( self.with_row_index(idx_token, order_by=None) .sort(*order_by, nulls_last=False, descending=False) .unique(subset=subset, keep=keep, maintain_order=False, order_by=None) ) return df.sort(idx_token, descending=False, nulls_last=False).drop( [idx_token], strict=False ) if order_by: native = self.sort(*order_by, nulls_last=False, descending=False).native else: native = self.native keep_idx_native = ( native.append_column(col_token, pa.array(np.arange(len(self)))) .group_by(subset) .aggregate([(col_token, agg_func)]) .column(f"{col_token}_{agg_func}") ) return self._with_native( native.take(keep_idx_native), validate_column_names=False ) keep_idx = self.simple_select(*subset).is_unique() plx = self.__narwhals_namespace__() return self.filter(plx._expr._from_series(keep_idx)) def gather_every(self, n: int, offset: int) -> Self: return self._with_native(self.native[offset::n], validate_column_names=False) def to_arrow(self) -> pa.Table: return self.native def sample(self, n: int, *, with_replacement: bool, seed: int | None) -> Self: import numpy as np # ignore-banned-import rng = np.random.default_rng(seed=seed) indices = rng.choice(np.arange(n), size=n, replace=with_replacement) return self._with_native( self.native.take(pa.array(indices, type=pa.uint64())), validate_column_names=False, ) def unpivot( self, on: Sequence[str] | None, index: Sequence[str] | None, variable_name: str, value_name: str, ) -> Self: # TODO(Unassigned): Even with promote_options="permissive", pyarrow does not # upcast numeric to non-numeric (e.g. string) datatypes n = len(self) index = [] if index is None else list(index) on_ = (c for c in self.columns if c not in index) if on is None else iter(on) index_cols = self.native.select(index) column = self.native.column tables = ( index_cols.append_column(variable_name, repeat(name, n)).append_column( value_name, column(name) ) for name in on_ ) return self._with_native(concat_tables(tables, "permissive")) pivot = not_implemented() narwhals-2.26.0/src/narwhals/_arrow/expr.py000066400000000000000000000223471525000603700206550ustar00rootroot00000000000000from __future__ import annotations from typing import TYPE_CHECKING, Any, cast import pyarrow as pa import pyarrow.compute as pc from narwhals._arrow.series import ArrowSeries from narwhals._compliant import EagerExpr from narwhals._expression_parsing import evaluate_nodes, evaluate_output_names_and_aliases from narwhals._utils import ( Implementation, generate_temporary_column_name, not_implemented, ) from narwhals.functions import col as nw_col if TYPE_CHECKING: from collections.abc import Sequence from typing_extensions import Self from narwhals._arrow.dataframe import ArrowDataFrame from narwhals._arrow.namespace import ArrowNamespace from narwhals._compliant.typing import AliasNames, EvalNames, EvalSeries from narwhals._utils import Version, _LimitedContext class ArrowExpr(EagerExpr["ArrowDataFrame", ArrowSeries]): _implementation: Implementation = Implementation.PYARROW def __init__( self, call: EvalSeries[ArrowDataFrame, ArrowSeries], *, evaluate_output_names: EvalNames[ArrowDataFrame], alias_output_names: AliasNames | None, version: Version, implementation: Implementation = Implementation.PYARROW, ) -> None: self._call = call self._evaluate_output_names = evaluate_output_names self._alias_output_names = alias_output_names self._version = version @classmethod def from_column_names( cls: type[Self], evaluate_column_names: EvalNames[ArrowDataFrame], /, *, context: _LimitedContext, ) -> Self: def func(df: ArrowDataFrame) -> list[ArrowSeries]: try: return [ ArrowSeries( df.native[column_name], name=column_name, version=df._version ) for column_name in evaluate_column_names(df) ] except KeyError as e: if error := df._check_columns_exist(evaluate_column_names(df)): raise error from e raise return cls( func, evaluate_output_names=evaluate_column_names, alias_output_names=None, version=context._version, ) @classmethod def from_column_indices(cls, *column_indices: int, context: _LimitedContext) -> Self: def func(df: ArrowDataFrame) -> list[ArrowSeries]: tbl = df.native cols = df.columns return [ ArrowSeries.from_native(tbl[i], name=cols[i], context=df) for i in column_indices ] return cls( func, evaluate_output_names=cls._eval_names_indices(column_indices), alias_output_names=None, version=context._version, ) def __narwhals_namespace__(self) -> ArrowNamespace: from narwhals._arrow.namespace import ArrowNamespace return ArrowNamespace(version=self._version) def _reuse_series_extra_kwargs( self, *, returns_scalar: bool = False ) -> dict[str, Any]: return {"_return_py_scalar": False} if returns_scalar else {} def _over_without_partition_by(self, order_by: Sequence[str]) -> Self: # e.g. `nw.col('a').cum_sum().order_by(key)` # which we can always easily support, as it doesn't require grouping. assert order_by # noqa: S101 meta = self._metadata def func(df: ArrowDataFrame) -> Sequence[ArrowSeries]: token = generate_temporary_column_name(8, df.columns) df = df.with_row_index(token, order_by=None).sort( *order_by, descending=False, nulls_last=False ) results = self(df.drop([token], strict=True)) if meta is not None and meta.is_scalar_like: # We need to broadcast the results to the original size, since # `over` is a length-preserving operation. size = len(df) return [s._with_native(pa.repeat(s.item(), size)) for s in results] # TODO(marco): is there a way to do this efficiently without # doing 2 sorts? Here we're sorting the dataframe and then # again calling `sort_indices`. `ArrowSeries.scatter` would also sort. sorting_indices = pc.sort_indices(df.get_column(token).native) return [s._with_native(s.native.take(sorting_indices)) for s in results] return self.__class__( func, evaluate_output_names=self._evaluate_output_names, alias_output_names=self._alias_output_names, version=self._version, ) def over(self, partition_by: Sequence[str], order_by: Sequence[str]) -> Self: if not partition_by: assert order_by # noqa: S101 return self._over_without_partition_by(order_by) # We have something like prev.leaf().over(...) (e.g. `nw.col('a').sum().over('b')`), where: # - `prev` must be elementwise (in the example: `nw.col('a')`) # - `leaf` must be an aggregation (in the example: `sum`) # # We first evaluate `prev` as-is, and then evaluate `leaf().over(...)`` by doing a `group_by`. meta = self._metadata if partition_by and ( not meta.current_node.kind.is_scalar_like or (meta.prev is not None and not meta.prev.is_elementwise) ): msg = ( "Only elementary aggregations are supported for `.over` in PyArrow backend " "when `partition_by` is specified.\n\n" "Please see: " "https://narwhals-dev.github.io/narwhals/concepts/improve_group_by_operation/" ) raise NotImplementedError(msg) nodes = list(reversed(list(self._metadata.iter_nodes_reversed()))) def func(df: ArrowDataFrame) -> Sequence[ArrowSeries]: # noqa: PLR0914 plx = self.__narwhals_namespace__() if meta.prev is not None: df = df.with_columns(cast("ArrowExpr", evaluate_nodes(nodes[:-1], plx))) _, aliases = evaluate_output_names_and_aliases(self, df, []) leaf_ce = cast( "ArrowExpr", nw_col(*aliases)._append_node(nodes[-1])._to_compliant_expr(plx), ) else: _, aliases = evaluate_output_names_and_aliases(self, df, []) leaf_ce = self if order_by: df = df.sort(*order_by, descending=False, nulls_last=False) if overlap := set(aliases).intersection(partition_by): # E.g. `df.select(nw.all().sum().over('a'))`. This is well-defined, # we just don't support it yet. msg = ( f"Column names {overlap} appear in both expression output names and in `over` keys.\n" "This is not yet supported." ) raise NotImplementedError(msg) partition_tbl = df.simple_select(*partition_by) has_nulls = [ca.null_count > 0 for ca in partition_tbl.native.columns] if not any(has_nulls): tmp = df.group_by(partition_by, drop_null_keys=False).agg(leaf_ce) tmp = partition_tbl.join( tmp, how="left", left_on=partition_by, right_on=partition_by, suffix="_right", ) return [tmp.get_column(alias) for alias in aliases] tbl_native, current_cols = df.native, df.columns plx = self.__narwhals_namespace__() group_keys: list[str] = [] encoded_cols: list[ArrowExpr] = [] for col_name, has_null in zip(partition_tbl.columns, has_nulls, strict=False): if not has_null: group_keys.append(col_name) else: tmp_name = generate_temporary_column_name(8, current_cols) group_keys.append(tmp_name) current_cols.append(tmp_name) indices = plx._series.from_native( ( tbl_native.column(col_name) .dictionary_encode("encode") .combine_chunks() .indices # type: ignore[attr-defined] ), context=plx, name=tmp_name, ) encoded_cols.append(plx._expr._from_series(indices)) tbl_encoded = df.with_columns(*encoded_cols) windowed = tbl_encoded.group_by(group_keys, drop_null_keys=False).agg(leaf_ce) ret = tbl_encoded.simple_select(*group_keys).join( windowed, left_on=group_keys, right_on=group_keys, how="inner", suffix="_right", ) return [ret.get_column(alias) for alias in aliases] return self.__class__( func, evaluate_output_names=self._evaluate_output_names, alias_output_names=self._alias_output_names, version=self._version, ) ewm_mean = not_implemented() narwhals-2.26.0/src/narwhals/_arrow/group_by.py000066400000000000000000000217441525000603700215250ustar00rootroot00000000000000from __future__ import annotations import collections from typing import TYPE_CHECKING, Any, ClassVar import pyarrow as pa import pyarrow.compute as pc from narwhals._arrow.utils import ( BACKEND_VERSION, cast_to_comparable_string_types, extract_py_scalar, ) from narwhals._compliant import EagerGroupBy from narwhals._expression_parsing import evaluate_output_names_and_aliases from narwhals._utils import generate_temporary_column_name, requires if TYPE_CHECKING: from collections.abc import Iterator, Mapping, Sequence from narwhals._arrow.dataframe import ArrowDataFrame from narwhals._arrow.expr import ArrowExpr from narwhals._arrow.typing import ( # type: ignore[attr-defined] AggregateOptions, Aggregation, Incomplete, ) from narwhals._compliant.typing import NarwhalsAggregation from narwhals.typing import UniqueKeepStrategy class ArrowGroupBy(EagerGroupBy["ArrowDataFrame", "ArrowExpr", "Aggregation"]): _REMAP_AGGS: ClassVar[Mapping[NarwhalsAggregation, Aggregation]] = { "sum": "sum", "mean": "mean", "median": "approximate_median", "max": "max", "min": "min", "std": "stddev", "var": "variance", "len": "count", "n_unique": "count_distinct", "count": "count", "all": "all", "any": "any", "first": "first", "last": "last", "any_value": "first", } _REMAP_UNIQUE: ClassVar[Mapping[UniqueKeepStrategy, Aggregation]] = { "any": "min", "first": "min", "last": "max", } _OPTION_COUNT_ALL: ClassVar[frozenset[NarwhalsAggregation]] = frozenset( ("len", "n_unique") ) _OPTION_COUNT_VALID: ClassVar[frozenset[NarwhalsAggregation]] = frozenset(("count",)) _OPTION_ORDERED: ClassVar[frozenset[NarwhalsAggregation]] = frozenset( ("first", "last", "any_value") ) _OPTION_VARIANCE: ClassVar[frozenset[NarwhalsAggregation]] = frozenset(("std", "var")) _OPTION_SCALAR: ClassVar[frozenset[NarwhalsAggregation]] = frozenset( ("any", "all", "sum") ) def __init__( self, df: ArrowDataFrame, keys: Sequence[ArrowExpr] | Sequence[str], /, *, drop_null_keys: bool, ) -> None: self._df = df frame, self._keys, self._output_key_names = self._parse_keys(df, keys=keys) self._compliant_frame = frame.drop_nulls(self._keys) if drop_null_keys else frame self._drop_null_keys = drop_null_keys def _configure_agg( self, expr: ArrowExpr, / ) -> tuple[Aggregation, AggregateOptions | None]: option: AggregateOptions | None = None function_name = self._leaf_name(expr) kwargs = self._kwargs(expr) if function_name in self._OPTION_VARIANCE: ddof = kwargs["ddof"] option = pc.VarianceOptions(ddof=ddof) elif function_name in self._OPTION_COUNT_ALL: option = pc.CountOptions(mode="all") elif function_name in self._OPTION_COUNT_VALID: option = pc.CountOptions(mode="only_valid") elif function_name in self._OPTION_SCALAR: option = pc.ScalarAggregateOptions(min_count=0) elif function_name in self._OPTION_ORDERED: ignore_nulls = kwargs.get("ignore_nulls", False) option = pc.ScalarAggregateOptions(skip_nulls=ignore_nulls) return self._remap_expr_name(function_name), option def _configure_grouped(self, *exprs: ArrowExpr) -> pa.TableGroupBy: order_by = () use_threads = True for expr in exprs: md = next(expr._metadata.op_nodes_reversed()) if md.name not in self._OPTION_ORDERED: continue # [pyarrow-36709]: https://github.com/apache/arrow/issues/36709 use_threads = False if _current_order_by := md.kwargs.get("order_by", ()): if order_by and _current_order_by != order_by: msg = f"Only one `order_by` can be specified in `group_by`. Found both {order_by} and {_current_order_by}." raise NotImplementedError(msg) order_by = _current_order_by if not use_threads and BACKEND_VERSION < (14,): # pragma: no cover msg = ( f"Using `first/last` in a `group_by().agg(...)` context is only available in 'pyarrow>=14.0.0', " f"found version {requires._unparse_version(BACKEND_VERSION)!r}.\n\n" f"See https://github.com/apache/arrow/issues/36709" ) raise NotImplementedError(msg) if order_by: return pa.TableGroupBy( self.compliant.sort(*order_by, descending=False, nulls_last=False).native, self._keys, use_threads=use_threads, ) if not use_threads: return pa.TableGroupBy(self.compliant.native, self._keys, use_threads=False) # TODO(unassigned): combine with `return` above once PyArrow 15 is the minimum. return pa.TableGroupBy(self.compliant.native, self._keys) def agg(self, *exprs: ArrowExpr) -> ArrowDataFrame: self._ensure_all_simple(exprs) grouped = self._configure_grouped(*exprs) aggs: list[tuple[str, Aggregation, AggregateOptions | None]] = [] expected_pyarrow_column_names: list[str] = self._keys.copy() new_column_names: list[str] = self._keys.copy() exclude = (*self._keys, *self._output_key_names) for expr in exprs: output_names, aliases = evaluate_output_names_and_aliases( expr, self.compliant, exclude ) md = expr._metadata op_nodes_reversed = list(md.op_nodes_reversed()) if len(op_nodes_reversed) == 1: # e.g. `agg(nw.len())` if op_nodes_reversed[0].name != "len": # pragma: no cover msg = "Safety assertion failed, please report a bug to https://github.com/narwhals-dev/narwhals/issues" raise AssertionError(msg) new_column_names.append(aliases[0]) expected_pyarrow_column_names.append(f"{self._keys[0]}_count") aggs.append((self._keys[0], "count", pc.CountOptions(mode="all"))) continue function_name, option = self._configure_agg(expr) new_column_names.extend(aliases) expected_pyarrow_column_names.extend( [f"{output_name}_{function_name}" for output_name in output_names] ) aggs.extend( [(output_name, function_name, option) for output_name in output_names] ) result_simple = grouped.aggregate(aggs) # Rename columns, being very careful expected_old_names_indices: dict[str, list[int]] = collections.defaultdict(list) for idx, item in enumerate(expected_pyarrow_column_names): expected_old_names_indices[item].append(idx) if not ( set(result_simple.column_names) == set(expected_pyarrow_column_names) and len(result_simple.column_names) == len(expected_pyarrow_column_names) ): # pragma: no cover msg = ( f"Safety assertion failed, expected {expected_pyarrow_column_names} " f"got {result_simple.column_names}, " "please report a bug at https://github.com/narwhals-dev/narwhals/issues" ) raise AssertionError(msg) index_map: list[int] = [ expected_old_names_indices[item].pop(0) for item in result_simple.column_names ] new_column_names = [new_column_names[i] for i in index_map] result_simple = result_simple.rename_columns(new_column_names) return self.compliant._with_native(result_simple).rename( dict(zip(self._keys, self._output_key_names, strict=False)) ) def __iter__(self) -> Iterator[tuple[Any, ArrowDataFrame]]: col_token = generate_temporary_column_name( n_bytes=8, columns=self.compliant.columns ) null_token: str = "__null_token_value__" # noqa: S105 table = self.compliant.native it, separator_scalar = cast_to_comparable_string_types( *(table[key] for key in self._keys), separator="" ) # NOTE: stubs indicate `separator` must also be a `ChunkedArray` # Reality: `str` is fine concat_str: Incomplete = pc.binary_join_element_wise key_values = concat_str( *it, separator_scalar, null_handling="replace", null_replacement=null_token ) table = table.add_column(i=0, field_=col_token, column=key_values) for v in pc.unique(key_values): t = self.compliant._with_native( table.filter(pc.equal(table[col_token], v)).drop([col_token]) ) row = t.simple_select(*self._keys).row(0) yield ( tuple(extract_py_scalar(el) for el in row), t.simple_select(*self._df.columns), ) narwhals-2.26.0/src/narwhals/_arrow/namespace.py000066400000000000000000000355671525000603700216430ustar00rootroot00000000000000from __future__ import annotations import operator from functools import reduce from itertools import chain from typing import TYPE_CHECKING, Any, Literal, cast import pyarrow as pa import pyarrow.compute as pc from narwhals._arrow.dataframe import ArrowDataFrame from narwhals._arrow.expr import ArrowExpr from narwhals._arrow.selectors import ArrowSelectorNamespace from narwhals._arrow.series import ArrowSeries from narwhals._arrow.utils import build_list_array, cast_to_comparable_string_types from narwhals._compliant import EagerNamespace from narwhals._expression_parsing import ( combine_alias_output_names, combine_evaluate_output_names, ) from narwhals._utils import Implementation if TYPE_CHECKING: from collections.abc import Iterator, Sequence from narwhals._arrow.typing import ChunkedArrayAny, Incomplete, ScalarAny from narwhals._utils import Version from narwhals.typing import ( CorrelationMethod, IntoDType, NormalizedPath, PythonLiteral, ) class ArrowNamespace( EagerNamespace[ArrowDataFrame, ArrowSeries, ArrowExpr, pa.Table, "ChunkedArrayAny"] ): _implementation = Implementation.PYARROW @property def _dataframe(self) -> type[ArrowDataFrame]: return ArrowDataFrame @property def _expr(self) -> type[ArrowExpr]: return ArrowExpr @property def _series(self) -> type[ArrowSeries]: return ArrowSeries def __init__(self, *, version: Version) -> None: self._version = version def read_csv( self, source: NormalizedPath, *, separator: str = ",", **kwds: Any ) -> ArrowDataFrame: from pyarrow import csv if (parse_options := kwds.get("parse_options")) is not None: if cast("csv.ParseOptions", parse_options).delimiter != separator: msg = ( "`separator` and `parse_options.delimiter` do not match: " f"`separator`={separator} and `delimiter`={parse_options.delimiter}." ) raise TypeError(msg) else: kwds["parse_options"] = csv.ParseOptions(delimiter=separator) return self._dataframe.from_native(csv.read_csv(source, **kwds), context=self) def read_parquet(self, source: NormalizedPath, **kwds: Any) -> ArrowDataFrame: from pyarrow import parquet as pq return self._dataframe.from_native(pq.read_table(source, **kwds), context=self) def extract_native( self, *series: ArrowSeries ) -> Iterator[ChunkedArrayAny | ScalarAny]: return (s.native[0] if s._broadcast else s.native for s in series) def len(self) -> ArrowExpr: # coverage bug? this is definitely hit return self._expr( # pragma: no cover lambda df: [ ArrowSeries.from_iterable([len(df.native)], name="len", context=self) ], evaluate_output_names=lambda _df: ["len"], alias_output_names=None, version=self._version, ) def lit(self, value: PythonLiteral, dtype: IntoDType | None) -> ArrowExpr: def _lit_arrow_series(_: ArrowDataFrame) -> ArrowSeries: arrow_series = ArrowSeries.from_iterable( data=[value], name="literal", context=self ) if dtype: return arrow_series.cast(dtype) return arrow_series return self._expr( lambda df: [_lit_arrow_series(df)], evaluate_output_names=lambda _df: ["literal"], alias_output_names=None, version=self._version, ) def all_horizontal(self, *exprs: ArrowExpr, ignore_nulls: bool) -> ArrowExpr: def func(df: ArrowDataFrame) -> list[ArrowSeries]: series: Iterator[ArrowSeries] = chain.from_iterable(e(df) for e in exprs) if ignore_nulls: series = (s.fill_null(True, None, None) for s in series) return [reduce(operator.and_, series)] return self._expr._from_callable( func=func, evaluate_output_names=combine_evaluate_output_names(*exprs), alias_output_names=combine_alias_output_names(*exprs), context=self, ) def any_horizontal(self, *exprs: ArrowExpr, ignore_nulls: bool) -> ArrowExpr: def func(df: ArrowDataFrame) -> list[ArrowSeries]: series: Iterator[ArrowSeries] = chain.from_iterable(e(df) for e in exprs) if ignore_nulls: series = (s.fill_null(False, None, None) for s in series) return [reduce(operator.or_, series)] return self._expr._from_callable( func=func, evaluate_output_names=combine_evaluate_output_names(*exprs), alias_output_names=combine_alias_output_names(*exprs), context=self, ) def sum_horizontal(self, *exprs: ArrowExpr) -> ArrowExpr: def func(df: ArrowDataFrame) -> list[ArrowSeries]: it = chain.from_iterable(expr(df) for expr in exprs) series = (s.fill_null(0, strategy=None, limit=None) for s in it) return [reduce(operator.add, series)] return self._expr._from_callable( func=func, evaluate_output_names=combine_evaluate_output_names(*exprs), alias_output_names=combine_alias_output_names(*exprs), context=self, ) def mean_horizontal(self, *exprs: ArrowExpr) -> ArrowExpr: int_64 = self._version.dtypes.Int64() def func(df: ArrowDataFrame) -> list[ArrowSeries]: expr_results = tuple(chain.from_iterable(expr(df) for expr in exprs)) series = [s.fill_null(0, strategy=None, limit=None) for s in expr_results] non_na = [1 - s.is_null().cast(int_64) for s in expr_results] return [reduce(operator.add, series) / reduce(operator.add, non_na)] return self._expr._from_callable( func=func, evaluate_output_names=combine_evaluate_output_names(*exprs), alias_output_names=combine_alias_output_names(*exprs), context=self, ) def min_horizontal(self, *exprs: ArrowExpr) -> ArrowExpr: def func(df: ArrowDataFrame) -> list[ArrowSeries]: init_series, *series = tuple(chain.from_iterable(expr(df) for expr in exprs)) native_series = reduce( pc.min_element_wise, [s.native for s in series], init_series.native ) return [ ArrowSeries(native_series, name=init_series.name, version=self._version) ] return self._expr._from_callable( func=func, evaluate_output_names=combine_evaluate_output_names(*exprs), alias_output_names=combine_alias_output_names(*exprs), context=self, ) def max_horizontal(self, *exprs: ArrowExpr) -> ArrowExpr: def func(df: ArrowDataFrame) -> list[ArrowSeries]: init_series, *series = tuple(chain.from_iterable(expr(df) for expr in exprs)) native_series = reduce( pc.max_element_wise, [s.native for s in series], init_series.native ) return [ ArrowSeries(native_series, name=init_series.name, version=self._version) ] return self._expr._from_callable( func=func, evaluate_output_names=combine_evaluate_output_names(*exprs), alias_output_names=combine_alias_output_names(*exprs), context=self, ) def _concat_diagonal(self, dfs: Sequence[pa.Table], /) -> pa.Table: if self._backend_version >= (14,): return pa.concat_tables(dfs, promote_options="default") return pa.concat_tables(dfs, promote=True) # pragma: no cover def _concat_horizontal(self, dfs: Sequence[pa.Table], /) -> pa.Table: names = list(chain.from_iterable(df.column_names for df in dfs)) arrays = tuple(chain.from_iterable(df.itercolumns() for df in dfs)) return pa.Table.from_arrays(arrays, names=names) def _concat_vertical(self, dfs: Sequence[pa.Table], /) -> pa.Table: cols_0 = dfs[0].column_names for i, df in enumerate(dfs[1:], start=1): if (cols_current := df.column_names) != cols_0: msg = ( "unable to vstack, column names don't match:\n" f" - dataframe 0: {cols_0}\n" f" - dataframe {i}: {cols_current}\n" ) raise TypeError(msg) return pa.concat_tables(dfs) @property def selectors(self) -> ArrowSelectorNamespace: return ArrowSelectorNamespace.from_namespace(self) def concat_str( self, *exprs: ArrowExpr, separator: str, ignore_nulls: bool ) -> ArrowExpr: def func(df: ArrowDataFrame) -> list[ArrowSeries]: series = list(chain.from_iterable(expr(df) for expr in exprs)) name = series[0].name null_handling: Literal["skip", "emit_null"] = ( "skip" if ignore_nulls else "emit_null" ) it, separator_scalar = cast_to_comparable_string_types( *self.extract_native(*series), separator=separator ) # NOTE: stubs indicate `separator` must also be a `ChunkedArray` # Reality: `str` is fine concat_str: Incomplete = pc.binary_join_element_wise compliant = self._series( concat_str(*it, separator_scalar, null_handling=null_handling), name=name, version=self._version, ) return [compliant] return self._expr._from_callable( func=func, evaluate_output_names=combine_evaluate_output_names(*exprs), alias_output_names=combine_alias_output_names(*exprs), context=self, ) def coalesce(self, *exprs: ArrowExpr) -> ArrowExpr: def func(df: ArrowDataFrame) -> list[ArrowSeries]: align = self._series._align_full_broadcast init_series, *series = align(*chain.from_iterable(expr(df) for expr in exprs)) return [ ArrowSeries( pc.coalesce(init_series.native, *(s.native for s in series)), name=init_series.name, version=self._version, ) ] return self._expr._from_callable( func=func, evaluate_output_names=combine_evaluate_output_names(*exprs), alias_output_names=combine_alias_output_names(*exprs), context=self, ) def struct(self, *exprs: ArrowExpr) -> ArrowExpr: def func(df: ArrowDataFrame) -> list[ArrowSeries]: series = tuple(chain.from_iterable(expr(df) for expr in exprs)) name = series[0].name struct_array = pc.make_struct( *(s.native if len(s) > 1 else s.native[0] for s in series), field_names=tuple(s.name for s in series), ) result = pa.chunked_array([struct_array]) return [ArrowSeries(result, name=name, version=self._version)] return self._expr._from_callable( func=func, evaluate_output_names=combine_evaluate_output_names(*exprs), alias_output_names=combine_alias_output_names(*exprs), context=self, ) def list(self, *exprs: ArrowExpr) -> ArrowExpr: def func(df: ArrowDataFrame) -> list[ArrowSeries]: series = tuple(chain.from_iterable(expr(df) for expr in exprs)) # pa.concat_arrays requires Array, not ChunkedArray result = build_list_array([s.native.combine_chunks() for s in series]) return [ArrowSeries(result, name=series[0].name, version=self._version)] return self._expr._from_callable( func=func, evaluate_output_names=combine_evaluate_output_names(*exprs), alias_output_names=combine_alias_output_names(*exprs), context=self, ) def _if_then_else( self, when: ChunkedArrayAny, then: ChunkedArrayAny, otherwise: ChunkedArrayAny | None = None, ) -> ChunkedArrayAny: otherwise = pa.nulls(len(when), then.type) if otherwise is None else otherwise return pc.if_else(when.fill_null(pa.scalar(False)), then, otherwise) def corr(self, a: ArrowExpr, b: ArrowExpr, *, method: CorrelationMethod) -> ArrowExpr: if method != "pearson": msg = "Only 'pearson' correlation is supported for Pyarrow." raise NotImplementedError(msg) def func(df: ArrowDataFrame) -> list[ArrowSeries]: a_series = df._evaluate_single_output_expr(a) arr1 = a_series.native arr2 = df._evaluate_single_output_expr(b).native valid = pc.and_(pc.is_valid(arr1), pc.is_valid(arr2)) arr1 = pc.filter(arr1, valid) arr2 = pc.filter(arr2, valid) dev1 = pc.subtract(arr1, pc.mean(arr1)) dev2 = pc.subtract(arr2, pc.mean(arr2)) covariance = pc.mean(pc.multiply(dev1, dev2)) std1 = pc.stddev(arr1) std2 = pc.stddev(arr2) correlation = pc.divide(covariance, pc.multiply(std1, std2)) return [ ArrowSeries.from_iterable( data=[correlation], name=a_series.name, context=self ) ] return self._expr._from_callable( func=func, evaluate_output_names=combine_evaluate_output_names(a, b), alias_output_names=combine_alias_output_names(a, b), context=self, ) def cov(self, a: ArrowExpr, b: ArrowExpr, *, ddof: int) -> ArrowExpr: def func(df: ArrowDataFrame) -> list[ArrowSeries]: a_series = df._evaluate_single_output_expr(a) arr1 = a_series.native arr2 = df._evaluate_single_output_expr(b).native valid = pc.and_(pc.is_valid(arr1), pc.is_valid(arr2)) arr1 = pc.filter(arr1, valid) arr2 = pc.filter(arr2, valid) n = len(arr1) if n - ddof <= 0: # Matches pandas/Polars. A single valid pair with ddof=0 falls # through and yields 0.0, as the deviations are then zero. covariance = pa.scalar(None, type=pa.float64()) else: dev1 = pc.subtract(arr1, pc.mean(arr1)) dev2 = pc.subtract(arr2, pc.mean(arr2)) numerator = pc.sum(pc.multiply(dev1, dev2)) covariance = pc.divide(numerator, pa.scalar(n - ddof)) return [ ArrowSeries.from_iterable( data=[covariance], name=a_series.name, context=self ) ] return self._expr._from_callable( func=func, evaluate_output_names=combine_evaluate_output_names(a, b), alias_output_names=combine_alias_output_names(a, b), context=self, ) narwhals-2.26.0/src/narwhals/_arrow/selectors.py000066400000000000000000000015621525000603700216760ustar00rootroot00000000000000from __future__ import annotations from typing import TYPE_CHECKING from narwhals._arrow.expr import ArrowExpr from narwhals._compliant import CompliantSelector, EagerSelectorNamespace if TYPE_CHECKING: from narwhals._arrow.dataframe import ArrowDataFrame # noqa: F401 from narwhals._arrow.series import ArrowSeries # noqa: F401 class ArrowSelectorNamespace(EagerSelectorNamespace["ArrowDataFrame", "ArrowSeries"]): @property def _selector(self) -> type[ArrowSelector]: return ArrowSelector class ArrowSelector(CompliantSelector["ArrowDataFrame", "ArrowSeries"], ArrowExpr): # type: ignore[misc] def _to_expr(self) -> ArrowExpr: return ArrowExpr( self._call, evaluate_output_names=self._evaluate_output_names, alias_output_names=self._alias_output_names, version=self._version, ) narwhals-2.26.0/src/narwhals/_arrow/series.py000066400000000000000000001326051525000603700211700ustar00rootroot00000000000000from __future__ import annotations from typing import TYPE_CHECKING, Any, Literal, cast, overload import pyarrow as pa import pyarrow.compute as pc from narwhals._arrow.series_cat import ArrowSeriesCatNamespace from narwhals._arrow.series_dt import ArrowSeriesDateTimeNamespace from narwhals._arrow.series_list import ArrowSeriesListNamespace from narwhals._arrow.series_str import ArrowSeriesStringNamespace from narwhals._arrow.series_struct import ArrowSeriesStructNamespace from narwhals._arrow.utils import ( arange, cast_for_truediv, chunked_array, extract_native, floordiv_compat, is_array_or_scalar, lit, narwhals_to_native_dtype, native_to_narwhals_dtype, nulls_like, pad_series, sortable, zeros, ) from narwhals._compliant import EagerSeries, EagerSeriesHist from narwhals._typing_compat import assert_never from narwhals._utils import ( NO_DEFAULT, Implementation, generate_temporary_column_name, is_list_of, not_implemented, ) from narwhals.dependencies import is_numpy_array_1d from narwhals.exceptions import InvalidOperationError, ShapeError if TYPE_CHECKING: from collections.abc import Callable, Iterable, Iterator, Sequence from types import ModuleType from typing import TypeAlias import pandas as pd import polars as pl from typing_extensions import Self, TypeIs from narwhals._arrow.dataframe import ArrowDataFrame from narwhals._arrow.namespace import ArrowNamespace from narwhals._arrow.typing import ( # type: ignore[attr-defined] ArrayAny, ArrayOrChunkedArray, ArrayOrScalar, ChunkedArrayAny, Incomplete, NullPlacement, Order, ScalarAny, TieBreaker, _AsPyType, _BasicDataType, ) from narwhals._compliant.series import HistData from narwhals._typing import NoDefault from narwhals._utils import Version, _LimitedContext from narwhals.dtypes import DType from narwhals.typing import ( ClosedInterval, FillNullStrategy, Into1DArray, IntoDType, ModeKeepStrategy, NonNestedLiteral, PythonLiteral, RankMethod, RollingInterpolationMethod, SizedMultiIndexSelector, _1DArray, _2DArray, _SliceIndex, ) ArrowHistData: TypeAlias = ( "HistData[ChunkedArrayAny, list[ScalarAny] | pa.Int64Array | list[float]]" ) # TODO @dangotbanned: move into `_arrow.utils` # Lots of modules are importing inline @overload def maybe_extract_py_scalar( value: pa.Scalar[_BasicDataType[_AsPyType]], return_py_scalar: bool, # noqa: FBT001 ) -> _AsPyType: ... @overload def maybe_extract_py_scalar( value: pa.Scalar[pa.StructType], return_py_scalar: bool, # noqa: FBT001 ) -> list[dict[str, Any]]: ... @overload def maybe_extract_py_scalar( value: pa.Scalar[pa.ListType[_BasicDataType[_AsPyType]]], return_py_scalar: bool, # noqa: FBT001 ) -> list[_AsPyType]: ... @overload def maybe_extract_py_scalar( value: pa.Scalar[Any] | Any, return_py_scalar: bool, # noqa: FBT001 ) -> Any: ... def maybe_extract_py_scalar(value: Any, return_py_scalar: bool) -> Any: # noqa: FBT001 if TYPE_CHECKING: return value.as_py() if return_py_scalar: return getattr(value, "as_py", lambda: value)() return value class ArrowSeries(EagerSeries["ChunkedArrayAny"]): _implementation = Implementation.PYARROW def __init__( self, native_series: ChunkedArrayAny, *, name: str, version: Version ) -> None: self._name = name self._native_series: ChunkedArrayAny = native_series self._version = version self._broadcast = False @property def native(self) -> ChunkedArrayAny: return self._native_series def _with_version(self, version: Version) -> Self: return self.__class__(self.native, name=self._name, version=version) def _with_native( self, series: ArrayOrScalar, *, preserve_broadcast: bool = False ) -> Self: result = self.from_native(chunked_array(series), name=self.name, context=self) if preserve_broadcast: result._broadcast = self._broadcast return result def _with_binary(self, op: Callable[..., ArrayOrScalar], other: Any) -> Self: ser, other_native = extract_native(self, other) preserve_broadcast = self._broadcast and getattr(other, "_broadcast", True) return self._with_native( op(ser, other_native), preserve_broadcast=preserve_broadcast ).alias(self.name) def _with_binary_right(self, op: Callable[..., ArrayOrScalar], other: Any) -> Self: return self._with_binary(lambda x, y: op(y, x), other).alias(self.name) @classmethod def from_iterable( cls, data: Iterable[Any], *, context: _LimitedContext, name: str = "", dtype: IntoDType | None = None, ) -> Self: version = context._version if dtype is not None: dtype_pa: pa.DataType | None = narwhals_to_native_dtype(dtype, version) if is_array_or_scalar(data): data = data.cast(dtype_pa) dtype_pa = None native = data if cls._is_native(data) else chunked_array([data], dtype_pa) else: native = chunked_array([data]) return cls.from_native(native, context=context, name=name) def _from_scalar(self, value: Any) -> Self: if hasattr(value, "as_py"): value = value.as_py() return super()._from_scalar(value) @staticmethod def _is_native(obj: ChunkedArrayAny | Any) -> TypeIs[ChunkedArrayAny]: return isinstance(obj, pa.ChunkedArray) @classmethod def from_native( cls, data: ChunkedArrayAny, /, *, context: _LimitedContext, name: str = "" ) -> Self: return cls(data, version=context._version, name=name) @classmethod def from_numpy(cls, data: Into1DArray, /, *, context: _LimitedContext) -> Self: return cls.from_iterable( data if is_numpy_array_1d(data) else [data], context=context ) @classmethod def _align_full_broadcast(cls, *series: Self) -> Sequence[Self]: lengths = [len(s) for s in series] target_length = max( length for length, s in zip(lengths, series, strict=False) if not s._broadcast ) fast_path = all(_len == target_length for _len in lengths) if fast_path: return series reshaped = [] for s in series: if s._broadcast: compliant = s._with_native(pa.repeat(s.native[0], target_length)) elif (actual_len := len(s)) != target_length: msg = f"Expected object of length {target_length}, got {actual_len}." raise ShapeError(msg) else: compliant = s reshaped.append(compliant) return reshaped def __narwhals_namespace__(self) -> ArrowNamespace: from narwhals._arrow.namespace import ArrowNamespace return ArrowNamespace(version=self._version) def __eq__(self, other: object) -> Self: # type: ignore[override] return self._with_binary(pc.equal, other) def __ne__(self, other: object) -> Self: # type: ignore[override] return self._with_binary(pc.not_equal, other) def __ge__(self, other: Any) -> Self: return self._with_binary(pc.greater_equal, other) def __gt__(self, other: Any) -> Self: return self._with_binary(pc.greater, other) def __le__(self, other: Any) -> Self: return self._with_binary(pc.less_equal, other) def __lt__(self, other: Any) -> Self: return self._with_binary(pc.less, other) def __and__(self, other: Any) -> Self: return self._with_binary(pc.and_kleene, other) def __rand__(self, other: Any) -> Self: return self._with_binary_right(pc.and_kleene, other) def __or__(self, other: Any) -> Self: return self._with_binary_right(pc.or_kleene, other) def __ror__(self, other: Any) -> Self: return self._with_binary_right(pc.or_kleene, other) def __add__(self, other: Any) -> Self: return self._with_binary(pc.add, other) def __radd__(self, other: Any) -> Self: return self._with_binary_right(pc.add, other) def __sub__(self, other: Any) -> Self: return self._with_binary(pc.subtract, other) def __rsub__(self, other: Any) -> Self: return self._with_binary_right(pc.subtract, other) def __mul__(self, other: Any) -> Self: return self._with_binary(pc.multiply, other) def __rmul__(self, other: Any) -> Self: return self._with_binary_right(pc.multiply, other) def __pow__(self, other: Any) -> Self: return self._with_binary(pc.power, other) def __rpow__(self, other: Any) -> Self: return self._with_binary_right(pc.power, other) def __floordiv__(self, other: Any) -> Self: return self._with_binary(floordiv_compat, other) def __rfloordiv__(self, other: Any) -> Self: return self._with_binary_right(floordiv_compat, other) def __truediv__(self, other: Any) -> Self: return self._with_binary(lambda x, y: pc.divide(*cast_for_truediv(x, y)), other) def __rtruediv__(self, other: Any) -> Self: return self._with_binary_right( lambda x, y: pc.divide(*cast_for_truediv(x, y)), other ) def __mod__(self, other: Any) -> Self: preserve_broadcast = self._broadcast and getattr(other, "_broadcast", True) floor_div = (self // other).native ser, other = extract_native(self, other) res = pc.subtract(ser, pc.multiply(floor_div, other)) return self._with_native(res, preserve_broadcast=preserve_broadcast) def __rmod__(self, other: Any) -> Self: preserve_broadcast = self._broadcast and getattr(other, "_broadcast", True) floor_div = (other // self).native ser, other = extract_native(self, other) res = pc.subtract(other, pc.multiply(floor_div, ser)) return self._with_native(res, preserve_broadcast=preserve_broadcast) def __invert__(self) -> Self: return self._with_native(pc.invert(self.native), preserve_broadcast=True) def __neg__(self) -> Self: return self._with_native(pc.negate(self.native), preserve_broadcast=True) @property def _type(self) -> pa.DataType: return self.native.type def len(self, *, _return_py_scalar: bool = True) -> int: return maybe_extract_py_scalar(len(self.native), _return_py_scalar) def filter(self, predicate: ArrowSeries | list[bool | None]) -> Self: other_native: Any if not is_list_of(predicate, bool): _, other_native = extract_native(self, predicate) else: other_native = predicate return self._with_native(self.native.filter(other_native)) def first(self, *, _return_py_scalar: bool = True) -> PythonLiteral: result = self.native[0] if len(self.native) else None return maybe_extract_py_scalar(result, _return_py_scalar) def last(self, *, _return_py_scalar: bool = True) -> PythonLiteral: ca = self.native result = ca[height - 1] if (height := len(ca)) else None return maybe_extract_py_scalar(result, _return_py_scalar) def mean(self, *, _return_py_scalar: bool = True) -> float: return maybe_extract_py_scalar(pc.mean(self.native), _return_py_scalar) def median(self, *, _return_py_scalar: bool = True) -> float: if not self.dtype.is_numeric(): msg = "`median` operation not supported for non-numeric input type." raise InvalidOperationError(msg) return maybe_extract_py_scalar( pc.quantile(self.native, q=0.5, interpolation="linear")[0], _return_py_scalar ) def min(self, *, _return_py_scalar: bool = True) -> Any: return maybe_extract_py_scalar(pc.min(self.native), _return_py_scalar) def max(self, *, _return_py_scalar: bool = True) -> Any: return maybe_extract_py_scalar(pc.max(self.native), _return_py_scalar) def arg_min(self, *, _return_py_scalar: bool = True) -> int: index_min = pc.index(self.native, pc.min(self.native)) return maybe_extract_py_scalar(index_min, _return_py_scalar) def arg_max(self, *, _return_py_scalar: bool = True) -> int: index_max = pc.index(self.native, pc.max(self.native)) return maybe_extract_py_scalar(index_max, _return_py_scalar) def sum(self, *, _return_py_scalar: bool = True) -> float: return maybe_extract_py_scalar( pc.sum(self.native, min_count=0), _return_py_scalar ) def drop_nulls(self) -> Self: return self._with_native(self.native.drop_null()) def shift(self, n: int) -> Self: if n == 0: return self._with_native(self.native) length = len(self.native) # Cap the number of null padding values at the length of the series: # shifting by at least the length must still return a series of the # same length (all null), and must not desync the array lengths that # rolling windows rely on. null_array = nulls_like(min(abs(n), length), self) if abs(n) >= length: # Every value is shifted out, so the result is all null; return it # directly and skip the slice and concat. return self._with_native(null_array) if n > 0: arrays = [null_array, *self.native[:-n].chunks] else: arrays = [*self.native[-n:].chunks, null_array] return self._with_native(pa.concat_arrays(arrays)) def std(self, *, ddof: int, _return_py_scalar: bool = True) -> float: return maybe_extract_py_scalar( pc.stddev(self.native, ddof=ddof), _return_py_scalar ) def var(self, *, ddof: int, _return_py_scalar: bool = True) -> float: return maybe_extract_py_scalar( pc.variance(self.native, ddof=ddof), _return_py_scalar ) def skew(self, *, _return_py_scalar: bool = True) -> float | None: ser_not_null = self.native.drop_null() if len(ser_not_null) == 0: return None if len(ser_not_null) == 1: return float("nan") if len(ser_not_null) == 2: return 0.0 m = pc.subtract(ser_not_null, pc.mean(ser_not_null)) m2 = pc.mean(pc.power(m, lit(2))) m3 = pc.mean(pc.power(m, lit(3))) biased_population_skewness = pc.divide(m3, pc.power(m2, lit(1.5))) return maybe_extract_py_scalar(biased_population_skewness, _return_py_scalar) def kurtosis(self, *, _return_py_scalar: bool = True) -> float | None: ser_not_null = self.native.drop_null() if len(ser_not_null) == 0: return None if len(ser_not_null) == 1: return float("nan") m = pc.subtract(ser_not_null, pc.mean(ser_not_null)) m2 = pc.mean(pc.power(m, lit(2))) m4 = pc.mean(pc.power(m, lit(4))) k = pc.subtract(pc.divide(m4, pc.power(m2, lit(2))), lit(3)) return maybe_extract_py_scalar(k, _return_py_scalar) def count(self, *, _return_py_scalar: bool = True) -> int: return maybe_extract_py_scalar(pc.count(self.native), _return_py_scalar) def n_unique(self, *, _return_py_scalar: bool = True) -> int: return maybe_extract_py_scalar( pc.count(self.native.unique(), mode="all"), _return_py_scalar ) def __native_namespace__(self) -> ModuleType: if self._implementation is Implementation.PYARROW: return self._implementation.to_native_namespace() msg = f"Expected pyarrow, got: {type(self._implementation)}" # pragma: no cover raise AssertionError(msg) @property def name(self) -> str: return self._name def _gather(self, rows: SizedMultiIndexSelector[ChunkedArrayAny]) -> Self: if len(rows) == 0: return self._with_native(self.native.slice(0, 0)) if self._backend_version < (18,) and isinstance(rows, tuple): rows = list(rows) return self._with_native(self.native.take(rows)) def _gather_slice(self, rows: _SliceIndex | range) -> Self: start = rows.start or 0 stop = rows.stop if rows.stop is not None else len(self.native) if start < 0: start = len(self.native) + start if stop < 0: stop = len(self.native) + stop if rows.step is not None and rows.step != 1: msg = "Slicing with step is not supported on PyArrow tables" raise NotImplementedError(msg) return self._with_native(self.native.slice(start, stop - start)) def scatter(self, indices: Self, values: Self) -> Self: mask = pc.is_in(arange(start=0, end=len(self), step=1), indices.native) sorted_indices = pc.sort_indices(indices.native) replacements = values.native.take(sorted_indices).combine_chunks() return self._with_native(pc.replace_with_mask(self.native, mask, replacements)) def to_list(self) -> list[Any]: return self.native.to_pylist() def __array__(self, dtype: Any = None, *, copy: bool | None = None) -> _1DArray: return self.native.__array__(dtype=dtype, copy=copy) def to_numpy(self, dtype: Any = None, *, copy: bool | None = None) -> _1DArray: return self.native.to_numpy() def alias(self, name: str) -> Self: ret = self.__class__(self.native, name=name, version=self._version) ret._broadcast = self._broadcast return ret @property def dtype(self) -> DType: return native_to_narwhals_dtype(self.native.type, self._version) def abs(self) -> Self: return self._with_native(pc.abs(self.native)) def cum_sum(self, *, reverse: bool) -> Self: cum_sum = pc.cumulative_sum result = ( cum_sum(self.native, skip_nulls=True) if not reverse else cum_sum(self.native[::-1], skip_nulls=True)[::-1] ) return self._with_native(result) def round(self, decimals: int) -> Self: return self._with_native( pc.round(self.native, decimals, round_mode="half_towards_infinity") ) def floor(self) -> Self: return self._with_native(pc.floor(self.native)) def ceil(self) -> Self: return self._with_native(pc.ceil(self.native)) def diff(self) -> Self: return self._with_native(pc.pairwise_diff(self.native.combine_chunks())) def any(self, *, _return_py_scalar: bool = True) -> bool: return maybe_extract_py_scalar( pc.any(self.native, min_count=0), _return_py_scalar ) def all(self, *, _return_py_scalar: bool = True) -> bool: return maybe_extract_py_scalar( pc.all(self.native, min_count=0), _return_py_scalar ) def is_between( self, lower_bound: Any, upper_bound: Any, closed: ClosedInterval ) -> Self: _, lower_bound = extract_native(self, lower_bound) _, upper_bound = extract_native(self, upper_bound) if closed == "left": ge = pc.greater_equal(self.native, lower_bound) lt = pc.less(self.native, upper_bound) res = pc.and_kleene(ge, lt) elif closed == "right": gt = pc.greater(self.native, lower_bound) le = pc.less_equal(self.native, upper_bound) res = pc.and_kleene(gt, le) elif closed == "none": gt = pc.greater(self.native, lower_bound) lt = pc.less(self.native, upper_bound) res = pc.and_kleene(gt, lt) elif closed == "both": ge = pc.greater_equal(self.native, lower_bound) le = pc.less_equal(self.native, upper_bound) res = pc.and_kleene(ge, le) else: assert_never(closed) return self._with_native(res) def is_null(self) -> Self: return self._with_native(self.native.is_null(), preserve_broadcast=True) def is_nan(self) -> Self: return self._with_native(pc.is_nan(self.native), preserve_broadcast=True) def cast(self, dtype: IntoDType) -> Self: data_type = narwhals_to_native_dtype(dtype, self._version) return self._with_native(pc.cast(self.native, data_type), preserve_broadcast=True) def null_count(self, *, _return_py_scalar: bool = True) -> int: return maybe_extract_py_scalar(self.native.null_count, _return_py_scalar) def head(self, n: int) -> Self: if n >= 0: return self._with_native(self.native.slice(0, n)) num_rows = len(self) return self._with_native(self.native.slice(0, max(0, num_rows + n))) def tail(self, n: int) -> Self: if n >= 0: num_rows = len(self) return self._with_native(self.native.slice(max(0, num_rows - n))) return self._with_native(self.native.slice(abs(n))) def is_in(self, other: Any) -> Self: if self._is_native(other): value_set: ArrayOrChunkedArray = other else: value_set = pa.array(other) native = self.native is_in = pc.is_in(native, value_set=value_set) return self._with_native(pc.if_else(native.is_null(), None, is_in)) def arg_true(self) -> Self: import numpy as np # ignore-banned-import res = np.flatnonzero(self.native) return self.from_iterable(res, name=self.name, context=self) def item(self, index: int | None = None) -> Any: if index is None: if len(self) != 1: msg = ( "can only call '.item()' if the Series is of length 1," f" or an explicit index is provided (Series is of length {len(self)})" ) raise ValueError(msg) return maybe_extract_py_scalar(self.native[0], return_py_scalar=True) return maybe_extract_py_scalar(self.native[index], return_py_scalar=True) def value_counts( self, *, sort: bool, parallel: bool, name: str | None, normalize: bool ) -> ArrowDataFrame: """Parallel is unused, exists for compatibility.""" from narwhals._arrow.dataframe import ArrowDataFrame index_name_ = "index" if self._name is None else self._name value_name_ = name or ("proportion" if normalize else "count") val_counts = pc.value_counts(self.native) values = val_counts.field("values") counts = val_counts.field("counts") if normalize: counts = pc.divide(*cast_for_truediv(counts, pc.sum(counts))) arrays = values, counts val_count = pa.Table.from_arrays(arrays, names=[index_name_, value_name_]) if sort: val_count = val_count.sort_by([(value_name_, "descending")]) return ArrowDataFrame( val_count, version=self._version, validate_column_names=True ) def zip_with(self, mask: Self, other: Self) -> Self: cond = mask.native.combine_chunks() return self._with_native(pc.if_else(cond, self.native, other.native)) def sample(self, n: int, *, with_replacement: bool, seed: int | None) -> Self: import numpy as np # ignore-banned-import rng = np.random.default_rng(seed=seed) indices = rng.choice(np.arange(n), size=n, replace=with_replacement) return self._with_native(self.native.take(pa.array(indices, type=pa.uint64()))) def fill_nan(self, value: float | None) -> Self: result = pc.if_else(pc.is_nan(self.native), value, self.native) return self._with_native(result, preserve_broadcast=True) def fill_null( self, value: Self | NonNestedLiteral, strategy: FillNullStrategy | None, limit: int | None, ) -> Self: def fill_null_forward_limit(arr: ChunkedArrayAny, limit: int) -> ArrayAny: # this algorithm first finds the indices of the valid values to fill all the null value positions # then it calculates the distance of each new index and the original index # if the distance is equal to or less than the limit and the original value is null, it is replaced sentinel = lit(-1) is_not_null = pc.is_valid(arr) index = arange(0, len(arr), 1) index_not_null = pc.cumulative_max(pc.if_else(is_not_null, index, sentinel)) # NOTE: The correction here is for nulls at either end of the array # They should be preserved when the `strategy` would need an out-of-bounds index not_oob = pc.not_equal(index_not_null, sentinel) index_not_null = pc.if_else(not_oob, index_not_null, None) beyond_limit = pc.greater(pc.subtract(index, index_not_null), lit(limit)) return pc.if_else( pc.or_(is_not_null, beyond_limit), arr, arr.take(index_not_null) ) native = self.native if value is not None: _, native_value = extract_native(self, value) series: ArrayOrScalar = pc.fill_null(native, native_value) elif limit is None: series = ( pc.fill_null_forward(native) if strategy == "forward" else pc.fill_null_backward(native) ) else: series = ( fill_null_forward_limit(native, limit) if strategy == "forward" else fill_null_forward_limit(native[::-1], limit)[::-1] ) return self._with_native(series, preserve_broadcast=True) def to_frame(self) -> ArrowDataFrame: from narwhals._arrow.dataframe import ArrowDataFrame df = pa.Table.from_arrays([self.native], names=[self.name]) return ArrowDataFrame(df, version=self._version, validate_column_names=False) def to_pandas(self) -> pd.Series[Any]: import pandas as pd # ignore-banned-import() # NOTE: `pandas-stubs` doesn't know `pd.Series` accepts arrow-native input return pd.Series(self.native, name=self.name) # pyright: ignore[reportCallIssue, reportArgumentType] def to_polars(self) -> pl.Series: import polars as pl # ignore-banned-import return cast("pl.Series", pl.from_arrow(self.native)) def is_unique(self) -> ArrowSeries: return self.to_frame().is_unique().alias(self.name) def is_first_distinct(self) -> Self: import numpy as np # ignore-banned-import row_number = pa.array(np.arange(len(self))) col_token = generate_temporary_column_name(n_bytes=8, columns=[self.name]) first_distinct_index = ( pa.Table.from_arrays([self.native], names=[self.name]) .append_column(col_token, row_number) .group_by(self.name) .aggregate([(col_token, "min")]) .column(f"{col_token}_min") ) return self._with_native(pc.is_in(row_number, first_distinct_index)) def is_last_distinct(self) -> Self: import numpy as np # ignore-banned-import row_number = pa.array(np.arange(len(self))) col_token = generate_temporary_column_name(n_bytes=8, columns=[self.name]) last_distinct_index = ( pa.Table.from_arrays([self.native], names=[self.name]) .append_column(col_token, row_number) .group_by(self.name) .aggregate([(col_token, "max")]) .column(f"{col_token}_max") ) return self._with_native(pc.is_in(row_number, last_distinct_index)) def is_sorted(self, *, descending: bool) -> bool: if not isinstance(descending, bool): msg = f"argument 'descending' should be boolean, found {type(descending)}" raise TypeError(msg) if descending: result = pc.all(pc.greater_equal(self.native[:-1], self.native[1:])) else: result = pc.all(pc.less_equal(self.native[:-1], self.native[1:])) return maybe_extract_py_scalar(result, return_py_scalar=True) def unique(self, *, maintain_order: bool = True) -> Self: # TODO(marco): `pc.unique` seems to always maintain order, is that guaranteed? return self._with_native(self.native.unique()) def replace_strict( self, default: Any | NoDefault, old: Sequence[Any], new: Sequence[Any], *, return_dtype: IntoDType | None, ) -> Self: # https://stackoverflow.com/a/79111029/4451315 idxs = pc.index_in(self.native, pa.array(old)) # Tracks which values were found in the mapping (even if mapped to None) was_matched = pc.is_valid(idxs) result_native = pc.take(pa.array(new), idxs) if return_dtype is not None: result_native = result_native.cast( narwhals_to_native_dtype(return_dtype, self._version) ) result = self._with_native(result_native) if default is NO_DEFAULT: # Check that all non-null input values were matched # (result may have more nulls if mapping contains {value: None}) unmatched_mask = pc.and_(pc.is_valid(self.native), pc.invert(was_matched)) if maybe_extract_py_scalar( pc.any(unmatched_mask, min_count=0), return_py_scalar=True ): unmatched_values = ( self.filter(self._with_native(unmatched_mask)) .unique(maintain_order=False) .to_list() ) msg = ( "replace_strict did not replace all non-null values.\n\n" f"The following did not get replaced: {unmatched_values}" ) raise InvalidOperationError(msg) else: result_native, default = extract_native(result, default) # Only fill with default where the value wasn't matched (not where result is null due to mapping) # If was_matched, keep result.native; otherwise use default result = self._with_native(pc.if_else(was_matched, result.native, default)) return result def sort(self, *, descending: bool, nulls_last: bool) -> Self: order: Order = "descending" if descending else "ascending" null_placement: NullPlacement = "at_end" if nulls_last else "at_start" sorted_indices = pc.array_sort_indices( sortable(self.native), order=order, null_placement=null_placement ) return self._with_native(self.native.take(sorted_indices)) def to_dummies(self, *, separator: str, drop_first: bool) -> ArrowDataFrame: import numpy as np # ignore-banned-import from narwhals._arrow.dataframe import ArrowDataFrame name = self._name # NOTE: stub is missing attributes (https://arrow.apache.org/docs/python/generated/pyarrow.DictionaryArray.html) da: Incomplete = self.native.combine_chunks().dictionary_encode("encode") columns: _2DArray = np.zeros((len(da.dictionary), len(da)), np.int8) columns[da.indices, np.arange(len(da))] = 1 null_col_pa, null_col_pl = f"{name}{separator}None", f"{name}{separator}null" cols = [ {null_col_pa: null_col_pl}.get( f"{name}{separator}{v}", f"{name}{separator}{v}" ) for v in da.dictionary ] output_order = ( [ null_col_pl, *sorted([c for c in cols if c != null_col_pl])[int(drop_first) :], ] if null_col_pl in cols else sorted(cols)[int(drop_first) :] ) return ArrowDataFrame( pa.Table.from_arrays(columns, names=cols), version=self._version, validate_column_names=True, ).simple_select(*output_order) def quantile( self, quantile: float, interpolation: RollingInterpolationMethod, *, _return_py_scalar: bool = True, ) -> float: return maybe_extract_py_scalar( pc.quantile(self.native, q=quantile, interpolation=interpolation)[0], _return_py_scalar, ) def gather_every(self, n: int, offset: int = 0) -> Self: return self._with_native(self.native[offset::n]) def clip(self, lower_bound: Self, upper_bound: Self) -> Self: _, lower = extract_native(self, lower_bound) _, upper = extract_native(self, upper_bound) return self._with_native( pc.max_element_wise( pc.min_element_wise(self.native, upper, skip_nulls=False), lower, skip_nulls=False, ) ) def clip_lower(self, lower_bound: Self) -> Self: _, lower = extract_native(self, lower_bound) return self._with_native( pc.max_element_wise(self.native, lower, skip_nulls=False) ) def clip_upper(self, upper_bound: Self) -> Self: _, upper = extract_native(self, upper_bound) return self._with_native( pc.min_element_wise(self.native, upper, skip_nulls=False) ) def to_arrow(self) -> ArrayAny: return self.native.combine_chunks() def mode(self, *, keep: ModeKeepStrategy) -> ArrowSeries: plx = self.__narwhals_namespace__() col_token = generate_temporary_column_name(n_bytes=8, columns=[self.name]) counts = self.value_counts( name=col_token, normalize=False, sort=False, parallel=False ) result = counts.filter( plx.col(col_token) == plx.col(col_token).max().broadcast() ).get_column(self.name) return result.head(1) if keep == "any" else result def is_finite(self) -> Self: return self._with_native(pc.is_finite(self.native)) def cum_count(self, *, reverse: bool) -> Self: dtypes = self._version.dtypes return (~self.is_null()).cast(dtypes.UInt32()).cum_sum(reverse=reverse) def cum_min(self, *, reverse: bool) -> Self: result = ( pc.cumulative_min(self.native, skip_nulls=True) if not reverse else pc.cumulative_min(self.native[::-1], skip_nulls=True)[::-1] ) return self._with_native(result) def cum_max(self, *, reverse: bool) -> Self: result = ( pc.cumulative_max(self.native, skip_nulls=True) if not reverse else pc.cumulative_max(self.native[::-1], skip_nulls=True)[::-1] ) return self._with_native(result) def cum_prod(self, *, reverse: bool) -> Self: result = ( pc.cumulative_prod(self.native, skip_nulls=True) if not reverse else pc.cumulative_prod(self.native[::-1], skip_nulls=True)[::-1] ) return self._with_native(result) def rolling_sum(self, window_size: int, *, min_samples: int, center: bool) -> Self: min_samples = min_samples if min_samples is not None else window_size padded_series, offset = pad_series(self, window_size=window_size, center=center) cum_sum = padded_series.cum_sum(reverse=False).fill_null( value=None, strategy="forward", limit=None ) rolling_sum = ( cum_sum - cum_sum.shift(window_size).fill_null(value=0, strategy=None, limit=None) if window_size != 0 else cum_sum ) valid_count = padded_series.cum_count(reverse=False) count_in_window = valid_count - valid_count.shift(window_size).fill_null( value=0, strategy=None, limit=None ) result = self._with_native( pc.if_else((count_in_window >= min_samples).native, rolling_sum.native, None) ) return result._gather_slice(slice(offset, None)) def rolling_mean(self, window_size: int, *, min_samples: int, center: bool) -> Self: min_samples = min_samples if min_samples is not None else window_size padded_series, offset = pad_series(self, window_size=window_size, center=center) cum_sum = padded_series.cum_sum(reverse=False).fill_null( value=None, strategy="forward", limit=None ) rolling_sum = ( cum_sum - cum_sum.shift(window_size).fill_null(value=0, strategy=None, limit=None) if window_size != 0 else cum_sum ) valid_count = padded_series.cum_count(reverse=False) count_in_window = valid_count - valid_count.shift(window_size).fill_null( value=0, strategy=None, limit=None ) result = ( self._with_native( pc.if_else( (count_in_window >= min_samples).native, rolling_sum.native, None ) ) / count_in_window ) return result._gather_slice(slice(offset, None)) def rolling_var( self, window_size: int, *, min_samples: int, center: bool, ddof: int ) -> Self: min_samples = min_samples if min_samples is not None else window_size padded_series, offset = pad_series(self, window_size=window_size, center=center) cum_sum = padded_series.cum_sum(reverse=False).fill_null( value=None, strategy="forward", limit=None ) rolling_sum = ( cum_sum - cum_sum.shift(window_size).fill_null(value=0, strategy=None, limit=None) if window_size != 0 else cum_sum ) cum_sum_sq = ( pow(padded_series, 2) .cum_sum(reverse=False) .fill_null(value=None, strategy="forward", limit=None) ) rolling_sum_sq = ( cum_sum_sq - cum_sum_sq.shift(window_size).fill_null(value=0, strategy=None, limit=None) if window_size != 0 else cum_sum_sq ) valid_count = padded_series.cum_count(reverse=False) count_in_window = valid_count - valid_count.shift(window_size).fill_null( value=0, strategy=None, limit=None ) result = self._with_native( pc.if_else( (count_in_window >= min_samples).native, (rolling_sum_sq - (rolling_sum**2 / count_in_window)).native, None, ) ) / self._with_native(pc.max_element_wise((count_in_window - ddof).native, 0)) return result._gather_slice(slice(offset, None, None)) def rolling_std( self, window_size: int, *, min_samples: int, center: bool, ddof: int ) -> Self: return ( self.rolling_var( window_size=window_size, min_samples=min_samples, center=center, ddof=ddof ) ** 0.5 ) def rank(self, method: RankMethod, *, descending: bool) -> Self: if method == "average": msg = ( "`rank` with `method='average' is not supported for pyarrow backend. " "The available methods are {'min', 'max', 'dense', 'ordinal'}." ) raise ValueError(msg) sort_keys: Order = "descending" if descending else "ascending" tiebreaker: TieBreaker = "first" if method == "ordinal" else method native_series: ArrayOrChunkedArray sortable_series = sortable(self.native) if self._backend_version < (14, 0, 0): # pragma: no cover native_series = sortable_series.combine_chunks() else: native_series = sortable_series null_mask = pc.is_null(native_series) rank = pc.rank(native_series, sort_keys=sort_keys, tiebreaker=tiebreaker) result = pc.if_else(null_mask, lit(None, rank.type), rank) return self._with_native(result) def hist_from_bins( self, bins: list[float], *, include_breakpoint: bool ) -> ArrowDataFrame: return ( _ArrowHist.from_series(self, include_breakpoint=include_breakpoint) .with_bins(bins) .to_frame() ) def hist_from_bin_count( self, bin_count: int, *, include_breakpoint: bool ) -> ArrowDataFrame: return ( _ArrowHist.from_series(self, include_breakpoint=include_breakpoint) .with_bin_count(bin_count) .to_frame() ) def __iter__(self) -> Iterator[Any]: for x in self.native: yield maybe_extract_py_scalar(x, return_py_scalar=True) def __contains__(self, other: Any) -> bool: from pyarrow import ( ArrowInvalid, # ignore-banned-imports ArrowNotImplementedError, # ignore-banned-imports ArrowTypeError, # ignore-banned-imports ) try: other_ = lit(other) if other is not None else lit(None, type=self._type) return maybe_extract_py_scalar( pc.is_in(other_, self.native), return_py_scalar=True ) except (ArrowInvalid, ArrowNotImplementedError, ArrowTypeError) as exc: msg = f"Unable to compare other of type {type(other)} with series of type {self.dtype}." raise InvalidOperationError(msg) from exc def log(self, base: float) -> Self: return self._with_native(pc.logb(self.native, lit(base))) def exp(self) -> Self: return self._with_native(pc.exp(self.native)) def sqrt(self) -> Self: return self._with_native(pc.sqrt(self.native)) def sin(self) -> Self: return self._with_native(pc.sin(self.native)) def cos(self) -> Self: return self._with_native(pc.cos(self.native)) def any_value( self, *, ignore_nulls: bool, _return_py_scalar: bool = True ) -> PythonLiteral: return self.drop_nulls().first() if ignore_nulls else self.first() @property def dt(self) -> ArrowSeriesDateTimeNamespace: return ArrowSeriesDateTimeNamespace(self) @property def cat(self) -> ArrowSeriesCatNamespace: return ArrowSeriesCatNamespace(self) @property def str(self) -> ArrowSeriesStringNamespace: return ArrowSeriesStringNamespace(self) @property def list(self) -> ArrowSeriesListNamespace: return ArrowSeriesListNamespace(self) @property def struct(self) -> ArrowSeriesStructNamespace: return ArrowSeriesStructNamespace(self) ewm_mean = not_implemented() class _ArrowHist( EagerSeriesHist["ChunkedArrayAny", "list[ScalarAny] | pa.Int64Array | list[float]"] ): _series: ArrowSeries def to_frame(self) -> ArrowDataFrame: # NOTE: Constructor typing is too strict for `TypedDict` table: Incomplete = pa.Table.from_pydict from_native = self._series.__narwhals_namespace__()._dataframe.from_native return from_native(table(self._data), context=self._series) # NOTE: *Could* be handled at narwhals-level def is_empty_series(self) -> bool: # NOTE: `ChunkedArray.combine_chunks` returns the concrete array type # Stubs say `Array[pa.BooleanScalar]`, which is missing properties # https://github.com/zen-xu/pyarrow-stubs/blob/6bedee748bc74feb8513b24bf43d64b24c7fddc8/pyarrow-stubs/__lib_pxi/array.pyi#L2395-L2399 is_null = self.native.is_null(nan_is_null=True) arr = cast("pa.BooleanArray", is_null.combine_chunks()) return arr.false_count == 0 # NOTE: *Could* be handled at narwhals-level, **iff** we add `nw.repeat`, `nw.linear_space` # See https://github.com/narwhals-dev/narwhals/pull/2839#discussion_r2215630696 def series_empty(self, arg: int | list[float], /) -> ArrowHistData: count = self._zeros(arg) if self._breakpoint: return {"breakpoint": self._calculate_breakpoint(arg), "count": count} return {"count": count} def _zeros(self, arg: int | list[float], /) -> pa.Int64Array: return zeros(arg) if isinstance(arg, int) else zeros(len(arg) - 1) def _linear_space( self, start: float, end: float, num_samples: int, *, closed: Literal["both", "none"] = "both", ) -> _1DArray: from numpy import linspace # ignore-banned-import return linspace(start=start, stop=end, num=num_samples, endpoint=closed == "both") def _calculate_bins(self, bin_count: int) -> _1DArray: """Prepare bins for histogram calculation from bin_count.""" d = pc.min_max(self.native) lower, upper = d["min"].as_py(), d["max"].as_py() if lower == upper: lower -= 0.5 upper += 0.5 return self._linear_space(lower, upper, bin_count + 1) def _calculate_hist(self, bins: list[float] | _1DArray) -> ArrowHistData: ser = self.native # NOTE: `mypy` refuses to resolve `ndarray.__getitem__` # Previously annotated as `list[float]`, but # - wasn't accurate to how we implemented it # - `pa.scalar` overloads fail to match on `float | np.float64` (but runtime is fine) bins = cast("list[float]", bins) # Handle single bin case if len(bins) == 2: is_between_bins = pc.and_( pc.greater_equal(ser, lit(bins[0])), pc.less_equal(ser, lit(bins[1])) ) count = pc.sum(is_between_bins.cast(pa.uint8())) if self._breakpoint: return {"breakpoint": [bins[-1]], "count": [count]} return {"count": [count]} # Handle multiple bins import numpy as np # ignore-banned-import bin_indices = np.searchsorted(bins, ser, side="left") # lowest bin is inclusive bin_indices = pc.if_else(pc.equal(ser, lit(bins[0])), 1, bin_indices) # Align unique categories and counts appropriately obs_cats, obs_counts = np.unique(bin_indices, return_counts=True) obj_cats = np.arange(1, len(bins)) counts = np.zeros_like(obj_cats) counts[np.isin(obj_cats, obs_cats)] = obs_counts[np.isin(obs_cats, obj_cats)] if self._breakpoint: return {"breakpoint": bins[1:], "count": counts} return {"count": counts} narwhals-2.26.0/src/narwhals/_arrow/series_cat.py000066400000000000000000000012561525000603700220140ustar00rootroot00000000000000from __future__ import annotations from typing import TYPE_CHECKING import pyarrow as pa from narwhals._arrow.utils import ArrowSeriesNamespace from narwhals._compliant.any_namespace import CatNamespace if TYPE_CHECKING: from narwhals._arrow.series import ArrowSeries from narwhals._arrow.typing import Incomplete class ArrowSeriesCatNamespace(ArrowSeriesNamespace, CatNamespace["ArrowSeries"]): def get_categories(self) -> ArrowSeries: # NOTE: Should be `list[pa.DictionaryArray]`, but `DictionaryArray` has no attributes chunks: Incomplete = self.native.chunks return self.with_native(pa.concat_arrays(x.dictionary for x in chunks).unique()) narwhals-2.26.0/src/narwhals/_arrow/series_dt.py000066400000000000000000000214321525000603700216520ustar00rootroot00000000000000from __future__ import annotations from typing import TYPE_CHECKING, Any, ClassVar, cast import pyarrow as pa import pyarrow.compute as pc from narwhals._arrow.utils import UNITS_DICT, ArrowSeriesNamespace, floordiv_compat, lit from narwhals._compliant.any_namespace import DateTimeNamespace from narwhals._constants import ( MS_PER_MINUTE, MS_PER_SECOND, NS_PER_MICROSECOND, NS_PER_MILLISECOND, NS_PER_MINUTE, NS_PER_SECOND, SECONDS_PER_DAY, SECONDS_PER_MINUTE, US_PER_MINUTE, US_PER_SECOND, ) from narwhals._duration import Interval if TYPE_CHECKING: from collections.abc import Callable, Mapping from typing import TypeAlias from narwhals._arrow.series import ArrowSeries from narwhals._arrow.typing import ChunkedArrayAny, ScalarAny from narwhals.dtypes import Datetime from narwhals.typing import TimeUnit UnitCurrent: TypeAlias = TimeUnit UnitTarget: TypeAlias = TimeUnit BinOpBroadcast: TypeAlias = Callable[[ChunkedArrayAny, ScalarAny], ChunkedArrayAny] IntoRhs: TypeAlias = int class ArrowSeriesDateTimeNamespace( ArrowSeriesNamespace, DateTimeNamespace["ArrowSeries"] ): _TIMESTAMP_DATE_FACTOR: ClassVar[Mapping[TimeUnit, int]] = { "ns": NS_PER_SECOND, "us": US_PER_SECOND, "ms": MS_PER_SECOND, "s": 1, } _TIMESTAMP_DATETIME_OP_FACTOR: ClassVar[ Mapping[tuple[UnitCurrent, UnitTarget], tuple[BinOpBroadcast, IntoRhs]] ] = { ("ns", "us"): (floordiv_compat, 1_000), ("ns", "ms"): (floordiv_compat, 1_000_000), ("us", "ns"): (pc.multiply, NS_PER_MICROSECOND), ("us", "ms"): (floordiv_compat, 1_000), ("ms", "ns"): (pc.multiply, NS_PER_MILLISECOND), ("ms", "us"): (pc.multiply, 1_000), ("s", "ns"): (pc.multiply, NS_PER_SECOND), ("s", "us"): (pc.multiply, US_PER_SECOND), ("s", "ms"): (pc.multiply, MS_PER_SECOND), } @property def unit(self) -> TimeUnit: # NOTE: Unsafe (native). return cast("pa.TimestampType[TimeUnit, Any]", self.native.type).unit @property def time_zone(self) -> str | None: # NOTE: Unsafe (narwhals). return cast("Datetime", self.compliant.dtype).time_zone def to_string(self, format: str) -> ArrowSeries: # PyArrow differs from other libraries in that %S also prints out # the fractional part of the second...:'( # https://arrow.apache.org/docs/python/generated/pyarrow.compute.strftime.html format = format.replace("%S.%f", "%S").replace("%S%.f", "%S") return self.with_native(pc.strftime(self.native, format)) def replace_time_zone(self, time_zone: str | None) -> ArrowSeries: if time_zone is not None: result = pc.assume_timezone(pc.local_timestamp(self.native), time_zone) else: result = pc.local_timestamp(self.native) return self.with_native(result) def convert_time_zone(self, time_zone: str) -> ArrowSeries: ser = self.replace_time_zone("UTC") if self.time_zone is None else self.compliant return self.with_native(ser.native.cast(pa.timestamp(self.unit, time_zone))) def timestamp(self, time_unit: TimeUnit) -> ArrowSeries: ser = self.compliant dtypes = ser._version.dtypes if isinstance(ser.dtype, dtypes.Datetime): current = ser.dtype.time_unit s_cast = self.native.cast(pa.int64()) if current == time_unit: result = s_cast elif item := self._TIMESTAMP_DATETIME_OP_FACTOR.get((current, time_unit)): fn, factor = item result = fn(s_cast, lit(factor)) else: # pragma: no cover msg = f"unexpected time unit {current}, please report an issue at https://github.com/narwhals-dev/narwhals" raise AssertionError(msg) return self.with_native(result) if isinstance(ser.dtype, dtypes.Date): time_s = pc.multiply(self.native.cast(pa.int32()), lit(SECONDS_PER_DAY)) factor = self._TIMESTAMP_DATE_FACTOR[time_unit] return self.with_native(pc.multiply(time_s, lit(factor))) msg = "Input should be either of Date or Datetime type" raise TypeError(msg) def date(self) -> ArrowSeries: return self.with_native(self.native.cast(pa.date32())) def year(self) -> ArrowSeries: return self.with_native(pc.year(self.native)) def month(self) -> ArrowSeries: return self.with_native(pc.month(self.native)) def day(self) -> ArrowSeries: return self.with_native(pc.day(self.native)) def hour(self) -> ArrowSeries: return self.with_native(pc.hour(self.native)) def minute(self) -> ArrowSeries: return self.with_native(pc.minute(self.native)) def second(self) -> ArrowSeries: return self.with_native(pc.second(self.native)) def millisecond(self) -> ArrowSeries: return self.with_native(pc.millisecond(self.native)) def microsecond(self) -> ArrowSeries: arr = self.native result = pc.add(pc.multiply(pc.millisecond(arr), lit(1000)), pc.microsecond(arr)) return self.with_native(result) def nanosecond(self) -> ArrowSeries: result = pc.add( pc.multiply(self.microsecond().native, lit(1000)), pc.nanosecond(self.native) ) return self.with_native(result) def ordinal_day(self) -> ArrowSeries: return self.with_native(pc.day_of_year(self.native)) def weekday(self) -> ArrowSeries: return self.with_native(pc.day_of_week(self.native, count_from_zero=False)) def total_minutes(self) -> ArrowSeries: unit_to_minutes_factor = { "s": SECONDS_PER_MINUTE, "ms": MS_PER_MINUTE, "us": US_PER_MINUTE, "ns": NS_PER_MINUTE, } factor = lit(unit_to_minutes_factor[self.unit], type=pa.int64()) return self.with_native(pc.divide(self.native, factor).cast(pa.int64())) def total_seconds(self) -> ArrowSeries: unit_to_seconds_factor = { "s": 1, "ms": MS_PER_SECOND, "us": US_PER_SECOND, "ns": NS_PER_SECOND, } factor = lit(unit_to_seconds_factor[self.unit], type=pa.int64()) return self.with_native(pc.divide(self.native, factor).cast(pa.int64())) def total_milliseconds(self) -> ArrowSeries: unit_to_milli_factor = { "s": 1e3, # seconds "ms": 1, # milli "us": 1e3, # micro "ns": 1e6, # nano } factor = lit(unit_to_milli_factor[self.unit], type=pa.int64()) if self.unit == "s": return self.with_native(pc.multiply(self.native, factor).cast(pa.int64())) return self.with_native(pc.divide(self.native, factor).cast(pa.int64())) def total_microseconds(self) -> ArrowSeries: unit_to_micro_factor = { "s": 1e6, # seconds "ms": 1e3, # milli "us": 1, # micro "ns": 1e3, # nano } factor = lit(unit_to_micro_factor[self.unit], type=pa.int64()) if self.unit in {"s", "ms"}: return self.with_native(pc.multiply(self.native, factor).cast(pa.int64())) return self.with_native(pc.divide(self.native, factor).cast(pa.int64())) def total_nanoseconds(self) -> ArrowSeries: unit_to_nano_factor = { "s": NS_PER_SECOND, "ms": NS_PER_MILLISECOND, "us": NS_PER_MICROSECOND, "ns": 1, } factor = lit(unit_to_nano_factor[self.unit], type=pa.int64()) return self.with_native(pc.multiply(self.native, factor).cast(pa.int64())) def truncate(self, every: str) -> ArrowSeries: interval = Interval.parse(every) return self.with_native( pc.floor_temporal(self.native, interval.multiple, UNITS_DICT[interval.unit]) ) def offset_by(self, by: str) -> ArrowSeries: interval = Interval.parse_no_constraints(by) native = self.native if interval.unit in {"y", "q", "mo"}: msg = f"Offsetting by {interval.unit} is not yet supported for pyarrow." raise NotImplementedError(msg) dtype = self.compliant.dtype datetime_dtype = self.version.dtypes.Datetime if interval.unit == "d" and isinstance(dtype, datetime_dtype) and dtype.time_zone: offset: pa.DurationScalar[Any] = lit(interval.to_timedelta()) native_naive = pc.local_timestamp(native) result = pc.assume_timezone(pc.add(native_naive, offset), dtype.time_zone) return self.with_native(result) if interval.unit == "ns": # pragma: no cover offset = lit(interval.multiple, pa.duration("ns")) else: offset = lit(interval.to_timedelta()) return self.with_native(pc.add(native, offset)) narwhals-2.26.0/src/narwhals/_arrow/series_list.py000066400000000000000000000026651525000603700222250ustar00rootroot00000000000000from __future__ import annotations from typing import TYPE_CHECKING import pyarrow as pa import pyarrow.compute as pc from narwhals._arrow.utils import ArrowSeriesNamespace, list_agg, list_sort from narwhals._compliant.any_namespace import ListNamespace from narwhals._utils import not_implemented if TYPE_CHECKING: from narwhals._arrow.series import ArrowSeries class ArrowSeriesListNamespace(ArrowSeriesNamespace, ListNamespace["ArrowSeries"]): def len(self) -> ArrowSeries: return self.with_native(pc.list_value_length(self.native).cast(pa.uint32())) def get(self, index: int) -> ArrowSeries: return self.with_native(pc.list_element(self.native, index)) def min(self) -> ArrowSeries: return self.with_native(list_agg(self.native, "min")) def max(self) -> ArrowSeries: return self.with_native(list_agg(self.native, "max")) def mean(self) -> ArrowSeries: return self.with_native(list_agg(self.native, "mean")) def median(self) -> ArrowSeries: return self.with_native(list_agg(self.native, "approximate_median")) def sum(self) -> ArrowSeries: return self.with_native(list_agg(self.native, "sum")) def sort(self, *, descending: bool, nulls_last: bool) -> ArrowSeries: return self.with_native( list_sort(self.native, descending=descending, nulls_last=nulls_last) ) unique = not_implemented() contains = not_implemented() narwhals-2.26.0/src/narwhals/_arrow/series_str.py000066400000000000000000000146111525000603700220540ustar00rootroot00000000000000from __future__ import annotations from typing import TYPE_CHECKING import pyarrow as pa import pyarrow.compute as pc from narwhals._arrow.utils import ( ArrowSeriesNamespace, extract_native, lit, parse_datetime_format, parse_time_format, ) from narwhals._compliant.any_namespace import StringNamespace from narwhals._utils import parse_str_strip_chars if TYPE_CHECKING: from narwhals._arrow.series import ArrowSeries from narwhals._arrow.typing import Incomplete class ArrowSeriesStringNamespace(ArrowSeriesNamespace, StringNamespace["ArrowSeries"]): def len_chars(self) -> ArrowSeries: return self.with_native(pc.utf8_length(self.native)) def replace( self, value: ArrowSeries, pattern: str, *, literal: bool, n: int ) -> ArrowSeries: fn = pc.replace_substring if literal else pc.replace_substring_regex _, value_native = extract_native(self.compliant, value) if not isinstance(value_native, pa.StringScalar): msg = "PyArrow backed `.str.replace` only supports str replacement values" raise TypeError(msg) arr = fn( self.native, pattern, replacement=value_native.as_py(), max_replacements=n ) return self.with_native(arr) def replace_all( self, value: ArrowSeries, pattern: str, *, literal: bool ) -> ArrowSeries: return self.replace(value, pattern, literal=literal, n=-1) def strip_chars(self, characters: str | None) -> ArrowSeries: return self.with_native( pc.utf8_trim(self.native, parse_str_strip_chars(characters)) ) def strip_chars_start(self, characters: str) -> ArrowSeries: return self.with_native(pc.utf8_ltrim(self.native, characters)) def strip_chars_end(self, characters: str) -> ArrowSeries: return self.with_native(pc.utf8_rtrim(self.native, characters)) def starts_with(self, prefix: ArrowSeries) -> ArrowSeries: _, prefix_native = extract_native(self.compliant, prefix) if not isinstance(prefix_native, pa.StringScalar): msg = "`.str.starts_with` only supports str prefix values for pyarrow backend" raise TypeError(msg) return self.with_native( pc.equal( self.slice(0, len(prefix_native.as_py())).native, lit(prefix_native.as_py()), ) ) def ends_with(self, suffix: ArrowSeries) -> ArrowSeries: _, suffix_native = extract_native(self.compliant, suffix) if not isinstance(suffix_native, pa.StringScalar): msg = "`.str.ends_with` only supports str suffix values for pyarrow backend" raise TypeError(msg) return self.with_native( pc.equal( self.slice(-len(suffix_native.as_py()), None).native, lit(suffix_native.as_py()), ) ) def contains(self, pattern: ArrowSeries, *, literal: bool) -> ArrowSeries: _, pattern_native = extract_native(self.compliant, pattern) if not isinstance(pattern_native, pa.StringScalar): msg = "`.str.contains` only supports str pattern values for pyarrow backend" raise TypeError(msg) fn = pc.match_substring if literal else pc.match_substring_regex return self.with_native(fn(self.native, pattern_native.as_py())) def slice(self, offset: int, length: int | None) -> ArrowSeries: stop = offset + length if length is not None else None return self.with_native( pc.utf8_slice_codeunits(self.native, start=offset, stop=stop) ) def split(self, by: str) -> ArrowSeries: split_series = pc.split_pattern(self.native, by) # type: ignore[call-overload] return self.with_native(split_series) def to_datetime(self, format: str | None) -> ArrowSeries: format = parse_datetime_format(self.native) if format is None else format timestamp_array = pc.strptime(self.native, format=format, unit="us") return self.with_native(timestamp_array) def to_date(self, format: str | None) -> ArrowSeries: return self.to_datetime(format=format).dt.date() def to_time(self, format: str | None) -> ArrowSeries: format = parse_time_format(self.native) if format is None else format timestamp_array = pc.strptime(self.native, format=format, unit="us") nw_time_dtype = self.version.dtypes.Time() return self.with_native(timestamp_array).cast(nw_time_dtype) def to_uppercase(self) -> ArrowSeries: return self.with_native(pc.utf8_upper(self.native)) def to_lowercase(self) -> ArrowSeries: return self.with_native(pc.utf8_lower(self.native)) def to_titlecase(self) -> ArrowSeries: return self.with_native(pc.utf8_title(self.native)) def zfill(self, width: int) -> ArrowSeries: binary_join: Incomplete = pc.binary_join_element_wise native = self.native hyphen, plus = lit("-"), lit("+") first_char, remaining_chars = ( self.slice(0, 1).native, self.slice(1, None).native, ) # Conditions less_than_width = pc.less(pc.utf8_length(native), lit(width)) starts_with_hyphen = pc.equal(first_char, hyphen) starts_with_plus = pc.equal(first_char, plus) conditions = pc.make_struct( pc.and_(starts_with_hyphen, less_than_width), pc.and_(starts_with_plus, less_than_width), less_than_width, ) # Cases padded_remaining_chars = pc.utf8_lpad(remaining_chars, width - 1, padding="0") result = pc.case_when( conditions, binary_join( pa.repeat(hyphen, len(native)), padded_remaining_chars, "" ), # starts with hyphen and less than width binary_join( pa.repeat(plus, len(native)), padded_remaining_chars, "" ), # starts with plus and less than width pc.utf8_lpad(native, width=width, padding="0"), # less than width native, ) return self.with_native(result) def pad_start(self, length: int, fill_char: str) -> ArrowSeries: return self.with_native( pc.utf8_lpad(self.native, width=length, padding=fill_char) ) def pad_end(self, length: int, fill_char: str) -> ArrowSeries: return self.with_native( pc.utf8_rpad(self.native, width=length, padding=fill_char) ) narwhals-2.26.0/src/narwhals/_arrow/series_struct.py000066400000000000000000000007701525000603700225710ustar00rootroot00000000000000from __future__ import annotations from typing import TYPE_CHECKING import pyarrow.compute as pc from narwhals._arrow.utils import ArrowSeriesNamespace from narwhals._compliant.any_namespace import StructNamespace if TYPE_CHECKING: from narwhals._arrow.series import ArrowSeries class ArrowSeriesStructNamespace(ArrowSeriesNamespace, StructNamespace["ArrowSeries"]): def field(self, name: str) -> ArrowSeries: return self.with_native(pc.struct_field(self.native, name)).alias(name) narwhals-2.26.0/src/narwhals/_arrow/typing.py000066400000000000000000000047771525000603700212200ustar00rootroot00000000000000from __future__ import annotations # pragma: no cover from typing import ( TYPE_CHECKING, # pragma: no cover Any, # pragma: no cover TypeVar, # pragma: no cover ) if TYPE_CHECKING: from typing import Generic, Literal, TypeAlias import pyarrow as pa from pyarrow.__lib_pxi.table import ( AggregateOptions, # noqa: F401 Aggregation, # noqa: F401 ) from pyarrow._stubs_typing import ( # pyright: ignore[reportMissingModuleSource] # pyright: ignore[reportMissingModuleSource] # pyright: ignore[reportMissingModuleSource] Indices, Mask, # noqa: F401 Order, # noqa: F401 ) from narwhals._arrow.expr import ArrowExpr from narwhals._arrow.series import ArrowSeries IntoArrowExpr: TypeAlias = "ArrowExpr | ArrowSeries" TieBreaker: TypeAlias = Literal["min", "max", "first", "dense"] NullPlacement: TypeAlias = Literal["at_start", "at_end"] NativeIntervalUnit: TypeAlias = Literal[ "year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", ] PromoteOptions: TypeAlias = Literal["none", "default", "permissive"] ChunkedArrayAny: TypeAlias = pa.ChunkedArray[Any] ArrayAny: TypeAlias = pa.Array[Any] ArrayOrChunkedArray: TypeAlias = "ArrayAny | ChunkedArrayAny" ScalarAny: TypeAlias = pa.Scalar[Any] ArrayOrScalar: TypeAlias = "ArrayOrChunkedArray | ScalarAny" class DictionaryArrayAny(pa.Array[Any]): """`pa.DictionaryArray`, declaring the attributes the stubs are missing. https://arrow.apache.org/docs/python/generated/pyarrow.DictionaryArray.html """ @property def dictionary(self) -> ArrayAny: ... @property def indices(self) -> Indices: ... ArrayOrScalarT1 = TypeVar("ArrayOrScalarT1", ArrayAny, ChunkedArrayAny, ScalarAny) ArrayOrScalarT2 = TypeVar("ArrayOrScalarT2", ArrayAny, ChunkedArrayAny, ScalarAny) _AsPyType = TypeVar("_AsPyType") class _BasicDataType(pa.DataType, Generic[_AsPyType]): ... Incomplete: TypeAlias = Any # pragma: no cover """ Marker for working code that fails on the stubs. Common issues: - Annotated for `Array`, but not `ChunkedArray` - Relies on typing information that the stubs don't provide statically - Missing attributes - Incorrect return types - Inconsistent use of generic/concrete types - `_clone_signature` used on signatures that are not identical """ narwhals-2.26.0/src/narwhals/_arrow/utils.py000066400000000000000000000601631525000603700210350ustar00rootroot00000000000000from __future__ import annotations from functools import lru_cache from typing import TYPE_CHECKING, Any, cast import pyarrow as pa import pyarrow.compute as pc from narwhals._compliant import EagerSeriesNamespace from narwhals._utils import Implementation, Version, isinstance_or_issubclass from narwhals.exceptions import ColumnNotFoundError if TYPE_CHECKING: from collections.abc import Iterable, Iterator, Mapping, Sequence from typing import Literal, TypeAlias from typing_extensions import TypeIs from narwhals._arrow.series import ArrowSeries from narwhals._arrow.typing import ( # type: ignore[attr-defined] ArrayAny, ArrayOrScalar, ArrayOrScalarT1, ArrayOrScalarT2, ChunkedArrayAny, DictionaryArrayAny, Incomplete, NativeIntervalUnit, NullPlacement, Order, PromoteOptions, ScalarAny, ) from narwhals._duration import IntervalUnit from narwhals.dtypes import DType from narwhals.typing import IntoDType, PythonLiteral # NOTE: stubs don't allow for `ChunkedArray[StructArray]` # Intended to represent the `.chunks` property storing `list[pa.StructArray]` ChunkedArrayStructArray: TypeAlias = ChunkedArrayAny def is_timestamp(t: Any) -> TypeIs[pa.TimestampType[Any, Any]]: ... def is_duration(t: Any) -> TypeIs[pa.DurationType[Any]]: ... def is_list(t: Any) -> TypeIs[pa.ListType[Any]]: ... def is_large_list(t: Any) -> TypeIs[pa.LargeListType[Any]]: ... def is_fixed_size_list(t: Any) -> TypeIs[pa.FixedSizeListType[Any, Any]]: ... def is_dictionary(t: Any) -> TypeIs[pa.DictionaryType[Any, Any, Any]]: ... def extract_regex( strings: ChunkedArrayAny, /, pattern: str, *, options: Any = None, memory_pool: Any = None, ) -> ChunkedArrayStructArray: ... else: from pyarrow.compute import extract_regex from pyarrow.types import ( is_dictionary, is_duration, is_fixed_size_list, is_large_list, is_list, is_timestamp, ) BACKEND_VERSION = Implementation.PYARROW._backend_version() """Static backend version for `pyarrow`.""" UNITS_DICT: Mapping[IntervalUnit, NativeIntervalUnit] = { "y": "year", "q": "quarter", "mo": "month", "d": "day", "h": "hour", "m": "minute", "s": "second", "ms": "millisecond", "us": "microsecond", "ns": "nanosecond", } lit = pa.scalar """Alias for `pyarrow.scalar`.""" def extract_py_scalar(value: Any, /) -> Any: from narwhals._arrow.series import maybe_extract_py_scalar return maybe_extract_py_scalar(value, return_py_scalar=True) def is_array_or_scalar(obj: Any) -> TypeIs[ArrayOrScalar]: """Return True for any base `pyarrow` container.""" return isinstance(obj, (pa.ChunkedArray, pa.Array, pa.Scalar)) def arange(start: int, end: int, step: int) -> ArrayAny: if BACKEND_VERSION < (21,): import numpy as np # ignore-banned-import return pa.array(np.arange(start, end, step)) # NOTE: Added in https://github.com/apache/arrow/pull/46778 return pa.arange(start, end, step) # type: ignore[attr-defined] def build_list_array(arrays: list[pa.Array[Any]]) -> pa.ChunkedArray[Any]: # This works by using concat_arrays to vertically stack the arrays. # Then we use take to grab the data by index and to horizontally # pack the arrays. n = len(arrays[0]) num_cols = len(arrays) i = arange(0, n, 1) j = arange(0, num_cols, 1) k = arange(0, n * num_cols, 1) row_idx = cast("pa.Int64Array", pc.divide(k, lit(num_cols))) col_idx = cast("pa.Int64Array", pc.subtract(k, pc.multiply(row_idx, lit(num_cols)))) i_rep = pc.take(i, row_idx) j_tile = pc.take(j, col_idx) indices = cast("pa.Int64Array", pc.add(pc.multiply(j_tile, lit(n)), i_rep)) interleaved = pc.take(pa.concat_arrays(arrays), indices) offsets = cast("pa.Int64Array", arange(0, n * num_cols + 1, num_cols)) # Typing suggests only allow Int32Array is valid for offsets, but Int64Array is fine. return pa.chunked_array([pa.ListArray.from_arrays(offsets, interleaved)]) # type: ignore[call-overload] def chunked_array( arr: ArrayOrScalar | list[Iterable[Any]], dtype: pa.DataType | None = None, / ) -> ChunkedArrayAny: if isinstance(arr, pa.ChunkedArray): return arr # NOTE: stubs only overload on *concrete* types, so a dynamic `pa.DataType` never matches ca: Incomplete = pa.chunked_array return ca(arr, dtype) if isinstance(arr, list) else ca([arr], dtype) def nulls_like(n: int, series: ArrowSeries) -> ArrayAny: """Create a strongly-typed Array instance with all elements null. Uses the type of `series`, without upseting `mypy`. """ return pa.nulls(n, series.native.type) def repeat( value: PythonLiteral | ScalarAny, n: int, /, dtype: pa.DataType | None = None ) -> ArrayAny: """Create an Array instance whose slots are the given scalar. *Optionally*, casting to `dtype` **before** repeating `n` times. """ lit_: Incomplete = lit return pa.repeat(lit_(value, type=dtype), n) def zeros(n: int, /) -> pa.Int64Array: return pa.repeat(0, n) def native_to_narwhals_dtype(dtype: pa.DataType, version: Version) -> DType: if isinstance(dtype, pa.ExtensionType): return version.dtypes.Unknown() return native_non_extension_to_narwhals_dtype(dtype, version) @lru_cache(maxsize=16) def native_non_extension_to_narwhals_dtype(dtype: pa.DataType, version: Version) -> DType: # noqa: C901, PLR0912 dtypes = version.dtypes if pa.types.is_int64(dtype): return dtypes.Int64() if pa.types.is_int32(dtype): return dtypes.Int32() if pa.types.is_int16(dtype): return dtypes.Int16() if pa.types.is_int8(dtype): return dtypes.Int8() if pa.types.is_uint64(dtype): return dtypes.UInt64() if pa.types.is_uint32(dtype): return dtypes.UInt32() if pa.types.is_uint16(dtype): return dtypes.UInt16() if pa.types.is_uint8(dtype): return dtypes.UInt8() if pa.types.is_boolean(dtype): return dtypes.Boolean() if pa.types.is_float64(dtype): return dtypes.Float64() if pa.types.is_float32(dtype): return dtypes.Float32() if pa.types.is_float16(dtype): return dtypes.Float16() # bug in coverage? it shows `31->exit` (where `31` is currently the line number of # the next line), even though both when the if condition is true and false are covered if ( # pragma: no cover pa.types.is_string(dtype) or pa.types.is_large_string(dtype) or getattr(pa.types, "is_string_view", lambda _: False)(dtype) ): return dtypes.String() if pa.types.is_date32(dtype): return dtypes.Date() if is_timestamp(dtype): return dtypes.Datetime(time_unit=dtype.unit, time_zone=dtype.tz) if is_duration(dtype): return dtypes.Duration(time_unit=dtype.unit) if pa.types.is_dictionary(dtype): return dtypes.Categorical() if pa.types.is_struct(dtype): return dtypes.Struct( [ dtypes.Field( dtype.field(i).name, native_to_narwhals_dtype(dtype.field(i).type, version), ) for i in range(dtype.num_fields) ] ) if is_list(dtype) or is_large_list(dtype): return dtypes.List(native_to_narwhals_dtype(dtype.value_type, version)) if is_fixed_size_list(dtype): return dtypes.Array( native_to_narwhals_dtype(dtype.value_type, version), dtype.list_size ) if pa.types.is_decimal128(dtype): return dtypes.Decimal(precision=dtype.precision, scale=dtype.scale) if pa.types.is_time32(dtype) or pa.types.is_time64(dtype): return dtypes.Time() if pa.types.is_binary(dtype): return dtypes.Binary() return dtypes.Unknown() # pragma: no cover dtypes = Version.MAIN.dtypes NW_TO_PA_DTYPES: Mapping[type[DType], pa.DataType] = { dtypes.Float64: pa.float64(), dtypes.Float32: pa.float32(), dtypes.Float16: pa.float16(), dtypes.Binary: pa.binary(), dtypes.String: pa.string(), dtypes.Boolean: pa.bool_(), dtypes.Categorical: pa.dictionary(pa.uint32(), pa.string()), dtypes.Date: pa.date32(), dtypes.Time: pa.time64("ns"), dtypes.Int8: pa.int8(), dtypes.Int16: pa.int16(), dtypes.Int32: pa.int32(), dtypes.Int64: pa.int64(), dtypes.UInt8: pa.uint8(), dtypes.UInt16: pa.uint16(), dtypes.UInt32: pa.uint32(), dtypes.UInt64: pa.uint64(), } UNSUPPORTED_DTYPES = (dtypes.Object, dtypes.Enum) def narwhals_to_native_dtype(dtype: IntoDType, version: Version) -> pa.DataType: dtypes = version.dtypes base_type = dtype.base_type() if pa_type := NW_TO_PA_DTYPES.get(base_type): return pa_type if isinstance_or_issubclass(dtype, dtypes.Datetime): unit = dtype.time_unit return pa.timestamp(unit, tz) if (tz := dtype.time_zone) else pa.timestamp(unit) if isinstance_or_issubclass(dtype, dtypes.Duration): return pa.duration(dtype.time_unit) if isinstance_or_issubclass(dtype, dtypes.List): return pa.list_(value_type=narwhals_to_native_dtype(dtype.inner, version=version)) if isinstance_or_issubclass(dtype, dtypes.Struct): return pa.struct( [ (field.name, narwhals_to_native_dtype(field.dtype, version=version)) for field in dtype.fields ] ) if isinstance_or_issubclass(dtype, dtypes.Array): inner = narwhals_to_native_dtype(dtype.inner, version=version) list_size = dtype.size return pa.list_(inner, list_size=list_size) if isinstance_or_issubclass(dtype, dtypes.Decimal): return pa.decimal128(precision=dtype.precision, scale=dtype.scale) if issubclass(base_type, UNSUPPORTED_DTYPES): msg = f"Converting to {base_type.__name__} dtype is not supported for PyArrow." raise NotImplementedError(msg) msg = f"Unknown dtype: {dtype}" # pragma: no cover raise AssertionError(msg) def extract_native( lhs: ArrowSeries, rhs: ArrowSeries | PythonLiteral | ScalarAny ) -> tuple[ChunkedArrayAny, ChunkedArrayAny | ScalarAny]: """Extract native objects in binary operation. If the comparison isn't supported, return `NotImplemented` so that the "right-hand-side" operation (e.g. `__radd__`) can be tried. If one of the two sides has a `_broadcast` flag, then extract the scalar underneath it so that PyArrow can do its own broadcasting. """ from narwhals._arrow.series import ArrowSeries if rhs is None: # pragma: no cover return lhs.native, lit(None, type=lhs._type) if isinstance(rhs, ArrowSeries): if lhs._broadcast and not rhs._broadcast: return lhs.native[0], rhs.native if rhs._broadcast: return lhs.native, rhs.native[0] return lhs.native, rhs.native if isinstance(rhs, list): msg = "Expected Series or scalar, got list." raise TypeError(msg) return lhs.native, rhs if isinstance(rhs, pa.Scalar) else lit(rhs) def floordiv_compat(left: ArrayOrScalar, right: ArrayOrScalar, /) -> Any: # The following lines are adapted from pandas' pyarrow implementation. # Ref: https://github.com/pandas-dev/pandas/blob/262fcfbffcee5c3116e86a951d8b693f90411e68/pandas/core/arrays/arrow/array.py#L124-L154 # We modify it to add `safe_mask` so as to align with Polars' behaviour when dividing by zero. safe_mask = pc.not_equal(right, lit(0, type=right.type)) safe_right = pc.if_else(safe_mask, right, lit(1, type=right.type)) # Dummy value non_safe_result = lit(None, type=left.type) if pa.types.is_integer(left.type) and pa.types.is_integer(right.type): divided = pc.if_else( safe_mask, pc.divide_checked(left, safe_right), non_safe_result ) # TODO @dangotbanned: Use a `TypeVar` in guards # Narrowing to a `Union` isn't interacting well with the rest of the stubs # https://github.com/zen-xu/pyarrow-stubs/pull/215 if pa.types.is_signed_integer(divided.type): div_type = cast("pa._lib.Int64Type", divided.type) has_remainder = pc.not_equal(pc.multiply(divided, right), left) has_one_negative_operand = pc.less( pc.bit_wise_xor(left, right), lit(0, div_type) ) result = pc.if_else( pc.and_(has_remainder, has_one_negative_operand), pc.subtract(divided, lit(1, div_type)), divided, ) else: result = divided # pragma: no cover result = result.cast(left.type) else: divided = pc.if_else(safe_mask, pc.divide(left, safe_right), non_safe_result) result = pc.floor(divided) return result def cast_for_truediv( arrow_array: ArrayOrScalarT1, pa_object: ArrayOrScalarT2 ) -> tuple[ArrayOrScalarT1, ArrayOrScalarT2]: # Lifted from: # https://github.com/pandas-dev/pandas/blob/262fcfbffcee5c3116e86a951d8b693f90411e68/pandas/core/arrays/arrow/array.py#L108-L122 # Ensure int / int -> float mirroring Python/Numpy behavior # as pc.divide_checked(int, int) -> int if pa.types.is_integer(arrow_array.type) and pa.types.is_integer(pa_object.type): # GH: 56645. # noqa: ERA001 # https://github.com/apache/arrow/issues/35563 return arrow_array.cast(pa.float64(), safe=False), pa_object.cast( pa.float64(), safe=False ) return arrow_array, pa_object # Regex for date, time, separator and timezone components DATE_RE = r"(?P\d{1,4}[-/.]\d{1,2}[-/.]\d{1,4}|\d{8})" SEP_RE = r"(?P\s|T)" TIME_RE = r"(?P