From 1165211c3a8da563e29fd6f52f25b5a868ab5269 Mon Sep 17 00:00:00 2001 From: Nuno Cruces Date: Thu, 12 Mar 2026 20:53:33 +0000 Subject: [PATCH 1/8] Switch from wazero to wasm2go (#362) --- .github/workflows/repro.sh | 11 - .github/workflows/repro.yml | 31 - .github/workflows/test.yml | 39 +- README.md | 16 +- backup.go | 24 +- blob.go | 66 +- config.go | 197 +- conn.go | 212 +- const.go | 11 +- context.go | 81 +- driver/driver.go | 9 +- driver/driver_test.go | 71 +- driver/example2_test.go | 1 - driver/example_test.go | 1 - driver/json_test.go | 1 - driver/savepoint_test.go | 2 - driver/util_test.go | 6 +- embed/README.md | 41 - embed/bcw2/.gitignore | 2 - embed/bcw2/README.md | 22 - embed/bcw2/bcw2.wasm | Bin 1446805 -> 0 bytes embed/bcw2/bcw2_test.go | 59 - embed/bcw2/build.sh | 74 - embed/bcw2/go.mod | 12 - embed/bcw2/go.sum | 12 - embed/bcw2/init.go | 24 - embed/build.sh | 37 - embed/exports.txt | 144 - embed/init.go | 23 - embed/init_test.go | 25 - embed/sqlite3.wasm | Bin 1427935 -> 0 bytes error.go | 8 +- error_test.go | 35 +- example_test.go | 1 - ext/array/array_test.go | 8 +- ext/blobio/blob.go | 4 +- ext/blobio/blob_test.go | 9 +- ext/bloom/bloom.go | 14 +- ext/bloom/bloom_test.go | 9 +- ext/closure/closure_test.go | 7 +- ext/csv/csv.go | 3 +- ext/csv/csv_test.go | 9 +- ext/fileio/fileio_test.go | 9 +- ext/fileio/fsdir_test.go | 8 +- ext/fileio/write.go | 4 +- ext/fileio/write_test.go | 18 +- ext/hash/blake2.go | 4 +- ext/hash/hash.go | 4 +- ext/hash/hash_test.go | 14 +- ext/hash/sha2.go | 6 +- ext/hash/sha3.go | 4 +- ext/ipaddr/ipaddr_test.go | 20 +- ext/lines/lines_test.go | 17 +- ext/pivot/pivot.go | 12 +- ext/pivot/pivot_test.go | 7 +- ext/regexp/regexp_test.go | 12 +- ext/serdes/serdes_test.go | 10 +- ext/statement/stmt.go | 6 +- ext/statement/stmt_test.go | 7 +- ext/stats/boolean_test.go | 5 +- ext/stats/mode_test.go | 5 +- ext/stats/percentile.go | 3 +- ext/stats/percentile_test.go | 5 +- ext/stats/stats | 13 + ext/stats/stats_test.go | 13 +- ext/unicode/unicode.go | 6 +- ext/unicode/unicode_test.go | 11 +- ext/uuid/uuid.go | 6 +- ext/uuid/uuid_test.go | 35 +- ext/zorder/zorder.go | 12 +- ext/zorder/zorder_test.go | 29 +- func.go | 135 +- func_seq_test.go | 1 - func_test.go | 2 - func_win_test.go | 1 - go.mod | 2 +- go.sum | 4 +- gormlite/README.md | 1 - gormlite/go.mod | 10 +- gormlite/go.sum | 14 +- gormlite/sqlite_test.go | 2 - gormlite/tests.patch | 3 +- internal/alloc/alloc_other.go | 24 - internal/alloc/alloc_test.go | 14 - internal/alloc/alloc_unix.go | 76 - internal/alloc/alloc_windows.go | 83 - internal/errutil/error.go | 41 + internal/{util => errutil}/error_test.go | 2 +- internal/sqlite3_wrap/alloc.go | 112 + internal/{util => sqlite3_wrap}/const.go | 2 +- internal/{util => sqlite3_wrap}/error.go | 45 +- internal/sqlite3_wrap/mem.go | 120 + internal/sqlite3_wrap/mem_other.go | 32 + internal/sqlite3_wrap/mem_unix.go | 84 + internal/sqlite3_wrap/mem_windows.go | 91 + internal/{util => sqlite3_wrap}/mmap_other.go | 2 +- internal/{util => sqlite3_wrap}/mmap_unix.go | 47 +- .../{util => sqlite3_wrap}/mmap_windows.go | 2 +- internal/sqlite3_wrap/wrap.go | 79 + internal/testcfg/cfg.go | 12 + internal/testcfg/testcfg.go | 25 - internal/testenv/env.go | 54 + internal/util/func.go | 212 - internal/util/handle.go | 70 - internal/util/json.go | 4 +- internal/util/mem.go | 153 - internal/util/mem_test.go | 120 - internal/util/module.go | 43 - internal/util/parse_test.go | 3 +- json.go | 5 +- json_test.go | 1 - json_v2.go | 17 +- quote.go | 6 +- sqlite.go | 375 - sqlite3/.gitignore | 4 - sqlite3/busy_timeout.patch | 13 - sqlite3/download.sh | 53 - sqlite3/format.sh | 10 - sqlite3/func.c | 103 - sqlite3/hooks.c | 76 - sqlite3/include.h | 12 - sqlite3/libc/README.md | 7 - sqlite3/libc/assert.h | 3 - sqlite3/libc/ctype.c | 18 - sqlite3/libc/ctype.h | 25 - sqlite3/libc/download.sh | 6 - sqlite3/libc/format.sh | 10 - sqlite3/libc/libc.c | 4 - sqlite3/libc/malloc.c | 6291 ----------------- sqlite3/libc/malloc_bump.c | 56 - sqlite3/libc/malloc_sbrk.c | 65 - sqlite3/libc/math.c | 17 - sqlite3/libc/math.h | 38 - sqlite3/libc/stdio.h | 0 sqlite3/libc/stdlib.c | 45 - sqlite3/libc/stdlib.h | 13 - sqlite3/libc/string.c | 350 - sqlite3/libc/string.h | 20 - sqlite3/libc/time.h | 15 - sqlite3/main.c | 36 - sqlite3/pointer.c | 17 - sqlite3/sqlite_cfg.h | 38 - sqlite3/sqlite_opt.h | 42 - sqlite3/stmt.c | 58 - sqlite3/text.c | 29 - sqlite3/time.c | 38 - sqlite3/tools.sh | 40 - sqlite3/vfs.c | 175 - sqlite3/vfs_find.patch | 21 - sqlite3/vtab.c | 244 - stmt.go | 221 +- tests/backup_test.go | 11 +- tests/blob_test.go | 19 +- tests/bradfitz/sql_test.go | 2 - tests/cksm_test.go | 13 +- tests/compile/empty/compile_test.go | 15 - tests/compile/missing/compile_test.go | 15 - tests/compile/nil/compile_test.go | 14 - tests/config_test.go | 17 +- tests/conn_test.go | 37 +- tests/db_test.go | 5 +- tests/driver_test.go | 12 +- tests/endian_test.go | 3 +- tests/ext_test.go | 9 +- tests/func_test.go | 15 +- tests/json_test.go | 14 +- tests/parallel/parallel_test.go | 15 +- tests/stmt_test.go | 15 +- tests/time_test.go | 16 +- tests/txn_test.go | 39 +- tests/vfs_test.go | 7 +- tests/vtab_test.go | 3 +- tests/wal_test.go | 16 +- time.go | 23 +- txn.go | 37 +- util/fsutil/mode.go | 4 +- util/sql3util/internal/build.sh | 40 - util/sql3util/internal/main.c | 83 - util/sql3util/internal/parser/libc.go | 21 - util/sql3util/internal/parser/parser.go | 3689 ---------- util/sql3util/parse.go | 123 +- util/sql3util/util_test.go | 1 - value.go | 52 +- vfs/adiantum/adiantum_test.go | 19 +- vfs/adiantum/hbsh.go | 5 +- vfs/api.go | 7 +- vfs/cksm.go | 13 +- vfs/const.go | 91 +- vfs/filename.go | 79 +- vfs/lock.go | 26 +- vfs/lock_test.go | 211 - vfs/memdb/example_test.go | 1 - vfs/memdb/memdb_test.go | 5 +- vfs/mvcc/example_test.go | 1 - vfs/mvcc/mvcc_test.go | 5 +- vfs/readervfs/example_test.go | 1 - vfs/registry.go | 4 - vfs/registry_test.go | 4 +- vfs/shm_bsd.go | 16 +- vfs/shm_copy.go | 8 +- vfs/shm_dotlk.go | 37 +- vfs/shm_memlk.go | 6 +- vfs/shm_ofd.go | 22 +- vfs/shm_windows.go | 43 +- vfs/tests/mptest/download.sh | 14 + vfs/tests/mptest/mptest_test.go | 269 +- vfs/tests/mptest/wasm/.gitignore | 1 - vfs/tests/mptest/wasm/build.sh | 34 - vfs/tests/mptest/wasm/exports.txt | 5 - vfs/tests/mptest/wasm/go.mod | 0 vfs/tests/mptest/wasm/main.c | 19 - vfs/tests/mptest/wasm/mptest.wasm | Bin 1371059 -> 0 bytes vfs/tests/speedtest1/speedtest1_test.go | 115 +- vfs/tests/speedtest1/wasm/.gitignore | 1 - vfs/tests/speedtest1/wasm/build.sh | 30 - vfs/tests/speedtest1/wasm/exports.txt | 5 - vfs/tests/speedtest1/wasm/go.mod | 0 vfs/tests/speedtest1/wasm/main.c | 12 - vfs/tests/speedtest1/wasm/speedtest1.wasm | Bin 1430701 -> 0 bytes vfs/vfs.go | 352 +- vfs/vfs_test.go | 346 - vfs/xts/aes_test.go | 19 +- vfs/xts/xts.go | 5 +- vtab.go | 331 +- vtab_test.go | 1 - wrap.go | 381 + wrap_env.go | 107 + sqlite_test.go => wrap_test.go | 115 +- 228 files changed, 2836 insertions(+), 16325 deletions(-) delete mode 100755 .github/workflows/repro.sh delete mode 100644 .github/workflows/repro.yml delete mode 100644 embed/README.md delete mode 100644 embed/bcw2/.gitignore delete mode 100644 embed/bcw2/README.md delete mode 100755 embed/bcw2/bcw2.wasm delete mode 100644 embed/bcw2/bcw2_test.go delete mode 100755 embed/bcw2/build.sh delete mode 100644 embed/bcw2/go.mod delete mode 100644 embed/bcw2/go.sum delete mode 100644 embed/bcw2/init.go delete mode 100755 embed/build.sh delete mode 100644 embed/exports.txt delete mode 100644 embed/init.go delete mode 100644 embed/init_test.go delete mode 100755 embed/sqlite3.wasm create mode 100644 ext/stats/stats delete mode 100644 internal/alloc/alloc_other.go delete mode 100644 internal/alloc/alloc_test.go delete mode 100644 internal/alloc/alloc_unix.go delete mode 100644 internal/alloc/alloc_windows.go create mode 100644 internal/errutil/error.go rename internal/{util => errutil}/error_test.go (92%) create mode 100644 internal/sqlite3_wrap/alloc.go rename internal/{util => sqlite3_wrap}/const.go (99%) rename internal/{util => sqlite3_wrap}/error.go (58%) create mode 100644 internal/sqlite3_wrap/mem.go create mode 100644 internal/sqlite3_wrap/mem_other.go create mode 100644 internal/sqlite3_wrap/mem_unix.go create mode 100644 internal/sqlite3_wrap/mem_windows.go rename internal/{util => sqlite3_wrap}/mmap_other.go (67%) rename internal/{util => sqlite3_wrap}/mmap_unix.go (63%) rename internal/{util => sqlite3_wrap}/mmap_windows.go (98%) create mode 100644 internal/sqlite3_wrap/wrap.go create mode 100644 internal/testcfg/cfg.go delete mode 100644 internal/testcfg/testcfg.go create mode 100644 internal/testenv/env.go delete mode 100644 internal/util/func.go delete mode 100644 internal/util/handle.go delete mode 100644 internal/util/mem.go delete mode 100644 internal/util/mem_test.go delete mode 100644 internal/util/module.go delete mode 100644 sqlite.go delete mode 100644 sqlite3/.gitignore delete mode 100644 sqlite3/busy_timeout.patch delete mode 100755 sqlite3/download.sh delete mode 100755 sqlite3/format.sh delete mode 100644 sqlite3/func.c delete mode 100644 sqlite3/hooks.c delete mode 100644 sqlite3/include.h delete mode 100644 sqlite3/libc/README.md delete mode 100644 sqlite3/libc/assert.h delete mode 100644 sqlite3/libc/ctype.c delete mode 100644 sqlite3/libc/ctype.h delete mode 100755 sqlite3/libc/download.sh delete mode 100755 sqlite3/libc/format.sh delete mode 100644 sqlite3/libc/libc.c delete mode 100644 sqlite3/libc/malloc.c delete mode 100644 sqlite3/libc/malloc_bump.c delete mode 100644 sqlite3/libc/malloc_sbrk.c delete mode 100644 sqlite3/libc/math.c delete mode 100644 sqlite3/libc/math.h delete mode 100644 sqlite3/libc/stdio.h delete mode 100644 sqlite3/libc/stdlib.c delete mode 100644 sqlite3/libc/stdlib.h delete mode 100644 sqlite3/libc/string.c delete mode 100644 sqlite3/libc/string.h delete mode 100644 sqlite3/libc/time.h delete mode 100644 sqlite3/main.c delete mode 100644 sqlite3/pointer.c delete mode 100644 sqlite3/sqlite_cfg.h delete mode 100644 sqlite3/sqlite_opt.h delete mode 100644 sqlite3/stmt.c delete mode 100644 sqlite3/text.c delete mode 100644 sqlite3/time.c delete mode 100755 sqlite3/tools.sh delete mode 100644 sqlite3/vfs.c delete mode 100644 sqlite3/vfs_find.patch delete mode 100644 sqlite3/vtab.c delete mode 100644 tests/compile/empty/compile_test.go delete mode 100644 tests/compile/missing/compile_test.go delete mode 100644 tests/compile/nil/compile_test.go delete mode 100755 util/sql3util/internal/build.sh delete mode 100644 util/sql3util/internal/main.c delete mode 100644 util/sql3util/internal/parser/libc.go delete mode 100644 util/sql3util/internal/parser/parser.go delete mode 100644 vfs/lock_test.go create mode 100755 vfs/tests/mptest/download.sh delete mode 100644 vfs/tests/mptest/wasm/.gitignore delete mode 100755 vfs/tests/mptest/wasm/build.sh delete mode 100644 vfs/tests/mptest/wasm/exports.txt delete mode 100644 vfs/tests/mptest/wasm/go.mod delete mode 100644 vfs/tests/mptest/wasm/main.c delete mode 100644 vfs/tests/mptest/wasm/mptest.wasm delete mode 100644 vfs/tests/speedtest1/wasm/.gitignore delete mode 100755 vfs/tests/speedtest1/wasm/build.sh delete mode 100644 vfs/tests/speedtest1/wasm/exports.txt delete mode 100644 vfs/tests/speedtest1/wasm/go.mod delete mode 100644 vfs/tests/speedtest1/wasm/main.c delete mode 100644 vfs/tests/speedtest1/wasm/speedtest1.wasm delete mode 100644 vfs/vfs_test.go create mode 100644 wrap.go create mode 100644 wrap_env.go rename sqlite_test.go => wrap_test.go (51%) diff --git a/.github/workflows/repro.sh b/.github/workflows/repro.sh deleted file mode 100755 index 5fd38693..00000000 --- a/.github/workflows/repro.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -# Download and build SQLite -sqlite3/download.sh -sqlite3/tools.sh -embed/build.sh -embed/bcw2/build.sh - -# Check diffs -git diff --exit-code \ No newline at end of file diff --git a/.github/workflows/repro.yml b/.github/workflows/repro.yml deleted file mode 100644 index 72d93afd..00000000 --- a/.github/workflows/repro.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Reproducible build - -on: - workflow_dispatch: - -permissions: - contents: read - id-token: write - attestations: write - -jobs: - build: - strategy: - matrix: - os: [macos-latest, ubuntu-latest, windows-latest] - runs-on: ${{ matrix.os }} - - steps: - - uses: ilammy/msvc-dev-cmd@v1 - - uses: actions/checkout@v6 - - - name: Build - shell: bash - run: .github/workflows/repro.sh - - - uses: actions/attest-build-provenance@v4 - if: matrix.os == 'ubuntu-latest' - with: - subject-path: | - embed/sqlite3.wasm - embed/bcw2/bcw2.wasm \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 84339e57..b3076c2c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -68,8 +68,8 @@ jobs: shell: bash run: | go work init . - go work use -r embed/bcw2 gormlite - go test ./embed/bcw2 ./gormlite + go work use -r gormlite + go test ./gormlite - name: Test GORM shell: bash @@ -104,6 +104,7 @@ jobs: - name: illumos action: omnios version: 'r151056' + tflags: '-test.short' - name: openbsd version: '7.8' tflags: '-test.short' @@ -144,11 +145,14 @@ jobs: os: - name: dragonfly action: 'vmactions/dragonflybsd-vm@v1' + tflags: '-test.short' - name: illumos action: 'vmactions/openindiana-vm@v0' + tflags: '-test.short' - name: solaris action: 'vmactions/solaris-vm@v1' bflags: '-tags sqlite3_dotlk' + tflags: '-test.short' runs-on: ubuntu-latest needs: test @@ -166,27 +170,6 @@ jobs: - name: Test uses: ./.github/actions/vmactions - test-wasip1: - runs-on: ubuntu-latest - needs: test - - steps: - - uses: bytecodealliance/actions/wasmtime/setup@v1 - - uses: actions/checkout@v6 - - uses: actions/setup-go@v6 - with: { go-version: stable } - - - name: Set path - run: echo "$(go env GOROOT)/lib/wasm" >> "$GITHUB_PATH" - - - name: Test wasmtime - env: - GOOS: wasip1 - GOARCH: wasm - GOWASIRUNTIME: wasmtime - GOWASIRUNTIMEARGS: '--env CI=true' - run: go test -short -tags sqlite3_dotlk -skip Example ./... - test-qemu: runs-on: ubuntu-latest needs: test @@ -198,15 +181,15 @@ jobs: with: { go-version: stable } - name: Test 386 (32-bit) - run: GOARCH=386 go test -short ./... + run: GOARCH=386 go test ./... - - name: Test riscv64 (interpreter) + - name: Test riscv64 run: GOARCH=riscv64 go test -short ./... - - name: Test ppc64le (interpreter) + - name: Test ppc64le run: GOARCH=ppc64le go test -short ./... - - name: Test loong64 (interpreter) + - name: Test loong64 run: GOARCH=loong64 go test -short ./... - name: Test s390x (big-endian) @@ -225,7 +208,7 @@ jobs: run: go test ./... - name: Test arm (32-bit) - run: GOARCH=arm GOARM=7 go test -short ./... + run: GOARCH=arm GOARM=7 go test ./... test-macintel: runs-on: macos-15-intel diff --git a/README.md b/README.md index 3ff97b6d..8dede330 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Go bindings to SQLite using wazero +# Go bindings to SQLite using wasm2go [![Go Reference](https://pkg.go.dev/badge/image)](https://pkg.go.dev/github.com/ncruces/go-sqlite3) [![Go Report](https://goreportcard.com/badge/github.com/ncruces/go-sqlite3)](https://goreportcard.com/report/github.com/ncruces/go-sqlite3) @@ -8,9 +8,9 @@ Go module `github.com/ncruces/go-sqlite3` is a `cgo`-free [SQLite](https://sqlit It provides a [`database/sql`](https://pkg.go.dev/database/sql) compatible driver, as well as direct access to most of the [C SQLite API](https://sqlite.org/cintro.html). -It wraps a [Wasm](https://webassembly.org/) [build](embed/) of SQLite, -and uses [wazero](https://wazero.io/) as the runtime.\ -Go, wazero and [`x/sys`](https://pkg.go.dev/golang.org/x/sys) are the _only_ direct dependencies. +It wraps a [Wasm](https://webassembly.org/) build of SQLite, +and uses [wasm2go](https://github.com/ncruces/wasm2go) to translate it to Go.\ +Go and [`x/sys`](https://pkg.go.dev/golang.org/x/sys) are the _only_ direct dependencies. ### Getting started @@ -19,7 +19,6 @@ Using the [`database/sql`](https://pkg.go.dev/database/sql) driver: import "database/sql" import _ "github.com/ncruces/go-sqlite3/driver" -import _ "github.com/ncruces/go-sqlite3/embed" var version string db, _ := sql.Open("sqlite3", "file:demo.db") @@ -34,8 +33,6 @@ db.QueryRow(`SELECT sqlite_version()`).Scan(&version) - [`github.com/ncruces/go-sqlite3/driver`](https://pkg.go.dev/github.com/ncruces/go-sqlite3/driver) provides a [`database/sql`](https://pkg.go.dev/database/sql) driver ([example](https://pkg.go.dev/github.com/ncruces/go-sqlite3/driver#example-package)). -- [`github.com/ncruces/go-sqlite3/embed`](https://pkg.go.dev/github.com/ncruces/go-sqlite3/embed) - embeds a build of SQLite into your application. - [`github.com/ncruces/go-sqlite3/vfs`](https://pkg.go.dev/github.com/ncruces/go-sqlite3/vfs) wraps the [C SQLite VFS API](https://sqlite.org/vfs.html) and provides a pure Go implementation. - [`github.com/ncruces/go-sqlite3/gormlite`](https://pkg.go.dev/github.com/ncruces/go-sqlite3/gormlite) @@ -64,7 +61,6 @@ db.QueryRow(`SELECT sqlite_version()`).Scan(&version) - [statistics functions](https://pkg.go.dev/github.com/ncruces/go-sqlite3/ext/stats) - [encryption at rest](vfs/adiantum/README.md) - [many extensions](ext/README.md) -- [and more…](embed/README.md) ### Caveats @@ -79,9 +75,7 @@ memory usage will be higher than alternatives. ### Testing This project aims for [high test coverage](https://github.com/ncruces/go-sqlite3/wiki/Test-coverage-report). -It also benefits greatly from [SQLite's](https://sqlite.org/testing.html) and -[wazero's](https://tetrate.io/blog/introducing-wazero-from-tetrate/#:~:text=Rock%2Dsolid%20test%20approach) -thorough testing. +It also benefits greatly from [SQLite's](https://sqlite.org/testing.html) thorough testing. Every commit is tested on: * Linux: amd64, arm64, 386, arm, riscv64, ppc64le, loong64, s390x diff --git a/backup.go b/backup.go index 58b6229a..603e51d8 100644 --- a/backup.go +++ b/backup.go @@ -62,22 +62,22 @@ func (src *Conn) BackupInit(srcDB, dstURI string) (*Backup, error) { } func (c *Conn) backupInit(dst ptr_t, dstName string, src ptr_t, srcName string) (*Backup, error) { - defer c.arena.mark()() - dstPtr := c.arena.string(dstName) - srcPtr := c.arena.string(srcName) + defer c.arena.Mark()() + dstPtr := c.arena.String(dstName) + srcPtr := c.arena.String(srcName) other := dst if c.handle == dst { other = src } - ptr := ptr_t(c.call("sqlite3_backup_init", - stk_t(dst), stk_t(dstPtr), - stk_t(src), stk_t(srcPtr))) + ptr := ptr_t(c.wrp.Xsqlite3_backup_init( + int32(dst), int32(dstPtr), + int32(src), int32(srcPtr))) if ptr == 0 { defer c.closeDB(other) - rc := res_t(c.call("sqlite3_errcode", stk_t(dst))) - return nil, c.sqlite.error(rc, dst) + rc := res_t(c.wrp.Xsqlite3_errcode(int32(dst))) + return nil, c.errorFor(dst, rc) } return &Backup{ @@ -97,7 +97,7 @@ func (b *Backup) Close() error { return nil } - rc := res_t(b.c.call("sqlite3_backup_finish", stk_t(b.handle))) + rc := res_t(b.c.wrp.Xsqlite3_backup_finish(int32(b.handle))) b.c.closeDB(b.otherc) b.handle = 0 return b.c.error(rc) @@ -108,7 +108,7 @@ func (b *Backup) Close() error { // // https://sqlite.org/c3ref/backup_finish.html#sqlite3backupstep func (b *Backup) Step(nPage int) (done bool, err error) { - rc := res_t(b.c.call("sqlite3_backup_step", stk_t(b.handle), stk_t(nPage))) + rc := res_t(b.c.wrp.Xsqlite3_backup_step(int32(b.handle), int32(nPage))) if rc == _DONE { return true, nil } @@ -120,7 +120,7 @@ func (b *Backup) Step(nPage int) (done bool, err error) { // // https://sqlite.org/c3ref/backup_finish.html#sqlite3backupremaining func (b *Backup) Remaining() int { - n := int32(b.c.call("sqlite3_backup_remaining", stk_t(b.handle))) + n := int32(b.c.wrp.Xsqlite3_backup_remaining(int32(b.handle))) return int(n) } @@ -129,6 +129,6 @@ func (b *Backup) Remaining() int { // // https://sqlite.org/c3ref/backup_finish.html#sqlite3backuppagecount func (b *Backup) PageCount() int { - n := int32(b.c.call("sqlite3_backup_pagecount", stk_t(b.handle))) + n := int32(b.c.wrp.Xsqlite3_backup_pagecount(int32(b.handle))) return int(n) } diff --git a/blob.go b/blob.go index ea7caf9d..7a7b77c1 100644 --- a/blob.go +++ b/blob.go @@ -3,7 +3,7 @@ package sqlite3 import ( "io" - "github.com/ncruces/go-sqlite3/internal/util" + "github.com/ncruces/go-sqlite3/internal/errutil" ) // ZeroBlob represents a zero-filled, length n BLOB @@ -35,28 +35,28 @@ func (c *Conn) OpenBlob(db, table, column string, row int64, write bool) (*Blob, return nil, INTERRUPT } - defer c.arena.mark()() - blobPtr := c.arena.new(ptrlen) - dbPtr := c.arena.string(db) - tablePtr := c.arena.string(table) - columnPtr := c.arena.string(column) + defer c.arena.Mark()() + blobPtr := c.arena.New(ptrlen) + dbPtr := c.arena.String(db) + tablePtr := c.arena.String(table) + columnPtr := c.arena.String(column) var flags int32 if write { flags = 1 } - rc := res_t(c.call("sqlite3_blob_open", stk_t(c.handle), - stk_t(dbPtr), stk_t(tablePtr), stk_t(columnPtr), - stk_t(row), stk_t(flags), stk_t(blobPtr))) + rc := res_t(c.wrp.Xsqlite3_blob_open(int32(c.handle), + int32(dbPtr), int32(tablePtr), int32(columnPtr), + row, flags, int32(blobPtr))) if err := c.error(rc); err != nil { return nil, err } blob := Blob{c: c} - blob.handle = util.Read32[ptr_t](c.mod, blobPtr) - blob.bytes = int64(int32(c.call("sqlite3_blob_bytes", stk_t(blob.handle)))) + blob.handle = ptr_t(c.wrp.Read32(blobPtr)) + blob.bytes = int64(c.wrp.Xsqlite3_blob_bytes(int32(blob.handle))) return &blob, nil } @@ -70,8 +70,8 @@ func (b *Blob) Close() error { return nil } - rc := res_t(b.c.call("sqlite3_blob_close", stk_t(b.handle))) - b.c.free(b.bufptr) + rc := res_t(b.c.wrp.Xsqlite3_blob_close(int32(b.handle))) + b.c.wrp.Free(b.bufptr) b.handle = 0 return b.c.error(rc) } @@ -97,12 +97,12 @@ func (b *Blob) Read(p []byte) (n int, err error) { want = avail } if want > b.buflen { - b.bufptr = b.c.realloc(b.bufptr, want) + b.bufptr = b.c.wrp.Realloc(b.bufptr, want) b.buflen = want } - rc := res_t(b.c.call("sqlite3_blob_read", stk_t(b.handle), - stk_t(b.bufptr), stk_t(want), stk_t(b.offset))) + rc := res_t(b.c.wrp.Xsqlite3_blob_read(int32(b.handle), + int32(b.bufptr), int32(want), int32(b.offset))) err = b.c.error(rc) if err != nil { return 0, err @@ -112,7 +112,7 @@ func (b *Blob) Read(p []byte) (n int, err error) { err = io.EOF } - copy(p, util.View(b.c.mod, b.bufptr, want)) + copy(p, b.c.wrp.Slice(b.bufptr, want)) return int(want), err } @@ -130,19 +130,19 @@ func (b *Blob) WriteTo(w io.Writer) (n int64, err error) { want = avail } if want > b.buflen { - b.bufptr = b.c.realloc(b.bufptr, want) + b.bufptr = b.c.wrp.Realloc(b.bufptr, want) b.buflen = want } for want > 0 { - rc := res_t(b.c.call("sqlite3_blob_read", stk_t(b.handle), - stk_t(b.bufptr), stk_t(want), stk_t(b.offset))) + rc := res_t(b.c.wrp.Xsqlite3_blob_read(int32(b.handle), + int32(b.bufptr), int32(want), int32(b.offset))) err = b.c.error(rc) if err != nil { return n, err } - mem := util.View(b.c.mod, b.bufptr, want) + mem := b.c.wrp.Slice(b.bufptr, want) m, err := w.Write(mem[:want]) b.offset += int64(m) n += int64(m) @@ -168,13 +168,13 @@ func (b *Blob) WriteTo(w io.Writer) (n int64, err error) { func (b *Blob) Write(p []byte) (n int, err error) { want := int64(len(p)) if want > b.buflen { - b.bufptr = b.c.realloc(b.bufptr, want) + b.bufptr = b.c.wrp.Realloc(b.bufptr, want) b.buflen = want } - util.WriteBytes(b.c.mod, b.bufptr, p) + b.c.wrp.WriteBytes(b.bufptr, p) - rc := res_t(b.c.call("sqlite3_blob_write", stk_t(b.handle), - stk_t(b.bufptr), stk_t(want), stk_t(b.offset))) + rc := res_t(b.c.wrp.Xsqlite3_blob_write(int32(b.handle), + int32(b.bufptr), int32(want), int32(b.offset))) err = b.c.error(rc) if err != nil { return 0, err @@ -199,16 +199,16 @@ func (b *Blob) ReadFrom(r io.Reader) (n int64, err error) { want = 1 } if want > b.buflen { - b.bufptr = b.c.realloc(b.bufptr, want) + b.bufptr = b.c.wrp.Realloc(b.bufptr, want) b.buflen = want } for { - mem := util.View(b.c.mod, b.bufptr, want) + mem := b.c.wrp.Slice(b.bufptr, want) m, err := r.Read(mem[:want]) if m > 0 { - rc := res_t(b.c.call("sqlite3_blob_write", stk_t(b.handle), - stk_t(b.bufptr), stk_t(m), stk_t(b.offset))) + rc := res_t(b.c.wrp.Xsqlite3_blob_write(int32(b.handle), + int32(b.bufptr), int32(m), int32(b.offset))) err := b.c.error(rc) if err != nil { return n, err @@ -237,7 +237,7 @@ func (b *Blob) ReadFrom(r io.Reader) (n int64, err error) { func (b *Blob) Seek(offset int64, whence int) (int64, error) { switch whence { default: - return 0, util.WhenceErr + return 0, errutil.WhenceErr case io.SeekStart: break case io.SeekCurrent: @@ -246,7 +246,7 @@ func (b *Blob) Seek(offset int64, whence int) (int64, error) { offset += b.bytes } if offset < 0 { - return 0, util.OffsetErr + return 0, errutil.OffsetErr } b.offset = offset return offset, nil @@ -259,8 +259,8 @@ func (b *Blob) Reopen(row int64) error { if b.c.interrupt.Err() != nil { return INTERRUPT } - err := b.c.error(res_t(b.c.call("sqlite3_blob_reopen", stk_t(b.handle), stk_t(row)))) - b.bytes = int64(int32(b.c.call("sqlite3_blob_bytes", stk_t(b.handle)))) + err := b.c.error(res_t(b.c.wrp.Xsqlite3_blob_reopen(int32(b.handle), row))) + b.bytes = int64(b.c.wrp.Xsqlite3_blob_bytes(int32(b.handle))) b.offset = 0 return err } diff --git a/config.go b/config.go index c671bfb2..810eb6fe 100644 --- a/config.go +++ b/config.go @@ -1,14 +1,11 @@ package sqlite3 import ( - "context" "fmt" "strconv" "sync/atomic" - "github.com/tetratelabs/wazero/api" - - "github.com/ncruces/go-sqlite3/internal/util" + "github.com/ncruces/go-sqlite3/internal/errutil" "github.com/ncruces/go-sqlite3/vfs" ) @@ -30,8 +27,8 @@ func (c *Conn) Config(op DBConfig, arg ...bool) (bool, error) { // The vararg is a pointer to an array containing these arguments: // an int and an int* pointing to that int. - defer c.arena.mark()() - argsPtr := c.arena.new(intlen + ptrlen) + defer c.arena.Mark()() + argsPtr := c.arena.New(intlen + ptrlen) var flag int32 switch { @@ -41,12 +38,12 @@ func (c *Conn) Config(op DBConfig, arg ...bool) (bool, error) { flag = 1 } - util.Write32(c.mod, argsPtr+0*ptrlen, flag) - util.Write32(c.mod, argsPtr+1*ptrlen, argsPtr) + c.wrp.Write32(argsPtr+0*ptrlen, uint32(flag)) + c.wrp.Write32(argsPtr+1*ptrlen, uint32(argsPtr)) - rc := res_t(c.call("sqlite3_db_config", stk_t(c.handle), - stk_t(op), stk_t(argsPtr))) - return util.ReadBool(c.mod, argsPtr), c.error(rc) + rc := res_t(c.wrp.Xsqlite3_db_config(int32(c.handle), + int32(op), int32(argsPtr))) + return c.wrp.ReadBool(argsPtr), c.error(rc) } var defaultLogger atomic.Pointer[func(code ExtendedErrorCode, msg string)] @@ -66,7 +63,7 @@ func (c *Conn) ConfigLog(cb func(code ExtendedErrorCode, msg string)) error { if cb != nil { enable = 1 } - rc := res_t(c.call("sqlite3_config_log_go", stk_t(enable))) + rc := res_t(c.wrp.Xsqlite3_config_log_go(enable)) if err := c.error(rc); err != nil { return err } @@ -74,9 +71,9 @@ func (c *Conn) ConfigLog(cb func(code ExtendedErrorCode, msg string)) error { return nil } -func logCallback(ctx context.Context, mod api.Module, _ ptr_t, iCode res_t, zMsg ptr_t) { - if c, ok := ctx.Value(connKey{}).(*Conn); ok && c.log != nil { - msg := util.ReadString(mod, zMsg, _MAX_LENGTH) +func (e env) Xgo_log(_, iCode, zMsg int32) { + if c, ok := e.DB.(*Conn); ok && c.log != nil { + msg := e.ReadString(ptr_t(zMsg), _MAX_LENGTH) c.log(xErrorCode(iCode), msg) } } @@ -95,12 +92,12 @@ func (c *Conn) Log(code ExtendedErrorCode, format string, a ...any) { // // https://sqlite.org/c3ref/file_control.html func (c *Conn) FileControl(schema string, op FcntlOpcode, arg ...any) (any, error) { - defer c.arena.mark()() - ptr := c.arena.new(max(ptrlen, intlen)) + defer c.arena.Mark()() + ptr := c.arena.New(max(ptrlen, intlen)) var schemaPtr ptr_t if schema != "" { - schemaPtr = c.arena.string(schema) + schemaPtr = c.arena.String(schema) } var rc res_t @@ -110,9 +107,9 @@ func (c *Conn) FileControl(schema string, op FcntlOpcode, arg ...any) (any, erro return nil, MISUSE case FCNTL_RESET_CACHE, FCNTL_NULL_IO: - rc = res_t(c.call("sqlite3_file_control", - stk_t(c.handle), stk_t(schemaPtr), - stk_t(op), 0)) + rc = res_t(c.wrp.Xsqlite3_file_control( + int32(c.handle), int32(schemaPtr), + int32(op), 0)) case FCNTL_PERSIST_WAL, FCNTL_POWERSAFE_OVERWRITE: var flag int32 @@ -122,50 +119,50 @@ func (c *Conn) FileControl(schema string, op FcntlOpcode, arg ...any) (any, erro case arg[0]: flag = 1 } - util.Write32(c.mod, ptr, flag) - rc = res_t(c.call("sqlite3_file_control", - stk_t(c.handle), stk_t(schemaPtr), - stk_t(op), stk_t(ptr))) - ret = util.ReadBool(c.mod, ptr) + c.wrp.Write32(ptr, uint32(flag)) + rc = res_t(c.wrp.Xsqlite3_file_control( + int32(c.handle), int32(schemaPtr), + int32(op), int32(ptr))) + ret = c.wrp.ReadBool(ptr) case FCNTL_CHUNK_SIZE: - util.Write32(c.mod, ptr, int32(arg[0].(int))) - rc = res_t(c.call("sqlite3_file_control", - stk_t(c.handle), stk_t(schemaPtr), - stk_t(op), stk_t(ptr))) + c.wrp.Write32(ptr, uint32(arg[0].(int))) + rc = res_t(c.wrp.Xsqlite3_file_control( + int32(c.handle), int32(schemaPtr), + int32(op), int32(ptr))) case FCNTL_RESERVE_BYTES: bytes := -1 if len(arg) > 0 { bytes = arg[0].(int) } - util.Write32(c.mod, ptr, int32(bytes)) - rc = res_t(c.call("sqlite3_file_control", - stk_t(c.handle), stk_t(schemaPtr), - stk_t(op), stk_t(ptr))) - ret = int(util.Read32[int32](c.mod, ptr)) + c.wrp.Write32(ptr, uint32(bytes)) + rc = res_t(c.wrp.Xsqlite3_file_control( + int32(c.handle), int32(schemaPtr), + int32(op), int32(ptr))) + ret = int(int32(c.wrp.Read32(ptr))) case FCNTL_DATA_VERSION: - rc = res_t(c.call("sqlite3_file_control", - stk_t(c.handle), stk_t(schemaPtr), - stk_t(op), stk_t(ptr))) - ret = util.Read32[uint32](c.mod, ptr) + rc = res_t(c.wrp.Xsqlite3_file_control( + int32(c.handle), int32(schemaPtr), + int32(op), int32(ptr))) + ret = uint32(c.wrp.Read32(ptr)) case FCNTL_LOCKSTATE: - rc = res_t(c.call("sqlite3_file_control", - stk_t(c.handle), stk_t(schemaPtr), - stk_t(op), stk_t(ptr))) - ret = util.Read32[vfs.LockLevel](c.mod, ptr) + rc = res_t(c.wrp.Xsqlite3_file_control( + int32(c.handle), int32(schemaPtr), + int32(op), int32(ptr))) + ret = vfs.LockLevel(c.wrp.Read32(ptr)) case FCNTL_VFSNAME, FCNTL_VFS_POINTER: - rc = res_t(c.call("sqlite3_file_control", - stk_t(c.handle), stk_t(schemaPtr), - stk_t(FCNTL_VFS_POINTER), stk_t(ptr))) + rc = res_t(c.wrp.Xsqlite3_file_control( + int32(c.handle), int32(schemaPtr), + int32(FCNTL_VFS_POINTER), int32(ptr))) if rc == _OK { const zNameOffset = 16 - ptr = util.Read32[ptr_t](c.mod, ptr) - ptr = util.Read32[ptr_t](c.mod, ptr+zNameOffset) - name := util.ReadString(c.mod, ptr, _MAX_NAME) + ptr = ptr_t(c.wrp.Read32(ptr)) + ptr = ptr_t(c.wrp.Read32(ptr + zNameOffset)) + name := c.wrp.ReadString(ptr, _MAX_NAME) if op == FCNTL_VFS_POINTER { ret = vfs.Find(name) } else { @@ -174,14 +171,14 @@ func (c *Conn) FileControl(schema string, op FcntlOpcode, arg ...any) (any, erro } case FCNTL_FILE_POINTER, FCNTL_JOURNAL_POINTER: - rc = res_t(c.call("sqlite3_file_control", - stk_t(c.handle), stk_t(schemaPtr), - stk_t(op), stk_t(ptr))) + rc = res_t(c.wrp.Xsqlite3_file_control( + int32(c.handle), int32(schemaPtr), + int32(op), int32(ptr))) if rc == _OK { const fileHandleOffset = 4 - ptr = util.Read32[ptr_t](c.mod, ptr) - ptr = util.Read32[ptr_t](c.mod, ptr+fileHandleOffset) - ret = util.GetHandle(c.ctx, ptr) + ptr = ptr_t(c.wrp.Read32(ptr)) + ptr = ptr_t(c.wrp.Read32(ptr + fileHandleOffset)) + ret = c.wrp.GetHandle(ptr) } } @@ -196,7 +193,7 @@ func (c *Conn) FileControl(schema string, op FcntlOpcode, arg ...any) (any, erro // // https://sqlite.org/c3ref/limit.html func (c *Conn) Limit(id LimitCategory, value int) int { - v := int32(c.call("sqlite3_limit", stk_t(c.handle), stk_t(id), stk_t(value))) + v := int32(c.wrp.Xsqlite3_limit(int32(c.handle), int32(id), int32(value))) return int(v) } @@ -208,40 +205,39 @@ func (c *Conn) SetAuthorizer(cb func(action AuthorizerActionCode, name3rd, name4 if cb != nil { enable = 1 } - rc := res_t(c.call("sqlite3_set_authorizer_go", stk_t(c.handle), stk_t(enable))) + rc := res_t(c.wrp.Xsqlite3_set_authorizer_go(int32(c.handle), enable)) if err := c.error(rc); err != nil { return err } c.authorizer = cb return nil - } -func authorizerCallback(ctx context.Context, mod api.Module, pDB ptr_t, action AuthorizerActionCode, zName3rd, zName4th, zSchema, zInner ptr_t) (rc AuthorizerReturnCode) { - if c, ok := ctx.Value(connKey{}).(*Conn); ok && c.handle == pDB && c.authorizer != nil { +func (e env) Xgo_authorizer(pDB, action, zName3rd, zName4th, zSchema, zInner int32) (rc int32) { + if c, ok := e.DB.(*Conn); ok && c.handle == ptr_t(pDB) && c.authorizer != nil { var name3rd, name4th, schema, inner string if zName3rd != 0 { - name3rd = util.ReadString(mod, zName3rd, _MAX_NAME) + name3rd = e.ReadString(ptr_t(zName3rd), _MAX_NAME) } if zName4th != 0 { - name4th = util.ReadString(mod, zName4th, _MAX_NAME) + name4th = e.ReadString(ptr_t(zName4th), _MAX_NAME) } if zSchema != 0 { - schema = util.ReadString(mod, zSchema, _MAX_NAME) + schema = e.ReadString(ptr_t(zSchema), _MAX_NAME) } if zInner != 0 { - inner = util.ReadString(mod, zInner, _MAX_NAME) + inner = e.ReadString(ptr_t(zInner), _MAX_NAME) } - rc = c.authorizer(action, name3rd, name4th, schema, inner) + return int32(c.authorizer(AuthorizerActionCode(action), name3rd, name4th, schema, inner)) } - return rc + return _OK } // Trace registers a trace callback function against the database connection. // // https://sqlite.org/c3ref/trace_v2.html func (c *Conn) Trace(mask TraceEvent, cb func(evt TraceEvent, arg1 any, arg2 any) error) error { - rc := res_t(c.call("sqlite3_trace_go", stk_t(c.handle), stk_t(mask))) + rc := res_t(c.wrp.Xsqlite3_trace_go(int32(c.handle), int32(mask))) if err := c.error(rc); err != nil { return err } @@ -249,30 +245,30 @@ func (c *Conn) Trace(mask TraceEvent, cb func(evt TraceEvent, arg1 any, arg2 any return nil } -func traceCallback(ctx context.Context, mod api.Module, evt TraceEvent, pDB, pArg1, pArg2 ptr_t) (rc res_t) { - if c, ok := ctx.Value(connKey{}).(*Conn); ok && c.handle == pDB && c.trace != nil { +func (e env) Xgo_trace(evt, pDB, pArg1, pArg2 int32) int32 { + if c, ok := e.DB.(*Conn); ok && c.handle == ptr_t(pDB) && c.trace != nil { var arg1, arg2 any - if evt == TRACE_CLOSE { + if TraceEvent(evt) == TRACE_CLOSE { arg1 = c } else { for _, s := range c.stmts { - if pArg1 == s.handle { + if ptr_t(pArg1) == s.handle { arg1 = s - switch evt { + switch TraceEvent(evt) { case TRACE_STMT: arg2 = s.SQL() case TRACE_PROFILE: - arg2 = util.Read64[int64](mod, pArg2) + arg2 = int64(e.Read64(ptr_t(pArg2))) } break } } } if arg1 != nil { - _ = c.trace(evt, arg1, arg2) + _ = c.trace(TraceEvent(evt), arg1, arg2) } } - return rc + return _OK } // WALCheckpoint checkpoints a WAL database. @@ -283,15 +279,15 @@ func (c *Conn) WALCheckpoint(schema string, mode CheckpointMode) (nLog, nCkpt in return 0, 0, INTERRUPT } - defer c.arena.mark()() - nLogPtr := c.arena.new(ptrlen) - nCkptPtr := c.arena.new(ptrlen) - schemaPtr := c.arena.string(schema) - rc := res_t(c.call("sqlite3_wal_checkpoint_v2", - stk_t(c.handle), stk_t(schemaPtr), stk_t(mode), - stk_t(nLogPtr), stk_t(nCkptPtr))) - nLog = int(util.Read32[int32](c.mod, nLogPtr)) - nCkpt = int(util.Read32[int32](c.mod, nCkptPtr)) + defer c.arena.Mark()() + nLogPtr := c.arena.New(ptrlen) + nCkptPtr := c.arena.New(ptrlen) + schemaPtr := c.arena.String(schema) + rc := res_t(c.wrp.Xsqlite3_wal_checkpoint_v2( + int32(c.handle), int32(schemaPtr), int32(mode), + int32(nLogPtr), int32(nCkptPtr))) + nLog = int(int32(c.wrp.Read32(nLogPtr))) + nCkpt = int(int32(c.wrp.Read32(nCkptPtr))) return nLog, nCkpt, c.error(rc) } @@ -299,7 +295,7 @@ func (c *Conn) WALCheckpoint(schema string, mode CheckpointMode) (nLog, nCkpt in // // https://sqlite.org/c3ref/wal_autocheckpoint.html func (c *Conn) WALAutoCheckpoint(pages int) error { - rc := res_t(c.call("sqlite3_wal_autocheckpoint", stk_t(c.handle), stk_t(pages))) + rc := res_t(c.wrp.Xsqlite3_wal_autocheckpoint(int32(c.handle), int32(pages))) return c.error(rc) } @@ -312,17 +308,18 @@ func (c *Conn) WALHook(cb func(db *Conn, schema string, pages int) error) { if cb != nil { enable = 1 } - c.call("sqlite3_wal_hook_go", stk_t(c.handle), stk_t(enable)) + c.wrp.Xsqlite3_wal_hook_go(int32(c.handle), enable) c.wal = cb } -func walCallback(ctx context.Context, mod api.Module, _, pDB, zSchema ptr_t, pages int32) (rc res_t) { - if c, ok := ctx.Value(connKey{}).(*Conn); ok && c.handle == pDB && c.wal != nil { - schema := util.ReadString(mod, zSchema, _MAX_NAME) +func (e env) Xgo_wal_hook(_, pDB, zSchema, pages int32) int32 { + if c, ok := e.DB.(*Conn); ok && c.handle == ptr_t(pDB) && c.wal != nil { + schema := e.ReadString(ptr_t(zSchema), _MAX_NAME) err := c.wal(c, schema, int(pages)) - _, rc = errorCode(err, ERROR) + _, rc := errorCode(err, ERROR) + return int32(rc) } - return rc + return _OK } // AutoVacuumPages registers a autovacuum compaction amount callback. @@ -331,30 +328,30 @@ func walCallback(ctx context.Context, mod api.Module, _, pDB, zSchema ptr_t, pag func (c *Conn) AutoVacuumPages(cb func(schema string, dbPages, freePages, bytesPerPage uint) uint) error { var funcPtr ptr_t if cb != nil { - funcPtr = util.AddHandle(c.ctx, cb) + funcPtr = c.wrp.AddHandle(cb) } - rc := res_t(c.call("sqlite3_autovacuum_pages_go", stk_t(c.handle), stk_t(funcPtr))) + rc := res_t(c.wrp.Xsqlite3_autovacuum_pages_go(int32(c.handle), int32(funcPtr))) return c.error(rc) } -func autoVacuumCallback(ctx context.Context, mod api.Module, pApp, zSchema ptr_t, nDbPage, nFreePage, nBytePerPage uint32) uint32 { - fn := util.GetHandle(ctx, pApp).(func(schema string, dbPages, freePages, bytesPerPage uint) uint) - schema := util.ReadString(mod, zSchema, _MAX_NAME) - return uint32(fn(schema, uint(nDbPage), uint(nFreePage), uint(nBytePerPage))) +func (e env) Xgo_autovacuum_pages(pApp, zSchema, nDbPage, nFreePage, nBytePerPage int32) int32 { + fn := e.GetHandle(ptr_t(pApp)).(func(schema string, dbPages, freePages, bytesPerPage uint) uint) + schema := e.ReadString(ptr_t(zSchema), _MAX_NAME) + return int32(fn(schema, uint(uint32(nDbPage)), uint(uint32(nFreePage)), uint(uint32(nBytePerPage)))) } // SoftHeapLimit imposes a soft limit on heap size. // // https://sqlite.org/c3ref/hard_heap_limit64.html func (c *Conn) SoftHeapLimit(n int64) int64 { - return int64(c.call("sqlite3_soft_heap_limit64", stk_t(n))) + return c.wrp.Xsqlite3_soft_heap_limit64(n) } // HardHeapLimit imposes a hard limit on heap size. // // https://sqlite.org/c3ref/hard_heap_limit64.html func (c *Conn) HardHeapLimit(n int64) int64 { - return int64(c.call("sqlite3_hard_heap_limit64", stk_t(n))) + return c.wrp.Xsqlite3_hard_heap_limit64(n) } // EnableChecksums enables checksums on a database. @@ -382,7 +379,7 @@ func (c *Conn) EnableChecksums(schema string) error { } if r != 8 { // Invalid value. - return util.ErrorString("sqlite3: reserve bytes must be 8, is: " + strconv.Itoa(r.(int))) + return errutil.ErrorString("sqlite3: reserve bytes must be 8, is: " + strconv.Itoa(r.(int))) } // VACUUM the database. diff --git a/conn.go b/conn.go index 5794b16e..f6565a74 100644 --- a/conn.go +++ b/conn.go @@ -11,9 +11,8 @@ import ( "strings" "time" - "github.com/tetratelabs/wazero/api" - - "github.com/ncruces/go-sqlite3/internal/util" + "github.com/ncruces/go-sqlite3/internal/errutil" + "github.com/ncruces/go-sqlite3/internal/sqlite3_wrap" "github.com/ncruces/go-sqlite3/vfs" ) @@ -22,7 +21,7 @@ import ( // // https://sqlite.org/c3ref/sqlite3.html type Conn struct { - *sqlite + wrp *sqlite3_wrap.Wrapper interrupt context.Context stmts []*Stmt @@ -38,7 +37,7 @@ type Conn struct { busy1st time.Time busylst time.Time - arena arena + arena sqlite3_wrap.Arena handle ptr_t gosched uint8 } @@ -69,8 +68,6 @@ func OpenFlags(filename string, flags OpenFlag) (*Conn, error) { return newConn(context.Background(), filename, flags) } -type connKey = util.ConnKey - func newConn(ctx context.Context, filename string, flags OpenFlag) (ret *Conn, _ error) { err := ctx.Err() if err != nil { @@ -78,24 +75,23 @@ func newConn(ctx context.Context, filename string, flags OpenFlag) (ret *Conn, _ } c := &Conn{interrupt: ctx} - c.sqlite, err = instantiateSQLite() + c.wrp, err = createWrapper(ctx) if err != nil { return nil, err } defer func() { if ret == nil { c.Close() - c.sqlite.close() } else { c.interrupt = context.Background() } }() - c.ctx = context.WithValue(c.ctx, connKey{}, c) + c.wrp.DB = c if logger := defaultLogger.Load(); logger != nil { c.ConfigLog(*logger) } - c.arena = c.newArena() + c.arena = c.wrp.NewArena() c.handle, err = c.openDB(filename, flags) if err == nil { err = initExtensions(c) @@ -107,20 +103,20 @@ func newConn(ctx context.Context, filename string, flags OpenFlag) (ret *Conn, _ } func (c *Conn) openDB(filename string, flags OpenFlag) (ptr_t, error) { - defer c.arena.mark()() - connPtr := c.arena.new(ptrlen) - namePtr := c.arena.string(filename) + defer c.arena.Mark()() + connPtr := c.arena.New(ptrlen) + namePtr := c.arena.String(filename) flags |= OPEN_EXRESCODE - rc := res_t(c.call("sqlite3_open_v2", stk_t(namePtr), stk_t(connPtr), stk_t(flags), 0)) + rc := res_t(c.wrp.Xsqlite3_open_v2(int32(namePtr), int32(connPtr), int32(flags), 0)) - handle := util.Read32[ptr_t](c.mod, connPtr) - if err := c.sqlite.error(rc, handle); err != nil { + handle := ptr_t(c.wrp.Read32(connPtr)) + if err := c.errorFor(handle, rc); err != nil { c.closeDB(handle) return 0, err } - c.call("sqlite3_progress_handler_go", stk_t(handle), 1000) + c.wrp.Xsqlite3_progress_handler_go(int32(handle), 1000) if flags|OPEN_URI != 0 && strings.HasPrefix(filename, "file:") { var pragmas strings.Builder if _, after, ok := strings.Cut(filename, "?"); ok { @@ -132,9 +128,9 @@ func (c *Conn) openDB(filename string, flags OpenFlag) (ptr_t, error) { } } if pragmas.Len() != 0 { - pragmaPtr := c.arena.string(pragmas.String()) - rc := res_t(c.call("sqlite3_exec", stk_t(handle), stk_t(pragmaPtr), 0, 0, 0)) - if err := c.sqlite.error(rc, handle, pragmas.String()); err != nil { + pragmaPtr := c.arena.String(pragmas.String()) + rc := res_t(c.wrp.Xsqlite3_exec(int32(handle), int32(pragmaPtr), 0, 0, 0)) + if err := c.errorFor(handle, rc, pragmas.String()); err != nil { err = fmt.Errorf("sqlite3: invalid _pragma: %w", err) c.closeDB(handle) return 0, err @@ -145,8 +141,8 @@ func (c *Conn) openDB(filename string, flags OpenFlag) (ptr_t, error) { } func (c *Conn) closeDB(handle ptr_t) { - rc := res_t(c.call("sqlite3_close_v2", stk_t(handle))) - if err := c.sqlite.error(rc, handle); err != nil { + rc := res_t(c.wrp.Xsqlite3_close_v2(int32(handle))) + if err := c.errorFor(handle, rc); err != nil { panic(err) } } @@ -165,13 +161,13 @@ func (c *Conn) Close() error { return nil } - rc := res_t(c.call("sqlite3_close", stk_t(c.handle))) + rc := res_t(c.wrp.Xsqlite3_close(int32(c.handle))) if err := c.error(rc); err != nil { return err } c.handle = 0 - return c.close() + return c.wrp.Close() } // Exec is a convenience function that allows an application to run @@ -186,9 +182,9 @@ func (c *Conn) Exec(sql string) error { } func (c *Conn) exec(sql string) error { - defer c.arena.mark()() - textPtr := c.arena.string(sql) - rc := res_t(c.call("sqlite3_exec", stk_t(c.handle), stk_t(textPtr), 0, 0, 0)) + defer c.arena.Mark()() + textPtr := c.arena.String(sql) + rc := res_t(c.wrp.Xsqlite3_exec(int32(c.handle), int32(textPtr), 0, 0, 0)) return c.error(rc, sql) } @@ -211,18 +207,18 @@ func (c *Conn) PrepareFlags(sql string, flags PrepareFlag) (stmt *Stmt, tail str return nil, "", INTERRUPT } - defer c.arena.mark()() - stmtPtr := c.arena.new(ptrlen) - tailPtr := c.arena.new(ptrlen) - textPtr := c.arena.string(sql) + defer c.arena.Mark()() + stmtPtr := c.arena.New(ptrlen) + tailPtr := c.arena.New(ptrlen) + textPtr := c.arena.String(sql) - rc := res_t(c.call("sqlite3_prepare_v3", stk_t(c.handle), - stk_t(textPtr), stk_t(len(sql)+1), stk_t(flags), - stk_t(stmtPtr), stk_t(tailPtr))) + rc := res_t(c.wrp.Xsqlite3_prepare_v3(int32(c.handle), + int32(textPtr), int32(len(sql)+1), int32(flags), + int32(stmtPtr), int32(tailPtr))) stmt = &Stmt{c: c, sql: sql} - stmt.handle = util.Read32[ptr_t](c.mod, stmtPtr) - if sql := sql[util.Read32[ptr_t](c.mod, tailPtr)-textPtr:]; sql != "" { + stmt.handle = ptr_t(c.wrp.Read32(stmtPtr)) + if sql := sql[ptr_t(c.wrp.Read32(tailPtr))-textPtr:]; sql != "" { tail = sql } @@ -240,11 +236,11 @@ func (c *Conn) PrepareFlags(sql string, flags PrepareFlag) (stmt *Stmt, tail str // // https://sqlite.org/c3ref/db_name.html func (c *Conn) DBName(n int) string { - ptr := ptr_t(c.call("sqlite3_db_name", stk_t(c.handle), stk_t(n))) + ptr := ptr_t(c.wrp.Xsqlite3_db_name(int32(c.handle), int32(n))) if ptr == 0 { return "" } - return util.ReadString(c.mod, ptr, _MAX_NAME) + return c.wrp.ReadString(ptr, _MAX_NAME) } // Filename returns the filename for a database. @@ -253,11 +249,11 @@ func (c *Conn) DBName(n int) string { func (c *Conn) Filename(schema string) *vfs.Filename { var ptr ptr_t if schema != "" { - defer c.arena.mark()() - ptr = c.arena.string(schema) + defer c.arena.Mark()() + ptr = c.arena.String(schema) } - ptr = ptr_t(c.call("sqlite3_db_filename", stk_t(c.handle), stk_t(ptr))) - return vfs.GetFilename(c.ctx, c.mod, ptr, vfs.OPEN_MAIN_DB) + ptr = ptr_t(c.wrp.Xsqlite3_db_filename(int32(c.handle), int32(ptr))) + return vfs.GetFilename(c.wrp, ptr, vfs.OPEN_MAIN_DB) } // ReadOnly determines if a database is read-only. @@ -266,10 +262,10 @@ func (c *Conn) Filename(schema string) *vfs.Filename { func (c *Conn) ReadOnly(schema string) (ro bool, ok bool) { var ptr ptr_t if schema != "" { - defer c.arena.mark()() - ptr = c.arena.string(schema) + defer c.arena.Mark()() + ptr = c.arena.String(schema) } - b := int32(c.call("sqlite3_db_readonly", stk_t(c.handle), stk_t(ptr))) + b := c.wrp.Xsqlite3_db_readonly(int32(c.handle), int32(ptr)) return b > 0, b < 0 } @@ -277,7 +273,7 @@ func (c *Conn) ReadOnly(schema string) (ro bool, ok bool) { // // https://sqlite.org/c3ref/get_autocommit.html func (c *Conn) GetAutocommit() bool { - b := int32(c.call("sqlite3_get_autocommit", stk_t(c.handle))) + b := c.wrp.Xsqlite3_get_autocommit(int32(c.handle)) return b != 0 } @@ -286,7 +282,7 @@ func (c *Conn) GetAutocommit() bool { // // https://sqlite.org/c3ref/last_insert_rowid.html func (c *Conn) LastInsertRowID() int64 { - return int64(c.call("sqlite3_last_insert_rowid", stk_t(c.handle))) + return c.wrp.Xsqlite3_last_insert_rowid(int32(c.handle)) } // SetLastInsertRowID allows the application to set the value returned by @@ -294,7 +290,7 @@ func (c *Conn) LastInsertRowID() int64 { // // https://sqlite.org/c3ref/set_last_insert_rowid.html func (c *Conn) SetLastInsertRowID(id int64) { - c.call("sqlite3_set_last_insert_rowid", stk_t(c.handle), stk_t(id)) + c.wrp.Xsqlite3_set_last_insert_rowid(int32(c.handle), id) } // Changes returns the number of rows modified, inserted or deleted @@ -303,7 +299,7 @@ func (c *Conn) SetLastInsertRowID(id int64) { // // https://sqlite.org/c3ref/changes.html func (c *Conn) Changes() int64 { - return int64(c.call("sqlite3_changes64", stk_t(c.handle))) + return c.wrp.Xsqlite3_changes64(int32(c.handle)) } // TotalChanges returns the number of rows modified, inserted or deleted @@ -312,14 +308,14 @@ func (c *Conn) Changes() int64 { // // https://sqlite.org/c3ref/total_changes.html func (c *Conn) TotalChanges() int64 { - return int64(c.call("sqlite3_total_changes64", stk_t(c.handle))) + return c.wrp.Xsqlite3_total_changes64(int32(c.handle)) } // ReleaseMemory frees memory used by a database connection. // // https://sqlite.org/c3ref/db_release_memory.html func (c *Conn) ReleaseMemory() error { - rc := res_t(c.call("sqlite3_db_release_memory", stk_t(c.handle))) + rc := res_t(c.wrp.Xsqlite3_db_release_memory(int32(c.handle))) return c.error(rc) } @@ -351,8 +347,8 @@ func (c *Conn) SetInterrupt(ctx context.Context) (old context.Context) { return old } -func progressCallback(ctx context.Context, mod api.Module, _ ptr_t) (interrupt int32) { - if c, ok := ctx.Value(connKey{}).(*Conn); ok { +func (e env) Xgo_progress_handler(_ int32) (interrupt int32) { + if c, ok := e.DB.(*Conn); ok { if c.gosched++; c.gosched%16 == 0 { runtime.Gosched() } @@ -368,13 +364,13 @@ func progressCallback(ctx context.Context, mod api.Module, _ ptr_t) (interrupt i // https://sqlite.org/c3ref/busy_timeout.html func (c *Conn) BusyTimeout(timeout time.Duration) error { ms := min((timeout+time.Millisecond-1)/time.Millisecond, math.MaxInt32) - rc := res_t(c.call("sqlite3_busy_timeout", stk_t(c.handle), stk_t(ms))) + rc := res_t(c.wrp.Xsqlite3_busy_timeout(int32(c.handle), int32(ms))) return c.error(rc) } -func timeoutCallback(ctx context.Context, mod api.Module, count, tmout int32) (retry int32) { +func (e env) Xgo_busy_timeout(count, tmout int32) (retry int32) { // https://fractaledmind.github.io/2024/04/15/sqlite-on-rails-the-how-and-why-of-optimal-performance/ - if c, ok := ctx.Value(connKey{}).(*Conn); ok && c.interrupt.Err() == nil { + if c, ok := e.DB.(*Conn); ok && c.interrupt.Err() == nil { switch { case count == 0: c.busy1st = time.Now() @@ -399,7 +395,7 @@ func (c *Conn) BusyHandler(cb func(ctx context.Context, count int) (retry bool)) if cb != nil { enable = 1 } - rc := res_t(c.call("sqlite3_busy_handler_go", stk_t(c.handle), stk_t(enable))) + rc := res_t(c.wrp.Xsqlite3_busy_handler_go(int32(c.handle), enable)) if err := c.error(rc); err != nil { return err } @@ -407,8 +403,8 @@ func (c *Conn) BusyHandler(cb func(ctx context.Context, count int) (retry bool)) return nil } -func busyCallback(ctx context.Context, mod api.Module, pDB ptr_t, count int32) (retry int32) { - if c, ok := ctx.Value(connKey{}).(*Conn); ok && c.handle == pDB && c.busy != nil { +func (e env) Xgo_busy_handler(pDB, count int32) (retry int32) { + if c, ok := e.DB.(*Conn); ok && c.handle == ptr_t(pDB) && c.busy != nil { if interrupt := c.interrupt; interrupt.Err() == nil && c.busy(interrupt, int(count)) { retry = 1 @@ -421,20 +417,20 @@ func busyCallback(ctx context.Context, mod api.Module, pDB ptr_t, count int32) ( // // https://sqlite.org/c3ref/db_status.html func (c *Conn) Status(op DBStatus, reset bool) (current, highwater int64, err error) { - defer c.arena.mark()() - hiPtr := c.arena.new(8) - curPtr := c.arena.new(8) + defer c.arena.Mark()() + hiPtr := c.arena.New(8) + curPtr := c.arena.New(8) var i int32 if reset { i = 1 } - rc := res_t(c.call("sqlite3_db_status64", stk_t(c.handle), - stk_t(op), stk_t(curPtr), stk_t(hiPtr), stk_t(i))) + rc := res_t(c.wrp.Xsqlite3_db_status64(int32(c.handle), + int32(op), int32(curPtr), int32(hiPtr), i)) if err = c.error(rc); err == nil { - current = util.Read64[int64](c.mod, curPtr) - highwater = util.Read64[int64](c.mod, hiPtr) + current = int64(c.wrp.Read64(curPtr)) + highwater = int64(c.wrp.Read64(hiPtr)) } return } @@ -443,7 +439,7 @@ func (c *Conn) Status(op DBStatus, reset bool) (current, highwater int64, err er // // https://sqlite.org/c3ref/table_column_metadata.html func (c *Conn) TableColumnMetadata(schema, table, column string) (declType, collSeq string, notNull, primaryKey, autoInc bool, err error) { - defer c.arena.mark()() + defer c.arena.Mark()() var ( declTypePtr ptr_t collSeqPtr ptr_t @@ -454,38 +450,78 @@ func (c *Conn) TableColumnMetadata(schema, table, column string) (declType, coll schemaPtr ptr_t ) if column != "" { - declTypePtr = c.arena.new(ptrlen) - collSeqPtr = c.arena.new(ptrlen) - notNullPtr = c.arena.new(ptrlen) - primaryKeyPtr = c.arena.new(ptrlen) - autoIncPtr = c.arena.new(ptrlen) - columnPtr = c.arena.string(column) + declTypePtr = c.arena.New(ptrlen) + collSeqPtr = c.arena.New(ptrlen) + notNullPtr = c.arena.New(ptrlen) + primaryKeyPtr = c.arena.New(ptrlen) + autoIncPtr = c.arena.New(ptrlen) + columnPtr = c.arena.String(column) } if schema != "" { - schemaPtr = c.arena.string(schema) + schemaPtr = c.arena.String(schema) } - tablePtr := c.arena.string(table) + tablePtr := c.arena.String(table) - rc := res_t(c.call("sqlite3_table_column_metadata", stk_t(c.handle), - stk_t(schemaPtr), stk_t(tablePtr), stk_t(columnPtr), - stk_t(declTypePtr), stk_t(collSeqPtr), - stk_t(notNullPtr), stk_t(primaryKeyPtr), stk_t(autoIncPtr))) + rc := res_t(c.wrp.Xsqlite3_table_column_metadata(int32(c.handle), + int32(schemaPtr), int32(tablePtr), int32(columnPtr), + int32(declTypePtr), int32(collSeqPtr), + int32(notNullPtr), int32(primaryKeyPtr), int32(autoIncPtr))) if err = c.error(rc); err == nil && column != "" { - if ptr := util.Read32[ptr_t](c.mod, declTypePtr); ptr != 0 { - declType = util.ReadString(c.mod, ptr, _MAX_NAME) + if ptr := ptr_t(c.wrp.Read32(declTypePtr)); ptr != 0 { + declType = c.wrp.ReadString(ptr, _MAX_NAME) } - if ptr := util.Read32[ptr_t](c.mod, collSeqPtr); ptr != 0 { - collSeq = util.ReadString(c.mod, ptr, _MAX_NAME) + if ptr := ptr_t(c.wrp.Read32(collSeqPtr)); ptr != 0 { + collSeq = c.wrp.ReadString(ptr, _MAX_NAME) } - notNull = util.ReadBool(c.mod, notNullPtr) - autoInc = util.ReadBool(c.mod, autoIncPtr) - primaryKey = util.ReadBool(c.mod, primaryKeyPtr) + notNull = c.wrp.ReadBool(notNullPtr) + autoInc = c.wrp.ReadBool(autoIncPtr) + primaryKey = c.wrp.ReadBool(primaryKeyPtr) } return } func (c *Conn) error(rc res_t, sql ...string) error { - return c.sqlite.error(rc, c.handle, sql...) + return c.errorFor(c.handle, rc, sql...) +} + +func (c *Conn) errorFor(handle ptr_t, rc res_t, sql ...string) error { + if rc == _OK { + return nil + } + + if ErrorCode(rc) == NOMEM || xErrorCode(rc) == IOERR_NOMEM { + panic(errutil.OOMErr) + } + + var msg, query string + if handle != 0 { + if ptr := ptr_t(c.wrp.Xsqlite3_errmsg(int32(handle))); ptr != 0 { + msg = c.wrp.ReadString(ptr, _MAX_LENGTH) + msg = strings.TrimPrefix(msg, "sqlite3: ") + msg = strings.TrimPrefix(msg, sqlite3_wrap.ErrorCodeString(rc)[len("sqlite3: "):]) + msg = strings.TrimPrefix(msg, ": ") + if msg == "" || msg == "not an error" { + msg = "" + } + } + + if len(sql) != 0 { + if i := int32(c.wrp.Xsqlite3_error_offset(int32(handle))); i != -1 { + query = sql[0][i:] + } + } + } + + var sys error + switch ErrorCode(rc) { + case CANTOPEN, IOERR: + sys = c.wrp.SysError + } + + if sys != nil || msg != "" || query != "" { + return &Error{code: rc, sys: sys, msg: msg, sql: query} + } + return xErrorCode(rc) } // Stmts returns an iterator for the prepared statements diff --git a/const.go b/const.go index 5614efbb..8deb76b3 100644 --- a/const.go +++ b/const.go @@ -3,7 +3,7 @@ package sqlite3 import ( "strconv" - "github.com/ncruces/go-sqlite3/internal/util" + "github.com/ncruces/go-sqlite3/internal/sqlite3_wrap" ) const ( @@ -15,14 +15,13 @@ const ( _MAX_LENGTH = 1e9 _MAX_SQL_LENGTH = 1e9 - ptrlen = util.PtrLen - intlen = util.IntLen + ptrlen = sqlite3_wrap.PtrLen + intlen = sqlite3_wrap.IntLen ) type ( - stk_t = util.Stk_t - ptr_t = util.Ptr_t - res_t = util.Res_t + ptr_t = sqlite3_wrap.Ptr_t + res_t = sqlite3_wrap.Res_t ) // ErrorCode is a result code that [Error.Code] might return. diff --git a/context.go b/context.go index 154e94f4..e444f2bb 100644 --- a/context.go +++ b/context.go @@ -2,10 +2,9 @@ package sqlite3 import ( "errors" - "math" "time" - "github.com/ncruces/go-sqlite3/internal/util" + "github.com/ncruces/go-sqlite3/internal/errutil" ) // Context is the context in which an SQL function executes. @@ -30,16 +29,16 @@ func (ctx Context) Conn() *Conn { // // https://sqlite.org/c3ref/get_auxdata.html func (ctx Context) SetAuxData(n int, data any) { - ptr := util.AddHandle(ctx.c.ctx, data) - ctx.c.call("sqlite3_set_auxdata_go", stk_t(ctx.handle), stk_t(n), stk_t(ptr)) + ptr := ctx.c.wrp.AddHandle(data) + ctx.c.wrp.Xsqlite3_set_auxdata_go(int32(ctx.handle), int32(n), int32(ptr)) } // GetAuxData returns metadata for argument n of the function. // // https://sqlite.org/c3ref/get_auxdata.html func (ctx Context) GetAuxData(n int) any { - ptr := ptr_t(ctx.c.call("sqlite3_get_auxdata", stk_t(ctx.handle), stk_t(n))) - return util.GetHandle(ctx.c.ctx, ptr) + ptr := ptr_t(ctx.c.wrp.Xsqlite3_get_auxdata(int32(ctx.handle), int32(n))) + return ctx.c.wrp.GetHandle(ptr) } // ResultBool sets the result of the function to a bool. @@ -66,25 +65,25 @@ func (ctx Context) ResultInt(value int) { // // https://sqlite.org/c3ref/result_blob.html func (ctx Context) ResultInt64(value int64) { - ctx.c.call("sqlite3_result_int64", - stk_t(ctx.handle), stk_t(value)) + ctx.c.wrp.Xsqlite3_result_int64( + int32(ctx.handle), value) } // ResultFloat sets the result of the function to a float64. // // https://sqlite.org/c3ref/result_blob.html func (ctx Context) ResultFloat(value float64) { - ctx.c.call("sqlite3_result_double", - stk_t(ctx.handle), stk_t(math.Float64bits(value))) + ctx.c.wrp.Xsqlite3_result_double( + int32(ctx.handle), value) } // ResultText sets the result of the function to a string. // // https://sqlite.org/c3ref/result_blob.html func (ctx Context) ResultText(value string) { - ptr := ctx.c.newString(value) - ctx.c.call("sqlite3_result_text_go", - stk_t(ctx.handle), stk_t(ptr), stk_t(len(value))) + ptr := ctx.c.wrp.NewString(value) + ctx.c.wrp.Xsqlite3_result_text_go( + int32(ctx.handle), int32(ptr), int64(len(value))) } // ResultRawText sets the text result of the function to a []byte. @@ -102,25 +101,25 @@ func (ctx Context) ResultBlob(value []byte) { ctx.ResultZeroBlob(0) return } - ptr := ctx.c.newBytes(value) - ctx.c.call("sqlite3_result_blob_go", - stk_t(ctx.handle), stk_t(ptr), stk_t(len(value))) + ptr := ctx.c.wrp.NewBytes(value) + ctx.c.wrp.Xsqlite3_result_blob_go( + int32(ctx.handle), int32(ptr), int64(len(value))) } // ResultZeroBlob sets the result of the function to a zero-filled, length n BLOB. // // https://sqlite.org/c3ref/result_blob.html func (ctx Context) ResultZeroBlob(n int64) { - ctx.c.call("sqlite3_result_zeroblob64", - stk_t(ctx.handle), stk_t(n)) + ctx.c.wrp.Xsqlite3_result_zeroblob64( + int32(ctx.handle), n) } // ResultNull sets the result of the function to NULL. // // https://sqlite.org/c3ref/result_blob.html func (ctx Context) ResultNull() { - ctx.c.call("sqlite3_result_null", - stk_t(ctx.handle)) + ctx.c.wrp.Xsqlite3_result_null( + int32(ctx.handle)) } // ResultTime sets the result of the function to a [time.Time]. @@ -140,19 +139,19 @@ func (ctx Context) ResultTime(value time.Time, format TimeFormat) { case float64: ctx.ResultFloat(v) default: - panic(util.AssertErr()) + panic(errutil.AssertErr()) } } func (ctx Context) resultRFC3339Nano(value time.Time) { const maxlen = 48 - ptr := ctx.c.new(maxlen) - buf := util.View(ctx.c.mod, ptr, maxlen) + ptr := ctx.c.wrp.New(maxlen) + buf := ctx.c.wrp.Slice(ptr, maxlen) buf = value.AppendFormat(buf[:0], time.RFC3339Nano) _ = append(buf, 0) - ctx.c.call("sqlite3_result_text_go", - stk_t(ctx.handle), stk_t(ptr), stk_t(len(buf))) + ctx.c.wrp.Xsqlite3_result_text_go( + int32(ctx.handle), int32(ptr), int64(len(buf))) } // ResultPointer sets the result of the function to NULL, just like [Context.ResultNull], @@ -161,9 +160,9 @@ func (ctx Context) resultRFC3339Nano(value time.Time) { // // https://sqlite.org/c3ref/result_blob.html func (ctx Context) ResultPointer(ptr any) { - valPtr := util.AddHandle(ctx.c.ctx, ptr) - ctx.c.call("sqlite3_result_pointer_go", - stk_t(ctx.handle), stk_t(valPtr)) + valPtr := ctx.c.wrp.AddHandle(ptr) + ctx.c.wrp.Xsqlite3_result_pointer_go( + int32(ctx.handle), int32(valPtr)) } // ResultValue sets the result of the function to a copy of [Value]. @@ -174,8 +173,8 @@ func (ctx Context) ResultValue(value Value) { ctx.ResultError(MISUSE) return } - ctx.c.call("sqlite3_result_value", - stk_t(ctx.handle), stk_t(value.handle)) + ctx.c.wrp.Xsqlite3_result_value( + int32(ctx.handle), int32(value.handle)) } // ResultError sets the result of the function an error. @@ -183,25 +182,25 @@ func (ctx Context) ResultValue(value Value) { // https://sqlite.org/c3ref/result_blob.html func (ctx Context) ResultError(err error) { if errors.Is(err, NOMEM) { - ctx.c.call("sqlite3_result_error_nomem", stk_t(ctx.handle)) + ctx.c.wrp.Xsqlite3_result_error_nomem(int32(ctx.handle)) return } if errors.Is(err, TOOBIG) { - ctx.c.call("sqlite3_result_error_toobig", stk_t(ctx.handle)) + ctx.c.wrp.Xsqlite3_result_error_toobig(int32(ctx.handle)) return } msg, code := errorCode(err, ERROR) if msg != "" { - defer ctx.c.arena.mark()() - ptr := ctx.c.arena.string(msg) - ctx.c.call("sqlite3_result_error", - stk_t(ctx.handle), stk_t(ptr), stk_t(len(msg))) + defer ctx.c.arena.Mark()() + ptr := ctx.c.arena.String(msg) + ctx.c.wrp.Xsqlite3_result_error( + int32(ctx.handle), int32(ptr), int32(len(msg))) } if code != res_t(ERROR) { - ctx.c.call("sqlite3_result_error_code", - stk_t(ctx.handle), stk_t(code)) + ctx.c.wrp.Xsqlite3_result_error_code( + int32(ctx.handle), int32(code)) } } @@ -209,8 +208,8 @@ func (ctx Context) ResultError(err error) { // // https://sqlite.org/c3ref/result_subtype.html func (ctx Context) ResultSubtype(t uint) { - ctx.c.call("sqlite3_result_subtype", - stk_t(ctx.handle), stk_t(uint32(t))) + ctx.c.wrp.Xsqlite3_result_subtype( + int32(ctx.handle), int32(t)) } // VTabNoChange may return true if a column is being fetched as part @@ -218,6 +217,6 @@ func (ctx Context) ResultSubtype(t uint) { // // https://sqlite.org/c3ref/vtab_nochange.html func (ctx Context) VTabNoChange() bool { - b := int32(ctx.c.call("sqlite3_vtab_nochange", stk_t(ctx.handle))) + b := int32(ctx.c.wrp.Xsqlite3_vtab_nochange(int32(ctx.handle))) return b != 0 } diff --git a/driver/driver.go b/driver/driver.go index b362d9b0..35d70c2c 100644 --- a/driver/driver.go +++ b/driver/driver.go @@ -1,10 +1,8 @@ // Package driver provides a database/sql driver for SQLite. // // Importing package driver registers a [database/sql] driver named "sqlite3". -// You may also need to import package embed. // // import _ "github.com/ncruces/go-sqlite3/driver" -// import _ "github.com/ncruces/go-sqlite3/embed" // // The data source name for "sqlite3" databases can be a filename or a "file:" [URI]. // @@ -110,6 +108,7 @@ import ( "unsafe" "github.com/ncruces/go-sqlite3" + "github.com/ncruces/go-sqlite3/internal/errutil" "github.com/ncruces/go-sqlite3/internal/util" ) @@ -343,7 +342,7 @@ func (c *conn) BeginTx(ctx context.Context, opts driver.TxOptions) (driver.Tx, e var txLock string switch opts.Isolation { default: - return nil, util.IsolationErr + return nil, errutil.IsolationErr case driver.IsolationLevel(sql.LevelLinearizable): txLock = "exclusive" case driver.IsolationLevel(sql.LevelSerializable): @@ -405,7 +404,7 @@ func (c *conn) PrepareContext(ctx context.Context, query string) (driver.Stmt, e } if notWhitespace(tail) { s.Close() - return nil, util.TailErr + return nil, errutil.TailErr } return &stmt{Stmt: s, tmRead: c.tmRead, tmWrite: c.tmWrite, inputs: -2}, nil } @@ -549,7 +548,7 @@ func (s *stmt) setupBindings(args []driver.NamedValue) (err error) { case nil: err = s.Stmt.BindNull(id) default: - panic(util.AssertErr()) + panic(errutil.AssertErr()) } if err != nil { return err diff --git a/driver/driver_test.go b/driver/driver_test.go index b59dd2fa..541a2998 100644 --- a/driver/driver_test.go +++ b/driver/driver_test.go @@ -12,9 +12,8 @@ import ( "time" "github.com/ncruces/go-sqlite3" - _ "github.com/ncruces/go-sqlite3/embed" - _ "github.com/ncruces/go-sqlite3/internal/testcfg" - "github.com/ncruces/go-sqlite3/internal/util" + "github.com/ncruces/go-sqlite3/internal/errutil" + "github.com/ncruces/go-sqlite3/internal/testcfg" "github.com/ncruces/go-sqlite3/vfs/memdb" ) @@ -33,13 +32,14 @@ func Test_Open_error(t *testing.T) { func Test_Open_dir(t *testing.T) { t.Parallel() + ctx := testcfg.Context(t) db, err := Open(".") if err != nil { t.Fatal(err) } defer db.Close() - _, err = db.Conn(context.TODO()) + _, err = db.Conn(ctx) if err == nil { t.Fatal("want error") } @@ -54,6 +54,7 @@ func Test_Open_pragma(t *testing.T) { "_pragma": {"busy_timeout(1000)"}, }) + ctx := testcfg.Context(t) db, err := Open(dsn) if err != nil { t.Fatal(err) @@ -61,7 +62,7 @@ func Test_Open_pragma(t *testing.T) { defer db.Close() var timeout int - err = db.QueryRow(`PRAGMA busy_timeout`).Scan(&timeout) + err = db.QueryRowContext(ctx, `PRAGMA busy_timeout`).Scan(&timeout) if err != nil { t.Fatal(err) } @@ -76,13 +77,14 @@ func Test_Open_pragma_invalid(t *testing.T) { "_pragma": {"busy_timeout 1000"}, }) + ctx := testcfg.Context(t) db, err := Open(dsn) if err != nil { t.Fatal(err) } defer db.Close() - _, err = db.Conn(context.TODO()) + _, err = db.Conn(ctx) if err == nil { t.Fatal("want error") } @@ -105,18 +107,19 @@ func Test_Open_txLock(t *testing.T) { "_pragma": {"busy_timeout(1000)"}, }) + ctx := testcfg.Context(t) db, err := Open(dsn) if err != nil { t.Fatal(err) } defer db.Close() - tx1, err := db.Begin() + tx1, err := db.BeginTx(ctx, nil) if err != nil { t.Fatal(err) } - _, err = db.Begin() + _, err = db.BeginTx(ctx, nil) if err == nil { t.Error("want error") } @@ -156,23 +159,24 @@ func Test_BeginTx(t *testing.T) { "_pragma": {"busy_timeout(0)"}, }) + ctx := testcfg.Context(t) db, err := Open(dsn) if err != nil { t.Fatal(err) } defer db.Close() - _, err = db.BeginTx(t.Context(), &sql.TxOptions{Isolation: sql.LevelReadCommitted}) - if err.Error() != string(util.IsolationErr) { + _, err = db.BeginTx(ctx, &sql.TxOptions{Isolation: sql.LevelReadCommitted}) + if err.Error() != string(errutil.IsolationErr) { t.Error("want isolationErr") } - tx1, err := db.BeginTx(t.Context(), &sql.TxOptions{ReadOnly: true}) + tx1, err := db.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { t.Fatal(err) } - tx2, err := db.BeginTx(t.Context(), &sql.TxOptions{ReadOnly: true}) + tx2, err := db.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) if err != nil { t.Fatal(err) } @@ -200,13 +204,14 @@ func Test_nested_context(t *testing.T) { t.Parallel() dsn := memdb.TestDB(t) + ctx := testcfg.Context(t) db, err := Open(dsn) if err != nil { t.Fatal(err) } defer db.Close() - tx, err := db.Begin() + tx, err := db.BeginTx(ctx, nil) if err != nil { t.Fatal(err) } @@ -233,7 +238,7 @@ func Test_nested_context(t *testing.T) { want(outer, 0) - ctx, cancel := context.WithCancel(t.Context()) + ctx, cancel := context.WithCancel(ctx) defer cancel() inner, err := tx.QueryContext(ctx, `SELECT value FROM generate_series(0)`) @@ -258,6 +263,7 @@ func Test_Prepare(t *testing.T) { t.Parallel() dsn := memdb.TestDB(t) + ctx := testcfg.Context(t) db, err := Open(dsn) if err != nil { t.Fatal(err) @@ -265,7 +271,7 @@ func Test_Prepare(t *testing.T) { defer db.Close() var serr *sqlite3.Error - _, err = db.Prepare(`SELECT`) + _, err = db.PrepareContext(ctx, `SELECT`) if err == nil { t.Error("want error") } @@ -279,18 +285,18 @@ func Test_Prepare(t *testing.T) { t.Error("got message:", got) } - _, err = db.Prepare(`SELECT 1; `) + _, err = db.PrepareContext(ctx, `SELECT 1; `) if err != nil { t.Error(err) } - _, err = db.Prepare(`SELECT 1; SELECT`) - if err.Error() != string(util.TailErr) { + _, err = db.PrepareContext(ctx, `SELECT 1; SELECT`) + if err.Error() != string(errutil.TailErr) { t.Error("want tailErr") } - _, err = db.Prepare(`SELECT 1; SELECT 2`) - if err.Error() != string(util.TailErr) { + _, err = db.PrepareContext(ctx, `SELECT 1; SELECT 2`) + if err.Error() != string(errutil.TailErr) { t.Error("want tailErr") } } @@ -299,26 +305,27 @@ func Test_QueryRow_named(t *testing.T) { t.Parallel() dsn := memdb.TestDB(t) + ctx := testcfg.Context(t) db, err := Open(dsn) if err != nil { t.Fatal(err) } defer db.Close() - conn, err := db.Conn(t.Context()) + conn, err := db.Conn(ctx) if err != nil { t.Fatal(err) } defer conn.Close() - stmt, err := conn.PrepareContext(t.Context(), `SELECT ?, ?5, :AAA, @AAA, $AAA`) + stmt, err := conn.PrepareContext(ctx, `SELECT ?, ?5, :AAA, @AAA, $AAA`) if err != nil { t.Fatal(err) } defer stmt.Close() date := time.Now() - row := stmt.QueryRow(true, sql.Named("AAA", math.Pi), nil /*3*/, nil /*4*/, date /*5*/) + row := stmt.QueryRowContext(ctx, true, sql.Named("AAA", math.Pi), nil /*3*/, nil /*4*/, date /*5*/) var first bool var fifth time.Time @@ -349,13 +356,14 @@ func Test_QueryRow_blob_null(t *testing.T) { t.Parallel() dsn := memdb.TestDB(t) + ctx := testcfg.Context(t) db, err := Open(dsn) if err != nil { t.Fatal(err) } defer db.Close() - rows, err := db.Query(` + rows, err := db.QueryContext(ctx, ` SELECT NULL UNION ALL SELECT x'cafe' UNION ALL SELECT x'babe' UNION ALL @@ -388,6 +396,7 @@ func Test_time(t *testing.T) { "_timefmt": {fmt}, }) + ctx := testcfg.Context(t) db, err := Open(dsn) if err != nil { t.Fatal(err) @@ -396,18 +405,18 @@ func Test_time(t *testing.T) { twosday := time.Date(2022, 2, 22, 22, 22, 22, 0, time.UTC) - _, err = db.Exec(`CREATE TABLE test (at DATETIME)`) + _, err = db.ExecContext(ctx, `CREATE TABLE test (at DATETIME)`) if err != nil { t.Fatal(err) } - _, err = db.Exec(`INSERT INTO test VALUES (?)`, twosday) + _, err = db.ExecContext(ctx, `INSERT INTO test VALUES (?)`, twosday) if err != nil { t.Fatal(err) } var got time.Time - err = db.QueryRow(`SELECT * FROM test`).Scan(&got) + err = db.QueryRowContext(ctx, `SELECT * FROM test`).Scan(&got) if err != nil { t.Fatal(err) } @@ -433,13 +442,14 @@ func Test_ColumnType_ScanType(t *testing.T) { t.Parallel() dsn := memdb.TestDB(t) + ctx := testcfg.Context(t) db, err := Open(dsn) if err != nil { t.Fatal(err) } defer db.Close() - _, err = db.Exec(` + _, err = db.ExecContext(ctx, ` CREATE TABLE test ( col_int INTEGER, col_real REAL, @@ -464,7 +474,7 @@ func Test_ColumnType_ScanType(t *testing.T) { t.Fatal(err) } - rows, err := db.Query(`SELECT * FROM test`) + rows, err := db.QueryContext(ctx, `SELECT * FROM test`) if err != nil { t.Fatal(err) } @@ -521,6 +531,7 @@ func Test_ColumnType_ScanType(t *testing.T) { } func Benchmark_loop(b *testing.B) { + ctx := testcfg.Context(b) db, err := Open(":memory:") if err != nil { b.Fatal(err) @@ -528,7 +539,7 @@ func Benchmark_loop(b *testing.B) { defer db.Close() var version string - err = db.QueryRow(`SELECT sqlite_version();`).Scan(&version) + err = db.QueryRowContext(ctx, `SELECT sqlite_version();`).Scan(&version) if err != nil { b.Fatal(err) } diff --git a/driver/example2_test.go b/driver/example2_test.go index d955963b..b25fabd8 100644 --- a/driver/example2_test.go +++ b/driver/example2_test.go @@ -9,7 +9,6 @@ import ( "github.com/ncruces/go-sqlite3" _ "github.com/ncruces/go-sqlite3/driver" - _ "github.com/ncruces/go-sqlite3/embed" _ "github.com/ncruces/go-sqlite3/vfs/memdb" ) diff --git a/driver/example_test.go b/driver/example_test.go index 68ec74f9..e9811a1a 100644 --- a/driver/example_test.go +++ b/driver/example_test.go @@ -11,7 +11,6 @@ import ( "os" _ "github.com/ncruces/go-sqlite3/driver" - _ "github.com/ncruces/go-sqlite3/embed" _ "github.com/ncruces/go-sqlite3/vfs/memdb" ) diff --git a/driver/json_test.go b/driver/json_test.go index 7581f24d..9c299103 100644 --- a/driver/json_test.go +++ b/driver/json_test.go @@ -6,7 +6,6 @@ import ( "github.com/ncruces/go-sqlite3" "github.com/ncruces/go-sqlite3/driver" - _ "github.com/ncruces/go-sqlite3/embed" _ "github.com/ncruces/go-sqlite3/vfs/memdb" ) diff --git a/driver/savepoint_test.go b/driver/savepoint_test.go index 49b94375..427b6844 100644 --- a/driver/savepoint_test.go +++ b/driver/savepoint_test.go @@ -5,8 +5,6 @@ import ( "log" "github.com/ncruces/go-sqlite3/driver" - _ "github.com/ncruces/go-sqlite3/embed" - _ "github.com/ncruces/go-sqlite3/internal/testcfg" _ "github.com/ncruces/go-sqlite3/vfs/memdb" ) diff --git a/driver/util_test.go b/driver/util_test.go index 8919c4c3..44443455 100644 --- a/driver/util_test.go +++ b/driver/util_test.go @@ -5,8 +5,7 @@ import ( "slices" "testing" - _ "github.com/ncruces/go-sqlite3/embed" - _ "github.com/ncruces/go-sqlite3/internal/testcfg" + "github.com/ncruces/go-sqlite3/internal/testcfg" ) func Test_namedValues(t *testing.T) { @@ -55,7 +54,8 @@ func Fuzz_notWhitespace(f *testing.F) { t.SkipNow() } - c, err := db.Conn(t.Context()) + ctx := testcfg.Context(t) + c, err := db.Conn(ctx) if err != nil { t.Fatal(err) } diff --git a/embed/README.md b/embed/README.md deleted file mode 100644 index 0ab85074..00000000 --- a/embed/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Embeddable Wasm build of SQLite - -This folder includes an embeddable Wasm build of SQLite 3.51.2 for use with -[`github.com/ncruces/go-sqlite3`](https://pkg.go.dev/github.com/ncruces/go-sqlite3). - -The following optional features are compiled in: -- [math functions](https://sqlite.org/lang_mathfunc.html) -- [FTS5](https://sqlite.org/fts5.html) -- [JSON](https://sqlite.org/json1.html) -- [R*Tree](https://sqlite.org/rtree.html) -- [GeoPoly](https://sqlite.org/geopoly.html) -- [Spellfix1](https://sqlite.org/spellfix1.html) -- [soundex](https://sqlite.org/lang_corefunc.html#soundex) -- [stat4](https://sqlite.org/compile.html#enable_stat4) -- [base64](https://github.com/sqlite/sqlite/blob/master/ext/misc/base64.c) -- [decimal](https://github.com/sqlite/sqlite/blob/master/ext/misc/decimal.c) -- [ieee754](https://github.com/sqlite/sqlite/blob/master/ext/misc/ieee754.c) -- [regexp](https://github.com/sqlite/sqlite/blob/master/ext/misc/regexp.c) -- [series](https://github.com/sqlite/sqlite/blob/master/ext/misc/series.c) -- [uint](https://github.com/sqlite/sqlite/blob/master/ext/misc/uint.c) -- [time](../sqlite3/time.c) - -See the [configuration options](../sqlite3/sqlite_opt.h), -and [patches](../sqlite3) applied. - -Built using [`wasi-sdk`](https://github.com/WebAssembly/wasi-sdk), -and [`binaryen`](https://github.com/WebAssembly/binaryen). - -The build is easily reproducible, and verifiable, using -[Artifact Attestations](https://github.com/ncruces/go-sqlite3/attestations). - -### Customizing the build - -You can use your own custom build of SQLite. - -Examples of custom builds of SQLite are: -- [`github.com/ncruces/go-sqlite3/embed/bcw2`](https://github.com/ncruces/go-sqlite3/tree/main/embed/bcw2) - built from a branch supporting [`BEGIN CONCURRENT`](https://sqlite.org/src/doc/begin-concurrent/doc/begin_concurrent.md) - and [Wal2](https://sqlite.org/cgi/src/doc/wal2/doc/wal2.md). -- [`github.com/asg017/sqlite-vec-go-bindings/ncruces`](https://github.com/asg017/sqlite-vec-go-bindings) - which includes the [`sqlite-vec`](https://github.com/asg017/sqlite-vec) vector search extension. \ No newline at end of file diff --git a/embed/bcw2/.gitignore b/embed/bcw2/.gitignore deleted file mode 100644 index c7e08054..00000000 --- a/embed/bcw2/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -build/ -sqlite/ \ No newline at end of file diff --git a/embed/bcw2/README.md b/embed/bcw2/README.md deleted file mode 100644 index bbc2603e..00000000 --- a/embed/bcw2/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# Embeddable Wasm build of SQLite - -This folder includes an alternative embeddable Wasm build of SQLite, -which includes the experimental -[`BEGIN CONCURRENT`](https://sqlite.org/src/doc/begin-concurrent/doc/begin_concurrent.md) and -[Wal2](https://sqlite.org/cgi/src/doc/wal2/doc/wal2.md) patches. - -It also enables the optional -[`UPDATE … ORDER BY … LIMIT`](https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses) and -[`DELETE … ORDER BY … LIMIT`](https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses) clauses, -and the [`WITHIN GROUP ORDER BY`](https://sqlite.org/compile.html#enable_ordered_set_aggregates) aggregate syntax. - -> [!IMPORTANT] -> This package is experimental. -> It is built from the `bedrock` branch of SQLite, -> since that is _currently_ the most stable, maintained branch to include these features. - -> [!CAUTION] -> The Wal2 journaling mode creates databases that other versions of SQLite cannot access. - -The build is easily reproducible, and verifiable, using -[Artifact Attestations](https://github.com/ncruces/go-sqlite3/attestations). \ No newline at end of file diff --git a/embed/bcw2/bcw2.wasm b/embed/bcw2/bcw2.wasm deleted file mode 100755 index bff5ec56902d4ee775df1fe490484af2fc0efd25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1446805 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Ξb&obali(<{$5z{EW4lsrl3Q| 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

S?+P^de#wv! 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

  • dXd@pFN0!k>w2bm2%P2q5G77d+l>YQ4lTy=ghbJVhH|mqpu8^?z7nA5l ziHu`|sLl80Kr1Dv?5wb;I`u_Gf=V3p6PY7&AAz)V>6MX=t?;(LvuWdaE)?_hCP2UHd-}lLVFK{mNB^rk=V6xKE*uRUKKO`$$bOPB;LrP zd8Vo;-E_u3@V`v9py?h#AN1q&4ZT?$J~5mR_lRs%F{;lts;Z~za3hBE;WAldD}uVN zaK3nqQW=jVuEzLrauCDGCivMHmovM9uo~lXvgiSBLUsX|@~%&6@`+-VnvSZ%kWge3 z?{71F-@+(A9CIfELt@Ngin%$Zm?IkqPIva&a$%YCJc5^C=r_P8mz^t2F zqpj?sAOpI&aZ8gSt6@EYxRU-(A`L;E2AfIbbPHtTy@f`9Uzic#A8A@mPt;){=_6F7W{;8 z#N^eOTuXwHhPxjy!8krxJXjOqGcS^nUQx}x8~RxvQUF^enM@DPL$6B{QOQW;r8JpS z$f@Ort{IGb`-FLT(R1)9PI{|dzL9fC{^4t7uY2J)KJQ-lCMs69wY6K1^8{fr^mi9h43D^-=f=B zt>f*50L6B+8gS2Li}jX3UVRTfMr~(qAu5b0vydT@L09Na?0`GRaTKVua-Rw>)4^f- zLJI}?NzV$|MHXr33vp2I{jDlhxWgl7i+u3w*@#`G_QLDHz$Idkq7OUGMJqAS+gjge zDzE>Q7zs9q8(TrnxXeAOF%|G28GrxU9BmgB3!)sC;KBsg@5n1x7& zSGg9Mn|)?lc+{FP_KLBm1b8XjoKUSk8%z6Vr`^$-(AYm(=Sa#J%ptNpW3s&=lI;zv zlI?UVaA!tjdt6gwdzG3)`lC3a1;(LukZ7FR@iKtsu$wJpSB2gC!=vwW;+!7t*<^^! zNW2@-E)8w*c2DO9SB};z$Z$}sL)0YLY+-OE_r-cO+$=b|4mc65Kp@Ar9TzdyE*KMxb3jg3*G1R!}d`-OfZo>Gw#o7ZbIPg)so%AEbuT$+AQEfl1 zs5YjQn2OX-Bh~h0MYSogJQeB8vQ(rqHL86=d%$Pv(jE369D)UWL#AJ7LpXe-!7@k3 z`;BbG=XV3nS&=TT3qgAq(r*Y`M ztcFg3+U9k6=V7HO7Kl`_Z%l~c8C z;%tGn>XkZooNtw*O(j+L_GnuG352?US#-tzVhn`?_Hzo>enR{`jp!k|FP2U2MOV;& zd%gQwk9XG9Q{Ak^S$5HuQ=M;myfN)pzp#oL139%oVVABT>8PZTf&$#F$GPgL0li_v zHaLJs*lFHoJOxPdC@TPpq z>!4sIz7ca=!WrT|u6Uvru>ej|&G(kM$&tdxx(A$Q5qe2CF7eP5uRElDMcsqk^htZC z$}^+{3U?K*<9Hiyrp5Ab!SbVDnRCu{-I}zH|C46%S>9?jxN5?M5&0qBe6As$>=fik zd+`BW-wz&4M?!S~eGlHeWHaEciXcb3$Q9KC7OO%GhUg{g=T`llslq=B+)*b@mruMEK4vPX2oNTt4v5RLD>yw1RQ}lM~44q986F%|WMmg0f;FnHOfk(nF4&v&wRJj)R4l;RaMVKIqRB}Q`|wJ0z9 zcS~vX0S=!YaPlgc>tqL*^2h~%Z6+z&N(b4=D9&ljLT%n$pbW#x;mWOitxOTHchZKO z-0ogN3YZ+_;SSS^OF-WHedXn$YY$74_vyzv`lkl9p!Db{ubFc{yi5 zSM`9ww-$g;0#pQ-YNEM(slsNMXeg;B8t`nN9G+E9vZ_2lHaAi;i6E=cR`|Y%^tNzc zOqGivkVTz^`+du*C2usK#*3?GOa28{hx% z=3ANthRd1x7OO+2pjmnf564fWh*RVybhx6nj_qOs)wQEB(Hu8<_^{_fIxW%DzJ9*1 zLmn_(~Ym*n-b7+==-xR z&^{ecd~5ps-~@EQ&=>Q2ON#G+bT@Bd-Eyu@F4z$!G6omXA7gMe$~B;FdIjjBj>Ic~ z3#l-!hinUf;h!Ie#eYr0$wT(R8o;HujmF_1!9CPP=uvyH-e@AopxW?)k!B^G!< zc%P)VZI}TEA!?C6SBRox+QD31^nJ{lcp(H2N3F>PrDX|^k9b}hoFTtDr5(c-Zv+aP zH{vPn4Os__Im`eASV){NJ9#}pkwqdajP!nI4ifYD4&T(_@634n@}&N9yf4n<}@ z%Ot0apIUZ39UZSqY*k+Kg#&;ki3LclOkyFGhNdc(|H4DDP75mkSc70P_A0WzR9y-s zwGxS#qG7`<-(%vLA&2fr-(`gk?dj9o<4rsiLdY9P$djcsXPeF{Io`0L7$tr5vPwvGI=w+F~gPYd5Iu z@`}&MJ?Nq}O!z7chK-)31(?BUG*Q~+hau7}s=<>yx?H1Ur#tr1CmdZqHM&fS_PFK~ zjE>l%%f)ub7E+0`2<#q0*(2~a*QQv8^OX9;Ky|_*AaJkP!{jbXJt)C1Pm}MCk5`NvybfO*NC|RwE8rD2Phs*=OZQ)Ha zg*T%bf;{2pYe>5sL0BZhVIfG_ml8o%htWz1;`Nni!I{&iB3GB{zr`VR&`uSG;qzj% z-lG`@TvX@rIbg{PHk`j0uF{U7mOYvUd=($&;O#g9@t>f9f(guz;huZ7_9G(np9m2+ zqf~Hbr!@qnswqTRrKa*OH!jyW$1oqs4LhV2dSE5&A3mtCFx`p#BBOulgY9td2iscF z7|IH?k&MFntgwe&IcRIvrAD}+coeTm<0$_zZQC@U+NJ5$d)UpSs=~H-p;EDX2Xh(B zH1Of@QwKP4NGBN5hkyAXZb;RMzLC(OivVA0E7H6DX}wRRKA_yTWg&LhDe}ox8j1tq z5jIt^cuhj6u|OpR;>Iw}Y}hH9sS(9Jr#{?=MLXVG%A#4b|8UXV+j#A@5a4kOW&Nt2 z8qqtIXe>x9Xr7xV0pF^QLmqHM%qI0LxmaEY-X`HScQyyF&r7y2;z_w1Ke-qxI(SFc z>-}OQYaMF*j2Q%rRa{rKS*0c=YqU)q=D{8t+yaI8WVF~aLu5!h)@z6_Xr+vr2bdz} z3OMkfan&e4NP+{s?odo2y8{%-18^Te9t(9AV-a&FNV<>=^O}AKgows36*=S1gg=pG z%pB{#VcDN!&*PlPzJ$p7AELwNkRyA?=8nC9{oz@oGbr{fRlguixTEm{I(?^{+jt+fB zDZX;LytMv#-zag4C(@JB?@%%}Scd{6%bJhZ6Eike*X0EZc}!$& z-?O)R+=wOlRnfWhRy(#pAJ_aU#FE7)F<1`(#>>?cvo+nVxHN<{*l^UHi3gjph%l!n zj;yEua-++k0)@Wrh2cEr{4( z4z=E$lXwmt4FZm5v@6_K{OEV+XplP}>czO&Dt^>qG&&kY3ap(rSkNpO(rwh3^-4*} zulC~FC`dT~AMH(f@6$PZhD@DDjpGL){y&NI(xjZ2U)k!OVtkbOOthN-ui8oSpNNAv z{v>$@p~VRtCpKIRogSG7!7)<#$iGL+aTj+OVlO?e?%osY*q8ZVuO2R z`ti1;CN?Hof!iQNJFPpMWtrKPb|)%~U5>N_5mUw3>e!Tvuo&6ns43+bEOWONQ4pJr zt=mFu6i=cH6FGscm{m_Mp*s*LK2h#>_Mqgwj5O8I(Wq^~V@y~A!$6pH2>$Z+$+w;kK0@dvmOK&Y?3$8dM*<1Ht+xZ#1TXhHKFFb9;rOuD zW<3Irx%5$;gteOBwR9rIBmi8|@J=##0T(9QRY+^g+o1Ly(n!)>$`Od0zj51eRv)ka z*5HtZAJ`v`{IWM!1`=sxX#x@Ce1W~$)qC?pd$ZS$X7}EmT)p?6y6m*UQ<=ZsA zB@*Kxkr;ZLh1U436ed5?RJ^kzKi>HX;WY8n=xP{Q?}GH`7k96iQ;b~9LYGLopj2*I zXmSiB?T|ZYh;fv;9P!^mXxc^11E*x;Gd8K=s6|~BTfww<5cK`N5?D+bS#JIGfR!uv z*u&_ZpU~6rp7qa8BM$2s+4C83|hu z2228k5J>C^M6|I8?nx#gfnbOUW&$)c(1C^q!?+V?0>PO!!~x5m-+%3W&ONtYDnEeC zd`PzLdF-Lp z+!DM3-^eHhpx}cLjSMPENtI#DphR*ft0(wocGB&^;=6HJaUza^_hO#YA6W}ylfF!WU0;1Gc79Nc7|Ku2uD&KTt-#1 zG*?y2#6s09B35+}QnkGNtRehZE5inOM+2cBfM+@lcks3>L0BLfYJj0t4FGpFz+R4F z1CeWhpCt`&yaWyOss<8`pzVNThOsbfs{xWjx&{>DrRv+R`cP}bk~;AslFQ^k2^YXA zfO#+yS|z`2Q&tsbn&W*ixWF^_u<6$BI05d!Leb>`>wH9B93O=sHI1s!WhvH0BNwg! zw2FarYresCg;;fmK0mETVho!q#&FcHU3l`t%@&c1orX3YbCKYv)OFleU;N!`>#T&a zQ6luDsl~-gM#XKv-xw~6vf$mLT~O&~V=qH1sxH`ogB1XHr~DF$Pb_QM^7C zLuP08mPhf*077tp3EVLCdc)ertJcL>BsxebXC`>8U!Vo1gtKHtvc(FrU=cn$?B6(h z+ZX)b!$+Kp7lITw>i;ZrJw_=phSTw39suw?{PMo?6LTc+lnjVY9YF7AUInE@4R?hGaf%8vl9D;NM4#0I0k-9!O4#brAv^{yNMvx)uGPtIT{=Km8(|iw zUp908A<;NI05<(QfYrkrmVzuFU9VRJ!b{cNGhN^C8=f85Nsk2@pi^7V_KwpVH%!BoU06V`4}WL||`AbgClL zI)HbX01Wm^v*SYx%OK)_E@D`dlEf1QmW5SKU<0!&u@iwF9;8sM#eLFdlix_^^IC10b4X-=;p3mI&h4*|RIC9Ap zR-0%_Q7HgyJPE=el8;2#v8sw`(mL-gd|djhIW<99$rp*~r}4UsRZ^Ztj8)Of#wr*S z;UCDe+SC&Czhe7w;vqfsztw~9#zT7fK=}mxPiD>w{2%ue^u`viPaZ{A!GzJS2I{H< zf@~OOR5QOfRE8NT_^BY6?cbR38_u?GJgST6sDBcdPm=OUqkPgl%9RSYj((UvT10^D zeS3E^?D*p+I?hMom>r&F$B+dUdW4t;TNbE7lkRgCBh#$)u>UpN1Pwu=P+MuSfR?Gh zvdD;r0s@31Y0g@!K?-deh72rNn>v|x_7M<9ELIRPk-%M!ew@oNf(`JtZh_*-?FI*MQdx?64_~Wnois>O zIx4zZoK@^7&eHIMDRGf~Q{n~SelSp$)@R5Rgd?8dROB%=f(OV?kbm?O0%Zc5 zBSDZe#clgIF~~XAA=0;N32V~$AYwWIe@N}X3)iWGs*OMuqCu%bIZ>s3A|vbc5h+%NWLIO$pR6WnmJVVG?a57 zi=z7V1TtYFO%SNlhI5skf;cR2L$tvKw&-Lw5qc^ejU+N2*)_3rmJJdO)Y#uv@}1@X?&3A$Mqm zNTWh5^#E6)vL7p}AwevB1;sG69MVex z4F9n(45Tf=6w2{Kspa?$^H=Jl1CJl3K@}1PDGh)oK#ZbVJ%V^$l3Oi;*d%%rfMD`q zTKYjOZtPBAR_Lb$In&n=BAE6;$m19+W3ucm>_Xa{LT!12Fr+sCKq55^n#V$!=jxxm z^S8t3kUoMDo}DHAZy0AMBt&LVh>Msd@m^+fZDHhb$hwb57_p#WL#%vNIq7k9?Qx0W z>7T?^{4z*~ENM%ZAr!I&^eGZU)DU55h(I`J(31}feOX=klVzj)GtnR5kEqQqiqtp@Jz3@lMZD< zgW+i;>V>3r{E7{abwRyB1rfjIZ=$_H<*_gXECy6PdIT5iiQ>6xM{t>npelhGLnMw( zE0UePr3DLOXBA#{1Q#SyMIzW?9558C#P}YNu*FRkD!-GK8y1xGo(OH9`i4};*i2*c zRA$OH0@$srRSZ_ZUL6JF`p%1Z6(zNPUtK3hc}p&qaQtFvWFB5h|r26x!F{_rOus5H6w_>y+7DmiDSnD)WV9|$w6 zZ@4+tXIk-KD=dSI(hE@Lq$@iBcZc*LyR z?qmVQdeE?`QTws3s1CJ%E)#5A>uLJ`EaeZzePmH_{K0sF6Ut1|fm6uHS}OL!QNi>F zv1mP>^%N#g*KE3f5M6s*%q)Flyo4tYLLgefoav?W5#5JOK|l#Yx{h@1AGteltN$Lb z+C8L@SzFc~^^aM&+$xaQ(P|%L`lWct!i`A^;GT;M>K?#;4g$0sQ*{mzK7+2)FkQ#< zcX4ZD&Zs5uNF}(ycxZMrC$l4QPy`hQj@{hL;j#7w9NR)S*zN>VL54Efr-{pNPZ*q4J}w)4uhasB<~b&=NsI;tVX8yNK5XNRk;1+>iETID2Xv_b*+CD$jyen z9zPnnMg%*=G1S%*>Jof|Yt;=d1wM);sOSt+QeK>O&9-8rwZWC966m26FX^b&s4fE& zzLB*hP5&~A!t29B(abEwB0a&|iJ!9{tKMgB`N*pqM=lu)q8Wf$nU39h5DkrGc``H} zCo{8Ey#HZJvL;t=f9@*YIx{o>vWVK-hrB-NOv^Szvy@_5mh}%_dc1#I3~LTBn>zhQ zaQkQIzxt0^l4 zAUVfvt1RTjW+5XiF~6YL`oHAywP@UffGG~7Z8IluH29lUCrH_mep%?AQs$t=g|3I! z|ERd0>73@=Ob5Va&1qd%AM5@R2^~WLyDr79tEw6ctYICJ_R4jxOTezxSqtQ-Tl*ia z7HeCB!u0JOwhWo;eb_w?IlQ^_We+O<`G(Se-XHa!w@3Wv3R=N`-d@pv-j)BHsoOPNJz& z9q>^PqLaV?ZbZ^XV*ck54M-(tnd!_I9I(lX#Kx-e@gS-G#7XEPp_~=X4E26#a8LYt zgT79Ma8sDFNY&M>t!WUZm2plldSEe7{8Xj+Q04Qc`a(uq+1KPpu@p__gu+6|V8qqY zS|Ar9%jkqwyGHR0g)+KQR>lJN8p^O!d`x@cT;mAmgq+b5`U6Xt)Fb7((YBwn?AYlY z7vv4>^(q$l0kBG{Gpxz1W;#j0PFyUy7fsQ5mK4=PaRlw+&ZGa*3}*!(oTp@iB1Yh~ zp&N(s6&zK-PWii?BAGL`t|1+>Rg$95;3$n~6>v^6JQQ6)?dU zKhG&cYJR}vOFRf^8{?*OMzDaO4vu`!ti}qhpfM~Na*r4cu|GWGPe-6J)GvQ%)k6 z2GRh-L^B|r=u@>6__d$UkQ2C35ZVsZU~2IDu2mt3F5y6^;`}JSh$c<4kt7(b%ygO0 zQL%x9kebUOmwQ}_2Epr>BF-1L+}13;z|6U=@=lsjrtAAp;!*AMTud~gXM$Ip?HX4DAjO~cOQYtq?#KRkHQ-6#8WB3 zhRz^J;nOCtxQcou$8C?arBD^EYo&D$xO2Wm-D5f@QqPq!wHpDCFnEIZBu6PdDCXWGiunrF0h^yn6l;iTPZ>;57yjUDOCt;59HpqZJgNYi0hvW% ziYmzC**AS!xlU*AzvHk-Qool?v4v&!=1*HdRLg?vy;n3Wy`o$=uP7I>`9QgFUQsTb zSCk9q73Bi2C?JkfYX%B-&9IvRm=jZ`IR8d%R4*7~fgyCv3Be6|=`v}|{!Q!9?58*U zcR&p$VOmEpVsyt*DiO`%jsry++Zf`q>i#df6iBcIcxv@HyOitj*g(Djktn%WX2lA{ z4KFXhxX!)^Z=^H4c5fePU8*mbv1ImBueeNHVfNFn$dc=h(fwrhjj#B{sR4Zle`i05 zYmY~tZ2haL*s2ERL=dJi;T#ZM8GL$U0^)hXviy)?z^+{+W%A zWHA+mgNTo8Cs{P0thAI`=b0%$9D^Z#oilw6%mzH;aS##>A>oR_^Ai^Td)qA&#l76a z>x%b%jl4wtSDGX8umby`+hw4|z=R7&Z%P-Aho-CX_5lms(&=#D*o1hukG`QZFi>-J zhSCLnL_jEh>X;74f%TD$Y+u9M$z#owTQmiw|x%BKp;f_A$*X54fJxHRbetnrlAi z>YQUoj~;ziz*;EArDdZ%S73K!FOGbWBnBW$;6HH510k-(mxjG!LP-6SU?9i#>~na z<6{c!IGQ&Wz((5j2iXfdw+=_<2g{))ZC}P7KW>7|BJ6%B&O#r7SqE@d5C$d zmKjwX4VR(OiS~-THil`Ug^D&O%kl9;AhGQF6%PN5`t%LM!++K`35^G?r#0eKaEG;y zz};vreP6 zAWW)HiD$IHb+*n4Wp#_yls!0pr>J&P<5r<|G#7MM+bJri2|Goz&U4ZCvHumHx;J4N zCjehsuv8tur$|ZirAQI$6w$xd&Z|lnVb{daq|qq11U#!WX`CbT0mc0Zwoh>;4K+j* z|4+m0pPD@-Yuui1UD2%Z6qz-il5M>%d#a9WeESXR8(W~NvuxF64Y4$;Sd^JBhZd@x z0<{PvAFOPq+{)5n$r@$pV4{~hl;$QqTxxF8GoUj%33{kWcxr6|OcfP8l**E{P7|{a z259s#OhOX_9Z9$61sknF_iEc#U7cQ+wXe4ClbIHOdE)Bx-5S%mqs%mu1R`ii6U?>z z4#igknU&xW_)x_w5Y)+ASYRmV|541bFor$ob(VHqA1RR0rKZYU?vQK+G>L*V}-;6}$qb{94Ir3jD$LKq)=rHspX zC<9zU8J&xleN9Jv;R2R{X0c_CjPVxvXE8;3jrB<-a8j`iOCL<&q%zr}c*G7#4A};6 zzI-eXG6Ms@F|01^!Y=L%EiaTzB*o(41xz)O3N!1PbF);)_@)o=aE03Ee2@D?cT}M7 z^g!}%RYz=fkZ8u*kzvWlf6A&Rm5j{#IbJgiu1d4)W-qD}OWkV!s4eUUgVnc`JnH(2 zzqy+wp(L4xrD%o=o7w|xWJ_cCjFoAaN-g^)v(R&hi72LZPP1;JnykPV{5@XNKx4iB!7t{QwfVChl2>hQ3{V8vTzY}nj)tedX_OR1Vj%_N-EXR`5 zmbJYamTbZ}Cp3+RXo^>W(+oHqU=*{vVtuYDv~H)qg2h>^Fi8(ESRxx_ytAj_wp=;% z%B4w6JJUq%9l2Z$g2&WS%pN# zO-z!|ORi8)$NA}OurWc&XOV#EniQmP!!CY4l~eq3FgOEF-Qe&Z*hJA`eJL1CmS$&M zK*MBujK=VY zpS}uXafW&iyba4BAbT+0BP3Y_BwdwUf)j4WY$Y?DL|43Nh=24XFn4{8*bE&^{S3=f zFsu>AX5V$SuxM?N_}q1LV)NsZ@|S#1BOaY0^I5ULl7v@)W`o${EmDi72-+HiK$LAywys4*L*z@EqzlGW)JZit4j4rIUV`6V z6bIDZ>IUbNh8Eagu$Pf+L{uDVo*Qes^Vg+$ZmdNCdV}@tgQqx?XE@vhh}FbzC}BI7 zHk9x{)@6CyivVTiXZsJ^2FsdtWU!tNFlGX$>z#=Ee^Q#0hnYx7g-~VPl0>u^$<{v^ zu*2&Ai1UDCz!}$G#+gb#s_cCbylhQOCqLNmES;kS3p0vfjFMD9K!D-~A%4U~g+jZi z=!V5iH_(9gqc|zDf?lcu<`Gd^(Gnj%One=!Mvw#{0maEjWI1XcDDEUHZ{RfR=j^9n zXiXQf>4NSwkmUALr|Q#Zu$ih-NjWXrl9HwOV1i*tSbL_gVl_rhy#vMKJ?#9$`)rMF z-M;`F7W>LcE&VJDQ1R6G`(p)DkWTr-F-O0o>L;#${^fO}c#sC~w+7kLOXYdXf(bNA z6UUpi=6OKclG+1SD(fRLAyvQCM~jg#fRGeh{oEjVd=poT_Xp}H0+#@_bw5-Aj0{MN zcOjrIF3u2f0$PXZk(f|BP0~(nP0=|bi3D*;Sh-E!F6C3ghI}te8@iIb45lKVz(nIV zhssD(z0*k_Y=ja$5v_;lzH%u(*vYI?*fPFtmyyzDgJVasgwS`GAqlx;5mj^ajnH+a z_Gjg_^m5XH)r#JTZh6VhOru|TyjyHC+uNYWY>u>b&AQ%XVbcJ0%0XF;W`c*{s^+~a zMj=YtX$eb8Qlk|PXrA46vLs+5Z)R?*k!sjZ&&bRKB5ijSqF!)vsq405HfFqJ65bv9 zNkE;67;*pGJ#E2*YK^MOeL_Bth;|9Pr}M=_rs-*(tk)m4s;cX)AS;R5;jtl(u*U+ep71+Sy#?++Z#mvc`JE`g%AM zfEWfyt4UJ&Jz@0?yH$@2T$j0`zPTvnsoiIg|W|J*|4AV~|6%X*l?wwJe_y zBbY%mHitAU>n)%|aRYgUisw{5A@SPcTfb@!A-%biny8C2)iD6@>h)i*KKjU#SD&~6 znsW7hwEjv`G;5v*mKIj?=!EY1x^giw5=1le=wLQ-Nh~7=u&DIvM1==fGzu_M56g}a z6h}V6p-=xT!gu&xI^pAw44Zc;{;1v(4;@&^9JY`b2zLZHt3rS-n zZ4!}Dl~+VLovZ}O+*Zq;1XL<>d{~;}^>C>MwRx#6PN|B#m^xw-Mt7$nSjv+MIAr%M*FOhPY;VzdWu@v-Vn| zvTa<9O&?s8EVW(EmOlK)qGKq|KJ{r;bNK$m*#S8U_`l#9%0K z7vK0+EvcU?5RMf1#PR|_;{-x9i)Anp8OMIZ(J&C5ppmA(9)hLNdm^g&#`p626 zXq2oh)Cv4F+){>UM^-s_g|2`-m9A#5`YCJrMg(l_!@6yboCHJ-^( zJ4|aBYCG%{mBxY=d|*N4)db2BY7oI@rVVIQ7*Z=@AhLf{ystsXxWdd9vD&xriqK=Z z7UCjWfXQGKh>9Cq^BkXPKCmLGp5C0!7vJ_zF}hpXxacpS*ilLE0zxL`rjjj04I*Z{ zI8pQ`mu-XJ{X2qNKF}^Y7i;S>RI6&BV3awUHJkg?04oRZv3xgp_%6huK=|l@q#O0W z`dAH5VWAq|*bKr()Mzwf{@0(Rk!-yuFz0p&f-MOh-_=f+uSHrRX=No zoeV5F7$1t;Gg2Mp1!S4UsDIPgAe6Zwbdm9pZ<%v+M}Vy#?jM$bqUn1BGIonu72iCG zNrizIuYOn;K>a}_B&W>LL^$?^zu+--*XMlKj zY`j~kvC+@PwKXy^Y#UmAAw%~aji{lpqq)s)Y((YooiXe>cvi2&CeGL4!NZw=6+84j za0}r`>$VVbG=vsHMg7~RjWQ@lCQqyIrFxw= zA=-_>6bB3PgQ}fq809wT(lyAWih|42GF<%6UpgAj-W4HMZ+~vd&O-N=aCTqe@^E%e z)b1WfYASB|6SDu(At}*$?6ymAO-j00woT!Q3}Wn@7>*loH=CF-)u%5_0BmwfqFS*R#OM?UnTP__W`@ z3`ewIam6o2RGfor{Et6(TnRLdY~MW=@hzX)oj3)Tz4f6*yv8Sk>cOK z0rr4W@v#6DA+@fh!F6gd1OTT&uMj^BO%cY1@sY$1nuCS{u|A=end0oH0F&kiJ>i1e zZ6=~G*HQDk%U`X<2hQg}k8Y~dpF;sxA`EMke%j&*cnXwZ#)|_2)qvK-A)0i7+15vv z^M(UQgMbsh#$7~Ikd6DCH)aq63?}qgWmbXDd1Gm@*cM>*(wNn&v6)oY!MO(aaD|!_JBxTuO|qQPr=>MP8r?POS&|ZXje0`r z**Vgm`pC+9Y-IGoK#`{ZPR314PZ-Z+dSdAXAu4;2Nf%-th(CHR(?YUBgl|%3ACf#R zTyRxekUtp4>*oRG-u&Ch>y`0L4AKsU`3o2aqG5SFOymq^=YY93#qbBQ7yfcajLkC- zSXe(EAocRdpL@ics6U1{1eQjB#{43@UWHm21w5i&Amsv8};`CK)0v#q$HpOSN8 zo+)EPgHn^$ai1F zQjQ1Kn5rtO*O6oV5JBuv(E0MbVqWtRQ-{+L!rB(xvXYGp}(G`kD_ z|4yqx@qY&FanK_1BP7-nKPJ{66RUX+SST#CxHvNI9*tgtI64WxMly8{cw z>0>X%)}&|x{8XymreJ`!EE)4&vyPWxI}8;a9y>9h73_Ocgl>## zLq0H|6qp5{hY*a5PeW1<=z`w|&A4utdMB;%0fg$vX^9^l9n23$v%U9os|?16g;*a^ z@YMag_51I+G!6GoseL@X3(Tm-@V?P8{BS1Z4PRVk48pm9(@A}gzX>j?$M^Br!~93m z-#gdt?`O;YvM0s*d;gEPzsJ|^?|&%!%f=Y%?}I<${(kgJYvKbK@MaO@=gNNHJfy*I z{6O({P?{;kzKn~#?H#0;RDSUf--njG8dC|1&zF7uCOsDp-yb={i%k96-5<~B`7^_} z5tH*sydRh9v$@u?*UlC9Tw**anm#Z(#vcx!`Rre;B?~37jdi1f51V?NW^E6l zN5@A_*BMS3FCFl8aAtfgoDE*6(Npjv8eRXR7|j@@hax2P8@v-zP4o2C53_^l&3Zs; zx5aCo6>V|vXh&b{q|0WdCQ`+nc}W+&ktvYKsRan7S$y(tKIfaaNWr%i~zPryleAh?fuz)R)*BHKvsVGfIy>p#Aa7KhOgwI*YopOJv+Z}`z z#Xw!sOwzwG!l$bwaPIbKMCKbpIPBd`k@~P-JA&xlxmJW55VQ5d!{^exC*TPw0vvienl{#WZZ^ zF8ccJejU$2qwW0mJoVd8r*Gt+7)?D8&ybW$z8a#Z3gGQt^Xn4G-O1 zS9D=i4>}Li4SqB>mcI_uFO_2vDL@|Ku&Kux$QaE+$%}1r)S0uc8bQ6gw8=Q4Q&PO#g#}-(TOPmrN{s2SS*K*|3`L}-8Iq|;;8(QsrT$n>>$Oq$k zjRkuNYrYON}JOmssz1@%x{&?(zF&ez)`c6@I7r{m=Yv^fORi0n2+1j5s z!Lg+Hzi5Vl!H7U>Gg&3b26RYI62+Az#ed=c9Nk-_R#N;m_m}A2C4)jh*&XfEedfyF z$Ng2hzcX+T{+0*yrTD-3J&)hN<5v}blizbyaM3nV$%?W&x`G#f&+p~@ew*J*tw7{z zx}OJEVq?qHcOtVWBd|?s0*rJV*odC0`#a!9$$bA;((}15+90B> zUM;OSynswO1`zN>EaZ?J#LQzns$v&me>*LBnJ?=93ef<**0ai5-|Cq!MlxiwXoi*Z zRqh*>dyQPJSB(TKA*5Pmsr0R~O;m@xz{H6Ce!5W&T+vlU56o7oQDfa?Dq(46k8Ac{ z!HrgP+2q)z_Ji%$Ge-JleUctUSkdw>1;BpTFAu+Gmhju-)-J#YhZD#dJ9{+e`a5%( znPdFQsuEyex3nROQK@LUxBe+e?mh-^{huOM_@qjlX2Y25ORX^a z5@9WU|2T)02u_4(M>F~>2~1~%h@%vX-`9?8GX8?LVsMhz7@Em&q{8;^^QN}NN|_oU zvDhb>g@IDAhwPgWNr!=6-*GS-xA8&3f8qnh+rH1)9W4tO&8UObhY$F43{jr}UO*4- z|6W`F(_%q#-dF5r(iD@)6*^`xWN{81;I{zyh&{RFCOnC<3jlx?mz;qmY=vPL4*(GUcL0ehfDq|d#wPNv zuP-fao}DslR};qJv2qyD6hg=bw@Ejeh~k82Ttu=g17P2cpGAzpPQV|TcYCkT5D_N) zd*KCSD15=XW%@Fc$iY_VM8$*OBbAZ5?P(1xBTkAppd=f4FS0?~*Bzl2lYPwLPD2yV zwXw6}AqLF<3>Yj`nm7=!tce+M_;w*%{%OzPsz-K#I^y2u-OTFb&ef@+{J%<_v|}At zKMjMKoQ}s~9tej!tKl&F7KFoucCu|@4IH+47~(LFDJu4#jpDEavBP0BPocf<1R$(6 zH>|vYS8XPt-LltaF>o@9^pHEgL(f|8iV3mv2jy7k98VI#2V`WVJc{m$@rLs zteEth7P80^q7;E`rihCfR6W_+_@1$yHb;6oe$$I|{-Q)5iKs%~f-D4KL}}{JjAzog zDY=qda}Yh?oOy7WveI|~YB0Z_ujmsaVqPRnJZ}oquJ(ULE~i0kT{TDn1Pd+Zb8yn6 zRRKm*AY6#Vz9~W?1+d7T+7p<*NS|)`LexSPqlI|V|E@OwT778Uw9BAGD0EM2;Radx)~(aHuytGL~@{(Xn~(lP2L+Bh^M2k00x^q zJ^dmyrB<2eFDm%gir%C7ahIPNzWk->OJFowtyn!Iuz&<<^4 z;m;dElCWrqoWik=eVf`|2Oa@ig_&-Wj75`oh5Gl-5Yq$HRWx8xWFw+3+potf$g~Kt zpF)u6>h<346)xJz-Jsrd^g&Dll-iCaGaY3c6S^RBCW8jD1^is(Hm!nmmAh#eD-}#f z+pM=LIK40inQ5>F3RzXO#d)XB1;G}t@|UPm>o~QjedR6@k(tOSyR5S92-6gbI%!pp zb!D`FPnfgY;mo+tNi#%%96oMHq^52OpGQZjem9pAD8n&rA0&o_XNFu3_(kJltd)TD zK=CxgYaWkI09a>3(gYv`>az;&0dOa82r0|}&lYn*4Z#*}Yy{dfup?05OwhkUnYI9g z6ESZfwWQWM`uaheuDx#8JAQJ-#6b>wh8#@;xqeWUqmo!xZpb_&&Bbb^?}y z*CiL2RZT5XKLy>aYV1b;Acl6aGI^kf_zNc(0bzC?o-e0K$T%A|B|Cy~33W~8LT97c z=!JzB@^$ij$AAEs77rQ{zG7Ufz{R{WKmaB%6o~+(X;lM>Lptjo<^6=KFnI}t<5b5` z^y6{R0Y*4TS2Zg0nuLrAEb9xc3>(4b3aV^96k~SS>p;q6>wAW}9d6~m@_ysExa0e* zmdF{!|MrjajTPf4M&q_SA;!V1Hgo1i^g(NAL@+XgWaJ>}dj*ndM8MAhtmUD@G!!K= zO*kZWSg(mB{>UBDNGrl{2PMWYko3;)znWdZ6vCCa(b&6?igzFt(DZHDrq7}~Kb{1Q zM!-A<#n|rXEBdawE%R;8|p2bqLR4Y#|_Ia<%74 zXs736Zhnjz^YMAASC~~qO47&GF5|(xDhXUOr56q>J$LQAmc3 z!>llVp{j9pa`qaRHbs9&u#4I;hMz5L7PP@;7-vC7Jo+>podaP)=8;I@8vX1EcDbKt z@pR<7EP4htBO<{_mVV8u@a%A>fOTIu0Gf`bK^uu0(>jYx^xXgbkme7|m&@EUGL1#O zI=8s{jz6|!UflEyTnsxdZd}Za-P+u!ppJCmA+O*oj6mGMz@e8jh{eIrvkY^+k1aho zJtbV*YG%};{*9nET8#SWP@Au|J5!CydDI5zO@?a&EBko?r$38Kp>Q|X8~I^0>p(`zG5eHB$WTE4+Olfr3MBHco4qq4M3)EBRsT^CWL?h@Ksu!)?4LIGZ1KjM8biXRlC9)6sCQ|8IB< z^SoIdV_uKKN)fD&T0avxc#~mX`i?VFc2?lnE-!uJ5@bvC0(C_PJ}*6AN+(<8OIw&; zhP0o|&snnLc)tZK$W=#Y4`CrTV#AmsMUO?q=!`UYgbX-3BX9#?HNkq8U;`Vtv|AG) z(~jfYaAWe`vARO%?Cf{I-4o!C;Xbp48))wde#T=eb8J|AKk#`ooXPgZ0k)w3Tggz) ze|*kpZ}yYeyl?JQT4*WYdUGLlt4%_O%|(>v$e>-<26loyOdjRh zB+ZM@r&Mwf`@w>`SM->YcuHVF;vnN;@XkAn64)NZtG^=axmD@D zBCz9z8$x}|s^V+sdRFE7e@36r-<|YOPWV7}QEZmZLrMEh2bUrG5%} zZ|dALIv%-hcjmMdH#HLff#v$*3F+p693$fh3h@@LDzZK5>@$7@Pk+$*Gs8`p7G9N6 zK1${cqW&Hwkm849#3lDKqG>W^*5(Msw zJ28)CA;VpJMSohPIMRD?xAs2Hm%aygYwzW(5bh4YmwRmq)48pyx&YT(@ZJycQSLa z-664SyKpjpjTOz3i>Kxw4on+hLAp<~4!=)w{<#z7!BiO`#xy$@0F{lJCNMS$=R)bT zv3zZM&(t@H!${3{BdEosHz>pWynV;4qAWNj?SUu~6P8O^X3-KVQc_Y@`p{Us>2Tyu zJ;TzL$ayR=4|JB8r{ED*f30yQ=>BZfj%M^%rS@V`Pl`#{5np(bn03@%>7RRGLRQ?5;U=|dq9org;JU(5QMh9c9K8sFV=SDQ!K6Lna-o=rJ zi;J@-2NMh~B!p4jJ29}_qtS`{bd|pRP&V-k>YA%#VtEyOJCU8PGByBA@%`V^o^kX9 zll=vbTbLU&zm{r2SHtX*m}C$kWVNCh#-~tGzM=StPQ(Ct2{LGE06Qm%ELHdU3ZS9~ z2K}3c5aG-cKEsGLrelGNkc=q&t5hm2F*9=HTR3JkusAKmOn?NlQ^8(l_7Efyl`rsTqlI9*YKgAR$@Q0Mv2Y*KZGu zD4nEh7-;4OZPZd%?g6U11FDyR+2)vU4w20#IIhL4tI~ZaH*s9KjgZ-yaw#s1qMdP| z7YA1Jx#V#(n+YylC%DT=As{oaast%Ii26k~Ie}bf#?yypn}=vfA`eM zlkME%1H>a)xeUe7@`w9Cnfyv1hl3!Jd$Bx==BcjuJP-Jv z_6o~)EyStipkAXRLnW`CnPOc{)H72sg=RP8R1VNa#PdP;7fdu`ISUGu$>040?vzP( zF&PLayG$x&DGBilK3q91E<-&-SsjG_rM=pot7<+*%aaX&aBXy4#362kZeLa?$w02gF~f*pNZ3+~yWiiGJgHx_Rf(U<;U#uN9VHrw$%qcrQjURlI1M$` zYkf0a_o=z@ons4Xbd~z#?2|I_I^JusxDkd_`U73<(i&9W=IpvKJ0;rdigrp@oil&Z z|7G^dux9$CE}1?@s*G&WLJ+el^`=h)#Wg_LOrQ3H>2vhEj3iN&>2t}~&N>7rRYA?l z@8(44#c-fQVI~};#Iks*~w?;3t~LS4rb;Kbrj!M^=TH05VSHj#sAFAtoJq`>(zE95Ft@^5@1S^B{IXQ zT?DSS(+cP1W}Lv}eB@xBbBLKaJDAb!)QwSubC;}f4l-DQd#3Rv>7q~*$g@wF%A|F@QBAxRqk1Ekps&jnU zMl{=7+6HVOFe|INX6prT6~E-EVx?eRo{uL{24(RYTeMb<2Ctsy%st ze>nJ@IEVuaT(%F|o!%T=STO%))9lF0XEtk`+!Bz7FB~u+7FiAn>CNXHxEIf4W1zwn znKzvlULP#TkRrtxuxU(t2tbZA<4f|68RLFhxu!p!>XY7>O+FTyJ@CGjiTug0_K; zMM6=B6S-O2xt3LTy-IO}j>G>MyHF@yP4zQw8za z;1|TZOkZQZT$rso%%CR@0Rkd_jwPfq46SjVPU`8F>M6Woi?e~7%1ID|g0xZxTXN58J*5XX6)E2MW5K`{N2O)`4BTAGGPaFaX zP#xV)v1a;UH}2F}PX|n69QT9+=>gh6T6~gOo3is&yF}Z;5T1Cx@1nb1#H!l)+-f;V*M14jsxjNPPpf@Ohkq?sKAUCA8DbyDX=+KC)Y- zI;PvU;9+JbjNg`LX|IvEg{V)gTNDb7q2y$}m*-I= znaebz5Pq{b8C;Y1TtW6!T0Iirn?~3=zY4yAPXpN*GHy`(!l_#MvSKQV56-a!a?#qa zXg%nTo}1Fx%{I&?*8%Iq(4|FR#qt^ME{k_C@KXQX8lcOM%Eke1T0D9=ey~>YMcMdP zV2X*D;y7bX=ZagJN=ZuoQT4WqFMhufLk%WTZW0NN79Mb~k3cR&g_CE!8}C zvIXzFGzdcd6X~D$ToO=OXzTxQqUillr6HJpJiwOvzVxxbD3CoF; zt3E7P;Y%n6XU3V`KqFC_bGi~MCMbklEgr&*BS7#79&4Zb7^tSd<1|^^J?Dd&1*C3< z10r}tisIatrBX%Q2)qeG-c~(88e?MRe9>-K;hH3Q3mKtT(5v}`HylUz6xEy{TpuzZ z@B{o{_}j9!3v$3^xy`8iN;&8tWQLmdUuTIjRW=5k%myH(NzN{mABh{58W~*ZvzMe) ztt)ae+^;gs5dCEC+DerTV=OkBL@NgIZETS_Q?!L^7p()sm2`*vTg2Du1w9ejY6f(| zBl=K=@&d*nh;29Jz=>q&2-9L6k<5x`N)Dp{+|8V5;uLMY)I)ZKsW$`2Ye3kXNkk}~ zXnPt2+*;@rY8oHvYK>N5z4@Z@4hV>foreFiA93v%pe8Ov&_U z{MN0+-U?WVWYTt<1{~~icfXlKy8AB-M1<;><{l-H;Q^|bGgoj;NyNR}dW*@ke=^RQ zqMlk5DFUe&9&5BDhUywhwTW7Ys0o1^=7Dem-pOri{{fK4A9ezJg?Fn(F=45rV!~0$ zghR72vQ8=nQg2~rpa=`&LxDnit8xa zGnGzTJP@zs+WfDTYx4nfuS z1wbq-I((?6YCpkVP6k}_a-vnJRiGu}d>|J78=s6}kKCrrVsXn>Lt;W`P6l8Ilo)e$ z^@SEz%-iRYS_FE5Prf#>b%r@N3Bz(>5D@%YI49msa7TthBGt7)rDj5^jdt*;gLPRq zyhObZ5{wPAOdKnk$PeHj`VS0=-IL(>S;1ftH|`D8)0k z(1Bqjmn;|`k|9gX;L#erf}zpN)z6-<-;N@J4z9;8j-&;u-+m|uj4UyixwyA1_JS!3 zO%}hva2lF15W~_HWPo`FB}3t8oh-m2d`S8rzIPLN=<>8d-O-8KXxx6o@w{P@RMy-( zWj0Xc5wdMFGeo*D{aU;rQ0Tk~Q^6?(c+?szqe)^G^n)Oe;RzOETmaEn#fS9`E2~vQ zJ5@Cy_@){p3R%d47(KH<%HS-SdR7cCZls@zd{Bn^-&O>dlE)_}9IPxAZ~u3R7lzEB zby`AYrv7P1ub037jg+7F)YzhR7UegKuhFD$?u6ax+FbJ2x5UudW{mpH|128ow)xB@fFTc$f zGUV1FBtYU&z%|2dTf>AUQ zsc$e>^bXoNF}yi9Z&zc`w}={uCdJ~F`{#!q>+vz^eO86K-O{nI`Fxsh(Eh6s)v%k5 z>+oY4$u$Y{gFXk+9tH)*2JILCB7jSsN8sJ4oikdFvQPlLTANz>*+$>bERrS@n}jA^ zUd;+$Vna}+NqlHEex z5{wBturo$2v6t8|LelfhKan^iLYRIqVO@%eZc<+}1w-&VZPHX8-##1N$T72SLy2{; z(1v~Egc(ZoMoQnzy+HnL;g~UVG;-n(usn8*(ozu`^2KIAW24@ zso2OiLBe9VCSp18N<`JPN(dAnhH@GmLI#G`*Z4@Hx8z^&NM8%OW-HUgsb=Sa-lc6Q ziq=$hl9@3+ak@$yEt|RFo86}9?H2O!fBQlm9_Gm2SLEm1u@a9Mj^5}xu_0ehqqeha zqN=pE1)69dDquq}iQ#2=0wO|uXcH*%oPLrwlu4ho6j#HOSTq`gFt#tRa>AtCU6I^f z_J!z)T1$7A*36fo*Ev+Z%BrCVVjzH1!F^7hGz$-G7XKGTsp+T1FwTA_6|bL8J+F?YO9ZO+rUO`9f%Onf?H-iPE8H)|Lr6_3ItpnHRr|6k>^QNtzfCo3Z_&~mQiq-Y zBZ>- zM1e8>V#_9Dr5T!H4b>{DSSfAPRp^Cx!-4FVJ0Hg(1}N131%RGr@=qCcDojekg4v{K z7n+FZ-e_xPe5gZ06UY8yV5j-AIg){nscK6gK#Urpe+EIX4EQFJGG-(>5SEJ)VRa(a z)`MW_bhH=}>ndyEcHuF#VmJ4;LbdSsI-hiE>P$55gkkj+o$sOYzE6O z+s8Tf@%cn#Ot0QB0xd{p@Y96=jGw;H?;~zzqCN%oU^8ZtiVj?l;AV2Al?KU~-037N(jZ z)ifzXdYfX1)7esO^xD_C)O?x~)oOqPvuOMdjB(=GGOjY=k#MRx8@_<=8D7DZQ-D5ZEWSmBGiZuvS@8amI0{Xd!0dASqp*Tm8DYV0`4?gzX_?4-W znUf&ho^xV17}=KUpt`}ZCJO{?0fSU_Q68Y+Dsn1vPp;gLtWDC|`9Yw%L16@F*^W$B z=OD=-v!i!nowx(IqT`txHyv-ZBwyC|z%#2`rcu?Dd;UgvZg0<|8Yt-%eE#1N7)9U{PhFy>Pz{ z%?S01W5h*b5)yWv%@20&J(?zv)YiT221@$T|4m7V!h2+iJ?fwda%CLJ*-X%}Xb=hi z=|UMmgH4zYxQ%`w7MPAezH(7GepPg{t4rJ#X@oF2x~ea|^hMv{2w~ARq^@dL(;COF zD#PhANI*r~GsV0ChY?t~liJ)c4cB02LeNC?y3-9w6l4*&QIYdvrwP1@(?q08lwx0b z+xR)peKk|qaDQ5<7sh}z3&gksUu_&Xy2h4{!$H|*>TWj3CS)}0znw7ybeNr%QuT+R z9{n7$a-XCe-Lp_dUv8f-huy{cE!f%iML!;fV&BuV8y7QPx$#)&CJ@p)_o<2Dvk(yr z^~RoATl7l8z7s%gg>sQXv9UMfj;@#IVp@3HU4NvgmqLupqOJEqZxNtqxH30~YmW#) zfN}HDg>;3_G(brP!!AC$u^EddJ6Ck>$uwqe&y21j2o(H!DS{V2FM&t!^I`-qey&8Y z`Pl1=F02$u~&&7Fp zTx^giE99^oSSq+r@|ET$xB@(1+l7;DJUNAGZ>8bo>nM#~oYH*vi_tzHDAp)BKtg~j z)3S|dNxv@0@j#w$yY>5^140DM8y!wFpn~42J&nZBBQ^*gJW0q+YJoT11(_Qd%jHP0 zyzAJzmc47bcS^k(?>w0*9x>bWEc6<<^`79R{IvE2FX5-XCwMVGojt*o{B$ild6w=8 zewjOB&VGp>b|hb6AOl4-rj(#6ps7bQUcS-5yr{Zw5P^7%UPx*MhhrDtLSnM~4@|*Y zCB>Btr+qBtzCmoaPV#=@hULfOCPi(^bVr-^>w?$d)_WPSrXQ~3#*HqUH|AJ%=Ja$g zc6UADKPz=9cY1ya_%?icg@1Z^^^~lXB_yxZLn*&}W{O?}LlW8t`_SqP++0IT!A{l9 z^%Y!SBKpAgVljWtXyD8P=i=}btW{7Sl@;it%s*Gf{i?kc69|A5F-k$O2x=~mTj2X^ zJd>f|x~?;g(mf1I$BqcgI>su3l25zF4zLETPM*jQJCS-B#r_ORCft zYgXA>RwW$3)pbAs9)Va~s5tH+SY5TbpQ}qevxZUx9zPvg)204s%P$wNlr`K$XM7EC z6Q`_TF)e;8D&F-~N}(aRe4=IfZLWN#65snnEC-ku39=sTldZ5z`s4&0RHq0Fs;0z+ z-`Wfs-$KVV31jp-CkrtEWH%9`tmUCw-UJms$M_DTlqF5vpk`M6=xrzh>S2{7B=T88 zFsu460VZq5Z!tP`XHPLM0c7+MxCS3)m&=r60F*mh?O@PBd5Y5iAeo&((G^TDY(O(U zyaQ&*O~>E-vTn2;M#WyFo7CT2shgg^d9iNB{LM>rGwyF*s+$eENu~pY04+Ofgk8Gu zD;=RB%LZ*;gxrwHOw(`+A{#GHQ3We9>*cANGLa1e^yL8`YmnQdbtya%1N@~K%Z7q0 zyYRHj9Tjhv7oqLDJ%1g$HaF z+jr|wR*l8hwX7P0EoYhaT_o-p2Pk9^@Y0K}0X*55-E$_y#0#8q&t;;Ke}aW#@u3!( zGPldo2dM86y{7l~BJE9NW~I%cWYd`*6F2h5RlMT!b5|*kY*SE|l09Jc3HQ$v3%a;? z9qur)?_CQld38*$zV(jZd_!_|@d3JXt%*{6#-ca;fE)XuS^VuEyzVWBt}b5vxi@}2 znx`=0*Xo7;@SnbW!1DO!$9M{uOIu3m{13bzm&-*KJQq_FRcD(=#UGHF=ItrR%?P|K~SSVi_2H& z8|K%&vx9#HBUFJ*fza73!mpLGkgg`4A_e<3b_7o&LV&IgBRGoyekF_~dm*Lk5yY%R&VuETVNY-o zNP)|jhFb;RP5=WdulOYlkR6krU-HH{Ahn8LQu^HWl@@4rJ`1Wc(4#5pzf(xx=K4wz2Psh#*^VMof#V|39E&iQ3@{L2L)L$ z%76@qBLrxX5z->0ACbg!KJNjhSX(#|n=X%ZgtD%7hr^Z^gn zbu4yk7-QmkL?DkEb#^{y?58DU_F{1^a=y+`5b_i_4ZZ~S(Ue_5XjbXQ~DF7@unt_Q1%ytBVVWgFRLSg_> zNr1{ai$lbvP*kQr>ndti2271p&iH&w7H-NDvu@hUku7X$ub1;rU?CNOY>ut~3lvkC zrf-Sm`czf|v>1z;qcE-(d9A1q30A-Z*?@|P6tY^LQk;|2qNYw+5Fy2q0GNRo#}cDA zy5ig=7qv=j)^1tj${)}<^~;xZ!&FH@3<%7D8vH6v1W~m9DU@VS$!%79y2U?**lJI= z`KQ^))9wB#TfJ*#cloE-7i&+?^-s^Sr*JjwzX+c>Hh2vhrA8iiG$v7Mklq@H&3g2Z zCbD!b&}%U!FsJ5Sz!WWhBsQx+ASNzKh4{>#9q11(c^Wt)AaL{A)O6L?y47!$5Fkm^Py%%>iRmei`pcY>5@?Ff$zuZh_XHal2DS-p zjG>1FYV(8ciap$BgjXb>3?o( zzR#};vGdKB*{m{F&5C9Gd3(x^_PH9K}gjg%`hio%gL z9$KRxCw*TZ_GL)(RUeO-Sv8)KdVF7%=k4#**9k5xEUQmgR@GNCiwM;-*#MIC^)CC4 znC3WKf~|ufp35JFc!cu~VPcp(iubr7T>>7NU7Qyg%yA1kuTjrNQZQ9zpebAQDHE?& z2Es1ONXxG$lB()~-sTP*j8@V<-w9gfrl=g{m1(&APs!*s& z;Aqs&Ca(m6lOL}UfTT96!ImMdl= z`gjR+8@2;Fb(j57H>%WWe&hhPzzk9Lm~2X;5GxR|hA)>4w`kR0veUZ`>jHi|{Iav; zrMS9F)5I)vm%QxOUlIy3QmxFe{!8tGsm*TDBWkk-S4+L6{2Z*Y4v==XM-~It6#>~O zQ#w7JwN>%zQUBe^0BVr`8e5a1ag?GG&d3TA?kE2jheNXejY9DZygtz6@;(da;6K() zp7k!uq5%=LtnLvBo=6u+5oMUN?jV;e>ycgvKRCI~wJdQDN+g1Qp0?HQKS(kVv%@2G zr-WApCqQ5#-$DnKvU!?_kMeos5~(Hp1V_jYcT~lc?41ZVA&QD~5P^X+F2)Zm6ptv$ zo@p^<)kCUXuvTK%O6)(wvRi!yAE{bqz93%vLg%8;WmqB)DGdW^+=)!$TYwC#C@(i1 zJTaTOUN&4a4Mp;xi(4~@O=3|lJzBH;UP6nZxVpZ;Ziad_O;=6RSCd%#61aWi0Alfx z#lu(`mei3ByP|kp0M+t!H2fIsQ-D>g4M@7$su3l_YIHnOxzQ~V8K5EH(3H~HwV{OVGow@ z1!lC0a}@iifOqMz3Zn+aiKXliRHm&89SaTvE9jbk1kn&L<{rs($M>RXq*+r8rC>Q@ zrr5wvj>6++9MrGf#p0aWkp&g? z+RKihD0!M+0@GMJP7J!5Vy!9g5_QGG(}cjdN44?_}P>8hr$i;@YP>k|FIxT~T5 zxo%uDxP5I%C|2?YOF3o8dRh)0=dTrU&R@M^jaF&=z6~pj1@kIKA!uQEmsgW1!6C5R zyBm!t3FqFKDe6X3SLW9dW-#wE4_syaHY45UW$Jh%?L8+fy6(e z?(@ERW^{$ty{37x$hHaK@~(a^Ri3$~99z-(=3rs#7Ku3oMYAa!qDCsnD|bpm!3$2M6oOI7^4=*(qyQJfRi6d>ut6tRE{mBVw3JOwx)$ zub2ck$p%pJFy)0Avn_*JFB`MmFg9XZNec(|6pr?$I3lKa!uHw0 z0g&6W9y=T9CY#-|xYkt&BI{k3vs+G??nb%_uAnw#}#O~((eyO_C6$Ifx}o!Mi9@S*V82> zPS>Fu@bkun`z?nZ&n!g~^|O=|#OGUEmM}eWN5v#Ml+U!@O{&I+&)gNNTjc>ULIiGS zoY~d3Ww#XlG&r5M$(mDkCWkC`J3!A2`XZ9Ei5!A5K+e+3j+kqGP);oEV6akB#xMfv zL;z48UQ3aj=o<5PW<1li{GB`fwfvnrxdYkAnKfMtzHY~f+*fjVUa7B!-p)&WCGvL8 z*xK7Nr{+)Khm=$E%%S%(NG{2L(jI5|)9a6~%-I-5>7Dt%C?EgCh_7?H^mX!>v1I(n zt}~|#^L2KN2`AZ4nwt{C`J65>(7~(isgycBLisZXr;I{#8TAIv*GcL@ORk__NPwz& zhbGCt5>=R#rnq_j6InGNJ=m9(12MGGqbo8Sgk*{{sRD|6I;{*k)@drYloyc?8wQd% z7%iII$8ErbVBveG2*2tTzE^ZT(Z<2S8JZ;%za;sOSnW2_+LNVSEj|=W@arQ<%XL~z zE}R&gRnVY15agSjCnbN<)L;@cfs~$1l$kg7bx7sNKsGRhGXfLqH|x@lIvGsq(h2)p zbZH1Pc#1A{c;)`VQ+0{?fXl7AG--Q~>9S={2dFrQvnL7janUo<%|h5Kh>hFK&6I9_ z$=__z%`f|#r|9NI{^qH=xzgWk)y<3jO{SZd=!U_9!~0nF_2{M9fUQ!rC(`5j40B?U zv9a4vQ^FLeIseRD!TuIL*eG+DDl%xheK67nd8Jbb2-*4CRz70aC*B&K;ZTW*FPQ*a zQh^jhX*ZkjS2??67(X5?Rq1V~$YBsDE-UX|Vm}KlQsi{`mT>Be*C?uyIDbIb75z(A z*7iqCE9cox5kB|ZA8|JkN;`&6C?l`dy#66CLk}w}j-;$B-_Zomk!(P61i+_h=MGB3 z{9v1PZ5t7Z^u+9_F0%#;4=u^Y4A&X7vnN|(e1}9AYHLc&@KE1$N`UGDc|-h{=H@Dp zD1p%P2^4455%9~`_e+DAFTT1#ZvdnpJ>z8yNTg&Bpuc z&63d}U@Y(w<0~ti5q3$q>MY!s(E#~ASITd|KJ^Gp5PKy(xwH{+9R7cKK2GiqtS#BN zg9x$0&W%AmV)P{RkRcd1;aolrq?MebGP{E%(wV`|M3rZ#JtR{VD49T;3d@i*EU&5o ziiYbmB%%9Sh9pynH1l+(1~CyY-bq!*bk`sz1CeHZIIShb$~Ps%IFDTTAc#rE5O5$y z`t3}Ipmg8Cu5Io@VI4+}DlZVlb8^Af_OzHUzzSGm1S({0q!?gAZXNDvfn8Q9frN>q zp(SO}9hPE3h^bsSZFd%V+ifGEmI)NM^Q>nu-k+5mb@N?V1tL&_4b75=1$Or3VZKudZ+ zW5`e1uv?8(dsYnXX=|6mn2~)ez3geqK%=Bt14K1VGnGhY>1O!IyIJo1tCE095|89W zz9`$EZ#G!xd_)V1YT&dP(@aMtAf1uNhb^6Ag>;sr z@09D1U>-KiBs{=GD@_wSfiA_Z8j_f%i^j|8#Wm&*!a2nslO4Cc{DLX8Fpg3KqLd2| z1_81-NuYa|QZj(@a6|P5TFYg|IDG9~(YP8xF2I{Efp3eOcfKgM51E2%^ByQ{Vd?gv z;)9<>-Ov)jL9qS;5+gKK)H$FMsr0G!<9a-zt zI{=w)fR|1O+c3VNkmJcKBmRh1_Yo|-A%Z18P33pyo5Z_1Zo~XuF77@Fj-SVcH9v!A zrs13KAYQtFRod96lS?NC0L6Av!OXWnr;46q6X+JLkdqg=o0o|Lw)($jgviV7d4mUB zyo2RX=8=o(K&$`j_P*7BGkXLZkbs0%#&nt!U%3Lc=f|TU)Wnj|OHIYuCQfq{*y-IUS2W)Djl?E=^Y2x{(g3Rt<8&lPaXR=MO)>e)Lt?`_jGf1Tk z)yk!K#|2$P3R8j=VcWBmD|)2}%5 z&sZ4r{M4B|nCsLn9l%8u`(z`S7``7)ZBJ9nOPgA5Y-*c+YPr|cqEOn@@~@lPrk~oT zpIUab(oH4g!|EF;Mc&jf$|N8;DC8U=~dLZ=I?XNtr5fpF=(ErKz&2HHI>&r>$L7LIEX4 zJ3-p+KN#R~n7R>@GSWO_NG>Eouo;aS7174n(@fG@Q5+c*1T6ulL+j(D9cV$A$7+qr zBer5I4GN*=_j}jg=j>a#m8y{Rj58^?XMe1{KHl}N_j|o7Laf~sSv3f=q|uZech`e6 zOD{@B#?)rpoqzxwYp0Qy zO;U`#LCK{c3I>FuKeSV_)I~~em=ccIZl;8LrzAHCCm`VOmPjejMesP?vmdnAg+;oD zJImpqsZS6Yes!jh%(llq6KgdnasfBEUe!;5Q?|kYW^<1*XM9ceEcA!%*JM+ER z{H$EVf}~eY|M;izX|Irvgep^cY(JLQBtv-+*zyt6b>6xW(OgOJLw*eQK_Z3cvI6X5 z%^?_}m*O~h1k|SK2bB(1L*We9Yqhd>uQFi#a$@8m0gRl+6`l#IQ0;lUk%17f= zC9WZKYhcQP6%+Zoa8S4>OLTIZ#~iFwMDjf2WOX^Z zo{3`^P1&T`p^?>Q0AeIt5NGYI%-Z2i(+(;aC7O0fW^6l<%O(D;ylA>&n<1ZLMy$A7 zpmN4*)=-Z$KseihB)AYN*@|Pk7+OsG-)x0Y8$jL=t~D;c{~U{AZ@Va}O^d>vAL+PR zY=1!18GAl7tN%@>oIk0V(^|vZ6m^&rNomk7kbI|GGlO<5%@+zsIP7r+1nuG`XxCD+ zP`G!YfKIVc_?s5WQbW6z8rlUXO-rF#kZ;3el5)D1^}-Qj)bGU?iDpDBtGRKciXlg0 z=Ox#in5U>1iGRpV>!KU7i7hlUMfC_*68io>X=bVcGtI2us87~no;|vVq~2;$!_cH6 z^p~Sh09$0WMdb*cEoRi#L;FjqDqI@XP@C*3GY+yN=JVBKX0@G{x6zRAmZV~2nW&b6 zg2mE{`AJ5}w2;$^1iNEZhP@J+P(=kiWgg{Mari>eex!v)2AZGCuqCb4ltF!>ftC+{1bpA1&CsK_~FhI1FlLJ6KSh9OT8H3dM=cxMOa4F*mo+t%X3b zj%fac?>}EOpG{NR{YVd3$h1v^!&^_8%-FeNq>?yHu1pO}a{RwWR6V^(W}F4-lNn9u z67z%p6#@T^B?t418BG`kFV{$R9mqN7CMHkMm=xNvyJXAFv9^k;7@1Nw`kw3+8c5ler^^F68I$kec5v&zAeHvA1+|@G zi;Z-=OBra&I!c*&dqUff;fV^$McCIdb%roU|FV>=gk>8tmu<=t{3xSGL}|^eyOE%hfl>H9U0R#4q91D?8>Fo)3TIKbsK21tA#=~izvSkX0T%u1?`nPzyJC z(BJpWt}qR$YU1Nk%U|1l18q4)VZ^`Pj73GCFZETSN@ ztBJx6=(1Y^DSzX3f{g*+ja7aif2lenFAwD3ZbD6~_Ky*-CsiVv5t}XXXC3igF2a_h zN;DfWK?BK7u)-=}SHU&`I&%2rer(lB@^v(7C2vsoklck6ADo0FZPDl<+WI9My{c_g z7G_%&AjHw|m}VN(-+<2{nc$IKSEWeZ|!5$Pi*5L4dak`C%Rk zcX24$Kn}1lZ0l@ldny^%33d5M9$~%vvSU#Hh)gXUPW^d8Ov=QCAYe++`Apqo{p_5= zfndwQ5JUKa1k08og69$7bUgX~?AQc^$9qh@P;&4DYJ0|QXCeqK+_ps{&}tgd<;TFG z@~9{_68YjbW)3w`B&fVW2-jrCMx#%cvy;OjZ>cRbwt2Q2%HL6#=>nQltG;n>GW7+! zGFRU0XjkFV0F)HDh!Zv8@JtzlGqaS_$f)EX8Ha3_DhHf;$sdxZ;RZl#kW8`k)!q=z zpr|a9`j7FWL8}{!7>pElghx+`h)j}TWHbv4Ih<9foW*XTo!CjF@#USq79J*k;zD@ zsAAR-x)_5`X9Tc}dcf@YyWMQr`UCr|zbOGqGm27I3nK%f=ok>eS1ybka}`nmSENm` z8JMu(L9mkN@>;=xhYio|J^s)*fQE&@gm48x@iY)-ijY-!+SOB9x3J5&%0#tISgc!E zQB08xOltUTzy7OF(1haQ%=K0_TBZA>V`h~tbsjo`RDrnIo~=o zr%fsvs}8q##|7@-mLuRhMwS#Do+Vc`#Y4dfzkH+M@Dlk)(iTqvV58uG)9Mwvs)?^) zoML2=T-B-HX%3{xyfAwti6$exBJFJDrj8K-$pEK3;!`R0;t~&>JkkOqKh{gP)=Tmr zO74TAMCnMp*7TjJNqukE+FHgH{aMDqN}G<{ z{ESXe1};WoqC&e9bp}#0I-=KP%=zeZ z3u*Hzy9^eB5U{8-=Vq-q9a?M)P zpP*$xwq>QLllU#UT4rwrdb3y=OGr#}tp_s&Jwsx~5%OD0?h&rYHzdnI?kyaK6l>WT3uRM&3hZxKe(1 zDjYoK4GPYrIv{n4kt|Z^#Ech0CLX=1moGKD#?6~VO^1?|+)L<7$ot5T+4$`qebU)) z`}*GxSYL3zZ8X&izbyE@%5Ce{O0S}Bu$kIdNn~U!qw_xC>Iheu15YAx88e~?7JcCU z+Wc}~9$+gi*mQl>PVDV{vCnyz0q&xNfd(u_ksd5 zWkG>qqbQHjnNY!d2l6#qhd}Qo$gu#_YUM|!xgn1Tjchz5xQuUR2WGtfqcH*V@T2I8 zS>2F@(y9)4+R}miAG*O`9(6JEP0b2%9hSjT(t+Ny6Qjm5&3Ph@uBugZZ3`RMsP z5eF-#MG$Dvc=WTmqt0#o(ZWG<@kxLnYl^2IYy2`S@Q=A~G9I2Sn5%U8$o%~yzUTY5 zy0~~f{%4lIP|u(Av0S4^hwLF$EZX`X=(+vm>hfSA%k#Y78y00Arri)DS@qZtTm?^J zxXOgNBf8LdgDi9h%!94x>5>wrbmz%2fX*(}~|6@f6uk(&Zfp%gj@JJ-b zn9ocx{%4yy+C7!&lBT8TAQW?4T(`2Yb#DoGip~T8mpx-vXss+R;|b;~)_vR~$c134 z?kj7ovXy>R$lNVY9|wb#LAO?set9T!a5dH*UVt_qC0~ZT9!=E z98z0!-gVmoFAd{@>++Iju)8iDf|Yms`LvPsIjp-_c1g6OOXU7AS^boi1^2W>yOHs% z6)y|(7(6u8k$!Na{`h^!AiSF*0HN80$f@EWm^J9R4?PTeW!Ur5_;F;uDqUS=j@^I> zZp)XZt3zSN6;5OKqsH5Pv5xH&lNaVxlx44uqi;Klu{-=0uJCSRm&0{Eem_04mbI&K zPQzpA97;FVx6#L8M4D;gKz&rzv2J6iM*Wu_Z5uw68|XNu5Hs6^c23+ilZW7pu;u|R z{iDUV^AW*KVS!L_n8Uw&VBIC1s8@DqH{B45iBi#9aw;T5N84^OhYJLP2E(~YOA-$;5v z82dH$XU_wS2-A2s>CCgs`$_m!3Rq?onf>-@|G7M4_6V}1L}&X4ttpT_#q@W#z{0ETEJLT~(Dd+sPBONPkHIJF@#W@GzR z`*Lsi-=6Imr%;T3Hs!ssSkh;+;|6_-P&A?wNy}4JXnyBPXM+c8p<#X%P66hoPxeVq zmiH|-Stf-GtWdFyKfZw~X4KU%KGsG{7Px>c^wbmLY0Ih6j*v$Y3gT%Z3vtQ=;_Dp+lkTjz%=Q9YFE4tZ!l0J=>Ux zDkZ%$Zx^<3{ypolSCaUiVy4aP4Yg`5@XH=q=_6511K;Wf9X{)>on=GUdWm!t`ATGzpIhojMVn3~8L z4%;+@g{9&GOK`#_F%zk~?LBEa@;N>+LP3c@Zn6MP-SGY!~0PHDs1f8g>)Lt@T!Wp7$D=@O| zTF#Ix6^L#;OGFUfbslHvPUx2@xKs)*4yYP^AUPx(0w2l;Fs1or^DTg3;jWtFZ&%s5 zBy{R3JFW$odRH!a%Jm%#k|n`{raW!^+=2m&O6DTr#FoJ!WkrtsEt1)LlDH|j=7wID zZD?on-gc?#lcwUMUth@EGqZ8KJ9%e`t?>6=^1!u3XgqJOi$V)sBD8SHLgSrsR zK*3X_gn-_eiI^Hbl~+hE`=N>4JZOykhk6Z%;#E|BGZZ6^kx@l%Mjjjc#XJ(K2mR#h zN5TH_J!R_PHj#gPmr;5?&_x+tbX=)Kcp3}BJY-#1@TrIf+k%Q&ENE3G3z+DBQdm{w z+=xW4*kg6}u%q{yY3q_6A-G4SKqE0?Jl8EA3d5!2 z;c*@$G4n0S$Dd`By#5tx;s1O@Dzf{1|~p+r>sEvldVT#}Vx!Tez&)d2o=Bu6`(iLIK_AeB^c^x`1<0zCkq$^!FhjdB#*ryd`>)+HsH{A4mI6Zmo=UU^AeqRV@q zo)u$+X~cLej_${~q?K5GM5q#aN=%6l#AyUavg;%wABh@*fZ>h}&Jgmd+hF+^LJs-@ z0YyIn5Yp^2Nt>yQSQR6lDZ%DuUvjkzRQG{lixHKN`#$ns^01Ph+)M_a^$ARb=Qwfs z8BP{Ub_WIUD}2kuc#t*2j*9eL(f#n*rw=0n5eGKkzc5$^nyOv79z-K$E7%wf^BOzp zsOhGp)peNQ5v%=lK2=lnIm7@-?miZKjH^J&_JjS|uH=)0LQ>g5%8q|11#|L|8_3qO zJ=2Rt<6xRWeG4ZpW7;!{iu$Afniqp6Yv^0mdLtsXfJIKAKdM@-v6zoGN}GX=5CbrH%PveI1F>wJlSG=7S&?h`bQ{f1A#j66E`DDc ze1pL6ktVaKlRTKj;#B;@);wK0>b~GR?qX9CQ-*~_hRO@C zx%;ylugOkuRYb_cRb0VH4spw=01$89gyqqf&gEpclPmidEA#fdQA}P6mckYem zrZqlOD^@10yv{(FF+> z5+f{~FVcw|qkmb12V18&JqHYqGA`Ot7Dr#7f4i|0Dk+w5Y%HEC`?~zy#Y?29jmPV| z;@5S>!9L)30IsQ$&U69CO>3SDz{OIS)$Zb?M5~1b&8mghXBAM~O7w%+fX`ihFiQrv?L;-6})SM}w*!LTLm zjNuuI1HdT(W&4jG?H|ZE%zz22KlV{~p%@{>BuiEb$x4uY^KcX2$(qA#S=N<7bPPHo zd|Z!vVsRn!V^bq@T)*Bv!l#4){hTuU29_xlTvBh(>Oc8oqfEY&9R4^)dsm+rXz=)u=b7mxndPyEuK{5Jnz*7t@8N`5(jLoEgB-XuC=d=SIKQa6Ez znswZEP%|L)k=scM<)`YSPDuN51P>xe-G|D|5j;_UjZo-MLJH9MGl9tvTEz(3ni&Bd zUp)Hn+pfKoFVaT*O}!^=BdwB@&3U1Fbgluy_h9#rsL!IVP8qf?Ol+&98~x&l|C9&v z`Z?=3(uzz6wSihCJhPuB+B;@$~1#Q!T}Vs4>lt~UM=3xyZu;}{@Z9T zSm@x!ZfFXewKu+Hy7Uc@ZJy~LS$f-uJFpLcW-pu)wpZsbyj3D#)A??plIe4pmA0V#RJHOK?xr~(#>rA z2eBG^tgO)s0!BQUl@K+l1fE6u)ZkfA8hkvgLhDHB5UJ3$eeS0Vvd**Tcsv??pPr@^ zKZs0G&`xoOe<{b@Zp40V2f?RME>vdNI}%ksfhmWGmrJefejY@k)dcJ@|H&V>3Sma!U{fs;+pcnRyB=zT`cNIl`d+x~d`h&4cDIh@b0bVq^v=%8$ zir9J`=sf<{5i?i+W@aL;q6IKyd0PI&F(tio=l?#X zqpy33{j7SCklulxd9=K>?m01G$^3w;m@Y+Ea@uB1=k>l6>*n(g0nZb~raGQhS~hgd zvW}`v)SE~7R@D1He1VoB;WSM@$Yet)1Q5t}szst5)8lkW<#d_=?_<5UmxjHzak6>+Rd;y^^;v9saQ%-+mGCB+ZPt@?Dqg3r?`fYjbu&G|MP{}3q+PRGhXDs? zl6E*nft6dvEOh|bg7Aa?f}{MJ8BC1VMN;3vd8NyCD}XHQ4XNMZ2thwq5VlF5G20~g z{CnMM3*AZp zK_G$KiV`BFjPus@6jB1s-WSiS-mUQVkW0lQVxm1NV!HHCpfiir(oHPGqJvfJ<`B7t zui!QN6JE*dUiv!WUY*11q6o*%1pf}sZoaf9yY#1?_rPF$&J6uis&aJwn0kxvp7sso$FZ(-3QZ-RA_fuEn|ZKyzS6|x&q7F~)xx?YwHf&4 zK{$T8h@8hSItPD6!O=G(E=b#*KccX#EU!ybX%^#O=Wr`7vd~|oq`rpD)&^;%r_J6p zfQ&js)1%iUn+Dq#@+5vxt;>Ra&P*7Rz-N2v&9)dP3 z9(@>fh1}XE^jC-PwS=2(l<)uQJEb5jKq;6*QC zReF>PlI7Qh!#ge7$y&n2JSK;mr1aB7Yb}YgXCrt&E|bn51(LOdkCNwA88fUUTB+tb zf7g@oWCL?hpVj5HU8*RPoFWB&EE@Ph7fn*bPlXG|;m4GOGDx1of9&>2;1!`H0Z;U6 z<>B5|W~!3sRdH>8)dgP1_Hbs61S+2Gq0yd&trn~yg=;!V%2E`k6eh$EyYRMdiS$la4e)(=wBia4+$F=fa8Z1 zosL%H@0w*@2+vrIF2?jJcihw)LE&Ax*aEMl4Mv;RXmJ3WpR~CnF6j;q6o3F}4?<4T zawCNkFVYY8Ag#D)SsZMZaQNOzk&pK-G+IOl4Yd!te)ilqvQ6nVSbghk#94Z+9ovx| z$cf}(Twd$hpiA#6>dy^~`=g)l^c@_4%MTT>m#g_{Ncu~G!m`9s(_%CAvbi?=kLSO= z`T1{$MK>yYI92wr+~Mfw2jgF)FQobDdr{|V}ofA&L(aaJ;56ss71E!{_7#M)9KlUcJzsZ}JS`s(i zHVt8jjzvvoY;TLSAS{k)i5b9 z2r3_8&Gm@L)19SZn)(O$hxmz<$cTEZD>EizAB9qpQD(Y&>J$l*tK|UcbOH27v<64g zzp$8)GoPJ)xZBB2Mz)EC)nQr0e>t>^&8@o(~5ri zKf>7RcSc1_6$rr&UD8Ib)sZ_{C7sRC%6|h>zY-!;t#a!3Ne*2Kmr+PEOH4!&nSRLg z%bdie`L0DwCdWOHr(&9IV7dr+pfoe+EaF@}4?2sRphM=HgJqhwace$s5-V8?vO)Fkm)XDz2rAde;xnx1YB zM_rV(aidatvE;0-eHK8JQy9N^j0T)PRrOXaeF0+L?ftyVx2Z1gYy?qG-*XRgB z%iaX?ipml?lDO#;aNeLIfvQJ%^}7KsGRl8~2?E`;62^EhmhB)oQY`Cq*Y4tYX8bq#aM9!~aN&*rIqMEh%2w0+!RzEVs5rt4vcro=m z6=iz$@BV48{^VKM(e4n>B(+*H%Lv_uCD(6%Gk6dK28+Ui`TGTqi%4sUeBT&VPpHj3 zsOXc`;4QSFp%l?naGIT>2c`ao6N~Ky{}3|NaTpPK*nRiK;uhX;@p;V0+flC`{;V;GUguL|wTWpKoIwRgv)cw2boFri?GA4O|Wj$@MMoaCsdy=0rHdr@{!~);1iH%s`hAH zZz0bGkRM$NIrrmclt@H0z{C*Z<;!^aiTiw+D6=nFjWQC|TiL6_9gg4F5A7>H z0`W|N!AC)7TDTJs7sEF8>hSa#9*(dw9i5zR+n*sRk-fd*syAIe#mQb=kuFmK0j39( zC`;Zag+i`U(iipg8>-76@@P#aYF#*^daaYJe6oVx6s5^l$0nkSBTXpA0#H**$Jv5=c>6($@th4o$w6VBIhNn1<%FcD9!9gX?ypb2iXYCRx`Gx~O1cICv4<%; zH%wq3U}4CB!#^P%kpG`5uK1>K7c5j)xLI(adZxS~5=mCH{a*O&0#Z7Nie+TQZopju z+H^b5K|!Y{k{A$1YJS>(ou9-LXIZ{}%Z58!5|45w=uwPoGV#}BW-(-YT2_;rQW`+6 z{)wtfkcflS@}}Ri4+rf-`&sk$LDY?jd2!A9%ULP3e}6vRWx7JT7oBM`A6zVDK5=%J zRbO?o+O=L?@#@KCvl&LLK+{PR%OauF`1j?KAei&C{Ze>8JhMd@m}rA1cAV*Pt%xfD z7VrhMUJZvv{r;cn1?;MRqC+io#a#vAQ*=4_B}fIqm(LMgpfw>5>|naNc|lmye4cZj znlGo@r68BJWv9Emt;pUE#40PlC{8acsv_*tz$A%c*R zkq-wK%?l$L-5mR?%i(As=dgN)Sd7jD9#0!|4BR~B!GvIxIXVVG_W4vg`if!;U)5RDohNKKxsQHd0i`=d_R!#x6LUJEai5Kc{@uWLkG##b` zxxGkh8vA3o)(xBs64)%;SdrL9={>J{6V#{~Tm+LmK{&ymVV}-F;jsy_C6JAereIu+ z#oQY#Q}DzWaV*}v<6{a!f0k{7Q9D)c+yewl3Cy`AFN_vZ2Xshf4&<)iZdEObtG+TMDiHX@ z6j%11l%f~ScBiH%=pBN!)gbXQdixS~hK;Vo+azzS_C$Pog#e2PP+h4>lC-bH*fAV+ zM}(-s=)r#2{Gd?xLRZ4d4I~iR#{V39O+?l-_rF{ysPgFllbgBh`u^;>O`Im9sKPwQ zV})sc5HDK$GZ)yO|6XoMqvJQYCt_~O?rsCQq`f@Fe2-};rfK;3`NMyTITon3%D}2k z2`xJIzsZvhwR_~sVtY~ns`cqI$g6}>ktaH(59fd-5Hk^1rB}2w)u`{n9ZXCo%d^=y zLb*^@ATj7uQSJbEagNl&*JjV9&plTHoKuOH5?LGr83&8qIK}NThx~Bv{3Ux;XLoN8 zZELGtfWr>tIn$38ZmgCy#qRW{GaBeFg08q(|Jx7KnejsfwpSnu3O|RR<(3TnPrO}5 zLmK}tMIzOMWDb)fZD<49iG)A?P!U#~&?%CKC1Lo5c0EJKqHOD7p>!KnNx$&0BtG2) zRVD|^94uYm$|ddP*tAO|rf1PdOF*1%IHES35zlKt&P*9Z`(wf9x-zKy2g4 zeEu#djkEnuk`+@C7QM#y{w?8qhs`ztYVZ3^CRbP5FwK7m#lEx13>8Epj*|ddag?QK zl;YR8A^}~JMbcBCqGSc@S#;HyG=k4U#3}4Nj^cO{)c9DTPY*7$#011uTP1}SwX8qB+D?727sz|rv*pClnOn`O(xL7*kiAh@M%ti95YC4s~ppzXoZV|)O^(<+AS>%4p zZq|C^Oorf&d5k&cu9?_wWocp;oLFb=7{$mbx}8N#Hc~bQ?4HU!cHPXeGdoY>0MF_F zxZc$?g;sN8wc{kt@7$k=AIeWpE~B|D1ft85*Y`5LzHF;NhNHU@8xWFucHT^gf-%O& zN!$z?Rx39L#VM=pu`lcdAZV$MU!vx!)T8@oweM4kt$0KdG^k8~4t5~=!p{;fRo9kL z#}SJ;AS%iy^XKYuJ`dQzy(k6+Qp}`C7;E&5dbF_dGCK{Sz+}qeooa{+secs+Fn4qb z(q39O`|Hi3Xi})8n=*x(`CXD&$x%@6euqjar;q+Nsmc){>ja4RV zH4yV;b(yvrONm6#?U*EL_du`e`nG~tKGo=WJ6-gH86CZtAHH%^R5Ic=wL*N#h(+a$ z0Y_L?jBc5MrqMaDG6q&Yy#rffU`tPBU}o;!a$rrZoq?6JfsOzFG_W}TVtg00HMzxy zgd<;w04-@s;($Y!`e1wp&#vsr#qK-+s}zvT;fIu9d4L24#K1uHmJTR{0{dEJOxWCk zob#0XZr90ce3j_G^*z73F#a&cHf^t=edqO8xXkz&zajVaDBj0QxV4;@as*7$F`CEm zr5_zfv&O3r=D6VOde?|xv6u5O=#OQY#uB%IB(Yi?S*%5uGZ?I`R5?ni zfR1J19#y)6;?@}+4C4+)N?aknqw&Q8ZAF3`E-cPp65ZJ(&i4fV4Rf(U)r!-K!oR`b zLFR0K_D}sW80@8X{1FJe#GWTt7Y{ms&EjFe;GLnDzNMA_>$kn0md5wwR>0FRi7$JD z`7#kDNCsx|WmpaaU5iTAytF`oaT#kY>QjI8o`sIXN}meVpzf&k?5cym5=jwMFvLUN z;%%?<35{FSBL~%8pjmF<0POVa2NX~lI}K_;PpY-58JNgpqyUe{`2%R$2V>U;5AwME z-MFQ$_jx)Mezt44Qo{3}G9p~OrJmS+6s{nVy^=Z~`am^oH@plZ{CVsSGrys)O{8Bw z-_%lqk;4a&NOkW03TRGY#`6(ffX6dTcrdHu8Z5N6kYpIk2t%!nqy; zHhO}7|5{#u$y|8925%J;&&aNqZ-K`*r)^oihUgEVF9Nd>8&X7NK6>jYUo@NIRg;j5D_BDvjec{ zTF{%oj@%QnJi?bgksvY_q7#DXx0YQsC4}cT&}??V5e};6fFs^;z!9sG(wu=(2vj4z z5eVwdr>$@_sDhi< z{Mm;^9Rca*IK{$P0Jf#DA~8#tjbjPo3)F!VE?)h8U+s^!#(+Su7ImQUY1oH^fv?EW z4PlT$aJ>A?$jR-_DH=0IPBdpvw8O~BVaUq0M5C_Z&!?@{tv?92eo5+G+L37Cj;s%} zsswQIXZkXFc~~brnfjTY)LW`$Bq#X6EqaI_My&CgV&EL7Let|%0nqMivK661Uk(8d zoA_!0f;a1Ddk%Pi_SMcslK;YD)}+|pMX5je350ZZO{b7u4_7Md6tWu|rf!0tajKa4 z!NJ=0+K7hebS2*&KV&n$1L_Plx^U>^_->|x`>=5xQpk_9Mbqra!{fX%@H`5T8Jzxu zyv`y3GAp--sxcD>!);I40WIF=IAZ2+jr+vpXBIVP-?J;tG)P z^GlxksF8Zy7|1_GjcA}3A(+ftIO;oRtfMP5C(iP6pDWkdqR6OTsg1MB zZ`}=7LkwCWW(80mo@A~e%1p7g?5dXoBoJX7sH97Ed7y*^IxD`%^76qneCi-9YYbw7 z4<$V8lJ7M-YbI9W>$tflqn)^dXdyZ-fTQ?33_(FWfrpu*{7glMZ4fSQ8~TwL3+~C zeB@u2AWLfe7#*VU=m(b5F)N9cB>XxY11Kc$M+6)z6{n-4oF(vo^TrdvL)h`r@?;nT zhU)4xBJ-J(1V17}!_k~ThDt~*rze~X#1nTxgKfDZ55kI5gs(_}08KobGWU?~3*%n|)UkA9#|T@g_*{+zca$uHBhgtQzQP?uhyJ(J z*@fp|FuFP#Cb%UqN9Z)!toRFt?r9Q}(lySaU`Eln?dPjhm0}TJ67xEdE`c#RORzmo{sW z;>Da#6*E4?o8VKi?i*q(KBdWG?aS6#9mZ9Z9%Hr8Y-t0LUga~m#i!vDwL4PxupiB7 zRWU(g1&Bg_{8*_Rcmym&`wVj7(gaaiVJbAm_|0Z}bGbhe3j4YP3~>q8!@!VB+jBk% z$7&cbZ(?AGlB|P-ctS<-h8kMXB?tYo_4s|3}#cDj-#86nL2?WnZQS5&OP5O7XUOgCZcP1y>3G?preA&Q#Ap2%_rVfh)s^ zog>p74^%snj{WU;;M6c^&n#o1(%}w4XCN&^?jC`9Bj-FwewWt?sfpcqXMY8Ocljj9 z0S5WWboopS0BVp=mI7%UQ!@;PntEDeoo)IUgJ}vnUI$W_1~Y9rm?+tf0t4X|;}}iI z7_y8Vzsh1mNPWf0$!c+=grNv+dWzrC3;`*p3sLlToHTE+XHLe($-P1j|>uC0^yD>m-Y@9jAP5gW-9?u&z2Ua_NeY&&S z`SO*;YUi;m{yY1@S9I^5_Z=|_Jx?_u;~W8{)lT;6UPi7M<|ZERs4lz7PpTd7nLgu{ z?6ry)oLA!DSeWtIWhPbV{sTVw`szZK7iF)n!gDaoLh(U%s>*#?1RkA^J)ZkBWCBGh z4wH&E#5{X32xdZYOL zrSh($YrtJp|01B=6;C%dKELg*RL72^!+Tr?JfP4nuPNsTYh3d=SBLJo`|i6%KaawC zXf)k%6X(bP!EakZ4+Wm=vVkoa*URREzdtBN&zmFxgS&1xADgg5%n%A0V6hsy-x_@Q zb?_lD;~B5OAk#$)SZ~mfzsuXgJ73;l6o}Ko#VsB_?>hilqB{*PCJ^4#DVuPS=R2!s zydq{2o|deQfORSs1(lG!Nm>R$A@$S;353!l3fW_`i?cli$#1Aqfa|6jC8kFn=MkP~COafYZ{bx?X zUM^a>ubBj8zVjvlOY(Mvuoz(yoD;Pig#8+F7yIgIC^of2E8Dn3Q3j?G^9V50?*5k4 zG81x|W@e^teiptr+NUFIfGhyN zioN+g|33Dt>E&r}epy}K?9CrYteErojlKEc3N?Kgw!99~5 zVE|6D5{rVBKqN8p^K6-Wa^}B!G!&byPtNQtbGlh*X}Gc~_GOo|?pcPN!!y6|hg9PV zXj2CyL^@T)P40|A)7n%J2&_6!6a zU^5DGYH#!t+lti`r)TQM!QQNXeLh(PPZ8P)1A?5@D=(sEZc)9EtISA%oCi@Ei>3M* zpwN1nq{hVal9Z_S{#;IXzXHO6Z%FvKqPTNcD@h#dH_(hq?$tztaEi8L4)471Bbd+6#KV7 zKy{wIPE!mX7aG=&S3Cd73fVv%<8%F=gu0?sOIs$b@nZnUp$prC*djsixSi-Zk1$6U zDZ^J#;hMi5@Zs>Id)fGXhNs}9I5{N>>RJrZIvWMD(Wht{D+m9s?R3!RwUOLF2b z%!7yQ6g|;EF#aQ~ZClqGXZW<|_zW))>D#F_VH-;>0<)akBs{|8f@e-pw%Fd_3A6k_ zI#|=%s{{_ngE>WaT3W4s(*Pf@RsH%e0Q{?3;3Edkfv=0lv@lNbG835=d8gWVhy8*L zRIFW4x9S@=8+gXP1wM0cjGyZiIpxKYyHI3pY$^BiK(7XsA=c+_!~wPW2-|qnV)o;x zrI^)Ho^)d))E^YMHvigoTK~3L<`UmteVJ(3jCmIq_dDjD?U=hxwSjTafpdsEcBkqa zvkQ#|=+|V&DjexyJ##$^(P$O~1jAh*r-;OY&J^P}^s#Qz>T1KUQo;|%;`{5a$5ULy zT0XJ$77eCswnYQdx|ORVZP93kwZ>?E&SC9shgCHa{U8j8&Z`(fRNHZ7hemZ(7p*8-KhKOOlbxyoz{jKIqTUqpA)D<+cJnY?$T zJYus!8^Uh}@vsB}Az1f(Dk3diRjq!jSB(dacZBCCPJ!MUTY0cEIIGq<>T2CRG!t2b z!`;KptIQvlH%=bzJwF7&D7?!2OcoMw&Y@jzP&juRGyP%g3I)74 z<`sy;8YplzunffKg4yQsl57Y$djdop(E9h<1M^C-L)$k8{aeFhMJhKmfoPVYGC0)zAT zU(%DCRqWFkc=I?=xBws;LZH0a%bjV}gor)QYav)n}%;R3ypugDRgCX>kCVDG8sB(KJsR0-IK#P&l9DgF|??^|iPCh&&YN zg=?DwR?;z#bYcRPDrjAvZ&V{)Yun-U4(4eF2DZV_KRT1h37-UgB}1{qD;9@DK$08+ zm2rf7`=j&Yn5a*}D~yhOTR-x1e`Ko=RcU<&B_5vq(r9 za2lD>)J!2W(!3_Dq6Qoh(;S}k`t22H$nitW&Mu5n;aQ%GZr$y1mn0B&x5oiADBo*^ z6J(PsoN>v%DYVG9s)2JL!H7MgoK0$+E z=*akYdcnY#r^D0JRfcRhFY`D&noYJjbgt2eB*5GFxBB|&>g#x+aJc%w2n&(n71YYQ zMbse-H39S4<-zId(Q^@;xlpYh&LYD(PiBuEfSzFd^f)6=!x-Re%SjwD#@P}=YK&-g z{MVkDqe4c1&~qX%t{R@6Y;W(Yeykqjb=c%X7&`Vcs0YR<Z@WEzBR8_xqT~?1jUP#+Ts)pUv|U}3h}XcNPJYN z28-Fw&3tUeL21Ko5!PLfKDq}3Tp_W&pOx50 z%107Op;riC+7ti^?2yc3b4ig$EUb{wB(kiYBa>lp#GY1TGFC;vAXgzSQjip%zL+o4B{`q+bgoz<;eWD6Q<1M^*mW zbCT_oOc05p%tPNqS=^?fCAz;hg<&7a4^D^S3PMv+Izza;{3OX0A$194rqVn6BY+H1 zex}L9F6hrua+7l|jPDL24;;qd*9X$n;i*s>%B17~Hz34gGI5hq zx^K1?Gt|zevQY^b_9@-`2tDvJgg=7aVsJx7I|BcjMs-M?{?VA_rqQgsFi=>j)SymtA~mawYDIMs>eytN z(H5}wSTbpGiclxuUF8WTj#Po<3+9Xf)NejwhFCS*H8v53jRnzsC#2&@Ly@V3HU#X6 z)j5#AR=Cb10Jl5~5fy%5|YlWT}=xO{jH4Zrtk%g&Llg+Gtv`J%&iarBSdw#SK0XE)=h_G} z>@H3)b{9_$lQiJO5-Gf1Iw@Xc;stgU9xcJih9MB}c8CE<6d6XjhyfIsvFHdS#9U+5 zp6>>H32Jt}54pE;4HUUWJrnZ``M`;3#&5D6qRP)=DR0sW%>R)`=&F4YEu!@}N!w;H zcgv$AwD-JM6wZvDPfCK!E~|L_L$Ic_+Yw5)B|uKhG)CMIfNui}iJd~G=gv1N zun;Vv=`1ykAYjwto-L!yq2&jbgdhdd*mCSuoVN_jNgm=1vKK#}GKRy`?VuB+Bk%*X z3*a0U)t8cSHfyYZnE56{y1=L8-wTnI<+G<6YEf+%!67bwPeyPR7r}kBsLr`h*!e6BjLD0hhrWH36B7Dij1wKLw_*R}0;x`aTd_}p_LJQc~W)|?- zKB|yu@5>n#iD(bx|Kqe&NSl8gM%&&A7G9FP;j%Yv9Cs<8++BFKO~?~-zoyNg5W zAc^`$3>|@-;WEKJjyr-I{U^g~q2r)4-yC{6@Clm!#P}rV2cOWvh_|8hMpwNVp#~Zf z+0k}E*Y&Nk(3vBQyI_`plyA*oX%!73vfR=lT4y}&_GPtWsmI5dxEMrV^D4P=f-bz~ z)U_G#jc3+Y%Uu_h$*5F2O{j=ZM$xMQRU83c@~q zcTiurjN}^J2Q8eGG`Y~vyq!=@f(#Y00Dc_uqMRA~Q=@R8h(Ysyp=TYSB=q){REYwH zCbTe($}@;Kaz>Fr(iRpZRizQw_mXQe83{oxKYVV<9*aIoWQyx}Lw|O@a(Iqvz2PVc z5fH%+uVCE@uUPEp4_brrW;l=X6{Kt4VEW{+wn`o$cqU)~K-z1ZKg@Ov5d$QfsTitS<`&K*Cfu*+1qOa8 zHCM;11WKI)T$cd9Qfg>3yR2cA`J7b}ircVC-oPryUts63)K!o=L43Qsl8Z-ZOsEd6K_39I$9n+@NuRUNp^PsL4-aZ>y>lOm)q zNEinrFnns$03fczRkT3!3R^Uj?TgAkJKeXswtc8Vl;Sf06dWx!bJ;kW42u|Aix*r2 zaJgO|iUaa|o_}|PRWi^t5GY;hlwwWOmF8Vw$h<-jb5n%~OWi8dI9=c6iz>{$z+TS{ zrCfdh!J+9TX8?p{U172XJ?vVOMt|8)Th=hN z^PB*l*cXVd)%D<#BgZ0x5?qsA2iO?~UwH59 zTL^rJr8uL)Kl@+Lr^3Z1Dhz#^6C~*pu@;G}CMS2$hv<`PrZA+fkP<-`cx`akMD%rZ zzT4)A)JQ~s3r8nxcQXwV09Ng&E>6^#A2WR>2-RarZJA7}#prCmSWJNv_j*2VB0bAc zgvN4bx^KxUp(0+8`wC@Mn2kA1Ob9g%i-LvwEYz zUq)7xBc*$Xgsuj8sGjIt}q-IWFh!(Cc z?(z367(DvH7}(cTtH zrYoXHi2PYaauN@wCZw~f!o*R3O4VVqDv^Uc)2e^>|@ZD5^bhZz4H`hl~vs7uxq7>nT9__Xpe*NCyPCkZDH zb^{h2IKs2ZNPHS1CRi*UFth~~qa`-ms_6qk z@j8oxFQb;6*=1S$n|`sBTxdv|#w+AD0zCxnrK?aLlR`oSxkHIZvnDt;+|6j8kQbgJ zK!IGz&OQDMT<9o4gR8J(lj^&;Lt1bo7z5$!$AMtf9n@Cy&8EiJL+n0>#m~Tvo?pYo1g@4H`%^5fJpj(Wa;j0wAQj z^XLbtc>22PldHt>!c&iCqv?u^F=!T(UM*KEtj^=rQV8wZlonlri<&pqr^6s%0n@rj z5zfTe6&i3$NHn%&N|qj6$W^~=C&(EG_(u4EqtGtB&8+B|_RGnUGE-?3GTORV1#=Md ziJ2s{h;YhC{)tYMC{2ZPaQaz2y&x5VIxs*AhApeo200`YE$3%&(eQY|FLHpnp@Ui%5I$^yOs&@No0yF z74Uj&nD2S)raa3Z`?vXHAEu7>+xGXd-+`n)_EDpw&>>A{h=jsCIHOws7am&~E-sCh zS5~)WIYa3$3@H8BSH_00HiMJ4dPNHZqfUmLpEq4$SY)iI`gZ^>x|He%YSs^#9{ptQ z32+E#v9hwGLr&za*XTudbfft8@H5pJH^q%B<(0m$-g;?0O7w2zP5#D7MrE*yc*VYE zKR)+WFX36$3K@su5+;^7);0rA)kYX9l_nh*&z0= zm8uy1bgvjCsTe95GJ{g<Oyr z7b-SlB7V&Z&UX0CH)E!v&1Ut5x@^iO-v17Qnc0vj@1L$dP_44VYhz=~ZgrdsoOK;E zqNG`t>Nl~t5h&Pr<deT58$=LvJ;4zFM+Dai%2#-tbg7(CU-?TORj@6g=qtvB04 zps*^N(zr(i8m86QWq_oKa}Lihe0@1=Ozabiy-MjW1v~;8b5``~m)04L`N<1*bDSu~ zO=1B;^&bC0cw95jX+-hloEf#4BoK{$w8Ugs<*@}MjvU8j8WN_nz_c%*5I|2JpzCp7 zQIKeG8*k@J_{%=ITw;OP$niYM!5OKfASAKJk@D+l>hXTLvVxj_hNcF$LUoGzmRsS} zcYZgmFn)wDS_NFOt#LU!@4v@Zwymx#kCqmPgN1&tEb{EJQRd*uKdr>a!R1&-4A}^t zgmMuIag1UBXQ6K7T!=cfSfvxL6a8s~aV2r!BZaQ=!&#`>4}fVJ*Bm|lqmgaR-9p@5 z-rQkj1sq>_PXj1SJKXMVZxMO8eNKCerpWErwzqlQenWf9sbQmc3w9>VeTh&4T^B7@3Ft=?Z<8WFwtWlht_)(Sbe~t-kfXt}*kR8R*f3k4 zZ)QZ z1-841Tq8&}=Lqd#l_||sqwi5I#Q=-g!t-Y;Kj562kh~Q>wt%U|%oF^BJMjGqwnZvK zZ56G;S;5F5CE-+gKmIBB!uGk?N(HJVg zaC+Hve!YVW>yE*t5o!m3TXXfc$VC-%M{#GjF61>dQRgG3B0hG`lF*c@Y{AWNNxh9} zgY@eXUm%>kHW%E*q)3r=F?pCg=H0Cz`~>@#{Jz=0_!^5Pz>#rcNhrC|`Cq@BZRn#;iSl^Dg0CpdGsK!8&{X1e}9L zd61@#DGht*>Wb@d*WerKFDNaLu%1jBO!3>{H0#|70_FDONLVTp@GF5&(TbnC3hyhj z?^JQ9DzS{yb3cc3v-LrK6rL%tN4BK7D_Q{_Ca7aES^AikrvCVIu|kmOI1`=E8LZ0l z=of@dU>sf9ix=X|ITcT=4fV(3N}E|+hkU_eu0MHh=>L;)p!Ywk&z@5+csL%O@WJ0C z#Wq*5{d{-2yFwp>NQkW?ZDoe_1_sqzB#{tET-f9kEuS-odx z^>Q_<7vwP79%PSc0J?&Xr}e`oYpw^uDNwnNRRua&MnQ`nL(=6LfP20tJIg9l@?Cfe zgHeKONFm?J76G<%Y2r*1iYy+$4oTrd8Y9=3?18nV^ z=e;trNqup_)n6XVn*aVga6s=;udS~4y7ua|H$sTY_gB65y#HG@^gztvDugewP8?5t z=9RZr#i>#KpFhW0FS*(O1M~I?$P_?`uJ-kK?imL<)YliiqxtLZ@NO;S?e){QkN&D) zD?CfMb$ukQs!013J1)u}`E0D)3%DrlT}%3a6#gGNc>T5caXQU?Y*z%TlEHR6q`D6( zEh?0y>7Ym(l|Xs6GWVz4TaF}b$46pi!iiW2*(BFw%!I{$#!!5b)=!+jxrJv<>PD8x z#W&eB!`E2!`^G!jekQIIa2I&kv$=nOh zfBJiO0Mh8A3$sj-Ar9HmgCs;|#2r5W8*hW+Z{qU{b&8>u&j;k;>5(hft*#3U7;DAh zX(HaSu$h^0N*V{*=A??M27D|RJPXQ5o$a_Ewy{myac7OOxKeuv?<=vLk}#b;us6^z zoeCZ*H!YC&O}DfxqJkV_dR^ZSF>@m)zXlKy0^0}=*h|(zn|$JUF1ib+BgZD=LzOZs zs$5ueY7@T7nD-g!aZo#m?+r6brI9_<oBmT>u-uMrb zFUFhLmggMWnJK2|lL5L@5Y2#l0c!iHOS?@o%Nkg#u*8IGgLOchXLCw~H|Qh?2*v$|`1B4Q_+9;tU~1_C+WaqE zsC0gHF=ap-4*F*PlKzrvN<2Sx8nuB@@eDJzR3F@rcai;!mr$-t%YQ~$Oh)CC&Va^u ztdsKDtgW6o(BQ9a4m4S9lLIZd?kooy>D2C#`I-ZbWOiOh4z%7Z2O3qG1C7eD{O0_K z;0H5A0_9a)Ol&?UyPSDzb|H~~v!Q0}%f5m;%?*ayGBrS00{%xmA1iC7R5wY8X=mfU zUO5bNXkyP{woeKRvtyP-BBast2Dc%+_Q-UoTycg83#qd_0>Y2-`s4KgMsE@ywg)nQ^j<54d@pT|_Hu0ZH3AWBjWt7d zfr3&vVw*z!@n=ao$YJ*D)`LQ%qDS|v4(Z;ERIMd6C5P%a$)T1Xdj%iDJSf!UeJ@5Tqn}rL03)#5^tB;$m}Zgm%_efwZ5D6;L`ZF&Z5B*d+JDsWPL&N*E6Td# zK!-<@Y~Johee{4FI87nkx&Yq@o-_5qaV?Q*(w7GVj+6Dr)r@S z+~5%}=-mvGA>r9d!3_h08w?k~37jlIrq~C)!KD<)KoICW+M#%WUYFzllCm}v1_2eP zI{XHtiHabp&g8uF|2S`Q+KEX!oou8xew5U+Ie>z4-(v3?=?)v&X6f!ihgV5FEqm5% zw&`;7;Z?wj*X>bj9$rOI<80$%$H97OKDTndg-_IlXT>l++fznvCM6$zq0Ia8C{{Bk zuvH~aN&GnClI|SF%VL&ptmNX2!b^9}+F`H;9*L18ub zJ9Po7u+u)D?gA-4CBh&+mDV+%cHm~GLP(gyjioq;8#kNa#(jbt7r>3b7l2y~d}1cZ z5IdNB{DKP+jcd=rfze&Pd}&U>LIqOFK{PS2-%hf9%pbH=K#wMQP_Po>0+`uzgjK<< zgqV~m5+R-!+npsilo@qf>XsD#T*H=txs;D)AXn`%8{l7u-Z7JqvmoD~UF0(osZH!& zxNYJPKe3Q`*pR#;kvwLiA$c>6HGodBidUcmN-GOGRz?$s)~`R5HbBm4_9n7G*UafO zIB9%8UGppuWgO-8HtyTRL^FAvH^}QrRN+eoAD>Ah=`hw85g2lJH(MqV_I!CFOjCBQ z8}K_n$^sh4Y_QEgz>-6+Qd zJFrFXR;EP8&=btwZ-OW_PsPs9ZXHh!Kww7_ojQUgZEYc-`R}wI$Spo)Y^JI!F!tVH?ex4r=(Si3(MvpL@bfZ|;7|w49jJ;fh7pBF@ z65%LN$-!AKDn4?IOGPL9(q?u|l&0z{F)z zVL9Mvtjwon(uecWZx#p}Nn$3_wE*P+A1jN7B^myT%DPO{99-A@=BH3Iib%B8Ii=*x zU4f$WQ(I!$^vFGmV2xlHkk>vG2!2?K#!4*4KTReekv$?8)AUI3#1AY99OxZO4LU`k zpqinuqdb9;8B^PKwlP@D?zLHTMncO$LQk#}cEiH8C0Oe^g9|~_fJHsjX?IL&$Pd1f z{n9qVq_`a@YTQLhsu0v+R{ms}taS%5v`DZ8IF#DKLiSua`-1W^uFHd*2SgQ%pg$PC zf`aqAK$gtdoTgO0v0=8RW+uG5J`yUlB)P2b`aLjl(_(A)p6S6xi2)~O6%fKkPnwLz zW&K9K?c(Na-&z^?33Q^zbSeNp&`uVvxrlp*l)^7;z!y_)jVS;)>eTxW3l)Bt!f#pALKZMcaJeAG%9uRV$N@X;pEg|wRu?g%r?g}ja0%(`hh>;7( z*S#0-9={{)BNL#S6@~7MHNp~^X%+^>Mdz%uA*@+r(N`DALFhDDZvWl4l?U%EzBd%5 zN07%OCOo!6?dNm1My-Je_m^ylKQ;LpEK7NUqo=nRl0dImoU@7kXTVansa-s{ioeXvZ8-4C0qeRZjtEE#Glsh(k76;tL zI*OZ>tTq z^zC#AZU_~vmH{1R)l!RU6*nO*7u~#UVGIpvnb%2LE}H$OMeH}tgY+}kJzQkOSqNR5 zr6cT*zPdOI0AvjhW9#AVS$5dnPhXtvIF?2~dkBvar+9x^v(Z`tpNhTQL4>~?`in^~=r5?{G__QvWHnV}>6;Ojc&W>Ya z2g!4wVA^agh)wSQ?UxMAG^s^aO%dWU67~{tNlGB*^SwHdS4fHc?D3Y*RLH#INwwW) z;Ztk?K#l~i-V6jx#*zTY!NFYsnlGjW;GtNQY2j`_7MT#U8qga!9spj`4S!bVuu=sj zGY8?d`I(R@S<=uF(H(Fd4g(JtTcUd$EvbzGbRWd718>ep^?KzAP`wa!SCKJ5o@IUz zRBq&l0K6Ocd3|v$iv=`SPlyxrkQm~eclw=hAFapU4fbcxxF*|1*}+==%&YSqT%k{i z|AWAPUNk5lO}e2sR!b}r7jLUj@FLa^6B2Ze=!s^_jbU}{p!lf(+|@|E37SW)Eup7bqIMPcS@ezb7WNbR!T&NR+(kB;lFV- z8(=rW(}p%)MhKO{yQEM<4pdr{3nLd%JDep5F(ncqhD`Ihgji&wvrzPD9%obfY1n@a z(Nv3+HUmC3O+!pU0`c^jUO{R?GDI9@Wwo9|`vk4jd5Ev6IrcULg zK8R}YSHkgLP~{WT_8|>eHfI+BH4w-uGX|oX*r@@Q57_BZul`k-5uAuL8|zdwT@bUP zW=x%_TFg=rUfGbdSVgO8Sv8-7tPG_`3e5>36VNzZt%C4D05?3X33J60o{NRh+?lsD zjZbFUR1=Wgv_-U%MUoHpZWW5NTOow7oXQNM3UZxL98i_{MkV8Q@$`q{>`ubYZiSiM zogEIv#Y1usNZP`^8=&r|powN6;+Vx0M zqyntHQ<6ebq*@}RNrqjk21y73Nne4>ReD^91INuh2ZvUPk-k=vqD4q6*w~1dR&1i& z?r=55fF>%6v}Hg6iHdI!knj{~(Wt20D+Txa{<+qEoI0mcf!Hm#lB&J;T64`c=Rg1V z{QrN-1K!H=&ST@V=Fgd7DLrj@X*o=c#Wt7?C$XfzwggMub5mv zg-n9M$0qFSOfCt0fa%>HC_^|0s4+%_PSf^S;n^9KYhr6^S9Oso>U?rqg}+&g;pCFK zs4m)=kTO_Q)cM}1_F}nR2aZtvP9%eo2~B=UQXt<`6vfaJTp;veKFtmvP9E*ut0osz zp8Y+ksz)CL;U6rwax$VhYHnGD{kFpE>75wuY{KzBlR{7w<<# z5Td}M-G{jqnZ#gurkdF(#F*zH(^8A18si^F*<}ilAp#(ArB%aU00684m3*ByyKi9@ z22NBxy8%<|m<$CII8=(evU=>gGd^eq1=tX?1vQWiUTkXQ?nru0S$!>zm4sc;YCaDI zz@yfL0;K%;3FWo~x1CQ%_5`iZ0I#O7p&Kx7V9#e93y?6^5x`=7ne_>qVR*nV!<)S* zP64F0(I&l#Sza*L4=<2UM;F&@P&KW)?lyN9pzN;p>*P!&Dp`>IZ7Y~2j=7!3S-81DSd+ST~`NHlNNb14i9S0$2K>yvagOms5h}Le!0tHZ|Q7a%~U4z}v~A2y8#N zF*(2oOZ_#~K7vQ4j}Zqi_IokeO@H>e%3m0J<)KjM-;Yelw=RzDWL>5nNK#RcR<%2} z?vjyuhy3B*mjm^e_$_qDlgp~lNmUuF2O`-SGa=)tOyYe&%06{Qs=_XJ^(j z{uKP}@VCd`dT{1v^D1uTWw+0j*`G82Hu8mTs=n^bH=cQ8er6c_II@F?t#`9RIcijr zeu|ZFZ!m1*5Sy7W5BZV*$efN>k2oe`3c%R=)+vDkMUbjCJ=jP$;GI7CgCL; z^$DE#@LTpzI9V~FAQA67SzYjLVkB~cKAQu0l`Bt>~A0PLQ4xspUSjHXSI22lP zkC`>E2U_jvQs{Q7#?CD$%_8bpGh@l+LI4Q`fcD-sA%q*0SM%Kk>qtA$#MG8x_@#M$=%L_Uw?{0ArMDJlQ3`Vd)-y#1lm9EnJV8 zC=Ec;_335xiH7t7g#lGQBfS+CpckZ9JZz)~W{bYYU}IcSXF1FZz^a6Vm5|q!DDkpL zc4=3#U?{MtDwh!XXNeH?+%c6{4!|4qVMrZN<|I3_U;qPN)kmT>v*0XAzoH~pR_*3* z!w6}M9uSRW#&MFzYW1i@*_Onab_F|)UW4lWNICXgU$~1u)0`*cW|9ZpUER20E~kmf+3YnHAFheu zMij49kI<^yN0+w3qco0U6xCm4b4RD%#Hu5Y9M1V?b{Q@lq!-LCn`n1EZr zaE1h#9(pRX21;&!%PA%dlC-V$$s>8!YFK?anoQN??LC44GmDipTxeQ&*VsXI94uB~lPX z3kMG8GY)R+{j9S#o$B{f4{o~!o45E6AIXIy=(9m5VHn$TVuS;0cTqSOD!rDuZK_JvEGo^E0i~ALoG&YU*?wQ+EMs?n?goyd=aL-gd#ti1Zo7TK4iKGU&tMB( zw7+qOHl{8NE;cfdt;EjDY(1%qMb)p^n;UV=;Ghwfaqdp2^I%YTJ^ca8N0Lz`B{}%v ziOMy!GM>U%G?Y92(7}%%EIO<9Ap_=~$GmayqdgnKjr)s^Q!oR4qXHzCB{Imq8?uLE zCC(Ei9}iIES9ib9GNI(|=XGE;0o~f9;TA+V;uZvzFL0WjxmQs0@*doSnwM^8Sm}f{ z(A$`_i-8~L^?p!UCg45o%PB-V-i!lJmJZ&5f3BVQr#jbIoqdte@evIdzc zaX_()Wrs||4nvR@auqv-y)-@(_|kQO-Ep7?JJi&`aH4b+Vzre%-*iFh1y22+o>H*x_Rs?lJg($MQ144 z7iVWYybD%j9{(5S82wn$)S8~FUP@h?ukNLOT(TGujnz@yRYrjs2NvZB#jZl>(P>gl zQXL{jB91($4-DlHG~5H{=~tC|Dm-;fxW!^oP6K9cJZ*mhV^Svv*fKn{i99d_4VBhe z%eRPo2H0$ptpbi}Ri^?pu>0CzxvH22e~Igk(;R4tQzaH3bQpm}eC%4ETvR&H&oLJNz^D64Xj9+=Zy(1R_u4B zxxuRKc59aD@+y^`)dqpkK3sL-!b&h6G`?%lDAPBRoZ;1vQQXNiG9nc9l!F0nq34uf zZ=q-In23Y+pSn(51(tl!Es+qmidIUhc#;943S950T2(-HuMrrlvN!Jdq}vcYDMR9@ zXujQ#nhMG|t6sI!2);10lS>kj=UXgu?g~t_e^(%=6`B!t zF=N0!ed!4dp}Hj)2GQy%Y^&y70}s#G%(ZR>u-wg{ftYIu4{4s~CGNt3{!zvsZ8zA_ zV@o#Ko-nI3{{+)XyQxkVS5ubhYV`z57DT0a;0Q?DjM7fsOKr>Q3D%mY&#;bk=7cKI zG1NA^hK=VmZm)(Bgj}4a+6i7Y?UPszJP;NTO4Ti@F-|1l!Fsi!E}i-x{v9Iw09Qg}S4$$>P%N@>fFIlx<~@en2$~;+=9{jehsRph;Hf~;~=&PMaZFSa91*)dPpm}fHRO9bg9`h zZ1(lU99IRfs(<1_(|whxq2P6OQ3|L+p+~P(cZJM%txtE+o#Cs( zn_3%;c^8`Ltovx&VGCo-vg?~Qh-bax3md!`pYP6tVd90+%){q-k&FW89QLyAC`N0~ z;EF1fn~EHPheT@T?9isWXpqLe&gZT)&H;=rQH|cMfF$$%zq+6_Q-FK|VB_h<&Xl;0 zNl~K`tJXR-xXLyGx&}qAaXj$dvSUn#-QhkFLL@*o$`Bh!f`jLtRQ?*+mR@V+g6D-Dds2^yNM4Mw3 zwi3EZz#0Y*E&rXTJ%PbUSY>6LRd zWEhxw3;m&Hgk9C#vU4yJDYC)KOczomjRo6WE5LbEVOp z2&_gJfpFLez>SZ{6ixfNtr}5hKwImLkh@0VMt+7q5w{)#PRDH^8eGBVp&f@-js=^% zUFRccX{r*~sPCKg*)(ET4#V$h#P@cqz5adLeit-c52X>=tbE#|5gk;-RSF3SPaHo* zv^El>FT-JB1Z*6Gkr=*7R(K$;WGun%i5_3D(2O9LSB0~#uW6zF+@FkwxO_QaBEuQa zW>gm7fowugjph72ZeQ?jA_FUx_`D#TMf>>ja*e{h?JLJiuZ;M36n3N%y^^oOB$0WT z^)9hSaSh)JGmd5bbRIY6Nk)s6D7uTMqjh8B{r4BDHhMvte@QC)DA^>Vn_Vw?j^K>9 zhJwtN%3=ls-aQg(T^N{aWH4-Vwq=vSki>T75>!G1|Cf9&q0v9y3t2dVG2~;+=t4l~ zM}1$^08s#3Sidj6>tepJDJJ528ozL%Ulyx@1O(^N3{t9Y&829Dr*c8R%7she2Me`7 z(kXSbq_E|76!vUtZz9|5`t0?(aB;o%Pc9_lCD<+#BT8fzog;fZ|KJ=3oYpBb#^EVJ zC{|uLSQV!m_NpMuBo$O>qEa=r|FM9oUnhV{y^~m-t$>tw^03y9WVkr+!~)ATQDGomsT|fD6bswwYwc02??(WoKmyRw?%JJ`FDJM9JBrNoWqL zRTD_s0vlHk8m_|{MDJ+j=>QJs-9<3JfCzi}7(b|~R*7i5_$m}YKAtZB-5ZB>t4j9f z4lo?Pm*~NX09$@UfNie{u;sS_)3CMhd+~4bd-a+C+g@{^3xbZ9Tm#L62Ec-fFU|QI z3|Bd{aQ+5)N+wt$7I7Eq^)R5q(!>m2mq`K!TL9++3{@dqNV58fg-5GY3Cd;p>Okn6 zsXrBJlnPYeg(Eu{9I7dhR3~BV2DP9UV;B)I$2Vj2`DrS*+5mtI#K!=aHMzdGkQj&NJht*0Kb-5XDV z#hacQFFs{eJ^(R+EjkSPWS8^bbdK>?U88d-dvcWpX#7R~PB=nC+TmzA=0)~?QWHwy zpv8crCx#FHg>f^%>j7Mz+KTVOx{; z<;X^^1RtF8J5i9K)(a;_H-0x%!tZ_lPCrscRh11-mSuT+PNY5qRn+-mVL;N@JE$|H zlJZb*i)gM(%~hxE&SNj6ZU95XVAt6ZiUFBGXM^q9xh_ov-AMfLmRIOw=~f1w17 zuPKe0<$GfBzCy#29#R@J*EXdwFKQTH#;M6s%sYxRfalrpT}8nPcp$0NQ66v!Foo+# zS|u0rQ1)Dd)tD|z2rl?-OwH8TF)qllu^b(z+O`geBe0klEu&r<(6~4Dm&l^;1%o9^K}9}xiWZ%U8bI|*MXmq7ryJJ9HA^@9wxRgUmo)P@EMh@`*+3K;WH zhvgfR-Sp`%4Z@u!P>6K4S@`C zg2dGG!4a>UVdgxM8R)A6$E&<1%TPds`WJ z7FDp$HhS%n9a7eNT{wh7ga9!$O{ic?N9uk0$erLnfvJ^?Q!CGBYQPbg1#!Zho=!== z>`A1D4&PusT-e|PutCbxxKu7HG7Z0T^KCGV3=}^D@W{Ta7$8adTDN)I|jtse(o(Q^~_uWKXIIb}6nSv5B6@Bn9ZAE|D6d?rMX& zkb5CzCC@2RxLO(iJCZUr33O?Foi{saI5$m8WJ8M7<0gPWsrub{N||jY$g5!`k`a{9=5M9 z9Oq+Ah4*0CH%-+lC!=_JvQ|dY93YhuNti%cn{@=x=##2o)161NC~fG4DPA+6==GzY z$Zq2xYj<669b0k{(IXV%K#8%ptDPrlK`})bX*GUQ`P`#;+WAY5cy{slC`Q|W zN6Hqg`tL7`UOHgnO~3?|NMfn)H27DXD`P&`9#YGI8AZxS8TKY*kMN6n(jprb*Q*HY!cTR(xHGa<^Hu_Kb0zt@o;Ne%`3Rka5Byn%b@4f#aU z<|jjJn6-wg(h*NwaBLL%xXqPGjyO|-DV#-Sgjs+3Kv#ebLKgQZ~wVkd|; z0QyaFqG3M#-%Y8I6T#NhIb80BocZFqj9-oKGc}2U2SzA7q1k|>^UnEh%K&j`y@Jy_ zg^3-ou;KG&HK;lVvVaQ=AGM;Od?H>!pgBVMCl6oN=dU3=NAI$?Q3$Z-j;Gsw~ z{|m`rmai}83=amQg6)ofAe|;l5WTG2VRP{{OsfD@61kMla8X~_t~e4X6K#{e5MNt; zfp=n6Eb9vvM_SYuzLMfdE@GJ4#qhW1^$D!;#x(2O>yt8hlT(SKc|eD0m`&(cqiKKq zSuWI{a05ADk6&{9vLa+?XuzFAh|4Hib_ieD`2 z--<17`<|5b&)Z7)YiWc!?oxJGN<=s}X0wd_cSa~&KABy=-*M3rK#hOC7{5YK_xNNHM%P*eF2x@f?p!1SDqs`VVOMuUW-AmaJCjBuR<9z7o+NknGf#!_gB31?LT7 zSwyAnRL_71Xt%BEDXz+U89X!Dgh`8<=R;P{SX_q8aU0iuRSg-Z7ByJ`M{r(P3^*IW zDeEY0%d{S<{*MDI7Hr!^fZ$^hfK;;z+zxj2zna_T52f(aV}G-z#`*kNR^88NA2 z)129O;JMfm1QLdT!Km1g&R>v*|CNg_)kVAKi2#S;BXm9q;`znUu)c@nBJhQy*(CniOW=usgA^goFWMO9Md zOk;1`wgq;Bt>KzpgZ?rvxjxnCc zc35Wt?n3B@0AOO;fib(+Dg#wsxp~d}W)<~j*fJNWdLqLrMajaC2O_G}R`G~}H99Ep z1cy*KZwhPNWEhajq@J?4OIG04W(@)rxstVF^{a~ovhWNZogmc4hdTEE zfpQe?qD#i{Kg=vM@#%+^XMQ+W(`*4<$(S0%LbxO*mvkB1U|lXQ##h1gK9w&};Y?YU z6Q9L}(b?EXifL}*!e0gR{Ly}@MR~GuUF5j>2@Yl>VU1ltJQAy^sAL#d@J35hl52@A z1e1*rKeRr+tzua<$GolLOT^O+oK`B1%3Pn~LN}>US2~sDaGu5KMwS%A{*CRjw14tk z?5R&#FYH--iTx9@e42fnl;L9}5Udh0Ac0uHt}Y3nzSu~gkX>HFvDYyrCN}m{>rhr` zF{sOR;=C^QYl_=!62i**?|t#}+ZTW9?8PY=EZnLlRg#FYgSk5$K1-^Nk{Y+r)r;ui z|FtW^F47#nYt|JGN%w*D(DMEboP~5jBy9qZW&Zm(d#v&hc@EX85jOy>^dDb&T+mxp zv&zA=3fCtUwuu+)nwn2|0bWsi?YcX~3iVOMMhjzepX?RyXKdT=lL1Hlt)mT6O`;D1 za+?Bc?dHl=^Nf|IJ`YK>#KP+w4%QVVf*l)NU}0zMCw%kPJ7eLqX1`?q06J*>S|4Eh zErF4!s|FP!;wqqsQ`Br1w_#ESj3K9Jq7hUuFi0`Bo=F-9VqRU0Ule|2~--m28@wd*>_3nr1PILgA@x} z5u8*pVm(O*U-`mn=3JI46zUQ$@us+b7VIUDy2?^RbPIOwT~JGw$0)4M;g?PmU4h<7 zbcNc)_$|aFgaN9PYxrlKe2-o%$|ZJnhdRv2XN-aNn}PDlKs&q}tWfdA!*g&tcm|d2 z*Ks`aOI<9-|IOW}fYY#76?~Vit*4#_&O}7T8;Q~ zYR9in_VN=hcL5y^2~?g8IOmyp;@b?DKJ`r2a8&pB?MSG7RPEL2IoTadjX_yomJ6^l zevGO$!+57V*dCBe0*F?cHXRxLg1FOVMBrEn3e#J+$5#-$xlD8xFOOHy?+$RrJ)|8io*@15>H>LsF;HWaNDFdFQf9igKG`9i z?WnjW7O(5a-C4TYVCVd`>}bT=6VL0~W1KV zXX}SfB;QoW6bD8KayNRgml#PJw#E%Yt3ZPkRih!3j`q&FqPl=G8Erwrm2b4GvzTyEpO|pm9FbPb2Ch6mKa@05KG8_KH}J-$x2N*uzuMbV z+TIZ93%x1U?ae)LDw&}C(Ur?ZPcAbfjX0aANjoK7*Id=6?>oTx`q%CJC4P&so?I+7 zR4D#a|BMWQ->7}?SCXJgk)7V4IGJ|S>CJq3k9|JB?ebff1`OS#n0N@p@vfvk4R4`* zyUM%>(RB7AzP#7Ys5hU+hxWQK`_N#Mwq~8&7z}+zb_qz=NCecXHtrCvS9Mfln-@Hn zFTd>zEW+5T_zN!xHDCAwQPB_ln!ks&>!aSKx2!^DTnNUD!kYM7Zb~~3p`oC^rA0nI z?MHPbxB?^zX(?cd&LIj|`dD3*ilP@{5#e?N%nS6Rw^iwyo%9A7qm*;3GI$L3-k(o+ ziYD^PG`8bVN(_lHM8Fe?RSt-Mw1XJX0?5%T>j#9$-WDQgx(g6d@XGvm07+Rc*gKMH zlxyS00%$RqI%%K@I%umAatYdF1Q0j|iH1*4Fe5h~5W zkA%KJ2!I(KUDGX-(KP0O7S7uR&NdbfAR}Nf^L6&1w#b;;x{=y8*uV^z+mH)IJYtIe zlW@$^QwmRTP)b=aLhkde+ZZ9uTib;};KFXD-vvYN_tKJ{9pczLtd6H{#sd9DLEUu5 z?x>W!>@&o-nNz{vIsBgnc@wc%_c!YQgIwSmFdxe9{G}eZ(I1~d4V;P`(`qHMpScwX zhXNNBG8(Oaki<5E(OOc1hKDX^OBi*UC%*f%MLc1wWOc^Lx55s7t^GWx`!~{zxT0qs zTPteLM26aWTx8dkcu@jJ)nvE|9nfQ)kwx7{_==aP1UOVZ3#qtat%&f~@dNBAxW_yMjd`Nt&3d%I{symZIwf$Cf$tv<-`goy+9T080Ba2Z3s#}( zhm4QIvaEg=0sHq@q7pY% z97oji-!qp^$0>?@h3Z_yjDPpda1r1eG|uOS#7Jlz2-cjChUft)l|W_(~{G7ouR?borw?T+ugIf7RL9HO-giAz|B`jhQ zBhKVdAnkeJXa(wkEnPzT`jy4_#Ix5_$H|*lkAT;wr1^{DYnwEGVO@aI z;zoVpdbO9lc?kh8q}Rr6Pv3<0!3<;DjgFq2U5Ew`>JGxK>?sIfuObJDS#`kGHQuP3 zDs_w9wgDX`w});}+9DaJah}rdWLPj&4HjtunQ?bi^071w%!hI8IuVhDz--rw9qg(u zB)E?u$qba@g@Z=Gvy?CrIX`f$P~C|+0$2+}WH3QagLa6tiSZ4V$2WNR#y6OcFAxi; zpdS5Mgn!^$2z-cG-6*9=_O%QDr1C1LZS>gkrfN4oZep?>*uEctq^q?-0#Yx{)w)~ z>K6N<5L{()=Dq)tNtMbP>I7Th2&&twr;bT8QfM?b|K@{Q3_5t|S*Y|E8{H3Me}`ia z31hx9zPIzR^}9u4&`|y*H#=NqTi&j=xjxqJmYY>7N1Xq#cl@*Fiwj@y5>a`#KfSG) zZ|3Psh#p@FfKbzO-+~EJ(B<7~0kcAV6>%*gI_wH%u#gh_bXf~EZN$HHgZQ{G=`XC>S z;6TmM^;KpSA>LKqM2Cf)#$GXVDes~fR7J2VWAlR`rd#iVdhk7Sv&x{J&a?NYw=$-I zEQe7P!#~Ukyo)3vxePMT9XX^60doydBT?3@4#sMH+0*1{^3&jwsX zpoPp-O(>WMU`@-|8NRt>ULEBm3R=W7IB>z+r0@(UwWP@?WUKzIq^=J5Z}r*x?}9~%e+jUJ?SonXguoO$g?DKhGD_{1 zxPAcpL!TZ0DYDZ55+H#t>H&r%ZTWUdn7T(#0-C#z<}YP-r&V=9y}KtX0F9&uF7q3& z>^CVVeTF#1Z%<*DeIC~!F>>`1KKkEKkhPdx1+;V=tqI?ZrIUbxp~8?6KcSPMl%~ks zKyjb~s5%^a3wAXNR_c0ehFtkDLQ-9zsdbI;OWi5W5)3X;_h#wU`IFbG9R6t+%Ih=^ z#g%XJoW~!t%&be4;#i7@ux_tX@GM03h9?tG892@tuGFiKB;a zr3H8u<{?kFZC5qN7)Pu}>fQ?d~;LMfgi=Q z*2;^$!Fzl4s`YrfM?25rAC{!cE8t3T>!4a`_vn`%{Tv(I5%-X6N5{_!eUxWYgSel! z_j%+llJywO75OVk$m0#esL#Rp%nfG6fJt3l*G^B<66L5>8HxZ_)mLxeGU_j>4PGP8 z-@J#K%gsJvigF^|lvI(o-F|G^Hygy>XgrS=Cto=Yk&9n}vE_pVW}s7LuBMU;Klm zk%5hUD1}1Rci^F8Q0Imv?95|B|vm^xZ$P zc!3RW=0UQ2rdd1khO6*GeKNd|eyn;3ldPiZA-~-I?JT^CbzXiI(`#Pk-pA}!-KAF< znl_@>2Ypp{_}Lsc$!sz7PQN`53PRM5MPe-cXFNH37DJ6K3nj2t|2GnDEB?ct6iws1 z30#l;*oaz8=?@{f5d0*N>QnE4JoZZ50_(oe1pq8I=Dh^SNfBplK*K3Fjn=?fkzN=| z0EMx^15oc!_N|HV9a!XT?Ss#z^oaxn0C+G!g|a&Q)77#|7I&$jywl=4=s<;wz{xj- z>2*KKCxy)@RN@zw><&Kpc7%kzmlyRbe*m{?am3Ha`yM8XeYl1GX5RO0Fc;J^CLZ!V z<%;u+RI|-9$(_-^nJ0ea2aqfne^IEqWK_wa&zWxCBLCv%Q2wvw9kMxAo6|tzJHt&) z!X7GsJAOe|i!B0N+eLlwiN)c-TsGK{0ER0s1Qe zeKK``etbU&rr;j6zovc#fJBKQ_&^mY1o-KU?&=4c>G63U)8jaUhloqP&{mxrZ`g8f zxbT+eM#F`<;ZS0|*m7lV@x7f}G)vnd$?@r%62zcd2w{dWKa~9>{6t0`$TR+)i+M2dFRrjf_HLF8#w5-( zHD2m{^($wQ!rl7MKX2)m`XV$azt@}r;>+t#e=*V=M@O^&Ig(-{72)e~8Ld@lc6U!l zx8i83KmSFh%MClu=5*f8Sx zQY|KZoL9vCV$w(I7Clp4>EZ5n?|hJ72|fXmy9d@=`93tI*=h06pgO+3v2CDKEJA5v z$;n<^Kip?`Sezz4;FWT2D;Mf>I7mPT5hL}Tuj(1t;%8_QgQS=awx9wP)05wN41GPc z3GJL|(q?%`?zqiEI?!@XQ=gXg-LFEvYvAx@rdEt^P8iKvF*xX|0>q!eRLyleen-e@ z$BbElyG{|!eKfY&yR|2_c{dw>WvZa`<&4^)R^@D^(}d&R8Vx=bMWY3XEyg#8H);LUs=-(6YPO}Qp|~eLB~Lf zF3{d~RaF*pg2Gpn@T-yhy@b9>{y_9>{ELxCoHzBcis9dC~$Y&s!a2 zPpg3MRo=t88U>sU-US_mI0(GI)83Xk$Uq&0NXc8PzB&jVw7Cv~A8n?1;|B~O4I!Sb zgMS(ZxX}-xYf#WAJ(js=m1uA>W^jD5fKu{Ww=}f2XyMsW!F8KVt?827m8FB z2>*ZQ=h>Cmg;VOe>kIFb}K4U!smW@N`X-YgKBPTK70* z3BbL%x=mOo1^SbI&BSR#I0a$jjgF0%R@*P>*gYZ`SXM`YUKnoK@Fy{-6sBRf3P_da zYFO_9b-TKF7$M9zjw3|?qo>Et2S8b}BJ3BXj5nf#(`G>dXF5EH3f?}rxlt^62_1Nr z>F}3xG;szB&5YXWNDQk@9OerZ^0q1c(zu#vb3ZPUtcvHBioYZZTPpwJr5SNBwi!-7 zWUZfN|H;lw=@0o5vrq(6UFn{JVrP(CfCqnGN5a9(*?qj^3Y--)wD<+0^U%^99B*Gfra2 zVVd7BSuC)IFW)@jK&&}yfQ`;r!#Qp8hle#V%h~&aoDw9E=&h}SCJHPp+Ea?h(B7HR z^RwkY)b%_Jy_NO78EbcW1<57~bipI2PK$X=TnDZAwhKcZ^!Qbg8@7LMH(~gJuRaWa z1^WSP*+M99AVm3HF_A;r5vh$0TlrSn06toJABon2wvT=k$Ib)|W6+Hz*7>G)}cTB;WU z!LikVr-SZN-D>pzdw2nzML+nyqoT!9A0zBG1S1Iup^ZU-h%7?9EPjy$HqtrT)C#jO z3xl}FzlD6fuNI zYzB{7GGS=MULMNcbmu_xjnqi6hWq1R?=lQRNV|p+N-uJk-{dBiugpS1*_R#lEQs?40uY(<-Uq;k{?_-M}a5CGxF5PHkF{qY`R7w`p=H9le774fC*0^L>)Tw3mh>gjfoCB!7&3l-f1s9gt z(S2b~@$qfqc3Kskgs(J|>Z=@Vkyxfb zHIf^a8L`EzeH7OXVy0t&|6BQR%1R-L!Z!kUYFsBkikIxfc~p$7G z$`T!a^Pf&}k(Vyy?~pSg%hBvlcXQLtzxNe`_R`+wOCFyWq+eOF(%%0{KASL(?Yf|z z`ogWUkU@%u{?nO~@``sH9)_2$URlR3XH7;dQ#Sr!OOaL(m6Jg&MLpEc5u*q;7#)X7 z>!{d`pClA5?igE9*7qR-F|-pdva{Yi_T&ujNBtphMlUAyBaLhpj~a~d=Sz1D3j>>J z$CG^97f&QM*MaIm7ZBr$yb2+GbzadXPKf@q{xjDIPh*yooyCzdX5E>(7qZ^@9ureO`k#zsk))0iTdX63+=yhuoo z>=DWuWUnu=XQW+>i7e#n*B<4g!6V@X8{-d=OP@8&hQn|x2F{dvqelW+9BIG(A-I4> zf{~AA-9zTg@NXe}xySp`?NrM2;`+~34?BFo8+@!Zi@g4w4|SjbZow|_cm9QTjZ6_d zSHKeD!!88TGPFrl(lbZ{xjFuDcXWv%P~`IwY*fGLy^r;1LJu`m+2;6aKjo zNQ$kq#uGH)NQFTaj_JVknUDFdo95$?07%_Ux^cJe)_;F*cl<|5BE?)=DggH8RGI1< zhtrPmzjt9yDlm^|DFsY0i;}?@&9{UwTn;9q%63WpeJtihfiC_!!7om80(ty(E59z7 z{kn}`DAF#sD$VyiV{JELY)+iqVChiAPS=O6ROG@j%9MQS$}2IC)rXm(YgAXq>(7T! z;K4?-cne^j(Ze*Ft`tgdPd^qdT@si|; zUKV9;kFD(hkHzG-e9Gng2m_@0Ex63WvCN`&D!ltCBqR^l_srTw^;>YB(Wf>)*R*N+ z`E^OR<{}3{6$O7#4@ z{D!raG{pg+h%9JGn~m%VLOM@C1-Tr0{dk!(iTCbY=Nlwes97uw8a9Dbr5W_o@H#ZZ z4zppS;#CL$z&9Vfj4gDpayVLXu7^ErIOaN_samU#nWq*~t(o(TV468I0j3u;n2_pm zM7IOLu2QK{gb9{Y3x+#1S}^?s0U+8{w^#!&&!JnC=g=+6^VTgmIOd`27UdSYh1(9H zSd7|HqqZi+g7ayBxBN`Ota@dXVEVP1#Mr%m*@!V%C}OOrKN@1}qX;Bv{vGKy6xG~D zf+6J)XL0+T>2^80{Wo#@Z_;hyj|NBkPd4p;?JtwS>&Rn3BajccU(ce-GSR4)WrJ&5 zDC<_zU_btuO@saGc->z&y?-Lzo)2~=k{zt0VW116`Q&G|9u24TFq*R@Z|uZ58ht5= zNz1ijB2EKNo7n!O(0C{%zE%T+Ro?lY$UP~bsFr<5K6YVQgSd@bQA%rnLg6BFTt$9elY5Pu z@h2~uFX!_SPpZ!tZ zrT$nB<6~nF`?zzuezfd3QdG0K0=%O|kJ^ei$SVgpy>9=|E@SoG7?i!nDJ{X4G$3yO zZv9*Qw8~<=nKO}sF}KmFjl@V9Lu2(o@LD}va3=0(_24|)nlr_H5R4AOJdc)(oGBUr zho*rxaclMXEm=KwzuD?hNpCn4tX+OeIuDF0IT8a9y%DvbV#!Vt@|6_h`iqF7H~4c7 z#`zK_^=-z|A{ILUn84GA2l)k-o}0g`TvvXpOEB=H@tQEacUsPg*5sAUMg zxkcq7vPpxpIg-T<{LX6-|L_APq$Mp+%Ev5>x2ms$q~Fb zufKL`Op>*6FRS{b+)(gUUfuSWH8lx2N|%pKoPc&PEdhVt~aD!m2W!u^7% zic#iKX7PfzK}TrdGR0qsuejeFLV6v0=v)LBy`R1|_q#LI(KZ`9iY#ZrY&XTmiJB`# z{X2d>qLYGzncU4(OfJ9^693P7#p!1qSb^yD|Us%8R-8#0S=1z3zG@(*wk~gdd z=f(_l@)yNH(oXPNTrao;=*Mxa#*X=+>_C`tAnd6A@3K+OPVoWc5>ETshOu;l|HkRV zSr_)kV}~c>I!p1@vNw*J7yALj;m_NN4Qwtz30=$} zKi0Yl4-RFQr5M2Qk7WU(*x9l6f7%ySY6{1=IVOk_O%DK~>h<~Ik>;PsC|Ei;HU7?2 zhbXjxOVu7JPn33)qHv-QO?9AA8LCPZGIYybra=Y1!u7t8#hw-0RVNhIWPPPsB$XGM z-qFp9PLW5~$V&E6rgp}cjT#Ky&)y+&>-S{-$b-WTeFx2dIMm)-Ddq#wOCB+wE1k;a zJkhYj#5ZSGAsq7H+TKvZf?KR61mYyI(0>NS5rK>fT2BRT&;pyyVdaLhj=`VY3mSkW zOW|j;9gelX$b#bGvc|XBkSY~ULh&qgBHO##UcsBB*2zdc4py?pbCWgSsRpNRrw5gH z#KZfO%?c+qBQ@Qpo{5pnfLX36r1{-OL7y2tZ_^*D0_{EXP1nK)_QpA~T@I0@tVgDI z&?V>-u1@)o8(@tFaz~P71XOR=6;q+7i7v0Mx?OsTz6fTZBZ5(f5t0sDjCroA2~O4m ztyGKx_Tj_@D)nuw>n1d^98|k9gU0X$Atw!RtMb&n)o$|EO<1S=$?izN+4-#f)IR}q zCISOQwlQ4Ua2O>so?4*E4p+{@1PAq{$cv*<8W%(njo%q)?4tXd-Byx;-GhA!{V^|Q zoD3aC68e;P+lO>>L|ZNn)_t^Vd^fE9)MWRNMJAL&MqDPxPqD;yEEI< z&dlTHOf7O|d(Jtt-PN9FHK0V+@#|LJ2vR^fA)3IYb|xo~9&Cl-@z{M63yHxT=*)Z| zzjt>N=Qz05jh*_KULx&O%;|O(%Qp}o1+b-dn)G9`){1hnRfq1;=3-TMb4=iDja}+s z8`hO7Szy2=@Y(^4f4>W3`o0?hV*v80<3EV}2gV4=y9)mER7hSu%cXi(=t>7kiW9jg z>2R|(AvbPdP%G=#9-oYc@y>zBHd6GaRc@FSNV39?yR)G1lKX>f#@#?cAqEe8R@fUv z&hjigm_oQGq!3&*yt@GjE@phfJg(o^T^u;;u-d63j-Z(9!kQugmV4|ncEsrd@2_YQ z^TI)k&PhAf3bwS2&eD+tbr9j6a_$rt-! z>=h&c3N$98<{fCuV=|t23@Xs@gBQ_Pcl?KGznXfD&CJ~zSLYVs&7^rvki-d|8?IBy zx@|$}WcGa)a44!rE%zk=7y9CL34lz9zE}>+4}(Q~p-O0A5pJ0lZ&(K~2g516=XkCA z^($W2Wn+o@inAgM22O8v6!wrXw5a@b)i$>eVx%HcIMbYlTLje%$w#m>PQ8keJK7Jj zWVr2_kOH{EXZSd5sY{DFT05@II8FT;6*zhVlh^OikX9U3-K~!##!iQJRE+w;A~05E>+qv#TvyGhxRQkIbhUx zQPyKC4<&;fuh?_v3BD(a0ivD-r9ZboWNB6q_W?V`3}>4V44)tel{l)(vfXC}&BU#w zS5vl>Ho+vq(-m!?iu8C=$j3Mo)WP>rxsNYIv%m1TPYDnBzBGr^0M+Rk;H)jvN0C0P z=fXuRjOprNQ2r#cD|+p=y;7z>^|~@d?W#JbDvAP~kZGOb_S&j~GEZzh5d zE1(EHE+WC(ufzY^D^^n>A_Mk~u$liSQeJ?@OyDkwvQz4cq|F9`9bFD8ItkR!*+36t z-6L=&-J<@7jcDsUB0>`8YUDn_F_WH*h+=E2^=%NNue9+#aGH-xrg;QfSavP#y;6<^ zBWRkRI=b(+2?`kjt+BF3042I&Wm`p_F9f+pctu|K$gpya<9-Tk#hLPi z{O613O7Y^ta7^Wr(AS(Z9(rCtZ8|^pxj7e_WyOc4vptcyO?3@6W5aQyON)CXJ`nN* zM0_+ivg@jEC`NqKjqU~jZXU7`DEM?cB&*P83&}cZ9vnZuFBXv3)nrWw`x-}>Oai4A z0LglJqb!EK@u=k1M~OnD(l{bfF}u=|h?x#N7j>Pn zA6X?>#lqwH*B6xkBHysyNBgR11XdsrYsdN!+Li{g-kk6Y;(=y*H<0`(uFo~i9k(G4 z#J_3Ty0lY<6W=Oc%7SX8qN7tND#Gh<4#ZuRLLE)uakxvm!$0?&ic2%gLgrFWz`Y(y zD6Bik8QnKs(w(_Wk7Ah)uGgRck8p$WM-s1e-E8VAaSU-HDlc#yEwTR05A+}!4!>~h zl89T=vIo#ZH*XUitfCNx2QI?qPA`Ii8>yWj3he6p?q-h)g;FPrh~<$Ga0;`42y1YF zta)S%egyuWM}e99Z=$XSatHmH4`+GmSz$WIgz($H4E3(~Ax7QzNeIT(x&zo1xa@BktEGTALH+r{jd|O=(KSB{%O(<`bARvQj1Z_ zyhZ>(N%|Ul5Y%c?QpG;%3y5VW%zbk|v5DPN+VP43b{ZrO67tHjE;LH&h$d`rvIJkoDM$=7&8hwk z)_V`*HxRTwIX=#8bR#ClxEWLo(-&+x1v&V&Yj74(VsYrj3n^K0AJIIlLq?7wruUc8 zJ+F>_6_WyF^+p`dNnFYaVg=z~3;_x7^$3)9hG(ssd~Rvgpj)~Q-Ucj#kl0L6_2zPm z3j1Wr+jnXoOPy+F8wNc}a(JIu6B3Jy6EW1zFR$>$GxksMs~Q>jEI-$&6r$}ack}$+ zS)g!S7+TgMHnx87tCa)@>mrs%cme@!w)DBl8#P$_!R_oIZzIWrytQD`8ndgy%M*Dw z@8j(ac_(4QNSzBPeX5yB<9fI!M^=OzF?Z?*i@Uj?e>aas!Yx(rZc(#-$tTHy4D=8= z)h>NPBtlm=uhmXjk(?Wz``i$E>Iy8k_2vEpn+zON^4zaBU1!6W?kM}HZutqg=lfv5 z5g!edBE!yysm3KrV|B;DD0(+hq1o<15nZ~U!0xDfCQ2;Old^KV{~Q3_J{oK>9@pEIdBJ@zL&^6= zx9Vs~E8*pcf{25GRbL0AgMV16FBms44~+{Q%OF$>I-bB&$-XiTSU^gjw>FK2KqDmp z-M;nl%LzMi^45>f_@K;4t5)&_wX&zl5m!_06t+N{I~7-xiWy&1?o>2Lxl{Cza;Lbq zDR-*3kR`Udm@~gh^{;HH4v!bKgFCEX&;`@} z@t*{6i=*)NTQQ{5MFf%I4gR`*+5;ho2~jyJjuK^`{@kv#VikHY5LD3X_yEMZumCtN zL^V*C%%$l^hNeJH8gJZa(HoT`+6_*z7?ao+W|$n?6#6?K-!@de>D1XIuk;wl#xJ6K zk_8*cSg5pp(QmfxQNycjBdyv8x)Bb<8>k#gp=#I2aNnv_*uzoXo`Ax*x3j&6ty0$i z;usq@nBS_AW!<}_+5P2_*h)!{q`+7ETY5%iqO3=^K%8!dwmrmfR&y|5YVMbD2X&p|Qh5I)}0W=@aVjE~EAg?1*!HG#9k$7p{Jzu0tNQ z|HKz%LYw$vgExrv?p7|7;!Uu!EpMFO?#7+m04RNw_1F5`PuRx zl3OcUb?dL=!AtmjjULTFt7$gA-{{uZVfbiQ^o9m-2g=pOaqk32=Xb*xg$&F+Ti`oc z=(51b5yxs$B+Yz&c46*^BxH9w7k5p;2AhBIV#kIw7`)<&+OU8Kl9RcXT6Z}gHZ zF1qnHz9dqJh@Hl6&~GRYu!nd!wOk3`lrdV(JcAoBU`}9#)x`r#}szNqvg8W-A;oCDa;8maIy0Y4TORsg)ff{C5S0S z=#S3qobF&>YV8a{u6ARG7L%MXB#sQVw$O=V(^a&x`s6FTjNMkU%vL3;W{=r$vRY>_ zP8BiKLnIDPI8mom9}GcJt=>%0>1;#wRHRVV8xgi1Kp+IKLUnW_D+5aCLTt*kfmcYX zrRb^n4gXxakE!nO@)j0l!s1X6PCI7E^zjktaS79OgI_R*4}di2u5}0ze7V8*!z00} zyX_czG2lUjIuq;>GA=E2#QroG!**rpO!xpyRbUfOtcny}whNg_Y+Vwx>dMCBtXcOu z2GuOUESQunG4M?QCod;wVG(OSM~KwX;e{(re|X}7-HmH1W@$|`gJd&S|C8*l`AIl$ z$d0O$4*XKaMfZ~xk<-^??jRvDX~98hyD4Eky%qHW=x z&eqUKRv6#0tCzyp*`HALj%QF+qZa@-?@pMzdi2Eq zM5slVODjWNL2l9JO!|xD4*@G)%TWm`+idPofz#>h2E&7~-X0{3Z()NcO154_E!T!0 zFlqoq(T7+iTiXlT&@Gd8{Uj9}tMKw++O%Zjsd1Kvi;^879!Lk*vE$^k@r!T!ZaIGZ zi5UQk&Nx?qw_?vVm5)1t;%MUVxK%;fnf6Ydn6fTkSdU_%1_GHzt$0Y zmIP7ykuwa^SkRz{jcx(!e1eYHwmBV{GQIlbo6^QEm{Au`bxv}?6&}&hhZt(+!oAKn zdbY<3_CNjg*yW7}LjORSn?JyNh_H|;Y-*cgZ&CD?+LmXxRq)2RF+SYHf_tpDswbR) z3o`1)h!+9k{M-+aIhtCNv6vxhJxhdtyVoY}xCtt#i%U=`6Xec@3Yv#d;r?c*5G}G5 zRCqwB@W6vZg`M)I?fF7Q#S*CCR1zw&&o2A(f>4Q#U~i)EB|TWEcmb&3IRS0m>Ejc$ zKyRp1Y#KkWmAm)geFz+$Rhka}A&6OAhee3hgx$>Y2Vmex;}3RCw$sIlj|FalZ@)?J zhYC#{NV!PKRAo0&4#yq+M{@Sl>GpDlf85v6QZ%Upwp>gdhz17hqz2BGc%n$|_ghLG z@S)^qs$qPN9*TrdfD^&R#2mRAPsr3_4#CM%gvIbVl*mX_7pD~Syp(P`;x&_N*h+f1 zj!oxfZ!mbJoeEr<9b6}@Jbm$~Bt|Gq-_eJf3ovuL{}{H_>&s}6sIiQEn!MZP|Fi$} zy%hiWIXJt)wpY?aJGj5rv>EX^?5>Viy1g)fiF-z;uVJQe4`eXFW3G)eTjP@jPZQyK zm_;b^B>%v&I{I9@wLNGn@(}u)0b7_0MV+F;n`dUJ88+;!i-~9*u|Fo0W-}usW9$Lj z6Y{Tpk|Y`;5kP%=Z-M}?UE5jlT$mXtC|75m0p9LD=4l49$}pe7;)J`xT_r+)dxww% zCR{LG8AAs|)voQ#*rnJtXP5Glv)Lu$TXso4xIr;KFk_dq2OtM99qvzDjRd&-z?^4h z?HlF~1o3AJ52$L}RRzA6>rS}P0Om^U_;D<4?7%Xk64{i$@N~_ogeznxuA`kf(E`1G zewpIRofjTA0>D1ubErW5jP_$=Q?fDB0)rp;jX{wQ;WyOv zqF(cxUcq|RZ_FKP@*C`@up|Z8qt)lK)!`NbMC;=}X3vUMA!Nh#DC?7-M`1kqrtrcu z1i3s&>1g^*6$$h`A7g5%?OT(_o@ZA%NA&Y7P*#7bf9!aD@}!kOoatyjQ&(>hlHgEh zefS+wr|%qa+yq|AoIF4pD5J{HhP>zXawppie4JGyLYR&Z--fQ<1b4x#!1VgFgmTJ= zK+L3dc2F?jf~eo?H|$4CO{)KR9{vLkt2bd2w%RAHTkVrCXrCIYAmB{jB)@H@ zeHvuhH~uHKCADuZRRk!qRXzg&gSR3b{-`^AMTfJO6CGX32%sxg2YDgAHv1C|bzNM) zNG#JlVP2jiWAy{~k3au5_oPEVbJ@)%JsH(sb3&sPEj6OXizhobOjq|0@dz*#-a;t7 zw9U>aJ;iwi0X2A#p;Jk5hk1nJPMAFGhdcYlFrEnBO%d@HN_=T`^s<2xSPMkkdZNhJ z1SKUXH_B6E4voLooob~=8yD58=<=h;6*Ijva`fEdYHoYO_t99lt`#VSlk!E6g2xRvD~`oMdpt5yRDLdq<{NG}6~L zN%}^ccv6ib-4|x9@by~~zCM$LFM}670#D!xpIgA?WM&NTA@bS+Pn4dUrNtjfF5&EKn$E&tTvVQ!0O@q z+0y6ug*dD7FzhQfR6Oyr;vWKp?v6@z%$KlU9plgsP9s+>d7=o%!MR{mPDGm*@Vef9 z(YsT>=C#=Ku(A5}FJog)qvOKA%t-taY4f179K=!c}2d(lZpep z3Inm?F+TS3i{38b*FMeua{Rx+X4nEF(9WmDBZm^Bo(}GE1BG;#EKVutrz(j3EsXb6 z1#!9PKRZiodA3iYSXJ9RIf08}>Q%+f0Gq=99`oo?km)414^TAiwg?_%w_!#5msUB( zWvU;yns@*P|05`&(GUhwQROjs#S!_%?3=&hzeGPk9C4Z$W(v&cl*DBam9ZMhl%A(r z@eik79__>u7WHp^2qD!}8idWTl6S4wfAN_&f4qk$37FcP#xV!ffOXVKpt@C0AN$M} zJ$>#IfAF*0^)%YtQ@0t@ul}VqOH%d2c1)-fTt1jlv|M7OLIU%Aat7l|L+maL5ziSL z2G}h|!C=qe@4|>)9CXz`HEkdO{QJHO7kpm^+`z!giICF^s(=BS=R(&U3SUgJW(9nS zpx51>7g=b4hsGbH`g1t}Tj=hYXqP|qvJN7aeI>jP2vVM5%@|xwcx=g1N}ebaGk3Zp z(*M(-L!d!bMs`nR_&g^ZA(7dO=X0h5vqQA=*eM!zUiy+KFU86Mfq||?PbnMLXYTDf z80d1y4U+E-QpMYYWlSyx0jh)9Orb|k-^^&{90S4d&c;SkQ9H$o@#aJ>=T0=rkEJan zH0S^T33c>JAU2*5t@~lgJW&>=eG8)K#YspRD`X*MwnE1r5BmtBj$mATW$nTk;3ekt zg*N*;phGp(x5J&T)#%L^Gn`DC$^rm%ha?Zl%Y_i1M-AMVHg!poQ`@I~+&^ z0-rUn>Gtz-1OX~t0zm~JpNQsaCcJHyLaZCG3sMcz9!MN!w;3YAj)`Un0lf%~Y)(yR zHf`NffzvJ;m(Qjqki{(r;O>d8Vg!3WtZWywfZii6cHuPu+ybdZ{fSqw`Q=+AvX*Ck z=$+Zsz`J1wMZit9Cl#Mq?53aAt?s*SFpyX`aTuU1cBlwR{m0rtvG8s>#Dp|{_Wt{N z(;?#-RMd~nkA~A{fRz@@=cv+(gIkPg={Ks<>^J>&ZaI|w{--*@%oeZjJl0(A9@Xw- znC+yR9o{9*V3psq{|nLtmN+pkTj}=+(c9)v-d^v>tm?nZWMjQTGnW^u-GTiImuFo4!>{dLk+F<3uHI|WpWRIC zIoPe+;tTvR4Dv7jE}22&Pp}z?+E8dw7XAWBz^ky-w;0aP{C+bWr#K%DmuJIyWkguK8Y%>V1A939Tf1F2&pqqZ1I;z%>`+n}=J-GsQ}8u|RQ10gt7hME%W5z(ot>Lr<^K*{dFGMsT0Sk%Q3*W_i>Q zUca9QucBd#?2lp}WDNFc}p%p8TEoFrK;_EL0H~fT~nqUO!prAKO1s!UA0a zwzd{1!)@Ou`GWHeEAjK~qARms2$;;0M$cF}`=>;^O!e$E_yKHT2 zrgu&o`^!Aa;yi3@91oa0k($yBnf1qY#_l~Jbv+Xxw~JH|6aR@$ZFpsFTB}GEOPG*~ zW&L<;JXOUaP8C*^m+mf)hgiszL<mu-)AE*$u)xr3{Ey_%Z7)!#dVsoH`?b&hL zEyFF@R%BJXn`l_fXq2S zAnBQZ;NO5g|3nt_EGRhOUxv~zH#E7-DNGiueij-5yymW7Y`r$^F#W