From 5c15b2382f424012e3f7c0c8abee814e7ca9231d Mon Sep 17 00:00:00 2001 From: Richard Kiss Date: Tue, 28 Apr 2026 11:32:23 -0700 Subject: [PATCH 01/15] serde_2026: new CLVM serialization format Implement an interning-based serialization format for CLVM trees that deduplicates atoms and pairs for better compression than backrefs, with comparable deserialization speed and much faster serialization. Format: 6-byte magic prefix (fd ff 32 30 32 36), atom table grouped by length, stack-based instruction stream with dual-cons opcodes. Uses a variable-length signed integer (varint) encoding throughout. Includes: - varint codec (encode/decode, signed, variable-length prefix scheme) - deserializer with DeserializeLimits (max_atom_len, max_input_bytes) - serializer (left-first traversal) and pair-optimized serializer (DP) - serialized_length_serde_2026: compute blob length without deserializing - node_from_bytes_auto: auto-detect classic/backrefs/serde_2026 - InternedTree::node_indices() for serialization support - format specification (docs/serde-2026.md) - benchmarks for serialize and deserialize - 654 lines of tests (41 test cases) Made-with: Cursor --- .gitignore | 5 +- Cargo.toml | 4 + benches/deserialize.rs | 31 ++ benches/serialize.rs | 11 + docs/serde-2026.md | 98 +++++ src/lib.rs | 2 + src/serde/intern.rs | 19 + src/serde/mod.rs | 9 + src/serde_2026/de.rs | 240 ++++++++++++ src/serde_2026/mod.rs | 48 +++ src/serde_2026/ser.rs | 244 ++++++++++++ src/serde_2026/ser_optimized.rs | 214 +++++++++++ src/serde_2026/tests.rs | 654 ++++++++++++++++++++++++++++++++ src/serde_2026/varint.rs | 156 ++++++++ 14 files changed, 1734 insertions(+), 1 deletion(-) create mode 100644 docs/serde-2026.md create mode 100644 src/serde_2026/de.rs create mode 100644 src/serde_2026/mod.rs create mode 100644 src/serde_2026/ser.rs create mode 100644 src/serde_2026/ser_optimized.rs create mode 100644 src/serde_2026/tests.rs create mode 100644 src/serde_2026/varint.rs diff --git a/.gitignore b/.gitignore index 33433b5e..81c58464 100644 --- a/.gitignore +++ b/.gitignore @@ -19,10 +19,13 @@ target/ # python ignore /venv /.venv +__pycache__ +*.pyc +*.so # Node.js /target /node_modules # Mac generates these with the benchmarking tools -.DS_Store \ No newline at end of file +.DS_Storestate/ diff --git a/Cargo.toml b/Cargo.toml index 36cf61bb..3c361ec5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,6 +34,10 @@ allocator-debug = [] # with OpenSSL when enabled openssl = ["chia-sha2/openssl"] +# Experimental 2026 serialization format (intern-based) +# This format is not yet finalized and may change +ser-2026 = [] + [profile.release] lto = "thin" diff --git a/benches/deserialize.rs b/benches/deserialize.rs index bd024603..3d3f3341 100644 --- a/benches/deserialize.rs +++ b/benches/deserialize.rs @@ -4,6 +4,8 @@ use clvmr::serde::{ node_to_bytes_backrefs, serialized_length_from_bytes, serialized_length_from_bytes_trusted, tree_hash_from_stream, }; +#[cfg(feature = "ser-2026")] +use clvmr::serde_2026::{DeserializeLimits, deserialize_2026, serialize_2026}; use criterion::{Criterion, criterion_group, criterion_main}; use std::include_bytes; use std::time::Instant; @@ -76,6 +78,35 @@ fn deserialize_benchmark(c: &mut Criterion) { }); } + #[cfg(feature = "ser-2026")] + { + let mut a = Allocator::new(); + let node = node_from_bytes(&mut a, block).expect("node_from_bytes"); + let serialized_2026 = serialize_2026(&a, node).expect("serialize_2026"); + + let mut a = Allocator::new(); + let node = node_from_bytes_backrefs(&mut a, compressed_block.as_ref()) + .expect("node_from_bytes_backrefs"); + let serialized_2026_compressed = serialize_2026(&a, node).expect("serialize_2026"); + + for (data, name_suffix) in &[ + (serialized_2026.as_slice(), ""), + (serialized_2026_compressed.as_slice(), "-compressed-src"), + ] { + let mut a = Allocator::new(); + let iter_checkpoint = a.checkpoint(); + group.bench_function(format!("deserialize_2026{name_suffix}"), |b| { + b.iter(|| { + a.restore_checkpoint(&iter_checkpoint); + let start = Instant::now(); + deserialize_2026(&mut a, data, DeserializeLimits::default()) + .expect("deserialize_2026"); + start.elapsed() + }) + }); + } + } + let mut a = Allocator::new(); let iter_checkpoint = a.checkpoint(); group.bench_function("node_from_bytes", |b| { diff --git a/benches/serialize.rs b/benches/serialize.rs index 6e017b40..1a3380cf 100644 --- a/benches/serialize.rs +++ b/benches/serialize.rs @@ -3,6 +3,8 @@ use clvmr::serde::{ Serializer, node_from_bytes, node_from_bytes_backrefs, node_to_bytes_backrefs, node_to_bytes_limit, }; +#[cfg(feature = "ser-2026")] +use clvmr::serde_2026::serialize_2026; use criterion::black_box; use criterion::{Criterion, criterion_group, criterion_main}; use std::include_bytes; @@ -56,6 +58,15 @@ fn serialize_benchmark(c: &mut Criterion) { start.elapsed() }) }); + + #[cfg(feature = "ser-2026")] + group.bench_function(format!("serialize_2026 {name}"), |b| { + b.iter(|| { + let start = Instant::now(); + black_box(serialize_2026(&a, node).expect("serialize_2026")); + start.elapsed() + }) + }); } group.finish(); diff --git a/docs/serde-2026.md b/docs/serde-2026.md new file mode 100644 index 00000000..5577c28f --- /dev/null +++ b/docs/serde-2026.md @@ -0,0 +1,98 @@ +# 2026 Serialization Format + +## Magic Header + +The 2026 serialization format is identified by a 6-byte magic prefix: + +``` +0xfd 0xff 0x32 0x30 0x32 0x36 +``` + +Rationale: + +- `0xfd 0xff` drives legacy/backrefs decoders down an invalid atom-size path, + causing immediate failure. +- `0x32 0x30 0x32 0x36` is ASCII `"2026"` for readable hexdumps. + +### Detection + +A deserializer determines the format by inspecting the first 6 bytes: + +- If the blob starts with `0xfd 0xff 0x32 0x30 0x32 0x36`, it is 2026-format. +- Otherwise, parse with the legacy/backrefs path. + +### Backward Compatibility + +When a 2026-format blob is handed to a legacy deserializer unaware of the new +format, it should fail quickly due to the deliberately invalid size prefix. + +## Payload Format + +After the 6-byte magic header, the payload consists of two sections: + +1. **Atom table** — all unique atoms, grouped by length +2. **Instruction stream** — stack-based operations to reconstruct the tree + +### Atom Table + +The atom table begins with a varint encoding the number of distinct atom +lengths present. + +For each length group (in stream order): + +- If there is **one** atom of that length: a positive varint encoding the + length, followed by the atom's raw bytes. +- If there are **multiple** atoms of that length: a negative varint encoding + the negated length, then a positive varint encoding the count, then the raw + bytes of each atom concatenated (each is exactly `length` bytes). + +Atoms are assigned indices starting from 0, in the order they appear in the +table. + +The decoder accepts length groups in any order, and repeated length groups are +valid. A serializer may still choose a specific ordering strategy (for example, +sorting by length) as an implementation optimization. + +### Instruction Stream + +The instruction stream begins with a varint encoding the total number of +instructions. + +Each instruction is a varint: + +| Varint value | Meaning | +| ------------ | ---------------------------------------------------------------- | +| `0` | Push nil (the empty atom) | +| `1` | Pop two items (left was pushed first), cons them, push the pair | +| `-1` | Pop two items (right was pushed first), cons them, push the pair | +| `N >= 2` | Push the atom at index N-2 onto the stack | +| `N <= -2` | Push the already-constructed pair at index -N-2 onto the stack | + +The default serializer always uses opcode `1` (left-first cons). The +pair-optimized serializer uses both `1` and `-1` to steer traversal order, +reducing the number of pair back-references needed. + +Pairs are indexed in construction order (the first pair cons'd is index 0, the +second is index 1, etc.). A negative instruction references a pair that was +previously constructed during this same decode, enabling shared sub-trees +without re-encoding them. + +After all instructions execute, the stack must contain exactly one item: the +root node. + +### Varint Encoding + +Signed integers are encoded with a variable-length prefix scheme. +The patterns below are illustrative examples, not an upper bound: + +``` +0xxxxxxx → 7-bit value, range [-64, 63] +10xxxxxx xxxxxxxx → 14-bit value, range [-8192, 8191] +110xxxxx xxxxxxxx xxxxxxxx → 21-bit value, range [-1048576, 1048575] +... +``` + +The number of leading `1` bits determines how many additional bytes follow. A +`0` separator bit follows the leading `1`s. The remaining bits (across all +bytes) form a two's-complement signed integer in big-endian order. This scales +to wider integers without changing the encoding rules. diff --git a/src/lib.rs b/src/lib.rs index b0c582cb..14105d3d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -15,6 +15,8 @@ pub mod run_program; pub mod runtime_dialect; pub mod secp_ops; pub mod serde; +#[cfg(feature = "ser-2026")] +pub mod serde_2026; pub mod sha_tree_op; pub mod traverse_path; pub mod treehash; diff --git a/src/serde/intern.rs b/src/serde/intern.rs index 8d096e51..f89ff3b2 100644 --- a/src/serde/intern.rs +++ b/src/serde/intern.rs @@ -30,6 +30,25 @@ impl InternedTree { .get_or_calculate(&self.allocator, &self.root, None) .expect("treehash should not fail on valid tree") } + + /// Get a mapping from NodePtr to index for serialization. + /// + /// Returns (atom_to_index, pair_to_index) where: + /// - Atom indices are 0, 1, 2, ... (non-negative) + /// - Pair indices are -1, -2, -3, ... (negative, 1-based) + pub fn node_indices(&self) -> (HashMap, HashMap) { + let mut atom_to_index = HashMap::with_capacity(self.atoms.len()); + let mut pair_to_index = HashMap::with_capacity(self.pairs.len()); + + for (i, &atom) in self.atoms.iter().enumerate() { + atom_to_index.insert(atom, i as i32); + } + for (i, &pair) in self.pairs.iter().enumerate() { + pair_to_index.insert(pair, -(i as i32 + 1)); + } + + (atom_to_index, pair_to_index) + } } /// Intern a CLVM tree: deduplicate atoms and pairs in a single pass. diff --git a/src/serde/mod.rs b/src/serde/mod.rs index 4320eaf8..f39b5cf4 100644 --- a/src/serde/mod.rs +++ b/src/serde/mod.rs @@ -41,3 +41,12 @@ pub use tools::{ tree_hash_from_stream, }; pub use tree_cache::{TreeCache, TreeCacheCheckpoint}; + +// Re-export from serde_2026 module for backward compatibility +#[cfg(feature = "ser-2026")] +pub use crate::serde_2026::{ + DeserializeLimits, MAGIC_PREFIX as SERDE_2026_MAGIC_PREFIX, deserialize_2026, + deserialize_2026_from_stream, node_from_bytes_auto, node_to_bytes_serde_2026, + node_to_bytes_serde_2026_raw, serialize_2026, serialize_2026_to_stream, + serialized_length_serde_2026, +}; diff --git a/src/serde_2026/de.rs b/src/serde_2026/de.rs new file mode 100644 index 00000000..b472dfc4 --- /dev/null +++ b/src/serde_2026/de.rs @@ -0,0 +1,240 @@ +use std::io::{Cursor, Read}; + +use crate::allocator::{Allocator, NodePtr}; +use crate::error::{EvalErr, Result}; +use crate::serde::node_from_bytes_backrefs; + +use super::MAGIC_PREFIX; +use super::varint::decode_varint; + +/// Default maximum atom length (1 MB). +pub const DEFAULT_MAX_ATOM_LEN: usize = 1 << 20; + +/// Default maximum input bytes (10 MB). +pub const DEFAULT_MAX_INPUT_BYTES: usize = 10 * (1 << 20); + +const MAX_COUNT: usize = 256 * 1024 * 1024; + +/// Deserialization limits for the 2026 format. +#[derive(Debug, Clone, Copy)] +pub struct DeserializeLimits { + /// Maximum byte length of any single atom. Default: 1 MB. + pub max_atom_len: usize, + /// Maximum total bytes consumed from the input stream. Default: 10 MB. + pub max_input_bytes: usize, +} + +impl Default for DeserializeLimits { + fn default() -> Self { + Self { + max_atom_len: DEFAULT_MAX_ATOM_LEN, + max_input_bytes: DEFAULT_MAX_INPUT_BYTES, + } + } +} + +/// Wraps a `Read` and enforces a byte budget. +struct LimitReader { + inner: R, + remaining: usize, +} + +impl LimitReader { + fn new(inner: R, max_bytes: usize) -> Self { + Self { + inner, + remaining: max_bytes, + } + } +} + +impl Read for LimitReader { + fn read(&mut self, buf: &mut [u8]) -> std::io::Result { + let limit = buf.len().min(self.remaining); + if limit == 0 && !buf.is_empty() { + return Err(std::io::Error::other( + "serde_2026: input exceeds max_input_bytes", + )); + } + let n = self.inner.read(&mut buf[..limit])?; + self.remaining -= n; + Ok(n) + } +} + +fn checked_usize(value: i64, max: usize) -> Result { + if value < 0 { + return Err(EvalErr::SerializationError); + } + if value as u64 > usize::MAX as u64 { + return Err(EvalErr::SerializationError); + } + let u = value as usize; + if u > max { + return Err(EvalErr::SerializationError); + } + Ok(u) +} + +/// Deserialize CLVM from any format (classic, backrefs, or serde_2026). +/// +/// If `bytes` starts with the magic prefix, strip it and deserialize with +/// [`deserialize_2026`]. Otherwise delegate to [`node_from_bytes_backrefs`] +/// (which handles both classic and back-reference formats). +pub fn node_from_bytes_auto( + allocator: &mut Allocator, + bytes: &[u8], + limits: DeserializeLimits, +) -> Result { + if bytes.starts_with(&MAGIC_PREFIX) { + deserialize_2026(allocator, &bytes[MAGIC_PREFIX.len()..], limits) + } else { + node_from_bytes_backrefs(allocator, bytes) + } +} + +/// Deserialize a node from a stream using the 2026 format. +/// +/// Handles both `cons_lr` (opcode 1) and `cons_rl` (opcode -1), so it can +/// deserialize output from either the default or pair-optimized serializer. +pub fn deserialize_2026_from_stream( + allocator: &mut Allocator, + reader: &mut R, + limits: DeserializeLimits, +) -> Result { + let mut reader = LimitReader::new(reader, limits.max_input_bytes); + + let mut atoms: Vec = Vec::new(); + let group_count = checked_usize(decode_varint(&mut reader)?, MAX_COUNT)?; + let mut buf: Vec = Vec::new(); + + for _ in 0..group_count { + let length_val = decode_varint(&mut reader)?; + let (length, count) = if length_val < 0 { + if length_val == i64::MIN { + return Err(EvalErr::SerializationError); + } + ( + checked_usize(-length_val, limits.max_atom_len)?, + checked_usize(decode_varint(&mut reader)?, MAX_COUNT)?, + ) + } else { + (checked_usize(length_val, limits.max_atom_len)?, 1) + }; + buf.resize(length, 0); + for _ in 0..count { + reader + .read_exact(&mut buf) + .map_err(|_| EvalErr::SerializationError)?; + atoms.push(allocator.new_atom(&buf)?); + } + } + + let instruction_count = checked_usize(decode_varint(&mut reader)?, MAX_COUNT)?; + if instruction_count == 0 { + return if atoms.is_empty() { + Err(EvalErr::SerializationError) + } else { + Ok(atoms[0]) + }; + } + + let nil = allocator.nil(); + let mut pairs: Vec = Vec::with_capacity(instruction_count / 3); + let mut stack: Vec = Vec::with_capacity(64); + + for _ in 0..instruction_count { + let inst = decode_varint(&mut reader)?; + match inst { + 0 => stack.push(nil), + 1 => { + if stack.len() < 2 { + return Err(EvalErr::SerializationError); + } + let right = stack.pop().unwrap(); + let left = stack.pop().unwrap(); + let pair = allocator.new_pair(left, right)?; + pairs.push(pair); + stack.push(pair); + } + -1 => { + if stack.len() < 2 { + return Err(EvalErr::SerializationError); + } + let left = stack.pop().unwrap(); + let right = stack.pop().unwrap(); + let pair = allocator.new_pair(left, right)?; + pairs.push(pair); + stack.push(pair); + } + n if n >= 2 => { + let ai = (n - 2) as usize; + stack.push(*atoms.get(ai).ok_or(EvalErr::SerializationError)?); + } + n => { + let pi = (-n - 2) as usize; + stack.push(*pairs.get(pi).ok_or(EvalErr::SerializationError)?); + } + } + } + + if stack.len() != 1 { + return Err(EvalErr::SerializationError); + } + Ok(stack[0]) +} + +/// Deserialize a node from bytes using the 2026 format. +pub fn deserialize_2026( + allocator: &mut Allocator, + data: &[u8], + limits: DeserializeLimits, +) -> Result { + deserialize_2026_from_stream(allocator, &mut Cursor::new(data), limits) +} + +/// Compute the serialized length of a serde_2026 blob (including magic prefix). +/// +/// Walks the header structure without allocating or building a CLVM tree. +/// The input buffer may contain trailing data; only the bytes belonging to +/// the serde_2026 blob are counted. +pub fn serialized_length_serde_2026(buf: &[u8]) -> Result { + if !buf.starts_with(&MAGIC_PREFIX) { + return Err(EvalErr::SerializationError); + } + + let data = &buf[MAGIC_PREFIX.len()..]; + let mut cursor = Cursor::new(data); + + let group_count = checked_usize(decode_varint(&mut cursor)?, MAX_COUNT)?; + for _ in 0..group_count { + let length_val = decode_varint(&mut cursor)?; + let skip = if length_val < 0 { + if length_val == i64::MIN { + return Err(EvalErr::SerializationError); + } + let atom_len = (-length_val) as u64; + let count = checked_usize(decode_varint(&mut cursor)?, MAX_COUNT)? as u64; + atom_len + .checked_mul(count) + .ok_or(EvalErr::SerializationError)? + } else { + length_val as u64 + }; + let new_pos = cursor + .position() + .checked_add(skip) + .ok_or(EvalErr::SerializationError)?; + if new_pos > data.len() as u64 { + return Err(EvalErr::SerializationError); + } + cursor.set_position(new_pos); + } + + let instruction_count = checked_usize(decode_varint(&mut cursor)?, MAX_COUNT)?; + for _ in 0..instruction_count { + decode_varint(&mut cursor)?; + } + + Ok(MAGIC_PREFIX.len() as u64 + cursor.position()) +} diff --git a/src/serde_2026/mod.rs b/src/serde_2026/mod.rs new file mode 100644 index 00000000..6194eb53 --- /dev/null +++ b/src/serde_2026/mod.rs @@ -0,0 +1,48 @@ +//! 2026 Serialization Format for CLVM. +//! +//! Deduplicates atoms and pairs via interning, uses variable-length integer +//! encoding (varints), and groups atoms by length for better compression. +//! +//! ## Format Overview +//! +//! 1. Atom table: grouped by length, with varint-encoded counts (nil excluded) +//! 2. Instruction stream: stack-based operations to reconstruct the tree +//! +//! ## Instructions +//! +//! - `0`: Push nil +//! - `1`: Pop two items (left was pushed first), cons them, push result +//! - `-1`: Pop two items (right was pushed first), cons them, push result +//! - `>= 2` (positive varint N): Push atom at index N-2 +//! - `<= -2` (negative varint N): Push already-constructed pair at index -N-2 +//! +//! The default serializer always uses opcode `1` (left-first cons). The pair- +//! optimized serializer uses both `1` and `-1` to steer traversal order. + +mod de; +mod ser; +mod ser_optimized; +mod varint; + +#[cfg(test)] +mod tests; + +/// Magic prefix bytes for serde_2026 format. +/// +/// - `0xfd 0xff` forces legacy/backref decoders down an invalid atom-length +/// path (fail-fast). +/// - `0x32 0x30 0x32 0x36` is ASCII `"2026"` for readable hexdumps. +pub const MAGIC_PREFIX: [u8; 6] = [0xfd, 0xff, b'2', b'0', b'2', b'6']; + +/// Maximum atoms/pairs that fit in i32 indices (used by instruction stream). +const MAX_INDEX: usize = i32::MAX as usize; + +pub use de::{ + DeserializeLimits, deserialize_2026, deserialize_2026_from_stream, node_from_bytes_auto, + serialized_length_serde_2026, +}; +pub use ser::{ + node_to_bytes_serde_2026, node_to_bytes_serde_2026_raw, serialize_2026, + serialize_2026_to_stream, +}; +pub use ser_optimized::{serialize_2026_pair_optimized, serialize_2026_pair_optimized_to_stream}; diff --git a/src/serde_2026/ser.rs b/src/serde_2026/ser.rs new file mode 100644 index 00000000..8df66b9d --- /dev/null +++ b/src/serde_2026/ser.rs @@ -0,0 +1,244 @@ +use std::collections::HashMap; +use std::io::Write; + +use crate::allocator::{Allocator, NodePtr, SExp}; +use crate::error::{EvalErr, Result}; +use crate::serde::{InternedTree, intern_tree}; + +use super::MAX_INDEX; +use super::varint::write_varint; + +/// Intermediate state after interning and sorting atoms. +/// +/// Both the default and pair-optimized serializers need this same prep work. +pub(super) struct SerializerState { + pub tree: InternedTree, + pub sorted_no_nil: Vec, + pub atom_remap: HashMap, + pub nil_old_idx: Option, + pub pairs: Vec<(i32, i32)>, + pub root_index: i32, +} + +impl SerializerState { + /// Intern the tree, compute reference counts, sort atoms, build remapping. + pub fn new(allocator: &Allocator, node: NodePtr) -> Result { + let tree = intern_tree(allocator, node)?; + + if tree.atoms.len() > MAX_INDEX || tree.pairs.len() > MAX_INDEX { + return Err(EvalErr::SerializationError); + } + + let (atom_to_index, pair_to_index) = tree.node_indices(); + let atom_count = tree.atoms.len(); + + let node_to_index = |n: NodePtr| -> i32 { + if let Some(&idx) = atom_to_index.get(&n) { + idx + } else { + pair_to_index[&n] + } + }; + + let root_index = node_to_index(tree.root); + + // Reference counts + let mut atom_ref_count = vec![0u32; atom_count]; + if root_index >= 0 { + atom_ref_count[root_index as usize] += 1; + } + for &pair_node in &tree.pairs { + let (left, right) = match tree.allocator.sexp(pair_node) { + SExp::Pair(l, r) => (l, r), + _ => unreachable!(), + }; + for child in [left, right] { + let idx = node_to_index(child); + if idx >= 0 { + atom_ref_count[idx as usize] += 1; + } + } + } + + // Sort: reused-first, then by frequency, then shorter + let mut sorted_atom_indices: Vec = (0..atom_count).collect(); + sorted_atom_indices.sort_by(|&a, &b| { + let a_reused = atom_ref_count[a] > 1; + let b_reused = atom_ref_count[b] > 1; + b_reused + .cmp(&a_reused) + .then_with(|| atom_ref_count[b].cmp(&atom_ref_count[a])) + .then_with(|| { + tree.allocator + .atom_len(tree.atoms[a]) + .cmp(&tree.allocator.atom_len(tree.atoms[b])) + }) + .then_with(|| a.cmp(&b)) + }); + + // Nil gets dedicated opcode 0 — exclude from atom table + let nil_old_idx: Option = tree + .atoms + .iter() + .position(|&a| tree.allocator.atom_len(a) == 0) + .map(|i| i as i32); + + let sorted_no_nil: Vec = sorted_atom_indices + .iter() + .filter(|&&old_idx| Some(old_idx as i32) != nil_old_idx) + .copied() + .collect(); + + let mut atom_remap: HashMap = HashMap::new(); + for (new_idx, &old_idx) in sorted_no_nil.iter().enumerate() { + atom_remap.insert(old_idx as i32, new_idx as i32); + } + + let pairs: Vec<(i32, i32)> = tree + .pairs + .iter() + .map(|&pair_node| { + let (left, right) = match tree.allocator.sexp(pair_node) { + SExp::Pair(l, r) => (l, r), + _ => unreachable!(), + }; + (node_to_index(left), node_to_index(right)) + }) + .collect(); + + Ok(Self { + tree, + sorted_no_nil, + atom_remap, + nil_old_idx, + pairs, + root_index, + }) + } +} + +/// Write the atom table (nil excluded) grouped by contiguous equal lengths. +pub(super) fn write_atom_table( + writer: &mut W, + tree: &InternedTree, + sorted_no_nil: &[usize], +) -> Result<()> { + let mut atom_groups: Vec<(usize, Vec)> = Vec::new(); + for &old_idx in sorted_no_nil { + let atom_node = tree.atoms[old_idx]; + let len = tree.allocator.atom_len(atom_node); + if let Some((last_len, atoms)) = atom_groups.last_mut() + && *last_len == len + { + atoms.push(atom_node); + } else { + atom_groups.push((len, vec![atom_node])); + } + } + + write_varint(writer, atom_groups.len() as i64)?; + for (length, atoms_of_length) in &atom_groups { + if atoms_of_length.len() == 1 { + write_varint(writer, *length as i64)?; + writer.write_all(tree.allocator.atom(atoms_of_length[0]).as_ref())?; + } else { + write_varint(writer, -(*length as i64))?; + write_varint(writer, atoms_of_length.len() as i64)?; + for &atom_node in atoms_of_length { + writer.write_all(tree.allocator.atom(atom_node).as_ref())?; + } + } + } + Ok(()) +} + +/// Serialize a CLVM node using the 2026 format. +/// +/// Atoms are sorted by reference count so frequently-used atoms land in +/// shorter varint buckets. Pairs are traversed left-first (always emits +/// opcode `1`). For pair-ordering optimization, see +/// [`serialize_2026_pair_optimized`](super::serialize_2026_pair_optimized). +pub fn serialize_2026_to_stream( + allocator: &Allocator, + node: NodePtr, + writer: &mut W, +) -> Result<()> { + let state = SerializerState::new(allocator, node)?; + + write_atom_table(writer, &state.tree, &state.sorted_no_nil)?; + + let pair_count = state.tree.pairs.len(); + if pair_count == 0 { + write_varint(writer, 1)?; + if Some(state.root_index) == state.nil_old_idx { + write_varint(writer, 0)?; + } else { + write_varint(writer, state.atom_remap[&state.root_index] as i64 + 2)?; + } + } else { + enum Op { + Build(i32), + Cons(i32), + } + + let mut work_stack: Vec = vec![Op::Build(state.root_index)]; + let mut construction_order: HashMap = HashMap::new(); + let mut instructions: Vec = Vec::new(); + + while let Some(op) = work_stack.pop() { + match op { + Op::Cons(pi) => { + instructions.push(1); + construction_order.insert(pi, construction_order.len() as i32); + } + Op::Build(idx) => { + if idx >= 0 { + if Some(idx) == state.nil_old_idx { + instructions.push(0); + } else { + instructions.push(state.atom_remap[&idx] as i64 + 2); + } + } else if let Some(&ci) = construction_order.get(&idx) { + instructions.push(-(ci as i64 + 2)); + } else { + let pi = (-idx - 1) as usize; + let (left, right) = state.pairs[pi]; + work_stack.push(Op::Cons(idx)); + work_stack.push(Op::Build(right)); + work_stack.push(Op::Build(left)); + } + } + } + } + + write_varint(writer, instructions.len() as i64)?; + for inst in instructions { + write_varint(writer, inst)?; + } + } + Ok(()) +} + +/// Serialize a node using the 2026 format, returning bytes. +pub fn serialize_2026(allocator: &Allocator, node: NodePtr) -> Result> { + let mut output = Vec::new(); + serialize_2026_to_stream(allocator, node, &mut output)?; + Ok(output) +} + +/// Serialize with the magic prefix (`fd ff 32 30 32 36`). +/// This is the recommended wire format — use [`node_from_bytes_auto`](super::node_from_bytes_auto) +/// to deserialize. +pub fn node_to_bytes_serde_2026(allocator: &Allocator, node: NodePtr) -> Result> { + let raw = serialize_2026(allocator, node)?; + let mut out = Vec::with_capacity(super::MAGIC_PREFIX.len() + raw.len()); + out.extend_from_slice(&super::MAGIC_PREFIX); + out.extend_from_slice(&raw); + Ok(out) +} + +/// Serialize without the magic prefix (for embedding inside a framing layer +/// that already carries its own header). +pub fn node_to_bytes_serde_2026_raw(allocator: &Allocator, node: NodePtr) -> Result> { + serialize_2026(allocator, node) +} diff --git a/src/serde_2026/ser_optimized.rs b/src/serde_2026/ser_optimized.rs new file mode 100644 index 00000000..79c81da7 --- /dev/null +++ b/src/serde_2026/ser_optimized.rs @@ -0,0 +1,214 @@ +use std::collections::HashMap; +use std::io::Write; + +use crate::allocator::{Allocator, NodePtr, SExp}; +use crate::error::Result; + +use super::MAX_INDEX; +use super::ser::{SerializerState, write_atom_table}; +use super::varint::write_varint; + +/// Serialize with tree-DP-optimal left/right decisions. +/// +/// For each pair, computes the maximum savings achievable by allocating K +/// of its subtree's construction slots to the 1-byte varint tier (63 pair +/// slots). At each pair, compares left-first vs right-first and picks the +/// winner. Complexity: O(N x min(subtree_size, 64)). +/// +/// Output is valid for [`deserialize_2026`](super::deserialize_2026) — the +/// deserializer handles both `cons_lr` and `cons_rl` opcodes. +pub fn serialize_2026_pair_optimized_to_stream( + allocator: &Allocator, + node: NodePtr, + writer: &mut W, +) -> Result<()> { + let state = SerializerState::new(allocator, node)?; + if state.tree.atoms.len() > MAX_INDEX || state.tree.pairs.len() > MAX_INDEX { + return Err(crate::error::EvalErr::SerializationError); + } + let pair_count = state.tree.pairs.len(); + + // Pair reference counts (the shared state only has atom ref counts) + let mut pair_ref_count = vec![0u32; pair_count]; + if state.root_index < 0 { + pair_ref_count[(-state.root_index - 1) as usize] += 1; + } + for &pair_node in &state.tree.pairs { + let (left, right) = match state.tree.allocator.sexp(pair_node) { + SExp::Pair(l, r) => (l, r), + _ => unreachable!(), + }; + for child in [left, right] { + let idx = if let Some(&ai) = state.tree.node_indices().0.get(&child) { + ai + } else { + state.tree.node_indices().1[&child] + }; + if idx < 0 { + pair_ref_count[(-idx - 1) as usize] += 1; + } + } + } + + // Tree DP: optimal left/right decisions for tier-1 placement + const TIER1_SLOTS: usize = 63; + + let mut stsize = vec![0usize; pair_count]; + let mut dp: Vec> = Vec::with_capacity(pair_count); + let mut go_left: Vec> = Vec::with_capacity(pair_count); + + for (i, &(left, right)) in state.pairs.iter().enumerate() { + let savings: u64 = if pair_ref_count[i] > 1 { + (pair_ref_count[i] - 1) as u64 + } else { + 0 + }; + + let l_size = if left < 0 { + stsize[(-left - 1) as usize] + } else { + 0 + }; + let r_size = if right < 0 { + stsize[(-right - 1) as usize] + } else { + 0 + }; + let my_size = 1 + l_size + r_size; + stsize[i] = my_size; + + let max_k = my_size.min(TIER1_SLOTS + 1); + let mut my_dp = vec![0u64; max_k + 1]; + let mut my_go = vec![true; max_k + 1]; + + let child_dp = |child: i32, budget: usize| -> u64 { + if child >= 0 { + return 0; + } + let ci = (-child - 1) as usize; + let arr = &dp[ci]; + arr[budget.min(arr.len() - 1)] + }; + + for k in 1..=max_k { + let p_cheap = k >= my_size; + let cb = if p_cheap { k - 1 } else { k }; + + let l_lf = cb.min(l_size); + let r_lf = (cb - l_lf).min(r_size); + let val_lf = child_dp(left, l_lf) + child_dp(right, r_lf); + + let r_rf = cb.min(r_size); + let l_rf = (cb - r_rf).min(l_size); + let val_rf = child_dp(left, l_rf) + child_dp(right, r_rf); + + let p_sav = if p_cheap { savings } else { 0 }; + if val_lf >= val_rf { + my_dp[k] = p_sav + val_lf; + my_go[k] = true; + } else { + my_dp[k] = p_sav + val_rf; + my_go[k] = false; + } + } + + dp.push(my_dp); + go_left.push(my_go); + } + + write_atom_table(writer, &state.tree, &state.sorted_no_nil)?; + + if pair_count == 0 { + write_varint(writer, 1)?; + if Some(state.root_index) == state.nil_old_idx { + write_varint(writer, 0)?; + } else { + write_varint(writer, state.atom_remap[&state.root_index] as i64 + 2)?; + } + } else { + enum Op { + Build(i32, usize), + ConsLR(i32), + ConsRL(i32), + } + + let root_budget = TIER1_SLOTS.min(if state.root_index < 0 { + stsize[(-state.root_index - 1) as usize] + } else { + 0 + }); + + let mut work_stack: Vec = vec![Op::Build(state.root_index, root_budget)]; + let mut construction_order: HashMap = HashMap::new(); + let mut instructions: Vec = Vec::new(); + + while let Some(op) = work_stack.pop() { + match op { + Op::ConsLR(pi) => { + instructions.push(1); + construction_order.insert(pi, construction_order.len() as i32); + } + Op::ConsRL(pi) => { + instructions.push(-1); + construction_order.insert(pi, construction_order.len() as i32); + } + Op::Build(idx, budget) => { + if idx >= 0 { + if Some(idx) == state.nil_old_idx { + instructions.push(0); + } else { + instructions.push(state.atom_remap[&idx] as i64 + 2); + } + } else if let Some(&ci) = construction_order.get(&idx) { + instructions.push(-(ci as i64 + 2)); + } else { + let pi = (-idx - 1) as usize; + let (left, right) = state.pairs[pi]; + let l_size = if left < 0 { + stsize[(-left - 1) as usize] + } else { + 0 + }; + let r_size = if right < 0 { + stsize[(-right - 1) as usize] + } else { + 0 + }; + let my_size = 1 + l_size + r_size; + + let k = budget.min(my_size).min(go_left[pi].len() - 1); + let p_cheap = k >= my_size; + let cb = if p_cheap { k - 1 } else { k }; + + if go_left[pi][k] { + let l_b = cb.min(l_size); + let r_b = (cb - l_b).min(r_size); + work_stack.push(Op::ConsLR(idx)); + work_stack.push(Op::Build(right, r_b)); + work_stack.push(Op::Build(left, l_b)); + } else { + let r_b = cb.min(r_size); + let l_b = (cb - r_b).min(l_size); + work_stack.push(Op::ConsRL(idx)); + work_stack.push(Op::Build(left, l_b)); + work_stack.push(Op::Build(right, r_b)); + } + } + } + } + } + + write_varint(writer, instructions.len() as i64)?; + for inst in instructions { + write_varint(writer, inst)?; + } + } + Ok(()) +} + +/// Serialize with pair-ordering optimization, returning bytes. +pub fn serialize_2026_pair_optimized(allocator: &Allocator, node: NodePtr) -> Result> { + let mut output = Vec::new(); + serialize_2026_pair_optimized_to_stream(allocator, node, &mut output)?; + Ok(output) +} diff --git a/src/serde_2026/tests.rs b/src/serde_2026/tests.rs new file mode 100644 index 00000000..92be7964 --- /dev/null +++ b/src/serde_2026/tests.rs @@ -0,0 +1,654 @@ +//! Tests for the 2026 serialization format. + +use super::{ + DeserializeLimits, MAGIC_PREFIX, deserialize_2026, node_from_bytes_auto, + node_to_bytes_serde_2026, node_to_bytes_serde_2026_raw, serialize_2026, + serialized_length_serde_2026, +}; +use crate::allocator::{Allocator, SExp}; +use crate::serde::{node_from_bytes_backrefs, node_to_bytes}; +use hex::FromHex; +use rstest::rstest; + +#[test] +fn test_roundtrip_simple_atom() { + let mut allocator = Allocator::new(); + let node = allocator.new_atom(b"hello").unwrap(); + + let serialized = serialize_2026(&allocator, node).unwrap(); + let mut new_allocator = Allocator::new(); + let deserialized = deserialize_2026( + &mut new_allocator, + &serialized, + DeserializeLimits::default(), + ) + .unwrap(); + + let original_atom = allocator.atom(node); + let deserialized_atom = new_allocator.atom(deserialized); + assert_eq!(original_atom.as_ref(), deserialized_atom.as_ref()); +} + +#[test] +fn test_roundtrip_simple_pair() { + let mut allocator = Allocator::new(); + let left = allocator.new_atom(b"left").unwrap(); + let right = allocator.new_atom(b"right").unwrap(); + let pair = allocator.new_pair(left, right).unwrap(); + + let serialized = serialize_2026(&allocator, pair).unwrap(); + let mut new_allocator = Allocator::new(); + let deserialized = deserialize_2026( + &mut new_allocator, + &serialized, + DeserializeLimits::default(), + ) + .unwrap(); + + // Check structure + match new_allocator.sexp(deserialized) { + SExp::Pair(l, r) => { + let left_atom = new_allocator.atom(l); + let right_atom = new_allocator.atom(r); + assert_eq!(left_atom.as_ref(), b"left"); + assert_eq!(right_atom.as_ref(), b"right"); + } + _ => panic!("Expected pair"), + } +} + +#[test] +fn test_empty_atom() { + let mut allocator = Allocator::new(); + let node = allocator.new_atom(b"").unwrap(); + + let serialized = serialize_2026(&allocator, node).unwrap(); + let mut new_allocator = Allocator::new(); + let deserialized = deserialize_2026( + &mut new_allocator, + &serialized, + DeserializeLimits::default(), + ) + .unwrap(); + + assert_eq!( + allocator.atom(node).as_ref(), + new_allocator.atom(deserialized).as_ref() + ); +} + +#[test] +fn test_multiple_atoms_same_length() { + let mut allocator = Allocator::new(); + let a1 = allocator.new_atom(b"AAA").unwrap(); + let a2 = allocator.new_atom(b"BBB").unwrap(); + let a3 = allocator.new_atom(b"CCC").unwrap(); + + // Create: (AAA . (BBB . CCC)) + let p1 = allocator.new_pair(a2, a3).unwrap(); + let root = allocator.new_pair(a1, p1).unwrap(); + + let serialized = serialize_2026(&allocator, root).unwrap(); + let mut new_allocator = Allocator::new(); + let deserialized = deserialize_2026( + &mut new_allocator, + &serialized, + DeserializeLimits::default(), + ) + .unwrap(); + + // Verify structure + match new_allocator.sexp(deserialized) { + SExp::Pair(left, right) => { + assert_eq!(new_allocator.atom(left).as_ref(), b"AAA"); + match new_allocator.sexp(right) { + SExp::Pair(left2, right2) => { + assert_eq!(new_allocator.atom(left2).as_ref(), b"BBB"); + assert_eq!(new_allocator.atom(right2).as_ref(), b"CCC"); + } + _ => panic!("Expected pair"), + } + } + _ => panic!("Expected pair"), + } +} + +#[test] +fn test_deduplication() { + let mut allocator = Allocator::new(); + let a = allocator.new_atom(b"AAA").unwrap(); + let b = allocator.new_atom(b"BBB").unwrap(); + let c = allocator.new_atom(b"CCC").unwrap(); + + // Create: ((AAA . BBB) . (CCC . AAA)) + // AAA appears twice and should be deduplicated + let p1 = allocator.new_pair(a, b).unwrap(); + let p2 = allocator.new_pair(c, a).unwrap(); + let root = allocator.new_pair(p1, p2).unwrap(); + + let serialized = serialize_2026(&allocator, root).unwrap(); + + // The serialization should be smaller due to deduplication + // We expect: 3 unique atoms (AAA, BBB, CCC) + structure + println!("Deduplication test: {} bytes", serialized.len()); + + let mut new_allocator = Allocator::new(); + let deserialized = deserialize_2026( + &mut new_allocator, + &serialized, + DeserializeLimits::default(), + ) + .unwrap(); + + // Verify the structure is correct + match new_allocator.sexp(deserialized) { + SExp::Pair(left, right) => { + // left should be (AAA . BBB) + match new_allocator.sexp(left) { + SExp::Pair(l1, r1) => { + assert_eq!(new_allocator.atom(l1).as_ref(), b"AAA"); + assert_eq!(new_allocator.atom(r1).as_ref(), b"BBB"); + } + _ => panic!("Expected pair for left"), + } + // right should be (CCC . AAA) + match new_allocator.sexp(right) { + SExp::Pair(l2, r2) => { + assert_eq!(new_allocator.atom(l2).as_ref(), b"CCC"); + assert_eq!(new_allocator.atom(r2).as_ref(), b"AAA"); + } + _ => panic!("Expected pair for right"), + } + } + _ => panic!("Expected pair at root"), + } +} + +#[test] +fn test_list_structure() { + let mut allocator = Allocator::new(); + let nil = allocator.nil(); + + // Create list: (1 2 3 4 5) + let mut result = nil; + for i in (1..=5).rev() { + let atom = allocator.new_atom(&[i]).unwrap(); + result = allocator.new_pair(atom, result).unwrap(); + } + + let serialized = serialize_2026(&allocator, result).unwrap(); + println!("List (1 2 3 4 5): {} bytes", serialized.len()); + + let mut new_allocator = Allocator::new(); + let deserialized = deserialize_2026( + &mut new_allocator, + &serialized, + DeserializeLimits::default(), + ) + .unwrap(); + + // Verify list elements + let mut current = deserialized; + for expected in 1..=5 { + match new_allocator.sexp(current) { + SExp::Pair(left, right) => { + assert_eq!(new_allocator.atom(left).as_ref(), &[expected]); + current = right; + } + _ => panic!("Expected pair"), + } + } + // Should end with nil + assert_eq!(new_allocator.atom(current).as_ref(), b""); +} + +#[test] +fn test_deeply_nested() { + let mut allocator = Allocator::new(); + let leaf = allocator.new_atom(b"leaf").unwrap(); + + // Create deeply nested structure: (leaf . (leaf . (leaf . ... ))) + let mut result = leaf; + for _ in 0..100 { + result = allocator.new_pair(leaf, result).unwrap(); + } + + let serialized = serialize_2026(&allocator, result).unwrap(); + println!("Deeply nested (depth 100): {} bytes", serialized.len()); + + let mut new_allocator = Allocator::new(); + let deserialized = deserialize_2026( + &mut new_allocator, + &serialized, + DeserializeLimits::default(), + ) + .unwrap(); + + // Verify depth + let mut current = deserialized; + let mut depth = 0; + loop { + match new_allocator.sexp(current) { + SExp::Pair(left, right) => { + assert_eq!(new_allocator.atom(left).as_ref(), b"leaf"); + depth += 1; + current = right; + } + SExp::Atom => { + assert_eq!(new_allocator.atom(current).as_ref(), b"leaf"); + break; + } + } + } + assert_eq!(depth, 100); +} + +#[test] +fn test_various_atom_sizes() { + let mut allocator = Allocator::new(); + + // Create atoms of various sizes + let empty = allocator.new_atom(b"").unwrap(); + let small = allocator.new_atom(b"x").unwrap(); + let medium = allocator.new_atom(&[42; 100]).unwrap(); + let large = allocator.new_atom(&[7; 1000]).unwrap(); + + // Build structure + let p1 = allocator.new_pair(empty, small).unwrap(); + let p2 = allocator.new_pair(medium, large).unwrap(); + let root = allocator.new_pair(p1, p2).unwrap(); + + let serialized = serialize_2026(&allocator, root).unwrap(); + println!("Various sizes: {} bytes", serialized.len()); + + let mut new_allocator = Allocator::new(); + let deserialized = deserialize_2026( + &mut new_allocator, + &serialized, + DeserializeLimits::default(), + ) + .unwrap(); + + // Verify structure + match new_allocator.sexp(deserialized) { + SExp::Pair(left, right) => { + match new_allocator.sexp(left) { + SExp::Pair(l1, r1) => { + assert_eq!(new_allocator.atom(l1).as_ref(), b""); + assert_eq!(new_allocator.atom(r1).as_ref(), b"x"); + } + _ => panic!("Expected pair"), + } + match new_allocator.sexp(right) { + SExp::Pair(l2, r2) => { + assert_eq!(new_allocator.atom(l2).as_ref().len(), 100); + assert_eq!(new_allocator.atom(r2).as_ref().len(), 1000); + } + _ => panic!("Expected pair"), + } + } + _ => panic!("Expected pair"), + } +} + +/// Round-trip through 2026 format: deserialize from legacy hex -> serialize_2026 -> deserialize_2026 -> verify via node_to_bytes. +/// Mirrors the structures tested in serde/test.rs test_round_trip. +#[rstest] +#[case("01")] // 1 +#[case("ff83666f6f83626172")] // (foo . bar) +#[case("ff83666f6fff8362617280")] // (foo bar) +#[case("ffff0102ff0304")] // ((1 . 2) . (3 . 4)) +#[case("ff01ff02ff03ff04ff05ff0680")] // (1 2 3 4 5 6) +#[case("ff83666f6ffe02")] // (foo . foo) +#[case("ff846c6f6e67ff86737472696e67ff826f66fffe0bff8474657874fffe1780")] // (long string of text) +#[case("ff83666f6ffffe01fffe01fffe01fffe01fffe01fffe0180")] // (foo (foo) ((foo) foo) ...) - parse stack backrefs +fn test_round_trip_from_legacy(#[case] hex: &str) { + let bytes = Vec::from_hex(hex).unwrap(); + let mut allocator = Allocator::new(); + let node = node_from_bytes_backrefs(&mut allocator, &bytes).unwrap(); + let canonical = node_to_bytes(&allocator, node).unwrap(); + + let serialized = serialize_2026(&allocator, node).unwrap(); + let mut new_allocator = Allocator::new(); + let deserialized = deserialize_2026( + &mut new_allocator, + &serialized, + DeserializeLimits::default(), + ) + .unwrap(); + let round_trip_canonical = node_to_bytes(&new_allocator, deserialized).unwrap(); + + assert_eq!( + canonical, round_trip_canonical, + "Round-trip mismatch for hex: {}", + hex + ); +} + +#[test] +fn test_nil_roundtrip() { + let allocator = Allocator::new(); + let nil = allocator.nil(); + + let serialized = serialize_2026(&allocator, nil).unwrap(); + let mut new_allocator = Allocator::new(); + let deserialized = deserialize_2026( + &mut new_allocator, + &serialized, + DeserializeLimits::default(), + ) + .unwrap(); + + assert_eq!(new_allocator.atom(deserialized).as_ref(), b""); +} + +#[test] +fn test_round_trip_double() { + // Serialize -> deserialize -> serialize again -> deserialize again; both final forms must match. + let mut allocator = Allocator::new(); + let node = node_from_bytes_backrefs(&mut allocator, &Vec::from_hex("ff01ff02ff0300").unwrap()) + .unwrap(); + + let serialized1 = serialize_2026(&allocator, node).unwrap(); + let mut allocator2 = Allocator::new(); + let node2 = + deserialize_2026(&mut allocator2, &serialized1, DeserializeLimits::default()).unwrap(); + let serialized2 = serialize_2026(&allocator2, node2).unwrap(); + assert_eq!( + serialized1, serialized2, + "Double round-trip should produce identical bytes" + ); +} + +#[test] +fn test_deserialize_rejects_malformed_counts() { + let mut allocator = Allocator::new(); + + // Negative atom_lengths_count (0x7f = -1 in single-byte varint) would have caused huge loop + assert!(deserialize_2026(&mut allocator, &[0x7f], DeserializeLimits::default()).is_err()); + + // 0xFF is invalid varint prefix + assert!(deserialize_2026(&mut allocator, &[0xff], DeserializeLimits::default()).is_err()); +} + +/// Round-trip through 2026 format for all structures from serde/test_intern.rs. +/// Verifies 2026 format correctly handles the same structures the intern module is tested with. +#[rstest] +#[case("01")] // Simple atom 1 +#[case("0a")] // Atom 10 +#[case("ff0101")] // (1 . 1) +#[case("ff010a")] // (1 . 10) +#[case("ff01ff0101")] // (1 . (1 . 1)) +#[case("ffff2a2a2a")] // ((42 . 42) . 42) +#[case("ff01ff02ff0301")] // (1 . (2 . (3 . 1))) +#[case("ff01ff02ff0300")] // (1 . (2 . (3 . nil))) +#[case("ff01ff02ff0304")] // (1 . (2 . (3 . 4))) +#[case("ff01ff02ff0103")] // (1 . (2 . (1 . 3))) +#[case("ffff0102ff0102")] // ((1 . 2) . (1 . 2)) +#[case("ffff0102ffff0102ff0102")] // ((1 . 2) . ((1 . 2) . (1 . 2))) +#[case("ffff0102ffff010200")] // ((1 . 2) . ((1 . 2) . nil)) +#[case("ffff010aff010a")] // ((1 . 10) . (1 . 10)) +#[case("00")] // nil +#[case("ff0100")] // (1 . nil) +#[case("ff0000")] // (nil . nil) +#[case("ff01ff01ff0100")] // (1 . (1 . (1 . nil))) +#[case("ff01ff01ff0101")] // (1 . (1 . (1 . 1))) +#[case("ffff01ff0203ff01ff0203")] // ((1.(2.3)) . (1.(2.3))) +#[case("ffff0102ffff0102ffff010200")] // ((1.2) . ((1.2) . ((1.2) . nil))) +fn test_round_trip_intern_structures(#[case] hex: &str) { + let bytes = Vec::from_hex(hex.trim().replace([' ', '\n'], "")).unwrap(); + let mut allocator = Allocator::new(); + let node = node_from_bytes_backrefs(&mut allocator, &bytes).unwrap(); + let canonical = node_to_bytes(&allocator, node).unwrap(); + + let serialized = serialize_2026(&allocator, node).unwrap(); + let mut new_allocator = Allocator::new(); + let deserialized = deserialize_2026( + &mut new_allocator, + &serialized, + DeserializeLimits::default(), + ) + .unwrap(); + let round_trip_canonical = node_to_bytes(&new_allocator, deserialized).unwrap(); + + assert_eq!( + canonical, round_trip_canonical, + "Round-trip mismatch for hex: {}", + hex + ); +} + +// --------------------------------------------------------------------------- +// Magic prefix and auto-detection tests +// --------------------------------------------------------------------------- + +#[test] +fn test_magic_prefix_value() { + assert_eq!(MAGIC_PREFIX, [0xfd, 0xff, b'2', b'0', b'2', b'6']); +} + +#[test] +fn test_node_to_bytes_serde_2026_has_prefix() { + let mut allocator = Allocator::new(); + let node = allocator.new_atom(b"hello").unwrap(); + let bytes = node_to_bytes_serde_2026(&allocator, node).unwrap(); + assert!( + bytes.starts_with(&MAGIC_PREFIX), + "node_to_bytes_serde_2026 must start with the magic prefix" + ); +} + +#[test] +fn test_node_to_bytes_serde_2026_raw_no_prefix() { + let mut allocator = Allocator::new(); + let node = allocator.new_atom(b"hello").unwrap(); + let raw = node_to_bytes_serde_2026_raw(&allocator, node).unwrap(); + assert!( + !raw.starts_with(&MAGIC_PREFIX), + "raw variant must NOT start with the magic prefix" + ); + let expected = serialize_2026(&allocator, node).unwrap(); + assert_eq!(raw, expected); +} + +#[test] +fn test_prefixed_and_raw_relationship() { + let mut allocator = Allocator::new(); + let left = allocator.new_atom(b"left").unwrap(); + let right = allocator.new_atom(b"right").unwrap(); + let pair = allocator.new_pair(left, right).unwrap(); + + let prefixed = node_to_bytes_serde_2026(&allocator, pair).unwrap(); + let raw = node_to_bytes_serde_2026_raw(&allocator, pair).unwrap(); + + assert_eq!(&prefixed[..MAGIC_PREFIX.len()], &MAGIC_PREFIX); + assert_eq!(&prefixed[MAGIC_PREFIX.len()..], raw.as_slice()); +} + +/// Serialize a node to classic bytes, then round-trip through +/// `node_from_bytes_auto` with all three input formats and compare results. +fn check_auto(node_alloc: &Allocator, n: crate::allocator::NodePtr) { + let classic = node_to_bytes(node_alloc, n).unwrap(); + + // classic input + let mut a = Allocator::new(); + let decoded = node_from_bytes_auto(&mut a, &classic, DeserializeLimits::default()).unwrap(); + assert_eq!( + node_to_bytes(&a, decoded).unwrap(), + classic, + "classic round-trip via auto" + ); + + // backrefs input (superset of classic) + let backrefs = crate::serde::node_to_bytes_backrefs(node_alloc, n).unwrap(); + let mut a2 = Allocator::new(); + let decoded2 = node_from_bytes_auto(&mut a2, &backrefs, DeserializeLimits::default()).unwrap(); + assert_eq!( + node_to_bytes(&a2, decoded2).unwrap(), + classic, + "backrefs round-trip via auto" + ); + + // serde_2026 prefixed input + let prefixed = node_to_bytes_serde_2026(node_alloc, n).unwrap(); + let mut a3 = Allocator::new(); + let decoded3 = node_from_bytes_auto(&mut a3, &prefixed, DeserializeLimits::default()).unwrap(); + assert_eq!( + node_to_bytes(&a3, decoded3).unwrap(), + classic, + "serde_2026 round-trip via auto" + ); +} + +#[test] +fn test_auto_detect_atom() { + let mut allocator = Allocator::new(); + let node = allocator.new_atom(b"hello world").unwrap(); + check_auto(&allocator, node); +} + +#[test] +fn test_auto_detect_nil() { + let allocator = Allocator::new(); + check_auto(&allocator, allocator.nil()); +} + +#[test] +fn test_auto_detect_pair() { + let mut allocator = Allocator::new(); + let a = allocator.new_atom(b"a").unwrap(); + let b_atom = allocator.new_atom(b"b").unwrap(); + let pair = allocator.new_pair(a, b_atom).unwrap(); + check_auto(&allocator, pair); +} + +#[test] +fn test_auto_detect_nested_list() { + let mut allocator = Allocator::new(); + let nil = allocator.nil(); + let one = allocator.new_atom(b"\x01").unwrap(); + let two = allocator.new_atom(b"\x02").unwrap(); + let three = allocator.new_atom(b"\x03").unwrap(); + let t1 = allocator.new_pair(three, nil).unwrap(); + let t2 = allocator.new_pair(two, t1).unwrap(); + let list = allocator.new_pair(one, t2).unwrap(); + check_auto(&allocator, list); +} + +#[test] +fn test_auto_detect_shared_subtree() { + let mut allocator = Allocator::new(); + let x = allocator.new_atom(b"shared").unwrap(); + let pair = allocator.new_pair(x, x).unwrap(); + check_auto(&allocator, pair); +} + +#[test] +fn test_auto_detect_classic_format_explicitly() { + let mut allocator = Allocator::new(); + let node = allocator.new_atom(b"test").unwrap(); + let classic_bytes = node_to_bytes(&allocator, node).unwrap(); + assert!(!classic_bytes.starts_with(&MAGIC_PREFIX)); + + let mut a2 = Allocator::new(); + let decoded = + node_from_bytes_auto(&mut a2, &classic_bytes, DeserializeLimits::default()).unwrap(); + assert_eq!(a2.atom(decoded).as_ref(), b"test"); +} + +#[test] +fn test_auto_detect_serde_2026_prefixed() { + let mut allocator = Allocator::new(); + let node = allocator.new_atom(b"serde2026").unwrap(); + let prefixed = node_to_bytes_serde_2026(&allocator, node).unwrap(); + assert!(prefixed.starts_with(&MAGIC_PREFIX)); + + let mut a2 = Allocator::new(); + let decoded = node_from_bytes_auto(&mut a2, &prefixed, DeserializeLimits::default()).unwrap(); + assert_eq!(a2.atom(decoded).as_ref(), b"serde2026"); +} + +#[test] +fn test_legacy_backrefs_decoder_rejects_prefixed_2026() { + let mut allocator = Allocator::new(); + let node = allocator.new_atom(b"hello").unwrap(); + let prefixed = node_to_bytes_serde_2026(&allocator, node).unwrap(); + + let mut a2 = Allocator::new(); + assert!( + node_from_bytes_backrefs(&mut a2, &prefixed).is_err(), + "legacy/backrefs decode path should fail fast on serde_2026 magic" + ); +} + +#[test] +fn test_serialized_length_serde_2026_atom() { + let mut allocator = Allocator::new(); + let node = allocator.new_atom(b"hello").unwrap(); + let bytes = node_to_bytes_serde_2026(&allocator, node).unwrap(); + assert_eq!( + serialized_length_serde_2026(&bytes).unwrap(), + bytes.len() as u64 + ); +} + +#[test] +fn test_serialized_length_serde_2026_pair() { + let mut allocator = Allocator::new(); + let left = allocator.new_atom(b"left").unwrap(); + let right = allocator.new_atom(b"right").unwrap(); + let pair = allocator.new_pair(left, right).unwrap(); + let bytes = node_to_bytes_serde_2026(&allocator, pair).unwrap(); + assert_eq!( + serialized_length_serde_2026(&bytes).unwrap(), + bytes.len() as u64 + ); +} + +#[test] +fn test_serialized_length_serde_2026_with_trailing_data() { + let mut allocator = Allocator::new(); + let node = allocator.new_atom(b"test").unwrap(); + let bytes = node_to_bytes_serde_2026(&allocator, node).unwrap(); + let mut padded = bytes.clone(); + padded.extend_from_slice(b"trailing garbage"); + assert_eq!( + serialized_length_serde_2026(&padded).unwrap(), + bytes.len() as u64 + ); +} + +#[test] +fn test_serialized_length_serde_2026_complex_tree() { + let mut allocator = Allocator::new(); + let a = allocator.new_atom(b"shared").unwrap(); + let p1 = allocator.new_pair(a, a).unwrap(); + let b = allocator.new_atom(b"other").unwrap(); + let p2 = allocator.new_pair(p1, b).unwrap(); + let root = allocator.new_pair(p2, p1).unwrap(); + let bytes = node_to_bytes_serde_2026(&allocator, root).unwrap(); + assert_eq!( + serialized_length_serde_2026(&bytes).unwrap(), + bytes.len() as u64 + ); +} + +#[test] +fn test_serialized_length_serde_2026_rejects_non_prefixed() { + assert!(serialized_length_serde_2026(b"\x80").is_err()); + assert!(serialized_length_serde_2026(b"").is_err()); +} + +#[test] +fn test_auto_detect_rejects_empty_input() { + let mut allocator = Allocator::new(); + assert!(node_from_bytes_auto(&mut allocator, b"", DeserializeLimits::default()).is_err()); +} + +#[test] +fn test_node_from_bytes_auto_classic_single_byte() { + let classic = vec![0x01u8]; + let mut a = Allocator::new(); + let node = node_from_bytes_auto(&mut a, &classic, DeserializeLimits::default()).unwrap(); + assert_eq!(a.atom(node).as_ref(), b"\x01"); +} diff --git a/src/serde_2026/varint.rs b/src/serde_2026/varint.rs new file mode 100644 index 00000000..b16d70c6 --- /dev/null +++ b/src/serde_2026/varint.rs @@ -0,0 +1,156 @@ +//! Variable-length integer encoding for the 2026 serialization format. + +use std::io::{Read, Write}; + +use crate::error::{EvalErr, Result}; + +/// Write a signed integer to `w` using variable-length encoding (varint). +/// +/// Format: [leading 1s][0 separator][two's complement value] +/// - Single byte (0 leading 1s): 0[7-bit two's complement] → range [-64, 63] +/// - Two bytes (1 leading 1): 10[14-bit two's complement] → range [-8192, 8191] +/// - Three bytes (2 leading 1s): 110[21-bit two's complement] → range [-1048576, 1048575] +/// - etc. +pub fn write_varint(w: &mut W, value: i64) -> std::io::Result<()> { + // Find the smallest encoding size that can represent the value + for leading_ones in 0..8 { + let total_value_bits = 7 + 7 * leading_ones; + + // Calculate the range this encoding can represent (two's complement) + let min_value = -(1i64 << (total_value_bits - 1)); + let max_value = (1i64 << (total_value_bits - 1)) - 1; + + // Check if value fits in this encoding + if value < min_value || value > max_value { + continue; // Need more bytes + } + + // Convert value to unsigned representation (two's complement with total_value_bits) + let unsigned_value = if value < 0 { + (value + (1i64 << total_value_bits)) as u64 + } else { + value as u64 + }; + + // Build the encoding + // First byte: [leading_ones * '1'][0][bits_in_first_byte bits of value] + let first_byte = if leading_ones > 0 { + ((1u8 << leading_ones) - 1) << (8 - leading_ones) + } else { + 0 + }; + + // Extract the high bits for the first byte (big-endian order) + let high_bits = (unsigned_value >> (leading_ones * 8)) as u8; + let first_byte = first_byte | high_bits; + + w.write_all(&[first_byte])?; + for i in (0..leading_ones).rev() { + let byte_val = (unsigned_value >> (i * 8)) as u8; + w.write_all(&[byte_val])?; + } + + return Ok(()); + } + + panic!("Value too large to encode: {}", value); +} + +/// Encode a signed integer to bytes using variable-length encoding (varint). +#[allow(dead_code)] +pub fn encode_varint(value: i64) -> Vec { + let mut buf = Vec::new(); + write_varint(&mut buf, value).unwrap(); + buf +} + +/// Decode a signed integer from a byte stream using variable-length encoding. +pub fn decode_varint(r: &mut R) -> Result { + let mut first_byte_buf = [0u8; 1]; + r.read_exact(&mut first_byte_buf) + .map_err(|_| EvalErr::SerializationError)?; + let first_byte = first_byte_buf[0]; + + // Count leading ones using leading_zeros (faster than loop) + let leading_ones = (!first_byte).leading_zeros() as usize; + + // Reject invalid prefix: 8 leading ones (e.g. 0xFF) is not a valid varint encoding + if leading_ones >= 8 { + return Err(EvalErr::SerializationError); + } + + // After leading 1s and separator 0, remaining bits are the two's complement value + let bits_in_first_byte = 7 - leading_ones; + let total_value_bits = 7 + 7 * leading_ones; + + // Extract value bits from first byte (the high bits of the value) + let value_mask = (1u8 << bits_in_first_byte) - 1; + let mut unsigned_value = (first_byte & value_mask) as u64; + + // Read additional bytes using fixed-size buffer (max 7 extra bytes) + if leading_ones > 0 { + let mut extra_bytes = [0u8; 7]; + r.read_exact(&mut extra_bytes[..leading_ones]) + .map_err(|_| EvalErr::SerializationError)?; + + for &byte in &extra_bytes[..leading_ones] { + unsigned_value = (unsigned_value << 8) | (byte as u64); + } + } + + // Convert from two's complement to signed + let sign_bit = 1u64 << (total_value_bits - 1); + if unsigned_value >= sign_bit { + // Negative value: subtract 2^total_value_bits + Ok(unsigned_value as i64 - (1i64 << total_value_bits)) + } else { + Ok(unsigned_value as i64) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use std::io::Cursor; + + #[test] + fn test_encode_varint() { + // Test single byte encoding + assert_eq!(encode_varint(0), vec![0x00]); + assert_eq!(encode_varint(1), vec![0x01]); + assert_eq!(encode_varint(-1), vec![0x7f]); + assert_eq!(encode_varint(63), vec![0x3f]); + assert_eq!(encode_varint(-64), vec![0x40]); + + // Test two byte encoding + assert_eq!(encode_varint(64), vec![0x80, 0x40]); + assert_eq!(encode_varint(8191), vec![0x9f, 0xff]); + assert_eq!(encode_varint(-65), vec![0xbf, 0xbf]); + assert_eq!(encode_varint(-8192), vec![0xa0, 0x00]); + } + + #[test] + fn test_decode_varint() { + assert_eq!(decode_varint(&mut Cursor::new(&[0x00][..])).unwrap(), 0); + assert_eq!(decode_varint(&mut Cursor::new(&[0x01][..])).unwrap(), 1); + assert_eq!(decode_varint(&mut Cursor::new(&[0x7f][..])).unwrap(), -1); + assert_eq!( + decode_varint(&mut Cursor::new(&[0x80, 0x40][..])).unwrap(), + 64 + ); + assert_eq!( + decode_varint(&mut Cursor::new(&[0x9f, 0xff][..])).unwrap(), + 8191 + ); + assert_eq!( + decode_varint(&mut Cursor::new(&[0xbf, 0xbf][..])).unwrap(), + -65 + ); + } + + #[test] + fn test_decode_rejects_invalid_prefix() { + // 0xFF (8 leading ones) is invalid - should return error, not panic + assert!(decode_varint(&mut Cursor::new(&[0xff][..])).is_err()); + } +} From 26451727e131effc248b3690d26c4dacf5502d4f Mon Sep 17 00:00:00 2001 From: Richard Kiss Date: Tue, 28 Apr 2026 11:32:30 -0700 Subject: [PATCH 02/15] serde_2026 Python bindings and API Rust pyo3 bindings: - deser_legacy, deser_backrefs, deser_2026, deser_auto (bytes -> LazyNode) - ser_legacy, ser_backrefs, ser_2026 (LazyNode -> bytes) - clvm_tree_to_lazy_node (Python CLVM tree -> interned Rust LazyNode) Python layer: - clvm_rs.serde module: serialize()/deserialize() with format selection - Program.from_bytes() now auto-detects format via deser_auto - Program.to_bytes_serde_2026() / from_bytes_serde_2026() - Updated .pyi stubs (fix phantom NO_NEG_DIV, add new flags/functions) - 222 lines of Python tests Made-with: Cursor --- wheel/Cargo.toml | 2 +- wheel/python/clvm_rs/clvm_rs.pyi | 33 +++- wheel/python/clvm_rs/program.py | 61 ++++++- wheel/python/clvm_rs/serde.py | 102 ++++++++++++ wheel/python/tests/test_serialize.py | 222 ++++++++++++++++++++++++- wheel/src/api.rs | 239 ++++++++++++++++++++++++++- wheel/src/lazy_node.rs | 8 + 7 files changed, 660 insertions(+), 7 deletions(-) create mode 100644 wheel/python/clvm_rs/serde.py diff --git a/wheel/Cargo.toml b/wheel/Cargo.toml index 6a27021f..9e02b8d3 100644 --- a/wheel/Cargo.toml +++ b/wheel/Cargo.toml @@ -16,7 +16,7 @@ crate-type = ["cdylib"] path = "src/lib.rs" [dependencies] -clvmr = { workspace = true } +clvmr = { workspace = true, features = ["ser-2026"] } pyo3 = { workspace = true, features = ["abi3-py310", "extension-module"] } [features] diff --git a/wheel/python/clvm_rs/clvm_rs.pyi b/wheel/python/clvm_rs/clvm_rs.pyi index da6ce8d0..542f497c 100644 --- a/wheel/python/clvm_rs/clvm_rs.pyi +++ b/wheel/python/clvm_rs/clvm_rs.pyi @@ -10,11 +10,42 @@ def deserialize_as_tree( ) -> Tuple[List[Tuple[int, int, int]], Optional[List[bytes]]]: ... def serialized_length(blob: bytes) -> int: ... -NO_NEG_DIV: int +# --- Deserialize functions --- +def deser_legacy(blob: bytes) -> "LazyNode": ... +def deser_backrefs(blob: bytes) -> "LazyNode": ... +def deser_2026( + blob: bytes, + *, + max_atom_len: Optional[int] = None, + max_input_bytes: Optional[int] = None, +) -> "LazyNode": ... +def deser_auto( + blob: bytes, + *, + max_atom_len: Optional[int] = None, + max_input_bytes: Optional[int] = None, +) -> "LazyNode": ... + +# --- Serialize functions --- +def ser_legacy(node: "LazyNode") -> bytes: ... +def ser_backrefs(node: "LazyNode") -> bytes: ... +def ser_2026( + node: "LazyNode", + *, + level: int = 1, + prefixed: bool = True, +) -> bytes: ... + +# --- Tree conversion --- +def clvm_tree_to_lazy_node(obj: CLVMStorage) -> "LazyNode": ... + NO_UNKNOWN_OPS: int LIMIT_HEAP: int MEMPOOL_MODE: int ENABLE_SHA256_TREE: int +ENABLE_SECP_OPS: int +DISABLE_OP: int +CANONICAL_INTS: int class LazyNode(CLVMStorage): atom: Optional[bytes] diff --git a/wheel/python/clvm_rs/program.py b/wheel/python/clvm_rs/program.py index c3f6acf5..dacf1426 100644 --- a/wheel/python/clvm_rs/program.py +++ b/wheel/python/clvm_rs/program.py @@ -4,7 +4,12 @@ from .at import at from .casts import CastableType, to_clvm_object, int_from_bytes, int_to_bytes from .chia_dialect import CHIA_DIALECT -from .clvm_rs import run_serialized_chia_program +from .clvm_rs import ( + clvm_tree_to_lazy_node, + deser_auto, + run_serialized_chia_program, + ser_2026, +) from .clvm_storage import CLVMStorage from .clvm_tree import CLVMTree from .curry_and_treehash import CurryTreehasher @@ -13,6 +18,11 @@ from .ser import sexp_from_stream, sexp_to_stream, sexp_to_bytes from .tree_hash import sha256_treehash +# serde_2026 wire-format magic prefix: +# 0xfd 0xff forces legacy/backrefs decoders to fail fast; +# "2026" keeps hexdumps readable. +_SERDE_2026_MAGIC = b"\xfd\xff2026" + class Program(CLVMStorage): @@ -36,6 +46,18 @@ def stream(self, f: BinaryIO) -> None: @classmethod def from_bytes(cls, blob: bytes, calculate_tree_hash: bool = True) -> Program: + """Deserialize from any CLVM format (classic, backrefs, or serde_2026). + + This is the recommended entry point for byte blobs in Python. + The ``calculate_tree_hash`` parameter is kept for API compatibility. + """ + return cls.wrap(deser_auto(blob)) + + @classmethod + def from_bytes_legacy( + cls, blob: bytes, calculate_tree_hash: bool = True + ) -> Program: + """Deserialize using the legacy Python parser only.""" obj, cursor = cls.from_bytes_with_cursor( blob, 0, calculate_tree_hash=calculate_tree_hash ) @@ -53,7 +75,42 @@ def from_bytes_with_cursor( return obj, new_cursor @classmethod - def fromhex(cls, hexstr: str) -> Program: + def from_bytes_auto(cls, blob: bytes) -> "Program": + """Deserialize from any CLVM format (classic, backrefs, or serde_2026). + + Auto-detects by inspecting the first bytes: if they are the + serde_2026 magic prefix ``fd ff 32 30 32 36``, the serde_2026 decoder is used; + otherwise the backrefs decoder is used (which also handles plain classic + format). ``Program.from_bytes`` delegates here and is preferred. + """ + return cls.wrap(deser_auto(blob)) + + @classmethod + def from_bytes_serde_2026(cls, blob: bytes) -> "Program": + """Deserialize from serde_2026 format. + + The blob must begin with the six-byte magic prefix + ``fd ff 32 30 32 36``. Use + ``to_bytes_serde_2026`` to produce compatible output. + """ + if not blob.startswith(_SERDE_2026_MAGIC): + raise ValueError( + "missing serde_2026 magic prefix (expected first bytes fd ff 32 30 32 36)" + ) + return cls.wrap(deser_auto(blob)) + + def to_bytes_serde_2026(self) -> bytes: + """Serialize to serde_2026 format with the ``fd ff 32 30 32 36`` magic prefix. + + Use ``from_bytes_auto`` or ``from_bytes_serde_2026`` to deserialize the + result. The returned bytes are suitable for storage or transmission + wherever serde_2026 is expected. + """ + lazy = clvm_tree_to_lazy_node(self) + return ser_2026(lazy) + + @classmethod + def fromhex(cls, hexstr: str) -> "Program": return cls.from_bytes(bytes.fromhex(hexstr)) def __bytes__(self) -> bytes: diff --git a/wheel/python/clvm_rs/serde.py b/wheel/python/clvm_rs/serde.py new file mode 100644 index 00000000..cebbe2a3 --- /dev/null +++ b/wheel/python/clvm_rs/serde.py @@ -0,0 +1,102 @@ +"""Serialize and deserialize CLVM in legacy, backref, and 2026 formats. + +All functions operate on bytes or LazyNode handles backed by Rust. + + from clvm_rs.serde import deserialize, serialize + + node = deserialize(blob) # auto-detects format + out = serialize(node, "2026") # serde_2026 with magic prefix + out = serialize(node, "legacy") # classic format + out = serialize(node, "2026", level=0) # serde_2026, fast (no pair optimization) + +Converting a Python CLVM tree to a Rust-backed LazyNode (with interning): + + from clvm_rs.serde import clvm_tree_to_lazy_node + + lazy = clvm_tree_to_lazy_node(program) + blob = serialize(lazy, "2026") +""" + +from .clvm_rs import ( + clvm_tree_to_lazy_node, + deser_2026, + deser_auto, + deser_backrefs, + deser_legacy, + ser_2026, + ser_backrefs, + ser_legacy, +) + +__all__ = [ + "serialize", + "deserialize", + "clvm_tree_to_lazy_node", + "deser_legacy", + "deser_backrefs", + "deser_2026", + "deser_auto", + "ser_legacy", + "ser_backrefs", + "ser_2026", +] + +_DESERIALIZERS = { + "legacy": deser_legacy, + "backrefs": deser_backrefs, + "2026": deser_2026, + "auto": deser_auto, +} + +_SERIALIZERS = { + "legacy": ser_legacy, + "backrefs": ser_backrefs, + "2026": ser_2026, +} + + +def deserialize( + blob: bytes, + fmt: str = "auto", + *, + max_atom_len: int | None = None, + max_input_bytes: int | None = None, +): + """Deserialize bytes into a LazyNode. + + Formats: "auto" (default), "legacy", "backrefs", "2026". + "auto" handles all three formats by inspecting the magic prefix. + + Keyword-only limits (applied to "2026" and "auto" paths): + max_atom_len: largest single atom in bytes (default ~1 MB) + max_input_bytes: total input budget in bytes (default ~10 MB) + """ + fn = _DESERIALIZERS.get(fmt) + if fn is None: + raise ValueError(f"unknown deserialize format {fmt!r}, expected one of {list(_DESERIALIZERS)}") + if fmt in ("2026", "auto"): + kwargs: dict = {} + if max_atom_len is not None: + kwargs["max_atom_len"] = max_atom_len + if max_input_bytes is not None: + kwargs["max_input_bytes"] = max_input_bytes + return fn(blob, **kwargs) + return fn(blob) + + +def serialize(node, fmt: str = "2026", *, level: int = 1, prefixed: bool = True) -> bytes: + """Serialize a LazyNode to bytes. + + Formats: "2026" (default), "legacy", "backrefs". + + For "2026" format: + level=0: left-first traversal (fast) + level=1: pair-optimized DP traversal (smaller output, default) + prefixed=True: prepend the magic prefix (default) + """ + fn = _SERIALIZERS.get(fmt) + if fn is None: + raise ValueError(f"unknown serialize format {fmt!r}, expected one of {list(_SERIALIZERS)}") + if fmt == "2026": + return fn(node, level=level, prefixed=prefixed) + return fn(node) diff --git a/wheel/python/tests/test_serialize.py b/wheel/python/tests/test_serialize.py index 7f2888c9..ed4e2871 100644 --- a/wheel/python/tests/test_serialize.py +++ b/wheel/python/tests/test_serialize.py @@ -1,7 +1,9 @@ import io import unittest +from clvm_rs.clvm_rs import clvm_tree_to_lazy_node, ser_2026 from clvm_rs.program import Program +from clvm_rs.serde import deserialize, serialize from clvm_rs.ser import atom_to_byte_iterator @@ -138,7 +140,9 @@ def test_repr_clvm_tree(self): with self.assertRaises(ValueError): Program.fromhex("ff8085") - o = Program.fromhex("ff808185") + # Legacy-only representation check; Program.from_bytes now auto-detects + # and may return Rust-backed LazyNode internals instead of CLVMTree. + o = Program.from_bytes_legacy(bytes.fromhex("ff808185")) self.assertEqual(repr(o._unwrapped_pair[0]), "") self.assertEqual(repr(o._unwrapped_pair[1]), "") @@ -157,3 +161,219 @@ def test_large_atom(self): def test_too_large_atom(self): self.assertRaises(ValueError, lambda: Program.fromhex("fc")) self.assertRaises(ValueError, lambda: Program.fromhex("fc8000000000")) + + def test_serde_2026_magic_prefix_and_from_bytes(self): + p = Program.to((1, (2, 3))) + prefixed = p.to_bytes_serde_2026() + self.assertTrue(prefixed.startswith(bytes.fromhex("fdff32303236"))) + p2 = Program.from_bytes(prefixed) + self.assertEqual(p, p2) + + def test_serde_2026_magic_prefix_explicit_deserializer(self): + p = Program.to([1, 2, 3, 4]) + prefixed = serialize(deserialize(bytes(p), "legacy"), "2026") + p2 = Program.from_bytes_serde_2026(prefixed) + self.assertEqual(p, p2) + + def test_legacy_parser_rejects_serde_2026_prefixed(self): + p = Program.to((b"a", b"b")) + prefixed = p.to_bytes_serde_2026() + with self.assertRaises(ValueError): + Program.from_bytes_legacy(prefixed) + + +class ClvmTreeToLazyNodeTest(unittest.TestCase): + """Tests for clvm_tree_to_lazy_node.""" + + def test_basic_roundtrip(self): + """Python tree -> clvm_tree_to_lazy_node -> ser -> deser -> assert equal.""" + for tree in [b"hello", 42, [1, 2, 3], (1, (2, 3)), [], b""]: + p = Program.to(tree) + blob = p.to_bytes_serde_2026() + p2 = Program.from_bytes(blob) + self.assertEqual(p, p2, f"roundtrip failed for {tree!r}") + + def test_shared_subtrees_via_identity(self): + """Shared Python objects should not cause exponential blowup.""" + t = Program.to(b"") + for _ in range(100): + t = Program.to((t, t)) + lazy = clvm_tree_to_lazy_node(t) + self.assertIsNotNone(lazy) + + def test_content_dedup(self): + """Two distinct Python atoms with same bytes produce one atom.""" + a = Program.to(b"same") + b = Program.to(b"same") + self.assertIsNot(a, b) + tree = Program.to((a, b)) + lazy = clvm_tree_to_lazy_node(tree) + left = lazy.pair[0] + right = lazy.pair[1] + self.assertEqual(left.atom, right.atom) + + def test_pair_dedup(self): + """Two distinct Python pairs with same structure share one pair in the allocator.""" + inner1 = Program.to((1, 2)) + inner2 = Program.to((1, 2)) + self.assertIsNot(inner1, inner2) + tree = Program.to((inner1, inner2)) + lazy = clvm_tree_to_lazy_node(tree) + self.assertIsNotNone(lazy.pair) + + def test_equivalence_with_old_roundtrip(self): + """New clvm_tree_to_lazy_node path produces same output as old deser_backrefs path.""" + from clvm_rs.clvm_rs import deser_backrefs + from clvm_rs.ser import sexp_to_bytes + + test_cases = [ + b"hello", + 42, + [1, 2, 3], + (1, (2, 3)), + [], + b"", + [b"a", [b"b", b"c"], b"d"], + (100, (b"text", (30, (50, (90, (b"ab", b"abab")))))), + ] + for tree in test_cases: + p = Program.to(tree) + new_path = ser_2026(clvm_tree_to_lazy_node(p), level=0) + old_path = ser_2026(deser_backrefs(sexp_to_bytes(p)), level=0) + self.assertEqual(new_path, old_path, f"mismatch for {tree!r}") + + def test_deep_tree(self): + """Deeply nested tree should work without stack overflow.""" + p = Program.to(b"leaf") + for _ in range(1000): + p = Program.to((p, b"x")) + lazy = clvm_tree_to_lazy_node(p) + self.assertIsNotNone(lazy) + + +class Serde2026RoundTripTest(unittest.TestCase): + """Comprehensive serde_2026 round-trip tests.""" + + def check_2026_roundtrip(self, tree, levels=(0, 1)): + """Serialize to serde_2026, deserialize, check equality.""" + p = Program.to(tree) + for level in levels: + blob = ser_2026(clvm_tree_to_lazy_node(p), level=level) + p2 = Program.from_bytes(blob) + self.assertEqual(p, p2, f"roundtrip failed for {tree!r} at level={level}") + + def test_atoms(self): + for atom in [b"", b"\x00", b"\xff", b"hello world", b"\x01" * 1000]: + self.check_2026_roundtrip(atom) + + def test_integers(self): + for n in [0, 1, -1, 127, 128, 255, 256, 65535, -32768, 2**32]: + self.check_2026_roundtrip(n) + + def test_lists(self): + self.check_2026_roundtrip([]) + self.check_2026_roundtrip([1]) + self.check_2026_roundtrip([1, 2, 3, 4, 5]) + self.check_2026_roundtrip([[1, 2], [3, 4], [5, 6]]) + + def test_nested_pairs(self): + self.check_2026_roundtrip((1, 2)) + self.check_2026_roundtrip((1, (2, (3, (4, 5))))) + self.check_2026_roundtrip(((((1, 2), 3), 4), 5)) + + def test_shared_subtrees_serialization(self): + """Shared subtrees should serialize compactly and round-trip.""" + shared = Program.to([1, 2, 3]) + tree = Program.to((shared, (shared, shared))) + blob = tree.to_bytes_serde_2026() + p2 = Program.from_bytes(blob) + self.assertEqual(tree, p2) + + def test_exponential_sharing(self): + """Exponential sharing (2^50 logical nodes) should serialize compactly.""" + t = Program.to(b"x") + for _ in range(50): + t = Program.to((t, t)) + blob = t.to_bytes_serde_2026() + self.assertLess(len(blob), 500) + # Verify it deserializes without error (skip equality check — + # LazyNode.pair creates new wrappers, making tree_hash O(2^N)) + p2 = Program.from_bytes(blob) + self.assertIsNotNone(p2) + + def test_exponential_sharing_small(self): + """Smaller exponential tree (2^15) — full round-trip with equality.""" + t = Program.to(b"y") + for _ in range(15): + t = Program.to((t, t)) + blob = t.to_bytes_serde_2026() + p2 = Program.from_bytes(blob) + self.assertEqual(t, p2) + + def test_repeated_atoms(self): + """Many copies of the same atom should be deduplicated.""" + tree = Program.to([b"dup"] * 100) + blob = tree.to_bytes_serde_2026() + p2 = Program.from_bytes(blob) + self.assertEqual(tree, p2) + + def test_many_distinct_atoms(self): + """Many distinct atoms should all round-trip.""" + tree = Program.to([bytes([i]) for i in range(256)]) + blob = tree.to_bytes_serde_2026() + p2 = Program.from_bytes(blob) + self.assertEqual(tree, p2) + + def test_compression_level_0_vs_1(self): + """Level 1 (pair-optimized) should produce <= bytes compared to level 0.""" + shared = Program.to([1, 2, 3]) + tree = Program.to([shared, shared, shared, shared]) + lazy = clvm_tree_to_lazy_node(tree) + blob_0 = ser_2026(lazy, level=0) + blob_1 = ser_2026(lazy, level=1) + self.assertLessEqual(len(blob_1), len(blob_0)) + self.assertEqual(Program.from_bytes(blob_0), Program.from_bytes(blob_1)) + + def test_unprefixed_roundtrip(self): + """Unprefixed serialization should work via explicit deser_2026.""" + from clvm_rs.clvm_rs import deser_2026 as raw_deser_2026 + p = Program.to([10, 20, 30]) + lazy = clvm_tree_to_lazy_node(p) + raw = ser_2026(lazy, prefixed=False) + self.assertFalse(raw.startswith(bytes.fromhex("fdff32303236"))) + node = raw_deser_2026(raw) + p2 = Program.wrap(node) + self.assertEqual(p, p2) + + def test_mixed_tree_with_large_atoms(self): + """Mix of large atoms, small atoms, and nested structure.""" + big = b"A" * 10000 + tree = Program.to((big, [1, 2, (big, b"small")])) + self.check_2026_roundtrip(tree) + + def test_deserialize_api_formats(self): + """Test the serde.py deserialize() with different format strings.""" + p = Program.to([42, 99]) + legacy_blob = bytes(p) + node = deserialize(legacy_blob, "legacy") + self.assertEqual(Program.wrap(node), p) + + node = deserialize(legacy_blob, "auto") + self.assertEqual(Program.wrap(node), p) + + prefixed = p.to_bytes_serde_2026() + node = deserialize(prefixed, "auto") + self.assertEqual(Program.wrap(node), p) + + def test_serialize_api_formats(self): + """Test the serde.py serialize() with different format strings.""" + from clvm_rs.clvm_rs import deser_backrefs + p = Program.to([1, 2, 3]) + node = deser_backrefs(bytes(p)) + + legacy_blob = serialize(node, "legacy") + self.assertEqual(Program.from_bytes(legacy_blob), p) + + s2026_blob = serialize(node, "2026") + self.assertTrue(s2026_blob.startswith(bytes.fromhex("fdff32303236"))) + self.assertEqual(Program.from_bytes(s2026_blob), p) diff --git a/wheel/src/api.rs b/wheel/src/api.rs index 0494cf6f..ad3b7032 100644 --- a/wheel/src/api.rs +++ b/wheel/src/api.rs @@ -1,16 +1,25 @@ #![allow(clippy::useless_conversion)] +use std::collections::HashMap; use std::io; +use std::rc::Rc; use super::lazy_node::LazyNode; use crate::adapt_response::adapt_response; -use clvmr::allocator::Allocator; +use clvmr::allocator::{Allocator, NodePtr}; use clvmr::chia_dialect::ChiaDialect; use clvmr::chia_dialect::{ClvmFlags, MEMPOOL_MODE}; use clvmr::cost::Cost; use clvmr::error::EvalErr; use clvmr::reduction::Response; use clvmr::run_program::run_program; -use clvmr::serde::{ParsedTriple, node_from_bytes, parse_triples, serialized_length_from_bytes}; +use clvmr::serde::{ + ParsedTriple, node_from_bytes, node_from_bytes_backrefs, node_to_bytes, node_to_bytes_backrefs, + parse_triples, serialized_length_from_bytes, +}; +use clvmr::serde_2026::{ + DeserializeLimits, MAGIC_PREFIX, deserialize_2026, node_from_bytes_auto, serialize_2026, + serialize_2026_pair_optimized, +}; use pyo3::prelude::*; use pyo3::types::{PyBytes, PyTuple}; @@ -86,11 +95,237 @@ fn deserialize_as_tree( Ok((r, s)) } +// --- Deserialize functions: bytes -> LazyNode --- + +#[pyfunction] +fn deser_legacy(blob: &[u8]) -> PyResult { + let mut a = Allocator::new(); + let node = node_from_bytes(&mut a, blob).map_err(eval_to_py)?; + Ok(LazyNode::new(Rc::new(a), node)) +} + +#[pyfunction] +fn deser_backrefs(blob: &[u8]) -> PyResult { + let mut a = Allocator::new(); + let node = node_from_bytes_backrefs(&mut a, blob).map_err(eval_to_py)?; + Ok(LazyNode::new(Rc::new(a), node)) +} + +fn make_limits(max_atom_len: Option, max_input_bytes: Option) -> DeserializeLimits { + let mut limits = DeserializeLimits::default(); + if let Some(v) = max_atom_len { + limits.max_atom_len = v; + } + if let Some(v) = max_input_bytes { + limits.max_input_bytes = v; + } + limits +} + +#[pyfunction] +#[pyo3(signature = (blob, *, max_atom_len=None, max_input_bytes=None))] +fn deser_2026( + blob: &[u8], + max_atom_len: Option, + max_input_bytes: Option, +) -> PyResult { + let mut a = Allocator::new(); + let limits = make_limits(max_atom_len, max_input_bytes); + let node = deserialize_2026(&mut a, blob, limits).map_err(eval_to_py)?; + Ok(LazyNode::new(Rc::new(a), node)) +} + +/// Deserialize CLVM bytes, auto-detecting the format (classic, backrefs, or +/// serde_2026). If the blob starts with the magic prefix +/// `fd ff 32 30 32 36`, it is +/// treated as serde_2026; otherwise the backrefs deserializer is used (which +/// also handles plain classic format). +#[pyfunction] +#[pyo3(signature = (blob, *, max_atom_len=None, max_input_bytes=None))] +fn deser_auto( + blob: &[u8], + max_atom_len: Option, + max_input_bytes: Option, +) -> PyResult { + let mut a = Allocator::new(); + let limits = make_limits(max_atom_len, max_input_bytes); + let node = node_from_bytes_auto(&mut a, blob, limits).map_err(eval_to_py)?; + Ok(LazyNode::new(Rc::new(a), node)) +} + +// --- Serialize functions: LazyNode -> bytes --- + +#[pyfunction] +fn ser_legacy(py: Python, node: &LazyNode) -> PyResult> { + let bytes = node_to_bytes(node.allocator(), node.node()).map_err(eval_to_py)?; + Ok(PyBytes::new(py, &bytes).unbind()) +} + +#[pyfunction] +fn ser_backrefs(py: Python, node: &LazyNode) -> PyResult> { + let bytes = node_to_bytes_backrefs(node.allocator(), node.node()).map_err(eval_to_py)?; + Ok(PyBytes::new(py, &bytes).unbind()) +} + +/// Serialize to serde_2026 format. +/// +/// - `level=0`: left-first traversal (fast) +/// - `level=1`: pair-optimized DP traversal (smaller output, default) +/// - `prefixed=True`: prepend the `fd ff 32 30 32 36` magic prefix (default) +#[pyfunction] +#[pyo3(signature = (node, *, level=1, prefixed=true))] +fn ser_2026(py: Python, node: &LazyNode, level: u32, prefixed: bool) -> PyResult> { + let raw = match level { + 0 => serialize_2026(node.allocator(), node.node()).map_err(eval_to_py)?, + 1 => serialize_2026_pair_optimized(node.allocator(), node.node()).map_err(eval_to_py)?, + _ => { + return Err(pyo3::exceptions::PyValueError::new_err( + "ser_2026: level must be 0 or 1", + )); + } + }; + let out = if prefixed { + let mut buf = Vec::with_capacity(MAGIC_PREFIX.len() + raw.len()); + buf.extend_from_slice(&MAGIC_PREFIX); + buf.extend_from_slice(&raw); + buf + } else { + raw + }; + Ok(PyBytes::new(py, &out).unbind()) +} + +/// Convert a Python CLVM tree (any object with `.atom` / `.pair` attributes) +/// into a `LazyNode` backed by a Rust `Allocator`, with full interning. +/// +/// Uses three hash maps mirroring `intern_tree`: +/// 1. Python object identity (`id()`) -> NodePtr (prevents exponential blowup) +/// 2. Atom byte content -> NodePtr (deduplicates identical atoms) +/// 3. (left, right) pair -> NodePtr (deduplicates structurally identical pairs) +#[pyfunction] +fn clvm_tree_to_lazy_node(obj: Bound<'_, PyAny>) -> PyResult { + let mut allocator = Allocator::new(); + + let mut identity_map: HashMap = HashMap::new(); + let mut atom_map: HashMap, NodePtr> = HashMap::new(); + let mut pair_map: HashMap<(NodePtr, NodePtr), NodePtr> = HashMap::new(); + + enum WorkItem<'py> { + Visit(Bound<'py, PyAny>), + BuildPair { + id: usize, + left_id: usize, + right_id: usize, + }, + } + + let root_ptr = obj.as_ptr() as usize; + let mut stack: Vec> = vec![WorkItem::Visit(obj)]; + + while let Some(item) = stack.pop() { + match item { + WorkItem::Visit(pyobj) => { + let id = pyobj.as_ptr() as usize; + + if identity_map.contains_key(&id) { + continue; + } + + let atom_val: Option> = pyobj.getattr("atom")?.extract()?; + + if let Some(bytes) = atom_val { + let node = if let Some(&existing) = atom_map.get(&bytes) { + existing + } else { + let new_node = allocator + .new_atom(&bytes) + .map_err(|e| pyo3::exceptions::PyMemoryError::new_err(e.to_string()))?; + atom_map.insert(bytes, new_node); + new_node + }; + identity_map.insert(id, node); + } else { + let pair_val: Option<(Bound<'_, PyAny>, Bound<'_, PyAny>)> = + pyobj.getattr("pair")?.extract()?; + + if let Some((left, right)) = pair_val { + let left_id = left.as_ptr() as usize; + let right_id = right.as_ptr() as usize; + + let left_done = identity_map.contains_key(&left_id); + let right_done = identity_map.contains_key(&right_id); + + if left_done && right_done { + let l = identity_map[&left_id]; + let r = identity_map[&right_id]; + let node = if let Some(&existing) = pair_map.get(&(l, r)) { + existing + } else { + let new_node = allocator.new_pair(l, r).map_err(|e| { + pyo3::exceptions::PyMemoryError::new_err(e.to_string()) + })?; + pair_map.insert((l, r), new_node); + new_node + }; + identity_map.insert(id, node); + } else { + stack.push(WorkItem::BuildPair { + id, + left_id, + right_id, + }); + if !right_done { + stack.push(WorkItem::Visit(right)); + } + if !left_done { + stack.push(WorkItem::Visit(left)); + } + } + } else { + return Err(pyo3::exceptions::PyValueError::new_err( + "CLVM object has neither .atom nor .pair", + )); + } + } + } + WorkItem::BuildPair { + id, + left_id, + right_id, + } => { + let l = identity_map[&left_id]; + let r = identity_map[&right_id]; + let node = if let Some(&existing) = pair_map.get(&(l, r)) { + existing + } else { + let new_node = allocator + .new_pair(l, r) + .map_err(|e| pyo3::exceptions::PyMemoryError::new_err(e.to_string()))?; + pair_map.insert((l, r), new_node); + new_node + }; + identity_map.insert(id, node); + } + } + } + + let root = identity_map[&root_ptr]; + Ok(LazyNode::new(Rc::new(allocator), root)) +} + #[pymodule] fn clvm_rs(_py: Python, m: &Bound<'_, PyModule>) -> PyResult<()> { m.add_function(wrap_pyfunction!(run_serialized_chia_program, m)?)?; m.add_function(wrap_pyfunction!(serialized_length, m)?)?; m.add_function(wrap_pyfunction!(deserialize_as_tree, m)?)?; + m.add_function(wrap_pyfunction!(deser_legacy, m)?)?; + m.add_function(wrap_pyfunction!(deser_backrefs, m)?)?; + m.add_function(wrap_pyfunction!(deser_2026, m)?)?; + m.add_function(wrap_pyfunction!(deser_auto, m)?)?; + m.add_function(wrap_pyfunction!(ser_legacy, m)?)?; + m.add_function(wrap_pyfunction!(ser_backrefs, m)?)?; + m.add_function(wrap_pyfunction!(ser_2026, m)?)?; + m.add_function(wrap_pyfunction!(clvm_tree_to_lazy_node, m)?)?; m.add("NO_UNKNOWN_OPS", ClvmFlags::NO_UNKNOWN_OPS.bits())?; m.add("LIMIT_HEAP", ClvmFlags::LIMIT_HEAP.bits())?; diff --git a/wheel/src/lazy_node.rs b/wheel/src/lazy_node.rs index 37894257..7646cb4a 100644 --- a/wheel/src/lazy_node.rs +++ b/wheel/src/lazy_node.rs @@ -46,4 +46,12 @@ impl LazyNode { node: n, } } + + pub(crate) fn allocator(&self) -> &Allocator { + &self.allocator + } + + pub(crate) fn node(&self) -> NodePtr { + self.node + } } From 2c51d141990f4ff44c9bc106320d06d3be31c5b3 Mon Sep 17 00:00:00 2001 From: Richard Kiss Date: Tue, 28 Apr 2026 11:32:36 -0700 Subject: [PATCH 03/15] serde_2026 fuzz target Roundtrip fuzzer: deserialize arbitrary bytes as classic CLVM, serialize to serde_2026, deserialize back, and compare trees structurally. Uses serialize_2026 (not node_to_bytes) for comparison to handle DAG-vs-tree differences correctly. Made-with: Cursor --- Cargo.toml | 4 - benches/deserialize.rs | 10 +- benches/serialize.rs | 8 +- docs/serde-2026.md | 36 +- fuzz/Cargo.toml | 6 + .../serde-2026/raw/default-serde-2026.profraw | Bin 0 -> 753072 bytes fuzz/fuzz_targets/serde_2026.rs | 50 ++ src/lib.rs | 1 - src/serde/intern.rs | 19 - src/serde/mod.rs | 9 +- src/serde_2026/de.rs | 21 +- src/serde_2026/mod.rs | 25 +- src/serde_2026/ser.rs | 347 ++++++--- src/serde_2026/ser_optimized.rs | 300 +++----- src/serde_2026/strategy.rs | 99 +++ src/serde_2026/tests.rs | 696 +++++------------- src/serde_2026/varint.rs | 28 +- wheel/Cargo.toml | 2 +- wheel/python/clvm_rs/clvm_rs.pyi | 1 - wheel/python/clvm_rs/program.py | 62 +- wheel/python/clvm_rs/serde.py | 5 +- wheel/python/tests/test_serialize.py | 65 +- wheel/src/api.rs | 31 +- 23 files changed, 816 insertions(+), 1009 deletions(-) create mode 100644 fuzz/coverage/serde-2026/raw/default-serde-2026.profraw create mode 100644 fuzz/fuzz_targets/serde_2026.rs create mode 100644 src/serde_2026/strategy.rs diff --git a/Cargo.toml b/Cargo.toml index 3c361ec5..36cf61bb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,10 +34,6 @@ allocator-debug = [] # with OpenSSL when enabled openssl = ["chia-sha2/openssl"] -# Experimental 2026 serialization format (intern-based) -# This format is not yet finalized and may change -ser-2026 = [] - [profile.release] lto = "thin" diff --git a/benches/deserialize.rs b/benches/deserialize.rs index 3d3f3341..89c7a1c9 100644 --- a/benches/deserialize.rs +++ b/benches/deserialize.rs @@ -4,8 +4,7 @@ use clvmr::serde::{ node_to_bytes_backrefs, serialized_length_from_bytes, serialized_length_from_bytes_trusted, tree_hash_from_stream, }; -#[cfg(feature = "ser-2026")] -use clvmr::serde_2026::{DeserializeLimits, deserialize_2026, serialize_2026}; +use clvmr::serde_2026::{Compression, DeserializeLimits, deserialize_2026, serialize_2026}; use criterion::{Criterion, criterion_group, criterion_main}; use std::include_bytes; use std::time::Instant; @@ -78,16 +77,17 @@ fn deserialize_benchmark(c: &mut Criterion) { }); } - #[cfg(feature = "ser-2026")] { let mut a = Allocator::new(); let node = node_from_bytes(&mut a, block).expect("node_from_bytes"); - let serialized_2026 = serialize_2026(&a, node).expect("serialize_2026"); + let serialized_2026 = + serialize_2026(&a, node, Compression::default()).expect("serialize_2026"); let mut a = Allocator::new(); let node = node_from_bytes_backrefs(&mut a, compressed_block.as_ref()) .expect("node_from_bytes_backrefs"); - let serialized_2026_compressed = serialize_2026(&a, node).expect("serialize_2026"); + let serialized_2026_compressed = + serialize_2026(&a, node, Compression::default()).expect("serialize_2026"); for (data, name_suffix) in &[ (serialized_2026.as_slice(), ""), diff --git a/benches/serialize.rs b/benches/serialize.rs index 1a3380cf..ce631eac 100644 --- a/benches/serialize.rs +++ b/benches/serialize.rs @@ -3,8 +3,7 @@ use clvmr::serde::{ Serializer, node_from_bytes, node_from_bytes_backrefs, node_to_bytes_backrefs, node_to_bytes_limit, }; -#[cfg(feature = "ser-2026")] -use clvmr::serde_2026::serialize_2026; +use clvmr::serde_2026::{Compression, serialize_2026}; use criterion::black_box; use criterion::{Criterion, criterion_group, criterion_main}; use std::include_bytes; @@ -59,11 +58,12 @@ fn serialize_benchmark(c: &mut Criterion) { }) }); - #[cfg(feature = "ser-2026")] group.bench_function(format!("serialize_2026 {name}"), |b| { b.iter(|| { let start = Instant::now(); - black_box(serialize_2026(&a, node).expect("serialize_2026")); + black_box( + serialize_2026(&a, node, Compression::default()).expect("serialize_2026"), + ); start.elapsed() }) }); diff --git a/docs/serde-2026.md b/docs/serde-2026.md index 5577c28f..f4ae0797 100644 --- a/docs/serde-2026.md +++ b/docs/serde-2026.md @@ -2,7 +2,7 @@ ## Magic Header -The 2026 serialization format is identified by a 6-byte magic prefix: +Every 2026-format blob begins with a 6-byte magic prefix: ``` 0xfd 0xff 0x32 0x30 0x32 0x36 @@ -30,28 +30,31 @@ format, it should fail quickly due to the deliberately invalid size prefix. After the 6-byte magic header, the payload consists of two sections: -1. **Atom table** — all unique atoms, grouped by length +1. **Atom table** — all unique atoms (except nil), grouped by length 2. **Instruction stream** — stack-based operations to reconstruct the tree ### Atom Table -The atom table begins with a varint encoding the number of distinct atom -lengths present. +Nil (the empty atom) is **not** included in the atom table — it has a dedicated +opcode (`0`) in the instruction stream. -For each length group (in stream order): +The atom table begins with a varint encoding the number of atom groups. -- If there is **one** atom of that length: a positive varint encoding the +For each group (in stream order): + +- If the group contains **one** atom: a positive varint encoding the atom's byte length, followed by the atom's raw bytes. -- If there are **multiple** atoms of that length: a negative varint encoding - the negated length, then a positive varint encoding the count, then the raw - bytes of each atom concatenated (each is exactly `length` bytes). +- If the group contains **multiple** atoms of the same length: a negative varint + encoding the negated byte length, then a positive varint encoding the count, + then the raw bytes of each atom concatenated (each is exactly `length` bytes). Atoms are assigned indices starting from 0, in the order they appear in the table. -The decoder accepts length groups in any order, and repeated length groups are -valid. A serializer may still choose a specific ordering strategy (for example, -sorting by length) as an implementation optimization. +The decoder accepts groups in any order. Multiple groups with the same byte +length are valid (they contribute separate atom indices). A serializer may +choose a specific ordering strategy (for example, sorting by frequency so +commonly-referenced atoms get smaller varint indices). ### Instruction Stream @@ -68,10 +71,6 @@ Each instruction is a varint: | `N >= 2` | Push the atom at index N-2 onto the stack | | `N <= -2` | Push the already-constructed pair at index -N-2 onto the stack | -The default serializer always uses opcode `1` (left-first cons). The -pair-optimized serializer uses both `1` and `-1` to steer traversal order, -reducing the number of pair back-references needed. - Pairs are indexed in construction order (the first pair cons'd is index 0, the second is index 1, etc.). A negative instruction references a pair that was previously constructed during this same decode, enabling shared sub-trees @@ -82,8 +81,7 @@ root node. ### Varint Encoding -Signed integers are encoded with a variable-length prefix scheme. -The patterns below are illustrative examples, not an upper bound: +Signed integers are encoded with a variable-length prefix scheme: ``` 0xxxxxxx → 7-bit value, range [-64, 63] @@ -96,3 +94,5 @@ The number of leading `1` bits determines how many additional bytes follow. A `0` separator bit follows the leading `1`s. The remaining bits (across all bytes) form a two's-complement signed integer in big-endian order. This scales to wider integers without changing the encoding rules. + +A prefix of 8 leading `1` bits (`0xFF`) is invalid. diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index a5ecbdfc..98c29b94 100644 --- a/fuzz/Cargo.toml +++ b/fuzz/Cargo.toml @@ -148,3 +148,9 @@ name = "modpow" path = "fuzz_targets/modpow.rs" test = false doc = false + +[[bin]] +name = "serde-2026" +path = "fuzz_targets/serde_2026.rs" +test = false +doc = false diff --git a/fuzz/coverage/serde-2026/raw/default-serde-2026.profraw b/fuzz/coverage/serde-2026/raw/default-serde-2026.profraw new file mode 100644 index 0000000000000000000000000000000000000000..da231ceeb6630eee89f246fef65a14eaa5e88a07 GIT binary patch literal 753072 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%0D*u&(6*(n)l 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%0AyF+JNu@x@DV%6**3u8sS2U+HIVUAi-k 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ν)3QHFh z{12hr{KVc2v4wvNtiB691rkIgE+;dTf95fgSPWh$CYFtd@+T5VJI2%^*Ks!Cg_$^S z1;JvF`|(#`7rc&SaeR)dY!u=HeA%5xc1rsLMeN53cOJL{_flv%7#h34`N9nTwUWWE zK<;y`r6P!RyOE1Uxg*JAuubgeLwGNFX4$zM+FF%I-k4se)n<}re}VDf<%^gMdFBT= z#*xq4v+_(EY^A$IO96RX?B%F?)K7QRE6vzhgh#vQGUh*-MZMTtig+t`qD1^TO?pIW z#dtR>jcr&?*anzPK*AVh6d-W`W(VYhDyVTU1Kd#u6gW6CzqV9R{>oOrdeJYbq8Hl~qULJi0ifxWGW; zR#~C%c}y+Q6e2HJVIT~4s;3#gfp=r*!OA7HkzbW+e=yQx5_G|1ZYs9RCDgVB$#^2t zFF0!k@#U6Mr^uxMPtHUO>gu@e1&+j$jwhhrT`0?_ZFu>8~c35+ueaflD?9gJ)%(b zu5EWoq%@Jj{@}go5`1Xg)pxM)O=HNT9<$83OuMF--x|($+k4-HS2J)tt+`xW9_jIT z-}H0i+PvK`XYppoRbM{Wn77~7nF#Gwd)b5RmIUzcQy6E{qNXFE1OWfjlNW#t1?KEU z73g()V0lCCg?u*n1zn8@<+Vhf$RzSDD0|y$L6ubVdPuLlBkD0zTH;TZRNv7(BUq36=bPh?lb(gqVPTaYiBkK|mzJjc%-LdIIb`_J zc$*W4|7+C#P(n>mN7}o*NOfLal#x4MYO=^=f^0n50uQZT)mvG^iYj6;4;8kmgVwKg zh>y4{^b&7vJ-f5Q7>@*=jN~yr4?^>dlVqP$gEPN+Gpy|=Iz*0PM`ho`MCIc|)Z+#j zLc@%cWv){$0dsJsj9TKUWj#IG=a5jychj&jV4KB#Fj7I`rfyHk^8*t`GosG6V07|| zLL?Cu!!mJ=htt#ZmgXZ3p$z6%tvOtKcIS}x8f8UTUSJ0?#@J(hHFa@>sqk7Z?QD~g zTWz_jmdng(x5xaVAevSe-@sXEMYwaY1gn)W+fvjrl6E9UU}S8&rZe4)h=B@q@Ul?Z z&7PIRxvQjsK9L^qSTa8Uk`A7TUlH-Qx9Gym?q{5Qf>XFE8CRocx%fz3~$F) zB68bG4SNB@KZ(Gvy{ExqU;n3*N*6l3RAo9Cu+OK0bGq3rG6#cibV`{>n1-=BV`=IF zn8>w@C6@QY$MgGjsObCzZA6^=s`eLAUe=HiY{=z*ah#gfBXX4nn{$rjy%MXv*_TFW zUI}L`UlE!~{Ps6>4&j6e65Xzaj`+ETJpdC!oI_*yHHrBb&7fbj#Q11CH z;1_);*mMjH%PViSkF@QI@uJC~m>uTQkSt=j-?Wz2g5Ur1!xY(;!3$3$Y&CS}p|ez@ zWs2s>>t)o*Etbgista0sR&T@sh;A6!b&QO&?|pzv3_1jzoAxp=Qoz`j#-Ig2wX07J zow^}_T)YdS0oHH*FU{fK$x*@i{M1HJ`GZV5BPdWV<`;+dS@R{ZC+gDkd|QrktAdcu!Y=$}XU5Q=kxAm#!8ZYnidfZ@b-9*CiX1+P zAv?a#5XjIKny5Xns`9@}vjs)X;3Go0h(WXxi_T4GWnoO>@WVzH4AwhWqxxO9lea_P zSAWPmd0KU8{;35h8EpLiULJp6QDFqIN3W#zPC9bcrjDyhn1JSKDc2DqnSQR>07X%r z!V_gS3WuhRlhya1tF}}G2V(Cq_Yz6-AxSJAn<8$JXkL2lBTOTn?@(iaR6w_~BIXAg z!;rpoBu|tM1jsTq14NtQl>R3fHH#!R6ugY`w((nkPGYY2&N{bLgL6UsE8-_y{+uBz zJ8U;h`T@I;#hz?%2rw$|hw&U3W6H)=tyUckv>(Z)kX8P^;smGu zuAO3+vaym1gh{)H&{=Oq?=^X{gJ-zh&Zq;VF`a1CTk>}CVi`m92woB+0o^&OS2b}C zAXH$^_6nS{@DDD(Psra2Vt&w`y<-bBQq8Dx|Bez@|hJL1){E%&&WK zWRP}-^3akD`GERyt8!z;IS$3eIVPC*zHhKEv%R$F`5vY7Jj`(9=Wuo%%laUqc;f}7 zb$y?mc>0L$%=&Au1e02`P)mHoA3V!> zJ@bY?A-+pNw|694i}Q>Pf8MbFISAw5o>_1(*#z)(MCeY$MYR7u)$h_XcYJ{TmU<8N zt@kltu{umz_BT@%_Q2bLoarqs7B;Q&s*U6Bwrg}A%z3GI4=BVK%6w#q!lZys{ZA$O zm~50ThT~ipSAO763sTl)!I9Uw#AS4W;lkg^Jj;dJ)CFAGEp11dHi0La?sRsoGK_>i z@O!;TQ;I#S(P_8wkyQWdlz4{W7!!bS#6$%NJ&sco=m)#fDM zN$))HWib9t;E92A9_05M@*s@_XoRzpaE1by51MFOHOX?y@Iy($Lb2p=VmpupQ!Hh<{MVFYt0#y*xjptA$T)LDkz5Y;OO;Kg|W1|ctYll zbE&c5U2dDu5nOIvkr2(~B^N>SvF#y|72(quNPRe%LKkL!^VO)Rrn^jv+=2J)H8kIz z=QK1lcNN(*Gtm89TZm_;#m(eTRe z#(;0*-EZP?vnM#M)Fk|xNG6acz{u!>$!fEzXGY!J=Z|{<>->EJ!g5`Lpr!F>tsAU^ zUZCg6Oljld;4ar7PoR5U)18$ig-ytE=7i;$npXRDPY%EEOYW#ca?xFCs@od4v=*+D zkUPw=r>>ayEPvcOIDG3c0RiSk89cnaU+i0K5b;RRow9H zJTNy%f$5ca=~(oiT$stc{??qN!j%|4_nYA|5g1eUYutyFHeq;QV z2sIR|73~RGLevy^|FtvB&FK~@kQb!F!w)@mpIBV$UHydQ-zlwvPm)>SBP*+Ie(Dx+8w}uMym#NV)#x zzyKwg=fsmm&c8)KbbPT(b-dHO#M8W-(!XhC0z&Vr9bZ2vMvj7|a0N3N1ol2w9pMY* zIJ$l(jW7)#iiWS3bl`>u#xkHM;dgL*r`<&(B+c<(>2?FDsat77V7Kl6?ms7e z?4d(|3LC%X*Ut}Ac~^G@Tyy1ae)iPf?*QtKf(5rdh3R1a;d(b z)w5T3svrAYOzX&R&%hYyXsqE4ckR`IhoN~^a{`G(u+mO|{zmlM(Q+uDtA+frl}XdG z%Vb3JYxE834Y_F{{V~%o)={ zpc{-DK7AtcTIKzs^}c9ejJye94%lOr=M171uN3nLOXo8y(9KqBf3Y^w zn?TQ#?)>NZ&;G$EmaQF+=i`0yE?6CE3mD1kLpk*woZKZ&CduE2!t&Z9wC0 z_eLp}tWRxm2+JTac-CM2`>U!`<3yJ?=3j@4-OPr@v}c|~$T-YbuPkNR?B2O-GHI-uV;VPzYbB1r#SDmz zLYE%0M5dCu&X>f^p!D=8mWa}SzC5eCR&CQ=Pw30Uz~%>-tiF+Q1`W>#BtkwLbQ-Y4rcue<4ig3 z4ABBh)A`MKBjJFcUXTQtEuWhz6;`I9M-ZIC?{_XtgpVz~r>j-`JDrS{9Cjkyu+}U^ zO#@gVE|MhlBGJ-WHJA>{EOvP$>D@Ql-fS?pxT0J2r(pEo^nwna1*p-+xm+)4=@uOB zRlx9oo6*0}F~bsCJ6&CoEghZJR&r$Ym*m-lCyD51cktPK)hd)ed*jjd5y|=Vq!Pt3 zS3!5V8#R`iJHmHXnsLc()r~^o3*t#Zs2_ULW{nSgsh7C57CMN1s}=@EX->`X%f+v?PFZiuvIUFj zY6Ya>OY?HwuJ-o)oZU~U&7t62f4R&|uU*0Fb(+NsuX*kBylgU3@q$edH0&4?8VK

uihN0<_}sQ_`2hvV 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 literal 0 HcmV?d00001 diff --git a/fuzz/fuzz_targets/serde_2026.rs b/fuzz/fuzz_targets/serde_2026.rs new file mode 100644 index 00000000..0998aba0 --- /dev/null +++ b/fuzz/fuzz_targets/serde_2026.rs @@ -0,0 +1,50 @@ +#![no_main] + +use clvmr::Allocator; +use clvmr::serde::node_to_bytes; +use clvmr::serde_2026::{ + Compression, DeserializeLimits, deserialize_2026, serialize_2026, serialize_2026_random, +}; +use libfuzzer_sys::{Corpus, fuzz_target}; + +fn canonical(a: &Allocator, node: clvmr::allocator::NodePtr) -> Vec { + node_to_bytes(a, node).expect("node_to_bytes failed") +} + +fn roundtrip_check(label: &str, a: &Allocator, original: clvmr::allocator::NodePtr, blob: &[u8]) { + let limits = DeserializeLimits::default(); + let mut a2 = Allocator::new(); + let decoded = deserialize_2026(&mut a2, blob, limits) + .unwrap_or_else(|e| panic!("{label}: deserialize failed: {e:?}")); + assert_eq!( + canonical(a, original), + canonical(&a2, decoded), + "{label}: tree mismatch" + ); +} + +fuzz_target!(|data: &[u8]| -> Corpus { + let mut a = Allocator::new(); + let limits = DeserializeLimits::default(); + + let Ok(node) = deserialize_2026(&mut a, data, limits) else { + return Corpus::Reject; + }; + + let fast = serialize_2026(&a, node, Compression::Fast).expect("Fast failed"); + let compact = serialize_2026(&a, node, Compression::Compact).expect("Compact failed"); + let random = serialize_2026_random(&a, node, 0xF022).expect("Random failed"); + + roundtrip_check("fast", &a, node, &fast); + roundtrip_check("compact", &a, node, &compact); + roundtrip_check("random", &a, node, &random); + + assert!( + compact.len() <= fast.len(), + "compact ({}) > fast ({})", + compact.len(), + fast.len() + ); + + Corpus::Keep +}); diff --git a/src/lib.rs b/src/lib.rs index 14105d3d..d89ed6bc 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -15,7 +15,6 @@ pub mod run_program; pub mod runtime_dialect; pub mod secp_ops; pub mod serde; -#[cfg(feature = "ser-2026")] pub mod serde_2026; pub mod sha_tree_op; pub mod traverse_path; diff --git a/src/serde/intern.rs b/src/serde/intern.rs index f89ff3b2..8d096e51 100644 --- a/src/serde/intern.rs +++ b/src/serde/intern.rs @@ -30,25 +30,6 @@ impl InternedTree { .get_or_calculate(&self.allocator, &self.root, None) .expect("treehash should not fail on valid tree") } - - /// Get a mapping from NodePtr to index for serialization. - /// - /// Returns (atom_to_index, pair_to_index) where: - /// - Atom indices are 0, 1, 2, ... (non-negative) - /// - Pair indices are -1, -2, -3, ... (negative, 1-based) - pub fn node_indices(&self) -> (HashMap, HashMap) { - let mut atom_to_index = HashMap::with_capacity(self.atoms.len()); - let mut pair_to_index = HashMap::with_capacity(self.pairs.len()); - - for (i, &atom) in self.atoms.iter().enumerate() { - atom_to_index.insert(atom, i as i32); - } - for (i, &pair) in self.pairs.iter().enumerate() { - pair_to_index.insert(pair, -(i as i32 + 1)); - } - - (atom_to_index, pair_to_index) - } } /// Intern a CLVM tree: deduplicate atoms and pairs in a single pass. diff --git a/src/serde/mod.rs b/src/serde/mod.rs index f39b5cf4..29f0e030 100644 --- a/src/serde/mod.rs +++ b/src/serde/mod.rs @@ -42,11 +42,8 @@ pub use tools::{ }; pub use tree_cache::{TreeCache, TreeCacheCheckpoint}; -// Re-export from serde_2026 module for backward compatibility -#[cfg(feature = "ser-2026")] pub use crate::serde_2026::{ - DeserializeLimits, MAGIC_PREFIX as SERDE_2026_MAGIC_PREFIX, deserialize_2026, - deserialize_2026_from_stream, node_from_bytes_auto, node_to_bytes_serde_2026, - node_to_bytes_serde_2026_raw, serialize_2026, serialize_2026_to_stream, - serialized_length_serde_2026, + Compression, DeserializeLimits, SERDE_2026_MAGIC_PREFIX, deserialize_2026, + deserialize_2026_from_stream, node_from_bytes_auto, node_to_bytes_serde_2026, serialize_2026, + serialize_2026_to_stream, serialized_length_serde_2026, }; diff --git a/src/serde_2026/de.rs b/src/serde_2026/de.rs index b472dfc4..4bef4e88 100644 --- a/src/serde_2026/de.rs +++ b/src/serde_2026/de.rs @@ -4,7 +4,7 @@ use crate::allocator::{Allocator, NodePtr}; use crate::error::{EvalErr, Result}; use crate::serde::node_from_bytes_backrefs; -use super::MAGIC_PREFIX; +use super::SERDE_2026_MAGIC_PREFIX; use super::varint::decode_varint; /// Default maximum atom length (1 MB). @@ -86,17 +86,14 @@ pub fn node_from_bytes_auto( bytes: &[u8], limits: DeserializeLimits, ) -> Result { - if bytes.starts_with(&MAGIC_PREFIX) { - deserialize_2026(allocator, &bytes[MAGIC_PREFIX.len()..], limits) + if bytes.starts_with(&SERDE_2026_MAGIC_PREFIX) { + deserialize_2026(allocator, &bytes[SERDE_2026_MAGIC_PREFIX.len()..], limits) } else { node_from_bytes_backrefs(allocator, bytes) } } /// Deserialize a node from a stream using the 2026 format. -/// -/// Handles both `cons_lr` (opcode 1) and `cons_rl` (opcode -1), so it can -/// deserialize output from either the default or pair-optimized serializer. pub fn deserialize_2026_from_stream( allocator: &mut Allocator, reader: &mut R, @@ -132,11 +129,7 @@ pub fn deserialize_2026_from_stream( let instruction_count = checked_usize(decode_varint(&mut reader)?, MAX_COUNT)?; if instruction_count == 0 { - return if atoms.is_empty() { - Err(EvalErr::SerializationError) - } else { - Ok(atoms[0]) - }; + return Err(EvalErr::SerializationError); } let nil = allocator.nil(); @@ -199,11 +192,11 @@ pub fn deserialize_2026( /// The input buffer may contain trailing data; only the bytes belonging to /// the serde_2026 blob are counted. pub fn serialized_length_serde_2026(buf: &[u8]) -> Result { - if !buf.starts_with(&MAGIC_PREFIX) { + if !buf.starts_with(&SERDE_2026_MAGIC_PREFIX) { return Err(EvalErr::SerializationError); } - let data = &buf[MAGIC_PREFIX.len()..]; + let data = &buf[SERDE_2026_MAGIC_PREFIX.len()..]; let mut cursor = Cursor::new(data); let group_count = checked_usize(decode_varint(&mut cursor)?, MAX_COUNT)?; @@ -236,5 +229,5 @@ pub fn serialized_length_serde_2026(buf: &[u8]) -> Result { decode_varint(&mut cursor)?; } - Ok(MAGIC_PREFIX.len() as u64 + cursor.position()) + Ok(SERDE_2026_MAGIC_PREFIX.len() as u64 + cursor.position()) } diff --git a/src/serde_2026/mod.rs b/src/serde_2026/mod.rs index 6194eb53..189966f1 100644 --- a/src/serde_2026/mod.rs +++ b/src/serde_2026/mod.rs @@ -16,12 +16,14 @@ //! - `>= 2` (positive varint N): Push atom at index N-2 //! - `<= -2` (negative varint N): Push already-constructed pair at index -N-2 //! -//! The default serializer always uses opcode `1` (left-first cons). The pair- -//! optimized serializer uses both `1` and `-1` to steer traversal order. +//! The default serializer always uses opcode `1` (left-first cons). The +//! pair-optimized serializer uses both `1` and `-1` to steer traversal order, +//! reducing the number of pair back-references needed. mod de; mod ser; mod ser_optimized; +mod strategy; mod varint; #[cfg(test)] @@ -32,17 +34,28 @@ mod tests; /// - `0xfd 0xff` forces legacy/backref decoders down an invalid atom-length /// path (fail-fast). /// - `0x32 0x30 0x32 0x36` is ASCII `"2026"` for readable hexdumps. -pub const MAGIC_PREFIX: [u8; 6] = [0xfd, 0xff, b'2', b'0', b'2', b'6']; +pub const SERDE_2026_MAGIC_PREFIX: [u8; 6] = [0xfd, 0xff, b'2', b'0', b'2', b'6']; /// Maximum atoms/pairs that fit in i32 indices (used by instruction stream). const MAX_INDEX: usize = i32::MAX as usize; +/// Controls the serialization strategy for pair visit order. +/// +/// - `Fast` (0): left-first traversal. O(N) serialization. +/// - `Compact` (1): tree-DP to minimize output size by optimizing which +/// pairs land in the 1-byte varint tier. O(N x min(subtree_size, 64)). +#[derive(Copy, Clone, Debug, Default, Eq, PartialEq)] +#[repr(u8)] +pub enum Compression { + Fast = 0, + #[default] + Compact = 1, +} + pub use de::{ DeserializeLimits, deserialize_2026, deserialize_2026_from_stream, node_from_bytes_auto, serialized_length_serde_2026, }; pub use ser::{ - node_to_bytes_serde_2026, node_to_bytes_serde_2026_raw, serialize_2026, - serialize_2026_to_stream, + node_to_bytes_serde_2026, serialize_2026, serialize_2026_random, serialize_2026_to_stream, }; -pub use ser_optimized::{serialize_2026_pair_optimized, serialize_2026_pair_optimized_to_stream}; diff --git a/src/serde_2026/ser.rs b/src/serde_2026/ser.rs index 8df66b9d..14b4d9bf 100644 --- a/src/serde_2026/ser.rs +++ b/src/serde_2026/ser.rs @@ -6,6 +6,7 @@ use crate::error::{EvalErr, Result}; use crate::serde::{InternedTree, intern_tree}; use super::MAX_INDEX; +use super::strategy::{Direction, LeftFirst, Random, VisitStrategy}; use super::varint::write_varint; /// Intermediate state after interning and sorting atoms. @@ -20,8 +21,75 @@ pub(super) struct SerializerState { pub root_index: i32, } +/// Count how many times each atom is referenced (by root or as a pair child). +fn atom_ref_counts( + tree: &InternedTree, + node_to_index: &impl Fn(NodePtr) -> i32, + root_index: i32, +) -> Vec { + let mut counts = vec![0u32; tree.atoms.len()]; + if root_index >= 0 { + counts[root_index as usize] += 1; + } + for &pair_node in &tree.pairs { + let (left, right) = match tree.allocator.sexp(pair_node) { + SExp::Pair(l, r) => (l, r), + _ => unreachable!(), + }; + for child in [left, right] { + let idx = node_to_index(child); + if idx >= 0 { + counts[idx as usize] += 1; + } + } + } + counts +} + +/// Sort atoms by (reused-first, frequency desc, shorter first, stable). +/// Returns (sorted indices excluding nil, old->new index remap, nil's old index). +fn sort_atoms( + tree: &InternedTree, + ref_counts: &[u32], +) -> (Vec, HashMap, Option) { + let atom_count = tree.atoms.len(); + + let mut sorted: Vec = (0..atom_count).collect(); + sorted.sort_by(|&a, &b| { + let a_reused = ref_counts[a] > 1; + let b_reused = ref_counts[b] > 1; + b_reused + .cmp(&a_reused) + .then_with(|| ref_counts[b].cmp(&ref_counts[a])) + .then_with(|| { + tree.allocator + .atom_len(tree.atoms[a]) + .cmp(&tree.allocator.atom_len(tree.atoms[b])) + }) + .then_with(|| a.cmp(&b)) + }); + + let nil_old_idx: Option = tree + .atoms + .iter() + .position(|&a| tree.allocator.atom_len(a) == 0) + .map(|i| i as i32); + + let sorted_no_nil: Vec = sorted + .iter() + .filter(|&&old_idx| Some(old_idx as i32) != nil_old_idx) + .copied() + .collect(); + + let mut atom_remap = HashMap::with_capacity(sorted_no_nil.len()); + for (new_idx, &old_idx) in sorted_no_nil.iter().enumerate() { + atom_remap.insert(old_idx as i32, new_idx as i32); + } + + (sorted_no_nil, atom_remap, nil_old_idx) +} + impl SerializerState { - /// Intern the tree, compute reference counts, sort atoms, build remapping. pub fn new(allocator: &Allocator, node: NodePtr) -> Result { let tree = intern_tree(allocator, node)?; @@ -29,8 +97,14 @@ impl SerializerState { return Err(EvalErr::SerializationError); } - let (atom_to_index, pair_to_index) = tree.node_indices(); - let atom_count = tree.atoms.len(); + let mut atom_to_index = HashMap::with_capacity(tree.atoms.len()); + for (i, &atom) in tree.atoms.iter().enumerate() { + atom_to_index.insert(atom, i as i32); + } + let mut pair_to_index = HashMap::with_capacity(tree.pairs.len()); + for (i, &pair) in tree.pairs.iter().enumerate() { + pair_to_index.insert(pair, -(i as i32 + 1)); + } let node_to_index = |n: NodePtr| -> i32 { if let Some(&idx) = atom_to_index.get(&n) { @@ -41,58 +115,8 @@ impl SerializerState { }; let root_index = node_to_index(tree.root); - - // Reference counts - let mut atom_ref_count = vec![0u32; atom_count]; - if root_index >= 0 { - atom_ref_count[root_index as usize] += 1; - } - for &pair_node in &tree.pairs { - let (left, right) = match tree.allocator.sexp(pair_node) { - SExp::Pair(l, r) => (l, r), - _ => unreachable!(), - }; - for child in [left, right] { - let idx = node_to_index(child); - if idx >= 0 { - atom_ref_count[idx as usize] += 1; - } - } - } - - // Sort: reused-first, then by frequency, then shorter - let mut sorted_atom_indices: Vec = (0..atom_count).collect(); - sorted_atom_indices.sort_by(|&a, &b| { - let a_reused = atom_ref_count[a] > 1; - let b_reused = atom_ref_count[b] > 1; - b_reused - .cmp(&a_reused) - .then_with(|| atom_ref_count[b].cmp(&atom_ref_count[a])) - .then_with(|| { - tree.allocator - .atom_len(tree.atoms[a]) - .cmp(&tree.allocator.atom_len(tree.atoms[b])) - }) - .then_with(|| a.cmp(&b)) - }); - - // Nil gets dedicated opcode 0 — exclude from atom table - let nil_old_idx: Option = tree - .atoms - .iter() - .position(|&a| tree.allocator.atom_len(a) == 0) - .map(|i| i as i32); - - let sorted_no_nil: Vec = sorted_atom_indices - .iter() - .filter(|&&old_idx| Some(old_idx as i32) != nil_old_idx) - .copied() - .collect(); - - let mut atom_remap: HashMap = HashMap::new(); - for (new_idx, &old_idx) in sorted_no_nil.iter().enumerate() { - atom_remap.insert(old_idx as i32, new_idx as i32); - } + let ref_counts = atom_ref_counts(&tree, &node_to_index, root_index); + let (sorted_no_nil, atom_remap, nil_old_idx) = sort_atoms(&tree, &ref_counts); let pairs: Vec<(i32, i32)> = tree .pairs @@ -152,93 +176,174 @@ pub(super) fn write_atom_table( Ok(()) } -/// Serialize a CLVM node using the 2026 format. -/// -/// Atoms are sorted by reference count so frequently-used atoms land in -/// shorter varint buckets. Pairs are traversed left-first (always emits -/// opcode `1`). For pair-ordering optimization, see -/// [`serialize_2026_pair_optimized`](super::serialize_2026_pair_optimized). -pub fn serialize_2026_to_stream( - allocator: &Allocator, - node: NodePtr, - writer: &mut W, -) -> Result<()> { - let state = SerializerState::new(allocator, node)?; - - write_atom_table(writer, &state.tree, &state.sorted_no_nil)?; - - let pair_count = state.tree.pairs.len(); - if pair_count == 0 { - write_varint(writer, 1)?; +/// Walk the interned pair tree under `strategy`, emitting an instruction +/// stream. Only the visit order at each pair varies across strategies. +pub(super) fn emit_instructions( + state: &SerializerState, + strategy: &S, +) -> Vec { + if state.tree.pairs.is_empty() { + let mut instructions = Vec::with_capacity(1); if Some(state.root_index) == state.nil_old_idx { - write_varint(writer, 0)?; + instructions.push(0); } else { - write_varint(writer, state.atom_remap[&state.root_index] as i64 + 2)?; - } - } else { - enum Op { - Build(i32), - Cons(i32), + instructions.push(state.atom_remap[&state.root_index] as i64 + 2); } + return instructions; + } - let mut work_stack: Vec = vec![Op::Build(state.root_index)]; - let mut construction_order: HashMap = HashMap::new(); - let mut instructions: Vec = Vec::new(); + enum Op { + Build(i32, C), + Cons(i32, Direction), + } - while let Some(op) = work_stack.pop() { - match op { - Op::Cons(pi) => { - instructions.push(1); - construction_order.insert(pi, construction_order.len() as i32); - } - Op::Build(idx) => { - if idx >= 0 { - if Some(idx) == state.nil_old_idx { - instructions.push(0); - } else { - instructions.push(state.atom_remap[&idx] as i64 + 2); - } - } else if let Some(&ci) = construction_order.get(&idx) { - instructions.push(-(ci as i64 + 2)); + let mut work_stack: Vec> = + vec![Op::Build(state.root_index, strategy.root_ctx(state))]; + let mut construction_order: HashMap = HashMap::new(); + let mut instructions: Vec = Vec::new(); + + while let Some(op) = work_stack.pop() { + match op { + Op::Cons(pi, dir) => { + instructions.push(dir.cons_opcode()); + construction_order.insert(pi, construction_order.len() as i32); + } + Op::Build(idx, ctx) => { + if idx >= 0 { + if Some(idx) == state.nil_old_idx { + instructions.push(0); } else { - let pi = (-idx - 1) as usize; - let (left, right) = state.pairs[pi]; - work_stack.push(Op::Cons(idx)); - work_stack.push(Op::Build(right)); - work_stack.push(Op::Build(left)); + instructions.push(state.atom_remap[&idx] as i64 + 2); + } + } else if let Some(&ci) = construction_order.get(&idx) { + instructions.push(-(ci as i64 + 2)); + } else { + let pi = (-idx - 1) as usize; + let (left, right) = state.pairs[pi]; + let (dir, l_ctx, r_ctx) = strategy.decide(state, pi, ctx); + work_stack.push(Op::Cons(idx, dir)); + match dir { + Direction::LeftFirst => { + work_stack.push(Op::Build(right, r_ctx)); + work_stack.push(Op::Build(left, l_ctx)); + } + Direction::RightFirst => { + work_stack.push(Op::Build(left, l_ctx)); + work_stack.push(Op::Build(right, r_ctx)); + } } } } } + } - write_varint(writer, instructions.len() as i64)?; - for inst in instructions { - write_varint(writer, inst)?; - } + instructions +} + +/// Write `state` to `writer` using `strategy` for pair visit order. +pub(super) fn serialize_with_strategy( + state: &SerializerState, + strategy: &S, + writer: &mut W, +) -> Result<()> { + write_atom_table(writer, &state.tree, &state.sorted_no_nil)?; + let instructions = emit_instructions(state, strategy); + write_varint(writer, instructions.len() as i64)?; + for inst in instructions { + write_varint(writer, inst)?; } Ok(()) } +/// Debug-only: deserialize `bytes` and verify it equals `node`. Panics on mismatch. +#[cfg(debug_assertions)] +pub(super) fn debug_assert_roundtrip(allocator: &Allocator, node: NodePtr, bytes: &[u8]) { + use super::de::{DeserializeLimits, deserialize_2026}; + let mut probe = Allocator::new(); + let decoded = deserialize_2026(&mut probe, bytes, DeserializeLimits::default()) + .expect("serde_2026 self-check: produced bytes that fail to deserialize"); + assert!( + cross_allocator_eq(allocator, node, &probe, decoded), + "serde_2026 self-check: round-trip tree mismatch", + ); +} + +#[cfg(debug_assertions)] +fn cross_allocator_eq(a: &Allocator, na: NodePtr, b: &Allocator, nb: NodePtr) -> bool { + let mut stack = vec![(na, nb)]; + while let Some((x, y)) = stack.pop() { + match (a.sexp(x), b.sexp(y)) { + (SExp::Atom, SExp::Atom) => { + if a.atom(x).as_ref() != b.atom(y).as_ref() { + return false; + } + } + (SExp::Pair(xl, xr), SExp::Pair(yl, yr)) => { + stack.push((xr, yr)); + stack.push((xl, yl)); + } + _ => return false, + } + } + true +} + +// --- Public entry points --- + +use super::Compression; +use super::ser_optimized::DpOptimized; + +/// Serialize a CLVM node to the 2026 format. +pub fn serialize_2026_to_stream( + allocator: &Allocator, + node: NodePtr, + compression: Compression, + writer: &mut W, +) -> Result<()> { + let state = SerializerState::new(allocator, node)?; + match compression { + Compression::Fast => serialize_with_strategy(&state, &LeftFirst, writer), + Compression::Compact => { + let dp = DpOptimized::new(&state); + serialize_with_strategy(&state, &dp, writer) + } + } +} + /// Serialize a node using the 2026 format, returning bytes. -pub fn serialize_2026(allocator: &Allocator, node: NodePtr) -> Result> { +pub fn serialize_2026( + allocator: &Allocator, + node: NodePtr, + compression: Compression, +) -> Result> { let mut output = Vec::new(); - serialize_2026_to_stream(allocator, node, &mut output)?; + serialize_2026_to_stream(allocator, node, compression, &mut output)?; + #[cfg(debug_assertions)] + debug_assert_roundtrip(allocator, node, &output); Ok(output) } -/// Serialize with the magic prefix (`fd ff 32 30 32 36`). -/// This is the recommended wire format — use [`node_from_bytes_auto`](super::node_from_bytes_auto) -/// to deserialize. -pub fn node_to_bytes_serde_2026(allocator: &Allocator, node: NodePtr) -> Result> { - let raw = serialize_2026(allocator, node)?; - let mut out = Vec::with_capacity(super::MAGIC_PREFIX.len() + raw.len()); - out.extend_from_slice(&super::MAGIC_PREFIX); - out.extend_from_slice(&raw); +/// Serialize with the magic prefix. This is the recommended wire format. +pub fn node_to_bytes_serde_2026( + allocator: &Allocator, + node: NodePtr, + compression: Compression, +) -> Result> { + let mut out = Vec::new(); + out.extend_from_slice(&super::SERDE_2026_MAGIC_PREFIX); + serialize_2026_to_stream(allocator, node, compression, &mut out)?; Ok(out) } -/// Serialize without the magic prefix (for embedding inside a framing layer -/// that already carries its own header). -pub fn node_to_bytes_serde_2026_raw(allocator: &Allocator, node: NodePtr) -> Result> { - serialize_2026(allocator, node) +/// Serialize using a pseudorandom visit order seeded by `seed`. +/// +/// The output is valid 2026 format but not size-optimal. Intended for +/// fuzzing the deserializer's handling of mixed `cons_lr`/`cons_rl` opcodes. +pub fn serialize_2026_random(allocator: &Allocator, node: NodePtr, seed: u64) -> Result> { + let state = SerializerState::new(allocator, node)?; + let mut output = Vec::new(); + serialize_with_strategy(&state, &Random::new(seed), &mut output)?; + #[cfg(debug_assertions)] + debug_assert_roundtrip(allocator, node, &output); + Ok(output) } diff --git a/src/serde_2026/ser_optimized.rs b/src/serde_2026/ser_optimized.rs index 79c81da7..6f4376b8 100644 --- a/src/serde_2026/ser_optimized.rs +++ b/src/serde_2026/ser_optimized.rs @@ -1,214 +1,144 @@ -use std::collections::HashMap; -use std::io::Write; +use super::ser::SerializerState; +use super::strategy::{Direction, VisitStrategy}; -use crate::allocator::{Allocator, NodePtr, SExp}; -use crate::error::Result; +/// Tree-DP strategy: pick left-first vs right-first per pair to maximise the +/// number of pair back-references that fit in the 1-byte varint tier. +/// +/// Complexity: O(N x min(subtree_size, 64)) to build; O(1) per pair at +/// emit time. +pub(super) struct DpOptimized { + stsize: Vec, + go_left: Vec>, +} -use super::MAX_INDEX; -use super::ser::{SerializerState, write_atom_table}; -use super::varint::write_varint; +impl DpOptimized { + const TIER1_SLOTS: usize = 63; -/// Serialize with tree-DP-optimal left/right decisions. -/// -/// For each pair, computes the maximum savings achievable by allocating K -/// of its subtree's construction slots to the 1-byte varint tier (63 pair -/// slots). At each pair, compares left-first vs right-first and picks the -/// winner. Complexity: O(N x min(subtree_size, 64)). -/// -/// Output is valid for [`deserialize_2026`](super::deserialize_2026) — the -/// deserializer handles both `cons_lr` and `cons_rl` opcodes. -pub fn serialize_2026_pair_optimized_to_stream( - allocator: &Allocator, - node: NodePtr, - writer: &mut W, -) -> Result<()> { - let state = SerializerState::new(allocator, node)?; - if state.tree.atoms.len() > MAX_INDEX || state.tree.pairs.len() > MAX_INDEX { - return Err(crate::error::EvalErr::SerializationError); - } - let pair_count = state.tree.pairs.len(); + pub fn new(state: &SerializerState) -> Self { + let pair_count = state.tree.pairs.len(); - // Pair reference counts (the shared state only has atom ref counts) - let mut pair_ref_count = vec![0u32; pair_count]; - if state.root_index < 0 { - pair_ref_count[(-state.root_index - 1) as usize] += 1; - } - for &pair_node in &state.tree.pairs { - let (left, right) = match state.tree.allocator.sexp(pair_node) { - SExp::Pair(l, r) => (l, r), - _ => unreachable!(), - }; - for child in [left, right] { - let idx = if let Some(&ai) = state.tree.node_indices().0.get(&child) { - ai + let mut pair_ref_count = vec![0u32; pair_count]; + if state.root_index < 0 { + pair_ref_count[(-state.root_index - 1) as usize] += 1; + } + for &(left, right) in &state.pairs { + for idx in [left, right] { + if idx < 0 { + pair_ref_count[(-idx - 1) as usize] += 1; + } + } + } + + let mut stsize = vec![0usize; pair_count]; + let mut dp: Vec> = Vec::with_capacity(pair_count); + let mut go_left: Vec> = Vec::with_capacity(pair_count); + + for (i, &(left, right)) in state.pairs.iter().enumerate() { + let savings: u64 = if pair_ref_count[i] > 1 { + (pair_ref_count[i] - 1) as u64 + } else { + 0 + }; + + let l_size = if left < 0 { + stsize[(-left - 1) as usize] + } else { + 0 + }; + let r_size = if right < 0 { + stsize[(-right - 1) as usize] } else { - state.tree.node_indices().1[&child] + 0 + }; + let my_size = 1 + l_size + r_size; + stsize[i] = my_size; + + let max_k = my_size.min(Self::TIER1_SLOTS + 1); + let mut my_dp = vec![0u64; max_k + 1]; + let mut my_go = vec![true; max_k + 1]; + + let child_dp = |child: i32, budget: usize| -> u64 { + if child >= 0 { + return 0; + } + let ci = (-child - 1) as usize; + let arr = &dp[ci]; + arr[budget.min(arr.len() - 1)] }; - if idx < 0 { - pair_ref_count[(-idx - 1) as usize] += 1; + + for k in 1..=max_k { + let p_cheap = k >= my_size; + let cb = if p_cheap { k - 1 } else { k }; + + let l_lf = cb.min(l_size); + let r_lf = (cb - l_lf).min(r_size); + let val_lf = child_dp(left, l_lf) + child_dp(right, r_lf); + + let r_rf = cb.min(r_size); + let l_rf = (cb - r_rf).min(l_size); + let val_rf = child_dp(left, l_rf) + child_dp(right, r_rf); + + let p_sav = if p_cheap { savings } else { 0 }; + if val_lf >= val_rf { + my_dp[k] = p_sav + val_lf; + my_go[k] = true; + } else { + my_dp[k] = p_sav + val_rf; + my_go[k] = false; + } } + + dp.push(my_dp); + go_left.push(my_go); } - } - // Tree DP: optimal left/right decisions for tier-1 placement - const TIER1_SLOTS: usize = 63; + drop(dp); + Self { stsize, go_left } + } +} - let mut stsize = vec![0usize; pair_count]; - let mut dp: Vec> = Vec::with_capacity(pair_count); - let mut go_left: Vec> = Vec::with_capacity(pair_count); +impl VisitStrategy for DpOptimized { + type NodeCtx = usize; - for (i, &(left, right)) in state.pairs.iter().enumerate() { - let savings: u64 = if pair_ref_count[i] > 1 { - (pair_ref_count[i] - 1) as u64 + fn root_ctx(&self, state: &SerializerState) -> usize { + Self::TIER1_SLOTS.min(if state.root_index < 0 { + self.stsize[(-state.root_index - 1) as usize] } else { 0 - }; + }) + } + fn decide( + &self, + state: &SerializerState, + pair_idx: usize, + budget: usize, + ) -> (Direction, usize, usize) { + let (left, right) = state.pairs[pair_idx]; let l_size = if left < 0 { - stsize[(-left - 1) as usize] + self.stsize[(-left - 1) as usize] } else { 0 }; let r_size = if right < 0 { - stsize[(-right - 1) as usize] + self.stsize[(-right - 1) as usize] } else { 0 }; let my_size = 1 + l_size + r_size; - stsize[i] = my_size; - - let max_k = my_size.min(TIER1_SLOTS + 1); - let mut my_dp = vec![0u64; max_k + 1]; - let mut my_go = vec![true; max_k + 1]; - - let child_dp = |child: i32, budget: usize| -> u64 { - if child >= 0 { - return 0; - } - let ci = (-child - 1) as usize; - let arr = &dp[ci]; - arr[budget.min(arr.len() - 1)] - }; - - for k in 1..=max_k { - let p_cheap = k >= my_size; - let cb = if p_cheap { k - 1 } else { k }; - - let l_lf = cb.min(l_size); - let r_lf = (cb - l_lf).min(r_size); - let val_lf = child_dp(left, l_lf) + child_dp(right, r_lf); - - let r_rf = cb.min(r_size); - let l_rf = (cb - r_rf).min(l_size); - let val_rf = child_dp(left, l_rf) + child_dp(right, r_rf); - - let p_sav = if p_cheap { savings } else { 0 }; - if val_lf >= val_rf { - my_dp[k] = p_sav + val_lf; - my_go[k] = true; - } else { - my_dp[k] = p_sav + val_rf; - my_go[k] = false; - } - } - - dp.push(my_dp); - go_left.push(my_go); - } - write_atom_table(writer, &state.tree, &state.sorted_no_nil)?; + let k = budget.min(my_size).min(self.go_left[pair_idx].len() - 1); + let p_cheap = k >= my_size; + let cb = if p_cheap { k - 1 } else { k }; - if pair_count == 0 { - write_varint(writer, 1)?; - if Some(state.root_index) == state.nil_old_idx { - write_varint(writer, 0)?; + if self.go_left[pair_idx][k] { + let l_b = cb.min(l_size); + let r_b = (cb - l_b).min(r_size); + (Direction::LeftFirst, l_b, r_b) } else { - write_varint(writer, state.atom_remap[&state.root_index] as i64 + 2)?; - } - } else { - enum Op { - Build(i32, usize), - ConsLR(i32), - ConsRL(i32), - } - - let root_budget = TIER1_SLOTS.min(if state.root_index < 0 { - stsize[(-state.root_index - 1) as usize] - } else { - 0 - }); - - let mut work_stack: Vec = vec![Op::Build(state.root_index, root_budget)]; - let mut construction_order: HashMap = HashMap::new(); - let mut instructions: Vec = Vec::new(); - - while let Some(op) = work_stack.pop() { - match op { - Op::ConsLR(pi) => { - instructions.push(1); - construction_order.insert(pi, construction_order.len() as i32); - } - Op::ConsRL(pi) => { - instructions.push(-1); - construction_order.insert(pi, construction_order.len() as i32); - } - Op::Build(idx, budget) => { - if idx >= 0 { - if Some(idx) == state.nil_old_idx { - instructions.push(0); - } else { - instructions.push(state.atom_remap[&idx] as i64 + 2); - } - } else if let Some(&ci) = construction_order.get(&idx) { - instructions.push(-(ci as i64 + 2)); - } else { - let pi = (-idx - 1) as usize; - let (left, right) = state.pairs[pi]; - let l_size = if left < 0 { - stsize[(-left - 1) as usize] - } else { - 0 - }; - let r_size = if right < 0 { - stsize[(-right - 1) as usize] - } else { - 0 - }; - let my_size = 1 + l_size + r_size; - - let k = budget.min(my_size).min(go_left[pi].len() - 1); - let p_cheap = k >= my_size; - let cb = if p_cheap { k - 1 } else { k }; - - if go_left[pi][k] { - let l_b = cb.min(l_size); - let r_b = (cb - l_b).min(r_size); - work_stack.push(Op::ConsLR(idx)); - work_stack.push(Op::Build(right, r_b)); - work_stack.push(Op::Build(left, l_b)); - } else { - let r_b = cb.min(r_size); - let l_b = (cb - r_b).min(l_size); - work_stack.push(Op::ConsRL(idx)); - work_stack.push(Op::Build(left, l_b)); - work_stack.push(Op::Build(right, r_b)); - } - } - } - } - } - - write_varint(writer, instructions.len() as i64)?; - for inst in instructions { - write_varint(writer, inst)?; + let r_b = cb.min(r_size); + let l_b = (cb - r_b).min(l_size); + (Direction::RightFirst, l_b, r_b) } } - Ok(()) -} - -/// Serialize with pair-ordering optimization, returning bytes. -pub fn serialize_2026_pair_optimized(allocator: &Allocator, node: NodePtr) -> Result> { - let mut output = Vec::new(); - serialize_2026_pair_optimized_to_stream(allocator, node, &mut output)?; - Ok(output) } diff --git a/src/serde_2026/strategy.rs b/src/serde_2026/strategy.rs new file mode 100644 index 00000000..654770b5 --- /dev/null +++ b/src/serde_2026/strategy.rs @@ -0,0 +1,99 @@ +//! Visit-order strategies for the 2026 serializer. +//! +//! The serializer walks the interned pair tree and emits a stream of +//! instructions. At each pair, the strategy decides which child to visit +//! first (`LeftFirst` -> opcode `1`, `RightFirst` -> opcode `-1`) and may +//! thread a per-node context forward (e.g. a remaining DP budget). + +use super::ser::SerializerState; + +/// Which child to visit first at a pair. +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +pub enum Direction { + LeftFirst, + RightFirst, +} + +impl Direction { + pub(super) fn cons_opcode(self) -> i64 { + match self { + Direction::LeftFirst => 1, + Direction::RightFirst => -1, + } + } +} + +/// Pluggable visit-order strategy for `emit_instructions`. +/// +/// A strategy may carry its own precomputed tables (e.g. DP results) and +/// thread a per-node context (`NodeCtx`) through the traversal. +pub trait VisitStrategy { + /// Per-node context propagated down the tree. Use `()` if not needed. + type NodeCtx: Copy; + + /// Initial context for the root node. + fn root_ctx(&self, state: &SerializerState) -> Self::NodeCtx; + + /// Decide visit direction at `pair_idx` given the inherited context. + /// + /// Returns `(direction, left_ctx, right_ctx)`. + fn decide( + &self, + state: &SerializerState, + pair_idx: usize, + ctx: Self::NodeCtx, + ) -> (Direction, Self::NodeCtx, Self::NodeCtx); +} + +/// Always visit the left child first (opcode `1`). +pub struct LeftFirst; + +impl VisitStrategy for LeftFirst { + type NodeCtx = (); + + fn root_ctx(&self, _state: &SerializerState) -> Self::NodeCtx {} + + fn decide(&self, _state: &SerializerState, _pair_idx: usize, _ctx: ()) -> (Direction, (), ()) { + (Direction::LeftFirst, (), ()) + } +} + +/// Pseudorandom visit order. Useful for fuzzing — the output is valid +/// (round-trips through the deserializer) but unlikely to be optimal. +pub struct Random { + state: std::cell::Cell, +} + +impl Random { + pub fn new(seed: u64) -> Self { + let s = if seed == 0 { + 0x9E37_79B9_7F4A_7C15 + } else { + seed + }; + Self { + state: std::cell::Cell::new(s), + } + } +} + +impl VisitStrategy for Random { + type NodeCtx = (); + + fn root_ctx(&self, _state: &SerializerState) -> Self::NodeCtx {} + + fn decide(&self, _state: &SerializerState, _pair_idx: usize, _ctx: ()) -> (Direction, (), ()) { + let s = self + .state + .get() + .wrapping_mul(6364136223846793005) + .wrapping_add(1442695040888963407); + self.state.set(s); + let dir = if (s >> 33) & 1 == 0 { + Direction::LeftFirst + } else { + Direction::RightFirst + }; + (dir, (), ()) + } +} diff --git a/src/serde_2026/tests.rs b/src/serde_2026/tests.rs index 92be7964..a8b8ec3e 100644 --- a/src/serde_2026/tests.rs +++ b/src/serde_2026/tests.rs @@ -1,383 +1,41 @@ //! Tests for the 2026 serialization format. use super::{ - DeserializeLimits, MAGIC_PREFIX, deserialize_2026, node_from_bytes_auto, - node_to_bytes_serde_2026, node_to_bytes_serde_2026_raw, serialize_2026, + Compression, DeserializeLimits, SERDE_2026_MAGIC_PREFIX, deserialize_2026, + node_from_bytes_auto, node_to_bytes_serde_2026, serialize_2026, serialize_2026_random, serialized_length_serde_2026, }; -use crate::allocator::{Allocator, SExp}; +use crate::allocator::Allocator; use crate::serde::{node_from_bytes_backrefs, node_to_bytes}; use hex::FromHex; use rstest::rstest; -#[test] -fn test_roundtrip_simple_atom() { - let mut allocator = Allocator::new(); - let node = allocator.new_atom(b"hello").unwrap(); - - let serialized = serialize_2026(&allocator, node).unwrap(); - let mut new_allocator = Allocator::new(); - let deserialized = deserialize_2026( - &mut new_allocator, - &serialized, - DeserializeLimits::default(), - ) - .unwrap(); - - let original_atom = allocator.atom(node); - let deserialized_atom = new_allocator.atom(deserialized); - assert_eq!(original_atom.as_ref(), deserialized_atom.as_ref()); -} - -#[test] -fn test_roundtrip_simple_pair() { - let mut allocator = Allocator::new(); - let left = allocator.new_atom(b"left").unwrap(); - let right = allocator.new_atom(b"right").unwrap(); - let pair = allocator.new_pair(left, right).unwrap(); - - let serialized = serialize_2026(&allocator, pair).unwrap(); - let mut new_allocator = Allocator::new(); - let deserialized = deserialize_2026( - &mut new_allocator, - &serialized, - DeserializeLimits::default(), - ) - .unwrap(); - - // Check structure - match new_allocator.sexp(deserialized) { - SExp::Pair(l, r) => { - let left_atom = new_allocator.atom(l); - let right_atom = new_allocator.atom(r); - assert_eq!(left_atom.as_ref(), b"left"); - assert_eq!(right_atom.as_ref(), b"right"); - } - _ => panic!("Expected pair"), - } -} - -#[test] -fn test_empty_atom() { - let mut allocator = Allocator::new(); - let node = allocator.new_atom(b"").unwrap(); - - let serialized = serialize_2026(&allocator, node).unwrap(); - let mut new_allocator = Allocator::new(); - let deserialized = deserialize_2026( - &mut new_allocator, - &serialized, - DeserializeLimits::default(), - ) - .unwrap(); - - assert_eq!( - allocator.atom(node).as_ref(), - new_allocator.atom(deserialized).as_ref() - ); -} - -#[test] -fn test_multiple_atoms_same_length() { - let mut allocator = Allocator::new(); - let a1 = allocator.new_atom(b"AAA").unwrap(); - let a2 = allocator.new_atom(b"BBB").unwrap(); - let a3 = allocator.new_atom(b"CCC").unwrap(); - - // Create: (AAA . (BBB . CCC)) - let p1 = allocator.new_pair(a2, a3).unwrap(); - let root = allocator.new_pair(a1, p1).unwrap(); - - let serialized = serialize_2026(&allocator, root).unwrap(); - let mut new_allocator = Allocator::new(); - let deserialized = deserialize_2026( - &mut new_allocator, - &serialized, - DeserializeLimits::default(), - ) - .unwrap(); - - // Verify structure - match new_allocator.sexp(deserialized) { - SExp::Pair(left, right) => { - assert_eq!(new_allocator.atom(left).as_ref(), b"AAA"); - match new_allocator.sexp(right) { - SExp::Pair(left2, right2) => { - assert_eq!(new_allocator.atom(left2).as_ref(), b"BBB"); - assert_eq!(new_allocator.atom(right2).as_ref(), b"CCC"); - } - _ => panic!("Expected pair"), - } - } - _ => panic!("Expected pair"), - } -} - -#[test] -fn test_deduplication() { - let mut allocator = Allocator::new(); - let a = allocator.new_atom(b"AAA").unwrap(); - let b = allocator.new_atom(b"BBB").unwrap(); - let c = allocator.new_atom(b"CCC").unwrap(); - - // Create: ((AAA . BBB) . (CCC . AAA)) - // AAA appears twice and should be deduplicated - let p1 = allocator.new_pair(a, b).unwrap(); - let p2 = allocator.new_pair(c, a).unwrap(); - let root = allocator.new_pair(p1, p2).unwrap(); - - let serialized = serialize_2026(&allocator, root).unwrap(); - - // The serialization should be smaller due to deduplication - // We expect: 3 unique atoms (AAA, BBB, CCC) + structure - println!("Deduplication test: {} bytes", serialized.len()); - - let mut new_allocator = Allocator::new(); - let deserialized = deserialize_2026( - &mut new_allocator, - &serialized, - DeserializeLimits::default(), - ) - .unwrap(); - - // Verify the structure is correct - match new_allocator.sexp(deserialized) { - SExp::Pair(left, right) => { - // left should be (AAA . BBB) - match new_allocator.sexp(left) { - SExp::Pair(l1, r1) => { - assert_eq!(new_allocator.atom(l1).as_ref(), b"AAA"); - assert_eq!(new_allocator.atom(r1).as_ref(), b"BBB"); - } - _ => panic!("Expected pair for left"), - } - // right should be (CCC . AAA) - match new_allocator.sexp(right) { - SExp::Pair(l2, r2) => { - assert_eq!(new_allocator.atom(l2).as_ref(), b"CCC"); - assert_eq!(new_allocator.atom(r2).as_ref(), b"AAA"); - } - _ => panic!("Expected pair for right"), - } - } - _ => panic!("Expected pair at root"), - } -} - -#[test] -fn test_list_structure() { - let mut allocator = Allocator::new(); - let nil = allocator.nil(); - - // Create list: (1 2 3 4 5) - let mut result = nil; - for i in (1..=5).rev() { - let atom = allocator.new_atom(&[i]).unwrap(); - result = allocator.new_pair(atom, result).unwrap(); - } - - let serialized = serialize_2026(&allocator, result).unwrap(); - println!("List (1 2 3 4 5): {} bytes", serialized.len()); - - let mut new_allocator = Allocator::new(); - let deserialized = deserialize_2026( - &mut new_allocator, - &serialized, - DeserializeLimits::default(), - ) - .unwrap(); - - // Verify list elements - let mut current = deserialized; - for expected in 1..=5 { - match new_allocator.sexp(current) { - SExp::Pair(left, right) => { - assert_eq!(new_allocator.atom(left).as_ref(), &[expected]); - current = right; - } - _ => panic!("Expected pair"), - } - } - // Should end with nil - assert_eq!(new_allocator.atom(current).as_ref(), b""); -} - -#[test] -fn test_deeply_nested() { - let mut allocator = Allocator::new(); - let leaf = allocator.new_atom(b"leaf").unwrap(); - - // Create deeply nested structure: (leaf . (leaf . (leaf . ... ))) - let mut result = leaf; - for _ in 0..100 { - result = allocator.new_pair(leaf, result).unwrap(); - } - - let serialized = serialize_2026(&allocator, result).unwrap(); - println!("Deeply nested (depth 100): {} bytes", serialized.len()); - - let mut new_allocator = Allocator::new(); - let deserialized = deserialize_2026( - &mut new_allocator, - &serialized, - DeserializeLimits::default(), - ) - .unwrap(); - - // Verify depth - let mut current = deserialized; - let mut depth = 0; - loop { - match new_allocator.sexp(current) { - SExp::Pair(left, right) => { - assert_eq!(new_allocator.atom(left).as_ref(), b"leaf"); - depth += 1; - current = right; - } - SExp::Atom => { - assert_eq!(new_allocator.atom(current).as_ref(), b"leaf"); - break; - } - } - } - assert_eq!(depth, 100); -} - -#[test] -fn test_various_atom_sizes() { - let mut allocator = Allocator::new(); - - // Create atoms of various sizes - let empty = allocator.new_atom(b"").unwrap(); - let small = allocator.new_atom(b"x").unwrap(); - let medium = allocator.new_atom(&[42; 100]).unwrap(); - let large = allocator.new_atom(&[7; 1000]).unwrap(); - - // Build structure - let p1 = allocator.new_pair(empty, small).unwrap(); - let p2 = allocator.new_pair(medium, large).unwrap(); - let root = allocator.new_pair(p1, p2).unwrap(); - - let serialized = serialize_2026(&allocator, root).unwrap(); - println!("Various sizes: {} bytes", serialized.len()); - - let mut new_allocator = Allocator::new(); - let deserialized = deserialize_2026( - &mut new_allocator, - &serialized, - DeserializeLimits::default(), - ) - .unwrap(); - - // Verify structure - match new_allocator.sexp(deserialized) { - SExp::Pair(left, right) => { - match new_allocator.sexp(left) { - SExp::Pair(l1, r1) => { - assert_eq!(new_allocator.atom(l1).as_ref(), b""); - assert_eq!(new_allocator.atom(r1).as_ref(), b"x"); - } - _ => panic!("Expected pair"), - } - match new_allocator.sexp(right) { - SExp::Pair(l2, r2) => { - assert_eq!(new_allocator.atom(l2).as_ref().len(), 100); - assert_eq!(new_allocator.atom(r2).as_ref().len(), 1000); - } - _ => panic!("Expected pair"), - } - } - _ => panic!("Expected pair"), - } -} +// --------------------------------------------------------------------------- +// Double-round-trip, all strategies, full corpus +// --------------------------------------------------------------------------- -/// Round-trip through 2026 format: deserialize from legacy hex -> serialize_2026 -> deserialize_2026 -> verify via node_to_bytes. -/// Mirrors the structures tested in serde/test.rs test_round_trip. +/// For each legacy-hex tree: serialize with Fast, Compact, and Random, then +/// deserialize each, re-serialize, and assert identical bytes (idempotency) +/// plus tree equivalence to the original. #[rstest] +#[case("00")] // nil +#[case("80")] // empty atom (canonical nil) #[case("01")] // 1 +#[case("0a")] // 10 +#[case("8568656c6c6f")] // 5-byte atom "hello" +#[case("8b68656c6c6f20776f726c64")] // 11-byte atom "hello world" +#[case( + "b8400102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465" +)] // 64-byte atom +#[case("ff0100")] // (1 . nil) +#[case("ff0000")] // (nil . nil) +#[case("ff0101")] // (1 . 1) +#[case("ff010a")] // (1 . 10) #[case("ff83666f6f83626172")] // (foo . bar) #[case("ff83666f6fff8362617280")] // (foo bar) #[case("ffff0102ff0304")] // ((1 . 2) . (3 . 4)) #[case("ff01ff02ff03ff04ff05ff0680")] // (1 2 3 4 5 6) #[case("ff83666f6ffe02")] // (foo . foo) -#[case("ff846c6f6e67ff86737472696e67ff826f66fffe0bff8474657874fffe1780")] // (long string of text) -#[case("ff83666f6ffffe01fffe01fffe01fffe01fffe01fffe0180")] // (foo (foo) ((foo) foo) ...) - parse stack backrefs -fn test_round_trip_from_legacy(#[case] hex: &str) { - let bytes = Vec::from_hex(hex).unwrap(); - let mut allocator = Allocator::new(); - let node = node_from_bytes_backrefs(&mut allocator, &bytes).unwrap(); - let canonical = node_to_bytes(&allocator, node).unwrap(); - - let serialized = serialize_2026(&allocator, node).unwrap(); - let mut new_allocator = Allocator::new(); - let deserialized = deserialize_2026( - &mut new_allocator, - &serialized, - DeserializeLimits::default(), - ) - .unwrap(); - let round_trip_canonical = node_to_bytes(&new_allocator, deserialized).unwrap(); - - assert_eq!( - canonical, round_trip_canonical, - "Round-trip mismatch for hex: {}", - hex - ); -} - -#[test] -fn test_nil_roundtrip() { - let allocator = Allocator::new(); - let nil = allocator.nil(); - - let serialized = serialize_2026(&allocator, nil).unwrap(); - let mut new_allocator = Allocator::new(); - let deserialized = deserialize_2026( - &mut new_allocator, - &serialized, - DeserializeLimits::default(), - ) - .unwrap(); - - assert_eq!(new_allocator.atom(deserialized).as_ref(), b""); -} - -#[test] -fn test_round_trip_double() { - // Serialize -> deserialize -> serialize again -> deserialize again; both final forms must match. - let mut allocator = Allocator::new(); - let node = node_from_bytes_backrefs(&mut allocator, &Vec::from_hex("ff01ff02ff0300").unwrap()) - .unwrap(); - - let serialized1 = serialize_2026(&allocator, node).unwrap(); - let mut allocator2 = Allocator::new(); - let node2 = - deserialize_2026(&mut allocator2, &serialized1, DeserializeLimits::default()).unwrap(); - let serialized2 = serialize_2026(&allocator2, node2).unwrap(); - assert_eq!( - serialized1, serialized2, - "Double round-trip should produce identical bytes" - ); -} - -#[test] -fn test_deserialize_rejects_malformed_counts() { - let mut allocator = Allocator::new(); - - // Negative atom_lengths_count (0x7f = -1 in single-byte varint) would have caused huge loop - assert!(deserialize_2026(&mut allocator, &[0x7f], DeserializeLimits::default()).is_err()); - - // 0xFF is invalid varint prefix - assert!(deserialize_2026(&mut allocator, &[0xff], DeserializeLimits::default()).is_err()); -} - -/// Round-trip through 2026 format for all structures from serde/test_intern.rs. -/// Verifies 2026 format correctly handles the same structures the intern module is tested with. -#[rstest] -#[case("01")] // Simple atom 1 -#[case("0a")] // Atom 10 -#[case("ff0101")] // (1 . 1) -#[case("ff010a")] // (1 . 10) #[case("ff01ff0101")] // (1 . (1 . 1)) #[case("ffff2a2a2a")] // ((42 . 42) . 42) #[case("ff01ff02ff0301")] // (1 . (2 . (3 . 1))) @@ -388,267 +46,247 @@ fn test_deserialize_rejects_malformed_counts() { #[case("ffff0102ffff0102ff0102")] // ((1 . 2) . ((1 . 2) . (1 . 2))) #[case("ffff0102ffff010200")] // ((1 . 2) . ((1 . 2) . nil)) #[case("ffff010aff010a")] // ((1 . 10) . (1 . 10)) -#[case("00")] // nil -#[case("ff0100")] // (1 . nil) -#[case("ff0000")] // (nil . nil) #[case("ff01ff01ff0100")] // (1 . (1 . (1 . nil))) #[case("ff01ff01ff0101")] // (1 . (1 . (1 . 1))) #[case("ffff01ff0203ff01ff0203")] // ((1.(2.3)) . (1.(2.3))) #[case("ffff0102ffff0102ffff010200")] // ((1.2) . ((1.2) . ((1.2) . nil))) -fn test_round_trip_intern_structures(#[case] hex: &str) { - let bytes = Vec::from_hex(hex.trim().replace([' ', '\n'], "")).unwrap(); +#[case("ff846c6f6e67ff86737472696e67ff826f66fffe0bff8474657874fffe1780")] // (long string of text) +#[case("ff83666f6ffffe01fffe01fffe01fffe01fffe01fffe0180")] // backrefs chain +fn test_round_trip(#[case] hex: &str) { + let bytes = Vec::from_hex(hex).unwrap(); let mut allocator = Allocator::new(); let node = node_from_bytes_backrefs(&mut allocator, &bytes).unwrap(); let canonical = node_to_bytes(&allocator, node).unwrap(); + let limits = DeserializeLimits::default(); + + let blobs: Vec<(&str, Vec)> = vec![ + ( + "fast", + serialize_2026(&allocator, node, Compression::Fast).unwrap(), + ), + ( + "compact", + serialize_2026(&allocator, node, Compression::Compact).unwrap(), + ), + ( + "random", + serialize_2026_random(&allocator, node, 12345).unwrap(), + ), + ]; + + for (label, blob) in &blobs { + // First trip: tree equivalence + let mut a2 = Allocator::new(); + let n2 = deserialize_2026(&mut a2, blob, limits).unwrap(); + assert_eq!( + node_to_bytes(&a2, n2).unwrap(), + canonical, + "{label}: tree mismatch for {hex}" + ); + + // Second trip: serialization idempotency (same compression level) + let blob2 = if *label == "random" { + serialize_2026_random(&a2, n2, 12345).unwrap() + } else { + let c = if *label == "fast" { + Compression::Fast + } else { + Compression::Compact + }; + serialize_2026(&a2, n2, c).unwrap() + }; + assert_eq!( + blob, &blob2, + "{label}: double round-trip mismatch for {hex}" + ); + } - let serialized = serialize_2026(&allocator, node).unwrap(); - let mut new_allocator = Allocator::new(); - let deserialized = deserialize_2026( - &mut new_allocator, - &serialized, - DeserializeLimits::default(), - ) - .unwrap(); - let round_trip_canonical = node_to_bytes(&new_allocator, deserialized).unwrap(); + // Compact must never be larger than Fast + assert!( + blobs[1].1.len() <= blobs[0].1.len(), + "compact ({}) > fast ({}) for {hex}", + blobs[1].1.len(), + blobs[0].1.len() + ); +} - assert_eq!( - canonical, round_trip_canonical, - "Round-trip mismatch for hex: {}", - hex +#[test] +fn test_random_different_seeds_diverge() { + let mut allocator = Allocator::new(); + let a = allocator.new_atom(b"shared").unwrap(); + let b = allocator.new_atom(b"other").unwrap(); + let p = allocator.new_pair(a, b).unwrap(); + let root = allocator.new_pair(p, a).unwrap(); + assert_ne!( + serialize_2026_random(&allocator, root, 1).unwrap(), + serialize_2026_random(&allocator, root, 2).unwrap(), ); } // --------------------------------------------------------------------------- -// Magic prefix and auto-detection tests +// Malformed input rejection // --------------------------------------------------------------------------- -#[test] -fn test_magic_prefix_value() { - assert_eq!(MAGIC_PREFIX, [0xfd, 0xff, b'2', b'0', b'2', b'6']); -} - -#[test] -fn test_node_to_bytes_serde_2026_has_prefix() { +#[rstest] +#[case(&[0x7f], "negative atom group count")] +#[case(&[0xff], "0xFF invalid varint prefix")] +#[case(&[0x80], "truncated multibyte varint")] +#[case(&[0x80, 0x80], "truncated 3-byte varint")] +#[case(&[], "empty input")] +#[case(&[0x01, 0x01, 0x41], "valid atom table, truncated before instruction count")] +#[case(&[0x01, 0x01, 0x41, 0x02, 0x02], "instruction count=2 but only 1 instruction follows")] +#[case(&[0x01, 0x01, 0x41, 0x01, 0x70], "instruction refs atom index 110, only 1 exists")] +#[case(&[0x01, 0x01, 0x41, 0x00], "zero instructions with non-empty atom table")] +#[case(&[0x00, 0x00], "zero groups and zero instructions")] +#[case(&[0x02, 0x01, 0x41, 0x01, 0x42], "two groups claimed, only one provided")] +fn test_deserialize_rejects_malformed(#[case] data: &[u8], #[case] _desc: &str) { let mut allocator = Allocator::new(); - let node = allocator.new_atom(b"hello").unwrap(); - let bytes = node_to_bytes_serde_2026(&allocator, node).unwrap(); assert!( - bytes.starts_with(&MAGIC_PREFIX), - "node_to_bytes_serde_2026 must start with the magic prefix" + deserialize_2026(&mut allocator, data, DeserializeLimits::default()).is_err(), + "should reject: {_desc}" ); } +// --------------------------------------------------------------------------- +// Magic prefix and auto-detection +// --------------------------------------------------------------------------- + #[test] -fn test_node_to_bytes_serde_2026_raw_no_prefix() { - let mut allocator = Allocator::new(); - let node = allocator.new_atom(b"hello").unwrap(); - let raw = node_to_bytes_serde_2026_raw(&allocator, node).unwrap(); - assert!( - !raw.starts_with(&MAGIC_PREFIX), - "raw variant must NOT start with the magic prefix" +fn test_magic_prefix() { + assert_eq!( + SERDE_2026_MAGIC_PREFIX, + [0xfd, 0xff, b'2', b'0', b'2', b'6'] ); - let expected = serialize_2026(&allocator, node).unwrap(); - assert_eq!(raw, expected); -} -#[test] -fn test_prefixed_and_raw_relationship() { let mut allocator = Allocator::new(); - let left = allocator.new_atom(b"left").unwrap(); - let right = allocator.new_atom(b"right").unwrap(); - let pair = allocator.new_pair(left, right).unwrap(); - - let prefixed = node_to_bytes_serde_2026(&allocator, pair).unwrap(); - let raw = node_to_bytes_serde_2026_raw(&allocator, pair).unwrap(); - - assert_eq!(&prefixed[..MAGIC_PREFIX.len()], &MAGIC_PREFIX); - assert_eq!(&prefixed[MAGIC_PREFIX.len()..], raw.as_slice()); + let node = allocator.new_atom(b"hello").unwrap(); + let bytes = node_to_bytes_serde_2026(&allocator, node, Compression::default()).unwrap(); + assert!(bytes.starts_with(&SERDE_2026_MAGIC_PREFIX)); } -/// Serialize a node to classic bytes, then round-trip through -/// `node_from_bytes_auto` with all three input formats and compare results. fn check_auto(node_alloc: &Allocator, n: crate::allocator::NodePtr) { let classic = node_to_bytes(node_alloc, n).unwrap(); - // classic input let mut a = Allocator::new(); let decoded = node_from_bytes_auto(&mut a, &classic, DeserializeLimits::default()).unwrap(); assert_eq!( node_to_bytes(&a, decoded).unwrap(), classic, - "classic round-trip via auto" + "classic via auto" ); - // backrefs input (superset of classic) let backrefs = crate::serde::node_to_bytes_backrefs(node_alloc, n).unwrap(); let mut a2 = Allocator::new(); let decoded2 = node_from_bytes_auto(&mut a2, &backrefs, DeserializeLimits::default()).unwrap(); assert_eq!( node_to_bytes(&a2, decoded2).unwrap(), classic, - "backrefs round-trip via auto" + "backrefs via auto" ); - // serde_2026 prefixed input - let prefixed = node_to_bytes_serde_2026(node_alloc, n).unwrap(); + let prefixed = node_to_bytes_serde_2026(node_alloc, n, Compression::default()).unwrap(); let mut a3 = Allocator::new(); let decoded3 = node_from_bytes_auto(&mut a3, &prefixed, DeserializeLimits::default()).unwrap(); assert_eq!( node_to_bytes(&a3, decoded3).unwrap(), classic, - "serde_2026 round-trip via auto" + "serde_2026 via auto" ); } #[test] -fn test_auto_detect_atom() { - let mut allocator = Allocator::new(); - let node = allocator.new_atom(b"hello world").unwrap(); - check_auto(&allocator, node); -} - -#[test] -fn test_auto_detect_nil() { - let allocator = Allocator::new(); - check_auto(&allocator, allocator.nil()); -} - -#[test] -fn test_auto_detect_pair() { - let mut allocator = Allocator::new(); - let a = allocator.new_atom(b"a").unwrap(); - let b_atom = allocator.new_atom(b"b").unwrap(); - let pair = allocator.new_pair(a, b_atom).unwrap(); - check_auto(&allocator, pair); +fn test_auto_detect() { + let mut a = Allocator::new(); + // atom + let atom = a.new_atom(b"hello world").unwrap(); + check_auto(&a, atom); + // nil + check_auto(&a, a.nil()); + // pair + let x = a.new_atom(b"a").unwrap(); + let y = a.new_atom(b"b").unwrap(); + let pair = a.new_pair(x, y).unwrap(); + check_auto(&a, pair); + // nested list + let nil = a.nil(); + let t1 = a.new_pair(y, nil).unwrap(); + let t2 = a.new_pair(x, t1).unwrap(); + check_auto(&a, t2); + // shared subtree + let shared = a.new_atom(b"shared").unwrap(); + let shared_pair = a.new_pair(shared, shared).unwrap(); + check_auto(&a, shared_pair); } #[test] -fn test_auto_detect_nested_list() { +fn test_auto_detect_rejects_empty() { let mut allocator = Allocator::new(); - let nil = allocator.nil(); - let one = allocator.new_atom(b"\x01").unwrap(); - let two = allocator.new_atom(b"\x02").unwrap(); - let three = allocator.new_atom(b"\x03").unwrap(); - let t1 = allocator.new_pair(three, nil).unwrap(); - let t2 = allocator.new_pair(two, t1).unwrap(); - let list = allocator.new_pair(one, t2).unwrap(); - check_auto(&allocator, list); + assert!(node_from_bytes_auto(&mut allocator, b"", DeserializeLimits::default()).is_err()); } #[test] -fn test_auto_detect_shared_subtree() { - let mut allocator = Allocator::new(); - let x = allocator.new_atom(b"shared").unwrap(); - let pair = allocator.new_pair(x, x).unwrap(); - check_auto(&allocator, pair); +fn test_auto_detect_classic_single_byte() { + let mut a = Allocator::new(); + let node = node_from_bytes_auto(&mut a, &[0x01], DeserializeLimits::default()).unwrap(); + assert_eq!(a.atom(node).as_ref(), b"\x01"); } #[test] -fn test_auto_detect_classic_format_explicitly() { +fn test_backrefs_decoder_rejects_serde_2026() { let mut allocator = Allocator::new(); - let node = allocator.new_atom(b"test").unwrap(); - let classic_bytes = node_to_bytes(&allocator, node).unwrap(); - assert!(!classic_bytes.starts_with(&MAGIC_PREFIX)); - + let node = allocator.new_atom(b"hello").unwrap(); + let prefixed = node_to_bytes_serde_2026(&allocator, node, Compression::default()).unwrap(); let mut a2 = Allocator::new(); - let decoded = - node_from_bytes_auto(&mut a2, &classic_bytes, DeserializeLimits::default()).unwrap(); - assert_eq!(a2.atom(decoded).as_ref(), b"test"); + assert!(node_from_bytes_backrefs(&mut a2, &prefixed).is_err()); } -#[test] -fn test_auto_detect_serde_2026_prefixed() { - let mut allocator = Allocator::new(); - let node = allocator.new_atom(b"serde2026").unwrap(); - let prefixed = node_to_bytes_serde_2026(&allocator, node).unwrap(); - assert!(prefixed.starts_with(&MAGIC_PREFIX)); - - let mut a2 = Allocator::new(); - let decoded = node_from_bytes_auto(&mut a2, &prefixed, DeserializeLimits::default()).unwrap(); - assert_eq!(a2.atom(decoded).as_ref(), b"serde2026"); -} +// --------------------------------------------------------------------------- +// serialized_length_serde_2026 +// --------------------------------------------------------------------------- #[test] -fn test_legacy_backrefs_decoder_rejects_prefixed_2026() { +fn test_serialized_length() { let mut allocator = Allocator::new(); - let node = allocator.new_atom(b"hello").unwrap(); - let prefixed = node_to_bytes_serde_2026(&allocator, node).unwrap(); - - let mut a2 = Allocator::new(); - assert!( - node_from_bytes_backrefs(&mut a2, &prefixed).is_err(), - "legacy/backrefs decode path should fail fast on serde_2026 magic" - ); -} -#[test] -fn test_serialized_length_serde_2026_atom() { - let mut allocator = Allocator::new(); + // atom let node = allocator.new_atom(b"hello").unwrap(); - let bytes = node_to_bytes_serde_2026(&allocator, node).unwrap(); + let bytes = node_to_bytes_serde_2026(&allocator, node, Compression::default()).unwrap(); assert_eq!( serialized_length_serde_2026(&bytes).unwrap(), bytes.len() as u64 ); -} -#[test] -fn test_serialized_length_serde_2026_pair() { - let mut allocator = Allocator::new(); + // pair let left = allocator.new_atom(b"left").unwrap(); let right = allocator.new_atom(b"right").unwrap(); let pair = allocator.new_pair(left, right).unwrap(); - let bytes = node_to_bytes_serde_2026(&allocator, pair).unwrap(); + let bytes = node_to_bytes_serde_2026(&allocator, pair, Compression::default()).unwrap(); assert_eq!( serialized_length_serde_2026(&bytes).unwrap(), bytes.len() as u64 ); -} - -#[test] -fn test_serialized_length_serde_2026_with_trailing_data() { - let mut allocator = Allocator::new(); - let node = allocator.new_atom(b"test").unwrap(); - let bytes = node_to_bytes_serde_2026(&allocator, node).unwrap(); - let mut padded = bytes.clone(); - padded.extend_from_slice(b"trailing garbage"); - assert_eq!( - serialized_length_serde_2026(&padded).unwrap(), - bytes.len() as u64 - ); -} -#[test] -fn test_serialized_length_serde_2026_complex_tree() { - let mut allocator = Allocator::new(); + // complex tree with shared subtrees let a = allocator.new_atom(b"shared").unwrap(); let p1 = allocator.new_pair(a, a).unwrap(); let b = allocator.new_atom(b"other").unwrap(); let p2 = allocator.new_pair(p1, b).unwrap(); let root = allocator.new_pair(p2, p1).unwrap(); - let bytes = node_to_bytes_serde_2026(&allocator, root).unwrap(); + let bytes = node_to_bytes_serde_2026(&allocator, root, Compression::default()).unwrap(); assert_eq!( serialized_length_serde_2026(&bytes).unwrap(), bytes.len() as u64 ); -} -#[test] -fn test_serialized_length_serde_2026_rejects_non_prefixed() { + // with trailing data — length should exclude it + let mut padded = bytes.clone(); + padded.extend_from_slice(b"trailing garbage"); + assert_eq!( + serialized_length_serde_2026(&padded).unwrap(), + bytes.len() as u64 + ); + + // rejects non-prefixed / empty assert!(serialized_length_serde_2026(b"\x80").is_err()); assert!(serialized_length_serde_2026(b"").is_err()); } - -#[test] -fn test_auto_detect_rejects_empty_input() { - let mut allocator = Allocator::new(); - assert!(node_from_bytes_auto(&mut allocator, b"", DeserializeLimits::default()).is_err()); -} - -#[test] -fn test_node_from_bytes_auto_classic_single_byte() { - let classic = vec![0x01u8]; - let mut a = Allocator::new(); - let node = node_from_bytes_auto(&mut a, &classic, DeserializeLimits::default()).unwrap(); - assert_eq!(a.atom(node).as_ref(), b"\x01"); -} diff --git a/src/serde_2026/varint.rs b/src/serde_2026/varint.rs index b16d70c6..311f6b4d 100644 --- a/src/serde_2026/varint.rs +++ b/src/serde_2026/varint.rs @@ -150,7 +150,33 @@ mod tests { #[test] fn test_decode_rejects_invalid_prefix() { - // 0xFF (8 leading ones) is invalid - should return error, not panic assert!(decode_varint(&mut Cursor::new(&[0xff][..])).is_err()); + assert!(decode_varint(&mut Cursor::new(&[0xff, 0x00][..])).is_err()); + } + + #[test] + fn test_decode_rejects_truncated_multibyte() { + // 2-byte varint (0x80 prefix) with missing second byte + assert!(decode_varint(&mut Cursor::new(&[0x80][..])).is_err()); + // 3-byte varint (0xc0 prefix) with only 1 extra byte + assert!(decode_varint(&mut Cursor::new(&[0xc0, 0x00][..])).is_err()); + // 4-byte varint (0xe0 prefix) with only 2 extra bytes + assert!(decode_varint(&mut Cursor::new(&[0xe0, 0x00, 0x00][..])).is_err()); + } + + #[test] + fn test_decode_empty_input() { + assert!(decode_varint(&mut Cursor::new(&[][..])).is_err()); + } + + #[test] + fn test_roundtrip_boundary_values() { + for val in [ + 0, 1, -1, 63, -64, 64, -65, 8191, -8192, 8192, -8193, 1048575, -1048576, + ] { + let encoded = encode_varint(val); + let decoded = decode_varint(&mut Cursor::new(&encoded)).unwrap(); + assert_eq!(val, decoded, "roundtrip failed for {val}"); + } } } diff --git a/wheel/Cargo.toml b/wheel/Cargo.toml index 9e02b8d3..6a27021f 100644 --- a/wheel/Cargo.toml +++ b/wheel/Cargo.toml @@ -16,7 +16,7 @@ crate-type = ["cdylib"] path = "src/lib.rs" [dependencies] -clvmr = { workspace = true, features = ["ser-2026"] } +clvmr = { workspace = true } pyo3 = { workspace = true, features = ["abi3-py310", "extension-module"] } [features] diff --git a/wheel/python/clvm_rs/clvm_rs.pyi b/wheel/python/clvm_rs/clvm_rs.pyi index 542f497c..85a71354 100644 --- a/wheel/python/clvm_rs/clvm_rs.pyi +++ b/wheel/python/clvm_rs/clvm_rs.pyi @@ -33,7 +33,6 @@ def ser_2026( node: "LazyNode", *, level: int = 1, - prefixed: bool = True, ) -> bytes: ... # --- Tree conversion --- diff --git a/wheel/python/clvm_rs/program.py b/wheel/python/clvm_rs/program.py index dacf1426..ae5f1220 100644 --- a/wheel/python/clvm_rs/program.py +++ b/wheel/python/clvm_rs/program.py @@ -18,10 +18,7 @@ from .ser import sexp_from_stream, sexp_to_stream, sexp_to_bytes from .tree_hash import sha256_treehash -# serde_2026 wire-format magic prefix: -# 0xfd 0xff forces legacy/backrefs decoders to fail fast; -# "2026" keeps hexdumps readable. -_SERDE_2026_MAGIC = b"\xfd\xff2026" +SERDE_2026_MAGIC_PREFIX = b"\xfd\xff2026" @@ -45,67 +42,42 @@ def stream(self, f: BinaryIO) -> None: sexp_to_stream(self, f) @classmethod - def from_bytes(cls, blob: bytes, calculate_tree_hash: bool = True) -> Program: - """Deserialize from any CLVM format (classic, backrefs, or serde_2026). - - This is the recommended entry point for byte blobs in Python. - The ``calculate_tree_hash`` parameter is kept for API compatibility. - """ + def from_bytes(cls, blob: bytes) -> Program: + """Deserialize from any CLVM format (classic, backrefs, or serde_2026).""" return cls.wrap(deser_auto(blob)) @classmethod - def from_bytes_legacy( - cls, blob: bytes, calculate_tree_hash: bool = True - ) -> Program: - """Deserialize using the legacy Python parser only.""" - obj, cursor = cls.from_bytes_with_cursor( - blob, 0, calculate_tree_hash=calculate_tree_hash - ) + def from_bytes_backrefs(cls, blob: bytes) -> Program: + """Deserialize classic or backrefs format only (rejects serde_2026).""" + if blob.startswith(SERDE_2026_MAGIC_PREFIX): + raise ValueError("unexpected serde_2026 format; use from_bytes() for auto-detection") + obj, cursor = cls.from_bytes_with_cursor(blob, 0) return obj @classmethod def from_bytes_with_cursor( - cls, blob: bytes, cursor: int, calculate_tree_hash: bool = True + cls, blob: bytes, cursor: int ) -> Tuple[Program, int]: - tree = CLVMTree.from_bytes( - blob[cursor:], calculate_tree_hash=calculate_tree_hash - ) + tree = CLVMTree.from_bytes(blob[cursor:]) obj = cls.wrap(tree) new_cursor = len(bytes(tree)) + cursor return obj, new_cursor @classmethod - def from_bytes_auto(cls, blob: bytes) -> "Program": - """Deserialize from any CLVM format (classic, backrefs, or serde_2026). - - Auto-detects by inspecting the first bytes: if they are the - serde_2026 magic prefix ``fd ff 32 30 32 36``, the serde_2026 decoder is used; - otherwise the backrefs decoder is used (which also handles plain classic - format). ``Program.from_bytes`` delegates here and is preferred. - """ - return cls.wrap(deser_auto(blob)) - - @classmethod - def from_bytes_serde_2026(cls, blob: bytes) -> "Program": - """Deserialize from serde_2026 format. + def from_bytes_2026(cls, blob: bytes) -> "Program": + """Deserialize from 2026 format only. The blob must begin with the six-byte magic prefix - ``fd ff 32 30 32 36``. Use - ``to_bytes_serde_2026`` to produce compatible output. + ``fd ff 32 30 32 36``. """ - if not blob.startswith(_SERDE_2026_MAGIC): + if not blob.startswith(SERDE_2026_MAGIC_PREFIX): raise ValueError( - "missing serde_2026 magic prefix (expected first bytes fd ff 32 30 32 36)" + "missing 2026 magic prefix (expected first bytes fd ff 32 30 32 36)" ) return cls.wrap(deser_auto(blob)) - def to_bytes_serde_2026(self) -> bytes: - """Serialize to serde_2026 format with the ``fd ff 32 30 32 36`` magic prefix. - - Use ``from_bytes_auto`` or ``from_bytes_serde_2026`` to deserialize the - result. The returned bytes are suitable for storage or transmission - wherever serde_2026 is expected. - """ + def to_bytes_2026(self) -> bytes: + """Serialize to 2026 format (always includes the magic prefix).""" lazy = clvm_tree_to_lazy_node(self) return ser_2026(lazy) diff --git a/wheel/python/clvm_rs/serde.py b/wheel/python/clvm_rs/serde.py index cebbe2a3..54e50f94 100644 --- a/wheel/python/clvm_rs/serde.py +++ b/wheel/python/clvm_rs/serde.py @@ -84,7 +84,7 @@ def deserialize( return fn(blob) -def serialize(node, fmt: str = "2026", *, level: int = 1, prefixed: bool = True) -> bytes: +def serialize(node, fmt: str = "2026", *, level: int = 1) -> bytes: """Serialize a LazyNode to bytes. Formats: "2026" (default), "legacy", "backrefs". @@ -92,11 +92,10 @@ def serialize(node, fmt: str = "2026", *, level: int = 1, prefixed: bool = True) For "2026" format: level=0: left-first traversal (fast) level=1: pair-optimized DP traversal (smaller output, default) - prefixed=True: prepend the magic prefix (default) """ fn = _SERIALIZERS.get(fmt) if fn is None: raise ValueError(f"unknown serialize format {fmt!r}, expected one of {list(_SERIALIZERS)}") if fmt == "2026": - return fn(node, level=level, prefixed=prefixed) + return fn(node, level=level) return fn(node) diff --git a/wheel/python/tests/test_serialize.py b/wheel/python/tests/test_serialize.py index ed4e2871..76fced05 100644 --- a/wheel/python/tests/test_serialize.py +++ b/wheel/python/tests/test_serialize.py @@ -140,9 +140,7 @@ def test_repr_clvm_tree(self): with self.assertRaises(ValueError): Program.fromhex("ff8085") - # Legacy-only representation check; Program.from_bytes now auto-detects - # and may return Rust-backed LazyNode internals instead of CLVMTree. - o = Program.from_bytes_legacy(bytes.fromhex("ff808185")) + o = Program.from_bytes_backrefs(bytes.fromhex("ff808185")) self.assertEqual(repr(o._unwrapped_pair[0]), "") self.assertEqual(repr(o._unwrapped_pair[1]), "") @@ -162,24 +160,24 @@ def test_too_large_atom(self): self.assertRaises(ValueError, lambda: Program.fromhex("fc")) self.assertRaises(ValueError, lambda: Program.fromhex("fc8000000000")) - def test_serde_2026_magic_prefix_and_from_bytes(self): + def test_2026_magic_prefix_and_from_bytes(self): p = Program.to((1, (2, 3))) - prefixed = p.to_bytes_serde_2026() + prefixed = p.to_bytes_2026() self.assertTrue(prefixed.startswith(bytes.fromhex("fdff32303236"))) p2 = Program.from_bytes(prefixed) self.assertEqual(p, p2) - def test_serde_2026_magic_prefix_explicit_deserializer(self): + def test_2026_magic_prefix_explicit_deserializer(self): p = Program.to([1, 2, 3, 4]) prefixed = serialize(deserialize(bytes(p), "legacy"), "2026") - p2 = Program.from_bytes_serde_2026(prefixed) + p2 = Program.from_bytes_2026(prefixed) self.assertEqual(p, p2) - def test_legacy_parser_rejects_serde_2026_prefixed(self): + def test_backrefs_parser_rejects_2026(self): p = Program.to((b"a", b"b")) - prefixed = p.to_bytes_serde_2026() + prefixed = p.to_bytes_2026() with self.assertRaises(ValueError): - Program.from_bytes_legacy(prefixed) + Program.from_bytes_backrefs(prefixed) class ClvmTreeToLazyNodeTest(unittest.TestCase): @@ -189,7 +187,7 @@ def test_basic_roundtrip(self): """Python tree -> clvm_tree_to_lazy_node -> ser -> deser -> assert equal.""" for tree in [b"hello", 42, [1, 2, 3], (1, (2, 3)), [], b""]: p = Program.to(tree) - blob = p.to_bytes_serde_2026() + blob = p.to_bytes_2026() p2 = Program.from_bytes(blob) self.assertEqual(p, p2, f"roundtrip failed for {tree!r}") @@ -250,6 +248,28 @@ def test_deep_tree(self): lazy = clvm_tree_to_lazy_node(p) self.assertIsNotNone(lazy) + def test_nil_atom(self): + """Empty atom (nil) converts correctly.""" + p = Program.to(b"") + lazy = clvm_tree_to_lazy_node(p) + self.assertEqual(lazy.atom, b"") + self.assertIsNone(lazy.pair) + + def test_preserves_tree_structure(self): + """Converted tree has the same structure as the original.""" + p = Program.to((b"a", (b"b", b"c"))) + lazy = clvm_tree_to_lazy_node(p) + self.assertEqual(lazy.pair[0].atom, b"a") + self.assertEqual(lazy.pair[1].pair[0].atom, b"b") + self.assertEqual(lazy.pair[1].pair[1].atom, b"c") + + def test_large_atom(self): + """Large atoms convert without error.""" + big = b"\xab" * 100_000 + p = Program.to(big) + lazy = clvm_tree_to_lazy_node(p) + self.assertEqual(lazy.atom, big) + class Serde2026RoundTripTest(unittest.TestCase): """Comprehensive serde_2026 round-trip tests.""" @@ -285,7 +305,7 @@ def test_shared_subtrees_serialization(self): """Shared subtrees should serialize compactly and round-trip.""" shared = Program.to([1, 2, 3]) tree = Program.to((shared, (shared, shared))) - blob = tree.to_bytes_serde_2026() + blob = tree.to_bytes_2026() p2 = Program.from_bytes(blob) self.assertEqual(tree, p2) @@ -294,7 +314,7 @@ def test_exponential_sharing(self): t = Program.to(b"x") for _ in range(50): t = Program.to((t, t)) - blob = t.to_bytes_serde_2026() + blob = t.to_bytes_2026() self.assertLess(len(blob), 500) # Verify it deserializes without error (skip equality check — # LazyNode.pair creates new wrappers, making tree_hash O(2^N)) @@ -306,21 +326,21 @@ def test_exponential_sharing_small(self): t = Program.to(b"y") for _ in range(15): t = Program.to((t, t)) - blob = t.to_bytes_serde_2026() + blob = t.to_bytes_2026() p2 = Program.from_bytes(blob) self.assertEqual(t, p2) def test_repeated_atoms(self): """Many copies of the same atom should be deduplicated.""" tree = Program.to([b"dup"] * 100) - blob = tree.to_bytes_serde_2026() + blob = tree.to_bytes_2026() p2 = Program.from_bytes(blob) self.assertEqual(tree, p2) def test_many_distinct_atoms(self): """Many distinct atoms should all round-trip.""" tree = Program.to([bytes([i]) for i in range(256)]) - blob = tree.to_bytes_serde_2026() + blob = tree.to_bytes_2026() p2 = Program.from_bytes(blob) self.assertEqual(tree, p2) @@ -334,17 +354,6 @@ def test_compression_level_0_vs_1(self): self.assertLessEqual(len(blob_1), len(blob_0)) self.assertEqual(Program.from_bytes(blob_0), Program.from_bytes(blob_1)) - def test_unprefixed_roundtrip(self): - """Unprefixed serialization should work via explicit deser_2026.""" - from clvm_rs.clvm_rs import deser_2026 as raw_deser_2026 - p = Program.to([10, 20, 30]) - lazy = clvm_tree_to_lazy_node(p) - raw = ser_2026(lazy, prefixed=False) - self.assertFalse(raw.startswith(bytes.fromhex("fdff32303236"))) - node = raw_deser_2026(raw) - p2 = Program.wrap(node) - self.assertEqual(p, p2) - def test_mixed_tree_with_large_atoms(self): """Mix of large atoms, small atoms, and nested structure.""" big = b"A" * 10000 @@ -361,7 +370,7 @@ def test_deserialize_api_formats(self): node = deserialize(legacy_blob, "auto") self.assertEqual(Program.wrap(node), p) - prefixed = p.to_bytes_serde_2026() + prefixed = p.to_bytes_2026() node = deserialize(prefixed, "auto") self.assertEqual(Program.wrap(node), p) diff --git a/wheel/src/api.rs b/wheel/src/api.rs index ad3b7032..12d2cc37 100644 --- a/wheel/src/api.rs +++ b/wheel/src/api.rs @@ -17,8 +17,8 @@ use clvmr::serde::{ parse_triples, serialized_length_from_bytes, }; use clvmr::serde_2026::{ - DeserializeLimits, MAGIC_PREFIX, deserialize_2026, node_from_bytes_auto, serialize_2026, - serialize_2026_pair_optimized, + Compression, DeserializeLimits, SERDE_2026_MAGIC_PREFIX, deserialize_2026, + node_from_bytes_auto, serialize_2026, }; use pyo3::prelude::*; use pyo3::types::{PyBytes, PyTuple}; @@ -167,32 +167,27 @@ fn ser_backrefs(py: Python, node: &LazyNode) -> PyResult> { Ok(PyBytes::new(py, &bytes).unbind()) } -/// Serialize to serde_2026 format. +/// Serialize to serde_2026 format (always includes the magic prefix). /// /// - `level=0`: left-first traversal (fast) /// - `level=1`: pair-optimized DP traversal (smaller output, default) -/// - `prefixed=True`: prepend the `fd ff 32 30 32 36` magic prefix (default) #[pyfunction] -#[pyo3(signature = (node, *, level=1, prefixed=true))] -fn ser_2026(py: Python, node: &LazyNode, level: u32, prefixed: bool) -> PyResult> { - let raw = match level { - 0 => serialize_2026(node.allocator(), node.node()).map_err(eval_to_py)?, - 1 => serialize_2026_pair_optimized(node.allocator(), node.node()).map_err(eval_to_py)?, +#[pyo3(signature = (node, *, level=1))] +fn ser_2026(py: Python, node: &LazyNode, level: u32) -> PyResult> { + let compression = match level { + 0 => Compression::Fast, + 1 => Compression::Compact, _ => { return Err(pyo3::exceptions::PyValueError::new_err( "ser_2026: level must be 0 or 1", )); } }; - let out = if prefixed { - let mut buf = Vec::with_capacity(MAGIC_PREFIX.len() + raw.len()); - buf.extend_from_slice(&MAGIC_PREFIX); - buf.extend_from_slice(&raw); - buf - } else { - raw - }; - Ok(PyBytes::new(py, &out).unbind()) + let raw = serialize_2026(node.allocator(), node.node(), compression).map_err(eval_to_py)?; + let mut buf = Vec::with_capacity(SERDE_2026_MAGIC_PREFIX.len() + raw.len()); + buf.extend_from_slice(&SERDE_2026_MAGIC_PREFIX); + buf.extend_from_slice(&raw); + Ok(PyBytes::new(py, &buf).unbind()) } /// Convert a Python CLVM tree (any object with `.atom` / `.pair` attributes) From b67e865f44f071667310ba29b6a8f7b3056bdc93 Mon Sep 17 00:00:00 2001 From: Richard Kiss Date: Wed, 29 Apr 2026 22:54:28 -0700 Subject: [PATCH 04/15] serde_2026: refine deserialization options Simplify serde_2026 deserialization limits around byte and atom-size budgets, add strict varint decoding, and update docs/tests/fuzzing for the refined API. Made-with: Cursor --- .gitignore | 5 +- benches/deserialize.rs | 4 +- docs/serde-2026.md | 57 +++++++++-- .../serde-2026/raw/default-serde-2026.profraw | Bin 753072 -> 0 bytes fuzz/fuzz_targets/serde_2026.rs | 66 ++++++++---- src/serde/mod.rs | 2 +- src/serde_2026/de.rs | 76 ++++++++------ src/serde_2026/mod.rs | 6 +- src/serde_2026/ser.rs | 19 +--- src/serde_2026/strategy.rs | 40 -------- src/serde_2026/tests.rs | 94 ++++++++++-------- src/serde_2026/varint.rs | 79 +++++++++++---- wheel/python/clvm_rs/serde.py | 3 + wheel/src/api.rs | 31 +++--- wheel/src/lazy_node.rs | 2 + 15 files changed, 284 insertions(+), 200 deletions(-) delete mode 100644 fuzz/coverage/serde-2026/raw/default-serde-2026.profraw diff --git a/.gitignore b/.gitignore index 81c58464..a854acc5 100644 --- a/.gitignore +++ b/.gitignore @@ -19,13 +19,10 @@ target/ # python ignore /venv /.venv -__pycache__ -*.pyc -*.so # Node.js /target /node_modules # Mac generates these with the benchmarking tools -.DS_Storestate/ +.DS_Store diff --git a/benches/deserialize.rs b/benches/deserialize.rs index 89c7a1c9..13774d02 100644 --- a/benches/deserialize.rs +++ b/benches/deserialize.rs @@ -4,7 +4,7 @@ use clvmr::serde::{ node_to_bytes_backrefs, serialized_length_from_bytes, serialized_length_from_bytes_trusted, tree_hash_from_stream, }; -use clvmr::serde_2026::{Compression, DeserializeLimits, deserialize_2026, serialize_2026}; +use clvmr::serde_2026::{Compression, DeserializeOptions, deserialize_2026, serialize_2026}; use criterion::{Criterion, criterion_group, criterion_main}; use std::include_bytes; use std::time::Instant; @@ -99,7 +99,7 @@ fn deserialize_benchmark(c: &mut Criterion) { b.iter(|| { a.restore_checkpoint(&iter_checkpoint); let start = Instant::now(); - deserialize_2026(&mut a, data, DeserializeLimits::default()) + deserialize_2026(&mut a, data, DeserializeOptions::default()) .expect("deserialize_2026"); start.elapsed() }) diff --git a/docs/serde-2026.md b/docs/serde-2026.md index f4ae0797..822a8815 100644 --- a/docs/serde-2026.md +++ b/docs/serde-2026.md @@ -16,11 +16,16 @@ Rationale: ### Detection -A deserializer determines the format by inspecting the first 6 bytes: +The magic prefix allows helper APIs to distinguish 2026-format blobs from +legacy/backref blobs: - If the blob starts with `0xfd 0xff 0x32 0x30 0x32 0x36`, it is 2026-format. - Otherwise, parse with the legacy/backrefs path. +Consensus callers do not need to rely on auto-detection. They can select the +expected format from fork height or consensus flags and call the corresponding +deserializer directly. + ### Backward Compatibility When a 2026-format blob is handed to a legacy deserializer unaware of the new @@ -48,13 +53,22 @@ For each group (in stream order): encoding the negated byte length, then a positive varint encoding the count, then the raw bytes of each atom concatenated (each is exactly `length` bytes). +Atom lengths must be non-zero because nil is excluded from the atom table. +Deserializers enforce a configurable maximum atom length (default: 1 MiB) and a +maximum input byte budget (default: 10 MiB). Separate atom-group, atom-count, +instruction-count, stack-size, and pair-count limits are not needed for DoS +protection: every declared item must consume at least one input byte before it +can produce parser work or allocate a CLVM node. The input byte budget therefore +bounds all of those quantities. + Atoms are assigned indices starting from 0, in the order they appear in the table. The decoder accepts groups in any order. Multiple groups with the same byte length are valid (they contribute separate atom indices). A serializer may choose a specific ordering strategy (for example, sorting by frequency so -commonly-referenced atoms get smaller varint indices). +commonly-referenced atoms land in lower index ranges whose varint encodings are +shorter). ### Instruction Stream @@ -87,12 +101,41 @@ Signed integers are encoded with a variable-length prefix scheme: 0xxxxxxx → 7-bit value, range [-64, 63] 10xxxxxx xxxxxxxx → 14-bit value, range [-8192, 8191] 110xxxxx xxxxxxxx xxxxxxxx → 21-bit value, range [-1048576, 1048575] -... +1110xxxx xxxxxxxx xxxxxxxx xxxxxxxx + → 28-bit value +11110xxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx + → 35-bit value +111110xx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx + → 42-bit value +1111110x xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx + → 49-bit value +11111110 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx + → 56-bit value ``` -The number of leading `1` bits determines how many additional bytes follow. A -`0` separator bit follows the leading `1`s. The remaining bits (across all -bytes) form a two's-complement signed integer in big-endian order. This scales -to wider integers without changing the encoding rules. +The number of leading `1` bits determines how many additional bytes follow, +similar to UTF-8 prefix-length coding. A `0` separator bit follows the leading +`1`s. The remaining bits (across all bytes) form a two's-complement signed +integer in big-endian order. A prefix of 8 leading `1` bits (`0xFF`) is invalid. + +The deserializer has a `strict` mode that rejects overlong varint encodings. In +strict mode, every varint must use the shortest encoding that can represent its +value. Lenient mode accepts overlong encodings for tooling/backward-compatible +parsing. + +## Size Bound + +For the current instruction-stream format, the analysis in +`generator-identity-hf-analysis/docs/SERDE2026_UPPER_BOUND.md` proves: + +``` +serde_2026_bytes <= atom_bytes + 2 * unique_atoms + 3 * unique_pairs + 5 +``` + +assuming all atom lengths fit in a 4-byte varint (`length <= 2^27 - 1`). This +condition is far weaker than the default 1 MiB atom limit. Because the hard fork +cost formula charges this same size component, consensus callers can derive +their accepted serde_2026 byte budget from the 11B block cost limit instead of +choosing an arbitrary message-size cap. diff --git a/fuzz/coverage/serde-2026/raw/default-serde-2026.profraw b/fuzz/coverage/serde-2026/raw/default-serde-2026.profraw deleted file mode 100644 index da231ceeb6630eee89f246fef65a14eaa5e88a07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 753072 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

uihN0<_}sQ_`2hvV zLmq?fyPj#^fUka!T6y88j_2=wm{IDWVDKW9?ViJznQk_Wer+yzUEoeb`#hplOZHgs z7iD}{TKvOX#NQZrlh2bNQP@8#zs|a2fdoqQCrKbuuK2UF{KdePJGrY7$x*Zbh~x@c zT%P^-{iC!)e5sIaB1M@`x`Vh|c4B(6M?@PS|C^_icT}(ZxVfa{?0|1c1<$73Jx9!; zl^Y^;CYHYIxXlEcB7Q>7f^2`DYYp9ne*TVNmdEM3%fs0g_^UkNMA8SLfse~}m@r;5vu>A=#z}x&A~EsiClvuuXLXr!DRmmD+FOd=HpO=<;-q1nz3bJf2k8!&Ys==_|{3`uP)8kx8c|5c5M~bKO7jCLM`3@B`>hP~ur79QaVp zQ+MUFhf7>!gWAta8H}t2zg|-H-Fqpu5BF!E(~vX6_V9_j*zNJxShw({6moMt{;itU z8~R&ongId4AA6vrAVC7>1b1>D9>GZ{@u1+OAb|rj=mmCaixm{~l>nTqPVs$ElR+TD zECxF>6TxsKtf(+>lR>*d#h1f3Li4#dGpqpb#jt$<)f;Z#DFI#Auo>Gdv1-?{)}+^h zZ&+es)<%AW`O1JwQWe!K0PCAg`25elnyLI$x$)fwHu3F|)K7+Ro= zmO%lUvt*BMu%k*>nzmtT+d`vI;_sD>OlhHR>PAN#P|dOlRkbdXk&6G>1e$?vB(dDu zAt=g2n~d9PE3IptK+E|D?zJwlq8DW4=jJJHQH}YM=DqM3ODe5XuMsAvr`nPEVs@Z9LbupTVP zD3&Pfs8qnnq?m%W-bmU6XC0KN%1P{@VrUCS>g{nsUJ6iH1ijAysO1vLht+)H(tCB| zP~3#!XxjabUzoDe7m?WN4K0Wy{@wIKVMsc5%zO5DDoV1VMJ5rdDxn4oWDYWmHSh8b zg5VmP@F5X<&t}6m>8Tb zxPG!Q(0raO(){_CazJJRq}ho=TYok60Bw-@=B%qpU#+M+gFbAO&1gq?oE4*5d4i&r zO6&<>lQcpXr@T^OYZk+^@PAse-+G#dkd~Gn`#kwdzB?DyKQ8oNfdeI znHo#lt*rTIaHl0KPK*XtKNF1+<58neK>W?b=*1f{RJslg`d!=)+I{bYowRQGz0U@% z*q(3%wR^)~u5Ol%=XMiMyBxnKIG=sOu#E1V4F1|v5GQFiK_CPw%>OrRw*s4O%9tlR ziY*|1cW$6SWVM~aNtVsZ&a~AyjOnHA* z^C(+u`ot3;NHvi#$XFPv3p3zabn5r`WGQuzhaDX7l$Q~d{ndI@wsGB$r}5C@XfMDr zGLQ(PXGEiF$*A^^O;4N`T%8|5z;&oYajF8-+WgV2B*V_|L5Bx)6x@J1aS9W}&aewI zJb%j*;H~Ty1#r-1BPt_VN4v8{V6;FO;yMUEG3?IdH^iLcVjVEYREs4w+*4e7CD-HP z0~|Oj*kg`sld|XT2)^r1oN^;#&wJWdT&J29`X`^aIFRjnqrESI7Fg&>qey9gu+pwI5{@oS?c??D*72$76$T;TGzT@!$nC9k4HkGJZM6Z6C%_r!=|aE} zIpInLoCK^CuoV4l!|nVgbNALM%ozj?DGq;?lrK~m2G*&i>Ob-OTDQzhDt-`Vczg(3 z@L^Ho17hjV=R)aTPTJ`4sBzKW)RR`XMd^)@2h$j<@gbVqGW&U^o&OE^_0NjkLCD8q zuT^#RgjOWq8*PULH)&!`J^mqEu;S1mUAqbO(_hFuPu9-gd^Dwh;q?OOOJeDU z?UOl}unVl!F!d$~8fAXRA+pX+--b50pZHK6LE&-I4g4gU9xF%Twt;;lK5^}4F0|Mg zYeHZ+=(R>iNN^@t7J|@w|9GW{rUvcJR{^_uKXQHNONn`WHMXiFfY2tMB6nH@<7X=;K=0y4_YE$E5 zvJeSHLCHfT7k{Pikdy&3fsB8qn%r4GnkHKnQE;X-hM{rWz$6)qi9US91`ppOI%E=k zEJ<<}N%H-ewZCdy8 zbXHtLT25f<>cIYwMBY@qSe5(E*!2K^+=TrXQL$e1T4M14>hpfR=UkHeo{zSxUE{r6 z;uNHwu^uGI2y`BK zzCkzz{XZs35tgRyB>bJXi5i!~ZVd!16`wD*Pex*A!?2%PCx0G!zJs_N9e0n@7vior zLcGY?4!E0%a;n%5+E?Qk_>Cey4g&fkCsQW;?PpylCa-*n8uz)I@q!O~S)c5{Og0=< zQDJ_g9t~vYu;$gS1+|u~QGB%^r`S+rUaA85=Uu9%UAhuCYRM&?Nwyy*iC|Q|O-nxN z*`M<_Ykmi7e1ltTz_@RGA)-q%Rrke!yyE`HkX_4dj}wLOJ(hMK=Lc@Uy5W?xbM!%` zSkF0%t_OMrf1NbX_w&pU6^B+M0p9qDOdCW+Pe&y|3WRUsO4sf>;{4-uNl&kHs~wRF zH<;2%bz~UPZO|AjtLEXAQq0Z`+-Eps3VU$e@X)IOasK?n-|jwh+06Wq66iaC zXG}K@Y#lxVR%-qIcNYjmL?Ee%eIf&NDnevcBox3slyB2WzB}}Uq%zN338Fa@IH3sI zrIvE#RW;Lgc=&0OUH-E(9=IYCNf09y<}WOjJk){?0V2lhlYQYbqYq@35Z9RQARu>A z#0$OoGA1SxO68luqG&)kE;MOK-OAg1H13FdDilHvXXtAwaMR6%Ex(+Qf= z;T+?+5i`a0ReccJb=mBiuuKvmdd|vdxcKN^X_qFHp7v`mfxNC-^ zN{=I{Wh}gG(OrHkSbmp|Abm>~qreQM{$|g!f4f#*{H~ZV1zy9+@nq$I97t1rHqI)g z=z{jph-C~;Y+CQ4Goz3)b60Z>jrsv^UJcO@U{Kx+*8k0I04`H8d_TobE=B_f+5vjb$Xzb_t{z1!d0Uf{6fH$JP)|WL2)G@r?7mG4 zgz;J)JWCK@eq0cgHWxlawa`ZsT@L1Qq-YL(ROZC^hs%UpF8;Kp4}+Y8u}j1^j1|Uo zF5a^A_O~ka6U{RnmOBsskBCiqgt?h!1$jZJJ!}QAtRsPC>$LDFOuFMHI?*>B$)Omv z5MLOU5Ofl_`D%PXt&;KWKn`~lMeJR&tdb-xQE2twsW*Lfg{L2qgg`Yj{bjd&>+`EU z3{ei2!E6U4r4W|)^nERMX(Tc?MCA&@tZFthi=ymoEd}{5Mh+nftqhmz2n3)6$ONAh zC>X*RZOMzh#tN3z3t3BA=)U#9;}q-z5(YDgoP>k5#F+gQBqN?tQwA7}O#Fe}W}f~4 zRb27k&>Be>+QKZZjnBwgZ8G2RjpnbVO7L=bOlKqpzcAFgKx6wPx`GM`Uvfoxs)j)DjX2s_*V3Q^F1RQ~5{FV6145FhHq)mfVq(AdbgMGGAH_e2VtFw$# zmOp?&_c3Z>KloFzg;6!`VkX2QrY+&Z0cY;fxv>-Kj_iY{s-n%Rv)VO@5y_ao+d(yc z1f)NSc(92>c(Xj%AdVa+<~bm~rI_k{+QNW0v}DH0S*6K}DC9BBOGcAYNwh|Co(5{* z=wE9^*b`1;-qMxHIUogke*3mTWv!D3s{>G}6r^C};7f+TE>KjC1!C5=-q!La8|z7P zYkX&PyHtIkSUfwb_q;l$E4-<8ZqGMuAxNm12zd*;nA|&K zxt+Bh zb>HIyhh?zZJ&q}U4GVXtz1e#y{ZLb0+upre3T?mIGCW0Ff>>wS_*(Cd5Bfmg)QeNLTpkEz>b>ex@z`G zMeUad9*dSg_YMy!cAXEy3_vAQ>k6!p{U5^v;n0_dp&G6>3kFD@TZZ3r;NhFBzJ*^# zFTIoOPT(g}=R=XgaHk{dJCfjC(>YWQqhfk2isCc>?RRV!V-!83(?hcZl%t|FyD++=_raFBUKBK%v&u&XS`aU%D|#z zAeUu5y&BhMjP+PVPvzY9&>piD&F6&x_r_QcM!oERfN4_QiS~|<-?=&eSMy(KF5%+r zj);T0)D%L zB)0r#>7Gs?Xd{6rUpf(eIXx52B_)mxtZpNly`|n->KDvAXB|zp zvErYC2C|H#=b(x!Z8my;<#=mKV&!^u8n9r`%458{wb7L#haIzq7;bKNC~j7oxvpEf z=J!#!ed!wY01Jw<-3@&<+8PWP&#!I(cR`Oik8;g}tw@-zit1_4{>BVgDDospZ*wD{ z=rANLM9P0#Sb18V6XbEX_NOoQxvSP!sEOm}191QfJpBkkOV)=LUf^X@GD2pDMf$_; zEIdegPWyesy5+7`YYr^K#4yt_l|s2WLica;#k79iD@>HP4=kafPQdj*@7vtTGtCUS z(&%i`Lw!`ad)#ok=mKL@f`p?9oW2ZK^POlu>MG9}7`fSanwJHDzry!yLnNhnA?`!zyq8cgjn1kzJ(sRwvh zZpK!wjX1LusrN$_ELEGrm8~Lt_=S-?Gq6nX#bz4x%Euz2A0{{l{V|-M?vy33lF=W3 zNHPTlZ7Cb#Uar_^2ZmE>Sty4xB_nN_5|oT3E{>6dwnSrfrKo=wtMSJi`Wr6Z))D|} z6VFohWoNmr3~oO4d#fBu7TR=BPEYAn%#^86GuCv^@62Gd{p@SzwDT&(M+yo_)^@v8 zH4P~O7d#JZ?^!-|7}tF3`<{Qh<;6YV8y#>zX9TDmCWe- zW#=wz$@4<0Es7R3RGQf-9H-3ouoouYq`uK9U`qF45BCP89o$oU%Jw0!BNY zZc8P0u(Wq^+yxRS*UJ)(EzRTc8tF)V((qXj9Twyd(rZW~;Zqwn*GhtsUBY1O@7M7H zjM8aiMY;d7l@rEK6-a}FNhX9SMDHE>jOjBV>j2Zc@{UDIrH{c=Q(Op||5@&ef%Pnk z3eiJ!yyorM5GEwQ$M6gI9S??*CS*T8@$!hlu<__Wf;%2*-gKl1sbfjU-6f#}bV0iN0`4)+0VcyM& z6;wRjXdgOu*GM!1#m z6W+exSc6ORYAi$NUl7c=S2i9sk4#)v@uQOkUdTX{i8mDVG! z5lT@M4YCIC^+=nM74#<9wUJO*_BE4lHmeWjXby(}irfkHqvyVXoNjoot3Ypn-Pe=l zCvAfS;FQ0@LxM-^^J6rjRh!PvP5%yCv?jqqJZ~B-z}+s;#7hJR`LKq>-zYHyk&9A!UF3MgBz@7sD+1 zCSRPmzW7JiwN8Mko>ZBxI=hx0NoJ%yw&+lFU5CTWV3y8a>4WxSf%N5>>IWnO>w-9B zjXfc~{G^F>Z=5Bt`F?BLHLDcdUKLVbXQAAV8<&|9fu*9+1jV@JAUvT_=89247$-#x z6B=oL#D(C+1RNK8TVJqi&y=(4q9RU#mEejpu`QW1DXUo);zRm^1}-!owy?5C{bKG+ zGG8sZ2cIyIqcG;@VO8D)bpxXcJ^bUo z1qiS-=ixV&7&DH_WOJ8`30Zv?Bo&av7hMThaH@B3sXK-V%x%Idf zS&V;xYB!N#%@-9eV`a^-uk2n}L>;QvfcPm|iDOF7O8R_vHEWqV;R1hpfOae>rQa>` zAan)Z>)PVRCNO6~#tj&Q+&kY@`*or1zTmz@$lUZKF17p6Y4`j?z`sg=KrNTR%E%8% ztf&3hd&E4?VW!@nu8(@U&HVOFK3!4s7?UuaH60Nh);4Oq-{XG)W&C_N5V8x_E8+6~ z1}#P_3T`Fo1^-DOtMxl(G9YDtAq)B6);pBAAUbf_ESP$(A^$Qm6hMRC7++BXxrhhU ztFep^ll1p&m2S00!R=sVhGdNYyL0?<>XF~~h0f7tWM|;_6_B8btT#$(|aTlZX~PPOlxDO6$%HZp9e-MS%= z8=}c#0>aIc!#CQh5gb~8ziQk7s;^YeI)|}pGfPTzqt7%PXildN0<8qMY8oc$F)L4p zar_L24^<}9=0EJ9#KNhBSG3S;zN-g3|EF{dCxePn&<(>{r?f(}3Kl+LR4A${83xCj zlp*EO7v8Hpz}NgxU(oli0hR{7X~D}Y@w|o*+20l@n0L}A3Mf)LY%A531FCM<6$Y;F z6Ag-|D#*{t$<-FMn~piWl3aSAY6`7LJ3H(;`66usUvwk(MBdb*KP#KvKhCJOSI@Lo z6p(b*+x>cpad50GTg92}$W~&Dpiez9_$=@P$Hg5*r{>`$D}Hm#m?e=epH!$h&7V@fvJD2|Z% zMTX^dVh97tg`5#P^Pah|rmcYpDKistipgtgJCuH^wbF zgE>r?k9^Y7Erx9+^iI9J`;91-`L$trzZEf;VE3N4U6#i@uF~e))ngv`YWB%hLr6t7 z6;qEymQQ%Eyp*nq4y$UvZ}X_hJ*hWW=DE4I?VvhX_=)GZuuOH;9pH^p=QT z5PL!iBgvb}CX0oVnu;9(Jw}5oQ(JevdtvG1z}}9F$Emgs(Jkrvl?PX&`h){&j_`pb z{BQ5~!(lwS=FoODM^6~f#_$q^=NgY*N`4hq(x7FCdYK6ffXtgz{urw&|0P45!E~?C!GY=IJ_rFc)eQYJsBz zV-mH-A_&zBwm_GGvWR2#bwC``fGrs3=oBnc5DQ_FxUO%G-tl5nSj?PTYi;AA=iB&; zA{vGW5VElw2IqXorGRsa^a$#&RkM1w@;ZWGx@q5>)f~rXw3*Uh38<#;43bs_WSB`l zkc{j?15(!9lYQ!O(j%zZ`m6YC7vCH<^-(pnk~$bz{qTB&dtUd?C9>xS7>?ZyMsW?{ z8hh7Hbj2ATxcv9r`=Sb7Wzp;uw*CUCRnf@@I;8ZQGmjC-|GXu3bO~0pDMBF`f>CWF z2cI+O=&jMPAJFP9xZo0kU#wTtwOQ#^+ik`sBE*Ao#QrLbW`oEt9pWUqTlN6K!oCt8 z_V)d+a4D|{fesN09YY2EhQ9UrtOZS5r@^8av**5yL`6##&2p7jjY^z6Z+nGP5`3|O z>XM#$XDH-nP$UcMu5n3BBs~J{4k~7v`iS8>5GANw!-@sYy&~jOJ=%8YC1Ta zX4a+ry1c-r<581Kow&)=va3Ae+9*m7r3ne%Nr_~W9p0Z0mVcAP24bl{tMsRZ0^dGE$%Vr$Ld_+(xDZ8w+ z(i&|dxce4e#*Nzl#%=R!RR%>24QpC=s@3^<^8qshss8Ki_c|-j{*Fx=Z$vS1+$EyW zOTW2B$F^y9B9kn+j{xMm11^bkRhMH91_RYHeIc>WME#k@I=5H!NY8|bVB#l0UD=?Q zLlhyb!j@4Lu}h=uNzueo`q>3wc#%-~)76jw7|QeGy)N;aNFjtA>?fIPS+f*?*7z z{q5`WA-j|ecGull|tFH6zBFw?s;{~lMIS3#vM$HW#IA; zvD|e!s?oo+Uh+WeUg%aAy{Fqrqjg)zBuF-A>WwqoC9H6%URWP<9Qt%J3%ZC4F;Qc^ zS2h_f&bnGhuRL?w{Y)wty2}A~K@!a!XV=Sz?dG){zhumILjgJf1wu01>%L>O zbJGKbU4go@E<%>f*r78mGVJrMPC=lf@@aYsKpMObdw>4eH4U%4rb*^jb}Q;Vq*NSC zR;;IKFidY8(1%MNpdl>!+s)+<`U->>oDqsFA7vCcT+4C^C8GxwduO;1qH9(8JhL_U zsOd&7T~x}i%9h?bhJZJh3FcH0m<^xAk#5GHIh~Asmt-+I!<^$6Cn=CSmp1Y>aC-so zV=D^#L^w1v^_X$Fy~WN7=)ofnbd5OeZH|v={}+H{(q`fwx{%br{V!eL&Q^}S4TtMPqFQCq@bR;^TIu8gFhsI+WkGE#e~i6X~c5;W`GyDMBtNwoT8{!iLj zgj7V^5}SZnE?wSz-}R!Z2_(oQ8DKp&Z>m_Xl( zIAFvmq&Z2EGqy;M*MIN1_1VAEJ}JOxs48urx}VgQf}`fh3KO>Ucg(AbN-DLI;;0lJ z`GB+~+K@&r(;iF@CrZ(CQi&9!cc5o>XimDKu?40d3uXRRCqM z8KmCHfxx_z_={X4Um}f;G+q~1h&5&Guo`Lwp1rfhr^t6=kqo6si>SHa_LVFwM;ke# z9V@j_$GT3$gt%X$iL{DM#Ede+M+=!iFS>M{jwj&9-}5k+9I=6tqlnPZM$V}o;&$_K z|ANf_7DlRqpZRYIlB6S7%zzZy_#J*XO{<7nfa1j9@N78{Ku{$VRh;*7-U=R@^HSe; zro)`=QF1@?#~}5gR|^!y1CZkG=CM&f`py!RS4=i({5xDYc$fHZJ}5#??7GLbUM^zb zJE&X#O#3fDeu}QhM#%((&lfn!`etBkuf7+j887kzA7)pMx4Dk4ncL^|C6d4|CRKme ztZ-Dg4ag&2{=vZFydxO7J=;m{zlrHRC1PG0e7}j`YqEx;62C0L0U7mBr8j6@Q*9q&kaq5nJystgQ7%oKXc`|#IpysDeUqR;ebhykoit=xNoq64AQ>YO z%)&?E(8G)BdRStQOkArePSwZ0tXm8cxkZs7$u9M_e5xgwasn`=akXsgI{IOtb>VJL z@F}lf!ifr^gVSSobmX87OCxiG0vga0C&_>U!ksarOj;63d^9x$NLf`C9=E5DbTrkm zT#`$at6k-@wL?I<`>z36XzHdkv^xBX zX@g>8zZ;625p$qu9?*^aL=^|vK{@0J@ZIuJoY`;-jAgKqGcTJ2P<8Qjv)ZaI4=06l zf&4i}{{$WAm9I=A32V_X97sK5RTH$64ntX4G{1AQP8sF&s^f~6Ot4n zA(iM*wRO(7;k{@YdEZhjS)!dOJ&kmID4cOY64a-S@YiOb#8_Ps;rW+;=UfjqNd{NT zFlZ5Mq(7c6&gCa_w3>3ApBGH(;b~AMrNYktUhQi;sGfSLT^_2C zr<2Ro-9p9lvZJ5Ya{5>5-M^Yvv1A+^6OOra$Ii)*@Ib0>!`DBxuH1~2LnkVR4*hG# zlZTb`R>E{gH>Gf%WU`mB!zTwU@W`GlOmmPv2>TeL)JM^^NWMCd6n$yaECbFSO!Ius zm0%v{r4#LY#`s0zz{Q5j22w@~ae0!ua)oSC$D~D<@a(abH0JkJKd>7-*MJEfgIZ}G ztg?MI!4Wj)!u4_q?9gaUcwA|@u$>Cs~=(+g(^Rb)yzcL`dDD|G5C@r4kMn3W8cVsY%F}IshcE$bv4ysL^Q<)|RUz zF(#O?Z+0~_abNA=%*dp%QUG7F?%P02T6spzo}=>69y0%ohYa~!2~D+!pRJBf>f{M= zd*t3Sa(z<#yk|_m4AiGFfBW?hlurhAqqe)fAa^^X@F$E8e>gm&V+pW>dW`nv8A{WM|=9UnERyaZIF9 zAzKv&9IIE%0QoC-#ArUqJ8I^kMtUsbK+sx-V|$pE%67k!T$SkYO76reVr+HG(ALjl z3=G0z&)Nl(mqC5{D4(d7UjY0d-j`tg*2p2dQ3s6c{@q*My??rXUBG8@WzE7Guhe(0 zg56u9J}WKt?qypITp;$_Hod|cc;=NSG<5KBEgIt8HGmBYj&O^njR`C$+X+E6NNt9~ zR;R96pmr<-6AcPu6q8}_T^kS3{Hw82m$FLrY}{gF$j!r3P>oWF3oKg+mC^lW>q`t_ zg!}Adfb+WI3Hk{OvBYkhV0jmNx4266VnD^RM+wXW=eSyszFshc`5SAK$Mv91PyUs~ z$hxbG_o!Q({q(83@B8OYE;N|HBVS9TSPdZ--QVuhK93#=vSi8bcUG+N%)#`kZ(!^L zXU|}!R*0XUt28aI3)0iUr z?*&gwr=V)fcK2gkR}=*o1(xN7OAFXZ)=5q*MB-&DvHiJ0XqQt~ zZ&_+k;5{q!oP(quqA5$@gXpUD==#`(%{w% zxpo?6s%8Ey>JUCpWgw~fi+*amMp#=<%#^WWm`8nzoaG0ZgMbc=2-YVkMg_KR0252Q zxrr%iKSbS~7YScO)!?y$xY$q9YfaaECKctJ$%w?XT^NYC^Gsynw54rPU1R(Y$rD(` zs{f`9V=0E%rpG^tMZyW9AWLVTY?tuWa4~`x(s0&pIyLE-`U2brIE_WGldC6)OIX)b z7yk9PqRV>U@PSuMtCwf*d=w(T{n8t(;&OGbpU+2rCE(;Z5wP=32*go_Ius0^Rwv8J zM6GhKk=A;U)Z-d2)^=n_{F}9zIUbQkYI@h0HDu~Y_4_+*oSHK|bKHuv zovkWWK%L%A(j!M!-8ba#mC$OYcA7dw%ThULClXA6nIlmnoOQVpq$?2`h+i^n zxrx4XHdh^NKGI93c3b`b4egADg#5pd>NCUz;i_UO!i5k8SgZ^E)mH$m%UK^?u+VP1 zZSOpPU9l|wYKT0Pcj*TCBjW!*JpVsertKH!I9DAa--(*DnDw*p@40UB=@+>z9P1H3 zi`HE+@BA$pTnEl<-+w#<(r~fj@O$P7WwGRUN=hx1gC5NyDzR$EHZGneo2LFIggjPj zZTC*NldGeLn=rdg1Mme+08H^uRql6Zo!5emc&qVj*NL;SZri9bGQ@R{8j|lbHd>rJ zH;w1`;3P&nzpV;JQE{Ap0{R$c?F4p+)=yB$3QVJSbpM}!dfiDjRs#%3{%ib}O(kn; zqWN_$#7xJfb2HXxR;UYS|9n3kBj}Ow9*7@;WXe3Q#&zh9Dp|OFi!?Ht8%^20wz@t_ zoKkx39Wtq3SdrtBGBUpnMEg^sWTgR;69;nT;L8P^%CtIb{WMeSlt;l;PR(PL6*N?W z#HgW@_&bD}thr2ILy++(@i5hp&5Ef%x5W>WjP>$wKWh^!Xia2xE_OFIGrNdM=2#u+ z8AN@i#sxGcHQ~yF;CQ#h+U=j6pK*P(ydiH>e-i0PdUl%j(GhMAb%M6s;IWtWP%SG$ zB=Wsl$O>`TsJ3xjOl>iYq{qGuw|^@$-oVT_*9D?N z%Z6egR0@dudb6UATo40V%y+mgc*|(Lfe;IP0JcwOd6V&D;Zn=sk{-Q$7QHEw3;k!? z^I?{g935Jb&zOYR1%PHNCCQF(&F2fu$_pvfYU^Lx8@GHpF&i{6IBug8(`A&oAUwlw z1AkIR?S2*_RIzUP6=aMYhb`nc92if&@0{@x=S7&2-b>N;k=!;JpvA)L z@JqqC%8&I^)1wS1`(<+ige`lCf-q8Sky>Sbrx z01nigg|J~BaaYmw1*5htu+yTh{{u#74&t`G%2SXhpp%H}yY|p9++KP9^CnH4+cvUw zcGs#N@fHmIU11(EO#7-x4bELMe)^wyNMe1 z`CY_0l%P%#1}?$&0)RoV2}E$zRv=?hur%XprxVO>zgJC#TGVC@xU8^i(5+;eFFbL7 zzhCL{Y@_~V8$UE-_{iV3J`3J9X7YAz%{kTD7V-Y@gMfO3kLV~atRYtJ z|ASAzEF$!oC_KF`DgzGFzu$Sg!*hcHV_Y=mMr!YEf+Wcw-$VM>vlFUV=SU+Cnfh~M zcLHYA73+J`&%5s9(zvZj$jCN~LnJ9gm)Dr<%hp{1Tf+ae{*IgrwuHA}o};%b;!jq; zkKrG6SPDRuCHu2rC*O*K97H1xVK0QSbRBX zaEkFY*|gFxYF|liPjv{CRnmMcYy$Zd`jbA=o6z#Nz9U~5lf|PM(}OjPDWhvnn)@q_ zS%TvS9gK?U=YFJRYW~_dgqzXB`l&X_F0|7$DA0S0nSs#}dQMNX;-CeC$3{A?9TN&$^*`~1dEM=Q!z}T>x8$1Q zt2*RoGDby%XYquB9%3@gDjP7mlmf4$(ah?6Kmqv%9gByp}WDSL$ALdb+oU( zG=3X79}Ee-Hqu{SG~aVMA3mhtb15IQ>R+1aALfQAh>*X>|47Jc7RJqrx9%YHaC5bR z7Cv9RrCfOmKD_p?BG6}tuw#e!rp3v-VjUL_ClyObcoRR(9 zxgxq-@Hvwc1?O8^K*O|u5i!FYGU>EkW2R=vNq$1AeSG^eAtiF(R@w(ci;09t!ba1K z@<66HgM0AR_yj}}r%pOVi{{L0qsRtojO{ZlT!3p(MV_eEy%}Cj@-aW#hsOj@QN*(r zjHJD5Ga3D=4aX4h;K2-3`epGU<9*O8Obo)a zj~}tRi%cj1mY=#w!fhx-gCGG$gpn%&#)q-hpU&m(nzzF4!>xU)clq3uKy%^7Vdvg6 zgUGw%%PuUvXqQMx9J-l*CTi7!QucTR2`@O3>?%_De4wJr_Z1i__YCy{@<*&Gs+yka zpOfqythU%%u139Dv0?uoU=^+^W_)5ER9nh)d1l8D(*fGf3+aq-A@UoQDsw8S^u84X zW~P7z&?-*KK3iZtje4^K_Nlx^aO()(zU*e1!b>eJj#=O)H+&8K{xSO4@dLSrF-=Wl zwC(9^15oHP?VKpY^>|iyxKvDT9ki#I%U44^Vd}10av-WAu%S@8s6kpX1fskN;eGo_ zs*f71Fl=fB9?I)z4*85cL{}hnnK|8<6Hb}AU1NfDS(2#Hn9%+2s^X*PLXE>R*85vh z72GB(z3Ub$zd5VvFNy}j)m)4;1|AIs1swe<4{LwPCuCsqHE}R3D?-BEs0lPnOGYz* zqFWVNnxmw3daYaL9oLO5=+Ch(HeetnL`3%U7e^iewRUgv4827}8z)pPj2P=XcF>?U zF-+m6M}ivqPTnJX26{BY& zF~3Kgy>W8^D}ZqapQ4s`KyyrUazM%>(2h20)jB@k!zu0s}J)W^b>A9 zyh_zDdeDGS{4Mn3QU(Tm^>EdNfQp-)lQXPOyLvdrx;9N;^vT&95Ri%20M>Rvhh@`9 zV|Wxc2!$0K%(D>QUnB=TTPzZ0 zd9HWBprASjd4m@iP_XZjgHH+4Oh1+Pw$?YVkBi+QIyuu$7~GjbW{aDhK{A?ouyVw$ zPRF{~4Ym62E99(U-P=(aCa5ws;OLCe68tyvtwPi0JliBMxU1Qq$DEsi_Sv*KO)L z(Bg^a#D2%@WC#$y|0_7Il$sxJ+l^KJ%S!VaD2mZbs#hmq*!x?~PT9V)rS*EzOiD2; zbz>zZ&gIuGf5MW`{t+lSk8{gis$cy9O(T!PNuC*A(}>Vc5n?jh>dn3I=`!X&u9~53 zl#KX~2=uk^-8_CtlWDftI1_NXC#ehk?y6hUavEv`Px}1MMz5rK;`S4COWW2&{=auE zPQn|G1AubP9I8l*^_hWz2L!~1WpfBjqrAK!IF`=UIMxf>tC#sGx4>EQvBVl(j?f38 z+dyKn?gW%bC11v3QfgAEt^%n@nAQ(dOUV`cBo47`Ec6-=t_|~S^YLb_NGl}0U>LOz zakc!qZ3_AP0c^j2Oi2I?GA?C~B11k!A0fkse_&4w^%ys(R5U|1I$-<1;NpO};RcQR z5QgfoI(v63xAbn7YfSX=5s>OBxJierGUBOpY?Jd|PYs1Fbm8?FvdHgAv;0pWfHgNj zbPWi~GSm)tW*!{Fq;gvcg!&+k1D?RFUkNz)b|uyJZno^bhZ1Xu+fU^?F_KDCN|KZ- zAb-k`2SlCwh@5FHR;VFhT|>wVcD@+}&9`GA`Yws$`0zJkXGg|HAFCNK-+~11dINE^ z_o0jV4=?g4gP+d3)rFp_YhnG|T<2LALARGD_P+|SEp^qD%DS~4M0qhsE{orPt>Ps5)UFMRa3V8{)4Li_!R}|`zDG*xP&eR zZ4mC1+0LIzR0qjL>LOB@V+;l3DHx<`0u|}yVT*cmagS^@b&s527pmLKb;2zNRz@tQG0GJ`^rv zXuVaG5jTkRFZ5VCrI&hN9847sw<_34Hvn z*m6buqWF)fnfHIJE5BFdbe*=0)K6y3n!!GRbxI?q&1fNE9Ca3NRRStfRprO9+Xs<8 zDoRj9dkq#VJE)U_wH);n66T1cU&d4VBKkoefi909cIgbKzZKwBg$?}}>)IEKD30x% z2eEE>NRJ|Xe{pWK2qJ$MCQUxakLG+cAh=@^hw2{_#*kl+lBv~Q9RQ%&BmHWIt@J-$ zN&`sgDZFyZDvO~<4Q1jT4MY|6+=E6wLZ+JLhoRM}(BmI{IMAuL)$27yAu9(|D*}?m9iU}hE%P)-Li! z3{SeabiDcSsH@>V{qZ$QiHcE=4^eQxC(KujVx0W#+Qd9eN7jP56qRAcZ~L60>Y0>k z)*_h*+_Qc@XwAd}v3#4Ehgg{01*y)*yhJ05t@3-@*Zk%&Tdm<8<*YC2FZ++bPTr(@ z4=UQP#Q;WQ{ZYTXKj)Gd%DrvgUEJBLnC*bcZBU^?&*9LDeGQZ5Ehbsm8)Xl0nFwZN8V1?)vN_!bvyKOJcNdw4KuMuj!ZQFJv+U zgv2=u1);9Iv+)v<)iY5D1q=+8oh~|16%Nf6x!xe1FY-u3R>cLQAet#@5_0Z_Q4m_# zyls~7WwmzNx3jmG%x%dm73SYAc!`C5sxqi#RP`~ zY)IX?z!I*}?MPcVY`vO(#%IW7+3 zzwp_Ocee%FmRh}Y5cf@Fk5GezNFR-8%f~kjYD($?v58m9-~m48&Trj-Q9wl{-Mnb3sgYEY75Gv7;gUdds8xl$Mcar}@^M#tQ#E&XjoOr{l9jY> z+q92!E-CAAK(x%PI<*d=WK0hw15Q%R8%(tAgcvBe*fUw7jy5jzYEZMGm7OmzZ{HG>CyO$^G5QrmY{tDVNon;J2-VltqxH*>f zsgA2f^n?5CXCR)2K2rI6^Tr1lp}{JRK!ui}N$y(|*L-p!6XnSMwmdb0fBU_pI)SLJJ_&UT zaUsT^AT4Hr)P2DQjZz2btGYk{4wKcYg%^BlJ5Yf8be%@A1B4~hS4}3f*b#x_D zTWCY>OCCzxx$Gt==;3OWj}D>=BrsI0$d;vD5>ruoH}vDG`aBv`wNfi;b0q=P!hR|u zddoGH=%p*TOLQim2mrA)6aj}zJ6Kn9DA{n@u8b_omwMAfp1C?Y1W!U#?~|MPF|%w? zyXrI8rE$zLleQkJRGp!G5<+wBhCm|Gc@OKTCYxwPe`cJBwl zPBz=j=%eeU{>|I!c+C~=xK-~~dycl;Oe~K0Vxh6B#gZz2%J-$Wx7zoUEgufxWUx?d z0VkGg`AXl>88Dks_V{xcY?0cm83At@ zDo@?M5HSOuo3g_PPiny~oVKO=4)1#LF1-H}+)J$`nGW2^aU1-M+edBL6Qh?qyISgT z8|Chs+X_`}qrB$GQ*B`_GIa+8>j?evUgn)((pUN2ztbEMZQ}GNd7FF!8K39)kgD3l zp8gun@D5Q9=Xixff(2dWPeWmB33C^vIsfdJ^_O^==R%A9w29SS5HHj80lZD9fjZA~ zve2Ph!tX-$7X8qJ6nv@PM(P0Bx8 z;>E=cH2c9R6Aj^3|FykEq)jx2M*kQ3UD7~vhH6MPS-^L+l;C3{lVOqb9IYgMe3Qd$ zIgST_6{Afb^c*iIb8_Ed{Lgrf)?^BM1T9RNGWZ-TBXd&c|DQekKO43*WooZ`e<^{p zYvq3iwb3iU;B!Qy$Hl#uImHeifID(mJ?J^9-s7U~XOFj&D<>C=`j%faApVj0pYhG`pP?6udrD%vpn68rdm7uKXolPxPVIu>lKG!>GyjnessG8H#h)Jg z1UAJp#8>~5ko!{EqMs7l<&9-Z>pzkwuX;&i2-~4}rhwqT(e{7;=YIUrDsK!I&*BY? zJz+AvKz3ID9nBkvaGq2zK4;)#@SmZF?FEJpz&47@8{{(k&-iA1f?BW21{M37I#6&y zz{E;pL_6$Bltf4`tBz*fEX?$l!|H&F=yg!7u(1ZOC$hixe);Mi5 z*ww=rx157yPsn-<+J=O;WdF(DgSH{QvuC{2Rq@Y&J(Txwey0Cozhk8@3csf8BYcMR zu;}XJULyaCWi|!aOgp&!Jds&8g0s3AkLW! zl!|hff}^56!!(q)Q0QIwuPp{kMZ3?*Sk_ebJs&v1dpmlbdhc-ec{7+>x^gn>#*h2h z`C7!B)cpeL%vliX!I{mkjFW11Kayb!eS-pcUn^ps$S6;GRVvgLZauaXOtr_g zWK6aB2l$}{T@8L{vTe03LjMwey*#MhlCPE6nV+H~q$D_j$X1Rea`oLh2a=r`r=tu`6h5yR~rZ z)omc%9@~;3-7+woo0p)(Wv%X=;x+5ZK<-SMY2SY@wxN;*ID2af{vN7iJ;5GocC84Ac!5d8gg^a^Z!uxmSK4;OV=>&?hXmT z-CctuxCM8DyA#}lOK^90cbDKE+}$C#^WJ3d>~kKz>pJ;%e)QB-*XpXS>h#P?=AJn< z$hh>xRUKWSu1>Xme{h@RH*ITS#N$ylmKc#gM8jxvpZ~RCYSWTh^&1%l-)(CH!ush= zYm~jnqvA#>pYdW&O7WxJ7sWXscaP?$UEt6IEgVScxF_(=@R_KCj{*=pdvvL5MvNv` zWE-kgKN1lN>n1xU_3fJaoXrEax4r7n9!-KRzF(*XxmO9-ZJg5x zx9td@s}$FvwNwZ>-sS_2EJC&gIRLvz!UBV^T^fCl`O16sQMG|5Monv4^Yhru=ef)U zv>~;iCsxh!NbxV?b9}v3+m-N^6n8TiOWV53G8dce7)!ZS%W@a=bcv(f%{fLrC`(&N z%W~Bw0oxP6mK2GbkfGQ!Z8>Jcu}j}~EGb+*H?OPbKgMQ$uic%tcNZUT{OJu(ctfKv z9b!0)t_c`m5@QKNwmD}vg{F}vz)5@@gQ}1Hi4~_ducUu+>*wTEUA^l90&6XH%roLo z1hR?oKt~SbaH)q>)Z5)|mt?39WXn648N0n`}4KEA*ux zqt4c>`$&mdn#P4b-$$Wql!Wr<(-c8c87u58=);XB4vAIbMx`!a_^}i$Qn+P9ozB#8 z4Kz}-kmE>t9eF!QUuYNMYqt1ujz*Ub&n5iyg+>Ww@TF?~P83)1SZHoRHuZ#Z&c>7h zUlu_Y6j&>BranYO(yp!b@97-w(Rz7v@>Q3!AHJ699-nKD|px)Fd}}-uQFu`4n0QCVCh{aWI$M29DQ}miQw9?i_}Ez zpVu8zlEA^@m#97UuBw1S`bRzAd+)^gZGM=8O3Yl~-nv6FXw!2ix zrvB7pI5bQLB0+j=)^IEAIX6tlZot>p9{=zF;uCTUE~2sw5>mB8f@d@=o+4tTH;u5% za?d`^Mh87cP({b@V!(oTl=j2!=CK%J!$%5qNbVE&7mK$@+KfMEh9$v3hAiH;Gu#IP z^=^`ZV11SVqaPp`V;{pAyAB=8ZHKqIy7a9Bfq^thf))Yd_}A1UirqWWOrs zv-q5H-=plh7tqm)E#Y}JB*5Ot8J`>aU22CS%?|L5^MN?!@1gf0;Xo%TAoe$pXaO6h z4Oc~){N}e$y(QZdYLJuh!elhc~QF%nSMlusanJSHk(E&>FOHNt=x z6Rh<$Dg^@m8Z8pu8Uhmj+QOX=I^dCJ&u|4gReHr1r*W%5Mj^J!9l#UI@)lU)UnO<42DPv z7Hup=L_cXHKpV5yK%2JLz?-)Zj<`mpVf;k2R(jy&t>GvyQte;*{ARb2w>tae_Oue3 zuNNupln0Lg`8qT6aph~!wFe^1{xbpIY%tGo=0wiQ?n2R*u<3;E|CwLpaLJ=}59FdC3i09Ry} z(`6YI{s?ilK$(Qhia!3I8S9`uK7e=m1P_o!g3+6~Hn7{dqQBYLD1rh^^YrG7zvSl+ zOW%?Dh3vA}HkVkf%~`iPd2PoOX-|6tFuVh3Dywo!M&xv!K|1=z!p_5O0$@^9K9x`7 zz=c7GX-T%)67IcT0==%FS%*J^L2I&RKANn3;4;?;ShT<_G`}kTAd==219;Gm8pn-R zmGREZ?vr0&I4@>YU>Y2@8!ajC9UdJ0of#bSof#7Aof#VU9Uc+qonjNoRl5*7ibS#1 zyLj!r59MQ>k=p4+lyJ-_)Doobj8^ZIv5eluW0}3f!m@jZMdb7ji@g5>y_a{S%qZ{y zz*g6fxC2aF)Y}gu3=CA`lTLc1whrUZC@(OBb_G(Th7jdHZYSJn)o8VWQP0d?zZqZ7-MIZ9m;u2ki<60G+hi`R%kfoBImrsckAIq)akn8Ql>ijQ>MDLQ>NP6 zQ>OT#ISU{m?d1?@(Kp_uOo7308uLIF!*Ue_#yH5K(i~?);2maTK|i||Gh2XgKn>GhaqnK(etcI1bO2|B z2e|I9YOk0P@w><&{i-(z`TwbRzP1Ffr?)`wAw<@p3MizBAv{^LlaViN#2h5)H-=4J zlCE}Pm(aIxkayLPQGrR&7siOB^LZK)&C*<0+0tA@`O;kE)zVG;#nP6Dh>MtS=>|Qg zYpoiL-}{Krs3PG%KIqsL6W@&Q#$RNDXH5iO$2}WkUu}7y_yd0Gg%Z?R5(Vf_3&YJe#Y_b-pOgAX; zoFX)*fmxSZ;(Q&C@p-EMS;mCJ>YtV4%!&t}SP)M#oE@GVAtN5b%n%N;)?fNOhmQn;*5I~>ez?0UZ`nMI48F&;4R|20 z=`Pdbs_IGT$tIT0V9z7aOBJ&2iBZ`hDd+}UI@TdQqk@PmII`ZEXPx5u^Y}#XJ{yA# zzUGx)i=j*O1Edl+Yle%7^n z3Y01MK1eZY{$RO5I&D{?7iZX|L^jN+JKmc1%DbSfs2Jk(lNr;8eF;{0-gv+s=nx2k z^-UZNir$#=`{(s=fVdj(mI?Iz@F?$B@>`C&8T9-{cu~GG+zNRCWgBVm%6j_P1cKm2 z15DG^Gl3wtP{7$g=*ff#0f!CTYq3+Nk+;j<0!~!tlsPDO2s_D{T8O;$&q_@jq8XDr zkyQ7E+m4M+mlW`q}`i%JNd@5cqhVM$IMWVq$0(q215>9S=MYv z8@wXL5532M79;#fotj`FL0QL438+^h5jwWlfmD@X;r8@fh0*Gdij;nk9tQ}pkRxh| z!~uqcn=H?Yl)w&ME>s^Cb6CLgGo`L&0%QOIgBu%*xweWwXgZ@J1sX(;3l$775LC#K z1QOOl0#T@d7eM6)P{D*ANuc2@B#;BFWwgx<(@$qdya3au3OG^+Odm#<3-fD_11UoI z5nS@SS|%^=*%2^+5|upQ$d&*09Yx@gL^{!b^q}NHM-tfp!^nkMDLnAxe7EY2O>$%uE!GTi28&b{y?FM6o zfKgG8$h4Q~Tlb8J=mCE7CKyyu5ChWJml^>ITEz?rqmrGR{Ij(Tz#u(6qDMfW<7+60 z4gBRxUhP_R@m zZvmARs#oR?ps(m8$^;6LoFP@l5yCRE2h*Qy>@XOBmXvgs36A5VqV`qhQv;-$ZleGVz#6{ z17oZ%Ihj^)9UhU2)0ifQ#dom!~#u4yq@@FjPKB6}c3 zfJmM68uM({G|XhZpuG-C_{d$fGNS&qVTMQ^`cUhUW|r)vKc#`B^t1#HZ9awN*sO*=M~Kxnu? z=q1~p?n<`IhP(vvT)hMd;D48yDU-U*phM{dg4ML7&T4*yqu?kZhYIhMl(G4jljbDY-p-`?Ur>e_raea@2HCeQ3Zb5jLU zM#*78QMV({@Z|wTofempgmpnEQ*+?dRm^*JlZ{L)+8XN?$Vkqavb;t2Uq&@r_hAO> zkuD?3+utl#26~T3zwKy=r#-0V-p(+Rw8a`f)kyT0=_h*7$RC*++e`p?RWIU`K_kf+ zS<3+d`>`_BpncG>ck0ja6pM?~gvnn#N09)IA)xC)li54}1`r`N6DiWq`ox*R734Gv zDbg9WNs~Z0v6+_8#<0&&q<~|{GzS0%LlT_eb|THy^8ETk;@sd0q|H+RaX_3GTtU-m zFVAy;iVhfECV@d-1~`Sol!GJloUT?ub)`FBUx5;GD33yH@e{(AQMr8CH5wXB6NLoW zK|e}pOO*zhtX?$*+9~#R8VXDkysDO`m9BA%g-*Evvf6M(`~WC(eQC8?3ircbN^^!auTFY4<ZEYoarPR3bpf;^RKMhqCfgQ%{gI^x&Ga)wI%e{uv0{RBX$9522p5YUO|wfF zw;=Rw3Jg!pm@m2D>2dVIm%uGJRd$49T)G%%pw8cu*+Hg@Y~R8tpZKDxwL9kxfrJQ0 zH>ap!bX4Zp^-{M(QKs0!(tE37E`o%lPm@#u5$9iosdyqQIFHh_Lz%c~V`ziL@G=5S z#M0uyu>^8P0VAYOU>X36$m|8Z7&dMLOln$fUPf8@WpeV%1ilV1mi^$1i^pH1xHE3V zq)*Vqy9D_Z4y_Z}{wNrr zMgS>b=@DSBsb`1E!@z{pkepnEPW@zHjr5^}0->{@r$+#=B>w7Kn_6EdikPQG5H$Qo z${5OiDWKr+DG=#ORe?m1y+-z}Z)+6rg%tBALG3Plq6K~%#Om>c4x$7PGsei$S?0f)8lMT zOo7lK7Z-4WdP3x-K@Q+KVo1uDQHy%P6kWF!lG>e#rIw(J*|rtZ+nrG@XvF9@IQ0oI z05#G1)&7zb84!b^D2Efi3WLQwy~q?KkW;ErMy2c=+0%*Lmz02$dd(PBQxEiBPX~XL}nsG$rngUViHq`C~D_x0aVijEb5B;Y*l~#oS~LlA9G9 zQ5Tv&D*g0sRK%HS$}WxRy$rXFo=d?`iWBW~O8PPM zMa4rg?Y=7d;Buyg#a1TPG3Zh>rIo67DT^fd(5m`=S5XWTACm>CqIrbpLRG0~n=~x^ zDo14;vett}!Z0;xuC){`U9$G;*@BRZ#7Zsl9ES(hS#$(x8U*K3zEOQL7xGrrClW6U5t7oG zjBV|8XAK(!(o!esk&bS3mnqJ;dd)P|9h4atqM3$nbi#rcpM zE@PFiKn|HfEPejP&=3kljK~nRj*Rgyk#y*s%3DnS_!eED1oKy`v<;ARu+JZY(kGH# z+=XQh2+ym%Bjk=e8!PdLF=r48s1~eSVC?m|N|i`dO7-Oq%PU)3Ezd6t4`3gtJA8Fp zwHt7H{5xz!(cVK0;>#CfQ!C}gGbLx`K~)r7K-0k2Tu)7V6^9wq)AN=@E3-ws^;;QE)#jkOR4Ida zE8zOkk10h%dkff6NVH~B?oFl}!etJ`S^+C#5uc(P(O=N{NBPW(wr!pxcm8A5&Zk@XnPU<5zP{!!^UrPO%PckG`E#h?@Xq?l@%E` zYOlmaPv?_p1=o&d)E0@gzB@eoMi=k)W5uPCfJ6BHo)hj{)%!;cwKMQJc>8`#BaSH& zE&8^~P1tIJ1=lH|3v;$Ps?7}(@z(Y|GhAhO-y^MzkSjI{O#F7^W3B-c2I`r&G}v9< z<`az!)U$8Q2mQgDvRmfLS9$cm;Kd%uPWS0F@ET{}VYsF*UI7jA$d$T!ZpjU_AeJwB z+T4Ot$H`iFdT#kgcfu$i2ih2dP+v)FRn`m(rFv$vPkr{tKVmA)1%o%Y-Cq(pvP;nVB2_I^aDStm* z_dJfwS&*^{sFgtA zI4Wk-&Zmj)9_MCGfFeyv7!}iH^~YFu55X67X6uS*6+YBB+|xqCbzST-2U1$r%}*oU zJ*oNjOxl%~3Cb*>VqpO+OzE5P$_$`lQURBY>6_6`v@qnig52of(XJ$^fgoZd0c4q; z-)#54kf-nR?HiNF@BRdKSrK>#csi$V*%1k~xcnNw8?5Ni4U(b5x9Nn4RB7XwE1)00 z;zb?aaF3vCV}IQ06Tb-UxFR5N9PKJKEM=)xzaNwuIa=T)G}^y2#h;0}X=_3>E`G+r z60ytmt9AL+Lf!#1hoZk^vR|#?uNHHiW?_2&q@r&3z+cE+vcUV))+3aq8Sa*C{mUrp z^|e*kVC0HSczErc<$Fmw>1Q8jf|}tcruiGWi?#qr^@YV}za|Nevz6}iO7mmBasN1? zXK^0)1p~w>c8X)jt4|#GS)Zf|dnWa&#{vf}W;hE9{lms>$T*vt*Y_NpXGZ8a2_UIb zdpm9YVu`Yk4l<%)=HiH=TS|4l&$sR~F}=A*@vS7oxdPLVQ{tWzHNww|!xc#x$hw3W z&brJUVsH7<^d`<7e?-!k3^s$u9bXXM_s}Rj?gw|j)^OqAs9&gP(*x(aTsaxJi$+(N zo8rCu`?KIWI`-^|BC0eDR6)#mq}s5rLqTSXXsbt-E!yB7H6TCBR-`F69i{9zd+9hf z-B%?MG_A8SuDrSH@CJ%#!jl$J)pP^rxsC&A7#c9HyJO?klU#JgB}%(^Do99Y^wVZh zP@8vBXHlXKtfkEY`!5^FYP&ZHcFAh_q5DP80%;AkIu3dC)GUK z2eH{L*fyof>XemXRWj;_V?+#PI-i~eT9uons=u+{=*pJQ2E?3?<6skt@1AH;V_?EI%>UFDks|?w z?-n&DzGL(e&)f<63^_-tW0WV1wHfTz*8!p|8JX!Zf2!O8||ox_-R| zM||^uplB-*irD!UZk2=b%GQ0^A6N^XJoUifC1ldYJ)m~xNtvHJ9#%gK-Wq#fV&4u9R%Ph&mWOnhrxH(VrHe`?H>ndf)?bI4qc{^?x&(1^PGz_e+qtuMx zDyRWj8#O>SWv?BtQG;MsmXj(o<3)0KX1^NzH0a&3Bh=`L z99aTosr6(b%zk&JPt^(WviFE9`d&XIp|7#GIe^kXcnOPnd;`>z!GqUG~)i=Itx~&wso`+LrtI&rLZtACCfq!L@ zG*dESoXm)8rM>B*@}JrVI4FQfYkT<2c$0nDlrA?9qM%1L9|cQom(m!9O-+C6;cYH2 z;pLIplG=XepTf#PqGYimbux{7-}-GQ+BRj$#BHyZZJ(yzB@3(Wkg*BgkyG6!52$XH zvWeyzZ#`DyGnr}KAx;yGqrVL-rHk-lr|GKDqmUDH@~#`#I8sF#)QM+QjhX{!@}b(m zu}75Epd~wMRq!#}!c`aP7~)o4Qs68P0hx8!+|+i6 zi97&4QMcSAa;S;K%{rtc{#v79ygAhBPQYXnxM^S+9?7+X(-1i4R2X@Xu?RzK2$y49 z8rd~p!f4}QsDr~1@|O!{8=h!2ofl`!Hp)$(L=YZgDTyJii$d{6N*QhR0yIp2c}PnC z%Y*4=NUJ-tgfa|5EhVchraDtx;&5JK1H%9fo9(uC}DPsNQ2B~hMPvB9= z81OLv?<`TgxJP|CMY3p#^qKo4VgXcP8j9Cl%4)+Dt)ahJUTYefJU+AXJw#o@2{zMw zbJ;d@anX$X2Ot1Im`VJLoWyMW4d^1Y!hi;0{a1y_Ll=PnUIDfKTly6Q$M0Gv2^^{t zLsk@pF5>AcVRIB8sS+DrTq3?9-oZObr?(-j7olasm1Y410EkO2K+SN|fV{5rFNZ$$ zF(L^2WMaf@?_d1=BUyL?CXClv!e&F?G|)Hv#-SwAXZD8(?R&tK5KNn<`>@>}^}72K zcAm*Y7DWLoHZe30r-9>T`k*f!wqHC9|H}M79z_4~@FH3G|F;KyB*2&ghbF{qLjUDK zeync}vYR4gk*xI10H6-=<8XiyWWoWGk@@0F2v7p$&j44-{3~+C)Qo@$QondsCR%jX z1Fk9x=|R$+!GR6X;7QRtoZnmA4NZH$b@uJPC7A4DbP?Lkh&7EfWAu&1k}t1N13IcR zAS6<|05y&bL|Ka-Uj#Stt^e-uRpZNef4FZv=(MAyJ30N7OLA0w>Bm*`+2FjO%Ok*s z%Ac>h1TS-pOBNyP%|Hp32vnUr7WSc1hZU70U0iLFmUUCZ4<{2xhWau+I#Mrc*`L9; zILW#p3k}sME8e3KO(9}br#z%GUPGD{?UEAd2=K+aUJGMNr+5v}$pnqDvuQYY#20WQ z#_=#-X$)RMPVZW1PN~SX(?|-CZs=(v@Z?N6auM_(G^lbS(RFz5Bkql(~zl{B?}= z09-nvFHL&^O@0-u?K7GigrP)op56XQ4A`liP-pCwsUF&?!FX|Urrr=kYA z>qJ-z>O|%+rI`VTj>AH=tiz>e{)`po(Z3GcPP8em!(=8ykN3*C{MHuaV6HLB)O4}s1bF~Yo=nj-p<()rgyERtt&P`8X5 z6JMEVF}|FJ(HgFa#MeJy4hE|RvohW_y*II$mk3<^)c-{AtXye1Zc#nr9qvkII!8G_Q}==peEd78`V? zF5xUHE(G1LZ%hu|zz$9FE-okCchi1&c(+%0#Bm*L>b{?IzBR3z0tQ8f-j5rY#L4UI zA}T`N0ra-=lv>HbK~$XSqbiLQBVY&$Qs{;o11qW`tM7f-=6PEhBjlWPMK&TgF0%R| z?=FH|BR!XsXebBnmXOZ{zp-LWCHMqx%iKx_J73j)2RB1jZ*QThbO65AXce{shQH$M zrUe|>3cdfLVxk)DDUv7itS!PCp>~yVH2Wsm0h+Bifs;jw#KIS6KRzJ0RO|@G-C6{; zbkN}{(WU@mZWf3atiywDd%t7@Fg`@iZ3u2so$?cHUMlnxMQ(9jL(Yk7uw0<9-)R-z zQMmj@_y9Cd!l%yPun7t4o6JszVit*ceX2-_aa|lyBFQ7Xyir;MeLTNxuH0mLPrFQ7 zZwldpuZvl4>OUwiF!zf+WF5~7KlfP8T;&*>FKST1xXm-i4ed=(8^V!bH0i{~m`&o* z16K@Po`J=gFPeVKVVSR|BRNvH@qj)AC6NBO$XX!{=5F4=_Kqm_R$z7^`V0SpipdVJ za2`b)xDZpj7uo$MnOTpdWM*aE}t1f3{Yl?wx=N{o0xVV^z%fZRlpEk3I`r}r(gr>29 z1=f@ES+*z`?`~xZB|S;4N-FRCt16bYt*IiN-IH8h$kJlseIw^ok_5Mx;#VZ2Bm5`( z^qRVCe8F`6@|iad0_pl-RDUlt7oIxE4++bM0mL+9eB(MIs{REABC1Fgq!R;N$@m7@ zekg-ci&7Bz#0Y__n&~is5#gWkP}a;ReTDiAW&MQ6E7;$GEN`>E8xZB3f+oR2%^;-4 zLgk43Ac~CI@oqvA_uf~PHgHQ}` z-l3gA=l#`97ly5UQbsu=*}oHJJ{zsa3;RKs+bf|S-R}+7G7K9SYF#IMEi;;;GD)@! zxXcX_oWJz$AcDWN6x{SDUupV};~KQ5vS~`k>~PV27XB+If3D#+{$+ zfjFMkdArh*^62>ieWdNHLAuow4|BqcDv4)UX6?bnC{+QV-&J`kDRs<{tqp!7a%Q=e zh5eERgSXF$GfnMA(o8WPRD{F9FFDafw_QCxI@CK)&_%cy8$!2D|GJ%~i(rR}a6NU; z%_DHgLlbc6WPM$Yq$o&>pzXI=dHU%Ct=6EOV#RR};EkWvOTl{5$(i(5XtFnY(#U>% zSH2WMprQc5s`*$sYO{sis#{GKi#>?^!HZZdL-Wh~CXY3Ja--rHI#nj!5|{N}up*Ib zO=K?)9jkC>jok147x{rQJ3d!{Hd!+U3VnPKHRG-GU@TgWjkB)H+MceQi=$!xcy_c`fGKAaB+1u$sGZ)CJgPbiXS>p|v_pa)1R?laq0hOuWYd^7Ww#Yli4z ziJ|OuKby6)nJ{4;x-el?_yQ<{AJ>j4dGQyG_iJfQ_?Crqjhyff_BMv|*h`IcTEKhC z$mUuMspH=jj~eWIfviXUK0fldGE6Wv6LfbCR^TD7uldQNA*zh@7!oid7LYiOM&hvpPX5q1W4qPf{^T(q`4u<4_CXS z&-|@DKhEbM*GG?yb1tej(EQRggw~!9-@-f_Iy#T=|D41B7UEo0x|3yi7H%;rn(&a- zh1Nr;At-w~ZXWdJGFE4FkRY=~48v%vwi3r{IwGE=4sH(hvi0+5k#pvjX-cfP1$LCH z&(V^3FPjsJ2G>=tP30$n(;AMg;xY7H<8#Kk@O@~Sp-pQ{jN$&-wEjA07g_|5+!AVK zt&4=(Tp$#xCb3c1wW(5XtNV$P!cq`J^}xe@i{@gr{peOdp@bJBpD;avH;Lr10)>_Jr>W~)+2CW z0>?FHo^TC)>R!N|v@-vpi5`Q%+^1d;z`eRMmYW+2Gsab`lV3%=Rj9BDYpMx#FL|9B zF%hm9YUvvs03&)o1-SqBhXU}8w*Zy_KaREKU^%#bftmy0j{v?j^NSsOVy-cW3gjYClYhp`D=Y=2=izlhg?zzd@hc)8&ZdAZ^5E@8Hj;giMri$eWJ z`o-CPlO|ff*%}c9T_xNG-~j+hQ(mYM8QDFcV<0wEe_u*(L#Iy6_KVT{qFZ_|eB&1d zBYhzq0*hkAke7hK#btlE$^ahN zUN{rz3uhulsvG%>F8wv;KaA#usQty6{zKV*C&}P--`su27q5d)h+jR0P@cE^>>os{)_f~8SC2$ zlN$qYv6(*jVE}bq#QTNpE@85zDKw3;aC=#@`Gd_rL1=L|3gb zVw+doIrNy7*f3uBWQMjeozO7k%A&x;=2LHPKnqwa1{Ps9R6~GbGXZ`gD4WQ!>qa$< zHzghY-<<$*X$v5iL+}7{ncy>9V}OA3-kAyTFBPWSHg1ojQEB(gM=OSW{$GFm$Uq(5 zYQu?I6ND1P$Ib86ZZune2BMfDl^uu%4nzRFayeN8@EHxH?`h|uLYlsVCe{bX(~U=S zwhq_+WP%E+U^s$qw-;o|*! zFNm5#YMWaMww}q2OrT;4{Sda!TG`G7cl)`rH=x)dbE!rf~w zH>o}Cnmp2PN9#}R=%Cb{>u+0|5=tePvjleX@Q{Atlq+Cr${lfjFUKiUPN;CiLZd>> zI1tQy<&Q8S?$I@ndG-OxZjE$s$BAuwToM~^K5Cg1r$rKO+IY~f=F9Rt_nsF)KjT1s z-AImBG$ey63SEfafE7Wu>pJzYRj5T>jdt`g#mFoM@;%`7470I?U##W#Gf5Vc!RTe| z<(5_SVh;-X~Os2 z_2GCTWdoq00@>xE2{lO_-9_v<|Li06XuwMr^xBPZklWVv!}f4_v_DcBFqVND zGG3z_TdH2|1+$Dg>y{i4aEH!3n37|fz*A`$Yimw^X^mDAJFW@xkc{&D{C*C834?B0 zPH5@7AX)vF7_Y4HYPMt=BS&7c@j0hr9W2yZdBl7~5`GtnuOJXJI;4dVNIt;Av%>R> z=7l5l)^M^o`*5(y!Rs{pp1|ywRoS!c1;l1nd~VY6+O&9hpwYoaD-d_4RN_)R6d#$G z(sdJ2^n{*hN`F{&v9dR{L)%*iso8(QW|2dmI!vW~ijN!JC|y`xUEiBtgDE+dZL%tP1pKNL9)YI3 zN@QOc>`Dz6PhH!~)V!V`vNy2x{4QQkc6a{NG!U~O7%13#2CO7nTe=*9bLJ?yiJw1R z{urghQ|SgqKtQ7Y4G!qUg{Xw4=j0J8Dc$NEYo{HSYo$gOLwa-f4t_9C%?N9;nx#NmvJw-6i-aF#IY!AXfdQOdHVHY5c;`)%nKn zwnPnkph_L5l#{YxAK)M^3OI@@C5(VpKdX_0WCue?`j+NN<3e|iBun9+phRu|u(aJ4 zn4)7cL^$Bh+jAbk(;;fdKF8?-l8&eK2T`hIAOOWKN|X8GWjqg0NeB2lE;rifhjX$gMeTT!%2FDp_1>c?cd{5m`yf@jL#_e4TM7vKzm z(~xeSJDN0PStia`B#~&-^LkJkenurFC~<`PkgiEQQC;miEN>uMKFe?V@U0vIm1wa4 z+s}s)BQEX`)FR}Hvp{{s{_`11QmYZJg#aXML3)j^pT^C%T?6VwW?aBM&VS}w-Zecl~y&WSa6>S zMBc2VJXHEu{#XEf2@>)WZS-v>V+-IF-8J!+mg_`#p0+D}^KGq*)#5`bOSuacbGUL; z8cj9r=yr|L9x|poOE4zldfwWrUv9j%zIxv>&xRDFj5fz>A{yAiEJ`b{UZCQ1!H)>W z8X(E^qBqFARAxn4X(R9^TveBq zvqxkd9bSs^{7G;;*lK@MO&~-w#w|tQC0WJntvH~)CiR6u?Oeqw_;E>>kUF)ya<^QD zESflhk%QrMriV&5)BgBvh>$2-`-k+d?b}ab2^f%{I6-K_B=+imtj|*7JF4P+*sGse z{}2<_fFYV`M_tVxKk+lYCz1+3TosQiXX9fqC>4HN4f}F*n9RCop#as7?%sKV(v6ofFvc2*Uw~i= z4;oUH?;!;~{S|?{HK*qyj2)3Ze<(tJ;tycJD-`ZRiNChA7Xx0+=3l7Qtf!UtNM!Ny{+?rPFb+7)?k6qHFjWYxN99B!{0j2H$ZEa^bPDn(K>O=zCn{wnNu0sb4p7kpJ65(u~E3N zG28$|z?X@`Pt|2<8GVW9l`S^JA*|)v)9~S*H`57Tn`iuqgy0hSE#BZEM;}#UFPVh$ zYx<~!t5|SjBqPe^uzA&aapKC-+=O@NNn26ntTaDow**4gu%%#563*e&x~Lij(^M#e zlTHhvWjdH4>*18ifCBLcVNuJ(TW>tLr@@7cqvyEd7Y44p6<}%Za)ZSLB9;+bgeB3} zj_H07&FmhW-JZ714rW9FhYBV~Uc%#rO{L^MuKnCL49V})S0Y5g*1#AAZ0E;ZjUQu_ zPxFpewLl_QD$3@k-SIc5{#(*J*nUTdG@zG1UN#1nHdbcOFu%@#fQbG+>I45R{Cy|| z`M>9{&wQl8f2kt&pMU)^I#qDQEPQ@WCh!l~{q))z2^y6pmny~f{o<$sA^+E)Sd@|M8=jo1E{csmJ4Yx+=y(VfIv zwKLb{W}`pg|5^qAnZ!cG&)R{YJmTN@Kh6I&9?#)w$@hc!*WY;df9XGHe!e#m#rxT+ z*k{FZcu zx@{FMDvF~+3DW@-alTipIZ-)5UShL2+K~y;U<+%p!R=>e*|Tu zmn1qH{T+YAAMmf|&+4<$)9SLK_ZzSLFY!Hr-@y%+pfG;piT)*?Mvj>Ah@?#Ocm8&F z|9Adg@4s9ev<`e{M3-WO8AJQGrVB`a@c%mh{D?J#L?qg0#}5Zp_r)zHtAFtS`tJ{v zo7c!&^{~ZxihIHI2)G~hf55-Kel1d~jML88p8CQKEzQ%YV8;Ie|2qE3eB2~x-}`V@ zP0;oo2n8;qe~E8gwVaeB*Dw0L{@DM3e;q$qa1=P%c0mgka}0Eo@~3R9Kj2@--+goyeV5BS&h^CR_HOTP%5 zcB=6;Fx2e*G`9V}>-ReT3!~PARh$p)=Of51qOpQ_`G3H_UVq*!3sYt*#`CNqHO2RI zOQr#Tz`u^aFT-^;Bvh$x2N_ytQ?(gf`44#5-wW^W;}w$fvw4{hmXfS<7wz}+I;%h6 zU;D2iJzwYGiM5U^QK(IIXa2_j2mI^x>vw-Rnv9*U@_YY<`UC#8|3%#mx^!4qr}eCW z2+q}Yp4qMcUBB1(2a_-;LwP7VFDB8uQwnRA{6F9!Ugghzr-Nc?<_pFM< zAMmg5A0J5X@9OBkbmy;YyS3q7I(hy9|2qDsg5Gy-Tbz3oxt$R}TE2KP{}R6lZJY5E zdsRvMkwd+g%U_1*5BS&hd+-c99ih}bMYYmYEt=SE*xmeh`JW4qm)K`0E5{VQ@VU!t zs;&P6{MZf55+9|IcNzRdN+gKepl-F~;UKnBxC{f9+p& z_aSKJ36$1uMSrgn!)R6e5BS&hduuglkQ1=PamV|pRj)8{ME?i;>-~dqLzMLGXd5bAMmf^Z<^jg-GHdp*>A|e4Vo7*ncetz^~3ZL!07$nu2yZ>=}=5O2A2N^ z{A>S&h33Qdt3IO$o>}hDGMo!mf55-qfAht>GFX3XxWj$S>yHMX1N-m?{A>R;2zgVj z;Pes;6;m=gB8G=Zf55-4Uw29rfwU>d%J_3=1rV!^%If<6&fn|$=|E(H%14Er;hZnl zkhi(Cw*LYDI(}>tYWwXGW!I+CF+NTrZPI{0;9u`QcZ{Qx?>`)j1O^q#*l@}(Tm1q5 zdj5jJ;rJU8P$F84mUc~#F!KC=z`u@PXfN6K!*)Z~Dfs_m?=FL?dc%L=)7_0UNJ~j0 z9TEZp0@B^mB_ZA2A>G~Gf^>IxDV@@F{691Myx^JnG3(7aGiUS#BQT%2uIsz*wf4RC z-at2d)zr^HIDj550Cf~Apsa0^Q|2S-fO_TF`hVyDeEo?2ez5QJTnvMFC6tmp1esOv zf`8sWH@K<~(|cP73>s{DJv)g;>lgg<{K&zOWT6t7j<`%N;i#oOjs;)v&+BiSHr|V- znRxOU3wUH5CYZs!;GeHQT7$Z&xlFD$8Q+-k&VKBmowfhY?|J{LP($u1iHHdf812F` zgSg=h0DW5cPq}G)$7yR@5oa{n!W1Vmh zKwc1_x7-$B)unpp2`*)ugyzG70QZ7_o?jYoYee0x+8`PKCV{%s*5|p^|IYt;|2Cfs zCVK4&+T%y8okhJj(lP-0htBS^P(IT;(EKI}B`ySXUudIi}0h#einM#$QFG({|7(TEGj?Et;v9IH0?d_4#Eo|{a!3+NR`h8FC^Bwc4t@|Ubl_aiPSDDib{`vV^ zOk6NN=;)~o@+JU1?@V#XC1Qg!Dm{86yM1o9$_xJa`NMqPuq_X@ku*%Tg12(?wt^I( zZ@k79XE?a%Ox*u+$0Yov_Xm9&bNul=I;BuaPv z#+y{)oB(>4aT#ec1*hzI6naP52ij=C7yR?%AK^v+R1J6g$DYe3cZbEV5e=X}VYPa5 z#2O`Z$r|WI?TyO0w)o%qJ+JT09ZJoseI8U{-ibp+ann@sf`9(_rxsi1RMryc5j~%L z%Qpoj8;*3V1zpFjT$Tdv$#+U4f~ zT0emR>r-;ykp|`as)N>#$_xJa{&58s5)R?8fclI`mcgIaTUzi1|9pN-J;=DXeNzXV zY9%Or>s0w@FZk!j&m+vSFue}ms#>+!?sjxb_GIC|*U$6wA6!~wWA6hBUZH4ZhU?pg z?+pMwi3P-(DZ+iTRle{WlAGK|&lmjj`AwrTt*&m>iF1>Mbm}$HmgQdX&*%5G6G!?{ zUYKMSI@J5dfNPHV1^;}0xzSHr<@1Q-Yp&6;E5_J8ye!)MVpGw^cX&drYp%8S=5;lX9 zB^N+ngLg$pcP3(`29C^|F?>G(_JV)jfAc$o&*v;O>N$*Npa1^Kp}Da+VEIq65B7@F zA-o0EPXy?p!(T06_5VEP8iP{$Dk@Z?1JK9uqTLpL4p|5FPXo|%q!Ng*KVrQH)jyd9 zHb1@JK#anHfP={l{~;{*C(MQy{PX5*Jikc9iLt5Rd+Upw&M($;;gFs$_~-Mh{QV^p`dRVIL z5-<4Y_wNK@^e%178bzMV0_Mfb{Sl-9ecTT$1{8eN7Eu1z)4=jWc+ig>w}8N$TP>IJ zWrm(;2k0$`lO(vcOj1F|FA$(thHdLY;T>H(b3++bWQelgwSBy9jK@CE<;@k^LijQw4yY7xlm0Q9qk8tE&$a7!T11<+5<9nN)Wf~$Z$ z8bIGQVWUJm;h5gqOxEK8M>o*xYlPY!c5;(}ujr@0h&%I{{wJO|q zXK5l!PR>CB7vh2!{QvLzS&ia{6Xu2w^40)-4I>K{?{GQMMM>0%@_XFP|v~=m+G3PsqNPzxry{~x#v4#!E zs{r(DuqsF^`;cMeb1pGcvaIW*0DS;a$lOE6M>){^J43+cXOpaA2r^wc1@&J6&{L!; z#k%yfOoO}=K))sz>AYWl$qnjX5TK_kt-W&@K~4tMhXd&CyQU|5QLTkQerym}eg!go z3Q*VfhM?n@2+&Jtxnp@XxPbXn|SSCdAo)nzUW2?E^NQ0s;C6;#i^`Gr9?9C2fTr z;}1hBFZk!rU*dHN(^KL#79z?V2NGV&AYBwOv*23EQ9LHQS^_fc`|0-2Z!XTN3=Z=7!RN zhrbR$f6l^O(P@57OrK>KW7taeiUy!px}o@NIqWp<{tK2O7#HEkNguHJHM4BPb`EML z+Ey-~%pPm08UT7|%hE78#J{`vK@(()F8`P%#So3DBn#n>ahqyT+x zX`=}rxa$zepLG9se$VS?5y1CANS?BR`fms5cW*y_E=vju1l5lO==12dKB**fYV!|? zxv}W?=;^%RpI^Ua4ysMRBjEl9c^ZKJdd`risak>_7^ z{{3O;&IW)!soB%^bHkD+$a@0xy6R|(HVTEAATI&XE5J_^sAPf%%asWi*e6n`paJxT zmjl%wq@1lmey$T(euX9WtkhDF&2KUp ziU-i+*zCipS3yGKF^pMby;~_<>j0MDXy%(li!?lGQ2hdc{zrSuAI@RyJ5YUVfF5H^ z8ImF_X)sG3c^)c4YlRD-_e$(2r{N4`eH$dz*R!wM2?o#yrrISKyI<`=l6@QyO>`0I zYX_Dev{?{M$?$IjQ2&tty$*H#q1$!r6R3X`fZn|S>ZDVJJrdMEDL}t`RGYui0^SYk zf9D6V`QgM3+ocpaQ9=Dz0Q9@L5(7B-god9}19~KLN^)T2?Z&ul@F_8yBfPRym zfQ&+0=T32cRqhTaHwF%%_ng<8C{pK_{(`^VC?NrGQ`wbhuAo zUu6i5Kt2(m56!9bUI<)s0C^pNzAKuYO%r06UYgsUx5x-8js~F5bL4$}X9N2iPMdn(7lI8Xu=K6CI!)Bl|QC%Wk>7eMc!$y6G_)UW>OCk5_TYHkB{!=c~rB{?|?becue^7KC8{DoI!a)+RTMsvtl= z`UD*rRKeTC(orlLG=@S62hg|R6kGShy1Pl4iY|$W!5xj&1Iur?6HX;<&+ZKF8fKXq z-DM^bpdTnlVET5hfC-vk2cVyu%^ciad|e8fp9Y|JTx?&68p}}x&3{q{Z2nlqhL$eh z_AAi*4FG+TGy5Nbi6&yu{GI^)o03)y)Ow$C(EJhreKx+fGTUj-CTM;%fc~o1EI`qs zS`#$?TrIHtjL@>X28evcKcfWH<|bv}WdQVzk;tyl0kU(F*zf4T1eIG&UhvOfKY(jS z@I$t>QcEph{1AAr_ayg%f4=`sj+bGH;TeuigoEpDFWl_Id%-`i|EhT^|CI!Lf;46O zCiKR|G}sINd3}F&bLsw+<$O^6zMB8e|9Sn=eq!;54{D~M`V}wu=k>j2M0tsQ_K!Pt zeZK~ZnQ}P+^slY&(F!lS4rQo{nRRwd_yhrZWa|>)3p}24%7vWVQB^rhIDlUBesM5H z!e;~2|5){Z=l6X6ReP7Uk!TBfQ2&VlJ>6U3lEIouV^IG(06kJdrs~SZG!LkM8i2lY zQI4rxmwOM?|49|F`3H<=SqSeNWI_Em0QBS8NuM|egX)@MVd6tEPiQ>>`hK2BN|$&7 z4gJaKrecI$0||h>L2@4<6x^-H?@VSW4btTf4WR$1|BJlFC)Nt&=PH5aw~Op?eAO!Q z734DjdX%nFVuikJ4y>YC*TAU(A`^gq7soJMlhm&W^HU?0Z+4*pl}TQ2hdc{@q^GJ~l!yp6sno%qiD* zZEJwOzxONKn0<}`$a4Yo`O}}_`9ix3KpqUBUqp14Qpis~1Npu(VEIw2Rxfc#D= zu=&|zR7V-p%r;j^?nR;}af+j&Y46M&vo-}PN0RN$Ppr!eaMW*0OwK+jP=3wPb_%1D(dDzJdgNp@Wb zY<{UbIra0wH``(R3jSnxQ>N`N_~-9mkQZ-vj=08(xg<-0*ZH!A9{GZQzJCvB@*S6( zg(U*#k6LRS(075p6U=R#XZ3k5W*0!wdd-euv9aAnUS$`mkYcK0&Ymy$=f^M7sf#@lT6Tms z%E#Bz)wo~f1^>MN=fA&$<^}(}{}6Ww*x`OHqqjPoJX}ZZBPV&l^84Q}4F3DizXbjz z@GpUX3H(doUjqLU_?N)H1pX!PFMY`(wcTV5^-$e z^ZgQVX-`Sc;&$;Stx^T>CrL+ANgWk9-N{F<=ofDSeCS`11tsO%q(*kRzMgi*orceP zy;M$ecKftw-h6#FNR}G{naUk6{z(s-TN1bInCgHp*_jPKP@uVVC23dr{n4B%p3_C& zOj7H?@p0`b|KN!~8>4e^J?ci-W4g14H}BSyehX}A3u^tr)2x6RBLDTb-XZV&ImgaO zmtU5+b7`Fw5ufssw!Xv*RAQzhwF7a~+h4X6$SiYu-(b$&q2?%!v{4@#mwK zx5S0D%e;s_u5V^FgX6pCpVN6OX%nG_WS9K}8f8SY^Tf6r1|8Z^C1wcI;eRx zq!~MU?EMCQS>&cM{79Bv%jskjBj}A>PT*l4!4(M5HOeA$Q=ez?txms z8qLyJxboS2R}cdH$Owtd08_j(*sV@BY5Mlk_>|vbkg|2ZN%oV~@@G2^^QO~2zL}+& zBBdM`zT(VZGQpN#tajC_XGhLUVUy`Ec@|U_y^W?27wW5Ok$OnHS(vkp@bE9RB(%1N z6Zw^&Xhg1-F|ZBa^qQ{fm202cjwkZyU;X?*yT~$YV=3)O8LUITtL1DFnlA9CCvhKmXCi792JE*DJd4--FJ0@oA=hsY(VW8)N5&@Fw4$@tU6VQn?;~v}t_LX_!zb!KOX4 z10yCf7#odb{9R$PQ7bRj-f0j^u0S&{*0*6WHh7}@tzrMK9nyg)zE^w9u@sc}vf)$q zWp+6^orCCd1;bI%Xq@77Qn=hzhIXQ2+)4d(P2}A-JM-U&rSkqZ^8Ifk{fZOol$bPA zRGY}%5VWs3jntiU&Va8yAsXjnAC4} zBrz9TA0u(6h)EQtQ@<*WA*_|MdHA-yxqCq#_3%(bs$Q;vuU@3_M3qAXV^I5&LtFBR zvcWdvCe>+rFT$fE`2m03lDD|kmqgKZk%sf8HruiidfRbOU}$--L4WDS)@I^@?>M1} zclEBUSKjzneG?P+9UnbB3A-q_BVG2_u$%Vn`gGq;Gu#%`W{%P3Bjo0@f}%h-8SJOO zKdX+;@Xl(P2qyQO$>*z_2xm*rX`XT2w9MZ>T)h8I{XA0P&3s{Z<7hcdFH1%7JIbgo zBM04gW{?(Fl1DJQ9I5wkXMD-!dow$qH=Jq$&vV{nP-2;Gewo`n{blyM(E5|M_x)s8+)v84bYe7 z6Dj9@dj=ztL8Zbos9*ZCDmCLIZ3V0g`g|OI171w77r17NMV2 zp=uVM&>$m4dN03+tRVT5Ly%L_`^)$@Kivsc4R@x}rkvz4((FniY;NajfrRq@ZT!QK&`Mnrq$%$4o6|R* zO;caqGD$7uKDmhX!i;im#pU3493v%yO&~OIJBSoR42u{`wi(S? zZZF&Mx};Fm8ZU*4%sOKV(q*o!P$p4@3t5CxxG?JH4V26>MD!XP90GW$?{*Y3;oNDt zzk23poI6)oAmAaLrWAfy|u6C?V7^27)G?@#NFz{te37!Q$Voq z{1<6vr?+yZ)=A11fw?yJJ#ayAd}3T05@f>OLVJnhh?9d^>_T|F*Ed2LKc!G%5ERPu z+-TfhtHnU(cZ?z@!qc-`qvbGu=Og7KRKtWc>=;FigrjGWL&|wn`G&;rHgcUgm)Z_l4}nCo3g|5HtacplzN++~uhBC~vK!N)PUj9~eg} z%W;*WMJ&5&jzqPNjxF@=+TyPI4h}733Jzb1I>Xav!ox4Rj(lG zCIOk!X(Nl-w;D(3Ex%PJFAC*)Q4Wa<*Fp<3+|txnjz5nlGf0#Z{AD8PaFwaz0%lN< zZ`Q7i+mVakiQq`Ehe(A?2z@cW)jYYI*!P=`bBD|^>)ytVXxlrKNQZS7a7n3X8mC4r zoqS_EnQ-~xW6CiGyFOk|LMy>52fJd{FSQl!;J70V- zvrIqFE(;@wgvdP!o>^N+`1pWl%g>K3YIPV#y9Uj5H_o5-mEGGp#!P()9O`68XvpT* zH?A9M*WnKWNYI6-dyi|%Qy(eutE|%1v%Uy{v9zm$Rf{Lxt;5xTCE>!-ASrW#L9O}I z-1}Df`$0&6TR~yzWI$}XE6+0XzVh#)k7%vxUKzfW-J+Tfs`1iZ;7cB$%YQqsc&Fo=0mu_c>dr z1zLi|0w(9~qJQ~J9SCPWfp)WPmv(oN&nNE^5t?{p)#75Y+lL;J0! z1>E)1SGg&gcG(R?-@SEwAHT>;nKS>(Vb%%4pgE~*X^%l!dp_T+`YP>o3?V!XskJ6a zSl$9=TX)`o-Mo?V-cw?yeFhtjp=8I#i85_7<_SksFLg$?=32I;`KHB5l zLDsK{nORs2&iOlDWx)Ho@M`K4pVQ@BDErT^Tbm(Yn|0o^2JBuDL4AF%dY_gGrvc^N zbTi$VwUqMSYxar0H8m=sus$z5sDct%b}~fdgv{IEC5&CZf#G5mU=IW{i1w8rBB$3o zGt}%zNNo3EZ<{a{CkA2RW*biu{l{L5(ZCKX*tUicISzSSLef8mf<1MgkaqXP77EME zF6VXEa8&SwSa^IDw+rTWA3BNDQ!!6`T2OdyX`BA8G!75ip$*U3l_}!UI7hN;%?~IW zjp49&)@xTsk9_Clu3xQ}4^Ui0-W=^H28hs;Q{s;VOUV3o5&OG4R7VH*TfqLiJ^U(` zlVx8?ZflsZt5QS05bp0nFc9^3YbgGAYsjtecaIA9caJLZcWX%TcWX#!VQ5$Lw-Ewl zY}Ef~mv^4fQRICr8i2KIx%WD^V%E`PxTIZzjUK0^B!B5+ zvG~+z(H3!lmdd|aA7PAP_#0-4G{L>!L#P3zBIOfl7}m!w!5_qbO8TlWO3)1DE0{1} z3+f5oewtMVm$Smw3C4pS>*H!S)j|}ujv5#azJ_OXwZI{AOkI=jh1}TIXunnHXJ$-l z;{E#Il4&j>Uxe5^f~c{%=r4BDLq>(tRw(jkVYMVW{7on!uYSN)+XY2H>GbtGx)A}38A0ph$6c_opi*U?m5pD6~; z&BVGjWc)qHh&KNSMKe3Cp~2?|A+cx!BgcYo=jmyVY78OIi5{dg{o|3AvsyS<(WFR z-uytX`cWe2vu7Udo$C;-uvdi{mTW*7EG(JhoeS?pr6cZ?GHjgw3C2O0Gg)e}o!4 z=lEJl=gd%;QPXKB8qLbTWx%K%85QCR|+XY@?+cjG%f^Vh-r$y^q#LhrB5@obfBgdws3DJ=+ z?RX3$vGEQInylSdAv|hz}-JKC)PI_%bf!Q!ap)p`I+r?nRSUPU%&4h zFizU+PFyHOY8EnS9hKj$?Cq_v(C#CvD#Q&S_jhM1D^sSiA-Y@ig}DZiJsiyt_vT*P zm)=59GG>&=X&f{iH{~T%GqV4>y1G|Q2yfYNrNe5&o~~1UI;G_4^wU~n6W7kZ$@Xwd z*$w+4SbigogSKx=$Ps#KrIcgkATZrJ@hcHC>O+e`f2{eJU9-RsC8T}M@J^pbY&AYT zg1g|df?qP1{XNB66XdOunX&w8J)ofAco|KL#w`l=2b-uvFk)PwJI$$O9v{p}U&mEh zTi4SD3&*A$-)^{$vTu_uN_8+=cwADV1M>jV+3fN6k7c^2?1qt$sepv(Z zia}XhG<%*|Q#59%nem^Rc-tWC{*=E;%xNwc>>gfGOd)vNHYiocL8|w7EBHCY6A4kY z6;ee9R+I<|CW{{eQl8Vxt02E!u;yHsbm55^%>f)Q&;=Yxln5LqtLN7 zWpd-Lt14u#lcii>6S)HXxl!YU8p*VO5mmW2El*&6!EX@*$~xXrtkkS<*-F?OC^vf~ zej!X$vQY}Y0W|w_6B@5$e?6&;?(Z05?IvI&LRWrXAI98t*N}JGm`_;$=L6#350TzS zh>(bXzpew_#Duh!ard*G;qRBNVVjsBq!S$7ci#xBxEsBTe=8aOlfLsOCso`|3*QEH zPq{LytoFOXpZ=j&j(uD;W>c9&jQW8`bypo$i>6yV($Nf7uvis=h)~uyxUp?PX4J@k zG?vxOC{j-szvX`DxuPenoG(|TH%z~{FSw%GUrt1ufUBGAjM`$K4T$@Sp)XV%YSY6> z9gHf!G^S%|(!r&vJ%rkR-D~?OV&taJOJ!_y!Pbp`A%V9dUCTmHm)ksVT zdYijep4HM4emJg1A$c?3)Q+H*v&)FRe(bA=&=XYvW(9KYufzM4Qu}`=3{SaT2i&4onDB7K*{wX|ibIY*7xI+aJ=@jaf7*rTV#W7RYf3 zOP17;O^M{KsK!RP6EB-fA?n({d52gyGGQxDepeS3uu?x=*PF$CgPi-ZMPuO%eqGmT zVcJdIHJPX4vid2i!}D-3=i*lRQcXrZUo)S8*nHC$3KBYn?cstXx?O@p$Mik-E}mR*+gZE+6d~aIt86lTy{@}i);gHeln!o`X8BtGuHzUKNUqZGdZ}A3;tlMI5g74`l z2Ig`k@kJ$tVp*C)#UG(nMaMMC!rsuMhU|Ra!Cc;mH2U_1B>5FM*Kct6A2dSXO^dvO z!cIc*O0m}1=Vuk7n6z)5k(+DS-{klGl)>s6FZcW-0>fQSdTd7XrAo5%8|LkuNFnaL zemh-;MX6XYccHT+?M4TUau)2+Le6}#lmOBD!CG7T0a7MJqirXyX0yG!E~Za>2M1Y0 z*+Zje*0>KtHS5>`sl+Y2ZYs9{2Ipv&X+If=M-4T(q&QA91Jgu^0-1!~tAFl3M-g^O z=8_RMwBirs#>6VjKYt?|TL>Lj!}ZFSo%L1EAp1IVfOk)3Sb<1?wFYLk^Je&ogqi#_ z+Ei9BrakvkH)F8=4Vnd7(bsFmR~xAfDj(r)Lq)U~rt`m9;$fxyf?zaXB@5M2Oteh0 z>Rh@}bQ4zi#&XIet;frc;80hn-QB1ANH{fqN9f;`$29uK6(1=N(f?gu*@jl!v$a;NVm(3Kf3HLZe z9jQ(&K(fnIyrR&gD}d;D{SAEzzTLWShr!eQPI1R#(oHE4TxBG|Y(g2?XOL?tK=M2L zH{Udj3rt%dUR15tsttJ@tckR5gW4X&3z?>AhH3fEkP8^0xnFjdrxDSKnih)Xs;M|7 zF@B}`-WD8mwr(q+ejcVO8uuzOQ0h(@>`q~3L~M*0kx00hOkK*ywK+*5mJ+y+lEfIZDl>CP^JrSK(AryCCP24Pyi6_jM;VHd*awvY*$D#y`U7%!mj= z```sGiJNMWm8$(Fqan@_NFk(~eRHEaQD`VI2t(5Uu^Q#g&AKXak;+NRlw6hOlEpP) zPdqku91HePd=BEFkL~%|PQ7ibiK$a?W*~yq1IpDsa|0+IH z_%421`G{jdiN%Rsm$H;rb3z}Ql3!Lc`7q_W&M}VxndR7ri?ff+7{k0?snt|IJ>2Ha zD-C7&NxzNdecI{)v0Eik6!An%Uv1sA0g=dUnn7-o3dP{j<^Td{IDasPgn)N`whs1R z=5?zi>oZBPl4&4f^E>(AtwzBf8yj19y{yx+PYk0OsyAPsmha)t)C_66ol)ah)nUSe zO`+#$$@q#4Ln*5?Kb8j1OAPtdFsN`u#M zJ43ETZ-%KT9KQSXle_E;+*Bjz?|v1XFg|mAw}$H3!8}J>gA``xPI{RB*s6*gy+65j z-yj)MJdG4IF@qQ~HB%yV%ej9@Vox?+wLjh2yz{xCHcwt5&j2~<6(g=a>RN^5h)vr@ zq$GYp&fvtntym#3k79vVol=st>Oj;hv>X4UU2XAbzg9CXY@BZIYyQh+8^lkL)^|dC zPWg*=Ep|U&wFyNn{N^X%J!8|o149qIp9kYjvgTbwLaD>`AZy0;ux%w)(!yq3dwulo z^#qtTgB#e|A%2R<`q{46%^J5aJi&k&^ZeoZdE4Q7%zl_Gmx3zs$ywg|_aP306$Kpv z6si;-?_=&Y`7KOlA!7)mmDI zHC?QE{Y4&o!oT}u9`wuq__elGqx{mzG_v$0@M_ePr8%yxv` zz_fh>FO`GKCnX}kz^F~+8x6N`lRIUybjYS?W>ELE-tT@YzSorV8}tgoWKn2>BzQQ3 zdMXB}wwdS%+LGYNh(@1r>cXO3iDbAfD(rX6rC_#HFj;@Y&B(|Yk@H|uWySZxP&-Nl z9i-#FF{872tg1ST_yZgKo1-&zl%LG{&wU6a_&NRu3^6rK9*nU}G0*RXbe0`qn}o8Y zAAWyOQzQ+QLF6A=cr98og#D zn@2X46TCP^F{<@dx1W4)e5(xVKG&aqmZQ?zYY7jvXp&bWh(G7GVUzP&Hxj}l6{~ld z@W0gcD_z)a`xVoM8%~xHRcKoqWueBZUq}1p+C7af%nx)Fom$kDm)w-uobr3=&o=Dt z;!YFNJENT2DyPpqMl<}D5k<(Xm(Ti4l9fPtg)ba_|DoDjzmBVa&2fOrkkB@9{zjrL z@>o%{iq^W%bkj+WHKIlogkfc2S{iNV91 zJ+K<|NRGuHp67&hUwRkM^qE9hbj2J@>tU5*1g5>*dPBRHVg$#h$^X#tIO0e*8Qu*Q zW%M;Vdq6LXa|DW&q6=7nIA*A0EC+G+pi8*3-(l}>tLj6N@jbe;d@;!Z?qcS-2?C*5 zF&yzPpRxBIW$NZD7KL-ViCO0_cB^|`e(_tpUWpU~x7DQ8BpQoo&S-dTh0^{@7U9AL zyRPbJ0uv!(kpC5R{dF5d!g+}GYAmY!a54ti6`vbc(ie->Sf~Nzya_g(SePI}>4gv@ zel_#=Ow<|6JCxvcM6GOSm)Qw$1O9}jbgWX_>Shz(HC5w!0zCNOrQ+1k6^A>oy($P( z+2kBIr7$ZA2e$GW%U5$A@N{##!=;%a7h>S)bei7^!RTsJ?PMGb#ZYfe;|K)j;&0@3 z&kR{ZswLyU)p2DNfz`D!f)lbRTlx5H__yoQyIaCRrw?wtF{m_DMl%ym?my1&f5nmv zzy1+aWm#b`w7<{#aom=sSKq^(q89(x>mSX+Iu~M?^ye10RMK8*4~*8SK^m(gw!@PU zd;3goT|-~H>d6r&OCMkpXsUL?cY-%9T(HH3Sk(Njkc4Fkv9|B@plTKGJ~D)cZjr9~ zQjHiKGVy*q?(8IUrdydq7?Ss1^b(TQ`EXqn6l0@~7ezDis?AQ?B7{Zr5s71)AlX+} z%et9a2FaYzWB0Yul5mev2wTjPlTTXdN_T;7B<2#YbTmYA&yhK+jdMuS>YJSyc2s$Y z&GWu4%^F8@s+T-avW~A(rwRqiloH;g>TNC{H zFq_7W(9I-mhvdlYH6h-;UDHmDcD^IXq|jY=4g?X6ZbV#XT0b`Aoj;M}O$jKAeq~Z8Sn^ z_)*(B@iuzw{-pdpx!jiG78?8pMXUcRY%HWcc=4XE2h(MeecR>`Y+$kGn;ZIDB(ERD zM83?1^$xSMZQi6Q6!6Uc7L`{J_nVz$It907UnRyHOQ`0R6ic`~u436UKkL2!yI>O3)z7AbBM!BRGuf&E+;X`CEacqa{{gANQ~{?Fgh?B0@fRHYO%iO z5%>PkYc7|&G4VSuE|lLIF)5gEfkTNU5_|e2WY!XAv+k6u5$ecpF|1t5WId55*SRKE z?;}}IbV1JN`v7%3g{x!~+{*A-qs2oz6se<1OwUAX*E)P(vTf)lgo$e$<+p>K#wwDw zO799@zdJ^x+skd%ME_Z|uoCKCd41~bc(>IJc_WvFD?(efCuXBY)g{nwGX;^OMHo?z z9XzgK;M-Bvc&WfV%+HpOh}=0EM^NV~#bjcNf3rmNRQECM##~#tKzQPgMg|S8nt8sf zgLTybri{sWRH8OsRe(xK4DF&p-7U}k6KwDl6o$#`cc@pptjJ%yg)xF}@n8&957Zo8 zN`+>cP=7txw~r_7`Oy1N--e1Q?0HrvJ7#P`5mzAFovI+JDOHt`!76JvtvW^_gespI zjP-hrqbuPq)ZD^hc!^TbK#8~Q-jQnf9W4jQhso$(BO)p|7;TuzlUCn~ArKCvX!Ht4 zMlvgfacoT^5Dslz#}`4NT)BKdiC@V{W9h#+;KvGSV;OAWfaodfuLy(-XEi*&^LLlH zbkg_q{kp*{_~&6+CK5VXVj$`gJhi1WM5qXsg?HlS4_2sHg6&%FHleZh?wjGY++70q zz>O_@At#%!pMu0ym{m^&8$F9q6{!N4(NXvL=)i0b5K)+mTVWu)T66>VI?juTBB|JV zUGd`r%Tcq2ik;|a(6Lpq3{WG}j~o+N<}fTmZ0n9nnM;s#X=@^`m-6jym#AUZu48!+ za!#L|(5h^|;pd#YjVpH_c1Fa7`wZs=&rE3GD4Ul$&Pz}>;lE!POXaeS+F{1npE0N= z!{{HVjjB4UDG9B$)q2Nh?yZDh^&W_WRs^lyAdV_49SL*C7JVWa6=Asbf57jbUImRJkVQUFGczB_@E>f}+ zttqlkp9y`7J7y(e*L+Az64nHh+Wf`f)B7hwC1Mk3=JS{&7!lSFn5Cz+PwO~mH|2j1 zH+cD|+BeJ1ZJrZ9UGu_2&Fw@{=|0r8@}HQ^m9+k#wUwbJ?c?s7n(sa( zT$(Uh-gAJ=_NH?Hf+ zgjwwos%4VA174ZbL-W}qarD_EcUF4K_*{A6c)_9I@0>ib(VeNbdbUY1wi}iXSXeTX zS!gYEbiqFvPz>taFV3w$ugRzR-~~$wzBTJ$?=@L80djtN=4AP zQirDwe4-_tsqeSXpotiX**oT6)S5@p0mFkK3-8)vmi_zW%(mogzrHC)u;9neRp{oE z=56$0TSM?oV|-DT**M+JX%?ge=snv=^AE36F|RL(9eGnKY+z8YqG45)AEJB(dDeqF zU!ihRMpWO8nraMhZJ_&<#(w2TY>e>LiBRS? zRm?A)P>&n7!%^Q_x*)sEq2e@{OX%# zJN|eQMRM;=B3f$FQ3TSE&FT5yTugLIY8RC^g%}(%%8=jOX-OOT#-k65XpE;xG#8$V zvr;dMd}CON8CHxceHFn7{a#soU3BB#7*DL21EvWiT4{Qn$T~^`&Rt?&-C7KoW|PsZ z0dnxqVfl-^!$qgF#*Jv56DbKTRYl=94fr;Un6oUJoa7NftZ#Bw4oy`CSh#0`=ZmDj zEcAYtB|n0VgHv^q+l8W0PMZ63)<3ne2L67s5FxfXI($0cZb!|9Da(adjaRfe`miFs zL-!3#XI+|h&#u-+>cSF+mB;+$kyp`bJua$>B`aJCLpr@a`z&cYdiX3U9GV$qk0*OG zNuQ)9&!5z=Po<_Gr}_GZJ>`z;c^|N;=Bpalvu`_$(-Kn{t-38w`x94)iMoj_@x;>-qgy~d4GM&;OFg-FPdTUDRaPtm*o@;YPauQgC|$8IX4Ay;A(7ssQx*Z z=Hk7^9Iq?g(Il_(RE+8@C3?@>`O8w|V!ev}MTtLDNI z(%_ZVW(qb{U@=6I*%wZv7 zGq1DAx5{Y_yO_q*InkmDpgEDko$7tY>!}G7yMYWhBQ*}P#~ZroE@MuC{+J#221rVy(#)3z74t%@5N63+Tl z`dRObhj$^^Hyd@YCVx?xv3b|5%YCuUxi0%2t-0|R*ANe6bMKhR#xIut1#&=*zck$0 zkcUN-HO)bgcJ3vEBpf{V#9hkulMGmxdh|TP1hTV&FKN*?K~lu%o7||uh?5(&vd%sz zo}h)jB8|5FfZy69VsKWlaO5BQAj>fJAqK020^I;XvLxJtSK$+YqXC zg1%R$oJ|qQ#!ZkVf=`uq>GPF}AflI3EbNqFQG!c17ac>(&ngR9 zNBp+hN456pe`2zDO{(y+O!v`dentQLKIdEN$$+3mEy(hCNwGmmQ=6BxSCjP0mrZmV z#_RGFUelcW5L@nHUa#!a?Q8|Kc+3@N&%$;BIL}e| zQds^ZTW0OF`>*PkcjQ8)lO$K|mJxX8NhVoL@@nrN+43sW$a5GI!j+9{#e^uJodnRA z-UeRQbw7sd!#(*u~Cx&X^yR$2v~FML?Lu-LAS2%)nq_)^`IsKrmM$R zNISvMt*j?SArNiFiZWp8O1h-n^u|2XG%LtsZlwLLi0dI}L9&$>n8F0Q)n`9f!-7k$ z8_ng#Wqn#4ls3IhtAI3>(PO>VLWlmW5hXrKsjFi&qDTmEE=eX&+{47(#Ay<`ALv*5 zy#gDTuef)y*0XK63l4GBUF-krpA{r}Y7)VEo^g8i-d4$TIF-KH3z^+{3p{D{0_q`0!z0$tLos4# zi0ri!ng5x-g!%8`Pemq)b|&uUO&P?BG*bNv`JQDx3K`mdNG?dI!ksVmvc}|!UADXY zS=J9ApWMDHhsahnR+>TSI>uMcp!~YU^ix#O1NurU7i#hxm^{Jo)FcvtpY>^tY*-cJ zDSqRsy#H1cNCT^Gk$sD~)6G6xG|v9V&Gl!We0phzKNMy2k(A0&=RRVyO-fU`&To0T zU(ruhjMxe~zbS7?FH%+{yHF!rCz++Fe$`AhQ0zp#p_H1~wW3(4xl>^qfUwyYwgng< zF66w6T}!K-i&PV{7M}U_uHxq5`5FS$$~#Szs53irnIKB{{gh1ffd`N{kjH1+=-J8w zw{AAPn;sB+EAp|0={F-ZWCWGxo_@}^?{?AtLLw zl(l5#PMJYOdZ=2iK-Fa9|8g~EJ?F5lWKC)sRS!OPCd+E>MF8~a1wi3Ei#1MsfE2$% z%3mwWZ-x)|s;EA>KE1eER_sQ}iAn}i6{qTh>(k4#WI1gW9Vu+ss)dE>!Z3r@4j>K^ zDb?a02gLQR^t;=z>PeMK$yfTls@Nw;uae+2r<|&fFX)eu&J{y6;*e|moR8!S`A${l z9wJl7w@3@5JF8hHgj)`*Bit4Fqe_tQ1rQ`K20}1&Cg0TDrxrdP6fPf-SLLnHr`?YN zyA61!Z@fmL zrzR1!Qq;&g$tiHs46YP4!sj628rK#YB8!s=iRAqea>e4_<2#vgllfCF|s$~4sM#Cw> zaT@41mVJAO;|32%@3EJj)@3E~uNo;QO+W9D>gBf5O3r~c-^q4p zC7~|3&+v-KP!;!lEyny$nhzQCPawOQW_ByR^yU~}^AGXP9+R#nc7gIWM`dKV%KLgp zftB82pbd3-Oe0x{M&ueQ5}agcByZFugAxplye*^yvU4Er4f$I6OZtBdV=9z(=Ns6SV-JkpzB&6A;)U}xO%}F}MdFwRK(--fW{x=i@vJa|q z;r6JXM#ma6i<~@LMV@+Ik&{$!LBF)*Ahn5ESZ9#VGje2{n#}55uyJcPU*82AZ(y2! zkwFF$IYadgA^m%{3ZVi4cPls~Ar&<&CVWqX7hE<^6 zt9cz|NTsZmv|?n8qqsOlQWDO&(1?4-$wg8_`x6H+~0HL1sn>4(9{8%Q_?5pH$^ zNoZenyAa21uM(u=&O~rh6Q!vEY(=_}RjA71uYOS#R;mgEZM12m9aN=>m$;~kdsc3> z_NEq9Sue_pRNhv`N&Bg+Na6Aq8F6fMxUfY^YCKZjKP3!Fkkon0UED*(0~^{!#fi4y zqIK+~;+PEXrP9!b=NqlWCRE?l!;znkNPeZAy#wzAfc;pUU>DK*(0j5t9-eRBf1GUD zI`Xo->F@ZGOG$d}Eok$#+I`i}O{SdOb+&=$GtG*c^ zFKs#?&Fsb`qb%h27nr3Xy~DsL4TU`hMtLaiGT^y5I4;`v8H~$Kai;-K&P9^bwAX;A z#P5rJTaSCT72#|IhHgf<6zVDMR1nAtdlgRAr*F4{DAQJxsk~!Bl%{vjf)F0drpZM@ z!!v7**?Cc{%Uw95A=NC-6O{9+A~z4B5^QQ$q%iZ<3|A_>d)aUmlAa>pIh=2Q{#S~x z+O$B}>j2$NzAjIMLQ+~_*iIbea!*-7Ab2-NN2`_2LnN>tCR z39|H`2CgG$=>(TR$G~}D6dwa8f>C_Df#6eT)=>~@;#6=m&r;9$3DoB5`aq`~1p*5b z2a`1^#|L;)GY5c0UV(`t)0%X)R#KY52}a)uVQE78P6&&Hwje?p&&-N+!gD(B=b)-c zbqCj6@43c$VSqrviQO9@ru~qpNcjOtxe`gwv_a0-icF&6W4~3+aDm{HN}!8Ne+zPBr2recgwmBZm6E2M`WD0$s^ZiW--5hSRURPiEeJd) zx1M6sTafmwtWMRlwW7QiWp%2j*mqGFZ|x|Z3(Psj>eAFy0fza0ssgl}~2BnJ7Uwze7SPRSy zPU11L1$~R`w?iBo>O(r2;QO0KHjuulQ9P_4Ya{^e^BO6@?StE*CG|Y*T<#(Hd4oql$8FEqeLWYg zdCPw*af+@h%MVy{U!2DSHQ*rl9FJV|Q3Bfxw|7>Pn)nGEP*t7*RSC4<>YAa|)k*6R z$3R`pb?B;>6I@XX-Tmr3L<4FJN}p&TlIwqBOTOh*%TIkQqQtJJRFjzf*ucfgR><( zFaFSy<#4>nq0CXvwT;0>;e6XDbmY&ujX_7{yxSOjRL{NfoE$Bj^q+rw6OO9q;CPa* z9+D<})`FupTQO?m`zqZmfIdn)4VZ7zO#|wabo0RYqAUK*SeLvRTV{HhQG{6TG7sC#A*+;JWaY271QoLQ1L5I3#1j}K7%{0$om;5Xvcg&t?ju57Ue$m9ra6esLrm3g9eiH=EL_ubq z=yyrcV|H4joG|_NFMY%ecin%anCj`hTmbBtxqXS37NFv7v-51@+%R2YjU#7bULEpN z{z=X0P1XTTFagf5jZlF(ViQ!L^K27bFk`_E&Bv@S8igOmAKl{#n(#?aJS}?#N}TBO zN@lnK{gNRvFwbO$4AeK7VT18bu?9wF{nJPcF&=8KgQ5u^mGQ*f)mtY~jnM&mDsy~b z&dL}csJ}8s2;;JT=pkj+YmG+||?u~y4+foQ3*>jv;#ZfT+9uQ+} zV3C$NIKnIkhy3h2#Dvx2!a!>piw z%`h#DbNfptHM1UWY^oSH_qSHACVbt0yd$2i-acS6NC@cTOfrJ`H-n6zzRe&dj9=^6 zASV5s$H{R@wP!qd62Z_ylb(geP*}L6c((>u6?X&T#xw-&JTQGN5}KKjF}t|?I4p6@ zmM}pD(-?c6&unGfB9b9_V>X0-BA90QA#4Votj4g4{F2Nuo5KtlM3YP>x<+cFVg9Hz z5h4E6(#F$3ct7QjU)%QTeXL~|X9WxN&C>$85aYCfA-{267$@gyL*>p#b&iE*84 zZ9GkQO<@JecFvA%zMcCVgBj3|jzSIQP{*JK^{iuX!?@U;c7A3(;G6KpxWaq=giZKF zVNuiaR&O6lnq&m@fkr98e4j~5P@iX#6UNs)Y2#(q$BoJpp^*NC zeB-jJ!uPm&-89WCOkWGv_f&QGD~P$3@bSF72_i7xZiETQqnls?^y4O|AiVbnG##Tp zdlY&IPyG?k&wzjaop*eHN69vQ8Gl2KZW1sbq@4xG|LA4`^gX(1ApFh^ii%O6W1Jeo z-~2C*n*m>Q%Q5oa=qV7*9AKVCHwloV(M$s9XEd`wxS7uwCPuxCX=Vr~^94oCfRDN3 z2rb_3R%HD&V4lVR50JCb&jaXh^baR-}5j2-AGOD#|RUc z2QotidG@!X1T5-`uAodw9b=w<=*FS={KRq7>T7DyhLE_@A-AXR`cEIQORpBpy_kBw%F?w_Z?n&)pYtvGA0UlA_MuW& zB53g?$jc~*mp^W zNiDzX@{N4U%GmFGm<`Nfy-=ibr-jM_)+0?&@xd;z^4{0C%mwZbB|vn5?iwpyePfNL z@>Lg=4ZfRx)zvw+_|6f&Tb}M$ciD1Y=CA&)`T;;-*OwTPCGZtV z;J!}-=9W(z(GNpOA+w?*#Xt#qqM?!Zs4j2zF)Fe+cm+y)0!aLlRuh*n2TIHaCEiab zxA(4f6MsDTZV<=m##^U(p1#b!rJrAta62zkKPBG)ME_8)talwHK@Qb!4(LChH)Rk5 zdXMoC_<*@Q*GvI?YNunWJ>*%ZD0 z(IM)najapE@0(7WJ4S~~vJzS8U$D8@JLg={`stn7!SSek|9kta2Eu#j$E1V&9 zb%rUn!Qo4{kYO4vFQ^Nw= zJzg*ObNwK_!n^#&_HrY3 z6D?koN?w`nqs{z^{#VZ#hg5G;T1O)o6vs73s6oo2mLf6JG%Bt`i6-T7THI+ABQa+% zDy~C|CgpKjyw@m3A|f>^u0x9^<#Aek&>+ULYB^E^wP}eRx-=}3Q|F`Kzla^=dGJ~< zVzUdVCv~c>pVu1z&Y6F>%DW zZ1L?<;lM_uq^%nK^(%@xjdH`eXPlumhiXoj1fH=!s#%ow^ z(-c)?Mjm*fQqqQz8S7;*d#jWTD#?JxQlXn}jQ=Whne(cSUtm6ocDGF88VOB8!)9yB zaOA*o)w_0YRx`2XFd$@9=SEGcEJNZZB13Ij(|YXe(Yw7S<%K*$6_PYk_w>WWv=ae33G>~w^FU&>Vbk|9yk>{ASZCWcfbb);|Y2w(n6c>%* zom357T_5O_AF5`DYph?h-P+gt-M-WwChUb-!2y-j$0Gl&`Sl@|Qp2{0R~WA`=?A(6 z?t2QhqJ9F^;(+}KPhsye{OowNJr$!W=zXX`*3L>lW~gw(MPWzzBGML<*oB{I?c-qxmS##Sq5T5=cftRR9+mSPx){e*SOx?U-C=!ww^D+tA zQht3w>Y_wI+yz-Xc}Zd#`|W`b3oMS%$JzbcU18FjV)^{__Mgp{vGd9(8Sz!lydX={ z=$>CY;=|wdhX?Ut%+|~=Ih)<{doJY6(f!gUv*=4nZ7+&a-=3#y7MR!R`b*uWYBhHs zZZ~=AZc>L@ews5g%?fu>CO!|-#JNqrB|a;sne(mWS;@;v>YCh8C-(9emRnCO38sJ1 z>GY-u-XFi(d1`%UA+_dF!T+F-_cxUrk%SBr{-*8r_8W|)Dvy3H6ky+luBuL-IQ25DI z&8;#CUsb=H%tdm45fDk;;;ti+7-DELKWF?;wjrY`DK<>S3BRxnU9yC}nSF$9yf6t^ zA##f7ja|%8(#AoxMe)jwQ6N;mG3u|vD4;CN4AaC1z#u!A*ekeTfi8|!rBJlgcozb+ zpj*69o{H~yNg<|3vgD_ z&=AxEpdq-|jfNs$Hynju^3Ung>lfUYuMjvu@*50fQ1dKkckB(n}c%FMlY zs$rrXmk~`gB+Z1qgBx365^`{BJ7)P3ZiyonKrsS->=pG42o`8{{T#4VK5mM)*Sbjg z)>0QIFInm001PoM&KJ5k1o=7_i6Js=y~v^diuo^E7_IXO9TbBsJh2=a0?KrxP*ij_ zZRHLmGUW6`2iehg*X_gO^GXFL+=sps;P5#ub2Jiw5&)V3Q~>Z4ph7_802Kr(2`E7@ zSwIDXOalrStvsN>8X^%Wq5Ee71+>${W49NhfyqE6-HXVrbg)8|G>tJOoH+DAPb_Iw z(+g}U%eKRQFf{4-*F?Kmg6Lv)Rv?+=+8W#9EV8-L&awEwEO9an+K>RJJ?vq*JI&yTaogO_u`rRl4|UiWCK+kzi(DR9!d6j*y= z-zEaw^@TPnbSWcIjMPQ`uFrA75P+Am@8fRCus@xhDbUA$nus+NAOD?iZbg!Ltna{` z?6*%{o^R;k#6zihKVtq*)#}0H$Oezoy7M&zPJKOV2%ytcB*4@MAT1~qSJdgjk);Q9 z*!tj{gsl(IdDslVVUvo30b6(ic>HDe_wMH%vZ;@(>IxHc$UO|U;_wp*Zc+J^pw6py zArvtyW2WcaWo9Jq6|fXM;8r$YO%AL4CHC3CsH#J^@KW4MbYH|4&Wph z3g9Ie>)g#4614_T)L!;PYC72y3h3im%=$P9h5~pA#*$5*vb27+`e9THJw&#?D@ZBJ zdb4^4w{BRpeb%#I@J=1Cpc&7_CmnfmE-w*vlQO3BkXJ?HOt`D6((39#QCu`%A#E39 z=JCUH&589x1eOJK_d@CLDo8Zlwr{-xnrM)X@J-u*7wDU| z!9-4Nd!F6TBvJ*rqN8luT6SOF{I|m-U~6|){drgNY&xkwh3wC z(+wF=?GN~LqnY(ldZp718B+0!-rdQbDe*<~u3N7O;NMKDR9YAd{r>@6&o6bDLH!AM z+Pzs@Z{j!<*8Zb7cOIvdO3`fDs?ti`C(BJt@k|n1wt-=O{W@_10dliJBP0lkzwh|? z+?-?ho~-vv@h$yG-(L4W_5enoyMm#dx<1Ntnj%SP2?hC$A>CuX$?4(8>dA$F!S?|m z0G#g14DJ||baz6uxij#$g500OYw?#iDpluFEjiv;B8 z02$&^H0W>y?LVnMz&jARg(+evCGt2M7D;}DR#30Rhq+^GDd+Lg)OgodgJD`N3M_Cz z6*|KbkzA+|b4fgK(ybsRL^=6V-^zTgrUqP#(|lUcTJ}PM+5w4Q-9L9AZ94bNcp9r31>Ki8_FA19cxPi zkYSN>!m7Nf*ap)pAObQac`voE-6b@xemNFacoR?RW*hw zAG;s$hV}yi;v7}JA2f3RW14wTbWrcYK$8z!cx(#K^bP`Qe>8=AE!37Il7&&gkmCZ8QoVRuutg(1m=4`smuXCff2CLm=V@Vz_uJZW$uQ6v^mNN_ zvegITwx($-kMRara_)fL1j}Ui z>`} zx)@Tpj=){G)l#^C==M`UgWnnd2q`Fy~Dh`6F2;y*P)hlBR23SJ8iXQWCkUfc2B!jbxP4a*w(6UpOt+dJm~5 za5@WE`BgW)o%Eo1;X&tnJB3#1A*sz?IC^e=oBz{7`~e~T#}$+bKjW17&(&9TH7z0T zNLbYMI8mX064NWlud;(G07zw-xVlD?@;GTO{1X3~p&A@D;LH=5X)&myA8>00-_hX@ z>6q5S-*4@Aayz{P3@$?Re!lBqe*h!DWSsprwG-9bS$#Ow9)ekIt1ZF5F{d~)1$$L4 zS0w?m>NLs}eYKr8g$Fvn+loI~DuVw5R{gTv&@`(Cc-pO4QE!_t5Z3+?P#V0~q*RM0 zp>EpLwJ#O{CuIff*(O=`>t{n6NJ5Hz^-E-szwf>~-!Q>?l5PcN|GV z`_de?0Tw7&bs$(_T;4j#0{A8K<}(ZYcxJtEm}J&XA@JcORe##eUdv=TY1(5k>*lZM zFn`Sp`H)IY8+eLzt5|cqDkNsz+j)e0db2@68CiBlZsS@soII=7k9q@(^^`Y0=TRoY zoKqIw=^wp1nik&lRJpQq>p&cU$JON(KcbA*Tf${{uj*c5qqA{3Ztv5B`I~9;%j*%V zn<}blt%DvVwAN96i9ulqUF%3;I&NL-kT4xH*E$4DN90;Z1=E3C>nLG5KD*Yjhv}G> zktyELnm2Xr-(Q%2E7v+|n2yY~4hqweyVmg=rh~ZFQ9yJ&vBSsj%HO1tr?p@yR~@U5 ze)JEIJY|e<7W*C}r0klXIl`_;cWUXHH0+h?Hq9Y%uhuDXE7%>IR_TllwZU}hZO5oO ze|L=Sxj5C>GM;FBkI+*Mq%1ZKZG`VF`gPC_l6nHz5dPL01E~}XwW31$(nwb&LC=T9 ztnKx4h5io{IGY)rtped7c-rk9YkQ)+@;U#=a1%aOOIy$Gc6WQ(?Y>{;L5WJ`wt%+w z*PkTB3KSuL)%HC;eVhWC$z*Ps+y=NAU9X0*d_U2@s>W~@*dWjGvxfaiVB@p-qtpX) z7)$zizA`S2r`|2-leuHT*p2@KwS|=~rR6S#HG#tOi`i)WV>-E5fHL>22|_cRfQ=(q z;PvP_p?||zd365yd$-V>`x$7qGsAJBPl5=86*~Q=$O=OoAv7dUey2CAN*J?r=Y}hOM0yU$+zTI)kslVYLxz7deOdIsnO5b z(**j-I>i3cQSUV|)_VHo$n8uz~<4J$u-fTXb-OcpR+PN&SG1{$%a0ev>u zJQA^lTPXVwboW_1_?ktjP38sBwQx+*T|SUzU4YE7^d_a zpjdnVZz2~JBG-TtS;~LkQLFW&3tR$14V^Hi1#jUs_g`< zd{P1TxPU{;PNgeDH4`a!Tqv-zULlaa5!lxINz$wL+elW-0cwQVkJqE~uY;NWbzu;{ z>N@^{xX-y2&%v`o&TsiEdwfNnezU?fxZ!LsLvPFy>|zi5iE(*nrdOsGVJ}!=!eVoP zG}w^f6B0DfP+rdZ=CwgWR(Xbf961xPqR3iv0;J3I;Te547Zmv~D1HdChpf2&$%$Ly z;+{egm`I&Qfd}~6BG%(1T`N`Od^_-ve2%Bq(oJY7qVd(F?oea?Z^H!@L;{TAF~>0%PzI>FTxB&$`fpa1WRNC`71aaVEoHAryT$vbFjxqibL1g^!0*_ zKr`40Xq%iYH_#&IxYpcpeS=a^)6^Kj+i8rAkEcD{U2uh;Q7@g?0Py9UriZuk94IB(j_&?oR^O#gjxcpA+oc zcO)hlAc-idhS`IS`$E6qwHuWQsq(iCxvaz76ieeR1IY8i0Me4An`iy5%DUb3x@Tr0 zkB4}6$jGBU`p~!$KSC);nM)|rWBhkXv;-rSlXlA=%uSuOfH*kDl2or8FLdL<3+#|f z-%fk=KJVQ(_q{sBnth7E?E`V`dMF-q>-&wl|A5&WARV?;2!!2wOX)p8@xug`?Y>Y> zdclT<*8Acd{K#a~$h{xyyr(q`!)Qj;X!U?{ieUa<(u0hj{Zq+Tn1=AJ6|W%FZB z=iQvnFS!UtPy|$5FK?G#8VkWVV3e`LrJRo zmAu|!pDk59#f>l~^+A!|KYv8XYUYwLH{g1M2ZQ!Esw0dJ<$2kYIg> z&ZwYVrI(#_#XM$*`45xcFxzB=Ie)1Xpo zP7LqJaGlve7%i&Vj6lpjRnRx)DZAM3P@4GW_N940-yVTZM$p&`lXV6~lc-E>8I^tG zQCa_(eZmyVKsxrws@-Ew?P9KWmrw*$?Vbx!nZfjq5?ZZzsz@ZJ?k5sMk{tyhkju!y zF&&m4g9sArVJm`ZgfX~IoE(deKKA1!(WBYYifr%$8y|@h%}NqtlgFyv#)aCo1J=%_ z=8sgj=J+v=k|Wi=oqWv@02T9};d1Oc6FUD%y%88c*!>s0ejDet#3M00#8KiIjyhpd z>Cpxf785*SL=bjE7EdgfcnlUYh3>i&vOa6$(w_ug7~wd^b{BL~hV>Nb98VVAFlwY@ zCQ)H06h5A9gM(HmXn3$9W13D)DUKalAu;&sOCX|<+a-b&%PqTaZXy+UwuE-VquMxf zR+u=J$R-W6yC7@A=bcE>cqPUHq!_U?^Q~k_r^*?Q&21wt@5a*D-gl#FVeLDSwY2q} z_>|CcqV~l_t$Zf}aU0)_LRj;5qA;x4Eb7>jf{ze#GpNV8}?Jxq;Rxr z9eWb^D>CFzE=W(p=uUrcDzs~TG(+v18fXK8CvGK@G}{inVv~* zrpM(oJugrMlr?{gYtDkpTUGNw!h6t_?H+V#vj^R9e8ycrW1VlNj5&&q(iEBETk$Er zmtzWk0A+xR`aCE2i=5!Ur-D}{C<4mw;+eNmRtWS2nTZr1KS3Hv(~XC7@4krbw$PO6P+<@UQ z?AkCG&@==Y{1{4MXt}cndCeb=1eeoplyuj~MgYccC(FAs^w03KC zws4JSL>p!z^>i|DgBbY6xm;4`LhL;6T$C1WZCABZFHz6&csZk20{EK_x_0BQSn5;v zx77FZm{v4~GQiV7WUOeKv!Z}o(GZG&T2WG5>U$?6Iz^nR4;DJPTg^^Y%qQJ+c1mi8 zX+<&9Ra?8BJ%z0YBp@HOsx6#iQ+IEcx_kBHF8AmzX%pLyBGr>$WPWjv6TDihcx^v% zl-Al^vfwM#R&8|qhzMkv|SrM2W+_7b% zdPz3j627%Ft$yK^4U}^V=vB399JJxpjYhoD7>Z!8?cL`-zp{xc>%F40e9$y*-H^6JNbkTshp50a zoyUt9i7fkZ7s6^2z3cRvp25^d{6g{ZGu_+9DE-rQ@O#vlGlnuiO?a7$IiGSd=LL^B z@1O{1%=x7*=2Y_I-YP5qbAT zca@fDcWIiex1TicbvEm6E^C&=U$-gIO@Sp~zcY<}u|Bp<>kl4W&{Pe0N;*9X*>&CU z@88yTowfbjGBMaKc*~C@{`U#7nn_*cWrZJd19_h&>IsARU)eaNZlCF=Z5isvsob`S zNb2$%3WbSuXC)tpr->75_1^dtqp8|VxSymQNTyLX6}&?;N_?P>=smq~!~W;f2(w4$ zF2V5$X|)k${R;pUp%(xSjya4np$t$qUFL>Squem+hDYxz6akHLe;0>Q(&hz#0tbml z*Q>X0YC{TtF&h<5vSCJtm$R`<+r?VaWY6k=rcYw;gB#ARD9)sXH9pq_-3N2A-5b=v z*M7dXHE}%$9?aGaWc$2r^vqZu>~joz*kqtImvkl#sB*}viQOJ41**=nN)epLs(+IN zo7c~JgUZU0nr2X@g;>hqb`=wA&5S=prf;uX*Tv-f>-1iYJ-+b4aQtwYfV1%4e;d+i zBS3LxR(#LW>Fo(!-=3hQZ>y+gviB**nJ9fpsL;8L(WVowo*L3xO%2^b*@vLJ&$jD# zu3a*3*9=NQ`W{<8HKdVPLQ^2LY?};AV2p)dg(pYv{4PB6UpX14MmWYFD40Zu#Z?sZ zYi|8fllO#Z+g&k8d(F=aD`LLWbr^=`K<|Q6#Vco$ga?nFOrmyl;Y`zr{eaO%s367==+J0%l1=916W^Rz%|sZd6F8R}fiG z&5CVXm~B^+#8F!J#8GN!MKS)8u?g|iN?P~SN@dlf4()%tRfM`Dh59viC0bE#7oAqW zi>|5~@hl8l_bd!$43#?&(5R(yYsG0)joMmnUD?UsY%kjR=ye@hZ(zay0N12jJdH`E z33%G=nq7CAOb~!i|B-ydWl++1T1}foV{9S( zXP%v5W&n8T_E)_~hIXWVHwME{Me>gp2;$iFomUvg(N6{ z?M?}Q&ejfSWD_7SUdl1{h&>brz5|9c$2Kr6z5t^=ie{9yx-{hNjb`@c)99Jly2 z9lT*<^M=5OP`1$tM_J%6Ip8V>zJO9;C4Wsd(j)XcMxKKNg{$_+2j-TZSYQ*BEJM0R zcp12nxrJ2ovHs(B6Z-nbS3zc+vRQ-Z)iP>A310+RH$Jn(8HaXx;p1 zeWyoq$|w?Q>n`P_y6XYTHagu?cI}4^Q&}PsU3lGfq$^ZXZsZ5b+xo$~E3)^R5iPwN zOd&XAuW{-XqR=M0dD)E5p&bM$QT}fih^Bu zJTUI@Bvr>sV_mt$f6(NAOoFjruPNJ;ELM#-DgSsTJkJ@SdIP4~IwiKdXk{R#wFq6` zEcW*WzJW5q5Z~m0w{yV1bKoyf6b$&!EO0hrPzy62EJ%CrrJDFPjP3fml42E;BEXEX zJ3(R7T3`TWThe%EZ2y(Z2Fk(GGOaJ!DWxtZ`9UO4LO+l@Ot5d4WO=pK0=F7LQJl}< zU)|kQO~UEY0x5zr!Pv#QKw9Sl>6Qo56BGptq;GYBB750_)&GV zFhvg=r$)$j(S%Mb^J#hYnG74)OPt0d`|En6$UCL~c=v0LLN5zws&|;|#l%Q{!ZIe; z=`C_Z!{Itj6SOFe1c*Inj-1z;h;QCZ%O^VX3zTi?{g`YoE#*uebCUxo6=$u{dXe$D z>Ic>VU6)0Igb50n-(rG&@5+p8u@aWnu~f%Pvh3t??$Z44WJ8W|yLZm`Z&PcZn&>~t zayAXL(SZ(vfAA)Qro1LCh53;!g#~4Tar&BTDZ06q;vr=yD^L_H6F(PQ3R(nr(hh6a zOVr(!bf8gPaWh|tE$ALf=8o^JP)Ow4&|m(|vmx3fl?i5RFIR)y=R9r18?P}Gg=NW8 zs#Eo|)=K*g653uw124ISCSJ^gigZP4o+5wVcOFz1d8*7_d6-~t24mFx&4=&<-+cI( zI=!w&*Eo0=isH<-P_=7Gyh@UI)9*DQR`Enk+C33d<6vSF6wr$j{0F{ZiA#k^^9gv` z-I;H9qBs=B&weAqUwNs>Ox>9>Gqtvzd2-0O2p2Q&;oKp{Hr#nnSGkr1U1k4`i&=fx+(H23Msr+B=%Mc_K*P7N+U zKaRGyDh7ngD`@6Nl>7x>y zHkm`ytH3S5SX|<4$1sy?(3TNZC&(?ns2Zpf#hs`jG&ZFc!}UX)xky_@Atn?`wZwD0 zhZ|x7*QVb_zwR&Z%xDpU$OCY52;V3R;S4|LM*&9o+zeOwllgm=l2$+j< z#HxW)+K27tNS4)GnFk97Z_;ka*BK&RNtdXfps8VIIIH_a{kv`yZO)CNn{e0^zoMHr zT@2=w_fLnZQTFlinPC#_Z}F<^W$wvp4wi?JO44og>`uwfKp`A$SYA=RN6?)xb@FQJ zoI_*NlJ5JakJU7L>_6$IF*G%-e;mP0uHYuGaub5XhV}FO&`rz3`P$OA4@~;eGmt`P zhW#DuAfyzZR2!{+iQ<(@jKhmL-|Bii*Y1&o6kcp{97Dfo9w39t?k5 z(3uaSI5g+wTWMi?Os4!Qr1%6XLaT_*OPJBLgjs)b3Cp3WVVyD-M%ocZ`fD}Pzu>T8 zBmLuW39}EDu=b9%UtqXb%8u;E2*v*QdGB+N9B_0dLc!1SRVC{q`F>6QQcY| zl}M`Vg%s6=@~Bu+T`y!^oy>z1<6RFrZ3L_3UY}vj}mFvnT*R%ly1bPyNgfj@hw|WP%H5dX-PR zY6<=n5;Up=BWP?~{zRv!H%H$;_8|8|g( zMYxS&9|s#8+~HOG1D%;Slb-!b>duZ89@+yAv@0B>{E1|Ji7-+>Blt_|PDb#Ks6>U= zz;A}yOi~&pvH7ih8z8z?L{HtzbO5x@&?S2SxKYA6eE_^!;ESurX)1&6`b?x9h~$BL zDPYH)S39udW~m+6aevbe9ALX)90_W@1nsy(XwRZ!QQr>iSckU*JC@Gvz>d{!JFsJc z+79ekQ=SA4b(cC>8*|70p3qed{jQLm?~Wgzbx#SsvKQ{o1Eh9>-%Izwt$zUJCnNOI z{-&}RKz&P$UiyX7WdQ9b_=mc?mN7Eh`CiEScK&C|r?lkXbTwVdI!ku^FT3Yd-wji1 zu-A=EZ>+xY$)-1DM3a{^{{@|{*6OR(2(yp@c-rlKYkQ)+^YHb2Bg5I3wPpA2y*;hn zLwDcgLWzn+Z~@!ePyb|+fS>~5VB5Wa{}-YlnVC#ZlgS+L`10oI`aDKY=C8BS^2hzT ziFGn{W9RZF8L4=9@67`z*+k?fIghn?s@deHdHaa9wW1r=jTa|(^oNaQ%X&rJJfc!7~RCjp7PDR!dB*&^jLzdeJy1$`X~D6htsfAr|<{CSGaWVs;)`eg_+$@$21Cce+9T!1@SaS8L67KdI5Wh@E}R#6 z&bS56tORGy@cxBzCaB?z?$1{@uRpeGIK{*1!gFxEa1_QIe(MxnJ04XjPWh^XN@)?E^jnSQ~p z?6;y~EGWkG7JGr0c#iMA6516%<6KQ2C+3ymT}{3`EwL7pDbm*=C7D+dDRwXoUE`tZ{zae9I3T^pg)8I>7cXHX5+OKG`NDu5C3obG#_G7xv|B{pS-#+KSE* zv?C-0Pn?*jl+Gc&iJ)J{yn>2#@2tpA&rKGW;-7Ef$V<)_o8U3NcMTv}j_a)H zcdSO_Ngb0XR$_!U*qDZEkGRG;`x1agXp8mO_olqG1}GP{Z7;SqvI6pw;Abyc;OEF$ zuf1S?^Ym+*megs#nufs>#pQ*8kwlJ{#7OxmUj0Pbw6Kwy7RA7~kIOD;?rd#)yC`GM zq5*TZO_&o8FjT^M9o-JE%%5Mc&M+Ox$rG8X^g|IEm=5XW2bo%oCU|(xm`eXqowYZ5 zp$qyZUJN!TK=Tk!F~>xQKE+fyHE3=WuC)uez%L1cn)eGz39_F^aJ}&pZ|##lN77l@ zNV40GB&+9<^bwdQ%_F(-Wc59sP)imm)@2lt`G$&meRissvQ9PnFrDhXIVR1Zcj{3} zOa7o?pB*VI>qzm3=}7OyC~3aDQ~y!%d2C({zyF8~qTLOsq&uNIo<}^{%w{AKEI=c8 zHcB7K2*3BZ>_b6*&kMmn^FlD)cXJ{55vLa&7jEf=5vAMCoJ6#)t~V!ff*IK{mkSKh z*4onh{pZ`G;eDTDgTH4%6JaWvn2blfis}ok<2n7~Cw~TI_1EuD&(rJA7fYM&2NsTs z)GuT@bzmC~udKlQvv`X}#& zxVM{Ry-A=58qU0cX)5px{=x8OHA_uO$=UQ_dUyS_d_vfqY*uT>4;lH|h~6NB>9a6f zdMLp4cF_%>g7N@op6|1zYjJZ<%a0VSXb1nhWady&e_>bGWyrULzweE6{l+*u-(dB5 z`$`ws)rR*C^UQT45{p&Zpex@i3HW~EdXv~oo9`9ZN!oD^7wReTeeIlHmNp~!I<_z^ zKYF77J273Q7q~AfGs1FoE!kc-fmV5p4Q-vMPP_Iu)s{B6db)k=flnd6*bCkH#Z5 z;>{%S38&FIPk8MGkKFA)-^O!m`@YJAq~xn$hpa<$CryrEH>tgtvx+rs*bnBK-IWX%~cYW=%&uLpDNB*dDs+ zv%!a~vgHIWP8KAPs3t|Vnb27WKa%b6j{W>Xwyc_*WeAUyDQ0KK{H&Pp<23{#+bVyo z#tI>eopcfY95W{N!KHL+-LEzp(CucjSP@zyedZD0Man1m61|VlALbvpDC6+DpwRG81KDS{^fGZ8QgzVMIZ0iT!|4?8LdG*)t zg8EAl>aQ8zzt~9U^?ISg3Wj|}lU<4*2Cz$EU+HE;b&hW2$~gs?4z1;kh4Z>{5;UOI zh!r-7s)d@K5L8*@wMAjjotHP;Vmk3GoOnSx)kLu-i>Kk|;q%}gTg>=t;>W`{wJJo0 zGoMFf?$DhoN6T78!)0Sb$}Udy%egwZnd|7%zt~`%y#e+c>JKvgHu^@#(u#H{dxZXA zd2-DixogLZVCPy*??}nnP)gAC9W#@}x*n)FU$wRVuNM4KutmGX%y;Iov38=E_IPfH znM7sWLJF&yOZQMzgc+XGXP=aK zl4FKAE3%@qX%a7M7*%1-hXxecbV290dHe-zH)%7rD5$h8s5U5w=7gO}HAh)2*#M^n z1sn4wS4wGBYM;U?y_Ugd?pPUceLiT4e9#EJk|>N9H9ceby3o{z)fD~vFGfZVaNa@` z>B(~#V-Ul*Fw|0$2rIUkUujHOX|6X(-C|QRx(0L*x&$i&#Xu_kjX~$K@?MFn4(Tm7 zDP@1Nd207JrX!b54aBLRBq?ch$(JWYafxENWDk8h8KoGR0D1BB&2+zb<1-JdapEdo zXi$kL4kP27eSuABGvvSoWUx62({*5l6F9T&y^aixNmd?}J_1^+4bz^+=^{{U3WP4! zx9Lrvcr5yaEaG_sJ#PwBqCrl=%N_{o&h$Qs z=+rve-WWaIoB-%lw1+NY{5v651MD~GmH-aC7k2)o6 z5-B>PFejZ+iF*1-ImisOn61q24d&>Ry)bBqYFLU2hrXMlv&zuHOVTI}kQyjXwb%d| zu#eZTr6@jGFRt;B)8mCVOOO^XA{>RAz{PI(9Qd_cmKv}oKi}_ldo^jhy(**Cq+gpI z50JRUw19sCpiwLs&Mj2>BV9Gf6A9?7 z#?5SS&#m%Q)+(>3ZLO?>+QRzdl@(;?MXA)G#?wNupM{pr{%i@5I^o0PAZ;zEY_(JLn159hRU20-*? z-qfKh2Rjhb_n-92*%oN~tF7gS&v@m;kH}1aouG16SY+zrum7E2xL;m3+aDMyJ1oJg zNtbsrr_yH5s8KQC)Z7E}5e%z8lX}zl%p}_KCn*7|S_0&{Y0j$BrP4?eBQrN7_#;K5 z^Y_71?8H-vNw=exLB?&Rh2%(_fm=xjT2vl-p`4noE3Tq6JQ05=@g)&o zyI=qZjy*>_u+C56fF&DV<`X`40iOI*2ru(*A-v2zH&@UMyng}t<>A2T3mX@lKQd8I zdSb4GyVQG;CFR(-N1Swg9A$`e1eg1F(M`DHgQWu{nR`}=_%!S>QsTAmr4DS8y$Q{6 z^#yu|m+x2Tv0w&sA46EjB4GmF4liXp7(^`V09W;G2GP6;U2>Nic^uC4V7jCI0~h#J zrbA+X8vH;8sTbTA4oZOyhQ1p++}7yqdaFNw9pAlT4T^wcXPiXdWWx>+Q$dH1`}>5x z;Y55{fk-e){$-?G5j&s)$~-`{D454avWSS|4!^OlaWJo9TC8IUzESSL#Bf5U zSt--v5qD<@H}PY_YWPUTZjQT4Vl}=7e%)g^rkF0-RnfT(||hE6yYXTQT{wA;FX&UC?+h9xQB& zRRxxzb2d1@`^}>ai$|}xq-UAJ&D0dVCA}YfEGAYn&=3q<;=_yff4pnWyXF5h?^@de z|8KIal3nN*XBYYjOqz(x$Kuoqms^+erEw(|s??s99nbwkUWWY8cR^kxtw_ts_$B3p zpOpC{I@2kM;~^F5&iF4*8U2@${!hWzu!4%6pTXX8etgAcz=v3+f2#Brx>%LC@M~FG z13jkl5CN(59)6f$f0f!m zU9G(keZ)$S8?4lISp%=)QhK?!zg!4W{lpFyjX*>)j0Lu)+-bmqnTf`|y<2_Wvmhg(PT2AW^c>lv@^ZXVW6_!Fx zEQKE4zns7=#yzS8tmIZlYwb$dQVVQ?FKQ3!zf{9 zr12oegV7LYFu;>r!rS?hiR2B!S#^BX9nl-V6g!PC>n^+1Uwn_4qr^1#{xZbgGGw5w5}K9nTRCn4|lEp93~2 zs>l|#R$v_fWf3h4p*X;rRK6HsgkE1;fG$UChGz(P(hvzEetnLC~9sN ztQ`8Rw8)m^t>$;m;_2JZ?GO*)2#W;>*O>ts7cMOpJbfI@bIR%C2VbU8P7kRpN(lIN zB6Xbp+{G_nxEK28yXn0hz=;aSxu6o8WAHDeoG+Yn_AScLeXbJ5`fUv6D>l0~#~dUN zO1m+%>dGSAB&rv$cs?Fb?Y^3lRJwWAOE%9ZrnoA|)M;ogi(zk`AcTD-A<`-!^NmzM zzxOmimDKC+O#Oba+24g&vz4Sb%@1K7OXo3sPh;{keCz^q@_E6S+%6cC-w0!J7ILX@ zfw}#D-LuywxUwYzOiM7y)<_Oc!MONL*H+ zGy}6DpP4$BlC_jG{o!F}_}%eTW|Z!=MiQ86>cj@H@$8LM>T2^|sCTD( z?Fh&%_)3!n9}OsCA?dy`X5_`#b4ieR$+jBx5iPAAZD_$2Nh7y%?An+=z2FaFr0k$n zWGYwMWh%eL`yUGHYhG%;FIYYQ5K0aU?_Vf4rXgh~-S^ebIv=_oYU0eR$d_51)ah!? zkH~imluq|Y90{`;Y+Nn3~$vxld}kOOtO-j}(87$wPF{ zVZ?M~_<{hCIWl+9qeuMA?pmg+R-?;fYYS~>GNbJTIu^HY>d+OlX5nf8l^NpH!D?!S zqa0e{$b%C$5L9};1bOk=S;r^~{l-MdPO$XJ#`E235JxQ@C=l={wu28|oI2s5>;Ua_Ip|ZJWtJF(bnKXrv%1;RM81&hS*K zyJgRqnaSB=sSL0^q|?ZB<5O{kN9yYic-tH%j3~Nu$%gtpNn|;8q^J&&rjnM04f2wZ zK&r_NzReNx+9kUoF4*x5SyuE!c83gf#Vo4D zYbW4dMkXMjcXe|%LNSEL=cZY2irECjJ_+6w=`eDhVe(0;>Wa#}2sPmVLs1SvRe9sA zNZdFV2K4vQH=IM)Z!NXN@%)+!_KVRXJjQ0+5o-ZyAJr%T?19RhT%^m&MF$p|Z;RgO z327c@|5eIE*T5&WSBUjIP-H@U=vinKgv81STl01xcB@{~lBO3k zx@5AM=gRjyN%JV5v~W#(H5&X#&%i>KfH~KUMo`LI*c=R+rnDn7h6QFG5Re&n@$+M}yQd2{1wm}n z0?3&YccM_ypaod4X}ltQB2Rx}%Rq{0TC%jB75a@8*30Rw=N4AZczGke)y_=oB@ebQTP!A6ORM z!ZVp#5}XMN72Z9tABK;cwU}=pe;n&3SL`Vo?EF#t2Hk4nkcHl08j%JmKdH!qY|@)# zVIGX{iJU%Xc$VIx0TW2WfZlb35o}hI^c=1&jCeDNllCwW!0>tMt@c2uaOS}@j_0Tk zAWCZ>3U?eOf56PHJ(PGw|LfX3YF43~sM{Qj2Is%?MHnY}Eo5^z2Ea*4a=WzDKBV@| zl}q*9k=X_t3w<;jok&*U6X}EHCKqn-%6Xyl#U@DN)}SmQ-(V)QGh?{6uoO0L^u>8a z*-^wgIuo2Xt!t{NQ=d3d+P@&16`RyM09-lS3Bf4?nLf75h*a7S9i{zPQ3q)S61v@t zxj{$|y&)$Fv?%NOt;_C&yT)a;++j}h!r&>>zHo<*qs8Q9-L^2B;M(^*UR-HkywfCM z^5n38T9*gvJwxkMe$&3Z#pvH{xS9h10=o2C1|YW>xixxraXO~m@q-SVALLhPXGDY{ zk@F!Rbr=o&&|wSyrs@okQ?z_tXzIgiivIl<=a=_`U^#jgEGKmz;UParS8&EEbk|`z zrx8h2|2^^LwPG`T9?$OX$-~6Bc{Coe0nu{O^E2x_0dvGK$dbi2FnDfc>TDaE0L%(H zQ<@UGk1C%`PY`Nw!lY2wH=qdIoVEf)Z$^qZ*kmo+5f-@J@U(6F-K!-;MOX^=3A5N? zrK3&d2GAf2H|2JKg5XTPSfg%W{4QXQP6{mmX>df|zW6SZmw*vqiAdx%9lAutjpBua znPM_rBMqWUG3RpjsH$ASY!1tBDq_ilsa+s&JkY5`XQe+BQyE?5le&VhDZNp+|$h$_x zly=yZCfJm;g+cxU6T;M^u&V3~ClFf$<`M9fgUrH#vmz2j=o%+9sCX7e%u<`SL`6X! zAc92>Btg7^U=gXLTT?)%6%)Gxi8sBO%$p{CGt-z$ybIfEnRlV>*lZ>HvQOo-wd~80 zyDOqkynyuwcf+!%OBI5-ie;Bhr+n#BkdL}qDd?^1&E%16S-nzaLS3;T zC$TxcA*XU3J~u0CuTnP3zUs?Er975>H3+5p^3V_G zaB>)~W#9I~sKMJW@^7=**b6*Y{_X5wP2z3dv1Q-pY-#Ye7e)=`DlEsv;rz<_c^Y7SLf%n@1s)RG7X>s*sVxf*}f|R4Fr6 z;E5CY>a{d0X6?2DZ1t*_X2SqS|G7b`N4+= zH{pfQSVCtmQ*=08t+@}qDAL%UTN!4yQtWTWsomewU=^1j!zD#vO-d_+{ZQ1-CJ7rs zunx?=@a_d^Nc+*bn-$bra)1@q+3<#}cDbW#>C)CT3gZ}OopQI$lLMfjy{^DhJU4@( zFuyA*;L)1|vyg8|=0j8)CVM;%4@P)bg`cAs226sR{GSU?fMsucDZVX3J4(A3* z7Q@V@@6An;#f)7sD!~y)1|1v9YGDA#mKqj^4Kp#5C@WF{C`Iiqv)Q0cCl8=BDSxO1JM*&OqLT^$%^FUWHww7ZUgzYr8xlZ{tYnQk9|xlv zRbX%uZE^xmJ-9{_Q@%(}_>zcU0WnA5JAVcvQ*4+kRxq!uDGuTgbpPVuY0!652-a~3 z(&Nx%l^=ScyF#%H|JF<47yE3)SvJjRTpIIgphlIZm5UgP6~0Mcs?1Z>Iaj8=rYt zjT2Y#LJm^5;c9Ep+*JhRnW=PQW{Rb`4ZLz_1K%*^gbeO<5Tnbq3h61 zaqhp{466>h$0<^M+HkwP%zNmREB-Io3&nfywnAsX%;n9fun@2m^amLA``rs8cyLgn z4PMJfSv;R485ish|9e2o8I3h%)PA8Nf=>xfZALsGh9$)?31b>$I z4j#s-U$3!nURO>6;cnS(gn{+aK=?cV-_Z|NL@M6BOMsLomJYEAlQi5m!-gD;}Gjj;}FBYM~vbW^*jvt@=F)h?L7f= z8g_GVjjb zaVX*hN;d0}{vq7J&AqHg=6=>ARjF;J|42;@t)`|;0x6rhh{Pph1r3>vGhM2_(b4#s z3QGyNnI?FiNDxx1@=b^I6>PCU;v&)4%L-A_m~NstjEr;kHNIakE+JYGD9mDdi5%FK zR0!EmO^t%s{z;HBW=hk09t5I=%$K39*#IGwnsYE~V#sI0jUO+o#at#@srQ@7c=QdT zRBtBD@Mim^#yHPhcRaeob{4|49%pt$q6uRcD)nTzQ+rV<IknUdMb!s$@H#}CHK=`ux zmis#KordVNKOn~Zz4+g7$<%YnX@FZ%7$$g{ywrm4woTHQJr-i&g#MvF37o0G4Ff~= zSy#J-IM^>WlBns1X_enCp_2>oLn_3d#W1_AY@U(AVRr=ry6EnOU~fw4?i=7csz~1! zaY-oBn`1oCjPE0r)ulH^ovF+BFqWy)ckuo7zw--+ZPx z;NYpdZ}LsRgV-Z$)z~ec&2HMxYO{yOFpcsB02rw(~75TCehu}mRgUiCig&2v!cff zZzeXrGHMlAEa`$A`E*`dq{x(#)Zu!g)Zw)vjdCJ|drvz+0HbctZ|?uRUjDpW;$gDz zVs?ydx?a5Yo$Xkh*rxsERViw)M9IA+jwkj_NLJ^SLBfzIL!UW$&N7z+p$Ev~$Q z3U5ePB)&W_MIK$sH7vq;s`2(n zjhm?X#enEX*+`*V`;HL&U~3TzkZ&8%OvO zg%y4dnflH6BTpy~_;4aBC?BVx;` z!A=7VgR`I)buidDjxS`G+-XihJKPRL@j$2@j7;NIfO0|$j=H!?JYTSJ5pE_vFX@9Yy_w{CRFRXSKd>(= zY}Wa3I5ryEOw#&0k3Ef#J=&bv&>Om>E?@kE$RcyHIZkR5kZH|0mkRtDAp_fdlTcfW z+VcSIEa7(1B{Rn`4K(;i5uSc2=oTUTs!ba5%jvO&)Q~uaFrWD$L)xu!=ME`L3nvwC zdq%Ov$1bpcIxCz}oEOe0uEZI|Z@hm2@$75dG0vPN7>a%~Ey_-SHT7lS)W*R8SuT@j`H<|f5(kGq6QcA)Zr`rgo ze8}>E*UB|k|A~Ps1|k}Wkw`aC2&LI2=^qso4v)v? z9n*|X!i4WIzZaQsK_?ggJKbw)x7YUF7p%`VL9$(Pr7HBDxu`vTjKhGW1Mc59*wo5& zo>Z%B;ff&S(7P%o*lI&R?peIsO&Rs(e0jK~EHXr(%8Y1+NI~|W4VyR4F5_!2*u>u! z5h0n!D))A#+=Rksxw2KW&`hNsE>-Dd)`x&kI3BH5|$mAf;LyC?HI|+%=OC7OC zMz9{y!95AhJrB9T1)nkx3_?h^*hBN<+5b9paL;Ml~d?QICqU^(|O+8gRShRUMqs z8xqI%OM(=Zs@UNV>cKY(QYXgW#rk&lgw;MXTCFsIeG`=XX0eTpZZ$l-BD3TZ#De75 zJJ+cRcxn2}ta_pAUy5h{I6RI)nOU#F4SMsDDBc92LDw8lgf@E{j6+t%++i=S59B3Q zUG<6wF=9bGB6+vg%QDk8$S$t_Ak&4--Ch-(4+t`{aFN6&M{;8}HX2%(>^Y#~Dq|`m zS%7!0$Q;amkHI{z%nItj!}|@8WNqxwoq(|#YOiOeeKWkEP06gSs0fsu+QJr(t-m5& z?n3gQ;yW(;P@q5a!u79$AKp;-;jM6bF>&FRUhJMsGv2)V)m7I;)jfQ8QU51v?fs>- zuC6f>H70of^4C?ivZClgcnto4>N(=lUmeS`x3N^1LY)CRVYtmFsw)6!kY}&md7N`f z^-uN74u!357*({}q!)f1=Li)eQ->B%xKWYO zN@HUR?9+C6*r1T1et&wJ-Z|Fz4;8pU%mBxWIf=|m{yl_bA2UA;-vk+Wzw9F`+YiBq z4zAQ7D50`dPovPqM^27}4OZd!s1Iij_g%X7IcS51uxI3&pmJuA9+}a^8hzFbZ_^oU z);u*{yDmJJK9om_I4A7MR(&qHl{j|JlQW&{a?CUDVBOcqxbKK*-yHW5@^Igau|DKs zhPbg)U8&2Sa26fn_I`KsQ?A&w#R4bFFW8Hdp6}gG6UWbC^RRS2SH33k^AvfDL&>bR z!|Xr}=^RC7Tf&+zm&!Kp%jBJsS;tNcmnTJduq)2!E1)M`&E{ndDmF77l6o*t#+KgA-mwDs?VGqY z6w4YTcQlaJib|1F5!J>vx+!U`y{{(+&etqj@Of-$*7o|#OtH}hGe2;i>gF>2h0rwg zVeCTsq;mS2#x9VyARf5hj4k6+GBWU~k+CQ_F)bXw1u}|@rz(N! zIZARrC^l_J4Bm8ZR97cQfS;Ds@#<&(ke#xAw6o+xAE&bVo?qTPT_2MdM2wp(El9Q4 zffRlc$CwWhM=Dv^j(N%uAG-jbCI#nMx8NMR63($_c>iKU{7!pN+7+(Lld0tLOYw|Q zbkqL)fBXb~#<-HBjTOk3B9qmD8o7#p62tts57tChKcuCeT08wvqqeWg>z>M~KRq{DbP9Y1 z*`n1kdE%$b=oyzpLOVOQ8MhZ(8*$rPmaRC=3PJ_fZCVoIf*%HrtxjQ5Gnc+E$D|p= zL&cTwXVHK^TWS7W?i6d~*5|2J$>aI;udCNf+q(RL)x=qAYi~`oJGj8F3eES5tiW$D z*g*O<4Cj7GxfZu@6gZ+og|-u<*BBuxLs1FQu9$MwzdUh_IVTBThw*>7ids!(hc}^>jQ!ojUX)=!o!L@i0Tm>1b!XI^G$VyRPWdkJoosT=v)Rpr>sFL(^`y!4SZ_ zw{Dj8tmQ}OHAa7Zh0!51&)(+=xfcd}Vq#rZPpj|UGg4Yl**8)g@7g<3B2F@^bfgK) z13v&6bwh_Mw2z(pe7;~SKIj3D z!O<8Te(r?52C&pI+#+Y2ea)gOetaMB%C`MmDuGmH0!6oC%vtTDY_(5mOwnwI{g*W3 zfJIC40!rG4+DX^#qD@gJ$fsPq^mZtB4F&?oPpdU~GY&Og`(BbBR@cNkkUal2shkAI zw`npADlLJ9^v>|9+L9SIowQdQmuwzIn#aB&-aW*slgRjVdJ=oEYvRT`$F1Ggv?&NT z-eJ*uW5P^$(101(VR$Lkq0|A%0uVG#0X7)jU@q{;P^uOwHE5$bzUSfvd13U9iCv`% zI$bql+^Hf~S`n}}bnB`@2c>fA)NI3uKpb-_GV?TRf_umO1XpBbvIxoHY+1|xinxvz zDB_)H9)DRPOgjcQyKGiaXi2!fndR)eV*#n2=J*c^bBMg4)83Dav^K3 zYr?=O;RIY(@YJD95SBmamOVR%M`w$rGQgazX?u1Ax$PMmGN9klTGMr4y74LhdW5Y3 zY&MUvm->P%*m^qBQv@aSvj_rh(tMTXe1ILEanIr#Bjm+6Aae)I#&&aube3SG#fu0> z;f8J<-S9c^E39eL*hLK^jdaKdB#BMg!*(Ef&`N{>(a+hH{qC0hTyec8FZL!Z3)(?g zjf?cp(YE+zx)?Px`%%@Hu7mg)EPinM6f@5|+9$i&NyTM$QqN^}Qnf)^nljTAE(CjQ zG$0GM5k#H6o&N8y{9tny*A`to2n^Z6p=Zd$fCZh6_r)%=?$vYXJ?o0 z+uX#h$6EB<@1(m~?-l8>mq~Z3%1ShH$W&L(TD^AGm$DPnuIA;5cwvr`bo3Nic0t0R z|B6F9CPDnb;_Pl=8=C-h{5`sazFYd?y@@2i()ozRMAA7S@pW0S4KHxX3zHQ|GCcR{iiyg_h0RN-UsY_Z6bSrl&;o>_78Yq-FtBL4}DJEs?q8P&839Q zuBI}(5tA$rmtF{wSHU47DZ$?pUviL_TV?CqDjON%pn&#N?86C5Cuq8WMqE7ECM50x zOi|dr9nav{YeN|jRTFq#4b`lMTI(%crgVoUib;}f*zQR}8z;t~Or?C_l%1EI)0h(< z&V*t_x7-+h&kS24vl z#N8mo1Dpck!>q)&Tbybr`NZIov&1dl|4>+8^E1VLVW#*Y7FrAMUu<@mk>*P3?Au;| zmgRfzZV;#5gozr2NgETxD$5HrSZ^jiy?Z3v;T`+=g>1VR8omi}RdEXH>>%}qdCB|n z)i?ih&SP@+H1X=MFy%uAJE7wzsZ32+QKjYI)s|==Q7eeuU0JJfmumgM$37I`L%v$S zYrJm@7rBtkU^7ye`5oaV6Ok|#lAJ43*4V)N`M}s}Jammac-8Y5%Iz ziU_P}UNyQpYjDo2jIblAvMIv*TevU~R6En8I}38a z-eosfy%Q`C_R`lT@VY+Ngzv2;>U6bcE)3cgy`yg=7%ZW=*V3-zRDc(OyI+ zV7_VC>GmWkq0{(|5;dMoQsZTr(iYnZKrp=w1Y^6ASwPw11%zlxW=EWmxcQRO(DAF0 z%U6vW@~vV9_ooc)BS~Htz3uYv(A3Fkv%2qLPu?8wvY$P9t?Ku-Zx^!oqm9ij#}*%@ zLw`IK%^TFKrc-A|?q$jYy0?sw&W~svpYGVwyjvv^NO+u{o+A%gbSVeN#pJDOkp@la zJxWepO;UYMY2x$D{^AFjDg(NS248k?u4IA{Y_n@%DD|$@*7{yQWV4 z<5y4-KZR05gK}~nP$+G>>(Rpr6}qfMMC6`4*(tUjJ=ycn;@WC!`D*X_bTv1d9rb9r zp;CU_bDCbFAh!2v&{I)04Myw*^Hi#X$>1&xCQ>n#R-O^m)w&HvGa_r>nUXe(PZ6ae zi_(}yguIfTSJFDDziP{H6v6eT&z)u z&}`%)G#iDO+){y>-#bvW%yzY1Z>VUwW?W`BdqH_C_Nn929>HanOk641&w_eLJBJJW z5)RlF&bm|Dlk9E|5lOVgJQTg}Y{N}Qe*>iCVGTMtL>%~P;4FYxN2iDi$Q6Mf3B22<@Fbe0GFs_B{*9=(E*}d7qKu1)S;K_p#R7ca|ux~<_Wb2%? zIgLOvla@1B;9S` ziJjdYeKbm+G;Qyi)EI^seif-NDthanT2UiTW%qS8QbDKsP|qM?URa}=IlWq<%5r5F z4YfaYm!yxwL~gPfo@J5z4539&=#0o_=|Z4N>1m5^FbaBv`m$#f>1Z=k(?psr=r>o7 zI7ovZ{*ns)CKqK6BoBnXh1t;z%=8;okr+EQ_|us+?E$TcF|sVrG&q}tKU_d~?us5%M3bF}mP>k3NA{Qn-}?^rque7>Gi3*;&n z$vq!e&tLyLzi_|2Zni(@%DclByqY4Jd_Hfau#V4;2QepQh|`SoEoiZ1XkoFS9bb-? z8~$<&TJ&};&~l`vjWLtQx~i*``7PQqLoU7-jXpr#JDR6r89sX4Ybk! zX}>nL80gxGv28PKxm>w*33PU91*x;`@shLNt?|-j$-+h$X?GBT-tldpfHlJC0xx+q zw~Iok1~l+P$K`R8%L6w^V>S;E*PB6zJx(cAJwN%@1cj?MlM2Y{u|Rj(iPT`n8|Yii;XN`vD9FftzKG_qA2## zfVOdgI2rGaFlVFN79k3I*Lf zz$~lNB+hIP+jVzEOS>)k(?X_&Q7}xW*+0ImkUxb`qwh@6Do2q15eVAm2tunyQoqqi z5RmP7nK+zJxHW6H9T~2idEh0REaQUONZjAW{#I$fE(q($*aTunP5%NNlfdA%9n{Qg zBELI7-FiDY-FmCjN*rHpbNaUaHREHmwJ#guG-s?ymujI|fk=UAMVJSVmY*D(sK2 zmI)^WW&0@-4xukw%X(72;rE-#=mzZiHj|yew`?u&N#nfZIIH$$i{`0GkjhQy*y7-m z4uDMV`<)9}B!E$2_(>*x6~dUSFS0aN;98#0E$+_KuL&fbwgHT+C~$nb89f4#q-XdnP+?q+=PK(Z&Y@CggjcwbuZQIGo#>vLEdC&gex^=(zt2)*7%uLU(d!}dRJecm8H|Q1MQ>Ya% zptY?UhL;dK#bVCp-f0J|UE82K3IMHft@fZSs7jZ>Ip|jRsMpKVEZoET-Z&D9Izhb7 zbWR|lxMr_V_RMg}KJBLV?zaDzNlWQgGIC~zcQthMf)6R9*E|DH-`+cC+|8^IG+0e` zUq?ig`v*aO!774*lsJ6MPX}FHMsTYv$jWTtLsSmQfaE_L2Fs(qT?Wtmda;;2v<*!j zPAmJk2QVG%(Q#*zBjFZI`C4+;S?Z0961q8QAqPn79=4=n9kogrJr4F&pk`}!L*tBE zl_yo?>7!}Mw?=krB-Mc&>z@6*(Ka_^zll*N;ZD3^iB(hyD4%r`K&pR$G7)z1AO`+a zxnYl1jHiF5%g6(LMPm~LhpV`5g|(U@#f>DMLQc?<@LRZlR-dak1j%)qNO0m8P9i1@vL(KBAH^W8Fz08?^Q5_rm) z35_<`Y!xSXL|1K(bN6ySSIATl}3^P?m%wGw4<3TZW1W}5Gg=L3^I^P@%GfPk!=s8v_+?GKx&`<0g zi8xX0{)qe=VnKP$Dgf<_g{)+DBQ}bRu8Z|D3uV!>AKw}ITrEZ+r=(61U;I185Jm@DmFo{BmRb>6>}@R{j=(IzeHm%|0AleUU(@Uo-=^iKZAtO3Hph zmO(6PkhOiN!IC9kg8$2bw*(jQ-&femO6CzJOs@auM_9=f7_67o`72&Au(?MSR1F2g zH6f%Lawa0m?)rr3WGabE?BUGLV}n*ZyZRgJbCWcG@O&e9DfPY3sg-X1CBIC}S^#Em zJivM@@3X9uvO#x1kJsatYdg}d$Lm0U8>YVLFn0jOCjLZlQl_u0BF|_rvwguCXR;|^ z^y!M;gOp$R2W2|_F-6$2qt?N+0qh8=FJsiQdpppuv(z9)a99Xil2`V|&s}jE+%>=ZZ z3u|#Ya1TNuK&4|qBEfzmk#W>8b*B1HQ@C8Vkr{}z5YNGV4m48_)o6Ek5xVf9U)kby z5SI90ht`A^qAC6v6LWM5>bO-Ao@3dd|3NwmVhKYyXxI-frO{MN>M03W_E{#y4X6EK zm)d!%fuF#;6l@VJhJX!`@F*B(()(S~C_*3AyF8+Ep~kDrM{Yr!0IHy*@Az>EyRkMt zqH$WqEbVWgC1sKwr#*L=00N`TvesC%4&`ewX#G9qTGER7awA2;a9PK&karrgBgn01R2W2t_$*qC&ZU1o^X?)ld z(3>(E!&#FS-zc{J`w=nT0mvV%%DA(4^`UP9^FHG~RH)!fQ<0z>M&v-tHT?I{V-Vie zVi0i!R1iIYBr~02=Dz;mk(*43Iw9@C!ZU-DM8k-`_TV zl(Z1O4Gjae2{-4@-7(N2w4xv#mWb-~VID*roK72o19psaD=Bs_z6D3d0>QP~v(UcoD$o zWDCPHLY~0oA3u!jv7c5o8pC@9!W4~;bGwD`8$df;yDXs_Jl@wqBfTd(+`X`6(Wa`P z)&~6|oQp*CxES1pjyIZh&b0kN`B-xp2GZc)F8+dW@ztgFpZN2g2n=1!d^f8DU+#_o zhE4lXK{bUFI#Xjvy4`J$^wciakt@+y_z9pmnGG_m`vrfDT6X4tfDKzxB#}4OK~=)= zV3F516UI5mAKfly2)3*Zo1Ky$`3R+pGqetf_@1}G1)8h2miq>dnfTd}{1-Crs8Pb5 z>9Vl_YV#vV;iEYyKIpD}o2biZnc52qHj@eTwmjCcr?>wMiM4nB%y7bmQ_B_9mC?Nu zgeMK32ZV>6+7(2DAEyOcn+vuDIy3W~8)Q|^^THpUvXkE7Hc=OvGkCljJZqq6nPdr& zgJ|a^3B72np}6X-i6thwj*Yt&j5hgVsxCpvn3EM2Olm@14tv;|JRBTzIY+KTfX_Q{ z6Y+?RZ=;UJWW}$$rMt{CIO1N{qLLdLAaTA%?-B-B#e1C!js8HH+=r5$#a1TY8yE+} zlq9CkVwSN~dniy>6J2B(hA(lCQY?w}@a9K_LvzKA%e-cS$pu$r$c2ed1_Tp84V}=; z@la&H&}Bij%nfH%uvH0UGLrCIt6Sg{>%lcfF1AlLkbSO)c^#7kw@+h|MXi>K_zb~) zk$gH2Owi!xmsL;PU{=1pGy(YFb<1kd+B(nCD68qk(kkiUadK)e53J^{gq=%Bgs5wL z6~e709m6A#s3wf*db482Pvz3egwoEzXj})DcJ7mA=#0!G2L>gI@bW@6T}hXaCWKfbR_{CQHz`$2nKDp=PG zj6OZOE?BEYxo32WivNg5-~-H)fLFT4x8 zUGfT@F#8%^VL%4@!9|B7L7sn1=b$bvdUKNAONqnx6ja|BbpHkVVNBwDgI)#!JZ(jN z-mZ`lW$8l+1}bZ`DgPU?9I0~o??wdL&?{xURe7Dyo)!|N3K{7evG_6LGy<=#oZ$V{ z*9)b1FAM?7yTQp%le;$ZNM(oOa6^Fhw%GSDj$tAy7j@7-Rp!K4&FHm36Ut`Rn_rh| z{;kN_=xu0BLd9`@X;9%-Vmf!VaV5T>eCd(DH;cqDV^aon zI1!c`$ng2^vFX96gPr@RnvIr}XC|05HWEg)z{-Vf|fD=(b zde>W6W*J^xpcHxP`DYU=XqQn1}1MWYaYju%nqJQLir>F6W$b9+CPT z>KRH|LMB?3P{ zx`&k!Rrv5m62VgaJG#yC^}PIbS*Jn9^UVq4IzvT z8|G7>aeSW!Ph?^i^e9_vPWVPXrBVuauoa?xWLfWUZ6?4NQ+ir%nbM7VPekcBgmj~n zH&W;OW9bH(k^?Q@SRtecZ_n&GSYc2Qon4Z%_9rJIY$lg$^z=kDVuSV~E8iNYr#sJ{ z?}oZxFMW_Vr|lZ#b`29m7q9-BKDfL2w7_nJzKk({c|9{BB3ftgSGQI=F!yFNw0>bZ zMNLl2twj8CY$j;W2i|{lZp~;+R$c&F&}QThBf~#Jy0hNqoiOdLb`Ort++9XKH+{F- zNCrD$sx8?&cQgzCcd z7UO6K_OX_5y2UMneVVTxf-__O6ia)0uUjKiNN#i#^6ZiM=hpNHwol5BJ6XHKt4*7z zzZUJxv-{@#f*fzdJY$A=fgihkri^pVKAZFjCHtQA7$|4eN6Mh}E8Hz`&&kW0&i=E- zu=?q2m>=7}tO7JlqQ#EfY~-%ttIjNL>EBOJU(>tbdz(6ZD6R_1DsyC@rwUHno%^cF z9=Y#-t=D5&G|C_9436~#MZTEudVNfD!WzW(1l9JYQ~u>z)F7I}^25Y56hc9a5n}Rm z2cBSKzt_Kd-Wv#gRQE+sm^Jz78w8D2|Aofe2Ky#39GKbg z#lqW$^G3ASKYad$NVp-FcEFF{WfgxL$Gb|K&=5T|N1IR{!vDuTDm|$l zFQ!M^2ZoF&zvN}g4yAAkLy2815KSfKpQf5^MoP!|{j2Uc6NvD41wc)W{zgzm-T-UVIfx}01qV|O zkctDjkAU1cL|#TrhC+djH}5NGMohzjzitKw(2N`dp|OZx>kSZ!qtIxFzM&v0(1Pdp zr@Qx@hYs)HA90Ue_MwR5&XNK>{l4=6naF{p6J-GRQw zjBhCE8wT}+_#m2f|38tHqDD;Mp->ik?b6?Qub_};#GI3*G^-{HfdX36U=~N*9oTc| zCM&B_%7s;uTBwUBj8T@L4%5DoQPo54Te zd;8~{X&~@o@836e9uU2$CYbF`YS5sot$$ipBW(8rAx*S#dLn_`!z~S=8FmHCfvaJ0 zeHU2-eiS7~eXY)}AZuwk;M>cqpvMKCNZ!^K(0Soj7|)M0|8Qw=b$H3c4jv%~C4wL> z@BX1)fNh@vQ47}~d$#}Su%u-&TMEHM|JyMF26p2aSXA)yciT(j>s$;8mcymJRStn} z-S}2k&6iIDkA%9?WTTDK=()()Z}y1%A`i!AMANUoLo#V z$g#%-Nng;0a@Jb|KO1sQFbEg1(7D>F=B<=|)hvTX=fm=j!C(#}SI>te)$}6oLXl#-&lRi?V+5FvIdV z=_To4rYu6gbp32dEEC}4qQS?Uo>KWB-Vc7_d`2x|_$K+|cxqH0XgsQjk0AY+{QQ?!}I^*!sc%k)}XtY^WDb}_=z;0LK>r#fa&CODnjV4x#kC8FI77R6 z2!H-IPj1XZUcgiQ*ZP}Bt<-)u1*#ry3#QVUwrI6A>H$t~uj6 z7$PR(cW3ea(hI-7O2<$0l$bW{*4iHqL4shAi+Hy(P*jf8;uPDPQwf?2+Aj;g>`s~> zI2Qd>^%GL@2DwbPqEHiBb!#A_MaT>x&uPc*%1CZK?-mw?54!pmQgE0v?^}6c8#FPC zOC0#0UZv4%q_8P~&@M&%RbJH+aYGQKQ}#G+QVOmtI|zkq;y9A&4pgFqrg%Ba3v7c! zHY_~&!!rw>tgPUbSq8MKE=Y2Thb&Qw8J;SIpX%Jb)-Na-TSS^xKWyGS=1_muvhQ({ zc1|8F*hA&A(aY&wYNM8~=f1>Y+|f^`*mAxfWk^PBR^CdZ4%V#bsq|5aO}fo~-ux>Y z)eE*`K2!W39*YJ-kr-%{20ed$H*c|>7P)okEPj2$+)_#9)a-rFu`87NhWF|G73q-J z%^->gRTep!O8qgnSu*cEIRf&hi;3Z7c`9=LhvNa#*~^TzhASqstz!NbidB{wf82PL zJrdneTONO-23x62Gl;4Pb)_rZk3cV%y|qXlnItv8fmB+0HnZ^X-Lcp>msV|RXi{&~ zX3rPvab80mQ^^&U!he=tlGgd=cpho=!#|d`-Z0A_Ei%4!8}&^2@*W6m>g}%_Dm*>> zp!~RcG{W^OT|-vu{4 zKmIcIj;*eLi-|mtRbga?uRrwSongf6Q5h$LNO|*BcPmx?4#Apm?!wVp=^G=Y0zZ-O z43C@fSaIl5{)nhLPF$=z9tQI@2#d;x6}P^8gXCeunsg^=XZ84BR&?r?FP zQpn>}1WdCU-7!o!*{mSQ`664nvKE~5(}^{WtKpo_LrrCUrOS9!>w0-s!5@WNFChLd^srvmR(Rucds zKAP_+Pz9(lUt44}$1#I@F{|~WxUk7V`-ICX7Y;bzz!zfAGfFjO#F zY@7fu#%{^j$UWhPmUd$-pIG}1UgPvMdu@7JO@2xjme9t#kxIo^#Jf=}&pbnv&Q zL|t5^XF% z0#|KXAKHg>qR$EXQ>w56km_HJRzOm#supRP8x7#tZftAU^~4uURwtm})n%w9M_dT?1UT z>aC{x3`+`m?qr*8pv23}@J9M@^WA;G0+3gJTQ=(D>>dO@5``6u zI`z~4B|f9Y)mmGP-{e*6$Iq^V#MNqBjdf7|0|44#Tc^G{jNJ$tp>I-)jDgjRD5WdK05Q+miy@2*z*TL3DL!2&N zw0s0kwvV3t_78txJ$j3EA}duyPxwIv(MFWpfoqoN3Z-q@ppRhSFu@8jumUQ$+=m*k zc2F%^b`?T-BbCnVUZf#cM^ zU7`7yifGm5pG}VZ%P|QK?)re%@&qD77sN+*F?s_HbVabriwfuiDoq((A!LAfo`r%D zvfyDjnuoJ0`vxa6`ke;BLRpOtSIy#gaJ~s}vQZ%r^cCzyOB-QNs=9=mKNSb(@6DI} ze4M`I;Rk9(hmh?ju2xyQ;U*tmMWf*&>P*%EuwG^%ZIlKEw}gzZajn&x4G(c#pjmkd zmDDJ;$3N=&jyozfX?TPYUt_l|IMYsyJ0^8zcw|7T*WDAJCE^mNu1&ygALfksI>Lbj zkkUTs%Ks%+WWB`E=U5iAAWeys?IzkG|0>Rj1klpBxZ3-(&a<8=uGa)59w+^?rYGKptN>(bRs)*hQVXXY0kuk z9&eP^MLzS>oUo7`yfYZvpdN>^oQM{<}c7_8uShniN+zRT$yf>2nEk;OUn4%)6FLl;Zg+G^g zzG-Hs>F6l z5X_qgqpqdy`5o6W`AnLFSuZy%Wp4jWS|Hq+?QMB(BVPkstZ_9MTi$)K)BTk%$HU^~ z&j&z!)vxgPbGvq9zZm!SmR4yaj)V$%-3qxR1ic&Vzsps*I2he4W>%rTLAL&3LA)pl z`+>U%5?);qU4$l4c@uji*=`%S=X5-nt!W_Oxh+irUn z>*fX7q62Y{Xg9IYpcOQq4+Quz2MTr7f-(Wue1R{PwHSf!WIkD)^%yUo~u}p zRekL2;rh!@9P;r+m#m>hTUIIK!Q4wJ89}qPgZqd-{L0?xu@Mp@1t0TvSAwK! zIzOxEhY9o2R`XY&UE)(ZjB~jYjTPl07#2C#MyO|_TGwy)CcbZiUKqPHO=`qZtF9L- zNcL$PdA4RKn0$uP(H-ZQ^>)WC(Gn(l5S8k@T;Qmi<7#G;rVLt1kZAxHfT1r7(Ed$>>W>D8|+G>os@2?Od&(P@xRcM$xHb zb;>?<1Qr~z@Z3v{+j7ww6fYm$8Jj8&Y0XrpFXRU#0hD$r3)kn;`j+-;63{)9Vl+2w zeO)$=n{i|RdC|#h5>}b`j?dy`z4e#H20KqNi{4YK5bmn`BQ%@jGWCh)*fx}v``EPo z2C){rs!nlQ+kE=?>pC$aa{F5#?ssGyIpmjrsh7u2jxnK)ji6*Km;cF;@(Gn%>*;w) zWGz26P3)B;d&oGr+F~WU6VbHJ)y6(CP5UqJfoPr;`r?kyrl-tndb=dvQ|@)0mh6#^ z5O))_IML;keE~#a?GrVcmAN;hIfWa6Ia~I=H6F@+;UjlZ5}Gc!tlWdh6kC)~Y7nEVP-OY^DCOwH>|dY_iVf&+TbwypBy@eecN0M5g^f z?)eWdo=~p@TV2OWJdLfPOvLSu1m{RhD7G~YPP6sEA;RpL2mPUvb+h16krs897K zo2sZ>;xWfxOm;B_gujj<37f``k(z3$GNvouB2FnghSpwAY|OEZ`S@sE^9=0l*20f? z8s8f)*4eg&%XWm1mYIF9Kk#TOfb*`KM)xwI8*Ui$QHC7UmA>z29gXm?Q8S+08W{8X zPv>}!S^e~fvXq~pl`X~3+?l7;aD~R+l@MC@)JpQ$Z7|F0koNfY?F(}{4IQ&koP_+3 z)p!2=jp#&2-t5{%0IReUmM7YP%aNz*W0x?%^$dFuSW}hGJr%)N(Jqv=vXrIKwN8X8 zpf)-Wkr5!q*qqtF1X>U;w}OGc3eDlz*=fp2>2>OQ(%3LYIioZAneHlaV&)A@4gk@QDBmE z_9|1-xR=q2-=T=+$E+W}S}3hS#h%e#AR_#z8gM6`|pg1^o-TklZu}9pL#L4wc%y zzmB7#VvXp0o^iuHM9{eRqc%f4&U9Khm@UF59u(Q0r0=fqx*etIuwQ*FCCm zJ_iqw9NYdnMxCQ(4y|PmTT@ML-sHu&`piHA@L_r~WQ`!+VS&XG+pV;`qgXxfTqP2A zEc%nt@*wLNPzmRDt*+bf1;ZnLO6urH)U$aswytuAz-NELw#-E7ust)|^eC=m{A2nJ zkH!5)W@}3@yu3fXWq!t`YxzF9^4hnPS$8XJWPNLH-}vCxrntv}*XiQ6=FfOXn$)YP znY{&KYi?jE`S69_7%R(AwaSkO6gwqv@5kO)%UUG=Mb${O@<{@elJ+0#SAPBN3!eO( z3*~D%<8y4?QSiX$eTrq{m$=ExWo*OOSXK}lWgGGV13K^tPc-wx4OjU?VCEBA-T}7- zsA=xjH`_7HfzFB0Zon{qV*DU8A`3?}C ziB0xha{^t)detq)EMLQUd>6WijtZt8YFDotj4vfkY~ZJ0-+|b{-aVBNq{m}Cmfx!846 z!lh&HvI?9kU3kB6$nKtnfOhFOoPQ%)u7r-qk$>dn1P}e7$f|Ok)Z&HT8)f_B<-~e} z`4(Iw>htB?qLL7a&_MKf%S&P{mw#qBF2@!+VN{dNwnv)LP?dP$ddOJwO}1TWZK_9R zPwWv5KI4Mmt(J?-@Sq**a}ZCC{+ z|C=JUm~I-EIQln*eCkGh^H6=y2F&xvP*}(`SUhBtmQP_IX3>oe$3f`ZR3hB??Iz9R zQDkK#p^b05wmEbphmU&$|7@=8v0in```pcImrvUQfyCtM&%Y(BSYkqAp4WoTO4|2Xprq+*|D9VXl(c*{xUq6r=vo zQx-R)QS;PR#CGpX^JQcxoB(gjLGLQ7gd)14+v$e$o?DO7!f*k88lql_aWmT>x)TQ; zBm$k9eK(So#IEMiwlWSI7?^OYDv9W;x?lRv<*dE*9<_#@zJAOC)+`vl#$+?zQM1t> zSM4z#B3@YgZX9VgCXf_e-=yiuN;^8n`djE%)K`}Y$E)L2KzR5SUWF((gv{{TL z(%{_B28%(T2_oKdv1sCt8w+C}@w|}SPb6C|_uCMRPQa0FBdUi70rVR{N`IaNw84lT z%J3RU>aGaw8}d!h3Yi-Lz8bGISO`8=e+|IN;vu#q1(`2n0ZO!63 zgGXvBWq?D)*+zxr1N^7_E|J_Bh$6ycA;0VaQ}fO&WyWnH-TR%fA6Tz)Ll3zycxgQ{ zSd1xMLHRBq*y`eR0NuyMteCB-rmw0wgfxNA2z>7JcbXLb4ITSSMIz=mq74fCpUqLt zap&KpQdJ)d7mn;Beq=PvdT9j{$J`DQ-&V`;3<5^$WPc<4QSaY*dI_nN2H`x9PF99- z$0s!qrfHBqNHD~RJNT&+K6HDl1{pM3L6bGI=b#q>>h(b5zm~%Qe51^5$*EgNv;@Vf zwb_+5{i5ug6jY|W%A=x&vfRmvUgO&IYWcAKyZPq!6A$vxH4-fGc(APtSGTI!k=N&G zPoxMLeP3Ls{LS=-st-{yO;XzLn&$=B!Eb1DuZDneS5a1UJ9C!|0??W%W~z?MzlurC zchv#9dOg3?h~`#1VdcSH8N4h9b;JW1dms=*xDbZkYY_L0#2ge~qiK>>*!2(%>h(}} z{h%%FkV+yN+j&e~QU$$sMOa${pp@@H5_$^}cYkTeF`9w*4n9i%y+|f((WqF}KN0dO zUL!^-HKQ6lr&yq!@hL_AgAHO0EGgO@eFEizQ8KxPQC zY>tKkf|m&Q8djpTh*QfXS6ISBTBl_X&THxuAx%W?B||i_KD3S^7^V=%noVIqVtm4> z6Er75OObRRKjA^nN;N4O=w$o5Opwa*RZ|lM&CaK2-Taa^*JQ{i)PHn4aKsosr}?T^ z5hjCDE%+uZLp+*_unuufXUdsy3KV8qgBos2-vqzUn_C@qd=fd5t(1`9#81&<;P;HWSp@pUO=-h8-BWilZYQ7GC{3nyM&9ImBdCXK4wu` zoW}5k0ySY9oUa$;uO8Q-UE4bzMinWCK)A)-AX+%58+tfR#hWS6eZv1NbTl9)8Vvo5k+W9y0 z8*`K92Kao`&2B+V=d)6>A*E>mtd&5~ovrQ$WkbK1+?rx@jSM6CA9C!;XA<=8uoX`Q zs_Aih^}iC4cab<_VR~9r4=4hs~EoR#Xury~p zIRGZToHheidKwYYK6BFIpi_8t^e4y#eMfM%H$_#0vhN3;UY zFO^40rB1iF4LNC5C3)IPY(<9t3ZkIYl{TB%2h-7 z>;1CChJPHfNugufcVk5E#y%+O!Z!2Wy9(YfY8_o*$n9{H=Sc0mI6=cp5q+t*H0tkH zMoe3B^#1ibEs8UowMU7HMEh06hw|oX9sNpv& zk{h>vv$991*WK?%F&LhmU?vEk`cMmx*6~Ope;#aZu*1|j660OnyuC^yhy0n)g>^U0 z9iAiD&^NC#MEhNrlnwHO7ikFiO)~ z_WC~9x$kzHqfxW3cZd4+SFRf_AtDmpeT#n0!Z&*$9!)}OM3LBJ#iAh0SHNKCNMOj3 z-%nLV(iUSc*LJ(6-S{Kl=!>j{LVY#Y0uPg)}i<3@g?q~7e8fNd-Wz)hZ z5+$_ePIxtg#@^o58W{ScxezmX$*m1|*EI+tF6}29T}bw|za3a-&5>%Jhp>_k#As3L z99NLy5n!A1-Z;e$9%y17GdhP#u$mjHO88Caz{5Msr6HEVy~4MDKuSIdx?296<+s@g zU3O}{9x{3cdy(f$zbvPaCozneSkw;u6HTZWlrdqaV~QnpNN?L9<)lWH@(T^-lbqD>^z}6ndeR?@oW{*i zQdFg19)85A)s$fTA*lSuyaa>TtNYB|JA@@US*33mJ{E}>;cTfD(R6%aQOKj(2a|2b zez#uiIG}(lw)!OKiPYnD@nR+)BDhc;Z__FHP)6~fdW`>r_@m>9tbPGuR4^R9`#{^S zytm9i#XbwhE?sKG=;56}(V_B; znjIC4Tjjv^P-b*n4+6z%0 zCiBQJQ1-Ja9`gAo-uMjrx*m`j1~V`wY+!CdQ7KsfFFth(TwAeaRfar0XfnW&6As5- zkimBOf$7m2{y6ogNL(WKwB6Lh`Da1_+Ohe&T_Mk@?RCteT64kkrQ6&0-=+-2pZe$wj3up~slr<%wr`TkYzBB>hD zCX?hb*<1javj$zo=$8NG9(!Lg!=wMOm#F>g@Zu}rDikUs;E{3~LlJ{Dt8zL|)mTLR zev1R|UfxQobw5^0yHmCNeGcp^nNfwo8{JMFK}Dqrs9@5&jok?Hbw6!Tk2M-X7);DO_N5%J zp^QEKiwK2tZ#5P@?|@rf;QK8ioi1gP&FHansna5oENNDFi1l<6OcW~iQ1Uf+b3dgX z6o)6mNCtY!4c)6%Rpm2qyO&n>^r1X@+t2BKA~XxVZSw8gP>+Fq+zA#uU7Nn4!<(1r z;P1Y0RGi5=7#nG+a;N(GCsQ~N$gVhB5|G+ z!vYZDC~**>#1Dh0UqJQ)bR;2jigJR0phz)bQ99@~vXJqJuPag5`-bLrFqw{HK8#`w zXmaOVqP6e=|H*iBo|A^BlU|vw&skB*K5r^ZTEE7NT7i&E1M>2V;Zu+~-o91`zq1$}qpPG@< zw7EEEwn@g~Fp`42D7X$G8OTxD^WJal1hM=f!y-lf5C|((qBDNY{_LQQ(S3q19Svq! zXwDJrQL-&mt5Z>6ZKO15E5rh2O5+=#k+FfCbHk0Pkz75%c*7fHLv2ilCh|o)=`4b- z%n4&bMKD>1;dR{v0(#dL*4Gy2W7<{%=xz!Yjgx??XAnVj`(#TlaMyHtl@DhwygP?o z#Hlz|P7p6SA>(_TK=7(PboBe-!B=?}EC%7F39Y`(T4L~Xerp@%KYfKkn}G#5NZn|| zh;;8h=xnERoyx481y3cS^>E{OmeE1mrOF4uoAk&IpLDu1{puD>@Z~&+`kay#iEGaE z&gmmHZSxWdNiKD#x#N4BaMF)sM?bgMsDK`K_tM!Rjc?~DTz`J(eD zh1fAgi=*S+GQr;^;i(K{2IUm@z@F7B0Z!%G%NXGkWWU3U~;X?hMstZqR4sCs~Y z0!t5e17hLGtYZGTPx@Y2MSm}e-ahHQyt{89OVDWb0Tz7hgc7-Ii2|6hNc`@c-96`3 zzmj2y+Nekf50!jDoF3*!jl0338#e*^FbW=mWT#YU#jb3vnemNn_x9|CiIdY}$2X0( zce(XXYTm%(Amc$p_HLrI?vBrI7~dpTRo~yR_N=IGzhAd=lc>l`UetTKC*gAy`@>?L zKfVz?#>%3aRJOeH>~n#O(-5*Uk{N4l4nutBBE%60)5>s4p;3^?E3i0WGkzEc>7urd zh05Etv1TjZSAthH;4Gz5 z{n9k=JF!}h2bI=Ob3*Ziq#V1$)m&Bd^in55pr48PAvHBoa1{$@ORevD0jn#=Di$+; zMta-=QR#cwbWH1z>X`@;+zhNk-F4Kemgcw zkCT~b@b01A#p#*$*&)FiqtE~Hb7Uhr>=#+aq2pj?$kzavTAlrri^+A#m&W-$<~JxJBfXI(C0m3C^w<_ z19~@V#&qf4$?L?H0 zpwUS_kDJ;7rF{p--Ft~`b96{S0d2X9VXV+!)vId)YRWCmMjM6uRu$^vw` z2%)({q60M#`^(xn7BK&X>vGSqR|()#j(Rr}ZC>zMJp9Od_VCJyy~E#av6(ZmUpMmk zZa~soIrg-7;LKJT{>?^I{BCxb2pj6_`(%s4y1NJ!X+DP0&2Pgc&wXK4w!i!nwCUms zSna@Ide7!TN5b--GK1U)2GT~CTl7Yc&=PT}_!B1G^09sYch6D|LRYHse$eOYBkh}P zPhc&nwW52yP^b5obq}bsgL}9Xh#Fj#u}~rLslFOqW~V8GOGk!y z_%0?N$)7%X)Ikg2`A>;|DnvslBL1pK+TY@QS0in9&UcWqeTdL@NiWZsa%Nx&p1@BN z4MCRP+Bf+oMjEHuP*(g+rGIs_Y>U66imS7H=iEfqem3kpd-MA#o|y)7WuzR&aErc7 z6>W+Kb;Yd3bdQ@y;@m-QlAiuTvR2<#qNb_Nl~u5aHp?0Fd20-G(J_F$sY(NjgQHu zYQl@d9r}Sy#9CZrW_}^mRCMZWEpfD#E#Tsw_`}@a5t+Y>sKFe% z*K|~Tl=PHUOT+(KQqhxhS22)P%u^fLmgf7M5`S;MHgxd6k)Um$`}A&;L@pz*A7iIe z7$gC^15XO($%4_^ii1RegM}>*YB_+%#i8>AnZC*e(TmYG&zy~3T3=AU;{y9vs-8<0 zKR>sJKs>0?0O=2*O`vTnL|T|X3h#o`qOFS}nFq)RV18%D^~?e{O_OdRjuWgDsic!M zWxaofCLUD(Uv*?$aB8$;NdF&;dolf>M&th%Hn;;}Pjng^oiwc3k_|dKE`;Jsc*OeW zV;+i7l~^U8We_W?k`9e4^rg~HXBmxG*%D?5Mo>}mhe||cZOy>xnVxNiZ65KBBs64j zMQog6qS}T_HF1?sH@o15Q?nXVN*gjR@v%}l>KR8E64sxMP&1B4qmykW$~IA47M{NG z@5b@Azob;!#z6k3!%W)7s1;>^nc7?TE}{qJdXD+IoSi?o3nm61LTVgMb6I=-dkDdH ze-ORa`#rz+m`d8p_Z^yb8R3{{h;;pZ4@r@eM$P#d?3*-bH2^;tMvX287cSD1Y6=uk zm5{gtFG&U2#0~pj{^@sxP{WsoNmdn9})v48-~9bGUHmq`2DN&{LB% ztDpuTW;EE04Js`@6 z+82T(1!C})2*RbpWo9kIAIja-eB{1^SaFJQmJb|osEBmxeh(DnJUj5jfII*aI;nP( z-w3huT9mfA&PFXDlUeb9LGOlkgh`GgJ%dTISvG?Qhhfs?QC{b}@c*X>Ak(Q}-~NA^ z{3%XSkUuQ0H>CQ%xh+ET9Tn&r=`LGO<+xP-7q)RJJ*oQtU+vMSCFb?rPyKFc`=ob7 z13_WxJis=UC~K3upN*j^GsJ%*Qw}&X#gLEtZ7g&DVLuXq+LpJ3i4v2LB+s4x`Zq{< zK~2l#u2KK*sMWsrBSZ)t5dfKJ`beqLwCXwKrD^SN!M-nBYqP3Ns7QFdQ(*a-d^jr``lh2Sc7nM;jo!eL7bj^aB25`dyh*Rq_*3r_i%5+i=6&h%15GkO?vb zAj6B_b{Br;TM#9RkVFLC0mCDESF-me3qnN({7iR)H7Q3eUT5U}X)ao{fB2+)M2d+L z?+%4x#Ox1u@+4G|@;3Cn4H%T~31ou3UY7OtVCR146Q#)Kl=WaKF$bcg_k;tXQrW}5 zAF5K>eGQ~c!~YgbtHmLpPM*GLqfp_Qc$%K!F&}TsrJii-LC2LnRcoN{OhO(3 zMm53a^_nG}#V+8-fdV2#?Bnx(>#FfQT574`t-b!IpJ4GNP4Gk~@ZHQ+a*vdb zs5j}px6_#5<1;l@hVb{k(7ElcOb2g?#3&yH(HUz`PJ@a%_YB&{J@i|huY22%9s%-D z1$%?RqhDPcC8=Lw)T@+me_jM)8b7HPNoRnrD(egfM`q`={ENNb#lD(33j#!3c(s$m zsT$iJyc-540$ljF)3r z+2lQiL3w3*NXztHLJPj}Kh8E7aH`ND@!zs-ns*_?zg2%V!VJ!&QJJi%XcR!B-|Iim zHa1vy9@@*O?MI~#9;K<5~pyPhd%7%(9{C4-s8`l!PxGy?e z!V(2H-;`-HM&4KY$u^D7=IHMWOLV$hMzLEgQ3_tuQ+i1bMBUiNWp+#*|3BNmd?SCb zMX0-PR9nUlE$?(a9K0{&A3J!_wcN0=3I8ZJmWHIis~1cp5p|E~0?h`uM@iV<4W<0F zYPPyHO7cDwdgVC6p0q};yCsFrIZJ7KS|izC$|6y}v#f2A4GC)cN;FXNGk83ecD9QI z?On+);UAej@E+&lf>@GX*r&oeA(HWEhbGcVCbpld227P?$BFGv6Wiw#+ZPktPo4kw ziS0ke+6RALvNFB+#Ub0IT%~kg={*_ZpuVcr@Ly?0vCu6P0!!QSrziQ-#Gtlx7X->k*5|xfaT(`7m9*6H9 zd|d(x>}7u0MsyLzo8x)d!Nr%ZN5AMjl7IFO1lDU{hnTKUgw_cug){yBZekHTZJWei`gocHQ90an2<66S;Ea8Zg`F$9M+1E_wGb6iJ zN;sV3+_Rs5qnpriD;jJ|RufIWdSSkFX`-LmpIRN{d$EWCUj0Dw>emYi%1WeVCDOC9 z;+$O49pfWnY&_FX^DzNaJNUSCTwsh=0%t4HvXy|?subd&R)}RD0?tD9$%rgSwOht< zoRQl$ZB4&He zT_v}DkMA#Hx3Bpt`Bivx=Vlmd*C`oq?L5Xq3THRfvYW!$)w(d1QbAhDzl?9aA5_VC z*G8O+cSm(#N85aJJ*KCUpV#-zC-J;i9!k(7+A%&0?VZOD=kMW z5J$a>^y((RbDRDPSZl7Y`88Q}hkaW{q_$N=hycJ>1^+$RWv8szS45jLyE(4sBF4z| zFB>|+HuKXS4#b(Awl+v-cIqPmJhRgW1ozC&11Rukb}k@6LGv>K3mBT45306T8vFdj z#K@(&X(^(b<{~*DS_dMYZo$QPG}H~afJRE)fE7#>)eYFeMp(_yk}~@0c4Rw|S@RKA z_qZRmbxRJ0BD(DJkjw$Pp96H31L8Ob=xGknd=AiJ4$xWF>2(g!_c=g6dY}d&UcM0G z#RS9}Znv(rcIz6(nI!k@B=&y?{m$>5BM;A%*De`{4m&_iJu0; zV4H^=JPfC~W+I0VLp~P|XZ$eOo{6);Fj(Z_%N^>qzHgozV8Qi!3j|;GV6grpb${B^ zc>9DAy-_@n_cagXMOgfuWH@jqY0GR_aJ%8l9VQWmCnUmf7L?#Qr@HZi>pc|gd$HDa z)hW{dy^_6>#`zBLrl#(PV#`&}2Z#<=cSV^S#7{4moLanY>_5<7$qFYR$1`0DgRNTC z(5+QNXGxQ^WXU0B?qE#QaF<`=^6)m;CL|+V1t^n7WPHggauzJp2n$|DHKfaLutBs< z2=jc2xp8z)KGCH`HcTEDA4QoS*#bnj4;Zsk5F(yf<&?e0+v|mSkg*seJ#VAR+%~E# zARQ-`ib*rFO0ms&Cw26sXmz)ZR@e4zMVCPxYEK%Gg}~zML2GEJu}Ewx2gKY27=N=*E>i%iyhG(K8U^XTF>rft3_xR| zI+fi1sWc=yCgTo@l*z~%Q8N-1>ef-AkP+;*39}-m7sq4m#6Tdo2?WB9^8gBZR0nWy zV<`B9__}T!L(Zc7IFn;MS*HghfRUN#y24%A6+W%?>XIH4q86N9br{?TkXYwNz!>qt zhLzKPyltQH0RRJUzbknA)$)2Gs7Jm9LDRi^aXU}BiE=iMNH=Z|XGu1(CvRWiHH2GV zL&)U$pD^XI!Y;lSx1~(Tj zySeDHV{+Bt@~egxstCqjC(yh$FX`rzmP&Qf1fZiK8bJ^qgq=7N1Fcx>K3nYaaaCxZ z5qRtwf#Z<|oBTxf;g#&TEwr64*i+-*u2fFw*H=kVq?a;I|F>-cUay|Gb(Wj_{6Qb# z3ai!_ZFNr5pKOvCkj}($oXWKSNR!L>x4r7y`Z@C@C>4tEZ0<65>GJ*{qM^}9ODE4S#wfAUZD zUsV}f*`sV_4h@jUgPs@n>E-KX8*X{V4W2_|7Hz0eiA6~)){%bx8uXF(3kZ#g%EUGiNz$;`^tfU+eLZ1y=* znkt;3Aal<69s4q|5|dNRR};@=fg&*!OKy*ZCS=?m5p86+Ju;&K;PyxX;=Jt<8xQBU zNDC6RZH-(TFKrF77Zz;?xxeR?(a%~^h9pb|bqQ0!_SleEG zardRH5+#Y6t$`NXULo};$;pp!wA9&^Dr?(k*7oB-V!&{dpWcWW9)7!g{N<7#_YYBd z`G~2jLxQ9I;mnPP=VMlgh1hloIcG=&@1f(y1+_Fz4o*%| zk5k9jqyrMQMZHa6LBH>{Y$!^vOkiYempg_snjJe>mYzGZ9m9$4n$lOK z=Uc-?g6YXHVGO#@jS&Meaw<$=s`unr#g_5=C@?2sedB9HUvpLk6lyKC+vhnVve~s*@uTfIv%tvi>j}{kY!&8 zSstEZ^7Wv+Bw1O6lqUH)4|^hihmh&XyopT3mU0nT$kHBmvb5v7ZYlSA zsLH)=ksEAA^-!Hr9nO&#tAi3jwYWlBi|grHvVcAx8p6mDX%DG#Lkljrq{a162G8t= zsPI)s5I5Gjo&Hd9|M^oaD}A4xFc$SbZw9^Z*;MiK5Lb0mlrC?ymW|(D=h{**y&EW) zL!C9$FrkW`2h}K_Q;TYq7h8BxZmXMIpM`6q*2lqu|H8yf_HJ>FD;t!fnGBEvWch-3 zUS?;w_O-;YiR(R-FNU|cwddnK?zV)vKN_zydZX*xbhvA0&RNngQS*xH2BRHOIF%qi zrI+h^SzOmT0f2Ioth8>D2q7jcl3mTWmj|sOf1SUl+vVr{{Y7CA zt!}#$5T2|R@<~Ni9<6d#OYcLVhR&T)(tC^Ra)!&P;q@Cf z2IMgFgdAo(1$~{PiRFgj&o3xgt4aj=F@i$p! z>)1FWJjR7%Ju~>2{#<2XA0>^pCotOkI-Z=U-r685p5_g_vBQwum@glThS_HNINypJ z_%vAOXkruuep%QGX|PDyAU?q!b=7I7clB=Y$DAH;tBWQaO$i8h5pU<03(wm4{N5he z+CPB?hPpj^wzrc@Hb(;*oMur%ZPBhZfXf+kRBvx9w2h`~V!VSzm)!Q&VRh5^nK6WJ z8e=nu%S~cVI<0O_m7i%dke%@fzQoO1%T0=iYXc>yN^dF9kIJ$ zmZBBu-A`{RX6^EZ2-~r^$U9DFyudGn{VX8`#E;tI>F;vjB9ya}XaKw+79`JOFfkLje6MWDtinkMDXf2XGgFAb| zY=ASoH#r9Pf@W90{w{bv^?(JOL5s6kAi80Z?DfV*(TKEryS1eOl_~!KUJehHyp#4s zm1q6)U-)(LKa>rd$S|o01Px*2bw`4G_Jap(Q?x)p(><3FU&uv+XptUGh|nDfX_g~Y zC*$#8UmBAMgyLbKgTbj0!y|KN2hKKoZEW)>o*4By81U*W*wmMt6_;D)ail6vEP$0Ynr?e=Wv=@3Wq=!kg^=Z2mQg|kopVS;>o9u3!`M`krMWr4aPgHnG zi}doA{-|eV+S;sLzVd{(n)pUD1V7-Wc{?4QQJy{wt$>6rPwyw$T()Q{PSc5DRf5=G z&jAdFMMgClFm6Txj&Bh1WY7z9Dm4wW6RMW^Z(!G+yPyo7;{!3bspo_~wnz&ch7+CA zbX!Om^*F&neC`*b2~v{FCHeU6hqH*ucqFkEEPGI{Jt)r}RMbK#gTVHRW<$iFvz<%FP?a!=ADS;mjY8#2<4*5wt52|>l^S=#AByyC*_1Ir<{=Nz^Q(B$DwH1DJ%Brwsw?5%L;ch z5y7uTp8y#sTqy&EY(T?{5)Vd|!b=k4nO(Nmzo8|g(Bn1by|L;EQ_=-~{*8veRS+vh zp6a`CSs>(Lasr-QiG|UzO|_^m?FMR#O=bRcJ#q-guQNrQ%5I{=r;)T2ZkrC9E;=^P zy2+f9Dtz@?asgpF`ja)xSaZX+*&WUR0jj=x!hzhYN z9&?^`l54v{a_#QWLUPi0sGKzZC+c`3Moo|ub<)E-47;Ad?uspCdYb_p!fx=g*9%^j zhtUcg5KN^{czu0BwSSuvBDg{1f+qxZ^s@`fTN=fStLUu9Ljedl`P9Y9TCGIfHV{39vtI+aJZ8VU$(xBTX(XX?>W6e=V~^QAx4u zu1=sM>kgU@~OMOtPhg?_W&cBdrkxC3RW)w-%O!ygsdAt3y|b9s`)7>qjMr`II>6j6-VF7<X)*jx>Z(GpQ%72tpZ{KtSf=GqRIW)N8!?z zTaGr%H}C5*eveZOA7(wV+53KR0s?ap{$U}9o*QKGjUzyj3k}V6w)qbU@5!PaIRK+6~{bCtx zw=ILMpbiwvZY`D#AZn@XHd0v$Vj}>|gdf zY9Ud(aV#^mD(=ryq>se%sHfMD-0}u8D%z#12*C1&iaFY)tO_Oa29r7((l)ry_Bwe3 zZLGy1(V|$7h8NkMD)FH0K^wb;_S6{&k!;+}S@(3{Ey<#-ZnQ+yj;bN)Axn`~HPN*On-k^dgb(C%6{~x?!IMwgd@K!ZXal`v>!Ze2EF<}(mu3Rf_ ztpAM|m)IVuR~j1BD{U_9O`Y`qW}jRN!R6!V$5uQU)D`Xf$|m&LryJ|FOuyDLW$Q-= z3biHN#VLIy>*FnrJ2uqauP!?@exQc8x>tA}zgQRxv{Mx0TC!qXt12cSDVjHz;sjN8 z-h&)2Ym*AIzG_qOp>_e8KWqki3w$_;91MyUW2H5tjMw7Yni2eEUi_v}ggB>RV(!l1KHwrj>JEZ7u=M z!P-CFx=XB|cT}XQz2RH7L21sSqI4`?&kscZH9)B1#my0xEMEgn>$=Mh=_C*uk1zqm zzadEqhT}j#Et*O>J?0XhQq7aYaOwkOPw7p3_aX%QlZ3+P~v}f2sa_ zerVADBxdy4K79SoBYi&;)i*2Wqd+ZhIEBiyx~x5`QC-z!d<;h3Aoh8mirDhj0YXcd z`bw0YA?K;`ir(N)29XB7ff^532zmhv9jO*g!;<9NG_0PavjHc_nQ3r+>1PE`$)B!B zdO!?%UQ&plMlWgkb@#WF?45vYrS!BVILRa&9)C;slLVEGy@&3nl&sc$)V#48juv#h zY8{cKnH`e@Y3Avg)q@!FK`hwN*5l|2kGiydccRTc-TY*8nqSDjWW$m60knNY8y5Mc zL^XONS_$p9(CGW)mq%4pcD=hU>8^0%#rff}T1$fKk_hGVgQlEt^JI;=IEDFu5N&C$ zIHZDF6-H8h8YfV_?IFl#?yHjCn}OT&0pSoU4)J?>Y@)H?IBwO+vBL7S-^@8R_$CQX zQy|&1Z-QfT`AI#2zwZ;G${g>LGO1{zhlrTSlAcl57p^(TNQYJ&X45O*NNAsgLa9a9 z=bzX$k`IgH(bKir60g@--&&A|q9=BYsX8F4vvxcXScp0-w5OX@E~=AX7Arnex#kfl zH9<#D(0&h-c5nria=s3(we;-uFUrrOaQWN(`_g?45Hzm=rcpC^ zg%z|p7E&156irt3#30~L49o~SkVoi&^a$O^#i1r71cwDua99M})FbdxX3C(=Olh$P zQs8>f2Ckd;VuHBG$tMR>h%D$`^VlZ}kn|?RKq1rpP{>H}qy;ZeriEih%5Y5EOz6rx z26B1FS?G5|XO!cheClJJm0p;Xk{9*sAM4EYgL;(Q3_J+3%??m&(2Kf0G3>|&Rpzajyq}H@moB(VhY4|b4`wKJl`Yt_kr{> z3Vouv)3zv19_XGi2kkRv$l&|X0DMDR%O5K-c{Q^Y128U*-v}M2M;iCT_RTuAvP&G- z^VqVpX$50o1!165jMO^5?9Q@;+>P4zdr|vg^9rFc_l zHXhqKS;39U4}7?Zvh0}Rs(h?Est$YP#QDcrw^y1cJ}fYaS4udeTdTt6Pze1Yfi>f= zlCaIBxHYN%fmYS>HNmS@+UD`1D5~H{9~gcKuDpUL(nes86B#K-AcQRlKckhHHOOPmC#z2oUItndR%i*!-`OPFxiVL$wMG+GdcBPJWVoiKX*b_Gx zT6#x@aHaeFvPTqV3Om69{WJl0HtRrz{W?(M;w*Atq6=IPd%Ap|x=E6JF^eXw_*8Vx zi>xlyVDy&0E`SDX+Y||creRy669A5mf+Ub#Ss*(L`c#Y8wc$bgc#P$1S{k>d)uT<@ zlCd>y>ru_!xG_D&j2oY?#on}WGuc`Ib^hn&Hu*s3jNa$h3$~GeBwFhp+bTR}r>l^` z5!{ZLJo#x`V5=QC4qN%$V8S-m?$V+13XC3^SA03m(JeldL{H1-U{cR6IaKyp$4SoA zwoXJbi$mxcMMf~;`I5bnMKUq(wBuY)*McaKb^hroSpGgKVtaTY{l9>+t|Ktu9I|6L z6vPHUfCUJ_SzVGp!5tea-BF#8Fc?vbeykK0S#77;lk3F96Orh#YX^xQ!gi48k!%Ht zAJA5y+Cvin*NuL1`=v)93w#^~zUcs1;0*(<58{#~->Wn+88slNy^3i%WZ{9VD;SE7 zmz@e?W$+iHDP%(pAOW}IP;1y09BK{Qc0;XUTWz29NWa0WI1x7T@j)@$CbO)l}4B6>B1LU)h=nh{${oMeLsg6A@J^lu1g*ZoLJRO73>R9!v7ji_pkl({#f8i3-XO~~3<4R| zj~GTX>7=fNgp4;3Bq_R${MdUe8>t`GHF2~q?4et9&~1(6Rr5-EkI9^Y`SBD#+1ov2vnh*hCr3dX$W-5OhVwwFC-OaFfBkydR=wC9&lobXa&e4T^BSdL8tUL{LLCr9v2hN*CeC4mES-gs91258 zg@`0YPah-a7?KO_(+eRM()40LQgtpY6JG0#ON$nyT4uxur(OzTlmj79iK6`2Y=ckA z5aq`P8>RA2G{X~c*M!ghJkqw&jm3C3U%pxeh})-Y`NF>T*;&Tjt-<8*@mhjeaRyl# z;)EP$$@Nf%_tnqpGnk?vDJ%1!HBEZdm=YJ1mn18Ti2k0G`6YU+e(_G^y#E!1S4H-( zG~N@H3`~8>l+&8()s(yHDep;JbZnQej_q2F9l9K_QP3hl2goMq+w(g(Xf6u8rIH$)|8fN zO3>9zq#Abl)|5SMA15u=nuIS{XpF$^j+vSTVU>15jjhY(n&e7J5~$g<&I1(9;klfx zo9n@mwY){Pz~?}qs%t%ld9gJdN2$>a*LxPw71KSvlN4(_YZJuDt8O_=k|tAMpX`75YOFC{DSzJo%*kmt?b*kOu=Dg?s&q;c}Vcb3G-mr zMF(dAZyr(11HZ~n=W7XCvS#>A0mGT_+1jLcMh*U8k~ z5>n~;QeJqX{iaCzgp6liC*v7Re@JWf0YHBw-I>=-cV?f1@myn`BG;IGJ^+cvJXNAG z`koC($lr=Zu1efy5!&U${VF{b>%flDSRCWnLtDTbYu@w=ecd!JTPf0CnNJi`>OoVD_EgzJ(+d~Rb((So!5!}{9iG=U!9Fo zUB+WYXhrz12*SPXPDgM3W4M^VM2m zq7(P**KyCl1^wTu1q}^w_L~4_AhqAr)GR2+VK*i27B{$-wBk^i2-g-bSamoYNPi3D z$F+Q3AI0<9jp2FN#>35YpgJW0;knn67|`4?dWLJRXPD`@faJZtl)QH}y(3k^(eCvy z+z#Od(EHs$yh`!g48cGNyfoH}6~18|=7_$kM+2XffK)y0fGbW=Y514e8ajUeg{+yi zvIOQI^P7i{Kspa9I@mLctLyTaw2s9P)ZsW*7-7xHRO#{klgKUy+ViNIYSsCJ zet@{om;D1`(F;3SS___m^hft~g56}M^?CUG*egYTY{d9>B>N}`fw3luCIj0-I9*V;XMmL>fJQ`M zUY5>p%hDldCq$WG%SMXP*tux|cK`;=RN7kbJ`e8Fp8Sn4X8+i_DWx?M%|F1-B7ILb z1c(SyCw!p4zmQ++(O$MoY=wV(4c{t_??UST$gQG>yH)I7T8{O{Yq>JKQXI8ey%>D* zU`U7xwuikKRSeU}<3LfMz)Xv(X5@%`f#39a!cC9)K!Obk4{b=`iB_7sCu#11CY*d6 zvMyia3FT`d*!co3S~Cf+ilnM?3wbQJ(6dmDxgXaDfopOxdA)?^K`&ZO1T?%w3XH;} z)N8{uQYtWultMD0%Z%g6nQ>;JKYpne7zb-1Spi(H1?KTuNM;}xZNY?)EgU-v%fo9e zj|eEztXz8q=$Npfu3EYP3(Ug8&|G1!!UEICupVazd|nQO5nd&V7nR22Oa%D@-|wCG zy%HM|A14hTu#kBPo0I<(E6mJ(;(U>h+>(7F`=m6<`WfA!Vj=RKTsEd3fVVt4Oo|106#xdhtV#3V7Ph zSzVW+I1oMij|dPx9$TenJ+tlfak_VU_az4*XjTL|L|gmUZwQDYpb*^C`=WrV_AE@Z$q8QRA61itm;dJd&A z?e5={BTr}3E67UXBpls98b=4Jw{l5@wu$dDoH!#3-2^GVN*p5}f_p;22!Egt!d57u zI3W8$XvO1U7&Wi{N?H(r{-;Zcy9jX}`~c?9(XM#RL5!OqhO=il^3PzD0%jivT@Z{{ zp%{uuIU3ByN9S9ttSqdMn-HLI9z?P0W11p99NcDPB2{^dgSmJ*=5PL@ZjxY{@Yo+M zkX`SxD8zvrlv;zLWVw>U5+NdC2c-w1$P-eg zx!*FT)-jqo8uL1=NP6&mMNM0Z9n*^=E{^GsJlF)Tv9a~f2h*9^69lv+j<|FWxs2YZ{u zes(D%Zs@$Lomi@c9xO{w5DPApb_?V-7_CgL*%mVZsDF-bL$WK9hQf8sYAx1qAbX!& zQ+$akHo55AB&WL>OLoqi(WEE78E)9@H)6tjfOOxhuA$s39&Fy>BhjQ+f%>#dW#VdY zmRh@cIKhkUGP^pKv=Z&w*}i&Rf1ss-=ULtbI79WUVhE+ym9lo^R@v3RM1fhZ<|Ejb z=nz%f0Ajr}v0Wt=QKxFPQ9y$O5q6Sv{~fj>!sslbVULBsvIGHxaGS2aT7<||{X~?9 zmS<5}JG8u-lg#hpBMj zXT{TH+aNSpw~pU<}e>cMgc2(vQjVx8Saxm+@;a?#@C!E+O+ zv9wUCPIbg;3FkOWE3z0;0^F}wTI zzO*aJhEL0f)7OXmHv4+-?Qc$>?570k0ZOd^`Eh_Aa`ta-Lc_}36juI4f%ZkiOkw^GND9cd*v9`;ADTh znLq!%y0xK+{2=rG11a8Y204)3^*KiwOer7>I&<=t!o%+!SRey{0sY(C9}&>lO?V>j zO3;n~=wI@nbslIv_qG(S{+V1fk@7Vv0?vJFaF^J4;`^lYgj>5}M8t{S*Q2xh^?AqFdQJC#MS3&Le1oa$j;9?jL2hlZ83aic*`0ZLE z9M=LCeJ^j(fNRn{injTVI=%I=xSl2`H-84=xX}Ez>@f1+cpdI=8Ilfn^m^TK(d&-i z`f+lwG$R85@)%@;5si;6Ts+)9oQTkCR75tI74D3$XN$R}L5x*`1P2WvIPo6VX7mq? z!vJpL6b9iIgQt(*_d1PMIt|dV`t#7+!`RPJMLKBfC1t{~xWTnJu)N^pMLvQ_oMCx! z)M3O|k*-JRXQwsraE92lz9v(9!f5nyp5~mZIv$SlQvyXqi_a&=G7s%VU!$mh~wuEVxYFb-WB&?SocpBW*PTOhIQ>czB{L}bB--& z_;HGCKaNf)&F#xQVHr)f!#I0M*a;m$fg4nbdK>=5$Gv8co;#n z?X~r5Vqj(_T}-!lm1(Z>BP-r)GL*j(_g9BM90s=nwYuG^)!qKW&J`%^w*10w);G^x z;WJU1#wnfL%mukLUcx9SLL0z73bUXX3T%T!HGSTt&ws!I7DgH0ld0}fb3EnD)M|ig zp48g&q)W1g7w%CoftQKpqWjDpFiNdt&CA8@PAV3eGS0?mf1@<+q-iaSX!Wv)<7JHs zMDa3UrOPz3gOv6K%hbL0? zI2FTY{&dwjl1cfJBTP5G<=UO|*KE>#O<5g=JgVS>~DjWnQ^}J%&dHn_NUE z9Y=Z6na#a7ltxBZ%bU!}X7hEq)o|ZE0Jb36(*CS2d1kC2k>_Dj9zHJ7;|N9hbc~3y zhFCQ_2je1P$c;{b6RqNgIo16@xdeRC6#&Z3+ib#U3U*9y8S;VXSfyEtm|~ErLz%J? zEPzQIMtOrP2|ga%%qhdpz6v{j3!UXDPMjXDn{Cqnukw^h#`kBe+juj1*$lq9$V-U> z^X<=CcH8L{73>bnu016?G^Ahni|G1J@mz?&Vs}`7IYlREWXVfNU$oikxPC@{{&-yD z=*5he(I)QO-P673Y~4iX^5lYc3uzNZMn_xxd6=*0C4OR2uPw=rJnkO(D9v}zyjo}O zpKB_lG#$#4f-Ko%WvYm^@|f(;Do~w}FGjJH(!Whqn#nT8jdX-(^3p$VCWMkDvaYXhRirRbxH&IPD zmk_nq5+cyT4E};C3XXoU=OfLdz0V>;X&3m_s2vRb4C6o%wp)2vAAP&_()vrz0W%Ep z(#cVmsx%zS?XuJy%a7#yR*gB9A*XB|$t+keu z`64V)5j}e)R%@^1kZmVrugzNQi_z2~I@k3tnp6A~BFzY(lmRhU|5)lae9Ay1#m zlQg7sZ(f+(%?pw;%QJ}z)NvT7Q`eJ*GK+e3u;kHm0MN$a7!-zqsTXaFgM3{r8z{>6 z+srz+#_t<@@!;M;pl?xx{mzG8ntErT{l(tikaxR>{2TtC5F$6W)9)|O$>z5Yfr0k> zFv&5Me@suvyd|%|cta&Nf36}f2BQ(AJKK9LZ{0jy8JpP3TCy_vvZQ%Af8-J75p-x7MbGxEg6t~J{Ix*pD z_BU_HIY_J@%cJKb1%-KiBkf9BTAk*q1>Bzj&odu zAkdnfo&+wShKudlTb+2Sy-o=zW_46U1q;xw&gj_u$rhLwM>HfbT9c`Z3r$6B_OzZw z!CfD@Q1vfo8inyusimy+*&E`DfIN(@y!$*8tvhZ-e|Ex6dlUIWk{;^;fRSkc?!6-kBpc|7KR#9)>o zKSep&VR2XVl0}6q(w9+4pWYJczEOFq2$bpPTdI&odUy+@Pm@56RPC?W#Z-cmN=LnE z{_TwRV?sdF*ycFaHtaF$!~F0)#goeV1)9l=pE*A{| zN|joT+-N$!3UF@uEeKq)7Ozp8V^O!taxt_LHG1QSRkK~@CzF1?nuT5|X~=JxjrLb& zr0@Yne9ox=Zn^N`EWydX8zcke2{9mf)X)^t|jYgph zw8n}f22x!!Z*2KjN#R%1-iYMw{o7POomctYsdc*bnTEVTJ(Y{EcO>-WJnfXLL-b18 zK_k&Vy)E30@LB?2_yZ}~p^|JJ%hY8>J*&IC z;xZ5KyEW#&_PaGVV&AQi8g?{f-mWcMU>2((rZQ z`9~pO0v~(Hq-bilrIpUkCyRnH9p7U;Dja0+);X z*Eg1orBxBRp?!NxYsMwny^zSJBkNYs45uFW4;i0W~(d^NTXN;p=jV`LpE&6sF~*eVHp zlmyd)G*19`PMd#dRWRB6XVUiL(x0nwv0e$-m09YTp27kiM%3MA}6ILb*~>`{Q}YXQA- zab2SWhs6fQOS+WdlUH(53nxoL@uB6+!15dYc7oHw@`&@iVf2fSG7c%O)z-&8QY>v{ zlv~>d=$*=BrT5tFjk|@Rg5Tb_soz+)yKikg?PTlSeS7PU+RYjqjM{0w!1fJOfyzuq zyfr|)RiNX_#rg5>1(TzOsH`xxHgeG#xhxRiG_|n|B!>xAW)878!`x}{&${JfYnMnq zC$}W7D?Qn+GF!v+!^&2T+ey=H8wrlK7f#e!ptCx-QO97SZ(zyDdYi2K=4h`kqVoiv zA~@GA$o{f^MNCAWq;&mH*AMVR3n2s4WMn*b<5qp?Z@AU;UFN=W;s#gzuGzKX#qI0k ztoV$VR~Uw}V-3p^$Art~m4Pq(L9ks=UzBt0DrbqxR*rOr;s?2+k8ZZ?DmPqYzwvg) z8Fr(wXYkw_Ki#pGjcE3#Px=&5`QUSz>It3?r{me2ViGM;Rs<6!j}X1fx;GF*pc&K? z*1pBK8$(jqws^P1lz~9tyAn;U!!^|WN`4E(AgDh0;w~_4Y z2{kVq&ptd47DOv&qC53I-?$cGAD#ybq91leFC>(M0!d$iTYc2mmuX&HX%bB%2bJnu zvq4qRrdvgf5eDY!7z734Im3EqZ9pE7XAMUK62zP|EH_|S+c1PO=x4W>(<iz-N0{~U z)1g|dB+_X7QI&Bqs(>23k17D}5^8WKHyQF;w#u%;xI)L0;}+xI(p+nCKw8_4b<-+e9*i2>Wa@hzjeJGK30;yfTCg z$K(RMr3{u~{)jZkG!y%4GtV_nKXN$yLIV8{KGw?mv9AHG6nNV0oNIU5JQ9G<{v+fo z{s<}U%O;^&Xm`_m(eXuqgKv=yDgE`YB-_}40b3FwyJyeoNsVLAJQ|H=Mi&C7lg;xa zyGyOu#4oGYWd6s6Ktn;`Czj;6HW?Y%j=VTbMnfI$1YQzp zq^=#<*mMFv@{pHH1?n*WIAgy|MrwrKiCnY0+$fIzARL!+Cvo&bK9+JTK6=0=rOfu?xXF@)1rm zY^SMedmedL<9XNc;cI>{^#JyEeT~X6E7$8V+cZcBa5-hko1b26L zcXxLuxVr^8xVyW%JIqPmZ!YGox%j`TshX?3YS-@F-A_N=tEsc;g*!;3iSn>fqa)#i zFAGR%MVWEiL)j+7UzQY63iwt@?wm0lL%BcYk8K6Q(1omAFcdXh>Y2YGp1ug20OgIs zlye@3;mWB!Y0J{jFdL-?na+2W+$$Xc>Gf4)bn3Y^j4hBy?fEQZCZjS-br(GRB!<$&UhD2eNieyKym%oE=aqH12N)uwZp5-E!B%3$ zUYeLXrf{0LcIenbrDG;>WlG6nbHGwDiU6~??WW?F0Omy;63(K(WV?Za85%Z?D# z;z~IUpSBd&6BJ2(9nch}Nz@VI5lU!dsOS4^QbCEkzo(P~4{oU=kv+dpJDx0P-F=J% z%rxB8VAxfc62^2d%JnSf(SF78hBlaN54TMC8e4wP1UG1g+ zz>k1y@%ol(DS1Zxd6EG3zE4+dzuqL`o2KM*6x>t>wyse-P3!Cz!zN!Uin4($P~oPq zC7dKrkn0sBAGEz&Ru(@rmQFqJ@v|oXWO_6QehMqX27+r4e}M{WNPgNc7YZZ|4SZk@ zEVW&+W6k_Xy?aTR^i|!a4I0toY%`{dwyQs1FB=Dx+89TYY8|d5)@kWew?(|n z*9x(2+5_myvLaDwE7ZRx7Ju(FQKvOin2V}2XFN-8!+I{PV{F&4Bgr0$$Dl^*1Z z;8T3?q`-A(p0T>?oUyt#?vpf|p=$BTSH1Qz-&$ceM@7=tlvBh%ndSHhs_{`>Sa%Ms zoxjB*??6UUOxYr}^1c7Z0G%cP0V$h#^yj%WIu|CS&VpQX0HJeKhsO)wPKU$N3w-;D zh#Yt8R5{Yz1J*<)-ds1KNoTI=nncp9M8-Toyv&V5rh)zrvU6vl(#eA1w?;*NAa*C^ zQItmYM#UpZbf_&ej^`L;!a#s@T){bFc76+l88p8PU*t{V;(F0-36{Hap3m&yrvuseZSdX>$lkyk&y-tgT-G(Xep3G(gyj< z&%`YX)Gg2E0s#T$=B!N!D#P55LqpPzlIUOB5s*PFH z(F!`**4TF?>miklWih9@G&~ifMIqQ#VBeeem;zacPvSW^Mq%dtH)Fw`w>Ez`8xN_ zf$DmFS&^A0kL|eGeD*Fps*EkiEU$z6Vb*r*aN&S`KVEyb^qsk{<{cCgrh2}im^UI0 z#4PNm44=Qkmz&_>kuJoLM+=x-G##wB5AhrT#M0NwDX z{)*-WX^Lt(N`o9p17g6{S0b_2QJvmo#G{!bQ$mS*5MtElCtj9 zsan@#8U2kot@ezK5l!ZP>8G^#c{!hYon)_l8nt zW3}F=c^og^Vf~pDBDdq%5u9(Ahv}3EnOKZUhS(G_0d6p_*QIA@0;QN8#31_#Dm$v> zAOIbavUB$=Dv%Guf5$-?A;LHO^r2Se7jTl{(*ZnMf|RY=%K4B990WIyaJcxlhM$>f zRDY*wxa7b?&+QR`2r~FJT}C1Jup^Xv;YCVMfDoJkQl>!qOGK#D6c576nL4Tkon>)2 zHG8sDTTl)A_(HShNq*8~Brur-pB5OlkbDBo& zL}mPR#aA!r$t-9b*G%*pZr|U$nTzP&UoH#ha>A!dNroALsRaG1iMIDt4q3vnVqm(? zs9iFx`1x#f`_2cpWzA9ymvJX%rxdyx5a3+%o*K4H}KRq)IZ`z#x1k1v46BgVl|wrF<@3e%6p;h zeR#SX#D)-VIvg_f?@X=uahW~_#J~ZZd9zy=I4TNA;yDyswIaP$OwGZH^@giE%N-S^ zQg9Mab+y~5L4&^hiWhE}r1qxs(R0P@GvT`~U(?3$ltzn{5j4h7Gsdx^i#S|`#9=%C zEJxa{>}JQx9yXTJu@13q=nos3dv*hDoeh)7S@a}C-6(8vHmM2FAx~1R z5_!sRO_lfMtmJ0}oGy7dVJB)(v*)?h!^3b)@o&*mX&hALA9)oc5l+$^L6lx*JB2LF z7}FGAbh0iFdw=WO%i>N9N~_FS^>A?+8=vyC;K~2Ibzw_FuMx$A-P={uKr-SZ4q*>n z{s8+8GqRtiR<8wd99)f*D~W&vTKJK(U|#e7mAQwfwScJPtLsW*ik3|V18Q)iPvH0? z?Rwq0{`88e!X=F&>@Q-D#&PwBQxg>4u;0)i&zSqphr9s5Inolosdx-2yopPO+ zM@|We1yojaRw&?i^B&?~&3|cl{cH}HC3gyt`L!T87t`5+gbDRCymO2YbR!Rti3-UY zmzaqsj{$yI0=_b87gTEgD;noJDn(v(A3sb{LlJUVa3`$9E-_)HScFU<2~QE7`^*oM zppa~2LR?Az36x9d=4@+Be7G-pT_oUK&QXOW#fyJjqOsi6A`>Sbr-LYKl~!z0^SVrem{KXt zEEXYm#cj3FF4_Gg@xHJXG~zQ8`eI0eOdNYcW4jR>LgW`v<>R_NC{5YcuupdXCqITv zbrrB_pJw4O>U6--UX{>1EAl~)tiI1&T=N8VPfeV~s&3EgOAutT|5a0Ijz1x%J-fcp z1PMADliW@~q5^*4slGM+n&q(V482sBqlkZDx)~juVG-;$pFyl9nN<>BvqL;33AN3! zBV%6Is{CRtWBgPk^1%6}t}#-z_g7nbF}P}V52Lyv$HucpAsEAQEGVq-6rUlt6o*{X zY>dP`5zWc@moUoNV9B_yN|y$nzK~VsvF;2;zyMagl@EuXabqaVaGj(kVpG&kZ_Ond z#z>^I8koT}qlIq%7Jb$RyvzMF*Z?swkJj}ZRsl$W>tpshA@M{VHnX*2vrLw(u{*qw zctV_SLS=-qb??WLoJg0p%`UDVqpDfr&m`!B>#MB7U&?hh_}*O}7w4PXw-;Bve6D9> zHs9a+PHuQDA94sbF1uSbwS2mlT?hd8w$9G4we9bn?HWARIiGbmJ?n#iU_`%8<_zBN z8gxJV8brlIWJsW&54^W{{W^cxHP_s{&q-aceALstb-h066b<75!S-Q4|kh zv0q7c-hoz`)|_6sR|z)TShiOgn9#AFR;^EW=*SJ`IEedjV3wH`2td8em8MrVVQUb=ZQ3CnHc?eH4tZ+_{Z~|pY94kDwFdsCM%qoLGsz9-$$0N*I-oc$m|sqRoPXK7U6xRnqM z^t4XiyroP2=Os-yKtz1A2jkC}$gwMe4(_nXvt^ez^Z!S7y%~0O<*ZW(tM-?08WaRF zkg)*+y&xj~ok!B5U@tzaq*Fe8VU2=SW0?Z)sgPtgsLC=CyUHeUihH!WR(^*4N|>Qu zo@?VD^xkYbpLX86{tRT;e_!$-_#JLx#hb;UR3Xl8oyJ$l(jKZx~oYe2tzUnh@c^do5gg0&FK~X4Y0CfH|BJ$(?VB<|AkwFR_ox3Y z(pJ0H{{KsNO4eH*#?K$Fa#UBPn+>X3i1{4{l)vP!@>CP3vgbT9OzhfZF1onzV$!?% zT@i8Ez;_<=K5gk)Wi=PTvm<(sr_-;u1Q86jtXDs-n;%^~o*B;xHg|bEb23lN-PU@X z0JNIhjvtjikj|ETo?2WsxH5{foM>^9Sg!L6(_FH(4fi@*ImS8%EXc0TG|mQ{_*&{H zIuU)ni+>m8NShx^XyMAH(9iE7gSz)7!9d`p(k*_Swd@+JQsLf)zq(2&)3Ji;tZ!$l zV*6Ll4$K7yJ)U-2)@)SS@zB7KN2?b});VCgCssr5OXg?Yq2%r}!e*>VbtdBSsd+7? z(Q>Mf!a0$7L5MDb5CL9@y)BSGF(3J$b~i)`5bV|-m41!I5z`!sU2h`-a497WqLqv| zMQ23SrW)!G#Hh@6)Er2YSnex06%r0`DHSZD_hP=~<^1LmwU<;K$tJ-=z|14pOd|nW zt!fnQsGB~O#HrAC&x!1A;$k%x_pg?Z#r>`2jAv!AL5VsMLxVn`*r0s8qPs#qg5><@a4JLDXUl#}-4rK)T zMiZiWe4zOnyA-pz!Qtp-xgOpq-_~9Z$JQuKUEOAC4`sJE=U>waHV)Qn-d{Q=moxhK z7%$;JIe?!EsvTeK%fp|-Ina;iZmvCMcyAK9I{DI;(wGp9Bq$tCW7eLq;3qRl7nE-sazO$@w8ChPtUO}zT|k7FZN z@t2bVb~@~o2NYC_bnT^>xodOB{2ilru~yfiLecV;Y}7o&#jw2j5UD~f{vON^3;5k-Jh`k@UBL*Rx4tjYL>Dz-!4(STc-{SbJ_ zXaxM9h7)V-Pt3CaWf5Nm@OAxfi+I&_b@%^ryFA72&Q|L}Kv-Ye%+B(9KVR5m->JjN zwBEIi;Pd(1PYTd5p59>h#+_AHUWSu744c(dCWLGr%YUDGI+wIiHe%<>^sHR{uY2!0yB6*LZQ#y6#hzNI?+M^8hGul4Yk|Y zfe1KtC5l|U`iWV+sjO$m_Z2DmQE)2PiSMgC_M@Pjk=uV3x$(s@PO4y3W}s>=tW$+< zs$g;Iz(uK-Dwy@LiNWSPf5U+m9E(P4xgXdpbJbdEkDr;0inSEs_VE5y9cJthT?k|_ zUP%kCw$k$c)hmDiLfuNsQCMR!b9#X&(h9Hl*Ed7}l`n(Jmq5l>NXb@O0V*08 zMbit)YE4e^*j8B*>AWf$CGljj^9!tIO-^yZHxxK)9433SIcs24E-$cZn4Q8)O}5M| z;H4fI7F9~R&Mf@hTpFEpm+Zou=*lW8LjXF(8vlPN=4187o;N?ur(S70h-`w_vphuv zNC4dh39JPrj9jkn&9988u{_0YSZSk(YN{HktBja2Jyn{yt6kwrV)3hJsuHiSjF>Y& z#co{XYQC$lU2QWRZ>n0B&~VXp2P8FJ^staqTWR$sG|@$XgjH060e7kfCwU{Q_txvx zH6V^!(+jL74Ng!78X*iSpn=NE*{8l04YuqTQDQ7(>| zU-(`4&9Ko)I^9aEP(@?0bbX<ZbL1b?HK^Cj8oH+9&Hh*bhs|h?I zaU%p`)Cw5XU*I7Tr_;egjj6#x!DfF{Nzubg)weQraxlCXp2!jhZY*oz$P)jjB@++) zfA4T^Bu_zDfX#~IfC+8e&Mlf2qp0~rDhW~KE3k1u2xPeMK?HOn^tN37u1O^k{xuPY z-Ebf#kL^%MHOi@w2;B6)kN;~OjQ_O`4wIQA!sg>~*o}u`e^YTXE}!*KY+U7Uv*7lx z2Qzl~+vL26&;K8^Htty@p9mjEw6`Y!$S7vlmHjLe)l;t7;KkRNoeNJ=%auHAwsx;; z30z1}v%)Fw_fz7OK;!YOev)jbg_&=92FJ-Pi;p43AwLgw@V%~6#-AH_(%~>}ZJCxWj=f*V zOX}l3k8|*{#xj(4%zc9JZ+DU zPVc(c)doA4eA1%VQ)(RjI~jGwtZLF1o36N6vw&oAZD+m^C_evZXt0>qMR=i z*0|nzL+bH-2{=Jz_2F#cM`XlPf@Wvy@W8#cj1Z)kwRhs^B(h$%Cb$o|=1VC`TF6lq9>)3*+@}&3fxDOO-pA z*1R=munnv$TK2sDZ>{OC%H~y43F;>kOEv1Pg{sc%dr3HzO`i2*tgMm%#uS`3?+!Ng ztb46@tpJq8>bX&X)zg|7cS|eNqctBaW#oqKMRsIP@3Gz!?&s7{P1gXI30!xw`L{;E zG+fcf>G0R19j7^olf6bI8Z{eiLX!$pmFVa!>m>_%2#3Rvr|u`t^7rco=;9r&`^V?P z_H9lwQqy0$vCne1S#bay{`>6G6(||=_T_ot77{7j&D;Iw6gSf z=EgI1jat>I#m_;(4Z+KQbbmmb#4`$yaa=m{6$d2EnV*vx-L$$l z%CxRLn%?n34JM?ajepjdyo-(OIozvj)u^!lzISA_A>#um=DF_|wcP{EMK5`R3&!sp zJ;ZOJg?Z;KolADZo=NC-WarCaN0ht#`i)P{$egsjxtfrhD@BnW>!+I2xcuC;J|y- z>9eHbx`gYy7{ktP>r^YZY4v_DuDX zy1Gq>E8aZ*IoDlDK32L>yblQn|CTGzc2XK+U~<%{(HY8dr~3LdmF~_i>vuV(L$+#s0z*PXc?Vg=}NR(#6pR&^rSt9Px~B;NF`LPaCFT`gA;#40|ma~OOnFFO)< zK^XTzdZJzeDwypdcN^yA{l`y~&Qu#+dIhG7g36px_{G!PRuP=at5C{X55$UPO-N;I zrzp$Gx#l6fsxD0?F}={-GaxcCbk&WGAT+_!Oijl`DlMaGI_ADS{a<`4ly$yScc7^} z9i@bi6l1Ql#gd<9huY>_Sn~E?zaKiNe5;>sZ_h_KZ@PE?+|ncO=kg>LT|pXnh>4h^kVqH zM0dK@ic5kOnL>Yha1-U(0ULR)ysp_57n1_g$_G^GKg!j+Z}C^~6e`8XZi*U>9_McO zjeEB)?`uk}>oWoj-RQt*&(ep{AEQ=Rtk_psw07DSOG3?ueMP!RT@EwthLT%vkDABa z5QISURewx8fJM8Vz@ShGpm9AK7T342Fc;9M^&9*5@Jh$BiDs#Jv@@j=Du(a~t~zle zR-ii3f9ixvU;6*5L(Ds2Ufo-UE#*JBjrd|7^Ih%_)O{m-vIIoQUF|FmbR}2lygV3# zkXE^@O-%B>)eNNSq>89CpuE7X7dp8yABVLndIPb(!>^XrLKCl($k+|co>uv+=@%ZW zU#VC#+6;AzC9$S6$5GOVdhJod@_36S4)vTf6LfXj#yk}o% zPB?y>`3m;h4Lq#ABAey~7v?@I2j;bYvCUtXwE8W4O_nWTab2|=$%)&b2JOxJzR-z4 zo;?DCPMrG_9%%{z6{s*WlRTHe9vF7HX~m+ug2++4?=6wwN}shrjr`z|=ZwJk7lDA; z%l;#o7-+6{S*-RSBT@`GzH)&}oat94&0=zm<3p?zuw+f`pn6837EgJ|l+CFV{%{~| z+?{OG=oZ2DwafII!BgT;f4)l)b^4ErvE_Xv1Ze+uP0Ow-(lODzp!#D(qx~`9KWcx? z#L(2OW~)Z04YBtjKVS_*Mc?3U&IN0&M;e8E%pFP!{p@&3l319k}S_g_!& z0!I!0n#2v2LXK-cSZM!S^Tp76sO8LFr#@!3v`4edY~A94_F0ok*V4qPdbxSe;rEwT z2Vk(b>LP62^8R9ov3*lO#o5W3a!hYNo5MuMp0ve;PS02WPfz4I%)iX@T~iIRzXn3L zh=3h6<|x=T+D0uR#ik`#Zl&g8q#~J0=VdlDWudX~efXZgHJEDDJLs6Wgb=g%r@OFN z5N@dMuf~(4$l{~dQ#fux`xwsnTK*B+lcHKnSn$YF4f;@{K5~9DMGzd?tB8)ZsU;-i zvPFA^pGisnLnO)gB4!_4_>x$aaKEgILXLn38us*%^W@GP4}QaJ$6?s1gnH!P#&I1r zDmpyryP=)#lyx^PA|a>3^pK#EHK4`g)cCV>SoEe%d^dBvYy=PhI7+e>TR_bsq%nFC z4mj#|#H9XP@IU#SEW7-1B+Z-QP*G^r<%(A~%dC<2rf)Z`m}Q=goQ*tg`YE-z#ql1A zFbjEO$HlO5=$XnJ8#4>Cjqx8ztl6tXCA!q;LL=;yjzr0Up@D# zJrN#o{CQ&hGJ|5Y%z=k#vordmG1xWZ@VTMfEa9%6;N5>JunD_dS^v5tgukc{q(rEc zD0fDVL{1Y$sf`9ym`cg_8eZ*dIPDHG9$`lbP_dsr*f&%gpt+y}5WROA+9O5Q zAFMA*mnKq+N(Nkxw?2cB$M)=>J+7NTbJxcC2t9NEn!AWtjF1HMv5H8FpjMu)TdZWZ zo;N1Q08cMY; z1vpa3_!t5lTY+v}k{e55JVia&PsNm1~jRLLbc1CG<`(-*fc z37twN)_Zg#7#vZV3kIj}Nx;R#6$2d5i5<2VB&g!F0W0Zw^qsht@rG2|{?P%e9@o{e zR62}ikY2p|vvyrB`;(Aks^6Lncy5oS%Z3G-AJ0_p^HB%zFgPV-1G5O=j2gIrjC9l( zTm=0K;B!kH_Hv=m0V(#sTcW%l{9987taw;=n(j#lGG1wR*vu7vFl<2nj{=1G`b+=g zp)`_%xPK13Dc48CjfVBqy?J#jDH*p3$euFCfX~8ZKbL=N8`ULvDe|AVOW;b)MywcX z1_M4~!o{>v;>6&E*UKaKl;-}B#k|gcqdM;JJ*h;BJ@!rc)<4BQjblBx6H3tQ<0* zeIdtS&wtVH{=cdGIrrCmv5zwGwQ9>u*>(sskGkav{G%o`_0W)nopJb_AlIJ?KWfA< zuGB)wX=Xrr+fQgm&=DM0p_G1pPl|wSvm%u{yH=oU6kE)bz0Zg|#+y%tUw_+V0@8>W zk72_L7-!&*{DGUlO*X-2xuIq+|MF==AeC3Q{s(0aD#29A3xk1suG|i|=TIc)PJ*id zham*!C1XxMOfMM}|C12UD_tr+p_GptFiYKi8N5a$Ta_|5ie&HA0C!d9QXxBcod1(* z^r?(mbTW{Ed}V)iwL{J3{N>?>aOy{ewz=zsqb_}qB;Zc2@v9k-h(^hTv=}9`gRABg ztt#JDwt;7#f3VsUh_KL7vB~zP|VA$w&LfER`0Wt zpg=#8!Kh!fK<@gpy->m~SQ~FicR_prMoMg_9tzmNd<^!byX zhxs;zf3>mI{Jlc?8Rr>;NveeWPHhou7VJRE2ke17@VNWL=mn?CO+gA0@aobjRRRO7 z&p!WQ)j`?4s`x&TUcf~R5L%9`>?srZ2g=7_hf~odwYB~nD5oYhntp`PK^2g4WxT&R zUX==^3JN6g-)kGNs@e_Y%ic3YpwR*oJn!`rzdp#d_0>nW!v+}Ziw^=s@AALYZ$>PB z{2L2vBB^czV16%AW$?~lG8eBxGve_!jbLBtacwVA>2`#8rpjA0z)^!~dlDmxvdHQaTjCO0q7H`cbOw z3?$Xds%T|Nd z3QKMS_fpVV)gBp>wm#ouYR?2+;EqHGR-6#%k$Y9_{-6acZlhJ5BvNZ-HYJKh0YREb z70cc#u%kIgfQ^;JT2(H6Q!>xxfE+Z)ecAc(jeHx>Iu~}Mht*S1gfoBXPW#rGT7AW7 zFcd!OhtZs}f}WqwLdzcEj{?|7YC{_o9^F;EVui`vI~*zW?}Zb^mX|{sp92EjjEJ-Ma1(vpL&p3HR^I-swDo|sZ}BB@#=e5#497Ocpj`&c z5iE&SRe046^OjB_MKq9Php$5pyX+{cC_TV}yiYfIQT-6yS~vyH(+ZI}!EYPTF5lz6 zrldaN-LWj-%?JHXFl%fFqKFz_tWIgrfV2gbd-<8ej&NC?tEw&#_x zA?79Sn;B!QW8J|{wQklp(s_MC@8$m84GqqfJjCn!T6j}Z^Q7hrT6oK(H{JbKb&-j@ zOKM9Ga_u2n}$i1c^h{o}#d!)$_|>%dKk8-17!@}phYsh`AQ zD_gh@ZVnuO2^F z!VVj@4v($o;=u3JI{IOKp(?^MgzP7r=w~no_+SOU=$( z`<)hibea+Oos>}>o=Uj=jo{6C5yg-|se#?F^DoK~#OUsbP0(aiUv$hL3u4`* zYz4GC^38udBlO%{w&y-uav}4w+?z3z+2^vJ2r%XaW&6dy-di(j+L*ZNnmBfgUd1|W z1TheJ0~s!G@e}uwaqav@P5zw`5}AG7FoqKw?t3$)x5^aH80{c!a1I)B3}@`}%wfv_ z;w1*cc}n{wAbE!o(z(R$6OLQt$3f2p6@*3y_-mO9{75;H4tmmieDtq5xu@@0F*;>? znSlNAU>$Tv1lE=Kkg~wtzMGrF6k#VF@bTPhww&zwX+iuI!Gz1v+%=!$)KB-P1+7GP zCcIliMKZ0qna8*J{57jaj>(+%8>zQcj-`=2$y^<`dK4O{+_qvqQTzRc#L-W*{F3 z^jP6OtvWexb$~Qe^bm21Otv zBc~Vo(7Y~#KAka}7W6Y9LGzTnqa+jQ{C>u=f(q1c{ z3cM{VDXM3_Sva;t-4GjGNflPYkTzlP%H1k- zEmsI3{wbmv4;>5eh2N)sk>Vy8B>UsHY{8hyA(>mgaY-9H)-B8MSON5#Dv4|n8{zEW zRXzD4!JIXCz%@mKa{|*djSj8r%##T~j^{aR&20Ji_DV7NhY54mkMe1h9=;3!^6=i? zhN$c%+Nx`We zlA^w0(~eWlJ3L#zrZ62uTNb#Xd@1=vaNle9c)%zIcU`Ge(TZ7NKveof62}FN+25j? zi&rU8seGwp3KLl11Ri#|ZQtGH4ExQ6MW^8>Xu{dqQvGh@wi!-J`!Bvy;TDzlcdk`0 zo(@-jPfYKL>|LJl!~_avA}NpQJCY>zy8UW>*poc zUYe1c2xEag(!m@_LeQQgW35IRTjD$w4%1^S;7v*fqe}Bludsn5ic=VBmD7b_Cb!_r zN3$}{_S+NXC`5^4x0m&Qtw$-whPK{sev98~XxlrwHBIO(Jrr!AW^ogcBAtBvatLmd zyDp}YpK%}EcfTJkf%f(>NA6DY7pYLh+LToD0W<@S!>xD=Lj*!&e$&O4Wl) z_m`P13~u5sHo1MT1=FA9uU)IojMx@A%Vzf5go+l7&3z8y-cANQ)ybfdJZa&L?>|Z% zwY+0yChv|(g7}Z;N_yQ$)|M_SBUb3UcvKW_KXY1Y8b~+ zCt}moeLIOWJNxwOE%Ib?~9?<5AO3_L8x}Cd)%hUOlreplHWPUBTt`&$T#VCvz7+$LHJJY zsEgcC_&3|l_8#RpB-b25I_}khj`>xj$Kd7yqFv3A3mq+1Fd3NyI1{Smc#nw>MoTM? zD!(K0Ka(!I_UAIW@~a??t9eAYRCPX0!R1a~NsZd?U^pWxPrc9)V89Rd6E$r78Bl%e zeS~O*JqNaXGY$3YMimv!uj7AaD9AmYF8WV=$Nux(gGkz;>o#jP+drWtd%#^Yy12ld z>A^391G6%*w6L984E3TOt~g2k2oL+ zag&fFzJbC-MZK2OH;~wuc)*u znUZ&S^E-#udu~(CNQKoNG}kq>UnrjnCej3W5Np9zlsuNmALfma^E~iA9~NAMhqEs{ zc&mm)hgsQx8nSTO$zTDUz7A2GVSOJn{&k40UjzABWxrw1f90UKu7C3!g>){aKcZXe zJWM9`kd*eW9{)rdn1&PJ?2o3UY*jEOX|O!$mVuXeg4El7woGl9Ad&v9>NT%;1*m6(UkO*Cx-1i5hp+H|Gbz3DCrG6GnRLLx5nAiczzK8Ohf!nI*G4miR_W`G>}HS0 zyzDfVqik>xpd4l|ccRF;q~4a|Bw{uS+)-W6g;-G{0hrH^E|WR8X+EkQqvxmHk>|TQ zr#ZvjANm-3?MBHR{VM1kYiKFam+x8MCGUK*(O>tlo*7@1-v&#@!Qu{rod`NSVUm&B z!VD6z>XqY!z43#nh4g}n&IFM}B9xIU-&rV}@2Y*|Ci<)n%1PF z(eUotu!E0?og(WUzrTO5N_H&v-=8bT6LI%{UZSfZqPL3jLJG&bvCl)kF5MD5v*%@d zv>X=Ri@xcwUt>RVED~#(eyt#0(#LMH@ggB`7go>k+Sbh5*OTNGXfPiP>6B${_oS86 z{wYp1a(9@N4a+T|EvNm&N#*$l$63*fXvih?o zxz;nd+iQ=WAV>T#hY`ksPj;FLmRK38+5FO= zbcM@$D3EnR_7}!0KbOWQw044^-oVlK&aOL8BB+WhoNz|+=ra&Bvvh47=ChbOUFD~3 z2&jGIQmEckQMDZZWk^cDwATq%{L;k+Qq+D6pPY)maq3`o{@gRt+dd9awe9Xe;F*z! z*R~%d{!A>=Gt00=@-;tsiMucL+K~KNE9lGTiQuNwi#*{y$OF&ihddg@Cy&J7E(){f z2q%w6Q28szULE8f-F3?-bnnN}B>m#WHDMt}%Hct$n_ROt62SF+C}uP`v>R&_cEJkN z0`V@2KXHX1zXm&eTjLt@A#+upn%m|Sjr0FW)VWX8AIJR6ooJ8%kjKs}HEZIo#zp=fLE#kr( z_L#pJmj)tyI~gAZTJSv<;N-sL;`5Cnpt_fceyVd1Q@ig^St1i;!TNMiwuoz#!n&) zr@hV}x)=_ymPDx~3zQ6wZ{=gl@P zK2!G`*%3#0rUYFV=#b)0y?u>UoC+ijDq|l#=OO?4yM5hq>LQTK6jMq96Gx95;Z_TF zpr2xKKl{d5kS2~agp)9@i}S<(ilYtRJBJI>UtUL%+lug)g&km`Al%W% zO{)A^egy%kKPh8Zh;2xkc=44$!k6xx0gtDBShv52hw$&8faUKcc zxhAe%?n(Ij*K4z70t5PNeVNS8kfBjAS z6iviH&TqqzM6i^0HeXUmmNUlpOKUBEahT_{i5dQTM3|Wn4V;09>m2oXpp-3QGM^q< zqm@eBeIV@BOqN3g>}xFS!Mfu2MHwistwh0SRJLsuuIsI}n_&C-uV#wO&%KOlKj!>) zaTH!Ag2*>_o8_hyQtnk?w5Ym=kg%!8SuW7r7%uv~!E|oMD(J_k*lEKyVZ*pgvm*u4 z{Ku=Yc`!xZkHY)$6j7ev0NB4xJ>S6`>pbdP<&i?u8oQzeOAfA9Y_HNq%hJWxI#GDX zF7648bF?66Vu#eug8J3YmiOcRFgWw~!!ix_)u?;2xrm@4`5dSentdk(_-ek?*2md0 z_KIS-$rBHYNB=3UL?gn@yUEJ1nzmIvUv*a`wYPMh)YdVOPV!Wj$w-AcUd(KTKohnh-DV#^PuMOPaUl(v5FR|N->J+iKw z=HW94UaSs${cZFci}84B1kCq8L9>Ax9s8#Qmc$p~XoFGrhJw9Hj?^(D>Vo~8JhI+LcKX8+2;;uAb2c3zj# zi3T!+;Da`&R-^%Ees2eYPW)@BNhRW8gH$mbIsN6Cc)^StvqA=#K?CKC)whw}H<5MH zi5;aNv`6x01V+oP592VLWUoIboK72&{pf&ywxkfH9mMa~o{bYJ&{nbz!i4-^Onq~7 zCr!|9vaz+Xv$1Xa7u&Xzjj^$9+qP}nwr%U?z4xB)eE-a;>h9_4IX!2lyX&cXwC=x< z&Czr)m)FY1S2e;HTlFJoM8tgC)YTQD@ac`2N(FKsI92cjVDsW`I z3!-z(86Q7K^7C23ZUj&Co6nM_ zabT~Zt^I_QV!peHAA?5Vm+Ux_eLS^a^S0FPwCS5z!w{ecfAgHAl~kK!75DOZ((2u^?a&0P+dw0u-GRghnFbm}AWE-AR~4pdZx` z6DzCDrc?wPIE4j#KSI8Swuw_AwU)I;YQ)IV3g*|dhFB4O?580FbFT0B5jzY+fPqUb zO&JL+bMHj0c*KfJK?I@?=#!}7On8Xo-mi?}g4A%@`*R3R5y^x+ltsfBrhDpk|69E{66mMF-5@UarE!UJ@1l6=sc1 z3L_&P{-jEV{$(&;+#B;UW<*b2%os=?>S>RM9$<3EvXU0uM6ggtfDYNWnA6h=zsZtV z5329(GShFF%bm2NK#p)BG1;XP!pmn2!!79i@42ol!3aa(YIvn(U+8yfzM5+ljXzEz z9a_mg`vXT4IC1*Ise)~0u3qKFn%n3NW5LD-oW|cm!S{v{{!69?d0Saar9r>TcQSfK zKF9#WosvA>KOo>^2oxL~(4c49N56eq`osx{!>M%P{jt>CQFDS+b=+#c#$*Ww?j>8f z%{)j{`Ev>j2q0-UppO>YbNFFzew#V#d&wLn_|I!r#a9qB6t{t2IrWoh#b(vK63BSjl!*nleX}Gw8d<3( zEzXX*SGOC=n-1f?EayB8{bn)&R)IA!|tKca-I(FJjHfb;z9T@aGXs zo#D&K`IVw+fDs+wP)f-b%YYPA*}#1r=Ns<`JYQkJ67s7p;j_?D9^StCM51Fr&t9?wwKd62)aDBX%{{dND!sQwH^-#L&Er_wH2wd4k z-v1M4%5Sh>f}Edu>0b^l?1CUzS^l*$sUsdKf)GU?YLc~j8LpWk4GTL;knFcyg$Zt~ zAXWe|Zt;sA`LMrd%>x`mgN!q{w-vUP@f&#H9JG(VBTEhg)QqudydY99#TlPeYuQAM zqYY#J1S3F>)`=j5QZPtAfq@Y+A6`y?AS*!^FNg!&nLp)CfEzL>6j7gDI>L1T>bD=0 zp^9|S&&xrt%s~5r`K#Y_ieLPIHsWWC<`_dDUMY+S8m4XD=Nj)*qfvb)ShFGh5?)>a z{>!o(2^KirC9K1D<}5Et19tyJ-EINV_Ky-V15gzo6zC7bX0(UeW6N`N zs1Rh{B6R17BG=s>E@V9gd$FZoip?-A6!k(IjbTj!;Y#A#zyR>&xG*|Ujtl}YLC0D! z2tAtl&(}LUzZlwxA_d~q%Hw>w?PQx-Qx|Bf2ZhW@*vq3jYJPRQTnKmDe8y+7W6lm# zGaPr+;;f_*S;8`~7^m_Vs)3%?^vf~=IIJXUW&B@3LBoMf$~mmUNczNZCMz z%k;gM$U94w8#X;WU~kC>Z;=D0OI=W~NHcN|b|#1!=fHbIzuaABm0p zf4xScR6FT(VG`mYj9ianRW-ri_F93^bhKvbvq|ZWTKTTJ4=$vr+=a4TLh^5rL>3{* zwE|ST*Kb31FkbMLBN%IQ*4(4K;ZA|A5%jJXo00o~2w+EgJrF^l2?lbuwMMIz*A>J> zu;bksg(3k^`D2Gz_2)(W_bi%KnBT`p;uYjlyj*Bv_G^v$GRvdt`LNae`^sSOfKyJH2fP^(O2qe5j5`rqR0;0S^0+w zs_HN^()`ljz#)Mqm(@X|Cks598*}nhHWY-DiOEH4wXF^0a9ayhflm@ViafET7a7=h z_q?6XEgzXa2ln8b&LrVVrEQp4v1N#<(pNPt1j__5=XwQ#B_DqCLd_CEHl4b6lxE6d zGc=dDbd}v{em1$PA2F;Plhl%R^29nq#8cIM+>w5&fYfWM)MpSTwKL=-&Q1~Z;Qdf9 zC{}#RpU7%RR(x5mX7kYv`oGW~{iE!(PxC$vfM2MUeTjYvnoi*EAPLj3u}hhZ`{Z9X zYCFVj%QU)xPhEcE2aO(83K%&ZkE>Pw76;i+_NFI0g(Ko4)?Z*G;qTywxyvVCv5nxy z?eBEw=BevtL$xjVAakU(EI&P0TdUyd=)QKKw4Klk`?afPdCUr9Z)&b^aKb@ItY^r$c<9j}LHIZE5#p$BLb_MsV)Pf~*CQt4mwh)M_TOhk`#j>2b)t5H$hE~0-3d7L0oSSg0Pj(OsyY-PjJ z^$r?QK^C(EtjF&axuXfEa5Fj-IjwlX!i33$ryE5@^$LvsA%lxOA_-&= zoO4_(zcc1fk<5b$g0*WIu22{4|;1;&)kQhxG8<$?Vgb>(@ z$ILLKr=Rt}uU6pVU*OwWmd3LM41?8Evd0PJbu}R9-`RwOPU&|W1Zy8V)!I%73>qs1 zn?{Y#!6|~fRkVKWc8mZV>Cq5Kc>XEP`QPEZ3>>RgM;T`fE4*ED_{Nv~!$FgP{;tRY zHg?+n+lPkW^m%pr_$8utM+{ESh)W{*0xcg^2e2zP&bYn}f&WfVAV0+O#7AQawLVR% zHj>(?O)iSbzpDMBGp*kwiflXl+&O5xMqi?d%(`s36h3;B87VGxjOj|+NCbMG7bd0@ z*?Jzwk&;y(ud$=;-;+Grkp++v{>`VI9Ym(vYYgWDmuArcPSs4Azz2vLeZ`#}%Sadf zw|cI}gO{Y@qb4~BBy&k4dpE;SN$K*R3@4M`2%HqxY94@VG$`jbK*aR|KIq zwY^G?m323;x?#)SqeSweySht6`9+`dNT%ap*+_y2q3)D$lfeg3E*7QHwuD%)lXk z0t{cR??QW9VN=`tVqJ*^)wZbbQAE1(@6Xf~!c?`T%d zCQV*o6)nk7FKhE}g@iI#x;h%&4VTQPJrZkI(#U>qfmB#FFGqmhu#x?h(jy5OW|Ozt zxLVVwo+T$TVhp?d%jzL@4;a z0ePADIZ}?;@8K27K-6E!QeG0_kDc%m3wmz-bLI0aYE`GtxV4zbGHICLpZU>;uQ(2X zt``y=nkFmW4=gb^$uuEb{ydxw1o=8xqBpm{^13;u6H6s+ywK)BPp%vPjrB&hSrh#osQQh>@tI5(87tRAvV0Jj&2#aDr-EXvsRt-Z`A8znhNu=XDwEg%=q8Dzjgsb~$kK^64f$G*V-d~V@7fT3niL zdiAv&{<&>(ewmyxfnHur@htGgYrYdsL>HyFK2FqKd5nv*ZILlAZCid~AYYYyYU8an zj2Fd9w~uwMs?K{m`sscd{o$%3-E+i$UcTMU0D4XGJc%) z!XueIZH_E{{GL}0$uj?Q0+m;p!;_bpQyg-|I==~@2O@wi9PHN=5(RpRhzrveev*{~ zBAm@KPdNVCnxj7T?q|Z$jmSLy%0EMWocyDFtIrVTZ9{SjKFG~5wQ8fwrBWV2yH2(>aIqKT)Yf=zD z>VFL?e^gDVw8h5%8dUyQl9`j*1tY-Z`7`9VD$vOXPr4tYkw1m_KT0Pm^Zc{SkIiU5 z(YK~P5Ha#&71tfe!wqNzoZJk}UEeYsi*L#~I&U|&fpz-i`V)5j0ZU^k_Ryy8v1bCOEG$Ouj zg*pSvqt$1u@j*hZi%D4S+JU2qzSY622>~tZX#(E(W3;~Gw+6uv!K0{KHv7kj@3O+c z7vt~>IUmhTAT+%~rk-C1G>c$hYR!pgzjv!hpr{3B$ljV$>-9>Q?1a{1x8hBjlv$2!=CPZwAd?U^)O^pv(Sn zr24*r+qrMcECW_`T?;a#m@;Y=P#s2tl zC*%L~toQPTPp5jyaLDG~AiQgH(421@=Tz z%48J8d@`U?4@2;D{i>wf@$-jiy1&w+_4W|tG&5LNWO;gy+ZSg%;v!isH5VF_G%Jnk zM0RlGmu!mVuiuMDMa$^**s;*ich0`Rq%|aGZ7tv*FHq3^o?3oq2A1159Vm%-WQ`=C z+f@dRFvVYBg!D&AsOeQ0kKWaln8l7?Bwfsx?Avzq&PuBNI#q%3b3oQ?l>BqbJ71jq z4m%tCTTV)msGv9zm}zbM?*ztf6ORH@^rYmB-IRMAc)2>VG-ILmPKhc50LHc~$erbW z+reIQ? z6A-Cg(+HL1;2hTY0bCq-nSD@F@#Jo9A@S_9nv^v$X@5m};td@Pn0;>MtiEpVYbE-m`RezV5!uRvBW)tWt!YnX>^ zEyKW>Gv_WOjl^zm^Xn7hAK@#9o~7^H0gO>VCy}yhmq3?HHdA>(dZ-Ofw+i6#1EO}uJmgs}0_zGBmt_6@GFlgd5X25}m~E3?u4rN8@&HcyU#-(qWm!#q`CvkeHE3P$-V zx&8U&ySh2`bnEb%$#lPC(~C1@S#!sekW*YXN4b9C3< zH-TX$nD?J&ju882#NzVB#r$`^D|9GFO(0yw8St!DoDYl!e0+TW5CQD--?*Iw(0OE{ zGn~8=g1rGIkZSQ)73BHJzX3=&vUch!p};J{((HlJ*-mLrdPGUodO!7@WM| zI<7Kz!YFl3%Z$JD_REHRkPO;2hSZD)f5N|YP6|z>?bRxnN7CDu=fQ64V7;AZr~6>y z58lSO|L8+~+b6r4Asd+?WH7hf4>@NMs;X}1TtNoQ{rtG-|cF)k5u z9#o+-Fp=#fao$K{ar0OTZOfm%hzSUvXF38EVojj#SIY-_J|JuH*#h#K?5#dnpqUEL z7748YmF0n(NNO63el16o07HCZOuXwlq6sEWjpUPbh^I~TC)D2PnQI)BmG019E+|1d z8>QPu{F`i-g55||5oq|9XxV@|Nn$)w&B&;DS#vF7BfG&xk)5V0{SSHG_DAt(HQYVB zYdk;ZafYgV_~(;PXZ-CA^oJyJaCjn`9!uDY(1#$UI)wom!!ooul?sKC-r2!3} z?69%b3u-P~^NL|vH+cf)*q3I@dHdZO8*6eNC4X9$@T%oO@X_PoJe}jft6%7f3>?Dk z*9?LQ28b|L%6*4duyUWD)8Ex_;K@7n!%r7YKTg7Ud$qC=vnJ*jJl+EstO+N4F?-IY zfHKULa}3Y#g-#ARbmE5TK1|oBv4Q{IAx$59Ja|No|Dk-`GZ90;whU4YbQS)4zw#Ij zAR@eC&fX;Zotr=dtWSQFBm|H@`5c0ACRjr%lpXm*f{4|xn|5u8n5h>2rMLNyw1^s5 ze>OVL-tnoRXvABF*LP6*Pd_eHtLvo>&TSPPv^}~l59r^P%DpttuRt2AuS60(p!o;? z1-cuR{>+euLi|9m@RMtTT%s0^n=pzT1kge_zNj1efrq+jKfe~R5$9PFY_a$VpBIoo zB-Si=&?atnP~2?%?U5d_ioN7>KJ-~h@MIkj&M4pKB-i1L7;T4h1gKk@XE6?*P~VQ4 zDlzOR&mfq!=@Ci4{`7#UO-Yu65lBmYu2(sbLic^NrA3*1%HZY{EEw9G=+Kux}x`E>HNSH%aiG-2H}i zKO~%E&2hT;C)>J3?wvvL$4E1$rW}IIPN$B=FG*NEX@sXZ_WWbMOuj(^R!6O3O?eBc z$83YW&BdZx3p{b6idKj{R%;Tltzi$|E%{{OGzbGoqo}bJP)$aL7BT}2M_E~F!e^bE zly{t+REM2ZwbYg;Q8!3nb*^>S6@DE&j*D(TkebXvkuV6>4#Zz8A|%G~WQU_uZlyi>lKM_IT$bE)9nxq+2C&5w||Me%d?*0~>Vu>MTRafI>%TW$B7WP|A( z?5&#VzUYAlTT5t4vJnhanRBvvkbctp&#j=1;@L1yWKK+vA+4|sJ;5Nd=ZeU;7YPPwo-DRUz|u}I&vBMN0K?8 zckco@W9#jhNtzMofR%8@s(-CsYcH#6LelCW6R$6w{6Z_Hdl1L$or}Wva2>qZXPL*_ z9pu)On1ie1UWgLl>AE$WvqKY!N2}(O@+ldc_e-&p+u(gc6xi5get*NElh$(n0pKEm zOOfVTQH+&=+>_A;QOQZOO|15RiE_Rkc`^ZrmkZL=mH9Xk@VDny+`^l$hN2Z42>Fd{ zVD2XL&wbgQY{n2A8v$H{zSQD)ZVH<86q0BmnS0o3Rs`AIASmo$wEEE_wzNowr7i`HXasQ<)ygE4jQ@~ ze<%?1V^|kOexO>7NpixeXTR{)IUAE?`IFD~L}(HBjU}`SI+XJoc?=|FFiP~=8skiP zLLz@(o(EUMs13)JEA%&+w?EQ5molwc#yw{25>&pS;-(vQCyA^WT`2K!Jz|rdr^D|4 zbbD!3Uu9A6lYYpxB%ue@c6*6@z3Gm8%U>4Z)qKGHy^yYgi)V*$U&)}qkyqd-&6XW~ zY{w7f1ham|wJ21ENf}_ow;0Y^mCD=49dKCNjH|{gDMs8CWPKL8q8kG7a1N#ld||J} zN2Jqq!x}Qjs#gjR^x8jy+umUBd&(@rTvl3QdB5TnTsFrlc9=VR;s4u^5lqzGx4khb zZrX!IpZzU8)(#JSVZbkBowq=AK2O$8?ak7AGG}wM<^eZn0hY-ul_h!@rSF~ly;!xe zcN}G1dVu})wOx3fuJgFwcHz%zBVX)gahi_ZrZp=WZ0OK7&A=r>;SnvvJ)aSL=WpYc zwJue_W53Q$$TUTb`p7O3@LD<{IDl?ZH+DPHr}*#7L_6NwiD|uAs=fPy5U<>^PzpCJ zl0Ia__>+F*sFZ!7w1o-O#WnWmYIfRSXv@{dNo?<{CD(8&VAuRS4qca z(bKO6t1Dg=^C-+A5Qd14x^Abje$e4;^tkA)Hv+c&v{@(o_Wq{hcMBL{N&xtHnX2iB z&VA7Ha7MYG1u1U7`N%(O9N1$r;|8_T=djqlhD(RKq@#zb&CA610rA*3L!X3N=F)Xw zg`>HGk1l|9^3m@Hj#WvAu=k9NLJm|4|!oMhJ|QbKKX>?*g5;5Ack zFQR8pE_L^f*RA3Pos_s?`L)@?b5-|ABQMhE&oQ^{t_B7^vVqKIMhVI3;%P@NrR*lJ z0yfr=>!oi5T98>+;Z;z@)sqcZITwPcEPZ;fW}P~@{Zk_5T(D>fa&zmU0DM~f7B1O) zww>uvrG_QNsn~U|>Z`6vT|k&yPh@-B@zUBg7sA$;hug7r?^0Q-bUtfmYgzffkM|`~ zsobOFuE;0FvEx$zI~^ijh$$gYb$J$q-f_2$I4l3*-D;>i5W0WY#ujb$E*u#xRd6QC zx=rU9Rn=R`)5;vx%M*<2ft@kzrEWi5my0%?-cNI|cW;Ca3Gwu>eS4&95G{-XTFz%w z2WK=8u`g6eZJjI77%N&Dzmtjt2+B`r<;-cJfwfwoV?{wk`~t^!%ykl_u!HiV;Xx7(=vIXVfC_5X3<+j6sx5T2HEz(^tbsRJ z9*)0r-6>pxr2Sj}deap9w8s{f6A{WPdY6FWSl8jg!5~h+aASS-tkni%lj4qlB?uh0 zT3#zeuE2><`p&@N!GV?ZKPKyw8PSiCtK1Q<=?nMXb?#u=1(;05QTG?6wiqFC3OM!v zsThyi;1;Rl?+p@G)Zrl^dSRsRt#qqg&BhU+NA_2@`c8H z8iu$>({LdZC>R3aL>Lo*cBOQhw%Ie;z3d4<2upeh{QsKokPGEj?2u>PiqEMzX9@t| zhqN9mbgQsa%T3Hm`%)#Dn_DeRq_^+0Z^=gO;W#pS^&@=AFBu0pQL%C07p_y{Sd5-L ziizh;N=`{?D|(@mLGn+5a|F{X*!!N-lQviv%l4f62bz8eL9B7f(aBYZc0k4xW6N{x zS=Rv)iM6P&2;>s|!;;pUX?BLlaq?GS$S9g9*|5~3Nzw{nm4;KjB&{*G{Im9nkk^Lr zt6ni&rFMl}ZE`W|qs@B)eu3#bZ+h~tVA$v~$g~>WLSW%bOuSkNFlD-9Tb<}rea!~) z1f>CH;PmH4jJ2qep8YdEfWQnUsCJc$%|J#guig^0c9*-n-(BvB`M(=vwhA#Cxhdts zH8LrwM69>AC<3iX?i9i|#tsY7(y)2gdtwGOpVam$IsI!KhssddmZT*#3SmQxV1fiQ z0lp-V>?u9sO3vKDu{aWJk+I}sr5l`zhk@xwQe`*{3BHa<27deU*}WKKzxbN}CJcG$ z)T*w+V*M6+mbZl6TwLs$w1hb_p6olv^+}!*Z{soW?g_=LM{Ey7VKOB=@|U*af~f|Y z7|#k+g*`f)=qm@hUz_ZeWbdddX6d*(8?&8#gD+}al9nVIsmkXZq3w?70_7c;zL_Hj zFz#JFbG`W^eY4pm*leVl`>DZ0xHvC>yL7P&=5TT%an8)5aNZb%_MTZ0)a2%K*W?oC zPGm{|=4YHKfpYSBfe3sST|?-OjY8;5H+VENdS630rlgP@NF7v!)J5vEBGdQH!qflA z)S++=%VTniWr)y8Mdou$MS`ZvD4vEY{pq*tzg56A--&DCC+*Lb{ES+Y{A4sjWNSBT z6`~Ug>u$R$=@j)QbPU=K8PzIsanvnJCR}Ojx+>|G^#)`Vu^h@nQEgtP-Uublg+Knx zn~YI@dy{=scHj9UI={%+(mVPpZX^0Cp_aSLYUY);GlExgr!0`G`r53$Z@aflJ2}mk zD{%;%&c5@4?tYh;4x6RkceGSUEPH9bl?cSFq*QBN_2XYkPODgNm4qO#D^d-BgSH z++6V~v7&f4v4Wc73TQR`P?<>V0cV;9##)|+(8U$*A(nS{iyv;#i37*sT_}bm_gR!z zu`oJM0>aRUY8pot?LDrd$x~(Nu43!9;^@4b9jB*b-c#bO7}CMk|o}+-Hy#vGNoV?d0v@!i(Xlf#iG~OUar;tc0 zPgiWY(jqRU#06gg`%qcAP7-aAA-z;fdYD zdyEvZN=b)@!vJvXo|OiLp=Q!`$5)40^41mnwsXVEhTV&AScO)?C=832NHAltq$z$R zmv1=w9a*A~XE{H|QY0P9S)OmBl#3ks13&wlDUq-SA~9W}oVSd*;2~3wyx5LXHchFT zmzg;PN2vgOok_j%x(7hnS;pyr;mx8wnfsIO3@+iKX>Wv=zUug%1v)=!LfmJ~!d@-7 z?!>!@j`Ecq6Pr5s3bXYQZYOoh^$GrfrnM8{F7_Np+}K16h-V@d{X6uuA6ju3Iw3Es zxUOJrTxx1KYX-XKD8;KqtjVNI_3!J1_T67N9rB}?&L?aTg^8y>CbvNTf7+OoN{c=)eB7?7tI) zx2NS1Km2nPmY>2-9qo1>83`Yun?yKnY@Irn*Svc?*?7|+lej6TXu2z>Kvw2^iCbB^ zi+jl->?RIU;!N@wkVMsG(UVCbs8&gT(=L1j!Tlz^G*)~YdL%U^csMA?p44dE|9qF0+`b$e?-lHn@<}3bc@ujA0R`^*f&hGVB^GeH}I+)eeCzv*~S(bE`CTYVQkQ@0&y9VnuVr} zpdQER+^TT^9ECiZs*s?gDw`DvbSs)kR!hA~ky1KzBOvTT9Tn|w0#fgpjuKNl`XZ_S zOsy%S1XD1yfRhbkY9_YuIiiS!oiNo2EWD;+DSsaqmm_4K99WXjl{!@O7ACzKh>ctf zU%YT!={rU}b-=(x_38Zk17%T^Ah_f~2Dt3BguM4}Vy|!urH@ZMT<(qv`49_G`5=)K zTjrjilbpE9Q{xu+n!vVUK?)mys#ChP_^USEnx)_npTPtwk!C^}ycv_sqObLW#>EjL zc&H$IV~{NcYc|c5n1lx+@W7@5ZVs+d*f6nQNt1Gh1+xO=>ji~r=y>JIKj(l#3n@<2 za+uI;3(f0}L^53yLdIw}gK4@>3uWm0#Lr7b1#fx=AZ6?vze;hN5{z`~C z*mf7M^K=;g*3y9X53gcq&w4vVZu>juQiczi1Lv`pj1#PV0p^yZIaD@i>wmKJuATKX z;{?%^$4=-(0kkBcXnkj1HhG5K`}dA`PIN{?=2s0JXO$h7ok%|B`fta9~%20;pYo# zxEe;IF*Qt$)cO~&PL`OXfxPM`^9)Bx9_Y0;diA`l77B9=q)qTT2du{%=lMi`GyE6w z`J4k05R(GDczE_R`T7Ob=r*W4et(`7w>ME!55fbLG-a4-td+QGUi?44>Gh*>4~&02 zaT$@y)PtAUE!DQ0%_G2`WUN}YWq~dt9I;iY|H*R59pA<>2=SDejdqP)l?_` zpf3|1SRev1D36Zoy&p~^w|Te}k>T=6NMv0SSaT7}ebTl3ZBS9re21wnO!z2LQ8T^q z4s+|&)hjX3^NB@MaL=Q;`x)ku^Q0TQ@;(k{o^`YQ+LymOCx3x*No_J}X0WJ`zZtgH zfxK{peelr<-*3-TfWFhV?b4>NP%z6n5JB+lH&(qwf_C?}nq>j}9Uvk}A=#!B;jS{< zmWlb(al$Rn270U=%_E4pz>G=wd%n}|vfqW-Bnw!2jR##_kH9==vIp@25-t{#{{LKs zq2i*A3Iw}Tmsd*Xh5;spIu8LAbO+n`#sU#eg=tejqm3f9J8S1X$fi&$2|dkfJYYfz zezi0l3&p`_qbYet&I#kg%)Dh}0{dj44&;4uEFin2t8&m~*a71yTUe#A{@@_*YQkT~ zbfbokjt<#Zr*4pLz=*+*mMyIf>c91Qoi5-ew9a-=;ELm-UY0}ef;fYzHi=Drjj6tI zZVD_|S3?A*+|0|pOkmUsmEmUzwLb|+>ZF0?8B5id{sq^c^9Ny}sb|c=$(3#(hbx*z zQY2`sSGE4B5DE2BdDlpls_UQM|Ds60i4IkK1bdvXpyi$Gk75<96H1^Jv}3aP7j*iz zt2kM9%*EZNvk~LaGYN5r@JgKPsr6dwLD+;ZR*f;`p1g_nx;z9X5z`}g;vuPi;xY4* zmkhnZ2rhJ^Nhx?Ut`cs56<;>6*MdPxa&OxK73NK&z~sInRYnk;Z&bAfQK}oD)8;60 zYRppF=M^Kf4IeVqeC&}lyc1}6BoLVr96qV${ zY(^Owi6B4c9{Z zWvV2Vm%X&owi0cbBFtN!s9kN83atqZN3nGCQG)I`L3RG-WnW0wxb_siZSfnHSnsp$#9j|ETVf%i#VTSxX z;2u8x5B7e@O_7l+wUCx86*it`dLT~ zNcU1u^mRokFpt`ak@_PjP(=NNZRnFCv27eT=7UjPkk)Duc4AWc{vk~};7tN;siaA< z_!|Z*(%)6-NL-L3`3byV6Nfw5-gN0~W*G7x>w4be-Id%t{67g{FNF$5BCjgiZS{*$ zp|Ga~?ycwf&3Mnf0L@7P(FtWv% zYOQM0W9feFcQbfw8f^Ge?3@bIB9cSVv*MmdilLGl6FIv7ocUDT%sH$-VD^&w0&%i5 zH(+fdK}d=%-1_f#b+JHBr7m*T)OxtclH(FIeV&oyD6!LIjg}i9OqUb&&FnV;(iWS8 z>S~o#qv5kDMy1k4`jWOq`j|FLP&OKEGYfbHGZKr6v24nZT02i~E-@`9rYv!aVG zqmR?8Yhox6tz$iwX=KP7$(m96q}i+U>gB@N@c`8LRz;{&jP*73KF#veSn6F$^cHLI zAa0P--6y3aM@i2lN1ylihzf#EOHqxSQGHRJ9l{(`p)w8+9S8jaUePe?G}YB7j_WcS zwo&3r1bnh?{G6XO{?8(q#6P}2j`GK%nIn*AwSMtFOKT2A1oEYA^@e)iN2E)~9qoLP z(ZID(rERr&@!!hqUNR&crd4&`r%J0;Z(S;v&Kw}PH6)JgtuxNCc#NFBV(DNrcC5%~ zq4plK-$H*Un?K%Uua^U`UfGwU3qUFlEXd zN|*agIx-ekUpmsxmnKZvD5gr0%{lL?u+R&-&FUQCh%sx(OF*MuGy|h`CQE_UL}Jp-{mSTG&KRYJkWp1&2Z(CP=i%71_G*@6W}oWBqX|S`3qy`QoEZpTzL2&^VOc*lwt|p-yFL zt;TAUR(L{E71$cwYVc|*b7D%DE$x*RE$)FAL0b4GV!;#*y=D=UcYbB|uvq)1@x~|c zDx_JZGJb-523gu0jS&}`Lof$>@I4E*V5ypv#5D3Cs1#kIX2B_jRy{yo)FUu-z7tiA z3^}mh-5v3ieFpNToSJC_yPssJ|J{)p?4@S53cRGIRp>}R*qH7X3ufOaZ~Ot-Su&Y0 z&56fT?l(|gf)|H_tejC2RfZ2%qAh8oKZX+W+0S9y6W*C{Vb6^GS|epioEjDGKRS2F zIJ$T1pAr)9N{c|FNyn40ZJFHOXe@|DFskN;$%U#MqM4DDQ3;QaX$SneCEZQX%pbFz zT7(c1G;iYgjk)%3;CsP_a|l5dYS6lSwt}Qm10Nqyz9eSmr`&Csy@;$ZWHD+oFD_oU z$;_BGW4F8!A{WPagdNQrWtq)N&{={R^Mzr?W(b&H5*MFqU|~$tTg!eMGM+MB%N}mj z4KUw^Z%A(~Ft;QoHebWSl%}_?ZjM@?GF^?%AEPrsI(=RiUnjZz&u0DqwaNDgJDxRN zmMxa}1LuSI6s=Egu<-mx{4=UtC>75O%p|64WwD=I`^xsc@;M|m8hLr+R4SuqK+C7x zgBsJP%kJe5(e)Qax@VpLccs_4?V8Gc>f`qQ8lC?5$ZPG&;bo!v28Wk zUwI+Ha^RwU%ynbOc=u<_(0gC@H*T&4^4(%@H@;m}$Hp*$tVJdimT~3Cg0}VjV%PlC zfl6zbw*Z7T*mmYTyYB9zTr6A9`qr6Mm*H}|{N}vL4F4#s`?l^gwc9~ibks&cUUYPa zfcGWlqC2bq7i-x&GVGg2_uvu?Rs%1mJ$U7Rwcm?OWs_FmpV{)8$$B$*%LZJWiC&S> zW;R?ZQ-WJsc<-bWx{PU_z4@`xTKLQ2;$4eRol&gWh7g?j9y%VgL!wg}4YRS$iDX{W zFAR{kbXU5L)|px3YAF3@M@%qq+y|NjDH5XnG$BEoFnm3j5gV1sC-t#4&{6gp$Nz%z z!Xr8waT4k0EEqpD%e7Jc=;w{;MpK$zsYQ6;+^}CcV#8I=&5WO3vMv(0T`ZIi$&@Ee z(Ze`Kum{h76LC@#-9Fh|foXwy9rvz#PcLMvtEOozyS0s>RRvmMHJUG#MS`wqnb*vc zdmq^b#>vUJyxwa$-; z)mzpYQ-;JEl6(j|=x-Ou&8#Ge-J^0KR z82WjB(pa==PahdY+ALGaF?O$(k`mgwUTYwgu&~ze>umV1wPn36DKCa(#A;`jDdV~6 z#Lr6twt)D^4+@=#J8U2%msXUWuMYW2-ly(IyZ)@Z@n%(=7`0yIrziY_cnelA(P*EE zT%Q`qsYP(R^4|4V)WO@1JMBEnE{f~_c zqDuI(!eE*(6IfbQv^r$>_hj zJ8JkhXuv*Brr9gAs&r@8H#jR*@APddS!qkt^ZFe-wW9Ji`NFA9u^Lq9#S6>cz$gM$ zY%k$$E22eGAZ+^f8kv{xCN%Flp!f5d>a*sixbESQQV_RKh*AZPhSXCNv)Yoy;dl+R z3x;(C4_7yZktCc_xdG9Wo5ULpD8^*<>G8b0C>migl*|95*;{NRZr_th$DN+r71`RG zsXgwJ3dLp4gbx%zrFqph5xG3k7RJ17s@w;Mx#s2*FZw;e6RBWxORj_3Njk558W8<5^u1Vrk$*JB?N+!L(SP{|e#G!}1vmX(gB;oZzjKanH@Fmq6AFATjO zJ~!@ZCk$?dZ9@e?pxxM3oXM>q-MEUKjI-_o_ zx`$=i4yfKvEw)W8!WaX|l65lk)R>ruFuoEaY}=)IGe53?`PzHyuWh*>0?FI#DP!g# z+taZu1JM<2kihtEo3{M`tm)n*2jS_swK@rh{DA)PO~Z^s+SCo-yh9I+XVh0Y`G@uU z`x|Lds!56rl7k@eULP+sos+tIx*T?0GuKRYOn^|^a3=jYPe&YhnC`4Actp2aO7gagvgu$$=K?_l_%vMZ%6&~<2A7p z%Z88tVVMe9tlGaJn!NO)&Z@uy0j_J8JnAlM-1EopVk7Nz`w2~M^$mfn(jNJS{5~i( zq1JITy5E4L4x;rt(Kz1DkT?u(EI@whtd(DUczW@9`VF^h%BgCa!%r%hwqOaLBmPad zC~TdLfFxL7X6NIrUo>5HrU!7R(ax{xkKL77$8rb=TnAUpV|dwT+)!oWiqE>+gjhtsLNT?~Bu z1l2L&|4iYnx0@08--N$;{(M&ghS64bv+*(JUbyWZ)}!}lWtSVQOSr|$p1kSP0{Q(w z?>-NE+wO67HNa;cHaPqo8dgW9oW+g={fE#$E^zob{}>Y3;sAsGS$FAsL<^kK+PY!` z(sJAC_j=yUvYzP#CBTc>=gc*<&EPvZ;y%+RoHyKQBx;;X$Ytp5Sl?_Jl5y?`&{evWtBDjSB{`^N0j<0@!U^D_tC1zc?rNq!9 z@Pi=+eF_?kFro%-WMcyitDuGAdFp!j8X@i85RB!G$MEVEa*a#O`{{BsDoX0UJvKe3c14@4v6tSJH>8WLM1PrUXaO1Bx%z#hda2 z8W>QchcnnT-3+i#GpQhA2)XxK%@xAAr`c+G)K1E4$5v6RR_7J9a5U0d zFE?K#y2WJAmi6ER8h{3;O~YjzOW?sf3ySs>M%?Ebx~beMJlrS9`WXg( zCO>h8e%Xa=h)0lD8Auy!YF0yr{m$t0T7Oi{aG52Bz^dKXXQPz z(M=XdAA`%0{wb;YXWI>OM|MYr)v#Yxr$C7z5RqxclA%i&uvqBN3Pa#Y+&zTdAY#Lw z)ci!7RxGK;m}4f+L=8cAGfg&leD*8#1x`@0yRWsq74b`T75_ z^bNq7JYUyOY}?t`wl}tI+qP}n+Sqoov2EMg*vXgQ|NW|F?o8jhb*sB)YNi_JoEC0^ zxX1zMYAbWuIqxteFMzQSxgO@8f?jXIZf~kgzRvQNlDIGO;ffYgpXRdS^i8+}au;**HS8y^FCzFi zT`A%oX`If}mYZ;nmo3uw_oGP4KeEwF_B)bZ)rYJX?bb2Bdtm+uk}%R3hV5Q`)tUp| zyCYPP-J&6If!P_xq%6*U=CCXnYJ{;%XL$~)C=2V>x|g7UEfbgK9ZnS)!-{oebeyUy zMYadS1EExu24cxEe1%aASTBQ{e>VbIc03rgP4}l5UNea{W#Bkwvb|N>yQVrW=j3<+ z4G3c8rlk(hret+y&p7VUO)?wn| zQ7CBB-mq={X)ppr|DA@-wlX>hv`}0Pg+KcA;lp?non6!%o(}mAMHLJb6|tQ}`|u4S zX~id(#Ko^5R(xiYnxFY;M5g{pE<}Sv$8nTz=jK`#x)Nex6v(W#83}o?-~UB0C=i*r`L@CMO>g^J3{`zo)e@aUThihF}>+0B#KM1p*DX z1pVy%ww>T7$ote6!6&Jb+qYhBhbqL>TrZZD1B)Lw^Hb%JMv4=*YLOE&fcqu`a$$C@ zu<Ju;|1EDor?Ss>t28nLgK1+p*na$*sVV-Fl?RoK<;CAKf&k(wDo z@N2qI8 zgBDdL6>;Ott^t&6QXi!yWF#h)fv^Y*gvk)xnAJ?cZ|1?~`(Rxjw3;-?i@On> zJ94Po0}}=1Slcrvdm`#?6!Jp@T#SV!_9%B(#0MY{NDY-=CenzgTc9kewi_}NXuF45 zq=V}*;^@m&B{I~lA0jA_H&@;;Cz56$8Tm+jt%;b}STWFBlcwP=q5d^gHpg68aUnR`1@=Q;xks4 zL_n2*gRcd;yR?3pi+*w4TZZ`=>yVXYn#JlE|3^@heR2{`zy4P;6K!U@+0gEF1*c8f zz$tG9L!%-ZxL-11+i9?VrT_ZMCEpG=wx`Q@N~=co-7sQ_2XE=qrFz4|)hm)4(ah&x zcq>C@Gm&t=8DwvgvX4GLU1TFnoQK8}`atA2Ylzi8f@jzzOlTb;%&kb$LCIU+mi}+v ze2@@Z-xz%DLLnVoB*0u91(1e7Ao*!xB62A=K}bBd(mgLhcQwR)^TjLQmBo3LHuvUx zxU^1_#k?AI!$h&`nu(tNEyUlqRFmZeZPzv0q(yKVHur`Td|eBgA3fldiOf^7 zAc{zL!f6t9Y%|EhV zvHC^f-?-XU{z?WdE6Ljd)KK;s*oZF-=~<{8@zJrfE?x9{%iQZ(xA!%>jB$Z2UZA>v zXKoK_W_6nOiDq)$z~aubVRCtIAh!iBy&Wg}PCdZ-N7*^l*~gjr_6g_Z)L!Mc{Jl1_OdOLs}m{w$`Cqe1O@It$s-Nh<2LUc>~Fr z+U4xsS016@ZyNCXEnpDx^5x?Yr@}?J=*wm#SmubeZutU4VJq#VQPxqxC3yv;si!@C z8qhQO@@<}RF!fcN&Oq3~2x3|nli#8*!|(~Qp#}l_8YEp++{%>9VfHuEE9PIb`u$RS z$Rnz56wqVZ=kVYJRkethbMVXQ;eC z`;U-%k%bwzAGGY-_k_I36)C(=3gzZcD{?vKYesU&jZ#v9pgO2pyn%F)jb8!;QSD#)2;)c61Hrf}B432FoSr6~gi_^XqmGy_y!NM5FFv<3 z6?|`pd1#*xll;`4=YtCsyT|ZwyaO(C_lWkLce_-xcpmm>r?EV3z|Lm)+CZJ$2sME1 zNT~*=#JfwHbQh-wlY;17XaY0h4hOSl^U#`i^L=>Z6E3F0-4tel6XJfdXOY&E z+_o6JV1@m)Om{O4;^JjP17hWjr!9~Z&nppYm-HP+8vd2lL-4o$sjeam>$#+%EeM%# zgU=r~69|dczNi??wz#b?=B!O&JOpRBPIxUp*(^v9O_N*!wop-rGG*DmMHERr5xBAW6GAxh&xS1KXevsDdc-CUr@o4}%#&*XV!O(UC#gBm=ePsXn9$m^ zI3e9J$*pX}nqc&tf}C=0y|o`tO(s#3_4NddM#W-amccZpr7AMMN=MZ&y{V4bg_jA5 zYBqajk}{hUdOH!WstpD_cfe5I>2iWJ$E6J&?h^(~SWdqoGuf7da0p4B*EP}n+vU_T zLyR&|1D-#l9KXM^2*p;Pp{3crgmTo8o>Wv$^!z~H->2laGl&bK3onA2q-X^DHd&?< zhkn_4ZKCG%vB4P=#R$_-f6*2mF7m3Y=vz2%!x6(3xSW6gs4(M=d z9Rio!9Uq-;__pP2%)uFxBvyCS#+M5*a>N1W8oHp#Jns_*%hODijx>!v|KjP&7@fk$ z8N(jJvCFzsMQvPYrx=-QO-|7ss|(4L9%?OmY&q#6h_GQ07uClDNHwgej8PsS(EUzd z=Evro=50mDA%g2x|0OW{wi%lhfUWhv=Svb_`Ma@BJB8lEn`W*EwqmQO=0jK$+USBz zSi)+EVAS#PIxdCB5Dm&kD53Fv>MLY)*S3sq6U-Sq-q{c?L_4aMvaHw|2aV3uts+vnG(vq{W~+9PEgjBL6o}1`7(vqR zq}HhMLU*6F>!VuuNSDa^n1Z;K9AMqgP4kQBv7}U3*tuvr`}Bk7^f>1pKL@6*4EJ&L z9YLs~?+cOMK;N^6ZKrxN-`f(1JFm4|)A7)ni)+t*iD1{EA{#%=mYAh%7` z4)WXD4aX^(?u9Ocz`J<*gJ%74FCU@Qh0_M&dfx8DjY}BRX_SVlteb?9hjsuGFCyOf zd?Dp|x7F#xyz1(`;iEE{oP0;@4z54>?%t($`P-`)bv{-{;-YL9DkiL~nx;-&gi?Y) z;)ylP@q;s6v|94^uv+39JQRvMo*U(|bXTgK zqMeOv;yf!sh3wdi4Lswe^|0Z3)+5SkKFeGEi$W1xYHBpaU`zLoAvFQq1x_wj961Bq zjjBRs5lZE=(=Yt++?khc6n`{a-ot)rpi+tU@VG*x+>`Lyt|pc?eka;EH&yDmOWiim zLn%YsqbfcOv4{7;-TThg5V`WAqDa8(S}dcTpj?+=@`KH3RG3#QyR%Al;M)Amsk7MR#SfGIQ3~wuj%h+kV95u z>g*%7VGmm)?fRHo9CVxp#vU{{1k-|iFV06R@>1WUPBn>lY*SaB@fBf8zj^XAIZF#Y z9Kq~Vto`O+?3#9KtZ2HN)d;oP)djyti_({gXH<#kcXe6RPCqYG@o9VBti*%gYzh!8 z!w{pa*+T1_lglMU$#be&jS}Vrv~a{mblT(!Wu9g$N)ZmyCMihudlPfx!@AIi`0 zPJ6P*EzW&A^BX<Atk~Z6e)l)HxhTjui zK;Lo9cr0*cIA{eyFG0!cwr#49_6P7#Ro@0tvH7PD9{Zma?qNstLK=?!IH<$AD z51f34LhGzG(%QFVq_+R6GBt}BbolQyN&J~I(^l({=*g0NCk$UtB%uvQE5XjcP3$A5 z_wrs4K|H^X-<3bRkveys4MOeLoFTglep%wsN6b*J zx6^0g{h_LEqor-7{~4m9?B!)2Esty1(q|k!VbHMQ$1^CJw$5{j zmZ$lrozH_bVQX&5<`D-YoT}TiqD@Tj*NZ*)fL?boj zzt(J(R$OYIw74FO>?W?F)K+e36JKXgl8L+$65WJqbz_Y_ilL(FE3iESSFWC;ajnNG zBVv*n2@;3HS%FAtTThQsb7MX`{f_JW=nsU$5V!{J^yhn0U1DKF9fJ4sB&S0~wQh0G z%I&U17m`bfe3=y2jHkl&r0fjtRf?oGg!>zVM-h(VfFQqRx&vfZ@KNh*w%VtsWy=J1Wfyeo{`j1iD1g3*RwfQG1YpeV`IVY=JIt zX4+DQjz#ler)opQ4=5}fdMro;YCg*R#k;)6>Bo zFekQMwz|7B{i1|tbsNq#$tT7FB}UK>QJW2V-pl8EJ#LjzhoI2BE!~3`jA1Tq$ zk!VmDjqG!ybUGxqrnSoql?a?`U-1FDI=tWbFGij@N^+gxBMbBb8^;4j26W^7*FTQO zxuDurpIz}9aNf0OGCX#P%c;5ojo6paRkrGI<*~wP3hC*R6qIadjY-=%!k6}ejz5dJ zcyrlPiCM0iTlK`eg1SPNQord8%=4r$-};b4$?8^d$xo}f7I&{Gft)`@@2J~UdYHmS z9{+K`QVGDK}#HQvsHu0D?@q`Q=r>Cxb&O4f@_cEJH%EUYm zV`+nQZQC)85y^s7;P^ZD;oo8JuX#_0^x`^_z06F4`oToW1kIM-wL$(#S`y}nI`?&V zNg{z2IXCUtfBqgr%Uh&*{R>s3au0qTwnuyZO8d>AT`J$7*TAWB>EJ8N9z{q zW{*bRE4JAxO^5;n?GScI&WVgfCs^1-BY1~%=NsMz!MR6&68s$v<>%<6Q_rZeDndUu zvJHijz$BY$r%fKk-enlSL$S?J`Xh2(b&>tBnxpEjQYyB=EdX=2dcy zXBp*tZ;%zWP{^7~BF_BE(#Gt4*am<>_Vfy(gVOQl1OzxR++$V-5@Kb8YR z%Gq^qhv|Hm$q_*L9Hw?#whK&GA1qV}Fcc|A+dW@>JQTeYB#2$> zA)Q%3Llvt-fIvg`zsVS0$isvyblJxu{I@xCcI=S6MUz@EnnQbCv&{+N#b*rqQP%kO zQ_fhB%jVYc@oKydn*>syY(km$UM&69P5-$M^C`E41W9|k6RjH~SOKz?dn5%^FsvRV z5uH7F3ly5e=Uk#7B!X7z1`g)>KX+N;mC>itF{80xIr{E8y34{MJvT@&3Bf6%cV><< zH~%JAH#-N@L3sTT+efaFvfn`vYPVH9IbGdYg@-IhG4zJ~Os;h=#X8&Xy$iRxNc>;z z%?f`fNp5=W?H6CK8fwCutiV9brro`wfh@=rv=T>B*2_2OO@>FDXbc)#beE1f!g|2% zf#o@pO+;mnISPUW7Y-N-$=dNpkx4;WHt8lJZBXrmV_w>#cnL*nJoiIdn%~%I3ra@4 z_Cz9lvL>H=lq8>Y$&6d+0G;RL{Vrns;5D0lE7bNoz)GeoT*Ycqz|T!Y*p`tKxUvG0 z%+~Z5==U$Uc-69eno_6!hPIr*=iN!nDwrP1Z&a|;uTk)Npi}0Epr>eV8vFYO9L0~h z+Rnm-@9YhVC0r+cOgsap=z`Chi#laMeUOEs6Iey1}21B0uJ;jw`w^jHnqT8K+#v zO1pRN^$wU7d!0Bm+jJLEnYm8$uGK9SAeg41=Iu>=DW)+eA^A((np*9J|04#`aD05b z%UK6xc(8Wzz{--e5JW-B!xGdEN`RDI4>JZFCEg3|pntUAdil_1U*A7B4|vp_sRqn$ zs}2LE0<46wPaqO@C$=;2WdRzWF0e?}zG+J&(wObE=t}xx8aea}9|}mKMkawNs7jf1 zDAbftRf-Nz%li|e6Pc8<17b95t@1hZz`76HN)|+<_d*7K37RQp8L%QV;71*#(~%-l z*e}JR|59jL*u+N^=%2{ZLAVb3vy!K2cY%z42h+FZ5cpg3h}u70MDH&+8C;9?II}8K zIWXf}#CLIJYPX_;c&`?la@e*7iQu^<5y<1fmS`%}S(rfVk2=erCTBSXsJCqzw5*@= z1d7|%_gkuk@RS0o($0|}O1Uj=Xpl;{RDR1PsmXWzu3_wRsf+At0vP#{3j_QW@b+|1 z(Y-Bf>G;EF6XVSqWiC%i$=)co5(3xMY%U`|eGDy6xw8u|eow?#m?Qfn|NVhNqpO!} zVil~s`YBW#*`Jk^CvhrBBUC$4$WzQQP8?e;&ZNCPViClcmkA<9UT8%>l9h#3tY{FBo7qVa7IEWA2aZk*$eT3egpb93XRYRKl9wO-uf3~(BkH=VgpQC zc1%?QcQ^%_#q7+2lc%-Ft43ZLwm`Ov#>Z}!zhnB+{QMYiuv6y^%dn+Rss!jS?!fEv+4x_w;Px*(@Ctg1X_~x=- zU~+CDzrg%7McrfKTmkx<;`K2lc)>QmLEmlI5wSz!K?|WxGwCy6r_Kun&;P9fRiZ7i zE&Kh-y%OY^xROL_Rcl=tW~vii=?7bk;EQ_3mCx;hGbOP6rl3^N$NYL(b*>DIr5rkmbxMTAo&V{-}*9C~#ejX}>r!U&v2wmoym?W$GhdHvgryHWs z`eye=@>QH25S<_H6u6Bn=Y!m>O=bTZCFcV9yjd0MQEBwOf7jP|Xlo|BhMrl+53F4# zSSnk-)+WA^(mo6gy)b5qD2qo1P?@;>qoQ6%`1itU3qZV#YTk`;mr6p)s%Mx2oOlyA zTx;>Xd#u^qx4w$q87XE38lG&_fmLGP+T8R46DTNH*#;)m6oFLJW3m z4^6?ftH*S4RzEp_!JPet1ixE$Zcb50B4)PaDPjHJ%q8LmdgFYVGNfM&!HR^@4<}xh z6K!1}`K&;AUYH>~$|MTjAy;BVwP+0+0q5=Pu;eT+&tsR;&YLC2ACX7{qfJc59sNC~ zI3@E?o~w#7C6i>q&hGn3^DCZ(?+#08!FG_q72T$8J&CbRl;v(u@9CiqEd1Ls#Pn~j zfV76ReBAgl$D$Qp5w^}J`XgdV@+`r#91;CNI@-5=dcf*j@2{_X@1(K6`b0*shvTsX z5H#l6E*V4S0H@fDW>W9F1U#ZVOw=C;s6C9CSpJmN<8Taa0APZE5xAKg(#k>7PY6i4K!kK883f{b%);rX1(Dx4_U)!~Nk%JoYITz-k zFM3%<$Ir?e+NXQ@ow*%O*e|z4tZ;>J(|{<59dSvi8bW=6>=DF4pP=-MwNQHLc;y^CqAeGr%$?W$BeI{ZYY}SM zIj4EH=v2=}_5*9;ZbvF(HJi^Oi8>L7S^dv=;K$TWs-_~O2V>%;Sr=2 z#0>iaqa&!WNW&u;lV5>I_kGmxNG5~9DlcGK{aU5pLc$+Z+ znjEj{Vl6GMrc+r=1yZ;WkmhqTgeRc9Z;1*N9`@_oFx*N_KcgdeOQEs|dxP5rmrsY5 z@Nw?U2mKdWJUfjvt&lyO2X}g99OPV43@3ETHvKam57A{|7E&odW0H;=b+S}xkIJCc zAMG1o1XnzGS}yB;ex~hwKAvW@tPRX);*yfM(Fo>W83T7muLo@#-l|h54kQ2%-QLFOQT z!2P;eUlPQ<79;k2@;dE9t}43FyA!!Aiatu&frX1w5@pzY`xYm70>LIRHfD)J(Zkf{ z7NRP{8L48=IEame5ZE8=h2Z6==teia@46f1)6C_Ps*faY;N7M?+(aX=V><@?FkRD< zJO^ZBs?2tit5cxb8PsLn99waZ-9pFDWZ8vbj66*UKi1Uc<@SRn$?T+a*dN~>E+Uk` zJih&4=rR5Q7^MAa8h}jxM=1F4!zjo`RUwVQR5cn!0~7wkC@4`?5lv4gK{F=J#xgoN z@pGLVtCFO(cVUV&i-tJ+_ekAeGzL2O^g!*v6w7`K!~~-qv!Ep9zb^B8{WCj)y$^K> z078E64p6V*x7oi1^2hw4veW+IUHwm&j9_S(?TL7AeqP2O*kYl_97_wFwMV4|YOIz& zQD(l_EN}i*xYJW(Ea+h>TGXj^)zY^uV`VGP0Bv)8$q|)h>J#I**bs+PhAwtlh3f8j zRMBB(>uF@0&aQ)Xh3&$IcZB;5|2{h(nLB|TtnxiY-vD>wyN*9(mpWJ|ovkaVtST6* z-~Ai@fHGZi&=0@(b%9V*Uxk+G>%<_l7dQzrcX%l;1WL0Y#ARXc7VImES%|r zo0IXLCnsiX1Ps3%`NfoBJ8oPV%-V}>2Ns>Ev2ZES8BFz=WBq2`o^_orikk0oaSeOW z6s<=IavWDoe>4@ryYQ7ECs^9Fon6fc^}eFWjXmRz^hvAoqHd*N(wSwq2S3pO*LSqq z{cW@lcJ1;4n2cLa++Q5*@@?bdCVdgzMtnPQt2fK3m0Qc-nuo21*)bM^|IiklWk_e$ zD%#gKVXxy=l!!v|9;;QPA}ZMqmf&1eX2OZ7b+?!!QR-`I(okHPb*N#0Y-j5`wPV6o!Bwe`U$?T}Wj75xDy28Cy#Fq*!arI5 z1uvRAuT~+qW7L9$VD3g}5wYXlq)8!JbLPX|G4SHhL=Va+46gp8H?m7M6HJ5Ac=ivb zV=ORc#F{Z98jU+&{KHH#S%ImL%zfLux!vgCb=Na=J3TFjEh}SA_Gu|9U2P#`PSqCO zmztza`EXZJuDq+`eRkc~%gl`0`__tGL^C_&ndcb7yuNnoC~QSEv&-|*g5j@PEjv5r zMo;Qm7Dr%{r(-A94&$r@C_Ol~9^aQc%y_lV7hBaY+8bQliqn2?Hun^%EfqEU8n-JZ zwG*ci+uLP5S$vZ{esp}NLP1A%$*Ankzfa#!Cn&`x{%4F6e8Z$xOu39>ZpPM83JF?^ z`q^Z>S=9v0OocXs)$f^Fu63jTc(V;=0x(^pF-wV#+;)WxKKBG^AEDn9)OuBQ64Z^jEUwm7vlDK!!25A3d;xtl%=Gwz;X)q zuLPttX15M-(d>qb%0?y8!(7Bgbpp%!nJsk}i40QQ_nnOzfcw4d`o`*T5SRTX8V}L7 zLcKepyHZ}o4Vhl>z^_j%RId;xK9@k_rML*+ztwG4H&0BOpmB$$YMq2;Sbw3Oq$mZ0e4 zct7IsBo+5A@)-A2M1O6kfYm7qqombcgpq8<;u(iaH-r-x?9kaGXS+{Y>h3B#&GY7O zQKGfzC#-T;jN5oI3%pDeB8V%;{}sSVElowNcLndU2oT-8@(-Pw(Ebf)HrXy@kkQx> z3j?mQ+kHImMV3)tL5?3~M~P^Y$w_$tR*KY2!V4>k#+5-5zOKLP3B^^92)!tvF+$_^ zwR0EYSBwyyER4Y+z~U!-?i5YofRbzDQdfP>Oe#Pid)3P_AvkquBCZ%pylJS5ed@FE z5j5F6&i*Kab(=H-7oK8M&v?93)*@rVRmW)VS{8CfN`<}0)5x%{6SVl&?njESR!2`< z;K!*#2VYmDl=l=h2m<4-rAAEL>(k7^fPum!^8&??$*mSjPn2S1)AVV?Nl25KqS9q| z-uiuEcMa8C-lj}B5C99Cx*NzaH*XRc3%R`Ww&n(|QT%#zDQJZ=3hHmdfzb$68C8#S z=I89%51sv|FEU%ZtA4I9tJANnl50}3)BtQtJ|C=g8vFbW9O)mmc3bQdmAgM(oCMCs z`P-^=oMvkxS&^Lq0^(B1_=RwF13Z&uw54*C=23k#y!g5Sx#%U8KBS9XaOB=IK(Hiry;35Sa38^YwN_bb^s$i!I?O?fn5THOI+NZ| z(_gi#bmPgnuf|O9Y2<%hd6}^EeK(xG)1u7@Dte#LsG}a{&UM<24RfQJKX^(4pJ<9& z9DNqyqhQyChQ2C+fIsEF1xtrnr*lwQu+VbSpvFDvJun-q%3qNx!=L($S9?6c(-6u{ z@rC#|vKJ*?AeD@b1fAyjS;?JX!!~oAD-yS}E;F9VKC9m74AIrdR!gTO*yo^yN&zvJ zpJpN|P*SiJls|C3W#%WgWJP^0KVn|TE4==G&AD^l ziWZtEHaZP@V#!H%ELxCPkwOxE0+EYOD#l3fP}Smv{g#;GxT7=jM?nL27MuV(&v_AlJX}T_< z63KnBhs%;w-NjEia5yPgj1}4^0;Tn%g*-Po@rLSX*hJ`$nYH7h4<0WNoxLFIau>}! zD$ZA?zu8q;V`_(6WX}Cz;)(YXMYYnHgADunjr8=&b&j;;*z2cLSpaNUZ&0KUnwtByc6SN7_qhk=q^EW8KUr|8{<~ZZ9A$64beZyFGjAw zos6Po36zuythsttmlTkaD6GsybE6gGjpQK3UdDtDqtDPqIf8fvs4S%giTa?;N!+9^ zHm>wR3{ghSfAmD9igm&%S1hxC)a}NbAjhUs;zX;yPrvbu8n~(ja<>S0oUrCkMpsOg zB;PKmDDUv76N~qabv7__o!hGG3g)zkTX?5jQ$vm-Y#dkbpbj@;l}eT5Pc?nm_Se48 z$^zJbUC-W$rai|51YbsFFuuQL1C{n-GhA^ZF7(y}b53rJ1^Sv$d`%np1jy)pARiq? zDTcjz-VuNk;)nh1($Ta&lR(b*Nlm(-*=s|{sz48u&Gc2c%f5<&NC(s<>@@{M^;|#d z1^K#++YUAM244m?QwXJX*Gem2npp#M!-+OhAQ=L|lh8m)dhkk32O0sS zsCPJCnP|A!wLCDb=rKf6z_^eGUsXJIW_s`{3i_3Vm#nl}Q!HMeSu_jZ1aphpEl4}? zWj@YqmiuJ0>>STvJTY4dT@4k&(~2R$s?s9TV6GBZVU2-;OM zwK4bf_u*Rxv$0WN&#Fu4uXvY|+A0RB@+g;M-B8ndi#@L*%4{>8UuJw~8XJXATXO{X z(qlDcpVp1ACg}$152van6@4I5>`COzjE}JY=cOc+` zs<^!iI7mhA7z&x&QPp!maBJ^=z0u2nwM3pjtleCd@iLU~=aPqI&B^)gXWdPc((?3$ z+`8PlrVQGuSfsKIp`kkGKNz`vXvSmKN2DcTvo$nukjZK1NT(Ts$Cw}yw|eYcReUO- zn7Kdf>rwGZ!++Q0>?Ac7!Sd-LGJBfhj3o{^<3M=gwk@U6Ri7yiO@?up-Meo488B<4 z{&9yA`;g&5=ES}zCmfn!^A-AIl($AO%`bQ#E?&<~+Wf=2!#YD@WjU2iMteB1$(wzz zh;2?agfKpq!>BI0j@X&}#OVG(wgi9<{*0SqVz;0J1rSBgVpwFlWfOt7h=@9H7F#r# z#7xcLeBLhOIx4y|4PK@*=w(_p4BvF;MJ;ug9TnI^#p=-O&5dZGJd$$on8ob7CDFpf z(4GJ2h%H5`=$7kpDIrv)Lm}u1Z29%2+zq4S%8kPAp8V*NaSA5gpHX$o$O^jf11vN8ghLcFyd+K9pnQmesZ}Jo6c2SeJ8nR4UWDX4|;sx?%GS7ls)w zVPg*@7;@*IGI)ag-mxq*x@uB&@e!rs&%WePyeFCakaLBh%QV z^ORN+>d~w?$b(t|iVm5HjJQqbsAL+)<09#`=tX}=JGrQ03{Td`hm9Yr(KXm8KGHm< zx!@xr8c7|$4(RccT&eXbvG=?!5p5->NJ)1P01+72hMdOh9S~+qKliS?Vz1_(J4ii) z_}8@;m`2ZkLcT!yP~TmdCYcVI9KE+v^E=V0Iv~Ggv~JgQ)zGUOIY87{<8rhk<_IRd zIwZ(#4$d?@u*%|h6Z$%AQr$+HpocE;6Ho))6g)((G(hq<@AjEf1rJJwR*}>)ubk=q zAKtk4&I+Hkq^gz?Q*6BhG)sxz%PHCP^N(CIEW+eV-K0KKtFfA`w?l=8nC0hgvDkCKhKr7-;g{vS!(K(X99^ce)M~_! zap$#Aq}^Mz_;GXbY!_z^+;c54aE1cUbfjgiqsU4n32F`PSC- z4@)5_7A7hckF`9sP957qQD)C0C${LM86jq!9`5$->BlmBSjqeQLK z)80Ok{GcX=tnv{5=Ti$`uXVUxrx(6jX?r=J)2sb_k`mHx8Y}ypN7?z$>5g8L*J|<3 zN=H{+eHN+LBISU6=b)&v{bZ%xRn}-+bcRm@8{{V)B26CW**76?iWYR zGK6x~JA#&p8~wC%04-vrSYR=~hyAB#+@+O-HHvs=D(z2@X~^|?OdiHf zgY(snE`3E_uDawl{UT6Z=f+sofoCPlj1;&}_3R2}k&1Odf9gqn3#jJBVivfjy|R

I_WbEH`sgXV@h<>t4Dh;Asxp}p;b#v1Xn3pSuF^g&2NKcqV$|XK-GlSs>j15 zN1E2rl(Orh>$XPasrc(k*?oogZWuU&dXyaN72RKZd{hgd*naB3f0Wsj*(+{FN)- z{Ln|2&OFc7;C(CLk9@WYCI^qtg!k&-k``O|p=j<#e(1=N0Od^^q=0gk26BL+1rjwt zvApMJJ;eQd5?CXfE*IBddGj3IU)g&X22h^-0`H$JwV46HP1WX!1rZn@I%oqFZxZHE z0w~kkm_Z1SklpBhsx(*&B;Fpw-K#;U1co&+iu02*%?==5qT2&TnBwUHBS7_dhX*KM zoY(;p_h32hf*?$(@P!b#Ha>&^FeN0gEfgIdrjNct3Q)n_;rlCNAL;>$=Lz|N;w6JV zaQ-Ws{Zutx?LNR0Ig;ty+l=;vP+X;=cr$cL3_id@dY zgcwn;2>pFtxEc1sh!)76w*7-`rjO2!3?n`l%SE{rpiT7gi5`!HSXAqL8cg}4WyaPD zi@<@9dt|tMTVoF-K&4{<_|N>*OUD58$LtXU%AG@`0E%bOM*kT<;CRVi6BNs}oSO6h zHG1a1=fV76^Ev-(F0jAy`O!~jo*(^mChVLmpqMH54J@5`Ol7MZ0PA~rn;aD$Ja#~d zfdr*g0P5sOdL5M~TCu$k7M}auNhY6-xeV>Q> z#vHL&gG!f}E(7?#*N<98%DSS>ufaV-xPr!CJUT@YU3aajJ9|=)EWz@ZHi-h20Lk&N z&f=BikQIunUq_{eSZTx!K-h!ji`$<9VR#25{7(G?ULZMa-wzOeC;kEQ;~nG&4!`@D zC5y+S7WSC@z!FHlIKTiX)Wm%Q!X14+pb5txZ*lx7R!01QgxmRiArOx|_WS^aJhV;Q z6x?`g`ZMIuT9>ah7D>DWAQ#dF%re1>H;Lg zk{0^LDExW|4fcA%uTMb2JT$0e3D^=&2|5KYzx_p@7F;nKYGVY9!Nm&C<2#{01rSBT z!ITc^Dy{)qJ0?rd&b7=Rxf?W0)v|0nWC<01|D`PFsZ#Be^%SDJt&>j|9>@9lld}i^ z^0I>zdTK@rpWGE!#v|(fmBcBfH&BI5+(Sg`qQHv0T6!X56i|oiXVVzp&3%TQKG<`u z!c51~VCVc_FP5AS2 zfFF2D^FbmrSV#PYR+zqLdtj3kwmS0{FnF2T%VvQebwm%_%7g}zsbYf1=T-%&J2{6H z$;l1SRF|%lb=2d@v66aARqag3YMK9+C zEuV0{bo-k2RyP-s6&BK3EoZCMY=_hsssp9kbVu-un$q!dg6|KJbf}nOD2T4727Zs| z9o&iXQPh+A1bcQ+%5ywMPG_fXab^CwNmPkVE>Fw}6tLF|k$mGpqFL>dzo&(pwo{ST zdJgPnF_4&t-!XNOj^40D+dT%@!jg2b7iOVs*YJu@m2ukb!8{7Nhh=vA0soBQ z?95jF3mx5L6Jheu`rVh6BMy_1#XjBdjP9G7a+gYg-{4b5Ci7cMbu-MFAW!6qfaoSO zjHk`Y_OswR^ThAXAgDi>H+;pVVJ^4q(k5NBK+n2y7G{7*8&wuhS%R5fcArc(%L~S@ z9+tf|=pV)J9BJWm+P_O=lk0Uac}seQS|?`%igt$OX{%=`sjjI%hpTJHyM98w;VS-% zWzA}CjAd1u-}#)ngWp3}{r(q)r_s>oSi^ASyOOC4+I!N)6st|l)l4({@+EvV`^sjX zfn7~IfA6}wQZ|TPc{@MawmS1VM9m~C^@`0;@o83Yp#|QBd=tmY)k{8xwKM4a$NWA0 zG0f9bta&yYl5Y9!<;S~qZcZu}+<4hnwk4JxOJB~eI7`hse!Lv$^V+P9SAr0K%5f^6 z%qoA(NkLYn>q(AQxu$M2fBmLySdR;zsB5g$LH_a;f|2c&+*z2 zhUL^)B(^10_-1=4kZ8;oxn^7M-*BrupQx>Egu4VmOgm-n{75L*llhLtNL81xPu=YGM~ zDEigY^_5D#Vf~s7F|3~uj-Ym10*jvzvt9I#nWw9=ydazlcw%_;@n~**QM}9K>RO&~ z9(BrEoA(cchkilM#+$$}BuJ;D->?JP9*7}z^4AB5uH(yU_=7}~DG+mzMkbW_1~t6V z;^|fhM#$*vL1n@1uKn$Hq)Y}iy?NYg7wnB>T0Wd?hE;yut^5rTEbRJl^83uk08&9C zpm-ye76bJ zi3oBJR{aj=hb4GrES{{a`ZrH#?no?)U;RV0q|(und0(D#?1D(wMd%xSb=~zfByZ=q zBPSW_`Diy8M35wr9d%;={x&G8OK#CpLohOOxplMMvSuePg!KMtq-~h0iYIVdJy6z% zSnlJlO>+Asi`n4U2nD;=n}Zk{jKT_p7{2ItL_=NOAjO z%)4*QZ?w{uB$BWxh_@vPW+Mr|7-c%*U{~O94+|M3OXxinLJUT6*l;wl9v*;|^uHTA zKs!myP&}#8A3(7jHaAFo6mw#Ubvj5qrv*(Y4VD*_K+XSS>mS1`X@a$3v~AnAZM&zZ zZDYEpZQHhOPTRI^+vc==);#-f~-h1X$gQM0K{68^JE|-*Rn{A-cJM1wfj!tl*v+g|%p%VO8UZ8ZB!yeGl zR{(vk3zEpZ#uJjLW?Cwxeh(2S!6lv$=y2;_l@Dm4lA=07;KRcxV`|)M{)trI==R4R zpu?AcWdY#0M(uB0p^~jPQ-Hz?eIVoYs&7!D1%Ve@zn|~Bwm>XbOyA&fuBK!%vWL7t z(!4+6G+CY?fu!FJ02j;0esjqwh)=+YDgPPc1B!D39{@BO6NpT=j|tGa-eY`DEp$4t zxPyPq4+D~FPxJ+g`}|kX0Ev5OC5DK*|5tDWAv((+l?QTnmZ(pHrv*wN*s28npB9h- zk!`&e0XaDQpQ9R;2M1OVSJj5gA~fe|fKpW6N_=K|`ZdjrRrt3M$A6RH6q64Cvi5T=kE;D=;w zx(Zp*lSF?46G4)_3iduBt^eL;#vdGzqB8m(1xzt&&AzS^npmqeN2 z?2G%nmt`{k_Cke&t`I%Em(`(o^g>OP7Tg&OB5?19mKHZDkF?--+%=RK4^*0TOi6+) zc54iTEXE5gj8i%XDsIwv1uKVJ>ktVb%o~UIA(x=RWkSh*laST zt&u}G0z%dyD9arcj{Dlhq%g!U3)yt`4W&|~i$v;m$dCntiQiwS;nqgv4W%^v6YrE6 z5+ib1(w#n%p!rb*#g!D(BlwtfpgmdS3Dx^^_|}D29e;a)cvU*r^QCQM)6MX$XPuHN z40cmEgok>AB}zRa>yXu1jfkUcA;7J<@-i9kT=mA)@`$QF3QF{L}T3qx9#E~akoL4z%SSb90s_r!IuwR@1{4Zsh(-l^6pHISDXX0Jwf_s1K;5Ig!oL*L znQ3=qH2U4sh?`+cO~$Q`^TUFc5`$&o`Lg#Jztg z{Q;?;RCUP?Xz$r;?*QKmtPol1Jo9e;pIj?>Xsr7-U(nvW{}^yY2?EcsKtJC$eSr+- zPkg}rq;uclfhfGMdw`hE9D6`}i)H|tZ>Av$nxnpf#O6;tI7-#QAF+KT5eN50A@}q+ zE_U7McRb|W>Chrbo`5kK?wHWV$&~UH7!ova4oJdJY2emoVhu(G+F?Zd&ylcok68Yk z(j-bts;AGA&Z&~2C;wq6e;hT`B9MVz_-kO1mLkauwXn`N-YBp}Xcr#3ohe<^$%!e= z#Y~a#!1a^j3O{X@bQ>5jocz{Z00XEQRSPmOwh14tZbk@z8#_z5isd0mcpVz1bX2jy zs1F^u=#vdpNYE1Te1m=ZqDI76Q5QJ?JZ%yHc+QGdk_0k$8si!fkjn3%1Xp>2wH`XJ z#=gDe1Rk~&@qf2<$o2-)q~;Hp(i>e3L}J|_2~?|&0IoDVI)S40Gu^#GV%1QqRv$#TNdpIyxOv8Mk4IS34oG z3Q_!WB2|XZ%KIk?`!v8Z1ia`IJWj|ZE*l&)t(`;KfbqOs05m_#q%dF{oflZNUt+t{ z4YB?;C^!9CNhqK|@F`m*`jL`1V44^_J+M^jYLcRte72d%Fi+>SAgdRS(U95tLYt}D zGhf*?f6S-uaI?@aI}b<^b4f@MN4S0*(2h5K^*ld;VK1C59{j21utvgA)?jA2HI5e9 zO7tu8ZN0t83X^e}k(uks3M^Gh5Vx;s8zXIBPwxuUSFl!1UM@}cC@RdpL3i(%M&pX`bKoO>KncKhTbYe$zHV+}HvyXV%N{n;Xt0!VC(%_x-+5@)hKko1BE3>(n(%lp%sw0Ng;G~}UG<-q?7(*1ZAstDo`G@` zy*8wGRy5SKrTPqq5bCQMiR2}AgRxSvM2_;UpZfL7%#!_h9HwmhZKy@|aKJ5H?4e{I zG$kG!W%e@Sec@=b_0p!Y#Pt;3c0=>Q4;16dB~k2I;gn)u&Be_(H)fV690wD}r8`xK zGFoTnU2`t+(6DxdSuSDGz}Y*%8Ok_(mixS5bTThO{qen6*%0Q*NjfHYjl7eY8 z2mG3-PuS85g@Wy%OkDLVt2@QN5U^nK;%Cy`qz3PD#PL8K3<%uV;*)`L3`j%3Kqa?6 zsDxN9M1fK4nMZ(VZeku?>Z)%sRo)B<*61ToLIY zjDl%|6l(&kJy zAtj0fw@MLRukz`o63c%RRp8VNt~Z%|WM~cNltdLXJ_UPJ{Epu~uHaaVp($%Ve7p+V zfnuJgYbhWLYC4)&2@eZ7|Ap&=8MveR!70N)2Dg-Wo^P(HuGMuu&Qav6*1Q!Dk5?A} zuO9dn3xiO9bYSBt_#4FXD;^}o{Q-59?}yf(*0M6UEo}Z+{8@A-) znVl)HLINDI;53F(<}e)QAO*shMM`;})$jxk?pCnOu)l9%^9Hh@az*S;BZ&u$My=>7 zRfHK*ZRNw%BebaHmz6dFjDThBhw2)7!j*H27ulPa^uY)(UNO>3SN1=H4lhX0WYm2aH)CR@1j^K;; zYZN&QUkZMaDB@^(+82GA6uPwxdJ3|$FYcADtjJ>Jti5P?hRx% zk2`41uA%j@Z?Jkz>RVz9zy6$keHWeeKx7B9%8;xpvi`Y#g2Pz5jbR~}TYYEtBeXU% zYsm?3FrVixoO-V)(M7d5m9U<~*u?2`dL@&zhBC#6eqVLn&Q@OGC~Bcwe5}Mny&HnO zMa{?6NXsriteTxONi+eczIiad~#I0MZsfO!4RE znEnnHR{$$;Li?8UjeUgjB|H%l)KB1pi-nO?M8d)myNf`5{pwKPZr?SWimsc>nBQ(H z&%d#}qX^JI>9+SgefK@7GAwzR-Tq(Z=f5{Hof_^V4>)d|?F+2T|9`t3JSvCR9JMxS-_sqXT-KvaX z@<9D*(9M#zq<;UH+2%aU3D*d0;U|LDNkl4icoZ9}f#zdtf@B2LdMs~@XWm{lF%l*) zx5lo~CGL5@FBbGXFy!JwwMr*(2-DPcbp65LnpTlUS_blsR7qo)hDmiTlOB&+JdX@7mk$wC0BaeB;w zHcr={@4Xl81?PYL|RAOIJ(*Nu1?J~j@KG5PdQNWy*=xE3d$Tm&1~>j z{@~Y}Su9GBF2ctWadegLF5}b9KAP$EkNOCY@8hjj%lhmGP(;U|6R|dS1tOnL(L7MY`@rH_sI zg#U$-RT~(@pMr@N)O>SBjB$mZ^2Ob+POOki|BkJ`B!8LV1JWV^EWK6K6KSiTi-L7o zR3*^U0seJ9P4cc4e? zM23v?qWZJpn$Kcc{HXGxWR}7uGL|923YKpAi`ItzqYJo?<=r~ysZW$wM^ml7sK#-g zks#3*N3)x^-pkkcl~ee&_c8ogRs};lX*0O4iJ!G~OAJ<{4d;4@*+$|Jx5ro1tiyC< z_$pno^=6yGzbzai^oIi#EkqewO)+|;OBc?ujp=3r*dNV+2>Fk(IO8JfPAki}zw%-W zMc;55RPB`F8XJe&OdsICmZA+p-XF3mqgs?{bLXz*g`c#ZGTB zHVO=w-mNtx3urZ7V>A@YZ*c$kBnTeQWubo=&%oU9H1tPikP5$0WufaW&LIW1oGf{H z>P`Lclk4%4m#N;=|2{nfh_-rD|NDe^vh-o62go}0|9k40u6SK>XaDA@Io1a-E;=)O z@n!GTr*6mccIWt}Wp~*)fn9AtzBa)M+MqX&$?fW69Z|WaWP7tS{RBDv&1^teS3p*{ z{|~`Q9ayg$E>8c2O|Z>2=od%Suwx1)NBXe-gH13wM^w8LirpDmqKwSm$);Tw{{N%$ zPhD6C+Ql*%j#nad$z2W%VCOjrBK!ib>FHfIUQkyTh_6eyf;H^TjYhX*) zF8a-%+W+6;^`&!Pb{9iy!wR_TQ~U0;9_HrSMS!5E?yYGJ>=%HU+r{t#VER6_BTeaH z7OY)}uzBi+0Tj($IuiqQZUQb_06MJ!Iy3*L$l2GP=hxfg##_%g)5V1xjwRIm^4rr} zTOWzsuGYoC|J$&GOMGRj%>PExuF2I)kZII*fG-#H+aiq%9(a9&;IE*7kJl@~`YO@{g;Li zQsvd8UzI)gc24D74A3n#P_9gB4+lVP^J&370Z?X#`Xn4NjJp%)=lLt6nA__L^r}wA z8PdA-1^M;lzx!CoVTu04mv$5@X0Sg^KhQbeDh@3z{)$Rd2%1MFw6aJO z461$|O!(sA=M7#R-q%E86XpGGlc*+FDmbf}pl%>3O~Vwcr@iwJgZe{XR8Ljrj^AMo z-mwT>0A{F%Q2as@Yor%@L8Y~XmRMhm=ICIos53k#<(CsgE?v4XjB*)6zDg)_D;r}_ z7DxD7D(DBfoN;=G?%!t$VZ7@iV5ttJyJX&o#Y{#?njp4D6~D5rsQEO3dX1H_)P6$O z0LQj~nxa|;>EvNma_0U~@y+#};dt6$Temd|UvTqk>7(L6tVyBTyC~z_X}5ZDPGOEQ z4CloR<47BQs|5OX&N}JlGTZdTu5n`-3)Rfv++noq80t+zWjD4GJH-kV0#FKMSILB2 z2@G^jO_c+{pQSvgVDFZjMXF0yj3SU|DuKu6!`pXL@d?#+Mc;%bBpOUK!a+oAg)#;b#_!s_v%U^`n#Lt`eVH$UVT9(>Rd7yE{+4wE=gW19rSMwUrncdFVdW>#%eO_&w9 zY=UpGWjVJ~9Bj{pe8bbwN{e~CZ=r&dgBtjSdWA6lEKrjBC`FV2*$4%GWSZI1OA<9X zjMF_Xs{zH;YC6btf3m)~Fyay8xIpV#?z%#S0F`JdlMp5n$|nO);dL~cEx4-6o#oF5 zgxX$o`hu?k_s^KG4q?VevPNlolyJX3Xy&fCRBNra~qM zyr80AT5H&41**M>54sx0fXO#tyG5smBJD&7FHfyqFzLc@>JJn#GW*ht68UPMn}hL5 zGT0RkZo;B6;DoSsc4;jHYlXmIYnyk^+De&Y|GIR|sk3 zJ^3<(r4aW?@0(uEa0JDW4I#cw7IPGh_s-v@YEhyfPjNHFTN;|XLoZ5n!s;IQRAznx z-QshY$=B`Ga#$`8h0ia{`P`maQ_49OZJdQv#8B#FG?n6I(3j#d3>R(e#mO{0#!bw& zb~vF=w^>OEyJFzWm1sNjDch^M3+YKxOmP&K6FnRU#DQohx9Eb;pqjF8y^!+8!$hr;)_Qa(7=rBOu0*~}8BPHuT;;-e}0*8HO(0Fm}BLSFrR*;l> znD8|C-{v4z;!DKAc`}`wKO!-)yF=|{ll;-=D&wD`tJ)+|LSO^;C$eevq zOq+et_Yon@L&d?Dq)R_+=8jJ8&63DMrtVw+lPQ<9fW3U|nn|huc-*!kraauQ#CVd8 zUH2-Z^HF$kM&QA&XFoM^Hh@0JP*OXf(_7DmnO6r*OgF{#%ce|wuBq5cn#&Wie$fAm z=`!xJqwhzn+iaAIR3_FVxF)ei-o;#JkZ~3Em_MyHD>7rL<}TaN-)`42$KOV*;Z_BR z41$ysYdM{#V+|n2A!IZmXZW+u3v~rRScHVJw27Qv3PE_-9-(ZsFx{4*tzTZOdQyGwY|-13_6>@)kx_!U*{T0-QE7PWCS>2< zwS|m&f=BwGrGGpFUq^kkzpb9>yqT7R33)ePn!aZ-vB4bD@B>C+VTz`@XW*v4=I#;Fi#iL~H-%*v*o%`R(^mU~@JwA0Xvd7o5AtQh zjf6JTyjwQW-uuB-Be-*0QK=jjLFWhfinQSuBZU<&&smV8u=;tG9i=6$P@54HI8Gd{ z$g3D+h}3)(lUN+g%2(csMQ3~;)XZqTY^WHA_%(O? z9DdY$r0C6MTp&p!?LIs%iAgc=o~g$pLGWHn;TgHffejjBS3UU-sc5{<$e9R-&`mge z7DRnqyWO0?X)$)ijDL^#%<0PdqdpS8;?(D+Y{@aA z(jNKuIpNJ7`HMN>f*$#|QzFi_wPbT@7h=_tVs>;AaZuexG$0;^_wCNtR44|zg*pZV zY(1A#{9iYabzH0Ykt%!S%+uof=KS?FU|;HcwAQfQ3CpK6{;{j7{REiK$-Uzg0--V( zP77z0QIUy6?AqP7#xHTp*C?l9m|yhRtp`15m?XdhbB z@~v!ItdeI;iseU?KYnGd2@o&Zb4Cr{{Pn*Z&Kc#yo1JDlpcg0vKHrFZM0J*lyM4%B z=VIq3fg$UN(7pfBViOZKAnOworjqf5his`?E^^?HEYFc*q3BnQn;Rvj7s87fUIamisRhERMW*s7MZz=5np_BWogJ+5LRnqZd>Tb)|&VEGv(Xq z4$g*1gxG(KLRb?{*v}5Ng*4M(ORNk#TuP%3Tr*vNcDU#Jqqg0m4uoo^`u z1Q5PWawRSoLcT8+&3UeaTx+;-evbz+O&PUADafW z+J1rfE4|IE_{+a*>nt-RCX$>iVVJ(_f3rQptxT<7r(-IWcuH(rW{5!ELMu~vz>Z(d zwE4S(#}TXmxQQoiRjlWt+gfXGdh~N(;t5^J?W7pC9q4CI}F+bi%KP^8nJ{6Cc zTwJz_+rPyD=?+NYkyhwdkVsbNeYUL^gG_W z^(A!{DvX+fqkza}HUm0up%@v;G+4$%115=9ULE|1-kj;x_%p;FnPLrn;#szZ6L`Wc`MZ_~Sv=oZeXXKcY$z1Ro9{GbV=)WXm zbXt4aEut=inbaZm>`#v9=oyvfR+%}oSLYH6EtU$7YGX(TN+>4`e~Av)kV~6NDiWcD zVk6sriO7)@#HW!HQ{kk@smYKXX${9Kf#KT~6-nwYpRDF!X@cVf-vluobVbov+L?t8 zRbDC~U{)`}jBJ%Ku@w|jlfsv8BZxw9+{v~-NP{^9d)_WafTVq}STWOApi!47q)U;b zLht^F_!;Kery(qg0;%qRpc0;vgo<9kcu?0pY6L%yO;Uw7QP23-I5FIKv-dh4eQf%g zX084&uG(ly3bltx36}Pb>oDl7YBYeah~L-W7UO=J zmb)fl^Cx~$)cWM?`llr}kJ zXLn~wg(`VCXZ1;n^e68G;MH{5b5Bpp&p#*XN9J7V31)F*PMXRmQ>lD4;{_d(9W@nu zp-a%foP|qP3VNRr_-3&l^J%k+U<&%>?D}cyD3~tYTr39Am!KK7iKL4XzR;%9Iu-Wg zgL*(b2pF+MsglT4reIZ#i}fdDnq1YTjUGE!p@Q9;&OPH)_<#|B_)YwD<4A`QT?P>@ z*4Osdm~DrjFo>bKa0dF8>AHn8Qg^6sU#T_IkxW^k6g`MGv5;`MC*rfl*o{~kF&FC2 z+Slfoh=?xsL2~gRk~(ySaKcpE(&Z<75{2aguzEN!iVBX2+7>ZudsgV@>h|%YBV|2A z{F?fZ&QwFi_jfMTfrcb;nW7@@;m_3+<7a^K7(d4lB>l7agMhv%;KB%&{J_{1KfuTDOsd{*L= zo@^SuCN8O7v%_pbcR2$qrP1><#+QRIpF*UDt6^NgqhlhWL#buzU7tNyhS)a8Wpwl# zt-wiOvna)=el2v)GWxziA0g-ZiTKv+)PkQGqmCd9RV>6C&sA8oc~g7=OQ|WRb!^33 z_x$)ZLASrkV(Ze;?+Iczp8Pa^x<0zoBQM_j_>72o(qsD-OStI?;+-G^`BlS+v{alF9fVF6RodhpAtlWhXVDx z4v<#bEHD;*i7e%e2z}sOWImM7R|Ev`BJZZ&V>klZBQtngww^_~$ES=LXF}>qK2O|`2)e<2IM~}|&KS!|e>{%hT?KoQ z`fzm+_5_m-f z!ZJ6&!dVcV?IKJjj$C497KQ)rl}Jap3h|WqDeEb9Gitqs06+6kG@+Y7FFwX#ogT1q zW&qx~FEb58DdNjH zHNTgdh!LdQB5ZR(-wy7qNzMR^vz$PpWbRX3+Q20{aVJKL^V(%|JH5??kWxe&{1k}* zkhHf)!_ZdS;VA@Y4>g!LC;e@>brd5lMC$9|1cH5WaIF#KI(zQPeqtAP zmRIc{{~5ro966XLmlp>cwu9I9@9NIB-(LEq%q}NK(MCodGi$z+fSQ51K{U8m+N9mx z$8KQs$ASCBxFGAd)d$mi+rKm!^DIsXIYDmq>&XaP;^g%X4{W0T;^^aYbjO3ypn`R% z`s0^^WwM#Xqt#{%`BBP=*L{nmCU!%cYePHvxc@;juHW@%MVKg!8*Y`!eTIn09tXFl zk&T@E;ecd$ncta@m_mjzv>X#+M1{a|rUIKDb!-UaHIws2gxKcFEw)Bb_M0kl613Qm zxfb(BPuy8(fWI0wAH?MG;4hwvMLK>$P>YmJ*(W8C5`=OknzKwi?ySn+LtXoozvEX> z2a{FQXAh;|aQoo;JRsB*X)8FDG~Kf`UaKkzej7Mjm^@M?C(}#UY)|)=>(+3v)>>S} z_`9;!wl~$k{en=ta=x9x)@WMkE5)uXTN^*G!PW?_s{G3FPhJ>5|AecouBsH6>>al> zd9;U6bD^z}SJDhlINv?_uMQ(XTTP(8slk#SWbS{*o~hpQE`%@AEHQJ z_U1p?@BiVa`Kx;3TZKtMW8@#@&g~gNbhxS5-Tl1&5WXHHm1A=-W}c+sFG?3PBZs6A z{OFaQELcfEpIS2?e?2O=`!P3Vq|D1x^m3xG1^%V!E%Qa((@qzKA$6EqqCycK^x_L! z=+%A81&y2;+xeIg3&uJrx!qn?StQ*bL5edZL{kDGGg1#jJgDr_(hS{)Ty#PS=097s zDQhNTXLZ>OElk8l>S~!CXPE(yhudLIgEX3!ubew|ijtsYT9GvayElVIX_b}!b=Jus^K{xRYL z=zF<8?4T7-ud!QjmFp*hvv7rqSB`P-061oZ0lonME%rZ9o&fBNUGx9II{7E$Je&Rx zAgBKz?fM6wud9ld>2B??45n>0S7NerJnPJ;vKjo^@aEwdCdMJ8f#iIf+&6A1H z1h73_BI*sHy{LDQ`p?v3#lN5P_V}N{=e_3B;f;b#D-FC5QbF957Rmk!_z%4bc!>QY zP_Ng`Rc}WkCPT3-FoAGtGC3MKlP^_fg)|QAG{K%7Sh6cvX|p|9%{+8ZbLCk?%+i+< zy4l4mc}*>!arYNtZ^ zsw|Ro^zW#>EmaGE9Uh;yskqe~%QO6#_EzftmcqEd=`Ek!NVym^1yThv}Q8?ae0AMdftQE2>T zHtz=K=!?R)-o*-L708H%a|=sd`0z}>(V_VBTiN5=Vz2nyLA z9=5^tP!1aICYj4`f!^H+*+vT|H4-|J9F+P?3o-EaOC5stBt*{{qmj>tDk>h=BCyt@ zOm-Y8lZ2Oyd@Vr2rgR21&(2MKgm8Ju9pBPytVUQRHsmy>gJ=2#?a?s z+0{n{Yf&^*Yc}>&!Alu~%0=DAo6-a_z(PQ+wCkW}8Li@t+EeaFimyJ2hj{t@DcRn~ zd%)=?-Hr8XW$osYwj!l`y|Z@(4a>Xx1=ITsL1U?uthJbEl4n%Q>4%S48Ic`D*tR1&6VxW}{}t09l(8?kq5rIlFrxtvxLF!u8hC zSy*u8=KSQmKe2tnhoOw2W(#D-bR;H6YM}`dHdM|n?s-_EJ!^&~u3UTc@9gd$dou-0 zD-2uw3~^nz-6;Y$j3|cM!*T3I@%cH82|SC;5&d7zpcgphM@Dp*yIP?yCR_!aW?qhK zNVqEYQ>>Y8dSBr;-v8dTFWhqt$l3F!_B(d2=s9*yV6Pu7(>KTn!#bZEdd=P5g!pC?s@v~2qHbYK0*JL(?0*r*2ENA|$~MNn<3 zu)16fdC@2E-c&Qwol>eoA9G?RMLyz4zrkFQiR_K06Rrs(zhy_Y@tdwv8~Y;Lm@bdP zz{(i8W!~e>!Cpo2`i|PB^li1B=q)h|y(N2G^Lh=PlN)<>m;L+@liTl2nB5PhBhYvF zxtvmX6qCnOd}kvEpI{_Jvj>9ggaKxfl%3!r+7RRBwrfxNOf6(cJhyzVHSd0%-HzFh z_q*OX&c731Q{*v4&w5mxWuvh~QLUxqk(IxQUwc<^K@@6o<%1X^$<8aGuhwy9MB}9t zcA6Lpa&yJ;#F!MPfs;QuQ}`~tB8=QyqKMki&pYJrBHABCiXy&mTHz-h*%8|Z%I1(barZJN5JRBIEOS< z(kTWLNG{gcbcUAL@Qo?F@%ZKN+NR>Jj)F-~Nj8of^}ep#3hkNs?TvC@S4C%bTkf7x z0p<>G85C@ydM(pm#C<%MPE`X^Zk~(vJH`Si95~lPg>{@6kkAL87h})`JCzd>Uw3)$ z*o{@r=Qe_^#EtJ9L6Fdyt<~O~_V{G0$(H&Z4so>^_v^0gCqfGB1Oq?h@{SDGkg#+s z`+I1?=r}+Z*U<%`wB{_;X?d)wxWTH=#9hKVvP)W6YuEnrABuYl+#zKaA>L)$c5YGl z+_-E|!SZ~CMyD!LmkV~`WLhFLwv8afWV{8?`857u_4^xZ`rTgpIU+Spv}6xKZhd9E zffALtvck2-dKknjCpRliw~c8iYI+B!#^;uj*@F|(NVY_vE!cf8I|<@&wlJC61a2L> zvh=jtpUjJ=(I(GIrD(}`L?$2JJ{go_to5bqI)T{4Q7DMn5Mw6{8CEHJq054Ww}rYVAn`97S5GdQ;FX}E~h zb$F*k>iq;NA{#W@Omz1wOUxsJ#nXv1s#cLNKm8|2yHIL(98ovcqK>8K2UDV@bBLUO zN3{q$;o?l93{B104w#}jhiUg_5K2|ePb{E+)U@B{StzC-+#j#^xezfwtkK5t zV%^h;Wwhu&YZoN^zgT;#$y3m=_NKPpijf#@85jPxJh6I1C82gj?4So=OvI}3x@G&T zRIHu()u!^!Jvu0rlH*-yoIQBV~i}ivfIP4W)Y|VG|qKzn*Qc z02OBH@hePE!sp8v*TY@0J0htrL85za{f}H5++9MZjvYc~R0h`6gCM^z(mksD!@t9<+ zQ!h9j3o5v6!9@dINhbNk1R%^`kXNLRx~O5!)cF=@e0PUNLeLl>YkgtkGyJZN3MEWC;TAGw72*mM*(8*C^XMJDF^p(o+(WU@ z$;-P!nm%6A{(BQD(^!()s^%Q&HcQ%M!QJE`V}Ut5;M?>^7f!xPLV3a`QgyxtmIooX5Gg6{9P}R(QU%ZmsEs9F@MvK4 zPa$3i=qWW14{Q#LLLvcP@2gFdYF_EWt))SD#+^p7Jjpnz+vQr6yv7&4GgC(`gL;x^ zFEJ?TkVl#B1~4$UjO~Huj^rCSRwHMd0<5r`@VDvsm>SR>1!XVf{uxbC7k*OKTJiY5 zj2mdJnsZD4_31!)-FTg@)C||Ny6GzE6cTean(XAS!c{@Z&u#^WITO|Lcg#*C z?q+GftjP4%^eXV$#MNHocU(5w*zDt}m1pny?Ayh_{pLdgWm| znAd?Dt8RE($@m1aB`aTSx zIG_v&)#|C$dyTrW9!+!`O^@NaIN2C`*YSER3v^m_cYrat(;*eqwDucqUf$Hx@aapCfcCl<9IWwOH?`l?E)Fk) zi!K6Ew_?qd4J}hFC(+(u4b04~T!`| zbn6Gn>k*OrXRSZe1?X$jl_hBMI1LuEmvaVu!Ae=6ATZ(TOR=&p2H62uj^Q-1kaonk zc)@pb`ryd(`w_G|Ti}M5NM8%c>6aty#ne(`!Aol>I0ll?+*eaixI`GjR{fhv~dLzOBr z5F|>1eKlxiyIc$)HX;lgzByPecL;3*4IM8c5|q=JD;v>){$gan`|H}43|0J3mgP0N zB}z>%D8rpZr8oN63;OPbbuJRkGg^1-JS1>Nss3@^-3-C_J`rc_RO9Ld-9S|ai~lF) zF|3qIOp!r+hN_-JsJMa^i_T_yggQ=`N>ok!oWSFX;D^j zU|C4|Mw-L$Wk_X+HjCIeQivUd|KrJid2MG_gN}gimkmj&C-MF^Eb_NrnAo$(p$nnd z=;m!U689D?^0Qvp%d-esJ0^*%lI7^+-T#f+`S<@ut-SxgQL`TYPwK1I{bGCkAEQxQ z@h6w`W=yS2Ib6@7ktbq!LeUJWE;*M8}kBuL?eU~6r;7S2uOAV-h7>Gc!}3eH-HaCm)N{=eZR znM=C`PAS8HxRN}p=&Rp>*4WzV0s4(mn-Dx1Y1y*PSJsR#2tL((xNPvY4IKu;AWAQ( zr(WS0nX=P#(AEchF)i_)-UuJ`%_67jsnLUyaZ3kJ8I|}T-wtX6NWxnAO@gOQ2bsL~ z%$6%rfW$g$9Q?nUHJ4E^Ni~m!O7~M*Zv|!}^%4bu1l;3u3Ge{>CAX`I^T`?y$B{+I zWx2GZwTbnyDFUT!M=w(7G%Kd&p?NTniTjFnk@;JsRb6Ah@5(6O268?1NgnKV0XG66 zbCYFFVpj;BqwNS0Z4RcExS)(SwRbhNe;&`w=luhny+gXz36HaR*B9 zE#f;UB&G6AHt%s9CI@+uq+{1Sq98%$pLq5t?&1#4E(l#7(j>*@!lrypM&kceDurb& z^gqTv-NV*wKEoPo&&m(LAj7~*Bq#PwLgLIXE3+FY4~)Qk>Z)t7!qx+gVu|kEs_xmV~S$KRqg!zY43)A(+~FIR*Vc` z_>KA%TSl;x`s< zdz?)xflJtnQ9MuWAVj~o9+;|w^uVt@iU|Ro4;i!Bztn?aIJL*ySB=Lx)opl4gc@xL z^u)u_Oy8fG16sb{cJ^QI$KNk~U8$EkasKWXp=+FkbvFT5#a%7*3x(GNzDS(2ISrTu zr_56yn4fCDSN24rdlIYAN9kt-5CmryuUvA@-bQZ0cWump-RfV1>40{u{ghTgh+Kjo z_q;DsC>&`W6+Khgh|P}%<-iLeDMw5Lj$&k+i%oP%C-t-})@M`%rDc?OmxX_~Yss~K zQM2mOYdGRxt@`w)QahPNZye2LT-Cam##_4`DtG?ikV*LbU92n?Tlm}MK3)-qT~Q*{ zu@Ip?7Lo4cLyqgjwadY0dZ3->2$Z6Wj^E#l(iJyFsRye9uht1auJ=S?sV|7A> zJnv_!q&G()Y)E)^ju~hpQ&*y^XQQD+NY-@JM1j*A6bG|r-Jd({Arxg3l5;pFcbaDD zZ-YBE<=27r_ze+jV*d8)<(pFt*?!>TmiCBXPvhbUagX1@MggM9Iax}5E}xEIYVyR9 z2ytD+za`XGDv(=DE7f0VcNZ$XzNc{nHo-stHl0Vd#su~`XXy?}I(&MP{u0->&)o0$ zKBWn#xuwa-pMpXGq(eMt@+giv%_z=EE}GYBZ_qSOZ5fRijBz%N{J623CG}OXEWJfO zV9O`+vEVv1m_JP;IBp=Y5!;$R@x4COJoi9aT?to?RE`j^t?V9(^^Gh2*tlzKKGm#8 zLSej%3gE})Hz9Zf?_DC{rBa+#7!tkt7hm%J-pI+3ptfY3&(4=_`UfNo7kZg&zXYW0 zkbW8K`0YmqU8zxYb_AIQmrn-b2D9FsQDS=1Z5ow?T(n;+H!3{c2Z z_DlaX-b-&4#5vI0&-cu&Ye5d9=^nachP!#2u6*&u5H<*;eSLuxoEn#5eV$>!+`>DQ z73}1>u@J9>_Ac_R`<|V1oMUeuymn?jZps>FweX5|xosu7B^=TQ&-x68B^ty?|NQe% z=XH|C5BO@5A^PQUJHLd-;2h3UGsuoCJL>FF5L>x*Aq|UqSH0Bp>0-r1i8h?yQ))dZx6@on4HI$&yqY zkXSJzazv(W*$Cn8daeLX%86Xqs4NEZUPxMHo%SelaXj!`FrStXNmXYhaA7IDOnJ(h zEoo!zR-G>?sSk5z>~(-TDI51a`!+hd9_Ly>Np~F*ERhyM(TmnfGWwk+PdZ-SiSc}? zZi7%P!=cVQi0~#8AeCoGho8W&y7N_Gr;Y0iWv2+-l7o=gCs~H8gZt`T>$?;e1B6TSJqN5(6Zzic=b@PH&lJ5w%nyoX_rAs=WS)yqMAd7refD==1i z^?n_JPFN*hw)lbV!5`dl*0OrgLHGboUU>n@6mHOLUihKcBi=3%UFh~W&oiiv?FUuc zY5G#UKIK)xrHDA&s$k}N(5P#FpjZ2^>q~eRFUjhdKhjn-W~L`~G#iA{J<2`8p%kB1 z8b6?lJCHg!(GqDtsJYq??L>fi8_O9W&CZh7) z@bH}KqJ0^!srq_~DMDV#gjIbe9y^~$_^BJ#qo;3fHhhdL8_vM-1IF4L9G9CB zJN9Q}==YDn;PYp<#yAAbud+8W5XgGBy!3&46YWEV53w*%uoazhlz4KSi5qi0CK5pl zfuA(v@_X3bdcc|QKTj9MPSg&XgpAcFv|+_cOcJoMbs$C`?E$I0VA2=@ zVDbg{8VZ3?K}j4J)*jMRuDM9Uuf`=wOFX;oo*uejnz02>9~}L`Q|z? zC?Cpcwfp8Slm67Q&^NALyg@0~wdroK8awH*0^`uup<8R>S@y?qiSE*23?W^Q4qK5P zKU0a1yxLCJvUADEV&%UJm72`l1k3rWeA^kR{G8|pmeKfYXaytKv2%mj}KRDah(JcvKax)q_L#p{6S`CVb~^iZZ@22J^<$ zO(2)kK)gK&;;M}Te#SkJl_*@iiHTGxUijvTARA~*mDobHYq4yZveaz78b3P+K(Err#5e@9r&VJH>iVY76epwV564=6C zt_QX@VjtuRvYVsc`q=vsy1dv^!p{Y>;0Ik&pF-b}C)xG?hpK;!t}JTShT+)hm>t`; z)v;~cw$rhlbZpzUZQFLo$-DbL=R5cF{n+E$b*&mTt5%IY*4lHzpo zMC((bpT#4dp$nwAzHlPMPoUFO+RU&pI6OGxI%k_1{W@52*nI*!|2WnI1@n-%$bd)= z&R}pm(8J1y3iQ&^yx=VNI%{3N^Jf<>sr)*8;d4DAP$5~-Z_Btrg8+uFKI6GCq{5I# z#N-SaU^dRZDOlpmFStaYF*)m`uB>maxZmw9pxWT0+2WATFpw}3MCM&-)8O#N`3(!# z*4XqTPoa);Gk}^0H72kL7^}22lWh3tZD#S9ej)#ODv9PO2#z50#|-`;_1+b!22Hr=A7hpj<%1x%gmzq{KgZ?}u}? z`NZUqFo6fy6u<1d`%b2T(2^%32a*ZXVNnt)dp)O-VH5&7C!<>6?$G{(0%uB%mgm=c zvy%JSc^&eWfolPAyys0NgR=SN1F<$1QO2n%WE>vHtCFi~Vn3EYb(?FrAo-Saj$l26;Gew8NXeAKRUtmX7EuvDYJOR$_Q7kW?;t;oij#rhI)DkKr zw1EEs{WFP3>M}8xPDp({Urb_%naR*Uwn3X+mM>w-{& znzZf0cZ`(Rx87rvED=L!lnXOuj!Chq227E+bM(Oozi)_83vt0Bt}mZJI(0>qj~B3^ zcw`3>RwXxU(iqbyOwD}rLyd`$HNqRWi-5^_#FSk0xBWpG87HD;SpGh0w@}L0d?MN? zv7iAqQZs8l5FysS>fRgzQ8*ZE5c9loF-=hs&T$5*hvJfuDz64c`0$|^kJ`xWQAnENBMY5f!%6d%ds zo2ezKtUyc+rS<-#Am*$l1dNI21SG}z>*e85GD(c*)^Weroe_|@b)Rxkr&r1P{nstD39PV`-iNK{WV zr;w*FXoV+4dN6iQ(MsqpCFP*5dHce-iLIMV9A+IiKfYBRzTXmy%c+p$EI|w|A9{xi z&2gn)NJixygNu3N_@94_4YebImrfFRw3n5#T2j)-a&$;NkU4bDgR2H&YRU*sFe5f0 zB2NfeEs-4%Kq**O!if7XS)E}Tp|q{m6=MA!a2pp`yYJWcjU{=Yo`?HJ6u|fD&v#KI|1n zuT9yOk3F`Rsa9VugbJaa%w$qpAy3%F;MiB#K&uxL>xBE=;|`Jp;U^-AM4^H<+8fUC z^EmtRO$adaiN#KtENMe=qdDoD%VF0FH3l>&I`XVfA-r9#9uyi@6>+Ft+nRUtcN0p5 zl1Yx$cU#W96QRzOhGDJ9J&(HhjB}-bA2!(%6=)p_tsTLr7Zpdj%)ISaKwAN#f48u# zF*Y~1fa-TbHIk$&P&d&-i4*hWtPsm}0a%-T{Mc4rJlJ!7~tNhc*3Au@8eq^u>Ll()BjJZLS5VMiy%TbC=j9+;t zEv9B1!t$Ld$p)lpKy4_!G-G?*+7ZUd2(eB3_WJ`zqLOP|j3bFjsr99@nT?&3Ly85g z6s@tw-3o;dkrUI1Im0#POIt)d z5@jspX}1!J9MSYWv7}SxlRxses?WEf804vU5|wp%uoZeDyoh^~kV)mBJygET-lm|rThQVG%LkzOYqyxesW;)d4jw|F9brYK zP3IDM1P_4fn;9Ux zj#KSs7p*3m$N%I_gZK!4WWPt;hA+ph5++@EM?-5fx=9mO8ic{xX6KQT`;eCq$v86wi_eZyDB<2fXw;Zl!muL4d{;facv=&QRl z^?)fp)F{!+VGpQO-D#2;sr7CIwBQZv6qkVPEzg#u8pS>}A#SWR9=L3YkGV3i6RYXY zfm4yVcemVAW4%2qO=khg+%Z}>Adw&QioN;ig&w93rsP0_;lGHiQ4Qu1(Ta)tNhBll zA;x0llHm7+MR8eESe_uhl$cH;u|yExF+Ou3UIdr?yIwn$lvDgiX?O)esH*~9I)0L5 z>U0*l2B998^teN&bU;O?_gH(H|86rmB(hnuHBEV32X2Nz5*vZo5b}<|opk*;b$1eB za#Ud19YVNqT_fN};b6VI=sGq^t0fjc2{#dkhliU2i5yz1*yl;4zPu|#lum0J$4`+w zuEz12fPzTkfhTT?N5V<$#bc5D=;*I`xgwER@qo(_p3s*4hi1&a@5!MoJb?^1rMwe`9I+g6&m=wtQoU)4^GGtMfs|Eb=(admYX8yNXk1{!$p2k>#OBB5pVtY;V@^K^T4g?qg!M*pPT0Y)H^*m^+g; z#6}~-;#jgiWdUI3Z;H7m2YZA3sD)#P5N-#)3v1#LnKlnNatS_<3I}*i$y1s>Gq7R zb}UgyK*i{Bg+M*x9%l*`5Re zwA{_8bQbBab4VwG&fMf?F6-P5dVdHhEIsY5e+)4Of#y?()WMzb5FvvTh@&bZC+KEb z6%>|3SVcLPMULa((AvnjBhQx%W_|5E0!g-x(kSh|PlAdpxy|??^hP2?>%|q|twNvp zi@X+z@x$RARwI@Jro%xg4GEEi*i#H2;DNefz)dj?^RRg@h^)|iBeMLE5@eeClceTX z!kz2uRNLKKbI->X_$Ne0&0>4K#k0KQiU@K5Zy7)^CJaK@sC4i|+tN{aC{a}hTKtI- zMY!rV$?}ln{i$X4cbAk>dPAVs#C4&Oo!-#U9Dk}OOu@$TmR1qwUbu~NDb5Uok^eBD zBkAAROgySH3J3QPYtvC%-q-Q876;Ui1^z(Lk$C0eI)aw$We6a{3NAg^`l zqXXw-hHqaD`sB|eA}bkFgJxZ^DraafVUbp_TZ;9AQR4vEVv+4Qkp(*`JJhfY8y2?u z{wHk1;?M*8ynbq1lL8|XW!tx?BJ2L|6F0s44H;H1tT!mnXM*Uc%ru3s){|rMqKFlgziqBcWI)&7gFug%$qr1={X}7xjd65_m5nr@Jhe1c=|su zSvey)E%pZ!mbTIz)t~DcRi4#OBp1WcsaeR#T5OGb1{IqrsJI-?l`bhX$ck+>uQM~Z zrNAWBf#yqk|I`f-9kDGJ&_`bCYEsS}Q)f{lU}%fkZdc3I7+(R>WzAT0T zBUjMrDFTrh&Tj+h8*^E_(G4&qTxkQL1eigVH#9+h;%uV0Gp6~Ite&ndC%cvGj_#P1 ztd6E)=;Th#z~!n0u6R^#t6bF%IKG?(EAkkoP;zCi^p{xd7WFL6A(t9~jB@zE|Bh8C zli#i&1^y@MmlOCr89>bo{7FeCoESD9XPSWzdu65W1_>!To zEiLL(8_uc)4T&gMK#s#}@~HnYsU=>;JjZ&v>a$n3wi9gk9S`73+a zup&))9g8rM>1%q}{<(hmFaG~=C7#_w;pwynklhBn*Z+=rD5tB;`)1V;cTp*JA|Y8@ z^*=_q{vW!B?Ef4;T{--0rK2{H>TI_nee}NCE~wU zDE^-~>Hh1AbNYY7*Zr^dsmXui^vwFd@C#P{dsj}mB%quBHxvIy>pY$w5FbD1{j6i< z1tqx;x(y$u4y`a-`1QTsar%PF|9YHQl{ymn%uG@e?~le?9EP`khn;rPaD_Xa0UoI* zo3~-#N0obmX!ry*R|9)bgDTYIJOed*ZAeI@g^{S!ZMJGa##=u*}7!~LX z;_O*!1hv{0EBd=O=kq7{7X#(Ri@2om{6JuMu6-OyYuKy)kP}3N=CD~SQ1mBensB-# zh>IO0hu^5fQ4E%-@DT;YJ*48uPS9!s#DPqDq$&7RJ~zj%8EFq+I}yc(7eTnc*7{n?-y=eik?vMr1DYTk2~eMd8Z^*#M|rZHqD;ZY)j^FP z1s+of0rV$n#egi|jNS|zn-*?uRn4btee`7F5o)_8bA3V>eFA0};{wk?SBPt>b!0MaV99Nk(Ae*Mj{FIZz*KMYJ8A1MT2=#HDcPRCV z6KW;$j;k-k;N;)^T4OWc;5AB}R{7W?mC%kc%n;tE4(rC$jy5n|NIn(lhd#3P2_GcTO7$FJ3PnpM&g_yBmjt zY~5zVJ>_bA4^gQnFO^k|Bb`0d-(Z6s>j6?xwn>}SpIw`2^i0V1!5bsmD6(44hV-RF zS=t@r+JeHX=no z3~oGdw5pQ>W|Ng0ywJO*d-xnY5yF_RdI-tTN0e>Rm8F0XUv!O_xXD!vs@iM@K1#~E zb5Cy^Et`|1?2Kyoi+q6DZVtoFd~hpEMVnzh;_#l)5BaW^hAfWe@HBOEj?!q&Nm+GYP9mLFWWG*ZKMV@Lr7OfKk;oApN03P`(Bweb|J_!es11L$Ga9Cc zjqfNyaHdIAZ@=*5hCzNgDM+}WsCYhR?7+4h2y`lX zmqr|^xIM!jAh-6Sw`dZt+X%H4iFC8v+^KQZSs6flnJC$0zTCk9g=d*y7BW-8CS1^{ zNl@Szi}Wql&Df<&sB!_g(;-t8Ghktv*zwHg+_V%%9d7l>#^EEKERG2fe+z0M5{keY z-;=bY6&Gx@$it+J^g|Uc8k_@Mg%u~8fXKZ0-UJU>rcW^D@Ing&t2RkPHCR5-;T5fGzU46l4Wr{|n@NpJJ5_&upBIX_PL69x8q5*Ou1d-)$fBZB>S;6#%nV zpHQOy5HA3K*^E~h=7t%FVMdbp^?O6ElCse)lS8*;uMDVSQ1e(#4^@I&2qsR;`_GR} z)}Lf@xsNL6M1r^jWfBtr- zQ4?RK8j;qXr+)B;Y)ugeBT9<_H`f%HpAIXxUOctg}*$_#C z9Vim;dCsvgy5^VSiuq*Eu{f~hyZBXE`yidz{!ob#>%NehLI=CtDx;^OrTm{NQRUzd zJdn~AkiXj|%aD9q`l4>dnMVAN8Q)_O_A9^nK(VW#_}XGFMhIRB$o0ODd&raj$~i|9 ziXRm`t#TAs%@bg%|9%ZsUL%658p>xlbLFwgymAi`KT4=h5NF87+T8zr!Lg_1X(Uk2 z9Lg@$hTR1kgYTQxAKqvtAW#z^F?Lx;DV*eKilU{|mg1}XOO0^NNBV5Q{ zM)=KI=E5xgs1`VG@~G4r`GpbYE>kDcv3LV$!DR!jfC7F4s&BsmOQiX1cbdmFY}F2w zKTepsg|(c#&e*SjBi22xEPhnUr(!=x7=DG&c`19erv$zO`6SsxE$BYXPM`E1OWiUp z_%FH*edw3BEEq{gOs6M+A{P@BB~edd$yEt-M~b zOLWm<3?Er^Ac<`r`caiBhb2zS@AWwclo>)ZVyE!EJgZbGVI0ZoP-Sh%7d^IiH*U9? zEO;FWdsy&=vZMKQE9{?&JWhS5SbHCA^E1v+wPc7vi$d+$UZ$yq37W@}mRpQ_%&AM| zf9^{KnZYP)oRZYG@?|F{S0`1ViUg4kb}_$K;FsA_wVRaSlTgt_;#!jLmK$T1+@gr2 zCe?N(6P3L?wC~P7>kW=UL^zKZh6|8Lx@*`hNWbUWem5%dz#ec!$yC?OGP+N5T|e6T z3O-sf&{d8^3kN6npO|Op*)`|I_{Q&Y1_dl_L*p%HObc3e5t2sJCNO<6f{J`p5m&n*LcFvrzSGc2!BZ`N>2vsk= zT*7QwSU7Id&`1zOc4iBPFf;B*3#znOpTCZaecFtsY@=o^=GnbA7n*B!hseECn>^*@ zz>F#b?xMQt+G%jTLgZOakF#pqd^*jKY>Km%R~{P;0zUeMXOH5ol%yFc4*o!XOK(Ai zd{bSAj!W^h)avAxz=B~RRFn1z#wFH>xsU`&ld6{ zE*ilqh~(%>XA+%e7rCm!^fEFS%*zWDiA*D$CZF>y+0v(F?qqy#O(tJT_m%OTu7VGD zOZN}=&l7JeA}3kcr)(6bW`c`b45{}wrLWH4WF8!26e_4<=q9FQ7P7nBICURhN8JpL zOL?sCd>wFY=uj{!P2ce{3BSiT`wfxkVQHsmNEVzZDpZM1TyEFgN&rRWn9Q1q_{@LI zR=n_05@jJLW-^@m?@@d^-9FTi8>S*Z9w1JAT_ZE=&qn&ngX5Dym_D$@K*9}@S(rxU zrKj!?n!yRyhGZY?FAkThYUW?x{Pvyp@GdFF3LtS--!L50DlG<7GQ`@=Y|(X4^}QM4Q-*GvN9r@!au97hjyn0Y$&K zGU|ntG?{XAHRsn~JqelGUD*UOjnJp@G<2uzU`zD2%ffpZp|j#ka*cgF2kil>4@7-byfr z!8%e%;Re*5l;Cy!jYVOD&1l<6f$9cZiXw*FFm{rHl}z@OBn|e#sYU*(tF5Ssm~H(T zAYqc&z~OHgompNmCry-y-Oq!ITq0C|bik z^dMQUcFDSNf4ICR;rDki{Ffg-Vfy34mqA>5Cu>@O&}4RtKEf*fT#?!iTPu0M97gKm$I~RLQEd2dXvTryE|iZ@*JFG zl-CqGLTPeX)p(>?2 zmb>pr^zJenyEQLk(YU5DKXvc3f#5VIMoc0kRSC<_6jFi?nQHvC2J#f%F6Zp$xGvC~ z3R%}(VsfCN$W_+(A1sAL8puKNLHU^q?v20HJl}cO#eizn;2`y&fK=E9xvach=7wE0 zu42w6!L?w#bfjSC3XD0oH2CT_#*Bc06yuJjdtxRqO9(xvDDce!^!A|kaEJtHeV)C; zM?Je!+y^p<$ioNt93Fxzgw0cc{%W;OECIQ%@G|GRNTv+3w~XTfqhL%NI;NQULYVQ( z#h(M0zmU?Z3qip$)0O{ftv;x(OK!t?M|)UsVE%WiW?*ou_i*-25nnM@fq&4h=gw8) z_L$gK^(jr9YS$N&bpF^BY=x&Fu(9ool4|RL0a=WylO+*2kyEAqYQGg&lB+~g_aJqc7hC* zHA-FYcfjU&yVD@jwWH9Tp9lmvSo$`cqi`X@v!F-t)@xFTv4>;i2*IzZ5CK4cc{w`? zXzXGLXME$tf}bIPDLLp*MSCSFUb1;j^oQIa`^rRWl_E>LBk`F9uCD~cu;-wb^F@sl z3RuYHKqAdzfpbSxL<4SgoLF23gM=->)r8*U| zGXtd|@SZk1it#f8ol75>o{JJ{1edna&c)eT7cU+tVKIW{mg z_d16DJst{Au{-FwV=X|TgX7EtPe~_@g+yN11v$gU=j-g%zt#R7P(s9|1K!8wGn9^y z=A)GDjwMa9anW<&n8!%cE8qEH>lX@X9R))W)4I{-64s%!$14%W{a*B=jtez_A>Yg4 z9I>JR35s}M*9X_oMF7M=#JX~;1behS4Xi(R&qOPA^1K!-2+0WvQZg($9y){wUFgSc zoJ}7zM9}d{da{7lJ_;Pf6eM1l`)mp#c#z;j9i$LmBdKHn*sKm`5p4j>prAwiQsD9+ z6(S_5)XlkoRXgf&6*85`%@UeB##09oC!jB2Jc-W zOBhhF;N#{^7qdVpAwtBa{$9dvEOv(p>T9z>^{#e&v)sX&m{Go6 ziUl4Oe=&hyzHnEXzS9;)duV>hNSlJPOkd$Rf0;0vf12%j4VpuWx;wRW8{MaW;o;if za0<*kGR|hcaQW&XX2+^4XdO=x(hc4nkX7iOU>9h^4bhKOQLxr+f#|@I$**4xp9q|& zV+2tq38~$pwug3Lj^`11|B^sy7wwE2%9H%r0nr7(a_CF!XCZXR4`xqGf;r?jA@pc# zwXu4-w_l5hpF()ixxu1{Y+$`{q6Ph&r`VuI455w!u-U>n446R{NkN({n3c`qm`v)6 zjXJ!625_bUSxEIa!KkcHV!q&=5Bc8TF<#K>?6vRrM^;N1{iw)#G=IZ$*kU1DiD#Jlt_U~~ba>5+Up=1)K#0K`Q-RU^S>RD*%CWcC3Sm%}Pw1|_$2^E#h zJi#fk#0$A(p-*1IhbghftGM>XDKp-Jsj#Gv|5TJouu=k!d3kR1Z5V$lI2LAPn#xm3 z0emu3W+{UtR6+&zypXyIO5l!^FhGOJSqS{c^(9#iK;>7;=9gIRK%r-)h#;iD7cg2HpHOaP*V$d4ZdWQHU1NrtmA+9$26wBTGjSZIM$L{9c)713La zs9~@>3fFE8N{|Z#cnmrqsQ9v@L-&~D#PAgg*vRKN(?;H>(@4A_ihDtxG*W`R{fhFj zd+LI;=#dvl$@`v<{Zzq!?Io{a@z;%VKSQO=K4!gWBtV~R85-w?C6{P}4UCG30pIyX#nJ|e#g=z=VD z;hi%RgUjpTw{K>AfqE93_^;bSoRZy8eB*2#t@Hka;x~T1IG%4r48@BpH?bS&GW}?N zy7|jtHPYV3XI%%FA|-t56Ko+z8COs#wtF3dJuZ29d>qm@`nk~(q>J81C zX4}6xp~@S+-+Pr*%^w{+S+-hV!JM}pUmkd$Zl95g^A62M{-xp~@5e^ytGo`xFyDq; ze{H>cO`*Q+M>ZoT0T%5CoRPgIJ78ln7fmeVP{L-$uZ!wC8(G&-dN>cho6(=NFiBzxk zlaN7}*tmsFNWhRdNxBi^Po8ocH8v4J4WVSMlZ--y_8cZ~S@ay2RTL(h>ei$a3H}f$ zVOt8cxJ~-$_P6$u$*{PpPnA`v;bNmLS*atHu}=s1V&R@-{L`a}#;PE%Yutbu}!&X;%gvD3vQbj@KL*1rHT$i`}*qDsyb>2@{0(a zpB;wsmelU&i!gtxs&bW81GdW0ShTbRIXclgVO)lGZ_#hLI;kOoHTkO@&nsb@4?T75 zqq0}379RqQ9y_axvN3QfPF$)^Jp{*ORNHxuRCTlGVJoYm&l#6^5mTEKkq|n|FV6yo zb+efyrJ88mZUl^4WYb%<+%D#;l*q1^bvm3clCZEFYnud>OwDKemmy^0S971PmnrYD zo3gjKewhwH=y&r&E}r{lG8yt;t8T<9iC&KASiL)pkAAjV3G>Thwc)#2osLj4ZH#W# zM-@g-(jHPY#zzdYDH;nXrZZ4t9AF5+^XxNxYRXy0CBVK{wJ5} zpIg3+b?ADnPq1{h``Lp!n^Oh+qF|g_Z-tynFBi*8-LpiOn#qBHu7StCY%miel$>>ZLwueJa0Fbmn&EN6ziCsNS^N z2VJ9bL^@cd^Un?t5b-+T5a~wDXMd|n(~(~TXSY8BrJ_6oUD5IO9>HDdzDJDxFBA>B z*0>?qQ`THvtbuAv+I)vprfJ8l67np$LZuSBLS3!@*mFGmk+(HVs2#IO$iwOkmCE!} z(YE+%nPH(B$EEjil}Eol0k^ZW8N-zAZ@=n5^h9@91#*E9e%RP?VAx%DrN+InTHw=g zr4!>642Bb_y22zE#)JBvVRgs~oZqTzX0kw*y$M`mrC0^V(pSdXke`-R1<7p}B(7ka z3tHi7dwNsVhNh#>-Ue1fUY3SbHJ>-PleM|oGP0G@bMmWIIICn~$6ry+AxAB2oRYde z58}cHTbF{}BMr4@=!Bzc3L444ib-HtfA^hU1H+&rxcqCR{Ia?|S2Qqk^Pi!B8hTx|^XW)2bOil>h*f!3tFk+hL}C zl?od60kl^xYjIQN@&^YiSH5i->-H|X;`gnv;*AQ{ts7CcEt!j^?P%-vjAg5?#L~O1 zP?_!M%f?1qv`-_ZNE>#|Oa9^7Ro5}YZ^o3NYR!_n5q0zq%dBC1=+O*>j2BtUWfNSzUm~d60 zWq4soxhmJxzcpwD@fZl<;Fq;-;*z=a!E7Ds|ox!{V1QZTNGt z%pYygFz$4bGhDBs@?Rh+m&+0Co$jRjGagAihfVpY*?Q2hj2KyYOJjSmG&r z;|ZCfk}KznHEAd(Q^^?t_>@>aLmXr00spn!5>BgDGB#;PtXci`545U_$0om1+nBBF zl*|BKCSf{!)>teuvYk04QXAQQ8Fs-iGEl{1xAeZlaU1K*hrg<)E#i1U6GVwE9;Y#k zCrG&`KLT5Ono?i1^!nO$E1k1nRLWY0jAl@Js9bA4lO6_ZB0eqnk9h7bK7OE1Z|uB< zEW4miqx1y)EvP#Q-|_EQ0_fQFc3F>m?6ddEvitg7ypLI@eDK_HhfEm)%owfFYg!AA1Z4s*L zX~ITsCHWRUACizHQKz1Iy?;dZCisTC4%(sb+lG~Fdf3sR=j-7lyW7Xypk9bf?46`u zA+G+)8xFOx0m5;BG7{S%T+@QUxz z9P{|~i~Bvd`$|1U1&Xr(1I?H63u5BOa$k3k%T#4lNjR_C=P@y_$B!g*PaR(Gi`UPD z2%(=d5t!(jrAi$JgCI*dW40cMu&Z;u&&+uc-7|oB$zJTZVN}c6TN-ZcMiwaw_%K3b zO92}60$@snN?=B5A^0$GBNl?A0M=bBmMYb}M)R(IdB^Z7jS@x6^ko!J^3K@@RFP_a--`6z-UL}!BdISZa^;zSq#M%FVbo%LRSL2NBTAet ze$BN(O7Q6+ztHRUy7RqqU66HA+O8TZ=WdoYR=Fm;S8R`Cu8=U3qia zebR^bRf}Cee0~CAdehUzC5a-f z;-5IpIFMB{i@Cq8=Fc>wYBo2Z#e;bTLaE0;I~4Hy#EuwAmQPU5T}4~Ly&JHo$>oef z!+*#UL}wTc}T)>^sM~VlI;`yCftZ%&6+4f^Ai#)U>N&u(g;?6bJepnmeUZTSQV$kJDgv6rsBqc3C(~{ zd?nxj8>Z{v*+nLJY!OT$j1TKj=5;IT*Hn^S9hw5_{?l%ZkPSlfY6Jz$-SK9O&{d|@ zKc472V@sTc=-cK;GEFmGge>jgPCPz?nbD85z65Fb(TGi$SyN!ci_Qmd=fK$+##FmN<4+p%R*tectZx;s%?s<9;{;u<67<~=jpy*B8A@0} z)Srg9*9SVMqSW+10LPBN2Kl%a4zQMYl}?mjUNo0>m$DbT^A{Fph-&$E$6rrl>kxPC zszSb6uIDkQUBnMY@tx!`0w2A+Q(`xR6z!0eT71Tg)h3Zuoa{jkM!#VFuF5~&ouDE`= zNKPb_%rY2K#fPBF8L*2eUgw%q!Ojrvr_vI0)6UG4;DGrmVU>Jtv z{^S(M-^H$%2c4If#llfqsp^CeJA(YS?eJwM2^P?4NQal0s$#b;jVZ84{Vb}gnwd=H z6u+8Z%WHmwBC3&W#gMEex^8{4%-kL!i2_q>Xmzid^1(dDh450$6^aBmY2WDNKd4hz zHGefwfs@5I$Sw8w#X;ZTQ;Q4c?~+3 zxhf_ZtUz~!)r%)@adIh2n&@a{lDiJ+6v&K2W3~A_KYGb%_di~QO)8H0bIQ}${*s<0 z@OaWLK;2&EL^T&O7ZEc?L_D$eS0=4+%~H=CrId5+DwuNERHpT~%v~>n-1CxlMq;JN zbwrCJXK_1S`k&LGj-zmCcLa`OMTTZaW zdA0VvPvC%4=L~ym8mvU}E`rLLn%8$bT}IG8mChghmmbCPucmL%qDRsy<(ri+1QwQv zcYkUg){bZRERB{zG$w0ni#8`m?wC|N<%cOf_KBaTL@n(G=wE~vW z@l3D$Ailp;T+m%Uc!~m)hE~~U$YJZlgq1d9iA348KH(EMOm4)EW_*uhJ&%sZ>z56h z&z&(fvpuj(v*?N~G&+e??q|hsl$oA1i}5EhEKh`16fQqC+p;kVDdo;hzCKj$)ECN= z_2^!eg)m|Ti^*=swywrGrdXVw@g8id+)M&0&N;P=ip`Di7f!e*VjY&PyN4RGj_;o_ zUQ48TQ?~(?-WZ+ae#=kxH;|#5YSgX^4Tq$o{G_C|<*&ru&qj0dv3-2vo8~HC9rXhf z5KHzdAL*0X5NDMpSks7tskY7YoIxhl?j;RgQ!4_@7e2R|XuN8{Wsom2rj#ZQ$$>A* z7AbKGg~`nNud&2cvV3OS7_kv5m0Oe(S|ig-eN=ucu;8AU!Famr<@xlb`$J1BDj%6M zE|gJ{Y_FFhz11~gPo!j;aceHAX#3x-3a1CK&Qu-@37O}@Xi*TK`Og;oOR=qC5F-d| z*HTHGYD<0vpGQ>H8(Wl@ z^lA=8*RlqFZ4asFbujM}D(YI75Dm|~V-3$$a}W_A?$*41i!VN;lista2#da2EYib5 zQ_H;trsK9N*zSljYuB2>F=fybPfh)4TruKSA1sZ!&$4X5V`Y|jtMc=9&z_BH?^^+D zAw^9d>J9L*%f|*&Y&@D7p}(vme>Jip*h@nplk!JPBwgmXk7NCce&`z>%Plx2o)$0^ z$cp6w9RqUVyN4qIU3_)-Z&!yaeIPu^DdW?zuWu8}wxRA#BVM)E0$#@Hn`lPUpF-*c z2!?+{)$56%2_C{{?y}j)vx!8D-q#7%Z5-Nb;On1(JG!s*>4B>S&?DV}P**ifC9`DnPzW!qrCkL;C z$6m_*W6b%l=wd!R#2I!PizCeSuPMKLctBmh?zCoSN)_-yWhZVDv1~mSN9^DRrbK-{ zhM6`yOJjG`LozU)?ta$Z$gcT*MdLg%o_dmyH*XZ=^C63L(8j!p$6YnkoD&N+Z`7B@ zg4N&1t-8tH7VwF-(VdM&wep-34>9apFN#H&40wzdT~?uh4o4rcykxHOhOj7%Hn=?-%3_e4J57eR(SAZYwS znH%MOpKrnFH%xn-FVKr;?xNDz@1*uOTkFLUKR}NEAV1yZ7@EZti}-x7_dJU}uyuY5 z^Hr|FbK*lbc2^*pIRagc8XZXg=>7lbddsl5mZobMm*DOMw_w3FxVyUshv4q+?w;Td z0RjXV+}(o&cXtW?ZgS53$n`zn53bs^yL&e?15>rus_uUFl+GRk|Cyx_!O9JG`*6X# z0{c{uyMkM?Z%2~eo<7Irs zPdC2J1bi$58BbyyYjs>n9fP|%*yfiwb!!R>=Pyy-3#{8M`#6R^0_xn=*<}(dD_aQz zDXe`zp1lM%emb^)7p0MP*X5R4nDt3gv}txhs)8I7V3=i}TxGlbp*Zi)J0CnFtOt2& zjUkWVg5=OahDo5HCy;THm^(c-`?=HgV~I0sU-WmqY?YS#?ob_LY*;H zt864RVx6&Mp4Cvv*s9$TVoMQ<0reJ-x>|bvj*PN_PEE6MJF`f)2*YZBrVi~mwQ=$7<#yRzfUToa0uOt0$-VI z1_SMHC#c~G4nO_4t50$l7y(Fzk2(viDfs5i!GJA_ZPHC-IKHow&}JOMzNJ_U(u=$F zbwxkhOWEW#&%bb4kFL=O-&3iZ>!UoEnMU%8XFI0cTnrwq@`;)I?j_&T4s+brR+=D* z%ARjP%6XtaU8v!%FHUjGQeBJBw#~NBzA1|lC6So$pnj3#mLKZE zjr8dHB12qA&W;f?>(*H#!CCgfa@x(`P9|nnmQUI4J3iYE+dk6z2l)(@HF8dCI?G>o z@n?KS^3SjpM&$B6FG1`j#G>Rk*v(SpQc0_uV`Z=xlF$Bg-}uh%AUCr;{!im9cjvI`C7aw<0=s_e1;ZaZ6(pN6ZvFRiKIw`&WUzS_nLEec%?sfs zG_}S=@y)a}o(~IDF7ZTmN6i4#fi1dXciKI-$i+7uNx95jerRCHxbv_}OUdfZrpx{D z9M4G#Wa569pK(BM#koQaVSMk33`OFf4a!5{{!bKQF?0c#xHpJDlhz=)`8?91A+Kb- z3f*H|3KK0ltztJU(dKA{?!x3N->s)ep;RJfRWlN{HdOB`C6-tC7-DIp`Ab54U+ww) zasfcjY+NQ?tJGuH`}e%s`z|-4Q= zJw|WrN8b9huw`4Y_(+THu`;OP%d=U^4#7@Hu)ST{sk)h@ZDp2&QRm3+CEDdqJgHi; zPpNMqKj=0Mm+DD$oLBB|3U&`!4+bYSox;~det5T*gxB<$e!r&Lk79!0NH|SBc|}j( z!6s@^D`BTUgb{@{hn*kIcd;Icl*%Z`@VcHn=X>h`8m{hAVR(C zlna077E?z;4wi>7o%7K-lk}?(mzp6!Wc0@(d)RHO2FwL;;y61G?m@_7X%Y>-p4w7K zC$mD7U{~UQL6?wl?lYurGX^UXXZa@HJ!YK+%98l)2D(4u#67uULw+VyN{Gu#6xGnT9lvoP~9@F zkv2P@yap=rio5H$aV#IT#bZ$Q&c2qGkca z#@H@|^`Dz44Y_7dnN8Y7gQ&v~bYg9#>lS8H_o8!XF{S01pTxZy=YB)vVQF*h8J)C8 ze6P!wUctc6kk0v>qfRMg%AT@6V%5!Xwd&GjcBHFpAjKr|Ssm^E%&oC)zg@mY{f)z3&>IF&_VG_m2GT9m;hS8q$YEr*eHUy#}rq?PCPhHT#iAs&X> z@S`ryWVUut@pzdif%pd=DtU`kUbie}srtG0Nh(F&KpQQ%AJFkdb83_@jwbN+hlfd< zx^5Gq`uJy8_qj106zyPm6?3dbYi^(wR;JFGKgU#fmQ4y$Xj_*2X|K9!eda@zpWPY| z>M-H&w9auUl9TE|Qg*|zE5g##gDh(+=0=$V* zE5utZr9QnLmi-xUmJ(-Id3LD>p)opo5t(g#{ia!!vg;*dM+HFQouk&L_uw7*uN)e6VP}9&@^iFMGT9CPLU3-k0YuF6mXe6A07E98qaTx8?5Zd@zfV$s#EU zn@~k1o|eEr6={ugq(Gm-3V( zGmGgjm?jGNzrgeW>t8T^h_=P+q*C+rEcQaHGEv02M0g2(HuTknfBCVC)a^3r%LBa! zJSNQJH?9IE+bwZgh1FS)x!azB{Lg$ak0hk0cK2t)Ck7l*R~4HRA2Vi#)@erULn&IE z>r=+@vYq;Pb6BC;VKTMs_UFs@o9SfvJMCCxXrn4HdrPG2gQK;pMs<{5$cyKOR@xso zm6}hcXh(kErdI^1y;S48yJmjJ5BjbuW}w&?<)w6g%6vbBDNdQ??Mk-3pwat)j=>Nf z*D&(#!f%=8`U09K1*Dzm#S(2v5%baUBXcoYee)dF{b*)G$_{eSLh-h;q(xA zk^KU-NO&o@!xBG8H+vO7)gdKNhF&Io38(*<92Z^?j}{P^w8-dTTng6XS{soE0Vo|Z zh**H^p>JF|7V%}Uv{#Wplz>bgu|cSjv<`4g2*_j*8@fakiTdEm2Y@WogQr{q5uv-d zz_YiG1mvt5r->b$7JG<>cIJ}oE}%f&s9P|t#80Zt=)hA>4G1nW5;ws%%_aw>xu~?( z5)pS8-B8BSTcn{^1}wP}j4KcwtC+-_*ympcl4Sgh*lFUz{ve!VmC)mm13B0QD*2#W z?sxe`BX;^YnD!pBwEp~r771Hryi(KZUM@aMRUA?QY|Zs4JJT4L1|}DxeKVPxUBp%$4~Z|xdk@~} z5J5eWJooM~kiEoKjQj@0(UUym?h)2bekD@k&`%R-_{#ScNbZ^v6FdcN)idtA1pje* ztu%A*yr5+BIc?>iqm~O<&hD7jf5+yk#30c3@(f6^u$iQSdQCq%SK{n&p@br5%y~Z{ z7aNiI8Ae<&OWn@Oo+ehY_NaRAxd#INLSa>XPA3H(_W6;VJu%f#?oSsg`N}T~!2Axx zRPb3XE>uGghFm~e>p+YM>u@BS=+LbRrX8--s@0Ev|3PNg=`;MF#sar`#JSP&)8zXn zEcJIk3QC2T0u1aTVI3mUAmqHuzkvF!6m!=u@jpUmj@mT~121RIF(e&AZnvq_%vHYR z55v5_l3s!GH#|FkVA$Fv%=s6I5<%8g;H{gm^N7MFrIQLU0|9Sd#@Z$FM>eHIh_Rnt zR+{6*VR`Y3+$piD8f?ly#$Glm<%#mAaaPi$kNoC+CCm=tJ>Dy@jTXPM-jHOQn63Iy z!dC}``*ENHCHW1cde0@uAY^pB+PSbeKj8tbS;}2I3nFkHiC&|N>sTt8Py=AYdGGTU{Jz;8?1ZloK`jsI!YC_fFnezAih z8?ljF$rlu!NxN~?)^`-)XS#p0kR*V$`d`+Ajh(4EAUfD@Hr=Yx{WeHKUR$EP5NkrlaTn^=>o323C|)7lDsvuon_T>byNbC$k2 zsYE=6k%hVaYvo~X#W<5R=OB30V2k0m4;F5sfQjFG7k?U+05V?HtB{x=8irByMs3GWM<$@FCOsohF?X5mySE0=vc&Cx9 z<&WWv%g~e=u-*6ZdhxW#&p{}KNUfZX%iY?pQ+U}4h;x^yzVG=~(d8WzFnX4gO1q0I zo>7h;&SIl}cQVR$4x^0ku2(S4q`uZ;g25E%9iNwd-XgyjT!Uq76-dLDP0}twZB-%| zRTZ9(S_6Am--m!1c-YfZw&nG%!708^T~sMNNus?3?cNT_)x??XH7Xy2x`61bV*`Ou zGs`5)s0t4yx~oHA0fssHSxFX-GgYaFH`g7=mbrP)I%lDUnFom~|4e&mHQTCItxFAk zw1OumCAR>5d%1;+5V?<+I8LnnzQga81&@~)(CC2e8n)i#&55rdIxwDXCd&B$@3?m4 zXF4k$dT#jBgJWg6>8?YI`myhoyrX#3$!A?M?o0$aZLu~^bV1Hplx_I9ljZYiU*t{U zs;&|AHy;^tnkub&|B;qf3Dy3|p*h;TKPA7u$Rf4(j zl3p7>x0YJTrj;kAUI@R_xCmG#|BuUAVvDWH_`wL~AYpscoCZ-Ihboi@c}jSlIMBT%~f%T`(#WJ}s~e&_DU+qGMy zt6zH0*Q{1-#_5S($tu}oHN20LQyR2eWA$#kE30o}GHS+C?zNfm8#@7uT#iZvN3^=L zY$}4*slQz}#hCgdi(7-XpnDcrK&}3k${-#yl%}~jOtU3o(+Vrv*Z#+4_Rk`x5x>Qc zrEg>p?uhK}MxzcmKebAUYu~6S2jA#S>BqSrKs;d0KMq~(aY|cUFfwbMkt4gC6tdJj>4NFi@u#gm-ZMjh>9Mp}EepPRTLoTE71F!CliIE6gPX|o z=!(~9Q^RTsbanZjO-x39jF0U5I|hM%t@M$<> zu5DyLho6a*OaXx*c$ntbeP5Po)Dk6j#WtY}J1jh!F8tmPe$CpOJyRGbISY#u8}LHB z6%x)qxLljd%pan(Gr;m2S0Rq?(n#Gv^l&~f`;f!>XD`x?Cydn_iLL(AZkgJYlUll` z|C&jvGPVY7xI&5}9_rcQBr^WldD%e*)A(I<{#1oQ5r)qOy6tRL2N zCIE8M&LRytTTo7SzE^MH`g_skY-)fP1ibE`_4mEx?7dcsz#!4=4dldx79h>Ri?WU4 z>LH>azrj)O1~+<0fxG`Oa&C{N-wi&**3^T~$9HERmToV|F?Nywkch;mXc)+Y#m%@t z3VUi4%{~T?fz0=oO_BQaXYEqJ!}{4A2oH$8h^jgZN+LQDR-*-Dn zvTiSbV7X)NkzuBiD!U52@$fj^Krjycs3n~v@YWmUm4pg6sc7~d1(>096B2mA9-*)x zD9*%XV~NU%kt@WwaClo2f-t|gUkC3+OxB)!k&BJ#duJD+gmL2cGF}~Y*VZ!9tsu(S zUW!E(w?>L%R~7by6Qe+KqeIPO*QxPTOR$brDBv9K^M#Ym9EKU-Er~rc&I~_x9Rk`& zIV*ZyJ~D{9wwjoa{HVoG-D*ka_{EVKzGBNWC`adzDhq2zAUA5uiSw5Crj9~ya%9@b z>yZJ&v{=%@e_PaXtFiaka`kC>hNJ^Elz~8c>lj(@9P!sN_^c(S^ojH8-2_X7Q+dXG zc)xJs?x=SVmmy_Y|7epY9=n*%)GlxgN9yK@;T6o3x}>Yc*j@ORTAhp)9mOxiy_k6& z!HBJaBUr&QmHs0MfVS;FqOQEak6gN8U3Ew5J9%K*bVs5*@eJeA7m;f9?TT7LH|J&T zAhYF^LXXc_Lv8Y=km?*g(`;r8X=O%nzo(+)B^5wb5gg{*`WkMDYr0zI$jH3=>-CMo zp~6US8+sku1!tYR^1q1B-f8$bAr)_MaKVBla6D^=}}ZEf#YeV2vh4ve5dV4 zc8?WRgVP_$hQ*%J%x>D!%qskp>AVb->1Da-qdBSQqpAwf&8DPzIvHx1+d`u~B$$wc}iG)dS=Uafa-MLvoTl^*)Zljo02H1ET#nWsXMJh>o zs?fw=JF8i``)%-veg`D-S4nr~*q^XL=<1KG}ljaWiVT2FKbz5%cir*Uu(>_PHGkdTk_Ds z&Il!fmwY=_eB)7zW$V9^M$n?r6C0XR?_GQx<4aw-OSN-hQ{j5N8Du?;olnZPvC(6RKnmGjf>u-eibyHfa=G$Qd| zO663WYLKd;lak0usG&M?QfR)&xHw#}(eN3Nq4%<~$hdE;B~*rTol=JSa-Qr5DjR$> z9Fmwpz7#}`di(J@4%M_gk6eVqpQAr-T*b3~b!X@NGG-;M3gPCh3gJ!u)eR+Qt>juu zRV6mJ#be1ZdT+_F9Pk61%0xTLv*xFy_0%yYwN;H$QMG;8jCQ)eCBrcbc;JkJE3=BQ zyz%({73rhXg$DU8n%@fI3zU@{gJgeR$`IFS_Wf}x%B6uNeU^vX-ziNaTJrf-Plj2+nh=GhN+66DSOIT zwAm)+3TI^?sWc?q#PTwpU4jz_IsBk+%%XUF#B_w^6q8;^F(?$=Rd6h>I3{VyW&1!# z$thYK_xR4%GzyTJ`;+s5(5eL{Paz?&nogSo$sH2Kt%CK zhjIr|u6=@^zE;CiDp(Y{x7!Rz#!{thI(WBS3y&llA_{go7!1S3qU?<)D-5YZnis$e z{FEh5cIKo`8rIPVd1H1ADGJKW*o~AFfqWO6(aQ?qPO~xJ6UvnEA^#6u1;F*z+c^CWhcH&gaCnofU1q=hIb%%{`xDD1Aw zOYRzuk5#XaOYed)+LB}h0pe#6FJnd!e3m@vR*8x`I)xKghO;jVEC!#QFh@M+h9y@< zk5)3i?5-gMm6N?Wl@oJ768F!;Awt>s<#)d?h6quim4^s1DH)uk`d$-O-7FKVJbt$? znu=9w#q;T<3AE{Z`#Q;P_I+&BD8``{dRaowSj;8AOMmsNij5NE-(WVA!$IJp1TA!k z@8(G2*6-q@a8U-la|c36L5_QPCoNuArvwm`PkJSwzv7u?$NFFITd#=>~I^48u|LR)+3)bnwzohN1fX0646SyVilA zXvs;LkAIm4+yo11!aI`o)XD7-bAD_;!0^i-&; z8s2VbOc`Y!^juw!U< z77|EgKx>d>9`YO|#6a}jdnT^k1wO|=WHqOyIGWREEuJ=Ff?fPxyf3R#@K>fTjBflS zGEDTfaj~UmgaL%*x8v38+@Uk1@e-Ks==R}$*r0ZtUo2y%%Ff+9E^+FL=z>d;!;=_T zFK$w>2dhr(sI(n%gJB1XED)f#=L6mF(42l^^Zyf~@e&}`t8*Uio)s2uXKTQ8|LxC9 zaYWH*lmhj|CWDKbOiVR4Kr>V#srlg3}^T_y3xy3oHmFZSSHUZ4Be^K;GK znZ`YgPX&Q{YLUSGai)S;6&C7b@^Y6L*BBIHLNy400hQFdpJOAUe9GwyYO;4fk77h= zw*t>8hn#_O4|;{?eDHFdxFb8EIf#2~#NVHC1{#~}7j92VXug==&?2_r zk2c|gt+*`}eJ_e;QDa9n)eQIHN%FKKRXTHt$zRm~Xcf9{?|4$E_Uak9CvDPVs&L^R zz9+J;hGAg_2f*%rf9rZb5gL3$ReeuPwR4AQHP-%@R_WWl14?_bXp$kZKVoizVSC}P z2#Ag87xeuSo2JE^q%9M9<>H~_;`zAhYf#j`()3o?iLzDm zC)}`5zD@^ErIr(V?xY%+tto+afAfMT5;k5OJ%`rEILvgOI z+!mqyC-8nt*LQre|Bx2==}9hzi^Pz+U|;O*9Z~7++VmJg_@EPny+8R0i$hquiU&H= zkOx4gC3Ft4qAf$WZrzaifutcCoG!^$1bO1aIw3|x*0=9r!ylraGU_hXLIa$+9{r)y zeMlyhGD_Z;dM0X_lKStdpt7|cDO*x~BcPOw{&p}1!+emCxp?|W=k@}TJi(nmeN}zN+15b^eHr^Sis+h= zp66T67?@I)3>3#@j`Dh`Y5}B81IkzJi9Er}F{v1+dHZvkcS=+shn5kuM{@)yg zy}gGcuLitKb9PiPwoPm}jEfgm$98SHOD(p`5e`avFj}hduTUG`ZaB6n*={%lE+bK2 zBR1nxFbV$?`qB47Yij(FXXV;-2NX{m&giMiJQ2>aJn%ByIiftIIl(Tmg-9>y&ggs7 zHYPmq2rN0h!AG*g2ZXn*Gu)bo2ZYnL2ZZz?Y;XsI&dC3SULIH((i{LAnsp*&U2*YPeMkKJG!uAINobk7hR zn901@>AU|7cOmdg(#IdaJN@H~91c5}Y0X6~v~L+(C8g)Bq;NAE@Hl59Z4=bCwmQ%<6y#v|er2BP#0Cf5r%;Q)TBsbd%Y zlvt>-$b)UC(JN7h1oEZdC10d67Dzo$utBJOFY`yTF{V!fy_W3@Y+M|LndK4!5F3mv zmt_7iHK=VF1=~JMXnze>deOjQdx#Gbjmt1Sz~!C>YppZ z32NNJ3*8popCcFIDDe=E?ZTfm6KgwtJAYHBU6;QPf84Iqzrk?$s{5+~6*u2BTr`YS zyHA!GQAsC*RN5fb8ZLiDIC6SvYYA8wI;(CTBtEn7t&xX-Ewdk{VQ%r;6dOlr)i_K{ zajno77Y+-y3?!?HdZ7YK8$|+tBz!s3pd~PyNq0JeSs25hQ!&j^jiVn1e@k&{B`rSj zcv0pBCpu7LW}-~$OVQ++?8Arbe*W=Rt7DfOYnZb{GCO5~>@q8!7i;C#RSj;CVG^n* zBxi$Z;mowFwfi}o4vA*ToIZ3)q-nBfL)1xJMZ)=0Zt1jr{*YvX_qn&K5^(oQ{FkJA z84?6j3IOpK3*R6fc;OViei>5FhZwU9=`XnYmZNpx+WNFA+DaVI1S>M7NzD#~K`Pq@} z*DHDel`$l*1Z$GXG$oMo44Ulj>lpPY{4q5i4d3P@VP++7`Pk77*|}6q-hUac$S;MI zp(t{($IYaDLw@ujs>a{TJ)%_LHf1J~dE;6_A(A(c8Wq-3L@99pgvOdnR@#gc7kN@5NEN^bKbQDI z_(H>Pd6XJ2;0YprVrSP|tVi0a+9N23#UmWFaN=-2I$5eGRhE}SHJ2Mj6+F3zQd}}) zS`&51-o~AL;&V-U{hX4fl9X%^5C_Bj?baJ{KlKio8{vm<5GXz|J@O6@sb2647BfnAX1yxXft1wxzGjyBgqAz(ABOAPkt_KucsJ;PU z4VHT(EruF=U%DC^(REnOGUB(z4oeQnG}Fzx%#Q8RE0lfULaTt2kU*GP(Z2xLXK$F< zr^7zPVKqvb^tlJd)Ov|ho3*_fK~PfakMdx5Eh897h!zR9u>P+b6?Qalg(b!|bJ%Vp z+wkmU#1aTc4gmaxqh+^=C7I30P*T=11SWa5ipj0p$dtmP*D^JjdIkPUo?_zJvtYZP zR;N%n-4$V)5@nr~A;9%)F3m`LJZg+DuN0-J2-fYN|B{DSr+I9`2E%Ll;WKps{DKq# z`e}MhFt2UDA@xMjqU3R5mAp}OzcTI@Xip=y#O`o%^1ie#MZkUcnJu8(qCye3z!Fnj zC#D-$u7r6h60_d|Ib=$ml1zMtHhQ1M18Bkve{0G|D58ySWC{5Qk~kT!=2-8WI~=W{aSVU=o{ zTY8%*-!%AoWk4*~k#X)38ln1&>j8>n7aG2zP9q9 zc*;wEv+DEb3$J!@-GTnZ7q5_?u`!g-8sLGrGQZi;8;%GBBMLOe$8`WiqCP&(E7`mS zcu49zh#T%cabfp~(er+&9}Vg*Jfp(z6JzF4G`DU@tmfl@*tYrJSD3Jd<@KBu2n_dO zZvK`|{c*Woy%a)qQ&-R*rQ&U_z5DR_^C^VJIYCq8^61;%5`_GTfD5^~pFjcc=xbP2 z9bCVn0GdlN0nv#NA1q&qJIECY@h$DBVZog53qlgJSCI0llcLM(G`^?ZDBZ$AnK_S& zM(WuAKis5?|7rzW$3aoKh(ZSQbr8Vn*e6-X$wBt5WkDPP7Ff=FbNk3xs|dMf z&VKF#2*KZ|OGJW9*an%zJFPlf(N~2;Sn!$M$_Sz43uiV&S@7d8JMqtLM&K+8>vWL^ zyAPQC(m5w;u!TU}(D{6$UFtkE3(_S)RrCf1^AG3J=_n-Tnv7nEBieDkMDF~WpMMr;6_vF*vI&2tyZcHSI*pDUL*av${F7ZIA`Zb z7yu=pQa}`rodx5nFOjz9bt%UN(N(I<{ZCCeX4Y9TKC{hk3STJ)=6!%S0=EJ1#4Gl< zCz6yif0tW&u6rp%PzA{qhvq{-4vyV^PIi*M`S=E2=5g2UT(yhSKjZ#gulU_&tVb5N zBnWD2mi=9xst-z12z3B}URX-1XH3TbMK9^{&-rl&mDj*hLSP}Hr~TJOT1B{W6ck9l z|JH;>u8u8d!7G`0K2~DEBAqPG9K4iSHKxzehS9C>CnN4BC-a8KdQcxF)Mpj>pQdb+B|PyFleLHj1&*@lGF5Fg;Bk-0o;9gWwxV zSwEKEyFyX?nE&b-W9~%P<6UlKY|)YC_Im=rGLw;UDEwesB1EFzz;pjh9%eE8oD*u# zM3=c{?nQSo)XIkiOD%Q6Pc6-Z*UE3WGXxG(#mEmpa?4TvI_BOWACoG*EeI}?X4m$> zb{xnDJ@x6*Rh28y;pikfRsC?ZIE6UWq6nF=N_9pb78;`nBK1)JeuA-XHY1LnACW|c zh}p#QiVV8pher%@)2z})DsgCY5i&^=n*yo!-9jKo+3M#HgZoBsMv>=7dckFo5zGxb z!In1-*hKNPgBn{`KfLO{nRUu}LHL#zyAjchK{;naajD7KHRhfL=9o3|juW+%LrQ5d zkmP+?4%AA4@ECYkkm>M*f2k%wErdMoH5BMM(^K7CF>yl9EXIWf=?M>%cJfRz3dfk3 zJ{1p_d|u6=$3M;-kG!}AnUHu!SXH^b8%6>9!A}Cwq%NFQ<*#i4L7mM1G%FKt-INo6 z{Rg75qS$So3y@l?(UkPr3%Wt-ELAOp;gg<}G6R8!E70G~ZqwSN$wE3c#wsIf=CYRL zq{1~Awy|Tm6l^zo-F8wLd4rcjiAQ9c<{*yb^aQQz;wO8xB+wo`vlX(%Fvd{Li3~R@ z&3+9o_R}oN8O0Z4L0C9VNl7^ChRdspT^ZGe!GG7>Ba~G4L!`ge&5Q}|;~B<8GUq`s z%T@dkBh2*ej;%qA@kr$slfoc&qRU6$%&RI*v7YPoijLgR04t?r>94tW2s-%0h$0e4LOhZwNa%v+9nESF6lP69;3mJU$OVrT;5q|t z_$L1-&|0p!47f}!vc!?|O2wPR#RcwDA=5Pa5_o-HV8RzX!$5ak%oC6=TzrRkR;d{o zu9*WrZdeRcGS88SMw{WlCk?wSwdo{FPhC_lapELGbD(f>kQ*3P;OB)yb<-F_Q z=oMk}z|*U>i>@eDdT{D~C0d3dx_15+_$B1PiuT>bpXfxLBXF{>O5zy{B$s%m$q^Ft z!@cUW)e7#(@E_5p;n8R@(8&tx#R_F5!{f)9=*bH0LE`SBl0)t*;L} z)}WSrSD$`@n(Ci=e&n$l8q?MAo9-@@C*_^c@_^KY2*lEh2M7R`xIaVEx^=rhqgaEA z^IiGZW9C(tt0j6bGNqSp0KrMF@1*6Ypvi#r!-cTOKW5-?fXwx{yYpzk7%-y81Bosx z-NOHv{!0w8m)GvDD~!IESL1+vYU!ufKJ+PtwKSJ5&~(D2JC8Yb3`#m`*=Y<)E}Xp9D=y?DFN3DKv;Q(jJ6l) z$pD`QK4qO0lN%SVp9RFdZhU^>niJO5{RH25z z5fS}ajdfh&OW~Zb(Vh>JasWOrM6{1O`qWX3S`7 z%T_w=pRd(pbj>BuBG-}@<5;1Z<7j~)mD3m}nc_xRLOHf@z} z8Gqr6edi9|!@oMQNz7#UbKp%qTmJl}p1sp1l#Z|cZ)_#u@E2PVV%DRunf;5cCYb+T z{iHX0uQU2Dwvy^Yz*Vk2zHyR~NYhA`Hwwi&@ZtKXqA$lIf+N3o8IB{!XT0(Fw$$Ja zP_1pA8Dx6>1yp39uTn(%f=XcrOomF|+2ygsuyA#ms{-YMLb>0xwC^Dqxs&DySAcHT zc@*Q5&HPtXJNTx6x~m4PFL*k;70(ytrnR@~D(@rOL$vT zK=a6EsE;K^q!|wEJ>CQ6@6mucXV}$-9;7y=ll{+Hf~@|hOS&@4kCDd}cPOqrHU?qb z8v&W~?#>2U=4F`?8c2$0LL%IVlWA`{+NT~jl+klNK^E_fiC$*!zlf^)_B8B!8-k|I z88O)J*3Pcm>7+(m_}aFCqb>uLnH0(!#@~o(II^L|eKxjCbLKHkxpt+w=nj%?BRX~( z)(W|S786?Dtjnv=G)+x}gh)+I_#cRD&x}7cxe0Wh=m|P{9bJV6{{EfKK>R9w*L$>$l-{$3sDFEDO2 zz1<^RuF~@q7&vP2Z^0Z-{Kd%K`1_~@EI2usDTH422m(ww9lA^}(dwwgitJBrtDff( za&XXUrv)vZd|&>T+zKhQDf6)xGP(MLqKw3aR6&`xm3)}VM#@>Jh{+lxk0UzYp#p*< zV+M~ACSqp7g%Gl6_S}g8AW+#G;&c)&h{XgT)%+GNuS3tPOnhuj8_9Y^m98ak!!G{K1<{Iw!!a%6@m`!{|KF@hP@IlJG=qv!Ic)mf#b zu1DPFM0Hrr&8T4(9?*F?-j!}%Lo?W7QCIl?1fgktFNkd1!xsf7bQ3_1ZB-20IvwbC zzFTkA_9EI(aQpn!fsK)|l>Lb@qm-)vf-VB1EtoE^7V(8| zI6~@6{?1DOs}G5vZLUg3TvTxkwBd4+)LxJS4z>AYe~;mEJqsDU)LmKmKbc;YCOP&WK zyhr0A>B3-ypy$g&t*P(o!H@-Eqfy1b@p_~ltUo!%Ytt%Itt;={J9*4`_tSZ?1FzS^Gj#xBGeVHqD zbCxR#&2^lln$MJ2>L0=Y-SQ#oT8>l47qM+!?#1urCdN>vx6Cv7ijq5Z%_xC#Aor6- zxq)G@X6r+I%Lf8x&yi63uazEe*+`b6kLXCI3%L9!~LsCEvSDMt__^b-8})Pc9M z$J!Xzrtu8%&d0as;OZ6Z7QE%mG_lx+RXFVoSLTR4zE?VZ&gKgrKRcF+ur$~9aWOjz!@*}Q)&et`Brd2$ow?MS+A zgYC>^?i+vYth?&|6zAW-0BORb`J2u-v}=iRqqdO)#ac)F2Vu<(<$K%TC{9{*thPN; z(Z7p$wm7o;f9jP3uI2yjj{a9GB^c0o_@^EOvu#gV^lwUttzQSswiSY{rcHd|w22UQ zImkwlbDejS~p|DZklQepY9s1b|!HGz;he{&siLB}+> zc-;~a+|R3g9hz_#yO@xi*&?HQ#;8s=QJ+3GJwdeeIXW4&2N8a4J>GEop!ef1_RIQl zd=Ug-zr`Z(@27RJzjgrZM*u_9Iznuk24KICZ*VOevfHQV(9NyK7uj#vPkT~u#U9(w z4Zdd$$^61Cjq7PeEUiQ5KiDr?qhr6v{eNS>%tB}Y`$+-VFS`uDelN3N^-cec{p|i1 z_LIBP%b)c2TFYn8=aJKayvKI@QR6!$@%Rf6yaZK^O55022S7-~Lyk=FbfYy`YOkj% zzG+;^Yqu)NtkVC{uLNIQmx|Jj{)K>CYxY#HZV|n&bL^2z>Hq}XX?TNxxZkU1nAiV> zfF|o?E}CJ8x=cp@V!-zp^nWoRYY>0|S^udEhD1HJ6n*)99Ij)dhnd5*Uz96rr$=J#lVtIsoS6?M(32J3fqN)_0XfM zRz_!BK%ffv({?Y)x=w`(9;rFgS{-f%(efUG#UY6|e{qcAvDnt_z8A~BERI%R*f^5C zZ5wmmP9Fe#PM;cn#xLCeQln*#$YynKE5vo9gkTsFlid33*r zXAFU0C>QJ9lD4S#uMVNI7hZ%EX`>)rQGcW3VpT4=tU>ur@io=X|Ga znVHPA$ieLsZ*A60i_l*nsA6_&vlwgJ(WDhj7)wJ^5I0Vav#1@yR7AN&>JDM75jRtc z*7ycg>eVG-uZbVx$UOk=Ot_gywZ<`Qg+~7^E$J^X^FsjXu9h6rO12Yzg`B=h^Mj~C z{TX@HQO$C>cTm^tykmnefiJO46U!EB;Z%Lb6;mM7;ne*Pu-JB4pR7Hd# zZBrGL48uU3mca^k=0XBo5y`L_v}qYJz=Z|eKJGUc;4__tYF%{C-}q||J~p{IyK<-CJM;G`C4Kv{;BhxbZ+1wHS zlN&y92WybQFl}g&@Hmqf*$n-70kuZMFkpUEzj6@;G+zB5eLy)EKOzx7u=A5V4G%Rl zbEIfM09vSW1TUTTNBl^2Z*~DwA2xE+=ZgDUlgBcT9fLAaAEI=*QI>qFiI=LmDfTa1 zV;@q|%X(%pPim3_!)cC;_rm78s@<1Dx7(E8(Q#j1nVCDU+E4<^E#K85s;(YuL=K!f z=dV-oUM7Ar@GEk^_Qs@qC%-7#Rf9Q^8J92Gg_lM1Cxs<_F(YWjx5&OQ9f_Fsv``|l zW|Bi}(;jiA>VnZAK`UPnrz`GdKjWU)=N~zGiIiH|s?`g9RId{AXsy|2;URoN zAvo$02Y(FH;yUtaEN2?wO?9m~N2mT*8%P`K-(X%obx7YO8^LcM5E?zxb=w@r=(~W9>yP*^Zo9YADS5wq0lKkAb45 zds>h}x>A8re_ltL^&r|^Sjn&kWv6giQCUOO(oA%_mJJfFLRKUHQ%y-*!OE~S_aEZpw|dJbtmVJwrFZ6wSIQ- zsUxZ=uo*afFyU2)U5uS$FAd|2+`(=ZAto+Wmf{)iaSG!D9o-YJ`Yw@f+<5PuMo1wE zy)67crrt6vj;`q%#oZye4DRmk5*&gPJh%sUcbDMq7Cg91aEIXT1Q^`q47s28yUq`0 zZSCnEx@&iL)moKfq74lm%{$x%b8`_Y)>KWJ-O(HW)0%RM$yB^)SeN$|xzaisxstro z$R(!E$R&@vsycwX>V}C-a*o#`*}7_?0HJ_v>UqoG$QGrCLkBeZLRc0GuNdNj{6&quqy~6!_$GN9GK`mkbxnCb57eTVUl^ha?z)Eb7pH8&C#%B+pdPFr4v3duco{cn-8!x*KtR~q?pPH_s z+fQv7B5eS?ykKBWE?|~*l|j&ReC7>n!adgOUb$l!EUv;~uig>vpo2A`dn5>Vx3Z)g zEf}7*5#%0K2U}Nq57_AQgxEES*)+D5JYD`7-mKL;YKfj9EqA;2NpM)1 z8E${H8+J?~xI&pmPJrp|2)dCef$HuMUs*ug%=8RvsYH)*<=h}Ww>p(<#|QfRq&tH5 z0OQ?w?sh=wSBAG4>v%f$iSjbp@tJNFdl#0$v(7sBo7>6T*<6Bl&gHucot^3#Q-0b+ z?H_#8Wyt?PB)f?%qT)>U7S15IWV@}k3|4aq ziIyliZd@-GT~E{l7!y>gqI*L-!`BoKl{RjzXI9d75~rYFBn_tbCU#&%Ki~yM2}Cp{ zx3P{6)`+7{59Ym);v{eDXP+^Fi_xFY-`)nEIZYDVyM=>H*xj{{U-1Ytd&gvfqC}a! z4TblH={C}QTtHHyOxj*rAZcfoB?v_Ia`4>JHptIU;I56jq}LYE5Bj}PJ1W@;DW8cw zq@@#efr3}Du@uc4UNX{_0wT|XdpVN>yOn+-gz*+nKhykrvZCD$ z{w*OvOsm3G+$;nBwHtcQksj2)rRJD^o~chbvO$AEr>FfC;*Dg`k`9}3D|ZR{Mfm!# zSRP;bk^-*m0Tyo@B;3KaRxmF6h1qhgKtbij^ zboR~@y}0H_Dd+OYC4*kSbR9y;|Az1EbBAI(bQWrP(mnO|$TOo590PG(_A9t~FPFFd zR{sdL&FnZkiDHvsl3C89LnyEP#YRsU`?yEYJ&e$J?ls#F=vCMjg2-JQ8d_j_O@q@~uEvb$b>YKox(~u@f(2(A-IEo9eBsap2_&*q~B>&77 z7WY4hPnvpA%OXiAXBYPh%~ht#JMQhyRcumBq@sCnu6Ie~5bZ5xuS$Xm@)OQBx+6e( zd*$%ETP?3j66)1!B<@yxg5vud6P5ZJT<2gc@}A3rt%!8=j`^oAB53WsD9c#e;VBtj zF;{4NSN!*BqtEX&Wi=Ca;av9sb{LBH#{tAFR>0$wd72x{N2}2WUi8EZ5)V*b&&4M+ z)2rlXn^4fCFnb`5Fga6SFxcHxcoYk%|10|ynS7tndvpg}Qtgy5q+-TAx;m9W!Bg~T zZ#?k*6_HJsxC9pC&8z-41*_&2IPynVwd1Zk?|K8BDjrR(d=Cs$<^lNP0W7QEc*2RL zVfF32t(o<9!v!@n|GtXsReg`D>oBgJe>Y~V;fX);tD7v2J#C%u_HV%OVfqmrQ5bp3da^kvDAXL}v5q_)?gkH3f3=4AE^#STBS z$+xH6Ib?Oe_-qv z>--8cwSIL>{vTi7enM7IE3`vwS{vIF1hxHRO=S; zYE&kW=QXf{EfJvD4W`In$gJa|lI9r;)*fP@Qj&Wd5Nx2-B$TKs(Vb)CLs1;=E7<>J z!4iM*7w@2}SER4z`mpQg=+hBBp^Nnk2#&J2nc^?#e+Nc@+xre`v9NAU)Mz16p+PMs#)(27F$6T*($bUJe=ygrmV-Euz^vv02O zbt|292k_cl(CrQ%*ghNGOoG|*pl7ML8e0UQ`~10yoHl&(lljjxDA3$NODq0>zz02} zz$J)NM4>!+j4y?7B-3WmkIH?pjmIWJ$rsy5P9ug`+x>V4iM=#^usyBcPUud+?S#^s zB0c@HzDP-;3;8RulII7b=CM!8&}>6qKyiS}K7a|3DEMOtZLL47z)y`5gB?nQy#6NP z`CGb;+ebpJEBrY>SXi;iH&G1UFUx3>Ae!{W5oDrRLNA71c$w9;gU@p!f`x1UC=t?ZqgLHw!pc5CUS2IKdQ;p%eqZKtGyqb6*d>bX zsSmp(0`HgOKEeef`*4jkw`gSX^yCqGY|YYfNxgN$=`wPMX@`*6^zAvK@f&6s_nXAm zdic)~!sw|sVyZhzdz6{M$q$$wBUGf6ZxS63zc6#1UnM51>xq_zzamF8-HS3M53_3i z`Eay_EJjV)$A0eM`F%HfvqQl$%TTW7_+8<=;hV}Zm7o0}GCW0PJDFKoGyq=JghT-2 z_)c~XSOHr^0P8}wI5rsh*;4DI_61i!BV{k}MXI}1b62QMG7FcRUf=hT>V5O2Un4L= zs!Dlxfsb>|W#tpQhgoO%&d|(O4_{UN5CqdRXt+n1xQjGLdw-n zD3bb?u8?u;v29MW8AVhw&+;3y6?NdaG|u>_Ur7taMc*OC-I|4XXSvU!K!w3CMx@IM z9l^My>O|E(=8BQrn<9`*c0gBd1k{sn4PmqhTV^CwqGhutij-l_lrG?+Uv8crmOLI8 zCqcwG&~x7qDiK@+HC~DgkLFvnb5!53yuqJ>)DA!Gdk{5w+*Vdg-WeP;Ixq7|r6wy; zWIZZ3$pNS8johz*^8ZP6ai$kFgjsGQR>eh+S3Yg;*BPiPm^lmwb}D5Y&0Op09Q;qB zt762a8WZDLa?JUpJ#1ilf!MEEAUOMsX6so=4B9(az31NO69Ac3El=Ce8OuVGR0ILd zi(1VeS4s+8l~@DZ_&pe*v1xjNFpO^bTD0TT0S z(!$mCOyWAEeFZtaP$j#0tLxow@9o!c+Pnd;r~eb#PLyd#_e4-i_Ejm&DgF@I<{TL$ zOs-Ds@wk&%1zA<4e??K*t(;Qs*28?*8sZ)%K+v7FOajrla zz6TPE)xpSiA7$zO!j>(y>b34$D(j+(Nti9y*~+LTwp2>`O?zeyv6p(sVT5d^l=R0K zq@L}dphfbl^s_YwC<3L0N}$2gRgLzHN)K95$eP#7pnx+Qq)@OY*Eq>yPp{f-@p3rn zTU7n!mk0+hVPvn{UVCH4-GxZ#Y20jOF(SR(q;RPOn`Ln9o}Cfp$XyM^#v!KIKWVUW zclHC@3*6IJiWX*KYYny6cDfp>&Ssdy^w7z+PEKSPJ>-JhvyB4z5;@)^wl=i|fU{%Z z=6tq}nMU{9dZ*cdhH{cYPDaA{4}Pp|r-5kMpFDYw7=C3rng*aa{6O#6>Y?A97@k8j ze>32d%Hi`-iBNho58MCNo8^Gw=W(Ad`0S-~o33?iB$0gF*=?nBT}ys_w8y{uv?b6; zywQK7O?n?xruB&|qEl!~1IOND&zlYQ!V{r$B>Yh=6;o(j_eu2T_)++)+&5>U(rViJ zr8WSa$}>S$UCsTSBwu0fPlTTdhI9*Ff4_H0`Oh5(y34BzD7PX%^5+XO>~80Gkji*h z`2pQI)i}%62S=@+$9Qy5e|TxTdkA}|&#TkCN~I%&ocU*d%)7AvMmBN$VE*lV=V4v-C6!PO=Uo`efIhE3n@m=CovaiiW8TulRL>3O1dkn?oS~R@hFJPqbCQRm2U|#`4OXP4aVDGBm z&WkC+%>NO9vRS@xQ%zl&?yzBfR$-skKYRuJHLy|$8?VK1V^G-_m6-n;tP=aAxZNsg%(>fD`};iv13! z4Bg`MQ|_!>Plj?|7PHx=y&7<>ru<>do0@nKv5t1T8_ZDH9Jl~~tn%@)7V~-LMg6lc zF@@d>0(;OO))N=-3Co@Nzrxuv^+t_}CiTO^-@APcQ+$aMVSngK~;o zXHM#hZCw8oYSs`yH{p94nW{6o95ce2gk-q%fzFQADWuf!-Bpo z#izxcFUwOeDm82JDlm^^gL<~rEU!)8I+1@_ z%!w(?it}l{aWY0-D<+~E10~3Ab&5#FQ!EeJKE%CuP=m#eOy4>PQ8F}aGxh?ND4bOA z5|^)X*4C?$OcdGOfUG2cJT>ige(R} z9IlUb2kjO(&+g|s%`cCV8-bS9CI+G68{0WA+Kc_2B!pMD>W*(eD4Bb`G5KgFj^tKb zR4T}rBHzioG@qid-3Z?A13=Pu8}EGRTWdB6UQ$g%F54|*nRaISCR1NScDkPF9~ZNx7Z zdrO#EQCs?SRkkMiH+lcGU_u=v1^x#S+6p%WUti1WpA`7(BS;GTxs*0sitF)U?>_g* zQ_H}(0Ln4kO`G&Jjvz#+O`sG5mTb7ZOI0*)=0>ci^hxO}T-+`!!9C?@R^>_eLN~q3 zTGV6ZU_G$C5+kzV1=mxwci^(dUSd>@IQqjo3n-FIA#DFEqxofmg-xtV%Ta^Gr%Oo4 zmXOLJ@2fcPT%=YtbAt6`YJ2`Zmw(CEql9r)f zhBEEP={S05S7@(YQov9mJ&<&1X%e2`3ff1hrjpUiBKKgl>Q4>K>^jYK+#da&UM$^D zs*KPz8;g0@dl@w6A@GAAQU}!o2!~kXYzPY3_PLi0h-&*=v1Se0ZeU24c}q zPXE2sZZlCTr3*w7!pA0m#(umg9HW;lRc4O95dwtL)=*`G7fCceIQnDZgvXP4KSwhD zR`X9ZkR*@l_8q}7p(`6P|4bn-rhS5fQyN)-fFvHQ(OYs%p2cUy=iq>zE_-0k!kH*f zdEI~*YGgPo#)b={&nU^Mj|zeN%W@5(CNTrMqw>{;F6TU>&8cp)0DDn+ z0~4szPVG})c=18C3s^`>)YiV!S`yhxh>00@tp?$sJEuc+OF)Y zMVv&e)TB1cmm4fHt^6&^_|qC*K^4XCxU&Dv5^_8aWpihx_=gJssq%{lcJxRY3rTJg zpj-Va5!$ywtiF=3^6-vSqO{Up&g`WsMafx1?mst7q?(4D=5Zj|9B-t@NI+U-27LsG zrqGtKB%qn3`iymR*R|my$uS zgZ%dCG=Iy-%miIN*|(Y&RFx{({Q07Jyo1*{$bG((Ug>=uok-v5aUiy##WxG1)_pHF zXwXbC{g<-ZS%)6>@|Runwlp~J+x+5fVG`!9~> zco~UCqb0*CRjukG384H4a?2%*GP!H9`~)Y$e&Haj@Ww8NG5PW7*DT}HqGplQPIaN@ zG=r|YgHn5Dg_i4t2fO;dr)YZopOr{ryy{mQ|GXX`r zwF-h#L8#NGlBoo*@%L_xp}|OObg2l>!|0ja0h=fD=;gh^Bj|8e&-%0pWaIG?1}Pvq zy%aO{ZBOYV#;yme=Qgj&jd4?)t$H_@L-Ypo0B)z&>^&JM#DY@FKFri5#K$*o;V^{N z^OE;Wpma(&w{GhC^u_*P#0I=^ZtC(Q*4U)Iq#z4qG#`oip~0l(A@4ovTh`?p_|)Wk zn8l&#Jt|80J?b~tw{X+L5T7?@ja;1N$6IY6QT;vYpA|eHiNom&{`E%w-dpdANQWPw z?%KN1E3CW>mTrw--u%CzB{n2ZYTaN}*#;&X{PL7O_V7!XR7?N1Lc9d5aR6TU8$q%H ziHIrAz860cnXU9#GZ3`kXcuu`Q=T6#_cR|i26%zOQ@*@H^l)9k%)p#e`TzwDmC}qM z-+Qk>2l<9wIfdx6j(XU5oh9^s8SRr}eke@3;-Q`U9=&vE3W`x-;3tXn+*7;Jx;8*R^QJlW+643J!{UD@8kd$SYWM z%J>&{;?C!j?D#C7S(8Cs7d9LgPL&|ma{#BswZcUAXtz|$DA4)*o;5e%b6CAp>mtxO z$ujjA|JWuDpfk+;$n53TY9(0q_v^H$L+I~%x82-A*!hdR>UVRr#rH*;#rM=sM7t~{ zhy|4}EwCsi#JpMY(vuzk<=CGk5gf&*0h*G*M%ikMy88r31Z{V*5O4w!U`BnjCY~gs* z|Iy5b{Xb}C(nwW~Xpm>-NBf;zM^-GGM*iH>mPvM9)}Z7@1>*p3ky6ZIjgz#~UrJ~` zp)ycyib-%*A!!)^gqR+T8#XYvL>M++|MZstYYr*!;x9>R@r7R?3g-Z|dAXyVtIpWE zI8vpeo}$g%x1k`C^GBwk7Z-ff9u@dmsOTO1qu0(zl;s{HF2=O>O>2%O(f=PUIWOq{ zM@!a=FIPqVW1dG`Bt9Q>Ygq<+kv_Mm3I#*CYtfb`)9^?Zw6wc902>2i_~W2 zeB)^N{_;#XOJ~zp41?C8`}g>KF3>;RzA-i}7E>RU#@EtcqatuKD?O2;B5|{;Jb$MB%%FCYZ#v;*s0(zTE~a(@xprYE6@FVa+&R4LfCtrR zLGIF171`)R&M{E!+33^vGQMa#MEzo0>&pde*2;w>-Hr>;&5~nE3#Jz4z zov&Lp74BbK9e6ut0t;3r1t|ho^S7$5`Y&96>ttls*4M?$DR;dvoXL=gta!b}Wq|%- zLdaPGDK!}=x=ch-;=0duDl#j4NvKI3bm1DcrwvEQ{LeVq;2`soo?d%Z2{AWbn@cJ> zJiT1wJqt`tnvhX{^AQp~y=LQ&3(evQ_cVlY-*(8#7N-9m=yZECg;$evbt*vhUCj0N z#^3!`&FpX{9uxFp9j9_C>a@cxz+#9((@p^Sax`Wj)&p*laWv-7q)U|5;g43kZBc_} znm)(Tq(+ol-9>&kCcY{=NyZh<7Gc^?1+We?~~@8u74R zxU(Xi1nR+4kT5l9<4(Jz*{KLKL9Ki7lX4+Py=&Gohs9zyhSh9E*P!Vv%{U-86pldJ zD&ld6S~&4|NQkpOX!=nsgy6B(`#f}oHG({{B=iwI?D6=waN_CxU}rNn3DgrIF+P60 z0$3Ml((GKM8GdcH0r`~wPz{8T?Yi+56yi5M)tE&HBWQxP1W@H-plP?WBKCvp?HnS^ zo%!B08^r-?w4?>FZb|@k+3+K9edMKbedLQt2TlNf8~)bzS7aGh3^Gq;$EOuZ!SRml z5>CjmFRP!~d3=vV%DQ0jD-61%F)Iu@HK^4#A)`y1Bfcmduu^x&t-<(s#p9v;V(Z@q zrI<>#^!%~IGV)$b6~j;R-HFgs*74~$jWCS(n_*YB^a)J+jwME!i@7L;FS_go{NHL> z(Hm9koqe8FOw7ialUDJ8}mA$%N9plH~}{R{a- zNhcX4C?l*7AD3JqY*w+O_S8D_-;!wGneo-^?h0C#tV&i>Cr(eTR(y6Y%|ci_RU&aS zHi1+#@}N$^eJF+O?4a0YJ?hXC&sBCM5?D-{73b*3xnE6t!Kq5A6AC%FN^&{jZy<_>)Rfm@Y>u#O!J%N; z(Ie4q{tfe`&t={?`g-!N2T9BSsE5Rh2IX7yut7G*G%c`Nl<1Da3A1Q@aG(|gv5q_a}busp>?w&4;@2p@qD2qEJa0A{7x86l`xq209Qvb zr;rK)|L*F2hB_vNX<|t1wCPEk$hcUz!)d%YSHD2KG zB!e|MgU%$R7(6C`T^fgZ&K5U#Og`8(ZtD0X6Ts4-o%I%>owW>yUFv6yZO#`scx*B_ zMpMhG$Rx97bB#O+3LLZT!|PVJ4A(I9nvG8&`3$#Ys07OyFpeLvFpdA# zL~O{P^1P|;E=u=d{`|R!Wx$MMeO9wbw}kyTrOUVom1y*vW~_MsulWo#d%oX8(l9zD z#(BkYNR8tIB69D9j$DNfaUUuRQ1PgE;1ZXxvBq!yHE7@i&PmWwY2(!{3ZbbtpG-`e z<_i2B24W&1`q0AS=Rgr~pYSVIHXq;FI(4A0V0b>7E(=jUp^&$MXvMlJ1C`BTMSjQ%c zVA|@+nv>Fy&%r1#s5AP#;6(!M3wS$H!6-JULbp1h0HoYAgd1{Tm}?jlCe=_Zmkcuk z2eM$8eg9Qe=>MyhVf3?TLZoT^upoA#^oLi9IAGO;$P35vwBPJN9**o)3Zw%JMppRU z@2WuLxhGptIZ}clh(?%UXhM{gC0TGeQu-rsL>yph1}33vy0Y!aI)MHt$g80Y(J2xT zK!XwSBe25h!L_nvibTG`qlt?r&o;t1Y?CHnfTl*lMI?hd4bfz(@S!lWNa4N-V?kkT zK?O+Q4*US4I~ULJ?eMOD0WY@KpLS0Lk84UdPGzijZF~R zYEMaf#0a@kE0c8)4(;h61A^2m)GE~q7Qi64>I=b{z+rkQ3&5EIRP#P_z-(cZNv50* zNv1&6CQzCt4LL z!}REEg5dtgnPo$+>9FgJg{(nsG8a8|A)FX6W2pG8o#hy;Rm^#5=M zZtph?y`dO*Yh7<-PFmdBl3|GIxHRaicImL#mTjhY=+tTn2pR!V@0@OS>$bbY*l%(v z-k)EVjumr%r1P?OvK^Y{bl}QSfCc7BsA3!$_{l^i(j)@x)VDe)o5*{XT z#o)%b7}t%v9Lz^(UXE~Up9y4pw}4M|mLWdCs2bD!gl5ELPU zfuhj2KPE&i{1%Iw_`|)m4r4vQz-s_%xOdLKK$J-uX+#Bg|NB6^*5If6b_Adkx%KO8 z7=2q&tk-X{&~FUUO-BRq!-KCFM1u&~xU6s#U!Vg9!bJgJKS5!LU*SoK0_sSrMJF6$ zaPb#eR+};Vckq830qV?g;oOiQBLezGsute{h7$l^iQqBFr31g6$i%zDf9t2g_*R~Y z*GEz3MIj^f=BQ_C8kM}asp*ryj0hD$3Mnc@A5gLUL!{2lTha{M0Nv}7HJy|M6P8ph zEiew=^@#&imR3p2iPPRw)e)kS+BKnL7YZG}U}eQ3`NDs?2k-Q7s+coCFcPuudPVWZ zGpW|>-k4naYq$jG>OpTWb|RsP6(1ffmfY5a0|V@d;;L8)18q&LEtsDI5FFwR?LT41aR_lanP!JDD46(oyKNMBBuw;P7IYAhuJ;jP z;3A2&h453z?Dap{&v?B>xvuq-KfkOB-o}Hepw6-`k%B`I6`9nELkx1s92$l}A(+RX z_o95RH4O7)S|WwVJ_Q^G5@E0?iatT{Qy5wV-oUxa^jJV0qo2n2fWxsaO~yf?2*vB? zqrel|13JZsFhm9bSCU8=$^&^^Vn}2}#_?MK7!2}xQb!b*aPw3T3Q*?5Z?NbTd1$?l z<{lw%Z6vm+WHMl+fvFAaFZ&xhih$z)b^DqjtM$#JZMT&@-OX=*#C8VZWRj{v2F9YN zs5Q(v%xN^t8x^a+yGZTq&%~`*RZtR7Jg4}^NCzh5Dx+RwVnn|{@s2CWbi8<2Cg#Sw zd;Xc_Fa}(5M2)au9b82$=F?{xhQJLwhKmG#B2$hNhr*C?b5WzM_LC}wcl%|xi5hvt zaif~rIliyb!NhKRDs&&&H@V!|ujKW|ZpY}%45po!ZK661>Q6#dDbeSG3-O?Ap|dcm ztv@C|>xd&ZQ1w7(fiQ>m3hGa@muV<&WeY zRBuh=7zP0Dpja;j415?PUSAsm3Lq!qX$p@9#@&45;sh^};(s%W0RU)26iO!V0sqqnaUTJ8+`e&4H})iE!;jBz_a>Zoc*e_b^6Zy^X%Ozb78Z)Dc6_2 zDSeT2uH@ay$MuzYw>LFe!XGHx3+8>y3YOZWmzNV4K8yy4_x4u_1-l$Y!&R6y zfOcz7*)C7Tbr9!+qsU|FObGBVfL)gjojmVmGzC4Og8iby@CQgi$f#3*1xTPolYzrA z1Q-f%DhZSx6z|Rp1VEE&Oa)OQPV~-=eS*7c>`+r0!`!oc)DdJuP|`xj_kss3HuE-rz2fTuXTd_KfcYkXZl=83ys4SULh1>Y0ElA~b@ zqQn~T$`EGDJfPN}duiR~5QguIQ$z5iTsoe+L4ZezRP*#SO^~xZ{#4J=nK&^`|4r1> zwDByEtd{=wDpMJEd*5#rr*%RVVAP9ZyNPP>8ImA$kMchNC?$tAku$p)z`IynKlk~l zpd$Et(sWN2N<3FG+=}G&UCt?%gfJC1s!t)Q5 zp+X!`=<}4PgB?)m^LqObu3Bp$@ENK^#zQ_Sv*3$81cLxf%>4rnL_a`nyw^k*BBY-% zSkn+Zgq+|5po8&Rn8!tM{P9{)%<_0xf_mT>@+M#U%(!a(`7jaJVzu&wSbFog=M}@< zaxcAZ*il(@upCzfYjtj$P#&^59~C*$i9|Y=z>E@!L`Z*n6axGZPUbhM9}NVY^WL2^ zIQ+fSU_@AF!3J26{XMm>`zS!*dD+K-><^K-rIgG3b5V&K)%o77`^)VJm~j@8NL?cM zl_MM2AkpvKNxiuJ`-QfcuOw-WWBO)Wmdq}AJ{oVT-0b6{rRN&YH2M}k$KZ`!ZUi;H zXW%#Tt_XM~ETbb+W=>b-soN7s$oBXH-zTv`-D>AbLFF~w$(zu7vea4p4QI>#_8is@ z+T`tQ{(;3XUT?0hoKCzhWsVGiik*ha?l<;I-#=m3=#`~Bl^c;y)7g&qJwgYszZr3I zMG5XJ4=bHE;RBgF(<0ihvPhR6TxT$ldgq#>QVii>y7d~NAj4D8^g(U@-0@u<;Nn}z zrv;R_ij5MeLM?kRYvgb&&1ux=r-hWb2q}gnjJ+bb(D1!9ELc*#LOOx@V2FyKsUi9f zktv2WG(le)p~ScGvp^d_+5;E?U_&8zc_ignuy%TBbppY+QTw|t=7gJKY}T+=V}0EZ z);EFMu%VE`Ezoi-gcyB{T7jfS=+(U#ND&DRC@F>kL6qNv4B@ePw8U_sI-vKYorpm`^Z}v{ZWUzfZ;|qu#n`ovBEM z@3f5ceJN&=S9lu1+o9wvV++LPpW5nJrMXodocoQ;vu#O=D89{p#fZFwiMzB{xWa|5@gUK6d$!nF-d{!U7DJ5Bm?Gv0YEK}I}8KKwjuDk*dUdYK86I07_4`S5EfRwQrUc`K4- z?N=DC)UkM&G1EM!RwP{Aok%aike#n=k@X-0Wmy!~6WLgIa@xP~=5cq#gf%d-CC%bq@JUOI; zk>-ZG?x9!<%`RU>FE$;^1In`?GDfF53#y!c0JSD^er7?ej7IvuuK>1$k&W9A5azf+ z_P+#V01PH>OMoB)kkNHKTf&^l>N5weu&F{OB<)}pgL%o@!T!v)KdzrSTr>A}+8MnC z$Mti4SWx=H=1l6GH!#4O`}-8Q)Oq>hupsP3Qh818IQq-C_5`n3Bc>XX^NIbjvZ*EG z(AM#eIU8Y*DHR*@=MgWI9nmjvs2PRs(|1YtgoE*}86Af-=Z$lFg3@&r*;GK@Nc%Gm zk0~R08w3+$CoIfW%d4D1o)tyV;2{H70-r-3vxe0pe(CQydeWP`iO6RHPm_>wUF< z^8>`Cbv1LhYZh1Tmj`~gyRP!=`w8$);KCEbBr|yljtYw7R^z9)V)GCKJ`5jm!o4HQ zoKZuGZ1I&nDe@D-Se-p$NI8CWIpYTLZ3g-J;UDUrH?qk-7l8D}R@Ji=! zo1b_%#q#e6c78G}T-vKWHHES0QB9q(|E_gn7Me-OL-FO`s(*vCsSi?A1Fib<&|!oN zBxg=#=J&h~Kvo|+u9B%B7EF0jn~&>yX{&b|u7sKkyEQpwY0F|j%1p{89?v*P9Gzg? zs8~F$-&~XL8vy%)<;it{gvmF9kYO@j)h#9!#oUl+Po8~2;-Dm>r&`6LT1CR?ivpg7 zJq`B>vSiza^1+%h-g&U6O-@*eMN7b<9qOyv-o*3Sg@^CUviA)>)?x?0aI*o|WTcZo z!y1k{M>2}7#Bq0~QWf!}W$_t~2hrSZ6xn+9$apC)*78}#xObaqU2n3)!NOaFLJ0+1 z4U7br!b1}2Hqb?u)kpUFnHTWFUV|-eBlciki|=*&BJFGO_ma0K|E!zVr~j0 zUJJx9CxZWx=?Lh87)`XX)K;AsPDH|?h+~-Rhl-SaU@MW(bP6sLk?m(mL4r_VlNYBR z0OLcqcrwE0i$Kc5tn*K!aWNM2kBG=Lpf7#V*=Ay-)3hY*DH^m|(2mSKG4{Dc_j(co zJBeD(a|Wm7vET}Id1EEzG1{V9)Ze*-&4t*Oj^o@P^(#}`j0G+~7etLM9!1s=vPQyQ>^2|zfnDhw;4NJwEC$fHSRCW%(ALL00ITHixr z;i_rrI;TIL2=mEPu=$pwr_m7+vS$WtVogGCG^VR_&QqtJhy-S7#~BZqQO!csoHS&J z#}Q}`tKz-EZ~I(MC}Dqz?R0%gZ2$XXT)k#5-m};Xd&+bFYJB}h7Nty612vn^3Nlgy z$I-bElq_PTKp|n&$9eR356MVp@W}505V$Y(TA#_uUD-BFO+CGt&uOtNOb3pzGNgUC z=-t!*Zf0WKyI1=(XuGQzYdVx{!cR3+Z&Fc5lmv;8Vl=E&gz`8-s*sKzpE3nu>48=p zPwOlTIx-ho;;$IrJhSVEiyQeU4RlK9+4(5LW@!^3sj&|(v=wc_cEN6oW(L9AaAfY! za){y;3+(tTahBf8kzR834BtyRF8o{(X=u)J*0b9KRhNY^52hydMv2AnF;)LpN``9(rZcc9JyAgx@?#-MovDS9Wja8Pcjs~lGll!GAN zcw*RV1>8&NX>En59;jB~Q~CkrASj9^82==B(pr!m7HtA!Lo`?G(he||{guuRGQ_HO zIA1yOY!1GH{!_Hgx;mp1wg+q5I*P@Vy3Num8V3Y#cQP4Pugyn-?~?qIx5Gm3t~I51 zz22oZlWr@p*VzwQz(xZRPRr(m(`@xQDek}qw^Z5IO0|`s&y<4H&G$2M#dav>K=Mf0 zcHS((GO5~?o4TP3yZU^$1`s?9^I`PV}fHn|~dF~R^5ErYHowggWLme-9kl@X$mydNG-xp})ol0( zTBb%qoCW~5_tv)O4`6q>?*>aI4JuDk<#kaNxqFj_!^xCvL12DW!9R&33x`mKj)dm- z(ecCTmGcP_sgqOYlEokzjU;Z) zRkeP7iTnBT4D@IklUsqoNO`}0Bv|O!e&O-^l8eK4nxUEeChY6|=KFe0vbwHe(^T+8 zUm*FIyGovA0Pe?}G!*7XHC0LS64$@#G~n^}w)FL&&V$z`_3y7hps9Nlka?uZvvRE6 zep+*m^?9HXW2B7rkG&~Ndr3}%^{An1Ojd)ntn!cFh8T0QZkHT;7?TWI^m!|4PwdEl ze6u${|3urtp4NshOL6Y!rz|p@MFA%3(?!I<8mwgBt((8brg1Bs-aN@zc^;0tkNj+f17k zs-GXk4%)~=Q!7^AsFx~Lzo;was~I9lPI;=wvkjVYl?2W+xHhnUD)K*8h;2Nn66XCr z$Ns4x|4SuOHp0ww0-bnipgO-D`@^UDR`P`d#SqYUSUHsjCQAj)#HtFesDR6oLtAR# z#hd*|6-x|7C`TwzQJXOZEd?4f>JF^NXnIW``+`ueqeD6&nW~ORSA=fq+T%!hGh+%1 z7*Sc4ixp=PCd<7hN9lcmV?C56#74tjS*nM$81eIcupZgW{zLzW8c*3By36;F{PLB1 z!||g0Z|l1I5co<2uCxOYOIEn|kpv-2796WH8A^|0u0gRL3W!PWQ^2Ke=p&W0XjJbv7gx}#g8HT?qZ?2lWc<55p0 zo4;V{+D@>cbmQBggpKG!^0i2-d=Tn)={}}@NH$b^FlK$Mwdnw)@!(wu&TcM?zeoDl zsjf(~Go5Rx*hsVJwX?a|OFUxOuUwb}(nT6wd{8IhOQTcjKVQg==?%(s9;KC9l?jx5 zND`iJ#nx+t$?pF;xpcq5(U8IP<9_9hc9eigXG0!#zQMqpSC%IXO1`dWDFvN5Q4uB= zZR>z@OVA64!2w50R#u#Q=Kiuygq0 z5~NGU-ICtc%ScN903JWNAkrpbYFe+YAq7L5rT$q2bPh7DnqD9*1K=${ztxy)ghtch z+h-As3Y%0EEIH7v8f^-`1g*rKC@-g$rM|V!+PCUKWY-umrx>yfYsbZSXdY@RXdcaj zd537ZPw4XQif7dbEkrGZk6<0B)r65Bz`trDx926aAwGeBH3O9-)}dd)s@h=EYSfIoNc?}K!VVhx#vC4? zPRL0WLKRl5Ie(fkfS#}*@VhgA-mU?5_!#fv@Aev4K2lwg5xkn~Rk>!#IXr09x)S34 zeP4d9ZI^4Z_U#=#U`kb|_LG!c=#Y7-Tza{yT>F*3U_VoHwfao(XIHZ&Zc3Eo{qgzj zrM3@f+4_dlk`^LdIQK49P+*GpO2xIg&xE6^a^~7zQcGJfx7ze9(}LM>p5#FN_MA

Ux*&`)w%?7=E2Wb(?vS4fY%9cM)})Ujj}g}t?W9%;M$ zf-iOUuJO>&l_l53QYt9)Ey3G5*1hzsW>R;J5BfFL?g-ML#++C1=5T)Hm;Sp{rM-Zk zlAo8~W=bxM*X^Il^3Hwgx^;JwixmOi`)SndWLsjQ3#0DeS?6s-FMj+8MxO?2v3rZb z-B-@Ct-tKZH-}oklTU`l74B%O2|R~HqA9Sz%0mQp`@*7`_R6~9KiO^SJ^w5{!87|k z(plZLh~OjNmYsC>P>|i2^tzOt%!H~#UDF@eZ&$aYo3r4wHgMjhRi}p{<;(u6@Qu<4 zE4MMJ^Lz7rOP%*~?-}*v$o=M8sFz(mFgoyld5Ym}HO>HEGi;8=M!sLCc@`1G^=?<~ zKhf>KS!^L(-u*sAJoP@P?>PVSwlClM-un64po_UtGt0HI?(h!#y^Sr&S?6a8yX_}} z0Kv~~xpq6w!sOOG&Oyz050-5&sS9>>(}+Qi75ky0j1dgn5mCiqKoY@du}#ZQV`F|R zJ__%7zerHKvSc4;fS;6<+6Px;y;|(;;$M{9Hk=*v+ZFyUwCx*P+rZ+GGdqUm{A>V! zH{~?6UWKs%5Y)DqLZ;wTt9a^+Q`6?erjey`X6JoaYPDjb zVw2JfSG$uU=Ck>;kLj+fG2Eh`#)E7o1R{c z*2y!#GUoSPFc89W(B#TV_Eb`@5BYCo0$_Eeey|U({Daz&f4Sp#qo`*?7JS; z{EJ^_cT_c5tlgc$tkML^)B24nNuf4QpM2Ks4}yC)aqI(8yBCjU`=QPot5`AA(dN*7 zMC*t3FLXcJ_IV->gukq3Qn{{e*vFCJ^hY^ItINH!o$2C4U4vnFr=!}QoI&^0)V{PE zH?SL|yX@E>Xs*loRcYxaq`&vKOfxpVt)3sO3i>q&TUC!?H9Q7+)MJ{T8Tt-7Cu`~c zyh{K7i2CZVDBkaFN>WNnx>Q<31f)9z>F)0CP6=s{lJ16O=}twE?p{LaZjgLu_*Rwm`+PvzJ$c*yZkpqI2)<{d1cH+mCqS?iBbe2c{t>P=c1muOu zsfXTy>HXc5s=`9t!j@IDhITrW<64E5wdSK9I;IrJUaV4Ky#%kq{* zbE?Or750lH{eIi+N6nw}!|RXmrULyZ$%gM-3QzAK^<>h$I}RQTzMqbGt$DO~79IwC|79b}<^>B>byq@|xeA6Fxuz!bu=mL<-M;$P?fC za(-X6WkqvV!_QGxyIip0%iKa@q3A_KZzQyHO6O6NWBO>mr^dY4eXmZ;41@cmMQ6w7 zq;a&iQ|ETRa-Fdj!#mY$WAUg{4;6BMt`)TV;aJ+Brsx zR9+9(O2>3ewbgR#8`~{UGoq~MnmayT6f54YS-9!ff9Zg+a$;|GS`Yix>g3vuq(taf zEL%w}G85g;nO@vlpZETmSoFUaxc_ZGzU!7Z{Z6)YwocX)rnGi?b)>xGe^T*Qrm)_B zx_;CDfn2(_aHg}e^4wlibfC&li65#jVP7jRlO!4-eQz)>sxi%tuswCT)D`h{h%ImY zt#|lFWmyKC3dvS&o?ruAxkxc;ZtI$ZsFZAR%Z0|SHfxy9bWGm6H2*bxYjsQgF}c_B zK?U{K#!2gYcC((=uh!a*h*^W^GmEoR8ktt3<*%SW-*Yhki&+sET(h%188l+_F{~J{ z9Tb>_bgxJI=IWZBC7U*0aLwLe4t7jIx?zxgru+9p!@HH`#(Xv7TyfEoSq)j0-ngG< zESb-ZOkBq8+%6;v+1fvPv(!iAANnY3ya?6fTWR2aRAIgp8LjpH|iGA^LW-`;_&n=$x)`DOEGe-tb?BW}&yX zS%&HC7S`hX#?E?HuA)i~OBUPl^P-Ns#Z1non-z1a2Uc4L)gI>N!7u17xcSUKPvm~* zc~3NdNOzH|>Rd>I*}d80y)TO7-8|x_JJ<;}5n&KVb0!R}Kg-b4H4T+vR%Yzbg3Mxm zIi#2BG{@sTVA2dfBe(J#Ou+Dx_eRpxBr-LHouY&aDmx9rkq&k-)*fYK#1OQ!+P!z5 z@hLxKz0AlCJHtY3MbmZd@T0XxVP}_ynOPfMd^m#@toCDXK%l{b7|I- zie*}Pc_LyMn)`F;-4x8g#`Dn02x?)=i|70e*V(r_W2iOIQ`>4Dt8zfT^blRE{@(EY z{TJ1Xp3$0{k>|Zmjl3%gxXnN2*%A-R4P0e&@*2<;2U5-$BJa&4xt$(NP7*wwA8x0V zA>;1VX+EKjjYKz=*}odUn9NB#c5=;U)X6*P(>KVsgcw@8e(?Y1Y*%4*;YHi&M-Xza z$cmXG06civ+JH@p`Q=T5~`g&XEq=2{&-*cdyRC=>CpNb3wqqwQKWps*w#R;=qj24Qap4 zaJdvF^nT^ax9aden{^;Gac9jsgQNSqF3m*&d}F)7??-10Ztx&*XAef-4F$@jkfQhJ zs->jE{n2^Lh1>s6=b?Bi-@4*rz8P2kvlrwCYs>lk4;7;?+O$;VvB-XxKc*Q@rFqV)};jIoM>{~=ovyNyjnZaBpglG{p zof&O-UD1Qu&w71X#m=0!&!7>?=i&tRP<<+L`PNdIzR6`q z85pwK`}9AyCG&zmSIo=}^%2muXB0cdv@$Q9lGTbc$&>$~D=jfirHWQFm23%auVk5@ z=+mNSJQrUizMGZWnmigTJgaS2CG$j4T(5CC5|Vw)ec}=nr z6L{<|{dJE!?mgl$FTZubaX@YRNBcATS(&pU^J>am{k>X8`x*LU-0geD`yMZ0JU;5q z`7OjXHwipG!$E;*J%-y)$PetNd;Cmi+1(+JUmmotHSZSfzgb6e4HTYCb-KF}VyxWq zPsT`AH!baQXBTV0){QnAd&Zl;Um}bR*B49=vSw@}9U{6o!!P~|@y+bwglcO(%pQ$W zv`G`_!xuECT@!prxy9g3AAlkG4Px_6TON?sZ1MfbToK{&B!{zq`-ObS211_-yQ@IV zTyE*FF-^%uft%2QU_njOdqxJ`5U=?K9ZDt_+%4uuxKwqV+9(3JQo1SXZ01ca<2Qal zo}rs)coV^Ri(d$@rT$64rsaEh^XyUU=LjW?&w;KH7hSyzuPq`g*)TuOO97E zERG=f+=2OH^i=hl+y3aBU6tj}pGf+;+2RGxgzzt|FNumP%6vWD#{qv6Dmb_@iuLg(uQgmsD#LiIIVMJ%%A$w z6q5MRd^3h1!u00fOc2`OF-))7)ox>Ez)mx13XvBMgN5x7fWN&0{`P`_W6jQa{Sivb z=q~d+vxxqFxWmB`n@?_2=xWt@lx#=9BWfuA@P~OO_XHxen0Xg|NhP^H#FfK9O4~xY z`1uy~oHEuqjva%f7ZOA{<{VY8m~4lwMUH#Q*eBDef=)xd`C$QVVG90-C;DX~B7cbX zKzvrF{~1(|*^+1|4mRY>=H$ox8%;}QzSg3iVGQsO`#_dD2>q{rtfx+sFSHv2S2o+MHfUR*FsWS6kcaP_2#3G5|b`IMgU6v;OMJ zv8?1orz|Srf_nL3S;?6TpaI(<^A`v$CbJBNOnS(SlLI_NS3|tCr4Q>2cHUWgpaDdD z2xL`vDxd`^qrE2iAQ>UxK9Co4Vm(I2bUn2bOnonwp7t&S4_ZvNjRa7}^9-mfPYAHw zgn-4x&@X;&-3;fJv}2uuaZDg%He9SD);f?&c*2xSW{tMTILXG8GFBuA0Mi4AP8N`- z6&|1^rkg@DyLjcbO~m2>ZwqzqDgJBac8wX|it?fOpQi#h)lwsy?C}FApwtkr zCm|mv2%7+z5#D`LC)=S0EA1>1s6k)olVN*lf*Q&*}S zdWOEwfa3KG$hsXFYzWLM<(RrJ0CDwSfTIiK+f#?g)a@qWbRL6`_T8)@TSE3=1n#S| z-OdH>po9Tg*OXj=ok0nO{Cd8FxG)vB=7R*Zg+LELP<9s(ra(79rmw^-L)c9eV0OCa z@|#i7mO*ZcnMjeRewXhntn+6b?|#HzcHQg6)S>9x{*}7j_G1lO=&NdQtl*qcjis(1 zkF>?AeK-fZ*f)f=-m$ub8Y940yV`D%+{z?aVZq=x&~@?8^~&pq?&pKxV!u zpc=3M$5Wy}2)k=QJuj*uEze71Ij7A(0%L{D0>oi<1EGe3IfZTWY$$|*ISE1`$j^6B z7N!_}5C;PMpRmTPOBsV=yjE9rDnJ7(g#^wI)ICP$3<#eHNK_w4KN~ne@W25=2M&-Y zBwB|Y_YA{~svX@KzAa;8Eb)EOXRLD!I|flL27_7Cw&CCX5d((ebVtOmCaBW;;u*z{ z%buf@xu__TTB5a0{EAP;Np>?SFg=$h4buw!&S+X`pqu%wfH8~!Pj_DX8NfLsx$2aJ z79xl(^A9Ic% z&XMlJuaBoNBtLK{kVKU!Z1#SBnJCT=hREODLc(6ah(aK$JMRrvPnD;rB>Mb0$P96h zlI3AmKB(a^0NUQwvddOLv``#BAuvF)CE;F(3E*w_vc(33z0kn%{=(2wQo`%0vC)mn z5-&*hc7v(gX9S`XX}x(t)?*$%6_6Ehfzq(YNtSlLBGfG=+hqX=07kKD3U&LW0Q+}Z z@Be1;jXAP&oB-JEzCs{bl3od3S}T)|`ooIqD9ks6kMaMuTK039NqlWIB)bxoJK^gSm#wBl&J$pKN8os1@2ZT*AU-&D#=SPAa4cvM=fD2B}#zQ(pacUTI&-O4xotR zXUjmFY2gbieU|=eA8xQOu`a3z)~W8{z^({{sXorYe%wGzR9Awi;vg<#Z6) ze0l&Nc)WY-XWUYfAfZo%6eVyJ(UdnX=+2P$Qf8mxY2EoOk3U2=! z!A50K^;&SOdu$lA(+Eb-q#CAFS@KdYK2Fh?U`h>W^|TD|4VP<82qeAI-!DrBX)?XX z`@}891R7!j4QY!5UbR91uay8zS(~brmf6w+@$If)@9I8^DPc_@gOd&!6ci`ODJM0M zPJADYd2IS6CncBeeX;Lb%c44omRxlHm#HBw#r|&@u=fOJrhg}Yv%yLP3e9}nWboFnNJ zA10>_fNI0n1rGCe0oS9z;Lw&XlYPC>zw8Vx?oLjN08?V^awV}TEwuqkzqrkV*?_Og zr8?jh?m9iMq-4v;AbF`5$nOex&X58mj|ovWmytCE@?R95Ev+pqX(?5jA+0E1{GVNI zXz`*Iqui?vs&>TLoreEHpwKN|j3`TIH1!3#$)2IP_e;1gwm8Gwm2kIX$y!z4g1Zl@M*>(R4nRNKiF6A6CN+fZZzeRT2XnZ@a$FD%d=yQ447FBe&vlN+S z6xbGMUWDPIvY^r>HPnqmT?%|p1tc$HK*<^3D_?O-34-?kKN{ww%|j$`av%XMo6UZ~; zacedPn3?YqWue(*W_UJqeWea0iU;C@D+ks8Jn9w%E7B1|l{Q}Gy&d9*rju<6bPdM@ zJ5%~JZhXYX@f#4r9&^`@QCY(`%42ZU)({m1ut)$_6q-r4h1(^oxj+%Pm++TQ;+g@G zUt*R{vdrOTY&NlpPC+#PAEfWAbXf-9RETFpeZmGGViSYRB6~$9dCVEvTJiI9G8=lC zGKXDl}9RNiGpjRM6C;{m;b-r-3bbbH69xEf?e1*sZsRid2 zo}X`0j$HKJ%|KC})28IAaO;;~;Q6%0ZPay@n=X}od6q@_M~z%>tlX4r8^g=*EA7D! zME)O<47PR2pu%PSY%y6ac0Ff}yx}U;K8&0$E1+4~gdmAjz#uegMc<05T9j`hv&{5Qz-hga^v1 z6rvoACmT*`gem({Iteeh&L1=H9@`S?Dw>XB4QMY4pD>TQnFkX=j zOFyJuxeKB>Iq6KR+Nr*UtFVFU*kJ>Au_ZdVMpI2cqflO4gKV1pWXEihQ*9)_BJWG9 ze>10)`xmp?v!g=>w+Oq=2hN&K`_7_vkxi^{cJ8m1h|HRb5%xKI?1+nOmJKVd zSY=Bl7_X#tAAW5*g0mZ}xf^-zPSe#PImhz1gKNDJ^-lOoj@L6y@O$^=v#HpHE7JEQ6`Thioa1lp{J_1Z?(AJT;tFU{zG<9PHwOV3q>BB z{ayh@H=C@q+?%qJ&#}7iV?Ki@_gF`y+JA;S5J4gF0y9bu8)$yu%`EQ-{rB465ceZk3BS=8Q$X_r;cgUmGyBytf3aDUahe*hCk4 zM;Is%&%6G5PMLkKBj5(3T39dW-n8Eq-aS9Z`|?vu!8HAM%|9>wKYr=zfBL^#O2UOZa^lB)DZI?6xe9QNptktsL7WYaJ#%rOh8PWc5 zbB%ngn=(wgb&D~Sc|hZOeN@GNuxP$9=KUszmuA;DV3Hi|q62ML2+lVEswLrT@Y5RC zP3CGu(=({?vk))Brs%<<*~VCyLDa#C(w*w31iM-;@+1Y&!=}zu$GH)r*9(x{PN1#=Gl5Iv46%nh|h) z6J|#Wg3&;5%9|2V_;Z3DE8>eJ+$!<8*%tHRbu>TBkQlN2n|Z);$9$vV8QP> zS*SUbxN3tXl+hk6J$@7IDGFJu@^5l<;m>L>eM6kK&1vN#OIW%Vl5J#1-`5VX6EL5) zQ4uzpEU|{FHHxkB!;)C^r}k32DNsvp7p%2oU|hgpSVRU|#A)%lJAId*IM7di9AH1m zUQrl%rgaKe^EN!Tju6ZX$Q)R#h%ooL4S{pvZI`WPaw}NNOE{pG-UeXTwjPrIJ^kR% z_2mGgg#Uo|*T!5Hb))!_0EoSP8V4Yj_Z?uKZ|eTDt7lr6859L!H}_JqY_K{kbcxW> zA8skx^j{e9p+W#TH85`^L0$E=WS72`Kb!mcE&H{`iAha8WoxW}tJdr{QXQ?qTkCA01kse} zk1Tl*I6z45y-2P!0T7ysWJPtb9FUzX-UK?2VWc`%1Bi9@#{|(?5Nr2@{eg6$0tXWV zoZ69`Xa(QPU)i0+98@VvHdH}UW!ovW*GewVZS>Uz9$h0t4A$Kf`kfM*_?`<6s;_PB zckAy+GPV@^hIwF3w8JPI8(!~r9Jco`lmaTemD6oD!w6ttKga22z~i52&;GpJ08DVF z-yHIA-)oBa#T^F3MqOeXg`rBC7KnO8JC#tjWEazq!my!*%E;^!4@lzN=E0nah|%zV1Mj&cX6aGVsK}Dy z-yD-{C;)>r27uzuO~8NQo_XLC81nCfN5^{XLXWw%KKA3Nd1675)T6|{Q!h!Nx}VaQ^I>z&g!_cxjD%F2 z>Zr)mIiXNzU}$dq%fZX+Z$w?w>1Q1M?cz$aLL2N%UCzh)ek}a%D*(PL;9<#1@tB7# z=((ZoZ`QO!>hb%(T--->z1<*v6ECH6bYTM|?I7)A-?Uy*N=L+pW!O z!>Nz|9u!V0J~9+!u6IUKLFqmql;?PdsPU9RBNk?*H_~3i6`6drNy5!|uNX4vQLa94 z!Rb1h*8VwDfVoSF8?9KfI#g`mA;OiOmT6u{Hc3OaV9)5b|Ber>qum z`X(6N~E(6cgWE2X|D!#uOk-$t%O&4WA3`DAy0|cO25u5SK z$?>fdvGDc+S@~SRO+N!C82w{T9CdzESjhS->Otp~s;cYRqsNZl-Md%KTjXtI-%)dD zBXUe>f;4cta^v6Nh&!0jAjso%RX-gY(FBE41t`QIm`>KRG77l27wfQ|_I@|U7OG4Y-#`t*V1 zUC|jDm-Y6a+`{ zbWDeb`!NVE3p_>`{3*l&4&$gOd~w|K&tj{n2-{ByHH4$S5QeLIGMXNa>LUyn0~T;K z?W+MJs)0cPniy_d`d0%g)Gl_A3m-h(;2<~zFb%2?Y-;sLqSLwY-8J+<*iV7dJpF+a zH;@jMiVeg|JaPB($yN3n8i!}_pPzCm4M#-~hSLY!;s|#d8093J#7^Fb)6$A7BE81L zy$*sK03#Ca6+==MhEsiF)9gu7EnswG?{J0bQFAQ8=(`EC_hM8l zoB^y8oj><(5&khDUenxLw>_v(t+0V7yZ5k>P8&g_yT`o(mA^f3`6Jv^tXjh?FD}#L z*Oa5L=h??M)j|*Ra2-;V%?iua_xg{ti{^+PY`8*__`;)NNYzvU9botd>7cldt)9qD z{c1pi+Vw=1&Ql?gpK8(iL{QdKEdV$!63$Cdf4NWP5`B`<4>6<;s(^k_u3u%v-Vq?h zJwa&kaGxW=M?FbE{;6DVo-E=Eiqs<^PO%~)ngn*}c43dV?c=8Det0K>zmsx&gBR!n z2HqJ2(xeI|PogJ?(?5&38hK9Y;VVhC@&TY>#Z=fwu%SnBZ)d&(;`6Xah|%4D^mbWQ zk0LaCqx{%;EX_ABf|viL5ASbZdXumOzAmMjG!}ZZetHTc2JYXq6)73(Y;!VllRYa$ zFS>2ldb?~t6|DRK3GaaSiSLM>%|>6>2Ys#_-yjCI83QaI{kaegyz2sjdnES?bN`-R z8P?wI{7vA}Ix69Lm%ed^8EWt6m%Y@<-xBV+yncU@Fks~#ei^aD9)Sj&A~S4Xf7J(` zlBeHHRLn2{!eE$@kvqlMe?3j6-#^U=+~|@RUDMq+CWLRycQz1iollPb@;S$<@<#N~ zV>(tXuyESt?-=6WL^f&Hb`m#4Y}hp}HvZLH$HL=!ez~hVJS*?dydOHgzr`YdwPAj6 z;yuhanLDUfSyZW2Zc}HKbt1}tZ(1kSZq=Ce%Q@wtNMk!BpK2#Gko?H6au&ai)Z1=! z`JYyAE}Nd8KmujfE%n`wITF^*on{S_3s^X$pO9!0N0XslBSS0_pvK4y|YT8xW0r;i*sg!ZB?(^yo=7z zq%)hWTuo+uCF?KOX}6X+FG1tQ$dmgr+p6U8@`V$p77cc9l|?-$8&mmt#Ez|+GQW+E zCWwMLtBqkmCK?`#rdbk_Mbzkx~wPF*7$Y$ zZ5!ey`gJKFYv=}|Y4I-|bPb!CD-nietcbIotv;+UBn!kBz!7yo{`eRVWs ztg}lP$})au{HtZ>PqzA&pbGQ*$#QAM#Kx$+yIr~qL@o-i8JEj{k~+PEN{vnlgpx7j zgBuO^$;(R1r&blue@P2|sV^ND!nlpZe!RIKKKX5|qmY56Cs)&$@Oj~1 z>?~m}KE~zG-Pb$1_k(X|v};GXcKQ;|=_+1D4P=qiBh?&x89E(Uar$XgYj6zXyQG%E z2EL?^4{qWx>Z9(L_>@zg@klj z@a!A#>_T{a+JI%R)587Uex|$j#tKCLZF^G3iv9K}W~rsce;bar8z$oLm^9pOA|r}b ztoGXV&^8!Xvk<5_=vY@t79ZTOHiczcM>diu&K??;Km9Ian19-HG_G`DATuiG^lf;; zBUsf73c-7#JU16zF6fZ@G;anAAO_DN_}D~ zdJ~=WBAE)dzBB7eW)?H{dBax>;JYg(F|`p%nfvRV*WM&&7dnw@q+0JRhNj)z^5ln< zrkA7yhzuXT(5GR!_f+oNwdP44P>(axr8Y(8Qdh9|*Z*8|?3VD4L=kEtX3b6%e3Dn969p)qPHHW(D}jn zZP~f?QaW4`Zn4}Q*jX-*S(n6)Rl(-B9i4S9P|rP*JPg?)?}P6)GqLGLxuDrl(~L4m z;)x03KjMEEt*O(at0E8G_bltOW?y(YYdB?I!m8shr8!3t3xw(U#QVl;PtOq)_V?fZ zTb!!Rz6dS0N4c-98b9yQX1;&0IabB4Fu~WdyU zen%J?ba< zqiK<&fCEyiZH(HkSdr9^Vo?NH!b)&D_BCKC9+@%iY#^c%k)5g#6`y0wI#9Em^d)1n zn}z3onejs0mUl37O}*(oo0EONjYAWs1BtP< zZ3Ahcth>1ng8P@Du+Xi~U#vwJ%0TiZ8X5!y1tXmx*PoSY-do9g{8@mqMEoMj&{ zG+k?}R~J6+V6^c%HB=U~cl73|1pK30I#OfYR|z~Vwj0rQ_bd>YX8LpZuDlgCG7qx@ zHbE_KcG)T~y%yOH*;8tnNM?*b8v{(h zCo^P%JfL0s2X8=nlLtZ3r$u+FC8O0V_2Nm6e31|Qw9ot{+~uNM;C?Y=ZU%zd7mMaz0Ib~(|ZLb>^tU&t@ZF`#WK%v&bV z*5p7sCMLzk<3MRn-Qoa}K_)oL!>!jtNvUJ(x46?EX)`M0ePXs{`cu$cLH(+`OCE2+ zF11!hUIe=ukt>y^RUwwwGfvloL3tg1Wi8t5yQqLX0s)dl^l;K7c;znRX3L8@e+Q8ZIPnBBt^KGxEY)xLMtbiUw_< zaHzWO)ip~ou9E+ZD!j7*Ig~qNX|_p&EF*PrO72L26`{TEVJsA-Jk|a|`j<$Jf%5w6 zO7NI(-mnbnA`(!#^e&)u%Agh)K$3|-l8HJFQT2h1P_gG$gU_x{$uyA|h{g{U+i3he zV@{Kxhw%`_=3q{H>A3-eBYGW>{qlglmpze^bRoxRI@KwChvq;{Jp|d|{$u~qhOX4o0AG#^q@E`(i#cg43v40M_vs3GS zHO9KeW}q@1@^ntsK=^^i;>=xb80<&Ye{_9Q;qXwg0Fg_?@d{DyA_b9k=)qqVtaE@eF}IP@c*?ZqESsy4?U}v!M4`Q0?Sk`(S~(#Jm*WBuqsIwm@-F*)*;a zjVm{4gYL2J(7mMHQGk@)u`lf~k0?O@@Oyfnw<*RpLxK-*fjW2xYfJ8AbpZ@!fiz}~ zyGov9f$p8QRVQM{|L`s9RyxH!XufEyjjb8-Z)=z%TK?|a@a>&dhL1lzO8A-j0>NlR zf*>CD{_pH?b?-I$YxWDXeZP6#KGlc-{<%~?yP;8)qE73#aw=uI9A~f??~B96JfW^0 zw*%vei~6xWJL=}MwgBEs{KID*yAnHItHQ*Ed)+CY8FVT6>GM5&@4hi?)K(vQ29HQo zedjR|J|O_Z4yj5}YT*L)!*y-MRp>kh#7%Z*#I@mEeJG2X8Og~?ZG#BVYX{dDGtvG9 zkV*RwVDSWHLIIGL9qT&!+C^Z2FB|#{R1*jb0lB3H<%k26%l>N>@4!`{D=U=?rNvoM zFbe`O!j6yL7r3wivw{4Tb{%Qp$IH%;d%LR2WdT;?cG~ihTl_V)`b7-IH|qX=u$Q-w zK4_d(2Xj%v;8s#&izo3A)i9HaHMV=Xa*bSc2=6%402YasIbhl6a5cpD4B+p{G%q3`bY4*n zy8c0DP{ht(JrO!ED!eIjTgL<{zg@nZnN#DzwguvZRQfB4OSywQx`#s{39{}X5Z(y) zXKeCa?$NIHBHNI9`EpeDT122dT+ijpPdTVyAl9Jv4@0w2 z;}&ne)6(S1p2YK(&iEHE@6H`jPrj-lMw^2qQ6kGv zt7ZeHE)1`=m_O}8GlS23_`#U=ERPJ(xe(7madkXk6~&Dp1L4==f|(M4nG%4RV(w*$ zZZFqWwV<<4!UKGh-CILMc!+>GG$IZr3J*>!I1ov`N0Eu>G25}rIP@7C;N z60r3#gI$B#Z1R8s%t8I6^(1rol`FOE4t-#2mYr!)wM1hc3O}?hys_BdPJ9TsN7&~v z7jX*7zpk0b>ROgfoW>8^5@{i9I(#!=H2@X{m?LXyL~f+?HqSRs23O0=p_<_d*Cv-zEX5PYn(uGEvx%i<+$O>m?rZaUU`a(x%sb%i<$j1 z*_)Fsf=ciW_cuo~uf4xR$Q+WP96O3;33-Bjf|wBx6vmtkH$=mG58`Jr4|$%F{^M=5 zlf$iUF7r7+6Ybtqn|`UG6`!w^mr23SAA5{{OQ<)w!YI0@`bc|ugV27WK9Db{U^kRB z-Qj*A%>?VLlP>o~*-Lt8MRtFLbW8fruI6`IACK#Q@HpfB0W{l$-hD#@bg`p9lCeDb z(pR+f=fe4D#1e+bWJ*;{gOx{#RP-S*0NaCK=1UVqIr$3Z!uzhqH0@%Bl@t%GdyZP2l2 z91TXbMpbfB|XYfRVa1FRc9kY-gzSOl(lv@)fc^LWRiNNtT zjZz{a*@zK)e2)A8-+GZ`k+`dVKauap!c4Bs7V1jP+6X9P20kI<7H1_rgXl=K)PW!D zZj#ntfG|_wW^0sBU+CB;9-yyjb1o6IEYoN9d|^lCrQ6_``4}5l%J;$8y$)-RbHEMJ zfraJZFP#YHZADc7YZJ!UfjM%_yMibV&Luj?F$UYz6@2 zy#`Zv26;yQ51G{tAjz#WL;)lpfD8nX0wD4nL?VDT;h$JG-1j%0wV9=W=TyWaR8FV|Ff9^%S?Fx3;3|%eG=kGYyN8xiMp!gCJpRJlbHVn zdjItwGW`qS9nX3xF|L%%W|`a;p&`0P7D%ah9Um+*23TaGmSt4kb~uf!BNG;*S&Y?a z0u$U;Ju&7n^B)A`q)ha>pRO{(4X%XAy&>G_sG6F$QQ@eVK4qTKl?b2&m{z^=ZB)TL zR6+Hp9dhF-DjAJ(NMcc!TW7Q3<_5}hR8@0;5->pooK}Vds)d9@xTLS-ui}xZ$+k_- zL|RfWuOI$zN80=zup^D7_o^=20jK6L)$rgLdfU=C5^2YIYo>t0yc2jCeNHolC<-~P zUR@We-;AHClSBvNj=Cr3n?+=yQ!*P9NOeYT_xZ zQ7;4s4&E>FL(n(Oy9_-uz{8|OJ5HhIE#}T|B`Cx%B(oyEBdcV;=ARX4q!r=kT4x;f zf_JD-`0ZsF>N=3ufZJeJ+W@-J+s(pwQFvTPJOwY~Rp@Ib73^i&ubOp1vTEgqteg$GA`%>~%i7vtsOi6b-Zv?_^-bBMn2^8I@CM<@ijfw55l#-4HJ^7Hu8$ zn2`tM!fyWUeJM{01mva=qdhKPjz-g%$n~ zv()pZi?0%jw@Xo|^%fQfA?7UbI>S2VR*6Ho<~E>p>It){^$R{|G}tfmpq1dCVF+6z5)4} zpC^3r3g9uk0-zt#&%3@B^I6GUQ79;$Hhd1?VcyEU#LS@?6QzwgEs%thtaZNXN3!e* zqM&6Se#6iChauK0&-*Be-c$Z_zzy?O>7}m*&6qL>Hh%&SA?+kS1vdDFwNLhNF=ktb(P$IjpS6pF=B+{Va#tBS^qxnb1H72G z+AoQPaktxXB|Rrl0`ljZZw-Q6dV&OKfWUn}0D<2Wc+02KduD$QXkp%}y}UQ288Zh1 z|Ef-cuFqs4;doFOgoy!NPi${9OV#|ETC?|#^(#lQ%?y!fq#U1({1xV>x{ew4FFXdH zZWru7(M)wvt9z=Eg3Y^VrXfmrK>&7QIoOF@Fl_^IhC5{OgSm&JQ)QD|>w=g|awv^T zA6Qpcc!-%f)EX2O3MeWRP*f|f_BMot$F0P`B)O;qj&r@hy843iYCqjDv!(N|6d-AXX3#uzMUvJQF7#jROoF3DB-F47-r9(80#&V%Ugi z<;8(~0b$@9iDY8W30$BC`{b!q(VAmyJrgz))wuGWQ}QtEe8OP_|1`J@jgjz6I>ksK zItj9kPsKoWQ>=>KNYOEG6M<+}THvc=!w3e7j0ts`@2WNM9IQEpX^d1E)9WluG$SNg zcCwUTEXAe0#>>GP)SMB>eTBe6>X=AZ2}d?O0*gSK2!2)xmZp;ABvG<*CrjqVYx`lO zl2NCbdihu3LVKW7QczNjhCwa^L7ceBW(l0pfJz=F+e@2`0Y>8w%1cZW%_117& zZlZ2DHuFwgEw|};$!*iXW2Q@CfMwECitc2Vs~m4#rKxYR3+l+?R`Q@_9|^#6E|-2) z`%R(cj@{?+uKD+D{UlK13Zetf2qFEbs5hPy6hJW?okx)@`-3jQR4>6)7g}Z^;=irG z(4msO5Ad7r&|)$27MI6XXyOX6pC`Tv&6>}3!0KtX;Xx6o6+O{`F^%U5L}N6(rM3Vz zuZ_|)z%P76zrs3ZY3&3yuW_SqQD+Pmovm_6p7_A9>+m)Tu^UF{ECMej=fdX@>KyUk zB3&nECQ-L+(l6nx>2Shu^qldJM6dqthLOHeM{rHtL%9|8V!CE9Q5V1=DrRF0SUtpB)pk?!%d?K@k;NG?oschQ2dNoPyV_c5Jfo7MxL(PReOnG)XV7x0q4o?-cHw$8I{vLYbiLQj zI=tEH2TgtM>9#f#D~@FdW)mmQ+cyrjNIH_A-O&opP%{T;?Tq(fX`sJnMi3LCy$99v5?2s7fKb zw_ANkfhx&+bcOmc+!b4hhet=j6UjEGuSJrIj69oNgv|FTfM)a8Gh1wOTXmo`HD{^()LRz3NDA1s!5sAb$Gxf#em zNVhIvNOtRoa~WR^9`Zn>;X1jB2X@Vr*FNZdjN0SxJ8WOPH!}1;S<~;-XZCwEoZY=T zlZ3u!gxtM4R%2U=((^OE_KmMs9c!17dFO3KP=A#6qBIH4B31cDjTjKJy5hhJ$v-E8 z!#?Jfk6F`opD<9ypWLB8zp;2sz8;pSeGJ zsM|dwTX>cmt{B4C1uIi-Mhl@zc!OudL(U~XM3_z|wuEI9xW{RE~do#+N z(3+cJ&i>`m?;2aKi3oj+TrL3U<@&#l)BfvtC|DK}HRObNvu>GzsQ)CL$}zG+QncxEDhx< zfdO{d|Jm_Vtc$m}GU_kGGTrTa(b@d_^wG=6+W7ACp5BxOin@TW-)Sbo`?DA^#_(a| z2SpRV`uiFbN3D;sh}VF0E>8b(^Q^2zXVqgnvW@=7K(K3{bn8E48buSn`uoH`q^$_A zQ8BMXoyQd}>V^QVk2P4A}l2NgXF9*2`d_XMT*ZC?j{{b=mgGzn+ zewe8a1;D`rSox=8BUhe#8fCA>0^p?o2ggSA-#UeVqZbGmJz`8EQXXIgJ-;IDZV-D# z2UgFwY@4_rjLx$2w3+eOw;SZB8_cwN9D&o;8nPB%RnE%*M)UyA8x>#tV&5RN|H&u;-_bWv&vXXA@S3am4(6l~=0J`il=AO0AL`m1Wo)e(2sA+v{07?Po ze15}Xg?}8HQ#6UHzi$C-$LMnK16D<3FRq_q(rj}OZ|^rV%2|w7J*NC4cq6!FRN5^X za0e$v6J^z7^*`lIaLc6h?myNEWi9@9C|U;pXDAFfwx6q5lpT+XSX7T+ezPct<|s?h zRA(zm$W;GU43(aL7?&)MSsYiae`*}>)@vcXb&KcH5-@EP@M<}iLt#(lB~C3!jlfR! z&ld7vX7L!bev!4{t#aN4bk{a(PG0j&S#tz+3ps#Z zZgS@1H!K7IBwjXV2h;io2~kof^{(eI=&SUU*nfA`L)*rs$p4c_Q8!T4J^xYkmo5LQ zVFC4@`K5oM>4)9_v-txYm6ZybGhl%cC!=e>S%#v?N4?`8x+Z-tr(r=2fOee@e)dnP z`Ns+FKWaNH0hdGZbAIh`(fTy4Y4xUE?}zYq-3#cin}i_35j{-Mciji03$Xc5(Gu>b z=&8T10kPD22WlW_?yG=~b=_m@uN#HT!UKSq?nlAscDO>vDU5d$0<_*{Kp7f6BeV)y z`?0{L`fm`me1;*v{sG-nR50Y5C_ck6uWu(5+>g@HeK`PEZtmGW zt7EHQ5+(uP+`p%*#-3LV4gM25IsbUM{^x)#>IMPrmlePP-~YrNKES^gYmrT}V#t3H z=!UuhOnZe500P1dffgSNAc_79JbpI70QjZ<3%oJFNa1JwBPRkd0A8jdUVYMW|Kcw9 zA32`J0NXhSKQb_Q$39t@y3A6pKzzrJ97q{DEexwhY13{eP}SRP0Dji&0jO!S`X}wD zfU39I0VKP<6nynIOMtXv#;ti9K4|o+)dM34S-oCbydpoVtbx867U)v81`JqhQVlK+ z8?i#18Xbvm#9wGUYB*cA@%&J@nNwJgj&P&tG=FUS>f>9gDLHWcvP;iszJH?x?G@$8 zZ140Z#mn6+7ybGl@3vj{$>_f90Q!3OQy{DAOaN`W-c1nG@-h9>iT3K?IX1r38PKav zjrv+D*8_bPOD&5~X^S+4YO>Hg2RubbiUV5Kh7*5?P!A+8G$ySwSG9qAj;`<#nJ*Eu z{-;s_s4ihIv6Z~kPPa$zce+IgEtu6UrfO3qc6D`Su9PRo_&iKuvWqlPG76E_#RxJ) zC?}G{j%mb>CrDLJ&E&`u;L%86|0Ga94(Ljm-oPYq-;bfa+XRrYC=fUNgG0_Hh#k|4 z9Zv$_@Dzz-AR%KV0ElO74_SjEaYFzfONj5WD#|)QRs_IHorxkYMTr|U0Il+`DWYf< zA!!)^^uJ!zP%=c!TXJ2>zrpQ@uY`J*2q67dX6k{DRes;uvrhR-3M_ zOD{9d&KP+>#PV4rHBr>|48D(PiaFw0NWpWQa=8~7g2QQ99HXM6$=y9a@892K?uy-W zM=2lT5Tiz?_eV$j>R$F4bZrkw07cOWw8kB73K6w5i?sf}7Q5GhEPmiz7k&?27=MiQ zyrl{Z4S!rQ11hWKe|zOJb_)vTG%oR$+8Nd^&^0iVGwOyxKK`;Zo3DIA>rOP_!y4_= zD-Pq*?z|ZnjGhZ}K=|#AS$kS*3)ikkhq3uEaGQ9l3iivP9)73c);>Jxgt7LU|G|JK zfLW(_oOU2`afrTwiNSI36VdC*B=x!#cJM$Dp5wItz^8}z^Wkmq{Uvwwp%-+p>QBPw z=XW44(xxGGHlTiCi-P1PvIx(294xdcnG`H^YsvSp2MWe0-B!eFNj+i`$;<;2RFVr) zHi9JzdHSpe)3?ZOYqU2yWcCfXmZ$8>#c&YeR!&SzpM(IcsYDE}=EwoNv;d)-xc8cP zeAGf`kGLgqCzVGgMzI&tj-eL3P9~pR<8>M;`dC>aY6>wm&7#*-!|7WaEbG{t`*~Iz zq8lgSFZ%ZWz>Yi9&*DGMgBcdm6XUnUl!hCezz>~S{+uXlhHqQ$J6|vd?fcG2iLryK z!Est`G)RK+tT*PnQy)aU562xpcdpDhHB|>G_CNjHl4BCl#?liL(Cos^y-sF(e@%rr zz=aD%vTYwV5lga+(8Y?>WfFd-#9-UCJ{+zeOC3qn5jgfsw5b%~&*FrlE?=5BW zh#gT_4`b{%zPqI_OYdD8e70^9VG;R;N7(0C6VEc{Riq#t&*>lINx$UT5I?0xGfRtZ z+o~Jy6(&IMpQVy%eU}t*^O5gR=$Ef%ttdH#ZNPikm-8 zaFy)bis%oyVZAH#!M!aMWOuNKafai{X*)MZfU`hmg7H&wb@PXK7t7Di#|&@O^w7@r z;xhi_q_nI&`33b~=<`=52P>|7@=H6mP45KN;9FNQ_D{_(@jc>N@peepUGKbOhbLs( zxh4Kj;As3|f1 z%2K6-eREhJ41A5@z}ULc$~4@jfW3e4&A68RCf6;VO!uk67{hzO$fh(Ias(7!E&b8u zWHZn;R~9-Qfr*s*H>X`K-R>gculS_(Ozcy~#kz-x_oAhsNuw(Zha#jie-=tFIYd{C z0v*Jo`D)|%?L5lzla2JJI_I95iW_I%GIn{L=>-|=W8Bp5C>ggy86R!@gWwxAo6^_y zr^_nzTsu{l&v#baS6>ez%q5&sqp0$p%+xrKNohx3`OIh7uixn-Qdr^MWS^HFRWY!Q z@4S1;W39ZC7rqSVykcKlH`ghww&u$MGneb^Gtw@n-mO*HtuK=slV1%jy#^}_A7<5U z1}l%#bD;twveCy~AKcudXT~Ee8$UR}7&HlMx^Ep@e_JN4KUmpL)!8Qht{ZeF!PC2{ ze<0K{;(F~B#<&V1^Q2u6+dP)qKPLap4V`Dnv4Lq*xJ^94R=A6?$%Z#(}P*5R2 zu=aK{tp6+KZnkw;aJTKt{OhW<3MRMOp*0->bd75l8h0ZZJOI9Pc!d7=7>T0^+f1V2 z&XLe&ORBW!rC-8<(5A1ZK#eMqIqJb5@~drm7nnyUWcZz;3|Fp^{>FpU9jdh z=!)aF%z`)zX3xr66vjJx#l=4uWuD|V9!CiQcx2L-Bl`9$E!Z}L+au}th>%V6`@M^e z>STxHF{p5lI7b_K7HIh)q95gKi^frz8ov>h>R=lIKfB_N!$;&fVeL?Jz%NZ~roi?g zp2uu#2hZqsNUiy!bxVXcZxvVG2xBC~0UjQRKMh~Au$UX8qeL~)ltSg} zYxt2xOWGqEyP&9a{=iPGFXGp=M7>P%Ara(%{|$CA>kYnXy2~vjn>bjOd!H`uHhE93 z=F<8>d8s6HUurXe4-EDYB3~DA?l>sRVn>U zf{ob+WgsRQx`|>)yash<*xos`@#hR+h6HOplb#~a%Tj{(>j0hS2$^ZoQeYm1ixT+T zQODhV->YraDcBVIiM(PgHsLrz%_xh1vQXZ>s2$>i>D!L$lM%juSFXwA0Tm;kj*P%zYHc#CuVKRiUm$p|^VR*46$(S3yiG z>VB7OaAPhMWj0i4I@AxxuIhy^V51{T&m_t7{*`I_>2YF#d$Rb7DLElw`TOG19UeeNumIS7gUn_lbCemE!+WODCTKV?G#_!w#mR~ z?yUhemJ#81Cm*Q~d*s_R7nX~Yx;ZbDo4DaA`LBTlH=I97Y@&iOeg$ekaD%pnioKxM zZ$MxyH>ZDy1jT5b$pS?0yoN(koS5(?Pth_$XX>lui%beYC+%X7{^&CH0&z7|zo8>5 z*J5(<)vmXJw9@~G60VN1_xB~t)55F}7<$$WK(WHU8)&M8n@1CdDMc3`5A_T)&J5v-YS9jJOR!GJpo9J4{U?JMeGMQxn%3q&Kd+h@e zB0pikiO~Byjy^5+RY#^7comzj;eDVY$c6~a4H~FhXIZ&P1#$3yqQ$D~iRYdvZS42~ zV@%Ur%MD-fu)~VO!Cp)T=EEj`IP`CXb_))&4D_(S9&=qR669u<6H`0f)P!jF3a&89 z2q6C(rF|gI_bq&x9ZRMyNn2q&etQR#mop)DaePMX!4gk!vV;@?>&j= z2^uD(NR{!R@8oS3ADR+xO`OBHL1_E>`W;YUO6JC|q9B0Xhgep?Y^N3hK)#yvR8d z39o-sxEm^ZpMI@0D?BK*(oT(!smd=g64Grjp4-F+VtVy&TO$Xq^UTaD@H-}cQxyI4 zg}nOItl#rT6!zy|!!Gc}{BA6jKrNNPb(H|EB-c!Kvr;1_C+WIzp6Q&X#Y<}5>70he z%kh$C=CgYX*>*l06^6Kx`iWO|C55%O2SP`_H+{0cxtqRgWM!7oy3568xoFrZ`7W!~KAZyU_RXiU6Nx?jWeoS3eslEhEc) z?1Mc+!RO=$W3As2a3f|TFVbM%8_zi8V~9qFpOk(znwI48>JPDJ+WdEaeO6uI&`+jZ z@W$cq2=yonVshU55@!@$#+ioG44#*LbMZ_$5E~p^KL3MYa7Nk4tMHJazPpRnIg0Mk zk`%ya(AL0rSa(GB)uo#NY$h{^L-lyJE_2_FlHLlkB9w{jae-zDzsdL92sD z-%=V;&KCpIF+je9!d+GVVm51j#^-)EvJBQvzDAr$m>*|}Yl8&!-$cgWqqoBNU%6Y9 zsb1vIj5p&g_F8xh5igVQne^;JpJ-%`2VLoUci!0IJEecD>#^&Qj-#7_Tuy3+uy}SR zLMy)9Z6k@;i|L2~oKr7$ge(YwUH?%%mN zL6ugN2rHOSOglyI$|0@r zQw$3nHR}{6ld@_0@R=F1C#Ntj7WBT#$i7EHv=+ft0s01Pl6TW-*aADy84uUdBksoN zB4^@=UPi<0V~G99p|7m{GqF^Gu@AepJBXV}28w8SOMztyMPLH{my6s)lv77aW)Uoc zQcM4rjGM-DQn|gM_McJrNc=%M7C62xI&?s>7^Bv5+gn+n=@a7( z25_M!%!e-QwgFx!xh}W&qm^W!n>p$#sOPZYKcBoK z0od6HtX38v!b}<#h+1LdST>4Yfo3Rl4#DL>cWLjcDc!#p~9D&_P}MlcWC zlfGl)CsJ)iZ^W06n_xuC3~6Gx56-&`>qMGU)x`IVrff=%E(T3rPL}@oN!a_dct1Mp z;xT-ZCt(g{@LNcL{uWYxoKn;hyQXKBU_}l0Qb<{6YymB|G1c*ymY5&hI^Zs+f=wa( z+QTSacd(y}Jr*B5HrH;zkx4zHYIQYFnB{NUDff_o0HQ;_n|qb^Z<*Z*HbxW;6+N<< zHt4%FJMj6aZ%Q2Hmcyq9rfaE7f|D8hm3aa2-BH~0O%jE1exem9>eODj%;cEN){|a! zW@G`BhLShRw@2tJ&fONHdrkcWZK+4sX-UnyJewhsQ17O44!X&bMcZW&$n6L$`;TcW z8a$>3{<6>*h5J)^m@hERLgz=et_zXp>=f@Jg@6CkzZ8;GX#$}BS)!c;(_LD(W#M25pW9t^nX`@W z!;BCoU4Ac@oIyPNc*f~Yrm$a&#Ak4llPsARQMO$j4$9KvZSzZu zz=Pm57{c^kWHQn<1TlD(8w3YzEFrP*v87J*P+2t=Uaa?6?>2hW%s}oMj!gB2My0N{ zs!T9y$D{XC*>(inu)~;9z z&sYr!CeX1Zg;fO4#+?7$7K|Lf5e~iZc$uGxk-atBAX9*40P{t40>8fWz6F*!2?9oz zw%0Aaaj!$6I{2b(dh)9pQ9{xO70zspwu(L~tWy>&mZ$UJ$ zvNkazuogVgaK7vLZg+H2g{xyqhjy<)-gS-`ycr188?_@mh#`MF(0;Z*TQxJ0b})J1 zDUL>o2gp+E2vB)7C1^mhOO1@s3bgVCPE3)>)N=gNiRBs5vb9jHmn`}^vob5Xp7`&V zSBsdy%ll{c*K$5V25WISIE~kzTjgGO2-FxOKcu8DDo+Dg%%>@0GK~)F=<>CS5<_=N z)*5282lP8xBqi;#5?2lZC>rPtiHKgvq;25;;0A+4J$^+ZFy0BrnrqRZ6 zO-;3c#@$!U({i3-Ygbw|fnf;= zlA!^TBo@OGGAR`0$3>HoNX!C;CE~$vRZpczK3p486$*K4Cl0VgaWA9*XJt1gm%N#( z&q=G%QG{9+do(BYhkG!^gia$KdjzZ-}Qrw z^?BC{OGnUnao7Ca?m*gMqlH!0ZNBbYrf1Y^)bllw#Vef?)=RQ#c!>N=B})BN(<|3~ zd!9*`=TS-w?u9~lz^2Jg+gNB$6kN||wnz`g==r9ZF5}bDW{fle95Pnz)-qbB9=XRcVly( zsB_p_AN9G*r5k#>83C6YN9U^4a4ocPPIeoNrV3QEjG5~D4LAz;ey*gfOXA0fy{?K> z&fj>#K^a2LfM+Z59NcXPc~q1_4QCIFbQuUD!ro%ky+AIF@yS&IW+ju_mTO!i0#c3q zS8WhJ#l-tdta|)DA4nKRqwZMQeRYtwGsIJBICGy?TI(bhaFFGi){!Jz_acMtUF6YS z<@pAlCzf{Lj`RHLZKmx??X*ogE9^DkozY@gST_e?B_HrUFFl{Gq{F34gGTCf1$-a>VyLRmsJtU(z=)3Te!&>g}xb^Ztg6RH9QH7mh&503W zrn@JCBmsmL9OS~*GwIT;6sAI_DSN@OIw`TJ$z!9oK?wV0K_RhOG-`vwwK#laOtKNd zonV24!3LY+Y7fh<#tXFpZt_Ltv}LX0oIV-`DXI66QjBwlVPLB_=xeL}sv$dWL_7O4tz;bwM?PzWhJ=Ds!tB%& zKf7h0c@!tyQo|4O@`DH#H8oo}maG(&vXTzQ$)-ky)Y8QvqUP??mALZypj~T#eo``4t+T$FJCZ1T0K zjMY-N{7OFrp#dw;AB4sFR31`aVT zeWzpJiBjE2XQ3kT?tT0$A8?^;#0rG-iieuu+Ye%Q<9 zKJNMwY`9q6E%1rSVErMNiUkRftvX|5^jeSxk$lZgG75l4&U?a4%E8xX|n%r@gr4uSq42Y;`? zL%^G$l+-nx?hhoVnG zj-+A)@>DR~7}cCvCMDrq7|LfSLK)>wKgA_@^oc=GgE z(IFTn`R(2wWPMqDf^rVNK?>WRT0jkF5Lz9RxTyMA8I;QEBCt#?HQl-i-T8>(Dz#1R z4dc1{m=7%8-S%)!Xt$GPC`J6n0QZar%Iq(lKz+TBet~E_{%q`gb!wMx57D@(jMs=3k(ehQkJ>12 z`Z`@!xLW2yWQi(j(1hYBTB8G2rh~0$jgcWxxH24{%IQxk_IsYd%>W?g0*HXJ*wRWO zpu+J37u|@LvvT@7-&Nc?G6s4$#YQbYL{rCLG2|li)Jq#cy|OP z#9#v2S+(ZTc%%aE+Pjog3Wq2-LGwP+7H^riAs=XsGnSF3oI~$Q)O~l&FmM~(se72< z_ia`xO}NScBP-#0>jq=H9y2g7tmsYZIwHmbP%0$BtJO`?WPM2S2lY)h@$*V$+zp1o zt_vLlph0(X*|Xy^*vj2;uOiU{A+AzH1Pdx>GUq=kkRf(>7ccLDUI6|u~ zKpTzvLQ+n%iiV9EKIH*%%s2x=GT47ZMK&>)sJ8dEY8xx8r5AD{cnA93i4b*nAc9#|+)Cs*gShh{|CTfaJumsox@zV?M0)gJe z)RCq*X56E9IBelS8Me=yX+Pd zj45T_vdLo(P=h4|WB{A_B$w0+vv!1rWz+glC6_eJAOd38b_U%-mPtb(QJ_ zQrbS|DUVeZmr5JX%;mRac`)&qHpsbCJA&&*(+s?xAkvL(xv7ElV5UYQ)5mIf#A%9m zGi=C7mrs~DTSQw9<)7*}dywqeLwjI2Jloh59!(_GbKm=S-NLW4ma2S(nb$rf1B=*i!MC%0rN1xCv;SaV)cquXS@6k@|_V`wYLp?fpc@+R?d(EIsK|p=W3V&p8Fs zNqPkse_;x}vRz^1-Ud_m6KxGkq8n7AV1Nn${Yvk!5ZyjN+R!IQ+802V-0+Q4Otvjc z_av2&9E49I*F9ke7sIC;q~kT=LUOp6v-eduMT2=r;GGpKoZZ~QbJalsTZ8E%P84Zi@X>y)RP#$a6UkLOIPKJYoJLu% z5fC>vpyz!aQ5Pm4!>yFED3T`d#MiB1Y|$z3DktT6ElP<$cyHe8@@rBJ zZg;lADYPt{`-Mp<{JPK7T7Sbo_^aW|D!4&95j&i$v4e~?55n9mCQPzrV`t!hV&plp?h&-;v0m$p^Z7iatP1k`*t=#AnN* z@oA1Y`VT|vB8pu%2`Hq#aAi~`q8Fo@s;SIXxR=Uu+ z5rvxcsbsZqx)_qyWA8QiYS=2=Ba-{uTC4~B$Iq7Jvh)n7GXF9zs&{srmR9?kIb?89 z?WQwj_zQPH;0DQi!40_lM0CI^cSZ`kkT2!;aSkt*z|*E9ci^h8BX2?DdbGDeOGB&Z z=#Th@fska>?E|`qrp4mf?BB?1#>WFK!B@ZWhG?Vh1PRnBKo5?B0Sex7AeiVJN9%*k zTtov|UFrtLR$`tc3V+at)I%a9k=JOG*3XfO@mdZ^LdIZ80ph-Mm~gG!1!9wu&(;OCXG%fl42Dj{tFE#zfrjM6PZ>Vj7Ml#j0S&( zN%5e9M>hlmR+VFzOAg5MX-)kpBqd}DC!4qtD0myecV6&JpE~l6$3=$LMTgc!gVqJn zzhhM#zpr{DGkf3c@n>gyRhp3;+a4*pB@VKbjg?9GvGk>b1y(tVSk>0#Y#zFiM`XafU3gYfU)Z0)@zh9FZ&t{ z9D-}+B&~eJG-R5mn)mo&>t?nCIN>5`_Dt3(io(&@Gi7v;R0mQar1`8@c! z)8##S6&RmONW*7n#|#kAJ(pG?kGBpuU}Fq)qR$$3;I`T?JE;H!&0ZN*q|yNxz{0v& z3n0Rs03s{-E>NMR?h0_E#?H-vANHuB3eKl9tvrDGQ4nv$+WUz_7*z7369{>P1|#|1 zg+J_K=rIUNO+GJsUb@5_m&f?xkmuj=nWP6+LHqb z2G7lJ8psT*GCxkWd!W#Y)w~Mz zCC2go2OM4?Z9Q_h6+1+ID1zw8S8l@n>SO&crBJ*IsIXV#TVoM_Roh#BA+ggG(1eBY zsP&T32#52+;WWynUY~_HWb`50KHpL3hqPT6qm^Q8GW&+EjZQH&TIBXLD33^Z{0hr0 zS9(79jqLJf0PKYtUT68E6clGoQe_@YsOEQqXL~>9ArDfO7Ndwif=?uq@6;g^obteY zgBzC-IhGPEYwVI}L6$X%bznlXcta|@L|Qp`y-l#0pi#oUyAKHIWn^&F9Sv{~EnpG> zcTu}<74nm)H}9t#pvptKq6ROZM!zB&jM0&h?mc|Od=hVzV*_oIA4v#Tgkw%io+rtV z1%`%r3c3$$Gs|(?uW~#~Ois6U8I4`s1G7;j=-x2>i9j5xGv)ao8&%+YLV&G%&-U@+ z>AmrPakzJuNE!msC(yFxa(FOcJ-}r`M%l;gpml|P%t{t?u7OG+-YOoR}h4- zEJoLQSW?U~lMF%<&yk6FF~nzvgcvyXqhj9-IT)`WDKGEK~l~#O3{#^39hU!E`47%5uQC)(HHt6 zWv0~^{M!ErR>y?osVF4YQ4Y%rhD{_>F33R1<>amnn&(1U@*1&>h95rUeZxOC zOcYkKU|`XPkR)Bj5aQ=qkA{F{+Z%{bn;sIq9~}@;FD?{5?|s+LW7Scbq)&o0;qdQn z)c_En8RW=Il5AdW>mQFFxNEIs6@`&I%iU#it0q924+ZW4o7M$p>>}2eJVZ8zg0M{k z1Xiweh6@yImM!oRvw6hccPby=&;k8Vhd2u~#VfRibd`LI*BoGB@Pb`p#9z9gh8l-M zM%__!3i(QJM^ora1iNV52z(5S3s`O1oZcsD(3@o5o@!tg7y2Mja(TLh82-uIBmS(w zmb0|N=JW5GZh0VNJF&dV5q;9QWm-W}F z7r?@Z!=19=mrkleLL9Z?ESUraiO@a3Bn5Vz>3=fV2Z}}toTwaja1LbeLai=_Pp;%K zO;fpNCfFbW5+nn;H1)u)ZR(89e>rg0&Ey}sglCc&&okKgx{-(^^^TJi;BUA4*O=F- z*>!kz;a#)Iqh2{oN2khs!)Xkw1xiGRlZr~vMK9f(4lcw7 zeK@;Bgf>F?uJo3qD~HhoTfIX_qLz}{181dIg@;%5;i~v^ej+428#umvbO@tfC)W^) z&|p}Q{XpC~5!om4-N-iQ!ej>TtS74ly3Jiu6;KmKJvjHo#GeRagIXBVun$rql3p8) zd)e-?WdroAE3LU@Tc&^oXJnx1B&kjgYUS8Om9;^ovq80~2&)5WrpL#-;qKaWcWHIF zzC7}vi#zLN%jdP>{tQrAAFhY};a;g1$YSj&q;ufH+(6{KV*nwc$K$;9ZH`3%3a!Dg zbUcUTrErd)@iVnAGNI2hg0xg2w3H#VEc>cUYT~HD_tE8jZ*zTexH>=dtckm57pUR) z(e-+7dj_Zm9rQQ_!IaW-jU;ii@Yl6(5!wa8M!A>@7lFe$Hh(6f`6_T)g>f6tRHyN) z=Gk(@wn)|4kTEC{&xA!Fl&8Dk!>H3?u&R-eo1+rA+03C)Vx7A>)%CI5Gz}rh?2`W_ zJiyyFMB=@**#^q_3A76a(pThRB#AF-v9k?Qq>okN3Z}ss$h{cpzl1%x9AjwxE6CPb zT`wl_jkr`U7%s&nH?;~2K3pyEO7cHrNfJE@#r7}Op8&&$a<(h(x)e?WEqt+>qPW(*$;O);`-Qb zOZgxZxeyb%AQOcp0EPOSw49-Ms8)`VC8kxU;Ri>}z_a)F%wcezPeN7^0D0h%(0^DjrwJS2&BM>7;u)l*4YqKl_r@YXs3* z*W8_YeBOqOo@gy`CfZ3#ck+Q&A)44vqpU9ZPqNyv!F9g>xqNAMi_x|?OMMn{=4Ww> zzVL}Taf;Y3+p3AaK^z=iV<)&ZK=Fnu*OxM0-Kqm*stq)&ubC&U0Ohe?G!rG0UpN?R zDenox!p$qIOM*@~IAE`Lwq9@vjK@TM!wqi5QmU;;@>5u#gF5b3vX8BtKbRtMD z6a46PDZpZy2Pwp%0(`M*);6B>kBcgYz5DZc1!a)^%kM;b8Q7Y|%x6^gHor@V(cc(9 zJi6iQbh%Dl3^g=y?{R82q%LV1SWjY+@P7Z%Dz*NVRxQHHD?5+!W2Xo%0|DK)Ll_2c z6BTBN=p1G+x{=P4!Yqe#qu*P31oNY~E?I3N9bXLzuA}i+A*yd)ly?WsV|*#>5{tZu zbI%c!pV2|iRkq-F4>RTn^KHFs!b;ENiI#Kt0Ex$^GGBWCXN32=qrR#v{r}Bbzl+n; z4X+yGU*Hzc^oYAe#La?dU^jD&^|l%eM!dz~59 z8`Nn@L-Kvoms8IuDAvr_TWnBpg7p2#yuNo?SrK%PLEq}B{g?hI24{C$%*uzP8e$-B zA9P>49(|DFDPY_#m!!J1q9M@VhAfow`N{mzRzas~x+mQ)FGcfqm*kl%BeCX;P?<*5 zlt|^sc+1#Ii9hegpM|}OO5UuV`RDS_4suZVCk)6BRKKUu5kAJDRkS`En;#fJ7w(|} z5RjubJ(d3FzOxHt+CHP6vmU*&ZkC{{pXP1SX?Gg;#YWxn3YXjUZ3D+L<-Kzu0|t9A z=Y;bsQN>b|<%couW1*xmK6b`}@c3;`99-620$80uIi*+dM|X~*mtXMpi@3&^oI@)d zFXzqadhZeCP%}U7sZV5{-(J$>m;&DUqFo@rkZZT58Q`P5MY&tPrw)9gU&`WM>y3ui znk1VNpnmf(5atF$b8T}g3s0EF#RvPi`Y#CMjEhK5H3`&&JkGgjy|=e_XXc)^`W-Uj z-bnYe!zgmzRsFiOhOux%D)UZ+|qVBdjw!V`|uX?#a5>53VB zEtsiRo4jUwniLO*sID_wZ!?qXka&G)k6E=~5j0|tM-EPO_!qSByN6^KzG4YZ2G23j zCWk1CB-&vIv%8O`x_-cA)$oRArX*~OSg>iQdiB*!y6xl8j_vy7aOPmdO>6734KL>7 zsjbO90ZU4kFfD+%0%wcrZjOk!!cg3sFX}ZDRB2{$=yskEJcIf}v=2d^-Hz}>EX3Dv z>Tgl+Us9bUyolgW8Lj`U%;^ucq2%?P%A(%Ls0qWZ0B> z-h|;7N;uOw&80rcBri-Ra;DCu%I|hslqz>L*x-Zkt8ab&@;_KQ3f%E`krh^h4xvI- znjq2~;@w4KgA}&*>Q288yilUEPl}W-v3(>92+n1(1cnaThhmDhhQc>GvuGsMXNY!8VA)4 zH7mUS4YdyYPRyOjHVdg{v@}Inc=|r@MG?@~t~&R+L%l0dB zS&q5Bv|cvIrZ*iTFc{=DL%12q>{hej@!THVCO<(7G!xbLXU$vh_7NNh95d0M?)YFJ z#5x!Auqp9j_tl(^C#jr%VsdIsR~EjmQ$09sck%cWLp@kQI;GAt*%+AL5>%b*(F?O_ ztC;#TrHFG6DbrI5%B7wo>~xb9o7I;?uYCsp%~^Y%Y_I4f^w=UG?R;nN%6Q%P{qK~i z!c@Y+n9~y?Q~O98lM~El`1YhUMZYW&L$6pV5A)j>)_< zv`e$=E8V(M&Q`)?m40v>ltUXh1Er8IjWP=6?$Jx^P|r+O%AybUi0>hvf6wuF;;L+r zecqy_afJ4(l|0jt(uQl*(1IF!PsDiDaC9fQ9>imYCrRZ-8P*V+Vmma&&#p5|`NKfd zU_#a#V{tHF@z4hC)((@j#fcs~DuYm4$o^P)*R>R|lbIsFu%-JKxL5ssF_+S@gz#qS zV8z((K}{EY*n=Ju@vu97{l8(OYlWV0?5}QXlTa-H(d_HjfKu7+PSAV{P68(9HlqhfC)Ou8<%S8vcjBQaQaspAYtk`!ThYp>E_wPS-_ah|?A2)F?fAFyq+1o2cBBKMdU0 z)PXK~tXWnywlZ`g=Z}9HruPpVVDF=G2~8*M0ZGL=D)NwwISJvH`yb=S9_D3ROiAi% z$J-SMXeb`e{wRz=WJ^p351;hz#GOxC8#?jZzNVt&ihvxyf*X?J$Vrm@Ll$)Kr!5(4 z=X6LW%nciidO862s}DN`C@ik=HQ+fFau7k1BR$NF_c}hHq9OLB67T~sTQk^+Qj=+; z0xxxST5+>Qsy1^S#aQW`$;2U6j=XF={@!_BT}bR40#@E2VVb4|BXOR^`KA9hP@L6Q zBSx!1O_WteH8@f$Fn@whe+7zI5`0>MmeQz2S700EhuIzitibaV7-8+lR?#0^hjrl@ zLTtaT8oWP$v^ow*PvQ`S_1)gaVvgf-qqImCX_)@I!B%x*6dc4s~4%Yc}yUSRrpXoKl zB^Eq3JAs%yA1z7>Vh!q+{-ASpeCGT_{Idw+N7dMuc(G#E_Ri4nbCtTK0gw3HTO{rQ zCj}b;NH12bLqwY;GgC^AgRg1)3x$UNX&BsJfKNg?54!9q_$ z?L-eoAQ;e~C(bE|B{SthJEWC!@$;CDsYbl>1ocQ~g`YM1rPVWMlMQx% z!2~entgwqP1gVZAW2jsT>90Xgk@DP;s2|S^d4g@&vbPcanXQl!&=XzT<5I15 zp35E6BaIyc{{^N%S-)8`Z-aE2VBW_6k+Ef8j1-2_3!p5;U9rQ=k_#wRW+;9l#&;P@ zaTl9-&jr>PvD%9kls~hGm7^lp1(a>WXMn+>`Wm7QNLheflU>vXq?u5oJfpA5CcJXa z!pYf)fYHOt;BQEA^2qWBV;(FT;pOt2a+M0wkYc}&NP=vp$rIAZ$O*&zmQt^4vZmQ3MAwRT$DEVO!2;*O@xZIl4(7k-K-Ws8zl6$p zcqNs-BHv>0hZ7hU%Xs)XL{d7DXHxMWxgqCxTrIyZk1Ss>-=g>ux?fZ;$$(X3gxo=% z8#tBkFDq8929wZ`}w z8WZ2DF##z_xprpzx9?H%`8lxP(2DAAT>In&WUY0`-=oV>oPRMkvg+#L1GVEXiI2t(Cz~2X!G0-zf6E5j29U367yT*WF77M$wGm zq>(lV&;BUqy!=T&0YzPcGTu(J)99eS3`3eQaz%_Pb50ZELVBI?IQ7bB&G~t~O4@kD zM(MLAHZzSh0f*)$84X<~;%FcaOsO#*kEg$A;&rFT5a`22 z^y#e$r@(T5ET87XtZ{!)e8y9>uZj+2(f-nQ4;;7$>+I3*=ONnw948DZ>T4m!@_ep4 z$MJX_8zR7OV0@nt+Gl`;_Ki-BE|1-cyBb|~P8wTR#1*-Y9u{$BKt^0C2VB)-tqjoc zC5TJu#&xs-9Jr*X1E+q@ zBaek$98|}`F&uQ{eKElN&;e_U$#c~jQJRjdJ-*aWQqI)PR3Wk)@G4qx3o`RZWQDX$ z?v7ZM(vs(uRnvmo?fuQC$w|UC!x-qQCbOyu)`_W)S19{k^aIdK;j= z-VmpbHBo)`2}gCjkq2%I6M z2&jjV&##0{qx;2$kFVPa#t5Gf9sbdS^TZG3V!W3#V3OA-8kK(Oepo)U{Jc3la`|R- z*nw*!CEqTHskQ}Kl|}jmTjX@Ms7j%)-lVH@xRFI)t%(Ds_rp3+Z(H{)hDhB$C_dvC z;QV5IhWQ^|PX7BIS85Z|VYhyDD!SpNGH!UL ztgBc$%vH<;a$^8P`lvVRa} z#^=FkFz!F&nKILCgflD7_v9dE{>X3@<1~|owZddQ64%ASJjoh|j)cit9{Du7#Tfao zG{eZJacv&wy#(gG)aAEiYH+I29Oq&FBJMN~=0EyfYD_qn8o*4GI!_-%+-q8HDsbL4 z=+M#y2i<}mcMc%`pbM@+U@ZV%f5aBxHK+qlu?1Gos2LOOVuHCfjgNLQ6&#uXeRBV? zDo&iN63Ccq276;^2y`;<-w*4-e7Nk3rPKzr@j>U^M4Kyid8=}7A`A#tfukretHg6u zWL16TY8b^phOWF(?2_9U;DTi_w=uQ{IUE9JBkJ?V(iBx_Dtlr^M(8q^>>xSn*maM8G(E)OnK+26^2j*1k!R&?W@PPi!(e8bSqqX~<{KJ0tU}S-l@8T7G*~SRx z#p1kO@b3?Sa>}`1p}}Vz4VG}BvwB?UzNMhKE-htex|dPTbdq@GC0Mv#zce#lvRfQ{ zSs=crhFH&;`7$=UrX;F!I*~i4^BG^<{QTKWZD;)T7dq(v_rKrLzyEH%tOSkIWaUk? zYq_p0l`Nkx*K&wzpf2VRwbT+izKl=kXeoM*FZLR$45q!@bpla&LVcb2 zXVS{&<&20Y&<8K$VmppNyGE^ag^&X@1vFju%+ez`~>a+jITL{ z`Ttsg{=bhv4!|@GL5CZ#EVFYw%YprB(Mp1^5Ex}u2D|)}9|0YeSptG?cV$b_T^Z85 zn%>MX+q}&HU`9cY^YSC8_wo~|=+^7QY{B|4KZ4$ch`e{)h)DC^s6Yn9d%Z48(O;Lv zy4!4#&8w4j|80o{;&tpXzH3g$poW1F?#JVNamh{1A51GCZA%rjg6i&MBo`*VJK+^l z=@p7HAE(jMFzHQ-z{g2S9z(onAw6;GUbKC_vz8{`*}FgJ40NH@RC>NV9koi&%N>&j zy3=ZEO{qt;S|g`Y3~3E)t?ycM%DUe)n?$Qoty16?pue!DE-H^!t=7n$v3h)mM|*!> zihs2f9EnFWQtI%=tWw=o8EJYIKLWWG^Yd}bx!8j8+?~><(&@m`^4P~HS^!9y2N*BTP4Y$^KdKIwJXEuBd( z`RiJWxf3CqVAAA?bH*D%-V5u4Wu z!-oHXd|KcSoR&{2axTNw_sVbAn%-~M`4BCS&*E6f@ls2%aa+z&&@5Yx&Z;dhK`tWf5?Ol_3KVI-y`cCKp!OydC^~QTf}*~u zzX=73bp2jXoEo9_rW&Y|qJh8JrEfjmYX4Dvk9)THJ|KEWt3`C&@aFr9=#>~rU9lE= zDRWwatogngddCe$i-EyOJ%D)V>Vm;(Iplb7J7w=uk-Gqbu1;SKjQ(W$_Wk*IdMx#T z&>Lo%fuN46*a)rOWCPPl+KL`pkgi13Jj=~644|&y+mN15kAP+)B64Ou>@*#%D7cLYVfP*X;ka_*M{=00E)t}p`0upM|oLrep z_v=&9(Qv~$7j9Tv9JF>rN5jqMT)6pcanL$dN^)T5WH1#yQt-c)UsvHkM*TM+d|bJX zHD~qfSjLIj_!T@W?S84TQU&0cjbDMVa{a1QHe$=U!;*yKulgK?Xf-mlx~gJNJK!B zII}l5ifW-r{3)29Tzzt(<3q;26rJWAT^G4mtkf}*?#X$?|2;40r!gE2xc_^)$pxST zcCEC94a%zd5#cSQ3sJEV!j>X`PvYEBX_TuM6VCmVM!9k`;oRTNgxwVx>HywO3^_zT zMSClY_KN78*A4fl6b!cELzwUzmV4*kLsXsXA*v4O?E}Q+L*vfD0ljm8xN>ORG&uKq z)1a=qUX0#@9K9Zo-rFxK04Yv2#p|7gcs)n9)=9Ub%-+Q>@afn9Bp1fwoyr9uxzY*fcViRKyLT5IV%lw!F|&aC-G<}3dLi2) zp{Om4HIJ87_z=H77$#DO%GwH5601%3SB(hhO*{TU`-@9wrOGUZ>3!U{{b>_{aHyUp2K-KW|H2 zMA{9m>buVcV=JUrIyJU(uXF|g$S!c^=(gqclEKwgG`Io_x=h|%ZX1At2F=e)*sVOa zYz6?t?j*)oWhLrX>C{w}s1DbG-ca0SuXcaPTl`++EPh8_R?U|_#IrnNDAmUKOjjFEeTe^0 z9x;(hAU6M(t|VzmAEIPk)Lr^az6s2x-?H^_m!{dL^!WjOZ5r+de+;Vk6@jajm1D92xe~VvNX=`+A_t|lg{(O{4Tu%n{|qs4uX9}i{^?xg0e$~(kkx-xN{+*XbS~L z=L$InKz&Mv7|-YO#+}`G$GY8FbQGUYoBZG`I`z%(#i_5~mNdT;SH3=D(p=44^CV@j zAx02Oor!78HOfo!P?OCgpv^|~?CZ4N%oVLSfF^CLWxQclZMVaO1K0}KdQ5dwPE-CZ zqs|=CsPhPD)oF6xvhU30tt2~eD~X5pBVr^uEh_p_jB4^)O9ijB`JH5$Pdh{N=XdE- z*P~vRZgtnx%X>4iNG2Gc-@x$FVYu=X9N1zhGl=(xE>ln3hX~{H^djf-}fgLt|t$C^T3XcT5TZS z#GzQVQ=12QA?sqcrHLB?9p1S^YS0E504cgOIex$(#z57Vd<|U+&x(&n2G+H+^ z@po$8{x6_;57xTEgadU0mI((4X4Y ztagSljar`1imd+}6%@WQJin8byjvRpHM!?Ex)XSiD>YWmkMm>GraQRe@q1wCOW7Je zXl~{OPvnKJW_H*LK5A~}g{ASMhDou%(WLlIvl!EUG5%9C^h-bV?;3h=ccUKsq@gWm zpsn$_W~PdrW2XtRk|ag-F0W5$1A z0PidMXzawnq8nSSJ(fWalSPUR?L~Y*^9f0*uWuCX{SGi*fh2nFlFFEpLTXvP0EZV(>SfW| z7U8v=UL!Anx%ax^i{9%=b)VRQIHJ&;C-`D^c(Y3~i-B7G+ryBB7_pQQ=U6HssXHMz z*D6vxM>66IO*c+hj=l0W#}rQ$?a_Db9;a_;+08S9glEC5anVF>ct)|vkIkFbNm-gF z*3g=l!^qLzb*T6HeIIm`K(Pa3_T|&ak|#Z9gYjTl3g0K(M@omC`fM=jXb$E6qv zwK=}%Ld5Tov;1B;^H;kl%#?U*)_6gK%tw1;h$pXbj+^2PJ(y<~^Ss=ptM7nPHEh(} z2TYX8)-YK0WFZ3mURkx-+{uIVEs56m&8^3om1Wbkx#4{q?)TVkw~q57Ojgko1iz-q z4F11S>K_>KepuOtSP2bzAE>#K$c-;)fqy0o>ERyES78DosyXV}uZWmwlDba#h(l&~ zksTwIRY?<-L~IVa9hKaOD*)fiVh z!}!=0ix5ReJTF*?Fp3P9aZ}WL%mWV1!Wq{^2vu%zyJMo;LCV*_B{&}`StMZ}Cm<1! z6q)WYfWp+R66~MSmd}CJ;J|o>u^@JF?FhpxC`~9JTwB#>{(RiEkW?8bYo{K0n_m#^ zQs7M_MaEkJ5mei?{u!>)W&A!xd(4S(|KJAJ^J?wks1I!8Hm!fGusHFkT}NMw=)hh# zXXsljSoBShqvydkO}{HL+G|{f86AMeCFoL^FBbqceO!8qC1tKiNs&3oG1d#0d9aQ*8$ed)@0R%oM3P2+mI#WBa#a-coGoUn zHtc$`YBhd+d=idM;i`b+*ZUB^E-=Z8xFVCx88d{OVGh0Q`p8KeF1rgW!DN^om;%uo znF4Vuq(GG9r*g};8+!(UA;;Vyo@Inw3uF-Eq;k_A8ezR$~}s4J*@rhLZket%x1Gs(mF?$)@fKFdf^v z+zGzrWsWDO;2$m+(I4CZ#(XXvz>mEmk_fwf(a%)aGMZjX+AbN4`Gc_w7KVj(0E!TV z`RW&A-maKmM{wNFoAVp80ft>$6HrUiU_m_RTBwjca)UNGooxc_sH+RHVSIeloltod zD7U6}ZI#gMCtF)D;ku` z$41*<(KA~J+?ONGQd%_<8RB$G>>CN{-4(Fr<7#e&l3wH2a@1e(f36?ULg9cG-eo3c z*&;*X#MNl49B9;l)R74-{8jRaJ(#}@$|)A!Wu8>o_~lT0E+_vHzAocZe!*Q|S#ae@ zyIERpqdkpQ25{QU!YS#bAdX)yLHma4l}+7&!N)6<8`pSvMN&(r9Zs)T11= zGS7oz8zw=Tp_TiH*6$*1L903&L1vO4oa=RYj}u3-+Qv#cYjH9*Yw_w9DRR@U#HFiS zq{vOX5|_$yQm+sI6J9)H4m>1M(joQtnBPuyFDT3J9GfB#8Bm5T#_)&umGJB$o*m9J z161UDl2pVO@`kPML21qfrFnIWoWJr@=T^x^FLdczIZ6GCT$NloV6KcewtJOQc56U& zr>Xp&`}N&5kd$H?G zbrHcA)KXhz8VgJWy1)RhFBg}Vdnh0}dK^wrK=krB)Mo*(IHR=-tn&IE-mdn)&?G;P ze@4L;^>x**&HUP?>CsKoliD;l()N>hto>wj3;W4Sm;GdO3;W4S*CB8NsIxo*D=q9^ zq+fN}K&mc}@VX1DwQ^a5+1#^b@PKPv!l48^3$$Sdm zKC?I9CF=!y?|fdEP8Pleom6hjnMJ+xhqHG>L&8Zoz&*qJqkwE{Oe^c&+@2vfw?{3z z8!v!&b&q>ib0%-P%CZUW2X%kfZJ)ENDty~7w8=r!xpRBnTlFSPU3E9zs_r}CdfnW2 z=6v5N%Rd^v_@<{-+}CHfV$T%#o3ofP*pd%Lyl#( zob(o}!mevoILKe=??ztfTcm8YRjrLbG^|MBjaH-|x<{tzby@#FXV zdtY9^e98CbyJLO~{5;%5L71(!^ONTWC)alOhUsDVcEp)O{_b;TTSuGlxGUx#*uU&E zL(6V4nNMAlIr}9#P-ej_Zrie3C;-P>46CGTSRJ*c*lHd`yCj8QTXY;^JD7tW8Bet? zf*%C90*P@BF0}3y^i1;tW7~Vxux}SP+PB~2?oeA{?yW0BTFZk)#al1rQ#~a9bc+cd zcTMo0QbMR4`#KUT)V%Yy{oZ-Qp&j%`ymCn{kbF(Gb-TR%{D>bLMx3LOwTTn-LoEO< z0^oilq%fggltY@wx==7k5^Cv(d69}`^+0L+WYy3{9SKDkKL35Zrqg)gIy|6%b88wujVCtUjoj?D+F&73>s&V^@G~MO? zBmc`VR_SgRt%~3^T0Iy=@PCqQNK#FZvROa-3;Nb;`99czNz(lAY?@*oVZ))PFSLiI z*;|;cAHus}%jIn0GlMi=U3q_dYS3bKERh}ITNoihF{3D&K`Dh4OP9^Na<2w&2rn=+ zaBI$fLo6X??v3e=T;APjym9WuQFBS#jJ_@JFk`!Ord`PNEwrHPr@GdKskyx_T!_@o zYFV2vPQn!kyCoOKOyrQPxp%>q#a6S=A<{8U5S*h^hz*zvaU^ES$^W;Flr z<~FdYn!aazJ?zk|NpLS1R*pZQGiZRj=Q{RzY?D1UmC@o_dHyDa;b8M2X>m?UnqPx{ z|M=zg^Dtna8{G3pW-9#}?xX+2>tf5-if<`eINooM$@hGOo}Wdp)>HIKjR(eC;I7g` z9If5=f@m56Yr9$Pby<=vV zW#wpIp#hF2R=}SI)L0j+)RynOZ~1=fTfPSf^%**nqwWMFBSJTNjgqP)DzFq^`=t0& zQi?K7G~+Cbo{zgQgKl2d*SyyWn+G`w29J5V6KiM<@OT_N{IoR)aP$oxY}y)gv$1ym zUmI)Z|D~}uWb>2Ck%g}%zfkK0FQ@w@dS;=-GaT$L-o9Q3aF*mIVwR*l{r>WcU@2`D ziu1puMG2PHGWK7_F^x?a?}9W5j_7=wO8&%fx_DyP_na8y^jp&swblz!=f0roa&h$jSox%JYMwOCV@?`a9P^Pw z(%Ypt?koS^2>G9XO5Z-C$L06%r>N7|wi#om+YC>)aJ7o^W`zqM&9!&r3xBnX&@#KE z{%!9iPitfVTV9#zkIWW6Qk&&i&+9>_Z}V>$_ZP3v{pHl>{vugS#4t#`kRXrIe(WV| z#~OJAzChA&$-PUkLi`qJO^))R`_*M!!!ElEoxh?S?^did$)e^f4-&bt$dYge3yCMAUx4PRrMNs(?G@RPmxr_l zPIh3B3ie8ay92k&TNpFuLyU6;itllqRSwZQk;)inyv_am+0-xoLSX;>mj3;B<2}B& z|D}0v-(B9@!K&_>23fRXR-Ys$qc-A^e6v7RVZ>`BU%eiaBCTB*~mE_Zc;PJ1uM-~Elhs=X(Ru`k!&uAevDUY2gk`eIysN{zb^~= z3Cw(88ua)pJPMAkt)?W-qaVTLB$L+Shj`>||3InKW_LaB&hj(rooNQ$ey-|a%#Lb? zQPk3NUxv}@TEG|IuSaK%pXS&SxZI_y@7?x5!$zC&1OA>`1r38G(k$)ppT~O0n^fdT zMdv-m<2Vc_%}ATb_D0P`gRDhO`h1dLS^`Ne{2tOAj9*MknO`epMWEXZoA^7P3RRhL zOw1BE$Fw;?>`{3@Ka5&a^_eTydm2+I*gX1z)pE>qH2?sAZoIEC|re@ zoW{isZ#0*5(-zq@%k2~mR!O3#X4{<;K;to4)1s|EbvIwI9m^}~)rfP*qp?D$Ez&c> zB{>+^MIwB`ZP2oL9>Qe~S(W%&u{^nSj#wk25)haipgA@5rpGcOY8VI6X&WAMyg`~K z&x4VyvM9{aN#-d`o})qL$QiN6?4s~B8gCtZu!6+`^-pE<>BgI9(IEnPm^3K=W0YH29vQ zgXdTD*ffa&1?vVR+M~#hQR$U3z6~Xu#a6I7^-Z|T33=SG867IPRbOwAt8{lIuaDH) zf>(j!ysck^yML0WHg*@~-S{l;u=aA%VQt&vu;$8XVfl|^m_^O}nP16M_NAIfoY~M% z$yHw7vWI$ta{EYM>HDeL{i<_1kyF#T`-asp{`w0YxBg2nS(`6cE8itdmmDN=gB~c5 z5{gbWyJ%CuEQ1$nOL21oy)F&VAj#4bnyy(`thR`SMCpuz!*H9c<3CosbkGb(+SZPu zHWUhu?!}K4BxLQ6J0ERMd)p4u?@D4|v!ZpbpmT;v!=f*Z+%9^KVTO%QUL;O$6=vC4 zDX7gSm0j@leZwou!i=AkYmYceFeV{MUKmOZr6vQ>=wwEW0gmneVzMMK)q+Wh~X zx_;3*fsAE=ul8)YZ*30tUu<_E+r!^oKT+brG)@9VPO`=~G^I5P1UNVO|V!fB0?bWJp%vi!& zbW#;`c=rS-#Ag1=m;RKMBl@m>@k`QgM$IcZ_fPVaecAB)ki~cuvg@HwrDutiL~lb} z@*&5k{grfX!A5AYKzeBTq!g_DI4MV+;joQ?Kj4F9B<;F!#b?g=wXrANJ@nHfIjzk< zk`MX$_m@pDv^e#g`EME6>XMds*Vsjnco0Eq^mX2GZbrK2;!|gl&!EWJyYvl=n1hqB z%wSt;K(^EXZK(mp4$eg^ZvS}@N*vi z80tJML{`zIx8MJ^imbAS1SX>1x2lkrOQcPKv^kdakoqQejwXhWV`4~g6DFi|XlsGu z$hgR4<0xqhXTHps|L?sdAPm= zd8D#G4tLK#k8#gGU+|R|p#k0Vp&)U0#la;ybR-;sCZ5O}6|(k;HyVfCLex^YEVi|`%{DGO_U7^;M+P3aMu3^qC{ zokZsB-o0r#rC0R)TebV1b_mRiWXy~Oo2lnTIa80y@pg{&S9E%DSWXi5F(7%>c2V+N zYy+C*nhZuX@P8a}qW{J<+<*H+tb_ngmxhU+HAJ!khl3k)8a>I*x{{(E0b^o}DrZJ+ z{s%a){=yZw!c|$^yefMcc~z!>{nEsa$6nJZNA=qb9h>U+CHkOnewCK*)zWLdALWeN zmGX^d73waQqEaYTaPoJ)2darwZy}Yu%{V2`^ats8vXOVb7r}TL~1SW;$4}Hu9fgdd)fA?cIdXFcBo`%3(frJHX>Wb z7*=PpA!)O&RFQxIX)RZtO}{HoD7D-hGg9W12yWBZ)gJRlF7E0jo?Jzv0%5W}uB}3p zdtI**p&;ySQ_~DbCp&$w5F48|6*;dK82gpP&n`@(v$zCT>%IaO|8V|5U!xKI#&pRP zjlHybB#ynAhAPf4s#B-IeyfUePh0-b(3bO!+Twkd9}n@h@$k}*n<$i{ei~Vi+9Kgd zR#j4b33rSz4CWiaP7)^f3=qx|8@0XLFH%;}^<1xCPxkSu^s8OICz?*C0XJuL@POQ= z4^Eid5$Sm$cZN9=zv7{#d!9G<{rE800UP$RKHx4~HqO6gXX>2n71@~#`aGCDtnZaM z&f3sf*_BJAl|P}Jr7~JhJDONb2|{Lb7vebi_C)(UQE}FaGY`5%6U6u;S?}scR-Aj5 zm#^r%YH`7DDz|n{?(vSht`yJOwn{Q%)PGZ# zg%7x911{P1d^vnZVk2)Gw%(u>sCGt=gQa%HPKQi88>yYtmn9qlvG}_gL&!FJH5uP7l;lTo1r@AQ%zItR6y5obAOKK{8O|) zFFgFUkY8#8>6T%bbV@MC5k7_LOWF=>KFskvK&|rdcS4(FcL5&{6Jp~ARoBr-Y?Y+h zwbRy*xt`!TKk<*_O}s*Lj^y!dMw>fds}~-~g;?_!a;bfrR7|J&q}&VALEeaCTW;0s z#59NDC;BZ-qFjGhVib<|>FUdjHf*JQKX?$2UZ2*0>y!IWd2?BQEeiMCukTxyJnmir z*L{-5-KpUI7trakX_h?qnh`KtaG$(^aE5KA#aoK2 zj_nV-Xpc)m@yva0V9dUJf^y+m1!|FTLRi{)>aet-mvJ>VYL{_Mep)Am7)&#w4n5?U zz}$I+LxK^&_+M0d*dz73D8E<9kzW!qO#YXU7T*CeG@O+U4Qr^I1fH$|kCu=7f_S6h z;xB#2o6WwMe~58Z(HZ~UG80UAuu6NK5=KkqYQYqG*=)`JNi)#PJsQl$*FS){uXN4{xc{t;`%pXg{-Y+=H@8?} zUfL_n=W+{}YykV%CycyTiNlx!`XG-u3uL$GhEvzok^3MoflxsLvBvIa9)Vwk6#%ZL z%w9X=voDYEY#ZM-@{O$wE2wnzMq4MqHRu<{yot|^K;~9{3>OMx7&N-%JSMv2Q9AE> zkLio((YymK_p)(|8a)qH;_lC?QB&=%t*vqvcExGEf)=t>kc3E!M64{QV#TBefD6os z+|-<$0U4@hn?1Y85P7GRQdII~Ddg0znL7-Be=NeHDguY&1F#HMf%0vnDc(jN*iEDg z$qXGKw^>kKZysQ%&M{S1#({CGOt`wnFudkXLl8sKH)j=nNYPYbh^AR(maGtfTEQ{w z3PZfXMks(FPBTR&Z;y0at~k^3_Z)6443wtBK(u*@ra1kE;i2(S57}3oMMF_*QGydS z)oN-JQ*@|lHw8RRW1Z%uge2}jXCJHI6Nk^!RBy;7_D5QJ9>A+D&v|sDlwl3?y(mh`8h- zrQeP4igZJ81e+tkPrNn;mlN2s(hY$H1rOmgB&DUp-3Cah8=(#X1DSWU1X^C1!MX%) zr7I~roH83vx=5pO1W4Me%L9gS;oMnnMP2j)l8m_cv8>_nrgLsl-Q^$&l-)`R@V%z zg|6ysx!pN?rh>O;E%=V?Ut~VR@z6G5n*JrLtL~L60CNj zfImKyl7llT38#E&TpwM6lu|4Gk00VfxSBBNAYL+=3C8$4<=3wG#iMQ{!}Wpy-3*V8 z_R}cf8}NHoz+h_#V1S@YF8T89!f+akvT%#?7r-q_y9q1UCKR1bh<>pqxXs<6)&}GL z+pxdV4ZlVcba%s*J4MByU%PgLk0!V2_V4z!mYMh8JLf9{?AK_*$Pm~+_9y-Vb<%KH_SkXJtthPj(h7X z`hR}h3(hhMtn80Fc~<6sX6gF4D&`0J?|7Da(vMS?T1OoymhO0^c)7CJ{TfZUyx7^l z){<}@zS#YGEgQVpIZ%t;A^6AMQhD-pw_%csTGED)w#|{r#vZTCA0K(ZVV38 zDy&UNzsOukhpz&^Udslr0xs0Z23rOG|L(4>%~9NF|D^^DHkZ>g-c2WSif5Bez8gQ- z;5Hr%JwSKc`|Ce(G6Dn!sRTtXlC`_1rB|Ym>hM;TF|W-&^%tZ0t*o~gNl;>Tuu9CM za^5mkF?)84U@2pOt6&P*PLhy4Dlgl6Z_vEgcIO?+i>HoEBe<2CfG{@qP{!s%cA^YH z)voF6q3q2nDjjOCxb?3Et$%TV>$7FR;Djh{n=36?0PlSJjtXHxSOB=Fud zG9Eztj9;mLoX<#4#Lf1tR%BBf71>_a#;c!X{T7w9q*Z7rWky?dRIi}wGvs(wPH9hO zDe65YlUm1jePxmZ-24K1GtbW zU7tK~H!gZfOP^AGczv;xQWU=$?W_C0FV5v?y+(<&DrWh)NNA3@M^l&7XvK2}9yRcj zj8uS8SM;cP4`AS7UxLVm8CElz&uJT4{_n~7&soD-U{6g>zrQS%SUltN*o+JgCh@4eS3`H2|jiilUX zfhmK-t=^)&(L&GMS#;Tk{8w3;5;@af$WUZK?(;DoIAi8DQ-e^|@@c|E^3wm2bp)>v z1CmDyF<_qepNte_2~mP0YDP9<+Pacn`E5%*=Kwc)u?^y*YgSTRCmTLV5(9W*^&tVC zSvsUyKD1=m^r-=ko4|w|S2O8{M(^$IsX1=a^ptOgODV<|m^ZCHB*b$|hSbaFb^&%kF(4&B2J)|4=MsmO$hdiIvN&Ff zo=X8)1&n;(RJ`IGpw+r(ViClti37AxX0kD9JyS(5cPjk>$f&x0+oxC03e(XUiR_>! z1U0+aoIQDBqaetNo8%Wo`t)u;%^W}?6XZ=CEN`**c0;e6Jl**rNq4sPdnbyNiiQ(8 zX;&$(QHhRQND{eqxh|Aaxqr9~#Gz_5MqA!Si>z~^X#3CP`V$y5(G3+!Jx)IH4`h@B z31U)L=AUp7Rp%hohW4XYx0gmO-9fw#!KK`Q?FP^K9L)$uoTi#V~G@!ODuYE z_T<14o^6rnCATdkdskeFwA!Mpo@0O{5cH?>(n2*=Tucn$Bi0F zuEd!&ZK|0UldX9%-I^Cu&8$zh+xld?txvYw#$>x~Ot#y`ajKbDGG<<;7H{ybt;)&C z*NS3Rkma|Q7t@WxhQ?Hshcf72;aP|g3Rh(}LV5-vq{h!M@RK&=L`A)xcY#;IE7&;s zGa19TL+3|2GBM)v@A*_hz?YfXOXP+;$=H2KYimIv*VBH_e*|Chp&7G@fY+49aLJRD zA~b4!E#D5M7~KUTv`Q=QKnn6qv=6%|8Bqw4?Y=P(we--^(?8Tcxo^qe3C&A36!4L1 zTdru{g2$93|Df)j_sCl1qzLy?IKf;ZH2FmG83$$?zvCkSCo zm|Ade%_8X^zo@tO91iMN7{h_;YHrI1FfZ8;c-njk?0irmTrbJz>jn;(@jV?;3v3%D zu!ZyH2+3L=KLP~yBONdwR|HxS0RqHEE*Bzc#lS+~@~95v#=Y){(ohU60&ZocVW7hS z4&9RI1E0uK`!(ZqqQ!_7epD#KpCbekLz;$ z;V2VU0vS6Bd}ZPMN}AObggSn#<(Nfw?E2S-MD0yGOBS~1Er-C!<`u%O@6Ruiz$+R# z#ADa;zJ+$jDir-C`)Au6iqLvi#b9J_T9?Gq4awwYj(7d54Xf(>5<#avtOCGI4 zjVJ;w-)ruRwdElKJi=uzv~bXBF9^u%aZ9OsaHAqkU?TvzR>8!4ii#vKY620Uw=7Vj zmTr14@otePf|e^=FUqFNd|QrJhg$q z-SsS_>OM#gcPHi9Rk?A#B6?wHrcrKdBiYN z{ZfhP3y4|!aT}SK*7b>mKC>C_=HmxJ zzaa8mY&!WbYc^2yw_pIs(N}?=1`Svf0xuwxw}8-MEg%$IK=t)6eRm-8V^q!>@(!@( z6Tz=4_5GmywjfJb(vKh=yk$uqJ@=8`07zmd^UX>5FT?{M?&Uc<+!4Vs-7+4q_ zsLo(yhfFcBFgRG1AVHVDfW_DV_(E`es z)F(E?S6mt>HpIf(8CwBFdjLUuFPd?uxL`e+apH_-u%MYWm%g;84;XA?6=-Wl6FAN* z=xD;gQhui)rTh#=DL)Zl%`ivLl9yDNqX4uJ1yc`m41u!aoLJ#NnzK1O$_jR9M`*3^bgFh5kqIWA73%{K_A=2!Lf`5Yc;9M`>_=JAQ4n|Q zW3QabT#uc*ta~##WRo=jhbfO;OAmQeo|A4Z%p4K!CFD5>CJ=F%+{0NRZ}Q6|8$K%i zCjt;{o4K#uX$c=}J8PzNbCL*`?>9#+-!BR}=cJoZDL*$-dj5o$B{dxeaZ#!UaHkC- z1z%pttD|o>$^Wg3IYgnB0SPduSr{URSqVUJ!@O~SAX%u?uI)- z3&T4TS!=Brw|PWlwug;tf->^rs@2F3x0M2E%Ar8UZB`lo651_w*gdzQ_PmP-X$~Yp z#w8JwA5f?Fz#Pnlj9K1;!RYQ(MmL91(_-3Y8-(Rnyl8;Rkp!`HVkLbGH;@0?u66P? z2)XA@>In^;+#r*G@a@gxzqf0He7Ag?fBMVdwI|d6hbT0~^p|0)zf0uGuP+$p0!`(5 zRQ5!tX7IWAf!A0|pwO!XsYk^j;F&Bbe)z0>cN2=U(<|SdAA6mFlEqz38I%{IR}xL_ zxLva*gKpe;+SzYFmx-!1*l(GfsVnBpFoKpB$S`}7o5~6qWTTbsx~!AIkHFiXArDdQ^ZuOq z$;iNh*eE|4jJ$&T$=d2?11dSdelk`C>02=eFd-oCQr4)pQqzGOVbzldLqCG>lAS*`Xi0Ji2b2U2xmUFJh*VJ0Ziipym_j2Q+C*oFe!>Tf>wEfqnnY^c9^7+dYw z*T-DN#O-h9BCMHm2y23&5f&9pIa_}0Mv;|P0Cz4gf$#Y7Mq~{&c899|*t=iySw8so zI-lckeN;T6Hs}dYg^6PJYttSw+6d$V+bCjO#z<|jqU=~Yrjn1n^_(c$#z)IX4Od;& z;U+yK9Ae3P+c-cC-Jpr`gD}=2PrcKpgd$IkP8I_v7mPeLdO~na-yL~^CmY#$l#@nBOkdF$*nt(24Wl{3$U-^&4gpWiW)+x z(Z7`~pIKsK&@G_{FJ@f1*|5Bi1A&esJnVP1EV0@0t}ZYN(8uiPba$S^6rg?i`{9eZ zB z!Kn-`(TYa5v9OdTAEO>HD}<87tst%tJ`+y8%f$Fxc=awx`Jkh)r+L9^H&*MQc1JN) zFid3baQNI|Ow|nIo*O*5Q~Bt)9(g_TzDMdl`$}~_;>QY{(^)`GTMgZSmd%E^fyzte zWRkxWoN1ho>PsV)Q-Mw8l+hxF8>5sY&Rg-Ms8Kvg1ZXG&XjVTdZq!eT6wvh27^Vda zwelMEM1f5&je)za(7@X`6bf*9sf~8ewdS5fARc$uTRBVd5YAEoujDK#@Hw*aFwW9# z%NU#`Zgd87yQs%L{)R2t8+IR)+%1DmD?V4!iWQ!;;tf|`al&t?kUJEvwBik4Uh(6f zb#jNol~%mr%PTIXzYJS_Yr};~sb{FX4`t(=Z(RTup>u8&auz_{l~XLg=K??Q?rdV% z`bb3OKC~A|QUH^RHxjdo*-5Nr0*N9m8F!?93~(!eO~b9XWQaRjGC-~&l(&X3>gdV< zxCY=V2eoWl_8S3kI8Bml`>1~DOt@9R@S5YJCn(nq59sV%OywvFo+t#R%PsxUtwl&89DAs5886DUNGpS)c!Q^1Ab0 zTims_)4bPq?pm8S@3jS8Ydg<-ZKsa4sbHK~K>niocWWQ)+?)`rozidBxF0X>veM(- zzCyP`kLD-$t!RIeRC%fp@Kpg`?nacDD=>Mu5oPA8BFx;)$kbd_gqph+FK40+QnZ zOVvMAxpDc!(3^7tJrD+OZ8H^94sa3SW-6+j3P>@7JenF5vkqdJDnQ}dh;q0DCJ#5F zBrX+_#3jt(s?xVqob)YjBd&wOwSnhwB?S-4f<`5UOT|y&dQ>0p)3}7z;XBWeG#Rpt zug-I>z%B9#U@k1GG=?dqG{&*5Duy895FYWZTT+2IghAYJOh{)Vslsfe%}8`46?Y|j zF2}^6!tk*edq#z)8^v(k8MR+fhGFS9D$-^qKIMk&TX|L$jv_Y$Gk}3)Wl@O-Me$lq zBFc>^skr$3R-`jmM1{+fDu{hVBrQvPM+%m)-^aLA3BFC>uj^EZ$l7_ED#FC066%m__z{z6!v!A9bM8SMVCgYsi@7Vb9mgNbGSCA&f!sy&f%J@A^>9RQR@MkBKFsu z6=pq2&OYD+F+cCmRfC9(4}%oES+o>`XoQB*5)7iAO{2v`BMHIeWY;wM0)bL;tf(F* z(gfo~8`P5a(qjv@7S zQ4N0*S8*>oWJz9-Sx)lc*&aPY|t9rb2d>*d~PSHa{a@_@9&9S#T=_;G% zr_1r)TqmIU>GNV|1^4-8^IOqfzL|lskhT7gV(i@8)0j*UeYKX=Kx;oe4=H2c5H$8T z@Ya6D?yp|u2IdrOubroD;O4sowFBIk3*RMZJ-7`Fe3yVSs0}21mw;(d8V(NXLP^2!jFYKY(^0 z-18b3_?q#?W#VS(H8Aisix+SE?X?VKV z64ciuAz-vbneTOJ#s!ur^S!Q3Ldg=;{}sq4lq_NWU%>=~k|ntRD-a`;EaClM0UV)Z zIjR54tN6c`DC?^Apsp_Gk??ixO88pNBjM}P#fDi5`c*dYjulogXNk}=QTIwL5qc%+ z9*HH&tQcM`ptlPmkWFJ)%CV_~31|#MmvaAlqlM+(^%hsIw-wInFm>B8i}19Wj;oPd zKUZwW)yS=%E5_q$+)^PXxjc%Rgh^rDicfQerf`U&mVE}Cv$80g3{V%|3TLVU!?0Z8 zOjTgqDJ$H}ic{@QSS>-vJG|#9`O~{ zYQ%9{A>tL*Lc~#94dNBfbOc`Qa5^dhm(DeaN)U)q30Ck_f&h+6u$mi{pj}lpN6w=! zjnyoho?)_@c(UrNHfvEIooTt6n0fb?cG8mxY8{?r#~n>r>+m!|+|dNL4o_lnM-$#U zJi)~s%}L{qe#J3sqD*8T$mucXL{`7_Agh~bva5UfI8C&cLTBF+6Ro+>*|)?5)x=M- zBWfnNCVmpr#7%fj`~;_on{qVq(*yy?54>$PjSBQibItQaZ8SgN<1JXMjEYAIdww_I zyZj@(GB$G+hgW(J9}(^$*Zwhr=FI)e|J`}u{uS?4eg8g6d$#=Vllo_9y}Y>oGwWs2 z-t%7$Ud0s3g4L!ce3T{=u={>HkD2@a38C~X%H&6u{Lq`vH^} zJNp5w5sH%jjr`!?1@A4gWCZ2!2d`z+0!vZ-PFf=roR;mrNlx2#|AtX?ICa9`@QDty zHrMYG_WTN@6aJ1*CyZEn_3skiK@UhT{F}7rJEmUvH-wT8gljtem5Xud&p7IT= zp5nEsDBm&eKIgUm9qsOSYKh+wzRE3+pwtpu9>G5)h*JQhw)_*F+H$F%>i?7=3Kt+R z)<)W+9aEdy;1dF-?z)jC31fP)ejtbqmflzwt zlJhT&`^~8d{tK%ncxh7t|1DwneIUi@-)MKUQ?LG0+Ln%~u>6TmVe#uH$A1uRG~X@% zAAFn5)DHiPaL0M?#{c5G8-12$^jW|oK-T9Y0Z_L0;05p!yl()Xoc29V` zwj*6gMX++)z`4UCUAc{W?$_OLf%x&d%LRh`xfp=7hzz7en7?^J5GIvmu50DtkbK!D za|psrYP(cn0-#Ll#}pWo3B)j#g$=;oE^-Z#2d!<_`PhO0qhGI9=m2h`@gp5EA6N|C zlANx2(* zCvEp|0ED{yu!}yCAv0U+HiH;YGkGx1#oEV!NLS?1uahx1sfkj~0f4nA2?B{V)z2ub zbj2c&!ka7T!kbpJv=T_&%@uUr&119fCTCR*WsxVI`(;6bM{8RcO^{`vDjQKtMCV1X z7YWre;WrbkSNH3#@UCb@W!CptRG&=y6{`#jXd#{>Qu%19!*iUEJg918zlrW?#RsfA zt~GZY0`RDN-df$_IL$lPUfkk1pt!}VyYdk)ID@%a)H5G_yO!+jx(`X}hTW+YwHj6_ z>R721#p}{d8s)|BL9|VF&vVX>A8$SPoW5U+t@7~o^Hc1ERvb`9RRh<8Ob`|tiktuY zRq=;riV$b|M~eC*8K5oBIRKUJ1<&qYP4=W=b#}Oa^hY=T z7V6|v5b{o{Sv4*F?yLrx^@DF4h+ODf}3F2N?%JGTzy{B8bYh9 z`aJgw67Yhz5DHvq@%Y?Dz=g`##cdoH^etE zxW}5=+n)giK>NHu=V2x?upqRyGXgrk$DTXnn0t79k1=;8CIlhHNl0jTFo;E)sDxWU zx*KqZTe>T(uHc$4kj>+Wv$T;;ZfpWD&I#E;D$bJ60e}=%QA!R{@}R$mPGV}l#*VFO zFSjq-e8R15#TEc|-+2b!<*&{&wZmk50FR~~cCME!3!Mhz-R?r<+IKzUS9bSQf3WWuG*P{ju z^RVkt^P-g>B!R`-+30Sy?Gxdnebq;9|1=96ltaH+-J2H?phLf_ytka{-ZFxX_o{ny zu0&JXS0XKl2fUVBY(qI)e(Xk(wY7YE>s(#}-|=ICbGJcTSB=~o{w1I3gKw|%c^;LY z+iUWFYsJW2={F4ja|odpw78 ztbcNLug}S+LF-`okk7B4b~wa2m*ThI{`eS>`7dq4v9z6o_3FjTPx*iI?|eA=iU)^x z4@5jHfvleaeISdVKtKlt1m+Hh&m9JIP{0Cgfhp#aefa3O9(g)n0$Wk`*=NejZ9z81 z6eK(3NHcG|q8DJRZg~q+Pt2S1$ZtB2EMZbPEYQq(6f~Vj7AQ%WA9Ran#;SQ^ELfH> zAl{ncYqc7?7Cc3?R~O2@Q@`XoMsLVrwJ%O!^1;> zkGZ#&xf86oA!K~-1WRrRS>HQA>-!1J{LXkAEF*jeX@oyPTH*N(-C~RHKoY#iFvfQv z8Qx=9<2z7m+=A;Z&Q2iR!CK>%geKYd@<(^z38dDL_UO%w$Q`_Uz#7&by(=Md2b>%- zi8;Fi&JLNxp4|yj?u886ogn94$fDf|lkQC*>iAbDx!RY$Gx$F5Yj6vu>Xg@c230ZX zyBr92$s~u`*NjMB3=Dx!j!S@9ymg1qFHpfL`WiL#H|gGi9S9Y74EMke)I9*Gzp=Tk zJ8<{FAmyjY9^Jva2L>uXUF6Z79QS|>wf7$5a>q%NY7g`DBu%AZo>L{vv&R(FRTjlT zlsT%24rbiusTQE$;|`rhwU>QAm(Xd{Dz$qgq0@+YJnSV@-97^Kc-Z5NLaGl{vn_k) zg0-qQr{#G0#t%u>78DkT2xCDZ%z{`}%@c%KlV_S$jf6d-Xkx><$^DfbHqIW>#(9D; zauUdtdS044dwg~8&#b-)f;hvC1bc_Z84BW*5(|aaGNy|-a%mZ|BaRVeQtXjL90ha+ zOc6&x;4QlH}vIBEA ztgRPK5SX*U19OpBV9tg&J|nomoGs1x9J3pqJrA<%sVll@&x0)Mb_Eyhamlj7FHShJ z?C^_oRQr%=8`=nM!@6B)BeVcQmtp zayxU0X0{(e4nmWSudlW<6IN)a-R8`M720XIIU}<|hu;Z+tkB_i!uY1!qx#Y?-yA$l zMn%ocw=4{GUXwq|=BNgt96X%H9C035_il(o7{rpho(f0$WR_w`+`y61kVsC=D&jCE{!Jp` z?s;5xokhEvp2ua^S+u9=86|1WYTE11xLx{}+Tr#*7nlB}^(}oylAv^99*55uZG~FA zvtcW=1V5kW!4$K)A`Z{vvaE(5pl~d!;RopWRz%%`ct%%n;94hHJ)^5NaH(^wo>5Yl zcyG(;yxUy2rR+qT3uOvCBT2Loxce{#0|b=}1k|Od{q{bNOkJv6eaDfhOO?Cth?5Y+ zI1i7Y*26`1=;H`$JzORTeH_6<9~ZIE#}VF~xxj@!juOln3#i`0aVCtYPW$9IGMQ-j zDGf*_8h%QTZK3GQIL8s6mBK8GcEo3@Fw3GHanf;kFX-L|%SCqV;s|cAT*P7*M|gwf z0vEeD$}w0j6T~i#^I$JUt?Z?vgzlI_D?7DymUPF9gqXKrFi{&G8ZlrOQ(Pp80f$r! z*h*u-Au9&#;trGewR6-(5@Yb0$CfKiDIYTr-JKH?$?CyGa>olbm=v(&lz>AL4o4z< zUiDV;B~(0i@uhiRStY<+e5u|SRtYc{Qz!!Zf|@Qe!F55&q^fW#Nn8pX?5%Xuq?xzU zXfq1X+-ukvL+p&HEcdYwjj`b6~W8H^yte@mK*8K?_>!+D8fxLDm&f$zgs)mf6gT%!fidGej~n8U z{IIA8Kg^qg9~QCrVcrz{F#elh3X81M8uQRvW1V%cJhUcRXWc6gGo?&aTj*`2xw1oC z9=Mg}iiNm5cq`3?3vqdJtTcCm5SKSKnefse6Q0MV;d!)+@;ojL&!at*XOuKNujzt1 zOVBi9pv2(wJa|i9my`ZHE^lf03joJk8vX)IrVu`=@2yJV8C{ZaP-ifm(d7sGbpq2F zC4q_e07SqGxwKo@X9>z)CA`Tua;t)&`ao~T=#?3SdSP9<&zHAepmGB*4_RfnQTQZ%Ve#7Po z5Zv!IQ4_6sZT%x|Nd{le)+<~^9EcO(0) zreZjS1NOr54275-u$OjEMkwKKih!s%;hbEmmmV(Fa0*8zzqn3v4|I}{L$sGcCkZ*k z?B*0b9AvsVUBNSRYv1FE`3_5j8Hl*{iePXNxSUEB)mlPa9R3Y z7FaYcLv{G80_QFr{;G^h**Vp{r4c%|j$3z@Mkt-7yax^fXQ|un@QI{dxMMPP;*s5? zl>;Xp*-ctGablcqQpU>?BfOpYxIpntoTQysbUd$7}iub5rCe!KVP72$o#OVfFslPlQo;R=48 zf?eyg*tM@yIHmbtv~jsaClhv@Jp6@$^9&DvVMf0E>KES|!i%qd>Aj)! z4Kog&_mN$a6-j>|*(F&K^>>^uN#SSI?{YW;v18t6;$-YR?cYasG7f(U0G*7(UxFzZ zIHxx9%{x}|joZe%dB^E^rR>C(dO#2rigCac;Xody#gHjLAE>%*hAm z_VB@7rtrbJEFauu3LhN*D>lis)JY7zpuL+qiJ=$F9y-wjjqAD^lN54Acr5b~4zB1T z)>hqja78FGe38k&5Q+_NTg2SXb{Dn|@28RUxA1t&+CxWmH=y7=3&0Sf0+C0;~ zzJC<6a~KlZrfrrwO_%4ymjNd>@j|glpuhgJSv?>bkEEHtCkeE%#*${eXEbu`o4dEW z>?-xcAEA9SeCqyscdUze5jmsaC5W?b{%eu{?mY*~S(1OaySjV(mA*KGhI5zYKe~h9 z<*E4htQe-#e0qBuKe#>nk7HTIF!_IZFW$U8Pm(Nc+r`h;cr?#0hJ%*#f6hOlpZ@u$ z^m}pUJH>bK4pnc_+5BqHl6P<3&3~rBOB@Xc9n{mQA3SGPEA{6&^+h~!CdqpoB1h?t zllaY>XI49VPf}-`M6=L~yg0kL%kH+TFzP*gSk05(D(N__aWeN>LFUbS?!=wtztiU2 zdu!U>+xCfpHFDZ%7>qZ6*1gGp+%7VII5hQY-yZ$CL+$o^yI9uttCK%4H84hKV2sGX z7%TlT<_6YdZeTs;=(+6pr1>1CkWqQ#|e_i{bD8yl<`d%kAUY+zkqy=cZYh zGkeGB-Yuf5{9EgJo<#moPI5Q$+xd|rwUOV?kGxVFd3Ao|DSG5w_g-Q5snI9~&i^xe z4^q#W>NtY)z;VGzHV8LqV- z?yombw8!hm$vkqy;IC(Hq|_;mRZG3M@;ywgX8tpoJF{HD$KK0DJ~n=g;-{P2zkC3_ zL6-TO7#n0(Y?RI**frVhkY%NdQO+^rEJ)&3{<)zyM7J0sxAFKGhJ$*ol%!{@utR3h%Oa1)FQ_ zKX)g=(iwSX#tGHOXETqk>dc551Ip~L=>av~vALOa5PQp9gH^t35&EI6 z9y&HYSVnSs>sXkN-XZqg(tNwEsTiUpUOS@=$7T*K^X)O_S+cgF{a@f^J zYUcJ*{pqzosquKByfhv!bdmbwo!nap;y1kkw3e@%dTZ;UKEhr-st<7pv9@ExPK`)n zJwzuT;---Nt%Y3=t~`oRT=j+t)rS#F7Th>-aRIpDU zVJSL~E4=&eagCQ>s;~PIdZYTd;>&jm(a4|61NS#?FC&OVQdu-{36@^r8U`=1H-Ubg z<|v`UDBFNl`)x$y)OsH|il+MT4nI?UzVA4W!VpJLkadxc-O!yo`9JFnQ^0S|dyuQ) zu{)oybcX6~{@>Z`R82iw2@7gHzX)}n-$QL0WAux)UBeWJK{k=Jby56!Ng@xmC))bgwUrlqyi+Xu8%8ihkRvfa!a{=1vgb1qT>fIeqm%&=oF#`>Fw8Y4=pMTBZg>| z1}cD}W3W?YAgc@&Il0~O=IIs*GXw6b3{|YQ6w*}~@El5v7_yhE&tPpt@(&G_2Rpfq z$38m=-h#BSqgMVY-=&;~yl15W8oL3C;vS_Dn!6FO)@wgRqfuz`!UnB}a8ft&@?D5k z#_De0M&;Q)oW-wNUMKL^>^xv??E+S54OKIlrEPbfJ5tTZ#i*G-kD#~b8#JxU$)uS- zT!)s>8C}!cVN*9XXJ-#=XIOWNGUo_S`F0UT!{*N4{e=`sJiUBv?ZI6>)BOUc7nOB0 z&3xo&gZ4elgJ=zpghII{@;=q2yN+M$(<=Z9t1$?&%Xo5` z7A~_r`05PTz(o=KyXoGIuKfz-UBgX#y=f08n}!w)8>Gw4`WohuLSY$l)k7Rh21dX5)QyouGnUVj@FUy8zDH%sRI+yl$~ zFL(U9eLL%{(p=S0nwF;0L|g8<6otA9ZM)A>lbLV4l8T0iN$MzycCIJx=W7MgUZdDZ zn##i2{E&wNd-3e81A~KZu*e0ppKt9(J4Qq6q5xxnUbIFI(u>XCpoiOM+lw}C+Rksz z$;J-iB*L0xZ3m$FSX7HQQ-8O|jY^@nE`o^{XZh-S>2xjpt^aaaZxsSx8i3kK>gUq1 zvtqfcWL*?73)rd#vA=TQl(p9)V3r1pUO22oq_PZJ?u4~g6J>9rvB`NUy}}02JAH== z3zR?6d`RB?;XVaipPW!f-AJaq`{P!jpH{))lPM+u%D+h$5Wr3SD%sQ~LpT6D zrKXBBMRgY!Fac(vb>t^sj_g;mF|(ab&Js!0grQrBbXTjk5%3R2pc|x4$quyY9o%U< zz$I@NE_qLD2Omk5<4osKFYNw5_+mexf zjxnA{x&VXQ(D=tRV%BFc+{LbV&?kRdIYR>2V3Zb zVV{ms?(AL%=`3_tM+9hHsjTcub?Y5AtkU3WLmX@0uEAXsENj>3zV*Hqi~q@69#LS! z6Yaq-r>tGNTHXX65b4!+9wKoBsWiZm_t87gc)r+m2$~J;F%~Aq*t;-lV;l=n&!7x-Tm0zMi7Q+L{KjZ_+^Bk25zcEn(m2CY>@t zpCKv?%TZw;tJ-W$-F97bh9&&(1X`BzVNSH;EyiImv6@%DH-7ad!}ZrjW4!t5?9%(2 zKij_4kmsd3o0qX#!k2L5^w$|&tMlN_Q*T3cIG-nToRN0a3IIA-oaHF>stDqB6hS;0 zoQZdnJ0&i!*xtKEWVJShpWsYdZIWeS?kHjqG6)rmw%bSZKEL7D!CO%>v!&>q z>%(Mt$G9d@02D$0AA=K(9ZWem67K9j`e6y^^^Y{pSRu)b)OtCW?zG;wLhBXY9C(LG z9mchFICr9ILF$<2=6#&gjd!}tb1K>>YzzNxHs3ly>Lh!2-y>K4tFrQcR#}sZsqH4! zoOoku5a%1`zChwxC^A1bD%1kdnps1cS;9o&6^ryr=z^jzfHULQE@ z7y5lreA+e5@HQtA{|WK%lsK)5nU+<|lya`!@5yGS>sBdno_vIl7WlPxP#21Wx>vjt zS3_ZLj%pOA^`66IpZTYuRnq@N1PTpvN$6OZ;AF#{?PXs#^ zMX*a^+Ve7PLAj|RWO5wMtcwSCo&|1rKc86EZ1dU4|D#l?XO3Dkr_wwO{zAEo&Bvl$ zc{3k;cPg)rXf&MGW4_jPSn|$$Y3|yu{5sQdOKRbyC}y$aoyT=o5z7kFeZ!V@zeU~F z{TG9tQws*wgee4t3pJ@V&aqQ_944{XzFPlWf5!H~X{?vjE43H-m0BT+C2hpP?R)|)-OlycoP_F7w)4iUvzSx2rbJmm3FF~1Vku0cAgs6OB{SJb2> zl=Yizh8`9iE|sF_fZk|1JK+x+gvu{iFFvM4 zpEjpAo4d{m=K^QRLgZfrgQ>MR-L*P1IlrT>nI>jQFr;;{?KToEvJ&!d&|f)Y^@&gu zn9QJ(G#)C&f_ZOyX?d8wCX2Rw;wr3Y_3QfUoyyki2DrV0MTT!E0UC-|MoyCs9rhUuaa^DS4%59d8iP*yuCBWw%?Y z6Ye1ZH)lLL8?9_i&4ck&OBh=9Bj9p^vWi$g|Fvm#WcAm~zG>Bv|7*F6Q=R8KMMpM2 zz&;Ts3e5)Bl~R+5^Zu^TEpYQ-DI~y@-JQCu2x|bXl~ToD$#$dfH){uB^3vE{k9P1h zD$BJd=gYM=rQK%|0-K{Yr|Ad8@)au08GAvf(p@bNcz0SnLjws|aBEry65fcRwE6T9 zULzrk^@_gdjE2z@-F*86T7n@~Tz3vXNM1^fQG#u(X3L5iS)Ew)o^wM zy4ku|e{l{}DAFURRJI=JnaS+hMm)uv?)I0X)Y=yvEZk9wJGms%y~w5lSr&I0P|jXHMWz=?O!fgze>8t8_r)h0Y^6szG zoeCOLec;KSg4R%o>i#1Txmzb_UX_F9Qf=TXbp$(Kl~cC(cP$0@=!cJs2B}beQ5CEL z{#bEajiJ#ru1J&J>SJWA^?Map!{6N9DES$w_074M4F!nt*`Bg(cRXH1-G_NHS&XyU zushp*8n_Pfwe|`jwI1}|C)Y{Qtk6jj>OExcQ2J~CI!DsWvpy#pQ~QO)3$$&Kex4aS zXB_yJ@1}n1Q}Lttl+)<#X&9@PJ0-HeO86GlQhC!*x#RSonvHE1J@(!&HtVvvxwnf9 zr2KQiQ}_FPwaGLUd8S={sh7=H>lox>Fgg(LBZ+4wiC^LZ))+;5%S95>j>0bXO1oH7 zB6`8L`E_sC1-ljIzUswbe0UWX8@A`KGCIj0)?FLB#^Q{SOc9x6iV2eV$|P|Qw->%a zj(kSWdunptFSvPU2IuV~=bf0GcYvFBWN_Y7N*9l6mo$Zm2(CG0Vd!DkbL^N44f^qZ9|#(()lh#bNgMYK}Z3!-P7+G&jitr&PqJ zF;J(aKTx~ib~Ep^9m>F4l_U)hFP^fW!We6zDvnB~>SL^LP+d<>c?@fpirr-jvwAW7Q<3g*2j)Gw`lrY1--o=r3F$JPbT)U9B53V<)U=Sj-pf~p;qKOJ;m+0g zpv3~N`me?U<~C=W$>LH}gL1wl5r)tP`nPP!Piut%`% z!561Cmz-4Zw2;+1_4!0lw^?T;H91ApX`!XjYWt$PUwpfMzj&#Z1Xq8XYSGf)_JbMz zX?TB-*Me(a8+E3*{(|~`3~0z6z*i#fsX?5SzUS#3Hryjb^;R;N- zp&&&8;y!h;y=gGo8ygy&2Avoc0FDhB71X765F7&rr-2k4Ti@a|h}%|Tm-R$cYTFxI zZg84R2FHdLr>Q6_224(qxZBjxt~T*EkMz{8w)aKX4A!O(^)J%oOi?_g-$)m^#)gcH z4XsQ|C9csoGc9FAwx@>3`XWTO?rSJ|Zo7*Mg)P|Y(l#JdnNX%$RMC$uHAXFBFHUd4 zHDaL(+tgOP7gsYHYI6%%CKRwXsZTezry$yGvx(GHC{k?>Gj$XhwW<4(BiC4j6e?J$ z1Wd9+84Jn5w+^=uO@%_#p+@514tLn3$Q4Rahb&5xTc!>@Fo#>@Q)86q19M$2TXYmC zb-Crp70OYU1*a2UdQ+FS0ijBTLe*u!>|7MHnS$)p*4t1t1HI(E(OE;3>GOxF_%81hg(xqh#oXTmkJ^j>f4}8&csm&!0=1r_$UUR z`z1DU6zV6AE{SF3P@EHpDs#@#*AI_yYivStY%eNevO}v$YrqyBg+O!$ilP(h=aB{+ zAyF*!&<994T54OI0Y}{eycK4^69lQP@Tn9{YfH|N3s;h&D-|g+V1TaFq-cq_wooiX zSF~YI0DOuo;;?6Jhn7HWuCRDqq#f#9QHMIXMb*c&`?<^V{=U&-{4l&q}XIau^Fn^nx%I2!cfs+)3-H4 zj)H|im_8qJRGLD|GepWzq@M^H@{}m3EwM>~nhFK#16K$H?a&8C@BrGO53~ge0SIe9 zP=!2lc~yb4Rx#|w>dY&2ZCU>?glA2u{K0-gS9v-ZD8$&{5TM9 zQBNUg0~Y5q7nl|UN%^cMDX}&v@R|BB5Zu$x91wI2B;_+l6ay{HXZrI$xMek!^Mq#Q zi;7u^wGp&0jKFgYgyjp%ksnux?|i{JXZkkg3sQ1c`a#VXrc*v@Yph{$Dw3XGxq=*M za=t1$XZkkhEAhb|7sRb!Iq(2za=x+vXVB(+B|po9TUJAX%nFFgt%9h;`f zokSZyyC=ubaLcOLPNzDUd7zFeAO&*Wq=4dD$Prx=lQirE-j*nzU zTP~fC^syptlB(SuDr3d(ERjiPsA>L2poqetfYq8 z?)4M7dySi-;u-g9yZM9K$AxqJ!C^R|X#Sx0adC4r<>Nwe{K?|uhC-L`CvsOqeJlEt z$;VZju!c#kkkwzrK5huyhF>f`E|k?@-k;%kH!5Bh2G$Q9PaND?C^g~?yuT}Pquq%T#B(*sUq);vv}@|E8x%- zfIuDGC7#{dmw2`ZL3TfH=bw@}j+pwDbT+t?&Z4`Mu24xn&`7lRgf)vh8uzy;ZEk8j zTnP6MhzI|Y_~PFX?{8*)xW?)qP+y>_!#lK;y7WZCE?mj`W8TVajv)D_J?N38NR70T0y@nAv(1ZqSJ zHNj%W5w=`Mzu)JGBSv;n45f{2!9^Xj@~)g-c(_$Hlt&pnIsj##unJBp6r2fTr6yGT6As`~T#GxQ>iR4%+MICYIG`Dr@Ia+% zOI%&kg91%OD5=LPT7gisJmMHdUQX)K7EHiGOONIB0JKRS)hz__)RISCqk&shGc|EO zut(2a4Fn=^Sm2rSumH3{&%`w;a8IAfq7S*DQF-A&zQl#zFG#^zX-DlZWI>PI!o2W6UusKi#@;{~^0`iVLVM$@$H_?1%Pc$`Q*z z`!eOh(A1Xr6qYs+*u0VkHgbFO%7_9$d-F<*mcb(%uT-Io90GWyO5)2ynOADC47aF; z@;A`hgj{IZ3dl)F9KFZ^fRF{~g(^Q}fv=#>56R%9iW4`HirQUi<4F-G_6pT*#DOP? z4^>5EKEGTGM`TXFTn$G&h?3eOn>w5bwQ|fA13;}DQ-=U@wHzavInj<^V+Ncj0E`^d zdBPPsIZ@!HmA)sOsPR&w9Ze?0zzaM&mv8`-31Hj=$+&?w?vjw>F1STCgu6gFnX%z6 zQ0dMXA<6_u%8Ubd5g$REVSN{UeLv&C^`XL_@!&3MOMGf=48Z(lyIx6o;a?EUs4s5l4xT}DRKNF4~0_>NNFiVJ5m;K6dIV6Dx8rc zN+}Pbq_)PU5G5!@8CP@z?M=ps%tC{c(bg#~LByJo#WQk)ld)tKpvB3kE0u7|su9Cf zSe%7|tR(s|%z`?Gk(-!s;io_978%7h~HPK~AER@hMH23nyd7nT+Rp;;>WYx-7bNsOhz zJza8u0?_a**`#JFl$s?uu!dXW(>TX~v014Yn@}5ATQNcc(AKOtfVEf%`mCrz9yvU) zVv`|PC_^hAkWFp94S{UX4*lhdhM*n#OB@WzVS~T45L*o5+rKQ>G_*s1*<>gc%FthG zxDB_&>LHIDZEIW*--`lLSaqo#^ukg%oqd+1{=F!;DeAWOKHJ^9VNqX_0w-*70O6p4 zd&8o?Bn3A|wYwxSJ=+@%mK#%qNwd1N_p@JW}h0NhFjFPr@$Gv$gHhgZd>%Xr{E^3yRGMUwas#SiV!BROIxq3 zHU>M~X1YB^ZNh3rP$((x5WCC(oT^LhAjGk@%iJM%nQ>Fp-P7}1+NE}x;e@*!<`znA zm)>Q@%~9& z-qSSCsN&fNj@^W_{6?jIBiUxk=lPw1X9Ga-iR5rj703SIkV`nppET9s zRkQrX!Le|bzp1uT&aeNm$R(U6&&|L6+r>5*UFAVTKGsptfVc-3cUA7@9$1Y;4=M zcVpYm#8Y;no~rp&cRxMVc2%@MoZ*bY zkK9k+tgkF0M(e-wU7kKmXUdtZZ3mF!cwhAdwR7c8H}4p`)m2LF^_|x4uYu^ljOHs( zB(j6E@f1y@uP!*be7p_uBb#i3Z2R&so0`phZ@QMsa_OJE`X%~vukP)~1y?_&;oq^F zM#da;_hC$S;SFit?qa_1Jse0c@oYiUoo}yFUG=M;vd-MBbbZUzeoR)W&>`er-cyS3 z2zXc!cW~5I*O^0`Q~GD+)2h4b+1ZXGJAe8sqe?0ga0a5)1w1(>10pi_Z!_#5=}1B^ zE6b`0j&Rzc#EXN2-7YldT#Bz$W?yjJXDpSa0$vcF+3 zO*;B7GaJf&Hri9rMUUHya4F~dUJ>16CYE%|yW$@&v}`X`G2ZEs-c$u!`uX^fCoY@` z>R>|f9`HGbtRbjl6)Q(_#!a()!qX3^S4Cl3Mph8b#X@$;*Z}bc;Nvd{E_5tMwK4rxi z8)jI5GGABz5t*oFE{c7%Fl$+!N+rmcxH|jn)w+?pB^O$$6$jldQOIq;NH;@>72oQ0 z<0iv_lZQ$WI@z|=VOcgt=zh2?%^_)NZ(rD*%m*{wXZG!@;^dNDWWXe|qj5s%Ch7{P zwn@uM!g<}vJf+Y8Iao3u-2M_*4)7u2QbshtrI9QHnLx?BUc74ZY5ZgdgkF& zKovGDLK<~pk`m(@Cmpu#Q?C-!*i*hFm8=7?HXbLio$bh$O@qkDb3fLGti$s_mm49< z41GL5>@|IKfAx6n6biYwOk)7Jeae&`|73Vgw1h7{$p1C|e$s&UEw0uny14O}AT{rt zlUkLxIYd9UA2>hp*hhY2(_z>Jp8!FHmri7R?lcL?(pXfjt(o)va`|zndUK$yWz}=U zZLO~9^B9Mr8x6XkR#^@Uzu!QE04{BmNtfpolF94i$j-gYp|2*s=05qY z%+){>A&kAqXftYBk7$S_YFnNp>gvJ^s==n!>TP$-^V$FdyAa9RlV(%fGTH5Rgn2sH zYAJ{9x-lc>dxj>0Gc`WcYGoU}-PMn%N|8czdrVnqh=E9QF?Xy7;JhcR)BZ&c!dcaw z_Y6A(9e}@!)u1#EbK1KAE@*d`!g3exbv!SMn`7=Uyv{TVr;zz_dG!dcf|bQ9xiTmF zlFFZ!knlGRNTZ6ugd1rIlRrcUX|}tDN#$gs0lb59HAin2p;b;c!GCyM=XJaR8*t4F-6b` z;}5ML=ta|dU{l*oUR@Nda4q~~*kIS30I+v{V;T9J5)-;tnFBpsq)JXCIl3D zC)kwCP>Gg*Yt`H{eCQa^nc}MqC+w}{?GaC2u$}uLaiQTF^(r+mv?S#z-L80{k+!9w zLk>Jh=23@b#arSkZZdrOK6yY^f1XO=-Zh{BtO?~#C4mX=tS2`NU%-0NBhU-KOeK~C z2iq$!`F%l2v9&;e)rkQNboG}noW?mqh-9Ib92INNsb?ZeUqi($gpwEV_9brF6oiC^ zci63_Q0;(^?zpV5hPOcE(H_Qfh>mX7@jY<9PIlPc3sB{f*Tf*4!RLpBFzVUszG_&R z+8`wa-!m#>5`y}3m>PPq0J<)rlbzM$TGI2DD%MA{06W^P`Ge_YwLv9Wz6n_R?_6V9fQbns&ur2~xLfCVeA=Gt1L(d8v8 zM2Z!RN3s?&_4;>;bqn~TrEi;mS!;(bT*K`!q$&k41%1 z2ynA-8Z&zxZ2A`SAW#DrwF?`1AqR9m69em-?Edi+uW@Uo>@^&@z5gAA+}U`<(xixp zn^}pM6ET-z(x0x3UUs!O+YZUeQr+)XG%HxGT>mVX=_lS5o?0Y=Q-z4!yt$_yw2@xl z87QkGJ)AM$cYKE+tq!%)TPd$oHm+|$_UY|L>{%29oX~hd&*P#2<#dEtR$o|R~ z@+iAE_lm@gTa9N>m7m5h6i=e4C|YaiA0w(MyGg10#FE-!SI0Y|2JcD0?+=KjTUs0L z3DL01Q4ia_y;oHnyqIRHT;9LR-sN`l4LjqrmbmdpZLKs<;kTw;XnOW`bR;V|1^kAh6kq> z38$t_{<@gx-Mkvxo?<%5z>WQ`5QgG`_fPrwt^0it{6ze#4LeOB)O?-F`-BQN%zE>* zxjE~i6JW2l1tds>XV0ONGj5|IkZ!=W)pQep%r|ipA&nBCm7aE8A{vx7z$W;mL3_q z=g6JprQGJ^FFLB;!lI_`-^Z#=XB4+;JCtV#r>-J) zI||28Bw;9QV#Ao{otSJAGo;=Rr<$eQ3`p5H%@*u+5;ty0Y*jFf8579AS#ROSuO%m? z9z=0S($LmSY}lc+Jz+SrgwR$o;FQAAj@2`{?2lTb zsN$WC9d}f95dTCz;7sLa;*ife?NXgdEUj8|nRZL~_T=@r&}!Y2{5YbcV$yKHiXD@J_)y!rZxFZ27Zi%9ccQ(H0=H)i6gwxPxTU<&cw5`o&i%Se# zvJ1*uMsZJ%uXeK>OCkB>GoL-r{Br9{91RzSgU=C$;|1%ICiSbD0k$lfX>4N>qDZL; zDISk{e!qjsE2kglVDktR_n5+kzq_=czEOYJCSt`>&ipx&BfXQ#e`m{fb)G+;w_Cqc z_CjOKMrp-T^U%{fUl}iW}8#Sv`Q*zTT#?8X*@Jof7 zR&z>UWOHh++||YeHYaoJtCC2?jH9ZGT229(ZRb@SYjQA7tFC=#KYj6fCjqD+N;r~c zc}uqnF7hMg;z>ow1ih5`g3Ae^w%b^ydD_Yx&tC&PzSGYmai=<=_9@XE!dRK|1<^{u zZUt9I#F%fCPJ;M}T5|7ax_HWaE?($&v6RzQ1Np_ZO5K&ZgKQ37cFz1GZ=!pxoOIF;aVH#M=-Kyzz~g=R4O#mLnakOC zl4<1p76s6xcn?SZ+BDj^YMYT8v1bS z0@lVKhT~5_+_%|8_BmFjAH-8nBt~~9{81=yHO!xkzf6lTK4zy?a#R-N4)v6?3_3}z z4*qJgFrO@#q`V>2kGmQmbaC{1CQL+>}gytr`A@pA7E>{MpSf)N?4bj#tF2aD+2}>3nZG3u zIl?>)mxa0F%j-xT&6rVgO4Gxg$Q<0gOmyL*0pETad>dZ6ZyN|P;CEqW*FrtiN{r4M zP#)9Y>OF!LhA%Gn8p)q}FWk7;i2O77uzRl6M{D7dYv?5i@lj3d8Oh8P6jvQj#>^45 z=Fg^223#l~Bg}7VxO3^?Y^Aw0{pYBrQY2K3J6K6Axr&h%`+c~?(aFb7y5Bqmj?JL3i)-}!@#7=<(*`3DXw&3K)W7uonTE88C{Y&dpy zkxM1QIOBI8_Lm8}KHcS(SIm{edDx!Yik)<-!bFEX4>4-|^GjyXUA*MX1rt>A#idJ& z$B9(}6cYSwsQBn_`^y3^c7d_KerA48_@%z0U-gij?eMT|V2-vPbgZ8E7j_#+Bb2$D|eJ%tvj~OO5Q}7Yqws8Ol!VO1?h%ry~(6DH>~W}fk7@!;u-@!H&ze^ zLq5A+sv1MSy5zQ0(?t^sQJ~Gr=!T41>&pSv+Qd|6wbS~h3Q+yhX*r;pzL8LGZ7K)e9DUpK!ni60T9aiq&k9 z6zz~##9N9lPJErX$DpC(sj!~V0M{nd?QST$o!&hHDyR4$Cg7(N6RuUE5fc&k^qsSe zg_x+X*K9*8q@&qujU9_9(KE{<&YNdM6RJtgnxFdgGLP$=D)WAo9K#p<-R?zYQoFxmN z7KUH_%0#HCbJY4tTd&A3TNn(oDA@hu8RAM z6+)L`SiDlb1J)hlntK?!97g$DDr2n#R4Q5#A~NDBL4=qHWl+R4bW)F72x*SPRN;k% zOlTD*hS#XVm=+fi7bJ$u<+YMSlE$Cy%6$J2D%*+vK)eZg;p0X*!qZHekvm7uHN<~M z-iVD&sx4{R<8tL5zztsQN-5=nx^k>o2A1Nsz)>`bv{3U;X(2&_RF3Ef-;`QFcF=kN z%gaguh66o#WVE_b!#f_RSTRhv!w|zG#}J>T4-*~@s{<};;%Ah7;OGwt?|MJ^pF!oH zH`uR1CCvWUpz<&gng+B(Ax{t6Ya>9eZy6UEOah7(Nv)ra30FIdWN; zjwTvAspWA_4I1AL^|dfmqBAy~8#HCECqC zCg;=LfnPV>eW9TljDgVtX(j`#!%Z}v8L{N!=F20PRZ=gT)qA&0qL`g%X>A-30?vf+^qreqs`(=vtJ;8THTN z-|zI1@9?N_1N~_?jNi5p%X5{&+`7&H$5|}1B9?i{DLSe~ROXbrr(|G0^qT3A5K(HI z04yh_7Q{(zMNc$cFu^G~RD_Ylrqok7urStEr=dKh4&73O(e$S)`F_SgW=4-rS#G|` z`GLTQrXECttFY28EeY9)GFGQbX`J$p@*>|(EYYHUUbuKc1gi{1RifE$sdK1e*g{Y( z;WXo5S%0bXr2H6C-RprXui~ul>Y{LJUU`{U5)pCLIj{snKV|PsghQI0K)sI@bC4@9 zjYV$+T595JKIR!>5M_`<;-X$7+JtM_OEHEwm%Kk;nb)qqA%eNBpt`8RxK=MXu{G4f zwqJgTA=MZ^eTbt$p@f!P=3C;A6qqJgUVy_Gm?okq%Ao8**P^cE7J)KR`9q1ZUzL9S zZ~8F33dJpXT^=oZb_l*Yo_qEPgbB|go(n2rzq)3PFN=-D-r$O%la1H=*^?%Cx7XMU zm|&gq_t{bJ*%xKjyKBiVi!r(uRexj3{kGx3yr2wO+6ikD{ubrX*l-aQsm=1&d^^@Y+A&b2?FH(r zTPuV_uI=|?!le?s?t3zaE}YvVz0BE=vFA)T&SFB3`qTLLm|>&N*JPBKgro9L`-5_X zW~`SyYPiq1=FlF-Iz-ZpJWh3f_04Iw=bEW!2J^Fs>5R2vovTk!GtRl@O@u&D*VW1d zZ5uxZl%V?GV9=1s{;3m|O#be*6s9c}Zg^9aHV9zM{Mm|d zo`>=#Mn}~);ZJ+dKx{jVmWncy6eMrw%u65^qwIG-E+_=KThX^mE&7oY;K2i-rg(M& zCP!4~YNV(ngMZ*B&hSaPN`Rhs^)IlJoOz6SEjPc+Xx%}=1r~|*GMjNCPdecd$FV9? zEpC!I*|a6)MHqa?Zqb(?8@J(=j(-0heST(sIuminYfP{-*B=<9iGrG*Cbq8)qW-gV z;ILgrR5-v5*3FUF<+$M_wEaQO;w-y$B17F$>jjUZzcX9?QsPVK077>du zNK%RN?69&zwFAVup`f0@F{++R$zD1VQhekTxI{!~^dn7`w6E;0lggr%0F?^gx4K^M zde_$b4U8C?UDH4Qs=^{rAY&CVnQmCKLcd8%M)f{J?iu0tWfED?kbu&rsYOpD*^}dE z$UE+$8;q_<5#R3TCQdl|Zy*Qe+2HUz-~@Qr)y8yfn|uzGpvF%MlKr!~N-hPuqP5Bf z1rzJ<((3`1J(MvG=heDmKg{8q9CZ3OBe=NT@H{6xV4d4~$9GSj68L|`&u$Ix-Ed}f zdV*yo<+a3nHKzh!D6utz_7Uy1qwz2mTIjKEOFUX)yDKY?he6)gU(;P3Cc1Y0kDWBkOiHwC4rzU_ z%{k%4h;2m{6Lts9!(bjXhH181*B6Yvc;hKWII6i(r8;SC?stv7c#>8QQ5GKUZ0q^e za1Y1k+z&I(=4Sc~xOvKd`BL z;Tn*Zb1DNec@0Thd{scO8xm_AY%0LmXC(Ceo8mBsiL4U0ziB{O&Zq!Bbd31#+*J9- z+zW=ss-+zL^~3>dFr4I3gd4Fc?-%YHwSt?@hfckq?YIKqBmDl|jRq9h@fq{$Z?h64 zZV95hEcAOlpW1!iMlFy4r|z{zu>B?ohWYs4Ja#b3ug!Zh%8y>k>otX3oN%h_FQ9da zH@@4NN8dMY`TEUfhhmHhXEH)}nyY z@uAN2W0vjRl0b0H(gcdyT{x=*!}9L@>+8bGWoAb=HK!kQDrEReT6C@2YnBjHHU)`r)iFWi7`2)h57< zJDxCBRUmuEo184JNVIud7Qh3p3t14e^_yAQ#snnB?NZ;B0 zjC4Gy3kWlW6?y#e@Z!M1cyRysz1@!A#FQluzmEWx?fh9Zc1)d++_yWS^eX=*KK}NP znaVrPAyXzT9siSfYQKVOC!fV6)o?9;cJjtaQV-W8uIHriHPx>P2eIFieUWe88^Gf3 zj;z}Oh9(?N{rU&2a6ul+<2 zNCm_HeJ%ysv{mdSsoCCfi&Qs#gog*=2Q1Q4`2lvb(aRve1yZ);4p`P6;DS5MhdK;c z>}Ihqz`4jnNv>0cL#O(;5l0O0Q70_~brezW=$SLDXm_(Qyk$Fi&n@|CqT<>hvxq7Y zh?gqSH$~MS@IU_@An=9Mh-0OP#;PC$ClUdUU4jMFz;Vu`K22>%`ew2dmgiBkN+AMU zN+G=qN-_O2{|=v@W>f+8WvwepKw@dogqb$q&8U0|q``A4ivU{&P ze?=Xkh&tEh44WC0A*&$R%OV(KiVE_GzM3>aus$m=&X~EMoD3_wDl!mBIn)oXErPl< zAQEk9poYdY0-B3Zc5H0MG-$-*bZEwuG-!K_{|;LU>ACiypii8EXa75DJF%6|a z4U0;Uk{$+ThU^(x0(o;4b9aGY>}eVYn% zIFMLfNX!)S&pOB$mT;ieF`~XXny$5Fzj)yRy)mL~xw;TJnI&^$L?CfA#5p$uF*M*f zV?+T>bs@F1!N$nM{}*=Fmgh14FT>LGPMEj z7~+Sk-$iyv18~^P=89a>n@&7rTW}b97nV^pq3-6Z;lOz60$Dy0(>MH0{uZQW8;jJj z5}WP!Zd@E(>=~gIoSrWIy>fUwSYD_J4X1(VNel&$w<9GMr4fy+1jUM#y~@cjc9 zrJJ|)81}=&7DA$$)CT{z@$YZO&(~Joc5KJ%W$NYJItBF#wl$Cb{j z5dGpc5JM0?#B^6C&h9{}GcpjB^Rm4}Fx7i3Bh_f(j&|u=hsi5mpY!+Tu@9> zy*aeoTQoyNxM6Ch$k6mc!oX=EU_{{1)^Xe&WrFP((x- zvhnM3oRA{>NTP2jCb-Oy&tA!g zUxshN4hiCHLG<%i1>~7%RPK=Ad_al%??MD=4Zlyf_Y;gSeKNZwj^qUwAg`NbbpK8K z%s0k~txA6_sk=K_rl-w$=FSm6}Guu z;o3nb8J!@jHf#UcdT_qjvsnjjr!P8yHc*IL+d!bRh8PNNXCx|wHqeO6*hH|oj7SVa z)J#l<7EniQ53@TPm7@M#)_GvePi+;k6uh>MxCm{4pPPt*7`|JDZC@t5A98T$)^HsIl5V^ zYJ*mXpH9Vz&SPO(ltw4I#mfN>US~%C;y9<)zlh__lDBW|J=t8dQ*P~j?vmyOy-R5? zY{Qi-g-J8>jEHTGa)wJi*nIXA6jx^f!33NAPPfVH-r(YK>B8a2=@Xh^%WD&Ld+PcF z)%AofM5hgALDI$7{e(`AehK_&tvF}nw>q5KY!4CaZr=Md8G0ABw|OQC@)?DvT7W*; zV1guuAW`34o~2wBB0}61Aw}dJNP4k4N#MQ7EFOz1tO03n4x2>YwQSvU4A11UNv&zB8c32gnOaAVOFXdo0=^K;e26Cxi2& z=2>Atc1)&|!ajGoPDH>oeflJGda-4{NPzcY5@Er8bgt>JCp3`yjL&ohT=}2~1Oskq z!W2g<9N84F2{6Rn_bOazVShQ?x*;xw^pD*#i5&=z$qXpQZ6^QV!D-YGE}4X1d1sx3 zzv^U}gzoQb81dTgU>Wn0@OV6Er(KJjPt z+Z*)YxdOo!tbx9mUfz5-&Q`*>P-j+ItD)I-4wCkx@+F_Wuz7!+%=u@DaP6O%KT-4^ zDU&&WCQO+dP<5MXumowv#fS^wbe$Q}1S-YKrIj?VjQkxyOTcd>KvBEs-*K-2-HFF1 z-i_o-8C#{>LHI7i*SR&|Nb^kI{Or*#$0k4d$Xi<1@%zGR@Nn~Twq>}*sf zeC6Oh_d;cyeX?EIeBs@d^x98orPznQg`z7p3M_i1rxyq^_D@)cSBPSIPTNOO#R`HuZqcyI4ON%g=WZ9L;OyeJjWAp;g#d=*;%!79} zR_FBLDgr%3lm0w713MhSKo=aaB1ZImUNcoHlYRk_h~dZjAR4(yJ7OhBHMKKt4p0k5=p$T>ny$a>>(MSfsXlJUCWT*NAXoiw zot{68uA?gPCXpGNj&AfsTKmyR_b5Vdz6Ukr-;*iC(HRRyD26?Ms3)UJoy?ibrYLe( zQjqih{nb|xefx3nPRbFe8TQc~Ur7rA@8=v;U6+9=uNK6tC7#J1 z6WK+T;oSDvvrYvQV86no;RrVlpBZEZC<9;OhJcLdlB0c~{G_B?Ot@4|pi=T9$bzJ7 z&=~hHI{zNS0!n!Z3b`to+{qr!$xK&jd^cYuY6m;2ijGU?NHDi3YT z&(fsT&{W;D%R|SKoYHE}tr6j3r0b!mH2)aq)fs6QZI^8`QfaCn_tpKr=A*KJ6kL&p zBc-9KaaH7|L=4ibqM5!4q%N=bx$?G4qVJ$<5DHupPO7n0*9(PK1?*L{^B%^e+ftV^ zfwqaJlsC7yXxha>ELAND)9=`pFo{kMqv?5VbwWx}RhbWZbKu=MRAHn#w%v|wV z;=-uLTSrIXao$_&;tJiy0-Ag znutahC&u)<$|_yg8XFh<@P1Mrpml8Imw(!kP3|{Ble{Xeo$I@pJDQYC5I3~gyJD>x zb&T4%8;w;n39yw2tN6Coe|O!wxk)%3-R|N}3SPpih-iXGnn-7t(njT9mK1BG6srs< z(gqbPu*)`bWJzf8E;iABVht-{-zrJ)EE>B~+1@Ip@0E&ADz5tOn3xA2P+G}3F{nz1 zmUF?X8d+DJ+G-`Xx0Q{%z1i=U&>fceaFmVPDxDve&<)EotBPjUZ7MD(7N-<5?UpJA z6(?C|aUHmtADourot@-oo$6ImE9qI3KdN{{xnJNsEDdoz z&DbejpHw`;ku|EyayPnP7`scef4)j`64SO_UBdf-kpf;-Onz93o&|-+e@|njU?79; zFs96D-DWN74KcMHJOO>F(bB(=6?NEKNvaC>-x|$qgOEHFeMPl;cwbs6D~9iJlSAsp#mf*NH_`u~2_`6-H0 zfV>~Sf-VR8tp_Eien)l_BM0kkfF);shh7GMru7*84__wS@A@GiG&Gn*xrq_Bn2F|aRTR9o zqltguwVH6?J0jtigasir&<90W7KCdtrJdvf)zU`6p3_1f97;LOv;BuR6HfA43teH|!nMMWfE=@s4_6;o9GWcsnv**!<$x4*tpjsy6wM|D^uc5R z*|pIlDZAy0#Q!8ERRYQ~qE`Olxzg>5uWTOBQddA1Mo&|dvLGzjXFI;wM$u&32uRT? z4L5*MJIc__Z;cSK;Hd={^*rUCn;@hZqmI9%*XF(z1sW8@oL#veU%vbT`gA zWZkeUuUP&vm3X07^$|yxR@;kpKcl5+?f&P4{N2LDclvu~PIC(Cdu9&v0j@L|Ue-Py zVcExsD+T`eVv#xpe*fYhfA&OqQ4O;4j$(dvEKKj0GFC4KVzCZIB}&rA3v8v=^Pu^QPxHC8uAOLNZ(1R1|%1xTBg-m z&T*NCVG2)&N?-3X#>@Za@Q=>=eDhBgn%4h}O>mvi3&oUnRS>sawVcbi z=aEl8Op#_`OqI+VF;4%e8^UWmp*KdJB>a%r?KDnD`(n}96Op&`@dN2ED|VvYH+(pK z<_Qw4WRp18>Xm|j9PB5^u#%3xuE_=gbs!5|5!$mS4Sh_ra^L5bT__QqpukGu|6-V* z#nBke65!P*m1p-Hr|cn)s%8K^gW*0%nQ6A_4mzGX1`hTJ zQE3ur^cqtTaOkBh0*0bq1f~nOp?+?aC92*hT(0Hd7ri(Z_3dH7D&3<2l4$s-jim! z*r3&n;9?1jT?S6T%G=P2J_AA*7GFT6Wr!7%Q}P}(4?$vQ+1XLE4Yzl}YTf>&Py~$mVi4-sw?q)5@jFv6n zVIK9<1Hd?b7QMoY3)kBy61c2K6+nRPZTMAfYyf(~ci#>HEpBrc0cRrowtexD5#g_S zIB|T6|9V#Zj9*|K4loJ8!II)de@?F0ZD8f#ybZBtp05b<|IGl<5AYj86g;X`40MMPQ(2n#AZEw=yD6waT&V0eOMs8XU z_ajb#75poV$l&~FvmNo?NdXcBp-F_$MDbt9rCsf$;1Cigd;vtlt%_rPcb&; zxdh238r#Xx;R@vL)t}Df)`C zP0I4J=E;iRjb7~X6XCqKNPIS$YV8dR$GasOk=E&MuB$rvYsL%5*4EQ!RuYbl*to0f zdFv9=bQ?sF9K|xmu=0DMFm2s-(_HsIP+Nvka@Mea{>eoy>-nzeb7>RdTC7v@jaUk_ ztryY$#mCw)NbS|}x8cN>{bwu!+Sqi}`%(szAm?SYI-mm(0x;>;pAi6)UTOz0=`OFxU%F2M(9dRm zBLHUtz*|tilksK!0WTaE?#IC$aAx?2!NvTFZSPklz`qPSvkJN#IMbJ&9)9&#M!xz9 zB^+J?M?`^N-2~Auo;&~m8NCYq>aCEUU*TrLC4Z5s8DPzv*bZ`fiyq~nesvQ*Yok8p z!9Vn&V@7Kn`Z(=>aOF7o;WiV%A2+Cp>Xd-cN&%nxu$>J+Dd$8|3iSEP1iS19n$PsI z5L^ok>!3O)9_}3AZ#?pASEHHzPJH;bq2C6{J&1ovmvzFw#lhUl#KW3NSHuvC&s8j{ zoWf_EsVHTLWaEg#r*bhp%nLZrb)1SSuRYvnmNG(`cYG1WMZ4=gGlY)EC~@#!x07P! z8)hM6R6I&_i8L9~KbJFOX=;1gErGVke*&3LX?vRc^f!69CM{xw`o&!x{l#c0WsKzR zLJQYPZ3bdGSHt`lOd|KvFz&F@o&}&d4VO(E7bUsKEj_GxwY!VhVMgU=+9IY%9h(k> z@a3nfmR^*i*~|8Ps)|mkO?|BS<0t;l{J!(OPliY{*SC)rEDIU$=u)Y@J%oQXef6P~ z>fc-2i!v;`rY&NOjN-@p;?8e?HNSi@|BpLz5fj`dp9ek~^W8u}M^!{E6tegC1KdDlyO<`taJ)PO93UH@9}7rTf7E}#qF1xGQm+YoDB?0DEt z6nyas0#I0hH=Y}gV&ZQDs(HENi6@uNKIA050h%i~NfqfCRE#A42}9+c(mkq2r}nEj zG!XvoOp0U!lU|KNZQx^GOC&-t7>418M(qcSKn%!-B3LyL)3i|8Xdnz#bOE7Ase)p_ z<;|eYpOS?iu@=!x%QAt0PW=P6QmwYXf>KH=9F^Dqv=6{Mq%}%W6(%!eY(>&({=v6y+ln zQ|=m8D)JEh`M12>*N$^J*PN*i?-dhQS>FmWiXrl(Hhbo?gyEHAfThSod+$q>ZV{zY zF70?xTr|i2j{sd^Zzubwicm$28|PtB+*Bn)h=9|xw11K;P8oA-K8t?TkHy|X{ml?~ zVyx<^6xgUL9APFE{XX#)4P75?k}`C+ENib7$x2S1G6pzxU(grC??6#Z8M40pr-wN6 zDM8l1qrZ6nu4O)Can{87QWNx)F&5WxfR;}@RgEwNnw=-%E9+k<#{!gUM*0~a)fk^z z$`Gra7f;o2ay0sj*n{h|CI?{?`AcV${#6_Bp22OX4CA6I?V$n`aN`5_i}R;GRs43P z$F8o?-gDz6lrvU@`8rqC(4En&72u9*{TknCEH@KXo0XJ4l9e;}FfXwf>!lu6ylwp& z?`262mJ4H~c*_be?+r&07575Q)|x@C_4I3vSmfU@ydnmuz%~<6Wi=1w41KJ4xstU< zeyRz+OGB)9u@VpOug8#WNENSE@;cT%7JF@EXSY7oaJ2rs#t?rPJuU!rvB#u+wlm!0 ztd|~Lf;)^#fX4BIzh+W|1!wt?`4plF@Ctygd5ZP>S^+5l(t`o%XoA~}bFO;nvSwU0 zlSM4}%ZCOTTl`M)_IlWeQS$m1J#1u`tM1Qn>|WYKgeeiU5KVS~(a*836|kWT1BS^t zf+fuV`4Rv~LgIehfv){Cw4(-Q+%<5F4WMgUA_qNestI_@hY}VLP3;lLk-Fg&1RpIJ zf#J6uZ_~ZDY%YD4vcyyH*`@&)tD!@5x7#}l_d@w53>QFuLWg{u@@mIxGQ3R{= zX}b+E?C|JylZM7r7k-(@pIn^gnyY$J@9ndeD{n24W<~G3W%wsgYBv34wcc#X7H41BmQf5X|Dcy2_nt*o4s_~)*#|F(FEU~xCn1(-BVa`WXiu@Vc= z*amdD4U4c?ZeC;FPja*6o83ksm@RjJ5&*9F3iNMf{`IF0akJ+d+=h!-Y&Puxb7R?- zn}lDTDXUHW-Kt89beFp}(qIQ=$?;3vC^;sujZS0+=XN0u!)_09J=Yr28@=%V0@7;U z#pVuRbbH+H@=w4kM70;2g0NPPQR5}&n|8t{m$<4LYn|Li0C)X8mm8(yQ){PJm$(Bn z&VOZ6(=CygHn^wtR)H%v+9Mi0TuwW5QtcEWWY7LV) zFP1Zz0Q+cwayu7i;I^;Z4PPqN8H(QCZ1zN~oX0y`FIFsSi~6W{VbFxRdbc7w^S-6A zXJ-Wht)8r8v8F^?L2=;AOICx0fJewrAt&&W!N_~m4#cp$r

%-IPnLkI-#V7(uj2;sHvpdolE-cvq)_h4B_#(uw0LZ=rlIo5BbJ z$)Bey1tSo>e-HRq1j)-5XBNsb6>kFmi9zytsl#`FlA;#_{uhhD)er7N+ZV}MpRa)b zJdph3ji^lm^blf&GyRx7-Vb^R7D z+>iSJ-}MDt{pdAH*nDk{;#k@zMDez79YuoVaoz{1Md4??&CI6bnjHH=st%GjeW-w_ z@^$1C;Hg0JTt61xcs?dGzM8x&6gJ_FT|tV9NLOO@~N|PAFAIeQzwa= zyK6E^ML2`x)1TKoPof>K|46CftC8zJC<2n_W1xyVNio{L>@V*1c=Fe8Qi9~m9X##L zqD+ovQDx|GKfxUi6@shZ`%bH|r!!bO<1EwW^L*PR2_X60wv?7T{kJfX-RaKjTNnlP zLGnjZ&$3rznO}>WY-U;Ym%}lDvM5hbx2-r95#22Sm;Z|~_bJmYVn!hT zYLNVXxMgoY93cV_zZXcpIPuGujCX4md3<>0+e~R`%s~9OAbB0aT)gXSq&^`2 z$xq0AFjNj)zyoQvf) zWHyjIchLmuNs}83UAlzu^lcvMlYDUb%bqK09rQj}3Exx>pe7zQYl6W;|NerKRFliQ z6a1JX>SQ$i*FSDY!r-Cr?}4>`-xMcM$l-;e7HfuteyYRZq5bRZ85iizPZzdR)W|uN zy+dGt!9)9hIMa57_3hl;G8@aN+ABJFH}B8&gZ};VdZJEt$sY-^(xmXxW3$;(T`+iP z|ClqPC!E%Z-JZB2$2kduUn4>CQJKFFblBo~e9;Mv2o?4D)Isu2soBw-*|tPZN=sD( z=ErSRAo)>#agCm$Xd{4M%l&ixpy#hMqZlCpckrEpgeul=)!>L~7(8_Sw&9&VPQ;vf ze>v1Zl+=)P@q)oa&tIf-8&@QVbgL->qx> zNS}wFcc*D!HwRq(R-wNT;$MGL2ziiYgX*|x9vA(+f0h34ZCEWHIY=c%7yqo80F|&T z!r%V|Gkrfq!Cf6n@y6_N*ne$*O#AQp7i@pGTYB@w(-IL7{zwTTTTK3LFZm{K|GR(h z|934K3&@Cq07L@yFS`jR@djL*fjo>$LZlTxM1HyX0!yI3@kalDYKP(h#L)lL&P_OQ zfE}O>$mnRulk*3N{J&cd+I~L)WCv;z{#^q5y6rV2u5cjW8ws=lu8tr2lQ@VXKVayF z^Sb%M<3L8p1h?fu{1V^HFW?5czZw^!A6*L3SS5zEIiU{_z`%_(WQ05fDM8``+WMY< z2h(zH7TgWj!FK1LPtN#|{tXO>%tFNcXFmfDBr%_FH^7ZJQG)1w4uW)GYC_4xG(#IL3#q#uxLVUT=kH6i0z$B;OHeXExO(dS%+ zNP$MkhW=y#`38?#5{Sb|5!8PwY-2+XLO|Y>0S=IWU5K^+{PRKr(g(;%&OaXru*RW1 ztPw%ZC*V9TWr1kumq7B5=YZ6s+Z|E|8U{#yz&z6+K>DAYLh>EpfpB)45UwW{GM=Xf zk=rzoap*V_Z_Z7Hy1%a{K)*^CLLeGJogY9S z*l&OYcwiimk?IitK%0UE(#HP?@l)ReA=xV-Quqr*0(k&-fqe(Gf%ONhTZ<2n^$v{x zI|;m=RFgn7fPD+tfkgEm^b5$b0LM59S(n-0An_wCKql_rNy;#Y4Zt7tez&;UN5qnU zj{}GY;DEM}_=#H24$dmz_CFti^M@1%G6Jj*U_Aj6$O}48pdS(q z9NeF?1ib%e3Gk5F{g3~T1L%h){!jft+X3tY@_)-Nw4eXKwEyc<{QtS^fq4WxLhmE! zeqg=<3FrfDKp(md>;s@5x(#rE1oWWWu=;^uM@ynqDs0Qv9y1N#4N9O(bwvIE%r-;zN7fE0neY{3EYzv~BA$Og^LFoF`v}-i&=RNdFSOqOSKD4DkjMb}|5ls~HwO{)d1QF=xfBrBS_I@3s5}Pffk=Q) zgS?%D1LWVe{?A+gu0GK50v@3Ifi@rkJwQVD1Fy5dIB@Rn-_0gkV-E(qaSiVX$wRXKZfzbAS zu75lc;~wRH+&b}yb&4>_2-QFem6I}$$GyR0=9$w#U*@~i!HK!HDUoe%G-EDAV`v#P zvqhBqXV)_pbtn71)Y+kkDSYpxp1(rolOg)@i*8FW$%PXwNVx9veB!#=lbuNoV&}uI z@x+F$U%x8$gnD-aI9Xf@s&JOVuRgkX`Uw2EHmFDWT#r+=bv+@hi6M0IwzJPCchadf z(sk8}Xfn06_}z2C4>5uCGwOkF{O$P$E{@or`JM!)JnqCyJV&q2 zPM=Qf;4hyCXmjGHHSd3QmdPXzmzS3O+I**6YhawxUt!&m5UfIBO(2J}o=@R`1=`LW4)j`A46A`Nia0{a=gYRZGO#Emm`bQg5%Q%W?k@E2^vi zv4df&9KFIj45#w?sadt;=)sZI2KB~@sKgn!#!7L!PE;+QR^P6`rseFa?Yny#*8IjA zWetng8i~ziBWlQ8d^Si|h3~Xuia)Q08PCaYuDqHfG1_x;x@U76btB6#a5AZeFC3xB z6DN-&n!P4}{)NT52m<_$F($Pko>Xgyd!<6+*x8ZEo{(iPZNp}*!gK4n7xvs1wR>HH z%~Ltylv(`?~Yk=~x&w*-EJMK@|Eyk|J>A22vmPpIiYGyf9pL-4*pT)#bw zGN%*~J!MZ>G$#F^Isb%<+VJ-k5{A)L4Vj=M6N2nefuys20kZ=EI=5fXY-^tI7{%vH zbLx$+-I5gVjg7`M`Jg;fqni`!;M|L^n5UBy>sQ?y8#3Jf$f$dDjjAU~@a_g%?0s4i zg@{pyFZNkkt-ZGu^ZKKrae1VeWQq7njqD{P`4YRCYVWn5u1&qAkj?okkPm+a(ycQ5 zofeN_ldeQdB@d88_)WXMyEcAluEwc5`gqF0DlWj-}V(%16x8Z6&( zsbml?^F4Mbu@X{ecjk-IWv7xi*{i>Aisp0p|#F=O8OMQ1JF^>?h2>QZ~6&_`u) zs0?|GT(%sHmy{B^lLRIs>iA09<1BJs@u=| z6yz>XaQ)Z6Rloi4vGpAJt?UC<-#3clJoO!WIVP23@^`Y_HXmypL@Ga+%5Se3EV|Xn zUR>~)Hmc3o@#SN4M9X8Dom(%tQ!Y^V1(S+4#@AjfIhO|=WIafu#W!1iJ-NQOYW_3d z=DD8JnbCl(Ko+}DD`z*ReXnsVy~m|asJRnih_ch|%%CZcswSm0&J3RCXhw(J0 z4)|}Yk&i5flMnni36Sm3g?kFiRXW?1dWZlviu9?MR?<-Zw z4dOh%M=9e_VUUGx5a!Qb7-CHB_EM=*+CFNxdPtUwJe0F2s8P9}*5@ECu7hmuvqtN_ zE?*0cIP-)$U7gslHZ>LI6QvC-WtkRk5gr+z*WcdyzkE6pd&N8O;8+X$kYV-VC41#+ zvAr7mDLkPD(g*Pj8ey-v_dgdXNy^GNGxJ+zd0a1QNY8W8Hn1aF1uZ$JuvbQT9aos| z&$BH$R#0NrOV1@clT#LMJT+N4oOVK6@?ia3o0T*~m03bgz~@pX9ADJELb4qiR`QY( zbCmDf>D~jc+R@jKSY@ZPuU#cOZw>PNh|3~r{)L$UH;i7*=RDARZYpu!V3FLux0Bxf zH3_Fy(;Efp7v?>TY8DH7VJA<0Rf^D!4V(nTc|u-jN=kxlLu1!z@mNj_(WgImNFsaIO9D~lO6v6gFW|4?_oRtrwD+3Z#VLN1{gs?&q| zk@?$>=vl^aa7_dZgDoi^NtZrWB$<>;3r0_kX(*gGz8zD<(Izu>+~8OmJKa6Y%4M%% zyxt$&F#nyqTr-gRFk~f{vt*|yejhLB`&OaAl@HaU@0aya6wEe$5@(CbE0TAjWroie zE+@QSy4D7U_)Wc*V{?9_Xl9eBW*L-i>(GH3j4CL}t1V3}<|De1@C{?6H-k%*Sm5MT zG_6Gz=N7thQI0!Co z79)qtC$-0h>(qOFPlaUnAWhmQ?v|=sme7MQ+eLE~bfV#K!YHz2>WqpUQX5VCJr_M% zuMt!(_Rfn$yvN)LUS~}oe+(q$PbuKSmX!-9y zp;bhM_@~Y1uP18Fwtw(ST?j?&w{I-*a%6?k%^zf^S{JW^`ay&87&x8+W9Kl~S1z3;14NpMRay5(D%6Mas(>(ugVB#lxn zK0rQ_iAaquE^r(h>vZwhqzS9wu{fbLSEy|0u;^=(Go9V@;Z6UsI1j`u^Y#^@ca0m{ z(jQSggk6)1YroOsd>(mVHxhsJ^jY$+J6s0D9q|pMKRIjd?TI|OOL&_O(_~HyPpBhY z!=`?XCFPv>urFf4<9WSqBJ8=>*IS{;Dkj)t@w{POv+llE(~Nf$Twd!s$(p!u$_wFp zbJjnbKP8x}jy&E#VI354&lGsj2h(N-6JC1P?nfLsgQ0f~l zAD0+&tyy@a-8IoZ+ts(cr}S?9PlYj&^Kmw=7S%?d(UO!}f7Hr&Eeglpqy<+dm3aOg zwHz*y2!#PtjRy{CF@WL1uQb3PK^oo~312@AVcA1%f=%FVKpXSBhSK)={v(ASbYsEg z-g?u5Nj*%tkET=(^riv_clLhdv1)r?|?JR5;xv*8jolFYIXK-I^UDup!Cz#9`ku2D+Z+)PH%fB)v^f< z<`U7;u%3UezVcpha!X5@67x?biu5%emJbvW#v*^P&4 zdQ-XPWyh&|L+BBym<{ELVoH{`R$fjSa#_^SUU*5bHH{OXJ}g|bb*4>Sj=3h3c$G4) zP=2CNU$@_S9w17@>49G!rHdkZVbM73Zp8O*Uv3S>?W7K2Cd0T|-uze&eN(6Z zgd=eMm>lWN6OD`16jW^_pW4&0){NQYC*Bj+%nd0~VcqhFjTxL02xectmhe?HSUu#O zSW{T;vz8hY+b`J|8O774q&?2~`J|UmEt^0uqPa58&EtZ>z|xyzqsg5)+^wn+D~$GB zWXsp|$U;MsNjaI%fbyGE!9qUw1p8zCxol3m5M_*e2F`9vaZ=4+e)&4sZ4`@IG@?nH zxW0uW!p|e<33({dRfvK0vC8FP`I@x!N*BS3DN8{@Fg{VH$q4x$?piE{_V^)oo&aqG{Ilj!#9#y84e})?2O{q)ywZqM+CT%_C)=4HI(}6YRISj*Bur0 zuRE&rUsuEXe_aj9ERF2T{|bZ@ivZ^j;R;NVoo0}oW~Te3lQDMN*k$F|r`)F{*NyNJ zvyAxb;>xG2RNEEBnw0rH@Z+Gt-D^o@e$TYMk6UvDsT=oQ;U7^qDX@w#AUO|X?9w4k zZXyTy!+Gm^iJk2A)7X1SX_gjxmBPz zUhs#41rPQKLL>EwZBty!vgk8V%VYV6|V z=TzbN&)P)3Qv5FLD!o&PYot`nibo^zO7!gcgc`h}HGzHzG4fCsZ z8jG7HA-Pk^qEaW~(u#J|nQ}K9OJc3Sn@iVp3u&cK7V8du?8J7E-19)q>4@uW*QaQqWWwFa5c0Nw7?U z{kTu$yuz+*75Z2Dc}Yu#s>`>D1jz2?KJ2)T8BdT8L&-_23GF0Zj8(iMZz~eKNE_!) zEG;2n=^DOuy_4VX8!YPksyu;(}K_{6nL)%Bmk6>z_U|6{2JYA8XXFbh^ z+f-rghlkg)%#hzUnh|Vfe(vz78NQ%7*h0Kh=yGe)dzhPZvcTCCwQ=F}>P%a`@A%jb z&ff9<#7OQ}VTznkB~|fSnrJ%S7x#M(%q82k}SVm)IFh)m7(HleUJ@x+O?~logxnH%e@~%ss^QVic zh?##!RpeiGQ!X7NUwK{8-N$NgBoV(pIOCf)EFK3pz%07_s^H0Uy3J^^zOpep#&LQ{ zabnlB<Pj#nc zhd{_K|Bl6LvSr$fjfb}ja-{w6ir`o(Y@zO({VOTD zpB7l%xRJluBW{%%*7h^DOz%WpecbtoT&=G-s zos|mwa&ky&w1H*pIC2enS_3^+Y;vk7)4ka>&wfl!fqoIw#f#$HQ$wVe4}SOXH5X5| zl!v$Azh$sm+cG5kEl-!5-c*@hnK1w6!`c?hi0%6Dp=zW~KCA9d(fRzw#ymUYCYFYB zTn|=vd%Bt$Z7L^*hhBZ(l^WN3wEV69x{I7rdYPx0p6L}x&e*V( zw1D(R=z1k;EjT};kNc6zJp);xTqe~}KC~n`X{HRfgT3IL<)gf zl4A_!>>*1GOeB(*5=w6}83HoCMDpi%oU}P=HpvEQ67MSuNgh|BC`kqK(|G7&@G~=U zeSKNVSms-^b9%a_Oi(*|$RL}M7q6t^pV6bF5}fgaVZ$q9l))S){r&S=fkp)T-$i#5 zvg(RN+WY5Kl1U#m_R3arQ@y%66L}Hpg^3~2fT*sIB0-LHD?K?|A-#?OxXkl(`;h~FLs~23N? zQ+eEMJ!AHRUoQHgH41)l5C)RXDN$@=usJ=}Z|ylv^ZO}#GjFq>b{sQPl}r_>FdKb5 zyvRGI+nh_l9Y(DjX^r~9H4zy1=8l1AL6~g^4}A!Z((I7Fm1#4tj$R*5(@Ce@mAJ9H zfdHME9XTEO5@&&xk>DfMxy_asXXf=ce2*qRe3Fd)O(c}-<|v1VD)`u6=xfFGLl2t} zPqXJ&1NKp+1>zNBW%s|Fi}SK%NxhGwD%meW^J@xcaIB%Qyg9*kuVwSa{3;JQXK&B2 z7;U~JTBQ!V4&e{lehY_fhRPw!8r2kkSDrjYZZVm{O6pPZoOzAdcODdT7P1&G9UeT! z$R8NCle%|a86G%aHCEY~!FP(4{j6SldLQlkOXuk^cP+Oh{^Fyu>!@b0?cS`zGqod4 zd97TXTv7^)Wj`cDNV9C-+UATtBp4=tB80+6Y$er02zkN}A zRexfCbUYzk^wyd@Zt%OY=4D;Y!=l{AH{@}i{z(tCrek(ZNa(aY<8$4I_5DD+_9?O5w8XGMo^4)0ai4%Qnx& zLI=yrgL)X`CA@^(jg59zMeQgb5%+$wX^cG$xnR2AGnpkrA|WFh%U%~Ib%m@UF{J$^ z`~fpg=-P`lyt$=F<}CVNHP(jUV82)bkMWTUR$V#Q zgWRqbdHl9-MP9$fZ}AmT{W52GT`JT17Vqp_JfCRFpouBX^0QVB9x7H0;}vJ#I`fV5HrD5YTU!}@nSF!%Hbj?w<=+VcQz+`!-PO+m z4G(awQd=HU3>xY1%5v|e2c?RW2eFDi(R$H-fGy^l#49gmWGxiLhlih^d+Uas$Kfj%AS;d$cSW!iX|F3S<$!`(bM#0P1XBTO&$oYq4!QNaP9~??3*=3N>p2(7S*>3it<4`B>#yv%*RR+vC2}z;#W$ZJ z2BaH5x;IM=KZI&W*vTK#LZ<3lR-cxajE<&#;pm#zf!@5Yt@!!{M{m}C076-Bn*zco z7t*KuuemvRmwYg2-KYZz#YzP(Pp1{UUwl_cmnx6&+{PIwOUc8u&rvzPufvpw&`k68 z_9$ADP1o8(FN<@PHOmoq)gXBFfq3&_H7ws=-q}Ez4_t5kQtuq%+4&0K=r)utDG}li zr@rmg^DLN7H%m22&2>SXz7v-HdVOvT<2HHibb(?S9gobN)fB(8ysg%T6=j?k{dAwc zc^4Y0wkP+tC$q6&)Vv#zjz1hpnaw4#-A$yB6~2g)!O!Eb;&SO`c2sVSeE4ciQny#J zw$C9cmt>DygN*GUhAA$vdE8TBndu}r`zc@fD0P0)lUm|}_n$c937!*nzCB%6q}55R zmC-kI6HB484|dsIGBI>{Qn_1ho6)qd@Z!7iw`aHX$HhgEeTjo+rOdRcKWqM^W}wIt zP9|fTcyOvQoNpxDdyBIBSsC_&)9)G-pVW7gM-@wTW-U+1I^Giy#IY0fz0bnf_O&}$ z9GOzj(fq_PBA~*e+GyN%DHER*D4h5x{^?c*+q|Yz3VCqX5RG2n3`)`F5GzH7&U)wf zFR?6q%THIoUHUpG)f&>u+iK>$ou*C^J!)l1iR|&1Hn{sfUF`h*irNnMv?{wZ*Gt;Z zj5@;x$h1NVI!W8fCzVb)53$&P`SS8~QJdVcs8Ve(Q~DTT`{1s&n$n2>(%dFvS&!tI zssy%F0-m4V%hVq6$Q6cOKFVU1kioh@Qe@NsxQFq9kNxc&9bQkpES0HBr^HWUK#0w4 z6-2WhguAM#X;}BRNzL3fihfwOOtV+CK{Q_8r{}&;PiS31$J5tUH~B_Y0>Sf?~hW&WUSnz5d|%b~kuuq2c9YRO#-+i(cy@7k*E9!G$Rm1XJ^j zRKA*KWBbWxzp&4_d*2XsOxf{0#CGGOaD0*zBpq*==U`-fb`rTF{qxPfKZ{%{dPBky z(~e8G7Q~*-yMd2<|t|3DbH}!)hTPE^Hi-%`y{CO^ZrbkaS|t8 zQgZ|CTt>aFt3^@iBQ(N0hG%)B?M!zqiI(`WlGkkeMw=h`9uzz7t5XNbRp6FbL`O8_ zU*W1;**0ho`P1!-IzEYjf5J>g`{Knhp@z=J3UN;={6k}gCmeX&A(>fYsG>V%9ZbUt zOs<`nFRKtpbIpU7w&V-sxS8{fc4kU!2grl(eti*A9*wucgU9eWWRa*f^hDycpYFcn z2jA{{u4_G~W#|U$ZzP6I_T3&Y;&?T)O){2ahTD5kZGXIK(7=k`99g`mmI*Bw!weoC z#|RxAFBCoF+1#ddp#E06Io4XY_M*BXM@c!y5G(2~3y}lPVzJDCZR1j;3`t&A@9>nJ zWIhGIN}g_|YNDJ*Pt;x9(}10IJ*jB_26J5k!gik%p`$rljOU0p=b{_Vxij|l_APfC zMWd#F3XuxzbG|%>yB%~f1t*YbBd~~xT}k9gT}R|;*Fd4FOTe;7v-6l{7|!OQJKW+n zNwVqp{dMotMLs_?(jIfRsqOCvjoaU2Hp3Nol{F}K_jA5~=;Jn=SJo%Rrc3tq`Ng-W z^aGDg)C9qJzT&8>>WdS6$tO6gb=EcAGYp0JtKEuW>hijr(x>9yTSge?X5*9|T;e5pyKZB5 z+jkVbBn!K=-vwV4Ca;*uP}#+B!(PZgY)Ok{mnbTioa#x6RY*0O_B>;mPik7AA9w)n@*61c4~=PS&TXgSA>$7u=ka^A&y=8 zZFD^ucq|O#7lf7J(Qf4Oe3r!yYZkJ%eyHPd{6rm>mp8u0k4KmBzVjBnlXURbN1_Mj zOtx30rTg!GqlEnAZcP~!qPF>c5sCqy9lfd!*j??%SNwDdNw!b2w(ov5vd+x621I`4v)l z;0t0@q8jeD`zwXKZ;;2?VPzQhY?DO4&Lq$?M8) z)kFIg{{qGcqmeJ<#d#KsePQhihlT0UIIP6N-5(7Wkx*hF^O2j#nUn$gG%1+MW-G*BQm>$sZ;63$X_ZF zrHnRRX3Nfslv~m{GN-%aWacJ0vabTEsK0+%Mbr42J-?B{zD%Ca#Kl4?ylgE(oVzz^ z9~B zdM3q^^iT1ic+5V2&-#K=Ok&;wPWN)*{=luKBAX?>&iey|zO@0{PQTvmyi7uK$H5+? zxy=>W$?ozF+gimHE>H?D%qfu!o`2P^QU#$Hs!Ysru|$=nI66Zw#i{q(O5}B zsn;(EHm>9=r;2C9vf3#)rViK3I$c+VENSK=CE@LK7uSu-6PRkFZJlw(zg0y=zok63WsEqEM>Qk z_t_w7CXqbScjFL8d1-5mDr)&<{@L69pKh~{&&Yb6pSlag;4sh`j}JS0d_A~Wjiv0T z`5IhmRczR|xykYDn;k=^fv3m)3X)ZtuXSSjhmv^A2bO1aa^9MkEH){@+6x1A{UZn) zo2>3_eQ(;T?qQ64zC?*Upaq;RH1VI>|t2g52^(} zx&gy&R)J@~T3e}InC2(Z`;>fUyhRoCpPqaQjjvWgQTbIzpg$HXfTsTSy z%LiQt8f-$7j6~7OEzc7_&+AInu$3hi&ilU4!P9A&Dfc9gV;rbbIGqcvY;fga53+rw z&-yx*WOPhH=W}0JQumreRAnh{ea6g#YRV6d{vU{cAXVYUWHoi%Ub|;B%hF*O!WkTy zYyQ~eX|c6AsX?SKX*a`G(|GB~z(Dm>J(^M0C2Gv=Uaf{u_I4V^>IPyXGF^cL#$!6&NvDi%u_N2_{({{bQ{CA7e@(jK9Xt*)TH;7vH~pPdLemeP&8h z6>eLz6t|kxhN{Iv2NC?-6Xh!m>9P1!Hq7i{i}B67tyPys@C61DERJTARJNF zDDTMEj^Raz?9uh|`V45fAbh52vOGi_Xer-L$`05R9VDyLXeiit$RA}zvFP#J=iaMY zW)c&WZTWtAUhcXNZ(YuYpIoc*j`Ry@amFiNRo7gt#uRi|+U2tPHSPRnN`1ON_+_aE zQQM#1&RL+wbG?Q3=g3@RvU^y_18m*y6ZMdG9^0)4{A7Ofb zr6BiXGpcf&m}vB&O1_WA7GPO&jBv5sO0A!F_T`QAx0*t_DOHt1UeDuLuJjkLp8R!R z*T-aL$ePI{YWpIRH8vT#bnEvvp#XVNj(C%z^a!t9lTpkrvZfOSfk*XV&qOF(XXu{g z_YKduC)?hW*?ct#9|VYy{1+*x;KcGA3#~A@K8_$}%<|N|9Cb6s8CWksQA{4GBKP7w z(82G#q7IJE%X)DUs70)NoPdq*>yU%TRu(Chk2Bo?D;sI|7b@%Rm>m~XDr>2wAG|*6K=8{Maa@6 zdsjpd@=e>&uer45NSUo)h%*-ht93Arw9-wM)zpmSbe8%Msg`QZR*zh@nJT7V( z+f-XK$AaUnFRUhm(iQJDgy~czaSyAt+;cphqlAni-7%$kjB~usf%V!)>`urT@hu~b zElnra&!XeCIIEWqP2UnXe3^ae&%z{?H@wP{oYIz&D2lP{_tY^oRZG86qp0cCE;vP@ zhpFuw4t4%t0B=B$zk$&aRTtW{`Unz%L?b8!N51L%AY6s+-G@<)O=0*83sQAv;%ZSK zv-(8}9Lk(r$3l>hFjb8<pdy}a_kEZFsr==0)f0? zi0Z-fsvVFfG{<`xm58qoqRgv!Dku>ZSrlXske}{$moeB9ZHscY?yWGa3}Gp>kNDiD zbNbvT2H^OVItrxm|9B9xa(o%2^L^1)#qGn7m5zhWri#|mTozVrt#;W+CAt|#+R&Xi za*^mT66@Avvmp}6%C(WQ^0cgswQ^oNG!(1fF3QmrwArX6JJTM$D9zt+P zDhUZew!|PI@Ltp*Q&${>tHIYv2jGJste4@ZB# zU-7m#*W*#=&A5SsS#-Nl*yHma|M)x!1lZ`2CSm=yy*}`2*sQ(3DRfGmyrZoheR||> z1il&@$?AWa`9V>TeIc3!*rZ|G;rzJQ!h{&Qu1MF;Oo<`d3V$F__Z_J8NwT@`rujC^ zoln&#w3&mfI9&#!B2S0O$jZ}ZM6v=knw6wT{f4F@SgYwt3O+H$V&Y%esp$$?2!1o% z42EHoCA@k!MF9nA)&aScA_hs^umwZ1CsnTvb4DvnHt9B4#~~1GPFOvJfee{;6NP&+ zSuOY{DKJPhgx3RAg{@f}2%Aa2792lM3A~77=xsf0m6iw5j5WFfXioz`pWVU|w^Ke(-QJ#YsiPGkkjxg45(m0;@C=1nZaK!nffYbHL z#tGb=3S9SF2`7mEDInIj$#kG7kIs|o?>^gJ*$!X;7zQDZ#Og3k%LWPMN!Q6^X*P;L zPs85@yYRc^5zTUC0pn*GL^0QuVdK>?43`D!a*%9GB%KrZ^&WOSoUm~Q5BHJ>Syug# zgg`psio+TYHzkj=`_E}y&E(<`k4GPSuOe95B%y}-y2tuzYTv1jW|-Fus)Um>9xdKyXsh)iep8Bn#mk|GaQ}t3XfLLJ@m!tD4prQ2e=hSp%})+c z&M-){WhD@LBjHVYNNB#HK*4a!`WP6Rt|cfaHWsTC8pn>Sp_~RONcBt`AT*^ZxhEsm z!O1xyVM$HNDN#)EhP{hybA`i0oX8HmfLr zK$e;7b8%wK0t9o9haKxJV^~0sW5-SzVG(D?lYkVH>@U&`DNHM1khUdcH|ZWcVYLzl zyJ*j%$|3<*ji=i@&8qR&XSoo=(wvvPvZ{{xxEXOS6W1|aHzJRTGc2Uu?P*xbF*(+X z*{V!y+Q*qrBJKy32w8Yg=>#ZNn%MO6$<*TD0Y=lQ3Y5E&j@74g=vsO&qIx`9JVd*a z?XaK0VJrs2ww_0aWU+T0Rvf7$l#fvVrP7Y|r&GYFh5pDSZE*C4~Q17=q{S_wJvbo`-`oU+On4B(e#cuJ*nBE>9ftLt+ zArr9c>V+&2-lq@LQ8(^-9g-ZopTS`)I?mR^69UKK)*W$_rjzbXCw`JLrNN;WDpl?E zMRvyStUTF|gaD$sD>#t2ilSV+zM2LBun!*790d?1D1bTXb4lg#L=0^%xrt3r<|0B! zXF{NDoz17Dg`Q>p`L$5Cf_E}4g@SdbM4)I>p~`4HG4TKd>Bu{{fH;b5IU^p3-;}3} zWAiv&+x%SEJbNnc(>zwxlUdg#5ympv_N@)8VzBGmNc027IJvF|2qU^ywX%*l5YCiG ztM-yi0YtX{TKx0ZXO@6LT2w(yK&s5eqjRBoj(kadu}C*56fnI!NX_K~iDGxsocpwPzVpkZ(w2eji1CDASXNhze%=yKxFq{Q<;|-3| z`2`9}#TTrNr4-wGw$o$diY?R&&8g+n@5bgDkPILX^qm~n3Us?>#owE2Sk`enyJ0!?8zE`K5 zO&G_{hw972lJ6&>tP8vg&8}9sYZwSY?JcqLZxvH%m3K@ok>trfIWv)Ph2$Q|6#F1XHezT$tc+mV!lBY9AR-=CJ1 z9WI4;QN{5x(p|&7P{T;ZO^_vmPnCD+^OcGqqL))F?37_qf=f3S9Yf2{DhpXh{I=Rh zwf5`T^>+%#{ z)_iSCoKGBIJs+3~>B8@u5Tyni(Q|lBr7AVCSL&+LCZJDO*^sWzRK->OhweW3DD=VH zKpR?C-H2q;+6wE{u(uC3)wndLtAj}pTkc_Auk6$9Yz4G<%oS(P!gc~U&r$eNSpFni zX6>~5uj-d~242>6 zKZfhWJ^4;vgrz2ef4o;-$g~x5avn}|Z5)UoSe<5~;^+p50U_0Ak|0-mg`CvXvK@!UVe2XFpfNf=jL&&E>^q zeOerpHoZ-&fHalSW4+cwhyJV)B|b{2t79~xNC;LPY6(o9U62W?&aeDUNR>^ZXmA=^vncaEhjCxtnTimOOOimL_ zJZbd;>LEwNBi7DCF=A+l?6nh_ z|Czpo`S0ORMJ9=MChq4=8N`Y-QvC|~o@G4>8QOkGE=Z`toiFvW#^j1!w!8dU)(;?` z+`cP^$W}F0nnCG0##hat{JO>TQ&i9c`bsMoYVsVIJi+kPBocw2^=XZ4SQXE^=F@adTED06lL>~l*&=(K4P;?N>jSdZ+W_3(N9&3 z*a|woDQ`(HQdT6pP$OF>nWd_okxl$zMJqFAW8Q(+r`u-O;31sEVMonp855z;^yJ`8UobHJ57|RGdpvcAWHZBluY!22aq_B$7kE<*~$X9ZZ^D| z9uRyh^09^KHzPD;1eNEWe$Kb#e^pV_dZ6f#COc4kRUas7;Z9FI=diA1O==od4?cD#%WCdL0QBhvK;b-#HBNkh6u&~sUn|OQ zh7b3us6M$qy|`Ic>_*9nN(NFDr|N_2)627DIc*gkDQwuPg@x+EFoV_(APy2K)#4rp z#PzQ9yW6npNtH^;SNgrG*e6J@lHfF_oT`s6=#P-j6+<-QkZb##kK_yaPF3a}B2&n> zNDHJpt63(5TMn!v+!gtwN|5jc5F{`LLNIhD-_+cv7Cs#mE+3Fr<*m@C-H!sh6ys$2 zz+G0a8mQNF+kk4w0OT03KYjC0E7PS27+V+8vQQt*M9waX1SNB(N%`Wo{c2>S~yM#xUC|+A}N|Zls0k(m+cHjl74Gz36SKWc<`d!zsdX8t6Bc zeS3)G1`kN@v6r6KWhL^j8Yw4DKkv+1Ufx4W^EFq=_KLn$f5V2@w`C9o)`jeX25H5C3#gYhpxuCyL zSMp9>$?6%E=DsR!cig$Oi>ppm=oyn+(=5BW9FH!AvAZqGFjwTl=CZ5zL53Oj*Y`n& zpCKME7n4h%5A6C=%B&x`Y`eHtTq3YOdo* zV~3!jKf^H=E!Dink=H$jm#%Eakom{P7w?+>HxvW152|wE_Nbpm z#~L$>oIG1ao_b!9lT>d(zqI5awTW3+XOPY_a%7yE%<5gRaceeT-vt|QV48lBK?V{z zL-h?I{d=|wrJe@nh|O{R#2~W;uFn``<^vq+f;rSrhjPHDS`+qRrL~`iRiNIhc^zd) zrL2{-Vr;3Qp|gR~8Ezq^{reo9EkZljpM0dPTm06OG_nJ943Kp^(DY=}$P5$2ODm zp}3z;Ztq>|CjNM+>Kex>TL35Qq{)ec0gTiWQaxQYsmF@xhr!4jNH_)&ZgvAnXkT@^ z5XWt=5~SnKL~v3QrKtgIMY@qysLJB6eo+-xstN;bv}vRrRHccRxTuPIR&KTSrWRFM zFUpEk-d4s*`>Cu*;qn(5acp$ButiF0JW}32B@9WB)OpKY+(X3!8`?$1iMHUPb?l_# zm<;Zv($I$I8?D49RNvIYk)Mu8ex;qg1MdWY{aBn}7t#CBd$Kqlo^RfNoNU=T_a8sO z^k-wzU+L#R$N4|yon4&h1=9Z^cXx42{1Jz+mHsh|-vGwrn%DxyiCx3RLbri&(l@Z) z1Kyg&iQZyF!?$N~3_^(NmA7ayfi&ARByOCYNF13u^Yiun5VE=4KL1Lqz8N4dZ8{*$ z?8YRcEadkWn57}T!@wvFg*^sFc_{8O;JG+BF534QjLS`NrvXpSMUvCB*MO(Q?~8p~ zk9)Qi;cNtkZbrBi>M8A15XcI96;9QsZ?}Rd(^iwIykkL>rgzVR5FX2>$wflLGi#06 zc~Pv(T{xp5)hx~vl=G@0HxHr`Y-(4eF!R+6S1P@G*>Dw-o+95loNs^rSBkINv_RPF z0N_j0Nh&AXMX^4}9beqaa8Xgp`y52t0Z>~_E^7tlt(M>tNw53H;&;t@(>G_6W&QOn zSZ~$FP*g%ulpHFK-q0y!R|->7o@!!I6qu?DR8B665;Jv)>Ip_sZw1v8N=l52=yip(7Nc6-1+?o4AxX;uN7=T1#8LcwLFa7k*%Dg02-D!UZGJbFKWHx~kQab5z_(a_&^v zNb9mK72)9!e(8GD?fX0-OD#1AU3ujsj*txGq`hG>&?F0mWS~(R^2tDxG*ps-CV8kP z13515E*Ur~H`QbyNAA5O1KA0Tu5-ZL=sMOpV1doqN#J$})a~K>&H@igRL`slvh<$@ zt|Msa1eZX^zd?3vy$n02{i5(v>!qlBS&c7Q_{*;?xu0g1k~y9w6;42s|jao?_Bl zkoK&sPSvxuqP!Pnb*iV>cTpH`?I@iL2d)fY`|)GRH5(ANy9lG>66rHasBebrQ03(O2o;xV!X zeT(e3LmV6GLpqt@`)M z?*j+!#<9M+&a0 zt@cje5jO#q7Mkd1UGzZeJD$>8^@Ru{9n@>t6c&F{&$2!|9FnJk9uIkgvn4z){?L-; zaJ2%cD%~uAK1w?cm~YZe1L~7>^T7C`EB?(`m%JHUW_q_(^U|*SrH$DUbko2z zzy}l;!wz=YN3QyDL4PDtyj_$;1;9Q1KOTNg@u=rE*8hGV6gXxVG{6MY3vaM=40pso z2Kedei?_T4%VB`cG|ym{{467P%${kE5T=8E(ZtGdKV4m>si(Vs69mmfL1vxkcS+G> zc3PvHF#Yx~eZ&lR-G8K*>gl~)0PL8#eTkPApyF+_^K9eXFkNDeBWGe>9r9EDNzLg^ z)&Wg00nV?DP=PsO6I7t{Y!h5CW5Ev1$E+_Jg&)Qr-Qx+G@JUZREqet@oapjOX1D*Cg1I!qte}3)FfEL8 z`%5P^vmS12su(x-w^ptueBFP%Bc83^K43FQ2= z7<-=2Y-QXck|B9xHiUj6m}dAPYzCgJ#;}U~lFTui!weZjlT0VNMrxyB{-`t&A^z0T z#?wG}Kjn{K+xF^xtYsKy1q<}e(*n5=qu^NcW00g(9@Y@1aoo*8A1JzJWY5_ zVFk%{&W>%qo%gbB!_n_vR;<0hyey!Qt*9iu*b6nY3x z{SnX4fPem-cYJ?G$u@l%e?yIK5-=a6odwAM=w<=*J-TTi{LT%Eicz0qoEpO4{4b81 z0bg^=G4kH%DG<#ZV4g-d36P`FOakay|M!k$_W(X(q1x3w(kGbOrE#B@{ zWc@T?p2h$Vkh9Ux1L$w`6G6C~Z%8smz0L^a5RT_NmYo6L^DqA0NKNj?2osnGGD8LA zgp5!D`XM7+5U%Jy4R4;B^hV?GLpY@2hwjIJ#dgCfjCPRENm%qRY0tLdE;z*H>|_0Z z{j;*%?SR}7-Hv`5AeW<^2GHGT=YeoFA&!e#Gu|P|83-#PKGY#d|Al!vhABS|2_Dgw z4e$UNvwj{xYt~N$Va`uTGG^^L#%nOQ&Q7>bh8p6^1 z#BtN=YiiJjkhszzx2Ny=Pam*LuNKU`n0mg-(zQ`*zbIp4a{M^P^5CFg~|ffBTZ28!7i}!-q*Lx1?~?eKy-la8Y^9WV~wWrRTq^F zzMFp4)j78Ke!9}dg)O$O)Vu2JTmJf6p6*w7*>Yayul}z30YG5aml%;H@D)kmzE1<@ zmQNee4?{^Iv!Wx#KnZ%Hp^^8fE^qcRDzZ3u1xkDZNc@sk6PGXtO3Vf&-cKjD_pWsl ze?0hZ5Xb4pTc>%RzRbR*pI?%2J1C{(JZnD6#~I{GMg!B73Egqe%}HzU?1RDp`{_4YvMs5FbK7X^Z|AT6~&>FRWBC z@dpd`IcH}R#MP(42JO@FZLuwfQ}leA#mK+ zN~UKw${;zgi`CMH-BDw0;G8lxSYvy<>^1bu=unP!Au>u5yvDi0yZpxXawB#VEnbsK zUYYKr&HRe~SI-%TRBuvRM zjY=SZh~^`~4CY06Ed2igu&W*~j1P_jc-pnqQE!4U5CGupA6X~`Uv(@oam2W6@$FLK zz(%B`ts4CGD~Qfy)8Nn-I4ho4`HA)O6?ILlndYglg66jfwK z9(bWr(uR>4>t!%|tCS2X$$-XEp_^`u|0;Bu^Qw+tU_OaT z!IW=v`=4mv?RV!ro%{Fn;#?N!jhkl^pLgpz`t;{YaZa;86vd7!!3%S=x?d#he38)K z*f(%8nB1M50rL=e+SOcHbK5o$p8g|&m#9bEku#dsj>qmy-MnBZ5|SA6G6~vJetkje zqC`O41z9_JNn#rN?ST&qERN8}+5OvHVbYso`TX_vpUs!C^U5e0@m0>eAWPHeo?koS z!{7CX2k~Ld*32(Co89w!F67M7{n940=u1g$FN#v%o~LUTnAhq0OWmewHFqCwH+kxA zQioc8nlm%a3U^T^J`dBxxlO($J}al0^R47r$;(RWn%qz)_VO2&TTd(rrhn1t^ri^j zAHUjpYJF!RwdPU5|DcceH9aj2oqLVi#&}-;^R?peMyk01s#Rl zm`N0*%Xvhgrnv5xdwoDj@jd3SWo}VyprTZLJjCi1|41XhrJLwY_ip zTnL&;T0d>Ozy3EpkY~q4qfm z0QNzX1h6;Uc>wzWwgUJj!6GEfMO!-Ga8{@q86*p{j3rBvS>D4WNZ-X!_{mhwtuhH; zRll6fMRI=;5J}zQt|O5cVrViyXZ%mLA)_iOHcZ6{zpxEmvV^{weS~eiFbP;8a*F7U zUCdC@#zD13@yd-+AXL9G>aW5mpe)P`)5HhBAUl}YE4W~RE{;{DP_)!|7Xq}PTf9)7 zitl(yA*M&P38b$ZlaB_&mC_)JcT3wE(m;}{#Gx!#$fIel!a?&~0n|lwg&2V83P}jn zRiXf{D@4!9u3i^A?RD{9q-!y0)5$|Qk3wHMLa_3p4oKrntl{+J+dM}C)J)$`%~}X` z@Q%w;9SpZm49@t16z=2t1Q_}TTlL7J1c0(f1pudy3IV|%6$FYv3J|wf9Do#3N%wNU zO``RsoJC|gOI3{9&0>61ImwbB^b(915!$?HTZN+J8nr)0?sU%pA?b?nF7vd+Xq(i| zQMTR-jg>-#)KZ1-MP5E$dBsXha0jW*tU=tXJ;9I6uPVS6@wLH+<74-}V7HD<-9I#YAZi=_px=8ufQWqyL zS?S^c3^6Xw7rHnE`8pSgAu?^f$f5p<`7c@+t@8;T6oV{0u^bu#%5F!|sy_4^ zf8YMJ|EjnhSAodtS^==LNOeokkF&{xmvh0T>8rtB_h_oyf*)`xaMHRISbJjMCIZ~` zg*Ga5DI-yg)J6WT&vC&JfS0oG<8H~YKb@T^(8qq7h&2=+|DA7cMUr`}@4%hxw@+Q3 zZ|LE~L#cT`V*XFn>cQj429MLa^ECuceLZUkpwm<&z|;pIEhrRM)ak*Ir3ZD``rw>| ztq;(7*bKm7lZt}@TX+I^{AKs|?&lq{sgJDc3KMh4Jq)(u@DmAcQTddh&Z~AI6frC0 zEFaIrA9p2RO}8lzI)T($Aw8f>?6#MS<%22MV+#K5Q0-w*Cj#}VsFr19RPADW#o?;Y zbD>aSN%)QGhXAv2Gz_+)3`K%R7Y%=Ev9p>CgqvJTr^)HZ5Lza@xye@ ziSpMdTN-$T=9Kez&wU40ui|N(zDF^ELbw zdE5A79iMN#KF-O46c*e*|V-s=u4!T`v+dXiKV}RoyQk$pJVH$ zZ7cZ&Ns2M^b4iM}^f$1xMN-5wnL{}Ne^_&<8o(m1SWwrSHn{8XP1}GM=$p2|L{4pc zp54zRQU$r9qiot*c3+Ha)4i3(CFQ!)Gz`z2$_&=XqdMmX%k7hJIebms} zJeJY)^`cq_v!M+QZ96^?or;Zayi!A^)a|D4erE#CAlXH4h}IJV?>AHiR67As80GC_ zFTJNEM)?a=-081#dNc{vZ8eTU0UDd04zAMEd-?(&K!>e4fY#0j4`{WQI=<3jLsqnG#P;SJ%_4H;1F z5BPMWne|b6rPB==Qt^x4-N~LQ@kR5lTdxV=-%P4hS{Muc{{dXjFLjtf{Rw#5y;)mt z;y4u6{-Zc|9;cK_(QMhO(n{SY%S}x2OcGnRfnk3AI&lI4aEXxf$%TKx_W>XPobJjD z?iiGGc$nJ^D|Qkx$zethKdC>!I}o{rDPkxk@;Dn7Nq&S@P_M*?xnpZ7=kd|hc-L2hVOlK;EO0>;I>Qo? zT&NLqNjz}Utso^tIr&oG%6zS+23(8Nd|J?2_CkW%13^9i9383h6wG;z_!xz(W%XH# z&-m@-$Z33}A@ozqv3?wCvheTvM@`IyF8H?;5`E@a-+aY#OEVF2%rKH#qyTV2s?x`G zmZ&VLe8=^@qSXE=i!${ST3YfA%=VUcpe zs=TS#2Gc7b0y0WUwNzSlH33OklUtLKNJ^CWP#fzzTLGsQU&kg>@X!#h(>!d$n^|#G z==-J-YPiTrieXCG(Sjqo;K*r-ElA?CF88d7>zsM+QOX5fjt$B4#}N_bd+Z@hmR5Jc z%_7-Z&2?{A$&$&xVao6Z?Q&_s6?C~ORXfZ6Fgj}w4Xzje9`EWWv-PlkHd`+X`xUix zkhqu4+DWug&2fv0e)DN9wk4!kvSY)p4mHHIl4yC3j| z_5%Up996y_G;;rAnt4!kQ18M(lMh>XYzoix4gzX_G=+OD+*ZEF?;}{;%znL0X1l>~ zU2+~m)+7xZvcaNaLpD-ZZ0N>I%i|c^>SDz>RugOpM-#aX;Y2R)Qa&~b1yf0=eeYUY z=OO0_nKE=E`2?R>&FGxan|RT>o)nmmkGgne5PEnBiGb!buB#g+8zKeVm6@tbIVp&R zR&LnoqtzUc;{uUVy?9!%MI$|!4&7XrX-tNHrC12(X<>@@+uCu-FwhzFbjxqD)d%9X zrfDnWM9Aq*V%>05#!9z1{fV;?z~Zv?*atLdGREpn9#`Fu@dj9O?tt9{%VhWL3hZ_A zmgJ^rU$5%y*4;Jy(gjW7K@$%+gP%umlV2?@`-7*e>7 zz+Jf2Qn-NV_ET$++A)MN%k_f7jnd7OWgz34(geLKRfhnkOe2Zglq$NXbAHL?`B(7+ zNtx!mx{q04i83USA*KJtja@k4SUI2}C=^>x&TaphsHiChhOmWgeq7w7w(-~Mc&p5r z<0b+y=S>^=BUvZCIESs0rfXhT(SLYS61l2?^^@L>WR%i!kGb?;I4#zC52+_`Ity6& zRX4qz^q_d*LFaorg;wbysm)$EdTxH3|IjEg|kmSk(16 zQK5el(<{iYvV$rBNM)J0x<-=nIB72Y691Z^8XPs?%oCYuF{q;-aBBtM(cus2nAXDI zZ|!$-JG}!8E<*EuzUyFr03*L-oc%Vn6V=;UeK^$~f>~{=Ey2Grr#LeOdsQx1B>}SP zG|CixwVgMG2Rgsoia%K@g8u_n{j%K9G^+-9+O1eoZ<{a>*8UMt8obw}REs8|Zraqf zFBSnOWd-cnCRz6DXG0oDLW+I$OJtD0@4h?VnY-Zc$@bSmgx~xxPi*(+>*^;)tGy&u zlf5Q#9$-Isp!p&dGUlA}L?&_}R_Nh=&neo|84feb$<4Zw(On@}neO%a6V|lC$9nfD zca*)5?3Luo#x3?|i|z?vXPIoTnDD(!(P2>*8DT6|zD#Uib6R2jC=7P{>!K|2KfjQ~4dNMi1C*oWU#Q`jGYVVuIF z7slt@LafeuHarYdUyufIlIFOnTP(>LShabsZk5?MZ#HNFYDG442<)5Sz6%73)GST z9=Ugl)|lg1zQzay%1i`G%9DznM4_UVgsUi6m+Sy(mrFhH{HtyQwXXLutZ8g}ETrNG zX#2z+fB`jshK3##u<8c{z_LGM_(1pqPtc0Um!jU_9jPVWaawQeC_Zp^97#g^(j2w{ z7ARPCAXs5s-a5$w_$Bk^GYkB9X1#HkWY$d~@Zls?f7;Dn%Vare+G8>6=C9~5f6WW| zkV;J(c#3qZSaZB8Bxc>)d4zjRw@^vvE3Z@6&_%n`!gQ>k+G)DynI% zgB~Tc)=_?mL1748>qucbZe8n;FdZ}3Is{Bd6n(0Dc;bU zH+AjbUzmR@*E(vLj?A?V3e%Ch*6|yrgSggFKy*B@!^iK+-=vbKwO}b%9jlLi^be0b zWsGnZ`yL~t?3$lB!mdbnYU!FZ?3L;^%^`8G)+uo-*d3cz>5L7v!F1_u$EZ4gcZ}`1 zIMvuPo@jiJ&{GYhEH({ogzqi-b zLc`=2zs~$NtzvwBe)aq6Itd=9pu}@adaVG-x8zpUNKsm9l>T0N(Y{=%(a+h_1p3K3 z#QxG#mX4n&_ai?U4WvI%1_)Jzr|SJ3jyy)AEP*_B5@~=;a;JZ>1R+ z-yJ(8$26;%`)wGj?##P>`L&jV2^j2K+AvxvXeknH8QNAtg@vZLPFxK!O8dsA>=~iF zXMDV@-+?eEJZTqg9_$e235~DZ_sl@Kot{M2RAf8Nd~4qWMTJ9%_bzX$?F6iRQUUk4 zfJ4hpr7J@<6DfCGD6q0#A&|Zi*w*_=(yRB|NLI`NYJ}O3*Q4{VgPHwxVGzISI{t#V z&$$)P!LvfnZ}}^Gd_|sqv%)mE;cPEMZ_E$sihKQ7i$psxcB6v}pm{y?{EDxir{N3FRX)(53Y%>n09RMG5u*XP>L)Y2#^@5B*GuR1e zo182+&?4u!*4%M@gHlk_)EL3rX^f4Jr#;+VaD|^yFP+!`@@3khncTacsc7V$FG00j z(pW7{BFCR;x9nfrYL(;ED<7v??VYO~AFzwB?G&{nvYaIDPXgD)lSDJ06YSe}BqkUj zi72Xu*@KPyLcid(8}PJ8t} z@7*`|y*kC3eTu;C199zoC?0d``;EE(fY}=$9kx^mgxz{e={-R4!vvP?zEDnl3KyRP zMeq)Bw_O@{_iDr@r0)A;m;lps&NL570atvznd0jk#UC_R{13*$_B!{mI4A5f`ulMi zMi_)ZjLuJp$LIs6VJ8mMi}57F30<#3$ccf3DDZ-#phrUE)`jC9bSs}N&SLory-Nkx zrN1J&wG&X)lXHrw<`nUfE8;Vh0<)<$RqN8xcu~g&%-Ik_5$u}-A`^4{cb=E4Be8b< zroX@Co7*Ff{z-3K253J$&8-s8bF0LE`RLz-BA}|Ydb475E4pALB9|sJ_WiOo7UP)H zEoV>$DBFg)=@v6L-Ez$tj-UvrCEpgOTgJsn|3mOqWFh1`9A5-Pm&*WU^J7lu-JH%Z zxd=v31XNrvZM!mQxKqry6sv8Y?IQ${sJT8nTa{Dm3B5=KZi)-*hjPyxwgz zFv3dSTgCu>dLhU_kaa$aE5@ZpOV10+qsGwY> zmz{LQJZ6Xa50n9_9Vn+Oa!yw!Tvz@=5l~*v^SXli_&KzE8$1%eI^g)zpi*m24DZNr zo!LMbEvng!K+HZ>&^P8OyV&ngn)v4SrFlQ!9)V6q(AW!;bp}O~s7!4cm3`w;S^t=Q z!W7CtI`+t_-D6JeVyBh|j0e9aI574x6ra_l-2I{!(%5g0$%{TIA`8|SseBQZS0QQ{enI$=`j(FPJ0 z6Fgx=5OzZrPb`;s3>Gql?z$7QK5OIBp9EeQ;W);27j#mF^%UtGPZr%UYNTT(QDG+( zKAvrZgH|YLc(5X4nodnAjvZPdG5G3BAfk}lC4v;oExT`SA{BVHgm%KC+BkAnm^hZm zCJnT^AZxe!Nkj}US*sK@$r(tsIiP|Dbrf+r`LgB>Sz#dj=R zHYg^O3SG+!gD8P;(V$@8S$L2s95*Pe#cVJmUci{TP6%Yg6xWnN-1(6*vDD)?p+&fv zbBBTm6wiuD5J{UE27wDP2|HYz1b!1F>K4fp5fEum8&Zq{Db_NXlUUE0Sc%h!9$DW> z4~x$t58KYhW&{i-qwSJ#nXRr%d0l@H?Z~A}M^4L3?D*09^0ZJMR4}ZFs7ho-Yvb(o z>h)P|J-Lod%5-FVtw+UC6!2+?g*3UleA3-V3De07`ipdnBkHjm_EXiQaI|Y3dlL97 zGUQM$NKeA(PJeGIv}>uMCFlO6jQeZb;)*qAX@6_Z*T$Ld0?O~=nYU3^2=oM*i4-3{K^jTZjfb@&KZ)rWV&b#sC+U1h z=?E>Sp5${p`A{EMx3F=N&(Y)~w(|54_k`!;)La-}8t%vwFEoBwQQ}yx`B%b!MJma~ z@M?2xL`F-XwT$Mse3T9_3MCk3j=4j9zjfZ;Ig-8TWH z%q=lOYE7(0Vo00SX4$i%1szbc8sveKsAOcj)HyO#n~Fefm5Sg7%02|$UDgBq5 zK;|TB)BV!b4gs~6q_8_cA~Hk5GOLsT-z1aD;RTAHl#N>%^s_QRvs4Bsfg&g;PQUjl zi?B_nM3-@0^wNR$YP$K}7(`QPy@F$sTum-N*@Rq3!LcZiu*OaL?4x%V{(gy5bT2lUr*Mn<%hCKbUj-2*! z?w(?#gOZSsk|eR{_ogKLE$`WbFjk4CCv*ACwq?t<>nqCbE><(Ui$?<07~hueSxlYB z&Anc58LEaE)g~ z8)hQ)bTV**82HAyTvF#k>^$#WlooDnSG7|wQP1&sIipts_?r&8cH^&D>Qnc()c5n4 zRy2k(z|%lvtZ16EqJUe`5Q>0WQBqv$dnY40MVzS*7CO0G%}!O!C*5>*N@|B`MKRM= zTf3e;g{=o9ARn}F*WbWH@P-a#BB;hL~v}l<`AIe)U0wlAzj9^wZ?kz9+9b$-_9{sZQbT8?T2xDShwd zSj*?o*~x!}edrFP@Zu1LGSp6m!&5ttp^v1OuqNjBXQ zzO^&0e&Lnlwdyl;5}S}%Lcqb&aY>jhniudM%0BFs8yQmn-3tQ!PH0mLhwh1&=xJpa^Kp z`K2!ARPy8ADl7kUfGySXM+i3!Ckl4W&{Pe0N;*9X*>&CU z@88yTowfbjGBMaKc*~C@{`U#7nn_*cWrZJd19_h&>IsARU)eaNZlCF=Z5isvsob`S zNb2$%3WbSuXC)tpr->75_1^dtqp8|VxSymQNTyLX6}&?;N_?P>=smq~!~W;f2(w4$ zF2V5$X|)k${R;pUp%(xSjya4np$t$qUFL>Squem+hDYxz6akHLe;0>Q(&hz#0tbml z*Q>X0YC{TtF&h<5vSCJtm$R`<+r?VaWY6k=rcYw;gB#ARD9)sXH9pq_-3N2A-5b=v z*M7dXHE}%$9?aGaWc$2r^vqZu>~joz*kqtImvkl#sB*}viQOJ41**=nN)epLs(+IN zo7c~JgUZU0nr2X@g;>hqb`=wA&5S=prf;uX*Tv-f>-1iYJ-+b4aQtwYfV1%4e;d+i zBS3LxR(#LW>Fo(!-=3hQZ>y+gviB**nJ9fpsL;8L(WVowo*L3xO%2^b*@vLJ&$jD# zu3a*3*9=NQ`W{<8HKdVPLQ^2LY?};AV2p)dg(pYv{4PB6UpX14MmWYFD40Zu#Z?sZ zYi|8fllO#Z+g&k8d(F=aD`LLWbr^=`K<|Q6#Vco$ga?nFOrmyl;Y`zr{eaO%s367==+J0%l1=916W^Rz%|sZd6F8R}fiG z&5CVXm~B^+#8F!J#8GN!MKS)8u?g|iN?P~SN@dlf4()%tRfM`Dh59viC0bE#7oAqW zi>|5~@hl8l_bd!$43#?&(5R(yYsG0)joMmnUD?UsY%kjR=ye@hZ(zay0N12jJdH`E z33%G=nq7CAOb~!i|B-ydWl++1T1}foV{9S( zXP%v5W&n8T_E)_~hIXWVHwME{Me>gp2;$iFomUvg(N6{ z?M?}Q&ejfSWD_7SUdl1{h&>brz5|9c$2Kr6z5t^=ie{9yx-{hNjb`@c)99Jly2 z9lT*<^M=5OP`1$tM_J%6Ip8V>zJO9;C4Wsd(j)XcMxKKNg{$_+2j-TZSYQ*BEJM0R zcp12nxrJ2ovHs(B6Z-nbS3zc+vRQ-Z)iP>A310+RH$Jn(8HaXx;p1 zeWyoq$|w?Q>n`P_y6XYTHagu?cI}4^Q&}PsU3lGfq$^ZXZsZ5b+xo$~E3)^R5iPwN zOd&XAuW{-XqR=M0dD)E5p&bM$QT}fih^Bu zJTUI@Bvr>sV_mt$f6(NAOoFjruPNJ;ELM#-DgSsTJkJ@SdIP4~IwiKdXk{R#wFq6` zEcW*WzJW5q5Z~m0w{yV1bKoyf6b$&!EO0hrPzy62EJ%CrrJDFPjP3fml42E;BEXEX zJ3(R7T3`TWThe%EZ2y(Z2Fk(GGOaJ!DWxtZ`9UO4LO+l@Ot5d4WO=pK0=F7LQJl}< zU)|kQO~UEY0x5zr!Pv#QKw9Sl>6Qo56BGptq;GYBB750_)&GV zFhvg=r$)$j(S%Mb^J#hYnG74)OPt0d`|En6$UCL~c=v0LLN5zws&|;|#l%Q{!ZIe; z=`C_Z!{Itj6SOFe1c*Inj-1z;h;QCZ%O^VX3zTi?{g`YoE#*uebCUxo6=$u{dXe$D z>Ic>VU6)0Igb50n-(rG&@5+p8u@aWnu~f%Pvh3t??$Z44WJ8W|yLZm`Z&PcZn&>~t zayAXL(SZ(vfAA)Qro1LCh53;!g#~4Tar&BTDZ06q;vr=yD^L_H6F(PQ3R(nr(hh6a zOVr(!bf8gPaWh|tE$ALf=8o^JP)Ow4&|m(|vmx3fl?i5RFIR)y=R9r18?P}Gg=NW8 zs#Eo|)=K*g653uw124ISCSJ^gigZP4o+5wVcOFz1d8*7_d6-~t24mFx&4=&<-+cI( zI=!w&*Eo0=isH<-P_=7Gyh@UI)9*DQR`Enk+C33d<6vSF6wr$j{0F{ZiA#k^^9gv` z-I;H9qBs=B&weAqUwNs>Ox>9>Gqtvzd2-0O2p2Q&;oKp{Hr#nnSGkr1U1k4`i&=fx+(H23Msr+B=%Mc_K*P7N+U zKaRGyDh7ngD`@6Nl>7xoN1wlxLTqMJ8e4Ca*g zPlu^d_VMwVVG`_b@v7`)?#XHnmWPo_(rxtYPRY(dAslU3UQxYA(48=K@@ndwLu1pD z?)#>X)iitTKk241G&QV$9KlVl;3ltf6N1Br_4EADP0Pdi+S0cVO#0C?kV0sN{T=Hd zq!gc4u*@muS4w+OfAygH>_Iz<%Tb6aXAuRYl`KnNBW3=oP2<@DH^fIEP5xtrLU7s= z{BqG3?S4fHA1ikDOA35e*5bBO>Xx3BN`9}g4QOiEXj_7@ZNbUzru-_T_yj6KtBB4^n9;O^S$}c~%b}@ZoiY|i+7U+jYcC49> zl4H;dDXLq_qjr+&dLc!1fjnv}sje4NRJW2x<&x@pAw_jq9`%o;x?V_8-C7=%NUH0F z6xD_Ds8~{6FJxVv%!3o-T@Ow!py^fMF6;OID`EGiR=dA7G&Z$Os%wRqLYlM|bpP1| zbrL;E6f~nEJ9B62Ph-pV>}j#H2yu+FC;&gp{Jcs}{mc)J*|Cjef(vMRl~22B3H}rk zG^zw6Xlz{mM5m}XN8dl?Su)BK6LeN;YDr3r70&Q_G-d7ip4#PC*zM{6c94-pxQ$^S z2OAvR;Z^$sotZb2p8ZPd&W;rx+5-->D;%W!iDZ3=Fj7Aw_)F?eM(~cPM1|MDZ-&}T zQW_<(`K^2#Ai7pWPut?JDueF&Or#x%eV7p-)32MCr?YKi|&!S^d-wy0phqnVemd@?Kj@52Euw#MR4(wP{ zo&*kcmpWM+bI1Ok&{Ylnu8^JYjvt?OPYJ!U7w*mjq;`VeOZUO8e*ontBlOb#rm`47 zeM^j9`i0VE0PQFEhq}9#F*4ivUdZ}({%6XkwB+A(HC@U&OLqJ(yXREj4O45d*NshY ztiJKdrZ;6olb1CA1)Z+e>Z{cVvycIJ+UyUdMC2wpkF|KJ+2p5r`-ru*q8rwY7bkc0hmDk36s~YQb$lm^FX3fl zHPl|uO#5bdfsr~V0g1dRcB07HBIPr`J%hUieH{uYuf~^u^yusSd5X$>m5f@v#e~QyF6Y`!^D;0MJO8V0Gdp$_Uv|hexc82KGqZ;{A&~LO!<7V{&GH zji0tFYrDky)PGt<{|`6fi)a4$WDkA@L&w3|Bjv~No=ky3kLYbUGsMR(oELe{xCPFv z1ZU3h{)KWTsNsz6&sR6EKelQ(#lz{sb8x(H6viCmp8nDeW3zUhgq$sws4rNY9fy#H zj_-$4CkZ3%ED2Zk=oU8zKBkl^gT6=|kM9?KfvSeYdPuaLkI_r;>*)?7b|Fe{v2k{2%`K(*ABfJYzJVy$MgeIqgq|_!@b0+OcffH9ct4MCzu)28@r6AGJWy(4-F@0dp|uSStWCp+sNp)+T@sO*e!;Hnx1wS! zD8}>_dx4jDj_tpkK$lf{JzTtjJH#O%|8ppKsyFOU@UY;4!}BTtCWp4Io*L>#XT_tVZNX z9g`n1*YQxW+mA5`ac%i}l#|ro6NUC>OSEFSa(a0`ijJXD?ac=g3*Fyw(hQSlX<%NNfM2?rlNckyV{Y2Tcu#uV;#lW|Z%Pwi|Y;AkHC}Yl|0duxZ zm=g~$RKj^3-43tJpI@)eFdfOs6Pc>?LlGL74(a3vnOck{czDj3O8-%vwKsa93;HHr z3^pe~^AJxl$3%xd#Z);pXl@j)wF|hwFA0L0_X|o1vY$wBz3~%o?UO!7(plL^vfGX% ztLKsQ5tt^;Bf0Tp^*x?YOBN~CWfYP5hKhQ9cB+@MPBr>4o$9?gCe5IC>QPEd{-9x> z9Vsm9Nb!g1NbkfbX}-Ku|55RIY+en&|A-8t-3_RuJE1$CM?BfgW+W0UKqGiIN*~Dx zzxTN8LqUGe3&B70LNMKTb0PQ| z=i8&I<#oIsM}&e+Fgs*Y8iy)9cR{OPlTo7LJP4FJwA( zU>gpvvYqY-8{gShO6;fxABfl0d{zaY=lJNQe-?*D7W0Wi{X?Hl6a3^vo-^@@g3gm4 z;&-7v*hss$_~++8H%Yjhu@+G>L`dcPT3QrJ!SDiUc!Gzwp3DETS$oC**Iq5#i`7g0 z`OTbsf4B*ktO1Zkd5f~a(2Tj-U&`EpVD8#+IcK4l9B>Bs;p2=y^}I*=C+~&0x0__W zNuUTC&b)wWD)0>c!SH4^OHE42+4Nz0cm1?{LfD*aR%^!(8Ts0X-XMeNvoKqFD8Ti0 z(G8%2@&IR^@3W$hU;Q?~QZ)#yC6QVD)+XN*CDG zhW8Eg%ylCYi&fg7E8i;#_M8Mk?VMhgHY4~twlFO}dZPb3 zFxGyR*!g6#i*=pUhe9tQCq%0m_}?Nj4?GY;1wR~^@V zOMFso+DazY#g6?`~-k)dEERx$(n0@al+%k2Z;f5>6 z3&i5C-8m5`<87a;NFb_ywEK&`E_OhA7`e29SMg+Es{wf~o8OIa4Xie9*;iWF3taL7 z>cmU;g)RP1Ou1+W?nkQAF=}P&IYQsEDt+`i6{)Qvc1C59+1)*Pm>4&Y#v?Z3%_Q*& zr_nl3cZ)PIIacplx;KtVf?Qm-Tc! z`WMqXfo2$*(eKCQdiFY{Y@&jMw}ykJ=_Yz2{P+lI7ld+VO-DULHbPI>9=hqX!H2A} zGbZ-IrF3fDuQnRc?PjuA5n3aC<`LgT$|v{|y`8mxD;AHg@s6jI7mOPk9-&M6 z`P85b>AVZU%Fp?vY%uIYvZsUp27}nS5&FVPhD$=%$tOmna!Vz*yX?`92g4-99P+y| zV1Kyu&`nI*MQ$)KL!z6M4JYNbWH|kYxFv>^G_OjB)a%}m`cJXwwB4ykRvj2T<#~0i zx;?B_jAJ>&s%+UpxAb!*mM!$PblFlqw_!|xD-E`U?A6L_>j&QdP+$*v_1Eu$`b!b& zuNmII*huH~dZEG!hJ8hoU5XzDuuEZI>1IQ9j&9`2IR%&wt>uh`^SW{pG@#Xp6*h>f zg_@oaR9WP;MPbmLmp9vDI`J%=ctJYVM6o7|r{U+}^WYv^%=l~K$HO?aDny1epGRcw z(48tr%UVUlWn)9iE>85zxjML+>*&(I*kGN#0rnf}4>J8W`bNjnigqY_g#KW8a?KsN zYsZUV=UPqgNXgkyO3?KkGn2%+9;i59wYC1Q7W`4LMZ3hzcjmFNcA}W}cy5T9L}lDU z3agn*_fS-X8J^Q;pP;-wy25fOK+<`RV8k@V@wLn*X0}R(pTdZCKnm5SQ{ax0V}>{@ zvZAwT5-)2QRbkDC1{B$JLFc!5`~_?`X*0GcsI)DpHYkYZgq=z?M_DY{0H*~78}lYt zN@-PUpTa7=mceH3SQ&7AK4^-3&B-a-`V$#WQE z5W~1I)KZfOE4GLFcmaUWuy?=`A-YWq-4I zYWFv$BbQDM#HpVoDQR@cmnTGViDJ2A4}Cfrr5Kq2dGYkkbia7xGY_kA;woNfP>CoG zBjcQXflX;MSU z7(Lyb0O(Y-hc06LJ0VsB>^JD-t?>DP-<=GL3fpwIfQGgdoedGXqWv`)6Nhe&zc!rx zdZVSs30G$bsi+G=Ae&~D6k(ioYJSdlD%86fKL0yqI-A;5#&zQUjB*=92|{E#NI#VJ zM@|cB)ch*R6a*kL(aqk>dlAzTZOf0%(FS#Rb6zu!X#ot1{0v7of**sAIwfopDLSJt zC!JA=diqE?$PBcYt<3HX=IE2XFldNsSc(dVzMG=6%Fw|}(kKm(8YoV+*Z>)@kJqoI zC_Y&)uJMr5}#cuc<__bS>8n7lm-|uyMHEFxODx=k;Uz;5dkhsOP zfPVs@Q9V$38xKWEe?pI%P*H!{%@Af$W(eb#8Nz&|%1G1BEmZm=T{XxP3FxfG&1`Vb zt@2dXDzB$+mA17DH%GYb8=>NQPhRXz zeER=ZLHWDWA=OqPoIa(sQ`F-9>DViaxbGU9l&_fLLWcO!D<<6!=d^MLK=fwb)S)W} zI}puT$c;&>8$V`8opmJ4MWa{Ft|D9jBUtTxc9~db+EWxWumv=I! z(q_)6Q8D1u+ynCw468qrdeisJB--*PDFLfm0_3`B&Z^R-(nt~`GdCpoBSoY0_rX)_ z#8Zh$w}un!6wL7@2{FqEp`hNF6zeD{E_nx9R33VvoSLpHuA($N5q~K0B@th{U;qb> zJx4sS&QIZhB^zGm6FznUp8Qh?FY|99yv#i}SI`W+e*yXB;lSw&8yB2EGEq-@Vy=X{ z)O(R7<=D7KoOFB~Wr%YGm-~0oO}OKOr2{3Idsd0~H0&`_;?iRKYJD>u}JV3N4n8!x4h=}73zp<}zFt1`-tYZnjQSQLRa6+b8DbwN+ zcV`GU_OIXMtM+^*6hYjfh54KL+>h#JvpT1D+Kf5>R8{f|mTL<=Octyqto@d-DqG@g zv9$1BYdCFMWB!)rgmPwuj+kNsoL($kxCOf_&Ljg{G5ND0!IU6f(0DH%ENqKa1(u<6 zHaNih&7%y9N3Xb~XPLsy)D*oXy&rrmCRQ`h5DZ-6!;AKRylc(7<^MGATH6BuZ?deC zUFa8Q7y1cInuyEC;?xS4TbJ^saU~Y2)Si_c&;3JQhWyZXL0%-SNXyCiCFO*ll=&k% z(TFn+;D_wj?%@^N~#>g5b zT7roye0VYbkAI!`xB6e_U;8Qbf0k`EEE|X&#xGzL5tom|Er2fV1~G`kC}C!#@gT;7 z(GX`az>{0T+xe1-704aJtzzDfKB57SZhlaHaTyWv5)O z2-ELVm!RmLZe;iuEFOW&k+uoqx*oL12!qD$QHF$ zU>yKu5iJX$IKY}zz8GMHUSC^)E=OyIX9#%G5D6mWK*!?HE7|~vy5WyX@VAhBXfNte zJVv-H1Q`GYmy&Ydl!kz+y-s$(9%>R=aY?p|nxBeB)fbS()q-TM7bNpgY-Y}JdRgJZ zExp)H1?`H7D$lk5D(!9iv5m)b)5d( z#V=pD7y9SB>AfAmi3-QLpc0#7@GqpCFPwAsEy~b+t`f%jZ4BlsHoG^+93&4)yD_xt z$|Bq(su!<#J|0l*zM7I$x_Q=1HqR%fxGKohX=pBsVQ-!wgncC;(kdYHjZ{Ft_cTD2 z)a&m|{eH07--TGSm83V#4`Cil=P`UwWAZb6>;iN0dBK?6E*O*F2xD>~vX?%dofUsMFV)h2;#2l53N0eBNk7i9WKTvnho1G6HZ znL3w}wUjgc;bCX^-SJdrl+>HvfYoWVT{CZIP|C5%pJUcQ zANOUc;S};Sojl?i$PENEMOvg3h9NMu)G@Lv5tR&XMn-w&RVAG%kjgs;otWxd?U(@^ zbNR?1Ub-&`bkMtT*#ktOIIo5zd#Ao>$?4VR+Dp%TN zD!;}19}4ShUTVHCSUvv`N)8L}Unn=GA!R4s_tnliAG#iD;>@eamsy1xf7$af2r zPWMOTPiM&SX0i`ijVF_?aIG}9*FJEhaf@pfzM`gO>lQX6o;to0nL!wUDPkI{>n03- z)7yLYXU+UZ$3qVk46~pB=~Ty&-=&ZHkO1G9n%dR5PineLlW$Is6n~D%Lv+t!#B^l% zf&h>?GI!9UNBqq0TBfU3qswD!3vFjIqwNGb7PoKe&=s?0;c5Vt8RFEzYHEd}99rSX zgA+CoRC>MydGXp=$0!T^#ze?Yu=L5s^WAC?M=c&G5b!9rgCyFbf#ZV3LqvrLDNx7@ zrV$I^=J=dJgPnl~8qirA>K2fwJ2bFz=>bY@o5?^iBf|V>q#!Bb1jJU(@Kmb1WzU$I z$=PD546r?<)5vt=Q*nhy>gx`8+Z-m0D7tgWhWb58WI1-Es1A{)l9q)H@{*81s>uz$ z%@Ok2CA%Rm*zpWmR|mIk4o93>9d(R?37NaF0|9V{XgjZcXG&ythYWPZEULw8C*WR2 zCLo}9b#pdCF@(qGrde-_*#yKs3EmXxFmj$@@=2=dipsqRHQ@k5Q4T>>dE=}|+&C8o z^!L#>oI}@dEw#k){F(~(i_s!H#%A0RYXNB=)hGb$fy$g*q|3@h2Ns%di{9u7X&z_) zRmwxxz$dj=i1j>BWI}xCS!fi5#L5U;^L8M1t6tNRrWZ5gw)UkVaYwt-L(pWpWU`s( z%J)1;^C+LRa7}wP8vIDlz(SUQIq4I)6v<$DP#!di^9Uhk$udeG$*6+Hxa>nge#@(b ze$>Q`&<=t}hPm2eFNe8GD2? z=lcq3wE6>4Jv|Ub%9>{w#*6AXt{u>t6|)J@>iu^kP&!$ytG3u#9Z~7FIs-go9XW?raGbz>#A`?CqSZz$weAA?I*{#qlkG8G%m$m z1n82LFIi{qs(lD^S0iukij33&7em=I(lcf6sB2cqCa!DRao4pvNJllU zTF%D|4K{%rval|sJ1}(}t`*EXWe|6U*Gmn7rp`c^I=?d%VF%b5PEq~a0npCFP!f~^ z?_#FvPrD_$qmM@X2{N;cYc8no=6wNHDX@MZX>J&ho?s=T{89S`-D={Hh2CHqkp?M0smOwC(wk&q9*pma zoIYoGmfoTP6G+2=-gSc!Y*v%>9Ih>lcr%HU_An5@@OkR3_CTm`=D{?M=co@LN^2kr zcN`^uz|5{alz2t|>)JeOR-v4z+Z>Dr=fCqs7$4W7a7jE#%d7<;gCP?Depe!NZU?#IOW4N}k6gF@4#d$^9QN%hr z6P!1#YpSSIpEyz4zaX0xo76i1Tshkb!6^foKDNtI{%mw0vD?>ceV^{{0u{m-mBUIeHc>Cv_j;AwNi0aK#yp<#vFA;7q<)qi$gQE?|yM3M~L>a75m|_%4!{fDvGcNaQsgx`7%gDuhCMJi;_7d$$b= zYBMj2Vc!ri6Nv^Tt->ukx|A<%t>_92S*I$B2$2VA{99y!wCYPJ+Wy{3qHGqpP2B}< zORcLVOYjI}G9?b;$~7vav?#Q4n5VUnUmF%uWC~fkI;}Q-;;sE{!(wU3yGF&7cG#3A z*p#$|LH+|1!qlU%s_YCW5L*N05%86R%))`QA`(UD8YeWUcos&?Qk%9!ML`}Qf<+D_ zLA-%r5vinGQ$VK`6T1S5H@%t6n{&61VOax>KNQ{Ex0Vbsiz`DdWOx1JZu7v7)t4Yi{ zaP_LYE22-lfb|D=!?LJL6@s~nWtUE;eCbkLsjTf@7QZ~xI>dQl=JeGYm2&MY+&=2Quau}{< z-}b_&!P_tLZ?oCh3p`i;?d)Jp;%(lsW#8s(Y4EleMh)JUZ5{shi#+Vy4pHK5zHN|x zJBd=omdx9`}S{WyOv#1oUdl@=|Y^^LAURB0{Zdx#s zDG2*;kcN?#xiHpJd8|yP#;q%3?8-ooBULlkPIHW`8RVe%0&yN%AhAyQ!G{Mo;f2sx zLT4^hbU0nDxevW4(%7F{8D_Rp>~F@Y-QUt+6_+5xB}HION-Kl?P}I&Q2^&GM4$Qvr z?geQ``_Z|Z71UaCfECu+@P@2*xua|8($+Kz;}~b1a<|Qs1E8S2uE0|~H-n)tzbh)> z(VGObkZ(!kt(yVS(trTGBSy z%^RnQglL`RM8cviq3b@l==j5~-52csHQU~m#` zasp00xJDCGzDQ2^l89dcF-PD#e+DB{Y?v!nFt4mB4&o4W|Ki|j(05Y^)^P~Z8)2X*E&4Cp*lep1{BO2z4L zHJnt0wj9^>V00Q7gJMjae8?J%m?hT1NST1_6LWJh0aGG7vUZ~6$czGpzudi>c4WsF ziPpG3HIGDd&mPn9#UhCd)$T)$1DTRJkd-AlPMc7Jn9pfN-HWGhru)SkpLtk~6Iby< z4pO(_YHQHkRRrXjsdQpyilw;?ymDv*-!SEb4DNIgrg51TP9dWEF;22n@;Y-E-(jdr zT&&VTlQ&DDvTpbcd&n79c;*gpSQJsR@8GZ7nXuXRACfx;<=u!s+#>(EVc?!Vg% zs}8!yDN=pfaJ#(Bd+3xa{x8@I#e46zLTA9t<;|$D5U>>V2N?DH-3udla8RNRUdv}E z4DsV0I`b-gzNU|}|2c3GFzV19cgR&ZB1EN5CzK!Q1G#)3=keSgU;W$!f0p+S9>%F( zud#4mS55-qZrN^xf%Vcr_&fjK(GQ4ns&O*#n!j9XBGsiLwP`@!rz*!HZ$JbMRtse` z5Y~lAT{+Ps9T>cwRoayx*ofGdrNCt45bI6j5W~MmjN%maJPi2qOBdDcJppqXc7|?E zcYjbR8lKm(LL!u~-XxUpn-E=RTqKA-r;jeuCp__?c)=8pkusmc&cpRG@6O(FDB=W4 zHtUi8A>6>ty{t#(e%2#ZscokJNKFl`rlw5-DVw>7#3f?|4VjHIU8=s((fFAPO9{A{ zCU~Am5K^o1O^5UqY_UM%BGK2&3Q^LSZlXAhjC1xizF#mdAzBeA%wl?p9N3jq2-#0f zje^+zNsuyTO4EBD1fqq^m!YlM03no`b1-XS$Y;WhA1|xLTqatn_nXOh^bMj^Zzj#~ zX8WbaIL};nJi5bn7Q(b1XLdxQ31b&3^<=nHdr>Lm*BgJ!0`WJ*oNiJI7==xLxUqlz zCSSGZGf|YUt=iOyY4dywvtYUpb zz&}M?J=nJ`Y@}v!_I7)-7-{V>E-Eo@%P{`sq01W178TRy+j63s3yR>v3?IFmiUAUm zF_M&w%YkJnZ*(j;^osXCyn;LKn1zf7bIu)<;Qh;S;;ioh*K~pIY!iF0q!kzH2(Ko3 zDu`a=+~wWqt)|rywECD|-i6F+5;Z~M;vJ}~rfk3{dsCvS27g!z4LMq5% zAr+*@$A$Wg_b<>lgM2DT-ZRSEp{7stz2`CVd!8#2$FSk4U9jpmJXV}Q__Fzy`#SNR zhUm0EAjbT?_}_5J)N{#cfLl=*CU}~>)PnD}P12Y>7GmLq{-Hk!oT~cLf5v=Msmu2;mZ{Ts@cs3_^9%RO>t_3d%IP^TwpWvBg&jZNe5N?y;HkTB z_zQV`Q-iJ`NHq8X${12rj}$7&r8xFTl_hq!mxFZ(m~8I)66TLsR@zqN=b(!=)zV&j z!9Xu;MWZwK0ZKY}rfH41)9}7aKCG%DIsM?%il=NQ(cRLPT92zH_drgwqQ?twCN{n@ zY86;4>4F^jbY5Dd$dr=Q;d-Og;k6=-aw3I$Pdh*Wqi)Y{?*F`A{=8e_VY2XIc8qMg zUcC05?O2@HsDqoijxPO+4c3`BX3%wz&P2vN`{J2_&f*JRijJQc3kVf0uDpQ?Z%9`p zzC18R9$m^eli~^?Nku`!l_#L?$o?gN7%z*hwfb6Yv}O^EYQn>+xr6{W3x?ZvdZ^MDz!bYD)?H##3Eh`Z_=91avT)@mEE zekEJC!q7if&pJtDn0Am@wDK_RDBnUVS)PM4M|@e=+bl6d#KtsSd&H$1NB9!uMkvBO z9~XOB0}NZ+-Y)F)|23}euNA#WlO5YlkFT`4*z!%1+*ekh>I?=A#HQ0DV#}$)P6G^s zv!EAsFxWYcFJze9X-+{q+zv$XK&TyzOygC6azYD^y0}U_U$AizZYDl4T=rGlfPIUQ zm$GysI@v;kYDg-_;EonJk8@ceE11+PEqH|f~Y!5Y3Y-h;- zMCuuQ*&>H9f=(wA24nWZ9?E{#GE<1mHLIESrlRudn4GM=ndEv@k&~i7urDiY*79K{>kT`}gpZOs}+O2Zu4k=3uClzmdMzO`m zF0g+(E1XfB7tScI#2LkJyng}l>}&pv!e%qG!4)ea1w&0A>A+D|=Y8=mlkDD}mV-1o zNd1xqJ?lbIMf5~{<`Lf&#=M{4cOfEY(<#$@uPIZD$rK^T|F&XFIdOO5ip88?2!G7O z^;B@pY%uTCO@;bdJSMaIg>5)7&YUF}iheUK%1(ea^=_7nvj?PBy->e6zA^Arr3gbR zvs*XKMr}ppSF6SzHVngw=Q@OPS}3Gu8YsxGRa5sjnfW@>C!NDmO2QeZ+X$w7$nt>K z$~9L1iGeEyA{vO1NHb@m?1>dBLg(rGoJ1N$woYPqw|VGpZ>F$w7g@!1%$FIXk`gB*&^X1_8! zuj`G^cV1{fAr<#slnA-#u9%xiA>)!c7&|`gx;gI38S0#MkyvCcoX4Yoao))JtWg!s zgN}2wYStB;t^Pw^aMWrb<7+S2#NQSXA(_W2 z_jab-gu-XJvQ^xKBZ|8Ee*`+~^{=w~8LjyVzJvzIX@afaJMYpd5tg{&F`e(Qfg{^KFRkYir7k(V)2o)n!hZaz{QIXL~V`B>J z({_2-ppc<{e|nnUIo9|O6}Umn0LP0tiOfs>J%nT*Gd~R91Q~e0>?14N55b2HuGAnX zp|Vv^qtL}iPL6~PR^j-l4`&YdUAp!;XoH5ZXXKioa%PYonbE`=ebx+b(-~~mJT+ds zEm%roy`-Pg#t?}%yN9QP6OaNmouKICDBxUo}R zsmq>l79HaDes}XzuGqB20w>BZ*o%{%@7+!l$IoH&uyj6Gz9#YW6nTq7$*i`+>_83a z97SeZ!kRCa$~N!I&&4@jL9dfW~&O3m6YRexMSn=ONV8!S1z96vNY<&MNiEJLOy@@8|`P9u# zr_tQ8!1fgOJBQ-p>#1u+Hz_&Otk+Z2YELTt)p(9B?lcOX9;M?y#Uit`_3m@1vLvln zUO>RzV>JO&61s4kz8BEGK50$#G3OpBOa8;i;#v4_9#A|J$46sqBcmAYo47R;%Niqh zG?3PcN|93$)y6iuDQT^}uO|o2*DPA_d2DIc_WH|AvC#%IKX9Jv<}&?-&@}X6>_Yma za{8LaE|9h$9=P6&E#p%%GVrO9u_!q)EgZiEGK!1kR6jj3ovhZ$_Vj2r0iCZ-j>hl; zNXU13JP}!iPp9v95NRKb<4@lYEV}-^O;;ES>*v)z`=m}fnrH)%%JQeDDuL=bN^(Ca zHf=`?-gItMS0_h+pO)0|>Sz9tow9zkv*be`r?UEW z8Hy#ipG*PPTZ$YfHdW;EhQ(x$>rFCbw|KQlDrbgv@y-+y=c!f69Td z=YB}J7PoK|IHE&^wiBe+7$GV{Q3=tmm~z#>JaLRUCkbAM@qf6AT1{q$H=oAe!r;E~ zeEuJ3Xk^B`GviIbGACDPc;C9Vy(K#Oa09ltntix&dO{zGk3T$nYt|;C@^9Qztoz$j zFbR=qGLHwrwRjL*1u>ZjGnoy~Jl|&`+Jcpbm;lQ>6Gf!D^W zHY`DZGRqQi3&F}>Nx*Md9G|7lB3_OD!IbgCKWWaUS&R|S_|D%sw$uT<`~WM;+%apvH{MrH%A# zZxhaDbe^m3pUWm~br=`vXlJ}S-Wiv>uIST`*LPQ3_Sf&Ar)>m7({8rG5Wu{*ZkF|| zMt^;U(IGR>-scIq7Y2M{VqI2GtMA=2Qd&>hH&Pt$+B;GrPBN=>qzTLeKL8nZ zLx(H0kDd{UMC<2CZvO1khO4UYq=|KF!w1%6Y+^1}XF=*T1dqUczF;dp=mC$x(HI`=2w*6ZwfmCJ!MYm$iS?!~2wNGhG(QJqPmo(#mMN9Gm zO4^6oN!RV7O;IPvr(C@Bb|`lZ1_H-Vt2KEu4mDo;UXmVG*Tg%JJpVPRoCL?WX)+8d zErEsf&hV+)k{LFgv{xIKY#v3L$G#!nJ;bV$$oO=65__;~;>J72t=-nNDF`>-VbObI z!c2J3fEn0fcq!GP)B(u?5HwB!HW=MtF7U`usun3VXrnp4=i&u-T{U9d zsUlWd5wJIO>#9NrrE==jY{Q5^9CIo%^E7LMd&m3)S7c?f2+84WS`M|WQia+# z7nJq7X#_e24==okFwaV`kq>D5ts!%PV8Nh$p6b*H@To5J3}hM(@GOjSA#1K{!oVrv z1YB0|)S*lemOtp0Jv)a-XN#pWz?`jVdv*l5?HL*}px@D2({*6F@hSg$gslN=HjlBF z`hqOjdOFfm1SRyd2m)==e3j;WfE}K3&*B>+O6o zH~qII>kRTlr)d!shV;$7r!wxnHsoHLswrL+kvW~nqQ0vYl~wEM4XV{=XP55V+{CTN zTJ+rSq`O(~73r~;Nq4HsN;GoFR9DVgy>`}@vJ=y;=H-caVUCh?^b}ckLBgQ_ibFdl zLHxkt>~3Kjn*enDJ-URxTl(R>i6p?%`H00t(m5gVby=_tFL22VlNCUred)ePsm`uN zBE%|)Jiv?{xRMY(35bwp>Dq}OKa#GwM{~vhXtiXO>VI(!<+}Lr?+V=f(Yj-|+I-+% z*s)^&xz6YPr#heaU+sL}2kd-pB71+7uGWV34|rhRdvNs+eNNq~(dq}yrG(6`rZT$` zlPnLHUI>v_!670k!QT^Ka*&r>W$WB38yVuDfc8}E!wE|#Xu5z#Ts+w(B<=!CQP{p6 z&*0c=Lm3cN6L?+?)vShE>n&ZTbcZI2Ns?{Y?ny!$C&r*mrF`I&otK@{m=hn)gknUu z+!%h(5m%Cv!GMz7xU{lgx}+o>$uXsqopE9Kox@arA_XaX=zSO^m~M1eF~v5--5|sR zoC4v)ti-oloN6ff#Nd*%#4X`A8f4FmN_`hu{E^{r)L~+YF75sl~J`MW%ZQ(?^><&h{{|Ggy;~-1>Rl+* z2v75W$!^+t{{~%Gk)1g=nbN|pp>-A5{luisYx_H2y|3(t6(G?f|2n5DOs?N;v2yzK zlQM7NB?g%#TUv47ByApj9g3g63l`Ld)HdpNkBt9`X`0FrfsmAP#p<(^N5OYR|y^MvKK;o4`SyM|X<_>;)( ziNf?!N1Pf%f9&x}Gz@{=uU!pUn#R*XPGwx;v5(~`Y}(J~2B6T|D}{v*vbk3&oAG&8?`QYcEUjKGuiu_HRsdb2RIc1 z?NBYVf3~qSU0f<5TAT+;*PTPee=$MCDaPs+&o2BZv=@3W97lWA8fgw0wX5HsTh zr*0_vr*Ct~H%_`X>DZN;x0!02vUv%3{CXO0!Y1w?+EidP$qOqWIxY>#V^SlggsnrLTG#&(6qFlL97iHBQ{lMUxpUmq^s&k;?d zP}(%mgibfa`FD#qIPcg496w{}CBBtUX>hscE;EBK%U|-Bv^ts+sc(X~a>BDV@qRN) z<}lk_r!QiLVEUky(NTGx=V~gD$eKL6uqX=8rp?V8Au;xug`v z4hY-UV`ZDff57I6$el!unw|>gN}gIo+R;OM2EEmrp`MyEDJ=-6)10uW#j=YB5_}~< zf0ALC!2d)D>JDC=gPnZ9QHjUoVtH9eW4Q#b3TJ2()Ndc3*D~mERVV6u&9zA41?@MU zOffV~@+be92w%81H~B0yxL3*v)#ucB|8Wj2Irj05zjv+93FFY;z1C zs=A#w8S59tv~WZ8-@3KQ@nh*f`9bHw+!85R3eJ2Z zG;-*WI03>YZp4a!_%}l!j7OGIg-66L5yrPpizcH+Aw;S}0hz=Jk2euAl&MnxD-4;D zrdqi^PXnQW-O3H<)3sQeeilY+*JB?cZXQmR`w|;T@izxHUajXl@EqGYfnI1c&8Pxj$YvLQ*Ltm;EJ+zSLqbs0>Vlv-9@Dh7>n(-DVt%!TL_%=Pc zI5s^i79?@?Y@FVjzu1yh!okT^`v?e?iyLSO+eJ9`-Z>)(~y)D)>Hxm1u`|K4@CXq*F5^>`)Co6k9iST~XSMOOc z8bAFM3|=J2exvoLR?yWmtL|uK&(d5?FVsN&%xVUXs-&>@ZpY&J5r3#Um%Mci@V*Ck z{f;{@FS;k}U6jE9r!|YeqTxlxWmjl~m9;?5_X@{9r`N;BBUi(xM{QF%1S2MLhQXM{ zxzh$*v$jET8~|MHTIE5WUzsL`b=alqQKyrsUa*hxvtc+CX`FDK;Q~)ge$7s<^o8z< zb;?cU!|h;~K||qAJaT%6do^_Ak_SG$$21*B*Ume8%*~_#I9NscKubuN^A}!T{wl1V zgeXjmrM6{nS?X(OqB?hI_# zh^hkF);;^UqpfdAeiI^1K%aU;5h^L;k-ums09E}0X29>{f(x`%x@C=)kEea1NzVm- zLt)_ufiAykfwGt+#*QSML`cvO^I%HH2;zNA%^a!E9{7k)x|JHV9r9T{=SL)1r`I~3?#`&ss^*-=i|>9*UpaIZ2K zdvs~A>iNT=j^p?eJ@7h}55KiNB7Q$$mRMyYpFkDbZ5 z#&yRAHU^KW`Mzy5OUV%i&Q;Un!o7{`LxjXmG%Ld|V1(e(@xI(&bDyZ9rr^dTLjx~% zO!~^%=tl{TO_!K~D29-*$vwS;uV_GUf|9X~wlq7vZQScimH0RgXkj5sLa>y|v?C7U zgo8(`;F81Zn7_IK6{vAM`N#ds(>q=_p5DrS$Z)$e`~bV`CaP0j8@BMSN?`#v!s*UV zA9TfGH|;jTSACxUP#<1sZ^b|%Bnuw*NFt$O->!g<1vX(&T`~uUSr;05I6B> z^K?+3$z|-w=CpfZ$RUWCrDZW^g7;PO@HiPh!#)1(=1*a6Ju2oJ7kx2() zDeRA|j!RkCV^#(A2~lpEIlJBvdVLpB^$ZV{a9R}bQ^^qnmq?#Qi>5@I*3C#6zWenE zkdvi^ycJ-#9%O^Zpd}a>7`7-#b4{_3Gk7I|o})#At?6X_eT3eTaN|YpPYAz3=M~p1 z0#MGGNQ!4RVxvfCI+?FB5f?oBaGen@RAS_^i)-a^MSqeFqNO8p{;k-50KUio+q??? zdbRbmgUA7F4ba~>3p{hi^!3C!cH2*{x~UFpO?C0 zYheEIs?u|$E4W|j#P<0{!V>PlnMKc%_rFJyV{O2~Fo%60qIsVU%u!18nSSPc?DPBIXsaqLX1rg0PA*2dyIwH#U=9J-d zGKoXv@!Zy9gIY7I3Yqz(QIa=!t^uTk@ri(avaazcrytQe{*-@0s<*T}*I*!{ZQdDcqA_6P`I^>)m{;%@c^d5r zS=h3J#^ID6)G)Cxeblmh8^FLe!C;Ql55nOgBv10pfwy)HaM_ZT@YvsW?sO&v{|Rbz z)R1;J%#TLI&MQQ5_Ofg zAHU&A*s2*iQv9dLT&`M4^n{uTXQ99PnsGHuZQA|3%Uhr}Py?*oxgYpfym6kl5QStiB~r~YM|(s8DSo4~yoY!)m6 ziwTq|x1*~nuBF-47F=`UzUuqf9OkuaQogPXTT<@jC~K0Sh+F#S&&gwK))DV* zORxjdGN{8FHr3HtUPa`*w?*jFxl8C03=|AoH6BwGPj*YRijnZdo6p|3tGXpGpLOCN zN?J@3GP*4uUAHQlUp9#msmf2Q%H$TAP4S@?cFKT%FPUpxtB=qa7>e5C3b2SL@=j)WO z)Ez!?k|MEnjOlBdSV(-(c>=q*|g%Em{w+noGCgc&4+J8K!R^V&-!z= z_csfy$VrAJA~}AV1`!6QQAc3?IKjFT7kQBIFDyio7)I(+nc-gRE~t97QVd=wPDx>!dSU;l8S-qX@b4nl zOQQGdxRLGw*g{wtg$6$qw5ffLrmZOU3XvOxQNW$gahmUfZWgZ}uivgP^%ZQCOIIgL zk#L69$T}|EXk^OH>u~r+R}c!G-_iCtLb+fzZjP&5GsPn$tB>oldhZoN<(2emJ`89L z+igDIs3>$As9ebpxQ!Du=16uywIlXSQu{Tzq4rmBQJoE(2*5hoO#d98D{%SOF9SQw z=T)_a@E*P}d4rRjE&<$n;C9zebBKD6k9FWk?}>JIFHC8a$x86G0lx_6LLnUvI(LDS zjV7&gO+R2B=4`tDRG9b6T_6sg+LXRif1Xpm!OQ8NCbb~TT@e7cX}`)TCb2@NtM!Su zyX@ef+eF%P#2N~|mdH+Lg7j;hU`~)q&;1WEp^6K|awppHBa(k!4*k^g8+eGw# zENen#CFeyxfoo$8t}jLW%$?@|&QV#*c?UsH{A&NR3l?|WAm+|+)ld(<`57el*%TBX zbl-mz!2o<$7VFU6({~Qf+%tEsKkmY=;R@_Z@7@8#m5R#+#KlVK3Z%x1 z)eND@0o4qVk@3L^v?}9y>5od@L2G}Ps13m$JXQsg*(P> zdzous*uAz{DJL{Q>|%}9C2VOG=WQ}H`V(>D09bp!BeVPF0!mwnoRKK*`dsG zmP)=1dLphHRWqz29q5M0g|>-$lCSkJuM?u+wkdRysMQi7pF!wvqA%zEaVp%r(yH-W z^osY_#w8vY?b2$L){YAl@+w-9)CyV{tn8YrLyOsKLFZy30m^D$xo|6Shwun^ig81l zp3IoBGnv#J0YyWcr1|qjpFdZ||2`|_{-VAs;jirhc%L5Ga^$=0+?aSh zu6)w=-$>l&Nk}=V!&oiWFpmjc;p18MgfesSB#x2f?88yk72Jc`E`EbZn0bpX*CPS` zMmk1kW64 z%tJ;f%|a3M*yN*x;-e>wu_cG%^55?tN~Oxhom z!Op!DO$LjK)8h>48;WJQBSTsk5dJtMA|(PIJ0xt(;L?66`Pgw1YuliaK1ry`0`w!c z@VaS&Bt{6zOpMj8!uGU5%@LuvTM!3sj{&rcQuIz>PGp&4&_Z(XA3F2POhc>lU5>UWt@{QB2s>Wzkn->N&OM(vYKD1 zlojN;0afy-PFF2$jA|;Bt~lsJy_A)@i1-_oGfI|~QAbKDSKlBlbH+WD04IE}RpC}R z?)IHPL;ytxrQUO94mPyg5*>0d2bW0xt9Xs)a(ez-Ur2tNb$D&5_Hkuc8791eh`&Vl zo@TRbJvVP%T4U6hj!$DkSYMlIT6zC31UgINQJxzClqvM&eZxt!R9UURH*r5H$iuZ=8sgCoP`@ycaD<6c-DcgFP zJ^cjXh3j48M|U@$W~hzO*HOlAuNMY5IIDEts+J0S#-1#?mTwHlsEH|=l?W$?CcL&h z!1qVT*0kD0#pO~n%CziJWcX)DSLXYiBf9PN-r`9GLd;v%L>- zjq2wHe(v!Y)6X{fY|&OY4N`X>9i)yUs7I$d-bb%s*>$?yW3+;(Tygufs5FkUi2G z80`*!yC)n>By7-2} z-;hZ?DUZqZ`j~<+*PAH8|5|L>D5|;EP#mCMRpE9>c*VSYdNp`#4!R>6c zj-UpR_i(pZMb+T#4}`gyucxg4Kt-?(NJ*B7KQsc6|1bB5bMK5!E zGToSZ;h4J{0Fgq&a9p$<01=5HWDd&!2#g(4G^vA9Ec^{nx-xZQvCW;nDa6DGou6m~ zFtxoxfhYyM%t55donk>W8InSB0MYmuN;Mw@a*)>&X4~dws!ht5DO;J6j((9 zQIul-Nvhszpm37cx9W~H4hM6e50KPgH-aMa7Eq$rUL?sNIGDVjSQL=^7?3-gz{`L^ zUm&pI_G1ObfMF=m>9)Tg#lRsD0)z0aP7k&y3Wa(Q84*s78YHhT&As~~bZ7?$ZhH9M zL@#I<7GZiw%Cq~#FHVpIU=aPUo-_3V>e3at0Pe|fK?Q^E_O#U|JcCKdXq4lk11MH~ z|5#QC8!&)`f}8EPN&e)%21l3{asDHrUO7*nkwx024_=^p8|C)115d+Hml>%-qc&JSIQ@g-sj*1ixchwF!$x zmdOt*n@AF0{|kpCgEz3^;82ZuVPViKmkXevOV@wE?H_Re2R!}(&ws${AMpMMe*XhL z|A6m5;P(&sUjTLX$uur7Qs#5CXpq_AM3-ooYU0o=nc@&TNjDy}h5|U)MqU6l(%-Xr zTNy*-2B!7wu9I*9@l1ZeZ4<8oW9lE-y|9kK_d=O|h1mVM0LnBtvWvb}`>A1@cU#gy;^g2chqk=D4v*!t+C!Oaj@KTm@zq zlHqVobM)q(L`FtJYAve=nH`jlxQYIQ=Lc^Z;%8TV0rWu61nM1V0-^7hMzoVb%>_iB ziX~`NPy{*$sD~h+O`0!&m>B{Qy7vKvhoekiswd$25tv?fxahcmKqhwrue$+)=7Q&F zfo`J$ctAA(ctoMSh)%-u<1qR6u^Ii7ukOco+`kGAM+_HBL*=UtN=57I?X2Ez zrVzQ&r)xKO>3Dv$rj@;J7Op_xrPY@y1wa5XHh_c9aDkF5B(x5e2N zXe~7xWP5oP_$1#G-rLFyA~)Ou?d56uA6+VJEpF1V!zZu-u^`Z^`+rm~e{7!vs1~e& zb#MQZVNt_qrUaCM_P0X>B-F+WASvJSck64z+iVOGhW(YDMK+#x?budk&?{V)Z305!{p z=DFJt3Er8vH<(v65*+JW&8BX5K-X{>_{2-&%7j|&U(7jutQ>SNu+gV^abMv2GUhuy zKWkF;AD}L>iLCg*y_~QTS)yr=jTWfMz;hIdS*+3hR4Ul`)e0fc5^BUF{-dx=Q#bIZ zl0VrI(+t3|w{UdAFH}iEP9o$lm_64G$@uw#3`?S<7o`1UA%|qK(u&i57&8etY5Q3d znJ2)+MT3kwKBw@2ejHk2eMK#x`6l^ed8$<$sy!)*4#WSN`31Q`Vch_iayvk{q2CTy z;#Tp>JZ=BkaH;W>Xs}sWA=0`&={sytzcc_%rG6W$lQh{Prx{kPBak_Ge`qth7RnZj zUYV0emJyCFS$#>o=1r#`0e4Ovhd2OBU3O~?jC@j zz*W_@L|E(2p)-~0LF>50Tl;*61-z@5$iDHja%vD17~3`=;vD7nG5iI2j?|EgG@q+z z*9zIAM&h803`qyO8C~IAQ@F|s=@2}Uf=yl6*}KA0x)fiLU47bhAVfsS@80a^l^1SZ zrIw%i86kD*os~Z{tQg(^2jN~tps)AfUga4hPX@)wx=Ekdbw zd4W2F@>YL(vw#U~uH%mFwSmlf?i~~&4@A`+82=D^E^=8xD+D2vOB~4G9)*z`_^`<( zfjzSL>)gsk!ulXE$E-2zq-1PqRvdkbFlBr{OW_SzEW8y)?5&tlQ)r_S8?~GKym?nPs^)D*eI|K7Jr?u? zBGFLD^}2U`H}5bV7dW+O%$&X;?X!(E6~ej|GhZ+k8le{t)Qqzo3DPbOO4~IszI46Ms0$yM#tY;_;x+69;uFB zsRI;N&+x4EXMb(iiZ)p$jgp$)fhx>Bo0zzG?wPEeODZ?j)G0S=vgV3(*l)m3C}avs zV7^MOh--bbJ&)D;V4g}^ZW(2d7wF%+47w+Mxexg^bq-dJonrjU?o-q}ffyJ50OLc0y0hjlGV3V5;igp(FHX zmK&Jh>JGkoryDSORK!Wak>7sT-bs{wfHEgsxUjWU_{In*!HnlQ!(gXBl^?m3J;5oD zQC1}Pmiy^$a(2|9l_n`IUqV<16son9O102Xz$UqLgf6jlwY#`Z%H^`lFHJEU+|!La zTCc#$_##-iGUuQ6QHh#d{#YrLt8rCTb1@POVGI?lSo=dVd+*94mb-f#M^sa)(ssbA zG9wR4P;M!%@*5aC=1FZoxI6}6lRKNQ-&0MY zsKy7M-y$KOtX+cs`Qvn0Wz^L?}e=ba3}NOPXW@QsKN)J_++{xM-iaHcw?5{ z6vqhS#i-JQ=)!sj`|(FqrJ?+w;O<&Gnp zZDF}5bGhg5tmwl6NYxW->Rv(d-1*fPMin`L#a~J}XZ|Y5@iXTQRy+uVqKe*ZDfR>B z4M&7N8U%P{u(UERdqUY8GN~hKIq5l|eNCEBN0qw>C8h3=_w=w;s(kvZcArACYORIt4RTr;o@br^Bp!^ac5~ET~Pj)O}D8!eEhcu z)NQt?N>9tiH@`B?m{eFSb2)g|(mZ*-C1pbSTbk%nX^ZAt0I_#LQ`cj8KX+5 zE-brFWg10|mq^fO{3C1DZ4LBG&+^q?{HvV$reWqK?mpd_R>e2QAG#J*EhL2@vYG*M zW+T&v7Q+l=73(`rZ&5%qYSj%1qh)l$_xzK)YQ;93iq!+pN35WHL91@+KjbS~RHdcG z@Lg89ZtVOfNK~b!#ZU|JKLP+fY-`n3g^~R}KwD2YrJ6a(dUzFJJ|($UQv&E~OCkqO z0gC8at%bQ~&&+83e=+#za#sM>0l*qJT6h3GxqEu}DIDBk zzR?)spP~cV-;*dnq|9h+dL5snO_mkY{b#~NSy9T$>CBb09-^%;obuzRl*`Zfn9F6~ zMOmMuQ2U@saNg0ThJX)8P05rVe~?O)CLsbwnr1ShQd)UUxGLrW=^ze3-Q8&5?+K;! zNhyeG|0)x_tCim`uPfMDps;jG1N%)v1zQxz?gh~Ax)!D`3fxrDg836*uzhytwSD>n z%F&vw6Idw2dBP0H2{$0#_1`c>mn&>j2Ym(ux(P;zo&`X_zo+u}fUoD&$=x85|02bOfv31z3YvU58(8`Hp(L z^%8)2#B1Uc?7t*x3&3nJ@w;3^>~+*srl5RN>q?1+b6kv-63|cW+T@x}C>t6gh!X2L@p=BZX*L&eof>~N1ee`1eF zOz0n@#aG*I^G~-CVvkCk>mTb8>vVO;X9~H*scPbJ+J!m8y$!R$FG*;gcIG*W6k08^ z^*WTs%uABPXSoTt%f5-S!!K!QdaUx1&AY5|4d!u5|EhW4Mmgm?&p37~m0cKC)Zs%u z#eN3342fCT5_kEOE#4D-U8yU~an5OfXbeuJ^ro|bdc9G5avSSnS zxLOPki*SDRGZti;ZuGKxpj3#aC5W8_41Z6lhtyKx6a+Ebe{;dF2d(@j^jGtP7{IWy zs~So}ffFrkxSM7Jbe65UQMdfMFz<~&|0W}N5p-c8q}N(2i2}<-E@Ta)XyJo`YL@8o z#4UfwC6@6!0X4~jvqm@EdLr!5(GhJeK>K$M#No}+3-cbdmng7Y;RSQ&LaJ)0dj762M=T?{^}9~pnS=7bO9Id}vVv&w5 zxMU74*f2{N4&+??-XCzYFWSAAOE=td}-*?IH49tsk~k!C*G@R;MtNcXY>_H zLvxaC($f{UNR6N9K~SRgp5r_;KRF8j*P{OnK@#x(#mOK00N$L8t+vtW}iSI+r%~ zwoV9#(DojP{SyI82I2J|_WIPpHY%{O5%dSc<$vEu_=HNVb$34}GMAkhC-%sYJfXkwlkr~dcukzkG);_{xyy1UeCYP&ezQ|4`*n&gQFAA1wHDADDMbsk7= z?F%WInXxCNDVY&mDc!chk&2HO}t ze5VsI{Kl~p_{JKF^r`aqh%@r`!L`>@Yg0@^9v*7fTs>RcweVxEhL48Jb(U?x(jCF$ zWkw&&PaLXpz_{z8(!NUQf*wMDk|G6mrR_alN5Ma8P>(0I0{FcC+cB1HQaAOfDB-7X zVMAt_GyR+rF4xer5<=~sQb8KK{lokwq%FQ}`_hy~P0J({Dhd*yw12Kld1 zv-#yJt#;{qM~1uc!8uG(R!{IB3}}?Z z7T1jM->vf3vGlk8S!xDff(C|n%eG9nl-d*oAfNE8sxw>RwNFayFTwppCpJzeNVAlT zp*5^wYs!C`Ho4KRztZ8Cc+frRGKb;rF@D4n+O9NzAX>caTqokUFZh#Cb0KKyQ3&RA zuC8121jE36iEC+z)v+x%l><*j!oqxMeF!0OJ_uHn(GReqlhr^Cf<&7c0BIH^ZoJ!=cd##GN-{P7#L zAy%5Ma+Mbjz;;sB&X2XBhPhDoo1%eW<%EoWSb}7S@rc# z84UCGcRwzJR~`0);C`eNnfW6~IqYA(zL_M(9VX>lH%u2EdG?^5iH&xhvwWR~I#tbv zOy5JfJeS&V4symGD%Wot^smK@Ec+8P2DNOd0f3;=WNTOR=8;gA2EczHM1jn0vF(od z_BnIi?}2O~b6eD>TqTmQMccJ(k0aTQ?d;uuF>heVO)vyzU+%dnVAHU6S_Dp(%zs?k zXLZehLb&wl&%F~YS3tyL$v$zjgM@yPWmdXQXmG>qkFfmpa%8?me-Ew}_W5>hR!WG3 zttWW8<0i6_$vf8{lVJ%RH>l2H*(Xk~uS~pjJ)*BhmTps6o9vd_7kNT~Nx#HTEfa&M5tz+DUtm`-^X?bVeR(8$0R*s3kfEpB_Qi=4+q zOKFSl^9&#IY?(5okY!tQ2Sx}0NocQS?NM{*I#y`X9Hu@gxD-%2_)V5lL^Fj=82y_} zHf5u(X|S$)1M=l_Ff3&1M?6@ghEG8tdf}}#+hOSYWFqv~-6qx3ab!g#zO`?grYS@u zn~!@v?@W&LiB47W$L#G}r%&rVp4h~y; zg3s!{nImyoCM1~|%98}NqeKezK+eIud$V0Up!Qq5gYJ#WrVM= zo9LV@o%h%0-qNm&914jVwJ^kjFlJuu>Y0xPA+B+}gW? ziRgf96mPvOOo62MP@pgRB0>8rj5n+tWHOR)?AG$6fR^s#=U@7~x8J`i^*P2={qR*! ztwFk*gX!KyGAadEgCaLoF(`}*pbjvCm>Hb4hRu2wkNSMd1`BSgaEotho8}L>>z%Sf z2B?~C+9Loh%u(gFWXxRwzxd& zNA+aQ`Zw%f)xMqQ*N_THAoh#sKZ=m2^{fm|g9F zk_B<4^D-aM5)Gv9289*kfF1m(hTAs~v6p{~rb=32)q&Hi(?QzvgD|&+FOFzv<1%(h z;rH4TVr~flS9}0U=qZ5PbJC2XHv#Dxc#_<`{Da@DR=%oxD&SSLMhIVGLNRbbHcvh6 zQ-bgp6UYiga@-i!{HqgMB+hzq?SYlo$KOK>Cv$9DXs|+#L?39`6a^6oClUHBtXN?I ztA;_QpqPueR>Ka2+t?>Ul7Q4piePwsa2=69OfHT&i%gHm@RVIEXjY7xEa@SB+=G;v zVnR63(dKt4KZW_5x;i3?txw^)=@oU3(V$PL|HyXWupvx#({+zLWIDM@@NHPSXfy?W zE!?cuq%-~`FyxdPCG?iA5pJ(Hrz+Ce1VSWB2|nJfYpX^>UG5!wEnbtm8k)2;_QVm- zN{v0@uZ0%zI73&QfF^Ag+%!2yAwPTsyc+X1F&8%rv5gj7^up9QwV`o2O8i!6UoSAH zZr8y*n|m&LB?T4;57%Nl5M*?HE6Xm^}+o8(&?oN{*@w12Fq`C8ri z6*}RHR$|UDN>`1ym?am;QFr!qL~8FgoSJtF-!O&j(6@yJ=Av%*@?$z) z6#nRw8wWsH@D<+MXm60$_ld}?$v0I?(Ublq#hiE{LhTA$@sy*O8lzR+6^p!O_v zT^}e7KJe|avJA8z6KdmJ?>z9Yc@SNhSJ#`Rn#wYpY3s*OpY~*1GU{Q^ZZs^%(;+<9 zUjtyhDXOvxtVOq{vTznQYK}=h8XXBj3zX}ie`qz(f_7qU>LtHRDT_`c0>Oyf4Kga{ zA*>`VIQ27f=RYk2%DYo|rtMaEp!T{`?m~j7qrJdnza|B%qz?d8Q1S+sp#+FG@&X?q<{5IKe5C|*ozE_P!)E12dhhC+bwu_>(xa- zP1A&^bYa>z$T6+OjR6;eg<7|DBO43zL;C$SF)xzWxbCiuVu~ zRKMW}Nqt38h`KzFu^=(QX~_BVds~pA;6hyzi-Eo=0w&{*=bhUs>#rOh;SaWH;vEtU za@3pnNGF&KJN|>nAMMLaN$0mFav_mDdPOB@`e}ndv@<06O|o)Sf4rB)<+4XksWDt1 zjX^(XJVkSOFe>wEO}=6;Q=4uN?K<+Ng$4SRBgXi(MgmObszCj9oXjy{o`$WHX&4UN z=n=Xw4+}dnO?>ySgAWQ@M&{{q+8t!sQaUbAQE-xlU+c^b`uY^%QWqV(oqnfAv4=Bv zE07rksHDXCH3lsS2Kd$>JuN|yt7~cb}aaJ?`2B{sXEJEKL@%AtRv z5#_uhI@DB5k+>G|T`QQ3#E3#(f!kZ?WPFPuGt7~&I^y0+n?k#G^t<{A-=CzoagT*|$WS+=bA>qQRza@ZoP&-|Y7 z-CmckCbA*?^HuTI9paCrWRJ=xxW5QL+mA`==3z(p!%@2qHEqj!O7)cNG9hi#B!&$h zKk(G8gD!eXvGfBjr&@3MbSi&En(J;8#~>+J#HLu_+UzTDh=8NmQb4*@^luMlM7MUs zlC36iE9X@`u5N1q9IAXnCz)1AFv)J+g7_=+7h(@{e)9%Jx-AYu2)?}{B%-Cz$3utM z)L1MHO&>j1ZE;f&^rUWI|H?3Q)?61xR!)(gX=5f7E0Ep*N)X#Kw`|;xr_kh&04|_V zEQMCu53=h8D$$%?SvK`H?gs_CK*Ad=!W6}e?G_XMR=1cgamY5BLx2Rgn@RSN%{%qR zr905}087`KhBRXN;T9B?oVn!1qiTk2BeJYam#YIovUKc-#kL=$w_SE$!^p#j3%LDA zxgPQO+u`Wpgm8(xyp_GXw5)_BwRQ|sLIg~Tk+g#Eu3{%q<*+7+IG54p{E{hi&~=P< z*)Hek$BGFK?Wdhs&942cFQ2PGs1%<^@>vX7491Mo*&IbfA?3#%7L0pY3$ez-XbJUB zqANSy>b8~*2m2^~j@5@0eh*rXnYP4Fg6kBSVIihVj2DO0CgC4n%V*y?h+2(V)}31A(trm z1uLYHHOFS?8=DQpjrmLT9OT;+g`ia*bx^kz3Tzl;%pB&G47a|N9qp?SnR8DS1}%5L zTW#RS9UP4|d6Mf6C2S`K-T^3}k9I%X5C1P^&n$C`2- z)jS<_O0|8?3zHAHQM_$WEafo{A2R-G>$Ho*`VAMl%|rU79w|wkgLQ6`WGD(L&d-gA zZ6A`35S2CO{mzOP%NsHzRM-a!yHY7U?bqbb3fvIg%m3P5Z-Rm19KjkT-Au7M8TF%; zm@0LJkgrr>Yy&tlHjsUGs39eiqZ{CFc!OlHmEp)pws0qniQknmVKk@^GV>_BwhNC> z=f=$H#_VEL(}EAxP0p-gVyW^4h#%GNk2wd3YZ|T6r!xo6z5O2CWE?X)ke7^r;R9A6 zNaa2%>ch~$n=BIso#5iQM(<_~A;<-qfFlt$d#$%7Q@yPrs&@Z4zuW=!G22n42n@hToavuC7XA~$!t}HDX@eQpHcB}=76H_85w+%M;Id#t}-hgnB@xUSb zw^17RCl|N$?_#UUAMY6Z78G|sZ`wGClw`#(>pb0)a5;+np)f9<-U*&!rICy(nm@P> zI6y?H@R{jJ3^g`~K!0-JWATM)q&p^4$%*CWo1L;4K8^u(Qd-4==k8fsv6LMsz$hDY z37)oH^672awPz%R)0}NbR<=7HuVNr`9y&N>O**wn-AxY6kSo+JPH}$_s$_dmXjq!! zizXyx+a9gvD5Iv8IPwGROiYg`DG7ornb@0ad@u5uUD;MK7z2XyEB7OAKVUW21D~83_jNAKP3UU#MT~ z6MPeTB#L!ye2rUdLmq7(2^Wqw>@jgU4nO1hqN|f~635yVeFTFdifq-=v&;a9WOBNW zg+qI2M7FJ(CdX=mThX5a8s$uuj`^noL1kl>4shJ}zhp207omoYx*T(QS!|fRsv}rn z6PT)GzWShPdestG>5L&GI0a*+8l2H;I5{;6Bgc&0&7w*PQBx+uMF#hstj7g+pOv<% z8n_#0uA^y=t+Ym~CMP6{NcZ5J9P}A1y;!jmm}iH*-oyGbb6Wewr$(CZQHhO+qOHlZQJHAX2(fK)9-sTHS^}*gI)XHT2<%l zyY^ix4TQ=Z%2YHjh$)s!gb+}imT>W@Fau}lIE>{p-EkpGhu7>ZU&u}6h}e066=cWB z+%A!clvtV0_7|}?o(E?^Tw@08+%;iS7HAGrXH2o)XT}0}trWJkOQH*@5c9{zHDPt} z2ixt50Z_flryTofCfd5>zkK?Y`{w17pYVu#)MmS2;;?PxPijEaUp?^(IB{jGjzYE- z6@Q!`CBOv#A)Rhh*!C2mBrZZTy7x0&@jez-Wjo}bqRkRl!07xZruSwZdL}IYEi=r0 zVjyjFyGL*I0wIx@fjec=E1xj%e|nbkVS6%+k3+vVUuZvM`$Fo8Z4^Blg}QxzZ2Ev* z9X+F@fYhLCjD<=FFZI=+bGl6#Bu}O!+=MEN37r;;nhJM8Yn8-K)k_mQO++?>Fu15B ztHv!G_1<%^&~eh!oPV`Wh>DcX7gQ#iO0jKYa>tiHx^-oXM;)Q_5v>o%BMn>p^M6WN zuM!O>k3Lk9ba=obRU>Y7Epn8ydydw2%c{(tab;i$o5IZ$4M&jPJ2pWUBTiIpswhKN z8QdJN*yHc2;p(nDxHeIBn2)^9+a$$*NGq2(=p)kLXb5cD)PkkAobfg48?clV&nPFFL|~+C1{)IzI{6+5h}BVcC=gh~gY%eK4a{c zPyBzEc$U!*Yc&7AVZ*v$0iv^*sKk-2mTVAliQ(iw!echpFNKIgHDc9#mZ7YyN;=f; z5VuMP-4)b66)WiBXrZNPUnss+S9*5Yc7=rZk`Q2FRSAiTDQY`zwS+bPz3hTJ z&aG-p=^Y5zgy%|?NLL(@@EGem5oR1OMi=``6dj`2EIb2~q{c~hE>bET6F~p{!c00Q zs1#-X4QlT_xrv@s>Nyn^aCXyh7f%g8hu1lo7O?jHrwGCHd=~wq=eG!W$slg$BZXjH zgFPo0A>RH3z$hK}*3oB>{~NlrO{k)#A`;fDIp_$8@A zg#0gAeI`Z&+L_4;;S0P-TJY0VRlw3&y~jAc{>OeL%`^+Bbqk#bPj)u)^iS6=rRt zU&_5yd}IN`7>SC|md_l}NN{xOfzRY*JO?m@tA(rZsKnYWfn$WOTd~^aIy?2NIn0Xx zBlJ;3SES@5{M#={Hp^C!ut;>eLW(~{Zv6jAWHraR_}JmUANgCHsJLiUTyI46f3CKO zC~{JuYo@zxzm(%r`5&>3%jt>L|NpedUsss7kG}PLsT@*2;S2{|B|&Pl5Qb z5n}@X(ti7avXp5RA`c1;RTZwDPnxK>xHsFi@dF0v)~CGxll#{IuY0q4wQbE6*YU{q z1NQCv4h24$_raL9^TjFO^Fe zO!m1qd1X~Blf+rq61&R)m zEQO9XSa$z%p)&LxMEc(Runds z0HO<$NA~eI;6oOOlH?yvcaJeGMLj%dUj1by);RF(cQ zLfY|9lm_2J~;>EIi&)c=z8WF;jZ^mqRS2W+*nSI{7MwX)~ds-BJqfHR)| zBY{?nLqMG@Yu8qx$~)yUE8A-^$&O1s&CZLCD{rRWK;M;!EczGa6r0cATQjHWG2YjAMuH5! z-?7lO-GfXQ?{A55K5~L9*1r5E6?N`8l&>d+u#$fFu3e`-1BW4=+ll7Iq z;o4p0Q&NKVtPTv=L}%mPK_orXz9ojTeusFUw#^ke-#q3E6Y?_imYjal6Nc%#7nozm zbgWt+y5DcI%l04|?pF(78-krHRm!TVv_usw*}oE)XXodf8u+G7S%%19E|4cEy|B)) zf3U-*5F@jRJeZh@E(G|`O@&9(eY(F+;jAO~bue)23?YMY?5A3>i0^6qon()jJ3YUH zk#X(P5pUF?Rf5)ER`HgC7v0?$Gjo^4`w`gg_azBv5Uc2RP}LcOr@M3I!|h=>CgAa0 zY~5*Sg!-Z6NDnXVuf~uiMRH3x|1}HVE+MtC4_EftV%^roCjG#V>V3jFl;0v=*G(2S z$0cLsqfN4DFh#7?-&|vt1P5jPSDIDvfyI+I&AlxK^hR%z;gBGU?+^ajQLtvR{zmx_ zH&ODvWd!+>6nR@g6}W7g>3GzQ0?PIo$~FedwnE;|Yt)Uv*cL>9eiL)=+bGd?scxC8 z{`p;iMF7GQikPts-?dhLO5w1Kc4$uKoS?NolP0)0cdp;;DX^JP%srASf; zJB3N@_%I_xLcjHK7|X%~qLuv66mnX;h;Dm}1%AXGzOUXd=xa0oO>tMGu^fQc#^7j1 zokagRUvj_;0_d8JVMJz~Lg=cFbI0#gP$WQ*P;;+VbBI=RiB@xpR`X7cmeE=btIdo3 z+O>#1`&!}!g+E#IG_O2;#xbCsV2;@T4OeTR5d^Rmbbmb{Dv4Q_*ZIjAlNHgnbWp6x zT~W$16&fBEg$vpg3eX<9r#*~JdH2H%-&~hHWg+QSm*&g`>@*hyl;kWp(O}!ksH4dB zc^mb)S``;;7HH!g`!q%Z>wgJ8T&}}FO-YxUku5bh9p&mS;Q>gDZF!d!9{<^K@Vs@n z>KewX|FWQ2Y)T8n|1~H4JQ+zV*{U<FKnr$^TAmvF~m++P1q^RDLUa%PTc zvrdKOaKk$$0&T&u+LSZ2x!T2;rYxjA*&plBOQ1UGwJx3;<00W@D6#G9!uPv8xnTWu zmg2rg9bbBZWQ&O(<|c1kMr}RAY^dz{LFXa*;?F}azD9rfxWB>85*C&wL--cuq^>f= z*e{jZSC{((Ktzy^cKo9wvS!6hJv7>?rVY9JA0x`MBcio%+IP2! zWZMF&b|cP~-C?e%xQzg&89d!x?r0{Y*coX40~$IB8bpcSn5RqfewUnY7)_hH`gb-h zw+KHS@zORm(MX^H4X_`+4YTr^4Gqy8mTs=PGvcv{X9gVZLH5UGeE5;9yf$`83-?PB zVBY3s2+-G=IS|S}7Vh+fLPC!$z%ZEEIS5s48rUD7BO?=KomN!E*{8%@gxV0q`SydO zo~$cy9f9J~yMbu3sH<=rgW{UA^U2JAFWpUflC&O?)L%OYTHR#e!->1D9}{PQy9z*D z(?O0nA?o{^4~kl5 zht)6Gju)#x>5uDI@7V20PYcx!rr;ejv%}-`p%3FD||9;jY-$ocutIb11 z!fSYlW#Nn{Fl6Lv_t;+xEEr5eQxJ}`=s}0nYOgNTs)<-grL>q%5}Dr`$}T%*7#uzP zVc#GpCD8?=Oc6Krouqa~r(K4G(HCbcopxvtYLSC{^o{Cta#i48EE8jw#m68J%fjFM zCEAXF*{p&{oUeJ3+B?2|73P)Lh)KfdP%^c{UPViYN0A;a#nL3*IO|E__Ec)=)*h$6 z{$eMVA%thGfSnZfPp?wQ# zIMW4UWCs*8pjm-l1*ob=ADT7nfN!xxXI0kAYnTc=urG45VW@{grlPg;SGCoQ%dak}3<_=_{=9%~a=KWxJ+OmI-UBNvt5QsxRjpxVegEw)7 zL?4*Ya<7jQk3wgZGkd%whdqLY6ni6ugTVn?sE&ci#3NiUhhvUU$l}Wo{e8WeJ7pD8 z?`_rW>2=dEk-mWkPrA+mt`#$llJbbHQ#2(w2L^q2=XsNf^XkDvbvSwz!hq&h>+nnq@wc=QUOkAPGF@Q}pF9?Ye`mC68f4 z1+ZVIDu2GNA*EEB!7TsNZU?MipWoq@p7Z%BL~saQy@qM$Ccj)@n~a$_H{z5#)$${m zGX2)xd%1lq;Vuh53|BR}#LG|z_gDqy$Re(KnIDCgZ#%ga^{CQ%c>pvLJ5Tv~PtJ8x zZoB*kc6Sus1Kt*(-G;+gYj5$~%{@)iem)%Vpzv&8bjt)sT_C@DTIBo((uImuosZD~5rwOF0j(Qt zbp3HU|Ax&%2!6(aiz7tuL63WKW@W$q2{gSinoMP)_%+t5SuHimKS(@L4}__ ztay7W#$E8i!Jg8-#CmgE6;D@*KamLUM2+j41Y=xcU-s14pfX?Ut&nYFO-X;hWLY5B zRPSUDXW}BxOw=R8Hrye(EF?kiiU4C^t*r9!^76_FD&y;=AjrogU;W!3?GA@8?bq)r z=nOH=S4<)v_e1ogm4bmDrAe*5d$Hj(Z^9kFp@pv@T^Ld)^hNEt?mo!SxbcV%(FD4m{V7unykU*H6sb!6- zUXL|L)9*hh87YkX05+lqF6xAwmik07v>l1Mwf+nm)zL@nyJYJiNJ*>nm(B5rpM~D) z1*-HD(t*$!5=-;r%ki-;;^;G+MOyMr7PCsHV+YXYD4@0!L9m%Y{+v&s4nj5g0neU?3 z%zYFoJP|R*m46nN>P3#&)RZ4x4k$dNzTgX{zp|GmV^F1T zIfzsa4$IEpOvz|+f%%l!WZEEbV>EuVn_B zsuS=p+cg$NF2kDiM9Ge(J0odMEaAI1wE(*9sb0M+rh4s@aBRh&74wwv=8`a~Ly(19 zJA}1kt}e8j0{IEBhbEA%5GtKTVCXwaN1qkJ=dU9w{-{YHa;$aceJeWsysOaC_!Z zoLSrJWT*n-F5_x zWwpiutF6Qe9btD=icp17D8GOc0z(>%4c0eCMot`|E77$7%6SmB2m=MAHThOx80W^1 zZa}Ss!_VkX44JH2w`NN1aqBI<66b1gSz?GbqmynD$ZrzxO_PlDtBwujc#X@F+D4`~ zc$a%bV$^yMSPqap6?ba!{O>w7mHd{|tPH@rs1VSAAo;3j8gO$7Dr%~MqW12;Lz@xW z$RY0U>x5ukviFi)(ChOT;Y+UY7yKJ0N60m3kZ41u{q$g-Tx$wHjU|_zGpVQ}aG-Na zO^bapBoR4nvfgZa21G5 zE*plcHZl!xk%Z3Y8|?@5%R{g`hfh}?KI5>1A2U9N;+pe<`Q?>ForE9GGteH0o%Kv) zKiMufsBd2Q($TrKq<~luV}7a2HnWNhWVcxA*E34|&m>eINc=p9oAB00+TbMN9SbwzV|mN`)-^LEAd73GVBGrP z&d;sb+ajdNKZWaQ98TQHWFUwM-!%WrxgU-5#;SQ{X^aZ$ueAYf)gZY^$UlhhwrW-G z@ofKRJQv@wI))rq4hqr($>A&mW`67Ka}R%GOCSh5yo=AftvyACT>=C<*IY^1Zn2In za2m@+)xm+LCGNM4aZiX?#?H%{k=ycH7E`D_wh2qbw4AX#cdfmAT7eZyV%|Me-^i@? zv|Mzg4G39tY0T(TdNJC?u7U%V`OQN(N#gGJHXtk>pYa3D0>&7KGFXW;OyXhzF~{y> zXZuK*kNM1v`R9^$W8D<~^&AantgGc`Oe<@&P<`+fl1lK(*^kSfB!j3Hm;Nb7+#}&H z_2b_GG;My&%+gZLkr-;(V|P}%WZ%v0n_r_K!*NzAkxY$J$xnmiy3pbwV92x0+&9bl zL9F(zM~;IH3p}2@! z6HRSP`Qj*n9d5;71$m{G%1X+SVyi-TUb^pm^VBp)ddYa2-{BIJ6UyL+)YH#JYqt3- zcg1P*4m+i|*B;9QwW>tiC4bqLPF6CwYFC=LTav2zR?~7D6bXAk%UdXOS}?pBN+YCN zo~^pkls(DQ3s!K=a<1)j-vVxAt-zbh=vwzg{Y`W`~tv){y7Km`td zd-34qDdqFS)&_>sDcn(P>b65ddG1`j*$2%ZCm@dG$P_w}` zqg188I~cC#cNfCu13;MCE6+mt|6M9^!%^~VyYPR>Nty3fSun$ALS8~a$Aa% zP@3}G#Or}de~O$syk8BGMlAob+ewS?*vR=;zHU_5VxwGZ1;Y)vb&Qt39$fTWYWKE+&=^;uk_09qt;BPG5|zFV?Qx3Kfg?SioLl4nIO>o>)vCyBUR zBC6ZcFb`~Z{=jWCotbwIFz%53pQd#f{q%@MXk0|uG6hdRKjGGZ92DXXq2pi*P`9UM zm?<6X(U|J(xGsH`EyG*!2pgF%)YeT1~DH=NYI5 z0sC!&(OjccwL20ydO9n=%O@F$x+OSxN|;B&CJwO$1QU7 z+XpN*?+ZjFGxbgoYDqj=o9b{a4Flz89x2QqdqR1pc`dfU>uo{f<(}}}c`h3yKkbNG zz?WD0we>Du$s?Gt+=u1sq@SotvFr5DA*JIk??jKrg}Xko-Dk3P#<;nca%JQDs?mWC z3Zn^!Ps}Uhvnk_&Dt3H|PlI@cb)ke+HAW06*a9vSmM|JsiupvFtKeAS9owEmDzldv zO~qYm>Z%2mf+V%SjDOY81ho}Uer-w|E~V?lvrlu}T`~J780@WpTzfja2i25|V6$vC z1Slfx3fgc`J({#dd9XSt_@Qv(PN?r1Q}0Pbo@&5i3MpU;oogY~+?Q7^u)a))xHYVo z6?GV7tw$u&!Hlf>msKFG89S?vl3;upW7)RTh13?pqfXn?rNa?gS6;I#Ye5+k|LjPA zOZ}@O3sHX)um;Ykq*37Sm4K4(zQ0}@yzp2PDRn#1vb0d&&a0Frj6777uP5w0fHPBX zl~qFyJcLJcZI#tPlRbc^aAPmAcg(+Vdx88@U?y5D)=UV;*vzNCFT4@L=?;5Y!GcV( z-I>*Tbv>Y)EUvY05nYL|BDx@wiSJ!^l?hl?>&`yXRz342c%qT7AjIA)45oBTwFCSR z^cZul-Yx%8XH#$*{%{y#4L@NrLfxy=rLnL1iNnm;z^~N6#$KVZqraBRd-^sn(1jj6 z0i2Jk^J1-_-F!@uKW&!dT(!#fuQ8ilNkBlilI@IA`H@`#=;Cxb!wD(9M0;Du0UHfwKhcRmGq%OTgak zHA>6&fVq)D53fkR(GJbyHAu<2{keL_)Y2AtIt)0^-@{7$cN3=ItgXZ=fsom-CM#OH zJu@L1U8-KMr9MbMB65Zbn-$t@#;9pGuwG6T!)Mt$PiaM0s~oGr=7m&C2;E(Wxhibb ze&@HD=7jX&qUSI{Y~beM%gRuik><8G?@nWSBbWp{PT}2v3h}m3ANPw;Gxm0wI4Ei! zF{ZQ3{PpDExRYyCzG9)C61xaq=BLsEWLyny3G8;s)D(EAmR9y2>a+=2%@r5B((2D6 zi2kq%RveAaBBj$BfXH2SO~YT1B4Q^n0*?Tq@X4E$iz>W;CCuo2l(gbiLk4dVZHU0BMZeDtlr&T+f%Re0&UBlTF5vj zNpbN5WL{H1)8cv~Zp%|^*8Em_8nNTiU3;wYlFG91Qb4RuFS1udFdu|yHx||a=THe< zEq)%wv;4cCrY_kA6aA*cNiV=Hexf+&?`5KF-Xz*kH|-1OAAk%AHC6ZCZu*Nl$D`5r z!$xhH;HzZFlgE(XxsH#fah;rD?}3PRR&|`E!P;oz%6`}sioG{P6Bf7C$$L3L+mFD9 zh&1r`KHj#)jR&0etCNjG4=wvMTx@UTQ1U8-o6QcvCeH6td_nzpD8*B_cPY%3mL(C< z^HMx38oY~*}pFkFS;SA*ToHv^8#$#w~xyH8W?yy)!RN(1X5TBe~ut} z5RMSx?1p*{L5mMY8!P1=j;OknSuAdpE=2yz{ za9tyif8_t9eKoX1U=PiPi!I_WEHt!iw)wTm>6(C@ZMt(dO+oe51(fDIILXKYHQ6nb zry!XIg#nI--SP>Rj$7D=@F0EmVcMI8x4;6i^?C=udv&3>88l+shA@Sgs7Vovg=1ej z^E0X8i7+K63|n*J`pf!~>iD5etm|`*O1cH-!VEX4LXJX$6nztu_68&!0!z{AY6Cml ztc^i}k)!va9uP`(q0&E={NNB->w$kOv3Q1|wQ!*;V{W3#sXvbp9w@-hK=LF?oCiHY z?oNyrk&}W(fGIm_f^M&n{82WaDx8(IYJ^Ze@Lm9~%Xu{p?iin>fKZ8~J=c5Opny(% zA|DYXTK-a;ki0JiV^H`VW+Fc2D7!6tKE(s>>@}`+?jd543MllwG|5ZT&rD6mc)lXI znt2NGPThg!g>0IISF~A(>EdU)4go*GoIpsPkr!J2^AlvZ?PJ3VqVczafy|)lOu}BHy|x`^pSXJO=a8M7I!Gd}`qXKH5#iN}T=f168dFm4LLwugvIql@6vN*!wL%(YHl-@@l2yVNL3Kjg@NT(PDC_X-z zG*M5BkO$_kYRr1;q0onC?1_ywc6-@siQIN_Bb(io((G;r6W?g;ziz$Jy%r~yO>H2z z@3Ry3cfqsRy|Zcl~$o%l@NcPkykYCKMOo%bEXA@;S~rJ@Ju zSo|yvU#{6jI{s8qh3PXx<#~E8)fcUCskxOlc~Pbqk#j6DamK^<rc#W5 z4Jx{pUHN9p)yN1+(s`o|L=^szd*XSLEm#!6f_mYW2nx`8oWJu&nFJw>FD`iB1(4? zQ(uVbN4jE``gZkSqhQ1M`i#r`kl#%Ji-Wt1#wirwf37L$`?t{dHz3igsw+llHpI>b zo7s?&6TS#y*99ObNNUunO01PM5-C-!)HoBFN}~fq5$Z@WCrz5P2GmV~3~3FZwS9xa zFn{o2F|-F73n^C$jfW0K!=|tH2&Y+Le_^dAV2ZO`l-7lY#&RH%Qgy|BZurpRR1&PQ zIknJV7wNd3fb1rI%re;Z<}Gg9_j_#b$`?po&E*QA)V>|j2`VJnc9{f^rA}Hwsutyj z3#Lt3LAp-L3Li|JkVa|`=7KJ%F6Ke1@ZA0$TA_9TVbQPh6T+7ArxnEED1ladN!O1) z2C_d%QsGIy z+7ed!Vr9(dE5=`hb-~TuRfu|nX-yxfT`mg=?hh42@xW&s@a4U!-n)T2kICHV>=di< zh+SrceR*IbjE5-N=mg(K{;yY^HZLp*7g|IrERs}Afq>);Ga2S~8HNab>B(47*^QnS zMgJ;RCI-D!+k6DFTp!vv6@*AJs`zumHbh|x@njqvr|dzVbr{8QJ#_w?cd2bLZq$>* zpidhta=YB-eW>qcQ)_IucJTPmy>_sc6Sx-EQ7Ep(%TASESbfGR5Xu;Y;xW! znaCKa8Kg8Zk>B~L?_}OJ{`d07JwIrn8e%W?ta~VFu(Ezrsms}ytEt_WRCiK3uC^KV z@i*FWc!M;&t7L(f3tCo!b0`U?>6vM*76bAWHFoj9`fgI1xU-F&!;!FptiUXv=)PDX2EQHYg*L)%IMn$>b`@e044Ugrr^}z6t6VI8XWTzUvOm;%e}Ei1WMh zpTTe0d4KDZYp=K4We1JSZas%4yd?jOLp>UtvpV>fZH<`c50S{;W z+1x7i5QqCVJZ|zJ-A*w`L@9fY^24km)JbivLsq_cSJw9|{`xKXH#F8lp8|j-8z5=( z3@jKxx|_8w=V4wDa<6NWPrRP##}5=W#;aD$^pPvr6zerbYl7n0nD{&`lFG($2%7OQ zJ**DIVFZ^)g6Ml;7QNpmnAQ8CKv^}5si0NB@l6&M_x<4X>Z1!3#{ z$_g#zxDf~0EjmX>ddrbw7UViQgQgoNu4Dkr@p!ARKEdeYR@|Z2#@O(zYauro&|&9# zGUmb#lXtjHokiwFN8oX9UuusBTQ7;)(Bkbg;|}~G*uuxIV2||uHte7vR1fP~3|gNN z-f3iCl>|sZYM?6LO(2cDqSaf*1~#|YZK@x!DCKDf*>~nHTMQfboJFkR!jUS z;>sbXI;PR=r0T`}SIPuE#MWa)w)N_J$ng-)u76<1e8v}u@gfY5mNra&(38ZgTkx*w z?`N;K&kY(ef7_8acQT;Nyr2*%2V)58iQLKv((6mf{`mUK-z{vlXi(pw ze@*%n18ieZ?t&W0qsT$Fg*o*U+bsgqNCL%04fWIK9Hy6uEGR^?45!7T7dJYsfIWb~ zXH>Ve|L`N+F6Dp5F`EBubWxSDAZ| z$K45E{!G*sM|7)Q>ubk9kK1%I_bB7GYV~6JJ{U?yLbpZqVyeL|PXGj!3I}9ks?3ig zeS`L&Jcr~G-UWlZ41moMF6Z z+ZUP@<2nh}A%bk2nY?;K&x9DX|`#Gqq`N>^-#S(T|7V^W2gi>6}%lUYvYMFRen z=$H^TL|VYQ^+LHg|(d`C96X|eypr?mz=n^0)muhr)zkkgAq!{sF-gq4T~MNr3j;n$^Llz0jtNncMAWkaHz zAsn|v2I^xG2Ptmr;;dGEYnO#ACcnj3Svt@RJA)x zg|Q-7HgK+u?hDvZqdVsWuQqkQ_m|q7dgVx>g*S zxupWD=w?{vmD1>K@Vg$(A(g+M=p(Qc1i(${^9AWoS7JrR*Dy_6#PZZ6MvhuK8FKP* zZNm`fyp&kAkHEx?bPuP3LiCL&=gM{S3S%Q9$Pne8>gb2%msv9*J#g2!C>*y|6b=}< z;&}NMy-|(?;ihVb6q|M?4#7et}|v;#p?_iF6P2dVkm-^X!Fo6qk! z9nYu4KPU4j%jEHa{#9xQDzZV&T^_i6F@Ng(fxY@qe{9BA#K)Oq4&EvJbugP-8^y)D z^coOB{BR|xTu5Go**Cl*@I~HwY0}n&S9KwLaz^~!sYvY4d#dv^tHSVUWfTx$=u_Qc zj@dD5WotLlS%4}6;_XG6Xp+N++-9ul)*K0a3UpO`|LGZao^O+ucVo%8&*dzZQuJZj zZ(MU25BUVT?pN0p?a<)c?j4dWmTCn3ZILlMvUW(x_FxVml$6P;Pu85*N59zy0@i!u`V{NmNI~?pu+wQfAt$545io~teT(Nd+t6C)^q7~h$8jhRVV6)x>eRcvmOcH z)QkZ#tCcxLo@g~aSNlbSwCYYtHZsl;)wY0)ds!Ow$k3I_ty`4@LqL$+ zlU;xC+K7kFX^V{#!up#)fkPZ~>iV=pC)B<~QzOzXl(cwSda_ey?%o*VAgl54{gUFp zt4oj9>K*s_z-81auNpt?6$Ps75AZX;W#F&4A%HAKm(8}x#x3^^S?4fEG1)m(osVzn z9<~aEtfl6r?WNX6-PF-^n@;_8&Q?NpUL0!jx_{5{G^jh9eHeJ89jsKV@lo^|`Dsb! z0*w^Rw*y}eIzvDvZJLkuB%6XYsP!phka~quUCK3BASBmyr_4Rmf6a2-{anqxz3&2hiu5&OW0I_Q>qM?4gi45kptY#5d&F2h`^ zX`lcD_KmC~&&ZfIs_|Ddn$HJtUP@S+w-O=&BTBPrvQ^^zxRjIlP@4clOnQsyj(O$9 zvHPO%VDOmE9h0l93Us4rSjU@O2Nw#{*8T|@8tBfE)}>$AKzbq(mTi#5i)u71E1!ZC zf(HKpCqWaPxlMwh&HV;?phQ!fS4|4)O^@xmac{WZx0#Tk8vF}Fe7u5D;Hu5h4phKV zd#g2_nLYNSb~+!0x%8twgi0TOZQkq0!HHoT{G;r4sAWRuVFh{-Q-u!(wzv?ntR<6z zed1cGK?cI~EjV_>F|8IOAFB#*fc|M3Qd|QjV%c=0Fj88hVZa6tk&@YEAqmY%>!TzS zh#iIk!4H?XK)wdPYcq19Se;^(l>%!(Sih2^gj|2|YYN#kUK}tjYly7s?2afOd0d-w zBo1^k@Jz1Yvduuk3<9PxzTv_Xt5{1ow)Ss*!&OTjqhH-i)!3r1tGa=~Wop|toWZZ! z@e9B{&>or!xA49VU-I{KR3mN_GI@?Zvcn>o5fsYLoM^-5->$1%$x`phB(fZRCtG#6 z7AdP_axLCTSJm$mVP-lTTBliGX8N6heBlz{Il7`0coJSqS+l(ysp8@q(>XJf=8tZj ztN%^}pfSCYxPU8 z6V!JR4QOh1+jhtj+FjNG>mle|vrH>G(>SqGB&!LTHc$#z+$)3ziXVS_hH7}O51Pjx zChvqwJ{P|($8PDT{vlOr?A4-X+mpp>6Sl8&LM962@n&Azeft6p?HYc%j*pCowbbA( z=KQbxy>8@yv4>^=ml%bm>7k4o^CRp_ZI)1a@J$MN894Iz=pb%6>lmzn0C{|tSYkgA@h2k zS}`w?L27h`nqhWuY0KoQ;FpiBaRp;XuE=UfskN!~(i2~FD&%BvTUV8}%(Du|)vwy} zA?=-yw8195aQn~s+zfnWE_(qEZ5U>4YirAeiXDpuU-o2C`q>4f7C^*F9{ zqHbwM=b`RfWbKB87sf6xLE#2mQ>QS(s$zX_hGH6(`IJ zmGzWx<`{3chT}ySpoOtROw{n8N({T05MMny9LlNJ?HTTlu{#`}`-459LIPn_=pL}HG%tEAa7oq>OqZOIfQ5Pak=#gY zYv-L-fdQOr1W88e{3G}9#Fc7SIh4~r{rMN_<6U$^2^X^S@sBcD3Q_*I-zhjl1=Yr#;%?nss8F6byrCe=>gI z784-Y2aCFYor@6R&geDdC?!|lRKVq0pBp}AMY2>8wlq?oTyOg0M`A>TC zvQNpY3NrQLOs6VQ+}jhTR3Sw$PW7gKV^lRbMOvcQ>iZ`4#Y9+edE=CGjs2SGYWVXH z-)PFzU$E@Sm;$Z=>7_r%Cy|`^uqAS^u@dg(oY}>uODaD#j&UWH%7TmE>xh;%!URPT z1S3SBsRfW9>hKU?8ae{5t0gZ4-}vdmS}$21_*X~Obkb?saXXgWebA2f?{tv5P3ZMX zIVMW&Q_f5+$ZXz#NVR6YQ;HP--s~`aDys>Hthg5q^U^=SV!m^gK*vvnG=0+~V3Ia3 zY|@c|gTWP`>8>0hHz4QAoX;0<+rZATUU5{j)8pmFrY?wUf-w{Bg5ff>T_sL}Z}5gV z#2n9Xjw15{yvfU`M{s5)s4oQ@y`8iAYcCQspB>+h-r?X}EyhbAL_j;^gH8dZ3cp_2 z`3)l`nNb&jlXH}xSIoxgH2Yas0H6O@J1gd|j{im6TLsqVe^V zj24(#G#4gLO_4?Tn|GjCtrS^5oW@v>7@OBUff<$!{5XE)j?sPX)B{V7cwOQ`_yeD9 zGw|l|@Bm(cPA~ei0!ec{;uK@Z!At0vTgy~AYtQtvXYr~7m%Rp-bPg%+LX{9iGce~J zXGa4G|CP1BBoK?B9G0A~G?O_Hj<32ySeV8?8Kx$CDpLse*Um^}~JipeL zW9G=}?58geCuPLkwzd)-SvXB%HxKI5w5KbEog8Nk-CcAS#$oKxNqT-iNulDqvPKk2 z6ytCb;yh+QHm-{IPK)7*M}r6G$DoB`8KWS^YyNPh7|m)2s;fvqkCvdEOpc)Bp)3s^ zVTr5E#EMMVE2@yA6OW6}d-haK;;V(8*wuToG$BZ`tCkuX;ZjVdm<26ULVG5B0r)e^ zq57B5$|Dyvzt~jSG|hoHK=1J7jQyy{&#b`s`VE3rwhUi1#H$NmFhpq%Uvy-vPFM@@ ziKMY^*+XxE1KUdg{2Zni$$(oD>?(=rr}mT5oEDL;#Ou#`wBWWT2E6Gl2*v0y1(#Z- zYkX@v*%BzQ#`~4?Hi_YpbX5T)e9u{%VJF`QE>sgyF+`Qsql>uPgr%ZkCalGyN-r3t zbeC@d8|{ObV#9%yG}q{>!G}BU2*;jyUyPHaoPWk+HF9}{Q(WmAgt8@uCcg-CQ4X>k zw;&mMlpP}}n-2@?JP7B4&gL_F&ubLp3Wi~#d;A`OAvxn`ACu5NQ}8{u1nso9)6NGE z8T>jV)t0awuV$|ZOC}|Fox4BLbA$cv><{R>3BB#mzl(@rM4+fzSRCe6q_#Fr&|Ld^ zlsRTp__%x?)gF}VzqQ#?y7jZU-PW4>+~{<}%i}b9brK6Fa@D-6=K)^HZ%kUWgN46C zC1-bR@cH@zB0fL3q=LSY)qWPMl^W>}b7L(WNeHxx2|_Jf|GN40blbk6WwJOgSu;r$ z70*f)qh|kI|CnmjngqZa8#=lPU3OkQr=GJ#VOTHER&R8~J-y=fz^s}s@AgX;5&II& z$VZ*Gh_rBaf#bW}65^E*EFt*3krB7kuBz9uZOg))_Cc5Z&R4a!s+Go_!SmDIil@kA zHH_doL-=u&;lS~OL_fMWff{Xj-2{hoO4G10)o91y9mv+a7@MXuN;WN{?rY~EOy~Ss z)2nqXzKz&wm_JPoT39i+5Kt3{YqkRKI*9jX~-hZ(~Ce%E6rfw%9dz zo=UW;IP%$(w-mMlief%s)*gSk^5jv8D05Az%KTWUsrDSs*EprqZV#vf3&3XZq znIcV*NaU{vCm3HKb~yUoO|ALyew)IJfujs$FjKSX{am9DWIQr$P61G^1&TudS;)^8 zKG1(Ym}Mur)pL71i{>*~2sJT4^-6@i?X}@<-;1D(^t=YVO7!0K?vGHQ@rk9}-vDwo zDoEzc-V_q;7|MLHI%6n7_Jo}W3@ODI)(Beqk|@FOQNLb3ptLe?DYN$N zbQ;OrIWQ>SexEovc@faLFlZ5MOiVczTr2i4hJk0#<)sktNMV8N={Y?<;9g%l&?4`CEwDLRfc*_h+msM^Q-{}wHJ*p2V zit};OTy--SfamPBh;M*xEIh^geKpD2vM;D63SqnH^sz*g;WRf^l!+)hSaJO1ElImn zIOF@??HgPeGVb?f#)RLGRsh4no&r92&oews)yn|unyjx1D z?i(}o8BOO0WJWYu`mofF0G$Y}D5h5Kd5W1rE{h@C#Vji(=5llgyR@hf?!^}!6!U^A z+~s9QFut4L$x;v}^q=g8-O{2Kftz7k_3i8A(H{gj$@XM+cY?f0_EdWpd6i#YbF-hZ zm7$g#O6B&?MXxD*lUa@=&cra~p}6mOz8iZFomumPh{FyIRt=z#b5t*(xP|7Wm5uvM^yZvm^tL zf$7@-13^P4C@4Rg&<%($G|c0meM`0TS=S=YFrn7Bhs_#YNgq79q2$(Yb8dUzwn_0; zq(qeipexCo(`RES_GkRDtU>9!P*n0qqDD(R^EM^YmVgtWyuUGKpU0xRa_CI|VjiFe zM5#lj@m(eL$wWYUeGwg>d2S734dhXOJ`0&kugp~2GvONDHNyk29dS*^IMXkCvK2!s z^8~VRMfqBYX&NF~7n@B{=W_GUIK083KtAL{$On6~8Yb_B&6Z?u(-eGt?uPFB?#wF4 z60O*261Zw+VHx;Vn`p?3@e$zA?MB0m@!PetmPyzN#CVT)A3w~>uj>_O8UEowf}vEM zWt(7@-tKYn;8Yvm41hO}&aOko|1SDzsPFe86a(?aG(ES0&Cv$2VBYr+r+xB>Heof> zsz6lSgN1TPA`CVeLILIwMm+-S4Yv~Dg~~iPVZUTE0G|+hYcO|L%=ut=_J}R2!TQBuv^O&ki31&S}EuImG-ca44LtedjQ6Hm99OyS3K#33~QL3W4jxi6FRGDZ2 z$|Y5%T++|XR25#E?gS}t`HS2*VNK`N4fqFGLgQ|vvM8ZeBBeg+m^#LA>ezOe-v!FY zj1npoQbigZrNVP*%3&2Iyt3xn>l>HTl10(kQi1KGnItQYU#TRNvl~8tkzY@dC-!&1 zkeek^MMy*_qfUH3-)EH$O4u!(Q3*V_rHVxH{4wizvZ#IcF%~e_a8rYBS6xC7)4e3$ zvy@Bo1=}0OaJoI*D*nsw^7~SWp4qP=YTslx?m7D;2HMipUj`2R@Hv;RZz-3P<|Lk{ z@!{_K^~CqtH?g6d$%mi zeyGfy`Vf<6P5w!As1E$()&vds*P#9a6;zP?G$0p>#0?F6;10~SUB4%q`H}nfFtH6i zU=wVghe6*PGK{)Mx&x6 z_>xcr;(??AA@E9+1BfAMbgr6})xW@ehB25P@@|4dj)k)q!&GML@ikUGkY%%fWisD~ zi{KSssREVbf>)f?XFeot;*+x-!S9rH@X1&`a_Rqamt~dl?0kjm0YdW3Lel-m~kFoIH~jr&yN?b(IBE9-! zfP0WuYX}iJi)mc&Tn3F315$TUzBz!vIjY0sg>R?BVfh82{X|rrt97OvdHw-&Dg$@E zo4~X)M{Qj)5g?hqFeFjt#xC1HcL&+Ivsme5Nnfg2kr#;7NpTdVS-n~DNE{vdiwWCv z0y2IuKqfZ-94RZW<*PXizbs$mO~TSf;cYRdyL05|*iYop#&`%4(5*p*v=xPie#F@$ z85gGI$@`sqj>ncf>aFJ8-ik-;GZ>HkR}k^+Clz`ho~gHy zM2F`?4Dx1k`7t$~rqBj{fS((;S>%zCh7Q9;UqorhQ9@FO`OD8FEb}$2&gKJ$0xT?8 znh;f!R%sGQ+C>oU(9TK5!{qZzNakI6aT^N;mZ#+TPsG;<8A>iyyL~Cz=|JT#VO)vO z!s9Va#i!;8IWYsxWWxzw;wXwWAO_Hmej2Q5U63TJrG0CVCvHFr zxcWjU-a4+^mxOdQcVwpIi0IQB%Rbh@Yi@2t@op2|(I_S7PL-m4J&``ph}~+>&=}EV z;g@zwgO{rdLxrUq+J+i3w|4k@7E{VErE@JIgT`%X7QyZfwy+hC_u=rk<}oEYS7M96 zDfLEv3X5mtU4?VX>_@XEf z*R<&c5TlMz?gbagJpsb-hR7KLX)h6>(lb1Wt7jVDEorTa!l~Gjq}zgO*d`aFC5ak< z|B$tw4kfWIgW~F`Z%f2p$cBt3@qSNvA;VQQm%cY!8Q3XdBvbIUZ|v>ZlmHrnQ`+fm zB8|pwQ@gsMJn5&Rnn-edd*onU+E5Br$asp+A_0mH)HR1$)J{~opevq6eosbzKX^eizU~>IU5520@B`#ZSSMA-JrGv@U!8NDSu~b z#ZAig(<22AVlSBAy1-MCLlVt@`=wr}zlNbTT(Qw`b!WAss$2p=?5UxC8#Qd$pI7n1 z1)JF3bUuErlyxR@*X3*07@pi{xjKf*5NggaQFsxHqnI#i=b!0F^Czp>v9gDixn!b4 zd>iJ&minH}P)B#uG!lT8C{RaKZ)?@}`%EtiOM+E;3T(uaM7vml0=lX4zMO^ZET6+A z7dz}k9SU%sQ$0Eg&lvX>EuG3vS^kk*F&5z@!yZK8Wxi9u%!EEm4x*cRdDvHKU@wO= zH7uh#Z{5SmX<~B9&y1@ecD3Olx+s$Q@C^*Fd1 zIY$Z+8LZ$Vd(ooi{R>kMPisD5@fX+C#$;{Vbo%eXjXr^sk2D)~=LWN@W{Q{8N^n1k z*c&G`9!^casmUxtzy+uKR`$PUJT4C--PL@0k=cLEy3{S#jd|pdlwADIg2n;`{BGVu z;)}&kO)tUb005a&fb7pjq4}834rB}{!SK!r0-62@CFoliVdDs1%Qo4J76%q;;R;HVq2NLLtDB@}K&43DcZq zgMkMRlG{ZL!RZ`TP+YXs>k^IWrXHCv^*9?uQ7a!gp?1Gs+G;B#F^4XjsJezLr(1^< zWrDyFk2PVgGCn(UWMCSWX2;QJE^Tv_y5v)i-k3rvw=vM|W(1SBgE2A}F% z)2^8h+s@ER^w%*GYk!4)?53q`l&N5i)<^7?{ z+(dA>e+C~U0_M?%zQfuO^3e4$Tb-~(f-bB1dXaesbLPYyZb%#fHneaVfn44Du@ndL z<*#NJ*N<_vOo?Y=wBe0477>tg-A%rCm&c`r=JxHSH7}oQK+M+rTmQ)ouhl~~{^n(O ztCqG;_lgVt(ETrG=hxcy_s(`r9-HjXx|^Pj;a*s=FVoq>_q&GO&%TCHabMFV(as0o zTfBarKkQm)ZQW<5Y*aq#YhCgjy0?0r487{VdNLMSCh9k6MPMAW9RMen9nu6|-_heB zH{2viVpSwIr#0NFHkfQ$G{rR|NH3MeHKWMhJZRqDuRV7J(P!ZW6Z@-fDoO-2-l)bq zZ-y^UXilo$EczX5sNAUbNo;;hdcND`)avgNqXLaTAA9MR=HOR z4rnafs|<|q*hsC`HHGwWSmLW}`^9zVG7+^AFpTL0rmrOnlr)^eTO6S{R@Xos`oSgF z-Y0CSnqorcCY#)%n1vvX-lmv^)#WWCYPy2kS^u_K#NoAy{Y1phH_dw=ztxW}R;O?= zxpZm5COM0GZ9cV3P8b;$wH=z%sGuk@J-15UYIJCBn~=xCCON6fDhbJZJmQ#3gc-M4;SSytdBQ3o`tfQo)+(Xb^PRq3A-pP7&S6LtT3_1guWM0plI}^1qN70b zJo3L+wklXO)hTdZNr)A}YOj#9Xl;?_x+Liu<`>xhiO@62ckBqEi#E#lWYqmMch3K= zjhuZD8HLi9vWyW8rGfn;@s1k!Mk(j42T=+Qhx~af<9x?I@zFp}>l7?nx)cO2sk?_n zCANCddnZJXT@iJ0Mn#{ky1beGKeFr1sH-b`gIq*ypqRrjKaif36&UD6QHdWsQkMC9 zahb)P3gL_Es;2``7;iVpY4no(ue>>*nZq zGjMW#ptZVKMBFgx#!EWgI5BC*-NgBbQET&1dY5{yD@s<#R{8WSJi0w`X$#j;?mm*g z6LES`yEAV5LHSbF#z5h&E`undtLAf3b=16ok3+RO&*df8pfsux-F*8rNHRrPVe z?D_D0sDh8Pca%cT(aXMg`-fDBN@&^a9_?w+fO3z8qU`TZldp!udHxgVMwhURPyTRS z1mKAF8YUBil7_Ts*bcqhb#aFDm2LGyw&^D-AwU@or$}4}h}xe{k zR|(P6a6*sb+g>V1DD_=vIKkjLfH9~&!MKH3dHw540NqGWz(g5BYr)BHDd6SLFSiB4 z6x9vm-OJwlG9gMmmP*c{=vM!q6`Vt!0uTQL{=hO`5!C-j$6r44YBgL%&~ozy z2ImRX0fPmG1K7Gp2u#nv!1+O@s{C{RFABZeH)TRVq)&(5pZ>Q#R$G&4HmqtP;&&WW0m)nAsm51h%YLMv+O^GCa&h6spmX)RB4oEk=sf0q`lD~1 z*_@BShU7h&Mz_%tgg@M}QT@1Kadh!`W->3-+~x7i!8A30TkCN$q}|+h{HXkae75ZK z)Z((qnO>CXM1!5ke4SU2>XM~nwAb0nKG8X7NqTjrc{c3C*HTB`iR9~DR9cuVV{t60 zjU$Gr-=H8bG`xQ5ZcIgYis%xT3m1`T}>MFiW*BYv`zMZv-^+7DbD;2o5?%x$ z4S6B;wLl7DJn}*9Zi?X}+O0n-|D1>=qCOPA-bNb2p^!9;RyO7kn-f!?X{bLCr!?PD zcOXe*zOUd=j6cAkP_&HRi-FF~F69xkmr@(cBF06;$R*QCB?elpW*qIPmo}5gq1b=V zf#PoJVm%T2ua-~5{;lN(%1hJE`JvF=E9STb7I21i>r$nj*Z59&ko!v?)BI9l5U}vVQ$FuT3kFW6sZ9Q0+h* ze(6yBD08EcLF``zWfJ>aL5Gc^69#>SS;fHmqm?FN^TrOu&jl>^aVXk$>d~~XpTnzC zh_}Ci?dkxngCvafAPBVk44}X8y1Nb=_L2)4#G&Z3kN%FIWd@XGJ`h()av<@VCzj!| zj4p^H&0-N#lu(*ZBW5w5iY0115dXlCc}ZP$AZd0iJmZ+V29X640BGK^y~=?&WD&G> zDlv;zHgT?t^U@H`f3_c-f7?$yhaws{$_frN9G5H*7s_~TP zzLyQDSUl(EVuZTk^QsVP^D*+VV^#4Zu+A3?m#6Hjw$l#Fb)TZzGZd<1ZR3?XstFC} zL6s!!9N4>)ZH7(;6h&KM}EZWz{C`}~hByEHJx^ikw=OFd*s+O@jSVun{9_h^&# zV>R`rGno1$ZM#Hcbf87FmDOMf`_DS%LoX_-Gy<7{10Xr7SK8 zcse=Ghc}A1^_RnmbqX_Ax4GIwx$Uim*EIaigN>T^m(J;x^nN~uON38$;HQG>#~1qw z2&eE4bdxz->yPQ)TZFDozI4S|E(9g@q9n(I+xYEg_wT_SANFT9uVO?xvZnQ-km_BY zuSng6NfY5?TuYimn0C~!^H|re_1|A)Ht81DuAAd^TmS`28L@X* z6+d|9)#s!*CETy?hYON*_$1sVq~mpnfcHq{+@Vn=s!O?#jaejKPV(7kv63IYeJ4-T zS&o^%ws6ebF@6_sB|6ha{;C$(i>lv)Y=VCGElF!y?x#HmpT1xHn}PSvoaOUU)M%ZK zi8w?>QP9vbgA`Ik;ZO?Q$R@fGa6$u1VV4ai4E2#M%n+e zh_4Otb^ULPc-3`v_y2OcJjLqHQtv`U+*sbq%Jh0aU)*Ecsl(2&+5Hv4=kvLr7@%n~ zyUFH_1JF=eftNiD18AubKsHb0z0W+IOIfNIv$1EA$vUX`;jA-8JQ(g4(^RS?Zv1h~ zVxLrju>Unqz1np>p14>xX7h_vF5{pKjHAUE?c6pBzoSjP|nftX%uA zd+)ltmhJy-;PR8kf7{Y-=}8A@`}98weFEFm)G}nF2R8@K_DtqQpxL+~(NS zaBG3T;XoUnS+lj=4;;W$wVu-BXD+L1BTcY9x_?!N@q2_e1Tq-6xCKW?d1e3VbqN2f zhPAe%h~`qp>>^>LHE!QeXrv)ZUwT!LK!#V9pAAmPN!Ho{s+#D9vx_R~O->3})|rxN zysDbTaiqT&7Fo=joMM4*$amH}O!8)R)J({666h{yU@aIysq)-i?J8#?vtLD1l|+4I#Jt5RR^u9H^Id)ITASHq zQ`L&3ri-5YP-4?X4>K8+wRT^86Kw=&SVbi`aHnc;QZTlDZ@pey2jZwbyU1eN-~?r; z8A7iL7FY{I5Qz$+KjDpvX007)thto4uqa~Q;G_bCJwX(Ra#75}Vrc=iQKOSgnzeR; zs^(J3#$sz>cGSkAh-H)0r0Qzh-#|AwK^AeSo1da&H8`omi5pqtVmN02eWA2G&Bj6x z0lIS(-c-erUnzvK#u-?PLJ+9}qF(_5W%y8DV|GeJz1H@%vWZqQzp}i}>NJn}ud`ki zO|m~^2+Auh=d4bN8duvy&zq)b-mT7>Xf^69Et~#^H_NWDl8b(FR8lkfs-SY*fS<_n z^lt}Yt*xxC`MKWq=$2m@QRS-f`zW03OIQ^KF|%nTGSUzOSl>@Kq@l6^dR3gj+EwMB zk;p{U!%*-VhJoZ!41$UK7=)6BkvVY(nJm8Y5=_%r{3QjgrU(Q?jbD+XR>7hE0uPBa zn+6_gLIoZQ4&bhmrbCdfZ)NOcr++Uvks}J+T+zmsBl=HECK34m-r?Lxoq{q0n-#}F zQ<}D&TU2cZF^j1bV#3H*VB>%oNPppjG}MXM*K%1}lR_-=b1D|A;Xqsg%b|dBoI^1I zxat3x{MR~|{A(Q?rZb2|EGA>I8V|+)rs8yL9?PNlr0U;h!R=oUX5#R-$$61j_&;cE z+%t(k5kHP-Zcm0FqnKP*_cKk^PB{U=ORq6I7oH?mtGQUL?OxZCIFMlG1vB37r$ott zCX<;1#92;@bI|&R$4Sgfk(IG$x>-CIQ)l`B&kehWsWd*%$rfm_?FRg(^W%p1Jj>2w z*Q3Y7?Rosb{PgF_Ez3v9&qG~2uj}N==LViMc=X#}j4PJM-Y;au^|7DF*|?dLnoZTm zkjKef*DkXV%v9!LPwNN=5|(+Et2=2v(Nod9od*?%Yo!i;1&Uk02>z4NB@TD4omaIy$)OU4r6kn zBerGxod+*r>(h#j%GRao&3lxiEJ<>r-RFhLMz>bIO_!DG9c*jvx-nsgJ~)cV&0iN;k=cF6`cF8YGb1%!gPf-D-ANYEjYG5Wg`20NUygR1<|R+| z8kMQlZLtVUE6h}*qcd%mE$O~G9ELn~KXH`5UpK%M?Qq^dJ{KIHr}Ak{yszZo2huq3 zs5#|F(CYqLeB(^1%d?TFn$x(0+-Pu%`Y_{tc+Ee`7VRFcGA5Z0BHdNzbCx;Uk5qV4 z*2-5p#uBxU+PF4r!tmZC-MLS~c2bjBwg6cZHyChyo3W&kqr0;(nX7Bmu1+a>4hn7v zUg_22hIwzseROgx+$R)v+&+k75Sd`Vbml7xNSwDgCpErlb#IhyU41mWd;GB&eIXNSB((&eOLTRoPLw>BEX-?(zbK3^*vXM>Ut=pcPZLe=3 zR4G>}ZDQ0hvRn$w+X8K|S`cN~4irNgGV>lU;W)_QNq4ZACigs;$D_ia6V1Sy&k%{c zvwaN|O|`U84ubqS>5B0#%hi%>Q`lIg$~rfEW9MT&rStYo`I54>O@JfOJo!1_T}d`k zvRSkb36JoWBhYqI5@Tq3)T!AS%6_Nz`ZSZ~&L-z~IiX9sZN|Wi9;xqF8Hptysj~bgjaLV>w+dR}n<2KCScUe9136l6OJq_d)t%UIMBZ?ICxY z7UcuSPZZ9Sn_c?(W=ldU98q{hv)k4Y94c#2D%uZ3N@Y#RWvr*)R+4foLU`3&noMK* zV7TT$Wn*Zo8yi8XgJl?-jtNy;#?^H#e0c^yd@59Qe^7Oxsy-bhhmRFuY_R?&JIxCH zm1k+iJ8=D$NOTcaUg+JbbCTR`-i_g>OL^2g_2C|nDLKop3wIu`OIa4eGqQ|VkzAji zbn0i1s8YLz(_gE>84~k-F5Q3wAhmnrgLC&_)KW1^c563eECWq@+Ko(`UGwKA>U*+Z zEst^UJ~jm{xc#(p?VA5MR^Pru&>ak|B~&t<#o}6gbh6Wn(E}sx>3S;;F=k{k-RZ$i zlxGKAx`AXe0I5&2<`zZ@oQg9&r@0+wBB~ zg^Pz8H=^Nid>adLh8nd?A%5^1CO?MjMf)KL`u*-4VJ1B#AXK+)mohajWMmrw^{U#0 zD*GB)lBU-XsG1)jfA8#}EQ6#p6g^)_PapnHQ#}*U?4B~jwb_)S1RTrdKCNRUxd4)T zlEWLzh{>e=qJ;}n=8UO?8lfV_qNqZt3L$EzMXXY2pu)c!*i3Vvd`_h7rANnDXn~%4 z(h$sCEog3B7JS#r`Ar$VRly0O(y?r+S$YBWOu3knK0Jc6PQsW4s7~ykI^mL+fxqgI za!;7n_Ez9Z_z!L)KrCW@$oE3sHzFiSel5PM1z^Kea)vG_fYS?Wm&@74B<)+zL8?uw zipdO>=eza6BsJz?vs6WIBGq^J)v{P>;dT<5xPjZ#sGK$Z#AWd-5pPDFqiV4t(sE`$ zN*vRuJ&IqMY_X!~H72(dv90@4r?m(}-^8_+IWk&6Gkt*j>!B)G8i`idj z+q~$))Nk#;v_2rd_4AU(poOo=swFJ8t9COfVH?b_y?NgkCIQH^M_|y2as&~OXAr*w z6-H)|<>1=`!!AFoRCt#kIgb0IB@#mUvlgh4A0qOc0T};6P;h&>e z+Q8BhON74Y{$(ifbLdNV+g(*?)s(S&U-G6&Z3&fWdyj^MSfWUGpEJ#XGdS?EwML}1 z^Ti6ak5G(s-qe2TqPkYPlO3^vqs}&TCup$&5JL|ow&cGHd)t2rz}mOpCFl;3Y#li6 zf^#Riamsl&>X~h~qToNi+_2r8zua>FVu-$d zlTXRf$&q|aX937&q-9I|!-z)5SN~5>oW%=2AW3$nikLbrs76*b`~)HU8lB`VFT zEmUr;?qaMel|t)fJ~Csex%gxBp1(Dia@;%Un5dWlqe#$QL_7#5RPSfwNn&Kt(d#KZ zmymr7M_euc*sqhqS}Qn+$P!JuP~(0wesd*IY?`Zxj`f*kWRtQbdqu&-ME?=uBs@{` z4^BKO%u4v5)`cNQzyl3?ddPTk=8lJW)%P?KqMgYxJgiY=@0vRBq9Lv#*UMI^UyPe_je2c zbQ}FYl9+(21ZCQk=mKM`;8uXvlzg%6WNUk(0-8Cbx%MTI{rK{d71lWyuyx) zVY@TV-5Bhee)!x_ZXSPEkN@sJ6WD}Ru3~WA5yD^C4_Yi-!h94@J(4pgPb{zXO}UL4 zOoUR|_ZmU{OE}FA5iUVTF;KCe0XXz`TcEjMgJ1jZG**j1U;=8k zk3`^N>WUs7=)?}|3o=wu>Y%mE0@_Y&%Va|e&A|Aeb&u=XL<%i>GiV>~{aL#nr~OID zF=eS1J+9kh$%;|F*2gpD`$E(K0xWhh=^y|Rf7E;ATGdS=OQ%=UsVkdep+&&)p zr&RZcOr{O~8?{M?ABn}%Y`@=BZvB((Q`t9iitkf(h8$&BiiGT5elQgQ={Dl3%V5~1 zoDmK6S^AG#Kru@oIz`0KH?oqcgg?H41su3CzzcY!D9poyg$Xz3jex)8tMm-1G*M34XhKA_4 z2Bj?cBQXN9&6-61>{^kwQG6*^?mj*874EfV4Q(}5Aca@2o|_{3JN``Z3%#Lxj{FXU=SU>SPQ0rCyU|ySONQ(L*gjGy{wHCc zSK1Uj0%;$4V3xZ3(tC|bwJK+97RueL58YK+NQdm)ar{rJ(WNkG)5<~y@|FG7)eZ&7 z{>#Hnk(7@L9ShefM?Jb8si8ah#xLeTA{r+V(4ZFshSw~}TUCFkZUYa6r;Y-Ke1h^t z04^!3vJbngvX59G-I!i8D0#dBY-r7>35G6N9RjKuh?xN@9*5mP-Ctj#GuRC{a1yov z&ipfSIJN7M$3KK~ZAH)Nt=?zFL4kh6!%;tJfZX+GeW8F` zv@!W3)AjXZXsr0x%tJmaxR2pJ*^K};{ia7Fgmum@#P40zz}O04+pmW@BTXeZU{c0*|{-j9;+3+!UoDhhAMerHf&K_1Wh?tU4&WSCiNW(hInV z0Yb~3nKfgo@Idhx>~Jc!tiC>w4dv9NPCbAaI;;v>u7dkF$E#AH)WCow{(Ef$R#m&f zJh^-N2vizig6F<|;?)Paw!Zr4b=U%9eer>hg^ zOQxbV7zSM4rZKE5ea`J=O1+K{&lFkqCKx1M#py2CqBSVM@Ly1xk&EP9DU!nhxG%~+ zBPkdEDpfX+!N9s5`55^R8~!J)zeKzskk%y!R+0^Yl#db}XCSFw*2F4{Baf>rIOgPe zH<;>i%v(J<^*VG@_Ql8d0ib=liR$*s5y-Alj#YCW>1ZT-H- zRG#sAz#WMeyeK}8f{XrX8+{UXqiKW-eY>Sl&1A?@WD^|Q!;l{I%hBj9dYSlOm z%t$>~0Ri~2AJ$I65YPN&I_+EMY7LZT!N2iQJ&b3U<@X3W3$J*D zKMG(SsgG=udvsUviWekt?XV})y%$Usk$qW(?89Fs)%E$U*M0WAsFlh$du1i0@i`#S z&6p@_4=2ILJ!HZ!fAy_*wXFxd{SRLv$M08g?9tziF{qaT^Z3i+RTW-!qr4?E$Po?1 zS>YRyqb@s2s>%;=pzpIyUXMSX@ZI{k#HTN0ItVzpub7g*(4sVsNy9-;>9yh&v+pXxV$oDJJux^U>f{k^^^Dc^`%_Dqp+k{_@ zk(;_4mOh;nBpt|%n!Iae9}2K%Q?8u2d@GfEK5Fqi*ATfcO>yN(MEJzQe-`xfwCvS{ zV|W+*sZsNbr76Frs4wlu1reqzLq^(<`~VeV%|@76R~k!-Xo$c=N!lzS)sSxwk$+9< z2fOY1v{As^Aw{CQgBX|$#u{Z6`rH6+N?d58tdJk=B2ELu4u7&l>fq-g@RlLKfpO#V zZGk*O&?|ApFZduh1yAF{xIPI8Q|?o^Ks;)HIk!7Nv|4!c>&)64hi3A*;+N_YKIj4e zpH-V)86zZ&k1vjc{`B`t@NLB3;B;pk>0gxpeDr{U<%=XmZpo8l`eZ&r#(2hE$G(Ca zA#h(y42fMJ{-$+RO$8TW-j7waHn+7F`6Cg2M@qOPrygNd7G5PyKJ+AwmHbQi&G1r~6aUHH| zxc!aL%|;>lh(L*<-Kg_ViZP_#q$*TWyfBF6Z8V7cp4NjZw|Xiv(n@xi*Sztvg6U&g$5o$+^FxV5XZB8O}$Rk7g~3cayN@)9ffT_j*R?ySZ%7 zf41a6=4QG#V=wKF?XVd{kM9j+xWI)V&LzY8 z`Hi~5I|C#N+lEmL2NwK~W(;rD8J-E6VVdA1abbngZPH<<$y){xI)t;Ywd|Sv{ zx4w3{o?6ZO%}$o#eHP0!jtJwDcx`lPOq_M!U|jq2e9EOu9_OFemM zL%mS5q4k$Ri1)t##fDDv@y3aEfA<&DL@9N1?I9yiBe=xhGBq!biOJI0Z^qv==}R2= zD0W)6X(kiOA5A3d#D#F@Svmysh^TRAHKZ)qVBDIjwg-{YQ4R$9u9kROycGu|SEbtg ze`q(&7)zexfEwiR6pamdBM~^RYz5Z|%Mn(;P@#_~G5BnQA(E1kQ1^(N>};#1q=4lA z2^ly=9@%wjKqZX}bo*WN$-b&~O$qKBHY}YOhW;HyntLU!&LU^}m$(m=`$H0F2r@$L z(Up}4Ndg?)alT_050vCkprZ`>gcXHYHh9kTE*WKE7P$PSy>=cYL|bNJRL?@Q$nRnU zXVR{A9w^l|^{($RDhBnDu#De)s-nUYFK7c2)!-zJXyS*j+^s{`bA%D&o+6rY(J+TV z_`=a^<+!<^EMCx*W?Y( z@r=*Zx-_nHPo_iiJkOcy<}0P!t3_lVrc9aK<+I;<_|k_^M)&qM#pG^>)-DCkFBjM! zBlfI%+_vVa_(>GNv!0!SEisi(#VF75;wXTE>s@0j9Q|YL5zk<{`EqgFuKT9GZBNPi zWqG}N*Ty*0o?Cp%H)i9zdK<_{aK&9{f`+eUKK!YqsW z?fEk>pCE&!Yb4oPy~_h7+UB5nn|vxFQ+TdTvt%??TF72ybxDOot$FvDyJ|EulFYjp zcipzD%tT9tSvjAhwCd?>t(vmFiZtMZ`(-w55MTTr!<;7>yLv>L>V{P(RweiFY~z~T zY#4P#;D+L*_!H56uifJTy$Hf}wNh0(W|baE`4d?J2P|g)59NHEYO!kNOC4jFz#<3m zu*+@x?k;CIXcuPP20^g+v$N&;-NtQm?Bw>Jd?g|+s_pNbYhFCPH{uNg+^CoaPmSUC zl)n4uOfR`dRM#E;<>6%f91GV0GC4iM^ZKyZO(_1IQIwP8NMLFEU2>?*&!EXEj2)&% zOlv8jhhC9;57)wOd znI~nb{x-49aVip~&ydfXm;_Fl>YG+!3r`rUIMOPw_mzpvk}nU{+9bFxZUWLI(~lsB5VkoR;+lEs_t8C$iB2FV zC&v&8mP8yTzflq+`*Xf3ed0rKVw(~?R3~9ZrIK&@%6y$s^WfC`Y5ofqCt(+h%)ZZ( zv3KQ5*P1f}mSy&ex&1bQk|jfPzk`IglOa!a5?CZpYIx&2cZs96cg)=M-7#?x|M7fr zpBwS|@?~YjDqReOK zIE2*bMdf`sHD_)jr~HK`*={YVSRcw7Y3qDO#7)PZNs-^0Cb3irSk!gUC$Z*dpMKr> z$eSGT3|RU4QT;3{=)Z+cAgJ7;_38ZZ<3CYCm9Yw{k1@8pcT$d80W|JrKrQHe!% z%_gAbS{v+GSVMjcZq6s%)f&6d)n);gm5qltrA&(RnEGI_vi7L*J0k0ycGN?E%GN&^RMRuO<<0~xA>tI^JI@X3wpDjpJ@_V0{j4P?KcX;zVyY_odQ}$Se z^&Sl8HH=>5#eEG)=&*;IL&mh zfNp<>81|@vk2(Lw*FQf8^D@gy;m&_%e{`=l z7vLC(rlDw6G$C%VI_Z{0kbHvF-^4%-7a)`po)@j&uGksf#~gf7N}D7Ul~dhsY$r8^ zx(&~EZ)RAc6xx+sfXhiRYa0r3V-K|LO0j#>TN20)kCdnR?z_8NcAeg>8zvPWWSE;Y zF?Go{bTl-3^8}tj3mhDwz2OX;FsE}EHBo(SJXc_yw&BQT{&>vGMr}3D3jY<1-TdWF z3`LK`+e(61+*Xk*s_VG`GfFf7mKGa!;8w>aPcH~>_M;-eupP)5^`IZVFG5oO00-CUJ#YA zelX#g5VB~53QFZWGr99!wU7K%zx6>m32hxo8eP8u{$9)vh+Rf%-d$TZh%xa~6#e7( z_YW4Sj-`S7bCozku7S@>G<77jRxw^kkvKQD1<2RsTl{CX+$@il!-9LUH(j=CtVi}G zB5kuT6-3JhSWUKG#Q5$a8tGo!TDklBQoI5U7Q-Q(axCqhH1axv5|m?ihlyEmT#`ES zI!_#wo^O!+?10GlC$=$^>`0sMLz>y1;Pn}%p|WA&)M9tsMfH<$LKcS{j1(2Oex7WR zUh);rysO27R5&&YdHR~Z&WlhxYI7oa-(tf~MYoB=nH@pb1Z$FNJ%hWw_UPFEFQ&dR zNR%E}du`h~YumPM+cwVHwr$(CZTqZk@7{gC`s&vGGu54B(wRyslTPEgqZdWVS20Lq zbBJF`v_m|g<9%bgQ>Z%5l{m>|fOg`Oo2P^!Qh{i-yfG@<;IthJVwsUsNB`jG)cS$a zO%yU1J|*eydHhQVQFV(Q!9W&s35aTup^MFQ8QY+*^12TOab#KsF_0#vksGiMPT`;a zF~fpaw%SCDGGyhOTQxXM6{5+XcS-y($S$U_-y8Ic8F_MN|NSR`ky&P89i~{JPLP+V z_r{ zu0gE8PxThqcbJcVz6aGJ4>5Pgu|fTmfwRuB;Zu6#wGYf0e=80(Sj2t`9x{~BR~*<) zBl%zm%pG(N4Zf*okb+e@xS{Ka7Ty4DfEdWosZu(3gc{vHoER@tDft8UC%hb(CIw2E zSjWgjpcD;@%1)n3KUgqeD1Fyup)IBRQu#JnYWqw>%w32CvwI?vLQ(!YAr_~o;gIkNC)kxGFKre9<@;x#8b+V~SXObP;{LLBvJ z!B-m)dw;jBZ{l(r*w>H&fQ=2d-Zr;!^%=Ce&^HUX62*UDNog~vNIjA5Em zNQ_Y}a1p;jAYFK_yS7kaxfg-1VX)S#2$@TDf3h4{ezxG_$Kheh@!zj6r6DZSS(Wn%-$wUN1v zGZO@00sh{6O?K0ZzF;S#)7#S)LSwLlx%(PQp4cz=37j)`Zcl&shqmi;WP<_+?bVZT zc=02~EvO-)GeVt2P`Nn5#Uu+%`$?+oie^K*MrW!`A7KCNEkpc_*wM5QH4%9?ZC&Vr z>S|HoqtDMK7(c&{Z*bE zsq1VNtd8?sv@pSuM21@kQ^OjGx-U^p2T9u_r0^M#HruGiKLx?uE@V4J!hFQR9B(U; ztja=o?rnQN zA!1QYGhd^6&|eSv0PEdPRnbjRveAU^!i000=R^sl2Ta#u@nDF4okk4dDj~mpj$oCW z|NR1XZt!YsS3nF)Z|;c^Dm}j4u)oa^tH==F>PF_Bx_-hp&D8;;jvLds3?9HtBi_!Q3 z$&T{$*iOm*K3=Gz|H=eEl>fSn>_9$sXO0X{e0w_1^)rMN!|}NkGo0dy!A#{eMFhJ! z8%Uh-%#CEIHCf!slYM66y7!N9E9V%dl^U6~_cA&|FU17y%xERkFy*Lmb+$CwB*g^9 z%FG!at3WPF#cGm8%CXIe{ZyJwYT>mXF1SXymKdCL^TJ~0S&}haopb}a2gz6yQr0dC zq?9;Y%g36T425KzT7%K^!6QLBCmphg#ffPAkZn*%?_4-bn5*!}V%A*3X`Mye*~GDk zV+a;JdK||Bs}>eE`z`AaeE7CALAq<2PE8&ovFoLc1yN=NzcCjKIB%;Nt{%`hs-H>L zCKeM>(28{?BrST^PAKI=)$`fG4Z)vM)!JO?M`kY4PvKqUET_ns02Bfa>bsxm2}>}N zxUs#d_I?LdL?}i$Vf{ny8|#tm!!wOsQ?~suTk##Imk0gWznT&uf!b0pOMN;rhW}DO zYP_)++!G{osVH?M_xzFD^mP${Xd3^iSFs~HBI$c*pS%I$#_7Q|KE!-7n@*=iLX-3d zF9vCK9bMpC6J1B3jz&Kj3(1&&;+#KC6M$1mI9Xw$g?M11q2Ij|%?{f9^?e)fWgWX2 zzi6gI*L9M8@IIaRR0H(76go`&Wi{ScgS zxoAf6r~Or1QVG+K6OQUHrwJ8ls#!*%L$x2iku1=3F;_P#Cf7A1m)i}ZXhg*PJ2W&D zWAN!sm=l%V9s(icoSRnsQ_%$wYn+#7nW}K)e2Zf9EEu1@#tI8rBINUd*GGJ!&f932 z#dPs$h7nR_A4Ply$GLO>n>NbXrEdjK4O-7rW^rI{plkw!l;eJSiJwBo;8yH8QvJMj z-U@cq@3rq^QtRRp$je!B8QDpoI zm09312qX##=z^47l7z;h5}4yG9z02yM4+D35t6HG&1X~vnmC08{6E9KM|O$RA+%Su z$Lhq$(TWx~b4FMZ{2XV&1@mt1`4PH|!TmZTJ*XOr}``eZ8+)$;O|;l^6xkY)=xex2Cb|C zEd-q^v_gn&K^3y9#=Y85!~)Q&P!2w$R75Sup~+d6g{V}STw3s(ze+)pu8o9Li38h; z!b;iHcey+(O?$T%^@hETix1$>R@KpzX-nZPi)l`40K`$o|OD0!Ey$Ecnqh#(%}sq+lm!r92#P^+86j#0L>%v{zQZ`v(|o0-l0{0}A9^=NQGW zZ9trWIFd>aE)YxI6E!bHP1mFDdqR$2=s~KT+uVypjX$rrhya3i3+i~eGmjtU7R4ea z(O=$E5J_z859??ICmF(0{3&FRk&{{jheNe-OKLEZ06VFc3VM+7{1tPI;9sA4RewRu zaNH(-mGm#7HQRNIY5kwEINwDzgtc(9A1HGtPVL7_D-}-+u+?&VXn!WN$1HJ?DDr?UO(?-Cr~M=2 z)dF4KMT*^?}Oj!rxCYbA_uQ=U0xU0Yq?uMJ^{>t^iO}V*~Sd zUTnT6@P2~^O)9Llls^tI*^GTLbso^Q2ojlvv&^@bVSv1?IK~eeE$~sOK4QLBsr54z z|D-};;QD;4`~$qcg3B`o^jN;{D~PeJ1X$feKKL7F%5S)2id2|=6<7%+>;^AbUHQE> ztt%ca0v|&kZkn@x6{(db0|PTokQ%UBg9&D$C{_eMX$eG+bTrtv;RS}FNyZu4-wxBx z_yag}0Wv_}l_QSp~DlDHvjq#J~tq2q!N< zkdvf`7s3JN%AfWwzzq=+j$ptp6XiYxi4wqMq$(5gyEy1o7-&B+fddAsQ*zORWOZY)4@r zsh2uvjOvmI*OE7eh5)Z7h0y`>WZ?k`x;8?A>Cr5HckkT7QYd4JH1IQPuZz`=(_LmQ zJ%F7)WHJ|FAFtY&#r54vA>3VyIltwu1$z*!NZfJD^Ri|nNvq&eoN6FcLw)Vp*Hw5h z7%9~1LCyqGUnr}%!AjHp?U;SClb*M!%?s@1gxy%`=XUG zoFSxyn{ni!1$EJKiM2dVXL-i7U9yyB}wG1lj8c*gj`o&nmx z>)$N5A`Ji#z>M{KApk=W4CU==kJqYfDvF6yP8?x1UX<`ZuxQm_{+u9+ zSCLEea-oSiZZsRnu8wOI!q{|C-6M~}L%%0S^AodUMBto`>wQFg>dyj5h=aN8WLMN#O5bc!u?{iajbRmm>vorGWp1Fcw9^%Q!8 z?%3RAC`}U)PeVXj3;u*s1)XNXc(A&E1N5!JtRK}9Zd-#%l?8o_kLu$fal+!7lM|Rm z(I$YOUfGk-3~XLUUu&d=*SePwMRMBBDLhhC(}13n;g|UV3=1~Bstp-GUE} zr68P6PA%D}Z*L-p-C3dvewO4>;)y4{%)-8Z;O%y8`^@(H=Loj#N)oAD-hqh~UxAP= zb6wX)uu2ejpoO)b@+K&&f7 zJX1Ts9UY)1k$yv!{sPRTevXvF*)4(|dKm5l$%;?;8(9s(iZ932YB9b=?*QdBIL=P{ zyy({?0fbsTkQ|VtYFsM)7R0WGiVb-m8t z<|OyU-tug(cuaiE3Is|L`2lv6zk2!|-wbBb`9XJKk-k|mQs0ITyg*vd^4oLOrQUDP zS5ye_ru^$W#ceny&^yk@P+qI+?5VziGBcTUL1mtG|gTC*@fOmHz^Qx8IXFa7=iQ8|T0VcqUGYD_+m~OX-_; zADm8WkWVk8$3!sc`aHhKQ`(_~|3jmw?17If_buLZ49}8!mKMB_&ir0PQ2y7+MD#@G zEPTGa9uvduCi;hv#{~kJm14B#gePIfPA(!-|6en*Jk}H4^e?{N?Dk{1m+cP?mCPWs z7yIwPRp_)TRJ;7_u)-H4bzmnBcG}512l3*`UWg>d1RT8=^f@z;k;LpJHWLp@Jkf;H zxEY;FT-JPGpd(}>GmT?n`US@Skio_ulLRw}@+2b^88Gs|hGz^fbX6+}nnQ&lvO?hU%QS)Z0x744Wv2n#D{mz$$@xRJDKZca2Fn)1$$Y@cdO? z2)xI69Xe5~jWNj@ReZnV@J}rJi-RT!^;4AxXyUT#Fn|W{@^yXp^ev)(PYg!Sh)W{% z3Z)R!AYor>l67+z2KSShM1F+ljgQ6@ZgZAWYb?E0pIQ=EcwPTZXV$n)6y0(3wfC?2 z27QGlI_IkGO8EF)cC57AIj$#VD;eNrQJ9!gWaniPM_Nu}vd*4%@IdN#PfmiA(4mla zei(`FpgEEcOol}lFkLHc3SUCh_&eeJL{_HczteLg9-I^vA2rFpU^2H1vJZ0%*UEY)&L54>1@JoO_Ryk6yzKZ=J6n*BgpfRlzH zG=ez;-%*6J$w;Ky2TFLhnv~KZOL$~Fl0`)Yip;O~rMeo4Ln2rrRKddO6@R*uV@Y8_SctZjM$HH_L0o+MM3JvH2-DlZ3A z#CKZFi;B4&0E#d?y9YVA-zVuf<9OTjSwllnr}&ujb7=UymjFBgPKb%8w;wnN8p86Y9-k`c_teEsMnmm;MQXz$!1`JeHF$Yz2P`X^t_Vj(zICfeqxDvNM#7w@fYB1!7DVt z5WRaiDCp&xO|6u5@IqOHJiBlGJTlt)$?=CmSEr~Nx{vw*Oq%;Vn z2;xv)SyLP#CQEQmvwnn2jNb9bkxPMhd+#%p%BnYWsIlsGi~<*J+=8V)(*mQ2TYWcT@-L@&}& z8CUPi5y!V}3)Q1*a$+0=Nev#Yc zHnx-*w^yc-k^((;M>z27ZuI^31R*6+C0k8nJaA-hFSPaM&0xon%sv1$tb$#A?2a`afiyX-G z$`$DJ`G)dbRn0WWFQNTQ(ELY4=V|DCY)FIuvi~)x{$;fwGnSkGYf$}PNp@a(53~T2 z_wSJ3Ye1$Sz3G01M*kM#|1#aE%!@CwzcOP3MBiHmfW^p9RNeO=j<%rSaq_dY_Wl1P zIZ<)j2RYgXgU6`P{5}+9ng@VOqtNi!jhb%zFe~7mrK>+)Lk%IwtU39RiU>z;-5+d^ zISV!PLnb3Xh{aPUxt*|c+v#{S;o;m;GKlzg6&nn#j@MtXCWi^NFQ;L+>xYh~2G)nK zrv$WZW(jx`PtXQV-kStJ1&?Fy*c_jtekzKCUri#bL7QLNU7JWIR>e00}VuYEAp$?OF=}X*xqtOSYIJs3+OX#@Dc73KGXw`sRgmtGd>T>$? z7ks*FUo@ieHp^wxX zfN*CT&cOdQ1p94hz&@Ywo2`-xO&6I)9Ydx`cb`$=4G9fdg>Iit;ST8-X}KnN!w*Tl zO)}6jwJr&4nf8cG;R;E2A#a1^Z;?Q=l)LzE#eHm<>vp*p8wgs>JOK&xpm|(UvYN0a z8tps*1GKMsTt+Yxv-r#eG7*myleqpq(3O=Z-qX*K_iP)5YpKu2ZI}7h+J_nC z*Z!R_!-UO3@hdsr4W->h;NZy(R_w)v+l!?ixG zua_XFx#6Y~%kxXZp*Z6)7s-0Lh0uhQd3i!Nl9MyPR7*U6<3S=ST2{Z;o~5RNYwjf` ztr0nEdlCO+k)qzu%<2a-p!}iPP+8OyYcv7fz6xNJ8U7L@L?CifUBBXF?7p7lJa*zT z>2jgez^=1zPD=gvnJRRE6OvZ5)Soln#nRLdnE6l?d1)o0qS9nQrj1>PDUAIV9z~|u zX{kB;8P5c;N)03##$uhlGBpMXXuFCKPnL&Ww*a)}Qp=di7`*dbYDcVigWgGt`H*3C zSMGnSPdBd8-nW_^n+)JCY%-4L*cZ7ELIG&hWG&5Qxf`iptJ&r@*6KGaJ|i+VH|Clh zD=}hU9>6WMSRYGpS-+Fgon#;vNRJS5$X6i9^*p~{G6XWcH1v8jpl*OFNkt?3d|@+x zhE#fya+Z30`t;t_z5^|N_>V;K+fZ?+F_Swp34z)@gHTx>)@g%Zf{Oz$djL{8k=(;0 zERlU)i?S{*!$G7k(a6b=+3$A2TC5=7G0R*FnY(`Uq%)!J186J@Rr!pb$wQn($bCTf z?6YIJVYvkY)=9M#RZC&a2JBM8j`=e9GT|;C(07#{+KyD`&wwlf#APyjrLc^{Qmwaj zQ764Jz$Qa{0VlQEYT<7*55Rq6NunmkS5~B_y+~)9DHbS;j^GXiT!rEK55M=IGpNC9 zdw4HzksIAfdC3>{yAA$e6_Q4|_WVEjrbU?c3JjbD3+`glXzb38fB_-?F}_NudHU`> zi3tj*6jD~5GN`iYRw^$DFZJQs_K_3k6*Sh3aDoU24TU3bhB&v)8;zx1jU#n^vd$`l zQ?|8~a*`WX!W%e;kykH6gpFH}d%mweOPZ|w{@FPrI4IuR?q|krEYW8h;&pRl_^sE@ zHQRxVA27|mbnfvE@Kf1eJU1N+w@vm2o*Vq|ByvUk!=bY~VqM*o^y{|)A*HzKG$Kq| z*{$AhgMA>{0(k;{%bh6>i*&{94ge@BXqD^K&X?Dp+Sc^5oueBjv%{`!AI`K@(f#WH zoMI20&~yV*avrqyRB(r+?ISg=)iqw`*q(zQ0;6nD-#;%LVU8~drIpLeg&%y^=#b7@ z0JutXU^(qLpBPQ}`1pZg0@xQQxZMO$1!SUgoU!`X?jSE}aeSQ=l7h2hVkk%Ngc1^< z{Mp3c!3!|ih9EY;7k{zk*AT~4bcqQa1C5ZdN?Lb2-+iHHCUus}St{h@{PDCsEMiX#L3o#Z-j0OlU1pT^YQMsIIvj&~{8IVT5mjiFeaL zG{wZJnR=QD{=AL;jM^VNcY}kx)*If>1t~~pt9;jtf1B%8v>%Ns0tMF=D;LxtMT|$P z6&;f(XQ54OY(Km#ve!~$@TtJt`6M2zj(cE#gBQR&$xu@W_j3B>iod&s{+L1z21i8G zX9ZIg{urX%pg2ThRDqVDTBSIKas`cF9@O;34ijIyr0%w}s1%WNTOeS8ePzB{aM-K4 zwIT0S_NQ$HuT}vVA3Xuq+cg2K_LZ*0&?(Y!!!VR!hzMh?(tmUfEC1ys^Ftj6j=b9- z@@(1c^E86DUpp5eXKHcD>m!K4hH%Osv+sNcAj?7}&*Av=|xM$P6)@<>aUdUvzKNK5+KZo%Yhz(?enze{W0Vkmo6`rt)vo zYlD@moPx~Z5#H`h@p0g|?&TUikm5Lt#0@Qt4OP)fIdtLB6;ixn35As%S&Ij(y0E~% zxIF_uap>X+df|xrYLyvNMI06yk*AF1iPLHesCwR#S1WFN|UrzV-5rw34aCtFAJs#~PMBEVU@5P;T1NK6vRj>cy^%8!#*B3v&JJZkL~I8!<`{tEMtvv7ImQ^9$11FCde z93ydy;^!S~azEW-{h5*H2$-3M^R*55OiGAGUhE#r*W_+G!!Syj`5 zpw&ep-ds5aLMx?v6vymeh{5-AAHF|ByC=lJ=aZ2 zRB~7_I>8$~<4Rl9q$=gJyS5$LL0WtZ@5bEqHkP|NyEw2&a%Tf@U`*#qjxo4CJV3Oo zln+WpAGrqpy2$ucxNB4-??2|THob$n(z+jB-t1al?wXwP(Pv%VMY{G~or)ePVtvlx zh{H%G3-=N~EY#}RoiCZ$dR%H(kme@)*VN#Eh9A}^eN4urSK*_` z={0Acr1}GyFx#v*O=QjJMv0H>6`%4l8*%@q*GIGVI*0m@^i#eq1wEv`*GJ_0U2p71 z;i?3$?i1GGQlfBeo6Jr<(q(t#|uTDJrXvl$0&~+>rze;A6Z$&9H`#1 zoxvQ{?PoEYKT->MsqQJHggWThH6E9t8)m*fL@(Z48lGEkJEcv!X$hkW8}r2%YM#@^ zKBTc<6CS%gO$>ZwL)op2l2Ws!v(8+~xh+0LY^-57D?jkG!1M0H>mW+&r(5pwZUiwo z2J}9yx()J&XGF~Tps|wV7B(Y6__X+KTyhU=d$ZxnO)E+>@tZ!i*FDpE5)mGK(VZP9 zD;qal@H^jL9w#>aD;4cBg{HglBSavkJab&gCz?!P)wOnM?)b6Cts&Lez zzXFiJx(OQz3VsTT8}F}gqdpv;l5hf)ByiMjb)y))1}j48KL?8k3tBe#lxjd`Og}-c zdQZGzAl!f7y@zQZWIB^TJy??7W{k)w;M@nGYBFw%TcUxN4>bWRdMXwO9QbII*-!Yo zuhJmUBC}gIfFzN(W;CxP%n%aLDJ?)zC^X^MG{QZefeVpD!4M29!k7fGFRk0M%bv~d z<46EZSk^}n=wPu&E|g!jN1lBrzM$@!Eg%6mqWx5*SA(5iX=+|RkS@jC+HPqov-^;H zM>g&V%aPS@5amyP#W>7~ij4!ebd#3AV*Kn?O1xlNc1BWP)en^lTzCeUCzx5qKJb#6 zvcQ)ba}mVuMSLPOdhx2RxY^UzzX7x+x)}3qw7gBBKaeZ8XzQ(jIrmKkt|fabpCx?i0sVZePsRAs@Fn-g+Pq5S+R9uCMS0 zij6LdM61~=1RA-*#H*bIU72_a$(&L$2h|(mxQ;gBfO(`F#nN3M0VzaYD5o|+puNb*Caa4?!fz7+w z7dNE!tbS0<8Cd5$Qi000A|t6;3=?Jy9U_=5;ZFj=p4KO>?8+S)k0Z$z9Zx<{zQw6@ z6r6c1U4g@p4)(WJY)#C}Yh9T?;TZnG>uAb9^*4Pzms`G2Ji4-c?h|(sg}4 zVK@H{SJJ#9BSkb;Q^+|++Z)vb!aFp3yFf0%cyRr~^&W`$!)BjkyOnMcpbiJ_=DGyt z*26BC$H|GvIX92Yd21Nne{M}smtV+TmrtBOl`Sc;IOj?UkXOhHK;XCR9!7U!97boh z#iNzg{}#qEBaP@p>ZB^9A<~!=oq1>;nfXVy0hx1D0h3cKON353x{zBs8YEp-=`39N z&!E-dog${iUP2o`>0rLpSImag7o#x(Tc>%u5S>s&Z^w06x2P|nbI5MkxORz~vtCIm z;aW$}by=^RuS8Y}%aH;k)%I2Ttx(EBi^-O z+bGZwy1BzX#`Es)@WT$faNsz72*r`)zlicG6~`7xf*ToA&Em+ReI!)1c&o15SMA(Y zp?G!4%g^}a|{ zvm^#|+OwHSr4@}MEvoQt-G7d?xT$nz$Qe9m)I7XvaJ$+%3xC<1az}xXDAK0v8 z>5vrZJR=)SIZBN8wOF%+rzbo{k3n0(bhWNXg4J zYZb1R5FE8?zoL<5aP%`M=Yq2VFWE+<^SxU8n?CcR(N=3k%Z0fDI0}154Rh%wp-W=M~ zg+H0DV3KZHj>dSI>&_oJAdBOs!~-@g?6rcMF1*X=$ltkf@#zb1&^w=z_R?ouUto`D z+Ivx+VlN5A%`L0xqYGSk<&zLwREY51D~9q3Qn;RiuvXGQ_><6mcCg&FMh@m|ldvB)vHY50@o z_L&O>t^23bt#?f_$=gbbmitNyBo)5bgte9Xgx3OcnaT>A+|*`!m9s+T>WZD_QPHQ` zMY_nvritHEPFlUaiN!zW>IPfzuykm(6j9kl%E=pe_|4!8N&I3971T$Mb!fF@UdhD@ z%IgP5v>Hn9q!JaC`IBa?wu(oE3}uzi^6Z4j@r0+s;LxR<{hnQUXgTM13>n7k8*j}E z6DmpkLJ8F1wn5Tnwk?v2@LpM4s*Y`136eBPk=gZ!aH-9ffyjResIJNbVs6zW+H%Uy zI$8}qzgtW}d5Nb)u?>ktu|e|EEQJl#I0X-*W(+Q`Q#i@^eq(k~Kh@jh-fj!Vap=35 zr7i%EF0D`x5$YUs@*K!Bgu%{9ce>5;&Qz*&47Dy@(l5Nwlw^%(tmpV;+0B&*a+kV~ z;-3RSm?O)0cwd9c=n2A2JILaR$tGSqn}>IC?X1e1mhBr`+1u@g&ZAAbBh-hBi|Cu+ zd}c8JL9iN+RF3wg^qisKOkpy6gT&rVK8Y-C6aNUUqODW2 z{ow0L^a+%m^Q|2+T>P+l!uXJVMdAuXbxSQ-L4A(1g>{o4SPBI+H6cM~H8yJ!sCG2d zoVG^Q66H*&W{HSP4OBFTB*gx6U1g?D^kve(xq353Nv2RJ0T)|@^lWV53j`5Kdts_m z7&tAXa{d7>E@y}VdC(N0YYoWO9ZY(4U|ab(zC_`K@(+wg>Y$;i+Ox%vN6L~IK`^O* zSzvOrk_x^k#6FRh%Aa3&xZGV;3SpKY3Lzq=cFcVtr+Eq0XC`fMb-^8@f)utAYA%^J z;%_>18&-lNe1=n~L|RD|aOO<1%l6mo7JqbeP88{Bh1MagY>svg<9~Tptoa8Fx$!MKY zIP?_BtOB(OXHWp=CUnNAY^`zbN8=bG{BlVRTgPZTp^mAU-uMdI%@TJ!R8aeDk>xDK z1GUjXuThZGMqz=0xDD3eg!Odmx|kejj{i!&nDatqwga+&Kagk5 z<6YFui}0Unh6;2o)>=X>Fa96@%*Ju~N5((ixQvJu8lfxfR_eR07Ez$jves?8asZc6 z&e&?ye-$`JR~;fJimly_>yp&P-&F4`x;wlYqB3uV_7mJx|5uxJ@V1$smM!!E$JMi= z|DjA9wx^K`xLj)Vf(i?s-Smzc-h)MxE#9Ye?mWK6+7@SpXR z`zg*PS;Eq9{@2s<1jvIX_b)L>(#>)@@UOctWJ0WQkzjB7>RS22sDx>;?qg6D-M?LY z6M-m~;*1%9@n(_wy^V`LBs0jhq`p>l9#EmAfO;B^rP9#z@w5VC*QCi&X5I=ifkU!z zC-MP#7T|r-b$O@??4ZfC9jtPgKrrABb>Z(5x^bf?XQ$ljGY<$4K!ngItG4zg4HN@j zmrK|w?ejfk*wTcU*VXX*5YAAlZDKQj6RIDa+agQW^)P`M4~t44Q)u;K6}Wjqoi75C z1{pvF#&V67zoCs6{2^Fq8d(dl^5t7dkxJiJ$!HSK?@M8f@4KQz;&8wM8-zbP_r zW5bo6K%W+?Xn7X~V^{?ngpz0l?U^k9hMc|cD@|9NaB+9&ZpAtEO@rUVzY*tqYrmCy z5w_rq)nd$erf#FXt&V_7#`VdcdP!-Vdd+CNLr z$em3i=w!GmI5;!(F(k_0EvV#IQVT|qqLN&i5G@+3kzT2sxbzyY!(Mj$rdx+EWT zrAP#adARGCuvZ!@A|k=*s6o!0r78R6!nV9q6unEH22A`V2Oxg~OfdXtr`b zHwy8Wb+cgk{#t$!?ysbfCL8_?JE!8Th}1~z zytwzVQn=LCRG!{nS3Xq_3l5u4=!2AjV4NJSEg0KqV3JZxkHLq1JuKie>C3zg^*%1L z)Py80zZawgO6&|d@N! zxntlL^+E9gD;o|ac=DB9jiyHbC&Vk~J)J_4@!*YcA0db7*3Wmjn^pJ=_d{FEwUl5Q zlA8mHx#e727abEJ+Y~jD3t_hI9h}?Lgf6Yg659KADQ474r(!@v>(B%Xq%-wuKgLG& zE?ZiCryDS@BTU$!zqpuDm+%59K|9#`?B^70Cdq+f13Bl78O@s`(n))y3y`~$y_yz= zuQN&_p5=a(rWc761&@OjvMpXOa65d7{eDQZ{N6-jH(nqW8l z6(P&cidkxvSh9;0EVOl!7&2taof8#%OxdzWGL?SQ&Wy#iSI)GH; z>aMPF*X`D&eXSRiu9HDj?sJtFo0)>yo#lVRU9AERTHqa*cdf5eRPZx|M2xgE5vpOw zF5Z<@J}?~2=75M>_?$Tc8WVaOdbGqHoKkqEl0^K{PEFdPvdyjXq+l;?Y1;JP-n8W*W)$ItGpqoitG&UGC0&gRiJ*6}vM3ZO!(Ig|cr|Hvc-=SuvS1Er=&l9yU>4ft5xAubop8RYwk2qpj$m zKZO(WIWAy365g9~Vb6^LZIH4g&x{KX9$z?R9Y1&s&IpP3WJICSWa3HMwN3ACH5bLh z8`p9}=R;PH(9B86szxTpbxHu;k?tpH6;9aAEQ1RPTC{MWU~c>!`dPB&9D!GZ9JcA5 zuOg||#K)JYToE%5Q0cYGT}DzIu^cyD6c=yUW@gNovtQi`lTTng#*XEUvC3s7=q|&I z`^GS5Gm=$`>&^%MCEA$UWa<5v_;*zKkgDF7 zm?=!TDq_E{4pbca6mm#uHuLf(s8+|$fmF_ThBRl+Ry-&ip&KlV^v=8f-%6hgyA9Qc z^rzj!4LXC#vA6oQqpM<#Eoc{pwIJOTI%$CtzRF^P)!=2vxSQs#$=KFER*W7B^{fG<(|cvf2!>fz5?Jnpu5?N?0Wl8^6_kan>**$ zJw~gY3fqgObNu5lp1XQ4)E@sTVq><73Swis1bnYBmpxenzga6jkYL`udWTn_v6^@} z9l@&qtNmGKs+hJ0`^r_=PSu~oTQ%h3O!kS6HMiwboe|v8#`_?h(qqi^wRa39}%6=Y?_a6O(yf1ePw{Sqr28~w#m+!R7V~>KW2i4<^HEd zkR~ZQND~&a4b9hw8MRfNdfFIY2NmO}dGa@;ATp|}87G;3!IJS)t5OFwfPT@0Zal5! zjaq~U)&u*EBR*2~!rbKfHRm#U*UeJ-h)iYL3_XHl414$jg@}`y=trDl=}S_(mH@GkT<`c% za^x%{wbD{W`(f;Qp(rJ=({l;Q-K3c|=*4Hwz%a=3o5rGDXZF}Q+IE#np0RhmoRrYc z{YDe9jD@xFP-7;| z*~iSoc+a0r58j-rQ{(pQ!px+<;P0V|rkb5|(VH_vdG+xB!_qfKiOw|Lj&0kvtutqA z>x^yNwr$(CZQHi(x%0f={gFyit5>b=Br8dG)!y6f+Gj67Q5$b3{;cafr{sc9y;kR} zgmkBYkNUW{$%a=(L&3c0xJCQZ{Or0I`ZtxqY?GTI?p)*56DjFP{={Ud8sd z=-pL0M6q(62;P*$2PX{{Z~V?9cPTvVg)4L@{WN08rV;g2By&+Pr@>x558m|l9$5Hq?5y#oiu)m8eRnQQx~y>MWZt{bf*qp_4L+ky|7BXB( zvuOn~jNtv&o{do@nPX@jPpgL%^KDnBRE;UQ*=_jGzC&vo{`rn(7is^u zPe&Nacw%({4O!~S(ELH96_cnUq-g4yG?_H6sv1#IMN5X)8TA)r*H-=~Cs`Q)o9GRw zwCW(}*Kj(YNP~Lw5W8fVh7RMuJaUHbp3Yi}s9ajZLm9)q6ebDmJ>Z zjQjz|F3srtE&d1^6RbuR2C<^@cTmb86`LzKo5~pBRB-G5{U(-``^kUzolpn)%?;V} z)7%fRh^YuWr$lLgj)&FLlCs-V#9;XhatcRu1drCXgb*d1(s;yUrnX2n8eWiW2sg=r8!!yCGI{_$R?a#IuzMET4+4(lZ(V;&V>#YK&1K9wh*|z&=$vitgGFJ zM!4q}k`kmSSz4mGi&PEjXw9yGQv?e!TB*1ql7+pe7VZpUI#q0}XjE?|LJBq{K%0~- zZVuh>2^bC-N-~xL`>OMdmopeY=)7f%ckRDM_)bnkRT~lCS^o$(>}&BK|3$Wyel^3|AGhB3aA zB5gXP`LaH*0r@-n8g6WO9)l>_?WtlHAUZOzEP~J#tr0=_@0xe~#o01^N)ID4aO<=a zj|9XACbkSRkLc1i{qm1IFkVpKy2t5 zf2)a-Q(%d5FVh|UNJ6t$`w=NVq2YzNALw&AbWB~d)G@{XwvS{n zOz?KbgN56yeF{y?$nfdjKSyA@pCP-6XXej-L_G@tl$=f3Lm0a??s<^lTI>oh5rQKa zkGNo{5dL3{7)VvJQ?xH^-5cUxY45-Nti3`s>+1|@RX>_S^q5K%(YLE`X#HRiOM}N6 zxw8|9dIg|RV~;bm7uf=YX_!mHo0~94a%BYZvEvKuDV1mf3Noxhz(eH>Aip&jyfnZ^ z=ZLTrq9KGxT!AUr>LFF96&~-$0}Kqehfg9eGau3z!0 zyR7ppoP3CmcF-RrHoG-62C+$d6c`BjBG-ml#n0;eh$nXvZQP5*^L2&BWAI>!7o^Qu z`X@wWlw4%o^0=m+sir&pQo*!`NcbKLY`H~aYi|Z7!}zf{pKJrscGsI6!k)!Azo|d< zRAryY!NYSOUbl?n`BZGuZAuPL4%w)>d_hS42dkc1snvjb?lZ4Y?AY-L-`c7YJ!#U60w8Q5g0J`F z&ZW?t;a%SgB>tOGkF3gJ$Ogd727ga_J6K+cy>|*s@oK(1hPQ3jp^K9Zf%g^8R=*=g zlt>lah6j5gmW1VRSR@#W#8Qdf5Na(o@Cf>3j76V@0ws*Bg&p181jQ|=etRQ(yiRe&Txm{p1UaPqR$aQSIHZLJF?>9SN!Q5){W6sbCIOfGsQb4{IR89X zBahleb>rA3V%g^W>|dP(Q&AE#ISGbFR_E>Jhe*Ga;?=qla!4z#!DZce70()U_`!;- zHH{JfwT^Bgw+09M1-x;N0WRtP`Bn30oqg+T$F&3BXNZe_?ZahkTSs4C!#gX#BhC3C zmsfyxb*3LypO_oI=TdOQ0TVO{B0@zUsKNLbXXu|(#Ex(bah-{{$*yKOY%t)A&Y(%G zYKqI^5oQJiXp8n0ZCm2l=9~QK?~|SX#7;j|5_1A3M@C#)?P=2kd{2H)jn#NiU9Uie z@h39Nk~LF@FmS0TfDM|!i=<~5yHVJhBe~_7F1H1(T7<#!9e$0wWXS|gwqM*(?3uLg?~rq%%}DVJ8jutPb3WQ^1UD%V^T>P zI_^#HB126Pzn~&jJRi|ad=YDIUpEkLHgKNDlD%^G9z>G2+SjJs8fk5^y^UIzCSTw0 zc0Gps28d!tt-P+=WJlpqnRG9Zai|S7ZJY>z4tkm9h=K8_UvX_p{XiT%3_jLb-jm|@ zg+HB9gX&V8Rvdl^c7X4rPQHhI$ylS?L`8)vehmnMkMlo#n=&Dp7@ZKMx0PhwIfeFmcFeYSh_A!TKKvTnyT{_Bf zP(_$ow$#1`_-z?EHSKUJOY4`fBcWkeUMa9W>L2_~My@B87{ikvMThawyScp)$gtr- zr)_*VMfaGAw<-n0Hj(M6)Z8`Jaylo+^&|gUNptey=3U7PKaS{KUVhH0!Ucl05jS!3 zRpY9>(v3pfRGyUM=JP4BU3tmz&RBaWc5V<`KnQdXT6KJNm8VY^# z>cxZhBs#mOK0F=r9*W58FDPI;iS*(dMEn<8dINosoLqaL1Il9-PQi-v74 z*T&7Y{P*fF3!^}KjnzodqwUUYtdY2Z+MltX<-!=&w9Kj-#*H8LDPY+L$1j_3j~sne zYPDNTW*ef~q*hCVfG@)aOMn^5DBlmLxVN|A+A##sNY;V>=e ze6lH28mmzd4$h9_zcT843`TEQ_8H-NU=@nxpHJq$!pipWG1#CnfeP$=6riVeF`Jxx zOw5bLmwoP*Ld3l!i0Xo+=zcg+Ko{^d+~V}J^V>FpU%($z-}qmoiY`Ao+3hOeQ*%9- z7IrK?+|17vL+VKmSSke$%mCasX%GvuYxxZWyvIVx;?Yf$u=GeEx-i%vx+eYrmr@A5 zg)9)g!Iu+@upE0}fU82zHm}jWaZl9D;DX=N-DG~;L|97*;H*;22Yn!!L{z$mOd8jP z+-jd;Y_cl00h=lct19-ob(p>5O}iRxBA>J<(#Z%LXEya9WRtqc%|Rnk$qWPqn7~Z> zV1}$F0zNa3RzC*|E7lbfKgLz00Uq29Xx!mLU2Yi2$j6%QS(y_N_oEP>>R_TQEYU~V zyTV=o0{+yHxuwDl2-IT$RE@UAjSn0y%SK^>e~0dJ^GJ z#Mc@K@!fW}mo_HEksuxq)x#iyEix$uK-*hIuxp?8(Ws@IDz-Cfeb7AC%dxAD=~pN7 zTc6Pz>lgFPMj{EYmC& z$9TVjn(UL4u)1}GiA=QVZ6-sz*X5j6rTwS8uC-nYE z@0Q@Jz4$LMOBhgEe=)YgNe3nFyqo)ecyob+ti7Y~H1q#z;UEIc)lvYe3;2_t#>XQS zbK?iaVktiG;&)YnKQvvu@m-mnS88%^euPSCHJZ(h-?bsgCxo^QWWu;tyZfPv5>Y6g2(HensmRg#O@YR{ARHHLoOY`%y#Ms$(I%GNfjp zaKuJN&pLI|?=5q$XWTth?=r^tH+z6+56s*hRL^QP?i0;qyMV@=WkP53-au>%TzcA1 z_MWHa_nPLOLe0?sFW`m#CPiZaZWz34U*B}ZVdVb zZU(hHeQvEoHhTfFAzA#A?h)-YvGe+qGquUux~@Dy!rj#4^_fA#=j6)8AWVe{bJ3U1 zh_lQQ|GVS!6M?C)kwRWa0h8brkfNS;_o_!r=gYNv!N$;4X*>gF2gQ$SSxkJ7ybQr3 zz=9kE*jFd%tmIarWDc>tnO-sdp4IJ>+(Q~saiM@3(>#X*!>`OP!b{GjWTyZ>6gtcH z0)WbGIo0c8nGC+FjrlE&^VqlnjExQn&W_!HFZ6bvh_kBTrC?s0>aR^DLIyPOi*5tf zKo^KA)As)5io5hcO$^ECc+C1-UtECXKZuO4MlXf1Y8C-InwVF zAM<1>`q9b{s12+RA~8Em;6P0&=3M(gKRtNRWgis*S#8PT_BUfOAd{w*0T6Gw`>`^v z0>hFtK*QB1WtnF9M{=UrD~kF4>GuMeQ?maAp%b2;cK1okzWqSJn^>O2`z&8(`n)2W zb-rdGi_{=_#s1+7!t#13wBPpkF$ul!tB-g7(H%q!CYLBBU3wWzP~y~I+s0+o?Hg!rMK6ZQc?;>sE_5(v14M*1U+n{spM0DTm8 zMU>n_mFyP~3=;sTsDy)T{lF4XV_yj*SV=xvrbcPOM$@eJ)9HYwu@T5E8?p7FJ( z$;GUD2ufAW9kAVJH|s!+S5;%{NChAlO`-&~qq3PbAVH%lb))ZK?NB#e^F<@50e2{< zC7av7c^B`;cRry)Dx6Ir7TCYs&$cX5IuhGvgBPqYgv)d{)4)z1Ry4pCj<}ivS+Tt0 z(KZP`F{Gj28Qu5;bpw@-0y-{ba^5a3+!?i+d zxrrtLf~Xqg@-X=dT9ir4wne8xKxz0dV*40n2+bmhYVkk~O<&+b;Uya~7^BI^m4qp_diBjs_QjPVj&vj= zvLfgEa|WIh-_O7=h%P+vs}myOZChoSPVD+*<~50$QpW~oj1cb14ZH>|F5FMr3l{yk!|nW+TZYD(q<*yl!LZN*NtO#~DK&L$OM`l0~eXXr~yNYm81&pQ`f76d!BM zx~)0s!HKY-5f;_P{Ycd9OkWs$-x6_S8wB(y;}`U@<7-6K5`|9 zuY6rtryYVH;EdB(1Y59_RdT^C39Ph%C(L2gh0$yIcYzI5f&x@ww7 zxAEr;?eDD!79#Ccidj}{@Y_EMCEUP))_&R+y^Xne&HQ_y++YzA-Rb&vCP`np9Ro&Z zYF81coEjj%FEdrz$(9c1DDp&SNDLrocap1Bd7-+_+H_IOyrha`yo`ZeiViRz=BD|D zby$+h&1{@B9KHI$vbr6!k6-*#R)%{ydXFPA!EnoKJIzf*CCsH{4cSBfncah~0 z)~#Q0YmQ#yjvt--^4`iSk-#DC-FpyF7=_yu#$Zn=A|cEoT)PhXDW(36CMFYjhlBb% z_LhZwM(ImVl-br*RRrW6Z^mqTi6ga6)eQ1m+YHAj81Dry1H(DF`+{VYxR#AjYQt&* za=mPK;KalYYBfkfR@6>H%R$)ziWLxVe7%zLd{}GsVqA6h-0)EuO-_CwbOqL({B-To zI}P+GM4XS+k~k^Z1d9qOside;7a$kGlel9Jv%J&a4M(7;9waIQFQ`^l6cdbEghJaU z@j6q=Jg*kLKdu&e2Mz_}jAutUE!`JuCTV8k7&*?0Qz6;+U;)i|{CnJRKI<0YG@a$G zBBW3Nlbjk&(%aI$XGo3%bApwP7DGzIa-k}hUW8Qs>hK9YJa^<}8^s$9m2aS3w zJv=TKE^{ZiwyBP$jopbf%ubd(?o_k(cT-H$bgPUFLFndvboIQq)<>$iC@&B&xfV@p z!!Hx!k5^M*tBcbs6yS5{q3B{Kav%(pp$lx?4go*kMT#cY2h7)+VV|%n^%iLO3ja*< z`gfOhh{%(7)Ifi%Av(PCT!U>mo$n;B67+*b6v%sYC zL0;^A)S)W=fo1H>Grl53=`&A$CTnh{gDseujJe-L$gW|t#)_)VSp{FCS(W!^v>JaqZ>M46baHk@b?5WQ8o(%&6TYSz9T&%znNtMM}; z82_2?(C4PYHnS+IKLy}?IZX34@P&jvb<@+Yk%w|KywmP1vWs&+j{F9XzZAzWE^$}~oaX!%xON-5 z4|dLJPVM5ccO*(dJ)}*xpmkKtBB2jN7f|;cGj0ojm4cIYM;h5t?Juhs{u~x6xC=v$ z(P`LlrRh~|yv@k{Ej*rdv^MS=TIRV#%2Iq&&gX#}vHo#UYk2wjp;#wa2sXXzei!3a zqtR%Yjm@uZE*^)nGR0DAcDPjCdm-i}(IYHLB`8qE2S`FYKWzy&E2!?&K9IJ%hwz;) zo z`yG{O4e0;X%*PLxk)=g{qHl;dppl&NU2C#PDJ-^4SX>W8auHKjY%MdlimlZvN=I4= ziflx&xUobVMORkw7TBJFEmO-Gh{=jj3@&&|Z z@LvOSDEXOG6JOX+1LyrZ$!b?tsa@Q&aJetihTu{pUna#d;VE}Md0jFNChiD;mlmT2 zBnlQcgUxTzy4qxo$WiJV2Kqe0qr`LW`cd2QYb0bUI7Tzl$ z*ai2AK^sHI%3BWBWFjZemHXm#VIK{9pT@^MCWlHktF>YFV|d6b;FXd}sYB1yj7V{S zo0JtQf+|w*z_Slq)EvZT@2>zBU7+)ynKqZEW6?O+soW6u0Sw868p{!zs2KJ1w|+2r zLUuGodtgEjh}ch@C-$2pd=Wlrd_LF%;>5DaRC9HtUlez*YQ?@L`9fcyL=X5SYO_Mi zdHwpR!>KfA7yLVK|Fxf8|1qx2M@lqwBoYupBlFTAl?s8SVd*qOB@FA_TX=w`2In(Q z$jCECNv;)mWQLY!Wq)ALfM&S=R$_mg4We23)fuY}>sf;;&0`b4oUAR-fOQE~X{`oZ z7A=$_pPDK`LCJR3kg%O4bZP5v|C`Lkoy(kx&v4e*sw3tV)c$)Z`G-!=G)EHSy%#B% ztacTL{IrT|arcT6(D6&;p1M`Jn<-@E>6Xih%=aT6ySIxEl2SG}*9iX}OR!5XIyuL_ zk;k}^Curz6HF@Q0-rh*9huKs@I_hN@Qxmvz+lFb3NCvnZ+t;xd?;dM^&2u`a2gjc5 zb!HO82RcGJV7B&0qiS}6&Rd2(fVxPTQa+=XOeJO0u)@m0 z+xZ;h0B41=oNWWJ#lTy&m3$*QsT;|~7L~k5bhAZ@02vUGgUJ;ZOg^i06>cOM zN_g7~r5mclk^^@ycAl9Z-=kYqS4&4ipPytQ%u_~{GiPDJcZsO{@@b}o8}T^h*iEcC zuI@_P&Z>i+ypis3z95@qDNGQ!l_h*7^4Ymt3|3Tw=_m-#zZ{ zQd(epWd&a8;f*Xs*4i@O^L$~QE91dqmJTh>k<&}uKHV&`y~nkG%#RZaiM%;^Ompn# zmi8IT;)dxX62LzckY}hqSbOFsRnU6E^~_n>?1KWj*qG#D@OkZN z11mL?_$}SRi8aJL^QX$$)m35DO;mTJ$#AqA{gS!7BYolUmwDw(0**Bj|*gK8cH@9{0D!F&= zii`lHXR?SnL^Gl;XXAmWSh{yjPG0BIVi|~_Pykf3Uut)}$lXV~gsLT##Wp)G5KNf1 zouE5=VIYfuAW1n|ANcBGA?YO{fNfe1=}i3UD_QOQ1nM(yC!=^F4&$!SWS$D}-seo& zv4V0IjcPz?4sEqfHYbD@U(o4CS!3HyIirCun_9-lt8m+`;z+$R38X)IFm+cqedj(+ zr(ELVBy8zU{@obB2#~EjAj+eFVs;}68>Eu#p}h}rs}CZU$;XhQi&S~ixKiwj|2P?M z?a0hHmFB+@)t2qYc2!hzVWEunSsw((;vEBBAk!SaWD^A-;JH+-HbYM4n1T zjYfZG>AGrZFAE8G-ylNA1ty8yo7hX=+)l1;b_}Kh^ZFpPja(&UegMPQY%9BSI=iq6 z4VjOk>kRoAU29*8cCCb z26-FZYI%=GIwg)UdWxpTv4MA>2!4#^mP@gcH9!A7yA|?=IoU&;vZJycJJD?WqwPH|g)15@6rdmzA7I#ztfi(5i z@9%0$Q4LvfiQi(D)T*!ipHT?<pqQeT0am2@eW(Mp+LMIy`y^R(U-OOg8~KR*ed9UW3D!Y=GkF>|7f5LL z(7juB{(m%%sC`p~bq2u5V4E$+nN^s|fEeGyehMp+yA0LV2%ei00YCL` zi6ldwg$P9dslaQJ$<3rgD^&>S55bW2oS}!phSuW~S$zJg;Maj^ak?Ypdu{4=z|WDe={KbVLEd9Aoo=!w3QS1%#Y_Kzh?sKi7g>1%SfUEe z*0gl?TvF!??fzmlM>@e`O*_OpXzB$&t!i1dc~+BM*9-TyYd)+NaS7!ci^`?9wJ>m^ z+N7T)m{v>RFvyAfl6xF|=Jm0IYbqrKm30Xs1ohDnagB;`2GHFUtBWea4Yc|L@?ph} zfE5%Ak`HB^PM-!db)GMHe!B)(fx5)D>_eD+CCD>zC4tzY+OjgtR4cO52f7%>7x984 zm)!|#Oo9!P!|0aFmJD?m-~ zad-nUe#qxpPL;Y)y!*0U_p=G#(mHhG7^a zPP@xx#UbE;AB1V;ip7gC7wi;?_p9!=o-h~MHwMxE=g%EX5imung=Ag42(rgsCqUHp z%TPWXeZl5N@G{rLBw58R#>m>9c949_yUjbvcVVVqWNxT~|2C4W7gCodmF*wotP7;` zCKbph#nF$xU2nsot(nYfdS)#j&^GBn$xOK#tJn%k+YnT={HQ6S3?6BKiumnc74=$z zfeVW*0ODm7(=PP;WD-(V9sMMr_?wvF8nc((V~wUp4@2X|bBY?1==&uHgakPmJ z)#^+B5IW8mY2?>pv*LR*1f`U0e$mDq=)G_d4Ovu3fHJY&H+ieTQHh7!n%WW zwD0@$0IPF7gx|TI31b7gLVT^c2>1%&K7qY<)RXvhdphR+K~e5Xm+6B5 z?Sd-uk$>=|m*x(Yg&fYlXdR4X+13P2ASBd{!~hA%v7{$J^(;Hi=-X_-<$5$_Br}(` z-7;B0v2*LzA%5mCr&~i)K?LEc2Qkizt%<^kUDNc-1#vyG^x_GoEQ3bkxbzFBZ*)+o zVpT*2;)Ko76lhTz$-B&W*pFMN!)wuYG8nn5R(x0}G>DngZtF=n=iugT49G}_(JP) z6C|><>?c(w!>3lpBFmjz)OkSAXBg1LDgImVQVEnjZ-?BB^~q3%(pMoK(uiP5_xhB_ zLkh=gDQFRB<5#1l5(<2ZLNflLVWj264EqA3BPcM4!y{>v-~NaXz0`1sMuUOMuX9J% zns#L}Pj&IiCvr6Q!);+P945=Sn^Arm9B*o(&CSlnQyENok~rWHrgPE+Cm_7<@$wXI zw(Hx_+=`9Avm;mYzolWedUp#>Uv|x*bNC4cBj(C|BEe@dPhUY`cWXQ)Q(g%IeJv|3Tv7JVB*af=p zI>Q=@IB<9*^Vw^n*9%cvgmu^hV6Ofbl3)6m3N|b#dDbzd=|3< z2^A#8OS5_RE>7_HgHEDv%n}8og{aOgL{x+_QbnI}5F7l3XMeQ)3nxoOH@fM0-_;36w6Lnv~7|7uBBefk< zH2WPO6SQX3f}*7Fy7Zs*ugoy^UX&#OVDbl70JUm+Fb}KhSj@9tTOV1aYB>Z*`u&beW4#0>SJ?C(?u^UQ{5krD%j0zJ&$bD*|f8+uw7X3j&Q%@J!Ix0amSH^ zR(vGs>fucM)ba=IQV0G`W$O$mtqjEMbNzukpiEU5^ua59TOiQTRi0ZM?# z9$v}`g4D5|#1nZe3tLTdBMb6|ND?%8|*tYGfEN}1e-@gEF0a~FKGunq4fO%lnPBOlg| zo(G2pT0mNUU{#6E$S&DTAPsuM*)4SYn19rWC1YA7DtE5fr-?+OJX1cI>$YiAo58`` zu6yuyYDyMcM%tXr^HM~r>O#<*iZz-yHA$<|;jV&gS!esl?7Fvyi3zpmodvtFMrP0p z&oQ`ZUCq={$cjjMr~8u`!+>fHJ3Gckck)^Whkv8HeFx?ak~7TD};%!C6HK2E`pCA zHLKOl73nOi1On_IJZ#)Z3U#tK7nooQ`V==KHD!3la1nSC$CNUIM)yj`m@yD6K>nsy zu4^ZN6eVL441~SlvehG6%JCj^5VUdJUvYSn@&_k5^am=U0qZFsHH!QQDK#e{M60n_ z#^K@(q4)(GH1_b>u9N24`-%?JocTNC$ba+`7TGI?t-Kg{9!BzE#1-SWd9ad8Q(^0! zfqN_hL^p5zL#IZx1EI`D+xZOA>KmdVK$SMTPv<>I(rPP6v7_wBVXe|xNsmB^;Tj3J zAq9~*(uhLWb@$!DIBH?R7kM-WsNCK*uEP8ZVIq_HQP}vH`~)u@B1s&OvaMWdDlh2? zdGKU!IvGazr%sK;D5 zfS^lfSN%(4MZZ{!~hvApxX z<^rZ(_;z$DXn{Qn;%mf#-T+w9cuTF>8vRV=>Pr_Rj=gdIzA6=?(GpKqV50|*uv9dDAyicl$7CL9t`wnh zR2K;+wysAma!I8N;bapSe*ZoN!OAZfmi5ag8X`hV3X(pMg#e4i_JrpTnxLjrOoSZj zCHSD)B14TfHd0TAF=!U`9E)0O)Dvt>ShGquo|ye+$OM-{KH$vDgsJPj;qa3ZX^LOo z^NdOz@i=#`)n=%l9m)L3Q{?|lQ_yVhwFnmhv;KGJy8;mCOZG>wc$jrM3xx#}H7f;j z+@0PHqoK0w4Y4Bhxz}*D+Z`+gzRVc!FaJj7qJ$HKqM?DH!#qDLxdTkdW|m`l{C37= z+6&oNB zEoj;xfvFXMyA-3`h-oda(E7(U=gxTxYH+;h=rqWQIVbr|xqqXG2u=X;hZ_5LxAcwt z?<)PjI~e==YtSsq9;f<8$36m;zFAZ7Hn;b>;nu+>2FUq-H2bP$$f>tG5uhZf9U+%TLoSR<@ROzDGC_A67J~IQ{I!-*Mw<3>O-Ndn zu++QV_+t?*SCUOkjI@k}&Mk!0*tX)VD)ezAk-VJpB$CJz@N6_vQAT>Z%4QF&_xL3H z9j%cPd3BgsFnp{W$C+RmccDzh>DssoMAyY`E^|^fCm$vM;e*vWqrW94miCKYxV(ULwt}q7oiy_(*x%{CCRe2m$?Y!TSr3QtC!R|bRf=PF((LOu zQqwEfSyB>XZ(k0jelQ_DAzcm$25OJM@V`)1Xe-7(#hi4p4)o7qgqn81`#6bZ@ch>< z^gC52LO;{X06#z4HWXnRqFab>MlS!Iw1Q=E5TA`#Xme~?DoAE}7v8kjO zk;eDe(Z$Tv-ct?FHwGhml0`Vk`Q+74-9`Sq~3 zQ%sH}RRb`KJ^-1xW}P=F{M*h(*s#4_-w; zy^-*e6<2A9#_BSQWZ)TLY*D)eX!^g-$C%7=pKO+%&b5J&^E>r_-z$v{;W;dHDW zY+Pry=TShJX`)4F!gr>=k^j6khmR*UR$cmK*#Kjds;BmNs!~+m3v7Nynlx-IMXx9B z27*U4JsHe=kK)Bl#$Ulo1q~+BZ?A7-8Q4T^&$4)BzAC3m@q=vcFv%of1x4Icm$=@D zszR_$KXbBhrHPZvMJnyI$wGAx3?`_8)3bn$Sm25-pS~SYH3ta0_TkeLxeTxt&r`zM z#Z?h2O$m1{aah`vnA>*N)i^07N1xBF&8=@!-dF-epQM)G{WM`_eC#j31gaH@H||+ zo}09~#l6QoLuO?;l}SW>Jh94|{V0!aO4bKAJeEbTD!2~YnfyZU`bD<*feil6o1&t( zp!@|8M9!jEq`PF|fwqW<+OZd#HJC(=O<=v=FJs!vyVCVur_<=ATh#U6wdY05wU_PX z*@H!E(dtYMXd&GavT&J2ZM!5;LqyRWOSD9n!j-klw7C@FD^nribp*D2dXw&l(Qsr( zVRlb`b;&pd6CTd0YHcjyp0z)QY^TwBW4z%x7H$*Jd7cPEZjFno20#%c%KlLoy7T^X5w7$UK;HG1j0GeFOoUDt=QtXwi$7lvoP zqV#LC4v&hZTh^=_wwyPtUSLBoLdC6Y0mzGUzGDD@<3~j1HThoFnl6tgKQSH|;zfYm za&E45uA%RCGCaE}bK>C_GT>wIyUwV*)nr$^>pDGQ5*Q-Tk;yeaI$XQ7JjR@9f2do# z+U~z+26~CG)iPo9zIuR2CRdqS+G{S(4~)*(AS12P==xn*(?S;~pnF!20Rr!&rG)nu z#dT}U9hNxC5_+|lj?2v$?Dh-Ax_G=F`?tsd7%neM|MOp$uc%{Kq6=q|0V?i%zN;sh zB|yimH)AB}TL1mdR0fG#U(ZFNu}bABt{~8%S+SD?u>dGIWF|7;HlCxBZWxaVr~gMU z@+Z>4NdnJPc*yAJqlKE^flkE^ z={>DwySlTQUd_M`yxJ0nqYWWTFz(GRPIhx}rv8yt2Cs|2+isKUF5Cz$c!?jM8t^9X zF?^-5{dYF&@N+Nk)9d1*v&pgj$TwAPpQc<%uZ@is9aN*Ff|v+*b8vPJnJqP@fT4gP`OVyh$??mvOXa-;ikkfMQ}F z7ueAs6V4D3+{22(olvlMV>e_*dTF)4ct_QN|MwT#>pNln?YwJ3o0QSBN}=O|x2@3e zG+D4deJJo@n?9BIsHkrdPA&b$ncDa1iSytn|5Zb(Vjecd*3(b36z{p5lu1AT#3jul zM85Q+pX<;5m%Q6hocmox@}KLdHMK*`;SLkMGBdW~AT)5c@tvlT#6-|OpZ?tR zSBztynNF<2uTP*k>d5oNIov&nL6l%;K^y*@$A^ASW+x-ZT2PkR2$ zdj7jxlF)tux!O5I^}OhBD81^$XX=I2iNgc@3HGAu$B7As?| zr~7}T=!Mp$NS;{Eh5oWcsygM9b0Lct5@sCBXPJhvjkTH{O_}p!o`sonjcYG6#xB+A zwb-2tNwSnD*v-)aRFHF37&IN!D>FO(f2X|NRarKm@7v!+wn`ubBev-lEyBn~P_=FunhQYl(qt{Fh6@QPWl3 zdOlx#BRG+bRX@f^lKh@=Rc<_T6Io~*#|2fT~*atxK6XA9oD^_g7WsWg=S}IgKa)7CDtR^ za*}nA$Pm4cyVFj~51y)NIN!QY3^mIT@>S0WYC2Bj^UeX3u!TaN+58?>N%y!@3k_HG z!m-)n7lx{t{nCUG>pe?&hvKRCuRPP=&#f5wBrcX~Cy%JfLsk)_uFuNt3B%%C=In0k ziVE-PXRNOpyCUnk;vd%PM*5J_pQ570%KOJ2mc&5>B2UPKG2s_xCb+`4_^qYFes~v6n@|P3tXRX(TYRtI7!2 z4jP4-&abmE4=r^Kxx#YzyZ|9NBIFql|;5Zk_{3Ml1`BU%9QeZ0L6-syub*O zBpyM1CyfsI0SXo9dw^o8G2dW)mCE0J&_BtcQ${IIF0m@kF$pIA15UBwa%DR8^A+G0>Kn`r>u0F)`M%)kUkNG^20T^g(b6l;s(?olUD1jU>f z#r}<%Vgn#nq}>flkmT+LEkN~jj|)(?II#mL=Eic|2~Lny?hP(*ZFmR{z!Vq9woq_* zm^%6fAwUItkLRm|b*KYSI8VS27%LI*iT&TX$!}LB1DM0<4=Wm9*GNSskr)>XXo9QDn!$XMA zMYECb1Zd;EyduZL!539Ko(Gdk{+Y0~z`%3BXCLWr-&NZJ3Q%e30sLov`=zA^@@w{p z0m>YMBmor8pbY*qK0vV&Jx0jpYgyIj{~PqofA@p=zu|NKH(VfJrSqfTi+O(Zdof|= zoB;}%vfn{dna7m3x&UCj5APBqLIcMRDA5ri6)PP9hYHj)a`-Brn4B7Vq2)!5k1pf67@&kq5f6kJ{;!+E_O@3kuBwie#1ISm$`~Za7dwoI? zj6dCB`%kiY!9e4{Z-;Ke7mX*hXEjC%IW zZC~OO9ZXqy0-XdN@0L#8J~FBDM|AQ_f0(=|lq*MYCM)e(Ao1{C6{chS9NY+qUi5vF({1+qP%Nwy|T|wr$(S&febt^L^*u z=e_SaeX=StA|pEU7g=4|6_w#7%5Yz&m@YPf3-~4H3?cTmhZ22hMvj=;lTyVe=_XF% zmN6Kp!XfP;p?6hcM_DU9l`{#fL-V(7jPK?>$4MXRxlvD`DQ|j8$-;o8=FuvjoXDCRD5bO3P%XjiqN4U zd^BZCH7Sgq{nd8{wkLQ&kZW)d%lQI5Fe`aGl<=D)PDFyBGrBJ_xuH7JZ}h_SeY->3 zr0})bL7<_l)Lsrtg6LyLxK?m#?QD#YVniD9sDdf6zm8|0) zFRsN5Mz2V8kzXUBG`CNVef5}EJAV`!HK_lUv&Zn_A4VJL&hDLlnFN# zR-*x*npykjHg@SP-)X#I)2-SCax|B(hjhUnvk-F2OdbT)F}wu*rzJ^fE;i}Vaeq}v`b z!55chL%gvH<-0~!eXC5z=7$u(PY?8|hZ!R&muk?oA+|fO% zZ1FDdZ|8Z``}$HzFZrEEM5m3m8jR!?%3sNs)}mf}qm14)8DyHHHV=>c(K|mDon|dPY<*BHPd=P1;Zgdp@a_COSP@+fWNcgX8~tedJRiRN zRetIm2MVPffHh0Lf~ZK9@P&D4o`P^_-_?5m8@6id6`}JPPuA!`AIlNEWFAAlnza4m zFvy8JxP2Q0!M=OS&UilkjE!QZx*^W*>1LvVDVEPv3WMo(yoHwPS4;e>!wPz`giiVf zW8PTx!Sc>80uRBR6jiZZc2(Ka7I=L--?B zT^r_e%dc$HB?=5|8s}gKNOaNU@l~Z+8RZWshC{p;a4TZ8YYgmYxYF6alBDW*2+ z-tv|W3UyA;2bArNE7I1^Q&Qbh0UtNFj!(mcdgC>MH>;Yp++S8zZT=VYnvVWYUG)dw zR9+^-f5sa|qCQoA%AtQIT~4#x{<@xR=3Kc#sODVV$}_UBX&3C>&{W9=wXbLwMBmY5 z-GHo_Vy9iT1&}XuB8x2uu9RE2)^6U4zt}s2F95~h8K7XDnP$(k-TdL6-(GRDSLg1m zcFBvMeQj4_<+=Rr;)c82tmn_qg|VQ^-gqqnSyq8t`C?uPC{7EqD&0 z(Q7eSemI>2owO~7%lHkWw$+-^5)r;7ST)I&VhCRwg_)|Gx+R%G->`tYenr-XUB=q_ z-$%##b1ksl3X{K1aXXHDO05$r2tbK4X>7x_a%Wb!sW>|?+u7Mw@kEeoo^53DMNp<+ zz956cZZnh`7HrBTPq}`!1%=vSYB8-|o4{gp=(+TZv_>N(E;mAzAC36gs}#9L81t-K~NRkZhcW@QMelCqU#PCcyC~Y%PdPvco?;PEeIU-Rtj| zRv$oh%JNXxZVBg5b0Wn|blR}?B;_`svu@z>WJy-JzbqG)XriUd-#Cvb3Q zo>{g$l^)-mdZzGdZ>^?)HzS>opKn8%A-He_Cq)@ibi_q?hpL1l1mOtZnTw|?tL_$v zESyN?3911bEva?1WIk4;oVX$}bP@T*T;Ftk4=dU`?JE3;^?J6S3MNdF&W=8H`1}}> z(5JL)sUaL4z1qIrX<4_I5=H*}W1?%Es*W#oRy|POhg9L~p-XoEEsxdU-v|x2-kXCI z7J|;z4xKPrtgkm}DnD$XZg`gPx=&nDE}H|IN20uQIquUp?mt#(M;1lY6wKd}1iP6; zP>ebgdAKKZw2zH~nkD*~3MmPzJYqbSSdRdNo%G)c15i8JuivpIOt5&f44X|HMGK+){7s zc7Vq2vB#A;y1Ui!2I(qv@3joJA>HNhND&77t2PnKW05aXE z{tHU9DDXxbAp5yz55#iK^cOtd-JDED?uZvinpYN1i{%9pNcz(daI$g|FrSi&_yU}i z`kygApm-PXK|rT5fyngwnE<`(JHhAFMyCUdKm6DI2q3ABB!95@KmQ0#koc!IVu<+1 ze}o4J(Rsm`0+6SxL_;z>El?uCb`|jd^neVAZ2P?!$jRv+2Uln>{)YOWW^>MEm~9V1h28)J0Pio1HPL>65iQo7+5e;S z0PWFzf#WSTo)G^D)dCQS>iJIyQ%D~0MY6Ztg>2|ae*FO^f+Twv?0Z4l__@Q3KQt&s zW&C#xG|l6U2_;F2KW0e$#$e^qgP(N_G>0X5)DJqX8!{sX(njb|_Tv;h2ijPSb+M7jz zP-7sMZ$o&^`KJ$vPnBx}U;1Va-7Mcm_8F<-P!EMuWVkO_lGHP@E?K?Js5r_t0^GVg zFO%u+bzgiPkC+>;F2(XSQ-(|HU8k->>Vp5hq1E5vBK#)YZ}Oa<%6IhO2v0TG+8z$+&Zs4R)hNv6IoTC^y##j@=VrvaSkV{*N`VE;F^}= z%Me%crb{6E+|IWVINR(AL1GW_E(xNld(cFQkPV*11FBsf){)+3{j6?FK%kXFhr*D+ zfI{I4(WFR^LUEHXWs}>n{(q?@(D3T03@pQRW!l>ZS)vb+VyNr|4HzfC+XXgs0{`L% zl4S_k1@1fgcqIg4YXABJ3`C*P`xh)=@-Z-+{*W|4s-|=owD0`AZ; zBF{zv8tbv$AGGiOKL#98qQEOGknG2nKak(MZ!V@eFi{OG_%U+kd5LY9da8XYs1G^56gyU79I z>5u@xb5*LAB#^n+oY0JdRQUuYxXu@>^U{4c_3tAm@Uo{!c-YY;+aF4oS~z6NXmU3c ziSvLYP^&%$xFUUA^{P%BAc(1+(HdZOn<-MYbDtzq2@zn{3t)B$RCE9)+XYLPf?dpr z#gY%qJ)JJX=d#aQbtNVrVH{x(EKb@!hm^nQE1h1h3!c<%=%#X+g!GaP(YF3k6g9rS8D#Cc~a=i z;BuL}S*m`@`BoOg0-ejEoPH!mV^-T6ZI)W^LRI&|37>}3?c#vk0w6`q6(L1D;l@c& z2j0x}>%t_4qi~LR=pS{bbrOd1Mholh3AE@oB9rKkjgDp;OvV*PX08_-urw(_-2UR< zv#d;xt1Tzk80iQ4`q%hx2?GZx=L5#d%LB#-2r$;>yS_PX=L%t;xpvA z!!y`(fL8;V9Dh8&*IQbY;!13GSIM*YRZ7%N$IfR#BKBuvRA_KV!{{Q4F)vvrzr(`) zCLpq3#ac6ayE5CSsI>SCx_8f{P_AeAHh4klzaQ$uKkb+Cc9yM{!j$;$k zcYq)W*QB$7sI9jracVe(=iZEH6A}p`$C(Z1*G~#^RR6AysouCh^UuR79)I}AI?yG@ zSwl?aAGx*WWLrg20f~*V8Kn}#;>~u31HOchwz9S;Zl_*HzXm8e9IFZZQ4|0>$9{Wu ze1l~(r8AG6f-H{o;elBWSSBAGVZ)Fqik^uDHDJ>%pc55vF9bv%7qr<=@6j>tS1EEV zTA(C~<480XQYL1wkk}x`B&9`YaJqJRO+{09FgX4RDHDLCKpOR#VtlOdc2}!gqF2sJ z7oO;YIbZ|6RPO#=UsKVV6WoEjBk6zDJNVm7za8n56%93gxgpajjQYA(B4wG~aJ)<` ziR1UStU<#Hv*Z9ChdJ9pJ8H2b9B^wldpOw_O{o`0xucADejPdeI+-`2frP#-*{!&UgD{la<~|Apo-N+;#R1{CqVrS@I?>fkeT7!xx+xMU_tij` zxnH%fU?}d~F!6f&@?4t7fx`V8x#(z2oG7oSv~1nPncqU7nRh&s?xEZ*-l#;;Sg$OR z&T4%ak%b-&8TM>h_OX*LeNua7g6lRM?`J@s9mI_|D049o$c#uxh@o2eMy5MD6z2nb z$VXHWBq%^;BnZIqToc?d<)G3%rb4-?$)Pk_g8|Ldr)=p(LZJ>&X6^=6HC^K02v{)r z39}gGNh=kP;=q+hvIE*9G)aNxy#*RpQhRZ8Tea zWonP)md2DYzJz*J{!G|8spMFSr73SYdcKa>g<@WyYb_)TX+EA@jf@DpFv0c14Bl1y z;*?<^gIi9zD6rJh(C)sN;3)Q2Z`n?O$Ey#5*9iWOgF$FGKD6@|{0UT6OKly! zaXXMdqs-?5T~UEz@)mPfzVz~zKqtbxM&NamOP6_-zZF(vdOFL>>VZXt<8ms&C!vVL z=kUWKTER`{St!Btv~1$}#wub4wNYukGxYNF21OpjpMsxlpP+$p8Rky7Sy%oz(!jc6 z<}iBfYrE?{Pk==JBo47#b>Hi#*DRCMvysg1c^9q4J-i|A16IFTV_R&|q~iShZ}E9A zL{2cP49SKPYsJkA9LD-xEDOQ>+9z`Wp{<2QYi?wt{lsP{1=bHOYj>;-WaVy=@a}^%y{V?PmV(y-(=DTFw2w}sDTR7##j1?3|Q3)&-&~QIjhJ`*o0qv`yY^d8WF3@J%-CyK+fr-?)B8owg&LF zk2o-g_@^`3Nj0rwZoM*Hzx_fgslq8?iVE3rgIz4HAXebSj&0Xl$0(I6cp@YyS>VIV z#nCiG!lF@!%U}b8nsEOf|8<|!E4*n`-{I7x_H=37n~v~6k{S4R3GRCg{KaxZt3)F$1NlL!tT{r%q_&<# zk4G(@PllJrhX^VnyYT(X!SRq*B&??-Blb`Sr@P|s{+rGsc2Y{nwT-qArJwB^aK zh|*k87Y|Q3_Z-7AtytmnyN>PA<&yafO(WM zO!>o6*heuNr%;i4H?;TQEOIp-ovW;EfQ|Wr|BaGe7aYQ$iisA|a(hmUagCq)%{`z& zte8jtiLJ4$aFyu?(kcNgyAoYKxZ`(|Gb zb|(HFrJqaCx6@|F5tLEV=kyaBqvu6$uvhFDuzz- zR%m@QKWp2z7_4SH&do5hox~AtufM28r}^l}b%s*g?G8m?dn88q4<{;Gh;p>r67*=d zZk!W4^Q}a%3ay|hg|G2=(_-o_8|(N71+m5Azi>W?My=#b16iHV_-$MnslCmIlWT78 zxh~nR$dpQua1lvSb`AGv-4OPt1`(jrBYbdFFr5R#jg1Cyg_lhse&7xnjJ!7m4)lWo zkr%@__nj9zau9Hfog}jNxkPYat9Z|1XSbP~g@#O@wwjWKw3_d+no7TKaVz{11yAO) z(Z5Y+VQzUE2ck1ch2N;M(e;<+k%C)KmwmkTr~miC{bbq4Tz~q1A6@~K_WINR`+#`5 z{NOqjF8l_2py*2yzBm*nzOFf~<1?AA(c5us*k3oPmp5U|a3bZ_cO@ClpN1 z^brGxTVV3es1BzTd$V#xnOS{P&3kVA|3_n4Jy<8&rE(dLcOrDjJq`?D*Levd{6emo znLRdMP`0owfj- zS^q{`K~TWY=bd0<1eEQoj7&fhE!_>RW;X$`_u$qJw{EPMPC!5) zAQ~Aby5cP7_ZjeAgiZL6sUcj!FoXHQTVoih%388XRqvyN%Wp0Q=+;^&cP90xL!kDB z^w8cQD2pQl5{_8Ly-DRos*UcxF8d%HkHwBVj8c;w*CK#9unzs+-& zcaupx9$8yGh)PokTE--{u}BjPseK<#`s3l}4_zNU)<$C!<^OD#s3BJ_ zJg=UlZX_v7#}sRzy$_6ls-Q1!pepyo@3aN)T!JnHGtx&Wd83Il){ncS(q2YOYA8W- zb~07c9hsL3$PFQvE?XQyxr!xUBb2$5i#05dC;TZD@`GI7G^11R;gv!d@1_`7s#Ezs zg*R#`i&2s$gsn+6pnN-KAzh$Bb9FpzfY3e2xjm@1xQ;~+J|n4n!c@je zEh{u{1nnl4dW%rSgRRs-sSovAI7l*}>dK8wZt)Ln9%3-643AkXnhyku%xA4lvU$Jijc z6;1I+#D)Kp;DMwZ{G?Lp-GY;S&ks$=tRB&4HJvNNw*0VIZP|uV1QJa(_~c?_=YBdN zv8KNGFQFNUCKHWt2oYP6jG=^SUAVHt7gHB^>%A#r<5sqfSxP3W)sZq3L)_MOh#{v^ zUD5ef|AEuUHh=Kfi+v(E%qc%Qlzh)MvL_=|vM3-(7)jF1UORzstyd1^o&ZRhrC3Xx z5sFG@wAF86Q04CU`fw7ItTEFRR?Mbvi|r8;!)H1VB0$G z`Xa?3)n8I(VN4{HFNWU28)!7!aMe}2D}SC4>iW>>3%>_F|HOWO2`QwQK*mt@UN=4r z3Q(4%1VDd1at7VrHsPQ2_>~0(fCf|hZ5uF*1 zb`T-FII35I8?&O>dz=n;;VaY3B@PLWLG@AjflyF6T;TrqqP#O69QjZqk+bX zRp@%Vqnt}L7@XDK7iUmO7@)|PE*A`&(~b2*3|!pD8!`LF8v$etnhMkDIV7T8;9Q0B zv*!*^mBPfP!1o78wDObsK z|Kel14kZTi3^z->wXvlq{IXOxqW+0bbygPW4xht9p?<%P!+K>na$#}a@9x}|Qr@|E z^E|9FmQpvfxePCpz6_6HquNMDj- znxo`5(bGv#Jcv$8s~-3)syPcAh9>ignPUem#*JRx-EEM#3nrbNdtZ=PK^G)OS*PLt z4mj*z22C;d{sV#ws7NJGL^^r*{(){-jBmZVh?}5c{v~9T{s#ih?3Z1QNV8}S z>i&(2EcxU`?3EMuEJ}mtllE0Hm5~8u#?u_^`ga-KucE_q0xx!b$LZ1YLG&Sp(z-$2 zz6LhT{Ca3&x@j&GyKkEOf z2npk8AvXe_b-bF1F~?>1GVeL7^V$nP<)iKPN|jrbT(%n)UyL~Mu`C^(9CR!luELU9HRWBJbPKa*v2PBw;f_lVvUy zD(c{s!cTyX7cRzvtE2SU@X^w0`mpw}n06)n<7)f`KW^3$Z5K+QcsaHz0lN~DUpM{O zI0t`Ogsx6QwDn<&_Ig{(;Zz?2|90aoO8M_j-iV|yoVT1p5FWNyC-cA(SB&@AFseSF<%`YYv;Nj=D)#& zd|R%}KRG{K4$w1hPJf>B(Yrm5*2yd9{$e}?p- z&Ia~RW!VGv;pE7&*ZCqm*AN8SwV(=seB1OOp$)g}kxO#)eR9_f?b=aN{tb(u`vZJc z+UT2+!iJaUJj7X8aoh(FTl)9=sB2DW+4%>rwG3; zF?*RwEFNa{JAc)xE1@51cC0}zT#Q5fhPz`PKjt%9^!6$~n52pJ03MgbtOR)9-0PVj zbicLeoZRft4h^xpfqa)#G{JB5T!cgDHWEG?q9MM+VP4>@1iNxJuvdKcY<1(=0101d z##bPQuG6dVA?@}|+~e!B7za0}T0=fZa-68FSK)JBc&k_8a$dNwSK;G~h;w~C#gf{M zSgo{#9i2oRRIdpQh=<{Gr|Ufpih*vio&f<{-|YLF3gY>Tv_Y5htAO7sr%!}G zt(ww$dxnl{4U9EBVZfz$i!X`s7v`YJ$F-HIwwsYG zI%^Ljq2%`3+K96-qR!0Hz9@jLE&q>f>R*?8I6EQ{;=pkVVJ$e}00-1o(k#Pmv2yH4 zDb)twn1(2M;;elBa>}59O1_C~0kf0q@;ybpVy&xV<2EeIG4y<*bqK8J@ zWYk*3dOXzE7x)|wh*Leop#vC;Yd0Acc8zFt0|E)x`dirvR}bqOEVHF%lAJ6NnEo3N zIbM-A=C}T6b2`z6A)8M%GYoQwmBd@A*-y0i$?-G!za{@ggM-B z6@^yW5l0PEOtEntud07eL-;XCL6MREP4I1dOPhm=pr+s`B(j^!gw9_qL54C9mGRPq zNv2iM06(U;WO_IK6Xu9aF$RnFv#k`wxy&=tnJya53>p|c!(f(drct?^uC#qw>LDE? z1cr6F%2p`U&VC=co2;xVqOls4u8)gf1%%9-;Ea!?9f@R%s+DoKG>7PTFU(i#HHjhN zbD>mH(TfD+5SlW-p?BmRPK>*hB(h4gN;bj#?{eE(gBXKJ*i{Ji{6cMf$LniDTTP+} z3FI#k@k~u^#bS+Fd8QOHH~hwD{*X)hZ^>BQwmx>Nn5$4G4M=^*(_=b%M&&;>B9w4!WczOsd6L3}baG-UoK$&r8M0&TkpyKh ze23y0c~1%=DFL)TN3UQsk)6dq1LNBfR@Hg+);yHJlJsBU6)6(F++5 z>wCtG;U}<3s_`Zp7#~cNB2BmYZW7SPXKrZL8y;}g$5K=#=8DrPK#qiU#H?T)JA=_lm$bhxJ@Qn_Uc3I3VvZ zKvPe_bmie@HHf|p&8R~pU7YxhHl5z3c#sg%3*tqe+nZ9k0p49$fz*uO&8Bb=GGOLg~7 zt(Adf&I+aEMYM&5gu^|VkUh?B%+iFpSbyHJKF>r%ba?=hhX;||sV9UJq1K+EFzJ^h zEFXl`%Yji`ctX^^gjv_SNGq;I4NYFs7S;Qpjh-K1v!d3uzp=-Fu3@@0Q)r0Fldd zR3umRcn12&{EfcEughFMv8P|xr(aTjtMSS&c1=E$S5)sg5%!>aoWWJn=mnV*D_Pq0M0W#{(NnHfo;*| znm6cC_azR?OV-PdETPlr9W|3<{Uf{%z>OAnoFtpWy%E%Rnz`N_V5EQb$3zM zkj`((hpMlb0?M{4hy54?(|+MK(ZlJjT5kJw5PP1>KHIetL7WRuloGOAk`qDvuk0;N zPsFkfTD39e5H3R&JuDFcIHh0cCCxKi1LsGfX$|*ggyR7kP}P`QoC30&s&v3F^M}~Z zz$%rCq)myCTimC^{XOQ)@$8J}lPKObus5kMcPC+QFzFB|WT>ogF6nRw4=4?ukV(<4 zVo?vi5Jr5GBVv+sq}6-Y3kuvq4j_p8qC+SwOG7N2MbWu#!W81@WoBkk_`iJ;83@;5 z-V(BM-cq+?w%Z8svrom7dWrPn;|#VLL96GE6a3;DcprG~I2zOgf{rflkh~KIxl;6O z6~W?;c;y|owk%$0j%bC|h2Z;LwYR1wiNd7;?9}n4zjq)3nWSA zy~L*vUa=E*VYIrgU$u15+g%DNN43LGlL!Dw`+7AFZ?_+vL4fvBgNbv}-$mNSFw#P# zy&p{?IF^Lg8AEQ+7pC|;G8dn2Jq8{mbz^7y)D7{U1Ki4)gL!IYX{d20bp7DI{(R@- zZ9vN6YHAE^bo4o^_HQy!3oti`CiiN)w5R9zEsVhg@PHT>WW$ceP)1+Jw-#f*)hQt- z$elq08DVR@g8tE=UCaZH0WL>R0vHV{Sf^Sbei>L6n^^){UFL8ArM!6kUy-z=9%xG) zXcs@v3N+J(y+Brk$+Gy7HkrIvh^U+ia7P-s=&2u0NY+;cT?L4#WEjIMv0=tk2rTES zuo*EYMnFEZx!**H?e5%S>jdRLsiLPqON^N7Fn{#MpN9tps#EhpOq~pw@Ki3*@e_ht zrEbZ+D1($D{8pwp&%)!*uKGFLeNgo?VHI^KMO9<&ND2#u)Oy6(4S`OAatLxZ6ch*Vs?)%-1@J*VMLRx|FZU3MC-T!27|C9auKm7DSHE(>I2q|ccg5$jTePf7D z4^@YI*_$unn;}wpHYZc&DH{Ib3^5CGND9HPKIy5#)kO5^b<2tOUiE{XeujXo;$oi-4iyyRdg$D|g)x!I7ivtYME@v~$0YW`i zRedYdzSVKsUA6H9mxlF7^wNe$6=0et3!xccd!|&>7eZ%A|1#~LspranU+3fbKZCFP zEoUQ}g4l|cMa9xzCAY4_ECYq*K=)Ano>2$$hUW= z4{kAbF@jebR240K5|`P=9nEq#jft^wptAB+rc&VcbM| zK7V|bA0H=Ki(UD8_OafimH!&v+%GxB7&hi_<;2-g3yAPn8RT18{r28pl!D!u z)RI1HQ7d&{-k*+EbyqEhY*x%C`|R=*nm?H>d%!vRWAJVFutHe{GUMPpBGQ)l1AOlr zH_D?|Z-)P$M_Uf1_A#_GkM=oFA?T+k=lh-a`S>wh>hwFdlzua=> z(ljZbU>76BsFxmxemMFZpcOg;%PT+btvV45mL!;AeQmK0ib)tLbW0eeAcs+=weOE} z5}(rrxPJQ%7IO|`mA5NhMa@sRa$Nn{KVZT@LhDT!2o^*QG*H;t2MSfpFruqFQNf^c)3EcUG=mJX z5>PMeKI~mVtNft$mj99JZ$RQD{`>KaZ2#*s=xmGb)^@F`ZfjXbiBh4#)why{<9Yc6#(%qG#=jzn-fpR2cv%3Bv%gFN^=c*EaQY0QReoc?Sk1q#sFeddVO`&}^|%CD?!qCbfcSaV=J0(Pw>KxGIrz-+?NS8nxV z;rkftHcexrJkfM}Z{fiw$v_0bbGY+MIwt)X${A|6L1xWIV{@ez zn;~Jtx@0j?NvBhC}P@R*yCr4>v`-=6L?_6Fw`AQU@wU;%xg~K zS!InHn7D#o;`}}~ro-IR4u3P_D&(~Aab8ElRdt+Z&GOLyj=c5#_oRLCk!w)ikw0y~ zxocJ5xoZ-8<9LO>QAQZn^}?_~-5+t4u~Vs6p8caalekjH-KdhKuMa0jRi&GIYP+(JwGN_>q-^xo zoC&R)b#zW{?72Pmiz7_#fDd8z0F=&P|B=_zFmCU<_odI(!-mE4e$Th%KW?x)FbDAdZE%eb?84U)c}~^09TR8SY${b!Z!LXh zIZB8EtI@JZ~ibDka5d@F;UA%=q7T6I1(CBM37nt%|Vrevi=M1 z0tYxeNH0$SHbk4T0(|(CoY>~7d)8+pHSxG#M( zd$3n)4NDzFoTitrBprPQJ2kX3;PqmhBbsXIRKrOmH(P8vBWrB%t0pDB@AE&go2p$e>;&70n?5;0AfdC`YJ52z@yXUw ztPMJy;_EUWH{97zg%sHd27k!s9~-SBVd+&3^wNUSaeyvupbJ82&s%HI^4L^!gVmgi zyG3;7l(w?gtv~P|iF*s&BV`pM-e=i&ZBzK&x@}Uy@_dK?N>if#E!d5dWsT6(K8g^V z`4L3t*Ytxm;33ZZZ%5sqQK=cCWk(2d+iTNJl$fN|Rjzf`qYz$s`8jF29ZVxp^LsdT zK9AI_UYxKdvSk7t!JbFCDG;ag#i_JraND@m<(IXA6ka^db_G@{C2PiGGKI*FsgPV# z?QcEzNyKK3B0*|rta*rf|6=N zf5xNdfWg&%cx?AIPZLZo^y4g^!?ESez(uWXz`Gn#A0$!{*`e8Ip?hXqV;&PMolTxo zwTXNO7`#9_gj0LshwGS-P|Q4eKHnU0A!2^nqD|n%d1esHXw(0xTa*a=X6>sXPesStpWgl` zL1MULTzqJKVfBSdM(vK;MGwN5j8o_J$O%-fTtD~AFAwuyOYL#@VTEy*&0B5?^p&&& z4cPYFB$e4GWrGQb1-xYqrFSf07Z*LSk>jWc6=CjW5}_~Q_ic(&(Xi^GXv}ub1-QOF z<_S80n=h*~lapaWY~Hl_ud$S!_ipM5*YRl&=h)d?JuuMCjlB#P`EnJ;+nLBBS-CX= z{rVE2+oFF-wSPKBWOEbVh1OkAkp%pg@0y;2AC}KGW{v*+bYJ3$$g2pLhkuNXjS>Js zPIPn~(MxvOuDPs$&En&dmj)-w2Mug^%rZBq7hO&S6+O1$egR!eCi}$(AuL>ySEh}* zsbkL8`xk2d?Fo;DpfN<&{>H{<_*oat>lhO;8W{acm=6MaYVFe#o70kzNRZFxTJw~;Plj+? zSqPqKmvJ0V3QpS2Z*59m(@X!^>EqTReMz*pSdNJHZjoB=v$_i&KgFIofXG!z`m>$!gEOr270BbVYobqthfi@mz%Ai}(%> zw*kTaka&f>dk$GSgX01_!2i3J$-mnn=Mdk4Ya1By6@lx`y^pv96yb3dc9-}6A_@r6 z`TrM<-hB3e#FKaL>+c3d_{MjLxCszdXM|uJQ~`u)_15XX$K2YEC3%cx#ByDpZjOKI z_`ZGK^(*3gUxEmIv&W8c7X`=x|GvG?*(%!=eXGq*uc}mrQ!c{`c3Jauf-$_;B^A`N z4H#=#+0xha>ra$`_IVT>s`cM6cihq`i7bcvRScwI!vDnS5#ib`aqT&(D#-*OUTqoIxJ)# z=PdZ5jfy~FaN_m1QdNB{vJc818pD|6KB}V z>E))vx3+L_63k?O3_WzHA=cjIVO9ej1eRd3LeE~9e)O1zA4PD*R-)!zGviZX!Wwo) zlgTQsZ=wxm2Swrr)`j8d?#%c^E)!L>P8_^RU{U5ITmM zx;{iCC}*+PcA|p=CCGs1*LAI#YWROxR@Uj3DYbl{jCPZhKj`Bw>3bG8xJb0lX+5#? zk-!Ud!) zQFZYP0mt$*(p-jbBPt`bImD*XBJ2?SA1{t8 z>$`KBbOdxJb|huq#0NXD$ba=C#9l>?+z7?Sw(fF}xVK@EU-cv2UPZ_{FiG5%t;eSB z|8KQj5C6B?s>lCZZT8duS^KX2xYUtQVLWCp{^FL=f~lP)kLx`=`a*1I^4YF4BCe4H z=7L?n@+exXxVgC#i#I0x_n-uM~Ew)ZZkU>+- z76eabdX8MnwJqZtf?o|EE*rdkW2d1oi1J(7nNK7}mfQ>-wCy2ZY-@tIFTxjni^!Qq z+OHwW_~pZw%qo14zfS6dNW$6$&4OpmhgrOi%+{+hfW$iM9Q-CNS}Q1+q*^CJWe2Hk zcLHn`qv)x+L+r|3Xlz`HAel1bxwkW0Lqj@oq ziTjIolLcC(SKnZN?#Za!1#`XhOCIib12+L7bCYFHVOI)XpzR6~Z4ITBdY}&P;h0$g zk|jqBL%%PeQISc*6wkAUm6&PL#Rv9Ny5Oi!LdjhT&PNS(&DkBKULRl_Dp4|&8;J*s zmQ9G0(SwRbho@1P1`sjNgqh&a0g59E#W&UCa3XDwd`{orG)s9WMJ1mqaZ;R zoO<^v?com1Eec&7(Im&`!KQvsMdQmVm%*|Y1)gA^?PF`ToMVl5WETWskYV5@krVqT zBXJg#mpcsp4vxZCP)BcRg$i}Yv@`y*IQRq)>G^jwNM2UhXJHQY7>vCV*DYZlR?7;W zx2viu0aHJSEE!ovVnNc4DSGWe#a01>i{tb#5nan-xcz0?Ke{DtkhL3@?aK3Jthrx* z@EaC3UuD-2bCo>7UH#(XW&f6cD**QLPK*p;U~`tjLI+t7`Ac47|$#%1cC7oR|~!G8?FNX^`9F$6>fr{aw9n z$;73&kW*#3G~2+PXWsNQ&}C*)_bK+}vtfh#M#t)ivuVS1341Y!=d2q78~CjQqU<0( zXt+;0$*c7tX*PFHF%*Vbcd~Qcbdpokjt!5e)}BB^FcMAw{h2wa;rnf8|Mh1;jX9uO!)q`#z^=8Q!Wt01OAz?J_hkyHBbB4PXDTy+`SFkpXdyV+ zsA<4)jC4z}u{P0^j)uj?tP-ENqypE9fJujjOxqU)lQxZ-BhK}jPhTp9lUelU@m$7r zor`I_wcC+mmjtV1!ly~GqHt`XiOWO0JQRz(NUCGuuZCDS>eCMy_EXnx2cMb24$jjL z-t_RkobZJ*I&0yZF0=gut6Mr*}*yEl5<)YSIH(8IKd%a8Y9u^4YFQF~OK zQl^`a6Zuc3ZY;hi&md@ls8TIvUoVtc=Pk9hNhOjzsZ>#K)z2KD;#JI!H4MPtGX7P~XKK;| zfG4dT5y75D#SyRbrYC~sH|2Zw3=3_zEbTiR(XBT zVDfH(e%?1TTkc-ZVw9Cema zoReI%pwZE&Zj{EZzZ^S;M>pl%J!?#1)J{t-%BCPVDJaJyeXKqE+e{}BR{__T*FzxPM({K@e0WAg5TQj**PaU_U6Is z=jIcpOkq}wugF(BRzlkXA?>hC&mibRL3A|FQb$^^QuYWW|h`RA=Kc z@;L<`om}`2^S;Ip3I}M~!+;}9p!+TXg@P9C@=B*hxL()d8)sj5Ia0W}%v$5=RZfSw z`10#Z zH@M}c4?Y-c9?5+OhXI4EYE>Y{lVDE%G1s9d(&8+)?x8f6QX=e|>qM(~B%{&co4Z0JrD36KRI~I4u|nIX zr_pNsw9^WNRa1+4y_s{xAJZkeTZ=A)Xd^moRea)HDL(RgCtbtNB_oT8=Pp!iDsu}Y z=U(x)D^l?}(G4V{$#C?z8VFt>=9Al^@E$i9YT~-cnyJ2 zsn1Qa)5ck{69nd zIj7*Nfi~9Ceucw23*-a~W?PH66|exF=^mox9G;#=-{^>u;W>^etV333$!*K^oq)QJ z>zjQpWaJ0>pV>VjgPhsfPw9~}V?)5M2qAz2TG-37U~@$AegSx}EB zbfHTKEGQ%LZ4o!5?@#~LZ!{l4{I^|C|LF_>O7c|XU@}2EG*UuU zpT`U$l)Qh}R8%X>9ZE(hV3y=qMM0ex3z@I2=Mhgis3rjWd;WAXFsn}i083LbMVyL! z=Fv&K3Ym%q=3~WEz5`M|8(I@`n8w9DV?{~_H3W*v*&@2KtaXDIV{{mlW-C1zCh z5;BGI(@)4}Y zCS)Q(c8BGp9Pk!l1qaAIf+=4Mi6~=40{WN;Ei4591Q-V@`}1&w;ULg~ObbRO)WyZv zCz&Mf3d@2jm_|8$0y_kpP!r4TLy{?33_F{uO<2Df6FK^>Qb=lFw&KP*h&2iSIJdWm zQ;C5pDRYM(R9@_%AB@hW4Ulh=e3{d^|94DJ|7cskRo0}0t!4EKiwP~FVObntVk)c? zz;D%b9_HbwV^@~8B8si(YUNqj-Z>~p}(k+ zMmHqZ5$C(t4JZlBS6BjpTp4AoFPt6gBe}9dL$y$k3cneuV|?>uVIZ7bhV)!cyC^^i z5D|MMWGrwcy}a}qxbNof*TZRyr0KPeYGEQs0S!!h*YdlaZy&JKPHPW%ycH1e$?=Ib z^@17ZSO~AbXV}%a>SlCF%HyB}wED4y6JQK2Jx%P8MkNAkvp-k21gKvmG#u^)3CQ`! zC{d0jWZ%PxA`_f}Oh;R;#>ltOe&?UInwYW+$#tb9>yxAbv?KLVkMDD7MHnT+#Wo+< z9Sk0eNUU=*j3y?fHk8R^HFZr5D-^O+xLHR97TA$DC=`-dV?h3jx}*%+f>ke80#b0t zKNly=PlXnbuoaV404loYUr0FW%>(e1stxDlzxg?SxZ|gUV^&E>0#ewR5fPt)XaH2< zcHg21FnXjiFOQHl!mpp(RTg_CD-bIVJjol_jW5PACa(q|k>q<^k`KQYdW~^{D7$q% z7!kr%u)>&dEfP9HOiUx<2v=VyYZZ1+ls1>6*-j{SK+*HSkV;ud{wUb4x!8fAm!sNE zRMO$bl<$r3Bq52P%gIDK;tM=MDF zGj1VMxtD@sw}83SVD-DYFL6tBc98TYPNj!Uq=wXP5~>X$QFUy&pqC5|^;zp6QGG3L zr`B)iV6uZ{YY^df40B9_d+-66df|&EXUUnfDHm&Wp^YQ*YM$I~a)El}%&y| ziW~{bG0Zb#qNXaN!K>Ezm}`Ao(b}F|7-jK$H;a8$mfQ2PbY`HeUBksgV!3h8*gsgF zs9|a#iuTlKeoKhzH6ZR0ZRj|kgwoO#yisd_FBlm5lxe= zs4L<+aWeIjSn)-N5qJ6Tq#7oudXfl|qXNqB;KGgSn|{6&_EsxPF5_b~nxgSjFq3h( zxHu``h@o`~{T_sBD|^y}=`<#BeB{X!s_d@`Nbtn&xMC)_#2iGP+~&!T4t^R}tKx~3 z4>;`M3GF!<)Z=#jPxj^E38XkF9Ze0#4?JoZ_p5i1siZeXBmhnq6y0>-Axkoxt)P#O zrUt{a3qhv6Mi9}neL)&;Oy?lRU?%VqE>1Z3k&fec#NfyPJnz#3Wl&I~E5nb3Trkp@ zUM%55PD8>r_r&F@n+kNPpgh|st>%v+!m0|5euzHkJ2MVJr{J(8(5e8wGJ-)opKe6i zNht&&;wcd%3$F@sz=caCB2&q<`$m?#7D&XvqI5Vy!WA|Z;0lpqvN4sE{85TBl_yT) zG*v8cDiu`<5B4~xhLFZEu<`*<>%iB`I|Np@WAv=;1oCIcUMUnx zrGm0Q347^uPO+tJODM^hIXIa)9{Bz=TrJ47=IO8V2&V#0Tx6!s8(j9f83g1O9(Gp0 zh8Y5Z3#dZsVNSUT5kc|AkQERUbh0fAiz>h@qnyekC$O<;tfk!$7fOe+zjhx1B-+NP z75Cn!fQ6S`XMN%NBH^NS;|g)tAW!{-UyDWgU~rFW;46N%!+|Lb2oMC>QVbqo0eYZ7 zP0$VUF?lWtEm8X-vV9Q}q?-qlBo|i0of_&@I^5dwF2)!6CWXgLWBa_svc2Mp@pFHk zG60~A=>;*7X<-R>q@wbXqN)!y`4S_Fan!7n<-jKfQp@e`t|%mRhkO&*DydWXj zGioMHK*sZz*Wl(~xD4~i&kceRGw4wf^!`{+KB_SY1@{tZ(NbC5*K@a(_&1CP{DRXK zfBqX_)C5l9*FX+*B~6wT1z?dNr+MYA4dZQ!XIBIKsV5 zhVhF*{SeT6iS;Cr88ay-)Sw&_8oK5l3%YS>_tax$%mxK1+{id_ICSQh z5?v7>KE7`+OY`lCWY5n8t$``puc=uFr)N9(j z3AK34La{)J9V&1xk7-zp@=%7D=x#g+bsASAsqrKnv7#C_aFan{Un$!=N!iEKgDwV8 z#$+0pp$(#givSm<_YT&NcjUO5vaTC}vJqB~Tz_^4h({K++=x?LhtG&P#uE{7nc}+kq&4)F8?k z7$ZJ$G?U*MQD-EprEAH`Y$v;+I%FrSp(q3<{x+sDw99P&VRd@WfFK5PxJb@~b zSe-BXEgHK`HAj8KsfsVH6h8RBa}`M!bjVABW<>pV1YIEg5%UDi2-Z46xMA|0u51YE5j#h&qiTma8S|85J}wSmOw)5kYz9>;{U7(^(EgLngo75?}YvtGweQ z&J9Cis~?-F<|LHDyZ?8lrVL@{O_2do!+9-#mBdT4*!a5tIBqFV(h{ngH(#GgIp=}6 zY>gG1`Og>)*_uKgk^TQT9)4jrL?>ld$+tP4H@RFIMC1DCwrvig&&Cm6F+mjl`x^hw z%U6B4qr~BX0kp z&HhP`F#Sh5_lFMQ{15&9Pg-vDpY*(d4dhP9)9QbC@bll!iL1Jq!CIy~oH9R?em4Kd z7W*GH^Z!FP{4?=u<7a7~#&WvKJRVnn{8x{aNleny^tJw301u~(|I$AHkCNG+Nkx6F ze=hpdSo)7GZ1umf|CxUD&;S21C7#V){^_jt zXLTEKU;jJjk*tmq&zogq++~&MsklU4_5Ud0{D0_P(*HC3Z1w2(a^e5zMwa?N-SYJR z)h(_w>w&qV`?JoCxZ}DV9tr<@RU-bYh5Y~VllH%+IHmvBeVzYGpBewxPmk>XbH8x) zzgOjqQyjA8e^=uFXzjoo6q|e6J^o)v2SA z&rHOn@qQ>gC1JQ5cbI9Xjn_CcnV^xnGWnZ!{gip9@CHv1^R>|T)X0L(PO}hmHwFZR znrMmIJ*I2=)IO`Syd3IGAoM)d3{e3-Ku#WIh7fD*u_8frxt~~|U-T50FJcl#3xfgS zd3JHcZDFr^!;WAP8Y8A{0MVc5X+r4|K+d+{?7n06$1xZpLdWFLt5LVWS=0_d-nRyv z1RUI~?)y{FHzlCZPCOZ@ao8$_)YwieW7>wcx(FqaUBET?@Pk=&2-WP+E>Wv#@cRR4 zK)=zA(m!$ee)IJ4%hqL87y$ptneO}L4Odm~?Ed>i_EZEDRv7O7M)PaAV4o04TB=8B z9bl4l)L(5LVn|=d4e7~dnj!@gM;keQ3~*dNw7{_GR|vaBp~v)G29zC9N91c$AQtL zkvXqLT>YTyJqqXtto*5V=TC5R& znPIfV+1YoT=WUi;Iex)j2-QiwS18q~BXSkuu8R-Y(A3|9IwMn`;B^Y^Ho2AAE7JHc zH)dc1=%Q2^HmdZ>x5}veh8d+dBF?mnLXy#RGN3CP&erOj&=RN-9F*#2pV$k39RF$q?x7z=Yr5?Q z?x@siEU@eFd-?@xHriDxx@#Xdyyefem%X^>oCvlXD52KQ9U?jPH;2h3m8i0Y5wzy; zL)1@7YJYS7k=OkUSD|jUvS}kH;9J)Lcg}^?2`bgl1!~xxlcQCc;OiOHgLn;sIT&nJqnCXbDXJpoxmnFD3O{$pP*xs>+t%h2PHRn|j zJx{jj65cxgN#_x0om2?RqU{1htq=IMG7>u~u(KdKlG~+j%P$FYqrytAH~d*rtk!dT z9ch+KG0Mzjd@NPUOt!$ae>F~i;mM#3N%b6rw!->B0^U0SK3?0+UFyy8g#>y83VdV! zvVa3)F9d$O#p}m}9mP5=-o9917+zJ8w<=YBb{^ zEBfpJAcTM4s0AWZO>5b*6I3;@J}OB!0%|mPyr!KCVx65Ayx6y{bMzcM8N!gRas*D_ zPncugoh=U+Uwi|fxW!oltkPl%I!3~>drxN+Et8w1>*tn%IOBw{ zIk458W<;>o3@7Jfu5iCtcMA=flfZrzdqg@6DTFLM0{DB-?yMbxD^qIS>gPOvQqBQ$ zVDsvvRMM$Oc-Kz9JpOu{F%1xD(aOOr`YHS~La~H*FLk$lzSn3R52_C5Y0h$s1RY1R z*UhM09}0~YhG5937*qQmVvp^6y@78yaur!iDMZL*mxfvosLKwli|HnD<0vrvmbM7H zR6JK?0!});P=g)mAgH|}Q498ZcPva76VE{$|6GHx!EW)%6^YmpV`VaOETkM#AFg2kqVp^ebLr_|V@^oqBnVKnCAwCt7R<6`WLbZlnULwqS&*Gt%?NT9@!uw8(1K%M}Vntk=(8cao0xSS*e*v8CQ!H~}nT*oW z4buftL#3{K+tWJzdhBApEz8k0{h`(y5=zw`;`w2(T5yZPT+sv2OofhsZ94Qy+j$9+`H4Go{S=zGr1@^8S=Y(9FDweieVO@G&zr z1iWteIp7Ba-RCcDh0!RThJQeTPd*jT`GpFakD<|GEp`Z|AEPPbLgzoZb_M7hssJ5^ z=Y*^vKM$oIvOQKtm2U(rAg_jw734;(Dz-*BDy4<31X(@MB5R)yHD-?-mtEQHKGD7_ z@)nXe_UMwV;Cit{e&_UTdtnOD!338Y7Y&O8vW9IdMC3ZzMlL7JoBmMrz6T)XV^0`t zioKU`Q^Rx%dv%tD^I&3SE6<(A1qzQdSj_MJoNI1)!zalZ^U0QLerUsc`Mav_K`OE1 zp$aY5Z80^47J8*kT31<9=|5SbO2HqvKxL~ye|L;mz4@r+hZej0vPm`}{$YI2J=dBm8lPS>>MW-x;0O7#^yK<> zrsWK=`wM_hr%Y6d@1i%Y()1G%E@&q$^kyY}X&QfA2N*YXTxNy%!T@!br5))|vI(&0 zyopjs4!a4_f6#~_+;YA*!|f8bW(&+0Cq&iCQbAU4lRlYKc?tid5|jvyGr1+ zoHN#23fqZzn(VF`cpqk~M{B7uA|B^vg>E%iYlh=7hC?dvOm{f%OUs5riY) z@*w4)w8_%}PB`DI;M1xB{WD85zfbfERip&XTLu+Ce21HEOnKUVnZx3HW8NNVmcW$A zF?>JYGF4ItTcRdZNelc%m$k!{%XKyzR$JT-8g#Mzcp=>q6H9^HvHuKX|ATd5)(N7H z6h3fCup`IQB(*3(<3z$@n_-_Rb-5zrzD$4#gre3lNp-tGW@>6}N*SV90O4>C{d*O5 zg*8>HSrIk~8AUj*HTiC(DQ4Lw<79E95P`U-meri( zd%iuWNs$}+kUdJergo0OZHDva(Z)yM(UP9FYBX9XICDSF5d{e{S+?j(>b1mI8n#6;x15(G9sABJv9#2hcGUm z0N;$9*x2}!zqwSOZEqR~zb4KX3nDI?Kq?7kY0G949p{!ftHX3NGwIDL3Ka-VA{?il z3oKaEXQc0>eQu4XUdj%X@Eos$kM_zAjt(voZ!06GnAxVS6{cr{OIi)64z{GOFW#gd z9Ae}vDPw3Sr==HjdfGX39$v>>^-s#Ut?qp6aja>P(5g({akB`%C$^iScs;gT%9IFkJ&{o+Wg6;V)U$93XzZBI$;eJ!M)|D*7= zwb{Mdoj9OTu+A3`h8@@Yu^RC6iVsB>8SqRuyR#i0t<3%pkIT8#?=2iU;K{gGw{d5Y zexUy}l#%YM3})cAzCv>Q+CbAq1|&*ZD-BCW*}u>EHH3?@gX9;OGAo$Xb)dt+Nu zuJLt{Nf@TqeLY7Sz4}*0&?}SMs|{rrSzrj3z?v*Nu$hX$<{;Ept@EE4vBq(FlO_r& z*asFLF>A?f3HFdSM>NHOjjER-ltHkzBtp18RTl+l{XkQ3*iZ|~PEvrH{{r`lowy86&nei0T{ORyhtC)Z<;f?7u!>~f zI3OKE$>pq6O%Sx!63NF&v%e!r)3sfEDqs8{*)jPEV%h8{@!l>H!8P;tOSWI3FYd!+ zgfFitZ3^d)T8q<5H6PIc{>ltgRMwuf&*9d!FT#ZWluwfg_!p{o;le=5Bdnr+=$jF; z#E50g?HpiJM=D+<@j`A+m>k@Pr>ws6q5Pzw5n$x9fNcCIxnc0+%%;hx z`sucS>EdNC5ZsXGh|v2B{*l$!ue8zd`-Pu7EmlXrv0=+b zz57C6wnwj&+ax%HlmkG*0C%vJR`cNwd03w5n(&s9HHF$WT!9Auivv@U~)9w0x);5>%2EQOFB zrHDDc7u?mPZKuI+8VFS`+pU0jEw|WvN1$_)-rTEw8IQ&>iNVsj&jEl@pBy!gkWeA0 zIG0ZeJYuZ%(;Uo~f4iEuo9DblaV%olaE{4^gdkI1=X+m1W<@Op6QL5 zL@y<9rzFQS_1E2p*vBRmpz(h83Lo?6eo^*taQAYA(knCa6B*Dq6)C}YbLaOzx)5~| z%Ym90MP2r-_)F(lKGzxn9G3bY95`-v-cDrWo^?v(zbLK6hA@7$-IDO_Z7^dev${< zHrm@9SX(;sk8DldX*a=hBO8d^!C|e`=@6XN5KfHiIJ92+BkO`Kh}}46v&h!$I5dXM z+ca@oM8f`C+bBGOsn@@ng>F|<41i=F(KJ9@h8<0IXqvDan)Gbzl7jpKG;;j@F_~Az zJ^bzP8Pxn0>JFa`d*y?{Wc~b-k>nYN&VRwBR2Bn+rDv-Ck^NjT}V?+J# zR?XnhcHhz5n*yFftUTY4ZSS3n`0WXijmlG+80DT1I?2L`3CJpUVL(&+IR)kR13jWB zWfyZIU?PWd!}UQMpaf^BgwCIE6>doc+L>_~%nbw+)<))u6q{B8ZBqyT3O?k6gq%ya z!%}&>FK}|0-MZzdBR>TX>6jGWQZh!Uew8ARSLB7HlG$Ln6*Z_!4u|f@WyLYhly$66 zKjshMXLWTg-K}#^zn5kMZhL?-*saC7v-{%9pmy)uGbm06PvI~}>`Wcbp$Ug6`le^L z^91q!n4~A+rc-bmU0bT1st){2<#h@julJwec-yl;lJ(=zT`V|!Yz#eXjxm@Jp*i4V zSgUnO_}HUyGPvN^R4{*lzdRgW_|&#B1hYPIqQTE#fE4U>XCi$P~E zmn&om@Wvcf00Hn*V6kSc9nzlH!YbFyV1&7Tj*3!@5)7@X?gcCP)}d_=Pmk$B_7kKU zeyTTSb58UGy=Qgb^1l~;pb6Qb%$|nAt>As0!O}3*^~u7j_y`5nij4=S;r-dx`WxH}%@)%e+*1=zG^O8%Op51S7pE*J4D>`NLrF}K9-_(Zfo zRFj0rK>E<%d*C>$fKfEj9LX;EoU8yTFx;oD&f@&hd=O^Rr3One@}wYRCS1GWZkgwN zOnWRae z&S9O}`#j=dT<^ud>N%19=?gsVFW@T+5g>>Tbi8p4ocV$Dg{`W#OEJef(m)3C_Kh`D zr!MM10udY$z$L<>;~_%`Q3Ze9###46f(4$erYG}j9w5PhO@rfxxy_}(g9Zvb)PoD+ zHjzm9gUo4j6w~-a4GGxCF9)m)QNn|hNdCFtw;VtT3p8j{f!08(=f`fE0BQlJfgc?n zsb;Nbv4;)`Km|rjg3*^e3+OLX?NB)tQE~YCnr;ui{G%56zp?IQA>+gRdx;w)1_OF$ z2G}6D9YS*;1V%pQ4lM!ph~oO>%y>BYGbPMmitu2usX@z_O(kwnf&J~)$X+$B zkmdB~nUM*7l^(5SP!4mGC&ik2pcH2)JG!lFPzrNYSDLN2|L~*V1_8AwPgT9WMgX-4 zzKq^!`+yooX^tyc13k*8TcOas@-I5z%NNdS^LN_fSTFT2X(e?eFI*hEKOFqCj|_8JFPuKQ@Hw$+@|q{p1hhkUhoqG{rEYs zumbW5^H~rT{DaBE0)HOyO%OHON_D(}_U-o){HGvpbY8FsJS#|FoJipS#~CKDA$_O= zKXi^zEOtHpI~H`Cs7~Ju7?7z?-)-=HMY9< z`(w*xv;ky9UFyGKKB>$Po>!gna2G$-mk`_b8mgxqQoeL+EYqDBkg5FCZvUOlT<^yTDPp6 z#W10b$>DFv?JG-G+W3-b!9+p_4EFNLQ3k`j=92vj%(swabYJ~`ZjFt7WLtzS4pK?} z3x{)L*iR94sI{Lh^vE)$6^6wy!(s0%Uj2tI$5cPr#{l6N(ZnZExr)jN>caRFhrG%A z;==fpBZ>#)I0$IPLNFv{B9MZ#a-r}N=FCNmDx-2?7d;ZjZ884v=EA>z6_Of^$|V`h z#b}+jtOcOfVl~+b@Ga!dS@5dQeLW@C+!(#qO&K(4a|Fx62fyUb~%=;kj0Pij8 zRdkBYNmB;oW$&$`=o{s4$^by<%H2Z7AE=JKvnMNx(C0NFS*BPRt%B(Ue@7Q%!uvzS z)|!E39VO&*_Bua8eK9Jx_EQB}^3p4JHU@{s-S@!M=o0xnHt}Dzg*Zjq;rOPxdK#yL z2Ze9E1~FWph#2x07cL@K;1#;Df^@T&qZ)+$&CmKy5Csa@wkPN!#w;0BsUTOIi-G9J zKFU#@y=X`4t6)HKbt6#RVuBAr-z+bq;CtS@5(t>j`jqn`T`{ z&+F|A>#xOp)tg7OklJmH-kME~KP@(Yb3>IjeZKdrC|f={xwCCFzk)e#JHOmIRDys^%+N@5dm^^rg1|xPkgky<*~Ejfa`OcX?5cx zjcK}~zIRl1IGfrmb}+ef2cY8mFE-u6h-JIDdc{Z{H+3E^OLuY=)52vx5BEKfDzm`Cv&QV%E zLTer!usnL6(=rO3Rb_k1kr;0nn4mocQp`I2Z0B2R*?2@u#k<hP2Fq(#X3L zbg5`xBL3;oSba@^$0csig~A0tYI`N9VqNgN4Pn^<`txC$JZ>#2MRZFxn&<{V!ko)G z26W6eR`bm&VtJAVhJjvx;jru#ecgTg;`TmfV~T)3(9$T z?-uozvx^EWSc9*|;i3w<<;X+FE-GiWdg&p+@Ug3=I0p^8^3=Kd%w1qyTBU>gSVbpi z0lKO>`hsDZ2R^k~0RgV7;_BRgL??$)Lb93K^$)*ct4w;Ert9TGwIb=wigu^dWfBHv zQ(d!wqKVnuzzUdj{94}A%?iamW^>Lq=WmliFufi=@TCi%EJg#q8lRa|B}@_Rp-?A^6; zMY78!_vma+=MdI8b8FybjE%mP=@wx1dDc0ki>30xO+H(l+M(iEtNBJsd|S3G~08kw674JtD$Vd)bN@ixmJD9;!s&1 z#3Zj48x~K`m1${Wp;(8A9B*utnIU2&@8D2L>kKY58Wu+{)ej_h%+*gcvuuRnQ1!O_ zP;2$~7F;SDV>nc``9H(0`g<%+m5f{7%nir}%}=<&1$`$Tpkt#SpgoDTJgn_3WHJb}km7*oP0nF)m z1V}}C2Dql>={ttG)_IQ@|6eE`a;bHNv!kfJzFY^^lCb^`sY=s|StH3pragAHABLSzYs|C%3_3wbnVDw~9 zSS4biAYRz`NkG_LPL=w-k!rxxNR=bQG!&X6iJJTrC)$JBzClgMDva-%OI9*}ww*Cd zVwGqm+VWTC`mnF2WF_%!H#m+!yE97BT1R?w^`?e{_x>hEV}7=}WDTzum!p-L=?bEy z;&bw=WjKpOQRiO~jbR5(OzhJ7es`jx2OHk98att0tTRGShFzPGA3=c(IM~lFoWJS7&oK!Fs{ork^etH0FTNJ0X!5<-_YD& z+}-ecYem|;wnXdvbP?|Ku5RA66>Zs+t}Ne;v1-j!QS8OBj~X>cKXm8nxpcTZ=&&MX zI?yRZ*p1R3>Q49pJ%7_dy)iBO-Zf4g zzF9IZAfyDpNR(qcWKh3I)T@6sWqx4tAF%B3KQ!-LetI%yqOfjM^^Vr5>yMj!@}x{x zuz#Dgt7ZNmKn0rGZvBpB;Nq)~!6b@Hz1APmCN2HyV-LQDV<;@@)%SQB)g`_5omloI z4{N)>yiz8e8EEKU=z}iF|6tNZnTGy_KIOVXL+@6<4aj{kgq=^us+m*z$`^ay;-`m= zFZQ|x%fHe8KvJ30wkQUlv`J&e=?Y)8e&dAWW$s9Wy7GU4xI#8ppl23Ivqna7Gxx`w zr+?6*CH-G8uF#3?Z>CFJuQ{POrZZftxlg)Jt+!HL{(oSkwTsjD@^VO}azlD@c`dM}KTete7Q=v2}<2T4@cZ zQ7s*xvL(`}dHV;NH6`Oy->L0PmbQwfKUF57I=$DK%`di*JYG%yixPcQyh|C{n(2OQYxTZb=+IpK)Uo>_5J9Mg?a$c0nTZav2k$Ndz zYCn@6hH4`|&H0YG?=C-nAsyu&g z@x6Q>w@UfozT*m+HuzCvxK6#}e&9--Im{*d@oUYyWN$cQY2>hQF zKZ6#nhM&P$4V%92<>W>QWkn0~6zIyAlKPup;H~*>dZ|+5j_^8e$Ytbm2LGmTk zpt*BDkTt6O(eV*()ogSc&Ug2>Rj|Id856OM_*>{=SX_cwjcWS!{t?j&{~P8eaF?!s z2U?=}VOO1wx0i$T?f`w0YB4ggZ;EP_sOBqwSo(?YgqPh2=eG%rUnIE?bxze|!CUd- z02Q>wiS>t@IPPVJHY3yKeMCUy%=`PW^o3PYv{83m+Hm2l_}*~mX)3i@jPawfrsLBV zZ>h(iRQ1@O;92pj_IO$EU+*>UN{Ygp1NZ~Ym_nyDi@+qG1qQ3#8l~M1a){pF?y~eRJM>(u4I;jomnUega^8)8=6pX)P2rbn*1y$JnXC z9ZHheC}!y4;mMn_RfWp|WYzdBfh48umpH>Pm|Z)Eez2qJ$2hEFIzOn%jeZS8q02Wn z>>qS$ON1c9D4Zehn{b+xy-?0cFFnUoq(_tNGtaSVCY>y^EGQSu zpyI8JX<4k;yr-4UAmzPI-!1DK9Dh!Ls@;jRIYJbQ5Rz=o4n$6p+w`R>;|@U zb*7*p*8!CWR0VtO9k~+r!>8HKcZ>y}j+8C9Ee{`Rpj4nnQHBaJfW><8sV?H;j*WfF zcXT-EJI}wOC5Mq-&mnBnRFQ6cB@exOIf$v8+qcFLrMkH8cItHf`V$$NQBU)woUDwz zt(o&MC1fhTn*knJ1GezyVp~nBSdyiPVO(K>Kf&H_OIZ%f)UW$}lf`9ENlq!3lNa}u z>>GZ|VE|U5g5BvA&Zjh6`A44-MW0t})&CF^s{8QSSvq)p2}C}O7vo6!bvx?!bdqg7 ziahec(_W0AHC)SD1Ub~*$ySWub(ZBnp71+!Ta20T+xk~Bbqj5T49(DPJRZHN;jgs* z1S#0FBr!o}MC@#K8A;XR5%c=B2zsceEP|Tfj2${ktHkP7+UVJ3-Ec9GbDo~0I7EFa zpsM2ZwHMu>T)HGDPKPiTfH|2)lzRXZPwESn4l=nc zZ2U(l$Di4;m;Cq z9X{L>Z+$`1diOs*f`Y9T>IUn!QI_l z@erf@x1=X~lET*2$Y0K~9MBW+j(2f2rS9!I<1kmoxpXzPlR4^X{6>jK z^RG42b>;m~a9x<|IeDUM#QsPRNM55pDe&+MqgI(zb#M#!!3T=Rr4)Tt*iMK>iPX)` zt|cj>KU>(8PQt(g>cHmu|0qIc~%~O0Y-P+-8FPLV8%qGa*MlW_$1Z4RIxr?OqtlPg27b+x1DH zBv7q?k$aLFu|7gvZ8@Gyid*j)If=*oRC;^TZztYsduOEnmr2us3$AXSC!R$vQ>nEM zm`vkhO6F9Z?OL~#cnrs8S8PG$=vlWl52u(`>A?KuN#k65wldX->0Vt7CtkFa>TG!B zc!X!1!}*rz@=J}od0^E6uimFpt53wUyZoc^j=yX>`Wte0E^cw|%M=9DSAm({IACi3 zU)K(&@Zrl^^lq~aTa-h>l$3Ur_v9V7pQe@LyM<(ytu$VK*7uIW%{yp3Wsc>+?N^)Q zO?(hdw`-c=4L1MgQP$u+z97PW=zFG%C8!lz0e`1xL2K@q8g!>_otB_doXT!|A5UHb z60%&yiI38#UZEY;8=RQ$rt@Dwg!RG=B{I~mEMzX<=$~KEc*>b{rHzr}x<8WW`c@lp zO-ZGju;iMKwei}bvbTxoLg&enlye}C6$AHNcxx>@AKwxIH;Br0BA>#mHSb^Lzu?t6 z75IrASVeuTA!bdssbI@+Iayd!Ehr7=>kbT#>6&B4^ETbLKP$9H%vz2mCm<95*2{G4 zy7!Nx8rphCa1FPD!wt7J({NEx9=3x1b9cU!V?I-usB?aL90~(spobw`g)WdN zpy%#A0@}2Z$}dTG^DBf59O_%8^S;n`Wsoo0>OuY@>>h2xG9E_*1CHrUxOP1m0?B3M zVR5-(MWtYLV+#(%zguUvvP+^dVBa-f0oy#utlu|J+PUKhNz5tv8~< zdXT6thKKohkvt7;x8$RD&RSyg<&3d_Sk`I9#NceC;%#}3rBXzxUe4ta!jj9VQ=TAc zww=yI19caXun_!UvR6b{)+~D7nCWQpw@_SQQKvR+Qyp8wnZ^&Jrk6?ILIa-NM?^*5 zEe31o#~(*3-j#3J>q%fRfnJ&MxPo3ENYmoDuOlm`}Mz zDp|B{2hy{KZCgMqm@o_?QRJ-!&w4&iu=)iI)9h~E_w9JA2Mn_p-eXJq z3Xo^p>&y+Z*Waf}`U*h1y`1Y!O_r+=LxV<7lkx04=LYSOddH=Fp9a{L!R7I5+F{u^ z*XIP^PeDt5FR_Hztb1M*)J=bi3Wd-melo^A$Rr#$F&vPKHvOqDkB6y0Ra$fhofQd5 zwKDAw$Fv9>koU7}*v?5unfH0B5Yqy0Skkvx`|nD{&?88tNC++`{;03iTYXMC%&M(l zg&41XANW{iL#2Ay*NK0>c$Ar@^NYtl;JWAdd&%VtL$+iqMY8ik+&rA~ufRVQ<*neBZF{h7GRCv>n&R4XO>9M& zgFPLoq!~8HquF_(+%{>mSEc93vvZfP@4QVf1?eWXn1RHwufWvE3C=;EvG_yWo0vQFqOUk$FsNa-xjBi?-Dc$9{Rkpi*vro z%C@bp$TiU8!i;mAQ>z>oKa>{&_!mNE#SEZNK4X9oU6CC-$uJ3&41_a}lk#T9=RS40 zv6i{8_s4uU$Wd#%?+LTT*-Zg)gKWhI2=&I*ZE}#&i1fx&_*TPY;%atAiLAvb1~uC} z>+2W@A}3SkriSxi3SJW6dY-$0S(z=3?6LYf1(gkP2WF{1;hKY{6QizjepFR*&AAZq@W3o6&H71s zCa-RcSHPdkJO|8w6*#?x-pKJvh?$EY8mGJT6DFIefFG854w?TBG|fJxFHdHx36pbI zj6FUh-8F6Q&iU8jr|dqzAl^l(?ac9SS)_V)y8j!hUCU>86Z7~TIv92eIa|} z*{?fW?RF#a0jo;XbM;iKkJptMuVO7BTVv_5Ns{?>H4YX)oO0G_bGgOsSSIp>IW=BI)ig z_?>Aoovuunf*XL2FesF zWs)|vqv31A4Suqc1;vk{)+XA&q^0&Wp3g280p!fVW7fS&J$|)!&#$}ZdVN;2dn-@( z{tH-uZGc?Y>KJ`z;Hwt89L>EKf8x|K(UqJS0_7$Mkf^`5Cn<~NZ@yN(Kmj0(X`5??~@(?;G4FFd>n&`o>br)yrlz zV(@%rltAjc*%Ajuo4)oWw3WqXs^R!&+e& zeo~s_?a*G`-7I}Gs}h1bS7A5FK5z0#-I{Y+a}(u3zj>tGK)Um+dT&FdXZZ6_NOJQD zLTwcN`?X}e=1&ZJwcq?HCJ7G3(lt|73=AD@qnC6Nw+BL*P-$~HnFaUzI;OTEOPqZ| zzg;aGd>w_B+g)t_c2zj3@^)4qSlDrSU>Z2Qtk&1^vEJFE3wZB-7 z<3t!=#bEgSJbD+6iYl=ePi(Z2FPzz9Q+RA73!eO~BIa7jV7AZLOxfimy~_2!3iEr0fg&uP0u~wy=`0BOk?Q(uaPU z{dLBiGU}qcdFbdPuH4O`i=uOR4l^B$)a*Xt!QZ~Y)RR_(=OfJEesswq&G+TeFb0T> zfjAUT`z`gr`9N+Q7nh-3C=izR$D!8~I|{iJcBnG!YWy$g($X&d#?^R!S_Q;nNTuN+E#{?wMD}8(mM{gH;8kJ@vde){nYUu^$Xh^DF08 zt~_e^$Ijo+&9xP$QG=$@cPf zD~suSiFvfx^2#hBDetEFKTri&x?H;^#~qR1>kH*pFz_?wazEv2Qi_^$rtXc}^e|qo zx;9%J>Z=;bGK+uGM7uwAZ))G`0M&{MebJ>Cy8CR?)^^BI0va)@nPs~O!qhKQ@9P(! zJ(A5i|8+Vgn0-+8SL{$WY4)~c&8svhJzoFFT~_bkDST^yx^-ALFIWB z&wh5e8F;5Gl)Ha=YeVN(QkaWNM4bFG}7$;ln>X>0A`qKy9*ihtxM2E^CdDK&@ z=QpYn!?fwNuA|yLj%>q0+DL<)B4(ZzL#g(apqRPCr_(P8oT3C5h>l`uY)WHEjqf$0 zjV^fl+A{38Og{GqYg|Ixcy0Yv=$|CS!_XLc)W@01(G4!0sE{C#qUWOmS*7v2XS2vQ z%y&#tDf0)}>b&~_n@}>ZK?&z%hR|?uki4PqJ}F^{e|mYJ7u!kE0fARF&t9_T4qjnr z?wY+jqQbLoR+2^Av=&T%)z|2^9IpQ4-iTO_iEyiPhD(u>+yIufAAw&Hlbac0TU)U- z$!eodXW;k`0WVBwD5v^0-qs%0^UD61DY*}Pr7t-!dK6ZcGn$dR_B(zR5ifd2 zWc0UUsoiy50ldYfw4O{b-O%cGE`)M>y1b{9VDmfe>Gh!EZqP+mic{^`wE>LA{(K^a>@2M0i{|4np$P?%bP+VxRk5 zoV~ba)aXwl&ZKZfr<>eVdaMh;Ek&h>rzUQUYI~`yQ^~0cu(hIdn-a6A8ty6yB?6D; zylu6u^hEiQ!Mu0((o*;mh$GJCI``>^`q~BCnOl#p-&(AIs`z}Cwf+kbrCP1|L$^hY$Mf8^k22TV`xW}(NMa*`aQnX5|bDr}zy@Q3H1mGS? zNKfqVPe+c8xS}tsHYQm!XNT8mMjgT^+FTk^C-8Ed`}uR(VLITlbnN#QD)(CH6a>5M z+2m=Xt1$b@h zxj))l<^F`_ei&1VGTXU2GR@UFEMF>EH_4kV#+o9Q)rpm* z6s@84z|=&+^CvwM_CQK=d%X}Vhyy2rwPhH^ z5cdS8m?8rrFAiifZgb(4P4 zjEW$sE|Vi)B{d+p$V*>`*tVMOm*;(;{VW}Mi_rsP8na0nc4@?xC(X11)wzmEw1Iv0 zWiVOZ--MGUKKu^x46BR*haAYk&OeY3x#xWcEtzmK#KU#;lBEw6Cbmi2sp6eD#_w_s zY$W1;;-o=k!y|9wsxvDVBImA(fqRMJDH{M1FoG%*PmZ&-OCu+Kdyry6wz?Fw62zL@ zQ%;sCFbrHCRL4dNFQ>SjCLXdtu+J`n^8un}5_#V3V-RPVoh11+s*@La=ItZAJ!mCL z`oLcsdF0aX6-e%ylM=l|>@+iPy+!_W`fRlGZoOd?3c2k-&(X`pY^S%(>wn_%)M61C z`uGNA**MJ7zG7)EV4Iq3MWZ5?7iwfyB+qnx*P zfzJw?HD=!`20YH1Q)mX1;!bn9g&U~sj&UJC#h^&_E1rD-aM{`g+}RiDG7r#(ScMo`kB;ISHe`&hlKOE6X!d(Sq{ZRK47&~*d+Q_4qex0V{6^T~Ge&Tkj zzzavV2gUZ0U-N4QUx3$6Bb;q0@G4OMp$Os+yK^#Zs{Y2D43m!h<++{Bk|1QD+ z{sT`|yrXTCe`iiD=`LAfrs_g4Mcc+%H9T!#;*rzDaNRnO;TArN?nWf4b^PT|j`*p7kY4aL`lHgx)`3vF6}i!9@5jLajun**9~ zk%Fdb4S`G$@#QBEY=cY$EN9?@LItuk`08U*A>p7oHfQCJ!aYB}o8y?}V>qc3x97tA zpY2E1ZT%Jw@cZ`Ak<01r5+|ulx}7LsBHN8obLPyCz>doB3&F{jzDuJG6VuQmD9XHZ z&FsnF2xw#%(%Xyua%vNH-2(33yU1N1S0f$4DZt(Qvmm$|N$zCrc_=;&_)>(e{l)8O zVBk0HDTpp6aj$Ad8zFbX{N1$a-d%mfu0fmM_em#ND;&p}kf*6I;<)eU_vUK@%|oe#%C4MDDBjqu zQ+V48OYxSe6Zd|t>h_5Z96QZTqus%k%B;kXV6)Y{Js#sYgHy%#FesW~)?Di~!(a~b zNhruUYXj|u)MA<11krHhkaS2>+mwk!*F+S4sD;06=tsm1I_T}K*z|ti=$z26DWMXP zEZtFtc5jdDX68cn8eND%UGy>EsgXdmm2HY`OpT8c-OVwm2*VQnv@9FPg{s`shvyb- z$I`m{Id`#*g%6pk@KkqrHOHn-qgw-gtcou;HLnPLYq^bw5T&1=C|ihk^YSxNh7%*MuCPfN8-;9NC2(P=j0ng)HEPXpyaC@9pF_Gcv|GGB@PEvXk_MJ#w6T}+UDNz zGFMZ5TmOAilKCb#T}ZRduF0k$7;fbWd^RFyuAmrYx(#bms5df&uC%o2%-4&(%k;`N z&r|9+(2)drUgw!pJMLI0z~uO9J>7FH&Smaln|EtSyugrU9JW~r`b)B}6Jmy+UfXyr z%+D)`-2NI?5|LrAlN}s2T+GQ%f#2{-HfR^*)zK*1u<^n)2o-dm5QoST{BbcyWVKnH zFcir$OxZLrT`dtx!?ErB5?| zMu&FH6)s=>WhW;Fwj*smyY+D5@7^iVH!QywXw@jS;PyhVW|wKU8QH_hEf3zQwRykQ zo!vh<6+P>v_}a?!m6L!?F;^{;D@M~rAq`RIB*4ChVqEi)&Am}q#3LIbu+DH(Z3vGA zM%z*fuGJc;d4(M>Zpc2GI$`Nj}RNI7ISY0+mTXQw>3H6>SUCjj8J|-C(PUQ?GThYtzP^; zG^hrP|1S;dr}&!&#h`5o$K#SWMa^xxjC%aS`@SLjng4>J6P$7yy|w+FvRy!UGR+Lw z@zIET5(7+O5kL?PZjl{L)zUMquck|Xkj#SuEBpcdDH>&=$7tf$=y6lWqwR<(!GX0a zr06G4Cdgd5g(Tm0ec8hBoMPnAiqm}QTO)~7yFpQUIkJ2y*RuP@!2Y^oN;`^W=~F?J zj$Se29IET-?8=lg1N`+`<fUE*wp45jH~rviMf5Zh zplkNvGxyXJaCZGZvUV*NNF-Gdj+0iohgj+1xXB@mO#)CT7cu~ zpVc2;2V=#EjlQZ4S5dZV`+OmK?UkhXE01o7_u1^CA?CGC>OYSN$UyFhg)ZRJrg?k> z@WVsoiH&^?iK3YxeEMniACR3IMzmcBfSk0eL`%^QoZD0A-50b@EU}zJ4e)}1*Au)> z+(*vYXQK>UB$4wMB`L8DNOSO_?V@>lKT?oi<7oCknmnYwyQd#Lb3ilffgI*&?!^}n zxOE86a1h}dKTZTlM4}Tk43weLR$L&3Ju!*l97n)F5qQg{NPP#gcPJ3x{eZN0lJq&2 zXM7kPg#t)UoMkZjtU+lGB>f}zJ!G{-tRUSCri|;OSWvM zbdG5X@b(0XV|Ls)Z+UOp80-dDmMzGD47f~(Ej{9oRXwi;XRjSkzm8XE22ev81f;i4 zQ4KDU{~V)FI+7|v+?Ves*&>}QGZ!KT#FBQ#e1dt5DJurXnzivbCH1CvfNeO^Hja%i z;iffZ+^oiLBQ`ba*^*Mgj?`!r|59I#i z2j&eAWXfZ&a2`W(*`I#h(ZA6x`PngqpGzOZLb+Yzls0R*riB}oVwtDlp&bh1?ADVcH z2^*l+zOP0BuP#nb^;SVuK~Iw0Bww6Wb{&YkXq7_WGrzS85LPWs{uEbWFT?(UKOBHR z99Sj=RSkETl=XbX2d0bS`!4Hf^^uUO0Hqe-KyAqgBO5EJ7(tXgj4&AKie=+}HB@JV z(n-U{Gv-&$PPW49%5&|@5n|InO8ru)q}tGcR+pHPK}r4)rl%;2=7)ld!vi0KkO>`j zub_Z}`^H+rWUAJyWNI!KD9}^c;-le^#109hB5^f1Ow@C!rx$qUAs)1hwOqSNW&i5Q z$^B)@PFfSn%U=`9pYp2*M)9+XTOC!6n!n1$2k4{7s_FUg1wRK0Xj1z#pDyhg$RV5~=K`0y-__@xHeD?Yp z1>O#*CSwQ1I9Iz2&W3YJ^O7G%hqhR&&^uU}<$a`nRt8_RTuoTyL_fmg3j8b%+2Y6nRr)Mjv!n%GI9uBf9mZ6|uArzk(dvb{F1p4O^l|9%is-&i&P~VZfpsmq!-j>Nx z+uG}-Ac9?gL-VcEs=^DG`{y4}(R^}Yyup-fLI^Wg8h9#2OQQGo8-XcU>Xgm<@0aTk zkQG8DAWnut;CR?neee{-pw&nV0{MY|6-iTFxoK0z^$fv2n4QDQBJ#8Lqh%#vzol06 zisE-CIhgNDZTO(wz23tD3-kew6W4!Efy;YXHQvx5`XLD=bJeNrDREJ$(ETh-ZfouW z>7C_`)IF`{lRr@Dp-M^%8MJ&#JL@2s9pj1dZ|f6sI}l8EB$>g0_!-R4lo^bW4I5U>~HO5px$&6C-ylY+0XV+=**>|jad%o3Q)+j1~WsF1My{?GX^ z;RjgNVM0twMrYan*ThwK>qHyRKOIZvlGQp10tV^A?S?*n&I%j-tW8>_IMkvqzfm%m z^2l#9Uj1w0q9q0YvREkMAo5Ux7dxePa%FHEcJNVoCS1Aj0QnL9Y>*jXIST&zkxo>wjmU&7SF>^Ghwzk* zyrbr?4%_zZhZSFN*- zBo2@(xv{6{&|~Ld@YZN9{V)VF(qJxA-guZtMYLf9wo>&lV31R8@#3&y4^8HOgoY7B zfx+g^oG=hc0nTb2a*4wEe-T*4ox?kG&_E&sUV|p{1aXxS0nvB&nW%0D*u&(6*(n)l z==5-|#I3V5FosN&^ouU}3z^v85nMtJl}I_;YEA+ewMui-8bZlksi4jz}Coz?~LTVKg7=_4Q)N68^YGIfo!m{&9%>%L6NyR{IpVjfc_N1H2UPQorakHXbcugWFm95BY40~`?kuZaU0Qj1Z=0u1i z;4W0_B~Y?Y?<~S2J3PYP&WQQ`>)lIfWXV{x67~58qpP70Uo4J&#pTAVHP}Nw7bhRI z*{^p1zH`B6URB-gFH813Pvc`2${mPqhVVGwS2qO1c0~&-Z1?NE1ACP9M%UW4GyL2Z zRY=4nI(1n;2Z$O12!N=mB@#_)CXu;#QBMNHiX|!SCTuZcCi&p-YeH&S9pOqiqZ)6g z3s(EoNWZZz46iOrz4#YbXTA=CJaf0^@edQz!H`}$B=7EAsGwHGM7x;1J)|eJhD4b^ z7zM(C%Njh+u#r%Oa{Ggu9X!sWnNT}yAag6BXJMRpz<$%=y$hAfZ`H%QgL!o0m`hr) zHfe-i1Gnm=xxr;}pb03g(0&VmfBBLInh(+nwQQ7v-rl8~f|~JUP?Pu zt6Bi9Lf7MyKnm0GZT8)hE@>%Mgjlb@6Is4-c(~C%u)5#Bx?Ukdqpu&-iHWGTZ!vAg zJO0rs{X4fnX)hK{3N$t=<^}||H~xySS{Fl7W@x zx58fJ!W-9M(c=ZaI#&}H{H+srMKgP`#>L8YIs__>+^{oe^`IPWX|((67d-Ls;Zv4y zWMzz#cXa->O4s;PJL+Ng`n?e^eoCiJ1>+S+1z7nD`B0Y+j1q?av1i9;4^{R}{|FJe zvlo|ltM=VJk7^JeuRv^$y*3_>cXQ*l3KKj=@c(^vD-ib|X@Q@S>}tG31g#J8#lgYp z1A~3L0b{5DY@(QtkiVD|)Mq!TAQu|)K-l!eu3>hxW!Rsa*JS=+IjBbG3$hgvzJ%~D zs8R9tt$X;0hv=uw`U{P)Ko_3J0N4y)l1Y`!GU9TtBpq|ofIUTxwg49zJjk9}_hdBf zgyDBNAhw_fj@s-bh^?RJYQL{`B*z1?-@#^n;AlTowWj(?Kq(XRb$=X=Wj`@%>Ew~l z{RJvzlDBZ?^4lqQdnX<2McmUEl3Qj*fnOz4P_n%eb25{Q(R-_)4<*Lm|OTOPs{{h&)TBxji5B|7`_5N;espFV<()k-QgsvyaFep@6Y z3Y|UUIkd!Lc2t(Ku4fA=OUKgke{&EH4xUc@S_ty3Ing25ws8?~uHIOkTXh+(b=aJT^t?mlF_G{y;V?ackPbLz7$X*4(-4e0t<k6;6F`fK8@Q zAA;E@1X1PYPjvHn?u6L# zkXHA@c3tvVw-Z{c4E(UcUrsWdeG;8TPwgvVQk>yI@-x{M8Avirr2)y`BtiRT`o+}X z>>H(xT0*kbAO1-`+l(8EkJQ6jnh>$V<3Fv5A>|1DXZ_%5T*VHcKcmvR`#eC>50HI& zSD`TJv8f?u{t(M!Xs%ug;|LyUVpU_HOLhQTc&Jkid-#eLvkea%5=+n}+k%PCvBp4dat`>130Q^*2&nY34RIIhchi$LbCtZ&W_G8!~U!pP@b+zp6gq7Me#$gp=y_E3hD`=w*`18Kr%GSGXb;HS>G(H!v}DPSY}2 zYIgB!6CVLb)&N}N{L{r71AmLkQjZ^y95o$37*_ zIQKWn+_V*n>zq_UoQ-?;H%OyQvoHfuMO#cO7v>$Eolg;T$TYt#8N#N;o2N?tN;pfY zNxKN;mCra74$CC^ocXA$0B0|ye#v-LAVV>y0uYa>_zmJg7Ed!6Rv`D%$6B1reZe)f z9;=7cHKbM3RpEjqSdlMJZgnge6_>Ldk6xliWPO8rIWP^A66Pasbu`=!@uL5ZT97UB zeMVB=ke*YKN!bUWgeG?>T$*(ot3+)|UCN8NaU?}6Sx81}{@+{^`ld=?s>wWc)o&3q zjlbDint2rvl$~tL8_Y&Py$pc;u*31kx5|DiKdC<;YGZOn0fj2Ca6WPX^czwKedPSe zlcHWqeMMUVru)u!=Jkm2xF(j`9YceS`WzZl-ZBCDMj0RM}*jmrV zuk$i+b22vqoan}!JZfgdUq-45%c12dN?aXqvuNLtA490R>Gw*{Xf*^7V)wH7?3k({ zB`2elshsy9uAl;~ZyqFP?Kw+H{e&tfMlJqVvY;?0TsGR~tRylYTx%F4@7Dbn#PNbWhb0Hhi^SbE)7`8lq(56x4UGRP zT(-h2-G-&aO992`Uw$OFeF~lret{5;*1IHa###bjx*MC&_1G;k6SgD|$_~i1Gc39- zjvUadRDIut)c`vofiZPregUx0!8og5k8_yIW{fiVQ!kwP=iijN>>b|_MPy{}REK)% zm>@_(bx5$q41Zm#aiaMs{bp*ngzqu2i^xeqDuZ(30>EDcT28xUvc;@CC1o9BP_oxg zNyT+r`EmsGI_5@m@1S2P)69IkRvcF|niNVWJL1gK66{m*1h`(U<(cV^hfN8U)e_@Y@X-Q%{yG$s85efJ|ZrRB^w+dYNz} z^+b@9_osI&1Md4z9DzMnRm!+U)|gUyu|2qoWh}p=FbAwqLZ>w;$)sj!WA@lQfhN3& zx28hG655z1woq26LYChnKsTn)={!-B7%FAl<5ulHE9_7-{bdN?oIEg`3hr^T!v}Y$ z_nX7Tm$WfA!-3&HP2O(;h^m<7cK~oPRp>NaDT~wrrW658R7PAG3)%Z(niww3(DTTL zF}}oKTunw(H-=URRe zFa<;3P=rZ?l+Colu~=gM3OGz-D{tIQUm_|Wq)cOoj^wgS8n*?V4(^=hBR#eOT(sjG}4L z@q-{R)_8DU$^(F&=6&8~n4NbbsO{cvLH)=k8I`{67(jOd1dhrfziHoIt)`ASe zmH)$u-grnL5?Q1*F`)+_63vMTewo%yz(dyLL;CCC8y|k36tm#}fz_z~+$%cbJ}Gtq zReSTA#AYELh;19heqw~RY_DhRKw!8JcMq_39*EEL?xPT`pT2};l})g{^6AGHETj;f z;08~VgV48pqzMI+02g{=FOdSl$KyzxQ4;V zXyM^ZE(4XsQk%&eX;e4f@1uvH_NO051p*#k5O~FqZQJ$I&0Bkr=9qBG>7zskNk#A} z)?ZoD!ZVlU;X}P!j|wz+j37r8rqoA!8QzsbLw5^|1sU`4d>E6&3DRi{0L=$lL-C@i zb?#xXe%2`0eOJjcP+2SYsm2B02H0okPz(Si;Br6|j+=wvX(*HX%4W_GBoBuyG z;n+DB<%Fzu`)PcYTsY!DA4Faw;EtD^Z+9fAWcjZ6`?>z50#O~TSQ=Ic1wAx=^C`ty z?wa)tye#0Z+q>zOW_-f^H(&9)?Rc*OZdowQ<{any0(D>1<#`rV;`Z5xpGpmuQvWRidIo3;b_QSp4$HdJeLhg^#rw3m*A+X?Fjm!lo%> zo;I9reJ=%RFC~TV*z*m&I8vPpU8zlFe%(1YfhxCSftk{!Zeof71@laOOFbH|z}Cak zr|bq-&e|%+$t5_`qhflQJ-FY}R0kt8mb0^#-@Cz3{8-5MinVm6>-DKLF}3PUcmFd9 zV410?cvL}%P4SNsKEQqNrVg?hTjoVOve4zPSo+Xijdcp)A=1j7@zcr+5OfL~Z;gS? zR51zzk==7u^T$0JL9uCaTOyG1>Gtgp97jO{u+u^pZt6Tij)%uFX_^OPrKv<=RwXEe zHR`j5@UR#qP-zE-_mfQZbD8lBf=DFtA6d+-FUepVe|W~CG|#F0O(P0xEkPk^=1?Nl zy*A&I+CSPFU0z~5&L5T?U2^yZF_IK~Sq{=kh4LJHUzFwegnywSOf8Bs;XNGW zHQW2GwQBO1oJEoc4cZF z@k5XVs##MkyCy)_3W_>K@M%sy;d66tAod+pbycbR0uLayenV3+@9(i*RhtewyPttcCz#khqX$D?HTx6ge$jfp>GIgDsjp?Mza zP|-l-bA7^8pN=%zqgRenjwHtT2g{Gf8`T!ShL#3smK04AO0l4XMfx zb>Rr#wRZ_+H2sknZuGNaL;CqfFp(|!5H0eQ>0`y1zus~*N-`a)-C$A}#Z7km8d`YQ zq$@Y@yk63g`x{}UmW`fbIN=m;Vm%V5uesRGn7S8xexoagJti6`^!NxHa%@5og(EE$ z#T+bp&i9^XwHF4nwkT*rP(l2h&jxT^05@Voa13az)LsT$<~9YQs0EeM4WiN_kLl1E z8bfKkes2h|bG{LvyFO+uJ9NKyM!<&aPQ4>)gEDx115Oz{A#2e|`bc@QoZ+=j+330nuBUO&6)OHgHmr0rFsWg4UF7H&db zKo73y-k#sZB5oMVmoDqs2fcD{hc1R*;EE zm|$igD|P@&c}U0%d#pgp<+2&xCOA>YEZ}|yw-vhi4iMCSYccRAkJHkc`G&CJ;YxX2 z*#!#%q$VUFmYzRA0kFj58JgC;$Kx6GGq|+SO>jMSL4Em~bl-WF-0y2Za8m3)Zfg-S z8_0Pbfg$`le<}suMTyFqj6&N$wooA!~d>Z8R=j7PD_z1&nAnx_x3yReqv#;(Y zdVF~$izCWha0}=0GBf-mh%K%u(PQM(O;Br!{<1+2gwBLBoV5>wRUsjrcX6q$VmyY# zXKY$B1Ba-6V_5a)4;ZY@p|;?lhJ>1f2R(6d!#S;WT%rrH-0-np`jqMD+((MR&jzOs ziTvrZm{`{2kT)r0(KiR)%^6u>CNocAg9IO}OycLvS@%g!?g?xonr0dPLtC&TjI zjN4?BF+^9~OF#S=Pe_PQt4g7)%n-(7e=1mZU?F07G0_}=+H5~rmI9&2(vJ|@ofIj` zGiG81t+IQmA?R{&Kb5WQu)N-|)j1Pp7D3n>wi1|S2`T|Y7}FveadD%zC)tS6l3e(q z2zdquDRId*xRE+WKcO(Bqc=l9Qiq!|+1YWF&jb|e^qO4pNV{0`Oy?xpUY!lS9Tl@u z5(^Mds{@B%6+!eMFhn4Ue21q{Tg8k`p>@K!ANH*WWUt`rGxMe_5ibGVtm`n=H;3h)sJ8!A>BEi&Fu&mG^hT;sf|u68 zrn|Dc=q1A!bas=ag{T{ACK5}rRgw5Mr-0^>!`Ki@@}qVHu=aQ_M1W@_=DcxtJ9@Cj zxL(eGa|yBso-XJrtXZRus%}x;_-u{BdH)7xEqJ&X=~z}|MQR}{qlt?1B2A^g>1aZ| z?x&=Z)TF4>=5eO2M@cA)MisDubKWJ zrQ;}smG;}(G0$7ZHs{%w=b<~ww2$i9YkgMA3$mKj@nK(Hg{5h3CL}~|ZpNqoXm@HV z)a)+Yb!;Hw?2=yP74h9w>qjGp;4(Z2JF-pFzePg-jg63Lb=xjT94@l;`=aA*;fWm4 zp-k?)-%KCbdadS)#z4Nng!b>~sBn?#Z}ZzZ!sQwRFX6$%wtzOwiKJglyiI=&+aN+x zLYPAt)DNK`R5M^J43caP%WTN*@_rh49ioH;uXb6{;(_`LzvNZPqD@+QpZEBy<->iTkM>zIig(YDCnCIP&9b!8V{m1-e=cosG0TbJ$C#fGf9Hq>f*sLdRgIVX@w!`nX?*wd zJTi8~VZwG038B`nJ`aF475LjD4uc|d7J^8O#zWGL!34!1Q1GF)p}QAD4uUj3!b1#? zWD5aJi3U0(M0-;MxXcznMz~5XccH)!xJQp<2tdtw^nApY0e*CEJxCCSJz~*B(ShIG zn0HADu?uU!MeqD%&jzYso|4GowD9gI#R0%`77c}c%VH0HflT4?0|RRT12Icb1i*iW z@&AFNP7eSh*)EiXg@*$hgrc1*qYrJ*i1dlelBCNc+K)w#D-%ESLNqp;Ze ziXl1rOy^SZxV)|EB7F~I-f56XC1cbVd9v51c@nTZN6G4i%t_?|p^UI?^wC#}+ci$7N&SXqS3ylkNlHg}PymXHM@~7R?x}zu19CRnm z;Fx0LrO~AIuDdPqW9b8I!10s21b=7pRXcoF9!vkkYgheck5GI-BO|mKpY|U*)3EN} zOn>W|xKKaqN&O(Ky{06#`-AGNL&t8{D;x8tgm058XQ0KP5^$~m@9xb_FgxdVI&tg|4^3%LoAc8gt%03sxBx=6v7FaW;ec z^zVOY&!Jol6dpZlm9QopIv-%ECne&P{w_hkOdR*qsz9gqyYn4PXzm>GF$2>N&ezdG ztj$kQZT(KpCjSpxZy6QW(nX8n?(Q`1?(PyGSa5d<1b26L2<~pdgS!NGcXzko@S1bZ zci(+uydR8NvTHXDbZus>HRtLKB*C*lm z_lr{RI_h)#|8l?dLP#L@`vT;CnPouk_dW+w-}L`-KimHg_xpOQn?L2{xtY(A&-+yy z{0YmUq1tC!>SX~K@Df%rEbU-t8*E1;8g^iUr5&rrRQ_7YvSaVJZH;dKRW_t&5SxeN>b!|Dd2+|3fp&Ar~%2e%Md`OWC)f zS(={daJJwFp1yzy2#!c(u~6qgf298+SmY?Kzf5f9|BYZBsAl~^{fuB~OVx#YmN*J< zvUtlua~#GPpg%mTRD%MudQ&Gk5NIzR?riXZ#xf{c*JT4F%)i~jr5P3wL$q|f>mi$X zht$7`;)II9>{8J8azhB?FewBwbF!24Hva`g4RqUzvNMOWw|kw=52|DD(S%_n^Q{qt zY`b58F=LgviVGPR01OCXk#BgI?L9Y11h`G;2KncPG3ft|T zQ2Q!feDc-I8v}f*fEHjk1PO*;Ya|?Ux7gOaO+jw6bi5UEdfUe6gaZsv`9F3%iL-4{ zqJTzd%(hj9nSr$ugR$Bt^5rj&GrSbrxIXn`+Lgu9=!qIdaCGcpEZXV;37@0j@8-Cr zrv+6S=I~55w~j&_R|+tOVF|fiQ4{m0bpotF*nQLUY1u#a9i5E9U<~CF{kt+2^?p^s zly;)a;9?!*09Skr3r+eh5-Sf^)!Z~cI#5(1O*UFVhktWtF=rDzMLM zc8FpQE3;@To3X@o3@A$jl6D^KEGKbW`04O+i{yQR7(*VWpPCcf5XrYU1pOwy2%}Fx za%aNBM4~x?ZX+`GUuwyp0yAIucAbrqGaBhmf*kOf+Z120YLw=P+pa3so5SO}7N>n{ zJSjY>HR>4l7z@v;GOX>azFN1#A}|jgjGZiEPd9S{V5TYp6iJ7QuyiOo%8V>#kP|l| zuq!4VI*U3ZD*^061G@t}pIzWtCd_dW>o`wlOq?XP3|V2y2+T1G3~*jjI@A$$W)v6Z z*bYq8gD2&fU_w+nFcM!_n(2_Vu+JXmc>fDvLK{@{8A$Sgong!IRl}e=;9;h?G~IWJ zh4;DYYU${H3iN*TqO7X>hPJXuUB?YMRUV{G-pt`9J+RwfV$PlSXb@Z-#FI^u7}D23 z9_w`)_5XL!DZf#rYKKbV>Iv)fBO0bUTH39-y*j= zFANGe`DO8*YK+PB*nIIG+zjf+pRB3NX@ToLMRtX$h(t6Og;EjKQ=Aez_8Fv7!^J~% zrK%@BKwS}gZ;|YtEC$!;akD0eQ2wR$eNze3v=`&MX_IxoX_G8Fbd>Kh1EKx$`3=Ix zlHm}38-E~|3(n0S#zRlzhAiC#3e8NFs-*$S52;1ew#>`0V1AKcY_;&?M}w3&!PNC< zgZcRB{M~SoJ05>APKK~Iv>CqHJIclk4XW`o2&blr6^hdOg;a`0`kaZ z_mpwZf3c-zz0S|YLl@OXH1+*^TwP4cZ%>#Z1^F431eC)crbFj`m8_<2+@?GT`a73%IP zM6|JrB&)qA?w1wCB%`TVZbC=gMnXs9;SYgG zWS;{)+R~xz!CdB7STiKH+lZM>%m-el<6bEw8T+j5{!X~X;y4}tcf`dKKyaeuMU`wR zF>!bZ-T+*{6H2^@+M+xJBjtPNaYbYgx;WK5;_r>;1iIZGA{K(Pz84?j3qy-czQxX8(%>!Ybyew`}o`o z+L&v!$E{+=AV^G!-Bz_d%uWkqT>D4>=I_dqc9cL^>PDbjWG!@U$pc`c*8^2+MD^uG|@f=$8r|eAi}D{6_V= z>)~8{f5|xcHnMuKaodINFAzG1w%*EIZ@uH~R;GvAo@|EflksnmrV!(yy4nNpq>CZC z+QnApQ8qI?LYpg4BV9N)NG`sgNwncz`gy0>gLYrWxpM#A0hV7G+GeQbZr>-&&0xc0 zyqE8pUk1%QZ|7@jBWq)I4&1qr>nd<^tYb+2WgWSHV4_W*_lXEL<6DG98EnlQfv!n5 zTWjeo=G#8|CCKO*mAMol%;>2vcrZw_mg42SBq7Y8>7ltK>BzJM zf{1Q5u50QB*~JOWtzoCs+C1t(pBHj_1segy3z55&RD$-Uz)egHdDDicw3H>k@Qc7+ z_C)_~g|9F{oW=96RNwB*C^v)Hy)TVYV8x$i4Lc)$rQboFDO{MFjD&y6kfv(0e2lqL zq@H@KIsTm$r{+C}Rovu!1$UMD^Ih6wp8m9fUjQcWo&Z0(TxR}3p&1NzWyWD7k_=Be#az`1P08@%>Hdw6blo-D+7vu7=rrY91u za6W$?LQ>5R#WROt00cZ`tx^+?jmTlc`^eRo2G(}Stes~%G4;<@_Vtl-I-Oq0I+%jr z9q;*cvfwqVraB?&$|0$jOw?` z;RS8w_P<@Zw;QOGaVRQfdm!l2kC(6Rm!)+Z&)6~4EIu9g)iYkMIKW}1KQ|FQ${&%n z?M5|oA4Uw-+;K;~wG%}#XDxGGe)VYHj6cICi{2$dun>MAZsd)9{niJ2Dc|md-{;lI zcRlk1;r8hQ;oFh{_x3t&aZQh1FJCu}^~uaRk_}!)qf=X8=7?l4`UXkWe30TEU;poP zlnAfTcD2OZh|9Re?^4%V=SU7}g-Bzp*Z#|d?{AMRtCW zM<8hMgL&#b6gb@F;iO0HNbfljQVN^TwhMBHoiT8b1 zz}e~*2uGP*jB!_Ve*(fmZG8qbm|3>Qt2N*$k#2A376QWi+F#+g9ltjF-(%WcC@;;v zgs=pcg)sW?T?c$eP`g=sr!A2k;5Zvze!4<3i`>jkmUs-=dw*m zQ*VP`L9m0$Jc95OfAvEX+**HJft?&70yz{9e)~hreOj`O(@RXHE%YTXNJzfXCqWd} zH`8zeKZ@kl9=Js@hg=Q5@-V4t3caNYZ5GupDhTB+Dp(_IBS+n%gHycv*ZLUc1_{+H zC=gI@BUj#|L(4pZU*9asdy)SIcUb1M*T1Ct+?U9=CqMTkVOZa6w_#2wna5j%*+oN( z=V$kjV=LzNYpSg~4(H*&=r(W}jV3SQ4JPQJT<_vKb+BK;g-}zhMU{6H_9!xfk{;3B zhbc)Y-o@J=f1~F(y@^j$)e$ZY=^%zTK8P?T4Y8;%d1a% z%_|PSTJm1Nt7KP;`mSKBL?#Xwou1DV<;Ui0pISh;WToQnJTJ$Z^9m-LyIDur&fw0l zjBmO4Z{3Q9@TTis3Yy%eC%`K2_d58DE1;z|n52u1UfDSQrRvNC;q}OzL_6%tcQW66ivMHL#gSH6 zA8NS`Ul|)UR`I;OU#qYD)y!@vphF@3X!=%H>)=0&uJU2)Ds;3LiBYGMw$T2mc_QB? z{-CUL>a7G)$RvFOaLN{O0K4_6NZI4i7*_BCzXmHj-({0GLagn(MJ$mL+1+6 zPCyMbdwuRZqD?RyROr+Or1^mV)+xz3l4d+8(Mh;6C{8e8&xXK!pQfr|Tm zUM_N0QmBL%x%v%!=)h%uOH;RCzM!E^1(JE2V0HBgD*FE18yxUr<(#bCE)hP>*mmO# zt4kp1^3I61ya#?~qCPNhavAu9b(E?78%w6-dyiG` zQfVh;bo@-2)>e8Ak)=Z7ADVM3u)UPO?1qSD3W*CwK=*9BuNuU^OTJjK12a&XDf#Oy zT~uh!DRm*`1+92I_47HhfDQ$FvJDf=wsgu}7O#gBK801^ehahn5JdF2?zJ_f|Gg3p zIg6dCD1xVxoe(M!XSEE9*|RaE82(#LzHx{y`j0i(m>b){k1L$BH}YmCA}ckOw>H{p z%8n+e!?ciz)(#FtC|$(-`}2)_xnfzKMAlZ7d4Q9Bz~)?*mYG`D`+A32znWsAes+5N z#ZNwrZO8s7nP1$wPiVfS+3NbhJp2H!n5w})9B3Yc)2HdMiDj^P$b?8e8Ha7Bb!OSX z{CS+`D_&cvoW@%%YY7BzH?|*AIWEP&KgZ)fyj$a`#oy^nXc9jL6luI83TeN#rh;Pa zvE|MLdEyGw+7tY&l8i1es>Kw!JAM+c3KmEbMN`33hY z-hg)A^VFeJ(r@-Sz)en-U$F)8i7!upes?>sokZHJ()ZGhLxrPsePG1uWt3YB`KPC* zo4b&^>YOU|n`9bXaL%%7p1#DFU{mzwsb$vOuTdMwo)!h5PNCtxAP%m{cQ+ZcrqS=c z9q09&C9L8lx-(Y4K#M%UhYwVs6lJ;p$jdrTU}WP13d zsSam;BJS-jBHo=p>!51lS6ZIHD~aDXy;@RuugPgoe2!I8Qq%v)iyb zFSkwY8@jpt-M>-*9jC#tn5s@-FXj6_4=;})N(46}nFe&l4&xg0jX>A<32%L#qxmxc zZD=_a50*r+b&52OryrmgH!O*aL7I`v0CdeUq`v$4Wch-3YdpIR{A`wMSq!oRsG^aM6UY^#}>H2a^eg+Zn-meDwHK% zXV{QnTsJi2(B+LzY1z1fJpv)~z_7Av7d4KD%&gRoFqp`npwD`&ymFByt+4BTv0b~U z8TKGG_T^q~|M1hc9-aj8I^d1f9fVYh^v~Z;TdlK~s+2#y#i+7Q^!b4Q_9rZq zJy;#8Pf=GTS4}mXZRq?ip*l#Vx*d+@lmk4!aIbYa76^fACff{uRA)!{%3%Rr4HotD z=`DjJ*CIkSAE~IBs<0)qmW5t*ut%!f4?kcYF)@E@&Y}LjLrwgW&i{`-F}nIwpJ)_2 z3KtQOBF^lp*#a~}a5mL8DyNQoG;xr|TW@^lr7fpt}Qzce5UgbEA^;f&C6XVsa=+_xBUiEhlhR9p_1Z1O2angIO zLgKMx%R|;rbMGDGAkib!_jUrLbhRJpdjSgMj!L)*%Qx9;>s1KG@@%e`EW`^Q>R8R? z+4UR;GK|!h8B=6z?$=OJdoPXMrnMG%R%40QXU5O$E>E=wZ5G%sZWmfjuTK&i0hU$9 z`XOQ)+u5(0i+vr$1UL7p_U}I_n0ma>d8x;bWLKM&%1Id`KFB)NpChqc@jo8?f!22$ zA5Ud5sG1)_SXpl@OVF^I?MWY1YxNSLP01fTZ3_sjYon}{(IVJ3jlG&yZ0fDEJOaCP zxoP)2I={lRt$ODIUr6hn>Y8~$y-L|-!*FLB@XAErQCa@et|hzpl0w zA5kHS`i#y33MG;W+D@g_zl}4qidJgas}Xy53JU%pptQ@?5#yPS(5PaHx0*<4%iHJl zE7m!RA5%sgE~A@HXS$~T*^K(7Vf*FP%qd5x&U;Mhe}P)~Zb9LPj)KBV22f8h23NB9 zmy=9RyHTHy(Whr?7V9l5as1|=4WmC#TvIKFT86hLhIaIj>H6e&mk+t+g%J z2U&vhk!tX-D!dc``5Q#Tc?G?NL%ewC3k>$^lPjfl;>_~+N7l52bXcVLJ0iGGt4cBv zy#%Bny4Pw;D`~Y!uTSmS(fpW(6t|cZiGT@wgTM z1s4{c@zaLx-?Fr$2zM|XeWxJ}^k6sn4(o=RdvtrcF|@xZ(?iy*E#_PvpkO|g70xYDKDPC~ zbkY9^=2gc9MMFMYv$x}doS&_Z9;@r3!z1-ppo)HC>hxN()mWi~HUL2o4~y&t>*=as zluo8Zktym<5D-FBO_>E+DBkdB?}vdM7Dwv!62b6C#V@ARPw_EXChvD%J3G`gnFDiXjs!W1+j{sALxUMnRvaij1_=%gpMXMh zmEFXDq!2j2E!V)R6VkETE8eVWvoF$H9cwr9u@)6K&@c76DhpJ;_E$iahULZ+954!f z${}7~UKAR%C)=8RNm^>-`pu` z?E7Cq37(j#B-Kb-*x72n*kqJ~SEiE|PGU8*+;kUsUIbrrl7hkr@LODb$- z&0Z^$6`a&${|&=LsHn-R9|w@m@^v(}e?N3a#-={OXCyFBo@!J2#vq*y}I- zsKc#o0m`SSdOXU3W>@{zaa z@pD2iEdj_md=CM!x_W9w@&ac&wCK2Z``>nO{>h^`UPho+Yfk^3qEdO42vB?ihUMZ% z7~M3Oe}NKWy|NROdtntp8UMumJ;U(4s9q?!Q&r$GMX&8_-W)bC)1PN)pN(oLOKg1EUcrxB|?4wI1+YI$$q2r`Vtqb_wE(P*rgUh)!^PLc`hzPscJZP%T}W1GkL&Zsf= zhiVsyUDO6sKTe0n%mXPf#ezc8Hq_KP*xM&|{xF!uVy;2V|tM2V@hM_b}7LVDEP( zwH)l_r+dvy!nz0Kg%#XOV!N|fyxWbuz4x9K;dWm@?X6XVXJ}a|H0>InocX_(7F!cL zs&s)=X6YMm@X1kl+rloPQ!f2;7ow%hYP-uTKSOYqOF|;@bBCg5LbH`_D|-B9Y|TQh zTZ)UrUoo`TEN95!ZR2MV?@TG~Vi?o_kRr zdv1bw_G0jT5ROj3zr2D2-{r~^@xQmb{pWT)mz&ye^q{Sc26Z3D5xv2#R~!{BLHc>< zS&i00YEIF1VjIUg$K`uWo=vR=99uePPP~izxQHtlw2F9FHeyZ}6Kr_QUs#fWQ&-mP z7LFA_)w4f`#qHPeu8}Uu=8;RMiwBk*|1Y6+k}ZpuPKlN&$9Tuqu>h?hrY9y(*Ou=B zrKdVm9(Eyr>Rfko3ZUn%a;rYfQ5HWIsTV&|I^bO<5+|bXoz68|9Ayyo5{8hty6|&weYQc!x+sw8|&Kd=E}d2f#&lqusHB zxF$fc^7y5_`dhI}f);&CREaD2239Z&sL9P4=~#8b(#Do75%Cad;<^t3ikv?y4ZS+! znRY9|&Ok)%;2phnL?A798*(zFwryImH;VjUvgF*r|4Wvv8&{@`ykMS7R46tVcyCz> zeU&!5s0agLd2+{rfg+N=;Porr!Hb^AFdM)&=`6WfG1o8>w!b_b#@x}U<8H`d-_rXI z5^abmZ5&q&s}J6b_Gj-@Ppl4IlHyE{Zhx})VdKxG3P| zS2~reT;mA`eQki-R1uXUFtiIj@%7L5`oDIsJD`Ep8sNKhl!exM;Is6Ud)9h%Jq)j! zc9FkX*Lrh6nly62Nw#DCwKHYwMpICVw)xVW1lNtc9pd`K#J$XwzQ@_r3UaL*QRQh@PKNo_R0Z6R8bgEBN`ec+ zRG(JXR-MB1wM;~0Zs{yuPrB)bVowBzXU6F+E(7!youAviirL|G96In|9lK&O@~qv} z-(rwl-G(3WdL+6(#vNvnVI+EC!a4H$;m;PEZ4vz@>R$Vi#0I1q?L|IUM&3#r35FGp zW+58Pd}zCAvaEEtY4GONc=@lvN1!@~(j~>BcOVxEXDXKpZXgd-Gi7Bc0+}jdK!xbn z;8chn=>2T_^@jnqTY{&_`0V5~i>m;-$D+v*oKZl5FJ(oSf+a{W#z z^m6?UH7b=&@Tiie@NWtSEL2^wYf#>vakxmoS^KtuC8m-rJ$~*m4}TOs|-+*v6Z_>k1`#hv_MWX{_`h{nyz zo9-K$N}a*Q6DX2?b&?B_RA9Ih#KZQu6bapUcqJPz?jWTAR)qED<&-Ue&MdOmoLpx* zEspY;9$U@oDyL!2tY9&9LiY;(|ufmKYmvy zy7**{9Iuea2A_NGvkkY$J5Zt_Iq7*AlPx5Ze<)CT^h9`{cgJ+?eVsdox}LP_PTc&T z^pI##zif*RI?(!cy=MhE;Z`LkTP;}@I zJ3&b-N*4>_;4%0X_cscH5@Zy42ZAWd_<@8+m|F5#jZ8tL$a-`Qn5v_aO$Uf}fav3$E{X^e?!R7OGhpizFTl34T$*4Tk# zvVqPqQ~PIWf9874%=d83%w-s?5?>=MbKZb~W8;BQ>KbnE%B{2~;CDioU?vzj8wy{s z%(`CI<~j{qUR(MVfpV`~3cgHf+wR%onuC@=o|t**pcKz~H-}{DfEfdbluJ95KC#*wA$6*YJ${;x-P zCFr`}F7cg>t%b#J#T2AaSiOgaGL(Ykh{NODvClk$#yA-V)guz}7Q-cvS!+G_TnHJ! z+eHLp?9#$vQUpo2Sus%=y@#69m4amT8O9En8OQ#p!`J6cdfZiY6{dMJefd(z+;7Id zKBHc!UCefz+-X#ZOgLhq9wXNGdoCTtmiNz~6qHu6QEpKzLc>_Uuw|MsQ5K>jM2MaH413IQzB$!>R6TY*N~JuOk?B5*?d2{{^$s>Uextiu$!NTSp*1KY3&iKeXIpmc`)G*(9fu=)>iM}_FdAoLsv%ripgzq<# zgmW0OKq0se`H@lxgmYEz9gjmSA+-evkuf_-mu)VAIYvD!X}M=ymgx5x4-)Zdl_^;e z6b_89kR1>p{-XbO)6gpd^uYYKGA(G2D1^fYSw_bTp;~K8n-WtIFF?rAsM7m9VTA*1 z^Lg4+K*%>JL$*2~03=+~1RJs-=xb=>##Io^*Ywl;2Qnb&z5jNV=>F}NqV+MWgQaTx zv>?(ofx+Pgq+EakQiG-V>se_f4 zCR%XXQ~1HLhaaG;2PC4ZyRh!a*a5%D$*Ld>P|4%rfEUB#g=2)#fofz*7YggZqKJtl z%``ySZIi^K0hdO?geL(f4N#;j@gUGLNnlKbFd)#jApFH~`hSAZUWldpa`;7n#UJP+ znhgf^&*n1rc$LEc$VwjIv6gUZp^i1=<4+N$013v^b$=B8)QXSdpoKJllgwEA)Q6Wd zCx*R>eZ_Lk-cQg0D{@P)Kp3U~K?KxRxQAC7j*b)j(43TVj}~;HQY39B7~IoB1O%#< zt5m4u&x3$()fIp;f&fN3k z$0GRL$3ENyxu3qc@q6+60+~+iVW1=Nq%FnZZ4YkjVOmrceo)`j^s)ixROoH`eCC8Y zJb#JU`w>GICydnntOYTCkmHMGLo8x1$vgYXAe7%M>FqYsFqnGgK~4>RR~vFns(};SdHnKpzxEoFSHzaUj|}Gkj|;D4ad_7`*+`RuK1? zn2ojF4&ea_7pHU&vSU0xexY>O@=)}6csza^>c2P*v-byz&Oj8jrM4#`J2iG~$skyH zObYl?yR;ar%hppnv??|D_zi%_4-QwG^&h)KSnsmQUSD39j^%THrtz?KupXLbx8ul? zg9PM?E2ACh`$|V9P$vLvRJYnG8p*mH=;y26<{5LAqH*Gy4LbWJ+Cl6^ockpRLYnY4S+7h#k_7*@jBcj%AP7{GjJgS&JjvwE8erE4vW@%%#?VnQF)c+?*^H1LK- zH~^Q0!vaJ84bs0qOa!2V34tbdgDWWls3oov8MlkZ!CPcrZ9?zc!TVzfs5QrdaYXzbNIChcvid*>~~ zLxhuni%8P>moNVmu66a2FvHSE^}J?DBOykICQ(TZh=p}|W(T&Vlv1-}HTRUY1SutV zjcM5gL&mOHSTKmc@ty6#IzFDsXZPa|hp)TbkiT1`~vL@OZ#77PY3U-2Zl@`v8fB`E90^Bj$MO?QX#tg$6iN6R{ zp?0$vn3$||lU*nTR9u|RHWDlXI%*FyDiBE4dkN8S5JX#p`N*aB`krm4J>Mf;*80d^ zURMR~<3N;nd5SwZu=1e^G%9&6O3#zIdoWBZ@egEDX%Lctl=}78{S7U7 zz_GuoZS~;y_06Mg*Ofi(O_K%DodFo>#LD3Q(Wpr(HFI`zYBlo)`6>rz$({Y_*p=_) z6hz}M$v)9i0r5GC$hYWdQLhj@V+zvkukMx!IdN_t3p4CSfNS>1VP=ejoAAXvx=e#$ zm?8Tx;Q&lh#aJ;2G-+376`Cqv$r4!C-!_}b5l8HI$|)UV`%3MMY(LHfA0m1umOJ_s zJQr+s4A0G=+K5=kt3n|b;wwuCzvN$u1!f7Jhf;1W82_pz3g1B11^yKXv1_g%|1x`> zg5Y8TG)3J~ZT&5j$Q1H#qSh~_AF<-O=l!9wp{@eaQ{6C%27oyz(oF^d9YTxK(*%P6 z$O?Oy!lHn1HQhNo!U`w*-Ho6D0GeP05=pxN|9PD-5E1*|=VA~r5d%MnNri=9FVK1~ zDXD#$yn!<;U0I^Q8T1PbQej1F`w|q;fSq{0U>FpfzV;xNG1v&he`eMkKW7@Kwx2Fj zn2y%&rn|1%{r)JrMxp|^FIu&uKt$?Rbd4ck5-u+Y$b`WLVdkJ%z{u^Q{Mf@#0UCeX zrJ_K3Zcf&LS0vkC5|Ig`=z3M(BS4G~KZK(KEE+o%qCi0J9%c1obLh9OQ+Q)@g03I8 zfmbJO3$+dSbFY3BWxXkEoqaI($>aJTCgTEJaZ%Fe~gcUif zXE!T#9<+_i&0l3j{E)WMz6p!q{0lXRNd7+*QLM$9`!N)8l*O6{fWZAP5d8}f|H4T? zpCUF!NGpmB3nT_q!#_Y%+@1O>SJ*n(4uLLLnEM}4gb21nqRUmB3bI3{%kAlfyJ@Kb z!=tYh9t*})WX2PH3<3g(sM{wThf0B zqk3jrmQ2pL-fHj4Tx??_B^PQh)Or@)$Dj?JuK3kH=b(3TE^xTT%p=2-W{x*yDcj=+ zh_-nB4igw5t~IkI!1kK<#9hb(Y03=VhLdGqTQ*BOP11H2U;kn#j~8cWb_Z^!B6~W2 z`A&UB*E?H<&qC-eYDEcm#YV*QRF?fix8T9s9|r6k5&VaW!wSbu*Z`)E)bO^OOp>KX zmuWPFp4q0zWCIweF5LzQ@UUbQJ>ZxhS6pX1sMr?bSw01he1kZ$VDlc-8W{|8Qz{ke zSpfwOT(SW%Lys^HBy0~gGlpc3pjJR02)sOSX|SGMM6v-jb>O!K2(fLvOyCU=_5g+e z=nya-ZV6dtjGZ1DtpLz%ottk7$3KT_07v|=n!zBW=L6P0<>NRjQ|ou z)T$mdgz$Jfq+|pCKnjOI16V9>4N)8jS!VjAUNVgULwn2%;1%$7cF4&FcKriT)&dY> z1q@!I6gYSu+vv1CAUp`iqlPt*+z4g6%o;dI;DRavA|kl;d1zy}({V0gP~hV1dbXO# z$OW0uP+zRt*DRthx~m1u!1uN+!=`}c&nUaEfe&reH z1;K*riuItNlR2mwL5Rskp_KQ-K!q3KP)IUs$P93^1h`X5!VCh(;72Q&PJJ%Y((awl zC&~Hx;%3Q$cm)DTN~HEq?qHz4SX%SD+R%HZfok@FfX0_(aGs#Vcha7SkdA?)l_7H4 z%%w-;kMRZMu}2yhh*(5x^+Z7Md8cC<_S8mcO-9f=&@j;TCYwpz;Hm{}hmbLk&J&ek zw$`#paVgt5^%Dj@}F{F_|ilPVM zr^kWi!OpRykU-|6mKrmP!9fBP4|PH?B6xByS`aL2bf7p>M&qDHO>-Sv5NL4ZguNYb zm6?6~JoZ=%4TeDOhfJkWX+W#*(P;>1ggbz9+}wU1`>ch2{C-#apfiweAbGo>$^=Ay zM!*FV2kkX%hu?%9-}mW#x}4G%FM}-Aedbp?YqTC77$37ZpE_C6^5Z<*FXzZ5NFX^@ z^;;L0B@?rJ1uGUuPpw{<06rRUi{2hhqHrfA6)tpzIH-u$IMZ=P;_Op~;$kQJ!QT?Y zLgr>)i;GbaY3#(sPR};M@D@xjZGEUtc5#omvq=Ub%nf$kLNMl=oOML5Htoy&%QC^z zM7~dZ)om?^sX&GyuwH9)pRI)aI8TLfl5%~s# zoL=BI^*8Z>U?9#Vz5S5-qG5JVK&rMpi}I2u!uFiqebP|Q8qV0r5d(eI@+P~0dqp02 z@u0p7zV{)wS^eq}pOizkuGA(^0^&LU^8|QoCtKjOE0Nn>7G6}RBYo3~@m-d&=Hf-c zCBf*R3$gcMX>sFV9cYZ%_m`+HNA}QF^Vcl!mG!yBiv#$jbro~hTV@xo*GE3rznx`S z596R6m-El`6HH{q*h)zDTMd}+Mdrc!ylCEH1bau8*&_zxSz;@Dl4K_YGaOwrU(|oO zybKVJx=u2{q|+PDD8J*RNr#vL_+^5I^q9P^cuDuq-;q zb|;*@k0f2M8Xha*!B{>|AMTEkRi zZyRM)KC2t$Z&0v7`Ic;DG{UN37^eUao*zfiBcGE@f!ho=!~y4bWI7D|K#U|IdOPwRkqf;|)j1MX&WsrFJ$F z^$QQr(5EYT)!JrcpjEdd=`I}jKCc;(b7JIujq3R<3UU&;oa+Qi!(kmT1DSilY@Y{N zh`{2I2U$wn(j*Z+f`yq&y1#)Ht&=+K#DDMwmyIjK#YgHH8Wf zmo?pQ9b+7Fr#4lUeUUQxOvpb&GsbYpglrb9;;1G~GzLd=SQ+O9df)4OLIM3-bf*(D zq3!hNm}>Q2oJWx-)}+V&&Di>#3{t7O8gdrzckl=`Y{8Yd&3w^4CMbDm|gPE~W&tA>*z>i(|7}LQd zV?N5kI^*(M!bEVmWWynaLZqi*lCNo~amkZlmhLD;aWqacz<1^>L!^Ud;*nK1RMfyr zp|4dk$Hq$$Iztl=PK9-Fr73S6x(jk&I6VN`iY@(co=q4hpKrr!iM{kuhVYuBYw%IR ze&y=|PfdNEy`I$;pu8-EelR(qD>q+d^!<>rSO&hz8oI1N&xZHJXz*?hqu;R{Mb+gt zj88b&bO+)b0QAa5ZwQ>zm!xxa4FlGOy2*9{LKzU^jK+sNS3o@#p4V0g>n>Hwy-Pl! z3Qeh23v;%*ZM#Q_?x0>($*Ro|8cOk zttDSXq1_~j~Et=-aHv%*zISVGhft z__Hk4SxK&dde;=0mI{@Xz%LX6R80@lvPCvX=9gp^!Rx37xM~qS+y!1PC%BR?)qgQ_6!sq4se@kY~5tiU7!4Au*9UX9_v>J zR?z5*sKFEmVB5V;BdzgHz+Iw}Fn9^VU!ocS6BW*w)$oG_9eyiu_;Yb8gQ;xFL+iUEv*OyE8#!=Z7D755{ z+b8___U%`0-)}kCyl3g^N$)~FUhh6{x5TUKYSxYU&vf|`PdTe(nfjo#ar%T%t4Utz;B`{xLwCm2tgh-$R?A*PzQ?QF&%VT=2=-{PGKB2Wv_bwlvwPkB_3z zU8d`rP>+ibxTTCjK!bzUHvQa9PgGF{yH`<_ed1pVX^4^j(O>IC%flTSTtmi-xC zGe-Z){(Gfn3JO)8(TKtMuSD#oZ%nj}8Ewz+f4yTEZ|4N_Qc`9oshZqfAD;_e`VyB$ zUS32hz*d7A;G{`WJd-QntS{!E4&*VH*5ZNi+s}H+tU&eRAZEZ?4w6c~>Q1#pq3Tst zAy35sPGZtSHI8+_jI%gkj^3r71+&oa_-jnVNu>~v!z>$Se%`kVgeHxW%xq&!g4wX4V4T6LK6ySI92!W74Y**M|L7*=ftV+aTylIF6JZA#-M! z*O52@b0!Rn6Dd-+e2~wdXTN>Xuv&QgZU>SZAlNbeemdiZR*!Nd0KA2wim8sXsz6td zXyK?WgaUs5qP3<2ZXQ4HN!(DaP#S*&zuBMnhQ}iwjMk?hs+x|_A+%%Lz=DmagK{+p ztGr;Uf7858eG#lF_n^#rS!&V%2xCFJU>seX7NVMQC}Sv)%Sf(cZig9 zskEpFNOuSV(w!30-Hn8jA|)-|!_Y7^h#=iP3@F{*@!rel`~2R2j>kLe?z8vWYwt6| zb7pSKLNXcN7!hr8gZfy)3 z63Dx3rev&9lNryCoHQnoevhW3XybH8{0ZAGG0wH~6QtV2mhfEwqz*{Q~*h(4-hl%G|t4M^graHC^MK7@)xy^X3OQv-H@X0IvGoziQU4-@Oxi zTw369=9G$Dyt4ngJE_9_FUEVR z_a>Xoi^9C$b}={#KKH2k8By`uihqHuuZ7?AGY*D(g{*G@%%tGxw@76$j2{*1rmb{=iOHDV#{SXkYlMRe zGP!8EB@3>kgGT6spQr-PEU%X<_M81o|55(yFtWOQe#A(1YiUsCp040{p$&DXezJW( zdkbw+sI&3!=v#Y{tic>0Ej`&RcT+lZb5^=gn?30;T5&XgO*QpTt08t+obLYe`tAnW zxo_2YN8a!wR5W+|UM45UoZ|L5FJkotxt_|dds6|FHD`Rj?pm&axOy+%k@@aAgH4$O z!P|&i{F1* zAg$9le(zx!@n;t~88z{@GZ_gl2z8k&x?;QREC1?cPP#1o+H2LWG$4@i=e|`mduBqC zRTJOhTtCrJ>3iL=%RKbw9I+7QV_&r&6?{HB%yBm#YecCPKF(tMzDu`$3>WyWcav(@ zmR{G%bOZJ5Kj$9W;rnhwr-|~@&TN}=o9knvR<0VYbobKA^)s@2*z0&#-SQ-EJ5s73 z;dihs`@gQDOg3*_Ki8jKSix?RC+#aoa6dbhtcHnme&yi%8krxyPbVBDfv_U&?+=*s zQ@sCKOGnt6E`K??PpYik)IBHf)8JtL?MB&S(bXxtNpX7;wrXl)i%HJJF0F>8w!Vjr9JjxU>*Fu~OwI3X`0C>Kl4(N67m~G(3)FS}cb=Pg z=jYAO58^TR<8k%l;b}Ko6mBL7RQJ|HEC!s&)~5G@_0T0EK%x3}DwCBk^3yG2y31#^RlVYtepCWj#Sy_(af(&VeXnP@mU*X^}cal@4$ zH?sN-6mgsXB5`wnQ2QGnmYKrDc-?*htb6Vp^M^H0c?k)Ow+VK=byh~70$2R2>UOJa zT;7J2y&RflfQUduo~{;(s;k>sICx&UkBDAVD(*LRkL?d*7@fAu%fzjg&*{}&-I{XW zBL3nwSxS%AY&YKF8rDsuZ~lUJCm(Wz%-fg$?s<{30m;No zKucRBgfYhcOmR$kkl+e_qDq&mL*Ds5{WOv4+(VLVP2B#*tKOlf<-|Hhg0QbXY!%n$ z0ROnI=C zhtJ$rxyzR%=E~sGYDx1}xLQd;ZcL^7N;sSF{$}gBC#A4?OZxjn1ovs8QLo*`z0R-M z!IgVtbCKS|B$Jn}`A0X9T59?3O-Ii;zjynBHUhc=tlhuUgwy!zavB8R@26I)P)ii* z>qQZ^IrK*Axtb2Hk^M6?dnRnjiyZg?!b>V!K!q&4ClJ^4WOhdbhR~VT_IFa$D;2H# zJTsS&FL@f#9SLol(7)H=ncSc4tg2LZT)(=;=>0i&5udr3)`lNWT z&hNJwVnJ?CG$W|Sv$s3!>Y4bxj z3Lceje#8VHb7H(8WuIpkkm$BbGWD3gx_(~1ULuO#!ZTc;{;a=RKBje|xtibTqy6F} z8z#cQ(&_%RQ0030le?^``)Zp3hh;Am@@oSoYu5tqXymK&r`pQPPaJe4 z`zriZg`q|=4%NyEiIRcxx5lHA+LQb!8xv;>?GaxFUgeCw@cFu0UXqTaPPty4BU;B? zDp81)-L&i|DW_NnJJsIO;|kZGjLCVK8n8@aqh)0@qV!BTIIs5NW8%uT{j`_O)8*!U z3a((5jKZwsdiJGg<#Xt-*E}4TF$j_VWqZ5Bep5DIld?X$evxTN$4azcwt@L^l6n0p z-}DuJf9nLK0}k0?zkNM0xK&>IQK)K^?_0ENW?g2v57GN6D~=OWGuKgj_fwhtS1oUS zIBO$v_k7i~ABPzVA?o<=)j7^2hO2$vdDxyi59-|1C;oZLkr#Jf4_7vl-YvWzm|H&| z-dG&-9kF_JsjQITa(wfpEXW9hpVoJ@VcGr1rZ;J z8oOp+CG3_OyD9$6sl!p}OFm|eytRYXP87Lfz?kI4^9$ApyqtYj;N+Rz93+pbM3 zc1lKF-VHyea$CcV^NN>sPlF(2#=A4T>ohO?_N|_dy87d??C361os zVkUGZ3R?Knt=~7iv+3HH7r0~N)`&+xwCYR|ls>#F@4xm{DVZIoSFQYo7V@t~eF)>X z<3|1d;hinl#)3ehkuBi&qtp9W1yK02`lD|Kf|Qb}aC);flhcs?>c8M4>b=yzE1bx+ zDLb8QBvO9+{yM+9_>FykEjPb@HK+edgZkh=Cu*9Z9P4-PLu(z)PrS?nR*JVPGv!%JSy#=~6-7gdCWU6k z`s33Rs-Mn16`q+JiBB){(Snop%%f=9L^Ksm;V+UwbjcfzO;8S;=0sF1mrpv^+Fo!b!)Io~O8(mRld+@6SK3 zZqcCj!cg-&hOgLaDoyyAhzUq$F>c4>@Ukjrw7q3>VcrJP2fRb zb<10aV~1&l;{wY{x@@EEYA1&&mII=VTejOyZ*gKFhPK&t)Ma-WVj+`$kx4_=>vtG; z+(+BO?8jLhq4%Hf^e%L6<{iG@04z3xbC^!;xvn+whkRA^C}Sko|AQHMuJngx~ddLh?icoq_q-%3az>n?ABnph6{(< zi}vZdUrA_gmJ#-y{b_BVkF_W*)wxE+*9+1I4aJIaTz$;z<@BI>dFr9c63#0;>9a?EjQNzljNd;(P~nEN&&SAYiCHI? z?W;HN)8R)MjQJRIdm-ZXD8Oq^f!7|h@+{lCtlUGH*gO>eWE8O64z@a45eg}-iJdRG z3{!84ct#Dx?R8mZ@QTk%%~BZJhEq%^+toJ#hhRn z7E*7%f+_J&eDuw5E@Rf#YP_4no|{1K^1?YwKot(v>x;__+D>2+{yYub69Z8rIHfi! zq~1oK(twou1@ZEjy`48!<{#l*P>nfxtPfaw)~v)o#_pQoT%>g&u&P~A3Aw`C~FUWnVN&f8^m1Bl;9^Zi<2lXZ==zv~BF~>H|)Fi8`nyKwwplZq%(WTjcL{!biVOn1Hcd)=0q>-a0oJ69o_x46f#MO2^Hn^D{T* zayT`K<3g8Vn#W%}<3vx?c8-jWcaXF<1~-g4fY97`XuO~iW#*4NBzH2rQ7Ja1F0|*p zOK4@$6quO`%G#9IB(Q8~9P*{IMKqeim z5gFTGD0;h^zsZ%&bxhFlnBSLt%a2*K6_?A8ARy4qC@3JX!ViMHSosmt21r@@+SMVg z=Z>*mabsFObul6BKRrF`JNNp7Y8TV8er2%+|u7r5&$?w$|Z@#qg#0H3X6U3$EoW}%G#&kjXMm9pkqc11s z&}M|1{bFJ>gyB{yE%jwOF|?3+0}Y@|03FDyKqxR=g@Vb&H7dljX+&~Q+_Xu?Js?%E z7%bG6YU;}-J7iCyw!z+J8-K-~JW`-UG4vW(tOl<>fvG$Y&_{VYIOJ?6NS1@?DK{}% zGk?W*LkUVr2UD~^2(`S6b5)LNX}a1e58o5;P7#o&H8G$i_N#m!{ox(Dn>e-QHPpgB zpHEu+6T%m2E!tClWu*ggzm7z%D&>aOxa0aTL8+l$j6>dzku?A^BfEL0MZL)Y%108E z57Csynw;q+mYsE{BkgD5Rk7IRBU$VfwnNP*bcHc8s&bis_9GMBRb`76g8UT1?Gn zfVkSv!0Z&``p7XdWurknO~ClALkCyrx|jp#fydHxhfAIZC}BX>RYm7uWzaz(zwtIv z=O(@_`=SA5A<_vDl+_NnDbfLu=_fPI8h#Z8n4RoA`)*pWZk(NLAyMFE)b96`-~_$( zWmnu;`>kP24W^OZKe_7-f3EPko{BoBGTteTScclsNIQb+yA!aA{X)5Fo$?$&77$C@ zh1A8M!;>8qS9K*ZBVyM z`oEP>Yo557I}ig&f3UhKT9!NDY$v_?^Y0snESG4PmV2F9R6)>=+Jp>@u=UtE?;1-% z@bwt#Nk+1ya3HXzbf)@yOl2}|PgVY+whvp!(6?h~4Qs!W5J zlNzOoa4WBv4A#8Gl{s9BxW1jzvDy%BTep8Zt3f<+=5Rd)`@i2UUkG&`FHn`LR3^o5 zJdD5%pjG01VpXe&f%zhzk=J;u?l&eM8bFjqxdG+$n8mn2;1klIf5>1mk-=C5f!zx8 z0^(OoFMH+<#Qj0}URRtzl@1`aI2Nj&+VlWL0x0771?y`z&wp%f#MxWv%MaEi!D$8Q z3jHk-SQSA~b(kkbHjsg6`T}{Kk3fIY(`2hWn+&F&O$!7BPkd{G&Mzkm68ex>L9mJi zz{KAEXZfhu&-tb7nNm9t9r3N&XMVXt5L^hV;QGH7Y+4dktBb_7{R)?962%lY^rQO4-z45hjW^*Vq_pciD= zvXqs>CH2S>1x=qfis@k!!%AOep3A+I+ zr^^A7$A_p{Dkz!*@z0A-7gy&O!HQL96Ba$s%j{v6!TWv|-mWKkg$ol(m_A`8u>e!g`Y%{avD810;{tSu-=z0M7j z;2*JsW^)vW8pN9{cB|CZC@&UD*qmqMkCGomM78A?{GIS47^4NA%!yD{n;naZs);o; zKdyfW!1|*>hCORBuU8h6k5NaaQaum=Y*_pX12Vq(A2ZY9)0?geDsDh+0WG=%;5`1E zzsdvY%oX}S%N~vy1plL)7N&%$_Yecnro%uM7uS0ik#?*a{)c^}U%33AU5_u2amWAc z(#=p{MpA?ae9CGbj%y+E{2hcEeWDCsr;qM%k)yVX0?Pv1o9wHkBB*p(ZLN=Cu6ce( zBC=;OpyWQ@s-5%8iGq88KO;xt+8!F%InaO-a*J?FobM2lww+2U7xW7fJ_X!FlyEYX zlR{&Z>Jt`B-aTK`FDxSM@OSuonHweH)_(#BD3}b5a+p?`Oe#XlLMQ9ea1+gu2Pq8DV z%C2-jVz=_rvt~}TEDbeGb@ge^iveM18uhwJ`(R9n3!QKM>RZA`{(WMEBOZD&>dPdi zIjl~4+LDq077f5kLNln>iP{x)=4gYq3+e z*thxHYE65o`9jHO^h~n07ZI%9rE{gf>O}AI@s03#qFK>*D{_ zAlvt~YT7#bIj2`(iJJec*tlAeBUK{(o%;A3-{w>Mhmv%biO|i!-Iccnpet@2r+=IX zK$bE8LlS!fNE(}>E&%xyKn4LwKM;8eA~8Ul$Us_EL)Aiv6~9uM;wwIpPb3b3y$lD# zBLtB^FJ|tcV7N&LlKIajAuRPV-*3t-?gTbwOgEF~Ao3w`G3|iO7$RWxp8t^e7{Kbp zHX8{50k4X1T~L6K(oq%?@^?w}v#8g}JC!Lm$YCNBW8TQn)-j?Ap$Xh2Qf`aYY(uFs zXs=l01}S$;O`cDT94tY-hxSPnN?27H@csE1Y>^ke&YDQ}ePeYf0OQpW0Qb6Jnsmp7 zWuGeR?*w)9ny_roS$1yR|8W^&otDke;z3YC*ATo}?>jtc! zDQCj>-Idp5@AbMR=5}{*Rg9}%e?dtVy%k?i}cZietY z7~5NAXE^`0@~zZk-H4wn33{c9{^&SEpNO41hySUh!*AsL>yOgF*?+{$y`YAC#tk@g zUd_-Zy_96%wmPmb^D$kevka}}Q@s|DreA-Y&ww;p#Ck9BypO4l1@bf}TVdjySGVU^ zbM&j5_Ft55*pbHd3tj%_7mt|xFEJd|lIk45MA3v~z5ak{kVRcw>O)s9kWuW78441*+v)&F6m9}PUVHTltGIa zHSh|zQrs~3 z*1Xpa*(3L-&)GXz-XzNpoxe}aDjeTL%&q6F%t%YJ3o`CKZnygrp_ywICP-qOOaxf! z2Q6v24jcR#Z${}BaqMXmu5A^xC@!6|tXi4T;GUr&^1xrJWA#6b}jUSy2+~7j_6zzF8E1JC!*!<>H_1yAbF5#{Tg>5W0%qGV!uLo zciwV!#OL`>LB=h=z;PPv(^l*)F(ki0sIH8k@h=-9cZKsI9k1Z}_hN!5Ym&S37ONxS zGU;S0bjayRtLJgpTT)1VQ6ShB0H1x`6ZSYl6Mcoei~B>lcE2rNGKH^Kg4A5R46ilb;t!BA<|UT2q`R z5>-ggOv5Y(SFru@Lu1HBrqcOMQv~M<2UbRCh(~CMPVw8Vbo>!Ne#W4W)MJ&JPt?ma zlbIkkGpQ1pFEX${DYyGp_*tkE_&NNtB05C{!Jh;W_q%Evjwg&&3dUNVR#~^(ZqI2 z2Q607^_-1f44e;W4D%R3i8#;Wd9bwmO9S=f&jZ$z;yJCUS8AJhrC{BC(-7&bh{EnC zgak*A`vBM%UbNfkBsGD#JVOF<>0=C5ZPOmjzoRz+e4lr5i-dOtf3MDDGSo{ih=ADZ zhjsvB1z!T@g(hy_yLqLCTR<^UwzAJ;OZqFr!xqS#0+1Gx%rCVNHP7A!y}77Oyy1Cki9<(~xe?YkI9 zt6?_I{1osFM(u41vPiO2V@vbNI@p^r@J>RTGxzTG-&&+59i%eW3qZ`eQF%ZI7mZYKu zrUSB>DHzY}Ifz!nWel;&dK)h}4Pxyduw7`U>PT=YU{QO@L*0;D<#YSPnB58$*}4iy zied|$-g43DiLH^A$h})+sPT$Ne6MqSgAkr*zt-~lPKVK^EE}xQFWi%0tOZW%RQGJF zb+4t9wHQ$0wUR-j1#TcK_sOFUR$}3?maO-SbwCGq{==h;^rNakSlY2qYS=Y4bk)uW z;`fwo8hFrOUus?SQo>imEn4(H^JntcPoyAT`0WWic9?*PmQnb9V*PIU*tU`J-8vhOf%Z*ol~|6b=Vz9g>>N!8P!&7_46Bzjz6N_plVmvA#2OF zOnUnPbGayLB50VysR*)1>f=@M8(lB;vm7Y2=?)d@b>Ia~a#sE;FnK9(g{8M*A zQvB;r>{u|bun*Ld8nZyN%%E9f(5zbf9x3()i7jh=_CMT859!X!P~HS&4c`?PKLh8_ z4U4#+D`}pc&VTZL652Xx{dBbEI@O;PMLrvH(MG_LaNkl~R|`>+Fk z-M77uG`$EQiCR%oKNuEdusn`fN`(k{r@s1zJ{k%wJJMHIW_HG8NXOM#z5Gd>(OZwT ztl!Hv{KwUe5y2GV!cZ#2^?Ky%%@+WClPAELnd~_WpEGpF-r2C-v_x`X#ysFgd7IqD zAHu%b!_uNzKHtoqOfV*@@K<^|760SizglVX`d8Ps&rBxXUfz8;EPKnEm$A|oNe^Xy zgHrm_Csb3Q1R60nEx(%j45`5Et!*Mv`fHWYanDk%zEfVe;nbG*86q6*s{Gi6vXx;{ zJB|@Vo`VZ4O>OMA@)QyG?FG|@I0e5n9pK>; z@RHWHK z3&<-9$N~+fVaQz4J4+Gq91IN1QN|R2rO-w-o5EK4NJ=3JpRZ=<+b{ltK%l53GB@STUl=K57R_0JztVF<9!6 zSdSd>7siHHL_u6wOH&VXZlVtLN9`>j=D?US7`RvV!OkDxnd|g{mf#$z@hK(xz)v(7 zV;|eu&yT`Nm9aG2PTzZ$Kt}{i=@UsHnZyqiy?aCXGI)ekMe~ptg1v{E|XL6-O$3FarDaae~EE| z%{VHGM4IU2z0?vG%Em)LbziX_iz8J$7)|?%L>IwGeV|9;-BM_3;z$|~ zY+5`>3I=*N@{&lL1?#63=w17eIG;m$Vynr{fyY1LW?$L7w%F-&v?EN61L-Ty<~u3+ zfKNz9c>y8Q9_U9s;6-N7TQT|oYw%*&vsfjE7t_ zJrI=nkP84#g!bqOsK4xobV)wQs7ng1l|HZ+l_iY;VrCLVWMG$#6S*_g^e(7}ADit(G3RjHLSIL%F6$TsVq5t<<*RW(s(C={Beifa(BDkyF5e}NO&u< zZ(M8ibQaEv5x6Ge;0iUU`6Iyc{@+u{pqqBUxqBM#aE~8p<>4(IF5gAYY@*`v+KoP@ zTVQp+f6~p6^gaHj-TTiw8DlQ~!6y-$+!5HoC2EtFm8U)6C1sYi1eJ7SzzxdP+j+56uchiLADzZVZ zx{abPV%5HWzW$%#3IQ=6-r1JH;Iwi8$4=Pj&N`>^`Ksmaq0gYucy_;Lc|o~uscnsQ z=AoqUt$B@Hi*8zhAew#u@@bM9Dj)md#Y^4pY|`${*!RTvL8NM2 z>sni_Gn8Cwn~mCLr|_?kUNZ9WM>?!6+UZh}xO={}M?yR`UQlm-<>}R$OWg1 z;Fpw?t@;)Q;RY2dUZW$w6BiX~Tp}lKpcTkPB2*TiUKSBORpP_xS`D388!73Jp+C-V zIZa&iD>(7F?tzw9yt$4rc)9PHZ#rD*v+v$!b9xPXG3n6*d$AfTWRM&o%hhCPUEN=M zn$Ih!-(=J`?o?dMbqVLHby3fkHj+_*xn$JYRdl=0y6O*%yS!3Vs>-M>=lbn7=?VIKE3+w$7|8wa~%IJ@uk{J(eCPxl8t>Ti*SagN@6{0-auo29ib zs?PCxyi{H#p*||-W{de0m5Mnwca_NOg4t5f3@y5X;F3Y$hr*gx4h`* z%6z3YUvD<8`@Ldv-0Mif`>Wf*!#^MOKco{FDpl3Tzn{B|ohHjB!9Dx6^=#ANw*SSH zUiC2FW>5SHbJ^3VzDybxw5kJd6X#uPUVrUMZJt3A*OU@?-{-W^{)`p{tU7Os{XYg4Ptds zTYev0+B2AnvL+Uv=7yC2Yfu11ZLOe_C{ipo4Ih2rLwuSdc=b7Wb?$3iYM)iN^W5$B zPKJlxDgt8kq9w5v;jnRpUu^a1zXL}bbz|R%*|puTA|ndbt+!hYu~*raGEwMxn7NiH z=kMGJ*2EQ>hE@}4kMHUh-~B0JoqafSG^)C5tT3$P{C#lDEOF1+=AV-D(Qa)MXWtBp zrcp#gQ7h?hGRPI#m*c;=QQ_@#dI}?w`nygP-XW#Us2=);kdQU?ImnU4c|y<2RJhvn zHnX1IIfdD^+WJlpys{RDPMyPYl}w~ku26k-1kNhw`mp(fg_c_xMXn6{wk*M{9>~wClzCDr%_%tu~v-Bk8n^KANJ& zwhA5XA5C9oUV_)D;-wUWkYoKo%yWPzhZ-hUR_%=qB)8tj;ZOF}91|jn>A2bVUo?Ze;I5b1Oq_{k7N|_v9lDO-* zXXnM`{6uxuX;`5H=52Mw=t-*{ z$L*c%fd*lj8HtWzOUs1@nW?#pNm&(TTBnQeV_}Sw35x`z!BL_bS-KJ0?W)a%#osOsHbsYEroK{K>s3#yZLUw)JWF$`f4|uYY*P(`7Xd#c{srE$}HO}Cp zbwqh-6hWYhY2N1)%5`Fmj-sKZ4$>Q+OM~sV9=}(ibCK?iEVjc6C(wiXN7}C?1~&!o$`R z4v2M~j>5uI-+;N9ZXGV%Pkga(0O*ZK(A>BY_DzyC~k_>bO-`F3r8&#BCOIt}D-L zY3bv*w(#*@X8aJWdFPOva|_4Gz+%}4nZxhwcDvJJRZ^MEZI zX_B|PH<4w7RLv;GpWay$*3@9qTB1h(jP2?nOs|DNuI zkw1cw%{8-{2%`DOE)y(Islb>V;lSVt3?E(LD$O5#;VP}fWj-}MuED$xVlzq|iz*Fj z4Q>g0c={f|UHU6Yq!z;FNzS{txj zPpu1BuJ5$=xvzvr^kUR<+1@V}w|2lLfiD6-zX^GoCci0YKR4U89t77r9#38DLH87~ z;WTs2AyD||mR!ek$88okYQr8dGy?+@Y>#D;sdbM9K|Ixhob4l#woY7U3H2b^qp+vR z=k_#w`LD>(>iRgiy3igGCdwtO@1v#SZG~H-^Lm)|NdIpWXVj?S9`07i{?)6aHcy26C3{T}-|UUF9aiu;v{*O)C2ILW>%5~~nRv`TrCLE*g0K>mFNLw`L#&|J zHv>;rwH4&4Rs8`}Urx0Rj~%3TRkHa%Ds#`y+fk7ebnN)HSuzM|J@xvmn@E}RaYs-c z6m;x+0QwlFTC{a+nU5tH`OtjG*-LjVX!5U-rVYx<>hyrbVHtQ-RxQN1$zGb4`D6le zD0LywX_g0BMr-Aj-IM_{!gSHemM=+nq}N6Dk6e?L?&1p~WW+CLPyuTm4M<&DJCHgx zPz$Ue$>bo(GScC!Rbrv@k{%Ck@_vPS9Yku`iQJsMwVM&~4`JB$krj|2#Eg`oU2 znooV$^si}}RmrxZZ)eeW9dyma5E1vn=5Y7ezq=h-DK)?AW8GrYvDo)>vzCD;$G7ME zBAvx_(zMfcNN(za(Q#h<^I(B9fL=2!H1o7FmHDhlX#=OA3?*h_KnZ^YC5#427!8y# z2`FI_P{MfIwERSxz#%9=MJ}Lp*Y;=A&Iq)>JWh#O9U$=m{w z_+>sXveozxH}*4A6aiM0Hk)%XU;*0ey%HwUt2O`LI4C6t9X+cy#=z@~k%)R|Cpom?*c%ii7mif?T zH;sste?NONHKQp&Xb1QSDGyMUmh%94^!N&e#4CD)LIfi`&|fLHdqlfANNhlAl}oX> zt5JdSa63^h!P>M3rELFb3j64Y46Hda)6Bqqg6&L&jlG)TFWB72w19e=rbU^a=lOs| z=OYHXAq%=83%bEv<^%NjF%j110|O6DUgtjH$2a@ydhET)fW=QtzWGMx$;6*#9j1#< zfWO?5Idqlwp2C08%ulM%+1-S0^)^^@YWQ&`-$~VJUgGN1YhM%3wpp2-J5YL^@I?z< zrOD8yIILU=#VbU&jnLc%*?;^kD7bk;-kGamg4^sUOP;{_%ev8+y&czkIp%MR*i=8d zuQ2G-w$;8d4j<|XD6ZB!f`V^D7=ZiLL|~+(V5FpAr1;yJk{gRP6)+s`ab$pR>RTI# zgaA3vhlZrVK#{?Yg#;pLwrMj^J*Qi@*aqGc0-PM5R5apj`U2t+paYYL3Q__hxqiW9 z4Ug2ZYXPJ6&UoPZ*>^lz3~)?vi^S{{=#Ys4b_5cx;2+FOkwDW*7Sb@?EroOrya#s# zsr%H@Z}wYw_KnPTwlCq zeJ4>on^1MsA!Lu(*JkIDOQcWSF(b4>%2IGI=4C zttVP4BhEFmT8)6CS@z}yl`{1?n8MKJul0oi_R<5u9^sI~QNSyv{H$u0pnXv>VUi?# zT>?hdu=l*rx(`eY&_{^P`Q3mDl+`}hH-A-&41389lt*Kqbwrm7101_yPv4x!d>hTn z3vf|OM+q*3jG&lm5z~2ZXD$6BW!-om#hj=6D=7mUy%@9|Q zC77C)TAk9j z_nn2*mP^iNj*`kQXLkH9A2mUY=y1#smnOSfTKTOe6Y#gb@nGvL|a#t=AWyW zq-V>O6_N>aNABZZkQt66*d(_#?wQW6P+AVP`f^1-*bgL5wtAe(v%}kJ=H`7I>cK`Cv}N#dH*BfsX9G0i$B+ zFHU1#IZ?>KKtM26WtL=w5e-eV!lU+e_{qu%@&@D4ZFrRb~*X z1n!j2!A(J}%;)6i5{VPRYahXR@)<#89mQJ`v*!lofo}FC9Cclg3QspZ^>VDU=p51x zpH>zaaF-l3AV3AW3%#UY$>OrTY~fn$^o*OlLP!FcJ- z*a#pvwS{A3g8+zx3!t)}PP9`GBl#Ot7hGv(l7sbQ7U}Cfz3k?{?P9wW3 zEpWdtDV7bGoXBmn-io^{SbR%mtL>Fn(A-_TV%o7gFaF(n&S`Zvrn67$O0+B0jc*Uq zr@N#`>WVy%!eumqzC(UefP-@$Y}oqKRTvI88vRig&NKAP%x@QNM5IdxB)A$GVjc^8 z@@-M6(+Y8zb*uo=?1~ef^)Dm-2;W9utXG{tWItvt5FqabNVIDQKnMoNGsb_&%oYGi zW0NikAcX*A5P%c`ktZM$1+jp(J+3%eFh@2mUP|affH#mv%kUBfB%O}`wXm3Y_pK?t(e+& zk;V?CF1kt)2&r&|1WYn6m}GL;B9=i5l6L048K>zq?ou?V8Bvp=6vv2V7wIS!JBz`) z^YpLA=i)Rz5Plpi9i8i_uUPoLC0^0xD4+z`m%MXrHNZGDK=r5Y@e`}4nhx{G5-^n7 zWW6HF4pQc+sN?}9V1^1TTK*MKE#xbNPySr_JPw0_dc*8k0+w=iarb{G(q^}T6KR~? z=QUZ5kE-@kOm+{T*RcAbNPFIEiw~F_n?YyMCyW!Ql8~b^&cM=HiiOu*lvPFHSbEhu zg!q?zU9_8vo?PG<6cYr)-YAYdf}fQKpwBtBSUabH zhe=7c9ziW(mM$-3Xr)hOGb4UrsAoMBo))QRk`U%wVH@^FcC3y6<82b=)|XR9RA*6L z2QFi{m5KW}{~(`Y0$IU3-_JrW#M``ABlDDU$=V&mD9r?4XMzAUAH!heHA4mGewRbi z8kAGe*CxCSdZc;X{2l9b3eP&+vIVsvHKW7BLYtWEl-9(Cce@3=1rsg^kz&0u#+bBx zM+clLdYmmn>6~ckhXR6?Ewq7eU~z-?EkXC^X&8n6Jc68e8r#agGj|VkJmUsFf4n}+ zVs6s1SjQ$k@erEQYQ_71bbVuVq)+r_Y}>YN+xEn^t%+?-Fv-NWZQFJxwmsR-Z~tfa z?1%l*r@H!iZ(Tf9-EZ}+`_4l^r$J7gr(MZm$a5GWK8QnWw|LFvw34vhICZl(69D+u zR!HE>3*J*yw*Dk4*+m%B*SQc_ky{Sp;N^_#9C(enc1@2l#%fORJn#yA0Ug98#k zq~F1Sm>!>PBh$#pTm*Jo%8Wv+KLW8AU(|kAIlJeq&9c04p4a*h?Bbrx*bHKKm);1>hAxV`AdyMnMJr5D0P*vlc}Riw64=2f_Nso{1fInXFYjstMzGf5mxGq90LSz)?|+Fz&J zu$eF_i)yOkwiBmeN3r*xW(U(x5^|$9K~X}_aslq1^L_yZ*>dxKsD;3=-T}32 zSr5GtC4APh&jd=!cg=DEJaor-Pw=@Uv!bMNcZHHbk_|4;qhMD3K?J09QxyCh`_%E? z`99aFR9=d50dI82Wlw%uB(tjDV2l62lVGPQ;QW$WneyKDgQ^6NBG0x-R9=j70SH>t z%}-@y$d(%s1$?LEy>l0vU2MWQ^|_i*vJKKTF`nZE`sX>~DCF1dXlyzGIxf?eu?+=& zFw$V_%)sk=(hfjz=EqmD(DUiwUE<&3ZN9}TJpaz6^17A_@TNQNdcqb)KIuZ1^qPkZ zC|GNIHw<#^4-y~&DDKAwQ2edXM=^uS>yKPOJKb@^)2A89ti`wD5t=wK2DFwEPM1YN z@UXRiQ@T3MGqfWz>d%=NBiKu9moY`775HowpW&q&yO&vmc?_lB*Bzuu7Q2Zxy)I6u+Z4t<;n$L=jeN(|4Y=CeqSoe{ zRFL1Kg8U}cj+=umM$t_NHee-rYy`CPyuah>_q|?SWEo}GmjZv!-QI87l)mRJ=A$7@ zB1c=}$0=jX9h6JOLX1EP zi8O4ld1OEgF7PvmVzpyQ<_78SP;3oxcYer5taYE4HzQ7T6ZQA*$)N|ykl z`^&nRLW+{^1oIosND4SQHU(m+Oq1NG%~Yp_>S)70MPjT@lhtTxsvRXsf10C;vYC)c zj+%=wp}j1SM+QQV>y$!S1%x*>y%hyL9|B(W9hxef+Z4&F(;Qh8a)&9f(i!LFCPlJH zq4V!Sala|mVie>$9>js1W}eIu3t-8=g|4zT6M#n(FDpvTlFc1%sSyA7saPKkl{Y8q zmJ&bGh6Hnv&?z3etgRvdm0rR;Mw|EUa?xU3H;M-2Quq1lS^KIF>6Yo z#)~jMaX@$WDS>R1&YkYNr$V7Su+W74C`S3b!qQwh$!6w~`ojJWx!XjxSr3pj z<=vh9pk+j|3WaawKw_Y9v;)(Xl=FZtyobsjC$%@>U)BTOqX4^t0j8|G!jU>g;YpQT z^Y*Sh2igMxSrP7)uIvDwpNlIVC$*vUuIvEspUb(V2T?HI!cT~MDpDtqKR>IxB7l$v%Tf zPLt<}E1qf@pdQYW@iTMPJvM!=m~;M-tFDbtW22w9dj>rQbpBsPD`(I5lC>-})gNRx z8qAw9`u-*_eu+)$vt6>XOg`4=P1l(yWvM`x8LDp@*Z?AHDv$5rygH*_jnM6INQzQRU#~vi?%Hf;z-q|OR?was+|*}Oi-%$DAAQSANPw6u0G9%4X2-tnZA}e4J zVuf-I^YCqJ&eN}XBcHk0j=)cI@~c%28Xh>4l|suk??`#8CG$U$-PCQ~QO!I{^_L70 zYl0Q2*TVT{1P z(?WzkLM{^kXu0;SIPJIMVPIKE)R5!iO}eE9YBm7?v%5(9bV&|{+e*_AAET|o0shj8 z0E3NKL;`>Wa{ZO7pw2PTqZ17g5@m9A)oj23px8Qp?plB3 zx?do!%Tbf9ooICp8fujxfT7A*0HdpaOQ8Xb9=6Gj)FuYgZe=K60Su7C{w?RHQf-3e zrBPogmg!FK^N)>xkMBKcvCg}9H(2;u@{w&)#U;?-Klf9!vJXmbLp-hL;o z1nCT~7dSrF;e;BYX!16EaRv>ZPW$&PiZKXD0Aue8tq`s>de178ES;H1MykQJ0bz3k zto_$o{0ITCmK)$&EN5UAnFuu3Pbc|vd;k~kYW*Fn;0dwuPYk_ z@0JUn<)l13Fa1#0p=tdL0q(NTn0?Yd6(wEmd`g7Aq^9+=1#}89=kXgBDSrFVf}&AW z<82clJ64y2A8;xndtvPqlV*#9cx$hTQQmT-@*(xx!RsN-BQhQ_fGapD8YwFus=hm? zLz*XKcD}t%C};V9L(x3&KcO(-*m|mDQE@&jWKlbM{>`EimZKs;Qh#&1`gwH#+I=eIDIm4_+b6i+u5Gshd>n?K z({ud-Sg{eFO;|QPC$RnBoq;j=zg5O^DYEkfGuE>mT)gsPvd13h^59iNE1P8 zPZe~u^A1~o%_wvR9stDjJPbj%#}ztCWxO31p!GEa%Fyf{rd8D5ivu>*e}$;wGYob3 z26}iNCZKn70wf9or52>BVkk6Hd_-Vg-Ha=G9;T!Fa{xZMzGM5SimQ4~oB-^(e@#`6 zKCKuU{KuV~Z@*l98(@dJPC)x<4KTp}Ki=U3>}$3W*)S`D{AQpB>N+s(B{l#Epc?`$ zJ{F)Q`b|83Hb4M=rhgM}6c8!=tZ(N;0s`P;D&o^C6aUS-Ki|&rHU`Mf*_X_~;2r&7 zVd^wXy#(v=&&@b9HISnGmfg!Y74NldKciDR_pK9UMi?Yt39A)znhA$(P{-~ zZJTjx-9!u+y=ZsC2trn^l@u*2%&2IhZ-fWAm97E<&YDz#i^E1P6Q{*Q;T!Q67>^jv zl&(MB7i{Dd)S)9>Yq`uF*}eGrmuN}#Up?>8Gg|CjD?|H4dow$_{7v=oH2Z^o_3d}N z&bt(Je|CWTdiGKwD{D;vW4qsu6VviBefNp>{J?W=c&;^|SDPI1w^FGC`Y4iK5~0!& zX$;e1p?L~?jENEljI0AEejlk3L|$M_T4|wX3-=UL?k6%=EN1iFr3&b}fW5$0_EA6C z8oAr<5+Sr?*07wcNt4*o)s?+enHc5sGKI-5)I!N9Kw1+c$Pl3%PZm3(5jz?uRXs72 zCrgA!BZ2*!Nd3^SD{XoWlgNEHiuPt3NXDW_T>lM+oJkZrq7^%u0KnlXl14#7M~eXv z@3?NVdL`oeKt7gG|06Y&H9%Vl055SRio6gduGa*N%D<|FqFsojZ2;(ZcveTr5V2_f z<5u*AYz-M*<5ec#g{-?gfUB2wE2B=$IICPw$Vrw^!NQBF{e~l=tz7(IZoPBO|@F z&wC8Ib_XPYqUZ$LV@}rvh}v3(+W%gPJZnJ~-f^x9z6Q^Y-$%P&(*y>G-Y=N}mDTdT zeEu+Y2@2*kEb^Av8`jLz)iaYb>V`u;IM|!bRXn0~B^mHxjr8gjg>&h2T#pIH%mzCl z{PxAHIjOOOYty5{*tqY%Njgyjb8xDI->$!Lj7UCatoh=q89bz)c^gR<)vKvx1f)xsR`ivLTm&i^_ zj4wK5_BFV+x7_miP%z@IJeY0HKGt@2Yr0^n6FRxD{~+l~*Q4 zkq^?gp*H-FOg{OBt6!+-qoqlxsl?PY3qF(eC$FurtfQ}@^lg1X?YE{M zMSoofGAw1r$8Lxz4c9q=?>n*rI8jy&UpGCsKVkOU_FR*b;s(@0;f$)CMT_K7M+n#3rGQrY9w$*+*FT9MAMPOolqaMF>T)Z5=ieOR)^o zDa;P&p><1uA~e1n9#gTJ&spIT+>`jn%H1al_{wQ$qa8)`lrVY44J)pNGxizZ-q4q( z_bd)P*))ouTmCL%Of2D93@ci)|ve((^%|} zU-HRc*l1R@G0}!a&07xd&F^|U?my#WaW)~^5x?%_XXjwkaPy`JE>m1v5Cb6BZFYp- zxwnLZ?e}*vPI25h?Pg~QaOTNOFwCV^HYCM6S@e!ZP=a*j&qC=ThvdJtu>Gh@bo&E$eY0>!*XiA9Ag3Tk^8@cu|S|$6n3t!|BduzMNTDz3rwF9msczTz0_k`L;TrWMs7?;6h z-n8>#8%NT6N94b`p>wS`)-i1hwur~s3f9#YC{|VX+jSedfmsaHOGMoZ2w&L7{>?Qz zcX$RWAcjp;^|#B{y12`6==$p~+XY=qE^bLI^#5eqcp~ey?O=zuZZ*Ty-Q28!T^^Yt z-SzlsldD%BhnQDRl3l5NT6koT(z+2K~$t#R7AgCB9SaY)x-uD@MJJT{G zxYPP+@p;)&3G=7QsU;l(bd_rd8h1SfJP^KPXqf)!2#KQ++f1VV)|t?DQ@W(^xlh80 z(6+ZaU!5w6Ir=^T^0Rem2bkwa=+GNQDXx4ee+IW4CG1XnvQy=CSaPJ9@suN&jw54G z+wk<@d>y`keurwS+I!WqHrT+{V!eyB=F@RcTiuOBJ!jnm9uM-B@yl8|x@#|`kv(|4 z4!pZnjwo%qyi&3NRRpR-=$msl_!)O6^w|?dX-8J>l|xYG4p>twbotS1W`4XSvv)-e z3ga!k(!yViQg3owufxPZJTjS!VSUHtW^CJmt>JWhM94<^y`F^z4YC9BSX8(NoWu28 zOSHUD(f2a81>@*U&EJU1wXh9VeL_Kz%NW}C&Bh0oSj-JE(V|*t%3%t1)%?h!#ch!dolsOi z{=$y0E#TKSM?X*SAra(#{R?q3>j}ATy!}%^Hom_k|29?BW%8C%#icDtd7&(HS7O_b z4-Ed!F(EUhXiXgot~<|%TkQzu#e7jh|IKLB`}A=MG5@n{KM08&!=_8CBzi_ zk-U5~F7YT*-6)HHqCmm1unpp!>C2w$gAu-ON50Z4vdBTmK*T2ljXoRAZW0SS30uxF zf1-tVV3;81;{w_4sbeS@lS(z)q}(>!43uP13@cmY5owtM#x-b3v~`pnS)#mz*nPa^Kx&#Ge5Qkb+1z{q~Q+~Wj0hv zI+UbyXVv^Cu+gEF@%l+T34(|4gDBHx9;e@fkR2voI7tV2oM_?};Yi-7ecFMNsmHVv zRsBY3z`kS3(m$neX1-h6G6tH7Jl&|w?W@T+3*AsT|Fb?@v$s-k3Su?-+~@d6E3B~VEbpShZB?qYBT z^RyK7)H~fitY@eRo>nMcb5-U=3yt1y$j0lWf*-UB&uX>UbJR%^4qcWE>n)J#&qkV)bgf*Y_iRO$h}dIbVwxjy+zBq&Df zN){-3>oXLZ>cWIKae|f+HeFY#P-v15I$J=SXr3RCWuV$?kq=jBG zTDU6KF~FZNR~xfjVDL#R5XBn%g6}wvVD%Eo(jfgH8_r^{VU=)eNMjZ%R&zY=rPyEAwh0rxiGcCO^%CpE#nHK3wPy8HBa1O}vQHfM#jDQp(%=z!H2=Ad(?S#w90)4FSHc2Z*@~JE3`r_By>! zOv4zLmywO>cyg07u(29`RxV#J6hZ{gP2pDHX0{n)F-xy8*bgrN=IrH=BJsSJt zpJ6BXLS7e^YLK>S(3)zXcCvdWyIF}5lZ#C47|&Er`FNjR3%0l009Hr9eCW{%eM;t@ zT*Ee3AFMQH{*vV`Si;4uIFU+R_Y4OHjp~obamk+91teqJFC>i%iO4TE;+;S>w zPdCI5g`V_@x~4Ar&f(=5Mz?3Q%Rejc+1kpEcbpF!gdmKir^as3Q=qpkq+LD-@ z_paC#MVE29{v?CvdCx*TQy#_Q)CWX}7Y>3X-m*y7tIe{JfpYmts(ntSUt7URzQBbnEZ*?KI5#A?Z%r^0q+w8ywJDW6mlty~Wt;6b5F~cy0 zxSOyJ<)W>`E!g}LKiU%6S}ydCeFE{Kq$}A}^@Rv4m{4pRMbGj9t?*+k3mi4;Bqo!J zY5LHq8L~I0FfJDKp6c+PS7MAd!DT-BI&89U<4O2DJJ2Z)*Wm;1`p5!j(y(4e{metC z0mH=2LQ+ zqoK~<5zi?60Xh~qzD_!yUxdHH(5!MmyXS2-GOJ;XTFUHhCwN%S52)FE`(h!G`rS9^c1}^1$`EXu%_ zkO2J+q{0}bs1jl(iV;^{M(Mf(eO&Bu z_~>ze?E9UWG%_kzR&s?|{{1@P9uyEjbjtJatkn4}yED$lh@z>gM>gFGef!HEd@lNn z5=W)^;PIa6O8SD}c-nD!PC$HT1ov!%L~)FtXc>w+tw%mHB{s9=xJQE-SpcQJ_?7bY z0s4}2r`hOEOFvOZ`oVolO6xY)c90~@x3P?aZlZX>Zb<}kD-z4`eae~!kEx!&G%Qx} z?gSn1DAt9Dze|aZ?U;U+M=`{6oh@{`A83icuFYfdHp0(T+ptE^Jz}a4>|=>@Pbl*v9r?hKZ9ezLttl zA?_ugaJo_`99N_88C>M0iswXB>{fIrg}xA(okPfAsDge(Tt!~ zJ&=`-(3l$ShRE>DJ5;B03+Bd>E7dE*ok7KwvwLC0DISquAYW_M`=S8LZOsxZsYpBbLfDT1|opbYw+g z9m%sk8!)>GBhPPyLoYm5`qRY7(S~h+DbOmA`MfHTUtea=63c=F0V7Mt=Z4<6$Em>i zZca?kDqlDM%6a=Sa^w(x7IH6Cq}xIde-12>pg~mF)vevCd5F9xKL%JuhnNvq8=hz= z&;4wtD<-+z-8r>gr^g`oDn|_73Xc~7MySR|4t-{P**VWo*#J-4pvu z8J{47jkr9V=8O4enGYTUHO8={w9I+MNg#{G6h&;N(LpU;o_1kU*mm(62p%nG5&BG@ zr}jrDz0mtK8M%td1%D&o%E*}Rhm4=l6X{$%moR*svXY4F;GE>un9hNCXG$>Av6)oO ztsOUcO34uVriAL=@VU6|gyn91+BOW1LEAP^=GKD(u${Xb89OsG)E(wgk2r%23^Y>4%-kDoCCJh3n>+VW7%M4r&J-H=o@_*eE zU*Dc;FgL9`g&qS=aju{CK_h#urx^x9GDq#^5q9P5l%KhFWYiKF7Lgzs>LE$uFsvYx z!%!s88;wL_=P|4h_kXK-D@XC++LEeLDA>4gfF+6hAO*Urcrdx;PFH?RSdWY#)UY_B zxoF(qfhi?+81djUs3&UqEe@aN@Gn8_!J=Xtza&jHle7HcA6oidH?UBbd!@K|2#pti z#oy%#q!T_;P-)ZZ@5yC)O1(-wR~=Qf+%aymD5s8x$j?-)+($LFeAT<_oqTZ?t<2zA zAcO~On&PsBh2}!R^>k{7bZ?BFXPW6Y_EmL3DE-w!yVoCk)TkR_3h~?V+F&DXLC(9` zHTgGdl=I?=ota*PTngI+LHplft-$RvYH8=^Jc@A)y@|A$Qk_jEFRjy$H=?4DGRtUc$;=M&y zJ$}D;Bn+bwPps_TT1dNT;z@O!*$->&H4;lW$TBUPD3Z-Pkpa(6@|e!DJOl4zD|>L~ zIev{+(>CQc+QuKt?A72MF=AL)*ZW|_@9=)l-5+PDZ^e}V%&=hb7qE^wk0ZJ*KgP16 zFuBAM&%$bDB4kQ}hijF4tQ{gq1EA!c*kgDzd-Ko>vugiB?GwA8`Fre#+Ot)NRTxv> zwZ%yv!S2~+U(11Axp#>kkWuXSp8LpSEwy{y_;?{fbeU6BVrSTJVuYIM?usBu0HK8h zyRmgoxOFLqtI}!7opY>ANGxda*s8A+!hTv(NNg02*rISP3>_MitVePuS|VYv!KS)9 z!m_LLLal?Fd{Vh=+NipwkAy>t>Oj7gbMm3+&HSvqOMJn~?i@_QBSt{L;m#d@xR4za z83Ga}jNm>l!nwsTu+tmxx6^silp8amoiYDayoQCNkTpz0Lcu9vcH)hn-Mq&ErTzl~N7U$Veg_Mis zK)z#>f1-We7XfzPBN$9eze5VVf)u&gi5i*XnJb6snu96lXOUMQD^7%ElS+UY=1kb* z0ai`-$~+=9^4~Fb-g%s|xu%YjGz}>Bb%kgS#UF*Co|n#Qv8_MiQm#y8trxo#mir(G z4On^pA}rLUF=0WQ-E1GqifW=-CQ{L3iEsi*kCz)6zM1{#ecNzm;1JW+cRBJOFVT&1 z6)F_(+QZNC0~g9hEJrvizpoCtc_;QX?lZ)+g8`!3=-$Nh6!M@l4Dp9yA@W3CV2~1c z%gs7X*UT(~Uu_4GQ_+p;9n5xSyF;o#P&D6qQGvzy^J|LHCW9+a*eiS6&r@H54Hv7c z89pfmtS|IJDL)ai<;N%)y*8vl6kn4I&22l{l&caFn~P8;MHW`g9F1j(k4pZe1aOrw zxLj7r24>m#Wok^TC_S2|Av)J~<6n5 z6&05fW%@p-!>gytF~LK{!;Qd?*vsa6anll!s3LmI-HUA?q?XB z>V%p_%syw{1zrSPImZz-rYytCO;jvLCy(by$arVi8Ov-&Mk7KAPn;YnIfcNayxuv2 ztSyO;Q_jNIOJh4y3#j7^Kx<$U7gimqfKpkX2bHR)rQ0;3yB<^$g3thNh)#Bqs!oe*wwkzTSnP`B30WCC7F?ZSBWQz z1*%%_qX8=Px018nMV>5{;kCc!_KliGAeps)_ccuhnIRt6?rc zmZ+o#O)QG0HQHxo+TV=P93BLPE5-4vnEIe%zvBto2n1rzhX^c6_SzLR25!aJ#0vdQ!gXwggB>?`{^=m)KN$};?zbKqNny634C4sMG(c?T2nw#7=N1y>Ph zWG!50Q*UhFZ3YI06|+HIOT?HDN`)kNxw1i;q7Ny4ud%@wqj?@r%-fXh^qtR;`mgNm^p#EP;+d{Pe;*K%lp=wWO)e8F%RI zPMdgJiGKk~57+*4TUBmh0d?|us=#6R@DB~V1onficYZJWY^j=Km)m55F{R91GI_`W zs<(oG3}myI;F5l3)``@#YFrzv;F5tEKtK%N%AlLiGN})O+|A))qcr9wNj zR$nt|6HOuD`$KiQui!qh-y`cMUrI7RVhh7CF4_5l-b zhiJ#4Vy=O+3(1~6xC@5EvxQCJ)ksn``?Yu5CHyjDrN&oK=BL{i-P<($0MzE9rMgqB zp83I5PR}9XGV|#K*AUUMKCc*MZI38{9jsy;@Nj2X>xLb-=xj z-GrvLR%P=lR3Y$8&7KoC#H)LWCG;6^V+`z_8sFZduzM`#sFy`EgGC(Ig`?rODTZ}`7Th}MhEOi!7Kv859-RR$r&a1+r|^f*{+I*XIR{ZrcSbR79C z5Bu?khj{#C8}Ihu4oD+s*(PDDDq9D%fVph-kB10(q$rF=n8V`Jtgz}O;j^qf@4{}y zt{}alC?0ekaICV8uXJ-5k@|?UdksIq9e;|BwxM$mT6xo{K~K{LopB1Jlk^BMI$#RD zuw7#Oxe1}}BibC2LN};D!2lHia!7Bt6y4fKTGuB>+7m#RTKA7vO0g?V_a>E)8h}qG z*F9zj7sIC;pyM^+LUOv@x?w>xJ)jXn7m?~age9zzD3+4-Q7lwS(T5-s9C;jhsJ=Y@`!a)RO?eG6UkjC$Zv1AsTSpl7{a z(dQ;0LoJkYC{iZy#8)lhY%!_us>fxy&B{rVyf?3w*naoO=3ebWg44u<2fAn4>4{d{ zm=YATG%om}etm5*zzt7Y_6|Sq^?H3z z1!N1mUZApw2G#0pi#0+)p4!7p;XS!-5lwSJ=rGlGC#?LLw8vKP3XoLvA3 z5%mlz6Q_vH7ze>dJRX~Jh#X;-X=VuvR`*E?WWfOi>ukz3%q0~Oxc@5wCgg%n9@Zob zF@2l{z95v7oJi*|)i27f!UxEEQq@o1l4ik0+~B8FlvZ+JVxHBaS*gGfm3GCND^-7W zFXNB<+Hm3GBX=v4pZ`?Yg@0DWQHsLagb35dX|V65%&y@ zP!Lve$3#zPjpgZ-?8jwE`I-f#<*bhNN1X~7XB24*HRy{dTH%m))xgw}$4*omSAjw9 z#ZzGK{+N@A@{foPE%KbP8hJBgm9(&G9c)vCzWI@MHAU5rNTS6E$LZlej zhuRBI*o_AQM&FvGI1X9GlNtCq%fmw)+l^0%Bg%@%Y!{&`Hh##An^zk4oL8J9mr(ui81GyNc%Jr{l9#n} z=Hq1XY6VyV%^sS0sd2e~!KW~W$OF2dzPf9l76-n$Heb@>Oi_1%C6MXjvE?s_OeF$> z>WNmROnI(uky_XKcpxRW=Z%uITn_DJhQf34AfA^w<*PrBK!75R~W8FHKVnhUiP= zGaKX-L6{0-)7a1ypMP0Za34T7P8Bz%UM7J!l}xp^yQ$<}H-~YA%;mz*o-FOstHStQ zKpH+lJ7<7^?z*)IdA+v70UKkW6Ma;(1Gm+B^FVNfZIj3eX{8Vu)k6-e60(qj;m zn1}+i*TX2?|6>R$JLf@y)d{(m-GINyG4#TG28)25gPF|Hg8*%V??foE;#wa*Toy(| z-RLZ3>1B*;W;eAKrO|)#wL}ETOB(zdw#_DRs!Cn@2PEpK{|{OzyCC0Y9es;w=HM7C z$X8n&zL_OgXk{XPqFmz#N_iUxOi0FEBR@ME5Jn#iJFHM#s!Ay3pc?BDK<_B*yr#8 zY3-KBE#D^UMG-_#x%3e3(-`f0E`j1zM1{Q^+Z>Jjr`Fc&fW%IdPZJ)_quxVCBOJjC zhtnXRc6A!+l+lZ5_jF64AKH3VgjRyF!R#NlIx@-BVEL!JUS(Lq%OU(vnex;AZ)CSu z17IK2h*~Sj5>T8~Db+bJq3Yj>-fexD2RulX+KeIr2!2sa{*wnxa4P+C^&VVCuf{J1dS5+JpDjOFQP)CZ)t$LX#qD8aOX99)}iJ^ zJ-Ox{fGQ8^N}9ZY8vROWFh++$x_9uAbIH8X&h@m7KS@HlBAs)ZbG=C<=Nak~DCpj? z&8)`kKFjc|FgZQiWHoni_svF>p?kvh$AfUFPF3b4*DJwyg#eH4J>A1gp!dah;PC7y zmNEpQPo#|%^1!`%_SCIB=rT#&!ip9mOhJS!$e^d zP>fRk=*Yv=-aJi^(ir5}ZG-D;z>s(y%0i_fGCajWTGMRnXvp?%EKiuo{seM#%=(U_w@< zsnPh!u%6}kixz38$e~YQvgdwoOb~XFsq4k`->uPYEBD6>7M8m>V#f_2!H!Xfa@RS${&Cmj$`4=xlw?_H<)k=h7N@&~~$;fSv;wLlP{Y2>I2 zl5Acb8_9=v+|?Gc@`9-CrLI!>6%!z>`+U#94V!#3b`hHk9wJ*qLDjDVD_;Q&@(s~K8hi@7%~ zk6aM4?KoZ)@+!~X^sDsDe zN`pABJi>4VIIiFI2yURqfcwyheng={SReFHRHTWkVHP5f;R;Lj382MVn5n8N)5%Dr z8fb5dv?W%Q12TpOqV=Pq?E~dEq%J9%e+2Ve85qqK6K#yFfRfPRq@xpc(MxuxLJF`!?@uofp^Z?! zDtx8r%3$=sR&EiJsimcN!CC3m;NjK$xXS;Y9Sh0K1dS~n9>8eS%GZY>)Enk!-xGI? zNA*g4HL%UPF`2=;>d9$?ZgCe^23Cht56nI?@h5@Uq87x~?|~GHq}RmYUbMMw+5$c4 z%4lucl`3Mv85wA~NNJFRT01vVWvx^FSf|=hg8cz$rpL#-?&;omdtrUBwlsXNi#y|D z$LF)|`2^^)Iamw-%e`DDkj2_vKlA-xP-c6jqI4<$MOoOW~R@ z{nOO3(1bqA2+~TG&`Orjs`Rrqxsjt9-%pqKt=0X}>GJHryE^{7O`w|JPuJ(I^$E~5 z;H1YX2&SC=$4Ck{3x7@L2BA$5Y=n!cU;#LSW5YZN&0mqzI-J{hy6P9dTCN>OT(fko zEg6Fn@pO13LRq>SK8yw(2CF&=xdkeLhwUsHCDxg{OKmU9b>kp{><;-q!hO6gLnPiC z+by6RbD$kCklsQsBPo1Q%k3?YLVc`acQ8%PAnt{zfJN+yrC387hhRG!aiOzh-i5f_ z9{3y$u)=DuW_PelJ0P8xN(EA2`7`+D#~vAhE>%5>P22{U#F-a%%?=<7?Y=fwO>^S-8v zK{89lpVa7sPDuCnrUtBetgUF3(C?`mX_P>P7n5i$LFz2BiNvyXLbcr?1_ubz&Fo<@ z)}c@5S;u3ZN+mtziRv5 zgH03{34F?*Ru^`;P@6`wVJz~!&Vct;HCKX(qBTb7YK|K;gd1x}f`*XchZ^kzt>oja zc5<_y=+~_j<4-qpv#;oxS{6*ad6+`6a@>ni?EpXD)f!ngfzTh%;g$Fu)hyiIs^XJD z-$KqWj#_EdJ0V1x!>@~O4%TjmV~;l+iQ+E5U+y;?cTe{X6{go(<7y2vd(n%46%+A- ze_@{V=8|9SC0zKET@8Ukm>U3fXqiaEFW-*zLcDTJ=Cim#U||+kx&-|T%4=0z*=G)0 zjvbfg@zdV2%@AYtSzpKp+K1#DKHXwaJEI=(6(XbFu3(Exwqd*FRu z^jLe5Gs#{`rh^Z(64AtQ3T0(6V1m`24X)$u@5OVIN34$JY1)&JD?f`z%(-9eu}kDu z>1K7zHR8a?Dm%fA0g5kFnZC5~%4RJfQ?0*AW7Q&g87PO zLke`<$q9R{qvf1SU@SKJ3$EXnylOEH!g?7243xzJeU@i_jcmbGJBgOguc{skE>qPt zYnhA6Gv6sjc!XPY3BXFZNX!u$PKyTr!fSCt4WuiPApu z%WT1~Zf4A3=9@aX#O3aZV{O-neiE+_6~6Sok4WD)XMHs}`u{g){We}tH==Tsf1X=B z(<}Z05jP8-f!)kG&ewV%0+qbE(-EHlsp_gANK`pa!$~82yjP%_ z_=0aCB4M&RMyMyfA58M`$*qnkHKiq-miB`+zjzJeP7pZiOz61PDv190JqyBsx8RlagTtVx#wUxvGI`<3t}B)2#??D!og+JDS*`hlv8pEe|YOGdhrQgw}5Mm$vL>p@qE^luJ;yM z1~n~tM|~{&^!ofuo+6S-z{iUB^_SCqT?YjWQ&=D9TfrOs$@wNa`u5$ZP& z1L2<#Xs#`872$Ey_=FHY_kej}oG}rZ$wq%(;saPx^`&QfE7z=9F}G;D}i{Zy7x7h(``ibnp+f;H#Tt2flm}P8QEO$To*4izLQr z8?&pIrmC*rZN>1KXSz6ilUT5EyK3ddL#Flpz@F{u_+WZ}*h72sqZKdq{js&tGZ9N# zm+)60aXHQ=)$J@1ak-(mFJJUaCaCiC!r;vuA$SJ$yJ#ANRb|h^rz*s` zRhs`WvKsGf7SQXgxSIDJGo(+pb4st6f6LC8!&=i9UXh)p_+(nBxfJf4s2=ZgOEgkC z`9TfRrZ<>3XG#1dNb6(Dp3Le=sqx;nQLElpG!26tt?+&RJ@aXDKJh)gB%`eZ#1jas zV-G6h9Px}90;9LTT+RBz_a_xK%R;BrH2ai3KcJUP1D|EnEU2*5c*d$TO}hujvX7MW zuY{&ZUx`lx(_uyT0A)KvoIX;jH3%hMtvGKTdSJMH%*!)R9Yl%W&Qlr)!yu=$E|y!@ z3-qFA_FK5ypd&23TR^K)ffjXk^JWM2(xw)A?<=od`L&1+>~(Wi)wHAqEw^d)l_sgZGb&M1>0_g^rGjV~d?!Qc@vC_eeol7Ttkp9qc!tZK^ z+305Y#nBT67F#6yP?cJ8#a02+DOzk5JvC(E_{NKrHO30p#nEoH2ju9}YL6)@aa7t> zY8=7ZRl0Dy7v9UbXi2pcmrx50Ex-lSLIe1`uz28zBvW>lrUf8ZK3T<|5K(;LN0)94 zp~PeUBLiHTDT`kbP0k>uufiZUki^9qaHVqpBowW5y}nDv?C3R0lsJPvZMgKP;i{i9 z<~aRX_u3@Q+i{5&E>2j5IWHt`*P9I-ck_44`~#v`l2+l*XSea;4sybBnici&JPHOx zyVIZsN8r;A~PIlf(zx>lN$QJXDDsl;buSn@zNm>lIS6K+i`jQs-S8{kB?!z204I-8~62(_U%rxU<9i6acmEjC8)Gh~xQYk0*Q#!ebR8`8ZUT)lblFgqZ!fFaDE-2PD6zT2mLJBP?aF zm&!YA77hE4)w;au#<$?|H``#@5vXK9j0rATck=DRujnqydO(Gk)#-zls0&c{F5cUPVZ~-(qK_b?L}Z68=oY&6)y9z0c!j! z!N-sYo3IV@$Uaoo>rqhMVV=0~EZGe4hME*9TBNNv_8HId^tzU(fr}Rr@@utwm^ zxqDv@A$u@Z!J;dUOo4GR$_tipA()IY-i|1fXT0sM=mP~b%>{?2cf@*Q8V!FZYSd9} z!kpZP;8a#TcM@m^IOO`}Tl$$1e=xSF6WXAP&9ICXMJ%MAu2J-PF&b_9V^i;`^TP73 zumjV1*lDb@w=TO8p~?JUn8Cv08Q~N-K+Tij07;H=P&y*Wb3h%bfaV>J4#OHtA?kFcXi3iE;48%z`o|8=EB!lAQxRe;) z=)_BhcNqjJ&4C;Jz!{YQhmW)Pf%cXM!wyI`n1^LM?vR11vX1ww^Z>b?ScG#YSTNeE z9G2J3P}{aiubSBsVo~}qV{wj6C8*hu@^sNwKt$>W3r=5=%__DQlF>4B_rdUjMKgX^ zjajl)Lo-WMgo;^$p~@^?)(9a;1zN-w)(rRAGre$`7KDpuzkIFOKDc=U9^vq zqV%DST`-WNo=(Gz9^4yY@7O}Q|=p~I9rJVYI+Kg?M@M4k1B z)5Zkql)jL4sBSUM`t~aXt*D5?JzN>x3RZ(wVEb>Yc=d@_BXU_8Ns5; z0VmHvbwLIrTXHXkO_d{W!+JugpT>(v_Aa15xEV}41TeIBaao$T2Z;&Fyxqx3w{CjX zy3NM3y24pAZ-aE2VBW_6k+Ef8j1-2_3!p5;U9rQ=k_#wRW+;9l#&;P@aTl9-&jr>P zvD%9kls~hGm7^lp1(a>WXMn+>`Wm7QNLheflU>vXq?u5oJfpA5CcJXa!pYf)fYHOt z;BQEA^2qWBV;(FT;pOt2a+M0wkYc}&NP=vp$rIAZ$O*&zmQt^4vZmQ3MAwRT$DEVO!2;*O@xZIl4(7k-K-Ws8zl6$pcqNs-BHv>0 zhZ7hU%Xs)XL{d7DXHxMWxgqCxTrIyZk1Ss>-=g>ux?fZ;$$(X3gxo=%8#tBkFDq8929wZ`}w8WZ2DF##z_ zxprpzx9?H%`8lxP(2DAAT>In&WUY0`-=oV>oPRMkvg+#L1GVEXiI2t(Cz~2X!G0-zf6E5j29U367yT*WF77M$wGmq>(lV&;BUq zy!=T&0YzPcGTu(J)99eS3`3eQaz%_Pb50ZELVBI?IQ7bB&G~t~O4@kDM(MLAHZzSh0f*)$84X<~;%FcaOsO#*kEg$A;&rFT5a`22^y#e$r@(T5 zET87XtZ{!)e8y9>uZj+2(f-nQ4;;7$>+I3*=ONnw948DZ>T4m!@_ep4$MJX_8zR7O zV0@nt+Gl`;_Ki-BE|1-cyBb|~P8wTR#1*-Y9u{$BKt^0C2VB)-tqjocC5TJu#&xs- z9Jr*X1E+q@Baek$98|}` zF&uQ{eKElN&;e_U$#c~jQJRjdJ-*aWQqI)PR3Wk)@G4qx3o`RZWQDX$?v7ZM(vs(u zRnvmo?fuQC$w|UC!x-qQCbOyu)`_W)S19{k^aIdK;j=-VmpbHBo)`2}gCjkq2%I6M2&jjV&##0{ zqx;2$kFVPa#t5Gf9sbdS^TZG3V!W3#V3OA-8kK(Oepo)U{Jc3la`|R-*nw*!CEqTH zskQ}Kl|}jmTjX@Ms7j%)-lVH@xRFI)t%(Ds_rp3+Z(H{)hDhB$C_dvC;QV5IhWQ^| zPX7BIS85Z|VYhyDD!SpNGH!ULtgBc$%vH<; za$^8P`lvVRa}#^=FkFz!F& znKILCgflD7_v9dE{>X3@<1~|owZddQ64%ASJjoh|j)cit9{Du7#TfaoG{eZJacv&w zy#(gG)aAEiYH+I29Oq&FBJMN~=0EyfYD_qn8o*4GI!_-%+-q8HDsbL4=+M#y2i<}m zcMc%`pbM@+U@ZV%f5aBxHK+qlu?1Gos2LOOVuHCfjgNLQ6&#uXeRBV?Do&iN63Ccq z276;^2y`;<-w*4-e7Nk3rPKzr@j>U^M4Kyid8=}7A`A#tfukretHg6uWL16TY8b^p zhOWF(?2_9U;DTi_w=uQ{IUE9JBkJ?V(iBx_Dtlr^M(8q^>> zxSn*maM8G(E)OnK+26^2j*1k!R&?W@PPi!(e8bSqqX~<{KJ0tU}S-l@8T7G*~SRx#p1kO@b3?S za>}`1p}}Vz4VG}BvwB?UzNMhKE-htex|dPTbdq@GC0Mv#zce#lvRfQ{Ss=crhFH&; z`7$=UrX;F!I*~i4^BG^<{QTKWZD;)T7dq(v_rKrLzyEH%tOSkIWaUk?Yq_p0l`Nkx z*K&wzpf2VRwbT+izKl=kXeoM*FZLR$45q!@bpla&LVcb2XVS{&<&20Y&<8K$VmppNyGE^ag^&X@1vFju%+ez`~>a+jITL{`Ttsg{=bhv z4!|@GL5CZ#EVFYw%YprB(Mp1^5Ex}u2D|)}9|0YeSptG?cV$b_T^Z85n%>MX+q}&H zU`9cY^YSC8_wo~|=+^7QY{B|4KZ4$ch`e{)h)DC^s6Yn9d%Z48(O;Lvy4!4#&8w4j z|80o{;&tpXzH3g$poW1F?#JVNamh{1A51GCZA%rjg6i&MBo`*VJK+^l=@p7HAE(jM zFzHQ-z{g2S9z(onAw6;GUbKC_vz8{`*}FgJ40NH@RC>NV9koi&%N>&jy3=ZEO{qt; zS|g`Y3~3E)t?ycM%DUe)n?$Qoty16?pue!DE-H^!t=7n$v3h)mM|*!>ihs2f9EnFW zQtI%=tWw=o8EJYIKLWWG^Yd}bx!8j8+?~><(&@m`^4P~HS^!9y2N*BTP4Y$^KdKIwJXEuBd(`RiJWxf3Cq zVAAA?bH*D%-V5u4Wu!-oHXd|KcS zoR&{2axTNw_sVbAn%-~M`4BCS&*E6f z@ls2%aa+z&&@5Yx&Z;dhK`tWf5?Ol_3KVI-y`cCKp!OydC^~QTf}*~uzX=73bp2jX zoEo9_rW&Y|qJh8JrEfjmYX4Dvk9)THJ|KEWt3`C&@aFr9=#>~rU9lE=DRWwatogng zddCe$i-EyOJ%D)V>Vm;(Iplb7J7w=uk-Gqbu1;SKjQ(W$_Wk*IdMx#T&>Lo%fuN46 z*a)rOWCPPl+KL`pkgi13Jj=~644|&y+mN15kAP+)B64Ou>@*# z%D7cLYVfP*X;ka_*M{=00E)t}p`0upM|oLrep_v=&9(Qv~$ z7j9Tv9JF>rN5jqMT)6pcanL$dN^)T5WH1#yQt-c)UsvHkM*TM+d|bJXHD~qfSjLIj z_!T@W?S84TQU&0cjbDMVa{a1QHe$=U!;*yKulgK?Xf-mlx~gJNJK!BII}l5ifW-r z{3)29Tzzt(<3q;26rJWAT^G4mtkf}*?#X$?|2;40r!gE2xc_^)$pxSTcCEC94a%zd z5#cSQ3sJEV!j>X`PvYEBX_TuM6VCmVM!9k`;oRTNgxwVx>HywO3^_zTMSClY_KN78 z*A4fl6b!cELzwUzmV4*kLsXsXA*v4O?E}Q+L*vfD0ljm8xN>ORG&uKq)1a=qUX0#@ z9K9Zo-rFxK04Yv2#p|7gcs)n9)=9Ub%-+Q>@afn9Bp1fwoyr9uxzY*fcViRKyLT5IV%lw!F|&aC-G<}3dLi2)p{Om4HIJ87 z_z=H77$#DO%GwH5601%3SB(hhO*{TU`-@9wrOGUZ>3!U{{b>_{aHyUp2K-KW|H2MA{9m>buVc zV=JUrIyJU(uXF|g$S!c^=(gqclEKwgG`Io_x=h|%ZX1At2F=e)*sVOaYz6?t?j*)o zWhLrX>C{w}s1DbG-ca0SuXcaPTl`++EPh8_R?U|_#IrnNDAmUKOjjFEeTe^09x;(hAU6M( zt|VzmAEIPk)Lr^az6s2x-?H^_m!{dL^!WjOZ5r+de+;Vk6@jajm1D92xe~V zvNX=`+A_t|lg{(O{4Tu%n{|qs4uX9}i{^?xg0e$~(kkx-xN{+*XbS~L=L$InKz&Mv z7|-YO#+}`G$GY8FbQGUYoBZG`I`z%(#i_5~mNdT;SH3=D(p=44^CV@jAx02Oor!78 zHOfo!P?OCgpv^|~?CZ4N%oVLSfF^CLWxQclZMVaO1K0}KdQ5dwPE-CZqs|=CsPhPD z)oF6xvhU30tt2~eD~X5pBVr^uEh_p_jB4^)O9ijB`JH5$Pdh{N=XdE-*P~vRZgtnx z%X>4iNG2Gc-@x$FVYu=X9N1zhGl=(xE>ln3hX~{H^djf-}fgLt|t$C^T3XcT5TZS#GzQVQ=12Q zA?sqcrHLB?9p1S^YS0E504cgOIex$(#z57Vd<|U+&x(&n2G+H+^@po$8{x6_; z57xTEgadU0mI((4X4YtagSljar`1 zimd+}6%@WQJin8byjvRpHM!?Ex)XSiD>YWmkMm>GraQRe@q1wCOW7JeXl~{OPvnKJ zW_H*LK5A~}g{ASMhDou%(WLlIvl!EUG5%9C^h-bV?;3h=ccUKsq@gWmpsn$_W~PdrW2XtRk|ag-F0W5$1A0PidMXzawn zq8nSSJ(fWalSPUR?L~Y*^9f0*uWuCX{SGi*fh2nFlFFEpLTXvP0EZV(>SfW|7U8v=UL!An zx%ax^i{9%=b)VRQIHJ&;C-`D^c(Y3~i-B7G+ryBB7_pQQ=U6HssXHMz*D6vxM>66I zO*c+hj=l0W#}rQ$?a_Db9;a_;+08S9glEC5anVF>ct)|vkIkFbNm-gF*3g=l!^qLz zb*T6HeIIm`K(Pa3_T|&ak|#Z9gYjTl3g0K(M@omC`fM=jXb$E6qvwK=}%Ld5To zv;1B;^H;kl%#?U*)_6gK%tw1;h$pXbj+^2PJ(y<~^Ss=ptM7nPHEh(}2TYX8)-YK0 zWFZ3mURkx-+{uIVEs56m&8^3om1Wbkx#4{q?)TVkw~q57Ojgko1iz-q4F11S>K_>K zepuOtSP2bzAE>#K$c-;)fqy0o>ERyES78DosyXV}uZWmwlDba#h(l&~ksTwIRY?<< zR-MaDxXZ_~*_BvS@XBWVg2W3sEY-B&(akbUw>-L~IVa9hKaOD*)fiVh!}!=0ix5Re zJTF*?Fp3P9aZ}WL%mWV1!Wq{^2vu%zyJMo;LCV*_B{&}`StMZ}Cm<1!6q)WYfWp+R z66~MSmd}CJ;J|o>u^@JF?FhpxC`~9JTwB#>{(RiEkW?8bYo{K0n_m#^Qs7M_MaEkJ z5mei?{u!>)W&A!xd(4S(|KJAJ^J?wks1I!8Hm!fGusHFkT}NMw=)hh#XXsljSoBSh zqvydkO}{HL+G|{f86AMeCFoL^FBbqc zeO!8qC1tKiNs&3oG1d#0d9aQ*8$ed)@0R%oM3P2+mI#WBa#a-coGoUnHtc$`YBhd+ zd=idM;i`b+*ZUB^E-=Z8xFVCx88d{OVGh0Q`p8KeF1rgW!DN^om;%uonF4Vuq(GG9 zr*g};8+!(UA;; zVyo@Inw3uF-Eq;k_A8ezR$~}s4J*@rhLZket%x1Gs(mF?$)@fKFdf^v+zGzrWsWDO z;2$m+(I4CZ#(XXvz>mEmk_fwf(a%)aGMZjX+AbN4`Gc_w7KVj(0E!TV`RW&A-maKm zM{wNFoAVp80ft>$6HrUiU_m_RTBwjca)UNGooxc_sH+RHVSIeloltodD7U6}ZI#gM zCtF)D;ku`$41*<(KA~J z+?ONGQd%_<8RB$G>>CN{-4(Fr<7#e&l3wH2a@1e(f36?ULg9cG-eo3c*&;*X#MNl4 z9B9;l)R74-{8jRaJ(#}@$|)A!Wu8>o_~lT0E+_vHzAocZe!*Q|S#ae@yIERpqdkpQ25{QU!YS#bAdX)yLHma4l}+7&!N)6<8`pSvMN&(r9Zs)T11=GS7oz8zw=T zp_TiH*6$*1L903&L1vO4oa=RYj}u3-+Qv#cYjH9*Yw_w9DRR@U#HFiSq{vOX5|_$y zQm+sI6J9)H4m>1M(joQtnBPuyFDT3J9GfB#8Bm5T#_)&umGJB$o*m9J161UDl2pVO z@`kPML21qfrFnIWoWJr@=T^x^FLdczIZ6GCT$NloV6KcewtJOQc56U&r>Xp&`}N&5 zkd$H?GbrHcA)KXhz z8VgJWy1)RhFBg}Vdnh0}dK^wrK=krB)Mo*(IHR=-tn&IE-mdn)&?G;Pe@4L;^>x** z&HUP?>CsKoliD;l()N>hto>wj3;W4Sm;GdO3;W4S*CB8NsIxo*D=q9^q+fN}K&mc} z@VX1DwQ^a5+1#^b@PKPv!l48^3$$SdmKC?I9CF=!y z?|fdEP8Pleom6hjnMJ+xhqHG>L&8Zoz&*qJqkwE{Oe^c&+@2vfw?{3z8!v!&b&q>i zb0%-P%CZUW2X%kfZJ)ENDty~7w8=r!xpRBnTlFSPU3E9zs_r}CdfnW2=6v5N%Rd^v z_@<{-+}CHfV$T%#o3ofP*pd%Lyl#(ob(o}!mevo zILKe=??ztfTcm8YRjrLbG^|MBjaH-|x<{tzby@#FXVdtY9^e98Cb zyJLO~{5;%5L71(!^ONTWC)alOhUsDVcEp)O{_b;TTSuGlxGUx#*uU&EL(6V4nNMAl zIr}9#P-ej_Zrie3C;-P>46CGTSRJ*c*lHd`yCj8QTXY;^JD7tW8Bet?f*%C90*P@B zF0}3y^i1;tW7~Vxux}SP+PB~2?oeA{?yW0BTFZk)#al1rQ#~a9bc+cdcTMo0QbMR4 z`#KUT)V%Yy{oZ-Qp&j%`ymCn{kbF(Gb-TR%{D>bLMx3LOwTTn-LoEO<0^oilq%fgg zltY@wx==7k5^Cv(d69}`^+0L+WYy3{9SKDkKL35Zrqg)gIy|6%b88wujVCtUjoj?D+F&73>s&V^@G~MO?Bmc`VR_SgR zt%~3^T0Iy=@PCqQNK#FZvROa-3;Nb;`99czNz(lAY?@*oVZ))PFSLiI*;|;cAHus} z%jIn0GlMi=U3q_dYS3bKERh}ITNoihF{3D&K`Dh4OP9^Na<2w&2rn=+aBI$fLo6X? z?v3e=T;APjym9WuQFBS#jJ_@JFk`!Ord`PNEwrHPr@GdKskyx_T!_@oYFV2vPQn!k zyCoOKOyrQPxp%>q#a6S=A<{8U5S*h^hz*zvaU^ES$^W;Flr<~FdYn!aaz zJ?zk|NpLS1R*pZQGiZRj=Q{RzY?D1UmC@o_dHyDa;b8M2X>m?UnqPx{|M=zg^Dtna z8{G3pW-9#}?xX+2>tf5-if<`eINooM$@hGOo}Wdp)>HIKjR(eC;I7g`9If5=f@m56Yr9$Pby<=vVW#wpIp#hF2 zR=}SI)L0j+)RynOZ~1=fTfPSf^%**nqwWMFBSJTNjgqP)DzFq^`=t0&Qi?K7G~+Cb zo{zgQgKl2d*SyyWn+G`w29J5V6KiM<@OT_N{IoR)aP$oxY}y)gv$1ymUmI)Z|D~}u zWb>2Ck%g}%zfkK0FQ@w@dS;=-GaT$L-o9Q3aF*mIVwR*l{r>WcU@2`Diu1puMG2PH zGWK7_F^x?a?}9W5j_7=w zO8&%fx_DyP_na8y^jp&swblz!=f0roa&h$jSox%JYMwOCV@?`a9P^Pw(%Ypt?koS^ z2>G9XO5Z-C$L06%r>N7|wi#om+YC>)aJ7o^W`zqM&9!&r3xBnX&@#KE{%!9iPitfV zTV9#zkIWW6Qk&&i&+9>_Z}V>$_ZP3v{pHl>{vugS#4t#`kRXrIe(WV|#~OJAzChA& z$-PUkLi`qJO^))R`_*M!!!ElEoxh?S?^did$)e^f4-&bt$dYge3yCMAUx4PRrMNs(?G@RPmxr_lPIh3B3ie8a zy92k&TNpFuLyU6;itllqRSwZQk;)inyv_am+0-xoLSX;>mj3;B<2}B&|D}0v-(B9@ z!K&_>23fRXR-Ys$qc-A^e6v7RVZ>`BU%eiaBCTB*~mE_Zc;PJ1uM-~Elhs=X(Ru`k!&uAevDUY2gk`eIysN{zb^~=3Cw(88ua)p zJPMAkt)?W-qaVTLB$L+Shj`>||3InKW_LaB&hj(rooNQ$ey-|a%#Lb?QPk3NUxv}@ zTEG|IuSaK%pXS&SxZI_y@7?x5!$zC&1OA>`1r38G(k$)ppT~O0n^fdTMdv-m<2Vc_ z%}ATb_D0P`gRDhO`h1dLS^`Ne{2tOAj9*MknO`epMWEXZoA^7P3RRhLOw1BE$Fw;? z>`{3@Ka5&a^_eTydm2+I*gX1z)pE>qH2?sAZoIEC|re@oW{isZ#0*5 z(-zq@%k2~mR!O3#X4{<;K;to4)1s|EbvIwI9m^}~)rfP*qp?D$Ez&c>B{>+^MIwB` zZP2oL9>Qe~S(W%&u{^nSj#wk25)haipgA@5rpGcOY8VI6X&WAMyg`~K&x4VyvM9{a zN#-d`o})qL$QiN6?4s~B8gCtZu!6+`^-pE<>BgI9(IEnPm^3K=W0YH29vQgXdTD*ffa& z1?vVR+M~#hQR$U3z6~Xu#a6I7^-Z|T33=SG867IPRbOwAt8{lIuaDH)f>(j!ysck^ zyML0WHg*@~-S{l;u=aA%VQt&vu;$8XVfl|^m_^O}nP16M_NAIfoY~M%$yHw7vWI$t za{EYM>HDeL{i<_1kyF#T`-asp{`w0YxBg2nS(`6cE8itdmmDN=gB~c55{gbWyJ%Cu zEQ1$nOL21oy)F&VAj#4bnyy(`thR`SMCpuz!*H9c<3CosbkGb(+SZPuHWUhu?!}K4 zBxLQ6J0ERMd)p4u?@D4|v!ZpbpmT;v!=f*Z+%9^KVTO%QUL;O$6=vC4DX7gSm0j@l zeZwou!i=AkYmYceFeV{MUKmOZr6vQ>=wwEW0gmneVzMMK)q+Wh~Xx_;3*fsAE= zul8)YZ*30tUu<_E+r!^oKT+brG)@9VPO`=~G^I5P1UNVO|V!fB0?bWJp%vi!&bW#;`c=rS- z#Ag1=m;RKMBl@m>@k`QgM$IcZ_fPVaecAB)ki~cuvg@HwrDutiL~lb}@*&5k{grfX z!A5AYKzeBTq!g_DI4MV+;joQ?Kj4F9B<;F!#b?g=wXrANJ@nHfIjzkXMds*Vsjnco0Eq^mX2GZbrK2;!|gl&!EWJyYvl=n1hqB%wSt;K(^EX zZK(mp4$eg^ZvS}@N*vi80tJML{`zI zx8MJ^imbAS1SX>1x2lkrOQcPKv^kdakoqQejwXhWV`4~g6DFi|XlsGu$hgR4<0xqhXTHps|L?sdAPm=d8D#G4tLK# zk8#gGU+|R|p#k0Vp&)U0#la;ybR-;sCZ5O}6|(k;HyVfCLex^YEVi|`%{DGO_U7^;M+P3aMu3^qC{okZsB-o0r# zrC0R)TebV1b_mRiWXy~Oo2lnTIa80y@pg{&S9E%DSWXi5F(7%>c2V+NYy+C*nhZuX z@P8a}qW{J<+<*H+tb_ngmxhU+HAJ!khl3k)8a>I*x{{(E0b^o}DrZJ+{s%a){=yZw z!c|$^yefMcc~z!>{nEsa$6nJZNA=qb9h>U+CHkOnewCK*)zWLdALWeNmGX^d73waQ zqEaYTaPoJ)2darwZy}Yu z%{V2`^ats8vXOVb7r}TL~1SW;$4}Hu9fgdd)fA?cIdXFcBo`%3(frJHX>Wb7*=PpA!)O& zRFQxIX)RZtO}{HoD7D-hGg9W12yWBZ)gJRlF7E0jo?Jzv0%5W}uB}3pdtI**p&;yS zQ_~DbCp&$w5F48|6*;dK82gpP&n`@(v$zCT>%IaO|8V|5U!xKI#&pRPjlHybB#ynA zhAPf4s#B-IeyfUePh0-b(3bO!+Twkd9}n@h@$k}*n<$i{ei~Vi+9KgdR#j4b33rSz z4CWiaP7)^f3=qx|8@0XLFH%;}^<1xCPxkSu^s8OICz?*C0XJuL@POQ=4^Eid5$Sm$ zcZN9=zv7{#d!9G<{rE800UP$RKHx4~HqO6gXX>2n71@~#`aGCDtnZaM&f3sf*_BJA zl|P}Jr7~JhJDONb2|{Lb7vebi_C)(UQE}FaGY`5%6U6u;S?}scR-Aj5m#^r%YH`7D zDz|n{?(vSht`yJOwn{Q%)PGZ#g%7x911{P1 zd^vnZVk2)Gw%(u>sCGt=gQa%HPKQi88>yYtmn9qlvG}_gL&!FJH5uP7l;lTo1r@AQ%zItR6y5obAOKK{8O|)FFgFUkY8#8 z>6T%bbV@MC5k7_LOWF=>KFskvK&|rdcS4(FcL5&{6Jp~ARoBr-Y?Y+hwbRy*xt`!T zKk<*_O}s*Lj^y!dMw>fds}~-~g;?_!a;bfrR7|J&q}&VALEeaCTW;0s#59NDC;BZ- zqFjGhVib<|>FUdjHf*JQKX?$2UZ2*0>y!IWd2?BQEeiMCukTxyJnmir*L{-5-KpUI z7trakX_h?qnh`KtaG$(^aE5KA#aoK2j_nV-Xpc)m z@yva0V9dUJf^y+m1!|FTLRi{)>aet-mvJ>VYL{_Mep)Am7)&#w4n5?Uz}$I+LxK^& z_+M0d*dz73D8E<9kzW!qO#YXU7T*CeG@O+U4Qr^I1fH$|kCu=7f_S6h;xB#2o6WwM ze~58Z(HZ~UG80UAuu6NK5=KkqYQYqG*=)`JNi)#PJsQl$*FS){uXN4{xc{t;`%pXg{-Y+=H@8?}UfL_n=W+{} zYykV%CycyTiNlx!`XG-u3uL$GhEvzok^3MoflxsLvBvIa9)Vwk6#%ZL%w9X=voDYE zY#ZM-@{O$wE2wnzMq4MqHRu<{yot|^K;~9{3>OMx7&N-%JSMv2Q9AE>kLio((YymK z_p)(|8a)qH;_lC?QB&=%t*vqvcExGEf)=t>kc3E!M64{QV#TBefD6os+|-<$0U4@h zn?1Y85P7GRQdII~Ddg0znL7-Be=NeHDguY&1F#HMf%0vnDc(jN*iEDg$qXGKw^>kK zZysQ%&M{S1#({CGOt`wnFudkXLl8sKH)j=nNYPYbh^AR(maGtfTEQ{w3PZfXMks(F zPBTR&Z;y0at~k^3_Z)6443wtBK(u*@ra1kE;i2(S57}3oMMF_*QGydS)oN-JQ*@|l zHw8RRW1Z%uge2}jXCJHI6Nk^!RBy;7_D5QJ9>A+D&v|sDlwl3?y(mh`8h-rQeP4igZJ8 z1e+tkPrNn;mlN2s(hY$H1rOmgB&DUp-3Cah8=(#X1DSWU1X^C1!MX%)r7I~roH83v zx=5pO1W4Me%L9gS;oMnnMP2j)l8m_cv8>_nrgLsl-Q^$&l-)`R@V%zg|6ysx!pN? zrh>O;E%=V?Ut~VR@z6G5n*JrLtL~L60CNjfImKyl7llT z38#E&TpwM6lu|4Gk00VfxSBBNAYL+=3C8$4<=3wG#iMQ{!}Wpy-3*V8_R}cf8}NHo zz+h_#V1S@YF8T89!f+akvT%#?7r-q_y9q1UCKR1bh<>pqxXs<6)&}GL+pxdV4ZlVc zba%s*J4MByU%PgLk0!V2_V4z!mYMh8JLf9{?AK_*$Pm~+_9y-Vb<%KH_SkXJtthPj(h7X`hR}h3(hhM ztn80Fc~<6sX6gF4D&`0J?|7Da(vMS?T1OoymhO0^c)7CJ{TfZUyx7^l){<}@zS#YG zEgQVpIZ%t;A^6AMQhD-pw_%csTGED)w#|{r#vZTCA0K(ZVV38Dy&UNzsOuk zhpz&^Udslr0xs0Z23rOG|L(4>%~9NF|D^^DHkZ>g-c2WSif5Bez8gQ-;5Hr%JwSKc z`|Ce(G6Dn!sRTtXlC`_1rB|Ym>hM;TF|W-&^%tZ0t*o~gNl;>Tuu9CMa^5mkF?)84 zU@2pOt6&P*PLhy4Dlgl6Z_vEgcIO?+i>HoEBe<2CfG{@qP{!s%cA^YH)voF6q3q2n zDjjOCxb?3Et$%TV>$7FR;Djh{n=36?0PlSJjtXHxSOB=FudG9Eztj9;mL zoX<#4#Lf1tR%BBf71>_a#;c!X{T7w9q*Z7rWky?dRIi}wGvs(wPH9hODe65YlUm1jePxmZ-24K1GtbWU7tK~H!gZf zOP^AGczv;xQWU=$?W_C0FV5v?y+(<&DrWh)NNA3@M^l&7XvK2}9yRcjj8uS8SM;cP z4`AS7UxLVm8CElz&uJT4{_n~7&soD-U{6g>zrQS%SUltN*o+JgCh@4eS3`H2|jiilUXfhmK-t=^)& z(L&GMS#;Tk{8w3;5;@af$WUZK?(;DoIAi8DQ-e^|@@c|E^3wm2bp)>v1CmDyF<_qe zpNte_2~mP0YDP9<+Pacn`E5%*=Kwc)u?^y*YgSTRCmTLV5(9W*^&tVCSvsUyKD1=m z^r-=ko4|w|S2O8{M(^$IsX1=a^ptOgODV<|m^ZCHB*b$|hSbaFb^&%kF(4&B2J)|4=MsmO$hZJtK%c*PY_d3Bik?dW zSp|%I-&DNf9H7;@XJQe=sfh!$PiC?)X+2X#FLx^a0m!Jje%q&4&kEDg8HwzmCj>RS z*_=IjVxu6)iksvYMf&t^Kg}FKA`|3I94v3K_jW_CoIKt6AxU?(_IoFal!}HEIcZlZ zu2G4OTSyYQb-6B-Qn`P)4aA{pG)7zAMvJU-qG$eN^FO0LA2 zHEpVy7n7}dG2NOMQ_ZYTw%ht-yRA>Q+s0(OZA`Y?#&N2dS2AW^rWSATuC2<+$=8Zv zR*>blmKW2F!iL6Fl!r3tU*TDZ5eipjH$r*_A*9C7Fz}N$&wm78@}U{CiGbIX#&F4#lp-{0 zeJ$S(r5N1>BD6{???4LjOtcTXC>c=*k?p=Q5ViEs($hcGKDlqn-wDl2HWcuYYUBZu zXGaDV0+n?XYk=zLD5m{5ddGG0hk_G_!zT{Yi9?Zz3xYS)b1-jN3dw<7<|hbYOqg15 zZ_OgS}Jw2QV+$4|v*q3G94OAzUxX=j#RznDIRwQ44GvC9s9_ z<_O7J9zOyE_9GoIA6Eog5di|kMlKg3X~n=o;PR*r%99#(Ets+09ML{m~6r;5+#}`By%0L;WD39xM{NX4Q zRstD23VdbZ{7RbD6@)r|tmT+RcI^7sheYj7J4+U}=q-o9$mSKouJ6w;lE5n(ImBbv z^1g+3$0`*4CHrUF9E#9-R>fdsZ(5hc(hbSvW{!9Ls|~B_{1QQ@KID?po;v{{FGmQ; zP?bV5WPz>8#}QT%RJF0!L_4(Lcl!Xc+Y3r=?`-&8={*X|Y2`ui!BHN{r%N8KLX9W_ zE#GVIi?!t;0zATHF0^paYA*=L>v2n|dT^s6O<*GcxmLl%e2R)BFlqu3ptmegqn2)Z zFY#`XCxVtMTQAC{%Y0z6ZWFs8=y$19pzQdj&$%$_uG-&Q-74nSJlWzgZ*L9R=zB1w z)eqwS&al)A^EHSyKj55im3Z6FR`ioob}Ky)mY;+7FJ!FSpuI7%+AKEQ^*ptKz}@vM zr0PCM4tFQz*;cTMIlPsR*|>j_UsNX%f}6H&Bd1En5U~LPtHf-6iZoFMW3)@?%ua8uAXX<`coM zD)s%K{I(!VSkjLm9lT{up=H$DDa*L6)CX!Qw_B@YYLON73@(GbCL;xxTk?)r3xSPZ zwzQodKJn1#B{LD~78!()Nsh>1Tk=X)7Z?baL0**)wp|P?49<6+VZjj_t{7Mt9H`D< zWQR;KurN4Sl^{WvzJSHp0Qf?1eB`1p#ump1X*{IxUU$X7BH-%5E(mxc!7diW#Qsc^ zk>DVj--|I-Jug?9+(HL8jN+}I`b?b&FX(b~A&j*sB8;O$D2mwG$r~1>KopTGyVNH( z#8+GzC^p2x+8J8`M0)^1doP-Cr?_A}nsMTcX0V`{HJ84$rwtnB+ z%3P0~yR3UNIb@SH0Ea1$T}uynRGyP=EzBGd?j__o2qqA5ncTx!A#d`_BpW^|{U-tt zZJW8T-DwFQY&&bFbaRpjm+v=6E#EH+I_IRDP$@q*QhNS`mnAhF260iU25_ehA_ZSw z$*ZGpH_894i#bH0mH`Pcs96{yhgk_gaKpTDe<9DMf>`{hEVt_#yO z6IpAm7`J&uWVVNmYl1TJ;;Pli54V*9Y09BM#%)#^{}S3Qb=W<(q4vCs2x$%^LdGQ# zk{?i~_rM&?g^XF=gTd(TR7N+4QPX1DW*da%R=j9{%8>-IbYdla3pbDd+OBo-H3+%q zPU;B_oZKLjfAHf%TDSr5@e0LLyv(qczogaIhfs(~tO&OFIqE`}4?YLdD zCWT(dP0@s3N2YPI)-h1~?8yMz$XW>b@1x=})^UsU!mT3<{6a0GLVh6%Yo@Cn*A4nh zTG?x`(%PRJCTT%op?otI6v|pq8d{bjXyo8+d1C-hUpD6rY#j~KTd|Th>Kpe;+SzYF zmx-!1*l(GfsVnBpFoKpB$S`}7o5~6qWTTbsx~!AIkHFiXArDdQ^ZuOq$;iNh*eE|4 zjJ$&T$=d2?11dSdelk`C>02=eFd-oCQr4)pQqzGOVbzldLqCG>lAS*`Xi z0Ji2b2U2xmUFJh*VJ0Ziipym_j2Q+C*oFe!>Tf>wEfqnnY^c9^7+dYw*T-DN#O-h9 zBCMHm2y23&5f&9pIa_}0Mv;|P0Cz4gf$#Y7Mq~{&c899|*t=iySw8soI-lckeN;T6 zHs}dYg^6PJYttSw+6d$V+bCjO#z<|jqU=~Yrjn1n^_(c$#z)IX4Od;&;U+yK9Ae3P z+c-cC-Jpr`gD}=2PrcKpgd$IkP8I_v7mPeLdO~na-yL~^CmY#$l#@nBOkdF$*nt(24Wl{3$U-^&4gpWiW)+x(Z7`~pIKsK z&@G_{FJ@f1*|5Bi1A&esJnVP1EV0@0t}ZYN(8uiPba$S^6rg?i`{9eZB!Kn-`(TYa5 zv9OdTAEO>HD}<87tst%tJ`+y8%f$Fxc=awx`Jkh)r+L9^H&*MQc1JN)Fid3baQNI| zOw|nIo*O*5Q~Bt)9(g_TzDMdl`$}~_;>QY{(^)`GTMgZSmd%E^fyzteWRkxWoN1ho z>PsV)Q-Mw8l+hxF8>5sY&Rg-Ms8Kvg1ZXG&XjVTdZq!eT6wvh27^VdawelMEM1f5& zje)za(7@X`6bf*9sf~8ewdS5fARc$uTRBVd5YAEoujDK#@Hw*aFwW9#%NU#`Zgd87 zyQs%L{)R2t8+IR)+%1DmD?V4!iWQ!;;tf|`al&t?kUJEvwBik4Uh(6fb#jNol~%mr z%PTIXzYJS_Yr};~sb{FX4`t(=Z(RTup>u8&auz_{l~XLg=K??Q?rdV%`bb3OKC~A| zQUH^RHxjdo*-5Nr0*N9m8F!?93~(!eO~b9XWQaRjGC-~&l(&X3>gdV1~DOt@9R@S5YJCn(nq z59sV%OywvFo+t#R%PsxUtwl&89DAs5886DUNGpS)c!Q^1Ab0Tims_)4bPq z?pm8S@3jS8Ydg<-ZKsa4sbHK~K>niocWWQ)+?)`rozidBxF0X>veM(-zCyP`kLD-$ zt!RIeRC%fp@Kpg`?nacDD=>Mu5oPA8BFx;)$kbd_gqph+FK40+QnZOVvMAxpDc! z(3^7tJrD+OZ8H^94sa3SW-6+j3P>@7JenF5vkqdJDnQ}dh;q0DCJ#5FBrX+_#3jt( zs?xVqob)YjBd&wOwSnhwB?S-4f<`5UOT|y&dQ>0p)3}7z;XBWeG#Rptug-I>z%B9# zU@k1GG=?dqG{&*5Duy895FYWZTT+2IghAYJOh{)Vslsfe%}8`46?Y|jF2}^6!tk*e zdq#z)8^v(k8MR+fhGFS9D$-^qKIMk&TX|L$jv_Y$Gk}3)Wl@O-Me$lqBFc>^skr$3 zR-`jmM1{+fDu{hVBrQvPM+%m)-^aLA3BFC>uj^EZ$l7_ED#FC066%m__z{z z6!v!A9bM8SMVCgYsi@7Vb9mgNbGSCA&f!sy&f%J@A^>9RQR@MkBKFsu6=pq2&OYD+ zF+cCmRfC9(4}%oES+o>`XoQB*5)7iAO{2v`BMHIeWY;wM0)bL;tf(F*(gfo~8`P5a(qjv@7SQ4N0*S8*>o zWJz9-Sx)lc*&aPY|t9rb2d>*d~PSHa{a@_@9&9S#T=_;G%r_1r)TqmIU z>GNV|1^4-8^IOqfzL|lskhT7gV(i@8)0j*UeYKX=Kx;oe4=H2c5H$8T@Ya6D?yp|u z2IdrOubroD;O4sowFBIk3*RMZJ-7`Fe3yVSs0}21mw;(d8V(NXLP^2!jFYKY(^0-18b3_?q#? zW#VS(H8Aisix+SE?X?VKV64ciuAz-vb zneTOJ#s!ur^S!Q3Ldg=;{}sq4lq_NWU%>=~k|ntRD-a`;EaClM0UV)ZIjR54tN6c` zDC?^Apsp_Gk??ixO88pNBjM}P#fDi5`c*dYjulogXNk}=QTIwL5qc%+9*HH&tQcM` zptlPmkWFJ)%CV_~31|#MmvaAlqlM+(^%hsIw-wInFm>B8i}19Wj;oPdKUZwW)yS=% zE5_q$+)^PXxjc%Rgh^rDicfQerf`U&mVE}Cv$80g3{V%|3TLVU!?0Z8OjTgqDJ$H} zic{@QSS>-vJG|#9`O~{YQ%9{A>tL* zLc~#94dNBfbOc`Qa5^dhm(DeaN)U)q30Ck_f&h+6u$mi{pj}lpN6w=!jnyoho?)_@ zc(UrNHfvEIooTt6n0fb?cG8mxY8{?r#~n>r>+m!|+|dNL4o_lnM-$#UJi)~s%}L{q ze#J3sqD*8T$mucXL{`7_Agh~bva5UfI8C&cLTBF+6Ro+>*|)?5)x=M-BWfnNCVmpr z#7%fj`~;_on{qVq(*yy?54>$PjSBQibItQaZ8SgN<1JXMjEYAIdww_IyZj@(GB$G+ zhgW(J9}(^$*Zwhr=FI)e|J`}u{uS?4eg8g6d$#=Vllo_9y}Y>oGwWs2-t%7$Ud0s3 zg4L!ce3T{=u={>HkD2@a38C~X%H&6u{Lq`vH^}JNp5w5sH%j zjr`!?1@A4gWCZ2!2d`z+0!vZ-PFf=roR;mrNlx2#|AtX?ICa9`@QDtyHrMYG_WTN@ z6aJ1*CyZEn_3skiK@UhT{F}7rJEmUvH-wT8gljtem5Xud&p7IT=p5nEsDBm&e zKIgUm9qsOSYKh+wzRE3+pwtpu9>G5)h*JQhw)_*F+H$F%>i?7=3Kt+R)<)W+9aEdy z;1dF-?z)jC31fP)ejtbqmflzwtlJhT&`^~8d z{tK%ncxh7t|1DwneIUi@-)MKUQ?LG0+Ln%~u>6TmVe#uH$A1uRG~X@%AAFn5)DHiP zaL0M?#{c5G8-12$^jW|oK-T9Y0Z_L0;05p!yl()Xoc29V`wj*6gMX++) zz`4UCUAc{W?$_OLf%x&d%LRh`xfp=7hzz7en7?^J5GIvmu50DtkbK!Da|psrYP(cn z0-#Ll#}pWo3B)j#g$=;oE^-Z#2d!<_`PhO0qhGI9=m2h`@gp5EA6N|ClANx2(*CvEp|0ED{y zu!}yCAv0U+HiH;YGkGx1#oEV!NLS?1uahx1sfkj~0f4nA2?B{V)z2ubbj2c&!ka7T z!kbpJv=T_&%@uUr&119fCTCR*WsxVI`(;6bM{8RcO^{`vDjQKtMCV1X7YWre;Wrbk zSNH3#@UCb@W!CptRG&=y6{`#jXd#{>Qu%19!*iUEJg918zlrW?#RsfAt~GZY0`RDN z-df$_IL$lPUfkk1pt!}VyYdk)ID@%a)H5G_yO!+jx(`X}hTW+YwHj6_>R721#p}{d z8s)|BL9|VF&vVX>A8$SPoW5U+t@7~o^Hc1ERvb`9RRh<8Ob`|tiktuYRq=;riV$b|M~eC*8K5oBIRKUJ1<&qYP4=W=b#}Oa^hY=T7V6|v5b{o{ zSv4*F?yLrx^@DF4h+ODf}3F2N?%JGTzy{B8bYh9`aJgw67Yhz5DHvq@%Y?Dz=g`##cdoH^etExW}5=+n)gi zK>NHu=V2x?upqRyGXgrk$DTXnn0t79k1=;8CIlhHNl0jTFo;E)sDxWUx*KqZTe>T( zuHc$4kj>+Wv$T;;ZfpWD&I#E;D$bJ60e}=%QA!R{@}R$mPGV}l#*VFOFSjq-e8R15 z#TEc|-+2b!<*&{&wZmk50FR~~cCME!3!Mhz-R?r<+IKzUS9bSQf3WWuG*P{ju^RVkt^P-g> zB!R`-+30Sy?Gxdnebq;9|1=96ltaH+-J2H?phLf_ytka{-ZFxX_o{nyu0&JXS0XKl z2fUVBY(qI)e(Xk(wY7YE>s(#}-|=ICbGJcTSB=~o{w1I3gKw|%c^;LY+iUWFYsJW2 z={F4ja|odpw78tbcNLug}S+ zLF-`okk7B4b~wa2m*ThI{`eS>`7dq4v9z6o_3FjTPx*iI?|eA=iU)^x4@5jHfvlea zeISdVKtKlt1m+Hh&m9JIP{0Cgfhp#aefa3O9(g)n0$Wk`*=NejZ9z816eK(3NHcG| zq8DJRZg~q+Pt2S1$ZtB2EMZbPEYQq(6f~Vj7AQ%WA9Ran#;SQ^ELfH>Al{ncYqc7? z7Cc3?R~O2@Q@`XoMsLVrwJ%O!^1;>kGZ#&xf86o zA!K~-1WRrRS>HQA>-!1J{LXkAEF*jeX@oyPTH*N(-C~RHKoY#iFvfQv8Qx=9<2z7m z+=A;Z&Q2iR!CK>%geKYd@<(^z38dDL_UO%w$Q`_Uz#7&by(=Md2b>%-i8;Fi&JLNx zp4|yj?u886ogn94$fDf|lkQC*>iAbDx!RY$Gx$F5Yj6vu>Xg@c230ZXyBr92$s~u` z*NjMB3=Dx!j!S@9ymg1qFHpfL`WiL#H|gGi9S9Y74EMke)I9*Gzp=TkJ8<{FAmyjY z9^Jva2L>uXUF6Z79QS|>wf7$5a>q%NY7g`DBu%AZo>L{vv&R(FRTjlTlsT%24rbiu zsTQE$;|`rhwU>QAm(Xd{Dz$qgq0@+YJnSV@-97^Kc-Z5NLaGl{vn_k)g0-qQr{#G0 z#t%u>78DkT2xCDZ%z{`}%@c%KlV_S$jf6d-Xkx><$^DfbHqIW>#(9D;auUdtdS044 zdwg~8&#b-)f;hvC1bc_Z84BW*5(|aaGNy|-a%mZ|BaRVeQtXjL90ha+Oc6&x;4QlH}vIBEAtgRPK5SX*U z19OpBV9tg&J|nomoGs1x9J3pqJrA<%sVll@&x0)Mb_Eyhamlj7FHShJ?C^_oRQr%= z8`=nM!@6B)BeVcQmtpayxU0X0{(e z4nmWSudlW<6IN)a-R8`M720XIIU}<|hu;Z+tkB_i!uY1!qx#Y?-yA$lMn%ocw=4{G zUXwq|=BNgt96X%H9C035_il(o7{rpho(f0$WR_w`+`y61kVsC=D&jCE{!Jp`?s;5xokhEv zp2ua^S+u9=86|1WYTE11xLx{}+Tr#*7nlB}^(}oylAv^99*55uZG~FAvtcW=1V5kW z!4$K)A`Z{vvaE(5pl~d!;RopWRz%%`ct%%n;94hHJ)^5NaH(^wo>5YlcyG(;yxUy2 zrR+qT3uOvCBT2Loxce{#0|b=}1k|Od{q{bNOkJv6eaDfhOO?Cth?5Y+I1i7Y*26`1 z=;H`$JzORTeH_6<9~ZIE#}VF~xxj@!juOln3#i`0aVCtYPW$9IGMQ-jDGf*_8h%QT zZK3GQIL8s6mBK8GcEo3@Fw3GHanf;kFX-L|%SCqV;s|cAT*P7*M|gwf0vEeD$}w0j z6T~i#^I$JUt?Z?vgzlI_D?7DymUPF9gqXKrFi{&G8ZlrOQ(Pp80f$r!*h*u-Au9&# z;trGewR6-(5@Yb0$CfKiDIYTr-JKH?$?CyGa>olbm=v(&lz>AL4o4z zfq1X+-ukvL+p&HEcdYwjj`b6~W8H^yte@mK*8K?_>!+D8fxLDm&f$zgs)mf6gT%!fidGej~n8U{IIA8Kg^qg z9~QCrVcrz{F#elh3X81M8uQRvW1V%cJhUcRXWc6gGo?&aTj*`2xw1oC9=Mg}iiNm5 zcq`3?3vqdJtTcCm5SKSKnefse6Q0MV;d!)+@;ojL&!at*XOuKNujzt1OVBi9pv2(w zJa|i9my`ZHE^lf03joJk8vX)IrVu`=@2yJV8C{ZaP-ifm(d7sGbpq2FC4q_e07SqG zxwKo@X9>z)CA`Tua;t)&`ao~T=#?3SdSP9<&zHAepmGB*4_RfnQTQZ%Ve#7Po5Zv!IQ4_6sZT%x|Nd{le)+<~^9EcO(0)reZjS1NOr5 z4275-u$OjEMkwKKih!s%;hbEmmmV(Fa0*8zzqn3v4|I}{L$sGcCkZ*k?B*0b9AvsV zUBNSRYv1FE`3_5j8Hl*{iePXNxSUEB)mlPa9R3Y7FaYcLv{G8 z0_QFr{;G^h**Vp{r4c%|j$3z@Mkt-7yax^fXQ|un@QI{dxMMPP;*s5?l>;Xp*-ctG zablcqQpU>?BfOpYxIpntoTQysbUd$7}iub5rCe!KVP72$o#OVfFslPlQo;R=48f?eyg*tM@y zIHmbtv~jsaClhv@Jp6@$^9&DvVMf0E>KES|!i%qd>Aj)!4Kog&_mN$a z6-j>|*(F&K^>>^uN#SSI?{YW;v18t6;$-YR?cYasG7f(U0G*7(UxFzZIHxx9%{x}| zjoZe%dB^E^rR>C(dO#2rigCac;Xody#gHjLAE>%*hAm_VB@7rtrbJ zEFauu3LhN*D>lis)JY7zpuL+qiJ=$F9y-wjjqAD^lN54Acr5b~4zB1T)>hqja78FG ze38k&5Q+_NTg2SXb{Dn|@28RUxA1t&+CxWmH=y7=3&0Sf0+C0;~zJC<6a~KlZ zrfrrwO_%4ymjNd>@j|glpuhgJSv?>bkEEHtCkeE%#*${eXEbu`o4dEW>?-xcAEA9S zeCqyscdUze5jmsaC5W?b{%eu{?mY*~S(1OaySjV(mA*KGhI5zYKe~h9<*E4htQe-# ze0qBuKe#>nk7HTIF!_IZFW$U8Pm(Nc+r`h;cr?#0hJ%*#f6hOlpZ@u$^m}pUJH>bK z4pnc_+5BqHl6P<3&3~rBOB@Xc9n{mQA3SGPEA{6&^+h~!CdqpoB1h?tllaY>XI49V zPf}-`M6=L~yg0kL%kH+TFzP*gSk05(D(N__aWeN>LFUbS?!=wtztiU2du!U>+xCfp zHFDZ%7>qZ6*1gGp+%7VII5hQY-yZ$CL+$o^yI9uttCK%4H84hKV2sGX7%TlT<_6Yd zZeTs;=(+6pr1>1CkWqQ#|e_i{bD8yl<`d%kAUY+zkqy=cZYhGkeGB-Yuf5 z{9EgJo<#moPI5Q$+xd|rwUOV?kGxVFd3Ao|DSG5w_g-Q5snI9~&i^xe4^q#W>NtY)z;VGzHV8LqV-?yombw8!hm z$vkqy;IC(Hq|_;mRZG3M@;ywgX8tpoJF{HD$KK0DJ~n=g;-{P2zkC3_L6-TO7#n0( zY?RI**frVhkY%NdQO+^rEJ)&3{<)zyM7J0sxAFKGhJ$*ol%!{@utR3h%Oa1)FQ_KX)g=(iwSX z#tGHOXETqk>dc551Ip~L=>av~vALOa5PQp9gH^t35&EI69y&HYSVnSs z>sXkN-XZqg(tNwEsTiUpUOS@=$7T*K^X)O_S+cgF{a@f^JYUcJ*{pqzo zsquKByfhv!bdmbwo!nap;y1kkw3e@%dTZ;UKEhr-st<7pv9@ExPK`)nJwzuT;---N zt%Y3=t~`oRT=j+t)rS#F7Th>-aRIpDUVJSL~E4=&e zagCQ>s;~PIdZYTd;>&jm(a4|61NS#?FC&OVQdu-{36@^r8U`=1H-Ubg<|v`UDBFNl z`)x$y)OsH|il+MT4nI?UzVA4W!VpJLkadxc-O!yo`9JFnQ^0S|dyuQ)u{)oybcX6~ z{@>Z`R82iw2@7gHzX)}n-$QL0WAux)UBeWJK{k=Jby56!Ng@xmC))bgwUrlqyi+Xu8%8ihkRvfa!a{=1vgb1qT>fIeqm%&=oF#`>Fw8Y4=pMTBZg>|1}cD}W3W?Y zAgc@&Il0~O=IIs*GXw6b3{|YQ6w*}~@El5v7_yhE&tPpt@(&G_2Rpfq$38m=-h#BS zqgMVY-=&;~yl15W8oL3C;vS_Dn!6FO)@wgRqfuz`!UnB}a8ft&@?D5k#_De0M&;Q) zoW-wNUMKL^>^xv??E+S54OKIlrEPbfJ5tTZ#i*G-kD#~b8#JxU$)uS-T!)s>8C}!c zVN*9XXJ-#=XIOWNGUo_S`F0UT!{*N4{e=`sJiUBv?ZI6>)BOUc7nOB0&3xo&gZ4el zgJ=zpghII{@;=q2yN+M$(<=Z9t1$?&%Xo5`7A~_r`05PT zz(o=KyXoGIuKfz-UBgX#y=f08n}!w)8>Gw4`WohuLSY$l)k7Rh21dX5)QyouGnUVj@FUy8zDH%sRI+yl$~FL(U9eLL%{ z(p=S0nwF;0L|g8<6otA9ZM)A>lbLV4l8T0iN$MzycCIJx=W7MgUZdDZn##i2{E&wN zd-3e81A~KZu*e0ppKt9(J4Qq6q5xxnUbIFI(u>XCpoiOM+lw}C+Rksz$;J-iB*L0x zZ3m$FSX7HQQ-8O|jY^@nE`o^{XZh-S>2xjpt^aaaZxsSx8i3kK>gUq1vtqfcWL*?7 z3)rd#vA=TQl(p9)V3r1pUO22oq_PZJ?u4~g6J>9rvB`NUy}}02JAH==3zR?6d`RB? z;XVaipPW!f-AJaq`{P!jpH{))lPM+u%D+h$5Wr3SD%sQ~LpT6DrKXBBMRgY! zFac(vb>t^sj_g;mF|(ab&Js!0grQrBbXTjk5%3R2pc|x4$quyY9o%UOmk5<4osKFYNw5_+mexfjxnA{x&VXQ(D=tRV%BFc+{LbV&?kRdIYR>2V3ZbVV{ms?(AL% z=`3_tM+9hHsjTcub?Y5AtkU3WLmX@0uEAXsENj>3zV*Hqi~q@69#LS!6Yaq-r>tGN zTHXX65b4!+9wKoBsWiZm_t87gc)r+m2$~J;F%~Aq*t;-lV;l=n&!7x-Tm0zMi7Q+L{KjZ_+^Bk25zcEn(m2CY>@tpCKv?%TZw; ztJ-W$-F97bh9&&(1X`BzVNSH;EyiImv6@%DH-7ad!}ZrjW4!t5?9%(2Kij_4kmsd3 zo0qX#!k2L5^w$|&tMlN_Q*T3cIG-nToRN0a3IIA-oaHF>stDqB6hS;0oQZdnJ0&i! z*xtKEWVJShpWsYdZIWeS?kHjqG6)rmw%bSZKEL7D!CO%>v!&>q>%(Mt$G9d@ z02D$0AA=K(9ZWem67K9j`e6y^^^Y{pSRu)b)OtCW?zG;wLhBXY9C(LG9mchFICr9I zLF$<2=6#&gjd!}tb1K>>YzzNxHs3ly>Lh!2-y>K4tFrQcR#}sZsqH4!oOoku5a%1`zChwxC^A1bD%1kdnps1cS;9o&6^ryr=z^jzfHULQE@7y5lreA+e5 z@HQtA{|WK%lsK)5nU+<|lya`!@5yGS>sBdno_vIl7WlPxP#21Wx>vjtS3_ZLj%pOA z^`66IpZTYuRnq@N1PTpvN$6OZ;AF#{?PXs#^MX*a^+Ve7P zLAj|RWO5wMtcwSCo&|1rKc86EZ1dU4|D#l?XO3Dkr_wwO{zAEo&Bvl$c{3k;cPg)r zXf&MGW4_jPSn|$$Y3|yu{5sQdOKRbyC}y$aoyT=o5z7kFeZ!V@zeU~F{TG9tQws*w zgee4t3pJ@V&aqQ_944{XzFPlWf5!H~X{?vjE43H-m0BT+C2hpP?R)|)-OlycoP_F7w)4iUvzSx2rbJmm3FF~1Vku0cAgs6OB{SJb2>l=Yizh8`9i zE|sF_fZk|1JK+x+gvu{iFFvM4pEjpAo4d{m z=K^QRLgZfrgQ>MR-L*P1IlrT>nI>jQFr;;{?KToEvJ&!d&|f)Y^@&gun9QJ(G#)C& zf_ZOyX?d8wCX2Rw;wr3Y_3QfUoyyki2DrV0MTT!E0UC-|MoyCs9rhUuaa^DS4%59d8iP*yuCBWw%?Y6Ye1ZH)lLL z8?9_i&4ck&OBh=9Bj9p^vWi$g|Fvm#WcAm~zG>Bv|7*F6Q=R8KMMpM2z&;Ts3e5)B zl~R+5^Zu^TEpYQ-DI~y@-JQCu2x|bXl~ToD$#$dfH){uB^3vE{k9P1hD$BJd=gYM= zrQK%|0-K{Yr|Ad8@)au08GAvf(p@bNcz0SnLjws|aBEry65fcRwE6T9ULzrk^@_gd zjE2z@-F*86T7n@~Tz3vXNM1^fQG#u(X3L5iS)Ew)o^wMy4ku|e{l{} zDAFURRJI=JnaS+hMm)uv?)I0X)Y=yvEZk9wJGms%y~w5lSr&I0P|jXHMWz=?O!fgze>8t8_r)h0Y^6szGoeCOLec;KS zg4R%o>i#1Txmzb_UX_F9Qf=TXbp$(Kl~cC(cP$0@=!cJs2B}beQ5CEL{#bEajiJ#r zu1J&J>SJWA^?Map!{6N9DES$w_074M4F!nt*`Bg(cRXH1-G_NHS&XyUushp*8n_Pf zwe|`jwI1}|C)Y{Qtk6jj>OExcQ2J~CI!DsWvpy#pQ~QO)3$$&Kex4aSXB_yJ@1}n1 zQ}Lttl+)<#X&9@PJ0-HeO86GlQhC!*x#RSonvHE1J@(!&HtVvvxwnf9r2KQiQ}_FP zwaGLUd8S={sh7=H>lox>Fgg(LBZ+4wiC^LZ))+;5%S95>j>0bXO1oH7B6`8L`E_sC z1-ljIzUswbe0UWX8@A`KGCIj0)?FLB#^Q{SOc9x6iV2eV$|P|Qw->%aj(kSWdunpt zFSvPU2IuV~=bf0GcYvFBWN_Y7N*9l6mo$ zZm2(CG0Vd!DkbL^N44f^qZ9|#(()lh#bNgMYK}Z3!-P7+G&jitr&PqJF;J(aKTx~i zb~Ep^9m>F4l_U)hFP^fW!We6zDvnB~>SL^LP+d<>c?@fpirr-jvwAW7 zQ<3g*2j)Gw`lrY1--o=r3F$JPbT)U9B53V<)U=Sj-pf~p;qKOJ;m+0gpv3~N`me?U z<~C=W$>LH}gL1wl5r)tP`nPP!Piut%`%!561Cmz-4Z zw2;+1_4!0lw^?T;H91ApX`!XjYWt$PUwpfMzj&#Z1Xq8XYSGf)_JbMzX?TB-*Me(a z8+E3*{(|~`3~0z6z*i#fsX?5SzUS#3Hryjb^;R;N-p&&&8;y!h; zy=gGo8ygy&2Avoc0FDhB71X765F7&rr-2k4Ti@a|h}%|Tm-R$cYTFxIZg84R2FHdL zr>Q6_224(qxZBjxt~T*EkMz{8w)aKX4A!O(^)J%oOi?_g-$)m^#)gcH4XsQ|C9cso zGc9FAwx@>3`XWTO?rSJ|Zo7*Mg)P|Y(l#JdnNX%$RMC$uHAXFBFHUd4HDaL(+tgOP z7gsYHYI6%%CKRwXsZTezry$yGvx(GHC{k?>Gj$XhwW<4(BiC4j6e?J$1Wd9+84Jn5 zw+^=uO@%_#p+@514tLn3$Q4Rahb&5xTc!>@Fo#>@Q)86q19M$2TXYmCb-Crp70OYU z1*a2UdQ+FS0ijBTLe*u!>|7MHnS$)p*4t1t1HI(E(OE;3>GOxF_%81hg(xqh#oXTmkJ^j>f4}8&csm&!0=1r_$UUR`z1DU6zV6A zE{SF3P@EHpDs#@#*AI_yYivStY%eNevO}v$YrqyBg+O!$ilP(h=aB{+AyF*!&<994 zT54OI0Y}{eycK4^69lQP@Tn9{YfH|N3s;h&D-|g+V1TaFq-cq_wooiXSF~YI0DOuo z;;?6Jhn7HWuCRDqq#f#9QHMIXMb*c&`?<^V{=U&-{4l&q}XIau^Fn^nx%I2!cfs+)3-H4j)H|im_8qJ zRGLD|GepWzq@M^H@{}m3EwM>~nhFK#16K$H?a&8C@BrGO53~ge0SIe9P=!2lc~yb4Rx#|w>dY&2ZCU>?glA2u{K0-gS9v-ZD8$&{5TM9QBNUg0~Y5q z7nl|UN%^cMDX}&v@R|BB5Zu$x91wI2B;_+l6ay{HXZrI$xMek!^Mq#Qi;7u^wGp&0 zjKFgYgyjp%ksnux?|i{JXZkkg3sQ1c`a#VXrc*v@Yph{$Dw3XGxq=*Ma=t1$XZkkh zEAhb|7sRb!Iq(2za=x+vXVB(+B|po9TUJAX%nFFgt%9h;`fokSZyyC=ub zaLcOLPNzDUd7zFeAO&*Wq=4dD$Prx=lQirE-j*nzUTP~fC^sypt zlB(SuDr3d(ERjiPsA>L2poruy>oOX&l5Kq8ynlU z?QCq@wryJ*+qS*2&5dntxN-76`TpK}&i(J+b7r3D>8`G>XS(K7J$XS&t5c9pA_I55k1g{!%!p|MaDKO&T9n z&8iQRtVvkbAL6%z+6>dD<)=?x)<5K@2Yj;sEyH@Y!y#urR{D)#iIudD z?qV>AtSDv0D799gLNo6^rl_9W`8>KzpRjcN(F0JkB>plT*xgd1xNcFPwkivoBY(a4 ztPVUFv4h5L#(h0dv(W4i8?JQa-PE82UX*9QaIE% zmId@0(O1s-!!(4f{E$oFe_L-W3g|Zrb0s88?JYsTsUjcZ9Ux*N7^}gcBaqnIOMw4S zEppHU|7kxhQw4Dnfp4n}i+kvMHl6sx285klQK(#MuULwUnfXjQmP~RP{?Bv*X;Scw z`KW(xDfJmOmHo$RcOnG4llT2Z1c;#by;O8+KM78qN+0{)^#lpB#|io!7SSi1yV#J zs*0NM_v*lko5=O*z>D)nB(4)@ac4udI8C8}3fAB%hXXma;F4r;&By5*Lu69`#o#V_ z4xn*!Dejh}^iX7%-zpX2$&wHC!SZsaIRGU?8*GA&w+FIcCng-ww~MlcbO~~0H0;qU zoXuboO@K*E#DKaZ5eQ`)`eOL{3LNx377XOw?$TRH`&ik+^}YK`fC6>2ycC^woMvSS zG`CM83xfG`2B}-vej4!k`8wZ+W4rg$RT5zkz)WPrx=RLRPhpXmTG$*9iAp)hpQ!AG z@UrGQ2k_4IOpQw?J5*KXa@I!ZE1@MNS{O@FIldDkhAJaSSW=1bD4{!`Vy7olXa6FR zqCzYzZXGH8K}IQxrS1ZHB|8#1B^;bI|A&fBXejg7FpE=gQiBOv{_uD?O$q=7kp@*X zvO|NaNne?!g1EzeWo3ginL)U_2BM}a@ch$H0B3R{X(EK21{g93)+`W7PvgODQqe&QG^t;$U)3xmV@mq@ zbe#e~=5A=$ip{8#Gs(E>!?gDoIY$E;G%GN(6mT@OnS?>+{#0`Yv}i!RR+kIobMe+2 zB@wAp{-nWAkhT2{A80d&@NpCsmXG%;jSDw!7~I?ZLmO^?qnCD-wfU$2nh7P^#GJlW zJAB*FIZ-^Wt+mdNooEmx4c7|1hXEyy9N*O9&)<~oROhWv{2Nc6MsW{3Zl1-h>Pfhw(2W{q(nVn3cwga7SzJ6Uf?J@8g2a3kQJf2Chs1POy*|b_@V;5b3YrYS zNuLZry9Sw=P!DIXH%OV$?Sp@`Hnb;gcJtq$wyV)W&>nV8;k4qU^^bOS3(c3DhEgAE zDEBHkAX$TFB`k9VwYiEhI|BlB3LE{ch6A%a#+hht_h{R`^ui96)^4Kk8~4Ha?A{h& zOO1q2hzgLTd+5+h^IYtVsx1{Kk6nh6t(CJb$JHQ5_IjBdYw3WvqM5>T z%U9x%I!PT&wBP|s@Y#}RKAUE0j8xVRm?DH0pUCpmI=8d{Pyyg`Hq41p#wBR0O;zF8 z6b&nJoSUV2o2m?IA*Ph|`4``gt%4ne$QqqQm|m$89wR3DIU?+&4&OUZIZoU{G{VT~ z&XsPP$_XN`<5gKsX&Wb}lHN3a*x3O~h;P9uqe@K+3I(WOYv~T?sOSoK*?+_>@SY3S8DfxFPex%cX=SYFvsu?#?VD z!97VfYB!)+E1`9udQB$X2x4b8N$4=&ohP3OnO*30steVK?~S1_Mw}D*ba~uw@#OX9 z{q|cV;?X9P5fJt%M|Sdy@h!y$q3o#0Wb)&z866_A!8N|D<&-d^@REy0ov$sz@Yf)4 zQOaq6;?}nFs5=26q8cB)*zUr4DzuH6xJG9i*T?nh(@5R+P-pwP&zR>%W9!!`E@Lk` zOmTy%0ye>*krp9*<~X%s#$(#&lgZn1=NPj2+tb+Iqug{O>Bh5mYv(HY{cem^7T9_Pr^BWh6V^wz zHliC10rYxJCxhdSa9oX835FAvJPhPeEQN#@_CMglXWR3^Wlo}b^}Ua5M?^h9yo>d) zOinAhhY)TUFZYrvcb-jrU&^~vo+$j^nUt;(i&cu6G2F##%Qp&@u1@7OKW(58?wXOu zmBWd)GLxr;#fNEk!A=w6su+YCB?i>a{h6Mxl4-!XF=;}U=e75+Hf@9UUO|epc9-|g z4VdV7>&x2PBmgYjxRYx%TbM2y1JwI? zE-G{#H-@)qp%k|9-CdecMLGB?PfO$8A0l|RfZeVQQ+(y>{$6Hu$2?6u`o+`LBJG3m zB~~WDv{#M7xswsMSBaa0v%?b!F^u8!t%4`}#drTAl#+>S@iU_gJ7W^o5ymK;H2|C0 zZT0ObC#Dxi^Q9&s{E^4+$qXKX;u{AFmQlXmRfnPjw4t1#cgZ5CX{dShq^jaq2ygl* zOFnGz6+>vM~GBSq*O;(`T%D+4U>5C*+2(PXCM>4(ZBBsNX zZ+IBnGig%Mip{NjV*szDq`$tk%5BMLQm|f{-&wW!2j^;)bX<4nRW#wYbhcW&;(Leo zf$_iYA-x&?nrNc_8ooZsv?YgyPf~YU?s4A=BV!vf-iqDoS6W#IT6&bwqcmPkI5zwh z?y^?n=O5EYc*sqk?9g3~{iRFpf4 z1=(B~!9dqd0^zkT5hJ8abQGxB`p$h)PzRc;?;%xufp@R*DrX?2wEUv(wM80+0`w>4 zMYa3{V^0n+S0nWFb59?Ei}doM9$tZJR(z+1;f=mNr9{y#-VW8HDm8|wAo*X=m{Jin zU!pWH$^wB>rc_RK;n$)NxYaj=abYm z_^=8JyMq%eXU)uC6*&x$xVZGCIP-r%P zP;OcyoUA}>|7B|!x$=m1#FVK%R@+11(Dx?Gxv=>>^gj%RQGj?9F0~aRZv>UJ6Tf9=t@14zrEBm5gu=~i%*MQwn1@A$j|-`QaXOg3 zl0kmGEYA_y)kZVuUOYEkqss6iocSmI4ZcP!qHDF7!lIRr0gS1^zy&Cq3j@3v{|^G^ zFrCl9RlDatJ0AneFZapKul|4q{=pY_CuawW?Xs9|H7@uS6>HDb}ha}RvQ8%Z1;zl2-z#spRDt2_XyprSLRO9~b_V?e^ za`ItWs&o69RDLMz7a9Lf%3a|h7lZ~M28;&=tl znQ{}^Um!IJ_aIpSO`vs9T?bP)D`2*T17+t&%pfXwb<&UtJzJF_f11Atr1lbtP?gN1 z%8~qB*xa}qHd`SzneF*gR|5$1K5R8U6GY$~qT-K|uE2R1yBsfW12S%Xr{ZlH@rP9% zjuYivsPAY%dUXE+Ln-^ z5MO*o&Q^D)GA?G}dJ5p@T4&+r%j5TClTL_;;oK)&PNaBX?=q-1YKIC&tyuZ%!~~3& zPo;Rs?y#yv%GNy}7>YgemN-5JJdoiD{q!T8cNDQuK7$ssuCaca98v)^4ZfhrA4Y5yyV zWzm({J|$b`<9Mb`#?y$5oy&5`NiSvVj?_U7(~K#Z0>W+wFKHt!HRC9bQ<|3UzKcW- zMcnlH4WX<%)jW9xZ<2|0_urNyYUeYi8*2nzEhBCPJl#YSv-{z=9jZG1#l&fMZ8ynJ zlq0ST9%fF(-18pwxs;094fk2kWQb?qr=eDb%)a@9 zxJTP3pm?X0?gG6P#Z4`SqxLatHVRfRv7A}Ise|`+9M%^FiuigBf6HHKP1vif*=Qg8 z_!Ws_1FCU|US(L6S@ireZvu2eHC^7U^`yOqZH5JfMGw<<$!_$uQhkRNRUnEL4R^tM zOESBw70yk0taA2AZFK{epxmz8I<6fB7?*9&p<9rlWRt5PbQl#pX`7;rXEis)iE7!j zGE}lb`eO0*lt}0OFXlzMntUIVA>P2*m$Afiy-26@curC59L3^zm2l7En-dbOcPdvQ zf)pKvj|+W#)dP25jE7%Tv$aD-Weu%8Z_i`pAZ5g8&pB6=2sZ@1C?D2s(+vWq@>{cHy%>#RsA#R-oKbpyJ?PFxg8t^3kK;F6-7kmh4k7(F<M{(%sA;OltQ;gj8{0HeQN>RHKXljzT zi$Fsr-9lZ!%P{ybaQt;zrWvdYN=I)wN=HDXpCjr!aM=Zh^fB77AjCpKxhR{e3+&~W z{e&@$lEMjxaSo;fkYCf`C9)#_AqV=edG_7jaUiS;@UQ7)MPUnP*bdhckgVRQP(9FD4Uk?8s6vE+c-3IF8!H4RKNx~2qry>p_}bk?G~Y9sopx7W zkvq)S>LgOPP~aQcCR?*VmCIanzVvSqlsYd2{@S>$b>5_Q06YD^ra)ysG3-*OvI@d= z0utYGbywZx0wCHDgoEVxt`HU$`4bB`hP1Tfn#foEt=JVNw_sagH#TYAqg1n@7iqKTquE8A$tYL5Ddca|XKzMQR9iv?a9L^t;q40KIV+_HeMCwPO54o zbFpMW&9BIcb|rWA@-^3oj|Z&%G=dmidF&jDFcNTQ;m|=l)=7yk98#Sy-044o6GbSi z@*OLh`6$`C+KT-%{BQqKXMoPyy};O42=cRz&L@_IIV`a*iJXNqZX=joBejaZC~%(( zJgy31=;G9VBRbRBo?`e@2O0Y;{6ye1qQoDlaOtHk+2UQtNiCKa zw+kF=J#{T;(vc;F&tBR1+3cGIDR60Ow0XrzUxkWTOfl9``gepnFrL`=vb zk#iV%C_aVJ!xT}Zn!dmbvtWfH5^IEN8-q+K{Ira9`s3XJU8&wx0wd*u+AB5q&W9f% zS7M_!aaT%*t8rL&Sd)!X*ff=-`ftq}>2hRLjyIA`3_txYFfZC(*H6yLt7nWUo$x7Q zP6Q!(vzd)$PYJ{6jM36TO=_WAyh7;rL)fceGY@4GuAHZU;7}mU8PyW7KobU(z^G(m zgkV}s)P#&;xy!J`3}}F2UWvWK(KJs})?e+;LONZ5$XX|kYuDFhHMlK-tWUVu4%sOd z>Am~zrknofYB}j?c_Cn*+x&SfAk|!-%C12WDmZ~GXqEQSMUwnztDq@+`HAKqIfE9Ms?u7@V7 z;st<%kc3Q`{+uU5(r;mM5>&Dz6k%L8+Q~*!U-HQpHugWZIPe@CV%I7}iDn-G9IsQ3 z1Ny7&Z&+)`i*SAS)q7dgB`MAa-V!tfm)9(y`}k=&OXg@4%PZH`PgCoJsH6mW&`I$S zhpU3Gj-kIye&+m0Hql%&to@gk=lNRpY8w8Mah%|E4IsnkQ90_K6Ox^NTfI2Ubwc*$ z9qOz|!&5w%#G(`BD#CCE7jJ=413#){Sn|X*xYxI+5*J!I#2}{8w>;EeO{8w1thgHp zg9KK7D_qYN7O40X&Rfzj)FqkW5=JPB->nPFrC`ziJkX0G|a6{Qg6iX$p*q`%} zVFn|rDs*@=L6*2n{w8iB?#4+wL z&)*U(Zw4}KpFSO0kmFLTu#pv8J+_jWK458<61qwV-}SPwF2yMkCgm_nh={{v?5_=P zQ@8nKiQRPB6tAW8vW?R2ns(oqRZIyFS*D;O-PIUmJkumK+xb!%x)I-)_w+#Aq(({a zVPltbQ3H`7?rrA#{YVZ+gGWR(F3Djmz|U_i_ztBOEF|Fb53Wj965@e=%PpOV?l#{I z4s7Dl5*t<(IheJGG2FC<-_#z94R%JmDTw93pZ7Gb_(0FIbwejq0T?$@hl1*_vvm?* zT#Ml5dKJ-&P8S4t+Ww_g);=*Ir)5(|&r>wM_y$qGl8hnQ*+Ry<7mlWm@~3D>nDZh) z0GmGWGp$w7s5F6Q(8nPso&*OHL2*fCggyy|a#k_2fmVg!u2=`OGnx#l5~F1-&={uf zyrDGyVJs3E6KV8_LL&aDIwWOOY*SDPuQH}Anr%pWHpEZ1E*UIQ0#k`;{YL!(@H@n_ z@-}uqjtjO?#a;`kQMM&QV!~H}j4&6;rc7x5O*3gNqCE*)iysv+rBjj;U9S#nQC3P) zoD!{2*g*kBmUOW%_v2HfaxeZ9=`P}xp9l2>UpsY9;S#05nBW6t>({T;hVu3UZV#Rz zyzup&^a^h18<*-;U>P23TxIiEYmMOac2aaG)tK(+ZJ8w$XPtjwg}Ld#@SsOeOtyC# z_@_hFYsSeBm=gFDn3D4hQKI8fjlh+y0!;G%I0qx5dp^$o??>gIcewA5O4!5ikILf| z7+TP7r9uN7->ndZfmJ*dFezv@WQ{>~a$L0E12_~Y#6LAHDNrh-^t91A$ZSsY>(Tl5 zXl_NJQ`~UqJz=N{#34~)ps=W^)Q}5}VLMq-2gpqLIu6&WLMHWGTiwq0hfMBz2O=Z0 znL^_QGtGzCMq6opvVT!bTCI*@+0rq$8@q)yMb&29IF2Ck4^*$gSz@SndhE+k`7H^k za2?R`i$%sqif9HQp>{*t_9S_bGIQ$);*zH~I3HsA< zl%R9z7w=6vOUEW7JXe|Anncbum-x5_aiwd``Ed%jv z@f4TzNGWD2yGmcl(9%R_qn7H7CQN%NX6v7xw8uFkxj6%RRfWY?w||7Dv`rvd+$A-R znW-qQRKN6URVJzas4nyG{UTm=DvXvaj$xCdtWB}puW*Z0j#>(9Aevi*e3$6l@BxWeM}(qqXjjLC;8eE5f=! z3Zn{hPFXf+L7(!dd@aND<5mpjuk_tFG)A;?5YiMkn$+nBC$WQG+6^j-Fs7amV2E%r zDv{Dr$azl@PKRyv-~$AVfo&y@qYBF_@hI&{YZt5(S3H)QFsTU|d^d#cS1M~S?D1|l za6}B$^Eq%rBuah}^I1}hGU=H&yDl@8c!w{8Ni*9V}?>wF2n3uR`~kju*Qof~ z9v2j@V0oVTLBKHi`ZuR8%spyP+crTVcgBxG-n>Xd9S=9zJY~ld#tVqI{cyqr^rNjf z46@{NCy^wH4~^_2mD3b6{T3n(F2lxPD9tADRtXi8Atm9b?~22?_9EBtO>>VuCwR|Z zV#PYrusX%W{2xeob?WT`w}yi#27kC!3(+ioJy0P2#B?q25E-o6gb9aAKn_vLo)QP6 z-fc;I8D{P>B*anfUR0+jM4WR=^Hp4|F6&>b-Cs`eE}?3juh190IuWD_o&L+o*D4(P zA8DNW@SaZ$au*|JK6Aae%gKG3&yznAMooXerJ*JypHzK09aSN=VZRpAz<(vSMfNc@ zB9Ubma%l=^ZqItY)X%&yT3y7rkz}T&@9z;n-01t(p;oS?F9#dbam!Xyp7bZxV zG5Uei zZm2jhY0oDc|M4UK^1|wTF6M#HjBsUPFf>dX6)h`M;!qbv^Jm4_$yQEG-(A#coUzL_ zd`6)w>eI-jeJ&$d_CIpG1~~970$E3N@-89$={e}Imh*ZzBy6HEX%(uAW|q9FNprvspMfJf-2h<)_t+$&n{mPA9%~2u=--9{QFJ=5{}1H$!ats1lkl z>+~grtq@wB^#-?NxOqJBeWtwO+&cRw_s^b_1x%9WcSaBHxUzryfaRv)?h{HmHK3ny zrZCUG=jb4E#6S7nhzAgA<3>7?j{X7>Hv2ojqL=z*dHWENA7; zk!M(AK(82-Tx)eJ&>dP&=XtClYMypN_=w#@74aFyEWWY)`kjzT@E2Z(0^+6}k=Q%z?MI{OB^I&Qj|s$D_7U zFmGDpOb4CYE2e(@$@EfO^@6wxz06Lphn9YPXh@!F#7s^3?m(YZ7vpR01r*AKc$+MunT4v$}8{7T;%OIOzM*9q==4 zhXMq3Z!m=$G)FWpB7pGT!>qcs>dUS=d97;F7IAmQt#!JB(I?sZ;b0a2*s>ECG@loV zIWD4e1Iey;dLzzG@A^D_qsFn>i?scNwty|vk*Xd++!_!>Gy36 zVplX1a17TZC9v@n^EI$>KeHdu2;F2lh}bwYejj)m*gq5p`pNTeAIold{0Cl6r6BdtTFNX>sDJTZo*^?g6&*Tfn%VJ)r0__Y;r`_+-p+16!XB zn+2Oy^L=$ANx9Kr6j;ymrWvp z**smsXU=G{C6`2`6XdBAK$82_b}443R_`~B=0>UNFdeS90%qLtMX_r`IlA8!!&q0d^R_NL+|u!TYtkVIbznCp`-UL1D|as`kt?DY{Eay8mOT_JMoMoI^)1@GO}z zsO0gR-+G#Qv_T**ZR;$xk9!)=XIk`@+GNUE!hd=o_T6s_SklXdZ8yZ&oYQsC@Q4jQ z>}-xNZg-N=1y?N$VbJCDXB;6D9A0=z!5|~vYXnII+|N-%(^E#7aD=}v6+qh#%KfDE zyL+Conifw82p|FgCp|S`u)D2(M#UYF$`vnwTYHE*-Y7rXD8Sjx`cRN-nU{(}uNIeH z{cj7d1Yl7o9VAU0asT**8=QD=n;C*l7e(Ja#d?bJ#xRSRIx&c^Ix&Q@x-i1e|4tBu z5*nn5ieoc%5W+L55SJdIVjAE?H?n}%PGmz%`6-*rxOtTb!5x)|{w0-!!MXp=fS;Ds zAx@PYYbrnznJ`2-_CGAC1BzwA^J_{0TMeQ(bZ-Qx6$fQI8o~{CD;hu%Zcb zEpOUT1Ch#xCd_a|u%Zbrl!DBuDHDCm_&56WjU;?lt`~H18)>k*kw{FF`+APu655ze z2<&wkj453WWz0}RmN49q4H$RADo8<&jYAy;h_nh?n0tq?F%yVXR~D$bC6kc$Dv|>S zhba>V=`;(5DLoU$3G;ua1Ep-}cdaZKAW3DS;(K^vS@4AB3ZUj?6)0(MBTHkB>|8;( z(p(^1DRiWXGp%V_5W;a{VQzW2abm#*S`Z7GXejBX_QnP-is*>`WYN9?6QqLd+T|&L zt2Zri@%>N&EePo}aX@QhL_KTtz{p58E#O(B1BWMyhB$Squ|xw&G)5%Mp!{rvN??r! zTAv^uSfK6MSPe=N9Wt08-c@LfP>@@(GD8BAL`PciG?G9EPBcRj)YcTy$Q*8oP5J-B z&d%mC_5YLIsu_BY-%H!)l{Eb(@1pRTnvWqcUvv=o10f7*jG9p-v0@PM;{6wTVnO;w zwcbIMQw#$^avjh4&adII^U1ixcf=)P5wwIi=pti4IEEZuKsbh^(Yg<@J+cs7cFToQ z_pH`4Z~1my#{Q*MRBh;o#X5K}-o{YYFQlxkVDrDl8F^-6jcg>Ahy7buM^^`?=*8#f zD}QgCpU#%^T@%aK2=&1fb6ez_e3-@-g%aS4EPj;9?-~90#6#`n>o|q`GbuD-K^BC;?XN^QgWz=5}R*ap4_*&PNk9Kj)+Br^J^Zi;P%}9px0a zB{I5^ZmGtTe!B$T5w~Ju+qx)Eu;*=SyZ#Z;&-yK`ka)vePK4{|9k>x8+#Se4f!dHl zbFG>^Qru5y@!);PFrCql*{(st$(1h__mr{1@M4rr^X%TgDPKiqxWAeTBZW$@X_y7< z?d+>ZP~~sO-_J{Z?%8_ZqI&-d&;`BlO5wi>w0<%5Qs+i(?^b(s(@V!E%WKR#eRUjN zF86IWf;$?D51|j0;59T8>TMuJf;*aui=Yp+;4!rlZm%Mdz!JBSkfVn*k~qQc&&Q=} z{*ZSYnh4TZN2&mCXe22`9}?gpW+XxARbyY&uhQ?%8Vuj}<%bDBqr{EjvDIi^*^=oV zjvlAYcHQGpa-LIp_gbmGXb!iY`_Pq1ztFtrQh5=ud7_`-sk=?>DXKGSdvJM@OXt4}=erHxz{W?KmG*CijgN(E+E5kg)11?i#i3JG4F8M1xHS3;ybaOqzjq<22# zD6^oE9vlgeIvfcVJMbZ|h<`CUB=}>De)(j|lHLuE*-IZr7ceB|mB||y_>lf$2#X){ zU(?t8!Wfia__QR%1u6@i11&p3SxN;F!Hzj#)r|m(HlREkUL3c|jRJCHwwM+Tcqnis z2BsY_BwaB0RcS&Bdu6#>~Dd}}k z?Lh};;(YIkv=T8manCGqBs3v6q@1{&Cd`Z5q9s~Bjj;B?HjQxen{^sy@OSf=?_oFV zgs+tM(@_`QM(mW@o3AJNec`(;=RV>*oqY3`XRCG2Tk?x7UW>27?Qz>n_rB~>ZoMG; z`_A&p$c~p&VY%Xx`@x79&c=gjS-#}bM0hEAmezwQ$tEFSeQZI0*gu~&NcM0ojODDV zw&O|ma;Bw5%bEr)?Vd}JOyQc>B94-_!%1?tpXH(re-i%0F?gp>=l_|qU};9vZ>`4` zqLY*$DTdc~W6Tt+k*JbY(Y`Sab_Oj6zn20<>tXo7y9Ep9K&!lHTB~&KMkTsEg z&n&jV^whEpKiJz|GDNEh_7P79^WqNe zafSn3al(n2G7R|6)v8Sgg~TF7pBjQ_6(H|Plq1(S%z6GJ-OkFn(>GGIcX5Z(i1qd4 zmanB9??6->$4uPB#p%Hq<8IORFmY-^zxJX2yq}mBeS?Ks559MO`82(atHGZ}VQM|O zGZ5<-L?=6-jJ*31)?D;Ru9Qe`CKRI__428ih9+~iU?rcf%u_>2!S~l>pg7Dqin3~R zC&VyR-;)jTbGZG~2Z~lc~>9iA1gR@6TOr1`dED}A z5G>fV3oSlMAWvK9=xsP+ywL)#7wm1J&7#)_Ev*3*hLeF?ki8-qY%QcwpT7@!mIh)L zOgm1M6jZ1deK_P7uZXqQ#o^>NN6q!8KEOKyYRL%Ot+aK4*o*OB^G1{Y8T#R*h#Y945UR}_74pK&pjA|xez z2Y22=dTkR^ka%xq^Unb$Y8hpBh0T`70U`GbxXdromtBWIx0o!WcAA|$JWUCB8NnR_+I4pkSKvKr{>p1M_$6RED5 z^_O-?@CmX_(A3(0%nBP#bxU_EcbTZQ)ldc+{criHt)Yb0WZ}tZY3n_dd8m-Wv}6=ADS430m9W)IhVblS8743aQG3&QC=1-w-qpK7yEH7L1u#(8s zNy84hbS6(@P{3;Y+}fUzQP$QJf!>|@sCp5kV2s?aQ}b%;>4$^^6*i0M2SEb4fcwGk z(x%x9G#KcHJi(X7<62YsH4W{xqy7zHSlRj8x)Ve=c`LV2c9F6)uJzvCU2D8GT!@jCo&#l(h zl>kDJj5lZ_JH_>%E)?^}t;kg08aub99+vJ_6?3F59gdz~wk>+5T|6yj>N$isDnzyX zJDdJJ_nw|ot|#~Vc+*1H2x?;5;IZbic@=bVMc3tJTIpqKL&|hvWl9|KEu6VhI(*Bm z3}4uzDmeElQoPG%9@Gx^Dp>~=lGDoTfqUjw;YU=q3a*UmvXNEXaO$RZwdW2xDP5hF zlb-KR`{ne<B1c?44lqAa&{GYPVJL|Y1?^x?=6$Vk3%XuPr3 zc#UF%ssy^HgRpA8#4m%Z1b#7sTOi-$azK|aRM^6y(OBf6j~^QANV zJ&c+kxGV0BfysA+q#Q64mZt$@LH`_LDOff*o6Vo^JZ~OeXQ5?2$nys?A7;}KW^Vij zwhFc!M4u7-)aE(mo3%a@{He=x>>{KK{cBi@y!qhYZ<(Lts01kn399MyVcz>t^PBeM zw=wgv--lT97xx(C2)CzV)MylvNYqN;mBNxMz)fc$Qj?p#*Pl8TOgHi0 zA!RXn5BYQW2U+MP{~lE-rMncDE?8?PWkf+rj00AR6?`ovpTl^{9|WCNT!ijegcVUC zC@qX(G1eu~1}s@uMSxhks5lEc7{ep!=YwGHx##(QqFuzMaZh2H;&leeQos5W zu0EZvFWX^ud+EmG&nd-+rKukbk1SkPlr)bloK{2JnR0w=1H7X0Pcb)20!d|JjYT zOtX`9pG0D(7>Lb-o<@@H+p<$1!SQF_6l+9c$$BVB+N|3wWIysMW*w)?vNB~z7mk@_ zeKwBZx12GUp-dBfO6~tP%R>KV(b5-Fxc4cH{FepGC*Swv!vGn`L)SzOoX8@dGHtyM`Q(?%#iuB-(*?d67Ugob#IuI@4#*Tbz9g!8 zOQLBQ!OUTL4O9CT!&C#nX6P+m-CL6FIowikfAJr5)qZ%)#Xo4Zzrs3mcDGV-0hoAd43n^1={ti1suJuh1BwjOa;2WQ zDJvTvIG96Pu?&tu3*J1s3$hr{+2=fLr9KX59TT`j@^X)nE3oP= zjB>z`$d&asQ0W+BC*+rZge^jnI@{l7Dp=cMmvCBXCz*3kfy z030qYS^DSfhQl6C0p8CTd+z0iu;{-T0EVG~E2Qn~zYf3LXhzG4`ZSZ_v$2lYKr61S zPyvv98w%9WhxEEkX(KYYOz9)`VTHi0pp16w|M(?&#6u}KOX)4I9$&K%<4d2nc8`9aPNYuv z@U!QBmk$FkKSn#2?N(xUr}jz=BMa5vwr00i3oVr^Ea@{0)s@>+Rh4bi)&4EM9EwxX zeD}!w_Sza<%}b~Izjp}QnK`0#88}Na%OOf z2a&Lyy^gcokHTo}qp0~CI6waspj7t#P!71ZkMSteD~BMF0qyKZa(WH0a|zRUbMZHx z`nLZ}r9fNT9tPiv0sKuX<6#_N#n{i9kAwRU=J!zZ?3qG-TQeY^>&ki~TUiFU^S5E0 zPZx{VE+U}jb-X5E01yE%>2_Z+0Fz$f2r%jHZz$ioPYTe_HUU!rXF|YR(6pERZT$f+ z95>$Q(F1T!^rz9);+jMMw-Dgp2AxF>Ljj!mTThR_$17vsgb1h28sd88AapXo=K<^&L(r=Eu~dQsfpX#QhoM$;{j7wyf}?t9&dSGoM+93> z0=jkRmi{UKAhrxUp?HP~uIY2n1a>%CI+%Ica_CDLBMG?6#8uPz&2p4wjFIhKaQW4) zW=Ht|=>nITxT=QZLlzlRg{tIK6B+PPWzfDIOHvUmoawg@I6!%#35yMLb zOV-xT=lyaR>!N3n#q`eSg|A@qf45|%OwcAgb@AVfR?;U(AFg!pTs7t(XA88fOkh)Z zRz~qgRSv8H&1t!BJWfKGGJwa-$@7`t^HS6TnBvVD-Xv|t0{o4axNLXTna z$j`#tl>@74t`{0WmC&C5{=r|IQbzcY9s+k<<=9?h>_v&wQAcs` z{zlY`3a4pLh7GKMsV762MZwc2MYKP9XuV9amZT;%ZyD=WXfF|3WSQSc<5fe9Gp|rJ zX1-*NwiZ*WCCXo1poSCxxO+(m(-K7j!zYPtiSm(Bt|87^(5V_5R@ottQBJ(V+SwUe_($iIQgy^P$V8)o$LK2J&a7h4z+mFrMDnf{{_hBBwHS{2#u%># zVmZa@WT(am+u^7mKWWqsnW=}P01#6>mhvYGjb}#xqzQv2sQTDQ^oJW6vOR289V(4c zfK>yr7~yafW)M0}5F8>2pdPAF?NCDNQca7ID0Jx+q%xHnsu8yzqpm=DE*h$1WS zD7@n|g-gIiEYQdyU$B9MQeo-Oe$YW~TNX1mOD=ekw)m4cKaqrL&!|eNxA@P$RaJqG zT&o3E%#HYOSa_<2woq}5v1bi=b6@3*Z=6G{rQW&+-(Be$Qz7Htg&)UFdm8)%&=rm@ z^8Zv3x|C__GAfRTx_kr)ki5wJuP4jWCtTVt;-3tE;q0LKGlrg-sr#sewy2B7SjxnI zOufg$G{u{zk36i(JL$x-QBb5$0FquyhC&40sLJUhcK843A?{*&n4N$8H*fz2mSa{o zZQO4)!APHA^_T=``P6gm7-OjAWh#NH;g#wyfKtuLz7U|95zxpOV|Vf4s~b;`$A1%h zbD!7eBW|O7>ulkW3BavXcHo#7DXxiYrF3-nyXNr|Tcbw)JH9od1XS+@Id6uA0hJSEe!3 z`pwl-Ov$y7y1j0gXFKy&D;|9nfm=)u8Qg9rrlRhpl4*dMC||n%#78;FdufE3C|>I2 z`&SG(MwE%_rElXs-337u@n3N7yFDlXS*Z4uKF3Vr8pxf_^9lH ze6>@e%-AbOOsC+@-$wv=-CKMhzy?6^dp`7g9#vq6Va{DYL(YP;cB+^eZ{^4^bDPga z!BHOzF-F1QqL-EQa?SH4fz3x}m>@NZ2E5tfJNx+)U;}96MvrcG4sQ+pzlY!(B`iVk z9(etqqa8D};HrgXXaru@7Cr1`RZGHMIg+#jZ|;ct5v>NS7(L$UYmRf82(jOhO)~oNW(H6xYJmq*N&+6DMGv-FCf3YY2VzV4>#>P7^^Wrwq z*wFLhxLrlEHgn&KV%gZZDD%zT++4N#h+=Xz(FU0{PjT_)H?t7&Q`-l1dyI%OTW{T9 zJWO%17FgWHz+0?z0^@)G#an1_C;Km+I>O1BYxEc?X13dM_^yrRSZ@*h4W?|i4ECz4 ztTNp0+et#5RHP;@abn~dK{mU7(7SdBvm5nzk?FhFlHBS?{s)lO@-Mb_zq8vv9d7>= zyh>Piu_XXw^As~tdcNf#a&n2Irn%n5W%AvwzxQ&pY+`!-^!gHK@VD!gY+8o(kL69S z8T~cD%FT|bCNHxK= zlV$|>{n|Nlx{6SF12D$@V6s4t25?^yjmII8Wm)(?A9y=1%1m72Ez09z!jzt%##>0> z0gC@{@C)8TTvr6aJ&KvM=Gz0_ju$hN)o8(q^_^4LiROfyZlzVmwPx7L`cr5sIPl z{MSUOagDY@dY5BS)A_?B$z2qjSq*~FgzikL#L*;+*TY}NO=_f6A3cvUaf+98^bn~Y zM7?+BahCPQz)f0g+&M?S~bT~{a%@X9a;*y&D@J*&{D6F!!30otJoT;pE$V;T zw>wfwzcu~VzTMG(w0~>*Py3x1-`dyVa^dN4bY0~P%u&BJ{eEr~BApEyz2hCm?EKCY zaNs9RJh)cUf8aMNjomPTB-HGkX=Z*V#d;49(RU(|p4(tF2><&Y8E@jZQkl zLmwYgUz7DF|#*lA-)3b#H%!&88+2K~Fe=jpx~{MchUJwf|s(D#M__5=-}tVHjd!B>)h41Vk> zrO(lQGx)J*IO_G2OmdFyAA|SMe;K6n%+ld_v&MluN`8kHBgY6l(gPZ%ogTq>dzb3H z)|WcyLp}TlB#j~yJ@$Vs{5y0Bx!E|Y+c?~@-nTY;rqe7GPt*N8z^?9UoNPaT)!x=P z9lx7eZo2)bGmNbanpq>2EF(GYSNML!D>L4SM3!TjgXlONd$etugG22!)hR2ooJL~q zA)@VJ@g+4Vi}3wN*i*jsj-@olujdCn=)CtF*4>h@kDta@$}vhZ`nDN>l*7%lD8OfWQG4B-NJ}=CGJj z!_mb*-?6L?a<~9ngRvRM=`vs?%SIftd9CTl8hk(S>+UXzl_w^Q-3Plyz2+#bn#&9y zBr3o@SWnUp9YQT(;=pbobevzjA6)HEo_;t?kd-RmZ?fC;RYZ&eqUxItQ5YNtnl_@r z1;piqnAT@$pcuAkc$I~FX~MnxH17cq4mp=a4k7~6s311?q3`?Po$<=;X`=mDm*VIc z*`qC$6pp8~?W@o|t7}Sa{yyqm{vR|AR4Gx_-jR4DEY62oV~FxfYTYQ#Bw40*nK@&* zC-I_#CqzC2o?UXAE^Khc4leYY^x#T^=+bP@*^LJDo8pfNGCxm56NKXX?qk?gyTp^IoI=`o%<12XGsYrE|aQFg)Xuo-KZcdTVzg0gP=^ zBAGlgCNMojx|pf0nnabb~u7w)bQa&u5Yo>SUrAIcY2DW$&%Lk|-)~V+x%XV7fPK$PsG@(*PkGTHvV9D1 z2&-=S?wWjYmbAQ!*NT zcUqi$j`9r0$e5KkAT`J}DyZv@g0-Ne+ZRl)m`F_;w~D5au$%x`MNe9!oWQpjY0jw` zIA^7X_1m{u7%iqeFrG21cyU{Eb7dnlN?q+I?Mx@k6C&; zAUQEa9Ym64i03(LK(cQai4BF{&A+~*$C03>YUsMP$=m)(ZfNmDKv?Okk$FE!pdtxS z<=96^$OD~>bV80OP8Pu5&ILo%XMcfu6##+8hcn!F85tPneY5UN5U&R^ppD-H5gIT2 zC8A+Q7B_=NiLrNkxKEDBd+(?KV2?W8KrRbPc^}D;WHPIMU4K5Y-STnUq|=6pz@Leh zMUWLD8R868juP{oz}X|SCvLfvVLeQ2rbIhdh_dzlvRW(!?h0GMWz)UbAdWqhyR6UX zpB^LK;*z(g6d3xHhs0{4LEOAAZd*epU5t=Pqtex}s-h@ZaAtx^my*c~OxYrhfG=0@ zw%;Ml{&hi^?XTgZ+7X2UWS&w7mWlOIvfz5gxHRd=0QNVQ=|UIkUD4_FXL>|4g81Kn z9?fXyZ#45gARkJv>RKY=b)y3tn%~Iy`_ObcK6hl2ryFJZV?{}ys;PS`JTarMhH?Vl zl|!tf1RCm|r=?tbtk>#Ww@m|yEfPinY2o3A&NKC%Pebv1S;w{ zTAqCJ?0poSj*jKw{c|XB_6g@%7J1$ujHUF+pJ9n}u<$75)Q)T8+7Y zq2v_8@R;@yj>Xnw?}xj&fQIG*13Zsq$|bqGxEg)-@R*lbWQV<;SHHqgyo^b_mt0-( zG=M;{RiKeCZ|2!T_;<4r$tU4Jpq>(xxQqFBbsbB4o@p6n~;QwcyV(kPJ}g(=HI4+9ZKGkSk2u#!^yQke|>id3ed3aYd^+Y zt>FLqZfL51zPlFapYJ9{$AhE74?$Ip8bljQABaF?t5mP+kBGl(%+gR35dP117RnNG z_PiiIXPPART@#WJdBZ^nk~!eKL2<=wLnso_{PjKwYDC;H5=Jd*L`FJ|N}5D|0Gl-8 zMlj}pUDLGRpN2RZ{TP2^Cd_FF^bU(3X6FMK|0ib3?E4!t4Pa#EGe?|bIy#{vIu3+U zP(?wc%{SS&2>!SF$#rEm8P|{3j;a{+>?0ZyM`#>`yxx@bNLuXv>lgTy*1xaI4>K^8 zH|fMmL5NU~2BRr(!{B?7E2w%=9N$+gl(5#f8E4K^4zD-6%rwcYWXkEN2_!xEZN{Hm z6+&SO3R6EZ8)A8bGB>5k_Rk9t2u2ch;>kLa{sSx3cQ$@aZ@T;ufyR16^kSe!w#sq! z`GIwJl~`J6X#bU0^SsMs6v%s?ReUdcPs0oXWE4g`{|+u>6p0#OI$=QFfiM^(C@x$O zkdzkrb#Lc;SMve@U}I4T_}f;vMb&QK?k)0&yKtByuDm8U;Q%>>Xsp;bJ@2IZ=lh8N zOV2k3Fa=bCPv#hQEVuoBygy1TH~q2CI%V*GlVnzZbw;Bfet$HrZ~gU@t-@q*(d#6R za5K2WE_-N{tF-42tIzU$5RfvY;RZ>=X;{;0`+?eJ8R~j08An?A{}G{$|BndhZz8yf zzKH<(KSXHb|09CxH#VAdtAoIB1T^XN-Q`@nEWv;Cx~$qCrqny|I+38H&o<{F>iYd* zpoUNC`h@KVn+VX-!e)fx^au<+q$*lg{s3#5LW8SsqnnF*Jw=8iaf1Jd5GVLc1U$tz z5y&L_=R#2bhX`?ke?&MhVJix6#1WbXBO^MUHq)?#dDNNd_8;3A`BN};{ykA>h@TjU zLhgtR{gFjp?ug;tvW5_Jgncc~ql;QfOKBk+I?f-}>YTFYf=RdjbEK{qq7n?RgR}?d zq)-@Ue09*@4d5cUSBw4wgRYC;7~%?X=RXdP!hOcGR#Ga%eNMk0#9C?s`fnO@5yfR7 zd-VCcY0Nvq?_!)jO%5Z`V~;mYP6Th3QTj+}EYxMp`ZM&!WMfSc5af3<)MxD@o}=5x zvR&CALm@(b5_l4-;wZgj#OycQW^5v3>~C>`qc_HC2V=B{|A3^q;v3_8Te1^~3_?(R z+6zU5p(wr^$Zj?_0sTMg0u#qH0R6oa+;70YBnt>Sp9di5iZ6GE@McHwV84ekwIK<2 z#5-BkgUkA}mZ1d)OSHdBvo=lqUAn~eduf$X_O~*f|6TeUs6K5HcE#Cwl7Ya~Aw8LRkCoiS_vFfh%jxyM?U z_FMmseNhd-3{Gl(cP5tqf9wA|-@Ad;&)w>1*9dK>lV2#p&{BV=LaD{3iT}Sw1Piz_ zbvO9io^__~;ti0$`J(Awzh?Qu3{Z5YN_0mXK+%~7PC+P2#?{KAPHu=SUqx&<82(2T zb^k;`_E!`N-=YZrzoMx7D+*)0LVCIL@KAU~?9`PX$Kg)aI#dY%&4H#{DV!LeLaSwt zAV2${28^?7`P6rr)5sF8)KW?BgdOYsCy&aUigTFhP`=G*8NSH{-{i(ajqmjgrXqyG zIItu%g)utG&>w=}xQ2{;<4hlMf&=$@s$1if{{Ygu$~OkSh(LX;XsS@e!hjeNTo5wF z_fe=q`R`G{;O)^*Eme9vM$05URla2bn-|WKM12?&<~hEYo!Ky{z-w)gP5965m-x5) zi75`wb=w)IeG`x!xmQs<>ZSez;TPpH35;?1_^V_HlZgi#17rwr(g{w-66VHJ9U}j6 zA24`7=%u5a9!EejNr&6MJL46HJJ7COkTUJ-9m6XrSb@SLl6YX1F+_ z{@ZpO|BMhBnb43Atd# zL~#0YlYIaDnDKut%bGUnU(2EsYL`8Mid#LvN1sA-Ewv1L^%#8M>O9}!L$G>9ME5kw zv5dh&CWXK+mCU%Ld9yRK+}Ws)Xs+iy3%G(!iw|LuvLX5hFbx~QD; zOGn-6@_1t)xC#7~W28oe<=%<5t!H6jrpl`t1*i!_1|1WvV zbS&P){J|FV^pUh%`^en@hvMtE8<>4*3EFz5XeN>{bqSvrqLRdu;ogF0Nh&8gKF`*< zQ+_(WJv1^5&ld&9f%vi%JQ5GclOwX@mcGIhlfba~l(9sgHO4NP?7^qZ)REQ1P%l}y zs0OlkFxUZhuLNxu157iy1dYh329k=5lQ&}uT2Hp8yE&oRw*X(=y`sesUtLMdT$ztf zWD&B$0<~$opw5%v?|+Ln9>L_mpnSDiLWyBw>D0TE|4x9NH4}Ka!w{xIZXhfXO;9mP z{np00^~BTFA9rZCjO<1KY$8J$;-eb^ZQoUz%RO^a)pC@%Y@p%353Xb`#T%<0*IE5 zJ>*2DU)J0RW$@`;uCULFud8NbBX66jb~avfj5o+@2cg#5?NlngYJAE10Ll zH*2eA*Sw-909fa>PDRtsvh)R%$Nx^Aq>u#ZzSfm)W4FhSFygXJ9>ColTuO%3_=jpT4$m(^!X8tso*w`T# ze^4WcKPW~lv=`!H#S+l^%I@@F0<>9-37(S$G#`WT6_y^o2XqQ(uk{zwGk z25__#9S@f}?z{`#IIai?w1{vS`v{mh(!-y`84BXs4?jqB1E9Ip#6!OJR?enu9R?uh(<42y7jS(kX@U5v)E@-DWIHV)#ML7PJkLeO)$Q zV&Dee({jIGBkgqxfia5_kkeq6UNrW`tb76J!pK!Kj<~d#J;DK5=34shToV65O^1I{$GJR-4_ z!!4h0`95}9;U>znAP$)AVaVrK93XuuxZ@q%Bj?dn4)fE^ojT5>>QP6TJf)?Aeih~6 z?ND_{9MQlgtRC=npVx&W4|9Y^9|;4oKLKDaP(q1QBRLGBJVDe@(G;d&uG`)dQPxQu zfj?&!Yf?8JQf6Z{>YVA`z*r8;=Mdx4)vQ%zt8{#b_joys9Lb3YNp3b;yzwk?a_Kyz!wl*`96{M! zX_rFo6EP?;pOzG7TREewGT`S+Ak5)!9mBRbr)vTji+iB>kE}8tW2|u?WCaM|b~XJU zk8&;DyBSL{6=jC}kK3`xm1Ui441Z10S*c>sS8AFJ*4ox2`8au(^HF)3ouqYHyRB1& zybBs1W=u4!FR+n^Cbh|#>vcw$$>1|mLW834iGr(Rr+q1ZRqIKeh96`NaVEa`S}p)V z1=>0fVmL1E%{Gst@lOVZLa5HD6rL-TT`02>Wp>>;McxIA4YFx3_M%b-&=fGk_XrTu zW@qR@-%E*%9ZE(k&lk2(zbOh+VA`OtBaR=midw(;6U>>n!DGfo>)LPEEsmb! zu_$8p{pk}bnvJ&OQZIZJYW;*8ohz46$|s{q_+mDGSKka)U=4+-KY z#EQSX?3<3e%=>iy?4&s}Qfm%fwjJ6SVVf}1#}Et3%iF{jV8Y&DC^=-`_-4C6e(|%! zjgnorxHN1j-_6LG7>YXBCtPQ%mAlO+ntF=3NQ`BlU-5RfKjv8aCmufp!u{rc$~M!7 zN&@^7|CV(z*B=pj(S(3U2OvW(2cgm?LSo{FH9bF z+n8E|(FJfgn$1RDg&q|XH1la%h1>a*wrPu(3?CuSV)}u&VlIFc(%^_+q&^Qp zUu@ZCAjj=qAJk|*yL}vbnK^{%#XqE%PiH*hChKI+;9;6U)@JbNA0dNYu*j*{;$_DA z@r*G>j|LeJzd6#t5Sa`M*x?Nh049lcyyx#((GVSO&FUQ@L8X3kn|dIEPqV`}b2r)W z;T_C#fN;s>G=M3wYOPbEOY_aIxxXu1MMq81Q89&4UPW5KOG~DtOe7XHqg+gbK9y58 z6Xnao2%et&bPLsgRI=4a&Xlu=g4V4Suo5U=J3n2ApbG)8-p9hcYtr;F4O+jcalZUvo)_;7B1L z_O=k?QJ89oyTb&-j{jX_Z;f}`>BIN^6UVPS#C}-Cy{v}_-H%TxZ+9yvTcc;xOx5#v zG2Jsg$1d&leGBvt4J3F;*MWxeNbG58dLlq89-i7r>$8=t{<->TZ&b@}u$(4BlEYYGlzR}a0{le9=|B>xzWBh z0cA1ygwkhb@>d=<2Yo^klFc66hR|fJv7pgN+@7ONPAsmG*5fIBz`I(pwD+hXwxZ-} zRCg;CIKRADWVEkZF;6hONlajGxFCSsR9cI1CDV=R{E_>JeSiUr_d*5gVSUi?+i5_fL%lwzWuHslou-b%+;)P2(%gpOrUE5&G{a-Ku+) ztiM4Rr_R`w?0+z4fkSTe8QOA7(3g*Zem^JPcN>oicxZser)gXetjH*A92kQ)bvfF*n%$JL+YL@bxyVzZ z&V*a{8nljk4+gseBjp+p*8z)5llgvWsBe~I>CC0R#tZ?h$UKqdUr61*!}h6O%yhx> zOBSkaM$5?*paBx6(|Z8AaNwN4%L^91xDiaXnn`I5VEha8iM`2EZUP}`eW8P`#=i*J z>fTm3Ru!FSA9~q{htOQ^{$x+_O3)Tsf4>*_{6i%yw1~Kl8Z<_DC32N z2il6@y!>^PD%8;se&EZuL5JxKk?Xq^?prJfhx!bZ;0X~N{NXsneD;r47kAw_lBZa5 zvTIegW;s`2q_dP~rYuU!S_7?CN@sHNe)_e3l*8H*qnk6PSmBoscg@0%4O z;I;!TnEm#nXxjowR3!zLfk1dpmX@?{N@gr!BM@v>K=`!hA}}{amQRRbXKn_IK@UC^(xgL>FBAkYGSw(UBBjPNl5C$DE8QLdTS* z(qtq28Xj}q=3LMAv@p*6q;~@IM5WVOeforYTwlC`j+%JFN&cJ~+DVUs8HsNNS|9TC zImgq@@9G7@lA=IWPaaCTt+$qd3#Xbev=q@u#%|H4EC}zdKaZ!Sndm0Uj%Y{^b#^(w z)y+2xP#sY8L^NkfRkURxX;X7h{aJ>hDwKYc8o2KjN?!^)9?kv0teU@&ugX^t>Vs9A?4frO#(XTY(Egzd*9_@N_OI~;e% zaYdT#EzQz(2R$zc}MRKx$^J7f=0qRL5z0L>Z_{h?WnC?Jtp3 zasl;6@t6YtNPQW2hzMRF{H0N=!P6t3NK?O|ZhxfSl%;|Izfg#TJyLowg|PZ|S*yOy zKcrJ}MF(Ow3+Czr_D0@>Gc6X36TCotGM|qGnffdAe4f84BX$5pO#8vvBPi4AA8t1; z6J4>ZEV?Khz;5{@C0WBnfjampV4^V@gWE#-fiTHrQG&IqhNjk2^X;vz%Cj&dyVUyop&DlNV#DBM) z+6rX7)~>7zz;EbTV_3fojg83gDL#%3Z?plAY^yItX*omuv&UId{iP?2n$Pt~l23eW zC9Daef*cZYa1~J(mwO5_uiJQDg@rg2lNTU^VaHW;CUig%kJ-g;-n=y4r zKdDXomPKGmpLE0|oXFs`JiaTh@J>k2!Lee*HT#%Nz~Jk=zSXv@#M$-JIeO?VkuAb? zLwpk0(uM10;RMAZWS@oy+i$~_WH#q0`3JrJda`G|uUq0|Ev*y2k|zkybR(>7+5+uw zo(*m6daB7<%vv_8k&g8P1+UCW>e00A*aJ;iSu|f^*z%7jKxznvmM4y&PPK_DNLwya$C9r;!$jD={GKNdaNtB5>P zY*&8ALB5~U;poR>d3YMdK7|Z;k_9TXzmnE01anto5?{xGeRGpYyjh~IJJ}As?nu|u z%*OQm{5R%1*tJV!8KZC2LIN^k<9c@R=LLwcx?Z2}r@I1SlTmLJ_L^FF;9m$--8S`I zZbDCX3NP|v=S3_6mak}P&wc^;#7?#>ey$#L{t$WS9Ba{QBZ`y1*un`&+S2KspKvJC z@xs3|PRXP(W3p1SxB5Ls%B`l~Q<4g%Ry?w=aPI@KDBE8#EZZ-(i_>7J@=Uz;F6(mV z(LYi%m*%#(l6DMjmggwetFn&+81RRH-Gxi=cY~2nZ?Gz`*NM<9PvUtK*zT7W;)Tvj zxVcR2$8p)UmTEoiJykLEhsN_JS!EnuzRS3)Sr62*#ZrOK(7icc&{-1H3*Q&YR$-L% z^LJTgNJA^JoE@S1LktYz+QEfe!CLNd#~jM%cR$M**kN~Qu5`pB(- z{Oi`qWlccjs`t}R4*O{`>yP`#ZM+(}$Xs%RRza9I-NB#eVj@u|nXx_)U^5mmXz1a1 z0P<*BqI`97rW$Abto_RZ3zA|u3~v1psg zi(*|`aEQ6ZU*)=o-il*;%tGSj@iPtJoo)%hxv%W3Zw#&Dq@P#$d&!d&2}9D0-;CCyIY zkKS|^Y9nX=VxuMQP;&Tk;LoR+pG~L_1ZS*$>G{+`g#4An6l~M^L}_G1O8p6jNmXId z{54>?Rc)5xs}>ooJ`L-p9M)s446k(t1l;dzLz#$w;esTtA_EUn&bF%{`Kg{o8( zY6@-+JRGwuqSRrZpkm2(=swDb@I1{rUA|5J@HyZFrg>5yp(A<1dYaMk`%WgM9?q@J z@5ZmY1eSRq{k2C&e~B*w2Gd#|dUrm0sUIrCfF*VDIuv_NHhrFql0Jmb4O{6kC-sIE6Wj z-Qe|Bl`gN{E}eD09B;Kwp{_C?ZbGn;*yfvu-nb>2VN=sBM5hWasQIw@N6y{&>kV^) z^0`ouh%ULhVv}KFg4l$GE6`T+8j{h&3K7wqnN5aGNn@VM(+8MsJ24ti8^@ zG~Nn?TsPPE@w0xcrn`?PzRzv*T?E$cKXn6-imHCJ7-X-pudg}Mg=}826_Y64A7|B9 z6yIriC>>stO=p{Y`d|;e7FALMDl&aBiM&;g-L1% zosyVKbY5>{^Nd2=0kK|UmH1Pmr%~U>n(*C`cK{iAocD zDN@b+La)pH9)1+dvk|6i01gxq!~34(4Frt*x}PMl!#yj(02b=p=b)zzGO*?k#D_i# z&>hvs5h~8{^PTlAbhbECScWY&fWDVOTy8ALu-Cy0)po`Y>fZFZtDO28Cf7dw-F>sf zQTV0a)aS7u9&cf)OaRGYxxP<{Qy<9lS?KPW=Ti4|+ppO7m4uQ$N ztz*q5xIsUl4%TN!`D{(x%}~P@3QbZ-;03Ijwmd&+U4u=z zf1So|UT_ZjvvJXPk8MwEXSWYdvs zg(ZC1M-ALP?(bewVeh+OlF{F%^!loI;?q$u7D9OO0@}rKgZnnrRRn%_2Z2#7&#bkV z<;_Jdy=%NfX^UnqkWRO2FVX<84blyi{XG?WujF;zuaXPmH4itDh)TZD>tal9YJ43v zoW_K5rvctg|Aoed>Q%!T@mS7#!`5Q#vukNqh*^M)RW{D9C|b@Zz|z3C+^Zr#!z*Cj zPC!bplJ;|)P2HNT(z;vGDE3C70tSF(ZhP|r5Rm9@W@}Ea?FNwXQ?69MzRkYQ$J~^o zREcIPUa2L;Z|3nvIosO=$p2J<)kecvu$V?K)F>|)r;kz6_Q3Wy z-V66mUQ?P!H7bl9eVBM95RpNN6p;#xk zCYDTR?Y^}^4;A$}6(L$6ssSr9y<0a(2sNHbYOC^m$o7WIDucm#uqNAhVB7JkclDb; zx$rVhDRX|o2I(foK z)05GBj$6uX-ipfogn+6cDC-ee>El-0lTRkC_7+R2C#P!yV}W?!qNGE0-g)tV zg>bYX{$H`(Eo#0yBN?nkWW9W=t0eQ>zw0qh#Xo;_E$?*E)GxLxs#kpgq8OfI8fwYG zu?*(&ExtNU*RAdi3Fyd6CsDXUktz8r_Js@2We>8TaSfB{=YTwtiS~lsit0R zUoc!|_7^`>*-tqJX|N>2R)@T?2op`^#X5%V-g%7$^|joR5rI@JM#+6B$4DplJqW5% zkER=>I_jDvqh1Z^W&H|G;B6GG8J;8G1FBME%Fpj#0#@}aJcKdD+FqU*T+yd8r}az}I>nv7-#Yay{jF?1rq9c0Zzb^vJLIILwj{F2$<* zC(}8Kz*pvQ$nX4#l39c72zIpoJeu30z}!3*`vwI;nV(DY0Fa0`vASa`j(vDR` z0`*$VD!O)7huI$>#L_4({k;&c-n?j|+vS)_a@bqgDH8_F?Io$(+v@}@{*!MvZt<1j zF5h=@nu*D|=>*dzDfEyL7&XxTj_`{9XBvciS=SF4dVDd(gSz4VWoQ%Sj9-7iM^@k; zLxn9^EWzr<{`}f7aJIoWj(!$Eas?0u$R7!&4DW|it3W4N2L4@?ATIbvna`NPxeT)& z-MG<^pv`Qe9f}U6X2+~TI_A6?Hg(-~>81BD+lzFLyrKY8oTA`IPPzga&jT}uYJ>d6 z?nqp5>FjL;eF)-O8@gyM>Z$cHe`z;_i|PmR)NYv--aJ8M?nGMLAU+eMj2BNKl5*4O z3TczZx*D4#EUD`!k#%F@d*`E}yWCbme%Sv|wC3G`7H@3Q-D{ zaWN=YuBIfq6&V3FbCRpldNi$>kme5rPgQN84OT2k|88*LTXk4?ESuqI(qy_2PMq%& z){SEpnt67;mC@~c6&|(O(HKT&Bxu$Z>4`VEQ75!24&5rA*49$=zUlGBFuqC;&(`&Z zN&C%*s6rTK44^2W;6y94sIL3`t*@>COH>d&?CI!$A?D~0_jkHz#?lv+b&^=WwY~>O z&2{sfylY&%fWaIit&-&HA$dt8w1pCt4<+APRktkdU4Us@M*ub6Ebq!5+DmKKXMEOM zRI*S{Bz2ny%K%29jijO9! zB+^G1N?B>OwsR%ftW4`9J=Gaa=Yzwea@N%S@?h4~D*|q}U{u?@Sg&FN==?K7U$5C6 zG#BThi3w1vS>2xfv_BDl-_;YcZrRS8-WgvGEb2H>dcela?_p+=Jz#A`E`GW^wXhex zX$|i!g=_MSPSBdGvpxR26qc3O4Y%wz-2Q^fgiK4YfU*FukBDF0&GY=oA14_;m!jwE zSf0hZPuIMiSi5|WqX?l|-p(%y@eb5JeTwP2L8ku0@rQLoSXX6!{E5^C0Zud{wAFnJ zM@CGXbklZHP$azK#o1DAZSwUETEylPJ%0AyF+JNu@x@DV%6**3u8sS2U+HIVUAi-k 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ν)3QHFh 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 diff --git a/fuzz/fuzz_targets/serde_2026.rs b/fuzz/fuzz_targets/serde_2026.rs index 0998aba0..2c96a4f9 100644 --- a/fuzz/fuzz_targets/serde_2026.rs +++ b/fuzz/fuzz_targets/serde_2026.rs @@ -1,20 +1,25 @@ #![no_main] -use clvmr::Allocator; +use clvm_fuzzing::ArbitraryClvmTree; use clvmr::serde::node_to_bytes; -use clvmr::serde_2026::{ - Compression, DeserializeLimits, deserialize_2026, serialize_2026, serialize_2026_random, -}; +use clvmr::serde_2026::{Compression, DeserializeOptions, deserialize_2026, serialize_2026}; +use clvmr::{Allocator, allocator::NodePtr}; use libfuzzer_sys::{Corpus, fuzz_target}; -fn canonical(a: &Allocator, node: clvmr::allocator::NodePtr) -> Vec { +#[derive(arbitrary::Arbitrary, Debug)] +enum FuzzInput { + Bytes(Vec), + Tree(ArbitraryClvmTree<10_000, true>), +} + +fn canonical(a: &Allocator, node: NodePtr) -> Vec { node_to_bytes(a, node).expect("node_to_bytes failed") } -fn roundtrip_check(label: &str, a: &Allocator, original: clvmr::allocator::NodePtr, blob: &[u8]) { - let limits = DeserializeLimits::default(); +fn roundtrip_check(label: &str, a: &Allocator, original: NodePtr, blob: &[u8]) { + let options = DeserializeOptions::default(); let mut a2 = Allocator::new(); - let decoded = deserialize_2026(&mut a2, blob, limits) + let decoded = deserialize_2026(&mut a2, blob, options) .unwrap_or_else(|e| panic!("{label}: deserialize failed: {e:?}")); assert_eq!( canonical(a, original), @@ -23,21 +28,12 @@ fn roundtrip_check(label: &str, a: &Allocator, original: clvmr::allocator::NodeP ); } -fuzz_target!(|data: &[u8]| -> Corpus { - let mut a = Allocator::new(); - let limits = DeserializeLimits::default(); - - let Ok(node) = deserialize_2026(&mut a, data, limits) else { - return Corpus::Reject; - }; - - let fast = serialize_2026(&a, node, Compression::Fast).expect("Fast failed"); - let compact = serialize_2026(&a, node, Compression::Compact).expect("Compact failed"); - let random = serialize_2026_random(&a, node, 0xF022).expect("Random failed"); +fn check_tree(a: &Allocator, node: NodePtr) { + let fast = serialize_2026(a, node, Compression::Fast).expect("Fast failed"); + let compact = serialize_2026(a, node, Compression::Compact).expect("Compact failed"); - roundtrip_check("fast", &a, node, &fast); - roundtrip_check("compact", &a, node, &compact); - roundtrip_check("random", &a, node, &random); + roundtrip_check("fast", a, node, &fast); + roundtrip_check("compact", a, node, &compact); assert!( compact.len() <= fast.len(), @@ -45,6 +41,32 @@ fuzz_target!(|data: &[u8]| -> Corpus { compact.len(), fast.len() ); +} + +fuzz_target!(|input: FuzzInput| -> Corpus { + match input { + FuzzInput::Bytes(data) => { + let mut a = Allocator::new(); + let options = DeserializeOptions::default(); + let Ok(node) = deserialize_2026(&mut a, &data, options) else { + return Corpus::Reject; + }; + check_tree(&a, node); + } + FuzzInput::Tree(program) => { + check_tree(&program.allocator, program.tree); + + let mut a2 = Allocator::new(); + let blob = serialize_2026(&program.allocator, program.tree, Compression::Compact) + .expect("Compact failed"); + let decoded = deserialize_2026(&mut a2, &blob, DeserializeOptions::default()) + .expect("deserialize compact failed"); + assert_eq!( + canonical(&program.allocator, program.tree), + canonical(&a2, decoded) + ); + } + } Corpus::Keep }); diff --git a/src/serde/mod.rs b/src/serde/mod.rs index 29f0e030..2171616e 100644 --- a/src/serde/mod.rs +++ b/src/serde/mod.rs @@ -43,7 +43,7 @@ pub use tools::{ pub use tree_cache::{TreeCache, TreeCacheCheckpoint}; pub use crate::serde_2026::{ - Compression, DeserializeLimits, SERDE_2026_MAGIC_PREFIX, deserialize_2026, + Compression, DeserializeOptions, SERDE_2026_MAGIC_PREFIX, deserialize_2026, deserialize_2026_from_stream, node_from_bytes_auto, node_to_bytes_serde_2026, serialize_2026, serialize_2026_to_stream, serialized_length_serde_2026, }; diff --git a/src/serde_2026/de.rs b/src/serde_2026/de.rs index 4bef4e88..0e8c50b8 100644 --- a/src/serde_2026/de.rs +++ b/src/serde_2026/de.rs @@ -13,22 +13,27 @@ pub const DEFAULT_MAX_ATOM_LEN: usize = 1 << 20; /// Default maximum input bytes (10 MB). pub const DEFAULT_MAX_INPUT_BYTES: usize = 10 * (1 << 20); -const MAX_COUNT: usize = 256 * 1024 * 1024; - -/// Deserialization limits for the 2026 format. +/// Deserialization options for the 2026 format. #[derive(Debug, Clone, Copy)] -pub struct DeserializeLimits { +pub struct DeserializeOptions { /// Maximum byte length of any single atom. Default: 1 MB. pub max_atom_len: usize, /// Maximum total bytes consumed from the input stream. Default: 10 MB. + /// + /// This also bounds atom groups, atoms, instructions, stack growth, and pair + /// allocation: every declared item must consume at least one byte before it + /// can produce work. pub max_input_bytes: usize, + /// If true, reject overlong/non-minimal varint encodings. + pub strict: bool, } -impl Default for DeserializeLimits { +impl Default for DeserializeOptions { fn default() -> Self { Self { max_atom_len: DEFAULT_MAX_ATOM_LEN, max_input_bytes: DEFAULT_MAX_INPUT_BYTES, + strict: false, } } } @@ -62,18 +67,19 @@ impl Read for LimitReader { } } -fn checked_usize(value: i64, max: usize) -> Result { +fn checked_usize(value: i64) -> Result { if value < 0 { return Err(EvalErr::SerializationError); } - if value as u64 > usize::MAX as u64 { - return Err(EvalErr::SerializationError); - } - let u = value as usize; - if u > max { + usize::try_from(value).map_err(|_| EvalErr::SerializationError) +} + +fn checked_bounded_usize(value: i64, max: usize) -> Result { + let value = checked_usize(value)?; + if value > max { return Err(EvalErr::SerializationError); } - Ok(u) + Ok(value) } /// Deserialize CLVM from any format (classic, backrefs, or serde_2026). @@ -84,10 +90,10 @@ fn checked_usize(value: i64, max: usize) -> Result { pub fn node_from_bytes_auto( allocator: &mut Allocator, bytes: &[u8], - limits: DeserializeLimits, + options: DeserializeOptions, ) -> Result { if bytes.starts_with(&SERDE_2026_MAGIC_PREFIX) { - deserialize_2026(allocator, &bytes[SERDE_2026_MAGIC_PREFIX.len()..], limits) + deserialize_2026(allocator, &bytes[SERDE_2026_MAGIC_PREFIX.len()..], options) } else { node_from_bytes_backrefs(allocator, bytes) } @@ -97,27 +103,30 @@ pub fn node_from_bytes_auto( pub fn deserialize_2026_from_stream( allocator: &mut Allocator, reader: &mut R, - limits: DeserializeLimits, + options: DeserializeOptions, ) -> Result { - let mut reader = LimitReader::new(reader, limits.max_input_bytes); + let mut reader = LimitReader::new(reader, options.max_input_bytes); let mut atoms: Vec = Vec::new(); - let group_count = checked_usize(decode_varint(&mut reader)?, MAX_COUNT)?; + let group_count = checked_usize(decode_varint(&mut reader, options.strict)?)?; let mut buf: Vec = Vec::new(); for _ in 0..group_count { - let length_val = decode_varint(&mut reader)?; + let length_val = decode_varint(&mut reader, options.strict)?; let (length, count) = if length_val < 0 { if length_val == i64::MIN { return Err(EvalErr::SerializationError); } ( - checked_usize(-length_val, limits.max_atom_len)?, - checked_usize(decode_varint(&mut reader)?, MAX_COUNT)?, + checked_bounded_usize(-length_val, options.max_atom_len)?, + checked_usize(decode_varint(&mut reader, options.strict)?)?, ) } else { - (checked_usize(length_val, limits.max_atom_len)?, 1) + (checked_bounded_usize(length_val, options.max_atom_len)?, 1) }; + if length == 0 || count == 0 { + return Err(EvalErr::SerializationError); + } buf.resize(length, 0); for _ in 0..count { reader @@ -127,7 +136,7 @@ pub fn deserialize_2026_from_stream( } } - let instruction_count = checked_usize(decode_varint(&mut reader)?, MAX_COUNT)?; + let instruction_count = checked_usize(decode_varint(&mut reader, options.strict)?)?; if instruction_count == 0 { return Err(EvalErr::SerializationError); } @@ -137,7 +146,7 @@ pub fn deserialize_2026_from_stream( let mut stack: Vec = Vec::with_capacity(64); for _ in 0..instruction_count { - let inst = decode_varint(&mut reader)?; + let inst = decode_varint(&mut reader, options.strict)?; match inst { 0 => stack.push(nil), 1 => { @@ -181,9 +190,9 @@ pub fn deserialize_2026_from_stream( pub fn deserialize_2026( allocator: &mut Allocator, data: &[u8], - limits: DeserializeLimits, + options: DeserializeOptions, ) -> Result { - deserialize_2026_from_stream(allocator, &mut Cursor::new(data), limits) + deserialize_2026_from_stream(allocator, &mut Cursor::new(data), options) } /// Compute the serialized length of a serde_2026 blob (including magic prefix). @@ -199,19 +208,26 @@ pub fn serialized_length_serde_2026(buf: &[u8]) -> Result { let data = &buf[SERDE_2026_MAGIC_PREFIX.len()..]; let mut cursor = Cursor::new(data); - let group_count = checked_usize(decode_varint(&mut cursor)?, MAX_COUNT)?; + let group_count = checked_usize(decode_varint(&mut cursor, false)?)?; for _ in 0..group_count { - let length_val = decode_varint(&mut cursor)?; + let length_val = decode_varint(&mut cursor, false)?; let skip = if length_val < 0 { if length_val == i64::MIN { return Err(EvalErr::SerializationError); } let atom_len = (-length_val) as u64; - let count = checked_usize(decode_varint(&mut cursor)?, MAX_COUNT)? as u64; + let count = checked_usize(decode_varint(&mut cursor, false)?)?; + if atom_len == 0 || count == 0 { + return Err(EvalErr::SerializationError); + } + let count = count as u64; atom_len .checked_mul(count) .ok_or(EvalErr::SerializationError)? } else { + if length_val == 0 { + return Err(EvalErr::SerializationError); + } length_val as u64 }; let new_pos = cursor @@ -224,9 +240,9 @@ pub fn serialized_length_serde_2026(buf: &[u8]) -> Result { cursor.set_position(new_pos); } - let instruction_count = checked_usize(decode_varint(&mut cursor)?, MAX_COUNT)?; + let instruction_count = checked_usize(decode_varint(&mut cursor, false)?)?; for _ in 0..instruction_count { - decode_varint(&mut cursor)?; + decode_varint(&mut cursor, false)?; } Ok(SERDE_2026_MAGIC_PREFIX.len() as u64 + cursor.position()) diff --git a/src/serde_2026/mod.rs b/src/serde_2026/mod.rs index 189966f1..64098434 100644 --- a/src/serde_2026/mod.rs +++ b/src/serde_2026/mod.rs @@ -53,9 +53,7 @@ pub enum Compression { } pub use de::{ - DeserializeLimits, deserialize_2026, deserialize_2026_from_stream, node_from_bytes_auto, + DeserializeOptions, deserialize_2026, deserialize_2026_from_stream, node_from_bytes_auto, serialized_length_serde_2026, }; -pub use ser::{ - node_to_bytes_serde_2026, serialize_2026, serialize_2026_random, serialize_2026_to_stream, -}; +pub use ser::{node_to_bytes_serde_2026, serialize_2026, serialize_2026_to_stream}; diff --git a/src/serde_2026/ser.rs b/src/serde_2026/ser.rs index 14b4d9bf..f73bedc6 100644 --- a/src/serde_2026/ser.rs +++ b/src/serde_2026/ser.rs @@ -6,7 +6,7 @@ use crate::error::{EvalErr, Result}; use crate::serde::{InternedTree, intern_tree}; use super::MAX_INDEX; -use super::strategy::{Direction, LeftFirst, Random, VisitStrategy}; +use super::strategy::{Direction, LeftFirst, VisitStrategy}; use super::varint::write_varint; /// Intermediate state after interning and sorting atoms. @@ -258,9 +258,9 @@ pub(super) fn serialize_with_strategy( /// Debug-only: deserialize `bytes` and verify it equals `node`. Panics on mismatch. #[cfg(debug_assertions)] pub(super) fn debug_assert_roundtrip(allocator: &Allocator, node: NodePtr, bytes: &[u8]) { - use super::de::{DeserializeLimits, deserialize_2026}; + use super::de::{DeserializeOptions, deserialize_2026}; let mut probe = Allocator::new(); - let decoded = deserialize_2026(&mut probe, bytes, DeserializeLimits::default()) + let decoded = deserialize_2026(&mut probe, bytes, DeserializeOptions::default()) .expect("serde_2026 self-check: produced bytes that fail to deserialize"); assert!( cross_allocator_eq(allocator, node, &probe, decoded), @@ -334,16 +334,3 @@ pub fn node_to_bytes_serde_2026( serialize_2026_to_stream(allocator, node, compression, &mut out)?; Ok(out) } - -/// Serialize using a pseudorandom visit order seeded by `seed`. -/// -/// The output is valid 2026 format but not size-optimal. Intended for -/// fuzzing the deserializer's handling of mixed `cons_lr`/`cons_rl` opcodes. -pub fn serialize_2026_random(allocator: &Allocator, node: NodePtr, seed: u64) -> Result> { - let state = SerializerState::new(allocator, node)?; - let mut output = Vec::new(); - serialize_with_strategy(&state, &Random::new(seed), &mut output)?; - #[cfg(debug_assertions)] - debug_assert_roundtrip(allocator, node, &output); - Ok(output) -} diff --git a/src/serde_2026/strategy.rs b/src/serde_2026/strategy.rs index 654770b5..9998339a 100644 --- a/src/serde_2026/strategy.rs +++ b/src/serde_2026/strategy.rs @@ -57,43 +57,3 @@ impl VisitStrategy for LeftFirst { (Direction::LeftFirst, (), ()) } } - -/// Pseudorandom visit order. Useful for fuzzing — the output is valid -/// (round-trips through the deserializer) but unlikely to be optimal. -pub struct Random { - state: std::cell::Cell, -} - -impl Random { - pub fn new(seed: u64) -> Self { - let s = if seed == 0 { - 0x9E37_79B9_7F4A_7C15 - } else { - seed - }; - Self { - state: std::cell::Cell::new(s), - } - } -} - -impl VisitStrategy for Random { - type NodeCtx = (); - - fn root_ctx(&self, _state: &SerializerState) -> Self::NodeCtx {} - - fn decide(&self, _state: &SerializerState, _pair_idx: usize, _ctx: ()) -> (Direction, (), ()) { - let s = self - .state - .get() - .wrapping_mul(6364136223846793005) - .wrapping_add(1442695040888963407); - self.state.set(s); - let dir = if (s >> 33) & 1 == 0 { - Direction::LeftFirst - } else { - Direction::RightFirst - }; - (dir, (), ()) - } -} diff --git a/src/serde_2026/tests.rs b/src/serde_2026/tests.rs index a8b8ec3e..8ee642be 100644 --- a/src/serde_2026/tests.rs +++ b/src/serde_2026/tests.rs @@ -1,9 +1,8 @@ //! Tests for the 2026 serialization format. use super::{ - Compression, DeserializeLimits, SERDE_2026_MAGIC_PREFIX, deserialize_2026, - node_from_bytes_auto, node_to_bytes_serde_2026, serialize_2026, serialize_2026_random, - serialized_length_serde_2026, + Compression, DeserializeOptions, SERDE_2026_MAGIC_PREFIX, deserialize_2026, + node_from_bytes_auto, node_to_bytes_serde_2026, serialize_2026, serialized_length_serde_2026, }; use crate::allocator::Allocator; use crate::serde::{node_from_bytes_backrefs, node_to_bytes}; @@ -14,7 +13,7 @@ use rstest::rstest; // Double-round-trip, all strategies, full corpus // --------------------------------------------------------------------------- -/// For each legacy-hex tree: serialize with Fast, Compact, and Random, then +/// For each legacy-hex tree: serialize with Fast and Compact, then /// deserialize each, re-serialize, and assert identical bytes (idempotency) /// plus tree equivalence to the original. #[rstest] @@ -57,27 +56,25 @@ fn test_round_trip(#[case] hex: &str) { let mut allocator = Allocator::new(); let node = node_from_bytes_backrefs(&mut allocator, &bytes).unwrap(); let canonical = node_to_bytes(&allocator, node).unwrap(); - let limits = DeserializeLimits::default(); + let options = DeserializeOptions::default(); - let blobs: Vec<(&str, Vec)> = vec![ + let blobs: Vec<(&str, Compression, Vec)> = vec![ ( "fast", + Compression::Fast, serialize_2026(&allocator, node, Compression::Fast).unwrap(), ), ( "compact", + Compression::Compact, serialize_2026(&allocator, node, Compression::Compact).unwrap(), ), - ( - "random", - serialize_2026_random(&allocator, node, 12345).unwrap(), - ), ]; - for (label, blob) in &blobs { + for (label, compression, blob) in &blobs { // First trip: tree equivalence let mut a2 = Allocator::new(); - let n2 = deserialize_2026(&mut a2, blob, limits).unwrap(); + let n2 = deserialize_2026(&mut a2, blob, options).unwrap(); assert_eq!( node_to_bytes(&a2, n2).unwrap(), canonical, @@ -85,16 +82,7 @@ fn test_round_trip(#[case] hex: &str) { ); // Second trip: serialization idempotency (same compression level) - let blob2 = if *label == "random" { - serialize_2026_random(&a2, n2, 12345).unwrap() - } else { - let c = if *label == "fast" { - Compression::Fast - } else { - Compression::Compact - }; - serialize_2026(&a2, n2, c).unwrap() - }; + let blob2 = serialize_2026(&a2, n2, *compression).unwrap(); assert_eq!( blob, &blob2, "{label}: double round-trip mismatch for {hex}" @@ -103,23 +91,10 @@ fn test_round_trip(#[case] hex: &str) { // Compact must never be larger than Fast assert!( - blobs[1].1.len() <= blobs[0].1.len(), + blobs[1].2.len() <= blobs[0].2.len(), "compact ({}) > fast ({}) for {hex}", - blobs[1].1.len(), - blobs[0].1.len() - ); -} - -#[test] -fn test_random_different_seeds_diverge() { - let mut allocator = Allocator::new(); - let a = allocator.new_atom(b"shared").unwrap(); - let b = allocator.new_atom(b"other").unwrap(); - let p = allocator.new_pair(a, b).unwrap(); - let root = allocator.new_pair(p, a).unwrap(); - assert_ne!( - serialize_2026_random(&allocator, root, 1).unwrap(), - serialize_2026_random(&allocator, root, 2).unwrap(), + blobs[1].2.len(), + blobs[0].2.len() ); } @@ -142,11 +117,42 @@ fn test_random_different_seeds_diverge() { fn test_deserialize_rejects_malformed(#[case] data: &[u8], #[case] _desc: &str) { let mut allocator = Allocator::new(); assert!( - deserialize_2026(&mut allocator, data, DeserializeLimits::default()).is_err(), + deserialize_2026(&mut allocator, data, DeserializeOptions::default()).is_err(), "should reject: {_desc}" ); } +#[test] +fn test_strict_rejects_overlong_varints() { + let mut allocator = Allocator::new(); + let mut options = DeserializeOptions { + strict: true, + ..DeserializeOptions::default() + }; + + // group_count=1 encoded as two bytes, then a valid single atom payload. + let overlong_group_count = [0x80, 0x01, 0x01, b'A', 0x01, 0x02]; + assert!(deserialize_2026(&mut allocator, &overlong_group_count, options).is_err()); + + options.strict = false; + let decoded = deserialize_2026(&mut allocator, &overlong_group_count, options).unwrap(); + assert_eq!(allocator.atom(decoded).as_ref(), b"A"); +} + +#[test] +fn test_input_byte_limit_bounds_parser_work() { + let mut allocator = Allocator::new(); + let options = DeserializeOptions { + max_input_bytes: 3, + ..DeserializeOptions::default() + }; + + // This otherwise-valid one-atom blob needs 4 bytes of payload: + // group_count, length, atom byte, instruction_count. + let data = [0x01, 0x01, b'A', 0x01, 0x02]; + assert!(deserialize_2026(&mut allocator, &data, options).is_err()); +} + // --------------------------------------------------------------------------- // Magic prefix and auto-detection // --------------------------------------------------------------------------- @@ -168,7 +174,7 @@ fn check_auto(node_alloc: &Allocator, n: crate::allocator::NodePtr) { let classic = node_to_bytes(node_alloc, n).unwrap(); let mut a = Allocator::new(); - let decoded = node_from_bytes_auto(&mut a, &classic, DeserializeLimits::default()).unwrap(); + let decoded = node_from_bytes_auto(&mut a, &classic, DeserializeOptions::default()).unwrap(); assert_eq!( node_to_bytes(&a, decoded).unwrap(), classic, @@ -177,7 +183,7 @@ fn check_auto(node_alloc: &Allocator, n: crate::allocator::NodePtr) { let backrefs = crate::serde::node_to_bytes_backrefs(node_alloc, n).unwrap(); let mut a2 = Allocator::new(); - let decoded2 = node_from_bytes_auto(&mut a2, &backrefs, DeserializeLimits::default()).unwrap(); + let decoded2 = node_from_bytes_auto(&mut a2, &backrefs, DeserializeOptions::default()).unwrap(); assert_eq!( node_to_bytes(&a2, decoded2).unwrap(), classic, @@ -186,7 +192,7 @@ fn check_auto(node_alloc: &Allocator, n: crate::allocator::NodePtr) { let prefixed = node_to_bytes_serde_2026(node_alloc, n, Compression::default()).unwrap(); let mut a3 = Allocator::new(); - let decoded3 = node_from_bytes_auto(&mut a3, &prefixed, DeserializeLimits::default()).unwrap(); + let decoded3 = node_from_bytes_auto(&mut a3, &prefixed, DeserializeOptions::default()).unwrap(); assert_eq!( node_to_bytes(&a3, decoded3).unwrap(), classic, @@ -221,13 +227,13 @@ fn test_auto_detect() { #[test] fn test_auto_detect_rejects_empty() { let mut allocator = Allocator::new(); - assert!(node_from_bytes_auto(&mut allocator, b"", DeserializeLimits::default()).is_err()); + assert!(node_from_bytes_auto(&mut allocator, b"", DeserializeOptions::default()).is_err()); } #[test] fn test_auto_detect_classic_single_byte() { let mut a = Allocator::new(); - let node = node_from_bytes_auto(&mut a, &[0x01], DeserializeLimits::default()).unwrap(); + let node = node_from_bytes_auto(&mut a, &[0x01], DeserializeOptions::default()).unwrap(); assert_eq!(a.atom(node).as_ref(), b"\x01"); } diff --git a/src/serde_2026/varint.rs b/src/serde_2026/varint.rs index 311f6b4d..d24279d3 100644 --- a/src/serde_2026/varint.rs +++ b/src/serde_2026/varint.rs @@ -56,6 +56,18 @@ pub fn write_varint(w: &mut W, value: i64) -> std::io::Result<()> { panic!("Value too large to encode: {}", value); } +fn varint_size(value: i64) -> usize { + for leading_ones in 0..8 { + let total_value_bits = 7 + 7 * leading_ones; + let min_value = -(1i64 << (total_value_bits - 1)); + let max_value = (1i64 << (total_value_bits - 1)) - 1; + if value >= min_value && value <= max_value { + return leading_ones + 1; + } + } + panic!("Value too large to encode: {}", value); +} + /// Encode a signed integer to bytes using variable-length encoding (varint). #[allow(dead_code)] pub fn encode_varint(value: i64) -> Vec { @@ -64,8 +76,8 @@ pub fn encode_varint(value: i64) -> Vec { buf } -/// Decode a signed integer from a byte stream using variable-length encoding. -pub fn decode_varint(r: &mut R) -> Result { +/// Decode a signed integer, optionally rejecting non-minimal encodings. +pub fn decode_varint(r: &mut R, strict: bool) -> Result { let mut first_byte_buf = [0u8; 1]; r.read_exact(&mut first_byte_buf) .map_err(|_| EvalErr::SerializationError)?; @@ -100,12 +112,18 @@ pub fn decode_varint(r: &mut R) -> Result { // Convert from two's complement to signed let sign_bit = 1u64 << (total_value_bits - 1); - if unsigned_value >= sign_bit { + let value = if unsigned_value >= sign_bit { // Negative value: subtract 2^total_value_bits - Ok(unsigned_value as i64 - (1i64 << total_value_bits)) + unsigned_value as i64 - (1i64 << total_value_bits) } else { - Ok(unsigned_value as i64) + unsigned_value as i64 + }; + + if strict && varint_size(value) != leading_ones + 1 { + return Err(EvalErr::SerializationError); } + + Ok(value) } #[cfg(test)] @@ -131,42 +149,67 @@ mod tests { #[test] fn test_decode_varint() { - assert_eq!(decode_varint(&mut Cursor::new(&[0x00][..])).unwrap(), 0); - assert_eq!(decode_varint(&mut Cursor::new(&[0x01][..])).unwrap(), 1); - assert_eq!(decode_varint(&mut Cursor::new(&[0x7f][..])).unwrap(), -1); assert_eq!( - decode_varint(&mut Cursor::new(&[0x80, 0x40][..])).unwrap(), + decode_varint(&mut Cursor::new(&[0x00][..]), false).unwrap(), + 0 + ); + assert_eq!( + decode_varint(&mut Cursor::new(&[0x01][..]), false).unwrap(), + 1 + ); + assert_eq!( + decode_varint(&mut Cursor::new(&[0x7f][..]), false).unwrap(), + -1 + ); + assert_eq!( + decode_varint(&mut Cursor::new(&[0x80, 0x40][..]), false).unwrap(), 64 ); assert_eq!( - decode_varint(&mut Cursor::new(&[0x9f, 0xff][..])).unwrap(), + decode_varint(&mut Cursor::new(&[0x9f, 0xff][..]), false).unwrap(), 8191 ); assert_eq!( - decode_varint(&mut Cursor::new(&[0xbf, 0xbf][..])).unwrap(), + decode_varint(&mut Cursor::new(&[0xbf, 0xbf][..]), false).unwrap(), -65 ); } #[test] fn test_decode_rejects_invalid_prefix() { - assert!(decode_varint(&mut Cursor::new(&[0xff][..])).is_err()); - assert!(decode_varint(&mut Cursor::new(&[0xff, 0x00][..])).is_err()); + assert!(decode_varint(&mut Cursor::new(&[0xff][..]), false).is_err()); + assert!(decode_varint(&mut Cursor::new(&[0xff, 0x00][..]), false).is_err()); } #[test] fn test_decode_rejects_truncated_multibyte() { // 2-byte varint (0x80 prefix) with missing second byte - assert!(decode_varint(&mut Cursor::new(&[0x80][..])).is_err()); + assert!(decode_varint(&mut Cursor::new(&[0x80][..]), false).is_err()); // 3-byte varint (0xc0 prefix) with only 1 extra byte - assert!(decode_varint(&mut Cursor::new(&[0xc0, 0x00][..])).is_err()); + assert!(decode_varint(&mut Cursor::new(&[0xc0, 0x00][..]), false).is_err()); // 4-byte varint (0xe0 prefix) with only 2 extra bytes - assert!(decode_varint(&mut Cursor::new(&[0xe0, 0x00, 0x00][..])).is_err()); + assert!(decode_varint(&mut Cursor::new(&[0xe0, 0x00, 0x00][..]), false).is_err()); } #[test] fn test_decode_empty_input() { - assert!(decode_varint(&mut Cursor::new(&[][..])).is_err()); + assert!(decode_varint(&mut Cursor::new(&[][..]), false).is_err()); + } + + #[test] + fn test_strict_decode_rejects_overlong_encodings() { + // 0 and -1 fit in a single byte, but these encodings use two bytes. + assert_eq!( + decode_varint(&mut Cursor::new(&[0x80, 0x00][..]), false).unwrap(), + 0 + ); + assert!(decode_varint(&mut Cursor::new(&[0x80, 0x00][..]), true).is_err()); + + assert_eq!( + decode_varint(&mut Cursor::new(&[0xbf, 0xff][..]), false).unwrap(), + -1 + ); + assert!(decode_varint(&mut Cursor::new(&[0xbf, 0xff][..]), true).is_err()); } #[test] @@ -175,7 +218,7 @@ mod tests { 0, 1, -1, 63, -64, 64, -65, 8191, -8192, 8192, -8193, 1048575, -1048576, ] { let encoded = encode_varint(val); - let decoded = decode_varint(&mut Cursor::new(&encoded)).unwrap(); + let decoded = decode_varint(&mut Cursor::new(&encoded), false).unwrap(); assert_eq!(val, decoded, "roundtrip failed for {val}"); } } diff --git a/wheel/python/clvm_rs/serde.py b/wheel/python/clvm_rs/serde.py index 54e50f94..e75ada06 100644 --- a/wheel/python/clvm_rs/serde.py +++ b/wheel/python/clvm_rs/serde.py @@ -61,6 +61,7 @@ def deserialize( *, max_atom_len: int | None = None, max_input_bytes: int | None = None, + strict: bool = False, ): """Deserialize bytes into a LazyNode. @@ -70,6 +71,7 @@ def deserialize( Keyword-only limits (applied to "2026" and "auto" paths): max_atom_len: largest single atom in bytes (default ~1 MB) max_input_bytes: total input budget in bytes (default ~10 MB) + strict: reject overlong varint encodings """ fn = _DESERIALIZERS.get(fmt) if fn is None: @@ -80,6 +82,7 @@ def deserialize( kwargs["max_atom_len"] = max_atom_len if max_input_bytes is not None: kwargs["max_input_bytes"] = max_input_bytes + kwargs["strict"] = strict return fn(blob, **kwargs) return fn(blob) diff --git a/wheel/src/api.rs b/wheel/src/api.rs index 12d2cc37..1760cd1d 100644 --- a/wheel/src/api.rs +++ b/wheel/src/api.rs @@ -17,7 +17,7 @@ use clvmr::serde::{ parse_triples, serialized_length_from_bytes, }; use clvmr::serde_2026::{ - Compression, DeserializeLimits, SERDE_2026_MAGIC_PREFIX, deserialize_2026, + Compression, DeserializeOptions, SERDE_2026_MAGIC_PREFIX, deserialize_2026, node_from_bytes_auto, serialize_2026, }; use pyo3::prelude::*; @@ -111,27 +111,33 @@ fn deser_backrefs(blob: &[u8]) -> PyResult { Ok(LazyNode::new(Rc::new(a), node)) } -fn make_limits(max_atom_len: Option, max_input_bytes: Option) -> DeserializeLimits { - let mut limits = DeserializeLimits::default(); +fn make_deserialize_options( + max_atom_len: Option, + max_input_bytes: Option, + strict: bool, +) -> DeserializeOptions { + let mut options = DeserializeOptions::default(); if let Some(v) = max_atom_len { - limits.max_atom_len = v; + options.max_atom_len = v; } if let Some(v) = max_input_bytes { - limits.max_input_bytes = v; + options.max_input_bytes = v; } - limits + options.strict = strict; + options } #[pyfunction] -#[pyo3(signature = (blob, *, max_atom_len=None, max_input_bytes=None))] +#[pyo3(signature = (blob, *, max_atom_len=None, max_input_bytes=None, strict=false))] fn deser_2026( blob: &[u8], max_atom_len: Option, max_input_bytes: Option, + strict: bool, ) -> PyResult { let mut a = Allocator::new(); - let limits = make_limits(max_atom_len, max_input_bytes); - let node = deserialize_2026(&mut a, blob, limits).map_err(eval_to_py)?; + let options = make_deserialize_options(max_atom_len, max_input_bytes, strict); + let node = deserialize_2026(&mut a, blob, options).map_err(eval_to_py)?; Ok(LazyNode::new(Rc::new(a), node)) } @@ -141,15 +147,16 @@ fn deser_2026( /// treated as serde_2026; otherwise the backrefs deserializer is used (which /// also handles plain classic format). #[pyfunction] -#[pyo3(signature = (blob, *, max_atom_len=None, max_input_bytes=None))] +#[pyo3(signature = (blob, *, max_atom_len=None, max_input_bytes=None, strict=false))] fn deser_auto( blob: &[u8], max_atom_len: Option, max_input_bytes: Option, + strict: bool, ) -> PyResult { let mut a = Allocator::new(); - let limits = make_limits(max_atom_len, max_input_bytes); - let node = node_from_bytes_auto(&mut a, blob, limits).map_err(eval_to_py)?; + let options = make_deserialize_options(max_atom_len, max_input_bytes, strict); + let node = node_from_bytes_auto(&mut a, blob, options).map_err(eval_to_py)?; Ok(LazyNode::new(Rc::new(a), node)) } diff --git a/wheel/src/lazy_node.rs b/wheel/src/lazy_node.rs index 7646cb4a..448bba86 100644 --- a/wheel/src/lazy_node.rs +++ b/wheel/src/lazy_node.rs @@ -47,6 +47,8 @@ impl LazyNode { } } + // Rust-side serializers need direct access to the backing allocator/node. + // These are intentionally crate-local; Python only sees the atom/pair view. pub(crate) fn allocator(&self) -> &Allocator { &self.allocator } From 412eaf1b1594aa7dabfa00b4daf7c8d091a0058c Mon Sep 17 00:00:00 2001 From: Richard Kiss Date: Thu, 30 Apr 2026 00:09:10 -0700 Subject: [PATCH 05/15] serde_2026: remove compact strategy from PR Keep the serde_2026 serializer on the left-first strategy for review while preserving the strategy hook for a future context-aware compact implementation. Made-with: Cursor --- docs/serde-2026.md | 4 + fuzz/fuzz_targets/serde_2026.rs | 23 ++--- src/serde_2026/mod.rs | 12 +-- src/serde_2026/ser.rs | 8 +- src/serde_2026/ser_optimized.rs | 144 --------------------------- src/serde_2026/strategy.rs | 1 + src/serde_2026/tests.rs | 31 ++---- wheel/python/clvm_rs/serde.py | 5 +- wheel/python/tests/test_serialize.py | 10 +- wheel/src/api.rs | 6 +- 10 files changed, 35 insertions(+), 209 deletions(-) delete mode 100644 src/serde_2026/ser_optimized.rs diff --git a/docs/serde-2026.md b/docs/serde-2026.md index 822a8815..3cac4acb 100644 --- a/docs/serde-2026.md +++ b/docs/serde-2026.md @@ -90,6 +90,10 @@ second is index 1, etc.). A negative instruction references a pair that was previously constructed during this same decode, enabling shared sub-trees without re-encoding them. +The current serializer emits left-first cons instructions (`1`). Decoders accept +right-first cons instructions (`-1`) so future serializers can choose different +pair visit orders without changing the wire format. + After all instructions execute, the stack must contain exactly one item: the root node. diff --git a/fuzz/fuzz_targets/serde_2026.rs b/fuzz/fuzz_targets/serde_2026.rs index 2c96a4f9..9a520a9f 100644 --- a/fuzz/fuzz_targets/serde_2026.rs +++ b/fuzz/fuzz_targets/serde_2026.rs @@ -29,18 +29,11 @@ fn roundtrip_check(label: &str, a: &Allocator, original: NodePtr, blob: &[u8]) { } fn check_tree(a: &Allocator, node: NodePtr) { - let fast = serialize_2026(a, node, Compression::Fast).expect("Fast failed"); - let compact = serialize_2026(a, node, Compression::Compact).expect("Compact failed"); - - roundtrip_check("fast", a, node, &fast); - roundtrip_check("compact", a, node, &compact); - - assert!( - compact.len() <= fast.len(), - "compact ({}) > fast ({})", - compact.len(), - fast.len() - ); + for (label, compression) in [("fast", Compression::Fast)] { + let blob = + serialize_2026(a, node, compression).unwrap_or_else(|_| panic!("{label} failed")); + roundtrip_check(label, a, node, &blob); + } } fuzz_target!(|input: FuzzInput| -> Corpus { @@ -57,10 +50,10 @@ fuzz_target!(|input: FuzzInput| -> Corpus { check_tree(&program.allocator, program.tree); let mut a2 = Allocator::new(); - let blob = serialize_2026(&program.allocator, program.tree, Compression::Compact) - .expect("Compact failed"); + let blob = serialize_2026(&program.allocator, program.tree, Compression::Fast) + .expect("Fast failed"); let decoded = deserialize_2026(&mut a2, &blob, DeserializeOptions::default()) - .expect("deserialize compact failed"); + .expect("deserialize fast failed"); assert_eq!( canonical(&program.allocator, program.tree), canonical(&a2, decoded) diff --git a/src/serde_2026/mod.rs b/src/serde_2026/mod.rs index 64098434..12f18c30 100644 --- a/src/serde_2026/mod.rs +++ b/src/serde_2026/mod.rs @@ -16,13 +16,12 @@ //! - `>= 2` (positive varint N): Push atom at index N-2 //! - `<= -2` (negative varint N): Push already-constructed pair at index -N-2 //! -//! The default serializer always uses opcode `1` (left-first cons). The -//! pair-optimized serializer uses both `1` and `-1` to steer traversal order, -//! reducing the number of pair back-references needed. +//! The current serializer always uses opcode `1` (left-first cons). The format +//! accepts `-1` so future serializers can choose right-first traversal when +//! that helps compression. mod de; mod ser; -mod ser_optimized; mod strategy; mod varint; @@ -42,14 +41,11 @@ const MAX_INDEX: usize = i32::MAX as usize; /// Controls the serialization strategy for pair visit order. /// /// - `Fast` (0): left-first traversal. O(N) serialization. -/// - `Compact` (1): tree-DP to minimize output size by optimizing which -/// pairs land in the 1-byte varint tier. O(N x min(subtree_size, 64)). #[derive(Copy, Clone, Debug, Default, Eq, PartialEq)] #[repr(u8)] pub enum Compression { - Fast = 0, #[default] - Compact = 1, + Fast = 0, } pub use de::{ diff --git a/src/serde_2026/ser.rs b/src/serde_2026/ser.rs index f73bedc6..aaf654bf 100644 --- a/src/serde_2026/ser.rs +++ b/src/serde_2026/ser.rs @@ -11,7 +11,7 @@ use super::varint::write_varint; /// Intermediate state after interning and sorting atoms. /// -/// Both the default and pair-optimized serializers need this same prep work. +/// Serialization strategies share this prep work. pub(super) struct SerializerState { pub tree: InternedTree, pub sorted_no_nil: Vec, @@ -291,8 +291,6 @@ fn cross_allocator_eq(a: &Allocator, na: NodePtr, b: &Allocator, nb: NodePtr) -> // --- Public entry points --- use super::Compression; -use super::ser_optimized::DpOptimized; - /// Serialize a CLVM node to the 2026 format. pub fn serialize_2026_to_stream( allocator: &Allocator, @@ -303,10 +301,6 @@ pub fn serialize_2026_to_stream( let state = SerializerState::new(allocator, node)?; match compression { Compression::Fast => serialize_with_strategy(&state, &LeftFirst, writer), - Compression::Compact => { - let dp = DpOptimized::new(&state); - serialize_with_strategy(&state, &dp, writer) - } } } diff --git a/src/serde_2026/ser_optimized.rs b/src/serde_2026/ser_optimized.rs deleted file mode 100644 index 6f4376b8..00000000 --- a/src/serde_2026/ser_optimized.rs +++ /dev/null @@ -1,144 +0,0 @@ -use super::ser::SerializerState; -use super::strategy::{Direction, VisitStrategy}; - -/// Tree-DP strategy: pick left-first vs right-first per pair to maximise the -/// number of pair back-references that fit in the 1-byte varint tier. -/// -/// Complexity: O(N x min(subtree_size, 64)) to build; O(1) per pair at -/// emit time. -pub(super) struct DpOptimized { - stsize: Vec, - go_left: Vec>, -} - -impl DpOptimized { - const TIER1_SLOTS: usize = 63; - - pub fn new(state: &SerializerState) -> Self { - let pair_count = state.tree.pairs.len(); - - let mut pair_ref_count = vec![0u32; pair_count]; - if state.root_index < 0 { - pair_ref_count[(-state.root_index - 1) as usize] += 1; - } - for &(left, right) in &state.pairs { - for idx in [left, right] { - if idx < 0 { - pair_ref_count[(-idx - 1) as usize] += 1; - } - } - } - - let mut stsize = vec![0usize; pair_count]; - let mut dp: Vec> = Vec::with_capacity(pair_count); - let mut go_left: Vec> = Vec::with_capacity(pair_count); - - for (i, &(left, right)) in state.pairs.iter().enumerate() { - let savings: u64 = if pair_ref_count[i] > 1 { - (pair_ref_count[i] - 1) as u64 - } else { - 0 - }; - - let l_size = if left < 0 { - stsize[(-left - 1) as usize] - } else { - 0 - }; - let r_size = if right < 0 { - stsize[(-right - 1) as usize] - } else { - 0 - }; - let my_size = 1 + l_size + r_size; - stsize[i] = my_size; - - let max_k = my_size.min(Self::TIER1_SLOTS + 1); - let mut my_dp = vec![0u64; max_k + 1]; - let mut my_go = vec![true; max_k + 1]; - - let child_dp = |child: i32, budget: usize| -> u64 { - if child >= 0 { - return 0; - } - let ci = (-child - 1) as usize; - let arr = &dp[ci]; - arr[budget.min(arr.len() - 1)] - }; - - for k in 1..=max_k { - let p_cheap = k >= my_size; - let cb = if p_cheap { k - 1 } else { k }; - - let l_lf = cb.min(l_size); - let r_lf = (cb - l_lf).min(r_size); - let val_lf = child_dp(left, l_lf) + child_dp(right, r_lf); - - let r_rf = cb.min(r_size); - let l_rf = (cb - r_rf).min(l_size); - let val_rf = child_dp(left, l_rf) + child_dp(right, r_rf); - - let p_sav = if p_cheap { savings } else { 0 }; - if val_lf >= val_rf { - my_dp[k] = p_sav + val_lf; - my_go[k] = true; - } else { - my_dp[k] = p_sav + val_rf; - my_go[k] = false; - } - } - - dp.push(my_dp); - go_left.push(my_go); - } - - drop(dp); - Self { stsize, go_left } - } -} - -impl VisitStrategy for DpOptimized { - type NodeCtx = usize; - - fn root_ctx(&self, state: &SerializerState) -> usize { - Self::TIER1_SLOTS.min(if state.root_index < 0 { - self.stsize[(-state.root_index - 1) as usize] - } else { - 0 - }) - } - - fn decide( - &self, - state: &SerializerState, - pair_idx: usize, - budget: usize, - ) -> (Direction, usize, usize) { - let (left, right) = state.pairs[pair_idx]; - let l_size = if left < 0 { - self.stsize[(-left - 1) as usize] - } else { - 0 - }; - let r_size = if right < 0 { - self.stsize[(-right - 1) as usize] - } else { - 0 - }; - let my_size = 1 + l_size + r_size; - - let k = budget.min(my_size).min(self.go_left[pair_idx].len() - 1); - let p_cheap = k >= my_size; - let cb = if p_cheap { k - 1 } else { k }; - - if self.go_left[pair_idx][k] { - let l_b = cb.min(l_size); - let r_b = (cb - l_b).min(r_size); - (Direction::LeftFirst, l_b, r_b) - } else { - let r_b = cb.min(r_size); - let l_b = (cb - r_b).min(l_size); - (Direction::RightFirst, l_b, r_b) - } - } -} diff --git a/src/serde_2026/strategy.rs b/src/serde_2026/strategy.rs index 9998339a..f41ae534 100644 --- a/src/serde_2026/strategy.rs +++ b/src/serde_2026/strategy.rs @@ -11,6 +11,7 @@ use super::ser::SerializerState; #[derive(Copy, Clone, Debug, Eq, PartialEq)] pub enum Direction { LeftFirst, + #[allow(dead_code)] RightFirst, } diff --git a/src/serde_2026/tests.rs b/src/serde_2026/tests.rs index 8ee642be..b7127752 100644 --- a/src/serde_2026/tests.rs +++ b/src/serde_2026/tests.rs @@ -13,9 +13,9 @@ use rstest::rstest; // Double-round-trip, all strategies, full corpus // --------------------------------------------------------------------------- -/// For each legacy-hex tree: serialize with Fast and Compact, then -/// deserialize each, re-serialize, and assert identical bytes (idempotency) -/// plus tree equivalence to the original. +/// For each legacy-hex tree: serialize with each strategy, then deserialize, +/// re-serialize, and assert identical bytes (idempotency) plus tree equivalence +/// to the original. #[rstest] #[case("00")] // nil #[case("80")] // empty atom (canonical nil) @@ -58,18 +58,11 @@ fn test_round_trip(#[case] hex: &str) { let canonical = node_to_bytes(&allocator, node).unwrap(); let options = DeserializeOptions::default(); - let blobs: Vec<(&str, Compression, Vec)> = vec![ - ( - "fast", - Compression::Fast, - serialize_2026(&allocator, node, Compression::Fast).unwrap(), - ), - ( - "compact", - Compression::Compact, - serialize_2026(&allocator, node, Compression::Compact).unwrap(), - ), - ]; + let blobs: Vec<(&str, Compression, Vec)> = vec![( + "fast", + Compression::Fast, + serialize_2026(&allocator, node, Compression::Fast).unwrap(), + )]; for (label, compression, blob) in &blobs { // First trip: tree equivalence @@ -88,14 +81,6 @@ fn test_round_trip(#[case] hex: &str) { "{label}: double round-trip mismatch for {hex}" ); } - - // Compact must never be larger than Fast - assert!( - blobs[1].2.len() <= blobs[0].2.len(), - "compact ({}) > fast ({}) for {hex}", - blobs[1].2.len(), - blobs[0].2.len() - ); } // --------------------------------------------------------------------------- diff --git a/wheel/python/clvm_rs/serde.py b/wheel/python/clvm_rs/serde.py index e75ada06..99a86a51 100644 --- a/wheel/python/clvm_rs/serde.py +++ b/wheel/python/clvm_rs/serde.py @@ -7,7 +7,7 @@ node = deserialize(blob) # auto-detects format out = serialize(node, "2026") # serde_2026 with magic prefix out = serialize(node, "legacy") # classic format - out = serialize(node, "2026", level=0) # serde_2026, fast (no pair optimization) + out = serialize(node, "2026", level=0) # serde_2026, fast left-first traversal Converting a Python CLVM tree to a Rust-backed LazyNode (with interning): @@ -87,14 +87,13 @@ def deserialize( return fn(blob) -def serialize(node, fmt: str = "2026", *, level: int = 1) -> bytes: +def serialize(node, fmt: str = "2026", *, level: int = 0) -> bytes: """Serialize a LazyNode to bytes. Formats: "2026" (default), "legacy", "backrefs". For "2026" format: level=0: left-first traversal (fast) - level=1: pair-optimized DP traversal (smaller output, default) """ fn = _SERIALIZERS.get(fmt) if fn is None: diff --git a/wheel/python/tests/test_serialize.py b/wheel/python/tests/test_serialize.py index 76fced05..fcb15584 100644 --- a/wheel/python/tests/test_serialize.py +++ b/wheel/python/tests/test_serialize.py @@ -344,15 +344,15 @@ def test_many_distinct_atoms(self): p2 = Program.from_bytes(blob) self.assertEqual(tree, p2) - def test_compression_level_0_vs_1(self): - """Level 1 (pair-optimized) should produce <= bytes compared to level 0.""" + def test_2026_rejects_unknown_compression_level(self): + """Only the left-first serializer is currently exposed.""" shared = Program.to([1, 2, 3]) tree = Program.to([shared, shared, shared, shared]) lazy = clvm_tree_to_lazy_node(tree) blob_0 = ser_2026(lazy, level=0) - blob_1 = ser_2026(lazy, level=1) - self.assertLessEqual(len(blob_1), len(blob_0)) - self.assertEqual(Program.from_bytes(blob_0), Program.from_bytes(blob_1)) + with self.assertRaises(ValueError): + ser_2026(lazy, level=1) + self.assertEqual(Program.from_bytes(blob_0), tree) def test_mixed_tree_with_large_atoms(self): """Mix of large atoms, small atoms, and nested structure.""" diff --git a/wheel/src/api.rs b/wheel/src/api.rs index 1760cd1d..c9d2bde5 100644 --- a/wheel/src/api.rs +++ b/wheel/src/api.rs @@ -177,16 +177,14 @@ fn ser_backrefs(py: Python, node: &LazyNode) -> PyResult> { /// Serialize to serde_2026 format (always includes the magic prefix). /// /// - `level=0`: left-first traversal (fast) -/// - `level=1`: pair-optimized DP traversal (smaller output, default) #[pyfunction] -#[pyo3(signature = (node, *, level=1))] +#[pyo3(signature = (node, *, level=0))] fn ser_2026(py: Python, node: &LazyNode, level: u32) -> PyResult> { let compression = match level { 0 => Compression::Fast, - 1 => Compression::Compact, _ => { return Err(pyo3::exceptions::PyValueError::new_err( - "ser_2026: level must be 0 or 1", + "ser_2026: level must be 0", )); } }; From 2104989d4a9fc6e21e1789c71bf8cb4599ab31cf Mon Sep 17 00:00:00 2001 From: Richard Kiss Date: Thu, 30 Apr 2026 11:24:23 -0700 Subject: [PATCH 06/15] serde_2026: fix compact removal CI fallout Update the fuzz target and Python tests to reflect the remaining fast strategy after compact was removed from the PR. Made-with: Cursor --- fuzz/fuzz_targets/serde_2026.rs | 8 ++++++-- wheel/python/clvm_rs/clvm_rs.pyi | 2 +- wheel/python/tests/test_serialize.py | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/fuzz/fuzz_targets/serde_2026.rs b/fuzz/fuzz_targets/serde_2026.rs index 9a520a9f..96d5fedd 100644 --- a/fuzz/fuzz_targets/serde_2026.rs +++ b/fuzz/fuzz_targets/serde_2026.rs @@ -9,7 +9,7 @@ use libfuzzer_sys::{Corpus, fuzz_target}; #[derive(arbitrary::Arbitrary, Debug)] enum FuzzInput { Bytes(Vec), - Tree(ArbitraryClvmTree<10_000, true>), + Tree(Box>), } fn canonical(a: &Allocator, node: NodePtr) -> Vec { @@ -29,13 +29,17 @@ fn roundtrip_check(label: &str, a: &Allocator, original: NodePtr, blob: &[u8]) { } fn check_tree(a: &Allocator, node: NodePtr) { - for (label, compression) in [("fast", Compression::Fast)] { + for (label, compression) in serialization_strategies() { let blob = serialize_2026(a, node, compression).unwrap_or_else(|_| panic!("{label} failed")); roundtrip_check(label, a, node, &blob); } } +fn serialization_strategies() -> impl Iterator { + std::iter::once(("fast", Compression::Fast)) +} + fuzz_target!(|input: FuzzInput| -> Corpus { match input { FuzzInput::Bytes(data) => { diff --git a/wheel/python/clvm_rs/clvm_rs.pyi b/wheel/python/clvm_rs/clvm_rs.pyi index 85a71354..d52c048a 100644 --- a/wheel/python/clvm_rs/clvm_rs.pyi +++ b/wheel/python/clvm_rs/clvm_rs.pyi @@ -32,7 +32,7 @@ def ser_backrefs(node: "LazyNode") -> bytes: ... def ser_2026( node: "LazyNode", *, - level: int = 1, + level: int = 0, ) -> bytes: ... # --- Tree conversion --- diff --git a/wheel/python/tests/test_serialize.py b/wheel/python/tests/test_serialize.py index fcb15584..4d0396f3 100644 --- a/wheel/python/tests/test_serialize.py +++ b/wheel/python/tests/test_serialize.py @@ -274,7 +274,7 @@ def test_large_atom(self): class Serde2026RoundTripTest(unittest.TestCase): """Comprehensive serde_2026 round-trip tests.""" - def check_2026_roundtrip(self, tree, levels=(0, 1)): + def check_2026_roundtrip(self, tree, levels=(0,)): """Serialize to serde_2026, deserialize, check equality.""" p = Program.to(tree) for level in levels: From e1f1c9c50c60e3ecb5cca67849f8aab02615523c Mon Sep 17 00:00:00 2001 From: Richard Kiss Date: Sun, 3 May 2026 16:34:02 -0700 Subject: [PATCH 07/15] Remove unnecessary crate exports --- wheel/src/lazy_node.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wheel/src/lazy_node.rs b/wheel/src/lazy_node.rs index 448bba86..e103cced 100644 --- a/wheel/src/lazy_node.rs +++ b/wheel/src/lazy_node.rs @@ -49,11 +49,11 @@ impl LazyNode { // Rust-side serializers need direct access to the backing allocator/node. // These are intentionally crate-local; Python only sees the atom/pair view. - pub(crate) fn allocator(&self) -> &Allocator { + pub fn allocator(&self) -> &Allocator { &self.allocator } - pub(crate) fn node(&self) -> NodePtr { + pub fn node(&self) -> NodePtr { self.node } } From af89662fd3ccfaf7d322254c200160afe46389f1 Mon Sep 17 00:00:00 2001 From: Richard Kiss Date: Sun, 3 May 2026 16:47:59 -0700 Subject: [PATCH 08/15] serde_2026: add varint fuzzer, atom-table unit test, and fix deser_2026 prefix - Add a `decode_varint` fuzz target (`serde-2026-varint`). Exercises the non-strict and strict decoders; checks that any value the non-strict path accepts re-encodes to a canonical (minimal) form which decodes identically in strict mode and is no longer than the original input. - Re-export `decode_varint` / `encode_varint` (with `#[doc(hidden)]`) so the fuzzer can call them through the public crate surface. - Add a unit test for `write_atom_table` that confirms atoms of equal length are coalesced into a single repeated-length group while atoms of different lengths are emitted as separate groups. - Fix `deser_2026`: it now strips `SERDE_2026_MAGIC_PREFIX` before calling the underlying decoder, so it round-trips with `ser_2026` (which always emits the prefix). A `ValueError` is raised if the prefix is missing. Adds a Python test for the symmetry property. Made-with: Cursor --- fuzz/Cargo.toml | 6 ++ fuzz/fuzz_targets/serde_2026_varint.rs | 46 +++++++++++++++ src/serde_2026/mod.rs | 2 + src/serde_2026/tests.rs | 82 ++++++++++++++++++++++++++ wheel/python/tests/test_serialize.py | 15 +++++ wheel/src/api.rs | 13 +++- 6 files changed, 163 insertions(+), 1 deletion(-) create mode 100644 fuzz/fuzz_targets/serde_2026_varint.rs diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index 98c29b94..385d9871 100644 --- a/fuzz/Cargo.toml +++ b/fuzz/Cargo.toml @@ -154,3 +154,9 @@ name = "serde-2026" path = "fuzz_targets/serde_2026.rs" test = false doc = false + +[[bin]] +name = "serde-2026-varint" +path = "fuzz_targets/serde_2026_varint.rs" +test = false +doc = false diff --git a/fuzz/fuzz_targets/serde_2026_varint.rs b/fuzz/fuzz_targets/serde_2026_varint.rs new file mode 100644 index 00000000..62aaef55 --- /dev/null +++ b/fuzz/fuzz_targets/serde_2026_varint.rs @@ -0,0 +1,46 @@ +#![no_main] + +use clvmr::serde_2026::{decode_varint, encode_varint}; +use libfuzzer_sys::fuzz_target; +use std::io::Cursor; + +fuzz_target!(|data: &[u8]| { + // Non-strict decode must never panic on arbitrary input. + let mut cur = Cursor::new(data); + let non_strict = decode_varint(&mut cur, false); + + if let Ok(v) = non_strict { + let consumed = cur.position() as usize; + + // The canonical (minimal) encoding must: + // - decode in strict mode to the same value + // - never be longer than the bytes we just consumed + // (strict-mode rejections are exactly the "overlong" case) + let canonical = encode_varint(v); + assert!( + canonical.len() <= consumed, + "canonical encoding of {v} is {} bytes but input took {consumed}", + canonical.len(), + ); + let strict_canonical = decode_varint(&mut Cursor::new(&canonical[..]), true) + .expect("canonical encoding must decode under strict"); + assert_eq!(v, strict_canonical, "canonical roundtrip mismatch"); + + // Strict-mode decode of the original input either matches the + // non-strict value (canonical input) or errors (overlong / non-canonical). + match decode_varint(&mut Cursor::new(data), true) { + Ok(strict_v) => assert_eq!(strict_v, v, "strict and non-strict disagree"), + Err(_) => { + // Overlong-but-valid-as-non-strict encoding. Confirm it really is + // non-canonical: the canonical form must be shorter. + assert!( + canonical.len() < consumed, + "strict rejected a canonical-length encoding" + ); + } + } + } else { + // If non-strict failed, strict must also fail (strict is stricter). + assert!(decode_varint(&mut Cursor::new(data), true).is_err()); + } +}); diff --git a/src/serde_2026/mod.rs b/src/serde_2026/mod.rs index 12f18c30..2d706127 100644 --- a/src/serde_2026/mod.rs +++ b/src/serde_2026/mod.rs @@ -53,3 +53,5 @@ pub use de::{ serialized_length_serde_2026, }; pub use ser::{node_to_bytes_serde_2026, serialize_2026, serialize_2026_to_stream}; +#[doc(hidden)] +pub use varint::{decode_varint, encode_varint}; diff --git a/src/serde_2026/tests.rs b/src/serde_2026/tests.rs index b7127752..a84a2acc 100644 --- a/src/serde_2026/tests.rs +++ b/src/serde_2026/tests.rs @@ -281,3 +281,85 @@ fn test_serialized_length() { assert!(serialized_length_serde_2026(b"\x80").is_err()); assert!(serialized_length_serde_2026(b"").is_err()); } + +// --------------------------------------------------------------------------- +// write_atom_table +// --------------------------------------------------------------------------- + +/// Verify the wire-level structure of `write_atom_table`: atoms of the same +/// length are emitted as a single repeated-length group (negative length +/// varint + count), and atoms of different lengths split into separate groups. +/// The exact ordering of atoms inside a length group depends on the frequency +/// sort; this test only inspects structure, not order. +#[test] +fn test_write_atom_table_groups_by_length() { + use super::ser::{SerializerState, write_atom_table}; + use super::varint::decode_varint; + use std::io::{Cursor, Read}; + + // Tree with three 3-byte atoms and one 5-byte atom — every atom is forced + // into the table (no nil, no duplicates). + let mut a = Allocator::new(); + let foo = a.new_atom(b"foo").unwrap(); + let bar = a.new_atom(b"bar").unwrap(); + let baz = a.new_atom(b"baz").unwrap(); + let hello = a.new_atom(b"hello").unwrap(); + let p = a.new_pair(foo, bar).unwrap(); + let q = a.new_pair(baz, hello).unwrap(); + let root = a.new_pair(p, q).unwrap(); + + let state = SerializerState::new(&a, root).unwrap(); + let mut buf = Vec::new(); + write_atom_table(&mut buf, &state.tree, &state.sorted_no_nil).unwrap(); + + let mut cursor = Cursor::new(&buf[..]); + let group_count = decode_varint(&mut cursor, false).unwrap(); + assert_eq!(group_count, 2, "expected 2 length-groups (3, 5)"); + + let mut total_atoms = 0usize; + let mut total_bytes = 0usize; + let mut saw_repeated_3 = false; + let mut saw_singleton_5 = false; + for _ in 0..group_count { + let length_val = decode_varint(&mut cursor, false).unwrap(); + if length_val < 0 { + // multi-atom group: -length, count, then count*length raw bytes + let len = (-length_val) as usize; + let count = decode_varint(&mut cursor, false).unwrap() as usize; + assert!(len > 0 && count > 1); + let mut bytes = vec![0u8; len * count]; + cursor.read_exact(&mut bytes).unwrap(); + total_atoms += count; + total_bytes += bytes.len(); + if len == 3 && count == 3 { + saw_repeated_3 = true; + } + } else { + // singleton group: positive length, then `length` raw bytes + let len = length_val as usize; + let mut bytes = vec![0u8; len]; + cursor.read_exact(&mut bytes).unwrap(); + total_atoms += 1; + total_bytes += bytes.len(); + if len == 5 { + saw_singleton_5 = true; + } + } + } + + assert!( + saw_repeated_3, + "expected the three 3-byte atoms to share a group" + ); + assert!( + saw_singleton_5, + "expected the 5-byte atom as a singleton group" + ); + assert_eq!(total_atoms, 4); + assert_eq!(total_bytes, 3 * 3 + 5); + assert_eq!( + cursor.position() as usize, + buf.len(), + "all bytes of the atom table should be consumed" + ); +} diff --git a/wheel/python/tests/test_serialize.py b/wheel/python/tests/test_serialize.py index 4d0396f3..6c59ad9b 100644 --- a/wheel/python/tests/test_serialize.py +++ b/wheel/python/tests/test_serialize.py @@ -386,3 +386,18 @@ def test_serialize_api_formats(self): s2026_blob = serialize(node, "2026") self.assertTrue(s2026_blob.startswith(bytes.fromhex("fdff32303236"))) self.assertEqual(Program.from_bytes(s2026_blob), p) + + def test_ser_2026_deser_2026_symmetry(self): + """ser_2026 emits the magic prefix, deser_2026 must accept it.""" + from clvm_rs.clvm_rs import deser_2026, ser_2026 + + p = Program.to([1, 2, (b"shared", b"shared"), 3]) + blob = ser_2026(clvm_tree_to_lazy_node(p)) + self.assertTrue(blob.startswith(bytes.fromhex("fdff32303236"))) + + node = deser_2026(blob) + self.assertEqual(Program.wrap(node), p) + + # Without the magic prefix it must be rejected. + with self.assertRaises(ValueError): + deser_2026(blob[6:]) diff --git a/wheel/src/api.rs b/wheel/src/api.rs index c9d2bde5..18e61b97 100644 --- a/wheel/src/api.rs +++ b/wheel/src/api.rs @@ -127,6 +127,10 @@ fn make_deserialize_options( options } +/// Deserialize a serde_2026 blob. The input must start with +/// `SERDE_2026_MAGIC_PREFIX` (the same prefix `ser_2026` emits); the prefix is +/// stripped before calling the underlying decoder. This makes `ser_2026` and +/// `deser_2026` a symmetric pair. #[pyfunction] #[pyo3(signature = (blob, *, max_atom_len=None, max_input_bytes=None, strict=false))] fn deser_2026( @@ -135,9 +139,16 @@ fn deser_2026( max_input_bytes: Option, strict: bool, ) -> PyResult { + let body = blob + .strip_prefix(SERDE_2026_MAGIC_PREFIX.as_slice()) + .ok_or_else(|| { + pyo3::exceptions::PyValueError::new_err( + "deser_2026: blob is missing the serde_2026 magic prefix", + ) + })?; let mut a = Allocator::new(); let options = make_deserialize_options(max_atom_len, max_input_bytes, strict); - let node = deserialize_2026(&mut a, blob, options).map_err(eval_to_py)?; + let node = deserialize_2026(&mut a, body, options).map_err(eval_to_py)?; Ok(LazyNode::new(Rc::new(a), node)) } From a67ee12a269000bb6e20266bfa40769bc50ab993 Mon Sep 17 00:00:00 2001 From: Richard Kiss Date: Mon, 4 May 2026 13:29:34 -0700 Subject: [PATCH 09/15] serde_2026: replace public Compression with saturating level: u32 Public serialization API now uses `level: u32` rather than the `Compression` enum. New entry points: - `serialize_2026(a, n)` / `serialize_2026_level(a, n, level)` - `serialize_2026_to_stream(a, n, w)` / `..._level(a, n, level, w)` - `node_to_bytes_serde_2026(a, n)` / `..._level(a, n, level)` Levels above the highest implemented level *saturate* down to it. This means callers can pass `u32::MAX` to mean "best available compression" without recompiling when new levels are added later. `Compression` becomes a `pub(crate)` internal vocabulary mapped from `level` by `compression_for_level`. Python `ser_2026(node, level=K)` no longer raises for `K > 0`; it produces the same bytes as level 0 today (and the best implemented level tomorrow). The "rejects unknown level" test is replaced with a saturation test that asserts levels 0, 1, 7, 1<<20 and u32::MAX all produce the same bytes today. All internal call sites (tests, benches, fuzz target, wheel API) updated. Made-with: Cursor --- benches/deserialize.rs | 8 ++-- benches/serialize.rs | 6 +-- fuzz/fuzz_targets/serde_2026.rs | 14 +++--- src/serde/mod.rs | 7 +-- src/serde_2026/mod.rs | 13 ++++-- src/serde_2026/ser.rs | 68 +++++++++++++++++++++++----- src/serde_2026/tests.rs | 26 +++++------ wheel/python/clvm_rs/serde.py | 6 ++- wheel/python/tests/test_serialize.py | 14 ++++-- wheel/src/api.rs | 22 +++------ 10 files changed, 116 insertions(+), 68 deletions(-) diff --git a/benches/deserialize.rs b/benches/deserialize.rs index 13774d02..66c4c468 100644 --- a/benches/deserialize.rs +++ b/benches/deserialize.rs @@ -4,7 +4,7 @@ use clvmr::serde::{ node_to_bytes_backrefs, serialized_length_from_bytes, serialized_length_from_bytes_trusted, tree_hash_from_stream, }; -use clvmr::serde_2026::{Compression, DeserializeOptions, deserialize_2026, serialize_2026}; +use clvmr::serde_2026::{DeserializeOptions, deserialize_2026, serialize_2026}; use criterion::{Criterion, criterion_group, criterion_main}; use std::include_bytes; use std::time::Instant; @@ -80,14 +80,12 @@ fn deserialize_benchmark(c: &mut Criterion) { { let mut a = Allocator::new(); let node = node_from_bytes(&mut a, block).expect("node_from_bytes"); - let serialized_2026 = - serialize_2026(&a, node, Compression::default()).expect("serialize_2026"); + let serialized_2026 = serialize_2026(&a, node).expect("serialize_2026"); let mut a = Allocator::new(); let node = node_from_bytes_backrefs(&mut a, compressed_block.as_ref()) .expect("node_from_bytes_backrefs"); - let serialized_2026_compressed = - serialize_2026(&a, node, Compression::default()).expect("serialize_2026"); + let serialized_2026_compressed = serialize_2026(&a, node).expect("serialize_2026"); for (data, name_suffix) in &[ (serialized_2026.as_slice(), ""), diff --git a/benches/serialize.rs b/benches/serialize.rs index ce631eac..c3093f42 100644 --- a/benches/serialize.rs +++ b/benches/serialize.rs @@ -3,7 +3,7 @@ use clvmr::serde::{ Serializer, node_from_bytes, node_from_bytes_backrefs, node_to_bytes_backrefs, node_to_bytes_limit, }; -use clvmr::serde_2026::{Compression, serialize_2026}; +use clvmr::serde_2026::serialize_2026; use criterion::black_box; use criterion::{Criterion, criterion_group, criterion_main}; use std::include_bytes; @@ -61,9 +61,7 @@ fn serialize_benchmark(c: &mut Criterion) { group.bench_function(format!("serialize_2026 {name}"), |b| { b.iter(|| { let start = Instant::now(); - black_box( - serialize_2026(&a, node, Compression::default()).expect("serialize_2026"), - ); + black_box(serialize_2026(&a, node).expect("serialize_2026")); start.elapsed() }) }); diff --git a/fuzz/fuzz_targets/serde_2026.rs b/fuzz/fuzz_targets/serde_2026.rs index 96d5fedd..3b28ab8e 100644 --- a/fuzz/fuzz_targets/serde_2026.rs +++ b/fuzz/fuzz_targets/serde_2026.rs @@ -2,7 +2,7 @@ use clvm_fuzzing::ArbitraryClvmTree; use clvmr::serde::node_to_bytes; -use clvmr::serde_2026::{Compression, DeserializeOptions, deserialize_2026, serialize_2026}; +use clvmr::serde_2026::{DeserializeOptions, deserialize_2026, serialize_2026_level}; use clvmr::{Allocator, allocator::NodePtr}; use libfuzzer_sys::{Corpus, fuzz_target}; @@ -29,15 +29,15 @@ fn roundtrip_check(label: &str, a: &Allocator, original: NodePtr, blob: &[u8]) { } fn check_tree(a: &Allocator, node: NodePtr) { - for (label, compression) in serialization_strategies() { + for (label, level) in serialization_strategies() { let blob = - serialize_2026(a, node, compression).unwrap_or_else(|_| panic!("{label} failed")); + serialize_2026_level(a, node, level).unwrap_or_else(|_| panic!("{label} failed")); roundtrip_check(label, a, node, &blob); } } -fn serialization_strategies() -> impl Iterator { - std::iter::once(("fast", Compression::Fast)) +fn serialization_strategies() -> impl Iterator { + std::iter::once(("fast", 0)) } fuzz_target!(|input: FuzzInput| -> Corpus { @@ -54,8 +54,8 @@ fuzz_target!(|input: FuzzInput| -> Corpus { check_tree(&program.allocator, program.tree); let mut a2 = Allocator::new(); - let blob = serialize_2026(&program.allocator, program.tree, Compression::Fast) - .expect("Fast failed"); + let blob = + serialize_2026_level(&program.allocator, program.tree, 0).expect("Fast failed"); let decoded = deserialize_2026(&mut a2, &blob, DeserializeOptions::default()) .expect("deserialize fast failed"); assert_eq!( diff --git a/src/serde/mod.rs b/src/serde/mod.rs index 2171616e..7ec921bb 100644 --- a/src/serde/mod.rs +++ b/src/serde/mod.rs @@ -43,7 +43,8 @@ pub use tools::{ pub use tree_cache::{TreeCache, TreeCacheCheckpoint}; pub use crate::serde_2026::{ - Compression, DeserializeOptions, SERDE_2026_MAGIC_PREFIX, deserialize_2026, - deserialize_2026_from_stream, node_from_bytes_auto, node_to_bytes_serde_2026, serialize_2026, - serialize_2026_to_stream, serialized_length_serde_2026, + DeserializeOptions, SERDE_2026_MAGIC_PREFIX, deserialize_2026, deserialize_2026_from_stream, + node_from_bytes_auto, node_to_bytes_serde_2026, node_to_bytes_serde_2026_level, serialize_2026, + serialize_2026_level, serialize_2026_to_stream, serialize_2026_to_stream_level, + serialized_length_serde_2026, }; diff --git a/src/serde_2026/mod.rs b/src/serde_2026/mod.rs index 2d706127..8a3aa185 100644 --- a/src/serde_2026/mod.rs +++ b/src/serde_2026/mod.rs @@ -38,12 +38,14 @@ pub const SERDE_2026_MAGIC_PREFIX: [u8; 6] = [0xfd, 0xff, b'2', b'0', b'2', b'6' /// Maximum atoms/pairs that fit in i32 indices (used by instruction stream). const MAX_INDEX: usize = i32::MAX as usize; -/// Controls the serialization strategy for pair visit order. +/// Internal vocabulary for which serialization strategy to use. The public API +/// takes a `level: u32` and saturates to the highest implemented level; this +/// enum is the after-saturation result. /// -/// - `Fast` (0): left-first traversal. O(N) serialization. +/// - `Fast` (level 0): left-first traversal. O(N) serialization. #[derive(Copy, Clone, Debug, Default, Eq, PartialEq)] #[repr(u8)] -pub enum Compression { +pub(crate) enum Compression { #[default] Fast = 0, } @@ -52,6 +54,9 @@ pub use de::{ DeserializeOptions, deserialize_2026, deserialize_2026_from_stream, node_from_bytes_auto, serialized_length_serde_2026, }; -pub use ser::{node_to_bytes_serde_2026, serialize_2026, serialize_2026_to_stream}; +pub use ser::{ + node_to_bytes_serde_2026, node_to_bytes_serde_2026_level, serialize_2026, serialize_2026_level, + serialize_2026_to_stream, serialize_2026_to_stream_level, +}; #[doc(hidden)] pub use varint::{decode_varint, encode_varint}; diff --git a/src/serde_2026/ser.rs b/src/serde_2026/ser.rs index aaf654bf..6fcb181f 100644 --- a/src/serde_2026/ser.rs +++ b/src/serde_2026/ser.rs @@ -291,8 +291,19 @@ fn cross_allocator_eq(a: &Allocator, na: NodePtr, b: &Allocator, nb: NodePtr) -> // --- Public entry points --- use super::Compression; -/// Serialize a CLVM node to the 2026 format. -pub fn serialize_2026_to_stream( + +/// Map a `level: u32` onto an internal compression variant. +/// +/// Levels above the highest implemented level are *saturated* down to it, +/// so callers can pass `u32::MAX` to mean "best available compression" +/// without recompiling when new levels are added. +fn compression_for_level(_level: u32) -> Compression { + // Currently only level 0 (Fast) is implemented; every higher level + // saturates to it. As new levels land this `match` grows. + Compression::Fast +} + +fn serialize_with_compression( allocator: &Allocator, node: NodePtr, compression: Compression, @@ -304,27 +315,62 @@ pub fn serialize_2026_to_stream( } } -/// Serialize a node using the 2026 format, returning bytes. -pub fn serialize_2026( +/// Serialize a CLVM node to the 2026 format using the default level. +/// Equivalent to `serialize_2026_to_stream_level(.., 0, ..)`. +pub fn serialize_2026_to_stream( allocator: &Allocator, node: NodePtr, - compression: Compression, -) -> Result> { + writer: &mut W, +) -> Result<()> { + serialize_2026_to_stream_level(allocator, node, 0, writer) +} + +/// Serialize a CLVM node to the 2026 format at compression `level`. +/// +/// Levels above the highest implemented level saturate to it, so passing +/// `u32::MAX` always selects the best available compression. Currently +/// only level 0 (left-first / fast) is implemented. +pub fn serialize_2026_to_stream_level( + allocator: &Allocator, + node: NodePtr, + level: u32, + writer: &mut W, +) -> Result<()> { + serialize_with_compression(allocator, node, compression_for_level(level), writer) +} + +/// Serialize a node using the 2026 format at the default level, returning bytes. +pub fn serialize_2026(allocator: &Allocator, node: NodePtr) -> Result> { + serialize_2026_level(allocator, node, 0) +} + +/// Serialize a node using the 2026 format at compression `level`, returning bytes. +/// +/// See [`serialize_2026_to_stream_level`] for the level-saturation contract. +pub fn serialize_2026_level(allocator: &Allocator, node: NodePtr, level: u32) -> Result> { let mut output = Vec::new(); - serialize_2026_to_stream(allocator, node, compression, &mut output)?; + serialize_2026_to_stream_level(allocator, node, level, &mut output)?; #[cfg(debug_assertions)] debug_assert_roundtrip(allocator, node, &output); Ok(output) } -/// Serialize with the magic prefix. This is the recommended wire format. -pub fn node_to_bytes_serde_2026( +/// Serialize with the magic prefix at the default level. +/// This is the recommended wire format. +pub fn node_to_bytes_serde_2026(allocator: &Allocator, node: NodePtr) -> Result> { + node_to_bytes_serde_2026_level(allocator, node, 0) +} + +/// Serialize with the magic prefix at compression `level`. +/// +/// See [`serialize_2026_to_stream_level`] for the level-saturation contract. +pub fn node_to_bytes_serde_2026_level( allocator: &Allocator, node: NodePtr, - compression: Compression, + level: u32, ) -> Result> { let mut out = Vec::new(); out.extend_from_slice(&super::SERDE_2026_MAGIC_PREFIX); - serialize_2026_to_stream(allocator, node, compression, &mut out)?; + serialize_2026_to_stream_level(allocator, node, level, &mut out)?; Ok(out) } diff --git a/src/serde_2026/tests.rs b/src/serde_2026/tests.rs index a84a2acc..9c584f38 100644 --- a/src/serde_2026/tests.rs +++ b/src/serde_2026/tests.rs @@ -1,8 +1,8 @@ //! Tests for the 2026 serialization format. use super::{ - Compression, DeserializeOptions, SERDE_2026_MAGIC_PREFIX, deserialize_2026, - node_from_bytes_auto, node_to_bytes_serde_2026, serialize_2026, serialized_length_serde_2026, + DeserializeOptions, SERDE_2026_MAGIC_PREFIX, deserialize_2026, node_from_bytes_auto, + node_to_bytes_serde_2026, serialize_2026_level, serialized_length_serde_2026, }; use crate::allocator::Allocator; use crate::serde::{node_from_bytes_backrefs, node_to_bytes}; @@ -58,13 +58,13 @@ fn test_round_trip(#[case] hex: &str) { let canonical = node_to_bytes(&allocator, node).unwrap(); let options = DeserializeOptions::default(); - let blobs: Vec<(&str, Compression, Vec)> = vec![( + let blobs: Vec<(&str, u32, Vec)> = vec![( "fast", - Compression::Fast, - serialize_2026(&allocator, node, Compression::Fast).unwrap(), + 0, + serialize_2026_level(&allocator, node, 0).unwrap(), )]; - for (label, compression, blob) in &blobs { + for (label, level, blob) in &blobs { // First trip: tree equivalence let mut a2 = Allocator::new(); let n2 = deserialize_2026(&mut a2, blob, options).unwrap(); @@ -75,7 +75,7 @@ fn test_round_trip(#[case] hex: &str) { ); // Second trip: serialization idempotency (same compression level) - let blob2 = serialize_2026(&a2, n2, *compression).unwrap(); + let blob2 = serialize_2026_level(&a2, n2, *level).unwrap(); assert_eq!( blob, &blob2, "{label}: double round-trip mismatch for {hex}" @@ -151,7 +151,7 @@ fn test_magic_prefix() { let mut allocator = Allocator::new(); let node = allocator.new_atom(b"hello").unwrap(); - let bytes = node_to_bytes_serde_2026(&allocator, node, Compression::default()).unwrap(); + let bytes = node_to_bytes_serde_2026(&allocator, node).unwrap(); assert!(bytes.starts_with(&SERDE_2026_MAGIC_PREFIX)); } @@ -175,7 +175,7 @@ fn check_auto(node_alloc: &Allocator, n: crate::allocator::NodePtr) { "backrefs via auto" ); - let prefixed = node_to_bytes_serde_2026(node_alloc, n, Compression::default()).unwrap(); + let prefixed = node_to_bytes_serde_2026(node_alloc, n).unwrap(); let mut a3 = Allocator::new(); let decoded3 = node_from_bytes_auto(&mut a3, &prefixed, DeserializeOptions::default()).unwrap(); assert_eq!( @@ -226,7 +226,7 @@ fn test_auto_detect_classic_single_byte() { fn test_backrefs_decoder_rejects_serde_2026() { let mut allocator = Allocator::new(); let node = allocator.new_atom(b"hello").unwrap(); - let prefixed = node_to_bytes_serde_2026(&allocator, node, Compression::default()).unwrap(); + let prefixed = node_to_bytes_serde_2026(&allocator, node).unwrap(); let mut a2 = Allocator::new(); assert!(node_from_bytes_backrefs(&mut a2, &prefixed).is_err()); } @@ -241,7 +241,7 @@ fn test_serialized_length() { // atom let node = allocator.new_atom(b"hello").unwrap(); - let bytes = node_to_bytes_serde_2026(&allocator, node, Compression::default()).unwrap(); + let bytes = node_to_bytes_serde_2026(&allocator, node).unwrap(); assert_eq!( serialized_length_serde_2026(&bytes).unwrap(), bytes.len() as u64 @@ -251,7 +251,7 @@ fn test_serialized_length() { let left = allocator.new_atom(b"left").unwrap(); let right = allocator.new_atom(b"right").unwrap(); let pair = allocator.new_pair(left, right).unwrap(); - let bytes = node_to_bytes_serde_2026(&allocator, pair, Compression::default()).unwrap(); + let bytes = node_to_bytes_serde_2026(&allocator, pair).unwrap(); assert_eq!( serialized_length_serde_2026(&bytes).unwrap(), bytes.len() as u64 @@ -263,7 +263,7 @@ fn test_serialized_length() { let b = allocator.new_atom(b"other").unwrap(); let p2 = allocator.new_pair(p1, b).unwrap(); let root = allocator.new_pair(p2, p1).unwrap(); - let bytes = node_to_bytes_serde_2026(&allocator, root, Compression::default()).unwrap(); + let bytes = node_to_bytes_serde_2026(&allocator, root).unwrap(); assert_eq!( serialized_length_serde_2026(&bytes).unwrap(), bytes.len() as u64 diff --git a/wheel/python/clvm_rs/serde.py b/wheel/python/clvm_rs/serde.py index 99a86a51..ae6c9e74 100644 --- a/wheel/python/clvm_rs/serde.py +++ b/wheel/python/clvm_rs/serde.py @@ -92,8 +92,10 @@ def serialize(node, fmt: str = "2026", *, level: int = 0) -> bytes: Formats: "2026" (default), "legacy", "backrefs". - For "2026" format: - level=0: left-first traversal (fast) + For "2026" format, ``level`` selects the compression level. Levels above + the highest implemented level saturate to it, so passing a large number + always means "best available compression". Currently only level 0 + (left-first/fast) is implemented. """ fn = _SERIALIZERS.get(fmt) if fn is None: diff --git a/wheel/python/tests/test_serialize.py b/wheel/python/tests/test_serialize.py index 6c59ad9b..710ece18 100644 --- a/wheel/python/tests/test_serialize.py +++ b/wheel/python/tests/test_serialize.py @@ -344,14 +344,20 @@ def test_many_distinct_atoms(self): p2 = Program.from_bytes(blob) self.assertEqual(tree, p2) - def test_2026_rejects_unknown_compression_level(self): - """Only the left-first serializer is currently exposed.""" + def test_2026_level_saturates_to_highest_implemented(self): + """`level` saturates: anything above the top implemented level + produces the same bytes as that level. Today only level 0 exists, + so every non-zero level must produce identical output to level 0.""" shared = Program.to([1, 2, 3]) tree = Program.to([shared, shared, shared, shared]) lazy = clvm_tree_to_lazy_node(tree) blob_0 = ser_2026(lazy, level=0) - with self.assertRaises(ValueError): - ser_2026(lazy, level=1) + for level in (1, 7, 1 << 20, (1 << 32) - 1): + self.assertEqual( + ser_2026(lazy, level=level), + blob_0, + f"level={level} should saturate to level=0 today", + ) self.assertEqual(Program.from_bytes(blob_0), tree) def test_mixed_tree_with_large_atoms(self): diff --git a/wheel/src/api.rs b/wheel/src/api.rs index 18e61b97..ddb82df7 100644 --- a/wheel/src/api.rs +++ b/wheel/src/api.rs @@ -17,8 +17,8 @@ use clvmr::serde::{ parse_triples, serialized_length_from_bytes, }; use clvmr::serde_2026::{ - Compression, DeserializeOptions, SERDE_2026_MAGIC_PREFIX, deserialize_2026, - node_from_bytes_auto, serialize_2026, + DeserializeOptions, SERDE_2026_MAGIC_PREFIX, deserialize_2026, node_from_bytes_auto, + node_to_bytes_serde_2026_level, }; use pyo3::prelude::*; use pyo3::types::{PyBytes, PyTuple}; @@ -187,22 +187,14 @@ fn ser_backrefs(py: Python, node: &LazyNode) -> PyResult> { /// Serialize to serde_2026 format (always includes the magic prefix). /// -/// - `level=0`: left-first traversal (fast) +/// `level` selects the compression level. Levels above the highest implemented +/// level saturate to it, so passing `u32::MAX` always means "best available +/// compression". Currently only level 0 (left-first/fast) is implemented. #[pyfunction] #[pyo3(signature = (node, *, level=0))] fn ser_2026(py: Python, node: &LazyNode, level: u32) -> PyResult> { - let compression = match level { - 0 => Compression::Fast, - _ => { - return Err(pyo3::exceptions::PyValueError::new_err( - "ser_2026: level must be 0", - )); - } - }; - let raw = serialize_2026(node.allocator(), node.node(), compression).map_err(eval_to_py)?; - let mut buf = Vec::with_capacity(SERDE_2026_MAGIC_PREFIX.len() + raw.len()); - buf.extend_from_slice(&SERDE_2026_MAGIC_PREFIX); - buf.extend_from_slice(&raw); + let buf = + node_to_bytes_serde_2026_level(node.allocator(), node.node(), level).map_err(eval_to_py)?; Ok(PyBytes::new(py, &buf).unbind()) } From 2ced494c7c40eb70c25294f52b87ebd7dab4cbf4 Mon Sep 17 00:00:00 2001 From: Richard Kiss Date: Mon, 4 May 2026 14:12:55 -0700 Subject: [PATCH 10/15] Revert stray .gitignore newline (per Arvid review) Co-authored-by: Cursor --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index a854acc5..33433b5e 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,4 @@ target/ /node_modules # Mac generates these with the benchmarking tools -.DS_Store +.DS_Store \ No newline at end of file From bab93ba9c27dd5f90917b29e34d4055872682497 Mon Sep 17 00:00:00 2001 From: Richard Kiss Date: Mon, 4 May 2026 14:49:26 -0700 Subject: [PATCH 11/15] serde_2026: don't pre-size pairs from attacker-controlled instruction_count MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `Vec::with_capacity(instruction_count / 3)` allocated based on the declared instruction-count varint. A tiny blob (under 16 bytes) declaring instruction_count = 2^54 caused malloc to be called for ~24 PB and the process to abort with SIGABRT. `LimitReader` already bounds total bytes consumed, so the loop below cannot drive `pairs` past max_input_bytes/3 entries — geometric growth from `Vec::new()` handles that with a handful of reallocs and removes the abort surface. Adds three regression tests covering the same vector via group_count, the per-group atom count, and instruction_count: each crafts a tiny blob with a huge declared count and asserts deserialize errors instead of aborting. Made-with: Cursor --- src/serde_2026/de.rs | 8 +++++- src/serde_2026/tests.rs | 57 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/src/serde_2026/de.rs b/src/serde_2026/de.rs index 0e8c50b8..6aeeba25 100644 --- a/src/serde_2026/de.rs +++ b/src/serde_2026/de.rs @@ -142,7 +142,13 @@ pub fn deserialize_2026_from_stream( } let nil = allocator.nil(); - let mut pairs: Vec = Vec::with_capacity(instruction_count / 3); + // Don't pre-size `pairs` from `instruction_count`: a tiny blob could + // declare ~2^54 instructions and trick `Vec::with_capacity` into a + // multi-PB allocation request that aborts the process. `LimitReader` + // already bounds total bytes consumed, so the loop below cannot iterate + // far enough to drive `pairs` past `max_input_bytes`/3 entries — geometric + // growth from `Vec::new()` handles that safely with a handful of reallocs. + let mut pairs: Vec = Vec::new(); let mut stack: Vec = Vec::with_capacity(64); for _ in 0..instruction_count { diff --git a/src/serde_2026/tests.rs b/src/serde_2026/tests.rs index 9c584f38..b3b3ce41 100644 --- a/src/serde_2026/tests.rs +++ b/src/serde_2026/tests.rs @@ -282,6 +282,63 @@ fn test_serialized_length() { assert!(serialized_length_serde_2026(b"").is_err()); } +// --------------------------------------------------------------------------- +// Regression test for the unbounded-capacity OOM at `de.rs:145`. A tiny blob +// (under 16 bytes) declares an `instruction_count` near the max representable +// varint (~2^54). Pre-fix, the deserializer pre-allocated `instruction_count +// / 3` `NodePtr`s — a request of about 24 PB — and the process aborted with +// "memory allocation of N bytes failed". Post-fix, the deserializer rejects +// any declared count above `max_input_bytes` (each follow-up item costs at +// least one byte) and returns `Err` cleanly. +#[test] +fn deserializer_rejects_unbounded_instruction_count() { + use super::varint::encode_varint; + + let mut blob = Vec::new(); + blob.extend_from_slice(&encode_varint(0)); // group_count = 0 + blob.extend_from_slice(&encode_varint(1_i64 << 54)); // instruction_count + assert!(blob.len() < 16, "PoC blob stays tiny ({} bytes)", blob.len()); + + let mut a = Allocator::new(); + let result = deserialize_2026(&mut a, &blob, DeserializeOptions::default()); + assert!( + result.is_err(), + "instruction_count must be rejected before pre-allocation" + ); +} + +#[test] +fn deserializer_rejects_unbounded_group_count() { + use super::varint::encode_varint; + + let mut blob = Vec::new(); + blob.extend_from_slice(&encode_varint(1_i64 << 54)); // group_count + + let mut a = Allocator::new(); + let result = deserialize_2026(&mut a, &blob, DeserializeOptions::default()); + assert!( + result.is_err(), + "group_count must be rejected before pre-allocation" + ); +} + +#[test] +fn deserializer_rejects_unbounded_per_group_count() { + use super::varint::encode_varint; + + let mut blob = Vec::new(); + blob.extend_from_slice(&encode_varint(1)); // group_count = 1 + blob.extend_from_slice(&encode_varint(-3)); // multi-atom group, len=3 + blob.extend_from_slice(&encode_varint(1_i64 << 54)); // count + + let mut a = Allocator::new(); + let result = deserialize_2026(&mut a, &blob, DeserializeOptions::default()); + assert!( + result.is_err(), + "per-group count must be rejected before pre-allocation" + ); +} + // --------------------------------------------------------------------------- // write_atom_table // --------------------------------------------------------------------------- From 37e098844512f7f8e976aa4326b766b21b911601 Mon Sep 17 00:00:00 2001 From: Richard Kiss Date: Mon, 4 May 2026 14:57:00 -0700 Subject: [PATCH 12/15] serde_2026: drop DeserializeOptions and node_from_bytes_auto from Rust API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move bounds policy out of clvm_rs. The deserializer now takes (max_atom_len, strict) directly; total input bytes is bounded by the slice length (or, for the streamed variant, a caller-supplied `Read::take`). LimitReader and the DEFAULT_MAX_* constants are gone — those defaults felt consensus-flavored without actually being consensus, and they belong in the wrapper that *does* care (chia_rs). `node_from_bytes_auto` was the only Rust caller of those defaults, so it goes too. Auto-detect (sniff the magic prefix and dispatch to backrefs or serde_2026) survives as a Python-only convenience: deser_auto in the wheel sniffs the prefix in Rust and dispatches. clvm_rs's Python tools keep their "works on any blob" feel; consensus-aware callers sniff themselves and supply their own caps. Wire-up: - de.rs: drop DeserializeOptions/LimitReader/DEFAULT_MAX_*; new signatures - mod re-exports: drop DeserializeOptions, node_from_bytes_auto - debug self-check: hard-codes 1 MiB max atom (matches old default) - wheel: deser_2026 / deser_auto take max_atom_len + strict; default 1 MiB - tests: each test/fuzz/bench picks a local MAX_ATOM_LEN; Rust auto tests removed (function is gone, Python tests cover it) Made-with: Cursor --- benches/deserialize.rs | 6 +- fuzz/fuzz_targets/serde_2026.rs | 12 +-- src/serde/mod.rs | 7 +- src/serde_2026/de.rs | 126 +++++++--------------------- src/serde_2026/mod.rs | 5 +- src/serde_2026/ser.rs | 5 +- src/serde_2026/tests.rs | 137 +++++++++---------------------- wheel/python/clvm_rs/clvm_rs.pyi | 8 +- wheel/python/clvm_rs/serde.py | 12 ++- wheel/src/api.rs | 60 +++++--------- 10 files changed, 116 insertions(+), 262 deletions(-) diff --git a/benches/deserialize.rs b/benches/deserialize.rs index 66c4c468..8b0500a4 100644 --- a/benches/deserialize.rs +++ b/benches/deserialize.rs @@ -4,7 +4,9 @@ use clvmr::serde::{ node_to_bytes_backrefs, serialized_length_from_bytes, serialized_length_from_bytes_trusted, tree_hash_from_stream, }; -use clvmr::serde_2026::{DeserializeOptions, deserialize_2026, serialize_2026}; +use clvmr::serde_2026::{deserialize_2026, serialize_2026}; + +const BENCH_MAX_ATOM_LEN: usize = 1 << 20; use criterion::{Criterion, criterion_group, criterion_main}; use std::include_bytes; use std::time::Instant; @@ -97,7 +99,7 @@ fn deserialize_benchmark(c: &mut Criterion) { b.iter(|| { a.restore_checkpoint(&iter_checkpoint); let start = Instant::now(); - deserialize_2026(&mut a, data, DeserializeOptions::default()) + deserialize_2026(&mut a, data, BENCH_MAX_ATOM_LEN, false) .expect("deserialize_2026"); start.elapsed() }) diff --git a/fuzz/fuzz_targets/serde_2026.rs b/fuzz/fuzz_targets/serde_2026.rs index 3b28ab8e..620729f2 100644 --- a/fuzz/fuzz_targets/serde_2026.rs +++ b/fuzz/fuzz_targets/serde_2026.rs @@ -2,10 +2,12 @@ use clvm_fuzzing::ArbitraryClvmTree; use clvmr::serde::node_to_bytes; -use clvmr::serde_2026::{DeserializeOptions, deserialize_2026, serialize_2026_level}; +use clvmr::serde_2026::{deserialize_2026, serialize_2026_level}; use clvmr::{Allocator, allocator::NodePtr}; use libfuzzer_sys::{Corpus, fuzz_target}; +const FUZZ_MAX_ATOM_LEN: usize = 1 << 20; + #[derive(arbitrary::Arbitrary, Debug)] enum FuzzInput { Bytes(Vec), @@ -17,9 +19,8 @@ fn canonical(a: &Allocator, node: NodePtr) -> Vec { } fn roundtrip_check(label: &str, a: &Allocator, original: NodePtr, blob: &[u8]) { - let options = DeserializeOptions::default(); let mut a2 = Allocator::new(); - let decoded = deserialize_2026(&mut a2, blob, options) + let decoded = deserialize_2026(&mut a2, blob, FUZZ_MAX_ATOM_LEN, false) .unwrap_or_else(|e| panic!("{label}: deserialize failed: {e:?}")); assert_eq!( canonical(a, original), @@ -44,8 +45,7 @@ fuzz_target!(|input: FuzzInput| -> Corpus { match input { FuzzInput::Bytes(data) => { let mut a = Allocator::new(); - let options = DeserializeOptions::default(); - let Ok(node) = deserialize_2026(&mut a, &data, options) else { + let Ok(node) = deserialize_2026(&mut a, &data, FUZZ_MAX_ATOM_LEN, false) else { return Corpus::Reject; }; check_tree(&a, node); @@ -56,7 +56,7 @@ fuzz_target!(|input: FuzzInput| -> Corpus { let mut a2 = Allocator::new(); let blob = serialize_2026_level(&program.allocator, program.tree, 0).expect("Fast failed"); - let decoded = deserialize_2026(&mut a2, &blob, DeserializeOptions::default()) + let decoded = deserialize_2026(&mut a2, &blob, FUZZ_MAX_ATOM_LEN, false) .expect("deserialize fast failed"); assert_eq!( canonical(&program.allocator, program.tree), diff --git a/src/serde/mod.rs b/src/serde/mod.rs index 7ec921bb..f9507d8a 100644 --- a/src/serde/mod.rs +++ b/src/serde/mod.rs @@ -43,8 +43,7 @@ pub use tools::{ pub use tree_cache::{TreeCache, TreeCacheCheckpoint}; pub use crate::serde_2026::{ - DeserializeOptions, SERDE_2026_MAGIC_PREFIX, deserialize_2026, deserialize_2026_from_stream, - node_from_bytes_auto, node_to_bytes_serde_2026, node_to_bytes_serde_2026_level, serialize_2026, - serialize_2026_level, serialize_2026_to_stream, serialize_2026_to_stream_level, - serialized_length_serde_2026, + SERDE_2026_MAGIC_PREFIX, deserialize_2026, deserialize_2026_from_stream, + node_to_bytes_serde_2026, node_to_bytes_serde_2026_level, serialize_2026, serialize_2026_level, + serialize_2026_to_stream, serialize_2026_to_stream_level, serialized_length_serde_2026, }; diff --git a/src/serde_2026/de.rs b/src/serde_2026/de.rs index 6aeeba25..9938a8dd 100644 --- a/src/serde_2026/de.rs +++ b/src/serde_2026/de.rs @@ -2,71 +2,10 @@ use std::io::{Cursor, Read}; use crate::allocator::{Allocator, NodePtr}; use crate::error::{EvalErr, Result}; -use crate::serde::node_from_bytes_backrefs; use super::SERDE_2026_MAGIC_PREFIX; use super::varint::decode_varint; -/// Default maximum atom length (1 MB). -pub const DEFAULT_MAX_ATOM_LEN: usize = 1 << 20; - -/// Default maximum input bytes (10 MB). -pub const DEFAULT_MAX_INPUT_BYTES: usize = 10 * (1 << 20); - -/// Deserialization options for the 2026 format. -#[derive(Debug, Clone, Copy)] -pub struct DeserializeOptions { - /// Maximum byte length of any single atom. Default: 1 MB. - pub max_atom_len: usize, - /// Maximum total bytes consumed from the input stream. Default: 10 MB. - /// - /// This also bounds atom groups, atoms, instructions, stack growth, and pair - /// allocation: every declared item must consume at least one byte before it - /// can produce work. - pub max_input_bytes: usize, - /// If true, reject overlong/non-minimal varint encodings. - pub strict: bool, -} - -impl Default for DeserializeOptions { - fn default() -> Self { - Self { - max_atom_len: DEFAULT_MAX_ATOM_LEN, - max_input_bytes: DEFAULT_MAX_INPUT_BYTES, - strict: false, - } - } -} - -/// Wraps a `Read` and enforces a byte budget. -struct LimitReader { - inner: R, - remaining: usize, -} - -impl LimitReader { - fn new(inner: R, max_bytes: usize) -> Self { - Self { - inner, - remaining: max_bytes, - } - } -} - -impl Read for LimitReader { - fn read(&mut self, buf: &mut [u8]) -> std::io::Result { - let limit = buf.len().min(self.remaining); - if limit == 0 && !buf.is_empty() { - return Err(std::io::Error::other( - "serde_2026: input exceeds max_input_bytes", - )); - } - let n = self.inner.read(&mut buf[..limit])?; - self.remaining -= n; - Ok(n) - } -} - fn checked_usize(value: i64) -> Result { if value < 0 { return Err(EvalErr::SerializationError); @@ -82,47 +21,39 @@ fn checked_bounded_usize(value: i64, max: usize) -> Result { Ok(value) } -/// Deserialize CLVM from any format (classic, backrefs, or serde_2026). -/// -/// If `bytes` starts with the magic prefix, strip it and deserialize with -/// [`deserialize_2026`]. Otherwise delegate to [`node_from_bytes_backrefs`] -/// (which handles both classic and back-reference formats). -pub fn node_from_bytes_auto( - allocator: &mut Allocator, - bytes: &[u8], - options: DeserializeOptions, -) -> Result { - if bytes.starts_with(&SERDE_2026_MAGIC_PREFIX) { - deserialize_2026(allocator, &bytes[SERDE_2026_MAGIC_PREFIX.len()..], options) - } else { - node_from_bytes_backrefs(allocator, bytes) - } -} - /// Deserialize a node from a stream using the 2026 format. +/// +/// `max_atom_len` caps the byte length of any single atom (and therefore the +/// pre-allocation done while reading atom bytes). `strict` rejects overlong / +/// non-minimal varint encodings. +/// +/// **Caller contract:** `reader` must be bounded — for example via +/// [`std::io::Read::take`] — otherwise a malformed blob can drive an unbounded +/// loop. Total input policy belongs in the caller, not here. Use +/// [`deserialize_2026`] when you have a slice; the slice's length is the +/// natural bound. pub fn deserialize_2026_from_stream( allocator: &mut Allocator, reader: &mut R, - options: DeserializeOptions, + max_atom_len: usize, + strict: bool, ) -> Result { - let mut reader = LimitReader::new(reader, options.max_input_bytes); - let mut atoms: Vec = Vec::new(); - let group_count = checked_usize(decode_varint(&mut reader, options.strict)?)?; + let group_count = checked_usize(decode_varint(reader, strict)?)?; let mut buf: Vec = Vec::new(); for _ in 0..group_count { - let length_val = decode_varint(&mut reader, options.strict)?; + let length_val = decode_varint(reader, strict)?; let (length, count) = if length_val < 0 { if length_val == i64::MIN { return Err(EvalErr::SerializationError); } ( - checked_bounded_usize(-length_val, options.max_atom_len)?, - checked_usize(decode_varint(&mut reader, options.strict)?)?, + checked_bounded_usize(-length_val, max_atom_len)?, + checked_usize(decode_varint(reader, strict)?)?, ) } else { - (checked_bounded_usize(length_val, options.max_atom_len)?, 1) + (checked_bounded_usize(length_val, max_atom_len)?, 1) }; if length == 0 || count == 0 { return Err(EvalErr::SerializationError); @@ -136,7 +67,7 @@ pub fn deserialize_2026_from_stream( } } - let instruction_count = checked_usize(decode_varint(&mut reader, options.strict)?)?; + let instruction_count = checked_usize(decode_varint(reader, strict)?)?; if instruction_count == 0 { return Err(EvalErr::SerializationError); } @@ -144,15 +75,15 @@ pub fn deserialize_2026_from_stream( let nil = allocator.nil(); // Don't pre-size `pairs` from `instruction_count`: a tiny blob could // declare ~2^54 instructions and trick `Vec::with_capacity` into a - // multi-PB allocation request that aborts the process. `LimitReader` - // already bounds total bytes consumed, so the loop below cannot iterate - // far enough to drive `pairs` past `max_input_bytes`/3 entries — geometric - // growth from `Vec::new()` handles that safely with a handful of reallocs. + // multi-PB allocation request that aborts the process. The bounded reader + // (slice length, or caller-supplied `Take`) terminates the loop long + // before we reach a pathological size; geometric growth from `Vec::new()` + // handles the typical case in a handful of reallocs. let mut pairs: Vec = Vec::new(); let mut stack: Vec = Vec::with_capacity(64); for _ in 0..instruction_count { - let inst = decode_varint(&mut reader, options.strict)?; + let inst = decode_varint(reader, strict)?; match inst { 0 => stack.push(nil), 1 => { @@ -192,13 +123,18 @@ pub fn deserialize_2026_from_stream( Ok(stack[0]) } -/// Deserialize a node from bytes using the 2026 format. +/// Deserialize a node from a byte slice using the 2026 format. +/// +/// The slice's length naturally bounds the input; no separate input-byte +/// budget is required. `max_atom_len` caps the byte length of any single +/// atom and `strict` rejects overlong / non-minimal varint encodings. pub fn deserialize_2026( allocator: &mut Allocator, data: &[u8], - options: DeserializeOptions, + max_atom_len: usize, + strict: bool, ) -> Result { - deserialize_2026_from_stream(allocator, &mut Cursor::new(data), options) + deserialize_2026_from_stream(allocator, &mut Cursor::new(data), max_atom_len, strict) } /// Compute the serialized length of a serde_2026 blob (including magic prefix). diff --git a/src/serde_2026/mod.rs b/src/serde_2026/mod.rs index 8a3aa185..e548812c 100644 --- a/src/serde_2026/mod.rs +++ b/src/serde_2026/mod.rs @@ -50,10 +50,7 @@ pub(crate) enum Compression { Fast = 0, } -pub use de::{ - DeserializeOptions, deserialize_2026, deserialize_2026_from_stream, node_from_bytes_auto, - serialized_length_serde_2026, -}; +pub use de::{deserialize_2026, deserialize_2026_from_stream, serialized_length_serde_2026}; pub use ser::{ node_to_bytes_serde_2026, node_to_bytes_serde_2026_level, serialize_2026, serialize_2026_level, serialize_2026_to_stream, serialize_2026_to_stream_level, diff --git a/src/serde_2026/ser.rs b/src/serde_2026/ser.rs index 6fcb181f..0d9ae63d 100644 --- a/src/serde_2026/ser.rs +++ b/src/serde_2026/ser.rs @@ -258,9 +258,10 @@ pub(super) fn serialize_with_strategy( /// Debug-only: deserialize `bytes` and verify it equals `node`. Panics on mismatch. #[cfg(debug_assertions)] pub(super) fn debug_assert_roundtrip(allocator: &Allocator, node: NodePtr, bytes: &[u8]) { - use super::de::{DeserializeOptions, deserialize_2026}; + use super::de::deserialize_2026; let mut probe = Allocator::new(); - let decoded = deserialize_2026(&mut probe, bytes, DeserializeOptions::default()) + // Self-check uses 1 MiB max atom (matches the legacy non-consensus default). + let decoded = deserialize_2026(&mut probe, bytes, 1 << 20, false) .expect("serde_2026 self-check: produced bytes that fail to deserialize"); assert!( cross_allocator_eq(allocator, node, &probe, decoded), diff --git a/src/serde_2026/tests.rs b/src/serde_2026/tests.rs index b3b3ce41..836d7e7b 100644 --- a/src/serde_2026/tests.rs +++ b/src/serde_2026/tests.rs @@ -1,14 +1,17 @@ //! Tests for the 2026 serialization format. use super::{ - DeserializeOptions, SERDE_2026_MAGIC_PREFIX, deserialize_2026, node_from_bytes_auto, - node_to_bytes_serde_2026, serialize_2026_level, serialized_length_serde_2026, + SERDE_2026_MAGIC_PREFIX, deserialize_2026, node_to_bytes_serde_2026, serialize_2026_level, + serialized_length_serde_2026, }; use crate::allocator::Allocator; use crate::serde::{node_from_bytes_backrefs, node_to_bytes}; use hex::FromHex; use rstest::rstest; +/// Sane non-consensus default for tests; the public API has no opinion. +const TEST_MAX_ATOM_LEN: usize = 1 << 20; + // --------------------------------------------------------------------------- // Double-round-trip, all strategies, full corpus // --------------------------------------------------------------------------- @@ -56,7 +59,6 @@ fn test_round_trip(#[case] hex: &str) { let mut allocator = Allocator::new(); let node = node_from_bytes_backrefs(&mut allocator, &bytes).unwrap(); let canonical = node_to_bytes(&allocator, node).unwrap(); - let options = DeserializeOptions::default(); let blobs: Vec<(&str, u32, Vec)> = vec![( "fast", @@ -67,7 +69,7 @@ fn test_round_trip(#[case] hex: &str) { for (label, level, blob) in &blobs { // First trip: tree equivalence let mut a2 = Allocator::new(); - let n2 = deserialize_2026(&mut a2, blob, options).unwrap(); + let n2 = deserialize_2026(&mut a2, blob, TEST_MAX_ATOM_LEN, false).unwrap(); assert_eq!( node_to_bytes(&a2, n2).unwrap(), canonical, @@ -102,7 +104,7 @@ fn test_round_trip(#[case] hex: &str) { fn test_deserialize_rejects_malformed(#[case] data: &[u8], #[case] _desc: &str) { let mut allocator = Allocator::new(); assert!( - deserialize_2026(&mut allocator, data, DeserializeOptions::default()).is_err(), + deserialize_2026(&mut allocator, data, TEST_MAX_ATOM_LEN, false).is_err(), "should reject: {_desc}" ); } @@ -110,34 +112,29 @@ fn test_deserialize_rejects_malformed(#[case] data: &[u8], #[case] _desc: &str) #[test] fn test_strict_rejects_overlong_varints() { let mut allocator = Allocator::new(); - let mut options = DeserializeOptions { - strict: true, - ..DeserializeOptions::default() - }; // group_count=1 encoded as two bytes, then a valid single atom payload. let overlong_group_count = [0x80, 0x01, 0x01, b'A', 0x01, 0x02]; - assert!(deserialize_2026(&mut allocator, &overlong_group_count, options).is_err()); + assert!( + deserialize_2026( + &mut allocator, + &overlong_group_count, + TEST_MAX_ATOM_LEN, + true + ) + .is_err() + ); - options.strict = false; - let decoded = deserialize_2026(&mut allocator, &overlong_group_count, options).unwrap(); + let decoded = deserialize_2026( + &mut allocator, + &overlong_group_count, + TEST_MAX_ATOM_LEN, + false, + ) + .unwrap(); assert_eq!(allocator.atom(decoded).as_ref(), b"A"); } -#[test] -fn test_input_byte_limit_bounds_parser_work() { - let mut allocator = Allocator::new(); - let options = DeserializeOptions { - max_input_bytes: 3, - ..DeserializeOptions::default() - }; - - // This otherwise-valid one-atom blob needs 4 bytes of payload: - // group_count, length, atom byte, instruction_count. - let data = [0x01, 0x01, b'A', 0x01, 0x02]; - assert!(deserialize_2026(&mut allocator, &data, options).is_err()); -} - // --------------------------------------------------------------------------- // Magic prefix and auto-detection // --------------------------------------------------------------------------- @@ -155,72 +152,9 @@ fn test_magic_prefix() { assert!(bytes.starts_with(&SERDE_2026_MAGIC_PREFIX)); } -fn check_auto(node_alloc: &Allocator, n: crate::allocator::NodePtr) { - let classic = node_to_bytes(node_alloc, n).unwrap(); - - let mut a = Allocator::new(); - let decoded = node_from_bytes_auto(&mut a, &classic, DeserializeOptions::default()).unwrap(); - assert_eq!( - node_to_bytes(&a, decoded).unwrap(), - classic, - "classic via auto" - ); - - let backrefs = crate::serde::node_to_bytes_backrefs(node_alloc, n).unwrap(); - let mut a2 = Allocator::new(); - let decoded2 = node_from_bytes_auto(&mut a2, &backrefs, DeserializeOptions::default()).unwrap(); - assert_eq!( - node_to_bytes(&a2, decoded2).unwrap(), - classic, - "backrefs via auto" - ); - - let prefixed = node_to_bytes_serde_2026(node_alloc, n).unwrap(); - let mut a3 = Allocator::new(); - let decoded3 = node_from_bytes_auto(&mut a3, &prefixed, DeserializeOptions::default()).unwrap(); - assert_eq!( - node_to_bytes(&a3, decoded3).unwrap(), - classic, - "serde_2026 via auto" - ); -} - -#[test] -fn test_auto_detect() { - let mut a = Allocator::new(); - // atom - let atom = a.new_atom(b"hello world").unwrap(); - check_auto(&a, atom); - // nil - check_auto(&a, a.nil()); - // pair - let x = a.new_atom(b"a").unwrap(); - let y = a.new_atom(b"b").unwrap(); - let pair = a.new_pair(x, y).unwrap(); - check_auto(&a, pair); - // nested list - let nil = a.nil(); - let t1 = a.new_pair(y, nil).unwrap(); - let t2 = a.new_pair(x, t1).unwrap(); - check_auto(&a, t2); - // shared subtree - let shared = a.new_atom(b"shared").unwrap(); - let shared_pair = a.new_pair(shared, shared).unwrap(); - check_auto(&a, shared_pair); -} - -#[test] -fn test_auto_detect_rejects_empty() { - let mut allocator = Allocator::new(); - assert!(node_from_bytes_auto(&mut allocator, b"", DeserializeOptions::default()).is_err()); -} - -#[test] -fn test_auto_detect_classic_single_byte() { - let mut a = Allocator::new(); - let node = node_from_bytes_auto(&mut a, &[0x01], DeserializeOptions::default()).unwrap(); - assert_eq!(a.atom(node).as_ref(), b"\x01"); -} +// Auto-detection (sniff the magic prefix and dispatch) is a Python-only +// convenience now, exposed by `clvm_rs.serde.deserialize(blob, "auto")`. +// See `wheel/python/tests/test_serialize.py` for coverage. #[test] fn test_backrefs_decoder_rejects_serde_2026() { @@ -287,9 +221,10 @@ fn test_serialized_length() { // (under 16 bytes) declares an `instruction_count` near the max representable // varint (~2^54). Pre-fix, the deserializer pre-allocated `instruction_count // / 3` `NodePtr`s — a request of about 24 PB — and the process aborted with -// "memory allocation of N bytes failed". Post-fix, the deserializer rejects -// any declared count above `max_input_bytes` (each follow-up item costs at -// least one byte) and returns `Err` cleanly. +// "memory allocation of N bytes failed". Post-fix, the deserializer starts +// with `Vec::new()` and is bounded by the input slice (or caller-supplied +// `Read::take`), so the loop runs out of bytes long before it can drive the +// vector to a pathological size and we return `Err` cleanly. #[test] fn deserializer_rejects_unbounded_instruction_count() { use super::varint::encode_varint; @@ -297,10 +232,14 @@ fn deserializer_rejects_unbounded_instruction_count() { let mut blob = Vec::new(); blob.extend_from_slice(&encode_varint(0)); // group_count = 0 blob.extend_from_slice(&encode_varint(1_i64 << 54)); // instruction_count - assert!(blob.len() < 16, "PoC blob stays tiny ({} bytes)", blob.len()); + assert!( + blob.len() < 16, + "PoC blob stays tiny ({} bytes)", + blob.len() + ); let mut a = Allocator::new(); - let result = deserialize_2026(&mut a, &blob, DeserializeOptions::default()); + let result = deserialize_2026(&mut a, &blob, TEST_MAX_ATOM_LEN, false); assert!( result.is_err(), "instruction_count must be rejected before pre-allocation" @@ -315,7 +254,7 @@ fn deserializer_rejects_unbounded_group_count() { blob.extend_from_slice(&encode_varint(1_i64 << 54)); // group_count let mut a = Allocator::new(); - let result = deserialize_2026(&mut a, &blob, DeserializeOptions::default()); + let result = deserialize_2026(&mut a, &blob, TEST_MAX_ATOM_LEN, false); assert!( result.is_err(), "group_count must be rejected before pre-allocation" @@ -332,7 +271,7 @@ fn deserializer_rejects_unbounded_per_group_count() { blob.extend_from_slice(&encode_varint(1_i64 << 54)); // count let mut a = Allocator::new(); - let result = deserialize_2026(&mut a, &blob, DeserializeOptions::default()); + let result = deserialize_2026(&mut a, &blob, TEST_MAX_ATOM_LEN, false); assert!( result.is_err(), "per-group count must be rejected before pre-allocation" diff --git a/wheel/python/clvm_rs/clvm_rs.pyi b/wheel/python/clvm_rs/clvm_rs.pyi index d52c048a..c66e67af 100644 --- a/wheel/python/clvm_rs/clvm_rs.pyi +++ b/wheel/python/clvm_rs/clvm_rs.pyi @@ -16,14 +16,14 @@ def deser_backrefs(blob: bytes) -> "LazyNode": ... def deser_2026( blob: bytes, *, - max_atom_len: Optional[int] = None, - max_input_bytes: Optional[int] = None, + max_atom_len: int = ..., + strict: bool = False, ) -> "LazyNode": ... def deser_auto( blob: bytes, *, - max_atom_len: Optional[int] = None, - max_input_bytes: Optional[int] = None, + max_atom_len: int = ..., + strict: bool = False, ) -> "LazyNode": ... # --- Serialize functions --- diff --git a/wheel/python/clvm_rs/serde.py b/wheel/python/clvm_rs/serde.py index ae6c9e74..21e9b0af 100644 --- a/wheel/python/clvm_rs/serde.py +++ b/wheel/python/clvm_rs/serde.py @@ -60,7 +60,6 @@ def deserialize( fmt: str = "auto", *, max_atom_len: int | None = None, - max_input_bytes: int | None = None, strict: bool = False, ): """Deserialize bytes into a LazyNode. @@ -69,20 +68,19 @@ def deserialize( "auto" handles all three formats by inspecting the magic prefix. Keyword-only limits (applied to "2026" and "auto" paths): - max_atom_len: largest single atom in bytes (default ~1 MB) - max_input_bytes: total input budget in bytes (default ~10 MB) + max_atom_len: largest single atom in bytes (default 1 MiB) strict: reject overlong varint encodings + + Total input bytes is bounded by the input slice itself; consensus-aware + callers (e.g. chia_rs) should pass their own ``max_atom_len``. """ fn = _DESERIALIZERS.get(fmt) if fn is None: raise ValueError(f"unknown deserialize format {fmt!r}, expected one of {list(_DESERIALIZERS)}") if fmt in ("2026", "auto"): - kwargs: dict = {} + kwargs: dict = {"strict": strict} if max_atom_len is not None: kwargs["max_atom_len"] = max_atom_len - if max_input_bytes is not None: - kwargs["max_input_bytes"] = max_input_bytes - kwargs["strict"] = strict return fn(blob, **kwargs) return fn(blob) diff --git a/wheel/src/api.rs b/wheel/src/api.rs index ddb82df7..7b4e158d 100644 --- a/wheel/src/api.rs +++ b/wheel/src/api.rs @@ -17,9 +17,12 @@ use clvmr::serde::{ parse_triples, serialized_length_from_bytes, }; use clvmr::serde_2026::{ - DeserializeOptions, SERDE_2026_MAGIC_PREFIX, deserialize_2026, node_from_bytes_auto, - node_to_bytes_serde_2026_level, + SERDE_2026_MAGIC_PREFIX, deserialize_2026, node_to_bytes_serde_2026_level, }; + +/// Sane "don't OOM the parser" default. clvm_rs has no consensus opinion; +/// downstream wrappers (e.g. chia_rs) supply their own caps. +const PY_DEFAULT_MAX_ATOM_LEN: usize = 1 << 20; use pyo3::prelude::*; use pyo3::types::{PyBytes, PyTuple}; @@ -111,34 +114,13 @@ fn deser_backrefs(blob: &[u8]) -> PyResult { Ok(LazyNode::new(Rc::new(a), node)) } -fn make_deserialize_options( - max_atom_len: Option, - max_input_bytes: Option, - strict: bool, -) -> DeserializeOptions { - let mut options = DeserializeOptions::default(); - if let Some(v) = max_atom_len { - options.max_atom_len = v; - } - if let Some(v) = max_input_bytes { - options.max_input_bytes = v; - } - options.strict = strict; - options -} - /// Deserialize a serde_2026 blob. The input must start with /// `SERDE_2026_MAGIC_PREFIX` (the same prefix `ser_2026` emits); the prefix is /// stripped before calling the underlying decoder. This makes `ser_2026` and /// `deser_2026` a symmetric pair. #[pyfunction] -#[pyo3(signature = (blob, *, max_atom_len=None, max_input_bytes=None, strict=false))] -fn deser_2026( - blob: &[u8], - max_atom_len: Option, - max_input_bytes: Option, - strict: bool, -) -> PyResult { +#[pyo3(signature = (blob, *, max_atom_len=PY_DEFAULT_MAX_ATOM_LEN, strict=false))] +fn deser_2026(blob: &[u8], max_atom_len: usize, strict: bool) -> PyResult { let body = blob .strip_prefix(SERDE_2026_MAGIC_PREFIX.as_slice()) .ok_or_else(|| { @@ -147,27 +129,27 @@ fn deser_2026( ) })?; let mut a = Allocator::new(); - let options = make_deserialize_options(max_atom_len, max_input_bytes, strict); - let node = deserialize_2026(&mut a, body, options).map_err(eval_to_py)?; + let node = deserialize_2026(&mut a, body, max_atom_len, strict).map_err(eval_to_py)?; Ok(LazyNode::new(Rc::new(a), node)) } /// Deserialize CLVM bytes, auto-detecting the format (classic, backrefs, or /// serde_2026). If the blob starts with the magic prefix -/// `fd ff 32 30 32 36`, it is -/// treated as serde_2026; otherwise the backrefs deserializer is used (which -/// also handles plain classic format). +/// `fd ff 32 30 32 36`, it is treated as serde_2026; otherwise the backrefs +/// deserializer is used (which also handles plain classic format). +/// +/// This is a Python convenience function — clvm_rs's Rust API doesn't have +/// an auto-switching counterpart. Consensus-aware callers should sniff the +/// prefix themselves and use their own caps. #[pyfunction] -#[pyo3(signature = (blob, *, max_atom_len=None, max_input_bytes=None, strict=false))] -fn deser_auto( - blob: &[u8], - max_atom_len: Option, - max_input_bytes: Option, - strict: bool, -) -> PyResult { +#[pyo3(signature = (blob, *, max_atom_len=PY_DEFAULT_MAX_ATOM_LEN, strict=false))] +fn deser_auto(blob: &[u8], max_atom_len: usize, strict: bool) -> PyResult { let mut a = Allocator::new(); - let options = make_deserialize_options(max_atom_len, max_input_bytes, strict); - let node = node_from_bytes_auto(&mut a, blob, options).map_err(eval_to_py)?; + let node = if let Some(body) = blob.strip_prefix(SERDE_2026_MAGIC_PREFIX.as_slice()) { + deserialize_2026(&mut a, body, max_atom_len, strict).map_err(eval_to_py)? + } else { + node_from_bytes_backrefs(&mut a, blob).map_err(eval_to_py)? + }; Ok(LazyNode::new(Rc::new(a), node)) } From af8cb91b132c2341d0bd34d093bc133f89b3b16b Mon Sep 17 00:00:00 2001 From: Richard Kiss Date: Mon, 4 May 2026 16:12:09 -0700 Subject: [PATCH 13/15] serde_2026: normalize deserialize names, add node_from_bytes_serde_2026 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Rust deserializer family was lopsided: serialize_2026 -> body, no prefix node_to_bytes_serde_2026 -> body + prefix deserialize_2026 -> body, no prefix (name didn't say so) deserialize_2026_from_stream -> body, no prefix (same problem; worse for streams since you can't pre-check the prefix) serialized_length_serde_2026 -> wants prefix (no node_from_bytes_serde_2026) This commit: - Renames `deserialize_2026{,_from_stream}` -> `deserialize_2026_body{,_from_stream}` so the body-only contract is visible at the call site. - Adds `node_from_bytes_serde_2026(a, blob, max_atom_len, strict)` — strips the magic prefix and delegates to the body deserializer. Pairs one-to-one with `node_to_bytes_serde_2026`. - Parametrizes `serialized_length_serde_2026(buf, max_atom_len, strict)` so it mirrors every header-time validation the body deserializer performs (closes the Ok-then-Err mismatch on `instruction_count == 0`, `atom_len > max_atom_len`, and overlong varints under `strict`). - Wheel: `deser_2026` now calls `node_from_bytes_serde_2026` directly instead of stripping the prefix in Python-binding glue. - Self-check, tests, fuzz target, benches: switch to the body name. Includes a regression test (`test_serialized_length_rejects_what_deserialize_rejects`) asserting the length helper rejects every header-time condition the body deserializer rejects. Made-with: Cursor --- benches/deserialize.rs | 8 ++-- fuzz/fuzz_targets/serde_2026.rs | 8 ++-- src/serde/mod.rs | 7 ++-- src/serde_2026/de.rs | 73 +++++++++++++++++++++++++------- src/serde_2026/mod.rs | 5 ++- src/serde_2026/ser.rs | 4 +- src/serde_2026/tests.rs | 74 ++++++++++++++++++++++++++------- wheel/src/api.rs | 19 +++++---- 8 files changed, 146 insertions(+), 52 deletions(-) diff --git a/benches/deserialize.rs b/benches/deserialize.rs index 8b0500a4..6d88bc4f 100644 --- a/benches/deserialize.rs +++ b/benches/deserialize.rs @@ -4,7 +4,7 @@ use clvmr::serde::{ node_to_bytes_backrefs, serialized_length_from_bytes, serialized_length_from_bytes_trusted, tree_hash_from_stream, }; -use clvmr::serde_2026::{deserialize_2026, serialize_2026}; +use clvmr::serde_2026::{deserialize_2026_body, serialize_2026}; const BENCH_MAX_ATOM_LEN: usize = 1 << 20; use criterion::{Criterion, criterion_group, criterion_main}; @@ -95,12 +95,12 @@ fn deserialize_benchmark(c: &mut Criterion) { ] { let mut a = Allocator::new(); let iter_checkpoint = a.checkpoint(); - group.bench_function(format!("deserialize_2026{name_suffix}"), |b| { + group.bench_function(format!("deserialize_2026_body{name_suffix}"), |b| { b.iter(|| { a.restore_checkpoint(&iter_checkpoint); let start = Instant::now(); - deserialize_2026(&mut a, data, BENCH_MAX_ATOM_LEN, false) - .expect("deserialize_2026"); + deserialize_2026_body(&mut a, data, BENCH_MAX_ATOM_LEN, false) + .expect("deserialize_2026_body"); start.elapsed() }) }); diff --git a/fuzz/fuzz_targets/serde_2026.rs b/fuzz/fuzz_targets/serde_2026.rs index 620729f2..fb5537de 100644 --- a/fuzz/fuzz_targets/serde_2026.rs +++ b/fuzz/fuzz_targets/serde_2026.rs @@ -2,7 +2,7 @@ use clvm_fuzzing::ArbitraryClvmTree; use clvmr::serde::node_to_bytes; -use clvmr::serde_2026::{deserialize_2026, serialize_2026_level}; +use clvmr::serde_2026::{deserialize_2026_body, serialize_2026_level}; use clvmr::{Allocator, allocator::NodePtr}; use libfuzzer_sys::{Corpus, fuzz_target}; @@ -20,7 +20,7 @@ fn canonical(a: &Allocator, node: NodePtr) -> Vec { fn roundtrip_check(label: &str, a: &Allocator, original: NodePtr, blob: &[u8]) { let mut a2 = Allocator::new(); - let decoded = deserialize_2026(&mut a2, blob, FUZZ_MAX_ATOM_LEN, false) + let decoded = deserialize_2026_body(&mut a2, blob, FUZZ_MAX_ATOM_LEN, false) .unwrap_or_else(|e| panic!("{label}: deserialize failed: {e:?}")); assert_eq!( canonical(a, original), @@ -45,7 +45,7 @@ fuzz_target!(|input: FuzzInput| -> Corpus { match input { FuzzInput::Bytes(data) => { let mut a = Allocator::new(); - let Ok(node) = deserialize_2026(&mut a, &data, FUZZ_MAX_ATOM_LEN, false) else { + let Ok(node) = deserialize_2026_body(&mut a, &data, FUZZ_MAX_ATOM_LEN, false) else { return Corpus::Reject; }; check_tree(&a, node); @@ -56,7 +56,7 @@ fuzz_target!(|input: FuzzInput| -> Corpus { let mut a2 = Allocator::new(); let blob = serialize_2026_level(&program.allocator, program.tree, 0).expect("Fast failed"); - let decoded = deserialize_2026(&mut a2, &blob, FUZZ_MAX_ATOM_LEN, false) + let decoded = deserialize_2026_body(&mut a2, &blob, FUZZ_MAX_ATOM_LEN, false) .expect("deserialize fast failed"); assert_eq!( canonical(&program.allocator, program.tree), diff --git a/src/serde/mod.rs b/src/serde/mod.rs index f9507d8a..0dea4c0d 100644 --- a/src/serde/mod.rs +++ b/src/serde/mod.rs @@ -43,7 +43,8 @@ pub use tools::{ pub use tree_cache::{TreeCache, TreeCacheCheckpoint}; pub use crate::serde_2026::{ - SERDE_2026_MAGIC_PREFIX, deserialize_2026, deserialize_2026_from_stream, - node_to_bytes_serde_2026, node_to_bytes_serde_2026_level, serialize_2026, serialize_2026_level, - serialize_2026_to_stream, serialize_2026_to_stream_level, serialized_length_serde_2026, + SERDE_2026_MAGIC_PREFIX, deserialize_2026_body, deserialize_2026_body_from_stream, + node_from_bytes_serde_2026, node_to_bytes_serde_2026, node_to_bytes_serde_2026_level, + serialize_2026, serialize_2026_level, serialize_2026_to_stream, serialize_2026_to_stream_level, + serialized_length_serde_2026, }; diff --git a/src/serde_2026/de.rs b/src/serde_2026/de.rs index 9938a8dd..284bacb5 100644 --- a/src/serde_2026/de.rs +++ b/src/serde_2026/de.rs @@ -23,6 +23,10 @@ fn checked_bounded_usize(value: i64, max: usize) -> Result { /// Deserialize a node from a stream using the 2026 format. /// +/// **Reads the body only — does *not* expect the magic prefix.** Callers +/// that have a full prefix-framed blob should use [`node_from_bytes_serde_2026`] +/// (slice) or strip the prefix themselves before calling this. +/// /// `max_atom_len` caps the byte length of any single atom (and therefore the /// pre-allocation done while reading atom bytes). `strict` rejects overlong / /// non-minimal varint encodings. @@ -30,9 +34,9 @@ fn checked_bounded_usize(value: i64, max: usize) -> Result { /// **Caller contract:** `reader` must be bounded — for example via /// [`std::io::Read::take`] — otherwise a malformed blob can drive an unbounded /// loop. Total input policy belongs in the caller, not here. Use -/// [`deserialize_2026`] when you have a slice; the slice's length is the +/// [`deserialize_2026_body`] when you have a slice; the slice's length is the /// natural bound. -pub fn deserialize_2026_from_stream( +pub fn deserialize_2026_body_from_stream( allocator: &mut Allocator, reader: &mut R, max_atom_len: usize, @@ -125,24 +129,56 @@ pub fn deserialize_2026_from_stream( /// Deserialize a node from a byte slice using the 2026 format. /// +/// **Body only — does *not* strip the magic prefix.** Pairs with +/// [`serialize_2026`]. Callers with a prefix-framed blob should use +/// [`node_from_bytes_serde_2026`]. +/// /// The slice's length naturally bounds the input; no separate input-byte /// budget is required. `max_atom_len` caps the byte length of any single /// atom and `strict` rejects overlong / non-minimal varint encodings. -pub fn deserialize_2026( +pub fn deserialize_2026_body( allocator: &mut Allocator, data: &[u8], max_atom_len: usize, strict: bool, ) -> Result { - deserialize_2026_from_stream(allocator, &mut Cursor::new(data), max_atom_len, strict) + deserialize_2026_body_from_stream(allocator, &mut Cursor::new(data), max_atom_len, strict) +} + +/// Deserialize a magic-prefixed serde_2026 blob. +/// +/// Verifies and strips [`SERDE_2026_MAGIC_PREFIX`], then delegates to +/// [`deserialize_2026_body`]. Pairs with [`super::ser::node_to_bytes_serde_2026`]. +pub fn node_from_bytes_serde_2026( + allocator: &mut Allocator, + blob: &[u8], + max_atom_len: usize, + strict: bool, +) -> Result { + let body = blob + .strip_prefix(SERDE_2026_MAGIC_PREFIX.as_slice()) + .ok_or(EvalErr::SerializationError)?; + deserialize_2026_body(allocator, body, max_atom_len, strict) } /// Compute the serialized length of a serde_2026 blob (including magic prefix). /// /// Walks the header structure without allocating or building a CLVM tree. +/// Mirrors every header-time validation +/// [`deserialize_2026_body_from_stream`] performs, so a blob that returns +/// `Ok(len)` here is guaranteed to clear the deserializer's header parse +/// (instruction-stream stack invariants and index validity are still checked +/// at deserialize time — those can't be byte-counted). +/// +/// `max_atom_len` caps any declared atom length and `strict` rejects +/// overlong / non-minimal varint encodings — pass the same values you would +/// pass to the deserializer. For framing-only callers that don't want a +/// policy opinion, `usize::MAX` and `false` accept anything the deserializer +/// could itself parse on a sufficiently permissive caller. +/// /// The input buffer may contain trailing data; only the bytes belonging to /// the serde_2026 blob are counted. -pub fn serialized_length_serde_2026(buf: &[u8]) -> Result { +pub fn serialized_length_serde_2026(buf: &[u8], max_atom_len: usize, strict: bool) -> Result { if !buf.starts_with(&SERDE_2026_MAGIC_PREFIX) { return Err(EvalErr::SerializationError); } @@ -150,27 +186,27 @@ pub fn serialized_length_serde_2026(buf: &[u8]) -> Result { let data = &buf[SERDE_2026_MAGIC_PREFIX.len()..]; let mut cursor = Cursor::new(data); - let group_count = checked_usize(decode_varint(&mut cursor, false)?)?; + let group_count = checked_usize(decode_varint(&mut cursor, strict)?)?; for _ in 0..group_count { - let length_val = decode_varint(&mut cursor, false)?; + let length_val = decode_varint(&mut cursor, strict)?; let skip = if length_val < 0 { if length_val == i64::MIN { return Err(EvalErr::SerializationError); } - let atom_len = (-length_val) as u64; - let count = checked_usize(decode_varint(&mut cursor, false)?)?; + let atom_len = checked_bounded_usize(-length_val, max_atom_len)?; + let count = checked_usize(decode_varint(&mut cursor, strict)?)?; if atom_len == 0 || count == 0 { return Err(EvalErr::SerializationError); } - let count = count as u64; - atom_len - .checked_mul(count) + (atom_len as u64) + .checked_mul(count as u64) .ok_or(EvalErr::SerializationError)? } else { - if length_val == 0 { + let atom_len = checked_bounded_usize(length_val, max_atom_len)?; + if atom_len == 0 { return Err(EvalErr::SerializationError); } - length_val as u64 + atom_len as u64 }; let new_pos = cursor .position() @@ -182,9 +218,14 @@ pub fn serialized_length_serde_2026(buf: &[u8]) -> Result { cursor.set_position(new_pos); } - let instruction_count = checked_usize(decode_varint(&mut cursor, false)?)?; + let instruction_count = checked_usize(decode_varint(&mut cursor, strict)?)?; + // Mirror `deserialize_2026_body_from_stream`: instruction_count == 0 + // leaves the stack empty and is rejected there, so reject it here too. + if instruction_count == 0 { + return Err(EvalErr::SerializationError); + } for _ in 0..instruction_count { - decode_varint(&mut cursor, false)?; + decode_varint(&mut cursor, strict)?; } Ok(SERDE_2026_MAGIC_PREFIX.len() as u64 + cursor.position()) diff --git a/src/serde_2026/mod.rs b/src/serde_2026/mod.rs index e548812c..4c841ffe 100644 --- a/src/serde_2026/mod.rs +++ b/src/serde_2026/mod.rs @@ -50,7 +50,10 @@ pub(crate) enum Compression { Fast = 0, } -pub use de::{deserialize_2026, deserialize_2026_from_stream, serialized_length_serde_2026}; +pub use de::{ + deserialize_2026_body, deserialize_2026_body_from_stream, node_from_bytes_serde_2026, + serialized_length_serde_2026, +}; pub use ser::{ node_to_bytes_serde_2026, node_to_bytes_serde_2026_level, serialize_2026, serialize_2026_level, serialize_2026_to_stream, serialize_2026_to_stream_level, diff --git a/src/serde_2026/ser.rs b/src/serde_2026/ser.rs index 0d9ae63d..657d34be 100644 --- a/src/serde_2026/ser.rs +++ b/src/serde_2026/ser.rs @@ -258,10 +258,10 @@ pub(super) fn serialize_with_strategy( /// Debug-only: deserialize `bytes` and verify it equals `node`. Panics on mismatch. #[cfg(debug_assertions)] pub(super) fn debug_assert_roundtrip(allocator: &Allocator, node: NodePtr, bytes: &[u8]) { - use super::de::deserialize_2026; + use super::de::deserialize_2026_body; let mut probe = Allocator::new(); // Self-check uses 1 MiB max atom (matches the legacy non-consensus default). - let decoded = deserialize_2026(&mut probe, bytes, 1 << 20, false) + let decoded = deserialize_2026_body(&mut probe, bytes, 1 << 20, false) .expect("serde_2026 self-check: produced bytes that fail to deserialize"); assert!( cross_allocator_eq(allocator, node, &probe, decoded), diff --git a/src/serde_2026/tests.rs b/src/serde_2026/tests.rs index 836d7e7b..d285f293 100644 --- a/src/serde_2026/tests.rs +++ b/src/serde_2026/tests.rs @@ -1,7 +1,7 @@ //! Tests for the 2026 serialization format. use super::{ - SERDE_2026_MAGIC_PREFIX, deserialize_2026, node_to_bytes_serde_2026, serialize_2026_level, + SERDE_2026_MAGIC_PREFIX, deserialize_2026_body, node_to_bytes_serde_2026, serialize_2026_level, serialized_length_serde_2026, }; use crate::allocator::Allocator; @@ -69,7 +69,7 @@ fn test_round_trip(#[case] hex: &str) { for (label, level, blob) in &blobs { // First trip: tree equivalence let mut a2 = Allocator::new(); - let n2 = deserialize_2026(&mut a2, blob, TEST_MAX_ATOM_LEN, false).unwrap(); + let n2 = deserialize_2026_body(&mut a2, blob, TEST_MAX_ATOM_LEN, false).unwrap(); assert_eq!( node_to_bytes(&a2, n2).unwrap(), canonical, @@ -104,7 +104,7 @@ fn test_round_trip(#[case] hex: &str) { fn test_deserialize_rejects_malformed(#[case] data: &[u8], #[case] _desc: &str) { let mut allocator = Allocator::new(); assert!( - deserialize_2026(&mut allocator, data, TEST_MAX_ATOM_LEN, false).is_err(), + deserialize_2026_body(&mut allocator, data, TEST_MAX_ATOM_LEN, false).is_err(), "should reject: {_desc}" ); } @@ -116,7 +116,7 @@ fn test_strict_rejects_overlong_varints() { // group_count=1 encoded as two bytes, then a valid single atom payload. let overlong_group_count = [0x80, 0x01, 0x01, b'A', 0x01, 0x02]; assert!( - deserialize_2026( + deserialize_2026_body( &mut allocator, &overlong_group_count, TEST_MAX_ATOM_LEN, @@ -125,7 +125,7 @@ fn test_strict_rejects_overlong_varints() { .is_err() ); - let decoded = deserialize_2026( + let decoded = deserialize_2026_body( &mut allocator, &overlong_group_count, TEST_MAX_ATOM_LEN, @@ -177,7 +177,7 @@ fn test_serialized_length() { let node = allocator.new_atom(b"hello").unwrap(); let bytes = node_to_bytes_serde_2026(&allocator, node).unwrap(); assert_eq!( - serialized_length_serde_2026(&bytes).unwrap(), + serialized_length_serde_2026(&bytes, TEST_MAX_ATOM_LEN, false).unwrap(), bytes.len() as u64 ); @@ -187,7 +187,7 @@ fn test_serialized_length() { let pair = allocator.new_pair(left, right).unwrap(); let bytes = node_to_bytes_serde_2026(&allocator, pair).unwrap(); assert_eq!( - serialized_length_serde_2026(&bytes).unwrap(), + serialized_length_serde_2026(&bytes, TEST_MAX_ATOM_LEN, false).unwrap(), bytes.len() as u64 ); @@ -199,7 +199,7 @@ fn test_serialized_length() { let root = allocator.new_pair(p2, p1).unwrap(); let bytes = node_to_bytes_serde_2026(&allocator, root).unwrap(); assert_eq!( - serialized_length_serde_2026(&bytes).unwrap(), + serialized_length_serde_2026(&bytes, TEST_MAX_ATOM_LEN, false).unwrap(), bytes.len() as u64 ); @@ -207,13 +207,59 @@ fn test_serialized_length() { let mut padded = bytes.clone(); padded.extend_from_slice(b"trailing garbage"); assert_eq!( - serialized_length_serde_2026(&padded).unwrap(), + serialized_length_serde_2026(&padded, TEST_MAX_ATOM_LEN, false).unwrap(), bytes.len() as u64 ); // rejects non-prefixed / empty - assert!(serialized_length_serde_2026(b"\x80").is_err()); - assert!(serialized_length_serde_2026(b"").is_err()); + assert!(serialized_length_serde_2026(b"\x80", TEST_MAX_ATOM_LEN, false).is_err()); + assert!(serialized_length_serde_2026(b"", TEST_MAX_ATOM_LEN, false).is_err()); +} + +/// `serialized_length_serde_2026` must reject every header-time condition +/// that `deserialize_2026_body` rejects, so callers can use the length helper to +/// gate before deserializing without observing Ok-then-Err mismatches. +#[test] +fn test_serialized_length_rejects_what_deserialize_rejects() { + use super::varint::encode_varint; + + let mk = |group_count: i64, instruction_count: i64, atom_table: &[u8]| { + let mut blob = Vec::new(); + blob.extend_from_slice(&SERDE_2026_MAGIC_PREFIX); + blob.extend_from_slice(&encode_varint(group_count)); + blob.extend_from_slice(atom_table); + blob.extend_from_slice(&encode_varint(instruction_count)); + blob + }; + + // Cases that deserialize_2026_body rejects at header time. For each one, + // serialized_length_serde_2026 must also reject. + let cases: &[(&str, Vec)] = &[ + // instruction_count = 0 with non-empty atom table + ( + "instruction_count == 0", + mk(1, 0, &[0x01, b'A']), // one group, length=1, atom='A' + ), + // group with length = 0 + ("group length == 0", mk(1, 1, &[0x00])), + // multi-atom group with count = 0 + ( + "multi-atom group count == 0", + mk(1, 1, &[0x7f, 0x00, b'A']), // length=-1 (multi-atom), count=0 + ), + ]; + + let mut a = Allocator::new(); + for (label, blob) in cases { + assert!( + deserialize_2026_body(&mut a, blob, TEST_MAX_ATOM_LEN, false).is_err(), + "{label}: deserialize must reject" + ); + assert!( + serialized_length_serde_2026(blob, TEST_MAX_ATOM_LEN, false).is_err(), + "{label}: serialized_length must reject (mirrors deserialize)" + ); + } } // --------------------------------------------------------------------------- @@ -239,7 +285,7 @@ fn deserializer_rejects_unbounded_instruction_count() { ); let mut a = Allocator::new(); - let result = deserialize_2026(&mut a, &blob, TEST_MAX_ATOM_LEN, false); + let result = deserialize_2026_body(&mut a, &blob, TEST_MAX_ATOM_LEN, false); assert!( result.is_err(), "instruction_count must be rejected before pre-allocation" @@ -254,7 +300,7 @@ fn deserializer_rejects_unbounded_group_count() { blob.extend_from_slice(&encode_varint(1_i64 << 54)); // group_count let mut a = Allocator::new(); - let result = deserialize_2026(&mut a, &blob, TEST_MAX_ATOM_LEN, false); + let result = deserialize_2026_body(&mut a, &blob, TEST_MAX_ATOM_LEN, false); assert!( result.is_err(), "group_count must be rejected before pre-allocation" @@ -271,7 +317,7 @@ fn deserializer_rejects_unbounded_per_group_count() { blob.extend_from_slice(&encode_varint(1_i64 << 54)); // count let mut a = Allocator::new(); - let result = deserialize_2026(&mut a, &blob, TEST_MAX_ATOM_LEN, false); + let result = deserialize_2026_body(&mut a, &blob, TEST_MAX_ATOM_LEN, false); assert!( result.is_err(), "per-group count must be rejected before pre-allocation" diff --git a/wheel/src/api.rs b/wheel/src/api.rs index 7b4e158d..0111d24b 100644 --- a/wheel/src/api.rs +++ b/wheel/src/api.rs @@ -17,7 +17,8 @@ use clvmr::serde::{ parse_triples, serialized_length_from_bytes, }; use clvmr::serde_2026::{ - SERDE_2026_MAGIC_PREFIX, deserialize_2026, node_to_bytes_serde_2026_level, + SERDE_2026_MAGIC_PREFIX, deserialize_2026_body, node_from_bytes_serde_2026, + node_to_bytes_serde_2026_level, }; /// Sane "don't OOM the parser" default. clvm_rs has no consensus opinion; @@ -121,15 +122,17 @@ fn deser_backrefs(blob: &[u8]) -> PyResult { #[pyfunction] #[pyo3(signature = (blob, *, max_atom_len=PY_DEFAULT_MAX_ATOM_LEN, strict=false))] fn deser_2026(blob: &[u8], max_atom_len: usize, strict: bool) -> PyResult { - let body = blob - .strip_prefix(SERDE_2026_MAGIC_PREFIX.as_slice()) - .ok_or_else(|| { + let mut a = Allocator::new(); + let node = node_from_bytes_serde_2026(&mut a, blob, max_atom_len, strict).map_err(|e| { + // Translate the prefix-missing error into a friendlier ValueError. + if !blob.starts_with(SERDE_2026_MAGIC_PREFIX.as_slice()) { pyo3::exceptions::PyValueError::new_err( "deser_2026: blob is missing the serde_2026 magic prefix", ) - })?; - let mut a = Allocator::new(); - let node = deserialize_2026(&mut a, body, max_atom_len, strict).map_err(eval_to_py)?; + } else { + eval_to_py(e) + } + })?; Ok(LazyNode::new(Rc::new(a), node)) } @@ -146,7 +149,7 @@ fn deser_2026(blob: &[u8], max_atom_len: usize, strict: bool) -> PyResult PyResult { let mut a = Allocator::new(); let node = if let Some(body) = blob.strip_prefix(SERDE_2026_MAGIC_PREFIX.as_slice()) { - deserialize_2026(&mut a, body, max_atom_len, strict).map_err(eval_to_py)? + deserialize_2026_body(&mut a, body, max_atom_len, strict).map_err(eval_to_py)? } else { node_from_bytes_backrefs(&mut a, blob).map_err(eval_to_py)? }; From 6ac4265cac3264fe2dfa4f126c3df5c577f3611e Mon Sep 17 00:00:00 2001 From: Richard Kiss Date: Mon, 4 May 2026 16:35:31 -0700 Subject: [PATCH 14/15] =?UTF-8?q?serde=5F2026:=20fix=20vacuous=20test=20?= =?UTF-8?q?=E2=80=94=20use=20prefix-aware=20deserializer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cursor Bugbot caught that test_serialized_length_rejects_what_deserialize_rejects was calling `deserialize_2026_body` with a magic-prefixed blob from the `mk` helper. The body deserializer treats the leading 0xfd as a giant negative varint and rejects every input regardless of the header-time condition under test, making the first assertion vacuously pass. Switch the deserializer call to `node_from_bytes_serde_2026` so the test actually exercises the conditions it claims to (instruction_count == 0, group length == 0, multi-atom group count == 0). Made-with: Cursor --- src/serde_2026/tests.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/serde_2026/tests.rs b/src/serde_2026/tests.rs index d285f293..c96b733b 100644 --- a/src/serde_2026/tests.rs +++ b/src/serde_2026/tests.rs @@ -1,8 +1,8 @@ //! Tests for the 2026 serialization format. use super::{ - SERDE_2026_MAGIC_PREFIX, deserialize_2026_body, node_to_bytes_serde_2026, serialize_2026_level, - serialized_length_serde_2026, + SERDE_2026_MAGIC_PREFIX, deserialize_2026_body, node_from_bytes_serde_2026, + node_to_bytes_serde_2026, serialize_2026_level, serialized_length_serde_2026, }; use crate::allocator::Allocator; use crate::serde::{node_from_bytes_backrefs, node_to_bytes}; @@ -251,8 +251,10 @@ fn test_serialized_length_rejects_what_deserialize_rejects() { let mut a = Allocator::new(); for (label, blob) in cases { + // Use the prefix-aware deserializer so the asymmetry under test + // (header-time rejections) is what fails, not the magic-prefix check. assert!( - deserialize_2026_body(&mut a, blob, TEST_MAX_ATOM_LEN, false).is_err(), + node_from_bytes_serde_2026(&mut a, blob, TEST_MAX_ATOM_LEN, false).is_err(), "{label}: deserialize must reject" ); assert!( From df894a9148fca2cfc74a52b0f6c835018031dfcb Mon Sep 17 00:00:00 2001 From: Richard Kiss Date: Mon, 4 May 2026 16:49:19 -0700 Subject: [PATCH 15/15] program.py: route from_bytes_backrefs through deser_auto The previous implementation went through CLVMTree.from_bytes -> deserialize_as_tuples, which is a classic-format-only parser. As a result, Program.from_bytes_backrefs("...") raised ValueError on any blob that actually used the 0xfe backref opcode, despite the method's name implying backref support. After this change, from_bytes_backrefs: - still rejects the serde_2026 magic prefix up front - delegates to the Rust deser_auto binding, which handles both classic and backrefs formats Adds a regression test that round-trips a tree-with-shared-subtrees through the backrefs encoder and Program.from_bytes_backrefs (asserting the blob contains at least one 0xfe backref byte). The existing test_repr_clvm_tree case is updated to use Program.from_bytes_with_cursor, which is the actual CLVMTree-producing entry point. Reported by Cursor bot on PR #708. Co-authored-by: Cursor --- wheel/python/clvm_rs/program.py | 3 +-- wheel/python/tests/test_serialize.py | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/wheel/python/clvm_rs/program.py b/wheel/python/clvm_rs/program.py index ae5f1220..3f7a90ad 100644 --- a/wheel/python/clvm_rs/program.py +++ b/wheel/python/clvm_rs/program.py @@ -51,8 +51,7 @@ def from_bytes_backrefs(cls, blob: bytes) -> Program: """Deserialize classic or backrefs format only (rejects serde_2026).""" if blob.startswith(SERDE_2026_MAGIC_PREFIX): raise ValueError("unexpected serde_2026 format; use from_bytes() for auto-detection") - obj, cursor = cls.from_bytes_with_cursor(blob, 0) - return obj + return cls.wrap(deser_auto(blob)) @classmethod def from_bytes_with_cursor( diff --git a/wheel/python/tests/test_serialize.py b/wheel/python/tests/test_serialize.py index 710ece18..15448d99 100644 --- a/wheel/python/tests/test_serialize.py +++ b/wheel/python/tests/test_serialize.py @@ -140,7 +140,7 @@ def test_repr_clvm_tree(self): with self.assertRaises(ValueError): Program.fromhex("ff8085") - o = Program.from_bytes_backrefs(bytes.fromhex("ff808185")) + o, _ = Program.from_bytes_with_cursor(bytes.fromhex("ff808185"), 0) self.assertEqual(repr(o._unwrapped_pair[0]), "") self.assertEqual(repr(o._unwrapped_pair[1]), "") @@ -179,6 +179,24 @@ def test_backrefs_parser_rejects_2026(self): with self.assertRaises(ValueError): Program.from_bytes_backrefs(prefixed) + def test_from_bytes_backrefs_with_actual_backrefs(self): + """Test that from_bytes_backrefs actually parses backrefs format (0xfe opcodes).""" + # Construct a tree with shared subtrees that will trigger backref encoding + shared = Program.to([b"shared_atom", b"another_shared_atom"]) + p = Program.to([shared, shared, shared, shared, shared]) + + # Serialize using backrefs format + blob = serialize(deserialize(bytes(p), "legacy"), "backrefs") + + # Assert the blob contains at least one 0xfe backref opcode + self.assertIn(0xfe, blob, "backrefs-encoded blob should contain at least one 0xfe byte") + + # Round-trip through from_bytes_backrefs + p2 = Program.from_bytes_backrefs(blob) + + # Verify equality (by tree hash) + self.assertEqual(p, p2) + class ClvmTreeToLazyNodeTest(unittest.TestCase): """Tests for clvm_tree_to_lazy_node."""