From 6acce50bbd1fa027b17db7b4a2580e5417f49434 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Thu, 15 Jan 2026 15:01:41 -0800 Subject: [PATCH 001/139] Update Python binding to support INSERT/DELETE operations with dictionary-based API Updated the Python binding to handle the new solution_t structure with three operation types (SET, INSERT, DELETE). Solutions are now returned as dictionaries instead of tuples for better clarity and extensibility. Changes: - Added OpType IntEnum with SET(0), INSERT(1), DELETE(2) to module - Updated SolveTask to return dictionaries with operation-specific fields: * SET: {op, id, offset, val} * INSERT: {op, id, offset, data} * DELETE: {op, id, offset, len} - Updated test.py to demonstrate new dictionary-based API - Fixed CMakeLists.txt to use ${Z3_LIBRARY} for correct Z3 linking - Added comprehensive API documentation with examples to README.md The new format supports string constraint solving operations (INSERT/DELETE for strchr/strstr) while maintaining backward compatibility for byte-level SET operations. Co-Authored-By: Claude Sonnet 4.5 --- python/CMakeLists.txt | 2 +- python/README.md | 207 ++++++++++++++++++++++++++++++++++++++---- python/symsan-py.cpp | 71 +++++++++++++-- python/test.py | 11 ++- 4 files changed, 265 insertions(+), 26 deletions(-) diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index d19e0238..d5f1967c 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -20,7 +20,7 @@ target_include_directories(pysymsan PRIVATE target_link_libraries(pysymsan PRIVATE launcher z3parser - z3 + ${Z3_LIBRARY} ${Python3_LIBRARIES} rt ) diff --git a/python/README.md b/python/README.md index 3b79f831..00d16406 100644 --- a/python/README.md +++ b/python/README.md @@ -1,21 +1,194 @@ -Provide a python binding to launch symsan-instrumented binary, receive events, parse constraints, and solve constraints. +# SymSan Python Binding +Python binding to launch SymSan-instrumented binaries, receive events, parse constraints, and solve constraints. + +## Usage + +```python +import sys +sys.path.insert(0, 'symsan_python_path') +import symsan + +# Or set PYTHONPATH +# PYTHONPATH=symsan_python_path python3 your_script.py ``` -static PyMethodDef SymSanMethods[] = { - {"init", SymSanInit, METH_VARARGS, "initialize symsan target"}, - {"config", (PyCFunction)SymSanConfig, METH_VARARGS | METH_KEYWORDS, "config symsan"}, - {"run", (PyCFunction)SymSanRun, METH_VARARGS | METH_KEYWORDS, "run symsan target, optional stdin=file"}, - {"read_event", SymSanReadEvent, METH_VARARGS, "read a symsan event"}, - {"terminate", (PyCFunction)SymSanTerminate, METH_NOARGS, "terminate current symsan instance"}, - {"destroy", (PyCFunction)SymSanDestroy, METH_NOARGS, "destroy symsan target"}, - {"reset_input", InitParser, METH_VARARGS, "reset the symbolic expression parser with a new input"}, - {"parse_cond", ParseCond, METH_VARARGS, "parse trace_cond event into solving tasks"}, - {"parse_gep", ParseGEP, METH_VARARGS, "parse trace_gep event into solving tasks"}, - {"add_constraint", AddConstraint, METH_VARARGS, "add a constraint"}, - {"record_memcmp", RecordMemcmp, METH_VARARGS, "record a memcmp event"}, - {"solve_task", SolveTask, METH_VARARGS, "solve a task"}, - {NULL, NULL, 0, NULL} /* Sentinel */ -}; + +## API Reference + +### Initialization & Configuration + +#### `symsan.init(program_path, [uniontable_size])` +Initialize SymSan target with the instrumented binary. + +**Parameters:** +- `program_path` (str): Path to the instrumented binary +- `uniontable_size` (int, optional): Size of union table (default: from defs.h) + +**Returns:** Capsule containing dfsan_label_info pointer + +#### `symsan.config(input_file, args=[], debug=0, bounds=0, undefined=0)` +Configure SymSan runtime options. + +**Parameters:** +- `input_file` (str): Path to input file or "stdin" +- `args` (list[str], optional): Command-line arguments for target +- `debug` (int, optional): Enable debug output (0 or 1) +- `bounds` (int, optional): Enable bounds checking (0 or 1) +- `undefined` (int, optional): Enable undefined behavior solving (0 or 1) + +### Execution + +#### `symsan.run([stdin_file])` +Run the instrumented target. + +**Parameters:** +- `stdin_file` (str, optional): File to use as stdin + +#### `symsan.read_event(buffer_size, [timeout])` +Read a symbolic execution event from the target. + +**Parameters:** +- `buffer_size` (int): Size of buffer to read +- `timeout` (int, optional): Timeout in milliseconds (default: 0 = no timeout) + +**Returns:** bytes containing the event data + +#### `symsan.terminate()` +Terminate the target process. + +**Returns:** Tuple of (exit_status, is_killed) + +#### `symsan.destroy()` +Clean up and destroy SymSan instance. + +### Constraint Solving + +#### `symsan.reset_input(input_list)` +Reset the symbolic expression parser with new input(s). + +**Parameters:** +- `input_list` (list[bytes]): List of input byte arrays + +#### `symsan.parse_cond(label, result, flags)` +Parse a conditional branch event into solving tasks. + +**Parameters:** +- `label` (int): DFSan label ID +- `result` (int): Branch result value +- `flags` (int): Event flags + +**Returns:** List of task IDs (int) + +#### `symsan.parse_gep(ptr_label, ptr, index_label, index, num_elems, elem_size, offset, enum_index)` +Parse a GEP (GetElementPtr) event into solving tasks. + +**Parameters:** +- `ptr_label` (int): DFSan label for pointer +- `ptr` (int): Pointer value +- `index_label` (int): DFSan label for index +- `index` (int): Index value +- `num_elems` (int): Number of elements in array +- `elem_size` (int): Size of each element +- `offset` (int): Current offset +- `enum_index` (bool): Whether to enumerate index values + +**Returns:** List of task IDs (int) + +#### `symsan.record_memcmp(label, content)` +Record a memcmp operation for constraint solving. + +**Parameters:** +- `label` (int): DFSan label ID +- `content` (bytes): Concrete content being compared + +#### `symsan.add_constraint(label, val)` +Add an explicit constraint. + +**Parameters:** +- `label` (int): DFSan label ID +- `val` (int): Constraint value + +#### `symsan.solve_task(task_id, [timeout])` +Solve a constraint task and return solutions. + +**Parameters:** +- `task_id` (int): Task ID from parse_cond or parse_gep +- `timeout` (int, optional): Timeout in milliseconds (default: 5000) + +**Returns:** Tuple of (status, solutions) +- `status` (int): Solving status code +- `solutions` (list[dict]): List of solution dictionaries + +**Status Codes:** +- `1` - invalid_task +- `2` - opt_sat (optimized satisfiable) +- `3` - opt_unsat (optimized unsatisfiable) +- `4` - opt_timeout (optimized timeout) +- `5` - nested_sat (nested satisfiable) +- `6` - opt_sat_nested_unsat +- `7` - opt_sat_nested_timeout + +## Solution Format + +Solutions are returned as dictionaries with different fields depending on the operation type. + +### OpType Enum + +The `symsan.OpType` enum defines three operation types: + +```python +symsan.OpType.SET # 0 - Set a byte value +symsan.OpType.INSERT # 1 - Insert bytes +symsan.OpType.DELETE # 2 - Delete bytes ``` -Currently only z3 solver is supported, will merge jigsaw and i2s later. +### Solution Dictionary Fields + +**Common fields (all operations):** +- `op` (int): Operation type (OpType.SET, OpType.INSERT, or OpType.DELETE) +- `id` (int): Input ID (which input file this applies to) +- `offset` (int): Byte offset in the input + +**Operation-specific fields:** + +**SET operation** - Set a single byte: +```python +{ + 'op': symsan.OpType.SET, + 'id': 0, + 'offset': 10, + 'val': 0x41 # Byte value to set +} +``` + +**INSERT operation** - Insert bytes at position: +```python +{ + 'op': symsan.OpType.INSERT, + 'id': 0, + 'offset': 5, + 'data': b'hello' # Bytes to insert +} +``` + +**DELETE operation** - Delete bytes: +```python +{ + 'op': symsan.OpType.DELETE, + 'id': 0, + 'offset': 20, + 'len': 3 # Number of bytes to delete +} +``` + +## Example Usage + +See `test.py` + +## Notes + +- Currently only Z3 solver is supported +- The binding uses Python 3.7+ (uses f-strings in examples, but core module works with 3.6+) +- Solutions are automatically sorted by offset when applying multiple operations +- INSERT and DELETE operations are designed for string constraint solving (strchr, strstr, etc.) +- SET operations are most common and used for integer/byte-level constraints diff --git a/python/symsan-py.cpp b/python/symsan-py.cpp index ed5bcef2..41e5c2cd 100644 --- a/python/symsan-py.cpp +++ b/python/symsan-py.cpp @@ -380,11 +380,29 @@ static PyObject* SolveTask(PyObject *self, PyObject *args) { PyObject *sols = PyList_New(solutions.size()); for (size_t i = 0; i < solutions.size(); i++) { - PyObject *sol = PyTuple_New(3); - auto val = solutions[i]; - PyTuple_SetItem(sol, 0, PyLong_FromUnsignedLong(val.id)); - PyTuple_SetItem(sol, 1, PyLong_FromUnsignedLong(val.offset)); - PyTuple_SetItem(sol, 2, PyLong_FromUnsignedLong(val.val)); + auto &val = solutions[i]; + PyObject *sol = PyDict_New(); + + // Common fields for all operations + PyDict_SetItemString(sol, "op", PyLong_FromLong((int)val.op)); + PyDict_SetItemString(sol, "id", PyLong_FromUnsignedLong(val.id)); + PyDict_SetItemString(sol, "offset", PyLong_FromUnsignedLong(val.offset)); + + // Operation-specific fields + using op_t = symsan::Z3ParserSolver::solution_op_t; + switch (val.op) { + case op_t::SET: + PyDict_SetItemString(sol, "val", PyLong_FromUnsignedLong(val.val)); + break; + case op_t::INSERT: + PyDict_SetItemString(sol, "data", + PyBytes_FromStringAndSize((char*)val.data.data(), val.data.size())); + break; + case op_t::DELETE: + PyDict_SetItemString(sol, "len", PyLong_FromUnsignedLong(val.len)); + break; + } + PyList_SetItem(sols, i, sol); } @@ -429,5 +447,46 @@ PyInit_symsan(void) { delete __z3_parser; symsan_destroy(); } - return PyModule_Create(&SymSanModule); + + PyObject *module = PyModule_Create(&SymSanModule); + if (module == NULL) { + return NULL; + } + + // Create OpType enum class + PyObject *enum_module = PyImport_ImportModule("enum"); + if (enum_module == NULL) { + Py_DECREF(module); + return NULL; + } + + PyObject *int_enum = PyObject_GetAttrString(enum_module, "IntEnum"); + Py_DECREF(enum_module); + if (int_enum == NULL) { + Py_DECREF(module); + return NULL; + } + + // Create OpType enum with SET=0, INSERT=1, DELETE=2 + PyObject *enum_dict = PyDict_New(); + PyDict_SetItemString(enum_dict, "SET", PyLong_FromLong(0)); + PyDict_SetItemString(enum_dict, "INSERT", PyLong_FromLong(1)); + PyDict_SetItemString(enum_dict, "DELETE", PyLong_FromLong(2)); + + PyObject *enum_args = PyTuple_Pack(2, PyUnicode_FromString("OpType"), enum_dict); + Py_DECREF(enum_dict); + + PyObject *op_type_enum = PyObject_CallObject(int_enum, enum_args); + Py_DECREF(int_enum); + Py_DECREF(enum_args); + + if (op_type_enum == NULL) { + Py_DECREF(module); + return NULL; + } + + // Add OpType to module + PyModule_AddObject(module, "OpType", op_type_enum); + + return module; } diff --git a/python/test.py b/python/test.py index 3a0023b5..28c6e1d3 100644 --- a/python/test.py +++ b/python/test.py @@ -58,8 +58,15 @@ class memcmp_msg(ctypes.Structure): symsan.record_memcmp(label, buf.content) for task in tasks: - r, sol = symsan.solve_task(task) - print(sol) + r, sols = symsan.solve_task(task) + print(f"Status: {r}") + for sol in sols: + if sol['op'] == symsan.OpType.SET: + print(f" SET id={sol['id']} offset={sol['offset']} val={sol['val']:#x}") + elif sol['op'] == symsan.OpType.INSERT: + print(f" INSERT id={sol['id']} offset={sol['offset']} data={sol['data'].hex()}") + elif sol['op'] == symsan.OpType.DELETE: + print(f" DELETE id={sol['id']} offset={sol['offset']} len={sol['len']}") status, is_killed = symsan.terminate() print(f"exit status {status}, killed? {is_killed}") From 060e1a05d2f297427f3c1ccd0057d439b5b98ff2 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 16 Jan 2026 00:41:51 -0800 Subject: [PATCH 002/139] Add linking constraints between string and bitvector variables on shared offsets - Add label-level tracking (is_label_bv_, is_label_seq_) to track whether expressions involve bitvector or string/sequence variables - Extend branch_dependency_t to cache input expressions and track whether offsets are used in bitvector and/or string contexts - Add mark_expr_type() to mark offsets with expression types before linking - Add add_string_bitvec_link() to create constraints linking str-X-Y-Z characters with input-X-Y bitvector bytes at the same offsets - Modify add_nested_constraints() to detect overlapping offsets and add linking constraints when the same offset is used in both contexts - Cache string ranges with their z3::expr for efficient linking lookup Co-Authored-By: Claude Opus 4.5 --- include/parse-z3.h | 51 ++++++++++- solvers/z3-ts.cpp | 223 +++++++++++++++++++++++++++++++++++++++------ 2 files changed, 243 insertions(+), 31 deletions(-) diff --git a/include/parse-z3.h b/include/parse-z3.h index 46c3e118..e33913f1 100644 --- a/include/parse-z3.h +++ b/include/parse-z3.h @@ -3,6 +3,7 @@ #include "parse.h" #include +#include namespace symsan { @@ -36,8 +37,34 @@ class Z3AstParser : public ASTParser { const char* atoi_name_format; const char* strlen_name_format; - // String ranges for null-byte post-processing (input_id -> list of (start, end)) - std::unordered_map>> string_ranges_; + // String range entry with cached str- expr for linking constraints + struct string_range_t { + uint32_t start; + uint32_t end; + z3::expr str_expr; // cached str-X-Y-Z expr (z3::expr handles refcount) + + string_range_t(uint32_t s, uint32_t e, z3::expr expr) + : start(s), end(e), str_expr(expr) {} + }; + + // Transparent comparator for O(log n) lookup with just uint32_t + struct string_range_cmp { + using is_transparent = void; // Enable heterogeneous lookup + + bool operator()(const string_range_t &a, const string_range_t &b) const { + return a.start < b.start; + } + bool operator()(const string_range_t &a, uint32_t offset) const { + return a.start < offset; + } + bool operator()(uint32_t offset, const string_range_t &b) const { + return offset < b.start; + } + }; + + // String ranges for null-byte post-processing and linking constraints + // vector indexed by input_id, each contains a sorted set of ranges + std::vector> string_ranges_; // String info cache: label -> (input_id, offset, length) struct string_info_t { @@ -64,6 +91,10 @@ class Z3AstParser : public ASTParser { std::vector value_cache_; static const size_t SIZE_INCREMENT = 2048; + // Label-level tracking: what type of variables does each expression involve? + std::vector is_label_bv_; // involves bitvec variables (input-X-Y) + std::vector is_label_seq_; // involves string/seq variables (str-X-Y-Z) + // dependencies struct expr_hash { std::size_t operator()(const z3::expr &expr) const { @@ -76,15 +107,21 @@ class Z3AstParser : public ASTParser { } }; using expr_set_t = std::unordered_set; - struct branch_dependency { + struct branch_dependency_t { expr_set_t expr_deps; input_dep_set_t input_deps; + bool used_in_bv = false; // any saved constraint involves bitvec + bool used_in_seq = false; // any saved constraint involves string/seq + z3::expr input_expr; // cached input-X-Y expr (z3::expr handles refcount) + + // Only constructor: must have input_expr (linear scan guarantees this) + branch_dependency_t(z3::expr e) : input_expr(e) {} }; - using branch_dep_t = std::unique_ptr; + using branch_dep_t = std::unique_ptr; using offset_dep_t = std::vector; std::vector branch_deps_; - inline struct branch_dependency* get_branch_dep(offset_t off) { + inline struct branch_dependency_t* get_branch_dep(offset_t off) { auto &offset_deps = branch_deps_.at(off.first); return offset_deps.at(off.second).get(); } @@ -125,6 +162,7 @@ class Z3AstParser : public ASTParser { z3::expr read_concrete(dfsan_label label, uint16_t size); z3::expr serialize(dfsan_label label, input_dep_set_t &deps); inline void collect_more_deps(input_dep_set_t &deps); + inline void mark_expr_type(dfsan_label label, input_dep_set_t &inputs); inline size_t add_nested_constraints(input_dep_set_t &deps, z3_task_t *task); inline void save_constraint(z3::expr expr, input_dep_set_t &inputs); void construct_index_tasks(z3::expr &index, uint64_t curr, @@ -135,6 +173,9 @@ class Z3AstParser : public ASTParser { z3::expr build_string_from_label(dfsan_label content_label, input_dep_set_t &deps); z3::expr get_byte_expr(uint32_t input, uint32_t offset, input_dep_set_t &deps); bool label_contains_indexof(dfsan_label label); + + // Helper for linking bitvec and string constraints on shared offsets + void add_string_bitvec_link(offset_t off, z3_task_t *task); }; class Z3ParserSolver : public Z3AstParser { diff --git a/solvers/z3-ts.cpp b/solvers/z3-ts.cpp index 2b9f9e15..d0512dbe 100644 --- a/solvers/z3-ts.cpp +++ b/solvers/z3-ts.cpp @@ -147,6 +147,7 @@ int Z3AstParser::restart(std::vector &inputs) { // reset caches memcmp_cache_.clear(); string_ranges_.clear(); + string_ranges_.resize(inputs.size()); // vector indexed by input_id tsize_cache_.clear(); tsize_cache_.resize(1); // reserve for CONST_OFFSET for (Z3_ast ast : expr_cache_) { @@ -162,6 +163,12 @@ int Z3AstParser::restart(std::vector &inputs) { value_cache_.clear(); value_cache_.resize(1); // reserve for CONST_OFFSET #endif + // Label-level tracking caches + is_label_bv_.clear(); + is_label_bv_.resize(1); // reserve for CONST_OFFSET + is_label_seq_.clear(); + is_label_seq_.resize(1); // reserve for CONST_OFFSET + string_info_cache_.clear(); branch_deps_.clear(); branch_deps_.resize(inputs.size()); @@ -277,6 +284,8 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { #if FILTER_WRONG_AST value_cache_.reserve(label + SIZE_INCREMENT); #endif + is_label_bv_.reserve(label + SIZE_INCREMENT); + is_label_seq_.reserve(label + SIZE_INCREMENT); } for (dfsan_label l = last_label + 1; l <= label; l++) { @@ -289,6 +298,28 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { do { } while (0) #endif +// Helper macros for tracking label types (bitvec vs string/seq) +// Most ops are bitvec; string ops are seq; And/Or/ICmp propagate from children +#define TRACK_LABEL_BV_ONLY() \ + is_label_bv_.emplace_back(true); \ + is_label_seq_.emplace_back(false) + +#define TRACK_LABEL_SEQ_ONLY() \ + is_label_bv_.emplace_back(false); \ + is_label_seq_.emplace_back(true) + +#define TRACK_LABEL_PROPAGATE_BOTH() \ + do { \ + bool bv = (info->l1 >= CONST_OFFSET) ? is_label_bv_[info->l1] : false; \ + bool seq = (info->l1 >= CONST_OFFSET) ? is_label_seq_[info->l1] : false; \ + if (info->l2 >= CONST_OFFSET) { \ + bv = bv || is_label_bv_[info->l2]; \ + seq = seq || is_label_seq_[info->l2]; \ + } \ + is_label_bv_.emplace_back(bv); \ + is_label_seq_.emplace_back(seq); \ + } while (0) + dfsan_label_info *info = get_label_info(l); // fprintf(stderr, "%u = (l1:%u, l2:%u, op:%s, size:%u, op1:%lu, op2:%lu)\n", // l, info->l1, info->l2, get_op_name(info->op).c_str(), @@ -307,7 +338,11 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { tsize_cache_.emplace_back(1); input_deps.insert(std::make_pair(input, offset)); // caching is not super helpful - cache_expr(l, context_.constant(symbol, sort)); + z3::expr input_expr = context_.constant(symbol, sort); + cache_expr(l, input_expr); + // Cache input expr in branch_dependency for linking (linear scan: always new) + set_branch_dep({input, offset}, std::make_unique(input_expr)); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(inputs_cache_[input].first[offset]); continue; } else if (info->op == __dfsan::Load) { @@ -316,22 +351,29 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { snprintf(name, sizeof(name), input_name_format, input, offset); z3::symbol symbol = context_.str_symbol(name); z3::sort sort = context_.bv_sort(8); - z3::expr out = context_.constant(symbol, sort); + z3::expr first_byte = context_.constant(symbol, sort); + z3::expr out = first_byte; input_deps.insert(std::make_pair(input, offset)); + // Cache first byte expr in branch_dependency (linear scan: always new) + set_branch_dep({input, offset}, std::make_unique(first_byte)); #if FILTER_WRONG_AST uint64_t val = inputs_cache_[input].first[offset]; #endif for (uint32_t i = 1; i < info->l2; i++) { snprintf(name, sizeof(name), input_name_format, input, offset + i); symbol = context_.str_symbol(name); - out = z3::concat(context_.constant(symbol, sort), out); + z3::expr byte_expr = context_.constant(symbol, sort); + out = z3::concat(byte_expr, out); input_deps.insert(std::make_pair(input, offset + i)); + // Cache each byte expr in branch_dependency (linear scan: always new) + set_branch_dep({input, offset + i}, std::make_unique(byte_expr)); #if FILTER_WRONG_AST val |= (uint64_t)inputs_cache_[input].first[offset + i] << (i * 8); #endif } tsize_cache_.emplace_back(1); cache_expr(l, out); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(val); continue; } else if (info->op == __dfsan::ZExt) { @@ -342,6 +384,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { uint32_t base_size = base.get_sort().bv_size(); tsize_cache_.emplace_back(tsize_cache_[info->l1]); cache_expr(l, z3::zext(base, info->size - base_size)); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(value_cache_[info->l1] & ((1UL << base_size) - 1)); continue; } else if (info->op == __dfsan::SExt) { @@ -349,18 +392,21 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { uint32_t base_size = base.get_sort().bv_size(); tsize_cache_.emplace_back(tsize_cache_[info->l1]); cache_expr(l, z3::sext(base, info->size - base_size)); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE((int64_t)(value_cache_[info->l1] & ((1UL << base_size) - 1))); continue; } else if (info->op == __dfsan::Trunc) { z3::expr base = get_cached_expr(info->l1, input_deps); tsize_cache_.emplace_back(tsize_cache_[info->l1]); cache_expr(l, base.extract(info->size - 1, 0)); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(value_cache_[info->l1] & ((1UL << info->size) - 1)); continue; } else if (info->op == __dfsan::IntToPtr) { z3::expr e = get_cached_expr(info->l1, input_deps); tsize_cache_.emplace_back(tsize_cache_[info->l1]); cache_expr(l, e); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(value_cache_[info->l1]); continue; } else if (info->op == __dfsan::PtrToInt) { @@ -375,6 +421,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { z3::expr bv_idx = z3::int2bv(info->size, idx); tsize_cache_.emplace_back(tsize_cache_[info->l1]); cache_expr(l, bv_idx); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(value_cache_[info->l1]); continue; } @@ -383,6 +430,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { z3::expr e = get_cached_expr(info->l1, input_deps); tsize_cache_.emplace_back(tsize_cache_[info->l1]); cache_expr(l, e); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(value_cache_[info->l1]); continue; } //FIXME: other casting ops (BitCast)? @@ -391,6 +439,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { z3::expr base = get_cached_expr(info->l1, input_deps); tsize_cache_.emplace_back(tsize_cache_[info->l1]); cache_expr(l, base.extract((info->op2.i + info->size) - 1, info->op2.i)); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE((value_cache_[info->l1] >> info->op2.i) & ((1UL << info->size) - 1)); continue; @@ -404,6 +453,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { throw z3::exception("Only LNot should be recorded"); } cache_expr(l, !e); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(!value_cache_[info->l2]); continue; } else if (info->op == __dfsan::Neg) { @@ -413,6 +463,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { z3::expr e = get_cached_expr(info->l2, input_deps); tsize_cache_.emplace_back(tsize_cache_[info->l2]); cache_expr(l, -e); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(-value_cache_[info->l2]); continue; } @@ -429,6 +480,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { z3::expr e = z3::ite(op1 == op2, context_.bv_val(0, 32), context_.bv_val(1, 32)); cache_expr(l, e); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(0); // memcmp result is always 0 or 1 continue; } else if (info->op == __dfsan::fsize) { @@ -446,6 +498,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { } else { cache_expr(l, base); } + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(0); // FIXME: map to input size continue; } else if (info->op == __dfsan::fatoi) { @@ -464,6 +517,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { z3::symbol symbol = context_.str_symbol(name); z3::sort sort = context_.bv_sort(info->size); cache_expr(l, context_.constant(symbol, sort)); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(0); // FIXME: map to atoi result? continue; } else if (info->op == __dfsan::fstrlen) { @@ -508,6 +562,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { z3::symbol symbol = context_.str_symbol(name); z3::sort sort = context_.bv_sort(info->size); cache_expr(l, context_.constant(symbol, sort)); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(info->op2.i); // actual length for value cache continue; } else if (info->op == __dfsan::fstrchr) { @@ -596,6 +651,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { tsize_cache_.emplace_back(1); cache_expr(l, idx); // cache the index expression (Int sort) + TRACK_LABEL_SEQ_ONLY(); RECORD_VALUE(0); // Placeholder - validation skipped for indexOf ops continue; } else if (info->op == __dfsan::fstrrchr) { @@ -652,6 +708,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { tsize_cache_.emplace_back(1); cache_expr(l, idx); + TRACK_LABEL_SEQ_ONLY(); RECORD_VALUE(0); // Placeholder - validation skipped for indexOf ops continue; } else if (info->op == __dfsan::fstrstr) { @@ -736,6 +793,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { tsize_cache_.emplace_back(1); cache_expr(l, idx); + TRACK_LABEL_SEQ_ONLY(); RECORD_VALUE(0); // Placeholder - validation skipped for indexOf ops continue; } else if (info->op == __dfsan::fstrpbrk) { @@ -825,6 +883,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { tsize_cache_.emplace_back(1); cache_expr(l, idx.simplify()); + TRACK_LABEL_SEQ_ONLY(); RECORD_VALUE(0); // Placeholder - validation skipped for indexOf ops continue; } else if (info->op == __dfsan::fsubstr) { @@ -881,6 +940,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { tsize_cache_.emplace_back(1); cache_expr(l, substr_expr); + TRACK_LABEL_SEQ_ONLY(); // The substr itself doesn't have a numeric value, but downstream ops will use it RECORD_VALUE(info->op1.i); continue; @@ -939,6 +999,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { tsize_cache_.emplace_back(1); cache_expr(l, concat_result); + TRACK_LABEL_SEQ_ONLY(); RECORD_VALUE(0); continue; } else if (info->op == __dfsan::fstrcmp) { @@ -1000,6 +1061,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { context_.bv_val(1, 32)); tsize_cache_.emplace_back(1); cache_expr(l, eq); + TRACK_LABEL_SEQ_ONLY(); RECORD_VALUE(0); continue; } else if (info->op == __dfsan::fprefixof) { @@ -1052,6 +1114,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { context_.bv_val(0, 32)); tsize_cache_.emplace_back(1); cache_expr(l, result); + TRACK_LABEL_SEQ_ONLY(); RECORD_VALUE(0); continue; } else if (info->op == __dfsan::fsuffixof) { @@ -1104,6 +1167,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { context_.bv_val(0, 32)); tsize_cache_.emplace_back(1); cache_expr(l, result); + TRACK_LABEL_SEQ_ONLY(); RECORD_VALUE(0); continue; } else if (info->op == __dfsan::fstr_off) { @@ -1122,12 +1186,14 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { tsize_cache_.emplace_back(tsize_cache_[info->l1]); cache_expr(l, offset_idx); + TRACK_LABEL_SEQ_ONLY(); // Record the concrete position + offset RECORD_VALUE(value_cache_[info->l1] + gep_offset); } else { // No base label, just return zero tsize_cache_.emplace_back(0); cache_expr(l, context_.int_val(0)); + TRACK_LABEL_SEQ_ONLY(); RECORD_VALUE(0); } continue; @@ -1135,6 +1201,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { // not expression, do nothing tsize_cache_.emplace_back(0); expr_cache_.emplace_back(nullptr); + TRACK_LABEL_BV_ONLY(); // placeholder, doesn't matter RECORD_VALUE(0); continue; } @@ -1191,6 +1258,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { tsize_cache_.emplace_back(tsize_cache_[info->l1] + tsize_cache_[info->l2]); cache_expr(l, cmp_expr); + TRACK_LABEL_SEQ_ONLY(); // string function comparison is purely seq #if FILTER_WRONG_AST // For string ops, calculate value based on found/not-found semantics bool cmp_result = (predicate == __dfsan::bvneq) ? found : !found; @@ -1258,36 +1326,43 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { // llvm doesn't distinguish between logical and bitwise and/or/xor case __dfsan::And: { cache_expr(l, info->size != 1 ? (op1 & op2) : (op1 && op2)); + TRACK_LABEL_PROPAGATE_BOTH(); RECORD_VALUE((info->size != 1) ? (val1 & val2) : (val1 && val2)); break; } case __dfsan::Or: { cache_expr(l, info->size != 1 ? (op1 | op2) : (op1 || op2)); + TRACK_LABEL_PROPAGATE_BOTH(); RECORD_VALUE((info->size != 1) ? (val1 | val2) : (val1 || val2)); break; } case __dfsan::Xor: { cache_expr(l, op1 ^ op2); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(val1 ^ val2); break; } case __dfsan::Shl: { cache_expr(l, z3::shl(op1, op2)); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(val1 << (val2 % size)); break; } case __dfsan::LShr: { cache_expr(l, z3::lshr(op1, op2)); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(val1 >> (val2 % size)); break; } case __dfsan::AShr: { cache_expr(l, z3::ashr(op1, op2)); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE((int64_t)val1 >> (val2 % size)); break; } case __dfsan::Add: { cache_expr(l, op1 + op2); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(val1 + val2); break; } @@ -1304,6 +1379,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { // This is (PtrToInt(string_op)) - base_addr = index // The expression is just the index (op1 already contains int2bv(idx)) cache_expr(l, op1); + TRACK_LABEL_SEQ_ONLY(); // The value is just the index, not idx - base_addr RECORD_VALUE(val1); break; @@ -1311,16 +1387,19 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { } } cache_expr(l, op1 - op2); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(val1 - val2); break; } case __dfsan::Mul: { cache_expr(l, op1 * op2); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(val1 * val2); break; } case __dfsan::UDiv: { cache_expr(l, z3::udiv(op1, op2)); + TRACK_LABEL_BV_ONLY(); if (val2 == 0) { fprintf(stderr, "WARNING: division by zero for label %u\n", l); RECORD_VALUE(0); @@ -1330,6 +1409,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { } case __dfsan::SDiv: { cache_expr(l, op1 / op2); + TRACK_LABEL_BV_ONLY(); if (val2 == 0) { fprintf(stderr, "WARNING: division by zero for label %u\n", l); RECORD_VALUE(0); @@ -1339,6 +1419,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { } case __dfsan::URem: { cache_expr(l, z3::urem(op1, op2)); + TRACK_LABEL_BV_ONLY(); if (val2 == 0) { fprintf(stderr, "WARNING: division by zero for label %u\n", l); RECORD_VALUE(0); @@ -1348,6 +1429,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { } case __dfsan::SRem: { cache_expr(l, z3::srem(op1, op2)); + TRACK_LABEL_BV_ONLY(); if (val2 == 0) { fprintf(stderr, "WARNING: division by zero for label %u\n", l); RECORD_VALUE(0); @@ -1410,6 +1492,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { // Cache the expression AFTER updating value_cache to maintain consistency // if an exception is thrown above cache_expr(l, get_cmd(op1, op2, info->op >> 8)); + TRACK_LABEL_PROPAGATE_BOTH(); break; } // concat @@ -1421,11 +1504,13 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { // just use the String. The constant bytes don't contribute to constraints. if (!op1.is_bv() && info->l2 == 0) { cache_expr(l, op1); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(val1); break; } if (!op2.is_bv() && info->l1 == 0) { cache_expr(l, op2); + TRACK_LABEL_BV_ONLY(); RECORD_VALUE(val2); break; } @@ -1435,6 +1520,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { throw z3::exception("concat with non-bitvector operand (string op involved)"); } cache_expr(l, z3::concat(op2, op1)); // little endian + TRACK_LABEL_BV_ONLY(); RECORD_VALUE((val2 << op1.get_sort().bv_size()) | (val1)); break; } @@ -1485,6 +1571,9 @@ int Z3AstParser::parse_cond(dfsan_label label, bool result, bool add_nested, std task->push_back((cond != r)); + // mark expression type for linking detection + mark_expr_type(label, inputs); + // collect additional input deps collect_more_deps(inputs); @@ -1566,8 +1655,12 @@ int Z3AstParser::parse_gep(dfsan_label ptr_label, uptr ptr, dfsan_label index_la } #endif + // mark expression type for linking detection + mark_expr_type(index_label, inputs); + // collect nested constraints collect_more_deps(inputs); + z3_task_t nested_tasks; add_nested_constraints(inputs, &nested_tasks); @@ -1617,7 +1710,12 @@ int Z3AstParser::add_constraints(dfsan_label label, uint64_t result) { try { input_dep_set_t inputs; z3::expr expr = serialize(label, inputs); + + // mark expression type for linking detection + mark_expr_type(label, inputs); + collect_more_deps(inputs); + // prepare result uint16_t size = get_label_info(label)->size; z3::expr r = context_.bv_val(result, size); @@ -1642,20 +1740,32 @@ int Z3AstParser::add_constraints(dfsan_label label, uint64_t result) { return 0; } -void Z3AstParser::save_constraint(z3::expr expr, input_dep_set_t &inputs) { +void Z3AstParser::mark_expr_type(dfsan_label label, input_dep_set_t &inputs) { + bool is_bv = is_label_bv_.at(label); + bool is_seq = is_label_seq_.at(label); + // fprintf(stderr, "DEBUG mark_expr_type: label %u is_bv=%d is_seq=%d\n", label, is_bv, is_seq); + for (auto off : inputs) { auto c = get_branch_dep(off); if (c == nullptr) { - auto nc = std::make_unique(); - c = nc.get(); - set_branch_dep(off, std::move(nc)); + throw z3::exception("branch_dep not found for input byte"); } + // Update type flags (accumulate, don't overwrite) + c->used_in_bv |= is_bv; + c->used_in_seq |= is_seq; + // fprintf(stderr, "DEBUG mark_expr_type: offset (%u, %u), used_in_bv=%d, used_in_seq=%d\n", + // off.first, off.second, c->used_in_bv, c->used_in_seq); + } +} + +void Z3AstParser::save_constraint(z3::expr expr, input_dep_set_t &inputs) { + for (auto off : inputs) { + auto c = get_branch_dep(off); if (c == nullptr) { - throw z3::exception("out of memory"); - } else { - c->input_deps.insert(inputs.begin(), inputs.end()); - c->expr_deps.insert(expr); + throw z3::exception("branch_dep not found for input byte"); } + c->input_deps.insert(inputs.begin(), inputs.end()); + c->expr_deps.insert(expr); } } @@ -1679,10 +1789,18 @@ void Z3AstParser::collect_more_deps(input_dep_set_t &inputs) { size_t Z3AstParser::add_nested_constraints(input_dep_set_t &inputs, z3_task_t *task) { expr_set_t added; + std::vector need_linking; + for (auto &off : inputs) { // fprintf(stderr, "adding offset %d\n", off.second); auto deps = get_branch_dep(off); if (deps != nullptr) { + // Check if this offset is used in both constraint types + if (deps->used_in_bv && deps->used_in_seq) { + // fprintf(stderr, "DEBUG: need linking for offset (%u, %u)\n", off.first, off.second); + need_linking.push_back(off); + } + for (auto &expr : deps->expr_deps) { if (added.insert(expr).second) { // fprintf(stderr, "adding expr: %s\n", expr.to_string().c_str()); @@ -1691,9 +1809,53 @@ size_t Z3AstParser::add_nested_constraints(input_dep_set_t &inputs, z3_task_t *t } } } + + // Add linking constraints for overlapping offsets + for (auto &off : need_linking) { + add_string_bitvec_link(off, task); + } + return added.size(); } +void Z3AstParser::add_string_bitvec_link(offset_t off, z3_task_t *task) { + // Check if input_id is valid + if (off.first >= string_ranges_.size()) return; + + auto &ranges = string_ranges_[off.first]; + + // Use upper_bound with transparent comparator - search with just uint32_t + // Find first range where start > off.second, then go back one + auto it = ranges.upper_bound(off.second); + + if (it != ranges.begin()) { + --it; + if (off.second >= it->start && off.second < it->end) { + // Found covering range, use cached exprs directly + uint32_t pos_in_string = off.second - it->start; + + z3::expr str_var = it->str_expr; // cached str- expr + + // Get cached input- expr from branch_dependency + z3::expr input_var = get_branch_dep(off)->input_expr; + + // str_var[pos] as integer == input_var as integer + // Extract single-char substring, then convert to code point + z3::expr pos_expr = context_.int_val(pos_in_string); + z3::expr one = context_.int_val(1); + z3::expr single_char_str(context_, Z3_mk_seq_extract(context_, str_var, pos_expr, one)); + z3::expr char_code(context_, Z3_mk_string_to_code(context_, single_char_str)); + z3::expr byte_val = z3::bv2int(input_var, false); + + // Add the linking constraint + task->push_back(char_code == byte_val); + + // fprintf(stderr, "DEBUG: adding link constraint: %s\n", + // (char_code == byte_val).to_string().c_str()); + } + } +} + Z3ParserSolver::solving_status Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solutions) { solving_status ret = unknown_error; @@ -2018,13 +2180,13 @@ void Z3ParserSolver::generate_solution(z3::model &m, solution_t &solutions) { // Replace null bytes within string ranges (tracked in string_ranges_) for (auto &sol : solutions) { if (sol.op == solution_op_t::SET && sol.val == 0x00) { - auto it = string_ranges_.find(sol.id); - if (it != string_ranges_.end()) { - for (const auto &range : it->second) { + if (sol.id < string_ranges_.size()) { + auto &ranges = string_ranges_[sol.id]; + for (const auto &range : ranges) { // If this offset is within a string range (but not at the end), replace null - if (sol.offset >= range.first && sol.offset < range.second) { + if (sol.offset >= range.start && sol.offset < range.end) { // fprintf(stderr, "DEBUG generate_solution: replacing null at offset %u (in range [%u,%u))\n", - // sol.offset, range.first, range.second); + // sol.offset, range.start, range.end); sol.val = 'A'; // Replace null with 'A' break; } @@ -2051,9 +2213,6 @@ z3::expr Z3AstParser::build_string_from_label(dfsan_label label, input_dep_set_t uint32_t input = get_label_info(info->l1)->op2.i; uint32_t len = info->l2; // number of bytes loaded - // Track string range for null-byte post-processing - string_ranges_[input].emplace_back(offset, offset + len); - // Add dependencies for all bytes in the range for (uint32_t i = 0; i < len; i++) { deps.insert(std::make_pair(input, offset + i)); @@ -2065,6 +2224,11 @@ z3::expr Z3AstParser::build_string_from_label(dfsan_label label, input_dep_set_t z3::symbol symbol = context_.str_symbol(name); z3::expr str_var = context_.constant(symbol, context_.string_sort()); + // Track string range for null-byte post-processing and linking constraints + if (input < string_ranges_.size()) { + string_ranges_[input].emplace(offset, offset + len, str_var); + } + // Cache string info for this label string_info_cache_[label] = {input, offset, len}; @@ -2221,9 +2385,6 @@ z3::expr Z3AstParser::build_string_from_label(dfsan_label label, input_dep_set_t uint32_t len = offsets.size(); uint32_t start_offset = offsets[0]; - // Track string range for null-byte post-processing - string_ranges_[input_id].emplace_back(start_offset, start_offset + len); - // Add dependencies for all bytes for (uint32_t off : offsets) { deps.insert(std::make_pair(input_id, off)); @@ -2233,11 +2394,17 @@ z3::expr Z3AstParser::build_string_from_label(dfsan_label label, input_dep_set_t char name[256]; snprintf(name, sizeof(name), "str-%u-%u-%u", input_id, start_offset, len); z3::symbol symbol = context_.str_symbol(name); + z3::expr str_var = context_.constant(symbol, context_.string_sort()); + + // Track string range for null-byte post-processing and linking constraints + if (input_id < string_ranges_.size()) { + string_ranges_[input_id].emplace(start_offset, start_offset + len, str_var); + } // Cache string info for this label string_info_cache_[label] = {input_id, start_offset, len}; - return context_.constant(symbol, context_.string_sort()); + return str_var; } // Fall back to recursive concatenation if not consecutive @@ -2285,19 +2452,23 @@ z3::expr Z3AstParser::build_string_from_label(dfsan_label label, input_dep_set_t uint32_t offset = info->op1.i; uint32_t input = info->op2.i; - // Track string range for null-byte post-processing (single byte) - string_ranges_[input].emplace_back(offset, offset + 1); deps.insert(std::make_pair(input, offset)); // Create a single-char symbolic string char name[256]; snprintf(name, sizeof(name), "str-%u-%u-%u", input, offset, 1); z3::symbol symbol = context_.str_symbol(name); + z3::expr str_var = context_.constant(symbol, context_.string_sort()); + + // Track string range for null-byte post-processing and linking constraints + if (input < string_ranges_.size()) { + string_ranges_[input].emplace(offset, offset + 1, str_var); + } // Cache string info for this label string_info_cache_[label] = {input, offset, 1}; - return context_.constant(symbol, context_.string_sort()); + return str_var; } // Last resort: empty string From f11e85669a18db099875fd1aa8286d37e20e2132 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 16 Jan 2026 15:45:17 -0800 Subject: [PATCH 003/139] skip inst/func marked not to instrument --- instrumentation/TaintPass.cpp | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/instrumentation/TaintPass.cpp b/instrumentation/TaintPass.cpp index 12a2929f..03ce8327 100644 --- a/instrumentation/TaintPass.cpp +++ b/instrumentation/TaintPass.cpp @@ -1446,7 +1446,8 @@ bool Taint::runImpl(Module &M) { for (Function &F : M) { if (!F.isIntrinsic() && !TaintRuntimeFunctions.count(&F) && - !IFuncs.count(&F)) { + !IFuncs.count(&F) && + !F.hasFnAttribute(Attribute::DisableSanitizerInstrumentation)) { FnsToInstrument.push_back(&F); if (F.hasPersonalityFn()) PersonalityFns.insert(F.getPersonalityFn()); @@ -1473,6 +1474,10 @@ bool Taint::runImpl(Module &M) { if (!F) continue; + // Skip functions with nosanitize metadata + if (F->hasFnAttribute(Attribute::DisableSanitizerInstrumentation)) + continue; + bool GAInst = isInstrumented(&GA), FInst = isInstrumented(F); if (GAInst && FInst) { addGlobalNameSuffix(&GA); @@ -1618,7 +1623,7 @@ bool Taint::runImpl(Module &M) { // TaintVisitor may delete Inst, so keep track of whether it was a // terminator. bool IsTerminator = Inst->isTerminator(); - if (!TF.SkipInsts.count(Inst)) + if (!TF.SkipInsts.count(Inst) && !Inst->getMetadata("nosanitize")) TaintVisitor(TF).visit(Inst); if (IsTerminator) break; @@ -2124,7 +2129,6 @@ void TaintVisitor::visitAtomicRMWInst(AtomicRMWInst &I) { } void TaintVisitor::visitLoadInst(LoadInst &LI) { - if (LI.getMetadata("nosanitize")) return; auto &DL = LI.getModule()->getDataLayout(); uint64_t Size = DL.getTypeStoreSize(LI.getType()); if (Size == 0) { @@ -2263,8 +2267,6 @@ void TaintFunction::storeShadow(Value *Addr, Type *T, uint64_t Size, } void TaintVisitor::visitStoreInst(StoreInst &SI) { - if (SI.getMetadata("nosanitize")) return; - auto &DL = SI.getModule()->getDataLayout(); Value *Val = SI.getValueOperand(); Type* VT = SI.getValueOperand()->getType(); @@ -2301,7 +2303,6 @@ void TaintVisitor::visitStoreInst(StoreInst &SI) { //} void TaintVisitor::visitBinaryOperator(BinaryOperator &BO) { - if (BO.getMetadata("nosanitize")) return; if (BO.getType()->isFloatingPointTy()) return; Value *CombinedShadow = TF.combineBinaryOperatorShadows(&BO, BO.getOpcode()); @@ -2309,7 +2310,6 @@ void TaintVisitor::visitBinaryOperator(BinaryOperator &BO) { } void TaintVisitor::visitCastInst(CastInst &CI) { - if (CI.getMetadata("nosanitize")) return; // Special case: if this is the bitcast (there is exactly 1 allowed) between // a musttail call and a ret, don't instrument. New instructions are not // allowed after a musttail call. @@ -2346,7 +2346,6 @@ void TaintFunction::visitCmpInst(CmpInst *I) { } void TaintVisitor::visitCmpInst(CmpInst &CI) { - if (CI.getMetadata("nosanitize")) return; // FIXME: integer only now if (!ClTraceFP && !isa(CI)) return; #if 0 //TODO make an option @@ -2386,7 +2385,6 @@ void TaintFunction::visitSwitchInst(SwitchInst *I) { } void TaintVisitor::visitSwitchInst(SwitchInst &SWI) { - if (SWI.getMetadata("nosanitize")) return; TF.visitSwitchInst(&SWI); } @@ -2508,7 +2506,6 @@ void TaintFunction::visitGEPInst(GetElementPtrInst *I) { void TaintVisitor::visitGetElementPtrInst(GetElementPtrInst &GEPI) { if (!ClTraceGEPOffset && !ClTraceBound) return; - if (GEPI.getMetadata("nosanitize")) return; TF.visitGEPInst(&GEPI); } @@ -2525,8 +2522,6 @@ void TaintVisitor::visitShuffleVectorInst(ShuffleVectorInst &I) { } void TaintVisitor::visitExtractValueInst(ExtractValueInst &I) { - if (I.getMetadata("nosanitize")) return; - IRBuilder<> IRB(&I); Value *Agg = I.getAggregateOperand(); Value *AggShadow = TF.getShadow(Agg); @@ -2535,8 +2530,6 @@ void TaintVisitor::visitExtractValueInst(ExtractValueInst &I) { } void TaintVisitor::visitInsertValueInst(InsertValueInst &I) { - if (I.getMetadata("nosanitize")) return; - IRBuilder<> IRB(&I); Value *AggShadow = TF.getShadow(I.getAggregateOperand()); Value *InsShadow = TF.getShadow(I.getInsertedValueOperand()); @@ -3287,7 +3280,6 @@ void TaintFunction::visitCondition(Value *Condition, Instruction *I) { } void TaintVisitor::visitBranchInst(BranchInst &BR) { - if (BR.getMetadata("nosanitize")) return; if (BR.isUnconditional()) return; TF.visitCondition(BR.getCondition(), &BR); } From 05c0700987d3cfafcb7021a07614d5b9ed70ff84 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 16 Jan 2026 22:47:44 -0800 Subject: [PATCH 004/139] support ucsan --- compiler/ko_clang.c | 139 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 116 insertions(+), 23 deletions(-) diff --git a/compiler/ko_clang.c b/compiler/ko_clang.c index 428223a3..7148c847 100644 --- a/compiler/ko_clang.c +++ b/compiler/ko_clang.c @@ -34,11 +34,18 @@ static char *obj_path; /* Path to runtime libraries */ static char *taint_path; /* Path to the taint pass */ +static char *ucsan_path; /* Path to the ucsan pass */ static char **cc_params; /* Parameters passed to the real CC */ static u32 cc_par_cnt = 1; /* Param count, including argv0 */ static u8 is_cxx = 0; static u8 use_native_cxx = 0; static u8 use_native_zlib = 1; /* Use system zlib by default */ +static u8 use_ucsan = 0; +static u8 use_z3_runtime = 0; +static u8 use_fastgen = 0; +static u8 use_thoroupy = 0; +static u8 use_ucsan_only = 0; +static u8 use_symsan_only = 0; /* Try to find the executable from PATH */ static char *find_executable_in_path(const char *filename) { @@ -113,6 +120,10 @@ static void find_obj(const char *argv0) { } else { FATAL("Unable to find 'TaintPass.so' at %s", path); } + ucsan_path = alloc_printf("%s/../lib/symsan/UCSanPass.so", dir); + if (access(ucsan_path, R_OK)) { + FATAL("Unable to find 'UCSanPass.so' at %s", path); + } ck_free(dir); } @@ -124,19 +135,29 @@ static void check_type(char *name) { } } -static u8 check_if_assembler(u32 argc, char **argv) { - /* Check if a file with an assembler extension ("s" or "S") appears in argv */ +static u8 should_skip_instrumentation(u32 argc, char **argv) { + /* + * Skip instrumentation if (1) doing assembler: + * a file with an assembler extension ("s" or "S") appears in argv + * or (2) no source file is present (linking only) + */ + u8 has_source_file = 0; while (--argc) { const char *cur = *(++argv); const char *ext = strrchr(cur, '.'); - if (ext && (!strcmp(ext + 1, "s") || !strcmp(ext + 1, "S"))) { - return 1; + if (ext) { + if (!strcmp(ext + 1, "s") || !strcmp(ext + 1, "S")) { + return 1; + } else if (!strcmp(ext + 1, "c") || !strcmp(ext + 1, "cc") || + !strcmp(ext + 1, "cpp") || !strcmp(ext + 1, "cxx")) { + has_source_file = 1; + } } } - return 0; + return has_source_file ? 0 : 1; } static void add_runtime() { @@ -144,8 +165,27 @@ static void add_runtime() { cc_params[cc_par_cnt++] = alloc_printf("-L%s", getenv("KO_LIBRARY_PATH")); } + // Select runtime library based on environment variables: + // - KO_USE_UCSAN_ONLY: standalone UCSan (under-constrained execution only) + // - KO_USE_SYMSAN_ONLY: standalone SymSan (symbolic execution only) + // - has METADATA and !KO_USE_UCSAN_ONLY: combined UCSan+SymSan + // - Default: standalone SymSan + + u8 use_both = use_ucsan && !use_ucsan_only; + + const char *runtime_lib; + if (use_ucsan_only) { + runtime_lib = "libucsan_rt-x86_64.a"; + } else if (use_symsan_only) { + runtime_lib = "libsymsan_rt-x86_64.a"; + } else if (use_both) { + runtime_lib = "libdfsan_rt-x86_64.a"; + } else { + runtime_lib = "libsymsan_rt-x86_64.a"; + } + cc_params[cc_par_cnt++] = "-Wl,--whole-archive"; - cc_params[cc_par_cnt++] = alloc_printf("%s/libdfsan_rt-x86_64.a", obj_path); + cc_params[cc_par_cnt++] = alloc_printf("%s/%s", obj_path, runtime_lib); cc_params[cc_par_cnt++] = "-Wl,--no-whole-archive"; cc_params[cc_par_cnt++] = alloc_printf("-Wl,--dynamic-list=%s/libdfsan_rt-x86_64.a.syms", obj_path); @@ -175,24 +215,25 @@ static void add_runtime() { cc_params[cc_par_cnt++] = "-lz"; } - if (getenv("KO_USE_Z3")) { + if (use_fastgen) { + cc_params[cc_par_cnt++] = "-Wl,--whole-archive"; + cc_params[cc_par_cnt++] = alloc_printf("%s/libFastgen.a", obj_path); + cc_params[cc_par_cnt++] = "-Wl,--no-whole-archive"; + } else if (use_thoroupy) { + cc_params[cc_par_cnt++] = "-Wl,--whole-archive"; + cc_params[cc_par_cnt++] = alloc_printf("%s/libThoroupy.a", obj_path); + cc_params[cc_par_cnt++] = "-Wl,--no-whole-archive"; + } else if (use_z3_runtime) { cc_params[cc_par_cnt++] = "-Wl,--whole-archive"; cc_params[cc_par_cnt++] = alloc_printf("%s/libZ3Solver.a", obj_path); cc_params[cc_par_cnt++] = "-Wl,--no-whole-archive"; - cc_params[cc_par_cnt++] = "-L/usr/local/lib"; + cc_params[cc_par_cnt++] = "-L/usr/local/lib"; // prefer local cc_params[cc_par_cnt++] = "-lz3"; cc_params[cc_par_cnt++] = "-Wl,-rpath,/usr/local/lib"; } - - if (getenv("KO_USE_FASTGEN")) { - cc_params[cc_par_cnt++] = "-Wl,--whole-archive"; - cc_params[cc_par_cnt++] = alloc_printf("%s/libFastgen.a", obj_path); - cc_params[cc_par_cnt++] = "-Wl,--no-whole-archive"; - } } static void add_taint_pass() { - cc_params[cc_par_cnt++] = "-fexperimental-new-pass-manager"; cc_params[cc_par_cnt++] = alloc_printf("-fplugin=%s", taint_path); // to enable options cc_params[cc_par_cnt++] = alloc_printf("-fpass-plugin=%s", taint_path); cc_params[cc_par_cnt++] = "-mllvm"; @@ -227,10 +268,18 @@ static void add_taint_pass() { } } +static void add_ucsan_pass() { + cc_params[cc_par_cnt++] = alloc_printf("-fplugin=%s", ucsan_path); // to enable options + cc_params[cc_par_cnt++] = alloc_printf("-fpass-plugin=%s", ucsan_path); + cc_params[cc_par_cnt++] = "-mllvm"; + cc_params[cc_par_cnt++] = + alloc_printf("-ucsan-abilist=%s/ucsan_abilist.txt", obj_path); +} + static void edit_params(u32 argc, char **argv) { u8 fortify_set = 0, asan_set = 0, x_set = 0, maybe_linking = 1, bit_mode = 0; - u8 maybe_assembler = 0; + u8 skip_instrumentation = 0; char *name; cc_params = ck_alloc((argc + 128) * sizeof(char *)); @@ -250,11 +299,7 @@ static void edit_params(u32 argc, char **argv) { cc_params[0] = alt_cc ? alt_cc : "clang"; } - maybe_assembler = check_if_assembler(argc, argv); - - use_native_cxx = getenv("KO_USE_NATIVE_LIBCXX") ? 1 : 0; - - use_native_zlib = getenv("KO_NO_NATIVE_ZLIB") ? 0 : 1; + skip_instrumentation = should_skip_instrumentation(argc, argv); /* Detect stray -v calls from ./configure scripts. */ if (argc == 1 && !strcmp(argv[1], "-v")) @@ -328,8 +373,40 @@ static void edit_params(u32 argc, char **argv) { return; } - if (!maybe_assembler) { - add_taint_pass(); + use_native_cxx = getenv("KO_USE_NATIVE_LIBCXX") ? 1 : 0; + + use_native_zlib = getenv("KO_NO_NATIVE_ZLIB") ? 0 : 1; + + use_ucsan = getenv("METADATA") ? 1 : 0; + + use_ucsan_only = getenv("KO_USE_UCSAN_ONLY") ? 1 : 0; + use_symsan_only = getenv("KO_USE_SYMSAN_ONLY") ? 1 : 0; + + use_z3_runtime = getenv("KO_USE_Z3") ? 1 : 0; + use_fastgen = getenv("KO_USE_FASTGEN") ? 1 : 0; + use_thoroupy = getenv("KO_USE_THOROUPY") ? 1 : 0; + + // sanity checks + if (use_ucsan_only && !use_ucsan) { + FATAL("KO_USE_UCSAN_ONLY requires METADATA to be set"); + } + if (use_ucsan_only && use_symsan_only) { + FATAL("KO_USE_UCSAN_ONLY and KO_USE_SYMSAN_ONLY cannot be set together"); + } + if (use_symsan_only && use_ucsan) { + FATAL("KO_USE_SYMSAN_ONLY cannot be set together with METADATA"); + } + + if (!skip_instrumentation) { + cc_params[cc_par_cnt++] = "-fexperimental-new-pass-manager"; + // add UCSanPass first, if specified + if (use_ucsan) { + add_ucsan_pass(); + } + // Then add TaintPass + if (!use_ucsan_only) { + add_taint_pass(); + } } cc_params[cc_par_cnt++] = "-pie"; @@ -374,6 +451,22 @@ static void edit_params(u32 argc, char **argv) { if (maybe_linking) { + // sanity checks + if (use_ucsan) { + if (use_z3_runtime) { + FATAL("KO_USE_Z3 cannot be set together with METADATA"); + } else if (use_fastgen) { + FATAL("KO_USE_FASTGEN cannot be set together with METADATA"); + } + } else if (use_thoroupy) { + FATAL("Thoroupy runtime requires METADATA to be set"); + } + + if (use_z3_runtime + use_fastgen + use_thoroupy > 1) { + FATAL("Multiple symbolic execution runtimes selected: z3=%d, fastgen=%d, thoroupy=%d", + use_z3_runtime, use_fastgen, use_thoroupy); + } + if (x_set) { cc_params[cc_par_cnt++] = "-x"; cc_params[cc_par_cnt++] = "none"; From 6bfd19b7c26f6262c12dd8faad6efbb8cf6a3f52 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Sat, 17 Jan 2026 18:31:28 -0800 Subject: [PATCH 005/139] import ucsanpass --- instrumentation/CMakeLists.txt | 11 +- instrumentation/UCSanPass.cpp | 2738 ++++++++++++++++++++++++++++++++ 2 files changed, 2748 insertions(+), 1 deletion(-) create mode 100644 instrumentation/UCSanPass.cpp diff --git a/instrumentation/CMakeLists.txt b/instrumentation/CMakeLists.txt index ece12498..26e38552 100644 --- a/instrumentation/CMakeLists.txt +++ b/instrumentation/CMakeLists.txt @@ -8,5 +8,14 @@ if(APPLE) endif(APPLE) include(AddLLVM) + +# Declare source files as optional to avoid LLVM CMake validation errors +set(LLVM_OPTIONAL_SOURCES + TaintPass.cpp + UCSanPass.cpp +) + add_llvm_pass_plugin(TaintPass TaintPass.cpp) -install (TARGETS TaintPass DESTINATION ${SYMSAN_LIB_DIR}) +add_llvm_pass_plugin(UCSanPass UCSanPass.cpp) + +install (TARGETS TaintPass UCSanPass DESTINATION ${SYMSAN_LIB_DIR}) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp new file mode 100644 index 00000000..0d986fb4 --- /dev/null +++ b/instrumentation/UCSanPass.cpp @@ -0,0 +1,2738 @@ +//===- UCSanPass.cpp - Under-Constrained Execution Pass ------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +/// \file +/// This file implements the UCSan pass for under-constrained execution. +/// +/// CONCEPTUAL OVERVIEW: +/// ==================== +/// UCSan enables safe execution of functions in isolation, even with +/// uninitialized or invalid pointers. Given a YAML metadata file specifying +/// an entry point and scope, UCSan performs three key transformations: +/// +/// 1. SCOPE-BASED FUNCTION REMOVAL: +/// - All functions NOT in scope are removed from the module +/// - Replaced with "dangle" wrappers that safely handle out-of-scope calls +/// - Enables testing individual functions without complete program context +/// +/// 2. LAZY POINTER INITIALIZATION (checkPointer): +/// - Instruments all pointer dereferences (loads, stores, memops) +/// - Takes a pseudo-pointer as input, translate to valid pointer +/// - Check if the memory object has been allocated; +// if not, allocates memory on-demand at runtime +/// - This is the KEY feature enabling under-constrained execution +/// +/// 3. MEMORY OBJECT SIZE TRACKING: +/// - Tracks GEP offsets and Cast operations +/// - Estimates sizes of underlying memory objects +/// - Enables runtime bounds checking (checkBounds) +/// +/// STANDALONE CAPABILITY: +/// ====================== +/// UCSan-instrumented binaries can run WITHOUT symbolic execution. They provide +/// safe under-constrained execution with lazy allocation. To add symbolic +/// reasoning, the IR is pipelined to TaintPass (SymSan), which runs AFTER this +/// pass and adds constraint collection. +/// +/// INTEGRATION WITH TaintPass: +/// =========================== +/// - This pass marks all instrumented instructions with "ucsan.checked" metadata +/// - TaintPass checks this metadata and skips redundant pointer validation +/// - Enables efficient pipeline: UCSanPass (safety) → TaintPass (symbolics) +/// +//===----------------------------------------------------------------------===// + +#include "llvm/ADT/None.h" +#include "llvm/IR/Module.h" +#include "llvm/IR/Function.h" +#include "llvm/IR/Instructions.h" +#include "llvm/IR/IRBuilder.h" +#include "llvm/IR/InstVisitor.h" +#include "llvm/IR/Dominators.h" +#include "llvm/IR/Constants.h" +#include "llvm/IR/DataLayout.h" +#include "llvm/IR/IntrinsicInst.h" +#include "llvm/IR/Metadata.h" +#include "llvm/IR/MDBuilder.h" +#include "llvm/IR/Attributes.h" +#include "llvm/IR/InlineAsm.h" +#include "llvm/IR/PassManager.h" +#include "llvm/Passes/OptimizationLevel.h" +#include "llvm/Passes/PassBuilder.h" +#include "llvm/Passes/PassPlugin.h" +#include "llvm/Support/YAMLParser.h" +#include "llvm/Support/YAMLTraits.h" +#include "llvm/Support/FileSystem.h" +#include "llvm/Support/CommandLine.h" +#include "llvm/Support/Errc.h" +#include "llvm/Support/SpecialCaseList.h" +#include "llvm/Support/VirtualFileSystem.h" +#include "llvm/Transforms/Utils/BasicBlockUtils.h" +#include "llvm/Transforms/Utils/Local.h" +#include "llvm/ADT/DenseMap.h" +#include "llvm/ADT/DenseSet.h" +#include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/DepthFirstIterator.h" +#include "llvm/Analysis/ValueTracking.h" +#include +#include +#include +#include + +using namespace llvm; + +namespace { + +// Constants for shadow memory alignment +// Must match sizeof(ucsan_label) = sizeof(i16) = 2 bytes +static const Align ShadowTLSAlignment = Align(2); +static const unsigned ArgTLSSize = 800; +static const unsigned kRetvalTLSSize = 800; + +static const char *BBIDName = "dfsan.bb"; + +// Command line options +static cl::opt ClTraceBound("ucsan-trace-bound", + cl::desc("Enable bounds checking"), + cl::Hidden, cl::init(false)); + +// The ABI list files control how shadow parameters are passed. +static cl::list ClABIListFiles( + "ucsan-abilist", + cl::desc("File listing native ABI functions and how the pass treats them"), + cl::Hidden); + +class UCSanABIList { + std::unique_ptr SCL; + + public: + UCSanABIList() = default; + + void set(std::unique_ptr List) { SCL = std::move(List); } + + bool isValid() const { return SCL != nullptr; } + + /// Returns whether either this function or its source file are listed in the + /// given category. + bool isIn(const Function &F, StringRef Category) const { + if (!SCL) return false; + return isIn(*F.getParent(), Category) || + SCL->inSection("taint", "fun", F.getName(), Category); + } + + /// Returns whether this module is listed in the given category. + bool isIn(const Module &M, StringRef Category) const { + if (!SCL) return false; + return SCL->inSection("taint", "src", M.getModuleIdentifier(), Category); + } +}; + +namespace { + +// Memory map parameters used in application-to-shadow address calculation. +// Offset = (Addr & ~AndMask) ^ XorMask +// Shadow = ShadowBase + Offset * ShadowWidthBytes +struct MemoryMapParams { + uint64_t AndMask; + uint64_t XorMask; + uint64_t ShadowBase; +}; + +} // end anonymous namespace + +// x86_64 Linux +// NOLINTNEXTLINE(readability-identifier-naming) +// UCSan shadow memory layout (x86_64) +// Shadow: 0x480000000000 - 0x680000000000 (2TB) +static const MemoryMapParams Linux_X86_64_MemoryMapParams = { + 0x700000000000, // AndMask (keep old style) + 0, // XorMask (not used) + 0x480000000000, // ShadowBase (not used) +}; + +/// TransformedFunction is used to express the result of transforming one +/// function type into another. This struct is immutable. It holds metadata +/// useful for updating calls of the old function to the new type. +struct TransformedFunction { + TransformedFunction(FunctionType* OriginalType, + FunctionType* TransformedType, + std::vector ArgumentIndexMapping) + : OriginalType(OriginalType), + TransformedType(TransformedType), + ArgumentIndexMapping(ArgumentIndexMapping) {} + + // Disallow copies. + TransformedFunction(const TransformedFunction&) = delete; + TransformedFunction& operator=(const TransformedFunction&) = delete; + + // Allow moves. + TransformedFunction(TransformedFunction&&) = default; + TransformedFunction& operator=(TransformedFunction&&) = default; + + /// Type of the function before the transformation. + FunctionType *OriginalType; + + /// Type of the function after the transformation. + FunctionType *TransformedType; + + /// Transforming a function may change the position of arguments. This + /// member records the mapping from each argument's old position to its new + /// position. Argument positions are zero-indexed. + std::vector ArgumentIndexMapping; +}; + +/// Given function attributes from a call site for the original function, +/// return function attributes appropriate for a call to the transformed +/// function. +AttributeList +TransformFunctionAttributes(const TransformedFunction& TransformedFunction, + LLVMContext& Ctx, AttributeList CallSiteAttrs) { + + // Construct a vector of AttributeSet for each function argument. + std::vector ArgumentAttributes( + TransformedFunction.TransformedType->getNumParams()); + + // Copy attributes from the parameter of the original function to the + // transformed version. 'ArgumentIndexMapping' holds the mapping from + // old argument position to new. + for (unsigned I = 0, IE = TransformedFunction.ArgumentIndexMapping.size(); + I < IE; ++I) { + unsigned TransformedIndex = TransformedFunction.ArgumentIndexMapping[I]; + ArgumentAttributes[TransformedIndex] = CallSiteAttrs.getParamAttrs(I); + } + + // Copy annotations on varargs arguments. + for (unsigned I = TransformedFunction.OriginalType->getNumParams(), + IE = CallSiteAttrs.getNumAttrSets(); + I < IE; ++I) { + ArgumentAttributes.push_back(CallSiteAttrs.getParamAttrs(I)); + } + + return AttributeList::get(Ctx, CallSiteAttrs.getFnAttrs(), + CallSiteAttrs.getRetAttrs(), + llvm::makeArrayRef(ArgumentAttributes)); +} + +// YAML structures for metadata parsing +struct ArgMapEntry { + int idx; + int ucsan_idx; +}; + +struct UCSanScopeCustom { + std::string ref_name; + std::vector arg_maps; +}; + +struct UCSanScope { + std::string entry; + std::vector scope; + std::map custom; +}; + +} // namespace + +// YAML traits for parsing +namespace llvm { +namespace yaml { + +template<> +struct MappingTraits { + static void mapping(yaml::IO &io, ArgMapEntry &entry) { + io.mapRequired("idx", entry.idx); + io.mapRequired("ucsan_idx", entry.ucsan_idx); + } +}; + +template<> +struct SequenceTraits> { + static size_t size(yaml::IO &io, std::vector &seq) { + return seq.size(); + } + static ArgMapEntry& element(yaml::IO &io, std::vector &seq, size_t index) { + if (index >= seq.size()) + seq.resize(index + 1); + return seq[index]; + } +}; + +template<> +struct MappingTraits { + static void mapping(yaml::IO &io, UCSanScopeCustom &c) { + io.mapRequired("ref_name", c.ref_name); + io.mapRequired("arg_maps", c.arg_maps); + } +}; + +template<> +struct MappingTraits { + static void mapping(yaml::IO &io, UCSanScope &sc) { + io.mapRequired("entry", sc.entry); + io.mapOptional("scope", sc.scope); + io.mapOptional("custom", sc.custom); + } +}; + +template<> +struct CustomMappingTraits> { + static void inputOne(IO &io, StringRef Key, std::map &V) { + io.mapRequired(Key.str().c_str(), V[Key.str()]); + } + + static void output(IO &io, std::map &V) { + for (auto &Entry : V) { + io.mapRequired(Entry.first.c_str(), Entry.second); + } + } +}; + +} // namespace yaml +} // namespace llvm + +namespace { + +class UCSan { + friend struct UCSanFunction; + friend class UCSanVisitor; + + // UCSan uses 16-bit labels (separate from SymSan's 32-bit labels) + enum { + ShadowWidthBits = 16, + ShadowWidthBytes = ShadowWidthBits / 8 + }; + + enum WrapperKind { + WK_None, + WK_Custom, + WK_AutoCustom + }; + + Module *Mod; + LLVMContext *Ctx; + + // Basic types + IntegerType *Int8Ty; + IntegerType *Int16Ty; + IntegerType *Int32Ty; + IntegerType *Int64Ty; + IntegerType *Int1Ty; + IntegerType *IntptrTy; + PointerType *VoidPtrTy; + + // UCSan still needs sanitizer shadow memory + IntegerType *PrimitiveShadowTy; + PointerType *PrimitiveShadowPtrTy; + ConstantInt *ZeroPrimitiveShadow; + ConstantInt *UninitPrimitiveShadow; + ConstantInt *ShadowPtrAndMask; + ConstantInt *ShadowPtrXorMask; + ConstantInt *ShadowPtrBase; + ConstantInt *ShadowPtrMul; + Constant *ArgTLS; + Constant *RetvalTLS; + + // Runtime function types + FunctionType *UCCheckPointerFnTy; + FunctionType *UCCheckPointerArgFnTy; + FunctionType *UCCheckUBIFnTy; + FunctionType *UCCombineLabelFnTy; + FunctionType *UCSetLabelForArgsFnTy; + FunctionType *UCLoadPointerShadowFnTy; + FunctionType *UCStorePointerShadowFnTy; + FunctionType *UCResignShadowFnTy; + FunctionType *UCWrapRetvalFnTy; + FunctionType *UCSetLabelFnTy; + FunctionType *UCTraceBBFnTy; + FunctionType *UCTraceAllocaFnTy; + FunctionType *UCPushStackFrameFnTy; + FunctionType *UCPopStackFrameFnTy; + + // Runtime functions + FunctionCallee UCCheckPointerFn; + FunctionCallee UCCheckPointerArgFn; + FunctionCallee UCCheckUBIFn; + FunctionCallee UCCombineLabelFn; + FunctionCallee UCSetLabelForArgsFn; + FunctionCallee UCLoadPointerShadowFn; + FunctionCallee UCStorePointerShadowFn; + FunctionCallee UCResignShadowFn; + FunctionCallee UCWrapRetvalFn; + FunctionCallee UCSetLabelFn; + FunctionCallee UCTraceBBFn; + FunctionCallee UCTraceAllocaFn; + FunctionCallee UCPushStackFrameFn; + FunctionCallee UCPopStackFrameFn; + // FunctionCallee PopulateDataSegmentFn; + + FunctionCallee LLVMReturnAddrFn; + FunctionCallee ExitFn; + + SmallPtrSet UCRuntimeFunctions; + + /// Memory map parameters used in calculation mapping application addresses + /// to shadow addresses and origin addresses. + const MemoryMapParams *MapParams; + + // Metadata-driven scope + UCSanScope Scope; + std::map CustomFuncs; + std::map CustomFuncTypes; + DenseMap UnwrappedFnMap; + + // ABIList for custom function detection + UCSanABIList ABIList; + AttributeMask ReadOnlyNoneAttrs; + + void initializeRuntimeFunctions(Module &M); + void initializeCustomFunctionTypes(); + bool loadMetadata(); + bool initializeModule(Module &M); + + Function *buildDangleFunction(Function *F); + Function *buildDriverWrapperFunction(Function *F); + Function *getCustomFunction(const Function *F); + + WrapperKind getWrapperKind(Function *F); + TransformedFunction getCustomFunctionType(FunctionType *T); + + // Helper functions for shadow management (simplified for standalone) + Value *getShadowAddress(Value *Addr, IRBuilder<> &IRB); + + /// Returns a zero constant with the shadow type of OrigTy. + /// + /// getZeroShadow({T1,T2,...}) = {getZeroShadow(T1),getZeroShadow(T2,...} + /// getZeroShadow([n x T]) = [n x getZeroShadow(T)] + /// getZeroShadow(other type) = i32(0) + /// + /// Note that a zero shadow is always i32(0) when shouldTrackFieldsAndIndices + /// returns false. + Constant *getZeroShadow(Type *OrigTy); + /// Returns a zero constant with the shadow type of V's type. + Constant *getZeroShadow(Value *V); + + /// Checks if V is a zero shadow. + bool isZeroShadow(Value *V); + + /// Returns the shadow type of OrigTy. + /// + /// getShadowTy({T1,T2,...}) = {getShadowTy(T1),getShadowTy(T2),...} + /// getShadowTy([n x T]) = [n x getShadowTy(T)] + /// getShadowTy(other type) = i32 + /// + /// Note that a shadow type is always i32 when shouldTrackFieldsAndIndices + /// returns false. + Type *getShadowTy(Type *OrigTy); + /// Returns the shadow type of of V's type. + Type *getShadowTy(Value *V); + + /// Returns an uninitialized shadow value with the shadow type of OrigTy. + Constant *getUninitShadow(Type *OrigTy); + + /// Marks an instruction as "nosanitize" so TaintPass will skip it + inline void markNosanitize(Value *V) { + Instruction *I = dyn_cast(V); + if (I) I->setMetadata("nosanitize", MDNode::get(*Ctx, None)); + } + + /// Marks a function as "nosanitize" so TaintPass will skip instrumenting it + inline void markFunctionNosanitize(Function *F) { + if (F) F->addFnAttr(Attribute::DisableSanitizerInstrumentation); + } + +public: + UCSan() = default; + + bool runImpl(Module &M); +}; + +struct UCSanFunction { + UCSan &UC; + Function *F; + DominatorTree DT; + + Value *ArgTLSPtr = nullptr; + Value *RetvalTLSPtr = nullptr; + AllocaInst *LabelReturnAlloca = nullptr; + DenseMap ValShadowMap; + DenseMap AllocaShadowMap; + + struct PHIFixupElement { + PHINode *Phi; + PHINode *ShadowPhi; + }; + std::vector PHIFixups; + + DenseSet SkipInsts; + SmallVector RemovalInsts; + + struct CachedShadow { + BasicBlock *Block; // The block where Shadow is defined. + Value *Shadow; + }; + /// Maps a value to its latest shadow value in terms of domination tree. + DenseMap, CachedShadow> CachedShadows; + + // Pointer checking state + DenseMap CheckedPtrMap; + DenseSet CheckedPtrSet; + SmallVector NonZeroChecks; + + /// Computes the shadow address for a given function argument. + /// + /// Shadow = ArgTLS+ArgOffset. + Value *getArgTLS(Type *T, unsigned ArgOffset, IRBuilder<> &IRB); + + /// Computes the shadow address for a retval. + Value *getRetvalTLS(Type *T, IRBuilder<> &IRB); + + Value *getShadow(Value *V); + void setShadow(Instruction *I, Value *Shadow); + + /// XXX: because we never collapse taint labels for aggregate types, + /// we also do not expand taint labels from an aggreated primitive + /// shadow value. Instead, we always load the label for each + /// primitive field. + /// + /// Load all primitive subtypes of T, returning the aggrate shadow value. + /// + /// LS({T1,T2, ...}, Addr) = {LS(T1, SubAdrr),LS(T2, SubAddr),...} + /// LS([n x T], Addr) = [n x LS(T, SubAddr)] + /// LS(other types, Addr) = LS(PS, Addr) + Value *loadShadow(Value *Addr, uint64_t Size, Align Align, Type *Ty, Instruction *Pos); + + /// XXX: we do not union taint labels for aggregate types before store; + /// instead, we store each privimitive field individually. + /// + /// Store all primitive subtypes of T, using the aggrate shadow value. + /// + /// SS(Addr, {T1,T2, ...}) = SS(SubAddr, T1), SS(SubAddr, T2), ... + /// SS(Addr, [T1,T2,...]) = SS(SubAddr, T1), SS(SubAddr, T2), ... + /// SS(Addr, PS) = SS(Addr, PS) + void storeShadow(Value *Addr, uint64_t Size, Align Align, Value *Shadow, Type *Ty, Instruction *Pos); + + Value *checkPointer(Value *Ptr, Value *Size, bool dereference, IRBuilder<> &IRB); + + UCSanFunction(UCSan &UC, Function *F) + : UC(UC), F(F) { + DT.recalculate(*F); + } + +private: + /// Loads a primivite shadow label + Value *loadPrimitiveShadow(Value *Addr, uint64_t Size, Align Align, + Type *Ty, IRBuilder<> &IRB); + /// Loads shadow recursively for aggregate types + void loadShadowRecursive(Value *Shadow, SmallVector &Indices, + Type *SubTy, Value *Addr, uint64_t Size, + Align Align, IRBuilder<> &IRB); + /// Stores an aggregate shadow label + void storeShadowRecursive(Value *Shadow, SmallVector &Indices, + Type *SubTy, Value *Addr, uint64_t Size, + Align Align, IRBuilder<> &IRB); + /// Returns the shadow value of an argument A. + Value *getShadowForTLSArgument(Argument *A); +}; + +class UCSanVisitor : public InstVisitor { +public: + UCSanFunction &UF; + + UCSanVisitor(UCSanFunction &UF) : UF(UF) {} + + const DataLayout &getDataLayout() const { + return UF.F->getParent()->getDataLayout(); + } + + void visitCastInst(CastInst &CI); + void visitCallBase(CallBase &CB); + void visitReturnInst(ReturnInst &RI); + void visitAllocaInst(AllocaInst &AI); + void visitBranchInst(BranchInst &BI); + void visitBinaryOperator(BinaryOperator &BO); + void visitCmpInst(CmpInst &CI); + void visitAtomicRMWInst(AtomicRMWInst &I); + void visitLoadInst(LoadInst &LI); + void visitStoreInst(StoreInst &SI); + void visitMemCpyInst(MemCpyInst &I); + void visitMemSetInst(MemSetInst &I); + void visitMemMoveInst(MemMoveInst &I); + void visitGetElementPtrInst(GetElementPtrInst &GEPI); + void visitSelectInst(SelectInst &I); + void visitPHINode(PHINode &PN); + // void visitIntrinsicInst(IntrinsicInst &I); + +private: + // Returns false when this is an invoke of a custom function. + bool visitWrappedCallBase(Function *F, CallBase &CB); + void visitIndirectCallBase(Value *CV, CallBase &CB); + void visitInlineAsm(InlineAsm *IA, CallBase &CB); +}; + +// Initialize runtime functions +void UCSan::initializeRuntimeFunctions(Module &M) { + Function *F = nullptr; + + // Pointer checking: void* ucsan_check_pointer(void*, i16, i64, i1) + UCCheckPointerFnTy = FunctionType::get( + VoidPtrTy, + {VoidPtrTy, PrimitiveShadowTy, Int64Ty, Int1Ty}, + false); + UCCheckPointerFn = M.getOrInsertFunction("ucsan_check_pointer", UCCheckPointerFnTy); + F = dyn_cast(UCCheckPointerFn.getCallee()->stripPointerCasts()); + markFunctionNosanitize(F); + UCRuntimeFunctions.insert(F); + + // Pointer argument checking: void ucsan_check_ptr_arg(i16*, i32, void*) + UCCheckPointerArgFnTy = FunctionType::get( + Type::getVoidTy(*Ctx), + {PrimitiveShadowPtrTy, Int32Ty, VoidPtrTy}, + false); + UCCheckPointerArgFn = M.getOrInsertFunction("ucsan_check_ptr_arg", UCCheckPointerArgFnTy); + F = dyn_cast(UCCheckPointerArgFn.getCallee()->stripPointerCasts()); + markFunctionNosanitize(F); + UCRuntimeFunctions.insert(F); + + // UBI checking: void ucsan_check_ubi(i16) + UCCheckUBIFnTy = FunctionType::get( + Type::getVoidTy(*Ctx), + {PrimitiveShadowTy}, + false); + UCCheckUBIFn = M.getOrInsertFunction("ucsan_check_ubi", UCCheckUBIFnTy); + F = dyn_cast(UCCheckUBIFn.getCallee()->stripPointerCasts()); + markFunctionNosanitize(F); + UCRuntimeFunctions.insert(F); + + // Label combination for binary ops: i16 ucsan_combine_label(i16, i16) + UCCombineLabelFnTy = FunctionType::get( + PrimitiveShadowTy, + {PrimitiveShadowTy, PrimitiveShadowTy}, + false); + UCCombineLabelFn = M.getOrInsertFunction("ucsan_combine_label", UCCombineLabelFnTy); + F = dyn_cast(UCCombineLabelFn.getCallee()->stripPointerCasts()); + markFunctionNosanitize(F); + UCRuntimeFunctions.insert(F); + + // Shadow resignation: i16 ucsan_resign_shadow(void*, i16*, i64, void*) + UCResignShadowFnTy = FunctionType::get( + PrimitiveShadowTy, + {VoidPtrTy, PrimitiveShadowPtrTy, Int64Ty, VoidPtrTy}, + false); + UCResignShadowFn = M.getOrInsertFunction("ucsan_resign_shadow", UCResignShadowFnTy); + F = dyn_cast(UCResignShadowFn.getCallee()->stripPointerCasts()); + markFunctionNosanitize(F); + UCRuntimeFunctions.insert(F); + + // Return value wrapping: i16* ucsan_wrap_retval(i64, i16*, i1, void*) + UCWrapRetvalFnTy = FunctionType::get( + PrimitiveShadowPtrTy, + {Int64Ty, PrimitiveShadowPtrTy, Int1Ty, VoidPtrTy}, + false); + UCWrapRetvalFn = M.getOrInsertFunction("ucsan_wrap_retval", UCWrapRetvalFnTy); + F = dyn_cast(UCWrapRetvalFn.getCallee()->stripPointerCasts()); + markFunctionNosanitize(F); + UCRuntimeFunctions.insert(F); + + // Argument initialization: i16* ucsan_set_label_for_args(i32, i32, i8, i64) + UCSetLabelForArgsFnTy = FunctionType::get( + PrimitiveShadowPtrTy, + {Int32Ty, Int32Ty, Int8Ty, Int64Ty}, + false); + UCSetLabelForArgsFn = M.getOrInsertFunction("ucsan_set_label_for_args", UCSetLabelForArgsFnTy); + F = dyn_cast(UCSetLabelForArgsFn.getCallee()->stripPointerCasts()); + markFunctionNosanitize(F); + UCRuntimeFunctions.insert(F); + + // Load pointer shadow: i16 ucsan_load_pointer_shadow(i16*, i64, i1) + UCLoadPointerShadowFnTy = FunctionType::get( + PrimitiveShadowTy, + {PrimitiveShadowPtrTy, Int64Ty, Int1Ty}, + false); + UCLoadPointerShadowFn = M.getOrInsertFunction("ucsan_load_pointer_shadow", UCLoadPointerShadowFnTy); + F = dyn_cast(UCLoadPointerShadowFn.getCallee()->stripPointerCasts()); + markFunctionNosanitize(F); + UCRuntimeFunctions.insert(F); + + // Store pointer shadow: void ucsan_store_pointer_shadow(i16, i16*, i64) + UCStorePointerShadowFnTy = FunctionType::get( + Type::getVoidTy(*Ctx), + {PrimitiveShadowTy, PrimitiveShadowPtrTy, Int64Ty}, + false); + UCStorePointerShadowFn = M.getOrInsertFunction("ucsan_store_pointer_shadow", UCStorePointerShadowFnTy); + F = dyn_cast(UCStorePointerShadowFn.getCallee()->stripPointerCasts()); + markFunctionNosanitize(F); + UCRuntimeFunctions.insert(F); + + // LLVM return address intrinsic + LLVMReturnAddrFn = M.getOrInsertFunction("llvm.returnaddress", + FunctionType::get(VoidPtrTy, {Int32Ty}, false)); + UCRuntimeFunctions.insert(LLVMReturnAddrFn.getCallee()->stripPointerCasts()); + + // void exit(i32) with noreturn attribute + ExitFn = M.getOrInsertFunction("exit", + FunctionType::get(Type::getVoidTy(*Ctx), {Int32Ty}, false)); + if (Function *F = dyn_cast(ExitFn.getCallee()->stripPointerCasts())) { + F->addFnAttr(Attribute::NoReturn); + UCRuntimeFunctions.insert(F); + } + + // void ucsan_set_label(i16, void*, i64) + UCSetLabelFnTy = FunctionType::get( + Type::getVoidTy(*Ctx), + {PrimitiveShadowTy, VoidPtrTy, Int64Ty}, + false); + UCSetLabelFn = M.getOrInsertFunction("ucsan_set_label", UCSetLabelFnTy); + F = dyn_cast(UCSetLabelFn.getCallee()->stripPointerCasts()); + markFunctionNosanitize(F); + UCRuntimeFunctions.insert(F); + + // void ucsan_trace_bb(i32, i32) + UCTraceBBFnTy = FunctionType::get( + Type::getVoidTy(*Ctx), + {Int32Ty, Int32Ty}, + false); + UCTraceBBFn = M.getOrInsertFunction("ucsan_trace_bb", UCTraceBBFnTy); + F = dyn_cast(UCTraceBBFn.getCallee()->stripPointerCasts()); + markFunctionNosanitize(F); + UCRuntimeFunctions.insert(F); + + // i16 ucsan_trace_alloca(i64 Size, i64 ElemSize, i64 Address) + // Returns a shadow label representing bounds for this stack allocation + UCTraceAllocaFnTy = FunctionType::get( + PrimitiveShadowTy, + {Int64Ty, Int64Ty, Int64Ty}, + false); + UCTraceAllocaFn = M.getOrInsertFunction("ucsan_trace_alloca", UCTraceAllocaFnTy); + F = dyn_cast(UCTraceAllocaFn.getCallee()->stripPointerCasts()); + markFunctionNosanitize(F); + UCRuntimeFunctions.insert(F); + + // void ucsan_push_stack_frame() + // Called at function entry to save the current stack top + UCPushStackFrameFnTy = FunctionType::get(Type::getVoidTy(*Ctx), {}, false); + UCPushStackFrameFn = M.getOrInsertFunction("ucsan_push_stack_frame", UCPushStackFrameFnTy); + F = dyn_cast(UCPushStackFrameFn.getCallee()->stripPointerCasts()); + markFunctionNosanitize(F); + UCRuntimeFunctions.insert(F); + + // void ucsan_pop_stack_frame() + // Called at function exit to restore the stack top + UCPopStackFrameFnTy = FunctionType::get(Type::getVoidTy(*Ctx), {}, false); + UCPopStackFrameFn = M.getOrInsertFunction("ucsan_pop_stack_frame", UCPopStackFrameFnTy); + F = dyn_cast(UCPopStackFrameFn.getCallee()->stripPointerCasts()); + markFunctionNosanitize(F); + UCRuntimeFunctions.insert(F); +} + +void UCSan::initializeCustomFunctionTypes() { + // Custom function types will be populated based on YAML metadata + // TODO: add more custom function prototypes here + CustomFuncTypes["malloc"] = FunctionType::get(VoidPtrTy, {Int64Ty}, false); + CustomFuncTypes["free"] = FunctionType::get(Type::getVoidTy(*Ctx), {VoidPtrTy}, false); + CustomFuncTypes["realloc"] = FunctionType::get(VoidPtrTy, {VoidPtrTy, Int64Ty}, false); + CustomFuncTypes["calloc"] = FunctionType::get(VoidPtrTy, {Int64Ty, Int64Ty}, false); + CustomFuncTypes["strdup"] = FunctionType::get(VoidPtrTy, {VoidPtrTy}, false); + CustomFuncTypes["exit"] = FunctionType::get(Type::getVoidTy(*Ctx), {Int32Ty}, false); +} + +bool UCSan::loadMetadata() { + char* filename = getenv("METADATA"); + if (!filename) + return false; + + int fd; + std::vector Buf; + if (sys::fs::openFileForRead(filename, fd)) { + errs() << "Warning: Cannot open metadata file: " << filename << "\n"; + return false; + } + + sys::fs::file_status Status; + if (sys::fs::status(fd, Status)) { + errs() << "Warning: Cannot stat metadata file: " << filename << "\n"; + sys::fs::closeFile(fd); + return false; + } + + Buf.resize(Status.getSize()); + auto ReadResult = sys::fs::readNativeFile(sys::fs::convertFDToNativeFile(fd), + MutableArrayRef(Buf.data(), Buf.size())); + if (!ReadResult) { + errs() << "Warning: Cannot read metadata file: " << filename << "\n"; + sys::fs::closeFile(fd); + return false; + } + + yaml::Input yin(StringRef(Buf.data(), Buf.size())); + yin >> Scope; + + if (yin.error()) { + errs() << "Error parsing YAML metadata: " << filename << "\n"; + sys::fs::closeFile(fd); + return false; + } + + sys::fs::closeFile(fd); + return true; +} + +// Helper: Get shadow type for a given type (simplified for standalone UCSan) +Type *UCSan::getShadowTy(Value *V) { + return getShadowTy(V->getType()); +} + +Type *UCSan::getShadowTy(Type *OrigTy) { + if (!OrigTy->isSized()) + return PrimitiveShadowTy; + if (isa(OrigTy)) + return PrimitiveShadowTy; + if (isa(OrigTy)) + return PrimitiveShadowTy; + if (ArrayType *AT = dyn_cast(OrigTy)) + return ArrayType::get(getShadowTy(AT->getElementType()), + AT->getNumElements()); + if (StructType *ST = dyn_cast(OrigTy)) { + SmallVector Elements; + for (unsigned I = 0, N = ST->getNumElements(); I < N; ++I) + Elements.push_back(getShadowTy(ST->getElementType(I))); + return StructType::get(*Ctx, Elements); + } + return PrimitiveShadowTy; +} + +/// Returns a zero shadow constant. +Constant *UCSan::getZeroShadow(Type *OrigTy) { + if (!isa(OrigTy) && !isa(OrigTy)) + return ZeroPrimitiveShadow; + Type *ShadowTy = getShadowTy(OrigTy); + return ConstantAggregateZero::get(ShadowTy); +} + +Constant *UCSan::getZeroShadow(Value *V) { + return getZeroShadow(V->getType()); +} + +/// Checks if a value is a zero shadow. +bool UCSan::isZeroShadow(Value *V) { + Type *T = V->getType(); + if (!isa(T) && !isa(T)) { + if (const ConstantInt *CI = dyn_cast(V)) + return CI->isZero(); + return false; + } + + return isa(V); +} + +/// Returns an uninitialized shadow constant. +Constant *UCSan::getUninitShadow(Type *OrigTy) { + if (!isa(OrigTy) && !isa(OrigTy)) + return UninitPrimitiveShadow; + Type *ShadowTy = getShadowTy(OrigTy); + if (ArrayType *AT = dyn_cast(ShadowTy)) { + SmallVector Elements(AT->getNumElements(), + getUninitShadow(AT->getElementType())); + return ConstantArray::get(AT, Elements); + } else if (StructType *ST = dyn_cast(ShadowTy)) { + SmallVector Elements(ST->getNumElements()); + for (unsigned I = 0, N = ST->getNumElements(); I < N; ++I) + Elements[I] = getUninitShadow(ST->getElementType(I)); + return ConstantStruct::get(ST, Elements); + } + llvm_unreachable("Unexpected type for uninitialized shadow"); +} + +/// Get the shadow memory address for a given data address. +/// Shadow memory layout: shadow_addr = ((data_addr & mask) << 1) + ShadowBase +/// For 16-bit labels, each byte gets 2 bytes of shadow memory. +Value *UCSan::getShadowAddress(Value *Addr, IRBuilder<> &IRB) { + assert(Addr != RetvalTLS && "Reinstrumenting?"); + // Formula: ((ptr & ShadowMask) * 2) + ShadowBase + Value *OffsetLong = IRB.CreatePointerCast(Addr, IntptrTy); + markNosanitize(OffsetLong); + if (ShadowPtrAndMask) { + OffsetLong = IRB.CreateAnd(OffsetLong, ShadowPtrAndMask); + markNosanitize(OffsetLong); + } + if (ShadowPtrXorMask) { + OffsetLong = IRB.CreateXor(OffsetLong, ShadowPtrXorMask); + markNosanitize(OffsetLong); + } + if (ShadowPtrMul) { + OffsetLong = IRB.CreateMul(OffsetLong, ShadowPtrMul); + markNosanitize(OffsetLong); + } + if (ShadowPtrBase) { + OffsetLong = IRB.CreateAdd(OffsetLong, ShadowPtrBase); + markNosanitize(OffsetLong); + } + Value *ShadowAddr = IRB.CreateIntToPtr(OffsetLong, PrimitiveShadowPtrTy); + markNosanitize(ShadowAddr); + return ShadowAddr; +} + +/// Computes the shadow address for a given function argument. +/// +/// Shadow = ArgTLS + ArgOffset. +/// UCSan uses shadow memory to track pointer aliasing - which pointers +/// point to the same memory object. This is essential for lazy allocation +/// and pseudo-pointer translation. +Value *UCSanFunction::getArgTLS(Type *T, unsigned ArgOffset, IRBuilder<> &IRB) { + Value *Base = IRB.CreatePointerCast(UC.ArgTLS, UC.IntptrTy); + UC.markNosanitize(Base); + if (ArgOffset) { + Base = IRB.CreateAdd(Base, ConstantInt::get(UC.IntptrTy, ArgOffset)); + UC.markNosanitize(Base); + } + Base = IRB.CreateIntToPtr(Base, PointerType::get(UC.getShadowTy(T), 0), + "_dfsarg"); + UC.markNosanitize(Base); + return Base; +} + +/// Computes the shadow address for a return value. +/// UCSan uses this to track symbolic labels on return values, +/// enabling pointer aliasing tracking across function boundaries. +Value *UCSanFunction::getRetvalTLS(Type *T, IRBuilder<> &IRB) { + Value *Ret = IRB.CreatePointerCast( + UC.RetvalTLS, PointerType::get(UC.getShadowTy(T), 0), "_dfsret"); + UC.markNosanitize(Ret); + return Ret; +} + +/// Get shadow value for a given LLVM value. +/// UCSan uses shadows to track pointer aliasing. +Value *UCSanFunction::getShadow(Value *V) { + if (!isa(V) && !isa(V)) + return UC.getZeroShadow(V); + Value *&Shadow = ValShadowMap[V]; + if (!Shadow) { + if (Argument *A = dyn_cast(V)) { + Shadow = getShadowForTLSArgument(A); + } else { + Shadow = UC.getZeroShadow(V); + } + } + return Shadow; +} + +/// Set shadow value for an instruction. +void UCSanFunction::setShadow(Instruction *I, Value *Shadow) { + assert(!ValShadowMap.count(I)); + ValShadowMap[I] = Shadow; +} + +/// Get shadow for a function argument from TLS. +Value *UCSanFunction::getShadowForTLSArgument(Argument *A) { + unsigned ArgOffset = 0; + const DataLayout &DL = F->getParent()->getDataLayout(); + for (auto &FArg : F->args()) { + if (!FArg.getType()->isSized()) { + if (A == &FArg) + return UC.getZeroShadow(A); + continue; + } + + unsigned Size = DL.getTypeAllocSize(UC.getShadowTy(&FArg)); + if (A != &FArg) { + ArgOffset += alignTo(Size, ShadowTLSAlignment); + if (ArgOffset > ArgTLSSize) + break; // ArgTLS overflows, uses a zero shadow. + continue; + } + + if (ArgOffset + Size > ArgTLSSize) + break; // ArgTLS overflows, uses a zero shadow. + + Instruction *ArgTLSPos = &*F->getEntryBlock().begin(); + IRBuilder<> IRB(ArgTLSPos); + Value *ArgShadowPtr = getArgTLS(FArg.getType(), ArgOffset, IRB); + LoadInst *LI = IRB.CreateAlignedLoad(UC.getShadowTy(&FArg), ArgShadowPtr, + ShadowTLSAlignment); + UC.markNosanitize(LI); + return LI; + } + + return UC.getZeroShadow(A); +} + +/// Load primitive shadow corresponding to bytes [Addr, Addr+Size), where +// Addr has alignment Align, and take the union of each of those shadows. +Value *UCSanFunction::loadPrimitiveShadow(Value *Addr, uint64_t Size, Align Align, + Type *Ty, IRBuilder<> &IRB) { + if (Size == 0) + return UC.ZeroPrimitiveShadow; + + Value *ShadowAddr = UC.getShadowAddress(Addr, IRB); + // TOOD: Optimize for non-pointer types + CallInst *FallbackCall = IRB.CreateCall( + UC.UCLoadPointerShadowFn, + {ShadowAddr, ConstantInt::get(UC.Int64Ty, Size), + ConstantInt::get(UC.Int1Ty, Ty->isPointerTy())}); + FallbackCall->addRetAttr(Attribute::ZExt); + UC.markNosanitize(FallbackCall); + return FallbackCall; +} + +/// Recursive helper to load shadow for aggregate types. +void UCSanFunction::loadShadowRecursive( + Value *Shadow, SmallVector &Indices, Type *SubTy, + Value *Addr, uint64_t Size, Align InstAlign, IRBuilder<> &IRB) { + auto &DL = F->getParent()->getDataLayout(); + + if (!isa(SubTy) && !isa(SubTy)) { + uint64_t SubSize = DL.getTypeStoreSize(SubTy); + assert(Size >= SubSize); + InstAlign = Align(std::min(InstAlign.value(), (uint64_t)DL.getABITypeAlignment(SubTy))); + // load a primitive shadow from address + Value *PrimitiveShadow = loadPrimitiveShadow(Addr, SubSize, InstAlign, SubTy, IRB); + // then insert the primitive shadow into the sub-field + Value *Insert = IRB.CreateInsertValue(Shadow, PrimitiveShadow, Indices); + UC.markNosanitize(Insert); + return; + } + + if (ArrayType *AT = dyn_cast(SubTy)) { + for (unsigned Idx = 0; Idx < AT->getNumElements(); Idx++) { + Indices.push_back(Idx); + // double check the remaining size + Type *ElemTy = AT->getElementType(); + uint64_t ElemSize = DL.getTypeStoreSize(ElemTy); + uint64_t Offset = ElemSize * Idx; + assert(Offset <= Size); + // get the address of the array element + Value *SubAddr = IRB.CreateConstGEP2_32(AT, Addr, 0, Idx); + UC.markNosanitize(SubAddr); + loadShadowRecursive(Shadow, Indices, ElemTy, + SubAddr, Size - Offset, InstAlign, IRB); + Indices.pop_back(); + } + return; + } + + if (StructType *ST = dyn_cast(SubTy)) { + const StructLayout *SL = DL.getStructLayout(ST); + for (unsigned Idx = 0; Idx < ST->getNumElements(); Idx++) { + Indices.push_back(Idx); + // double check the remaining size + uint64_t Offset = SL->getElementOffset(Idx); + assert(Offset <= Size); + Type *ElemTy = ST->getElementType(Idx); + // get the address of the struct field + Value *SubAddr = IRB.CreateConstGEP2_32(ST, Addr, 0, Idx); + UC.markNosanitize(SubAddr); + loadShadowRecursive(Shadow, Indices, ElemTy, + SubAddr, Size - Offset, InstAlign, IRB); + Indices.pop_back(); + } + return; + } + llvm_unreachable("Unexpected shadow type"); +} + +/// Load shadow from shadow memory for a given address. +Value *UCSanFunction::loadShadow(Value *Addr, uint64_t Size, Align Align, + Type *Ty, Instruction *Pos) { + IRBuilder<> IRB(Pos); + // if loading from a local variable, load label from its shadow alloca + if (AllocaInst *AI = dyn_cast(Addr)) { + const auto i = AllocaShadowMap.find(AI); + if (i != AllocaShadowMap.end()) { + LoadInst *LI = IRB.CreateLoad(UC.getShadowTy(Ty), i->second); + UC.markNosanitize(LI); + return LI; + } + } + + SmallVector Objs; + getUnderlyingObjects(Addr, Objs); + bool AllConstants = true; + for (const Value *Obj : Objs) { + if (isa(Obj) || isa(Obj)) + continue; + if (isa(Obj) && cast(Obj)->isConstant()) + continue; + + AllConstants = false; + break; + } + if (AllConstants) + return UC.ZeroPrimitiveShadow; + + const llvm::Align ShadowAlign(Align.value() * UCSan::ShadowWidthBytes); + + // now check if we're loading an aggragate object + if (!isa(Ty) && !isa(Ty)) + return loadPrimitiveShadow(Addr, Size, ShadowAlign, Ty, IRB); + + // if loading an aggregate object, load its shadow recursively + SmallVector Indices; + Type *ShadowTy = UC.getShadowTy(Ty); + Value *Shadow = UndefValue::get(ShadowTy); + loadShadowRecursive(Shadow, Indices, Ty, Addr, Size, ShadowAlign, IRB); + return Shadow; +} + +void UCSanFunction::storeShadowRecursive( + Value *Shadow, SmallVector &Indices, Type *SubTy, + Value *Addr, uint64_t Size, Align InstAlign, IRBuilder<> &IRB) { + auto &DL = F->getParent()->getDataLayout(); + + if (!isa(SubTy) && !isa(SubTy)) { + uint64_t SubSize = DL.getTypeStoreSize(SubTy); + assert(Size >= SubSize); + InstAlign = Align(std::min(InstAlign.value(), + (uint64_t)DL.getABITypeAlignment(SubTy))); + // load a primitive shadow from the sub-field + Value *PrimitiveShadow = IRB.CreateExtractValue(Shadow, Indices); + UC.markNosanitize(PrimitiveShadow); + // then store the primitive shadow into the shadow address + Value *ShadowAddr = UC.getShadowAddress(Addr, IRB); + CallInst *CI = IRB.CreateCall(UC.UCStorePointerShadowFn, + {PrimitiveShadow, ShadowAddr, ConstantInt::get(UC.Int64Ty, SubSize)}); + UC.markNosanitize(CI); + return; + } + + if (ArrayType *AT = dyn_cast(SubTy)) { + for (unsigned Idx = 0; Idx < AT->getNumElements(); Idx++) { + Indices.push_back(Idx); + // double check the remaining size + Type *ElemTy = AT->getElementType(); + uint64_t ElemSize = DL.getTypeStoreSize(ElemTy); + uint64_t Offset = ElemSize * Idx; + assert(Offset <= Size); + // get the address of the array element + Value *SubAddr = IRB.CreateConstGEP2_32(AT, Addr, 0, Idx); + UC.markNosanitize(SubAddr); + storeShadowRecursive(Shadow, Indices, ElemTy, + SubAddr, Size - Offset, InstAlign, IRB); + Indices.pop_back(); + } + return; + } + + if (StructType *ST = dyn_cast(SubTy)) { + const StructLayout *SL = DL.getStructLayout(ST); + for (unsigned Idx = 0; Idx < ST->getNumElements(); Idx++) { + Indices.push_back(Idx); + // double check the remaining size + uint64_t Offset = SL->getElementOffset(Idx); + assert(Offset <= Size); + Type *ElemTy = ST->getElementType(Idx); + // get the address of the struct field + Value *SubAddr = IRB.CreateConstGEP2_32(ST, Addr, 0, Idx); + UC.markNosanitize(SubAddr); + storeShadowRecursive(Shadow, Indices, ElemTy, + SubAddr, Size - Offset, InstAlign, IRB); + Indices.pop_back(); + } + return; + } + llvm_unreachable("Unexpected shadow type"); +} + +/// Store shadow to shadow memory for a given address. +void UCSanFunction::storeShadow(Value *Addr, uint64_t Size, Align Alignment, + Value *Shadow, Type *Ty, Instruction *Pos) { + IRBuilder<> IRB(Pos); + if (AllocaInst *AI = dyn_cast(Addr)) { + const auto i = AllocaShadowMap.find(AI); + if (i != AllocaShadowMap.end()) { + StoreInst *SI = IRB.CreateStore(Shadow, i->second); + UC.markNosanitize(SI); + SkipInsts.insert(SI); + return; + } + } + + const Align ShadowAlign(Alignment.value() * UCSan::ShadowWidthBytes); + Value *ShadowAddr = UC.getShadowAddress(Addr, IRB); + // check if the shadow is zero, if so, clear the shadow memory regardless + // of the shadow type + if (UC.isZeroShadow(Shadow)) { + IntegerType *ShadowTy = + IntegerType::get(*UC.Ctx, Size * UC.ShadowWidthBits); + Value *ExtZeroShadow = ConstantInt::get(ShadowTy, 0); + Value *ExtShadowAddr = + IRB.CreateBitCast(ShadowAddr, PointerType::getUnqual(ShadowTy)); + UC.markNosanitize(ExtShadowAddr); + Value *SI = IRB.CreateAlignedStore(ExtZeroShadow, ExtShadowAddr, ShadowAlign); + UC.markNosanitize(SI); + return; + } + + // now check if we're storing an aggragate shadow object + if (!isa(Ty) && !isa(Ty)) { + // TODO: Optimize for non-pointer types + CallInst *CI = IRB.CreateCall( + UC.UCStorePointerShadowFn, + {Shadow, ShadowAddr, ConstantInt::get(UC.Int64Ty, Size)}); + UC.markNosanitize(CI); + return; + } + + // if storing an aggregate shadow object, store its shadow recursively + // we want to do this so union_store may have a chance to simplify some + // constraints + SmallVector Indices; + storeShadowRecursive(Shadow, Indices, Ty, + Addr, Size, ShadowAlign, IRB); +} + +Function *UCSan::buildDangleFunction(Function *F) { + // Creates wrapper for out-of-scope functions + // This allows in-scope code to call out-of-scope functions safely + // The wrapper handles shadow management and pointer checking + + FunctionType *FT = F->getFunctionType(); + std::string FN = "__external$" + F->getName().str(); + Function *NewF = Function::Create(FT, GlobalValue::LinkageTypes::PrivateLinkage, + F->getAddressSpace(), FN, Mod); + markFunctionNosanitize(NewF); // Mark dangle wrapper so TaintPass skips it + FunctionType *NewFT = NewF->getFunctionType(); + BasicBlock *BB = BasicBlock::Create(*Ctx, "entry", NewF); + IRBuilder<> IRB(BB); + + // Create UCSanFunction context for shadow memory access + UCSanFunction UF(*this, NewF); + + const DataLayout &DL = Mod->getDataLayout(); + bool resign_ptrargs = getenv("KO_RESIGN_PTRARGS") != nullptr; + bool checker_ubi = getenv("KO_CHECKER_UBI") != nullptr; + + // Get return address for tracking + auto RetAddr = IRB.CreateCall(LLVMReturnAddrFn, {ConstantInt::get(Int32Ty, 0)}, "retaddr"); + + // Process pointer arguments if needed + if (resign_ptrargs || checker_ubi) { + unsigned ArgOffset = 0; + unsigned n = FT->getNumParams(); + + for (auto arg = NewF->arg_begin(); n != 0; ++arg, --n) { + if (arg->getType()->isPointerTy()) { + // Get size of pointed-to type + ConstantInt *CI; + if (arg->getType()->getPointerElementType()->isSized()) { + CI = ConstantInt::get(Int64Ty, DL.getTypeSizeInBits(arg->getType()->getPointerElementType()) / 8); + } else { + CI = ConstantInt::get(Int64Ty, 0); + } + + // Get shadow address for this argument from TLS + // UCSan uses shadow memory to track pointer aliasing + Value *shadow = UF.getArgTLS(arg->getType(), ArgOffset, IRB); + + // Check UBI if enabled + if (checker_ubi) { + Value *loaded_shadow = IRB.CreateAlignedLoad(PrimitiveShadowTy, shadow, ShadowTLSAlignment); + IRB.CreateCall(UCCheckUBIFn, {loaded_shadow}); + } + + // Resign shadow if enabled + if (resign_ptrargs) { + Value *BCI = IRB.CreatePointerCast(&*arg, PrimitiveShadowPtrTy); + IRB.CreateCall(UCResignShadowFn, {BCI, shadow, CI, RetAddr}); + } + } + + // Update offset for next argument + unsigned Size = DL.getTypeAllocSize(getShadowTy(&*arg)); + ArgOffset += alignTo(Size, ShadowTLSAlignment); + } + } + + // Wrap return value + Type *RT = FT->getReturnType(); + if (!RT->isVoidTy()) { + ConstantInt *size = ConstantInt::get(Int64Ty, DL.getTypeSizeInBits(RT)); + ConstantInt *is_ptr = ConstantInt::get(Int1Ty, RT->isPointerTy()); + Value *retvaltls = UF.getRetvalTLS(RT, IRB); + + Value *ret = IRB.CreateCall(UCWrapRetvalFn, {size, retvaltls, is_ptr, RetAddr}); + Value *ret_ptr = IRB.CreateBitOrPointerCast(ret, RT->getPointerTo()); + Value *loaded_ret = IRB.CreateLoad(RT, ret_ptr); + IRB.CreateRet(loaded_ret); + } else { + IRB.CreateRetVoid(); + } + + return NewF; +} + +Function *UCSan::buildDriverWrapperFunction(Function *F) { + // Creates main() wrapper that calls the entry point function + // This replaces the standard main() and initializes arguments symbolically + + // Check if we should skip wrapper creation + if (getenv("NOT_ENTRY_OBJECT")) { + return F; + } + + // Create new main() with standard signature: int main(int argc, char **argv) + Type *ArgvTy = PointerType::getUnqual(PointerType::getUnqual(Int8Ty)); + FunctionType *FT = FunctionType::get(Int32Ty, {Int32Ty, ArgvTy}, false); + Function *NewF = Function::Create(FT, GlobalValue::LinkageTypes::ExternalLinkage, + F->getAddressSpace(), "main", Mod); + // Set argument names for clarity + NewF->getArg(0)->setName("argc"); + NewF->getArg(1)->setName("argv"); + + // Only copy function-level attributes, not parameter or return attributes + NewF->setAttributes(AttributeList::get(*Ctx, F->getAttributes().getFnAttrs(), + AttributeSet(), {})); + markFunctionNosanitize(NewF); // Mark driver wrapper so TaintPass skips it + + BasicBlock *BB = BasicBlock::Create(*Ctx, "entry", NewF); + IRBuilder<> IRB(BB); + + // Handle the entry point function + if (F->isVarArg()) { + // VarArg functions not yet supported for entry points + errs() << "Warning: VarArg entry points not supported\n"; + assert(false && "Not implemented"); + IRB.CreateRet(ConstantInt::get(Int32Ty, 1)); + return NewF; + } + + FunctionType *EntryFT = F->getFunctionType(); + const DataLayout &DL = Mod->getDataLayout(); + + // Initialize arguments for the entry point + std::vector Args; + for (Function::arg_iterator ai = F->arg_begin(), ae = F->arg_end(); ai != ae; ++ai) { + ConstantInt *ArgNo = ConstantInt::get(Int32Ty, ai->getArgNo()); + ConstantInt *ArgSize = ConstantInt::get(Int32Ty, DL.getTypeSizeInBits(ai->getType())); + ConstantInt *IsPtr = ConstantInt::get(Int8Ty, ai->getType()->isPointerTy()); + ConstantInt *InitVal = ConstantInt::get(Int64Ty, 0); + + // Call runtime to create symbolic argument + // Returns a pointer that we cast to the appropriate type + Value *casted_arg = IRB.CreateCall(UCSetLabelForArgsFn, {ArgNo, ArgSize, IsPtr, InitVal}); + Args.push_back(IRB.CreateBitOrPointerCast(casted_arg, ai->getType())); + } + + // Call the actual entry point function + IRB.CreateCall(F, Args); + + // Return 0 (success) + IRB.CreateRet(ConstantInt::get(Int32Ty, 0)); + + // Add basic block tracing to entry point if enabled + if (getenv("KO_TRACE_BB")) { + unsigned int BBCount = 0; + for (Function::iterator BI = F->begin(), BE = F->end(); BI != BE; ++BI, ++BBCount) { + ConstantInt *BBID = ConstantInt::get(Int32Ty, BBCount); + + // Add trace call at beginning of basic block + CallInst *CI = CallInst::Create(UCTraceBBFn, + {ConstantInt::get(Int32Ty, 0), BBID}, + "", &*BI->getFirstNonPHI()); + + // Add metadata for BB tracking + MDNode *MD = MDNode::get(Mod->getContext(), + {ConstantAsMetadata::get(BBID)}); + BI->getTerminator()->setMetadata(BBIDName, MD); + } + } + + return NewF; +} + +Function *UCSan::getCustomFunction(const Function *F) { + // Handles auto-custom function wrapping based on YAML configuration + // Maps arguments from one function signature to another + + auto Name = F->getName().str(); + + // Check if already built + if (CustomFuncs.find(Name) != CustomFuncs.end()) { + return CustomFuncs[Name]; + } + + // Check if this is a custom function in metadata + if (Scope.custom.find(Name) == Scope.custom.end()) { + return nullptr; // Not a custom function + } + + auto &CustomEntry = Scope.custom[Name]; + + // Verify referenced function type exists + if (CustomFuncTypes.find(CustomEntry.ref_name) == CustomFuncTypes.end()) { + errs() << "Error: Referenced function " << CustomEntry.ref_name << " not found\n"; + return nullptr; + } + + // Create wrapper function + auto Linkage = Function::InternalLinkage; + auto WrappedName = "__auto_dfsw_" + Name; + auto RefedName = "__dfsw_" + CustomEntry.ref_name; + + FunctionType *RefedFuncType = CustomFuncTypes[CustomEntry.ref_name]; + FunctionType *WrapperType = FunctionType::get(F->getReturnType(), + F->getFunctionType()->params(), + F->isVarArg()); + + Function *WrapperFunc = Function::Create(WrapperType, Linkage, WrappedName, *Mod); + markFunctionNosanitize(WrapperFunc); // Mark custom wrapper so TaintPass skips it + BasicBlock *BB = BasicBlock::Create(*Ctx, "entry", WrapperFunc); + IRBuilder<> IRB(BB); + + // Create UCSanFunction context for shadow memory access + UCSanFunction UF(*this, WrapperFunc); + + // Get or insert the referenced function + FunctionCallee RefedFunc = Mod->getOrInsertFunction(RefedName, RefedFuncType); + + // Build argument mapping + std::map ArgMap; + std::map ArgTLSMap; + + for (auto &ArgMapEntry : CustomEntry.arg_maps) { + ArgMap[ArgMapEntry.ucsan_idx] = ArgMapEntry.idx; + } + + const DataLayout &DL = Mod->getDataLayout(); + unsigned ArgOffset = 0; + + // Calculate shadow offsets for each argument + for (unsigned i = 0, e = F->arg_size(); i != e; ++i) { + ArgTLSMap[i] = ArgOffset; + unsigned Size = DL.getTypeAllocSize(getShadowTy(F->getArg(i)->getType())); + ArgOffset += alignTo(Size, ShadowTLSAlignment); + } + + // Build actual arguments for referenced function + std::vector Args; + + // Add regular arguments + for (unsigned i = 0, e = RefedFuncType->getNumParams(); i != e; ++i) { + if (ArgMap.find(i) == ArgMap.end()) { + errs() << "Error: Argument " << i << " not in arg_maps\n"; + return nullptr; + } + unsigned idx = ArgMap[i]; + Args.push_back(WrapperFunc->getArg(idx)); + } + + // Add shadow arguments from TLS (UCSan uses shadow memory for pointer aliasing) + for (unsigned i = 0, e = RefedFuncType->getNumParams(); i != e; ++i) { + unsigned idx = ArgMap[i]; + Value *argtls = UF.getArgTLS(F->getArg(idx)->getType(), ArgTLSMap[idx], IRB); + Value *ArgShadow = IRB.CreateLoad(PrimitiveShadowTy, argtls); + Args.push_back(ArgShadow); + } + + // Handle return value + if (!F->getReturnType()->isVoidTy()) { + Value *retvaltls = UF.getRetvalTLS(F->getReturnType(), IRB); + Args.push_back(retvaltls); + + Value *RetVal = IRB.CreateCall(RefedFunc, Args); + Value *CastedRetVal = IRB.CreateBitOrPointerCast(RetVal, F->getReturnType()); + IRB.CreateRet(CastedRetVal); + } else { + IRB.CreateCall(RefedFunc, Args); + IRB.CreateRetVoid(); + } + + CustomFuncs[Name] = WrapperFunc; + return WrapperFunc; +} + +UCSan::WrapperKind UCSan::getWrapperKind(Function *F) { + // Check ABIList for custom functions (priority) + if (ABIList.isIn(*F, "custom")) + return WK_Custom; + + // Check if function is in the custom map from YAML metadata + if (Scope.custom.find(F->getName().str()) != Scope.custom.end()) { + return WK_AutoCustom; + } + return WK_None; +} + +TransformedFunction UCSan::getCustomFunctionType(FunctionType *T) { + SmallVector ArgTypes; + + // Some parameters of the custom function being constructed are + // parameters of T. Record the mapping from parameters of T to + // parameters of the custom function, so that parameter attributes + // at call sites can be updated. + std::vector ArgumentIndexMapping; + for (unsigned i = 0, ie = T->getNumParams(); i != ie; ++i) { + Type* param_type = T->getParamType(i); + ArgumentIndexMapping.push_back(ArgTypes.size()); + ArgTypes.push_back(param_type); + } + for (unsigned i = 0, e = T->getNumParams(); i != e; ++i) + ArgTypes.push_back(PrimitiveShadowTy); + if (T->isVarArg()) + ArgTypes.push_back(PrimitiveShadowPtrTy); + Type *RetType = T->getReturnType(); + if (!RetType->isVoidTy()) + ArgTypes.push_back(PrimitiveShadowPtrTy); + return TransformedFunction( + T, FunctionType::get(T->getReturnType(), ArgTypes, T->isVarArg()), + ArgumentIndexMapping); +} + +Value *UCSanFunction::checkPointer(Value *Ptr, Value *Size, bool dereference, + IRBuilder<> &IRB) { + Type *Ty = Ptr->getType(); + Value *SPtr = Ptr->stripPointerCasts(); + bool cacheable = isa(Size); + assert(dereference && "Must dereference pointer when calling this function"); + + if (cacheable) { + // cache is only possible if size is a constant + auto itr = CheckedPtrMap.find(Ptr); + if (itr != CheckedPtrMap.end()) { + // finding related instructions + // worst case, cast(ptr) -> check_ptr -> cast(ptr) + Instruction *I1 = itr->second, *I2 = nullptr, *I3 = nullptr; + CallBase *CB = nullptr; + if (isa(I1)) { + I2 = dyn_cast(I1->getOperand(0)); + CB = dyn_cast(I2); + I3 = dyn_cast(I2->getOperand(0)); + } else { + CB = dyn_cast(I1); + I2 = dyn_cast(I1->getOperand(0)); + } + + // update size if needed + assert(CB && "Checked pointer must be a CallBase"); + auto OldSize = dyn_cast(CB->getArgOperand(2)); + auto NewSize = dyn_cast(Size); + assert(OldSize && NewSize && "Size must be a constant"); + if (NewSize->getZExtValue() > OldSize->getZExtValue()) { + // update size + CB->setArgOperand(2, Size); + } + + // cached check pointer must dominate the new use + auto *TBB = IRB.GetInsertBlock(); + auto *SBB = itr->second->getParent(); + if (DT.dominates(SBB, TBB)) { + // The check is already in a dominating block, no need to move it. + return itr->second; + } + + // not dominating, move the checks to a dominating basic block + Instruction *Pos = nullptr; + if (isa(Ptr) || isa(Ptr)) { + Pos = F->getEntryBlock().getTerminator(); + } else if (Instruction *I = dyn_cast(Ptr)) { + // move to after the source of Ptr + Pos = I->getNextNode(); + while (isa(Pos) || isa(Pos)) { + Pos = Pos->getNextNode(); + } + // handle load shadow - skip the shadow if it exists + if (CB->getArgOperand(1) == Pos) { + Pos = Pos->getNextNode(); + } + } else { + errs() << "Unexpected pointer type for checkPointer: " << *Ptr << "\n" + << "\t" << *SPtr << "\n"; + } + if (Pos) { + I1->moveBefore(Pos); + if (I2) I2->moveBefore(I1); + if (I3) I3->moveBefore(I2); + return itr->second; + } else { + cacheable = false; // do not cache if we need to move the instruction + // fall through to insert the check pointer + } + } + } + + if (GetElementPtrInst *GEP = dyn_cast(SPtr)) { + // If this is a GEP, we need to check the base pointer. + SPtr = GEP->getPointerOperand(); + } + + if (!isa(SPtr)) { + Value *Addr = Ptr; + if (Ty != UC.VoidPtrTy) { + Addr = IRB.CreateBitCast(Ptr, UC.VoidPtrTy); + UC.markNosanitize(Addr); + } + + // Get shadow for the pointer from TLS (for arguments) or shadow memory + Value* Shadow = getShadow(Ptr); + + Value *ExtSize = IRB.CreateZExtOrTrunc(Size, UC.Int64Ty); + if (ExtSize != Size) { + UC.markNosanitize(ExtSize); + } + ConstantInt *Deref = ConstantInt::get(UC.Int1Ty, dereference); + + CallInst *NewAddr = IRB.CreateCall( + UC.UCCheckPointerFn, {Addr, Shadow, ExtSize, Deref}); + UC.markNosanitize(NewAddr); + + Value *Checked = NewAddr; + if (Ty != NewAddr->getType()) { + Checked = IRB.CreateBitCast(NewAddr, Ty); + UC.markNosanitize(Checked); + } + + if (cacheable) { + // only cache if size is a constant + CheckedPtrMap[Ptr] = cast(Checked); + } + + return Checked; + } else { + // AllocaInst doesn't need checking + return Ptr; + } +} + +void UCSanVisitor::visitLoadInst(LoadInst &LI) { + auto &DL = LI.getModule()->getDataLayout(); + Type *Ty = LI.getType(); + uint64_t StoreSize = DL.getTypeStoreSize(Ty); + if (StoreSize == 0) return; + + Value *Ptr = LI.getPointerOperand(); + ConstantInt *Size = ConstantInt::get(UF.UC.Int64Ty, StoreSize); + + // Check and replace pointer + IRBuilder<> IRB(&LI); + Ptr = UF.checkPointer(Ptr, Size, true, IRB); + LI.setOperand(0, Ptr); + + Value *Shadow = UF.loadShadow(Ptr, StoreSize, LI.getAlign(), Ty, &LI); + if (!UF.UC.isZeroShadow(Shadow)) + UF.NonZeroChecks.push_back(Shadow); + + UF.setShadow(&LI, Shadow); + + // Mark as checked for TaintPass + LI.setMetadata("ucsan.checked", + MDNode::get(*UF.UC.Ctx, None)); +} + +void UCSanVisitor::visitStoreInst(StoreInst &SI) { + if (SI.getMetadata("nosanitize")) return; + + auto &DL = SI.getModule()->getDataLayout(); + uint64_t StoreSize = DL.getTypeStoreSize(SI.getValueOperand()->getType()); + if (StoreSize == 0) return; + + Value *Ptr = SI.getPointerOperand(); + ConstantInt *Size = ConstantInt::get(UF.UC.Int64Ty, StoreSize); + + // Check and replace pointer + IRBuilder<> IRB(&SI); + Ptr = UF.checkPointer(Ptr, Size, true, IRB); + SI.setOperand(SI.getPointerOperandIndex(), Ptr); + + Value *Val = SI.getValueOperand(); + Type *Ty = Val->getType(); + Value *Shadow = UF.getShadow(Val); + UF.storeShadow(Ptr, StoreSize, SI.getAlign(), Shadow, Ty, &SI); + + // Mark as checked + SI.setMetadata("ucsan.checked", + MDNode::get(*UF.UC.Ctx, None)); +} + +void UCSanVisitor::visitMemCpyInst(MemCpyInst &I) { + IRBuilder<> IRB(&I); + Value *Length = IRB.CreateZExtOrTrunc(I.getLength(), UF.UC.Int64Ty); + if (Length != I.getLength()) { + UF.UC.markNosanitize(Length); + } + + // Check source and destination pointers + Value *src = UF.checkPointer(I.getRawSource(), Length, true, IRB); + Value *dest = UF.checkPointer(I.getRawDest(), Length, true, IRB); + + I.setSource(src); + I.setDest(dest); + + // create a memcpy call to copy the shadow + Value *ShadowLength = IRB.CreateMul( + Length, + ConstantInt::get(UF.UC.Int64Ty, UCSan::ShadowWidthBytes)); + UF.UC.markNosanitize(ShadowLength); + auto MemCpyInst = llvm::Intrinsic::getDeclaration(I.getModule(), + llvm::Intrinsic::memcpy, + {UF.UC.PrimitiveShadowPtrTy, UF.UC.PrimitiveShadowPtrTy, UF.UC.Int64Ty}); + Value *CI = IRB.CreateCall(MemCpyInst, + {UF.UC.getShadowAddress(dest, IRB), + UF.UC.getShadowAddress(src, IRB), + ShadowLength, + I.getVolatileCst()}); + UF.UC.markNosanitize(CI); + + I.setMetadata("ucsan.checked", MDNode::get(*UF.UC.Ctx, None)); +} + +void UCSanVisitor::visitMemSetInst(MemSetInst &I) { + IRBuilder<> IRB(&I); + Value *Length = IRB.CreateZExtOrTrunc(I.getLength(), UF.UC.Int64Ty); + if (Length != I.getLength()) { + UF.UC.markNosanitize(Length); + } + + // Check destination pointer + Value *dest = UF.checkPointer(I.getRawDest(), Length, true, IRB); + + I.setDest(dest); + + // update shadow + Value *ValShadow = UF.getShadow(I.getValue()); + Value *CI = IRB.CreateCall(UF.UC.UCSetLabelFn, {ValShadow, dest, Length}); + UF.UC.markNosanitize(CI); + + I.setMetadata("ucsan.checked", MDNode::get(*UF.UC.Ctx, None)); +} + +void UCSanVisitor::visitMemMoveInst(MemMoveInst &I) { + IRBuilder<> IRB(&I); + Value *Length = IRB.CreateZExtOrTrunc(I.getLength(), UF.UC.Int64Ty); + if (Length != I.getLength()) { + UF.UC.markNosanitize(Length); + } + + // Check source and destination pointers + Value *src = UF.checkPointer(I.getRawSource(), Length, true, IRB); + Value *dest = UF.checkPointer(I.getRawDest(), Length, true, IRB); + + I.setDest(dest); + I.setSource(src); + + // memmove shadow + Value *DestShadowAddr = IRB.CreateBitCast( + UF.UC.getShadowAddress(dest, IRB), UF.UC.VoidPtrTy); + UF.UC.markNosanitize(DestShadowAddr); + Value *SrcShadowAddr = IRB.CreateBitCast( + UF.UC.getShadowAddress(src, IRB), UF.UC.VoidPtrTy); + UF.UC.markNosanitize(SrcShadowAddr); + Value *ShadowLength = IRB.CreateMul( + Length, + ConstantInt::get(UF.UC.Int64Ty, UCSan::ShadowWidthBytes)); + UF.UC.markNosanitize(ShadowLength); + auto MemMoveDecl = llvm::Intrinsic::getDeclaration(I.getModule(), + llvm::Intrinsic::memmove, + {UF.UC.PrimitiveShadowPtrTy, UF.UC.PrimitiveShadowPtrTy, UF.UC.Int64Ty}); + auto *MTI = cast( + IRB.CreateCall(MemMoveDecl, + {DestShadowAddr, SrcShadowAddr, ShadowLength, I.getVolatileCst()})); + MTI->setDestAlignment(Align(UF.UC.ShadowWidthBytes)); + MTI->setSourceAlignment(Align(UF.UC.ShadowWidthBytes)); + UF.UC.markNosanitize(MTI); + + I.setMetadata("ucsan.checked", MDNode::get(*UF.UC.Ctx, None)); +} + +void UCSanVisitor::visitGetElementPtrInst(GetElementPtrInst &GEPI) { + // use the type of the pointer operand to estimate object size + Value *Ptr = GEPI.getPointerOperand(); + if (UF.CheckedPtrSet.count(Ptr) == 0 && + !isa(Ptr->stripPointerCasts())) { + IRBuilder<> IRB(&GEPI); + const DataLayout &DL = getDataLayout(); + Value *Size = ConstantInt::get(UF.UC.Int64Ty, + DL.getTypeAllocSize(GEPI.getSourceElementType())); + Value *Addr = IRB.CreateBitCast(Ptr, UF.UC.VoidPtrTy); + UF.UC.markNosanitize(Addr); + Value *Checked = IRB.CreateCall(UF.UC.UCCheckPointerFn, + { Addr, UF.getShadow(Ptr), Size, ConstantInt::get(UF.UC.Int1Ty, false) }); + UF.UC.markNosanitize(Checked); + UF.CheckedPtrSet.insert(Ptr); + } + // Propagate shadow through GEP + Value *Shadow = UF.getShadow(Ptr); + UF.setShadow(&GEPI, Shadow); +} + +void UCSanVisitor::visitInlineAsm(InlineAsm *IA, CallBase &CB) { + IRBuilder<> IRB(&CB); + auto DL = CB.getModule()->getDataLayout(); + + // first for each argument, use check pointer to get the real pointer + for (unsigned I = 0; I < CB.arg_size(); ++I) { + Value* Arg = CB.getArgOperand(I); + Type* ArgTy = Arg->getType(); + if (ArgTy->isPointerTy()) { + // if the arg is a compile time constant, we don't need to check + if (isa(Arg)) continue; + // alloca doesn't need checking + if (AllocaInst *AI = dyn_cast(Arg->stripPointerCasts())) { + continue; + } + // get size of pointed-to type, if available + unsigned ObjSize = 0; + if (ArgTy->getPointerElementType()->isSized()) { + ObjSize = DL.getTypeAllocSize(ArgTy->getPointerElementType()); + } + + Value *Size = ConstantInt::get(UF.UC.Int64Ty, ObjSize); + Value *Ptr = UF.checkPointer(Arg, Size, true, IRB); // dereference pointer + CB.setArgOperand(I, Ptr); + } + } + + // Next, handle specific inline assembly patterns + // FIXME: inline asm + auto AsmStr = IA->getAsmString(); + auto Constraints = IA->getConstraintString(); + + if (AsmStr == " btq $2,$1\x0A\x09/* output condition code c*/\x0A" && + Constraints == "={@ccc},*m,Ir,~{memory},~{dirflag},~{fpsr},~{flags}") { + // handle bt instruction + Value *BitBase = CB.getArgOperand(0); + Value *BitOffset = CB.getArgOperand(1); + Value *Load = IRB.CreateLoad(BitBase->getType()->getPointerElementType(), BitBase); + UF.UC.markNosanitize(Load); + Value *Shift = IRB.CreateShl(Load, BitOffset); + UF.UC.markNosanitize(Shift); + Value *And = IRB.CreateAnd(Shift, 1); + UF.UC.markNosanitize(And); + Value *Result = IRB.CreateTrunc(And, Type::getInt8Ty(*UF.UC.Ctx)); + UF.UC.markNosanitize(Result); + + CB.replaceAllUsesWith(Result); + CB.eraseFromParent(); + } else if (AsmStr == ".byte 0x0f, 0x0b" && + Constraints == "~{dirflag},~{fpsr},~{flags}") { + // handle ud2 instruction + Value *Result = IRB.CreateCall(UF.UC.ExitFn, + {ConstantInt::get(UF.UC.Int32Ty, 180)}); + UF.UC.markNosanitize(Result); + CB.replaceAllUsesWith(Result); + CB.eraseFromParent(); + } else if (AsmStr == "movq ${1:P}, $0" && + Constraints == "=r,im,~{dirflag},~{fpsr},~{flags}") { + Type *PT = PointerType::getUnqual(CB.getType()); + Value *Base = IRB.CreateBitCast(CB.getArgOperand(0), PT); + UF.UC.markNosanitize(Base); + Value *Result = IRB.CreateLoad(PT, Base); + UF.UC.markNosanitize(Result); + CB.replaceAllUsesWith(Result); + CB.eraseFromParent(); + } else if (AsmStr.find("__get_user_${") != StringRef::npos) { + // handle __get_user_ inline assembly + // get the number of bytes to read + ConstantInt *SizeArg = dyn_cast(CB.getArgOperand(1)); + if (!SizeArg) { + errs() << "Unsupported __get_user argument: " << CB << "\n"; + return; + } + unsigned Size = SizeArg->getZExtValue(); + if (Size != 1 && Size != 2 && Size != 4 && Size != 8) { + errs() << "Unsupported size for __get_user: " << AsmStr << "\n"; + return; + } + // check uses before replacing + for (auto *U : CB.users()) { + if (auto *EI = dyn_cast(U)) { + if (EI->getNumIndices() != 1) { + errs() << "Unhandled extract of __get_user:" << *U << "\n"; + return; + } + } else { + errs() << "Unhandled use of __get_user:" << *U << "\n"; + return; + } + } + // replace with a load + for (auto *U : CB.users()) { + auto *EI = cast(U); + auto Idx = EI->getIndices()[0]; + switch (Idx) { + case 0: // return value + { + // replace with a nullptr + auto *PTy = dyn_cast(EI->getType()); + assert(PTy && "Expected pointer type for __get_user return value 1"); + EI->replaceAllUsesWith(ConstantPointerNull::get(PTy)); + break; + } + case 1: // loaded value + { + LoadInst *LI = IRB.CreateLoad(EI->getType(), CB.getArgOperand(0)); + UF.UC.markNosanitize(LI); + Value *Shadow = UF.loadShadow(CB.getArgOperand(0), Size, Align(1), EI->getType(), LI); + UF.setShadow(LI, Shadow); + EI->replaceAllUsesWith(LI); + break; + } + case 2: // rsp + { + // use the original rsp value + EI->replaceAllUsesWith(CB.getArgOperand(2)); + break; + } + default: + errs() << "Unhandled index for __get_user: " << Idx << "\n"; + } + // set as skipped + UF.SkipInsts.insert(EI); + // add for removal + UF.RemovalInsts.push_back(EI); + } + CB.eraseFromParent(); + } + + return; +} + +void UCSanVisitor::visitIndirectCallBase(Value *FPtr, CallBase &CB) { + Value *Shadow = UF.getShadow(FPtr); + Type *RT = CB.getFunctionType()->getReturnType(); + const DataLayout &DL = getDataLayout(); + + // inline the under-constrained handling procedure + // get the current basic block and its ID + auto *curBB = CB.getParent(); + auto *BBID = curBB->getTerminator()->getMetadata(BBIDName); + PHINode* RetPhiNode = nullptr; + + // check if the indirect called function is a valid one + IRBuilder<> IRB(&CB); + Instruction *TB, *EB; + PointerType *FPtrTy = cast(FPtr->getType()); + // first, we check if the function pointer is null + Value *Cond1 = IRB.CreateICmpNE(FPtr, ConstantPointerNull::get(FPtrTy)); + UF.UC.markNosanitize(Cond1); + // second, we check if the function ptr is symbolic + Value *Cond2 = IRB.CreateICmpEQ(Shadow, UF.UC.ZeroPrimitiveShadow); + UF.UC.markNosanitize(Cond2); + // Cond1 && Cond2 + Value *And = IRB.CreateAnd(Cond1, Cond2); + UF.UC.markNosanitize(And); + // if not null and not symbolic, we can call it directly + SplitBlockAndInsertIfThenElse(And, &CB, &TB, &EB); + // remove bbid from then else blocks, and reannotate current block + if (BBID) { + TB->getParent()->getTerminator()->setMetadata(BBIDName, nullptr); + EB->getParent()->getTerminator()->setMetadata(BBIDName, nullptr); + curBB->getTerminator()->setMetadata(BBIDName, BBID); + } + Value *retTB = nullptr, *retEB = nullptr; + if (!RT->isVoidTy()) { + RetPhiNode = IRB.CreatePHI(RT, 2); + UF.UC.markNosanitize(RetPhiNode); + } + auto *FT = CB.getFunctionType(); + unsigned ArgOffset = 0; + { // then block - *valid*: call the underlying function + IRBuilder<> IRB_TB(TB); + std::vector Args; + for (unsigned I = 0, N = FT->getNumParams(); I != N; ++I) { + Value *Arg = CB.getArgOperand(I); + unsigned Size = DL.getTypeAllocSize(UF.UC.getShadowTy(Arg)); + // Stop storing if arguments' size overflows. Inside a function, arguments + // after overflow have zero shadow values. + if (ArgOffset + Size > ArgTLSSize) + break; + StoreInst *SI = IRB_TB.CreateAlignedStore( + UF.getShadow(CB.getArgOperand(I)), + UF.getArgTLS(FT->getParamType(I), ArgOffset, IRB_TB), + ShadowTLSAlignment); + UF.UC.markNosanitize(SI); + ArgOffset += alignTo(Size, ShadowTLSAlignment); + Args.push_back(Arg); + } + retTB = IRB_TB.CreateCall( + CB.getFunctionType(), + FPtr, + Args, ""); + if (RetPhiNode) RetPhiNode->addIncoming(retTB, IRB_TB.GetInsertBlock()); + } + { // else block + IRBuilder<> IRB_EB(EB); + // resign shadow for args + for (unsigned I = 0, N = FT->getNumParams(); I != N; ++I) { + Value *Arg = CB.getArgOperand(I); + unsigned Size = DL.getTypeAllocSize(UF.UC.getShadowTy(Arg)); + // Stop storing if arguments' size overflows. Inside a function, arguments + // after overflow have zero shadow values. + if (ArgOffset + Size > ArgTLSSize) + break; + if (getenv("KO_RESIGN_PTRARGS") && Arg->getType()->isPointerTy()) { + // only resign ptr args + std::vector Args; + ConstantInt *CI; + if (Arg->getType()->getPointerElementType()->isSized()) { + CI = ConstantInt::get(UF.UC.Int64Ty, + DL.getTypeSizeInBits(Arg->getType()->getPointerElementType()) / 8); + } else { + CI = ConstantInt::get(UF.UC.Int64Ty, 0); + } + auto BCI = IRB_EB.CreateBitCast(Arg, UF.UC.PrimitiveShadowPtrTy); // FIXME: cast to i32* (defined as void *) + auto ArgTLS = UF.getArgTLS(Arg->getType(), ArgOffset, IRB_EB); + Args.push_back(BCI); + Args.push_back(ArgTLS); + Args.push_back(CI); + Args.push_back(ConstantPointerNull::get(UF.UC.VoidPtrTy)); + StoreInst *SI = IRB_EB.CreateAlignedStore(UF.getShadow(Arg), ArgTLS, ShadowTLSAlignment); + UF.UC.markNosanitize(SI); + CallInst *Call = IRB_EB.CreateCall(UF.UC.UCResignShadowFn, Args, ""); + UF.UC.markNosanitize(Call); + } + ArgOffset += alignTo(Size, ShadowTLSAlignment); + } + // wrap the returned value + if (!RT->isVoidTy()) { + std::vector Args; + Type *SRT = UF.UC.getShadowTy(RT); + ConstantInt *Size = ConstantInt::get(UF.UC.Int64Ty, DL.getTypeSizeInBits(SRT)); + ConstantInt *isPtr = ConstantInt::get(UF.UC.Int1Ty, RT->isPointerTy()); + Args.push_back(Size); + Args.push_back(UF.getRetvalTLS(RT, IRB_EB)); + Args.push_back(isPtr); + Args.push_back(ConstantPointerNull::get(UF.UC.VoidPtrTy)); + Value *Ret = IRB_EB.CreateCall(UF.UC.UCWrapRetvalFn, Args, ""); + UF.UC.markNosanitize(Ret); + if (!RT->isPointerTy()) { // if not a pointer return + Type *PRT = RT->getPointerTo(); + Ret = IRB_EB.CreatePointerCast(Ret, PRT); + UF.UC.markNosanitize(Ret); + Ret = IRB_EB.CreateLoad(PRT, Ret); + UF.UC.markNosanitize(Ret); + } else { + Ret = IRB_EB.CreatePointerCast(Ret, RT); + UF.UC.markNosanitize(Ret); + } + retEB = Ret; + if (RetPhiNode) RetPhiNode->addIncoming(retEB, IRB_EB.GetInsertBlock()); + } + } + + if (RetPhiNode) { + UF.ValShadowMap[RetPhiNode] = UF.getShadow(&CB); + CB.replaceAllUsesWith(RetPhiNode); + } + CB.eraseFromParent(); + +} + +bool UCSanVisitor::visitWrappedCallBase(Function *F, CallBase &CB) { + IRBuilder<> IRB(&CB); + Value *Shadow = nullptr; + const DataLayout &DL = getDataLayout(); + FunctionType *FT = F->getFunctionType(); + switch (UF.UC.getWrapperKind(F)) { + case UCSan::WK_None: + // No wrapper needed, fall through to default behavior + llvm_unreachable("WK_None should not be handled here"); + return false; + case UCSan::WK_AutoCustom: + // invoke the custom function + { + int n = CB.arg_size(), I = 0; + auto FT = CB.getFunctionType(); + unsigned ArgOffset = 0; + + for (auto arg = CB.arg_begin(); n != 0; ++arg, --n, I++) { + unsigned Size = + DL.getTypeAllocSize(UF.UC.getShadowTy(FT->getParamType(I))); + // Stop storing if arguments' size overflows. Inside a function, + // arguments after overflow have zero shadow values. + if (ArgOffset + Size > ArgTLSSize) + report_fatal_error("Argument size overflow in custom function"); + StoreInst *SI = IRB.CreateAlignedStore( + UF.getShadow(CB.getArgOperand(I)), + UF.getArgTLS(FT->getParamType(I), ArgOffset, IRB), + ShadowTLSAlignment); + UF.UC.markNosanitize(SI); + ArgOffset += alignTo(Size, ShadowTLSAlignment); + } + + CB.setCalledFunction(UF.UC.getCustomFunction(F)); + if (!FT->getReturnType()->isVoidTy()) { + IRB.SetInsertPoint(CB.getNextNode()); + LoadInst *LI = IRB.CreateAlignedLoad(UF.UC.getShadowTy(&CB), + UF.getRetvalTLS(CB.getType(), IRB), + ShadowTLSAlignment, "_autoret"); + UF.UC.markNosanitize(LI); + Shadow = LI; + UF.setShadow(&CB, Shadow); + } + } + return true; + + case UCSan::WK_Custom: + { + // Call the __dfsw_ wrapper with shadow arguments + CallInst *CI = dyn_cast(&CB); + if (!CI) + return false; + + TransformedFunction CustomFn = UF.UC.getCustomFunctionType(FT); + std::string CustomFName = "__dfsw_"; + CustomFName += F->getName(); + FunctionCallee CustomF = + UF.UC.Mod->getOrInsertFunction(CustomFName, CustomFn.TransformedType); + if (Function *CustomFnPtr = dyn_cast(CustomF.getCallee())) { + CustomFnPtr->copyAttributesFrom(F); + + // Custom functions returning non-void will write to the return label. + if (!FT->getReturnType()->isVoidTy()) { + CustomFnPtr->removeFnAttrs(UF.UC.ReadOnlyNoneAttrs); + } + } + + std::vector Args; + + // Adds non-variable arguments. + auto *I = CB.arg_begin(); + for (unsigned N = FT->getNumParams(); N != 0; ++I, --N) { + Type *T = (*I)->getType(); + if (isa(T)) { + // Check pointer arguments before passing to custom function + auto DL = getDataLayout(); + Value *sizeArg = + ConstantInt::get(UF.UC.Int64Ty, + DL.getTypeAllocSize(T->getPointerElementType())); + Value *rptr = UF.checkPointer(*I, sizeArg, true, IRB); + Args.push_back(rptr); + } else { + Args.push_back(*I); + } + } + + // Then push shadow labels for each argument + I = CB.arg_begin(); + const unsigned ShadowArgStart = Args.size(); + for (unsigned N = FT->getNumParams(); N != 0; ++I, --N) { + Args.push_back(UF.getShadow(*I)); + } + + // For vararg functions, push shadow for varargs + if (FT->isVarArg()) { + auto *LabelVATy = ArrayType::get(UF.UC.PrimitiveShadowTy, + CB.arg_size() - FT->getNumParams()); + auto *LabelVAAlloca = new AllocaInst( + LabelVATy, getDataLayout().getAllocaAddrSpace(), + "labelva", &UF.F->getEntryBlock().front()); + + for (unsigned N = 0; I != CB.arg_end(); ++I, ++N) { + auto *LabelVAPtr = IRB.CreateStructGEP(LabelVATy, LabelVAAlloca, N); + UF.UC.markNosanitize(LabelVAPtr); + auto *SI = IRB.CreateStore(UF.getShadow(*I), LabelVAPtr); + UF.UC.markNosanitize(SI); + } + + auto *VAA = IRB.CreateStructGEP(LabelVATy, LabelVAAlloca, 0); + UF.UC.markNosanitize(VAA); + Args.push_back(VAA); + } + + // Add pointer to return label if function returns non-void + Type *RetTy = FT->getReturnType(); + if (!RetTy->isVoidTy()) { + if (!UF.LabelReturnAlloca) { + UF.LabelReturnAlloca = + new AllocaInst(UF.UC.getShadowTy(RetTy), + getDataLayout().getAllocaAddrSpace(), + "labelreturn", &UF.F->getEntryBlock().front()); + } + Args.push_back(UF.LabelReturnAlloca); + } + + // Add any remaining vararg arguments + append_range(Args, drop_begin(CB.args(), FT->getNumParams())); + + CallInst *CustomCI = IRB.CreateCall(CustomF, Args); + CustomCI->setCallingConv(CI->getCallingConv()); + CustomCI->setAttributes(TransformFunctionAttributes( + CustomFn, *UF.UC.Ctx, CI->getAttributes())); + UF.UC.markNosanitize(CustomCI); + + // Update the parameter attributes of the custom call instruction to + // zero extend the shadow parameters. This is required for targets + // which consider ShadowTy an illegal type. + for (unsigned N = 0; N < FT->getNumParams(); N++) { + const unsigned ArgNo = ShadowArgStart + N; + if (CustomCI->getArgOperand(ArgNo)->getType() == + UF.UC.PrimitiveShadowTy) { + CustomCI->addParamAttr(ArgNo, Attribute::ZExt); + } + } + + // Load the return value shadow + if (!RetTy->isVoidTy()) { + LoadInst *LabelLoad = + IRB.CreateLoad(UF.UC.getShadowTy(RetTy), UF.LabelReturnAlloca); + UF.UC.markNosanitize(LabelLoad); + UF.setShadow(CustomCI, LabelLoad); + } + + CI->replaceAllUsesWith(CustomCI); + CI->eraseFromParent(); + return true; + } + } + + return false; +} + +void UCSanVisitor::visitCallBase(CallBase &CB) { + Function *F = CB.getCalledFunction(); + PHINode* RetPhiNode = nullptr; + + if (auto *IA = dyn_cast(CB.getCalledOperand())) { + // handle inline assembly calls + visitInlineAsm(IA, CB); + return; + } + + if (!F) { + // indirect call + visitIndirectCallBase(CB.getCalledOperand(), CB); + return; + } + + // intrinsics are handled elsewhere + if (F->isIntrinsic()) { + return; + } + + DenseMap::iterator UnwrappedFnIt = + UF.UC.UnwrappedFnMap.find(F); + if (UnwrappedFnIt != UF.UC.UnwrappedFnMap.end()) { + if (visitWrappedCallBase(UnwrappedFnIt->second, CB)) + return; + } + + IRBuilder<> IRB(&CB); + FunctionType *FT = CB.getFunctionType(); + const DataLayout &DL = getDataLayout(); + + // Stores argument shadows. + if (F && F->hasName() && !F->getName().startswith("__dfsan") && + !F->getName().startswith("__taint")) { + unsigned ArgOffset = 0; + for (unsigned I = 0, N = FT->getNumParams(); I != N; ++I) { + unsigned Size = + DL.getTypeAllocSize(UF.UC.getShadowTy(FT->getParamType(I))); + // Stop storing if arguments' size overflows. Inside a function, arguments + // after overflow have zero shadow values. + if (ArgOffset + Size > ArgTLSSize) + break; + StoreInst *SI = IRB.CreateAlignedStore( + UF.getShadow(CB.getArgOperand(I)), + UF.getArgTLS(FT->getParamType(I), ArgOffset, IRB), + ShadowTLSAlignment); + UF.UC.markNosanitize(SI); + ArgOffset += alignTo(Size, ShadowTLSAlignment); + } + } + + Instruction *Next = nullptr; + if (!CB.getType()->isVoidTy()) { + if (InvokeInst *II = dyn_cast(&CB)) { + if (II->getNormalDest()->getSinglePredecessor()) { + Next = &II->getNormalDest()->front(); + } else { + BasicBlock *NewBB = + SplitEdge(II->getParent(), II->getNormalDest(), &UF.DT); + Next = &NewBB->front(); + } + } else { + assert(CB.getIterator() != CB.getParent()->end()); + Next = CB.getNextNode(); + } + + // Don't emit the epilogue for musttail call returns. + if (isa(CB) && cast(CB).isMustTailCall()) + return; + + IRBuilder<> NextIRB(Next); + unsigned Size = DL.getTypeAllocSize(UF.UC.getShadowTy(&CB)); + if (Size > kRetvalTLSSize) { + // Set overflowed return shadow to be zero. + UF.setShadow(&CB, UF.UC.getZeroShadow(&CB)); + } else { + LoadInst *LI = NextIRB.CreateAlignedLoad( + UF.UC.getShadowTy(&CB), UF.getRetvalTLS(CB.getType(), NextIRB), + ShadowTLSAlignment, "_dfsret"); + UF.UC.markNosanitize(LI); + UF.SkipInsts.insert(LI); + UF.setShadow(&CB, LI); + UF.NonZeroChecks.push_back(LI); + } + } +} + +void UCSanVisitor::visitCastInst(CastInst &CI) { + // Propagate shadow through cast + Value *Shadow = UF.getShadow(CI.getOperand(0)); + UF.setShadow(&CI, Shadow); +} + +void UCSanVisitor::visitReturnInst(ReturnInst &RI) { + IRBuilder<> IRB(&RI); + + // Pop stack frame before returning to free stack allocation labels + CallInst *PopCall = IRB.CreateCall(UF.UC.UCPopStackFrameFn, {}); + UF.UC.markNosanitize(PopCall); + + if (RI.getReturnValue()) { + Value *S = UF.getShadow(RI.getReturnValue()); + Type *RT = UF.F->getFunctionType()->getReturnType(); + unsigned Size = getDataLayout().getTypeAllocSize(UF.UC.PrimitiveShadowTy); + if (Size <= kRetvalTLSSize) { + StoreInst *SI = IRB.CreateAlignedStore(S, UF.getRetvalTLS(RT, IRB), ShadowTLSAlignment); + UF.UC.markNosanitize(SI); + } + } +} + +void UCSanVisitor::visitAtomicRMWInst(AtomicRMWInst &I) { + auto &DL = I.getModule()->getDataLayout(); + Value *Ptr = I.getPointerOperand(); + Type *Ty = I.getType(); + unsigned StoreSize = DL.getTypeStoreSize(Ty); + ConstantInt *Size = ConstantInt::get(UF.UC.Int64Ty, StoreSize); + + IRBuilder<> IRB(&I); + Ptr = UF.checkPointer(Ptr, Size, true, IRB); + I.setOperand(0, Ptr); + + // FIXME: AtomicRMWInst should not operate on ptrs + UF.setShadow(&I, UF.UC.ZeroPrimitiveShadow); + + I.setMetadata("ucsan.checked", MDNode::get(*UF.UC.Ctx, None)); +} + +void UCSanVisitor::visitAllocaInst(AllocaInst &I) { + Type *T = I.getAllocatedType(); + bool isArray = I.isArrayAllocation() || T->isArrayTy() || T->isStructTy(); + bool AllLoadsStores = true; + for (User *U : I.users()) { + if (isa(U)) { + continue; + } + if (StoreInst *SI = dyn_cast(U)) { + if (SI->getPointerOperand() == &I) { + continue; + } + } + + AllLoadsStores = false; + break; + } + if (AllLoadsStores) { + IRBuilder<> IRB(&I); + AllocaInst *AI = IRB.CreateAlloca(UF.UC.getShadowTy(T), I.getArraySize(), + I.getName() + ".ucsan"); + UF.UC.markNosanitize(AI); + UF.AllocaShadowMap[&I] = AI; + if (getenv("KO_CHECKER_UBI")) { + // Set shadow to kUninitializedLabel for UBI detection + StoreInst *SI = IRB.CreateStore(UF.UC.UninitPrimitiveShadow, AI); + UF.UC.markNosanitize(SI); + } + } else { + // For complex allocas that aren't arrays/structs, set shadow memory to kUninitializedLabel + if (getenv("KO_CHECKER_UBI") && !isArray) { + IRBuilder<> IRB(I.getNextNode()); + auto DL = I.getModule()->getDataLayout(); + auto allocaSizeInBits = I.getAllocationSizeInBits(DL); + if (allocaSizeInBits.hasValue()) { + int allocaSizeInBytes = (allocaSizeInBits->getFixedValue() + 7) >> 3; + Value* Size = ConstantInt::get(UF.UC.Int64Ty, allocaSizeInBytes); + Value* Ptr = IRB.CreateBitOrPointerCast(&I, UF.UC.VoidPtrTy); + if (Ptr != &I) { UF.UC.markNosanitize(Ptr); } + CallInst *CI = IRB.CreateCall(UF.UC.UCSetLabelFn, {UF.UC.UninitPrimitiveShadow, Ptr, Size}); + UF.UC.markNosanitize(CI); + } + } + } + + // Track bounds for stack allocations (arrays/structs) + if (isArray) { + // Insert after the alloca instruction to get the address + BasicBlock::iterator ip(&I); + IRBuilder<> IRB(I.getParent(), ++ip); + + // Get array size + Value *Size = IRB.CreateZExtOrTrunc(I.getArraySize(), UF.UC.Int64Ty); + if (Size != I.getArraySize()) { + UF.UC.markNosanitize(Size); + } + + // Get element size + const DataLayout &DL = getDataLayout(); + uint64_t es = DL.getTypeAllocSize(I.getAllocatedType()); + ConstantInt *ElemSize = ConstantInt::get(UF.UC.Int64Ty, es); + + // Get address + Value *Address = IRB.CreatePtrToInt(&I, UF.UC.Int64Ty); + UF.UC.markNosanitize(Address); + + // Call runtime to track stack bounds: ucsan_trace_alloca(Size, ElemSize, Address) + // (ucsan_trace_alloca sets shadow to kUninitializedLabel for UBI detection) + CallInst *Bounds = IRB.CreateCall(UF.UC.UCTraceAllocaFn, {Size, ElemSize, Address}); + UF.UC.markNosanitize(Bounds); + UF.setShadow(&I, Bounds); + } else { + UF.setShadow(&I, UF.UC.ZeroPrimitiveShadow); + } +} + +void UCSanVisitor::visitBranchInst(BranchInst &BI) { + // Only check conditional branches + if (BI.isUnconditional()) return; + + // Check if UBI checker is enabled + if (!getenv("KO_CHECKER_UBI")) return; + + // Get shadow of branch condition + Value *Condition = BI.getCondition(); + Value *Shadow = UF.getShadow(Condition); + + // Skip if shadow is statically known to be zero + if (UF.UC.isZeroShadow(Shadow)) return; + + // Insert UBI check before the branch + IRBuilder<> IRB(&BI); + CallInst *CI = IRB.CreateCall(UF.UC.UCCheckUBIFn, {Shadow}); + UF.UC.markNosanitize(CI); +} + +void UCSanVisitor::visitBinaryOperator(BinaryOperator &BO) { + Value *Op1Shadow = UF.getShadow(BO.getOperand(0)); + Value *Op2Shadow = UF.getShadow(BO.getOperand(1)); + + // If both shadows are zero, result is zero + if (UF.UC.isZeroShadow(Op1Shadow) && UF.UC.isZeroShadow(Op2Shadow)) { + UF.setShadow(&BO, UF.UC.getZeroShadow(&BO)); + return; + } + + // Call runtime to combine labels + IRBuilder<> IRB(&BO); + CallInst *CombinedShadow = IRB.CreateCall(UF.UC.UCCombineLabelFn, {Op1Shadow, Op2Shadow}); + UF.UC.markNosanitize(CombinedShadow); + UF.setShadow(&BO, CombinedShadow); +} + +void UCSanVisitor::visitCmpInst(CmpInst &CI) { + Value *Op1 = CI.getOperand(0); + Value *Op2 = CI.getOperand(1); + Value *Op1Shadow = UF.getShadow(Op1); + Value *Op2Shadow = UF.getShadow(Op2); + + // If both shadows are zero, result is zero + if (UF.UC.isZeroShadow(Op1Shadow) && UF.UC.isZeroShadow(Op2Shadow)) { + UF.setShadow(&CI, UF.UC.getZeroShadow(&CI)); + return; + } + + // If comparing with null pointer constant, just use the other operand's shadow + if (isa(Op1)) { + UF.setShadow(&CI, Op2Shadow); + return; + } + if (isa(Op2)) { + UF.setShadow(&CI, Op1Shadow); + return; + } + + // Call runtime to combine labels (comparing pointers is fine) + IRBuilder<> IRB(&CI); + CallInst *CombinedShadow = IRB.CreateCall(UF.UC.UCCombineLabelFn, {Op1Shadow, Op2Shadow}); + UF.UC.markNosanitize(CombinedShadow); + UF.setShadow(&CI, CombinedShadow); +} + +void UCSanVisitor::visitSelectInst(SelectInst &I) { + Value *TrueShadow = UF.getShadow(I.getTrueValue()); + Value *FalseShadow = UF.getShadow(I.getFalseValue()); + + Value *ShadowSel; + if (TrueShadow == FalseShadow) { + ShadowSel = TrueShadow; + } else { + ShadowSel = SelectInst::Create(I.getCondition(), TrueShadow, FalseShadow, "", &I); + } + UF.setShadow(&I, ShadowSel); +} + +void UCSanVisitor::visitPHINode(PHINode &PN) { + PHINode *ShadowPN = + PHINode::Create(UF.UC.PrimitiveShadowTy, PN.getNumIncomingValues(), "", &PN); + + // Give the shadow phi node valid predecessors to fool SplitEdge into working. + Value *UndefShadow = UndefValue::get(UF.UC.PrimitiveShadowTy); + for (PHINode::block_iterator i = PN.block_begin(), e = PN.block_end(); i != e; + ++i) { + ShadowPN->addIncoming(UndefShadow, *i); + } + + UF.PHIFixups.push_back({&PN, ShadowPN}); + UF.setShadow(&PN, ShadowPN); +} + +bool UCSan::initializeModule(Module &M) { + Triple TargetTriple(M.getTargetTriple()); + if (TargetTriple.getOS() != Triple::Linux) + report_fatal_error("unsupported operating system"); + switch (TargetTriple.getArch()) { + case Triple::x86_64: + MapParams = &Linux_X86_64_MemoryMapParams; + break; + default: + report_fatal_error("unsupported architecture"); + } + + Mod = &M; + Ctx = &M.getContext(); + const DataLayout &DL = M.getDataLayout(); + + // Initialize basic types + Int1Ty = IntegerType::getInt1Ty(*Ctx); + Int8Ty = IntegerType::getInt8Ty(*Ctx); + Int16Ty = IntegerType::getInt16Ty(*Ctx); + Int32Ty = IntegerType::getInt32Ty(*Ctx); + Int64Ty = IntegerType::getInt64Ty(*Ctx); + IntptrTy = M.getDataLayout().getIntPtrType(*Ctx); + VoidPtrTy = PointerType::getUnqual(Int8Ty); + + PrimitiveShadowTy = IntegerType::get(*Ctx, ShadowWidthBits); // 16-bit labels + PrimitiveShadowPtrTy = PointerType::getUnqual(PrimitiveShadowTy); // pointer to 16-bit shadow + ZeroPrimitiveShadow = ConstantInt::getSigned(PrimitiveShadowTy, 0); + UninitPrimitiveShadow = ConstantInt::getSigned(PrimitiveShadowTy, -1); + ShadowPtrMul = ConstantInt::getSigned(IntptrTy, ShadowWidthBytes); // 2 for 16-bit + ShadowPtrAndMask = ShadowPtrXorMask = ShadowPtrBase = nullptr; + if (MapParams->AndMask != 0) + ShadowPtrAndMask = ConstantInt::get(IntptrTy, ~MapParams->AndMask); + if (MapParams->XorMask != 0) + ShadowPtrXorMask = ConstantInt::get(IntptrTy, MapParams->XorMask); + if (MapParams->ShadowBase != 0) + ShadowPtrBase = ConstantInt::get(IntptrTy, MapParams->ShadowBase); + + // Initialize runtime functions + initializeRuntimeFunctions(M); + + // Load metadata + if (!loadMetadata()) { + report_fatal_error("Failed to load metadata"); + } + initializeCustomFunctionTypes(); + + // Initialize ABIList from command-line abilist files + if (!ClABIListFiles.empty()) { + std::vector AllABIListFiles(ClABIListFiles.begin(), ClABIListFiles.end()); + ABIList.set( + SpecialCaseList::createOrDie(AllABIListFiles, *vfs::getRealFileSystem())); + } + + // Initialize ReadOnlyNoneAttrs for custom functions + ReadOnlyNoneAttrs.addAttribute(Attribute::ReadOnly) + .addAttribute(Attribute::ReadNone); + + return true; +} + +bool UCSan::runImpl(Module &M) { + initializeModule(M); + bool Changed = false; + + Type *ArgTLSTy = ArrayType::get(Int64Ty, ArgTLSSize / 8); + ArgTLS = Mod->getOrInsertGlobal("__ucsan_arg_tls", ArgTLSTy); + if (GlobalVariable *G = dyn_cast(ArgTLS)) { + Changed |= G->getThreadLocalMode() != GlobalVariable::InitialExecTLSModel; + G->setThreadLocalMode(GlobalVariable::InitialExecTLSModel); + } + + Type *RetvalTLSTy = ArrayType::get(Int64Ty, kRetvalTLSSize / 8); + RetvalTLS = Mod->getOrInsertGlobal("__ucsan_retval_tls", RetvalTLSTy); + if (GlobalVariable *G = dyn_cast(RetvalTLS)) { + Changed |= G->getThreadLocalMode() != GlobalVariable::InitialExecTLSModel; + G->setThreadLocalMode(GlobalVariable::InitialExecTLSModel); + } + + std::vector FnsToInstrument; + std::vector FnsOutOfScope; + + // make sure we have the entry function in metadata + if (Scope.entry.empty()) { + report_fatal_error("No entry function specified in metadata"); + } + + // Filter functions based on scope + for (Function &F : M) { + if (F.isIntrinsic()) continue; + + // Skip runtime functions (basic check) + if (UCRuntimeFunctions.find(&F) != UCRuntimeFunctions.end()) { + continue; + } + + std::string FName = F.getName().str(); + + // Check if function is in scope + bool inScope = false; + if (Scope.entry == FName) { + inScope = true; + } else { + for (const auto &scopeFn : Scope.scope) { + if (scopeFn == FName) { + inScope = true; + break; + } + } + } + + if (inScope) { + FnsToInstrument.push_back(&F); + } else { + if (getWrapperKind(&F) != WK_Custom && + getWrapperKind(&F) != WK_AutoCustom) { + FnsOutOfScope.push_back(&F); + } else { + if (!F.isDeclaration()) F.deleteBody(); + UnwrappedFnMap[&F] = &F; + } + } + + if (Scope.entry != "main" && F.getName() == "main") { + F.setName("__original$main"); + } + } + + // Build dangle wrappers for out-of-scope functions + for (Function *F : FnsOutOfScope) { + if (Function *dangle = buildDangleFunction(F)) { + F->replaceAllUsesWith(dangle); + F->deleteBody(); + } + } + + // Instrument in-scope functions + for (Function *F : FnsToInstrument) { + if (!F || F->isDeclaration()) continue; + + // Add driver wrapper for entry point + if (F->getName() == Scope.entry || + (Scope.entry == "main" && F->getName() == "__original$main")) { + buildDriverWrapperFunction(F); + } + + // Annotate BBs for all functions (including entry) + unsigned int Idx = find(Scope.scope, F->getName()) - Scope.scope.begin() + 1; + unsigned int BBCount = 0; + for (Function::iterator BB = F->begin(); BB != F->end(); BB++, BBCount++) { + auto *BBID = ConstantInt::get(Int32Ty, Idx * 100000 + BBCount); + MDNode *MD = MDNode::get(Mod->getContext(), + {ConstantAsMetadata::get(BBID)}); + BB->getTerminator()->setMetadata(BBIDName, MD); + } + + if (F->getLinkage() == GlobalValue::AvailableExternallyLinkage) + F->setLinkage(GlobalValue::WeakAnyLinkage); + + // Instrument ALL functions (including entry point) + removeUnreachableBlocks(*F); + UCSanFunction UF(*this, F); + + // Insert push_stack_frame call at function entry for stack bounds tracking + BasicBlock &EntryBB = F->getEntryBlock(); + IRBuilder<> EntryIRB(&*(EntryBB.getFirstInsertionPt())); + CallInst *PushCall = EntryIRB.CreateCall(UCPushStackFrameFn, {}); + markNosanitize(PushCall); + + // UCSanVisitor may create new basic blocks, which confuses df_iterator. + // Build a copy of the list before iterating over it. + SmallVector BBList(depth_first(&F->getEntryBlock())); + for (BasicBlock *BB : BBList) { + Instruction *Inst = &BB->front(); + while (true) { + // UCSanVisitor may split the current basic block, changing the current + // instruction's next pointer and moving the next instruction to the + // tail block from which we should continue. + Instruction *Next = Inst->getNextNode(); + // UCSanVisitor may delete Inst, so keep track of whether it was a + // terminator. + bool IsTerminator = Inst->isTerminator(); + if (!UF.SkipInsts.count(Inst)) + UCSanVisitor(UF).visit(Inst); + + if (IsTerminator) break; + Inst = Next; + } + } + + // We will not necessarily be able to compute the shadow for every phi node + // until we have visited every block. Therefore, the code that handles phi + // nodes adds them to the PHIFixups list so that they can be properly + // handled here. + for (auto &P : UF.PHIFixups) { + for (unsigned Val = 0, N = P.Phi->getNumIncomingValues(); Val != N; + ++Val) { + P.ShadowPhi->setIncomingValue( + Val, UF.getShadow(P.Phi->getIncomingValue(Val))); + } + } + + // Removal instructions + for (auto *RI : UF.RemovalInsts) + RI->eraseFromParent(); + } + + // Fix initializer for declared global variables with external linkage + for (GlobalVariable &GV : M.globals()) { + if (GV.isDeclaration() && GV.hasExternalLinkage()) { + GV.setLinkage(GlobalValue::WeakAnyLinkage); + Constant *ZeroInit = Constant::getNullValue(GV.getValueType()); + GV.setInitializer(ZeroInit); + } + } + + return true; +} + +} // anonymous namespace + +namespace { +class UCSanPass : public PassInfoMixin { +public: + UCSanPass() = default; + + PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM) { + if (UCSan().runImpl(M)) { + return PreservedAnalyses::none(); + } + return PreservedAnalyses::all(); + } + + static bool isRequired() { return true; } +}; +} // anonymous namespace + +extern "C" ::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK +llvmGetPassPluginInfo() { + return {LLVM_PLUGIN_API_VERSION, "UCSanPass", "v1.0", + [](PassBuilder &PB) { + PB.registerOptimizerLastEPCallback( + [](ModulePassManager &MPM, OptimizationLevel OL) { + MPM.addPass(UCSanPass()); + }); + PB.registerPipelineParsingCallback( + [](StringRef Name, ModulePassManager &MPM, + ArrayRef) { + if (Name == "ucsan") { + MPM.addPass(UCSanPass()); + return true; + } + return false; + }); + }}; +} From 369f65058bc89d40def4fa0e7927a908e2a536fb Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Sat, 17 Jan 2026 18:35:25 -0800 Subject: [PATCH 006/139] import bridge and updates for importing ucsanrt --- runtime/dfsan/dfsan.cpp | 81 +++++++++++++++++++++++++++++++--- runtime/dfsan/dfsan.h | 2 +- runtime/dfsan/dfsan_custom.cpp | 23 +++++++--- 3 files changed, 94 insertions(+), 12 deletions(-) diff --git a/runtime/dfsan/dfsan.cpp b/runtime/dfsan/dfsan.cpp index ddd3d31f..5eb5ba8c 100644 --- a/runtime/dfsan/dfsan.cpp +++ b/runtime/dfsan/dfsan.cpp @@ -1016,16 +1016,16 @@ dfsan_union(dfsan_label l1, dfsan_label l2, uint16_t op, uint16_t size, } extern "C" SANITIZER_INTERFACE_ATTRIBUTE -dfsan_label dfsan_create_label(off_t offset) { +dfsan_label dfsan_create_label(uint64_t input_id, uint64_t offset, uint32_t size_in_bytes) { dfsan_label label = atomic_fetch_add(&__dfsan_last_label, 1, memory_order_relaxed) + 1; dfsan_check_label(label); internal_memset(&__dfsan_label_info[label], 0, sizeof(dfsan_label_info)); - __dfsan_label_info[label].size = 8; - // label may not equal to offset when using stdin + __dfsan_label_info[label].size = 8 * size_in_bytes; __dfsan_label_info[label].op1.i = offset; + __dfsan_label_info[label].op2.i = input_id; // init a non-zero hash - __dfsan_label_info[label].hash = xxhash(offset, 0, 8); + __dfsan_label_info[label].hash = xxhash(offset, input_id, 8); return label; } @@ -1330,7 +1330,7 @@ static void InitializeTaintFile() { if (tainted.fd != -1 && !tainted.is_stdin) { for (off_t i = 0; i < tainted.size; i++) { - dfsan_label label = dfsan_create_label(i); + dfsan_label label = dfsan_create_label(0, i, 1); dfsan_check_label(label); } } @@ -1708,3 +1708,74 @@ SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_memcmp, dfsan_label) {} SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_distance, uint64_t, uint64_t) {} SANITIZER_WEAK_ATTRIBUTE THREADLOCAL uint32_t __taint_trace_callstack; } // extern "C" + +//===----------------------------------------------------------------------===// +// SymSan Bridge - Strong Implementations +//===----------------------------------------------------------------------===// +// These strong definitions override the weak stubs in ucsan.cpp when linked. +// They enable UCSan to propagate symbolic state to SymSan. + +extern "C" { + +// Create a SymSan label for input bytes +// @param input_id: input source identifier (fd, socket, ucsan object, etc.) +// @param offset: byte offset within the source +// @param size_in_bytes: size of the input in bytes +// Overrides weak stub in ucsan.cpp +SANITIZER_INTERFACE_ATTRIBUTE +dfsan_label __taint_create_label(uint32_t input_id, uint64_t offset, uint32_t size_in_bytes) { + return dfsan_create_label(input_id, offset, size_in_bytes); +} + +// Set SymSan arg TLS entry +// Overrides weak stub in ucsan.cpp +SANITIZER_INTERFACE_ATTRIBUTE +void __taint_set_arg_tls(uint32_t index, dfsan_label label, uint32_t size_in_bits) { + if (index < kArgTlsSize / sizeof(dfsan_label)) { + // Truncate if size_in_bits is not byte-aligned + uint32_t size_in_bytes = (size_in_bits + 7) / 8; + if (size_in_bits < size_in_bytes * 8) { + label = __taint_union(label, CONST_LABEL, Trunc, size_in_bits, 0, 0); + } + __dfsan_arg_tls[index] = label; + } +} + +// Set SymSan retval TLS entry +// Overrides weak stub in ucsan.cpp +SANITIZER_INTERFACE_ATTRIBUTE +void __taint_set_retval_tls(dfsan_label label, uint32_t size_in_bits) { + // Truncate if size_in_bits is not byte-aligned + uint32_t size_in_bytes = (size_in_bits + 7) / 8; + if (size_in_bits < size_in_bytes * 8) { + label = __taint_union(label, CONST_LABEL, Trunc, size_in_bits, 0, 0); + } + __dfsan_retval_tls[0] = label; +} + +// Set SymSan shadow memory for a region +// Overrides weak stub in ucsan.cpp +SANITIZER_INTERFACE_ATTRIBUTE +void __taint_set_label(dfsan_label label, void *addr, uint64_t size) { + dfsan_set_label(label, addr, size); +} + +// Copy SymSan shadow memory from src to dst +// Overrides weak stub in ucsan.cpp +SANITIZER_INTERFACE_ATTRIBUTE +void __taint_copy_shadow(void *dst, void *src, uint64_t size) { + dfsan_label *dst_shadow = shadow_for(dst); + dfsan_label *src_shadow = shadow_for(src); + internal_memcpy(dst_shadow, src_shadow, size * sizeof(dfsan_label)); +} + +// Move SymSan shadow memory from src to dst (handles overlapping regions) +// Overrides weak stub in ucsan.cpp +SANITIZER_INTERFACE_ATTRIBUTE +void __taint_move_shadow(void *dst, void *src, uint64_t size) { + dfsan_label *dst_shadow = shadow_for(dst); + dfsan_label *src_shadow = shadow_for(src); + internal_memmove(dst_shadow, src_shadow, size * sizeof(dfsan_label)); +} + +} // extern "C" \ No newline at end of file diff --git a/runtime/dfsan/dfsan.h b/runtime/dfsan/dfsan.h index 348211be..cdf11f5f 100644 --- a/runtime/dfsan/dfsan.h +++ b/runtime/dfsan/dfsan.h @@ -87,7 +87,7 @@ dfsan_label dfsan_read_label(const void *addr, uptr size); void dfsan_store_label(dfsan_label l1, void *addr, uptr size); dfsan_label dfsan_union(dfsan_label l1, dfsan_label l2, uint16_t op, uint16_t size, uint64_t op1, uint64_t op2); -dfsan_label dfsan_create_label(off_t offset); +dfsan_label dfsan_create_label(uint64_t input_id, uint64_t offset, uint32_t size_in_bytes); dfsan_label dfsan_get_label(const void *addr); dfsan_label_info* dfsan_get_label_info(dfsan_label label); diff --git a/runtime/dfsan/dfsan_custom.cpp b/runtime/dfsan/dfsan_custom.cpp index a03c98a6..c4632805 100644 --- a/runtime/dfsan/dfsan_custom.cpp +++ b/runtime/dfsan/dfsan_custom.cpp @@ -256,7 +256,7 @@ static inline dfsan_label get_str_label(const char *s, dfsan_label s_label) { static inline dfsan_label get_label_for(int fd, off_t offset) { // check if fd is stdin, if so, the label hasn't been pre-allocated if (is_stdin_taint() || (fd ==0 && flags().force_stdin)) - return dfsan_create_label(current_stdin_offset++); + return dfsan_create_label((uint64_t)fd, (uint64_t)(current_stdin_offset++), 1); // if fd is a tainted file, the label should have been pre-allocated else return (offset + CONST_OFFSET); } @@ -883,6 +883,9 @@ __dfsw_strlen(const char *s, dfsan_label s_label, dfsan_label *ret_label) { return ret; } +// When USE_UCSAN_CUSTOM is defined, ucsan_custom.cpp provides these functions +// which handle both UCSan and SymSan shadow memory via the bridge. +#ifndef USE_UCSAN_CUSTOM SANITIZER_INTERFACE_ATTRIBUTE void *__dfsw_memcpy(void *dest, const void *src, size_t n, dfsan_label dest_label, dfsan_label src_label, @@ -928,6 +931,7 @@ void *__dfsw_memset(void *s, int c, size_t n, *ret_label = s_label; return s; } +#endif // USE_UCSAN_CUSTOM SANITIZER_INTERFACE_ATTRIBUTE int __dfsw_tolower(int c, dfsan_label c_label, dfsan_label *ret_label) { @@ -2177,7 +2181,8 @@ SANITIZER_INTERFACE_ATTRIBUTE ssize_t __dfsw_recv( if (offset >= 0) { AOUT("recv: fd = %d, offset = %ld, ret = %ld\n", sockfd, offset, ret); for (ssize_t i = 0; i < ret; i++) { - dfsan_set_label(dfsan_create_label(offset + i), (char *)buf + i, 1); + dfsan_label lbl = dfsan_create_label((uint64_t)sockfd, (uint64_t)(offset + i), 1); + dfsan_set_label(lbl, (char *)buf + i, 1); } taint_update_socket_offset(sockfd, ret); } else { @@ -2209,7 +2214,8 @@ SANITIZER_INTERFACE_ATTRIBUTE ssize_t __dfsw_recvfrom( off_t offset = taint_get_socket(sockfd); if (offset >= 0) { for (ssize_t i = 0; i < ret; i++) { - dfsan_set_label(dfsan_create_label(offset + i), (char *)buf + i, 1); + dfsan_label lbl = dfsan_create_label((uint64_t)sockfd, (uint64_t)(offset + i), 1); + dfsan_set_label(lbl, (char *)buf + i, 1); } taint_update_socket_offset(sockfd, ret); } else { @@ -2239,7 +2245,8 @@ static void taint_handle_msg(int sockfd, struct msghdr *msg, size_t msg_len) { bytes_written < iov->iov_len ? bytes_written : iov->iov_len; if (offset >= 0) { for (size_t j = 0; j < iov_written; ++j) { - dfsan_set_label(dfsan_create_label(offset + j), (char *)iov->iov_base + j, 1); + dfsan_label lbl = dfsan_create_label((uint64_t)sockfd, (uint64_t)(offset + j), 1); + dfsan_set_label(lbl, (char *)iov->iov_base + j, 1); } taint_update_socket_offset(sockfd, iov_written); offset += iov_written; @@ -2722,7 +2729,8 @@ __dfsw_fread(void *ptr, size_t size, size_t nmemb, FILE *stream, fwrite(ptr, size, nmemb, stream); // update taint for (size_t i = 0; i < size * nmemb; i++) { - dfsan_set_label(dfsan_create_label(offset + i), (char *)ptr + i, 1); + dfsan_label lbl = dfsan_create_label((uint64_t)fd, (uint64_t)(offset + i), 1); + dfsan_set_label(lbl, (char *)ptr + i, 1); } return nmemb; // directly return } @@ -2771,7 +2779,8 @@ __dfsw_fread_unlocked( fwrite(ptr, size, nmemb, stream); // update taint for (size_t i = 0; i < size * nmemb; i++) { - dfsan_set_label(dfsan_create_label(offset + i), (char *)ptr + i, 1); + dfsan_label lbl = dfsan_create_label((uint64_t)fd, (uint64_t)(offset + i), 1); + dfsan_set_label(lbl, (char *)ptr + i, 1); } return nmemb; // directly return } @@ -2992,6 +3001,7 @@ static inline void __taint_check_malloc_size(size_t size, dfsan_label size_label } } +#ifndef USE_UCSAN_CUSTOM SANITIZER_INTERFACE_ATTRIBUTE void * __dfsw_realloc(void *ptr, size_t new_size, dfsan_label ptr_label, dfsan_label new_size_label, @@ -3445,6 +3455,7 @@ void __dfsw___libc_free(void *ptr, dfsan_label ptr_label) { free(ptr); } } +#endif // USE_UCSAN_CUSTOM static dfsan_label taint_getc(int fd, off_t offset, int ret) { if (ret != EOF && taint_get_file(fd)) { From 05fb0a7a3aeb6bc8c35755a10788462ac8ff57ad Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Sat, 17 Jan 2026 18:37:21 -0800 Subject: [PATCH 007/139] import ucsan runtime --- runtime/dfsan/CMakeLists.txt | 83 +- runtime/dfsan/ucsan.cpp | 1379 +++++++++++++++++++++++++++++ runtime/dfsan/ucsan.h | 401 +++++++++ runtime/dfsan/ucsan_abilist.txt | 42 + runtime/dfsan/ucsan_custom.cpp | 280 ++++++ runtime/dfsan/ucsan_exit_reason.h | 18 + runtime/dfsan/ucsan_flags.inc | 37 + runtime/dfsan/ucsan_platform.h | 93 ++ 8 files changed, 2328 insertions(+), 5 deletions(-) create mode 100644 runtime/dfsan/ucsan.cpp create mode 100644 runtime/dfsan/ucsan.h create mode 100644 runtime/dfsan/ucsan_abilist.txt create mode 100644 runtime/dfsan/ucsan_custom.cpp create mode 100644 runtime/dfsan/ucsan_exit_reason.h create mode 100644 runtime/dfsan/ucsan_flags.inc create mode 100644 runtime/dfsan/ucsan_platform.h diff --git a/runtime/dfsan/CMakeLists.txt b/runtime/dfsan/CMakeLists.txt index 03eec817..c9182b29 100644 --- a/runtime/dfsan/CMakeLists.txt +++ b/runtime/dfsan/CMakeLists.txt @@ -1,7 +1,7 @@ # include_directories(..) -# Runtime library sources and build flags. -set(DFSAN_RTL_SOURCES +# SymSan sources (symbolic execution, taint tracking) +set(SYMSAN_RTL_SOURCES dfsan.cpp dfsan_custom.cpp dfsan_interceptors.cpp @@ -9,7 +9,17 @@ set(DFSAN_RTL_SOURCES union_util.cpp union_hashtable.cpp) -set(DFSAN_RTL_HEADERS +# UCSan sources (under-constrained execution, pointer/object tracking) +set(UCSAN_RTL_SOURCES + ucsan.cpp + ucsan_custom.cpp) + +# Combined sources (both SymSan and UCSan) +set(DFSAN_RTL_SOURCES + ${SYMSAN_RTL_SOURCES} + ${UCSAN_RTL_SOURCES}) + +set(SYMSAN_RTL_HEADERS dfsan.h dfsan_flags.inc dfsan_platform.h @@ -17,6 +27,19 @@ set(DFSAN_RTL_HEADERS union_util.h union_hashtable.h) +# UCSan headers +set(UCSAN_RTL_HEADERS + ucsan.h + ucsan_platform.h + ucsan_exit_reason.h + ucsan_flags.inc) + +# Combined headers +set(DFSAN_RTL_HEADERS + ${SYMSAN_RTL_HEADERS} + ${UCSAN_RTL_HEADERS}) + +list(APPEND ${SANITIZER_COMMON_CFLAGS} "-O3") set(DFSAN_COMMON_CFLAGS ${SANITIZER_COMMON_CFLAGS}) if(OS_NAME MATCHES "Linux" AND @@ -31,12 +54,46 @@ append_rtti_flag(OFF DFSAN_COMMON_CFLAGS) # Prevent clang from generating libc calls. append_list_if(COMPILER_RT_HAS_FFREESTANDING_FLAG -ffreestanding DFSAN_COMMON_CFLAGS) -# Static runtime library. +# Static runtime libraries. +# We build three variants: +# 1. symsan_rt - standalone SymSan (symbolic execution) +# 2. ucsan_rt - standalone UCSan (under-constrained execution) +# 3. dfsan_rt - combined library (both SymSan and UCSan) + +add_compiler_rt_component(symsan) +add_compiler_rt_component(ucsan) add_compiler_rt_component(dfsan) foreach(arch ${DFSAN_SUPPORTED_ARCH}) set(DFSAN_CFLAGS ${DFSAN_COMMON_CFLAGS}) append_list_if(COMPILER_RT_HAS_FPIE_FLAG -fPIE DFSAN_CFLAGS) + + # Standalone SymSan library + add_compiler_rt_runtime(symsan_rt + STATIC + ARCHS ${arch} + SOURCES ${SYMSAN_RTL_SOURCES} + $ + $ + $ + CFLAGS ${DFSAN_CFLAGS} + PARENT_TARGET symsan) + + # Standalone UCSan library + add_compiler_rt_runtime(ucsan_rt + STATIC + ARCHS ${arch} + SOURCES ${UCSAN_RTL_SOURCES} + $ + $ + $ + CFLAGS ${DFSAN_CFLAGS} + PARENT_TARGET ucsan) + + # Combined library (SymSan + UCSan) + # USE_UCSAN_CUSTOM tells dfsan_custom.cpp to skip definitions + # that are provided by ucsan_custom.cpp (e.g., __dfsw_memcpy) + set(DFSAN_COMBINED_CFLAGS ${DFSAN_CFLAGS} -DUSE_UCSAN_CUSTOM) add_compiler_rt_runtime(dfsan_rt STATIC ARCHS ${arch} @@ -46,8 +103,9 @@ foreach(arch ${DFSAN_SUPPORTED_ARCH}) $ $ ADDITIONAL_HEADERS ${DFSAN_RTL_HEADERS} - CFLAGS ${DFSAN_CFLAGS} + CFLAGS ${DFSAN_COMBINED_CFLAGS} PARENT_TARGET dfsan) + add_sanitizer_rt_symbols(dfsan_rt ARCHS ${arch} EXTRA dfsan.syms.extra) @@ -108,6 +166,21 @@ install(FILES ${dfsan_abilist_filename} install(FILES "libc++_abilist.txt" DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}) +set(ucsan_abilist_filename ${dfsan_abilist_dir}/ucsan_abilist.txt) +add_custom_target(ucsan_abilist ALL + DEPENDS ${ucsan_abilist_filename}) +add_custom_command(OUTPUT ${ucsan_abilist_filename} + VERBATIM + COMMAND + ${CMAKE_COMMAND} -E make_directory ${dfsan_abilist_dir} + COMMAND + cat ${CMAKE_CURRENT_SOURCE_DIR}/ucsan_abilist.txt + > ${ucsan_abilist_filename} + DEPENDS ucsan_abilist.txt) +add_dependencies(dfsan ucsan_abilist) +install(FILES ${ucsan_abilist_filename} + DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}) + set(taint_linker_script_filename ${COMPILER_RT_OUTPUT_DIR}/taint.ld) add_custom_target(taint_linker_script ALL DEPENDS ${taint_linker_script_filename}) diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp new file mode 100644 index 00000000..399ca446 --- /dev/null +++ b/runtime/dfsan/ucsan.cpp @@ -0,0 +1,1379 @@ +//===-- ucsan.cpp - UCSan Runtime Implementation ------------------===// +// +// Under-Constrained Symbolic Sanitizer Runtime +// +// This file implements the UCSan runtime for: +// - Lazy object initialization +// - Pseudo-pointer resolution +// - Pointer shadow tracking +// +// UCSan is designed to work alongside SymSan but with independent +// shadow memory for pointer/object tracking (vs symbolic expressions). +// +//===----------------------------------------------------------------------===// + +#include "ucsan.h" +#include "sanitizer_common/sanitizer_atomic.h" +#include "sanitizer_common/sanitizer_common.h" +#include "sanitizer_common/sanitizer_file.h" +#include "sanitizer_common/sanitizer_flag_parser.h" +#include "sanitizer_common/sanitizer_flags.h" +#include "sanitizer_common/sanitizer_libc.h" +#include "sanitizer_common/sanitizer_posix.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace __sanitizer; + +// Forward declarations for trace callbacks (implemented in solvers) +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void __taint_trace_event_addr(__ucsan::ucsan_label label, uint32_t event_id, uint64_t info, void* addr, uint16_t flags); + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void __taint_trace_global_var(__ucsan::ucsan_label label, uint64_t size, void *gv); + +// Forward declarations for SymSan bridge functions (weak stubs, overridden when linked with SymSan) +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +dfsan_label __taint_create_label(uint32_t object_id, uint64_t offset, uint32_t size_in_bytes); + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void __taint_set_arg_tls(uint32_t index, dfsan_label label, uint32_t size_in_bits); + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void __taint_set_retval_tls(dfsan_label label, uint32_t size_in_bits); + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void __taint_set_label(dfsan_label label, void *addr, uint64_t size); + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void __taint_copy_shadow(void *dst, void *src, uint64_t size); + +//===----------------------------------------------------------------------===// +// Global State +//===----------------------------------------------------------------------===// + +namespace __ucsan { + +// Global input/taint source +ucsan_input ucsan_tainted; + +// Configuration flags +UCSanFlags ucsan_flags_data; + +// Debug flag +bool ucsan_debug = false; + +// Label management +static atomic_uint32_t __ucsan_last_label; +static ucsan_label_info *__ucsan_label_info = nullptr; + +// Object counter +static atomic_uint32_t __ucsan_inited_objects; + +// Stack management for bounds tracking +static ucsan_label __alloca_stack_bottom; +static ucsan_label __alloca_stack_top; +static ucsan_label __saved_alloca_stack_top[UCSAN_MAX_SAVED_STACK_ENTRIES]; +static int __current_saved_stack_index = 0; + +} // namespace __ucsan + +// DSO section markers (linker-provided, must be at global scope with C linkage) +extern "C" { +extern char __dso_handle; +extern char edata; +extern char end; +} + +namespace __ucsan { + +bool in_data_section(void *p) { + return (&__dso_handle <= (char*)p && (char*)p <= &end); +} + +bool in_bss_section(void *p) { + return (&edata <= (char*)p && (char*)p <= &end); +} + +} // namespace __ucsan + +//===----------------------------------------------------------------------===// +// TLS Variables +//===----------------------------------------------------------------------===// + +using __ucsan::ucsan_label; + +extern "C" { + +SANITIZER_INTERFACE_ATTRIBUTE THREADLOCAL ucsan_label + __ucsan_retval_tls[UCSAN_TLS_SIZE / sizeof(ucsan_label)]; + +SANITIZER_INTERFACE_ATTRIBUTE THREADLOCAL ucsan_label + __ucsan_arg_tls[UCSAN_TLS_SIZE / sizeof(ucsan_label)]; + +SANITIZER_INTERFACE_ATTRIBUTE THREADLOCAL uint8_t + __ucsan_wrapped_return_tls[UCSAN_TLS_SIZE]; + +void* __ucsan_null_deref_flag = nullptr; + +} // extern "C" + +//===----------------------------------------------------------------------===// +// UCSan Input Implementation +//===----------------------------------------------------------------------===// + +namespace __ucsan { + +// NOTE: ucsan_input uses C-style initialization to avoid constructor ordering issues +// with preinit_array. + +static void ucsan_init_input_struct() { + internal_memset(ucsan_tainted.filename, 0, sizeof(ucsan_tainted.filename)); + ucsan_tainted.fd = -1; + ucsan_tainted.offset = 0; + ucsan_tainted.offset_label = 0; + ucsan_tainted.label = 0; + ucsan_tainted.size = 0; + ucsan_tainted.is_stdin = 0; + ucsan_tainted.is_utmp = 0; + ucsan_tainted.buf = nullptr; + ucsan_tainted.buf_size = 0; + // Allocate C++ objects with constructors dynamically to avoid ordering issues + if (!ucsan_tainted.objects) { + ucsan_tainted.objects = new ObjectStorage(); + } + if (!ucsan_tainted.obj_map) { + ucsan_tainted.obj_map = new ObjectMap(); + } + if (!ucsan_tainted.const_ptr_counter) { + ucsan_tainted.const_ptr_counter = new std::map(); + } + ucsan_tainted.arg_used.val_dont_use = 0; +} + +static void ucsan_fini_input_struct() { + if (ucsan_tainted.objects) { + delete ucsan_tainted.objects; + ucsan_tainted.objects = nullptr; + } + // obj_map and const_ptr_counter are objects, not pointers - no need to delete +} + +char* ucsan_input::dump() { + uint64_t length = sizeof(uint64_t); + for (auto& object : *objects) { + length += object.data.size() + sizeof(uint64_t) + sizeof(uint32_t); + } + + char *ret = static_cast(malloc(length)); + char *pos = ret; + + // Write object count + uint64_t tmp = objects->size(); + internal_memcpy(pos, &tmp, sizeof(uint64_t)); + pos += sizeof(uint64_t); + + // Write offsets + for (auto& object : *objects) { + uint32_t tmp32 = object.offset; + internal_memcpy(pos, &tmp32, sizeof(uint32_t)); + pos += sizeof(uint32_t); + } + + // Write sizes + for (auto& object : *objects) { + tmp = object.data.size(); + internal_memcpy(pos, &tmp, sizeof(uint64_t)); + pos += sizeof(uint64_t); + } + + // Write data + for (auto& object : *objects) { + tmp = object.data.size(); + internal_memcpy(pos, object.data.data(), tmp); + pos += tmp; + } + + buf_size = length; + return ret; +} + +void ucsan_input::build_obj_map() { + uint32_t object_id = 1; + UCSAN_OUT("build_obj_map: objects->size()=%llu\n", (uint64_t)objects->size()); + + for (; object_id < objects->size(); ++object_id) { + auto& object_meta = objects->at(object_id).origin; + UCSAN_OUT(" obj[%u]: from.obj_id=%llu, from.offset=%llu\n", + object_id, object_meta.obj_id, object_meta.offset); + (*obj_map)[{object_meta.obj_id, object_meta.offset}] = object_id; + } + + atomic_store(&__ucsan_inited_objects, object_id, memory_order_relaxed); + UCSAN_OUT("build_obj_map done: __ucsan_inited_objects=%u, obj_map->size()=%llu\n", + object_id, (uint64_t)obj_map->size()); + + // Debug: dump obj_map contents + UCSAN_OUT("obj_map contents:\n"); + for (auto &entry : *obj_map) { + UCSAN_OUT(" {%llu, %llu} -> %u\n", entry.first.first, entry.first.second, entry.second); + } +} + +//===----------------------------------------------------------------------===// +// Label Management +//===----------------------------------------------------------------------===// + +ucsan_label_info* get_label_info(ucsan_label label) { + return &__ucsan_label_info[label]; +} + +ucsan_label allocate_label() { + return atomic_fetch_add(&__ucsan_last_label, 1, memory_order_relaxed) + 1; +} + +void check_label(ucsan_label label) { + if (label >= __alloca_stack_top) { + Report("FATAL: UCSan: exhausted labels\n"); + Die(); + } +} + +//===----------------------------------------------------------------------===// +// Memory Helpers +//===----------------------------------------------------------------------===// + +void* customized_malloc(uint64_t size) { + if (size > UCSAN_OBJECT_SIZE_LIMIT) { + UCSAN_OUT("Object size too large: %llu\n", size); + exit(exit_reason::REASON_OBJ_OOB); + } + uint64_t gap = Max((uint64_t)UCSAN_SAFE_GAP, UCSAN_ROUNDUPGAP(size)); + uint64_t crafted_size = size + (gap << 1); + char* ret = (char*)malloc(crafted_size) + gap; + return (void*)ret; +} + +static inline bool is_writeable(void *p) { + int fd = open("/dev/zero", O_RDONLY); + if (fd < 0) return false; + bool writeable = read(fd, p, 1) == 1; + close(fd); + return writeable; +} + +//===----------------------------------------------------------------------===// +// Object Lookup +//===----------------------------------------------------------------------===// + +UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr, uint32_t *ret_object_id) { + if (label) { + ucsan_label_info *label_info = get_label_info(label); + uint64_t object_id = 0; + + uint16_t op = label_info->common.op; + if (op == OP_NONE) { + // Byte info - look up by (object_id, offset) + ucsan_byte_info *byte = &label_info->byte; + UCSAN_OUT("lookup_object: label=%u, op=BYTE, obj_id=%u, offset=%lld\n", + label, byte->object_id, byte->offset); + auto find_result = ucsan_tainted.obj_map->find( + {byte->object_id, (uint64_t)byte->offset}); + if (find_result != ucsan_tainted.obj_map->end()) { + object_id = find_result->second; + UCSAN_OUT(" found object_id=%llu\n", object_id); + } + } else if (op == OP_EXTERNAL) { + // External pointer - look up by (parent_obj_id, offset) + // This matches dfsan's {op2.i, op1.i} pattern + ucsan_ptr_info *ptr = &label_info->ptr; + uint64_t parent_obj_id = ptr->obj_label; + uint64_t offset_in_parent = (uint64_t)ptr->pseudo_base; + UCSAN_OUT("lookup_object: label=%u, op=EXTERNAL, parent_obj=%llu, offset=%llu\n", + label, parent_obj_id, offset_in_parent); + UCSAN_OUT(" obj_map size=%llu, searching for {%llu, %llu}\n", + (uint64_t)ucsan_tainted.obj_map->size(), parent_obj_id, offset_in_parent); + auto find_result = ucsan_tainted.obj_map->find({parent_obj_id, offset_in_parent}); + if (find_result != ucsan_tainted.obj_map->end()) { + object_id = find_result->second; + UCSAN_OUT(" found object_id=%llu\n", object_id); + } else { + UCSAN_OUT(" NOT found in obj_map\n"); + } + } else if (op == OP_DUMMY) { + // Dummy label for constant pointer - track with counter + ucsan_ptr_info *ptr = &label_info->ptr; + uint64_t ptr_val = (uint64_t)ptr->pseudo_base; + uint64_t counter = -((*ucsan_tainted.const_ptr_counter)[ptr_val]++); + auto find_result = ucsan_tainted.obj_map->find({ptr_val, counter}); + if (find_result != ucsan_tainted.obj_map->end()) { + object_id = find_result->second; + } + } else { + UCSAN_OUT("lookup_object: label=%u, op=%u (unexpected)\n", label, op); + } + + bool created = false; + if (object_id == 0) { + // Allocate next object ID + // Counter starts at 1, so first allocation gets ID 1 (object 0 is super object) + // fetch_add returns old value, then increments for next allocation + object_id = atomic_fetch_add(&__ucsan_inited_objects, 1, memory_order_relaxed); + created = true; + } + + if (object_id >= ucsan_tainted.objects->size()) { + ucsan_tainted.objects->emplace_back(UCSanObject{ + .offset = 0, + .data = std::vector(0), + .origin = {0, 0} + }); + } + + // Trace lazy init event if enabled + if (created && ucsan_flags().trace_object) { + __taint_trace_event_addr(label, EVENT_LAZY_INIT, object_id, return_addr, 0); + } + + if (ret_object_id) *ret_object_id = object_id; + return ucsan_tainted.objects->at(object_id); + } + + // Should not reach here with label == 0 + static UCSanObject empty_object; + return empty_object; +} + +//===----------------------------------------------------------------------===// +// Super Object Label Creation +//===----------------------------------------------------------------------===// + +object_info create_label_from_super_object(size_t size, bool is_pointer) { + uint64_t offset = atomic_fetch_add(&ucsan_tainted.arg_used, size, memory_order_relaxed); + ucsan_label label = allocate_label(); + + ucsan_label_info *label_info = get_label_info(label); + + if (is_pointer) { + // Create pointer info + // For lookup purposes, we store parent_obj_id in obj_label and offset in _padding + // This matches dfsan's approach where op2.i=parent_obj_id and op1.i=offset + ucsan_ptr_info *ptr = &label_info->ptr; + ptr->op = OP_EXTERNAL; + ptr->status = PTR_UNINITIALIZED; + ptr->obj_label = 0; // parent object ID (0 = super object) + ptr->pseudo_base = (void*)offset; // Repurpose to store offset for lookup + } else { + // Create byte info for super object (object 0) + ucsan_byte_info *byte = &label_info->byte; + byte->op = OP_NONE; + byte->object_id = 0; // super object + byte->offset = (int64_t)offset; + } + + return {label, offset}; +} + +} // namespace __ucsan + +//===----------------------------------------------------------------------===// +// Core UCSan Functions +//===----------------------------------------------------------------------===// + +using namespace __ucsan; + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool dereferencing) { + UCSAN_OUT("%p: label: %d, size: %zu, dereferencing: %d\n", p, label, size, dereferencing); + __ucsan_null_deref_flag = nullptr; + + // Handle unlabeled or special labels + if (label < UCSAN_CONST_OFFSET) { + // Global variable handling - symbolize on first access + if (in_data_section(p)) { + ucsan_label *shadow = ucsan_shadow_for(p); + if (*shadow == 0) { + bool sent_data = false; + for (uint64_t i = 0; i < size; ++i) { + void *byte_addr = (void*)((uint64_t)p + i); + shadow = ucsan_shadow_for(byte_addr); + auto ret = create_label_from_super_object(1, false); + *shadow = ret.label; + UCSAN_OUT("Symbolize global variable byte @%p with %u from offset %llu\n", + ((char*)p+i), ret.label, ret.offset); + + // Bridge to SymSan: create symbolic label for this byte and set shadow + dfsan_label symsan_label = __taint_create_label(0, ret.offset, 1); + __taint_set_label(symsan_label, byte_addr, 1); + + // Initialize from seed data if available + if (ucsan_tainted.objects->size() && ret.offset < ucsan_tainted.objects->at(0).data.size()) { + *((char*)p + i) = ucsan_tainted.objects->at(0).data.at(ret.offset); + } else if (!in_bss_section(p) && *((char*)p + i) != 0) { + sent_data = true; + } + } + + // Trace global variable usage + if (ucsan_flags().trace_object) { + __taint_trace_event_addr(*(ucsan_shadow_for(p)), EVENT_USAGE_CITE, size, + __builtin_return_address(0), 0); + } + + // Send initial data if needed + if (sent_data) { + UCSAN_OUT("Sent init data for global variable @%p\n", p); + __taint_trace_global_var(*(ucsan_shadow_for(p)), size, p); + } + } + } + + // Null dereference checking + if (dereferencing && ucsan_flags().checker_nullderef) { + if ((uint64_t)p < size || (uint64_t)p < UCSAN_OBJECT_SIZE_LIMIT) { + // Trace null dereference event + __taint_trace_event_addr(label, EVENT_NULL_DEREF, 0, __builtin_return_address(0), 0); + exit(exit_reason::EVENT_NULL_DEREF); + } else { + __ucsan_null_deref_flag = __builtin_return_address(0); + } + } + return p; + } + + // Use-before-initialization check + UCSAN_OUT("UBI check: label=%u, kUninitializedLabel=%u, equal=%d, dereferencing=%d\n", + label, kUninitializedLabel, (label == kUninitializedLabel), dereferencing); + if (label == kUninitializedLabel) { + UCSAN_OUT("UBI detected!\n"); + if (dereferencing) { + // Trace use-before-initialization event + __taint_trace_event_addr(label, EVENT_UBI, 0, __builtin_return_address(0), 0); + exit(exit_reason::EVENT_UBI); + } + return p; + } + + ucsan_label_info *label_info = get_label_info(label); + + UCSAN_OUT("label %u: op=%u, trace_bounds=%d\n", label, label_info->common.op, ucsan_flags().trace_bounds); + + // Bounds checking when trace_bounds is enabled + if (ucsan_flags().trace_bounds) { + // Check for stack UAF - accessing freed stack allocations + // Heap labels: UCSAN_CONST_OFFSET to __ucsan_last_label (growing upward) + // Stack labels: __alloca_stack_top to __alloca_stack_bottom (growing downward from top) + // Freed stack region: __ucsan_last_label < label < __alloca_stack_top + ucsan_label last_heap_label = atomic_load(&__ucsan_last_label, memory_order_relaxed); + if (label > last_heap_label && label < __alloca_stack_top) { + // Label is in the freed stack region + UCSAN_OUT("ERROR: Stack UAF detected ptr %p, label = %u (last_heap = %u, stack_top = %u)\n", + p, label, last_heap_label, __alloca_stack_top); + if (dereferencing) { + __taint_trace_event_addr(label, EVENT_UAF, 0, __builtin_return_address(0), 0); + exit(exit_reason::EVENT_UAF); + } + return p; + } + + // Check for heap UAF - freed heap memory + if (label_info->common.op == OP_FREE) { + UCSAN_OUT("ERROR: Heap UAF detected ptr %p, label = %u\n", p, label); + if (dereferencing) { + __taint_trace_event_addr(label, EVENT_UAF, 0, __builtin_return_address(0), 0); + exit(exit_reason::EVENT_UAF); + } + return p; + } + + // Check for OOB - heap/stack allocated memory with bounds tracking + if (label_info->common.op == OP_ALLOCA) { + ucsan_obj_info *obj = to_obj_info(label_info); + void *base = obj->real_ptr; + uint64_t lower = (uint64_t)base - obj->lower_bound; + uint64_t upper = (uint64_t)base + obj->upper_bound; + + UCSAN_OUT("OOB check: ptr=%p, base=%p, lower=%p, upper=%p, size=%zu\n", + p, base, (void*)lower, (void*)upper, size); + + if ((uint64_t)p < lower || (uint64_t)p >= upper || + (uint64_t)p + size > upper) { + UCSAN_OUT("ERROR: OOB access ptr %p, lower = %p, upper = %p, size = %zu, label = %u, deref=%d\n", + p, (void*)lower, (void*)upper, size, label, dereferencing); + if (dereferencing) { + __taint_trace_event_addr(label, EVENT_OOB, 0, __builtin_return_address(0), 0); + exit(exit_reason::EVENT_OOB); + } + } + return p; + } + } + + ucsan_ptr_info *ptr_info = to_ptr_info(label_info); + + // Mark as external if needed - create a new pointer label for non-pointer types + if (ptr_info->op != OP_EXTERNAL && ptr_info->op != OP_NONE) { + ucsan_label new_label = allocate_label(); + check_label(new_label); + ucsan_label_info *new_info = get_label_info(new_label); + ucsan_ptr_info *new_ptr = to_ptr_info(new_info); + new_ptr->op = OP_BITCAST; + new_ptr->status = PTR_UNINITIALIZED; + new_ptr->obj_label = UCSAN_CONST_LABEL; + new_ptr->pseudo_base = nullptr; + ptr_info = new_ptr; + } + + if (ptr_info->op == OP_NONE || ptr_info->op == OP_BITCAST) { + ptr_info->op = OP_EXTERNAL; + ptr_info->status = PTR_UNINITIALIZED; + } + + // Handle uninitialized pointer - lazy initialization + if (ptr_info->status == PTR_UNINITIALIZED) { + UCSAN_OUT("check pointer: uninit pointer\n"); + + uint32_t object_id; + void *return_addr = __builtin_return_address(0); + auto& obj = lookup_object(label, 0, return_addr, &object_id); + size_t object_size = obj.data.size(); + + UCSAN_OUT("Find object_id: %u (size = %zu) for label %u, addr %p\n", + object_id, object_size, label, return_addr); + + if (obj.data.size() < size) obj.data.resize(size); + object_size = obj.data.size(); + + // Create object label + ucsan_label obj_label = allocate_label(); + check_label(obj_label); + + void* np = customized_malloc(object_size); + internal_memcpy(np, obj.data.data(), object_size); + + ucsan_obj_info *obj_label_info = to_obj_info(get_label_info(obj_label)); + obj_label_info->lower_bound = obj.offset; + obj_label_info->upper_bound = (uint32_t)object_size - obj.offset; + obj_label_info->real_ptr = (char*)np + obj.offset; + obj_label_info->op = OP_RESERVED_OBJ; + obj_label_info->object_id = object_id; + + ptr_info->obj_label = obj_label; + ptr_info->pseudo_base = p; // Store original pseudo pointer in ptr_info + + // Create labels for each byte in the object and set up shadow memory + for (uint64_t offset = 0; offset < object_size; ++offset) { + ucsan_label byte_label = allocate_label(); + check_label(byte_label); + + ucsan_label_info *byte_info = get_label_info(byte_label); + ucsan_byte_info *byte = to_byte_info(byte_info); + byte->op = OP_NONE; + byte->object_id = object_id; + byte->offset = offset - obj.offset; + + void *nptr = (void*)((uint64_t)np + offset); + ucsan_label *shadow = ucsan_shadow_for(nptr); + *shadow = byte_label; + + // Bridge to SymSan: create symbolic label for this byte and set shadow + dfsan_label symsan_label = __taint_create_label(object_id, byte->offset, 1); + __taint_set_label(symsan_label, nptr, 1); + } + + ptr_info->status = PTR_INITIALIZED; + return (char*)np + obj.offset; + + } else if (ptr_info->status == PTR_INITIALIZED) { + UCSAN_OUT("check pointer: pointer allocated\n"); + + ucsan_label obj_label = ptr_info->obj_label; + ucsan_obj_info *obj_label_info = to_obj_info(get_label_info(obj_label)); + uint32_t object_id = obj_label_info->object_id; + + void *obj_base = obj_label_info->real_ptr; + int64_t pseudo_base = (int64_t)ptr_info->pseudo_base; // Read from ptr_info + int64_t desired_offset = (int64_t)p - pseudo_base; + + if (ucsan_flags().no_upcast && desired_offset < 0) { + UCSAN_OUT("Upcast disallowed by no_upcast flag\n"); + exit(exit_reason::CHECKER_OOB_UPCAST); + } + + // Fast path: within current bounds + int64_t lower_bound = pseudo_base - obj_label_info->lower_bound; + int64_t upper_bound = pseudo_base + obj_label_info->upper_bound; + + if (lower_bound <= (int64_t)p && (int64_t)p + (int64_t)size <= upper_bound) { + void* target = (void*)((int64_t)obj_base + desired_offset); + UCSAN_OUT("Fast path: returning %p\n", target); + return target; + } + + /* + remarkable offsets in an ascending order: + --------------------- + 0 -> new lowest offset + --------------------- + extended_lower -> extended bytes in the lower bound + --------------------- + new_lower_bound -> the new lower bound, the data between extended_lower + and new_lower_bound is copied from the original object + [new_size] -> e.g. array access to the previous element, like a[-1] + --------------------- + original_size -> the original size, the data from new_lower_bound to + this is copied from the original object + --------------------- + [new_size] -> e.g. use container_of access to a larger object + --------------------- + */ + + // Slow path: need to enlarge object + uint64_t original_size = obj_label_info->lower_bound + obj_label_info->upper_bound; + uint64_t extended_lower = 0; + uint64_t new_lower_bound = obj_label_info->lower_bound; + + if (desired_offset < 0 && desired_offset < -(int64_t)new_lower_bound) { + extended_lower = -desired_offset - new_lower_bound; + new_lower_bound = -desired_offset; + UCSAN_OUT("Extended lower bound: %llu, new lower bound: %llu\n", extended_lower, new_lower_bound); + if (ucsan_flags().trace_object) + __taint_trace_event_addr(label, EVENT_EXTENSION, object_id, (void*)new_lower_bound, 0); + } + + uint64_t new_size = new_lower_bound + Max(desired_offset + (int64_t)size, + (int64_t)obj_label_info->upper_bound); + + if (new_size > UCSAN_OBJECT_SIZE_LIMIT) { + UCSAN_OUT("Object size too large: %llu\n", new_size); + exit(exit_reason::REASON_OBJ_OOB); + } + + void *np = customized_malloc(new_size); + UCSAN_OUT("Enlarged object: np=%p, new_size=%llu\n", np, new_size); + + // Copy and extend shadow memory + // Padding the left lower bounds with new labels + for (uint64_t offset = 0; offset < extended_lower; ++offset) { + ucsan_label byte_label = allocate_label(); + check_label(byte_label); + + ucsan_label_info *byte_info = get_label_info(byte_label); + ucsan_byte_info *byte = to_byte_info(byte_info); + byte->op = OP_NONE; + byte->object_id = object_id; + byte->offset = (int64_t)offset - (int64_t)new_lower_bound; + + void *nptr = (void*)((uint64_t)np + offset); + *ucsan_shadow_for(nptr) = byte_label; + + // Bridge to SymSan: create symbolic label for this byte and set shadow + dfsan_label symsan_label = __taint_create_label(object_id, byte->offset, 1); + __taint_set_label(symsan_label, nptr, 1); + } + + // Copy shadow memory from original object + void *dst_addr = (void*)((int64_t)np + extended_lower); + ucsan_label *shadow = ucsan_shadow_for(dst_addr); + internal_memcpy(shadow, ucsan_shadow_for(obj_base), original_size * sizeof(ucsan_label)); + + // Bridge to SymSan: copy shadow memory + __taint_copy_shadow(dst_addr, obj_base, original_size); + + // Copy original data + internal_memcpy((char*)np + extended_lower, obj_base, original_size); + + // Padding the right upper bounds with new labels + for (uint64_t offset = extended_lower + original_size; offset < new_size; ++offset) { + ucsan_label byte_label = allocate_label(); + check_label(byte_label); + + ucsan_label_info *byte_info = get_label_info(byte_label); + ucsan_byte_info *byte = to_byte_info(byte_info); + byte->op = OP_NONE; + byte->object_id = object_id; + byte->offset = offset - new_lower_bound; + + void *nptr = (void*)((uint64_t)np + offset); + *ucsan_shadow_for(nptr) = byte_label; + + // Bridge to SymSan: create symbolic label for this byte and set shadow + dfsan_label symsan_label = __taint_create_label(object_id, byte->offset, 1); + __taint_set_label(symsan_label, nptr, 1); + } + + // Update object info + obj_label_info->lower_bound = (uint32_t)new_lower_bound; + obj_label_info->upper_bound = (uint32_t)(new_size - new_lower_bound); + obj_label_info->real_ptr = (char*)np + new_lower_bound; + + return (void*)((int64_t)np + desired_offset); + } + + UCSAN_OUT("Unknown pointer state: %d\n", ptr_info->status); + return nullptr; +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void ucsan_check_ptr_arg(ucsan_label *label, uint32_t arg_index, void* ret_addr) { + if (label[0] == kUninitializedLabel) { + // Trace use-before-initialization event + __taint_trace_event_addr(label[0], EVENT_UBI, arg_index, ret_addr, 0); + exit(exit_reason::CHECKER_UBI); + } +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void ucsan_check_ubi(ucsan_label label) { + UCSAN_OUT("ucsan_check_ubi: label=%u, kUninitializedLabel=%u\n", label, kUninitializedLabel); + if (label == kUninitializedLabel) { + UCSAN_OUT("UBI detected in scalar load!\n"); + // Trace use-before-initialization event + __taint_trace_event_addr(label, EVENT_UBI, 0, __builtin_return_address(0), 0); + exit(exit_reason::EVENT_UBI); + } +} + +// Combine two labels for binary operations +// Returns kUninitializedLabel if either operand is uninitialized +// Warns if a pointer label is used in arithmetic +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +ucsan_label ucsan_combine_label(ucsan_label l1, ucsan_label l2) { + // If either label is uninitialized, propagate it + if (l1 == kUninitializedLabel || l2 == kUninitializedLabel) { + UCSAN_OUT("ucsan_combine_label: propagating kUninitializedLabel (l1=%u, l2=%u)\n", l1, l2); + return kUninitializedLabel; + } + + // Check if a pointer is used with a non-zero non-pointer value + // Pointer with zero is fine (comparison or null-offset arithmetic) + bool l1_is_ptr = false, l2_is_ptr = false; + if (l1 != 0) { + ucsan_label_info *info = get_label_info(l1); + l1_is_ptr = info && (info->common.op == OP_EXTERNAL || info->common.op == OP_ALLOCA); + } + if (l2 != 0) { + ucsan_label_info *info = get_label_info(l2); + l2_is_ptr = info && (info->common.op == OP_EXTERNAL || info->common.op == OP_ALLOCA); + } + // Warn only if pointer is combined with non-zero non-pointer + if (l1_is_ptr && l2 != 0 && !l2_is_ptr) { + UCSAN_OUT("WARNING: pointer label %u used in binary operation with non-pointer %u\n", l1, l2); + } + if (l2_is_ptr && l1 != 0 && !l1_is_ptr) { + UCSAN_OUT("WARNING: pointer label %u used in binary operation with non-pointer %u\n", l2, l1); + } + + // Return 0 - we don't track symbolic expressions in standalone mode + return 0; +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +ucsan_label ucsan_load_pointer_shadow(ucsan_label *ls, uint64_t n, bool is_pointer) { + if (ls == nullptr) return 0; + + ucsan_label label0 = ls[0]; + + UCSAN_OUT("load_pointer_shadow: *label(%p)=%d is_pointer=%d, size=%llu\n", + ls, label0, is_pointer, n); + + // Allow loading kUninitializedLabel for UBI detection + if (label0 == kUninitializedLabel) { + return label0; + } + + ucsan_label_info *label_info = get_label_info(label0); + + if (is_pointer) { + if (label0 >= UCSAN_CONST_OFFSET && label_info->common.op == OP_NONE) { + // Convert byte label to pointer label + ucsan_ptr_info *ptr = to_ptr_info(label_info); + ptr->op = OP_EXTERNAL; + ptr->status = PTR_UNINITIALIZED; + } + return label0; + } + + // Load pointer but not as pointer type + if (label0 >= UCSAN_CONST_OFFSET && + (label_info->common.op == OP_EXTERNAL || label_info->common.op == OP_NONE || + label_info->common.op == OP_ALLOCA || label_info->common.op == OP_FREE) && + n == sizeof(void*)) { + return label0; + } + + return 0; +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void ucsan_store_pointer_shadow(ucsan_label l, ucsan_label *ls, uint64_t n) { + UCSAN_OUT("store_pointer_shadow: label=%d, n=%llu, ls=%p\n", l, n, ls); + + if (l == 0 || l == kUninitializedLabel) { + for (uint64_t i = 0; i < n; ++i) ls[i] = l; + return; + } + + ucsan_label_info *label_info = get_label_info(l); + if (label_info->common.op == OP_EXTERNAL || + label_info->common.op == OP_ALLOCA || + label_info->common.op == OP_FREE) { + assert(n == sizeof(void*)); + ls[0] = l; + return; + } + + Report("WARNING: storing non-pointer label %d (op=%d) shadow\n", l, label_info->common.op); +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void ucsan_set_label(ucsan_label label, void *addr, uint64_t size) { + UCSAN_OUT("ucsan_set_label: label=%d, addr=%p, size=%llu\n", label, addr, size); + + // Get shadow address for the memory region + ucsan_label *shadow = ucsan_shadow_for(addr); + + // Set the label for each byte in the region + for (uint64_t i = 0; i < size; ++i) { + shadow[i] = label; + } +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void* ucsan_set_label_for_args(uint32_t index, uint32_t size_in_bits, uint8_t is_pointer, uint64_t given) { + UCSAN_OUT("set_label_for_args: index=%u, size_in_bits=%u, is_pointer=%d\n", + index, size_in_bits, is_pointer); + + size_t size_in_bytes = (size_in_bits + 7) / 8; + auto ret = create_label_from_super_object(size_in_bytes, is_pointer); + + UCSAN_OUT("set label %u for index %u\n", ret.label, index); + + // Handle truncation if size_in_bits < size_in_bytes * 8 + // Note: UCSan doesn't have union operations, truncation is implicit + // The label represents the full byte(s), actual bit size is tracked elsewhere + + __ucsan_arg_tls[index] = ret.label; + + // Bridge to SymSan: create symbolic label and set arg TLS + // object_id=0 for function arguments, offset from super object + dfsan_label symsan_label = __taint_create_label(0, ret.offset, size_in_bytes); + __taint_set_arg_tls(index, symsan_label, size_in_bits); + + uint64_t last_offset = ret.offset; + + // Ensure objects is allocated + if (!ucsan_tainted.objects) { + ucsan_tainted.objects = new ObjectStorage(); + } + + if (ucsan_tainted.objects->size() && + last_offset + size_in_bytes <= ucsan_tainted.objects->at(0).data.size()) { + uint64_t result = *((uint64_t*)(ucsan_tainted.objects->at(0).data.data() + last_offset)); + UCSAN_OUT("Returning: 0x%llx\n", result); + return (void*)result; + } + + if (!ucsan_tainted.objects->size()) ucsan_tainted.objects->resize(1); + ucsan_tainted.objects->at(0).data.resize(last_offset + size_in_bytes); + + return (void*)given; +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +ucsan_label ucsan_resign_shadow(void *ptr, ucsan_label *orig_label, uint64_t n, void *ret_addr) { + ucsan_label label_for_ptr = *orig_label; + + if (ptr == nullptr && label_for_ptr == 0) { + UCSAN_OUT("Resigning null pointer, skip\n"); + return UCSAN_CONST_LABEL; + } + + if (label_for_ptr != 0) { + ucsan_label_info *orig = get_label_info(label_for_ptr); + + if (orig->common.op == OP_ALLOCA) { + // Handle alloca case - symbolize uninitialized bytes in the allocated region + UCSAN_OUT("Resign alloca object\n"); + ucsan_obj_info *obj_info = to_obj_info(orig); + + // Calculate bounds: real_ptr is the base, lower_bound is bytes before, upper_bound is bytes after + char *lower = (char*)obj_info->real_ptr - obj_info->lower_bound; + char *upper = (char*)obj_info->real_ptr + obj_info->upper_bound; + ucsan_label *lp = ucsan_shadow_for(lower); + ucsan_label *le = ucsan_shadow_for(upper); + char *obj_ptr = lower; + + for (; lp < le; ++lp, ++obj_ptr) { + if (*lp == kUninitializedLabel) { + // Allocate a byte from super object + auto ret = create_label_from_super_object(1, false); + UCSAN_OUT("resign alloca ret: %u %llu\n", ret.label, ret.offset); + *lp = ret.label; + + // Bridge to SymSan: create symbolic label for this byte + dfsan_label symsan_label = __taint_create_label(0, ret.offset, 1); + __taint_set_label(symsan_label, obj_ptr, 1); + + if (ucsan_tainted.objects->size() && ret.offset < ucsan_tainted.objects->at(0).data.size()) { + UCSAN_OUT("resign alloca super object: %u\n", ucsan_tainted.objects->at(0).data.at(ret.offset)); + *obj_ptr = ucsan_tainted.objects->at(0).data.at(ret.offset); + } else { + *obj_ptr = 0; + } + } + } + return label_for_ptr; + } else if (orig->common.op == OP_FREE) { + // Freed memory - return as-is for UAF detection + UCSAN_OUT("Resign freed object\n"); + return label_for_ptr; + } else { + // Mark as external pointer + ucsan_ptr_info *ptr_info = to_ptr_info(orig); + ptr_info->op = OP_EXTERNAL; + ptr_info->status = PTR_UNINITIALIZED; + } + return label_for_ptr; + + } else { + if (!is_writeable(ptr)) { + return UCSAN_CONST_LABEL; + } + + if (ret_addr == nullptr) { + ret_addr = __builtin_return_address(0); + } + + UCSAN_OUT("Concrete external object: p=%p, size=%llu\n", ptr, n); + + // Create a dummy label for constant pointer tracking + ucsan_label dummy_label = allocate_label(); + ucsan_label_info *dummy_info = get_label_info(dummy_label); + ucsan_ptr_info *dummy_ptr = to_ptr_info(dummy_info); + dummy_ptr->op = OP_DUMMY; + dummy_ptr->status = PTR_UNINITIALIZED; + dummy_ptr->obj_label = UCSAN_CONST_LABEL; + dummy_ptr->pseudo_base = ptr; // Store the constant pointer value + + uint32_t object_id = 0; + auto& object = lookup_object(dummy_label, 0, ret_addr, &object_id); + + // Set up shadow memory for object bytes + ucsan_label *shadow = ucsan_shadow_for(ptr); + for (uptr i = 0; i < n; ++i) { + ucsan_label next_label = allocate_label(); + check_label(next_label); + + shadow[i] = next_label; + ucsan_label_info *new_label_info = get_label_info(next_label); + ucsan_byte_info *byte = to_byte_info(new_label_info); + byte->op = OP_NONE; + byte->object_id = object_id; + byte->offset = i; + + // Bridge to SymSan: create symbolic label for this byte and set shadow + void *byte_addr = (void*)((uint64_t)ptr + i); + dfsan_label symsan_label = __taint_create_label(object_id, byte->offset, 1); + __taint_set_label(symsan_label, byte_addr, 1); + } + + if (object.data.size() < n) object.data.resize(n); + + for (uptr i = 0; i < n; ++i) { + ((uint8_t*)ptr)[i] = object.data[i]; + } + + return dummy_label; + } +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void* ucsan_wrap_retval(uint64_t size, ucsan_label *ret_label, bool is_ptr, void* ret_addr) { + uint64_t bits = size; + size = (size + 7) >> 3; // Round up to bytes + + if (ret_addr == nullptr) ret_addr = __builtin_return_address(0); + + // Treat pointer-sized non-pointers as pointers for lazy init + bool treat_as_ptr = is_ptr || size == sizeof(void*); + auto lbl = create_label_from_super_object(size, treat_as_ptr); + ucsan_label label = lbl.label; + uint64_t last_offset = lbl.offset; + + UCSAN_OUT("Ret object created: label=%u, offset=%llu\n", label, last_offset); + + // Note: create_label_from_super_object already initializes the label_info + // with the correct op (OP_EXTERNAL for pointers, OP_NONE for bytes) + // and stores offset/object_id in byte_info or sets up ptr_info + + // TODO: Handle truncation if bits < size * 8 + + *ret_label = label; + + // Bridge to SymSan: create symbolic label and set retval TLS + dfsan_label symsan_label = __taint_create_label(0, last_offset, (uint32_t)size); + __taint_set_retval_tls(symsan_label, (uint32_t)bits); + + if (ucsan_tainted.objects->size() && + last_offset + size <= ucsan_tainted.objects->at(0).data.size()) { + UCSAN_OUT("offset (%llu + %llu) in the seed\n", last_offset, size); + for (uptr i = 0; i < size; ++i) { + __ucsan_wrapped_return_tls[i] = ucsan_tainted.objects->at(0).data[last_offset + i]; + } + } else { + for (uptr i = 0; i < size; ++i) { + __ucsan_wrapped_return_tls[i] = 0; + } + } + + return (void*)__ucsan_wrapped_return_tls; +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +ucsan_label ucsan_trace_alloca(uint64_t size, uint64_t elem_size, uint64_t addr) { + // Track stack allocation bounds using stack-based label allocation + // Labels are allocated from __alloca_stack_top (top of label space, growing downward) + // and automatically freed when the function exits via __taint_pop_stack_frame + // + // size: array size (number of elements) + // elem_size: size of each element in bytes + // addr: address of the stack allocation + + if (ucsan_flags().trace_bounds) { + uint64_t total_size = size * elem_size; + void *ptr = (void*)addr; + + // Allocate label from stack top (grows downward) + __alloca_stack_top -= 1; + ucsan_label label = __alloca_stack_top; + + UCSAN_OUT("ucsan_trace_alloca: label=%u, base=%p, size=%llu, elem_size=%llu, total=%llu\n", + label, ptr, size, elem_size, total_size); + + ucsan_label_info *info = get_label_info(label); + ucsan_obj_info *obj = to_obj_info(info); + + // Set up bounds tracking for stack allocation + obj->op = OP_ALLOCA; + obj->_reserved = 0; + obj->object_id = 0; // Not tracked in objects array (stack allocation) + obj->real_ptr = ptr; + obj->lower_bound = 0; // No bytes before base + obj->upper_bound = (uint32_t)total_size; // Total size in bytes + + UCSAN_OUT(" created stack label %u: ptr=%p, lower=0, upper=%u\n", + label, ptr, obj->upper_bound); + + // Set shadow memory to kUninitializedLabel for UBI detection + ucsan_label *shadow = ucsan_shadow_for(ptr); + for (uptr i = 0; i < total_size; i++) { + shadow[i] = kUninitializedLabel; + } + + return label; + } else { + return 0; + } +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void ucsan_push_stack_frame() { + // Save current stack top when entering a function + // This allows automatic cleanup of stack allocation labels on function exit + if (ucsan_flags().trace_bounds) { + if (__current_saved_stack_index < UCSAN_MAX_SAVED_STACK_ENTRIES) { + __saved_alloca_stack_top[++__current_saved_stack_index] = __alloca_stack_top; + UCSAN_OUT("ucsan_push_stack_frame: saved index=%d, stack_top=%u\n", + __current_saved_stack_index, __alloca_stack_top); + } else { + Report("WARNING: UCSan: stack frame save index overflow\n"); + } + } +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void ucsan_pop_stack_frame() { + // Restore stack top when exiting a function + // This automatically frees all stack allocation labels created in this function + if (ucsan_flags().trace_bounds) { + if (__current_saved_stack_index > 0) { + __alloca_stack_top = __saved_alloca_stack_top[__current_saved_stack_index--]; + UCSAN_OUT("ucsan_pop_stack_frame: restored index=%d, stack_top=%u\n", + __current_saved_stack_index, __alloca_stack_top); + } else { + Report("WARNING: UCSan: stack frame save index underflow\n"); + } + } +} + +//===----------------------------------------------------------------------===// +// Initialization +//===----------------------------------------------------------------------===// + +void UCSanFlags::SetDefaults() { +#define UCSAN_FLAG(Type, Name, DefaultValue, Description) Name = DefaultValue; +#include "ucsan_flags.inc" +#undef UCSAN_FLAG +} + +static void RegisterUCSanFlags(FlagParser *parser, UCSanFlags *f) { +#define UCSAN_FLAG(Type, Name, DefaultValue, Description) \ + RegisterFlag(parser, #Name, Description, &f->Name); +#include "ucsan_flags.inc" +#undef UCSAN_FLAG +} + +static void ucsan_parse_flags() { + // Set common flags defaults + SetCommonFlagsDefaults(); + + // Set UCSan-specific flag defaults + ucsan_flags_data.SetDefaults(); + + // Create flag parser and register flags + FlagParser parser; + RegisterCommonFlags(&parser); + RegisterUCSanFlags(&parser, &ucsan_flags_data); + + // Parse UCSAN_OPTIONS environment variable + parser.ParseString(GetEnv("UCSAN_OPTIONS")); + + // Initialize common flags + InitializeCommonFlags(); + + // Report unrecognized flags if verbose + if (Verbosity()) ReportUnrecognizedFlags(); + + // Print help if requested + if (common_flags()->help) parser.PrintFlagDescriptions(); + + // Set debug flag + ucsan_debug = ucsan_flags_data.debug; +} + +static void ucsan_init_shadow_memory() { + // Map UCSan shadow memory region + // Shadow: kShadowBase (0x480000000000) to kUnionTableAddr (0x680000000000) + uptr shadow_size = kUnionTableAddr - kShadowBase; + if (!MmapFixedSuperNoReserve(kShadowBase, shadow_size)) { + Printf("FATAL: UCSan: failed to map shadow memory\n"); + Die(); + } + + // Map UCSan union table + if (!MmapFixedSuperNoReserve(kUnionTableAddr, kUnionTableSize)) { + Printf("FATAL: UCSan: failed to map union table\n"); + Die(); + } + + // Initialize label info pointer + __ucsan_label_info = (ucsan_label_info *)kUnionTableAddr; + + // Initialize constant label (label 0) + internal_memset(&__ucsan_label_info[UCSAN_CONST_LABEL], 0, sizeof(ucsan_label_info)); + + // Initialize label counter (start from 1, 0 is CONST_LABEL) + atomic_store(&__ucsan_last_label, UCSAN_CONST_OFFSET, memory_order_relaxed); + + // Initialize object counter + atomic_store(&__ucsan_inited_objects, 1, memory_order_relaxed); + + // Initialize alloca stack for bounds tracking + uptr num_labels = kUnionTableSize / sizeof(ucsan_label_info); + __alloca_stack_top = __alloca_stack_bottom = (ucsan_label)(num_labels - 2); +} + +static void ucsan_fini_internal() { + UCSAN_OUT("UCSan runtime finalized\n"); + + // Clean up input struct + ucsan_fini_input_struct(); +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void ucsan_init() { + // Initialize input struct first (C-style init for preinit_array safety) + ucsan_init_input_struct(); + + // Parse options + ucsan_parse_flags(); + + // Initialize shadow memory and label table + ucsan_init_shadow_memory(); + + // Load input file if specified + if (ucsan_flags_data.input_file && ucsan_flags_data.input_file[0] != '\0') { + ucsan_init_input(ucsan_flags_data.input_file); + } + + // Register cleanup callback + Atexit(ucsan_fini_internal); + AddDieCallback(ucsan_fini_internal); + + UCSAN_OUT("UCSan runtime initialized\n"); + UCSAN_OUT(" Shadow: 0x%llx - 0x%llx\n", (uint64_t)kShadowBase, (uint64_t)kUnionTableAddr); + UCSAN_OUT(" UnionTable: 0x%llx (size: 0x%llx)\n", (uint64_t)kUnionTableAddr, (uint64_t)kUnionTableSize); + UCSAN_OUT(" Max labels: %llu\n", (uint64_t)(kUnionTableSize / sizeof(ucsan_label_info))); +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void ucsan_fini() { + ucsan_fini_internal(); +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void ucsan_init_input(const char *filename) { + UCSAN_OUT("ucsan_init_input: %s\n", filename); + + if (!filename || internal_strlen(filename) == 0) { + return; + } + + // Map input file + uptr file_size; + char *buf = (char *)MapFileToMemory(filename, &file_size); + if (!buf) { + Report("WARNING: UCSan: failed to map input file %s\n", filename); + return; + } + + // Parse file format (same as dfsan): + // [object_cnt: uint64_t] + // [offset1: uint32_t, offset2: uint32_t, ...] (object_cnt entries) + // [size1: uint64_t, size2: uint64_t, ...] (object_cnt entries) + // [data1, data2, ...] (variable length) + // [metadata: obj_id + offset pairs] (optional) + + uint64_t *header = (uint64_t *)buf; + uint64_t object_cnt = *header; + header++; + + uint32_t *offsets = (uint32_t *)header; + uint64_t *sizes = (uint64_t *)(offsets + object_cnt); + + char *cursor = buf + sizeof(uint64_t) + sizeof(uint32_t) * object_cnt + sizeof(uint64_t) * object_cnt; + + // Initialize objects storage + if (!ucsan_tainted.objects) { + ucsan_tainted.objects = new ObjectStorage(); + } + ucsan_tainted.objects->clear(); + + for (uint64_t i = 0; i < object_cnt; ++i) { + ucsan_tainted.objects->emplace_back(UCSanObject{ + .offset = offsets[i], + .data = std::vector(cursor, cursor + sizes[i]), + .origin = {0, 0} + }); + cursor += sizes[i]; + } + + // Load metadata if present + if (cursor < buf + file_size) { + for (uint64_t i = 0; i < object_cnt && cursor + sizeof(uint64_t) * 2 <= buf + file_size; ++i) { + ucsan_tainted.objects->at(i).origin.obj_id = *(uint64_t *)cursor; + cursor += sizeof(uint64_t); + ucsan_tainted.objects->at(i).origin.offset = *(uint64_t *)cursor; + cursor += sizeof(uint64_t); + } + } + + // Build object map for lookup + if (object_cnt > 1) { + ucsan_tainted.build_obj_map(); + } + + ucsan_tainted.buf = buf; + ucsan_tainted.buf_size = file_size; + + UCSAN_OUT("Loaded %llu objects from %s\n", object_cnt, filename); +} + +//===----------------------------------------------------------------------===// +// Preinit Array for Automatic Initialization +//===----------------------------------------------------------------------===// + +// Internal init function with standard signature for preinit_array +static void ucsan_init_internal(int argc, char **argv, char **envp) { + (void)argc; + (void)argv; + (void)envp; + ucsan_init(); +} + +#if SANITIZER_CAN_USE_PREINIT_ARRAY +__attribute__((section(".preinit_array"), used)) +static void (*ucsan_init_ptr)(int, char **, char **) = ucsan_init_internal; +#endif + +//===----------------------------------------------------------------------===// +// Weak Definitions for Trace Callbacks +//===----------------------------------------------------------------------===// + +// These are weak definitions that allow the solver (e.g., thoroupy.cpp) to +// override them with actual implementations. If no solver is linked, these +// empty stubs are used. + +extern "C" { + +// Weak definition for event tracing +SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_event_addr, + __ucsan::ucsan_label, uint32_t, uint64_t, void*, uint16_t) {} + +// Weak definition for global variable tracing +SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_global_var, + __ucsan::ucsan_label, uint64_t, void*) {} + +//===----------------------------------------------------------------------===// +// SymSan Bridge - Weak Stubs +//===----------------------------------------------------------------------===// +// These weak definitions are overridden by SymSan's dfsan.cpp when linked. +// When UCSan runs standalone, these are no-ops. + +// Create a SymSan label for input bytes +// @param object_id: input source identifier (fd, socket, etc.) +// @param offset: byte offset within the source +// @param size_in_bytes: size of the input in bytes +// @return: SymSan label (0 when standalone) +SANITIZER_INTERFACE_WEAK_DEF(dfsan_label, __taint_create_label, uint32_t, uint64_t, uint32_t) { + return 0; // CONST_LABEL when standalone +} + +// Set SymSan arg TLS entry +// @param index: argument index +// @param label: SymSan label to set +// @param size_in_bits: size of argument in bits (for truncation) +SANITIZER_INTERFACE_WEAK_DEF(void, __taint_set_arg_tls, uint32_t, dfsan_label, uint32_t) {} + +// Set SymSan retval TLS entry +// @param label: SymSan label to set +// @param size_in_bits: size of return value in bits (for truncation) +SANITIZER_INTERFACE_WEAK_DEF(void, __taint_set_retval_tls, dfsan_label, uint32_t) {} + +// Set SymSan shadow memory for a region +// @param label: SymSan label to set +// @param addr: memory address +// @param size: size in bytes +SANITIZER_INTERFACE_WEAK_DEF(void, __taint_set_label, dfsan_label, void*, uint64_t) {} + +// Copy SymSan shadow memory from src to dst +// @param dst: destination address +// @param src: source address +// @param size: size in bytes +SANITIZER_INTERFACE_WEAK_DEF(void, __taint_copy_shadow, void*, void*, uint64_t) {} + +// Move SymSan shadow memory from src to dst (handles overlapping regions) +// @param dst: destination address +// @param src: source address +// @param size: size in bytes +SANITIZER_INTERFACE_WEAK_DEF(void, __taint_move_shadow, void*, void*, uint64_t) {} + +} // extern "C" diff --git a/runtime/dfsan/ucsan.h b/runtime/dfsan/ucsan.h new file mode 100644 index 00000000..f07dc957 --- /dev/null +++ b/runtime/dfsan/ucsan.h @@ -0,0 +1,401 @@ +//===-- ucsan.h - UCSan Runtime Header -------------------------*- C++ -*-===// +// +// Under-Constrained Symbolic Sanitizer Runtime +// +// UCSan focuses on: +// - Pointer shadow tracking (object membership, bounds) +// - Lazy object initialization and management +// - Pseudo-pointer resolution +// +// UCSan uses 16-bit labels (separate from SymSan's 32-bit labels). +// This is separate from SymSan which tracks symbolic expressions. +// +//===----------------------------------------------------------------------===// + +#ifndef UCSAN_H +#define UCSAN_H + +#include "ucsan_platform.h" +#include "ucsan_exit_reason.h" +#include "sanitizer_common/sanitizer_internal_defs.h" +#include "sanitizer_common/sanitizer_common.h" +#include "sanitizer_common/sanitizer_atomic.h" + +#include +#include +#include +#include + +using __sanitizer::uptr; +using __sanitizer::atomic_uint16_t; +using __sanitizer::atomic_uint32_t; +using __sanitizer::atomic_uint64_t; +using __sanitizer::memory_order_relaxed; + +//===----------------------------------------------------------------------===// +// UCSan Configuration +//===----------------------------------------------------------------------===// + +#define UCSAN_SAFE_GAP 0x1000 +#define UCSAN_ROUNDUPGAP(x) (((x) + UCSAN_SAFE_GAP - 1) & ~(UCSAN_SAFE_GAP - 1)) +#define UCSAN_OBJECT_SIZE_LIMIT (4096 * 10) +#define UCSAN_MAX_SAVED_STACK_ENTRIES 1024 + +namespace __ucsan { + +//===----------------------------------------------------------------------===// +// Special Labels (16-bit) +//===----------------------------------------------------------------------===// + +const ucsan_label kUninitializedLabel = (ucsan_label)0xFFFF; + +//===----------------------------------------------------------------------===// +// Pointer State +//===----------------------------------------------------------------------===// + +enum PTR_STATE : uint16_t { + PTR_UNINITIALIZED = 0, // uninitialized pointer (needs lazy init) + PTR_INITIALIZED = 1, // lazy-initialized pointer (has object) + PTR_ALLOCATED = 2, // allocated by malloc (may not be symbolized) + PTR_EXTERNAL = 3, // external pointer (from input) +}; + +//===----------------------------------------------------------------------===// +// UCSan Label Info Structures (designed for pointer/object tracking) +// +// All stored in the same union table, so must be the same size. +// Use 'op' field to distinguish type. +//===----------------------------------------------------------------------===// + +// Byte info - tracks individual bytes within objects (op == OP_NONE) +// Shadow memory points to these for each byte in a lazy-initialized object +struct ucsan_byte_info { + uint16_t op; // OP_NONE + uint16_t _reserved; + uint32_t object_id; // which object this byte belongs to + int64_t offset; // byte's offset within the object + uint64_t _padding; // padding to match other structs +} __attribute__((aligned(8))); + +// Pointer info - tracks symbolic/external pointers (op == OP_EXTERNAL) +// Offset is computed dynamically as (current_ptr - pseudo_base) +struct ucsan_ptr_info { + uint16_t op; // OP_EXTERNAL, OP_DUMMY, etc. + uint16_t status; // PTR_STATE + ucsan_label obj_label; // label pointing to backing ucsan_obj_info + uint16_t _reserved; + void* pseudo_base; // original symbolic pointer value + uint64_t _padding; // padding to match other structs +} __attribute__((aligned(8))); + +// Object info - tracks lazy-initialized objects (op == OP_RESERVED_OBJ) +struct ucsan_obj_info { + uint16_t op; // OP_RESERVED_OBJ + uint16_t _reserved; + uint32_t object_id; // unique object ID (index into objects array) + void* real_ptr; // actual memory (points to base within allocated region) + uint32_t lower_bound; // bytes before base (for container_of) + uint32_t upper_bound; // bytes after base +} __attribute__((aligned(8))); + +// Union of all label info types for the label table +union ucsan_label_info { + struct { uint16_t op; } common; // common header to check type + ucsan_byte_info byte; + ucsan_ptr_info ptr; + ucsan_obj_info obj; +}; + +// Static assertions - all info structs must be same size (24 bytes) +static_assert(sizeof(ucsan_byte_info) == 24, "ucsan_byte_info should be 24 bytes"); +static_assert(sizeof(ucsan_ptr_info) == 24, "ucsan_ptr_info should be 24 bytes"); +static_assert(sizeof(ucsan_obj_info) == 24, "ucsan_obj_info should be 24 bytes"); +static_assert(sizeof(ucsan_label_info) == 24, "ucsan_label_info should be 24 bytes"); + +// Size of each entry in the union table +static const size_t kLabelInfoSize = sizeof(ucsan_label_info); + +//===----------------------------------------------------------------------===// +// Label Info Accessors +//===----------------------------------------------------------------------===// + +// Convert label_info to specific types (for convenience) +inline ucsan_ptr_info* to_ptr_info(ucsan_label_info *info) { + return &info->ptr; +} + +inline ucsan_obj_info* to_obj_info(ucsan_label_info *info) { + return &info->obj; +} + +inline ucsan_byte_info* to_byte_info(ucsan_label_info *info) { + return &info->byte; +} + +//===----------------------------------------------------------------------===// +// Object Tracking Structures +//===----------------------------------------------------------------------===// + +// Metadata about where an object originated +struct ObjectOrigin { + uint64_t obj_id; // parent object ID (0 = super object) + uint64_t offset; // offset within parent object +}; + +// An object tracked by UCSan +struct UCSanObject { + uint32_t offset; // offset within object (for sub-objects) + std::vector data; // concrete data + ObjectOrigin origin; // where this object came from +}; + +// Object storage type +typedef std::vector ObjectStorage; + +// Object map key type: (parent_obj_id, offset) +typedef std::pair ObjectMapKey; + +// Object map: maps (parent_obj_id, offset) -> object_id +typedef std::map ObjectMap; + +//===----------------------------------------------------------------------===// +// UCSan Taint Source (Input Tracking) +//===----------------------------------------------------------------------===// + +struct ucsan_input { + char filename[4096]; // input file path + int fd; // file descriptor + off_t offset; // current offset + ucsan_label offset_label; // label for offset (if symbolic) + ucsan_label label; // base label + off_t size; // input size + uint8_t is_stdin; // is stdin input + uint8_t is_utmp; // is utmp input + char *buf; // mapped input buffer + uptr buf_size; // buffer size + + // Object management (same pattern as dfsan) + // All pointers to avoid C++ constructor ordering issues + ObjectStorage *objects; // pointer - allocated dynamically + ObjectMap *obj_map; // pointer - allocated dynamically + std::map *const_ptr_counter; // pointer - allocated dynamically + + // Super object offset tracking + atomic_uint64_t arg_used; // bytes used from super object + + // NOTE: No constructors - use ucsan_init_tainted() for C-style init + // to avoid preinit_array ordering issues + + // Serialize objects to buffer + char* dump(); + + // Build object map from objects + void build_obj_map(); +}; + +// NOTE: ucsan_input initialization is handled internally by ucsan_init() +// via ucsan_init_input_struct() - a C-style init to avoid preinit_array issues + +//===----------------------------------------------------------------------===// +// UCSan Event Types (for tracing) +//===----------------------------------------------------------------------===// + +enum ucsan_event_type { + EVENT_LAZY_INIT = 100, + EVENT_USAGE_CITE = 101, + EVENT_EXTENSION = 102, +}; + +//===----------------------------------------------------------------------===// +// UCSan Operations (subset of LLVM opcodes needed for pointer tracking) +//===----------------------------------------------------------------------===// + +enum ucsan_op : uint16_t { + OP_NONE = 0, + OP_LOAD = 32, + OP_STORE = 33, + OP_GEP = 34, + OP_BITCAST = 47, + OP_INTTOPTR = 50, + OP_PTRTOINT = 51, + + // UCSan-specific operations + OP_FREE = 100, + OP_ALLOCA = 101, + OP_EXTERNAL = 102, // external/symbolic pointer + OP_INITP = 103, // initialized pointer + OP_RESERVED_OBJ = 104, // reserved object label + OP_DUMMY = 105, // dummy label for constant pointers +}; + +//===----------------------------------------------------------------------===// +// UCSan Runtime State +//===----------------------------------------------------------------------===// + +// UCSan configuration flags (defined via ucsan_flags.inc) +struct UCSanFlags { +#define UCSAN_FLAG(Type, Name, DefaultValue, Description) Type Name; +#include "ucsan_flags.inc" +#undef UCSAN_FLAG + + void SetDefaults(); +}; + +// Global UCSan state +extern ucsan_input ucsan_tainted; +extern UCSanFlags ucsan_flags_data; +extern bool ucsan_debug; + +// Access flags +inline UCSanFlags& ucsan_flags() { + return ucsan_flags_data; +} + +//===----------------------------------------------------------------------===// +// UCSan Label Management +//===----------------------------------------------------------------------===// + +// Get label info for a given label +ucsan_label_info* get_label_info(ucsan_label label); + +// Allocate a new label +ucsan_label allocate_label(); + +// Check if label is valid +void check_label(ucsan_label label); + +//===----------------------------------------------------------------------===// +// UCSan Helper Functions +//===----------------------------------------------------------------------===// + +// Object lookup result +struct object_info { + ucsan_label label; + uint64_t offset; +}; + +// Look up or create an object for a given pointer label +UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr, uint32_t *ret_object_id = nullptr); + +// Create a label from the super object (object 0) +object_info create_label_from_super_object(size_t size, bool is_pointer = false); + +// Allocate memory with safe gap for pseudo-pointer resolution +void* customized_malloc(uint64_t size); + +// Check if pointer is within data/bss section +bool in_data_section(void *p); +bool in_bss_section(void *p); + +} // namespace __ucsan + +//===----------------------------------------------------------------------===// +// UCSan Public Interface (C linkage) +//===----------------------------------------------------------------------===// + +extern "C" { + +// UCSan TLS variables for argument/return value passing +#define UCSAN_TLS_SIZE 800 +extern SANITIZER_INTERFACE_ATTRIBUTE THREADLOCAL __ucsan::ucsan_label + __ucsan_retval_tls[UCSAN_TLS_SIZE / sizeof(__ucsan::ucsan_label)]; +extern SANITIZER_INTERFACE_ATTRIBUTE THREADLOCAL __ucsan::ucsan_label + __ucsan_arg_tls[UCSAN_TLS_SIZE / sizeof(__ucsan::ucsan_label)]; +extern SANITIZER_INTERFACE_ATTRIBUTE THREADLOCAL uint8_t + __ucsan_wrapped_return_tls[UCSAN_TLS_SIZE]; + +// Flag for null dereference checking +extern void* __ucsan_null_deref_flag; + +//===----------------------------------------------------------------------===// +// Core UCSan Functions +//===----------------------------------------------------------------------===// + +// Check and resolve a pointer (main UCSan entry point) +// Handles lazy object initialization and pseudo-pointer resolution +// @param p: the pointer to check +// @param label: the ucsan label for the pointer +// @param size: access size in bytes +// @param dereferencing: true if this is a dereference (load/store) +// @return: resolved real pointer (may differ from p for pseudo-pointers) +SANITIZER_INTERFACE_ATTRIBUTE +void* ucsan_check_pointer(void* p, __ucsan::ucsan_label label, size_t size, bool dereferencing); + +// Check pointer argument for use-before-initialization +SANITIZER_INTERFACE_ATTRIBUTE +void ucsan_check_ptr_arg(__ucsan::ucsan_label *label, uint32_t arg_index, void* ret_addr); + +// Load shadow for pointer type +SANITIZER_INTERFACE_ATTRIBUTE +__ucsan::ucsan_label ucsan_load_pointer_shadow(__ucsan::ucsan_label *ls, uint64_t n, bool is_pointer); + +// Store shadow for pointer type +SANITIZER_INTERFACE_ATTRIBUTE +void ucsan_store_pointer_shadow(__ucsan::ucsan_label l, __ucsan::ucsan_label *ls, uint64_t n); + +// Set label for a memory region +// @param label: the label to set +// @param addr: start address of the memory region +// @param size: size of the memory region in bytes +SANITIZER_INTERFACE_ATTRIBUTE +void ucsan_set_label(__ucsan::ucsan_label label, void *addr, uint64_t size); + +// Set symbolic label for function arguments at entry point +// @param index: argument index +// @param size_in_bits: size of argument in bits +// @param is_pointer: true if argument is a pointer +// @param given: concrete value if no seed data available +// @return: concrete value to use (from seed or given) +SANITIZER_INTERFACE_ATTRIBUTE +void* ucsan_set_label_for_args(uint32_t index, uint32_t size_in_bits, uint8_t is_pointer, uint64_t given); + +// Resign shadow for an object +// Called when passing pointer to external/uninstrumented code +// @param ptr: pointer to the object +// @param orig_label: pointer to the label for ptr +// @param n: size of the object in bytes +// @param ret_addr: return address for tracing +// @return: label representing the object +SANITIZER_INTERFACE_ATTRIBUTE +__ucsan::ucsan_label ucsan_resign_shadow(void *ptr, __ucsan::ucsan_label *orig_label, uint64_t n, void *ret_addr); + +// Wrap return value with symbolic label +// @param size: size in bits +// @param ret_label: output label for return value +// @param is_ptr: true if return value is a pointer +// @param ret_addr: return address for tracing +// @return: pointer to buffer with concrete return value +SANITIZER_INTERFACE_ATTRIBUTE +void* ucsan_wrap_retval(uint64_t size, __ucsan::ucsan_label *ret_label, bool is_ptr, void* ret_addr); + +//===----------------------------------------------------------------------===// +// UCSan Initialization +//===----------------------------------------------------------------------===// + +// Initialize UCSan runtime +SANITIZER_INTERFACE_ATTRIBUTE +void ucsan_init(); + +// Finalize UCSan runtime +SANITIZER_INTERFACE_ATTRIBUTE +void ucsan_fini(); + +// Initialize UCSan input from file +SANITIZER_INTERFACE_ATTRIBUTE +void ucsan_init_input(const char *filename); + +} // extern "C" + +//===----------------------------------------------------------------------===// +// Debug Output Macro +//===----------------------------------------------------------------------===// + +#define UCSAN_OUT(...) \ + do { \ + if (__ucsan::ucsan_debug) { \ + Printf("[UCSAN] (%s:%d) ", __FUNCTION__, __LINE__); \ + Printf(__VA_ARGS__); \ + } \ + } while(false) + +#endif // UCSAN_H diff --git a/runtime/dfsan/ucsan_abilist.txt b/runtime/dfsan/ucsan_abilist.txt new file mode 100644 index 00000000..ad54ac9b --- /dev/null +++ b/runtime/dfsan/ucsan_abilist.txt @@ -0,0 +1,42 @@ +# UCSan ABI list - custom functions for under-constrained execution + +# Memory allocation functions (need to track shadow) +fun:aligned_alloc=custom +fun:calloc=custom +fun:free=custom +fun:malloc=custom +fun:memalign=custom +fun:posix_memalign=custom +fun:pvalloc=custom +fun:realloc=custom +fun:reallocarray=custom +fun:valloc=custom + +# libc internal versions +fun:__libc_calloc=custom +fun:__libc_free=custom +fun:__libc_malloc=custom +fun:__libc_memalign=custom +fun:__libc_pvalloc=custom +fun:__libc_realloc=custom +fun:__libc_reallocarray=custom +fun:__libc_valloc=custom + +# String and memory functions +fun:memcpy=custom +fun:memmove=custom +fun:memset=custom + +# kernel +fun:kmalloc_large=custom +fun:__kmalloc=custom +fun:kmalloc=custom +fun:panic=custom +fun:_copy_from_user=custom +fun:printk=uninstrumented +fun:printk=discard +fun:_copy_to_user=uninstrumented +fun:_copy_to_user=discard + +# buffer size +fun:_copy_from_user=size3 \ No newline at end of file diff --git a/runtime/dfsan/ucsan_custom.cpp b/runtime/dfsan/ucsan_custom.cpp new file mode 100644 index 00000000..d9a9b869 --- /dev/null +++ b/runtime/dfsan/ucsan_custom.cpp @@ -0,0 +1,280 @@ +// UCSan custom function wrappers for standalone mode +// Provides minimal malloc/free wrappers with bounds tracking + +#include "sanitizer_common/sanitizer_internal_defs.h" +#include "sanitizer_common/sanitizer_common.h" +#include "ucsan_platform.h" +#include "ucsan.h" + +using namespace __sanitizer; +using namespace __ucsan; + +// External symbols for real libc functions +extern "C" { + void *__libc_malloc(uptr size); + void *__libc_calloc(uptr nmemb, uptr size); + void *__libc_realloc(void *ptr, uptr size); + void __libc_free(void *ptr); + void *__libc_memalign(uptr alignment, uptr size); + void *__libc_valloc(uptr size); + void *__libc_pvalloc(uptr size); + int posix_memalign(void **memptr, uptr alignment, uptr size); + + // SymSan bridge functions (weak stubs in ucsan.cpp, strong in dfsan.cpp) + void __taint_copy_shadow(void *dst, void *src, u64 size); + void __taint_move_shadow(void *dst, void *src, u64 size); + void __taint_set_label(u32 label, void *addr, u64 size); +} + +// Simple passthrough wrappers for malloc family +// In standalone UCSan mode, we don't track taint, just provide the symbols + +extern "C" { + +// Helper to create an alloca-style bounds label for heap allocations +// Also sets shadow memory to kUninitializedLabel for UBI detection +static ucsan_label create_alloca_label(void *ptr, uptr size) { + ucsan_label label = allocate_label(); + check_label(label); + + ucsan_label_info *info = get_label_info(label); + ucsan_obj_info *obj = to_obj_info(info); + + obj->op = OP_ALLOCA; + obj->_reserved = 0; + obj->object_id = 0; // Not tracked in objects array + obj->real_ptr = ptr; + obj->lower_bound = 0; // No bytes before base + obj->upper_bound = (u32)size; // Size in bytes + + // Set shadow memory to kUninitializedLabel for UBI detection + ucsan_label *shadow = ucsan_shadow_for(ptr); + for (uptr i = 0; i < size; i++) { + shadow[i] = kUninitializedLabel; + } + + return label; +} + +__attribute__((visibility("default"))) +void *__dfsw_malloc(uptr size, u16 size_label, u16 *ret_label) { + void *ret = __libc_malloc(size); + if (ret) { + // Create bounds label (sets shadow to kUninitializedLabel for UBI) + *ret_label = create_alloca_label(ret, size); + } else { + *ret_label = UCSAN_CONST_LABEL; + } + return ret; +} + +__attribute__((visibility("default"))) +void *__dfsw_kmalloc_large(uptr size, u32 unused, u16 size_label, u16 unused2, + u16 *ret_label) { + return __dfsw_malloc(size, size_label, ret_label); +} + +__attribute__((visibility("default"))) +void *__dfsw___kmalloc(uptr size, u32 unused1, u16 size_label, u16 unused2, + u16 *ret_label) { + return __dfsw_malloc(size, size_label, ret_label); +} + +__attribute__((visibility("default"))) +void *__dfsw_kmalloc(uptr size, u32 unused1, u16 size_label, u16 unused2, + u16 *ret_label) { + return __dfsw_malloc(size, size_label, ret_label); +} + +__attribute__((visibility("default"))) +void *__dfsw_calloc(uptr nmemb, uptr size, u16 nmemb_label, u16 size_label, u16 *ret_label) { + void *ret = __libc_calloc(nmemb, size); + uptr total_size = nmemb * size; + if (ret) { + // Create bounds label (sets shadow to kUninitializedLabel for UBI) + // (calloc zeros memory, but we still want to detect reads before writes) + *ret_label = create_alloca_label(ret, total_size); + } else { + *ret_label = UCSAN_CONST_LABEL; + } + return ret; +} + +__attribute__((visibility("default"))) +void *__dfsw_realloc(void *ptr, uptr size, u16 ptr_label, u16 size_label, u16 *ret_label) { + // If ptr has an alloca label, mark it as freed + if (ptr && ptr_label > UCSAN_CONST_LABEL) { + ucsan_label_info *old_info = get_label_info(ptr_label); + if (old_info->common.op == OP_ALLOCA) { + old_info->common.op = OP_FREE; // Mark old buffer as freed + } + } + + void *ret = __libc_realloc(ptr, size); + if (ret) { + // Create bounds label (sets shadow to kUninitializedLabel for UBI) + *ret_label = create_alloca_label(ret, size); + } else { + *ret_label = UCSAN_CONST_LABEL; + } + return ret; +} + +__attribute__((visibility("default"))) +void __dfsw_free(void *ptr, u16 ptr_label) { + // Mark buffer as freed for UAF detection + if (ptr && ptr_label > UCSAN_CONST_LABEL) { + ucsan_label_info *info = get_label_info(ptr_label); + if (info->common.op == OP_ALLOCA) { + info->common.op = OP_FREE; + } + } + __libc_free(ptr); +} + +__attribute__((visibility("default"))) +void *__dfsw_memalign(uptr alignment, uptr size, u16 alignment_label, u16 size_label, u16 *ret_label) { + void *ret = __libc_memalign(alignment, size); + if (ret) { + // Create bounds label (sets shadow to kUninitializedLabel for UBI) + *ret_label = create_alloca_label(ret, size); + } else { + *ret_label = UCSAN_CONST_LABEL; + } + return ret; +} + +__attribute__((visibility("default"))) +void *__dfsw_aligned_alloc(uptr alignment, uptr size, u16 alignment_label, u16 size_label, u16 *ret_label) { + void *ret = __libc_memalign(alignment, size); + if (ret) { + // Create bounds label (sets shadow to kUninitializedLabel for UBI) + *ret_label = create_alloca_label(ret, size); + } else { + *ret_label = UCSAN_CONST_LABEL; + } + return ret; +} + +__attribute__((visibility("default"))) +void *__dfsw_valloc(uptr size, u16 size_label, u16 *ret_label) { + void *ret = __libc_valloc(size); + if (ret) { + // Create bounds label (sets shadow to kUninitializedLabel for UBI) + *ret_label = create_alloca_label(ret, size); + } else { + *ret_label = UCSAN_CONST_LABEL; + } + return ret; +} + +__attribute__((visibility("default"))) +void *__dfsw_pvalloc(uptr size, u16 size_label, u16 *ret_label) { + void *ret = __libc_pvalloc(size); + if (ret) { + // Create bounds label (sets shadow to kUninitializedLabel for UBI) + *ret_label = create_alloca_label(ret, size); + } else { + *ret_label = UCSAN_CONST_LABEL; + } + return ret; +} + +__attribute__((visibility("default"))) +int __dfsw_posix_memalign(void **memptr, uptr alignment, uptr size, + u16 memptr_label, u16 alignment_label, u16 size_label, + u16 *ret_label) { + int result = posix_memalign(memptr, alignment, size); + if (result == 0 && *memptr) { + *ret_label = UCSAN_CONST_LABEL; // Return value is int, no pointer label + // Create bounds label (sets shadow to kUninitializedLabel for UBI) + ucsan_label alloca_label = create_alloca_label(*memptr, size); + ucsan_label *shadow = ucsan_shadow_for(memptr); + *shadow = alloca_label; // Label for the pointer itself + } else { + *ret_label = UCSAN_CONST_LABEL; + } + return result; +} + +// Wrappers for __libc versions - delegate to main wrappers for bounds tracking + +__attribute__((visibility("default"))) +void *__dfsw___libc_malloc(uptr size, u16 size_label, u16 *ret_label) { + return __dfsw_malloc(size, size_label, ret_label); +} + +__attribute__((visibility("default"))) +void *__dfsw___libc_calloc(uptr nmemb, uptr size, u16 nmemb_label, u16 size_label, u16 *ret_label) { + return __dfsw_calloc(nmemb, size, nmemb_label, size_label, ret_label); +} + +__attribute__((visibility("default"))) +void *__dfsw___libc_realloc(void *ptr, uptr size, u16 ptr_label, u16 size_label, u16 *ret_label) { + return __dfsw_realloc(ptr, size, ptr_label, size_label, ret_label); +} + +__attribute__((visibility("default"))) +void __dfsw___libc_free(void *ptr, u16 ptr_label) { + __dfsw_free(ptr, ptr_label); +} + +__attribute__((visibility("default"))) +void *__dfsw___libc_memalign(uptr alignment, uptr size, u16 alignment_label, u16 size_label, u16 *ret_label) { + return __dfsw_memalign(alignment, size, alignment_label, size_label, ret_label); +} + +__attribute__((visibility("default"))) +void *__dfsw___libc_valloc(uptr size, u16 size_label, u16 *ret_label) { + return __dfsw_valloc(size, size_label, ret_label); +} + +__attribute__((visibility("default"))) +void *__dfsw___libc_pvalloc(uptr size, u16 size_label, u16 *ret_label) { + return __dfsw_pvalloc(size, size_label, ret_label); +} + +__attribute__((visibility("default"))) +void *__dfsw_memcpy(void *dest, const void *src, uptr n, + u16 dest_label, u16 src_label, u16 n_label, u16 *ret_label) { + *ret_label = dest_label; + // Copy UCSan shadow memory from src to dest + ucsan_label *sdest = ucsan_shadow_for(dest); + const ucsan_label *ssrc = ucsan_shadow_for(src); + internal_memcpy((void *)sdest, (const void *)ssrc, n * sizeof(ucsan_label)); + // Bridge to SymSan: copy SymSan shadow memory + __taint_copy_shadow(dest, (void *)src, n); + // Copy actual data + return internal_memcpy(dest, src, n); +} + +__attribute__((visibility("default"))) +void *__dfsw_memmove(void *dest, const void *src, uptr n, + u16 dest_label, u16 src_label, u16 n_label, u16 *ret_label) { + *ret_label = dest_label; + ucsan_label *sdest = ucsan_shadow_for(dest); + const ucsan_label *ssrc = ucsan_shadow_for(src); + internal_memmove((void *)sdest, (const void *)ssrc, n * sizeof(ucsan_label)); + // Bridge to SymSan: move SymSan shadow memory (handles overlapping regions) + __taint_move_shadow(dest, (void *)src, n); + void *ret = internal_memmove(dest, src, n); + return ret; +} + +__attribute__((visibility("default"))) +void *__dfsw_memset(void *s, int c, uptr n, + u16 s_label, u16 c_label, u16 n_label, u16 *ret_label) { + *ret_label = s_label; + // Set actual memory + internal_memset(s, c, n); + // Set UCSan shadow memory - propagate c_label to all bytes + ucsan_label *shadow = ucsan_shadow_for(s); + for (uptr i = 0; i < n; i++) { + shadow[i] = c_label; + } + // Bridge to SymSan: set SymSan shadow memory + __taint_set_label(c_label, s, n); + return s; +} + +} // extern "C" diff --git a/runtime/dfsan/ucsan_exit_reason.h b/runtime/dfsan/ucsan_exit_reason.h new file mode 100644 index 00000000..4505631e --- /dev/null +++ b/runtime/dfsan/ucsan_exit_reason.h @@ -0,0 +1,18 @@ +enum exit_reason { + /* internal */ + REASON_LOOP_OOB = 123, + REASON_OBJ_OOB = 124, + REASON_STACK_OOB = 125, + + /* checker */ + CHECKER_UBI = 150, EVENT_UBI = 150, + EVENT_UAF = 151, + EVENT_OOB = 152, + EVENT_NULL_DEREF = 153, + + CHECKER_OOB = 160, + CHECKER_OOB_UPCAST = 161, + + CHECKER_UAR = 170, + EVENT_PANIC = 171, +}; diff --git a/runtime/dfsan/ucsan_flags.inc b/runtime/dfsan/ucsan_flags.inc new file mode 100644 index 00000000..bdd5a5a7 --- /dev/null +++ b/runtime/dfsan/ucsan_flags.inc @@ -0,0 +1,37 @@ +//===-- ucsan_flags.inc -----------------------------------------*- C++ -*-===// +// +// UCSan runtime flags. +// +//===----------------------------------------------------------------------===// +// +// UCSan runtime flags are defined here using the UCSAN_FLAG macro. +// +//===----------------------------------------------------------------------===// + +#ifndef UCSAN_FLAG +#error "Define UCSAN_FLAG prior to including this file!" +#endif + +UCSAN_FLAG(bool, debug, false, + "Enable debug output for UCSan runtime.") + +UCSAN_FLAG(bool, trace_object, false, + "Trace object lazy initializations.") + +UCSAN_FLAG(bool, checker_nullderef, false, + "Check for null pointer dereferences.") + +UCSAN_FLAG(bool, no_upcast, false, + "Disallow upcast (negative offset in container_of).") + +UCSAN_FLAG(bool, trace_bounds, false, + "Enable bounds tracking and exit on OOB/UAF detection.") + +UCSAN_FLAG(bool, no_enlarge, false, + "Disallow object enlargement beyond initial size.") + +UCSAN_FLAG(int, max_obj_size, 1 << 20, + "Maximum object size for lazy initialization.") + +UCSAN_FLAG(const char *, input_file, "", + "Input file containing seed objects.") diff --git a/runtime/dfsan/ucsan_platform.h b/runtime/dfsan/ucsan_platform.h new file mode 100644 index 00000000..5be8313b --- /dev/null +++ b/runtime/dfsan/ucsan_platform.h @@ -0,0 +1,93 @@ +//===-- ucsan_platform.h - UCSan Platform Definitions ----------*- C++ -*-===// +// +// UCSan shadow memory and platform-specific definitions (x86_64 only). +// +// UCSan uses 2-byte (16-bit) labels for pointer/object tracking. +// This is separate from SymSan/DFSan which uses 4-byte labels. +// +// Shadow computation: +// ucsan_shadow = ((ptr & ShadowMask) << 1) + kShadowBase +// +// Layout: shadow first, then union table (no hash table needed). +// +//===----------------------------------------------------------------------===// + +#ifndef UCSAN_PLATFORM_H +#define UCSAN_PLATFORM_H + +#include "defs.h" +#include "sanitizer_common/sanitizer_internal_defs.h" + +using __sanitizer::uptr; + +namespace __ucsan { + +//===----------------------------------------------------------------------===// +// UCSan Label Type (16-bit) +//===----------------------------------------------------------------------===// + +typedef u16 ucsan_label; + +#define UCSAN_LABEL_MAX 0xFFFF +#define UCSAN_CONST_LABEL 0 +#define UCSAN_CONST_OFFSET 1 + +//===----------------------------------------------------------------------===// +// Memory Layout for UCSan on Linux/x86_64 +//===----------------------------------------------------------------------===// +// +// SymSan/DFSan layout (unchanged): +// Shadow: 0x000000010000 (4-byte labels) +// HashTable: 0x400000000000 +// UnionTable: 0x400100000000 +// +// UCSan layout (separate, 2-byte labels): +// Shadow: 0x480000000000 (2TB, ends at 0x680000000000) +// UnionTable: 0x680000000000 +// +// App: 0x700000040000 - 0x800000000000 +// + +static const uptr kShadowBase = 0x480000000000ULL; +static const uptr kUnionTableAddr = 0x680000000000ULL; +static const uptr kAppAddr = 0x700000040000ULL; +static const uptr kAppBaseAddr = 0x700000000000ULL; +static const uptr kShadowMask = ~0x700000000000ULL; + +// With 16-bit labels, max 65536 labels +// Each label_info is 24 bytes, so max size = 65536 * 24 = 1.5MB +// Allocate 4MB for safety +static const uptr kUnionTableSize = 0x400000ULL; + +//===----------------------------------------------------------------------===// +// Accessors +//===----------------------------------------------------------------------===// + +inline uptr ShadowBase() { return kShadowBase; } +inline uptr UnionTableAddr() { return kUnionTableAddr; } +inline uptr AppAddr() { return kAppAddr; } +inline uptr AppBaseAddr() { return kAppBaseAddr; } +inline uptr ShadowMask() { return kShadowMask; } +inline uptr UnusedAddr() { return kUnionTableAddr + kUnionTableSize; } + +//===----------------------------------------------------------------------===// +// Shadow Memory Access (2-byte labels, shift by 1) +//===----------------------------------------------------------------------===// + +// ucsan_shadow = ((ptr & ShadowMask) << 1) + ShadowBase +inline ucsan_label* ucsan_shadow_for(void *ptr) { + return (ucsan_label*)(((((uptr)ptr) & kShadowMask) << 1) + kShadowBase); +} + +inline ucsan_label* ucsan_shadow_for(const void *ptr) { + return ucsan_shadow_for(const_cast(ptr)); +} + +inline void* ucsan_app_for(const ucsan_label *l) { + uptr shadow_offset = ((uptr)l) - kShadowBase; + return (void*)((shadow_offset >> 1) | kAppBaseAddr); +} + +} // namespace __ucsan + +#endif // UCSAN_PLATFORM_H From e5a1c5af7bab351dbc1165b42ee1c7cb64b606f7 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 20 Jan 2026 13:19:28 -0800 Subject: [PATCH 008/139] import thoroupy backend --- backend/CMakeLists.txt | 17 +- backend/fastgen.cpp | 101 +++----- backend/solver_common.cpp | 78 ++++++ backend/solver_common.h | 52 ++++ backend/thoroupy.cpp | 392 ++++++++++++++++++++++++++++++ driver/fgtest.cpp | 6 +- runtime/dfsan/CMakeLists.txt | 2 +- runtime/dfsan/dfsan.cpp | 27 +- runtime/dfsan/dfsan.h | 11 +- runtime/dfsan/dfsan_flags.inc | 7 +- runtime/dfsan/ucsan.cpp | 117 +++++---- runtime/dfsan/ucsan.h | 11 +- runtime/dfsan/ucsan_exit_reason.h | 6 +- solvers/z3.cpp | 4 +- 14 files changed, 692 insertions(+), 139 deletions(-) create mode 100644 backend/solver_common.cpp create mode 100644 backend/solver_common.h create mode 100644 backend/thoroupy.cpp diff --git a/backend/CMakeLists.txt b/backend/CMakeLists.txt index d1a65ec7..e1094ec7 100644 --- a/backend/CMakeLists.txt +++ b/backend/CMakeLists.txt @@ -1,11 +1,20 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O3 -Wno-format") -add_library(Fastgen STATIC fastgen.cpp) -target_compile_options(Fastgen PRIVATE -stdlib=libc++) +# Fastgen backend (dfsan symbolic execution + out-of-process solving) +add_library(Fastgen STATIC fastgen.cpp solver_common.cpp) target_include_directories(Fastgen PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../runtime + ${CMAKE_CURRENT_SOURCE_DIR} ) -install (TARGETS Fastgen DESTINATION ${SYMSAN_LIB_DIR}) + +# Thoroupy backend (ucsan under-constrained execution + fastgen dfsan callbacks) +add_library(Thoroupy STATIC thoroupy.cpp fastgen.cpp solver_common.cpp) +target_include_directories(Thoroupy PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/../runtime + ${CMAKE_CURRENT_SOURCE_DIR} +) + +install (TARGETS Fastgen Thoroupy DESTINATION ${SYMSAN_LIB_DIR}) diff --git a/backend/fastgen.cpp b/backend/fastgen.cpp index abe3be7c..dfbfda15 100644 --- a/backend/fastgen.cpp +++ b/backend/fastgen.cpp @@ -16,65 +16,7 @@ */ -#include "sanitizer_common/sanitizer_common.h" -#include "sanitizer_common/sanitizer_file.h" -#include "sanitizer_common/sanitizer_posix.h" -#include "dfsan/dfsan.h" - -using namespace __dfsan; - -static uint32_t __instance_id; -static uint32_t __session_id; -static int __pipe_fd; - -// filter? -SANITIZER_INTERFACE_ATTRIBUTE THREADLOCAL uint32_t __taint_trace_callstack; - -static inline void __solve_cond(dfsan_label label, uint8_t result, - uint8_t add_nested, uint8_t loop_flag, - uint32_t cid, void *addr) { - - if (__pipe_fd < 0) - return; - - uint16_t flags = 0; - if (add_nested) flags |= F_ADD_CONS; - - // set the loop flags according to branching results - switch (loop_flag) { - case TrueBranchLoopExit: - flags |= result ? F_LOOP_EXIT : F_LOOP_LATCH; - break; - case TrueBranchLoopLatch: - flags |= result ? F_LOOP_LATCH : F_LOOP_EXIT; - break; - case FalseBranchLoopExit: - flags |= result ? F_LOOP_LATCH : F_LOOP_EXIT; - break; - case FalseBranchLoopLatch: - flags |= result ? F_LOOP_EXIT : F_LOOP_LATCH; - break; - default: - // No loop flag or unrecognized flag, do nothing - break; - } - - // send info - pipe_msg msg = { - .msg_type = cond_type, - .flags = flags, - .instance_id = __instance_id, - .addr = (uptr)addr, - .context = __taint_trace_callstack, - .id = cid, - .label = label, - .result = result - }; - - if (internal_write(__pipe_fd, &msg, sizeof(msg)) < 0) { - Die(); - } -} +#include "solver_common.h" static inline void __send_ubi(dfsan_label label, uint64_t result, uint32_t cid, void *addr) { @@ -140,7 +82,7 @@ __taint_trace_cmp(dfsan_label op1, dfsan_label op2, uint32_t size, __switch_true_case.cid = cid; } else { // solve without add_nested - __solve_cond(temp, r, 0, 0, cid, addr); + __taint_send_cond(temp, r, 0, 0, cid, addr); } } @@ -160,7 +102,7 @@ __taint_trace_switch_end(uint32_t cid) { __switch_true_case.label, cid, addr); // solve the true case - __solve_cond(__switch_true_case.label, 1, 1, 0, cid, addr); + __taint_send_cond(__switch_true_case.label, 1, 1, 0, cid, addr); __switch_true_case.label = 0; } @@ -190,7 +132,7 @@ __taint_trace_cond(dfsan_label label, bool r, uint8_t flag, uint32_t cid) { uint8_t loop_flag = flag & LoopFlagMask; // always add nested - __solve_cond(label, r, add_nested, loop_flag, cid, addr); + __taint_send_cond(label, r, add_nested, loop_flag, cid, addr); } extern "C" SANITIZER_INTERFACE_ATTRIBUTE dfsan_label @@ -217,18 +159,18 @@ __taint_trace_select(dfsan_label cond_label, dfsan_label true_label, if (true_label != 0 && false_op == 0) { dfsan_label land = dfsan_union(cond_label, true_label, And, 1, r, true_op); uint8_t lr = (r && true_op) ? 1 : 0; - __solve_cond(land, lr, 1, 0, cid, addr); + __taint_send_cond(land, lr, 1, 0, cid, addr); return land; } else if (false_label != 0 && true_op == 1) { // logical OR: select cond, true, label dfsan_label lor = dfsan_union(cond_label, false_label, Or, 1, r, false_op); uint8_t lr = (r || false_op) ? 1 : 0; - __solve_cond(lor, lr, 1, 0, cid, addr); + __taint_send_cond(lor, lr, 1, 0, cid, addr); return lor; } else { // normal select? AOUT("normal select?!\n"); - __solve_cond(cond_label, r, 1, 0, cid, addr); + __taint_send_cond(cond_label, r, 1, 0, cid, addr); return r ? true_label : false_label; } } @@ -307,6 +249,32 @@ __taint_trace_gep(dfsan_label ptr_label, uint64_t ptr, extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __taint_trace_offset(dfsan_label offset_label, s64 offset, unsigned size) { + // use add_constraint_type to send offset constraints + if (offset_label == 0) + return; + + void *addr = __builtin_return_address(0); + + AOUT("tainted offset: %ld = %d, size: %u @%p\n", + offset, offset_label, size, addr); + + if (__pipe_fd < 0) + return; + + pipe_msg msg = { + .msg_type = add_constraint_type, + .flags = 0, + .instance_id = __instance_id, + .addr = (uptr)addr, + .context = __taint_trace_callstack, + .label = offset_label, // just in case + .result = (uint64_t)offset + }; + + if (internal_write(__pipe_fd, &msg, sizeof(msg)) < 0) { + Die(); + } + return; } @@ -403,8 +371,9 @@ __taint_trace_memerr(dfsan_label ptr_label, uptr ptr, dfsan_label size_label, } } -extern "C" void InitializeSolver() { +extern "C" void InitializeSymSanSolver() { __instance_id = flags().instance_id; __session_id = flags().session_id; __pipe_fd = flags().pipe_fd; + __control_pipe_fd = flags().control_pipe_fd; } diff --git a/backend/solver_common.cpp b/backend/solver_common.cpp new file mode 100644 index 00000000..c85b50f9 --- /dev/null +++ b/backend/solver_common.cpp @@ -0,0 +1,78 @@ +/* + Common code shared between fastgen and thoroupy solvers. + + ------------------------------------------------ + + Written by Chengyu Song and + Ju Chen + + Copyright 2021-2025 UC Riverside. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at: + + http://www.apache.org/licenses/LICENSE-2.0 + + */ + +#include "solver_common.h" + +//===----------------------------------------------------------------------===// +// Shared Global State +//===----------------------------------------------------------------------===// + +uint32_t __instance_id; +uint32_t __session_id; +int __pipe_fd; +int __control_pipe_fd; + +//===----------------------------------------------------------------------===// +// Shared Helper Functions +//===----------------------------------------------------------------------===// + +void __taint_send_cond(dfsan_label label, uint8_t result, + uint8_t add_nested, uint8_t loop_flag, + uint32_t cid, void *addr) { + + if (__pipe_fd < 0) + return; + + uint16_t flags = 0; + if (add_nested) flags |= F_ADD_CONS; + + // set the loop flags according to branching results + switch (loop_flag) { + case TrueBranchLoopExit: + flags |= result ? F_LOOP_EXIT : F_LOOP_LATCH; + break; + case TrueBranchLoopLatch: + flags |= result ? F_LOOP_LATCH : F_LOOP_EXIT; + break; + case FalseBranchLoopExit: + flags |= result ? F_LOOP_LATCH : F_LOOP_EXIT; + break; + case FalseBranchLoopLatch: + flags |= result ? F_LOOP_EXIT : F_LOOP_LATCH; + break; + default: + // No loop flag or unrecognized flag, do nothing + break; + } + + // send info + pipe_msg msg = { + .msg_type = cond_type, + .flags = flags, + .instance_id = __instance_id, + .addr = (uptr)addr, + .context = __taint_trace_callstack, + .id = cid, + .label = label, + .result = result + }; + + if (internal_write(__pipe_fd, &msg, sizeof(msg)) < 0) { + Die(); + } +} diff --git a/backend/solver_common.h b/backend/solver_common.h new file mode 100644 index 00000000..a1cc3f06 --- /dev/null +++ b/backend/solver_common.h @@ -0,0 +1,52 @@ +/* + Common code shared between fastgen and thoroupy solvers. + + ------------------------------------------------ + + Written by Chengyu Song and + Ju Chen + + Copyright 2021-2025 UC Riverside. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at: + + http://www.apache.org/licenses/LICENSE-2.0 + + */ + +#ifndef SOLVER_COMMON_H +#define SOLVER_COMMON_H + +#include "sanitizer_common/sanitizer_common.h" +#include "sanitizer_common/sanitizer_file.h" +#include "sanitizer_common/sanitizer_posix.h" +#include "dfsan/dfsan.h" + +using namespace __dfsan; + +//===----------------------------------------------------------------------===// +// Shared Global State +//===----------------------------------------------------------------------===// + +extern uint32_t __instance_id; +extern uint32_t __session_id; +extern int __pipe_fd; +extern int __control_pipe_fd; + +// filter, defined in dfsan.cpp +extern SANITIZER_INTERFACE_ATTRIBUTE THREADLOCAL uint32_t __taint_trace_callstack; + +//===----------------------------------------------------------------------===// +// Shared Helper Functions +//===----------------------------------------------------------------------===// + +// Note: get_const_result() is defined in dfsan.h + +// Send conditional branch info to solver +void __taint_send_cond(dfsan_label label, uint8_t result, + uint8_t add_nested, uint8_t loop_flag, + uint32_t cid, void *addr); + +#endif // SOLVER_COMMON_H diff --git a/backend/thoroupy.cpp b/backend/thoroupy.cpp new file mode 100644 index 00000000..f1ce35b3 --- /dev/null +++ b/backend/thoroupy.cpp @@ -0,0 +1,392 @@ +/* + The code is for out-of-process constraints solving with thoroupy. + + ------------------------------------------------ + + Written by Chengyu Song + Ju Chen and + Mingjun Yin + + Copyright 2021-2026 UC Riverside. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at: + + http://www.apache.org/licenses/LICENSE-2.0 + + */ + +#include "solver_common.h" +#include "dfsan/ucsan.h" +#include +#include +#include +#include +#include +#include +#include + +#define __handle_segfualt__ +#define LOOP_COUNTER_SIZE 1024 + +using namespace __dfsan; +using __ucsan::ucsan_tainted; +using __ucsan::ucsan_flags; + +struct ucsan_ticket { + u32 msg_type; + u32 instance_id; + u32 session_id; + u64 payload_size; + u8 payload[0]; +} __attribute__((packed)); + +static int __loop_threshold = 20; +int __stack_threshold = 20; +static uint32_t __loop_counter[LOOP_COUNTER_SIZE]; +static uint32_t __loop_bid[LOOP_COUNTER_SIZE]; +static int __current_loop_depth = 0; +static int __previous_loop_depth = 0; +static int __loop_depth_stack_current[LOOP_COUNTER_SIZE]; +static int __loop_depth_stack_base[LOOP_COUNTER_SIZE]; +static int __loop_depth_stack_previous[LOOP_COUNTER_SIZE]; +static int __loop_depth_stack_top = 0; +static int __base_loop_depth = 0; + +extern void* __ucsan_null_deref_flag; + +// based on https://github.com/Cyan4973/xxHash +// simplified since we only have 12 bytes info +static inline uint32_t xxhash(uint32_t h1, uint32_t h2, uint32_t h3) { + const uint32_t PRIME32_1 = 2654435761U; + const uint32_t PRIME32_2 = 2246822519U; + const uint32_t PRIME32_3 = 3266489917U; + const uint32_t PRIME32_4 = 668265263U; + const uint32_t PRIME32_5 = 374761393U; + + #define XXH_rotl32(x,r) ((x << r) | (x >> (32 - r))) + uint32_t h32 = PRIME32_5; + h32 += h1 * PRIME32_3; + h32 = XXH_rotl32(h32, 17) * PRIME32_4; + h32 += h2 * PRIME32_3; + h32 = XXH_rotl32(h32, 17) * PRIME32_4; + h32 += h3 * PRIME32_3; + h32 = XXH_rotl32(h32, 17) * PRIME32_4; + #undef XXH_rotl32 + + h32 ^= h32 >> 15; + h32 *= PRIME32_2; + h32 ^= h32 >> 13; + h32 *= PRIME32_3; + h32 ^= h32 >> 16; + + return h32; +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE void +__taint_trace_loop_push_stack() { + __loop_depth_stack_current[__loop_depth_stack_top] = __current_loop_depth; + __loop_depth_stack_base[__loop_depth_stack_top] = __base_loop_depth; + __loop_depth_stack_previous[__loop_depth_stack_top] = __previous_loop_depth; + __base_loop_depth += __current_loop_depth; + __current_loop_depth = 0; + __loop_depth_stack_top++; + AOUT("loop push stack: %u %u %u\n", __current_loop_depth, __base_loop_depth, __previous_loop_depth); +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE void +__taint_trace_loop_pop_stack() { + __loop_depth_stack_top--; + __current_loop_depth = __loop_depth_stack_current[__loop_depth_stack_top]; + __base_loop_depth = __loop_depth_stack_base[__loop_depth_stack_top]; + __previous_loop_depth = __loop_depth_stack_previous[__loop_depth_stack_top]; + AOUT("loop pop stack: %u %u %u\n", __current_loop_depth, __base_loop_depth, __previous_loop_depth); +} + +#define get_nested_loop_depth() (__base_loop_depth + __current_loop_depth) + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE void +__taint_trace_loop(uint32_t bid, int depth) { + void *addr = __builtin_return_address(0); + + AOUT("loop header: %u depth: %d current: %d base: %d previous: %d, top bid = %u, @%p\n", + bid, depth, __current_loop_depth, __base_loop_depth, __previous_loop_depth, + __loop_bid[get_nested_loop_depth()], addr); + + if (depth > 0) { + // loop header + if (bid == __loop_bid[get_nested_loop_depth()]) { + // same loop, increase the loop counter + __loop_counter[get_nested_loop_depth()]++; + AOUT("Increasing loop counter for loop %u, depth: %u, counter: %u\n", + bid, __current_loop_depth, __loop_counter[get_nested_loop_depth()]); + + if (__loop_counter[get_nested_loop_depth()] > __loop_threshold) { + AOUT("loop threshold reached, exiting\n"); + internal__exit(exit_reason::REASON_LOOP_OOB); + } + } else { + // different loop + if (depth + __base_loop_depth > __previous_loop_depth) { // enter a new loop + // assert(depth == __current_loop_depth + 1); + __current_loop_depth += 1; // update the current loop depth + __loop_counter[get_nested_loop_depth()] = 0; // reset the loop counter + __loop_bid[get_nested_loop_depth()] = bid; + + __previous_loop_depth = depth + __base_loop_depth; + AOUT("enter new loop: %u depth: %u\n", bid, __current_loop_depth); + } else { + AOUT("WARNING: loop depth %d is less than current loop depth %d\n", + depth + __base_loop_depth, __previous_loop_depth); + internal__exit(exit_reason::REASON_LOOP_OOB); + } + } + } else if (__current_loop_depth + depth >= 0) { + // exit a loop + if (bid == __loop_bid[get_nested_loop_depth()]) { + // exiting the current loop + __current_loop_depth += depth; + __previous_loop_depth += depth; + AOUT("exit to outer loop: %u depth: %u\n", bid, __current_loop_depth); + } else { + AOUT("WARNING: loop exit bid %u does not match current loop bid %u\n", + bid, __loop_bid[get_nested_loop_depth()]); + return; + } + } else { + return; // no loop to exit + } + + // send loop info + if (__pipe_fd < 0) + return; + + pipe_msg msg = { + .msg_type = loop_type, + .flags = 0, + .instance_id = __instance_id, + .addr = (uptr)addr, + .context = __taint_trace_callstack, + .id = bid, + .label = 0, + .result = (uint64_t)get_nested_loop_depth() + }; + + if (internal_write(__pipe_fd, &msg, sizeof(msg)) < 0) { + Die(); + } + + return; +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE void +__taint_trace_event_addr(dfsan_label label, uint32_t event_id, uint64_t info, void* addr, uint16_t flags) { + AOUT("event: %u %u %llu @%p\n", label, event_id, info, addr); + + if (__pipe_fd < 0) + return; + + pipe_msg msg = { + .msg_type = event_type, + .flags = flags, + .instance_id = __instance_id, + .addr = (uptr)addr, + .context = event_id, + .label = label, + .result = info + }; + + if (internal_write(__pipe_fd, &msg, sizeof(msg)) < 0) { + Die(); + } + + return; +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE void +__dfsan_trace_bb(uint32_t function_index, uint64_t bb_index) { + AOUT("bb: %u %llu\n", function_index, bb_index); + + if (__pipe_fd < 0) + return; + + pipe_msg msg = { + .msg_type = bb_type, + .addr = (uint64_t)__builtin_return_address(0), + .id = function_index, + .result = bb_index, + }; + + if (internal_write(__pipe_fd, &msg, sizeof(msg)) < 0) { + Die(); + } + + return; +} + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE void +__taint_trace_global_var(dfsan_label label, uint64_t size, void *gv) { + if (label == 0) + return; + + AOUT("global var: %d, size: %lu @%p\n", label, size, gv); + + if (__pipe_fd < 0) + return; + + dfsan_label_info *info = get_label_info(label); + uptr offset = (uptr)info->op1.i; // offset is recorded in op1 + + pipe_msg msg = { + .msg_type = gv_type, + .flags = 0, + .instance_id = __instance_id, + .addr = offset, + .context = __taint_trace_callstack, + .label = label, // just in case + .result = size + }; + + if (internal_write(__pipe_fd, &msg, sizeof(msg)) < 0) { + Die(); + } + // FIXME: assuming single writer so msg will arrive in the same order + if (internal_write(__pipe_fd, gv, size) < 0) { + Die(); + } + + return; +} + +static void segfault_handler(int sig, siginfo_t *si, void *unused) +{ + if (__ucsan_null_deref_flag) { + AOUT("Poential Null dereference detected\n"); + __taint_trace_event_addr(0, EVENT_NULL_DEREF, 0, __ucsan_null_deref_flag, 0); + internal__exit(EVENT_NULL_DEREF); + } + AOUT("Segmentation fault at address: %p, access type: %d\n", si->si_addr, si->si_code); + Die(); +} + +void RegisterSegFault () { +#ifdef __handle_segfualt__ + struct sigaction sa; + + sa.sa_flags = SA_SIGINFO; + sigemptyset(&sa.sa_mask); + sa.sa_sigaction = segfault_handler; + if (sigaction(SIGSEGV, &sa, NULL) == -1) + Die(); +#endif +} + +extern "C" void InitializeUCSanSolver() { + + RegisterSegFault(); + + // initialize pipe fds + if (internal_strcmp(flags().pipe_name, "") != 0) { + __pipe_fd = internal_open(flags().pipe_name, O_WRONLY); + } else { + __pipe_fd = flags().pipe_fd; + } + // communication pipe fd can be -1, meaning no out-of-process solving + // tracing only + + if (internal_strcmp(flags().control_pipe_name, "") != 0) { + __control_pipe_fd = internal_open(flags().control_pipe_name, O_RDONLY); + } else { + __control_pipe_fd = flags().control_pipe_fd; + } + // control pipe fd must be valid + if (__control_pipe_fd == -1) { + Printf("FATAL: control_fd not set, control_pipe_fd %d, control_fd_name %s\n", + flags().control_pipe_fd, flags().control_pipe_name); + Die(); + } + Printf("Thouroupy solver fork server pipe_fd: %d\n", __control_pipe_fd); + + ucsan_ticket ticket; + uint64_t payload_size; + char *content; + uptr ret; + memset(__loop_counter, 0, LOOP_COUNTER_SIZE * sizeof(uint32_t)); + + // fork server loop + while (true) { + ret = read(__control_pipe_fd, &ticket, sizeof(ucsan_ticket)); + if (ret != sizeof(ucsan_ticket)) { + Printf("Fork server: read ticket failed, exiting\n"); + internal__exit(1); + } + + switch (ticket.msg_type){ // exit + case 0: { + Printf("Fork server: exiting\n"); + internal__exit(0); + } + break; + + case 1: + case 2: { + AOUT("Fork server: received a new session, session id: %d, instance id: %d\n", + ticket.session_id, ticket.instance_id); + + int pid = fork(); + if (pid == 0) { // child + __instance_id = ticket.instance_id; + __session_id = ticket.session_id; + + if (ticket.msg_type == 1) return; // no payload + payload_size = ticket.payload_size; + + content = (char*)malloc(payload_size); + if (!content) internal__exit(1); + + internal_read(__control_pipe_fd, content, payload_size); + // free previous allocation if any + if (ucsan_tainted.buf) free((void*)ucsan_tainted.buf); + + // parse the input content + ucsan_tainted.load(content, payload_size); + + return; // jump out to the main function + } else if (pid > 0) { // parent + AOUT("Fork server: Wait for the child process\n"); + int status; + waitpid(pid, &status, 0); + pipe_msg msg = { + .msg_type = exit_type, + .flags = 0, + .instance_id = __instance_id, + .addr = 0, + .context = 0, + .label = 0, + .result = (uint64_t)status + }; + AOUT("Fork server: report exit status: %d\n", status); + internal_write(__pipe_fd, &msg, sizeof(msg)); + } else { + AOUT("Fork server: fork failed, exiting\n"); + internal__exit(1); + } + } + break; + + case 3: { // adjust loop threshold + internal_read(__control_pipe_fd, &__loop_threshold, sizeof(uint32_t)); + AOUT("Fork server: received loop threshold: %d\n", __loop_threshold); + } + break; + + case 4: { // adjust stack threshold + internal_read(__control_pipe_fd, &__stack_threshold, sizeof(uint32_t)); + AOUT("Fork server: received stack threshold: %d\n", __stack_threshold); + } + break; + } + } + +} diff --git a/driver/fgtest.cpp b/driver/fgtest.cpp index 9f31a056..b3966a52 100644 --- a/driver/fgtest.cpp +++ b/driver/fgtest.cpp @@ -341,7 +341,11 @@ int main(int argc, char* const argv[]) { __z3_parser->record_memcmp(msg.label, mmsg->content, msg.result); free(mmsg); break; - case fsize_type: + case add_constraint_type: + if (__z3_parser->add_constraints(msg.label, msg.result) != 0) { + fprintf(stderr, "Failed to add constraint %d = %lu @%p\n", + msg.label, msg.result, (void*)msg.addr); + } break; default: break; diff --git a/runtime/dfsan/CMakeLists.txt b/runtime/dfsan/CMakeLists.txt index c9182b29..9cb7acf4 100644 --- a/runtime/dfsan/CMakeLists.txt +++ b/runtime/dfsan/CMakeLists.txt @@ -39,7 +39,7 @@ set(DFSAN_RTL_HEADERS ${SYMSAN_RTL_HEADERS} ${UCSAN_RTL_HEADERS}) -list(APPEND ${SANITIZER_COMMON_CFLAGS} "-O3") +list(APPEND ${SANITIZER_COMMON_CFLAGS} "-O3 -Wno-format") set(DFSAN_COMMON_CFLAGS ${SANITIZER_COMMON_CFLAGS}) if(OS_NAME MATCHES "Linux" AND diff --git a/runtime/dfsan/dfsan.cpp b/runtime/dfsan/dfsan.cpp index 5eb5ba8c..3d91ce70 100644 --- a/runtime/dfsan/dfsan.cpp +++ b/runtime/dfsan/dfsan.cpp @@ -1564,7 +1564,7 @@ extern "C" dfsan_label taint_get_str_indexof_label(const void *addr) { } // information is passed implicitly through flags() -extern "C" void InitializeSolver(); +extern "C" void InitializeSymSanSolver(); static void InitializeFlags() { SetCommonFlagsDefaults(); @@ -1612,7 +1612,7 @@ static void dfsan_fini() { if (tainted.buf) { UnmapOrDie(tainted.buf, tainted.buf_size); } - if (flags().shm_fd != -1) { + if (flags().shm_fd != -1 || internal_strcmp(flags().shm_name, "") != 0) { internal_munmap((void *)UnionTableAddr(), uniontable_size); } } @@ -1632,10 +1632,27 @@ static void dfsan_init(int argc, char **argv, char **envp) { // init union table __dfsan_label_info = (dfsan_label_info *)UnionTableAddr(); -if (flags().shm_fd != -1) { + if (flags().shm_size != 0) { + if (flags().shm_size > minimum_uniontable_size) { + uniontable_size = flags().shm_size; + } else { + Report("Warning: shm_size %zu is smaller than minimum %zu\n", + flags().shm_size, minimum_uniontable_size); + // use the default size + } + } + if (flags().shm_fd != -1) { AOUT("shm_fd %d\n", flags().shm_fd); ret = internal_mmap((void*)UnionTableAddr(), uniontable_size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_FIXED, flags().shm_fd, 0); + } else if (internal_strcmp(flags().shm_name, "") != 0) { + int shm = shm_open(flags().shm_name, O_RDWR, S_IRUSR | S_IWUSR); + if (shm == -1) { + Printf("FATAL: error creating shared union table\n"); + Die(); + } + ret = internal_mmap((void *)UnionTableAddr(), uniontable_size, + PROT_READ | PROT_WRITE, MAP_SHARED | MAP_FIXED, shm, 0); } else { ret = MmapFixedSuperNoReserve(UnionTableAddr(), uniontable_size); } @@ -1672,7 +1689,7 @@ if (flags().shm_fd != -1) { InitializeStringMaps(); - InitializeSolver(); + InitializeSymSanSolver(); // Register the fini callback to run when the program terminates successfully // or it is killed by the runtime. @@ -1686,7 +1703,7 @@ static void (*dfsan_init_ptr)(int, char **, char **) = dfsan_init; #endif extern "C" { -SANITIZER_INTERFACE_WEAK_DEF(void, InitializeSolver, void) {} +SANITIZER_INTERFACE_WEAK_DEF(void, InitializeSymSanSolver, void) {} // Default empty implementations (weak) for hooks SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_cmp, dfsan_label, dfsan_label, diff --git a/runtime/dfsan/dfsan.h b/runtime/dfsan/dfsan.h index cdf11f5f..2781bb82 100644 --- a/runtime/dfsan/dfsan.h +++ b/runtime/dfsan/dfsan.h @@ -57,7 +57,8 @@ struct dfsan_label_info { #define CONST_OFFSET 1 #define CONST_LABEL 0 -static const size_t uniontable_size = 0xc00000000; // FIXME +static const size_t minimum_uniontable_size = 0x10000 * sizeof(dfsan_label_info); // 64K entries +static size_t uniontable_size = 0xc00000000; // FIXME struct taint_file { char filename[PATH_MAX]; @@ -253,8 +254,14 @@ enum pipe_msg_type { cond_type = 0, gep_type = 1, memcmp_type = 2, - fsize_type = 3, + add_constraint_type = 3, memerr_type = 4, + // from thoroupy + exit_type, + loop_type, + bb_type, + event_type, + gv_type, }; static const uint8_t TrueBranchLoopLatch = 0x8; diff --git a/runtime/dfsan/dfsan_flags.inc b/runtime/dfsan/dfsan_flags.inc index b39c47fa..38ef0b2b 100644 --- a/runtime/dfsan/dfsan_flags.inc +++ b/runtime/dfsan/dfsan_flags.inc @@ -35,7 +35,12 @@ DFSAN_FLAG(const char *, taint_socket, "", "The network source which " "will be tainted.") DFSAN_FLAG(const char *, union_table, "union.txt", "union table.") DFSAN_FLAG(int, shm_fd, -1, "shared union table.") -DFSAN_FLAG(int, pipe_fd, -1, "communication fd.") +DFSAN_FLAG(const char *, shm_name, "", "shared union table by key.") +DFSAN_FLAG(size_t, shm_size, 0, "shared union table size.") +DFSAN_FLAG(int, pipe_fd, -1, "communication pipe fd.") +DFSAN_FLAG(const char *, pipe_name, "", "communication pipe filename.") +DFSAN_FLAG(int, control_pipe_fd, -1, "control pipe fd.") +DFSAN_FLAG(const char *, control_pipe_name, "", "control pipe filename.") DFSAN_FLAG(bool, trace_bounds, false, "trace bounds info.") DFSAN_FLAG(bool, trace_fsize, false, "trace file size.") DFSAN_FLAG(bool, exit_on_memerror, true, "terminate on memory error.") diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index 399ca446..84bb07f2 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -39,6 +39,9 @@ void __taint_trace_event_addr(__ucsan::ucsan_label label, uint32_t event_id, uin extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __taint_trace_global_var(__ucsan::ucsan_label label, uint64_t size, void *gv); +// Forward declaration for UCSan solver initialization (thoroupy backend) +extern "C" void InitializeUCSanSolver(); + // Forward declarations for SymSan bridge functions (weak stubs, overridden when linked with SymSan) extern "C" SANITIZER_INTERFACE_ATTRIBUTE dfsan_label __taint_create_label(uint32_t object_id, uint64_t offset, uint32_t size_in_bytes); @@ -205,6 +208,61 @@ char* ucsan_input::dump() { return ret; } +uint64_t ucsan_input::load(const char *buf, size_t file_size) { + // Parse deseralized objects from buffer: + // [object_cnt: uint64_t] + // [offset1: uint32_t, offset2: uint32_t, ...] (object_cnt entries) + // [size1: uint64_t, size2: uint64_t, ...] (object_cnt entries) + // [data1, data2, ...] (variable length) + // [metadata: obj_id + offset pairs] (optional) + + uint64_t *header = (uint64_t *)buf; + uint64_t object_cnt = *header; + header++; + + uint32_t *offsets = (uint32_t *)header; + uint64_t *sizes = (uint64_t *)(offsets + object_cnt); + + const char *cursor = buf + sizeof(uint64_t) + // object_cnt + sizeof(uint32_t) * object_cnt + // offset entries + sizeof(uint64_t) * object_cnt; // size entries + + // Initialize objects storage + if (!ucsan_tainted.objects) { + ucsan_tainted.objects = new ObjectStorage(); + } + ucsan_tainted.objects->clear(); + + for (uint64_t i = 0; i < object_cnt; ++i) { + ucsan_tainted.objects->emplace_back(UCSanObject{ + .offset = offsets[i], + .data = std::vector(cursor, cursor + sizes[i]), + .origin = {0, 0} + }); + cursor += sizes[i]; + } + + // Load metadata if present + if (cursor < buf + file_size) { + for (uint64_t i = 0; i < object_cnt && cursor + sizeof(uint64_t) * 2 <= buf + file_size; ++i) { + ucsan_tainted.objects->at(i).origin.obj_id = *(uint64_t *)cursor; + cursor += sizeof(uint64_t); + ucsan_tainted.objects->at(i).origin.offset = *(uint64_t *)cursor; + cursor += sizeof(uint64_t); + } + } + + // Build object map for lookup + if (object_cnt > 1) { + ucsan_tainted.build_obj_map(); + } + + ucsan_tainted.buf = buf; + ucsan_tainted.buf_size = file_size; + + return object_cnt; +} + void ucsan_input::build_obj_map() { uint32_t object_id = 1; UCSAN_OUT("build_obj_map: objects->size()=%llu\n", (uint64_t)objects->size()); @@ -604,7 +662,7 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere if (ucsan_flags().no_upcast && desired_offset < 0) { UCSAN_OUT("Upcast disallowed by no_upcast flag\n"); - exit(exit_reason::CHECKER_OOB_UPCAST); + exit(exit_reason::EVENT_OOB_UPCAST); } // Fast path: within current bounds @@ -726,7 +784,7 @@ void ucsan_check_ptr_arg(ucsan_label *label, uint32_t arg_index, void* ret_addr) if (label[0] == kUninitializedLabel) { // Trace use-before-initialization event __taint_trace_event_addr(label[0], EVENT_UBI, arg_index, ret_addr, 0); - exit(exit_reason::CHECKER_UBI); + exit(exit_reason::EVENT_UBI); } } @@ -1214,6 +1272,9 @@ void ucsan_init() { ucsan_init_input(ucsan_flags_data.input_file); } + // Initialize UCSan solver (thoroupy backend) + InitializeUCSanSolver(); + // Register cleanup callback Atexit(ucsan_fini_internal); AddDieCallback(ucsan_fini_internal); @@ -1245,54 +1306,7 @@ void ucsan_init_input(const char *filename) { return; } - // Parse file format (same as dfsan): - // [object_cnt: uint64_t] - // [offset1: uint32_t, offset2: uint32_t, ...] (object_cnt entries) - // [size1: uint64_t, size2: uint64_t, ...] (object_cnt entries) - // [data1, data2, ...] (variable length) - // [metadata: obj_id + offset pairs] (optional) - - uint64_t *header = (uint64_t *)buf; - uint64_t object_cnt = *header; - header++; - - uint32_t *offsets = (uint32_t *)header; - uint64_t *sizes = (uint64_t *)(offsets + object_cnt); - - char *cursor = buf + sizeof(uint64_t) + sizeof(uint32_t) * object_cnt + sizeof(uint64_t) * object_cnt; - - // Initialize objects storage - if (!ucsan_tainted.objects) { - ucsan_tainted.objects = new ObjectStorage(); - } - ucsan_tainted.objects->clear(); - - for (uint64_t i = 0; i < object_cnt; ++i) { - ucsan_tainted.objects->emplace_back(UCSanObject{ - .offset = offsets[i], - .data = std::vector(cursor, cursor + sizes[i]), - .origin = {0, 0} - }); - cursor += sizes[i]; - } - - // Load metadata if present - if (cursor < buf + file_size) { - for (uint64_t i = 0; i < object_cnt && cursor + sizeof(uint64_t) * 2 <= buf + file_size; ++i) { - ucsan_tainted.objects->at(i).origin.obj_id = *(uint64_t *)cursor; - cursor += sizeof(uint64_t); - ucsan_tainted.objects->at(i).origin.offset = *(uint64_t *)cursor; - cursor += sizeof(uint64_t); - } - } - - // Build object map for lookup - if (object_cnt > 1) { - ucsan_tainted.build_obj_map(); - } - - ucsan_tainted.buf = buf; - ucsan_tainted.buf_size = file_size; + uint64_t object_cnt = ucsan_tainted.load(buf, file_size); UCSAN_OUT("Loaded %llu objects from %s\n", object_cnt, filename); } @@ -1332,6 +1346,9 @@ SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_event_addr, SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_global_var, __ucsan::ucsan_label, uint64_t, void*) {} +// Weak definition for UCSan solver initialization +SANITIZER_INTERFACE_WEAK_DEF(void, InitializeUCSanSolver, void) {} + //===----------------------------------------------------------------------===// // SymSan Bridge - Weak Stubs //===----------------------------------------------------------------------===// diff --git a/runtime/dfsan/ucsan.h b/runtime/dfsan/ucsan.h index f07dc957..c7bd7c9b 100644 --- a/runtime/dfsan/ucsan.h +++ b/runtime/dfsan/ucsan.h @@ -32,6 +32,8 @@ using __sanitizer::atomic_uint32_t; using __sanitizer::atomic_uint64_t; using __sanitizer::memory_order_relaxed; +typedef uint32_t dfsan_label; + //===----------------------------------------------------------------------===// // UCSan Configuration //===----------------------------------------------------------------------===// @@ -169,9 +171,9 @@ struct ucsan_input { ucsan_label offset_label; // label for offset (if symbolic) ucsan_label label; // base label off_t size; // input size - uint8_t is_stdin; // is stdin input - uint8_t is_utmp; // is utmp input - char *buf; // mapped input buffer + uint8_t is_stdin; // is stdin input + uint8_t is_utmp; // is utmp input + const char *buf; // mapped input buffer uptr buf_size; // buffer size // Object management (same pattern as dfsan) @@ -189,6 +191,9 @@ struct ucsan_input { // Serialize objects to buffer char* dump(); + // Deserialize objects from buffer + uint64_t load(const char *buf, size_t file_size); + // Build object map from objects void build_obj_map(); }; diff --git a/runtime/dfsan/ucsan_exit_reason.h b/runtime/dfsan/ucsan_exit_reason.h index 4505631e..9399bbb3 100644 --- a/runtime/dfsan/ucsan_exit_reason.h +++ b/runtime/dfsan/ucsan_exit_reason.h @@ -5,14 +5,12 @@ enum exit_reason { REASON_STACK_OOB = 125, /* checker */ - CHECKER_UBI = 150, EVENT_UBI = 150, + EVENT_UBI = 150, EVENT_UAF = 151, EVENT_OOB = 152, EVENT_NULL_DEREF = 153, - CHECKER_OOB = 160, - CHECKER_OOB_UPCAST = 161, + EVENT_OOB_UPCAST = 161, - CHECKER_UAR = 170, EVENT_PANIC = 171, }; diff --git a/solvers/z3.cpp b/solvers/z3.cpp index 3c354433..e86ef6fa 100644 --- a/solvers/z3.cpp +++ b/solvers/z3.cpp @@ -26,7 +26,7 @@ static z3::solver __z3_solver(__z3_context, "QF_BV"); static symsan::Z3ParserSolver *__z3_parser = nullptr; // filter? -SANITIZER_INTERFACE_ATTRIBUTE THREADLOCAL uint32_t __taint_trace_callstack; +extern SANITIZER_INTERFACE_ATTRIBUTE THREADLOCAL uint32_t __taint_trace_callstack; static std::unordered_set __solved_labels; typedef std::pair trace_context; @@ -407,7 +407,7 @@ __taint_trace_memcmp(dfsan_label label) { __z3_parser->record_memcmp(label, content_ptr, info->size); } -extern "C" void InitializeSolver() { +extern "C" void InitializeSymSanSolver() { __output_dir = flags().output_dir; __instance_id = flags().instance_id; __session_id = flags().session_id; From b65c26b552896566da41a563238ad1f1d9eb46a4 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 20 Jan 2026 17:18:05 -0800 Subject: [PATCH 009/139] indexed access should use type dfsan_label --- runtime/dfsan/dfsan.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/runtime/dfsan/dfsan.cpp b/runtime/dfsan/dfsan.cpp index 3d91ce70..cc0be414 100644 --- a/runtime/dfsan/dfsan.cpp +++ b/runtime/dfsan/dfsan.cpp @@ -79,10 +79,10 @@ bool print_debug; static const int kArgTlsSize = 800; static const int kRetvalTlsSize = 800; -SANITIZER_INTERFACE_ATTRIBUTE THREADLOCAL uint64_t - __dfsan_retval_tls[kRetvalTlsSize / sizeof(uint64_t)]; -SANITIZER_INTERFACE_ATTRIBUTE THREADLOCAL uint64_t - __dfsan_arg_tls[kArgTlsSize / sizeof(uint64_t)]; +SANITIZER_INTERFACE_ATTRIBUTE THREADLOCAL dfsan_label + __dfsan_retval_tls[kRetvalTlsSize / sizeof(dfsan_label)]; +SANITIZER_INTERFACE_ATTRIBUTE THREADLOCAL dfsan_label + __dfsan_arg_tls[kArgTlsSize / sizeof(dfsan_label)]; SANITIZER_INTERFACE_ATTRIBUTE uptr __dfsan_shadow_ptr_mask; @@ -1020,6 +1020,8 @@ dfsan_label dfsan_create_label(uint64_t input_id, uint64_t offset, uint32_t size dfsan_label label = atomic_fetch_add(&__dfsan_last_label, 1, memory_order_relaxed) + 1; dfsan_check_label(label); + AOUT("creating label %u: input %lu, offset %lu, size %u\n", + label, input_id, offset, size_in_bytes); internal_memset(&__dfsan_label_info[label], 0, sizeof(dfsan_label_info)); __dfsan_label_info[label].size = 8 * size_in_bytes; __dfsan_label_info[label].op1.i = offset; @@ -1754,6 +1756,7 @@ void __taint_set_arg_tls(uint32_t index, dfsan_label label, uint32_t size_in_bit if (size_in_bits < size_in_bytes * 8) { label = __taint_union(label, CONST_LABEL, Trunc, size_in_bits, 0, 0); } + AOUT("set arg tls[%u] = %u\n", index, label); __dfsan_arg_tls[index] = label; } } From a1557c365f8ca6dc883f37bcb7ebbe995e4cae34 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Thu, 22 Jan 2026 14:05:41 -0800 Subject: [PATCH 010/139] add exporting to smt2 --- include/parse-z3.h | 6 ++++++ solvers/z3-ts.cpp | 30 ++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/include/parse-z3.h b/include/parse-z3.h index e33913f1..1304437b 100644 --- a/include/parse-z3.h +++ b/include/parse-z3.h @@ -230,6 +230,12 @@ class Z3ParserSolver : public Z3AstParser { using solution_t = std::vector; solving_status solve_task(uint64_t task_id, unsigned timeout, solution_t &solutions); + /// @brief Export task constraints to SMT2 format + /// @param task_id the task to export + /// @param fd file descriptor to write to + /// @return 0 on success, -1 on failure + int export_task_smt2(uint64_t task_id, int fd); + private: void generate_solution(z3::model &m, solution_t &solutions); diff --git a/solvers/z3-ts.cpp b/solvers/z3-ts.cpp index d0512dbe..1d095c9b 100644 --- a/solvers/z3-ts.cpp +++ b/solvers/z3-ts.cpp @@ -8,6 +8,8 @@ #include #include +#include + using namespace symsan; #define FILTER_WRONG_AST 1 @@ -2198,6 +2200,34 @@ void Z3ParserSolver::generate_solution(z3::model &m, solution_t &solutions) { // fprintf(stderr, "DEBUG generate_solution: finished with %zu solutions\n", solutions.size()); } +int Z3ParserSolver::export_task_smt2(uint64_t task_id, int fd) { + // Use tasks_.find() to peek without removing + auto it = tasks_.find(task_id); + if (it == tasks_.end()) { + return -1; + } + auto task = it->second; + + try { + // Create solver and add all constraints + z3::solver solver(context_); + for (const auto &expr : *task) { + solver.add(expr); + } + + // Export as SMT2 + std::string smt2 = solver.to_smt2(); + ssize_t written = write(fd, smt2.c_str(), smt2.size()); + if (written < 0 || (size_t)written != smt2.size()) { + return -1; + } + return 0; + } catch (z3::exception &e) { + fprintf(stderr, "WARNING: export_task_smt2[%lu]: %s\n", task_id, e.msg()); + return -1; + } +} + // Build Z3 string from a content label (Load or Concat of bytes) // Creates a symbolic string variable with naming convention: str-input-offset-len z3::expr Z3AstParser::build_string_from_label(dfsan_label label, input_dep_set_t &deps) { From 711f3b8ac09308e4ab0223e7f12ff4e0e7b2751e Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Thu, 22 Jan 2026 15:50:22 -0800 Subject: [PATCH 011/139] fix GEP over under-constrained symbolic ptr; merge with existing string constraints handling --- compiler/ko_clang.c | 5 + instrumentation/TaintPass.cpp | 92 ++++------ runtime/dfsan/dfsan.cpp | 318 ++++++++++++++++++++++++--------- runtime/dfsan/dfsan.h | 20 ++- runtime/dfsan/dfsan_custom.cpp | 114 +----------- 5 files changed, 298 insertions(+), 251 deletions(-) diff --git a/compiler/ko_clang.c b/compiler/ko_clang.c index 7148c847..431a5c36 100644 --- a/compiler/ko_clang.c +++ b/compiler/ko_clang.c @@ -261,6 +261,11 @@ static void add_taint_pass() { cc_params[cc_par_cnt++] = "-taint-solve-ub=true"; } + if (use_ucsan) { + cc_params[cc_par_cnt++] = "-mllvm"; + cc_params[cc_par_cnt++] = "-taint-with-ucsan=true"; + } + if (is_cxx && use_native_cxx) { cc_params[cc_par_cnt++] = "-mllvm"; cc_params[cc_par_cnt++] = diff --git a/instrumentation/TaintPass.cpp b/instrumentation/TaintPass.cpp index 03ce8327..8be8ce66 100644 --- a/instrumentation/TaintPass.cpp +++ b/instrumentation/TaintPass.cpp @@ -186,6 +186,12 @@ static cl::opt ClTraceAnnotatedBB( cl::desc("Only trace annotated basic blocks."), cl::Hidden, cl::init(false)); +// SYMSAN specific flags, if runs with UCSan +static cl::opt ClWithUCSan( + "taint-with-ucsan", + cl::desc("Performs under-constrained symbolic execution."), + cl::Hidden, cl::init(false)); + static StringRef getGlobalTypeString(const GlobalValue &G) { // Types of GlobalVariables are always pointer types. Type *GType = G.getValueType(); @@ -387,6 +393,7 @@ class Taint { FunctionType *TaintUnionFnTy; FunctionType *TaintUnionLoadFnTy; FunctionType *TaintUnionStoreFnTy; + FunctionType *TaintGEPOffsetFnTy; FunctionType *TaintUnimplementedFnTy; FunctionType *TaintSetLabelFnTy; FunctionType *TaintNonzeroLabelFnTy; @@ -398,7 +405,6 @@ class Taint { FunctionType *TaintTraceSelectFnTy; FunctionType *TaintTraceIndirectCallFnTy; FunctionType *TaintTraceGEPFnTy; - FunctionType *TaintTraceGEPPtrFnTy; FunctionType *TaintPushStackFrameFnTy; FunctionType *TaintPopStackFrameFnTy; FunctionType *TaintTraceAllocaFnTy; @@ -408,9 +414,9 @@ class Taint { FunctionType *TaintTraceGlobalFnTy; FunctionType *TaintDebugFnTy; FunctionCallee TaintUnionFn; - FunctionCallee TaintCheckedUnionFn; FunctionCallee TaintUnionLoadFn; FunctionCallee TaintUnionStoreFn; + FunctionCallee TaintGEPOffsetFn; FunctionCallee TaintUnimplementedFn; FunctionCallee TaintSetLabelFn; FunctionCallee TaintNonzeroLabelFn; @@ -422,7 +428,6 @@ class Taint { FunctionCallee TaintTraceSelectFn; FunctionCallee TaintTraceIndirectCallFn; FunctionCallee TaintTraceGEPFn; - FunctionCallee TaintTraceGEPPtrFn; FunctionCallee TaintPushStackFrameFn; FunctionCallee TaintPopStackFrameFn; FunctionCallee TaintTraceAllocaFn; @@ -957,6 +962,9 @@ bool Taint::initializeModule(Module &M) { IntptrTy, Int64Ty }; TaintUnionStoreFnTy = FunctionType::get( Type::getVoidTy(*Ctx), TaintUnionStoreArgs, /*isVarArg=*/ false); + TaintGEPOffsetFnTy = FunctionType::get( + PrimitiveShadowTy, + { PrimitiveShadowTy, VoidPtrTy, VoidPtrTy }, /*isVarArg=*/ false); TaintUnimplementedFnTy = FunctionType::get( Type::getVoidTy(*Ctx), Type::getInt8PtrTy(*Ctx), /*isVarArg=*/false); Type *TaintSetLabelArgs[3] = { PrimitiveShadowTy, Type::getInt8PtrTy(*Ctx), @@ -989,9 +997,6 @@ bool Taint::initializeModule(Module &M) { Int64Ty, Int64Ty, Int64Ty, Int64Ty, Int32Ty }; TaintTraceGEPFnTy = FunctionType::get( Type::getVoidTy(*Ctx), TaintTraceGEPArgs, false); - // __taint_trace_gep_ptr(base_label, offset) -> new_label - TaintTraceGEPPtrFnTy = FunctionType::get( - Type::getVoidTy(*Ctx), { PrimitiveShadowTy, VoidPtrTy, VoidPtrTy }, false); TaintPushStackFrameFnTy = FunctionType::get( Type::getVoidTy(*Ctx), {}, false); TaintPopStackFrameFnTy = FunctionType::get( @@ -1170,15 +1175,6 @@ void Taint::initializeRuntimeFunctions(Module &M) { TaintUnionFn = Mod->getOrInsertFunction("__taint_union", TaintUnionFnTy, AL); } - { - AttributeList AL; - AL = AL.addFnAttribute(M.getContext(), Attribute::NoUnwind); - AL = AL.addRetAttribute(M.getContext(), Attribute::ZExt); - AL = AL.addParamAttribute(M.getContext(), 0, Attribute::ZExt); - AL = AL.addParamAttribute(M.getContext(), 1, Attribute::ZExt); - TaintCheckedUnionFn = - Mod->getOrInsertFunction("taint_union", TaintUnionFnTy, AL); - } { AttributeList AL; AL = AL.addFnAttribute(M.getContext(), Attribute::NoUnwind); @@ -1193,6 +1189,14 @@ void Taint::initializeRuntimeFunctions(Module &M) { TaintUnionStoreFn = Mod->getOrInsertFunction("__taint_union_store", TaintUnionStoreFnTy, AL); } + { + AttributeList AL; + AL = AL.addFnAttribute(M.getContext(), Attribute::NoUnwind); + AL = AL.addRetAttribute(M.getContext(), Attribute::ZExt); + AL = AL.addParamAttribute(M.getContext(), 0, Attribute::ZExt); + TaintGEPOffsetFn = + Mod->getOrInsertFunction("__taint_gep_offset", TaintGEPOffsetFnTy, AL); + } { TaintUnimplementedFn = Mod->getOrInsertFunction("__dfsan_unimplemented", TaintUnimplementedFnTy); @@ -1218,16 +1222,16 @@ void Taint::initializeRuntimeFunctions(Module &M) { TaintRuntimeFunctions.insert( TaintUnionFn.getCallee()->stripPointerCasts()); - TaintRuntimeFunctions.insert( - TaintCheckedUnionFn.getCallee()->stripPointerCasts()); TaintRuntimeFunctions.insert( TaintUnionLoadFn.getCallee()->stripPointerCasts()); TaintRuntimeFunctions.insert( TaintUnionStoreFn.getCallee()->stripPointerCasts()); TaintRuntimeFunctions.insert( - TaintSetLabelFn.getCallee()->stripPointerCasts()); + TaintGEPOffsetFn.getCallee()->stripPointerCasts()); TaintRuntimeFunctions.insert( TaintUnimplementedFn.getCallee()->stripPointerCasts()); + TaintRuntimeFunctions.insert( + TaintSetLabelFn.getCallee()->stripPointerCasts()); TaintRuntimeFunctions.insert( TaintNonzeroLabelFn.getCallee()->stripPointerCasts()); TaintRuntimeFunctions.insert( @@ -1297,13 +1301,6 @@ void Taint::initializeCallbackFunctions(Module &M) { TaintTraceGEPFn = Mod->getOrInsertFunction("__taint_trace_gep", TaintTraceGEPFnTy, AL); } - { - AttributeList AL; - AL = AL.addFnAttribute(M.getContext(), Attribute::NoUnwind); - AL = AL.addParamAttribute(M.getContext(), 0, Attribute::ZExt); - TaintTraceGEPPtrFn = - Mod->getOrInsertFunction("__taint_trace_gep_ptr", TaintTraceGEPPtrFnTy, AL); - } { AttributeList AL; AL = AL.addFnAttribute(M.getContext(), Attribute::NoUnwind); @@ -1373,8 +1370,6 @@ void Taint::initializeCallbackFunctions(Module &M) { TaintTraceIndirectCallFn.getCallee()->stripPointerCasts()); TaintRuntimeFunctions.insert( TaintTraceGEPFn.getCallee()->stripPointerCasts()); - TaintRuntimeFunctions.insert( - TaintTraceGEPPtrFn.getCallee()->stripPointerCasts()); TaintRuntimeFunctions.insert( TaintPushStackFrameFn.getCallee()->stripPointerCasts()); TaintRuntimeFunctions.insert( @@ -2410,19 +2405,12 @@ void TaintFunction::visitGEPInst(GetElementPtrInst *I) { IRBuilder<> IRB(I); Value *Base = I->getPointerOperand(); - Value *Bounds = TT.getZeroShadow(Base); - if (ClTraceBound) { - // get bounds info for base pointer - if (auto *GV = dyn_cast(Base->stripPointerCasts())) { - // if the base pointer is a global variable - // we can't get its shadow from the shadow map - Bounds = getShadowForGlobal(GV, IRB); - } else { - Bounds = getShadow(Base); - if (TT.isZeroShadow(Bounds)) { - // try striping the pointer cast - Bounds = getShadow(Base->stripPointerCasts()); - } + Value *Shadow = getShadow(Base->stripPointerCasts()); + if (auto *GV = dyn_cast(Base->stripPointerCasts())) { + // if the base pointer is a global variable, and without ucsan, + // we can't get its shadow from the shadow map + if (!ClWithUCSan) { + Shadow = getShadowForGlobal(GV, IRB); } } @@ -2464,8 +2452,8 @@ void TaintFunction::visitGEPInst(GetElementPtrInst *I) { CurrentOffset += arrayIdx * ElemSize; } else if (Index->getType()->isIntegerTy()) { // FIXEME: handle vector type // non-constant index, check if it's tainted - Value *Shadow = getShadow(Index); - if (!TT.isZeroShadow(Shadow)) { + Value *IndexShadow = getShadow(Index); + if (!TT.isZeroShadow(IndexShadow)) { Index = IRB.CreateZExtOrTrunc(Index, TT.Int64Ty); ConstantInt *Offset = ConstantInt::get(TT.Int64Ty, CurrentOffset); ConstantInt *NE = ConstantInt::get(TT.Int64Ty, NumElements); @@ -2478,11 +2466,11 @@ void TaintFunction::visitGEPInst(GetElementPtrInst *I) { // must be added before tracing GEP, otherwise index_label == index // will be added as nested constraint IRB.CreateCall(TT.TaintSolveBoundsFn, - {Bounds, Ptr, Shadow, Index, NE, ES, Offset, CID}); + {Shadow, Ptr, IndexShadow, Index, NE, ES, Offset, CID}); } if (ClTraceGEPOffset) { IRB.CreateCall(TT.TaintTraceGEPFn, - {Bounds, Ptr, Shadow, Index, NE, ES, Offset, CID}); + {Shadow, Ptr, IndexShadow, Index, NE, ES, Offset, CID}); } } else { break; @@ -2491,21 +2479,19 @@ void TaintFunction::visitGEPInst(GetElementPtrInst *I) { } } - if (ClTraceBound) { - // propagate bounds info - setShadow(I, Bounds); - } - - // For constant offset GEPs on string op pointers, create fstr_off label + // we need to check GEP for two reasons: + // 1. For constant offset GEPs on string op pointers, create fstr_off label // to track the offset (e.g., sep + 1 where sep is from strchr) - if (CurrentOffset != 0 && !TT.isZeroShadow(Bounds)) { + // 2. For symbolic ptr (e.g., from UCSan), we need to trace the offset + if (!TT.isZeroShadow(Shadow)) { IRBuilder<> IRB(I->getNextNode()); - Bounds = IRB.CreateCall(TT.TaintTraceGEPPtrFn, {Bounds, I, Base}); + Shadow = IRB.CreateCall(TT.TaintGEPOffsetFn, {Shadow, I, Base}); } + + setShadow(I, Shadow); } void TaintVisitor::visitGetElementPtrInst(GetElementPtrInst &GEPI) { - if (!ClTraceGEPOffset && !ClTraceBound) return; TF.visitGEPInst(&GEPI); } diff --git a/runtime/dfsan/dfsan.cpp b/runtime/dfsan/dfsan.cpp index cc0be414..e99541de 100644 --- a/runtime/dfsan/dfsan.cpp +++ b/runtime/dfsan/dfsan.cpp @@ -185,6 +185,46 @@ static inline bool is_valid_op(uint16_t op) { return op >= __dfsan::Add && op < __dfsan::LastOp || op == __dfsan::Not; } +static inline dfsan_label add_taint_info(dfsan_label_info *info) { + dfsan_label label = + atomic_fetch_add(&__dfsan_last_label, 1, memory_order_relaxed) + 1; + dfsan_check_label(label); + + AOUT("%u = (%u, %u, %u, %u, %lu, %lu)\n", label, info->l1, info->l2, + info->op, info->size, info->op1.i, info->op2.i); + + internal_memcpy(&__dfsan_label_info[label], info, sizeof(dfsan_label_info)); + return label; +} + +// for internal use only, skip optimization and ubsan checks +// caller must ensure op is valid, handle commutative conventions +static dfsan_label do_taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, + uint16_t size, uint64_t op1, uint64_t op2) { + // dedup + uint32_t h1 = l1 ? __dfsan_label_info[l1].hash : 0; + uint32_t h2 = l2 ? __dfsan_label_info[l2].hash : 0; + uint32_t h3 = op; + h3 = (h3 << 16) | size; + uint32_t hash = xxhash(h1, h2, h3); + + struct dfsan_label_info label_info = { + .l1 = l1, .l2 = l2, .op1 = {op1}, .op2 = {op2}, .op = op, .size = size, + .hash = hash}; + + __taint::option res = __union_table.lookup(label_info); + if (res != __taint::none()) { + dfsan_label label = *res; + AOUT("%u found\n", label); + return label; + } + + dfsan_label label = add_taint_info(&label_info); + __union_table.insert(&__dfsan_label_info[label], label); + + return label; +} + extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __taint_trace_cond(dfsan_label label, bool r, uint8_t flag, uint32_t cid); @@ -212,7 +252,7 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, // propagate if it's casting op if (op == __dfsan::BitCast) return l1; if (op == __dfsan::PtrToInt) {AOUT("WARNING: ptrtoint %d\n", l1); return 0;} - if ((op & 0xff) == __dfsan::ICmp) { return 0;} // ptr1 op ptr2 + if ((op & 0xff) == __dfsan::ICmp) { return 0; } // ptr1 op ptr2 if (op != __dfsan::Extract) { AOUT("WARNING: unsupported op %d over ptr1 %d ptr2 %d\n", op, l1, l2); return 0; @@ -313,8 +353,8 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, // check for division by zero // -fsanitize=integer-divide-by-zero if (orig_op2 != 0) { - cond = __taint_union(l2, 0, (bveq << 8) | __dfsan::ICmp, size, - orig_op2, 0); + cond = do_taint_union(l2, 0, (bveq << 8) | __dfsan::ICmp, size, + orig_op2, 0); __taint_trace_cond(cond, 0, UndefinedCheck, ub_division_by_zero); } break; @@ -324,30 +364,30 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, // -fsanitize=shift-exponent // check for too large value: exponent > size if (orig_op2 < size) { - cond = __taint_union(l2, 0, (bvuge << 8) | __dfsan::ICmp, - op_size, orig_op2, size), + cond = do_taint_union(l2, 0, (bvuge << 8) | __dfsan::ICmp, + op_size, orig_op2, size); __taint_trace_cond(cond, 0, UndefinedCheck, ub_shift_exponent); } if ((int64_t)orig_op2 >= 0) { // check for negative value - cond = __taint_union(l2, 0, (bvslt << 8) | __dfsan::ICmp, - op_size, orig_op2, 0), + cond = do_taint_union(l2, 0, (bvslt << 8) | __dfsan::ICmp, + op_size, orig_op2, 0); __taint_trace_cond(cond, 0, UndefinedCheck, ub_shift_exponent); } if (op == __dfsan::Shl && orig_op1 != 0 && orig_op2 <= __builtin_clzl(orig_op1) - (64 - size)) { // check for shift overflow // op2 > leading zero bits in op1 - cond = __taint_union(l2, 0, (bvugt << 8) | __dfsan::ICmp, op_size, - orig_op2, __builtin_clzl(orig_op1) - (64 - size)); + cond = do_taint_union(l2, 0, (bvugt << 8) | __dfsan::ICmp, op_size, + orig_op2, __builtin_clzl(orig_op1) - (64 - size)); __taint_trace_cond(cond, 0, UndefinedCheck, ub_shift_overflow); } if (l1 && (int64_t)orig_op1 >= 0) { // check for negative base // -fsanitize=shift-base // op1 < 0 - cond = __taint_union(l1, 0, (bvslt << 8) | __dfsan::ICmp, - get_label_info(l1)->size, orig_op1, 0); + cond = do_taint_union(l1, 0, (bvslt << 8) | __dfsan::ICmp, + get_label_info(l1)->size, orig_op1, 0); __taint_trace_cond(cond, 0, UndefinedCheck, ub_shift_base); } break; @@ -356,14 +396,7 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, } } - dfsan_label label = - atomic_fetch_add(&__dfsan_last_label, 1, memory_order_relaxed) + 1; - dfsan_check_label(label); - assert(label > l1 && label > l2); - - AOUT("%u = (%u, %u, %u, %u, %lu, %lu)\n", label, l1, l2, op, size, op1, op2); - - internal_memcpy(&__dfsan_label_info[label], &label_info, sizeof(dfsan_label_info)); + dfsan_label label = add_taint_info(&label_info); __union_table.insert(&__dfsan_label_info[label], label); if (flags().solve_ub) { @@ -373,9 +406,9 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, // old_vale >= (1 << new_size) if (orig_op1 < (1UL << size)) { // if current value does not have loss - dfsan_label loss = __taint_union(l1, 0, (bvuge << 8) | __dfsan::ICmp, - get_label_info(l1)->size, orig_op1, - 1UL << size); + dfsan_label loss = do_taint_union(l1, 0, (bvuge << 8) | __dfsan::ICmp, + get_label_info(l1)->size, orig_op1, + 1UL << size); __taint_trace_cond(loss, 0, UndefinedCheck, ub_unsigned_integer_truncation); } // -fsanitize=implicit-signed-integer-truncation @@ -384,8 +417,8 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, if ((int64_t)orig_op1 >= target) { uint16_t old_size = get_label_info(l1)->size; if (old_size < 64) target &= ~(1UL << old_size); - dfsan_label loss = __taint_union(l1, 0, (bvslt << 8) | __dfsan::ICmp, - old_size, orig_op1, target); + dfsan_label loss = do_taint_union(l1, 0, (bvslt << 8) | __dfsan::ICmp, + old_size, orig_op1, target); __taint_trace_cond(loss, 0, UndefinedCheck, ub_signed_integer_truncation); } @@ -402,12 +435,12 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, // Currently no sign change, check if it can happen // Sign changes when: sign_bit(l1) != sign_bit(label) // We check: (l1 < 0) XOR (label < 0) - dfsan_label src_neg = __taint_union(l1, 0, (bvslt << 8) | __dfsan::ICmp, - src_size, orig_op1, 0); - dfsan_label dst_neg = __taint_union(label, 0, (bvslt << 8) | __dfsan::ICmp, - size, orig_op1 & new_mask, 0); - dfsan_label sign_diff = __taint_union(src_neg, dst_neg, __dfsan::Xor, 1, - src_sign ? 1 : 0, dst_sign ? 1 : 0); + dfsan_label src_neg = do_taint_union(l1, 0, (bvslt << 8) | __dfsan::ICmp, + src_size, orig_op1, 0); + dfsan_label dst_neg = do_taint_union(label, 0, (bvslt << 8) | __dfsan::ICmp, + size, orig_op1 & new_mask, 0); + dfsan_label sign_diff = do_taint_union(src_neg, dst_neg, __dfsan::Xor, 1, + src_sign ? 1 : 0, dst_sign ? 1 : 0); __taint_trace_cond(sign_diff, 0, UndefinedCheck, ub_integer_sign_change); } } @@ -430,19 +463,19 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, if (!has_signed_overflow) { // Build symbolic expression: ((l1 ^ label) & (l2 ^ label)) < 0 - dfsan_label xor_l1 = __taint_union(l1, label, __dfsan::Xor, size, orig_op1, result); - dfsan_label xor_l2 = __taint_union(l2, label, __dfsan::Xor, size, orig_op2, result); - dfsan_label and_xors = __taint_union(xor_l1, xor_l2, __dfsan::And, size, xor1, xor2); - dfsan_label cond = __taint_union(and_xors, 0, (bvslt << 8) | __dfsan::ICmp, - size, overflow_check, 0); + dfsan_label xor_l1 = do_taint_union(l1, label, __dfsan::Xor, size, orig_op1, result); + dfsan_label xor_l2 = do_taint_union(l2, label, __dfsan::Xor, size, orig_op2, result); + dfsan_label and_xors = do_taint_union(xor_l1, xor_l2, __dfsan::And, size, xor1, xor2); + dfsan_label cond = do_taint_union(and_xors, 0, (bvslt << 8) | __dfsan::ICmp, + size, overflow_check, 0); __taint_trace_cond(cond, 0, UndefinedCheck, ub_integer_overflow); } // Unsigned overflow: result < op1 (for any non-zero op2) // When adding two unsigned numbers, overflow means result wrapped around if (result >= orig_op1 && orig_op2 != 0) { - dfsan_label cond = __taint_union(label, l1, (bvult << 8) | __dfsan::ICmp, - size, result, orig_op1); + dfsan_label cond = do_taint_union(label, l1, (bvult << 8) | __dfsan::ICmp, + size, result, orig_op1); __taint_trace_cond(cond, 0, UndefinedCheck, ub_integer_overflow); } } else if (op == __dfsan::Mul) { @@ -465,11 +498,11 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, bool has_signed_overflow = (overflow_check & sign_bit) != 0; if (!has_signed_overflow && orig_op1 != 0 && orig_op2 != 0) { - dfsan_label xor_l1 = __taint_union(l1, label, __dfsan::Xor, size, orig_op1, result); - dfsan_label xor_l2 = __taint_union(l2, label, __dfsan::Xor, size, orig_op2, result); - dfsan_label and_xors = __taint_union(xor_l1, xor_l2, __dfsan::And, size, xor1, xor2); - dfsan_label cond = __taint_union(and_xors, 0, (bvslt << 8) | __dfsan::ICmp, - size, overflow_check, 0); + dfsan_label xor_l1 = do_taint_union(l1, label, __dfsan::Xor, size, orig_op1, result); + dfsan_label xor_l2 = do_taint_union(l2, label, __dfsan::Xor, size, orig_op2, result); + dfsan_label and_xors = do_taint_union(xor_l1, xor_l2, __dfsan::And, size, xor1, xor2); + dfsan_label cond = do_taint_union(and_xors, 0, (bvslt << 8) | __dfsan::ICmp, + size, overflow_check, 0); __taint_trace_cond(cond, 0, UndefinedCheck, ub_integer_overflow); } @@ -478,8 +511,8 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, // No overflow currently, check if overflow can happen // Approximate: result < op1 || result < op2 when both > 1 if (orig_op1 > 1 && orig_op2 > 1) { - dfsan_label cond = __taint_union(label, l1, (bvult << 8) | __dfsan::ICmp, - size, result, orig_op1); + dfsan_label cond = do_taint_union(label, l1, (bvult << 8) | __dfsan::ICmp, + size, result, orig_op1); __taint_trace_cond(cond, 0, UndefinedCheck, ub_integer_overflow); } } @@ -503,19 +536,19 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, if (!has_signed_overflow) { // Build symbolic expression: ((l1 ^ l2) & (l1 ^ label)) < 0 - dfsan_label xor_l1l2 = __taint_union(l1, l2, __dfsan::Xor, size, orig_op1, orig_op2); - dfsan_label xor_l1r = __taint_union(l1, label, __dfsan::Xor, size, orig_op1, result); - dfsan_label and_xors = __taint_union(xor_l1l2, xor_l1r, __dfsan::And, size, xor_ab, xor_ar); - dfsan_label cond = __taint_union(and_xors, 0, (bvslt << 8) | __dfsan::ICmp, - size, overflow_check, 0); + dfsan_label xor_l1l2 = do_taint_union(l1, l2, __dfsan::Xor, size, orig_op1, orig_op2); + dfsan_label xor_l1r = do_taint_union(l1, label, __dfsan::Xor, size, orig_op1, result); + dfsan_label and_xors = do_taint_union(xor_l1l2, xor_l1r, __dfsan::And, size, xor_ab, xor_ar); + dfsan_label cond = do_taint_union(and_xors, 0, (bvslt << 8) | __dfsan::ICmp, + size, overflow_check, 0); __taint_trace_cond(cond, 0, UndefinedCheck, ub_integer_overflow); } // Unsigned underflow: result > op1 when op2 > 0 // When subtracting, if a < b, result wraps around to large value (result > a) if (result <= orig_op1 && orig_op2 != 0) { - dfsan_label cond = __taint_union(label, l1, (bvugt << 8) | __dfsan::ICmp, - size, result, orig_op1); + dfsan_label cond = do_taint_union(label, l1, (bvugt << 8) | __dfsan::ICmp, + size, result, orig_op1); __taint_trace_cond(cond, 0, UndefinedCheck, ub_integer_overflow); } } @@ -523,6 +556,54 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, return label; } +// If label is zero or kInitializingLabel, return it directly +// If label is bounds (Alloca), return it directly +// If label is a string op, create a new fstr_off label +// If label is other symbolic label, create an Add label with offset +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +dfsan_label __taint_gep_offset(dfsan_label label, char* result, char* base) { + // check label + if (label == 0 || label == kInitializingLabel) + return label; + + dfsan_label_info *info = get_label_info(label); + + // concrete ptrs, op == Alloca, just propagate bounds info + if (info->op == __dfsan::Alloca) { + return label; + } + + // symbolic ptrs, record the offset + int64_t offset = result - base; + + // Check if base_label is or derives from a string op + dfsan_label str_op_label = taint_find_string_op_source(label); + if (str_op_label != 0) { + // string op - create fstr_off label: l1=str_op_label, op1=offset + // This represents the content at (string_op_position + offset) + dfsan_label off_label = do_taint_union(str_op_label, 0, __dfsan::fstr_off, + sizeof(void*) * 8, + 0, (uint64_t)offset); + AOUT("str: label=%u, str_op=%u, offset=%ld, result=%u\n", + label, str_op_label, offset, off_label); + + // record the label (fstr_off is an indexOf-type op) + taint_set_str_indexof_label(result, off_label); + + return off_label; + } else if (offset == 0) { + // no offset, return original label + return label; + } + + if (info->size != sizeof(base) * 8) { + AOUT("WARNING: unexpected size %u for label %u\n", info->size, label); + return label; + } + + return do_taint_union(0, label, __dfsan::Add, info->size, (uint64_t)offset, 0); +} + extern "C" SANITIZER_INTERFACE_ATTRIBUTE dfsan_label __taint_union_load(const dfsan_label *ls, uptr n, uint64_t align) { if ((uptr)ls < 4096) { @@ -573,7 +654,7 @@ dfsan_label __taint_union_load(const dfsan_label *ls, uptr n, uint64_t align) { if (n == 1) return label0; AOUT("shape: label0: %d %lu\n", label0, n); - return __taint_union(label0, (dfsan_label)n, Load, n * 8, 0, 0); + return do_taint_union(label0, (dfsan_label)n, Load, n * 8, 0, 0); } // fast path 2: all labels are extracted from a n-size label, @@ -607,18 +688,18 @@ dfsan_label __taint_union_load(const dfsan_label *ls, uptr n, uint64_t align) { if (!is_constant_label(next_label)) { if (next_size <= (n - i) * 8) { i += next_size / 8; - label = __taint_union(label, next_label, Concat, i * 8, 0, 0); + label = do_taint_union(label, next_label, Concat, i * 8, 0, 0); } else { Report("WARNING: partial loading expected=%lu has=%d\n", n-i, next_size); uptr size = n - i; - dfsan_label trunc = __taint_union(next_label, CONST_LABEL, Trunc, size * 8, 0, 0); - return __taint_union(label, trunc, Concat, n * 8, 0, 0); + dfsan_label trunc = do_taint_union(next_label, CONST_LABEL, Trunc, size * 8, 0, 0); + return do_taint_union(label, trunc, Concat, n * 8, 0, 0); } } else { Report("WARNING: taint mixed with concrete %lu\n", i); char *c = (char *)app_for(&ls[i]); ++i; - label = __taint_union(label, 0, Concat, i * 8, 0, *c); + label = do_taint_union(label, 0, Concat, i * 8, 0, *c); } } AOUT("\n"); @@ -676,7 +757,7 @@ void __taint_union_store(dfsan_label l, dfsan_label *ls, uptr n, uint64_t align) // default fall through for (uptr i = 0; i < n; ++i) { - ls[i] = __taint_union(l, CONST_LABEL, Extract, 8, 0, i * 8); + ls[i] = do_taint_union(l, CONST_LABEL, Extract, 8, 0, i * 8); } } @@ -838,15 +919,15 @@ void __taint_solve_bounds(dfsan_label ptr_label, uint64_t ptr, // array with known size // // check underflow, index < 0 - dfsan_label lb = __taint_union(index_label, 0, (bvslt << 8) | ICmp, - index_bits, index, 0); + dfsan_label lb = do_taint_union(index_label, 0, (bvslt << 8) | ICmp, + index_bits, index, 0); // assume the result is false, as bounds check should happen before solving // no flag, no nested __taint_trace_cond(lb, 0, UndefinedCheck, ub_index_underflow); // check overflow, index >= num_elems - dfsan_label ub = __taint_union(index_label, 0, (bvsge << 8) | ICmp, - index_bits, index, num_elems); + dfsan_label ub = do_taint_union(index_label, 0, (bvsge << 8) | ICmp, + index_bits, index, num_elems); __taint_trace_cond(ub, 0, UndefinedCheck, ub_index_overflow); } else { // array with unknown size @@ -854,46 +935,46 @@ void __taint_solve_bounds(dfsan_label ptr_label, uint64_t ptr, if (bounds_info->op == __dfsan::Alloca) { // bounds information is available, check if allocation size is symbolic if (index_bits < 64) // extends index to 64 bits - index_label = __taint_union(index_label, 0, ZExt, 64, index, 0); + index_label = do_taint_union(index_label, 0, ZExt, 64, index, 0); if (bounds_info->l2 == 0) { // concrete allocation size, check bounds // check underflow, index * elem_size + current_offset + ptr < lower_bound // => index < (lower_bound - current_offset - ptr) / elem_size uint64_t lower_bound = (bounds_info->op1.i - current_offset - ptr) / elem_size; - dfsan_label lb = __taint_union(index_label, 0, (bvult << 8) | ICmp, - 64, index, lower_bound); + dfsan_label lb = do_taint_union(index_label, 0, (bvult << 8) | ICmp, + 64, index, lower_bound); __taint_trace_cond(lb, 0, UndefinedCheck, ub_index_underflow); // check overflow, (index + 1) * elem_size + current_offset + ptr > upper_bound // => index > (upper_bound - current_offset - ptr) / elem_size - 1 uint64_t upper_bound = (bounds_info->op2.i - current_offset - ptr) / elem_size - 1; - dfsan_label ub = __taint_union(index_label, 0, (bvugt << 8) | ICmp, - 64, index, upper_bound); + dfsan_label ub = do_taint_union(index_label, 0, (bvugt << 8) | ICmp, + 64, index, upper_bound); __taint_trace_cond(ub, 0, UndefinedCheck, ub_index_overflow); } else { // index * elem_size + current_offset + (ptr - lower_bound) > array_size * alloc_elem_size dfsan_label size_label = elem_size == 1 ? index_label : - __taint_union(index_label, 0, Mul, 64, index, elem_size); + do_taint_union(index_label, 0, Mul, 64, index, elem_size); uint64_t size = index * elem_size; uint64_t offset = current_offset + ptr - bounds_info->op1.i; size_label = offset == 0 ? size : - __taint_union(size_label, 0, Add, 64, size, offset); + do_taint_union(size_label, 0, Add, 64, size, offset); size += offset; uint64_t alloc_size = bounds_info->op2.i - bounds_info->op1.i; dfsan_label overflow = - __taint_union(size_label, bounds_info->l2, (bvugt << 8) | ICmp, - 64, size, alloc_size); + do_taint_union(size_label, bounds_info->l2, (bvugt << 8) | ICmp, + 64, size, alloc_size); __taint_trace_cond(overflow, 0, UndefinedCheck, ub_integer_to_buffer_overflow); } } else { // symbolic pointer but no bounds info? AOUT("WARNING: symbolic pointer %p = %u with no bounds info @%p\n", (void*)ptr, ptr_label, addr); - // check if null is possible? - dfsan_label null = __taint_union(ptr_label, 0, bveq, 64, ptr, 0); - __taint_trace_cond(null, 0, UndefinedCheck, ub_null_pointer); + // FIXME: check if null is possible? + // dfsan_label null = do_taint_union(ptr_label, 0, bveq, 64, ptr, 0); + // __taint_trace_cond(null, 0, UndefinedCheck, ub_null_pointer); } } } @@ -934,7 +1015,7 @@ void __taint_solve_size(dfsan_label ptr_label, uint64_t ptr, if (bounds_info->op == __dfsan::Alloca) { // bounds information is available if (size_bits < 64) // extend size to 64 bits - size_label = __taint_union(size_label, 0, ZExt, 64, size, 0); + size_label = do_taint_union(size_label, 0, ZExt, 64, size, 0); if (bounds_info->l2 == 0) { // concrete allocation size @@ -942,15 +1023,15 @@ void __taint_solve_size(dfsan_label ptr_label, uint64_t ptr, // => size < lower_bound - ptr (when lower_bound > ptr, but this shouldn't happen in valid code) // or equivalently, check that ptr < lower_bound (shouldn't happen) uint64_t min_size = bounds_info->op1.i - ptr; - dfsan_label underflow = __taint_union(size_label, 0, (bvult << 8) | ICmp, - 64, size, min_size); + dfsan_label underflow = do_taint_union(size_label, 0, (bvult << 8) | ICmp, + 64, size, min_size); __taint_trace_cond(underflow, 0, UndefinedCheck, ub_size_underflow); // check overflow: ptr + size > upper_bound // => size > upper_bound - ptr uint64_t max_size = bounds_info->op2.i - ptr; - dfsan_label overflow = __taint_union(size_label, 0, (bvugt << 8) | ICmp, - 64, size, max_size); + dfsan_label overflow = do_taint_union(size_label, 0, (bvugt << 8) | ICmp, + 64, size, max_size); __taint_trace_cond(overflow, 0, UndefinedCheck, ub_size_overflow); } else { // symbolic allocation size @@ -958,20 +1039,20 @@ void __taint_solve_size(dfsan_label ptr_label, uint64_t ptr, uint64_t offset = ptr - bounds_info->op1.i; uint64_t alloc_size = bounds_info->op2.i - bounds_info->op1.i; dfsan_label adjusted_size = offset == 0 ? size_label : - __taint_union(size_label, 0, Add, 64, size, offset); + do_taint_union(size_label, 0, Add, 64, size, offset); uint64_t actual_size = size + offset; - dfsan_label overflow = __taint_union(adjusted_size, bounds_info->l2, - (bvugt << 8) | ICmp, 64, - actual_size, alloc_size); + dfsan_label overflow = do_taint_union(adjusted_size, bounds_info->l2, + (bvugt << 8) | ICmp, 64, + actual_size, alloc_size); __taint_trace_cond(overflow, 0, UndefinedCheck, ub_size_to_buffer_overflow); } } else if (ptr_label != 0) { // symbolic pointer but no bounds info AOUT("WARNING: symbolic pointer %p = %u with no bounds info @%p\n", (void*)ptr, ptr_label, addr); - // check if null is possible - dfsan_label null = __taint_union(ptr_label, 0, bveq, 64, ptr, 0); - __taint_trace_cond(null, 0, UndefinedCheck, ub_null_pointer); + // FIXME: check if null is possible + // dfsan_label null = do_taint_union(ptr_label, 0, bveq, 64, ptr, 0); + // __taint_trace_cond(null, 0, UndefinedCheck, ub_null_pointer); } } } @@ -1058,8 +1139,7 @@ void dfsan_set_label(dfsan_label label, void *addr, uptr size) { SANITIZER_INTERFACE_ATTRIBUTE void dfsan_add_label(dfsan_label label, uint8_t op, void *addr, uptr size) { - for (dfsan_label *labelp = shadow_for(addr); size != 0; --size, ++labelp) - *labelp = __taint_union(*labelp, label, op, 1, 0, 0); + return; // not used, do nothing } // Unlike the other dfsan interface functions the behavior of this function @@ -1565,6 +1645,66 @@ extern "C" dfsan_label taint_get_str_indexof_label(const void *addr) { return 0; } +// Helper: Find if a label derives from a string op (fstrchr, fstrrchr, fstrstr) +// by walking through PtrToInt, Sub, Add operations. +// Returns the string op label if found, 0 otherwise. +extern "C" dfsan_label taint_find_string_op_source(dfsan_label label) { + if (label < CONST_OFFSET) return 0; + + dfsan_label_info *info = dfsan_get_label_info(label); + uint16_t op = info->op; + + // Check if this is directly a string op + if (is_string_op(op)) { + return label; + } + + // Follow through PtrToInt, Sub, Add to find the source string op + if (op == __dfsan::PtrToInt || op == __dfsan::Sub || op == __dfsan::Add) { + // Recursively check l1 (the primary operand) + if (info->l1 >= CONST_OFFSET) { + dfsan_label result = taint_find_string_op_source(info->l1); + if (result != 0) return result; + } + // For Sub/Add, also check l2 + if ((op == __dfsan::Sub || op == __dfsan::Add) && info->l2 >= CONST_OFFSET) { + dfsan_label result = taint_find_string_op_source(info->l2); + if (result != 0) return result; + } + } + + return 0; +} + +// Helper: Find the first (base) input byte label from a content label. +// Walks through Concat chains and Load operations to find the starting input. +// Returns the base label, or 0 if not found. +extern "C" dfsan_label taint_get_base_input_label(dfsan_label label) { + if (label < CONST_OFFSET) return 0; + + dfsan_label_info *info = dfsan_get_label_info(label); + + // Base input label has op == 0 + if (info->op == 0) return label; + + // For Concat (op 72), walk left (l1) to find the base + if (info->op == __dfsan::Concat) { + return taint_get_base_input_label(info->l1); + } + + // For Load (op 32), l1 is the starting label + if (info->op == __dfsan::Load) { + return info->l1; + } + + // For other ops, try l1 + if (info->l1 >= CONST_OFFSET) { + return taint_get_base_input_label(info->l1); + } + + return 0; +} + // information is passed implicitly through flags() extern "C" void InitializeSymSanSolver(); @@ -1754,7 +1894,7 @@ void __taint_set_arg_tls(uint32_t index, dfsan_label label, uint32_t size_in_bit // Truncate if size_in_bits is not byte-aligned uint32_t size_in_bytes = (size_in_bits + 7) / 8; if (size_in_bits < size_in_bytes * 8) { - label = __taint_union(label, CONST_LABEL, Trunc, size_in_bits, 0, 0); + label = do_taint_union(label, CONST_LABEL, Trunc, size_in_bits, 0, 0); } AOUT("set arg tls[%u] = %u\n", index, label); __dfsan_arg_tls[index] = label; @@ -1768,7 +1908,7 @@ void __taint_set_retval_tls(dfsan_label label, uint32_t size_in_bits) { // Truncate if size_in_bits is not byte-aligned uint32_t size_in_bytes = (size_in_bits + 7) / 8; if (size_in_bits < size_in_bytes * 8) { - label = __taint_union(label, CONST_LABEL, Trunc, size_in_bits, 0, 0); + label = do_taint_union(label, CONST_LABEL, Trunc, size_in_bits, 0, 0); } __dfsan_retval_tls[0] = label; } diff --git a/runtime/dfsan/dfsan.h b/runtime/dfsan/dfsan.h index 2781bb82..b6a1fa8c 100644 --- a/runtime/dfsan/dfsan.h +++ b/runtime/dfsan/dfsan.h @@ -106,6 +106,8 @@ void taint_set_str_content_label(void *addr, dfsan_label label); dfsan_label taint_get_str_content_label(const void *addr); void taint_set_str_indexof_label(void *addr, dfsan_label label); dfsan_label taint_get_str_indexof_label(const void *addr); +dfsan_label taint_find_string_op_source(dfsan_label label); +dfsan_label taint_get_base_input_label(dfsan_label label); // taint source utmp off_t get_utmp_offset(void); @@ -232,7 +234,7 @@ static inline uint8_t get_const_result(uint64_t c1, uint64_t c2, uint32_t predic return 0; } -static inline bool is_commutative(unsigned char op) { +static inline bool is_commutative(uint16_t op) { switch(op) { case Not: case And: @@ -248,6 +250,22 @@ static inline bool is_commutative(unsigned char op) { } } +// Check if an op is a string operation (fstr_op_start to fstr_op_end) +static inline bool is_string_op(uint16_t op) { + return op >= __dfsan::fstr_op_start && op < __dfsan::fstr_op_end; +} + +// Check if an op is an indexOf-type operation (returns position, not content) +// These are: fstrchr, fstrrchr, fstrstr, fstrpbrk, fstr_off +static inline bool is_indexof_op(uint16_t op) { + return op >= __dfsan::fstrchr && op <= __dfsan::fstr_off; +} + +// Check if an op is a content-type string operation (fsubstr, fstrcat) +static inline bool is_content_string_op(uint16_t op) { + return op == __dfsan::fsubstr || op == __dfsan::fstrcat; +} + // for out-of-process solving enum pipe_msg_type { diff --git a/runtime/dfsan/dfsan_custom.cpp b/runtime/dfsan/dfsan_custom.cpp index c4632805..bc17e729 100644 --- a/runtime/dfsan/dfsan_custom.cpp +++ b/runtime/dfsan/dfsan_custom.cpp @@ -63,82 +63,6 @@ SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE void f(__VA_ARGS__); static off_t current_stdin_offset = 0; -// Check if an op is a string operation (fstr_op_start to fstr_op_end) -static inline bool is_string_op(uint16_t op) { - return op >= __dfsan::fstr_op_start && op < __dfsan::fstr_op_end; -} - -// Check if an op is an indexOf-type operation (returns position, not content) -// These are: fstrchr, fstrrchr, fstrstr, fstrpbrk, fstr_off -static inline bool is_indexof_op(uint16_t op) { - return op >= __dfsan::fstrchr && op <= __dfsan::fstr_off; -} - -// Check if an op is a content-type string operation (fsubstr, fstrcat) -static inline bool is_content_string_op(uint16_t op) { - return op == __dfsan::fsubstr || op == __dfsan::fstrcat; -} - -// Helper: Find the first (base) input byte label from a content label. -// Walks through Concat chains and Load operations to find the starting input. -// Returns the base label, or 0 if not found. -static dfsan_label get_base_input_label(dfsan_label label) { - if (label < CONST_OFFSET) return 0; - - dfsan_label_info *info = dfsan_get_label_info(label); - - // Base input label has op == 0 - if (info->op == 0) return label; - - // For Concat (op 72), walk left (l1) to find the base - if (info->op == __dfsan::Concat) { - return get_base_input_label(info->l1); - } - - // For Load (op 32), l1 is the starting label - if (info->op == __dfsan::Load) { - return info->l1; - } - - // For other ops, try l1 - if (info->l1 >= CONST_OFFSET) { - return get_base_input_label(info->l1); - } - - return 0; -} - -// Helper: Find if a label derives from a string op (fstrchr, fstrrchr, fstrstr) -// by walking through PtrToInt, Sub, Add operations. -// Returns the string op label if found, 0 otherwise. -static dfsan_label find_string_op_source(dfsan_label label) { - if (label < CONST_OFFSET) return 0; - - dfsan_label_info *info = dfsan_get_label_info(label); - uint16_t op = info->op; - - // Check if this is directly a string op - if (is_string_op(op)) { - return label; - } - - // Follow through PtrToInt, Sub, Add to find the source string op - if (op == __dfsan::PtrToInt || op == __dfsan::Sub || op == __dfsan::Add) { - // Recursively check l1 (the primary operand) - if (info->l1 >= CONST_OFFSET) { - dfsan_label result = find_string_op_source(info->l1); - if (result != 0) return result; - } - // For Sub/Add, also check l2 - if ((op == __dfsan::Sub || op == __dfsan::Add) && info->l2 >= CONST_OFFSET) { - dfsan_label result = find_string_op_source(info->l2); - if (result != 0) return result; - } - } - - return 0; -} - // Unified method to get string label with explicit length // Checks (in order): // 1. Runtime content map (for strncpy/strcat destinations) @@ -207,7 +131,7 @@ static inline dfsan_label get_str_label_n(const void *s, dfsan_label s_label, // 4. Check if n_label derives from a string op (e.g., ptr arithmetic on memchr result) // If so, create fsubstr to represent substr(content, 0, idx) where idx is the string op result // IMPORTANT: Do this even when n=0 to preserve the symbolic constraint! - dfsan_label str_op_label = find_string_op_source(n_label); + dfsan_label str_op_label = taint_find_string_op_source(n_label); if (str_op_label != 0) { dfsan_label_info *str_op_info = dfsan_get_label_info(str_op_label); dfsan_label str_op_content = str_op_info->l1; @@ -219,8 +143,8 @@ static inline dfsan_label get_str_label_n(const void *s, dfsan_label s_label, // Verify same underlying buffer only if content is available bool same_buffer = true; if (content_label != 0) { - dfsan_label src_base = get_base_input_label(content_label); - dfsan_label str_op_base = get_base_input_label(str_op_content); + dfsan_label src_base = taint_get_base_input_label(content_label); + dfsan_label str_op_base = taint_get_base_input_label(str_op_content); same_buffer = (src_base != 0 && src_base == str_op_base); } // When n=0, trust that n_label derives from same buffer @@ -402,32 +326,6 @@ __dfsw_lstat(const char *path, struct stat *buf, dfsan_label path_label, return ret; } -// Create a label for string op + constant offset (for pointer arithmetic like sep + 1) -// If base_label is a string op, returns a new fstr_off label; otherwise returns base_label -extern "C" SANITIZER_INTERFACE_ATTRIBUTE -void __taint_trace_gep_ptr(dfsan_label base_label, char *result, char *base) { - if (base_label < CONST_OFFSET) return; - - // Check if base_label is or derives from a string op - dfsan_label str_op_label = find_string_op_source(base_label); - if (str_op_label == 0) { - // Not a string op - return base label unchanged - return; - } - - // Create fstr_off label: l1=str_op_label, op1=offset - // This represents the content at (string_op_position + offset) - uint64_t offset = (uint64_t)(result - base); - dfsan_label off_label = dfsan_union(str_op_label, 0, __dfsan::fstr_off, - sizeof(void*) * 8, - 0, (uint64_t)offset); - AOUT("gep_ptr: base=%u, str_op=%u, offset=%ld, result=%u\n", - base_label, str_op_label, offset, off_label); - - // record the label (fstr_off is an indexOf-type op) - taint_set_str_indexof_label(result, off_label); -} - SANITIZER_INTERFACE_ATTRIBUTE char *__dfsw_strchr(char *s, int c, dfsan_label s_label, dfsan_label c_label, @@ -1145,7 +1043,7 @@ __dfsw_strncpy(char *s1, const char *s2, size_t n, dfsan_label s1_label, __taint_solve_bounds(s1_label, (uint64_t)s1, n_label, n, 0, 1, 0, 0); // Check if n_label derives from a string op (e.g., strchr index) - dfsan_label str_op_label = n_label ? find_string_op_source(n_label) : 0; + dfsan_label str_op_label = n_label ? taint_find_string_op_source(n_label) : 0; bool created_fsubstr = false; if (str_op_label != 0) { @@ -1160,8 +1058,8 @@ __dfsw_strncpy(char *s1, const char *s2, size_t n, dfsan_label s1_label, if (copy_len > 0) { dfsan_label src_content = dfsan_read_label(s2, copy_len); if (src_content >= CONST_OFFSET) { - dfsan_label src_base = get_base_input_label(src_content); - dfsan_label str_op_base = get_base_input_label(str_op_content); + dfsan_label src_base = taint_get_base_input_label(src_content); + dfsan_label str_op_base = taint_get_base_input_label(str_op_content); buffers_match = (src_base != 0 && src_base == str_op_base); } } else { From 080ceebba15efb04f49ba96099bc4aa07b524f87 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Mon, 26 Jan 2026 18:46:55 -0800 Subject: [PATCH 012/139] to support ucsan, (1) allow init parser without laucher, (2) we may have an empty seed --- include/parse-rgd.h | 2 +- include/parse-z3.h | 9 ++- include/parse.h | 3 +- parsers/rgd-parser.cpp | 2 +- python/symsan-py.cpp | 126 +++++++++++++++++++++++++++++++++++++---- solvers/z3-ts.cpp | 125 ++++++++++++++++++++++++++-------------- 6 files changed, 210 insertions(+), 57 deletions(-) diff --git a/include/parse-rgd.h b/include/parse-rgd.h index dd01b52d..bb3845f6 100644 --- a/include/parse-rgd.h +++ b/include/parse-rgd.h @@ -17,7 +17,7 @@ class RGDAstParser : public symsan::ASTParser { solve_nested_(solve_nested), max_ast_size_(max_ast_size) {} ~RGDAstParser() {} - int restart(std::vector &inputs) override; + int restart(std::vector &inputs, bool copy_input = false) override; int parse_cond(dfsan_label label, bool result, bool add_nested, std::vector &tasks) override; int parse_gep(dfsan_label ptr_label, uptr ptr, diff --git a/include/parse-z3.h b/include/parse-z3.h index 1304437b..31d24c21 100644 --- a/include/parse-z3.h +++ b/include/parse-z3.h @@ -20,7 +20,7 @@ class Z3AstParser : public ASTParser { } } - int restart(std::vector &inputs) override; + int restart(std::vector &inputs, bool copy_input = false) override; int parse_cond(dfsan_label label, bool result, bool add_nested, std::vector &tasks) override; int parse_gep(dfsan_label ptr_label, uptr ptr, @@ -75,9 +75,12 @@ class Z3AstParser : public ASTParser { std::unordered_map string_info_cache_; private: - // Original input cache + // Original input cache (stores pointers to input data) std::vector inputs_cache_; + // Copied input data (when copy_input=true, owns the data) + std::vector> inputs_copy_; + // fsize flag bool has_fsize; @@ -161,6 +164,8 @@ class Z3AstParser : public ASTParser { z3::expr read_concrete(dfsan_label label, uint16_t size); z3::expr serialize(dfsan_label label, input_dep_set_t &deps); + uint64_t serialize_input(dfsan_label label, uint32_t input, uint32_t offset, + uint32_t bytes, input_dep_set_t &input_deps); inline void collect_more_deps(input_dep_set_t &deps); inline void mark_expr_type(dfsan_label label, input_dep_set_t &inputs); inline size_t add_nested_constraints(input_dep_set_t &deps, z3_task_t *task); diff --git a/include/parse.h b/include/parse.h index 98d595fd..8ef16c21 100644 --- a/include/parse.h +++ b/include/parse.h @@ -37,8 +37,9 @@ class ASTParser { prev_task_id_(0) {} virtual ~ASTParser() {} - virtual int restart(std::vector &inputs) { + virtual int restart(std::vector &inputs, bool copy_input = false) { (void)inputs; + (void)copy_input; memcmp_cache_.clear(); return 0; } diff --git a/parsers/rgd-parser.cpp b/parsers/rgd-parser.cpp index 2a6f43cd..f7606070 100644 --- a/parsers/rgd-parser.cpp +++ b/parsers/rgd-parser.cpp @@ -108,7 +108,7 @@ static void printAst(FILE* f, const rgd::AstNode *node, int indent) { fprintf(f, ")\n"); } -int RGDAstParser::restart(std::vector &inputs) { +int RGDAstParser::restart(std::vector &inputs, bool copy_input) { // save a copy of the inputs inputs_cache = inputs; // clear caches diff --git a/python/symsan-py.cpp b/python/symsan-py.cpp index 41e5c2cd..c92bed03 100644 --- a/python/symsan-py.cpp +++ b/python/symsan-py.cpp @@ -22,20 +22,29 @@ extern "C" { #include #include +#include +#include #define PY_SSIZE_T_CLEAN #include +// For attach mode - track mapped shm for cleanup +static void *__attached_shm = nullptr; +static size_t __attached_shm_size = 0; + // z3parser static z3::context __z3_context; symsan::Z3ParserSolver *__z3_parser = nullptr; -static PyObject* SymSanInit(PyObject *self, PyObject *args) { +static PyObject* SymSanInit(PyObject *self, PyObject *args, PyObject *keywds) { + static const char *kwlist[] = {"program", "shm_size", "init_solver", NULL}; const char *program; unsigned long long ut_size = uniontable_size; + int init_solver = 1; // default True - if (!PyArg_ParseTuple(args, "s|K", &program, &ut_size)) { + if (!PyArg_ParseTupleAndKeywords(args, keywds, "s|Kp", + const_cast(kwlist), &program, &ut_size, &init_solver)) { return NULL; } @@ -46,11 +55,13 @@ static PyObject* SymSanInit(PyObject *self, PyObject *args) { return PyErr_SetFromErrno(PyExc_OSError); } - // setup parser - __z3_parser = new symsan::Z3ParserSolver(shm_base, ut_size, __z3_context); - if (__z3_parser == nullptr) { - fprintf(stderr, "Failed to initialize parser\n"); - return PyErr_NoMemory(); + // setup parser (optional) + if (init_solver) { + __z3_parser = new symsan::Z3ParserSolver(shm_base, ut_size, __z3_context); + if (__z3_parser == nullptr) { + fprintf(stderr, "Failed to initialize parser\n"); + return PyErr_NoMemory(); + } } return PyCapsule_New(shm_base, "dfsan_label_info", NULL); @@ -200,13 +211,104 @@ static PyObject* SymSanTerminate(PyObject *self) { static PyObject* SymSanDestroy(PyObject *self) { if (__z3_parser != nullptr) { delete __z3_parser; - symsan_destroy(); __z3_parser = nullptr; } + + // Clean up attached shm (from init_parser with shm name) + if (__attached_shm != nullptr) { + munmap(__attached_shm, __attached_shm_size); + __attached_shm = nullptr; + __attached_shm_size = 0; + } else { + // Only call symsan_destroy if we used init (launcher mode) + symsan_destroy(); + } + Py_RETURN_NONE; } +// Initialize parser from shared memory (by name or address) +// Usage: init_parser(shm_name, size) or init_parser(shm_capsule, size) static PyObject* InitParser(PyObject *self, PyObject *args) { + PyObject *shm_arg = NULL; + unsigned long long shm_size = 0; + + if (!PyArg_ParseTuple(args, "OK", &shm_arg, &shm_size)) { + return NULL; + } + + // Clean up any previous parser + if (__z3_parser != nullptr) { + delete __z3_parser; + __z3_parser = nullptr; + } + if (__attached_shm != nullptr) { + munmap(__attached_shm, __attached_shm_size); + __attached_shm = nullptr; + __attached_shm_size = 0; + } + + void *shm_base = nullptr; + + if (PyUnicode_Check(shm_arg)) { + // shm_arg is a string (shared memory name) + const char *shm_name = PyUnicode_AsUTF8(shm_arg); + if (shm_name == NULL) { + return NULL; + } + + int shm_fd = shm_open(shm_name, O_RDWR, S_IRUSR | S_IWUSR); + if (shm_fd == -1) { + fprintf(stderr, "Failed to open shm '%s': %s\n", shm_name, strerror(errno)); + return PyErr_SetFromErrno(PyExc_OSError); + } + + shm_base = mmap(0, shm_size, PROT_READ | PROT_WRITE, MAP_SHARED, shm_fd, 0); + close(shm_fd); + + if (shm_base == MAP_FAILED) { + fprintf(stderr, "Failed to mmap shm: %s\n", strerror(errno)); + return PyErr_SetFromErrno(PyExc_OSError); + } + + __attached_shm = shm_base; + __attached_shm_size = shm_size; + } else if (PyCapsule_CheckExact(shm_arg)) { + // shm_arg is a capsule (already mapped address) + shm_base = PyCapsule_GetPointer(shm_arg, "dfsan_label_info"); + if (shm_base == NULL) { + return NULL; + } + // Don't track for munmap - caller owns this memory + } else if (PyLong_Check(shm_arg)) { + // shm_arg is an integer address + shm_base = (void *)PyLong_AsUnsignedLongLong(shm_arg); + if (PyErr_Occurred()) { + return NULL; + } + // Don't track for munmap - caller owns this memory + } else { + PyErr_SetString(PyExc_TypeError, "first argument must be shm name (str), capsule, or address (int)"); + return NULL; + } + + // Create the parser + __z3_parser = new symsan::Z3ParserSolver(shm_base, shm_size, __z3_context); + if (__z3_parser == nullptr) { + if (__attached_shm != nullptr) { + munmap(__attached_shm, __attached_shm_size); + __attached_shm = nullptr; + __attached_shm_size = 0; + } + fprintf(stderr, "Failed to initialize parser\n"); + return PyErr_NoMemory(); + } + + Py_RETURN_NONE; +} + +// Reset parser with new input data +static PyObject* ResetParser(PyObject *self, PyObject *args) { if (__z3_parser == nullptr) { PyErr_SetString(PyExc_RuntimeError, "parser not initialized"); return NULL; @@ -239,7 +341,8 @@ static PyObject* InitParser(PyObject *self, PyObject *args) { inputs.push_back({(uint8_t*)data, size}); } - if (__z3_parser->restart(inputs) != 0) { + // Always copy input data in Python to avoid dangling pointers + if (__z3_parser->restart(inputs, true) != 0) { PyErr_SetString(PyExc_RuntimeError, "failed to restart parser"); return NULL; } @@ -414,13 +517,14 @@ static PyObject* SolveTask(PyObject *self, PyObject *args) { } static PyMethodDef SymSanMethods[] = { - {"init", SymSanInit, METH_VARARGS, "initialize symsan target"}, + {"init", (PyCFunction)SymSanInit, METH_VARARGS | METH_KEYWORDS, "initialize symsan target"}, {"config", (PyCFunction)SymSanConfig, METH_VARARGS | METH_KEYWORDS, "config symsan"}, {"run", (PyCFunction)SymSanRun, METH_VARARGS | METH_KEYWORDS, "run symsan target, optional stdin=file"}, {"read_event", SymSanReadEvent, METH_VARARGS, "read a symsan event"}, {"terminate", (PyCFunction)SymSanTerminate, METH_NOARGS, "terminate current symsan instance"}, {"destroy", (PyCFunction)SymSanDestroy, METH_NOARGS, "destroy symsan target"}, - {"reset_input", InitParser, METH_VARARGS, "reset the symbolic expression parser with a new input"}, + {"init_parser", InitParser, METH_VARARGS, "initialize parser from shared memory (name or address)"}, + {"reset_input", ResetParser, METH_VARARGS, "reset the symbolic expression parser with a new input"}, {"parse_cond", ParseCond, METH_VARARGS, "parse trace_cond event into solving tasks"}, {"parse_gep", ParseGEP, METH_VARARGS, "parse trace_gep event into solving tasks"}, {"add_constraint", AddConstraint, METH_VARARGS, "add a constraint"}, diff --git a/solvers/z3-ts.cpp b/solvers/z3-ts.cpp index 1d095c9b..10628ce9 100644 --- a/solvers/z3-ts.cpp +++ b/solvers/z3-ts.cpp @@ -144,7 +144,7 @@ Z3AstParser::Z3AstParser(void *base, size_t size, z3::context &context) strlen_name_format = "strlen-%u-%u-%lu-%u"; // input, offset, original_len, null_from_input } -int Z3AstParser::restart(std::vector &inputs) { +int Z3AstParser::restart(std::vector &inputs, bool copy_input) { // reset caches memcmp_cache_.clear(); @@ -174,16 +174,33 @@ int Z3AstParser::restart(std::vector &inputs) { string_info_cache_.clear(); branch_deps_.clear(); branch_deps_.resize(inputs.size()); - for (size_t i = 0; i < inputs.size(); i++) { auto &input = inputs[i]; -#if FILTER_WRONG_AST - inputs_cache_.emplace_back(input.first, input.second); -#endif - // resize branch_deps_ branch_deps_[i].resize(input.second); } + // Clear old cached data + inputs_cache_.clear(); + inputs_copy_.clear(); + +#if FILTER_WRONG_AST + if (copy_input) { + // Copy input data and point inputs_cache_ to our owned copies + inputs_copy_.resize(inputs.size()); + for (size_t i = 0; i < inputs.size(); i++) { + auto &input = inputs[i]; + inputs_copy_[i].assign(input.first, input.first + input.second); + inputs_cache_.emplace_back(inputs_copy_[i].data(), inputs_copy_[i].size()); + } + } else { + // Just store pointers (caller must keep data alive) + for (size_t i = 0; i < inputs.size(); i++) { + auto &input = inputs[i]; + inputs_cache_.emplace_back(input.first, input.second); + } + } +#endif + return 0; } @@ -272,6 +289,50 @@ static bool eval_icmp(uint16_t predicate, uint64_t val1, uint64_t val2, uint8_t // std::unreachable(); } +uint64_t Z3AstParser::serialize_input(dfsan_label label, uint32_t input, uint32_t offset, + uint32_t bytes, input_dep_set_t &input_deps) { + char name[256]; + snprintf(name, sizeof(name), input_name_format, input, offset); + z3::symbol symbol = context_.str_symbol(name); + z3::sort sort = context_.bv_sort(8); + z3::expr first_byte = context_.constant(symbol, sort); + z3::expr out = first_byte; + { // for ucsan, due to lazy init, the input may be empty + if (input >= branch_deps_.size()) branch_deps_.resize(input + 1); + if (offset >= branch_deps_[input].size()) + branch_deps_[input].resize(offset + bytes); + } + // Cache first byte in branch_dependency for linking (linear scan: always new) + set_branch_dep({input, offset}, std::make_unique(first_byte)); + uint64_t val = 0; +#if FILTER_WRONG_AST + if (inputs_cache_.size() > input && + inputs_cache_[input].second > offset) { + val = (uint64_t)inputs_cache_[input].first[offset]; + } +#endif + for (uint32_t i = 1; i < bytes; i++) { + snprintf(name, sizeof(name), input_name_format, input, offset + i); + symbol = context_.str_symbol(name); + z3::expr byte_expr = context_.constant(symbol, sort); + out = z3::concat(byte_expr, out); + input_deps.insert(std::make_pair(input, offset + i)); + // Cache each byte expr in branch_dependency (linear scan: always new) + set_branch_dep({input, offset + i}, std::make_unique(byte_expr)); +#if FILTER_WRONG_AST + if (inputs_cache_.size() > input && + inputs_cache_[input].second > offset + i) { + val |= (uint64_t)inputs_cache_[input].first[offset + i] << (i * 8); + } +#endif + } + + tsize_cache_.emplace_back(1); + cache_expr(label, out); + + return val; +} + z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { if (label < CONST_OFFSET || label == __dfsan::kInitializingLabel) { throw z3::exception("invalid label"); @@ -334,47 +395,15 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { // input uint32_t offset = info->op1.i; // legacy: offset in op1 uint32_t input = info->op2.i; - snprintf(name, sizeof(name), input_name_format, input, offset); - z3::symbol symbol = context_.str_symbol(name); - z3::sort sort = context_.bv_sort(8); - tsize_cache_.emplace_back(1); - input_deps.insert(std::make_pair(input, offset)); - // caching is not super helpful - z3::expr input_expr = context_.constant(symbol, sort); - cache_expr(l, input_expr); - // Cache input expr in branch_dependency for linking (linear scan: always new) - set_branch_dep({input, offset}, std::make_unique(input_expr)); + uint64_t val = serialize_input(l, input, offset, info->size / 8, input_deps); TRACK_LABEL_BV_ONLY(); - RECORD_VALUE(inputs_cache_[input].first[offset]); + RECORD_VALUE(val); continue; } else if (info->op == __dfsan::Load) { uint32_t offset = get_label_info(info->l1)->op1.i; // legacy: offset in op1 uint32_t input = get_label_info(info->l1)->op2.i; - snprintf(name, sizeof(name), input_name_format, input, offset); - z3::symbol symbol = context_.str_symbol(name); - z3::sort sort = context_.bv_sort(8); - z3::expr first_byte = context_.constant(symbol, sort); - z3::expr out = first_byte; input_deps.insert(std::make_pair(input, offset)); - // Cache first byte expr in branch_dependency (linear scan: always new) - set_branch_dep({input, offset}, std::make_unique(first_byte)); -#if FILTER_WRONG_AST - uint64_t val = inputs_cache_[input].first[offset]; -#endif - for (uint32_t i = 1; i < info->l2; i++) { - snprintf(name, sizeof(name), input_name_format, input, offset + i); - symbol = context_.str_symbol(name); - z3::expr byte_expr = context_.constant(symbol, sort); - out = z3::concat(byte_expr, out); - input_deps.insert(std::make_pair(input, offset + i)); - // Cache each byte expr in branch_dependency (linear scan: always new) - set_branch_dep({input, offset + i}, std::make_unique(byte_expr)); -#if FILTER_WRONG_AST - val |= (uint64_t)inputs_cache_[input].first[offset + i] << (i * 8); -#endif - } - tsize_cache_.emplace_back(1); - cache_expr(l, out); + uint64_t val = serialize_input(l, input, offset, info->l2, input_deps); TRACK_LABEL_BV_ONLY(); RECORD_VALUE(val); continue; @@ -1593,6 +1622,10 @@ int Z3AstParser::parse_cond(dfsan_label label, bool result, bool add_nested, std return 0; // success } catch (z3::exception e) { fprintf(stderr, "WARNING: parsing error: %s\n", e.msg()); + } catch (std::exception& e) { + fprintf(stderr, "WARNING: std::exception in parse_cond: %s\n", e.what()); + } catch (...) { + fprintf(stderr, "WARNING: unknown exception in parse_cond\n"); } // exception happened, nothing added @@ -1697,6 +1730,10 @@ int Z3AstParser::parse_gep(dfsan_label ptr_label, uptr ptr, dfsan_label index_la return 0; // success } catch (z3::exception e) { // logf("WARNING: solving error: %s\n", e.msg()); + } catch (std::exception& e) { + fprintf(stderr, "WARNING: std::exception in parse_gep: %s\n", e.what()); + } catch (...) { + fprintf(stderr, "WARNING: unknown exception in parse_gep\n"); } // exception happened, nothing added @@ -1737,6 +1774,12 @@ int Z3AstParser::add_constraints(dfsan_label label, uint64_t result) { save_constraint(expr == r, inputs); } catch (z3::exception e) { return -1; + } catch (std::exception& e) { + fprintf(stderr, "WARNING: std::exception in add_constraints: %s\n", e.what()); + return -1; + } catch (...) { + fprintf(stderr, "WARNING: unknown exception in add_constraints\n"); + return -1; } return 0; From 05845cc97c5572565d2f144c3996d999d2114bcf Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Mon, 26 Jan 2026 18:48:57 -0800 Subject: [PATCH 013/139] send point_by info through pipe_msg, ucsan no longer use the same union table as symsan --- backend/thoroupy.cpp | 6 ++-- runtime/dfsan/ucsan.cpp | 78 ++++++++++++++++++++++++++--------------- 2 files changed, 53 insertions(+), 31 deletions(-) diff --git a/backend/thoroupy.cpp b/backend/thoroupy.cpp index f1ce35b3..eafe9f87 100644 --- a/backend/thoroupy.cpp +++ b/backend/thoroupy.cpp @@ -181,7 +181,8 @@ __taint_trace_loop(uint32_t bid, int depth) { } extern "C" SANITIZER_INTERFACE_ATTRIBUTE void -__taint_trace_event_addr(dfsan_label label, uint32_t event_id, uint64_t info, void* addr, uint16_t flags) { +__taint_trace_event_addr(dfsan_label label, uint32_t event_id, uint64_t info, + void* addr, uint32_t info2) { AOUT("event: %u %u %llu @%p\n", label, event_id, info, addr); if (__pipe_fd < 0) @@ -189,10 +190,11 @@ __taint_trace_event_addr(dfsan_label label, uint32_t event_id, uint64_t info, vo pipe_msg msg = { .msg_type = event_type, - .flags = flags, + .flags = 0, .instance_id = __instance_id, .addr = (uptr)addr, .context = event_id, + .id = info2, .label = label, .result = info }; diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index 84bb07f2..911d5f7e 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -34,20 +34,25 @@ using namespace __sanitizer; // Forward declarations for trace callbacks (implemented in solvers) extern "C" SANITIZER_INTERFACE_ATTRIBUTE -void __taint_trace_event_addr(__ucsan::ucsan_label label, uint32_t event_id, uint64_t info, void* addr, uint16_t flags); +void __taint_trace_event_addr(__ucsan::ucsan_label label, uint32_t event_id, + uint64_t info, void* addr, uint32_t info2); extern "C" SANITIZER_INTERFACE_ATTRIBUTE -void __taint_trace_global_var(__ucsan::ucsan_label label, uint64_t size, void *gv); +void __taint_trace_global_var(__ucsan::ucsan_label label, uint64_t size, + void *gv); // Forward declaration for UCSan solver initialization (thoroupy backend) extern "C" void InitializeUCSanSolver(); -// Forward declarations for SymSan bridge functions (weak stubs, overridden when linked with SymSan) +// Forward declarations for SymSan bridge functions +// (weak stubs, overridden when linked with SymSan) extern "C" SANITIZER_INTERFACE_ATTRIBUTE -dfsan_label __taint_create_label(uint32_t object_id, uint64_t offset, uint32_t size_in_bytes); +dfsan_label __taint_create_label(uint32_t object_id, uint64_t offset, + uint32_t size_in_bytes); extern "C" SANITIZER_INTERFACE_ATTRIBUTE -void __taint_set_arg_tls(uint32_t index, dfsan_label label, uint32_t size_in_bits); +void __taint_set_arg_tls(uint32_t index, dfsan_label label, + uint32_t size_in_bits); extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __taint_set_retval_tls(dfsan_label label, uint32_t size_in_bits); @@ -335,6 +340,8 @@ UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr if (label) { ucsan_label_info *label_info = get_label_info(label); uint64_t object_id = 0; + uint64_t parent_obj_id = 0; + uint64_t offset_in_parent = 0; uint16_t op = label_info->common.op; if (op == OP_NONE) { @@ -342,40 +349,36 @@ UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr ucsan_byte_info *byte = &label_info->byte; UCSAN_OUT("lookup_object: label=%u, op=BYTE, obj_id=%u, offset=%lld\n", label, byte->object_id, byte->offset); - auto find_result = ucsan_tainted.obj_map->find( - {byte->object_id, (uint64_t)byte->offset}); - if (find_result != ucsan_tainted.obj_map->end()) { - object_id = find_result->second; - UCSAN_OUT(" found object_id=%llu\n", object_id); - } + parent_obj_id = byte->object_id; + offset_in_parent = (uint64_t)byte->offset; } else if (op == OP_EXTERNAL) { // External pointer - look up by (parent_obj_id, offset) // This matches dfsan's {op2.i, op1.i} pattern ucsan_ptr_info *ptr = &label_info->ptr; - uint64_t parent_obj_id = ptr->obj_label; - uint64_t offset_in_parent = (uint64_t)ptr->pseudo_base; + parent_obj_id = ptr->obj_label; + offset_in_parent = (uint64_t)ptr->pseudo_base; UCSAN_OUT("lookup_object: label=%u, op=EXTERNAL, parent_obj=%llu, offset=%llu\n", label, parent_obj_id, offset_in_parent); UCSAN_OUT(" obj_map size=%llu, searching for {%llu, %llu}\n", (uint64_t)ucsan_tainted.obj_map->size(), parent_obj_id, offset_in_parent); - auto find_result = ucsan_tainted.obj_map->find({parent_obj_id, offset_in_parent}); - if (find_result != ucsan_tainted.obj_map->end()) { - object_id = find_result->second; - UCSAN_OUT(" found object_id=%llu\n", object_id); - } else { - UCSAN_OUT(" NOT found in obj_map\n"); - } } else if (op == OP_DUMMY) { // Dummy label for constant pointer - track with counter ucsan_ptr_info *ptr = &label_info->ptr; - uint64_t ptr_val = (uint64_t)ptr->pseudo_base; - uint64_t counter = -((*ucsan_tainted.const_ptr_counter)[ptr_val]++); - auto find_result = ucsan_tainted.obj_map->find({ptr_val, counter}); - if (find_result != ucsan_tainted.obj_map->end()) { - object_id = find_result->second; - } + parent_obj_id = (uint64_t)ptr->pseudo_base; + offset_in_parent = -((*ucsan_tainted.const_ptr_counter)[parent_obj_id]++); + UCSAN_OUT("lookup_object: label=%u, op=DUMMY, ptr_val=%lu, counter=%lu\n", + label, parent_obj_id, offset_in_parent); } else { - UCSAN_OUT("lookup_object: label=%u, op=%u (unexpected)\n", label, op); + UCSAN_OUT("WARNING: unexpected op=%u label=%u\n", op, label); + } + + auto find_result = ucsan_tainted.obj_map->find( + {parent_obj_id, offset_in_parent}); + if (find_result != ucsan_tainted.obj_map->end()) { + object_id = find_result->second; + UCSAN_OUT(" found object_id=%llu\n", object_id); + } else { + UCSAN_OUT(" NOT found in obj_map\n"); } bool created = false; @@ -397,9 +400,25 @@ UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr // Trace lazy init event if enabled if (created && ucsan_flags().trace_object) { - __taint_trace_event_addr(label, EVENT_LAZY_INIT, object_id, return_addr, 0); + if (object_id >= UINT32_MAX) { + UCSAN_OUT("WARNING: UCSan: object_id too large for tracing: %lu\n", object_id); + goto out; + } + if (parent_obj_id >= UINT32_MAX) { + UCSAN_OUT("WARNING: UCSan: parent_obj_id too large for tracing: %lu\n", parent_obj_id); + goto out; + } + if (offset_in_parent > UCSAN_OBJECT_SIZE_LIMIT) { + UCSAN_OUT("WARNING: UCSan: offset_in_parent too large: %lu\n", offset_in_parent); + goto out; + } + // Pack object_id (lower 32 bits) and parent_obj_id (upper 32 bits) into uint64_t + uint64_t info = (parent_obj_id << 32) | (object_id & 0xFFFFFFFF); + __taint_trace_event_addr(label, EVENT_LAZY_INIT, info, return_addr, + (uint32_t)offset_in_parent); } +out: if (ret_object_id) *ret_object_id = object_id; return ucsan_tainted.objects->at(object_id); } @@ -1340,7 +1359,8 @@ extern "C" { // Weak definition for event tracing SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_event_addr, - __ucsan::ucsan_label, uint32_t, uint64_t, void*, uint16_t) {} + __ucsan::ucsan_label, uint32_t, uint64_t, void*, + uint32_t) {} // Weak definition for global variable tracing SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_global_var, From 2d9c49bfd59c6965ef0a5fbe2b57eb7a565e5340 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Mon, 26 Jan 2026 19:19:20 -0800 Subject: [PATCH 014/139] use smaller types for ObjectMapKey (uint32_t, int32_t) with range checking - ObjectOrigin and ObjectMapKey now use uint32_t/int32_t instead of uint64_t - Add range validation before casting to narrower types in lookup_object - Allows negative offsets (e.g., from OP_DUMMY counter) to work correctly - Fix printf format specifiers for the new types Co-Authored-By: Claude Opus 4.5 --- runtime/dfsan/ucsan.cpp | 121 +++++++++++++++++++++------------------- runtime/dfsan/ucsan.h | 8 +-- 2 files changed, 68 insertions(+), 61 deletions(-) diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index 911d5f7e..5d686f45 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -161,7 +161,7 @@ static void ucsan_init_input_struct() { ucsan_tainted.obj_map = new ObjectMap(); } if (!ucsan_tainted.const_ptr_counter) { - ucsan_tainted.const_ptr_counter = new std::map(); + ucsan_tainted.const_ptr_counter = new std::map(); } ucsan_tainted.arg_used.val_dont_use = 0; } @@ -270,23 +270,23 @@ uint64_t ucsan_input::load(const char *buf, size_t file_size) { void ucsan_input::build_obj_map() { uint32_t object_id = 1; - UCSAN_OUT("build_obj_map: objects->size()=%llu\n", (uint64_t)objects->size()); + UCSAN_OUT("build_obj_map: objects->size()=%lu\n", (uint64_t)objects->size()); for (; object_id < objects->size(); ++object_id) { auto& object_meta = objects->at(object_id).origin; - UCSAN_OUT(" obj[%u]: from.obj_id=%llu, from.offset=%llu\n", + UCSAN_OUT(" obj[%u]: from.obj_id=%u, from.offset=%d\n", object_id, object_meta.obj_id, object_meta.offset); (*obj_map)[{object_meta.obj_id, object_meta.offset}] = object_id; } atomic_store(&__ucsan_inited_objects, object_id, memory_order_relaxed); - UCSAN_OUT("build_obj_map done: __ucsan_inited_objects=%u, obj_map->size()=%llu\n", + UCSAN_OUT("build_obj_map done: __ucsan_inited_objects=%u, obj_map->size()=%lu\n", object_id, (uint64_t)obj_map->size()); // Debug: dump obj_map contents UCSAN_OUT("obj_map contents:\n"); for (auto &entry : *obj_map) { - UCSAN_OUT(" {%llu, %llu} -> %u\n", entry.first.first, entry.first.second, entry.second); + UCSAN_OUT(" {%u, %d} -> %u\n", entry.first.first, entry.first.second, entry.second); } } @@ -315,7 +315,7 @@ void check_label(ucsan_label label) { void* customized_malloc(uint64_t size) { if (size > UCSAN_OBJECT_SIZE_LIMIT) { - UCSAN_OUT("Object size too large: %llu\n", size); + UCSAN_OUT("Object size too large: %lu\n", size); exit(exit_reason::REASON_OBJ_OOB); } uint64_t gap = Max((uint64_t)UCSAN_SAFE_GAP, UCSAN_ROUNDUPGAP(size)); @@ -339,44 +339,62 @@ static inline bool is_writeable(void *p) { UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr, uint32_t *ret_object_id) { if (label) { ucsan_label_info *label_info = get_label_info(label); - uint64_t object_id = 0; - uint64_t parent_obj_id = 0; - uint64_t offset_in_parent = 0; + uint32_t object_id = 0; + // Use wider types for range checking before casting + uint64_t parent_obj_id_64 = 0; + int64_t offset_in_parent_64 = 0; uint16_t op = label_info->common.op; if (op == OP_NONE) { // Byte info - look up by (object_id, offset) ucsan_byte_info *byte = &label_info->byte; - UCSAN_OUT("lookup_object: label=%u, op=BYTE, obj_id=%u, offset=%lld\n", + UCSAN_OUT("lookup_object: label=%u, op=BYTE, obj_id=%u, offset=%ld\n", label, byte->object_id, byte->offset); - parent_obj_id = byte->object_id; - offset_in_parent = (uint64_t)byte->offset; + parent_obj_id_64 = byte->object_id; + offset_in_parent_64 = byte->offset; } else if (op == OP_EXTERNAL) { // External pointer - look up by (parent_obj_id, offset) // This matches dfsan's {op2.i, op1.i} pattern ucsan_ptr_info *ptr = &label_info->ptr; - parent_obj_id = ptr->obj_label; - offset_in_parent = (uint64_t)ptr->pseudo_base; - UCSAN_OUT("lookup_object: label=%u, op=EXTERNAL, parent_obj=%llu, offset=%llu\n", - label, parent_obj_id, offset_in_parent); - UCSAN_OUT(" obj_map size=%llu, searching for {%llu, %llu}\n", - (uint64_t)ucsan_tainted.obj_map->size(), parent_obj_id, offset_in_parent); + parent_obj_id_64 = ptr->obj_label; + offset_in_parent_64 = (int64_t)(uint64_t)ptr->pseudo_base; + UCSAN_OUT("lookup_object: label=%u, op=EXTERNAL, parent_obj=%lu, offset=%ld\n", + label, parent_obj_id_64, offset_in_parent_64); + UCSAN_OUT(" obj_map size=%lu, searching for {%lu, %ld}\n", + (uint64_t)ucsan_tainted.obj_map->size(), parent_obj_id_64, offset_in_parent_64); } else if (op == OP_DUMMY) { - // Dummy label for constant pointer - track with counter + // Dummy label for constant pointer - track with negative counter ucsan_ptr_info *ptr = &label_info->ptr; - parent_obj_id = (uint64_t)ptr->pseudo_base; - offset_in_parent = -((*ucsan_tainted.const_ptr_counter)[parent_obj_id]++); - UCSAN_OUT("lookup_object: label=%u, op=DUMMY, ptr_val=%lu, counter=%lu\n", - label, parent_obj_id, offset_in_parent); + parent_obj_id_64 = (uint64_t)ptr->pseudo_base; + // Range check for parent_obj_id before using as map key + if (parent_obj_id_64 > UINT32_MAX) { + UCSAN_OUT("WARNING: UCSan: ptr value too large for tracking: %lu\n", parent_obj_id_64); + goto out_default; + } + offset_in_parent_64 = -((*ucsan_tainted.const_ptr_counter)[(uint32_t)parent_obj_id_64]++); + UCSAN_OUT("lookup_object: label=%u, op=DUMMY, ptr_val=%lu, counter=%ld\n", + label, parent_obj_id_64, offset_in_parent_64); } else { UCSAN_OUT("WARNING: unexpected op=%u label=%u\n", op, label); } - auto find_result = ucsan_tainted.obj_map->find( - {parent_obj_id, offset_in_parent}); + // Range check before casting to narrower types for map key + if (parent_obj_id_64 > UINT32_MAX) { + UCSAN_OUT("WARNING: UCSan: parent_obj_id too large: %lu\n", parent_obj_id_64); + goto out_default; + } + if (offset_in_parent_64 > INT32_MAX || offset_in_parent_64 < INT32_MIN) { + UCSAN_OUT("WARNING: UCSan: offset_in_parent out of range: %ld\n", offset_in_parent_64); + goto out_default; + } + + uint32_t parent_obj_id = (uint32_t)parent_obj_id_64; + int32_t offset_in_parent = (int32_t)offset_in_parent_64; + + auto find_result = ucsan_tainted.obj_map->find({parent_obj_id, offset_in_parent}); if (find_result != ucsan_tainted.obj_map->end()) { object_id = find_result->second; - UCSAN_OUT(" found object_id=%llu\n", object_id); + UCSAN_OUT(" found object_id=%u\n", object_id); } else { UCSAN_OUT(" NOT found in obj_map\n"); } @@ -400,29 +418,18 @@ UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr // Trace lazy init event if enabled if (created && ucsan_flags().trace_object) { - if (object_id >= UINT32_MAX) { - UCSAN_OUT("WARNING: UCSan: object_id too large for tracing: %lu\n", object_id); - goto out; - } - if (parent_obj_id >= UINT32_MAX) { - UCSAN_OUT("WARNING: UCSan: parent_obj_id too large for tracing: %lu\n", parent_obj_id); - goto out; - } - if (offset_in_parent > UCSAN_OBJECT_SIZE_LIMIT) { - UCSAN_OUT("WARNING: UCSan: offset_in_parent too large: %lu\n", offset_in_parent); - goto out; - } // Pack object_id (lower 32 bits) and parent_obj_id (upper 32 bits) into uint64_t - uint64_t info = (parent_obj_id << 32) | (object_id & 0xFFFFFFFF); + uint64_t info = ((uint64_t)parent_obj_id << 32) | object_id; __taint_trace_event_addr(label, EVENT_LAZY_INIT, info, return_addr, (uint32_t)offset_in_parent); } -out: if (ret_object_id) *ret_object_id = object_id; return ucsan_tainted.objects->at(object_id); } +out_default: + // Should not reach here with label == 0 static UCSanObject empty_object; return empty_object; @@ -483,7 +490,7 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere shadow = ucsan_shadow_for(byte_addr); auto ret = create_label_from_super_object(1, false); *shadow = ret.label; - UCSAN_OUT("Symbolize global variable byte @%p with %u from offset %llu\n", + UCSAN_OUT("Symbolize global variable byte @%p with %u from offset %lu\n", ((char*)p+i), ret.label, ret.offset); // Bridge to SymSan: create symbolic label for this byte and set shadow @@ -720,7 +727,7 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere if (desired_offset < 0 && desired_offset < -(int64_t)new_lower_bound) { extended_lower = -desired_offset - new_lower_bound; new_lower_bound = -desired_offset; - UCSAN_OUT("Extended lower bound: %llu, new lower bound: %llu\n", extended_lower, new_lower_bound); + UCSAN_OUT("Extended lower bound: %lu, new lower bound: %lu\n", extended_lower, new_lower_bound); if (ucsan_flags().trace_object) __taint_trace_event_addr(label, EVENT_EXTENSION, object_id, (void*)new_lower_bound, 0); } @@ -729,12 +736,12 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere (int64_t)obj_label_info->upper_bound); if (new_size > UCSAN_OBJECT_SIZE_LIMIT) { - UCSAN_OUT("Object size too large: %llu\n", new_size); + UCSAN_OUT("Object size too large: %lu\n", new_size); exit(exit_reason::REASON_OBJ_OOB); } void *np = customized_malloc(new_size); - UCSAN_OUT("Enlarged object: np=%p, new_size=%llu\n", np, new_size); + UCSAN_OUT("Enlarged object: np=%p, new_size=%lu\n", np, new_size); // Copy and extend shadow memory // Padding the left lower bounds with new labels @@ -858,7 +865,7 @@ ucsan_label ucsan_load_pointer_shadow(ucsan_label *ls, uint64_t n, bool is_point ucsan_label label0 = ls[0]; - UCSAN_OUT("load_pointer_shadow: *label(%p)=%d is_pointer=%d, size=%llu\n", + UCSAN_OUT("load_pointer_shadow: *label(%p)=%d is_pointer=%d, size=%lu\n", ls, label0, is_pointer, n); // Allow loading kUninitializedLabel for UBI detection @@ -891,7 +898,7 @@ ucsan_label ucsan_load_pointer_shadow(ucsan_label *ls, uint64_t n, bool is_point extern "C" SANITIZER_INTERFACE_ATTRIBUTE void ucsan_store_pointer_shadow(ucsan_label l, ucsan_label *ls, uint64_t n) { - UCSAN_OUT("store_pointer_shadow: label=%d, n=%llu, ls=%p\n", l, n, ls); + UCSAN_OUT("store_pointer_shadow: label=%d, n=%lu, ls=%p\n", l, n, ls); if (l == 0 || l == kUninitializedLabel) { for (uint64_t i = 0; i < n; ++i) ls[i] = l; @@ -912,7 +919,7 @@ void ucsan_store_pointer_shadow(ucsan_label l, ucsan_label *ls, uint64_t n) { extern "C" SANITIZER_INTERFACE_ATTRIBUTE void ucsan_set_label(ucsan_label label, void *addr, uint64_t size) { - UCSAN_OUT("ucsan_set_label: label=%d, addr=%p, size=%llu\n", label, addr, size); + UCSAN_OUT("ucsan_set_label: label=%d, addr=%p, size=%lu\n", label, addr, size); // Get shadow address for the memory region ucsan_label *shadow = ucsan_shadow_for(addr); @@ -954,7 +961,7 @@ void* ucsan_set_label_for_args(uint32_t index, uint32_t size_in_bits, uint8_t is if (ucsan_tainted.objects->size() && last_offset + size_in_bytes <= ucsan_tainted.objects->at(0).data.size()) { uint64_t result = *((uint64_t*)(ucsan_tainted.objects->at(0).data.data() + last_offset)); - UCSAN_OUT("Returning: 0x%llx\n", result); + UCSAN_OUT("Returning: 0x%lx\n", result); return (void*)result; } @@ -992,7 +999,7 @@ ucsan_label ucsan_resign_shadow(void *ptr, ucsan_label *orig_label, uint64_t n, if (*lp == kUninitializedLabel) { // Allocate a byte from super object auto ret = create_label_from_super_object(1, false); - UCSAN_OUT("resign alloca ret: %u %llu\n", ret.label, ret.offset); + UCSAN_OUT("resign alloca ret: %u %lu\n", ret.label, ret.offset); *lp = ret.label; // Bridge to SymSan: create symbolic label for this byte @@ -1029,7 +1036,7 @@ ucsan_label ucsan_resign_shadow(void *ptr, ucsan_label *orig_label, uint64_t n, ret_addr = __builtin_return_address(0); } - UCSAN_OUT("Concrete external object: p=%p, size=%llu\n", ptr, n); + UCSAN_OUT("Concrete external object: p=%p, size=%lu\n", ptr, n); // Create a dummy label for constant pointer tracking ucsan_label dummy_label = allocate_label(); @@ -1085,7 +1092,7 @@ void* ucsan_wrap_retval(uint64_t size, ucsan_label *ret_label, bool is_ptr, void ucsan_label label = lbl.label; uint64_t last_offset = lbl.offset; - UCSAN_OUT("Ret object created: label=%u, offset=%llu\n", label, last_offset); + UCSAN_OUT("Ret object created: label=%u, offset=%lu\n", label, last_offset); // Note: create_label_from_super_object already initializes the label_info // with the correct op (OP_EXTERNAL for pointers, OP_NONE for bytes) @@ -1101,7 +1108,7 @@ void* ucsan_wrap_retval(uint64_t size, ucsan_label *ret_label, bool is_ptr, void if (ucsan_tainted.objects->size() && last_offset + size <= ucsan_tainted.objects->at(0).data.size()) { - UCSAN_OUT("offset (%llu + %llu) in the seed\n", last_offset, size); + UCSAN_OUT("offset (%lu + %lu) in the seed\n", last_offset, size); for (uptr i = 0; i < size; ++i) { __ucsan_wrapped_return_tls[i] = ucsan_tainted.objects->at(0).data[last_offset + i]; } @@ -1132,7 +1139,7 @@ ucsan_label ucsan_trace_alloca(uint64_t size, uint64_t elem_size, uint64_t addr) __alloca_stack_top -= 1; ucsan_label label = __alloca_stack_top; - UCSAN_OUT("ucsan_trace_alloca: label=%u, base=%p, size=%llu, elem_size=%llu, total=%llu\n", + UCSAN_OUT("ucsan_trace_alloca: label=%u, base=%p, size=%lu, elem_size=%lu, total=%lu\n", label, ptr, size, elem_size, total_size); ucsan_label_info *info = get_label_info(label); @@ -1299,9 +1306,9 @@ void ucsan_init() { AddDieCallback(ucsan_fini_internal); UCSAN_OUT("UCSan runtime initialized\n"); - UCSAN_OUT(" Shadow: 0x%llx - 0x%llx\n", (uint64_t)kShadowBase, (uint64_t)kUnionTableAddr); - UCSAN_OUT(" UnionTable: 0x%llx (size: 0x%llx)\n", (uint64_t)kUnionTableAddr, (uint64_t)kUnionTableSize); - UCSAN_OUT(" Max labels: %llu\n", (uint64_t)(kUnionTableSize / sizeof(ucsan_label_info))); + UCSAN_OUT(" Shadow: 0x%lx - 0x%lx\n", (uint64_t)kShadowBase, (uint64_t)kUnionTableAddr); + UCSAN_OUT(" UnionTable: 0x%lx (size: 0x%lx)\n", (uint64_t)kUnionTableAddr, (uint64_t)kUnionTableSize); + UCSAN_OUT(" Max labels: %lu\n", (uint64_t)(kUnionTableSize / sizeof(ucsan_label_info))); } extern "C" SANITIZER_INTERFACE_ATTRIBUTE @@ -1327,7 +1334,7 @@ void ucsan_init_input(const char *filename) { uint64_t object_cnt = ucsan_tainted.load(buf, file_size); - UCSAN_OUT("Loaded %llu objects from %s\n", object_cnt, filename); + UCSAN_OUT("Loaded %lu objects from %s\n", object_cnt, filename); } //===----------------------------------------------------------------------===// diff --git a/runtime/dfsan/ucsan.h b/runtime/dfsan/ucsan.h index c7bd7c9b..3222762c 100644 --- a/runtime/dfsan/ucsan.h +++ b/runtime/dfsan/ucsan.h @@ -140,8 +140,8 @@ inline ucsan_byte_info* to_byte_info(ucsan_label_info *info) { // Metadata about where an object originated struct ObjectOrigin { - uint64_t obj_id; // parent object ID (0 = super object) - uint64_t offset; // offset within parent object + uint32_t obj_id; // parent object ID (0 = super object) + int32_t offset; // offset within parent object }; // An object tracked by UCSan @@ -155,7 +155,7 @@ struct UCSanObject { typedef std::vector ObjectStorage; // Object map key type: (parent_obj_id, offset) -typedef std::pair ObjectMapKey; +typedef std::pair ObjectMapKey; // Object map: maps (parent_obj_id, offset) -> object_id typedef std::map ObjectMap; @@ -180,7 +180,7 @@ struct ucsan_input { // All pointers to avoid C++ constructor ordering issues ObjectStorage *objects; // pointer - allocated dynamically ObjectMap *obj_map; // pointer - allocated dynamically - std::map *const_ptr_counter; // pointer - allocated dynamically + std::map *const_ptr_counter; // pointer - allocated dynamically // Super object offset tracking atomic_uint64_t arg_used; // bytes used from super object From d2141db4f92c22b4849e0eb5087c05179d3dee15 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Mon, 26 Jan 2026 22:26:53 -0800 Subject: [PATCH 015/139] switch to dfsan.bb for bbid --- instrumentation/TaintPass.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/instrumentation/TaintPass.cpp b/instrumentation/TaintPass.cpp index 8be8ce66..b72d143d 100644 --- a/instrumentation/TaintPass.cpp +++ b/instrumentation/TaintPass.cpp @@ -829,8 +829,14 @@ Type *Taint::getShadowTy(Value *V) { } uint32_t Taint::getInstructionId(Instruction *Inst) { - // check if there is a bbid annotation - if (MDNode *BBID = Inst->getMetadata("bbid")) { + // check if there is a bbid annotation from UCSan ("dfsan.bb") + MDNode *BBID = Inst->getMetadata("dfsan.bb"); + // For non-terminator instructions, try getting bbid from the block's terminator + if (!BBID && !Inst->isTerminator()) { + Instruction *Term = Inst->getParent()->getTerminator(); + BBID = Term->getMetadata("dfsan.bb"); + } + if (BBID) { auto C = dyn_cast(BBID->getOperand(0)); if (ConstantInt *CI = dyn_cast(C->getValue())) { uint64_t BBIDValue = CI->getZExtValue(); From 8ad6ef059af80d3d69a6250ccfd1a19b8e0f1747 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 27 Jan 2026 00:13:23 -0800 Subject: [PATCH 016/139] Fix struct return handling in SymSan and UCSan - buildDangleFunction: call ucsan_wrap_retval for each primitive element in struct returns, load from returned pointer and assemble the struct - Change UCWrapRetvalFn return type from i16* to void* to match runtime - visitReturnInst: use getShadowTy(RT) instead of PrimitiveShadowTy - __taint_set_retval_tls: add index parameter to support struct elements, calculate index from pointer offset (ret_label - __ucsan_retval_tls) - loadShadowRecursive: fix InsertValue chaining in both TaintPass and UCSanPass - return accumulated shadow value instead of discarding it Co-Authored-By: Claude Opus 4.5 --- instrumentation/TaintPass.cpp | 25 +++++----- instrumentation/UCSanPass.cpp | 92 +++++++++++++++++++++++++++-------- runtime/dfsan/dfsan.cpp | 6 ++- runtime/dfsan/ucsan.cpp | 13 +++-- 4 files changed, 96 insertions(+), 40 deletions(-) diff --git a/instrumentation/TaintPass.cpp b/instrumentation/TaintPass.cpp index b72d143d..9ac270dd 100644 --- a/instrumentation/TaintPass.cpp +++ b/instrumentation/TaintPass.cpp @@ -616,9 +616,9 @@ struct TaintFunction { Value *loadPrimitiveShadow(Value *Addr, uint64_t Size, uint64_t Align, IRBuilder<> &IRB); /// Loads shadow recursively for aggregate types - void loadShadowRecursive(Value *Shadow, SmallVector &Indices, - Type *SubTy, Value *Addr, uint64_t Size, - uint64_t Align, IRBuilder<> &IRB); + Value *loadShadowRecursive(Value *Shadow, SmallVector &Indices, + Type *SubTy, Value *Addr, uint64_t Size, + uint64_t Align, IRBuilder<> &IRB); /// Stores an aggregate shadow label void storeShadowRecursive(Value *Shadow, SmallVector &Indices, Type *SubShadowTy, Value *ShadowAddr, uint64_t Size, @@ -1929,7 +1929,7 @@ Value *TaintFunction::loadPrimitiveShadow(Value *Addr, uint64_t Size, return FallbackCall; } -void TaintFunction::loadShadowRecursive( +Value *TaintFunction::loadShadowRecursive( Value *Shadow, SmallVector &Indices, Type *SubTy, Value *Addr, uint64_t Size, uint64_t Align, IRBuilder<> &IRB) { auto &DL = F->getParent()->getDataLayout(); @@ -1941,8 +1941,7 @@ void TaintFunction::loadShadowRecursive( // load a primitive shadow from address Value *PrimitiveShadow = loadPrimitiveShadow(Addr, SubSize, Align, IRB); // then insert the primitive shadow into the sub-field - IRB.CreateInsertValue(Shadow, PrimitiveShadow, Indices); - return; + return IRB.CreateInsertValue(Shadow, PrimitiveShadow, Indices); } if (ArrayType *AT = dyn_cast(SubTy)) { @@ -1955,11 +1954,11 @@ void TaintFunction::loadShadowRecursive( assert(Offset <= Size); // get the address of the array element Value *SubAddr = IRB.CreateConstGEP2_32(AT, Addr, 0, Idx); - loadShadowRecursive(Shadow, Indices, ElemTy, - SubAddr, Size - Offset, Align, IRB); + Shadow = loadShadowRecursive(Shadow, Indices, ElemTy, + SubAddr, Size - Offset, Align, IRB); Indices.pop_back(); } - return; + return Shadow; } if (StructType *ST = dyn_cast(SubTy)) { @@ -1972,11 +1971,11 @@ void TaintFunction::loadShadowRecursive( Type *ElemTy = ST->getElementType(Idx); // get the address of the struct field Value *SubAddr = IRB.CreateConstGEP2_32(ST, Addr, 0, Idx); - loadShadowRecursive(Shadow, Indices, ElemTy, - SubAddr, Size - Offset, Align, IRB); + Shadow = loadShadowRecursive(Shadow, Indices, ElemTy, + SubAddr, Size - Offset, Align, IRB); Indices.pop_back(); } - return; + return Shadow; } llvm_unreachable("Unexpected shadow type"); } @@ -2021,7 +2020,7 @@ Value *TaintFunction::loadShadow(Type *T, Value *Addr, uint64_t Size, SmallVector Indices; Type *ShadowTy = TT.getShadowTy(T); Value *Shadow = UndefValue::get(ShadowTy); - loadShadowRecursive(Shadow, Indices, T, Addr, Size, ShadowAlign, IRB); + Shadow = loadShadowRecursive(Shadow, Indices, T, Addr, Size, ShadowAlign, IRB); return Shadow; } diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 0d986fb4..3bef111a 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -527,9 +527,9 @@ struct UCSanFunction { Value *loadPrimitiveShadow(Value *Addr, uint64_t Size, Align Align, Type *Ty, IRBuilder<> &IRB); /// Loads shadow recursively for aggregate types - void loadShadowRecursive(Value *Shadow, SmallVector &Indices, - Type *SubTy, Value *Addr, uint64_t Size, - Align Align, IRBuilder<> &IRB); + Value *loadShadowRecursive(Value *Shadow, SmallVector &Indices, + Type *SubTy, Value *Addr, uint64_t Size, + Align Align, IRBuilder<> &IRB); /// Stores an aggregate shadow label void storeShadowRecursive(Value *Shadow, SmallVector &Indices, Type *SubTy, Value *Addr, uint64_t Size, @@ -627,9 +627,10 @@ void UCSan::initializeRuntimeFunctions(Module &M) { markFunctionNosanitize(F); UCRuntimeFunctions.insert(F); - // Return value wrapping: i16* ucsan_wrap_retval(i64, i16*, i1, void*) + // Return value wrapping: void* ucsan_wrap_retval(i64, i16*, i1, void*) + // Returns pointer to __ucsan_wrapped_return_tls where the actual return value is stored UCWrapRetvalFnTy = FunctionType::get( - PrimitiveShadowPtrTy, + VoidPtrTy, {Int64Ty, PrimitiveShadowPtrTy, Int1Ty, VoidPtrTy}, false); UCWrapRetvalFn = M.getOrInsertFunction("ucsan_wrap_retval", UCWrapRetvalFnTy); @@ -979,7 +980,7 @@ Value *UCSanFunction::loadPrimitiveShadow(Value *Addr, uint64_t Size, Align Alig } /// Recursive helper to load shadow for aggregate types. -void UCSanFunction::loadShadowRecursive( +Value *UCSanFunction::loadShadowRecursive( Value *Shadow, SmallVector &Indices, Type *SubTy, Value *Addr, uint64_t Size, Align InstAlign, IRBuilder<> &IRB) { auto &DL = F->getParent()->getDataLayout(); @@ -993,7 +994,7 @@ void UCSanFunction::loadShadowRecursive( // then insert the primitive shadow into the sub-field Value *Insert = IRB.CreateInsertValue(Shadow, PrimitiveShadow, Indices); UC.markNosanitize(Insert); - return; + return Insert; } if (ArrayType *AT = dyn_cast(SubTy)) { @@ -1007,11 +1008,11 @@ void UCSanFunction::loadShadowRecursive( // get the address of the array element Value *SubAddr = IRB.CreateConstGEP2_32(AT, Addr, 0, Idx); UC.markNosanitize(SubAddr); - loadShadowRecursive(Shadow, Indices, ElemTy, - SubAddr, Size - Offset, InstAlign, IRB); + Shadow = loadShadowRecursive(Shadow, Indices, ElemTy, + SubAddr, Size - Offset, InstAlign, IRB); Indices.pop_back(); } - return; + return Shadow; } if (StructType *ST = dyn_cast(SubTy)) { @@ -1025,11 +1026,11 @@ void UCSanFunction::loadShadowRecursive( // get the address of the struct field Value *SubAddr = IRB.CreateConstGEP2_32(ST, Addr, 0, Idx); UC.markNosanitize(SubAddr); - loadShadowRecursive(Shadow, Indices, ElemTy, - SubAddr, Size - Offset, InstAlign, IRB); + Shadow = loadShadowRecursive(Shadow, Indices, ElemTy, + SubAddr, Size - Offset, InstAlign, IRB); Indices.pop_back(); } - return; + return Shadow; } llvm_unreachable("Unexpected shadow type"); } @@ -1073,7 +1074,7 @@ Value *UCSanFunction::loadShadow(Value *Addr, uint64_t Size, Align Align, SmallVector Indices; Type *ShadowTy = UC.getShadowTy(Ty); Value *Shadow = UndefValue::get(ShadowTy); - loadShadowRecursive(Shadow, Indices, Ty, Addr, Size, ShadowAlign, IRB); + Shadow = loadShadowRecursive(Shadow, Indices, Ty, Addr, Size, ShadowAlign, IRB); return Shadow; } @@ -1249,14 +1250,63 @@ Function *UCSan::buildDangleFunction(Function *F) { // Wrap return value Type *RT = FT->getReturnType(); if (!RT->isVoidTy()) { - ConstantInt *size = ConstantInt::get(Int64Ty, DL.getTypeSizeInBits(RT)); - ConstantInt *is_ptr = ConstantInt::get(Int1Ty, RT->isPointerTy()); Value *retvaltls = UF.getRetvalTLS(RT, IRB); - Value *ret = IRB.CreateCall(UCWrapRetvalFn, {size, retvaltls, is_ptr, RetAddr}); - Value *ret_ptr = IRB.CreateBitOrPointerCast(ret, RT->getPointerTo()); - Value *loaded_ret = IRB.CreateLoad(RT, ret_ptr); - IRB.CreateRet(loaded_ret); + // For struct/array return types, we need to call ucsan_wrap_retval for each + // primitive element so that both ucsan and symsan labels are properly wrapped. + // ucsan_wrap_retval returns a pointer to __ucsan_wrapped_return_tls where + // the actual return value is stored. We must load immediately after each call + // before the next call overwrites it, then assemble the struct. + std::function &)> wrapRetvalRecursive = + [&](Type *SubTy, Value *ShadowAddr, SmallVector &Indices) -> Value * { + if (!isa(SubTy) && !isa(SubTy)) { + // Primitive type: call ucsan_wrap_retval and load from returned pointer + ConstantInt *size = ConstantInt::get(Int64Ty, DL.getTypeSizeInBits(SubTy)); + ConstantInt *is_ptr = ConstantInt::get(Int1Ty, SubTy->isPointerTy()); + Value *ret_ptr = IRB.CreateCall(UCWrapRetvalFn, {size, ShadowAddr, is_ptr, RetAddr}); + // Load the value from the returned pointer (pointing to __ucsan_wrapped_return_tls) + Value *typed_ptr = IRB.CreateBitOrPointerCast(ret_ptr, SubTy->getPointerTo()); + Value *loaded_val = IRB.CreateLoad(SubTy, typed_ptr); + return loaded_val; + } + + // For aggregate types, recursively wrap each element and assemble + Value *Result = UndefValue::get(SubTy); + + if (ArrayType *AT = dyn_cast(SubTy)) { + Type *ElemTy = AT->getElementType(); + for (unsigned Idx = 0; Idx < AT->getNumElements(); Idx++) { + Value *SubShadowAddr = IRB.CreateConstGEP2_32( + getShadowTy(SubTy), ShadowAddr, 0, Idx); + markNosanitize(SubShadowAddr); + Indices.push_back(Idx); + Value *ElemVal = wrapRetvalRecursive(ElemTy, SubShadowAddr, Indices); + Indices.pop_back(); + Result = IRB.CreateInsertValue(Result, ElemVal, Idx); + } + return Result; + } + + if (StructType *ST = dyn_cast(SubTy)) { + for (unsigned Idx = 0; Idx < ST->getNumElements(); Idx++) { + Type *ElemTy = ST->getElementType(Idx); + Value *SubShadowAddr = IRB.CreateConstGEP2_32( + getShadowTy(SubTy), ShadowAddr, 0, Idx); + markNosanitize(SubShadowAddr); + Indices.push_back(Idx); + Value *ElemVal = wrapRetvalRecursive(ElemTy, SubShadowAddr, Indices); + Indices.pop_back(); + Result = IRB.CreateInsertValue(Result, ElemVal, Idx); + } + return Result; + } + + llvm_unreachable("Unexpected type in wrapRetvalRecursive"); + }; + + SmallVector Indices; + Value *RetVal = wrapRetvalRecursive(RT, retvaltls, Indices); + IRB.CreateRet(RetVal); } else { IRB.CreateRetVoid(); } @@ -2285,7 +2335,7 @@ void UCSanVisitor::visitReturnInst(ReturnInst &RI) { if (RI.getReturnValue()) { Value *S = UF.getShadow(RI.getReturnValue()); Type *RT = UF.F->getFunctionType()->getReturnType(); - unsigned Size = getDataLayout().getTypeAllocSize(UF.UC.PrimitiveShadowTy); + unsigned Size = getDataLayout().getTypeAllocSize(UF.UC.getShadowTy(RT)); if (Size <= kRetvalTLSSize) { StoreInst *SI = IRB.CreateAlignedStore(S, UF.getRetvalTLS(RT, IRB), ShadowTLSAlignment); UF.UC.markNosanitize(SI); diff --git a/runtime/dfsan/dfsan.cpp b/runtime/dfsan/dfsan.cpp index e99541de..75e2b50a 100644 --- a/runtime/dfsan/dfsan.cpp +++ b/runtime/dfsan/dfsan.cpp @@ -1904,13 +1904,15 @@ void __taint_set_arg_tls(uint32_t index, dfsan_label label, uint32_t size_in_bit // Set SymSan retval TLS entry // Overrides weak stub in ucsan.cpp SANITIZER_INTERFACE_ATTRIBUTE -void __taint_set_retval_tls(dfsan_label label, uint32_t size_in_bits) { +void __taint_set_retval_tls(uint32_t index, dfsan_label label, uint32_t size_in_bits) { + if (index >= kRetvalTlsSize / sizeof(dfsan_label)) return; // Truncate if size_in_bits is not byte-aligned uint32_t size_in_bytes = (size_in_bits + 7) / 8; if (size_in_bits < size_in_bytes * 8) { label = do_taint_union(label, CONST_LABEL, Trunc, size_in_bits, 0, 0); } - __dfsan_retval_tls[0] = label; + AOUT("set retval tls[%u] = %u\n", index, label); + __dfsan_retval_tls[index] = label; } // Set SymSan shadow memory for a region diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index 5d686f45..2edcc954 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -55,7 +55,7 @@ void __taint_set_arg_tls(uint32_t index, dfsan_label label, uint32_t size_in_bits); extern "C" SANITIZER_INTERFACE_ATTRIBUTE -void __taint_set_retval_tls(dfsan_label label, uint32_t size_in_bits); +void __taint_set_retval_tls(uint32_t index, dfsan_label label, uint32_t size_in_bits); extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __taint_set_label(dfsan_label label, void *addr, uint64_t size); @@ -907,6 +907,8 @@ void ucsan_store_pointer_shadow(ucsan_label l, ucsan_label *ls, uint64_t n) { ucsan_label_info *label_info = get_label_info(l); if (label_info->common.op == OP_EXTERNAL || + label_info->common.op == OP_NONE || + label_info->common.op == OP_DUMMY || label_info->common.op == OP_ALLOCA || label_info->common.op == OP_FREE) { assert(n == sizeof(void*)); @@ -1102,9 +1104,11 @@ void* ucsan_wrap_retval(uint64_t size, ucsan_label *ret_label, bool is_ptr, void *ret_label = label; - // Bridge to SymSan: create symbolic label and set retval TLS + // Bridge to SymSan: create symbolic label and set retval TLS at correct index + // Calculate index from pointer offset into __ucsan_retval_tls + uint32_t retval_tls_index = (uint32_t)(ret_label - __ucsan_retval_tls); dfsan_label symsan_label = __taint_create_label(0, last_offset, (uint32_t)size); - __taint_set_retval_tls(symsan_label, (uint32_t)bits); + __taint_set_retval_tls(retval_tls_index, symsan_label, (uint32_t)bits); if (ucsan_tainted.objects->size() && last_offset + size <= ucsan_tainted.objects->at(0).data.size()) { @@ -1398,9 +1402,10 @@ SANITIZER_INTERFACE_WEAK_DEF(dfsan_label, __taint_create_label, uint32_t, uint64 SANITIZER_INTERFACE_WEAK_DEF(void, __taint_set_arg_tls, uint32_t, dfsan_label, uint32_t) {} // Set SymSan retval TLS entry +// @param index: index into retval TLS array (for struct elements) // @param label: SymSan label to set // @param size_in_bits: size of return value in bits (for truncation) -SANITIZER_INTERFACE_WEAK_DEF(void, __taint_set_retval_tls, dfsan_label, uint32_t) {} +SANITIZER_INTERFACE_WEAK_DEF(void, __taint_set_retval_tls, uint32_t, dfsan_label, uint32_t) {} // Set SymSan shadow memory for a region // @param label: SymSan label to set From 2a877ff2957a7737c6f2dbe7e76cee6616718829 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 27 Jan 2026 12:06:18 -0800 Subject: [PATCH 017/139] fix sext --- solvers/z3-ts.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/solvers/z3-ts.cpp b/solvers/z3-ts.cpp index 10628ce9..bd6b7663 100644 --- a/solvers/z3-ts.cpp +++ b/solvers/z3-ts.cpp @@ -424,7 +424,9 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { tsize_cache_.emplace_back(tsize_cache_[info->l1]); cache_expr(l, z3::sext(base, info->size - base_size)); TRACK_LABEL_BV_ONLY(); - RECORD_VALUE((int64_t)(value_cache_[info->l1] & ((1UL << base_size) - 1))); + // Sign extend: shift left to put sign bit at MSB, then arithmetic shift right + uint64_t base_val = value_cache_[info->l1] & ((1UL << base_size) - 1); + RECORD_VALUE(((int64_t)(base_val << (64 - base_size))) >> (64 - base_size)); continue; } else if (info->op == __dfsan::Trunc) { z3::expr base = get_cached_expr(info->l1, input_deps); @@ -1484,7 +1486,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { if ((info->op1.i & valmask) != val1 || (info->op2.i & valmask) != val2) { fprintf(stderr, "DEBUG serialize ICmp: VALUE MISMATCH detected\n"); - // fprintf(stderr, "WARNING: value mismatch for label %u:" + // fprintf(stderr, "WARNING: value mismatch for label %u: " // "expected op1 %lu, got %lu, expected op2 %lu, got %lu\n", // l, info->op1.i, val1, info->op2.i, val2); // fprintf(stderr, "cond: %s\n", get_cmd(op1, op2, info->op >> 8).to_string().c_str()); From 625d6511b9994b70012a1f70d913a12c35ba597b Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 27 Jan 2026 13:27:40 -0800 Subject: [PATCH 018/139] fix load type --- instrumentation/UCSanPass.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 3bef111a..7149bf3b 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -2051,7 +2051,7 @@ void UCSanVisitor::visitIndirectCallBase(Value *FPtr, CallBase &CB) { Type *PRT = RT->getPointerTo(); Ret = IRB_EB.CreatePointerCast(Ret, PRT); UF.UC.markNosanitize(Ret); - Ret = IRB_EB.CreateLoad(PRT, Ret); + Ret = IRB_EB.CreateLoad(RT, Ret); UF.UC.markNosanitize(Ret); } else { Ret = IRB_EB.CreatePointerCast(Ret, RT); From b97175ffc68a67b6dc66e6a45862493ded8c24ef Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 27 Jan 2026 13:29:33 -0800 Subject: [PATCH 019/139] update types --- runtime/dfsan/ucsan_custom.cpp | 130 +++++++++++++++++++++------------ 1 file changed, 83 insertions(+), 47 deletions(-) diff --git a/runtime/dfsan/ucsan_custom.cpp b/runtime/dfsan/ucsan_custom.cpp index d9a9b869..b938184e 100644 --- a/runtime/dfsan/ucsan_custom.cpp +++ b/runtime/dfsan/ucsan_custom.cpp @@ -11,14 +11,14 @@ using namespace __ucsan; // External symbols for real libc functions extern "C" { - void *__libc_malloc(uptr size); - void *__libc_calloc(uptr nmemb, uptr size); - void *__libc_realloc(void *ptr, uptr size); + void *__libc_malloc(size_t size); + void *__libc_calloc(size_t nmemb, size_t size); void __libc_free(void *ptr); - void *__libc_memalign(uptr alignment, uptr size); - void *__libc_valloc(uptr size); - void *__libc_pvalloc(uptr size); - int posix_memalign(void **memptr, uptr alignment, uptr size); + // [[deprecated]] void *memalign(size_t alignment, size_t size); + // [[deprecated]] void *valloc(size_t size); + // [[deprecated]] void *pvalloc(size_t size); + void *aligned_alloc(size_t alignment, size_t size); + int posix_memalign(void **memptr, size_t alignment, size_t size); // SymSan bridge functions (weak stubs in ucsan.cpp, strong in dfsan.cpp) void __taint_copy_shadow(void *dst, void *src, u64 size); @@ -33,7 +33,7 @@ extern "C" { // Helper to create an alloca-style bounds label for heap allocations // Also sets shadow memory to kUninitializedLabel for UBI detection -static ucsan_label create_alloca_label(void *ptr, uptr size) { +static ucsan_label create_alloca_label(void *ptr, size_t size) { ucsan_label label = allocate_label(); check_label(label); @@ -49,7 +49,7 @@ static ucsan_label create_alloca_label(void *ptr, uptr size) { // Set shadow memory to kUninitializedLabel for UBI detection ucsan_label *shadow = ucsan_shadow_for(ptr); - for (uptr i = 0; i < size; i++) { + for (size_t i = 0; i < size; i++) { shadow[i] = kUninitializedLabel; } @@ -57,8 +57,9 @@ static ucsan_label create_alloca_label(void *ptr, uptr size) { } __attribute__((visibility("default"))) -void *__dfsw_malloc(uptr size, u16 size_label, u16 *ret_label) { +void *__dfsw_malloc(size_t size, ucsan_label size_label, ucsan_label *ret_label) { void *ret = __libc_malloc(size); + UCSAN_OUT("__dfsw_malloc(%zu) = %p\n", size, ret); if (ret) { // Create bounds label (sets shadow to kUninitializedLabel for UBI) *ret_label = create_alloca_label(ret, size); @@ -69,27 +70,30 @@ void *__dfsw_malloc(uptr size, u16 size_label, u16 *ret_label) { } __attribute__((visibility("default"))) -void *__dfsw_kmalloc_large(uptr size, u32 unused, u16 size_label, u16 unused2, - u16 *ret_label) { +void *__dfsw_kmalloc_large(size_t size, unsigned int flags, + ucsan_label size_label, ucsan_label flags_label, + ucsan_label *ret_label) { return __dfsw_malloc(size, size_label, ret_label); } __attribute__((visibility("default"))) -void *__dfsw___kmalloc(uptr size, u32 unused1, u16 size_label, u16 unused2, - u16 *ret_label) { +void *__dfsw___kmalloc(size_t size, unsigned int flags, + ucsan_label size_label, ucsan_label flags_label, + ucsan_label *ret_label) { return __dfsw_malloc(size, size_label, ret_label); } __attribute__((visibility("default"))) -void *__dfsw_kmalloc(uptr size, u32 unused1, u16 size_label, u16 unused2, - u16 *ret_label) { +void *__dfsw_kmalloc(size_t size, unsigned int flags, ucsan_label size_label, + ucsan_label flags_label, ucsan_label *ret_label) { return __dfsw_malloc(size, size_label, ret_label); } __attribute__((visibility("default"))) -void *__dfsw_calloc(uptr nmemb, uptr size, u16 nmemb_label, u16 size_label, u16 *ret_label) { +void *__dfsw_calloc(size_t nmemb, size_t size, ucsan_label nmemb_label, + ucsan_label size_label, ucsan_label *ret_label) { void *ret = __libc_calloc(nmemb, size); - uptr total_size = nmemb * size; + size_t total_size = nmemb * size; if (ret) { // Create bounds label (sets shadow to kUninitializedLabel for UBI) // (calloc zeros memory, but we still want to detect reads before writes) @@ -101,7 +105,8 @@ void *__dfsw_calloc(uptr nmemb, uptr size, u16 nmemb_label, u16 size_label, u16 } __attribute__((visibility("default"))) -void *__dfsw_realloc(void *ptr, uptr size, u16 ptr_label, u16 size_label, u16 *ret_label) { +void *__dfsw_realloc(void *ptr, size_t size, ucsan_label ptr_label, + ucsan_label size_label, ucsan_label *ret_label) { // If ptr has an alloca label, mark it as freed if (ptr && ptr_label > UCSAN_CONST_LABEL) { ucsan_label_info *old_info = get_label_info(ptr_label); @@ -110,7 +115,8 @@ void *__dfsw_realloc(void *ptr, uptr size, u16 ptr_label, u16 size_label, u16 *r } } - void *ret = __libc_realloc(ptr, size); + // don't actually free the buffer + void *ret = __libc_malloc(size); if (ret) { // Create bounds label (sets shadow to kUninitializedLabel for UBI) *ret_label = create_alloca_label(ret, size); @@ -121,7 +127,16 @@ void *__dfsw_realloc(void *ptr, uptr size, u16 ptr_label, u16 size_label, u16 *r } __attribute__((visibility("default"))) -void __dfsw_free(void *ptr, u16 ptr_label) { +void *__dfsw_reallocarray(void *ptr, size_t nmemb, size_t size, + ucsan_label ptr_label, ucsan_label nmemb_label, + ucsan_label size_label, ucsan_label *ret_label) { + size_t total_size = nmemb * size; + + return __dfsw_realloc(ptr, total_size, ptr_label, size_label, ret_label); +} + +__attribute__((visibility("default"))) +void __dfsw_free(void *ptr, ucsan_label ptr_label) { // Mark buffer as freed for UAF detection if (ptr && ptr_label > UCSAN_CONST_LABEL) { ucsan_label_info *info = get_label_info(ptr_label); @@ -129,12 +144,15 @@ void __dfsw_free(void *ptr, u16 ptr_label) { info->common.op = OP_FREE; } } - __libc_free(ptr); + // don't actually free the buffer, to capture UAFs + // __libc_free(ptr); } __attribute__((visibility("default"))) -void *__dfsw_memalign(uptr alignment, uptr size, u16 alignment_label, u16 size_label, u16 *ret_label) { - void *ret = __libc_memalign(alignment, size); +void *__dfsw_memalign(size_t alignment, size_t size, + ucsan_label alignment_label, ucsan_label size_label, + ucsan_label *ret_label) { + void *ret = aligned_alloc(alignment, size); if (ret) { // Create bounds label (sets shadow to kUninitializedLabel for UBI) *ret_label = create_alloca_label(ret, size); @@ -145,8 +163,10 @@ void *__dfsw_memalign(uptr alignment, uptr size, u16 alignment_label, u16 size_l } __attribute__((visibility("default"))) -void *__dfsw_aligned_alloc(uptr alignment, uptr size, u16 alignment_label, u16 size_label, u16 *ret_label) { - void *ret = __libc_memalign(alignment, size); +void *__dfsw_aligned_alloc(size_t alignment, size_t size, + ucsan_label alignment_label, ucsan_label size_label, + ucsan_label *ret_label) { + void *ret = aligned_alloc(alignment, size); if (ret) { // Create bounds label (sets shadow to kUninitializedLabel for UBI) *ret_label = create_alloca_label(ret, size); @@ -156,9 +176,11 @@ void *__dfsw_aligned_alloc(uptr alignment, uptr size, u16 alignment_label, u16 s return ret; } +#define PAGE_SIZE 4096 + __attribute__((visibility("default"))) -void *__dfsw_valloc(uptr size, u16 size_label, u16 *ret_label) { - void *ret = __libc_valloc(size); +void *__dfsw_valloc(size_t size, ucsan_label size_label, ucsan_label *ret_label) { + void *ret = aligned_alloc(PAGE_SIZE, size); if (ret) { // Create bounds label (sets shadow to kUninitializedLabel for UBI) *ret_label = create_alloca_label(ret, size); @@ -169,8 +191,8 @@ void *__dfsw_valloc(uptr size, u16 size_label, u16 *ret_label) { } __attribute__((visibility("default"))) -void *__dfsw_pvalloc(uptr size, u16 size_label, u16 *ret_label) { - void *ret = __libc_pvalloc(size); +void *__dfsw_pvalloc(size_t size, ucsan_label size_label, ucsan_label *ret_label) { + void *ret = aligned_alloc(PAGE_SIZE, size); if (ret) { // Create bounds label (sets shadow to kUninitializedLabel for UBI) *ret_label = create_alloca_label(ret, size); @@ -181,9 +203,9 @@ void *__dfsw_pvalloc(uptr size, u16 size_label, u16 *ret_label) { } __attribute__((visibility("default"))) -int __dfsw_posix_memalign(void **memptr, uptr alignment, uptr size, - u16 memptr_label, u16 alignment_label, u16 size_label, - u16 *ret_label) { +int __dfsw_posix_memalign(void **memptr, size_t alignment, size_t size, + ucsan_label memptr_label, ucsan_label alignment_label, + ucsan_label size_label, ucsan_label *ret_label) { int result = posix_memalign(memptr, alignment, size); if (result == 0 && *memptr) { *ret_label = UCSAN_CONST_LABEL; // Return value is int, no pointer label @@ -200,43 +222,55 @@ int __dfsw_posix_memalign(void **memptr, uptr alignment, uptr size, // Wrappers for __libc versions - delegate to main wrappers for bounds tracking __attribute__((visibility("default"))) -void *__dfsw___libc_malloc(uptr size, u16 size_label, u16 *ret_label) { +void *__dfsw___libc_malloc(size_t size, ucsan_label size_label, ucsan_label *ret_label) { return __dfsw_malloc(size, size_label, ret_label); } __attribute__((visibility("default"))) -void *__dfsw___libc_calloc(uptr nmemb, uptr size, u16 nmemb_label, u16 size_label, u16 *ret_label) { +void *__dfsw___libc_calloc(size_t nmemb, size_t size, ucsan_label nmemb_label, + ucsan_label size_label, ucsan_label *ret_label) { return __dfsw_calloc(nmemb, size, nmemb_label, size_label, ret_label); } __attribute__((visibility("default"))) -void *__dfsw___libc_realloc(void *ptr, uptr size, u16 ptr_label, u16 size_label, u16 *ret_label) { +void *__dfsw___libc_realloc(void *ptr, size_t size, ucsan_label ptr_label, + ucsan_label size_label, ucsan_label *ret_label) { return __dfsw_realloc(ptr, size, ptr_label, size_label, ret_label); } __attribute__((visibility("default"))) -void __dfsw___libc_free(void *ptr, u16 ptr_label) { +void *__dfsw___libc_reallocarray(void *ptr, size_t nmemb, size_t size, + ucsan_label ptr_label, ucsan_label nmemb_label, + ucsan_label size_label, ucsan_label *ret_label) { + return __dfsw_reallocarray(ptr, nmemb, size, ptr_label, nmemb_label, size_label, ret_label); +} + +__attribute__((visibility("default"))) +void __dfsw___libc_free(void *ptr, ucsan_label ptr_label) { __dfsw_free(ptr, ptr_label); } __attribute__((visibility("default"))) -void *__dfsw___libc_memalign(uptr alignment, uptr size, u16 alignment_label, u16 size_label, u16 *ret_label) { +void *__dfsw___libc_memalign(size_t alignment, size_t size, + ucsan_label alignment_label, ucsan_label size_label, + ucsan_label *ret_label) { return __dfsw_memalign(alignment, size, alignment_label, size_label, ret_label); } __attribute__((visibility("default"))) -void *__dfsw___libc_valloc(uptr size, u16 size_label, u16 *ret_label) { +void *__dfsw___libc_valloc(size_t size, ucsan_label size_label, ucsan_label *ret_label) { return __dfsw_valloc(size, size_label, ret_label); } __attribute__((visibility("default"))) -void *__dfsw___libc_pvalloc(uptr size, u16 size_label, u16 *ret_label) { +void *__dfsw___libc_pvalloc(size_t size, ucsan_label size_label, ucsan_label *ret_label) { return __dfsw_pvalloc(size, size_label, ret_label); } __attribute__((visibility("default"))) -void *__dfsw_memcpy(void *dest, const void *src, uptr n, - u16 dest_label, u16 src_label, u16 n_label, u16 *ret_label) { +void *__dfsw_memcpy(void *dest, const void *src, size_t n, + ucsan_label dest_label, ucsan_label src_label, + ucsan_label n_label, ucsan_label *ret_label) { *ret_label = dest_label; // Copy UCSan shadow memory from src to dest ucsan_label *sdest = ucsan_shadow_for(dest); @@ -249,8 +283,9 @@ void *__dfsw_memcpy(void *dest, const void *src, uptr n, } __attribute__((visibility("default"))) -void *__dfsw_memmove(void *dest, const void *src, uptr n, - u16 dest_label, u16 src_label, u16 n_label, u16 *ret_label) { +void *__dfsw_memmove(void *dest, const void *src, size_t n, + ucsan_label dest_label, ucsan_label src_label, + ucsan_label n_label, ucsan_label *ret_label) { *ret_label = dest_label; ucsan_label *sdest = ucsan_shadow_for(dest); const ucsan_label *ssrc = ucsan_shadow_for(src); @@ -262,14 +297,15 @@ void *__dfsw_memmove(void *dest, const void *src, uptr n, } __attribute__((visibility("default"))) -void *__dfsw_memset(void *s, int c, uptr n, - u16 s_label, u16 c_label, u16 n_label, u16 *ret_label) { +void *__dfsw_memset(void *s, int c, size_t n, + ucsan_label s_label, ucsan_label c_label, + ucsan_label n_label, ucsan_label *ret_label) { *ret_label = s_label; // Set actual memory internal_memset(s, c, n); // Set UCSan shadow memory - propagate c_label to all bytes ucsan_label *shadow = ucsan_shadow_for(s); - for (uptr i = 0; i < n; i++) { + for (size_t i = 0; i < n; i++) { shadow[i] = c_label; } // Bridge to SymSan: set SymSan shadow memory From 11fc76403d3b690921e1f6bfaa570d3fedc92433 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 27 Jan 2026 13:32:06 -0800 Subject: [PATCH 020/139] fix obj_id/offset passing for usage_cite and extension --- runtime/dfsan/ucsan.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index 2edcc954..d5d2d5a3 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -507,8 +507,16 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere // Trace global variable usage if (ucsan_flags().trace_object) { - __taint_trace_event_addr(*(ucsan_shadow_for(p)), EVENT_USAGE_CITE, size, - __builtin_return_address(0), 0); + ucsan_label first_label = *(ucsan_shadow_for(p)); + ucsan_label_info *info = get_label_info(first_label); + // globals are from super object, so object_id is always 0 + int64_t offset = to_byte_info(info)->offset; + if (offset > INT32_MAX || offset < INT32_MIN || size > UINT32_MAX) { + UCSAN_OUT("WARNING: global variable offset (%ld) or size (%lu) too large\n", offset, size); + } else { + __taint_trace_event_addr(*(ucsan_shadow_for(p)), EVENT_USAGE_CITE, size, + __builtin_return_address(0), (uint32_t)offset); + } } // Send initial data if needed @@ -727,9 +735,12 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere if (desired_offset < 0 && desired_offset < -(int64_t)new_lower_bound) { extended_lower = -desired_offset - new_lower_bound; new_lower_bound = -desired_offset; - UCSAN_OUT("Extended lower bound: %lu, new lower bound: %lu\n", extended_lower, new_lower_bound); + UCSAN_OUT("Extended lower bound: %lu, new lower bound: %lu\n", + extended_lower, new_lower_bound); if (ucsan_flags().trace_object) - __taint_trace_event_addr(label, EVENT_EXTENSION, object_id, (void*)new_lower_bound, 0); + __taint_trace_event_addr(label, EVENT_EXTENSION, object_id, + __builtin_return_address(0), + (uint32_t)new_lower_bound); } uint64_t new_size = new_lower_bound + Max(desired_offset + (int64_t)size, From 598ca24d63a4628397c9ffc045151aeeda571a16 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 27 Jan 2026 14:48:49 -0800 Subject: [PATCH 021/139] fix indirect call handling --- instrumentation/UCSanPass.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 7149bf3b..24449b6f 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -1965,6 +1965,10 @@ void UCSanVisitor::visitIndirectCallBase(Value *FPtr, CallBase &CB) { UF.UC.markNosanitize(And); // if not null and not symbolic, we can call it directly SplitBlockAndInsertIfThenElse(And, &CB, &TB, &EB); + // get the correct merge bb + curBB = TB->getParent()->getSingleSuccessor(); + assert(curBB != nullptr && "Expected single successor after if-then-else"); + IRB.SetInsertPoint(curBB->getFirstNonPHI()); // remove bbid from then else blocks, and reannotate current block if (BBID) { TB->getParent()->getTerminator()->setMetadata(BBIDName, nullptr); @@ -2038,8 +2042,7 @@ void UCSanVisitor::visitIndirectCallBase(Value *FPtr, CallBase &CB) { // wrap the returned value if (!RT->isVoidTy()) { std::vector Args; - Type *SRT = UF.UC.getShadowTy(RT); - ConstantInt *Size = ConstantInt::get(UF.UC.Int64Ty, DL.getTypeSizeInBits(SRT)); + ConstantInt *Size = ConstantInt::get(UF.UC.Int64Ty, DL.getTypeSizeInBits(RT)); ConstantInt *isPtr = ConstantInt::get(UF.UC.Int1Ty, RT->isPointerTy()); Args.push_back(Size); Args.push_back(UF.getRetvalTLS(RT, IRB_EB)); From 8a08f9673a77c127f5fec6b3a2cc36199942bc20 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 27 Jan 2026 14:49:42 -0800 Subject: [PATCH 022/139] fix loading indirect call retval in case uscan is used --- instrumentation/TaintPass.cpp | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/instrumentation/TaintPass.cpp b/instrumentation/TaintPass.cpp index 9ac270dd..c6a37fb0 100644 --- a/instrumentation/TaintPass.cpp +++ b/instrumentation/TaintPass.cpp @@ -3133,10 +3133,18 @@ void TaintVisitor::visitCallBase(CallBase &CB) { IRBuilder<> IRB(&CB); // trace indirect call + bool isUCSanCheckedIndirectCall = false; if (CB.getCalledFunction() == nullptr) { Value *Shadow = TF.getShadow(CB.getCalledOperand()); if (!TF.TT.isZeroShadow(Shadow)) IRB.CreateCall(TF.TT.TaintTraceIndirectCallFn, {Shadow}); + + // Check if the function pointer is from UCSan (ucsan_check_pointer) + Value *FPtr = CB.getCalledOperand()->stripPointerCasts(); + auto *FPtrInst = dyn_cast(FPtr); + if (ClWithUCSan || (FPtrInst && FPtrInst->getMetadata("ucsan.checked"))) { + isUCSanCheckedIndirectCall = true; + } } DenseMap::iterator UnwrappedFnIt = @@ -3173,6 +3181,21 @@ void TaintVisitor::visitCallBase(CallBase &CB) { Instruction *Next = nullptr; if (!CB.getType()->isVoidTy()) { + // For UCSan-checked indirect calls, find the PHINode introduced by UCSanPass. + // The return value may come from either the actual call or ucsan_wrap_retval, + // merged via a PHINode. We need to load the shadow after the PHINode. + PHINode *RetPhiNode = nullptr; + Instruction *ShadowTarget = &CB; + if (isUCSanCheckedIndirectCall) { + for (User *U : CB.users()) { + if (PHINode *PN = dyn_cast(U)) { + RetPhiNode = PN; + ShadowTarget = PN; + break; + } + } + } + if (InvokeInst *II = dyn_cast(&CB)) { if (II->getNormalDest()->getSinglePredecessor()) { Next = &II->getNormalDest()->front(); @@ -3183,7 +3206,12 @@ void TaintVisitor::visitCallBase(CallBase &CB) { } } else { assert(CB.getIterator() != CB.getParent()->end()); - Next = CB.getNextNode(); + if (RetPhiNode) { + // Load shadow after the PHINode + Next = RetPhiNode->getParent()->getFirstNonPHI(); + } else { + Next = CB.getNextNode(); + } } // Don't emit the epilogue for musttail call returns. @@ -3195,13 +3223,13 @@ void TaintVisitor::visitCallBase(CallBase &CB) { unsigned Size = DL.getTypeAllocSize(TF.TT.getShadowTy(&CB)); if (Size > RetvalTLSSize) { // Set overflowed return shadow to be zero. - TF.setShadow(&CB, TF.TT.getZeroShadow(&CB)); + TF.setShadow(ShadowTarget, TF.TT.getZeroShadow(&CB)); } else { LoadInst *LI = NextIRB.CreateAlignedLoad( TF.TT.getShadowTy(&CB), TF.getRetvalTLS(CB.getType(), NextIRB), ShadowTLSAlignment, "_dfsret"); TF.SkipInsts.insert(LI); - TF.setShadow(&CB, LI); + TF.setShadow(ShadowTarget, LI); TF.NonZeroChecks.push_back(LI); } } From 6e734551c5fe9b0d67105ae5cfcca93f3ce3f79f Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 27 Jan 2026 16:05:08 -0800 Subject: [PATCH 023/139] finish trace_bb --- backend/thoroupy.cpp | 2 +- compiler/ko_clang.c | 10 ++++++++++ instrumentation/UCSanPass.cpp | 32 +++++++++++++++++++++----------- runtime/dfsan/ucsan.cpp | 4 ++++ 4 files changed, 36 insertions(+), 12 deletions(-) diff --git a/backend/thoroupy.cpp b/backend/thoroupy.cpp index eafe9f87..8b402330 100644 --- a/backend/thoroupy.cpp +++ b/backend/thoroupy.cpp @@ -207,7 +207,7 @@ __taint_trace_event_addr(dfsan_label label, uint32_t event_id, uint64_t info, } extern "C" SANITIZER_INTERFACE_ATTRIBUTE void -__dfsan_trace_bb(uint32_t function_index, uint64_t bb_index) { +__taint_trace_bb(uint32_t function_index, uint32_t bb_index) { AOUT("bb: %u %llu\n", function_index, bb_index); if (__pipe_fd < 0) diff --git a/compiler/ko_clang.c b/compiler/ko_clang.c index 431a5c36..274eb9d0 100644 --- a/compiler/ko_clang.c +++ b/compiler/ko_clang.c @@ -279,6 +279,16 @@ static void add_ucsan_pass() { cc_params[cc_par_cnt++] = "-mllvm"; cc_params[cc_par_cnt++] = alloc_printf("-ucsan-abilist=%s/ucsan_abilist.txt", obj_path); + + if (getenv("KO_NO_TRACE_BOUND")) { + cc_params[cc_par_cnt++] = "-mllvm"; + cc_params[cc_par_cnt++] = "-ucsan-trace-bound=false"; + } + + if (getenv("KO_TRACE_BB")) { + cc_params[cc_par_cnt++] = "-mllvm"; + cc_params[cc_par_cnt++] = "-ucsan-trace-bb=true"; + } } static void edit_params(u32 argc, char **argv) { diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 24449b6f..f7e42298 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -99,7 +99,11 @@ static const char *BBIDName = "dfsan.bb"; // Command line options static cl::opt ClTraceBound("ucsan-trace-bound", cl::desc("Enable bounds checking"), - cl::Hidden, cl::init(false)); + cl::Hidden, cl::init(true)); + +static cl::opt ClTraceBB("ucsan-trace-bb", + cl::desc("Enable basic block tracing"), + cl::Hidden, cl::init(false)); // The ABI list files control how shadow parameters are passed. static cl::list ClABIListFiles( @@ -691,15 +695,17 @@ void UCSan::initializeRuntimeFunctions(Module &M) { markFunctionNosanitize(F); UCRuntimeFunctions.insert(F); - // void ucsan_trace_bb(i32, i32) - UCTraceBBFnTy = FunctionType::get( - Type::getVoidTy(*Ctx), - {Int32Ty, Int32Ty}, - false); - UCTraceBBFn = M.getOrInsertFunction("ucsan_trace_bb", UCTraceBBFnTy); - F = dyn_cast(UCTraceBBFn.getCallee()->stripPointerCasts()); - markFunctionNosanitize(F); - UCRuntimeFunctions.insert(F); + if (ClTraceBB) { + // void __taint_trace_bb(i32, i32) + UCTraceBBFnTy = FunctionType::get( + Type::getVoidTy(*Ctx), + {Int32Ty, Int32Ty}, + false); + UCTraceBBFn = M.getOrInsertFunction("__taint_trace_bb", UCTraceBBFnTy); + F = dyn_cast(UCTraceBBFn.getCallee()->stripPointerCasts()); + markFunctionNosanitize(F); + UCRuntimeFunctions.insert(F); + } // i16 ucsan_trace_alloca(i64 Size, i64 ElemSize, i64 Address) // Returns a shadow label representing bounds for this stack allocation @@ -1373,7 +1379,7 @@ Function *UCSan::buildDriverWrapperFunction(Function *F) { IRB.CreateRet(ConstantInt::get(Int32Ty, 0)); // Add basic block tracing to entry point if enabled - if (getenv("KO_TRACE_BB")) { + if (ClTraceBB) { unsigned int BBCount = 0; for (Function::iterator BI = F->begin(), BE = F->end(); BI != BE; ++BI, ++BBCount) { ConstantInt *BBID = ConstantInt::get(Int32Ty, BBCount); @@ -2684,6 +2690,10 @@ bool UCSan::runImpl(Module &M) { unsigned int BBCount = 0; for (Function::iterator BB = F->begin(); BB != F->end(); BB++, BBCount++) { auto *BBID = ConstantInt::get(Int32Ty, Idx * 100000 + BBCount); + if (ClTraceBB) { + CallInst::Create(UCTraceBBFn, {ConstantInt::get(Int32Ty, Idx), BBID}, + "", &*BB->getFirstNonPHI()); + } MDNode *MD = MDNode::get(Mod->getContext(), {ConstantAsMetadata::get(BBID)}); BB->getTerminator()->setMetadata(BBIDName, MD); diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index d5d2d5a3..9227c714 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -1388,6 +1388,10 @@ SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_event_addr, SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_global_var, __ucsan::ucsan_label, uint64_t, void*) {} +// Weak definition for basic block tracing +SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_basic_block, + uint32_t, uint32_t) {} + // Weak definition for UCSan solver initialization SANITIZER_INTERFACE_WEAK_DEF(void, InitializeUCSanSolver, void) {} From ad75e6cb8d9aa5eaefd0d250ce4062c0404dc50b Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 27 Jan 2026 17:04:07 -0800 Subject: [PATCH 024/139] fix tracebb --- instrumentation/UCSanPass.cpp | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index f7e42298..adf92cb7 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -2350,6 +2350,12 @@ void UCSanVisitor::visitReturnInst(ReturnInst &RI) { UF.UC.markNosanitize(SI); } } + + if (ClTraceBB) { + CallInst::Create(UF.UC.UCTraceBBFn, + { ConstantInt::get(UF.UC.Int32Ty, -1), ConstantInt::get(UF.UC.Int32Ty, 0)}, + "", &RI); + } } void UCSanVisitor::visitAtomicRMWInst(AtomicRMWInst &I) { @@ -2680,23 +2686,27 @@ bool UCSan::runImpl(Module &M) { if (!F || F->isDeclaration()) continue; // Add driver wrapper for entry point + bool isEntry = false; if (F->getName() == Scope.entry || (Scope.entry == "main" && F->getName() == "__original$main")) { buildDriverWrapperFunction(F); + isEntry = true; } - // Annotate BBs for all functions (including entry) - unsigned int Idx = find(Scope.scope, F->getName()) - Scope.scope.begin() + 1; - unsigned int BBCount = 0; - for (Function::iterator BB = F->begin(); BB != F->end(); BB++, BBCount++) { - auto *BBID = ConstantInt::get(Int32Ty, Idx * 100000 + BBCount); - if (ClTraceBB) { - CallInst::Create(UCTraceBBFn, {ConstantInt::get(Int32Ty, Idx), BBID}, - "", &*BB->getFirstNonPHI()); + // Annotate BBs for all functions (excluding entry) + if (!isEntry) { + unsigned int Idx = find(Scope.scope, F->getName()) - Scope.scope.begin() + 1; + unsigned int BBCount = 0; + for (Function::iterator BB = F->begin(); BB != F->end(); BB++, BBCount++) { + auto *BBID = ConstantInt::get(Int32Ty, Idx * 100000 + BBCount); + if (ClTraceBB) { + CallInst::Create(UCTraceBBFn, {ConstantInt::get(Int32Ty, Idx), BBID}, + "", &*BB->getFirstNonPHI()); + } + MDNode *MD = MDNode::get(Mod->getContext(), + {ConstantAsMetadata::get(BBID)}); + BB->getTerminator()->setMetadata(BBIDName, MD); } - MDNode *MD = MDNode::get(Mod->getContext(), - {ConstantAsMetadata::get(BBID)}); - BB->getTerminator()->setMetadata(BBIDName, MD); } if (F->getLinkage() == GlobalValue::AvailableExternallyLinkage) From a20fd34a5355268f425421b2827c13de546a0df0 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 27 Jan 2026 17:04:27 -0800 Subject: [PATCH 025/139] fix bv1 --- solvers/z3-ts.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/solvers/z3-ts.cpp b/solvers/z3-ts.cpp index bd6b7663..75313491 100644 --- a/solvers/z3-ts.cpp +++ b/solvers/z3-ts.cpp @@ -1585,6 +1585,11 @@ int Z3AstParser::parse_cond(dfsan_label label, bool result, bool add_nested, std input_dep_set_t inputs; z3::expr cond = serialize(label, inputs); + // fix cond if it's bv1 + if (cond.is_bv() && cond.get_sort().bv_size() == 1) { + cond = (cond != context_.bv_val(0, 1)); + } + // add negated last branch condition z3::expr r = context_.bool_val(result); From 621ec33ee206dafb938d4aec339e702be917dc87 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 27 Jan 2026 19:15:49 -0800 Subject: [PATCH 026/139] avoid symbolizing statically initialized non-nullptr --- instrumentation/UCSanPass.cpp | 51 +++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index adf92cb7..4fe07080 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -1659,6 +1659,57 @@ void UCSanVisitor::visitLoadInst(LoadInst &LI) { if (StoreSize == 0) return; Value *Ptr = LI.getPointerOperand(); + Value *Base = Ptr->stripPointerCasts(); + + // Check if loading from a constant global variable + if (GlobalVariable *GV = dyn_cast(Base)) { + if (GV->isConstant()) { + UF.setShadow(&LI, UF.UC.getZeroShadow(Ty)); + return; + } + } + + // For pointer loads, check if derived from a non-null initialized global + if (Ty->isPointerTy()) { + Constant *Init = nullptr; + if (GlobalVariable *GV = dyn_cast(Base)) { + // Direct load from GV + if (GV->hasInitializer()) { + Init = GV->getInitializer(); + } + } else if (auto *GEP = dyn_cast(Base)) { + // Load from GEP of GV - try to extract the initialized value + GlobalVariable *GV = dyn_cast( + GEP->getPointerOperand()->stripPointerCasts()); + if (GV && GV->hasInitializer() && GEP->hasAllConstantIndices()) { + SmallVector Indices; + for (auto It = GEP->idx_begin(); It != GEP->idx_end(); ++It) { + if (auto *CI = dyn_cast(*It)) { + Indices.push_back(CI->getZExtValue()); + } + } + // Skip the first index (pointer offset), extract from aggregate + if (Indices.size() > 1) { + Constant *Agg = GV->getInitializer(); + for (unsigned I = 1; I < Indices.size() && Agg; ++I) { + if (auto *AT = dyn_cast(Agg->getType())) { + Agg = Agg->getAggregateElement(Indices[I]); + } else if (auto *ST = dyn_cast(Agg->getType())) { + Agg = Agg->getAggregateElement(Indices[I]); + } else { + Agg = nullptr; + } + } + Init = Agg; + } + } + } + // If the initialized value is a non-null pointer, don't symbolize + if (Init && !Init->isNullValue()) { + UF.setShadow(&LI, UF.UC.getZeroShadow(Ty)); + return; + } + } ConstantInt *Size = ConstantInt::get(UF.UC.Int64Ty, StoreSize); // Check and replace pointer From 20a5a9cd351f8035e32e9103e2935125564fcc7b Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 27 Jan 2026 19:17:09 -0800 Subject: [PATCH 027/139] DUMMY doesn't help, so far --- runtime/dfsan/ucsan.cpp | 33 +++++---------------------------- runtime/dfsan/ucsan.h | 4 +--- 2 files changed, 6 insertions(+), 31 deletions(-) diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index 9227c714..3d1633c1 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -160,9 +160,6 @@ static void ucsan_init_input_struct() { if (!ucsan_tainted.obj_map) { ucsan_tainted.obj_map = new ObjectMap(); } - if (!ucsan_tainted.const_ptr_counter) { - ucsan_tainted.const_ptr_counter = new std::map(); - } ucsan_tainted.arg_used.val_dont_use = 0; } @@ -171,7 +168,7 @@ static void ucsan_fini_input_struct() { delete ucsan_tainted.objects; ucsan_tainted.objects = nullptr; } - // obj_map and const_ptr_counter are objects, not pointers - no need to delete + // obj_map is an object, not a pointer - no need to delete } char* ucsan_input::dump() { @@ -362,18 +359,6 @@ UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr label, parent_obj_id_64, offset_in_parent_64); UCSAN_OUT(" obj_map size=%lu, searching for {%lu, %ld}\n", (uint64_t)ucsan_tainted.obj_map->size(), parent_obj_id_64, offset_in_parent_64); - } else if (op == OP_DUMMY) { - // Dummy label for constant pointer - track with negative counter - ucsan_ptr_info *ptr = &label_info->ptr; - parent_obj_id_64 = (uint64_t)ptr->pseudo_base; - // Range check for parent_obj_id before using as map key - if (parent_obj_id_64 > UINT32_MAX) { - UCSAN_OUT("WARNING: UCSan: ptr value too large for tracking: %lu\n", parent_obj_id_64); - goto out_default; - } - offset_in_parent_64 = -((*ucsan_tainted.const_ptr_counter)[(uint32_t)parent_obj_id_64]++); - UCSAN_OUT("lookup_object: label=%u, op=DUMMY, ptr_val=%lu, counter=%ld\n", - label, parent_obj_id_64, offset_in_parent_64); } else { UCSAN_OUT("WARNING: unexpected op=%u label=%u\n", op, label); } @@ -919,7 +904,6 @@ void ucsan_store_pointer_shadow(ucsan_label l, ucsan_label *ls, uint64_t n) { ucsan_label_info *label_info = get_label_info(l); if (label_info->common.op == OP_EXTERNAL || label_info->common.op == OP_NONE || - label_info->common.op == OP_DUMMY || label_info->common.op == OP_ALLOCA || label_info->common.op == OP_FREE) { assert(n == sizeof(void*)); @@ -1051,17 +1035,10 @@ ucsan_label ucsan_resign_shadow(void *ptr, ucsan_label *orig_label, uint64_t n, UCSAN_OUT("Concrete external object: p=%p, size=%lu\n", ptr, n); - // Create a dummy label for constant pointer tracking - ucsan_label dummy_label = allocate_label(); - ucsan_label_info *dummy_info = get_label_info(dummy_label); - ucsan_ptr_info *dummy_ptr = to_ptr_info(dummy_info); - dummy_ptr->op = OP_DUMMY; - dummy_ptr->status = PTR_UNINITIALIZED; - dummy_ptr->obj_label = UCSAN_CONST_LABEL; - dummy_ptr->pseudo_base = ptr; // Store the constant pointer value - + // allocate from super object + auto ret = create_label_from_super_object(n, true); uint32_t object_id = 0; - auto& object = lookup_object(dummy_label, 0, ret_addr, &object_id); + auto& object = lookup_object(ret.label, 0, ret_addr, &object_id); // Set up shadow memory for object bytes ucsan_label *shadow = ucsan_shadow_for(ptr); @@ -1088,7 +1065,7 @@ ucsan_label ucsan_resign_shadow(void *ptr, ucsan_label *orig_label, uint64_t n, ((uint8_t*)ptr)[i] = object.data[i]; } - return dummy_label; + return ret.label; } } diff --git a/runtime/dfsan/ucsan.h b/runtime/dfsan/ucsan.h index 3222762c..db287558 100644 --- a/runtime/dfsan/ucsan.h +++ b/runtime/dfsan/ucsan.h @@ -82,7 +82,7 @@ struct ucsan_byte_info { // Pointer info - tracks symbolic/external pointers (op == OP_EXTERNAL) // Offset is computed dynamically as (current_ptr - pseudo_base) struct ucsan_ptr_info { - uint16_t op; // OP_EXTERNAL, OP_DUMMY, etc. + uint16_t op; // OP_EXTERNAL, OP_NONE, etc. uint16_t status; // PTR_STATE ucsan_label obj_label; // label pointing to backing ucsan_obj_info uint16_t _reserved; @@ -180,7 +180,6 @@ struct ucsan_input { // All pointers to avoid C++ constructor ordering issues ObjectStorage *objects; // pointer - allocated dynamically ObjectMap *obj_map; // pointer - allocated dynamically - std::map *const_ptr_counter; // pointer - allocated dynamically // Super object offset tracking atomic_uint64_t arg_used; // bytes used from super object @@ -230,7 +229,6 @@ enum ucsan_op : uint16_t { OP_EXTERNAL = 102, // external/symbolic pointer OP_INITP = 103, // initialized pointer OP_RESERVED_OBJ = 104, // reserved object label - OP_DUMMY = 105, // dummy label for constant pointers }; //===----------------------------------------------------------------------===// From 332b31e83ebda19346e8459cd7a50e119178bdb0 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 27 Jan 2026 20:46:02 -0800 Subject: [PATCH 028/139] update loop tracking --- instrumentation/TaintPass.cpp | 42 +++++++++++++++++++++-------------- runtime/dfsan/dfsan.cpp | 7 ++++++ 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/instrumentation/TaintPass.cpp b/instrumentation/TaintPass.cpp index c6a37fb0..46ec66d2 100644 --- a/instrumentation/TaintPass.cpp +++ b/instrumentation/TaintPass.cpp @@ -1587,34 +1587,42 @@ bool Taint::runImpl(Module &M) { // TaintVisitor may create new basic blocks, which confuses df_iterator. // Build a copy of the list before iterating over it. SmallVector BBList(depth_first(&F->getEntryBlock())); + std::unordered_map> LoopExits; for (BasicBlock *BB : BBList) { // check for loop header - if (ClTraceLoop) { - if (TF.LI->isLoopHeader(BB)) { - // This is a loop header - Instruction *FI = &*(BB->getFirstInsertionPt()); - ConstantInt *CID = ConstantInt::get(Int32Ty, getInstructionId(FI)); - ConstantInt *LoopDepth = ConstantInt::get(Int32Ty, TF.LI->getLoopDepth(BB)); - IRBuilder<> IRB(FI); - IRB.CreateCall(TaintTraceLoopFn, {CID, LoopDepth}); - } + if (ClTraceLoop && TF.LI) { Loop *L = TF.LI->getLoopFor(BB); if (L) { + auto *Header = L->getHeader(); + uint32_t LoopIdVal = getInstructionId(Header->getTerminator()); + ConstantInt *LoopID = ConstantInt::get(Int32Ty, LoopIdVal); + if (Header == BB) { + // This is a loop header + Instruction *FI = &*(BB->getFirstInsertionPt()); + ConstantInt *LoopDepth = ConstantInt::get(Int32Ty, TF.LI->getLoopDepth(BB)); + IRBuilder<> IRB(FI); + IRB.CreateCall(TaintTraceLoopFn, {LoopID, LoopDepth}); + } + // try to find exits, we do this because predecessors could be incomplete for (BasicBlock *Succ : successors(BB)) { if (!L->contains(Succ)) { - Instruction *FI = &*(Succ->getFirstInsertionPt()); - IRBuilder<> IRB(FI); - ConstantInt *CID = ConstantInt::get(Int32Ty, getInstructionId(FI)); - Loop *SuccL = TF.LI->getLoopFor(Succ); - int succ_depth = SuccL ? SuccL->getLoopDepth() : 0; - int depth = L->getLoopDepth(); - ConstantInt *LoopDepth = ConstantInt::get(Int32Ty, succ_depth - depth); - IRB.CreateCall(TaintTraceLoopFn, {CID, LoopDepth}); + auto &Exits = LoopExits[LoopIdVal]; + if (Exits.insert(Succ).second) { + // only instrument once + Instruction *FI = &*(Succ->getFirstInsertionPt()); + IRBuilder<> IRB(FI); + Loop *SuccL = TF.LI->getLoopFor(Succ); + int succ_depth = SuccL ? SuccL->getLoopDepth() : 0; + int depth = L->getLoopDepth(); + ConstantInt *LoopDepth = ConstantInt::get(Int32Ty, succ_depth - depth); + IRB.CreateCall(TaintTraceLoopFn, {LoopID, LoopDepth}); + } } } } } + Instruction *Inst = &BB->front(); while (true) { // TaintVisitor may split the current basic block, changing the current diff --git a/runtime/dfsan/dfsan.cpp b/runtime/dfsan/dfsan.cpp index 75e2b50a..5879985f 100644 --- a/runtime/dfsan/dfsan.cpp +++ b/runtime/dfsan/dfsan.cpp @@ -761,12 +761,16 @@ void __taint_union_store(dfsan_label l, dfsan_label *ls, uptr n, uint64_t align) } } +extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __taint_trace_loop_push_stack(); +extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __taint_trace_loop_pop_stack(); + extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __taint_push_stack_frame() { if (flags().trace_bounds) { if (__current_saved_stack_index < MAX_SAVED_STACK_ENTRIES) __saved_alloca_stack_top[++__current_saved_stack_index] = __alloca_stack_top; } + __taint_trace_loop_push_stack(); } extern "C" SANITIZER_INTERFACE_ATTRIBUTE @@ -774,6 +778,7 @@ void __taint_pop_stack_frame() { if (flags().trace_bounds) { __alloca_stack_top = __saved_alloca_stack_top[__current_saved_stack_index--]; } + __taint_trace_loop_pop_stack(); } extern "C" SANITIZER_INTERFACE_ATTRIBUTE @@ -1853,6 +1858,8 @@ SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_cmp, dfsan_label, dfsan_label, SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_cond, dfsan_label, bool, uint8_t, uint32_t) {} SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_loop, uint32_t, uint32_t) {} +SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_loop_push_stack, void) {} +SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_loop_pop_stack, void) {} SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_switch_end, uint32_t) {} SANITIZER_INTERFACE_WEAK_DEF(dfsan_label, __taint_trace_select, dfsan_label, dfsan_label, dfsan_label, uint8_t, uint8_t, uint8_t, From 38b6a3b9004674e2ba04e71efa5a7a37154b3e0a Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Thu, 29 Jan 2026 15:16:09 -0800 Subject: [PATCH 029/139] fix verify error --- instrumentation/TaintPass.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/instrumentation/TaintPass.cpp b/instrumentation/TaintPass.cpp index 46ec66d2..c158a341 100644 --- a/instrumentation/TaintPass.cpp +++ b/instrumentation/TaintPass.cpp @@ -2498,7 +2498,9 @@ void TaintFunction::visitGEPInst(GetElementPtrInst *I) { // 2. For symbolic ptr (e.g., from UCSan), we need to trace the offset if (!TT.isZeroShadow(Shadow)) { IRBuilder<> IRB(I->getNextNode()); - Shadow = IRB.CreateCall(TT.TaintGEPOffsetFn, {Shadow, I, Base}); + Shadow = IRB.CreateCall(TT.TaintGEPOffsetFn, + {Shadow, IRB.CreateBitOrPointerCast(I, TT.VoidPtrTy), + IRB.CreateBitOrPointerCast(Base, TT.VoidPtrTy)}); } setShadow(I, Shadow); From c10335111c02ee3af4cb38a0d30ac1333185d6ec Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Thu, 29 Jan 2026 15:16:46 -0800 Subject: [PATCH 030/139] add exit --- runtime/dfsan/dfsan_custom.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/runtime/dfsan/dfsan_custom.cpp b/runtime/dfsan/dfsan_custom.cpp index bc17e729..743cbada 100644 --- a/runtime/dfsan/dfsan_custom.cpp +++ b/runtime/dfsan/dfsan_custom.cpp @@ -230,6 +230,11 @@ void __taint_trace_memerr(dfsan_label ptr_label, uptr ptr, uint16_t flag, void *addr); extern "C" { +SANITIZER_INTERFACE_ATTRIBUTE __attribute__((noreturn)) void +__dfsw_exit(int status, dfsan_label status_label) { + exit(status); +} + SANITIZER_INTERFACE_ATTRIBUTE int __dfsw_stat(const char *path, struct stat *buf, dfsan_label path_label, dfsan_label buf_label, dfsan_label *ret_label) { From 58f26fa0b584af734219d778ad7cf8db3f4c6f0f Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Thu, 29 Jan 2026 15:17:39 -0800 Subject: [PATCH 031/139] well, need to add them so check_pointer is invoked --- runtime/dfsan/ucsan_abilist.txt | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/runtime/dfsan/ucsan_abilist.txt b/runtime/dfsan/ucsan_abilist.txt index ad54ac9b..1ead9bc0 100644 --- a/runtime/dfsan/ucsan_abilist.txt +++ b/runtime/dfsan/ucsan_abilist.txt @@ -27,6 +27,30 @@ fun:memcpy=custom fun:memmove=custom fun:memset=custom +fun:stpcpy=custom +fun:strcat=custom +fun:strcpy=custom +fun:strdup=custom +fun:strncat=custom +fun:strncpy=custom +fun:strndup=custom + +fun:bcmp=custom +fun:memchr=custom +fun:memcmp=custom +fun:memrchr=custom +fun:strcasecmp=custom +fun:strchr=custom +fun:strcmp=custom +fun:strlen=custom +fun:strncasecmp=custom +fun:strncmp=custom +fun:strpbrk=custom +fun:strrchr=custom +fun:strstr=custom +fun:strnstr=custom +fun:memmem=custom + # kernel fun:kmalloc_large=custom fun:__kmalloc=custom From d5067f2ad7c3d638d8ca299256f6be041a2d1464 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Thu, 29 Jan 2026 15:21:55 -0800 Subject: [PATCH 032/139] fix auto_custom for vararg func and prototype mismatch. mark __dfsw_ as nonsanitize to avoid symsan instrumenting it again --- instrumentation/UCSanPass.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 4fe07080..c7ad2a05 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -1441,8 +1441,9 @@ Function *UCSan::getCustomFunction(const Function *F) { // Create UCSanFunction context for shadow memory access UCSanFunction UF(*this, WrapperFunc); - // Get or insert the referenced function - FunctionCallee RefedFunc = Mod->getOrInsertFunction(RefedName, RefedFuncType); + // Get or insert the referenced function with transformed type (includes shadow args) + TransformedFunction TransformedFn = getCustomFunctionType(RefedFuncType); + FunctionCallee RefedFunc = Mod->getOrInsertFunction(RefedName, TransformedFn.TransformedType); // Build argument mapping std::map ArgMap; @@ -2143,11 +2144,12 @@ bool UCSanVisitor::visitWrappedCallBase(Function *F, CallBase &CB) { case UCSan::WK_AutoCustom: // invoke the custom function { - int n = CB.arg_size(), I = 0; - auto FT = CB.getFunctionType(); + // Only store shadows for fixed parameters, varargs are not tracked in TLS + // FIXME: add vararg shadow tracking support + unsigned NumFixedParams = FT->getNumParams(); unsigned ArgOffset = 0; - for (auto arg = CB.arg_begin(); n != 0; ++arg, --n, I++) { + for (unsigned I = 0; I < NumFixedParams; ++I) { unsigned Size = DL.getTypeAllocSize(UF.UC.getShadowTy(FT->getParamType(I))); // Stop storing if arguments' size overflows. Inside a function, @@ -2194,6 +2196,8 @@ bool UCSanVisitor::visitWrappedCallBase(Function *F, CallBase &CB) { if (!FT->getReturnType()->isVoidTy()) { CustomFnPtr->removeFnAttrs(UF.UC.ReadOnlyNoneAttrs); } + // mark as nosanitize + UF.UC.markFunctionNosanitize(CustomFnPtr); } std::vector Args; From 60a889d973068f525bee3bcd67e0300554c099fc Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Mon, 2 Mar 2026 08:17:02 -0800 Subject: [PATCH 033/139] use ParseConstraints for constraint-aware pointer checking in inline asm Replace the generic loop that checked all pointer arguments with ParseConstraints-based logic that only checks indirect (memory) operands. Also fix PrimitiveShadowPtrTy -> VoidPtrTy casts. Co-Authored-By: Claude Opus 4.6 --- instrumentation/UCSanPass.cpp | 60 ++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 25 deletions(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index c7ad2a05..1c7cfcb4 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -1242,7 +1242,7 @@ Function *UCSan::buildDangleFunction(Function *F) { // Resign shadow if enabled if (resign_ptrargs) { - Value *BCI = IRB.CreatePointerCast(&*arg, PrimitiveShadowPtrTy); + Value *BCI = IRB.CreatePointerCast(&*arg, VoidPtrTy); IRB.CreateCall(UCResignShadowFn, {BCI, shadow, CI, RetAddr}); } } @@ -1869,36 +1869,46 @@ void UCSanVisitor::visitInlineAsm(InlineAsm *IA, CallBase &CB) { IRBuilder<> IRB(&CB); auto DL = CB.getModule()->getDataLayout(); - // first for each argument, use check pointer to get the real pointer - for (unsigned I = 0; I < CB.arg_size(); ++I) { - Value* Arg = CB.getArgOperand(I); - Type* ArgTy = Arg->getType(); - if (ArgTy->isPointerTy()) { - // if the arg is a compile time constant, we don't need to check - if (isa(Arg)) continue; - // alloca doesn't need checking - if (AllocaInst *AI = dyn_cast(Arg->stripPointerCasts())) { - continue; - } - // get size of pointed-to type, if available - unsigned ObjSize = 0; - if (ArgTy->getPointerElementType()->isSized()) { - ObjSize = DL.getTypeAllocSize(ArgTy->getPointerElementType()); + // Use ParseConstraints to identify memory operands and check their pointers + auto Constraints = IA->ParseConstraints(); + unsigned ArgIdx = 0; + for (auto &CI : Constraints) { + // clobbers don't have corresponding arguments + if (CI.Type == InlineAsm::isClobber) + continue; + // non-indirect outputs don't have a pointer argument + if (CI.Type == InlineAsm::isOutput && !CI.isIndirect) { + continue; + } + // bounds check + if (ArgIdx >= CB.arg_size()) + break; + + Value *Arg = CB.getArgOperand(ArgIdx); + // only check indirect (memory) operands that are pointers + if (CI.isIndirect && Arg->getType()->isPointerTy()) { + // skip compile time constants and allocas + if (!isa(Arg) && + !isa(Arg->stripPointerCasts())) { + unsigned ObjSize = 0; + if (Arg->getType()->getPointerElementType()->isSized()) { + ObjSize = DL.getTypeAllocSize(Arg->getType()->getPointerElementType()); + } + Value *Size = ConstantInt::get(UF.UC.Int64Ty, ObjSize); + Value *Ptr = UF.checkPointer(Arg, Size, true, IRB); // dereference pointer + CB.setArgOperand(ArgIdx, Ptr); } - - Value *Size = ConstantInt::get(UF.UC.Int64Ty, ObjSize); - Value *Ptr = UF.checkPointer(Arg, Size, true, IRB); // dereference pointer - CB.setArgOperand(I, Ptr); } + ++ArgIdx; } // Next, handle specific inline assembly patterns // FIXME: inline asm auto AsmStr = IA->getAsmString(); - auto Constraints = IA->getConstraintString(); + auto ConstraintStr = IA->getConstraintString(); if (AsmStr == " btq $2,$1\x0A\x09/* output condition code c*/\x0A" && - Constraints == "={@ccc},*m,Ir,~{memory},~{dirflag},~{fpsr},~{flags}") { + ConstraintStr == "={@ccc},*m,Ir,~{memory},~{dirflag},~{fpsr},~{flags}") { // handle bt instruction Value *BitBase = CB.getArgOperand(0); Value *BitOffset = CB.getArgOperand(1); @@ -1914,7 +1924,7 @@ void UCSanVisitor::visitInlineAsm(InlineAsm *IA, CallBase &CB) { CB.replaceAllUsesWith(Result); CB.eraseFromParent(); } else if (AsmStr == ".byte 0x0f, 0x0b" && - Constraints == "~{dirflag},~{fpsr},~{flags}") { + ConstraintStr == "~{dirflag},~{fpsr},~{flags}") { // handle ud2 instruction Value *Result = IRB.CreateCall(UF.UC.ExitFn, {ConstantInt::get(UF.UC.Int32Ty, 180)}); @@ -1922,7 +1932,7 @@ void UCSanVisitor::visitInlineAsm(InlineAsm *IA, CallBase &CB) { CB.replaceAllUsesWith(Result); CB.eraseFromParent(); } else if (AsmStr == "movq ${1:P}, $0" && - Constraints == "=r,im,~{dirflag},~{fpsr},~{flags}") { + ConstraintStr == "=r,im,~{dirflag},~{fpsr},~{flags}") { Type *PT = PointerType::getUnqual(CB.getType()); Value *Base = IRB.CreateBitCast(CB.getArgOperand(0), PT); UF.UC.markNosanitize(Base); @@ -2084,7 +2094,7 @@ void UCSanVisitor::visitIndirectCallBase(Value *FPtr, CallBase &CB) { } else { CI = ConstantInt::get(UF.UC.Int64Ty, 0); } - auto BCI = IRB_EB.CreateBitCast(Arg, UF.UC.PrimitiveShadowPtrTy); // FIXME: cast to i32* (defined as void *) + auto BCI = IRB_EB.CreateBitCast(Arg, UF.UC.VoidPtrTy); // FIXME: cast to i32* (defined as void *) auto ArgTLS = UF.getArgTLS(Arg->getType(), ArgOffset, IRB_EB); Args.push_back(BCI); Args.push_back(ArgTLS); From aed3cb6bfa0196b5e0583644b27b3653ec2523b5 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Mon, 2 Mar 2026 12:02:24 -0800 Subject: [PATCH 034/139] port kernel apis --- runtime/dfsan/ucsan_custom.cpp | 35 ++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/runtime/dfsan/ucsan_custom.cpp b/runtime/dfsan/ucsan_custom.cpp index b938184e..60481fc5 100644 --- a/runtime/dfsan/ucsan_custom.cpp +++ b/runtime/dfsan/ucsan_custom.cpp @@ -313,4 +313,39 @@ void *__dfsw_memset(void *s, int c, size_t n, return s; } +// Kernel-specific stubs for __get_user and __put_user inline asm helpers +SANITIZER_INTERFACE_WEAK_DEF(int, __get_user_1, void) { return 0; } +SANITIZER_INTERFACE_WEAK_DEF(int, __get_user_2, void) { return 0; } +SANITIZER_INTERFACE_WEAK_DEF(int, __get_user_4, void) { return 0; } +SANITIZER_INTERFACE_WEAK_DEF(int, __get_user_8, void) { return 0; } +SANITIZER_INTERFACE_WEAK_DEF(void, __put_user_1, void) { } +SANITIZER_INTERFACE_WEAK_DEF(void, __put_user_2, void) { } +SANITIZER_INTERFACE_WEAK_DEF(void, __put_user_4, void) { } +SANITIZER_INTERFACE_WEAK_DEF(void, __put_user_8, void) { } + +// _copy_from_user: copy n bytes from user-space pointer to kernel buffer +// Propagates shadow/labels from source to destination +__attribute__((visibility("default"))) +unsigned long __dfsw__copy_from_user(void *to, const void *from, unsigned long n, + ucsan_label to_label, ucsan_label from_label, + ucsan_label n_label, ucsan_label *ret_label) { + UCSAN_OUT("copy_from_user(%u(%p), %u(%p), %lu)\n", to_label, to, from_label, from, n); + if (from_label) { + // assume from ptr has been checked/initialized before calling + ucsan_ptr_info *ptr_info = to_ptr_info(get_label_info(from_label)); + if (ptr_info->op != OP_EXTERNAL) { + UCSAN_OUT("WARNING: copy_from_user: from_label %d is not external, op %d\n", from_label, ptr_info->op); + } + ucsan_label *sdest = ucsan_shadow_for(to); + const ucsan_label *ssrc = ucsan_shadow_for(from); + internal_memcpy((void *)sdest, (const void *)ssrc, n * sizeof(ucsan_label)); + // Bridge to SymSan + __taint_copy_shadow(to, (void *)from, n); + } + // Copy actual data + internal_memcpy(to, from, n); + *ret_label = 0; + return 0; +} + } // extern "C" From 0e903f5853e0e6ed247bd9aac3535fdeabea80fe Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Mon, 2 Mar 2026 12:02:44 -0800 Subject: [PATCH 035/139] port ucsan_opt --- compiler/CMakeLists.txt | 1 + compiler/ucsan_opt | 147 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 148 insertions(+) create mode 100755 compiler/ucsan_opt diff --git a/compiler/CMakeLists.txt b/compiler/CMakeLists.txt index 90c18925..adb282f2 100644 --- a/compiler/CMakeLists.txt +++ b/compiler/CMakeLists.txt @@ -5,3 +5,4 @@ add_custom_command(TARGET KOClang POST_BUILD COMMAND ln -sf "ko-clang" "ko-clang++") install (TARGETS KOClang DESTINATION ${SYMSAN_BIN_DIR}) install (FILES ${CMAKE_CURRENT_BINARY_DIR}/ko-clang++ DESTINATION ${SYMSAN_BIN_DIR}) +install (PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/ucsan_opt DESTINATION ${SYMSAN_BIN_DIR}) diff --git a/compiler/ucsan_opt b/compiler/ucsan_opt new file mode 100755 index 00000000..28e22e6a --- /dev/null +++ b/compiler/ucsan_opt @@ -0,0 +1,147 @@ +#!/usr/bin/python3 + +import os +import argparse +import yaml +__path__ = os.path.dirname(os.path.abspath(__file__)) +path_to_install = os.path.abspath(os.path.join(__path__, "..")) + +ucsan_pass_path = f"{path_to_install}/lib/symsan/UCSanPass.so" +if os.path.exists(ucsan_pass_path): + pass +else: + print(f"Cannot find {ucsan_pass_path}, please make sure you have run this script in the right directory(the directory ko-clang installed)") + os._exit(1) + +KO_FLAGS = ["KO_CC=clang-14"] +ko_flags = ' '.join(KO_FLAGS) + +# Base opt-14 command: load UCSan pass +# Load library twice for LLVM-14: +# -load: registers cl::opt definitions (command-line options) +# -load-pass-plugin: registers the new pass manager plugin +cc = f"opt-14 -load {path_to_install}/lib/symsan/UCSanPass.so" \ + f" -load-pass-plugin={path_to_install}/lib/symsan/UCSanPass.so" \ + f" -ucsan-abilist={path_to_install}/lib/symsan/ucsan_abilist.txt" + +ko_cc = f"{path_to_install}/bin/ko-clang" + +argparser = argparse.ArgumentParser() + +argparser.add_argument('-m', '--metadata', help="Path to the yaml that describe analysis scope" ,type=str, required=True) +argparser.add_argument('-o', '--output', help="Path to the output file" ,type=str, default='a.ucsan') +argparser.add_argument('-O', '--optimization', action="store_true", help="Enable optimization",default=False) +argparser.add_argument('-b', '--tracebb', action="store_true", help="Enable basic block tracing",default=False) +argparser.add_argument('-t', '--taint', action="store_true", help="Enable TaintPass (combined UCSan+SymSan)",default=False) +argparser.add_argument('-i', '--indirect-call', action="store_true", help="Enable indirect call wrapping",default=False) +argparser.add_argument('-c', '--clean', action="store_false", help="Clean up the temporary files",default=True) +argparser.add_argument('-r', '--resign-ptrargs', action="store_true", help="Resign pointer arguments",default=False) +argparser.add_argument('-v', '--verbose', action="count", help="Verbose level",default=0) +argparser.add_argument('-s', '--cov', type=str, help="Path to the coverage file", default=None) +argparser.add_argument('files', action="extend", help="Path to llvm bitcode files to analyse. Note that you may add 'files' in the metadata to specify target" ,type=str, nargs='*') + +log_on = lambda level, msg: print(msg) if args.verbose >= level else None + +args = argparser.parse_args() + +metadata = args.metadata +files = args.files +output = args.output + +KO_FLAGS.append(f"METADATA={metadata}.tmp") + +yaml_file = open(metadata, 'r') +metadata = yaml.load(yaml_file, Loader=yaml.FullLoader) +yaml_file.close() +if 'files' in metadata: + files.extend(metadata['files']) + metadata.pop('files') +log_on(1, f"Files: {files}") +log_on(2, f"Writing metadata to {args.metadata}.tmp") +open(f"{args.metadata}.tmp", 'w').write(yaml.dump(metadata)) +target = os.path.basename(args.metadata).replace(".yaml", "") + +if not files: + argparser.print_usage() + os._exit(1) + +# Note: With LLVM-14 new pass manager, we don't add -O# flags to opt +# Optimization is controlled via KO_DONT_OPTIMIZE and handled by ko-clang +if not args.optimization: + KO_FLAGS.append("KO_DONT_OPTIMIZE=1") + +if args.tracebb: + KO_FLAGS.append("KO_TRACE_BB=1") + cc += " -ucsan-trace-bb=true" + +if args.indirect_call: + KO_FLAGS.append("KO_WRAP_INDIRECT_CALL=1") + +if args.resign_ptrargs: + KO_FLAGS.append("KO_RESIGN_PTRARGS=1") + +if args.cov: + os.remove(args.cov) if os.path.exists(args.cov) else None + KO_FLAGS.append(f"KO_COV={args.cov}") + +# Build the pass pipeline: UCSan first, then optionally TaintPass +# This mirrors ko-clang's order (add_ucsan_pass then add_taint_pass) +if args.taint: + KO_FLAGS.append("KO_USE_THOROUPY=1") + taint_pass_path = f"{path_to_install}/lib/symsan/TaintPass.so" + if not os.path.exists(taint_pass_path): + print(f"Cannot find {taint_pass_path}") + os._exit(1) + # Load TaintPass library for cl::opt and pass registration + cc += f" -load {taint_pass_path}" \ + f" -load-pass-plugin={taint_pass_path}" \ + f" -taint-abilist={path_to_install}/lib/symsan/dfsan_abilist.txt" \ + f" -taint-with-ucsan=true" + # Pipeline: ucsan then taint + cc += " -passes=ucsan,taint" +else: + # UCSan only + cc += " -passes=ucsan" + +cc += " -S -disable-verify" + +tmp_files = [f"{args.metadata}.tmp"] +obj_files = [] +def command(cmd): + log_on(1, f"Running command: {cmd}") + return os.system(cmd) + +def cleanup(): + if not args.clean: + print("Temporary files are not cleaned up due to the option") + print("Temporary files:\n\t" + '\n\t'.join(tmp_files)) + return + for file in tmp_files + obj_files: + try: + os.remove(file) + except: + pass + +for file in files: + bc_file = f"{file}-{target}.ucsan.s" + obj_file = f"{file}-{target}.ucsan.o" + ret = command(f"{' '.join(KO_FLAGS)} {cc} {file} -o {bc_file}") + if ret != 0: + print(f"Failed to compile {file}, check the error message above") + cleanup() + os._exit(1) + tmp_files.append(bc_file) + ret = command(f"llc-14 -filetype=obj --relocation-model=pic -o {obj_file} {bc_file}") + if ret != 0: + print(f"Failed to compile {file}, check the error message above") + cleanup() + os._exit(1) + obj_files.append(obj_file) + +ret = command(f"{' '.join(KO_FLAGS)} {ko_cc} {' '.join(obj_files)} -o {output}") +if ret != 0: + print(f"Failed to compile {output}, check the error message above") + cleanup() + os._exit(1) + +cleanup() From 9ef497f04fcf78ffadfddfed2c44e63409517881 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Mon, 2 Mar 2026 12:03:37 -0800 Subject: [PATCH 036/139] improve inline asm handling, fix stack alignment issue, fix dso introduced pie problem --- instrumentation/UCSanPass.cpp | 288 +++++++++++++++++++++++----------- 1 file changed, 196 insertions(+), 92 deletions(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 1c7cfcb4..32c3df5e 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -642,9 +642,9 @@ void UCSan::initializeRuntimeFunctions(Module &M) { markFunctionNosanitize(F); UCRuntimeFunctions.insert(F); - // Argument initialization: i16* ucsan_set_label_for_args(i32, i32, i8, i64) + // Argument initialization: void* ucsan_set_label_for_args(i32, i32, i8, i64) UCSetLabelForArgsFnTy = FunctionType::get( - PrimitiveShadowPtrTy, + VoidPtrTy, {Int32Ty, Int32Ty, Int8Ty, Int64Ty}, false); UCSetLabelForArgsFn = M.getOrInsertFunction("ucsan_set_label_for_args", UCSetLabelForArgsFnTy); @@ -1200,6 +1200,10 @@ Function *UCSan::buildDangleFunction(Function *F) { std::string FN = "__external$" + F->getName().str(); Function *NewF = Function::Create(FT, GlobalValue::LinkageTypes::PrivateLinkage, F->getAddressSpace(), FN, Mod); + // Some inputs are compiled with non-standard stack alignment; force realignment + // so calls into UCSan runtime vararg logging are always safe. + NewF->addFnAttr(Attribute::getWithStackAlignment(*Ctx, Align(16))); + NewF->addFnAttr("stackrealign"); markFunctionNosanitize(NewF); // Mark dangle wrapper so TaintPass skips it FunctionType *NewFT = NewF->getFunctionType(); BasicBlock *BB = BasicBlock::Create(*Ctx, "entry", NewF); @@ -1334,13 +1338,12 @@ Function *UCSan::buildDriverWrapperFunction(Function *F) { FunctionType *FT = FunctionType::get(Int32Ty, {Int32Ty, ArgvTy}, false); Function *NewF = Function::Create(FT, GlobalValue::LinkageTypes::ExternalLinkage, F->getAddressSpace(), "main", Mod); - // Set argument names for clarity NewF->getArg(0)->setName("argc"); NewF->getArg(1)->setName("argv"); - // Only copy function-level attributes, not parameter or return attributes - NewF->setAttributes(AttributeList::get(*Ctx, F->getAttributes().getFnAttrs(), - AttributeSet(), {})); + // Ensure 16-byte stack alignment for calls into sanitizer vararg code (Printf). + NewF->addFnAttr(Attribute::getWithStackAlignment(*Ctx, Align(16))); + NewF->addFnAttr("stackrealign"); markFunctionNosanitize(NewF); // Mark driver wrapper so TaintPass skips it BasicBlock *BB = BasicBlock::Create(*Ctx, "entry", NewF); @@ -1434,6 +1437,9 @@ Function *UCSan::getCustomFunction(const Function *F) { F->isVarArg()); Function *WrapperFunc = Function::Create(WrapperType, Linkage, WrappedName, *Mod); + // Keep wrapper/runtime call ABI robust even when module stack alignment is 8. + WrapperFunc->addFnAttr(Attribute::getWithStackAlignment(*Ctx, Align(16))); + WrapperFunc->addFnAttr("stackrealign"); markFunctionNosanitize(WrapperFunc); // Mark custom wrapper so TaintPass skips it BasicBlock *BB = BasicBlock::Create(*Ctx, "entry", WrapperFunc); IRBuilder<> IRB(BB); @@ -1902,106 +1908,190 @@ void UCSanVisitor::visitInlineAsm(InlineAsm *IA, CallBase &CB) { ++ArgIdx; } - // Next, handle specific inline assembly patterns - // FIXME: inline asm + // Next, handle inline assembly patterns using parsed constraints auto AsmStr = IA->getAsmString(); - auto ConstraintStr = IA->getConstraintString(); - - if (AsmStr == " btq $2,$1\x0A\x09/* output condition code c*/\x0A" && - ConstraintStr == "={@ccc},*m,Ir,~{memory},~{dirflag},~{fpsr},~{flags}") { - // handle bt instruction - Value *BitBase = CB.getArgOperand(0); - Value *BitOffset = CB.getArgOperand(1); - Value *Load = IRB.CreateLoad(BitBase->getType()->getPointerElementType(), BitBase); - UF.UC.markNosanitize(Load); - Value *Shift = IRB.CreateShl(Load, BitOffset); - UF.UC.markNosanitize(Shift); - Value *And = IRB.CreateAnd(Shift, 1); - UF.UC.markNosanitize(And); - Value *Result = IRB.CreateTrunc(And, Type::getInt8Ty(*UF.UC.Ctx)); - UF.UC.markNosanitize(Result); - CB.replaceAllUsesWith(Result); - CB.eraseFromParent(); - } else if (AsmStr == ".byte 0x0f, 0x0b" && - ConstraintStr == "~{dirflag},~{fpsr},~{flags}") { - // handle ud2 instruction + // Check if all constraints are clobbers (no inputs/outputs) + bool allClobbers = true; + for (auto &CI : Constraints) { + if (CI.Type != InlineAsm::isClobber) { + allClobbers = false; + break; + } + } + + // Handle trap/crash instructions: ud2, int3, .byte 0x0f,0x0b, etc. + // These have only clobber constraints and should be replaced with exit() + if (allClobbers && + (AsmStr.find("ud2") != StringRef::npos || + AsmStr.find(".byte 0x0f, 0x0b") != StringRef::npos || + AsmStr.find("int3") != StringRef::npos || + AsmStr.find("int $3") != StringRef::npos || + AsmStr.find("hlt") != StringRef::npos)) { Value *Result = IRB.CreateCall(UF.UC.ExitFn, {ConstantInt::get(UF.UC.Int32Ty, 180)}); UF.UC.markNosanitize(Result); CB.replaceAllUsesWith(Result); CB.eraseFromParent(); - } else if (AsmStr == "movq ${1:P}, $0" && - ConstraintStr == "=r,im,~{dirflag},~{fpsr},~{flags}") { - Type *PT = PointerType::getUnqual(CB.getType()); - Value *Base = IRB.CreateBitCast(CB.getArgOperand(0), PT); - UF.UC.markNosanitize(Base); - Value *Result = IRB.CreateLoad(PT, Base); - UF.UC.markNosanitize(Result); - CB.replaceAllUsesWith(Result); - CB.eraseFromParent(); - } else if (AsmStr.find("__get_user_${") != StringRef::npos) { - // handle __get_user_ inline assembly - // get the number of bytes to read - ConstantInt *SizeArg = dyn_cast(CB.getArgOperand(1)); - if (!SizeArg) { - errs() << "Unsupported __get_user argument: " << CB << "\n"; - return; - } - unsigned Size = SizeArg->getZExtValue(); - if (Size != 1 && Size != 2 && Size != 4 && Size != 8) { - errs() << "Unsupported size for __get_user: " << AsmStr << "\n"; - return; - } - // check uses before replacing - for (auto *U : CB.users()) { - if (auto *EI = dyn_cast(U)) { - if (EI->getNumIndices() != 1) { - errs() << "Unhandled extract of __get_user:" << *U << "\n"; + return; + } + + // Handle call/callq instructions in inline asm + // Extract the callee symbol and route through normal call handling + StringRef AsmStrRef(AsmStr); + auto CallPos = AsmStrRef.find("callq "); + if (CallPos == StringRef::npos) + CallPos = AsmStrRef.find("call "); + if (CallPos != StringRef::npos) { + // Extract symbol name after call/callq + StringRef After = AsmStrRef.substr( + CallPos + (AsmStrRef[CallPos + 4] == 'q' ? 6 : 5)); + // Trim leading whitespace + After = After.ltrim(); + // Symbol name ends at whitespace, newline, or end of string + auto EndPos = After.find_first_of(" \t\n\r;"); + StringRef Symbol = (EndPos != StringRef::npos) ? + After.substr(0, EndPos) : After; + // Strip operand modifiers like ${0:P} - if it starts with $, it's a register operand + if (!Symbol.empty() && Symbol[0] != '$' && Symbol[0] != '%' && + Symbol[0] != '*') { + // Look up the function in the module + Function *Callee = CB.getModule()->getFunction(Symbol); + + // If not found, the symbol is only referenced in inline asm + if (!Callee) { + if (CB.getType()->isVoidTy() || CB.use_empty()) { + // No return value or no uses — safe to just delete + CB.eraseFromParent(); return; } - } else { - errs() << "Unhandled use of __get_user:" << *U << "\n"; + // Has uses — try to find a type-matching input as passthrough + // e.g., "={rsp},{rsp}" means rsp is passed through unchanged + Value *Passthrough = nullptr; + for (unsigned I = 0; I < CB.arg_size(); ++I) { + if (CB.getArgOperand(I)->getType() == CB.getType()) { + Passthrough = CB.getArgOperand(I); + break; + } + } + if (Passthrough) { + CB.replaceAllUsesWith(Passthrough); + } else { + CB.replaceAllUsesWith(Constant::getNullValue(CB.getType())); + } + CB.eraseFromParent(); return; } - } - // replace with a load - for (auto *U : CB.users()) { - auto *EI = cast(U); - auto Idx = EI->getIndices()[0]; - switch (Idx) { - case 0: // return value - { - // replace with a nullptr - auto *PTy = dyn_cast(EI->getType()); - assert(PTy && "Expected pointer type for __get_user return value 1"); - EI->replaceAllUsesWith(ConstantPointerNull::get(PTy)); - break; + { + // Build input args from parsed constraints + SmallVector CallArgs; + unsigned InArgIdx = 0; + for (auto &CI : Constraints) { + if (CI.Type == InlineAsm::isClobber) + continue; + if (CI.Type == InlineAsm::isOutput && !CI.isIndirect) + continue; + if (InArgIdx >= CB.arg_size()) + break; + if (CI.Type == InlineAsm::isInput) { + CallArgs.push_back(CB.getArgOperand(InArgIdx)); + } + ++InArgIdx; } - case 1: // loaded value - { - LoadInst *LI = IRB.CreateLoad(EI->getType(), CB.getArgOperand(0)); - UF.UC.markNosanitize(LI); - Value *Shadow = UF.loadShadow(CB.getArgOperand(0), Size, Align(1), EI->getType(), LI); - UF.setShadow(LI, Shadow); - EI->replaceAllUsesWith(LI); - break; + + // Check if the callee has a wrapper (custom or auto-custom) + DenseMap::iterator UnwrappedFnIt = + UF.UC.UnwrappedFnMap.find(Callee); + if (UnwrappedFnIt != UF.UC.UnwrappedFnMap.end()) { + // Replace inline asm with a direct call to the callee + // visitWrappedCallBase will redirect to the wrapper + FunctionType *FT = Callee->getFunctionType(); + + // Adjust args to match function signature + SmallVector AdjustedArgs; + for (unsigned I = 0; I < FT->getNumParams() && I < CallArgs.size(); ++I) { + Value *Arg = CallArgs[I]; + if (Arg->getType() != FT->getParamType(I)) { + Arg = IRB.CreateBitOrPointerCast(Arg, FT->getParamType(I)); + UF.UC.markNosanitize(Arg); + } + AdjustedArgs.push_back(Arg); + } + + CallInst *NewCall = IRB.CreateCall(Callee, AdjustedArgs); + UF.UC.markNosanitize(NewCall); + + if (!CB.getType()->isVoidTy()) { + // Handle return value: replace all uses of the inline asm result + if (CB.getType() == NewCall->getType()) { + CB.replaceAllUsesWith(NewCall); + } else if (StructType *ST = dyn_cast(CB.getType())) { + // Inline asm may return a struct; replace ExtractValue uses + for (auto *U : CB.users()) { + if (auto *EI = dyn_cast(U)) { + if (EI->getIndices()[0] == 0) { + // First element is typically the return value + Value *Cast = IRB.CreateBitOrPointerCast(NewCall, EI->getType()); + UF.UC.markNosanitize(Cast); + EI->replaceAllUsesWith(Cast); + } else { + // Other elements get zero/null + EI->replaceAllUsesWith(Constant::getNullValue(EI->getType())); + } + UF.SkipInsts.insert(EI); + UF.RemovalInsts.push_back(EI); + } + } + } + } + CB.eraseFromParent(); + + // Now handle the new call through the normal wrapped call path + visitWrappedCallBase(UnwrappedFnIt->second, *NewCall); + return; } - case 2: // rsp - { - // use the original rsp value - EI->replaceAllUsesWith(CB.getArgOperand(2)); - break; + + // For in-scope or normal out-of-scope functions, replace with direct call + FunctionType *FT = Callee->getFunctionType(); + SmallVector AdjustedArgs; + for (unsigned I = 0; I < FT->getNumParams() && I < CallArgs.size(); ++I) { + Value *Arg = CallArgs[I]; + if (Arg->getType() != FT->getParamType(I)) { + Arg = IRB.CreateBitOrPointerCast(Arg, FT->getParamType(I)); + UF.UC.markNosanitize(Arg); + } + AdjustedArgs.push_back(Arg); } - default: - errs() << "Unhandled index for __get_user: " << Idx << "\n"; + + CallInst *NewCall = IRB.CreateCall(Callee, AdjustedArgs); + UF.UC.markNosanitize(NewCall); + + if (!CB.getType()->isVoidTy()) { + if (CB.getType() == NewCall->getType()) { + CB.replaceAllUsesWith(NewCall); + } else if (isa(CB.getType())) { + for (auto *U : CB.users()) { + if (auto *EI = dyn_cast(U)) { + if (EI->getIndices()[0] == 0) { + Value *Cast = IRB.CreateBitOrPointerCast(NewCall, EI->getType()); + UF.UC.markNosanitize(Cast); + EI->replaceAllUsesWith(Cast); + } else { + EI->replaceAllUsesWith(Constant::getNullValue(EI->getType())); + } + UF.SkipInsts.insert(EI); + UF.RemovalInsts.push_back(EI); + } + } + } + } + CB.eraseFromParent(); + + // Handle shadow propagation for the new call through visitCallBase + visitCallBase(*NewCall); + return; } - // set as skipped - UF.SkipInsts.insert(EI); - // add for removal - UF.RemovalInsts.push_back(EI); } - CB.eraseFromParent(); } return; @@ -2750,6 +2840,11 @@ bool UCSan::runImpl(Module &M) { for (Function *F : FnsToInstrument) { if (!F || F->isDeclaration()) continue; + // Kernel-style inputs may use 8-byte stack alignment; force realignment so + // inserted UCSan runtime calls follow userspace ABI requirements. + F->addFnAttr(Attribute::getWithStackAlignment(*Ctx, Align(16))); + F->addFnAttr("stackrealign"); + // Add driver wrapper for entry point bool isEntry = false; if (F->getName() == Scope.entry || @@ -2826,11 +2921,20 @@ bool UCSan::runImpl(Module &M) { } // Fix initializer for declared global variables with external linkage + // Also strip dso_local so llc generates PIC-compatible relocations + // (needed for code compiled without -fPIC, e.g. kernel) for (GlobalVariable &GV : M.globals()) { + if (GV.isDSOLocal()) { + GV.setDSOLocal(false); + } if (GV.isDeclaration() && GV.hasExternalLinkage()) { GV.setLinkage(GlobalValue::WeakAnyLinkage); - Constant *ZeroInit = Constant::getNullValue(GV.getValueType()); - GV.setInitializer(ZeroInit); + GV.setInitializer(Constant::getNullValue(GV.getValueType())); + } + } + for (Function &F : M) { + if (F.isDSOLocal()) { + F.setDSOLocal(false); } } From c0dddbba692f651b5e867c7d0c375e2f5ad3ac23 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Mon, 2 Mar 2026 12:32:45 -0800 Subject: [PATCH 037/139] capture violate effects of memory barrier --- instrumentation/UCSanPass.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 32c3df5e..99a3f682 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -1960,6 +1960,15 @@ void UCSanVisitor::visitInlineAsm(InlineAsm *IA, CallBase &CB) { // If not found, the symbol is only referenced in inline asm if (!Callee) { + // If the inline asm has side effects (volatile), insert a compiler + // barrier to preserve ordering before removing it + if (IA->hasSideEffects()) { + auto *Barrier = InlineAsm::get( + FunctionType::get(Type::getVoidTy(*UF.UC.Ctx), false), + "", "~{memory}", true); + auto *BarrierCall = IRB.CreateCall(Barrier); + UF.UC.markNosanitize(BarrierCall); + } if (CB.getType()->isVoidTy() || CB.use_empty()) { // No return value or no uses — safe to just delete CB.eraseFromParent(); From 1ab202faa13b2ece0ca98af55e989d54aa9b67f3 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Wed, 4 Mar 2026 15:34:00 -0800 Subject: [PATCH 038/139] fix GEP index sort mismatch and python ParseGEP arg parsing Normalize GEP index expressions to 64-bit bitvectors, handling Int-sort indices from string-derived constraints. Fix PyArg_ParseTuple 'p' format which expects int*, not bool*. Co-Authored-By: Claude Opus 4.6 --- python/symsan-py.cpp | 5 +++-- solvers/z3-ts.cpp | 21 ++++++++++++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/python/symsan-py.cpp b/python/symsan-py.cpp index c92bed03..e670bb89 100644 --- a/python/symsan-py.cpp +++ b/python/symsan-py.cpp @@ -394,12 +394,13 @@ static PyObject* ParseGEP(PyObject *self, PyObject *args) { uint64_t num_elems = 0; uint64_t elem_size = 0; int64_t current_offset = 0; - bool enum_index = false; // XXX: default to false? + int enum_index_i = 0; // PyArg 'p' expects int* if (!PyArg_ParseTuple(args, "IKILKKLp", &ptr_label, &ptr, &index_label, &index, - &num_elems, &elem_size, ¤t_offset, &enum_index)) { + &num_elems, &elem_size, ¤t_offset, &enum_index_i)) { return NULL; } + bool enum_index = (enum_index_i != 0); std::vector tasks; if (__z3_parser->parse_gep(ptr_label, ptr, index_label, index, num_elems, diff --git a/solvers/z3-ts.cpp b/solvers/z3-ts.cpp index 75313491..ee16a7e6 100644 --- a/solvers/z3-ts.cpp +++ b/solvers/z3-ts.cpp @@ -1706,8 +1706,27 @@ int Z3AstParser::parse_gep(dfsan_label ptr_label, uptr ptr, dfsan_label index_la z3_task_t nested_tasks; add_nested_constraints(inputs, &nested_tasks); + // Normalize index expr to 64-bit bitvector. + // String-derived constraints may produce Int-sort indices. + z3::expr idx = i; + if (idx.is_bool()) { + // Defensive normalization: bool -> 1-bit BV. + idx = z3::ite(idx, context_.bv_val(1, 1), context_.bv_val(0, 1)); + } + if (idx.is_int()) { + idx = z3::int2bv(64, idx); + } else if (idx.is_bv()) { + unsigned idx_bits = idx.get_sort().bv_size(); + if (idx_bits < 64) { + idx = z3::zext(idx, 64 - idx_bits); + } else if (idx_bits > 64) { + idx = idx.extract(63, 0); + } + } else { + throw z3::exception("GEP index has unsupported sort"); + } + // first, check against fixed array bounds if available - z3::expr idx = z3::zext(i, 64 - size); if (num_elems > 0) { construct_index_tasks(idx, index, 0, num_elems, 1, nested_tasks, tasks); } else { From 9043bc003f39b63cc916a975b5d2fdb320c8682b Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Wed, 4 Mar 2026 15:34:34 -0800 Subject: [PATCH 039/139] add WK_TaintCustom wrapper kind to defer string function wrapping to TaintPass When both UCSan and TaintPass run together, string functions (memchr, strcmp, strcpy, etc.) are marked as 'taint' in the abilist so TaintPass handles the __dfsw_ wrapping with proper taint labels. UCSan only does checkPointer on pointer args at these call sites. Co-Authored-By: Claude Opus 4.6 --- compiler/ko_clang.c | 6 +++++ compiler/ucsan_opt | 2 ++ instrumentation/UCSanPass.cpp | 41 ++++++++++++++++++++++++++--- runtime/dfsan/ucsan_abilist.txt | 46 ++++++++++++++++----------------- 4 files changed, 68 insertions(+), 27 deletions(-) diff --git a/compiler/ko_clang.c b/compiler/ko_clang.c index 274eb9d0..34170080 100644 --- a/compiler/ko_clang.c +++ b/compiler/ko_clang.c @@ -289,6 +289,12 @@ static void add_ucsan_pass() { cc_params[cc_par_cnt++] = "-mllvm"; cc_params[cc_par_cnt++] = "-ucsan-trace-bb=true"; } + + if (!use_ucsan_only) { + // TaintPass will run after UCSanPass + cc_params[cc_par_cnt++] = "-mllvm"; + cc_params[cc_par_cnt++] = "-ucsan-with-taint=true"; + } } static void edit_params(u32 argc, char **argv) { diff --git a/compiler/ucsan_opt b/compiler/ucsan_opt index 28e22e6a..b92cb0fa 100755 --- a/compiler/ucsan_opt +++ b/compiler/ucsan_opt @@ -92,6 +92,8 @@ if args.taint: if not os.path.exists(taint_pass_path): print(f"Cannot find {taint_pass_path}") os._exit(1) + # Tell UCSanPass that TaintPass will run after it + cc += f" -ucsan-with-taint=true" # Load TaintPass library for cl::opt and pass registration cc += f" -load {taint_pass_path}" \ f" -load-pass-plugin={taint_pass_path}" \ diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 99a3f682..3da3392d 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -105,6 +105,11 @@ static cl::opt ClTraceBB("ucsan-trace-bb", cl::desc("Enable basic block tracing"), cl::Hidden, cl::init(false)); +static cl::opt ClWithTaintPass( + "ucsan-with-taint", + cl::desc("TaintPass will run after UCSanPass, defer taint custom functions"), + cl::Hidden, cl::init(false)); + // The ABI list files control how shadow parameters are passed. static cl::list ClABIListFiles( "ucsan-abilist", @@ -313,6 +318,7 @@ class UCSan { enum WrapperKind { WK_None, WK_Custom, + WK_TaintCustom, // custom in dfsan abilist, defer to TaintPass if available WK_AutoCustom }; @@ -1508,6 +1514,10 @@ Function *UCSan::getCustomFunction(const Function *F) { } UCSan::WrapperKind UCSan::getWrapperKind(Function *F) { + // Check ABIList for taint custom functions (handled by TaintPass if available) + if (ABIList.isIn(*F, "taint")) + return WK_TaintCustom; + // Check ABIList for custom functions (priority) if (ABIList.isIn(*F, "custom")) return WK_Custom; @@ -2286,6 +2296,25 @@ bool UCSanVisitor::visitWrappedCallBase(Function *F, CallBase &CB) { } return true; + case UCSan::WK_TaintCustom: + { + // TaintPass will handle the __dfsw_ wrapping with proper taint labels. + // Just check pointer arguments here, skip ucsan arg/retval TLS. + auto *I = CB.arg_begin(); + for (unsigned N = FT->getNumParams(); N != 0; ++I, --N) { + if ((*I)->getType()->isPointerTy()) { + Value *sizeArg = ConstantInt::get(UF.UC.Int64Ty, + DL.getTypeAllocSize((*I)->getType()->getPointerElementType())); + Value *rptr = UF.checkPointer(*I, sizeArg, true, IRB); + CB.setArgOperand(FT->getNumParams() - N, rptr); + } + } + // Set zero ucsan shadow for the return value; TaintPass will set the taint label. + if (!FT->getReturnType()->isVoidTy()) { + UF.setShadow(&CB, UF.UC.getZeroShadow(&CB)); + } + return true; // fully handled, skip normal arg/retval TLS stores + } case UCSan::WK_Custom: { // Call the __dfsw_ wrapper with shadow arguments @@ -2823,12 +2852,16 @@ bool UCSan::runImpl(Module &M) { if (inScope) { FnsToInstrument.push_back(&F); } else { - if (getWrapperKind(&F) != WK_Custom && - getWrapperKind(&F) != WK_AutoCustom) { - FnsOutOfScope.push_back(&F); - } else { + auto WK = getWrapperKind(&F); + if (WK == WK_TaintCustom && ClWithTaintPass) { + // TaintPass will call the custom wrapper and pass taint labels. + // UCSan will only do check_pointer on pointer args at call sites. + UnwrappedFnMap[&F] = &F; + } else if (WK == WK_Custom || WK == WK_AutoCustom) { if (!F.isDeclaration()) F.deleteBody(); UnwrappedFnMap[&F] = &F; + } else { + FnsOutOfScope.push_back(&F); } } diff --git a/runtime/dfsan/ucsan_abilist.txt b/runtime/dfsan/ucsan_abilist.txt index 1ead9bc0..698a7d2f 100644 --- a/runtime/dfsan/ucsan_abilist.txt +++ b/runtime/dfsan/ucsan_abilist.txt @@ -27,29 +27,29 @@ fun:memcpy=custom fun:memmove=custom fun:memset=custom -fun:stpcpy=custom -fun:strcat=custom -fun:strcpy=custom -fun:strdup=custom -fun:strncat=custom -fun:strncpy=custom -fun:strndup=custom +fun:stpcpy=taint +fun:strcat=taint +fun:strcpy=taint +fun:strdup=taint +fun:strncat=taint +fun:strncpy=taint +fun:strndup=taint -fun:bcmp=custom -fun:memchr=custom -fun:memcmp=custom -fun:memrchr=custom -fun:strcasecmp=custom -fun:strchr=custom -fun:strcmp=custom -fun:strlen=custom -fun:strncasecmp=custom -fun:strncmp=custom -fun:strpbrk=custom -fun:strrchr=custom -fun:strstr=custom -fun:strnstr=custom -fun:memmem=custom +fun:bcmp=taint +fun:memchr=taint +fun:memcmp=taint +fun:memrchr=taint +fun:strcasecmp=taint +fun:strchr=taint +fun:strcmp=taint +fun:strlen=taint +fun:strncasecmp=taint +fun:strncmp=taint +fun:strpbrk=taint +fun:strrchr=taint +fun:strstr=taint +fun:strnstr=taint +fun:memmem=taint # kernel fun:kmalloc_large=custom @@ -63,4 +63,4 @@ fun:_copy_to_user=uninstrumented fun:_copy_to_user=discard # buffer size -fun:_copy_from_user=size3 \ No newline at end of file +fun:_copy_from_user=size3 From e2294f7c191546408ea8d525c89b9a2dfe7a3ea1 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Wed, 4 Mar 2026 15:34:52 -0800 Subject: [PATCH 040/139] propagate taint labels through ucsan_check_pointer Remove nosanitize from checkPointer calls so TaintPass can see them, and propagate the pointer's shadow label through ucsan_check_pointer in TaintPass. Co-Authored-By: Claude Opus 4.6 --- instrumentation/TaintPass.cpp | 10 ++++++++++ instrumentation/UCSanPass.cpp | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/instrumentation/TaintPass.cpp b/instrumentation/TaintPass.cpp index c158a341..79b5e1de 100644 --- a/instrumentation/TaintPass.cpp +++ b/instrumentation/TaintPass.cpp @@ -3135,6 +3135,16 @@ void TaintVisitor::visitCallBase(CallBase &CB) { return; } + // handle ucsan_check_pointer + if (F && ClWithUCSan && F->getName().equals("ucsan_check_pointer")) { + // just propagate the label + Value *Shadow = TF.getShadow(CB.getArgOperand(0)); + if (!TF.TT.isZeroShadow(Shadow)) { + TF.setShadow(&CB, Shadow); + } + return; + } + // Calls to this function are synthesized in wrappers, and we shouldn't // instrument them. if (F == TF.TT.TaintVarargWrapperFn.getCallee()->stripPointerCasts()) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 3da3392d..d90d2dbb 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -1649,7 +1649,7 @@ Value *UCSanFunction::checkPointer(Value *Ptr, Value *Size, bool dereference, CallInst *NewAddr = IRB.CreateCall( UC.UCCheckPointerFn, {Addr, Shadow, ExtSize, Deref}); - UC.markNosanitize(NewAddr); + // UC.markNosanitize(NewAddr); // don't mark as nonsanitize Value *Checked = NewAddr; if (Ty != NewAddr->getType()) { From a52defccbbe4293d072a2cdb2d0c37f57bd22a94 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Wed, 4 Mar 2026 15:35:12 -0800 Subject: [PATCH 041/139] simplify PtrToInt(string_op) - base and x - x in taint union Recognize the ptr2int+sub pattern (equivalent to GEP offset) and simplify Sub(PtrToInt(string_op), base_addr) to just the PtrToInt label when base addresses match. Also add x - x = 0 simplification. Co-Authored-By: Claude Opus 4.6 --- runtime/dfsan/dfsan.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/runtime/dfsan/dfsan.cpp b/runtime/dfsan/dfsan.cpp index 5879985f..93882c99 100644 --- a/runtime/dfsan/dfsan.cpp +++ b/runtime/dfsan/dfsan.cpp @@ -307,14 +307,31 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, else if (op == __dfsan::LShr) return l1; // x >> 0 = x else if (op == __dfsan::AShr) return l1; // x >> 0 = x } + // Simplify PtrToInt(string_op) - base_addr to just PtrToInt (the index) + // This is the ptr2int+sub equivalent of what __taint_gep_offset does for GEP: + // ptr = base + index, so PtrToInt(ptr) - base = index, + // and PtrToInt already represents the index as a bitvector + if (op == __dfsan::Sub && l2 == 0 && l1 >= CONST_OFFSET) { + dfsan_label_info *l1_info = get_label_info(l1); + if (l1_info->op == __dfsan::PtrToInt && l1_info->l1 >= CONST_OFFSET) { + dfsan_label_info *src_info = get_label_info(l1_info->l1); + if (src_info->op >= __dfsan::fstr_op_start && + src_info->op < __dfsan::fstr_op_end && + src_info->op1.i == op2) { + AOUT("simplify ptr2int(string_op) - base: %d\n", l1); + return l1; + } + } + } if (op == __dfsan::Trunc) { if (__dfsan_label_info[l1].op == __dfsan::ZExt || __dfsan_label_info[l1].op == __dfsan::SExt) { dfsan_label base = __dfsan_label_info[l1].l1; if (size == __dfsan_label_info[base].size) return base; } - } else if (op == __dfsan::Xor && l1 == l2) { + } else if ((op == __dfsan::Xor || op == __dfsan::Sub) && l1 == l2) { // x ^ x = 0 + // x - x = 0 return 0; } @@ -1947,4 +1964,4 @@ void __taint_move_shadow(void *dst, void *src, uint64_t size) { internal_memmove(dst_shadow, src_shadow, size * sizeof(dfsan_label)); } -} // extern "C" \ No newline at end of file +} // extern "C" From a583fd844cf05adf6d6423a777f2c9995c1de1a6 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 6 Mar 2026 14:39:20 -0800 Subject: [PATCH 042/139] add flength op and __taint_add_constraint for memchr/memrchr length bounds When Z3 solves constraints with symbolic haystack buffers, it can shrink the string variable while leaving the search length (n) large, causing taint graph divergence on re-execution. Fix this by emitting length(str) >= n constraints when n is symbolic. - Add flength enum value (z3::length, Int sort) to operators - Add __taint_add_constraint callback (sends add_constraint_type pipe msg) - Emit flength >= n constraint in __dfsw_memchr and __dfsw_memrchr when n_label != 0 (symbolic buffer size) Co-Authored-By: Claude Opus 4.6 --- backend/fastgen.cpp | 29 +++++++++++++++++++++++++++++ runtime/dfsan/dfsan.cpp | 1 + runtime/dfsan/dfsan.h | 3 ++- runtime/dfsan/dfsan_custom.cpp | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 65 insertions(+), 1 deletion(-) diff --git a/backend/fastgen.cpp b/backend/fastgen.cpp index dfbfda15..5716b5a6 100644 --- a/backend/fastgen.cpp +++ b/backend/fastgen.cpp @@ -278,6 +278,35 @@ __taint_trace_offset(dfsan_label offset_label, s64 offset, unsigned size) { return; } +extern "C" SANITIZER_INTERFACE_ATTRIBUTE void +__taint_add_constraint(dfsan_label label, uint8_t result) { + if (label == 0) + return; + + void *addr = __builtin_return_address(0); + + AOUT("tainted add_constraint: %d, result: %u @%p\n", label, result, addr); + + if (__pipe_fd < 0) + return; + + pipe_msg msg = { + .msg_type = add_constraint_type, + .flags = 0, + .instance_id = __instance_id, + .addr = (uptr)addr, + .context = __taint_trace_callstack, + .label = label, + .result = (uint64_t)result + }; + + if (internal_write(__pipe_fd, &msg, sizeof(msg)) < 0) { + Die(); + } + + return; +} + extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __taint_trace_memcmp(dfsan_label label) { if (label == 0) diff --git a/runtime/dfsan/dfsan.cpp b/runtime/dfsan/dfsan.cpp index 93882c99..bb70fe66 100644 --- a/runtime/dfsan/dfsan.cpp +++ b/runtime/dfsan/dfsan.cpp @@ -1889,6 +1889,7 @@ SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_offset, dfsan_label, int64_t, unsigned) {} SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_memcmp, dfsan_label) {} SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_distance, uint64_t, uint64_t) {} +SANITIZER_INTERFACE_WEAK_DEF(void, __taint_add_constraint, dfsan_label, uint8_t) {} SANITIZER_WEAK_ATTRIBUTE THREADLOCAL uint32_t __taint_trace_callstack; } // extern "C" diff --git a/runtime/dfsan/dfsan.h b/runtime/dfsan/dfsan.h index b6a1fa8c..c2b9cd82 100644 --- a/runtime/dfsan/dfsan.h +++ b/runtime/dfsan/dfsan.h @@ -201,7 +201,8 @@ enum operators { fstrcmp = last_llvm_op + 18, // 85 strcmp using Z3 string theory fprefixof = last_llvm_op + 19, // 86 prefixof(str, prefix) using Z3 string theory fsuffixof = last_llvm_op + 20, // 87 suffixof(str, suffix) using Z3 string theory - LastOp = last_llvm_op + 21, // 88 + flength = last_llvm_op + 21, // 88 z3::length(str_var), Int sort + LastOp = last_llvm_op + 22, // 89 }; enum predicate { diff --git a/runtime/dfsan/dfsan_custom.cpp b/runtime/dfsan/dfsan_custom.cpp index 743cbada..208168ab 100644 --- a/runtime/dfsan/dfsan_custom.cpp +++ b/runtime/dfsan/dfsan_custom.cpp @@ -203,6 +203,9 @@ static void dfsan_memset(void *s, int c, dfsan_label c_label, size_t n) { extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __taint_trace_offset(dfsan_label offset_label, int64_t offset, unsigned size); +extern "C" SANITIZER_INTERFACE_ATTRIBUTE void +__taint_add_constraint(dfsan_label label, uint8_t result); + extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __taint_trace_memcmp(dfsan_label label); @@ -1802,6 +1805,21 @@ SANITIZER_INTERFACE_ATTRIBUTE void *__dfsw_memchr(void *s, int c, size_t n, if (ret) { taint_set_str_indexof_label(ret, *ret_label); } + + // Emit length constraint: length(src) >= n, only when n is symbolic. + // When n is concrete, the buffer size is fixed and cannot diverge. + // When n is symbolic (from input), we must tie string length to n + // so Z3 does not shrink the string while leaving n large. + if (src_label != 0 && n_label != 0) { + dfsan_label len_label = dfsan_union(src_label, 0, __dfsan::flength, + sizeof(size_t) * 8, 0, (uint64_t)n); + if (len_label) { + dfsan_label ge_label = dfsan_union(len_label, n_label, + (__dfsan::bvuge << 8) | __dfsan::ICmp, 1, n, n); + if (ge_label) + __taint_add_constraint(ge_label, 1); + } + } } else { *ret_label = 0; } @@ -1880,6 +1898,21 @@ SANITIZER_INTERFACE_ATTRIBUTE void *__dfsw_memrchr(const void *s, int c, size_t if (ret) { taint_set_str_indexof_label(ret, *ret_label); } + + // Emit length constraint: length(src) >= n, only when n is symbolic. + // When n is concrete, the buffer size is fixed and cannot diverge. + // When n is symbolic (from input), we must tie string length to n + // so Z3 does not shrink the string while leaving n large. + if (src_label != 0 && n_label != 0) { + dfsan_label len_label = dfsan_union(src_label, 0, __dfsan::flength, + sizeof(size_t) * 8, 0, (uint64_t)n); + if (len_label) { + dfsan_label ge_label = dfsan_union(len_label, n_label, + (__dfsan::bvuge << 8) | __dfsan::ICmp, 1, n, n); + if (ge_label) + __taint_add_constraint(ge_label, 1); + } + } } else { *ret_label = 0; } From 14229d58553da8ea0afe5dbc7f61e4a48f76b1ce Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 6 Mar 2026 14:39:47 -0800 Subject: [PATCH 043/139] use Int sort coercion to avoid expensive int2bv(indexof) in solver int2bv(indexof(...)) bridges the string solver and BV solver in Z3, making constraints intractable. Instead, keep string op results (indexof, length) in Int sort throughout, and convert BV operands to Int when mixed: - PtrToInt(string_op) keeps Int sort instead of int2bv conversion - Sort coercion block: when Int/BV operands are mixed in Add/Sub/ICmp, convert BV side to Int (fresh named int-X-Y-Z var for direct inputs, bv2int for complex expressions) - get_cmd handles Int operands for unsigned comparisons - Add/Sub/ICmp use TRACK_LABEL_SEQ_ONLY when Int operands are involved, preventing spurious linking constraints on string bytes - Serialize flength as Z3_mk_seq_length (Int sort) with dedicated ICmp handler - Add aux_constraints_ for Int variable bounds, applied in solve_task/export - Minimize str.len(str_var) in optimizer alongside strlen variables - Generate byte-level solutions from int-X-Y-Z model variables Co-Authored-By: Claude Opus 4.6 --- include/parse-z3.h | 5 ++ solvers/z3-ts.cpp | 212 +++++++++++++++++++++++++++++++++++++++------ 2 files changed, 189 insertions(+), 28 deletions(-) diff --git a/include/parse-z3.h b/include/parse-z3.h index 31d24c21..1e4cc897 100644 --- a/include/parse-z3.h +++ b/include/parse-z3.h @@ -36,6 +36,11 @@ class Z3AstParser : public ASTParser { const char* input_name_format; const char* atoi_name_format; const char* strlen_name_format; + const char* str_name_format; + const char* int_name_format; + + // Auxiliary constraints generated during serialization (e.g., Int variable bounds) + std::vector aux_constraints_; // String range entry with cached str- expr for linking constraints struct string_range_t { diff --git a/solvers/z3-ts.cpp b/solvers/z3-ts.cpp index ee16a7e6..c4e26230 100644 --- a/solvers/z3-ts.cpp +++ b/solvers/z3-ts.cpp @@ -56,6 +56,7 @@ static const std::unordered_map OP_MAP { {__dfsan::fstrcat, "strcat"}, {__dfsan::fprefixof, "prefixof"}, {__dfsan::fsuffixof, "suffixof"}, + {__dfsan::flength, "length"}, }; static std::string get_op_name(uint32_t op) { @@ -142,6 +143,8 @@ Z3AstParser::Z3AstParser(void *base, size_t size, z3::context &context) input_name_format = "input-%u-%u"; atoi_name_format = "atoi-%u-%u-%d-%lu"; // input, offset, base, original_len strlen_name_format = "strlen-%u-%u-%lu-%u"; // input, offset, original_len, null_from_input + str_name_format = "str-%u-%u-%u"; // input, offset, length + int_name_format = "int-%u-%u-%u"; // input, offset, bits } int Z3AstParser::restart(std::vector &inputs, bool copy_input) { @@ -171,6 +174,7 @@ int Z3AstParser::restart(std::vector &inputs, bool copy_input) { is_label_seq_.clear(); is_label_seq_.resize(1); // reserve for CONST_OFFSET + aux_constraints_.clear(); string_info_cache_.clear(); branch_deps_.clear(); branch_deps_.resize(inputs.size()); @@ -218,13 +222,16 @@ z3::expr Z3AstParser::read_concrete(dfsan_label label, uint16_t size) { } static z3::expr get_cmd(z3::expr const &lhs, z3::expr const &rhs, uint32_t predicate) { + // For Int operands, unsigned comparisons reduce to regular Int comparisons + // since Int variables are bounded to [0, 2^bits) by aux_constraints_ + bool is_int = lhs.get_sort().is_int(); switch (predicate) { case __dfsan::bveq: return lhs == rhs; case __dfsan::bvneq: return lhs != rhs; - case __dfsan::bvugt: return z3::ugt(lhs, rhs); - case __dfsan::bvuge: return z3::uge(lhs, rhs); - case __dfsan::bvult: return z3::ult(lhs, rhs); - case __dfsan::bvule: return z3::ule(lhs, rhs); + case __dfsan::bvugt: return is_int ? (lhs > rhs) : z3::ugt(lhs, rhs); + case __dfsan::bvuge: return is_int ? (lhs >= rhs) : z3::uge(lhs, rhs); + case __dfsan::bvult: return is_int ? (lhs < rhs) : z3::ult(lhs, rhs); + case __dfsan::bvule: return is_int ? (lhs <= rhs) : z3::ule(lhs, rhs); case __dfsan::bvsgt: return lhs > rhs; case __dfsan::bvsge: return lhs >= rhs; case __dfsan::bvslt: return lhs < rhs; @@ -448,13 +455,14 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { if (info->l1 >= CONST_OFFSET) { dfsan_label_info *src_info = get_label_info(info->l1); if (src_info->op >= __dfsan::fstr_op_start && src_info->op < __dfsan::fstr_op_end) { - // String op result - the "pointer" is semantically the index - // Convert the Int expression to a bitvector for downstream ops + // String op result (indexof) is Int sort — keep it as Int + // instead of int2bv which creates expensive mixed BV+string theory. + // Downstream Add/Sub/ICmp will detect Int operands and stay in Int domain, + // converting BV operands to fresh Int variables (intbyte-...) as needed. z3::expr idx = get_cached_expr(info->l1, input_deps); - z3::expr bv_idx = z3::int2bv(info->size, idx); tsize_cache_.emplace_back(tsize_cache_[info->l1]); - cache_expr(l, bv_idx); - TRACK_LABEL_BV_ONLY(); + cache_expr(l, idx); // keep Int sort + TRACK_LABEL_SEQ_ONLY(); RECORD_VALUE(value_cache_[info->l1]); continue; } @@ -598,6 +606,16 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { TRACK_LABEL_BV_ONLY(); RECORD_VALUE(info->op2.i); // actual length for value cache continue; + } else if (info->op == __dfsan::flength) { + // length(str_var) -> Int sort + // l1 = content label, l2 = 0, op2 = concrete length + z3::expr str_var = build_string_from_label(info->l1, input_deps); + z3::expr len_expr(context_, Z3_mk_seq_length(context_, str_var)); + tsize_cache_.emplace_back(1); + cache_expr(l, len_expr); // Int sort + TRACK_LABEL_SEQ_ONLY(); + RECORD_VALUE(info->op2.i); + continue; } else if (info->op == __dfsan::fstrchr) { // strchr/memchr: find character in string // l1 = source pointer label (content bytes, fsubstr, or previous strchr for chaining) @@ -1249,6 +1267,54 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { uint16_t l2_op = info->l2 >= CONST_OFFSET ? get_label_info(info->l2)->op : 0; bool l1_is_strfunc = (l1_op >= __dfsan::fstr_op_start && l1_op < __dfsan::fstr_op_end); bool l2_is_strfunc = (l2_op >= __dfsan::fstr_op_start && l2_op < __dfsan::fstr_op_end); + bool l1_is_flength = (l1_op == __dfsan::flength); + bool l2_is_flength = (l2_op == __dfsan::flength); + + if (l1_is_flength || l2_is_flength) { + // Length comparison - produce Int sort comparison + uint16_t predicate = info->op >> 8; + z3::expr len_expr = l1_is_flength + ? get_cached_expr(info->l1, input_deps) + : get_cached_expr(info->l2, input_deps); + // Get the other operand as Int + z3::expr other(context_); + if (l1_is_flength && info->l2 == 0) { + other = context_.int_val((uint64_t)info->op2.i); + } else if (l2_is_flength && info->l1 == 0) { + other = context_.int_val((uint64_t)info->op1.i); + } else { + // Both symbolic - get other operand as Int + dfsan_label other_l = l1_is_flength ? info->l2 : info->l1; + other = get_cached_expr(other_l, input_deps); + if (other.is_bv()) { + other = z3::expr(context_, Z3_mk_bv2int(context_, other, false)); + } + // else already Int (from sort coercion), use as-is + } + // If flength is on the right side, swap the comparison direction + if (l2_is_flength && !l1_is_flength) { + std::swap(len_expr, other); + } + z3::expr cmp_expr(context_); + switch (predicate) { + case __dfsan::bvuge: cmp_expr = len_expr >= other; break; + case __dfsan::bvugt: cmp_expr = len_expr > other; break; + case __dfsan::bvule: cmp_expr = len_expr <= other; break; + case __dfsan::bvult: cmp_expr = len_expr < other; break; + case __dfsan::bveq: cmp_expr = len_expr == other; break; + case __dfsan::bvneq: cmp_expr = len_expr != other; break; + case __dfsan::bvsge: cmp_expr = len_expr >= other; break; + case __dfsan::bvsgt: cmp_expr = len_expr > other; break; + case __dfsan::bvsle: cmp_expr = len_expr <= other; break; + case __dfsan::bvslt: cmp_expr = len_expr < other; break; + default: throw z3::exception("unsupported predicate for flength comparison"); + } + tsize_cache_.emplace_back(tsize_cache_[info->l1] + tsize_cache_[info->l2]); + cache_expr(l, cmp_expr); + TRACK_LABEL_SEQ_ONLY(); + RECORD_VALUE(info->op2.i); + continue; + } if (l1_is_strfunc || l2_is_strfunc) { // String function comparison - convert index to found/not-found @@ -1352,6 +1418,44 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { } else if (info->size == 1) { op2 = context_.bool_val(info->op2.i == 1); } + + // Sort coercion: when one operand is Int (from string ops via PtrToInt) + // and the other is BV, convert the BV side to Int to avoid expensive int2bv. + // Tier 1: direct input bytes get a fresh named Int variable (int-id-offset-bits) + // Tier 2: complex BV expressions use bv2int (still cheaper than int2bv of indexof) + bool op1_is_int = op1.get_sort().is_int(); + bool op2_is_int = op2.get_sort().is_int(); + if (op1_is_int != op2_is_int) { + auto convert_bv_to_int = [&](z3::expr &bv_op, dfsan_label lbl, uint64_t concrete_val) { + if (lbl < CONST_OFFSET) { + // Constant — just use int_val + bv_op = context_.int_val(concrete_val); + } else { + dfsan_label_info *lbl_info = get_label_info(lbl); + if (lbl_info->op == 0) { + // Direct input byte — create named Int variable with bounds + char intname[256]; + snprintf(intname, sizeof(intname), int_name_format, + lbl_info->op2.i, lbl_info->op1.i, lbl_info->size); + z3::symbol sym = context_.str_symbol(intname); + bv_op = context_.constant(sym, context_.int_sort()); + aux_constraints_.push_back(bv_op >= 0); + if (lbl_info->size < 64) { + aux_constraints_.push_back(bv_op < context_.int_val((uint64_t)(1ULL << lbl_info->size))); + } + } else { + // Complex BV expression — use bv2int (unsigned) + bv_op = z3::expr(context_, Z3_mk_bv2int(context_, bv_op, false)); + } + } + }; + if (!op1_is_int && op2_is_int) { + convert_bv_to_int(op1, info->l1, info->op1.i); + } else { + convert_bv_to_int(op2, info->l2, info->op2.i); + } + } + // update tree_size tsize_cache_.emplace_back(tsize_cache_[info->l1] + tsize_cache_[info->l2]); @@ -1395,7 +1499,13 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { } case __dfsan::Add: { cache_expr(l, op1 + op2); - TRACK_LABEL_BV_ONLY(); + if (op1_is_int || op2_is_int) { + // After sort coercion, result is pure Int - no BV variables remain. + // SEQ_ONLY prevents spurious linking of string bytes as used_in_bv. + TRACK_LABEL_SEQ_ONLY(); + } else { + TRACK_LABEL_BV_ONLY(); + } RECORD_VALUE(val1 + val2); break; } @@ -1410,7 +1520,7 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { if (src_info->op >= __dfsan::fstr_op_start && src_info->op < __dfsan::fstr_op_end) { // This is (PtrToInt(string_op)) - base_addr = index - // The expression is just the index (op1 already contains int2bv(idx)) + // The expression is just the index (op1 already contains the idx) cache_expr(l, op1); TRACK_LABEL_SEQ_ONLY(); // The value is just the index, not idx - base_addr @@ -1420,7 +1530,11 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { } } cache_expr(l, op1 - op2); - TRACK_LABEL_BV_ONLY(); + if (op1_is_int || op2_is_int) { + TRACK_LABEL_SEQ_ONLY(); + } else { + TRACK_LABEL_BV_ONLY(); + } RECORD_VALUE(val1 - val2); break; } @@ -1525,7 +1639,13 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { // Cache the expression AFTER updating value_cache to maintain consistency // if an exception is thrown above cache_expr(l, get_cmd(op1, op2, info->op >> 8)); - TRACK_LABEL_PROPAGATE_BOTH(); + if (op1_is_int || op2_is_int) { + // After sort coercion, comparison is pure Int - no BV variables. + // SEQ_ONLY prevents spurious linking of string bytes. + TRACK_LABEL_SEQ_ONLY(); + } else { + TRACK_LABEL_PROPAGATE_BOTH(); + } break; } // concat @@ -1940,6 +2060,10 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut // Use default solver to auto-detect theory (needed for string constraints) z3::solver solver(context_); solver.set("timeout", timeout); + // add auxiliary constraints (e.g., Int variable bounds from sort coercion) + for (const auto &ac : aux_constraints_) { + solver.add(ac); + } // solve the first constraint (optimistic) z3::expr e = task->at(0); solver.add(e); @@ -1977,26 +2101,33 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut ret = nested_sat; // XXX: upgrade to nested_sat? } - // Check if model contains strlen symbols and optimize if needed + // Check if model contains strlen/str symbols and optimize if needed std::vector> strlen_vars; // (var, max_len) + std::vector str_len_minimize; // str.len(str_var) to minimize const uint64_t MAX_STRLEN_EXTEND = 4096; // Reasonable max extension for (unsigned i = 0; i < m.num_consts(); ++i) { z3::func_decl decl = m.get_const_decl(i); - if (decl.name().kind() == Z3_STRING_SYMBOL && - decl.name().str().find("strlen") == 0) { - uint32_t input, offset, null_from_input; - uint64_t orig_len; - if (sscanf(decl.name().str().c_str(), strlen_name_format, - &input, &offset, &orig_len, &null_from_input) == 4) { - z3::expr strlen_var = context_.constant(decl.name(), decl.range()); - uint64_t max_len = orig_len + MAX_STRLEN_EXTEND; - strlen_vars.emplace_back(strlen_var, max_len); + if (decl.name().kind() == Z3_STRING_SYMBOL) { + if (decl.name().str().find("strlen") == 0) { + uint32_t input, offset, null_from_input; + uint64_t orig_len; + if (sscanf(decl.name().str().c_str(), strlen_name_format, + &input, &offset, &orig_len, &null_from_input) == 4) { + z3::expr strlen_var = context_.constant(decl.name(), decl.range()); + uint64_t max_len = orig_len + MAX_STRLEN_EXTEND; + strlen_vars.emplace_back(strlen_var, max_len); + } + } else if (decl.name().str().find("str-") == 0) { + // Minimize string variable lengths to avoid unnecessarily large strings + z3::expr str_var = context_.constant(decl.name(), decl.range()); + z3::expr len_expr(context_, Z3_mk_seq_length(context_, str_var)); + str_len_minimize.push_back(len_expr); } } } - if (!strlen_vars.empty()) { + if (!strlen_vars.empty() || !str_len_minimize.empty()) { // fprintf(stderr, "DEBUG solve_task[%lu]: found %zu strlen variables, optimizing...\n", task_id, strlen_vars.size()); // Step 1: Try optimizer to minimize strlen values (no hard bounds) z3::optimize opt(context_); @@ -2004,6 +2135,9 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut p.set("timeout", timeout); opt.set(p); + for (const auto &ac : aux_constraints_) { + opt.add(ac); + } for (const auto &expr : *task) { opt.add(expr); } @@ -2011,6 +2145,9 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut // fprintf(stderr, "DEBUG solve_task[%lu]: minimizing %s (max=%lu)\n", task_id, sv.first.to_string().c_str(), sv.second); opt.minimize(sv.first); } + for (const auto &sl : str_len_minimize) { + opt.minimize(sl); + } bool use_optimized = false; if (opt.check() == z3::sat) { @@ -2188,7 +2325,7 @@ void Z3ParserSolver::generate_solution(z3::model &m, solution_t &solutions) { uint32_t input; uint32_t offset; uint32_t orig_len; - if (sscanf(name.str().c_str(), "str-%u-%u-%u", &input, &offset, &orig_len) != 3) { + if (sscanf(name.str().c_str(), str_name_format, &input, &offset, &orig_len) != 3) { continue; // Skip malformed string variable } @@ -2224,6 +2361,22 @@ void Z3ParserSolver::generate_solution(z3::model &m, solution_t &solutions) { } } } + } else if (name.str().find("int-") == 0) { + // Int variable from BV-to-Int sort coercion (int-input-offset-bits) + // Maps back to input byte(s) + uint32_t input, offset, bits; + if (sscanf(name.str().c_str(), int_name_format, + &input, &offset, &bits) != 3) { + continue; + } + uint64_t value = e.get_numeral_uint64(); + uint32_t bytes = bits / 8; + if (bytes == 0) bytes = 1; + // Emit byte-level solutions (little-endian) + for (uint32_t i = 0; i < bytes; i++) { + solutions.emplace_back(input, offset + i, (uint8_t)(value & 0xff)); + value >>= 8; + } } else if (name.str().find("strrchr_idx_") == 0 || name.str().find("strchr_idx_") == 0) { // Index variables from strchr/strrchr - skip, they're intermediate @@ -2280,6 +2433,9 @@ int Z3ParserSolver::export_task_smt2(uint64_t task_id, int fd) { try { // Create solver and add all constraints z3::solver solver(context_); + for (const auto &ac : aux_constraints_) { + solver.add(ac); + } for (const auto &expr : *task) { solver.add(expr); } @@ -2319,7 +2475,7 @@ z3::expr Z3AstParser::build_string_from_label(dfsan_label label, input_dep_set_t // Create a single symbolic string variable: str-input-offset-len char name[256]; - snprintf(name, sizeof(name), "str-%u-%u-%u", input, offset, len); + snprintf(name, sizeof(name), str_name_format, input, offset, len); z3::symbol symbol = context_.str_symbol(name); z3::expr str_var = context_.constant(symbol, context_.string_sort()); @@ -2491,7 +2647,7 @@ z3::expr Z3AstParser::build_string_from_label(dfsan_label label, input_dep_set_t // Create single symbolic string variable char name[256]; - snprintf(name, sizeof(name), "str-%u-%u-%u", input_id, start_offset, len); + snprintf(name, sizeof(name), str_name_format, input_id, start_offset, len); z3::symbol symbol = context_.str_symbol(name); z3::expr str_var = context_.constant(symbol, context_.string_sort()); @@ -2555,7 +2711,7 @@ z3::expr Z3AstParser::build_string_from_label(dfsan_label label, input_dep_set_t // Create a single-char symbolic string char name[256]; - snprintf(name, sizeof(name), "str-%u-%u-%u", input, offset, 1); + snprintf(name, sizeof(name), str_name_format, input, offset, 1); z3::symbol symbol = context_.str_symbol(name); z3::expr str_var = context_.constant(symbol, context_.string_sort()); From 963f67df9a890609eddf75890ead561de6685c24 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 6 Mar 2026 14:40:27 -0800 Subject: [PATCH 044/139] add export_task_smt2 python binding for debugging solver constraints Co-Authored-By: Claude Opus 4.6 --- python/symsan-py.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/python/symsan-py.cpp b/python/symsan-py.cpp index e670bb89..5b6877ba 100644 --- a/python/symsan-py.cpp +++ b/python/symsan-py.cpp @@ -517,6 +517,35 @@ static PyObject* SolveTask(PyObject *self, PyObject *args) { return ret; } +static PyObject* ExportTaskSMT2(PyObject *self, PyObject *args) { + if (__z3_parser == nullptr) { + PyErr_SetString(PyExc_RuntimeError, "parser not initialized"); + return NULL; + } + + uint64_t id = 0; + const char *filename = NULL; + if (!PyArg_ParseTuple(args, "Ks", &id, &filename)) { + return NULL; + } + + int fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0644); + if (fd < 0) { + PyErr_SetFromErrnoWithFilename(PyExc_OSError, filename); + return NULL; + } + + int ret = __z3_parser->export_task_smt2(id, fd); + close(fd); + + if (ret != 0) { + PyErr_SetString(PyExc_RuntimeError, "failed to export task as SMT2"); + return NULL; + } + + Py_RETURN_NONE; +} + static PyMethodDef SymSanMethods[] = { {"init", (PyCFunction)SymSanInit, METH_VARARGS | METH_KEYWORDS, "initialize symsan target"}, {"config", (PyCFunction)SymSanConfig, METH_VARARGS | METH_KEYWORDS, "config symsan"}, @@ -531,6 +560,7 @@ static PyMethodDef SymSanMethods[] = { {"add_constraint", AddConstraint, METH_VARARGS, "add a constraint"}, {"record_memcmp", RecordMemcmp, METH_VARARGS, "record a memcmp event"}, {"solve_task", SolveTask, METH_VARARGS, "solve a task"}, + {"export_task_smt2", ExportTaskSMT2, METH_VARARGS, "export a task as SMT-LIB v2 to a file"}, {NULL, NULL, 0, NULL} /* Sentinel */ }; From 1d5c77521ff3ef183a77f662ddce0e00b3ed5fba Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 6 Mar 2026 16:45:13 -0800 Subject: [PATCH 045/139] add minimize hints for malloc-family allocation sizes in solver When allocation size arguments are symbolic, emit minimize_type pipe messages so the solver can use z3::optimize to prefer small allocation sizes. This prevents the solver from generating unnecessarily large values (e.g., 8194) when input bytes control malloc sizes. - Add minimize_type to pipe_msg_type enum - Runtime: __taint_minimize_label weak stub and __taint_check_malloc_size hint - Backend: strong __taint_minimize_label sends minimize_type pipe message - Solver: record_minimize() collects hints with input deps; solve_task() runs z3::optimize only when task inputs overlap with minimize hints - TaintPass: instrument nosanitize __dfsw_malloc calls (from UCSanPass) to emit minimize hints using dfsan shadow of size arguments - Driver/Python: handle minimize_type messages Co-Authored-By: Claude Opus 4.6 --- backend/fastgen.cpp | 25 ++++++++++++++ driver/fgtest.cpp | 3 ++ include/parse-z3.h | 6 ++++ include/parse.h | 5 +++ instrumentation/TaintPass.cpp | 59 ++++++++++++++++++++++++++++++++++ python/symsan-py.cpp | 21 ++++++++++++ runtime/dfsan/dfsan.cpp | 1 + runtime/dfsan/dfsan.h | 1 + runtime/dfsan/dfsan_custom.cpp | 15 ++++++--- solvers/z3-ts.cpp | 56 ++++++++++++++++++++++++++------ 10 files changed, 179 insertions(+), 13 deletions(-) diff --git a/backend/fastgen.cpp b/backend/fastgen.cpp index 5716b5a6..abf56193 100644 --- a/backend/fastgen.cpp +++ b/backend/fastgen.cpp @@ -307,6 +307,31 @@ __taint_add_constraint(dfsan_label label, uint8_t result) { return; } +extern "C" SANITIZER_INTERFACE_ATTRIBUTE void +__taint_minimize_label(dfsan_label label) { + if (label == 0) + return; + + AOUT("minimize label: %d\n", label); + + if (__pipe_fd < 0) + return; + + pipe_msg msg = { + .msg_type = minimize_type, + .flags = 0, + .instance_id = __instance_id, + .addr = 0, + .context = __taint_trace_callstack, + .label = label, + .result = 0 + }; + + if (internal_write(__pipe_fd, &msg, sizeof(msg)) < 0) { + Die(); + } +} + extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __taint_trace_memcmp(dfsan_label label) { if (label == 0) diff --git a/driver/fgtest.cpp b/driver/fgtest.cpp index b3966a52..510f5a15 100644 --- a/driver/fgtest.cpp +++ b/driver/fgtest.cpp @@ -347,6 +347,9 @@ int main(int argc, char* const argv[]) { msg.label, msg.result, (void*)msg.addr); } break; + case minimize_type: + __z3_parser->record_minimize(msg.label); + break; default: break; } diff --git a/include/parse-z3.h b/include/parse-z3.h index 1e4cc897..76b52862 100644 --- a/include/parse-z3.h +++ b/include/parse-z3.h @@ -30,6 +30,7 @@ class Z3AstParser : public ASTParser { std::vector &tasks) override; int add_constraints(dfsan_label label, uint64_t result) override; + int record_minimize(dfsan_label label) override; protected: z3::context &context_; @@ -42,6 +43,11 @@ class Z3AstParser : public ASTParser { // Auxiliary constraints generated during serialization (e.g., Int variable bounds) std::vector aux_constraints_; + // Expressions to minimize during solving (e.g., malloc sizes) + // Each entry: (expr to minimize, set of input offsets it depends on) + using minimize_hint_t = std::pair>; + std::vector minimize_hints_; + // String range entry with cached str- expr for linking constraints struct string_range_t { uint32_t start; diff --git a/include/parse.h b/include/parse.h index 8ef16c21..d9c46fe4 100644 --- a/include/parse.h +++ b/include/parse.h @@ -74,6 +74,11 @@ class ASTParser { /// @return 0 on success, -1 on failure virtual int add_constraints(dfsan_label label, uint64_t result) = 0; + /// @brief Record a label to minimize during solving (e.g., malloc size) + /// @param label symbolic label to minimize + /// @return 0 on success, -1 on failure + virtual int record_minimize(dfsan_label label) { (void)label; return 0; } + virtual int record_memcmp(dfsan_label label, uint8_t* buf, size_t size) { auto content = std::make_unique(size); memcpy(content.get(), buf, size); diff --git a/instrumentation/TaintPass.cpp b/instrumentation/TaintPass.cpp index 79b5e1de..d5a760e8 100644 --- a/instrumentation/TaintPass.cpp +++ b/instrumentation/TaintPass.cpp @@ -413,6 +413,7 @@ class Taint { FunctionType *TaintSolveSizeFnTy; FunctionType *TaintTraceGlobalFnTy; FunctionType *TaintDebugFnTy; + FunctionType *TaintMinimizeLabelFnTy; FunctionCallee TaintUnionFn; FunctionCallee TaintUnionLoadFn; FunctionCallee TaintUnionStoreFn; @@ -436,6 +437,7 @@ class Taint { FunctionCallee TaintSolveSizeFn; FunctionCallee TaintTraceGlobalFn; FunctionCallee TaintDebugFn; + FunctionCallee TaintMinimizeLabelFn; SmallPtrSet TaintRuntimeFunctions; Constant *CallStack; MDNode *ColdCallWeights; @@ -1026,6 +1028,9 @@ bool Taint::initializeModule(Module &M) { {PrimitiveShadowTy, PrimitiveShadowTy, PrimitiveShadowTy, PrimitiveShadowTy, PrimitiveShadowTy}, false); + TaintMinimizeLabelFnTy = FunctionType::get( + Type::getVoidTy(*Ctx), { PrimitiveShadowTy }, false); + ColdCallWeights = MDBuilder(*Ctx).createBranchWeights(1, 1000); return true; } @@ -1225,6 +1230,13 @@ void Taint::initializeRuntimeFunctions(Module &M) { TaintDebugFn = Mod->getOrInsertFunction("__taint_debug", TaintDebugFnTy); } + { + AttributeList AL; + AL = AL.addFnAttribute(M.getContext(), Attribute::NoUnwind); + AL = AL.addParamAttribute(M.getContext(), 0, Attribute::ZExt); + TaintMinimizeLabelFn = + Mod->getOrInsertFunction("__taint_minimize_label", TaintMinimizeLabelFnTy, AL); + } TaintRuntimeFunctions.insert( TaintUnionFn.getCallee()->stripPointerCasts()); @@ -1244,6 +1256,8 @@ void Taint::initializeRuntimeFunctions(Module &M) { TaintVarargWrapperFn.getCallee()->stripPointerCasts()); TaintRuntimeFunctions.insert( TaintDebugFn.getCallee()->stripPointerCasts()); + TaintRuntimeFunctions.insert( + TaintMinimizeLabelFn.getCallee()->stripPointerCasts()); } // Initializes event callback functions and declare them in the module @@ -1632,6 +1646,51 @@ bool Taint::runImpl(Module &M) { // TaintVisitor may delete Inst, so keep track of whether it was a // terminator. bool IsTerminator = Inst->isTerminator(); + // Emit minimize hints for nosanitize alloc calls (from UCSanPass) + if (ClWithUCSan && Inst->getMetadata("nosanitize")) { + if (auto *CI = dyn_cast(Inst)) { + if (Function *Callee = CI->getCalledFunction()) { + StringRef FName = Callee->getName(); + if (FName.startswith("__dfsw_")) { + StringRef BaseName = FName.drop_front(7); // skip "__dfsw_" + // Map: function name -> list of arg indices that are allocation sizes + // malloc(size)=0, calloc(nmemb,size)=0,1, realloc(ptr,size)=1, + // reallocarray(ptr,nmemb,size)=1,2, aligned_alloc(align,size)=1, + // memalign(align,size)=1, valloc(size)=0, pvalloc(size)=0, + // posix_memalign(memptr,align,size)=2 + SmallVector SizeArgIndices; + if (BaseName == "malloc" || BaseName == "__libc_malloc" || + BaseName == "valloc" || BaseName == "__libc_valloc" || + BaseName == "pvalloc" || BaseName == "__libc_pvalloc" || + BaseName == "kmalloc_large") { + SizeArgIndices.push_back(0); + } else if (BaseName == "calloc" || BaseName == "__libc_calloc") { + SizeArgIndices.push_back(0); + SizeArgIndices.push_back(1); + } else if (BaseName == "realloc" || BaseName == "__libc_realloc" || + BaseName == "aligned_alloc" || + BaseName == "memalign" || BaseName == "__libc_memalign" || + BaseName == "kmalloc" || BaseName == "__kmalloc") { + SizeArgIndices.push_back(1); + } else if (BaseName == "reallocarray" || BaseName == "__libc_reallocarray") { + SizeArgIndices.push_back(1); + SizeArgIndices.push_back(2); + } else if (BaseName == "posix_memalign") { + SizeArgIndices.push_back(2); + } + if (!SizeArgIndices.empty()) { + IRBuilder<> IRB(CI); + for (unsigned Idx : SizeArgIndices) { + Value *Shadow = TF.getShadow(CI->getArgOperand(Idx)); + if (!TF.TT.isZeroShadow(Shadow)) { + IRB.CreateCall(TF.TT.TaintMinimizeLabelFn, {Shadow}); + } + } + } + } + } + } + } if (!TF.SkipInsts.count(Inst) && !Inst->getMetadata("nosanitize")) TaintVisitor(TF).visit(Inst); if (IsTerminator) diff --git a/python/symsan-py.cpp b/python/symsan-py.cpp index 5b6877ba..559443c3 100644 --- a/python/symsan-py.cpp +++ b/python/symsan-py.cpp @@ -467,6 +467,26 @@ static PyObject* RecordMemcmp(PyObject *self, PyObject *args) { Py_RETURN_NONE; } +static PyObject* RecordMinimize(PyObject *self, PyObject *args) { + if (__z3_parser == nullptr) { + PyErr_SetString(PyExc_RuntimeError, "parser not initialized"); + return NULL; + } + + dfsan_label label = 0; + + if (!PyArg_ParseTuple(args, "I", &label)) { + return NULL; + } + + if (__z3_parser->record_minimize(label) != 0) { + PyErr_SetString(PyExc_RuntimeError, "failed to record minimize hint"); + return NULL; + } + + Py_RETURN_NONE; +} + static PyObject* SolveTask(PyObject *self, PyObject *args) { if (__z3_parser == nullptr) { PyErr_SetString(PyExc_RuntimeError, "parser not initialized"); @@ -559,6 +579,7 @@ static PyMethodDef SymSanMethods[] = { {"parse_gep", ParseGEP, METH_VARARGS, "parse trace_gep event into solving tasks"}, {"add_constraint", AddConstraint, METH_VARARGS, "add a constraint"}, {"record_memcmp", RecordMemcmp, METH_VARARGS, "record a memcmp event"}, + {"record_minimize", RecordMinimize, METH_VARARGS, "record a label to minimize during solving (e.g., malloc size)"}, {"solve_task", SolveTask, METH_VARARGS, "solve a task"}, {"export_task_smt2", ExportTaskSMT2, METH_VARARGS, "export a task as SMT-LIB v2 to a file"}, {NULL, NULL, 0, NULL} /* Sentinel */ diff --git a/runtime/dfsan/dfsan.cpp b/runtime/dfsan/dfsan.cpp index bb70fe66..57b0ae45 100644 --- a/runtime/dfsan/dfsan.cpp +++ b/runtime/dfsan/dfsan.cpp @@ -1890,6 +1890,7 @@ SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_offset, dfsan_label, int64_t, SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_memcmp, dfsan_label) {} SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_distance, uint64_t, uint64_t) {} SANITIZER_INTERFACE_WEAK_DEF(void, __taint_add_constraint, dfsan_label, uint8_t) {} +SANITIZER_INTERFACE_WEAK_DEF(void, __taint_minimize_label, dfsan_label) {} SANITIZER_WEAK_ATTRIBUTE THREADLOCAL uint32_t __taint_trace_callstack; } // extern "C" diff --git a/runtime/dfsan/dfsan.h b/runtime/dfsan/dfsan.h index c2b9cd82..d4ea2d2d 100644 --- a/runtime/dfsan/dfsan.h +++ b/runtime/dfsan/dfsan.h @@ -281,6 +281,7 @@ enum pipe_msg_type { bb_type, event_type, gv_type, + minimize_type, }; static const uint8_t TrueBranchLoopLatch = 0x8; diff --git a/runtime/dfsan/dfsan_custom.cpp b/runtime/dfsan/dfsan_custom.cpp index 208168ab..b9ef2444 100644 --- a/runtime/dfsan/dfsan_custom.cpp +++ b/runtime/dfsan/dfsan_custom.cpp @@ -206,6 +206,9 @@ __taint_trace_offset(dfsan_label offset_label, int64_t offset, unsigned size); extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __taint_add_constraint(dfsan_label label, uint8_t result); +extern "C" SANITIZER_INTERFACE_ATTRIBUTE void +__taint_minimize_label(dfsan_label label); + extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __taint_trace_memcmp(dfsan_label label); @@ -2929,11 +2932,15 @@ char *__dfsw_fgets_unlocked(char *s, int size, FILE *stream, dfsan_label s_label } static inline void __taint_check_malloc_size(size_t size, dfsan_label size_label) { - if (size_label && flags().solve_ub) { + if (size_label) { AOUT("*alloc size: %lu = %d\n", size, size_label); - // -fsanitize=unsigned-integer-overflow - dfsan_label os = dfsan_union(0, size_label, (bveq << 8) | ICmp, 64, 0, size); - __taint_trace_cond(os, 0, UndefinedCheck, ub_integer_overflow); + // hint solver to minimize allocation size + __taint_minimize_label(size_label); + if (flags().solve_ub) { + // -fsanitize=unsigned-integer-overflow + dfsan_label os = dfsan_union(0, size_label, (bveq << 8) | ICmp, 64, 0, size); + __taint_trace_cond(os, 0, UndefinedCheck, ub_integer_overflow); + } } } diff --git a/solvers/z3-ts.cpp b/solvers/z3-ts.cpp index c4e26230..4146591b 100644 --- a/solvers/z3-ts.cpp +++ b/solvers/z3-ts.cpp @@ -175,6 +175,7 @@ int Z3AstParser::restart(std::vector &inputs, bool copy_input) { is_label_seq_.resize(1); // reserve for CONST_OFFSET aux_constraints_.clear(); + minimize_hints_.clear(); string_info_cache_.clear(); branch_deps_.clear(); branch_deps_.resize(inputs.size()); @@ -1931,6 +1932,27 @@ int Z3AstParser::add_constraints(dfsan_label label, uint64_t result) { return 0; } +int Z3AstParser::record_minimize(dfsan_label label) { + if (label < CONST_OFFSET || label == __dfsan::kInitializingLabel || label >= size_) { + return -1; + } + + try { + input_dep_set_t inputs; + z3::expr expr = serialize(label, inputs); + if (expr.is_bv() && !inputs.empty()) { + minimize_hints_.emplace_back(expr, inputs); + } + } catch (z3::exception e) { + fprintf(stderr, "WARNING: z3 exception in record_minimize: %s\n", e.msg()); + return -1; + } catch (...) { + return -1; + } + + return 0; +} + void Z3AstParser::mark_expr_type(dfsan_label label, input_dep_set_t &inputs) { bool is_bv = is_label_bv_.at(label); bool is_seq = is_label_seq_.at(label); @@ -2106,6 +2128,9 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut std::vector str_len_minimize; // str.len(str_var) to minimize const uint64_t MAX_STRLEN_EXTEND = 4096; // Reasonable max extension + // Collect input offsets from the model for minimize hint matching + std::unordered_set model_inputs; + for (unsigned i = 0; i < m.num_consts(); ++i) { z3::func_decl decl = m.get_const_decl(i); if (decl.name().kind() == Z3_STRING_SYMBOL) { @@ -2123,13 +2148,28 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut z3::expr str_var = context_.constant(decl.name(), decl.range()); z3::expr len_expr(context_, Z3_mk_seq_length(context_, str_var)); str_len_minimize.push_back(len_expr); + } else if (decl.name().str().find("input") == 0) { + uint32_t input, offset; + if (sscanf(decl.name().str().c_str(), input_name_format, &input, &offset) == 2) { + model_inputs.emplace(input, offset); + } } } } - if (!strlen_vars.empty() || !str_len_minimize.empty()) { - // fprintf(stderr, "DEBUG solve_task[%lu]: found %zu strlen variables, optimizing...\n", task_id, strlen_vars.size()); - // Step 1: Try optimizer to minimize strlen values (no hard bounds) + // Find matching minimize hints based on input dep overlap + std::vector alloc_minimize; + for (const auto &hint : minimize_hints_) { + for (const auto &dep : hint.second) { + if (model_inputs.count(dep)) { + alloc_minimize.push_back(hint.first); + break; + } + } + } + + if (!strlen_vars.empty() || !str_len_minimize.empty() || !alloc_minimize.empty()) { + // Try optimizer to minimize values (no hard bounds) z3::optimize opt(context_); z3::params p(context_); p.set("timeout", timeout); @@ -2142,17 +2182,18 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut opt.add(expr); } for (const auto &sv : strlen_vars) { - // fprintf(stderr, "DEBUG solve_task[%lu]: minimizing %s (max=%lu)\n", task_id, sv.first.to_string().c_str(), sv.second); opt.minimize(sv.first); } for (const auto &sl : str_len_minimize) { opt.minimize(sl); } + for (const auto &am : alloc_minimize) { + opt.minimize(am); + } bool use_optimized = false; if (opt.check() == z3::sat) { z3::model opt_model = opt.get_model(); - // fprintf(stderr, "DEBUG solve_task[%lu]: optimized SAT model:\n%s\n", task_id, opt_model.to_string().c_str()); // Check if all strlen values are within bounds bool all_within_bounds = true; for (const auto &sv : strlen_vars) { @@ -2166,23 +2207,20 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut if (all_within_bounds) { m = opt_model; use_optimized = true; - // fprintf(stderr, "DEBUG solve_task[%lu]: using optimized model (all within bounds)\n", task_id); } // else: optimized model exceeds bounds, fall back to bounded solver } // Step 2: If optimization failed or exceeded bounds, try solver with bound constraints if (!use_optimized) { - // fprintf(stderr, "DEBUG solve_task[%lu]: adding bound constraints and re-checking\n", task_id); solver.push(); for (const auto &sv : strlen_vars) { solver.add(z3::ule(sv.first, context_.bv_val(sv.second, sv.first.get_sort().bv_size()))); } if (solver.check() == z3::sat) { m = solver.get_model(); - // fprintf(stderr, "DEBUG solve_task[%lu]: bounded SAT model:\n%s\n", task_id, m.to_string().c_str()); } else { - // Step 3: Unsolvable within bounds, skip + // Unsolvable within bounds, skip solver.pop(); return ret; } From 882d4cedf0940c579ca81f1122a74d38268de3de Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Sun, 8 Mar 2026 23:44:36 -0700 Subject: [PATCH 046/139] propagate string labels through memcpy/memmove, bound memchr/memrchr/memmem src by n Runtime string label propagation: - Copy string content labels in __taint_copy_shadow, __taint_move_shadow - Copy string content labels in memcpy/memmove wrappers - Add get_label_string_length helper for string label length queries Bounded src for memchr/memrchr/memmem: - When n is symbolic, wrap haystack with fsubstr(src, n) so solver produces indexof(substr(s, 0, n), char) instead of indexof(s, char) - Prevents solver from growing string variable beyond symbolized region - Remove flength+ICmp length constraint emission (superseded by fsubstr bounding) Co-Authored-By: Claude Opus 4.6 --- runtime/dfsan/dfsan.cpp | 10 +++ runtime/dfsan/dfsan_custom.cpp | 107 ++++++++++++++++++++++----------- 2 files changed, 83 insertions(+), 34 deletions(-) diff --git a/runtime/dfsan/dfsan.cpp b/runtime/dfsan/dfsan.cpp index 57b0ae45..b6248159 100644 --- a/runtime/dfsan/dfsan.cpp +++ b/runtime/dfsan/dfsan.cpp @@ -1955,6 +1955,11 @@ void __taint_copy_shadow(void *dst, void *src, uint64_t size) { dfsan_label *dst_shadow = shadow_for(dst); dfsan_label *src_shadow = shadow_for(src); internal_memcpy(dst_shadow, src_shadow, size * sizeof(dfsan_label)); + // Propagate string content label from src to dst + dfsan_label str_label = taint_get_str_content_label(src); + if (str_label != 0) { + taint_set_str_content_label(dst, str_label); + } } // Move SymSan shadow memory from src to dst (handles overlapping regions) @@ -1964,6 +1969,11 @@ void __taint_move_shadow(void *dst, void *src, uint64_t size) { dfsan_label *dst_shadow = shadow_for(dst); dfsan_label *src_shadow = shadow_for(src); internal_memmove(dst_shadow, src_shadow, size * sizeof(dfsan_label)); + // Propagate string content label from src to dst + dfsan_label str_label = taint_get_str_content_label(src); + if (str_label != 0) { + taint_set_str_content_label(dst, str_label); + } } } // extern "C" diff --git a/runtime/dfsan/dfsan_custom.cpp b/runtime/dfsan/dfsan_custom.cpp index b9ef2444..4c2ef483 100644 --- a/runtime/dfsan/dfsan_custom.cpp +++ b/runtime/dfsan/dfsan_custom.cpp @@ -63,6 +63,26 @@ SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE void f(__VA_ARGS__); static off_t current_stdin_offset = 0; +// Get the concrete string length represented by a taint label. +// Returns 0 if the length cannot be determined. +static size_t get_label_string_length(dfsan_label label) { + if (label < CONST_OFFSET) return 0; + dfsan_label_info *info = dfsan_get_label_info(label); + if (!info) return 0; + + if (info->op == __dfsan::Load) { + return info->l2; // number of bytes loaded + } else if (info->op == __dfsan::fsubstr) { + return (size_t)info->op1.i; // concrete substring length + } else if (info->op == __dfsan::fstrcat) { + size_t left = get_label_string_length(info->l1); + size_t right = get_label_string_length(info->l2); + if (left > 0 && right > 0) return left + right; + return 0; + } + return 0; +} + // Unified method to get string label with explicit length // Checks (in order): // 1. Runtime content map (for strncpy/strcat destinations) @@ -805,6 +825,11 @@ void *__dfsw_memcpy(void *dest, const void *src, size_t n, __taint_solve_bounds(src_label, (uint64_t)src, n_label, n, 0, 1, 0, 0); __taint_solve_bounds(dest_label, (uint64_t)dest, n_label, n, 0, 1, 0, 0); } + // Propagate string content label from src to dest + dfsan_label str_label = taint_get_str_content_label(src); + if (str_label != 0) { + taint_set_str_content_label(dest, str_label); + } *ret_label = dest_label; return dfsan_memcpy(dest, src, n); } @@ -819,6 +844,11 @@ void *__dfsw_memmove(void *dest, const void *src, size_t n, __taint_solve_bounds(src_label, (uint64_t)src, n_label, n, 0, 1, 0, 0); __taint_solve_bounds(dest_label, (uint64_t)dest, n_label, n, 0, 1, 0, 0); } + // Propagate string content label from src to dest + dfsan_label str_label = taint_get_str_content_label(src); + if (str_label != 0) { + taint_set_str_content_label(dest, str_label); + } dfsan_label tmp[n]; dfsan_label *sdest = shadow_for(dest); const dfsan_label *ssrc = shadow_for(src); @@ -1787,15 +1817,27 @@ SANITIZER_INTERFACE_ATTRIBUTE void *__dfsw_memchr(void *s, int c, size_t n, dfsan_label src_label = get_str_label_n(s, s_label, n, n_label); if (src_label != 0 || c_label != 0) { + // When n is symbolic, bound the haystack to first n bytes so the solver + // produces indexof(substr(s, 0, n), char) instead of indexof(s, char). + // Skip if get_str_label_n already returned an fsubstr (avoids nesting). + dfsan_label bounded_src = src_label; + if (src_label != 0 && n_label != 0) { + dfsan_label_info *src_info = dfsan_get_label_info(src_label); + if (src_info && !is_content_string_op(src_info->op)) { + bounded_src = dfsan_union(src_label, n_label, __dfsan::fsubstr, + sizeof(void*) * 8, (uint64_t)n, 0); + } + } + // Determine which operand is concrete and set size accordingly uint16_t content_len = (src_label == 0) ? (uint16_t)n : 0; - // l1 = src_label (haystack content) + // l1 = bounded_src (haystack content, bounded by n when symbolic) // l2 = c_label (character to find) // op1 = haystack pointer (for concrete content retrieval) // op2 = character value // size = haystack length if haystack concrete, else 0 - *ret_label = dfsan_union(src_label, c_label, __dfsan::fstrchr, + *ret_label = dfsan_union(bounded_src, c_label, __dfsan::fstrchr, content_len, (uint64_t)s, (uint64_t)(uint8_t)c); @@ -1808,21 +1850,6 @@ SANITIZER_INTERFACE_ATTRIBUTE void *__dfsw_memchr(void *s, int c, size_t n, if (ret) { taint_set_str_indexof_label(ret, *ret_label); } - - // Emit length constraint: length(src) >= n, only when n is symbolic. - // When n is concrete, the buffer size is fixed and cannot diverge. - // When n is symbolic (from input), we must tie string length to n - // so Z3 does not shrink the string while leaving n large. - if (src_label != 0 && n_label != 0) { - dfsan_label len_label = dfsan_union(src_label, 0, __dfsan::flength, - sizeof(size_t) * 8, 0, (uint64_t)n); - if (len_label) { - dfsan_label ge_label = dfsan_union(len_label, n_label, - (__dfsan::bvuge << 8) | __dfsan::ICmp, 1, n, n); - if (ge_label) - __taint_add_constraint(ge_label, 1); - } - } } else { *ret_label = 0; } @@ -1880,15 +1907,29 @@ SANITIZER_INTERFACE_ATTRIBUTE void *__dfsw_memrchr(const void *s, int c, size_t dfsan_label src_label = get_str_label_n(s, s_label, n, n_label); if (src_label != 0 || c_label != 0) { + // When n is symbolic, bound the haystack to first n bytes so the solver + // produces last_indexof(substr(s, 0, n), char) instead of + // last_indexof(s, char). Without this, the solver can grow the string + // variable beyond the actual symbolized region when it increases n. + // Skip if get_str_label_n already returned an fsubstr (avoids nesting). + dfsan_label bounded_src = src_label; + if (src_label != 0 && n_label != 0) { + dfsan_label_info *src_info = dfsan_get_label_info(src_label); + if (src_info && !is_content_string_op(src_info->op)) { + bounded_src = dfsan_union(src_label, n_label, __dfsan::fsubstr, + sizeof(void*) * 8, (uint64_t)n, 0); + } + } + // Determine which operand is concrete and set size accordingly uint16_t content_len = (src_label == 0) ? (uint16_t)n : 0; - // l1 = src_label (haystack content) + // l1 = bounded_src (haystack content, bounded by n when symbolic) // l2 = c_label (character to find) // op1 = haystack pointer (for concrete content retrieval) // op2 = character value // size = haystack length if haystack concrete, else 0 - *ret_label = dfsan_union(src_label, c_label, __dfsan::fstrrchr, + *ret_label = dfsan_union(bounded_src, c_label, __dfsan::fstrrchr, content_len, (uint64_t)s, (uint64_t)(uint8_t)c); @@ -1901,21 +1942,6 @@ SANITIZER_INTERFACE_ATTRIBUTE void *__dfsw_memrchr(const void *s, int c, size_t if (ret) { taint_set_str_indexof_label(ret, *ret_label); } - - // Emit length constraint: length(src) >= n, only when n is symbolic. - // When n is concrete, the buffer size is fixed and cannot diverge. - // When n is symbolic (from input), we must tie string length to n - // so Z3 does not shrink the string while leaving n large. - if (src_label != 0 && n_label != 0) { - dfsan_label len_label = dfsan_union(src_label, 0, __dfsan::flength, - sizeof(size_t) * 8, 0, (uint64_t)n); - if (len_label) { - dfsan_label ge_label = dfsan_union(len_label, n_label, - (__dfsan::bvuge << 8) | __dfsan::ICmp, 1, n, n); - if (ge_label) - __taint_add_constraint(ge_label, 1); - } - } } else { *ret_label = 0; } @@ -2052,6 +2078,19 @@ SANITIZER_INTERFACE_ATTRIBUTE void *__dfsw_memmem(const void *haystack, size_t h dfsan_label src_label = get_str_label_n(haystack, haystack_label, haystacklen, haystacklen_label); + // When haystacklen is symbolic, bound the haystack to first haystacklen bytes + // so the solver produces indexof(substr(haystack, 0, n), needle) instead of + // indexof(haystack, needle). Without this, the solver can grow the string + // variable beyond the actual symbolized region when it increases haystacklen. + // Skip if get_str_label_n already returned an fsubstr (avoids nesting). + if (src_label != 0 && haystacklen_label != 0) { + dfsan_label_info *src_info = dfsan_get_label_info(src_label); + if (src_info && !is_content_string_op(src_info->op)) { + src_label = dfsan_union(src_label, haystacklen_label, __dfsan::fsubstr, + sizeof(void*) * 8, (uint64_t)haystacklen, 0); + } + } + // Use unified get_str_label_n for needle dfsan_label real_needle_label = get_str_label_n(needle, needle_label, needlelen, needlelen_label); From 660fd2cabde8e574bad46facf2abae09d03b5260 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Sun, 8 Mar 2026 23:44:53 -0700 Subject: [PATCH 047/139] =?UTF-8?q?add=20Int=20mirroring=20of=20BV=20neste?= =?UTF-8?q?d=20constraints,=20fsubstr=20BV=E2=86=92Int=20conversion,=20sol?= =?UTF-8?q?ver=20fixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Int mirroring of BV nested constraints: - Track ICmp comparisons in branch dependencies (cmp_info_t, cmp_deps) - Cache int-* variables in int_var_cache_ (populated in convert_bv_to_int, fsubstr) - In add_nested_constraints, add equivalent Int comparisons when both operands have int-* variables, preventing optimizer from violating BV ordering fsubstr handler BV→Int conversion: - When fsubstr length (l2) is a direct input label, reuse named int-X-Y-Z variable instead of expanding bv2int into expensive polynomial - Add bounds and BV linkage as auxiliary constraints PtrToInt offset fix: - Add string starting offset to indexof results for absolute position Solver fixes: - Fix flength ICmp value recording (use eval_icmp instead of raw op2.i) - Fix add_constraints for Int-sorted expressions - Add string_solver=none fallback when nested check times out - Add int-* variable minimization in optimizer - Add safety check for unreasonable string extension in generate_solution - Fix bounded solver fallback (don't early-return on failure) Co-Authored-By: Claude Opus 4.6 --- include/parse-z3.h | 13 +++++ solvers/z3-ts.cpp | 132 ++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 133 insertions(+), 12 deletions(-) diff --git a/include/parse-z3.h b/include/parse-z3.h index 76b52862..eb9dfe17 100644 --- a/include/parse-z3.h +++ b/include/parse-z3.h @@ -121,16 +121,29 @@ class Z3AstParser : public ASTParser { } }; using expr_set_t = std::unordered_set; + // Comparison info stored for Int mirroring of BV nested constraints + struct cmp_info_t { + dfsan_label l1; // left operand label + dfsan_label l2; // right operand label + uint16_t predicate; // comparison predicate (e.g., bvsle) + bool result; // concrete result (true/false) + }; + struct branch_dependency_t { expr_set_t expr_deps; input_dep_set_t input_deps; bool used_in_bv = false; // any saved constraint involves bitvec bool used_in_seq = false; // any saved constraint involves string/seq z3::expr input_expr; // cached input-X-Y expr (z3::expr handles refcount) + std::vector cmp_deps; // ICmp constraints for Int mirroring // Only constructor: must have input_expr (linear scan guarantees this) branch_dependency_t(z3::expr e) : input_expr(e) {} }; + + // Cache of int-* variables: label -> Int z3 expr + // Populated when int-* variables are created in convert_bv_to_int or fsubstr handler + std::unordered_map int_var_cache_; using branch_dep_t = std::unique_ptr; using offset_dep_t = std::vector; std::vector branch_deps_; diff --git a/solvers/z3-ts.cpp b/solvers/z3-ts.cpp index 4146591b..35fb98ea 100644 --- a/solvers/z3-ts.cpp +++ b/solvers/z3-ts.cpp @@ -177,6 +177,7 @@ int Z3AstParser::restart(std::vector &inputs, bool copy_input) { aux_constraints_.clear(); minimize_hints_.clear(); string_info_cache_.clear(); + int_var_cache_.clear(); branch_deps_.clear(); branch_deps_.resize(inputs.size()); for (size_t i = 0; i < inputs.size(); i++) { @@ -461,6 +462,15 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { // Downstream Add/Sub/ICmp will detect Int operands and stay in Int domain, // converting BV operands to fresh Int variables (intbyte-...) as needed. z3::expr idx = get_cached_expr(info->l1, input_deps); + // String index ops (indexof, last_indexof) return position relative + // to the string variable. But PtrToInt should give the absolute + // position from the start of the input buffer. Add the string's + // starting offset to convert relative -> absolute. + dfsan_label content_label = src_info->l1; // haystack content label + auto si_it = string_info_cache_.find(content_label); + if (si_it != string_info_cache_.end() && si_it->second.offset > 0) { + idx = idx + context_.int_val(si_it->second.offset); + } tsize_cache_.emplace_back(tsize_cache_[info->l1]); cache_expr(l, idx); // keep Int sort TRACK_LABEL_SEQ_ONLY(); @@ -983,6 +993,28 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { if (info->l2 >= CONST_OFFSET) { // l2 is the string op label - its cached value is the index/length len_expr = get_cached_expr(info->l2, input_deps); + // seq_extract needs Int sort; convert BV when n comes from input bytes + if (len_expr.get_sort().is_bv()) { + // For direct input labels, reuse the named Int variable (int-id-off-bits) + // which sort coercion may have already constrained. Using the same name + // avoids expanding bv2int into an expensive polynomial in str.substr. + dfsan_label_info *l2_info = get_label_info(info->l2); + if (l2_info->op == 0) { + char intname[256]; + snprintf(intname, sizeof(intname), int_name_format, + l2_info->op2.i, l2_info->op1.i, l2_info->size); + z3::symbol sym = context_.str_symbol(intname); + len_expr = context_.constant(sym, context_.int_sort()); + // Ensure bounds and BV linkage exist (idempotent if sort coercion already added them) + aux_constraints_.push_back(len_expr >= 0); + aux_constraints_.push_back(len_expr == z3::expr(context_, + Z3_mk_bv2int(context_, get_cached_expr(info->l2, input_deps), false))); + // Cache int-* variable for Int mirroring of BV comparisons + int_var_cache_.emplace(info->l2, len_expr); + } else { + len_expr = z3::expr(context_, Z3_mk_bv2int(context_, len_expr, false)); + } + } } substr_expr = z3::expr(context_, Z3_mk_seq_extract(context_, full_str, @@ -1292,10 +1324,6 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { } // else already Int (from sort coercion), use as-is } - // If flength is on the right side, swap the comparison direction - if (l2_is_flength && !l1_is_flength) { - std::swap(len_expr, other); - } z3::expr cmp_expr(context_); switch (predicate) { case __dfsan::bvuge: cmp_expr = len_expr >= other; break; @@ -1313,7 +1341,11 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { tsize_cache_.emplace_back(tsize_cache_[info->l1] + tsize_cache_[info->l2]); cache_expr(l, cmp_expr); TRACK_LABEL_SEQ_ONLY(); - RECORD_VALUE(info->op2.i); + { + uint64_t cmp_result = eval_icmp(predicate, + (uint64_t)info->op1.i, (uint64_t)info->op2.i, 64) ? 1 : 0; + RECORD_VALUE(cmp_result); + } continue; } @@ -1444,6 +1476,8 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { if (lbl_info->size < 64) { aux_constraints_.push_back(bv_op < context_.int_val((uint64_t)(1ULL << lbl_info->size))); } + // Cache int-* variable for Int mirroring of BV comparisons + int_var_cache_.emplace(lbl, bv_op); } else { // Complex BV expression — use bv2int (unsigned) bv_op = z3::expr(context_, Z3_mk_bv2int(context_, bv_op, false)); @@ -1907,6 +1941,7 @@ int Z3AstParser::add_constraints(dfsan_label label, uint64_t result) { z3::expr r = context_.bv_val(result, size); // add constraint if (expr.is_bool()) r = context_.bool_val(result); + else if (expr.is_int()) r = context_.int_val(result); #if FILTER_WRONG_AST // double check if label is valid @@ -1919,6 +1954,22 @@ int Z3AstParser::add_constraints(dfsan_label label, uint64_t result) { #endif save_constraint(expr == r, inputs); + + // Track ICmp comparisons for Int mirroring of BV nested constraints. + // When both operands later get int-* variables (from sort coercion or fsubstr), + // add_nested_constraints will add the equivalent Int comparison to prevent + // the optimizer from minimizing int-* variables in ways that violate BV ordering. + dfsan_label_info *cmp_info = get_label_info(label); + if ((cmp_info->op & 0xff) == __dfsan::ICmp) { + cmp_info_t cmp{cmp_info->l1, cmp_info->l2, + (uint16_t)(cmp_info->op >> 8), (bool)result}; + for (auto &off : inputs) { + auto c = get_branch_dep(off); + if (c != nullptr) { + c->cmp_deps.push_back(cmp); + } + } + } } catch (z3::exception e) { return -1; } catch (std::exception& e) { @@ -2028,6 +2079,31 @@ size_t Z3AstParser::add_nested_constraints(input_dep_set_t &inputs, z3_task_t *t add_string_bitvec_link(off, task); } + // Add Int mirrors of BV comparisons when both operands have int-* variables. + // This prevents the optimizer from minimizing int-* variables in ways that + // violate BV ordering constraints (e.g., bvsle alloc n → int_alloc <= int_n). + if (!int_var_cache_.empty()) { + std::set> processed_cmps; + for (auto &off : inputs) { + auto deps = get_branch_dep(off); + if (deps == nullptr) continue; + for (auto &cmp : deps->cmp_deps) { + auto key = std::make_pair(cmp.l1, cmp.l2); + if (!processed_cmps.insert(key).second) continue; + auto it1 = int_var_cache_.find(cmp.l1); + auto it2 = int_var_cache_.find(cmp.l2); + if (it1 != int_var_cache_.end() && it2 != int_var_cache_.end()) { + // Both operands have int-* variables — add Int comparison + z3::expr int_cmp = get_cmd(it1->second, it2->second, cmp.predicate); + z3::expr int_constraint = cmp.result ? int_cmp : !int_cmp; + task->push_back(int_constraint); + // fprintf(stderr, "DEBUG: adding Int mirror: %s\n", + // int_constraint.to_string().c_str()); + } + } + } + } + return added.size(); } @@ -2094,6 +2170,7 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut // fprintf(stderr, "DEBUG solve_task[%lu]: result = %d (sat=1, unsat=0, unknown=2)\n", task_id, (int)res); if (res == z3::sat) { ret = opt_sat; + bool str_abstract = false; // true if model from string_solver=none // optimistic sat, save a model z3::model m = solver.get_model(); // fprintf(stderr, "DEBUG solve_task[%lu]: optimistic SAT model:\n%s\n", task_id, m.to_string().c_str()); @@ -2117,13 +2194,38 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut task_id, solver.to_smt2().c_str()); ret = opt_sat_nested_unsat; } else { - ret = opt_sat_nested_timeout; + // Nested check timed out with seq solver. Retry with + // string_solver=none which treats string ops (e.g., last_indexof) + // abstractly, avoiding expensive seq axiom instantiation while + // still solving BV/Int arithmetic correctly. + z3::set_param("smt.string_solver", "none"); + z3::solver fallback(context_); + fallback.set("timeout", timeout); + for (const auto &ac : aux_constraints_) { + fallback.add(ac); + } + for (const auto &expr : *task) { + fallback.add(expr); + } + z3::check_result fb_res = fallback.check(); + z3::set_param("smt.string_solver", "seq"); + if (fb_res == z3::sat) { + ret = nested_sat; + m = fallback.get_model(); + str_abstract = true; + } else { + ret = opt_sat_nested_timeout; + } } + // pop nested constraints so solver is clean for optimization below + solver.pop(); } else { ret = nested_sat; // XXX: upgrade to nested_sat? } // Check if model contains strlen/str symbols and optimize if needed + // Skip string optimization when model came from string_solver=none + // (string variables are abstract and can't be meaningfully minimized) std::vector> strlen_vars; // (var, max_len) std::vector str_len_minimize; // str.len(str_var) to minimize const uint64_t MAX_STRLEN_EXTEND = 4096; // Reasonable max extension @@ -2143,11 +2245,16 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut uint64_t max_len = orig_len + MAX_STRLEN_EXTEND; strlen_vars.emplace_back(strlen_var, max_len); } - } else if (decl.name().str().find("str-") == 0) { + } else if (!str_abstract && decl.name().str().find("str-") == 0) { // Minimize string variable lengths to avoid unnecessarily large strings z3::expr str_var = context_.constant(decl.name(), decl.range()); z3::expr len_expr(context_, Z3_mk_seq_length(context_, str_var)); str_len_minimize.push_back(len_expr); + } else if (decl.name().str().find("int-") == 0) { + // Int variables from sort coercion (e.g., int-0-0-64) — minimize + // to keep close to original value and avoid changing allocation sizes + z3::expr int_var = context_.constant(decl.name(), decl.range()); + str_len_minimize.push_back(int_var); } else if (decl.name().str().find("input") == 0) { uint32_t input, offset; if (sscanf(decl.name().str().c_str(), input_name_format, &input, &offset) == 2) { @@ -2212,18 +2319,16 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut } // Step 2: If optimization failed or exceeded bounds, try solver with bound constraints - if (!use_optimized) { + if (!use_optimized && !strlen_vars.empty()) { + // Only try bounded solver if there are strlen vars to bound solver.push(); for (const auto &sv : strlen_vars) { solver.add(z3::ule(sv.first, context_.bv_val(sv.second, sv.first.get_sort().bv_size()))); } if (solver.check() == z3::sat) { m = solver.get_model(); - } else { - // Unsolvable within bounds, skip - solver.pop(); - return ret; } + // else: bounded check failed, fall through with original model m solver.pop(); } } @@ -2341,6 +2446,9 @@ void Z3ParserSolver::generate_solution(z3::model &m, solution_t &solutions) { if (target_len > orig_len) { // Extending: insert bytes to make the string longer uint64_t extend_by = target_len - orig_len; + if (extend_by > std::vector().max_size()) { + continue; // skip unreasonable extension + } std::vector fill_bytes(extend_by, 'A'); solutions.emplace_back(input, offset + (uint32_t)orig_len, std::move(fill_bytes)); // For plain strings (null_from_input=1), add null terminator at new end From d6f67cbb1e4a57e20714b6ac6dbcf809a85c9e0a Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Mon, 9 Mar 2026 17:26:51 -0700 Subject: [PATCH 048/139] fix nosanitize accidentally marking GEP base pointer load When visitGetElementPtrInst creates a bitcast of the GEP's pointer operand to i8*, CreateBitCast returns the original value if it's already i8*. This caused markNosanitize to mark the original load instruction, making TaintPass skip it and lose the Alloca shadow label for pointer arithmetic on malloc'd buffers. Co-Authored-By: Claude Opus 4.6 --- instrumentation/UCSanPass.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index d90d2dbb..afd06b5d 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -1870,7 +1870,7 @@ void UCSanVisitor::visitGetElementPtrInst(GetElementPtrInst &GEPI) { Value *Size = ConstantInt::get(UF.UC.Int64Ty, DL.getTypeAllocSize(GEPI.getSourceElementType())); Value *Addr = IRB.CreateBitCast(Ptr, UF.UC.VoidPtrTy); - UF.UC.markNosanitize(Addr); + if (Addr != Ptr) UF.UC.markNosanitize(Addr); Value *Checked = IRB.CreateCall(UF.UC.UCCheckPointerFn, { Addr, UF.getShadow(Ptr), Size, ConstantInt::get(UF.UC.Int1Ty, false) }); UF.UC.markNosanitize(Checked); From 08f0669271529f0556d7ccce72835ed738d6dc72 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Mon, 9 Mar 2026 20:27:42 -0700 Subject: [PATCH 049/139] add string range linking constraints for overlapping substr variables Extract register_string_range() helper that adds containment constraints when a new string variable overlaps with existing ranges (e.g., str-1-1-2 gets linked as substr(str-1-0-3, 1, 2)). Use a (start, end) comparator so ranges with the same start but different lengths coexist in the set. Co-Authored-By: Claude Opus 4.6 --- include/parse-z3.h | 11 ++++++++-- solvers/z3-ts.cpp | 50 +++++++++++++++++++++++++++++++++++----------- 2 files changed, 47 insertions(+), 14 deletions(-) diff --git a/include/parse-z3.h b/include/parse-z3.h index eb9dfe17..9b69865a 100644 --- a/include/parse-z3.h +++ b/include/parse-z3.h @@ -58,12 +58,15 @@ class Z3AstParser : public ASTParser { : start(s), end(e), str_expr(expr) {} }; - // Transparent comparator for O(log n) lookup with just uint32_t + // Transparent comparator: order by (start, end) so ranges with the same + // start but different lengths coexist. Heterogeneous lookup by uint32_t + // still works for upper_bound (compares against start only). struct string_range_cmp { using is_transparent = void; // Enable heterogeneous lookup bool operator()(const string_range_t &a, const string_range_t &b) const { - return a.start < b.start; + if (a.start != b.start) return a.start < b.start; + return a.end < b.end; } bool operator()(const string_range_t &a, uint32_t offset) const { return a.start < offset; @@ -205,6 +208,10 @@ class Z3AstParser : public ASTParser { // Helper for linking bitvec and string constraints on shared offsets void add_string_bitvec_link(offset_t off, z3_task_t *task); + + // Register a string range and add linking constraints for overlapping ranges + void register_string_range(uint32_t input, uint32_t start, uint32_t end, + z3::expr str_var); }; class Z3ParserSolver : public Z3AstParser { diff --git a/solvers/z3-ts.cpp b/solvers/z3-ts.cpp index 35fb98ea..569549d7 100644 --- a/solvers/z3-ts.cpp +++ b/solvers/z3-ts.cpp @@ -2145,6 +2145,38 @@ void Z3AstParser::add_string_bitvec_link(offset_t off, z3_task_t *task) { } } +void Z3AstParser::register_string_range(uint32_t input, uint32_t start, + uint32_t end, z3::expr str_var) { + if (input >= string_ranges_.size()) return; + auto &ranges = string_ranges_[input]; + + auto result = ranges.emplace(start, end, str_var); + if (!result.second) return; // already exists (same start and end) + + // Check all existing ranges for containment relationships and add + // linking constraints so that overlapping string variables stay consistent. + for (auto &existing : ranges) { + if (existing.start == start && existing.end == end) continue; // skip self + + // New range is a subset of existing range + if (start >= existing.start && end <= existing.end) { + uint32_t offset = start - existing.start; + uint32_t len = end - start; + aux_constraints_.push_back(str_var == z3::expr(context_, + Z3_mk_seq_extract(context_, existing.str_expr, + context_.int_val(offset), context_.int_val(len)))); + } + // Existing range is a subset of new range + else if (existing.start >= start && existing.end <= end) { + uint32_t offset = existing.start - start; + uint32_t len = existing.end - existing.start; + aux_constraints_.push_back(existing.str_expr == z3::expr(context_, + Z3_mk_seq_extract(context_, str_var, + context_.int_val(offset), context_.int_val(len)))); + } + } +} + Z3ParserSolver::solving_status Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solutions) { solving_status ret = unknown_error; @@ -2625,10 +2657,8 @@ z3::expr Z3AstParser::build_string_from_label(dfsan_label label, input_dep_set_t z3::symbol symbol = context_.str_symbol(name); z3::expr str_var = context_.constant(symbol, context_.string_sort()); - // Track string range for null-byte post-processing and linking constraints - if (input < string_ranges_.size()) { - string_ranges_[input].emplace(offset, offset + len, str_var); - } + // Track string range and add linking constraints for overlapping ranges + register_string_range(input, offset, offset + len, str_var); // Cache string info for this label string_info_cache_[label] = {input, offset, len}; @@ -2797,10 +2827,8 @@ z3::expr Z3AstParser::build_string_from_label(dfsan_label label, input_dep_set_t z3::symbol symbol = context_.str_symbol(name); z3::expr str_var = context_.constant(symbol, context_.string_sort()); - // Track string range for null-byte post-processing and linking constraints - if (input_id < string_ranges_.size()) { - string_ranges_[input_id].emplace(start_offset, start_offset + len, str_var); - } + // Track string range and add linking constraints for overlapping ranges + register_string_range(input_id, start_offset, start_offset + len, str_var); // Cache string info for this label string_info_cache_[label] = {input_id, start_offset, len}; @@ -2861,10 +2889,8 @@ z3::expr Z3AstParser::build_string_from_label(dfsan_label label, input_dep_set_t z3::symbol symbol = context_.str_symbol(name); z3::expr str_var = context_.constant(symbol, context_.string_sort()); - // Track string range for null-byte post-processing and linking constraints - if (input < string_ranges_.size()) { - string_ranges_[input].emplace(offset, offset + 1, str_var); - } + // Track string range and add linking constraints for overlapping ranges + register_string_range(input, offset, offset + 1, str_var); // Cache string info for this label string_info_cache_[label] = {input, offset, 1}; From ade66c23ed0b8d3fc1538b07aef1bee49b0c4190 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Mon, 9 Mar 2026 20:27:58 -0700 Subject: [PATCH 050/139] read full Alloca object in get_str_label_n for symbolic-length string ops When both pointer (Alloca bounds) and length are symbolic, read the full object and emit fsubstr to create a proper substr relationship. This prevents disconnected string variables (e.g., standalone str-1-1-2 instead of substr(str-1-0-3, 1, 2)). Trims trailing untainted bytes to avoid including null terminators in the string variable. Co-Authored-By: Claude Opus 4.6 --- runtime/dfsan/dfsan_custom.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/runtime/dfsan/dfsan_custom.cpp b/runtime/dfsan/dfsan_custom.cpp index 4c2ef483..a830d9af 100644 --- a/runtime/dfsan/dfsan_custom.cpp +++ b/runtime/dfsan/dfsan_custom.cpp @@ -180,6 +180,37 @@ static inline dfsan_label get_str_label_n(const void *s, dfsan_label s_label, } // 5. Fall back to reading buffer content labels + // When length is symbolic and pointer has Alloca bounds, read the full object + // to create a complete string variable, then substr to the requested length. + // This ensures string theory operations (strchr, memrchr, etc.) see the full + // buffer even when the symbolic length is smaller than the actual object. + if (n_label != 0 && s_label != 0) { + dfsan_label_info *info = dfsan_get_label_info(s_label); + if (info && info->op == __dfsan::Alloca) { + uint64_t lower = info->op1.i; + uint64_t upper = info->op2.i; + uint64_t ptr_offset = (uint64_t)s - lower; + uint64_t remaining = upper - lower - ptr_offset; + AOUT("get_str_label_n: step 5 Alloca bounds lower=%p, upper=%p, " + "remaining=%lu, n=%zu\n", + (void*)lower, (void*)upper, remaining, n); + // Trim trailing untainted bytes (e.g., null terminators) + const dfsan_label *shadow = shadow_for(s); + while (remaining > n && shadow[remaining - 1] == 0) { + remaining--; + } + if (remaining > n) { + dfsan_label full_label = dfsan_read_label(s, remaining); + if (full_label != 0) { + return dfsan_union(full_label, n_label, __dfsan::fsubstr, + sizeof(void*) * 8, (uint64_t)n, 0); + } + } else if (remaining < n) { + AOUT("ERROR: OOB read in get_str_label_n: n=%zu exceeds " + "remaining=%lu bytes in object\n", n, remaining); + } + } + } return dfsan_read_label(s, n); } From e65631bd987ac3b0a0dfc584b05f38710e4a1ac1 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Mon, 9 Mar 2026 20:28:14 -0700 Subject: [PATCH 051/139] bridge malloc Alloca bounds labels from UCSan to SymSan runtime Add __taint_get_ptr_bounds_label to create/update Alloca bounds labels for malloc'd pointers. UCSan's create_alloca_label now calls this to set retval TLS so TaintPass can propagate Alloca shadow through pointer arithmetic (GEPs), enabling get_str_label_n step 5 for heap buffers. Co-Authored-By: Claude Opus 4.6 --- runtime/dfsan/dfsan.cpp | 28 ++++++++++++++++++++++++++++ runtime/dfsan/ucsan.cpp | 12 ++++++++++++ runtime/dfsan/ucsan_custom.cpp | 6 ++++++ 3 files changed, 46 insertions(+) diff --git a/runtime/dfsan/dfsan.cpp b/runtime/dfsan/dfsan.cpp index b6248159..e2ef155d 100644 --- a/runtime/dfsan/dfsan.cpp +++ b/runtime/dfsan/dfsan.cpp @@ -1976,4 +1976,32 @@ void __taint_move_shadow(void *dst, void *src, uint64_t size) { } } +// Get or create an Alloca bounds label for a pointer +// If ptr != NULL, checks shadow_for(&ptr) for existing Alloca to update +// If ptr == NULL or no existing Alloca, creates a new one +// Returns the Alloca label; caller stores it (e.g., via __taint_set_retval_tls) +// Overrides weak stub in ucsan.cpp +SANITIZER_INTERFACE_ATTRIBUTE +dfsan_label __taint_get_ptr_bounds_label(void *ptr, uint64_t lower, uint64_t upper) { + if (!flags().trace_bounds) return 0; + if (ptr != nullptr) { + dfsan_label label = *shadow_for(&ptr); + if (label != 0) { + dfsan_label_info *info = get_label_info(label); + if (info->op == __dfsan::Alloca) { + info->op1.i = lower; + info->op2.i = upper; + AOUT("update ptr bounds %p = %d, lower = %p, upper = %p\n", + ptr, label, (void*)lower, (void*)upper); + return label; + } + } + } + // Allocate new Alloca label + dfsan_label bound = dfsan_union(0, 0, Alloca, sizeof(void*) * 8, lower, upper); + AOUT("new ptr bounds label %d, lower = %p, upper = %p\n", + bound, (void*)lower, (void*)upper); + return bound; +} + } // extern "C" diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index 3d1633c1..6f6d03f2 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -63,6 +63,9 @@ void __taint_set_label(dfsan_label label, void *addr, uint64_t size); extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __taint_copy_shadow(void *dst, void *src, uint64_t size); +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +dfsan_label __taint_get_ptr_bounds_label(void *ptr, uint64_t lower, uint64_t upper); + //===----------------------------------------------------------------------===// // Global State //===----------------------------------------------------------------------===// @@ -1417,4 +1420,13 @@ SANITIZER_INTERFACE_WEAK_DEF(void, __taint_copy_shadow, void*, void*, uint64_t) // @param size: size in bytes SANITIZER_INTERFACE_WEAK_DEF(void, __taint_move_shadow, void*, void*, uint64_t) {} +// Get or create an Alloca bounds label for a pointer +// @param ptr: pointer (NULL to always create new) +// @param lower: lower bound address +// @param upper: upper bound address +// @return: Alloca label (0 when standalone) +SANITIZER_INTERFACE_WEAK_DEF(dfsan_label, __taint_get_ptr_bounds_label, void*, uint64_t, uint64_t) { + return 0; +} + } // extern "C" diff --git a/runtime/dfsan/ucsan_custom.cpp b/runtime/dfsan/ucsan_custom.cpp index 60481fc5..1a59187b 100644 --- a/runtime/dfsan/ucsan_custom.cpp +++ b/runtime/dfsan/ucsan_custom.cpp @@ -24,6 +24,8 @@ extern "C" { void __taint_copy_shadow(void *dst, void *src, u64 size); void __taint_move_shadow(void *dst, void *src, u64 size); void __taint_set_label(u32 label, void *addr, u64 size); + dfsan_label __taint_get_ptr_bounds_label(void *ptr, u64 lower, u64 upper); + void __taint_set_retval_tls(u32 index, dfsan_label label, u32 size_in_bits); } // Simple passthrough wrappers for malloc family @@ -53,6 +55,10 @@ static ucsan_label create_alloca_label(void *ptr, size_t size) { shadow[i] = kUninitializedLabel; } + // Bridge to SymSan: create Alloca bounds label and set via retval TLS + dfsan_label bounds = __taint_get_ptr_bounds_label(nullptr, (u64)ptr, (u64)ptr + size); + __taint_set_retval_tls(0, bounds, sizeof(void*) * 8); + return label; } From b1720af1ff90afda6768afa6df60cf2bb386f2d4 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Mon, 9 Mar 2026 20:28:29 -0700 Subject: [PATCH 052/139] refactor nosanitize __dfsw_* handling into handleUCSanCall, load retval TLS Extract handleUCSanCall() that both emits minimize hints for allocation size args and loads the return shadow from retval TLS for non-void __dfsw_* calls. This picks up the Alloca bounds label set by UCSan's create_alloca_label via __taint_get_ptr_bounds_label. Co-Authored-By: Claude Opus 4.6 --- instrumentation/TaintPass.cpp | 102 ++++++++++++++++++++-------------- 1 file changed, 61 insertions(+), 41 deletions(-) diff --git a/instrumentation/TaintPass.cpp b/instrumentation/TaintPass.cpp index d5a760e8..461aae2b 100644 --- a/instrumentation/TaintPass.cpp +++ b/instrumentation/TaintPass.cpp @@ -569,6 +569,11 @@ struct TaintFunction { Value *getShadow(Value *V); void setShadow(Instruction *I, Value *Shadow); + /// Handle nosanitize __dfsw_* calls from UCSan: + /// emit minimize hints for alloc size args and load retval TLS for non-void. + /// Returns true if handled. + bool handleUCSanCall(CallInst *CI, Instruction *Next); + /// Returns the shadow value of a global variable GV. Value *getShadowForGlobal(GlobalVariable *GV, IRBuilder<> &IRB); @@ -1646,49 +1651,10 @@ bool Taint::runImpl(Module &M) { // TaintVisitor may delete Inst, so keep track of whether it was a // terminator. bool IsTerminator = Inst->isTerminator(); - // Emit minimize hints for nosanitize alloc calls (from UCSanPass) + // Handle nosanitize __dfsw_* calls from UCSan if (ClWithUCSan && Inst->getMetadata("nosanitize")) { if (auto *CI = dyn_cast(Inst)) { - if (Function *Callee = CI->getCalledFunction()) { - StringRef FName = Callee->getName(); - if (FName.startswith("__dfsw_")) { - StringRef BaseName = FName.drop_front(7); // skip "__dfsw_" - // Map: function name -> list of arg indices that are allocation sizes - // malloc(size)=0, calloc(nmemb,size)=0,1, realloc(ptr,size)=1, - // reallocarray(ptr,nmemb,size)=1,2, aligned_alloc(align,size)=1, - // memalign(align,size)=1, valloc(size)=0, pvalloc(size)=0, - // posix_memalign(memptr,align,size)=2 - SmallVector SizeArgIndices; - if (BaseName == "malloc" || BaseName == "__libc_malloc" || - BaseName == "valloc" || BaseName == "__libc_valloc" || - BaseName == "pvalloc" || BaseName == "__libc_pvalloc" || - BaseName == "kmalloc_large") { - SizeArgIndices.push_back(0); - } else if (BaseName == "calloc" || BaseName == "__libc_calloc") { - SizeArgIndices.push_back(0); - SizeArgIndices.push_back(1); - } else if (BaseName == "realloc" || BaseName == "__libc_realloc" || - BaseName == "aligned_alloc" || - BaseName == "memalign" || BaseName == "__libc_memalign" || - BaseName == "kmalloc" || BaseName == "__kmalloc") { - SizeArgIndices.push_back(1); - } else if (BaseName == "reallocarray" || BaseName == "__libc_reallocarray") { - SizeArgIndices.push_back(1); - SizeArgIndices.push_back(2); - } else if (BaseName == "posix_memalign") { - SizeArgIndices.push_back(2); - } - if (!SizeArgIndices.empty()) { - IRBuilder<> IRB(CI); - for (unsigned Idx : SizeArgIndices) { - Value *Shadow = TF.getShadow(CI->getArgOperand(Idx)); - if (!TF.TT.isZeroShadow(Shadow)) { - IRB.CreateCall(TF.TT.TaintMinimizeLabelFn, {Shadow}); - } - } - } - } - } + TF.handleUCSanCall(CI, Next); } } if (!TF.SkipInsts.count(Inst) && !Inst->getMetadata("nosanitize")) @@ -1800,6 +1766,60 @@ void TaintFunction::setShadow(Instruction *I, Value *Shadow) { ValShadowMap[I] = Shadow; } +bool TaintFunction::handleUCSanCall(CallInst *CI, Instruction *Next) { + Function *Callee = CI->getCalledFunction(); + if (!Callee) + return false; + StringRef FName = Callee->getName(); + if (!FName.startswith("__dfsw_")) + return false; + + StringRef BaseName = FName.drop_front(7); // skip "__dfsw_" + + // Emit minimize hints for allocation size arguments + SmallVector SizeArgIndices; + if (BaseName == "malloc" || BaseName == "__libc_malloc" || + BaseName == "valloc" || BaseName == "__libc_valloc" || + BaseName == "pvalloc" || BaseName == "__libc_pvalloc" || + BaseName == "kmalloc_large") { + SizeArgIndices.push_back(0); + } else if (BaseName == "calloc" || BaseName == "__libc_calloc") { + SizeArgIndices.push_back(0); + SizeArgIndices.push_back(1); + } else if (BaseName == "realloc" || BaseName == "__libc_realloc" || + BaseName == "aligned_alloc" || + BaseName == "memalign" || BaseName == "__libc_memalign" || + BaseName == "kmalloc" || BaseName == "__kmalloc") { + SizeArgIndices.push_back(1); + } else if (BaseName == "reallocarray" || BaseName == "__libc_reallocarray") { + SizeArgIndices.push_back(1); + SizeArgIndices.push_back(2); + } else if (BaseName == "posix_memalign") { + SizeArgIndices.push_back(2); + } + if (!SizeArgIndices.empty()) { + IRBuilder<> IRB(CI); + for (unsigned Idx : SizeArgIndices) { + Value *Shadow = getShadow(CI->getArgOperand(Idx)); + if (!TT.isZeroShadow(Shadow)) { + IRB.CreateCall(TT.TaintMinimizeLabelFn, {Shadow}); + } + } + } + + // Load return shadow from retval TLS for non-void __dfsw_* calls + if (!CI->getType()->isVoidTy()) { + IRBuilder<> NextIRB(Next); + LoadInst *LI = NextIRB.CreateAlignedLoad( + TT.getShadowTy(CI), getRetvalTLS(CI->getType(), NextIRB), + ShadowTLSAlignment, "_dfsret"); + SkipInsts.insert(LI); + setShadow(CI, LI); + } + + return true; +} + /// Compute the integer shadow offset that corresponds to a given /// application address. /// From 6c03030b242c7e5d132d2184f31281c8cfe43cc0 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Wed, 11 Mar 2026 20:19:38 -0700 Subject: [PATCH 053/139] add uninstrumented kind --- instrumentation/UCSanPass.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index afd06b5d..eef1ff02 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -319,7 +319,8 @@ class UCSan { WK_None, WK_Custom, WK_TaintCustom, // custom in dfsan abilist, defer to TaintPass if available - WK_AutoCustom + WK_AutoCustom, + WK_Uninstrumented, }; Module *Mod; @@ -1522,6 +1523,10 @@ UCSan::WrapperKind UCSan::getWrapperKind(Function *F) { if (ABIList.isIn(*F, "custom")) return WK_Custom; + // Check ABIList for uninstrumented functions + if (ABIList.isIn(*F, "uninstrumented")) + return WK_Uninstrumented; + // Check if function is in the custom map from YAML metadata if (Scope.custom.find(F->getName().str()) != Scope.custom.end()) { return WK_AutoCustom; @@ -2297,6 +2302,7 @@ bool UCSanVisitor::visitWrappedCallBase(Function *F, CallBase &CB) { return true; case UCSan::WK_TaintCustom: + case UCSan::WK_Uninstrumented: { // TaintPass will handle the __dfsw_ wrapping with proper taint labels. // Just check pointer arguments here, skip ucsan arg/retval TLS. @@ -2857,6 +2863,11 @@ bool UCSan::runImpl(Module &M) { // TaintPass will call the custom wrapper and pass taint labels. // UCSan will only do check_pointer on pointer args at call sites. UnwrappedFnMap[&F] = &F; + // Remove the body of there is one + if (!F.isDeclaration()) F.deleteBody(); + } else if (WK == WK_Uninstrumented) { + // Leave the function as is, but add to UnwrappedFnMap + UnwrappedFnMap[&F] = &F; } else if (WK == WK_Custom || WK == WK_AutoCustom) { if (!F.isDeclaration()) F.deleteBody(); UnwrappedFnMap[&F] = &F; From 5e14763837746abbf579f912c404eb47f05ac2c8 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Wed, 11 Mar 2026 22:29:02 -0700 Subject: [PATCH 054/139] hoist bounds checks out of loops using SCEV analysis Replace per-iteration __taint_check_bounds calls with a single summary check in the loop preheader covering [base, base + BTC * stride + elem]. When the trip count is symbolic, also emit __taint_solve_size so the solver can find loop bounds that cause OOB. Key implementation details: - Look through __taint_gep_offset calls to find loop-invariant base shadow - Split edges to create preheaders when they don't exist - Group checks by allocation shadow and merge ranges - collectSCEVUnknowns extracts symbolic variables from trip count - Remove -funroll-loops from ko_clang so loops survive to TaintPass Co-Authored-By: Claude Opus 4.6 --- compiler/ko_clang.c | 1 - instrumentation/TaintPass.cpp | 235 ++++++++++++++++++++++++++++++++++ tests/hoist_bounds.c | 48 +++++++ tests/hoist_bounds2.c | 47 +++++++ tests/hoist_bounds3.c | 47 +++++++ 5 files changed, 377 insertions(+), 1 deletion(-) create mode 100644 tests/hoist_bounds.c create mode 100644 tests/hoist_bounds2.c create mode 100644 tests/hoist_bounds3.c diff --git a/compiler/ko_clang.c b/compiler/ko_clang.c index 34170080..ab0f3343 100644 --- a/compiler/ko_clang.c +++ b/compiler/ko_clang.c @@ -461,7 +461,6 @@ static void edit_params(u32 argc, char **argv) { if (!getenv("KO_DONT_OPTIMIZE")) { cc_params[cc_par_cnt++] = "-g"; cc_params[cc_par_cnt++] = "-O3"; - cc_params[cc_par_cnt++] = "-funroll-loops"; } if (is_cxx && !use_native_cxx) { diff --git a/instrumentation/TaintPass.cpp b/instrumentation/TaintPass.cpp index 461aae2b..f7088aef 100644 --- a/instrumentation/TaintPass.cpp +++ b/instrumentation/TaintPass.cpp @@ -25,7 +25,13 @@ #include "llvm/ADT/StringRef.h" #include "llvm/ADT/Triple.h" #include "llvm/ADT/iterator.h" +#include "llvm/Analysis/AssumptionCache.h" +#include "llvm/Analysis/LoopInfo.h" +#include "llvm/Analysis/ScalarEvolution.h" +#include "llvm/Analysis/ScalarEvolutionExpressions.h" +#include "llvm/Analysis/TargetLibraryInfo.h" #include "llvm/Analysis/ValueTracking.h" +#include "llvm/Transforms/Utils/ScalarEvolutionExpander.h" #include "llvm/IR/Argument.h" #include "llvm/IR/Attributes.h" #include "llvm/IR/BasicBlock.h" @@ -174,6 +180,12 @@ static cl::opt ClTraceBound( cl::desc("Trace buffer bound info."), cl::Hidden, cl::init(true)); +// SYMSAN specific flags, hoist bounds checks out of loops using SCEV +static cl::opt ClHoistBoundsChecks( + "taint-hoist-bounds-checks", + cl::desc("Hoist bounds checks out of loops using SCEV analysis."), + cl::Hidden, cl::init(true)); + // SYMSAN specific flags, enable generating solving tasks for undefined behaviour static cl::opt ClSolveUB( "taint-solve-ub", @@ -591,6 +603,7 @@ struct TaintFunction { Value *visitAllocaInst(AllocaInst *I, Value *ArraySize, Type *ElTy); void checkBounds(Value *Ptr, Value *Size, Instruction *Pos); void solveBounds(Value *Ptr, Value *Size, Instruction *Pos); + void hoistBoundsChecks(); /// XXX: because we never collapse taint labels for aggregate types, /// we also do not expand taint labels from an aggreated primitive @@ -1676,6 +1689,10 @@ bool Taint::runImpl(Module &M) { Val, TF.getShadow(P.Phi->getIncomingValue(Val))); } } + + // Hoist bounds checks out of loops + if (ClTraceBound && ClHoistBoundsChecks) + TF.hoistBoundsChecks(); } return Changed || !FnsToInstrument.empty() || @@ -2001,6 +2018,224 @@ void TaintFunction::solveBounds(Value *Ptr, Value* Size, Instruction *Pos) { {PtrShadow, Addr, SizeShadow, Size64, CID}); } +// Collect all SCEVUnknown values from a SCEV expression. +static void collectSCEVUnknowns(const SCEV *S, + SmallVectorImpl &Unknowns) { + if (auto *U = dyn_cast(S)) { + Unknowns.push_back(U->getValue()); + } else if (auto *NAry = dyn_cast(S)) { + for (const SCEV *Op : NAry->operands()) + collectSCEVUnknowns(Op, Unknowns); + } else if (auto *Cast = dyn_cast(S)) { + collectSCEVUnknowns(Cast->getOperand(), Unknowns); + } else if (auto *UDiv = dyn_cast(S)) { + collectSCEVUnknowns(UDiv->getLHS(), Unknowns); + collectSCEVUnknowns(UDiv->getRHS(), Unknowns); + } + // SCEVConstant has no unknowns +} + +// Hoist __taint_check_bounds calls out of loops using SCEV analysis. +// For each loop with a computable backedge-taken count, find bounds checks +// where the pointer shadow (bounds label) is loop-invariant and the address +// follows an affine recurrence {start, +, stride}. Replace N per-iteration +// checks with a single summary check in the preheader covering the full +// access range [start, start + BTC * stride + elem_size). +// When the trip count is symbolic, also emit a __taint_solve_size call +// so the solver can find loop bounds that cause OOB. +void TaintFunction::hoistBoundsChecks() { + // Recalculate analyses after TaintVisitor may have split blocks + DT.recalculate(*F); + delete LI; + LI = new LoopInfo(DT); + + if (LI->empty()) return; + + Module *M = F->getParent(); + TargetLibraryInfoImpl TLII(Triple(M->getTargetTriple())); + TargetLibraryInfo TLI(TLII, F); + AssumptionCache AC(*F); + ScalarEvolution SE(*F, TLI, AC, DT, *LI); + + // Process innermost loops first so hoisted checks can be further + // hoisted when processing outer loops + SmallVector Loops(LI->getLoopsInPreorder()); + + for (Loop *L : reverse(Loops)) { + BasicBlock *Preheader = L->getLoopPreheader(); + if (!Preheader) { + // No canonical preheader (predecessor has multiple successors). + // Split the edge to create one. + BasicBlock *Pred = L->getLoopPredecessor(); + if (!Pred) continue; + Preheader = SplitEdge(Pred, L->getHeader(), &DT, LI); + if (!Preheader) continue; + } + + const SCEV *BTC = SE.getBackedgeTakenCount(L); + if (isa(BTC)) continue; + + // Collect __taint_check_bounds calls at this loop level (skip subloops) + SmallVector BoundsChecks; + for (BasicBlock *BB : L->blocks()) { + if (LI->getLoopFor(BB) != L) continue; + for (Instruction &I : *BB) { + auto *CI = dyn_cast(&I); + if (!CI) continue; + Function *Callee = CI->getCalledFunction(); + if (Callee && Callee->getName() == "__taint_check_bounds") + BoundsChecks.push_back(CI); + } + } + if (BoundsChecks.empty()) continue; + + // Group hoistable checks by AddrLabel (ptr bounds shadow). + // For each group, compute the merged range covering all accesses, + // emit one summary check + one solve_size call. + struct HoistCandidate { + const SCEVAddRecExpr *AR; + uint64_t ElemSize; + CallInst *CI; + }; + DenseMap> Groups; + for (CallInst *CI : BoundsChecks) { + Value *AddrLabel = CI->getArgOperand(0); // ptr bounds shadow + Value *Addr = CI->getArgOperand(1); // concrete address + Value *Size = CI->getArgOperand(3); // access size + + // AddrLabel may be loop-variant due to: + // 1. __taint_gep_offset(base_shadow, gep, base) called per-iteration + // 2. PHI nodes for pointer-incrementing loops (buf++) + // Walk through these to find the loop-invariant base allocation shadow. + if (!L->isLoopInvariant(AddrLabel)) { + Value *Resolved = AddrLabel; + bool Found = false; + // Walk through PHIs and __taint_gep_offset calls + for (int Depth = 0; Depth < 4 && !Found; ++Depth) { + if (L->isLoopInvariant(Resolved)) { + Found = true; + } else if (auto *PN = dyn_cast(Resolved)) { + // Pick the incoming value from outside the loop + for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) { + if (!L->contains(PN->getIncomingBlock(i))) { + Resolved = PN->getIncomingValue(i); + break; + } + } + } else if (auto *GepCall = dyn_cast(Resolved)) { + Function *GepFn = GepCall->getCalledFunction(); + if (GepFn && GepFn->getName() == "__taint_gep_offset") + Resolved = GepCall->getArgOperand(0); + else + break; + } else { + break; + } + } + if (!Found && L->isLoopInvariant(Resolved)) + Found = true; + if (!Found) continue; + AddrLabel = Resolved; + } + + auto *SizeC = dyn_cast(Size); + if (!SizeC) continue; + + // With UCSan, Addr is ptrtoint(ucsan_check_pointer(orig_ptr, ...)). + // ucsan_check_pointer is opaque to SCEV; use the original pointer. + Value *AddrForSCEV = Addr; + if (ClWithUCSan) { + if (auto *PTI = dyn_cast(Addr)) { + if (auto *ChkCall = dyn_cast(PTI->getPointerOperand())) { + Function *ChkFn = ChkCall->getCalledFunction(); + if (ChkFn && ChkFn->getName() == "ucsan_check_pointer") { + IRBuilder<> IRB(CI); + AddrForSCEV = IRB.CreatePtrToInt(ChkCall->getArgOperand(0), TT.Int64Ty); + } + } + } + } + + const SCEV *AddrSCEV = SE.getSCEV(AddrForSCEV); + auto *AR = dyn_cast(AddrSCEV); + if (!AR || AR->getLoop() != L) continue; + + const SCEV *Step = AR->getStepRecurrence(SE); + auto *StepC = dyn_cast(Step); + if (!StepC) continue; + int64_t StepVal = StepC->getAPInt().getSExtValue(); + if (StepVal <= 0) continue; + + Groups[AddrLabel].push_back({AR, SizeC->getZExtValue(), CI}); + } + + SCEVExpander Expander(SE, M->getDataLayout(), "bounds.hoist"); + Instruction *InsertPt = Preheader->getTerminator(); + + for (auto &KV : Groups) { + Value *AddrLabel = KV.first; + auto &Candidates = KV.second; + + // Find the minimum start and maximum end across all accesses + // to emit a single check covering the entire range. + const SCEV *MinStart = Candidates[0].AR->getStart(); + const SCEV *MaxEnd = nullptr; // end = BTC * stride + elem_size + CallInst *FirstCI = Candidates[0].CI; + + for (auto &C : Candidates) { + const SCEV *Start = C.AR->getStart(); + const SCEV *Step = C.AR->getStepRecurrence(SE); + // end of this access: start + BTC * stride + elem_size + const SCEV *End = SE.getAddExpr( + Start, + SE.getAddExpr( + SE.getMulExpr(BTC, Step), + SE.getConstant(BTC->getType(), C.ElemSize) + ) + ); + if (SE.isKnownPredicate(ICmpInst::ICMP_ULT, Start, MinStart)) + MinStart = Start; + if (!MaxEnd || SE.isKnownPredicate(ICmpInst::ICMP_UGT, End, MaxEnd)) + MaxEnd = End; + } + + // total = MaxEnd - MinStart + const SCEV *TotalSCEV = SE.getMinusSCEV(MaxEnd, MinStart); + + Value *StartVal = Expander.expandCodeFor(MinStart, TT.Int64Ty, InsertPt); + Value *TotalVal = Expander.expandCodeFor(TotalSCEV, TT.Int64Ty, InsertPt); + + // Emit one summary bounds check for the group + IRBuilder<> IRB(InsertPt); + IRB.CreateCall(TT.TaintCheckBoundsFn, + {AddrLabel, StartVal, TT.ZeroPrimitiveShadow, TotalVal}); + + // If the trip count is symbolic, also emit a __taint_solve_size + // call so the solver can find loop bounds that cause OOB. + if (!isa(BTC)) { + SmallVector Unknowns; + collectSCEVUnknowns(BTC, Unknowns); + Value *SizeShadow = TT.ZeroPrimitiveShadow; + for (Value *V : Unknowns) { + Value *S = getShadow(V); + if (!TT.isZeroShadow(S)) + SizeShadow = S; + } + if (!TT.isZeroShadow(SizeShadow)) { + ConstantInt *CID = ConstantInt::get(TT.Int32Ty, + TT.getInstructionId(FirstCI)); + IRB.CreateCall(TT.TaintSolveSizeFn, + {AddrLabel, StartVal, SizeShadow, TotalVal, CID}); + } + } + + // Remove all original per-iteration checks in this group + for (auto &C : Candidates) + C.CI->eraseFromParent(); + } + } +} + // Generates IR to load shadow corresponding to bytes [Addr, Addr+Size), where // Addr has alignment Align, and take the union of each of those shadows. Value *TaintFunction::loadPrimitiveShadow(Value *Addr, uint64_t Size, diff --git a/tests/hoist_bounds.c b/tests/hoist_bounds.c new file mode 100644 index 00000000..a401f8fb --- /dev/null +++ b/tests/hoist_bounds.c @@ -0,0 +1,48 @@ +// Test that bounds-check hoisting out of loops still detects OOB. +// A fixed-count loop (trip count known to SCEV) writes symbolic data +// into a heap buffer. The solver should find an allocation size that +// makes the loop go out of bounds. The hoisted summary check in the +// preheader must catch this. +// +// RUN: rm -rf %t.out +// RUN: mkdir -p %t.out +// RUN: python -c"import sys; sys.stdout.buffer.write(b'\x1a\x00\x00\x00')" > %t.bin +// RUN: env KO_USE_FASTGEN=1 KO_SOLVE_UB=1 %ko-clang -o %t.fg %s +// RUN: env TAINT_OPTIONS="taint_file=%t.bin output_dir=%t.out solve_ub=1" %fgtest %t.fg %t.bin +// RUN: not env TAINT_OPTIONS="debug=1 trace_bounds=1 exit_on_memerror=1" %t.fg %t.out/id-0-0-0 2>&1 | FileCheck %s +// CHECK: ERROR: OOB overflow + +#include +#include +#include +#include +#include "lib.h" + +int main (int argc, char** argv) { + if (argc < 2) { + fprintf(stderr, "Usage: %s [file]\n", argv[0]); + return 0; + } + + int size = 0; + + FILE* fp = chk_fopen(argv[1], "rb"); + chk_fread(&size, sizeof(size), 1, fp); + fclose(fp); + + // Allocate with symbolic size + char *buf = malloc(size); + if (!buf) return 0; + + // Fixed-count loop — SCEV can compute trip count = 26 + // When size < 26, the hoisted bounds check should detect OOB +#pragma clang loop vectorize(disable) unroll(disable) + for (int i = 0; i < 26; i++) { + buf[i] = 'A' + i; + } + + // Use last element so the loop isn't dead-code-eliminated + printf("%c\n", buf[25]); + free(buf); + return 0; +} diff --git a/tests/hoist_bounds2.c b/tests/hoist_bounds2.c new file mode 100644 index 00000000..5dd1f31d --- /dev/null +++ b/tests/hoist_bounds2.c @@ -0,0 +1,47 @@ +// Test bounds checking with fixed-size buffer and symbolic loop count. +// The loop trip count is symbolic, so SCEV cannot hoist the bounds +// check — per-iteration checks must still detect the OOB. +// +// RUN: rm -rf %t.out +// RUN: mkdir -p %t.out +// RUN: python -c"import sys; sys.stdout.buffer.write(b'\x01\x00\x00\x00')" > %t.bin +// RUN: env KO_USE_FASTGEN=1 KO_SOLVE_UB=1 %ko-clang -o %t.fg %s +// RUN: env TAINT_OPTIONS="taint_file=%t.bin output_dir=%t.out solve_ub=1" %fgtest %t.fg %t.bin +// RUN: not env TAINT_OPTIONS="debug=1 trace_bounds=1 exit_on_memerror=1" %t.fg %t.out/id-0-0-1 2>&1 | FileCheck %s +// CHECK: ERROR: OOB overflow + +#include +#include +#include +#include +#include "lib.h" + +int main (int argc, char** argv) { + if (argc < 2) { + fprintf(stderr, "Usage: %s [file]\n", argv[0]); + return 0; + } + + int count = 0; + + FILE* fp = chk_fopen(argv[1], "rb"); + chk_fread(&count, sizeof(count), 1, fp); + fclose(fp); + + // Fixed-size heap buffer, small enough that solver-generated + // count=2 triggers OOB + char *buf = malloc(1); + if (!buf) return 0; + + // Variable loop count — SCEV computes BTC as a runtime expression, + // so the hoisted summary check covers [buf, buf + count). + // When count > 1, the loop goes OOB. +#pragma clang loop vectorize(disable) unroll(disable) + for (int i = 0; i < count; i++) { + buf[i] = 'A' + (i % 26); + } + + printf("%c\n", buf[0]); + free(buf); + return 0; +} diff --git a/tests/hoist_bounds3.c b/tests/hoist_bounds3.c new file mode 100644 index 00000000..68840162 --- /dev/null +++ b/tests/hoist_bounds3.c @@ -0,0 +1,47 @@ +// Test bounds checking when both allocation size and loop count are symbolic. +// The solver should find a (size, count) pair where count > size, triggering OOB. +// +// RUN: rm -rf %t.out +// RUN: mkdir -p %t.out +// RUN: python -c"import sys; sys.stdout.buffer.write(b'\x1a\x00\x01\x00')" > %t.bin +// RUN: env KO_USE_FASTGEN=1 KO_SOLVE_UB=1 %ko-clang -o %t.fg %s +// RUN: env TAINT_OPTIONS="taint_file=%t.bin output_dir=%t.out solve_ub=1" %fgtest %t.fg %t.bin +// RUN: not env TAINT_OPTIONS="debug=1 trace_bounds=1 exit_on_memerror=1" %t.fg %t.out/id-0-0-1 2>&1 | FileCheck %s +// CHECK: ERROR: OOB overflow + +#include +#include +#include +#include +#include "lib.h" + +int main (int argc, char** argv) { + if (argc < 2) { + fprintf(stderr, "Usage: %s [file]\n", argv[0]); + return 0; + } + + uint16_t size = 0; + uint16_t count = 0; + + FILE* fp = chk_fopen(argv[1], "rb"); + chk_fread(&size, sizeof(size), 1, fp); + chk_fread(&count, sizeof(count), 1, fp); + fclose(fp); + + // Both size and count are symbolic; +1 so malloc(0) can't happen + char *buf = malloc(size + 1); + if (!buf) return 0; + + // Variable loop count over variable-size buffer. + // Initial input: size=26, count=1 (safe). + // Solver should find size/count pair where count > size+1 → OOB. +#pragma clang loop vectorize(disable) unroll(disable) + for (int i = 0; i < count; i++) { + buf[i] = 'A' + (i % 26); + } + + printf("%c\n", buf[0]); + free(buf); + return 0; +} From 48eeca1b2c38a4500030d3a8d14ce7658355d85b Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Thu, 12 Mar 2026 23:05:11 -0700 Subject: [PATCH 055/139] can't translate constant nullptr --- instrumentation/UCSanPass.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index eef1ff02..6c199073 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -2308,7 +2308,8 @@ bool UCSanVisitor::visitWrappedCallBase(Function *F, CallBase &CB) { // Just check pointer arguments here, skip ucsan arg/retval TLS. auto *I = CB.arg_begin(); for (unsigned N = FT->getNumParams(); N != 0; ++I, --N) { - if ((*I)->getType()->isPointerTy()) { + // skip nullptr + if ((*I)->getType()->isPointerTy() && !isa(*I)) { Value *sizeArg = ConstantInt::get(UF.UC.Int64Ty, DL.getTypeAllocSize((*I)->getType()->getPointerElementType())); Value *rptr = UF.checkPointer(*I, sizeArg, true, IRB); From f37fc841607928ddbcd03ab6f6286e513c12bc7d Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 13 Mar 2026 19:20:08 -0700 Subject: [PATCH 056/139] port cfg dump --- instrumentation/UCSanPass.cpp | 63 +++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 6c199073..ab51a365 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -105,6 +105,10 @@ static cl::opt ClTraceBB("ucsan-trace-bb", cl::desc("Enable basic block tracing"), cl::Hidden, cl::init(false)); +static cl::opt ClDumpCfg("ucsan-dump-cfg", + cl::desc("Dump control flow info to file"), + cl::Hidden); + static cl::opt ClWithTaintPass( "ucsan-with-taint", cl::desc("TaintPass will run after UCSanPass, defer taint custom functions"), @@ -2890,6 +2894,17 @@ bool UCSan::runImpl(Module &M) { } } + // check if we need to dump cov information + std::unique_ptr COVF; + if (!ClDumpCfg.empty()) { + std::error_code EC; + COVF = std::make_unique(ClDumpCfg, EC, llvm::sys::fs::OF_Append | llvm::sys::fs::OF_Text); + if (EC) { + errs() << "Failed to open control flow file: " << ClDumpCfg << "\n"; + COVF.reset(); + } + } + // Instrument in-scope functions for (Function *F : FnsToInstrument) { if (!F || F->isDeclaration()) continue; @@ -2940,6 +2955,54 @@ bool UCSan::runImpl(Module &M) { // Build a copy of the list before iterating over it. SmallVector BBList(depth_first(&F->getEntryBlock())); for (BasicBlock *BB : BBList) { + + // Dump cov info + if (COVF) { + auto getBBID = [&](BasicBlock *B) -> int64_t { + auto *MD = B->getTerminator()->getMetadata(BBIDName); + if (!MD) return -1; + auto *C = dyn_cast(MD->getOperand(0)); + return dyn_cast(C->getValue())->getZExtValue(); + }; + + int64_t CurID = getBBID(BB); + if (CurID >= 0) { + Instruction *Term = BB->getTerminator(); + // COV := FN:current_bbid:termination_types + // types := C (conditional branch) + // := D (unconditional branch) + // := S (switch cases) + // := R (return) + // := U (unreachable) + *COVF << F->getName() << ":" << CurID << ":"; + if (auto *BR = dyn_cast(Term)) { + if (BR->isConditional()) { + // condition branch: C:T:true_target_id:F:false_target_id + *COVF << "C:T:" << getBBID(BR->getSuccessor(0)) + << ":F:" << getBBID(BR->getSuccessor(1)) << "\n"; + } else { + // unconditional branch: D:next_bbid + *COVF << "D:" << getBBID(BR->getSuccessor(0)) << "\n"; + } + } else if (auto *SI = dyn_cast(Term)) { + // switch cases: S:default_bbid:case1_bbid:case2_bbid:... + *COVF << "S"; + for (unsigned i = 0, n = SI->getNumSuccessors(); i < n; ++i) { + *COVF << ":" << getBBID(SI->getSuccessor(i)); + } + *COVF << "\n"; + } else if (isa(Term)) { + // return: "R" + *COVF << "R\n"; + } else if (isa(Term)) { + // unreachable: "U" + *COVF << "U\n"; + } else { + errs() << "Warning: unhandled termination type: " << *Term << "\n"; + } + } + } + Instruction *Inst = &BB->front(); while (true) { // UCSanVisitor may split the current basic block, changing the current From 7331d9cb7bc0d4f6d61a6b04175615fd2a7f0aeb Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 13 Mar 2026 23:09:55 -0700 Subject: [PATCH 057/139] fix overflow checks skipped when symbolic operands have concrete value 0 For Add and Mul, the overflow detection guards checked concrete values (orig_op1 != 0, orig_op2 != 0) which caused the checks to be skipped when both operands are symbolic but happen to be 0 in the current execution. Now also check if the label is symbolic (l1/l2 != 0) so the solver can still explore non-zero values. Co-Authored-By: Claude Opus 4.6 --- runtime/dfsan/dfsan.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/runtime/dfsan/dfsan.cpp b/runtime/dfsan/dfsan.cpp index e2ef155d..8d3cf245 100644 --- a/runtime/dfsan/dfsan.cpp +++ b/runtime/dfsan/dfsan.cpp @@ -490,7 +490,7 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, // Unsigned overflow: result < op1 (for any non-zero op2) // When adding two unsigned numbers, overflow means result wrapped around - if (result >= orig_op1 && orig_op2 != 0) { + if (result >= orig_op1 && (orig_op2 != 0 || l2 != 0)) { dfsan_label cond = do_taint_union(label, l1, (bvult << 8) | __dfsan::ICmp, size, result, orig_op1); __taint_trace_cond(cond, 0, UndefinedCheck, ub_integer_overflow); @@ -514,7 +514,7 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, // This is an approximation - full check would need wider multiplication bool has_signed_overflow = (overflow_check & sign_bit) != 0; - if (!has_signed_overflow && orig_op1 != 0 && orig_op2 != 0) { + if (!has_signed_overflow && (orig_op1 != 0 || l1 != 0) && (orig_op2 != 0 || l2 != 0)) { dfsan_label xor_l1 = do_taint_union(l1, label, __dfsan::Xor, size, orig_op1, result); dfsan_label xor_l2 = do_taint_union(l2, label, __dfsan::Xor, size, orig_op2, result); dfsan_label and_xors = do_taint_union(xor_l1, xor_l2, __dfsan::And, size, xor1, xor2); @@ -524,14 +524,12 @@ dfsan_label __taint_union(dfsan_label l1, dfsan_label l2, uint16_t op, } // Unsigned overflow: for multiplication, check if result / op1 != op2 (when op1 != 0) - if (orig_op1 != 0 && result / orig_op1 == orig_op2) { - // No overflow currently, check if overflow can happen - // Approximate: result < op1 || result < op2 when both > 1 - if (orig_op1 > 1 && orig_op2 > 1) { + // When orig_op1 == 0, no overflow possible concretely (0 * x = 0), but if symbolic, still check + bool no_unsigned_overflow = (orig_op1 == 0 || result / orig_op1 == orig_op2); + if (no_unsigned_overflow && (orig_op1 > 1 || l1 != 0) && (orig_op2 > 1 || l2 != 0)) { dfsan_label cond = do_taint_union(label, l1, (bvult << 8) | __dfsan::ICmp, size, result, orig_op1); __taint_trace_cond(cond, 0, UndefinedCheck, ub_integer_overflow); - } } } else if (op == __dfsan::Sub) { // check for integer overflow (underflow for subtraction) From ccfbc21c43d5f89b566be40721563d5159c39b1f Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 17 Mar 2026 14:43:48 -0700 Subject: [PATCH 058/139] add assume/assert interfaces for pre-/post-conditions --- compiler/ko_clang.c | 6 + instrumentation/UCSanPass.cpp | 57 +++++++- runtime/dfsan/dfsan.h | 1 + runtime/dfsan/dfsan_custom.cpp | 23 ++++ runtime/dfsan/done_abilist.txt | 6 + runtime/dfsan/ucsan_abilist.txt | 10 ++ runtime/dfsan/ucsan_custom.cpp | 225 +++++++++++++++++++++++++++++--- 7 files changed, 306 insertions(+), 22 deletions(-) diff --git a/compiler/ko_clang.c b/compiler/ko_clang.c index ab0f3343..26e25db1 100644 --- a/compiler/ko_clang.c +++ b/compiler/ko_clang.c @@ -290,6 +290,12 @@ static void add_ucsan_pass() { cc_params[cc_par_cnt++] = "-ucsan-trace-bb=true"; } + const char *uscan_cfg = getenv("KO_DUMP_CFG"); + if (uscan_cfg) { + cc_params[cc_par_cnt++] = "-mllvm"; + cc_params[cc_par_cnt++] = alloc_printf("-ucsan-dump-cfg=%s", uscan_cfg); + } + if (!use_ucsan_only) { // TaintPass will run after UCSanPass cc_params[cc_par_cnt++] = "-mllvm"; diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index ab51a365..032c6164 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -98,12 +98,12 @@ static const char *BBIDName = "dfsan.bb"; // Command line options static cl::opt ClTraceBound("ucsan-trace-bound", - cl::desc("Enable bounds checking"), - cl::Hidden, cl::init(true)); + cl::desc("Enable bounds checking"), + cl::Hidden, cl::init(true)); static cl::opt ClTraceBB("ucsan-trace-bb", - cl::desc("Enable basic block tracing"), - cl::Hidden, cl::init(false)); + cl::desc("Enable basic block tracing"), + cl::Hidden, cl::init(false)); static cl::opt ClDumpCfg("ucsan-dump-cfg", cl::desc("Dump control flow info to file"), @@ -245,6 +245,8 @@ struct UCSanScopeCustom { struct UCSanScope { std::string entry; std::vector scope; + std::vector shims_yaml; // parsed from YAML + std::map shims; // expanded: orig->true, __shim_orig->false std::map custom; }; @@ -287,6 +289,7 @@ struct MappingTraits { static void mapping(yaml::IO &io, UCSanScope &sc) { io.mapRequired("entry", sc.entry); io.mapOptional("scope", sc.scope); + io.mapOptional("shims", sc.shims_yaml); io.mapOptional("custom", sc.custom); } }; @@ -324,6 +327,8 @@ class UCSan { WK_Custom, WK_TaintCustom, // custom in dfsan abilist, defer to TaintPass if available WK_AutoCustom, + WK_ShimOrig, // original function to be replaced by __shim_ version + WK_ShimTarget, // LLM-generated __shim_ function, instrumented like in-scope WK_Uninstrumented, }; @@ -795,6 +800,13 @@ bool UCSan::loadMetadata() { } sys::fs::closeFile(fd); + + // Expand shims_yaml list into shims map + for (const auto &name : Scope.shims_yaml) { + Scope.shims[name] = true; // original function + Scope.shims["__shim_" + name] = false; // shim replacement + } + return true; } @@ -1531,6 +1543,12 @@ UCSan::WrapperKind UCSan::getWrapperKind(Function *F) { if (ABIList.isIn(*F, "uninstrumented")) return WK_Uninstrumented; + // Check if function is in the shims map from YAML metadata + auto shimIt = Scope.shims.find(F->getName().str()); + if (shimIt != Scope.shims.end()) { + return shimIt->second ? WK_ShimOrig : WK_ShimTarget; + } + // Check if function is in the custom map from YAML metadata if (Scope.custom.find(F->getName().str()) != Scope.custom.end()) { return WK_AutoCustom; @@ -2269,6 +2287,17 @@ bool UCSanVisitor::visitWrappedCallBase(Function *F, CallBase &CB) { // No wrapper needed, fall through to default behavior llvm_unreachable("WK_None should not be handled here"); return false; + case UCSan::WK_ShimTarget: + llvm_unreachable("WK_ShimTarget should not be in UnwrappedFnMap"); + return false; + case UCSan::WK_ShimOrig: + { + // Redirect call to __shim_ function, let normal TLS path handle shadows + std::string ShimName = "__shim_" + F->getName().str(); + FunctionCallee ShimF = UF.UC.Mod->getOrInsertFunction(ShimName, F->getFunctionType()); + CB.setCalledFunction(ShimF); + return false; // let caller handle arg/retval TLS + } case UCSan::WK_AutoCustom: // invoke the custom function { @@ -2876,6 +2905,13 @@ bool UCSan::runImpl(Module &M) { } else if (WK == WK_Custom || WK == WK_AutoCustom) { if (!F.isDeclaration()) F.deleteBody(); UnwrappedFnMap[&F] = &F; + } else if (WK == WK_ShimOrig) { + // Original function: delete body, redirect calls via visitWrappedCallBase + if (!F.isDeclaration()) F.deleteBody(); + UnwrappedFnMap[&F] = &F; + } else if (WK == WK_ShimTarget) { + // LLM-generated __shim_ function, instrument like in-scope + FnsToInstrument.push_back(&F); } else { FnsOutOfScope.push_back(&F); } @@ -2909,6 +2945,9 @@ bool UCSan::runImpl(Module &M) { for (Function *F : FnsToInstrument) { if (!F || F->isDeclaration()) continue; + // Make in-scope functions externally visible for debugging/linking + F->setLinkage(GlobalValue::ExternalLinkage); + // Kernel-style inputs may use 8-byte stack alignment; force realignment so // inserted UCSan runtime calls follow userspace ABI requirements. F->addFnAttr(Attribute::getWithStackAlignment(*Ctx, Align(16))); @@ -2968,13 +3007,19 @@ bool UCSan::runImpl(Module &M) { int64_t CurID = getBBID(BB); if (CurID >= 0) { Instruction *Term = BB->getTerminator(); - // COV := FN:current_bbid:termination_types + // COV := debug_info:current_bbid:termination_types + // debug_info := file,line,column // types := C (conditional branch) // := D (unconditional branch) // := S (switch cases) // := R (return) // := U (unreachable) - *COVF << F->getName() << ":" << CurID << ":"; + if (const auto &DL = Term->getDebugLoc()) { + *COVF << DL->getFilename() << "," << DL.getLine() << "," << DL.getCol(); + } else { + *COVF << F->getName() << ",0,0"; + } + *COVF << ":" << CurID << ":"; if (auto *BR = dyn_cast(Term)) { if (BR->isConditional()) { // condition branch: C:T:true_target_id:F:false_target_id diff --git a/runtime/dfsan/dfsan.h b/runtime/dfsan/dfsan.h index d4ea2d2d..300a9a9d 100644 --- a/runtime/dfsan/dfsan.h +++ b/runtime/dfsan/dfsan.h @@ -307,6 +307,7 @@ enum undefined_check_ids { ub_unsigned_integer_truncation, ub_signed_integer_truncation, ub_integer_sign_change, + ub_assertion_failure, }; #define F_ADD_CONS 0x1 diff --git a/runtime/dfsan/dfsan_custom.cpp b/runtime/dfsan/dfsan_custom.cpp index a830d9af..337c6d9a 100644 --- a/runtime/dfsan/dfsan_custom.cpp +++ b/runtime/dfsan/dfsan_custom.cpp @@ -3666,4 +3666,27 @@ __dfsw_fseeko64(FILE *stream, off64_t offset, int whence, dfsan_label stream_lab return ret; } +/// for assertion and assumption + +SANITIZER_INTERFACE_ATTRIBUTE void +__dfsw_assert_cond(uint8_t result, dfsan_label result_label, uint64_t id) { + if (!result) { + AOUT("ERROR: assertion %lu failure: result %d, label %d\n", id, result, result_label); + } + __taint_trace_cond(result_label, 1, UndefinedCheck, ub_assertion_failure); +} + +SANITIZER_INTERFACE_ATTRIBUTE void +__dfsw_assume_cond(uint8_t result, dfsan_label result_label, uint64_t id) { + if (result_label) { + AOUT("WARNING: assumption label is concrete for id %lu\n", id); + } + if (!result) { + __taint_trace_cond(result_label, 1, 0, id); + AOUT("WARNING: assumption %lu is false, exiting\n", id); + exit(0); + } + __taint_add_constraint(result_label, 1); +} + } // extern "C" diff --git a/runtime/dfsan/done_abilist.txt b/runtime/dfsan/done_abilist.txt index c454b3b3..d879349a 100644 --- a/runtime/dfsan/done_abilist.txt +++ b/runtime/dfsan/done_abilist.txt @@ -601,6 +601,12 @@ fun:__dfsw_*=discard fun:__taint_*=uninstrumented fun:__taint_*=discard +# custom assertions +fun:assert_cond=custom +fun:assert_cond=uninstrumented +fun:assume_cond=custom +fun:assume_cond=uninstrumented + # Don't add extra parameters to the Fuzzer callback. fun:LLVMFuzzerTestOneInput=uninstrumented fun:__afl_manual_init=uninstrumented diff --git a/runtime/dfsan/ucsan_abilist.txt b/runtime/dfsan/ucsan_abilist.txt index 698a7d2f..cb7a5e3a 100644 --- a/runtime/dfsan/ucsan_abilist.txt +++ b/runtime/dfsan/ucsan_abilist.txt @@ -51,6 +51,16 @@ fun:strstr=taint fun:strnstr=taint fun:memmem=taint +# custom assertions +fun:assert_cond=taint +fun:assume_cond=taint +fun:assert_init=custom +fun:assert_allocated=custom +fun:assert_freed=custom +fun:assume_init=custom +fun:assume_allocated=custom +fun:assume_freed=custom + # kernel fun:kmalloc_large=custom fun:__kmalloc=custom diff --git a/runtime/dfsan/ucsan_custom.cpp b/runtime/dfsan/ucsan_custom.cpp index 1a59187b..88d834a3 100644 --- a/runtime/dfsan/ucsan_custom.cpp +++ b/runtime/dfsan/ucsan_custom.cpp @@ -6,6 +6,8 @@ #include "ucsan_platform.h" #include "ucsan.h" +#include + using namespace __sanitizer; using namespace __ucsan; @@ -21,6 +23,8 @@ extern "C" { int posix_memalign(void **memptr, size_t alignment, size_t size); // SymSan bridge functions (weak stubs in ucsan.cpp, strong in dfsan.cpp) + dfsan_label __taint_create_label(uint32_t object_id, uint64_t offset, + uint32_t size_in_bytes); void __taint_copy_shadow(void *dst, void *src, u64 size); void __taint_move_shadow(void *dst, void *src, u64 size); void __taint_set_label(u32 label, void *addr, u64 size); @@ -35,7 +39,7 @@ extern "C" { // Helper to create an alloca-style bounds label for heap allocations // Also sets shadow memory to kUninitializedLabel for UBI detection -static ucsan_label create_alloca_label(void *ptr, size_t size) { +static ucsan_label create_alloca_label(void *ptr, size_t size, bool set_uninitialized) { ucsan_label label = allocate_label(); check_label(label); @@ -50,9 +54,11 @@ static ucsan_label create_alloca_label(void *ptr, size_t size) { obj->upper_bound = (u32)size; // Size in bytes // Set shadow memory to kUninitializedLabel for UBI detection - ucsan_label *shadow = ucsan_shadow_for(ptr); - for (size_t i = 0; i < size; i++) { - shadow[i] = kUninitializedLabel; + if (set_uninitialized) { + ucsan_label *shadow = ucsan_shadow_for(ptr); + for (size_t i = 0; i < size; i++) { + shadow[i] = kUninitializedLabel; + } } // Bridge to SymSan: create Alloca bounds label and set via retval TLS @@ -68,7 +74,7 @@ void *__dfsw_malloc(size_t size, ucsan_label size_label, ucsan_label *ret_label) UCSAN_OUT("__dfsw_malloc(%zu) = %p\n", size, ret); if (ret) { // Create bounds label (sets shadow to kUninitializedLabel for UBI) - *ret_label = create_alloca_label(ret, size); + *ret_label = create_alloca_label(ret, size, true); } else { *ret_label = UCSAN_CONST_LABEL; } @@ -103,7 +109,7 @@ void *__dfsw_calloc(size_t nmemb, size_t size, ucsan_label nmemb_label, if (ret) { // Create bounds label (sets shadow to kUninitializedLabel for UBI) // (calloc zeros memory, but we still want to detect reads before writes) - *ret_label = create_alloca_label(ret, total_size); + *ret_label = create_alloca_label(ret, total_size, false); } else { *ret_label = UCSAN_CONST_LABEL; } @@ -114,10 +120,20 @@ __attribute__((visibility("default"))) void *__dfsw_realloc(void *ptr, size_t size, ucsan_label ptr_label, ucsan_label size_label, ucsan_label *ret_label) { // If ptr has an alloca label, mark it as freed - if (ptr && ptr_label > UCSAN_CONST_LABEL) { - ucsan_label_info *old_info = get_label_info(ptr_label); - if (old_info->common.op == OP_ALLOCA) { - old_info->common.op = OP_FREE; // Mark old buffer as freed + size_t old_size = 0; + if (ptr) { + if (ptr_label > UCSAN_CONST_LABEL) { + ucsan_label_info *old_info = get_label_info(ptr_label); + ucsan_obj_info *old_obj = to_obj_info(old_info); + if (old_obj->op == OP_ALLOCA) { + old_obj->op = OP_FREE; // Mark old buffer as freed + } + old_size = old_obj->upper_bound - old_obj->lower_bound; + if (ptr != old_obj->real_ptr) { + UCSAN_OUT("WARNING: realloc ptr %p does not match real_ptr %p\n", ptr, old_obj->real_ptr); + } + } else { + old_size = malloc_usable_size(ptr); } } @@ -125,7 +141,16 @@ void *__dfsw_realloc(void *ptr, size_t size, ucsan_label ptr_label, void *ret = __libc_malloc(size); if (ret) { // Create bounds label (sets shadow to kUninitializedLabel for UBI) - *ret_label = create_alloca_label(ret, size); + *ret_label = create_alloca_label(ret, size, true); + // Copy data from old buffer to new buffer (up to min of old/new size) + size_t copy_size = old_size < size ? old_size : size; + internal_memcpy(ret, ptr, copy_size); + // Copy UCSan shadow memory from old to new + ucsan_label *sdest = ucsan_shadow_for(ret); + const ucsan_label *ssrc = ucsan_shadow_for(ptr); + internal_memcpy((void *)sdest, (const void *)ssrc, copy_size * sizeof(ucsan_label)); + // Bridge to SymSan: copy SymSan shadow memory + __taint_copy_shadow(ret, (void *)ptr, copy_size); } else { *ret_label = UCSAN_CONST_LABEL; } @@ -161,7 +186,7 @@ void *__dfsw_memalign(size_t alignment, size_t size, void *ret = aligned_alloc(alignment, size); if (ret) { // Create bounds label (sets shadow to kUninitializedLabel for UBI) - *ret_label = create_alloca_label(ret, size); + *ret_label = create_alloca_label(ret, size, true); } else { *ret_label = UCSAN_CONST_LABEL; } @@ -175,7 +200,7 @@ void *__dfsw_aligned_alloc(size_t alignment, size_t size, void *ret = aligned_alloc(alignment, size); if (ret) { // Create bounds label (sets shadow to kUninitializedLabel for UBI) - *ret_label = create_alloca_label(ret, size); + *ret_label = create_alloca_label(ret, size, true); } else { *ret_label = UCSAN_CONST_LABEL; } @@ -189,7 +214,7 @@ void *__dfsw_valloc(size_t size, ucsan_label size_label, ucsan_label *ret_label) void *ret = aligned_alloc(PAGE_SIZE, size); if (ret) { // Create bounds label (sets shadow to kUninitializedLabel for UBI) - *ret_label = create_alloca_label(ret, size); + *ret_label = create_alloca_label(ret, size, true); } else { *ret_label = UCSAN_CONST_LABEL; } @@ -201,7 +226,7 @@ void *__dfsw_pvalloc(size_t size, ucsan_label size_label, ucsan_label *ret_label void *ret = aligned_alloc(PAGE_SIZE, size); if (ret) { // Create bounds label (sets shadow to kUninitializedLabel for UBI) - *ret_label = create_alloca_label(ret, size); + *ret_label = create_alloca_label(ret, size, true); } else { *ret_label = UCSAN_CONST_LABEL; } @@ -216,7 +241,7 @@ int __dfsw_posix_memalign(void **memptr, size_t alignment, size_t size, if (result == 0 && *memptr) { *ret_label = UCSAN_CONST_LABEL; // Return value is int, no pointer label // Create bounds label (sets shadow to kUninitializedLabel for UBI) - ucsan_label alloca_label = create_alloca_label(*memptr, size); + ucsan_label alloca_label = create_alloca_label(*memptr, size, true); ucsan_label *shadow = ucsan_shadow_for(memptr); *shadow = alloca_label; // Label for the pointer itself } else { @@ -354,4 +379,172 @@ unsigned long __dfsw__copy_from_user(void *to, const void *from, unsigned long n return 0; } +SANITIZER_INTERFACE_ATTRIBUTE void +__dfsw_assert_allocated(void *ptr, size_t size, uint64_t id, ucsan_label ptr_label, + ucsan_label size_label, ucsan_label id_label) { + if (ptr_label == 0) { + UCSAN_OUT("ERROR: assertion %lu failure non-symbolic label: ptr %p\n", id, ptr); + return; + } + ucsan_label_info *info = get_label_info(ptr_label); + ucsan_obj_info *obj = to_obj_info(info); + if (obj->op != OP_ALLOCA) { + UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, label %d, op %d\n", id, ptr, ptr_label, obj->op); + return; + } + if (ptr != obj->real_ptr) { + UCSAN_OUT("ERROR: assertion %lu failure: ptr %p does not match real_ptr %p\n", id, ptr, obj->real_ptr); + return; + } + if (size > obj->upper_bound) { + UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, label %d, size %lu exceeds upper bound %u\n", + id, ptr, ptr_label, size, obj->upper_bound); + } +} + +SANITIZER_INTERFACE_ATTRIBUTE void +__dfsw_assert_freed(void *ptr, uint64_t id, ucsan_label ptr_label, ucsan_label id_label) { + if (ptr_label == 0) { + UCSAN_OUT("ERROR: assertion %lu failure non-symbolic label: ptr %p, label %d\n", id, ptr, ptr_label); + return; + } + ucsan_label_info *info = get_label_info(ptr_label); + ucsan_obj_info *obj = to_obj_info(info); + if (obj->op != OP_FREE) { + UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, label %d, op %d\n", id, ptr, ptr_label, obj->op); + } +} + +SANITIZER_INTERFACE_ATTRIBUTE void +__dfsw_assert_init(void *ptr, size_t size, uint64_t id, ucsan_label ptr_label, + ucsan_label size_label, ucsan_label id_label) { + // check ptr is allocated and the size is in bound + if (ptr_label == 0) { + UCSAN_OUT("ERROR: assertion %lu failure non-symbolic label: ptr %p, label %d\n", id, ptr, ptr_label); + return; + } + ucsan_label_info *info = get_label_info(ptr_label); + ucsan_obj_info *obj = to_obj_info(info); + if (obj->op != OP_ALLOCA) { + UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, label %d, op %d\n", id, ptr, ptr_label, obj->op); + return; + } + if (size > obj->upper_bound) { + UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, label %d, size %lu exceeds upper bound %u\n", + id, ptr, ptr_label, size, obj->upper_bound); + return; + } + ucsan_label *shadow = ucsan_shadow_for(ptr); + for (size_t i = 0; i < size; i++) { + if (shadow[i] == kUninitializedLabel) { + UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, index %lu, label %d\n", id, ptr, i, shadow[i]); + } + } +} + +SANITIZER_INTERFACE_ATTRIBUTE void +__dfsw_assume_init(void *ptr, size_t size, uint64_t id, ucsan_label ptr_label, + ucsan_label size_label, uint64_t id_label) { + if (ptr_label == 0) { + UCSAN_OUT("WARNING: assumption %lu non-symbolic label: ptr %p\n", id, ptr); + return; + } + ucsan_label_info *info = get_label_info(ptr_label); + ucsan_obj_info *obj = to_obj_info(info); + if (obj->op != OP_ALLOCA) { + UCSAN_OUT("WARNING: assumption %lu failure: ptr %p, label %d, op %d\n", id, ptr, ptr_label, obj->op); + return; + } + if (size > obj->upper_bound) { + UCSAN_OUT("WARNING: assumption %lu failure: ptr %p, label %d, size %lu exceeds upper bound %u\n", + id, ptr, ptr_label, size, obj->upper_bound); + return; + } + ucsan_label *shadow = ucsan_shadow_for(ptr); + char *obj_ptr = (char *)ptr; + for (size_t i = 0; i < size; i++) { + // do the same as ucsan_resign_shadow + if (shadow[i] == kUninitializedLabel) { + // Allocate a byte from super object + auto ret = create_label_from_super_object(1, false); + UCSAN_OUT("resign alloca ret: %u %lu\n", ret.label, ret.offset); + shadow[i] = ret.label; + + // Bridge to SymSan: create symbolic label for this byte + dfsan_label symsan_label = __taint_create_label(0, ret.offset, 1); + __taint_set_label(symsan_label, obj_ptr + i, 1); + + if (ucsan_tainted.objects->size() && ret.offset < ucsan_tainted.objects->at(0).data.size()) { + UCSAN_OUT("resign alloca super object: %u\n", ucsan_tainted.objects->at(0).data.at(ret.offset)); + obj_ptr[i] = ucsan_tainted.objects->at(0).data.at(ret.offset); + } else { + obj_ptr[i] = 0; + } + } + } +} + +SANITIZER_INTERFACE_ATTRIBUTE void* +__dfsw_assume_allocated(void *ptr, size_t size, uint64_t id, ucsan_label ptr_label, + ucsan_label size_label, ucsan_label id_label, + ucsan_label *ret_label) { + if (ptr_label == 0) { + // allocate a new buffer + char *new_ptr = (char *)__dfsw_malloc(size, size_label, ret_label); + // symbolize the new buffer + if (new_ptr) { + ucsan_label *shadow = ucsan_shadow_for(new_ptr); + for (size_t i = 0; i < size; i++) { + auto ret = create_label_from_super_object(1, false); + shadow[i] = ret.label; + dfsan_label symsan_label = __taint_create_label(0, ret.offset, 1); + __taint_set_label(symsan_label, (char *)new_ptr + i, 1); + + // Initialize from seed data if available + if (ucsan_tainted.objects->size() && ret.offset < ucsan_tainted.objects->at(0).data.size()) { + new_ptr[i] = ucsan_tainted.objects->at(0).data.at(ret.offset); + } else { + new_ptr[i] = 0; + } + } + } + return new_ptr; + } + // ptr has a label, just make sure size is right + ucsan_label_info *info = get_label_info(ptr_label); + if (info->common.op == OP_ALLOCA || info->common.op == OP_FREE) { + ucsan_obj_info *obj = to_obj_info(info); + if (size > obj->upper_bound) { + void *new_ptr = __dfsw_realloc(ptr, size, ptr_label, size_label, ret_label); + return new_ptr; + } + *ret_label = ptr_label; + } else { + // external ptr + void *new_ptr = __dfsw_malloc(size, size_label, ret_label); + if (new_ptr) { + void *old_ptr = ucsan_check_pointer(ptr, ptr_label, size, true); + ucsan_label dummy; + __dfsw_memcpy(new_ptr, old_ptr, size, *ret_label, ptr_label, size_label, &dummy); + return new_ptr; + } + } + + return ptr; +} + +SANITIZER_INTERFACE_ATTRIBUTE void* +__dfsw_assume_freed(void *ptr, uint64_t id, ucsan_label ptr_label, + ucsan_label id_label, ucsan_label *ret_label) { + if (ptr_label == 0) { + ptr_label = allocate_label(); + check_label(ptr_label); + } + ucsan_label_info *info = get_label_info(ptr_label); + internal_memset(info, 0, sizeof(*info)); + info->common.op = OP_FREE; + *ret_label = ptr_label; + return ptr; +} + } // extern "C" From ccffb55ae02076d181669574cfcbaa87aec12394 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 17 Mar 2026 18:43:52 -0700 Subject: [PATCH 059/139] exit on unreachable --- instrumentation/UCSanPass.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 032c6164..1965ed8a 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -584,6 +584,7 @@ class UCSanVisitor : public InstVisitor { void visitGetElementPtrInst(GetElementPtrInst &GEPI); void visitSelectInst(SelectInst &I); void visitPHINode(PHINode &PN); + void visitUnreachableInst(UnreachableInst &I); // void visitIntrinsicInst(IntrinsicInst &I); private: @@ -2778,6 +2779,13 @@ void UCSanVisitor::visitPHINode(PHINode &PN) { UF.setShadow(&PN, ShadowPN); } +void UCSanVisitor::visitUnreachableInst(UnreachableInst &I) { + IRBuilder<> IRB(&I); + Value *ExitCall = IRB.CreateCall(UF.UC.ExitFn, + {ConstantInt::get(UF.UC.Int32Ty, 0)}); + UF.UC.markNosanitize(ExitCall); +} + bool UCSan::initializeModule(Module &M) { Triple TargetTriple(M.getTargetTriple()); if (TargetTriple.getOS() != Triple::Linux) From 394dba3270b333b20f0534f1c5cbc0be471dbb5e Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 17 Mar 2026 18:44:10 -0700 Subject: [PATCH 060/139] fix args --- runtime/dfsan/dfsan_custom.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/dfsan/dfsan_custom.cpp b/runtime/dfsan/dfsan_custom.cpp index 337c6d9a..b7dd31c4 100644 --- a/runtime/dfsan/dfsan_custom.cpp +++ b/runtime/dfsan/dfsan_custom.cpp @@ -3669,7 +3669,7 @@ __dfsw_fseeko64(FILE *stream, off64_t offset, int whence, dfsan_label stream_lab /// for assertion and assumption SANITIZER_INTERFACE_ATTRIBUTE void -__dfsw_assert_cond(uint8_t result, dfsan_label result_label, uint64_t id) { +__dfsw_assert_cond(uint8_t result, uint64_t id, dfsan_label result_label, dfsan_label id_label) { if (!result) { AOUT("ERROR: assertion %lu failure: result %d, label %d\n", id, result, result_label); } @@ -3677,7 +3677,7 @@ __dfsw_assert_cond(uint8_t result, dfsan_label result_label, uint64_t id) { } SANITIZER_INTERFACE_ATTRIBUTE void -__dfsw_assume_cond(uint8_t result, dfsan_label result_label, uint64_t id) { +__dfsw_assume_cond(uint8_t result, uint64_t id, dfsan_label result_label, dfsan_label id_label) { if (result_label) { AOUT("WARNING: assumption label is concrete for id %lu\n", id); } From 1a921370bd1561353e2e838ae4f28d51bd063e9a Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 17 Mar 2026 18:45:10 -0700 Subject: [PATCH 061/139] ugly hack, allow OP_NONE, input to pass --- runtime/dfsan/ucsan.cpp | 8 ++++++++ runtime/dfsan/ucsan_custom.cpp | 22 ++++++++++++++++------ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index 6f6d03f2..ffc36661 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -841,10 +841,18 @@ ucsan_label ucsan_combine_label(ucsan_label l1, ucsan_label l2) { if (l1 != 0) { ucsan_label_info *info = get_label_info(l1); l1_is_ptr = info && (info->common.op == OP_EXTERNAL || info->common.op == OP_ALLOCA); + if (info->common.op == OP_NONE && !l2) { + // l1 is under-constrained and l2 is concrete, allow it + return l1; + } } if (l2 != 0) { ucsan_label_info *info = get_label_info(l2); l2_is_ptr = info && (info->common.op == OP_EXTERNAL || info->common.op == OP_ALLOCA); + if (info->common.op == OP_NONE && !l1) { + // l2 is under-constrained and l1 is concrete, allow it + return l2; + } } // Warn only if pointer is combined with non-zero non-pointer if (l1_is_ptr && l2 != 0 && !l2_is_ptr) { diff --git a/runtime/dfsan/ucsan_custom.cpp b/runtime/dfsan/ucsan_custom.cpp index 88d834a3..17d37c42 100644 --- a/runtime/dfsan/ucsan_custom.cpp +++ b/runtime/dfsan/ucsan_custom.cpp @@ -521,12 +521,22 @@ __dfsw_assume_allocated(void *ptr, size_t size, uint64_t id, ucsan_label ptr_lab *ret_label = ptr_label; } else { // external ptr - void *new_ptr = __dfsw_malloc(size, size_label, ret_label); - if (new_ptr) { - void *old_ptr = ucsan_check_pointer(ptr, ptr_label, size, true); - ucsan_label dummy; - __dfsw_memcpy(new_ptr, old_ptr, size, *ret_label, ptr_label, size_label, &dummy); - return new_ptr; + ucsan_label_info *info = get_label_info(ptr_label); + ucsan_ptr_info *ptr_info = to_ptr_info(info); + // for external ptr, we need to convert it back to pseudo ptr + ptr = ptr_info->pseudo_base; + if (size_label == 0) { + // size is concrete, we set a concrete bound by malloc + void *new_ptr = __dfsw_malloc(size, size_label, ret_label); + if (new_ptr) { + void *old_ptr = ucsan_check_pointer(ptr, ptr_label, size, true); + ucsan_label dummy; + __dfsw_memcpy(new_ptr, old_ptr, size, *ret_label, ptr_label, size_label, &dummy); + return new_ptr; + } + } else { + // symbolic size, keep it unbounded? + *ret_label = ptr_label; } } From 5fbcbc4d5335c58ab51a771cceb828c7ddee59c3 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 17 Mar 2026 22:48:49 -0700 Subject: [PATCH 062/139] preserve noreturn semantics in __external$ wrappers For noreturn functions like png_error, the dangle wrapper now calls exit() + unreachable instead of ret void, and inherits the noreturn attribute. Co-Authored-By: Claude Opus 4.6 --- instrumentation/UCSanPass.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 1965ed8a..46988393 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -1341,6 +1341,11 @@ Function *UCSan::buildDangleFunction(Function *F) { SmallVector Indices; Value *RetVal = wrapRetvalRecursive(RT, retvaltls, Indices); IRB.CreateRet(RetVal); + } else if (F->doesNotReturn()) { + NewF->addFnAttr(Attribute::NoReturn); + auto *ExitCall = IRB.CreateCall(ExitFn, {ConstantInt::get(Int32Ty, 0)}); + markNosanitize(ExitCall); + IRB.CreateUnreachable(); } else { IRB.CreateRetVoid(); } From f228893d89f863d133fdafcbc5c44fee3575d1e5 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Wed, 18 Mar 2026 19:50:15 -0700 Subject: [PATCH 063/139] send assertion results as events --- runtime/dfsan/dfsan_custom.cpp | 8 +++++++- runtime/dfsan/ucsan_custom.cpp | 24 ++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/runtime/dfsan/dfsan_custom.cpp b/runtime/dfsan/dfsan_custom.cpp index b7dd31c4..2f122c09 100644 --- a/runtime/dfsan/dfsan_custom.cpp +++ b/runtime/dfsan/dfsan_custom.cpp @@ -3668,12 +3668,18 @@ __dfsw_fseeko64(FILE *stream, off64_t offset, int whence, dfsan_label stream_lab /// for assertion and assumption +SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_event_addr, + uint16_t, uint32_t, uint64_t, void*, uint32_t) {} + SANITIZER_INTERFACE_ATTRIBUTE void __dfsw_assert_cond(uint8_t result, uint64_t id, dfsan_label result_label, dfsan_label id_label) { if (!result) { AOUT("ERROR: assertion %lu failure: result %d, label %d\n", id, result, result_label); + __taint_trace_event_addr(0, 103, id, (void *)__builtin_return_address(0), 8); + } else { + __taint_trace_event_addr(0, 103, id, (void *)__builtin_return_address(0), 9); + __taint_trace_cond(result_label, 1, UndefinedCheck, ub_assertion_failure); } - __taint_trace_cond(result_label, 1, UndefinedCheck, ub_assertion_failure); } SANITIZER_INTERFACE_ATTRIBUTE void diff --git a/runtime/dfsan/ucsan_custom.cpp b/runtime/dfsan/ucsan_custom.cpp index 17d37c42..5ce98f74 100644 --- a/runtime/dfsan/ucsan_custom.cpp +++ b/runtime/dfsan/ucsan_custom.cpp @@ -30,6 +30,10 @@ extern "C" { void __taint_set_label(u32 label, void *addr, u64 size); dfsan_label __taint_get_ptr_bounds_label(void *ptr, u64 lower, u64 upper); void __taint_set_retval_tls(u32 index, dfsan_label label, u32 size_in_bits); + + // event + void __taint_trace_event_addr(__ucsan::ucsan_label label, uint32_t event_id, + uint64_t info, void* addr, uint32_t info2); } // Simple passthrough wrappers for malloc family @@ -379,40 +383,51 @@ unsigned long __dfsw__copy_from_user(void *to, const void *from, unsigned long n return 0; } +/// assertion and assumption interfaces + SANITIZER_INTERFACE_ATTRIBUTE void __dfsw_assert_allocated(void *ptr, size_t size, uint64_t id, ucsan_label ptr_label, ucsan_label size_label, ucsan_label id_label) { if (ptr_label == 0) { UCSAN_OUT("ERROR: assertion %lu failure non-symbolic label: ptr %p\n", id, ptr); + __taint_trace_event_addr(0, EVENT_ASSERTION, id, ptr, ASSERTION_NONE_SYMBOLIC); return; } ucsan_label_info *info = get_label_info(ptr_label); ucsan_obj_info *obj = to_obj_info(info); if (obj->op != OP_ALLOCA) { UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, label %d, op %d\n", id, ptr, ptr_label, obj->op); + __taint_trace_event_addr(ptr_label, EVENT_ASSERTION, id, ptr, ASSERTION_ALLOCATED_FAILED); return; } if (ptr != obj->real_ptr) { UCSAN_OUT("ERROR: assertion %lu failure: ptr %p does not match real_ptr %p\n", id, ptr, obj->real_ptr); + __taint_trace_event_addr(ptr_label, EVENT_ASSERTION, id, ptr, ASSERTION_ALLOCATED_FAILED); return; } if (size > obj->upper_bound) { UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, label %d, size %lu exceeds upper bound %u\n", id, ptr, ptr_label, size, obj->upper_bound); + __taint_trace_event_addr(ptr_label, EVENT_ASSERTION, id, ptr, ASSERTION_ALLOCATED_FAILED); } + __taint_trace_event_addr(ptr_label, EVENT_ASSERTION, id, ptr, ASSERTION_ALLOCATED_SUCCESS); } SANITIZER_INTERFACE_ATTRIBUTE void __dfsw_assert_freed(void *ptr, uint64_t id, ucsan_label ptr_label, ucsan_label id_label) { if (ptr_label == 0) { UCSAN_OUT("ERROR: assertion %lu failure non-symbolic label: ptr %p, label %d\n", id, ptr, ptr_label); + __taint_trace_event_addr(0, EVENT_ASSERTION, id, ptr, ASSERTION_NONE_SYMBOLIC); return; } ucsan_label_info *info = get_label_info(ptr_label); ucsan_obj_info *obj = to_obj_info(info); if (obj->op != OP_FREE) { UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, label %d, op %d\n", id, ptr, ptr_label, obj->op); + __taint_trace_event_addr(ptr_label, EVENT_ASSERTION, id, ptr, ASSERTION_FREED_FAILED); + return; } + __taint_trace_event_addr(ptr_label, EVENT_ASSERTION, id, ptr, ASSERTION_FREED_SUCCESS); } SANITIZER_INTERFACE_ATTRIBUTE void @@ -421,25 +436,34 @@ __dfsw_assert_init(void *ptr, size_t size, uint64_t id, ucsan_label ptr_label, // check ptr is allocated and the size is in bound if (ptr_label == 0) { UCSAN_OUT("ERROR: assertion %lu failure non-symbolic label: ptr %p, label %d\n", id, ptr, ptr_label); + __taint_trace_event_addr(0, EVENT_ASSERTION, id, ptr, ASSERTION_NONE_SYMBOLIC); return; } ucsan_label_info *info = get_label_info(ptr_label); ucsan_obj_info *obj = to_obj_info(info); if (obj->op != OP_ALLOCA) { UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, label %d, op %d\n", id, ptr, ptr_label, obj->op); + __taint_trace_event_addr(ptr_label, EVENT_ASSERTION, id, ptr, ASSERTION_INIT_FAILED); return; } if (size > obj->upper_bound) { UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, label %d, size %lu exceeds upper bound %u\n", id, ptr, ptr_label, size, obj->upper_bound); + __taint_trace_event_addr(ptr_label, EVENT_ASSERTION, id, ptr, ASSERTION_INIT_FAILED); return; } + bool success = true; ucsan_label *shadow = ucsan_shadow_for(ptr); for (size_t i = 0; i < size; i++) { if (shadow[i] == kUninitializedLabel) { UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, index %lu, label %d\n", id, ptr, i, shadow[i]); + __taint_trace_event_addr(ptr_label, EVENT_ASSERTION, id, (char *)ptr + i, ASSERTION_INIT_FAILED); + success = false; } } + if (success) { + __taint_trace_event_addr(ptr_label, EVENT_ASSERTION, id, ptr, ASSERTION_INIT_SUCCESS); + } } SANITIZER_INTERFACE_ATTRIBUTE void From 0cfc435fb7251b9e74aa641dc1c3cb474d770cda Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Wed, 18 Mar 2026 19:56:47 -0700 Subject: [PATCH 064/139] forget header --- runtime/dfsan/ucsan.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/runtime/dfsan/ucsan.h b/runtime/dfsan/ucsan.h index db287558..0bd3ccbc 100644 --- a/runtime/dfsan/ucsan.h +++ b/runtime/dfsan/ucsan.h @@ -208,6 +208,21 @@ enum ucsan_event_type { EVENT_LAZY_INIT = 100, EVENT_USAGE_CITE = 101, EVENT_EXTENSION = 102, + EVENT_ASSERTION = 103, + EVENT_TYPE_BIND = 104, +}; + +enum ucsan_assertion_type { + ASSERTION_NONE = 0, + ASSERTION_NONE_SYMBOLIC = 1, + ASSERTION_ALLOCATED_FAILED = 2, + ASSERTION_ALLOCATED_SUCCESS = 3, + ASSERTION_FREED_FAILED = 4, + ASSERTION_FREED_SUCCESS = 5, + ASSERTION_INIT_FAILED = 6, + ASSERTION_INIT_SUCCESS = 7, + ASSERTION_COND_FAILED = 8, + ASSERTION_COND_SUCCESS = 9, }; //===----------------------------------------------------------------------===// From e6375f3547bbd2815688daf2055626ead708a2d4 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Wed, 18 Mar 2026 21:00:32 -0700 Subject: [PATCH 065/139] add compile-time type table and type_id plumbing for seed-to-unittest - UCSanPass: assign type IDs at each checkPointer call site, emit sidecar JSON type table (-ucsan-type-table / KO_TYPE_TABLE) with struct field names from debug info, stable builtin IDs (1-15), and multi-file support (load/merge across modules) - Runtime: add type_id parameter to ucsan_check_pointer, send EVENT_TYPE_BIND alongside EVENT_LAZY_INIT and EVENT_EXTENSION, replace size with type_id in EVENT_USAGE_CITE - ko_clang: forward KO_TYPE_TABLE env var as -ucsan-type-table Co-Authored-By: Claude Opus 4.6 --- compiler/ko_clang.c | 6 + instrumentation/UCSanPass.cpp | 339 +++++++++++++++++++++++++++++++-- runtime/dfsan/ucsan.cpp | 24 ++- runtime/dfsan/ucsan.h | 6 +- runtime/dfsan/ucsan_custom.cpp | 2 +- 5 files changed, 346 insertions(+), 31 deletions(-) diff --git a/compiler/ko_clang.c b/compiler/ko_clang.c index 26e25db1..371ace16 100644 --- a/compiler/ko_clang.c +++ b/compiler/ko_clang.c @@ -296,6 +296,12 @@ static void add_ucsan_pass() { cc_params[cc_par_cnt++] = alloc_printf("-ucsan-dump-cfg=%s", uscan_cfg); } + const char *type_table = getenv("KO_TYPE_TABLE"); + if (type_table) { + cc_params[cc_par_cnt++] = "-mllvm"; + cc_params[cc_par_cnt++] = alloc_printf("-ucsan-type-table=%s", type_table); + } + if (!use_ucsan_only) { // TaintPass will run after UCSanPass cc_params[cc_par_cnt++] = "-mllvm"; diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 46988393..99f38b98 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -79,10 +79,16 @@ #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/DepthFirstIterator.h" #include "llvm/Analysis/ValueTracking.h" +#include "llvm/IR/DebugInfo.h" +#include "llvm/IR/DebugInfoMetadata.h" +#include "llvm/BinaryFormat/Dwarf.h" +#include "llvm/Support/JSON.h" +#include "llvm/Support/raw_ostream.h" #include #include #include #include +#include using namespace llvm; @@ -114,6 +120,10 @@ static cl::opt ClWithTaintPass( cl::desc("TaintPass will run after UCSanPass, defer taint custom functions"), cl::Hidden, cl::init(false)); +static cl::opt ClTypeTable("ucsan-type-table", + cl::desc("Emit type table JSON to file (loaded/appended across modules)"), + cl::Hidden); + // The ABI list files control how shadow parameters are passed. static cl::list ClABIListFiles( "ucsan-abilist", @@ -408,6 +418,30 @@ class UCSan { UCSanABIList ABIList; AttributeMask ReadOnlyNoneAttrs; + // Type ID assignment for sidecar type table + std::map TypeIDMap; // type key -> type_id + std::map TypeIDToType; // type_id -> LLVM Type* + std::map LoadedTypes; // type_id -> JSON from previous modules + // Builtin type IDs (fixed across modules): + // 1=i1, 2=i8, 3=i16, 4=i32, 5=i64, 6=float, 7=double + static const uint32_t kFirstDynamicTypeID = 16; // IDs 1-15 reserved for builtins + uint32_t NextTypeID = kFirstDynamicTypeID; + + void initBuiltinTypeIDs(); + + // Entry function arg info for type table + struct ArgInfo { + std::string name; + uint32_t type_id; + }; + std::string EntryFunctionName; + std::vector EntryArgs; + + uint32_t getOrCreateTypeID(Type *T); + std::string getTypeKey(Type *T); + void emitTypeTable(); + void loadTypeTable(); + void initializeRuntimeFunctions(Module &M); void initializeCustomFunctionTypes(); bool loadMetadata(); @@ -535,7 +569,8 @@ struct UCSanFunction { /// SS(Addr, PS) = SS(Addr, PS) void storeShadow(Value *Addr, uint64_t Size, Align Align, Value *Shadow, Type *Ty, Instruction *Pos); - Value *checkPointer(Value *Ptr, Value *Size, bool dereference, IRBuilder<> &IRB); + Value *checkPointer(Value *Ptr, Value *Size, bool dereference, IRBuilder<> &IRB, + uint32_t TypeID = 0); UCSanFunction(UCSan &UC, Function *F) : UC(UC), F(F) { @@ -598,10 +633,10 @@ class UCSanVisitor : public InstVisitor { void UCSan::initializeRuntimeFunctions(Module &M) { Function *F = nullptr; - // Pointer checking: void* ucsan_check_pointer(void*, i16, i64, i1) + // Pointer checking: void* ucsan_check_pointer(void*, i16, i64, i1, i32) UCCheckPointerFnTy = FunctionType::get( VoidPtrTy, - {VoidPtrTy, PrimitiveShadowTy, Int64Ty, Int1Ty}, + {VoidPtrTy, PrimitiveShadowTy, Int64Ty, Int1Ty, Int32Ty}, false); UCCheckPointerFn = M.getOrInsertFunction("ucsan_check_pointer", UCCheckPointerFnTy); F = dyn_cast(UCCheckPointerFn.getCallee()->stripPointerCasts()); @@ -811,6 +846,239 @@ bool UCSan::loadMetadata() { return true; } +//===----------------------------------------------------------------------===// +// Type ID assignment for sidecar type table +//===----------------------------------------------------------------------===// + +void UCSan::initBuiltinTypeIDs() { + // Reserve fixed IDs for primitive types so they're stable across modules + auto assign = [&](uint32_t ID, Type *T) { + std::string Key = getTypeKey(T); + TypeIDMap[Key] = ID; + TypeIDToType[ID] = T; + }; + assign(1, Int1Ty); + assign(2, Int8Ty); + assign(3, Int16Ty); + assign(4, Int32Ty); + assign(5, Int64Ty); + assign(6, Type::getFloatTy(*Ctx)); + assign(7, Type::getDoubleTy(*Ctx)); + assign(8, VoidPtrTy); +} + +std::string UCSan::getTypeKey(Type *T) { + if (auto *ST = dyn_cast(T)) { + if (ST->hasName()) + return ST->getName().str(); + } + // For non-named types, use the LLVM type string + std::string Key; + raw_string_ostream OS(Key); + T->print(OS); + return Key; +} + +uint32_t UCSan::getOrCreateTypeID(Type *T) { + std::string Key = getTypeKey(T); + auto It = TypeIDMap.find(Key); + if (It != TypeIDMap.end()) + return It->second; + uint32_t ID = NextTypeID++; + TypeIDMap[Key] = ID; + TypeIDToType[ID] = T; + // Recursively assign IDs to embedded sub-types (struct fields, array elements) + // Don't chase through pointers — those get their own checkPointer at runtime + if (auto *ST = dyn_cast(T)) { + for (unsigned I = 0, N = ST->getNumElements(); I < N; ++I) + getOrCreateTypeID(ST->getElementType(I)); + } else if (auto *AT = dyn_cast(T)) { + getOrCreateTypeID(AT->getElementType()); + } + return ID; +} + +void UCSan::loadTypeTable() { + if (ClTypeTable.empty()) return; + + auto BufOrErr = llvm::MemoryBuffer::getFile(ClTypeTable); + if (!BufOrErr) return; // file doesn't exist yet, that's ok + + auto Parsed = json::parse(BufOrErr.get()->getBuffer()); + if (!Parsed) { + errs() << "Warning: failed to parse type table: " << ClTypeTable << "\n"; + return; + } + + auto *Root = Parsed->getAsObject(); + if (!Root) return; + + // Load next_type_id + if (auto NID = Root->getInteger("next_type_id")) + NextTypeID = *NID; + + // Load existing type name->id mappings + if (auto *Types = Root->getObject("types")) { + for (auto &KV : *Types) { + auto *TypeObj = KV.second.getAsObject(); + if (!TypeObj) continue; + auto ID = TypeObj->getInteger("type_id"); + auto Name = TypeObj->getString("key"); + if (ID && Name) { + TypeIDMap[Name->str()] = *ID; + // Preserve the full JSON object for types we can't resolve to LLVM Type* + LoadedTypes[*ID] = json::Object(*TypeObj); + } + } + } +} + +void UCSan::emitTypeTable() { + if (ClTypeTable.empty()) return; + + const DataLayout &DL = Mod->getDataLayout(); + + // Build debug info map: LLVM struct name -> DICompositeType + // StructType::getName() returns e.g. "struct.node" + // DICompositeType::getName() returns e.g. "node" + std::map DebugStructMap; + DebugInfoFinder DIF; + DIF.processModule(*Mod); + for (auto *Ty : DIF.types()) { + if (auto *CT = dyn_cast(Ty)) { + if (CT->getTag() == dwarf::DW_TAG_structure_type && !CT->getName().empty()) { + // Map both "struct." and just "" for flexible matching + DebugStructMap["struct." + CT->getName().str()] = CT; + } + } + } + + json::Object Root; + Root["next_type_id"] = NextTypeID; + Root["entry_function"] = EntryFunctionName; + + // Entry args - also try to get arg names from debug info + json::Array ArgsArr; + // Find entry function's debug info for arg names + std::vector EntryArgNames; + if (Function *EntryF = Mod->getFunction(EntryFunctionName)) { + if (auto *SP = EntryF->getSubprogram()) { + for (auto *N : SP->getRetainedNodes()) { + if (auto *DV = dyn_cast(N)) { + if (DV->isParameter()) { + unsigned Idx = DV->getArg() - 1; // DILocalVariable arg is 1-based + if (Idx >= EntryArgNames.size()) + EntryArgNames.resize(Idx + 1); + EntryArgNames[Idx] = DV->getName().str(); + } + } + } + } + } + for (unsigned I = 0; I < EntryArgs.size(); ++I) { + json::Object ArgObj; + std::string Name = EntryArgs[I].name; + if (Name.empty() && I < EntryArgNames.size()) + Name = EntryArgNames[I]; + ArgObj["name"] = Name; + ArgObj["type_id"] = EntryArgs[I].type_id; + ArgsArr.push_back(std::move(ArgObj)); + } + Root["args"] = std::move(ArgsArr); + + // Types + json::Object TypesObj; + for (auto &KV : TypeIDToType) { + uint32_t ID = KV.first; + Type *T = KV.second; + json::Object TypeObj; + TypeObj["type_id"] = ID; + TypeObj["key"] = getTypeKey(T); + + if (auto *ST = dyn_cast(T)) { + TypeObj["kind"] = "struct"; + TypeObj["name"] = ST->hasName() ? ST->getName().str() : "(anonymous)"; + if (ST->isSized()) { + const StructLayout *SL = DL.getStructLayout(ST); + TypeObj["size"] = (int64_t)DL.getTypeAllocSize(ST); + + // Look up field names from debug info + DICompositeType *DCT = nullptr; + if (ST->hasName()) { + auto It = DebugStructMap.find(ST->getName().str()); + if (It != DebugStructMap.end()) + DCT = It->second; + } + + json::Array Fields; + for (unsigned I = 0, N = ST->getNumElements(); I < N; ++I) { + json::Object Field; + Field["index"] = I; + Field["offset"] = (int64_t)SL->getElementOffset(I); + Field["size"] = (int64_t)DL.getTypeAllocSize(ST->getElementType(I)); + Field["type_id"] = getOrCreateTypeID(ST->getElementType(I)); + + // Extract field name from debug info + if (DCT) { + auto Elements = DCT->getElements(); + if (I < Elements.size()) { + if (auto *DT = dyn_cast(Elements[I])) { + Field["name"] = DT->getName().str(); + } + } + } + + Fields.push_back(std::move(Field)); + } + TypeObj["fields"] = std::move(Fields); + } + } else if (auto *AT = dyn_cast(T)) { + TypeObj["kind"] = "array"; + TypeObj["num_elements"] = (int64_t)AT->getNumElements(); + TypeObj["element_type_id"] = getOrCreateTypeID(AT->getElementType()); + if (T->isSized()) + TypeObj["size"] = (int64_t)DL.getTypeAllocSize(T); + } else if (auto *PT = dyn_cast(T)) { + TypeObj["kind"] = "pointer"; + TypeObj["size"] = (int64_t)DL.getTypeAllocSize(T); + Type *PointeeTy = PT->getPointerElementType(); + if (PointeeTy->isSized()) + TypeObj["pointee_type_id"] = getOrCreateTypeID(PointeeTy); + else + TypeObj["pointee_type_id"] = 0; + } else { + // Primitive types (integers, floats, etc.) + TypeObj["kind"] = "primitive"; + std::string Name; + raw_string_ostream OS(Name); + T->print(OS); + TypeObj["name"] = Name; + if (T->isSized()) + TypeObj["size"] = (int64_t)DL.getTypeAllocSize(T); + } + + TypesObj[std::to_string(ID)] = std::move(TypeObj); + } + + // Merge in loaded types from previous modules that weren't re-encountered + for (auto &KV : LoadedTypes) { + std::string Key = std::to_string(KV.first); + if (!TypesObj.get(Key)) + TypesObj[Key] = json::Value(json::Object(KV.second)); + } + + Root["types"] = std::move(TypesObj); + + // Write to file + std::error_code EC; + raw_fd_ostream OS(ClTypeTable, EC, sys::fs::OF_Text); + if (EC) { + errs() << "Warning: failed to write type table: " << ClTypeTable << "\n"; + return; + } + OS << json::Value(std::move(Root)); +} + // Helper: Get shadow type for a given type (simplified for standalone UCSan) Type *UCSan::getShadowTy(Value *V) { return getShadowTy(V->getType()); @@ -1390,6 +1658,10 @@ Function *UCSan::buildDriverWrapperFunction(Function *F) { FunctionType *EntryFT = F->getFunctionType(); const DataLayout &DL = Mod->getDataLayout(); + // Record entry function info for type table + EntryFunctionName = F->getName().str(); + EntryArgs.clear(); + // Initialize arguments for the entry point std::vector Args; for (Function::arg_iterator ai = F->arg_begin(), ae = F->arg_end(); ai != ae; ++ai) { @@ -1398,6 +1670,10 @@ Function *UCSan::buildDriverWrapperFunction(Function *F) { ConstantInt *IsPtr = ConstantInt::get(Int8Ty, ai->getType()->isPointerTy()); ConstantInt *InitVal = ConstantInt::get(Int64Ty, 0); + // Record arg type info + uint32_t TypeID = getOrCreateTypeID(ai->getType()); + EntryArgs.push_back({ai->getName().str(), TypeID}); + // Call runtime to create symbolic argument // Returns a pointer that we cast to the appropriate type Value *casted_arg = IRB.CreateCall(UCSetLabelForArgsFn, {ArgNo, ArgSize, IsPtr, InitVal}); @@ -1588,7 +1864,7 @@ TransformedFunction UCSan::getCustomFunctionType(FunctionType *T) { } Value *UCSanFunction::checkPointer(Value *Ptr, Value *Size, bool dereference, - IRBuilder<> &IRB) { + IRBuilder<> &IRB, uint32_t TypeID) { Type *Ty = Ptr->getType(); Value *SPtr = Ptr->stripPointerCasts(); bool cacheable = isa(Size); @@ -1679,9 +1955,10 @@ Value *UCSanFunction::checkPointer(Value *Ptr, Value *Size, bool dereference, UC.markNosanitize(ExtSize); } ConstantInt *Deref = ConstantInt::get(UC.Int1Ty, dereference); + ConstantInt *TypeIDVal = ConstantInt::get(UC.Int32Ty, TypeID); CallInst *NewAddr = IRB.CreateCall( - UC.UCCheckPointerFn, {Addr, Shadow, ExtSize, Deref}); + UC.UCCheckPointerFn, {Addr, Shadow, ExtSize, Deref, TypeIDVal}); // UC.markNosanitize(NewAddr); // don't mark as nonsanitize Value *Checked = NewAddr; @@ -1761,10 +2038,11 @@ void UCSanVisitor::visitLoadInst(LoadInst &LI) { } } ConstantInt *Size = ConstantInt::get(UF.UC.Int64Ty, StoreSize); + uint32_t TypeID = UF.UC.getOrCreateTypeID(Ty); // Check and replace pointer IRBuilder<> IRB(&LI); - Ptr = UF.checkPointer(Ptr, Size, true, IRB); + Ptr = UF.checkPointer(Ptr, Size, true, IRB, TypeID); LI.setOperand(0, Ptr); Value *Shadow = UF.loadShadow(Ptr, StoreSize, LI.getAlign(), Ty, &LI); @@ -1788,13 +2066,14 @@ void UCSanVisitor::visitStoreInst(StoreInst &SI) { Value *Ptr = SI.getPointerOperand(); ConstantInt *Size = ConstantInt::get(UF.UC.Int64Ty, StoreSize); + Value *Val = SI.getValueOperand(); + Type *Ty = Val->getType(); + uint32_t TypeID = UF.UC.getOrCreateTypeID(Ty); + // Check and replace pointer IRBuilder<> IRB(&SI); - Ptr = UF.checkPointer(Ptr, Size, true, IRB); + Ptr = UF.checkPointer(Ptr, Size, true, IRB, TypeID); SI.setOperand(SI.getPointerOperandIndex(), Ptr); - - Value *Val = SI.getValueOperand(); - Type *Ty = Val->getType(); Value *Shadow = UF.getShadow(Val); UF.storeShadow(Ptr, StoreSize, SI.getAlign(), Shadow, Ty, &SI); @@ -1900,12 +2179,15 @@ void UCSanVisitor::visitGetElementPtrInst(GetElementPtrInst &GEPI) { !isa(Ptr->stripPointerCasts())) { IRBuilder<> IRB(&GEPI); const DataLayout &DL = getDataLayout(); + Type *SrcElemTy = GEPI.getSourceElementType(); Value *Size = ConstantInt::get(UF.UC.Int64Ty, - DL.getTypeAllocSize(GEPI.getSourceElementType())); + DL.getTypeAllocSize(SrcElemTy)); + uint32_t TypeID = UF.UC.getOrCreateTypeID(SrcElemTy); Value *Addr = IRB.CreateBitCast(Ptr, UF.UC.VoidPtrTy); if (Addr != Ptr) UF.UC.markNosanitize(Addr); Value *Checked = IRB.CreateCall(UF.UC.UCCheckPointerFn, - { Addr, UF.getShadow(Ptr), Size, ConstantInt::get(UF.UC.Int1Ty, false) }); + { Addr, UF.getShadow(Ptr), Size, ConstantInt::get(UF.UC.Int1Ty, false), + ConstantInt::get(UF.UC.Int32Ty, TypeID) }); UF.UC.markNosanitize(Checked); UF.CheckedPtrSet.insert(Ptr); } @@ -1940,11 +2222,14 @@ void UCSanVisitor::visitInlineAsm(InlineAsm *IA, CallBase &CB) { if (!isa(Arg) && !isa(Arg->stripPointerCasts())) { unsigned ObjSize = 0; - if (Arg->getType()->getPointerElementType()->isSized()) { - ObjSize = DL.getTypeAllocSize(Arg->getType()->getPointerElementType()); + Type *PointeeTy = Arg->getType()->getPointerElementType(); + uint32_t TypeID = 0; + if (PointeeTy->isSized()) { + ObjSize = DL.getTypeAllocSize(PointeeTy); + TypeID = UF.UC.getOrCreateTypeID(PointeeTy); } Value *Size = ConstantInt::get(UF.UC.Int64Ty, ObjSize); - Value *Ptr = UF.checkPointer(Arg, Size, true, IRB); // dereference pointer + Value *Ptr = UF.checkPointer(Arg, Size, true, IRB, TypeID); // dereference pointer CB.setArgOperand(ArgIdx, Ptr); } } @@ -2349,9 +2634,11 @@ bool UCSanVisitor::visitWrappedCallBase(Function *F, CallBase &CB) { for (unsigned N = FT->getNumParams(); N != 0; ++I, --N) { // skip nullptr if ((*I)->getType()->isPointerTy() && !isa(*I)) { + Type *PointeeTy = (*I)->getType()->getPointerElementType(); Value *sizeArg = ConstantInt::get(UF.UC.Int64Ty, - DL.getTypeAllocSize((*I)->getType()->getPointerElementType())); - Value *rptr = UF.checkPointer(*I, sizeArg, true, IRB); + DL.getTypeAllocSize(PointeeTy)); + uint32_t TypeID = UF.UC.getOrCreateTypeID(PointeeTy); + Value *rptr = UF.checkPointer(*I, sizeArg, true, IRB, TypeID); CB.setArgOperand(FT->getNumParams() - N, rptr); } } @@ -2393,10 +2680,12 @@ bool UCSanVisitor::visitWrappedCallBase(Function *F, CallBase &CB) { if (isa(T)) { // Check pointer arguments before passing to custom function auto DL = getDataLayout(); + Type *PointeeTy = T->getPointerElementType(); Value *sizeArg = ConstantInt::get(UF.UC.Int64Ty, - DL.getTypeAllocSize(T->getPointerElementType())); - Value *rptr = UF.checkPointer(*I, sizeArg, true, IRB); + DL.getTypeAllocSize(PointeeTy)); + uint32_t TypeID = UF.UC.getOrCreateTypeID(PointeeTy); + Value *rptr = UF.checkPointer(*I, sizeArg, true, IRB, TypeID); Args.push_back(rptr); } else { Args.push_back(*I); @@ -2603,9 +2892,10 @@ void UCSanVisitor::visitAtomicRMWInst(AtomicRMWInst &I) { Type *Ty = I.getType(); unsigned StoreSize = DL.getTypeStoreSize(Ty); ConstantInt *Size = ConstantInt::get(UF.UC.Int64Ty, StoreSize); + uint32_t TypeID = UF.UC.getOrCreateTypeID(Ty); IRBuilder<> IRB(&I); - Ptr = UF.checkPointer(Ptr, Size, true, IRB); + Ptr = UF.checkPointer(Ptr, Size, true, IRB, TypeID); I.setOperand(0, Ptr); // FIXME: AtomicRMWInst should not operate on ptrs @@ -2838,6 +3128,12 @@ bool UCSan::initializeModule(Module &M) { } initializeCustomFunctionTypes(); + // Initialize builtin type IDs (fixed across modules) + initBuiltinTypeIDs(); + + // Load existing type table (for multi-file compilation) + loadTypeTable(); + // Initialize ABIList from command-line abilist files if (!ClABIListFiles.empty()) { std::vector AllABIListFiles(ClABIListFiles.begin(), ClABIListFiles.end()); @@ -3113,6 +3409,9 @@ bool UCSan::runImpl(Module &M) { } } + // Emit type table JSON + emitTypeTable(); + return true; } diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index ffc36661..8f79783f 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -336,7 +336,7 @@ static inline bool is_writeable(void *p) { // Object Lookup //===----------------------------------------------------------------------===// -UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr, uint32_t *ret_object_id) { +UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr, uint32_t *ret_object_id, uint32_t type_id) { if (label) { ucsan_label_info *label_info = get_label_info(label); uint32_t object_id = 0; @@ -410,6 +410,10 @@ UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr uint64_t info = ((uint64_t)parent_obj_id << 32) | object_id; __taint_trace_event_addr(label, EVENT_LAZY_INIT, info, return_addr, (uint32_t)offset_in_parent); + // Send type binding: type_id for the newly created object + if (type_id != 0) { + __taint_trace_event_addr(label, EVENT_TYPE_BIND, object_id, return_addr, type_id); + } } if (ret_object_id) *ret_object_id = object_id; @@ -462,8 +466,8 @@ object_info create_label_from_super_object(size_t size, bool is_pointer) { using namespace __ucsan; extern "C" SANITIZER_INTERFACE_ATTRIBUTE -void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool dereferencing) { - UCSAN_OUT("%p: label: %d, size: %zu, dereferencing: %d\n", p, label, size, dereferencing); +void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool dereferencing, uint32_t type_id) { + UCSAN_OUT("%p: label: %d, size: %zu, dereferencing: %d, type_id: %u\n", p, label, size, dereferencing, type_id); __ucsan_null_deref_flag = nullptr; // Handle unlabeled or special labels @@ -499,10 +503,10 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere ucsan_label_info *info = get_label_info(first_label); // globals are from super object, so object_id is always 0 int64_t offset = to_byte_info(info)->offset; - if (offset > INT32_MAX || offset < INT32_MIN || size > UINT32_MAX) { - UCSAN_OUT("WARNING: global variable offset (%ld) or size (%lu) too large\n", offset, size); + if (offset > INT32_MAX || offset < INT32_MIN) { + UCSAN_OUT("WARNING: global variable offset (%ld) too large\n", offset); } else { - __taint_trace_event_addr(*(ucsan_shadow_for(p)), EVENT_USAGE_CITE, size, + __taint_trace_event_addr(*(ucsan_shadow_for(p)), EVENT_USAGE_CITE, type_id, __builtin_return_address(0), (uint32_t)offset); } } @@ -622,7 +626,7 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere uint32_t object_id; void *return_addr = __builtin_return_address(0); - auto& obj = lookup_object(label, 0, return_addr, &object_id); + auto& obj = lookup_object(label, 0, return_addr, &object_id, type_id); size_t object_size = obj.data.size(); UCSAN_OUT("Find object_id: %u (size = %zu) for label %u, addr %p\n", @@ -725,10 +729,14 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere new_lower_bound = -desired_offset; UCSAN_OUT("Extended lower bound: %lu, new lower bound: %lu\n", extended_lower, new_lower_bound); - if (ucsan_flags().trace_object) + if (ucsan_flags().trace_object) { __taint_trace_event_addr(label, EVENT_EXTENSION, object_id, __builtin_return_address(0), (uint32_t)new_lower_bound); + if (type_id != 0) + __taint_trace_event_addr(label, EVENT_TYPE_BIND, object_id, + __builtin_return_address(0), type_id); + } } uint64_t new_size = new_lower_bound + Max(desired_offset + (int64_t)size, diff --git a/runtime/dfsan/ucsan.h b/runtime/dfsan/ucsan.h index 0bd3ccbc..f9f4e3de 100644 --- a/runtime/dfsan/ucsan.h +++ b/runtime/dfsan/ucsan.h @@ -293,7 +293,8 @@ struct object_info { }; // Look up or create an object for a given pointer label -UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr, uint32_t *ret_object_id = nullptr); +UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr, + uint32_t *ret_object_id = nullptr, uint32_t type_id = 0); // Create a label from the super object (object 0) object_info create_label_from_super_object(size_t size, bool is_pointer = false); @@ -335,9 +336,10 @@ extern void* __ucsan_null_deref_flag; // @param label: the ucsan label for the pointer // @param size: access size in bytes // @param dereferencing: true if this is a dereference (load/store) +// @param type_id: compile-time type ID from type table (0 = unknown) // @return: resolved real pointer (may differ from p for pseudo-pointers) SANITIZER_INTERFACE_ATTRIBUTE -void* ucsan_check_pointer(void* p, __ucsan::ucsan_label label, size_t size, bool dereferencing); +void* ucsan_check_pointer(void* p, __ucsan::ucsan_label label, size_t size, bool dereferencing, uint32_t type_id); // Check pointer argument for use-before-initialization SANITIZER_INTERFACE_ATTRIBUTE diff --git a/runtime/dfsan/ucsan_custom.cpp b/runtime/dfsan/ucsan_custom.cpp index 5ce98f74..da1d9ae5 100644 --- a/runtime/dfsan/ucsan_custom.cpp +++ b/runtime/dfsan/ucsan_custom.cpp @@ -553,7 +553,7 @@ __dfsw_assume_allocated(void *ptr, size_t size, uint64_t id, ucsan_label ptr_lab // size is concrete, we set a concrete bound by malloc void *new_ptr = __dfsw_malloc(size, size_label, ret_label); if (new_ptr) { - void *old_ptr = ucsan_check_pointer(ptr, ptr_label, size, true); + void *old_ptr = ucsan_check_pointer(ptr, ptr_label, size, true, 0); ucsan_label dummy; __dfsw_memcpy(new_ptr, old_ptr, size, *ret_label, ptr_label, size_label, &dummy); return new_ptr; From 104648183c41e88fa8fbd48f319120cdaeb7101f Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 20 Mar 2026 09:35:14 -0700 Subject: [PATCH 066/139] some optimizations: (1) memset -> mmap (2) remove stl (3) static link --- compiler/ko_clang.c | 10 +- runtime/dfsan/dfsan.cpp | 45 +++++--- runtime/dfsan/ucsan.cpp | 245 +++++++++++++++++++++++++++++++++++----- runtime/dfsan/ucsan.h | 86 ++++++++++++-- 4 files changed, 325 insertions(+), 61 deletions(-) diff --git a/compiler/ko_clang.c b/compiler/ko_clang.c index 371ace16..6f54b4ff 100644 --- a/compiler/ko_clang.c +++ b/compiler/ko_clang.c @@ -193,15 +193,15 @@ static void add_runtime() { cc_params[cc_par_cnt++] = alloc_printf("-Wl,-T%s/taint.ld", obj_path); if (is_cxx && !use_native_cxx) { - // cc_params[cc_par_cnt++] = "-Wl,--whole-archive"; + // Instrumented static libc++ for C++ builds cc_params[cc_par_cnt++] = alloc_printf("%s/libc++.a", obj_path); cc_params[cc_par_cnt++] = alloc_printf("%s/libc++abi.a", obj_path); cc_params[cc_par_cnt++] = alloc_printf("%s/libunwind.a", obj_path); - // cc_params[cc_par_cnt++] = "-Wl,--no-whole-archive"; } else { - cc_params[cc_par_cnt++] = "-lc++"; - cc_params[cc_par_cnt++] = "-lc++abi"; - cc_params[cc_par_cnt++] = "-l:libunwind.so"; + // System static libc++ for C builds (avoids shared lib dependency) + cc_params[cc_par_cnt++] = "-l:libc++.a"; + cc_params[cc_par_cnt++] = "-l:libc++abi.a"; + cc_params[cc_par_cnt++] = "-l:libunwind.a"; } cc_params[cc_par_cnt++] = "-lrt"; diff --git a/runtime/dfsan/dfsan.cpp b/runtime/dfsan/dfsan.cpp index 8d3cf245..df86b534 100644 --- a/runtime/dfsan/dfsan.cpp +++ b/runtime/dfsan/dfsan.cpp @@ -1509,9 +1509,9 @@ static inline uptr hash_addr(uptr addr, uptr capacity) { // Grow content map when load factor exceeds 0.7 static void grow_content_map() { uptr new_capacity = content_map_capacity * 2; - typeof(__taint_content_map) new_map = (typeof(__taint_content_map))InternalAlloc( - new_capacity * sizeof(*__taint_content_map)); - internal_memset(new_map, 0, new_capacity * sizeof(*__taint_content_map)); + uptr new_size = RoundUpTo(new_capacity * sizeof(*__taint_content_map), GetPageSizeCached()); + typeof(__taint_content_map) new_map = (typeof(__taint_content_map))MmapOrDie( + new_size, "taint_content_map"); // Rehash existing entries for (uptr i = 0; i < content_map_capacity; i++) { @@ -1524,7 +1524,8 @@ static void grow_content_map() { } } - InternalFree(__taint_content_map); + uptr old_size = RoundUpTo(content_map_capacity * sizeof(*__taint_content_map), GetPageSizeCached()); + UnmapOrDie(__taint_content_map, old_size); __taint_content_map = new_map; content_map_capacity = new_capacity; } @@ -1532,9 +1533,9 @@ static void grow_content_map() { // Grow indexOf map static void grow_indexof_map() { uptr new_capacity = indexof_map_capacity * 2; - typeof(__taint_indexof_map) new_map = (typeof(__taint_indexof_map))InternalAlloc( - new_capacity * sizeof(*__taint_indexof_map)); - internal_memset(new_map, 0, new_capacity * sizeof(*__taint_indexof_map)); + uptr new_size = RoundUpTo(new_capacity * sizeof(*__taint_indexof_map), GetPageSizeCached()); + typeof(__taint_indexof_map) new_map = (typeof(__taint_indexof_map))MmapOrDie( + new_size, "taint_indexof_map"); for (uptr i = 0; i < indexof_map_capacity; i++) { if (__taint_indexof_map[i].addr != 0) { @@ -1546,7 +1547,8 @@ static void grow_indexof_map() { } } - InternalFree(__taint_indexof_map); + uptr old_size = RoundUpTo(indexof_map_capacity * sizeof(*__taint_indexof_map), GetPageSizeCached()); + UnmapOrDie(__taint_indexof_map, old_size); __taint_indexof_map = new_map; indexof_map_capacity = new_capacity; } @@ -1567,18 +1569,16 @@ static void InitializeStringMaps() { // Content map content_map_capacity = capacity; - __taint_content_map = (typeof(__taint_content_map))InternalAlloc( - content_map_capacity * sizeof(*__taint_content_map)); - internal_memset(__taint_content_map, 0, - content_map_capacity * sizeof(*__taint_content_map)); + __taint_content_map = (typeof(__taint_content_map))MmapOrDie( + RoundUpTo(content_map_capacity * sizeof(*__taint_content_map), GetPageSizeCached()), + "taint_content_map"); content_map_count = 0; // IndexOf map indexof_map_capacity = capacity; - __taint_indexof_map = (typeof(__taint_indexof_map))InternalAlloc( - indexof_map_capacity * sizeof(*__taint_indexof_map)); - internal_memset(__taint_indexof_map, 0, - indexof_map_capacity * sizeof(*__taint_indexof_map)); + __taint_indexof_map = (typeof(__taint_indexof_map))MmapOrDie( + RoundUpTo(indexof_map_capacity * sizeof(*__taint_indexof_map), GetPageSizeCached()), + "taint_indexof_map"); indexof_map_count = 0; } @@ -1779,7 +1779,13 @@ static void dfsan_fini() { } } +static bool dfsan_initialized; + static void dfsan_init(int argc, char **argv, char **envp) { + if (dfsan_initialized) + return; + dfsan_initialized = true; + InitializeFlags(); print_debug = flags().debug; @@ -1865,6 +1871,13 @@ static void (*dfsan_init_ptr)(int, char **, char **) = dfsan_init; #endif extern "C" { + +// Called by ucsan_init_internal to ensure dfsan is initialized before the fork server +SANITIZER_INTERFACE_ATTRIBUTE +void __dfsan_ensure_init(int argc, char **argv, char **envp) { + dfsan_init(argc, argv, envp); +} + SANITIZER_INTERFACE_WEAK_DEF(void, InitializeSymSanSolver, void) {} // Default empty implementations (weak) for hooks diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index 8f79783f..ec9b75e8 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -44,6 +44,10 @@ void __taint_trace_global_var(__ucsan::ucsan_label label, uint64_t size, // Forward declaration for UCSan solver initialization (thoroupy backend) extern "C" void InitializeUCSanSolver(); +// Ensure dfsan is initialized before ucsan (weak, no-op when standalone) +extern "C" SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE +void __dfsan_ensure_init(int argc, char **argv, char **envp); + // Forward declarations for SymSan bridge functions // (weak stubs, overridden when linked with SymSan) extern "C" SANITIZER_INTERFACE_ATTRIBUTE @@ -136,6 +140,175 @@ void* __ucsan_null_deref_flag = nullptr; } // extern "C" +//===----------------------------------------------------------------------===// +// Container Implementations (replaces STL) +//===----------------------------------------------------------------------===// + +using namespace __ucsan; +using __sanitizer::MmapOrDie; +using __sanitizer::UnmapOrDie; +using __sanitizer::RoundUpTo; +using __sanitizer::GetPageSizeCached; +using __sanitizer::internal_memcpy; +using __sanitizer::internal_memset; + +void ByteBuffer::destroy() { + if (buf) { + UnmapOrDie(buf, RoundUpTo(cap, GetPageSizeCached())); + buf = nullptr; + } + len = cap = 0; +} + +void ByteBuffer::resize(uint32_t new_size) { + if (new_size > cap) { + uint32_t new_cap = cap ? cap : 16; + while (new_cap < new_size) new_cap *= 2; + uptr old_alloc = RoundUpTo(cap, GetPageSizeCached()); + uptr new_alloc = RoundUpTo(new_cap, GetPageSizeCached()); + if (buf) { + uptr r = internal_mremap(buf, old_alloc, new_alloc, MREMAP_MAYMOVE, nullptr); + if (!internal_iserror(r)) { + buf = (unsigned char *)r; + } else { + unsigned char *new_buf = (unsigned char *)MmapOrDie(new_alloc, "ByteBuffer"); + __builtin_memcpy(new_buf, buf, len); + UnmapOrDie(buf, old_alloc); + buf = new_buf; + } + } else { + buf = (unsigned char *)MmapOrDie(new_alloc, "ByteBuffer"); + } + cap = new_cap; + } + len = new_size; +} + +void ByteBuffer::assign(const unsigned char *src, uint32_t n) { + resize(n); + __builtin_memcpy(buf, src, n); +} + +void ObjectStorage::destroy() { + if (items) { + for (uint32_t i = 0; i < len; i++) + items[i].data.destroy(); + UnmapOrDie(items, RoundUpTo(cap * sizeof(UCSanObject), GetPageSizeCached())); + items = nullptr; + } + len = cap = 0; +} + +void ObjectStorage::resize(uint32_t new_size) { + if (new_size > cap) { + uint32_t new_cap = cap ? cap : 4; + while (new_cap < new_size) new_cap *= 2; + uptr alloc_size = RoundUpTo(new_cap * sizeof(UCSanObject), GetPageSizeCached()); + UCSanObject *new_items = (UCSanObject *)MmapOrDie(alloc_size, "ObjectStorage"); + if (items) { + internal_memcpy(new_items, items, len * sizeof(UCSanObject)); + UnmapOrDie(items, RoundUpTo(cap * sizeof(UCSanObject), GetPageSizeCached())); + } + items = new_items; + cap = new_cap; + } + // Initialize new entries (MmapOrDie zero-fills, but init ByteBuffer explicitly) + for (uint32_t i = len; i < new_size; i++) { + items[i].offset = 0; + items[i].data.init(); + items[i].origin = {0, 0}; + } + len = new_size; +} + +void ObjectStorage::clear() { + for (uint32_t i = 0; i < len; i++) + items[i].data.destroy(); + len = 0; +} + +void ObjectStorage::push_back(const UCSanObject &obj) { + if (len >= cap) { + resize(len + 1); + items[len - 1] = obj; + } else { + items[len++] = obj; + } +} + +UCSanObject& ObjectStorage::emplace_back(const UCSanObject &obj) { + push_back(obj); + return items[len - 1]; +} + +void ObjectMap::init(uint32_t initial_cap) { + cap = initial_cap; + count = 0; + uptr alloc_size = RoundUpTo(cap * sizeof(ObjectMapEntry), GetPageSizeCached()); + entries = (ObjectMapEntry *)MmapOrDie(alloc_size, "ObjectMap"); + // MmapOrDie returns zero-filled, so occupied=0 for all entries +} + +void ObjectMap::destroy() { + if (entries) { + UnmapOrDie(entries, RoundUpTo(cap * sizeof(ObjectMapEntry), GetPageSizeCached())); + entries = nullptr; + } + cap = count = 0; +} + +uint32_t ObjectMap::hash(uint32_t parent_id, int32_t offset) const { + uint64_t key = ((uint64_t)parent_id << 32) | (uint32_t)offset; + key *= 2654435769ULL; + return (uint32_t)(key & (cap - 1)); +} + +uint32_t *ObjectMap::find_val(uint32_t parent_id, int32_t offset) { + if (!entries) return nullptr; + uint32_t h = hash(parent_id, offset); + for (uint32_t i = 0; i < cap; i++) { + uint32_t idx = (h + i) & (cap - 1); + if (!entries[idx].occupied) return nullptr; + if (entries[idx].key.first == parent_id && entries[idx].key.second == offset) + return &entries[idx].value; + } + return nullptr; +} + +void ObjectMap::insert(uint32_t parent_id, int32_t offset, uint32_t value) { + if (count * 10 > cap * 7) grow(); + uint32_t h = hash(parent_id, offset); + for (;;) { + uint32_t idx = h & (cap - 1); + if (!entries[idx].occupied) { + entries[idx].key = {parent_id, offset}; + entries[idx].value = value; + entries[idx].occupied = 1; + count++; + return; + } + if (entries[idx].key.first == parent_id && entries[idx].key.second == offset) { + entries[idx].value = value; + return; + } + h++; + } +} + +void ObjectMap::grow() { + uint32_t old_cap = cap; + ObjectMapEntry *old = entries; + cap *= 2; + uptr alloc_size = RoundUpTo(cap * sizeof(ObjectMapEntry), GetPageSizeCached()); + entries = (ObjectMapEntry *)MmapOrDie(alloc_size, "ObjectMap"); + count = 0; + for (uint32_t i = 0; i < old_cap; i++) { + if (old[i].occupied) + insert(old[i].key.first, old[i].key.second, old[i].value); + } + UnmapOrDie(old, RoundUpTo(old_cap * sizeof(ObjectMapEntry), GetPageSizeCached())); +} + //===----------------------------------------------------------------------===// // UCSan Input Implementation //===----------------------------------------------------------------------===// @@ -162,22 +335,28 @@ static void ucsan_init_input_struct() { } if (!ucsan_tainted.obj_map) { ucsan_tainted.obj_map = new ObjectMap(); + ucsan_tainted.obj_map->init(); } ucsan_tainted.arg_used.val_dont_use = 0; } static void ucsan_fini_input_struct() { if (ucsan_tainted.objects) { + ucsan_tainted.objects->destroy(); delete ucsan_tainted.objects; ucsan_tainted.objects = nullptr; } - // obj_map is an object, not a pointer - no need to delete + if (ucsan_tainted.obj_map) { + ucsan_tainted.obj_map->destroy(); + delete ucsan_tainted.obj_map; + ucsan_tainted.obj_map = nullptr; + } } char* ucsan_input::dump() { uint64_t length = sizeof(uint64_t); - for (auto& object : *objects) { - length += object.data.size() + sizeof(uint64_t) + sizeof(uint32_t); + for (uint32_t i = 0; i < objects->size(); i++) { + length += objects->at(i).data.size() + sizeof(uint64_t) + sizeof(uint32_t); } char *ret = static_cast(malloc(length)); @@ -189,23 +368,23 @@ char* ucsan_input::dump() { pos += sizeof(uint64_t); // Write offsets - for (auto& object : *objects) { - uint32_t tmp32 = object.offset; + for (uint32_t i = 0; i < objects->size(); i++) { + uint32_t tmp32 = objects->at(i).offset; internal_memcpy(pos, &tmp32, sizeof(uint32_t)); pos += sizeof(uint32_t); } // Write sizes - for (auto& object : *objects) { - tmp = object.data.size(); + for (uint32_t i = 0; i < objects->size(); i++) { + tmp = objects->at(i).data.size(); internal_memcpy(pos, &tmp, sizeof(uint64_t)); pos += sizeof(uint64_t); } // Write data - for (auto& object : *objects) { - tmp = object.data.size(); - internal_memcpy(pos, object.data.data(), tmp); + for (uint32_t i = 0; i < objects->size(); i++) { + tmp = objects->at(i).data.size(); + internal_memcpy(pos, objects->at(i).data.data(), tmp); pos += tmp; } @@ -239,11 +418,12 @@ uint64_t ucsan_input::load(const char *buf, size_t file_size) { ucsan_tainted.objects->clear(); for (uint64_t i = 0; i < object_cnt; ++i) { - ucsan_tainted.objects->emplace_back(UCSanObject{ - .offset = offsets[i], - .data = std::vector(cursor, cursor + sizes[i]), - .origin = {0, 0} - }); + UCSanObject obj; + obj.offset = offsets[i]; + obj.data.init(); + obj.data.assign((const unsigned char *)cursor, (uint32_t)sizes[i]); + obj.origin = {0, 0}; + ucsan_tainted.objects->push_back(obj); cursor += sizes[i]; } @@ -273,10 +453,10 @@ void ucsan_input::build_obj_map() { UCSAN_OUT("build_obj_map: objects->size()=%lu\n", (uint64_t)objects->size()); for (; object_id < objects->size(); ++object_id) { - auto& object_meta = objects->at(object_id).origin; + ObjectOrigin& object_meta = objects->at(object_id).origin; UCSAN_OUT(" obj[%u]: from.obj_id=%u, from.offset=%d\n", object_id, object_meta.obj_id, object_meta.offset); - (*obj_map)[{object_meta.obj_id, object_meta.offset}] = object_id; + obj_map->insert(object_meta.obj_id, object_meta.offset, object_id); } atomic_store(&__ucsan_inited_objects, object_id, memory_order_relaxed); @@ -285,8 +465,10 @@ void ucsan_input::build_obj_map() { // Debug: dump obj_map contents UCSAN_OUT("obj_map contents:\n"); - for (auto &entry : *obj_map) { - UCSAN_OUT(" {%u, %d} -> %u\n", entry.first.first, entry.first.second, entry.second); + for (uint32_t i = 0; i < obj_map->cap; i++) { + if (obj_map->entries[i].occupied) + UCSAN_OUT(" {%u, %d} -> %u\n", obj_map->entries[i].key.first, + obj_map->entries[i].key.second, obj_map->entries[i].value); } } @@ -379,9 +561,9 @@ UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr uint32_t parent_obj_id = (uint32_t)parent_obj_id_64; int32_t offset_in_parent = (int32_t)offset_in_parent_64; - auto find_result = ucsan_tainted.obj_map->find({parent_obj_id, offset_in_parent}); - if (find_result != ucsan_tainted.obj_map->end()) { - object_id = find_result->second; + uint32_t *found_val = ucsan_tainted.obj_map->find_val(parent_obj_id, offset_in_parent); + if (found_val) { + object_id = *found_val; UCSAN_OUT(" found object_id=%u\n", object_id); } else { UCSAN_OUT(" NOT found in obj_map\n"); @@ -397,11 +579,11 @@ UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr } if (object_id >= ucsan_tainted.objects->size()) { - ucsan_tainted.objects->emplace_back(UCSanObject{ - .offset = 0, - .data = std::vector(0), - .origin = {0, 0} - }); + UCSanObject new_obj; + new_obj.offset = 0; + new_obj.data.init(); + new_obj.origin = {0, 0}; + ucsan_tainted.objects->push_back(new_obj); } // Trace lazy init event if enabled @@ -1354,9 +1536,9 @@ void ucsan_init_input(const char *filename) { // Internal init function with standard signature for preinit_array static void ucsan_init_internal(int argc, char **argv, char **envp) { - (void)argc; - (void)argv; - (void)envp; + // When linked with dfsan, ensure it is initialized before ucsan + // (ucsan's fork server must not fork before dfsan_init completes) + __dfsan_ensure_init(argc, argv, envp); ucsan_init(); } @@ -1391,6 +1573,9 @@ SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_basic_block, // Weak definition for UCSan solver initialization SANITIZER_INTERFACE_WEAK_DEF(void, InitializeUCSanSolver, void) {} +// Weak definition for dfsan init ordering (overridden by dfsan.cpp when linked) +SANITIZER_INTERFACE_WEAK_DEF(void, __dfsan_ensure_init, int, char**, char**) {} + //===----------------------------------------------------------------------===// // SymSan Bridge - Weak Stubs //===----------------------------------------------------------------------===// diff --git a/runtime/dfsan/ucsan.h b/runtime/dfsan/ucsan.h index f9f4e3de..f3a8ec48 100644 --- a/runtime/dfsan/ucsan.h +++ b/runtime/dfsan/ucsan.h @@ -23,8 +23,6 @@ #include #include -#include -#include using __sanitizer::uptr; using __sanitizer::atomic_uint16_t; @@ -144,21 +142,89 @@ struct ObjectOrigin { int32_t offset; // offset within parent object }; +//===----------------------------------------------------------------------===// +// Simple dynamic buffer (replaces std::vector) +//===----------------------------------------------------------------------===// +struct ByteBuffer { + unsigned char *buf; + uint32_t len; + uint32_t cap; + + void init() { buf = nullptr; len = 0; cap = 0; } + void destroy(); + uint32_t size() const { return len; } + unsigned char *data() { return buf; } + const unsigned char *data() const { return buf; } + unsigned char& operator[](uint32_t i) { return buf[i]; } + const unsigned char& operator[](uint32_t i) const { return buf[i]; } + unsigned char& at(uint32_t i) { return buf[i]; } + const unsigned char& at(uint32_t i) const { return buf[i]; } + void resize(uint32_t new_size); + void clear() { len = 0; } + void assign(const unsigned char *src, uint32_t n); +}; + // An object tracked by UCSan struct UCSanObject { - uint32_t offset; // offset within object (for sub-objects) - std::vector data; // concrete data + uint32_t offset; // offset within object (for sub-objects) + ByteBuffer data; // concrete data ObjectOrigin origin; // where this object came from }; -// Object storage type -typedef std::vector ObjectStorage; +//===----------------------------------------------------------------------===// +// Simple dynamic array for objects (replaces std::vector) +//===----------------------------------------------------------------------===// +struct ObjectStorage { + UCSanObject *items; + uint32_t len; + uint32_t cap; + + void init() { items = nullptr; len = 0; cap = 0; } + void destroy(); + uint32_t size() const { return len; } + UCSanObject& operator[](uint32_t i) { return items[i]; } + const UCSanObject& operator[](uint32_t i) const { return items[i]; } + UCSanObject& at(uint32_t i) { return items[i]; } + const UCSanObject& at(uint32_t i) const { return items[i]; } + void resize(uint32_t new_size); + void clear(); + void push_back(const UCSanObject &obj); + UCSanObject& emplace_back(const UCSanObject &obj); +}; -// Object map key type: (parent_obj_id, offset) -typedef std::pair ObjectMapKey; +//===----------------------------------------------------------------------===// +// Simple open-addressing hash map (replaces std::map) +//===----------------------------------------------------------------------===// +struct ObjectMapKey { + uint32_t first; // parent_obj_id + int32_t second; // offset +}; -// Object map: maps (parent_obj_id, offset) -> object_id -typedef std::map ObjectMap; +struct ObjectMapEntry { + ObjectMapKey key; + uint32_t value; + uint8_t occupied; +}; + +struct ObjectMap { + ObjectMapEntry *entries; + uint32_t cap; + uint32_t count; + + void init(uint32_t initial_cap = 64); + void destroy(); + uint32_t size() const { return count; } + + // Returns pointer to value if found, nullptr if not + uint32_t *find_val(uint32_t parent_id, int32_t offset); + + // Insert or update + void insert(uint32_t parent_id, int32_t offset, uint32_t value); + +private: + uint32_t hash(uint32_t parent_id, int32_t offset) const; + void grow(); +}; //===----------------------------------------------------------------------===// // UCSan Taint Source (Input Tracking) From 1fa575bdf8194e89c0d286bc51e1ad17e99eaacc Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 20 Mar 2026 16:09:40 -0700 Subject: [PATCH 067/139] propagate taint through llvm.bswap intrinsic using Extract+Concat Decompose bswap into per-byte Extract ops followed by a reversed Concat chain, so the Z3 solver can reason about byte-swapped symbolic values. This fixes the bswap testsuite case. Co-Authored-By: Claude Opus 4.6 --- instrumentation/TaintPass.cpp | 53 +++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/instrumentation/TaintPass.cpp b/instrumentation/TaintPass.cpp index f7088aef..5eba6756 100644 --- a/instrumentation/TaintPass.cpp +++ b/instrumentation/TaintPass.cpp @@ -3432,8 +3432,57 @@ void TaintVisitor::visitIntrinsicCallBase(Function *F, CallBase &CB) { if (!NeedsInstrumentation) return; - // FIXME: track intrinsic - return; + Intrinsic::ID IId = F->getIntrinsicID(); + + // bswap: decompose into Extract-per-byte then Concat in reverse order. + // __taint_union(l1=low, l2=high, Concat) → z3::concat(high, low) (little-endian) + if (IId == Intrinsic::bswap) { + Value *Shadow = TF.getShadow(CB.getArgOperand(0)); + unsigned TotalBits = CB.getArgOperand(0)->getType()->getIntegerBitWidth(); + unsigned NumBytes = TotalBits / 8; + + // Extract = last_llvm_op + 4 = 71, Concat = last_llvm_op + 5 = 72 (for LLVM 14) + const uint16_t OpExtract = 71; + const uint16_t OpConcat = 72; + + IRBuilder<> IRB(&CB); + Value *ZeroShadow = TF.TT.ZeroPrimitiveShadow; + Value *ExtractOp = ConstantInt::get(TF.TT.Int16Ty, OpExtract); + Value *ConcatOp = ConstantInt::get(TF.TT.Int16Ty, OpConcat); + Value *ByteSize = ConstantInt::get(TF.TT.Int16Ty, 8); + Value *Zero64 = ConstantInt::get(TF.TT.Int64Ty, 0); + + auto MakeUnionCall = [&](Value *L1, Value *L2, Value *Op, Value *Size, + Value *Op1, Value *Op2) -> Value * { + CallInst *C = IRB.CreateCall(TF.TT.TaintUnionFn, {L1, L2, Op, Size, Op1, Op2}); + C->addRetAttr(Attribute::ZExt); + C->addParamAttr(0, Attribute::ZExt); + C->addParamAttr(1, Attribute::ZExt); + return C; + }; + + // Extract byte i → input bits [i*8+7 : i*8] + SmallVector ByteLabels(NumBytes); + for (unsigned I = 0; I < NumBytes; ++I) + ByteLabels[I] = MakeUnionCall(Shadow, ZeroShadow, ExtractOp, ByteSize, + Zero64, ConstantInt::get(TF.TT.Int64Ty, I * 8)); + + // Concat reversed: result LSB = input byte[NumBytes-1], MSB = input byte[0] + // Build: z3::concat(byte[0], concat(byte[1], ... concat(byte[N-2], byte[N-1])...)) + // Using __taint_union(l1=low, l2=high) → z3::concat(l2, l1) + Value *Result = ByteLabels[NumBytes - 1]; + unsigned AccumBits = 8; + for (int I = (int)NumBytes - 2; I >= 0; --I) { + AccumBits += 8; + Value *CSize = ConstantInt::get(TF.TT.Int16Ty, AccumBits); + Result = MakeUnionCall(Result, ByteLabels[I], ConcatOp, CSize, Zero64, Zero64); + } + + TF.setShadow(&CB, Result); + return; + } + + // Other intrinsics: symbolic propagation not yet implemented — skip. } void TaintVisitor::visitCallBase(CallBase &CB) { From 73238a7d955760b6c2f7edec9f212b87a73b8124 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 20 Mar 2026 17:17:08 -0700 Subject: [PATCH 068/139] pass actual byte count to checkPointer for mem/string functions For taint-custom functions like memcmp, strncmp, bcmp etc., the pointer arguments were checked with size=1 (element type of i8*) causing lazy init to only allocate 1 byte of symbolic shadow. Now: - UCSanPass: detect mem/string functions by name in WK_TaintCustom path, use length argument as size with type_id=0 for functions with explicit length (memcmp, strncmp, etc.), size=0 for string functions (strcmp, etc.) - Runtime: type_id=0 + size=0 allocates 1 byte '\0' (seed data used if available); type_id=0 + size>0 allocates exact byte count - EVENT_TYPE_BIND now always sent, packs size in upper 32 bits of result field alongside object_id in lower 32 bits Co-Authored-By: Claude Opus 4.6 --- instrumentation/UCSanPass.cpp | 58 ++++++++++++++++++++++++++++++++--- runtime/dfsan/ucsan.cpp | 29 ++++++++++++------ runtime/dfsan/ucsan.h | 3 +- 3 files changed, 75 insertions(+), 15 deletions(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 99f38b98..c160ada3 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -2630,16 +2630,64 @@ bool UCSanVisitor::visitWrappedCallBase(Function *F, CallBase &CB) { { // TaintPass will handle the __dfsw_ wrapping with proper taint labels. // Just check pointer arguments here, skip ucsan arg/retval TLS. + // + // For memory/string functions, use type_id=0 (typeless bytes) and pass + // the actual byte count to checkPointer so lazy init allocates enough. + StringRef FName = F->getName(); + // Determine the length argument index for known mem/string functions. + // -1 means no explicit length (string functions: use size=0). + int LenArgIdx = -1; + if (FName == "memcmp" || FName == "bcmp" || FName == "memchr" || + FName == "memrchr" || FName == "strncmp" || FName == "strncasecmp" || + FName == "strncpy" || FName == "strncat" || FName == "strnstr") { + LenArgIdx = 2; // 3rd argument is the length + } else if (FName == "strndup") { + LenArgIdx = 1; // 2nd argument is the length + } else if (FName == "memmem") { + LenArgIdx = -2; // special: arg1 is len for arg0, arg3 is len for arg2 + } + bool IsMemOrStrFn = (LenArgIdx != -1) || + FName == "strcmp" || FName == "strcasecmp" || FName == "strchr" || + FName == "strrchr" || FName == "strpbrk" || FName == "strstr" || + FName == "strlen" || FName == "strcpy" || FName == "stpcpy" || + FName == "strcat" || FName == "strdup"; + + Value *LenVal = nullptr; + if (LenArgIdx >= 0 && (unsigned)LenArgIdx < CB.arg_size()) { + LenVal = IRB.CreateZExtOrTrunc(CB.getArgOperand(LenArgIdx), UF.UC.Int64Ty); + UF.UC.markNosanitize(LenVal); + } + auto *I = CB.arg_begin(); for (unsigned N = FT->getNumParams(); N != 0; ++I, --N) { + unsigned ArgIdx = FT->getNumParams() - N; // skip nullptr if ((*I)->getType()->isPointerTy() && !isa(*I)) { - Type *PointeeTy = (*I)->getType()->getPointerElementType(); - Value *sizeArg = ConstantInt::get(UF.UC.Int64Ty, - DL.getTypeAllocSize(PointeeTy)); - uint32_t TypeID = UF.UC.getOrCreateTypeID(PointeeTy); + Value *sizeArg; + uint32_t TypeID; + if (IsMemOrStrFn) { + TypeID = 0; // typeless bytes + if (LenArgIdx == -2) { + // memmem: arg0 uses arg1 as len, arg2 uses arg3 as len + unsigned MyLenIdx = (ArgIdx == 0) ? 1 : 3; + if (MyLenIdx < CB.arg_size()) { + sizeArg = IRB.CreateZExtOrTrunc(CB.getArgOperand(MyLenIdx), UF.UC.Int64Ty); + UF.UC.markNosanitize(sizeArg); + } else { + sizeArg = ConstantInt::get(UF.UC.Int64Ty, 0); + } + } else if (LenVal) { + sizeArg = LenVal; + } else { + sizeArg = ConstantInt::get(UF.UC.Int64Ty, 0); // string fn, unknown length + } + } else { + Type *PointeeTy = (*I)->getType()->getPointerElementType(); + sizeArg = ConstantInt::get(UF.UC.Int64Ty, DL.getTypeAllocSize(PointeeTy)); + TypeID = UF.UC.getOrCreateTypeID(PointeeTy); + } Value *rptr = UF.checkPointer(*I, sizeArg, true, IRB, TypeID); - CB.setArgOperand(FT->getNumParams() - N, rptr); + CB.setArgOperand(ArgIdx, rptr); } } // Set zero ucsan shadow for the return value; TaintPass will set the taint label. diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index ec9b75e8..1fc78290 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -518,7 +518,7 @@ static inline bool is_writeable(void *p) { // Object Lookup //===----------------------------------------------------------------------===// -UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr, uint32_t *ret_object_id, uint32_t type_id) { +UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr, uint32_t *ret_object_id, uint32_t type_id, uint32_t size) { if (label) { ucsan_label_info *label_info = get_label_info(label); uint32_t object_id = 0; @@ -592,10 +592,10 @@ UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr uint64_t info = ((uint64_t)parent_obj_id << 32) | object_id; __taint_trace_event_addr(label, EVENT_LAZY_INIT, info, return_addr, (uint32_t)offset_in_parent); - // Send type binding: type_id for the newly created object - if (type_id != 0) { - __taint_trace_event_addr(label, EVENT_TYPE_BIND, object_id, return_addr, type_id); - } + // Send type/size binding for the newly created object + // result = object_id (lower 32) | size (upper 32), id = type_id + uint64_t bind_info = ((uint64_t)size << 32) | object_id; + __taint_trace_event_addr(label, EVENT_TYPE_BIND, bind_info, return_addr, type_id); } if (ret_object_id) *ret_object_id = object_id; @@ -808,13 +808,22 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere uint32_t object_id; void *return_addr = __builtin_return_address(0); - auto& obj = lookup_object(label, 0, return_addr, &object_id, type_id); + auto& obj = lookup_object(label, 0, return_addr, &object_id, type_id, (uint32_t)size); size_t object_size = obj.data.size(); UCSAN_OUT("Find object_id: %u (size = %zu) for label %u, addr %p\n", object_id, object_size, label, return_addr); - if (obj.data.size() < size) obj.data.resize(size); + if (type_id == 0 && size == 0) { + // Typeless with unknown length (e.g. strcmp): ensure at least 1 byte '\0' + // If seed data populated the object, use that size instead + if (obj.data.size() == 0) { + obj.data.resize(1); + obj.data[0] = '\0'; + } + } else if (obj.data.size() < size) { + obj.data.resize(size); + } object_size = obj.data.size(); // Create object label @@ -915,9 +924,11 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere __taint_trace_event_addr(label, EVENT_EXTENSION, object_id, __builtin_return_address(0), (uint32_t)new_lower_bound); - if (type_id != 0) - __taint_trace_event_addr(label, EVENT_TYPE_BIND, object_id, + { + uint64_t bind_info = ((uint64_t)size << 32) | object_id; + __taint_trace_event_addr(label, EVENT_TYPE_BIND, bind_info, __builtin_return_address(0), type_id); + } } } diff --git a/runtime/dfsan/ucsan.h b/runtime/dfsan/ucsan.h index f3a8ec48..c9050b5d 100644 --- a/runtime/dfsan/ucsan.h +++ b/runtime/dfsan/ucsan.h @@ -360,7 +360,8 @@ struct object_info { // Look up or create an object for a given pointer label UCSanObject& lookup_object(ucsan_label label, uint64_t offset, void* return_addr, - uint32_t *ret_object_id = nullptr, uint32_t type_id = 0); + uint32_t *ret_object_id = nullptr, uint32_t type_id = 0, + uint32_t size = 0); // Create a label from the super object (object 0) object_info create_label_from_super_object(size_t size, bool is_pointer = false); From 167fd770a379a1914993234a713a763fddba252d Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 20 Mar 2026 17:21:25 -0700 Subject: [PATCH 069/139] fix Z3 link: add libc++ after libZ3Solver to resolve libc++ symbols Static libc++.a was linked before libZ3Solver.a, so the linker had already discarded libc++ symbols by the time it processed the solver. Co-Authored-By: Claude Opus 4.6 --- compiler/ko_clang.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compiler/ko_clang.c b/compiler/ko_clang.c index 6f54b4ff..207edf9d 100644 --- a/compiler/ko_clang.c +++ b/compiler/ko_clang.c @@ -229,6 +229,8 @@ static void add_runtime() { cc_params[cc_par_cnt++] = "-Wl,--no-whole-archive"; cc_params[cc_par_cnt++] = "-L/usr/local/lib"; // prefer local cc_params[cc_par_cnt++] = "-lz3"; + cc_params[cc_par_cnt++] = "-lc++"; + cc_params[cc_par_cnt++] = "-lc++abi"; cc_params[cc_par_cnt++] = "-Wl,-rpath,/usr/local/lib"; } } From 404888f316a8aa226102ba7a99545be273bab30f Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 20 Mar 2026 23:49:26 -0700 Subject: [PATCH 070/139] support negative offset from ucsan --- include/parse-z3.h | 33 +++++++++++++++++++++++++++++---- python/symsan-py.cpp | 2 +- solvers/z3-ts.cpp | 40 ++++++++++++++++++++++++++++------------ 3 files changed, 58 insertions(+), 17 deletions(-) diff --git a/include/parse-z3.h b/include/parse-z3.h index 9b69865a..a7abea67 100644 --- a/include/parse-z3.h +++ b/include/parse-z3.h @@ -150,13 +150,38 @@ class Z3AstParser : public ASTParser { using branch_dep_t = std::unique_ptr; using offset_dep_t = std::vector; std::vector branch_deps_; + // Separate storage for negative offsets (container_of pattern). + // Negative offset -N (encoded as uint32_t > INT32_MAX) maps to index N-1. + std::vector neg_branch_deps_; + + static inline bool is_negative_offset(uint32_t off) { + return (int32_t)off < 0; + } + + static inline uint32_t neg_index(uint32_t off) { + return (uint32_t)(-(int32_t)off) - 1; + } inline struct branch_dependency_t* get_branch_dep(offset_t off) { + if (is_negative_offset(off.second)) { + auto &deps = neg_branch_deps_.at(off.first); + return deps.at(neg_index(off.second)).get(); + } auto &offset_deps = branch_deps_.at(off.first); return offset_deps.at(off.second).get(); } inline void set_branch_dep(offset_t off, branch_dep_t dep) { + if (is_negative_offset(off.second)) { + if (off.first >= neg_branch_deps_.size()) + neg_branch_deps_.resize(off.first + 1); + auto &deps = neg_branch_deps_[off.first]; + uint32_t idx = neg_index(off.second); + if (idx >= deps.size()) + deps.resize(idx + 1); + deps[idx] = std::move(dep); + return; + } auto &offset_deps = branch_deps_.at(off.first); if (off.second >= offset_deps.size()) { offset_deps.resize(off.second + 1); @@ -231,7 +256,7 @@ class Z3ParserSolver : public Z3AstParser { struct solution_val { solution_op_t op; uint32_t id; // input id - uint32_t offset; // position in file + int32_t offset; // position in file (signed for container_of negative offsets) union { uint8_t val; // for SET: the byte value uint32_t len; // for DELETE: number of bytes to delete @@ -240,15 +265,15 @@ class Z3ParserSolver : public Z3AstParser { // Constructors for convenience // SET: set single byte at offset - solution_val(uint32_t id, uint32_t offset, uint8_t val) + solution_val(uint32_t id, int32_t offset, uint8_t val) : op(solution_op_t::SET), id(id), offset(offset), val(val) {} // INSERT: insert bytes at offset - solution_val(uint32_t id, uint32_t offset, std::vector data) + solution_val(uint32_t id, int32_t offset, std::vector data) : op(solution_op_t::INSERT), id(id), offset(offset), data(std::move(data)) {} // DELETE: delete len bytes at offset - solution_val(solution_op_t op, uint32_t id, uint32_t offset, uint32_t len) + solution_val(solution_op_t op, uint32_t id, int32_t offset, uint32_t len) : op(op), id(id), offset(offset), len(len) {} }; diff --git a/python/symsan-py.cpp b/python/symsan-py.cpp index 559443c3..90872cf3 100644 --- a/python/symsan-py.cpp +++ b/python/symsan-py.cpp @@ -510,7 +510,7 @@ static PyObject* SolveTask(PyObject *self, PyObject *args) { // Common fields for all operations PyDict_SetItemString(sol, "op", PyLong_FromLong((int)val.op)); PyDict_SetItemString(sol, "id", PyLong_FromUnsignedLong(val.id)); - PyDict_SetItemString(sol, "offset", PyLong_FromUnsignedLong(val.offset)); + PyDict_SetItemString(sol, "offset", PyLong_FromLong(val.offset)); // Operation-specific fields using op_t = symsan::Z3ParserSolver::solution_op_t; diff --git a/solvers/z3-ts.cpp b/solvers/z3-ts.cpp index 569549d7..c6e24f09 100644 --- a/solvers/z3-ts.cpp +++ b/solvers/z3-ts.cpp @@ -179,6 +179,7 @@ int Z3AstParser::restart(std::vector &inputs, bool copy_input) { string_info_cache_.clear(); int_var_cache_.clear(); branch_deps_.clear(); + neg_branch_deps_.clear(); branch_deps_.resize(inputs.size()); for (size_t i = 0; i < inputs.size(); i++) { auto &input = inputs[i]; @@ -308,14 +309,16 @@ uint64_t Z3AstParser::serialize_input(dfsan_label label, uint32_t input, uint32_ z3::expr out = first_byte; { // for ucsan, due to lazy init, the input may be empty if (input >= branch_deps_.size()) branch_deps_.resize(input + 1); - if (offset >= branch_deps_[input].size()) - branch_deps_[input].resize(offset + bytes); + if (!is_negative_offset(offset)) { + if (offset >= branch_deps_[input].size()) + branch_deps_[input].resize(offset + bytes); + } } // Cache first byte in branch_dependency for linking (linear scan: always new) set_branch_dep({input, offset}, std::make_unique(first_byte)); uint64_t val = 0; #if FILTER_WRONG_AST - if (inputs_cache_.size() > input && + if (!is_negative_offset(offset) && inputs_cache_.size() > input && inputs_cache_[input].second > offset) { val = (uint64_t)inputs_cache_[input].first[offset]; } @@ -329,7 +332,7 @@ uint64_t Z3AstParser::serialize_input(dfsan_label label, uint32_t input, uint32_ // Cache each byte expr in branch_dependency (linear scan: always new) set_branch_dep({input, offset + i}, std::make_unique(byte_expr)); #if FILTER_WRONG_AST - if (inputs_cache_.size() > input && + if (!is_negative_offset(offset + i) && inputs_cache_.size() > input && inputs_cache_[input].second > offset + i) { val |= (uint64_t)inputs_cache_[input].first[offset + i] << (i * 8); } @@ -1471,11 +1474,15 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { snprintf(intname, sizeof(intname), int_name_format, lbl_info->op2.i, lbl_info->op1.i, lbl_info->size); z3::symbol sym = context_.str_symbol(intname); - bv_op = context_.constant(sym, context_.int_sort()); - aux_constraints_.push_back(bv_op >= 0); + z3::expr int_var = context_.constant(sym, context_.int_sort()); + aux_constraints_.push_back(int_var >= 0); if (lbl_info->size < 64) { - aux_constraints_.push_back(bv_op < context_.int_val((uint64_t)(1ULL << lbl_info->size))); + aux_constraints_.push_back(int_var < context_.int_val((uint64_t)(1ULL << lbl_info->size))); } + // Link Int variable to BV so generate_solution produces consistent values + aux_constraints_.push_back(int_var == z3::expr(context_, + Z3_mk_bv2int(context_, bv_op, false))); + bv_op = int_var; // Cache int-* variable for Int mirroring of BV comparisons int_var_cache_.emplace(lbl, bv_op); } else { @@ -1945,7 +1952,10 @@ int Z3AstParser::add_constraints(dfsan_label label, uint64_t result) { #if FILTER_WRONG_AST // double check if label is valid - if (value_cache_[label] != result) { + // Skip validation for indexOf operations (op1 repurposed for haystack pointer, + // RECORD_VALUE uses placeholder 0 which propagates wrong concrete values to + // downstream ICmp labels, causing spurious mismatches) + if (!label_contains_indexof(label) && value_cache_[label] != result) { // recalculated value must match the recorded value fprintf(stderr, "WARNING: value mismatch for label %u: expected %ld, got %ld\n", label, value_cache_[label], result); @@ -2241,9 +2251,11 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut } z3::check_result fb_res = fallback.check(); z3::set_param("smt.string_solver", "seq"); + // fprintf(stderr, "DEBUG solve_task[%lu]: string_solver=none fallback result = %d\n", task_id, (int)fb_res); if (fb_res == z3::sat) { ret = nested_sat; m = fallback.get_model(); + // fprintf(stderr, "DEBUG solve_task[%lu]: fallback model:\n%s\n", task_id, m.to_string().c_str()); str_abstract = true; } else { ret = opt_sat_nested_timeout; @@ -2331,8 +2343,11 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut } bool use_optimized = false; - if (opt.check() == z3::sat) { + auto opt_result = opt.check(); + // fprintf(stderr, "DEBUG solve_task[%lu]: optimizer result = %d\n", task_id, (int)opt_result); + if (opt_result == z3::sat) { z3::model opt_model = opt.get_model(); + // fprintf(stderr, "DEBUG solve_task[%lu]: optimized model:\n%s\n", task_id, opt_model.to_string().c_str()); // Check if all strlen values are within bounds bool all_within_bounds = true; for (const auto &sv : strlen_vars) { @@ -2365,6 +2380,7 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut } } + // fprintf(stderr, "DEBUG solve_task[%lu]: final model:\n%s\n", task_id, m.to_string().c_str()); generate_solution(m, solutions); // fprintf(stderr, "DEBUG solve_task[%lu]: after generate_solution, solutions.size() = %zu\n", task_id, solutions.size()); } else if (res == z3::unsat) { @@ -2400,9 +2416,9 @@ void Z3ParserSolver::generate_solution(z3::model &m, solution_t &solutions) { uint32_t offset; sscanf(name.str().c_str(), input_name_format, &input, &offset); uint8_t value = (uint8_t)e.get_numeral_int(); - // fprintf(stderr, "DEBUG input-%u-%u: SET offset %u = 0x%02x (individual byte)\n", - // input, offset, offset, value); - solutions.emplace_back(input, offset, value); + // fprintf(stderr, "DEBUG input-%u-%u: SET offset %d = 0x%02x (individual byte)\n", + // input, offset, (int32_t)offset, value); + solutions.emplace_back(input, (int32_t)offset, value); } else if (!name.str().compare("fsize")) { // FIXME: // off_t size = (off_t)e.get_numeral_int64(); From a7a4fbcf2d249fb81a7de9b665898ce280b2ea94 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 20 Mar 2026 23:50:05 -0700 Subject: [PATCH 071/139] record and restore target offset --- runtime/dfsan/ucsan.cpp | 26 ++++++++++++++++++++------ runtime/dfsan/ucsan.h | 1 + 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index 1fc78290..5ee3c46b 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -422,18 +422,31 @@ uint64_t ucsan_input::load(const char *buf, size_t file_size) { obj.offset = offsets[i]; obj.data.init(); obj.data.assign((const unsigned char *)cursor, (uint32_t)sizes[i]); - obj.origin = {0, 0}; + obj.origin = {0, 0, 0}; ucsan_tainted.objects->push_back(obj); cursor += sizes[i]; } // Load metadata if present if (cursor < buf + file_size) { - for (uint64_t i = 0; i < object_cnt && cursor + sizeof(uint64_t) * 2 <= buf + file_size; ++i) { + // Determine metadata entry size: 3 uint64_t (with target_offset) or 2 (legacy) + size_t remaining = (buf + file_size) - cursor; + size_t meta_entry_size = (remaining >= object_cnt * sizeof(uint64_t) * 3) + ? sizeof(uint64_t) * 3 : sizeof(uint64_t) * 2; + for (uint64_t i = 0; i < object_cnt && cursor + meta_entry_size <= buf + file_size; ++i) { ucsan_tainted.objects->at(i).origin.obj_id = *(uint64_t *)cursor; cursor += sizeof(uint64_t); ucsan_tainted.objects->at(i).origin.offset = *(uint64_t *)cursor; cursor += sizeof(uint64_t); + if (meta_entry_size == sizeof(uint64_t) * 3) { + uint64_t target_offset = *(uint64_t *)cursor; + cursor += sizeof(uint64_t); + ucsan_tainted.objects->at(i).origin.target_offset = (uint32_t)target_offset; + // Override obj.offset with target_offset from metadata if non-zero + if (target_offset > 0) { + ucsan_tainted.objects->at(i).offset = (uint32_t)target_offset; + } + } } } @@ -858,8 +871,9 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere ucsan_label *shadow = ucsan_shadow_for(nptr); *shadow = byte_label; - // Bridge to SymSan: create symbolic label for this byte and set shadow - dfsan_label symsan_label = __taint_create_label(object_id, byte->offset, 1); + // Bridge to SymSan: use 0-based offset so offsets stay consistent + // across seed re-executions regardless of obj.offset growth + dfsan_label symsan_label = __taint_create_label(object_id, offset, 1); __taint_set_label(symsan_label, nptr, 1); } @@ -958,7 +972,7 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere void *nptr = (void*)((uint64_t)np + offset); *ucsan_shadow_for(nptr) = byte_label; - // Bridge to SymSan: create symbolic label for this byte and set shadow + // Bridge to SymSan: use signed offset (negative for backward extension) dfsan_label symsan_label = __taint_create_label(object_id, byte->offset, 1); __taint_set_label(symsan_label, nptr, 1); } @@ -988,7 +1002,7 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere void *nptr = (void*)((uint64_t)np + offset); *ucsan_shadow_for(nptr) = byte_label; - // Bridge to SymSan: create symbolic label for this byte and set shadow + // Bridge to SymSan: offset relative to original pointer base dfsan_label symsan_label = __taint_create_label(object_id, byte->offset, 1); __taint_set_label(symsan_label, nptr, 1); } diff --git a/runtime/dfsan/ucsan.h b/runtime/dfsan/ucsan.h index c9050b5d..f61318fc 100644 --- a/runtime/dfsan/ucsan.h +++ b/runtime/dfsan/ucsan.h @@ -140,6 +140,7 @@ inline ucsan_byte_info* to_byte_info(ucsan_label_info *info) { struct ObjectOrigin { uint32_t obj_id; // parent object ID (0 = super object) int32_t offset; // offset within parent object + uint32_t target_offset; // offset within this object the pointer points to }; //===----------------------------------------------------------------------===// From efbf860507eb74867c1db78ca994bcfaf8befb77 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Sat, 21 Mar 2026 23:49:53 -0700 Subject: [PATCH 072/139] fix gv event, pass offset --- backend/thoroupy.cpp | 12 +++--------- runtime/dfsan/ucsan.cpp | 9 +++++---- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/backend/thoroupy.cpp b/backend/thoroupy.cpp index 8b402330..0ba1e5d3 100644 --- a/backend/thoroupy.cpp +++ b/backend/thoroupy.cpp @@ -228,25 +228,19 @@ __taint_trace_bb(uint32_t function_index, uint32_t bb_index) { } extern "C" SANITIZER_INTERFACE_ATTRIBUTE void -__taint_trace_global_var(dfsan_label label, uint64_t size, void *gv) { - if (label == 0) - return; - - AOUT("global var: %d, size: %lu @%p\n", label, size, gv); +__taint_trace_global_var(uint64_t offset, uint64_t size, void *gv) { + AOUT("global var: offset=%lu, size: %lu @%p\n", offset, size, gv); if (__pipe_fd < 0) return; - dfsan_label_info *info = get_label_info(label); - uptr offset = (uptr)info->op1.i; // offset is recorded in op1 - pipe_msg msg = { .msg_type = gv_type, .flags = 0, .instance_id = __instance_id, .addr = offset, .context = __taint_trace_callstack, - .label = label, // just in case + .label = 0, .result = size }; diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index 5ee3c46b..456c7e69 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -38,8 +38,7 @@ void __taint_trace_event_addr(__ucsan::ucsan_label label, uint32_t event_id, uint64_t info, void* addr, uint32_t info2); extern "C" SANITIZER_INTERFACE_ATTRIBUTE -void __taint_trace_global_var(__ucsan::ucsan_label label, uint64_t size, - void *gv); +void __taint_trace_global_var(uint64_t offset, uint64_t size, void *gv); // Forward declaration for UCSan solver initialization (thoroupy backend) extern "C" void InitializeUCSanSolver(); @@ -672,11 +671,13 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere ucsan_label *shadow = ucsan_shadow_for(p); if (*shadow == 0) { bool sent_data = false; + uint64_t first_byte_offset = 0; for (uint64_t i = 0; i < size; ++i) { void *byte_addr = (void*)((uint64_t)p + i); shadow = ucsan_shadow_for(byte_addr); auto ret = create_label_from_super_object(1, false); *shadow = ret.label; + if (i == 0) first_byte_offset = ret.offset; UCSAN_OUT("Symbolize global variable byte @%p with %u from offset %lu\n", ((char*)p+i), ret.label, ret.offset); @@ -709,7 +710,7 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere // Send initial data if needed if (sent_data) { UCSAN_OUT("Sent init data for global variable @%p\n", p); - __taint_trace_global_var(*(ucsan_shadow_for(p)), size, p); + __taint_trace_global_var(first_byte_offset, size, p); } } } @@ -1589,7 +1590,7 @@ SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_event_addr, // Weak definition for global variable tracing SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_global_var, - __ucsan::ucsan_label, uint64_t, void*) {} + uint64_t, uint64_t, void*) {} // Weak definition for basic block tracing SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_basic_block, From d19485b23ed50a6f176f922b67216dd384d410f9 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Sun, 22 Mar 2026 00:10:35 -0700 Subject: [PATCH 073/139] add more heuristics for string constraints --- solvers/z3-ts.cpp | 103 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/solvers/z3-ts.cpp b/solvers/z3-ts.cpp index c6e24f09..80d86a55 100644 --- a/solvers/z3-ts.cpp +++ b/solvers/z3-ts.cpp @@ -3,6 +3,7 @@ #include "parse-z3.h" #include +#include #include #include #include @@ -708,6 +709,9 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { c_expr = c_expr.extract(7, 0); } code = z3::bv2int(c_expr, false); + // Prefer non-zero needle: avoids trivial solutions where the solver + // picks '\0' which already exists in unmodified buffer regions + aux_constraints_.push_back(code != context_.int_val(0)); } // Use Z3_mk_string_from_code to convert int to single-char String z3::expr target_str(context_, Z3_mk_string_from_code(context_, code)); @@ -764,6 +768,9 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { c_expr = c_expr.extract(7, 0); } code = z3::bv2int(c_expr, false); + // Prefer non-zero needle: avoids trivial solutions where the solver + // picks '\0' which already exists in unmodified buffer regions + aux_constraints_.push_back(code != context_.int_val(0)); } // Use Z3_mk_string_from_code to convert int to single-char String z3::expr target_str(context_, Z3_mk_string_from_code(context_, code)); @@ -993,6 +1000,17 @@ z3::expr Z3AstParser::serialize(dfsan_label label, input_dep_set_t &deps) { } else { // Prefix mode: substr(str, 0, len) z3::expr len_expr = context_.int_val((int64_t)info->op1.i); + if (info->l2 < CONST_OFFSET && info->l1 >= CONST_OFFSET) { + // Concrete length substr: pin parent string length so Z3 cannot + // shrink it to empty (which trivially satisfies extract/indexof). + // The parent represents a fixed-size input region. + auto si_it = string_info_cache_.find(info->l1); + if (si_it != string_info_cache_.end()) { + aux_constraints_.push_back(z3::expr(context_, + Z3_mk_seq_length(context_, full_str)) == + context_.int_val(si_it->second.length)); + } + } if (info->l2 >= CONST_OFFSET) { // l2 is the string op label - its cached value is the index/length len_expr = get_cached_expr(info->l2, input_deps); @@ -2202,6 +2220,7 @@ Z3ParserSolver::solve_task(uint64_t task_id, unsigned timeout, solution_t &solut solver.set("timeout", timeout); // add auxiliary constraints (e.g., Int variable bounds from sort coercion) for (const auto &ac : aux_constraints_) { + // fprintf(stderr, "DEBUG solve_task[%lu]: adding aux constraint: %s\n", task_id, ac.to_string().c_str()); solver.add(ac); } // solve the first constraint (optimistic) @@ -2403,6 +2422,36 @@ void Z3ParserSolver::generate_solution(z3::model &m, solution_t &solutions) { // from qsym unsigned num_constants = m.num_consts(); // fprintf(stderr, "DEBUG generate_solution: model has %u constants\n", num_constants); + + // Pre-scan str- variables: collect per-input info to detect sibling + // variables (adjacent/overlapping ranges from loop iterations). + // When a sibling has content (non-empty), empty ones must not be deleted + // as that would shift offsets and corrupt the buffer layout. + struct str_info { uint32_t offset; uint32_t orig_len; uint32_t new_len; }; + std::map> str_vars_by_input; + for (unsigned i = 0; i < num_constants; i++) { + z3::func_decl decl = m.get_const_decl(i); + z3::symbol name = decl.name(); + if (name.kind() == Z3_STRING_SYMBOL && name.str().find("str-") == 0) { + uint32_t input, offset, orig_len; + if (sscanf(name.str().c_str(), str_name_format, &input, &offset, &orig_len) == 3) { + z3::expr e = m.get_const_interp(decl); + uint32_t new_len = 0; + if (e.is_string_value()) { + new_len = decode_z3_string(e.get_string()).size(); + } + str_vars_by_input[input].push_back({offset, orig_len, new_len}); + } + } + } + // Sort each input's str- variables by offset so adjacency is easy to check + for (auto &entry : str_vars_by_input) { + std::sort(entry.second.begin(), entry.second.end(), + [](const str_info &a, const str_info &b) { + return a.offset < b.offset; + }); + } + for (unsigned i = 0; i < num_constants; i++) { z3::func_decl decl = m.get_const_decl(i); z3::expr e = m.get_const_interp(decl); @@ -2531,6 +2580,60 @@ void Z3ParserSolver::generate_solution(z3::model &m, solution_t &solutions) { fprintf(stderr, "DEBUG generate_solution: str-%u-%u-%u: orig=%u, new=%u, raw='%s'\n", input, offset, orig_len, orig_len, new_len, raw_str.c_str()); + // Skip empty str- variables that are connected (via adjacent or + // overlapping ranges) to a non-empty sibling in the same input. + // The sorted vector lets us walk outward from our position to find + // the contiguous group and check if any member has content. + // Deleting would shift offsets and corrupt siblings' content. + if (new_len == 0 && orig_len > 0) { + auto it = str_vars_by_input.find(input); + if (it != str_vars_by_input.end()) { + const auto &siblings = it->second; + // Find our position in the sorted vector + size_t self_idx = 0; + for (size_t si = 0; si < siblings.size(); si++) { + if (siblings[si].offset == offset && + siblings[si].orig_len == orig_len) { + self_idx = si; + break; + } + } + // Walk left: check adjacent/overlapping ranges + bool has_nonempty_sibling = false; + uint32_t group_start = offset; + for (size_t si = self_idx; si > 0; si--) { + const auto &prev = siblings[si - 1]; + uint32_t prev_end = prev.offset + prev.orig_len; + if (prev_end >= group_start) { // adjacent or overlapping + group_start = prev.offset; + if (prev.new_len > 0) { has_nonempty_sibling = true; break; } + } else { + break; + } + } + // Walk right: check adjacent/overlapping ranges + if (!has_nonempty_sibling) { + uint32_t group_end = offset + orig_len; + for (size_t si = self_idx + 1; si < siblings.size(); si++) { + const auto &next = siblings[si]; + if (next.offset <= group_end) { // adjacent or overlapping + uint32_t next_end = next.offset + next.orig_len; + if (next_end > group_end) group_end = next_end; + if (next.new_len > 0) { has_nonempty_sibling = true; break; } + } else { + break; + } + } + } + if (has_nonempty_sibling) { + fprintf(stderr, "DEBUG generate_solution: str-%u-%u-%u: " + "skipping empty (has non-empty adjacent sibling)\n", + input, offset, orig_len); + continue; + } + } + } + if (new_len > orig_len) { // Extending: set common prefix, then insert extra bytes for (uint32_t j = 0; j < orig_len; j++) { From 5115d3caafc077969fdcf7fdedc4f0ec4b7609e3 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Tue, 31 Mar 2026 12:15:56 -0700 Subject: [PATCH 074/139] better assertion handling --- runtime/dfsan/ucsan_custom.cpp | 55 +++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/runtime/dfsan/ucsan_custom.cpp b/runtime/dfsan/ucsan_custom.cpp index da1d9ae5..d969ed5c 100644 --- a/runtime/dfsan/ucsan_custom.cpp +++ b/runtime/dfsan/ucsan_custom.cpp @@ -389,8 +389,13 @@ SANITIZER_INTERFACE_ATTRIBUTE void __dfsw_assert_allocated(void *ptr, size_t size, uint64_t id, ucsan_label ptr_label, ucsan_label size_label, ucsan_label id_label) { if (ptr_label == 0) { - UCSAN_OUT("ERROR: assertion %lu failure non-symbolic label: ptr %p\n", id, ptr); - __taint_trace_event_addr(0, EVENT_ASSERTION, id, ptr, ASSERTION_NONE_SYMBOLIC); + if (ptr == nullptr) { + UCSAN_OUT("ERROR: assertion %lu failure null pointer\n", id); + __taint_trace_event_addr(0, EVENT_ASSERTION, id, ptr, ASSERTION_ALLOCATED_FAILED); + } else { + UCSAN_OUT("WARNING: assertion %lu non-symbolic label: ptr %p, label %d\n", id, ptr, ptr_label); + __taint_trace_event_addr(0, EVENT_ASSERTION, id, ptr, ASSERTION_ALLOCATED_SUCCESS); + } return; } ucsan_label_info *info = get_label_info(ptr_label); @@ -416,8 +421,12 @@ __dfsw_assert_allocated(void *ptr, size_t size, uint64_t id, ucsan_label ptr_lab SANITIZER_INTERFACE_ATTRIBUTE void __dfsw_assert_freed(void *ptr, uint64_t id, ucsan_label ptr_label, ucsan_label id_label) { if (ptr_label == 0) { - UCSAN_OUT("ERROR: assertion %lu failure non-symbolic label: ptr %p, label %d\n", id, ptr, ptr_label); - __taint_trace_event_addr(0, EVENT_ASSERTION, id, ptr, ASSERTION_NONE_SYMBOLIC); + if (ptr != nullptr) { + UCSAN_OUT("ERROR: assertion %lu failure non-symbolic label: ptr %p, label %d\n", id, ptr, ptr_label); + __taint_trace_event_addr(0, EVENT_ASSERTION, id, ptr, ASSERTION_NONE_SYMBOLIC); + } else { + __taint_trace_event_addr(0, EVENT_ASSERTION, id, ptr, ASSERTION_FREED_SUCCESS); + } return; } ucsan_label_info *info = get_label_info(ptr_label); @@ -435,23 +444,29 @@ __dfsw_assert_init(void *ptr, size_t size, uint64_t id, ucsan_label ptr_label, ucsan_label size_label, ucsan_label id_label) { // check ptr is allocated and the size is in bound if (ptr_label == 0) { - UCSAN_OUT("ERROR: assertion %lu failure non-symbolic label: ptr %p, label %d\n", id, ptr, ptr_label); - __taint_trace_event_addr(0, EVENT_ASSERTION, id, ptr, ASSERTION_NONE_SYMBOLIC); - return; - } - ucsan_label_info *info = get_label_info(ptr_label); - ucsan_obj_info *obj = to_obj_info(info); - if (obj->op != OP_ALLOCA) { - UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, label %d, op %d\n", id, ptr, ptr_label, obj->op); - __taint_trace_event_addr(ptr_label, EVENT_ASSERTION, id, ptr, ASSERTION_INIT_FAILED); - return; - } - if (size > obj->upper_bound) { - UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, label %d, size %lu exceeds upper bound %u\n", - id, ptr, ptr_label, size, obj->upper_bound); - __taint_trace_event_addr(ptr_label, EVENT_ASSERTION, id, ptr, ASSERTION_INIT_FAILED); - return; + if (ptr == nullptr) { + UCSAN_OUT("ERROR: assertion %lu failure null pointer\n", id); + __taint_trace_event_addr(0, EVENT_ASSERTION, id, ptr, ASSERTION_INIT_FAILED); + return; + } else { + UCSAN_OUT("WARNING: assertion %lu non-symbolic label: ptr %p, label %d\n", id, ptr, ptr_label); + } + } else { + ucsan_label_info *info = get_label_info(ptr_label); + ucsan_obj_info *obj = to_obj_info(info); + if (obj->op != OP_ALLOCA) { + UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, label %d, op %d\n", id, ptr, ptr_label, obj->op); + __taint_trace_event_addr(ptr_label, EVENT_ASSERTION, id, ptr, ASSERTION_INIT_FAILED); + return; + } + if (size > obj->upper_bound) { + UCSAN_OUT("ERROR: assertion %lu failure: ptr %p, label %d, size %lu exceeds upper bound %u\n", + id, ptr, ptr_label, size, obj->upper_bound); + __taint_trace_event_addr(ptr_label, EVENT_ASSERTION, id, ptr, ASSERTION_INIT_FAILED); + return; + } } + // fall through to scan shadow bool success = true; ucsan_label *shadow = ucsan_shadow_for(ptr); for (size_t i = 0; i < size; i++) { From e0c2d9f1ec8260a02954e2c9bccfdc610665dc74 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Wed, 1 Apr 2026 00:04:40 -0700 Subject: [PATCH 075/139] add __ucsan_symbolize_input API for KLEE-style symbolization Enables symbolizing existing concrete objects in user-written unit tests. Key changes: - New __ucsan_symbolize_input(ptr, size, id) runtime function - AddrRangeMap container for address-range-to-object lookup (container_of) - Lazy pointer relationship discovery in ucsan_load_pointer_shadow - Pass concrete_addr to load_pointer_shadow for addr range map lookup - Extended __taint_trace_global_var with obj_id for multi-object support - Added update_input solver API for late-arriving GV data - Updated dump() to include origin metadata per object Co-Authored-By: Claude Opus 4.6 --- backend/thoroupy.cpp | 5 +- include/parse-z3.h | 2 + instrumentation/UCSanPass.cpp | 17 +++- python/symsan-py.cpp | 42 ++++++++ runtime/dfsan/ucsan.cpp | 160 ++++++++++++++++++++++++++++++- runtime/dfsan/ucsan.h | 3 +- runtime/dfsan/ucsan_containers.h | 134 ++++++++++++++++++++++++++ solvers/z3-ts.cpp | 22 +++++ 8 files changed, 374 insertions(+), 11 deletions(-) create mode 100644 runtime/dfsan/ucsan_containers.h diff --git a/backend/thoroupy.cpp b/backend/thoroupy.cpp index 0ba1e5d3..80ba9ce7 100644 --- a/backend/thoroupy.cpp +++ b/backend/thoroupy.cpp @@ -228,8 +228,8 @@ __taint_trace_bb(uint32_t function_index, uint32_t bb_index) { } extern "C" SANITIZER_INTERFACE_ATTRIBUTE void -__taint_trace_global_var(uint64_t offset, uint64_t size, void *gv) { - AOUT("global var: offset=%lu, size: %lu @%p\n", offset, size, gv); +__taint_trace_global_var(uint32_t obj_id, uint64_t offset, uint64_t size, void *gv) { + AOUT("global var: obj_id=%u, offset=%lu, size: %lu @%p\n", obj_id, offset, size, gv); if (__pipe_fd < 0) return; @@ -240,6 +240,7 @@ __taint_trace_global_var(uint64_t offset, uint64_t size, void *gv) { .instance_id = __instance_id, .addr = offset, .context = __taint_trace_callstack, + .id = obj_id, .label = 0, .result = size }; diff --git a/include/parse-z3.h b/include/parse-z3.h index a7abea67..2336ab07 100644 --- a/include/parse-z3.h +++ b/include/parse-z3.h @@ -21,6 +21,8 @@ class Z3AstParser : public ASTParser { } int restart(std::vector &inputs, bool copy_input = false) override; + /// @brief Update input cache without clearing deps + int update_input(std::vector &inputs, bool copy_input = false); int parse_cond(dfsan_label label, bool result, bool add_nested, std::vector &tasks) override; int parse_gep(dfsan_label ptr_label, uptr ptr, diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index c160ada3..58be90bb 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -704,10 +704,11 @@ void UCSan::initializeRuntimeFunctions(Module &M) { markFunctionNosanitize(F); UCRuntimeFunctions.insert(F); - // Load pointer shadow: i16 ucsan_load_pointer_shadow(i16*, i64, i1) + // Load pointer shadow: i16 ucsan_load_pointer_shadow(i16*, i64, i1, void*) + // 4th arg: concrete source address (for make_input addr range lookup) UCLoadPointerShadowFnTy = FunctionType::get( PrimitiveShadowTy, - {PrimitiveShadowPtrTy, Int64Ty, Int1Ty}, + {PrimitiveShadowPtrTy, Int64Ty, Int1Ty, VoidPtrTy}, false); UCLoadPointerShadowFn = M.getOrInsertFunction("ucsan_load_pointer_shadow", UCLoadPointerShadowFnTy); F = dyn_cast(UCLoadPointerShadowFn.getCallee()->stripPointerCasts()); @@ -785,6 +786,14 @@ void UCSan::initializeRuntimeFunctions(Module &M) { F = dyn_cast(UCPopStackFrameFn.getCallee()->stripPointerCasts()); markFunctionNosanitize(F); UCRuntimeFunctions.insert(F); + + // __ucsan_symbolize_input: declared in user source code, not emitted by pass. + // Register as runtime function to prevent dangle wrapping. + // Arg shadow is stored to __ucsan_arg_tls automatically by visitCallBase. + if (Function *MakeInputFn = M.getFunction("__ucsan_symbolize_input")) { + markFunctionNosanitize(MakeInputFn); + UCRuntimeFunctions.insert(MakeInputFn); + } } void UCSan::initializeCustomFunctionTypes() { @@ -1268,10 +1277,12 @@ Value *UCSanFunction::loadPrimitiveShadow(Value *Addr, uint64_t Size, Align Alig Value *ShadowAddr = UC.getShadowAddress(Addr, IRB); // TOOD: Optimize for non-pointer types + Value *ConcreteAddr = IRB.CreateBitCast(Addr, UC.VoidPtrTy); + UC.markNosanitize(ConcreteAddr); CallInst *FallbackCall = IRB.CreateCall( UC.UCLoadPointerShadowFn, {ShadowAddr, ConstantInt::get(UC.Int64Ty, Size), - ConstantInt::get(UC.Int1Ty, Ty->isPointerTy())}); + ConstantInt::get(UC.Int1Ty, Ty->isPointerTy()), ConcreteAddr}); FallbackCall->addRetAttr(Attribute::ZExt); UC.markNosanitize(FallbackCall); return FallbackCall; diff --git a/python/symsan-py.cpp b/python/symsan-py.cpp index 90872cf3..47242587 100644 --- a/python/symsan-py.cpp +++ b/python/symsan-py.cpp @@ -350,6 +350,47 @@ static PyObject* ResetParser(PyObject *self, PyObject *args) { Py_RETURN_NONE; } +// Update input cache without clearing deps (for late-arriving GV data) +static PyObject* UpdateInput(PyObject *self, PyObject *args) { + if (__z3_parser == nullptr) { + PyErr_SetString(PyExc_RuntimeError, "parser not initialized"); + return NULL; + } + + std::vector inputs; + PyObject *iargs = NULL; + + if (!PyArg_ParseTuple(args, "O!", &PyList_Type, &iargs)) { + return NULL; + } + + Py_ssize_t argc = PyList_Size(iargs); + for (Py_ssize_t i = 0; i < argc; i++) { + PyObject *item = PyList_GetItem(iargs, i); + if (item == NULL) { + PyErr_SetString(PyExc_RuntimeError, "failed to retrieve args list"); + return NULL; + } + if (!PyBytes_Check(item)) { + PyErr_SetString(PyExc_TypeError, "args must be a list of bytes"); + return NULL; + } + Py_ssize_t size; + char *data; + if (PyBytes_AsStringAndSize(item, &data, &size) != 0) { + return NULL; + } + inputs.push_back({(uint8_t*)data, size}); + } + + if (__z3_parser->update_input(inputs, true) != 0) { + PyErr_SetString(PyExc_RuntimeError, "failed to update input"); + return NULL; + } + + Py_RETURN_NONE; +} + static PyObject* ParseCond(PyObject *self, PyObject *args) { if (__z3_parser == nullptr) { PyErr_SetString(PyExc_RuntimeError, "parser not initialized"); @@ -575,6 +616,7 @@ static PyMethodDef SymSanMethods[] = { {"destroy", (PyCFunction)SymSanDestroy, METH_NOARGS, "destroy symsan target"}, {"init_parser", InitParser, METH_VARARGS, "initialize parser from shared memory (name or address)"}, {"reset_input", ResetParser, METH_VARARGS, "reset the symbolic expression parser with a new input"}, + {"update_input", UpdateInput, METH_VARARGS, "update input cache without clearing deps"}, {"parse_cond", ParseCond, METH_VARARGS, "parse trace_cond event into solving tasks"}, {"parse_gep", ParseGEP, METH_VARARGS, "parse trace_gep event into solving tasks"}, {"add_constraint", AddConstraint, METH_VARARGS, "add a constraint"}, diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index 456c7e69..31fd1a19 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -13,6 +13,7 @@ //===----------------------------------------------------------------------===// #include "ucsan.h" +#include "ucsan_containers.h" #include "sanitizer_common/sanitizer_atomic.h" #include "sanitizer_common/sanitizer_common.h" #include "sanitizer_common/sanitizer_file.h" @@ -38,7 +39,7 @@ void __taint_trace_event_addr(__ucsan::ucsan_label label, uint32_t event_id, uint64_t info, void* addr, uint32_t info2); extern "C" SANITIZER_INTERFACE_ATTRIBUTE -void __taint_trace_global_var(uint64_t offset, uint64_t size, void *gv); +void __taint_trace_global_var(uint32_t obj_id, uint64_t offset, uint64_t size, void *gv); // Forward declaration for UCSan solver initialization (thoroupy backend) extern "C" void InitializeUCSanSolver(); @@ -91,6 +92,10 @@ static ucsan_label_info *__ucsan_label_info = nullptr; // Object counter static atomic_uint32_t __ucsan_inited_objects; +// Address range map for __ucsan_symbolize_input pointer relationship discovery +static AddrRangeMap __symbolize_addr_map; +static bool __symbolize_addr_map_inited = false; + // Stack management for bounds tracking static ucsan_label __alloca_stack_bottom; static ucsan_label __alloca_stack_top; @@ -357,6 +362,8 @@ char* ucsan_input::dump() { for (uint32_t i = 0; i < objects->size(); i++) { length += objects->at(i).data.size() + sizeof(uint64_t) + sizeof(uint32_t); } + // Include metadata: origin info per object (obj_id, offset, target_offset) + length += objects->size() * 3 * sizeof(uint64_t); char *ret = static_cast(malloc(length)); char *pos = ret; @@ -387,6 +394,19 @@ char* ucsan_input::dump() { pos += tmp; } + // Write metadata: origin info (obj_id, offset, target_offset) per object + for (uint32_t i = 0; i < objects->size(); i++) { + tmp = objects->at(i).origin.obj_id; + internal_memcpy(pos, &tmp, sizeof(uint64_t)); + pos += sizeof(uint64_t); + tmp = (uint64_t)(int64_t)objects->at(i).origin.offset; + internal_memcpy(pos, &tmp, sizeof(uint64_t)); + pos += sizeof(uint64_t); + tmp = objects->at(i).origin.target_offset; + internal_memcpy(pos, &tmp, sizeof(uint64_t)); + pos += sizeof(uint64_t); + } + buf_size = length; return ret; } @@ -710,7 +730,7 @@ void* ucsan_check_pointer(void* p, ucsan_label label, size_t size, bool derefere // Send initial data if needed if (sent_data) { UCSAN_OUT("Sent init data for global variable @%p\n", p); - __taint_trace_global_var(first_byte_offset, size, p); + __taint_trace_global_var(0, first_byte_offset, size, p); } } } @@ -1083,7 +1103,8 @@ ucsan_label ucsan_combine_label(ucsan_label l1, ucsan_label l2) { } extern "C" SANITIZER_INTERFACE_ATTRIBUTE -ucsan_label ucsan_load_pointer_shadow(ucsan_label *ls, uint64_t n, bool is_pointer) { +ucsan_label ucsan_load_pointer_shadow(ucsan_label *ls, uint64_t n, bool is_pointer, + void *concrete_addr) { if (ls == nullptr) return 0; ucsan_label label0 = ls[0]; @@ -1100,7 +1121,40 @@ ucsan_label ucsan_load_pointer_shadow(ucsan_label *ls, uint64_t n, bool is_point if (is_pointer) { if (label0 >= UCSAN_CONST_OFFSET && label_info->common.op == OP_NONE) { - // Convert byte label to pointer label + // Check if the concrete pointer value points to a symbolize_input object + if (__symbolize_addr_map_inited && concrete_addr && n == sizeof(void*)) { + void *concrete_val = *(void **)concrete_addr; + if (concrete_val) { + uint32_t target_id, target_offset; + ucsan_label target_ptr_label; + if (__symbolize_addr_map.find(concrete_val, &target_id, &target_offset, + &target_ptr_label)) { + UCSAN_OUT("load_pointer_shadow: symbolize_input hit: target_id=%u, " + "target_offset=%u, ptr_label=%u\n", + target_id, target_offset, target_ptr_label); + + // Populate obj_map for lookup_object to find later + ucsan_byte_info *byte = to_byte_info(label_info); + uint32_t parent_id = byte->object_id; + int32_t parent_offset = (int32_t)byte->offset; + ucsan_tainted.obj_map->insert(parent_id, parent_offset, target_id); + + // Set target's origin + if (target_id < ucsan_tainted.objects->size()) { + ucsan_tainted.objects->at(target_id).origin = { + parent_id, parent_offset, target_offset + }; + } + + // Return the saved ptr_label instead of converting to OP_EXTERNAL + if (target_ptr_label) { + return target_ptr_label; + } + } + } + } + + // Default: convert byte label to pointer label ucsan_ptr_info *ptr = to_ptr_info(label_info); ptr->op = OP_EXTERNAL; ptr->status = PTR_UNINITIALIZED; @@ -1195,6 +1249,102 @@ void* ucsan_set_label_for_args(uint32_t index, uint32_t size_in_bits, uint8_t is return (void*)given; } +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void __ucsan_symbolize_input(void *ptr, size_t size, int id) { + UCSAN_OUT("symbolize_input: ptr=%p, size=%zu, id=%d\n", ptr, size, id); + + if (!ptr || size == 0) return; + + uint32_t object_id = (uint32_t)id; // direct 1-based mapping + + // Read the pointer's label from arg_tls (stored by UCSanPass at call site) + ucsan_label ptr_label = __ucsan_arg_tls[0]; + UCSAN_OUT("symbolize_input: ptr_label=%u\n", ptr_label); + + // Ensure objects storage is allocated and large enough + if (!ucsan_tainted.objects) { + ucsan_tainted.objects = new ObjectStorage(); + } + while (ucsan_tainted.objects->size() <= object_id) { + UCSanObject empty; + empty.offset = 0; + empty.data.init(); + empty.origin = {0, 0, 0}; + ucsan_tainted.objects->push_back(empty); + } + + // Bump __ucsan_inited_objects to avoid collision with lazy alloc + uint32_t current = atomic_load(&__ucsan_inited_objects, memory_order_relaxed); + while (current <= object_id) { + if (atomic_compare_exchange_weak(&__ucsan_inited_objects, + ¤t, object_id + 1, memory_order_relaxed)) + break; + } + + // Ensure obj_map is initialized + if (!ucsan_tainted.obj_map) { + ucsan_tainted.obj_map = new ObjectMap(); + ucsan_tainted.obj_map->init(); + } + + // Seed data handling + UCSanObject &obj = ucsan_tainted.objects->at(object_id); + bool first_run = (obj.data.size() == 0); + if (!first_run && obj.data.size() >= (uint32_t)size) { + // Re-run: solver provided data, overwrite ptr + internal_memcpy(ptr, obj.data.data(), size); + UCSAN_OUT("symbolize_input: re-run, overwrote ptr with solver data\n"); + } else { + // First run: snapshot concrete bytes as initial seed + obj.data.assign((const unsigned char *)ptr, (uint32_t)size); + UCSAN_OUT("symbolize_input: first run, snapshotted %zu bytes\n", size); + } + + // Initialize addr range map if needed + if (!__symbolize_addr_map_inited) { + __symbolize_addr_map.init(); + __symbolize_addr_map_inited = true; + } + + // Register in addr range map for lazy pointer relationship discovery + __symbolize_addr_map.insert(ptr, size, object_id, ptr_label); + + // Label every byte OP_NONE — same pattern as ucsan_check_pointer:861-879 + ucsan_label *shadow = ucsan_shadow_for(ptr); + for (size_t offset = 0; offset < size; ++offset) { + ucsan_label byte_label = allocate_label(); + check_label(byte_label); + + ucsan_label_info *byte_info = get_label_info(byte_label); + ucsan_byte_info *byte = to_byte_info(byte_info); + byte->op = OP_NONE; + byte->object_id = object_id; + byte->offset = offset; + + shadow[offset] = byte_label; + + // Bridge to SymSan + void *byte_addr = (void *)((uintptr_t)ptr + offset); + dfsan_label symsan_label = __taint_create_label(object_id, offset, 1); + __taint_set_label(symsan_label, byte_addr, 1); + } + + // Trace object usage event so thoroupy knows about this object + if (ucsan_flags().trace_object) { + ucsan_label first_label = *(ucsan_shadow_for(ptr)); + uint64_t cite_info = ((uint64_t)size << 32) | object_id; + __taint_trace_event_addr(first_label, EVENT_USAGE_CITE, cite_info, + __builtin_return_address(0), 0); + } + + // Send initial concrete data to solver (first run only) + if (first_run) { + __taint_trace_global_var(object_id, 0, size, ptr); + } + + UCSAN_OUT("symbolize_input: done, labeled %zu bytes for object %u\n", size, object_id); +} + extern "C" SANITIZER_INTERFACE_ATTRIBUTE ucsan_label ucsan_resign_shadow(void *ptr, ucsan_label *orig_label, uint64_t n, void *ret_addr) { ucsan_label label_for_ptr = *orig_label; @@ -1590,7 +1740,7 @@ SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_event_addr, // Weak definition for global variable tracing SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_global_var, - uint64_t, uint64_t, void*) {} + uint32_t, uint64_t, uint64_t, void*) {} // Weak definition for basic block tracing SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_basic_block, diff --git a/runtime/dfsan/ucsan.h b/runtime/dfsan/ucsan.h index f61318fc..dcba0a8f 100644 --- a/runtime/dfsan/ucsan.h +++ b/runtime/dfsan/ucsan.h @@ -415,7 +415,8 @@ void ucsan_check_ptr_arg(__ucsan::ucsan_label *label, uint32_t arg_index, void* // Load shadow for pointer type SANITIZER_INTERFACE_ATTRIBUTE -__ucsan::ucsan_label ucsan_load_pointer_shadow(__ucsan::ucsan_label *ls, uint64_t n, bool is_pointer); +__ucsan::ucsan_label ucsan_load_pointer_shadow(__ucsan::ucsan_label *ls, uint64_t n, bool is_pointer, + void *concrete_addr); // Store shadow for pointer type SANITIZER_INTERFACE_ATTRIBUTE diff --git a/runtime/dfsan/ucsan_containers.h b/runtime/dfsan/ucsan_containers.h new file mode 100644 index 00000000..af8764dc --- /dev/null +++ b/runtime/dfsan/ucsan_containers.h @@ -0,0 +1,134 @@ +//===-- ucsan_containers.h - UCSan Container Types -------------*- C++ -*-===// +// +// Container implementations for UCSan runtime. +// Separated from ucsan.h to keep type definitions focused. +// +//===----------------------------------------------------------------------===// + +#ifndef UCSAN_CONTAINERS_H +#define UCSAN_CONTAINERS_H + +#include "sanitizer_common/sanitizer_internal_defs.h" +#include "sanitizer_common/sanitizer_common.h" + +#include +#include + +namespace __ucsan { + +//===----------------------------------------------------------------------===// +// AddrRangeMap - sorted array for address range → object ID lookup +//===----------------------------------------------------------------------===// +// Supports container_of/list_entry patterns where pointers point into +// the middle of objects. Uses binary search for O(log n) range queries. + +using ucsan_label = uint16_t; + +struct AddrRangeEntry { + uintptr_t start; + size_t size; + uint32_t object_id; + ucsan_label ptr_label; // ucsan label of the pointer to this object +}; + +struct AddrRangeMap { + AddrRangeEntry *entries; + uint32_t len; + uint32_t cap; + + void init(uint32_t initial_cap = 64) { + cap = initial_cap; + len = 0; + uptr alloc_size = __sanitizer::RoundUpTo( + cap * sizeof(AddrRangeEntry), __sanitizer::GetPageSizeCached()); + entries = (AddrRangeEntry *)__sanitizer::MmapOrDie( + alloc_size, "AddrRangeMap"); + } + + void destroy() { + if (entries) { + uptr alloc_size = __sanitizer::RoundUpTo( + cap * sizeof(AddrRangeEntry), __sanitizer::GetPageSizeCached()); + __sanitizer::UnmapOrDie(entries, alloc_size); + entries = nullptr; + } + len = cap = 0; + } + + // Insert maintaining sorted order by start address. + void insert(void *addr, size_t size, uint32_t object_id, + ucsan_label ptr_label) { + if (len >= cap) grow(); + + uintptr_t start = (uintptr_t)addr; + + // Binary search for insertion point + uint32_t lo = 0, hi = len; + while (lo < hi) { + uint32_t mid = lo + (hi - lo) / 2; + if (entries[mid].start < start) + lo = mid + 1; + else + hi = mid; + } + + // Shift elements to make room + for (uint32_t i = len; i > lo; --i) + entries[i] = entries[i - 1]; + + entries[lo] = {start, size, object_id, ptr_label}; + len++; + } + + // Find which registered object contains the given address. + // Returns true if found; sets out_object_id, out_offset (within object), + // and out_ptr_label. + bool find(void *addr, uint32_t *out_object_id, uint32_t *out_offset, + ucsan_label *out_ptr_label) const { + if (len == 0) return false; + + uintptr_t target = (uintptr_t)addr; + + // Binary search: find largest start <= target + uint32_t lo = 0, hi = len; + while (lo < hi) { + uint32_t mid = lo + (hi - lo) / 2; + if (entries[mid].start <= target) + lo = mid + 1; + else + hi = mid; + } + + // lo is now one past the last entry with start <= target + if (lo == 0) return false; + + const AddrRangeEntry &e = entries[lo - 1]; + if (target >= e.start && target < e.start + e.size) { + if (out_object_id) *out_object_id = e.object_id; + if (out_offset) *out_offset = (uint32_t)(target - e.start); + if (out_ptr_label) *out_ptr_label = e.ptr_label; + return true; + } + + return false; + } + +private: + void grow() { + uint32_t old_cap = cap; + AddrRangeEntry *old = entries; + cap *= 2; + uptr alloc_size = __sanitizer::RoundUpTo( + cap * sizeof(AddrRangeEntry), __sanitizer::GetPageSizeCached()); + entries = (AddrRangeEntry *)__sanitizer::MmapOrDie( + alloc_size, "AddrRangeMap"); + __sanitizer::internal_memcpy(entries, old, len * sizeof(AddrRangeEntry)); + uptr old_size = __sanitizer::RoundUpTo( + old_cap * sizeof(AddrRangeEntry), __sanitizer::GetPageSizeCached()); + __sanitizer::UnmapOrDie(old, old_size); + } +}; + +} // namespace __ucsan + +#endif // UCSAN_CONTAINERS_H diff --git a/solvers/z3-ts.cpp b/solvers/z3-ts.cpp index 80d86a55..43c3c160 100644 --- a/solvers/z3-ts.cpp +++ b/solvers/z3-ts.cpp @@ -212,6 +212,28 @@ int Z3AstParser::restart(std::vector &inputs, bool copy_input) { return 0; } +int Z3AstParser::update_input(std::vector &inputs, bool copy_input) { +#if FILTER_WRONG_AST + inputs_cache_.clear(); + inputs_copy_.clear(); + + if (copy_input) { + inputs_copy_.resize(inputs.size()); + for (size_t i = 0; i < inputs.size(); i++) { + auto &input = inputs[i]; + inputs_copy_[i].assign(input.first, input.first + input.second); + inputs_cache_.emplace_back(inputs_copy_[i].data(), inputs_copy_[i].size()); + } + } else { + for (size_t i = 0; i < inputs.size(); i++) { + auto &input = inputs[i]; + inputs_cache_.emplace_back(input.first, input.second); + } + } +#endif + return 0; +} + z3::expr Z3AstParser::read_concrete(dfsan_label label, uint16_t size) { auto itr = memcmp_cache_.find(label); if (itr == memcmp_cache_.end()) { From f61e7263604e3e27e810c92c572d54bab17a3748 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Thu, 2 Apr 2026 22:11:51 -0700 Subject: [PATCH 076/139] preserve dso_local on globals used in inline asm with immediate constraint Stripping dso_local from globals used as operands in inline asm with "i" (immediate) constraint causes llc to fail with PIC relocation model, since the address can no longer be treated as a compile-time constant. This fixes kernel percpu variables like current_task. Co-Authored-By: Claude Opus 4.6 --- instrumentation/UCSanPass.cpp | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 58be90bb..84baf956 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -3455,7 +3455,36 @@ bool UCSan::runImpl(Module &M) { // (needed for code compiled without -fPIC, e.g. kernel) for (GlobalVariable &GV : M.globals()) { if (GV.isDSOLocal()) { - GV.setDSOLocal(false); + // Keep dso_local on globals used in inline asm with immediate ("i") + // constraint, as their address must be a compile-time constant + bool usedAsImmInAsm = false; + for (User *U : GV.users()) { + auto *CB = dyn_cast(U); + if (!CB || !CB->isInlineAsm()) + continue; + auto *IA = cast(CB->getCalledOperand()); + // Check if the GV operand has an immediate constraint + auto Constraints = IA->ParseConstraints(); + unsigned argIdx = 0; + for (auto &CI : Constraints) { + if (CI.Type != InlineAsm::isInput) + continue; + if (argIdx < CB->arg_size() && + CB->getArgOperand(argIdx)->stripPointerCasts() == &GV) { + for (auto &Code : CI.Codes) { + if (Code == "i") { + usedAsImmInAsm = true; + break; + } + } + } + if (usedAsImmInAsm) break; + argIdx++; + } + if (usedAsImmInAsm) break; + } + if (!usedAsImmInAsm) + GV.setDSOLocal(false); } if (GV.isDeclaration() && GV.hasExternalLinkage()) { GV.setLinkage(GlobalValue::WeakAnyLinkage); From c0f81176aeadb06df854dd9bfbdc1644ead84334 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Thu, 2 Apr 2026 22:46:56 -0700 Subject: [PATCH 077/139] fix memmove shadow intrinsic type mismatch Remove spurious bitcast of shadow addresses to i8* before passing to llvm.memmove intrinsic declared with i16* (PrimitiveShadowPtrTy) params. This matches the memcpy shadow handling which passes i16* directly. Co-Authored-By: Claude Opus 4.6 --- instrumentation/UCSanPass.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 84baf956..76816be6 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -2160,12 +2160,8 @@ void UCSanVisitor::visitMemMoveInst(MemMoveInst &I) { I.setSource(src); // memmove shadow - Value *DestShadowAddr = IRB.CreateBitCast( - UF.UC.getShadowAddress(dest, IRB), UF.UC.VoidPtrTy); - UF.UC.markNosanitize(DestShadowAddr); - Value *SrcShadowAddr = IRB.CreateBitCast( - UF.UC.getShadowAddress(src, IRB), UF.UC.VoidPtrTy); - UF.UC.markNosanitize(SrcShadowAddr); + Value *DestShadowAddr = UF.UC.getShadowAddress(dest, IRB); + Value *SrcShadowAddr = UF.UC.getShadowAddress(src, IRB); Value *ShadowLength = IRB.CreateMul( Length, ConstantInt::get(UF.UC.Int64Ty, UCSan::ShadowWidthBytes)); From a9c0063d8a2dbcd355bf343d5915a89e45583338 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Thu, 2 Apr 2026 23:01:00 -0700 Subject: [PATCH 078/139] handle ConstantExpr users when preserving dso_local for inline asm Walk through ConstantExpr users (e.g. GEP, bitcast) to find indirect uses of globals in inline asm with immediate constraint. Fixes kunit_running accessed via GEP in callbr jump table asm. Co-Authored-By: Claude Opus 4.6 --- instrumentation/UCSanPass.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 76816be6..7a17eeb6 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -3452,14 +3452,24 @@ bool UCSan::runImpl(Module &M) { for (GlobalVariable &GV : M.globals()) { if (GV.isDSOLocal()) { // Keep dso_local on globals used in inline asm with immediate ("i") - // constraint, as their address must be a compile-time constant + // constraint, as their address must be a compile-time constant. + // Walk through ConstantExpr users (e.g. GEP, bitcast) to find + // indirect uses in inline asm. bool usedAsImmInAsm = false; - for (User *U : GV.users()) { + SmallVector Worklist(GV.users().begin(), GV.users().end()); + SmallPtrSet Visited; + while (!Worklist.empty() && !usedAsImmInAsm) { + User *U = Worklist.pop_back_val(); + if (!Visited.insert(U).second) + continue; + if (isa(U)) { + Worklist.append(U->user_begin(), U->user_end()); + continue; + } auto *CB = dyn_cast(U); if (!CB || !CB->isInlineAsm()) continue; auto *IA = cast(CB->getCalledOperand()); - // Check if the GV operand has an immediate constraint auto Constraints = IA->ParseConstraints(); unsigned argIdx = 0; for (auto &CI : Constraints) { @@ -3477,7 +3487,6 @@ bool UCSan::runImpl(Module &M) { if (usedAsImmInAsm) break; argIdx++; } - if (usedAsImmInAsm) break; } if (!usedAsImmInAsm) GV.setDSOLocal(false); From f1a859ba7e219469b0d5409a8396d9c9a2b65bf6 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Thu, 2 Apr 2026 23:09:09 -0700 Subject: [PATCH 079/139] handle ConstantExpr pointers in checkPointer cache movement ConstantExpr GEPs on globals (e.g. tracepoint struct field access) are constants like GlobalVariable, so place the check at the entry block terminator when moving cached checks to a dominating block. Co-Authored-By: Claude Opus 4.6 --- instrumentation/UCSanPass.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 7a17eeb6..474ac966 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -1918,7 +1918,7 @@ Value *UCSanFunction::checkPointer(Value *Ptr, Value *Size, bool dereference, // not dominating, move the checks to a dominating basic block Instruction *Pos = nullptr; - if (isa(Ptr) || isa(Ptr)) { + if (isa(Ptr) || isa(Ptr) || isa(Ptr)) { Pos = F->getEntryBlock().getTerminator(); } else if (Instruction *I = dyn_cast(Ptr)) { // move to after the source of Ptr From 16059aecae48dcf2a6766fd8757950d4de0434aa Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Thu, 2 Apr 2026 23:23:48 -0700 Subject: [PATCH 080/139] preserve internal linkage for static inline functions Do not promote internal/private functions to external linkage, as this causes multiple definition errors when linking with other translation units that have their own copies (e.g. percpu_counter_add). Co-Authored-By: Claude Opus 4.6 --- instrumentation/UCSanPass.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 474ac966..6019b5b8 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -3309,8 +3309,11 @@ bool UCSan::runImpl(Module &M) { for (Function *F : FnsToInstrument) { if (!F || F->isDeclaration()) continue; - // Make in-scope functions externally visible for debugging/linking - F->setLinkage(GlobalValue::ExternalLinkage); + // Make in-scope functions externally visible for debugging/linking, + // but preserve internal/private linkage to avoid multiple definitions + // when linking (e.g. static inline functions like percpu_counter_add) + if (!F->hasLocalLinkage()) + F->setLinkage(GlobalValue::ExternalLinkage); // Kernel-style inputs may use 8-byte stack alignment; force realignment so // inserted UCSan runtime calls follow userspace ABI requirements. From 736c08d433baa42411203a6b04e92e1d7e055fbd Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Thu, 2 Apr 2026 23:28:34 -0700 Subject: [PATCH 081/139] add __taint_trace_bb stub to ucsan runtime The trace_bb function was only defined in the thoroupy backend, causing undefined reference errors when linking ucsan-instrumented objects. Co-Authored-By: Claude Opus 4.6 --- runtime/dfsan/ucsan.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index 31fd1a19..81045687 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -1537,6 +1537,11 @@ ucsan_label ucsan_trace_alloca(uint64_t size, uint64_t elem_size, uint64_t addr) } } +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +void __taint_trace_bb(uint32_t function_index, uint32_t bb_index) { + // stub for basic block tracing, actual implementation in thoroupy backend +} + extern "C" SANITIZER_INTERFACE_ATTRIBUTE void ucsan_push_stack_frame() { // Save current stack top when entering a function From 7b3db8e86b5f09999cdac94c327b85c4855b09fa Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Thu, 2 Apr 2026 23:41:45 -0700 Subject: [PATCH 082/139] fix __taint_trace_bb stub name and add __dfsw_panic wrapper Rename weak stub from __taint_trace_basic_block to __taint_trace_bb to match the pass and thoroupy backend. Port __dfsw_panic custom wrapper from ucsan to ucsan_custom.cpp. Co-Authored-By: Claude Opus 4.6 --- runtime/dfsan/ucsan.cpp | 7 +------ runtime/dfsan/ucsan_custom.cpp | 7 +++++++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/runtime/dfsan/ucsan.cpp b/runtime/dfsan/ucsan.cpp index 81045687..0f80b307 100644 --- a/runtime/dfsan/ucsan.cpp +++ b/runtime/dfsan/ucsan.cpp @@ -1537,11 +1537,6 @@ ucsan_label ucsan_trace_alloca(uint64_t size, uint64_t elem_size, uint64_t addr) } } -extern "C" SANITIZER_INTERFACE_ATTRIBUTE -void __taint_trace_bb(uint32_t function_index, uint32_t bb_index) { - // stub for basic block tracing, actual implementation in thoroupy backend -} - extern "C" SANITIZER_INTERFACE_ATTRIBUTE void ucsan_push_stack_frame() { // Save current stack top when entering a function @@ -1748,7 +1743,7 @@ SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_global_var, uint32_t, uint64_t, uint64_t, void*) {} // Weak definition for basic block tracing -SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_basic_block, +SANITIZER_INTERFACE_WEAK_DEF(void, __taint_trace_bb, uint32_t, uint32_t) {} // Weak definition for UCSan solver initialization diff --git a/runtime/dfsan/ucsan_custom.cpp b/runtime/dfsan/ucsan_custom.cpp index d969ed5c..c13b0a8b 100644 --- a/runtime/dfsan/ucsan_custom.cpp +++ b/runtime/dfsan/ucsan_custom.cpp @@ -7,6 +7,7 @@ #include "ucsan.h" #include +#include using namespace __sanitizer; using namespace __ucsan; @@ -582,6 +583,12 @@ __dfsw_assume_allocated(void *ptr, size_t size, uint64_t id, ucsan_label ptr_lab return ptr; } +SANITIZER_INTERFACE_ATTRIBUTE void +__dfsw_panic(char *reason, ucsan_label reason_label) { + UCSAN_OUT("PANIC: %s\n", reason); + _exit(EVENT_PANIC); +} + SANITIZER_INTERFACE_ATTRIBUTE void* __dfsw_assume_freed(void *ptr, uint64_t id, ucsan_label ptr_label, ucsan_label id_label, ucsan_label *ret_label) { From 1f5cf0181b64a9057aa7f3e56b5675d46f8e2e08 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 3 Apr 2026 10:31:12 -0700 Subject: [PATCH 083/139] add WK_Discard support to UCSanPass for discarded functions Kernel helpers like _copy_to_user and printk have no implementation in UC mode. Instead of marking them uninstrumented (which still lets TaintPass generate .taint wrappers that fail to link), introduce a WK_Discard wrapper kind that replaces all uses with a trivial stub returning zero/void and marks it nosanitize so TaintPass skips it. Co-Authored-By: Claude Opus 4.6 --- instrumentation/UCSanPass.cpp | 38 +++++++++++++++++++++++++++++++++ runtime/dfsan/ucsan_abilist.txt | 2 -- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 6019b5b8..cc07d929 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -340,6 +340,7 @@ class UCSan { WK_ShimOrig, // original function to be replaced by __shim_ version WK_ShimTarget, // LLM-generated __shim_ function, instrumented like in-scope WK_Uninstrumented, + WK_Discard, }; Module *Mod; @@ -448,6 +449,7 @@ class UCSan { bool initializeModule(Module &M); Function *buildDangleFunction(Function *F); + Function *buildDiscardFunction(Function *F); Function *buildDriverWrapperFunction(Function *F); Function *getCustomFunction(const Function *F); @@ -1632,6 +1634,29 @@ Function *UCSan::buildDangleFunction(Function *F) { return NewF; } +Function *UCSan::buildDiscardFunction(Function *F) { + // Creates a trivial stub for discarded functions (e.g., kernel helpers + // like _copy_to_user/printk that have no implementation in UC mode). + // The stub simply returns zero/void and is marked so TaintPass skips it. + + FunctionType *FT = F->getFunctionType(); + std::string FN = "__discard$" + F->getName().str(); + Function *NewF = Function::Create(FT, GlobalValue::LinkageTypes::PrivateLinkage, + F->getAddressSpace(), FN, Mod); + markFunctionNosanitize(NewF); + + BasicBlock *BB = BasicBlock::Create(*Ctx, "entry", NewF); + IRBuilder<> IRB(BB); + + Type *RT = FT->getReturnType(); + if (RT->isVoidTy()) + IRB.CreateRetVoid(); + else + IRB.CreateRet(Constant::getNullValue(RT)); + + return NewF; +} + Function *UCSan::buildDriverWrapperFunction(Function *F) { // Creates main() wrapper that calls the entry point function // This replaces the standard main() and initializes arguments symbolically @@ -1832,6 +1857,10 @@ UCSan::WrapperKind UCSan::getWrapperKind(Function *F) { if (ABIList.isIn(*F, "custom")) return WK_Custom; + // Check ABIList for discard functions (completely ignored, no wrapper) + if (ABIList.isIn(*F, "discard")) + return WK_Discard; + // Check ABIList for uninstrumented functions if (ABIList.isIn(*F, "uninstrumented")) return WK_Uninstrumented; @@ -2632,6 +2661,10 @@ bool UCSanVisitor::visitWrappedCallBase(Function *F, CallBase &CB) { } return true; + case UCSan::WK_Discard: + // Completely discarded, nothing to do + return true; + case UCSan::WK_TaintCustom: case UCSan::WK_Uninstrumented: { @@ -3263,6 +3296,11 @@ bool UCSan::runImpl(Module &M) { UnwrappedFnMap[&F] = &F; // Remove the body of there is one if (!F.isDeclaration()) F.deleteBody(); + } else if (WK == WK_Discard) { + // Replace with a trivial stub so both UCSan and TaintPass skip it + Function *Stub = buildDiscardFunction(&F); + F.replaceAllUsesWith(Stub); + F.deleteBody(); } else if (WK == WK_Uninstrumented) { // Leave the function as is, but add to UnwrappedFnMap UnwrappedFnMap[&F] = &F; diff --git a/runtime/dfsan/ucsan_abilist.txt b/runtime/dfsan/ucsan_abilist.txt index cb7a5e3a..b316e944 100644 --- a/runtime/dfsan/ucsan_abilist.txt +++ b/runtime/dfsan/ucsan_abilist.txt @@ -67,9 +67,7 @@ fun:__kmalloc=custom fun:kmalloc=custom fun:panic=custom fun:_copy_from_user=custom -fun:printk=uninstrumented fun:printk=discard -fun:_copy_to_user=uninstrumented fun:_copy_to_user=discard # buffer size From 4e706215532623edc0aada54103402741c460409 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 3 Apr 2026 11:40:39 -0700 Subject: [PATCH 084/139] fix checkPointer cache: use NCD for domination and avoid moving Ptr Two bugs in the checkPointer caching optimization: 1. When Ptr is an Instruction in block A, moving the cached check to Ptr->getNextNode() stays in A, which may not dominate the new use site in block B. Use findNearestCommonDominator(SBB, TBB) to find the correct block to place the check. 2. In the no-output-cast case (Ty == VoidPtrTy), the chain walk set I2 = CB->getOperand(0) which is Ptr itself. moveBefore would then relocate Ptr's definition, breaking other users. Only track I2/I3 when they are CastInsts created by checkPointer. Co-Authored-By: Claude Opus 4.6 --- instrumentation/UCSanPass.cpp | 38 ++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index cc07d929..b24f60ee 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -1914,17 +1914,24 @@ Value *UCSanFunction::checkPointer(Value *Ptr, Value *Size, bool dereference, // cache is only possible if size is a constant auto itr = CheckedPtrMap.find(Ptr); if (itr != CheckedPtrMap.end()) { - // finding related instructions - // worst case, cast(ptr) -> check_ptr -> cast(ptr) + // finding related instructions created by checkPointer + // worst case, cast(ptr) -> check_ptr -> cast(result) Instruction *I1 = itr->second, *I2 = nullptr, *I3 = nullptr; CallBase *CB = nullptr; if (isa(I1)) { + // I1 = bitcast(result), I2 = call, I3 = bitcast(Ptr) if exists I2 = dyn_cast(I1->getOperand(0)); CB = dyn_cast(I2); - I3 = dyn_cast(I2->getOperand(0)); + auto *AddrOp = dyn_cast(CB->getArgOperand(0)); + // Only track the input cast if it was created by us, not Ptr itself + if (AddrOp && isa(AddrOp) && AddrOp != Ptr) + I3 = AddrOp; } else { CB = dyn_cast(I1); - I2 = dyn_cast(I1->getOperand(0)); + // No output cast; check if there's an input cast we created + auto *AddrOp = dyn_cast(CB->getArgOperand(0)); + if (AddrOp && isa(AddrOp) && AddrOp != Ptr) + I2 = AddrOp; } // update size if needed @@ -1950,14 +1957,21 @@ Value *UCSanFunction::checkPointer(Value *Ptr, Value *Size, bool dereference, if (isa(Ptr) || isa(Ptr) || isa(Ptr)) { Pos = F->getEntryBlock().getTerminator(); } else if (Instruction *I = dyn_cast(Ptr)) { - // move to after the source of Ptr - Pos = I->getNextNode(); - while (isa(Pos) || isa(Pos)) { - Pos = Pos->getNextNode(); - } - // handle load shadow - skip the shadow if it exists - if (CB->getArgOperand(1) == Pos) { - Pos = Pos->getNextNode(); + // Find a block that dominates both the cached check and the new use + auto *NCD = DT.findNearestCommonDominator(SBB, TBB); + if (I->getParent() == NCD) { + // Ptr is in the common dominator, place after Ptr + Pos = I->getNextNode(); + while (isa(Pos) || isa(Pos)) { + Pos = Pos->getNextNode(); + } + // handle load shadow - skip the shadow if it exists + if (CB->getArgOperand(1) == Pos) { + Pos = Pos->getNextNode(); + } + } else { + // Ptr's block dominates NCD, place at start of NCD + Pos = &*NCD->getFirstInsertionPt(); } } else { errs() << "Unexpected pointer type for checkPointer: " << *Ptr << "\n" From ddc06649537e84db561017bc247d82841f8a5944 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 3 Apr 2026 18:06:49 -0700 Subject: [PATCH 085/139] recalculate dominator tree after SplitBlockAndInsertIfThenElse MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SplitBlockAndInsertIfThenElse in visitIndirectCallBase creates new blocks (then, else, merge) without updating the DominatorTree. When checkPointer later queries DT.dominates() with the merge block as target, the stale DT returns undefined results — in practice returning true for a non-dominating block, causing the cache to reuse a checked pointer from a sibling branch. Co-Authored-By: Claude Opus 4.6 --- instrumentation/UCSanPass.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index b24f60ee..0011dfb4 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -2510,6 +2510,8 @@ void UCSanVisitor::visitIndirectCallBase(Value *FPtr, CallBase &CB) { UF.UC.markNosanitize(And); // if not null and not symbolic, we can call it directly SplitBlockAndInsertIfThenElse(And, &CB, &TB, &EB); + // Update dominator tree after block split + UF.DT.recalculate(*UF.F); // get the correct merge bb curBB = TB->getParent()->getSingleSuccessor(); assert(curBB != nullptr && "Expected single successor after if-then-else"); From aa83414db149c0e346f0695f7c75d066547618d7 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 3 Apr 2026 19:05:51 -0700 Subject: [PATCH 086/139] fix __taint_check_bounds call to use extended size argument Pass Size64 (the i64-extended value) instead of Size (which may be i32) to match the function's (i32, i64, i32, i64) signature. Co-Authored-By: Claude Opus 4.6 --- instrumentation/TaintPass.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/TaintPass.cpp b/instrumentation/TaintPass.cpp index 5eba6756..4dc0794f 100644 --- a/instrumentation/TaintPass.cpp +++ b/instrumentation/TaintPass.cpp @@ -1993,7 +1993,7 @@ void TaintFunction::checkBounds(Value *Ptr, Value* Size, Instruction *Pos) { if (!TT.isZeroShadow(PtrShadow)) { Value *Addr = IRB.CreatePtrToInt(Ptr, TT.Int64Ty); Value *Size64 = IRB.CreateZExtOrTrunc(Size, TT.Int64Ty); - IRB.CreateCall(TT.TaintCheckBoundsFn, {PtrShadow, Addr, SizeShadow, Size}); + IRB.CreateCall(TT.TaintCheckBoundsFn, {PtrShadow, Addr, SizeShadow, Size64}); } } From 963e146fc1cf4d1562ad21932e42fce72d573296 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 3 Apr 2026 20:13:19 -0700 Subject: [PATCH 087/139] fix dso_local/visibility issues for out-of-scope functions and local-linkage globals Erase out-of-scope functions entirely after replaceAllUsesWith instead of leaving hidden declarations that cause linker errors. Preserve dso_local on local-linkage and non-default-visibility globals/functions as required by the LLVM verifier. Co-Authored-By: Claude Opus 4.6 --- instrumentation/UCSanPass.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 0011dfb4..77bedaf3 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -3344,7 +3344,7 @@ bool UCSan::runImpl(Module &M) { for (Function *F : FnsOutOfScope) { if (Function *dangle = buildDangleFunction(F)) { F->replaceAllUsesWith(dangle); - F->deleteBody(); + F->eraseFromParent(); } } @@ -3507,7 +3507,7 @@ bool UCSan::runImpl(Module &M) { // Also strip dso_local so llc generates PIC-compatible relocations // (needed for code compiled without -fPIC, e.g. kernel) for (GlobalVariable &GV : M.globals()) { - if (GV.isDSOLocal()) { + if (GV.isDSOLocal() && !GV.hasLocalLinkage() && GV.hasDefaultVisibility()) { // Keep dso_local on globals used in inline asm with immediate ("i") // constraint, as their address must be a compile-time constant. // Walk through ConstantExpr users (e.g. GEP, bitcast) to find @@ -3554,7 +3554,7 @@ bool UCSan::runImpl(Module &M) { } } for (Function &F : M) { - if (F.isDSOLocal()) { + if (F.isDSOLocal() && !F.hasLocalLinkage() && F.hasDefaultVisibility()) { F.setDSOLocal(false); } } From ea49443c1cf7ce9424579e9bc4b0e73f7f0b82b4 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Fri, 3 Apr 2026 20:52:16 -0700 Subject: [PATCH 088/139] use getShadowTy for aggregate types in PHI nodes and custom function wrappers Shadow PHI nodes and custom wrapper function types were hardcoded to PrimitiveShadowTy, causing type mismatches for struct/array values. Use getShadowTy to match TaintPass convention of keeping shadow types consistent with the original value types. Co-Authored-By: Claude Opus 4.6 --- instrumentation/UCSanPass.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/instrumentation/UCSanPass.cpp b/instrumentation/UCSanPass.cpp index 77bedaf3..a285d5e6 100644 --- a/instrumentation/UCSanPass.cpp +++ b/instrumentation/UCSanPass.cpp @@ -1892,12 +1892,12 @@ TransformedFunction UCSan::getCustomFunctionType(FunctionType *T) { ArgTypes.push_back(param_type); } for (unsigned i = 0, e = T->getNumParams(); i != e; ++i) - ArgTypes.push_back(PrimitiveShadowTy); + ArgTypes.push_back(getShadowTy(T->getParamType(i))); if (T->isVarArg()) ArgTypes.push_back(PrimitiveShadowPtrTy); Type *RetType = T->getReturnType(); if (!RetType->isVoidTy()) - ArgTypes.push_back(PrimitiveShadowPtrTy); + ArgTypes.push_back(PointerType::getUnqual(getShadowTy(RetType))); return TransformedFunction( T, FunctionType::get(T->getReturnType(), ArgTypes, T->isVarArg()), ArgumentIndexMapping); @@ -3164,11 +3164,12 @@ void UCSanVisitor::visitSelectInst(SelectInst &I) { } void UCSanVisitor::visitPHINode(PHINode &PN) { + Type *ShadowTy = UF.UC.getShadowTy(PN.getType()); PHINode *ShadowPN = - PHINode::Create(UF.UC.PrimitiveShadowTy, PN.getNumIncomingValues(), "", &PN); + PHINode::Create(ShadowTy, PN.getNumIncomingValues(), "", &PN); // Give the shadow phi node valid predecessors to fool SplitEdge into working. - Value *UndefShadow = UndefValue::get(UF.UC.PrimitiveShadowTy); + Value *UndefShadow = UndefValue::get(ShadowTy); for (PHINode::block_iterator i = PN.block_begin(), e = PN.block_end(); i != e; ++i) { ShadowPN->addIncoming(UndefShadow, *i); From 1718f4ddf6d8476ca0c6f62e33398cb4187c0e8e Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Sun, 12 Apr 2026 10:54:30 -0700 Subject: [PATCH 089/139] set KO_CC to LLVM clang path when building libSymsanProxy.o during install Co-Authored-By: Claude Opus 4.6 --- driver/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/driver/CMakeLists.txt b/driver/CMakeLists.txt index a3b22674..0a2b4c07 100644 --- a/driver/CMakeLists.txt +++ b/driver/CMakeLists.txt @@ -24,6 +24,7 @@ endif() install (CODE "MESSAGE(STATUS \"Build & Install: libSymsanProxy.o\")") install (CODE "execute_process(COMMAND \ + ${CMAKE_COMMAND} -E env KO_CC=${LLVM_TOOLS_BINARY_DIR}/clang \ ${CMAKE_INSTALL_PREFIX}/${SYMSAN_BIN_DIR}/ko-clang \ -c ${CMAKE_CURRENT_SOURCE_DIR}/harness-proxy.c \ -o ${CMAKE_INSTALL_PREFIX}/${SYMSAN_LIB_DIR}/libSymsanProxy.o)") From b130a6bc6136e7349819e0b4ae6c42105f5edd06 Mon Sep 17 00:00:00 2001 From: Chengyu Song Date: Sun, 12 Apr 2026 20:48:17 -0700 Subject: [PATCH 090/139] add size_in_bits arg to __taint_union_load for sub-byte type truncation When loading sub-byte types (e.g., i1, i4), the store size is 1 byte but the actual type width is smaller. Pass size_in_bits through to the runtime so it can emit a Trunc op when size_in_bits < n * 8. Also rebuild instrumented libc++/libc++abi/libunwind for the updated ABI. Co-Authored-By: Claude Opus 4.6 --- instrumentation/TaintPass.cpp | 21 ++++++++++++++------- libcxx/build_taint/lib/libc++.a | Bin 14981808 -> 15821304 bytes libcxx/build_taint/lib/libc++abi.a | Bin 4014850 -> 4256842 bytes libcxx/build_taint/lib/libunwind.a | Bin 538472 -> 568104 bytes runtime/dfsan/dfsan.cpp | 27 ++++++++++++++++++++------- 5 files changed, 34 insertions(+), 14 deletions(-) diff --git a/instrumentation/TaintPass.cpp b/instrumentation/TaintPass.cpp index 4dc0794f..14cd86a7 100644 --- a/instrumentation/TaintPass.cpp +++ b/instrumentation/TaintPass.cpp @@ -633,8 +633,8 @@ struct TaintFunction { private: /// Loads a primitive shadow label - Value *loadPrimitiveShadow(Value *Addr, uint64_t Size, uint64_t Align, - IRBuilder<> &IRB); + Value *loadPrimitiveShadow(Value *Addr, uint64_t Size, uint64_t SizeInBits, + uint64_t Align, IRBuilder<> &IRB); /// Loads shadow recursively for aggregate types Value *loadShadowRecursive(Value *Shadow, SmallVector &Indices, Type *SubTy, Value *Addr, uint64_t Size, @@ -981,9 +981,10 @@ bool Taint::initializeModule(Module &M) { Int16Ty, Int16Ty, Int64Ty, Int64Ty}; TaintUnionFnTy = FunctionType::get( PrimitiveShadowTy, TaintUnionArgs, /*isVarArg=*/ false); - Type *TaintUnionLoadArgs[3] = { PrimitiveShadowPtrTy, IntptrTy, Int64Ty }; + Type *TaintUnionLoadArgs[4] = { PrimitiveShadowPtrTy, IntptrTy, Int64Ty, Int64Ty }; TaintUnionLoadFnTy = FunctionType::get( PrimitiveShadowTy, TaintUnionLoadArgs, /*isVarArg=*/ false); + // args: shadow_ptr, n (bytes), size_in_bits, align Type *TaintUnionStoreArgs[4] = { PrimitiveShadowTy, PrimitiveShadowPtrTy, IntptrTy, Int64Ty }; TaintUnionStoreFnTy = FunctionType::get( @@ -2239,13 +2240,15 @@ void TaintFunction::hoistBoundsChecks() { // Generates IR to load shadow corresponding to bytes [Addr, Addr+Size), where // Addr has alignment Align, and take the union of each of those shadows. Value *TaintFunction::loadPrimitiveShadow(Value *Addr, uint64_t Size, - uint64_t Align, IRBuilder<> &IRB) { + uint64_t SizeInBits, uint64_t Align, + IRBuilder<> &IRB) { if (Size == 0) return TT.ZeroPrimitiveShadow; Value *ShadowAddr = TT.getShadowAddress(Addr, IRB); CallInst *FallbackCall = IRB.CreateCall( TT.TaintUnionLoadFn, {ShadowAddr, ConstantInt::get(TT.IntptrTy, Size), + ConstantInt::get(TT.Int64Ty, SizeInBits), ConstantInt::get(TT.IntptrTy, Align)}); FallbackCall->addRetAttr(Attribute::ZExt); return FallbackCall; @@ -2259,9 +2262,10 @@ Value *TaintFunction::loadShadowRecursive( if (!isa(SubTy) && !isa(SubTy)) { uint64_t SubSize = DL.getTypeStoreSize(SubTy); assert(Size >= SubSize); + uint64_t SubSizeInBits = DL.getTypeSizeInBits(SubTy); Align = std::min(Align, (uint64_t)DL.getABITypeAlignment(SubTy)); // load a primitive shadow from address - Value *PrimitiveShadow = loadPrimitiveShadow(Addr, SubSize, Align, IRB); + Value *PrimitiveShadow = loadPrimitiveShadow(Addr, SubSize, SubSizeInBits, Align, IRB); // then insert the primitive shadow into the sub-field return IRB.CreateInsertValue(Shadow, PrimitiveShadow, Indices); } @@ -2333,10 +2337,13 @@ Value *TaintFunction::loadShadow(Type *T, Value *Addr, uint64_t Size, return TT.ZeroPrimitiveShadow; const uint64_t ShadowAlign = getShadowAlign(Alignment).value(); + auto &DL = F->getParent()->getDataLayout(); // now check if we're loading an aggragate object - if (!isa(T) && !isa(T)) - return loadPrimitiveShadow(Addr, Size, ShadowAlign, IRB); + if (!isa(T) && !isa(T)) { + uint64_t SizeInBits = DL.getTypeSizeInBits(T); + return loadPrimitiveShadow(Addr, Size, SizeInBits, ShadowAlign, IRB); + } // if loading an aggregate object, load its shadow recursively SmallVector Indices; diff --git a/libcxx/build_taint/lib/libc++.a b/libcxx/build_taint/lib/libc++.a index 0f23b3fa4ba7cc02b2cf571b4ba21fd7404f0ac1..8e69f93e3e55818d27b6f48e7c82746409d4ef9e 100644 GIT binary patch literal 15821304 zcmeFa4U}ZZRVG+138S^emgbBPYdjjja*rOT{W;w7pjyqQMFXl-8Q|9%_BQA zt1G*+GRv7+U0udLV~`A;-73asV3yg%vuil8$L9=Zc82k4kukP4vef1*yMuvcJm5dD zvD~Xayx6hgx=&|!Rlc}4Zrpq0-WxY=#Jl|m8iVG>55Drv z2lYSG%CG!q_1}XBD~BqJhuBv?{>q7oSKc#m!!J!-|9JA?yN=y7;r0204^4bm%ICFT z>rTW!x4q(y39rw4K0I;TRr(zK@o!BeeQrPTI}@(Y>o;o?^7HY}PQ1RP&l~Rg%!Kvx zzuY$QhQ9@$@BNK0PN<(Z{?5-&sGmDlCMK@+=g#;1+QhZ^yy;cb6Y}#<{$S!w^!dMD zllgPkTYq4}=kpI14o~=eD*xtpCXzn057j2pKJ!Pr6Gc7?=MPWh{TzD#)Wr4Absp@u z4%~Zrdg5>Mr~aRAnYdb?Be(p{#F6f~#LxY|+MS4h9{A4pPB=fm`q7C8{(tg0cID=Y zw9oMuzCLmNWAfm{>5Yl&pX)rht^?O~;JOZ6*MV!P1H+qEC;qm5wts74;`--053cLL zbse~_1J`xnx(-~|f$KVOT?ek~z;zwCt^?O~;JOZ6*MaLg@L!e={Kt2-CbE7${npyV z^-siu-~a8YiR+)M$AhPq|Lw$o37@YWdwcMs_a7V020>*Z2!{Q^sDAYRV*!5dwui%d zvstaK;dA!*bZ~4wI3C1y=ClD5|7#LC1NcsF*dB~J{T>@6er@(Qx4P|7 z+lup~bG&mwu+;#fMmLpPR)*QQyt4x?VjaWdWU)%cBvvj86_O8=z%#S#(e)mj%vzTo%w-x!mc1%lPErvH@B) zmqiCxd|@glY`3!XxUsA9hAvsfioYM1$0&}pF0OGv~p zTS-9>?_p(HMNdyNVAp_;zb%d%dD-K2+n2{|U%m~A-%Pz%8U9>Q$MQghiRl?+r<>=_ z1;`t3cA7!2KkBUS2K`>Uy7spF6jAXsw!L)&v8Jnaw{x<&wI$GR_In*9sO_z%kr&rm z?;wlKnsy?UNund9n&usn(#ohh$VS&Y_^@ zCwFsqA*8bMBXvspiDd-XA^041)bUUNn;OumqqqE5HH~YQeXt3QJ1t%MWL8md~$NhK&$vd$#R@StH>BxdY`!9HYDKqUfq>0L?;sT5S;D-*t7A zLPtnO298x`wz`dGd!yfNfwMC~h3rH)cjM1y5}wT_Jex~+HlOfpA>rAfglCHh&z79e zW`oMK@(_DHFeMF$YkPJEKU7bzHRDpQz__i{-%>vw9AEyS)v6tOVUD0TP3Xl@KWJ_= z21D%99h(l;1@@rXZS+pTqjkFhcHA~Qy~d~=NhJo>5@14VvFGiS=j${-XBZv9dVjD9 z4;qJ1vIodzl9)QiQ>P$6(pR)nBH%)4dzGoLKU7Tw7 zu!Y+Vwg&BHXNV2eG|8E0XDnz*7xJTwG1j6D1{IaOj7`vzk{O%O6HN(YNHG4UO6ZKu ziZaGni;f#qgjNsr1oyx)!Ihp3TAfqa>{o2t%zW^cxE=+g#z_<%K%D@3Yzx{2Ejz)# z^#?r^JTPd%+zoa!!nUf2$nwKlNY3Cw7n&P`ey?Ad8SV~8?M;~Pe)G(1ufG$m6;e#P z6~hvY=?LqVU{pPN-~Dh9m1*|tRv$GR^J6;3E>s_ zvIvcBby%gy*~XwlI$4=k)*N!dks^>pL=>P)L}I`;h&i^vppu+QWxLmT=XN_Fj@3z0 zo7GGE4cgGX{!YM0u8h`X`8^e# zV>E05E;)uTbwNo3%91n&1(aQ(M2-2tQvpp#&>0C0!=O69${|X4A&J#wMvm49aS6DZ z#rW)MrgnOqvP_PKWWtZblqEi=%uxdT{SYQSrnJxc_Go+14%&kO3JjZA@nFrqJJ&<5 zPUS)xz@bf4J~mFZt43r)sXx|(z^$N_<8%_DIIPNyN-Aa++4t#??tZHsnRJO(2XW%E zN>b}hOCbv0>Md0Hi5AFKHHO1}GZ=24ga-z5sbCc4l<#T}`dGy^2JM!@4ma4+ussUS zHoDuIP(mRh1H|W`${%j+qi>oKdqg)H{ZM*0Kc%{9ASyr2kSwE%ag+t46l_eX4b_T(Y*Q`XW3T&3Cr-BuoF0CVYw?JXo+`q(1wG1R8#Gjuc`!xZHYW&+*=wI0AyI`zb#*gtxoGQ#yD!Sa zt#=ViGM`>uyHCseR_65QWR7Hu3>>K(YPFH*MaTmaj`S;*s@1i~$OwD7BwF?Q0bBVa zOOLdwNj_Fo-c6CymW>m8XWOeg?Zz3~QiaV8y@f5t)LUqh38Oi_2`joWc5%ZH61y*< zoSXga-pD!y<85s8z{`YqSdSc;tzirqx!gvpS#>9{p2PPBNZdd(BB*-KUCU;_^soCc9HvQfrHotp%vR`iOv_{^v`-fK6$ZA zGu#T0Q!)DB$|IjIZ1>_+gz5$9Qhyu`rnE5?=dtN{s#o3IJi2!Fs4@R4vsjAtv9`eK zr7<|gOsHHvX;VP6!Mf^ehS%~)B8;h;j?(f_Sd-Wz&6-9oC)P?Ii%nR1|E?B-2-|Z9 zCAOy3i7ZyuhQVe!ctXyhKK$Y02zhB;ds2cq4(Hand2GXM4~Dew%<_ToC5GBn;*D(7 z8;u+TG1~dlW*NNthW^T-W$2L8YT<**-&n212cA7z&4# zK}6!qFs}?8J_Ct*iWovm>aDGIuNCyf#`x(>g+VhEr-v9iy|zSRmIqPG*35e696amE zZFa^Uz4BV2*6DZzT!HM?9{3TY?jE@J-ec9{suUpt{^;1+YCZnsNd5lchgKiB=e|HI z@50(ZMW;W+ex!m>e+EgmXcqd=j80lJL$f8N_mWGJXh(FWRoyiC0IrEDB+e@!n}Hj| zik??6VU^t3glSxuW0_{XAETOz(jO}iycN}5H01f9e*fD7gN+C>)i(0EoJR$Ts=|*i zw@z;lM^w42%ugatuRklTOYrPSgG#(Q>$H`)+31Zr*jiCKhxFDh(z6ss#g!FIUBx1a z)^gbALDZp3?6k3Y197iI+@}kOdzNq1=;AgJQX1&q)d!Z3Cx{y=t~4niZ3j*JDsESw z>GF=2Qf#rpifOGr#n#Xf0xJoS2x&q9Y;Erje{GahDiq85q+}wBP}vx+{W8MM@_d6E zYB9`3rK~}$u}wol|6_~QdG8klt~8j1QKJYzeZi&WRKe=@=@o6PfDWE3kZ0UebX3rZ)? zz#k{jXb_hH56t8QMJ;^T^wF(A(<|CxrskoH-*MKKUnYd zTBNs|iiBKN%tt_o`8qgaWk(sYO=GV%o+6zyBaDj0csNO!a@`>N3`N)Aa&QU?G0)}{ zG7AY2d#4a$(8U2qIzES4Vds86F6hhkVuT)Igsyi6`$FjgzXc8kN869hKMN5YhLaFD z=}$R207q65f$C(7Xe%V68658^X`E6XWL`=luQIEsP`Qe(O!u-BXaV&{v?ZuBpooPF zi<*EGl~CCBL<+Y=>|g=zQ9NrYe#mD#7I-47L<$8*VL#^sbwUczi6eKZSmHt$6&4!0RYd=JHlnPhhERV+Pm4)e31&(iwutFy z0|slMZg0kSO12JP zR23Gl-M6FYYZ0Vr3;&(8iRMXsv=Z;z^C-tgGuXvYstN{!#xCk(cW`w$Wk!^gh<$!$ zCPYgKl!aaM0;Q)dJSA^UTa?CApR|Q9 zq1LoTX_QLqw5d$)A_|Z-ZQ;oVc)XGbRHsm+pT*3GN7}-3oKhaTRWC%InYJiReU#~5 zmI8@Iw$6YeDhVR}5(}O(!u1~5F~#oMnE>U~lnFr=yCiEI#bRYSb-_;~{3xVTVbY>B zMG`jNGil)|DIU?6#>sGZp)^g8k`{_>DpX;GShl%$11Y>{axR9$6fp}~jYR%zlE zNsE%k>zlOj)NR4Oa_6;NvBLb8qf6p4ka+PO^GbWYH8(79mfGSxOzY2;D5%39Q&lB7Q++C(6Pne2{|`xH%LR zL_QnVyj)e=>c+)`)4}mdfJ=q%JGKy@izQ{-*(yWN&h(QF;Vhu^h1x&v+T7g4-BYV4 zE7fY0b8s#7Q4%wwK0`>NWyG@e;>c`J;mwTtEZz&}%G_|&@349ylp3pJ@|MQhrctKq zM(Q~g@n!@o((ZmxYDZdt(s}T7+m6*!>ulpsz*>-2+~Y+BV2itKx%CK$@RYy0MTK#hTYIDbI|1 z1(j##;)E*CjN*UgnUNe&p6$kQ;v&UuvSbD@*f@CB))ci=4j@ z4R!o1I5gywYwQ9WP^!uNBEg_QY2=QqNIf-0AWa!{Mr=N#&WO@A>bdaFxA3ky#F^2y zR&+;Htd)8$FZM{g07zVoSBW*6nGH{K^4ev(?VewFs+wG}XpO<*mb!OtcW`|h4v|$m zJoG`%gk88N(M00#!NQTKx8Eu8t3ZGwRk*%1yqV8-L!WGzClF6xcZBHaPJVU)wm8(0 ze$Aj0!ZwO#^)e6d6@e4vyF4QF}Jpe zoj0TSA+lvEQ>&fyftc53sxZ-=ahgh~x)PI@eT1qZw~f$kVy&%RHpALj9t~1cNO}S( zCBYPNAvV|~KB!WPu1GT27(KG!R;H@TLFzW5N%NBIk-W&yd?fGiOY|d>D7RcR8WN3o zgv=$jY&SD$EJQH4FGkXCFwD-9r#q-~n293!qr82p6WcXD2f6Vs7f=C)3uM*F?ku3? zHY|jgJB_yxsP0>Py3lHmaHpa3`OGv9%eHpt@+9o#r!&OqJ@m$4% z@g_c3nC2xKSewcsUCqYcOM@3|@SE9eH>FvcX#p|2w9L|oMU(b!=n-96W``2%X;M<| zF4)~JnRj>f6^v&2{1qKnD~QB|7dh%yuc@NZywlnl_;nLX2nul-NY_(5r zpJG?l8WIji7fVTdZskPd(b#KD&6$Xl#!0-S4|l*3LE^K4~nH6h#+Hq4<;C{CmRP$Crt*=%;AvKg?~cy+Y< z#1kRtj1R?kP<%s`G%Dy9UeFSBn!umh9?B!y%RY=QB%x!so(!9V&X&ZV0z>!3;l+ov zNNx1UW8y%n=nnVnCUS0WxYO7Ix1gbk?dW|hViH-T;qVEO597BLC6!*uEL1deGOQa8mz zHG>a9HV=1ih5Dhy`X*cFx9nKtK0P~OOq2z?TuHX+UNyTpw6BI=joiSNty)2SJls zZ@kwGb~?C~Za8Xn`qh*1u~ItW zA!*wlF405w3MJdqL;R^)G$z$+VR)vqwPSsB2=DbB;dX8t%B5|bs~9vLH?!D%4QrB12Rs=@Jwa zjO!ANb7&s$(g3r}tsxR-vWg*7k^&I8Dpd zMxJKm&~O_!6c-x@s3<_eJdJ`~LYbQp_t=upo(upig7f@#n4e|M4=)1y{21m>ktUl< zG~d}sFPJ_>?;4p4Y!&yOe4O7ZP6d*QM1`?%@FgM9O=L6A3&kxwv*Y_<-5K6}vFvlj z%sN}4Y&Lqk1+3!2IWnuo%p$!Umc0Qtzk8YArZ?#3hhN$vyG(28{PPm5C~O%Q#mjyz zWXy(fG|z`R!c3S)R)AwpL3#_Hkx#4mAr0U7orW|DYrW8_L9G{nmb((+upguv&>lZK z9rRG5njb?pNOh%>uWuDYroI!rl^5S&R;uF z!1ja9?PtNECM8p{oPHC7-i>`Pkp(Z9b8c}I2>R7^D4VNP`)IgUFR4kKa*a~OO_c?Z zfjmoeQoy3&xPg=`es@0=3uoz3l z4Hw4_1xJsYu}!SC9WhZhjLUA;LK#oM_O>_M1Efg0oz2c@SRdMv?klyUIJI;qn!(4> zHK5Gcx%1{@=NeFJ>}go}c={SpX0Fz367F6D%8bHCE6+Bs0cGZadmGQrT?5LD1N&B< z?Op@Q%!BU4%FL?(Y?QUG0cCA3>)XBtlv#?gY)o4_n}@c={2q1|t4?=BnH)DT z*rVoc;9jns0o#&*nV^ew&VrV-rC6p_0%u4#lA{2JKnZ!#1^DN(-d;E?Jm0#DR zcDH*fZ`bp*Epy7bonlyAKax07`~Hs$W%BAcXT~N4Y2J)YGFnTLTW0TyoSXuLoO+J+japV_X*C#KMJPwW`YhJ_?r(a$q z6`7fQ@KP@f%}5RiUzFOXxls4*)9L?G`!pA|zI~dDPG3lKQRoY4F4}w{%|(?jq`Bzv zg)|o>zL4gk!57kYipCo@Axz9?ZDtXnST@AH2%6tPk`K|*eU@E$KLiwGY`J5MJzxk^W?X+a5 zLbM}Ls}Oh0u*h>*vQn^6or;}8iMwE}iXD5FDnvVmOjU?>6d9@zT?o9Z5bX&3s}K|5 zQEro8g_J5p^OXahYM7-8(KQZ4ea&ia3S<>xenucBGEM@SyWDp2sUX6y3egVlUxjFg zcl$Zt5%^ajx+q{(h&#Sjh;}UgRfu+Ys)a-qB2i&1K0I|f`6QvM3eipu5+}UQJik^J zuR^qwRz?+~9kX{8q8&V26`~!7tU}Ds_oYl#h;}mks}Sw*N)@7+a`9B>s0uMZFQO_$ zlZO$MQZpGa+;1;8w2MUBBXy)^QuA)NGdXC-Xaw;wcOCj6my~OWo0mQV<8qs(c~MMUO9}xhV04G#3rNkRIiRPF={83rtoMR&MBwPLg3|xuH8e zN5uNxk(#s(&WXc z1_ya@U>jbe>V9LpH`^$MH&q5I?xI!p<+I_OML4GxDu|1obG@wBad&r89YhXl`JI3< z01nynvGyFUezcmCtx}i<`9Z<^Y9B!l-&d zYYWe8km_LRxzige}e1)5k6OM={3x)39q_eldCf>i3m%WL;#7jU) zj>8K<1+NQXM`Q{O1PgTM^{HNDWOi2mShE!?d*RJk5tuE&uo{ZIfrWJf=S7yILa;zg zp;f^|ro8}0)!-LEqw(~(b^@jdR@GpZhgHq{#WRPcQ5!qNQv|O{uW%bhqDY4p6+x-0 zQ4u`49>sWA2(hM0Wg|TBq6Fe!^hS&@ zV51r1z6g?m92fq?9|UhHAMtm;@!Uv1doLa!vKOJZ9x!q+8DO#=vSuff5c-*P;mA{a-!f8K;&3sf=d9Aq=g`Y_ymx6FCHMWmxuw`Vtp$|k{6x~M4WFAqXhSx zQ?w5JT8sD7WNV#i@`^6RhM&jeje`j3*stVb!1a zUBnri0Yos?2c#UeFR)x-a+VXfC?aVeiy-1RQy3~Ijb@3R#LQuI{Y5E#q*;HV&h!rV zy!!^4d8&jHgETO6W?$EY!k8on3t`f3DG?JZ5|iX$p-!}DD8!U&{a|HbeoS!|=EJ11 zQ2Gfuo8m0Y*NMhLF?Ex7NOWdpfRSwRgz;s7Cpz0uQ{sN>P<>$HLrsIxhMF*4!l9<2 zqoGRu2yJCrY?a|Xd8T7-(y_EkbE7c`MuP@j)XoYU)Rou$M*TqIQir{I&-PM-$nz#f z+<=d^$DDoJUA;%&*@9glwANC1iN-n-U&se6EL>XY*B>}m$J;U;dx&_)IlcF^$M$op zGzmfm&NlfQA)}l$_JYt9FN8GO&NcPdM9wwagMor;4%>65*aQ=iC%s!;_Pe9@JGYbE zvDSEgC)P8*(7VPLVc+4nB95qA5Gk+0kd=#b1}j6fdJ7e`V5m0aW>w2}2&GlI(yV%I zz~~@}+k&yCK|pU%!#uXU^Hy)_JkYNuG>j5k`=Ed43 z?LMju*h!b^PIj5@RJ~=2roJ)-A+A?N=|fUvYSx2jjB*S=)+W15cdA}8-Kj=0wUi~s z$cSWWjtWe~+a?DiGEn$X!p-^;Vr~m8z9(i2)D}@jPh~S4sOH8k&%`2}cI4w$IP(9t zhZ0i7%B^SwXn7{#G^BAr<6(x_A~MA`zZX5#^3b8F#657`Ze!F&@L@By>SIenSADFC zM^q^)&nwfdK3+(^xz)hs>B#ufwFB&LRKOROBC0?$077)s8?N^Un<1D1P>GcW+5#)H z+{uxQRw5viohoC9I9jyai3TzWK$XS4#=#38i zHYqxCC~Zmg=xOuXh56=acZ=r0Oh0Kd*if+HZRc&?vhD62D(@kp~B*{CzShPrc z?etL+?2Iz6xoMgK6T(4+Tp;q>rv{BKvEz8aE!xr3N=b2X)~C!v<*ZBbzDzNn%O>U| z76H|@VUcoRsst86cf*;m-3#XeUIosrq~Bba0Sci<0!O4tKz2>obZk*k`2FG2=`#5Q zWY>gGN0oDF`@^QqGT8)V*M?2XQM&zM({7n;07MbRslPc=>W;gmhuB z)rXU+uV-VH?rZrfl-xDL>T=lXVX`n>PsYQ&_R*6^o8-9Xf@WdAU4`=pq9`I4+26?G zvLO&ZB6&y6i;Ez|T`Pw@i}&RgcPpE?$?pq~#Q6gR*MvXHk=Fg>PrE38fZ&?&$8sAF z7D7UH*cWa?l*2(&$#_$=-R+!gZfylaS~0B$U0QpukzQ(f>b;)X_n{`NNwN>s z9i--8lfVu5tV!TYlGh{_Jlvr~Ym%M9E``=4SJkN`tTDMB6(3^)CSJ3W2AS?s;jLofU@vX@O|Ph&s3aYU^7Mnf?sav%VXa;h?B)pshI zYzY@%@{nl}>!scn3S&oX#njw1S4>z&87rnRT4lsnXRs%|(`mJPL8I3SP7V6oTSOIJ zKaKqb{+D(vu(Du*Yq%3;UdV!F*cOhy6B3j+Nyfx?GuUdRvSbtf@c=6mDDVPyDM*VK z>95WXEpf7+@^(bMa#+>@*lYc&Y)uiDw~TxB0mkLMpJQ}niOU{H%1Q$s-NZnURHR3?mD*X36QKTPUQA;}(jg0R3&$eoiBY zYcHGq(zPeEe?LcRyOJ+V?UBAvYOg|fg2S1NI_taS4^S(6io}HS11e^Sw$CG%7N?lU zLpBG&o@fq*<+E5F2naBvgPnxvpv-O(qJ!++WQY!StkHqu-jQ`oaqnw8N8#Ejt|Iwl z@a_&_0LlJ%_w0YmeV%zjRT1n*oX`yAdm&c6K|spg%-juuCq&34Y}O7_A9 zT8Ej{b89oBO{yfjN7=?Mp~uQBEOrZJ$^oh++qU~li;SmI0d|y&2E>yvO`^wANP=Nt zMr2Y-r!=gq*6Cb0(w%nuOslbb)%rzVgBTok+iQT&M>|wDK{|ArMHo?)YPoz4iyCla zU2n9(dUmUBxjkc#ng$(pe6@xw^m(_9LrFfP<;I(exQSroc}D%97qmL3*s(+wxn(K8 zu6B+hVT1IwF52VB;h5#6g(gu*F&pSr;%;)04B3fhvs^tAlV<~U@4;}Z(ZuArDpLpk zoAhC;J!oR#c6B;M1VMe0ak@$Zr2~c3XwFda%~cyR z)|=EfGly5LQ(RceI_>nf;byOvMukIdYzA9bkH6tihwWy+*Scy$4Ha1g6jzzUq{MUi z#>#_yn_FW~EZL;gxOXQx?#*nEhQrwG# zWkS@DqwA95-W)yq#=WHvS?F^)ac}mK=Zt%^cO*iVq`0?i?iP%Da|}{Up0v2P?2%S{ z;@+}5O^D^|CdrR-zC+;o1Q?IzU^j>}9-qJhuihE1%)i3TX zz1xt(iE*#H(|lXc>=kE}sMGdon``%_C42LAM~=q2JI8ypWLLCGEB zY;Y{rqnb3TBk%*EML=_VFbIabn$OkeAY(Q-qH=xE zXol%m&)#T*1n({h=$@2@c27kD?+FMb`U6#R3R=Kr6*R$R6f}Wk7qlP{EX*Wm0hd+K zg34@yCaBDU7C`=j-pM(m6}U`-4&ky0It0lmXobK`f>z)%30k2tgP=pGY=TyRG6`BJ za3<4@&IDXmK@(g?K@&)JK??%23R=Kr6||r-o1h6Qv!De~vY-z|J~}wLOR1-NGsDDA z22T~c8$3<=Zb%O$a07d}@nrB+m2iU-=_#7w22NLyWY|1O6X) zfalQ@h4k!t5(4Ma69qPpo`|WH$DW{T0iIJ&2t1#j5M*vW5me{Y69Jx6PXy_?^n`%( z>WP3&)RQF^p3vre;rks=>WL{79VxY);i(fO32Cw0A8oL62TH;qEL<%@4$nDZD56B> zq*gP3ny#FT)wmJKmFewX=bhW_U~4p}H`nexyLJ|Lava5>h$FImGUY;Ty2e(a95O?_ zLu0hj9^k0ndcUd@!aL>d=}g98?Ox+# zw;goW>nDZ-x+JeN3~*}=jsPGdv(p%~qDxDu3~v5xqq|LIT=PM7j_w|<9$O0V*B~yI zX~WdguPC*o#$pZV7MzWC^9(=1N!rg;G0rScNw1wIO;Ij;Hf5WAr;h>%nmxRz&0{(% znv}h_tg{vAbYr&eM6-2AnXU4UdTm*(6Qemr9oG^Wvp}ENj52MCvcaiV313v@6b+wVjVa1QmDmha=P(bWL<4>D z(Cz>`DV*sHF-DbjiNldC`4o%nMW_vhnoNCkCi|9i4KBA&R0S4o}dD_&{op3kZPRBZHJR_RO z*;x8m#E@`@;ILgaPx3}X=Xcp(wV~q`9bv%a7`mr}j4Vj>aw0^Fy#_XZcjySn_Go>v zzPdR(18Wn#(Fm{lv$xSM!H-ZP80Lrc*9ZMg7fxp*4XId3sI0e&D0C-yp%M}fXK?~O zOn^7pg6SmQOM;^mBiCCR7)-tC(YTV@gXOIm=|I}+9~@)ZNg_{jA1{^Qqlq_H1sWej zysh;mL#aSMgIF0RjpBYjbU6mE)&_S?C?A=aP+sHdWEzi8YjZpXl-GC+D6jDhSGF@u znH8_*=7>x%uOXRWUSsNH8melju9%+N$V8%7oME3JDWK5aZ?yK(cqImk0i-)Eb(5=K^kT; z((T^|bs1_;bm?@nnn__)z_^YWxOej6 zHmyOVf8j0RIra*?SXlsljMXN|*%N7*NX~&ik>q?S4R4ZjqE96``-(Ud$vM!wNVcTx zeMqr^`F4SAgFIajm{%7(tC_ir5X`rWJfq+VS?4H}jRc-~wVelb-QMUk-eMiNIHO?A zG5tLvv|=5kke$;6_>-Np0}rxun1O6$=jgyic9DxUd{ny-{&b@EN3kQKbKrLoEfzZK zxSC@`tdl_i?=Gi4dT34|{I20dNONdoCZcoTcM`26qP?_NZJ&2 zyWcZYU+Go#!#FZICSKqxb`|-9g|qGEs6VK$VGXY`Iv5W70oM3<#VIwz9uqRX zILT9`jS*hmU@j?TG9doe8o8v5uYz@=WV86n)6vXWFuK~s*LkjX#_G(~&{$K&8s=Xy zI1pvGM;1i+ER6$E_SvZ;Qi6!=!IcwLQ9gxKmBA?mRZ(6=eyJ#{B1}a&75M>9Q$NGK z{JQueOojQRnC(~}@=4q_3F{}arA2lN%_LiHGrQ0j(s9E28cZ**s#7Xd8V&z4vf-ez zK;>qAByH(kXdP6dkv(U2Uc4)tUZYO8xuF)Qx-@97w+HPWE)tWaXlF$o+H!y<(WYp$ z`^4Og+)1M(Pq~cb?{nihZ8ZT+sr6XjAX`gB3*Q=V$x>0*h)Oe?C8(TXZyUcBoQ(JE z;-lW~YH~5&bDTmMSsNQJ@xa3;2uw#}S2SlBgS{BkCq+iWO>R5@%0;e$Bu1{gdn2&Q z)xU|wpMZG8mX81fi$4KID434|6OBI!Mv$401QSh+1YvpR5w)^Y``5zwSUQi-ZYP~r z(*zlGx-GfoP!m662|I9=+>Vn37jNwV$gN&$nl0I8p$`_CdG7d{(riy(C)0eb`E1XJ z3!1U=XIFpFm6=0i1yI}iC^NlVszpRI>Kzmp=Ouz z2kP6+qoG>-C67xKDO8+|<~qF&Uh}71{FH`S-niC=z`tr(MFW1T{6oObSK{ z6P(U zXj@?y!)RSG7ei@X0T)7POReNV=qTGM0~J}YoC>2+6`I+SP!*u6(1uZ7Rw$k33wiU1 zQrS7m9uyZGDeZjai>vaCG+sJd3`YT*n}5SLFTW3oF0Y?{;MC97g-1}ekbY@<*baQitITXR&a~;qnApP5wqU7LSmRUO{>g@R6|P1j+vEj% zqGgTt7)h`+1n%*3{yT9eaISF-*>yKnK&&oa_0h9lDFvk8DPc`BqFMZ=8wVrASkSL) zQ6!q|$I49LMpj4ZURS0$_Vy9i>al{?HH+mMm5p%*`{?;Xr~xsF=$$WZG;lXDE04sb zB+~(vZa7$pNBjjM>coj*i)Mrco8Gql&O}||^Io5Xnu>=F5)R?9VbP)JelK`ed(aPt z8;wD`rIN24<)Ra|=ADX^*r7{~M`Ss1P>b833a&rZ=Q(Mndoikc-WLV`+X* zxxg7E$ffXxLAqRatcTn!W3tTwTQhAYxLAujL3Fv$eGSl_&TLTkFY zkhRA3b=6U7b7K4m7vtl#jaB!!==JYnWUOua_!!v&^BP`0pkTKSan$ejcf6@!ZM~`B zm{X{ryCK-!6IJsi22yNMBW^y{5{9(|g#3Pt>P`Ymr5P7jb4_W@%}UsRXynx+&NACB zn$m1;)QQNST>%`-o+bpR;h21m9QKhJnfmLg77rhI{rB=!9 zV||3aULQu1r;oQ(1Q+Ux!}Z1i3$94a5Fp-xhg3nT%_zh;xKp+G%g`>knsWPR@rDKf z(||OuXhL~;M-xo7a;CvgZg2NGE*P$!{(U5QHlvToz?qgUp|R7`88C{uvv|Cu=1$Ki zcdO#tUp7T`H?}FPvo+nA)yFM~{0&I#20>i(hO2fD1xN8QqAw>RHUn_Q8GDmb0X$6G zw|m2l&U#2ylU}ifk3TK!PHU9$_gnUtAUOxY-qzIU?lg9XxDy!%2hLjJS|>EA1mBWY z*r1r9&>}eD*~QYEjdKEtk&}>+@l80GN~IrevYm|+wJDC-YW|$4b!}o-2Ks4Jyj#0A z?WAgD98Vr?GH{S3_0c8+kl5j^O>yX~+7yTP*Cu0gJW)f;)`4r^ivW8 zm0e4KGR=4ynDXd}iNse?Ovp@{Vt{8=6$3#QT`?{Rvn;8kfv{YBmZB|j^e%N-+4hif z9GRvtz!0jQm&U|#nJNQ>X`agDhqte?fM(R1_y`QOVH{B$N!(#sNT7Eic)2X&zN%y+ z6R)mG_Cp5pnAUWJq|@UX1C^#TGO$_cq^nrV&`Fo3)8g8&l_bqh4ru}=pENsVNE5xMOB1CB zicPF6)Om3%k!_ow9#+Q*vO|1iAKDoM(r5RlpoR@qZz}aW415r*nqjI@qIRj(4 zat6Zk?OD^LHjsdL+e7EX`)W>x-OI@2|FY(yR-#h zK5>W8CCFRQkyGH%mC^+coMj7~RGRjsM(QQcrrvao2oX){2G5I3BLWlx$r@+&Lawp0(c{`(WC&pajc4JEs zw;Rw$+)n7s;&x)nEp9BvofABLZ_Pmukfur89kjV|mML>eLgW)VK^BlYz{?UlQIdC> z7fYwOWK<-n;>KC3+|v^*34|1pdyZsF0wr#_hZT3Wx5-r&s#V)oi1pQTtg*J+nt++! zWoN}~eF2@54tHxCA=cI|O4I|hTD^-b3szewRfo~ntZXsLR$BnIV+j#p(|TAydv4hU z*PdI(A3e8ML~73y@jJ>CBLpZ*Ce_C~l{%Y^Zm`ww^hTD_rU(FM4YC1*J&ZQ`+rvh$ zH4KLBEuS9z0nh^({8Ize@Z0OUH1fUMhInyBEbf`zw4G!y@Y>pnLRsyt>Flg%`YV~` zHRfhDWYjn4q~jm!jqcEkP-o+iQsX|qq;hOaV`Yj}ERSKojQeuLAt_7q(yM(feOL{g zt(|4EnnO$~f;Nz9hQ)>}6T9}|e3XS^KX%1!PpDnkL=BJmv)4{nuvnqn^DsNw?6vWW zo&J#j7S(m?pzO{tG_TBvw_QV_aQ_k=sW^E$6$%9KcVq|a-F_p4Q^3MqM{?2P*nH4b zZucYS)NY>{T8x+j2Cuu#4AZ2y3T*a!qm4`*2EL{VHAPfQA9O6V<$9Fa*vZ98yP zv0Ve%tm1rcqu1!}zN=krGIHeUA>-6DZPBtr4` z!LfUSV?RWHkKT8@5*$5!(io*}6g$pQz{VRGj8W`ZM&TJH(5-~>2o3IoC^Cv>c;{T2 z6zm+}cfYBywz2Cs33v`t-u@4a81IsD_rL$m|ERy855&d&OTn=vdYADPgs7>p50i#N%K>`ZH|7?O zqAF(%l0dO6NCJ&nCV21^%fwski)8|8n`M%v$?`D4Gf;r^k2V}Hzi-@+3!&%N6kJ5nfiK{y&CSC#>_LwNGmDt<9pmKP%0 zI+y79bwW0DR*MO{??eZc4{v_zXSl{U5gn(_hAsaGj{K^D%1U>W!mmVafS zcdUX+LT!yuN|32z?O77l>az3rMh|Ivv6w8Q1B*VE--%5t%kRaao8@;B)6jkCK-JTI z=|Ih_>`Mo#&dPkPT>FIYrO4sdEN;@VBJy)TIY{txKiLuIaX;C6u}pWjHOY?NHqpz( zZ<*p{qK{4Pl2NPEx@6Sqgf1DiI+fFGMRtX;=wtbv*tD|zUM#v8cM zRBhdt4pf~D-A|G0er=1}2p?Daa#puF7vDCw$m3cdly79A%=eOwPV4=wjvPUuaeL8O z4nMU^`1$);Y+{TzbET%Hv8rnCve)~Cr3N(62s%_&iVQnD^hoBEm#Q? ztM=AJiA_B2)}FY-tfMFHgdC-X612`hci7rOxAK~Tq6rDkWCdY%pJ>ypLhm$4L0Ha& zTa8oRh$SfEt)JHokzJi1)vggZPoUYI*U_A$h*(=>a_)2OTN8mSfqb`J9a z8*A<+e1fGlv0w>p+guNZQ0YJX8apEFj$!i&-)uC$UnGkT zPTV!Wmbzs=nr(C$yN=@>Nh3s06=9><3(Kj!d}3V4%eUv;&-J~u>F~|ds5Y4&Zs9s^ zg_w%^aBDy%DACxoht1w-pvzZ5%kQ0aK=P~Y91k1at&N7O&sOIY-bvOJyg)-b`>y!4|)Z#D&h<&cqkL(8htz+RTE@ z+N;6u72`S-*6rIut#MXC8?(zLZ{X4u~*^I0j9Lyi}>*Oallk_JylLN3ele8sclg;E1P~jt#KD>HHr`_>fc9Zg4s&l+vf%W2~0-M;$ zWQYb%Iz$6^7oD^&!Upax!UnPnTP*_uCw(MIjbv9zjS{;<_>|tAXq4EUXyooLtiDL; zPi^JyP;Hgmqo7O92ZL9HOSDSvQM5|vk=KEwjZtZp(4*2Sxko`)!WenU38O2yM}bT9 z=qNIYg$l{7M32d>QhG#Li^f(5GSMuhPth!`)0km#bs9EH>onF(ghx??FA%sQeDNH1 zlC5IG!aNzW#lIKr4Sb>e#B&K3lWY8Y(OwT?#kck#*6}n(ff1exu;@Vy!Wo_lNV7qF zbmG-~*>fq{Op?`21@X`efwnj4IR7sR7b z8k3Xz2^&McT(mic67YnSGECfD#U;q{+*o;Qwv0+DNxasFCQeO))K~Vzn0@pG@hFtq zCCF&i&3IIdR&er^hG>Z;#@Nvvb(Y1x7IGzzATw#|i5gA7eyyS*6r4(>A#%_ildfN@ zGKzpSwJjeZB~g*LV`sO9c>i7FRNJt`io7)u)0r;;tUpM=DrT}dl!6*iK0@0lVtU}H zaM8HIRg(+>pYK_=`84U5hDZtyL}{ctA4FXjG?;}E#q_9ym&{S= zfV%t;1SdXJXej8k%EP1+9CuTA=^?9vtqN~VwMx0MF>Os1RIP8a*E7HJ?+xX8gUxUasXpDEsi19 zw}~OnJiPHY+>i=MXfl4D9FFMh<0!r&^=U1~7sqYQ&v!X#jC1D#yrp*7$65K#Xg4@JEsqDsHj7!F6fdKXE;VvAD00Ns13BLM zmPR7pgN{S?_faLIelVOleC>`Lu#=8{qx_@aY+%tzhND_l-r#O22LTgU4|v6}UqhdF zxI+^lO1{um_w8Rm4M@zj1#EnsJ=fsE9KC{sExM_Cv@4TYTRxxR7OuNbU(oNUCxPNOW zZlgrS%{WU_D*;A3Cy#AA5LT2*?ufHLuJbY%fz1K5D5B6wsBM$qn$;0pG?3ZSM67YC zB-?rsQt%>)H7=DTAwq=cDI(-8_N#NN2rGm3srETuS&G_Gvc>cKE4=m-(P3{itW38D zgZ>~G?QXTBn_Z$iK~xkJp@@@ZyIbL}R(wF{*)EOI7~ z9BEZ565L5_LxQMCB9R-m+Tiu9iOQDhM22ul!wFsVm$s1U3@%iVcPc<%x)I@G!@Q!k zQ58aa0N}NI*UoO@-?NB_A`V!)0^j&8dd;pS#?rea%%08eYeoaG_Di@LeqG+z@W8d< ziEASTmpY$_>h|>p~ogUV7$~@HAZms3kTUaKV&fvM>PGbvq3r!oruHJ58 zeb8>B$W@tVVUfAk;VcwN4IjmY2wJ0st!95)zpT@SYq5W}J-|hGJ7$=y)3&sAve7)V z-sp5wTW7X|=7g!!!-HHOPY25JyJT?z7 z-A@^z^4u}Ps6}jqu?KO=qQ~|TD$iBQjS)K9-OqJkDRF$tQ|suW=i1m}U-KImjQ%u? z`sgDBwy`TuwUIme(b_os(OStIgk}TS808~H#n^*;LXK9{2h-5lpfbxZqYWSi89!l-J@rpD1&gNMj2@26J-!C zGs-}@(K-VD^-i}v+#Mq82MxGa{&EizQDd-uw^h_RrGrv7yFJ3qz{n3)g1N26Xrsz5 z$_$ral$kLiWfK*?X>Jb&?cONJiGp?AdK={uXN)M%>=65A%?6Iubr6JRBR*debfK}e z)$ZXk)ce95Y4PhZmxE)=#z^x~C$BL#uA((Khma~fof)4N^&dV;rZ-=XSk)h%PEZvH zN#wIDTMryJhI=*13q)Fh>Ga;P z!sx_yoLCX3c??~K0B$D??S)8MRw=uN*jgX%Of|dxVLQRS6G@?D1P?pyp{7MH{D>Kn zSqRU))rfqj$1u|bnm~$Uezf1IjRn>tnzV`3qtLq9-z553a_^8T@8E2wy<-=;l7I}2 z!dBPb(o_%Dk?y9B2e^|PcZpZ458%#ei(fU&+DtTkg+R+R4(Lw{h*bZWT{`q8hW0zR zJ7*iP!lSsPa^Qo#rCH05gcqa@scC7fpbL~UD~J&jVtp8Nh5_#T9_gkk$5=rha`2;I zXV9U_6S@qcAblwqp|J~1n6F+RC-13-o4xf1X#}`qV{rpzo(~pV+k*yq=z0&p^X%vP zYPV9wXIlJ0#6o{^aDWU9rD=yl76hoHC!*%*A!Pw6T%ezQ!UcyNfn^%BH<1%9%429e zM-}W7R+8x^Vc1RBC z(c$qhm?;P03=9ob@&u8M&AC3Lt>2w?<4kuq`@%2Lf#GtK_BmQc0&}lFz+1YaT!Zx7 z3ujr_ggG2k{9T;xx}a~EzNxWIh6{AUaVf+hSnmw7Q)zg|%FG%v0c(xH=)O*`1+rs9 zS@If+E8J&Giprrud#j5pU$DtJYWK)AVVY};|3tYhMPNq66fwDv9o7DNFu;CQY@0R_ zIcM{EaWU zG}$pZz1tI0tV~a4%3?IX1f6j~yUfw_Mq{`UAnMuH{Yey?a!4{Wo7)5Yoxy80f+lMB z2(rGpy16h{tv0(zJ)Ttxo)QV3KiNLj>3MTy7HJ{1v12TJ8I1@8&b>b%R(5(=P;62> zrwGg&8U<6{(3N?qkOBG|>{2|5*N~v-5x&ezVJZt0FY*j6&!Wz;G-EpHCM34F$=&5m zH4&tmT$0KlD;bQ5V$zT;m0OTv)ww&VcNt5Q_7bT%w!*estn3U4ifpNR>s!3!CGk!; znPVqhLo62Btzc_3pzxj?0QoBqku3(t_&Lb9Gh%*K5$HblqHP^04BDqb*|re&adZ^^ zp`__u?Lj{jlWCgvv3s)OdiN~i(`l&8s4ktVWz6@lS(GWhr?iCCC7fTQrCz0Hz;Oq= zv;{+niZo~~-mThT2AtGQ?jss-=A32iq3G;7y?x}NM%TXflc5UCzUvLkoVwqBUlxfT;Idhz$ho;_#8m+U9 z94~Dc}jLfOS z47-e&Tbc3%d&wlxY9$P?a40A?wRu)WG1BubWXc^erKZnuM9kV(u%FRrwQxkUc?O9l z)YmOvi0=KsOG9<}(C=FcZtSf4%Q>cY9VbzcIKAZPQw55wEUl2l}7r*;kTP!Ma ziy~l4yI3rrxTwsKCyn~_U8kiR3fmMfH}EXF_)8x{+3UUZ9=(=$m|Ik?5ibjjC!h+Z zLH=eXV*X}Plav<9(PI9Y_=Gd+XRO!0CsKPh2iL8D!~fA!2k z_GD1u{(W?UMY0q^vujH1x!H6>Ki}-O8`>eO%ucxQXuVaCyv=Y6H$LD1<~kNqbqbG6 z50p4+mV{o~+QxnrtsPK@q?S_Kj8^hkal%I5szX7PCF5+6 zBf7;Nbhkh1%!R+d`OOD2{h3*s4%`3uD{&US)uD-Oa77yZdjpJi$s7 z`Ri?}>lKaGw|h;3#@U?^tlK`-Xzub-v^EmnjrI0uS3KOr5s-5hG$@;B^*7;FVHP6_ zLMO|B1O|0ySbW#%5AW{qBmEs#-8K|Y`dhROPQ_^A8#56lp5VPd6}(dF0kaNxj%_;X<52PdN6 z#J3X@pK5)l{N*tF>F~rH;NH6YBg=1Fe(Un_W3>mLS*(qZPaUj}zfm7wsa^awYSy|~ zyLr4i_3GBe*R(Ef-1JrYu6FS|_@e{km8sXv|I8gf{HfOXz_>eg%lP@q3m) z{~Q^AwOaXY1~PtP{Pw9^$6wGNe@i}oe*EM|CKb3Npub#y7-+T0*_I~TF;rF$R7}Re8aDrM)KKyrq zWEIrjQF*rV$JNTSN5pkWXT#3Nr4zVXQT<;kB}y>dm0N~0OyUy0NFT@g87jid z{rbsgs7Y=7@YL_J|9^h!Q|$i_PkoU6|L&Z~{C^9eK8aSXi-&I> zKQ#4W{1}oTRq>&z&*0nn@4NNyJ`QbMz4#CC+eE8=sY?G(eEffY;(t&CxpHwdHCh>e zQ`N`X#Sbt_>f_Hyy?kiu%K)zJ4X>baZT#V>57DpVKVqFj;;k4C9rm+mOg-IJgUr@q zwA_G)49)7rkA@ui+{gd--+#@kJ|;yML9G8Cs3)yq5JsnRo&gmRtj?y@i@(B#b!7a- zdMG$(;hoQ1x@n5Ave|SPFpnO@KWHSz9zGA}9I3q8iqRpP&{){yb~hp7Q<~hA-h?Kn z9m~gQFpR4DgD-wt4fA_#WenC&{`CL(_a-KmAAOyGoWDcPxG%EyWI0}Z-Qmd((2S#z zJUV{i7hWk)efQ+go_PaI$N1Tczs6LM*|_gIpDTY0<&`JoSVLI!SS{QTY~zp^_1f7y71CmY{MKB6`L$2Va@cVO(6Z@GxcjsI`G$gK^2eDx}MMUVk#AYBhRi7kT?we`o zIGV{vzI$bSg%k+Jg3Sr)uRi{2ef*zUi^>a!7eA-Yis!!kMK13eeEBpU!l>Of`S5%H z8=|l~Ra=3VK2Zx@!Eoj=n+kh-Bs6N37ivqO_vhv8BfK2t(&r{0`u9-BP|vTZ+<#hS z*WiEy`i1~-fy)VCf<;vv;Zkd>fST*^&m5^lMyGs*s{i8x-R&RgGsxj}LI?OtO zzAulTSibPxZ0wleQcte9L8tkEFHD|aojNi3$mR2h-Bu&lho#pjkMKX8fl2f|zARzHM+*T$a@`>u_@;O={olYQY0)yYRbiQdkQFRehkHde;Z zMNB?2{u(C{S_YA<(6Ao;gCi&J<2|0gc{AZE6*KdEK{@9v4?mV_$y75(! z^I&{t6C!f2&qf+wyZwopsqwW?7mjK{|J+a z@h&fZo-?1vjzka}6~3Q*_%Ff!`d%NC^eH$r5k@VKpQM%I_)?rDUlqnOa>9{QW8Oou zrjED)e(ilvljHcFJ1r*c-85U=28?MnH(-z!v^o?ohJBZqWwx0V8Zqu(0C@s(W_$;r z#n@Xko!h_hr3*I_r@_T9l3#@pk2uX2D`W{taYHRxxd1~{U3^jM`t!dV+Hu8-;`!v> z&%I#LbC+E>sHrU&5e>(*pxO+nMTVhz{s*Q)Dk$!~{C7ZsRad3$W;{b|1l4f37^GvK zV?zg*rX2vJFL`8e-czwkah$PD{^KI&IB5=l`Yv~_y|mia5t_C*kMBJLD# z6;^Hhc;(rZ#n#lVP}e6g^Xq#%SOCIcREg=KlSN+a3&gX7h;G>YCOVniYLtknJ^1*6 zmBl})VGbl+-wt-f#mvSg zrx+nUSby*nw4i_o`pQS1& zI)7s{v6wPk{*@Pbd?=DfH0PiaPlS1|%fJ4th#z?#tahmi`XPO`+JeuxQXgMp1chVz zCgEK}r(viV5ktNUp{ZPf!Wu2YS=7hRh%tZ(CKw;X=UE>BIn0u{uwqyaP{g}D{tVAM zAZ7Jl{4R1K2k|q5375^70b>p!oDwt~4(h)}J4)|;JN?g+KT+O{*8jIrJgFt4Wo8SQ zzX+iEUUv$P8Abpm@lRQwN5(H=vB~^0+`dp2EQ-mIVoAsIo|P9?m!9R?f>8IFL(kp9 zfbk{b>&XZ2gn3&Dm+bG4Qh4|O>z8kdQh1DYuvK@d(bOs|VM;E5vxc#guNE+)7HWG{ zm=<9YpRPQ+I=;LDzLLmP>$pM|6Z4Fg>x(ta3;OK@EC2lumiD;VAZGN0AOuTMVw3bLG`NNV5wziT%NUJ)M{M;J36 z;!cH3=qiQVu%Fc7wB*n`*CxIriZyLfKT$X)PZ~^?>BpdoH(^G||Oix==Cxi#0)We^JR+KpxB41?|9#8JQ zmhlEFBYl+8h=Ku#kRd$Gh}R4AiOIc)2tG2{WDBQR82<~DfMMO;-#Ng$qj=$GUJoVX zS`S+&OdfuUMqa!9$r?r;SswJl!%QaCmGc`fb7MtzmqpYEQ$XtDcFRx&(e*S-a zbx6|EH<%q@({1vhi&8vFoa|wcY81PNs`<(4g}b?gkm!&ufub=*yD!zv45wHwixl$8 zg>8x{5$HS%`}Qma3@ZpPkpO-QafljnVUICV!ex=L#5f0HocMBb@0VcJ7-di?79(NW zTa^dNU7jB}eEv-W;4WH~od*UR4D*hd9E=4k=V!eY?GlWWD(9zPtNs>x#RwaG8B2X0 z1RY|Frt-r3{#Xk3cfaF%xM1J+$CK~-W3++|zOA)9MmB-8w^bc)-$YJ<_RjFjdv0DO zzs?NcbF`fJ6uuXJkk)0wx?P;0SgE%64$3rv1HzhN5zDZnn-TqR6GMvJ9t8^@RFH`z z`^6>l1QdqR3hB{r{`&WFdhspN8`X!tJo&y)LkS@vOzxL?`g`UdE%HXyhpw>MF!{d! z?aNolwARKisqTFhV}wQebHN(!#y`v)y}GlE3CoiX$l#OVKQjJ${m$P3Ti9M5x|O@o z%66cbNvn7M1$veV^TQYhTd0bJKz)fN8Dam}w$AVUV4V|>@87d4#Q|n*-h?zc69gD{ zGk*RgP!SW^9xGCgFVrrE+oRZ8pe-Y&UiG~nJ3#Tu=f(a7WN`UczXX0@vw}$ps6K?& zXrWF^M*0>bHL`DMyMefeYK*rvo*%d9@I_ zcKg%T{RD&;m?n(4@#8Gp2m1jV_Z+6(Va$do3VsAK#jGE_V!L^^QgJPZ@O5dz7l5FFkWiAD*8K>H#h+2zGAP$Vk^ z0gj6G5hX)Utls`?ef&9VDiYC($Vb*N^@%@+FLbUzE1n1!L}ToS{0ehNY(*>dLj)oi zFjSFZWax(65~1Mw`N_RkVzqPu*@kdu4fj^6q!JE zmoEfd-G~}7kr3dlI<)Ph%wlt8Wjk&y2%EOt4&r}oxjhA>T9%1LoqQzmx6ZVg!l%7qpc z-25pTM+RUO=AER9!QMLg@UuWGW*xHMP?|^vk@@2u>_dS1Dn1ifCt!Djr&n1Xg-jL2 zOokOiCnq@YzZAgL^QR7=pSx6BO?3euL<6b|pkcFK*l4F$7QZAdw@hE7Kcbb*CdMB& z+VP*F@#Mp=#gO0&?;_m-rPGke!OKtIOxP_s5b5?>ED8X z-XaSq@G~kXpq0=fR&`bz|7WPORy%R|?YE{`0<5eV&B#r{nsYx6nz0x8ESCK|MnyhH zckqX4wJl6AWlBgYu(S1#3qP`Y`xRuYt*(UUr$2Fn-TA>B!2*HMg9zy0}yrOlXa z>_K=ZFr7X{(|hufry+FO*V~AE39aGB|Hmrw+Tkt<>=Yadtg`A*c$!x+S#o{ln%kj? zx^M&)gioA*m>Dh*@)*k@#AY?6=fu`7Mtm2jJQwpPhyNiK4wHLdLq-{FqYe6VVm5!2 z;f4n!J*SzW&Src)x%XxU$a^`spl{Vvp_Iv zjqkY$9}1>fU_HL)7Ama?V~pDP56PW=N=(Mfe}M@7LfjL|&1dEWe-}+cgUZs!Yynb> z^1YEg3C$MKkK_Z7VpziV@cA=bS1?>CJzRgJh8j52$H+5cii>~@@lVucYoTm*8g8ot|E;s8*kKc zG&&04Ff!gP7RUkusTrGzWsYk!b?)*PVfUzj;{-^!(49I6X`$$d(Gs}{MPjHk`1epp ziJlB8q$LWYB7!K95;NlDS*DeW0K^V_VQhE+vZF{tK(Ri|(%8%_kOP6d#$V9(Fx_4N zI{Rl~K?)1uC0j9E?zKQWf|AP@j>9vJKMQp<9p2>LSFnygj~28E#)duqi^$vIr`qk$ z8Tquk1i^AcQBOd>U<2X_Sn%ia5M74ySh*l(`t!<6mjYR)c=LUVJI1~joIf|ck==~M z!kq4hr`{{3X!ZPiq%dLcSYRwncmxHGA)PIE8AuFN_6d7M^#+PzC25dhTO}98n7|Cy ziO^8#av&pg>zFD4q>)-)yfpdnAuKd6|2F$l_m5 z?)^U6Dg+}Uj{1y7O7j5BX6#g^wtEE-j*pYLa{l`-pFuzI=*HA_K?zyca7tngm9~IF zcBFdYJriKU^OKLj*2jGvd~K9F#2k~X_`|a;ULVH%z^AZiVg%5hswJ?F*uhlz*O;2Y z&WBw2ehcvt2p6eb60t}$EW{vQ$wf(A&T<18mj4YHq1=muS=EFU2ZZgEu`3v~a)F${ z=L`qn;LMBPeZ$+>xEN>tjWWHR<{Z|a7YQ&p<|bCoH>I{ zmz!RlF>Q(RFbB_vMg`>o+$EjI3^#d6me4S-2-_~eyOMDMS_<$YBVjX^RZ+%@curZl ze2Y5fRvng=3Nom`frWAu!I9bA+XGc(mARLSLLmH9XS=qPYFoYi1;bkj%My74Y$Hnx z0DoeE;bkw(g2V2jI;lGG^moDctWf@jso&GDq^IZj7kg)J#PFd~YHEsEicz%T14|L5 zgGIJiR%U@AZ}|0}=2dr8ll9Plk2r+#mq>n{xUv4=Cts?3f^wRW0pCqU?wRWf`yD%+ zNJ{?6@^8H5*S;1a;R#J84LN>>@o)Y8)$z+R&-wNL`o~_urZ+=IYpdJ8U|qpL%&ZBL z;>#Cqn?l_G^yDK5sp1BaZKjAl?&U@7afdlZ>WO1me0Fm0I}rp>9t*Y*nIp6d_3`10gKkAaYo zTwW$1w?3dvSVb}V)NNdYytwTRlfL&%KC=481Ls$12}s4YR7WH?6>dhaRJU?CionTv ziO^RZ3VU@#>nE>JH2&}}qo`vA8!k26iLS-z%aw}GRzdL0OjTvOKFEW#>Z(#1k-)Ge&@5xto$9pvUURVt4twi zLcR2DwiB4xu3G*Waex|3KK$kbWIxCn}l`=;A>CF0rPu?(on&uluiNl#M zP5#USP$etDQpJ|J5g~$=!~Q8CWJKY&*c66`O*x$TGLCPt;YJYd!_oX&g^K?t(@AEMvJ{Lm1@eNM-q zL-Mnk%sL`Xjy+O-7LL;)eGrw`5jV_(nPGEg6X5Roa48WMFFaGa1u`O7ooKWoreP^{ z3`ot;7Q|xx&d-GtgQgn}G3w`y5xlP==lR%6H-yJ9*{nQF%?{!pWp0Phxvs&X0-M^5 z2}-u1p{KQ>@us!8$)gP^lLJq5oU=wYO7PK5_ENyAxDDH%=u2q#U6zWQ4Jcx zrlG-s-@=)x`cJ;}uh3|D^5-sbk#nwKTZ}h{FqxE4`doYL>3>u^@O16de{CM)WITsI zh6+AKP7t;OYb)fy#{U7yc5$4tzIWUIga)X5Kx8E<2{2tY$k6bkRLap#Mpz9cnC}HK zlRtGAWY3)dTHk>o88iYD3XngKf{`0*?|Zg3S^r#(_Bx@aEAjK5oL)rV2#k^BBq}cp zDr*mZ>Baiq90GG}j`8Qa2a*@jasdBM0%1dEm1;ehD#D_2L3Qd4@64ii^ub35}7)3y%WoxEOUS7vDg! zI`&NH#OFbg>!l9aZlXAcQ(gLsI)mhiPkcZ5@T*Z;KxL88DsE~~wF!rG4oki*S-&QD zApEm_xU;_3dl7oG#o|LzS59YP=-bZzpYD7g%vQ*1oQ8{5 zh?dixI(x)!Cs<4~W(%h~FK$k-g%RoB#W!)`gGte502X|!w|~UfB{-r`UX3+Ni;wdINWGCw5hId_&H^h}VSXp=~2AJu|uY%jg|PZq5TO z{o&##J)-Fr8a|N=AwpRLO8i5GId{h2E7)oo@JA#JaIO&)9~&*~4~}ny4QheRiOa9W zY9dLsd$jMlhoBmmHOm>naz{5IG%DGG( zKkeS&(BWV5Lz0>q#@&F&NrK;~IoeZTaHeG{eH(vx689tX8ykU$ShT3DsG` zmeptZiA;?-THn#&&`qSf%j54B96_2f?hRBR=DN5g8NccB7hxzVTZ1hGBs39bK(Eh5 zW|z2rSW5%d>8L|=s6IM>xb*DgLqBsTPjoG=?)~^plXPA^uK%&~nWVPpR5fDCiDYp; zGp^j>VX2Gn0IcD_NKc{HN-g^G65D$gw|PV-GMBzE`S3GP?fTw3ZUPl7AmD`p2&S<% zyouR;g&i9TpmP zx1XF5_CcJAut}5%oa7v^m^h1Ga~pT@O)KLsQ9aWoQPy&hu>i(HaAAe?B1{j;bg5;QGMFidY^61+g9Y9) zgEI~eNQIP{hNOEAGhy$tC(&t5kJ8FS&p{|6VB!=xM+x>pXv?6_qfPxdw8;r3bz1V& z=Y*a#EyWfPTaF~lY1$JYNipCX_&SkgyBN!ItjqcR*L(fGy=NpF0|I}39&2Xy{x0vk z-u14v-gW!K=1b;3cDmHJD~#w=s6C?# z==~-n4BI`6H4j)mr5!eo2)9+1QMSGq_xzUWm(t}V1G?=j?<3n~=h$}MI#s+l?i_iu zTk{94xKiI?1vv+h#WUK)zV6&>^zr;5Utj6}PX41*V$HW8g<>B2vr45>{!f8G^?|^C5%Mx#x5$cW~YW+Ye zyIN*pgr-tT1lu^@a5QT4I&ixV66w&C%x%?IdQV)XzEWF+xouH;%aAPG@(wb}v-8#< zM7q=oZs+Eyxz~64KQ|(|V0k0O6CC|m#r5g!st;tOuq&~gc7MvG#5&@0(mn(AlzOE! zbbb)b*?ZWL%Cp2lJ9JFXZ8-+J=p>SkrkSxO5yklxU%6;{ow@v5-X=g7UF>xcdYvU& zuMo|X14Wb;IeEE;uL5*pDz_bL_ih~_WH&N}Qs2G81cYl?r>tJ_tuzp3x9@v(;p3EE zI!a`8@n6DWa4b^yIkrhIo(}l=h-bso$Qoq*FhsPX}SkV z_ytxw&oIN~KPT-vILn7D+T`m%yc z^P@d&6qQi(fn^343oiLk?z44`oxc>;t1O(3XH)aJ#8ozRVM|%&3{|GecBaX>D6W1= zcw~2n9I5hCLVd}MPOjLFNC-W!e1gq+Jsn|VQRTGGuK$I14|#FMF^XJym0Lcrx`8LN zFx|sw0%uMams;DXQ)@F=lDoPKX>lat%oL!n-#Jl9D zZ!$CfKaEODtvLGjqA}S(Et284j;XlslkQ_&-qtnH)rCpV?&XV6rLqfKFBn=@W;u@6 z+@DN?RKtGd@ocf_u`Bpxy7F|Ki6Or#JT*AC7p=E!TD|4NFd{@4U!dMH5wvmDS1G&H zW()LpJgseuCfdoD`D+oLs9Tkv9Lfzf8`K6J=BzFg6zP)zik|0t!Cfzg6zzC4J)1?JMoi!ocw z>I#?4gpH@CSuy6DRgAeytsna@;b9yjBfvO9UK_pk-+FCNqE^Boqj^F zgx<_4gQK(h9xJdYi?dKWjtrYdc?W^Ss+Ur@LosIgW}W0PAe{HK*oW&sh{V8hO-7s9 zSaO3V$49Kalx@`ibt)p`>lZZmnKqj~`Jj`zkM$Ymo#dgZ2+wb?oBxs1D!RnQ{2pq( zvBS+q$}-zXDfpNzVz>XxegWKx2*NjQ?B1uK6dr%vkg3)}X{5B=P&iqoWr|p^6z?DL z&vQ9%HU)95FM}Jr*Lh0j&P4;jY0}^2HF!KE>xxO#XmXO;1sYB2Ng^s|4nN{hWN8V) z)fcJNwa=c_CKoqO&%OH?uiVbB1wji-WAiD~O+L%cE6#RagS;fDiE@u|3-JYACqKph zan?7kopN!d#=%#O{-L%lkhZKWNZXbHPFbHDkLF~~ zQ#>h9c+yHKtE;j>M}n{oXXY*s%!4tIR`s!km?!g6O(}eL4@DCUsx`nsKBWm}U;8yJ z*me5?`>^@4V`4I$hx@41l6O~_{>K;d2UIC+E1LVbzRuwsF2g~voZCL>;q7`5>EvzciDKxh)5aISswJNfW z?N+IZ{G^7NRYkJ3FP3ZyRgru7-kvqzTzTp(jeAM+vXQURqA@T0U_NPLpE5I@Wf?Ow z-Huheg@d`U_w@@|#L@M1tL|7ioI~f#1F(2=21W?mHuJy@?KxY1Sa4v<>1!DV7P7u9 z-@W)*ITeOo#Ou~qqSlHS;uuLPG;QI~QK|Y;cS@c?2#)f=b$0B}g8o^ony*{Tj(u># z*e&0@)04*={YOcQkvn8NYZfD=+8A6J>+6Y&&K3_f`uD=7e1}(0HS25;?Jd@9laAis z(B^{+c;o!p5q0aC)h@ zQqR@YlET9k5==Gi1#FAdtt67v5fMWKp+{hau}>HGP8Uxr)lAA`Qtjp2jsBPMrOLf( z14aK#6<=QaB^KU|0XK6@r3sabiMO0ZWLMg*N&!5vSFpADZSYpMuD{PgHpsEA(>nXI zIsX>MRNdv-%8;A#%cxydq|0;;Bxaktg&3wqA^keHK3nX)GsU~y(n_x3 zKUy){*=d`V#$x-}?Xrxq7UFxay^X7a+$c+olASwbLysGw@F&cjE2}-5?a*jfZdS-U z@MoiG^Kfiu!H3ZpC8|vm_UCzFF_CDc@g++58M)Dsaq&*xGia-bx$Rk6Unf7)>)W@; z$>@rrPA;0@#q3F2(Z;1tcz%!!MxwPxvMiKX+b9~SdnVh?2I6{O%EiO+21&7yERZSa z#6aLZg4=;CWbA~%Wlj+@4jo0zwvD4)*aC2s$!X5)W4Hl6G(+ zPG>dp7-D666REP`Nj?@f+DZNoGppGN)?>i*X5qzHfx*qEa%cpsFh3 zV?h8;Vv$4%7!Mqhe!P?8mqfz)WSte?paxJ@nS^5hI(SJ~X?~8mDv5?O+4;nO*j9Af z4XrJcZVCp;OiDs*C*8|$-PI?o9x~p-uxy4JB1#jYVJPA#JoGC5lJ>OW>Dxmq+$Trf zfQ!Ghyu)t)H&!6neb@&>$PC^qQuxKfF2MsE$P|-Mke{(A%Q8@|#`n;?V`_7mbu!?zqhIoS(v5M38pI8u{Th6u&e}*`}N?y#S0kyUZdM zGg`v#kD|+|zO;CxnAKIU63{e9n7C=8Q~dW7FVaDCiVWWVs*4CXVq)9OfM-H->kzFA*uFQpU^=-sv4Xn&%4TrHn^~ShI5< zBY9i@q6=t}qphL1Ojau6GABw0!N|v_$jU1YzIE=s7wDO5@&lVhV!M>UP0YycHy3oy zD;SSqBDx%s$wS;X-q`&y^5+7LwXTO==JIX$o#cWihLT-6)7INq2_2TGo;TPXwinlU z*`d?$ax(@roXhAq<_^u+u%X@9z_wwMDR2?CO(jV%?i@bfda-A9<$`$?F+_xPi2PsQm zj|Zt5U-DVt$kq6gHNNCx@Mkr?WN3_6<4dBJaF|heQ$^@4bu?=$ir^GhjW1c_OOo3} zqqtC3SK~{viOiE4(vS#gVAR$4l0?mFe963MWILQPtOQb@*Z7hUAsvzIbfhq6fMR1u z)%cQ-$XC@U=n5=vjV}pFsC%DZJheWs=m9ldHy;RIXFVv>)`@ zG)*dz&r{<|*7%b5C|T%w_E1P}KdpMl8eg);mozDY{#I60jW0=_YH02>%5Jh+oY0h` z#+Q@}+$p6RUviK5BgC7ORZA45f(KUPOCnJyiM$C)nV3Pu)cBGRBb_W&*r7DuSms&d zONRV#S-j@S;xJI-OV;?34jjqqH$!bijW1c_OR7wC8^vR$V5|zJ#+Oujy;T>va=i?M z&dSjSA$)y#R*f%7J$;QYDb0&HOQ5yJmo!SOlw6@XH2o<|%nU(Za_3smR#wx>9k6GhOx{^++6%F?I~--~irYW0_b-dL>ua>sTxd8UsUt$1jNqptrq*n+{|8+t(c2r3NC&grjH6 zl09Vv$p6e|MlEKYQ-26{UX}W;?JR+9YqX+nDW9SpfoKnHJi9=xfm8@sw=>%pMkwP9@KbmKDuNrhnyH84!qdilAgCVVBR$f=1(ryAED z3Y0FIs<@-Ws~)4#S9K1dZOmVp`L3-CA5|<&@kk*V1&kj1!5U1>_P# zVcQPR=s!1b+Q_K0RJo_EDCOd?27yUCQQJ#1yXeKI?|9vi>86q$ABu2Oyqb`PJ64u+t_m&fp8ofVo(2?7975~{Hz+7>w zB+|1qKM?hof&N)H4LVIu0D|f%AA2=soW=K|U8DB_hbFn*s1@jyDWej-aP9=Fmn5ZT+9Q&tgWWKBSL3Qf zQXH=VXEWPMK^W0gZ(#vu@lPkfSgn2`qlN9;7X-!83873TmI1n+G?LRfCSngl6bI5 zFaY%4G?Rvg+{5%&1z*zd*G1xqndysxfywn!IuTFf@mE)M0f?>4EhawMAP*KX0q4F7 zMy9=29~m#%0;6!!dvhVN&kzWzLc&>r?D@-=Q1kR4+hl?PtyfRGz_kn2UtW8Fo!{yI zA4}CXUJV3!wT(kf7Rgs<$iUp#{?<6{E5WN#NVIS1^u*T{eQq^+P4xcsuB~Gi$quCv zGq+9CQ``vAp8-Y#m8^$>=6H`9Uv2|GP2gtF9)Gg`YX+T0qgU`10uKBBPVeAJqnr>} zLT5SwT%M+Y9aeu?B3<&vPGE6*sY;LYC3_+WrM|E^Hg>Fr9Mxs6!cd~OI=#I*P@sY6 z^{Lmjc%U#Bn#n|OPtuGqf8UYc`?0VLBI@KFjo!5yhvQdBt0$^|WivIjO=Re--ru?P z{$)v^_RfHB?!vxkhZSB6jz?!;T`5}eZSUUh7FH~k7x}CW{W3h6ybe@ zlOty|PHq0E#9pWUyO)&*CD!S;N^Uv8p99d8R#G^${&L4zlAJ)YDE+$q)L*ri2lc_z zBsLMWdy#k!zskgmU?$dk{K++RZ`HtPjWm1D~vYy3(B+PQ`amNic>(3 zi3Ie;`9XY2`;}l3^x`#U#t*@vl)dng^O=y-9;Ft(Cz99SmCE|MCUpqzH(WU?1h=~W(xGWbw8_roomc*PTn>n37?ZXT5N;Hg`F@BmA{r#mIs}+dd9)&e zp!)(pjlDYkcPzC-OESuDoBw?vCVBQIS+v3XE}cdPz(?l)l7le#v@<*b^;L#+9C%uJ zIT_XP5vCO$I!HnRTVCx?`*>n}My^MVDMgNbriQ5)!H8r@49+KmQpp%7L3%k_ zW$Mz-=UIw)b{DS2jO`q0cP*dae6|E#*JS!7A zWjhZm>(C1P1tg{M*Y|t{1cv2Sp35�t(yB+KQ_ zJsLkYB+Ki0U$?HmjOrxG^>4TSGO&)$@Wr2X@oT#%F{{1}g@RPh6^e87KAXMma~Q6k zU4|ES*KP-E-1y9`=0l);ba=mZwGPT5w9ET1f;G2Q>iJv$fP+J$_dgBR^0>gnw}sv8 z>O0VY;&X1jDBsO|+~}Q+OP4Q#cDW1gmdV#rw924Kx4`G?jn8j8CBh}RgKyvgTQ?OE z-qOrg;4PI}<86$#1Gl`Lnb~HXe*$mO)m2RxgU_Y}zrZD4COA7p2eTZ&OuF0oDLgGaK``tDSBISrP-NWcaY3dg9&7Zj%G5D& zFOg3Ax`i5srmQto~m^-Xxs(TNxFK%bypug)d30*)y&mb zF2Pm)SmQIu`l_xQp6tkej2M`v2X5!kWCKu4b%`vhG7$#TDD(ej z+j}9dRwYR$X*Ifa)4Sg3OekiLsO97~xEn;uOvFy_de5>j#T*J#Vk$fLGrJptR6f1g z<#M=Gf7$y2`#il;<4((w7SPmNc9@vn_3Cibf+Vr2#Z_QxOXuHtS}!whNq(5-E-zF_ z4{$1J7n2{PB@{-RRK#m>-12E8TzISuyv2p3)n5+CiqomT?DZLyq_WdexjX04&dmxm zIVjsB1Bxd|mZS-YdqxQ$49vlM9L%RlaG8yOgTZvZETkye<4!opw{n~63 zVR5Ihw=_P}{jsIwRyWD5hWV67v@#dJ$|Gup6WH1#QeJDK89s=Pc~aK+j(#L+xgfdMbT52jY7hH<35GI?;sR7-i@!K2+9TE;Y4@I4 z-fDb;Y7xZY2jBO{PLi$t(jRjbWr5EuZ|pu7xg`I0Q#iWgI4w!}SbLacwUohkO_+G# zRXr)mxG7^+3?s(y3Z7dU1G{Kd=ZlYpYn}=jMJ+C5QZ`O(0%hJ#?ZKu)CFwaasi8EN z(N^O(RrzAsXK^|-_Fg6{a1|4JakqG;@sTduXy};Z{>sPmqhZWpJiy%{0LJC{X!^%+ zK3Tb`80E)`O+|ZzpJ(%PbW^d;f`iCff(RW{?H@3yj{2eW4rJHM?!Zu*ym=OImt0M${BOjrn&YAKezI81$TX(t2WKGM)4TQ z0qfp9htotKFXhua`0Xdpzq0eK=U$Jgk+3e2Q+JNt&nNBv`%lQ8VW|I6e->Z0m%{)X z_?R_)J)Z{N$nL$9k1ZA@q1CFyCB@u+4m&O6DxVardY=+4TenyOXLhVmVJ4b(?3DxU^C+{ z6JtxA+2fw{=dF*sC$&Lw?mdh%-7yEDhS&I~iQ@yabq?Mdd4wzV#;HC3AHs%XLN05< zLW;$xnd*G#*q?LJRO2@fIw|W&Ls%@VyAxkX{j^bzA(&%-X$1lXmaE6YZsk^c|eN4GT1+bQJp#MopYpi0~i( z_~$$c-PnA0&c=>^1Pe@s^sI3vH84shHQwo8x_tJk!<|NlWBT!B8t6^GaPvzl1H}y2 zZjtztVPE_SVl51_+kf+=n$zr3(xnB3-7Wsw#xI)bc~1{K4_B6~5mIfjsmHTtb@~^* zmw2xvr?W~zPw?qtEtfW}^0W8_gzVG`Y_AQz@Ka)qUn%^QdBnXuQZ=6vI*RSw&QCX_ zkU8kZWvKbY3bPfNEgl?F_8HClV7F`WKD&~CjJ$0U7WalX5MNLoU*pCXZ)W}*8#g{| z4@RKK+mPIxN+I>9fb!F9oZL^DKwwe$z~k$hf0FRjWbI`^NH!kjgMn8z_VmR z2C5N^HQ!{i);CX05{ot3;T~DCC)RuF3)_{A{(~yo`6Jxt*VrhPQA6keD)_UzQXF#b zP=e^K4=ua7I#|vQZe5E5jT%d7W6 z@GZ)8FkXE$r+2LUWG(DmENS(Zv;X^rHjm9SlMgof*JEj__;VwVlCSkh<3@g3$eBUs)GcXCipU!`Pfy}E5c{(%u?$q7Hu?=-#75pQ|9RwO zc~LUr6J6of7)bEsVHQhRDpM6&86#Dr|A|TksHURR=r#H&wejH4g_G4iflPNiGgYh_ zi!>YL-?VljLR!4Wjfl|A#d5o~^s>rErPw+w4HDSDOFAWRRpt6N?{RD;kBt*R8zl6< zCPCCh_{$qabZIhfDRLP6M+D3J0Uyaa*tl`IXZ$;)mxnODSlPDN z+9QaXC!zp~L9LwgxuDVCR4EZX1rKXSTBO3>l9>2(#m2@YHZqy7m(G9n$w3!_v27Id z_L7<6A^0P4ZfReV=jGx}8rd2a=`1%egsqI?sun2Si=A_qM%S)Pjr?FZQXc9o-B_iC z)L&wq-F3X@f~E>dYP zm)Ojty&5;Zwp%=*Gn01ypT&)@H?OO)>KhWsE z2Hvr$sp?5nl@o7Ur~k7jbb!5{5A+ZUMekBd?YczrwyQzFS3JW- zt#x%aa>pqDa*b`0!Z~AP#2XJX=W!K`J_m`5g$d=}e*zVFw~;S9u2`BxmU+v@PeRtb zcCltuU)XdTyI%=irU_O|unD(HmzTB0@bXa|Q8rE?%Q;*ke6ljq+2UX_f7+9-r=WKq z*ch@pQkTrzp8QIq_gj$DXk$i0@Vh6j>a0H4!Q3zH(rB${hcj^ZxXr~<|Dc5=19AH# z8Ma`p*ip(^P_V@O$B&&nnU?<=RS^ILq!g?Tv*n#)`Le zQQrI4w6+haKJunVSJ>3l)uA`TNkM$-&f3gR_N?mZ)98Ng4^FJOIXWKQR&&>tGkS)U zlxlsFePeHxa5Nb))41{P<7sL4XGslp**Xx2k^{)UW%D)K=NnaaPesrayB=OdCg_1n zZm|*Rh+|Lmd@21A#OA5bfo?3624Lp0^*3tkKY|Fmo~N=_6Uo$qkReRLAUK7nf>g&0 z4x=3Lu81Y1NcW4!*4cxRo|?r1^`n~D+{<|pvQhKv-FBkgyLA~=n-Z!|Hg+$87mypD zG{)5{IRCi>?DmC^Q$gy;krBs#DK-^tH==JW$1zguwChPb{mZ?hM6np}2qPMii`aDD zr$tpROm6Gk`e4;}kkym2;_nij?=)U5k@yY`cViN9(7}$-1V+rx%nC}4aQeQ{KL9%1>7lQX(^4{?hm@6e5bM!P()h?~tmq^RgVaI( zv{&Ojc`y^FoG^_ajLjN1k`T7JXdiR;GGSyqCPmO!nE-Nph_lV^Zrr%jIN{qDLwIQ2*~zEWk7KGaeOI?J{iL1k-nQ@fDh3&wmLo!scuI zqYu5Zao%>ZcC0bv+5S5^I8>xcTqR^)Zs%otZtaooBsEBC4#HvmW508@AH?L7T6L5T zRz+jy&afo8Nb;U!>@b+HbBkW)@;^>4;Gt^T{D^tTqS=O6cx_nbv`RC@x8VBO)h8C= zb)0$A#o+?_-S}dd{;TcRNE(&j>+~CZ7g1 zw)V(XUyCdHg_pg?t>{%>Yg~1g?oHLC%vH6XBN(7+#BvkglF@qUsN5DUsnm7KBjshc z^GyiO?LwjlbIVFf$7lPSb-utwlbtU%Nu66dHwC47s8y+kkfbv$gY$lFlCmuLQ`%?G zQ~&7#H(;_`2x9DH*na`{F(f-Lj_R7f_YWuBH8VR;ddf7edXoA{W}+3$^}Cj5T^1UW z<$VyNeY?DJc(yNk4AUcwCRcG~Gom(FmRLP+!kWM|9 zJJrs!2fX>K2?E|%y<4(zO$c8U`^;%5+KnUa9+jk%FP!)VD%nf*ad_Cd4WlJx78GLL zyKiG@so6jMOkn{CLTGA+qDH#s{R80v_x;3Q;cCYq#s#DeLRBCq0$=i9vPRBJ#` zi271vJjD@F2SMC$bQC+eCHjr9L=Q7~HR^8KG-S$M&j-*WDUyXtOf~alH7h!|i%-HM z6&`x$GXGp{fz0Ujb*9w^aGr5@-{u`$(ru5M*))!RdPJuZTP)|!F6pPt_T9MlYj_Qw zY+Sc5EKWvao!7Q>S0A@r>FNM1r#_fMyNy_l8{aLTWnOHGNiyzPC5bs1(i=6&Qt0K$ zM*oe(u`$Nw-N(7(1gOAO_RwYhNGpZB9rHt2*D zNL{*12c|L`ZbOUCf0JnS;#?&ov_+}uGAzMirKTf;rKTGLt5IrdtftHqX=}H<&f(%& z1LMf}Eeu-wc1!1vlNEG`y8WU1`#R&du*KCn3`S;m|DxkM6Y`$vvhJ?cHFv>U8yNRC zzj1!?LBDlDAxT1*5$fGk)T0@{Js9{+6)||JTx*_eA7xRd14Fs*Q)AnC zHla>OB?UU(IwDD>c++0C*IvGs9hCU5>m_&Oepjr-ChyTc3_KlZ|K6VroCqK6g*n@iGI)DGJa6eMw1Ir5R*=%>FcGO*8li{Yk z2JuauhZpM6B@T9u{7+1G3-8@%l$tKS&U7dDHFm!diebbP=a560RT-au3oflw7oD;M^)lR@y|6!D&jPKXWyQ}c zMQ%dBjPlQ~tl*!wt_-#YzmvUTH8n_!iU!Ro_8AtauR`@2%6T%#*3?$O!*U=nJ)XJ~QRw)CO`M?jV^$(NAsWhz zMjAIBf_@v#^N{UxJ7^|>!zLBuvng|ZV;T00XTSVZ+M1323cOD)uDrzu`z0Fk&27>C z-++;|%T3gaN#RA+`@uC52J&jHVT)g{cUl6${Dm(Oi@cH#ltwMD+Y(DtyZJbR+cvZ_ z#h1IYODsjbNjFf6YDc4}C91`!m;6waP9=pIW8kJM-^5i;i9nC*d9V&o@FNG$!I&$T zZ0C}!;Lb*AB5HF%EsgX7G+f>aQ>%`U~st7!EG^ycxX zE@JKg>LTtLkw>cHt8BjmK{Gb`=QGjGKnRV?KWyWjD!yd`qS$9|kl2jUA+&po^!1j2 z(>Ng-V8S+`8ys2W{>Vn0A6_;8uXt{!*gsSpWb1>!@~f!2KwX4@S;d3a|dw{&Lf;#gJT+DA1xdc z2TKt4<$>cY8M=L3sbU;6CYBcpiybv=rg#r+u$zn5&R;VMZJlQrJ(Af^VV~rKNpY_B zE$ImG*aD8wK#|)x9jdPNMv@b;+J|V*%zc@8FJoP+>63?o?JBteXJaKTBv{1t!CZIe zbcpj)!zWT=BGgNujboyiFQoTH8CG3=FA3b*Q{H;xBko=J=rqXe%vZhBn+l$F#P!l9 zp}uw8%f3<+&P#7|WXJkeqtJm&F!17`#(9NlY)3&H?+Sp8k=I#)YZP_^l4QDg&q$c% zV!ARvz)`<@IurC~9h+gSaYZQH+30@*agg2`4=_f*w2~;|(&>c>zB=5sAYn{W?g|os zTi&y5{{8vuWV{d`9%8(ho5)%E$nuL^+K|*P?htGqi-855kVffEHm5EdBtJzG4Ln~S@>i02@J(^SW%{_pWLqfBlW zXG(9XxKk{$WkRIB#`|Z`pm$&5g@7#i2M1B)4^FwP|i?AN`57dVJW}c@0K@t9OMn%!P_J z+8px17p`Bm>1uf+L+Id^Sqls04ZDS7m#1vir|on@z9bTu6Ij0F3#5#&*0IQyopDd2 ze*s%n-m{He?CI~Z}SIsDLm5$T^#ZJ4@b>K#+Rc*#EgI-UQrdc@u%6VIXk^_MQa?(f(2uOcpMn&`qH}o)mNHho!>7`&C1Q|`d0|Dr^!E|CcLhHmH$8`)WquQ`q#St z6)s?Ne5dMP$KWyfLkE2V2ApAb;G_578>+zb`qv#V-1^r*HG*m8G0h6ktp3$#XEyDS z`q$p~U;S$~-!Rp@{uR7aF$$-g4Iy1BdAF3}bQ;%YTXS+oFSO6b^R+@%C3d2uQzBvPxY@s+GUnh zsDJg+u3Z1xtLtCC$Mvsa#n4Z&0+8wzQ2tnwI_XP=Uc&E7ZSwep5~@+4JAg`qwa!?sKev?JZFMYEXKr*T_rc;Ox__ zf8B9L)W1gR45?^R(yp(6^+G+m#22l9-BH)SzC9H;ng)IW)V~H!I#vBENX!1z^ZeGo zhWDFE^6cwhd)4|^gJm43f9;*=^{+u;W@UQx#CyTkzb39YRealWIlf2ruemNMFWi|` z{~D-ys`^*2E@JM$sq0^RXL|i>6bIS*ko3RlPnc5uYwrbE|9VOamFiz9VawdR-xu|-!zXC4bX8mg*lXReq16S)`tD@vI>tB0y{p%T8{~DHjfs~Pf`qy4v|Eh|*=ezzjEQ3;q zhu6Pq=bf_tbw^$QY5|iUxcb-s(NP8V@sN=h@L#9rnw#d1*-GsO2V=E6}TBf^IvrV%c}BBN;qG4u}{5AscT=;x$v+9 z{-cpZh5;Mu)>LSI{6#}BV2{w>cj{)=Yl#6m?tcAJS6NRvJH3Kv+wPHNHTsC^8lDO+ z#;u2!2`u)0YJk8eu<~P?aOrtVZW)FTYZ#A~a?s)ud^tuoh_#AZaj;)`{SqV9;L8pe zfGiyh+y${Sc^Hk&abzeqY^QhIvcfQxnB{V4*7(TJlL#_&z_Hfa4@RJr88)mR@NL$y zPKkcx@VKh$g|J~S3)rxr6uJVDbjPB=uvz_e!h^k?`3nzrul;nbEZej~pe2x_ehClu z3Xcc-X|DEou%G1DDzADx*sbrpqhoPk5GbS3Fp8M_ak`W3c}5pO|}W0@+P zdIHbl48NaGfFC)A`<*6sH|Q^qKO#qc`3dDatvfTXu^vbhm2t?qXX6mK;qCk}2>587rR_-BiOz+0`Hi9Nb}sL*)((Lc={Q2$ zY6I6C1_GPy?FjHH^18~(mY&w+A1=w7_#x5p3H)VE+~K zpW1VU-5?oeEnHgs8OUKf^9t7t%jKVBAh5?j(D>-*&L<=3x-oI7ZT{FRBa@TXD`PnR zYqvNW@L$CcjUDeqmD__dNprM<|EiZw?YWM2;ZE`n$P>8K;lCdL1Q#uc{~A^aBo5)f zg5KKx;xmKbuSRpn^T>96`-hBI4yixRcadYyr6k)Rm>f3<kVv6}p?2n9JK&9d0)|Kn&eA90S&k*TPL|`%;2`1*P^_r~gJe zA*qq5+QRsrpx9)C=&$Zc)Mm2zm@gTR^ukV1vP;#~Hk)lwq0_~rnt~eq>vZw%fd9J9 zP+=*J+Jgavg&HgTn{e1!rf_|>zy}s`l zTy`1VWCG)|K3%0@F(i|6%2%fyNY>#kLEK41RRCYF;xkX`61d-?yztU>Tdk7X z7yGHX+}5$nXs9}ODIoVWl=1yYMI?ATxgY`9@kN>cD6;WQ&LKHuu`_9C|gSwlxn0RM){<9c16k+#APa*@4oNuenXf znF(SCP+Y;cF%VZhh^5#T^0Z0}mebNTV;X#~D_Mfy=r?Kbt?TL9>ZG*@i7}SSXAdNS z6Y*OGw9~)F3`AA{({S<;5nDPnYaq_2jsCyo?UXfXqv=1l{Nf`?3pE5vd+xIus9iuQ zE?;@-6c+@t4w-Pehi9(SU2bj$8dEGs25pi)oqt6MKx-)fM{`dG-2_d-M>I@Hww7Pv z+p>W;V1caR5<)*K(OZm*r{~^f-AVmMk63d}1}dD2akOP(WCt}@L2BhgI$~-87-LJV z0k_TnQxtVvij3rLRbntfB;iF%SRJFk8nyv2`m}>+Ev*yZ&`QhY2WNSs*)nOkq?EdD zgS14;2;?9%5^I)LYJFNMI>qaO_O6(lTG?h`V}wmMHFutk*lse76GV399yOSr(&02tZcrQKH<{{k zl7#M*_aZ3O9DTh^OuC8-cy(J6yB^F0TQndrbp+>|dWR)sQ2>2+e&j->bgFcszj35- z-n9O5CxjsXt?`sr!Kmy>o5AvSiwAP%cJ-&aKG%kRiRLcBj2cj2;#2tgXfU6}sKdcl z)z)qIBd~U-e+f;~1kwQhEv=FLqyyVzIHNh?zPj!eK0qz^MLte7U8Ur zI=01LZOG-AQWH3vFB|=(Pn|rO35(O4Mm~c@$DUXmf@R{F8EX`>5#~P#V9ij5i~@O( zAxqDtPplI_V)FIYyHvbsQqhQAmDQ!YIkgAW3fctE_GurlCUG3m9Z(ER#|I_Mugvel zS!D9DeCtIdRX%U*TycR86<92C?BGdJUlQ3&I?~P-$3nlw>hvr4shW*h#-W#YW$PiL zqali^Fg|xK8&(-_mwEeU=<_84^8KEnsR`LWQ)a`=2)k33i#GP4>4HfZO&1Ot_pJTe z%;ZymQK*S!Z$BhPZy+kMlk7pVp4gGv>dy?or5+eDEZ{f64_*8R+Znf-$-555Oj42( zJcH@6W9kXNUZQ3T#I-*Dn7q@HrTFSz$$hCW`~YIAj?2!2-~m%Ry@N7%oA5%w3t;HS zj2UH+2{Sexl8rn@mw8Q<>yeHNjb+ znJ073O(dX{{Vaq45Eyqj&m#MG7bC!7GEjo0&sBoO<-ro;)-7o!=GuyqQnp^^)lx!E#th7643za2WJ=e8V!T_C2% zDs1vZh#5>1i73vm_{v4o>&)ff@-_jwC{=;(XNlJ92>zrK0V18>Mw(3-1oapos3U4K zJB3o;y}|^<=M5vci>MUeN&{iCc<>B^LUokL=;FVG!^UMH;Q?Sj8NN5Ck}^i9DBwpU zMIynf9}ZtOLQY>UQs@YU3~-Fb7@Y{U=BtU!az;g!(^>7%P|IXaXsG*enzfgaD996@%F;Mnj=ImK+I7%~OqvOsu<9Q5n+4bEt0V4n zkU5ey#XazHD?fd>t%nsP`2zf6IE8eDNa2uAlNgw7OtV(lpBVbUwh(IEaIv|Z`68w1*pf!dZT~*;X~*8#kCJ~X?78sQ_+PcGvoi$z(&;` zVuTls$p&hHOSN@OFr1%sA5V{svS`N4@_F*2y?hbSF?X@^f}!OwQSqAllWCA@*snaE zEjB%N1;0#Jo-Q2%xBqtb)ZpBnn*<8=UL7xV7^(uK&g{Iuan-{xB2*cd5E|7*WrWm3 z(8g6?y&ua^o1J_z@L0|u#C;WRoaV&9+;8B%U?=_uJA%6R zF9@BQKiwYfVN#>Ugr z3^w)6JaK-PAUgY|q}!(tn`*q;zg!0gMtCGJx=9jVwnnF);CTaZA%{)9XK|r8jq(lx z$*M+yPKa&mebs1H7GjVwsH7Bp z%n6JBFZ%^>Cn5;nv~hT!f?xnby{(j>&g~JTvh4v)tF%lJi~ZAc?;r8c!%7PnNaETB z?_FoJoI4i{0H;ZRm)GF&;NcUK5VHXLD34iinhqoGGUD|MDL?GZpaHeX#f{T*?>@#W zx9gPzEjB5P=y4UBe3qS8P?V5$4f2wpCdxg=EyNd(Hu|3;B;>4bTsseOLBc#0u>{lF z|1?-~S{plbCfcMWM>1~b;^aNbym+wA203p7MN4;?&GSKmPm8mNj9K6o(KN_zSVTvX z;FBs2;HMgON;rN7y#wD6yfD5|x`hVmHV&u*w%DS3ZakWkxpT8jCKv4l^8HBzH?6YH z1|12)Hk_HeJTMQ&Kw8zu7Gj>vOEsnN-95mpz$L8#2J$IQF#FoCX~DqEO`9(}CZ+>J zd-X6MRSErfW^QIQaI7Gz#6g>q+qBC_a8SDguVbL5)-N%S%)%zaF}Fmce*%e0>%_HS zs3Vv;27TkN}WP;`vMVe-&6rg+t_XufYMKDn2P|E z?&W)X)_im2skgMBmyLXlY*98g&Ssx9v9AM0iL)#tMv2?8Y~2#N3*4i{$~VC9po}%b z_E0YdMLfeogl(Hec%Fp=Q%+xV{aDEQvV8aAXXR8Fb`d*jeI;s*o@COQ3QaRu{LDWC zON{csb$0B}g8o^oTC#-Mu@6odyXBjAdh&RquM#)8L$*V@7%A1p$W;JwQNZ{b{d-|k zzQaTiY7HAidy6&Oq@(vYwE56bym9__=;K%QE|>Y4YgcV5ggT0?7*R)!vpnkPM3meP zb#yNybX@gcUslmoF_3F&>JRwZO8|3I7}jWOm@}%V=HuQrQ~XR2zL)7!*uiL@<}Z1|7hyi{7@2;z_yS((&ZUMlDZ9mA%c7-u)^4h8{OU;ZK-5 zS5|vA+meeQ%fN_cg}eiQHkvjM$95Kc7>!Y)`Tjg_q4A|v@iTIxBje(oyl2o>5p&zK zw7$;XPp{9hKu<1^8y06z+KM)AbE=phB!iKtl!X#&AVmY&NNhVB2ysmu=W_9Iyg^bd zBnxB;Ix!GUvWL^#7TU;W$!BMQ?CiN9C2Wg0qO*nPf0Y*@{Onya%-2hD zET}N~67wKCO$zH;6ca19VG!*P>94duvd!jGwghAgo!gEn6nN(2874fkk z04K3Xq6CbRLDG+Ra{Q7=Sf8x3;v2=oW|c`O_OD|+6t6V>9CK9?gDzy}6aQgbbuh43 zJ5<5Q2^yV^cP1qvwv+DVx9;i_Wp&1|><$ePr3uk66!B>udKG_3d)n~y?V%O!lcR3H z#a~+9VYmMqD-i5H?1Ld>2JaPl2m>V%Jg|XGF$o2GCbXv7My93J=&`W^BJ%&TrmG9^v zJ=c#AX#h)iV6)Btd-7GzP>9d0zRd7FpM8Df8(+WgAJ_GbPDW&j$K~YH`euyq*iS0O zIY9#Z=+nP&^Gn*kINB9l%DyECf`MGuH&#+NhtxNYp&pwicw+BXU*BjAHn94a>?zeZ z?sx&#HwGdN2I7oJctMuziTIs5F7?jn`o_|9Vv#_sZv>=M=P^zy+n(?G#_;AWW~4}i zo!hYSQ>a(Kl7?ePdJnrzH!i0mJGW1L+k+Bh3DADm$?HMxR<9kvLV~ z*ju>1(U3TI@k;%Nux0I{XJ2(i`nX)**n6SWHwHqN91rrYdlJXcj_4$}4j$%SUElaz z>l*{P<&A)^@!~l1S%D|&89#@-KPePf`Q9L>~$-jPLiyiOXd zZ`@JWH*O-YsIG6sI&qnSF=ilJudZ)Y;46>VVR?U#>KnuM&LZ}BxYwup#%sS5^^H4T zNcD|@#MnJLJhk&s9W@SSVVVn|3Ug`ZPhH=*XiYU*X-i$-SSr5$p4T@fhOdUDy`f*K zZ|v3ejbEcg5LHQ*dR^bR_D|hOr><|j0hXxi8+}uPaz1`Y1nGWX)HeosnAuqJE_vOL z>$6nf*sJRsW1jx=SKpY{ASTUY=f?WR6tf`JJ0!|JPxX!I)i}-b@-z~Fhu1guVtu1R z7Q^csdv$%|eS<9*zH{}BX%%50=e<nCvY^II`S$5xZt#1r3ezx_E zy@l!<2Y8BMpQ65T$C*~&7>HtN$iu^`$kpgj9$w$LqpojUsBUvq4v8P2`o_R73)eS# z4eaePi$YqrUN!lPc9W_Fkyl^*9hzE|-t8eVp^^Iq8ePdX0&X-;Q zT79Em>r#DVudZ)&FpeX*L7tEL#z6Z8>KnBNr%~T%_>FaaBTMpvuW!6={ocpFi}j78 zwhz?f^a7HrTl|I1;H3z_g@5Z*_>F(7F$}+vQg8=`HVCOG{Kn-qexsF%qkUIyDn|LS zVpGu`;pf@>1a|DZgWpJ33RkUO!f)LAtneEjee;{YVfBqa!IG=Z+KhfKso*!NdU`9) z&2mcB!U&Godz#n|M>HHc_L*_p(ZTGh7G03f$xy@3v-(s$Bf04FoC; z!Em(MGHhCzs1x&a@z-V0N+zjRvSE^4-_?0aUBbJ72uu~TBeY$-a+Kd@R?ImGqTg5Y z`zINsem|S8LP}dFn);0eu^b(!TojfvQnryJSA27i#^~V%{-Ry{kI>YEejr(s)2FOu zlP>*ii+_9tQ>ls1{x*<)xS@Mqyfe*Q%~%^Sr~leT44hG~Szh#><^@^&_9tj9MFUywQJ9=w4Ga>boW_ zV!nQZ0H4*th5mBvv5Xb0Lo2QLO04kEP zta12$O2cX(?`ZFlYE-k{_UhZ!8B{0)gM%NpcZ;CF*wZx(Hi9EP(4!}8h(T=RlPx;$bf-j&me}9;*VD!0-Qv|A#Y{@qOP%>|f-E6?fuWltS{LfOw1$?+ zwD2*klD0jU6)BIWiXx^m_$)y05Fa&zT%H8n(gWSOD>dVZeEp>;HWJ`Vd_6mPEOxt! z#gKg1=%2+d)AgV@xkg*_{|UHK7q2(pA_vfoa^dKJ%eKN|lD-2DitU4nS`2$3>Bi3Fow;op3n=-#v3mqU z&>WpDI{*-QaMZ9Zq#zST46NqaVMI2rdQuAHb>kJmrsWoaG4X~9HREu{fE}!!XSv)6 zvc-2(WrO4}r{D&>wp-jcQvkSwB+t2hn9Y&LqUa(o9xL(sU0z-^`u`937*&>E*D1a% z25eRgqnwS6`#l?j6Dht~P_5{@{z{QPrpXn%=KKf?sBpN4L@>?EO}aX2h60ZeyiX|iVAt7wE-5&tX@n7IvN8Y zd02{OJ9irXmyV7JANkjqtx(xef;fS=1w_*GoR-cV_YLAlj_TgNtFHt|S7b!Tg?_Ho z)O7kY)`gK4$G}R^o!9K|RAMFk+vk8Ex&J7G;tca(Ku-Zu@~BaZSs8w05TLWU01fz& zWrAh+k?pxl_2dX3DUxXyLa403(i>~R(;X2crNnmsIM$CD-Bs49LP&B*?ezBQbrUkH zIjvUlBcHaVlub@qnlDJACHj&*M}F_eUTWWIdx0N$ug8zny!5=xg3gqO>$j+Dg1s@$ zh3PqM03`KoNdc91<;K7j0tRKjpsPE@2nYw1plaiocAUT6;3IePBpFr#KayVWh97Bu zv-!(Ceq@zM75GR$p#_ZqYbSdX@3C2k$JRuv$)*A3l)cca)6#4h&!dcdRiwbiPVr*I z(k`AiRXpqwB?A)S(*kOiwZefMirGZxPB1ajG zc5g1tXgktf?HVxa>xzhx{LpUR(w+OMPQNRpuTPF`=Q<<>JX`#=xO!vS>J7uk#;*w7 zrE>aHN7bKoV?+qF5$XK$F#mgnVMa)D4CJ=Zu(O%nsRnDXX0toDg`@dHjKVi(Z}C{X z{ozo+%h#_xJS%8Dfkjg23Cl?DpnNVK+vuNl8ygC+NEg&9Aw^=2yj&w~n+EOOb`+$@ zQJSJ66puG{|7|Eg4Mo(<-4fRIhK&JqwQVqwMu40gJIA)$1FthM63*O7YzaTFeW|WuXiVKD#H$65JkvppmH?gAC(#e6d`=v+C zr;t$?E)QpKiLM87cS5z2(vHF7P^vsBaji`X+M6Np*`GY$?;-8+3Dfjnu`7h2`mLep zkWx(_xrjrn2{k<_ow~H+GRf$g6OTfAlZ+hoJW1iAcCqDgdjeL08q1HvQi)udKnd`W zC(^cyPoZx2ES$BwctgUbT~M-sO6#uGjx}_FcCxq4C^R*mP9S%AaL7l5)+%w>X-wZ; zg@!aaC~TVTTrmHH9pJGC9%Bo)5B;5p_vo|Fq5&v>qOX2V3+Tab{rIiX{H%mnjj?k!4LskT!&<>*qgWf%RdTgtH zDLtE&`Zi!5zW|eooH{Lt11d0&Dh`oUXLYS5+iOK17%a$x$!R`^~BzCeiqktsRc(vjs?w{+<@(7_hiy=bm_&hoW>| zH^26@kQ{Lyzh_ih7k@WeH^#>i76I3(+y7<10vVE{#v!$UQy#UF4$m;BxHI;U%egwyWMNSs;A(Eb>&5f^$22R#wYtSD90>plawBB*d`Wn_Zt70|9dHLcYCaNN6h6KRh~ws!d?tMqKGSK%gMSi{FqTnRcAJq8lC^DU$e95I z$BBeX-CcbM|IJWSVuNguu>WS~-WNEAL4>`a*y{ouI5+Xg#5cai(V0QcB{YEH zi1oy906vjg-`ME?2n+$5CFa19uY;K1D`q`LpQHnL6q`;A2(2&{?R+k9 zpafEh8d8^FJA>a6VOCoDP*ctJnGPsAVLIzKCL-HW)0M}#SuJF6_X_)) zvCiMb0-qY#k?pW`Y}9fM^Z+&m83!H!5$@NwEA=gQQ2qsYkQ>I%;WKt)yq=R?0LpcH z1uiz?d0@vDYW?Sxz%`*?lydMZEBNQFS+2ob$u%&dp(HMrr1}b`bQj3ky->-XHGk1c z*%eGU^MIBc3OJWe72Z-N+ zlwmK+0qt32Ha|fIghiGqQzHSuX?Bk8AtVCq9NW(Kxh9ambllF%^Ahw#yY z0HkA6l2L?ayq8zleCEISvWohO1ze`N{u5sZ$uXhnX3l{mIT-9VZT9UvHW)9K~1q4M}LRK<=TU?lih~g74d9MI>kFi=O+!` zQS9vWfzQ)nf51&~jm!f1zu~v=3OLCehY{XUuXb*1M5SJogfj&1g6!xA*Fybhg*FZ| zHl|@qsS-&)hPo>ZRUFYIV2Ja@O(5SnG*o}uCZx@90yLgMqKb@WwX3*Z|hC zdS7PO$`dIihGzCG$DX2A?Aw6_XB-YC1D>CSx>fxTLZB z6)2wh&+(62En*nMScETa6FaWYH?ih5gzI4)#Hd9kwlh~-r*7d-5In6aFNSPr7ofF6 zPLA!^;&JBr3+xw@wU}wNEcmd|{}N;lJAmzJ=boTE5}nNm$#!TvrV0%XGr!B!dWa(b z)cm`6S;b^YtQ|%H{O2a5X%u`5x#Y5QECf($ifqzyYLzC`Oeq*K9tRm>{i9`+{22g` zHUK<@>^+?oT8J945?W{|L8|DEos1^!WKS$W4huYF8xre3yrr_v!8%})vvco?i-n-u zkO%N8cS+nkBh*rG$c20=Hz)?Zu3p^7`bT+P`=8EtuSwP+!rMY2?p-Fzy2ZPqK5FSE zECgfjoD^nh?+R=WKdlVwPnOLBln_9AG|p{WmmrW&Z(gwk(&lw1n>oFYMP^5bm*%5n zYT0>!iN(8|o*6!|pkbKRsDV7jS4C;IQ05A{#F@_$WOkb@+4Z*nPUG0&q^H?VJYdu$ zA+uWrGqg*Gk5ivJiidfrX{54!Htlr4xJma68x4PHF$rfqa?9Ku|wzZDl9aN27PqsZ^b{Sq+Tw@T_!5F8PrPWIu>Yh~;1)#RoG@BLKhn`E)Kb604)5{_^`N9t78#Ga{HpQPS zu6WHk{v9}KY??yRUIgFq@jRU;$9JR|MH$~wXL8;YorNsoxUpgBJb0QXD2Vp+b5~rT zXO=QdC8k@$mGNNx;`6O^e~-VY@!`7uQHS`49YrW~x%JRL zY%e|3{^B#FfsZO+olp-)*-i@M)%A~9DXZ>O94Cb+f&{ATAIC7hTCfUSm1;c9uWH>m zI0Fo;f86mxu76AmPe(Z2e=JSM-PCUkde)w9=GF z@zKlgNd03Pz#ZY3ySaB zC7)~kqsN#0L92fZBnzJIAzH11Fe!6wM_vC|*FVORfV%#%5?@pPWnS?2U8{c#yE%&x z6L$&qj{=i?e(N81yx{5|1BET0(`8lq`p4u>7*_w-tLq>4G&x|J-i9Z)_3HXZ8mfJ- z>mLI<57s~W^K7a9u~*kW*7c8^6RG|0Uib_i#yi>3WbMWFpecPIdM3LUK2S;X8uXng zea$sr_|ngGUgrFHlZWd1$GZMeuAmT#| z_noVM%$6@~UnPyX`bRJxB@48eS#~)I_^0p_olgB@c=2cIy%&LD(6dh9kSS2dT_}SGz_RiG$$GFqu{!xWY?+mGbOp6jv z)zY{0T&u3gVEyBc@2mR9Fw?=3i>hUz`p4c6VEto80a;GXUiS0tJq3QeU0QjTr&tZd7$&f$ENmByY8Ue zV%KEc9rh5;z`f%mt;TOgnAQ)z?~mW^x9M%mibEKdyyf_E+U7St^7DA1ss-S>-mt#x zrmSG|M|r8og7X8WMdQV^;&IuGbY{Ru`~8pq_}I;F`op^ZkpS=gVzL_lQSIuc_K3R` zB|73Fl1=`^RIx2m<3C2)oXu~cQq5>1ps%|A5tB+#l%t{(!jk4uYFt|5KURVF9Lv=B zkLpEO<3IZ9z8e2Av{fqAkGw$ZAIH6d2{m8obXwy-R{HM*C=K#pYW&9<|4}xGdg#^o zj}XG86k>}lSpOIV&0zgwwb3_qW$Ia1<3E~tTjM|0_>W_)R1`&D)*An@#(#|MGi&@u zbvv%{AJM_)4vEYv6Sh|`So>Y$KcZ@Hsqr6c{KqftdE2@lc2!dm2k?_)+hLCy z{}CbtyrvreF(4eSJ#y98Vn^&RyzDiOcdq(c>X zN&s0sT2h}z$1uY{JpmwzD3t=!qapQgYgYp4v)6v^9=n~N5A(mEscZa4qePAW2s^OT z0`gOh|ET>T@GEVe8vhX@6gB>1jsKX!Vd@*4p-6bbX3EgzYW&9<|FOn@tnnY60~LZ z-Xkv8_>Xcc*7%PqDo81fKs`p}>7n(HHU6XX9oP7eHU8rgtHVi+l>)xr?y);vP#xk8;r)l?|6E^fGtMMQI#i&8o z5+gD3hsUps!}+PP8_*F6$x>zUS@Yt3?OX4w%7T!(2ywe}S1JrOK{JL({srnEeY2z* z{}FOO-}R4~NC})@?#vfEj@I~(OJco;uorJ0VL5DPgq;5x|8Zzh_e27czDsiSf*htjw3KV=W_Yw|I3~>|E!?&fRNWM5a<8T;o5&mK9EwZd`y<6V+Lg^$2sj zPPs;449xg)77x8_8A(;CUwS}||0v>nc>wHt*bg=SBV2HWutMMPVb&8QOQD}`i zr*##kny>L6qnNDmA5*DwmSnrAnV264ZYYudlp09Q{z8Ux^ai=8i}6S z78+ePA&%)F_@Tysgz;iS2BaLd0r09I2p zb~^nHb^W71v?0e^I))tazJ*yDIebo(l54rM`kv09UpYDC_IKwlb*CAa(c#EsC&1P8 z3?1SR-7q#DoTA0P_S~h!+%}ChNubNmGQ{c9F{Z|U#L55IP!Ip-$F{@Y;Z#`TKi2q< zZs&GaA5!np;rp+~e?+2mio;z5&&EcL{}^yO0L+Rw9X0;rZfkB}qILeFm8#r+5u!Hv znUzqJ(iCg_$5Dt=<3DaH-ZH}fqx8)9q`0Mc%L>J3)`Tty?c#r^1;AdubFB5nm#LrU zVQoAIUmWr4YW&B8YrnK7Mq_LIM|fu1m1^z^>?5&5c;VH>W4?ehr54NzzH_RlvwsGv;mry^8U<|wAcB%I zOSu;9)t0we-UeJ~H~w64#cR&#^z9uhl|752@-cSaDi@My@dCtrwotuekGqv}>D(HI zJ*dMMo#N5PP8F)Xt$)!4?cRY=Z8#jJ?c%F;4ZhfM8)=RIh*!E@ESIF(IPERlPX7|p zbG3wY>Nk3kEpB<@TT6@4p8J$_SWAo2o;>8&#A3T~1M&IRw+Gfp0&z%s-TJUT%~_Io z+r8=Wc2vA+vqfGfjBd{L|M2`3LDFyh)H-Qt^5H*+6}SI1w}*!_Ay z8oMOHv&XjU{J0}+B_V!OyD|55@+Ydb=PHq>wEqA0{e9Wh}ZXMgEk_B8P&e1kET6D+G-Za-9 z;pY~9uHcsIxOLN9YqZ!owll0odk!CpK3>YFxAWUi{@Sg-xB1k?k4Tp-hT$1ws51d>KvTm?+}ZOnyE{s zsZwZex$!T~d1;af>2i|>0t$5^i03W%P9CMvVrR#ux00aSESTnuZM9r4NP_EJc$eP{ z+G6K&myaR4Ek=f+g%6G|^Ob|P6I;5h$v+e@1q#K=LhTJXu!bNj#%na|Q(dE}p6VLO zhErW59$Mg#%dqnJ!LXy#DydKj-Q8q2n5rnDMg4j#shj zQwHWElZeTj9p(+Ixd~$%b&5ON{Y#d&uR7drbna>wceQVYL8(u?sZ^inM#@IPR1>JJ zs-v+|fO5t9&I-k;p5k-0WH1rT6i<&G#Gj zkRXhviwn85xvBVHM>b6tzdE|9m|8)O`Fr`f66f$vCdjX66HM1h?woG%4anH#8;O`M z>i!0PhGD%q%0z*LZ)Cs}am^MF7|EtMS~G&b!nN$rgCt*fOqM8!A8HgekIy#w$AKml zpSL_6_lA8>G*-?md7|;dvOwL0opUHzMI;{&f08}niK+O2bJiYdypHFz8ozbh+LM*4 zM&83${END1yzchKM>fA4PTxS!7#iu=%!>!6p~riDI?(3Ed7_l`_ z`j}grAeogQ-8*oMwLe=|P3njt@`mH`(3-C* zZSS$C;Q0_;M#hY=uyvfbr;VATYyaXOywuUqQ>8oBYT;TAWuBR570h&R~R_(kwx*rG6@i^rUO{#m`s21R9V@n9h8^w@eXqOwC@Giio< zogZ!>WxA8^TOpebd>7L8-57boaz^rIsW~at%jUOZ-lvq;3Ufw5Z8c=={y!TrYWq_q zjA4VB=0Wc@DdjASl!in4Y<@yL&{j1-nUZXBH$zzLEZcF7kDQOzW2IZR%I&s0ub#Am z&!*o5@c*ng-7uIZpUCM_6Yy2Sb%h6JpqxZ}i@qq$!gcRx`a=O-Aw@vG;E4S(V?f1Wv0B34ko%>-yS8s%nECtbkJ$ZQ&UQKr-?W0feC zPFtq~U??XkQMr4w{aPWMsUkGAGx6l*e&l9k0*c*hl8#%Q7|^b5`>a|T*w{ieIMCQP z`_h>+#lb2d!c&bho3^a96(bzSuSRf@1b)%8JiSnPCHQi|z5ou-V~X-Zg;-^6kV?SQZ|@Z8-df&M$6w`v<6 z%J(()^_&F8_m_88JU&`{QzSQ8{MSHrsFDh(bwXcSp$Api;gZ5prjjE#j(RZgBA(W3 zb+T#OKmX#HGZi5bWucRK8k!x1M1mg+A3>hmYVEOTD-ZYXQZn7{A@6qUmj&d{#Uda& z=w!sh_HYCQ})APRo*$N}WPg&6pBJl%GFdoDTL%FxVyz zOH_FGPD0WaVUUnV85B^33MO#n=EKEo=Zz9E(^JJFK#>G|s~OHse6(@tLisu=F~vMd zeU)D2Ow?cmq+*ILOYCu3PSmg18vJa{K;h>E;Z4j)-H z-c(+VH?d(U{af5GK>frilWb&U8=$;__XgH=m(~?P0m(QqdCR*10TAd2T-z=p%gD)U zqR?c^0;24EwRF5Mz;ByUnA19m*lS<--M{KyJ5fByPmQ_%lf{e`j|EQ0%z+Ij3u~md zCRrPk8xBq0_r$uyTf7?gB-2t8lCC|24rti!vbJ#UY>%beb_I?WUS}K)ILRDYMgsZr z_J1kaQjNEcU}L$s2y~BJxZj%}?XNs@=8WM#$(YI{LeVlS4*I6DC>aaHljpf8p@f5O ztQ_#?)QvIAGvepEJz-TjL6Wx9GYI%E&nq5gaAD1LZ-y5^&ok6Kfbq-6SRT$KQaEkG zqC64nmo1?u7y*Az&L}b97!&XF=nNel$~=)rw)xb#!gK^aiX8e#@N$#bX*-WC@DPM z-hlAEZM1lbD$d0VgZ*OmEZ=y+Yci`M10sR|6w$r3GIO?w>m^TXa?8Wc(;@`;8^3kF z!wg?)spugmkQ;k{ETGBY8f>G4B9k-J-1#Hh3PHxI5@-MSp9iX-L@%Mx`oZcv3)fVl z!JKOxn|}%@OAoW>t7ny=w}k#?(0rcIWs3#^#Fy#RmNH;F6w7%l&?~B>TYST9Fv*O+ zTCw0JOXdH|*2`Jia^qJYGn zrEPv5KnFW?K_Q4{jd}_b=4SPw$DRt#Bkj zH8Q^UYmHz162!u;n_|q&z8O1s{IL`l3AMX!#fe&jR zZ2yDDrGH)-FP>bO!f_#f66384Kcbu3zfkhqs`Ya3?_rlC-r8_aEhDqrIs<-dSBh+# z)%oo1_D@sKn50Yj?E%Lo)_?zFo9?$=0;&Nz`joN8SwOPf{2h8^JE7*|DdPk4in$a`KSchq`yl#Pqf zt3#}S3>bIrK^|lY0ZiLY7#3K5h(ulCoiWANeT3yNv$^8_AWpD!!=s!)vImx>QE=P6 zG>S1Mvv0z#(k(LRGgo}b+57F^{$7z<+1cy_BH_ZD5FIW~Ddb7wPbOsvG9i%%&$Qpvw>--9ZpBgk;U1bRJ4eAlC+o(9 zP2sYX=wzqR-|mUlFB-4t6m7;6v4Gc}TK04T|U(wCH&{+ulFrmWhJ}oj$o%O^t<%uZ} zx}RP*gqHcK9(2}(KJ@a(hx_>Bs(6CRXO2+GVP`3#O6;zOFh5J@r|rjZ#g~&?AY`ib zfnM!KYexJBYCk;H`Unb@m4)vNkJ?XOIIT$Fwq&XHcg>C1>yCx2K2@d!@;cPMI#^kxiO@-Qe#nt0Ifm4^1t{lok;)zWsxYeB$ z7}*D%(V=WyfS<5oR92Z;5YL%AZgYn=x+&NJZ)Cp+x3Ji%A>fvlgo`w5rbZ-H(xK=! z6C8CCrDQt@o#Q?2U;9f6C4MHk#rXUGp|S6Y=)Zvg6aWYalB&~78uOthc|N(&BJeAF z!?{c1yH00`rw>Wgl>>R1w38IpL(YRPq+rL3rxaJZ7n*78`$<;GHn_wfm#dSd!U5R+ zcLbU3KyBEh*UveCGSe{KE!b4}I%5>Ggu=!u92#sttPPAkZ$w7U z9uYPaJN8hi-pqTW+FtMN{ELyX!TsQO9%0iPjdnYjJJb9ok0VO2jM8kE9K&cnw;V=D5L3?&>1zDj^yslfHxZB|G3yH3UlOf z;9j1N0aRJO2}b+QmXLH0`|7T>Jh;m5fAjkGeXwN0HE-^AHjdoL9K(`figlluv$9&_ zn-@%^gf$1LV}zztLG9@24iiFRy0PzfpiM8V1NX^I$qq6rv0I=p6W&CmpoCgX=kO3d zE%6Xmou1(Xw~K>b^x+8@pV_7s--OvRlYYUJ#LiW^V6Yj{)0UGmn}3#JE*SI=x8+x zcm(9+>$L;eBrYsITq49PdEZ5Sp|A$i14cbR!P)|JE@54HxTj9$X-|2P&dJ8!-(?-| zX54A!L@H#}2 zBEX5_1miQO&z#x1_6d%H`xbjS|2My@7NAnL6(R_pqI{T)2s(Mj)eYMFooylu8Y@KZ zJhaEr{PsZ)li=5l7thwvHZf0`0nm0RVOy#QXWY|k=D5^IO-Gwfz51NW0p)s;wAg-{ zGmLLb(anDp!4|y+(20*fpg?)Gw1KZW|I6wf=AIfRC1+Aeq^|^wEljxLhOvd_j)mzS z_xM!C0P9@#;a^$2=g+a;rk6b|QE&5xc@m&bb8!dzV+g5Kg9BDGIx0yMsdYjEht~h5!^)@r*)CRBrYU*uHO7M2n z+w3Ucj+DugBJz5h;mT=(PLYhsLSD(AZ@ta1)!P^|EM0H2{`F9AbKL4}PJ$9FES**k zVcm`J&oG?}75(v7^m~2D&BtGPk>48s=yTuVs++Gjy|7xg>SmZX`?ddYW$liWpWr$XC^RZBJv!kQrhNE^?^7SPOZa7zTwyGUwZ)Vwd*#?UjCyPHxg*LLPW4FwS z4Ucr`(Kyelk8A10!Eaz%_Y8hR*0HPg21PEOVHXh9t$&RDs+-5x*v;h0@04{|UuN?S z1yP3h6EB6!$UrJoXQMM1!eFUk)~N;% zbkx^i>QG-0a?VnQy#(-GvA%}yeSJ+Y-#bsq$0aEA$!*l7XDS_Liyk19*QEXCsYkKC zCjP9GoPBS^Om1I91l9RdhF;+!v+V2YYqZ|GN35-6wVK8lAop*%4gYOVdxdr z*XWiUw=PmEq@3$`jYKj9X$UA7nhED!C--dS+2par#Ing3FOnZmV|@y2dXwvH{{3?G zHnzPymA*EqseVV01YmchS}R9l!3~!=2|~t5$mNd!kEGs%Qh`04=a>TE?iPv2UlVxk&^p7Pk0KH@cMq zC5q(&f1Y?V|+shv;d z)(}{>eH#RLvox@=i%}*avhAVlrUZ-dT%*_KaltS(I&oUmzBDql4GnN<dmdvYHvz<)M!Zahl-1m%U5VHzybbh*Ua3Hsa8?9W+SRv0Qc9n; zXG=+2R*@G4qZ5F+geU=f1mSLrwPm5YILZ=8yNk?pJEo?#w5`LoW}&=r{Gz>P zvYx}e`EW5iiuE?Y1p#Uxgq4^36t7G!P;cY-8d2>EZh-0v3vO6GOE$Eq z;HH-cLA{ql7?z@>qxo5d*+*mtVA;Bgo0GBPhSZSGiknwmZ-eE?*=VKS#!tW^qb{87 z*4Eop!Q}LDalZid6DLiiQE%e_l?PH|!Hof7!b`|owg3XiiLkvh?E|UQSKP?D1w?^Hd-_<4vOYD|E#E({FvTW)b!fM>ltVMQ;4J_^H_6}1EZ`N z@N3X9h=JL>evH`#LIcOdc*#f%9tXZ;*$aazx`PoL)m`3=JP7i53+~&VoMtnM-jFK{RZ**|ijh zkyRi33ss8qFrK?XxVxk@3x{N<}!v z@3;&hc2HY{ql0JgzCWsU}pCN`;EjesBDcw+nQ+`NRgrjE=FDC4c5c&~Ug`^w`+g3hw59PSVep^l7{K9>*n+78R)6*2>~Xf3 z;m}l{aYJwhf~Ks=553X2c%l-ZA^Gy$ACtf5KqZZ zNCeOn0f==t)pe9(GdKxg&6)Z?-H&M^Jdpd{*!Ms2uCV0q0P=<)IT58woSjyRb9+F( zP#(@xJGhS@%cVH(k(vGAgfVEBd)jfoGRF|QE~%G$Ss{P2cs=27$}6E7N4TDKr8sVF zFR%r~xVF%~WJR?&!?D_?Yb{QHw^|&|hU;r_ylikL^tZGY=fxG(;vl^~(2usOtHnX1 zVnGHjFgk}oS5k{prmNsT)lqkD{MOduR3GK_OqIaR*~`UNO)XCKQ7-4yQ=3r?wDKSM z_j~#wbkb%U`>y36hGp*}EuY`;-5#t|;~>PU)j0M*omQZ{+LOF=rPVkyU8-@0bri9? zqZ;S?k#r(%S{U-li6J>Ib_^HFag1Z@#OvwfP`*VahHb&(?eSiF%5p+>b0sD{!L2@~ zEs6k>=XI%VlUzX$Fjfl!DUc98^Y^r4O zma38C>Z92kc3-*AC@wR8%>SaEsC^PT75gXAShzP=?#Q#@-eL;DIqpiT|y#o z4=)G)umI|Ez6fuJH)pu&gc-ska}}jZJc>y9lGG1HbCo;IqsZ!Vcy$mxMrtxsYYTID zfiZ&>=4kVoY^kfM(IwFvvPIY~k#ZSwiMRze=F<{_pJk_K_~7oM73LUD49+f1#0qnE zdC7>+fL)2vTUVGflLt?ai7!@EnDbXL#X@1urQxtf=f#yn#!7vT;30J!&63*s99>lw z%09^fH@1%?LgjZkB3(~D0K1d|#Kq`Zpfeo%sW}9e>T>`aq~5(gN2?){6mgUz$kpfQ ziYV^O1Znj-1HL{7Pj;F5obE$(O7%IM%T?=hY?X(TWXxB&R5BqN!s>H+9c28ua(#i0 zgS-xzOeqleq(bNaiWNEoi{}!*$9t&-XbjmKV;d2y%uqpsxcVG>y|Ywm>T^6y!dYcj zpOcaJ+1BR>swHQpMtnNjETy=rK8Ha$-<9<_*ZT}*) zTc3k|S*kv#XSF`ZMB=x(K4$>`NAqw_f(^~XIc9&mHZU^9$=Y_3xik`Iw=dE8Dp&iF zI1ljgIR8iesD^>BH4}hcH+Rr?ion1-Q{{4 znea+oDA(QeY4xp-oRBE~oXy_}!5K8tjpZkl@9g1DCnqt()5)eSLkVuS6?L5xV7^5a zJ6df%AxG)eZcj0T1NTO8;IVZxr z98pH&=KUMOld{sC6P1BEdfn(!GgKnE@PW z1+@)v$z!M#@A##ub;=$dug;nOj=vi>e-9K9>v%{4>0B+F)A0h+bB-`Q2ePdjouf6= zBrqI7V1<_l=ZM@N>-ovn=8IkPC*}6J-ncw|NHBP*G>XSyU^%Fkrk_UeOs#zm%wwg6 zBk3Tp#)=JGI#jLUxzX3~NWi(VIp$e&DD(|q#q%Ep5BeY;<8NaqR&;fgn>rV`O;^xh zxOg%bf_D)*L+Dnf=X^m{nwy?;#)^7$)!p0p!vuoPHU5ZyxEI}j+{JM0Jv`R{Lm@_R7IRFUT#}PhA{Au1swl81ujxkpYnH1?ipLMLV>+Y%|! z>UTdmdhTLDSEeEfAGX=#;jf%-iwBNeytHnJby^0%s6HCEJPDDb?1{6WW3w~@RciHH zrPhskxa&k<_DT-3N%}68S{_cn`W#`8_Lr$Bt|5Z$=#xhje9R(y37_B)iuMA?&=|yz zSD{{tB(6{Q%0ih&lP8K02$trh4(^CDc0f$@b>wRxbcqAoAYA{@7aRNj*lK^k`9oFC zA1z+-8s7?mz;g|~yZkFhxvWzJoAG>iIm-qE%OeG;mNYz@n3ZkN-dxHTtJME=&|ZQb zkSB!g0>(UY_Q<=I5x4194|B)S9_F}v6q-0w&yhz`+z5+9 zGrli`4sYZ>QVDchu=GMvN2UHpzz_t3F00Uj=Ium#?#RVy@WP@rxaN__AskxKyd4L3 zETHhNm76~gj6#FP^23{s2)NE1bQM6rw@U@kP-WzfQ3=vONHJ?M&f7sMe#$%sB`L!{ zA050pW+}JEPbd$550KLSWi9(kpjqPCuXf%JmZnbUf|-w7Ltg#~BR6$VJ?+o0YU_Ul z$=v4lNf!5y9{JD-gVL-s5*?IkD}X#GW}VUeV^|&Fu_MskSphVJpp-ofjJj6loemN92iP*EQFqI-8 z03wr_$Hh4TMeELZGd&{lV0h$7@FJz=B#TKQ`vR5BnYQc7lJW zDgrF;J$#X>0pP!6KUeC11b?2O8*-w^+FI+1#6|`sjhYdqj2`(>@(!tN%F>3q&gQKYB;S?W?K(sac5x`sk4lJAS6@5o9|L_pFBR=q^!}TwCNzKi+J= zmz}r#4VYe)KiZOrU|QMAckmB4e#eBK=u1fk)I&V*3za6-wet^YwD zR_cG8FkDIfPZ@k6e+`j(tV21gC9U6F2uWsw|96!FPRL`M6j1Tr}FTnqLnCt zPny_n?A;U)$ZqU;gbjl3A$K*IH=*ZwJ)Oeopy5X)RlMYXGN*>D;dz+1SAI_L=ZUJA zW#ruX-(`bvK$*aJhcmWI3S}thMWcUb@_O4nZ7AJghD%hxDA0GWjC!mB=&$hL+gO@z zS^VCk4`%-~?4ifdHD^&4bVLu!YEq`DLva&&9^e;0p@;SgPS?T&3Jf0Orw~w{C%7Gq zWNT_foBnJ1%_a`USrN;Ec2~-R+)-3`REX8CU`Wq2v;$XSch(N+fsPx$x}M4)T32z| zbgq9z;F2_*b9$tU(*Pcu)8kru(n3cX-{$n_Y^gk_C!X_cEgT2D`cXZN)K8xrMPIbv*$Ku}0`msl?e@yvV8Jjm+v9HbLOSynbBIJ4>El zxl$;=+Z^|NV9qowxLXocV4c8H`hEUpW=?Rqo>0-wdHs;n@l5WUW;OqNf_S zUXhAG;b^8C1gr+hpJ+0*=ok+#fq{_CZfRgGsr@r7Boz*Qg6TbOiDw=S5gDR)EHgNJ zp&7261jka0^a+5@j)R<(uQg3wI68Gso7~_A`;>tenz8`(tB+jYFF<(3 zksU8&(p5X)i>GjHI>~|l2ftrxe+ogKBw{nwLAnkw0Y}b`x zPK!_oP()gd10I@ceXv=!L{Xxu4;23~*~jpylYS0_;I8vwmvc;xi3>2p0{!J zRaiPxC#dn_;E@jsr@nehf2AFHrK7I#A9LJcvZ5IZ1rJ|tpA z2unc#v`-;I5L865K_y;0XGjsV<qG_FM6hE z6UDq`y{!)kt(UfcP5<(FAV1C*OAY*Ca?eKxaTDtY{#Xf8Q@^6;A@11XaaR4JH(KbD zgI@nNRcnsSraYMiZt!(R!zdJ+`J*v`m6<Y`CD4 zXuc^o3qrhu>%=c67RAaBJ=6Xw7q7IkXm?gwWSI4Hen@xng2;{fImUY&R(FtluVtAz zU?+0Zd?PA$qRDfI9T_@!7=*gZVW&h*hjSh$v2f(3etXu^()dQ@7JSrKhyusq5JER{ z@*=1bWRCibe1RnS%!Y{OL&q&niPabl@3%~TJA4c44H(jiZ|9+#1VVIY2I5igJ%fAL zb&w_t4;SP7VMJBGm zcpl(ET9UY^{XDLVvn%>QassX~oo>dS+w|oy5hy+xQ%h?p;dxpxalFA%AhC=)xFT&g z0T(hHhF8L}rUlU>@8VA+1n%n;g7OblapbJsMX9?#?LmwDBN2n+KBMHaHC%c=(b!0T z!(mz2HG8xqPY<2+#}C?-*|sG*3{+pWnJO%#ll(6Si2(TO;(zHMR2H7Q7BvFi)}Eeb z92}Mq_FTX4JK_>-;Xc#BS%=@2u^LKA&cWSMr8U!w)E7k?PRFf7(EF|3~!8<_KYL-+*&^59hKhK9G3{^rxBK2}E8t5LAkQ@RF23T@pN^8*{52%K48H-bXJ^Oxd!^n< zO3F-$lnC=;GF2xwxc+duDxFj*^WDi^WiRPXm>b_K`L%a&4_A_jWO4>G%zStq^4!7q zei+e2DW0xXma3gLhG1w2B2}glX)Q}vJ4MCoyz7ADfh&*Pc+o~*>C|M?2%9A)5gqF` ziRf5k@4sRVei9L<|J6z-Tj7$GPE~liKt^%!$|KiZ)Ne+=OFJEsQjBS*cus5Xio=Km z_(_h{j7co_E6yW2`kS0O@}PHvW%P85j$8Is+cL^Sba(UU;U9a23|uC$p_NCm=v62{wq z!a)yUSoXhce$dCC`ZSkM6pS{QES^Wj2g-Frg!*?Z48<8jQwwj`qj!uh^bEo#pXBpp zpZV-ve;rr4XOP@>0$S5Hk0%~;Gjk(0yu6<%EDmuVg-1@rpC8HVCb%!;(-8?Qo>p_- ziK%xyPyYKq+%o@OD^(id^>;P-gBpSG6#x6^U5I=bjCYOjAzWq1j+eme%Uy!?w%jF{ zsmoo05!>aGFK9Eis?V;Sn0w`%#x2*d@D!YOqveT!owM1g%JG|rCO14~<9G#%R16$4h!N=nqx;`?#-7B}$wwu5A{|vtZFt4vY~{OSeC^Qa z{`2Oy)0C}o=W|3A2j)`i)**42HMHDP7~k&$#l9O<%t2>d)SOuI-#J z8?D_9u%uVnO5y?F-TKPhA`_N&{eH^5N9WHASNF?`B1jX$d+8P)wJ|sy+%!DDzP+B; zSnpahy(lYM=c7(Or@08tj}8;uTPHoag3@Wc3`Bm3FK$nc_QgpF`%|JDzxG8=ka|o8=X#cORzk8Rjh7Iwmj+ zca7}-duLe1L7u*=pi?mk9O>N;*>w)z*e4}~vxG+LV#MLr;`vQ4?BC8FhL6@_`)H%p z1lQ=4z~`BFVs9w%`7Zff4pJlY7l&IgWHH#gh=yt1;tat34zS3FCom7BZ4_siY~8R{ z(xE9Y7jnV5jKxUAq;D|MK}b6Pe&ZyAjQEOohO2dI+`7rj?|8fw4!K=H(y$7WNQU3Y z-@QS}jupSaxVF)Lh??nbqvvaQ4@+*UfIva%&#twzYdCmnaKJ#)zCz3A8rJ@ywd4?m zl_Rf$)nbJHp>?+G_$7$!M;O{7bu6<7Dhgtc--aU(jFfnwEc~`X=rXk>|DNoWf9Nky z8HY#rUlXJrzzbFm8AlV#OTE$kZ<@c=#cUdPK8gk!Xxw>(Rk6&C7!VmD#z8^+v|Hr= z7?c*tzdw0z0&Em}!C5G?ff&(uzhm`3u@1RA1P9#9*Ru*(L+BY3Oko?{0SJTZ1I%H# z-DO@7)9q$aV$YdI>%U@Z7)uO{?MHWy4u940#hF|R@)WWwZyf9gGGKqhTUY)axnjDy4@6ZhofNtyQ#GsCVrF0v= zZ*(N-5IZ*iD`?D@S>CL2f`+^_n!<$?Fhr)ijRH2kU|Sp?KBX;M=F+o&_ zXNq=ll+876y&K@PuV70O?9H)UL!7+lE@wdTZKE{>1B7j(7o?G+s!l7H{O8=rI^gVK zX|}5Q_qjVo;oOKq2|7OAD9|gGD7f2AWAoRq;XynvQ@K-c>~3v$ByLyg$gSG8d-Rv@ zaf>b<5=ukZb8NWnnZI%CZ*%g{{ym(f8aWyFjPz`@ejLpiF@};djA8iHU<@Lbz8?uz zk=34z%+ES*WGP5YmRh%U14|H?306AF3K6$5%U~hsT@wZaIAC=D_Ce3}yaRd4t>Jj7 zVk}97&BO%6{e6R;&F7h8*|@Xq84jIvxWe(t10CyjIU)8%Zag~7UK_1{%7R9VFWJHpsqiV6xNcH# z+#nBdA$8z5G&+B--3+{PiCxpbC%=EAqdMqRCx}g%O9PA2q_Zf4rk)FWoN33~I9B@9 z;2u_*C^8jtZr$+sWT!nJj!e<+hU08@#b&MEPHTX-BYZ z;o*m_=^{F^}s}ope8rH;I*Cs z=+s-*{cVRuG(bz4et{0eXxloNkd0~gZywRhqdPV6Fsv1YSF}3zvuqt~J|@+I-GFQ`e^Lb7Z+>K^ znp(Gy8o>#5G z;m5{_dAX=#qxG{K5CrN%6_fmv0H4uFjW$lO?q=6bi%Z<1$L4QX^VzlSKP8q5C2T}v z^kabFcPU%Zt!1$<{xZccIDLi$kY6|-F`S8HIsFzHrcY)vQes#bOW@R*-*hG+UpDsc z;@z8`re1V6RJ>->y-KIu!>6(RIDq8q)8903VmM$h#+42$7BPO{mtcQYo7~a?jkg^aDQQBO1Cy}Pb*gE9hY#SXusvya1qqPIp87odGtun?c zO~DXWn%DklQL=#1C_bc}+l8AcGF<;tts6J5t8VwFKQ-I?c|~y3b`j)JBl%&di7LPk z8qev?#+}H{E9b{H3u^<=(fP&0`PtRURAWVxnA7(Hy(mj#j=W zt?-2H!rRr<&y8BBO0GFNFsoI7OYD+OFU-B%n?wHC zzdh4qzo>LXui$sFBp!|0&~uzK&zCoRZ~G4ZvhQd$V;69AgJYVvgQ@4v8pd>`uVvo+ z!bvZMcxDpZH6n1vmMifwzW;yGN@gh>TiYIix2vEpYu(NTn^{?wC1JIQSc#0^AYc0J z?0ijo3+vN|rT#0O|9pZgEm%8I5Zs$ovzq5h=Ro~@e~GmNo1%A4I2RgQ7~Zik>v57A zf{hJcciC@`y!7jI19K!~hdzk~GWAGUf-yg22G_@noa;z92~jk&{{k=4=-^rcJbvQT zh9_$ukp;^`Rky-NIOcH9OUU#-{(g+`=@`dWS?mZ)EfjI^QRa_%(wqoq3+mP1Yne>WtKe2_e z`M06Bni3K1UBqql4?YveP}HYye3+tDqCQ$}^nUr0*bNsu9K+BSo`+>>{UBgNQjRj$90};ZNOp@I$m=7t>;WEw?AY-oV0XYF*n+Uq!2S!g1F7xy&qE=_(Io)deaTsfpQyNe zToyKyWO06HpisYVQRw*mMd7vml_*Qs#gFg5iI#15KB7&OSr()z*4H$+bhl$0t!wj; zY~5l-)(OPp^H-!*Mpr#;&AF|PlE>$-H9iwyjn0b47CDAkOax+&lF+aN3&6E2t$@Rr z$qi308RQ^(cP>^5bbDN4(}mo5%0RMBRut)w0Gw{Lel)N;98Nksq%5nCD08qi(l#aQ z0SqqEX@fB2IugSemW*2KC5K1=m-i7ulHb@IFHVda95$)LV6;f2`UdRTeCV?a^2lI? zB$7Y?CYQv>V3ltwcPUNOQ6Q$r{`C?9BLMU1c{lYdI7eC7yel|kT*QLE=LEKoXPQg$ zuPY{tfJ}UkMyrE;CM`K`*b8|H_M>-+&?->GG_62UZe+B4s{je@vxqTy%?<^i*$Eoo zV|psZKPtB>{cfK3hXB*){suJp&c>aK((H{pNzeYAEtU5pw#x!G^H=g{Tnxb&P`|>{ z9mD8wuO14zYIw z>q`=EQ!cc4)#%(Ij9jRE@vT8gq$@aLqnHQaLDseZl5`$>t&eLF~0?T01N=H$d?@!(?`M`;DOdjxM zqxJ3}nC%cwPE%RA=Mc2x9ptjh>W7>!N#cZao5N~qaa<7!3^()&?RDBmQOcc=D@_s zU7 zPTwn7YyiqQPjIjA!w zd8z}!nMYO3dJ2jiK}p1F*25k#E(KElL1gBn-K}|C=nSBx-reL6yCp;x!QD7I@l*)f zapnUy5;IM0ppJ~B#p>No%a1SIKxEbe68WLK-eRE=*B*l?$(C3prH*7LKl^h!(Ezu?N~ag4nVo zsYklp>$Kv6POYD0852Q+J4i>{m7g|pRyVo@b@j=^0dV-Tn19KwOY07ubIOYi2^I_2 z_wv9Qg(!CDc$SWILy?`x!gd_Yh9FLk*G|*6FON!z`ZjWOyXBEa>lj=xrY=Pt`I~%8 zpOHrE3&f~-PM={19p5i#%lSim;v!kxU*~TdC6A`37ED~J&-qOIT5@}wInw%Ik3A!G zN<%KIhWwP_n%_nu2jP|EJR}pDw`2jIbPyp4HQbF8NOp?Hyh?l=8e8~?L$6y(i10%m z;c%r4Zl#co7-5esysI2@6ndwM=PXs)^^OrjwiZu}Z~EHUmX|^D0|Cj#2x1Yh1%u;W zewWs%lzt+`yS2RVBb*r$WyXt3!?$cqXKYctm2R2VEwc`I#oOBd{LO-wofK^o z+Ixg{5OSSZoV23YAz&s>FNJXPAIRS%jKO!Au!V+5)HD%{TM!QNQljQN$h(~JiJD5- z>_w0N0y}jY)g@{+U81HX*bGVBE2+~O2%OB)G=Ey_mv|yuw8zW_Cx$}GXmN0Bi}A{8 z$ay+`2O%4Yi@LR6e3!V-jRr-LZ+-@r1c1{J%LpzIrY1Jj zORucNa})_?6h2cHVDvI`*};(GZfF~sQKIccFvt9L^0C|^~r>O5V zW;BoSdc&vRHhDW1spQYbwC}Mk&&Pe|8Ebv$B-2D=Tb}cb+_?1>_S|mwmPKCNC~~mT zdJDnBT;%yR5L4KpNM+}qg&X109hRDO94|f;^+#2zCkhcHlkh9ZQ8n_=$zym+)o9}u z_Zp18(S>W`OK1}ovP>$sXxV5???NwJDmxx=lQVD0ZQEiM8kV~hp}A!dao1@50zs-A zGAt&0Z`v2H2rk=b@s@!632k+_gJO6H5DL&61#s;*=slgR8qow}f+k=U9zCoFkPZA? z=hKN)I8JlCBxdLzD=rRq@@mVS4jMjf0%jL;G(9T@1%-C!U5rB;;`JiPte8zk^7CZo z*OQ|u1^AG~!jQ&?FF~3~#57vhK%E@NHf?nX=F#H6sTsxtCO`Q1#D<6Mh+bq8cCgES zlv&lUZff?m+08*BA)D&%o3Z=GFsr$hSl8k9F@hZEgz#V|-0CD-K$(y8@Cf%-z{S2y za&_W4uu&p-0R+{pR)jzljTrOn1y_hNn5VK-5>PYQ#;Xve+BzidElq?6cJ6UAF}ZEL zcs?+H>+wJ`X;T7Dri)y%Y6LG5$ehiRkO9&K82@kH|W=+EEL)VfrGZYE@ zM9{J#a5849dHsB8^5J8UFG9B>B3L&_N+3@xCOD*pixk6N(FH*QmM)(T?%;SqE4oKX zqX+pjCeIwkJ+9m5mULUj=hk~~ib zL!)%mB??QygWw>JFKiw}!gvPeEKafm*dR^Ad#dmNZH_pjFWbzu37$?c1?4$D9O)$< zZt*1koWfn)T6Qj*LCddGlP48 zQt$;w7vAdKW*vmAXpix%i9I%2Be=}@23b`0_OwI39{}Elz47A5!b+W5>)2We9;3zk zd)g0zTmPQ+m-uY?2&C}B7}N4n2$lSNpI#nbqV33I97&mR7*^7SqzE}P9tA9~P;)#m zsAHBCufa&#dk$~W}T0<5k6tZ}0Q3kf#Vc z_Q~^UB9TXUcu6%*&Ye1$r_yCfjHgaE_WmK)(@=ud9(3`r)PSDNxD^uc3cQ{xG*{{@ zTqLm(SmUaN8{ggoW`|7n`ZSj&myQ(}+vY3PX^l!2qu@!x;;G^&Dx`7i?~%gj*V?!E zme@bu?0w0kUF}DC!)^4orZZL@a!s*7|11yOQK~UwQ7vHdV)v{}L zej0O)J5w4z`X1XM&+FVu%nGoSQ+t~BPbh2oUhzD!NDGS~!xv}m z3w^q#ijj`A$I7NU1yJ0PJ(Nw2Hh$xve_6G5fddYmZFsC17pi=jVp=#x=PmO)4<>OnF9(gb@ig`@HBzQ~;nP(QX>&Dah<`H}I!UceqXf(8C5^c!am?qIe zcBFX%2&61Iatq0kzr{k;x+P!r0V5_*_|8=CZP=Gde}q3gqxy$TllRXnK`6QkD+h zhRcjv(E_=_?CG$=Kq6T{ykhZW2~T630|m$cHY|aJ<4+`=O9(h@w=Eu}?5Q;|IIVU0X8d%x>K#}=+t?-Kkr8(SBcD$8`1 z<5p9U&6hX*asd8?b?amCwj~F}uqCZ6s@9Ip1oFGdm_neFF6m?T#^U#Rcdd^Z6^p%r z4#EnkF|{P0V2lt-$qquDhgJoG@31XVwQv*O*`uab`f~U6q%o{O@MQEwqI<@dGXE&j zKN+~w(TJT1g_Y!cG~bMfn)A)Z3h!)j7x}84Hy8x{A*N0}6;$dUFOJn`D>`{>3l>Hl zWVREo%WRnn2!ba^;yC(yfjnl37+zbYy2^dxVux1G#pGjDSQ(!nxdZ-;$h?72zNvWW zgBb%~D4Th@&Zp&N*Oeq%j0<-XdJgSOlM`!!#{SbfDqBxt@6hOi4^PVgYsySw z2jsa0ue@@niN49gCv+`bILPWj)OEQ4>;|>y8wzUw1{@ip^vd|QeCIkKGD3)uayTu; zEz%7Fu+&qOclFta6gxhl)gJ65x~8Ao3pq>kClKbrUwdC zUkMVhM8f%=O=n=t1xO{js#+uYT?Q#{ivTICOo{a}O^HtfO%1q>FTqC{S?C-$0t&$g zph|@U6%c1OpU#j_c5n;&W+lLi*?$6-JlwR-PM%_iP){)RvhyRvd8c+|5lQGV)@X?& zKM$sZ#-s?gp2f?(%ZlGPXx~CAeT$nU^!UW^tZ?Z%{(1i5_k@40=bzy19Cors_u_LJ z3W5h*=ya#M3tI9wKg}~;oy~k#%g~? zWN?xuX!vO)QqFGVP;AbF2LsExdyV=)%#{2AS3VjCd8j z$dS&jQ2WVnS?$lb+MjX%cCyo4BPzT`j+fHm%xZr|A{a3?HXAJc)&7i`)nZ|4cPi#3 zE`fi64ZTfpFvN>XW)9|G?B`eNHQJw!PpWmR=|E$(KO-ur=v(^ z5uKs+0S92Ox&DlQ@7=%onbrP`!JknjsS7l&_Get}&p1ymz-oWS)&7hz?I8CKIMNRt zgI4=9`V@`T{*3f$bo5YUr zZEBjk+MiKoh>C(%`!m*NxDHs{mKqO)%xkPaqTALZtVWFUO~wqo1#x$iF|8;;3n4NBMtM@X{d9 zEV!leH^aN9=t*z~f;$wRs-|_B`Py@J^R>knuWr8f&ENU?+7TEFOU>8z#z58(t!BRV z%{BA2gUrY>;1(Nm-_iNnX~z&;{d{e|-PlH;>wN8->*i~B>{%haxgUR>&({uM&(1Xc zbgC+}H3wntH8Ed1aCSz$k2U6A3-h%DG?$yNU4^X@wp4yup07RkdY!Kwz*s7zw=ld1 zTI|loJ`h)7Vsjp@<(@ov-~Zn6Di` z-dRcE=4*SvN2_E1)LG2eo?D%-%`vm}Tn)wSHGy%Lu!7~=IbS6Q`J1Kosjuby&4>Qo^T+=J=5Gcz%eu~~06xsuzWv)bUpu`ybdbcKqN5E- zUReuC=4;QX=~m5rZTP>`MpE;&=U%h(wf$Iq z*IpK!F)m_(qt*G^YgUlIxhzm)2*!Z=6^ReY5Nn1PCM{%T(W~>deeX*EL}T}F@qF!s ztyrW~3FwEGm=@4qov)2S*loUc2FuVAoyOyuukCeIY?!I}+HmOYd84$TY_8%wU4Id+`O`w@iqi)Qt&evXgzIMpp z?42y0pJXzqA1jjPYcthhy2r?EYT@lrsOD?;43ebqDL!BJf&cu8Pgnw{AB{m1P7=^a zXpAGY3G;;^+r|A#NhtkxBL4OWom3k<(k8rQL*`h5qscH3C@v<_wh9);WHF@9H)_q>r-mOUv<^sjJiHz88 z9Jv1UT@EzKTbgn$t}D02o+S5=HV&M-Q|<4Y-2ePeA|k_MjRVJR6f(pR=B(+3rDV^Y z<6EAI&FW*er@n2pKJf!#+)}@-hkb7*s!^HQaJQCfo8WgkG`dDKjRQErJB#(<#$Fvp zWV61~UDkWW$ywbrypypw?H}URazkb(Tfbz3c^Ol{tVcJcM&TZ2*R10!q<8q%fy_1e zD^1@1_nOvo=Knau#oOs4>D&94;cu<^VJPE2O~IkR3n0B_ojujw9ZLCVZ9K8T%{{3; zmfJqjd_E75?XN!anENMMK$&p8_K(>)_ozT|F$3APqb(aaMz zJZ&R!JRJb5?Eo|FX~WTpPV9@=MuKEu_1gze^UC{yHRGee#z4Y-7;X#21IuBidX$i^ zVOgz@AUwAguL$iTV%PNELz-=HL;uzfyu((`kB!!4AU{V058f>1XUt2W-^BdrDA#gvx+a^jN5Wmjo?$54e zgtDh=1)^LZ@AkWG!Bt5n3U^YE{@%INV|Moqwx9{$zB42KkwEpkOH`jyCLz6T6C3WI zEFRDR%8JAgPej5mBqy5P>3(X%lQto*EOg2Vpp64>+R50eX(;be6MTGFWI6ya51rf{ z*&h!Hpj&Og#f(w?>UzRxZ!pPbuIiDv>1Q4HYLoAgmr z1nlQbbQ|+YqV@)jtM?$osj5Z{CdHAMNG;~!cLv*rQgp0`kF4XinK*RRU_)Z4U^BIF zYf^5TUf4Odg(;xXa7Z!K;!k<&*5aA8(Xrxxu)!^iOl#bFKDz@N8l>9PdizZSw11QN zsȯz8gl_ej-}Qz-T|wSD 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

4IkpTOUZ7a-FV? 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 WJD!Sd9-#tgk!hPjq$co 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 z

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 z zh4J@@iyIW(e)n(UCOZGfk%1j(D8ENIaO8 z^E>fS#*KKh0zqC+$@0C4M=|~8#Je!wig-NZZHXr`9z{Hv@fhMMjCUiR%6KyIG{$=q zPiK4p@l3|0ue>bAZy^1VjE^KfhVh$;k7s-m@rjHV5_d6PO1yya>BRNEHgUVpCSJz$ z@qG{sm5kp-yqfWQiA$fMay&dld@j>pMtmXT_!MU1Z_zL@dniPtjz3h||kZzo>I z_-^9M82^CyO2$7SzJ_u6t=@HvA0_?ujN>aO7&b8e6Y-6V;|q=$HZlGy@vV%DX^Wu0 zgK-DUCd9Cd@nGV681G1YALDVv_cM;KzhF4Pcna}@j1MG!nDL>+k1#%p_;JR^6FMzd-t-jBg?y!T5IK^1esf`6lr$OkaLeHJ7`a z#^IH95ymqP?>dPvk?~;S^8QcS-=25@)9*;Ui18TWWsG+tF7G2{`Mro&GyQ(VXEKhj zd|{Z&IKH%nVIkw=h%aIsU%A4tnDNQPYZ)&lzLfDw;&qJAB)*LCdBj&TjxVBNSi|^3 z#Md#tn)rIgpCi73@mGj%WPB^}O^m-ud@JMoi0@!ry!{6D?_&Hg>F;6u81a3KUm(7p z@vFoSFfM)79b`NJ4^9vcGd_g)5yoA_k279K`~>5(iJxM8C2=xW!OM3#gbRBdVyXQm zhCH6qfs7BQv=ms5{EY*d{4EX3kiQWikHQ56zYAJ^i-@(9REuU(d?c1_3^;&6T22**mfBc9iFy5B9 z{@VgrP9$;tw*`8%jeSiZwnwV zqw@9N7C=6qxbz(*?Qs(iBq{k)O6$KZfaS<<2h{?nA6$GH6F zfd1P8SiT$&`fm#$-$D7Ml=Z$(T>9ddT6_@dgqxEP#NZg>=ij`A{CU2i zS08f8+rZEI-}RP`lhvfV;D6>1TbJ|Cr^D4d9Vd^wFrD$AcrTXTV6Syb4AUk4GbhB- z<1qCcOs}}sr|{o)Cd^-vXwt7RxzNSg7=POxu;!jvbL>kFcK>rvzM2Q-hHiVg?_IqM z-Tw*Cwj*GW(~uYATrO@;*JAhScLG3kn3HN^&Lc9q?e*|fPpn}?e-6bpaq#zN`STlQ zzh;g^Cs>bVrZT-$^gaP$hgfR!H?f`a`a)heOaR9BbnNO~;VSbs=Ntr)J$1uuu@!E(p)RX7epugDu zPd8D&od(rXIY9#pg~02=^M7O8PwArRS8GDdzr|y<+#YiKwQZvQ75-Yrvutql`U9J& zznbbV1Al86g5eL(H@yBVs$X7@qArGe$iOG)x>lq0?U#1ob%Tsc9h8afwN$7kJWH-S z1wdo{cVd8+C7p7j{W!me+dmWXvrQy&oR88nVw*8wejLkk|CMqVFtkZtS3p#RF=W52 zPja4q9af04*f@(%({jk|jP334t1`cA|4&WWe}w9f z`HS(7zr!?Ee=XH7_aCeu>*V$0^)URurvIDKjgWjU2r43=E(R&VWmTg-Dd$qd>1U7n z`S)6O&+=yIKlp!bh}KXlt;G6p4ji{%`zQ_0|AbcrV@u=WL+gVU*Onfils%FYHS+g; zQl`qADyTmd{&3kHdO-N3>^E}62}IHj<-nRgY3@r&UmYKxhJGl;I`^BIHIb;~>Q|Ez z(a*gj;o_Dg=-|zvzy>C~qba?0`ysy-Z@LD$`-n8;?h@fXcyqt;(l=$J^=WP|?=K1r z_f*%k;bG>a`|X5}Hvd*_-Y76YzlG0&s_X`LU^?tvZtX=0ZM#6J4zY1$8<`!l zJsHpzm)j`H6*(cJPkPPx2-rq)M6;}(CcKqd(@m=lM}e%Ue)D6;f2&#Su9C*qWJUzK z+%|#9en7#1GTkTA7wn3{y`b^!-_Y-EJQdMk;AdEmJ_(yW&Hc-t4)o3S1N~rn*dD*p zJN%lPZg)VJq68tWO<%CXk?uC8-#x`9$~-N7>GpH)7WHSquJ3Wh8%n(amCN2p-{h$( z?5!sEj!gG$Hcv5svM-=z_4|XqKWelcNFHGa)^v%$1Ht?QH}rr5jVYqRG0XiH*}mIT zX-%@QU8u>uVtf68?923>-!|B>uZj{f-QD2m)g?mP6z+qt{lJOvpKZVTLuwDL1Ue;1 zga1``>SO^=D~v{}rp?)%5p^st>`JN9$RCsjLUJXYe6ICd(Lke z?ki25ANtjVxDO^3yz=u-EEoP_Ob5QMQ;ND{um^%YwPz!lPFD-Qyzy>odUqaZQGF_h(v$vj*akII{N7(QX z3WXnSSlYK#+R(6XGhocIV~;$@Wz-bg;GhT>5Kx>rY-YGm$ZH7LHxmw}-~OZD(l==w zz!An@9AUI!3+=*#+vZkREZPwjl&j3bj`W%sv=0t|J}&nJr6w)H=5h}-W!_yG5eSvb z0~)UL*y7%e$#mEtfmDV#t3jm>d8CuNP&D|~b|{})JkC%9O}cR}&J z1#BW-ijRjsdIBmT<8MYai{MC8$1kvuFVss0 z!?aM-CBq&gAPcOf?yFSrp=4U6KBF4Sz*ZY+Za~cq z>K18}7qwxOI^HzuX3FkuQo^9vuphx7MfEi)tqoO*sr7X9%EbMotE0jzT30sol-|%k zx~ZXmbhC8&E&Zcgq`z@xMy#4qV9Dq%mq*0-g^J&c7xisrQS2Uk5+TC9i4tR zll5lWhX!hOgJ*KZx4vM6cdEi?yPwC|yQALedh=MN-bp(-Rc|4kjn4?uuY(cNR%z&C z+&@;)+>*}-LQmrX_4Rr@w6{w1I7kQguk|IPeqbWGC=Vhx?%?(u{J++lMApMg()Ago zNupiwR6%osj!xt;bK7)9b9UYiA60~CF5E*kC+cCEC-?T6C-?ArC-4!dCfuwC2w&|T zG$-#J^*-aHWLHc7?a>504&6Ixj@~=#I{_O2dmuT9_o&9myxRI$x!%*>IDAkNuh)W& zs3-||OWf5nKHx~#EkO9MPeh0L;GI@(SWI*m{`7@w{T{OW(0x31mF7SmW~LfE4&-}s z9dt3@3mY@IWoVe{g4A`mnKXCvDcs$BZ`hWBxKaB+p(4`PEL{8JR!KE0!G5^1A7&dB zE`8MZm#*mtcwE!h!6UjRT+>6_G2nf;C!mXZ@H~8v$%LQsRqs{cE#Lc9%R~6g0-{T` zsC5};fb@fuUXJT+HZS!d{B>Us&E9Gq<@d7tsE<4=)@yU*y>Uu`)sSpo1G!Dj9qMTx z-&e3ClPLj~>RFq)xq42u>_yhBg?d3XI209?HRRjUU%jMSKETzsfL7{dkxNU1?`MZ8 z;WJp}Fm?S#h$Ngj@37>Gl*RR{Naewi7+`+55R(TBQ7~DE!l^?1>vkcg;K!yMmZH~$ zDE>%@5}bYQu#_5L>^LlCZG^ZrQHb(kLR5?sqOwqks#!uzT_nV`hlHqpMu_PfgqZP` z5V!3YV%8xcW`8fl+{;4D>ubUK=8qL(L4gnprwMWU9YWmkh!A%^C&Z#RgmB~JJcs2j zblvQ*)S$O!hh=dmA(o65;vW1aiottgt+-7dt#=ug?v?2%`McyyZ(kG&_va`gM} zXtv^l5G&0#Og$bT#Og>P*1(Pg@QHy!tQ{r9x;!DCsuJSq+l5&FfDq3105uYg!So(mv9LouM zP+g8YK+r>)RGf7Ws|(urP8T^=Js!|M*n3Ste=MghP8xzEX}b_ig<8T^L%Kc2!*CJa z%%FxK3V96{5pYGNI3m&Xa6hvtWDRJ9;H;7M81w!bVnN36@IbT8`$vekF~){Ftv2t= z5Dzv7cJPL452dZOZwGHXL_)2DJDMHV0j74C&pJ>sg^0)?o8sLW*0;9~!}UW=?FK-~ zdLyhCkt~}M4xYlJ!fipLaK%_yDB%&{K>8NUl?#jTNQ)ZX!TPm|mTC&o9j)K0qI{tr z9cBGd6~&2URJ3)fC~Pg3xE@RFgey9|0E>`UaDnAUb+XQUAEdQjExfbI6xGE#=NpD& zOpea6an?^ol^%5~8l-fNPq3aAmGc!{yIBum&(&8zITDksKjZ5Gd_{P7tF229Yi|P< z9FuJAYp~{lniAgAYKrb*t2(zSb{A@z&R|+NuAN{x(7MqW5(klPq5w}8C1#LyuTiw1zFAuC&V$pv=ZWor z3ne#YZkqSJAqbRLrFT^Ej~*0boL)}wH?0jA4#gY{b@*Spc$!Q^R| z*0Ir9)@Y5L0i(6egsoFLoriSDWmtp{Gn=A^TVpge(M^bz=n>WgljsSSHF~5qNn0@h zj%3z!Txext=1w@>He@&~+G8=%qpZhtn<@S#>#wwdqDNZ~)Ng351n;{c-#DK@?*~AR zwMT}Jv8djwAU?q-$QxbLkGFRWzu9c?ei`D~K2C3J?k)Cc@3$bGl5u=yg!Dt z%Qw*b3y`_?4&jq*s`p8VPxcM+{t0BhJt{oUYViIY;)T9WZycQk_Dgq-i_E93%4s?b~L$Q0?@9XERa2<6}D7$^80_H^&x zA?fwXE>U7!z-4=yOLTw>jOXk)pT#^hq8y^e!%MJc!&o$md%AkvT{!?q?8`U z-^41MWf$Q8*v+^~6{~^`s{{PS1y4`YZ+MS4x&(EcQ&7dIshCy=IE6~DC8>bjpm3d5 zt~l`bFyo{sb@V#S7`c2q<}}}PFI=jn;0ea!0ua!_x3{UnW?6wJo0K`AX@Oy=1f;a= zW2~^Pz#<{^ux){*I{F-z)M>>#kVv+Ql9V1^XtX-I85A4PX{A_Y(^mDme+aA!ffbrn z;CftK(e?EHQP|ZNv&0|9!o2Qz5X}mJh5ZHq0bQZ~dqY=X=2RsTmP)^IxaS3Qb@Wlk z=R#DhpMp%B?tJ=Bhj_CA;IVf$u=>-OG6<6Tk8j~cy6SDZtbSoIEi~SV&N51j>WxOj z{i@OU8{9MhW;B}bG#IVVs7Bis)#!Dz5w@@qPPBFKn-U%_{~P|>1OH#^fj@I&_SbHc zn)2D>d0h1$JE29-mEa&RH&1+z9vr%s|G9%XbiJC;tw9FOg)#V(O>J3YjWjI zodo{iq?6WA;X6_+vZsO(5!XDAL)Ssz8@F;&5gM6|K8C=<9(!mv`x-)ZU-Nt~A+bCU zd?S@k%hs}hEe(OR`r4fFR0)^?x#|;OUIKUqESU_`5&yQYSy$my@Y@Go04vckAh<>p z>3XNRMMS^}RK9fFDO|?_Cf_ zk?{Y;j)Y;`i)ZaPI_ zJ#wqc%k#jivgeRKRk;S?0k5gT(n^F?dAEXBZhqz%k)S(k^oCuy8vdpW{hr{y7TmMK z-VaVgWmK$5NWQiyjWw@PgM<^(CYlWfg8y^TCD$DEMXxlmPFLnN`O@Oy6rpvbJiT~2 z@|y1OoPj(lN@-;QIBzdg7Q*$+-*%b$KX&c&XBRbK1Wok>->kwjt15l6Cd0a5G7=xg zDIR~U{WX8Amc`N|>n*-f;HFjQkrnffp}hF0uIapUcviTpgZCjQFW&Mso!78{XHEn4 z{gfB)2^-|??;GFGH@Tm0>H_Ox%iYrUZxF>plk_b}hpafa6$9QkHd0QS??in$#-nOu z1wmG{$wg&}_iOb1*tktUHC7asv!2Sq2b_)A#M|~jQ{_m15O_oSH_BPlSUI?zQs7<= z1KzzhC$}X*!UfV4O^E4;)XtaJ z&Uof%j`5~@j!a*$=#~rt8+8ran4@2{F-O0KMjidW^rm-hO`oJ2Z%!U~@npxx;3p=S z3_9oWQ!ggom49jD^_y3X+h#9EXgdA!gA-?jE?RiEU#9U}cfn5r&O0}}V#24!=SpJD z8+WGcnuAbn%-OA}F^|Hg#ykqEjd>I{HRe&+)R;$MV`CnL)y5p?nsXvvs-2zq_P;+Y z*}QRA#bB{NSQ^_LmXp&iJ^I@%>mqLp$@t>*t>;c-GcD`izI8)DNN8bI-##H!+H1yzev*FoZWVcd!^bwJ-$1NNK3k0(BOe%@#v=3qu614ro|}#aOl;a(f$_ z8#<~MW2tSAvH5bd(YD8|TJ8mxlsrcODE-UU!t4)O0^plT7UL8{oN5eMZnhdCT3|&9 z{$|w{X9&3_s}q#-Y$;|h$Qo>jft1V8UNr_UH@a-+jKSBNgRVC_3^%ked)bbg9iN!J zQjD&Ai?Lm$xyz@J$A~ayI+K9P5U{(4j<`z&=Z$p%d>iNb2w)Mu|%ORKT zIoSJo=U{h?(kkz4h*k}mEiJY^+E!`M?Lu$8FtRfkX{&0aqvN5h8x6&(=&r8N)8>|z z>!BHG7UNOn9JFONY^tT|a)>}LngcAx73%foV2dHO1+>u1V!VHjAp-0i19^fi#vc`% z;DA%&EXJW@%&jfP#PzVjphcNmjEO16Oxrnw?V2{d0rNdNcvqM^+V)zETjxNfyOiZ- zvu%&%KKO<5pSo%0KA6#KbJ0Kcu>9Aal;LX_;v+n|`ouSL{@S#Dhepqh@zrmU7!`$YKyH4AXQWlTWzH-6&3dlTxmtb zqVoGb&pdO^+{q1M+xPwa`~ST2x#vD-zVpmJ^UO1I&YbZ-F|6!|@k|`v#VXTP0RNG% zBrEM7q3zoWQD365-d@*!stJ;{oL6WaN=n8W1U!6Z1j9WVkCJZ&h}IRWSO#WM-cLGfUO zQ`iYkkGwmY1n2M$;7lOqHq{pn3-+q3{z>Qt=D?a_Q=Nz|5Ogg?=L*BK{$OoNe}I@?{4%X{cV8Hk*`eSTj61ZK_`vf8_LsI4=6*c@HRkTQ6QX^lhei_>thxbo`xpnkS8MJ#)fC zK8a~cC+U9<>C6p~gjWWSVcERcNj=gx*5kDYJk4Z-X2E;h^f$+Kx~Q+>{XOqn zY=hq{A2a-1BOK~SWGI|GTsr*o2!tX0KwKKXh(H*^^KohXaspupH`A}zf$a2C8pseo zwO$>L9x3elEhlCe;y2SjmeG!Qy@8wgy4t|aeBEW>CjV0g-XHfmozDwy=WDaUPotsc zf7{?U>t(CKZ`UpstCGa0+wc$EOSU2bMOH_J_Lf245C{9Z|c!w_zk&oV|kmh(df zZie%sft%rcW8h}LOLLV2#d|O=U2fTe+vPC8;5W;e##u6UzRogmGd=YNo)3RI-ir;~ z%-0PDZib`R(Cm2E8T@AZc}{S&GtZha>)?CDaW*iX_pVl95R$1vw!6>+OeG+ zD>(5Jk1hwTzu5WG;|#SslJ=VaI^2`7!}*1R86SXq&A&o$J6~%IezW}FF>tdyKQ+QJ z`_~SG-z?A0%8mSzq4b;O7A6qJuCL=1+#$aw7`U0=QG(m~tuy$|{4O+bGru<&_`c-p zr?!VOBYd+xoNnM|I%f-Rw})#Delwig47>>Ux;@-&;AX!5Q{&)~M))O0ycGsM$iPoA za5Fufjcde1#%@3P3hvN;O!+(*Jh~jt5q=71h=E^d;3oey25$1-Y2ar0Khz1n!NAS> z4Yq7F`Z?W!6_MF~bnQSzpbJD*Pzi>u_cmxLM9x->2+pos(F#-cC66 zJ8dX0WC$PST#=Nr+LX)%Xz}PT=Wgjf%~CwyN>l z1P=?<_^-vDZ{dFsd!dDI6g!P&WOO+1E2~#`8vk5yl2K$d{++V&^H>w_NfiyF>s0d> z2wuvremJxrlT5iHUif8#M=ZQT@G1)*EBGi2*LvX?3!g3g<1G9R!N*(p?*yM{;rbha zx}J4@^*8&cTKxJOiwzd8*BP2E{2Ph4&B7A{3Ycx-se;e3aQzL!xfY%+{PQjRK*1MU z_(6hSW#RO#9Wsj*@#=Ay;7csLRPd!1uFo90)x!0+9hY0UK8t9Dh5t;#zsJJqn>J+b zSHw$ajo>RSe5&9NS$LD+t1O(>>By{A#0x*(8AT*d^fw~cTm1SgqGv69xrG0`g+D0x zCJWbR5xs2Te-i%97XG5(TP$3EYv>&d|6KS#uy8CEv)O9liGqJ-;rg3q+bujK{5vc> zNAO)1o-g=!7JjJUJV3!s_tV1#4@y7N_>qFsH{i%Qnh5u3T@fJ?& zo@6Fk_&b8vTKK1ePqpxG1#htM#GneFzF9{`ryu+A*|b^s0fOssO!M~E{7@ZSr*%EIY+Cz-Vt{+!_JEPS)z>n(h%;Llq4PQjnIaC}#R z%_a-a68vQg&lh~Ng%1*Zi-jLA_&XLpO7IUXyhiY?7TzrQXBK{`;M*;HvEVx_{Fj37 zvhbCHe`n!q1$Sh;(*5O+f(I@9Z-Uc%U}QA^`+{pdOXJ%G&#?G^5IoDmQqe<%FoExcE`Ro2dxLH1T8~pm&3i)4a;AVYo zFz{4j6q6^E;-ob`ZTicN#`SvNAr?++XJoXy=AWWq?;F_~Zxfu>^vG!ZCS`SK4Umk+ zf2*v#lh?%mD)`w#HNQSXTDLciA1L*-z~Vnl@LyQ?5rXUZbvVZgzTV>3>pZVn_ypnq z!ov0XPlCAX@MnlUWZ^m-onFmXX#2^z%r)j;;B%{`ZL${y)XO$HI@2cC5cqPR;^x2_GXC!p;7!$4$b`{(iN= zZ}xY3?}ZHUoBe&D1WLHs-)9@R+24O{;AVe+$-t>BwE4!s&Hj6dB%0zi<-lw94T+`&g4GyG_Mrb6cjQ*^e8OP@%=XE0!2WZS^b_Gop&8E@;9uu@3IrYjGvZ5ZX9 zgki?ZTY5X}cj~yUR;MK1DH^mR>?Z^f6Mcu>Q^vs?_9-77Bl$_pwE4>`kB&R$%Kei( zI@=-kqZ}iAj(tcxHkIl0;KkaSYP>Ry&BHOf^r~Cx>L)khb>0}p+PZyY?6}3QRac~0 z3#f#lKfbRmCJCCoxnHfJDJ@Min*A>Y@cZ&6*R;m^Chd)i2F+w(OA`dt zn4iV#cX=vB|)`{#wUA zoJO;#{PDi?8tgh9^RrV*iv1nJB|~xFP}ADVA5VbLsBfxpP8=~px**C3``_s~^uKG4 z$6zc&WK2-YWTLXn9IU}XAC44&h~ze(a>C!Q&O(y#3JXQEKz#lM_DnB9ta|91T6!GFB?7t_lbFqA$r z6hG-}cKnr{#V`7zem|YUAY;d0-bwt=4paPkU5w%<{m+hn3DOrg|CA{h{l2@hb&UTS zc#fCNbw(l%Z~qRU=+VJcibt{ER&lo4G5*U zO!IUn<;R~y1EampW7pr~os{3YQWeWOMY#WlaBrvo9VCd-k8T)aGGr1KjzN9@8h!)* z!JS1NE6-)e7=B6QD(+m**cKRdY-!3m5zYgOd_>Y(VXC?i` z!bs`whfDjXvLsVR=Lzu~TLwf}*Zqh)2kHb!AwE|X>b z{8xu-^S;nY{M|{|z}#x(!}k9t_{YyFC1%6yDpMA-|Kg| zN%~*PR~{DX04@I-rtcu&*P;9!d2x8IL`3N?#HEv?+wa5htl!zwVG>C!O zq`1gvxM zUGAD*iTua;&&74Z?DW&~)_C!68l!wr{g9#ZFTrKUPtWNoOuPKUd=Q4?Tw>*4$FJ!x z5Pw1(`MG!;0)>(8$MKV0`=fg@C!zeTC>UQU?KdQP5c%tg%T9mM5r>COqs}!`h`Lw* z`s}mAi;o;On4S0i?6Z{fI7$3hD*s{RM4jC-#yqd1qP_oC;?M`(l(iS(9G--WCkNL;rL!($-GYMs6B7zrdS>+O zQ;-?&ObqWpiJ(4r05S4yVhGx165RV^4#DRTFp@$@luk0}f&&ZGT~|5bqJOt;bTR?v zDSdGW!?132LPjc1KC-jRyrU4njPtk?`VU9g8UD!*nd&5m?&<)D{mla% zvSN?$IH0F{L^qv;9xk7%&@&e)8H%7o6k@k-$KtjZg+UgT*xu@di9Y*-f#UAl12@X4 zA9cQLIl}>mQ>e2ZawzSN6E@Fwz&r2i?1(&#YVHF`Q01!wD+;`WCA@Pa`lEQAgXHuG zFA5x0p%2N>;T)__n9#r>8t{&sIP?I7H9#l8gAenH7@}sNI&Go|TwE9S^YRPsdZJ11#W? z4nuLKW>bTASw^`|t}pE3NjS(oe9Su-D0vY4!N8zDFd6bkA}NJ$5J^3ED5fF7)P@z% z;)1EunI*O95w4)kD<<5*)b<0J zEGlDi^(ZFSoXuo$J(Fu^Fu86%lO@+Mx#12bH?C!J)1R0ueUr(}A2PY+D<;c!Gg+RB z2T8%yU*$5nqlC$dNOnZUJ&);Hl?&nMz zx}rw~Gp6S+2nOyM|lZDAp5Q7=fK1{AW zo=N-9m|WGwmCG2>{0G+U|Qk6#`IKo8`Dwl-DlgqOeeTUFs*jWnbx?cGp%(eGM(Z!GM(nmVcOtc$+XG6jp=#r!%W-U zXPM4&|HgE-`vKGQ-5;3FaeJUgCib|*J(%gG?og)l-3q3cyQ7&#-5RD>xlK&3b}wSO z*llNeoqIFW8{E5@E_K&1{e}B1(_7uYF}>aWfa!AgA54GgCSkQ8vBwHGhv{AJ;Y{yw zPh@(Zdlu9C-DymJ9(433FCesFV{?s1EmI)PHAZeSGCK%kmwLZFdpFmMsm#K0n^NrBs#CI{|kni5#c zv`gTxOuGg?V%jaRn`vs`01P&XJ@yL}Fii^#VVWK|iD^clnrUXB5j5C)>BUTLUd-ed zcQd(VHIv((V{-d@OqT6nvOEbZJ;C0;3Ng9k5GE^zGr98=CU;L{a!(7Bd*?H`??xu~ z-^1jA2buh44U^wK&E&!7nf&e*Ccl4+$wMDAd1O12N55sVI?#s_u_lX1b~y{~?27(u zJK;DcCyrwhX<$;hfXPWWGdcNpOsbw^GV*OEr|e>KYAPo8!R%25OinwN$?2yv89jx` zm^nC{tG6ff6rvh^GwFR!Q^M3Fd4TW z6pyYCkjij{n^KtHjcy$`^>Vjx0G|ML5$yXN1SXiY7h&lZ9G1Sob<*hYz$Ev;41Dn{ zjgALOaR+83C#R(S757~dLYdvW1``jz6PC31@pnLSQrf4WSxE=%pO})gUsh@#=qE|( zPF7lgZnE%cwqR05R(cNEx;t5!2ht6sBhE5P3}$2`2YVC&>3KN*f=)*FBsa8wN^;t9 zunzB*+$-_u&0R{edQhNU4tKJ8o(!F)%MmGAA-)-!k=2WDhJ~_v^UaartUi2mRAE+M zzB#%$s~_JCAC{HPH^-D_S$U%qB`Df702~)EQIQB?$ zR)4;!Y|A=mJUN{-JL}+Dx*0h)>(HrmbIN5|hc(d6sq?Z1&Ze8w7G@P+N;hXN&KeY@ zo3oc@4PHz) z-4E=zw6SRqfgZbGTAyRGOVd_S{5k7^IK4^b%q~m&%!lwz*;Cw{kKvm08L{LNBNt)b zh_ulzGkUH$Y^97jdF5$!hHE}l%mba=gF$)^#9uyTv7q9Fv^5==@=i>4uzJZ zyyr#IrW-B_ET}vw?Foevpjl5&YqLVmxf{+-@B8uJr>bD&DQSD+G8CLTDlIv{8S%nX zUh_^%TVO=*B}`mTPn%=7vR{rdZ*i5bqOlXp(q2*Y70JUG3F<3FFh zRi|YpFf*4^cw$XF@ zuRbl^!nkES*;CSP=j^c8?5SzXJ(~*cplNAOQDE6WPkV{$j{cm3&P^{O#)5|FX@5|4 zPmvwy6f`!a1&w-B?VvgBT$3sLy!6vK8v1kcTGC!tK2#c7(+^@tza6Db!#t!d^SI2k z7TnCrJaPZTjLZ>PGpNWiE1ayEe1j9p(yoL1`I)DY`^c;r_raEVD%|-7CzNH(PE5(Z zpnI>ia8TLHxGMobckz-v)9B zbn>pvT<$wNdDmtBT3J0W&LP)lz8=V1lKGaZyRMiNIla^If9QZ4GIs=2^aF0pbQ08U z-c6Z_3EYBIu`bQLMYUg5>o@P8#bHxd%i%xnqWo7+VIS6n|6gQ2l+e2kHv_qec+5`t zmdrmTaN7M0<*>iPTW`y{luMufoV?pJUr~LHO5Vv^mbp2Bi<EgIk`u|-uqbmW!#k* z%)2}DFvZ3NM6i>0Pi9Gwvu}CLyEk))a^O*7AqA|$Tts1BhrfIZA@9D-_l>$4@axQf zO0DGGpZT(1yUKIH1HU;S5O{?G<8sRQZNM#9`QQPA3@nY>_V0S$kwzWh_dQo+KNK3m z&0Q_IJscWp*d7TTY1keO9qrk26#J^sG7oaHSBH)@Y->U%8n(wm)rM_t=vRjA51~5^ z+vA~oJex%GL}-!^t;Ces=}ncCy)IPes< z5ZSXggc?1*94vey0CVaC7%KH3C;Qn@rD6MH=o-WJr_k|+?YYp&hVA*# zSi|<`&>4p9FQGFH+Y6zkhHX>m8P6t#^ViVF9^_=d7}{#sUJ6}i*j^6J@@;vqgeqOn zs=~_qTWE}hiNmX*k(Ps#w>dP*#?*%;ex?zY*HzaX5KfLdPk=%#L|) zhAIqe_FJI~eBSK0LkkSsJE4nwTi&~&W0bsC;k*|bVOX=@4?X7(7ug?#o@1X%hJ6@1 z*w2NN_faUxw@T(e4y72F557&^3lN=!T9rtch;uWW$Pi z-dMw$?1s)TtSN5jOvBp64J|dSUER<#o>i4WQ8zdAv4=TDscvYiVcpLSU1nI*+|VrF zTAYr2xSm}FSe)Ua&&Gn{lIfz;#=1Dg-Cgur3oP2-4P9?x#aXWIx8&j!9pHwxc|1;W z4_EhGb}sJe>aMHULvH8-pS`G;8(Lskd%K~Fd~0zZS9f3bT-?{y{g>@U{oK%V%+6i5 zINL>^HN5Az=(L_)avyflYi%$Wv-S>Po{N4P%c=Tp@qsQnuIJ(u=ey{+hP}W=*Y)hG z>lXLNVx9qVqb@qg4SnG;I>m)9darLUxdN+Khq%2$B{V%h*zH zZr6hb9qJ|qN>;*F>7GT7}CDtQw(hr3<- z4;tjAxFw&$c7)rfS4l167~*yh9Jx?K+`Nyh@#QEs0;C8VGp>2^J= zBp1kVw{I^_;?Zu`!6k@NH zdQ{0YAmwh~98TQ`x9gCS3xS;A_6>8wD%`F^OBMl%xP5auVJEs>k1SaR$2bFG_G>*?z}B@l-? zH|I+)HZ@l$u6J_^Tn@%_af+w7Im2DguBKzfQ{9}d21va#bk z_x8RBa$%@50i5m`rEohaZJ~P&uwl-XZaoDs)IFOWC$M8wIlAJ=-uY!(dbxsLjG-5R z5}XMM@KucWW$>K*|IGiD!2gxN|CPZ1mB9a%z>k)|-i{{x*UwwlFACN){L2R}{|iS1 z*G+Dq!-5LsNTP!sxxwkQbm}cO`8sksa!tbw+JlI*YyC5Ll@p*zjvN(RcKYdMXI77{ zJgcI5%$cJqs&VRNHBPi`!(p2U(!Z;&Z>X7qy`+_=VmC2fljKuAwWW@>CTh#1npVUM z+pLyp2*k2#f67sNoHV1}XC#YuXswxP1Tm>*^0_mbeNJ{|R%{flYE;%DFcI?>ZXR;>Zba7>YHCR#jlWjm|)BscXfNOReyt zZ5&s1b4~3Kr+PZVbE;=F&S9V~2HP8?vL%f39zxT+;|#k=90WZ?*Yag+Y;-emFC0I0x8HI>irl zri7=d7u`$=$EP~RnL5gP9QceAqVeB~dvMAHnz3Z;e6_rI@+`AOm4u@(RD2?PJJB?*RIE16V6&yq#h@eH`1}xOtHJZX=WY# zHP&F0Z`<@{YG6cR=XBt#Xg{-3GF*;EM%g}7IZA0#>d7nTXQqJa2=JeFB=~>tY2g3A zKLEV?tRd4{vDv!LVdAJm?g?zHX(SLto!5@Os}5<$P0i${)_SLgJmREr>XGz6sNR`e zH?0BxPIC2Rtgebhi zA{5Q8_elG2kDip#BFnaMj?ST&buUDDMqiHTb8h0YO>gpQ@$-N6#zL zGzIrmH4R)94OA5kR15rvaHuL8s4Dmm09S=d1KFr55GSgFVpdgw*jwuPZ!#wY>Eo(E z?5GM#Ne%zarhkfxtD-?w1=7QL2IZ!l}N@+(`@c$(IQ}Gc|9H@o{zZ&RPszKeV zY9Jvj)xfu?22c)1f{|)K?ztL}bx9Ie1AWv1+{4gSgvi)UC?5!~Df1mZNHH>Hghy!b zFrCpDGssuZkT5l^X2d&Zo^KS!0TP>pOt&gXeZ#R;W2kA>sr4;}n@+QGlo$|(vg`C4 zHp8#Zi*jX~N}U3zkSJZg&2;s0rJRktDZtC2VKx1GxmE67TI!7q)4i8LvUvF+iywma z!>RQ=c{V>Oo;PF*>ZN2*-EqN8ubHiCT-~Syt9uGg-A%8XKDqgP2ZV=reE5W{AdNyN z*R&}sC^1iOCaaJ}ZEb=|0eE(O%XH?N+QM8yTALfm+B~V{T%s+L6)rFkLfe|oC9kBQ z!lqOZ+(3(k(%#YpUA6&=bxRFC?V{|^vBXXv^-vn9ruZBP4)H|xHJR?T&8%*%n@psU zD9$iFpSo2;b!$UY;}l_SZH5yE;?z#7uP5Km^mCc;Urj4^NdZ&;Q>L>8ao05P9n!1( zkd4BshE@ilGr6vrHdi?pci3v>bVT?IN}cS?qK`IV@alZ)RyjV52=&`M$l zv$uI6G2^XsHhVj>o)$S{&IFG=lYFFoCiyV1kK<5(`g!KtvDc9@vW)hW#yeA-mc)P5 z$l2ltGvnf6BNqQH_{HpsKNnBFx6A#<66nS|F+33O#Bev>iQ$2`r;x`xUpwKlYkMC% zbxGv?Y5hJww%dul$5QMGYpyuHWat6!rH!cC`TXzRSo%JJf#TeGH-&4C`mVKL@qj;G zw|o_IUNHS6=Z=d%TD>B5)5)81xF(#q$A~AKk+bZPyy3@>SUltVw=$Q%#jJr|XI^$k z{vU_lSF~+s?Uk=x`vr$N=&knGzZ%=Sq3iWazWwcp=wAp-%pNiRgryhsxNX_Bm+w64 zv;%p|X)sdM@OpH{UmwU%`DN;s?5z8VGZ62z^u&MfwDdr{)6xUkjh7D@8-4tjPu#q2 zTVUgy;T-$-4_}=4%s-DgdGxEJ-kWgW2d5L5_}t+a@9Oq&_=}e!7xo=-`8Qh$40hjs z_j61C@!1*SYg?{fv*VXF48}WbJ@D@xww@U8u=T+2&i>+-wLO1%;pbNm`P;yx_lHpI zi9IGf82VZH&V@_$i3#7+Ve(~BP3{D)5qj(qLzk()OU3132B(pjI3YFAQuVFgaeANxAvaE@eB9JK@`@o6l){{jp^ug9n-Cw5Q=P@blDx;Td$QdCFpS zVt8jv>HewWKfXT22V<*`S~+~O_C6iRZJexKG_yo`)Y$A{M^qm%_%M9aYR2rtrZmnd znl!DgwTREC-Ur4Q7ARzs8)nqj6-_?$P{dP&0ZI*FKbo(OKK%u^f8&sEKM-EEQ^$AX z%KK|QNthsr&LasdLMc1BALjn(9) zlnT1z(VhOP+hCO}>p>m}-4b67)Ro$r7Tk7rPPkPQ+6o_?8Eojlqrktj5U_a?I(#8U zaU^u|w6OEDyYa?j9Fq|DD-`rtlHL#OXc9c_A=a()GrjQ|K^&7{oWZM|>u_V9eXT}5 z$Eig5V8>Voa{#vI;!WBP=8;bLX(WutU)l-&J;I5{|2X)~v#;ryFPW=w#Y;bS+r z1_o25h!=jE;G-=30KvytcyGbSS-Ado)_4m)O86&Qc)8%U7JjneQ!RX);0+dDCwQ}k zw+h~7;g<u-$B!oS(V_1Sb=EPRFVzhmLQ z6Z``UUnlrh3;(m=pIP|Jf^WC**9G5U;qME+%fdes{5uQ(yWsl!C|dsP7Cb2JOXERa zP@v7pDj8@jZg4Shzlm zFV({Fbv8B`7QVmWSr*<$@Q{Vmw`IxnweX>Whb{bA!SgNrRKfMPuywx95PX2eKUMHz z3vU*Du!UbH_%I7^7hLN{I^Np_FSYpZ5WL*N?-e{^;rbidRTloR@Q<=^eKz123tun% z`diI9oqrO1yv6@l!6#a{K1;CH!nX+jR14Q<3^rK!C&J%s;r|f4&BA%|igq&F!jouH z3p2;U(*&Pu;q)z1GV?9Gr{D`Myr1A#S$KcJ7hCutf-kY~BEgqh_z=NwweX__UvA-a zmI0X+7Ea&zBy*32pC`_?LozXW?H9u9u{Bf7fS1YJFeh0a|2&NfA9u<6Q(#weSqVGc5c7 z!Luy9uizmIKS=Pt7Ou~h)bj?NoF~EPT7*OD%kd;I~@%w}LOXaD0T9%?b-o7yKRz?<4sA z7T#a*l@>lw@P{mXu;8mK{Aj_~T6nqO>nyxV@bwlxM(}4X{A|IWx9}RlH(B@;!C$uU z>4I;z@HWA>Soj5kzhmK-2>yYEFA#jIgMR{3*egTljN=udwi!1i#0^-w^zM3x7}Wl@|V~;15~&KLlT8;kyK1YvBQE z7%=NBysO~rEj&x`XDz(1;Llrlf5A6d_&~v5w(#MCZ?^Cg1m9xerwIOzg`X+-2Npg_ z@U0d;UGUE=e5T;rEu21WNoI$IUn%%53%^ zDHi^+@TXe%dxB?J_&)^CvT%J6c*w#t=sOcIeJwm&@UVp!37&7^^woYcg%*CQ;B*EO z8J*vA1TVJmCcy_=_{Dl!d=8 z_!tY{D)=}H|GVJhEqu4&6D>R`Rpr0d!qWxU>uS23`v~4(@fQf*Y~ce0Z?o{hg3q?_ zqXnO1;Uff}YvCseKHtJm7kr_GpDFlN7Cuq%#TGtQ@Ff=BEcj9jr%(Koxz)li5q!CY zUoQ9x3%^?Mdo27$!SA>5+XY`~;dcuDkcHnb_$mwkz2Ivte2w7iESyd+AhX`W|0MXc z7XDYkpSSSW1>a=hp9uc4h3^o2vxR>r_!bMNudI@J$HG$u|G>i21>b7nJp}*E!m|b6 zZsEm(@38PA1>a@i#|i$Og+~O}>!!Lto+@}y)`v7cM(`91A1`>Sg-;SZ!@{Qto@L>! zg6p$}bi8u}?`!c#1rJ;J^@8VH_+5e*TKFo#2Uz%Pf)`u(KLwX*fJ2W}WND4tLk9n= z_r7Gx#Yk9i;x+ll8@S1zCpeXZh+0PaTlhe+A7bI-#ID_SI8y{4WbrQ+`wk0@;6tHnOV!k-lTNfxf3ck1-&@Lv$VHjDptu}3?> z^?Oe`9Q{7h?=AjM#IEDl{9g(Fro|tSM*R;9*Wo0KyAEf6vG=v`-eNDYaLs>$g@?s{ zwuKK6d$WZfCH4gte!SR!Vd1BV{kIlAQS9b(3hJlR1b@xqKTqsmSoj5EPcYVJC>))> zkcD3({D)ci4T2wU;kOHZhK1|rIt>>7sPJEE;ZF&EqlIr1T(1*S^$Wy3z>iOSD&8xAorR{lUnL#Is@CV_ZC~`Y8yt)^v}0Hd34*6-nP8Kv!>RxRT!?OBki~o zf9kAv3J*uN?_~>~?_;lQB|kY}?CsM@ncOsedL6bo=yT7f)HUm`Zw##Ev)Nl3r_g6K zyff~xnL+G0OCG1nGZS_)h&S+I=L^0ja#$1ZRm4X{eaVmUE z%$e{twYB)1gd8U)Ux`sAr=rB3cWekbYYfh@_p89m$4@(--V9frMK8zP|Eq`3cQ{tw zK0$sEPLpq)*6|Q|NeT9$)7`+9CNvQoKEIbE_P|4*Kq0=-d*|coiVeAPZ$7v;{QG~$ zpwpTCONY2;y1ENkjv}Tt8^7~Un5a7*Uh3V&-pF!-2Ug>5Z~pcE5A8wgN!orEZYa!B z4G0}qrf#%;k^?JcMeAQ7;ade7FaG7?ezs6e?D$E~i5LIYIPsGzZO4Bh%Aex5idlic z3vro7``6e^_>UL=?Bf;3L}8@-)1x2lU+15m>r?z7F{Y3}n7)d5{{nmVSH!=a{)jN@ zc(ex{zqZqJ_IT;ve7xd_2qUGRbO7yNhkGRAiFXF{L_47pjtys$e{nO3_OJC+?Pl|m z-NuMl>r2143fAVm8GwzE|I?^YU>fuW8)faly9A!&m0x&-@?f@q+Mi>WAMFE(7ylpf zlz+YNN22e*+rJb4FN^=dmSC{s$^{TF{VOH?DFrHKs(;!SWT*d3iN9DUP-x1*>SmA3 zyR@^8U(@r&zjoI&d8oS6?M&m^pSF`89WVW>rYa7dE=oV`v9Z(tAutM4^Wm0Fj>O+j z144EDn*Ieh`rc$6F8)o7?rq+~(LRA`b=PAr75}>ZXa}8sZ665#@$$blPX1}%lJ>95 z_3xdef0M+opI7Sm?DW(7kMZIUO;bMJAx9W0f7%~q$6qV)+vUIhX!3>ia^%l6I(|*x z!cDw0ly}MaDUaJZehNqX(_vO1d@BleS|x&Kxj2$PT2ivpUq7R5MoS&-_Z`?&6b^@r zacQIO)xSPNc~Ei5;X?)y$G)GT9PwWI*W+xdvj906wUv^}e-ZV*V(mskoX8?xH9GTY zwt0W2$z7Sy5}|snLAyr;uMs*YW6N-g^SsYOWzkoS!ODH zSPIm(yV3IetRY+GW$&nsy5-T`8-w|C54iU3=$9os*Mt%JYWk~;ZmuZ#BYPD0vendz zI&j6ZP!0VE3)SV1u+TUfpXCWkDMwj0Z%;7&3fj>m1s$23x-{ZGx#!*5vW+ZnpO}bX zRMw*#blsG<535`>K0l)(`bBy4%SiOCs_1*n!-v5{Hv%bnk%7uT>>+c_o;_8$pGKa1 zKd>eR;c+39NB4kFaYY;QGgfE7r9ApgRrDkATorw%DtBx88SBzBgA1rz5e*9^ZnA?o z>4n@%%3#l5O?Av+e<8s{7P07i{7g9LleU@5OlTzfWmWE%ktaV6L>`wU9~a4eEAr$= zfi)9RKAg_TswrXmV&3@!BhiXc=@}erI*wfOZ!`Scuzy?Z-bw(#{Z3FDyl zLES9`DMHU@HZk11Hp;?u?hX$#~DXsok%HgCx@%U3^2cFupJG=0f4 zV0dx$I}co^hX46*v>k-F2C{cOxW_17lr7FwReJ$Kq^1|lryEHa`;0!V{k9J)i*D9Q z2!lQx*L?V`b5eRf}r# z3)h5v?vD&^f{FWG#t?5`G-m`@75xVzO4Hm3#8aoXM{+kuz&R?iXz&7fch->^ zYA??ZgP}CCs3AY11f3UN3V5kodU{pvn~^6!G&H*QIr*ryFF2qGLdu}HB0y8CqF+== zFC!I)n>HBw)?1PoL$_^Q1ZwcG$f7a%g-DlfR~;H@Rqk%meYqvCDb+=;8#tBFut>XVE>V|5 zZy%qZ8hzU+HVG4mSDVnLc8PLKEk`TE(k>(O)@4*iE1b$j(=(!Pqgr$Yu%2z!BLhf7 zMuZxt4nFsLs=`sw$hf6I!%~`4hGI0G*7M$rBXiZSeD>5Wq zkew-7c0zEDGXy7!urm4#*HRfZWjzmwtkQk1GPf$Jw*T&2-wKiMA(n z+nMCtn6RD2nWM*#NOZRzJu2G!a~xGl)L}F!!f5iwlHN^_rpe{ekI_0K(bt)W#uwfC za9_lrC+d-I9lkLQ#^_{)pA+3Y|MV3e2h6!UA+EKR|OeeT$%fJC21bSs+KtD4n@GhRQ_|eXm}xR4?LPumyprwUGAO{Cx0KwKwFWRp~r+Qr1|F zLRnKQCr&6SJJDOE*-bsSYRk@mw7 zo>PnQL-zm-2B~ZZYa#pfC0B+a(1#gqUl)Z^DW9N4E9KME7%>_k)D#*5I}bGaHv58a z$iob00T!kfBz3(e$+;#;UKWbc*FtEmSz0WXwI`unXGnq#l`M70_vt5nhfe0rrouXT zmC^M&<>l>#|B531sozji5USBoN_Ljc|J-Zpo+b{kZF+4*bRdd31AX>{U}O~{Y|ZMLKQ{@!n1dh%p6t&|~4fAj88mfz!J<@Z}0VXXXqjWKGZ zm5U~XAn9m1Rn;v(R3VMk&}wu?9Jy#lGX#1n>BUg?W$tPUaINrHuGM-|6=pBRBXd8h z#Byc_p`w(HiuQ{-5#YNxfo1bP?jXQ-Y4Jw_e2>?v4FSFYyA+ge2edW0G7IdRhB)#~3x^N^(~uITT{u zQDP;znnIREr=yp%%us3bWNdBwFtgaXrC=JTi@h>;3oF!wo8!8gIkg|nq1A4zfHNwR z<@Ly51f>osq~t1OR#a>qWMUy zi5VYI8t4s}%Nv~->hcLebho~$>|`>=+E~hvW7ao^r8j4o+Sp!ubLw7ubJ*|A7d1x* zykhG-~~7w&E#pAy(kp@(cY;bda@5 zSyt7fIwA(yxZOVJD{xw#$9DT4xT&JsLxG!6ie#fcbPI~Fzj>WhCMs&$g|g|qld7rC zUiCMG%KBU9f$E+r`r8KRZyS=jzL4a+5LbW0NY_Rqh1WmT6Ikw_shsJU*-~)G#<{yL zMgOGLvasJj^{SCM+UnIZ2z$&3QDHRNYE24NtOr}PZKZR9t2vg7tHo^UmHK%hrl4Q( zGEb}|)j_pS=%h=kg^79Zcj%Jd!(-}_{_?3eyaG&LK%c3iHMA67{rkvz66-Ib@Wa&Y z@z#qlMG8}=tcreBg?@?bq5AX56(ye|?PXYj z@zpV}4Wbv7N580ue(x{tVKrvR8(v36re8pERXQu9pXsC;jUHW z?rpkj4U4tq(djfM>NeMorbKfm(tD)Ea!*2Eqwb=hdFu;f=1O}R5cefG-OG49{19#M z!{DRttx3+UN%U+g*2Ij5AzId!C7AXQRLvk(;X3xS)FEd!Ck;VA!-^t$C!W~HEGt4T zrl{^C)8$3en`0TC_PUPNWBeM1>c5xatfGAe`c6lAIWoGP(}`A9Ht#P=Vsf0aK;#Qd z63sH@t%%Nm#GFo3UR0U4EGnzgSdrF~6*M9=$^^d>sa0vwBkQ!CJoSO8|1kRAy)pWL0>nhJ5Pn}o~xK+`w^_q|^(^VtKI8qg@&5u-I{l;ve{CpvdWa#Cu zk~eUNW#?eb^9AD2Qz&`9&}Y%bN+IFrir`-`7xO1x!GnOO*~R!WRodU{=NR$gN%^sO zaz31(UQAN)q@>RufMPCN{SBs!{MJy1EJU9!oA<#tTuwaH=tA;48M+>{BDIcFg}X>a zw7waghK5xo3`hADikyV$fkR08Dm`tmD^NY7p-iX7M2RuTP=|9r?rgoivKS{RjNtSU@R%Mv`MX4 zRJ0#!2uGvd)Wn^d-mV{QdTZz_39Bh}oUqDyA0s)G`uU}35mx$XS%KNAkkJSU37(nr z6h^%W7JV9d8BR|-o4J$4tho9)s)}xpcyEYBym!4w$a#;mpq@0t?$8>DEL#7QBbS;) ztX@rizt`D64OyK}|GhZ_DrGpgSkyH~q$dlHe0h;ES@<&*7>Oq2)N09d@Bp>bhxAwl zVf6=7Eb9T3@w^_=0PS;izlV-g^#OIM?HJB5VjIkDL^p~QB*C8`Q5%}bspfHu^C4EP zfebS=klBU?LTk_9pYEUl3dtkZATe5?ndzZ(WRzY_z&eBI8qgEKOP-Qxm1HVM^skf& z*7o({i(f;OF=JjT0@5gw&)bIoYekaWS&8TxXC3P8{T%1*{Zc;O&-r-2*Qla>6EnW+ z^#nY}QiFW^1gEyWf|e8F4DE2`vd97 z=tq^g&+K&-uSt(X7y!8}4S}$g^GyPQo^}6}v1n_A_!rdSQ6#M;X3%(AScSG$tVScW z9V}hOj!3bw{ge@jV#A0;Uy_eMBB`KhMEX#TNJt45#`ObZdq`4xLg^wrCCoLL&C$$1!y<#EF#afpB$n=zbZN*FGE%rsp z{0K72sqwT?PqulZ6qF+GF?b{w;}=vaJdLAH;`e?|NM-v)dL@u1A&luxiHg(G^7xHG z&I{$I?3s!bJ=oUf2YDfbD%fL&>Qothb1xIWk?lkA9EpcotU|j_XUbF!JK-dzj@~qi$s0 z`@!`2$I*Zrn*ndY_2_p`mMveRTJ+Z1N_&^wGLwb+;7umba-pKK5EnJ#M^p%<%W4%OiHmmIrw~(A0>en{3oF5o+T2@8 z_g(5oqMzcGDoFhBkVk_bg%D~IIketXgMOIktfXC}%INOGDt7Iq#oH%moUfPEWbquDlNyT2M~uA1`Ws{v zR=W$x2~VQ>V$A{yN>Ifd`z-2(yuahsW0zOC^unhnFLgKY*VSl&EB6Q9#gc-+MO3P3 zO%*hGdPoJ$1EN+7WExb_R)Tn(FrLH`c+wW+law-D-jgfo&?Qdw(#cR`MW6 z)T=9=gwrc|q?>MsZW{Qp^^0c)JoF-$PvyLi0_h80r4TVy_7o^@7>p+24N~S*nfEk5 ztt?t?UM~`}bOo4t<<(Q?TpnLFaWG#_Ac> zKCv5)-Y?Y6a)1&)x@1{3*fr$f6>VEc#>9-`UW?S4U*rku)7S@wO;w$~9!akT_wlu* zQY6Qi630FSS$ptYtw6ug);lJ0X}v0=Ue0Nv>%E@u_rFox^VGbp3==o06jf3D{5Lq{ zt|3FS?LLPwT4nNWUwZm$QW)*MsX_{}VQJ`CL&Xb)qHxnTINfpO^_M$o0fb&7YPlrQK#JI~+cCY1h!-dQJa@sE@2*2r>&m_!u7xC`Q|4=;ACD8^`*SINn2b`ze zXQ&N}@#}~7V@9BU;q_taf|yt*KthS;Yl_CyA%9+5zZTV0yOBh#^TcfYNt@S?nQF`1 z!)mcAI9&ru=t4$J&bg7=vC3(oJML_Os^3Ar08JH9ijha5bZ8rgnatVqLZtk#KQUz-~8_9E3)@h(;Rd^+}x zo?i^ET-1c2my|RwMM@Jh+L*C2uz|Hr;_zSQ(NDB0+Gk;kLH#UtexXO-vUwl5eqyPB z;9@3rXUF$KMlRTyzF-ByL_0(MG+-@sFK_9Z56iz+52HK0uS@YlF=Yfgcy%R?Y@e0FVVFJKZ(8!m%nB0f7}BF!E3ahtM?y-GnvV6f zOzrhLP$wMqbV<#=Cpyx8w6Ct1U6@u{2Gjb92-nyx9Q0T?=7m{ra*ctXw^#dJo0TUH z`d`_(mOg(S8l6_!(RJ~twszwPYWPmoq9H`M@br>yZFB^`$~TPlJ-tMwM->?}!tli@ z!pgSRu-Y;C7?VGY#c1?z?25ff$S5`?jNms6FgH;XO;w-96B~NIq4zuQiR3=3T71kF zWQj&?*Ga+}S_UgKI)M;M19&r*ivJ5v3nv0Dg?j7G0KXAx2yfANLy#dJo{r>hz@DB5 zsC=-eM|Hjo*}IdW_ww|;t(e?1vu+DBO^taallJsPu&3t)49cuIshJYSFf~TYd&r`I zMJs}M%P$4tz+K)#_O?ptLROO`^Ic@tk<@&ueON_wyViCnLB2?;Sm28!?`3L$>GR+F z9^V{@(++fvM-z0*h-oI$C5=Z^xpC#xUbYv)uWBW#QJIxAUkwtF|d5sf_xy58tD8R#B5Qsqe@ z%9ox2;_VidBB9QnTaI)GI(Or_;oV)jf12*D?m}M{ygRk~18MH+)LU@>a$4g1>F$?l z`#q5EewQ}O_+$x9EX@32%G`Zq&yTFuAahSYXpO+}Ke9v!?JLoT&Wny{m6lS;Zr~BcOoOj@u@d8=}YQTw}h* zj3hMX#q1%%%k9aO`6pr)5&Yta)xYpO3bVFj$QkPhL#3RJ8BNBJ*DjrV08K+NTo;<^ zlzNxm7ty32sr^NeHnLFQEvKd+0(0>4w`0*T)%kWT8V?Wm)r?XE({cEct;%bH*QnAX zHDf+~VvL_MP!$>yQg%5(mDH`3cR4j+mlK3BG&y-5!Fm(k;xr%e@ZP48Kl1v~|Ipqh z8o?mfL!_rdUVHoVI=0H_W_&s$-spj+h~E9w zi-i2%9(1Kn_c%4s7UeH#E>i4|SDh}u?0t_DG;4p86Ez1}&-Yh=l@`yfzl?V|HPV|J z<_0h=h+|&)Vj&DhJ#XP52!i*g?s4kaXIbv*;1EsRw`Tolq*&ED4IP3NP40SUvU7cM z#F}qmevBuwv0Fj)`|Pm~phXbA@aoF}>iy9V_pR?^twYaD|F@*(%?qX9(~A$|X%UCV zH+pbY8T|muTK?_>h|_^!xEK!x=}9_QIC+T3+LtX}t>rbnambggsHeU9mx|%_Gy3T5 z4S{ZN2At)ATIz?&#H^pOE{Y0?-9L+wiZ-`?^7xYF$U*Y|@~AXB)qDQ@Mq4%&q3*`W z`axWV-hx@j5{eyfescTk^_ShR{(rpvow3*`pa1gqS3qqN?JxfN?V_)C(#t;o+v~Sq zr(f%N}*Sb3?QMP`y|i(kQekcOGn^` zFaGFPnfn&M9F&3@_t%{DM28fw17lN$w^IGdl(`A}*drum0Nao3lI3v<-VabSs7Ulse*)xvamR<~kx2wE z0?&(ilO6%Z%nv#!!@8YRpi9uiV8nyTi74(MEHp9gRKblb3f_jmoyclD9o)0$xF0a3 zf0C85vW)ahJk;UAoo4b8n#i47%Her$o~jyE1p!wqZy~n0uCeJbTLPrBbYp9ZKAxiZLv^p%OIhsu_Pa7}A#)8uJ2 zZFRNb=9Z@E(^~7oQ)^nolj`ak!?ktz?D>qz%57RxOSr8m+!pJnwGCdujW4xNYt)|^ zF8x05y%_rb$1qo7@(jHLY!G(~LGkjLdT^1DzR- zt<80lr`1oR^zo-ftLs`?CWmL%G|Z^$3g>C(&8Vx!SLV+>>ZlowOgS#Pt20z7zftey zPJiBfkRMZ1OT}J1{6r@m{?O`b&S`b)j7j*CJ!-VVfAFBU`kWV z`9GG5SMb5tL?^|Wgg6#r(n)7wWa8?Bs{mIKt|M`cz%>%r8Mtb2or`M*u1j!5ab1t= zHe7gM=RAn(F))7_WN@N;}refh|K*N z-F=X-J?M_^?CwfLuJ|@4U58kSFW%k#NQ~m!*5#9~iZ9;Xd?ZfsJ(+qhQbpm#yL)=S zZ_*Xt+;rSAU&p(i!RrFc6Uf!S>lJiHxMPDOwkNq0g4>gJCLzybmj!nw-I5I8mgLL3 zFyOf1pwkD8ea50}#!e70*8|4~$DS=CUA4l02vTk~a8Gj(bSZ>5kNO|H=)_$_jqv?snZV!QJkL zAgttiO~NhQ1pK=JlAk++D5*PxHzx&VW#IqzBzU|%=|#4_nDi+X?58MBDTM*SS@T_# z;e2#Yw?egIj`R-x6Gq zOaO5#aId4RT<1QItb{e9o-#p34yre6WfM1#PoC26%W$7JcDU=j^C-@;}>BHc2 zNdyqb0{2?V(zVXPw{`NgpJm+kKF{4YddRw&dN(5UIP9Kkvf!&$~R_4g3#xTbE9D3g#_$6Ur%L znYzC*0loRg1cElP^X&=y7{exxfkN@TP$(*rm(%VLTfx@_vgLIa`fkN&rRJBqJ3*dAC% z$zGT6O(F{T8w5t^mn7V(A>3X_ChH5yFDJvx%gMJOh++2ec)d?@5_ZJ6Wf=_s- zILKji&?!Jd3)WJltquGs0M53FUip z@*~M0k0-CB!DuY9Jvw;N=LxC=aQi?2t`7tVq4F6Wd^oU|Xkr3Y+$t>L8O88=k1Q)>7LV8{D5W6nrIsE-@NiVmYcD`I{oc z!R^$3Zx1{|%E%*$_fU1;le{Mxwmr#FQcch*qAB;J6P}LeeWQa9q<;k)h4A~NS6DVr z0mru~fx*jyt5Y9H10~0|x~xu3m^F;=Z{H8k4l!s>3F^D1pwl0%xW5c8mr}l|O3ssH zeMwpU(!E}dL&58l@1!K%nf!(xn9d7+>VAWfIJi6MdJ+}nL{Xd<{LYP1F+>B8QRCK# zCld+xq;l}Fg!KuY)B1#$4O#wj(rdmfe+@%clE_ht(GTIyO|C6A5Uk zPbAz%g2Qp=fs6I2t(42H?mu*D=WB-@OrIdkSr+1c6IxtOn;0*cbM52)RTMfPI> ze9WMzOd%mk6D-i!VVI^paxq{EhlHUDwY$tdRDfj-J}Y(TOFS%TN4HrZeMIE2$S&;^ zC5+RNc_Q1I@%;eThvd!6zm4;WMufA}K}b z?hn*Z8|k4zPN-Sx#6)aNRMMVQSN4)7kt%9v0eu0ZK| zbar3aobV~w@LwCV6seXvY+WXp<^xSA-Ku6(*Uwh3810|J&4Y?Dz^-3W1{xgPB{0aU z-!`&c5B6nZT0JCGvDypj9cm@v)<&ISn7{@|t#>$^VD%Rdx6tm2G6J=Bm(AGJnh}aV zrZkzhG}s(RvT^MFQC8zed^Bd;T{cv+k>iixNEKtK@=7C(j*7x#xdO3#*?wIZIXONx zvcTgk({%rCJRZ9w8#uve1V-&p>z-&OvenNdTlYk#;7=PH2BT{gCD&gI{#2JgP)n_F z3hOmS6}Ki$w~^hr)N!_sDTBgSW1xXt=mKG4i!wl7z+6;k2n z*bOIOE{?QV$@8$m`&BYEjro?DZF~dB0!z{|43|uXDAdy;uzQ_hv;nNZeE;-a5W?Sj zHpXu`+#yt8Nm)>#KZGL}$`#dY0UWy&Wf8R)-@v}u^qzkcSYkQAvXjbN+!tN1C}*09 z$X|pn^|{b&mA#YWZ`}sy!H5d)! zP&KpJnaiz0U~P|xjE%!3!4>QWEW=72Q;;GW)mB-OSX@JLH45-pPXcQUX=E$PTKWy* zb$Bl|#%V=aZ>2}uIiC#{g7w14M$DPLw+VcAWuw`k43EW|@p~%~@6)>l=oUS_E8d`W zxQ;e#Jb)VyxmS9Dxfp$EqZ-eek&jp-Jbd!^bTKsN? zN_!pvwisL#ggA^3MD^QQs!baYhA)7TEOjAjQk08eC>L=DgyWsooILCVtjBJ0-a$R~ zVxWP~VkjT&Ql8 zihOW8Wa9)lVtr>^35FarVguI2aZGAz<cpt`sE+8n5ppYz9c6hr3 z&c8Yi+l`RpQvqQcuuo<>t`i+cGjvKoc-BG09Kos*p-+o&IMm3oSbm37RXXVrNW#aI zQoOaQgpa?1LTxZK`ArJZyBth4F2eDS2p`*tp!b9lp3R~6g)=%+=0lM#*^ zMTDLk;rOqJyn#612+RbKgl8Wl3%|qE6JH?C_gGcoIoA{TqW~q0$~4Jw4JMx&;Q%#! z%00xQA0_Wx#U<&W0=;$Tf6%4c5vGD`IPG$cs&+&gVfQEk!pJ8Xj%x)<#hM&1aS({J z15zH*ZYDa{5KFcLmRP2VQf0fz3#4*XBh>vf@`;sYvPjlVWh8XGiIP#QMqbQRlN$3) z)?$;@cc|1=YzK^dS2#)xREb`>%2BQkMK^+LA3G-rAB|siTrHwsTklw=UW1tQqnkYx z{rY;xYCFmfiGE|fW1Su4+@s%I@7Q2RZ=ejK-&*h3Vn?aEmFRzMbX=@H$aZk8g)NQ3 z<8>UzMfAHH9ha&9vRPP)oXw6qMfCe;Idu za-0y+AD`>+GV@r?xt7^vmY68pq9kz~>h_ zZuLv@#SX{qe!!O(JML7e)(yW$f7RJ>mml!o%N%$60bhUPxW^8}eEXf_ezSVH0kJD% zzW>hgfE`w1e)!SxkU#R%{~XWyBR~J>c)>uFm|uQ%yktdw``z)18HrV3m*X|H5L>EY zcq~A@;|=vJd{UB#Z1-WuhvQV-af65z$bVBkz~r+>lj(#=il0npXzLhi zw}3qq+XZ2d9p<4SHVWa9c9^7Xev6GpfeCg2pW9+%kTe+T-IdnN?bBAcQs6@#PuP(z9G(5DRF%v z1sqp4sZri6;!;WC+S5zeots9oH#aS7^Kd$e-Ew*{C9WSy9Bo>{=B)lCcFZouzUGT; z6$41(WYZEhiw2U|1E&{L;s%k#LrqKAEE-H=&o(W_br?GY;v6q(l*AZnA8OE-hQjrZ zmo=IY+Qwoz1a%z-%N(zn0|bpyO5AYpfa5)l3S*AuBVfPd13x4Kk&iUWNe)CxTqcYJ z$ER8}PSMO{qae!hx!p3Wmn*TOk@th0XE{$=7Mq0vKQ$?!#EwDU|Li>K3`V-KaJ%DI zJI|JBHu8dWo2wdTnu7wZniNoC$04t^ooCB*Jly4Q+j+K3Cm=7}&TE+IL==c@Qb38F zguKpno-I=^oODFndA3Y*k(X%aHOzD}3M4ftpu|o=UT-_kmg!V@*wNR{vt>FBd4uh| zhM7)BfuT(bD6un;H{8y%WjYg{aAeqdwoGRsZ=9XiFw@y6Fri5SC3X(-CfRwmOy@$F zW3o<(5eem@)l z$4I-pWq~g{BhRbhAUH<<62?iV3l6U>fzs^|ZohC$wLymN>)|jsW*9j4-EKD! zG}i{XpNqoE>UKNf)pk6ceyP0M-Ea@i5e=MfpKgiYOZYlFF7@08C&6)!4OhC|PtXN6 z$jI^m!Y{SstUBRAcnBQ39h8}D(A>om9wxZH0W1re@CZDL-LGlhWAHdQuCei~*@M#U z33w75H%b$fZco9};5cF!L^Y;#e+Hff$8m>jt=*r4=fQE05$mzXg9~1cFh}B5xX@$7 zz7UBwh;XH62i=jTLeei*8E9#Q7LEFV7z1*ts+YU1@Pc~^a@@0s&8t1_L^kveZZC3y z#x?gzT+ZT)(mS++n9>OB7$#-_4dL!G>rze1dUxt9W&s76qx9|)B^HCfkj%Dsbc`s5 z%_PYemXSJQ<3vT%ocOk4jg7>w0WFtZm(sT{jvGo!e{CMPwo_?S2Mp8-F2<0I zyV?A-L4&n210bG6(}|a}H$vPq7%45kZSP z48-O&owd*C+dmA|^*u`0)J2PfE<6WA;0ndIqogib9CY!O9FOF9@tHw&t#Pf&ot;$CUrvo5-bp?eU z5K20)zB+#nU$dBy2ZgiCT4yk>Pp>0o7!EbU?kxmFuUqd7g9|VyB_xVsk){~0kCHA* zJi?AD(Hk~8v*Bs3$xBEg>=g{-4t+?cRGXZ?MsGRGIo>W2efC!8BtPJs8s}s`VB5LQ zX%LUEQNSgY7DwT7pHo2e`P-c{?VRWfE_BZE11{R(obLzhyx5r!WWAv*`jXDhLO(B&9^(5azt!j#>%al7C~E^U>4uIeTeC z^pP;V7uSDMz=6uPH`t(cw&0)?rPR}<~-xB3~&t7~o&0rmka(-fGQO7V?w?;X? zva_r?jTFO7sga;?atYG`#ep^ROM28eV?Ud6OMw4a%_EVQ&w6Z`i+w{b#s-5kRZ09vUiY zV8k}u6xiz0ol$7lbCj2yBebf?I1fUoj60y!`8Y?o0HAf87)dtNg5s%1`SZa;{@D(r zh+If~Wz-wUxD8sr2%|p4&@pKJ5M=7NV&bFFffA>%iW>n&AAwgezt+b95^jQTE7IN#$xD%%;L_*St!0Nl!QBE7HcSr z|M+KdTxQ{8DOoSU7@AkS0h;R^82bvq*jGV}eGSyHuj5vf?4($nMz0gATpdJf3ggEE zZ$T=)$8$yCd*hrBVKRcQND(1&bnz{PJBbXDvr^Ff+tpcAh;ggLYT=3!^qyJVMn)aZ zKt1tm#9HBs7J{ShUq>L;bDePY6!?aj1mf0<4Z_visNY)%ir*+U30I0K5x-e%5w0Ot z^el09&S!{jWVKcDx?y>U0fhsqy4b1 z7m7I77%SC9B1X7ygPyc{+zzo*xTa8PRq&NoK7hDlMdHN*5-$-V@lv5BUM8GMyXo>p zx=&Ua|0Ybp|M#NG<=9r=Lr*Fbv-KQ(!fh1Bd)Ep?lu6o8kQf^4{WqM7Rg}bS`LZZ1pLuhX!$<$xqR|ritViSLZ-yt+j_C!`W zRl!n)rki{rR1rGhJTp^ zGy6AJc!UUzFeB5E)7gl)PZ4`Yq*x!?1%AM=Od#R-PNK62jW*N8cM(w{G{%ZXV}*pq znToh!#q}p+GvPus!pM5mhzzzi1G)_m14Za)BL|Xquj`7rcN;?ZSUbLva3w@TnJ^KO zHA(9yf2#6D*CEj>$exVi4+^!b4ufjP?+rwGve(W4enBi5{eWN+P;(2NleYlKM*wAf3c!_C&E= zHZex0CJAg62Mpa4dkJh6SIbtxg_+u$TE$_5KPy=*3q4|JW!F#aBl?QaW8@iAM~X-l zq4!7~gDL0PY2s!Gz0ZbBOc&UI@0Y1qMj5Ur2nZcECqaY`b9JO-2z5hf_?&JcbhxXt z0d+^nGpD-<^|;~~nmb5j4HlF16~fsm#uJr*`z(Yf3rU&qmWw^;zD_-r5CXiSQ@31? z=!89@hLTReaIy@$w-Ye2LM#)VhEf`E?PjD>IH1#rgBbP`tP**mQ$|C0UbQ$=bQ(>~ z2<9ypC8ARnhm}eC2mu{C&mSu2PSG(QVBRn>Ty#trie^Cw33)`vIFu_D&d5hS?_ye5(rK6)%N+9v8= z&NeMTmqo@j#?KJ>A~Md7uVwj#qCiB(H^vJ^k%;Wt7+*wqf*t347c3S_L}a40b3rjy zP-IUdvJ`75GD$|1yvPMYq|pZ7Z#1G<7r3`N;-@ocOdctK=_s-3l2dP~`J+V^+8FU0 zhu!&C-5Sdn#l0+`&i)^bG;`a^8BD!@S z6k1fx*!^PT*aJctdo^xMV)!t^8^&IPFn;+y_K<+F*9kH9dZ8-WcjK)Mzn6=3{Rpk^ z#IOR>j)?EDEx3M$;GTC2*RMEww#&qUkU%Bw9&xX5DWW4H;OdN5g@gp&^H`_{A&c)5 zE|qS33e=J&;^1JY-y(vehrqO(1eqE=43ud%i&GgG91hN&w}|Kr%<2b>D-;=JM7UA8 ze zqi({Ko(MdGFEk0^$YVytJ(!T`$bP~^Mi4UNL9yQTq&6PIGL@U**oP2)+75I2o(~Jx zi>CUxNATNg*UQ@ViDp_Q{&D;Y(nW7n*?_K3ie;`h&HN}2CGIKlv~azn$-#CqLGjPf z6y|*tz=*Xtl<49pFAgnzLEs8iVo!7^fl7KYUU7wL>5GVaG6-MGcsX8aiE6n1x}bHb zhmh59U5YScU1~ce;&mwsSy_8s9Fa1}ei~oq2aQK|lenXOR zpNLOIOlKfVz$Kwm*b-u5{GiXo=OU&n{LWIGMF`pXg@{=l_a*UqfIiaFu;eT32r<2k zjv$r(7jNbY?i+0`mIjORHq!bgsJ@eP70g ztMtu56O@^63S3*IRsgPBD8bCP5V)ACA6$1Z@GpU@t5jL0#M=m5PPJr8yd!XZ^+6N{ z_v4)8U4aX%&-#E_?+IREr5xNZlZXTm9OLMT411~>KOvl8hdF82|6#A~VQQm9 zO5D%l7vV~B+{Ysq8xj92JOd9o^IH{DklHun?d21PZ zLCkNXP9^?}LJ1*V7edsN^IZ~qNtoMje}{6nRQb9nZ!1G@i1Kz)%bTJ+SccvahQ1Z$Q8M(SD34b2NXt)RUW|IChN5^2%ep3(V7AK= zQXgQFMoX&868b+$vBagXFexb;O|equC6=GXv5MVHmR-lB@=+#LA2X@evnavxXeKL$ zGFds5$*K}2t1n`*<_0EfA7iraKTOuEV<`EC4oo)oWwI%Y$>zCCwv;eAYYUUJcQM&| zFO!;ZkjbTYF}ds&CUqY%+4VD% z-Fh~uzPuxoy)jJor8C(-j>&=fOs+0va&QBY-UaNz-h~%)tY{CDMGr7p{1KBSKQk$I z0u$<=KplCpzQOs?(A!vcfzKF>UE1BH5iOG?3ncTFK$t{;NIeImd zTW@4?>~0)?>X)(Obv;@9jS`KP1 z>0buXOsgTC=}H*IbQMfxx*95&u7mTKZiIbIH^a?L@gN?i=fHDJ&xLoHo)2F!y#SQS zl+Q&F%ycKjGQAX1nC^lsru8tL=@n4KbPp_Nx(~K8y$UX8dNth6^cr}I=^=QZ>Gkjf z(;L7!h4MQB5lnA}o=lIz5T?gq9Mjuj4%6dsCestJmg(JaKGS>P3Z^IF2Br_dJxm{h z7nwc+pD=w4erNgwbec-}J_Ws)J_Ey;J_l2nz5q*@z67h7z5?emeHC^yeGRT-`a0an z^bL51>6`F2)3@LYrvHN9n7$2dr%`_IKs3{Lp%2sdU=-8$VHVR5pp@x{u%79^VLQ{0 zU_aB3;SQ$%fk&Bs0>On-zcnEnJunf?!+X8JRH!1NdRiRrJJSH*28mmlI>kdwTZuQAwiaJ8Z6h2rDLmrVgxt__`hnQr)&Lrm>CgYs5D8cx6CKHA+nK+rrq@_%} zo0#O*Gnssh$&|;LOnryRwC|WqZ!?>e&4^<%b0Cvh6Pe6j%w*0gA|n@{%Vf!JCdJn= zIrB~?OCM)a@;Z~!PneYb#H75{97m-vg&oLSME|cu9nB*vPN!hqyCgWq7Oh{oeF@wpZTqfQkCb`R*Oy0_5 z%B4)EUQc9f6;GAMR&(WyUC!h8*cEK&*p)n08oTNQORoNy$r@!IrCS@tWZfVp>t`|9 zu#CyZ?MyaZ$7J&fCR<)+a@Hv(XXBARsAX$7lXDW8)OeU|o5tka6-;W+XL8`OfEadr0y9eyFOsD`$s1A?mSX< zc|4OVhBLWx3X?qxne1K3WZw=ZSKYv5|D#L}ywBw7Uzr??I)jv5(}&5mBbXeT$K<-R zm|TB=$>DpM-0&%rBVqZJ?xr{4wn=G)=;5qXfFM2`*1 z%GQW*XjL2CrFU@vu~)Cb09Epu@4yJHUFX)jw1TTp4}LA)S?{8E`IWSgIBWTpLmQ&> zXuV4Z*cha*iJ^d@t^=!6HpJ?2dY5P*UbM-Jwz85T&MLvkY7->kSrPaZ=zM*F?rM!2 zxuTa4-5sqcTj1~ze8uQ;i-;{iUx~JHeF1&=`_Nv6Xcmk~aK>2QhxUpk2)_@FHNFp} zuhDz!$vTYwHG{sO*ZbJ!uSPsR8HuVMz^`nUwa^qHBs(Q17C z#B}`$F@CR&qpa$u_t!(N=CZ9BK%rJcF-1sBDW2G&hs;_&UZ0>($ffmD4_(ITD^t`7 zxp%HWA!XR|NqFv=(|sYXp^)R;JCxkF!F@5fz9%01E6j{%S<=yn| zx_b}Fuk3*V%4TJv5m1)*)RT1gev`Z3UAlboY7kwc_$gx>t7}riXM7t(H#2 zl4G2L$~iDupQ5{K`3b%ThGK5pfL=S}%WDVJzyt=?qhu}b*Q97FHmBE=+L3c|aRz&xhlfI2>Pk zd!0e&v5bUNOh=pIYJqm3)xy6xdkWXUCmbej4bYakTF$2y0NuLH$kWYX;?}@Hwk3uU z8J1~fSZa{r@43J^EJ+`E)WUQQ6Mg~EbsKMPvi1ShzzPyS9c%S8IBR~y&!Qrvdv=mXpFUv22 zcc2y=*j~1Ayq2#ujD*A?`~$Sl-T``I`%yb#^%w-&XDK^j&5INoqjL2a#d2_h_ zEhM%J^M1rj-R&Y2@5ex|+S^5H-cKaf$?5%6VqIL`Qxb~}_I?HjNG`sE_X`>78s_~H z4iT0Rp@{!LkS0C{U4-0%&^Hh~aJc?81P7;kzk;U`3GT0W|0_cSoLESbI*;3rY!!)$ z_#Sj@WRqjbXI~?Gn-M0YhF?;LxJTgIEzv#~%bL=DJeD;Lf%X%rtS?Y#5|x!+VztLd zh~avuNC{rxb%;%f1fPLt(a2D~)7w@&MA*V$Z#x+(i0}sUri0+ZSZ{k7DoXH%NbaIU zCFER8;1V6;FmGpvNNlqXfI_i&mIZRUcw2Mo4$+FYjSR(TxcuT2LAY&= zd@Tzs{EDBVhz^2^|1B5)zo>AV5thh{aqI-XQn(gQahP89)&RZQtpQp{tA*qYN=q^q z@U@1K8lX4m+khS^L#E+nj0m3-Ld_yegk{(8OR5?u=Ct&xsFsmhMrvU*0^?U= zd=G~AV&ANR|8hz?bfAXsBDIXvK&wnD1Kn3@_%%^2BQ+4mIE{a`95yYW_09``u2>$H zkzu-GnGwM*nMl{9Sh~`RaxE`U*TQm^r}gF<*vw(#)&MPe*8r_L*K)WP_A*!EhdE5# z8eY4vfqNLCb$qGc#H9v_zl-u009|X1tF-4QPAlqV*PS_@qn zmtlFmsW;2uwH7iZm&0{<-NxM-2cKjLPeZ?LgQa*~7Mo7X)gjAKzMmTJ2-$#vbTzIc zHSIVz4i@wpF0P&8O;L9tE3N|`u&Qfu!QNDrns!`>;!RVJ5eM%Tek~kN<)zlvUsbz? zyo3S+)NT=%LdZK9oUir>8m`Y%U+bRg9jHw^qtsTTF}KlY zc(c?H3XNIf9V2bYuJDePp`2=Owi-d)ajU%J)Hn)F+~l30cBjy!E#66LFA90j@_N<5 z6q>xvJ6X-5(Cmx6Q`Jcnn!C$8U7bmxdHcLGWp48id1t9KPwBqkX76m3CXC(lj(g|G ze9t)PovWTfDHcA2_1+Fc8Kc!2Am_1HbJVb1V!Rq8#6;DBH(t%4)WEc<5WNHixEZ5 z^q^7)3)Q60eCRGHP?IKs`z{o5-%oP8fyD8ODeIw7O`6Kh$R{D+*HWR8U!*1#+4#R> z(#ru;(-ymgMe1TT=|p38JuFd^HcOoHSPP?HLztgmkBVWpb%w9PIyX zQj^-NG#tr>ybCs~NnxrP*`g-RGa~hHmYTG{rwlVbTTME{2JC{ZYEqf%rsj#q2j{6tFLHg;1y8X$ zU+vYG#1pow7pO`1$aZ74?+ew7)FjPT-9|Iop(ZW$ldOZCYOg7rEnU#!i`Ar;WJ1HP zOVnOHSisjFL$1L03zw?NBXAtQ7K6Lgd5y^Ot^oTYf{WN3_233(D_cB{#g zS!N>2&`d4aOEMhFbz%YQ)jpBmqo6FhxLnn6C;t^{@_W)?!_8N!$sh5g*7W-xHTiR% z`AMJ-_NvJ%SP$DfDhEro8*-4;@HkWl`_$xhg&3C=#RB3gRnzKVznZ*pLj%qMRSO<* zwR%uZewEverByb%5!a~Ks>xqaF?{+A)*y1`=298r@G2!5pHPDU4H7u=*K-z3}wqsYx_@;;vk0=KBihb3So#M8}= zs>yGNdbm|he%t8P<1l#*lp~?9ACIZY-wIiXtKc>@Sy9a%cDtIa^R3f#{~c=b<+4*4 z&E>e-w*%)z{o2hJ%Ut*Kl+UO)@p`A4d<^eF?_qGitYAwX3w1(GenRC!$?=>uaN-en zsduX>o4JavKvkyfDg`i#UrtGtsWjx zlar+^_hRCpsgJ73sT!BAfrff`Oik`DSvIfQg;XN)teP4bLJxe;s9`-q&PL>U zHMLU+75zCitY^q&h`gw#cIFAi3u;*JkVA;PtfohV(4ki^sbSqiP9XBCnjRSvhnine z!xBTDLgaNdy;BG^<=51(q>#4}c~edA%x~V`P{Wc#zCz?*YQIP}>@78{Ux=89rzWZW zI8|Iw10%+OIPk_O2Q>D5N_gAE^Dhuwn13VM9U&A@XmvUkn@ep&HgdWE>(N ztNmixu#eQRfg$q{`9$p($AQ_$Qzi~4{G>aM!r|W zazZ{si5DWiL4Z9-bH$;9_2exM97d32O#&7CyU1-6B+IW9gi90A*@hVz(d}TMN zBaX4ud_fC)_)1Wqyp`0unO6s`wZZ4w<88FTh1}}> zr)=*3lB(T6xz&S98@x#l4Q_m>mm^RO(3{Q#x7Jo0DtM2yn@53!c3QADG|h&D&=B8V z8-5^!JP@J{zq$@WHBWyY`RRhi>!5iC+T$HH&tQ8zO!Ex2;%*~RxaQewfv6-x^LXs> zNX;|W9`B@i^6c@>nrFW~-bM2qw8x_~&mk*rW*V(|7W%*le1C~GN1d_`Vl+>Yk3|@Q zv6^Rz1!6o-^DOnn6XLb5+RzVFYZP^#DK!#Mhri?EDYJy#TP2HtI_Rc(&iAn>gkX2g zlVO1v@1c2e?D0g+bD=%nQ}c|p$CEVAcze8;=9zAf_trc!?eS#IGus~Tqj`4O<9#*H zBUaq>V2bAX*aFeWRL%1rdpu3^Y_Z4FHP1?4ydL^tp>WGBHbm=!ZM47UnbrW68P?;E zt9T|hU}1uRng_oD_g7N~gEY^@4ZwOBta&=i_D?J{d5Gru#F9c?Lp9F`IrU+Idi+@u zPnHd+gW;NIjW0zVcr?#edwhiES?`P2Lx$!VE@xMU#!SsK$_CWINX_%4Z6|f|$7w^2JNa16gWJvhol_6lnrA=*)XhDh9)FO;qxx8w z+c?dW><5h3Jl%YN{3fOzCTN~;8)|f#iJIpND|b{jN%N%oq_6_KIDS}t2IILne%Rxa zas05yr{MTu#pOU%hX?w5_F5n+nTF$sJw6@B4|{wDjvw~;OdLP#@mV;2*yFQt{IKF? zrgL!o@PX{TI+%+ihYvKIFb_u#3qhXo77 zcs}+Zdwd}d3-)*c4h!~pAr1@nco7Z@_V^+k7VPoGI4s!XOK@1Q$BS`Tu;Qj;&ctEC z0@28&I4s!XB{(eDiqm zMqlRmo`Cpypbl!ajO{#I;u#M;DWLdyTE<2Gpq!i6!TDOorT!cg->zls@&`@v3$%<3 zvR*!KSr1*9=0Yvw3g+;03)fB^T%={}^#@HwJG6`g{v6b?Q_HxP<<#Mip=1d zYZ)_bvPK)MN8|XBpBE$f=?n{Vxt1~9S4CV_t|DA(z_LquBeN^D4D4OxR>N<5w9F%% zf(3A?LCd_!9^a>Bp0LNS(lT$h$M~K5 zmU+89en`u_!ydm*%ap6O1Y+5**D{~A^ABs8FZ<&BaCU<>szbE9K z`{$<8Nq)j(+T&Vwyv&eS7Yv;VPiRkS*-IN(VkCM>ds@q`Y>>#z@EI-pT9utb1;p<9 ztd{+dN=qSbwwx=0%7(1xwCvlYEG>n&jRenY*-zS(8?rBG*)Pk2keE4|yr^X#^2_Zd zE&KMyDqq&JUzDibvRAb1oxl@WF8Z1C(Wu=}fux4lZtCGxExS(6{(KVk@S2vrTiy(O zXu|9G3u@Wl%6YN{OEVMR#NS)Y{zcBp8}k08y{%>c0K7ujkoOM$xM4Q%yJl`TZZc8o ztb_No?1etJQc`Su?`zqM{Xugu{y@uK?ax8+54G&|{-7!TZ!LQZR~4-@x#@!9A8FZ_ zHv&J_vbXw!rjGw;*?YO6a>aAuc$lq&Pqge4mSQ)rgVn*OTK3yM(8%%>wjLj7NPebe zf8qmKvK~IyvO{=PjICv*rXgQw*)OpnRw69Sm*{p2#Q0ZQ_G?z$Eb)J}?5`U*h?_}0 ze2pDdKABlcWp?%Ojg}q54M?_lU%~6)TP-_5vREr8WuMf;cUpF$jm15}V12J;huT&M z*-F;RYbEvYgO)uLbj0v-yy- zp*w6n{HA4B*wnPnZy+0tKn+*)9{63$KEnMvLD50aF1HOE{I(-O=&GI_8`dMcrq@&G_QdIe_gLK8Y)h{3C&tv+Hc2DZVGq4fJ6 zKjY4*TaZhP2a&F9r)&JN2AWK}rmlh69dTb=u#TsW(Sc)Y+EIwl5xW+=K^g7wca)9f z@e6SS;dnf>kPgXP(_Y6A?X_ALqC2JrU5uf%>q2$M+#o*A4%O2(rbEzCuf><|gE1{1 zQAc(diqce`!5oCO!T8M?3Yfe#sPQ{KpAic%1DTaJCR*?Xp9YDhPsReQ3Db>(z zh>n!QLSTs7>H!cFo#djsP)E;eZ7#YFKP}dwCyf+AiO5t7un5pM_KLOuQb3 z53%^nbM#Y#h)Mo%sz2iO2ABmXgQudjL2?A}7ftlwGg7m|K z7{+6^8g8#w9P@)(kxKF^(i!uSB7X@Io!&n>7Dzrh7B#FPHuBF#>bQ#d`9ZolPd45i6C!N$s zI>{}aB*;lAeokuB*hwiqCo$LGNhy|-n8{8`Y2+m4NhhWFJIVDYPI5PPQi|P4ZP%Ml z3YJdlV|P-!9CFe?pOZp-PGX*)lR~AFGNqH+ODCy~TT;8mPO`Nm=K4Fy*OHidnwG@8 zCR_Iw@K@NtaI2 z$Vst&Eh)6IlVW`>iMjqxinUr2GucV8jam}(q?2O(TT+KVaZ<;|PKvd+q_B5QCpo2) zq75hEUFJPx;SmR)MCc!2h<1R}ZR8+QgIU8r>vJ`kO)JPA)&F%0N zpuu=gGH6HcEpUsolOC-q%6A5n?p-K<0p69I#lBk>Lc!?O&IZJH+7MkUqm>c5<(Bcy z=o&Z&h3IA*DQ~tR6rz(m>9!jwZ@Wh!@*E9oeP#tJgK=~8L*3~|uEN{uAFQC0xzrse zmBl)YqkV@#AEQ~FPN7LK9`8-+j>NrW=oWYeue#$7C*B1Jq@v;Y{u`3cv_9uJ?(8c$ zR0!k@KtextM;s%~Fodw(O&^2wFtj%X@ZRf|NvW_T&=qM=@DM|RR*7tw9)WSZWA#FE z82*cQDAwMk2ec*bFMK0=)q=yJHNhVncQT`3QD34#O%%-0WWl0yPFJv)KPwmu{6WE( zf4YJ(vvI*B+^As6QHY&S#hU3|ir3t^`a4{`5wd!b9Y>F%Ftd!=^9**R!M+XRxwdDX zN9^f8MpM)1)K*WzbcH%PE`zl)|hkvSZh8-n+q!l)Gc7DFfC0lcaAB(~U|EFsU# z_j#rdmEw;)<2F3AzG=_2m7YOvBhLhVgQe>`o?Nk1cP3C-gIs8M3brm~{DDL?WGa<2 z=xZ!+s!rhEbn3XjVI2QSU#78VOAODZ8!`M1yfWOzD;?b5bTGb9)H_G&y!J_7(%>0{ z1GcimN>CcguVROFlMcHMx`*gco{A2*2NKbD%PijwWZx}|aQ3kIt{qf1@ZBK0@6bJs zT2*jk-v#gWwW{`wd>6deuT>4^(ylbhK7?Dq8tz!mKf zeBJ&!VBg!*Q-UWV86A7^t?r8)P5*b$7WFR%<6 z_dMl&L4-4n24QD9n-%mhDjc6i^?#x6>_>Ui*cH6@bqt+=qj>EIds;jDlc`G32Y8)8 zw?#M*BIU>+Lof`k?MUEbTrQNRk#ph%lD;VNdeC-!rTEqV2_8Aa;i52XGI?^?WFcP* zkKo#eJX!b5lnp$H2F*!_N%u~WmeA0TmJlNnLFWJl=r-h~`V$+_-|!oDxm=D`q4b?F z`8l54cY44(N=9cMi4{ybBjx>_}uG%5e&3u@SSl z4W_1G(}S5uFblZ!Rj#8U{&iGm)zP%4s6=%U&Y@gK!;G#)rbWRn-8r1i^Z3k*rpg)N ztDNcFe*G%v0j|Xuw9)WREZ}b849hz+Y_`tqP5IB9gU*2)KSEonby7o=9bp!ULOR`j zMj>-8ikSlIhUl(TLElfT8?L+LE+f2gd-UT7U2O>7j+E~DbNH|u{73_NhhT*M4${YL zGC1#;y;+bYA0Y}y^YoW{(5))7t)8`3QLclL#X1}%yH3C|l!$}d+Brv&IX6PqSxm-k zM{*c;;dM>|77C5)>>PaqMwJKQZX|PYwMKCb6uOMg3pJufQRj0}Qx!C2!CT0Jnais2 zdi)GME0IhYD@{R9yqbhRB#b=r#D1i>UW8{h(YG<{GW3{19Kw4ueW-E>PqFQW;>T>_ zsNpGOJ!(L2kcN>u9)Lv}Fdcn5a~tGs1G3>8d z2|9#=XN)4dABMxQ){Nl+SfMy^*^cp>u$k5&Jq-8Y6@Nq<&(azSw4^lkSp@JOD_Q8L zgkz^wg1@odNXgys12*0>xQ&tX<<~@qV3eL5i#N{Y(r;AOm810udwGZHA;{9ZV*7g2 z;8KaucVqOC*n7V+K$-+1I96YXdUSjiA^*2UidjrX=qMEKW1saz3?9wb@9jnPHomPs z9-C0mv#6%%Gn9tMXt`?!<+TNF!D~F8ldBU%#yt$m!${CeA0kG5#fo=Tp)IspX;=qb=GV)dukn9?`kA8nJx$;3fD~#vk5;yBYW3jZNQ! zyUTkpavR@+_n{%h9Z^3#Pjjz4Dr8Uy*3+4EtDA6puybMp#;B*#SJXY=#RTW1J1`_a zrB1XyrCv%8h4d+PuJtK3eRaj3QcpHNr9J^Je1z=@FLb*e?{9;mX|?oW%(0{|R<-+P zTGm`Z{&RX?$14q6i6~Oat#3yJMrW7d*`yrZh`+TA(*&Z}y~=@`$`pJofH#NZXml$~ zkv^3JUj-$hfe&xebI-!2NzW1H(Dx|deRe*L;izfZn{+Roc?D_uAeS{wHEV|+L6YF( zcFt+?F=U4I7*ffTDSQl>ZktT?YV;UVh0VmO$V9)JseBCSZB(S~F(lD8nM#%wiCnWH z6V1t#oS#%v54IjdmPg2#F(j^FC!`s%m8MH>gH>m<_bytEX;0;GnP$OK0b!O^(2S>Qqn1)K);bk-g#~H$vB4K zw}T{B3uhsF8;2hU{3Uw6aqXcbt>6SFm@gA-h6PJ?1o?=^JMnj;zUHz%f}&63pEK_* zyy6dBH9WO;&z6DIK6(gKb$?oJwC5zZ?G^$G=zb?*sh% z3jcn^zt&jy;rN$;f2sKA!M}0%Hv|9Z9YzKIt;fGw{Hw#itMTs^{JR(bp2WY`@bBOF z_ci|gj(;w6Uj+Vj!@o5A8-afl@NYK$EyBMl{5u=}cHkd=6ssJ@zvKA#F#f%Oe;?xC z_xMLY6^*}ftwiA;2yLghR%l1XlPX2(oHsbNJDkt8qR5x6&u*h#*yfOnB1ha0y0vHA zAGf8*cUrBkU8)~(C=jV#re3UR2efN7iu~gEHAvg;+=0JRlAxUjn>B5xb}4cav@Pmq zYEzLUZQdiG-6}3eDSNoLc0QbgAJ%B~$mp$|t$v|46&Zk^N9@qF{n|kk8=zgJ{-ib) z8K&*VeNozB?Ffnu)3%XV6OkNkk9w=7J*Yi_VmaEw&Lgd~`&&JM?#R(zYkhwk?VUF7 zw`mml#eG*>?WMK{+bJ+v8~qMwU&8l5;k(tBb!~qua_402rJx6$+N;j@&^1%FopX*w6y}WwR3SJnD&6S8Gq2dP@8)v zXwSn-pdA#41OYz)p2>R%4`)?ivG$gDMb|#nKS$BU+6&sfr-^KL{^Zo|blr%Rx)^KC z7CG7KPM3D9?dxr|589o=axK$N!Rrp~XUD}s+M%E~g9zCn&epZd^xc@rGHr|Yh1Ntw zg?Lpw9ju1$Q`N|GTB)(~)wsE8{3%cq9(Jfn4{K`g%Y)PbTZ7bLPdd~wuL(8hWIJ{8 zbFI{=H@8-2_Eu+a*3|`Xftt5XRSQwc;&0li<(q}N?9Cu`)!C}L_8nYXLW(02s9WGl zO~ugzR2&gNrOtf}Z^870`_I3BJn)YP{_(&+9{9%t|9IdZ5B%eSe?0Jy2mbNEKOXqU z1OIs79}oQFfqy*kj|cwoz&{@N|Az;rFI-+$y*##{B)@EN?24kws^app*wlV~Qu+)~ z`YtIiE$UlPRbIBZ@1o^v))XVHT3uR|U)Hyzcwxb+ReeiJR+Q#dRF)wnq~y(+G=6Gz zI`Y!+BK7ALRaTZ)<`v{u7cDNYT-~oMzqBZ8g+fFrSdw4)R}u|0GRP`ctgJ?1+G&(n zW|*2v%JQl!^NXviatg8rrX4GCb^R8(~Ar&C@-zZuPn;S9bYgtJ+D+T;tKh2c^R2kR2W-=6{l1cuPMs= z162b`ipmyOFCk5e44yvQev69B3Q4kb%G9(x{3*gRtgX|zsb6XN3N)~Q#1#tvfoMT_ z#cETO!lxHCou6A!T5x))fo0{@c}3-muvU!_dFD^*CpE3QJWp0N)*~jhM^B$uYAVW^ z+OrBMl^Oe^L`BOiv8>`^Y!z1Y^r_ORNGlY)8tsjn;UTJ>SQUmwd zk~+XL#_Xt*rsnx&n`N_+ns2F6QH~W=RO!o9HW1lk{JZjBQSVnS%7Mz((5zv9as=&^D6VO%s5Wq09QdlwhL)tesw;xsCy&q>+sYN5Gh%utjI4}j@_OMk(W7TO6Kgm zsX249@}|ws&B|kCcrQac7{*r~)3x~MR(BEPsYuc)M`6yd_6MfuB1sfBhny<<~) z$1ch*sVc%ja*?oQjT3wL8{#Z~g;E{;8Hf^F)L4^o~vK9ZLh3trV#P8?~l@ z8`9MNd0G7z6<1bK8)8acGg{8yo}pDie^*Wes*12p7Gl|C;Qyd-zAXRt(xndIUZ2PH zmWO=_XCzYx(Ex~Jf(`X`gulzrq?huPUT$QH4gULW=~uNfzanc2If6pyjRphx-#q^O z(LJ!NqP$A64|+IrE3U?g3(jLJ^Gb@Vs^xH|Z15AZb;)MkH40YH-DRL%XWok9qLn!X zcq7ls!tPOCQB+A&qS!_<=s&tABcWTgpYg22UZIT=H+@^n%AcAwWjs#pt!#(;bZ4JyU#4pu3Mb?~$=$oB~m~nx#Lzh=&fmHY@pn0@FSjXqJ+G1=0v2%~CL+ z(zHSbaE?Gv!bN$eYlg9>V(D%ho8&RP*ifihS@*-K2#vi&nx$Z1fn~fAYL=S*1%@F^ zo28;3HGaB{P#>^$$ENyJQ!}|N^GOtEYPS39Uv24wO7mB7|3eeZV6znUFQS<)YGK+e z6~(LYDaafz=FV@HjK7-QjCGd3+`=rCRm&Iosg&{Ns5Eb-I8ryK z)%G)1K1%VisTqxaK-Kbv_;i$o$z`ZnTCCM1y5BU%3`;?2Y0Ic+raLSi#oU?5tW=>o%s=KH{=pjqaprjrwl z#}i!gV{iCDEuyxW?rCUU^ZnG6rskC_jlENnkF#4pe;G(iC~dB{{7nnMS&bDnuUG?Z zEs0jg{TwDAlqK9^>YMAjCM*rWf2YybyiyMEHMmAT?a;w_-DdAI*mKdaDF&9Y=LKFiq(X2k+k7O*u`phiy+f4-)S zZ+~!Qqo`z2!^MndEwspmjs85*H0JNk)#JsbS#oNCYNl4F4rsW>gm1K3K(o<;0<@3o zJrEt%A`rgnsl<0lw5-9^PKz1l8i&1gHmgFK&V?47tc8;R>&jScvdwCnWvEY0AWpR{ z8Z}%k@-1&R;c)Ctf3$MctP=gd+hVU4>feENB6Afh(3)u}J-%hdfGslC76a8|Tc!(C zm9Jy9uG=-M9oyIN0<~%ozBSJ;DCU(sGZ<()AAs+=X^|7Rp2$#(DGXH6 zK(wc*68GDbl4TSMRAX8yy)35U`n}G_44T9P&CV(Sul@!yFsG(hEy4W)OY?9e&Z1&k z1oevtYH0t0lA`=d)XJ2!nX9wSYVy`a<>*1v(tt6$R2d&DU^&+GEobh&kr=TRAoaILMpITH-n0)WwFi!~i4rc(=>| zW9bUCd77mRe1I`E{Y^a{7gTT-if^!GLy@t7OYf(&1uEIp*CMrSQ`TYyZGn0=%;Hz< zw&jQ%EOS=ivk@~MLZULVEhvWk-Y z0`i9J%0@g;yBq2ayf@o4wnTsSSJ#5Y4ZKrWrZwH9u-04T_WbAB;0Drwr{8}mmlkvX zX+8FTQ7eBiTm|&R-Sj4+W<7VCazj)xqr8m{`Vcu^?PqW&G?+d_|)YU>|^nXd-tnwKy z2JTURoh{+eCiecclvkTj-9oNCjpo4p+l1nlaB}1QK`rIu#+qBm#Z4;?+{2Cawt$1J z?al1gfQ_`&nU8jXPOKU#Y=IHmQi=85k_B#gbuDmr^4onzPby7)*ubBo1?&p{oo<1< z)?Z&sc-OXz?(cPlEu+BwU{lr-PDsV?sf){29%;F>hZ&1e)?mRITWxT>?#9nB=`Y!6@9kMXK%>eFT5Sp4h3wl`I)vY z7vsDJTgHLWiKt;eI&8lMKGiN+k$Z!&8YkvIP0)wYj6f-Bk z;@C0@Y<&pJ)KpHnaw*JkS3e^=^YokCf~?dO3oFONs?6hVa9@;?H zfJZs-9IFyLGMC;cd=u>YHzmVVp4OUobvqWY?bs;FmY0;|;Z3Qu7$@~bd3XQ~onYAn9%yEC6QpIWl45*^ zju~OL=4Xh$MXsip0cVUgWXssf6i=_ju-{j~fBr$R{lU=Mw;)et!*2=YX`Q%r&VDvC zX4~YM&5D8MmsA$z7p}%Hj_|Bc{GPH1{Ul)&6GR(71Y{pwJ zg5@jA@Kjprcesa^4rX1-2QBASRp4e${F+Ig+**WZ;bD1@O^4zk!E=(RddqNPNil3x z=u&L%#x&EEGH{Ag*(^b{t_V-iLInHe;xdI+OB7R!WRf_Y{9RE&WkKm`g{iMw_UE{C zP6~RbNp?RfJT^t?1M>+|CLL5=xtg7Wd^6Zk{eb0Vh6WjE$WKkj@v9h5j#`2X+a>Zy za9bP?2)D(|LvjmNP_?YA!sEG((`pCw^PQ|q&XDJ68_aY(92f1R19O)YFJ6KK&(JHy z!)jL+7Z%BC{(N2(vZ5GPq^j=LkGReHbgTrl2P&|QY)2h)U0Rh zTvd5kv2-%F?1gw*F`X=lZ4#YEZ4Mv(j97kQc?B(3GHZi9keSgVd+}??=m~b~WopHz^Dy4ZNJ)Q3cb1fO2+zS7d zl#QNsPM3wzR94uVg6-H-9=PmllufnYM&pdnc}vr z&!B%euJ{>(r^!<`iZ2(NCnRsk5POdH8Gy+*^B-o7QFbY|XISb4Jhj<0CS`&r7XP!g z`oG<2)jY{)rql4vBKjO>DL#wM`bm=vSsm$R2%$x99PgIp;jj`+Uyld_JFZ z&gY(c?!A$sv-G>x&zvkB&pf#UFV}AU5?Q%o>lawo=?if`q2Dhn3&xd7=SPCeB)0AH zj1=XUPa0n>UnQzv^j#!}Tumg@i#d9b?Qh&}lUtE#?~+eT}|JmMpQOzEeWu|NFHk zOfcE#`yKX268a9=@So@&Y_62wwq7QT&_|&qg;1t_&1b^Dbz=Gf^ZH~`y}v_JW#_g? zs{eOLYSI}kk~-|WCZ(m7ys&-SA{vbMi(0;0^leiaB)24_0m}dXJ|~0ZT&ii5)F)4g z-|oyJCuv+_<@8$S%B1DVfiBb8dYLw7eYs3$f1AtnfMeYCxOTk!SVd8JO?7FdWS^;3 zdFMPMa$nFF;%9&Js>v=tL5`E zlgIj{`oxV~diAiBchL1#i8L;z=El`l3i=$1B=-$^vXXF!lu62oZX~=OXd|EUK44`@ zt^fTPm&N4Vu5%}y?UK5>lF~}tcyjBukX^5jhhf}{!%#Zz;woCY^l}eEnpq^jVE9?XhUOKW zaZbUo!lHr^XAH|LIy0a6tYN2|bJp1-&K=fz(Xg}58hzF&!-t)6dh2CF^M>XZw7J%q zqt7~H=%`d%A#dIUEyx>o>dM1KvzV{HYWNfVo(Vv>q*@~)aX|PzYw(fGdu{B9<^Xk1$n})Z#>Zv7@%G`+#QF41{ zqCE9lE;mhEgp8jkpOlj?3~Q+q%g0H&SmL+r*YX>d<6NE!)koK=s>jLgKX=<(_OHBD z&cAMNWh6hPCik2D4e{!-a?{kZn>BnR!}zmK*IQeIu>?PEXy0QrD);&4i6 zd$D{+n*ZrUX|Z8aGZ#+BCZ&Ocq=~v8^$I!0(_*q}iY3WCMr4YVlfS^|4zD&g?QiMW zw-0Pe1MLDimdo_;(@~_+E@{5qFR!|5@LoZ4MI7T}M@+#FuM99(&lbx@pDl}!a$Bn( z?JlO01vmEp<(s_S?_uUnsUBZu?sqgNtRDfDb>x3rX@(naK2xF3nauIg?j0*x-HlDz zG^ZcVUoG-s--eP#iVJ{0RW)ZL{<&^r6i?l9FjF{2LUIl#lLmTWd=>{dYg2_H7dU`r>LUYxZZ=^4uf8 zco$o+AOeL?RN7IshP9PZcli3X1K*~m4%bjZpm?rly_&A!^89~e)G(}hSv_x zcdtrK#XW!Pem^e!pxN%>KpSqEydNb!PJi7EbJCe{ntYONw`89;XwH7$skoExcI}R~Yu>8cP33&F zcG%@9BJDG|$=!9Bg>!-&Y0XD#%9DY;yVCac_{8wINu)76O_D5vV~S1ubtrH!n6dkN0i$y}Fw6Qvb7&Wf7fqzlk0x8$V7y z$%oN^Z1+=f-ektTnA87qk62dGM`y;#Qyel`USCowFBeP7#>?Xb@`A6tzDAyPkk_Ji z2FW!qlXvmLj4aa|SIJkBI&<0N@lx$)mYnGpX$Iw0vHbpX5dR9-EyRo6s_NQWm$UNH zqmMpLr^f0FU%77}lM|}TCRfRuxbhYMwQ`?$;^huFX_bfKwEdBa;cZ)q)gfYqSt$8GR*xh3aXNj#Qx22l zl=O(o##dCR$>HH|3dyV9imH-v^1RcC(eBQtKB3nBJv>P~Pu-k;(@hF`lizG_#ez3R`w`L{BDC%#-yI#4_0{S^d-zqlQJ?zoOHMD&$vsb+cgt z^A+-Fg+7T{Q6*pat9N@fNf}MiaYc=MEqk5pj@;j_E|nv^qPDbTqPQQ`PQ>zBj;lq0 zA5CdaXG)3N1N_81Qk{bI!Z^9PDM+Vz9JV+mY_dYG!=(}ZUn|+2tkd$pR&UJc7Z=OF z$?_Dfvfj3hRJdm5;`LXHrP9kU)&F&FuC833WSdkzRUh7TAE}oUPNbr|TK3qTdLlJ` zR3ZK4iJGDt`yaWK^(K}~D38=lsL=+dW0`mPkk=y3MTnAd7S0vWelLmtxgo6`w-v{`cE{+GJvk+m?(<@{15 z$BXQkAD4{P=Vs+}B=2y@-9UXjaG3s=`YfL)Cs6l5RYYz$mrQc!FnxtA&rw#$^C^+b zYTYxp7Yx!H(h>O=sdE3^|Dp>9Nx9X_+sfnRLgxOt{}ZI#Cd!#l?m(AD5@oJ_&Aq{8d8%fd8%EWp-0Y|XWX{^Y{;dVGfP8` z{nF-q`}vT2Gv{;SK{u<}X`Zu7lY8YCn|K*H7-PU!KfMh1p@9PVS)2B=<*W zno|htxZEaJO3pQBCApgHmR!}agMP|qPOqPSxBXO=`@n)cHS8aIl2fC+y7f;HyC>cx zIE>|PuRc&HkGo~iBl+fL_W=Fna{iD{X4LA19--Q&_K8Siuc*+qBNHxl zBloYQw$zRN|8W!Cj2wg|Rc=ZScE66!X%aiOAE6Sx4D~$YEY1Cnq^n-6^Vil8ofS zCjTe7B~@j9R6VXj-@X};ts5V#5#{-^V;ZUdD&(W{Q{_6QnUjB#ZtZ20wmxBi*Hp{; z(#;(=R`NHlWP(OiRr#x^jJ50UGcJ26QIaBJ5rPOUMER?T=-XanFP8?Tll65a71BWb zq<@#JLazeSt0_~KNx3k{*u^6$Z4zUvv>bFo#&yV+yumq9_Djn_E)h};dZ8%6|AAGm zYUIBz)uO7>eXnv=Bmb+at0&1w%3A(w)l|uO)Q_si$+T8Ym8*&>tqM8yYx-K&@?WZ= zN~^;C6L3}G^PqED6|zmK3f;1=3fcOk3iq$nWkmAlszSCdRiQa4asTS|zi!G^MU}4# z$&cG-8M~@*W339GQO&zlh5J8N{%i5+$VW&uR5e$FPNEw8q^}0;HJ}>Yq*Q~9T{=hx z)gXKCszG)gS#s4NMO8kbwB~Xh>BkE7N~yClnuxKy+vjIxticm%T#z44471h#DqCMM zX@ZNYoaCY~s;!x*vo&KUU8-ZbYP!W>5!JftOLbN44$GYH@W_N-8OPU_RO#caIV{u1o!#9tSQ+lhk0%h>YFw zsS|pHNVvZ~hCX9mwd*Rn@2;3I)*Ur6(&iztGWI=52d*pW$h}-~{mtg$n-Z!O+|HDBY7+f_Xon=etD>3>WGmOy7v$la~g z9|~>GyHt_vSDAlZrT2II=j`04+D44j6!WJ{KodwAn5%W~Zr3EsOP-)YMw`=?#$>C% zc|mi2Qho|d%JM9CM?QQ@Jw1*l%iTL_XV;ZqCbyLNX*FFnH0~4RA?l)f`O^=7oLx7u z{A=P5F%Mm*%wNlT8gMikL}&`qUP#P7AMKtebk|dNzegS}mXE_VH!1o3T8fa&%N?EM zV;*{Uyh3jHN)?#f=grIA6Kk&4@eY`NBTINj#H{SzBbA3O!y>oduwm|vKxs1n)yl2j z?URR9(K70)YV}3KuuEiDT9Uw}<(DTvu`1JYVQ&#+7fTxM4FV|w4U*5|NVN`-x4>jS z{kw2&1-R$^rA-ghU6-1b-y4-@ zbdz$T01)O;vbPckRZmg#B}I9)y!fYvAXiRHeZ zd4yJ;WMhgn;%NlGf#yQd-@SAndG`zKqil_>D$cCdx>jB5kag@XBri~ryz`2N77UYH z!~SMb? z-hA`Ja*|8;U{mXYF}ZCHZ<*6$o8K)C?cFyhv!LY~t?P}Jx6TI@K&rlk3oDo7P@YDW zMz0h8ixY~pb2h26Hj#bja#pF_z!{e{Mcyiv z529xc7~C(r-!YnIS0o(0;;cxtzH{_|4tpf#MZI^&vK~4f+NpDKr$l79Ob&*hp{FPD zlRI@gxl`83oqCN{I*FU4>`hMM=x{eGN z>c7S_^+ z1F`NbnRojSkG8%4T#kQiJIg~{TUvv(-rjZoe$_I6&26beTvv=lzU}_$ehkOD2WlQ# zw}-q=#VyJ{E!NhK$g0}5<|D07WV(&CxJ)*-m6WEl5$SyS&C=P@RytbmJ+(c_Fkb)J zeQR0o=eI1^NTj>Q%MiUHf0R4B>~W{g9uUqk`7+Z}MTQ^AHr!@x`r#Ou7j02^7scDk z>CjGk-Wnxo)w>iUkzum`Dbs9uEWFibeaNw(=enklp44s1^je(rd_E#L9`F3-`8Y1c zuGQ#%<-&}%>v9?D zG7raecKR;Tr1r6IdRuAwI+>63uKLDx8Sj!}pYyd&HY2?`lHU|7XrbyDY>t1e0 zC9mInp9i+N&qF)8I;r1{=_U5@ufv{`yhWqY&pUP0k<949EfWW~lgY0gV$p+Rd!3OC z)72xc;kc4?*>(S%wKe4y&_6jMG;iTw^HOIS$pupL*qSr5;PZ+(fQhd{pcxnL8);>u5BsdwTnf_`jl`q-CT>GUC@Y zCPt2qp=S+>ACTUzVEjA_^|15Tw ztiE4H{DVDX$BW)|*~pM?;eV5^CZ=g^itdKQ+R9}1Zb&y|a@uZ8YpzsCRO>-XFkR9; zJ~kj4JB(^_btIae-hNhWR{UtQmi>G4V-ydVFv!PgZ_vx>R#4 zoz`9>Yj+Xn*_@CM*`enr5tV?9Y@89#T^!~9!Gt>7;EKP5h z5&v;UtVdKf^U>v>q_>l~k?B3+&tK6`>Np<%(UjN-+1OQ$n4|=^1nuA2h-Bii=}RRq?c=XSWc7^1yjbS0qJFPYiOH>k{-8-cG=050X5Mf~#UGq5 zaneiv$ ziOh`n>sQ8lN8^vAZB9QR)*~~0@5JWxK5k-tdY|01j_G+B@%I`k(!UqqGj>Wey?aLN zR9#z+)f?imp4v*<#ede27%7q6OP485ho*tVS?UKG{#?1KL)0f8IiPXvX zDalKhjQI7@ky=mjbJnM~OMHX`{zB2Fb+9LqYty7e{&i)-pJlF3 zlUph#f82$q?KOK3ys){lNHpk&&)cZ~ykCDrH{bOLl&Ao-5hoQ49V1$C|pd`ugS`(s}oBc&p5M0xxJ<#A)G@;I_ZE0flhY-Op+ zV_2(}_ChF+z9^5gr95ts@{oqSJtEU{rJZe$)Jgdy9!WO8y7;xipGxz)mYd%t+WdA( z)wgPXmuU05CNw|W`2G`i-W*%AQ|np2&=UCA*%Uk(i}TVn*sF z@h5E(Gg|F(oivHB8qp-a)Fv_0G>Hn=Bz#O8O=5Ob&o~Kp!s+8rIR9y!mptLf;TZ4y zl+??}_`e$yo8wnU@6rRb+MgbFG%k(LiPpts99rN=ITRb4bemEQ(UGx(=nN;9D2<5S zCEGnvPO&#c^(5d9hEEy`<)q_IbXtY6Bcx{_XUbl&!!y%Qh@Gdc>hKIXNyzD=e}>Gb z=OmVDQD($9HRwg6gY+vF#eH#aYLH_1OJha)J{j>v(Wdl{8HuIRa6hRNkWzoEF*Y(9 zzc*SaQ+hs-&F+kjOz-$^MtqiZVd7sz3-t{2!1PZt;u{-dw`ryyh$iIv^GC_#z8Uc) z(S+>jhQ>slOpf$9yEUGesX03;W*F(>lMw=!0s9Gy>KjDmMc5ZajYCkn)A8Q!q`cfpX6rr zm(z7@kggZaxGy9Ak!v8*HM=P)8UMI3(IlC;DVi&jO)}P#c*l(2Hz(q@7dvcU^~AIc zO7Ipjfp~6BJJbPq{aG)Jnt@6&&UDQKX#awj$VboLA`C(dfVKx-bQO{ zk?YuhqH^B&QR7INC`@k`n=EHf>0M|CwNk1xc21_Ody`yU9+)oIJ6DUhv{j4q+Ni}k zt;PN=Yf-M5+P+PJ(DK8`}~z7rATwNJcmYQsxZBOu9T)bq2MUcR-dTQ zykk|#_ zc)iTJGnib#s9N!$>GAb)ZpetgeC51WJ(v}m{g)cG8{Izsls2G@_=}qRr=oYoPR?APD>d3bJ({?w zRqyjzU2|3A`t;*v&F7+WHqD4XEB$+!zDv&MvBSHjw~zJjl6J5(kWV8`8PZ>0ues?X zy^ah$Q$^#S);DFupLW@oD0xK?%iTp-8>fRN&BHI{M3LTEGSL)`9T`mnQ$^7`SLxYU9!{7gFwTKd<-wIh3c{O=9Y!d?A*D2L5~8Sx(LUEr4yS8oT( zuJ>ox&%B4CQJHBhHtIitD$m5MMIX}6Q{9QCQP~_*0^1AeQQj#NN-(^mZ8|jif zA_vw18L`pat!~lb(UWvyX?(tvrd~ndnzk9j%8`&@E$gYd%h4ZBN7xEfN+SCN2Tnf&X&oky@Q@|*6J}J z;WN{uI*yams`Rr?&WwL~rJQtTrj68zLQLpurkQDX`2-%F7Q0Y)B|U!Y^w=@U{`kd` zjoT#2`1`T}nSM~(sJ?PMS*9g3Qqj`hf2R3-Rr1_f+P++0(_fZ@MouR#r>|*FAC*g> zoKj?3CYxkD5@X5CqmAnoBpZ_LQn{u`PbJ=cW~*c5O|9I;jfqTGwSSJfyA${6LGov* zoJ`r%cG_pnls;pw6mzyDCq>aNBk@(MgXXWA)WSyTgS)ie)y_#q{7!8q?`m55qShoP zZE=S*8rL>={W47&l;)x3%d{5l$-SUBkzY_8u0`)&sufB(xR+{KPLeOxX198&*4!79 z$Y}h{h+gVH)5BQ0Z`wV+qp|rFLt8J}Y_ItPEs^<+G3k!zDd|UQ(0XS!z{- zd&xGUn({%ds_%16W_B{OU--;Qk8Zv6=vpPzr_IdHL}tIz%wE-2W@pA^D_>0W=j7Qj zcTV0pO)@(>_BH3^Yjn*|rzHxdklM$ui^=U7c|AN$Yv#JxUDC4pWlAfNllp!c{pCV9 zO%8B5gs+dy%ZQbSbNxQ@GC@w?$7D*0#*XR|8zdLJmanpJ*5h&OmFv?7%SPs>X@$uZ zEOu^YY`3nth19XD}u|FQb@ z3Sp_=rmX5elGb9?7Bl_ZOsBtoJfrsO_tEW({tnC~<)w9@l;rt*DZjeOlgj(a50=P> zb*4=CnhiC8Uu_q3W$=+|+CFA9*w zC=mT5y3Apu>x`FA;p6k@E=&NaNpsgam62Z{6MfxBmYZksxnHa}v97P|@Dx&||VowyRN&zjg_JUq*yOy|L~$veV_ zkn3zb;@(SYvE(6%*L;TjosXqy@crF;bCJlw@JaAu%#Xmh82%vU`(u10d;{iB##l%3 z6whj~%XX(zWVxX#2Q9g^{OA|B~vXWjHb$!DYuSB*#Z z(ow4+9@)E{cE*OJmPku4cDWhJv`mNok)4NstOHw|1d>x15D9c2|BYn(V^JF~IuXzSj|8V8p+I4X} z5{|Z(tHmP&S_0MGR4j&r{j^S$!R+gkIb;M$?14xW^y`AjFyK> zGGopClW-=zOfE&-*U)v&PvPUcL?XT}L&|=9XGcxHxnFSxF2D^b;;)qJbzA9l6mKg( zPo~Jv99;Jx`Tn&O>1U@%|EDS93p=&F z-4CVX)>eM9rI7cIjZaqAa7@)nRkam=yKXm@3{Or(QFLGWG!Y~YNHj1}JHK9DqGXzWsXjBT!z?-OGb4xj z8Ts!%#~|Y~oj3P0^_gHD{*&VPIxIyye>+8fK9Y9W)_%R=>ZQ3~>OKo0+ntmmojDc4NX z&(!CNbLo83ug@UsaFZNInWjIf z&l2k}#?^0g|L|?kk>RfWkHVaP_E=}`a^=?C-wXBCL5`!$$Pbe7?sFb8x3|Rih!rH= zeP%=E9!YUtT9Bfhyd>?pN9??0I$vUHtn=o6-FSG3>~~w`*~ztsl4LqE>xOe>qOJH} zr#K!zaOsRorW4L%PdcwidUs5%OmSViRj)^}s$_gfr%Q_d%rPm>SFfgszu2XJX)^sD znA%e|)YkQVy_{zbiRs-hKS(vX;m;|~Kl@Ahw{`sHI6n?+MiE6))zZ%?JuS9zo+o+#0D|265~HMZsVVaYd*D3Lppy<5x>dAw>R-0ns{yPA)POc+wC5T zhNb18M_-7~f$PYoe+qdAS+2vGliiwv?M>0O&#M^q&^Ro_|&gYbl)`1Qg8YqM2 z$EJT6Tt~J&_lI-2jWF@H+%7O~_iKi6TW+@*xA8B*HJ@@ROP0f1DdOKX@!FMk{wdUV=-USG zf%J7-I%u+bS0v;!#B=@+(_k4iopaR9s$#biAdn#Px%j7TAdzFd5-1rRR`l=_y-(lRw zKWf~@uQFaK(;=PT8@J{EFXQ%n+u4+ZP3I8fHk}iV+jPz|Zqq4-b9qiT@mHGshx*cb zY%spq#M}IY@7U0Id%WBJxjioS(uN>|##=wwxIJFJZ`|(J>Ben-#v8Z!nGEN0m}cUq zNuEMI-eBBr_ip2MyU)V)cxg20Y%uXQo%fB~biPdC=b@j>?YtDOy@(*2}+Bcst#o3_7y)6}}ro-R|$vCf?@fY~waRMR2aKaVFl@*F+OvCfg46c!h~C zHa^q%bmN_5S_j^4xNo4V+3V&(F51W2?S^-#HQtuPX^2<9O8!DV^Nkl9-(C3$cV=|E zvrPKKWLgJxTb^e+ZGHXS8_wku`mLIdEuTY7e3?v#{XH43@wPqaIZX$3+aC0o(m~yp z=Z#Li+jJf=Zqr#|{D(3f^7Aa5_v=;THvbz;I>j;_(&=jAON}20*ZkY^>1pC^`Xf!e zy&l>7PWF1FeFGgdeOo?PJN2&9A)gD4+xVXux8?bkaa*2W8n@>S+n=#M&|F9Cc|+eH z(Sh?{WZdTGCgV2$_ZqkHtBl+H|Jk_B=f`kv4_}!0Ig;N{o}J8j+wRvO<2FAdjobWO zV%+8@ysx6=W7E0C#M}PBQscIK9*6UOh3l85e~sC%-DU|Gvn9GbjW`U$3<_k8;tK|ju)FwPZK}O#P>JxHyRK9UM`1IOuT))HVV$= zTw&sE`7{`}<#QdJ%V&X!xBF%L$@cZy&r-xcZ`>Z&@0jh{*K1ph+xiOUD=q&zQ*NJ{ zc>8+I-Y1`8;ydb&%E0BU@4xGy?ajVkJKXp@Sr*zuU$~Zki{sJ67n}H@#_jRgRbq6| zbV}tfr2l_?J=HSTLHF05KlPligSx$*{={kP_@5iM_4~GQd;ET7+_ul|rkz+HWZbsf zeB(C%CB|)jZZ>Y?ZF{!yw%ywNzira7`TPf*>oI2PUCTDqZx`cszfLf2^HX5l=BLiM z&ChklZ94Y#-6bYJ4+}3-C z6vvmnPiWiuNhaPNM`MiJ{7f)z^K+MR8~>Pb8~imHlMk0PQTE^Yu$zP?RmrQmpyOT{d(A>WB2QM<2If3#_f4#t8ttEf5JKc zUzzx8O#b&a$BRAgx}`YodYbrRlg{@|e5vv9yqngGJ>FBDA1X}xHa`)bzPq6nTY&+Rx;%$5T%D8QB|JSd(Z#BoSZJ!SqxA}j; zxXu4xjNAODIu9gFJGbY7BaGYgfbCD(d=5`>9F>@K?0KNVxV^sDm~={{F2Z@E(Zt*B z-e}yG&m+cd`7AeXukYbIowZ%r>-(Qgygk0c>v27A*yC%Pi7z(!&oIYhsqt{$(Cyme zeRuUMPD^oIr|SP7D*4bs^JA~?y`B30fZgBGaE-V1qU-9QZjV!KOFD4;EYHquJw9yQ z*5fP2Z9D&~ahuK#HvLt`ZTuU?Z8_WinDwYBA6t)ojN5t~ zVce#3v2mNu9mZ|@eAKv2=hwzNpwpJm+c?|9=jKXZ)R`g$mZ|H`x<3Lsm5*o zFEVboJJGn^?(N3yb{E6B|7Kqo*!H=~q+`?nFokzA*Actj9>#6{!~H-$PJdwHZ8~F& z|IpNne%??AZnxLNd4KhDh#}ryFV-5j*R{VGx8)F?C+GSN&rzz|`aMZO26p>gimms_ zCf??=0nX&Fv!C&&%yus|zQ*|7##8mr50MxhbTxba>E*Qb z`R7cy#@qh$SmRg7bl9&c#%;U$Q3}^O)j`v@_4uMw@Ai0q$GA=ZQ{y(B0p|R0wZw#c z+UF!~Iv1LFn@)pq+y3t}Zrhc;?_qr{;<=q{H0jv(_8;RmKlc3*o1a6>dBC1G&Mp>H5x2vDa)4fL> z)Jx?rq|-}-Wzg(iCx5|H#UG);GHATrZa=53w>uK9@wPo&Xxx_PRmSacahq|Qj(wiZ zp2wa~5pVBf*zNwy#M^rOo;lChdOS9TpJv?Fuf309^B&v z?Y7vYW7~O^iMQufdw<5}XPSwhZt~elrgh-_bo1QmxHuTj`;}|rZF@MwxUH8-#%=x1 zGj8km0pqqE+SfaFyS86(zpNYD+p8v>V&i+mxf~8K@%H@C!^D@FbWSw!Ha}+>x8-o9 zaa#_0&tC^VE}rr1{C1fR`?bNiEw_)2+j6t_Gi~`K%yD7&tE)M_ip_S17`NNCpHr~g z9dF|8c56~>*Y?Nkc4wP(YbnEl{2)M?NlfO{TXPfvEKR;D}c&bUqo&uR)B0y7eVd=I z=K5mubC_|PpKx8%^lkiQDdO$>sy6?rUZ*^Vboe~*nn{0-Y&#rBe=~0PD`xuhHvjt> zxB0Q}JJ|ioGx0W^YU4JYImT`I-)-FH^OweL`oA-7(+|I8$>p=j#M|@pdvHG9KQ-~i zrabr3ij_f&Rqt(va^5F}+t)ibpXVW7N46X$7`NqM@6VK)?f%$ox4`(_CLMdfGUx1Ha{VK&d)FtZ_i`r8n^A=_V*@AOvumeCf**`%Z%IO`eoxkGwG~_b3XrQ z;)_lE7sjtMo~nGlZGU*AN#FKY!{>~&o!I`W?xPOswmh$L+WPwPpmAHCFB!Mx`Id28 zp7wbsyWNhaKY6vR8|tfvaT{;%Q`vgIz{J~phVL=Z{k8eL&BR-`&)eAizhdHTe(e2x zo1eY)#3=)pa}VP-eu#0KfBXKU&1dK*^YJyqq%%jhAIkH`#_fLn(zwmf?~L30d}Q3_ zCp=H6`)kuVAg-n0%i$6khy2+4{I)#9=lFQPZ2$QhlTLUJS+{$w@$h~nAE%WjKgA}# z5zgDSpHr~M?>#0R>kp?$XQhd^`TVtsFEjah)x_I;zG2+n_t;O?)q(SWl;>9G|ABBW zpL0#TJ)daZ>7eCo&nNbLYwJ<_z&dby&~vE{>b70I>eRb!SAR2Z+ikc{rRmt`Rl1ww z)L!51=O*lN(I4?#4ml>BV%bJ$xAr*)Tkn-7-lkujBK>+3Z_}S)+}3X=$%77Dzu|oi zEeCr&J;+73zOQvWT;pwhjWTYJU+pvN!1Z;bXXm!Qernv-*DsCVB-5chR~auh{-$wT z&i`xY{(CZQJHO48+y7VF`TyVEk4V+d`+d;@%DHxH*SyjdB*Me`3d9p zc>k?&d%VAG+-~;+$-Ksw7~fl_bx<#rzfjKM z^_`|;+s`2~uLEy)sAqScx8;-S{j7S#_m=Sz`3u|CbG{C`U7LugdlkykhA5)Zp zd{g%^Ae(e3L z@IIZkADhoHCf?>V0guY~22AUyGp5yNVOmGwdZa$ncowGBe`P#Osy{1#Azi!OXF`x! zuJNmk+xX{jqDaO~*fEW~L1Y)tE@7pB$k!L%Kzr^^5HCeY^R*T!xBR~xtS zT909{`Cl1O##xxw{DgZQN;dy5AVx>onAZ3gF|DHZ!`1 z$%NYd3g;+Y9Lk}+OrK}s!}&-3d=vLQ#HfchtaPaH3uQW_dxY^qnGW~+jxv6(@vxqz ze*t226xIvg9m~Rg1uubz`&z+ogok zENpiYJfGqx!wbm6{V#0;I)rrYKzwLR!9)M1*hM$Tzl8WQ^6*@KCHd=!uOfd3UPHbG z9*+HxpYYsOJ;jIjn;Xc(=l^GrhtCPmCLb5`Fo!%mUp1FJ+((;79zOpzpZr%ye*yVB z@P*{z`yv;Se}eeMQ%0@a5#;edrbB^AW$2JUrjOihKp)SCjt+ z-bDTyd<}W{{>ruF8xg;bd^3Cl`M=;B$$O=F*hD@MzL~rLzJ>fE_*U}S@NMKb!nc!$ z_osJ|htKKlB>yGSaThLG7LKE5;AuF{g71VU$kWn&!r^;JLVWoAUT2CA&-I4aYazZE z>2#y`>*3)(Mu@*1o<;F@!F!V53lH}_LOKt^!{>8@{|uf@={yM^Ouh;p?gxf+R>N~C z{x$dz@;Bglp)2VQ}`%~{}LWv=Z5(3(|iRKAKs5IB=4Nz>vs%!_#9&~`TmG6 zBR>dUNq#82ihK~fhCIBlUq^m6;=}#Yu)h`X28y2wpF#csd^UOb-uyY_;r;TtgHL}Qx&A(u4jagCg>NLk559@~Dfnjc zCioWe-W~mRw~`NoZzCTC-%frudYj|jd69=>-a_($*# z6u%Q5K3^H)_rweR&@T&qD!dz|GZNmNd=5N|{6=_B@>k%!$k)RAkayb4*Go3}_uzxc z2g7s7Plt#8X4v1W;X^2XEd>;8&_c;S0&1f-fTf3ci@UV;7&#CFG~Wmy%x#Uq=2id^!1A z_zLp9yZY^}B-h`6)nOI+?eNv)e}XrWABYyVo5}BmZz10V-%5VSzJ9yg$V=ec$sdC6AYTFBN&Xc)g4Z|UxEs;UZ#Rwn$M6LC zpWq$H--CB1?~6CAx{^!mycnKC{t!Hu{4@9v@>9C|?dFkR10PO)3w#v$AL04r2OsFuFCZTaFC?#m zk0E~qUQE6XUPgX69yF*V9|*4^zXD!E{v5oH{D6b~e$|tgz#GW#htDAY5I&ncn&s1< zL*5=fm;7w_Jn{+f`Q(qo7m)u4zL5NsLn3ZiL|zA9O#Vao67pB!OUW~O`1F^Np8;P^ zehYjB`P=Z7AX?PQPyr)lR4fz@HwdA+M*O9*q-$4Emd?R_zVSc-t z$WMZACZ7Y}LjD?jEBT+`+sFqU?zg+0d<1+4`OWa1UJaj1{v>=JdADqz&V2F;_yY0?@P*{Rf-fR(KftHInEYJ$67qZCOUWYx zeLBm?i{Z=3{{UY>e$XJF&Pwv0@Kxkj!B>;N18*W9FxaQRhWt4ATJr1Q>&X8E-$35$ zXrKN@^2zW`bY;$&dfOPd|(NNAU1H zfg$}@;o*03gCBUjPp1#1a|t|~{0aDA@<^^vCx`qzcrN)P@FC=}6MQ;(7kY5NdCSMLOBj0m~Pp6W+99~8K3_N@eG3@U? zLw!1R6ki3eCx05=K;GeGpUw>OBKU0brSLiApTp;ppMHu@e;)ZS;q%G&$n)_F$j^r_ zB!3>hh2Ch}9^o5}BlZy{d_-%9=!d>i>*Bm8!^ zlb6DGkk`U@l0OHJWcc*L@wEn?Mt;ypAD1BS3-3Ta10LQ#4C&tp?@IB1gLfnUH@rLf z=+k|EvdG86dy+p1??wI$ybt*Y@NDu=;e*Nl1J5CkjPm&m?^}j)NP`cd`1bHT@=@^N zh^lQjZg4dDX z0Iw&%1KvRX9()G*NATI?-yiMsGlzUOd@lKB_&oA2;q%Ey=lk>*ke?4)>hRr=H{E66A~E9mto%JCpZ0*Qe8!d@;Nm`RDNNoR>12_Y!^8Ip zg#CI7-izX2hW8=wQRvgpCO-x~n0!7whx{>kE_tW(efmSld&Bd{XTgV)FMy9C{|7vu zJVS5x$WTCj7QB%Be0cbtgixN9@M4Oe0WTxJ9bQTPIJ}B{B|JPw6Sn&bypH1EfQRpG z2=RY|H&FaP;WNnp1D{QvxX_o|9P<6)bIE(c=aCPA&nF)ZUqF5dd?EQ|@I~ZP;ETzp z!IzN#5WbZB$M9w3cfgmE-v?ho{t$d6`Oo32$XCEulRpn{B7YgahI}o2E%_Vpb>ttz zH;{*i=r@vQj`8hb6Z!t|&EyBew~+UTZzUfB-$s5ad^`EY@Ezpk@SWrh@bE!^aJ*av zPfPgy3%(GZAip2pf&3YGXYv=|UCI9j??%2I-kp4pi+ujF$UDM&l6QsoB0mV;hkO7$ zoBVkAVDh2x9P;7tT=I+IL&(R&^T;Q`hm&6kA4PsGJfHl>@B;F?;DzLm!N-t42`?sZ zf|rrM39lso2wp`VyV%!n4S6qk9eDw~p1cU&Kz<#32KlY<+2kAGbIAV;pG&?OK9Brk z_&Vx`H;~6lB5v47elUC!`I+#|2D?P z2;W9N3%;HFs8XNK4)UYnJIODAN80)I!g>B;cpCY5c!GQiyaV|(cxUpN@UG-n!@H5s zg?A^v37$p15Z;sget0kPhv0q4m%+2im%|5>uYl)}zY5PKe*->*{4IDM`Cs6}$v=RP zBJWq`>ouQzFuZ`g7G6j`4L*kapmLvnG5JOCGV*coO7i>RRpiUyHRK<`>&W|5`25t9 z9}90FpA4Tt{!935@_)nUkf)9F+nr0E2cJhi8a|)=M)(5qJKzh+{{&w|{w{nm`4N>q zpG(Lq;Y-OUz?YFf0$)!4Gx!Sff52Cg{|ml~yw7-_&(-9|z?;aAhp!=D247459DE)5 zk(c=GZXmx2zLESh_$Km;F7@ebCVw5ig?uA?D|yE%pUyV&gW%iAE8siGFN5zSp9Obs z{K}@n`F|NaO~Lp|c!GQ@yaV}8cxUpXCirx_l7AoGjeH!uJ9!;Ei+mBhC;7whUgYcG zeaPQ}XOr(c(dU0Kc{V(Ud?GxTya7Ih{AG9^`QPBf$=g@^{EQ;+2hS%z4_-iC0xu-5 zhL0h?3SLZpHN1>`9=wwL0eBVp^Y9w-x8QZ;JK*)?9cz5~G>{(#pFw^id^ULjd=B{~ z@VVqu;Pc35!snCU246saKYStia`+&Ua<_2l*N2J+v-XOQ=v>eHW1J{vxV`~&!0^0VuGI`haMfzK!Z0=|Geak)=t zA^CamMdYRM#pKK2OUS=~FD2jO3cuZD zDeyJqtKn)|WNo8T+S*TYwlcbe(*znXkMcoX@l@HOOT!q<`)z}Jyq2;V?H4!)86GWaI) zE8&~TuZC|SzX86L{7(2b@+I)?bo*@4ZyaRb+ zmQS}cc{g}h^26ZW$os*&lOG4qA|C?pNj@Cji##9RhkOh?o4gD@n7js_Lp~jzOMU}< z2>BiGJo3fx;p7j&!}o%Odi(`EpW=T7FCc#jUP!(cK8AcFyqNqwcp3S>;FaX@*}k1r zk#~mIknanxBR>#cPkuPOfxJI_2Kiw4Z1NM~bI4DF&m}(-K9Bqy_j0+w~=SVx04?W-$8x?d?$Gx zJkqJ<`F|8Vjr=Tlg8Tw_2l8TgXYz6IuH-fFZse2U-N_r^S>&_eJ;|?u_aeUu-iLev zJe&M(_+at};5p=v!gI-=fDa*m0iH+x3Vb;EoA6QOe}U(dzYi}U{|CH~{8RWC@-N}V zi@U z@a^P%;5*0%!*`PBz$1ILJpZ2nPa{7Co**9u??9dp?@WFUyes*I@NVQK@b2W5@GSBg zcu(@F@LuFI;C;xifoGH71`pr&7W&)w!gDBo89bN#N%#=*Rq#CW-@u2HzXl&gz7d{J zz8PLX{t>*8{8RWC^2i+DZi>kh@G|l)@JjOT@G9~n;5Fpg@H+D2;q~Ns@CNd;;WNmK z;j_tW;B&|u;d9AvfX^de2%k^B6uyA`DfmM2-@q4Ytd2L<@(J)9 z@+t6K@>%d9(mc_;8@`1682D21T=+8bq44G8r@>c{p9x<{ehz#U`55?W^0DwH@+$Zm z^2^|B$*02CkxzqfAfFB2NPaDR6Zwts&E&Vhw~*fn-%5Tjd>i?L@a^P3gYO`J626oC zd3a>+mgo7G;c4Wr!V~0wfOjC@2=7e38QztA3%ncohw$#?JK$O5@wt9~dXn!2??t{p zybpN~cs6-2_+aw>@Er0ScrN)6_z?2p@I3O-@Zsd=z(h=zgV&JX1g|4s0Iw&%8{R;^7(RpiVfbwFpTXylKLMXh{xp0Z z`E&63;3V#k~{%l zMZOn&HTn18P2~H-*N|ty*ODI&Uq{{-zJYu&d?R@-d=q&dd^7nO@Gay8@U7$*z_*bX z!?%-*0OK{|wJ2e-}QOd@DSMd^$zL@;i@FnE0z?YK04qryT5x$&! zGkgX4R`^Qtf5KOhe*s@jo^hi;E}F>qg0CU(2472l2z(uRZ}_x$sTo!{D3A z&xCIwKM%f@ycoWXd^~(Rc`bYgc>{bW`7C&(OUv{BTzDG!E${^S-S7_N55PN3rk zCtn6{AYTEWLH;s)Hu>-2bIAV+pG&?KK9BsL@cHDQ!xxapZu0GIA$fcFBJ#cAi^=zc zFCjk!zLfk(_%iZr_;T_b_zLnN@Rj7J!B>%whOZ_+58gz6F?jhjGx=xmuH<|C*yp1gc_(;x@_pf1=Q>^T>Y#A5Q)|_$cz%;Q8clz{Bq^wU=Vo_hsIM7gGE?@G<0H!i&j= z-|XwLjQk9ECHYzKD)Nc&8uDAx49*ORxK@AK0@-WxuH{9^cQ@&@=E@|p0teV%Z9f0o$=ktqkPn3KB+r9KzUR{m=Yb30Y2>ru3GxTw9mpSpcP9TF-j)0dcsKF` z7Wn*iC+`8zB0mM*lY9)k7kLf55BY8IZ1Q{HgUOe|bI3QqbIG^Ehmh}p=aJ{$?#p2~ z`8fC}@~h$b<``3LaXM=~~s2ir$+hJNqS(pxQOg zh0h`X9ef^n)*c=fkdK2eBA<*(TS9&dd>Q$B@D=3!;vQBR?~G|3HIeU$`dVwe3#N6n zf&5m)Zz4Yu`Po7~3BHZI0r}iP-UapU8lWuG&1rtdz!TWMj`oqiFmyJ)Z$KG$Gv3X3 z7Wo=1>t%dD6Q4~!9?NpbPs02V@|RE!!^tyI4*BGJ!3&KaX!27`J_qxa#ovabg`x%eqVMT#fRTRT|nLg`?ZLC5_}1H6uyl7Quqqvhhm>}w2HhQ z%bLi~!TehCJ&^te^0VNZ$VbDs7(d+PXB+ucEZaezhxu?4*I7+x0?I#uaqy{_?@azU z=DU%J}6V}Iw6zZcH`#`~K5FCf1J=`1qd-^4E=ufnor@?v-|5 z>x5yp@u2}_9L~eK*tVR0_Y@)w5L z#=8WR@%6@WOUy0ZVBGer-!Z3_!q_p8_&ae zUDFT8t}Z^qcsK^t=Nq@z!JimEUIQ_N-{a8q?e*?M6Mtd|mT^wP&uIL~#)ld|#rPcK z!;If#{8Zx`jN9|-JH|(v_#T*UFXM}hA5Pv6^Px^dd_FuZ4_*Wh=ZfIhz{9yB_&xAY z=D}CPLm39&2oGf#{C#*hR|F6DdBU+D{5+f=&&7JduYiaCPViaqVv3&&FDDPL11}+e z81dEQKZnNfy@Hyn$;h~=!()k>Yx8;)Qr)vY2;Wj@? z`d;vb3xALNPw=heq22z2Jls$Fl>A>v=X3H9ANm`ie8T;T zbhMY??Qs2WPo4$ei#*)N>q>q!;`bxZg&#zI8vM`{-itik$LLFb9?}W-gTsCm!;hu- zYIx{(h4_%pP>P>{_*2PmfS*o&D?Fb(^z*}gov_{Ih`)g1pMe*VuZEYA{}w);Jlr3c zNd7m(*OLDOUQZrg4@@Hu@iWQ4L^@ZKw@1G!oR32}WWsNv_ygeK{%(jr6n-bg_l7Sb z9|XUj{CN077nQGvt@Te@$Ks5BCGZ{$2qO*Arb0rvP^b_z3Cf zs2$D;I$D8xP`9sBJ~eLp$?LHljo(KTzz}{%UfsTaIRyPub^H3Iz_{&K4?;gs<8A-> zKI2)kEDVpMpQiDL29$C5eIoVH7t+NqV&~P5RKReI7NiX7z1@`m*R_KmtJ~L8JvuhK z?e~W7htc@Zchbn8c505d{oeAunmzQXRPHuz`@M&vk~IC$*V6d#IZbujkG&>Sm-_u0 z>L=a*@SL;8pKSbZsBCrHUmb-PMe4&%{LRKk82`8N(3jK2gYf>Krek0C-EMreN#_OQ zq3@@QKQ?~0iGL+pUUNsZ;)l_q;wvs4Up?`X%FCx`?mhY0=rhq((Ho-AM}HlCF4`1* zIVv5p3FQ+?Yc7xUD=Qy6d0bJ+*s+t!r$mY_IP>hfK}AIa1{_;dR8m`8U0PH-d2CT_ zT}fSe-oRldV4y@*Os<wTwBdHZL>Ws zE8A?(-|O`{=gu51_d@T_mxqtvAMg9%-q$(L^Lo9`>pai7=k9~7rsoG061>hDuVS|s z)Hv+kl1lgd1h1pC9FQ54y-7m~swyj;lPI_v-F zL1+9V&v*Qv+o7@533)IdDG>3XV&}i2%fJE#-&h#SNiKJBDU24}N0R54I07yMqjPA1 zyS%Uz$2s&_WhsuRq{MQ!x3p-1-QjZi`^;~VQdR}~&)}+Zm%Ct|QE_seLfze>{C1s#|G?J95{dIOjsZiHb{k@_Q3u&Cln*VAL%LY0_Fli9)PBHXgT57}~ zFdIpV(io^q{HTUWl^P~%{;P&b2D}Rf`H$xI3U6g*lD|6x(berkJq?|yQqPkVxL&ai zt2&iQRO*yURg4N0>kTNw839j~{{4_{L|JFl1}yk#Ri%?owF0MAaD1xUD-A_czk-27 z@n{j~R?Vq~p?Bl)qcd0kUn|ksnWQfJzj`$ey$PJ_gsejd3|^V_tfry)UwhRFQfm6Y zcJr@@{I}ltbp)I$!7;}R7bNOsgL+J%%Z#E*r%us~^7&<|8lADxAvwA3G&yikp|i+Q z<$}S^uXWV(wX9OzJ*Kf!0smpXu6d;!50`i`@n1U#*d%FUPfB!NSyc+x0&qcyqqVg=x?z80JX`H3_PnSI2%BlkIK$v6$mwno6w~5$!^`~Lg ztzL@)$1vchF?-{E^1pH8Kb%WONsZR6Gp!`mIURubwPRP%+0X^bzjWb`SyN|{VVyeh z2FA5~DoP%b0!V?syNv1nZ$0S*qccvDV86q=IduIz3CT>VDlfef?h)XXq749kU73}o zh8Unl=e&zwOaFU6bkNaxXb-H z?xVE45U%xH{-)yjiOVt9i3o2Q*DH3p=Q^|?TEhLsf_X{;-12ZHj2@rgU*uh`>N33C ztn`!?D+zNw9ym0r2a%-uxAd}LN-a|LMo(#6Q`&9p1ujQ8!&HbhT5l=a!MfazLZw1ni^IJOPldCfv%??vL+bY9sM%1V~D#bOZBwQ^fvics-K^cIqii-sFFyjkjuP#|_j1^H9V0QL<>@ zt8<6uE&+z1<5Ug3?)0u3Z+#UVe`=6gWnu~E*@BuH$K2BDB%H}Tr8v4g9=mrzh0~6E zQ)5x;9OLz<)tTcBJp1F-^NjO|N+;akDRkS_yHJ7W0sr=hq>LUlN}PZ5TjRs(AxZV2 zq4ku8)I$c=hmwYfsW1T&V&oNg;Ko*cQGeHBNbIA+-yEw$e<4k{1x<6GnAs)B-K^r_bZOFc>Uy~=~XS#@F zf<5|7$BeW@yw4+@Bd`@9v7O?zGyk*OWAG3cHN|5^p{*ztA~n&E@Pt~wD)ZpEsb2j1 zh21!{LXlVPL{^yq_ImMGi1^j_?J$1iSaqj9d%i`~&wESt3eUd9b7Aq=(qDje$;(=U z`hWY3^H(F3v3{&uTmMIZ>9s#m)W4a#5nk#(lSl9*th(+0oExg|GhzMsNLyR~dLUG< ze)a!hU#DrXmj4?8(5pYcw9n z?B#bL(SbJpyT_4nk}_YH-cdiCE3_ImZlovmMg zYn}SH8|?pyqM_fY6$`0t|5k(jf2XKFj)y_*$5#Qg?f(TP1-U`!D{^jtCXJ1eVOhyy0rRSbs-YF;-ku znF+?!eoX*NMa5YfT=mDjC`uaGlP`_lx*vG`>!kMMp+wvMYefAfjr|evGEQUr&$Cbs z#jge==$G=(F zU)xChw}8D~{OP~*_|@-JF#gUu@qa4n*T&z=%HwZr{B?y%8EdL{{1^6P8;QRY*z3ig z^EZ$GgfxD->cqcD)USh}8G3k^kf{o2TM`8cai~pFgSHH_p8=&Ry0NCrrzo9K}cnCU&1^L4+)$)h$lk3&Lb0}IV z%1U9+bM^TP0(-ssH@D;UtMA2P{rEnmw*CR4eoZ$iL&eLK+V)~y^3oO@>cu}%*l%tm z{?=fx7k^0%k4T>XhC#*J_%9LlYvVsBK5A-g|GCtl|CLnU%AcTIUbK7+HRyk(1COXi zT*n~)=u#X1Tv5L^{+~zjT16QC5VZUooxkOY^Eb8qSpTE2s`jc3fs;z=KTQCMnY>E* zon1t zo%$;vc)jtvG>g~xKI|XzqHRCEmkxhQx~v50h#tKC6R{AM6|iQ)s%`(>P>%I;ZAge^ zmW?MGo4+oF4%UmmLfEem?N|M3;~xt47-G7rAmp4rJfe?=#8_^BiVOc%8~H@PwXHi-E{d;Ygh*f)0ky2W7r>NTJ~e-m`#4>madSB&TJcj9h% z2DaM%V+P0nMDZbZy0FLbcNwhO{xh2Y=IG3S7!vjsE~*Sw`P0O?ZX(zFkqiG;8-K9i zPrCzG4CD@nO8ZY9c=@;SyL95mkkq(U`2rkYX#dg1k7U8}4;TKeHvYX}Prfwv+Xit! z{Vr<-c$f<7zm2~}C;mxbug0y)Sw``rGAyNB__x~lry9inoA?lOo3OiN;z0`_@ z)W&lX?6EJ>HF}#m84IPzzQRkc^I>w??y`ZdExSt{BO#dQ{yHx*0}_S*P22z#|2 zRbQ=N&G!a-z4(>EJfa+-i1E*bRkc_Bt}v*7r>H+stw>1KUWKnVs6R*4Un3N;{z6z) zd$s<@Mg3a-J{I+NR4Wov%il)^@hkbtHPa4F(Ux&Y9FjDPRzugSRUwcu1 zj#`nBs=W$Z4aQ%{5YEVcp@{t9T%g*k^-mG?Yx$ca>hCJ-RiWk2XAu9&f63npgZPh# z_|^7f{4SmNr^EeMmV3bsMN47zFPlaEen2F&@h73ZRtfT|{Yf}KlNYTn@~Op8f5BXC z^(&m8$ct7tzKyK0 z8H~xytAi9@O1AJw)%sLin|~SX$(Pn%{7|DhPhk8DVO8x_9RCjt)}-aXLewvRbBi&k z{HYSZ_f*qZt}bhYy_#30R`*62Uw~C;!dKP_`#3nikry?76}tiKvHj^PAmmcf{tbd? zZ2uBiReQDlBY6E9YxrJxJCC#_%y06djenRy{q0}jEs7BH2iCt7R&D+G|1{92mjAu~ z;Wb?^;s+I4)cRGq1^74X%%8o)`v-l69oCPFYR7YshxTc?$Fg-|{4Ry~a6!AvVb#W8 z;_#HvK30ueD~M7{X1?%$dRbkY%k z-tGaK`599)rex%21_JELLbXY zx{y)(7QmUluaeI1Nr_jK+H}Z{^PMA`r1Q3A|6qA~_|1oWhm(%izIelvYp4hc-h=|* ztoYpU>+uHNv)FC9K5u+T&KjyZE9rcuuQ0w%c;`&09Tej-eT(CJ<*cIH=!H3lL0?h! zy?Xxe&-8^qxy_&-0m$_I3gN^;F@Ex^eW}t=Rd}oB4LpJtd()&59GJ(or5K;KeFJ^|1 z^2P^^3mNLPHi&3AT{D?Y;aJvO6ucb|87*Z98A^?gwn;)JHe`QtjBm2{M< zOFBR9+Hcdt*F*R2!5as)*dJ7q>-z?Z!mrKv=fVZuPV=`*>I^|==Bld{=>IdF;65!3 zGBLcm`l~+&v>a4vfl;>npF`>4x9}l0_n#-k5Cb%P`2cW{QF|Oh<6dwltTRZV8*44& zKMumbT;I8zUq8w5y_xgEH^JNr##|!wNo&-`apaX#ADbO%Lf;J53teE;C+4uWCL?-m-2>+cQ5b%f1#%J#bU+j*Y_ok>)&<8 z_1HE2_CkNc$j|kCsty_dfc{SO!01&i_vZR?mG2`txGUuNK7_#;;X74#O#fDQO#fs1^&Qv^4(E`}@a%8Kg=hbo3y}?l46v3PKDsbIENQ#`!*0YslqY4s+r8J#f299VO7* zPpG-$dVi5o3$vj@8XY7JPWg+r7ydS3%i9O4Z?=8cn!pVB{C+UX^?fDSJCv~-CssZ% ze1~ydV3)j?>pN4@f6=?O(u6m5O~>ujg)l_b(+idx#HtSt?IZPB1ncN_-CPU zzTa%VlWLtdb}HjJoTjsqK2Lf-7Y25FoO_EB!aJ`36b^}j=uh|mJ?nXFF&Xpd*QB6Q zuJ2dg==XdtYFlyMmlq#`ZD^l0HnUC}`X%QqKiI~1ipKYkM!Yh&aiLzagff3Yq8-J9^m2EBqY=E2so8z8r3)_{IL%qRMqExJ9YVi5Zki9wt=mGR@(a4g$o&b z@w5sKDLJd?dINSex@_I|#qrSWz<%b3aTF$uRr@<^nH)!^4M3+lg{T3`%E7D7!1`3c=$C#fGch+_l0U~ z3xDhb&Db{>_Q-VY)^A#J*EH;R0l68qxIbjV)D^;~ereYFSZ#TR?~rYcE4~HnVln~h z4wyj<R+28FWvR642tIBn<)E`XK?4jS&!eu?Tq3oFNgg6uPHL z2`K3}QbWL2xPs59#gp>}cY(GSi-2+OWl98G4c*hE1cd*Tr6J(KK1cvQ2WXIhju(r7 zN5X;K2pil%4?c%U~DfY;Xz5@5Yp1T=raDG_iLbWf8K@bbwb4FUJ}LIUC& zBOv}_5wP?2Qi*`Y&^=8`K<{z$H3V$wi39)(4Ud3c7mI+f(1j8Kiy*KjCE!@MMH&L` z>wyHoNNbpYJ{OAs*OD6~0v1B|G${cIx3AI=a4+0+$*6_HZNmg4Tr2{j^4CfPEP(E5 zQUX@DxJyI8X4w5RYTXi}!mC!v+O2FuTw`mBt1MZJy)J|%QfJqmNfPPa`>#EN*1l$bwLo;eC8Y7_MVi7R$#E%jIS3vhPDFKl`{G=h^CV1^E zqqe3o0%|T60a;gX856h~EQRiAQUaQ7xSzZCUk$Eng9I#TjDRH z0B7h^8Uk*FCw>{V*ECGP_IOmdSR9Nw`i#UuA@op_a?tYA-5L&7!E>RE+LeuQfC?9j zgKeotBo5|4Cp9StSL7enaBw|5d(Ei5p)n3n;bL(xA?g*0gIUl?P0GQMBPTT+EQbfA z8MSL0;{X*d76&`7`#|Dg8gx>Va^T+dp@xI2;mxd!+VzcbfC?9jgU~65Ru8o z22Kugp_7`FgX6PI+`a$gzyoiLWYpf*7ze0uu{bDyrnSUD4s=qJa*%i|Qp158K0L^% zeXubOP~l>6@JgSq5(k;kNlnVZ+ELv!9L#Hh9BgZh15~(J9C%m{iGy_Lq$cIy?9+oZ z92CO`G#Rzq8{+^KE*1xGcn3=yq(Ub(DF?T#8KU8!AOtyhqA?Co;bL(x;B>ac!BFU= zCgtDD9X31X~4yM8@?isbuH^u=fTr3WHp9~#G9Yq}UgHCEv4!-%J zC3o*12l!7}GivuY#sMl^EDo;E?I>~33p%MuIj}i9X*j@tkepF_pfL_m;bL)+&@E2l zARaoYNjW%oNf!+VV@=4xp~g5sg^R_(>e~_}4&tDbnv{d_k0oh17!99SWYiur;^4(` zYj(wBDZR!mzhy3c>_qR`pOfA)xBYrP$9K^Gp8a{>L1=~VBl$gh|Ho4Jp8YTKd-h*9 z&)_iv9)1n}fDSj7UNZL^!+ZAdMc8MVs|xY6n6IFhQsVp{DEU8&f!D<0;{w~T?=!;J zALQS>X+LgIzmUsW_Tq79Exfy*<@*x8yM(U;;5B;wmEiWSBUSRg55IQe>lZG_pVOo( z{Bs5WH&yD_sQ$0x=&K=rvH!!C2>E@MTzF+ZPW_YuUvI|`S!xrp1Mu@JsdcAm%JdzE zuY5w_b3^#(A`zN*csHmjncFxEg9W^srhc&XoBBZ)G(Hiif{PGdgr8$h1O~?W z_{TRHz5}`JPoyZ*_YZuPw&T&syy5Eif`##k{KG`4PyC;&@-GZ?OaJ6V{v`|9FyUbUATK8KC|_`sD2r`s#jr#Z$M#|uNb~1JeBL?pQI3GJ3JcZ zFZ|AhJ`2lP1$Tr4f!TbAP)m(d^_S`EMWLu4k%7g93#^qgOHpQp-oTXNG3dm<)M*dw zaDV2C@1HYPm0`QC3eq&JOQ!GRl>8sUwnD?`dnffXUI-=&EPPkV?Wm(s8v@nJ9}nlO z3A!62$*F}8crIK>`{zPVmlwjP?hkLB5fR>+i6-SN-yf0VGY1+N$3ub-fut_ z4wIe&2S5dhhYKVH`vnIY&OY#Hh5ipXylO$e2MaIXD)0(6{Wd2ueF?1CucKfc4XX{- z39wFvbvmpLSe>vI!#WSvGFY#K^=ep`!|H=|6|A?ydONJx#x1aJg>?t4Pr~{XtovYn z0oH@C9)|TzSYal;Xz?z9y0kIh2$){n4*@R6{w(CR@xK9>-Chp=g4$kDSz6|db5}bn zi(Kyc%4X;a3w-wv&vlg&SkJ-w7p%>ox$R*c2J0wT^I*LkRyVBpt8w@P^!Q)qgJA;4 zALHx-EB+{0Dy&tou7vdtSRaP({E(ni zrq4}mdeG;lcg>i6*StE2O$=Hcw9$gujh1hMLHV2D9ic&6SpKG0)Q-^YE!pg#?GPn$ zgF&LayYt3z3}S8EBV9n; z*mZk15bNT1bO&)$k4JlgxVhJ3y+Pd4XJ=m!>-#<4AH=N*PYeKYTjG;RAZ{PHYY>PH z$xo$#xMT3sLqOa)^qFBGHV)r?35dH=YcBcGl-YswsryWa@TF$K)e$FPA#M^_P7y{y*p-&D2@$T?lmw-5t`qZT$PL6mw4a9rt&t!mj zf8_2_AU?>f%>waZ_MXuoKFWF42IAD1y<@#&r{x*3gWkEZ%+sD*Nl@hK`fp9;cO5q?4Q^{taN&TpL{)))U! z3}Qp+FQp*vn)mxW5Sz>XE(3ADdszjDZC74f31YkFdM^&!RzZpt<~i#coaffC#~Dps z3JVWXdIH{a9|Prm>}VZ4FR151)IZ4aJeZJLv+muaEavW&?IPNB=-!&;ck{IKwp-2M zaA_LG%-!KfVo>-Pyqpq*GqxpJF?Y8`4G+B})YQHl%7dfW;81h-&`^M225vS$u|=U> zNLxy9w0Q!Uw(uixa1ISo&`0|y`1c-^v|zFoRMtaL!iHlZA>oKn^%27qk!qd5%6pi5 zpuH_BEherDIFF=y!8XbQYP?8M+Ca4aOmrydwWV--P`D6AJK0rgOd2$^y#)eKhC~b| z6eSiMc2^yCkj$aA9TP#NBRrhx6!0SgvRbHt=%I5*&>9N0#YHK=mA~>X1K@Dj673z*}%PWOCx+k#K9U_C%+b@ifTdgQPEQ+aXpm{x$>tuU%Vo6bGI4yK~ z=v1h@H>%^$p7lXRO!N&U&x+CyirOR6ABrfEfY$llRNDb9IFFXr@S0j;C=3&Ln?8qK z9d#At2im}B3B0^Bs9vO&w3zF0=p_3?wICrWCKywxfDcZ91agbi4-72;Xb5AdGPDcO zG6cdN)&mlXGCUp#84(%^$R(Hz4IKf=)Nm@i^b$Z6WdwGP+Ouh`0OJD{sZVbwmBEjX zVeKQOp$jUbqQC<2OhGirlP9a7~n)13nQaDH4>W6 z^>bmED&rEMHa@I4I^M4cqnbk#gpS{Gq6%O+F?(4w_?o2F?1v{u6N`CJAjUuUm@fdo zNBA8;9DW!G{7@+{+k=xl4an$$WK0Jhdjxo#0TI;kI5UD8KP!Qaj)Fb05c+C1?t*+D zx?CL+g;6+sM?NIv2*Y0%v!8q01pPV=|kAf-IIAIJIZ( zO!q1wmgbZmZ@QPYP=YPt%=}hJv%8@*X42_uAhJH2T5GH zi$vvXBs^zHcq8E2FEpa62Z`!*67%y()XXEXU=@jl50F@d7mJ}0i$5fB)p-(2EN}@E z8gaFi#L|HzmSvN;CZELeQW7h!B600z64xIk;roijD*Q)Vp%H7WB-ZvPapO=D>qe2d zX%dN>9VFJfNZh)V#BFzwxP2>$4SPu3@gEW!@u%oQBQ~8NvH1*%`~D%ZB@8+|G~)h_ zBp&FCqD=uY*rsp<<(xPsLfaG-lPF$AqU3H8rT8mnp>3{smc+c5NVvWtQT7js^5{0G z;!Yq@F`C4cb4XNPMZ$9(3GYoLsvaOwy_3ZJeI#n$B(dNGiG|;iSo9l-tMI4VL)$Eg zB(by$iDeEF*DNBj9DhwNw9Se;NL;&(#C3Z~Tz`zj%Fjvoej{;1XSm%E+Gf=t6037b zto4$(aXE>b*P@8YB(h?%?xS4x9ulLElgRmkgzaw<-bUiGM@dY2fyCsuN#va&k^eV|DXn1&3yqoDoy4?ZB&J_RV#XX0Ejwm1H_0rv zoa6*{3(1LWBgsh&IcnK4pKYQ1RQ5Q@>1-d#ne0`Pv)RWa?d&^}4)zzxLe>Iip_Uzs zS$mSDtOrRK!((*Ij&3%ZsSiOo7pImx3bGfZeWEZ?_`xE?_x_y-ow_C+|2GG zc`w^Z@_u%db_`81nNayN64 z+`|@=+{;#ze2#4-xt~2u@;_`3$ph?ll84ymB#*G)NxsCQI%55=ux=z@V}nQ@V>u*` zv)LryVlI;Ju*D?bWvfV@V0V%{$sQv49(#`D`|K5xAF%gHe#pKi`4Rh_r3)emPYb3Hkst-Y%a+!*p(!|WY?1Xis3gdEjylO+en^a&yf6@9U^&_y-o64 z_BqM#*iR(CXD0aiq-Do*tTo9WSsclqSu)9A*eH_c*(8#`G6%`uSOv-7*|jA9V4Fz( z$##+aiybBTH~Wy}KkQqQ7ua7U6;sR3ST8emBxy4BC22MdCmCe2k+hhmlMFVMl5A$G zAsJ#?NwT@=ZjvobPml~X9VXe*^a;sUrXNU#nOGdw7j9}xGQ!lCWNXuKkfCuK#*nyU z7KuAOBsN}4;_ll?-18`jP5Vh~K2GAk&q-`KPvZWNF6iumSQ1)d(P|M3i@)47 z7tSTZ`ur4xQVCzoBH&+5h4vWzBP#aDq3N`TEvPHz#4tlr%2=wmv(&j$auQR6FY+?Q4&<|X{ST-=$e{iG^ayPL^^m;RE zcMDt3`VYGrCd~HH;3B58x>4HQibbiKBCJqpcN-R^1&RESQSTs^oL{{Q#s!hKR zO6&XC1FT;XHCAqAB>of1I~X>W3bC;~0gX*k8=FM`sNHEvDglMt(a0eSRP@_{4(o^p)+wJh$RsKDxG$)N10_HbqUO` zk3l*C+8nhL5{tmvY8iMdI0ce-F&324c?)JB_ax+!J3lURPe5)^=Y5omvpf#Dq)xk8 zEwfxgj-O%_)YDu%!@6KSmry->Ac4WOfeJ5mqVLxG*nY;g^n;V{uGp8)vyiC&0D!|3 z8uNnGm~LV5)QIk;{;ANmsV}kvj6IBsJ(MFN)f2Al+4gIpO+8KEW(TF3zr@&6lxp!Z zW4qC!XX{rOtHo3=1=?YLih;+St$X2rHK0tt)Rw(ohaHG#2DR*M{tj||f+9hoZ_rdw z?_=o*={~{TVcRPioCNiRko$Fx>u0(tE*r_|bqKbW0f=^K-jB^X3)%i`)-ND>m8nIR zbTbsKfUKe<48mdAuWPH`%|>AgmxK#Y#MqOT-XW1d5|20d5sbICJH<;GHC~>9cta`P zmK1NZT#Pr2;tlu5+f2mUyHz0CkX}#)MQi8L+WpZ|5k+g4qBUW(5&mcgyunxxQ$*k9 zg=Qc*@>RwTBFTy7o>8wcc9=S$&FhRE!4xpr;-N&)i$2EKG1TiDx&-rWLE}x#!$o#~ z5G@C?e3J)qgIYZfTQ>C|JH!&KEV(bW2c3L|RAm z9}=mgb@~$%aNe#AkF^91X$IF-6he?P+#1YUL_xkw%k~*9Izl2RyxB<0=o77y(z>G8 zR)dtZZoS~Ts@33-w0KGkiAd{CiJ|S&dQf6mTv|^`4DXfJixQV4ruC*o>d>@4l(;lK ztuH0gbJF@zB4c7&e@cv;mX^>TtH_*_mY9r*?2@!3sy(M7Z6GCV-n2o(uxLz8T1o~c z#w|@7g0~4;jlU*sm<xskiE{+N3K zQBv{hH+x*<*#IXtqs^bV{WRM&uYJ z2M1xe{1Km=F(gp2IU)zGS``NCH3}IBizZVr-Wn{Ppqmiv-dm`_l=Fr5M?Ty^*&v9?#sv`e`&a$f` z-=x07jWTY2)Bsc*TeBeYIo|hJ*%)Q)!bOomQor$WusCv_tdxCK)Fi3~H;QdZYOWpb*>2=udcf6oAba{UxK`;Mp6Zzh&rv z8)UDFt|oH|??b?$|6!YoykxJAUi=5D1`3C-2@1+y8+~c%N25PAk4B98ikm$a{iRu}w==p&5QT*;qA(QO)zOh&H5nOn7k^LxX~e=sNU+dr3KDrZ+E&s`yFcv&0V-rvfs51k#Z-j z!=&6v>m~kN3|D{8y2%eI+3#CNNVyNJqov%3R=bq@$a*@fGDJA=iHQf&>*jo+JqxFzKC&>B9`jsD2vVXRomU6#XuaR=+t@8sp+pks|^Jlp)+i%u94JHbHw~o^k zD7HVW6SY|OpVnKnKL4_I;D=c(P_qBFp7CoawtuW?{3uI>whPuQDVwJ->%xF?9%I&P zrL2iruL@-I&CGf!KY)|3{2*o>CFS!h%=&WR3?MHUvSdv=VSY1a?Hy>1k{`n0qRsD} zvyk7MSwkd{cC!2y%o-(uyz)?H9jpOkXyE3zWL9&aM9FW(to`MD7_)W{?@&Qb0$^i)7Xm|6o`0qL_7vlx@ST!=!99vtHuQ^4TM=EwgU& zV@h5-W*s4A+cWEEDI3GAb}1XntoKRT4$S(1lMUyW*sSI zdot@-Dcg%#^QCNWW}PZ!`!MTtDchG>H%Qrj%zDV56-4xB*021S0uQ;Zr={!wX1zwr zCNk^%KsG-K+QIyJ?l6BKgT1;gC`tw~*sbf9DEY|@_G=B8m%^;KXt4ajOx?4wM9CY% ztY`c>O8!u$?%PzHKa8n6H&-7HJ9j`m?-JO#rEDtf+<|QVrT(3pjPpnMcW%n(rNQ1z z>U?ib$GurH&%nLepBJqkiF>ma9EE$c7R$^Yhs1am)^qAO zW-(1!47tl#=h!Leb|MSwJ!LH*lUe5uQ}7&i5)11$WiudCSeN!w9)d(Z3+pj8kHLG1 z&p>V(>k>011L~N{!g@_P3djuBC3Xs4Jxpg|eWtt*$SinjHwCXpX0ovUQ@#b{a@IA5 zLY&RQlBZk%WDe^ZOCj1>*x)IxyC}+B*0lpg=U`z&r*s3Pkag`y(G{?;;ZsroDPmna zQ*=%imNI2DASJA890gX)!iG$l4#*X(YZnTvl!XnOG7k_J>)Mq9o5#W~A%e%~EMQ@_DSrZTHS6Atbe6ENyQZ{)Cnw8T&lZF%Wnr7AUBlX1 zu456sLZ>fhSlTN>nZAPI|K;fw9ioulwJhx5jO$tN9DK5qx03aqK!+}TvJ-x3&>&(>wPUc zjiG|PwXC;K%HGI&7Y5F%DMgp7KcJT!tR#OO>%Ej8@o{29rP{|#r%ge} z%wL!>a}T_DOs^edW@*Uokf2S?A8Q_Tp!qA!5n0*li}0Xp;aywBY}!#{ZuK}bhaY81 zUNd~_=YPxp82BFp|6|~P4E&FQ|1r=M4CK$PD)&~!6}TMb#c}WbaAK)sTTToLoz~!nggRi*US2zp2D(0yy7@+>I z)_>t*ZdIwP(C&4VmU|VCw-7!JOHw>#4ws969p+K0$~~pU<<7!5)Uew#CQZtiZl7$M zk!8=DJ~7K~SL`#!PxcN1yQG2k(YX^wX5`xK<1r_@$x=$o3rh=}9wYT3qC6{5p$i(W zcuE&K?Ouh__Ph$E%rVbtS7S;=c!c6zP~lYUwhE=x>#THm-IaE4rK8mANiA@fd%SU~ zHnt$H&j_W$TUl6IR0Lj8I4hmy1yBX~$n*n>`dOUaSy}0>R0^F1F4XB&UgdIuhu(@v zfE&BLzzy99O~iDy!&L?0*yk6N@a9V;VufvPYky4HtyTb(xqn{#|qZk;n zO|Vxw9ffwNCXjKKL+7X^a~&RR@dW$)N@%lPlU40_p=vm{swkj{8MVOUsFqyJbrj62 zst9OODXEq@D(ArnrFwZBm@%JxPq!m;K@~0 zRvzeLPl>w{imJVixh|(_A;udgjWi%y#qM$!%%i$7fez&g1}9S$Zs?|JC<0~*)b#w) zLZ`jZ;dOAr0=c3}Cv?8Y?ke?wiJGIj>=ll}6vbW!J`@;jRUT&{vMVtA#&R`m3uJegaahv0AONsMzT(P;l#kaH}v4TaQ98 z<*UlM3XW2xh=v*I10T>3r*j@|y_EAhT`r~4IUja!rNHHMRKo706gl0{V!mTla8cy0 zaF#332_!3>Ww8H&UAd#osd&pOaDbtNJjKCxC_$lMhIo`3O8IJDDA>g4(UjU#Ex^Lk zYUsr)tK43wuuO6BJWeffH0`(q0y9gIQs}ONp{hW-6gMu~xM1q6^tubVfTp?J4xCN_ za~0Cu6({Wc;qgMD6X-V%3xB{|UHvLi08(4vFL4F-u0Rti9YDW_wgoV^yP->A@WW(E zY3N3hj=8uu!VFbY>Q!iC&%z{hwzIri@htFofuFe^=tY{_3fyHCj!JtG&Rth}XiuIo z$N}XFY!nx5XltJ_2uQ7|feE*o_*IBgm*^0T9^H2gGR4iaX5cRs}p()OSkmKVV64++@jFeJOX?c-T zA)(B5!%!ly+)<7o2tJH}5k7Vx;V5u>iWCPL0vkAO;C5hj|Ch^7);!KQ!$gLt9#vLuM6u(S*#bI_&+w^&ul zf(kd-mqKK7A--Zq8EUv(eC7lRM_Y&x1BX_E0FOdfs0a-t5!NE59ER-N1vK&Em+y`u zI8i{f#tTEwQ3=jq&xa#fA;OS^$p9qj3s*3WxaPW$2TXwUim<$uRprnw8n)0C zF6;{006<;AW567C1=I;$fi?54fZE|(f9eVf1mdHvfZCxeFcJrCYH*8HQCGNlS3o?} zW{}hsB(W=apcp%J1#RcT7U@I5HJ}?@fo{O0=mwtT-GE05(G8S@ZU9Msgd5Qf(0b|y zXu1fAx`C#}a_>;sRlo>^IKi+(Hfb=2Ny7A5?j1CcBP0o-(+DUb=|6AeXCn40;Zv1% zLdYFL!Y?Mtp+CX(xJ%VH)nVQ}+c@BFp_G;F{jKHY{#c5n24mXaK+O2tgPDK_)rO+=8~JmAQ2b`lEI0=i z4df{zrVLKDX=v~S516OX9Z$hj?uK(&7hO!aJaF=kc{syw!G(vj9aoO1m8no_OT7d+?wvR6P|?L{8{R1g({_c_e7#@Dz~b+u}0HK-~@( zrQlFfLNo8642Z)a7Bh>j8N>O=tKfewX@xoI33%>bsRbu*OqXB z3BOU|thCR?`NTG9{A9b-uB?e;p>7pHgqSU-BW`l-Y#2)hf0EeN^*#JchPhzNk=z1;;}Vkb65i<0E_VEmdUL38Yr zQ}7R3lL*~vhxygdfbO-eCboWY|6PlrC;WWZi;lt>WQRVbaQ@p^z_+d3>nw&{NU9~p zZZC1TitKQyQ0gtMcG_H7SwO=uIPb>`!qOt!G*4wxQmF^0YcjUw*|V}zh~lit1MOMK zcu|fiV7HDdac{uyDHV2jO+zYTlXJlnnPs+1HC`l=_ z-v@3g*nokoq!i7q1B`m$U_8Ngm)RW!aH9i47NZ!i%(5Un;a<1rfF64(tmSavf{T+n zwn`D-E9!!COAAXY;l2;tFmkx+78!?uodE86%QNA+7uy@?nE;}WgCP37?BpRS_ykrbri`%kIw3u&=S^)FTR1V7THS0Tdh4LJ zeJEt&5rO4#Sc5Q8zx|rJP)Sjqh1cwHG;{$Y#@L@>tx!Pl_$v&M=uBT_k!m9wGwW;$ zw^#>|T6A^oqJ&3ZUv>7#fTUB9C@Z{AJd9c2&1 zKHawW(|2T>mxevCWHN%LoYS9Xx#xfR>XzB@mnHsDIUPaE!m=^SmL*@--rw@r*khe% zBc=p@a^37rpKki(sn_0~_{^TH8}C8TGPU!jr@N+(9JQ|M?~ht<{)kk~G1ITv5`T2a z!voHoFTCO8P2Z8`z>ikF_fvkXtHmwre}8P0?==LQSx3#v-mtLk-J5Q@?)>n}x|tCS z&Kcl(&sX)vj`)y!TYg||gFo1KTAQdS=-rxFH-(oJAc+UH9v01cM{bZGCyek7uXG-Bh`D&(HTd2rS$6Yj01%o$lL9p4rooNppxMKM|DKGZDdDC;xu0=3p>-F~0u7s_d4(-_g{*KR{x`3c1 zcE_1b@7BDL-&Q&NQk#fcqR#wsm)}-za29Q>?y(cT5-`D=$e=l^_no#p$KsXGnhR&u z6n=s`vSP{qAbQ+SKgP~@DD#8I_G}z=9>Hee19qKw?wjtzPHr7{;zUXuF&{GH>v69C zjO`TLt>oKHf*Z-+?J_(f6aP#`sD5K<3!C(h~r{@n6Y5< z+e<mbU{kkN77J`6%>`f|Y3`J2v7`nuOGL2w7FHB&KDNY^${;-R11uF|>&0Um zV~N5TER#)xA#r#~$PsfbTL%eKJX1r?Fbug@-H?w!$Rf0^V<5B;ues|U3_TcPAEk+X z9Vo0bcP$d-NJA@g(KVLHkW=*>EUl3nOB8U^I@QuXxCCHm>r+dhtKds$fO`g;7p}8( z3;7Z~n&#;{>hZ4~S%X7mRxGT0QIU(fX!_tiR#b zx9VA+M(Yg?S%1#0@6xmW1g$qUWc?wx-lAvy9$G)xko7y<`e8lmH_>`WL)Ncz>&Nx1 zUqS0#4Ot)I*1Pqr52E$64Ozdyt@r6!KabY`X~=pHw?3q2{R~?^+Ra=ZbQ}&aO?N=tnWkXj~cSRhg*NDXT1@vzi7z%c5Zz}&w4#tpKZu` z9k)KGXT1ike`?6u$E|E*{WV(O){ym=-1<&E>(9{oZnEB?e;hl-t?$*d{s67- zZ^-%tx89~_{We-Z(vbBV-1;#+>(|iwiH59S;?_^=SszC0+J>xOd{S8^~ z<<k^sH|~>#rNKzL{Hpr)Pa5TK~|H^(t=ti=OpLwEnFj>lNJkFFosJ zXnmm}>%SM#+_F4KXKwjp5m;Xrgfo-D9(tZz-=Jsx6I!on$ohM3eUqN`S+ri?ko9S9 zy`jD}oKMF`nbPW?QU{wqSp?_Q?ci6$uYsf~i&>%}?S&I;IMYtGu;385=jI0i zY!w_*jn`6e*51lAIMRG#5nP6C3mO9nJOzi8B|P{HoWoOgN6uC?C@4X`O1#Geil1Ed4qV=}FyCu3^}y>f=nMEw8S|;DOx+lOmH{ZoscP2@9c&+*+}~ANURBe- zxV&n>TzIK)06uW=@VXmRtfNxDO7WOcb-^QpP#msexKr*eDf<^MZ#Me=XQK-6fT++} zlu$zNP>R zmtLiV9MK69U#bIvwx#eUp?If`)BzAB(Ai*K2!aecdQkvS z=J1vvj*>F?MApMi;rUX3Sj)LxAtbRPMDfWm!Xiu0?EP6t6js55RCo%5mi)mmru+|P z?Osx*CaVu>0l_5dIpA%eLPsSe>pZ=Jy!5aS72#PT2nfPiQ{b%d;vHWl7*_Z&hn^2$ z9&i8RZ*E~4ejCz%j~$Y_%VxMk6r}t>H@~zBW`*uX)`2Z}-&twt$M%a-}n!c!T`YZLzuqkTVlY^f3WW542efd=n zhIqQw1M#U6eBkBB=@|^KJP>B;OB@H`iDXAKZD@+Q)$87 z6-Td%cjqv1jXzMK;&hiA@~98LvFpdnAdL&+7?rAjBZ9C%GiWbX@g0QnzLeuRAaL}9 z&+AnEPb6Hf7yl0dE~wuLR#m^3gku|3JXOLwOZXfKm;GNY;j*85C0y1&WPpbt0kCNK z>0p4TNVx2Of`rRF&lR|~e-}vlGM}p?T;^f7gv<3FlW@7-UnN}DPk?c*wpYey8sIeo zM|XI%Qv2&JNneh?R>EcfpGmkp9)6c_xgX)5f6#(L<{?qSW&gPnF8isHa9RIW1N?-9 z%Y2?Tz)j+ijK#A5juI~Wf&WlJi*`JWmh@#l3ng6kKTqJ=epz9lzr_GQB;j(sZ%TL^ zM6CAvUlK0&W2Bhkkq4RoZW1o{<7f$&+qFW%<#^T!9NUX$9cnxqB>gxE-!I{EoF^q* zj`M2?m*Wh>lSNpx{d>6qUL)ahzi*UqxxLRD;3p(p_H#kPWk0RNfkw*@{E~n_{y0df zyj?2cGCxx!T;``(!exF|Nw^%(YX){Xc7fzb)aipT8tr_R~pRifH4UZGg|0aM}Mx377rvHNfAI zaM{n_5-$6(ic3CiocOC1dOYKQeo=AR|6LL;`+v>=e^{Ez~7T_*$->2&s$dme69h$Si)uh_z!w;(YE&m1N?mnm;IO` z_5E}+zzYoUt0Y|Zf3JkgeB%H8!9^SY2NEv(G1Kd1_4VToaQq)qdj6M4xa|Kv376x1 z(Ez94rWNtaeuBgWr?y?)4REIcezk>vM;lb-*h2KZ+ZF8gVLjf6!TXI}$+o&kQXgv?ag6uxR6if5D=QyA1H_Bpj1!Jot~HaMAjI*#Q4S!eu`#@g!cyPk#fv z%mBY$!e#%DNVv@BD+c(N5-$5`g%@=?aV8kx7>jwB4377pu z#8H^_#(9zfex(7vO2TFTk4d;3=P?8PYYCVA;7>u~qTL?{8sL=%_-YB4{qK};InFl> z@NXns_7mAvKh8l0xW@orBjK|D$0b~j^SA+iR>EaJQQh?8Og6y12KZVDm;FB>;c}dB z8sOhbxa_A*yndW126&YLexroT{-2a^InK8X@b4sC_7mM*KhD7hc(nn(PQqpXyChtW z^KAqCdkL5QwC$lE=MV#Yz5#xdgvKR4Dg>NT=vtUmwudS2Kdzm_#F~1`+rWt z2KWvMm*adx!e#$I8sIGx^y3^P;j*8p2Kem;_~Q~T$N9E|%l^+B;1L7#;~XO4vY(j- z_(lW#DG8V3JSpL_|33`yHi`OiULxVLAG-m*$pEjFa5>HoC0zFZj{)93Nk7gs377p8 z7~oqB@aH64j`I@-KOO`8Ndx><377r}RHg%YLpl!1o#8Cna3= z|F?w8{;k9G;~XmCvLCyI%YLpg!2e@_e<0zq{|gc>`|mznKhB8;c$I|9{x?cE-a=FF z6W%BAwt%&h@I40lA4+(vq_1288CZf~mGKkm+%hYOO11#gvV8M7Su&Q_`fg?Y065dQo;dlw9;&%yL%l`wCzRdp)3CEaJKW!vG@^}`vXX^1L zE}QD{mM!_mTcoQ0nG%kdGAdpo;j;b$3CCNQs{ST{WBqukq2g-0v^+d5^pQ`QhY*3c z02waQDAe(TIHpy-Xe@*Uag{5~tNb7y1*@trZX1w(1mG=U#YJ4k5grD46<6)hPb4ae zMJ-qHjsi!YxTv_DXZ^9M_!@!Zn8!uMZ{k`1cMK}7jb$_zDgFjlfrG@LvVKT7xq@K)|w&3qQ}T z1ioH_w-NXT4ct#d z3Vg2yzenKvHTWX}KcK;P3H*o#-zV@_H25KbAJgEk3H&V${*J&;Xz))3{(%PnTHqgR z@bd!yT!UN895}7P+X(!u29Fc?ISt-N;6H2dM1lXN!7mZ`UmARrz~SR8TGaVxoWO%L z_!NPMXz;lLZ>hn{1RkNm7YV$L2KNcPy#~Kc;2kyi-2#u(;9CS9ufewqT%C8-_C6(W z{7wfK72hN9L=ApG;K>^NRe=xH;BN_B{T@X1|GvP}HTs_lJX3?85qORU|3Ton8eIJj zVWI|a9>m+3r@#pupE_@a+QMpury( z_+1+OX@PIn;Li#CehvPjz_)4emju3DgC7_8P7SVpPqIsce=PKOYw#}xzE^{PEAagq z{Jg*qXz)J;enf+-->bZ$!JFg787#*%c(}md(%|g`enNv=1^$5s?=J9g1pNryluB!M)LCIJ#=62chfAOR8x5+)f0 zL&!joOlE+9h>SuTP*hY<6ckicR8&+%R1g&PqL=H4iZd!G0@nd?V4Mp zz3=+IwQjA|^*`r#_L)yrovN;34D%lZ&tra8@M7k_30}^ePGq5-^ma6txs#7$nlE6k zpD)u~KcCZ3*k8-`k%C{(T+erOIyW)*3j5ob#|gfLd4k~Em?sMUDD(D$?_}Ot@MoEK z75oL}Jp_N5d79w=WUl9By1wr)PZ#z_m}dxnlzFD$rsd&%8wNnanE$FJWFScqQ{%!RIkwAoxP&iv(ZJe3{^@ znXeT5Cg!UIzm54C!8bBrEBHOk*9pFj`3AusXTC}BXP9ph{1xU~1^*}WZGykce7oQu zFyA5gC(L&W{w4F>f}di(NAT~N?-%?m^OptxgZV+houSq^KO}fK^S1<#W`0=k=FE=> z-iG-nf_G+qRPescj|o1M`3b?tF+VN%6y`q&K7;vL!Dli5P4Fw2>sJ8i{Zin0Kb}`= zzKHGJg0EoSQ1I)RM+$xmbA8^U)4!9sSJ>anJWlY3nCtT-oz4#CiNbz2^Y()8XWm)x zgUt1Ll}`Un<~@Y{`^?h>|CD)u!H+Rd7yRGMGXy`&JX3IZ4G%5Zg1edL2(F*294~k* z+vEEXaMAVkF`p`U67%VTCo?Y)ya)4Q!TT~V5j>rFh2X=PR|`IhxqiM|mwznt1;Tz3 z^F@MBW4=uAeC8_!znu9h!7G@r5qvK5wSq5XzE1F^%r^*rE%Qx+-^_fA;I}c~D)=Vm z+XTOd`F6n{V7^1}?aX%y{v`9=f&e~0-Y!H+P1OYkq5 z9~S%@=0^noH}g*f|B3lg!T(@>OmJtIwY{AXJdF8i!6TUeAb1nzX9bUA{+r-!nA0C7 zw(Y$Wb0?o~>FuaHbGP9AnKu-C2y=a1L8p_&JVw}$X6_aI66SG&U&cH^@EOb#1)s^h zz2KG1I}3glbNzk>U4B3F9>RVtbA6pd+izgrU)bNxJYDennP&+881qcQcQM!Ri_rPL zz&uCTzruXH;QwSkNpSsq_*B6^VEgHUf5yB(@MFyNbsAmHZ<&_}`|p`o2!57%wcvj+ zuNB;d8NsqZ@Nnjf1dn3AOz>vRR|?*e`6|Jan6DAM6Z5r#cV)g#@Se;!2;PtRCcy_Y z-y--h=352NX1-1Eam=?1uAk@MA$T6!?-YC{^WB19!F-S4bC~ZJd;#;91z*Dapx}Py zhXlW#`CEdoWqw%j+n65_d=v9e1iz2@QNbT(eoXKunV%5+Ip(JYKfwG4!Cz;7R`9o& z|0ekR%;_cu*gnvU|L14`~>qof}dr+UvL-R`~}O) zf=4kwD0n>cLxOi^{+8fm@^v-M^?O*{g1^Z24F!Lld8FWPGmjDcFmrt!TIc&Q z^EhGu6?1)kTHF83JW<%2coP#W?FDx;?<{y@=3NE%GVdX{k9nHlNzD5T-idj-;N6&K z2;QH0rr<-FXA3@-d5++hFxS`Jb-PVrK1tZ?_uxzwd>PwM7ko4G0>NKkUM%>h%u57! z@y%`(f_s=(3m(tBR`6Wr3k2WCe39V)V7^T7H<+&!`~&8z1pkcr8o`e-Un}^x%-0G2 zZ{`~WPmZ+4^CrQsXTC-7UCg%%{tfeOg8#^TyWk`F#={+g=P}NopAh_M z=BEWe&in_#zhiz@@Sm9fCit(+>E+Qdl=Ob!9CQ8uiRSu!KyJPct@%j2nG}|Wf)_H6 z6#Po&F@j&k+$;F4%;N;#!aPCnSD7aY{weeJg8$B3|8Jw~b&h#gVXtDW`t}gq!8}dy z5a#^_4`ZG#csTP6!5cBp6g+}?w&0DK=Lp`E`FO$OnDb>y18*1LsTft5cL&7z5KG)^ zH3xD2i-|~r;196Bz2GmizpLP<*qgOBTX0F zi30CU!S(%-!vv4v`i~Vng}Lreoo^-c1;YL&<~Inwf%(0H>-)5x5quZh z9}-;OFZG4sI^SOef1T5bVAbW<_c8>uJ32k_m%5(^nFYD!akG-X|3Q*n6DPx z$NX-=6PZ6Hcqiue`@wL0_G132u-E*I-~-t{oK@Fr82b|h*YC^L@6*=ym$BUlVXxE4 z6}+7N)q>AuzhCf0?AP~G>wH%*fBaAE?e|e&`>bZW4~6}D_J1e%ee4gl{jY@SJi-~Rt2)+?I%d&0gY z`%en4-%IYWU3bNF`m>!^aD6{^SLQezxrpF0j7xZ4hTOh?zRAYz`}yP+aXxRWg!twy zJ38AM$pwWoYG&r<&6rVHILAn?F08GF@2lk3=2>4XPp;0xubt%LC*S3V$}>`j&e7o% z13s8io}X7;m}`B71V4Mi(J8p7vhc#7S*&cTQJr44-u=EyUJ`aziiV&Md6REiWpnDy-JsR#`T)WL8ym zmG(pXv){^y`W8NM!_mMFzE?E6u(C^e1%8#L3X(1;s>&eAV;~4f-W|bA;mx8Ra*OWnR13oK_nI+{j@=64x zkN#BW<cS70RS!D&eV+*TlO2Nw+ zSCm&kqdcG#ox;$ax!FY9J~U zAT>Fac3c1J)wi&}9V|@(!FuXBwmz@I<1b$lu?%@V{w~X*^TYU9M_qoc zj{>9e+YctdD*D3;77Vv9Iz7#{frHW#@gx6fS)^g&u;~0{`9Fs+G%-c|!~q!V{AX0r zugi^YT>h;71zdl9j*9u?96`s|+7>d${6j?k>74&75N2Ow{qgzD`s$x~$clBEBkTNS z{eOo}#r#F~MkJq@?BV!YWd5BY^ZMc+`VZsJMQ@tT>eiwSy^NGaegYxpT_Oi)iMjLo7Y&*1io&h19bjc@w`I2 zwGC=tKB3p`r^BS}%0FrUt-o6_)^P+ZKkhSS`TuPHQE`_Q-@gCA>mhnLX|0CzF$)Kj z!@eBi^6UI`nDm!JWJ*iKPd{hH(EE8Te+&5O_?qMO0nA^v|6$IbUqfpp25Yp%MQd~3 z|5!A*{*mJciRIGqG{4S@Um=QboaOjAB7!czj*riE);Inpas6xA5bGZgKOJA!f54xV zKeNt?_&lHga58~)(jutj%S7R5YJF&^&AW%*OmQWNY;SDVLjTkBpu zdQeFBu02z`k!yN`tA}O}GgYue${2V-`LGlfcy!<;oirW#QW-hN&_k<9`@r>g{t4r9 zGX1}1*10fRL0$V`bj|$jGyR7%m+p68I&I$)FmgeCan^&Qr9J%8;Fk%%N$@L%pMtR$ zq9!;)8aX$s2^--9wDtMNTjAp&+!W#Dw}r#$d=p5oNoO_A**RI|7^<;KN{V(lk}6{( zV_PIORukG(#a73zQt)yTvyXB>zdBI-3f?;7bQ^uc`-OYqzXcaLUFZyf@V0PP-xmXk zxRFqdus#O68YHX6Euuowz4M!uwRN<`bOu3^;V#2$jh-w>so{k-SV8FD6j%&q?i-3OgX(MDSuqj*O z!7AQvN;m-;(r6W^9*m^cO%#@>O+Uy6UXc@Pt6Gwxpth}`Y`vjw?XV@n!v})1JvIS) ztVZY%4I$Vx9h+LE1(QxV=wJ+Rg#zX8!exaXv1*VErKJASAca97N>?f{*%(GDPBT~tINplDWG{Y7ddjdz)nb*Cbc|NOBc^@z&{F z7(ueACCTCfk|hgCmaZmQhPSghoy#92x#oG26>pNP{EEc?E6KI3VP@cT*7YJ;HJaqQ z1tizkk=%F-O8B}5NY+0`a@!juw|_=*$9E)mhQMy#8NRVO$)=7ZcjGNb&hX76NVZHN zx#x0{`{t8uy_V$u+ejXGfMnY)l80U(dH7Y5N8TWL^nH@YJ|lVjYmyz`kv#be$y0bI zj5GY{1|++hqeQpwj?#4YQj!w9dBNGVltw|*@*l`o5gLi`iY6qL9Z9M(Nvfxj)Krno zSxqwcZj#!aB=ZiF%>Rz$%7%?Gu>~DTt{OtJa4gByvq=_RO|tkVk|lSOEPaw>*{dYW zza?1_33C8vQ-3l^-EflCg(TNilU#o_$(n0PZdgxp<5rTjkCWVdfaI1>NNznzvQELS z!`XCw7|HFiBpc&NHgzSrdnn1~2_#$cN$#lxaka=$%Snf-^`xWK{iHeSQPQyrN2jaB z1obreC#nOalhxa#m#WW6r>Qffxe7mb<7$zoqDTuAPQP6(W~yY;S*ky2i5fv#uBMS* zp=wC0)k@O2>K4*kwS{z^dX98~dWZCCb)0mu`iXQIe32gWxkg2k`c*5^RVsz_IyHcF zjT%XMqnb>5vzke|PF+cQo4S^CgIZ5|r`k%oNj*h+mpVwgMSV$nulkjAtBQoVjjP22 zDv@-X>OuOj8bZ2VjU#%(%gRUks_IR8Pz@)2T}>oCq)JHNP>V_5Qfo-xQJYBLRgaJ!R?m^X zr(Pp{U*TtCTrECOr%8{fbEF?C4;)-vEk05{(vMYV(oa-B(ofZB($7>r>E~)L=}~nJ z=@;r|(l6Ehq+h9LNsp<6q{r0Ui5jG9CGlUh!CR;?xdS=~?ii`qx}t2#{joBEdYccq$Ret)ROq~}xusbO{{ zRc1P=X^tj!n3s_{%~DdAc@=4hxtcW8+(7C!w~>aKdr2FZ?~sO@-;g#mU2v}DYSGAS zLh3P-NF&U?q><)m(#Gaxpw5;Vv?pviw2XYiR*($eM3T9KB;>pOK9Fm1KMj%rTs;C$u5Cq#Mbk2_OyV?Tl*Ta&?Vr7Zq-_i@FPr%|-(S2OUFA zT%lH~cG2PRdmknR;byyNERWH^w1WNWTGcKl+|e$Ef}QPRD7c{`nPS(eRjOSROt6t_ zHM?LI+Yydd^CHp=kAk#9RGSEw%k60dZnsK~2n}_6nt?ma;f?gP21f(ephyos-qy%9 zys<0NH6$t=q!SGR0;rSRo8p6qu<2E8ZE_ZZfNV6IUh?xf~ zBcid>-DDxSnl6P^L{x~1jdp#iZV4L1xSX*~Twf~8!-^Bz)b*{xBrR`rtZNP>_zy&f zU}bnQZ7)81)dU-)38o$GbuIV~G$v>k(ah&SqJ#87whB-a2F6K>JgHOP#i$8I9pg*s!~ zyEdEHW7LyYcgD5o;CjT2p@9+G(X}ZUZp3zSJ!p9YaSUH)*ZXE{7uQFWe#}uw%xHqo zp|p%ocKu*lg^N#d84k-C+tuZAU~_RRr@C%;1p6VnTPWomlMaVmYlUOXD&8<)Mw6ki zPG~h6*4)Fe_m^uPiMr?1_+YV}fTp6)xuEP#$ zbzB+E`t)_L8-m#fS!_SoXO1?=Y|;9=zH~^t0j{>rK)tM%jUDLfU@?47!Rja4g1pVZ z-=rn1A_l=YOm}s$%&3_V8?l33sZOekh#Gs5tEUxEjA@qQ%1RR>dn>`;1iw1k6qAV^ z;`-dyP4OA7U$}!}hq~ShcC?j(=P`(q*}&`B1v)$|DPmZN^1KA@kqw%8UI!f!)-EE; zWqRHR_oxQVJy_lBunwND!9Th|3)4(sgs1^i@=Oow>sbQ+{6_Iqo*7|1JvV~Cuu%e)r68=g z=Wg)NY}AU%Q54q4^BDMNHEK=eC=TmK?Qpp#h3YlilS*3R=|)=W=}z@4^Yo|kmU{-0 zR(J-HUg1e6yGl*bDGN{-%U#Y2 zY0R+Vs5O*(W<}Hu(D2Qg^$(x_XXLdTeu zQS0}hWAd7)+h0bZ_$NB1Zi?DSSxnm+wTbptmu-)_i?*QLol$pFUeotPZGH!h zXY4ncYyd}x>zZKGP>0+Uwl3Ii%4o71!aJ^u=|q9Ig{^P$8b;XA2PoK{ob9FqY39#aGZcVq95>{2%;7bdM{QnNe~)?o3Y_V!`N-!an>O! z5J0<7-kCh)EwqK=VWN}K`Qb;ryDp%y+r5h|Nc#wC1j|15QE#a&gcEt}aqsgMrGpQf z?(kNNlwz0xrd9O{T-TDMfqP+t@m;Q46(r#oN>oV>w^-PGx88 zKfIR(lQ3crdZ*jGEnf4MIrtd;y4S5J|3Lp4vH$c&2u9=Ah(6@KlbV|*UeW*ZZVLFU z)VjRkeE}1Te$)FV^%|~>E^jqULBq~(zvF$@>UC?}b$<7-*J<8YrtQb}qjx=jWfx!{f`NNNzo94~1bBv*RK*YzU>io&4&AZu{2d8nL#clTB ztnc%~UvHc5OJ5(G?<-%wfG@@}KjzyQKt}X&-$0x1Yu|92?;BsP z&3D3gx6Svh?;e})q;G4$$Jw0n%?P3jxGZ2a!Kz1}_7w&>HB$7yeZ>J}M1SX-9rShn z{)gtDJFsP_d19WXgwP-TqpvJr7xORT=#M_*TNUK!GNOO-r3a7^eb$#{^Zo3*-sbzo zcahEat8b*u_nU8m&G)-+qRsb*Z?esI&bKb;OE#46rGVFJon)naUj>+vY%1R|o7bUy zOKe`J^34r;Q(VfIr2>8{!ITi?8!sS-geu=C5n`mcl`lua=Xl*Y<8z&h=*5{pv4 zAvS+`9gwzZj4yvbK4+oaw%Tri?%^4^JdD| zOTZW!#wpE}&k+nUQd%fq7rQ@B`I3Tu+EW@SKDZ=ggEa7yTPoj4Tm9peFEwamBqu0e z&%n?(l3OWXZ=1KZ^7XNK+bCbZfY;iWBqu80#sD*tlaz0u&D&P_hTFXDlrPujZLfTH z+q@l=?;e}Cqw;MHcsaLD$~Pm(sI8JaD_>!dS+(w>e8mA~z`q^7**0&A@|6X=*7ly< zRryv08M=(*ROL$#FeAAeY!o(ccjdd@=Ix<;7umc$m2afY+e`T-*u1@!Z=%hcrhJoa z-ag8=&gSh48+X9V4bcxa?f^5A`@_a<^A3QG+vXhz8+Xu~G6*;BfZs|mB^@{J^C5=} z#*O>@5F_Ox+_(iy9s(P;U?~}ajT=LZVYEHg3y26E^Okd2$wP z+&1qB*tmnL)*SG2?Q?KzmT(Mi%@U5q zt@(V&Tk|;Fngbz5%6QzGZT<HD7{Ta}ZkNdLnGi0cNC3!mT;zPoAveJJIx? z=4gRgn2|h1#ivjJt?1eT&gG2cOI7^p;A|4-3`X))6~E?uW=+DAr>Xdx&krz?FH`aB z&Sz|#tK!qK(Bk5Tkvv_+Z=e9|1#6a+oTuV9p3gXy87hAB`2j|9zKXw>W}-9$rg@H4 znF1AG5V$U4J9|hjRPm<*xmj0cQi@c3lA>e+Ax6qf72jV4{8r&oidB3A8^q!mDYI03 zhYO-#uHq-!EHNP?Wj2&bo!>-oH?)c$5bO}DA=M$J6e?_4Tlti!_*;Yd7+t5pMb9eL zDzqzJk*QQ+8@iSNsZnhj5UEySn^NbfZm#(%GBLdST!o>Dkw*7gwH94X+y>drQ(-Um zxKbr$;-%Q+1uAJY9rf^1Yz(f99#Y|F` zsiZ~LgyC|4R)03Z>&EmM9lQYpZxF$|P#i`hhic?78#&;zZGX5egYM&ifd4N4ZGr!` zz<*odzb)|J7WhwFV8RS|ys9Q4za+10X2KkJa0(vnNl5LH+%>tEky2b;g|XrIgH?kzZSzLQnBjRF+>}m|v|~Rb_rkN#V@A{CT+*;Xs)i?Za#M{GD1uQ@U0E=zs3^DEs40V|hRO;H5{OsL znqLU8G_N)np81+t2JV7cb6|Z%O?kCZSy*b6Sbns&qLeVnt1d4x3d(EXIW{A|IIq$G zFw4Ma^uSR%HjBWTvc}lJjeB)ul2I9%rheb)a3a2Kew*dA@L7b%R>kD1`R}PmKr3>}HJoNZ z_2|=?U;w2aaOCEqlhO}3EN0~Zf#jgfb4v>Is&wIl9$T2Mf)yC7h~?MSvH5Iqb=9m; z&J_z~0c^ALeO5WG&_JzhUVC_;hE_N?XfVA%ZLRP?S&D2GMt7is=n2#ZJ;4-o97;V9 zDc}nhB@hiN3HuDLpyi^5!94|y6w6^%$Z}(HmaCvJzodFzMPd80nvxQT+`(W6M8z!v zcAKE^m}d<>p9o{xTF(F(Ja+8h$+_dQrVPy;KRIV;ZZ0q!<@hi!?56^*+@g}aned2c z)@XQQG_N2RatV40@gYSWG9wSRHT2D`oCS#pua0L0>WDLHih_pd(E(L?b8Jb>fX69o zDuR|2N~WcGmGE$@RX)pY zO)1#Vp+|)SCbZ!|kqmhBG=DZ#3>_HDo{BYC^UI+t=0FfsKj5A_tDrC!AGfqxCFsN5 zU1ecaE(RLO4?PifhBW->CDNa z8o*(2W-!$`oSxP|c5^tLpz0jw=q!t1-wp=@SXV)DYtRkrD%|Dg8|1GkvrKR(8bvgg z$R64QDpFWD8`st3t1c`lfdeZ(qHE;C-m9{(veGCjgkxzDxXLRHcmf-xsJsGp`_Kub za3n6DQwZ_O@Y&t!(h3|!sNkn^-~l*LCvF*P#{ite4P^^y)E16>u!iTSD?wmj!Mc({N(w9~pIHQRgqf*bVQ@_8ffj{1a5zRwTou7H9dltE zVSccJbgQnYgn>j^!wLWv3B?M=;(#xI23qBpSIonMAe5#Ol7dw}6%5J?xtFFwX$oeQ zV#)GoRf}uPs(4;SImDj@C7S`|o0(UN79}OtCWLq|23usFNenmzZ z41yW+Xd@_tmmcI5!L$!)Z8aR*^C}@R=zZ9A6d(pCOwB;ao|A$uEtye*?SKx@YA#ka zyZ`{|h3x<{GH3>zm*w%gTM2aytT7auss!s^LR|xE>>3bgYgl8~l)$valJc40#;z%$ zt|-B-fSDGik8KTW=!z2T3R(f6uCU60KI{s}6S@L(wz>jxuPmZfJ{1JYM_mEALswu) z;30Wf)#4hnqOK^hx&q2Wbq1xbAjPh*3W{ZiuAub{SYz{{SQgL?CBbe$CwGJ8w7LPe zTJ8pNLN|a?I-Cr51Js_n0jkbLqHchuDlE;fn1@0eGt6<(3sS}kudJ}VplDoLfnJs} z?Jb8L2;kbH%2Ki_t|Tj#s){o7R?MiJjS7=c3T6xhX?6K*jEe7X0H3wP0S8Vr!M+?0 zPw)bW!pb~&34`T_Ju3U*_|3-~t?-5ce8)t!p{3NQo|9Wun2%D1nwtyLVw_XwR^fRB zn^sjo5G4Xr-l8ImZIsR?p;ca0KB={ySxO$rJFkRXP+ltz`YW* zr$FTM%2{uKQDG#)$thmY{M+TPPEH{*{&$Uwnm^W1wUMet!%+7cxJrr~Zsnx~?mse& z!Jf#G9yjqG7N)ys?L504j^!+1o{S3V4EA^jdlHs9t}%8R2T#o-*rg-nRFa?r{fye?EM|Jog_DBUFj&KWvltbd$=F zq1~1|xB0%^2+j4S_cVX9X@@7*4|6Q?+_P{TS!N#lY-su1FJId{EpbfOUn(b)<>UJr ztf?E=bM&QYL(d#WFN| zm;T~^6I}e=*s5voIvy@dcJ0{PfB)48%~O-(r+>Zi^SFnGEM1`1^k_wvpI$R<<7XQ` zed6`EbDr8Y^!hsq7TliJclz_2zgcr^Qu<@tpG!b!PFZttPOBG7?|ZjN@B9b*-h7HI zlgeLx=G5H_w*K?7(%xe)D}$#4ph#Pbo?Eq2u}OgYMsd`O-Uk z?(1~p#%G_o4xxE2dVlmAFTS#%)0DM8oSXI%)yO<_$J-qjlx&_~cKx`}b|3us7+SiP z+|Ybr@!HJKXZgMz7(TrD1cJL(T$I|o$!DG+*=G(u_QAT(5t?0FExk1%ukUYFNozX4 za^t3*WI4Zdgt2+ymrrkLcxdFI_-V)t*TndZPqyxV(U3JYzkk$t(?>+jW|Nm}PJE^J z11ZPP6kPk>4JXO6+edZpe?OslNrRi#{`|-g|LX`HEr(1Uwr+mYJ2u{M&6&Pq+Q49f zx@V@8yzj61*F%Z!yBZ#88M6(c*|O}Ko)i4f-SzzXJ;%)h3;GlM{fULHmwp*Aa@@N) zpG|w<=vah~e{^4XHvEZ%lW%5T88_sbpN=7PMxDOzAM3t5F)`tW%IkLha918e^RY`$ z-o88bt}DO2uID?+A)og|=x93aQST)gXI8HL<<3U2u4xqrL+)FVJG>GT*qHxlb#~Rd!lK*fwB7!`nPtMW570_eJKUBv zK5xOwXB-7nYYRSol;DITO-6nHUGpjTXB>HC*X={jAaq2e>^S`FH%WcoyKmIt!#xvd z)P+p>dQ`~^BYn-=bnN?a)s^NUv<#J-jI*5)7I+%Z(O88z$`V|uAq^Z+lgv=qB+n0z zg7DG=S3d}kt}i?q!b=id10X!6zVH|bpIzkY1K~}Mn#~~n|JhZpl$xqayn05L)4HVg zAU9o+OR=uRrOYbJFR6jk7S@#fPMuQbq#6`ahuJ+TwQ0R_d-do7FVm^1?J~2hCS}Gf znC$<(NeZ6wR*8I4;CN{rQUA7H|3|JF!d1Wmc)3%t0T+nSg~wuY>0(X53y$1ezAyl;z_~qe zyBm)4HTl(aq6r~*stH2*;9HffQ%oS3ML9;zt1d0yHF!C5J;eZmPPEH|$x=aHB{=`*7jkjC`;%ok9QK^XziG!HO&s;U zWe7I*KlvBaao$_lf~h$S{2%(l#c|%-RDfQ1vX1zziiAhzFr4Tl?q|{{-z>UnxKS6ONOEC|i5#bgm&De36Of3B-f# znGAkhvLJmr0$bj|y4Rm@y~l;=5WNrTw{zB_b3~5y(ER_jy{-|~0q2A|U%1zo7FkYR zS6NQ{6CM`~hvy^%>F8-4-UFoT2+qLBL5^k6b{H2IU@{BE|_>1lp1^8{ASA7p=` z;7_o>z2N)U-&yci+22+0ci6Az_&VPs%+rMZr|j=9_!sO?7yJbKGXy`w{!GFDV1KsY z4%mKh$+0BRo(-6f7hJzPc9P)wow-v5_i{SZ1@|#85WEfZV!=ByFA+SIxgIaNoqIE{ z7WRXf*9tz8`2xW&Wxh!88O)anUd4Q+;8!wVCHN}lYXo1*e68U3GG8b7Bg{7l{sQw& zf*)YMMex^{Zx#G~=Gz4Sl=*hSzhu5c@Nb##6#Pf#y9NK1`5wXbyXE!^uHQBMvfzz) z2Y*oT80LorZ^8U6!P_uDEO;vOBZBv4{)ym&m>(4!-#vuOF-rp5Vt=K+C@J`If3*MdiB*8CYK2>o2uB_>TU&8hUg6A9YGp`j~zbkry;196n>1s}_No8bA(w+mj$e23r*neP<5j`?oE z*D>EC_&v<`3;r1Mmj&O${Gi~kGe0D_{`TWrf`7sGhXp^y{D|PcF#kkw2j3`rRPYGq z#{_T2{Dk10n4cEBC-WZ!AHe*q;6s`JCiqC^`h|3QzdDw=llM=W7cqAWUdgFaOJwHNm9uzhF2KWE-m@Kelt2>v^B ze8(m(I^RZk@&rqN!J9Kr7rYJg48fC`>-mCCzbEr-VLyO*j^IO?j~9Fl^GSkFWqGBEk1EUnclJ znXeT5L*}al|C;$4!T-&Ct>8Z~UnjUe>E9rD7+(z7B)Et97Qywmn6?VuitV=vuD`9c zUGNmP-ywJ}<~s!+zt&{E*-^%-<4xIrGDUuVQ{g z@SB-`BKT(JM+M)({FvaonV%5+HRh)Uf1CLaf`82Xtl-C(|0eiJ=K4~g-tK;2?&SH4 z=D#p^3$8CD>2Galdw3@%Es?^$0rMEa8#DI`9?RVR4HC?wCG!Mf-A-^09E@F$p;2)>)S{o63ucKeuD3;TaCuNC|d^96z* zX1+-9&zLV0{223IbC|y@_(bLh1;32>A;I&R zza{wP%nu8WPxs++MDY2{KM{Np^P_?a!~L{=7$7t!u&14TQEN?cq`^d1aHgy6Tv$(KPq^4=Enr@%lw4k zgPETed^qzT1Rulvtl*b0|4s0z%=KUR*zEY5!Q9E$Gc=#Y+%0%H^M-;~GmjK}K67~0 zJS{r?Ma;c|uV5Z0_;t(^1iyuOqTqKjZ!h?L%sUJIF!Qd0?_l0T@LkN)1mDZNzu>Ph zPZ#`k<{5&&$2?Q;qs+4fKg~QxaC{>=F5?AvG_?36!NZtO6+Dvpbiwf*mADiL-imp# z;2oHk2;P->h2XuJR|`Ifd9C2XnCt72dc0lCe37u9z79J@L1+Y1#iy$ znBc9LpAftQ^V5R&WB!BS8O+ZLK7#pgf{$ZPpIm|V*4xDt=1#sIsd+AQx8O6GHx#^- zd8FXg%wq&!$lNRV3g&TwuVtPf_zvcYg1^MPz2L{0cNYA2=3NEHx3A*TL+~`_X@XB> zj_**xMYm@qbG{s4;NLTRiH__dX-#+c8+__U#B1YxNGFnD>nujVfK#@ z{1^7;3a-D2t@GFAoXG#H`GtKhbA4Z%wx7fNabdrZ`OAW@VE&=tw=n-saGj3+HoVUF zKDLiz)m-0Sr0=)V{8_deChT8izrKG;+w1>RD}?>$?8p0canbhr|IXV4*X^v!rS0`M zz3u-C<9KuOpngxJqwP-$9?ACl8*n=Pmdw4ZnkTWpi{PEvf05w&z94;{j!sAO5@E0J z7g{X1{-*dXf@}K+1Hid>QkB zg5x&?aTzE0M&`wW-^=_e!5?LQD|75-MwI?jHqK7s@7lP1|MruO+xKq~k@|DV=Y4S7 z`uHz?d)xMH>ePB4MuVs6^yi_)m#P2!@w>l>@E4EK{Y9+QKYM0R$I)M|=C6zY-}p>5 zX9bTA=qASRGUJ;~&ihz1e!$uI^OwC`@CE7r>1Uw-m*0JspJ=90_P<}n!(g_LTb*Lx zQp=TMAMAj5H>b`1*WXGW&1v$qC6I19yKvjLFM7VB*$8mp_LZ&y>&pzfvcDxL)>F@e z^!(;YU|1)azn-7`UH^1l*n>dU|VV2XZT z{`l9b%pafVs4xEtE4rcQOYFVi*$sRSpuYSkasJaeBDOzX(w6ztx0dVq)}@}$aP)v+ zS?$Xo;E@c&b^L4W#`V}@-1_1tGSv5x>SUzt766i=?IXNVRba(!i?rPcpuYCoIoOJ{ zhT~!~IF*;}cM_OP6Qjhp#x;Be(UQPg+C~GA42}D9{B*HlNLvqp`pTbqk(FgmlBHOF zd{#x4e=_Hz*9n&d@Dwo0!BZK+apzIR47>Xt4Ym z<2<##`k$?*{`QxJFSw8swCm3iO%}{p^w0!zJ0OQrS{lZ%x$}8!0 za>?Z>2?+_-mvzAra9c!wYd5WHw;mSx&%d?XRX-F1Wk{!Dr5lr>CKCov9DK>(@#EkF zy4iI-F`!^*UE5>m$gUee{=s!A{$oAocl_>1!C-%AhX1Qf|3{hr_sIrGNT&Z|?M@-b zrGuvqzHD&rw0#g=r=R8jO{YJ&E?J}>??2qLHuLB2F@5+YXZyd>Dcarf7o>jPw}JJ? zeh*-&jm*_FwVsTHur2j}OISx;+_lH^3n$|DK=oqT2gB2+-_zP29<1LV+NjRU)uY{B z!Qi^iiO_xtUq##jb#o?;TD{Qi|2W(KN4EbvGR%C29xJ^5+_~&lzh>_J+uBmxkWrVK;XmE8|Lz;FF7T_Y)g_5;|I|dM|Km*m$!z~;lzQe) zU5iZrH<_*W{Z&Q$2eJ;li00>4Cd+>;>%d;*lw!Sg8Wph@a?kLegI4I75NL&CLsMU& zNP{uSQOmzgk68N>INx~MJumcf3IQ0g{647l({5PREl6}``@c+mgTi3I*~;JQK<3`B zWG|3iR$W|T=IYsz*vKdKHbChS;neI&y_mW83z<}={}iQ`S$8R<#7-Kmb=ir|0>2xI zbM8$n@7jI3M>70f?S=&z{xtrgHEe9t0-Kv{d;6R5*m?ez*Z)5|9>o5DHVFZjRDZuR+JZc#60*0)8C@}K_OEh;NwZ#isGr|cUPY>9e7ZNj2~O$>H#U)8f=W%?H+Mp_lFOUYb4jW#Ygz*jrgDo{``I*3er)o1RTv@-+cS$>_~58Aqq8$cEl_LRDN;$h#H@YnmktX3zo_8ygcJbgfi zJs!jt-P4u2hqn{h12%*`pk=ajzZVZ$diQqjoN^f-oPRQM-tjB2v1Qa*d&}&)E>KYe zj=@6>*xsByZ@v5a?XcGvYK&Sv(;5w5>d}x@mm3@n`oIv}m1q0E$ZYjjd-LH7i)Im>DC+bn+wvQ6SpmB18b<%MD_y|rx zTk;^ZCOEJ+b|&^bp7ij)XlFc=r#CP`u#FCP>bHTtMPPh9j~xX2=t1@G+$b05$qNRD zy$fL%yY$y{fe{kL4QFW){;Z< zta8^`ajf}#>K>ZPQ-6-jfzy@1fwetZ>#iMIH!#D0w&yEltsj8gL#!S<1#@B^!kN!w z>9EH#TYX&5;fS+tp=aI8_e3m9gYsFNPjwLD3DpGk zK8Qydkx}*45|l|WO@eF*`bp4Hf@Tu9b^8?z^$)ZHsn_*+q3-hw`!l01jqG)Y!s#NM zK6$p!EeZ4|O#lDK9ctA9lCVxbtubhoMwbOzkLS;HK6K$2J8$yl>^bKBFP?+_1x=k& zATFJe+4isg7Y9F`0Gu{{yl|lnsD6X}FJ<{Z&f0q_Ver#!Mszdchg_G&+R{u;XktruU+WuNBMuYS~&IBtlhJ^qfSv6^V#;GL1+*IfZ~;SB$Gnf~L&=kgynFXwG?>Hf&9)tyiAS+g|- z_3y(ys2*2-WfhWle131H|CrcW+Q%y7XdAC^zA-7&|5~Phd}3ObANKbP65WA)WTxAX zrx9+xhMZmCAefQZx##4Zn$s|qLD*+dbBVIon^72y?>f#K=({eyj?EgU|=Zi{Utx z31>)|8UBLAxJ-uHX6(quR=_~st zl#S;#;`}LV^~LA-D$FV9WB&_7Q}-0RZ+Xey#Uoe8_0C+n@0=fxIePX$W3K*PMC!Q= z|ChUP)X|0qDeC6Q`spM8DgR5mYydiO9e%6pp9r;YA1qZijMA>zFgLf(1fV0}lpBiHvvnZzPe%EV zQ>$XHo=A_l)#_E(!w0OX#j`kCA>Q+-KST z8pA4HWUzRdbueP!oOP7n+MmFLE4#xNI{7#pATVRlGXPui&`FSTrnMRPJ7vH{Q2&om z*Uo>lMNYC$IA_4C?&lWf&8GL=W9|O`u;@4PcC(j$=>NXtI^7=dPD6N!IegrLJ}vP7 zLdxftP3O}mkPmgiUuG7ZWd_r#s4k`##Lt4$1$^giCkWaGzrFB#2Y&e9+E4JqcUF1f z*A;$!;5P<-Q{Yz#KYT9}-g9&V{O*U}WAMX!n(+Nar{MPs{K8=ehX2!af?p5#;WNkY z!|yxz{R%%POaYp~FByJm@WXeZWW#S7{FcKHpP73Peu+>{e80vh_)UbLayX3^YJ#)H z1U1e%VVZNZny}GO&H$Y1oNy__FsIQRESqmv>N4kcwL=B?sK=DbHB`9M@PUDEze7!R z?spt?utB(U-1kadVkmeqaJ?yboSZ`AKQU;m4WgY!0%Vc!UWm$dz8CUA2xk%PobYcb zmZ74Z+Z?w$)imvLG&Z3=&7DR|h}QCYCq%p6d4rRqHFu8Kr_@w50EcDUl5IaU!S+M* zW0P#1ADdqw_`=+*tJTt(`4UAYhoi9zGHU5uq3$rDDIbT3Y8(OcepA5AJ^ zvmkWVi#n0k&RNep&=4H+%&r@q^R827>PF{vYO^xCZG^mcDzp1W=T7ySGJ9-vzNS7? zX3vez&(u%K?6uMPlUik(y*D~nnRl6H+D7MH=3}PWXQT5mbDwGU-RRtBzGa&IHag#e z;+y?9Lix{_=75dPGv*41IdG$Mg=3w=9JJB7&T+rPOyB6d-|?u!91JxX#$9n06!)s7 zy05dii`Oc^Yt<$fH)NKxJ0e5b92c)ujjD{Tk1SebY~2AXNHoh?eW#<*)e^p;PI2Tn z)SV6-N?Fcz=5y45SN~O z5Os<3&5$Lb;3eY@YOJ%vQ5eq7qv{)Mma!Y1->6>@{GzULIOZNQAo=@4$Z>zjp%6&! zP{^B>9}}V|nAGImF6{8#t~W!VNNO{oRcv+aDisTVBqkb;wgbcQStCau`4GkJGP0t3fFmqfHEt0V zlJ1?~tgNl0E!tp8aF?W&sFft_s9c8GT8G2C7=0==8Y4~$pBz3Ba%hC%sqoTJPY-rP z*i2k#66rGHBG9C9IOPd%@AMhxrxM+RO=8So`CYJ!Y(zDL!no2PrKZWMEQu=Q!U}Z* z6w5Uv0Q+RDAM84VhFQ^Q3jY)b>lFu+ofbi_)pBu7A*R(>aEk=)(_1Z?V&6f zH31S2G+9C`uxyoraoZY3YZvsE)s}|Q20q^%ZSRf5I50~K$6_bhI|e~p4YI>Wd9BL% zpd#%86@l(KKd8OcHfiD5op8@S4h78G%Ali8&#HYVdpZ{C97H-{%(06-Vz+P{H1I8E zZgv_+SlpB#vKkm+SF3)8k!mlEVRWPBfzjDL5R1F3hi$k*clYc{eSnSJE6^Rldq+d< z`a?<5&;Wz`1albFtUrtdgniuxHh>pu(T|)iboPhs1-fQHUkoHN5D9HTgZe;!kt-dF z7U545Q?5bA-rN9}Kry zKm%stHWZAXWpcGgw1sLL#>fbgYz5;I4*9LX*BfG83{^KqM^ac0>@Hx$4g@>~oz|XX zY%FY5dK{0#RB%T!z6nK{0F7f@auK;FMjP17ldxFYezG1Ay3kV?1Zr_etz%XV|*HbGRMm}_OTRpJhdMAv8wphf%rrgkm zQ3UC6n_I0qlK~I1V(rxxn1y$(TyF1NE8c7Va<32pQqc^>Xu$xD0R`I+kKXiWUdOv7?4NLG}vVO$jsJFkVw z%9hjB9EiCtQaqYzurF50V7){I#u5zar7F-pw1YO9r{TO=xuJpKZjx5Pdt+cuYb`Ko z4KC(wW~kd-Z-zP@4yV)Q>JtS=ye8&dMrepDL@94*i1NAz0)zur)+R_pP27Ytqiwms z8n}m``NQU2D!lo90QW$d8!m*qj7H!q*~}*zH)?Sm_&jmzU>(s!2Y7a=$VhhzcpGkj zTf)fL^O+~o{Q&qHTVCG|aC=%l3+t#$;WF3=Xh6fWB91&Gaf|V+jB9uh(#Y-td3pSv zM)CgwU!#QgVI6(^{ZHPzZtpLr?ogkD*VF0*u3P^IYio&ddfbi-EuxN#= zVzc#Z@SpAmN4F9)Ec16r!$>GK%gnIc&F35C9`6oD`Z1~?a6PHzSJ+xB%VQD&r}+QR^_OxpG9?^rqt z0)d+rpO2+P?Qhad0)c7 z&QmURd=3?N2J<&UT(ct^w(nL0JvNor(^4-(Ps6T8YA!ia-5sYl?BPCy$-IrpfVZdR z{TRK?@**3CsH5Pt;BkV*kqx75@Oy;aXIP~AR)cFFIy z2u^wnd!c(Kgc-dHLR`y~=Ta(NNg9?Zy-(>`h~dd|-1phG=U%D%?u~t_PZ^;Zj_;3t z{==`YJ@m>B)u)_LzT=;Z_Wt(Rf%i|}rutM6Dsa5}>d(u5Jp1F8S5&7fDm~LMRrl|Z zrWYH}i(Vt8s@hY8E(iI&G|W?K=6Ei@0M4!Tlm(%YGH<@8GU(^zu3X?*Xh9t246j<~ zx%C2g^&-y}tUqUr;Z_mOcNr;*7kM7D3fCDBaNCH=<_) z^fk^WU*m#k@)gFB6!j;WIh~}ql4RCmlFQeS%-%>+vX`XvFiF`dl5#i93;H&$Xhm{G zUy{m+BvsQ%s%MkbTun0PT9UczNopS=nfDmU`~xIczCm);ha?M6kSzL@WO2WynBNlk zoD0a(0+MA_B+HkOTyqP_iU&wmK1bqzgXG$uN$MKKV)RvQNv<15a{UaF8%t4Q*DWSl ze>2H#_mJHF1j!vQlHB<=$;L~eoBPIYI!?a3ejbB#+!c^5}Y!$L=C|{C<)hkCHt3G|5wYNuGX%WY>ErE!%&G z(rWfVn057SRq_=4bJe$1DUE_wjBgujoxX|6V)m6zP3kQ;1J&9ydDaqm`Buj22S$ZGIvfU)hKOtG+ zguAW#w(_?jsT)ADdMe3vB_!9^lB`)qa>H7Z8@G_G-A;1zizK&vOmgcYk)tl6>hLNsP6G*R91*B_K73qy? z3F*!12GVuv9@5*?4$=*3AL*Uy4bn~OQ_{QC8PY8(vK8ikuSz1_s``>Xpe`oerY<9W zSe24)S67ifrdE^gP#Z{}R1cEwRJ%xbsaHvNtM^HtRmVy9sI#OmD0gejcfazHzNEU5 zzO06mzN+#_52`CjUssDs52;&7-%t;dzNL1NzN20xeOJ9ldRQGJeNX*F`o0QpgZX`+ znv)(;9Y{Y^X`~;i;iMm{OGrOag`}UVd8D7I)uf-RyGW0!?WA9*=Sja*Z<2ncz9K!Q z&X68gu0+iDYZXI!LbW0NR&^sisRomtQgE&bcBfS?>36D(^ar(s^hb3A=^3?&^e6QQ z=~?w0>Cfs-(qGiKq`xW?&i(qe{Y}M^{;oQa{-OGjo>L=8;mc~I%DkM^H0O~z%$1~0 z^Hx%qc^_$r`4nlW`4Xwye1|m5{D!oFX~1;8U)ylA328$!g|v}5h}2__CXFx)NF&X8 zq>as$pnW@J(4Mfv&~@Y+_9)5lS4lEIBFXxRWJGv7j4(2hBzpkKs4*lLUrsW5AxX}y zBxAOdjNMN%?md$6CrKta+GApucu6L9A(?a$$>d8(rpyNE|Ct)l=`wRG{HHr0^?N6( zG4OLW=%_OKb{T#p8g|K~Ds;(OO}-HuNwV)Ix%dFd=tCqqM@hzQ&D;jnoW{kO)_`|$wg~OhHNCsc$j49vn0a~k_`WVB=c*Mte;6nxI1B*BV$Rj z+mejxNpf)p$>>QWIWtMd%pn=OoMha3l(Z^3aHdsL>!#IEv!>0Va;D9tqiI_0RNp6Ve3}ThW4K zWmgjaXp(CSNb2U1th$+G^`j)$y+(5VagsH^libiW856s)Bgsv0`3rn&Cz9L@S5Lrq z%QBK%?;u(CD9QR4Np5?OTxlFj#!Y;MRc5v6?xyf8<)RvN4FQ)iWR5x4 zbl;@<*P27-ne)wlH!EZCmF5D|-9_QK0-AQQOb0JA7n|cd=}XOJrl&QYx_84> zN$cg{#WRqMYfMifB4eoQ7E^idQ>_r^nOz@*OBcqlo6SnkV+x0%ySg`@wHU^5*IH8z zY(l0tnyqmDf0Jp1jauS>6T*pio10DZ8NA{U-exPfFm`z2{o0lE0Jx&lfVF)PTwZWx zw%cZ!&ti;3f$?Wj3Y3?Og$45-_1xyQ;thB7jamQhDc?zx?jmQEr z5?9&n6kOaa0GmkT;*sbXJq0`?$c3w%#_rG&m_{6yImVehCOXueeMc}>+-l&RLNmv@ z+J_EFZTc|yLWdfu?NXpDp~H;S4%l&_!{Of&SKIckrm3;m0WPnR+6)`f)y$dNf=F|B zY8;WchN(Ux36ZHSU1-xfCN+T^ZJMUG3PY0UHO6>d&N0nHonzu%W?W-{Ng=&MT#1n( z-BVk41aC-BBee}Vdby2}Xpr3xR#eya#+ddYYD`C$dnDFmBnFHe3#$?68q?FQ;_|`K zJG?m+saJ!JBk^*`=o&OZ*GP1YTn4Lg*TQPxcr5V9MQF1gZODbIFiD)FA*^hh@ z1Ib0J7r{GW^gj?LV*+@>IQo6`qU#d!(&{9#IZj}>8i8FgatXNNuyL0=+r&k|sogb^ z-idK7z_B7~(8Rbza9kTTe3C0NYDnrzw2Ojn@snei+lb46@KsS`Fnm<%%BkRs8V%v( z$Z;EE>Rj&0tD~EhL4X%eVU01@Io(sPkNT806$?%If7p8y@TiKc@%!G}=@0^h5D^1L z2_$HRWXx9-|2lRhy~BL#0x z`ocs7GI+%;NsS`;V~8Gyl`$1HO??t}i?D@Wack1N*Dx|HaoMVvm@9stbj{}s-xibD z_x9CEZ;ISP;_}SD?;Uq0eJS$g5qGUgdK;Y;&VW+fy*BCF32=JKBQCqAP299~Nf%mJ zp=aHjbdi-T`uddnlJ2*#yCq{^5G&)X`;#8Eyy@nqm3zlNP1WXLrIM34?mxJzOA}uJ5Cp&b(H5A6Led zKPSCz6HdpKG3BwOLpI@RTp4};viZ!_Be1H%Y|56T4{a&Pv}9Y8KCyAR$CJ*B36)5? zbjr4*-jaO|M$5{k1MGY6HhIKaM7i(8jEVC>`eMdt032|q#vkiraYDOTDXd(hLmPV_e_`Ml$&Au zbbPPNcE_42cfoe##>dey&Tm6fEkq@x4=aLU@0dvqjh47vC@CB?!OJ zE;$8m2N}=DpO^9ugkNgcHRT_$JrM7>?8P=#%Ga>}*LG)%G5F>9{wXF5;RUW5+gm;!JE2-7i_-X=`G8 z>wf7%PrNw~W5+G>v@@6D-epTY9n4#B?~0Y4j^e8#8`&_+V-pMJqtU z+urQnS41b6@plxh!$gT@(FWWmnPKtHM%iv)DQ4QFvgcvvY_n%Vc{kH{j+wSij0SH5 zG>UM_?mO2^I~ryc-OaR1&13_vSS4duHm0JeKh;c|Adg9*7%_s%F6!@Lrg^n!JVI0& zGkcn8X4;Nc+@EfyT`Q>=EW~&sllXg?X;oSjDLT(Q-%NW-a&hz_X@{8>Wa^W*faONf z4p^7>HfQ!R`1W z;7~K|LrWO{He5Uul_gg~@l2@_ zW%IbiOq-?4`7Sln$BX=MW%$RLX|Ksd(wq`A{d^G}ZelYpGsl~~EDKM^lEw64<^*%1 z*(*yUWjNuRWS)P28O{waH_u=1n`}A;i)kRP3}30~7^(%YFdaEsaEj@;AQViNDW;l^ zdqT|cO*0)MwcvEqaj_P>(sa1Apv!dJrv+!2jz4HYx9Qjr3Q}%mrb84$1e0%o3$;cO zI>P5M9p138@S3mObofKe@Oe$gtZ;Cq&#W+eePjzww~`MDZ5a0XO-FS|H2G^0fni^z z=~y0)z&*n^({$v9nBkjcItsO5z;xWC1*=TQC@olRI*PPljp>-A1#3;mWG#4=>9|4* z)|rmgTCm=9JQoU*yMm_U(-1R!4W{FW7Hl*f3$@^E(=j_7^fy5{%urY=^v^LJ6B(qK zxu)Y17GwB-XF5ta^vyFJw{pE#n~t+(2f!G^H{W!87Lqai*O-or7WXYQ9ZR&}BGYkoIOvB9`4`GFC#h_S=@_krebK4QVH5++aH5G$^{Gf0^kxLxVE&<)&i@gR)usSC|f4IL7ebXgd1q;hRiH zuW(r2OZTrd9cO7!_Jf;E$Cn`s4gW2sBQq>x_-=(EAk+&C-zpdawBYYy2+)GJ!4MD% z%5lbbI}8CKX82aa5TFI`fFVE&-U&m17Q73F04=x%h5#*iHw*!xAmz3ehJY{=LxArd z=>1_POT7+ye~1~rd!hGh!TX?xhk~-}`|gL%9cH*^_|`+`4l%>`2j~=9@B!%DTJS;W z+*)u0bZ#y95Oi)W_($m6TJT}$+*)uWbZ#y92z2gHkR0(R=-eS@_#TDMtpzth=hlLM zhRz)h`X9s29STc@{=Z=7ZV4%7Gj{HlF@}E&c5ViJTcL9^=6^iYxiQA@ZG+Aok}>?- zL!Dbh`*(yow-kQ@I(Jyy_at;~Ew~dpcR1+Z73$m~vHz)1=N4h#Zs^TIT=wRtu{UeU zpTXW73RCI#U~lGdFZN~*pT*wX5>jt|4tsMb#_;dM-mHc9V{ZCKKHa_q~&$9 z&;2bU4Bs1Op9jPQR-7t`Sr7&d-pAXDFw}-sZY#)ZNwShKg{?wWw!x2Vh)HGdnV4~sq+}wqGXU54>$)jfcv$MW5Gn{yH%=eX1X zev82(ys_i^+RP{xtPR}1g40iA-l zN|Qx|?_Xv{vlcvIW|W6(SL}%@o{L(hVkZ9Y%!~zc!mtX0vObIOPM+_ine`{(OyNA= z_h#0kTJQ%mYljy6(ahSU1%EQL{;UOmHnaYs1^;bkJ*EXunOU2)pkZZg(Sq<6%vLRE zSy_*3L7SDeO$)|YS%1}nb}Q@kaIg%orNmmtZ~-R z^L%Zsp)QdI@4Fekcx$Lv3%0X{-l7HDTSNU?u!A);pam1Gp|x7DqcyZa3np4ao3vmj zYv|QlFv%LaPz#=64ZU6qcD9Bt*Meul8$h98GTzEGd|j-eci|q53TIhEAHWhN%VH&4 zLm$$DU9BNQL&0RcC2IJ(SwpgMkGk{OR?cC0>a+`PI*Ln>mB!RPuwS$vR^m!jiZ$Fm z^Bn73E9Y!^`lyNeyIVP*NCo2Jrf7|LA+r)Le^@zRGTn3~pof+7W28hfdS*{6&C2O1 z^AZl%2!MdC(>tfdw=Cy{(+RHoR<`ENm7üH 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 z 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

ROR! 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�wZ`VDVT#RM6Fq9Vsw+4(oZS)b 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

P5|LQ%W&3haV%P)wvpz;N50 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

R>L|&Hiij*TPoqT}?;T-2_-{F+>E-<>BRtj& z)WG9wZhy9ygaJ-CKE<*FWF$@J98*%#FpXM#qTM-fdCqm2$BHz3jn5hJ?Utgt#iIvh z%qY2Ay#y91%j^TiuUbNjlv@v_Z5y~>T|IYhkBRbHRikz)R~9?yvDIJ>FMyqs?yt6hJ&_g5ZDx8l7F&QhhUu{#zIV1Z% z2&zWQM@BkRpelXNhFO=qAVKN_l8xi1!0&7r&#h}EC5z3q#VENT7Z>{0+$bav^hC;NwT$q#uX5i;!vp$3EEm(mr=8bG;r7Qvh9Q_IxN@lPDG#3tYN>1vAycbrn_sMIi}gy{ z(yJ>2oE{>wX|Sei%zZ)A%h`a_@_pv^Zh5vd$h=ru_jYWt^E;7k8I78yFJC7!=RMGJ z?_CW%P?ffA_;1W26Z64|DRc#OfNpwcIYw};)`vgD<`_9-5)L0KE%-Cab0 z%-RF_vNk&6@I+aYX=fw~>?mWfODpH8F0x)z*S2l0x;A$yhOz#LWm=G^{!pxI`-kUG zg}SyN^dxji1T?X8<_hF>Z8Ts;L3CdDG&l5^UZ)oUoQ`Z$@O@3qL;_9hE3fj$lZIUx zGXQQ0468pk3qxHCTwQ%9;vKBAuxsj^k~O$C3VBs+@)Otr=?p+fdYPp6yyXy=4ps{f z`6YBVf z%j?j2AuIMVL}iPtbk<~e9I~Mh)#sPpTx^~_PJ;M!-&c_r<=Iv1y9~&34D()CI6qE$ zl1O}eJbITcM=#uF1CWoE6^q4Y*tNxC>Nuy%FS2h1T(ClNGTSLyUBLjRcavoyM7mg~}OlkE;&@}kwX8ma%J zOB#O)d_Wf)mb9W{VGE8<_4t;y4U=o%@wxHdlWl{60%=CcuX0vN|+0AKXE4x6y zMlJ=dFvq1rIh&GObSfJ^S}NOL+0I69+4pkQE!!nxl!_)=T;7w>+5FL))aFay=k%$Q zsD?6Gkamb7!vDs4k69v;tcraAv2rVgFm_az>J(mXS)h0I+2RC*QR{Bom+JjY!tgYU zz;CqL!xHB84n z#4KRWfJhLtv_ZMvGZH;-eGCLd-X%pb6cU!Y{skvowrJ_D7_Z}>!{z;Mhn?6TfevEx&ougTfJWEjRN*IQ3Oim`3;Edga zSlUj1rMHuQx?5wTQS{3-Y5sNVPQ&)g?X(jN`GFR#*!1A%@}zCZ29mZlp5UWLdmP3? z^WH)gu1nQMfn*KR?f&ff{w%U7w@!;0u)oGxV^8`;EB92YF^eP_6!)kB{h3eJHFVO0 zPx`llK?!3_*&|T0joW_M5NUjz^;GRPE-_<~@3Rlh-BT59ul&tOWQ7@zYZ-R&SZ}i| z5_YLNNQpPTlf-;AJ$`dyioo^?X(54uWW5gW=CWj|) z(t}@sn}LOMlBz&1R8lW##9 zbN`Kma*N}Hyp997vhPyOMjULVmx{55VH2ua-E4wwI3=q5g9B2GYU4#3NhEQ@fdJ0L zW*gzKlOTb?EG(Q^H-$|)ENtR)l?q*ifjjI4LWX@w=lhWA?RI7P=;NI{KQ!>w?$;A%Q4VW%nic)wz4{XjRCd0bAnL-tG$A-gqtvbNhy=-lau`#E zrRS~Q+V*}QNLtKcZTm{=zrxB_4~%4JL;8e|J< zE6PAn|7kardz+<3;6k7d>BUQ+qN7D8e7Y3EvKjB76YWjMh3)lg9Jw%diJ(}U2Q0@@ zNDEbORBIqC{8>o%6*7E=S->y@zCGvlKicUYok;Q6zNd9jTtH~ib0ds$OUlg?-ZGj0$@ihHQvukT`7Rt+vh!3sK! zTKd@PKjoR6Bp^v6JtQbzz0=QBd~5QKYnew1Vd=8Va}93NZw1!M@(Wg3g* zKGGaTu&%LB@gKN%W?4(vzwe34-_y`pOgCu0Mwr=(qiyikeDdL&59aq)b4!MpVuv{@ z1^!viOu(0tT&bH}O9a`(OokAU?KTtts8EYGPs3alB0#K0^D4T>8UuQn?PA$3OGG$O>3w8hS-!sy|~nu*}gvj=LT zKOyKWBSp>z+*}9({rX$)%hwHV&Rj0*imJSfV9ufs5FRyGWO?BxeGu&mq{v9TBE(9( zlY0qu4NJI}Ha!~|dgdggub}3QVv8&kALLJgFSuA>3wm%lXWp_|R%E9v+38Aljtb3r zEb7CN(U#}efJZoQ=$heeCD4}Zay#f5mTZbsLZzkq?P(Bfv4sX~We!D8V~0Y0?Pg8) z0|dEjKkl9upq)oAvM|lcG!c|e*P@4Pzxzy&D7{WidSW^{nuR+!TOz?C-%si2m>BvA zG|2gDI-Fb{ni{q(s@D7gje`h*9SSLb*_o~zrqB zj8O*KhnSI&sWIHXuXObt-YT5G`s+TCZTnUsw@EUj`ytPwEs!Qg?aGef&Rf^wHNWzW zJe3fgPM$gYG4_?*NLJkxmC zQMxE#%IxaD7OzK00K1B!uw1Zsoi^q5mZx5*?J81j6+KOs>X()qdn)JMn6e2?t!O~_ zdU`6a&Xk@K-G<=ch-OSFg<;6c)b(%;-5q4EdemM60qEk{-V!qKWfoSPHQn}G`ov%w z$vvMq>8j1jFtkhgk(gQS;+gAREsxiV!w6Ky8B_CrOR|*rBayuHm|yK6Gq=ZkIz-p3 zk;VI|4B1K!<8LX4QN|aC@n6G&av?r=&?WtAnC=bI5+@&Eyn?e`6;d5ztMIITKz&_N zyKLj&#;XGZTtMuHLQt80DJ+9sRY{LduooZkD^}X@PvlqCOjL9=3@MbSU#Csh!9@8% zvk92zEbkHot(hlbEVOS;J!xzRJ4VA0NN-(yzX_X3UTMSkd=3E5!eJN0llB2goHX&< z8Ye_?L^UIgxnW3ehi&_8RHzO;Eu(Vo4%-KrDJEWK>ZK|rpnjEERwkJ`?C_ujiU(%% z)iCY2LDmUe5@tr=8JhQD{$XZp(o{g8@IUEdAKx}o8YRY{fRIxToEW`Nj_$3SPJZ2& z%I@>gn4VWdu`By$P}b5&i#)x8+coKz;`oYDZo4Lu7K^l*sXREINDDQ#n+H?T&QH!H z3kMxJyBt5J)Xud-+g@?Xxq-A$+H%;^=}b1Y{%)8pFV13xJt?Hzi(+PHT}9Vk`wR{# zg$6dWrlH$yX4AT00LQ1_+Ab2or%yW!?OZZDI+(~{R5+jSyOax1jo+{&!5VMvvHS9r zDCd1Hw^KBQqv>D)tR1LI$?J)$xKBHW z1xsAT&ghrF`y+qj{c=FSz-W(S&>-M@zUr6w&63b1mo0g1W|iFRl79ltHOL~ zND_ zJAe6K)Xxw8V%%MNY~W~V@?mzJ1Fb^KWjiJTsH3H0R$;xB zk_rexE%{!*7e4pZ4`tlOti66~&ZhX888(q4pQyQjgq++DJDnn?ez-9i?~vL;|402d zIoD#LzNvj@!s&o(&QVZ>#yhqG@(~sZ^*Af+*yp$;8CXzGQHr9@8-M9ClWbm;qFkmq zS$mG>P*#$TX<6}_Esw1`pZkVWg{&VAvNo!v3B@vRXvdQ;nh4m?h`dm&nslt9pWe}uDCGeymtVuu zh2$T!dabBAm?f>WtQk0@IeMx9C*oMh^kLt7R9K5az>aNoI*D}3K6G-75?W{Y7D@H~mA`9$d9>8@c2y0{425`5^FI_fTz3E@}!h!8l zIT;q9Jb8zr7q7%OVXhj(W1CHz#u&cKX_f~kt)rQ%cq&G*(cp5a1x^NQ3|+uE58Ks2 zn_~mN@K}beNf>DXfaQ(+`NYXz*(CK&BIgXm6wnAXKe)=;i#JU#N z$z=?lstuYpXBVdiQ>awEUl8OBLqJ`!i_Xx+(}R69RC5~92V*Z3>3b(WR?N%FrBfQR zqs>S)!q<|$7+gD^8!71(&;ZjGcbb_A#RtMpD{l5s0}fRG@Z`eZX=H{9$RUNu31$=5=qL%l)R%int{LZu~bGH?WAZ*I? zrMmPW6DPaDc=e)o-9f_(4A)Y2I{OAjPcUs(qcq=4iXB+#Dvx}uU;LMN=s1qv{Uiff zt2*rgdh$D4B)KWueHyWb$wEHJuJtNcEBE+J1PKpL3n5xc+2ZGOot?@%%$9 z-ptX2gtYL`N$gI@CMlf+-2o26D4{^0YrI>Aavz%t2_@QcD2SV|D<=ZCtOiPd}31*L%D&dJ$ zpg|j{a*rBW)LapfY_?8@D4t!C+7}b@Rk788;AK+zzVH;zz(0 zY;`_s%_tw#%lOn=J4UWSv zKf{@?U`$d$Ejx}6v6`ooTo&)9f4KM+R>y0x-NN`*hKaMByJNWfxT zvWo#=8$b!09{!zAI{hXCu)DPWL)^gUm2(Bt6o0;rk9YCeyke|$`46m2nyK{zGT1fD zui-{Yiw*$@Y`+&|xf%dYzu{Z-fGPZ76xF^Dp4b3>@0S=r%`J=L;c*w@C2f_c_j=I@ z28QwW`|^7M$RMtDVmj8_tltm9sm(w!g-&uOpZ2Xrb%v`&G|X89B#4gg^#YUo0i8}5 z7-N(KxhumVfaNHi<7x)h{LJ-OQ2^yzKE72KsVT8Dy8xsKB$x0uBkDH+y8HCY-5%GI zJS9vd=QsuZpNh8l&I-inEob>}sBDYZmRzuwe-+4!;66M_n04axjRF2`UOA=`?2fd- z6RdZfkhcIEpEYwoVp>0cVd?-@t=a7?cfbjDxSblzH_#}F5y@{@sXi-wmeO<>LGM?k zPwVmZ&T4xaM`yXBGg7XJRqS4yoLAOC6M##fY1=Ko(QF=O_v8h-&} z=JT$R(pZ(I4qrx3K~q@ z;o=KCnaD!h`XbWN;sy6>4WN7dWL0bQx|Lt6euZRw#W*;oU6T)TiZ;tVcMG(K~}c}8m;i?nWa^wkKJlyBTp@?P>-YOlT|MjiJ=SQ8NkB_7bxWeFnsZx+*)6M!+?FJ#;GbfzeE;M@ zD|`I_GaQSBly^f@63e^6ZI!z?kD{S>HQ>MchPExe;mg5#Az+CfD#ubp;8NqBYBrhJ zt=U;C*3W&2EPwiMIN0Cgfh)XP*!T>wY^T^L6QrMU7=W$eaH5~pyRTVC<>-#WARVJ! z!`hQ8sH>#+3!F`*x;>212A456nO2flyUNp94)d1L08zcOi*XT=d0!DyaMT@8|7q?s$s4g<u)#+SyIAi)zCM$!KvNu);H*Br zTAtohgT87wI}vuwnMXfJf>Ag-b^^zyV{CHmSZDjdGl5|;3m&J0l$KQsD(S>M7rwM z5Edlj7sG-gwClnwJ}gL59`8n)HJk6CIBh3H=%d{H%aC9H;04xzr;a9tw#9Q02gERA z#g64i0inVICQRefAxvoK*~ZlNCHiRJ8#LF;NLJI9W_IF)X`AIWA?Z7w8%oMi55iZS zSR%kY#MW|kX}fL}FccJ=#(^G(;kefY2Mt4A__Zs~&rAdzj;`c`TrOB2+vbIl^zQUg z!GC0oL=0>85G0*#`Ka(%$Jq4St;&{lBG)yx@u0B>D)u=0Uq-^GUYIjwuXu(ox1F=* z)>!viH_vNN9h-VPr@n6YlU)b$Gz7LTTP8ugr!D_xOSXT@)AP-PvEV-27z^Wq`?+=& zBfH4nbJi!=u`x;jLSQcUcC>BFnYV*%;S}cEw!^ktalgV-jmfE8t}arv{ec_^Uvhgi z_&+dstySxpaBc(lr+eszpLPCWwrwAi`?D|w?dO@$M{B~)w83*G>Rj$mn|FWCQv+G0 zxI`VP{h#Z|=BQuMICTQyfQa$x(FX2Mp*Oy{KW>aowyUAu6p3Sn3yly!nE-D#PJf;I z!|F70fA(B<^i?)7GVf(`e;&pkcR12~Af{oCS*Szxnx_OF1ERLrlX*eL?F>6F$kify z4=b2*v3UO3>b3`t@j*6izw?36r)J>(zi5aC|&*$aHgU6$K1?H?t6P_{T`OW4Iv^Rh7g>6n4G3*wAwAzTLSu-vRoET2gQlO zs7f_v0#Mh~%EkAAL}PT6vbBgIB21+8Yf*E@u@#fCGtCVg9pb5=j5xZewBf7Rmzi(# zPhkHv-_lyX`;((R={)o03U^xM8>`~lkM z*D+^4jh}^yP<6cej`n=PatkFoOUf#2PPc-{7aUFzzt*+5>b|n5l*AzxRC6Yid3Afh zvFZ4P^|$2dYg27~!F)NW+G8s)%gfx9KehN3=*s5n&cat#$!>A0fR;1FI)CV`KRaaw zrq5NbFY>@uRW|`*#5TcD#f{qp+b9dXNgZx=8$k+a*1~n|NQthKz2IBcL!RCpira6N z;N*JVXQ2T1<*qJWK;`;gf%rjHi7UpeT$ER$vZ?*x7UBB*+B33oKT^Yu3uWt!1&_%A zoEkBV`ezR2Z96R+Xh&ot+2^X&D^sse9Aph(c9T?VfumBY5b+b$P#Pth7~nGxOC{9o z2VM)D`wch;-EW{4)+)Clbl~v@;Asoqb(O86uOFp5PwBD`qSwF=%s~M^b8u?72q8wU zJ3g>iQN{&X^6W5+6ZE{IO$z?SBhN;z=iQdE0ZSFagMckq`v-CRiM&&zar(cSaedx- zfAI&Iam9Q58p&q|3>vwRPrj?M_iXBJ72G($2tl-mWwyDN~C zy%`y!+OpkUfuN*~9?gfE9sT9YcCGZECe(P*c+)bHw{E)q<$e)prrcWowFBkHlkgVe z;qz-?vnV5CZ>TzT8q1-xCO7>l=!dS6>JK@Ryrw@UxOnN*MGbIq=TK=`$7Ynnqi>J- z%;85Iw6pe@D;4uo3Bsd66h9sdm$3GjyLqPB!Nj9&kGZ7Jwsy29&?1@At^*SPW!*9J zx~{xC=4S;YuAU1>7_K^z?wFiJ^h21PWTN zS98p;Dm8axuLonqI%RQ>`repMifNal+Um#F8cyH&E0}urZpzXH^CQnYI=R49qtrcxUMs%(*bG!FSBzE7WP>>t3X@} z(ZIL2Pn4%#;I8R!!Rbq*)%%9d-|&oe+WLjIPYzH|l&de87-eQAwx2Oi7cwq(A+qw5 za`k3+F%kAJx0{Siy(l8o>Y%;LU|-~pE^N2{Q z(fzYAIlc^I7FYwVU#2Oqp_;=&H601ngc2QhhacH2Fdf|v)c|1%sK#xIrb9{FdbYG* zhqW-DuHB-YzcAzQO?m1pHV`aojKtKmco;m=`^Yl*YsAO5|jMUPs|Wm=c; z3+-^2Xj;;YiZgUvcQ_Ar>D#`Xp9g!F#q4^b19~_=z|J>_sBU+?Vf0lS9T>^Eq4TvUdmQ;SEd zhlhIadHu_ytJf6*W>8wex<&{z&a(9KT=$;j+G!vgS*SeA8H!!<@Vko2ku7N}s0d|8 zv;MHf4f};V-s;oY=#U8&F~2nVRPJuk#>g~#r!bAYMs0=xR;JF!F=xrMAbO#|cFqVo ztE(V73=Voo(X(LjqhA^fO0G4VrTvdjUDA$vCaY7S6hda1F3V!dKF02wGn~45wVM?J z@2t(*ch78NMRb9rXA6w3g%-jRh@knwKBt6iI`T-SEfOJu?AVHUH(um!r45794Z-lL z9vsa%QC-nCv3HbO|fN5e~M*xcnR%(%F8;EoG3v840 zxs!B)7G0ILi~A| zXV2Lq|B)?Wb{0!9R`w47+)%1K*ID`n$ZB8pEFwB zHT0A>{M+j$s*fY?(WZ1;4&^z@YDZv_#baX;BrA36rYoQPTDO@k5cs)M+(sUjI5_@I z_CGvhQY#~z8H6DerR1xzids3;uMqo$i#y+!4iEm3*jeao4R#P(3dcpx=QaY0$4TAp`J|Sk2!xwndJK`KiChC z#~GA{a~qt-TF}2?lI__u1rYfq*sb#VAGeY*qxKD=_AD<85X;qk^yyb(TJl{Emw*@oCnJ3G#ES z-h?U`NO&x*|7X^m4X%qtb;`xUbx3ArnTc?WPAN!}h1x|9`qVvx0jvvs6c|H$^k;u< zf}=)V9|amJkf2(9qs)jqdDNXaO2}u-An}M`X}u*e6{lLquxDx#e-w*$OgegLe^fLas{)|Fhczj)}QjxLdm*V34$!x0P9eV=gIx z{88VN>800B<%!X1*&J-ZY^>}Ov9iM^dLDZ!oa(XX>}!_kvZzR;g~FUZ#?163hTvHD zK?TiLWad#9cjn18*Wm4CHfrxLoVM@1qt*NQrr4|~Lbc9>me~^r8g}gY5Rw5{>7^|X z*2!)%&Mbzka}V3av06(vsx`1o95aoFND$glU9%QnE3QSoF^=l5+?z+JMz*(o zjq77V&C)6RaS_6;BJ1b)De$RQ#LYxJ=c!iuVv)aDBO_ z#nf$mLqGnjU%V(0H;Tdp;%2j4CVy;Y<5rM%Ip#mJfsZjDr7S9p4Y!{?ZLWDCrBf6a zWC1CoZVIiG-5ng0$mfYi-HCL0;v?oDxP-2zLrGR`wjwE)UyMWGinUq93XcYPwU$1v z7d*h}Rr;@LLRiT8Z#gY=6MoA_gBun2n-!n@LdM@q%03dQgu1W%(S8 zBzt=CQE@lWNvCH86e7|AaLgQ?R!q(Yv%WfzJYvq+>ZSk*qh?8XJv0{-Hrl(vm!9txQ&t3 z8Wpo`O(xoF^&)*Ih6djE!S^M_sPv*b_GS#4e6BWVq1X#`lkj;v>le(bko??j&`7Cb z))_=7k&Dz!7*-9i77m2bcY4Uc6C}^@_|%KiD2APMyW1&>SrQ z{r9GhX*7iGqo=zh+zgp=4f)>kTBeY^J`@4NSC@g8X-D`{OL^MNYce z4woW_YCb@s6EiH;l7=iL!*eWl6w;}g>==6GqtHQXhZ6Z)r$o1Cti zrO6+I1dJ*;0najr=go1zw(`_D9k#&S6rP1nE#5k&eJW?ZN1KgzSJ~o-w;CL)p5H!m z*Z&Qp;)qP&(!9)*uYHo$3zesaEd{eIr#dF-#VKYY`~pFgi}w7_|K|FA#!hYG75^r`dvDjYRndid<|tq(hKwfK3w3*U}kyhFbX z>}}fX9Iua|m)^3?U9B=eCkV*q(&XP`uY*@+Jl^pKW_MLpq$+ zqc~DaMP&ryd%{Mx0Fm^pZDe|tdrI!1;`bfWW}c|R?Y_LIWs6xo)L9XTF$3V^UXH?K zg#bXjK0DHK`b%Mg55HKS?w|QS1GAMabIOaOPP_)$79^1E810Ot{H(l37EvrB925&k?U96dC1E)$^94v&6#ZC{CN zA%WRp7uvvUgdRPUuJoLN9SnV^)89-s&-h;k4K8$kZ=5sk92}0NRXRa7ucN?A2t^b! z$(ZJZozr~TeoWKV-M8;IGJUdAeg1+NWGV$<5VZ+OVZr=Uq-@t)sq$QA8wqVx2}&gy zvn_5f25g*IC$=wFfqNYe*q}|ZeX0JnG7MN!<0MfAscBRURxfgDr`SY_O;M9+-(fP! z6$}13_<$^1BQb^Ai}*k}XKi2uMf0f%6&~mYE;Q<|F)_6B<{v#j;e_04kHAVvbiJ;K zPunlevJH)p-t!|ksEg?Ba-XT*Ggngrwd?{Mz{n!ztWAyEo)&rT@-h{KT6r0OfEICT z^ymi2b}7WdNbm{CGPQ6ZgT;z94Hueg6ske70%V4p5s1Z6s13<8r=Pg)MPLdYhvWlV z^MCU^=Yh*nS~fm#kA8A~%{8Z@Q`NZayuSIO?wZWO3Hsr3b<``*91p^4Tip@V7g;5V zi-yR;1#gG>(W6CT*X{*0rfPTvV5(uQ$la`=Q<$X_rPlQHKtVUod? zTqo1LVx8(HtSHHW_d%FnqV--jyF}k-cWYYZjMbs@BqF2J&22rX3#Y_Zju3vl90bj);H*#pj{MhPH@sUevGSN5AJ27At|*BNKMQpi%8{12lJ zxubN}TuQrc|Fz4K4D*jU=0W6LbI)@1evW|dX^G;p!mgj8a(mlxH1g4;wIVL}T1yI4 zNNF%(s+yi>;MlLCNARr-!>&{Tr;AL~pit))@zldYl9*lhDZrG8N=!YlCBEJ12Sh&{ zIU{=(sE-EGetHOZJJTkc`jY8#Ato&6E7GKM$4fW(#n+E^lSoiag8q@BKPA+P!tXxe

b6mVj04e}s!Jmfb4w~3nSCidIlEWj=9SXUw$ft$v}p8|eEhVCz<$1bvY z4}0D)Tj$WVolm?UY?e!7Axa?Gq+(0RkuvR9be-wYQw5gxdB9ag@#^@#tu!bmo4mOC+(zbmB9gzv>CLZ0-s@ zo&hL~BiEsw-+G>}W!!L}G$}?#OjeJKW7jy0gf@Yu5V#el@I+E>ZWLSO+Stz8rOG;O zbhVT|PD`rssS7%WH>wms^Af>cE@euNWi$4N9aP=2;U*cu9`pMzcpJe-elyDvuv<27 zSbm}-q>(>33Dqnp~a6I0)O z??P4ki7FM-C$XC;fvXkice~1W;N{HFPd>Hvi7h{ag8SJi?Y}ssRUk0@DeOb`Rm6O%M2gyR2TEPEB#x`idJAdejC!g|6HnI;9;baADl{As6zI$D$ zy9iC~5j3TxtCxgE9tHEj%-d&1t49ga*q(?4Y$l704NJXJ5@x+?oRc-t;4F$pYH|*i zPZ0YD`zqBt4VWYJ&U9yoQ8=a`+rn3UGaM>`t8IM??y#guG9D2IwDM<;{*Jp9lj=LxW*W?5osQ=dR(*s7;E~dqRI}VUUOLmNfS8jS1tuaofVPN=LudK|xLD~E$` zOF9iR5j4(l`@Y$9+8T5k6NjwNOP*_i)lsN}yR;V-G6^e~nJ_R}`+G~L@8c+Ca@_uG z+k!hxw?v)hV(ZWLU$Ln zi0x<56smiXQZXbJb%SpJf>)C%j3_fvpifwdxusous?`Nq+cT|ijTUo5!0)xTXY5NO zt83KQiM2iR>MZ!K4$&bH5z!sznawN)EtX9^Y@H#x{k4d$tC0?Khz_i5h>jSMazz>- zx;ho+5nUb|M}x)4xAUu9w7W)sfmB(#f=31OZMkX<09n`2X^-1_N&;lWu)+eSZit}A zvEEs`A%ez~^DL-_YU{Rr9K$MDag(>v>H~8lGS%-<(GbF5vnZnz=!2-PYC>S{;Py8s z->JK(dED4)HBSz_9Pi_kWeX)9Zu@uU?hs1;-zjfNdzt~&@QHLfZVT;S;wV7Z^`t*5=_=ab;FHwI?`rsf+DvqlUMKC*8q3MXyOH*N%!XQ^<}!GX z*!T|A05{JS*vW9E(c6tKqQ+^)prbY?G1fv}CdP9m*&A7fJ_aAgi4IUkTDvc+d23Pxi*iL^g4;w3 z_|pIzB*83Dvb!EXrX%QncwF~|IjH`0YJQ4i4op;E>+&nBzn#)6tMsGw*_CXOo(VgX z7Vg8<;Jd7LFau|FEF1ZKx67ceebY1s&^EKm`&c|xj6jP~0RtTl4h+&V=qDQwWJ;+= zd(42(=7l6gI?Ks&zMYpph3bJY)p)?FR8Tt&Zr})FX&*aMkx3MAK?4;sNHj1ai##+q zv^FKs+>d2ZGGuA&(m^z8H!Rm$<=2!h(pCnzh}Q;VC+U3WBCqz@U*dGx3znWSJ^vLh z>V^;($z4&TE4H_pW?|qh5W3mQRbps)-)r0#X^3MxA;sI<`IccV?<%D4jP)Myd3S1H zUV3udRl37i_5JPHEd)80Y1vM5o9k`CeM)m%?RD*HI_K3cLnplJbvfkM#D<12&ve2U zStm6WnXA4C)@V#_=W;RL=22z+VK}YHPHpPr=R7_qq|z=y^*72qtA#_Cy}9QmbiM0> z*PdLcAO?@3UCfIkUdbw7HP1nh^KUF%<_Ge~$H0B+tbhKHm$QSD-AJ$GNZ z`k%@-mOHYxjrJ@|6-{%17~$$t^&=Y(AQ>)j8PPEV5mEZs2Lg}H#!{0oy8x`28y#mT|>EKSlc#2@WOz^uqrk5+f5^e-^g!KqGcgr$!?<%Yr~Li!k8 zX#F{$4i2!|?o^8xaed#WH0kjz+>YnW-iv9-)ou|Do;}wLCU(f1@fJ{6gDr zmiwhVshb};$wg&{`XiHnTLQJ^#dIb7lv|L^yF*vP#rrOKA%FvQNA>D09O$C?X9gcZ z!e+|mFeB%prK>w;4)D7SRJ%b8R?c+HqLdAgAa8Izq^@epo|aC%qV%j`QrS+{LQs;d zA1ybki=o*B_f#tUF9ew5qm&2exM7Zqz+6N~VLndm^h4LECw5LOAKy}%e1gzTp(__P zV~7 zcW4i_mnJ{Sg($gcV*~Pp5v3R{7mGle$;6`(2UlD6nYa2UK}<^1tE`%gu~e!A^YJ^# zhEqACWMkh@!<7TQI{3Q14W*#1{Qw-aeZ#Kc);E5N-JtA(xb3C7W6qzNs4F-VH%q1u zn3LjGiCGDi0nV?|vKT0Q2LJJ!&_RXD%|}l%I$G|O$I3T5(cZpQC3d)o#)$d#0o9yZ`WxjPq?`Wh`I%L8H zWw5T60Y{KVUK1s~7N409mHDm)9Ojatm%iZB4`XS)iOn+MGU!2Y?u0Voj9@Q#O1o@A z6gN(4$1N>y{Km*w41HEtTdIoi9Myxmm+TgBr?mX=Q66OSJ$3>i$x4Y?9ACOeCPJfFA&k0Q>DJ6!<0UVg zmjKv32CZlhU^8gzlH(Pn-ys^uxFAJqPIkq!UvQxVW0|ooKEEugE%&-jhujli$H-fl znYAzTUrmle`sy7vd8LnSi3@#C_@|W&uc|`(ztO3SUAGWlv_3KQg6iI(-&y+NFVL#0 z9?qo4l!U|?x_n|NR4>zWaXmd5*(<>$s64%-G2sbU zVoNGLwFrJcYtqqURw(259VF5x`0?21$gXdIWPxr4)nW8qyMr5X2CN zh$bwEW-Zmt!#n9CJIeuZleS^@m!N&tm(1D?z@uPYbRDYQc^7=_LIc=eL@>b|0~ z&!}9q-3E*0n5xW`!^S5O}=;D zQ7#8&dD9+^K;I4n<M5R^~O{k19Rjbw3iltVowOF+(6;u{k z;!rh#48mF@jAeI&7OLaGJSi=;}!l{^Y0R;KS(&G*t=3FtX zEco*W@BjF|M6e3|rG}ST5AKXg$|lTaCe^LIeZAr_=_IRM$lYnS<4B!U-ac2mpa|dm zRGCIvGSY3{k4d%y!JS-gK3PR$rM3`hsz+Z#Lqw*wz0l^^jn9Vv7H|`RVWwk=53GJL z1~|mC#x$Ya(sMo^WWT2;ewaIOecvl}tqDC*(Qn5aGyOY($Eb21Y(n!xCM z)xF=xa3iF_p5@M8@tX7rW(H+Dpp^67CCLGQ>oFyGP-P?%=-@ipgh?p(k0>pxIJN1! z@K7^*^1zwW*xPaSe+bY`I|o@(W1ip)$34He1A;; zF1f#4e)cGtYJL_^)z^CzPSy9(9{-NWu2+>FTvQP)>QWKyF*u@?SiNpE46eTiu`)y_ zEwk$&@z*t2o~AONM$aZ_kkPR#DZS9ld4J@X^K2OY8BWQDlebukq%vKK(@kb1rEx1D zV9s+Ka_1G-c-bU$bVbQ*ow#BgNr40uc3g2qC+lR8BobSD2=%LFjiH#Sa^Rl+5z-Gw za+JNJAJ$8$e2JdzXPURcXF}Wz>i_wP4-$r-5nQH9`#SS>-ZezEE4S8Su%Oy3Op1av zQHj~%zMAE@m^;ApDUhn1>o1OUnh6KtK@tgjh=VW|sj@C|Na+ugYfBC6(Yt%6DK2U>{`lDjB z=cMCJfR{ADs_elc{GM@_2iab>?kK$rlUh-t?oA09XWx05J;}}Wa!+Y)dYMflmByLL zd?*uFGYV=9=~5W26AHgd3JG~y&komo!X-}T93-C{d5NN2#94;O^x=Aer*tfAkr{?j z$BJ>vh{s_UVpigRQZYyrfeFjWNZq1v0AvjN4{smL)+~A~6W;PN;mv!g3FMU_wK`$O zkm-alL&n^tu7PK(kx5E-1>yP`)|nXm34Jay>`Sr+=Oc^FgRc>(?0GxQbc?Y|6)@z! z9B)+C(yz+FxqErzzfSbFzKctdcr=WFovi8ZCSOA@l}aDcJjOhruXs6XG`G6c6LUgh zI%=1>Q-p_~l@FgUqv7qFf#L;^rhBk?_9^n{vRQ~4AtRzXF!!m4NvN)!k*alKL%+wh zX(^|rjd=P{up>L-yL7#iUw=$vzLF!YkQ?bTA(}H?^x^%-_b0%_sXu{!_52A`XAs>k zf_GkcWxVt9qkup2`N>X|EaqnkKa2QTgg;?;7Jov#f7zVqje$Qw=p(NmgOWvUX4Ze* z-;l8P7%hi_Fm!I4lyjvVJ13d-hW*l&V#t5bCJp9O8+M+1aO>)pnf2mu@^u)^tT%V4 z_wDN~A$?p)3$NOa5eT77E!KCw(#}Nz2Z?Z%*~O^6rt?Pl)1XxJL0>w_1RDx7ldS6f zM)YbaaH5QkmswxzNxNKq&>qd1jo#0zr);%|In702t(ayVF}I9`8_KhCYzE1yFT!q+ z2lCwQr%$_eqhpj-Hw?N%jUT8-LzW<)XffYat!2-Ja5EhO%Psqj2CX^Vt!R{_)NAJr zx9`OwGMxv3yF3{^MoyD|Y3AkJg7$5&#Kcp_28>#m%;zV;T1lzAJ63X$hocGFk|t7K z1zz<-EA^6c*pePgT2oPfXwV+oet}+s@R~!-c}s4+-r$YuB9!L!-LfkEFK0bpwR#FK z6Ks=`QU{sI3rSXJsptJG@*d3WwZ<{n|Mtme{K;9Ufo~{q{Gpp=cl?P1a-=qjjy@5C zP#x=-Dw)gGGmOYG%I*JC_YeZqkBtrch_qt8vs}^P%2PQGdenN@OZCP~xg(;MWLp-` z8+-CO#KM_09T9uTK4bL4=%+uF>hH?8V)04X?4USrsdRU021HW%eD|_zj4UMwz!)^n zzx{lo%s34QE0eAuqF@M_3fVl+5?)%wHO$jUEQMOYLQ>irH?mAih=n_7La>k6%A*C$ zmB191YRu&8;*%Am={6r#fjA2ZJZbm=)Upnt z?x+&R8qCB558zUX`X66!6$Ql!k*%s-na3Q-mm{wd>G_ZG*$C6Y1XIr2wi}OgO`1S>Z3@aJ)+%=ib9-qqp^Y5lwR&s-g`sn1J(^jzd3lS1E>5@p*L3qfjdRrlW1Y7H(1{MOMmbF_KF&QiSzQu=uOk34!3N*U{wxq*&~Hx$2te_Y?7 z%{6nJJ%NbE>FK3R4y)~ct6|V|&T2qIK*z9i$W?)*zNCgAttHF}5pASkb655q3^Fch z?m?{Q75-IkesG+7RgO4-Aw}ti0Ycf%h^EX*8qX5FP^Thu7B|}xeSGdFC7W{5vFZHj z{*n?6!k>+Hy_1fUXSYnI_6pR~^iy7qtPO)Ma&M9QdxV-G`EA`}X|vHMm6rbS5P%A;!0L4xWF^1gtv*j`!R>h3_*idd9o#&cSLjPe`}dVSsWb z06xKUwJ{FvmT7NX_n>TBrnq}d9ZpWygDn_FsKruu(}a{~wc^ruf+3Ll>V~lNj(Et| z`P5C92gV!ofES~+G58ObdRU}G41K8c8m}!ZkrC9v2!$>=SqQmT;dCb?^5IRBEdC$9R&-whN3hrB7@;M@qc)Uf_v;bPq4eWZ}r3 zj}WC?ve*rqvBrrVHL5UqgtaJ3SlF=EUJ4022YNw;Abc8+bTzv_TbQU(=s=zV5Yg^b z1we$jI(huw4~zAn_tTBnexd17{_D#moqE1-7H4+d4Kye5FmhI#6sJZMu`%Xwng=$2 zPAi)SFu96&>Z|KV_zH_sEki8_BQwa5B}!`z(Z{P!k1l9B4tJaGTb%rvFZZL0gcmhS zw=vhZdsDE58qH%`pOw2IXsJ$oI#g-UTVh|32MV6M>9?#mK40nHgp3-tyzdn>rfU&< zDlywKI=s0B=TR|fMIMwr9J4ajyhRtL^o+kSS+ZvFY084|q+xOADA$3MYdwk)AuPEI zmFeXeQWT&n_v%w2!a|Q313x6 zfZiqKLvQc`okq*fRBX2;e>*d5Yqnyan9plv*Ts4GZ+#9=!5&n7{*#V^?c@P@7Pr6A z6vz?^dAo$5gnTspffz-9z*HBKAnua{+G#$E>314ou~PeHDP#1~%rm$LZyM{g7oQ+& zh#w^$GYMe;GnpRAM&xml37(xtFdu6_9qHB}2q+1;TA(G!Dh<9u>vbeY+G}B6Cj@dV zE(BSM{+XQ)30d6#pu97GE=#c|EgI*nBQoX1z8DW{^)b|X9UKwDCzfm+EO7?p&3rpv zDZW-D1rfIriQ~OnxP&1LKqWuz(aPIZfvS-`H~X3GYl(b_{`DJo{}E7L=(H3dt@&()p2!P7D~vf&)O0Zyt(YnEI5V8cT$%H_OlF`H6Dd8n-u7Ho?OW@U^@q@a7_xZC zg%w??6u0R?CY5immy=Me)bF0nHlILty5K@)-*fW`gteadJb4h^Bf}z*VS8Ph7diI?Y1047?2kP!zVP~8 z)*qEO9L$N||Iz*7cg+9jFS4J?m*m!D``Xd}2kVF9g@mt;iJ6G6-%&xSJdrERvZ(*> zd(1kOIg})btEcWAYHye+&ufWUqJ`>fb}gB3D5IR>a?`h_7kVm0U`)C@#(L6loVp;3 z@QdQk9Tt~pFUR)LJufVO9iL5OWxV2|@ng=D4-OWV#D174ZM_Na76JtY`Q2zDai#0I zDhfgaEPi$AO4^m`A5V%1Q3YE6lD8$fjyzn%G$)pk-A*JNK=-kXh%mi6ij*G-;PbZy zw1a7=Z{TO{C;$mSV^{JX$?PD$Vr;dAw)P{6Vp0BflgxlJn{7K7f|5LFQNQfIBtBkm zTS9Bb_?Aj-{?4TLiZGNY4)#An*`+fyEO=Io-&8ZPQL8jPprXDDKL$A?RnZ6&F4l=k zb8XOAW-`gx&SK^zJ{8N+t_0QAA4NVhVB1$G5pu(3RPdz7m|p<9+q@)Ux?`!5Xf zn&HK0-F3WGM#%}jaM)858zk(R6MNye%jew8e?Dh#JUw40m~!KGiYI+#G+DYfLm4$} zODa9lQz_1#pB(t=#g_#t1oS+s+6G4kuZ#U`M%+^q8hIYHTdCumJpd?IOYMB!t=5+7 zBf(9%`He-9f0A7I&#vFNxm)DsZeMft6XdI$kBegm{?$1jSK|aJH=rWc=n5get+@ZW z3-|vTA~w}fgZo5gnkP6*_1Fc$N)lX9x+*MX%NdVR@xET%fXA*` zDQm|(sH`NTg7oWar0l48|Fi^Ai_)IeAJoaJ}0IS0W8WxZW+T zi*Sv}FDhI`2ZvdAiY}N{EqQX=a(o1nGYICtNNs2_O< zN6=!L%a>FpwB3(|uz){U4I zL8Rg^#-emA-Tk?kaI!{ij?L26`J&{XuOX>L4J-=$`r8GvZd8f z$FDagKVk0Cx?wE^tXQKgR$m&nCS@PwX|$$)HZf|1ti-DL|CQaLz>&ilk`{W*CqJ_m zSTR}w`B;Qi?T94qnKY94QY&!_CD2j?ak-gnM(Vjjt{su zWQ8!cRZ-;XZV@nGR=3EkZfdGAGTv86-}U7&wxi8^hiawhiwfho_xQ&0ROd%Q|Fvh$ zJi*gHYfpZXn5B zzC)#PiVqi6mrA=@?aqi~7KQ#Lml2UHuX-Z6g*48o@FI=(cbG%pVQVD=v zwAm3+{3e1}#O)A~#_?#~!7Zh6I|XqTbr)f36=frd#ii#<;&ut)9Z`4Ty@+B+=}FGn z1S`&`Y#OfA!|aKYn@zUnZj3B2S9%9xH1|h>>xbm%3+S>hbUommu90`TqRYxx3;Bt8 z2rcZ$Pn-9WON18ozi*%Yd#gT+2P6=o*vbD@QncM76zNIf`PKz!Kp4pEhhcXTe^9o_ z$0jLK7aps^i7C~a*g-)GaUjQRtW-TcL#qvThF0r`i6BL*MUZYV!SB`e+N7)1x`LDk z%*7e(B0;)N2`U6>k#?DeO6OE+7Z4E8VPWc+<}t>o4QYC3JEf_i4>%=+Hmx+ZYN5Eh z$zsZ)*y7zFNI(=!D@{+xCQbbSDp6~LBMuz$U~#nW_dJXYmm@D*NK-ihz>%iDtj(s< znuBbzWo-D2%fhfqYw0VOTv(DpF03=MBYlKbVsi^SvFObt2x+nQe70RKY=i52!d7+G zEy&s}T@SdUTjUPm4eVD7d8_;Z@|NU$-BoJZmbdwp&rjHKl@&*>r!YDktzYdWD|^sQ z*#iyE2`B)$Ygb3J-VLGrtn*~1eUlw}sb6TV-J_GGuhth%7M(L~>nfO<(Y743Xs)9? z_4i_-d%q@8LNEmyZdl+_#v)GTZh{LnhbiB$VI8C3LX8+*O|L8BBgxe!^XV1}u*84) zjPJ_q31C)kx1Rpnh6aq_M%}XA>*ZDycn{Qm$vr-9bYLU8_ox;fjz(?tpfD2cklplQ zn2>0j`9%rdQ+SDx60DxNFd?C`yLBbl=ac8-`m0W_Rpxg~7CqQue$j*XG?YYG54MpD zE%aa_D$s)`wJo^`8z9F(^fUpDY@C>t9x(QnM$z4t~i3(7x*k@C6=83 zk~(8mWJbRQ=j-`twv+P}H?oSWR+QjCF1C=%pNJA1T;G+;cflpx)$M>q-6D&!^113S z%PEhu@VSNk=WhI}b(!r5g^~Ib}dOKusA0vxBEfG?r z)qU6+H?hoG0@=0cRjOqOLHw~Lh$T+STg0w5oy%3XgJL`ONpKe}#J0rO6h)pxZa>%U zfHmDBYj(Ci{e{S9CjHOq)6mJC`tf!i03{(}9GHA@(};=}vuGcOsR`yFj0Q z<>5=u+;MrFEd=eqL!UMxxl^BpA(hw^OCq88bn4TNw%QI^+^J7{*=AV-E;{w;U87I; z*ypSRcU*pN2R~hyjh`0gBO5<0#H1B1GwquK+BnQlCp|VKnS-Go0XyA)REVRdX5;p9 z)L-x9s5?1o8=Tz9QUA|z)c3-5+}rJdXS+q7b-4}%R?B#e?cl4QU$lUj5>4^=MEPpO za|^z@h2Zu0YLU)9Uv1vh24C%n=&X!&HW9rYI`*!W&7GVz+;Jyo?In9ur#m@oNlx7n zSL3J2S-*fBf1%p}?{tg2W94`_{v&IwU14jvBl{n7`F_Z53FG~*iM1PHBbEzn#In*y z?FmydWLTRW*U2w5g9L#pyh z3274Yb4A(};^r^P60^J@GhCw``6CteRMF%?Lh{y}I~xwz*r>sFI%w}jdsN2bIU?;O zWVuf~SIn}TKEg4K`IL*7{E;xZY~8aqSmXIo?-)fmSt~)yb?tHxvNo~?E!*OB?oo2z zy4brwb$T_W461u`Xn_VTlQS8u>%;X-u$&*Tm(xM`;zWC^L5^OAgU}D8Gw~X^gO)?_ z8cybjAG9oUt^wL|laG%{UPe z;kac-pc1$IFb~sO#Kk%jagmXdN1Z80VAD5lARL}ddsJ?#5f{WSyAcXwn zY?aq`121sjps#!U4PvHdD?0Qb35f}Mh0_-biFoVyNrtBOUSzp8p6rNm;c@@i&xxIEg2`c}$W`MGyC3B#@2v#CYpo|xv|m1d;% z+H4P>3To&jnx$rY_^}Q4P1bDbaPHlgYZ@!#r6|H0n08=gT8=R#y*MbEgND(1*4=@* zA{qwd$hw2(l>ELRH4$yD_0&6CfqZ)_0i6k%yM;@-*@OixpR0|8k4w;osq?bYlDSvF zX`l_8a!HbU=capP*M=$k*^#qDmL|I&h18>2Mt&M+ufXKodRQVL&U@CxnPKnI4W3j5Y5c&O)WNk6ZE% zRUFsVn{tPo$tcP9J)?C8sRry-8n3-p28ST0@-AfKr+Y% z=f(+5m6>H0Q5F`r{bYjG33DmHHKw%M;!*KbTk3DPDPR4yc|o?IYJKK^d`&x0zTJGg zTkwJ1(yjDQ-6DSy9wEdZjP&%~u>9o!gIu*Hiu?a|apP5<{B`_aI-f=Uh6<ZX;T23wCA2}q&>UpGX#x_uHY=FHU#h& zccA!BV^zawxtw-x#;Fgsb7kM6pmj!VMmJOAk_`4&n{k?ZCM;?EpqMb83#E; zC9=0edCx|xK=uyH)gT1KVK}35xzQ;7<4fOMDbH%_n`U((APDk5;PS=(lKHl?vbOVSKYxs^A8!cr|oy#tEc;23|JdYi>L{ z)9V#qb1PLyUTp`2vs0-;Bw+_UY)I!}Naxl|UuM>B%eY2BPo(5%tTry6!B0GjjDED+ z0k3q6ykg@N*q-z&B(H~7h<}Fa<{?rSdHvmdmB9YXy(!N9rCCSL_L$yYv-YB~P?bxg z70b(gQS!WzkuyQUo2fsZEHgO;iBb%eGt=%geZ#9=E7D8Qtw>eo;EU+>r?b2((yLOm#Q~za4=v@k z#17F1)SgbSs(m^y`sCc&^~P4vcimMjBa|b`>ttqUa-haa(d?+%zjBi$| zpU_aEweL8=Q4_Ci$D892kkxjD9#cQ+ex{OkuAZzBqZOn@iUI}ZT&cc`D+dy+u_1cv ze0^rQj5i&eG77I%Y<#Vvc41y$@xV)=Kz$4Br9MYR?>FSp_45bGKNEa&s^>6j#eA+m zZQJg&)pfly2yZtX`s8^VOjrYF5K3wOeiJ_@)2qxYcrOLlXlp=owXJ|(k=~yg_G9vO z3Fy6unc!L6^#fRxq3PntN$EH0`$>~BjeD87CpXTU?3AGDX7A-@DiD*Q_s)MgT*En* z1VTJGmSp$cqGm?OtI^s^Id#rEmPAJ1KhcLq^k&8K`8YV1WYONir$5IUEsS2nJTRdk zOvQ+*$Idfw65Pj*cHtaKV&pcfVQ^%dS&Cvbh)iIh%7Xd9Z%zSnbLND5Hi@x&DyJMF zXOrk6_YWtb@urb7%gxy&@_afmye>3@A+@@F%hUWv&QbQyCeaenvfl8Atmj;TJ*|1p z2@L))YB|^HhI8~BK^1kO!rwt1n&6C(>eBbC=Dp>d^1-wz;Ej4$)#-`Bp(IieT34la zclr(ty=3ikd3=a-0?}(TuIH;>a!yCaVI*j4)wqvj#c5Mj=`%RM>Wl(ui{8#?D;No{ zXt|Onx{Ub%$6hb-8o59k7(}ZarWNz1qC~s(VwuU9Cat&(SIgRM{~}L94U{FCh}Qi) zqNW=pqe!X(xlwiyPJuE7tMrUW=Wl|Iy<+at5&oehDt+|U=NdxvPynhQZA)>$@ZCadY84 zz4VRnP9Bq;yk9&Jri{HzPofP>SETdf$&HIO0D?_N76t3i?-$w5`( zOmBa1Z*u^bvw{0+CgYT7v4LBIr+VPZM6~4wuH~i&m<_yNuz?qg9BUpDY~Y8PLuhyz z0c|R!WbWaiIpXYpW)B~N2rD*KH23BK{BowbMGv?F_XNxbbXd_(pve7%ke5s`x< zA9!1MjgY@okL9?9VB_F7ze*9Rb{SAm?MJTbsn2=K-4?JcxIucCa0)@?k9eYGhcjflDnJe?cNxwcE^1J(m}h&i4%@ z|Dr+lx)s57Z3h;}Op-7dnU~sRRk|cD)sLhY5q+NV49<8scFugE#e-+49~9?(UTcJ4 z(YD;6!zAc5#$=H(rrMT~nc+Y(XG?#bcO|2Bw{x3DH>*VUI-9p_<|~}P*{g${fMTmc zGV_jPsWPjaHI}ihuLy7J-ZfNN$iAoZ4u=Pn;??PO&E0})dK*0Us@>pIrJJ2XgtEW0 zai{D?oX*qE%2ptlx8>XYy{Ep5UhuzmWPcx5wKCDUznhNl+}}lY>D=Et_xI>e4Mh>Q z(L49|&i%b}fA_7+PiKEmR-``=`@P6J<+jFi`q$K-5jNoUY?D6y-}>O|dnpBfdHhJ1 zg5RopUYLUaP+von2^;Vs8+Cyg)0oSm)>zkL4YUtRXc?!JqO;4fT$7L2F4#iP#U3lA*JbeNxh#l{^)Lh8so|9TqPS!fOmq z$-Saa`$Q!T>wOFHy(J4#$*Z3e8yTkZR+KOEX`iZexOdVDU(aUe*v*x`%8xAe>>S~x zP_l)xbn>}`e=-#u#Spj3xf$UpXAntq1`MUB=2mN!Hk+>V?HhA*K1XREO=F6yAs#ZA zN`}~FD%105u7ooIIZIi?3Lu|sCcea_crRAgmsd4hAchY0w=W@Ta;oxP=M7>s zrT?i-$Ry+33!S;#0IqiHd#NgY1MX5yD!JgI-5u((k4s$^L0u+KuNYQwM#Y&GXPq%0 z(}t6cWuivJ4xv?ZnuEOHeP!A=D*xaw50U?S@(%}OHu=}D|3UX3_^v1a60<(b2j&Pl zXhoEffAX@pAlohf#NnuYX$W0U{*{aTlNh!CJo!gm-eK_p!NlAl`B%IXzCiM$-hFKg}LNkVf*AC>`c4lU%UhIPegZyFmfKokwjVKA0CP9@-N=1{Ay&>P`d_E~6RonH z`roH3|E^kHfQgfSPb}aG)(p|pk`f&9IiZCGTo;!Rfc{UN`%5{UL)^VRTqD@*Sz#mC zJIgB5i|zPg({=Glv}#<&cGo8o2d7VozG%V&#DpSF$^@ZFAxN}FsRiQ4pm92j?wNf* zkb}B1L(r;JQ583~1h7qBEI!t_*xnQN;(NJ-wU;%2Umoc*Qd6ym^gvH1eb#?^)ulB^8Eo$Me_8g5qXg*0**4AVrgIFbc0b)HhbZw2t2N8WB8AuGp1jmHP#%K7<5M6AVnsNbz#s%CL z#;hNvM2D9*iHxgI8p+(LD4aHUKtG#mn3%6UsAu*j_&2K%PG}2Vt8bv0;aEgloY-lN z!Smj#?>V7i(35-;+utg*`m!9YhLLZWB%LzIE^(Ak@J`s#VoQYDa&Jg0OHp{v>p*_F zCQXL7S%yNUB5yX2!+b8N=EZcLz~@w7v&+?IpLHngOacrjY{wL;yu z>K}URX$}yjChQgH~Hx(nIFi;(8gWh;{MDUqJUdkJy3mhIfKUw>H zzNjNTSRZkT|Ih}4*iNE8B_y-rv0Lhk@7GTeJvO-SHqvVP&K+@RbpJZ;LploiBmFdq zKdhKanyk4w-<|vV9jYMe=UdK3-M?6|TnYklQMKN%PHkoS&>UYY-x{wfD~m7UNqs=UaHtmXc-&aF_edSj4h);ugF%Meb1_Glt+9yH%xE zQ-1Oh6@bBh&3-5Emp57=DZBMuDiF<*Q~37Via8 zMKtzuBc4S4)pyrFp^~5b^W)}|^|!11cT{RNZRcd@?;zmx!@L-+%i|eIcgnr>$_*td z)BhG>cPbxsgdK@G%<=iU0i(p36izzN*E<98CLb5^HZytd!q<@>+rMeFYXjaSvC?`ui{1{r%E?y#%bo9H-}T3 zIWJN#6)#7YJ`+f~M6eL-)GycU5%XleYT4n%Ac87^pvr%Y)%qBu{X&r%!9p-8Dri!+ zpI8}Qc~@B%d{CE#{1hoDKlu@nX3ItXJz2yw5@n6)djmhhbLnYb@uu-y{nc!@Vq-P8 zR66U8wuF=`=l`k?s;;WatSkjp)A;#U+KSfQij^WvNsOsvjPC|dLie68A7ROhW#g&| z{)^1Xu!dl?SXm}WO7XC`ACtfBCw%RoD!sNky^f`uO0NmjgBvnc0@0BIl>mod;8$z4 zJjLu1!s};bWS&`580E!!ykx3*^H3Ki(G}GVqvGQ9j`8%?Ou-MIew#fdUpj`zG4G|P zt7;eJ!5PKUOGR@Eh7ToQLT!h-p|;*x^G53U${*q`pY&snqK{7Ax^>$&$|=mzr}ia{ z-k)4phr`GZU-bww%z2WCEy(6|WBql?$+jZ6HnlfLGKg95X zRq6MWX(Rfq<*Csx!U<-iweY&phx_mG#cPiek25_R%4~5tL7UlPIYEBh5$Cqf(i*Mc0!TJFoBxOg5nXFgotOGRUkyp#@88b$shBdJ~MwM zJ)dWF-{6oS+;4t*sY~PtyI^_1`Bi@UN^Tx7N9u}~eQF<(>-S=os9EI)y%1vV=Bkip zRO!=zCRb%GK1O;l<)xoaqluK~CE(UaB91o5+)H^WsFw6qJyCWGD{8-4KWsxN1vSB^ z5SO+mu{=@(-z0U#gjkjF-L{h&BX-{?!8u2#R68cN!-mr3XbeBDJY_H z$i%3G<@Zaamy5v7Z$92izshu3O=Ws40S+szuyIpYdTRYce{wiuk5w<)kle21P5N(f z1EwSkjG4<7Gg4Unv|M3676r4D_N^Eb)?kNuz^kLO^YHwZ3{<8*?#(2t+zH*0iwsP` z&yTcZpnN(T8JLL9c*8O8{UlbVhzdCts~;HQ@nLL^Qtx(+`u!Fkv$^=Aj{l7LzT!US)p_g6OE23;g8~AcNcLS zL#kR)Bgy9Es@-fNx&5u37o&Awf(B%TD>+3=l2kS}SX(U2AOsTz>&;Z}&4vtQb;zC5 zJ9J>j$iS#Rjc97EEQBy4xIoA==}yB4@{ARa$+qkbrxYl`3f|fp zBN&sN4~xl$tFl*@*y*oo^KgJ**x8z)LF>Q-OEj-U-ig9(YV88 zptJdi0@no%<~(0=5p-OF1-nmc%ci&m8`scyJ}0K_Na zo8-?I88?~rhW}$?AgosEEXh#uB{Nqij#b!w60mCC%6$0yd{yGu5ZQ!OPTEjD{nHq$ zArkN{NI>c-CAp1A-?=Gxxd_6+@_{1Bl@FZ8zwP#C`M}>{nFq>$XfB%Ti$2Lsn5&Mw zFU;SZ2o*@5p_;>DJJUz(ET0HOQ<5iE8(SviQ{gtmiXMvwQkAzx-)KgeL^3Rqusw_l zO43^fVW)4$(B?iC#Iaw8R}PB#EZ|)30}&~=gS4|Yd{yb|Z8Cpx&)hZ4pR^NV{;u=d zT$L<+b$cm4sbMjep)Qk%;}m^t)v#pg8*DGRd$#<%=&SM<>fN$DOd?vtafv>dvvn2**4x5{TD4Ww{)zK9pwS}7vlA73}ey}RroUSs^rTi8$?m9@xT5L(Qo>!{| zE{RSaqkJC%X^u)B-&AC@?&Sj9P5+pur3%$2(w$3LRv}FF{no#PP<`8^7co(@Zm1uK zmNCQ=V)ulnq{s8=w%U^CV{PQKC5!G7l4AFU8?jVhb>3>FvF%!>`|`J+>U&qIzL-#b zW4#3!w`O?`f-gweMU1pb^@*5E#m9!Jz9GQ^uvFhzW#PQOa2(0YkbhO_C3dQ|wGM=o z8=~_x^38@}PZo(R3AEuN20N@pwwLG|t8EI=Cps8Q>Op>lXOhfCW|BM(y!ftc1|wBc$XXF;kr2AC z1Z4*mC=s>_LSn~1^C~;t$G@YK*BQD`EsbC#v$216p!8PQDndty4W@5=7Ut_RP1P!~gZzSozOR{!e?flmF}F|EdRW?BxGC`9I^t?&SYG zo%G+j_jK}qo%|nh;GO*6F5&-BVV@(6PpS%FbHb|#-xuif=I;>y=WF!ve_i1JiqLz7 zH1llEzApv*pKpRXp@T#%Za@F`3}$Qx_`hc}t={e6|DFrC(aHb)XYzk@qa3Lc8LF5HGWSP!wPhD&9{BwU2* zA|GiR3`c=*?#ZUPF#a}hBqMIhJhONbhD(CNa2ca`s^N#N=TwTtGLrVkZg&h7;W6Za zSR?9t4k%>I@2n>8jHgw*P)#Yf=aO9ErWeT(pmgwVC(Z$A2T~6Eq!GYbi zH?sN4O*W-)C%$jq=T2;CAO6>JND7z=N;a4A&N^ELI>R zY<>6XwSl`!1D@=>uO9e*%K#W&96yRSB~mKkMoO)B7MBT*GD|9m9CTJgu0%=71mJuk z_gX?O3!1({c$EIx^aQz&UgT9JVKa69dU3;S!tqiBqskog(kHvSSxQ_%J!7q=Pj;6s ze?)UIZTJT>tf!gw-c8yG0wK~y4yBSNx}0!m`%%!B%fn3aAExz4skyw5YTh{_rA&-Q zb$V;nytP>)rEHM}nVO5T21@zwsEkjjOs~(GGf6~%mC)YF1DUaP72@)baNt0+?mh{V zniGUcHF{xEB>Ay${Ndx;Hq?&Dkn7~rr5mdn#%Px0U-{F|lJr=T@$v3Lg_t@M9Lt7> zQ>VAGBp(QaAJe2qQYC$s1gADJR?iDdQXnjeBwve5+CK)vyiU}UysjT7XVMR{(wxb+ z2$y0`n{cToG|XT`5HAI9E^=tBl|wdIstKLnB}+o7yv#)jpy|#sHPJ64-_A4Gt2n=iG)z}@M34Q+`HK|f;PSC?ipcN_B;gBtj)zV(NofFmgp%-0o$I`$@h+p zURilJB1LjT8b<9QZvSaq!U;&U*vs?Z_fJRSR1y$&>F$;9UN5p=4a` z03z_nr(47-L1Cjfzs)a0ZgwDfHf|GL=W6oo4LmsvMSMTMXZ;u|w`X;y&6o!^Y{1L| zCnJ+kDrweBD6^qd(|9RG9#6(R&@|V!f=Of^r0$M+^I+H><@AAule`*Z1onWKU#;8rLu#I1z_t0aIS zXJFL|=B&An5Gz|z6D1lu>*l*vlqb}C5mh5sX3q7JIN`jy1rz0C1PRGEUSy~z>`dW1 z(}K+MRpCay)zI%Ak(kVF(*RFg;6+qP^pMp62^VRP*wf_6cz2sT$^9*))Q}s}X!JJL zkJa#ku#t8|RK-Q~wMd@K5>aK6ClU1`@zcSHr0Y#YX}eZ{rBm|nA)4wQ8%^b%HCn_7 zyU|o`_snl^0;Q~jdqlvBu0~AMB!0LP3Ej*Ks+!AxYz9=0>`74vFDIf(QX-z_?PhzY z3wnwo#`#viW~Payf#A~@IUxh{j^Xk4cdHx7-@31d)B@H-k^rp9w2bsJ2Ty4L7E&SP zfRVrL$9=VcQUqcICaTlRgJ7!Y{*|%^p!{HlTP+|QM@3$ho4&G5LzHt zY$aV1EhfQJ+5DG$8t^8fep+)TuaK0$;4ZvF&;*pfdf6#hi(>2{bu!TxTYKPlpZi1<&HKN-41{0UWfAEb-T zbLn=D3yVU^?7Hn^ zQHF~Ow98nOo`yyFs>h=AY?|S-D2N49+Q6(D-wbC<&cdRMwJZt|@*>Urlrt0uG>|q^ z&RP_qDhyZ@ZgP8A6wGXoMd?@>DoHu}E06HW5Gl6)l;u*M=E|8VXC2^De#^?t#-$`$ z<5F(tnhuw;j6Z!Y#mhJ|10Z||vP$_7t1o%~VLO-q$WU=?WzGUrEN65C>JWLY1O=#k zGR5a&44I+@s3Z|i7S#<>&V`vdDn2Mz5vs1(F)ojiIU8*vk}(QKb_?6RCpIXLLcT_r zN14XO!=?pFWQa%EE8LJ+j)`nMiflyf>7%zct)E*io zoP;JVX3!|pcxfllC{zqKG>SYpdZZ<%g1hY?jUxA@CbUDN3=eM)88k{T1w0xBjb^3L zC^18$6o!W`h(>W}l$gqNXcT!2Z)0Zv&!kbhhnvz_u){QprlQ5esc6y*LZe73n(5i? zq*1~dY0_*4jUuh@1R8~Tu=8jXxu;ATMdpCdkl>~;1I7_34vR9#eUGHaO`;)7YD?*k zhBJ4|UW+P4KTC_2f|goTk9gTWYh51Y%gg}1w2r;yQ6N*uQNz?Z!sAhf&rv}Y@F>~K zQ9aEib5bc?{7bo1O4c1%sT2gKQYm|eCn-`&s1%!{mXk_B-bs}}k2fv|H?otd6irUU z@7Y_WXdj_cNKV^{REkMXON5ith6jwbO-@VLV#?|KkW&1uXt?At9-(2>!QdCn=&L?cazJe@FInZx1S!7`y1MRGR9+5 zDF3?r25XA!YW`$MyZDpB4)7<1%AYtzDLnopRC20y{)8Ub`TU8H76B{bOR^kwr-FA1 ze=f)1_+y7zwi3!7L5rSekiT@f3g+a*1pA-pyf|~uG%b(;o9qscci*`1DQn;P` zNkImGV&+IkqEP-P`ICotHh+?DGIk`^1oDKffQ+52u_)N2hBfi|4<{ByGj;;*#bZrO zCXZ!ay!zd~)5(uTDVE(>O7|EG#`Qp9*ukgdqEdRJ;^(ANn3x$<%2&b`LA$7we5N<+ zJ4~e<9B!zSO7S96{u8Mbnb8iF(kDE09idW?Q24cih?GOZO?6T!eniTrL#1R!q)35N zpKlR*WD;T~BPfNcn^>d5F9+7B+Bv39UEnH~pp<32Eh8x9Q09Pdf+T!0#RjDu<&!BY zs&IncjUYh;RU$00K1pzt(plT1;GXI$+8nNk*RBpaDxEB$OoT*`kQnIfIA192(; z{bY*KYCSUL7LQCp0;1}6kPX>E?!_TfqWdR4v3QjB@hJs4_!Oz`qhbMXG(`ZAa9glFB`Mwzr~D!MBzZw79|OLj`7w=O=bFE z0-BDMIHSny&+(0T(Y`O~H|(oIQjVf-Evv%&GrsrUeM$0$(j zqVgH*C*!>OTb zvOzp1Py-5>0RwB&75O!d74k^9(re;HS`6EUR0h}ZCWC}Dd3|i=p?pxgRER}?u%k0% zw0WgpCiA;w%*<~E#!7TXv)jA=gs{~I6O)$Hg)`m=&j`oUg0`cRL^@VFF&0c#IizXc z^30K!06$KlGg(r2hj`>3b(~ds^P=&jMB(=)rHr5<2I;1sB+t`9@`5C&Ru)#J#>WTP ziA#t}!|1%(yK5&NqJ8OIg4H(C{JoM}BRIP<{UOIYR;1^>E8{uzK`qxm>J+*8v8U+u zI8MHZ1r6IiikmTqZE9SAbIhhm5~)nD-T04rYxk#nUYaRAtDhe{dCi2;`T>7lI*A^7 zxMjXnQjhzy!_U}|3d>u~*=MHy_8y;o+%!tg-N3C7**a6leW&SYo;5I0LtW&Yp=Zu| z{8mH$*UUR~9DB)>N$^eYwmOf6vPgTOh>6Tfq+d;8Yy7ssaORwD92OFt!SUzL75sT* z_1wYfk1J}IX9yOjNH7;JwDYKsti7Igk{58Ff!xqs0KIKJQ*Lwe#b!z$QblQn# z^zK0d^&ClI1}jri_*sE|h2qL+>cNDv!Nhtc=&_ zRP+}K;?$ecuUFK*)nbt>b2i`(E)sfoC^@g}tkj~EP~ric_7Pet%*PscvDkabTr7Sj zvE<+~{Uai=WsHXEq8S#)PvjC7$n?9V{&hu)x9aLu8NwRPgaxe z;qIMDG!ynttALoTw7$O#yG(Q#Pe{Y0}^I=>O=S|lNZg(9A%eS z`&K5Khe)F~7p4-E84I)dGHz00G_tM5!O$2JT*B;rrYKvM|T zAY>#r7A!$MluJAZ{pg;2Z{-;(os1_vPb*{5eY2tDC=@`JrHz317oAmFf*vO8r_me* zCF5}HqWq({9#5A7S5qN@QJ&(uq3Tcc%SBN43j-vWNHV91|+pwh4tq8HDjX!5q`n z!h{-WOsLB-p{ByO6Ws;3MSNj?J=Ro=U&0>HlfVphE1qJJ8nXS#yW$a6rRBhHNA`4GM_%MReKRc3@tf+|4UH9*Y~6|))8X}*X-I{J z%vqkkA>}MjHKfMxT0<&Wh`u3}_~Zcr7*Qf2 z{u7L-0Xt$uVY27+N9_zFs?7MK$`GaPHKHoj9~C}%Q>>@p%<-nE;VF)bLag%uSKV}EG6j?j+vLb(%IzrYETy@7SX)%i)D((W z%PeKEO$0`LNejpM`EWklWZkU6^K-6xnC$(MA$vWWw{_Q<5#?ybs%PvJt8b0!C|dGG zI@$3}Vh}m~ZccpjxGzpt*OP$c6SES0GtNDdZIzwy2%WxKmn*@6+TNDyJI@wL6n!@5 zSs7cQP&4ZJkrAW4Y-ODZ*Ys9*z{HDG z^IdXc%1Q26Lhpj<*tE1wEA?kO!|sAW4%NRN1RR~wlT_ED|A=zOv)mblR!TG6M>hG|yy#!sOvcy2$H z-Mz$xMvTVoT8~Ezt6)28s`U&j5gekq?+!OX{Es>?#>0 zy{ORTJ#>wj=D7vDeWEusNyV}Zy#X)PVY0%+OJx#uy?Y9rOhHGp<%YdfhvDD|MkHBp zXw6m)tFZTxbBVF4)HB6_u=$S;;ql~!1V8l!`9)sfhxn+B@2SZ1MHLy}6mKkfw468a zOYx&I^Go5QMdp|MNBP;BpUQedy)ZO7OGmzSKa~l{vf58&I%c*sbyw{&6RTef6U+Fk z<}oYgfTisAUVi5E-bhnyD2{ek#8O}F-O)CEQ#eVP+i#Sgc z92odW3wSFMEtR7h9A$+|7m4R@-iqCV<)?mD5>NCRA|Fw_w2lZjXe!LnWK1)!b(gUf z?3jMUSL*~}xOKvL^C;iWqx|qZik4vtFco{}$CC|5%CCCOS&|cjPS@9T2PG<`&LE|r z_0EVW@D8)e=WTA-MUv=5x16L*x*ok%jY|$(JX5D;G+Ea zq0U7m-q{Z} zVOb?BQ*bavhUya|HKH^6#GATPSTQ{0vJ2>2xYQATls2)3NtTfIpf_}?70_T(lN5qQ z>IIC*Cg8m@Qz#}&Uqc0G5IHEqQGfDx!uwl)@;85qiqN29rKq?erhk_-l*`W^Hk`!^ zZ|UKMyLiG@G-<+`2NTAUACLAJ9BFx1ew6wWeOy%!*aTSVa>0m%tXLWAZEAz^sSUPaeOBP$E{ zxi%X4sBoE7{Iy>W-^%{4!79UL|7TQmb(`}$68eaqZf^JgkH7xdKR&VjzjAx_e=}D* z_y5dg%>F;b&dtvK-z5t>_y64c|EILyE5F{#es31}C$irU{~z4%Exo_f_Ivb3jw|Zi z?|0FDzncAi^N8WB_zn{=9OTSbgd`4|`>@tK-`>Z|^&r<3 z2YuM|S6Zj1qt5#&j+}R82#%?$qdTU5&rH+5todTs^mm>%Wc)KSzV**_AzlMP(-G^x z%(MP`3b~yKtp5R@p!JU*9;2^+41%|Sj`evKT-Vkr+yU#~OGFXtzs$4#6PeaOg?6{e z5idoa`oFX7eZx`sPv|%z&`Lx0eokuMwf9HGi|ZD9<~{+z9X9vR44M0jA7>&nLUH?R{ahKM8xE^?*^k0~SA@Z|c?olVAAU|1P6HW{iI1Nc*jR*$y!KS*W?p zeutJO3EYbxq5fFr4&7(N!Xvc9x3y{!N94}SSE6b`fWyu-%0;9y}@CQ_VX zsntC~?@);m;t3i&GI{0}p{0)Ax-D5cPj{ROhBwb6PpJCBB;DQn3w9-Dp1gKJfiq5W z(|m2;^PG0r=6n9rpNB{l0$aBF-B9m!gX{F^+5f?DMQ~UMN@8yUw+|9h`^dccPo8gLTSJwn_ib)o&Kxb)m0`VIEmwxCgSGY$ln1yZ zPw)O6tuB#YRevI@B^6J|K4SFiDiYMi)m%b2b`65F@>L$SIJmbNho4~U5$w&_X3*{8 zWEo%?ZLN^Kw^4i!U>YQNKWYI7LdfxrI>#hNVe|S#^d^%vKIV=ARo;5tynfv0J@EqF zUx2_k13wwgdi{UJOwlQ|pM8$rI!v_9ef^k)uH6UvZSL!}7_EKNzjw!fzuu~4#J4PQ zW}Tm5YA;cp-oT(0I!EL($2N+J%9dmKc4v~8ek=~EAnZlDlQ-(45cPuTv|M5s5SMbM zv1n=DW2P6GXN-B>$6T`a=;!Ox!7t5h9Py&bx2Fm~bn^8W4NXh=Rx$I7{)1-oiF{E< zM;%uQ-iVWi(OGXt2Pbc`cKLc0)~FgX4tmS7o=O65FTGL2=`M1LPQJJKYBh1Qt!d0IB62g2IsQZy$mF|-<~p?Adfip7zY;9bG1 zc$qzM$jjalTqiUXi%uEwI>ksauO5rnJATs=1akSt(PN$Z00e>bF}>P#e(&@R=J!^Bav>#RiOv_b`gIiH+ zs?v?kMSRou+6VKgB{t!8RUA0HrrG_9hOec=QH0dew;%i%h30h?a{FN z2YW}>6x_h=eOy?~?>BZols@X-{jt3xQ}_Pd!+S>_-g~S(mi-F!mG{ z^5qecFQ-OCz7ZQeCU*9i(U+Vv?xOR?jOOn#7mtsP84(-zz0v2M!w036vo1OBoJ+s) zjf*b+K7U6pz2KY+&K~LgykKnP(z7obb^4K5h&kM#}a!%x|v(CF{%-LT(TyBNy z2Y>T{(BJxh?$ZB&zQKLLw2=7@p2h!&*M{?o*N8kemmeXw>HnxPFVYR>UiisFU3AX) z$VHcq<%!3SV1T|1o=h_Q03H05AsJ0B!^KgE`EP%D_Ny zEI0+63w{V{!A+nMYy{B(k;ou$Cb$ON1nve8fO+5z@FCcDU?g%FI2+sq?gCGMCa~8x zB9VR|0ZszLz-aJe@EBME4q!!m6&wS;3w{V@f)~LWu;-viqzC8?D!@hHNzmm;o(CKV zjs&&fQTh8Q+5%^SdNAN<`Unh7L?XWdD?z-1xd{ee!97vMhd0qA-R$0vhfU<|k# z{0!U+o(3<0*TD*~9_)53^8g$Mz5|AXao}<=72E?J26MoR;7zaw^sD3^!F}MLVE4h1 z$XCEo;AAiY{199Reg*yr7J`q#p2yKI;0xdokN_uv(V!Om8q5Uq!TaC~$44SZfaAbW za1odcehQ|7d%@FSE!YP3O>!^b8E`@s>k=Gv0#X9p3myi~gB4&C82HUd$PMr~ z*yCi{2SY$Tcp7X1pZzv-4qOKA1T(<1U(@~OynCV2S7xIci#5xE6C2i^n4=g`++05}$$ z0#Lgmmw|r(Q8)&G?*mavCWEQq0k8@jb}nN8z75U-SA(0uufZdr5xfN603U$8M>4;` zao|)i23!Vy0v-adfw#aq5Iv9f!SUcEPy;Rj*MeKYo#1}304xQYK#%j;d%+LDufZR| ze6Sd-06l-e^MF&pSa3CH0EMHN``~DB8n^&V0=I!@!3wb31&j^&1{e>n0e6BY!3Q93 zbR^Op#K6JeNH7GP4km!L;Jagx(clrV8VEyH4ywTEpbp#u?gO*I3h*K5ej$4}=ntyE zx50355x4=|4rYUAz#HIgkUx&G1p`3}oCVGYwcwXv7I+T44&Da^7cu`pKX5x(2fB{u z{=lhVEVvrX0)Ga}!26)&;z;D{;8^e-@I5dd`~>_OJOy3`AAqixAiF>e`~hqOr(epR z0G)f3L&gU52K~Tyz=dEUxB<)tOTb>2 zA&bG0;1qB%_$8PR{ti}xEui#AtU+)B7zRdzN#I8CC-4;LayfGoOaOO+H^E*LX&)R1 zhJy3K<=`4{7kConUBQ|G7lAv$>);Dl(#K#jxF7rltO6f_!bv~$ATJg3wRkcfz6;xE&T`%1xJA6z+^B7tOs4| z_$;^_G=Mw646qU$IGOtgSApMym%)0_>&NI&U>KMM7J`3+k3qpTj3-zPwt}uxkh9=i zFa`V$JO%R7v;%$wZUYa3`QT+xcrAN4I2fD^Mu17+KJX-X2D}MA2K&~dUx5DL0&o?$ z72FACfTzKSp!7P%5F8Co0vCWO;CAo;cpUr%yav{Tt_{q8Fcka{`~oZjE5RmE^b__9 zFcWMA`(DqQ0z<%gU_7`6`~no;z?=ssfg8cyU?%t%*Z{iTNMC@yU=TPSoDN2S3qc+D zHFy}z2G4-MgQehYumSA*Q~C=W4NeAUf**qGz)J9qo47u>2;2;2gAYK#&GaAW56%P= zz-{2SU?x}q-Ua*ojI|4fgR8(#!F}M$Tj+;d>8qbJ=Aix;+$UHJ)__f*@U}=~fAAI1 zADjegz$M^DFdfVVe+R3;X3*uA%v(?b27*(-d0-;A5!?+P1oOb&w{suhL9oYE)&m#| zCWG6+AHXxbwC0cR)cMz z+i#F7pbA_Bt^?D-3*a5F6?DCeIR_2`Uj>7~P;eo*7W@W00p141ceBpH(cmm_HMk2r z1fBqm;GbYQ*aY_aEp`t$5sU$kgFk~ezy|QSdm@okmu@cY_DPQ{WA-4r~E?J_MHmdVw-p#Tfn_w7Wgw*0@j1w=CC%v{@^QM5cn224V(iefG5B@&~Gl+0(IcG;34oV zcmu2gTR?OkHWN4m+zy@q?}7MJ$V5;L?gVSVKJ$^qpboqSn!z^k`33CbpaNVB?gr0* zcfmHW&qCS<3GhvDJ@^B76?9+3|3Ec33tR{;2R{MRz{4Qg$Y;UzU?zADybj(6U7kip zfFFZjfZu}|;6?BzSPyo8hBXLEK_BpSa11ydTn2s#rh_NJ%b*GLc$T#U4gy2L1n@Xm z1YQMigFT*OZGc{&3>*%Q0#)GqU?R8$JOEw;n?V0RGmpTjU<|kn+yxebe}j)f(eubs za1OW*+yiEUKZ7M;J?Q-x^d@j3_yM>C{0)5h1!Ovy2!0Em25*Di|4JW#-k={yg44lh za0B=am;vU2X0YFj*e;+7oCd~$iQo><43aN#|KJAj5SR~^fXLq%Z*U;^2B-$#1LMI} z;5u-`-_bikub25hxCGn-o&k$N;XjbMU?BKDr~|ix-+@QK9Pli78LR@EL6=t;GtdVd z4^9Rnz*g|ZSLr8kCAb0H3s!~H6X^C&B$XkjW1K$BxfM0?8z!TsvU>Rrz1W!b?ENO|9vlJ&fd2#6fTzK}Z?PW0K=6OyGH^ZkHFy#1 zz8rZ0jt3`!Gr$CJ9k>`^WY><3ub^u@G4jjN>{SSfg8c&U^$4cLMDO}!8mX| zcm+t&0*Rsfd=u*fj0C>{kAfG#zrp)p8|d~n>mGa!oB*x`4}#~xGSCdRf}YLrLf{hc z2QUXTgTAX76EF$f2mTCR0qenL5M9IPz}G+(_%^s2{01xlZ-E|b*&o5N;B+t^%mrJ( z-s_l~U?50=Q^EP*a_~5K9=rbNBybM->_d(=+<{vl&3;-!G99#{41|9_S z!8_nH8+dMT7MKKX1iu6S1fThU{s0$%o4{|t!(cvm9`x9Vya6YJiQsy08@LDj5iA1# z1Z%;EpxY+K0rUgaU<9}o%mvSZe}I314?+Hi?6=_S;23ZQxCZ`u*Vk05F7|9z^UN-U?R8& z%mjY}D?#LA<{&r?oCC&!AAuXe?ch(~dGIQD5A@o~ID#s02Dk*=1O5sYgB9Q%um$Y7 zjd1{F;Basvr~zZZwcru32rL8dgYJ>M$Wh>2Fb+%vQ@~B&4)8lL2RsXwgUz5zUS6aW zd=s1jE(P`AF7Ptg3cBw0|7d#?_^OZV&|g<~?!M@1K?np!wqr-$5;-qz$gbbOK%leh>H#&>i?Y;J3giU@EWzI0@VU!cIrr z3&6L4Ujk!+=|B;%3|I$j1NH%Rz-=JeIO1Lbz7G5q@b5q_Fb7x(>;jxFN8Ibc9{_&> z{6D~tfS&^Y8|V)V2j&6gz*gWa5OG5f@NM8-;2(iWzy@FkZ~!=Ac^z?Y0^bJS0)7DeFW_H*!N3?`4NwJK03HHueU7-dfv!ML z;2(hxfgE5uPz3A&&H)a;Bd!hb6`&XJbKo~XZ(tlS16U5M2QC2*fwTbWfwzEv1Ns5O zfQi5&U=>gW90FWH=mFjY-U9v>7zs=P<^qd>GGH@M1DpqL0R9kk0e=j10e%7W2bKcm zz*b-{a00jlGytJ6v;kiMz5)Cc_zf@|SOk;<)xb&M`2^$#cnjzT{2lPWfrUUha1y8k zZUZkzhy%s|hk^J+KuO-vIz(n8#;7M`BWdQ#J_zU32z%PLhfgE5gPzLM;t^nRPlmq-7@K3;h z00V(SU>R^6xCXdVkzF7i_FcVk+tN?ZaM}S)3IuLx(5tj;N z0Ivey0^S3D2K+ma3ycG10N?x)G61B!gggL40ME;gxFnz>@cY1@1MdN+fvbS)%Z|8q zz?Xop0^bC_54;QfBk(W4?|^~81Yj}nF|Ze?1+D`Rf$^D+xLd&gd4;|VoCp5?RY%2NJ(Z z8v%a+tOG6qcL0-xoB-{CuK?cwz6bOGeg^y&$OC@(CUOFN_%%n|QQ!~%ha;{4SPkp| ze)M(5DqsXK8OR4d0xEzi;1F;FcnBo_9{dF^1ATv=Hv0p{5@0v*$DJ8lfqww50PVkl zJOW<>{t$Q@cpvx~@Xx?xARkx<>;wMvoAfJS5HJnc4x9jP0`cFXu0RLiPl2BUy@8>? zQeZu>9k>Z}{5J9lybb&>;5R^DU;?ll_!u}1Tm|j}9sZCx7WfYE4)8-@F0dFl0W<*r z_($*$SOio6Hv!)tQx@af$6{kU;}Ux zxB?`67n*=C18)I;3;Y83SD-I2444EI1F!uFat8bdFaoFqjsVwzq(6lZKo{U=z&`_% zfscTLz!~5U;Qk)%3S1iAvh1V#h%fi=J`;52Xx@V-T#27V8C8~7XG{{{X77!S+@N`c)#E#PlyaD_v@I&CAfPTO{U<0rRI1k(e!hcRX z0N(+A4E!_jTVNnC5m*dt1daihfCj+#4*ddn9(W!22JmMmR`1KTwmP{)WT}N$QxBGQEvDrnlME*3rZ4YP+wk`uDZHp62LfR<;|E zuKvpOfgROR)Tus$g!LJxo>za}3zJ_|$E_DHyrhomm(Rbfj`J_i%p~c|%=4M*pZv6a>Ag7}J;gaJfUzdV2n zL1!}Z99lx+wNoQ|G3?`_V_E)hj)Ns!#hZ`ldYg*nRS$PZ0JNp17e^N z^%>0hJA z`IXtQ2>;wy*TEYc>s~$d8knuH;1^-R-|(hzV!!3YbB-UF=cJ~+9i|{skSLUCo8zC8 zB2~t*tE~tzj>`1>4(iD7P}jlnzNypN5wSR9I?{||`t!Lj6OsFJ>B|&V3auJk{W8kK z`{ukhEXihO&dJ0-Co|_2O3ZnM8g!)wBHqMWig9GWvHcCIw&x9LRQ$G4ao9Taw*5KP z@gtME%oG1Xrdj4G^n!PduO>mfVUD@tnJ3{BS z|G2$`e%!vYz2nEGvi*Q`@s_0D=m-gmX(jRA&glI-UXfw(-g@!aOY(c{rRtXvlIoX_ zy{uk(FkY#ycxPso>u-4`Dorml`qgc(O7NlAj=v_q$6velhVY$s!5fEw{^}{C(?mp; z(Q1!NWEIB-A8V$rW~*OEr#UGbQ#5#A+f_35tVxq0s5!oRJKEie|GbEr#zjkj;9l$= zaEmd|B3a|p64&@*iF;h|p45-pI=b7$Uvvy?KGy7h+Bjkp*={I_L=rw(UL{9V zKrGhYpU`J5dfP*Gdv~=BM&x#|{yFlLzcC?F@uo>`XP|M8I25`OqH%A84lpegXm|VE zL61WF!rT8B(5}hQi`LebAN=HxxL`mNxs_Q2+gHWURFuUe^{?LPfE@-Qf0?))phLAgxRv&_Sv;K*nM% zxwhl1PPUS@9g8|yp44`{&%9F=XYO~*>E!4t87GPc(v#k|=gTs5o}WNnzr<9gB;0zjl%U=YQz}8)E;fj1 zN`tigI+?(90IPd-+iNyi-K&q7-KftaiBv9~c`fhtzz11wW_S0S&%Kam&c9yqhAl^; zv>ZE=DCu9h{uLO0{VO$DjFB~2Bi@YGzA?OtaGS76x0--%)gp*gEraHNRf0Mi43qB} z_czTf$9s8kj!q`-SNMO0g|Mf&?c8PuqP_khK^>85!WWo*83QjQ^hqMc!=%0l9R9w^ z6OyGFG=Deqt5pt0)m4uB4xQWYJ0{2DpB%r|YB6ig9Yd{Fy97T>wD@tsxhqUaoGOGu>Be~z%e1Y#W2~)+;>Eq@+zz!r0MQEPTAId z95lo;-2)ZVJ-4W}sGXh6=MF0JocB_d^WFlVboc__5+B~Z{(AxO-V1CD!nlpW>Y#XQ z!sB%=8J}=1LaJ+#!3?aKW^huUWK#7>?wgEP$Pvzq=yx*n16u+z%yfe7HDN1s>O!1t zSYtyjONfzHiC&h_yZ{NgoRCA?p_AuCCdk-6K}F8;U_}y^NQQtn3}*ZH%scBvYWI1L zi_}SPAv}X+Nycoq)nq*NR@15X3=&OekbfUq1)9&k(BTk`e>il2qVQ)Y4x*WHY)L+j z*vSe9RO#sX>FZ7W2NAR09Fn3AnQE7KqeXVHMW!O*srfAZ5bS(coh<$8T#tOn_amPa zK=A#@E+!DOOUuE(C3&BUx7kO5GBmwm{%(zv64pDVPObV&WzD%ZzD2S*&}J#Db`f9g zx}X$ZaBcO-c=Cps15KZSG|95jy%l}9v)Ss|2NE;Xd(bQ1`#!kX11_%ci+6>8vUHKj zFcGiho9dk)qBVhZ&JS+Kk#dQjTCev%WVFKnFnB*=E4$IXkCuTE`#dcfm8~=F8)l)W zu?GEovwcAt#Z3k~M9=n(2P5<7_~3f!t?PrrXEvE3qMz?Nr87BP_ZP~lyD%VeqRL3z zefmJNnk*q{ZJb%+UoOMZ@<6rZs19r*2f>>n5TlK;B9xoJ@S2-2n7U?|!4kpf`i5DO zc#+{M&hb?f_Z$-W+>&@{j3x1XoD4&KoEMzpz2Lkh!{aU2T-X{hIo{FmGh#-2CwR#- zfgikz`k;p_Q`^z}cUyGv;llc2c?)PswG*P~!&3EQ_?KrF`wPHenkZUU? z`Hnf77a$>hoD}uG+2_3BWK_Q4?8`bz!Us47t+=*2j~VChKBUKpyE$K44{1UL>l9U~ zIc6-XIrK4GA>tJIEmw242*O*gWiW~*oiIw%eC+A%m9gWSEoRtno4D6#h1X`gY2exJ zd2V{qJoji>)sOZJk-27wZ-HM27_-37iivjDJl)J|Lk*Q4YCbkZcgy2l@5(vjcv-^G8BW`0Lpw`g3N#;IiXC25A~>masEG#0|i`3*$z z8>J$OrQlN;jB~v6Iod|^e1^8s^j*wr>!polM1SWgjTH@lw#KrFKdG_adDg~y$2@MV zcb;ghcbXdOohKUWhbHcA8tCmxG0shLU$jyj=ODZzjni=%69Y=oB=TD{_9GT=KpLivi&H$v6RZj9Ux@VTT;+iXcX|AS{ zF$&~e6uHEn_g-PtBb9fR^s!Yw!I32;_1x|Rd9_ohZq?6DdsnkAzD2TykY$PMBgFNQ z(tBF;^w=Moh30dSHM^0lgMzRJD%oL%T8o!)<%a~c&b`Jssbp;3ZH%CabNo$o-dGwB zu}kAu#_K>6hsQQuv5XoGW@+GYxHjE5nvVHziTff=hojyzOqy<(cN9&Bzs9>1&01ze zFlp0mM&D$@-E7v#7**pvE2gfq-f_bH3SW(=E604N<>#93uKe`#kCEAXqF*qHCJrWT zUMZU;!65f`H;mq{B;aol61qf5z+dCNW>*u}d^de0?5BvtWYN>~+$^)%Hm6jtRX=Uq z%dC!Xk*pB%KW{DiG}U6Is|Eq>tjv?&8gGtj1v$RqKD5H&zGLdW=IeuojAGN%Tz748 zL(hG8A5Y{z<37lAcMw&C-xpXf_VHwU!Zws!`!+1wbFr0_b>0$RvQ3%j5DYIwlPiZ< zw)pxno=buEpVF?6U;jK3~B8Q0@$=}TFr z)|?Zi@`1Zl`)aATFFHT^+yOiUc2R+k}3x6sPXy`eD7)Z87&# zr(iG5GV{_Z(&;}H>9tr!L7jd#os#aRPsa?AWu|wS(*bJcbXcL@6&=dNTgDHuN^B=a ztWKxdZ(v|L?c_8}R}_NfNErU*zNrbc&(ws~tcLOTjf{*i5RHtCMUlflDN+=nu%gJw zMD>qMyq84!dr2jjUx+VB8J{Zcn>r7(k(t-_8k-OVS3sjW?xqjzK*UfXvMWTEVaJwX z5gxWjMT{<=ecJW%^xLPNq`dzBG>Gq`C8J(HpFklXrt-(w>j4aGS9WS zX#MqV2Bt#hz|^_yj(~4&>bx}4=eHAj@LPItC_O0VN{I9*2oX$eq~P6gW@2JK7;)TB z&Bicp;Z<#VA*T_?1r@97@t-O41Q8X+g`Y+RP+UXYr(`s`mo%95k~V=TGCwt&J!?@_ zYye$H0-i-!V+GCT(*mS%8!>+|>1r+}n?3iEWZOl;__gIdRZ0-f9#JW?jVsw>ED0JL z6Cxp8_stQigW$qUWIuzWN0He3D8W$~QaAKY8h14ZM8!Mupn!<2pSXTW%MZ7su z#1t#8k%_k57DOhhRrRMVd7BRsl4@5=R3nm#?CQHHX_agfuA&gT2>+?MkkqVPq<9s! zO|z=)2{v0Y%!&5MiBj`%%83+9&A`-^?ACNPD^stqvnb^aOue6KTXbORc-_evpL$5T z`=QhZ^)^U?E|PS8+kv|0A+CJgkh7uUwtZtl+PpLo_<3nN*r$`&$07Ob#Aw)|}}QG{`eWmdsN;4XQDHp`f{*Q?ko@$~zqG zFw+c|WueTAht*pZJQI@OGohhjhV!8`C|)VB#J9sIV)|=yEkIXQHmi&7BVqlp!F4wM zv>Qvvf>4ZX*r4XfCFFc4o0dJ!7#|)JriNowfJF8C(8Rrg0KT!-KK0EdbD7FfS^Sxm^6;}YiC)=FjdMtbR7yhlQq>*&ncLfX-;{jO1GTq+o%G!F5#paZzm>>SF7##q5 ze4heuP$2#r?N^HGRoYQ1i+@fhsa!oBmy&;WU-kqZw|jvUeadq}I>!aCHv7cHGL)}O zvnpkrwC|)g(#$sVF9f%{Yz+Y390ibY3fB;uNuqhCgCBxy?dK5?E1Rn0`?A z)T!3ObQx4M<-+t*J;SG-xgA!rvduIrJDhzk%D=}!r5zZ?wJH5gow&$Nk43z>aL_58uZDKSFWn)Z;*6eO*gsdY+gikBS zzHr#&@OCjJZBIBscgZp*B89fQtWOc|`jks@6z)<=shEqkum>4VdK93K1EI5|3|X|}dK-8M>mO}h*2qSV#2duUf359Lr^ zH#4~X9CV0slzurdY$pUsE;_-5b_Cf+xVux<-^u=}xGgLEfF6=IKaN%1D#Npr7?i+Uu7iWgAwG)kts}M5p~I{sXW1 z(NA#xWF#B8UK^Fn{F>ZDHiUcp1gAz}N+=`OAA#(Ts>Bpi<=o3sxicEVY8gUTdxy&A ziWwT<00+G{xI;}JJAzj^A!4pZ7P7MGY!)W&5mDL0u^B=KB^^Sw>uk!BcP1k-JCo07 z+eYW! zGg0QX0&G|ky45pUl%LVwO`>^Y_}+ox2JF-2{OQi{b+PbYPdJHaXPT1{=w-%9EY$UP zVbXRv{J)(7iB*nti(y88SB}_BhP#Kzp4<>$DGEtvaMy(J?how@OPfLE=gajV{v(+- zK_?U|yU;{IH_?ogEm93(XwZ=Ux+T`%^+~PMjN=oH;%vV^+&U;pN zx6b-D>(Y92;GQTS_kt@?KC(D%&ZTR#?}TEV$ciJJ1xGngysvv;_Y;Q;4a1Y>%K|jc zVGHDv)OhLR)pJfW4$dgpY`2iyi7Cqq?2GF@{iDk6J;KU$MJ9G znYC0W^g&8Naqr%71xxvtrzB}KW5=vOO^{?7mg6G}$WHk0=_+nkU?m+O&8!qnr8}C+ zURof{?3Kg$?`n?2xe!?Y@qf3!| zyPck&SjhzlQ<*XqRf=R&+pLk5!#??j5hgl_oYb8Os{xjLKI1p{4PQxj0)Q1z)G>4tPG4}9-UxC=!=AH3``Ss z$4m=e69x8KaENZf3<>R!-PSct$LLQ)h&=&ER5zmfrD(Z>!xi8r685U+B=F$y|NX`!p*PHj7@oIiZSXi*ls3HWUe0 zX&L%h#1w-_tlDwbn?#qJ|+JDVPnbkt0+sf}}y>hg=655yjsZ}x&b zlmA!5j&{X$1ZVEtTEv zzQRf*&0O)^@W7HA{NS}X>^V+wc81&qa{6e2Mx(t+5y}y<(lCI{G^J9zQqDxHUlQ8x zAt{v&YvEm%S?e4o3!vqu2)tSR|5(P>kKJ;lILjOsD(Ky0>e)K+a=2TFzo)!vmTtXP za%=n(2};dw(NA`BYFXxQvXq*>a!R6~)QL3^A-ly%o8h#mi4^ucC8QDrkGT@(xI!IO z+WHZkL2V9Dn+$WnGh24@XL}E$U}TuXzN@l!ydAhp=gu%kLiP0O3{xNCS`oq+8iYcf zVFrcS*yrFgKX@(fw~@`aZwiAyb{`Q-J(}JT$;QzS&H+R8L)PqPVpJ?=q8Teiv#xaK!stws%UvA2^&U|; zxr`wD!@W$7e~gZzV}g5R6x|aPzGvF<84xKy*VDYAG-x(TE7Vu|_Q2g{Ax%y}aXZig z^9jM+l!Qv&4x9)^D_P>hHm9fIDY3-YToyD(D?vs6Dm|-7hVhKg(j)G{`fnl^-{gkZ z`{to@i9HBmBibS#ZEqucL375v1Rex!xEfCutJ1&N43O?Vz`aWQolQpLgZJGff^vmZ zFh3<=fwbu2_?8I|$2a8}YZ}Y%-&Fos^OUkBi7k5|uUYswsQRC3k+e1I#Xvl8QY3lF#ib1msguZFW~RFe5o`((6cW^kqTbm% zdI$t0hfQxiqJgu&r$$GbLGjV^GarKM!@@>um;~#2mY<8s>*v3rVSiJIH7pY6usOPz zH)hCn%NY*MBO7bEAyC{0`+FW!G za`oIOhh?@nh1916tdu46`uLU!D_ql57(kLwfzMKGbUT|IiCGBA={QG%AYeq>3aZP4MnzSB}#-aOib-{Ccg-!L^R-G-8Ii?&vL= zLvLp;Lv)78b&hbts1eRe^;SA-WW=7$AtQday2tA*GTyUARO~ID`>X{s%>BR>*)6{k z+GeMV$U?Ng46`t@UM{1qSEHsaUQc3e)1lkUO<-UAT~4s<(N&cu_><+1O?knyTlGh?#26(qsg_cn%OF8&?rxyC-Gk`AI11ku*zB>py3mucDP&1Wd=otM4m)uhDd{3 zL3`jUU>8bDKJSNJ(dw=bG)jyxSEG9eXEPP5^P-%T=q?h0qOKulLh}%*I5RK2kfVhf z)GW3#aygRRvQ95L;OtC9y)&ZTdA!UcmXylcRcN$$QniH+fYX5dvr~ca0VU zn(&_=Wi6T+5hLWF1N$1nY@|a&KB)zpwaN&O;*3Go5SBhEK`NYzuJy2({-rr$LX;HY zrSP;~nW;f10}W!yZU}5gXRWdg@1`$lOAt+rDQcBf*G}K&fHE2qBIg(YyJ&|yQ zoI7q+1+q2yJ{$Vmkm`upmaan;qWxShGrs7ac zk5^^%tW5jE+^2o2dc`>;LY2|8s1L7e48Jy9mC?I&iY#;2+?0v#rt7pUO*Hzi%4F17 z$3xN&xelxz{`Y)>wt<2AY7S`2P+ z+&+%hgf}a?^Jc|3=;oA`Ylob|+~Hm%s^cQh0~NOiUY>vLWd;TIF%f5)eSuOrnpv7~ zRmRb)341wWhLyNZ8r;++UQ1+1yv7e+TaGejsjkhII%f;#W}~(WKel<;8RLlz?;SPq z-tiBT(+PtDBSof11|G4x$TE+DySesYb}LGlCZwzWdJ+>0@^_F3D|p1b8?8@Y9fZcY z21|X0y0u!lvbB$xJ$tf2&c(9&9~4+7bV)(7wjuv)SOsDYvD}o9Pi5i37%oLIX%R8F z2L)u*kRTm3w7k~CV#Wx~5fh>%EcQ);yAdE}8%@Pq=(~3|MXuUNB@7cxjNz=q+ZpzgRt!+7tQ74j26`uulEPYSOHj9?h zs2T2MZiH(Yte4WSxJ8;YW|%iu#**W~exiAZ%!uSdM49)HS62Esulh)15nc5?(tU0X z?W?hnvRSbfeGf%zgeb-~wc7c3YK7y5 zuG>)?^le$Q!WzM*EAz$~$YwVDW*0>=#@5&nGzB#WCe@MV~F>UROZy9crn0nV? z>aF;n3@HW?9Md$k5ZHRV54$}d#%0+9TLi2pi5gMsT`kEwth~}}bI2yuuZG$0!R+^X zOH1^QKdejc!|}&uggzd>Mc0{I+{fhokUH-yrn3w)%U|FpO94N4Eshsp{tJ8U<(a+C zOJeN4h2u3(K}1!Bh>omwIyO$^MbcnJt_oepEcJ}A zZ&_%1m0Zb?#&y253zWdV%s9E5)s5E{7f=HJI&T3b$R3=eOvZkkJkT;_pyBE}PZM|~ zXSt*tsGDkLpj-*;#g#yzjR>WUK?(%FXq`8*+R6akQZ>^xOSeyXcs%}z1X3d^R^h&& zE7ObK0cvw4tHokUJ;G=$^vRHVSGjbEQcsC?19D}H<=7@4;4Y_epJavNS|sT>5bPT+ z2V;l(N1%#GmfT5 z+Q#wB5LKyi-x2Nnj$85)JlK~j_JLduc&J|~>!p4ag=)2_uf{)-Ko}2S55XK!sr$ne86_yfV&Txb z$iq`Y`nmVY{fcT29JOsb**jPbo**u{Y3=^fROfMKmxL_Q8 z$CeXTq8Mq8&(7=`)V3(Ig-T`DQI8xpRg}|2s^uwPLXcDnS?c31j%CdW-$b3s2z^>} zY8D$=Wt;SN@Tgv%IYt}3iU_@Wiq=gtr%a&?P=)T*a3#&GW@KkTF6RcKc+Yw6i1gg^ zU1=0F$^H^@^U?xnW@K34xgz$*8gFkqQuOw1mjQ0O?*SDgepvVlVkMKK~L)*V2oJZDemTi*%Jz1lzZjJp4h3&G06J@0)jJ1NN>_8h(J738plr*|c2BM9fzB zS+4ak;{(?y6aTefuAC#u4b9`|2YyR~@Ii7WbKfXgXy6Jkx0mF1N?@r7!P3AD^==I+ zEkACg1?`oL|8`bXt9qwU^OS%Z(Y5x+w@g?Km!Fl_in$uLJ|lN0DR-4=O>F+O@=i8u z+h}<$2wbkhP|kAZu@wAQr>s$p7{(rUwU9k6Rf`+xX<`H`D~^jkA!etd^AdPQ^0wk9 z$b&`LYKv>s(!hp*YqYofXs_9TASALdb|XFdXrc|i5!f0`iVglCljQlKVPR)i9K*u- zVfSdS4Gh7;KJ45yc`(&Hf1bcb3VBDaLaYWWJa@%@%GUHgBP1$I&sN%?np5b0Xz(%|p3uv*tuD$^k!fG4koM+N|}iM0V&+CYYKN zsZWzNw8ZKfIvN&ZB-PlM5T)k|rAq0`6AO8TsYMXq@ak@glA2;xwHd=R5NT#iYQ5Z~ zt52<L}ptdb!NN1(^rWE%ig9hD8RVt(IR(j&6#0+cuv^>MOC;6BTMN`@K z3O6X#IV$~{zFBeYQ)G>gV8zJVsPwZLvNf$TCL7>XO9a~apFg*O;?U5ookYx|3CKiK zXeQaHjb@7N1(u{VbL|tQu$lA;EirAU1;m7CQPmyzOqdne{Em$yl~hb)TL~)dIQu!; zc=mIPxlqVTd~pV;8HyqM6QWv6UeU36S5gd%o>OK--A|Bn{<)!g0qqe3`b!MxEmi?G zxRq5vUuRT>o2SdzW9}Pbc)Q_VqYM2to(*Dn+rW{FYwnLx2G5t-R zE*SExZB7%zSV^oZn3RSQI@dj07J;*s9I-`{;NOngBlS|A4M4NP@*W=(J^)O*=9xvY z7>b1 zXR|tCK4Vg6Ge0t1w!MZYj+0wGW@+-rY%zB>A1BX{FVW0sdrS`LA8R{<8MCuF*Y2+V z-em>_|0A79JKF+vLA4!yl-rZ56UK2U7{}7&Qylfhv6hRK5PLc$Tklhvlc_Vf@kqou zaEL>ZbZ<`Z>VzYx$rk(5BesY}x-TJS)Ns!icDe)J=Fwb3<5RtSSI%Qco) z;65))q~VDS*j+VIA5V^OJI6Ct&e4zc-Bkn5U4Oouh|CWim5U^+6LJ`7GfYn63OQxJ zBB>0XW|*?18o7C1lXO|Vmy>Gcnn5kBkl2%{GRiW&Ssb4%Vb`;j_#g^#iT=d%z;!>jdl4AHy9$r#?~ zw2gl=rXOf*ab&CAklh;L<$&(y09~Ys*6c(n&umV<&yf~QUdA<=Xt6a(OLdB+2zA=h z)M?Z9PMOBFV$GJ{=40K8C+(g#Cz(SzotGNh=`JwYTKR8GF*NOQ*hK3#SJSj}D$>@% z*0wu~U}%Cc~$S@8RnZ4@W z%iGh$*6It~X*?!~Jnqr8sfXRb~YAp7Xc-1Un3#`pz zT46VLkC9gj8OT-H#^xK?)EZ6E6+#Xvryw^v)sNPxd$oI;Ox@eu^*r%Sjw{jo5h~L zO&YsAu&W6YzZC`sL8FRSfI zog+`U&Plt(>mNi+YqyPg701Z*KK31x?Hy*@uf)yn_&^ll2N~JVYl`gWr#>%JjZ{kY zsC{<#VV{$YL@w%i`dQ0rKURwvrAGS3T7LnT-Ib3!f|um*=cS;K4PVbjgkBt$UK~qP ziu5R+DQdG;o~8yLA4$6?yh(pIg}M1F%`{L> zBIc)u~dCi&dr!mqU=lsk!8xkXn)|^J+GC$tbZAt6N$N)XR*p0l z@pIA!wIhD0P{+|r6*YpbsNtySu)PE2*%rcYTL_2HEEp`&`f)uO7&<-RG> zS7-R8%i45DV#a`{rkm;J`zN;7M|187)ati!D6BN#yo>(@&curw@9Y2GU|+3++d zWRxby`SuTZd@<@AhLJAn%w_*=_A#zkt5T$^7u-oeg)?1@}aJeLSk*kzC+4ED;&7A9KSd%kE~*Izk)sHg}Km&funxW^Cr1?Hwjn9Y&2+un+kb zNu8JbH&f?wzT*(sCeKrWBU?>B z(gfw9Y6Pa1St7*Fnx&y!oVFh2p}h=G8D_5p@jy12m+NE3jglP=iXlP6N)vb5^Nh&P zJBa){g(ATRJb8^@>MB>k;!|DI*yEYndTzuySk$4Yy9tgKVq-Dz1u4K^nTnnvoSm=r_W@=?( zs^w6rO3x%eV>bT4Fosy9X;|dA9Fja9>Br*|reC5ELa-1bBN$l!u3VN(A3LRzPYGBp zJ-R%;Wx@i;w#0MgriVG>vJVAk^gXJu2cND)8@s(&!c~XF!<3s0VkLf&5 z)0yL%k$H*x|?}@shqi3%Ey9;XM0Zb^)MywV#y%qO-Okqo^J_t$69ev zwiguzBx{5gR_AJ7ShFG|qYQv`u6pKo?t%Ltr<-EXHU-5FiWYUg*u&S=c(9p6D&oB; zDPbTf?z%Z-rS zb%A4P<1ri?(amHH7Zqc;jS#ljh%P3JyIFkL&PK>6X(N7Mvii#FDTM3VINQCYQEVUMsiEcTX!xVp&DUG@Gf#*1*n@sVNQjPNR(Kj!j zpHo}NM7N?6MoI!b%(N6^NoS&?`xLhsnmTj76ntI4x115Gvsv!dgEDu#atDJq5dAYm z;h5n+E?&jeeUpq;Tji@w^dFEv8L(L9xzhNS2@4_4lK4pUq)5R4c)pe;|2k2Po8BGk<&+wwSJ8^eM{!h&eND5gbRJ&1GE z!$SSCW6LjeT_-}@Z;rHIt=ZDpeiEVWH^8>vOn0$uzhcj7X}{H;Ez$Oql-hnPVGhrW znKg3Wa*g}6PRyshTu0=>g7?09?{jVh{iC;U3w7sck!04kmDA;&c?yEe7^2+EwPMSq ztS(xXR*cl$*GlVca0%8-8V&IKOElk?cB-9xXFU6PZ29O6k;c3;QY=s--Lh4e z#!Cg!Q@}^4Xqq|V<-3d6r~D1nH_Z$T&eY=#!$Qkt-LgD17S$`wj7?Z8*VNV~99Hjw z$WHd}(#+1tQTce)(Z~QSC23|rVy;|U%jE~JrAtgP9V)C%ufn-py4ZTYl&p%`84stF zdT`uh98!ngI?n$<&Qv@I9#+MS%Rfi0o_jQMUCxkPkARDSq;4;%|X@iBd%9#cdxA%T)bxmwPQ(JT+Jz#-{&kCXxrVv8 zsa=kE%Vg@`DBr(C_$B!kZN{4TPf6E1^hgxMN8u8P&om`+V~QaQ4C`t1$3V~lNN+A{*-1u>epMG7g?N?m!lx!7vz z@^A}gHI;N*_=Z&VHPQ3Ry_NmFyS)mh@IK%nqfc=n2Ny_e6k zs=rk4tr4*|i204DfI|mZOXEKv^HoewBOGRxcc>gND-B8l`4W;O zP$S4`60klx?ah-H43BfbPyIKz6i2mehU2IOWJr`MV)U@Zh|z<<-j1u`SOW)v!ZcyM zZ3#{HIOwFz81?Wo%8hgGRl>nlVg}*^1D*;sbAaWk5jWixG9W76=I-8J7EkEMLe^vF zC@z=4uYtbth(nec@82dW$Tt6F^_B*AARSp|N9byZ;pHmLr86Now#jpkbSj*A!D8($ zrZ@;+Y!P|lwC$r#dLk*ugqllRG^lwIagO2eUO%D4SGh4In~nMjB?)cq8%i4)517q} zZv7)lL^OU+X&fk2VQ06M@6$UMN57)9*vWMpUJ~J0AF{@R=YmIulsJdYU=?{}(XoS7 zWQN({xF`z$MaN>@XkF~wF9&@0JLPs%2M>AyFYD^VNt;aiwf1BM|gUe(`@Tm zvDTtcd5GU1zgS<_X>#%?+F4yR5^|nM!M9V7p*I$z`6LRQJEdTY>49^h%lTXR&@ee? zn0f3bw{#A2E!3-CB)Bgh+O)Nu;o*P=op1)6(i;x!*Y#l2t|0m;rUKU*0&IND4TlRd zqFgWqXdW5-CzZw0c*8;PXtowN9Gb!(-*6CAagJF~@aK#_e|}eno4by4+F{Pgce36! z7vpnv7RZ(RYJ399HBl9SiE^%}2Pc^19i=pug+s+eI#h3frJ1tOM44)fco>GCg^{Up zz;$ZkI-TIBBvpzfuQKVR8jVjTofD(+IexSw2{pQ*dXPrwYz{gn$aFu!$d|x7^Pk=G zAF+F0s@@Iy;b*>v=i4u)kNtsDIzd;2j>&*`EOb&P=99dbASl98erGc!X(uIhHan$Y z+CmCcJKI7~W>O`&#g=K#`Y*~jbul>9?m+Di9g$vnBs7>_$%jqC>%z$1Iz`IybS0lN zu!2pEaF=PHES4mr*ca75K5&@Y zN0Z7nNN3*fKA}1u6qm?bgU`gnbC0pey-YNT0{;nFL7ecPqa-n>f^RRpZ}&l(8$P@B z`JxVqx?~bR+hZqvef%9-iDtzl3B;}nlEUB}&bP%m7Qy_#LK6Opz0O{IX|KOsy!MwD zsO5aad0jl4%ijB9EFa*{g)Vf|Tz?-?J~jq#+evqAcq+>ZA`aq-{BYsPX9#Uw!9n06p8c9H628dGC6QzpFpzlLT9VHW7 z*LY)QB|QiKT0RJ;j@#j4*}E@J5CVwEl>%ubsj;3R*vaU?a3^O7m^>w@Pok?pu6_60nSt7Y;iE| z4Dj!k_1A7VCZQjN%0n!A%0nOP*j5=jD5K~>HiRX1SokiN?#*3j7q3N49~atnZ(W+D z9-jDx|2QoFanvM0TQ_KvTH}|j;?TVR5N+fE^aGkC+Q_;7OCn=8{TH#8+jKliF2e9> z>GIqIq)7(&&*>%;)U6Fa6y?l36c$DJ#3QQrA>hgND{HZ^YS9e`Cwg8t{4kmeQ{$9qodHuZDMukI zA~usj95#!-sUb>PXS3MJ*FL+N4Q7>^g;t4ayDNB3$&XMdiTX3KQfdK;HMCq7l6peY zW|`0hvx+aY>~(zc`hk>YQe^)%6e_X-PHxWjvUuH35~&eaFv2urUNo$c1AUQL4I222 z4b@bUfj-&o?@S9nm5ZN_IGW<=n3^Sss5@4mG-y~5qUfsY5F32~f{$?WUOLuDQ9){X z6P&T+lCf9dPI~wxBZ{QwA;VD`drZ@#??g=ZF42uFi-mV0*cN5~)1~q3sc1aBCO+G7 zM-~`EqqhNLQ9omfJMyW}PoYv#)uKy7h)%wU5ibVL3dihbbFuEOi$RPyO9#F z3xOI8VaFK(ojfkXw`7cbLk|BPZr9-->7Pp%!ap}KUv|)QLxrLX7lx)YaS^QO7y&@{ zr&Tii9f;>C>0V@?Bh<|Cjgvkz$-jx8&yZ?>JXF=y*CTLSiwTftPn7z@cOFDLXdbbf2=r%N))bGSx2j z$vZaX2wJdEmqa#;j?G03#+f|OaYHnj8!lO%XHw8)(FgOqr)bDbGtW0qCW?9fS&YA# ziiKZA@@|yuD@yil-XIkM*LZl}g(sf8$5j-e?^)B`if^3{idReA6>Fuu2}X&!{#w^HdZxSknAsIu>HmRKu8QZ zHw7shB>Q1_1|pp?23@o&&dhgjl4ang5Z6LkVubrJpA+0CGFQ&Hp{wtGe6?D#p&xlN5tBf<1V(JXCVg(={G`- zu4Ihzf1OIQRKlxT(M*&$AWy-@vxr-n(+jRFHw(`}<+tq7>b#0sef?M~!OCH?9o-BI^n>%=No=U9dDCSq2_ zFBhBjNoOB=Tg3EnofEzHoO>Qadc@50FbTiMYmtk@YjLQRV=e=7XLHz1YBVIKYVC1HrLmpF>4DIOj%^= z-Wu_JWGJyUjE&!5E7vT(#Eg~&$Y{@a{cr*pOAHTQ^<+DksvvQMY?WHs;%rVEX$yEV zM4rQX%#1k48LFnE@C2Q7&bj;Ppx;mDX*1r}_{7x;S;wphHZXbd9fi3TBqhC@u93mq_p%9}j zvWzh}VwO4UWDKrz%2VhOGgRi+?zG=FNQ^++SzUpZ1r-fr@?jxIHhQFd+F#IVvrVuw z%zf8bu||${H&~m36l*63N%>AUr_3M8^2O_5SwS+F_grYI^`CS}>m9q~;H*b`46 zIT9lwnxmDVKJvyEI|F2B=Dg|Wss@5e=;+Wc9Vf5R5MM)vzBXCJ{FoWl_>l#P&^u>m zkcAFBCqG@(mFezL$U=uWheWF?R&4unF{d1%dWd(FDsh_N?PAdmOPqrGDFO54s?gH- zmI+65sZDjiVxBD$E>PS9uAR!aL4T*F3_P1%-VfuVzJ79Uj+&8ffQy|6>>D^|xyg-~ z-+`oOv8}m9~#{X1jRQ&X#*yzU~FHNH9gd z9Km4L+ZDY(-bbF7>fP4|(}+f~*lW!6;8l zM$C?OBgz@Yj$%x;W|Q64<1s2s;TF|R&on(~H4ql*@;+ORac7$$(!Yn8>*BjED_Bgv zbP#;A+=Vjf6?*t+5QbDwf!H1kd=-tYCYV$N?ArpnTz!We+C1Q&bGvZm9F z1^Sj8^vWZI8nVMZ9mb}a=^hxs+8zqdczS!2TVmHI|A}nOItqs9(b~VHQU5aAA^df4 zQk0i}9S6mC(6L9vW{O$%jaofwYRnHgGKKF{%z=$5CFcH~Hnmq*ll@QC_WH85D@ z9Q4eQgQPi*>$a<0*FMWoHN*CpTOQ62@m{xgwcR+l>c8bj=5P5o>ss05gN|M&M^go( zUiFpYzfHMfNd30CBssci4)IC`el_`1YO_LXv(6MSkfnXLgcZ)#Ir13QE&oT%u@Uo8 zaGC6YEYmL-NBBBzzAEZeVwwv*Pu?cSIt<-BYc4HI#18KjB$5w$`B*V9RyGT|{y6A> z|6`r}h&|xH+MH{e;{ewB$86D{TmHLh3c4HMK8(ftR4Pes3E06HVntOE9|rKrh+%23E0iux#-v_DRn+R#fbR2CWRRlJZvuB-E!+d zE?rEa58 z0?BjDHAcqeG48Qqj2p{#o(ybbWMHFmQz1fii*aK28yEiwLn4FyBj*-5`nJV8#TqoG z_-Giu^A(sR8#$AL=j9_`*SHvi?*@h^yCe`~T7UT|{+Z-XpGyVhXzG znjx~uTled{rER8NY!F5J29TTAuR%vwJd56P$=4!Q!(3&)Wp6ZWor?E5c^Ax5(kvNQlx&4o2O5(R z6q`)ZOb^$qD9?e1y0B^S$hsKWB4)o4yH14v(V09?wV^yWw?H@q;>|;hc~70w(KO>3 z{{`w4F&F%N?6wOxtad|a#Ow~-5p&F)z-S#Q<^}u9vcvQb7s-*rqHrI~G7&R6;g^~U z6y>Pfk2#?>1~RkE7_m_H!a{jWy=VMmp)bpf4a^e>o);8CvLGazqOzcXlIadoqV`GQ zNTwOU`ic^V!VvLJQVo{LxPcNgxfe4+49FvtF`00LttHv@`k0b1W>ONO%Mxr}utb+8 zCI6SY_W+loSo(*%XLe@8Nz0z)Bm@sRnXg_!jF|PPC@NwAvsVn)oC7&$P;!ovBuB|v za?VjC=O96p?^o3`yS;n%0KV7zzW?t$&)M#-s;;iCuCD3nsp&~>M6U+|Ld}7O+j}~0 zEDrEk?DWvr$%CF=_BoopO}#V*irzi5{ZfPnVu$mh1I3&V#40vcWlZ5%hGON^QF6v$ z3a|#QKx%O`ed+cNcrMM|5hKPXqN2kZaaF*uZo)~|G}6jy7}S;`=MgNKyv>zphHnF( z@(%jO0eS(9=^6({V_=;u-jK!w1Ht(ii+4b-kwu$LZp%*>NP^@oe3|5IqG`cAHpS1F zE$Y6VYmLJWgPIrPQgjY@pzF?Tbx!|CdpueHc>f}vvy13bRn4;uUt}Vq8k{^IVS?Cn zUc|-a$z6%Br)$budc?mrwJuN2x@o&9HhXv4JZzc<gi zWCXvTaUFt}nI1ES>EY~%p6@ECpOtXPc`KS8t?c#~+)6Gzww8&WuLr153$H@e_AH@8 zM^uZo@G-aA_!MM3yuDo)Q@4_*E**@3Cpt+(X?JsI(ikd{mXMrEq2m!Md77s+gvanS z4Du0EELd-QB&5K5QU7h_JFQJqmy6}e^ZEMgX_SU9KtG8uR?|6E99CjsGayc;d2A5N z{6pDYccssD*7p3#BcHevm#VPJ7iVM4nR$&(qffHnb2A53fPv*18R*Gd8W@#>siXKA zCTAO|2pZJ`u6r=GIjqptv%^leLy>}JQn7JP)#KY&B9ciuF%K8~gN^Y^Ywb=50Bd${+CTMLFNQi$cE3VnaqzSGw4RuJ9 zKS7g^U{XJFmNpU2$~7D_xW?E(!Jr$AIgm38pMaf6Pv$23_Q1e!1Tg{zP~{-U4d6zE zc<}lE%haN5nR$lpa(h~v)xFYYy5YhB0N&MV!MU31Lw{6{kNv0Z&Rj@~jU&7SYSHJ! zay_F#uCAy=&-<%XfzQs_1I7rD=|o?IcoGln=$&|qA|nDmFXsXe3nuGqIZ2i^W#J`p}626R?;jtnjf;q8VADz4aA21p;iNWw;qFz?0Fz#l|TXajuQG% zPx1KMzltt`tLW=X)r6b|?c9!myS*vhSTr?uLF`=5E@Ll^^KE4p)r--@ z2l3q@iD1ms`Diy1%S0Pqxt`AWQW7mxG}*WDQ0_JI5j3>UuUJsK)b|a81YGfo@J0=HYT~aWr%*0q|;15`>XhNz~kfFXQKt)9vVw#K9<9ugP!`>yTNRq7x^yGO4`g=>BS7efm(rH!nX*|hUv*W$X^_! z%y5u-oNn`vn=8~d(h6%Ty$3$kZmP_%sc#@!QdRz^;;PyON;OcE>VL0^GjI>2bR1?` z8*eYL?vL1x&au&nTRm@kHW<>DBiCQ5)YqKP*Lu{CFph9+fM_CZa9BlqeY42-V_+wtIY7eVWAe z@daXP|D3lIJygO%yOXakRPO1EsCO9UARjkNPYj3wue@6-Gi_<7LBya5139n{IiXC!v1`Q2pxhJ z(~B6{nd40RoHyyyN;a0m9Bk_Vo6zNJkPjll$w88tHeSuD?P?;e<7n9DRLpJb&ly4ZB z;3_ohsOKOF3`YQVbp!MGmK51}{G|(Rz}rA-)#$uHWHj2iHg!0;Bkv?F!*KEkCARSO zb_+dccp5*n>deBY(I(ReB_`WDuqw*J6R#5_(g}Z8_k$8tog>x?IEqJovi;wrT*9s#ie1Y$O`4H$t1MUxZ$uHBX_bfoBi){urgdN( zd<@3f8Ta`d7akdRhbHj|Gja@eOYx0|TKM$C%%u6rh3MT7@M8y|!1I#_rZ^M>5shTm zR^Y`cv*_axsK|WICN1EbS#+rdc2tseJ~%yjF~9Z%Siu6d zfT-a7R>MNe16O`2J)2r8)pkaEy9vEQ*Cf!G{D`MY)%*uxo?znb)LH0gCq|!7*y~RB z_uaA0O-uO3p62vOvbkp^-*m0yEe4#^(gL$N*VDp#n0CqzduQPalEI;#RUc>#664wJr`KxCmT{Ab@$0&H@oZW`E=z%y$ZwSKRIZIzyim2Ry z(RC=IK!@#QTn=d*xA4bBQFXZA1>qb!+#v(hGZ~G;U=F}w_~Lz8pAsNyzE&6XDFGtj zOL9S<5+H($eM*4vm;EULBEIOS1V9k`DFFf``jo&CaH;~;S3xijK5}htr^hSwI9(y0 z@>D@=+tY|`<1@PP1;{; z@Y2MqFrIJ~ZV9Vjj8g|uoikLQGc%I#@?tg5o+LW70u*~w+9ND`F(w4+KF;rEe`l|w zYj8mjggWC86nttAiB9^v>2x4k`#{nL4yXg`#T2?1Tj2++ci}>g_~!BM8Hnn7_tT`^ z?>j@lFJr7+lLw2+`*8 zv;x&t5b7+9=t^AQubju*fb$G|;h`Gd({+zi!9FccKtS*WDPSz`tYEif2wZ!XXNYec zMf;3ncYv2({L4wx%LDVU&d>79OR9$zgr^=ZSyY^wvYU##Q|4j!9N4sjWXuQCI+8Ja z)(6iiqb7OyN&QsbqMJ$w=-@b0&t!@@nt>Q%ln^J23lE;L*ng6l{i#BP@j=lwv?y5< zIF8Y(Q2%G@&Tfnf*T-1(RIh^XcdyoWyEv#A;ph7Zk`XUof36QP*R;bP)G8 zPEYu>bW9KEA<{ngfF?c5a(l5%|b;%12F$RBa+FA8PgG# z9LWwtq!jMUhLP>yEmtU~W6B`FBKE|vQ5Q3Qha#Vr^HrKb?w_g8r0TOr$a*$iK=Gv? zb^QNq8*c|ag|~xxV7iv`^zinjz{tKx_{j-T>&O2uAacCNYWL+G0L6}v{~t(45)ZVR zJBN`pCq}rs6N8H#|9^^{1rtMKM64hG&oA3xca~ctn*@P-{6Dp)01IM{|5xxv;B*}X zy{;*R$u*VqA_tB)_&%_T{LQMsAysaXyb%LH=NzaCI8=q-)R}^(P&_c5%x?6GSvQj^ zV4%h&VbSumXBpQciBK=IfGWFq)rl%Cs7f1J?qFT5RcNo;=w=p3+086Ka5^$MBKUou zfd41$;bwA~|0T=c@UuHe(nEHDkXXHSz`GR~zaid{YBe{~e~SF{DL)PdtB!-g+MzX& z@k!0Ka8fg=jaJFvaq+6E1``gTZ|5Pr-rhz}c^H9}AUF*0^x@@h9}A6E$IJSM;1qH} zF$kA|TsT{VvB5e(IoZbZrP>e^r)}X{4T$2#*}8ZmRvlFX_<0m)p^5AsU!+rG`K4jN z#`3E@5sP5Du{bM$dwJduD^U%$OzO>>O&wrQF~^;L2LPWd*owj?Tgg#w0CT5!$}R;_ zb_0UL)wa_WYP%IVfshbB&2)jW$S1C!44l2i421 zOS1mOx&wGT23UKc)LhSAyBD43d&=LEXK2enKXnF=jT5K(kj4f;XO2j1tPV6D9js=k zik)Y>C65Q>o^Mg~9ZuipS4(i20<4$6Kg0U_d8e4wiSZZ;weuV~MBEQ~2D#%w2p*4q z7!P=+e%={09y9zK)EwU6KSt$a{z2$7c`B;F<1vW`U=kfH^|)u6HJgjmZ01bk0YaW5 z(0pu`=ZJ!iG*03M3ga;o%_yCMcBDa4am;utsWZH67!6(V zEclIh{Dw2TaW6{83K4>}K1ykQly?`+o?SRzg-4-r0Pip1)Rh1o_Dx!+3as^6P%|Dy z!Th21`TQh2h_47SXVN+d-B}QuZDaJ~Speu5qmQ!W!+5nqX`P`YC36^KBx=S%{U>#? zH36*;v5rA?S)OBdADRV+(Q7Jlr=fMove_6!8XF3oIU;qmI+NBrbHv_Nh}c5_Gqeuc z#a164H0liBOipsOK9;VJW9{><)(OE{KclpM#`_)ln(qQ5l-5Vk0~8$M6FBc^ohq=_ zTeG~aZ9L?D9B~H}@sNdsY?w1?9fT`nbJlNccAuQj*8@NkXSW$AT!IGXLNzSkLk=}8 zsMf%wZg3L~%tUfHsQ;wyZ#*o&S#(%h&@;u0uOC&%8gB&Y)5BVU3xO=d%;OZbaT-c> zMA~lcqG8!(ZRW|anbss27SMLK7qTOw&hTWI=?=?C8kUiEza(ce5Q2y0tQwZHc+mmF z@Ka!o8kRL!Wukm2(9d}yO%-@pnxoNNyrSNQhNTTmf{N|E%$bG-gv%r%A|QQic8~0e zXg`J~&TcY}xYaHgN7b-Q<<&0veK5OVP&b@xA~_t?e^U2256f|D0uRds?@R;yK<fce*+PiF zG+U^`Wz7~4y0axV>rN3s6KCDo0)hmyg`vtcIh%O4{Ks`KYqp@3xY+_o0kZ{|e6wYR zJ1p_Dg%E#fworx3nk^u7XG?6>og#oH&bqS&1PNvfLzQWAHt}rvkLzC6Y(Xn=vjva> zW(zR+X3GY5SSFGan~2z8$B7YwhvmF-V&}bG$Z2&!m^fe2N8=^~<(~s}9VbQ=cv$GM z9zNo2=m?m2d1=d9`M#HM@kZC1ST3AKFok7DeBd|dY z3%yZ>@-aRPi56N^A>zbxv1OuN^6}|fFLS100iiovVzcfP0W@*ebz&fBV4hUNGLzqI zqhVpFa$=k%Cl)V@f&zpSSzp#2oUGQ0Euy8SvV|0UGjnHY@fui zpbp%HZ1bO{@@YSx-;7~F zg{5*Q-`vG!TNu4~*#+p2##wbUF(0+n`iY_HPU`Xq2C=mc;@dPl_ObCPh!;Hb`F)`* zB^4H^V6`UpHVu%rR!6edj`+kfS$0$BHVv40)>+&ZlmeU6P){j*OTkr(b2GNWRSO|l zEkl)BaEgn%Eoh{ywNU_{~Ub8^*!x>~lm(Ua8z=!ocQzdNdtjWJZ+&|Drt zKUPaWYactOeY9@JV`hINntdLY3f2NvtBoGCZtvsVEdkQfYD;Qq%WCmO)B?;bUbmM5 z8+y4BYB}wy1);&UJx6gCy5n03!D<<%)H2MwkgQ{&e}}S`9rTfzr}1?h*IH1))kSR9 zRSTdaj6Yy4<$57J?F`tIgIX9$jXT*(5)5Ru473jNkRP=FAZz&vMLVw7B@m_}a5zhDod7WN1%Ge!2<6`NWU@M*OdjMib6O%B^OQkdE&HpS&DT&s6KB^L`&@#v21R1y z6^>?LPZ{P5C~vWY!(|Y-s~GxJ8D6UP;vo2^!LK*_WfmJdCt%f=*8H_R$I)xrzXv3; zidn%XwZdM_Ce_N-(PYxmWUG~XX(R;e=zyA42fX-79zFz%_fpvhPY=#ok@+?KH5@+{%&hYj!>MilMN3_)ffk3c~t> z8JFt7*5U&rD$5m@;H3?Eo;HoXSb{?;14}Rw%6XOqPS6{>Cz8kE`CK`?o!9|Sw#(to z-M$o6)i>=&F8-J{HjSdUoK|^%nc4&+YLUy-UPOQYyR9Ac&PIe7q=l3)SV(!ur}vgY zbiy6PNw1a>>83Zcf#q}?1ff$ZAU-u&*|VAq)cq(^pt%2tRj@OfGp2x7u# zht1WlQG+fc0f~@*3*rLJqzgtviso);E=D+(&$HN5j{^AXdFdc%9~RR+=^1HHy!(S9 zxBI|2*gPEQI0Nqk;o1pNddbyk#yv20{LU%7zai#-JanH~6>%?p*-dgaeq!(vdyu`2!E_ zWZj8_Y(WzTsJ}3Am|C}?|KY@OTD`=?`Co4>@x*}`@e>E2#1jXI=)~cI?pK6N400z9 zutkqrxT8*=X%%?%#&c6lE%&8)`hBXGa zMvUS2h%LQWLQGL4mQ*B$C=xp=5;M3YVnsz_L=FQ&|4nSR%6$+ch@*2y&`N3qPEe%c za(q_`Yn#d5!`L+lqWz_OJGm5cz^!lLFP;YR308=MwGG7iyZF>I&Qn+?cNAAJaPEY& zeWMaG=m*HjN?OBjZh+`K9*CLW(wB`;I707%!YL!$j$fA(a#KOp0fb{6$iX^PxC1rs z1WOQjO+s*-g;dIKAq0xE5CX+n2!Wy&g7#vDwoA|`j)i1-Vk`t7y>ToA;{08F;w%K5m4&zx@?ghV2#BHaIi%*<|fOEWs02F5-fJ7|>1=m85buHu+ zEQG@l8kY?DD{stlip_gBdvSTfi+7XS=h<8E7s#mCwr{Ks*+B2RmsVvxYFcOQ%mu+^;D_l zWgO)4GL6bItWnv<-ia+_wQdo&r%iyHetgE3pxosofFNjWRXQ z8ETv}$4cxh%bA^JPnN~S?PS?{<+xn0Tw{F4!(l%NHz|lPq#j{-sXts+?0``0kfEM1 ziuwUk>ILkB`oLi70m>vlmH#)S?^(J_8R(!3wT$~&XN*{y|5kstV?`C|oL1=J!}p?S zcpB54)=4OV?zA9Le|$)awXOy*0&~!_0~pp9@J_)b#P<6TH=x5jTzWC0NXKi?7VS*kh{6hxX>Xo%Si;BCm+Gb;v+h$M7rs9e0COKF& zHpyv`L&df^gL8l#oKyb_D%QWE^%W@6;8JnvmCJL%YI$y(5>#wcqE886`;<6V0?=b6 z4woco&(giipxC?2urhd-I+B#Gy4X5tXR=zOpueq?Vhoh~n+P@EPI%TzKPExZbWx)#4}lh&={x6I!+3RD+q>jObf_i^5bcXJ&yPP zK=i~YwM#O}pcBo3X~}zrz?@D1iLbrJ%caaJyn*Pa|ELsh^7*8k8{c4%%u%6 zD(_BeNDilAYEO6wlt~WGkQAKxxx@lE9H17I-AE2+W7(ssd=w4PSUdd&7wR>C1(*8F zT(L{=yodUWgnG+Z)y7^pA8rE~>L;V9mk^Ko2(LpuWH9v)6Nq}pW$K$V`fI%Z)t>!U z>R4&WeysG4GMKtMNDgInG}J)+-*kCB$CtC>BiZkKxVxc|#em{vO41M}GHCi>QOg6U z#y$db&@%$C2z)a%=@;4_ZkW21ULRhXIt4pnKF^f2x%8^^Tnrr*R|aR$_fcjP+QA-d zM|$%NV4G(g$|UTe%rluVkYh!ED+=gu7+iw>aOKY>Q2e>XoKjT$tyJC8U{SYpLmJUm zWp(?*4 znw?9Rf}9Hwj&ms}7vmm4RDg2a{-O(T#$903uXVGbS^AdjDh{F&c*5X z|HVxE@AoXRbNRpSvhpY_MI@Wpxqv30b8%qgT#)@AIhP*z2By!`Bm6fz7l;#eE?kIn zBn7}+j{>xob)5^Ku5&@wbuL5UT=?b-;bu5Q!Wdh^S-Aj_O)vz%`#g^>!sFZ&ymC@v zYzfN50HjjdJ%OoAHL?j!RNiyI`E-sT)WT6;?{}*N2g)f)$I;RhGgTep9 zvkWIkV4bwg!aGU$UW$)Yg0fNxGBj`u>07ipx(G<~65VOF-@U|-s{A8$8LKsP`M=D5 zrh!qdjst%-(H89=o?f&=+{@~ZF5m^S{`7*_6L>*vB<{IT9_hn-Jk>q@c$86AT|!26 z37Nh{rx#_?=@@R1^59`t89iBI#wf~xY0Wd_1cabR-K}gqfO#H|N;dNI@r^Jv2)N6? zkBj^KhpBkjzla}~UkL1{!;tnT&F07Dvr{+GI(bv-7Jf|rU2sn(24YXOLUJ@(KUe^e&rH_iyeDmrdyCFV5B zE3Mh&mS+1%B`7PEAfr@*%y4!~$i%oMlwG%kF8`O=U&JjPCAWm2uqO~1HXd#XYDT?P08F8zmX2g@ zfLqG)w8|MyZfSVYUT{lU1-K>18{?MHqx{Oi_`)rLbfblr9{I@?3V+h6;c!c_*;95u zc1wWn_eRti;o!O@pk22#H_k21aaT(~IBp3!*DVbzF$b44@;MrC>6MFVwX`^QGOd0%9vJMODN@yTknG`aXN ztd`gWF{9~r`*yy3^zuR2M==>J;~>m7#6cy0wn5|5V!cer^#P)OUu|TElb@) zZfQ^IQFcp%gXhUDozL9OZmDa|WO7TBiw z9vh*w74LFV@wBH+4sPmRf*%6mhy5i2Y&knuCZcyxvvKDW?B!Wtp2iA4s4ASs*(K1& zN-Xl|5SqdEUOe%te0(96@B^>tD zp8~x4r;eb{{ftOGL!~pRIEShh&Y|j}J`W5zPoo)@U_xLcEGJfi%V5Uc_}iFJO!9=l zfS{{7Rsmpx?fQNfHrO7GOR^(qTw%O7f|=v%Ku2*62-Yi%q+a2l3PS-u6&_6+l;bmg z%%p`f`d=T~ybQ7lffLwx#6X=%8jtutr}Zu=n$EhUjK>inl|1893e-He7*pw|G&&i~ zfnRR@i_(q813on?-j3Jp$_a>sjiw$fdJS#)l0A~+oG|zOjzapzaHe1*)?j#=$E5m*B za37q?OIXX!SLLRD+I66N?O#HiHYsq}m5U~&?JgWb_R3X10zBVK}fPv#$$gS^D0*!|61l%E)^`~)P4`iZ8> zPXIR99_RRp{Dn!5p8)1(^Lsf~&2!|}$W?0Mt~ZH-h91y!_|h4y ztE=6LR#L6JGt{)*>K&lw>j3{KI^t?n(o|e*FrTL;{Ym9Nlj^GpRzI1}EXOImqt%NS zqf;9r>e@3H2jMdPPic*VC^rty4TAsN;6!HzbJJ7twhUZyljOO0>Y7lX%j4_xPjLzP1=(ny!Cn(LNoGR2+3H;%aCNhlKj-79B(8A6@p_Q9 zb6`CM`>zl1qujZ{q46j1@Vzw>~hH&oI3_>RiOh%m1D;ZacL4B;8&8%K+PalR?4Jj=I{UIC)DK1l1!AL*mlKbj+PunzpoYdjNe#+T<4N6q@wu?_*5RvI6wxcUJhhK zD);O=ciiYSB0MS>fg|l{+yXztLDK1TAc!9=9psD_K<;QEn{TuLJ7UMTK;LS0S~!9` z6w*EDTKImayRv3U%W1S$Cyn9J0%DzS5{=gRq!Bb)Ba(qoH3&hYbsn^CpDseYjz%j# zmvMn9G+I*v&1kfmB@L(18bjX-!3`vh1Pl>UIQaaCpYxIKPo{4Hzi!AHPoC5QQ#r^J5-s90-~Qd}(N%JP$o_$lb|7Kv$@OD0ky3jq6cN{e;tE z9=@CaMITDOz=}rW&a}yo*piR*LUJoLEn1~GpSbkn{(ZYr*?1T@f~-7cr{my6&vd!a zJ?c>*p7fNROYe`&RS0_Tc0xfl6e2;5iKtN=Z4_@pZ`&@n`nlgG0pewXVS^XBPHM4( zY$rL2f`-R=BFIkiEIsG0Z^k25nC()G+k4^r!~N2bGN+{>o$PP-L!lz&( z+c|~4kmE2LmommF%qys~KscSHoYPrk<2uWbM4bhKJ9~%I**hQ{V2L}+2)DB+xSfq; zBb@~#+F2Cb&LZn}7TIWLQHXZ7kStv~-7-smkQvM@Qo4|Qs^o{6A7!?bnL-$)gjweH zq@*Mv%*xU%Erf@XW-?m{>qc>Zx{>v686j*#{xiuelazEzQWZ-G@3rE=bRzbp2($Eq z=>)wa`_}9$(uDA5FisH$qWDT^A}O8Nly=!9r+}0Q373*7(ds`TimI9#txBwKNFwHG z*FZSJ-LZn|K-z}|bJ(%v+3jv>vbdn`< zTgs(@5TZDb2ga$ywL*xJVC{5RwN)w#aOEj|jc{pPP#GR$H8{|0*(<=B2Bw^&*(A5o z@)34PQO#6{0$sX_5laAb>EGHNP&(fWJ~>XxCp zRk(9%dVu&=CZ>UMh=sT<-66d_Vq+k@L#u~rbtgn96FZykinPlT3sE%+a8+{&K$9HG6QVi^=N6v4Miwd( zvhU3LA{#wsunSyaTDZwrW^tgj{IQpgTlp@zz}rdG0| z0=AJJn2$a$+e!mNMdsEH!mEj-TsU1s+skW2{G4;T)j?wMP+Bb>I?5nliN2F%IQ?Fx zaoR~rxB($L%i<{CjBa(|T1iQ_Bi~h4WvXtV7NWbX!lT?nl3V2KAZU8ZOs&*QrVA3a zx2s4{^ofY=I<~$p#BrMae$_IpUfzz0bI5}OP9@|I~H8CRwrkb6pIvTkI%mR(ZMjRL~g(aj9 zS{G6j$G`JuxS5@{o1@ey?e$8d6#bO+dVQwp@mTkulF>(;mbT|NnPv4hyq~PaGS|Bs zGL`q1z=+=D`{yixEF8b&{~6^f)(?j7b_N|VWZ;gofLTFPBw3GUS+<$n6D?UjQ>0i~ zNCJ1xp>n_!fqPF-E(y7ZZ$PV7vWaq%bx)SH%?RA}J|TA)B2blcI}Kmp?)?P&#Rv-j zWHeIQ8g3+64`o@$jAWA-oG{RcL=vdFlq5Wb+V__y%x};@;O1#f4M%XLAwz}w*!ahK{>%?KdY+&^^Ka4Ui z{7o)wR$7yda58ZH%r+Y9dcZZZrWoN=*~A*CR|}^B@`Fws4$5z>;W3RBlJ%^SF_4gK zW{rudl`dOY<6|IU*~*$^k_9+p5H2hWTT@~n8M3YQlMczqlv&c6s)I7KWsbCFx&zK8 z#mdbrLI`{*mnVd>%gifeQEAPIg%y)mN^4mxESKn3Ixvx0T$Yg5>PWGqEF~>`V@*x9 zaB11zT5q<39lKpABRg6f%`+YsqFVP~hj&w-vxXVrvcPXLv#^NJrStz2_?p&GBV0~? zZ*9p}KU^N*t@)~jE6BsvcHOwxXu}l&KA?ly62n&kd{76ow!&8fd{_swHRC4wT4^2E z;mkbaI)a~%hexNa$he*;aLi3~E>ZhR6B#!U5~0JfNRjamg8Oy2HlR1ko1~TO(N&i5 zPpVK>ufTF=-YhFgtAb0b45G5UMOs%mFcGdIJ6l(KqJtp9w*qpFCpv5*e4FfQT^mDl zJ0RD^(A*(?Rux?WrT#kszFh~i(+J-Ma8(^l)SBMHRY8!a6GYV(z8knl;&CE;55SM= z;Hc8V_X78lj#J}$pS)jMujz2EqXzc@LVlhQsY#mgAd!8Mk1Q&0#zRE$WkL#(@h~C3 z%7=`~o{>isUwfhsGDIFR#G{$<2qC}Cht#S+N)+w$Q78pGCaX#7`-H8FjK>MtIliXI zc!JMJWNu^@&w#6}E3y!+^+mWbz+dWM>az$p0r*=TteR>nmskySuwv2-;3hg) zF=-BP3mwc%GFr%%xF~3Fk=aUOPX{m4snug<8`)M`eVn3_Kck&&FRlK1t?Ul6BOE=0 z6jAnf@_T7bu&TlnDOTB?2r}8C`#p7Elhavt!8+E`mcZFvWjASU!9rZa)7js>GcN6LDD+q5YdgX$Q~?zkk%QC3Xb4I z2=cpCGUy8K-;2A|FRT$p_INo#T7T-q6A2>iC~@{AiLDKftudTJ5U)m)^OKw^tt8uN zaGIPhtt>lYT_R_O#I{8Vg%8o#Y1W!Ei;$(_ks@a{!OJ*sX2!;lGe^#q)^+*m=gIlf zs;bjRB#1VrhBs#co&{U?Tn;UZD{_98i=_3KRzc(}mP@2nT?0A1m&#?*dfI`LM-e&8 z3G|!>3hl@x_(p<%q{HtiPVnt=2iAxVoGzas1>Z^VuXMQL^NZXit;QN$1Vh+WQ`s5Z-Sxg{Z)sHKUk7Dvnr-$iCjb!M5^P z`eNkhuCq0zIKBUeePbMrbMF+fZ*gT!+q%J&xl=Z}N~K*Kkv-R*XIppLFMN)NlRts| z9H;k`57Cdfa)E8VWJ<=)w@auIiK4MXR!++Mq}rD&>GjFSWavw(U5{$>)|OvBAWH=h z;v%UBAy3%(5v5X6-JRmD=JWfRrEXzkKv%Hjz+)0eSslx8(nU4^n=!bn89Yt83na6I+4{B_rxuaKfu zImF^uxZxk>yAFT{fuR-Yw~F~x#Uz;ILGx*Gm4zn+_g+ovt|)n%^r~yFHt!FPB*wtr zCOyA0_~ufTuJ>4y_Af&VfDF+Vs;Ee;D|_};QUc^45QNvZW&ADvEkU zE}Xb$f5i_#bjhQ*8WFTP~A*@&_X-byxD{^ghK z4#&7$mCLWZYImvyN*Djyt9G}KxvcQ7zhU=&6qGXbB-8)vO}qcI(Q<`4Z`p%Y-O!6f zfc`$8W#_Uy6|SYRdt9(;o)FhnCn4>-gn7-AcA4Nw;6mphia@cPDvC@LudnfpeH+Ql zFj4Uw2y5CUu7CC!`*spNm`n{-6!?A4E-7xXo|1OX4c61rE^?JsTiW-s8l1+ZYFz$< zw973&9L%EnX!H@zMPztP6_pGxJY&C1dQrp`i=j$Q`~K@|J!8K@>Iq&)JSx&=>2vl2 z7=-0P?`eIz{Kj{_2hM9t8TfDj^N2WV|^{yr}XWI#i^8_PO@~Sv-p>FC+?o1?0c<3R#hAec}Bh z{j0CN59<`^-+b$RGzL(&p7-$>K>Y^ZC*>y^)2Y~7ZR9m%dgCVE8agJuX*2J$F@WYR zyf4H6TDJ1OBuRQl!t~aKy|@w70BzcO--rRUYwxYYQ{1i6p`-U*nT*Fq3J_vtR9prg z&v`GTfA_uj!+hBEPMy79YEY5hrK`7I44_+gZxc!Sa+PMc>HYe9M@qUvX}wT1=>vk^3GAO86j6!v zfkE#~9ZE7O&I&&$=$&6MUXvkxaL~I{r{pVD`VT?xY8@Koukb^H-i-z09nptodUxpE zC(#_#uuShh9YqtvK@HFJ9@SA18+Y&{GQDRK;zjz8Bk?p#)3?^(sF7a3j?x+&J<=Q0 zQSl9q8R^YRh!^Q&$9aqED6PTq&(K8+z5R43Id+l0c!_tA4pkhMF7Xc4p^C$@CEg!(D02}1#9@WM`FusZFjL{@2~UIy%vw-M;tp5$)aQ`%nR?<ia6bM)_mMec$AxJkiltH`*(w`pHwiCZq|cOV@1j zwc}2N2uM$hw@H6z$vWHWKLMF)`g=$}sj#xYyY%z&%->atN|r52xnvYj?)4CvluN~k zaezx z-}OTuLJzPyd1wMnZu?Q*PAtaBKud9lHCoD~;s)PujX>nWP|%N*#c6Vnl7%T5LwHg6 z01z8w(kfZ_6msij(j0k*wGNd>OE1me3d~}Kly|O_kD|RK2$Q`^u9is?WjWkl2cIM% z{6zXd(m0vDMy{1fQ#6z){3yt_$)we?@H5D5RZVQk--L)ZA+k5ACR$JvFUB^pSv3(w z32Sf(im{O8P1{orPaP3s@iyw%-YPf2{=AL<$uSl`0>m*EH{R^VSTKlVEM5gnkFhYo zQID}GM`ez&s6jc7vG|^Hu`w2FAg_wC;2g(TJW6C7V^Io?=rI;=5QbwcJaI7=tq7xH zET)jyXAF<!l8)Lz=5opNku%Q?WMiFg@`sl`3FqDL1HtNT%MKKm} zco#)67K}Q*M)9H;iwMAJSH)NmRD^R43bHs|l4k4=1o0oJq=GEMwG4`~_z^&@IT5Z6 z@aH<1brOCN;IDKrOAvku;BR#BIBxc3fa~jE8gvnU#h_4&My1>)h5yYvRH#Mx1E9V) zdoxN2y6R3R)}o$4u@+jbaD70!>%`#(MgzoJY>RR(d|Oq_XpXgL1YAG!ca8O(z;Uca z6N6$cv})m|fc&5nhnpD`YoSRNZf;Plg$`+9P^^X4M7X6vu@*X{l|iu>xa7oyft67a1VoGE%KRePk;~TU}cQG06wULl`-}P_^=LU zi_Yj{TuZSQ@ys*&68wBTJUV?vMn9tPdbFC6p(8?QMHTkFoR+(beiFS zTo*$#!k}0St)J{&!#@IiyAD>KVrA2;R4|3E+*w3BGBK^D;n_qss$epaF^4EdC#KMpHJ8Z7 z>SU~I{!!A;BZ?V`DKv@Z6WOeS$wbBiqL`DILX&7Aku6J1#$y=%*`Qbps^Yj=6Hg2@ zC59In6l*amO2F*tM`SHFRICL%2r>havBcn53+jw}QCezHtc4C)2FPv?wd7nKGL{=0 zYq0?rb+_6IgJLZ-$s)5{gjWK0TE|6{r<`MW6$s8IBoN`%z@5`^b~NM0h=L0Uf6`y1}4W3yrbX(~ZDo>bUquH-R8KA%O^Q2Cj&X(;D4k zP^?AbMz;c2PRGSJx(x&s5)z2;cHpkkaayB042rc#+~`i=D(krTMt=c8m4pN$ybHM7 zbez`cuLi|hByMy!a1ZIY_(u1DATJ?-2=4{%Q5~l>y3dHlTKqs4ZFT_R{Q$eM77Qk_ z)O1q>2SDJ)S|lLQXXZhWy0I2aO0tXaA%NXji#QI7;4lc>Sc?P%&P+IBL}M+OikAE$ zd=y|e)`G#*XAwRIup4W^VAa%dBN}U=F*yOS8*8C4ISH^EYY}CVamvtQEeI|$e>0p| ziwC)Q+HhhmsHo)6IAdtB7F;X)tkE$NYe9M!+2;(7weZtZQf8I?J3%H}kAac8y~#Om zs91|A@9aMej|_&>6&_ooNg;?= zqsd7%RjdWcA+pmrkqROw(^Rn*5s%Us5>77XXP zo0Cl-#9Bl^p&hxYe9`E9QQlBIDxy`v0&BF>=Gu&S|r4kG&$BHii@ls zL{2I52*+BG2qLGnsbVcyAQ~}Iq>QOzEq)+^B4te#Yr&<0V=eIhTxaZhcq}*8;yGA3 z$67pUKNgL(pgoBSJU2C?XhABDSc}N6reZBf`bew=%NMa-k^Q)ewa{psn_-RSQ2w9_ zX2TEL=qF!LMI0JikbXlVl1c5v-E~&_#->_`euTdbcwZ@J$f}l6TppC% zF~(H2jgs=PA|NQHsqpGJ-26y|6vhp~SVXHj_?@d-?O;#wollZG3i+sVHQ=a0C-2@ENEL$#aZ+q-gp%)Xi%U9!EdgbYEYyF z?P7+;5lh-g6%~m)MOyHdA|fqTfEJM!ccmE|YQdCTN0Gl%RfSq?02zf^RI-X06l-xD zGw3mHs9M?c#JKExmGE0R(?GDrW5~+jl{Bp?X93XR4F;5EK(>K!i=Q=$900oQ)F_G= z2)MW>aU?k>Z-Fj3ymw`GQ zbHPQ9ceuBZfuIYLJxD-NaSMJCba8J8@Y|^i!6OX+1-}$^QN_wIDAa;f86RpvFelXF zcdEpp7LtYf8Zum8=&GingF> z>1>?q(H5VBjH4|G|3HFhi$=uFiMF78h+LBh7dI%}q7(8m7zI1w77XAWVSfDYgj+KSkmxSMl|q3L9RBUkrxVbjS&sKP>^d4 zioIxhi`!%Me7<5o^cJxf;p+?vzKBPMuQw?AA_^Aa8w?7+&>{aYDE^{rw98pH8Y%#T z70x4&b(5hYFf`CV4HbgHAR0&!zS*D{jGL=Ogk%R331<+I7>sZwgMu*V(xnEFyQBIP zt_*u~qcEuRAtDpuTL5;$Fc=)+>kw1{fg6XBfIx5JR*<@Z7)<&O%YPfdZX`w=2Sso@ z2;5MN1O!e8?l348LsJ8Fz`@-K+&&#g^Txs51>8{`M~&)YR|UbDgajgdw?Xk3i5tBK zIKPh58od{|ppJ`g^ga+|B_t5x`wfc8NZjZHz?Ii=TB8pFceRd-Z}cG$+?0?&gda92 zE+cWHdBEMLkUwB5o;bRI=VTD4KvA38D$Ug)^pT z0xCwL31(7@m0vXwPS6i{8C*huiWBa{h0Rx@^6LiT34YQLGk`!mLFG3L1Qcultqdv_ z{{r9*dZ?xVDx#qBn+8G(bh0`Cyq}NkEdwzH3QFyV%ApleaUp&wrr>P@F$Ga33S0Rd z12F~hbt=DWAf_N6?Y|Ag6h!;yaCpx^OaW=d={3g`P;Wv6#PL4XYdAaraT}zut^WDI za8LmiV}lARS#?>{WGc|~J_t^lreZ|X+fWddKO{}3+(m8vN`Q*Rv2r6#e@vP#qai8) zL7M)AG<^)TGN@R5N}8r;lnUTz`ZLnBPWCxzIv?2=q-h1E_CxK_qNw-}v_+c!k~AG< zqOg^}B2CBFsr)r*Iv?#fr0Hn?91h=-rb#PKuUXU7n-Bp>(;q2Klg76C>B7vKredt7 zZ)s@U(%7hiC;|%KppiiMhHX;##>?nLC=FXQ&gxl(Zx9Q=$>AGbGbVha4(JiSK~o>$ z8@1t;-RZV-8oo58#% z%(8jaO<&%VW}&>N%p!SDo2BwRF&?|IXc_kx*`SIaD# zSKGAmUNj5my@VZ-yqC>gBJUM*x5#_d{8i+=X6_Stuj3eyH_X{0?_Xx=yf@9;^6Hos z^4>Bxi@dkZEArkk@5p=CwDbOLrsutf9=>myc^{bJybsOwBJU&f*1V6+10wGeGdb^5 zbDPNf%=|;-eQur*d0#*!UlQmmGb!(Dv%bvx#!Sik)|@Z$>Y7_bUOlr|UVXDJT9{YnwKU7+wK5lpyw>I>As)T`qg)}{ zn&~fd#K1oAwGs} zR47aqq7aWg>VKcCE8Injg0i&3;}9guR;y*#w!<$_lf~)hIlDN$N&LKBe9uTJUa%j3 z5mGlWh`Rb~cDOdZUsU~dJNy!%s=r}}Um>>D z|7C|?ER0H`+M9MAJNzkOi_=e}L2Bt!Zs{#IgO)yZTH*@C?h9fko}B3K=Y^xK@sjst zZ}^d?R)$df5vu)k|20Caw8M{;uCXdK3;Ac(h1Mde+380qCi!ndW$WAEwa=REa(fK` zsOFnd`1M|k;U5C@91(np%=4=saDy$yI@`L{>wi{OuY`iA+2cG;IP$jw2kUl#N!CFCiJEr<{gWSO zZV2lRZyF;Wp>+s|wcodmm@XU_>S)qgLM-0dv_mKOjJHLLtC#5A0X3Gh8m&AR}4 zRzCeOlA75Ow8xfVW?WLCDt3f9%b4f$>yU_=JMlZi{{`XibMOZNs<9<>lJS4ycc%X_!r$-UeWV5P!qdQP zu&oEZR*j9J=b1PMm|6bYi1;CZw}x_=RMhVEoDj496MzUmX4Tjh8jf=9?{R$79Di*B z-kSs+^+mbH_RtU{I6!Z+lwz*`W%-oRE?2x%AMZoXM(Ii8L-DeFT;A>=#FO(JD}BZL zsyAHysU2jc)gxBA(GEXVzQ#^vrMsh6I==ubb>NAuR3V@FCB{lO*=(h|qE@4K=0?p0R0M_K9qsFiNZZ>0+hveKUuS?PBBnFCQPU6j~L7hl{;6}mtx zRp^9Ps!)lnbjc;GbZG)BJ*ZjfvI4DihqBUrnw2h(TIr#Pl}>QcDAzO8{4(OTb{h1XTOj{=^P9 z(8X3)F5=R_<)Sj+(!k-;fSMK6KD9ry!=v=dQ4vPDl}EWEjB+ZEQk6fqzktH%0$rSb zBA2k@A16>)!PiWpF5sF;Y_)6Vm-bh7xJCX3sjDqqX;lVYZQ)4ULP`6z{Y{*-&hWNN zAZ@|JOVkAnZ$w%(yx-b&?eHXB+Nf?PxzbK@bvwzCc9N2|o?Rc((n_Z|{X}&;Jb|z1es&@HjmblbpgXooxGZ;*7`!If5JpxX|Pv>lYRjqJv8(mJ|bm_XWsbxYI*=r$s) z(rpvFsU4oFOB>bgOjp{Ou5M>K(#}-UHnW>UT3SCAr=O^9e@!55!MY{t0(47kHQlzb zTiW4n`5PqNc5|gw8R)i~BW*V&Z7aKVoV1Q^<>x-A-!b~W?BI(oIM+ttK_*3YYnilkiYuAkQv zTk>`ri5=;5omxM4ushn}gZUdGogQ?hR2k^>AhjT>eP@3kC!M3q8xu(9+G$ieqGIV> z*PcK+*5NCi?9O)BlDc@RrB@*yPIrVfuVQ^~NmAph5YUoJ!Y+1KNccACkA9;1dpLoF z`SnLs1?Z31Y5MDCceleQ^EX8LJL&3AWgy;3C0!4@XPk77{$5TXU4H!$RRQ{oNT>AI z%kFK5Q=~3lRDUTE{iQ_om*VKJkKGp%o+SOzPgH-OCy+3|{)j4p{#>(TLnOYUT0gtL z9X_AGA=2M@SAQx4{he3(8(u-hYKuzu${>5Nje`<&@uK=G z9MNCli2e#I{k`&oJp^-2(h|bG1Ev}Hoc-!hf>ZvrVRm@C90XZj8*YcU$#Ik$VTX6f zDaeUeezq6Iv!Dfr%YyQX#mdddC1kP2UK`JXe7(zp@|R+<&E6i*g7z3(7L>nKM}Dz) z#j~KRxyyp`ip9n;1?ggsy*Hi(IaZeiAWf<_jik|MMtR)w#c7#9 zO3Os3v`leY@mg+@P#S_#TZO!#0@~8GeDSuTT5g}PErL>8>E3VwZRuLRcw12|_ej_l zLGkymE4)R$;i|>2fG;cJeY_a*bnO!V%Jmi}_`Pv(1i8${+gl6Nql7mpxJ=gRY|?wJ z!6n99T~uzFA>LL`NrKCb8RG43{KO=vU1e7qZ}l)6!TSYQ8RB-D!((J{(OW$g zY_;K@bA3V9>7{sXFzWPHxs67hK8njGqfTFy+h)}1r*hkkI{j5{hf!yM%I!4j3{-V@ z8FdD!+^t;69a~YECnQ`&E9rIl~MdQ2CkWEHikJ^B9pOJR)>as8H~T$mob%866ORbU@zj zVRljjQWt-p-A?>yP~PsT;A&93|GylMIXoVdUZC-q%j2Q)^LRW|em;+f$}iyYQ2B*C z9xDGckB7=H;_*=V#XKII7w=}5n+H9Hlud4HV?~Zq7})n~)THt0E_FZ^zo_ z-D2-BuGqg%ap}FJEd+eO2qzy@=H$bgoP6{tCm*-v%xv`b1e^HE+ zFK^-Gt7kd+`eRPMY0SyDeK@H*fs=YmIH|vtlLjX_X&Bf>%o<(CNt0TfG^@)=i*B5> zn#xJ*rJS_c#7Wz|oU}X3N&CQd;?gmblkcwPGTXIo!{Z4%cq=lYr;vdcAWGc zz)9bqIO(^Hlm6Q{8E}-660fiZOT22~s`74$*Mgk9{!dQcc%GAgz0b*;^*O22fs?oT zbMp3FPTtwZ$-8Gc`FD6HF?;V?PTqfrlMi0wL$4SeVIB8v(q#cBUAJ-4?HDIL@X!$?JqvTvi=I5c zTdp@f_WO7L)|Gw%Tc@wAi%KJHeOxEPIntYklCnTxy z-&Z{)-{Nu&`6Z_{WeZN9lifIdL5}3Kww%G~OL94B%ttVG<+EDJ~w6Q$SX)|f;rFL4% z5T~tW2~OL}8#rw*t8)6Ce1g-?@(oVAN_^iO^}5R@oc5HRIPEP5aoR^t<+Q(C&*?yU znA5@1vybWxk=dLMlNC4}A#dSyqeDN{Sg`xw|#i9?M~V=z(G zF`lS&%qOZj))93&b`y0ujuVY`+$EaF5qBQy34L>6CN_!%&_9pV$NFt496M20Vk;dDIym5#~lWRz-w59N=%2#xC ztF)ubTIFjx&MN<-@Ttl-@+!9c_5~u}H6+sheIgyY5cz&Qksp>3`Ed`Cj#r6vlGm_% z=L8~M$`k4O3XyJa6Y1WTNLo)KJu->(Tur3cA4GbeBhn}OIu6$NDI)!<6X~BqWWbk1 z2KFH`D2vG8r9{%V5gBrfNXC64Lkr))!G`&X46jLKM3BhHPl$}_L1gr3B4cI{$y`HZ z?0zCyH;9ajyNQF1f0jsgJt7m{Co=I{B9nR%nLLTel&wUjo+mOb8dh+8T4j1UA~RbN zne{P|*0WFqrd0I4LGOHr*3O%NN=_Vvokg+E8H~6i}$NT`xDt>Lsl{*qEx=mmUUz8vcJ zb#38f))fgQ?9%#hsMMjM@Q_exdjnn%p05S=Ew&sM16`HHuzZclb=mlq%-0e*jc-@HPow@X0 zo4lHMpRcsi&aHVgQSJY=w`%6zxF77Ty1BRN=H9sUUK_6_YLl3DT*uh4($1%W3l#o; z?YXeIXYL1ke#G4KBj%pD1ol*vch)vu%dgcegqNHQDNZAjPcy6w?1`mdPc;i;v&MI1 z%}1zkSJo^-g?msydwQ=)0j=g^$O4}zqCKjKDN+9)pO_MbebFblU+Wl6OpU^q$F&Bh zm`Y>8q0gjdO1sCjqM9i6|GG-0%&Wxx;3}0iuTp9ADshRF@&bw9gWbN!R}4<=aSh!4 z%Kz)su9&CB{qWSTnx}S^#-jb*<&#s|J%!ir!2fF}2h5#tKRCO;m<5;bFB%Flg-dWo z$9Z4vifbh_v5+eEmmjyjB@J%t+h*yG6pMJwyP;AWhbERpb*>M;>cIM`6;YVTX;V@Y zKhya^YWitSrJ> z5)_nn6}3uQ2xxItx)uUjdhy-^fEJgzM*uCc9t5-~RN7Y7s%ZIIV7XYQ)&#Uz2B1Y^ z04){?XsLieO9cd4Dj?8e=Ujl+TgL!e4GRdg*aLxf7<3?@MFs;cmI!FE0GA=4RW)(& zKVF7bD)z<8V8cOT!DV;=4jOx_rd2m_@IUUYnz=U{4u63I-g+GTO8e5`}#uaS%I4;2`ayT|KS7iG%-f52ehjWWzz)DOke;a1h0egS1;X zwFc;o1`htm9bYj|&5nbiQwzgE-b=fNc>N3<{Es_1VD7|*gQ2s_6$fcw?OxGf)$>B? zY=117agh2G4pND5kV=GuSb8uH;&Cf&-_V+bfDW4j(BU&W2GG@-VgOwOC@7soH*KGW zF{s~Jz$x4KUWEbLpNJ{wlxsBn(X;)@m_k^_H5r}7#h6E&@_pYI(5OR0`5v`yQ`jj# zAQmlR@2=GVDafAF&&HTb*bOc$4%W}b-~#sG`50Qh&Vt~D7-RW*@{4(dlBPX|W4!Ns z4OVjRQQ&p4#=7=3D(tGMek#UX*Z#9g>)KDp80*?`#rj%Reh918uf))5^)oSBfTv%I z*^T6K46R+i8e^_qU#Ifg_2$;v^&Z*}xPM%`4oj$U={g+8Hf0tRcny0`O~nSdh8-I4 z6880K@Oq57guR#c3bueH?E1ABYYBUAEf(3hgdIBa3ijsa3U-##+F+3K0`}(S0(O?t z(%|M13)or2OM{z-Enx4Xy@5N#1?(^+uU~IrtzYk}eS~6MzYbzrzJ4RdTE5;-Lwlg* z>mbI}>-xbekJA8b(NNBHQTd{J5^(7vM^*4P!LwLa}TxnU7fQCj2EU37L|GuouAg`@mMjfYR5zNrpe zrDX1gdP>9RgtAGMFGe|;sYAV``aW!fUEE&+q313}Y0u-;P6CZmSG3-is%5&PH8>(g z>R^E+C*!3j5;m){73ip|8x`47wG=o;dl9?54Z?12s8f-PS1eD>gRVwUnEE-W1TxO+}+5kR)*~b7;%2;~c&U!_jO|9vc zTC**+Vxvf{PO!9!VoRwzSgAvDD0Lzah)T^cm0AQmVJ9A5j6T%;B2@HY?kY%zyBh%s zX1R4BNmBvacB%1`J^BduCMfG8-8+$tavuW{9PPf2B-4E#$ym1w`m}f(lsHMd1s9!^ z+TvqW>Zh$kOjc@(Z-9~fmc=EdwrB&4l*Mns6HBbrG43@`!9P;!@2u1$yHY0;G7K!k zI-O$HP^D8tHSo}BS_x9*i_UUR_%1Kb4%&}HMLxqGIvy4IjG@SEP~6QkUHE6o!e%9cu zaJM{=i(AePX^FgYPN)Vto2xY?os~zOm1UjHMV*yp=bMK*D{JU%KIp8hrL(`(_;Qgt zJD97^7Far)_i&xfe~``&vCbCe(AfgZ`4*Wv8v}|tjE5JaFLp0NW&Pw{g=C3)2kH#H z?uZ&cFGgR=Ubl?BZaI713ii5H>~*UxuUn`=7B|xCm>KDH1~?f@Q>FgzE1!sIkf!Uh&Yfxtu+0TAPomDh+wia|&k#v@fcfuvwbv%K} zqJ-&d`Udv_kR;?j*{+<>nu$!$wiaWx;ZY*MUxchETiuf(*1Eg zX;c5jje$-}Y27B5bDV>Sy2(`PE3YZaF%^zIM&Imi0~LLX`%@&px;p|%`V%yJT#fG= zqi=QJL1q8uR#CjoT>waMySoIEo$fM7cDY{$LifiNd``=Ngq()Nes!$D-x>_4gN_`oXTAh`;8Rwjr{v1kOXL;%Y zQ>nK>3#U{#_89#ycfLlTu7mDJksNaSfh6?=`DrzNX^ei@Jq6185%*jqf4kQL2_ALt zMsnQ!7m^e16F}(xxZb8z^Zv+8L#gKd(crRD&HLjSR_d{EPd%H9Qa6OuNJ`xps)15} zF+8=RvywBup1|eA?N6do>#?VvLZ#L-lzJMJTF+AICO&}%BGK~HbCyzB9In*!cBP)N zl)CBRO5OY*rEal2^(-s(LJp<=YI*8KQ>l|dbLZ6f2B6eS?$xNx%kE7`uDJK3QeT42 zc{P4WjDFRvBmbJaC6epzFM$MaxVs>^+qSW6)Y9ys@3)MiW+YL{xj7n|9O1*7nRz`Q0hHUY9mXjJJ?ej+m+hU zW5O?s!F((TB9QLCbBvzmk;w1i@gV8xNdOY;<#`@SA5TRjeLXdSkf;7` zQ>y8y%#8F@gB#(gS6HdNJzIzAGvJI*61ZNzeLoK< zHHkg7zXz0>WGHoj=Ngo8qC)r7eH;`7#WR+t4z`ra;&7#=vr;v>rw;U(GtPavC{?rW zsqmCHqAX50&8Z39Q}=7_Lhw7tL&<|7tW?dqryj68HN#Y@+8FZVYJ3osI@I$RRPS1jXDYYspHHDR$g-T6fPaTI!O)-=@ z9+aA5DfI|Xnp@bFI?+-pi^G*V$*$CFOQ}a5uGGIDq|~F@cOj)tV5LsZq10oRr%o}I zIu|r|OO0;$5zDVYJ zGLX#kWC9^iJ#JH~>8Z?&^i+cz;i-36sdK_T^=>XoJrPnPDfMKi21-4pJxfZh=B)0F zZ%xmTw4aYkZOxv#0F~OBlu9$pdusf1Cn$Bu6QRIe;%eM9xw8jc?tmuF87p0 zveHu-$tq86Amnc6G)yGM{{bOv3)9`0$(m_lhOh>gG}FQiVLMAo@vI1Uw=OdNPe}1J zw}-IjL%JZ%TnN=bGZ(eSq?sD1nU7dAt5Gu_vAeB7&3t5OrmKwqBvLcoWSCDGIk}%L z&0Ko8W-dQSGuZ!f*vy734)ED z8Bo!G@hk)q+~nDgWQ%7Xl3zW410kom%843Mjp;PZG*n{-q6U{$V+Num*&FWG5+L)Cm~siwD#|B9yeC9S+#pO9)w z+Vg7LEY;k!tEOa*yxJ|hYD(JjYJFKX+jFSqwxyaKrfP40RPryCG*nmf5U4KpL1#^6Rc%>dTSo^Yob z$eKy9JI!6zMM+Mf-3!$~GyfP)QyVq&Eo{k`tapAmlWios``ScN%6!I*q}NaGIg4nq%Qk zGb|UU>Efix}P6Pa3yBiK^+yPIC%X(~(p|abS1nMFio_ z6x=6}F4ah{b@^K-TC_BFAt$NKDD&vR?_SWOJG-`IIxHFi%`gL zhLonC&k@}BbiNSM-33#3d*I3smvHPc`bEzrsOXnGw}B*m2AdHw{+}5AvZp`tuXu(5 z310QgLvr1-3<$YXFQ<7AN;U66%w(O>yRqnJ27^mFqxWOc&kQ43XV=2rX%y=$EF;~U zwUof_)F)H}o%MD0C7snnou#qPZlKQ6*qv^o&eANM^>bcAo%OU&$nID=V{zCmNxy5? z*)2n3epayQtiN4n#?K0*vjLXQZnMtr<I{UhrqKuYs>@oU%&j6_C z9laxfq_|--M#dKeK_~CCDCq1h4!)&DFeLi)uqcKP2{`AYExa582qG^?b8*A_{o)lVZCC+Ct4+(AEz-6f`>+CFoF) zI`kA!IGg}00#-Qb0FOB=3IH@c zmia$m>3zMOko55O29lfso1xAV(8~J_m|$=3WEA%E&PCGGy9`LMm-jay$@^e4%=rYI ziT5$#h2ZrpFqGsQupJIBlLj{YC<*~+bOvi-^2#(T+y^hVxqGGR=)-%WqOV5 z6~D=E5`vC8uw=RmoO_G*s|hUlTV?5g1r}_jwA-rvW&#WKdoZw|I09Iz5wL92wj;36 zLR;LFW?;dh(r$;g(*zb4J`h+?oGY;GLSQKs0+v!Va3?X@xr=b1A>zO(#(}Yj1E&a& zQZ6@Bl!+2*<@79XOcLQhLII$`iQWVxbG)U2Brh7SC{vvGEF4J4+y*Rtl6N1Hao(dq zk}tq!s`GdV2PSyM2oO&8=0!5zn;%Fp+glPya#`3+b3O}ak2s)D@zw^0lKeVsr#lOn zIFRx-F!ZV3kC9CCehnlz-P;pL^4DPVGo0{Tq(V3_!`lJWC4t@HAY?iYyvH=J5+1??*faMTlfZ!kDz$C_jxr_tzEF753I53}aU;*R6LdJo` z77om|5wnHg{Kp_HwWi}94#1O(DP$(A= zSnN#2{viN!C0TwvHk;Su*&C zw8T&tT4E^NN93hY7{gkl1BJDz6xL!tBd{g=p2PP2H{17L-d14z`eDn= z=dzg}WivnM^`QI+Tl+D#_7j%1Z*wMs;}}tHmCSy0R87oam&I)KRWjdZsqJ1j&#-;l zg5mAX4mcvlyvGgOZ*IlBJM6aa<9pqF89Zs({!S+>0Wf0T=2pzR%b6e99P|44X4k@u zd0A@2ygt6$wJ>8|mXh_ih=_Sv#Ma*;Eau(qgbY_G=JoOIu8Fl;_;=@*DCXOpk8XFT zZ07%mGa1EvyYunwuDLzt-Q$G3i*>u(>#T@XyxpA+H~)QX{yw_h9n+4R=1-yJznZ@h zIsR#w|7&ReXW9JEp!uJrAU0)blAwhPOy-j;4(YGId+1JmJ=*uC%D2+aGssu5<9_Fc7p4c6CALdfc6yW1uRD| z;8V!J!){`8gT*=B;4jM!uH|%tgLXGCLcX75@P_3EhjMp=!*(|)6zK*mHQb<3q#Lj_ zS2ti$Zf=IWo`3?l!81UD|9Hy- zNuE0imOVwd!DirvOnWz$Me0Ey6cuq>%MCCv3bn=P2-;$F1a3gl5k@*j7j^@RbjbRQ zV29jbDZ4=@ALTgivK!pD++Z2IL1!POI_|L>bo5ciql=F+9^HIq#^dzAxB<%_;s(oe zy1^OC4Z8X`17f=yoXy1zR>)v?pP2zUm%AIBf2bR<^g(XG(p=quMY*}bg@?Pr#hh-C z=Cd*&m;TKSE{D6p70V5J_`)(ES8Z<4NnCSk@fg&+?riLgzesN$Y~Rxd=6sR!g4MxP zS4x!Vy?k#$1%jH`Hb5b$`3y*Ku1JcZyIU9mw=%pe*)W%_%H#5MEY1?TVO!`^?M-64NW0U2eN$4SeOEY zzW>q51!kjw3+Ur~6cDNA_di&KE})P1nE}xa=-Juz4(<+vUo;RU8J24( zU0j&Yrg#WXr6|fL_==PK8#v*vuI4DmfC%NCfdyH>UU(^#l-WSmNu2xZ6MYMjmyE1# zt{T_}gQ7{yhH9%aFlKjn0IHdUaWE?CB+}qnX7qzM&<`%LA52C+xWsv}u3+TrB}()u zzA;e2dGchSy+!<7Ai;UQWk4t|*28rWjMeZ1BQG}9XC}mYy0(S;o$-ANYlR z;3vxmHjxi3vHQU0oIcRsl?KO0KCp~^V7bi)2Dns|Vir7VU=P7QFwnIUj3Btu@_~Ua zYg&+G`M@9-Md>gt&{yT~0Tz-Etj^&BgXyZF53Gsw0Tz)D{2cBB=`LFe41EBy50(!M zaea%Yf^z~q74m_#HXq1vL4G#m13g4eAK1b^u+HWKLtQUnAM}Cs;XW{oeV~V69~f@< zKoj(V%j^Ri&<8Gau4n@o_^%Qr`bOVjsGtv=0SZ2F4M=c@?>-R96^#h@0m>Eq;xm&( zBP}1;;-e(dCLd*oHv7!%&?vhPSlOY`mJj^uqwLUDAEkwU^O;pU52X`@mn84~);<2eK_6IGDo+SV%r_D2ESB zFn!=~qz|x&eBem94@`Wh4@}C%2mZGCz~q1Pft~CFM{PbZ#qxn;;XW`m+y|z)UW~>2 zKvVRAE9?Wu(Fd+@k|$3P9@dj6(NFlEgbMh8+Yc1tp$b5Pr+qbmP?Bf53x8NJ?gQ>n zlEJdE91_2d#BCTkAQt)|0*@;OS>9qy3$Y_BYUo#d7NpN{QM7}Zo~VH*mB_$` z#T4A5I5M=EYnt@6NRws}ne_E=lb**$iJ=XS$-v&+0`~bX^S2F@6R_W~8TA4e%o{_% zev*P4{ie?r-0WeazGXA&g|52T2Z8-|xKS@+qdsW_H;WCUZiYsEm5uri8ue99-Mk7G zyH}z_zw3JsDhTXf0EH=QdmzF4zHUG$bMuqks1rDGBjNG-oOv5=X&7}vCZ%n-_1yZ-JjWTF(_hR8y>N*bJZfGPC}!; z#zs9L7L58DCt?PG#r`Exq7RIn3KcZ!`9Q&_R{#m7$8H2dd6@O#MonoLHr2>147W6m znvyWw@&P#*qXQc?g%xPjp%e@n^+7i3p={KHVhO2-SVnz_jd~ax_25{VW@fNa4`-tu zWf}E`hZ{AEA8gcza~kzV%cw`NQIE74^)I;@^(HpzF_uwpvW$AP&8Rm&+^AXnK%?Gb z8g*u*QL~7QdTh8+|N1XRz18&%x*vz&hEZqPjQTe_Qu8!aA7?k}BW%>;ZAQJ#GV1Jb zquw5F)H_^WH-;ZNW*2XAc5wn4^-Wq#pWF}ZWv2@kmMg%im;4b`pU3KA;e$JmFY{YO zH~h}&P8afJB7Nu7m)RCrkdgQCcTQOtoERH=QOr^3wu=Jp_@6{x8tFW+S{AsD;^{5Qai>(j6Qt&vB$@r-vuRb*vk5Hc$ zi-(wkhj?7#;px+3@!<3sv3PX)%ve0Slx@}E9oJH($3*K3WA{TvUle;3NXpl+eCVW< zJ!7Ku#jzcsqW=`z1Id!uK|oU8gv}`_CuvSP#?~lW8v8MjWc()S@2={2na{`~B&OeK z90M!R4>j}(kw07=xj}hqKp9MEKtE{lD_!=uDr1W&np0mE%elJbQ2Y+g?&XC-`4Z?E6sBXT^RFBn1aQCuKpm zN1qdm!_wm0^HNH9$H&~z0I3&baDHr4)D>R!eXfR4psVpBpT3f>{BpYTWE?D{tG|k` z{tCMKhHcP6U!;T9SI3%azQl*T#@Hk2=rZf*XV%eLOGj5&N9$Ne>sdz|EFE2q(9uRq zM}NA?vkGiF5-lth?RS06a!W<}FR?Za9dI?q2B@J;b`AZ-1BYt}S}Mtp!`E95x^_V^ zemebhdr^57SfsLYP#_mQM;Lsh|eFUZRY3zcTMbY#1in^eg^t5-}Sev2mwtHf#wzi%@zcjTl4?|0nJecnp+0Y z93?=>2{g=q0MM{7_-p7a$dryf6lhrbpMa(n80T@BJ3naKLb}AY# zI?Qobr(A*N8e8CRA)vV~gZp9^KraHC8w@nt+1z(nKy#CUW+$8aE(V(27SP;cBR;@J z{Fi0Kx7mmfvJoF*BR*^y@tp`GK4Ka1iClmNmz7#(d@>iL!4@_{K4n48-*!Vj?W%|d z9&X6wwRdxYntOcJ_J@#yq2?cknm-t7ez&0JK10nO3u-!Q1T}j@1EhA+f`7)YLTw?` zoN+Y`LCtZ#_D3zKVIe`y3BLZvazIUI4e?PwX+cdF{uc5nJJfX5=yq_LwRFbPQa6om z2WMGJ=U7YUEiHA|!fyu`EG?b=7pOUx3)Eb+L(O>?{i=^pbIGou3$B-QY6v(CH5ctr z(^2GvnoAFZ8WsjGhn$p=<9G-;BB17Sh#v_xS1f@YYOcBh1U1PBHMbdRt{~LhriU{K zYOXQV+%}-*+5@15`44~^76z||&Vo$o`a_|HrT+7fOC#TA2IgfTre3TAGwo!_)Drk6%Gev57VHe<{k#u$XO-fZJ{ zEgSE{JGy7L@xE;1|FDhUw`{y0+jz$~3VAxkQOMId&J20_la1?L;wa$h8fOMPH~$rf zZn?Ulsh*M6?G)~NVK{V~2SF?EW_G6OXVWqQP! zq0Au0m!8I#&z01{TCjKAGpH%Vm%COd(=U#K$UbpqoXbMG_Wk21kn9_03v&q+)A`yD zu)eiEgs=U;(6`nx+|1x>KPV2vO-S>b;pR}j_JjG_r_;3uxq0n}h2sl|%&UKoW5Td- zQ>0k;fPY-y=eYJF#dZg{@1j+)c;$!KuYAYohv7@7=s#dsBb4cp3%+!Yen=?8!eB<| zd-aSjH$rd`fiGR)!{rp>MB+3`@{0+5xwDB8i z%a#!-8J6JewPnk&j7(beTez!}@Km7C=@-=DahzntUr2jI!;^1{JWW#kZK!2DC0kPP z=T&%B;VBYe?y+Sd%F-yw>pv4p&*&o9?W|L_jNc7)xEu$8@Gq#nqRC#)!E>G?;wVi6 zz!d|Z8-$PK!e?&aFbY7WWx=AbP1y^VB$IFp_{X5qvfw$`!hkn`z|Ta2T1|srTQoT+ z22bJ`R9Z%zgDtiKlA5JKrlvxH>DZy514wXWTnrF8*4})q1@hoyGF#v%TSnOrIi(z& z^*BuyLb+ZQFG0b&u%-9ijn@E^Jiw<1)l%?^Wg`n7jnV096{M?0zqcMAlVP>n3j{6fTbOe(K zB|=A_H18Xo4}J;`j*pv#eU6M03VhKP=WCg9=b@sHjk^vcE-W-K9>`g4uCPV5DT!Prv8{I8vOi!TwN3`h+-Ck|FLNT@1xAkv7Dze#j8lg;oQi z526_6F8ai{X4rdDTndon_hB%(#zO#rWw`@D#sdL>CAk2= z&>R3T!v+Au9tHrj9|!=$9|iy;EC84p1^{y&0049U69CM6FaXTY0RXcs02uin0ARrb z0AOKG09f=O02uXf0N4O-wis=S0N^sz^x1J5fOBweoDT>Az)uVSb1VQ@5&;0C82}c= z6~R6T081GF<}m=ww*X)n1Hb|c0G2ZVEHnXNg%(^KR~$wn02q@40DiIqK<2{%V5|iI zOBeu_S^$t`0l+c_faMGTEC{X$2Y_*wqlW>&c#9tf0NIwGhXcS^OJE0p3DJKO05nGc zxK9AkPecuzEdT@V(H0~0MAz>X22 z085Qzwl6ax7?}7#EMQ44STM=L0^A*i1FLLkFxf%_lt%^x@FqVD2vC$GB$)CrM3`zJ z!s;+YSj&ijBSr)T>lhPI^3bqgJ);7(%MloC&}d1yJu+Bh0mHQa01O)$7;yNA*x(n2 z29#LQ!6pU=WJbmZ)1#k)+nYJZ$r&M(1vi9G#NX$+Vk*>vYvVegmt$zKg^}TB3mJZ8 zWH1jvX+9&m5C#Xo#HC>`#D=Ym4eJ;i)?3){8)L%;3mdjEHf%JpVY?RG6gLP)B5asR z=tjW-?vcWS&31H{6^&1IP(5ujK!pUb3I_{pPLV75!`JwfwE&1^sL3 zW&QXn{!XE{^Z&?i=Z6>ecO({k0pPQWk30I)7pba7xnd^_5CfwI!hfyd!dC&_rW(gz z)EOWK0eetXtqH=HZnBA!ZE)yg)XD&n0u585YV{VrpWt%EF*~qyAH4H4Du0DRVnH-6 zkQ91~Gu0V8Tp28+CenoplZbSY_B*_Jh023Pj6)0-u~N+-?$h}EMm~psu!wWIGN?(0 zXb+FVWQZqdi(l#)BEEp3)5RL#3>I}qbg`*N8_;4&^&O&4EM z%XV;h>EZ_}BYy;a96mz~AP%3?C@4qcH_0kFRgod4ktn+$?(_%PriBgSP2{&*%39Y>6L{%Mfo;uWP``5bshsSPZ`Hd{am@UA$Ee2l$@YSk9nw2Jr*< zz?$laiFZUfoL~h<%A>qHZSk8HL&RNWfQ@3`C8_ItAZaJ4!i)HXQMoi zkcys(a+e+|>YJ_Np%s3MI1q%*^HH86^v(D(QSN6)iU4+>C%n@G*a8Ye9Ydm|%P};{ z=^8>y^@j-jRQeDRtcBapXp0}~P8a#1N4ls|6StM9ypGDRLYqh1OOu4rHgI z;{JpptfPjLNB7{9SCv31;Gc~uQYcddUW8&k^)Y898K>@f^!YS#js}0UEDUfy3SV3D zXn9wfxWL7iU=J6$SOMM-bBT*DC!~qXT&!3!4ZdYV-71xVxBYOja)mT;jf+*PrHSiY ztX3~g+~8vM*VDvJF4hR9iCa?JT!h8s0cj#yU4_NB zhNX$T>MvMqJ~mCbRoZdN-^tWdjI5_oLjy971(E98nN$+EoELNihf7kA<&sJ^C~?cB$^+8Dc#S zk_WKjH!Q@c_D=Ci;1qBRs0qyim!XhfecV$eUd<8()r7@(NOAH2s60d9XG^n0AvNKw z#T^G9f=YNz#61g5;>u#X@dBHVr?=!}!`JQ-nvnTgE#jy*p0<)Lil_-~Z1OLl>jZcK zi@=*};YZcS)PyBD#o6$kyo657$9=}(U~xv@Z1K37@QF=m@CzrX#ngnAEI^*s;R!Y2 ztBAeC-GUZy&i8>-NmL6zsXnD9+|RX9;o@ouHNoki(=rF<0kTC&HKCjBV9X;8$xEpT z9c*&yPy5b>FFqwyo`ulq$U)IVyhk}DyRv~jY_t7Sxrc_27}QnstGM^jB%opn(%29 z$9~zOvYOx`b0=G(4fLs^CU_&bbYkE<0X1O^DTso{EKyZW7;Dyf)JgDh%Y-#}q*c>sG$~n4x1OQsn${xmb2Z2?7OyFM@>*|>Nd=%uA1;sSj#L?Pc8Na?G`t1 z#P!vLUEI+)t_Etc64b!5$AIUsqBK+!s{+UuhT>~#VqLg__!4WTiC0v-yot4yH1R4I z>$sFaRcO^nO>9i9Ud2}UqKw2w)QXC)yWk{WSD!5WF*N1VcQjU2SGIUVO+3s8O-Gb1 zny87#=~11~wQs5>o}=d$n2`mq{Ym_q#-U^W2}T4XS_veBuqaC;sfiu-;f|~Z4qa6N z>4IwFk5?lk$*StB{HFSrn)nCVj@gL~uX1xWMNK@9r(um}h*H%SYT}<5m*)_*R9mTu zSMXWWNYP~Y-d|!B(!x0L4qRtP9KDzzTeMaa$2;(jVR@S}PP9=IXF1}K4GMf$O&n`A z0mgf3;xuNM9hE8Y5!J+fj%@LPn)ny1``{7io*|9_nJT7<57or04nB!#;v+RtiQ-DO z_*hMpbUzJU{!i4zk?a_T$$Y9l6;Jy@-;SdV;R0>y{tf%d-x#)^sfqL9W~M`NIxE<0 z4=44xnz$*7PRcshIO<&a3-wF2cqh^lZr~i-s)@VVuTeq3_)1OO6Ga-qjZ(Rt`n6ho zSb0>e#myG~QxlIw`H)MBH9CI-1{Rg0?YC-Tak?+ldDB6`j=ob9OEI_fQ5c3y1J4r- z4nH23E!wMz&vFBDUyM6}+d)lyp6>T?5#6%I_iAD}7SRo@0}gA9_z47|+2RK^@o$^X zrimZb#M_3hvPDNVahIik?ipAKgLGC)6bfMI(n)nc71$1(Zfc3bfqhWus=7-!x~S3- zI0>~hwZtOgus;6)O zgQPyHyJVmYaQdsI3e%qZsqPm8HGnfvE%gZPd4TFJA7~1k!D^`@w9`SVyF%by;0#eq zJxV)GSKSo@-vDQ*TIzAyX@=@97w83?;cBS_+UYRW{Ze2Qa7L=7ic!ctLUq3!mFNyiX@>(R zdvRp3g=ea>)TdvtaRLZOv(;zE2N1aCsLy6+iMgu39HA6$03PS5{+I0a`KteAdwqfG zuVmKaj7|$xf2PTVK^Ccg+E+-vSoPPn%YRb+E$sCrs(+llzEt&3u-BKV{>f%NH0W~G z|F*@fcmfVTgIqjItWf=JED_yxvcyW&|GvqDgIuNhKeFnDSF3B(r~i&JJwC1vkBE#c z@w4jx)NC9#iABiB5^Gg|A4`NKV6IdB)l4ST*Q@^e_WB0Z-``%}sQPQz>%XY}hW7d< z)!)os->mv|dwq-QPqx>8RsF;4^{uLZy;%=k!QWK>36lv2xlQ$-wAZ(*{?7LL4%PoZ ztDY@(!b#DO;xr(Snk{yz{-zP!kZ8B+e>Fk`So6E;e?5|$CH_$TgUy|V2H2zei!h9% z2o8C#>OW<+g0c3g{;GVNrUu#KPt{-B#>f);RsVNZk1TOO^>?$^|5E+mTlH*lQ1w^g zNWd8Jkm|2#V`PcLs(-T;QDliDP^S@$SmJNhU&=Z^ILM=_U$YpYb33N`T{f<9*Ez2G z^Vzt@F`Q8S2rm%td$%Q6#bszLFy6_IC&7i5{%<{X3OGogXX$}$(sU4~{lFUm4c(XT!n z@f)^MPL`=mNvSYyd08fpjf)2bx_C*JDV1}C3bKrDYio@AG8`ODPdTMyT=R;uOchH- zbgrbLY*7i$o!c8bt1Qb5wRWZi=EEE6tIHRh6q#0&?oomDz^N%;%tM?S(ml3HEm=v{ zlfH6!(?o5F;&MKilh=_Kv6vrb?l>i?E8XiRiTbj9y=lPC5)EYeMs!nM4%Il^0JEVi z--PNVFF_sBi`4WLS^gE`2AGTGEb*!=Kc6h4DRbWhGQ{Zdnk>JVWS_I_Ym#xlMzVZ2 z96pX@kS~zsd)n)bW%<^Y=BY&LUy4JG7q~abC&=<0IZpWlhoXy@A$HJ#HIWr&(lsV- zmS`#~%(B;;$qGyC^(0wgw!N;)3UloBpsX;@UQd=4=GyCT$_n%C^|xe&1@?M#Sz)2Q zo+2wOve#2(1ZRkyrrzL+o}iFUxwvXvQn80u?0#)1kUzomh!f&Ts%v> zBP+L{*8Opknk8Dx%5CiRHnQ>{d;MKm`F(r+Jz4oHlY;1uB`K9`k8Vlf0JU&zW6Np76v zm$LE{d%dl!^paVRTh4=gB`dv%MIIzuw3C7TJOzL3DsXX*PPyttsKL*Cu%%x=zLr&G z;s42RWS|HqNbIe%#kVqWoJXM~0NJZC6eJd8;C#d`LW$z`GH@riek?ECL4Gd-Pw);Y zdti)N_y_r;415%EBu1x>vXcya8PO@U!_G1=DT*!%o*?*87a3R^h4~FmUyu^;+(6V- z1{QEzOm)N=9lFWDX4~LK+wL;3n@RAQ`wpPuyFFVe}g;(`7(7DDM~1FG~!Ofw!&8iej+f3>kPYoEf@n4V8g! z!zIvsm<)U$&I~mlE(4uORhUPL!wobaAp;|GFh|Njw{T`?j8QU>Nrp-$ODBL;7-+N% zEHMX;qdZrZ7$XCJSxjS>nP5E@(`Y$X22NQ_YMCvvWFSshT(T%*cjIJW7afQxhGQ5H zm)&GSJzEC$nDx*ZPmqDj5f{iXf{Ea$d}}ZV<@3%KlVsp=G9b2i>%_CgWEpspMKmgP zrGv~CQ)Hl|O=KN^wwNjd`D__LI!YRqZdTc1nhfZIEE^R8jx}8d_>*;U$OXm>8K}ZX zJMtzlGDH@TA!0owJhR12up|x!%m65E4K^DuHUfd)0jb$68K}<9!t;>aHe1Y=fjTUw zV2VzFhRGIlWZ*+v*HX8@rsyn;-8=`33<`6y#atQq+%`-PLT^eXNY3( zeFS{?c&1n?j{=2*#^oS0;MZM6!3S7vf~ebgg)e=8zps0#jH!KS`k|sc4s~o=5h#4% zqgwrFEUYvNFe-MQ0Y4)tN&}-Q?QWJ>?s_T~J{Vyz4*_irFWag`A7pI}FVZqfo6Hit zH>);F;U!Q;=~pT1FmEfC4#O$5f!7tSc6|Y-)COKfw9$1MOWURVjd}3qp|#9|*XXPx z9vmgEu$duV_bCcKV}mDz2c*mvoq_drZCQwR(gt2qQiMuyJ#O#DE>-ixFFJR)OF5v8 z56h@`$Pak=(QGjRTD1OIs#0u(tJeB3mNo$o1|Jd+j3ZKfE~cXBZ!8VvMo^+rW{9TH zwwrwq+ho+I7%SqgKBY#p#SUX9g?T62q*_=kK_2X`Fz;@LI14(**OP`$uQgnsYZ9*y zoX7?c;yZdnLOAL360ai2`hyG~{IDIK2)9%vVtdCEno;a7qH04C4GDh32yr_L7g$SL zUa~59g1ZZq=us&JDg|_DKJzW;$$pI=>`!S5F5-~g^Ts44Kq;zv>6m#UKUkJpy%@Zx zE~Oe2aomFNJ_NM4lqRs%pG59PS3Xz|c~QaF>+1Q;mrRq;SOI*I{6dd6-!V->e4AYUh&N1=fL>)$ zzo@4tA9p?EKho5=4|NOd9D^~#IBL5h!t%5(6xOM0n7YM##G$plUIC9_Q~ z2gCVB;|PQD=7-lbSAx3!RBhZAZv{M^i<{3_*fskd%=xQCh30i3VN+XTmVPs$NVl5xWMvT>oLE4ZCH#? zSY9OO1~EV7#~;Lr_h18f%8w5=|5U7w%3D}}jt;gA9qjYg*%bHz8;s8ztG_@E%2IlNX?c{w73co=291J03g|y6uTOuOPWUA};beSwM!}az0w-OOPP&45 z(q200O4dmis>El7uW1OKwCyzwg>yOS7WR{V#1%SerPX{Plp^$s&x`mLtXBJ>{-{+~ z7Kq0xLTjO~1HpCx(z&8C-|Aa+16wT`dc0_XsL1WkLA#%+-M2=&^ROJZQmEZR@%S)+ zPod{`2nAtEuR;hFAcU$)2vv;`syZQ54MM1zgiy5zp=uLCy+R1}8Y0vpv6;5JVM|ZP zCcJ=`5)rG8`KYUpo}{nKcuEjfEDXY^WV#*Xx@QMnZ(J1`!ZO0)nuHVG#Bt1Wg2C@Qka0VXJHy_SDxX zMhtrur3!s5ulQHUMBHjbxb-^WR$~jdO4x9#hd|td_hj!;5=G_`C=-TJ69dC~2*j{Z zlME;mo>3FPvyh+-ScMJSNQ~GPlGg`0;~b0ZI9IX)9x~$G8-#PVuK<+#5=D%2Jp|!g zQw!%xzk*W6xgLUX&Uo4vKYR6bSrjAAH6xrOD}M$}65V-*cpIWK{J<~X`6;ZNA*KQP z;+KF;RtEf3DqyVz{SJ+*Hsf#u0UTx^XA3t5DGb&OK~w}D(o{>{_4)7zlleaG88s(622^`zh!=r zI3InGxH+3PzxXB|y2JtSU^t;9FN90(|I!JUV2e9OPl*D5)KlHC4Zc?pw#gV>_+NmQ zu;kL+0wWBnL6pHabgogPQ4HGWhlQ7g^%f0qn3m0Pm{uKd`*t_nzS9r4t%u^aO(twp z3k2Vt0yJqK9DBihZQ()67Kfk+cZ}0Om|rMg2l#qj6XvH7AC3pE>x&rIL8vq*6wEyX zy27tngrYQMp?IzkObdkm9&i`Wf=4jlUyIuhw&3=|-MIbeAZ&x5o`NlXL9Vc@jL-O{ zRDdoDy?&?+g#iI)wEi*1fchr{n8`Jv!SgV>BCEn<%kYLK{*cBa!OyS4SQOv9P#eWH zokjG|ENmzngUnh^ul@ypIv~YF1`;7M=wBi%z)_gEKq9~e;6(rfNe~!7WFiBG1}`?o z9o5FOX+b{I)`|_vfhHAM2V`*IoU5)@31jjNXp!n+zT=4aKhY@d@wdgdSfL zdi;;k1AVFj8jNfJ&pUr(`P9qcQ|dtag2oIH3!1v&w7Jj>F%Gnu$7N&95~H1mq21#K z6Q@fsWhg^aFw}b)o-sjGlIc7Rdwj1AM9>qRG+$8`i^?@5s{UQ*-ql&$`2(nPuK3P~ z%-d^DnGp32_$LJqMP!=O2j{~#(sOWRRbIz)=;f>eTs%@GS%HB9^^x1#Sqiv#uu4ik z*ggvFqV@0bK=mI=;I=~<*am;B2wO6$$K+V26V$*)g_ctld`^*B@ZKVkN`^zGR;?{^ z$Kkb2rPo{uzB{KD4R#c@VKg$U>UFWzL}z^1J*P%NwOeXAt6~-XJMIE?OG_DNb!x{>CUK-X>}23TW~SRxHtrs-;*m}s}}hLf>5JQ?dQU^d3(?gD?InM2dDg&VSNd5C|F+~LFU(2kp1-*WPtsIX@SLZSm0~9T419G zS>O}F{+0#4o~s2meuxE<>;V=?vRo~YB)M7O8<7?`z-EC>A}w&B%>tV~)B>ADTHv5u zEHEi#fj`k5eu8Mlb~wSzJxrk71LS1HgixyDGDZP0n&?JR02r(O5#f{S7Rqc-T{l|G zU?a%r4iBZ(mJRssKLic80pI>J1l<3*O!xmpxzLkGA1cfM;7JMqh6ytQc#0x`;ldsQ z6o+0A0yNyfIG)k(%BAn zFjtH<+=Rfmq+A3OW|7KZyc-%er~Bw)7fd%(aX2LzC)X)3xFQ!*TMAJ{v)RC==#*p> zor+Y7O+~Z5AfvF9WEhr;W^aW@q$Ht;R5Ys!qGX(NGZSJ_XkQxY{5MCWE+GA_^$4Y% zX9wKW=ZY*-f8#)ZFSGu}qyAoI{bi&6xJ>#hCEJ7kCRq9_P5PT?>F;UM-=r}8Jp;W! ze=S&leLy!Yf>CfOz61SD7JE@~E%N{)I7OVtN~?{i#i`;}NQ=*kx@xRGjkP$PwK&73 z#kcKRRA!04T({sxJlSh05)-L4=>Cg|RHFomRHFom)S4`XM5>|7Bty!NwD z3mq8#XQLL3@*EMPK^Y%Q>@4OB2rD+^!5kcA-uzH0pwAU%>g_p7z0EVUky@s+SSWT% zxrMrP7MlbFBfsXM6bUBYo(D-0eSzT2+bFnxFUUXgxb?*XuciKzn2ltSSb}7U*otJS z*n?!5I07WN98#)4)`;s!eijOx8)aY0%A>A=aQmg~3r$*EKLdv?j~jV6s+p5ku9=h8 zHVwIHc;4;ZqR2f7c{j(vGBjshA-+6dd;w;tYXt?F>j;PS^}?E@en6AdD=-8c5&{5uK5@zO zfs3wBK2O~6)Ecp@)EZaqQ_c@5fpit7h8qM$IU8;Fn2!(%F^e1$i-Ipg? z|4lpvb$y%gBiSx00O91&r{$p}_d}Z<0<%Ma3ubz#Jf(+rvbj=H?6WF#+2MsfaM<<$ zjKa^)>7?+DJs`EmpZu29FX+~J0Cu%YP+-qFqAw{5DicZ(wKc0S|N5#IL>WRqkqB=W%NFB0*vrL0c7=kXeV zL+A&DnbvuU(mH<`zDh3gHQts?7onQzB3v_F zd<3QBB!?^~At^e^;YcST2|3A;a3}fp9nu!v;m`|UuRRP0Kp*<P!rDNkRT$HLt-P7LvkyV!y>y|b*PL- zjc#?4-RhLht-gO3h3HmzEaX?G*{>)u^8-d+9iYh^@ncQ6sR_Mi0ijfgzCuyNnNYBO z7D2sp6odLX1m%j+I76iHqJpdx9UfkE6oiLWqT%ghMtp(qCGI3@;=u%{HTp_R!Rce1 zzjYQg^{+vFtO;Bf@f7x{Nqx|RS_;k<;Jmo2D38M0(Kv4+2clGaH<5_!I?+-;Z}`55nlqKDdx+vDbDnpSb2*yL5YhbWH)DT zZepb_dI$(#6shAY*P3(cqGIs6_#VciNoG&JC~rBz1DaUbi(Z1FuIAJ&GJnBBj`EvF zW-wStVSZ!^gGC(YhvzVQ3z`X~&^aIo1H4&N%|7%#1(`}xGL{>*NWZU0#xra|QpUO_ zoX1E(@2MnPL5AWod(Kt%oNI>XptkynYS{g4Xmpd+LMGT>gluq@$m>1~N?KLO%38FB zC}Up~1`uGP1H^K&(G$?%QFk%8-gCt*BSdU}8-tJo)Rbb4%Ce~2r{A$+jVcst+%@nk zWj+iNkO^+cg{9yg^?PC?5DFu!N{<`f%9dhI1FB&d2@ISDz#paZ2hxFmPe(RLybJ-I z&^r|t%7i={0Hf!Me?s1KA48?@C{*e$Iy!1YnbMG*9B{(2Zn=R8nRCGl-rus7+6f+HVVD>~G=HQqKjeeN;5F26Y ze*`xg$&E%Cjc{T$T+mGef3}2EGb1Zz8=+N6GqhrMcx=TyE4VW1_S?V+@fscpX7oop zD7+fuusnODNJ1$l_2Cf6wKE-78flcE*bKA!AV%NT$2u6C(RD|QN3b_$^|KrtsifBF zEXF$^Dw{)Qioa#f=0F|ev${|ztB*5m1mm+YqCF0=5CXJp2L)&o92B5UbWngsKVZTO zqp;Cp2atz^y^Z9L=i(md`Z_82Xjoc{-a0{j(k0@l=lCGn$WbHqfkM?)~^_n1(G z=VV?4gXxaY&k!>J01EOp&-v>XCWAHnINdXbizz_w!?&=1~ikM<1jN34QVDj z*T4XtV7&sptREvZh-W6jbFgsw8cb#9Ihp`NpYKQk5?tbV4@mMCu$e5LL0l~gKQ%0H z48%4I9V3t|a*Ri^*fAYQ^C<$;cfp?=E1^a|F}zx{DCArDw*|P!aPCt@YXZVvMIj55 z_Y+DPE`@W)WOMsvc)oLa&bS;Ga2Vwk4p_Eflvg?+)R=3`AAd$1TxhQ0n9C(FwMG21 zIlgrGH8~enbF8wku@Pb8>JT>KFD|dk1;%=g#^!pCH>~v>O<*4d^)&``VqD!+u7zKg z*Ewifx!yt3%C!!fR&H?6v~r_^rj@@qXj-|+LDS0L95k(jk10YVP1DL|Ii{7phOYhbCEI39G@7&4KeqUemGJLQ57KkuwC4h+11LxMVTH<*$)& z$s&Twt>JJvQ?$TchRrY!+2C@P_y*+|J#S|u+`&k=(}skz83}QYiLYNap^*7T%)F5n zPti1!`Qcc|JPQkrx*ZGW!23MmSTH8u#aOu8hJ|xQJCt%zypfhr>Ay1=veJ^|lDzP# zO3no|p9c<&$&7u7cFV2x81qFM4zm&#DE!G_wV%Q20E3m1f>TaiZpbV3y$+gg{^6kM z<{k%6H*uB10x=!YY-8RS{g9(0Fm!m%9SAK{SRl-m3Wo{m^n(s_G8!bPJ7R;ng~FVT z;??C4&GshdMZ%nqqMX6b{wC(dJOI9l`ELW~Db)E1@l8UP(42IMjRCXLrD7ml3Zeh- zgivChg_Az&D1_vgBLT^AM=2n!=7Mw?bcB>Y{A@)je;1|vjTy*taSZT6=d zTnhomOL5Y5%kx=k#7Py%@o!j;&r)>!n~{#sB69p&;f}vre2hDUILL^T^gHa>cWsWn zMnFE1S7yOcnSRY|BgCm-hB(X)cWdTZZf(@K;Waj?$t`H-3lQxJMLc=P@MN$iM<2 ziQY2`omB4?#q&&@MgPLHFoMi`x>-|Hs*P zfLCo~ZQqeby49GPKq~3kg!JAvq;Gl%B(f9RgfApyH_4`NijyoDFujB6y%z&E#q{1x z2h)4+E%eU+o^y1iYeV+i@Avb(*44~tB+Z;Nr_AWg)wb1}RSufnEs7D}d{WW2R>x?y z#V3`#U)R{ys@OitMa#Iqz&R`U3P}0|stR-K_ozHC_6wAZeAU8qC4Ect6RcxoV=M~+ z2yxFzd>vaVwXN~7o19iASt`t-pD>5EmL?EI=2KkoV%#Oq+)@WAw=lPS=5fp4eQsH( zhEexSj#YyB&4M!B!jt{OnijL1wk9=!)6T4fLrQz|7CLk=@1aAE`4}BKn$OXplleLh zycS`R3=A8vtC4zNJQ6f_vRKT9jWJrIa6iwUq|*|m&#k?&8=USYb7W_eESL03`1b`d zqtnA=UhHC$&GP;s@cfs=hFwiESDc_gl!~QbVKCDZ^%9Jm30!EmGqJxVMXR^>lEJDm5FTc ze`B3N)AlymbW+vXH0ope?&PHk>x=`|dBjx5L(`A|RnePJl3aIWV81eQy(uNhB?p&00r*94cHW%-n)hMQp0Grn;97AIFbLwwfxj#+1DBI|sQ ztFLl~nZ79d!3x3=Fw$g4K%U8tfDtA;0`g6E1dKA-12EcT55O3cJpf}(_5e&W*#j`$ z^gICnVo_G$4vr+sR*Rc1?g5ZfPpNfJJ*9SysAnZT0Bgl>N0N;uFPM?WF(aiCBS|)s zIb}0Hjc0!1?cXJvm}&wu)kn(P{#~+|u_pSAMdtfD&j;X4WgjnrnJ4M4E<4TFWhK41(33P@=(*>KLT{sbiRhGs-VBooZl(|%Q}HHM zi*jYL-Zar=XC=__X7v>1%W}PGtP(o2MPA6N+${<;%BFoF<3}3mFZn|7C!9Rw%yIjf z+H0$-OQi#_z2{29%#(&GbQ^{Y^lj>HQfUnon$O}6ql+i*ekO6p{VM{GMA~-sFx4tc zi{&A4iEpFt@NINzY0+DYtu5ZEV0i~DGm<21xJ&fYX{4}XzV*iN^>E3NN*bTP#KNaH znECLz1%8nf1jp`HKbXX^e?!T+;q$QK^VNd5Oj~GT#mV!U);MJ@GLK1ldGIHJXEpV`8PMv+QbGrsP3cJagr)>1Iek^K<+6w5D{oy zWu+up&SoLb4MLpjg*dqd>rsL0oQ-}HW+`sNO>P^q!E;EO04tJ+eBKV`LH^QoK?3>Q z>aCl*l`RqCo$CI&xetR(Q&=~5SS5k@l+zQ}o1wo1X@8A;wIxngTZyb*mxWB*sM%g; zwJCEuHK+S~hlvGFZuW;!=TDwq`3U z8iH#m%_AMe0%fOmnoB$6C^@3;rN)kiZsx|8Q?IezQ*LaUL&20s6vNUUlV?))nmm)T z+vJ&){iZjQ(nQHrO2QJ*KU71y52jL_eJqpVTlc3@j>=pRO{HLiT$xL0s!|S{-ek%# z^$K0jlPL*4Fr=nWer0bDcLU;*fI5ycq{x8r51s{i)rP7+H z3#u|+oEAl)KQD@chUS`f;pdMB-7QrQ&XB~_Wt^1$z+vBT{izGnM|@J=l>*2NVfR=Uwz|k zx*hMr$WHrsfXuBUyQnrJ3iCeKDj++NL7jg7%5qMX8qRp7PgUW}Xhs%g9nn`sba zCKF_~YOY_x@2waSd6j7sqZHNsX7ol3ak9+xOU%VJMcuBLbDd7_8UIGXJk`vof^JjJ zLyxGyQ>D@&U}3)EP9oM?qV_w*N#Ba@dZ#$)TN4q^mt+tW?PMwkbc-A49O2fK4xX8YrHSI5ewbry6Jo9`)%u?2sse4R4=0Yhuw+H zp&A1J5%**yaoS6feYhbH7M&F?s_1l=mPx%9_i1CWlld9U67|&dh_Xz)t?>aavi=$= z?ex~XPCOMsivsP8yD9mJNNE~E>G1>URCJ;40cGf z8$V(4KgTFTm5>`BFHq91mt5w4yIJ=4{AkMiG)uTgk@gX1qY@ zZ($cUT*rR1JS`>$EkEgQuow7mxJ*^|m!I@7ex|Elm8;knH%g15LL*vFqbg;;6Dhs` zrI&FVC0C1BPJY5b*P91Aaz^B-KE?%T(#pxl>fNNsHOyS2pGm?#Q-xus3BybmhM6l2GtXz3-oh|55*VhhQH2^M&MH7N~gnV{hHH`vWA3?qvKW@=BvlU$c!WRbuu?J6*5eE5;Q0Ov3f_gdF z_>fvi7(r(A=evx+4!b@I#BjBju)$G7tragt9z+-VGP^%yaGvoy$?P*wV>jr% zNN_glV>qPc8!K_|luh~~&eG{?yuk|FG{BuH-{To=s>DCM%TuF_qbz8rJfi}C3BSWi z&*u18u!Y8gw`45XO0V^nD|B}d@88YN1~NS#5Vs96{t$)qtDS8=;|~?a-|oIo#xO;m zihIRVK`fuEtoy=YXP2=2ZejVI!t#4WRPGg)-zO};Us(Qt&+@~W=K|w#dRYiI;z4%h9n`+^JpB+sK5i5m^$op zbv|>obHwdiX6gwB&&5B8xhlj;1vkUtwlv^RI!`oa5kEhK*{Y+OXRD5BZ? zTXkHR{e;i#qnO#9lX5rquTL`S(qkpApn<>NpRk&2yd(Mk0vzPalohYnoMN#1k7k`u zC9?ZeVt02{%?Q;f_CAy)+P66FgsBb2ew!^i_-Lxc{*LT(C9+coL51M^turkFOlpy^GVi`v_Pxj^v_?{zKik9t;PjFV25MctB4 zWAHe|T~goT@wb6R<1df3(~U>{_ASkJ8O18_-KR6yNZ`@7nZ=`RbBnttATHpUMiNy( zkr`NWjHf5L+qopdJCJ@DPdY(aFXFMYtt2!{#zd9U$f}56Tz-;5^WEn(v_v~5Khi9N z{YVeRlG%?Wr=B0lJ!N4}Q>(L$Z|MOZjU_paEnXYe#Nrv&rq$;x^Rb2Y7` zeOmYpGesJvwKPmiZWwOZZVFh7KBdkz*mEjUOIlK;386|$ z%`-p_(o*gs&_bb6{tP!y%{N-J2cq!{Do`&n69y)}L9<*BM0*R4zVqVf>tKP7&Wocj z#{wP6ZyJ^BvpUBVHBI5{I;W!_s%E-SR3~{Q@d?jRR(1rlp8jgpnXYHgU9QT0<^@6} z*%9$G%c<8R?kV+1tt^Pmg?O!M#&_%<{x|-+Y{nojRX&+QhS5uxPNshO1b*Uj{3|d~wNj5k*P~cVt>iO6 z#9DHH;cF$?}uZNEvAL!GXJHHntK;#w@AdJ#(ac zddItmSYa-->EtIln9w|h2A6dng-Vv6O+#h#sYJ5V-6iO2sppYWt1#XJ#Ur~XY$=5K2jCCm_ zv%mtiekr+e`TE`IlA*<ojTCIX>mAl@^`ix9B=)(W!|oy54Wm4SsuVOlZ+fev5AQOKeGK(XG;=v!q35ON-7- zXwhxbqSO5r-7YOUqZncrV^~O5?p6O$F&1^^xf?v`8lxLZDd!2~?+rh}s`oDG zV+^9eTH|^eJ&uH71Y}T+(B`kjL1xs};ifgp z!n^zFLOgG}nD-G(NgPmCTNo@WEe9tlTddD?#v zdedQ*H57-Gb=DX0pSUk(T)4~h5>ANhvg8WXMfOgnotR*e|-Q;_r!cc25og7luSLSohZl6vL z3!Uuo>Ewve$=+gg@&{e`Dym{S38XJVjYk!#k2(7+YIkS9wVUoj_dceqSCT6_2Q2Tt z$K}2U{rjGf`yTS|ds6OuxY&J9@qL{m%>5vzThUh7PV|-J8=XI_M{&Z+%U0t-^jC1S zdVtkQIrWqm_mq?uso)G%@SJm$D{zikRpa$+Gwx5UM^3$Z+*7Hi8m>7@^*rnxw?4*6 z$_eXBI-ItC#DT*Eo>S=d>saKS_lMsL3B&J21#+n9oRZ=9B-1(u4;JkhHz=&vb{?!~ z#n1?KA@m~1eBPTXa05Bh@3%c$ht?~|gfj+)H)O)O2#Ym%8n_NQ02F_bhoCJ`r-E$R zOO2nQ#%td4YV^L~{{O2nPwg=FmZtIS3)J~$xGNY5A7RA@_p?O3-}rH0E-9;8IO3d> zK4%iebXiLH9t@qHGE>ixiRhZ5%&=6*qEb&e=Y=lPN25vVQ&K7Cf<^60~|05}-Xs zM@lzgLf5s~Q!Y~xdkwsO04>b*NX#0Ft=7P>LMYqB=0#RbZC+&6*ycr6&20M2Dy6y2 z>#17Vyq>C!P3x)nbK89eeg$|@RSTQs7?0--4gTP^Wjrt?t+UEDyfwp(49}y|*zi3n z`^BSDa&6TC15z-)YS{ItqB3J~U|@oHlr|2A2Cdz3h@R-;zlb>GZZ`>dTMaC7Dc+C1<`RO9;}R`KFaYXN*s& z6^S7GN>lYO-c++u=&X1Eh;{}F?et5aopa(nNTi)X3AA%w`aFSl&<)}~5dZZBQKIQH zF`oIp$V30Hc&t2i$<;(>!qeV0V(^5}U|U=V*=mUWk`?l2yX%sj8?bsrDuTLXwwtW> zdS-DIG*4xjGua_gsfG${kDg{{)=;Du|mt z(uN8mzd!jjXzk)pVR*D|Zs4r4lV=m9^WfFO;FVnY@xhBYsHI`;joz6!^0z8J^0Tb3 zZ?ZdUZ}bV4^>XUTX!n#I6%JRNf~{_8Eezqv6a-uu-co~ zI0e3RX)DrYoZCV8Fy|OXnRayLL)@qB4cz%EXFT_5fEVs}FmV5?or$&|ey%|NHj9)Jqb;xFXAB$LckY?E#)<27EwN$Su8_ZAgz^&Pa&|PW2p_N zd2OaO{z|vC$@1vaXp*zcW_Rs!o87fVHoI$O60eO}jqdvyzJ6O_^J*V<_O~^kq2#|K zd8H(?ce|ru{R2s>Z1QfyT=ixbI~g>)=&TkxWrue=^J%I=+_dr~k4pH;t-bk~WK-0Y z$3N!LE*TsPgm~aE=TwkCWeNtmgL zP;2p@8Lq2gwZ=ymTl_(^n+&2`+g2F@xwNBx%V zBQ1L@-m)Z~`Wn{5(VHN$J;S7*E1ojMFk$i3-6RhNNilv;aqlkXma=+I)Q*_J2ss$W;T7bf|dJ zqz52o(&X|8j<`JUCW`I2`VsM_7pW!?a;7u=zhxV_GtDjA{8b;ziYbCD7 z{g0xbKTOE04WTo@HrJsF4(;z2JBR1bN+^aZcEqb#g}ffc^Oj5ANcAc`AENrsQQy#0 zA*$~j^&@_PG2j7$F=ZG9J!#&M7ay5bBsdrB%5=DB-$fU3p+4qcs1OBwzhrZvxXOd-XKVQ=VS%H#3B6={2L(yLc<_+xKls)3T4nskCY)dJIF7c`V-Ron$OdnvOmV^4H`g1@g;T{XwSns_Uv&t&?2;4YEnApfItF>u7XIBS$lJE?@6JKqxP^ar3G&u0{JU!q zF$Z6^`FFP=31; z5rVIfMyvbsv^5WG9E)h zAoWZ9A8k&gh9|qTPw+b=IK6_u;gI^em&tZ#-{5Rc$=>@L(8+Kx%pX zpJ;wZk1ghO#Tz)C2AfIdTa+$#bVZUS5Xv&v&`>g2Mgs~)GeQ_=vif9IATY(Og^ei# zQ$?Ecr#oZt1pz5H%BhH_c?Qc&@>P3q0?Ac&zK)>6kk2F_4?*@pSXE^DmVJYWL?QY5 zJsJoQEzqn(9UNf^dOHSXBX6WC^%z7J?-(>jL@IU+dKhWQI_k>Zb)MW^=gHl5ak)DI zwNR&ccc2}EXqPU!ReZ;wr`?-WQhXEMG3ZuG;~j(ecDX8rNJ^iui0kko z4T1{CPVr`iEID+B|Eds_jbqx#~mu1!*t8Fnmojd-CwL2-nX|+Kh_x)kybIvQ=IX zpUqk<)$@ap{6T*H%uzuofATy1pSWbD zbw?ODE0h= z1@)IxPc3v$X=F-oic7{B9M^w*a1_-xAvl|An;6_lhe^RhbeJ4GMTaTDz_&O|4Tf;Y z7;mIZ3zo&N_j}+aCKwXozaM_%frsND850c&@h=(aoPno9v-g4mRvSKrytqcz=>beL zeCksK+JAO$)6C^O5%oU!Z!pwj5^0%^0& zJ~(8l!XSjl3qckhG|103U!tP4C&0X*KgiE9t5Py{1wj2Y$U__R26@S3cYsPG#zv+$ z$j>#=OFYQWFFD9d77y|Z{6U@ux_Rb1bUWS~AdT1$BbGnV6`DU#F6|DW(un_@g~8jY zw^+BDZ>CT#Z4aQ*XtZ+{1$nd+`LMuzm$G?(fDD!oi$ww~aU}qai3>#=p)CTI%9zMw z;UZ?*UvWLY@IX&r^O^Lt%e1ACbWdUuZ4vM$I{bMzkp>Wq5%+U{6W!b|gCn}PCwFg& zEdrLB_oL&K(-hY?2;LRk1`5bm%U$BhEDFMMt89LV5r7$RGW28$)SfPiW@%itOk_6i z6Oc}i8%Vtc|CgJ8qekG30@CS`1L=?A{}d?F_=Ip}kRI4s6?}~jD}vQ=NLd|B$ARf@ zs$ubV0q+a_5rq|*7-ItNegRBjtjDepw+(L?kWOR?zGAY>m}aD`34VqeQ;F(UnlIDk zyk)@qKGm%l4K5 zTG2px;X( zzxNKJ!<(26Gj|4O(%u1Y$7ymp%%u`ExmB8(cMnLQ$!$WDynR3dP0lcQ|A5^>lY4|F zcL`1I^=WeEiG$zA`6CMEMvXmYnlllx23q+~Ho9w<(e zdoH8Ng9$Xb_cEG1lt7dF{xePP_i6I5(BzRT(BuJ+Cdad`af2~Q=<)`pOLBMIV9=f> zw41;UhU;QDXnw>a*YjV({w*~M?!A2V2k3=H%4~HMH2In+9mj}nUlXO{I4K?So0X2) z25%p5!dE)xh|+P=S32g3(s8Po(lL)N^p%d=A>j|1I}I=(Z6Rup`!NEPZ#NdqsnufUNnuWOMnuOv#2Zb#O zh5^RZ9b!Cyc6WGT`ggGEjB)mq*$fV6QLlc_=NIR^N?%rx1g8*RmRzt^z!cS zRw2wY{i<8sOiEST5M=w@2q{&p1TQr>P=D)?=LlOSj<7av8)Php&#FD`u(^=0%2FLd zPzn}B*vCaaup)zF^|uSL53H#o@;Pm$6P>Jy+>x;Y*XM-b^I9f%B|pGQ!;R|BZZY=! zoDo}(!n$`1v3safh&^1LLw7+6fd1y-rO%pBYXcU=b?*{dhyK^hOJgdaP(^FoL)w1&@jG*`|gKLGRv4mtz;ez>Z$$r%76=DUpcPPQ% zbx|x|itXMfB>t{i2fl$E#ORc&?x#sh+Wp4e1IP91uwxw4n1NcIzE^>|n$}>uUSmvZ z;*?EQcKOt!GxnjAq|MUbz(PU%vu`0VL!UfI6wo(L0sTU}w*+-=X8#cHF2TPCgm`}m z{yi|nJ52EJK_T8_f`1PV@h%heJ4+1-@kSGJGK%_pkL%?b9fFtVAbWJk%d^At^6d1z zJoWX{=nDRhc4)}+@~jpw&oGy+ctWs&E;b=3r=FL`J@vdi4fX5P5&UUwny-pw>;9CC z2|;H>h`l_yAU*Ak5dqmLNtyx)fK6b%m>E(IC}z#ejF)M!jHp6JU@;U z5kC&)T<*t_60RS|E#mue+}uPzPBYDuVKj$0F2suF_>gbjG}r$_k1cbE;>Qt>Obg9g zV#@?t{SRA>=c!iuWekwYnfpD(pihIxIA2YOlkr3vu(C`UuqF}pJsD;TlU&wo3^xe9 zFRNM$T}TjmkyYeeYNJ{2l_2z__kN^=smUs6OIv9NED1vITLta(ZImoQ=!w@qQevx; z>D69ih>i!LXHI8_cL#ktB~uXk$?gC!R^{lkJjXTQ2Nn3d5eBF!p&#imHS}*fOba!} zA!SCWEe>qCtTo)wDZb_0QM2XDQRu6SiIVPH&Yk29I0}7rv79^W?qIx>*`e;Jm93Y~ z(lio1#b=o=(#sr*zPea1X&%c+rf7=Q#d=BeSf;Cv+st!HvW#Rg%gpsz<`k&Cn|_m8 zh@+=ezszRtu79Ll4n<#`t(SQr-)8Qi+1^I*6sIsG)=RorFX`k{U1xCYlE_7m13vNm)>DY?G+zmu@*C$^d@@njURoBnZ7q$XVUP8A-A`l!nFDw3S5`e z0!0xj3baZJW9C8Ul7%hUA+2cuu)%hL@aPZzu6UV2qjv(a$F(bG+xC7~KPu#&RL zaO2T?O3G$;W-^_W6#TJF=)+G>)>xkEtLv~6t?W+<0qGxNonUF4m6nlC@C)k%*=jiy zrC(&4tcV_4(zDbm(g_B+(tS0F`k}spu*Kkr^eg-q+A1%!GX6rO18g%WCOu3>nFrer znZK4~ejZmulVT%9VIb+h!{C_VYgjhO{8m5VRf-wDPNe^Ok^UP*`m>7AU$gM1nBg0x z&?YIg*)2q~I|KBSBz!1l_!buaaJ6{CeFSO28R{j<*U29Mcv))tGjzd z-QDB%q-cbD=|W%KEd>oWSI@*~$&tnPhCW1svoG`s4k<@MUy*|QGyd%}II8&mP-n_N z5b8sRgQ1~xI20O%D1t z`W?_Jri6)ACi_#u`TB9XisDUQ5JJBwgnr4@h0{qFJ_gkt3u(@Y9(+dh;IpnCOtYY) z^b}$R3OHRa%yYtZ!`>|DDDDhiD3TQ>B^k~+k57(^l3YLRv&m?ACYc4D=FSVtNX%OD z7+r^+nfQbv_a%xenHL_b*<(iY!VSU+dU63V3NM^UVHFrNpnHnVfRbL!v3yup9*5%9 zn0>Iq0=sJy=a4Um`Di?y$-)a-5}zEN@K7Ld+i$)-3>Rk?adCoMx`>Mt6jCNkV?8gZ zznXvIH;ANMn2a1+;WI&hX%kicfV%eA$C%wPe2Na);Y)OA6b?1O2wn-fSb}?NxUADS zOt*EKgdfErrD?b-4(T*fo-`xxHH~vU(+1_ zWSvE~qM!}!!rYS-=@}W~#-5^UNH#6ZW08z(k;$wOP1WqerJio@_O#4*Peb>lkV*6| z#~ehzyT`<@sq)lxEpf|sVB^`m*e+;fnAHx)XSKthP`qL4uPoIi%<+clgd6v)!2yRm zhN*GcwQIZ&1i#r*l}^n^xOjpd^Voe9>QRf60*5_T&eip>ye_IqGmt z)}(6XAQ1FSyb{G#6ffzlI5lD*o2_Yc808E>sb#UBA-eKa*Z5m>qX+NJBX^eS83qX! z#pIQGg}o5XS*mx~i_)B>`h+=9Gik!ukRuHGTot1eTH3OLujV$WYoe~Jo$h`c)HAsa zdL*_%mWgW+?zpB*evwK%N5i*({m?jBRAMsa=jvLNOi_?kP1df{X>Pr~NkNL8L1DJI z`h`h-Os9GE1}0luL&9ur4G4Rx<2-#eD&n==@0YN)B#Tr>s1R{$i*M7=2}YHrxO4Otb9Ob&xQT$+f->c*zTL9WRx$jW9D zlLH}-2(#Iz(%7sU8TQS(`MMmn6$L_8HOV~&?M;-@siankj$w#u(M1u*;$sx zVUT@inPiExEX@mp?547_EX@ytOzgWre@#z;FvxfcVqckrU#NMq9bu4>%zAcS*w?cc ziE%?=kcFwSVgnDiSXZOECr-qqq1b{%ifwLkwBvEYwHYnU0#!gY zkVe_k6aR?JrUmi+J@l$FH4wnGkGcVgxJ&t*^2# z1y^WznB%UZ%8BL(3&EB86UioJvGV0IaFwn~`3PR?OpD7vQWjTZ+_-|TNWRLa(5({7 zj>6kExf7pR)GsE{-e8>`?rwy)r9lLP&l>$VHVW>5SehID4AG8p5Mi`SK&uf~T z%bXd8M)kaCRI|dULVnYjQpl2!B~)vZ;@dj2x$SveZDaDP|2gp39@&+jDaM3mx}CNmLPjK z=wsk9mc7eG_7?fFcY}r&FS2)q$ljH{?Cr!P=B$!dWD?rw%ih&2d!035U-WL$yoipp zF!er>pR+ccAbB_Imx;be@~(?ZUJ<=pJkcBfY$7%O0}FHU*@TEOqO{*#Woj!4Gx@fH zNNSrN!5)oYvhiI*(&)R1q}GF^WZq;$n4$xdx|F$*$f!t2Y7>!{{LWHa!yFx$NR;TS zMiR?yQo%c$93FVHPhVYxzP7mZ#gwyMV|K%j4=kr1<+!K3@`46{t|rF^-X+YxU6_BH zFh5&J-KfBI&W^B0uHBhjotPvN6&fzdSxsHU{$#p2qPOhV2&&kyf{Y;A=(tRh_ZqLc({2{ugN^o-R@ts^4 zP{qr&R}TP3rJM|VUaq}D_9eYs`y`oS1fOF4A#r7hWU{Jqnstc8l_C2*$MBhwI)r4g z4sq7gAy`x%(C-p?N{nFfa;5pM(}Vge%5`G|v-mxiAbt<&RLXW^1SblX0IMGTP4;sg z6KXy#)O^AfW#s2NEG|9rbDfW~J`?Z}A>hjNDH^Ss`@=s6S0B}7VcIL_ou(8ccwiOc z>I*JcXI>1$ls?O*bmk=@$g|AV%sm54juBip;!)8+;huUC;vNUl402bvb+i$MgakBPm93{Yd5S(Ye`?yKvx{vmqu22W}AInX`rwnmNPYSan=W zxbko_6{tD}Lt&%H8+2$KsX>P(kqjJCnngatfnBUaO^NrLKz%24Luz)8_j|dE^`uZA z$NP0%tfzEWBEFW9?@%kdSWmgL5)|z>oecwCdwN>>V>c~Jy3EBYnSbJ9J>$7pTSZDJ zu#&~Z*E$kcV43*N>Nn^`INI;!F4l7z7K$6~S6r-ZBEIT(UR0J;PD@FTl7h%huE%l2aG}lt6@sr4oWeXAEB|byfg9PhZ zLvd72QFDp}{2n_n+ech;uR{c6m&s(8t#Tq137BSjdBI3Mt317xL;{utBNyRF&9dme z9PnPZkxwvarVV$hZ`}Z8LOIX0ph&=l>{#oFJBbMEgxc>E$69B)>z(3Q>k`4}E5DiW zb4`u}+|?)i;X?S`e8L|ggx|dw;g6&XLHO0hNbk}J19brC=0)uSk)<+BL5DF@WQXuJCWJc z0zq)(UuS59o<5LDR%tVf?Gg(9s?z;ApXO3G#eP*8tRD@Juztjg4O>_k>jD;seogl$ zeOg-eD49aPsti)voe>dHxrn-3S+uTLBEMGmXMI{*P^u;J>qwXAY1X$5h|ksJ|HZSu z^xxfhf!$lx6gpARR_UPT`Q&&guw@Dy1M28-}55 zT*SbkKwX9ZY&eaAMvJ(wqa&WXW3(7fV_d>xtzeAFabL$qeD~5=lOu+Xk9f1Q1ty0e znBZQ>lkM#-D0u;k0)|c$=AR_YKiOq|GNC$Hw7i4^hE9p_Wc$>J=UW;VH=z>z?K#%d zRBM92-I?b05gD%?t#2jU^S3+Gr8mTl*vaD0Whi3k3~BcOPq%lza>GlM9{PNOCfYmD z&=CJHtA=j#v^Uj`(V>fV9rMD6Z79y@bv!!EbVrBGS;Pwwi{>OVXVd5q;n9Idgz>OU z5wd5FKO#(!5n--BB21JKVP3HjVG>>FyV`TX;a#mEG$K%((Za|%8Vb5u3Mnb`BlZuF zh&?cPPBtaLXgaU@MS#)xvfn(_-TH;e>c+MdV004OeGB6JypTq+w?r{tMDO#K%iBwd zo$qFIkKCRQu-lULSNMi=`OHdQEWiTffM(@fIk@AYlP=_byuffdN)Cf|MZunrKB zP&~_JKF!S#np>Vob3LsL>VAr6StP`^!X-BHa`v(&Q#};Ta%F@)+N&a-N4u9*gE9xg z_*pHKxW=c%nPO?Jm3y(J)!X8E$KoFA4Byu3W4#$CRPtzxV3e;DgcSQ)>&vUU67+0{9lyaDp7js(J7d6QUO53r|@y7|GFc(?OZf9v`XNrCrJ)ibdpEP>a@ zsb&LFdyY`eMxr43%|i=TZ&M)5O+2))$~RjKj?HeLrmw}r&oMa==9UP(iL*6w5C{HX zZLY~5vTm2I+!6U0UF_`S9_8=W=9%1^yQDXFb8qsBodMRf@vbr2l;&}MPr?{7&}t^x zk2;4UJfI(ThmfX#; zF}EYK#h)N8m21J~mzHw90>eSAzCC<0Tn#z{dHE9T;h^V_3NqQy0C84E7mPD!_!rNw zTyp1EFzaWHWq;Lb)Ko8WAL}6};}m!*0=xLU*u|%b8qbSee1@n|e$y@L`;*p7O%A7d z)~Cy5LYL>_bV>fI<)(zwtm&CBMXn)SGr?aq(&EXucsNZt^?KGl<(?&ry`L8&?EO3+Vee;Fl)azzqn`J3g?K+N`9thV8Di^3#cX0uTP5DldQo49uV$ww zxn)5>@&!S@JS%P5)ga1ij~YhV>6slBCpAgzQPxv5PSU1bjiM!I{?^1Lc4^<~Iof*o zGAc=&`Lp0LlG&oh(aU|FW38%`O+L>iQFq>te4Yg$q$~J5MPG719H(HbY{ZT$Ms<TfCVz!z!QLg&xE;|fN|8uCD`kRp1HC^Ykvh$zY^9|C zfhS*Uavai@QF;xhRn(%oT1S)V&?Z`m4lSZLW zTA{IMgXzT~-DrYR<+J5Yrc718hRQZmiDaik^j*47PBe`U?W3RKAnQ=JP=Q;aT6?Uq z)n$!h>rf_Aw_q}sG}=iPLWDzzbm{^h1HDrxd9}{+YF*^jy2`6{lUM5*eHOP&>CbOi zpdP^qzvni2&+h(vZkPA$k@%iF;HY)uknZ%~bC>&`)DpY>me}K$*qhK2`=llMN=x*U zmgtkv68pI&oL*6{B@T#k*E^cvC7dku$)6(TsVUYJZi@c!71T`5X8IW5(nsdNC;}XO zE4JmJDAq8@?`$;~bn~rGH&caf5Qo$ml0Y{HO^!l3Od2;=8h5y~>QHIbJZaSepKcCG zdyeqi^RTq%$i((M;$99UJm=0^Aqi{&s5S>hijnTPu*c4rc13O!@HN|&@8-$&$o1^S(O(l`B*urFm z8_zX^#l{w4?ybVy$jntcQKo$_Uo3-lt0w;r?O_BGgZrUKaXeS@w@Ex#lDj0azvl6< zb`|>74E{Zd=gPTQ*(JFW&-D~NMy{%guD$5q>Du0Z8qc*2>dIAVD10{x5l3=ij^|2` z^C$6Kmsnl6(?7*UZzR9S1Nip%0KS6;@H#Sp@1z0T{k{dw-hErheGmKhZ7KIX;@`KG-1m=S_ifGhb&m2l z3i3IQ>f2EDH#*0nHX4rS?3P&=4gGkoa_VW%?kQ={QbAj);5p|wSKyq8mX6o6+ydwM z^~kALk9#Wh+=Oe|Q9TbkC!-JHB;{1}89JPezJdcsc4@D@c&;6^ry}KOUq$MugA~v8 zj0m#ROzRkDSVh7p((v;@pooWka$-|F*O4IePJO-TtBJ$^8{U$$H)MhkX3!;`wsYgT zlDjk>&y`hCu5krw+~?QG@mxuyL9zY+s4-8iuqsDLLwmX(#d8hZN@DU{Tuh!P>ix$5 zVz-m#c&-s*SmD>!WxHrT?LR4+D#3X!XKl{khap6lbjuXnZeH@aBjxjs$; zK#ZU@;u=OgS3Cq6LE^1hYrR0lH9SjMF|k9^)>*gF&6>yN)6MAf<8@XFl|s;0r&)}> z(72q8#r4+vl)*tkxdBos)PS4HK|$R{NF`yq!FpLrBPgib5UX&D?wW&wHi%KTI@z(K zbf_OYheJxkn1y~x+i1N_kJKnu8fUU1fI~;SK|voE1FJfVL7o}xp*bjM;~3j}O=4v4 zfl$TXqjg=I#OuvLL0zvmIYBmyc%}Ae8gGv+)@VF-N{iTabaQgQZ;?h0hHt@&mdDxu z9tccUBt*AbP-wPUzuQDptuZItHS$k3+*`&(^~zSQVie5MGljN`N{e8YPU{$(LaAgk z@344{M-SM{ZDVXRw~MjO+$P30bH^Cl%$;JM&D>M-ilO!~PowFjd5v3#Sc1*mTl0#c zoS3iC^wG3Xh!*GgM)OYVG3qNanmbD)cHu^Jy2gB?d6y_JWHfh+iP7u_4eBe(OLw_B zd#H9N+RW}kp@b+(d#tbMp5%M<778T>QQ9jGE;5>XxShj_%RW+EF8`=Z77CH+EW1MF zsr{CO1HE$)g#)d97x8*ew_h@Q#UQ~3imK8(1_|c=?i0fpFi;i-^^I{jP?li*Vvt}` zhE^Qx;+4wG?EN%{1MSaE%xX-3%?pDD#5;m`XMlFYfqDbSKzHCsbhI3>9;G&khXa*U zZ-{qKX^7{~!VjV){=0CX6gTM*4b|=jL%HfZ41G@x_BC__0^JWqp}i_%b>aT12u$c^ ze}N;11HBW8h_Lo|I39CVS)Bapmgwk~_>M|&I8Z8sqEuO)I&6Ie6Gl0CDE4l&J^NM% z#XDkP3_9a)x)+`&b8rkE`QKcR{O}kYTB+R5S!!eq^5O&cBrnF{K&fA{RDKM8+z(|b z`vbVaAPlq!2RbB1Z^!1!V9nt`hsKEBxr2sip6MCpc2HoF+5qiuC|&sw_vtXr;Xrd; zwxLDKxtha)j$nR6z<(N+j|hp@jNX#=hqVH4oTWy^u#Ua9zmEN=I7KOZV>#V&W7jmHRk>ezpeZs>vhmRc3Oz2FAc^1S7VZw|t(oXU*}x$rGYosyBBqDM}T zH9$hjv{(xqYQDpnMA8&Jaz^Zba1Pp~Ny5`U7t{RIyW;$Jrv-?Md6IC1N{VD-K&5%X zxGhO;{V+3bZBR>?sf8nRl#vf@Ks9CM7YL&QPs5UL=8W|V6XC;{Ib2JNBWA{S(qUHY zART7MPT^3X)L766iLZRk0V?PCY&}ZYdTyMpY0h%Aw%Q^<<-8crT+Wa2%w=JWW-c?v z=#+&qnyyS)6r;&Yo=qC7dA@RikP*{of##XW)joZW6Z%}^-bp_D^=Bg2#&{XRx)?7* zSRYIH>{tAnv~}SIp^l9{b&MD4*pxsW=fzo?FcC>2j_pU5yB928MoaeRW+o5H7W#m; zN)sCsKo4ku#W9}PSQ7IlHYRGG*jN^08+dt)Y+$C|Nt*57B6+?Q{Cq4gE?!Qm#UAF8 z)h6QdG(4j)#` z^FKny7*@~jW6~J*!*B}N8RIc*OMDF5O2Xu45hmM6fcz{1WIG8EH+@G8bSu9}fIQ#} zkSUr2cJA~kZK_b(t~jNU0GX!UfSsNInO`rTNe~6J?s}Q41 z-5IQ5XBf3R5&Xk8=C#iviAcR`DWSCj-xGog9~WR?kV2A zoH_ml-f)}*jXe@G+iLqyfxuMN&ZgB0%DE9~w;n-KzB-Sd+6K<9MZvw=(+go5lCHDx znA6nQa3NpuF0R1xGo)eHnz9qEJ-B4LT2l6<7dtnl=bfrLx^-uwD?q-r#b&oA6+$a#SZGP#2OsI27Ee?6OH9J#JC03Iu+}CGqwF*)+y!2UV0pys{1dJGt3I zas1?SyZkt2O}F3()iU;`h83Am2kAA_d8aVaYo?oj!9A$kTE}SQL#?0UfQOc9gRD?eRFb z%Q^}?&h0iW`=Mss77!?y{UBK}$yVYBUc&zw>gM39I4*DtZjge_+=5g@B%H{rfPs&g ztUxI6u^9+7Pl9p_>;p~#x>O)g2Dkxu7N`dN2s8ou1Np#IU?H#;*ae&h!pR7j2iy-l z54;Ve0e=Vn1=I&x1Koh(z(imXuol=4oCYEg<<|mLfaif4KrP@);CG-E&>tuOW&wwQ zo67_O?*cV}x|S+h*rXT0e1k80IvY4 zz}G;1pbgLi$OEPVi-6-mG@GM*hJOtDLz5sp!S^&L(;lOlYF|YyH2b>2gV$S+*;IBY6fW9rHZxTBKBY+ve zQeYc!9EieNyaA{JJPA|-C~#R_pe4`^7y?WN765C3b3phmJRfi$@C@({@EMQ^GyysS z{ed~aZs07CbT|4JcnEkIr~%XgegN74`M_*o4X__L14NFQXMlHr4B&I% zcOVBC3={xMfQ`UmK;4J72kr)*0A2_F2lxSK3=9Fr0V{w@K-v2-*$O-lyaRj&)CJlB zy@3(H3}6Lt1TY@}e*qLY`aR$?AQNZ;g8+ZbE1*i%92($va14DuFzye@5a27~<7<>u52BZUD z12n_j8t4Oz2NnYBfCIoqpu!{I5#UkaMIa6M9%v5q1ag6iKp{YzXY2%y0qRlk32+^7 z7w`=5I*6xakD0L}uTXYdTby})z8 z+dw+-Iq);k9Owz;1Ji)Tzy@F+Z~-X&SLh7D1HiMuo4|*_KY@Bcd!P?65|{!k12zK( zfpb8qXF(glUx3Gemw@U(E#RNPuRv3v6EFZ61xyE)02_h*z-hp)iZKDW8Mq&K26!Dv z1?m7l09in5pa(Dvm;lTJ)&qxt^FZV|j1j>7z+ZuCKyBb#pf1o77yyh0<^t=0J-|so zKaY0-?gAbMUIuCaUjV-Vje#7XA211+53B)p0mp&Z3!q=%L7*z|7LW#f1!MsofP7#Y zuo&1190rURq4NRv09AqNz~{ivKqH_7&=(jB6apK7GeGbq@HKEJ@F?&q@G0;;&6yQ_f zdmsyF4fFtp0TY0Ez$#z|a0;Ng)Uv>hKo#H#;1%El;7cGAXaaNu`U9hY>A(_TBd{Mh z1H@j1UJcv#rA>x{E#B*5e}6B6@XXe?<2$KeoJ{QGQl= zJ*MKgih6OyZ56rX8Kw6dhYWmDKJ~x7W|BUt^+|nRQw4v1(hgyL^l*EwO~uxS#zpkB z$m)pRAL(CSk1ao=yq;Bl`PI7Jg99I=0yD#YfhJK(S$*}Gih5kd#TE6oiaFQoLD!$T zO*gy!+?{&xUvlo!1MlkjK*>_a_?6~Wx>D)&cT?%kHy)|158mGA&V-ZYcgRVn%6d@c zVU_7*=iNQ4==D`r-orWf=G> zf0D38>A}YM62|Oyn|hyl(h8`j^>ee8E>f$I@w7f+%+h*~)hwcO zBQqkB($&<1%{-G%_E?RBx?Qk&*v)=D;o{dXyO>hEi(kL&Vn=5jH1u>6B-mK@!HZof zVT02BjIkw(9WR+Zp$wg|*Ff9NF?D_2 z9VM@nuu-RwoSt{3c#TYRiPS!n7*R%2V|h9`yf^6;Lp z?p$U_89lblxH5Wcxn1S-nQ~3abIJWm?=;Z$gQ@HPyKDBKoNjFAhV`WI^03|$?p#I> zDKoZ=9#>{-IlZggnR2>G`PtX%!PiZ`j_%=>?*<0?Sg#IV>AG`ez0wmyet|6X@yEJu zIltQTSCvfZ&hOEwV(Ut}SEYWH0_uBxN}V_KGIOJ;FPP2HI{(%$%p@XOjW*9#x}BP! z^gOjt&T`F0T6ffWcsk@AGICA)ZW|1!)=Iy4!q9DXdkw-KgL)`sj?$fsu7+M?pzDg~ zjW-bkv^~nA@LnmNm^A&$No|#`Gttz|tR9wL9@-qzCqoUXy9SrhW6De{qgz#IUqKJ4 zFsVX7QPIOnuQN6px{EpDzrLt0YS%rmaR*m%(Ow?Xn?ol{mDBwz zkH@Hin`{sIC3=TBX+rr{6?FRwLn`P=6*^baLo4;a@v`)#@`wYk>wmo-bN%@118RWM zpByzns7p=VoC)>HDchAEW=ttr@TdXCSZX%cxN;mC57(X!^$F|6;bnNJAxi&iovC}; z1-34XtfT??Vni2~TSp|gr=0G3Rrjm(=&K4rFjVxM(kG2GhMr(9{;w~Zrq5`7LDxsS zp^E=>*2U^+>jHZThzKP&g$g5jB}uD`k-~C%9WmUVauX})rImM}g;8Q@*e}ryQi7_l z(Df?a{i@Md>B6hl$wL=j)8tw`_1cEuA{1DD-Gb}&`s+8NT_-DDqm8LA5{vh+^KIQc z+$F3>N5)6=;-qCs`e4$9Bq_B@>237d|9jE(=0)P_9=6W6F@kmpkB;c^k;O5+q}19a=lk|n8QDwP!Vp8)`oHRPQ zptPP{dLE?40;TJzMW$|IHMjH}Ym=qB$9lzdUTgy73um@AbXUlRKP{1i9NpZSW9d!U ztB^0+XSK6+N4qPY9##COvo4|TG2JVc7t<4B>%gaFhvA`d&Fsj+h&~tTi*Efto%M~* zi=wKz^6>Mb@!IFciX^FF($FM5JgGGr0^RB~C)o`NFjpVfx=W}hmc@k@g!EB}S6xtQ zQYoEXwpm%-t?Y0-7M0(x;^h}&eep94x*4;R^wy*nXnQ(oZ|YHctk#8k zEe0k^LH(mhOdmH8uC93A26L1~;X;kVJEiy)k{a5$!SvWa<{WkK`RRhMM@j6lcv0ow19C)>%|jN7QuX z6xNmsN*3H@OfdBjib|;C2l2VBzN%DZO4D#6#d@u!-G&3SbA^hP)IkR!E$KQq$E8rX+FkD zE{4W&i}khiKx@*Um)&5lqMiidEwEODx^Q`y;NFlv6ly@jCU|sG(!3-+Kj~B{|2fVk zlo*NE!bJ^|S0wAK(#J58;Vi3kkJ7qN>A|ISZt23(dR6J2lD@0V#m|_dB(F&6-9*`cRv;TWV4Yqt)$C?r-8;O5^v=dny{^nr^b)Ec^}m+L zvHUs~gRF2-esE(@Zw>B5*ZwbOEuyQVdN_^73uCLn87RIzX?-cZx72>{EEvBU$aSAS zr*$I>gMQs$!=UaK9D#}{uOs+FZB}}wF~`u2v77Lp7CndSAvHRpg`%r)A6)GwwX*b9 zO7Hlm>3yYqD+`ShXmN!iS}J z$)v@G{)HqmN!Ogmjr4J=?qz4o4E;IyWKeJnDyI{S=*x|jhRz|y*-JhPUe`md5qMS< z`cG$*@k08Db=uNxi8W?~XM;6x&Hpt$+n#3Y)4|bbDqKC^9u(A5gA3##6V8eZ{oA>) z9ub)d8;DL|(oNxVbaDYox`82gpgAoexw%zf>50}yzRwSC#mk_sgtJvfNmGha{>+p@UZUMZrc{X}GNslV zIvp)A-keE#5VTIY8seWpeE@-6dHU!Uw`N zEz{tH-4GJ)8K^qn9%Jj1PyznW>2pFwQqKkpw!s+tq>TaQ|FQQba849y|9H~XIpzjL z@!s*+Rd?Bu;SyQaSAAgCzv|31}6s*~}rAXdY^c&O^e`cM!t{CO+FIfvL z8zuSDyJ_lK0FMk3&$3%(`5qb3T+>slWlXjAyEeG6uDA^Y7};-gZ!VC3Dc!oCyyTF# z581qx3&;EQtg*#suHKFQ?wI2rjL)7%Hssq3f{;^9y(!C&xW07BJ6%@r z>y-R!kx$<0A`c?0nhWPL`B{uSd5ydgH4|j3I@e#$rlvmI%ATcRx<*Fk@09GRpqWe# zV{*CDJq^=+;T?tYV}&naKoNMG6RsiXkGp7^G0AYByq*vvvH@k!l)Bt?rCXi`_Xf}T zRKe|q@*Rbb6=HpPZ>juf>GylfzwG_XzVf{NX6!G|+y7%Y7JyL9wnic8fg-c~Hyyz9 zuP&S06@54xJ&Mw5Y6aGDJoQ=^`NJ;jVTdAi(*ds@Am4uA>u^ROHRYfi4wmme_}+tI zgfjU{C%imwFt}rWV%MT&%bD!oEXfPlGA94RrddK@c04F8PR+PkT7XH7{lesF@?53t zu7@-^PY1@el5Uol2d!LxW zJ0`f4x1%Cx>nGS!278Lu2<8whz-LI0re^#^dVjwUkLmL?gV2T)#vkUa8|g0~Cg&kG)gP@$j--->aH z)JNWAhO5z&DWLC_%Ep)MERnA&od|6Wj(kJD-Zc#D{*5>HMpYx_CNfz7+U<3g!)^ z@0ZD&%f5m5!^jS9R~@U@%X2`ZIRr-f!=#D1t5(mrUGczPFQep>O4-St`#kaj&n8#} zz;su^ssj0^f?rVYqo@gDdNo{U@}|Pgh4N)Zw;~gPH)HroZ%Ohkq!Udt+z+=1Cb6xk z0ogO9u5e*}dZ+sd^dE9gD%?~kZ!Wy7NWQh`exIL2=11k-JgRqOTN*y&?7JPyybzvdnKeTnd1(OeWX67i9pRd6P*CiT6eO{b_@xC z-uAv(Ab(Qu1z7N$EMMt_%KKRURF-FQe>(@=D9MuPuky|=kY|@YsN^yMJ%IHQRxe8wYF;Y1 zsZhS9@cu%1N#P0ww6kz}kvym9CG;Dn^$|NI?D#>kJtlu7%XfP3^2!f;mqNSIGYF^p zY>AACe06Guozi9|Z)K0kC`%J7$}IET>6P#DKJ1m3dVfaerhr~iFuzlA}>D?@RYF`4RRtJXZ3}O4;4=N^%v< zLZjg@zrnc>CLng5d1{k1A6vHWFYxSgmwX14GPhmEV~5WQf~op0nyQT%*DJOQ)|FHE zZaA>*c3&hJs}6sRC4?16dYNd5^6Ar*9wq=Dd@zRGp00)L78 zB~KzBGA>j=FL-u(4GbQ;HRdZ!o2+Y5FU$k!Iq zf*ge=7F|;;-&Q;o(lQ&pHk-+x!9@js+;6hH!~K&Ri{06fD|$8^_Kp+VjH-ignswH1 z$w&Abj-6m;c~HTug067MAJAElZ!F}u9VOqC$lFUMmCAROKA_-PPN4c*Ls({ zi8i6$^M2`-uPGo)5oOv7|J6mFBhNh;mMHzAd$vb@#?`w zQ9C^Yi!NtSB~}?G;0em!?SeOAF*t@Y-@0G($ZvTzc;p{F*MK1aJ>q>7b6&x6bOLs$ zf?Fi{N%HFMhUd%*0!21YTAG@1iv(ZQa<-dcGmqBIz_zAfH%$ezFyj8}l3T|!`EB+I zlV{?%n-v6&T1tkcG2?jlHj_VLGwGlld2fL2Rr&c+`G->S7V^}Mv{SPIZQ`l5E_t5& zQMde^dyl)_@a5ju6+CNQ^W5^I?(f|49`}vlI#Az82MRWLZ&sRgbK%QH@`~acp!o3Y z<)RhE@(m@=L!0o_wj%lGqTNu+ZKNh)*BuVbmB50v?ZudZ7h;a&i5K9$kY~diWRhBg zxmbRHY^j~DiBL5tJJEf0A@-bZz={K@SBgHzYNXpHoS#7I>XM};@_(WAV0F1<-$c0O zXh-!0EPUkco*lG-ax0om&#=p@K3gTrZ;<=Zm|-IOm0`|&K}K0RzlbuodbWGy9iA(_ z@~vJP`2am!a1Xhr7J^k@qxX%TOoCW>GVv_cZD|7f)+PUIkAzhXjuK3xt-tl~WMYTf z8VsB1Q8K63NZ*>4+atm0^D8#QIF?^%f%K)k8Y2fdSG(YBo9SM!`YOkJ5KxW7izk-J zZJG=n>idq5sKzbFPPB`e~$1yHBXgRrIpWtrTS#DVDk3%^C z7kn?NskfXsgseY%Tv|w^%`1?16f8!C$gYBB5QtPVK|PHY$5NL%Mm zOV6N%X(`@9{n-;Vl%J8X8Tw7Z-DnQ7n}9x))-bFWX4C3r1u8_Y*Ic)_<>%cmqr#`% zm_l*5<+j3?fgvq5kD)8RfEym?bZ&;2Aj4GJuDH%K8KeI>ObgO?m^=%&qHtPjE~)O% z;1Pg1eJ8@(XY$#j5*Kwi99IdzjL9>a24ktbTzBD)D_jkJn}=$$fF$z-G<*Yn8{^P{1{w3JXGo~hV(!<|*| z6Iy5v;uYQk!(V<>ei0QS*DBX!x4hK-99sCBp~AG3P$8bBHpd*4+Ctuw^M$4&GoeNzJ0dpTHH1lMs_o z7}+Pe-y-Adaumi2Hu_7ce1F*j%y>w=<*`mZIf5+np9X(<5-o(V|46p{#<@r5Tl5WSj^ETg8@d#^5#Z!NeR{K2!=draP6 z{_g=d9W1XpN*^_kw5li2O@I|7}PRq>LWTw zH>KcC)QV?|d;GYcyzqeU50Ymevg%NI=^sD%qr*APP%BcYwPplSJ;@AeN~jgjOly6} zE8pVWd5Apo&;^HL;`GWJGo-F%@F*^0D`Bwt%T2ivua z4ET@|@TH{$e0a8}D_(%QdY^apl_wndu!ip?!gtl7^87W{OS1915);ruun`zi*~mdwY{WyAajU^bs}$Jy zpyz2N!!-q43go$6RN^;vxneJQe)nbF<=48e0ULo~Q+wDu3p}-6=Gf;eG`-`x z*9|Wkg6$B6YU+9L4ykX+4ZRclmprw}`&)s0UGWRFcr1`pQx6u%>u`J_nclk34G^zYFT+y;Q&9MArZWX8fhkC-Y3LsBS#LkpAn zqAV?eb7}gMubg6PA)D-yZzhkKjwcg{SEOg)snr?=H3g=84uh4azDBjcz66p2nl`xR z(<>C~!IWg`5ikX*-EQo3U%}mNNNw`MOL{}`%StO#Q(RIu3K_Vhyj;8o*%uYaH8

U3fD5b#PWLOf@iUJwwLe&t?^8O&kA#*!}+pE2NJ1taF7WdfTvb!4ie}<27wNwl5{Y6PH%S5K=y~J zd$GT+--{hR)yoDBWP_eBWG6r8WT)VI=GTSn-%m^I{Dnm=)+~UiO=FqlaB1J>X=Mq4C8F?&=12{fxcX^Xx`1UM?JnmmTL9;^otYPMk`@-Bz}~kbTF{=Iv}% zA^VX{>WZUW-&n=h z@&hGooxHLe!)Mby>~ncyDcgpQVEAaUhmChVvO8SU3)x++ zU8QWc>#i;gA4J=W;X6|vhVLpBFnm#{fZ;PYE`~426tP!bD@z$ZQc=d%xMp@|pSgZ3 zW{CI=2D{dGVL!Webzz9v>S0&9-!EYZ3CeDDKjvhJ-^r%Y&7E$vY?k}mLiUh*P9b~T zy{3>o?f$ipJ?EZP#9pDhH|g#@_xK|Ase4Wl`^x<=xZ-{j457Q<=;wAwl74o0t~!!k?cH$%n?^qmc^4eY7SYd3-WLyLZ+UOr zpKb8oxj*~CyKH}UWx@Mp?AC%+Wo&lAhBCIWAj}Y;)X5M@)X5eV%qn9q#$lLMU`=;S~r2Rb>> z$$?G|baJ4R1Dzb`P)=tmS4lh$=rRwAEO)OxcHmc) zH!hNci00!QzEM1dYa>KBN?mh$By>>|`0k5DBaq)vbI2d|h3e7(gA%c(V9#=lf`J1e z@B;_>!{KPapNPg3+~vnPbV!oAV|5q?#Q-%CtZLBm3LS39TG^{MsOLsMI+97Ps8+GV zH&~+tM91r+v4pR|AHPtACuynduM?vU)Kf?L4AoW%G?Mr>I2xnqs9-EvsUjfCh%pZ3 zY|tCpMKw^{Qpp;WiOD`64Oz8?zL*bfhMw>R{Ec+W>B6f4J3;hNmKcgz~zqi9z zUE2y_@<&cUzcwbup5Tv@I4Rh1Luw}$jK_nuzD9p2<_m^{4FJ~$>-uOmxgT#r)$mZSs^K-gs;ZD46HH*( z@T(&htP941kpP#@QxpyVI}#CyM&b$ZSSP}ihk}%dEa0P29H+v>q>NPYp)PvbAf~~M z-tAf5t7mzgKO7H2X=Kw6#$hx(R0+mbii|zy)GQd;CYH81kZcBqu$5+ z&4;lBi)7>gQh?A20yH@gI*QMPm+DlwoJNWO?s!`I##{W2Ri_an=nmXSQRE%0e=^O1 zk;Z7;Au2ssZlMGW7uc~eUpN#`DC*2{i6N6PBy*ZI0?jnL93$fNHHU&N)d5W8RaF=s z(Z*nmOrr9%Jm4SA$+*xIZ6KcG5IZ!ju=%uBQn~DwG@82(%;( z`ZU%I;+!g{*|z-8$EjRQ&6HEsePN1_?xjmk2#yKp#H)8Xq3IV;3E|hAQ1m6?r)h-7 zfG`}*#*~>QSEa2)VW|o8YqpX;puykD#~(=0ZgWD^FG!Xyu<&b6C_=4R1!?-?-{<9o zqqjdnODVo`*Nu&AnbEH<7L9Owg|0c(-?zpexDZ^ROKu2ACjx<@8Z|r9RK=Q#LuH>> zklY4v^aSfTM-6GBN%hZUEnzy!cvGDLrIOACr8bp9Q|BVJeO1p#1C~uW2z~!}Qw>%} zRVc39<%C7|CeeJ83mH0shKBs0$dMg79puci*^vC8$gNuyKO1-K<^+guAf)qvF}LZz(m)kB zl@le$Vl5{$Oi$TGW}6ynP}&NjZJ#oBf8f~&hU-$D896yx6vswCZfL6Zd#-r?3D+z! z)h3#eiOT+|J|^sFO@$fC>t8eHva88hOnt7nOy!FIdF<9 zcv_X}{%(p-&Qjn|oJ(9%Po$x5Bst6c+*-PTpNm(9@_3#>sE9z4stgFYwBWgUcM%07 zBN-4hkZ5E=kXay5gC-Gz9H;ky9VMlDk_94jlBXmZJH!Yc;Z#>}a__>x3dJ>ysWOvW zIHwl1pB8fRYtCw#yzR}9nv2?Q&*TeFa?ijvMe4?ZT|9yh-YzQL4{sNd=8dye#AjIAD+O1tV?~j8lw1a_jWy)RN5ZXm_4Co2QaG0)vD5E>O7<*$5 zR2peGtAh$m;dZOj8z4@zISEl^pLjjacwXqkDZ9E5S(1jdT|)Z>!a;uwSoxK(X;W@a z)aqMFb`kOI4Dby zXI2=dBaik=+GB@-yu)9^3_ViVdI>10jXSt^XV$r1fDO#J4m9AZET9y z;}8?JhyxD&-Y(Gt8l#O0(qR=I(9qH6I*6q?G;ITuFcA!2l%2Y#^ z56_&2ixZX)1*5#Rksk%4r zvVbga4b4M8t7P#*GlCDI8f~t!Z-r?6Y>vL8$?qWH?S~_daA-on_>JA(RMDBUs6&yD zJl6J(2Nq+EVSj+Qp$ug;ZI|v;y!J=4fH5EA*@!NW&9y%$bkfX43ca3}>ACG{a3tKe z`JGiQd1JpN$9|7q$)K)mEwjy!1?IHw5RM4iT()aR9hEh=t@icfFLjZhg`vhhhFs1Uspmi4Qcz$rL!l>VxA9HTf`>c>CGpuJhjny>?J4pSI^=p zs|ed<2`BsPvr9mhFT(P`u+&3&dE#6uTAI=Av(OByZC<7#%?DGBhxhWuQzOCVyy*c`}{RQoDU|apZLockJB;diN)rK?Q=LCZyp$|zp%jB zYMV$Mowl^IYgnZs%!9_(QKG-|+2H)6%fswsI8RC|6|+~B_zR}CSz$c8YM-@6eEHz6 za4xoESs_$ppAQ1Ed@!LB@h(DK~kEWv>d7+*&fNayN1zr$pAz9}U5cG=e^0^YR zU5IWTHOJ5r9b&&BO8gk14y_%AI&2NwUMli2j`@eA*wM90Q=lQ z4b-Qc7gU3RIcg2IngEricd;6{0FlB}Ch=;ua0Yo$o_bTXnhebmDzfErAvJAQ(+I^C zrn0NATAdcp3J35jd+D$!!p~^|tZ*30;X8rCctq%Z@oEJ48dV>RP@IBVgwBXY{NX`7 z-j5g^NXKM2xKAO1fTSlsK6;#k2aqz)iKA#Wa6<`)fNh^Nt%R~qDhRb&U7{3CqC)Kp zu2o$&l`AF|YCf z`a@MJz%FV!0Hvbh=4o;plIr2Mwb^sK)mCDL;+wv7WK@$$5n#81-jGWLAKAgwNBpHm z9}j=Y8EEy?Zq1}Gxr8V&NL8CtbtR-f>A>pvdX9oAj)|f9JX#KxH`O&fP8{B(^EE3G z35f)4>O96Of1tSr>PUM-tXvD0+IG3HQ0&N~DB`D)oQXKiWMi+Ab=^X;85^_U-QEZ%vwB@ixxQ- z=XTrTf>^+|(yl3)}nw`!~6)I zVP1ruNrBpCta(M;Gia*;n3Pmfxml~t>LScG?GTDcQ#kCyq|^|CQ6Kanq!h)ZHG$i$ zj3z;HYlTDDLq|oZR(oGF>EtqdXuD$ckWjH+DdN#0V5edx>SP(8Qq`KK%}K}i#=1RG zPv(*mI2&d_EJ|;Wn1SAA20(V~S|Qpa*iP1?I} zBQlYrou6n?Vxn7;-Iv>gBU*q=R39l-st14C$fX_i9nsQ|ff0HT^b3*^qG1U*TJU2X z5x%7=B@X%p)?Hx?eV&1o%1R-=dDR6OP^ux$#lXg@;K03*630A4*mA9mD7``e;uawm zxX>Gh9ENb-;B+#S_aF_sz?uH~u+jWAm;w#>(&LXOWhI-^26}jSagiqNt@z~Y$vQzg zxgs;#5%Ri)Ci4_IO^LhR0+R`ARxIhv;%@6|_V=t5wtaeRa;vzuYKMwy&`biw=Vt89 zLx62?G7kZ^&9St_lJq9!9%H+GLIb-v8Dm?RmNB`fbfZZ)Z+lg#s=tG3GK9L;jE&!; zu8wV%w!4!SR$HI6JE)D;QM5a{X6^JV4<4Q(l)sl+X+ycE1~JkVKh0B`@EI-LEXR&z zbnF%_I(Bj{Gdbd5T1zs-wLo3gh0Wr|WL-EJBt+v%)%yt8 z^JiU9fBU}OvM;^?+wQ``>#FT9n>?7W&1-3K?5fR`j2`k?k0Onp&KZdwH#!F-+62;O zjAiqNXe&eG5xlH>-S`?vyL&)iG*hU?T*iuyAe#`;<{U7h$dL~^5_M6ZJ11z*iZ6L> zqTuV#cH_u8M6@|CmEwvgBFDPPkzt2+%@NY>>ebgKG~Z3G<#TMj{?bOStrrmFG?G%^ zPRN-Lsfco9NGh7#<-!b8ZY(msZjd{NjCgWokP(Xw{-h(yjXfrB3*^ot6J)tE$^?}S zZdqW9_hx*yxmzfF}P^j7wGG6sst9*yaH*e%w(_}OD7 zRws@9oSY|Mmu(zo?hc%%(gX8Wk7!ZCGizI%+J1n!Qy{fy#t6ABRT%^1^2gTkaa%Hn z$K{VRM8^g8Ou=#Sm?9|)E0WZvWekmr+A~JRZK=u}7`MeVF0MJxbCR95`~4J)j?d&1 zGV%x*GWI_`&ln+@Kev_ul+PR?xh)wW0x}5!JQkjFam0M12Xm{BYSp)&Ik=Y+__Uz`&jQ{Qn;m@NFrx#7Y)H(F$5n|6yH5ZSi%qGPga zN+Gn6775vA<1$1**8Rgdb%0JH-&3%oU(;h9+ibHQ-B>V}a%!X5#zjtuv`q{HRKv+KXh89~mA9_Q_WnXV7sO;+vjb9x!ytVkXYH(AVqtb{i551d= zDV&Gy6_DBPUkz6tI@mfuG0vsh*11}j@Kecxdjau}fxe^3?;xp71}L^Eu-2i8!5q6n zk`Z~P(8O6fLiEV7Li{Q_b4DsY`{P%@m=D9wh|X^J2-xfo109+9IBPQ`aeKSmvYLz` ziSt=Y-q>&1l;5LQGAJlpD`fNYXE|Af#lS2EJZ{QNo?2tZYvmZmh=c{ zZ1r1uFk;&c%qskFw$0?oNS7MUlI0{<$yf1cDBI$i+4;DfXi`sm@l}ic77Ay_@`}th zzf{7E=U8%LSn46LJaH}+ZGI%q46AKkrXtM;Q;jFb^2Jjl);zH^9jSee8gb@>p(cmR z^2JpX)Olj91!nvFH9?#YCa0fB%NLK+G3SZJ=7{ZcI2~^u7_1+L=WMl2q>fHlzS)|E zQxWFDM$l2Bzw_DP{G+o!!5hy$(yGMlb&)p04`*q|8SApoS|h%Ea922h*|Dq;DzeW9 z0a-qnkRE>6-d>GW#9{kb&B6=YH0lu$M~EeClSG7+5+Vjuq#1h%@xnBJ|DFQ6*lec} zm7Vo9z2|KV46HQNmR8qZ9yf*tw#PlwNWeDPNI3N{tvtH0{UaSIk$!D9+9bTM-8P%V z^R-E&X#ii_y8u=(bnUj^A~dhggS4o;h?irC%G=Veu)E2lp?c(96?9xOx~~$UH<{HK zdRNbHQvq2<-?ht9s9n>jzB*5H^b;s(g-E-03C%jTZk9F?l&2P3*JfLBU|SEPYk#WY zvD$bbUDfMmXNnM!*_{J5T=xCsnIq^bOD8+6CYer&lWVVw+lr2BUtyZW!L>;;y2~oG zEl&K~6^0BER67tgUmB#vOHD?ywa2myZL+R7W5moXRZ(TTBB1{MHD-)Pnr#~~D6L|y z+V3`V%+|fuu`RN$H!pohD+qqxM~ts(Uj>O|C!xRj02mdakf zKD}|QwY5vKk$9W}A&g~5ogG1M5O1tHak53%_CH442VNTmv-H^!o4sEuNY zSg;N)sx^Y(lW_!MQE;O+*c=K3L4V{zbZI<6fu4CqDz{?6i<&|)lvgw2Qxd2l+7v^f znx^+G> zAY;Ve2o5#k(`f*QqSTLx7^3(qp9(;$d7%4Ptf`UuR@H(&tuu8%JQ%#tf#OP=;1Tru zbS5~|{_~N)#}Nr8AbS`3YNIU?JpuNC``RP1C6OptT33gL#PJRmii5=ZP`H-*H9*}8 z0PiTeMgtcLq6vsrb5dTDKq?6&iD-Z~mwK2$yc!?GO6gnE#?+&+4G=m0 zJUNKEOZYxrvCyl~P`UL!kI^tZ5kBujS4RFt>1B`I zg~m9ImI$=3PbJpmX|e=KYdo2Zk8P-lhC=}^#Rz)d91O>m4|^!Xo@;`ZSTr&wDXshy zQeYxJ*)_D%AqGl!7~0t2zc2{B5XWQ|tQ~|&^f-qRMBn;4&OyKB^kedr!;eb_yH4iC zAdfc&10l>T<483i$?Jjk8-vdPs+Y=MK-vnyCKwWYKBZrOD;43Z!eESUgRTAmW;%au zsMSGpZm_j68lhQLOsMFR&wyJ?;90$&P^yz4C7`JB<)~Brr}9TcAjkzPHHb1f^M~p@ z9mWj6DGLVr^*fgCYG}?@TG$Y+Z3;*6MH7D`x-b+O8=={=CJ2qL&F#u`t6Lbou}BPu zY66XouzVYWG2YP_TJh=z{vnq>XdMhP{3aLRZI|)4QW>x?>w5Z!qb-=qP)xbWzT`2% z#&`(bj-u*a_GK$86&r*Pcpwl`*&`XC^(YW%x7n9IRu=&j*YC40k2gj|sR0s0x*dpm zsS>92crt;}U@9Slw2{llp!SWOEP6a7N>)4abE(QYe^R2dE+U9h)@4#fDC>fv*koPE zAT3#!N|%xBiyEcEN)(_c(*!_W`j8t63W>hFie+7}`hw;vtXEq?wTb#Fd=x;rONyy= zDJ;%mS70VgR9(Qo2C1g9DT{4Atk*C&_!YkbMM*j4t!R#hYK6}ls`OxwNGVc%K@~t` z1keXuM)vicc7gJR9|Gx!4LH-WrShaf;ECWGvET)A3%qC`UT6*k>kAD!e4fcqp0>pWUlM=LBJ-4JhJG-I%bn;IfX(~h4V zaQK>)MXFjtvFZ4yOC8GRjX|x0FSU3hxhW2WVg-tiB@jjLG~*FCsNX{^VR`RQz`+Bs zkgAIXgD}%E6T;o$(^9-He0Hd|p95~_TClk(LMwN)3dK*X9$w|(KfaTEb@(6-?{)P? zy98j+VJTe~Zi?4Czym^wOEX>TuWm$i3VVH)y1(&0$jPoBkJ>bYQDIdLAf+1 z@ihB+3w#Oxm?YL_6`yw1t7}&AB(GYH&03Xp*yas5=ojvR#wNPQZ`{GbJl%vZ77>{1 z$2u-%JU{q>hS0j4x}K*J!EhLhA$+U`z7P7QIqWh=T`-Ckt4lKFQb+3irlR8Vgm|u--G)%d2#}%lD_a_1W5Pf;I zihj|b!3gY3W#tRkqCdtp7kwcC-=VLI5QpM$dO@Z4A=je=KMwfg@WX!r2H#p+u?B;^ z&wu!D1Nat!zJsqZfNw`7q75}%`ym-eI!*vM1rxMvf-8lSB;0b4o%Ek`%od$i!Twc7bxo*+$EE-kZveLa=gA=v3%A{X%gp&frm` z3j`DCh(AJUT$JGmG|CvnjXw~L*E#$=Go}L+q2JzhjzBOJ#xFg^PkkK*Mk9tZgqsiQ zXbcxj1^A8eC*fM<5*<^AVLqm^7gdfAgVojrM_|NJPWq|C(VrG*ej*M(z#G3P2G!52 z#t#5Q5?z$XL=IAc8p=gqgr%7f)Wm=aKLJh{=tb=fm7u0J)IgN^`A;kTQdRY18>1+X z_4Ak-&^N~4Ksmx;W!}M+dA6=9j=!S5z8|YT;2IW@i2AXHpZs51*23$EF6^+^rXg%)+G+iZ$ zcLP`zYzQ=tr3*RmX>Oq;E)n$_P$swtT`6-zBhRE@x}-x z8*5@0(iQUzf2@K5A!s6cAr&P95-G(*zzxkM$RCBR8Rj8U;kZ=Nuz?_zex$LaR4qj9 zigg~msL%k~rNNPC#)d?IE)lxocN!S;sd0Wj&zD5`=>c#B2^ zZWJn7G%{K=I$AVBS~N;pG*VhLT3R$>S~O}}G;&&0dQcg!SFIjyXcY}^l)Si6XrwGe ztD{b-fXrmY*w!qix)yX3^oMqhYZ;sMBF#DsbBSVO$JJ8WReyj|3O@ZN`AEwQd}^KO zJ{U1%7`G^vF{NNiQi|3UWJLi)kO0;=N{ZV!wTh`zr(9qi>ecYaVHKVV*5HES$MeGy z)UHNEWC*HH_zewPr1|j0m4+=(Dpwk>1f}uH!AhEsTY_U?;=%_iu6&^43bA&y(BM}d zBSVC;(a@x)N{YrW&qOFGGZBI-*DG{GBOBS30g|*1xp7Ea%`g)AXvc-b19@>(Y)1~@ z#v=#ug$X}Bn`B?J)~)I_$t9&LRWR=l268}g%jK4Lt z;q7OPu|^{&Qt=Zf#x&9PuWxXSyfj*2I`XMH)0K@&Y`UW1)x#Rlnro)x!wmh~@^B36>cLQR}(e zN+XocZK;GNaf6+7AT|8~U;%1s08J(4lVFYn0i!5Meh8fbmFO*KFkg%U7E}jl{24!r z8o-x38!89%?c4vDzI}Tg)9098$M)-2*}t+Mnt~BIf`%ssOMm`LUqncvQ$Nsb7=Ypt zCNYdZ-5-bVa+*|h`f%a~A6uOC6L4Z8Hg*I~e}ss^4&Q0uaI|4?fDR*6lhuQBA85T9 zSm=5>u0)L{zhCu;q0tj-0s+% zM4jIT2{S9{j+Dl9P(z}1`E10AiZlyDIt2nD)Z~v|oZ=Fqa1`H>4+If9EikgTPaE49 z)k#Z&26d%AWQ9V5tjA{0@{GfphA!>)CFs0Jg641@u^NyT9D|^B6mBEY7X231fZ~VO z8$s{Use{PI!0F3vmn5ou_K8j^z5iwy?|By~u0`@IQ9AW`n)NhJNB9YSbT1|-Qjc6) zlJ@j*qdh65`RU-~WUDubx`R8Zarh0JX>fClsScP;=CHwZi&~lDKxJxCRbrABWZG2C z?dUo_0L|Z;HLV;32_KJ#X;GyGF5n-)HhGVq1~9Vm53^(U1Kx9AsIK}fzds)9109XU zFV6nJ;^v#?aE#-`uF`t`@t|rdJ_-o>@eRmGA|4|vk`7AIp-wmsnsE@ddgNeI3|g+L zP*q=Y48XWV0Exjqm{^M2KWOnmWaT?W%1ob;Wnh}#hC%Q#1$&mm9YuPByzP)3l9)K{ z;K#5%#;sN&wO-k0(7x|!e6KJ|K2x*RcOP)>5%#e^UOl{q-l{kaO^2c+J2EB1pgQ=E zf*?T{3;o3x9qfhxziIV80rm%YC zV*n}`&LeL7RFgOmxSy{Y_A8=CYO9pLrmB9JZrrx_iLZzlG)GIiy-eSz&(&U5-+4`0 zG+UX>+8eSNtY*FA(rn$97K)>evmJS~b#?O9n{Xc`- zR#9_jTCQk}r*nk*G$|T;)%k6Vh&uT;NxoZSZb)`SOEB$sSf5y!iuBEQZYpAEw98b~ zWmsFu2>{(-)LWz8B*%sz`Lra}q{W7SXjX}as$*HH)xsC2v_i_SJZM&+&cM72b)Gc3 z%5`nz=czBVH1$m1CC$#%(-~`Sx~Pxy@olTNY&{x*7<#$ddQ|*(vh}j&nf-V2+A`ei zzqx5%L()DIYv7hw3%<(OA(ofQRx%ItTTwmcWPT3m4Ra5M4!5fLXO_sIRTnMftQOzI zq%DDlXauG)+MmTsp;?v}UkTwSbWQ5y3xeZ}?}hRqsh_9J11qYBMo23J9A`L2I!+WV zd*4aJ|9QgT;XdD~Z~z~}U*bpv$KXw(`d}FQsnuaJq;u+kDwWGiVcroa)p5^>38u!i`{jl8Nhwx!hCeF|F z${%gJV@*vLyxQ05z+o2LVI!X2BEx}E2M*C$va?sRebu4d`AAlYfpr4k=+z>z)p_I> zbeOPVz++QaqaSH4udim66?yMUELV9%0q#VLHQ^)xR_uJqrL4fQ{vM#^QC6F@q_5_R zU&&F`tggOK0}zWe2lnP0l^3V<+SIkPdYaisIj~~pFPJ5itiqBt2f;R-O{u-QELD?@ zs0nt!Y8JHOnC%_An_lPy!*Kac#b+-sk3wdQUkl5n-QQ}1wdIHUG$b8o}k_@H7* z%Y#>wz15wKzOlimjQXadIbvHJvK6fwX)Gr22%NO64?69k7(yJ1Lh>-KGCyRA{HX6qU>oRJbbizA` zN46y;+tEU*2a;l6^|XUEc^XZrwhkZ0$(bvE%E&~TvSn}kmC^6d#|*O84=yn!M4IYf zth1++>J*&>Pm9qD0$rHOWNKs`dd5oN&OV4c!2wTFV_)Dt- zI*SwJwof$hW8?@bj)+S5&!hZeL)<~H^i#B6e=M$UkSEV54A7obhlYpfAULVZei~5C zUNu5FL9e4x&KdN=Q55AhHC*Y0UJ@;RUP?zoalzHI0+y($+G9X}5O39o=_Egbf<+R^ zPg5ANrEl-kk)6hHkm6ktl!{6&kLX+>6axNtoU1^k}cqS%TQ>uKOAcazWy{%M> z0Ic-luYNudFU+YgbOyrXc$mOsQh9liPQ42Sa5%IUp}8oAa5bHM=cI=8H~o10K{{$t z*^g>MC@*C6@fR8B1x2B{Vsw zfky!X@y5JHop?wk9^)Sph~tIpMjU%feO*#GsG=W38F{P^|G*o>^oFS*J>q$-JZY@(@2Igz)e8sOlG-TT9&JQedX|$q(m9hh zs?n<4Ml~IQM8_Mn89$gNR)=AnR5jIj$32q*N@;Yuu0;9VXw9sFQtLJ99w8hjKBU%td416d#0`YxA1q7(e}(X z9n-{gVHFQ3nFo=8-6*^ZK`%JqEi2;}-VN)BzO;D8XKK{g3^tr<6mO2cK_a5-7^fN> zgd>DyrNP!X7MtnH3j#KpLJsE8hya}uA6HeUE|EqKMKFd_@mtx8hpbQ>IO_JbQf0?9 zm(Qk(+gLp&r4Mz*@-oK7si>$(?lq`~9`K%!5<(n~tqT$Gy#X>p8i2AZ`DocZ2xr(!XCP)&9TTNy-M5rPj{BPzV3t<`>Dmx+!a5nn6EiX^cQ( zmCt|c(Q?|UAhWEesyzxaPZNsuR!T;Z%Cm{{HWIX08Mq!`T{!+{b8~ z0stAq{(kZuqG)qKEI_D&#>dW-hD z`^ZFPZ^K*rRn1B)DPvQzjJ{Rn5RoeeoQNGCg^VLQAW>$l7NeZ1O(2X=Wr}|TRrgAd z)k?q=(;Ryk**3X<>epovt~SrjPOU+mSu4}3&QH^ap6MGrs!IO?rw^Z_P6Z7}g9vd= z)0u9@^Hi2|+PQ(6XgrFkVL?)s+EQy@zVKw` zQrAdaldQ7{SAylGSsqdS@Q5IKSN6q6h(cWL!$59pfA@nt#qd6PMoB#{}g z=1gTcFI3{22|6o@N(-zxQQ4n!AunXo7a?>yGvUpNP?DiKn{r8FDV!6sMwvZ@$rcl~ z+B^`5?-_{W#vElX1ai?aN03cLs`N-@ zZzZpfe|HH}yFR6+8SDBJ#b6g##$lLMU`=;S~r2Rb>>$$?G|baJ4R1Dzb`#$!#QwzO;aS%R2~T9bYFRM zFcuF*BjuHSD|%J*r@FhV1USc?=5V%laUM|Y@lJLs@B`In1L-=rw9Dm^18*)l9DP;z zzOn*8p>*F9O3P0uJ@SOoUV}>q3@vTE+;g4#de;r|jqECkO=G34CzOtNR+lzP|0o?W zxU?6~iUKIsWpJr?aA_l_<2n_uSl`Kj-KWA&a9Pwh+E8D2mw6?lhobm*Dz4|~iZ-Ru zZonnYHA6)-4FHem&n`{1z;T6&>q4vcjdvOvI9DpY#(6^NWN>u6ll|R^)Y)3|%~Nq5WhHlpzGHW@()trh8>>r4OJ|y49b7tEk!P6^g$~D3D;kY>{~>93 zn=R2gNY>6(@!mwp+ibhkYKD!*+kGmYCc2v8F^;#lrQ~?4Gs8*a?JS`BRmJ;*72XuN zJCX@Kc42kx_|kMLLG!H*fuDY%;qGQGu6lZDbiP2e&9zo^#L$4V}Y{Mnr3 zPfKa*IjUxQ)vP&+d>l^W1%Df@_+*ribCPm*h8a>WcO)Mdt9TzE|YX6C#b0lg?r|w{Mr-NAf_aX0WzOti^fPf$uIsU zTlM{9BW;&UrBhMYOwcshDZOdl|CnH@-!4{hA8FNZDf;+BCg|W%xc|4Rfu(ik^~`kg zd3B>&Pj6}n_)GIR)&HvsAChJL+brw<$g+OYU$xY)_{+C`eMZGQosg%?&EV4G#kobg z%8bbIC@L2a0*B*T;zv53q3B5w5qnka;})U6*-K8O&eM9o8i{k&1bftU1PlglK380$ z(qN}8B(JMgJTF+uYl=)w7w35CYcm!NMiZ3rUr1bXIEt;te+r+bGJ!YJ2s7M#j9sDP zz0->36uei8{FmN0!^`>F1%r6KiulZUV1=Cu&pV`OwH`oiaz+E zhu;^(<4uF+QQOPQDFi1RYL)zlOo4ZI6fyu-4@ z+bZIX3N{=|nAUL}>e#mwKlqzOI@XMz^Nr)?Ifgm*d~GhiOq^pIh1pjM3JKDQ$%$DC zoAt?HOmWmNb5(jyw6f6+{mcGp+A!due)&PgwaZH180D@xDd(m-OkYO~F9UM?EwiH0 zh&Q>8Xfbd3Xy96a|M#hQ$B=GM?~9Ybb;JC07b{)q918tajVEO9tb|5WQm}WDiA!;R zw)Ws8;X$)-FI^-g*uw^7rYn}gsMO&gyY5`lx%fMbbZ{1QpCzNJdX4Un#i~S#q5?tE z3?acj5{pQU=3HIwB-`gFm9_@5J=1ARoAcc?m(ff}b{%`oFatH1RRpvox1+n_2Y;4p z6QfLcWHVflFj~LQQ*k|DMRUsBemdD}Lp2+5yI?%hjFnv4n{&$HNTAO0ZbUuWVlI0_ z!4ZS(T_xHRtV*;P*-G)56fkcoYz?wwrmFQmYBfevbmxAC6{E#`G+tSo{-EM6%+lVQ zDE2m6W3X!eY2FH0b&9STy%%xM;pk>Hr>3;yT~SxF9;QYk>99pAUdy$+Q6FB!O3yl> zbaZv;2y;7ZaOnsKw?n&h=j1vbqD%U?NVTbNHETZ6cb1Ch;4J5;FAVMOZmPa%tv_GI zTV;i}(IAd6Z(Gk$R`_g@GwBz3#EfnlV_o*f5B^TEl8qF3znLWbY;}yWvEr~|m<5GF zX09cOS68TY9++L5-VxT-hnX@8I7!ESsNx-G)s_^ydM}dfGc+Cdfvx~Hes2;C19p^XCa{2*k|Jhwk;XMQA-!(@K4MVt>tGJhCiF>{Q z_gj{@NiGlEm#EIKJwtdCD&AME7eFGd}`_QMbU%FS(>q0lu31vEz%@eUJfWHIvGlOMl|{P<^4iq@^<)eoArk@VAi zwf;-8v;oc)c_+OtC?vMPpq|E<)u{Nu4&R?Q*^zIb!ZkoUUd27yTz90|w!e^V`)|!? zT_#w6(uHDTs*qp~Nl2L*t$cr^_yDDyB^|>xSKKV6N%9fsfzuYMu95 z**Ph?!RY(=)U4CE?}Mhv4^`aax|`rXn7~Pw6d$Oxe}UEbNulKkkLcgA*ke)kRK1FO zO_sR-X25M>E2_9(>_FV*2Pr(+VWnSF#`|b-yh~@B_Ydq);`haE;ZETmb|=CTx z^hXy9_iTz-s6~9Thne$xxy0AeTU5GtknNlW-6bO3`D;&=B$+Mqi{zK?eaJqucr-OL7woqmb0RO&1-$8U{LiQ(1Y#{cL^prG2NHhrdY?qjgtrJtyP9bBn zaL>BHo1x=w#XYvDc&+dZBp?YhW%NjK=PS&7i<{G zF&(UHq=g**reghO$;;J7n|q0252v5FGcr!tGZD9Nq5_=#T@q5*!7*8G42A{jm<+nQ zKu6Qx`gYKVb#`(iN&2st_?M7iKN#}ehexBdZKXS`h#C%B?o(+x7QD0IS<0AUhnYH> zfNLK9|DfXgJN)Jr_)aSQ&e#VRcuIeQtuh{x^_{a>xQ8?+AF!JwAr%$wrN@K>d(|nV zB#XuNcO)v~@n1VHGZD6?CA}#!)5RrlzEQXr_vOL@oJ}-k841RE&~PNL*x@*~O9mRo z8+E`!cj+}4nUle@@e&QWWGW%tv-`v+>|!w`H3%6m!95O!adgsf;Q^+bBx>m?A;C7M zU^A8d@e=n97t{J3f9tRowcvBwn(0$T^of=>>E){MTIAE;a>VlNU$FaYSO|t1I0d4&5=VK#)P{ zd@D78j|O4vs`z_a7YmRb01{bZ@9khPK-%jiyTl9IFF1XGuj9xZZ9Lo$_ z;(|KZA*Q5yb5i&?KNmDyr_%Bc*6S9ur0wGzXINL>Z(hS>r-N*fEh_%q@by^WKM4xi zz`u*VrC&nteFrbjdMBL+Nv5QPd2Q=SZ&7>BCBFmywq@JPB{NU*Nrd}*=4$;SuTPV-b653(NrY3E-)5N#*vGeOyiCeoz>Ts)t` zz88%xG|_bWSPj{^0`v`6&!Nm{2Yn?5n`n(dhcrq^u%oCQr)%bt#W_3>LiW-cm5zMa zOXGp>aL5GxU1U8b()fO$Xn%+{$HhXcM7EQGZo%CI>Yl68@Kd$Gjy_TfBb~D$WV;ky`34Qh2xA0$LI=2V}-+4;W(AU@wArT2P+&X z0w8`-3;qG}uL?)J!cj%=F6Rga*@--7Lxp1`&wn9D9_6Kmo40xE!on9f6a7dy9hhtAFPaJGWaFIkp#{## zD$Y?V&Li4^b8Z_r=c+hIwFBonZQ%S>#YyMZE%}+!_T6pZ9HE|Rnbi)Qhg%#3)cARy ziZh>d{?q|<4p+~ijBiKVtqwtIZJ(*)oYM}RN4CLF?Yzui+kx|uHv0W!_58}e+JUnz z`JAreY!97}wL#~19YE($+Bd;pxE*c(t_?b;syMIDgmb1*FO^#KJL$UV_`gNPS%&%2 zV!WsB&tl5Kymco32mOx;V^oDB#-|)iV3?mU-{ALRK2b&Z1c4&sDjb;4km0lnM-%_W zRD>iZEzCy$x2)`xMNn2k^!<}*x1m>q!-5I>)mFcD(*0bHpU(_~nH zBQu@?g3S1L4iVYqe8K!5%1QkXuN@hH7856CVg)UTL=x43U;y#7rNSX$lEhpJyeOdj zq5+tG@wmRC%h_qzr6C->bTh|;IdwSF=CkQ?C)k9#fuCkmrGKtd&$b+psee`*`W&pv zp?|tLQLNAq*(pK7gtzy-7ZNySbbipFKr zKdV#wXDY@|PxU;?aoP6|_>@Ec#5Ivq8WtvDOKlADKv-c3;#VJC7xR;5M%*kTOUyubL1E&KqU?yz>&n*!6_cMv4e~jV<)X|MqvD`RL{}8pJ@${qAxG9Sf^;V;eqN|mR0S* z>2CvPql$AwCY&igp;il=w4U_=g%% zFK&Pzas$j&e35dtaJ*_L*V$MN0UPQ<6~H5b6s&E49SM{{VPL_H!i&}FS(yL7^Wsmx zD&MxL#TwP=bpBFWLKg^&1OIXJ2X)O1Ks)}J^AA#)>)>I$$dym`o_EwghHSq0k0&+V zxx5t>0`p48Fi-r0%UbUH`4&UpDVOWy#U& z`3Xt(-Q!n|dN=fB&HV5Gw#u{SphJ1izts&~@Mhzw&a-zok2~<^!UCVxVS=^(tqW>Pu(_e-)#hBKg{gYHSye2$Nc!f>W$%|JI*Aa zvuJ+THQ_fdJ8|0w$E+)wwDO+>bUj$P@VIT)KVNy;8w(CTBJlCs1ayCT)p;{MoAK$w zH{KcX)Z(fe@8-ZiMprHQ_TG!<{`dTbV@^9i!l!uWg>UW|wEE@aeBXENKIhEqP9!IW z!}(<8HzWQ%d~NCD-s7(sy1w9R4*c_P2lcz)=KD%dU;5htKaM`JKL?)eb3gJwvxZN6 z{Ml8%3_Irj6$JEr_|bdc^|`QT^RLyF5ABg2*hN6EX&>#`>&3m^dg+ym|8mYPKkPa0 zJI{T85 z1e8wx^0TUF%NMWDI`8m*_1YCXn}Duy4Z|F>F8Si=`-)eevic9_5zOH_^A9tgJao_r zLnb%v{ z{r>sy0aZJ{I^r(AL@2oQ-Yt*!omltNf?-eJbI#Ht&L#IZ3vU}euKb!St}h$TzPPsj zdyez6ZKuW0dzU>Dsc95T3L4&H)2QKRfH| z$zPsz{NwYNmGhkEOg?qQAulz|d3Wz)0uK$m^;@2EZr!rWUK~HANV<8cFVKJHECLoh zJO6(kc=3YE@9y`)U#84hy5t64{NTt{{Z7Aj**(urTmF@_;$kk|&fN zcf@DsJ-G2SUi{TQm;6+;u>701PyXKnhg|jJmjrZo`)GdCe`m?k?%!I$a(=!v=S(g~0=i;zf15n@4<`>>wdv*UpS<+^Qv~#!x9eEfDPwn>amzRF z?*GHCr}*ZF=gyD6dGh`TZa%ZitL*wu6IFwG&cBWO+xffR|Dxa7b@%R>_x4$p92gtC z=hK1Fzdtsmp=Nc@v9}*bK<918p2@zOb>=faR=s=n$ax2Hhgs3RQ_sEmo*iY42S5Dp z%3r6g=evl`19zRh?x!1Wy6O4Vji_TI=ht5^KzAMw+!BVh4|3;k0L`ON!V>jmA5KDvI%m9ooGpdKrLA|2nu>1KQC zrN1~`N4N{w>>{ZOfDaPhZn(eOb+lB`&9#qoST_PqaCLRF#hzhq_HwIqv=g@zT>H4$ z*G&4G)76#TdhsB7QUUm672aQgZ*!HgRb`7^1#aoD-Po`7YmvU9N5WN5heVz0P&d1( z$7K0<*GcS!kax1|auu_s`$+wrDrlGrsdKYkDBI1=mQf9C6O*oXI$hn^w2Qr{`uWyj zcrXmt#jY|pyQarkphEgnH}+G#cP)|=Tn7zu6-d3hxei+EDp=_{*3AwD%C+@U*y%bF z<+~Ev#N z78+L?pkmz!B>S*OywU|uR{?v(?S+7`x5h#`kf=b@7@OBvflP<79}Bz*H=CG{{_bQu zA&r%8Hg=fnFt>DcH`jh{_N9vi56MH(^c%)`H@fy?Ke(iRPNgMtBH$eG@cxtj}Fe~1TurvgV(zDuX7Ek zU^oBAI|$&#ptO&h-QOK-COli~rK6k}5jXeX-RK~|(VT@_dB@!RAE}O7cY>SU0?{7m z_9obtdi2RHJ%(W@vzrowK(BN>xa*zgDusYKq{D~@i!a^gDn$y6WaA+JcP6CcoFt#O z^?(R(Ch~DR40ql-$lq-}B%c$BVFYyj(Jc+>?&|55{*E3X=JZ_a+V3p(WwLq0&^&Yq z+J~0SbM23&4Z~f9YXI&x;!Zk)$o_+y-PHqPw4ol<9pq+rE8P36o}>?ant^7!*{Aj3 zGNf~D5oDcu`fuIXg9+)+PS*i$_CU!-rK8`CNqq?CAKh$P4=+aQCKSVMh3lX?$lj)U z=}6LUY*r7c!bwc2>;~{h_0k}xYY3oTMMeRDzQT9`gCQQEGyqa4)eZf47&XbY{~(3- zr@K>sqMP35Sa_keRAw9UQ&;wfrtB__aJnko-o@-a>XoBQ1786F@|4a!oybvqL z=q+T+O1u@)pVIO?+ZB11N2H#lA`77-rFsCCMZna`cJ{fsz1^8-o<5(gWztIs)a;Km_B`5s zhehE%UhAy~6p)NljYZ3k5%Qajzl$lvX*1?}>*XNMV zNaVM3Rh|BU5xy+solzFqPM)*E9ob)B=;fwx$PP{M*lGhzfSdHV|N&5rL5y z)1fRPF_K35@V+e3_va!OXd17awYUxzdN$K7`e>*v9NY9MN^O7flPr}wZ;`Y{mWq89 z`j(zv)owP&vHME2RJ&VxW;dEJJR?0jO5wri>sPx*3!_E_N3jW_C^)7T4}ZOv#j}Js~Y0( zqfL0!SFj`yT_}!>J87|&BQyAVhTrE`j$h2<>u+T0Xh@!63H>vZ-K!$k zr!u=^=^X>`!2 z^YZ!N#T~g-IciWm|8!1(W2H|?m{?Vu`~&@#3NT_ zzs>dEXkv7aV{YDPVnktv<2a|ipn_JFOo|+feGvR`)dVy~2`;?0AD8LayQ+i1>FuuX zC&}wgn?bDSI(O&Z4Y{o=-IaZ`kdAONDzbn9hVHw^ND zjW7r-(6@>qdw#BLn$!E%$&`c7=gG#U(~*nXwYuKzQ#G2!1%ov*QjzI{L_!6wY3pyF z?2gg$3I%Hr(mLI>s5`Cl(zf50#?3%qLb_>?%$9+71%lORp zORdpsr7t>yzPP@$zBr^meLkEGvxa3XB~-ACu@Z;!9K9;tKb)lWP}ge1_YYT_8|mIz zfc7}J5pnE3?o&q#W&R@aXKS}hc4w`Z*TR^ez?XE^oZH+zwE!)z@on^DZ$p>e2Bpoy zcbJ2iJF8|dz*F#3*^i%Z)Kt8?pusHZC+1;unaCf(7}@Y6M1I43jbiL;V*|9lKr~AD zAsXw{eII5(qEH^ioembRbdSzvBpGFt1va-NzHDt7-xwYI2wjfu-^L@XRMn6jk{aoM z$tycRrWn`g2P;0C)%D~Uojn8v^64a2Qu9hIgwE_Hsc#>zIe2YF=HQJm2glhQykT?j z;+H)KH-|as|DQJpr`sI#DLDsMti~wbw-*w(v_ithMIlKSJ)5cO$}6KDrDNhS)a}(B672+*t2F4~x>6|`0wW&eQ#~&O%=E`n&v?`porUX^zf;!0c z92+^-Njcq|BNBiYri8{t$`RbjxL+=R;q z47FeEx&-xqh6vpPh_ZTorO@z8yU zU}%N8_WoVjucdzEy;ZsD;p3Mxtp#=lV*Rt&8H7Y+XZ&=9X7-2*3yN%9<8EwHP~=Zl z1Vs>pm6J7ke{7P!f>C`(6>|)sy-5N)HMvY}1Cv~@DIVeH5qm~+CqeoLXYT3l_2s4% z8}zIkJb_EwmD?DW7$}yw9+p6R@zdzK%Iv1-GCu0n#Z5GbjXJ8byV-2ID+c2eWH(EV z^q+@t5A9PmRbfK6^Aj3{mWZ;H3@vS17+U&{A4p7~lA)z481fDu@aY(WCFYGBBz&#A zZYs*;?jg;JhjhAYrZ#iZ$gv?rkQ6bJZE#ahTe2^>MjuK-T!&DSOr(~6?NX>PU$xkK z<<4Anv%7+ej3Q_kN0Trx@Xfs2a~D{!@_No1 zD0{KmUFAba_rxKjmf5%-bb+<-cRDmKFAvlT(~~NK6#Si|ivmb-BUI&Hmna73?(>nM zD=ji~Ux*AHUF@@LE}tbRW?4u2*+xZRY#=d@E$A~&O!Rcd2C!gUy>p4K*RZnA9%4RM zu3E}>@h>g9(+YW#LI#`FxQnM^PrFBk`1`+jYK!jwwJhqGPyrVFYXsG3ZKn}sjvgNZ zBmHhF?henpB|1ARPrP|y7p+E)=A+>mJOSITb{;W86kK|68W5&3Oub^*&FW8?g^oFCaQ>&;Qq@~6|ZOn|5W7u!xcP@Nz-EYf2~6I zpYU_i{SR>gKSK<0@cskiZ#Q({&&Z7FZcj&48$jk z9rmp(82VlBsIw4oH@V(>S>4zW_fbEECAoA7Cb-a$_>JK^Vd`*ajop$wb1LYbAr zDs|OfZboSb`??zX+&P1r3c`3a=LOo8Srp&F7AN=g+V$o6T81b0ly<#I^Lkh#hJpKl za1}=HbeSA=QV}c5{AK9m;2;z``&3D6?Cd_+hdU7)Dp&9T{#;HL`Fs7nDw|QKPEmXy z=RW8UQ)M?!X^{uyl3lhpmWJ%$hx*B<_2Nc$e4V>Aa>)?>?p&u}`PR4ue8yQFtEG7% zw@%RT8x`DIZElpQwe_;whkFiw6VYxt43XocFdrVm`MuiASKCIuT1(1T!%dd2*3DzL z$W?3O#7C*C5Gu%_HU0e5doO|b&ZtWL9#emO6YA5#>lT&g=kU#5=_5Y08*44_&GJi` zZhYy)zEwQZS#ndEu7~^8W&5Uv?aYWz5aSSw=}XCumo?L--f*~T9(5cSq>(qV#|RC^_BxBI?)-fGt}pku%3o?x<|QC zFV{AtHMc>f8zd`=q=~y#D#GWVT4URR=_!?flI>6@+X4AYA}ZJpwKfpJcHq%Uq@hr< zAI&A{q%2fqIz(Bhme_Q#z-iKUApK;vLq7c!WG3mS0^7k-CLvZDY=?sE6KuN~8K&&+ zfw_r>ZW07w6|M~dibiCi<(SMnMzlVlWL$QniB@#6H!XZ(Y0MzMM93*2cub7OIi+7o z0$x(t4KGJ2CHeT}Qc6LVvMiYiIr3u|N&@a!6+~2gL{oAK=|(_veTjXf!X-nhS|lkt zZRIT82hNYC#5kXDHVKDP21m#;jnEg&;<(%_j<*Udj%I#!G82Wx?e3jgHQHT8`sm)N zn(?cK)TxDvUzawkMQ2#}R}Dd`XLMre4R_5DpEAPwovQE$L-bmF2kEXM7H$G&+_*_4PC2;3dk_okF zBDgYJTVrNyFYee6@1LhC*kMM>EkiV~y`0P~zA#l8oze-6gXGJ7T;R*?z%1X0?{yG)^~ z2MP-acJY&t@bd6f3N(#eHo_DIa+z^kRsn%x9#{w_mnle)Tvpk@WDC}xIHd~azIL%^ zpuR*GLNURKQ+(yXt3z3#_e?gsF0LFnq#{%fVEh(U4qQi~4#C}?TTND7FNMul>vSEH z`FVHUuy$GvifY_Gj5)bsG6CA#NtfO*8QmRRK$*ypV+(oR8VH@}yMGL9mPT2oLnv92 zs4fsoH;ReNI)><-*gm!z1Aef;KCaE%$94FKOs$vk&&rNxa?L|5vW$0%Eo0<;Vmbr>vw3AQ@ z^#Z?;P*^dq5I-%l#4Kk@)d|)Z=7o)7mv;)$6_U|5cRQ8z7hZl%-jZNk>vPxWZvDalRMna!%TtDj-@LyVRiNs&(b>g1}8>p2akyy zxN{iybNysIw>yVviQ_n4J5Aw59L8>Wj&$1;!9Ez{Z+%M!Acp@wS8*Yn$E|FcC6me} zlx>WP$C6!AEyEp6Ktdh0;f?cz@rfAtV6c+o*IBL{W9=#>@$a21T4@*ZZ228e z&!}o;D0{mLYWS^6_qQ25-~~1H$dv=K8>Vc%WA&XkXYh!@)RQ78kn85FbZKs={LyT_ z;IczTFg*K>p9*`vKl6j)FQQ?+Nadwqr#^t5BS@t}9iZy{9aPOXt6{NfDxJyr;0 zK^$BAX+sPb^P{=-ks&s+&=5myiKCFx-UJKQ0G1h4UkPO4o3st4@QvlLf51(7$2D04 zw1F>%I%t+eniAQ{Ha@x^wwy|WLKgc61Vte>U@DxTt>XSVjLc*&x0Z(L zSF$D6!fZLHfry^WV$)MpYpsVIwjjqQ?oE04tSObZ?ZZ!-8O_{@I~i0Ksp>C?J9J9h zsnJ5CUi^8FsuJ8>3AAdrW!31a-HAsu)Mv9PS^MrFx*su}Rg#po4KSkWKh3Qs=gd8v zw!i{9FyuiM;>Z?;sA@;!E#s&>Z<$;CiYwx+7V#d8Wim*56Z;%Up*kA>INr<}-reVnxh;9@_FKO0NKC}V? zdEXi9dl`-zYb-?EOBQdo`G|YMZI0x#WL{y_=JpITg+{)3(+Z7z&>hxbXzy0EkQEYq z=MMO4t9;?632HhraMVo_{N2ngsT5DLKJcYsN;s~H2!zQ;J;OsCFr9E+u>VGwu8IQ$W?3>~2M$)){DLM05RmtH6RM*d!$p@HJ%G^cxw>U45>KGA4Q7P_F zekDS#q~Hw^D*Utlt_9wQDJZk_9?v$xGizqnBFVFeQ}o|u2g617MzZDox!3~KdnpcyU6vmLjW4B8HV8 z!#XL7sq>qPsau&-6jN_T`Vdps657V9aVc*yT}}+jk^q`2%WV`)l?+R)apLJx*3>&G z&>gvzRzwp@o|;R>(UGME)izi_zVMJmS-kjARmqVs4AM`M*n;ZvQMolj>R1vx zTgoBf)i9T;ex)34mh$h|wFA&d@6M7rqUd^h{%=&Z;%yU1jVG06*~EO@1;_uopc}&P9f_U}Q=vVqcIx5z5`;vZ4n=3H@&hd#DnB%Bhx8B&^ioKq zI$N)pknAsp@_Z ztmN!YPvgd+DRc84oE{5m4D&)R3u&8Avy|iK1%l_YGeg#TbT}HEF?{ocI969%GuS*)f_+DX2AWuf2mx} z-9zbk^%Nh7O;&roOx+n`jb9Y6RDrI{q@ot4CwQOmyDwunzA+p*eW_p>WNvwt=sbj(TZ9=NMtE<{u)NGWX zfmd%?6{S!jfO+{~hVlMsJVIE@p<=N%7{CfP=&q0p$5GUQ`Rd--2UANL1==+jp(EW5 z6veD($$K1`d#cP%{?jx&P`^lop;6{fKkfpv#YC;UWtu$ETljjfMot=3`~8oBrVEwu z&_dAyKVN$^2nnuZ>2kGDOlx3|4Mb>D1A^L(LVYB1lnQSnFyx-pubyX~xBY5VQ|<-4 zevWI0fFcoM?Pbbv@jAtspC8E158{NQ@^M0n7)r+pW!9dd(sl2I;d`lu5@}08iL%|^ zFojf*<)%jC7z>AXQ$o;7C9u>k7bLs6^C+@VSaP{$Py!0&VI7*sh}b79O)0?#I6#M~ zSoQ-vDdK34Y4g$*)0BZVf4((R8CbZ_(ItZ|8)u*~n6z$Tzo4fO2a%DTs<_wOSnT~LgN*SDofd8sk$CF8u5D&rQ?T6qc7l&goKt z_hg+NUSOSVZj%siCGm<;gSo7WtO*b$~#v3j(DFYs)XPV47t%_?JE{|2k9pL@5b z>Bauii-*rw$fB2fpTY}Y&ztLyYG`KcOfMchU&i?+?&F>kb~)waLb>kBUN1HiyB_X7 z?MWn*i0ytbE1LJ>oJMA4&aq8(+ML^H5?1+q$+my>tW^tHZ3^*&RjO)B=))xnzIVYVZd=kIh$KmU(7^1fg#U_{tGtf6}NLOt|Axilu5qbQDOKXr6 z4=LuqYFtK%NGS;8B(r8djAMnA1fSx)xNHuBrBPx&lx#N@?a)=7TL|Zrmk<`+Ok~DF z=>6H5KD2Wd%UHFP3cXWG$+m={?v{Po0;Ywo%B|jt?y!*A%fUdyrQHLueTKR#_eH0> z`zpD)vMaxE3zoD9qMntHyG+9Ax5P(T-m*nt-KR4Wq$T6$oe~03{G0+Na)WRqWBh5h zUXnV*&)aibj#gT!F1f(<7^nvepTpIdY{(eG=WF_P?!)IQLk!__7I>#hpz5`**VBpB zhxJzkyv~Ezf2Gev9_bMSV6bDa2ge};Weh*j1-91Sx zgek^eR&9e?M~RZLcE7P!X_5HV51EvP(_+sHYXY$?GwP8FF%tclzO~IFBs;m1bb@<* z4yxQUr)L+8A`L;vws^H*m$oZ!gA(n}Oj}5i?W$aSNp%P(a&Zb;2}v;pD^VVSlRHUT zK{otKrM&S2RT}o`)XyG`2|}C&>HTY)N`yE!WXTUCQV7Q!9MzV)kEa@X!4NFhT29Q4 zK3wns@6U~bPgtRG>`6>nss>IuLEL}hai8KL{+0OrG~X!E}A z&>?NP9FK_eP%=ihbae*d!f~d@gAchLl(X3F|15>cXDtjm9HUWu8Y@F{Z<6I1OdNwS z!4E<_IF`(W9u>aemS}K>;TEk97g6y#u9Ie+e~jz)YG4Y#>F!z0K6`asojZ}w&{37{ zlL-hyi*;N1ApKYk@5xUlMzVEb;10t!4&1fz<-YEyCJEJQci<|1D+FApi;Q-!j2oRB z%#M@Q{TjJqFPVAjdH-ry3@?qtia00(L0&AjCgYD3YWMq(!#)aKj(w{$3~^Nn%HN)4x4{LV1i zq<1)hIS~mb_}9pxE4jN@Bdur3>zchZ)uPy3&_$k$O$F;pC>vMrr7{9hYQl+OWY~W5#m$omxgv=cmVzkUvi5T58nxxio+&j?dEo zTu>ln>LIeLx=9EhUr@fhG%8=duw?o2OUe_SJRK?28;8GZko0b@>b4SLy<_FQyg4DS z&5ANgc+1JK9`c+ey22abLu~n{UJ|jsle#ZT&7jeIe2+@zr}0r>1nLXUvFP&C7G37V zN^G8$S7T8XN_`5}Y?#cg~L6}RGUl*}(^-=z=oCKC(_2B6D>0ffHsOi--j+b|Vh zab5EHzb~nnz=4ua!!?L&mb9dUN@J~KCiLj3p}Ydyobe-^aX%Y0hH_q?8_>o{tZtZJ zo&%SnjJn}E>$o0HXnk`?W#;K@}gEVx&DBJH>NEz6}+ zLolF$3;60$zJ;>7R?q~B2iX^2F@zm`(_0I7W$O4~Rrh9=8Ky>WfuTgOfhsdP(9N=O z^=8)u71zQ?>sGo^2o|nX&)sMx+^ZT2Su)a+x?is*Tj`7?wT^;{{Vbm`49j^mbug21 zE7^$M&WL@@-9YAMrP|!LM(4JmKpe4);d1gSFgyHuiS%I!2$%ch&|iVq&5!nW57daI zSaR@BUzS|0yBr7HLXF-qRN+TEj3x(LwMb(S7%+1jam>(E*wQ^zlRcPnpP{6jFiS}} zVJcqg%j<$cjLz3YGNon`E9#1s47(iOw>_|>Kss7E=eGgr2t|2*_iQ`&7RjazEuSQ9 z?@3u1l1cI3Zh~a%Rc5~nqy;`TPG9t3ee_@!ArAYNkn05z;zs!!)2)1lsX#2T8wV^P zTw?}BndLT;h(atPiAYOZ_w$<*_^F3$6uZ%o&*-A|`r#U~?_>h>TW~LSTj4|N!Km4G zcl1_eH3LsYO`lG80AMUV-2pZAv=W=&M-rY#_ZK#V%WjN0{NW758Y3kT1-^D_W4Ce#hg-el`wF(K&j|^0l|Is{&uyv` zz60kL;Gx0Nev4nm5YbppiapC|C7NW4(~4>=o{ZweS<`25cOnYo3;HCIl2|^-%V;mk za_b<2ja#M;a%XOaBAbG^t->%WBVc~+Q(D6-DsAp-bypI94TDJaKm?Pa{P7R0bgQu3 z5iv$!mPk{gu9%Ffg=Yv!hVq#0Esgp}P4)nm#t`?$qU>*dN!(5$r&9zeXQhC53`C`= zScqs+sr-0!mq>Y!-X^P&80){P2s;rY+*j!X-N~9hMN+ReQA4==xjtR=3|m}7twv1W%e}A&R|;)AQ`)v*mXC4I^l8uiH1C!_J=weE z-*D#)Gq?N{)uQxuFAZyRr%cxBd1;v7ICMKD{qu*FioMDS)-IZBJA#5x9U(X2WA!?-||(2*+pgo8jdn3RpqI(0Yhmi@F* ztH#}uBPQ%x`^PnJ{X5+SQ{-R#ZD=d4kPDTTv3=!?YMpJGSObP0*x_?KxiyHu){?Iz zzHNJc$y>4o-U?QU>@Q<)Lw?t9!QKWdCx3aM1z6xr?QKZrb!=|~x6iJIcl$}g4q>Ob zi4(T`cC*%B=jSQW3A-DR^4O+#X>&s>n;R^)r7iGrU7Orp!$H*6Ust@Zp=69$1t~}& zYTXih-hFyVb@g3CvEZ_655fjlIF8teqHUA3Q(%i4cls36#PdU?IWn9yOMgWB*Y^}# zpgdk2%FZOyZKqDr(%reJTt?*$?PN*i@{zhZos83P+5UFTQ>MtN^IzffbzEnaY-_AX zO4zg$%ZCQnEDQ~@jo9r+K!dO-(#Rr&+F1<1U?|VCMIgKs6pK(TSS42Za!B7cn5x>n z-Dve}hb<;@!;jMA)uA||Cr(k_0cMJFMCl5iV^pC1&xW#Dj&;+*NrtRab1NQ1Cf4DW zdX{4Mi1&^LR}#v9y@8+~$R)$u)MTbC(`(UU79U|#g6=9(SJ>1>5OZJn}IS9tt5M$gdb03G(}=NRVGKRDxUruydYSRdH-pMN;ObPyq)c zDT>N4c^}8*W4;0oPoZ~vZWq6ma!QB0YG~vsOtoOsrtXy?=7Zfk#bo(aL)#q9HafC1 zrMxJQFmvIr;F_rl0=|s4yczRg8^~tXGeoj>eKC*SB!1IoW&EaSa7G{^)1bKwOMd4Y zXt|OihL+35Sr4GA;GZZYh4W~+CZ*Y{5ld--4N5Req}(>YMUtFj1f0u&Qnl_ObZet+ za7Z)(=hpIBgUa9kFbr?4Q`owHkQ&bJTEkiP*F2WgmOL3-vwIdPE1SG1ilU!a(g9s^ zB*L5&2JpOon^g?B%G|76^+&F%;GrN_YYQM(1-Obs(83*LXi`%kY^J45t+e2_8_Z5T~!ITfv)1mZb-(%Va+Z9LW%y{B3-yy zAXi&UL9VjRsOX|+8-u9~$Z%+*~hgtfY(VXf{ctkrLL ztX1hGyn~ymfX`?0^c>t=J9pX4QTJ&0s$3g<)ovlJ(qJM9h{iap1Vp&d*~54)U{*uk zhcJ@m=M5~u^7Dv{M=Dq)8V*bR5PwE!+~F`r+ZR|N;9A061zovPxXDSpRb&p*AJ9s} zTO|gx9eAsLXn|WrS=i9xfHSm;sM+*HURc0dePEE1>HIiYt0b508x}X+!ab;I17WqJ z6vFCq=E3V6wrrWsK@=e(Kht9~QedqrMhe#II;CPbp9NqQSsVaXf5C+TSZ!Z6z^dHz zXnzJv6;UIARTG&Z{~arfE|z0tI#S#r8Gy;l6pJKHmAW) zcL@8ro!zZTd{tIEOqT>$HRKFjUcS{a5K(d6OoD(toWw&{27kv2LI-xbGbvdHQv!4z zG~*fE$##U11y)ROY_VC^#APh4eiZ1ej;zhw6fE;|HSU=KCZ&0J=-r; ze(OF!T8ImR)J9*5mn+A3ZersEBAEWqC|g1Q5ww)9z`%RGTIFLvTz5tg*OO%Gkt-{O z$%=79u60L)cro|g@UF2C?c%JHvss$YIBiCv#;=?7EY}K9FQNJ^wGrd%c~8?+_!wjW z)>%%tC8HGcWL-uWtg5czPT8lXK47p04UebCBDcjV7r4Tm*w1VtkHMNo9sKMVtPIlU z2tC(%&4=KL!aJ}a8Zpv*hJo&ui@{16hN^1W{6vLlfL?8;dL$3Mis;7T1bP*=4$!N0 zf?LIs5%g+@h%Geg)u^Q*2N&j9(o;~Q&OI%ddr6+-sG)+50b#8{o*}6WgcbI2@Jb$p zwO;3du<9!AoSxm`BCywSiwzP4B-VM$L1Lw(uMmk9<+lnEBd*98J(g8A%Ro>UvOYwF zh79&3H2#V}u_}ZK0xQ`22`E-YCl4lHpM+xNS38`CV!djiG1gFbZ#F=&UL`<+gBNSm z$nk-~D(wN_Dy%Q?RnnDB*=yM<2Ks7p&TC4K#57{wh z$g70Z- zWh-OhJN!Gu#cV?XWm#U(-~4;VNHxipNdl17l!n1A)oHHqJ}J{Jo+{;#PFbwcLJGc1 zBvN~Iag0&lv14rUFc!K8u%_QWUUWt%t>4!2+0b3xD5$0&pgF3{klO^DmF*z2(T+WF z&8XT>R~ZJ3R+fUI`Muq7J&2gY{`&)eMO40-!XPU5*Dh7Lp8{wtJ1@%uX#H~L1$0); z%PapK^8#Qi9J0)LN#V8@1=?V^lDMtroPJ5Tt;+DFa9gQ(ln2wRC0XbRVk>%zb$(6{ z7?`EBeH5A{_ULAONZS7 zu^JI}N)wwgM!T2Dt$3(bypAT@u>T?-5WDS)AzR~XZiG*wC?bfhhiWgNvP@U62K>vn zQ^A4%9n98}Q))J_tV_!#eGa=MWJAl^B?^qO6R*Nzgd3K{Y$fkaIt}1d%hZ6`ifQks zcdMf5wRpYe4?89~f!LrIFo6Tvp;Q8q)nX+WkSRn~m0?}iR0lX~x1Y5u25SaORQX2W ztZT+GjG{4>ZYYY*%U)AfFdqQ3L{EwL{zR6X_|OLxVsKVqSye#S;S1=BFgJxdkd<#}KC|KxO47V^r4KJSuCwvVxTHRI6kGY*zLxFXgi2!Oq(UrK&w6 zb=oMRy(8Njq9LsiXOnJW9}F&2l+F6FcbQPhiENfHp2t30$KBhD9T3@#1~FgQh8CiL z1q?To9eLn}vgzcJA+}qLv$llO%RH@tYda*=PyrYUl*Y6K3*9QX@_>cn40`XtyYj&TVX>c91HzerLh;{W zU4TNHOTSHg6pcyEWvfvvW-$5ey5XnOLdFO z^;g?9g3l3WWjhqEpz;EZY~Kiwp!g_2;>uqwKm?8aRiJUPBt0~)nI4#~82T^DUp=*~ zzlyPfzgm~@SFvz|nF35)!bv?)JGHQ5iJ!?!RmmNW;d{c=4PGj%{WYPfX1`SiO0-@` zqFb4p`2%w^xAg&c@(C$7Q!XrS=5hTD$T#U`7HqO=v{VAyfD#E!fIFDN!z$54*x3dp zn%)ln{~k*8%_e*{F{zgF9rz;#C3-*+lqjY&ALLxKYRQ)YCE8#~OrS*dkmg^=0>5n}N{&neFj`6iHb1HO7?x-JGCyNl90$_S6ZSF>`Fxwux){^MEM{nmr4;T@=mLshL{(l_qrj` z_G@q}xqM+ydSF6aFR*LSD(i~SDv_hhiq9jKSuEtO&4c9rqmX0kCmW(UZt} zBDmGr{cyro5Y;lD;tQf6O7WR_TsFlgLzyx#165XNQ@hfZVJ5dC5(2s<7)Qc-X><3H zWW!*+dYBbblgW zgH-ykASvd4jc4ShGh{Z=?0;QHQ zG9o+y`>rYWZDozpHaD*w*lQoJXRDZ~gue&Ur;B#GM^Ut;N}&lziuEdW1o4kj4foc* zlzwn4)YscqH~$J%{~iW`4rnhFyiy}BVCjKETkCpPkM`wN zd2l~JU2MG6bg|+Q{HVi{^2TNiP(RyhMuJ7f0|x51j+ZE9K>aS}M)+xFW0g*KTZ8Jf zZW>-oOQrJemf;{Gz6DL7OC_KV9@3~>(vU}@5BM69B*iT%3N$G927g(#ggN0nl0j>h z5TS(5^r+NXtm0bzz7AeLCzL^ZH^J}cgmT$ts|Mz^YLZj1nio^D-LVt^OF&NLtu5t? zqF@7w^z&;l!_THx2oOS*8JyjqYE1wM3I6M>i^A+@hL0BP!PyNBJ;(udWvHSu#DFt- zrJpl*v6g7|wBREu<_ti_2z{j9u-S@q7qnq5UzD4}Oh;S!0yr=MOw~wzUn5c=YeVL@ z*-#A)QiS#AB`!rA9}YKv#l0}aBLGF%hNr29>QJ7>>RCyQB1lpBmdKO^h8#M5sKA_@ z1K`j+lo9}k{7w?!kX*oeNWFft?TP^or9-g1C`craqLpX>hj~CKBK%B&0{nDr=_jwL z+C9~vfDU)W-43r`KFndfe>h+Q)P-1tabX!?jr|Qy1MTy)@ugKveh#cdRwq2B{2puE zbC~Qq83}?pB*1mZbRO^{u-t}{o$T^wx#`|*_Zqv&Do*Jo%0yPX&4 zdqQ1B`rd?UIep(TK`u?T3?{L2G6|drlbC40 zT+OQmhU5LA%nta8DvYXJQT)WBKug)-Sn=gr5ikj7TW--M5DtT2=VSal#(M9s*0#(ch8!%Ms z6;@nNS!>ojFIUn8nk+7yK^4^J z9ioUo79-ij%M2)rA`&{V1wzE8z=dH@?(D0QhCIF^E?MzOE>!cpuZrYjl6Ry5l^H* zMVVf<$~H&FP(C9WvmCD6&D$R6|H$7)Lcy((%pai-RO1KltQhoST_NJ$oN(Td-oaC;Q{Y{+`#!5Crf<0$P+!7%br7wMJlhQIhDD+Ubs zi|dA}BY+nh16(3IF8(1K)GuRSlq6h6T*1MOT>Dy&0ZPgktD4QE3Kl(9Wmmsq8us=5 zgX;hsw6ZYyFF{=TsxT~y7Qei-9KAUAW{CwLvb$&|Fi5tLa5WBQ52NL~h_c1`t|NKF z2;aSQnxdrze16nG0#qe7ZbTr1+MaJ9gOnMOAnhzb7lg-PQn}*%k5)G=%y`5jW*sIb zknehPJ3*wewt0XSedI3_i`%Qf9SV^L411Z)rC3*PPoWFs6Z+l*!j(`EiC4j#Fc=Pc zZ5o^HY2|=TiZKOMOE$^C1Uqu;30P3Lf*mxFq1-&cg3OD~FcFW7V8OBQSR^N~OQ~Pg znc_C#FWFB!S6G_-Y zr0ho%O_XrrMs5WDfC6|nHRMwc<(wk6b-_5WNZo`)%9ql}k|>pX2%5E6h81u9QDEWoiJmz0bL(4--E)y*eS$g;WRH~w*ujwJ9eJJPb1Jh}YmUn(6uRd4>wkjd7QYd*v zC46fo<&`ZZMSWOFARO6Ss4O^-1!D04tRo+BQjE4shBM7cE4QsAd{dSZ2^Ral>_@x6&x_VkNGBthqp zqWP_ZtdSUdj$E~uGGP;?)+_UD-cLc)FklG!A}5=s06_<%-Zu%`=E{`B~>$&bX^{dZtEHW(NT_c%}Ra?>fMv-dOpdq7{BnIZ&6h zoiK^bftS&Qij0s$%`stTQiL4JbP_)@p$jA(QWr=%maZ4?<=G`+39kh|_qW`DvH%5F z{<^MATo*h#y~7+lI+zg|`}y$b%I=p8LX){mZj49=qe|k@*BPq__M_M!cLj@~HL@-*|2Wxx# zz=EXWsbCfW{Xv}|52Ao>Trr5bljMDMKuRH$rHhMgghZG$ybZ>}q{K9%FewSFxbmT| zy;Kz)rX;39q>L!~|C2#h`q0d4NkWxh;CdVIblpQ-+GoMgO2_L+z@3Ofp{#%q3YFi_ zAP@@0gubB3N(1%ODD7kq4dou*a+*YfH?bskrM|!Q1d^Jhg zT7z4Fw$Mz8EisJ`8B!_+6(Iy_3t{kdG$3ea-h061=J48hze$7OQ^kr%F?!oz0FVp?+W&o z7v8X(83H0Kf^fuDI&O7M5TOKN05&r**{ufKBZB>>*qvejQ8B7zkjMVBl~M@Y_}Lc< zYuF=_)@y#i?I=AzZMh_XBYbA_WN(rg{!N(5>a?p((7mT>IbenSyBm?{WOVS7gX)$)fDZCGMZ0iZ zKZre3klRt|O|##4kFvq&Ycrz{+fmj%@(#n%>&&&~Lc|cls^pN)tV1^vR05J%4a?Cy zNA!YEDEiL7uTc&NPQa3CRk>kDE}c{7VI!Xm{MMHkR{8DKNA8d24Q4FK?K5RVd(N8jPjL2I zd*@A*{^U8WU*$ac9avC;W2^;^5lkV$G4jnkAS2hhaX!|L9KU;dqFzC|=@2tMw!k(R z2NcGONE;*AA6pPm7?(J!VQI$j=zJHSpI}u-xhKP6i09NP>kB2G=(|DwTH|8 z%tH*werqtF>jv}Si^O$Ed$JvBzV3n(Y*H*h55w5tVHg<+BI_YEvZVB@td|S9Xw#mA zTuj4mmYebbxo8gcNeftI$>46J;Qu=y7enp~@I;mquige9q7ZVC3SVk^ z02X0$1UvwX1d%P_ULIhvReo*^u&8ib0{II;sN}d_iiw^CXi?dH0WDe<=Su`y+*Oi4 z1+-}T0H8$``~{#z+fv02!()gMt7P{8qEkF0YA1!Y=)>bGv+{4_K?-}UMZ~k9`9d0V zwB!>jO3|MD4(apzMVk^no}r4QomnR;0FTm%YRK*479M6d4HI1wgRuyB5+;l=7^wq} z?mNa{Y_$l3;2Wh;LRyRn9!{9~eTd9woV|J&xnuXs9gr<+^;`UWZgxX;>NMYQL@1MC z$M^aDLiqrXgYdP-p;O`G$lD%?(iJc}?}=jgUgTv)r)r?rz=W=mX9H9tt-9R$ExAqQ zdgrv!X=S8uMv5x=G96F=EXV^` z2w6o0*;R5=}vs3lX!D zncMOr8}^UNS*gIWyS42dp1*h;p6jIH+3BS+^Z)&jir-+L--4dj)sh246YjU)iftJmJKrlK(Q=MJeN*JVho4@-=w=Y56`%#g4_ zDq>6sc&IJ`JcMhR2Od({-s%2b$lnQ&Lu~)VD8(ccw*ol?8$PeMGpO=kF9wsfM+dzg zQ}Ky+F`pIFpau^hE2>I1;iZ3yUBLIOLwXbz-+^mL^3Ge($5XfyRdNCg4ekIC;Jp1{ zbc|%pFCljy=_A-RyDLD43L!rSy6ef4FwP-RD3L>v5*D%o>fCq;sC&BVbSYgLA+olj zxK~Et#GW*^jYb{JUUe`*=drqVK5OqM2X}8OA-Vi(BN*Zn##VLtSLqBc)WVwP-A7=x z^mc0jFk;Tt_Jtijky+ckNHEjA-2qv-_I=oj#mh5l-2sbaEgz6otE#QU)s^4)g}?f` zC9i&XmLBgd^jAMJdG&XMvE`2B>hIv@mbiMWzWmI>>^P~1QQTfF^d3Pa(8OB*(fhA6cXY(Ajo?&ax-s6 zA};m*LWEv^(irs+Zt|1nt5>Ng91QN&UmJ-kp1oKJxo0wUv})x>{UcLXwT33XU6anS zv&Rm+wt$-P?7Aq1-Ptv^W*y%j%znF!DzAv5?4U2ohlbwE-3Al_z27`=7n>_cA_;$|ywn7_>?pQ=|X4O7! zuv~Z0$`lH6=VW1|rx(J+C1&HdnvKU7W+#2o*=Y8&(P3j>I2*M_DV`00IWg)biITN` z-}B2z-rL;KMBmMhJB#tKWuy_+j4)x$2!>p#8PQ08!KpxgNsh>1=++#l{41J+`6cFH zNrmR%(~Rce=0#YNRg;-tWfwaaVP!H2zt<%Ebs@^L#3Zz75+3=_SQ5*gfaH=`{sgR3 zdM&iA$Xc)oU@b5S%UKH=U`kZ9Xs%nt{<5lluuB5>U!sA3xD5ASse!-uOW^(>i_+ZR zP?G!Eyd#%3A&b7;f#0C?z^{-HTF$^X<`;kl{+U&v5vryA01o;iEdrQ5WIsmOOuMfQZS7b3CM@S4hK3^gY zZds#P+O zD`3m7bO3S)i~*_a!-{9&Db2#UWoDsEvv9`3?DzsJXa#1WtSjubFYk0AI4)QC+zRh} zJ+;WY!VmQFu5dZ$%L*$Bivkld4DWnBI1lIR!bNhv{!&p#i?_7l*;Le3QP%LgMIZ$2 zpx5`6@Pn_bP-#AiO7ny7B$R`t*2`V5cP(A8ND*|rsNe^CIdmQYj9wy_@Pp3=2*N#6 zp*)>C#1H;^i-^6;_CI%#_k5q%;GbS*@L$p3pZFyVe!}zp{DZ%2`~R~J{)R>Ne;E8= z|F78KO9?#5>?F(}#vMeDieLs6&cadN5qQ&;R%@Y#Rs)SXTN9-IQ?a3c-4MU6xWhE?@Bdo{e)O^j z{>L!aYK*q<-XmD9_^w1WENeTBirlV<`YZyTG~YK%H^uX zd9-f{-=f9m(w>+XFt(0d)Rj-ADgIc?^G7HA!H$E7KbXF<{Lv-;cyp2G zk7KObQvA`K(L3|RAMnO5VhlkXDjAw*jAJX5d|eh}oEJ03ld_~gFJlP5Z^aqI-W0;j zr5Hnd$4kD=g|fN?aI#OhVmgJFy3kqy{@5et5BWU2A+w%rUaL3-qrJj%f~Npy^b+MT z9GAr@FNsr5{)$sRy9oL3=ae%%r<@F@ybPysTo$LiEKXtPF>(J`ru69VIv1)IJCevP z(Zb_pQM^U~iL43>U)o?I*_}J9LFElsf{f_p@;ZfbS@jJpKV>ugdjwDmqrH6QWvvPM zOs5FfJQB|oIP100$ar&6_ZTv=(&5c{v5jqz)Y@d?Ww<2N+MEenV#u|#^ir=6t6x^KxERlRyJM=>(=TEf`qz$k6Y8y)s~ z)YvE;;f+#3>%6g0JAup^CHxgx8>)7wx?9$$>aws#>o6A@WN}|1Y zN?v%26xi9k;ekb3+VH5&Tcq5M#GZSHnxIOz8|oL6ls(zI5$Tf@1mk&tfpt;!YA=3} z0F3R@Wy?P*NE^KT!^ls|zw-EN5`tYImLkqx;&qn1xy&8i2dOx!vMa9rQlr}dPB)}?Lq*kL^ zpvApCpn+B=$5xJw;ghO{sLObDu}fJ^ntNwJ_D`6%60i@=$=3Bf8Bj^pG-;8{}ce3#X9}5@UA@28U^+T|~J%F4!_smY?w+FP*>fi_@Im&=W zy*^^1eT#b6Kw>uWW4ITvyu&@SD~Q+Qx=Zx(NM`V;SuJcqdV4@OtvbD1bU-(|D>f0+ zvCTq*5|qsyfYV#KGP`1UQ=jRR^;O>2vH*MUO`e{HUQ1fm4R}+_@Yn@x`}0cUv~NgZU7>RrjDKnXcM8u`lbMYNAaUy%J$h2Yzy=JeWw=Akt~XL zz@;?fh~;@+SWT?+u^~~8QYCRrnsm^JS1NU^UaIJMwT7vZ^v|(VyiUJWdY!Up>ECQCRS11q-o9I6 zsdj6Dx(&?tI#vtxpS&8IM!^Cdmh#j8sReq>R}1v31!{`&s|9-0tbg+Y-Ov{3F}Cq-d;+uO+b|6d%=aQX7+M zhb>P*?Q}(Irv>e@-3qB4^NMBtbrfy^kbB&PYm8_lj#{)602{(Ij=gfDz%w3=KsDyw zRU%eqFA8IBByQWFnW+TO(AxvrC3s_vGcoFvHw$Bp!+xEhjp9pDDw)tcqzK;`5JIOY zg+By6a$|uWIXrIo(iI0Mb--d~gS`HJxEhawlKbwhTIjk43d{H^fiugAQ z;?KjxX+eDdm&LzNiNzD>&2c~5Vp=0x_^P7I6ExrGv4cWHQC$(Wa!eEMUUhq@3 z>kt8W{BU5DfL7uKL;U*j!`o>pq{be{-}X_U0sj`X5Z>FHGl(SO76!k_4droKx8@2@ zfcXHC*Zc6L&D^O?>EmuOumi-62>g{VE32lIj2r4>+iQHNgW}*@>IGhcdR?;^_sLT<5qtM`?$M|R0blY3-zypKp^r(R4 z#9OBQV;gR(UWw((7^r|*9&(IFP`B9 zOZVIYfz;Uo(n9@W>&N3WmR>*ZSpig?#iC~+@rvfpw2-?0acb6fvuy%O0T02w2ls4prVrhJ-w4$M-(Q77s~lP_2uL+x&gq3 zFp!b-$&1($(ueD!#yYEPFPqn6hNUd1zmj?^;G|k5RFNX%)xyz2q|wZRY}A6>))pkm zt3u88TzSnV81Mf#iVb{@5@N}uI91&Voh79NE`1Yf6s^9%D|<5lR#+Pebf!QXMfOId zjr7j?rJ#zVdBJOnwUOPR%A=1T-d3QKgg^O2V@IJrZnwq7y9Uw6fe$b;_LdgrQNUqA z7lFt99eLQybXjd=$gZZ0^xjpJkpjn3Mz8oq#L@syW3Kzq7SW-l7tzOBL{zLV63?K-aauWl+HHX~e2%#lFBC@rXWpZ3JsXub4DceP#pe4eQRV z4;ftHJ>%Z6suSG|EdMoL0?F6dd*F>knHC_U*vsgi&Y(LzGDl(FYz-nu&ql`QS?A4WEDO)o=UA*|Yj<7` z<$!LQ-%UsDEp_kpp!q8< zz}PhNI_3gK)668e{J8}}9PwO%g8VP!iZ?u0Fwe#npT=C#T$(FB6;~X%Ap6}fQ8w__ zv(F+Mc*T5?Y`}SJ>}K>?(+CXY#R^LZ<#xYJ36bCpfsw2LZ%{^BT4JDx+k<6XC0vg$ zCO9NXsS2dLAb_4as%5D4W!?NrHbZWA-qe)+TIvfI=nGFoU-)gwFC=`a z`!amtip45bi)}y(qSs+-Hm<8wF99cY?GZT_-@wa^x~n z2>>kjz%DX~nB9sH0)WdB>`Q=%Q5D38gS)7kxps#9$O8N$cjw+*yS-l<726*yU~{cI z!uk5`_ds~nSsRuBI7s0?J?zA2`34 z-YeXjGG5d>@f>ZhL!S#P35XT1(F-yqp~4%~yb_hX6j<;DRQy)NS(=FTXzzbFs0)Ib z^WaEUF34R0juacPeAvrfwR&7i`N=e+DmfCW1d4UD$OBdCeNBNam@I+vt~{j(=czp{ibl7yYGy-<7SST zK4q`*^XHG*Yu=RU6UH`GLMge}fIi?6XN`%)GgC)NRc4>HEysXp_yX zJ%0K)uCd8xqco2E}`oH%D(n$kFTOyj<@C(d1gj_F?+H+|BqIa3-Z&&VwI`4iVqUupd0IkRTY zO4H{xPMJQXvBU$8pFD2P_*paeS^h8EsE(aIXV%n-;~S&dm^)|un7NH}n5NO=XV1=z z9qUgra~mg2nAk9Sa%SB0>9fXb1Pj|^8|RE;#2|(4<7ds7J!j(Fxf3Uhojq=f`uY#X z?lWa#Q>JOoxY=Vh6VRgx$zNjjELdUUoIFAE5Y949d^Wa`@7d(obtgdDXdeHY$!Yxf z)2Gbfjxsa(xv^s>&Y3el(=cV`gs~H6PN0|gX}M26bKdmnvm58|^%;B3Z5-FgJ@D1S z_IN)kHcA?vu`|ZaA3JXPlu0wKD~~*HeB;<1cmDnkd@&sKohh^UO2h0~b3-=>x^+H* z*)`N0Ao#{c4bx|h(=Uh9z2;72h9`T19zA+;KBuW}qE4SUZf^J%r}UmNu2EkaucMue zXDT&i{I2GkFWR(E&Ppa4_QdgAMonF9+;qlx zoThfX=150tWX3o7qd!3Rjg6W#XX<7RsQz?pG;rc2KAtf}H^d0@f1ApNDRbsFj-4f@ zn&IfTE9NI%U4h!w!99ItQRXMH}+F#>1BD6xA?5IIbVs8*<{ zeLI|gm*ckl+b*2%z;Q?ZeJ`Bv%&{)Czt8ap{QF@z|1rm(@Nd^}z8lB?;or}~c|FHp zg!ZpE?jG8Ea2y-j<2ddW+7mcV4DCrACx`Y_j?+SW2FIEFn-$LY<~WCcbHn*Oj{Ai6 ze2)9_Z@+N9faAi@Ud-`;&~D~<5dRJi=ZA7UEVPf{_?yr^isR9teJsb8&_15y388%w z$CE?*RF0?d@APnfCdae**BZ{x;dpLnpU?4v(Ec6A-}CRnaQ+957lro494`s&%Q#*h z+E;SCDzvZRcrE{~3+L?||H!`^!ud@cZw~ESIo=l9w{!e+Xy3`PBed`4cu#2G$MOEq zevsos{ChZ@Kg#j3&|b>%FQNT7$0zvrw{ZR>$EQO38IJ!5?Jkbbh4u>^UkvS+IljWb zSHt=19N!4-e{$>&?YB9;6WZ@_e4l?Gg!7L$ejM7La{O0lS5#y&S^n`~rU(Dag?3Ml zRiWLRW1rBj=GZT^2XGu1+JiU_4(*{FhlTcVjw^@usvK7f?XPhh5!xd;jtcFyIIhjV zb;9|29M=!+4LNQU+G99w9NL?5{Ca3_&T)&--iqTl`1j3lUd!=Yq5W-+-wEw)Ic^u) zJ8;}Fw0GjTb7=3v@%y3uLykY<-;cxjZXExIe?JT7zvTEU{_P&lujkkv+Ba~#F|=>y zcuQz^gyY@e_yotl@o!mwox4hA|5H<$`1`|How@`qI&miDqqF?cnbgmptJO!sqy&9r zrRY8Nzto>It&t=*ai0~Ld*Y|54j=C(0hj5W>>SQqrcW7q^zHn|k4yNOX3Epl>LsC@ z>8Jmt{#-^HEdA$9qb2DB?D_+fM9%h*aL?4F=pwkxpcH*}PNX3zx(F^aG)3QjhDa-= z=pwkx@D#nr6p>a*(M52XRa5k)nIf&8qKn`%UrW(1`=v;0r062J%*Yh|X5*7JQ*_^d ztupj=QuJ}ghiUrH?0(iw_4n78<&gY)ra|W$B#Gh7Wn^8X|D0JHN&1LJosUiuIlHZ1 zq%kSF2rjd68TzIv`aiYFme-T_}vlM;DJw@6gMHj(kWFaO0p4&_3-$)X} znag}LMgPF$Ol^uTg3HL#O8+^typr_Fy>z0YEg>r`!7z>t8KmxOwoP+ z<}&nyQ}m~7O49US+WjAr>hG_AXc_tuDf-nm??6db*|(8|9$e7FnfF^jpt;ca=kz3z zv#V?=o{^%9;4){Hp|_^!f3~HSrY|!7IXl%~1eZA{ML&IakB`|JN9MXxnc-j<^K{uig{5ByZ5OH*_aT;{SAeNRM> z<~>@ey+V(>a%xMw%JT$!TZRUy*VDY^(Qb4`l=Dxy%o8%eUNf*#JI9t8xN+nMOR zE=lC?GPkDaAKQBQ zQ;P2U-=3oHn-%Gf6kPR_04a(E7e~Fm$^GdUu@%iZ;I~w-WM}FcbUhFDE`!0G%fkj&y5fNmLzhvZ4Z(Do}!E3 zGEb)H({>Z-=@eZAmw6^d|E1}#XH#_Fzbi#w-LC(9ithWrkfQHr1N~Bp?)$%7hW=`b zeuJ54X}XtNuci9?>%X3&Uu*aOW{U3n|1(A3z)aq^Qgq+{?G*iH>;G8W`=;pXS0@K@Bv*CnERvq=zr86mMc9*n zi+`%~byIXvT}F}kb>P0*)MIT~va&(IB`zxZK{2OHBut|#U`zz|7{9DWP z$Yv?J?;mNM{CCbXJAcbE{gpjP{}BgE(YH6flcrBM`(*1>e_hpOYE$%!?0L6I(S3hq zERuganSK7<6y5h%RwMa$sOiD&Q*_^7nUCb3AF=PH=)S+QBgwy4?SAS~bl+bYl;qz) z8=oJf=)S+QEa^YuR4Mw4jp~=Ci|R5zN%e1?qECLBqWk{J=A{3eWp|SF8%@6`>y!R- znV+ZVzcl~r7b&{F?J~+5rT?5|k&^V`#&5fq>Ay#c{t)Y3cGuzIG6TYK+KESY&^UdE((|!MOss3Ap`-wd1=ze_v@u~i`cKtNn_n(mJ z@97OG`c?dHCX=T7{*zMuJ$*`wKHRR8ru+U=Q~e);Pc;73>cF3w@f=9*Jbjv`i|R5nQvDn0uj@x1-avH>f5h=p{qMGQl&0$|E;BpT|9$vS*B=zF z89mn@xsK?OCzSl%IjQSxYrmVO``?|L>i_j{{U^fjCa*s))&Fc;r)j#s{ywSx8-?c@ z9 z`fFYyi!6FB-+xi6|FL%cG~M_2R+-w--vQzJ%KhsvdHn-Z*I(DJpQh`(F4LUq@977p z=;zpaOw)b;LsI>Rhx=STe3HD+!&3cocKtNnU;pq_{|@?VoJXhwf6=-)F3=+jE@`Lz zCUu=3*m_UXbxoH!GS&axAWu{yp}*wyk52Xfy{)@6UEg(?V^aN(wd>y()7MqU@aHlu zF+HM9w*L3W^mC#QIJ(U7F};8c{lqf#lgrRgEki%O4E@Y9^wu);bIQ=qD?`7a4E=X0 z`bL2t)(!(;=3m^tFxCHBlP77qzTz@VQvE&sq7?lvw(in&-@h%@|CFFd)>8-m%#8F+ ze)p18|2^#bY5LcVpMPD!;z<3u%%v&nHsNVOOc-=y^Lc`t{d? zzWY`n^p8H^=rVswUFT<}$J2Cu%@x?I(Pgd-`g)^4NRHC&#qDU$svM`ZHzb_o-FYe^7j#m4YG}v%P+Ix0ny3-|f4L z`bSncar~VB>XzGy&c(vtt>L(LnR&VE2kOtwhQH`K&#o@|$cUVo7OsC;nfw2Cjry+@ z_y0z?kz-2YqfhyKngGyWHsnfEnp+&1=K=KsG52J4~U)Acut z>D!56`MY8r(YN#`{C~YL&U;nvM%S{w8|%`*Hv00-xNziTeLIrf(SNmu_8}KkqCL$zVF2UyTf&6z_KF?>QBBG=tIk_mu<_)&nwr|br#3hZwb%47OXHb(;U;k z7VhWcGV5sKMEYlsi2H9ET6fxg9vaiv&G}|~8M(T2Tm9})asTZ?|K7&u$Hw%C&nIlJ z{>R7kGec{@2+>c9=|_Zl?_Fkme!qtLN6{;4@k9S#)`=cnHIsQMtc$mI5dEC^`caRW zBSk+yrvE97=dL@6{=1m|ufD!{)OSSxLrm`*#(C3GqF)@-&j{Dq7kxLfpl;!;a6c2_ zqmc!51*?U1H?7RP|72q6^;pgIMrN;!e>c)QEzH-*Y~IeC9(q)847U(}M~xS)|E)1C zy3VF6>pt6K`q|+=#|{(yrkLJ8jKh^S{;)AtMg2d$;+E zQsx;uC%(>2f&Odbt9)KB;;Xl8+%}E--xHpz#n$`gF@2}-Tz?s%>u(j)PY?8ScNV=i zrjH2xR%7Fw&zCIynv>=Iw+yfAK? z+x`47ravBj_veFjeI_UTMRMTWiKW-?4Vct51$nD)hVR|UbxO(4AMeQZvw1)LuF(I4 zGV^#*P3h|_VO&dH|M@b%`wX3H3i4dheV%UjlaB*L_mgWVef>Ae+)r=py_(D(@pwjZ z^5bcxud_=TdH%f#rTc$vOI?3leEnI054SAS|I)40e?r`UozVaG%|xFR({~H>7wr1^ ze9-^L-d#ZJQDpny$0axnt|1WIA;18^g1ft0@WI{P86>#7yF+kycb7qf3^MrJ`<$-H zhdS)FChO1Knfu;6Yvtz7H$Qgm+Eulyy1Tl1&zAR0?Ef@d*xCA@cFt?{V<-BBnt+eV zbD3iQ$V9(duh0*Co>J`Zk?41wJM;sekL=s}vw5OFYL3wF_D}yWYW1rn`t4^3{ht5S z&(P}U+~oJ$tNV1J-{+tD6_DA8X&efV?4Km9qX)vuN4kMHRJNB>iQeVh00Sn&7bGjT`%8F(N5xmJHlqCcwn z_c6H-U-Vmd*g4^!<$g0vXF_>v=Fktk4`29v9d-uZhcA4K4*v(k2i~9mrsaJ){2X|He)eX)6~CK0{5l8!3W+y@7?n8I_wX;zx_(%NBqW3?2ppa@AuY? zJ9gL~cwhRF*3JVR_6Ociez)c4G8Iltclb_gYVp&roxfFE z9>X?9Q{n5hJoIP4_d*||tmvVB zxOR4iTkctK<8UKf{l{?iqYO9DANlkNUka}MzHsdvp784u{vuraZ?wG5OaDNB9^-MS zcD@RI%+6(;PTTTm9{pSpZn>MnZO6S5em499%Do}sFTi89Q2hK3ZhsiBoq)oB{h2l4 z>%jGA%Y+{ZH$GP-{Dp*n3^$$=HrK!L3;(U}9B}KqIb8kTaP{ZF)!zVD|2W)uzLD@z z+xr3Gzwzvz@ZNCautdx2{=6poi|7wK!S(Ybcp+L;lq zouw1LIb8eu!?k}Q-1fQ+ZhPI=@_N1Taiaebu0K7R`&6aA=HVsbmb(Sqc02`ce6EJ8 ze;clT*mhlC=cTdX+F1myox|Y9^Gvw)x*e|lcj4Oq0j_?WQ3uA;IM1B$wcxSKsPx;- z6Mi_{dYuioUXQ}nzYSMk9y!-}b)4qDS?MR%YXP|aFPrc!;l}gmgkJ-<+^697+b`kT z|5JOhR`;tZ;I`uuaLX;vW5bT)_k8r0`vKhe{{%Pwm_`@^m86L9tK!PO7fJSU1@?a!oe z^~=GvzbRb(0dV7Xe8TU5+fSZK_>XYoHf99At(X0FdAR;>0@weY;QD_|!f%D^|I-Qo z1g`(1HqYaV|MKbK`m+?={J9leJI5vbT)1(&7jC(4!0rFPz%6%@=6T=m)oXUR_7{h1 zf7O;p_`E-J5PIA96u9ksJ=}7ig2z3RGLOI5@+jBquOHyvUmB^s1s3Bg?sgVCem9KYa>i*?|ZyL-aRlZCKj z|A}k!_|@e;3b)*!;M$pp`&8De>_-Uu`ngV`|0`VmjR}7~;a|h`XN=@N)vO6$E8+XX zwSP>@>v3^Ddhdr^iQe(}0(#@{8QgM*jsQ2mx*aD-_#$wxm)A=8fpGmf4X!^=!p&pe zf3yGmfZqP!d{^;z>oq@I|5r@7_v`fkRP^!(68-|*`i{o^F6%or-1@EzSHA^Z{i$&E zSHsmm2UkA;u6{V~YZ?D>67GFDp?6(z5PIj|6VSUJ=-Dx-~8e){TTbyDy^IGgWDC^`^6TUlK`zOGS&vkJ9e+X`W{swM;o|ySd{XB5> ztHbqkd$@jH4>t}k!L{=PTsu9OcdYLMaQ*KK*Z)J{+BqMtoqOQgc?YilKf(2Xw03@} z`-#u9jL+K4NA}yl!1e!FxOOgs>*qrW|3|{hKKJPV-k)5M`AGX4Bz#Y}@j12S_564t zdgsS0(7Vp>-uM^4I?fAr;*NacJh*tv>vFe8Z@mtO>;Elq^-sgq{|r~}d?zpaUL*eY z&kdP(T(@}LYCnnpHhy&;yEEa>!oALVrR5Pf<@NB?Jo>;Ecn!0bD!7G4ABvAJfmd&^u07gsa~;;X~5TEq8pl^;!t7KHDd@W2>+G;Xc?g-yVV9 ze0vUh<9RLI`aTOcKIMI;dR`cdajpF+;M!jRuKiWv+Sv@Q9q*56=R)+x`5w4-UP}1) zaP#W$tdr%Vw!F>*6QDOAmVK#p`}Rg}p6t<%-&#KhHKm6c3c-_>$>OBJAZu)cYgd4Zn@>n)|kdDcX8HH+SwfLx@8Zz`Xk|%8*AzK)#ZKy zw_d}rzLIyIf7@wCf0jw~TP6H>xOQ%VdmZ#F-1>eC*UwQ{FKK_ame=$3lIXn;vl(3b z`@yw;3S2+0f!i)G!|e~9=S6qM*>cPIG0~2kd34adI{NgY5E5r5kAh>$(qpH6S zz4f{uZrt94YkvsVQS$K)6>zwjDv|cZ@+vvL7cbcFhnw{}9&vb8j zUG75YZQm{6wy*c2jKk&VmU7ka4ySxwApP?D=`ZH?F>v2)u(2wTyIb*rsRmY(x z_Kkm!)}PvbAN(}V|EYZbM_s39`Fs=NV>|8ww;d0K+m2VmZO80-{8#k$t0~E!`m;1# z{YG&0r@+nI*TAjU3vl(H!qsQ*dG#cJ>dyu(ulw7s=*=g`!Hx5saO33Y@ShVtQkz$6JK6Ixub1_6J@T`B*MuJlx4lk; zn`cgMdHCsd@svsaDbEq2+UB2fpRlg4&ll_`XOYM3C-=gw@4E>fl5uLgyKc1Ha?*SF zZ@I1mE!X>d^7|;){_`PRz4=7_OpIUkJ~vlio)^?{-WEH?;SjiS@Ogo8xD&npyp{0r z7}xqaJ6t;}Cwxn|cKX4!lf7q}tpm$BJ<;ykDd*k=x7=j|G{5-Ecy0>+O+4Yo^9i_i zzJOb9=l89;u1jZR{Hk9QZoLjj__=WH+zHpt+X?T+^K12U!?nLa%cI}A&&U02-UnV6 zy?JR*>|5^faLX;{KSj80ue;F8KY@E+^!tQQ%yV%4StQ}B!1Z%)xbu5Ixc%o&xcWEY z>PO*uxB6_~+WhE^&$0>M6>i*4O!&2M<8VjI>wfYCde_w-!S!=!o~K{j(86;{`8Xp@H^q7ChvRB4A=e= zaNFJYPi@B|(aTSV+m3g^E%z0;{q}pf_Q&TvQ2ESo?Jo+~{!Vb)M%8Ls`s;M!lY<@G$WE_&yYUC=x34n}YOZ(o1xlK-da7)71q$oxNZ%WHpD zKySS~cgy^F272RmXTty8`>c8;`Ft_B_1XFs6Z_{@F6utI;hHJmfJ9WEE zPX4!_Ow;nvn{Ov-;~(7qGbin0f9Q?g^}y!nZQuRij?>HG>hFWA{}8Tzc;X|U3U1t% zha3OR;Ku(zxb`Df@r$&spAW#*|1IGiFaEZ6oFBU-?KKtctDo+#v%c%1x4!$q^)oxq z?K1S*e+sVs>^}d`=(Xd%Tio+gqxq+*UG!(=V=@N;urs!<8hV_+PSaZ@wj5kL$9B^!_Cj$-?l&WM=$q1 zGUMYq-*QKw|6A@naP5~br-c9V?a({!PK2wEYo+*w9rcgF_5XFa{(Fw1{`(%8cIKm> zTdw2L{w$V+Sh6FUUHf5K57d6{gx+{w z05_fw!)?bb{|`lb8Mkramb(bta`%E;Zoh=b9?tmH{i=Mas_wU+C;H)&cAo^U|9^(- z|C(_9Fa4+X=L+=p&+Prg@6c<1RPv;D`oPt1lJGMUo;^45{Rqqb3On`(pW7PGg(5I* zI~vdJ;o3O{Zn-zYt?%P-^*_SZPsw$byboME8^G1?pYY2P{t8_C<#|e-2fjw{y5*Oa zhu-|to$D<9oC|Kb>%eWVofCc%-1+_Dgg*>74}T7~-ACnmN`IzGc=^slG_(G!ieA1C z-1zwZqr9A(9`=pf``EEw-@~m}e4izLVMo2^0I1KNr+Ch%@i_$h);D|3at(Uxbyv&l ze)u%{i<%r;o|}9M*Pl^G?5J)>eO+fR05{HSz_qhITsud>)n5u%|18}2e*!oDK4;O- zsk;rVmvLJhuAMdD`nez6e0U*TJNLmY_cOSDj>&Th`Q&iztO++hJHhqmG`RMkfotbO zxORq5o;%D6_kG(H;rf3V+;Y!@Tkdmk^&i3256$xh+wo5cFX#8ic=x&0(&**=;QDhZ zTz~F>>(3Jj{~T_)KPP-*o@>~?^TRE7UAX;uAGmhTN%%Ez+xHo`<$eKoypJ~8z;SB1 zGbMacxc1kDYySwi?R6I1_PQ0W{g+x^ujl`U-s_G5=$-dRZO_}R^Y+A?!|8R$)QNr$ z^j*YQzkACj;@>1x%UM}aJh2A)vh8_D)cHi1sQ0>6`(L5A{|}d3 z7fb_J?|Y-hZI?v(IOJ@e#QF!Rs2^rF>s5;;EfJ0h(XkpSOZ*=UBLL z_PYbt%jaCizkDYr%xPzAt{2o##`S{tCFVnKy~;lSu&+Nmp|{*);Fep?W2xK4=UUY|! zXBhY$zDUA%P54;}_kNE4yo=uWdq2nc&qm%b{+q$Ia~RxmZ-N`=C*bObB5$alGU1CP zd}Fxw_k(Ny+=M@t@NePT|GDLLUW)IXm3H^O(i^^!n+27|Z<&dfUGEsP zdw=83gue&ZpOLsu`x5H?u8Ml^tEgWSJL>m> z8|Uo4%1!8v|NRMn2X5RxYkA$@enId3rSZAHp`WwEy)Nquw|x(SYv(MucAkVAx3}Qh z8G-v7<{$U9YG(!X#%B+>{vQWde>+_LTM7RLuARBL?_vL07Oww0z||iGSAPv${o`=; z1K`Hl@2AM;Ozva&{S@zetcTvX?F=_Q*TePyF}VJ}2G`F4@czx(rrbvzlKU8U!Y7C8 z=i&+90&cnc!R?>t!nOZk!e4|NpC93tJ2v+*9AC4;EqCRF`&||7?}uLd*THSCN8!I| zFSz!HxZOwu`Bce%cpzU8r;^7>*n z^ww)#^bgSw`=YmAJEJ!a-O*d$=Ci{czuKP#(d*BK=xvvy;P&S$;r6RX6aE(5{_qXl za=kvX++Izr;urO@+%*$^6x?wXZ5qGY&V6w8pTPCM>}#s+EX;L^ey*SJUEr2`Cfstb zgB!O`;Kps3_IjjV4@|&yiuV5u*Prs9a$R5FQ&yjy$NMDqjn4qMc1DTAFdE%$u5>+>tI<2Zd3z3uXL!bj$M$MxRC2`}e;g*p9PsMXi?S`Is|_q<-y z&jZo_CeOodugBrqc@M4~ujACuz;%=Qavc}-GGF~G`>5^DWgm6K&2oJY(ed&T{%B`d zu6K;T&&`cb??k^oTz|^`=i1M6(YwC7I^mutto>KfTi+46KGOeb6P{hKZJy{4OZfG0 z{d^Q|fAD=n+vNxJ+L?^&9qshu`pAB@E_&B9JHRdXK)B@&>UqM?;E(h8+t_y%PjhS{{1a-RDR4^JCCk-&^7Kt2f}j^1_1#^_y#xL;2F@rnL6?CYoB%`t9&LvMWio{sTxe%H=&%(KS9 zbN=jm`Aga3eQe>~<>c`vy3mxgP96S(@l;Ob9?+fOcmYv*yec3y9Jy>4{<;C1w` z=$(H@O6K1&lli(k`bU~MqTF}t34atmMbls7SND_oI&qhIyid#PdToK;_?!rLJZA4f zyo%m-_d4Bn>Bc;0xjx6V+$GR!-*dm^hoX0Ug(iM6-u34Oxc>YNu0PJ#mfM^8RK6!% zfBM1IXXp8No|tw6}+W8W$9nS?)@3}zgS7N?1{s+MI=Tx}yDf`ds_HzHZ{(O%e z$NPB9Yqop2z7G4A>v=xvhX*=v|N9gWi1j zKHPQMSJ?4BNsp%g#jnl-3wPo!>#HSOUi-Nvdh2yO-2QMA-1xtc@IPul?Mke3EO)Df z9|pG{UI*7stZCy{kLxet>c>vjMRUR}cUido%5z-hJEFH;PJ!Dlcfc*z?=IQTzejJm zL$vFqx?fGsI_jY&CT0CUJ$n1|oN(_$`u!%y#ro*&|JzZn&o_H?HdmMa->2o#j@~C+ z3cdbph2A)4=hA22Df2yR`^op%H_qAh#nkjS+jkSV_V-SB)Fpm(f4omb%YpCRcd z>U$=95x91;{gXQ-`qSaYEj!29`-isU$JjBRo@1<^bJO1(FU!F7XA8LH?w;_|;Lg{V zB>d`@*LnMP^p2x@(K{Z?Imz|7{sKGy8^>36{XQK1*>;%%Zhu$}Za>fNw;ze#{&O{4 zI}gIue+su>{S4QCuj}>Sai^UP=>L{`Fx-BA23$MY_5Qo)t*`gzEq4<7oBCdG_1Saz z-4ea$m}&nm^zt|1#(CICoNfMe-8eDa_{E3 zUXMS9-u&v!Xm-Dg+_z4o_(Yv1qoYX4&N+PMX;o$Psic`v?>|1in* zd-k2*#nGG3eJ@_V7kbB?=L}n~^U+(cN8slF_gY@(dGAY@=YLA{o}cD*$Hbk(qRYCg zSIeWjxb7&S?76M)vuNi>?AXs;cNw2q$;0~T`BAqv zbuZT)e%Dp~$%&mC68=QOJ@4Im4d3R&x<8Lao^(8x^DRSfzMZh`hr!L;y;}aSjw7$% zjl%)h(f@1U>K}%y{}!%(oTMMl0=J(p12>;<2Dd-#54YS?;QEbJO6+?KbG^O z>h_wL{;Z!f!maO0aO=A>Tz`CzO#AMW)c(EL(f;dj?F@ixXMFmi-{g-{U{^JwBhS+D|rYVjI86ljeaP;pz{9 z+pnT;#4qeP|9%8_oR<6$dimsxFa22vu6_-;`oF@}U!8Ezm)6b?=pA>SFKv9vxsK5f z?N{!X_I>JA8DIMO7r6c$4!7KM;I_-daNFerxaE!#4buGLFV_h(!PPGT*UwE_UdO@b zxyIo{>}cQjQsqx3`j;u!{PtPGhvs@mf6Div;y*KQjM?g=Ugn?doZ+b(UHrn1`DCUJ z+I7EWc8=vA7j_1IQ&s_v@CLH#@I>b;i4TpCjn!Vd(YqM!0@{2G`H>{zcT+al5zbf z@`LR=O~O}$d%t3ngdYUAzGuL#*HtaA>(w8<`xe}vssDdR?|OCo_C7|0Nq;=w!+x?5 zdhM?P*Z!_>?HmTz&NXnyk^4sU)A#GOKRo*@v_CmqKbM0$?{5s({;qKCp9R;x`$M$z z1bXd!)beO|=e2LpJ5P0IKZfz~y$s9UFwq~J@U!6hc_ZBV-rw@N-@2c~>x)U6dd9ET z&)$i<%%}6TypB(HUB5qe9A6i~t=BVf`{7S;<2-&cANidZUO%6O>(7^P^%ExZk@vf_vs$9xFX7iG-1iam=R@?C z>-yPvPR_hzJj?To_-Es}FM92q3%A?{;QIMGTzxn4zk1Jak$Vo6cD7CI9Gh^TFKGV_ z^xA*F<#itT5xw*HuOuZ*pw8PxTJ^JK^q!)Xv!KKQun>hqS()$1C3)JHM$f+;Xpi+rI9H z)c()tIXQkYEm`iX zaO?YZ!Y5#zpg*(2wX+ml{oZi(J};2_yg)l2VaI;{E8O^u)vh1vdCm7YydULxbo#SF zvJTlBZn^#7wu|p~*e>s(x7=Ug#$lp%y;0XIJGXNg)+gHEHsOaQyu1%m=ZCW2qvp3^ z$2i{$|4lw=dDwAX@kix{>^c5nF<6>k6mPp++CjVCZ+S4`ufy#RU%~AU-uJWIxsvg? zcEV4F+fO`q*LHskz5E-vcFY6nmuK9`w@&zhaP9lN-njKgZ`{6s8@GuVFWOlEZn@d} z)IP6Qe=&Bf?^6l?9Il;_>Hpf9A>r9MDuY=)(f$W;`^k53%bk?#0{ff$skE~pdfVk-xc;00 zSMRwf`tv0E{>_*z>*P1#cf#FIrJZhEFIX?XFR7p2uaj?r9sNH9uKuEgKML1RzdvHT z|BBxDkIwaic6@JIJH8+7y2AIPwePu?+P}0dx1I;RU*~*x2YSby?@haY9zeZZKWF#x z2K9T3>m~Elk#PG-_I{1ezijvKuwy(&X5KNLo;PB-u7|aMAa>-D>*5#b$^Q8uT>Tqx z^^-8~yxeHYxbr!e-1lhWorR)z-=rXZ!w`*q@MjL_2fAt=F<}>$N3Zz2}FhzY)E0cm!^{cy5^X%RE@mJD&gS zyfbDp@09tmUNQ7&LeQ+@NL4! zCeK@LxsI#*)qLn5YhqRA({kS?^sb{;Z1ur?p1Uq~92e!fuP*mU^!ER8+kRE+r=Y*t z|EEK*Kki4$_Gj9@r(oaqy#sFiv+oD}1HJ7yBK^>E-7jsqe?f1#hb25>7{8cDZ1?Bj z+W8c&ew?IV^@gi=-;wsWP4q{@jnBCW&(4E=3B7Uq39g@$(%)Wh>R$SJZ@B)i4A;&+ zaP`@_aGnRNow81=$I(03cN~4x^3XdT%f6<1y!bwX<7>j`Ak8oSdV@Gj-9fv~J1ew2 z^p3mL(L3&TLvKGn2X1@a4>z9gC43nAt^H?gxaH0Vx7^*}mU~>nv+oGUHAws-KHBm7 zGIGEFF88{|e&YT;^{3L$<=OiX~Z+`KY{!9rs54hjY_^glKa*u$kza`<>eunp2eVqrsz>ayK+z+htz_{)8 zLY)UZ56V2y$~)rYxE{G9YF+pDP5}4*$uunwcVmxh$*VKM--35f?DR&jKZ~F@&vG9AV!ODnSbidQY_D74w%6-$%N?3=YW^7) zZn^Wo%|9E!t*_t1vRuz^SO08cr{sg)XDJ}dLj7~~n(A+y5G5A(M?iZTC; z-;TRFUroz+G!M*z-aOzs-*(&`JGSFlaO2iL;V;8&$B*HbI|Ad>a_50t?#c<@4sLsS z{i~gbZT#x?eGIPu(f5j8|9!tn|IH`babKl=uFH6LTx<{5PT7Z9_rpWb+YifiMCk2@ zSGM}PU%4)_AO5K`3|;QGbZ>dY(|+hW*?zbvdgr5!;gQ43{J2faYyZpoxsJpB*f9=0 zu;aK}7`^^4iC+KRZ)|_a&H)?L_W?h_AKTr1$d)?+{nLK9I9xj$!tICNM^b+fddtn; z2YeU3@t1zC)bct%Y=Pc=H3!1Ab6&z9O!zBs>op?t<8R(u zgj?dQGN(F~S5O8Z=(&bQ<9yuf^0&TFmn_Pp3J53htB>$NppKWB(e+x+VO={_s-`6iw6 z4!!yO;Fd>y9WQ?0%JJfRBKq?=cI1P4A7(c4q~&f5x4-QRx4n*stB*B6{ObC;{;^!| z^II?9i+@PfA?$2JzvXuEff`Mes#Ud``W=R_h|IaYh_<${Ilg|dHWOWSl>~|hn71p zT>VOL^}EB>pPleK;o5l}uALFclj^&})z1Z2zc1W)`W*Q;@kAfj8f8BE6mGdgkq<3* zTDbah4tCw{+a>zH!nJ=!%j^7q33~H?`7TwR{~v4hF^u5AZS3fe^M(G*O5WDa(s0Z5KAZY&&|B`2aLauFZXDiB_=x0T z{h1i9Kki@BpQX_2kNcPO=LGcf%i#L+C|rMDgX_;Q=r3;iKpDTA z!}Wh(xc;9B*Zxfje+lk;b{`}>I}c<$^1uH0UZip8gI+(kf*a3+;o3O~uALj;+Ibmn zJimnN|K!Phu~5R-h3n5waNGAdxc*!M*PpxL#v%Le(#PoaXKeDk?e2G%%xtv`+l{58G896aO?Xf+&GWH`+)YtIpNw_4X&Si z!}aGxxcd9x>IWozly039Y7BerObge}QVHK7;U~kjU%p>oUvHN87Q>%-CROs`9j%>u z{qr97_47x#4*EGeTsv#QwX+Lc{mBWxq~&%0zaG8)zdw4PJ3NctxP6@P@kSe1U;E*73GWTp z{`zqH!vS#Pa5~&LUjf(ty>RV+1lP_FaP5r4cjvXU6x@F6cj~pj9eV8_-ts!1oP^%% zxHHk)j{V{0jVH0=dm^tS`u7w4|K#(gxc61^_BNf}t>ZqS^&QmbO*3G}`245tPkz<< z6M4gaJ_^@y_Mb`M_Mds-t`mHIr2V7N%i|h9e&LUK=^40s&zV&3dCvOp{Ym|IUx)tp z<$6#%*?XftS8_c1{c{_2J`!EZ)y!K~f^tR();kM(AaO3$>!as-GUc=B2 zEq7M9<*p0Yj{BEv$4k-c=fesATf&E?Us>*WaQ*kaY5hM8z5cl0Sbh(B>-98TfBZhR z{&;?Z{$%@&-9M>6K0no;%juu$?}e*(pOSj_1FK&;5?J%A^Xf)$_1HngydKvVpm!bUd4}enr_fuj-<7u9pU~TX#!T)T z%m;VfxKzTofa_28T=gvU`uP;xdEo=N<6;QzC&=f3YiB9A`t1F$ebF1YOX0@H`yTS= z(Ocj5T3+`Dzjx_%;)u!phaPa(z01LEm%ec8wKrTlSHiX9xleM>eX_peb6>)CnFVgU zESK;N;rhQz!q0(U(#!>Ae)rrb`3LCr^C!4|dS69U=&G>$>L~ zn;d*$O+B>%La|)n(|l^EljkeU-$EcA3i!%^NYVMw`am< zZh1W(k3v77X}dBWPeX4%_gppO{~C6T|1ey48~+*L+F1r}9Nc$peUDD`_rTTrol1H6 zPGwZXawq1xTm9N_^XhJJ>vb$#`!~V0{{&opIUgpvZ`{Ky?dADtpVN+?V<*mXFZ$8A z9@qcr;QGG`T)p=V)NkMFYd?3vj(&RHntq;(-uT>~aLFbBe08|( z;(2S9dpdg8d(Xoy*Ylr^b9R4VDXz!0vm-q26_<8D2Co0lz%BQ4xa~Uz*WH#oHC+44 z!_{vFS6}v5)ct2y^!A@4;P#)Z;FkLi-1>e8|4n_l?$*vW2|qgFm%!~Ocf#!_1K|2O z64$@_IT2j@OThJiTe$WQgKPguxcX1w>PKZCg8Hf9>X(PB-vq9HtCrXOWIOcslY`;* zlZ)WSr$5~OISl&^^m7KdewO_ewV!jN*Uu&3`nfS&KMzUxrEvSh190=<-{9Ks#(o3& z1aRXs58QIsgxk;eglpe@6!M$UYyWY$_J4xgUgNWW!1kIJuKg8TUSD5th~Ddw&Cz>Z zb12;FlvA+tC3!pgP5feg;`KJOjP$dtbsm$KL+-BYN9wy2j`Dh5z>RrQnv^H{tui?I-=< zmh1fi%l#U?cK*~haQJDx7J}<%_Fc=p6aD!KcfW!5-$AcG-XBvxS#q7SM8ds(*S`A) zwD0-V>Tkz>Tzi&&?zuGD89M^p{Oao<--q(~<5cJ!zuCF;8@Kwp9sknu2y4IQPw{gn z^ydGA;D4uH7r?F8?QrAsIo!NAJl99|!*bqr?dMqN_0xUt`neo>{oFd?$0z(exb=Ds zZoR&OTd#4r4pKh{T>biR^*h7W`#e|u?TNme|5?ZRA@s(%T=zwD8t0$U8)x^u8@KX3 zySo3+#`ToXTYX+^e%lni^Xw^b{kaxy-0p>I|24Swhf1!Svg^3{&|B`ZaLe5RZn>wy zZQq;V+J6YH{SR6m@pm5l3cc%xk=hBqZZDrB$DC5~NzcY^{A>ow&>TVcC|~{%nh0 z|4)KDuiXx}-Cs`l=WydT1oNZiP6D^wrQzDy6mI|D6|Vj;xaG!Jh+m95%Y6fGeZNci z6v=#=-T!nyq5dC$9m{n;q5QE#{|~tKyEC8K&*y?0x7Fd6n|(*`f<*6gF8%2Ud>eoL zDf4)=i~jUtzSE!e;M&<2t{uOlCokWRsK;0Ko#;84kFIU{Mj5AT!S!<|xN&fP)Srvd z+izcj+i$adP!lkZsGk$ApDVzB<0stuX7@Q?Mz5W0U(+Pa3)Xj0xc>Wn2jjLsdhMJI z*UnvVdit`97C+K1DAdmivD4DH1+E+&HYo z{N;SN8G7ftZP2^k?%s^^_|@?o)cwFacbe%)E7t2Mxc+;dq54M?{r7P7<0tdNY;gPG z+Hlt)zL#x(jy>D)i*#nWwwNbo zJAZjyY`t#5j`e!0<o6q_LEQGw&PE5{mIU4 zn}hMIokii=*%)rU4uLx!LleJAZq16S{P%W}u5{G8TK-9O#;Wxl-*z4`WW{4vh%6EF@xqBm}nM*}v$_)9U%-+r{ukI{a)91)m9%o=I)~33;r4W zkd{Zi>~G~+Sv&1Iw!lXJQ%&@`u?@$zK`De{*v%1 zS*PjG;&APFUsQe!dhOf{_qyp>xbgW0uKkf&M`^#D-&?N-mPGG;o=xD|_d6ZhKLx#h zUJbWhUV_^$@3uUucWLvdtOq_s?|RAi1%7JUuIR^!1x53Vzw~njxb^A_SHC~pdX?{V z$3Gjl%h7B9;e@*mR6iu^G`Z_H%Pr40>-CT4?YsV2l=Y$Os4*gF&9Ck!<-EbDhU>uY z9qO*@z=c{KdfR;qxb1#8-1=Ug@Y~_G*K=^&>wUQX49$4gpHW+0$6*}wK7X7Tz1QhI z(Hs9Btv|K>|F%5;9&t0CehOE(`e10~1>*f7G^`76Z{uk`%kM{%hr@a4F_qR34tLBq!;l|nb zQ;hSutv=i`Z(oER^Y+bf^Y-&_{r?hf9DKfJ9QK&en7&@dk68) z#_jr6AAjl3a|ti!H`e-*ll)(<>qBq3)1o)e%#!5!sha;jeszCXpo4b3-e0Wcb=>-* zx1XE{x1VJ98?)!{t|x8x5gEUhI}6-$%_p|Y!RY02CP4fm&i0>&;p*Rls~ z4a@klpSTV*ZoSbPx3d2&{#iTwq1VnOaP2$^*N)@e_)Ng~H4gJ6d?~ngJU`rdvya5bCFgb<;Jtl((X%Q$8y(z4@p09 zUz~A10ln>eHT*a23)jw93D3?mpR9fU9^J)q=Y)Hoc~!XO?ws(`;M({66Yal=-gfyK zZo3T2b9wF0-12(9m>0eCRQdjO=)E4<9Xs9+IRrcIKcA)f@8ehJjZHgom;2aTx4icA zJoLu-k%YeucRUWqykLBK!R=S8!7X>kgdYyKUBYJk>VD<(FU$P_y>`Zp0oU5GUW>r> zb8Wc#?7M-!->scTup`grso|Ix)K8u86%y`qZTyPu2-$UInjGQx%P)5&+E^GaP{Tf@;c5_p*PO%XEV-gqBqXl z!;RZMEwB5P@A-Nk;{xoMukM07Uwj7FALl#cFc$NO_NRwyzs!T-zt?LEqjw%zyXAF# z{l1dVJ;!V8#;?{-(}}yx7c;lK_Gbn3*30LZ=G$yP#+}$Po=?JU-#=C%6wLgA4U)1g5eS7;!x&8{h>y2`sv+fUr`W$>y+RJvd zKiG~JC;GeK>feKFe|X{}p8{^&mV_Js4dKRrAGr4W!S(Y|xcXSL#V_)(JiA`*$$G$f zaAw-wc3cv@{;vf$4*SB5Lv}9c9q6_H1YG+*uhG8ye6-_t7_~D$>j&+Wb7`XZe$AgU zkFSQ_`DHV>^UEP{=e0B7`gtW>Kc8%QJsw{~?|A$cZhjuWsZ0Fo@i=WK?vkHf|2toJ zPL6&K{w{Fm^X|tOkGAjYaN{-<{oHxY@0@DK`{(9|?7P4_U|&0Xw!H3FhoZM%mFKOY zH$Pm39j`0BKjw91&$hqS{czEwA1;I5ez*;K(K0+u@T8* z+9}W9>$tfeTYt)PnYzD~{gz?JbCCQVmUjN0_%mJ@XnygRah?WloPBO?oOeR69iNXI zhda>g=Nkzh0N2iR$@N-xJ-7vW%RL?Le0MF}dOZ!-&d=~mo4#G<-|@IU(*Nb)mb)3; za=l(t@AaDc%Ue4!47^W!4fb6RJPP+d?Z{kbS#Ec@t%UuI*oW0L! z|2z)8{qs7wc3w#M2XNbKc4Yyry~PH==F04^wukzPwzr+ z{9jMF-xD#O?i;b(?#yfU!xiA#*%oep+Yhe(IJo8B3b))CQ}K&-w7w%I^P}f^>dz{P zKD)1baiZ@J*Z$XV`?JpU&+eO1`q(l@h)STsud=jl=11<8T|?IJ^qipPv#w9r;RsvU6g0L9hKmJtx-t zKiV0Qd?lYc;j^~9?&rs$cYnymaN~Rn+&I4tH_q2i$q{WVrr&j*$8n68*Pu^_~l){fXLq7~R_I8m~vZzLGg%@#2SaK&>IKOThPzj(d%b9FDU$Uzsf`C_47rz`&Ir9*UxcS=gU2x!G5?Rdi$a0 z2x-Ub4!P$x7@r5RZ@GSl*Xx&G(QCh4kHqkk&%t$s_B~ft`)hDL;`PFz*s&cifZL8Y z!Y%iGxbyO-EwAV0F}rn6gmu1}wB=D>ua73_ly{lO=WKcCoyU8lx4!G4*Z;%e_J=Fs z#^2|U^7qjjw{PK=J2vyI<<1S){yGWIo;UfNQ9F-g$9@~{mc}pQssF#g^}h%6ss3*S zx7>2Sy6(>>q1T_g;o2$BmFoU84)e121ADeS^!A5re%}f^#$hkGaqxU3`CUI(gPZsEhZ}#-WzvrOUbOQWcFdFAn6I_(z8CHHY4vqKTpBy(&y~=7U6Z}9 zJw?;5@r!0KA9@{R|KFfP-KjUuyTWa+Gg&nJ5KW2pb5zDs*RlJ~q0vR=2K*Pj>R>c54nAB()C-up}PRTBMf2|o{R zxqeSp`!6K=k6T{n{~yqIYwB2@JCt)}>v1;<`O0zEqvf^znb7|$&*i6~|2rPDeN)*v zHtv(LpP!9=<91)dpNBiX1|&SYuR90hLVvc0>(3DhzZ!0TcoD9h*qaf*Xa@D8)1R%E z&q?JzCpDjJiXH3a^K|v+B>HUK;`z+hYfSpB^_m{8-hC``-$$1B!;bdvNx1J9Yo|Ov zt;fYL*l|BnH^!0k*TRe={qcUU#Y8aO>-Lc;zRf*UsfFkM7v7`BU=VHRxRj-VJxZ(~EHJzuWS<-9Ja~zS$93 z&uC{hxb<2w;hV#af7!(sto<+0Yv23N>V0oT{k+_-us$(f};T$u1Hub$YMH@AyS~IS_5@4ihzp4X21i{z`KHx4_(E%!*cd9TcC;jZ={LoYA$ROq$;9eVBeB+uI} z3&U-fmEqdov*mSuJ`}zAxqM$f^sY~OH2*t(b^q_viM!;_@*J}+cPsSzc>>)2JgD!X zd)|fd8IHVUxl_O`cOAIxxO2i!g4?fdgKOs*xcazui(m8;{U4TmrT;U)^?yaUcD8|A zuJ<|ZZ{}6)JcS+W^?kxi{)~EA?yO0EE8l4iz4h7;z2$oSF25eV{@)Kbo^Qh~*L1|_1zb){v^2Z@w!0&pFpqwe~0UTFY=7#X5UrW621PoKSVpHwfZ_g_`bRG zWBIO1ogchEsr~G`DvOfGjKel?-#KRe?Eq*AEI4<#xU@{_pq!>ogaOE z>V5C2&|9zGaO<@NTtAOUxa)BJe>l;9lJIQ5RhR(TYn;b*nhr+8_%Jb zr;O)haQo+=&ZpUP!$F--%Q^FPy|R5l-hXpkcrLW@*_QcE{Rwd6c1gm0pT&5-iQae) z%{*nfp7-LoSPZ@XEZg!ZreE`?tmjukZ@$_H?s|TUme=`wXY{T!%k#?6JC4r8j^n88 z^Ne=gCx^E`U%H3a=oJ}KOC z7lx}Z@B2hQQGZaPKLf7*0l4-*NVxm%jI+;uoFDsygUv7gGCmu^Eq6D#ejd>BdR$+P zUOP`G{F{WA>-wK z+W!)+9nY!Ij{5+$Gkd%KtlMRQmd7yY*Ze8@d=b{G=JQqH=JVa*j=OSyppNs|==J|$ zxcUE`me=j>_vOv=-zWOvSeN?TbK<7%@vH66*onK$3v;x*j^{e)t=BJSrzWM?h9A%c@dWD{SC`~0z20CZwdE4u>Q=RUV=% z?wJYqK8AKaL~lR;6>faW`9<;1mo|UO_!^14?f9Aq{!n?hDes?{RDYOYCUh_qeq)0sU4x^T4&^b&&hOv+JM@vEx4Q z{o&@5a!zJFZ~DC+{d}agQ;&;huZKANHBb-4?-JeuKx=1<9E zi?=-LW!`hYP+Wr-{SN5ko_677A5q;84{i0eKXGp@eo?M*=+QyD&inuF`zlwr<<{fz z@r1t%x8Hi5Xnz=!@$US)5L`Q6Cz?;TN%Z@`EjRW~#4qY)x$nXq*D=S%ua3jSj9>ln zyb69rc$d{Asx5eg}7)X6O9$XvbIdL$6c*-14aJwN2eie_j=?pMQbt&yjH3 z@jSTg@+jPPDd%!W^<1C4g5GiJes9+&?)TPDzh7@0Jg3(sHr4S-zd7GYlPZaQ&0*w_F{)?OyU>xMjOvf!?@1 zk?{B7w(pRPU;Cl?M}MY4uRoqwraxPvmmdhX+!NuJdk5Td--B!aN4WJZ=aNM{)%*NZ zzBzeAJLUb6IzPDI()S$S!jAQIonw8+XZ%{<`QX3t6R!Q;;o3h5?z-q+xc2=%p!SDh zyr}P)@cH5TvkF{){0^Xb`yBN8<9qkoe+Iqwzk_RMgkd`eO#HKUdbYgIKeM7YZ%o*Z zySkrD-SV(+e#pKnx&eCQyer)Pc{*JG%@6jgZ_#Vt{bus%7+=P1UbyA14!7Jr;o6V7 z#4q9_zZ-6SUxw>XJcEv3-Hwwn9`(m_2rYL<^ztj=`r~ztdeg!8G&r$sXsF(e2au1k?^zOw&OK${d^g&pFhF1GalpgH*toW zXI6o0XYH0p^Lzcc0eaV6+rzznJP>ZZeBa!9^+#{~-%9uwaO*p2dw(^;WVutr&6D0Y zw%nc2%a4R>|01~dJ?F~!zm4Abd!E1c$8YZs*ZFxm?i-t*XGQP2F1w%HD>{Gki@2G$ z=j)(d?`sX}{p47~$1m&~&j&kbSN=NO`1l@;@fn$XXumRVYv+%;pBy&h7xl8-m*Cbn zo(06Oj>EV~zMTcGoyFny|2^R9ef}uF3%zzefZK09-@|wg>UCxIevS8s_2+2vw&h+3 zw?8}qw_UssY#cl{$#SQRhH8HGyyN$vz0O*-)z|HtT_<{ei2k_WSbjVHxX&lMPJA)Z zyT4BVf5dUEv_uK&O_#Db{;X2TGnm4T1;f#0vIWOT^-gqz3|Gnk)IP&?C>$h?r zJG!I(dycgJAIf;wf6on&yKXdYzQ16(&SC=v_A+40qjl3fy{K3%6eGPcWW-2TDFB z>n{DD39f#*gnMqPe(r_db)fqSjKAljYRB`7wBtSj=jC!vQ8d5yJqK0$OR_$69`Som z=KpojoBw+><;AZa*MHP=3ZIYI?zeRo+hrZ~YQn#T8=sNLx5j5SxaDpMx1SuC@F**O z(JuD4d*IsfdSCrGB@%jnBn!3K{uQpBE8y1G=a0tU@6pRAAg^j?cDQ=)`^o#F*Uq_c$Mv0X>*e>1)R%Qy z{AcP%Z1ZO{PmHP3A4Vmwnx8!%#{K+rp|@RDfZHxR!S%;;u#L~{=;g1#E%z(9{c0TY zu<=;|uKisTep14(fZL8}tuSR=WukLW`H9uUvd0YK~=#9gvaNFfFxc1BW z)sg3&FWy1#eDP7sL+^Ys@(2xRe)W7Ye#;{c?w9M)q3){h)AG=Jzv7R2U+-q@+g>jv z{O@q%IShH;cuo#?ysQbg+#M30?YFr((LV{d-+l+z{}GaW?(-)7_dHVVWbYRohkg5J z_I^Qj|M_d|7&rH=S>ImF3%1J!aO;)rPxC!!%e@;r#=&{VatENd+)<;0H^2Bx`|g*P zFNfaxt`FCro#6U&5nO*hfLrdb315KxtUqhPwc~wbd3i4{iqTGXPU(Az{lB-o&Og47 z?E8INC3*V*xc*!WH_o@fjkEWGjq~v2Rqad(x7@OxkN7x_`l8p)wk?lg)35nc)&o1D zcRg@4-2K&;!fmg6;MVt5xb^)7uARx47v$x8uXTS|0lnq=9R%k`zw4^~i?Abq46gkT z;o2Xc_vUPuUU1uGF}U`(ZF%%t=ifchJOA#F-ubtjJ6iYuYq8_}o1KFs3iBL2?5 zQ+3eJ`C32AbA;$`7c_rLe_N>4haLOda&Y(EZ3;I&N5kz`aW5i%Vc&Lqwu5%%K3}k1 zenoG&6EkmG?s9O;?VE6~A05|MCVJ2BQXgye_|^3tp7~L|&ljxk!szAhXEP4&V>b?- zr)Rn4zG4*fY4fM_2d_8n556ZgLGvFKz0WC(^PiYc<-Vt{KXbSGdVDQ{9mm(w=pA2M z!rfQq`-6_Jy|MpB({`m^Q%55`R-S^#<`VaNnkR;8pCH2R_7(d7yg)q50M0{m-4a%XnX~<+Y!y zwLIeKJi9h_jOXTX=h=PX_J@n%_J_yd#y{FLeo<|?&+F|E&Zm~U2;BQMsI#7 z`@rk*ek*p&4}-r;+xgwtm6LJ09o+VE-?i<2d7^&|ZeDsFZvX$k_FdZSda$flqx*V2 znC<&rq|wDM#PKf@(Esjm%-L_4_ALFT>Tqx*QGzg zjazr}fO_9!Qokm8{c-&)H!sPrPwc#s@Gs%kcYz3e^Q*_vCUDzvhnCml<#6=wBfS8w z|JnCzvgbf2jP}GGTWYyip|{*86JFMt zQ7`NJ4SLI+nEYwEo~L2CTcMX90=K@G!PRHq4fzVa{+Iixb-l(7(ERFlbUkUk)+5m0k_a*{h zo{QdiUefaDrp`xKqIW*J2kv}S&MS*%)6a4)S#bTFn0%{#Zn*kI$iwFC70{cvS4VH& z-lgSH-#wc@WxjSlTRa;ryqphQ&v*SO_bT++eT*ravf>wUa9)_cgLa)4R&IG6PtV~r zKF6Rp&)g4pJbn&0{$r4b<+H=J@B1m*cb%`DsC)eCdR+szUf!3m-@cDte?}qS>Q67Y zcD%1{xf>*U&*8M(W6@jg190QuxwY~k$;0~N`3CwwEqeV~7_L9rd(elW*PpZD`twJ< z=i)vz>osX~khY&#FV9hNKg>Gl^*_7czHh6K=IPh`DdYVh?3njXgu74aX1Md$<8bTs z2Hbj0#=Kyhd&9Nkx%Arcy%^iwbLq8n4)(QkCtN#k!;SOzaQ&Z-`9l3N3Eu>+Kjk|e z5kA}f4D{N+9zt7n6uw%J>S|0uFg62=jKTEVc+R^^DD%|H3 zTfvRH_$&f9ANGaoPkE0u!qKn!Q^tk!xZ~n5?3jnM?_A%7-un7H!utMz-gcRo z`A$9q+&FlD&vG|G@4S}nS3e)U<$BJE_Mb-@GZcFe0~ zeh}ZqmWOG&m?f;GcVkJwIf{nM}Yv&`l z`Z35e`ad~b|Gl54|9#PG=RmmSy6?#Tb}xGEybHHpqmh^7KF_t>Ig&i-Ig@b)Ldi3` zqql#S?-$hl-1kH6=T~CK`@?tQ|Cf|INk{8;eQr2s%cI@BZ_pdP>x%Wz+m1)VZO3ci z#`B4Ue+aj|+^=i7*?M4k`lohwf!mJ9!S&Po2J-mkY5eN(8*{|(@e%27`ZEdKdU@Z# zczPc|e|+yu{t))9?~8E#`4Fx@-Z#*n`RQ+#yLQ6+!S&}VxON_Zt1r(DW4ze^-7goL z7s|L>FdC})#b4HIO}O>)zOnvXf?l5OL--QCd1*N2P2)dd!Y6NeG>`i+rb6$!Wj?t3 zF*bwi&%SW|`77MG-3)i$_dA=$ryKLNg4}{x}7r^z$`^@rJ(c9mC zf?MubTrV4ka*kOvzxG!|FW&~P{R80IKdR;Rd~rQ`?K}=QJ_F#^cWkb&ZLeA3w%2@c z=czs|uh(OfH*twyJ$`5F#2w?*`KatCuj{)Odh2^A-1=tcxjlm3c6lFeeSd&k?)2n; z%iRdB{XG*Nb8h^i|JW{f!?okNZR&qa^zK*D&dlV0?KmG92k&DWhuyJb9J23&+=pI& zd_P)$viC}SPf9yWB=g8FaP?*1UEMz)M(_OM{yO9E5A?>t^OvmG+{_ooc}ckTcZO@< z^V!s2jNW|mFx+zg1~)##lmF$D!Yy|mxaDpK*G|8L-;(g>;QIeQTz^I(pBuMcaP6!F zx4k@X(>$4d=d_&55#2rB@ht0;)3NV7?s*+UHvdu4-;3UQy$QEozrc;N=XJ z;g;+CW&0k3Ui()i{4u!p--c^{T;?6)KLgx$>SuT9;wUHt0&utF#9 zGJmb!^4k7x==J9uxb1j9+<3m9@FB?m#=+;XmOB%A%iR=ix%(tMH1Uh{;dr?ZuANum z>VJakzt3Uye^%xZ{m`aSMR+xepISIaSv_}!K@(0f0j zJcq6OoA)K`&qra$>!~v-*ZT?Ccc#jIgJ^fxZ)IIq`?FeflI9nB+i}wl+R6JjeW2t$ zzf&LY8WbM6G=8-m&sDQO_+Gs2H3|JqK0n-c_dbLE?~2}XuZL^@@r1{{qf#&Xr|0f! zr+3m1SA}b*d^aKDrk(8lzB{m^{`G|WUa;|*gnnf{cl~CZeJ|K@cg2qUfTTbB9VoxU zbuN0x(aqS`AJ>7_>udDZYn%vh^Q+_RdlTB92fg;!hil*SaI|wUdhK{lj&>eFZ#>_I z+keV_=J;prPnN8^7KC5W^zAZ!-EScO3wrbLp>XSa3S58OpRE4nME@P!@$30)+9}@y zjW`&edD?YXozK0G5%2DmIBbjF`>yW0GjE@O-n@NT%fp{5uzwqT>SoNAa?AaYIzK;w z-f}(XGu|mKcG@)1(a+8Q?PKtc^^)}}&%5Kli=|evGez_N$1nVMzg+o_VI9w29qLYf zGJl1A{p^ljKNrIObkuig^yZC?&`*zkmzGc4{5=DFZ+LtYu=sy4cH+#3 z!cT<9HGAQwx4dr03((t+ez)kqtsSrWFKfqGTb4N6ji zpM8h7T)%|AKkc$D{YriSJoZMGxb=hoCO^Z?t1rXVkI?uKzwk%>_;B@o6MitfL{${?|nB{uAxY84c3> z;xGA9aNB)rxbZ3bLhE^|AA0BOGg@Bfd7n?2=garvL+?EGBzDXXZ&B`{^pkQwu=evG z=#NBS&R4AUqqDx!et8eK)=!7tILzAe&^uqduhlqsKD_f?mM3Rv?8Yyu=Q?4o4%&JD z$8y(gdFcBShn*6B7~DKr=JBv&|M9uGdFD;*sPESJ5WldaenPnVEfani-0^q`-2VSS z!e4{ykJq{SGZOj4a$`*uzq($_z#Z2s!p)QJC(-`Jtv>#mr181rN%xtUC;MYR_V^Y3 zD{$@mJl#AnWs-k-!L8RiaP98{w_UR5?~f+>ci@(reP?j0XprU?e_5{2-{sl9daq~g z4<}*YxLwuqI&a*G-n{VuddKfG=*=5t|6bTPf0n#gm+SWm&2OWTugteTH!*+qO!U3T zhuU8t(fi(+aaaw#aqzuh<6j?fX41^FXc&?!3zM7Q#3tas~K?uiWosemDlb`QbF| zn;*(KEp?tO=O@(VK93#q*lUz)p8O2GdGfnNZyvT@=3(pQ{wwR%V-WM+|Mqp`NaPdq z!$ffN%(e+X7Vh}E8g4(&o`bxDUVq$gsXy*Rwp^bNYRC1V<9apnk9qGfxc1BXF#dUx z#^gt{cm~(7If|gJV7{&sl1H zxn7Rq&4*L4t}}nmK_0VS^P;z2i=($*t|wzHQTq8Gbsg=#zW$7(?VEbWFX}7z{;Jo} zr*^12_4bFy;pTxi;OgIRc?{#J@yGW#d`>Ym`AR!$!7X%j>-KI(qZW zd+5zGU!XV7xUMsQj!(WazfDWNGJnpJ=odn7{#-iIuY=xtZH(S}`TW{??TVfM=KSe- z`}T)N$&-$E&jVEdZjwL0z>fKI$Rr=G2DjY4aLc_h;hy{9IQ<5_<8Dmyj6C{4{G$8n z&)jhRaXo3dyQA06sc^@8d5#n1nm?aLul;gPRQ&S{O&v=<`~kiBb0qTN0*$8Vr-EyL zdARvu2e@%N5N^FZS4#U&px4g(aP7FiTK!Dq8THvY{H`aphx>;0GE+W)!b@z*>}9ZOyvitA;s_s4?Aw^WMW{h8Wd9lh7Bd%%s`k#OsE9bEe_ zz_s%kTsztR%-OlVR=*lt`|dlEm*?Q|pUFK3%yz#Y`^M*~me==7eZR)*-*SH-^j`md zjeW0wf5g7m_2oRVy4)GLUiP}aJSVF4?w|C!zB~`A^&4Q{di8C2U9TO{TQASY{%^jn z|97lQ&7Xt1E?tZKW}X@Rys2}3{8yeg%}@UPSFY<9Cx8BLxvtOl9nD6bF@LTKHy`eq zaQCsRzc$hP9-?{mQ}pIlpA&f>@{ij8Q_f$Cd}UtkLmso-RmfxJ)wL7-*67WvyCnKU z(VJI~LGOHV8hZ2Ud2sXU_)R_ISLgF`j$$-}`{8HrP{6z{0UFYMUQ?@hStQvLsL+Yev9KNaiA zg`2vRcJw>I*OP;~AKv%7E%z<_ zvD~4*#od-sIK>L!fY?qVZ#^({Z`nTcghiS)Y-R}Qw`#G=2PxHoYEwA(8 zgXqm0PoQ@lnC<5rl00KREbG!bAC8CKeCYbqd|2Lp47aS;+^wCuUW;JgdMyJVoDVzm ziTUT>oey6n@0rIwh3ii@@{D;n&ZdZ8^at%kE{b1p$L|Vo?<*bv*S`5Ja%stLp8unM z81jbemZ{<9neu()+RydTYrmZH6MF5Oir)G@4p;vkT>bE2xcSxgr%d?#33q>{?dbhR z<}vqknwPvkX&(E9a@7xB*LB{H z8r19A!Rxxtxc$GZ>y{nFbzPh#Sn}TBbzNut`;eE+tLrD+eU;|JL48kW@Vc%u{{N|U zo#!|9XB=(QIc;{#oAUkP-rws7w?8}#cRlk8T>aZEkLAmX_%i^#`^-HDQadX&|84xD z`&#aXaP`^up`JzWy2bYv9WSGYZ|`tpm)8rHQcy)UXb;=0KN7ff@|kZxOPSh2b*8rUOnOJ zmw;=3vxM)L@Dt&-`%Q4;Q{LaH*L6>$cRl%1%R}#avaI*wpIuLWg5LGy$XtiI-kXT) zP1lps6jpNA><4*Tw&T&7YBb;}>x=&uj#@ z-wx_~I$vYQapZg7@}A^3{fTSd_=TVPvkKh&urpjc{os!G)8JlTKMvRamo1OK;$5eb z55Gn4{l=lmODi{;qMrn={l(zshb`d7&HX&qtDKh`ant_&iJk1cwd{TH9$~oo#b1`Y zC|o}`PWavlcb%ynpGVstp2LoDE8p9#^Uvq#%|G9^yw0mbCHcqqzRj!UJ;%CSzq4Ro zE&Iu9{YsQ;UM=rA*7|MGTd$p3Ue{|s^ybyW;QvZqou;EVboK|IJI~zmx?I0+-k)*Q z7dx&$4}{wv`oSIVS0?-=xOV&=y8U?q@|gB#g4++h52^hV(95q$_)`hb)}@}qrvLE{ zOZ=i+TkbY3kH6v!kdl`?m(q3k@z^mAOSwN;bI)O0weh*c=WOga-uoy1yqoZ0+dNaZi~A(?f8j*G7F_-QaN}0a|EbHp z554X9G2Fab&W((Jwm+2hVQs(c!>M`6W5Lg(AC~W+MY|Yh^OfZuN50bkTj2WtD%|*d z3D^Em!!?dHzwlH0J>lA)53ZeM;r}0d_XC~RnD%=-r7A-aT7(u+MQ9OPgeig|C=)~{ zMu#8>iXaGrpa_B(L54Cx5T*!%AUa`+FlADTj0Q1^phge`#mUb7yZO!6dDc2-o%dbq zopt)GH8T0+>b38E?R)Qi@4t`dIl|l*NbW9KEEaA-k$U1$@2Aa{^b_$`=e&_du_U@?t}Wj-5*U)7Vh9DS-x{E|M5c_ z-1kS9nEP_^`=GoI%@*&z(A@KUZ0^f<%fYrKpQN3hC%NY*`LKVUZtnS$buGrbx2N#8 zQ}}Wzw -zPCR)H~YVvZv38$a(PAm4S%PijaM}9uU>)_Y@y}vzgd3=69P2v82 z5|8)$McwyIv7Pt#e|jC_bNAfu#OLnme!VO?cNFW>m|}nQbc*(TkivhJbezFY^26uL z?~n5K@0B9{aC483?@wm_J1pL(>(}>vIr{tMd^_pmbMFuF{hXZcUbdb0=^kqC`=j_h z-N|zC{n3RM@6)~3+}odOf7EU9-kz_`J%4(N?fF*bUY|Y9JGTe1CL=#rynTZ0_y3O`a@Y-yhv$@xDLmG+(wqTDCu0 zwm%Bjxt8sZLLHXvk3t=m?TN>~?Ls>!|KR&wD z+{XzwoBMvb#oW)g%$0N8<=2-zf4}8%_w#t}$va_^Pf`aTx6Cy6_*v#2pNs*L5677= zrtst%L5%lt$VfXL@p0FN=3ckG%)OoQ{2tqLzT%U5`t`ocEsu|T_4Ab{Qt>#_D z$B(aHpt;5Bm(|NrqW-2ag@%`TsI=KmMvQ_wnkj<~~03?`L=S_eFaie@~Q;dvol# z#`El9?)%Nt%su~&DLna3`Q($-!Q=gX(eA0<7rlxdk9hn2z51T#XvHT#{CbjM`Kgy5a<9!r7 zer&PndV5m6SL&M-@uTdx!}Cl@;r^VL&+l0&;;%9H_{YtCx^JX#zhA(`;&?@ST@u$;^HNsIUM0MA>zU;pa2cyH$lDX#D2nEU(|nS1+ZntOh~ zKIQei&Eh@(W9FXc1#{2SZ|-^gI+V9_H@hC>{p5IakG~;>-*4`D-ZS?+8zf)KKKMzx zou3ET$=v7nSaXlR%-rK2G56`dm%`J3HPoD6Y@a8l@ZY8IQ_Q^%E#}^yK677=tFQEP zdk!1imd5?&*5)3+m$}E6$+^B>l&TZ!2&MtG$v-~PQ=lA&W<{tkWb8qLx<{p2$xyO%N_2=n& ze5JY1*WD@nA1Qpm-23MytNlD(?+??=eY!`Pd!7b!uiInhK41Sd_xK;pJ$`h?&+YX7 zKgHbZS!(Wi&NBBrH<){#E_08cu=>yK@%&TFJ-)%*>-ng;*K_SPe$MZCCYk&CzQ4K0 zA8qdO7svNmA*V(UIxxZ%dp63&Duk+@1T;q9mG50#3Xzuy1P2u;a@cAkHlN7#!9gleX{d>y1 zJ-=6c^26`zJKpm6anmK{UWXgZy$+9>`*hz(;oqk4RNqUxV~XRB1I)b+r^vY-xY*+T z{NB|T@8fF!o*kdBRNu4nndSHRl~Wv#OitnZn)`g6Vea{_GWU3Y&e7vvw|MvO%zgQ8 zXvY`6-HY$fN&cDllfx|D^ZWPLxc@mt{Nr*i$EPjckB=5uyf4SEEZ*C>q8(rO{BB|H z^LvoFxBo~G&u8YIXIzTolpV~ypB!uM^HrC^=a_q*56nH! zhIX9dO{@WCOlDXGmj=AUm$lRCX2s<9} z@ysUX9zVt0rM!cyd#7 zpYG1)o~Odx>voN~&)1XY9{&$>kN?!%`~TW@{NnZ8!QAugWA1rQHTOJ^n0x$iJFfBk zYnprfS>|5PT63@GN9LYqm>qZc`o6BY$4@r*_(SE~pPp**-XHw9$?Nl&#ru3MH23|{ z$L3zQ73_G#eUiE7-_P9ZcAmMn-;bNTKKCjP_EPmN>Q#k+W z%W)Swe)0M*J8lZsk(V7eg*q%dZVGi+cH9)|ueqTat@gq`P$Jx}}kNfsB z_wxfMn0uYCH}~nLdaqHc_elJpJnUB^?0St~M_4n(^`I>+-rKp0xzDe^FV5#T-jB!n z-)(t3|KsMK-`}_C`TH&2^Z5IYJkQoiLk2&|56@F%?)5*}-1~{&r|0p_7Vq9+?s?X> z>op#~zqy}3oN4a!dy~1x$LmVT-?U%w{y5%2k|^P<{tkWbB{mU+}nA#xyLUs_xRu2brX+&*xcvq z?G*0USv-C#yFTLm^Y`Z7AF9kf&kg3DXMwrb?IUxaueI!YipNhd_xN4Sz5gF)?)ALF z-1E#f_dN5=Jx{t_fARPO%{~87<{tl&x!3bObFb&b6xU65H}~zs3FbcC3(Yyu{JS$w{-%zb~fow?U--xPkPx#z#e-0SwZxwn75x!30#c~S=-e-5+b z5x3{clIMsXAK2I@z9;Wdj`=P%Fz{kUx7Vr1f zY@K49xtqDKFaG{{U$6gY@xGqUG57WTNpsKtPjk=zwYld>xACXv+1}jq9A@tA^zSF~ z?a2)(;vY%j@q5#fKYO0_QjAOEd)kwD-w&Q@@jkz|ntOb^xyOHE?(@5LigD?VDSSo> zzdVKCYVLJ-%iP;D*2bB>9Q}C^-+vvMBEG`h$=u^R%{_j)jc+}^)!gg6#N6AtvW-hU&-UgXKi%BpFEICZHk*5Vm$}E6 z*!b4t+su8wdQKtA^7v^M z@9Rssx!3c0bI)^^x##)2x#t;W<5iFUy}9Q<$=u^pJrB}n@m|k;Y+UMjjxhK2{Va2j zuQm7hW#i#6&RI4d4t4PJ!^_6QzdXiy843-I{qDdI0S_wmL<=AM6%xyK)2<6DpatGTa_Uz>Y7*RpY`=h@BN z=M&~0|E{^mpKRk>kAKeG=c_-3kF)Wo$4@o)ao4Hl-XH4CJBH~08M%)S3#VD9zw=bb%Ii^Y4MZgbC*W#d(kKi=H)pJVRv@0)u)zc=@K?q%ax z&vTf$ukV+bd;HDj9{-S>+lLn{-uuJn=3bu+JMZfAm1FMvwLQ(fZilAuOU*t1t>#|0 z7tFo=-R54OU)lLyKR>*>o$vMY!;>uD?=#P{ct1a!>iOIWgXe>iPjX(!@0ZwSNYjR% z=k@j!$&>iGgV*}w^S?9A{rTJ~bD!U<%{|Xk=C4}*SIj-nNW0&_`@|f=}0v7rZ{H?kBmyjte~g0dwzfubBIM^`-EY?0CWRXPJBc1I@iZmzsNj_V+1y z{yP=Vx;<`rJbpn6KirNlJpLr}xwap3Vv#e2W<_d$7kR<`35|Gv?2gZ(o3aDKN7{EKnsPI4}nqb%O*d8WCKGp{iB<#MCB z=b3Nr>(^W6o@Z?vzxnoLXLIlWhoe zCpj0Le3Jc(`~Pp_%sXw|==Gm(?)CKV7x4NI)A%qctB*7Nd)$1Sxr>b_eVlomx#vIM z+}m@rxyPq^AEtjVv*%eh&J5>u|GUST@7j3M``a)Z*ZKBgjJfYO_c8b7p6dOUmsz~$ zZ!q`#sqW+b%Hn;yv0{pG+5|cG7rR-!@7E4D_xU=*+}nS(x!1GB-196<;h&g${t-4# z^Za?{p8t>(US;m<-7V&x=V5b?Uuf>}Z^>EbG#jV+esH9m`{jI#_vs#M?)ACI-0Ra| z?(vVCdw=UT_xbuJg^x-xe%s94^B-#Nj!t2dF&lBd}{@2aD{r%=1 zzp9Pjd^?b5?%RRs=HC8e%{~83Dcs+q?(O`m;@O|yuspur`E_}(|Ckixz3t4soioh6 zJ^sBgUjMr--ly9pPs&|3*k|H)$-k%G$G5B4`9L4v`g;OBzn{1C_MBvSJpPIleuuf| zdBfcE`1kp`Z(!pzuV=2g*E7|9t(6w<`TaRB&wroAdwxGZ>3P1fc=xqzoaS}#_x^c& zL5lb@%su{GIs0>?#ryW~RddhtWeOjiVmubdlSy~<^*UeiY>$s8ef>Ji@_Tz~&3(Dt zZSKqEC3Da7uN3a@8}$5HHm>vhejkG8KilHnZ#MVk{ugtPf6d(EzcKgtvaZdEzs zH?Vkb&n6b{?b*iSy*)dc`*PYA%mY}zvDjL z+_!J#=04r0Quv1{e03WidOLS8_j>MQ?$h<}1M>DaTfF;%6rSq*=h`-I^g3*6?(N)J z&h3C-XZP*KEX(8Vygh|KVeWPC^PgVNZ!O;2pX&Vs<20U37Tf8AeJS>Hzb^0nbF#&s zVez}#xb(QeWHC>w?-e@7;=P?$$yv|GEZ*z(S_=OlMV@pUXKrlmT-V&|JjvYaJl))v z?-}Nv|0;9O-;lz$v+<hIqJp1cD;*1uHo-2Rta9^daYnfrXj?+@Z~dBWm- zx=*K=?n@T$(|yf++5YaA*R%dl_IGDle^|D^3)exG?e9Vz{;T$PTWbHp?SOy(oo_eF zZGYt3?Q2u`pUr){=jUg9JN%Kw`+j7_6#IoWAlz&E%Zl-&nlY?I?3UzVrK4{P^wy%kRf`^_IuS!}pr|a$IEY$9H|^o@d11 zvQ9q9>g{=Uktgf#xz-={HTUB?zmMA2>%%R-A7`by9#L)a-k#PJ(|yw7eY*a=NIu;j zi}(CX&3%3RuR6XvKPlwkhjo4_g@2vG{dKX;TT@#hcry?7k)pK^TX z`!(MmjZLxN+1A|q?IGsAUpU9y^IvQ3{rQd*KE<~G9>1^oT&sUPj!PE5?{`jCJh%Vn zSRUW+#N)UmkI&a5mdBsdnP+)?x_`5H-`~A%@jl(R&3%8T?)HoQnoiUH;<=u62iu)| zxPP1&cqq?=!Ok1|?RN4c-uGX7Sp10=e~5hZ!Jj9Y7n`4KUMf%OncTY=r#o8Cc5Yd2d>3Vy7J9d`Edw+}f10>Tw#qz}cINS4xsft#`Hq*fp8Ht5ukVMM`#9}1b6<`ZntPr*%su`^bKmZLYVP|He}2t< zQyZUnf6F!Z=}tHI>E3AW`5#K*FPi)D)IZI=Jzto6d&Ug*f#j2{zuulabI+3;>m{Eg z-luzoxwrqm6z=bH@I0?5KItdE9e&^P+&efgvEMG2Vw|(Cx#!&=Y17RA>3UKip;UKCb96KW%X0 zG0z+3-u~el|0Mfa-|u9ZPqI9lnkVAwJ&U=JT86xm|HSzlpyf_xVjcK6jCW{PB9pWcYXb zJs19iexCwgesCJeCvWJ#X+PCxBl%SLCh~lEypA#rUZnT}_zZa={CIhMKToXlDe@VJ zPimBWiiiIDbNiFAZ1O1yKYp68XXK^u7vwYHeeyE+m-2FWJYP@&&l=ozB%jLgRlH(eQYED-*t(;>W`GmS@5DlaGfVD$j-&%O}F) zeIYsU^A$fCeyKbj_r*HI=ZK~tKA!i4b&3XjjLw87UM8QR$n-#|VOK2hEQ-(5Z*et^6a{*Zhj{3Ur8{8f23 zJia%-2mUX`FNSZvN|@hX_+YtnoO+L}rluv{g z%9C@p9zR2#ocneEqdXV>C;1fkB6%LXM?Mw4enyyHKKwBGH2AUd0(hgm5Ppw5zPBgV z=Uw>>#Q#fP4A0hqX$gFSycAw4p9w!nUIxEMo}5GQ`rj|FfPXBng!jp-;M=Yd^3HG{Q6;jLvA)g7al$XJ)%c>c{RL8UIS0d z3iYgouPm>FZ!WKgZ!4b-FO)aHPm?#o&yzR7ZwF;M;B-rW?-- z#`esVPeuGg@_hJr@_3(B%(KTPA%6kluap_@Bhr{=kr^D;zBjJnX8SqKlg#4r7=gTwU zFUZHjM^6fQvf!u5pN% zevy18yi;BV-+qUXryPE>yaK-5jv>AhevG^d{pwBX5CkzH`Xa3a^m2!Jm=0!&l!W zJi{T&2OW>c$ zOW{-Y4egl;ua%dwfkd{22h`~dkp z_`&iH_@VOo@WbVu@T27m;djZq;B(~N@W0A?;IGLS!?!31_34H0DqjNsqr4CPk-Q&1 zARmD5b3mBxQuwvV!>W1i3Dg@_-J$M>|v_;J%iduAX$M_vp+L|y_f zk(a_Rl+T3M%gf-m$>V#{VmrtDHng(>@q5TC;U~$f;8)6L!5ih(@cZR8@C}PXduriZ z$?M>^%Io3Z$!Eh?J0#?9fL|(ag#RdSf=~Zl$TJ6CDsP6j%Uj@U9vbqr!pFgoV*i$v3w!?EqNFG3wbwu+V8`3d*DaN7sKzB_rkxBFM)q2 z?}Lv!EKIi_zMFgiex!UUyha`$9Ej`D1M>L2e$oFSPfriikN%@Pe!q6~jSmlT8HnFk z9^bzm<4=}nBEC{S7JiXD3x2PBJp46z{9eL1-L&G+&WVW6lIOs;l~0DBAkT$gDUaVX z9;e$P&qMrk@~Q9@jz}B&#P^WLJo)lzh_8?rz?aAi;YS=9@)yBBl*jL9jMLrns1RR_ z_;Ps({6Tpsd~8X`GZTKPybS)iyc~Ym(IHO-{B?OH{D5OZd=>mj`7HRs$Ai@<#Yh$A#%O!4H?uf!`!=hQA?ifv9AKKPUJet6nRA`Dl20S;(IW&zFydUm}m+YY^N2oP0duS3D);&xRMsC&F)#=fK~QPlj)PYRI1p zKUF>j-YU<74?8X7nF`-qo)5oXJ`Mhkya2vcdB|S~uap5pCKQ*5q>ab++Jmv5Lc?JA>c_n<2yb8Y2#UcMJ_;K=T_`UKP_==Z=Jhkvbc^&+Ac|H77`E2-( zmxlZe@LBRk_?z-3_>}69XAZnt-VA?5-U1(US;*50FOj#w|158Ze<7a-&$~S2?||3H z=ffAtJK>vN5%MgApDOQyx5>NVV`@U49{6$c#qh`Ez3>rNhCEB)2g>{4H_Q9sOXUOb z8CQk;OW_OTX)A}nCx1@1C+l7vejg4$Q=SfgT|N@NX>G`p0Y6JV8r~t#gs*i?$TJpx zlspUmf_ywY=MN!IHvBsIMEE!I9Qdi%hCGwuPs(%Q>2)D~3j9EM9{eWxRQS8{eE8Ct$Zf@4S5-S>-vzV9Db?1 z0^TjJgm3l7kf#cMv3wT%4S6+u%Ns+U8hDkw7QRSc2jBLlkf$Dgm3%h*J$VCsm)Rjt zBfMVT1n-m2f$w>9$kPnJPTm54U)~De;g*o64StEd9sa6(9(?0Jg*+YbYvl9c@5nph zlNv&vh49((F8GJ?Zg}pkAx{tdGWlZo+wxxcwzq{mOW+sE`{1w0`{C=|9`X#pOXW-9 zZSwfSpSb;By)on&J~I4_ULsG2x5`JtN8AzqeFnTpJ{taKc_w_hJ42qa@FIB@{C@d( zc(*(oKK`zdKR#a`=XYm$4&n>tli`1s=fan73i+qN3*~w6JLOa1pUU&$JKr7hPlI0} zFMz);FNAM+PsmdQzd$|%{<6FnKIzXPPYL{Dc`1Ccd?tLCIU!FOyj5Nf-}>GVUje^e zUI}0Gz7SspKUqEt{(-z2e)#<%PYwJLc`ba^<`7>8KT2K?Zq zc^CX(c{luUc@Ml?z8HR?ycd3rdzp|8n=5Zw}jt^ z!`G9i!#9(Ugin%ZzzgJ~;fKpJ;it>T!Y`F)!Ecd|hd(UOhCd~r2!B);Q` z>)}tyXTx8WH^ASMH^RS?H^G09&w*z=8tUH+-&o!P&ylyncbB)pr_0;n$IIuzXURL@ z*UIO^@0EALpOi0zzbNm5zaj62e<1IHe<@!KU$HgRvlqUmd(Ew6yr%PZk`$gALgmd}De zAg_kE$!p-x$ZO$$lh?t!d)H$A`{bh$ z|Cl@z{=R%He66{momucb<>TRJ$+O}2$|u6#m*>F8{3T3xGW-B}F1$uQ1wK!n2me4m z6~1PBm~K9NJ^3{FZ{!8=L*()Oc5%5}EH6U*74rDryBL43ycqFs%1hvj<)!fNFNa?$uYlhpuY|uLuY!Lrp9Rl)I<%)6exSStexAG*ey6++{+hfV{)K!t ze1*S;_B6m(lQ+WGmN&sSkk5f{EN_NSl()ch<*o4DVYQya4`*yb%7Cya@iCdik41ZPL0$(I=g})&ScH8_E~MHGIL=bLE-v8u?iGALLo^+vMZncgy4Z ziR1pRSw0c*t@0fBlk&;%XXLr?zsaY-JLP%sh4QKJMe=<3yYgx9UU>ohQ+Xl0UtR?N zMm_`nqr4bC;22mBNHeE1jgPWX57h43HcUGU)@p+9%SSCaR@N68n%*OvFf$I6$$$I1KP z+46q)R`LP(cJih0UF2zN{QLGlUp^c@U7ij6Y|OMXXLr?7v)pnUGhBmJMyXUK6yU;d-*i@D$j@IS^ys- zFN9B!7r}Rs&w%eOFNXhCUIIT>UJ5^5J`;Y4ybOMwyc~X~yaN8Pyb}JbybAuRd=~s2 zc{TiB@*4Pe@>+QM3t_p`!Pk`6!#9%8hHouzfbSx2gy+kf;0Ma*z<)1qh94tufuAaG zg;&bk;FrkT;WhGk@ayFr@Y(YD@J4wj{9gG&_(Sq8_+#>J_+R8b@MqP3zPuj(nS3^Usk{N6K0mCFjqp+OCiocn9QcOvW_Y%| z1-`Ys6~2SK4Zf?q9iA_r2j5@b0WXx#hyPCA2|q%<5Pqz@3qDic4L?=h13y!~7=Et2 z7d}hA1b(@^4}OijA6_pXfZr@%3U8FBjsExT|2^{I@cZTI@D}+<_~Y^nc)NTw{26&B z{BQEH@R#LT@PEk1!+Ye}@b~2t;eGNP_?Pm@@bBcg@L?~8`c8qT%k$u?%BR9d$@Ags z$fv+P4ybgZ9ydK^vpAB!9H^4jOjqtzAo8Yg>=fK~RH^bkP zx4=J)?;d>*4M4+3@G(4e*!cjqpYCCir6c9QY^l zX82d~7Wj|yR(N`6=+ABN)#dH*b>;Km{B3}x>U!Jzszi9lp7I zBz%%Q1Ac^jH2e;ECj4&sSopp2EO?82JiJq$4S!cY5&nrh2mXzGGJLs(p>DbGmE}|5 zqvUz;G4iSK&E)y;E#=eT+sF&xJIf2bLA!QH{_-8PvkSSHya!$*Uktxp-V6Uhz63tCE4054zMs4wez1H1ewchI{1|y!W|+=O zgFlk@znv%_4zH4@!>^N%gg47G;D3{khQBP&guf;q3x89d1^=gfJp2QBHhhVEBK$LX z4t)AQLcJ!#AC>3A+vHQ=?eaYMCU1oNQ{mO}eE5~}Y4A_w1@QeAh5Uu^!{tTrQ{*$? z56Fw*Kgvts%Xf$AmcrMR&xB{m%it5_Nr! zga2CI4&O~a55AYY170AX4?k4i34c<)5dNCH3!eK<+R&#PULfy*|5m;jewe%${;+%r z{8f1${2%gu_@sY^b`HR=mM?{WBu`r>{JXgQpYm?_eK`D9c{)6OaflxYKS`bee@#9b zp8HYbL5rq`{Y&dX8A05?kAz0)$rHkHSk69TKGTZb@2D)_3)46v*AnR z4e&mBBm6sg6a0Jm9Qcp&W_a1ZLLFM*UGi4=8}c@I;in-_JNz*DJb1ah1Adu&K75nD zkiQfDihLpbkk3MV7yJczH~eLJ4}AB}L!QO(Ir3ikHeZDJCGbXhAADkei0_AY%Lm~5 zeHr4H!v7*qTQ~eYZvSU|6@DKMAM!;Qe~?duuQ4pd7r?KV7s9t%F2onXXUk{6hc6%Ei{UrROW=D95Amh&=j1ctxhsVD zGI*Q39RAx8A-)1WPhJV%V#N?&1%FmP3tpBU;;Z4G%WL2zzY6iS@LqWx{K}O=d_DYI z`D}RU$|1f1K5S(0M)CiwQNg!nn|`{d2=wN?%BE%5W?t?(*&8+?|$9bO}!2d|ZP zz^|3hhu<#mgufwQ2>)2#1^+_c4gXf&13zfBP@l!{Qh6`@GWimCqr4CPy}TbjCL>ID z06tE>6h1|sHYRLu;`V=U`Ed9_@^tuI`AGNzc?P^&J{mrL_0axI__p$~@IB>O@Hgb+ z;UCJg;REuC@KI}o_T<2e<&)tZ@?7}Vqe7l3@KSjm{A~GD_$%^!_=oao@Rde~=@!5@ zkr%?xmlwfrk}Pgm=r!;M=Yh@|VL4Lg>R4<^3=h1kk`X+mCuHcS|{XbfbS!3gdZ($g1;!A1E0EX z$lnYEf5y0w zXE;1&Y|WfgpO_td8vHbQ0eq>v5PsKYAx{xJXY=4Q z;63tU_^&5~_!9Umc`5vI`Am4NybS(Fc{%(xc?G;tUI|}!VrXX-d`I~#_|Ecb_zm(J z`087P{I&3H<#q5s$m`*E$Y;YJl{dhjmp8&!-!inP34WM-4*WKGGyF4o3w(#ILjG3x zCGs}-3-WgOIyoWFJb1ah170tm4{wuq!dKopZ^Bc>(+?c_I8xc@ccBd)?Ns*TYxYA>^42pCE65=gAx4 zd&`^P`^)FR3+3ry^DuOl@yzA)%ixa;^9plaW*myI4NV`4%(D1v%(Kmx*Z)s`E!rU&fbXc^hZf-A|4+K67S+&Sbb9wEU#j>F_2C%* z7p((2T>mM4K%Ry88g+IJ$A60dO0MC{Pu?>;Ojw(VpZx9E|B?R|&2&Eek=Xy?|BC$| zeouOsZZUlGUj;9P$L}vMGgsFf`Ue&8ja8p2^EE>1q5oFH-__sZwk7#<5`UcH>Jfj5 zes6&PO}{t6Khp2b@L#K)t?)bK?eMSU9q>oAd^_QpTE1Q8S`~-pxCb8lZLj%Ss!j5v z58kc64ZwByl9s0SCVx)yJgT^K_yTzbd~?lLCj1n67W`UyHoQlk1J95BAO4s;55C(9 zVTSX~GgX7+M*+N0e=CAtDK9qHsq~@0l)_`3%iyujabKB~G079_T!r{p=W2MYb1gj9 zxgH+t+yIYtZi2@;H^XC{Tj8b`9sZ`g1HP5EC!O#o5c2p#%w9z0k5Aui8kzLNNh)!zybpQXAKna43^GJ#_FR$9KL@KSjh{9AbiyhPid zD)<3fUe)lA2Y(L07iqhfrsb3Tn#6yuev%HqQT-$X9><57@Le>$ zEcik4YQ;vM6IHhg_~r5{_yL;VYWPIWS1o*|ydIvW`D%a{%A4Sq%bVe=sSd5?`LPItKilE2 zYQ8$)BQ;;0@Z05G@Oa*@2Oitk3*T9F=z~v}55RAdr|D<19FzH4s^8P$N2op-@Y7VE zOn8R2OIh%n<=OBB@*Ma{+Fs?tzmn&fPqXEc50B%S0{ExeUlhSNQGYImpDr&o-`}QN z22WT13V6TrRGAl8o@)3r%2Nx!LV4=p8R~}(@VGuU!CMsH4DXh=!Y8QTw!?3dcfc=G z|LcT*Der=>qThSW548I9!q-%N`rvD+J_F|QoX1c)_3NbnC;pD6kq$p32^joj!2c}I zgvW7v7JL=8GaEibo&*1zJQseZ<|_}rSe|b_Jv4pjzXkAo{jCUoy1dxD$nuoJH&;8$ z;6IK3;qf@O3cf(?uQvakO}7@V#|6^r;gwo04e+?1YJ#sB`#*gD*#F^6}_7R<}5=N#YZKM|I9b z{0*9~Eco7Pe>S{Z_0NI7rF!PV-&dYI_-{48`S7^@7Qpw?{1%xXZ}VFWU!eIdh3~5N zm%-z9zQTN_<*$P0>u=TYwN-~&^D@g*56@Qp8_Z9$_$K&~`dc%6cjaj{kNd{tpR~i{ z`KS)_Gi|z^@Hlqtg2z7BV}6$9>4nGrS|43?8-T~{ZJNf>Nq;`a@~6Wq^tTN7i^`t~ zzaaL1_^0Zh+2&O?-5huvzvaT?`RF|OD77aaevrHXevaBx1V35pMKOGJ)v**F`%@Ww zw0^IEpReDm;8*GQYWVZ|y%xTi&fC<(H;(-uULkLSucGZqGyFk$EBtGnCv1lwuJb}2 z@H^$5@aN@S@U3*ds0V(Wychn4ybu10&La)LKa{7beo6nIW&JQ6o~OTMz~g!vujeFr zF0njW7N7V>+J0uk%j5PR{#SXfd9~%wga0M=e|S9qTL7<7e<*^-^JvBJUA4ZH!rzgX z!M~JOz;m>IRl%>8SHt(v{<{|bxx5}8_XiE|Bh?R@;CINI;TP!lR``$lz1_UVmP-fx zJ}vi7c)VYt3;w8#Na9(;y=&xij(+nECRcx^X|;K#~~;j3x8Q3}6C z>s=ZAX2n;SUu*TOg2!tQ)#le(d@a0Jf2)VztL5GRe_!4NkLMGb;cIBVTH*0LQak(y z#dpBtexwt=f%-`oe0zBh{49AdJRaxv!S7Rl8-T~_)@kY&N&ipkyq>lv>E<_D{WIX% zs%NJ8Ef${ze@lPMhLNWu1GyYB6xn%Z}_zUFe=6A)|!JirM zSpQ6TtbZ0f);}8_>z@OU_0NUJ`scx8{qy0m{sr(@{~~y-e=$7PzZ4$pUuJ%{)vW>^ z@3X3cU#s=8+I)`Xsf9nQztzLzeP0dc&6cML9?v5+!%NkkR(O-V-TXnz-vN*J_jbZx zR=@3nZ>w=d54=j=3y;@B``~%nUkt!Mmd6|Vlm4Hy|EKG}+HXhyy{4N1ze4+$O!J4W z4q5Pj>2KNa7S%Hc{)s#ne!jLRdGIuCAM)YH$P3`BYrcx$mGWYEoxBwOvb+rbjM`ZN zkLT;E%pbG5Rm0z_{@&2nOc)b6r86L0Ww3uCY}b$Jmy9)A_XkJb3F)ch%% zuQK>{s&fT=Tdj{(=FeE3YIwZ=q!#|Ewx9Lz6;+=G_=cL_CU~>F8NNi`3cpEpXop{~ z`Raf#QhPe#8|gT%%ltX3Lk~P&r|5;p^Lu^pc%5zlewykw^bp11^pgHRG+k}S($@%$ zh`w&@|K`tIJ2Taki20z*G`!&Bg=C6j(q5tN>7pZP}@Mh)7hi|9;PyoLn z_J8=B@?!Wf^@mdUM)ETF>GBHrVtEz(67{QU_!sh8_)1#7_2#cz-5TJdRJSJce^`7o z{6+n(6@H+WV>`TA-U0tk-U;6z_J8;e@*eob@?Q9N@;>-g>JJ0(W8`Ui*eq#YQiph7 zR=W8jt4{_zPk+mV$7_CB=5Y+0{F7{Wd>$|d{;K9H7ybveKhIpRs2*xjK0H3hQ2;+f z%cTgux~5wUe_37%-(T%1gLld+;P1(+;7wZZs^QirSN7{(-eW7yi@sAAXYBnGYYQ_7uPu zX}U%5c)hF`{;=|t!Y63H%HXx~3ix{3&sLd#X!BbQkM~{F!n4%=did`&-3EBPKfDRP zliJe^KSkaOpBTsg@V!)@4)`OA?==6|=C=zT&ja_s<9WYc^FGVd2mfjOZ~nQ(4?Xld z_G;?DD~r#D7wd01@OXYQ7rv$1lLvoV zo)3@rpBKPS(E3sY-$wna*gU>NAZcnTJYEMWgU9o?74SVZ-752MRfFV5H9X#bQVXA_ z`K^avr2Gx=8?|0Eng3wZZHBL;I<&&?mAAv=`L_;uzS`LdkL~Y*AE$Qqz_-wR^}^%) z_QB(G1OxCVwVtM}9cDi1=Sdy1G~IOgB(1+0@Fnt0^P!bSHO+$WD$j-=F3*8aSKV^q z_sa9&JE}hU@VH+nfM=)dO&))~HRC@;C7pOgHnW5lGQk+^K@%}COnQ$vfu|PPd5BEd5-x? zmOmH1r}{}Ayjq?Qzf0r80{F(7ZV`MJc`-abZ&C`sNAYFwrSb~+v8sO+JU)j~4L?u) zxfVWC{h=Oyzr4YG6{}|xJdQV-&GpLZp^CP`k5!%9&DXH}9q^dH(|okWcfn)+9`m&= zz88L(+S3PrTs{Dg@AFApCj=y^ll+Hj8tL%GT3#9OrSeSpXf3ZSbG?FgXoA`BcwCkP zZx78&%Y_e9JM-Z2Irn_{PvakWJa1D3kNc5g^Z4r6q)DalSpPD3tbYYO*1rlK>t7B3 zhw5Al|4d$Qu2;AYRjvUZ>)ZryABs*(Ylg>tUMqZt>fa6@q2=BI|LOjJ^LURyGU+b( zm1<89e6G9~9?!A%!KbO61MoTWp_kDN=1hJ~+OwtFpT2IGQ1m!n%`lJewn-v0;Wgo( zr)9z8HM4AZJeQpV-(T&_g~#iadGLeP{(Sg}@&fZ5)!;A^>2p9`nSSk{oCQO{vGgG|4wtgYH+Ci zUGP}{9(b&OFFe-24_=^UJOGd9Y176GO@65VC+*oL_J8<3@(lBxt^Z`gWBs$>vHscc zSpOV&JkOj9kNqbPen{;9@Ka*{H{Z?LUj)A*lqIbg-X<@FC&y07rwo3urcnWZTifj_ z_}B7k^F6JdweZ-^dU$MS1N{5Y%(NzWyg#8CzJlu33Lh(PH{ZwF*#VF3?1aa5cEMvi zd*HF1z3_Kbw?240k2hexpS3e>Y$!-ViN|)P!(%%$;IW;V@Yv2Qc&ukOJk~SE`~Yib zEH6u!N@%zV1FzXBfHUj>ituZG9=*TVBP zje7X)@&dS=@TcV2@GW(`mII$F&xP-< z!Jinc99>=Q5oEE?v!|bOO!Jm*9!(*Q)gkIOL|9+zVdJTAvvcwCNo z@VFfF;c+<@z~gc(g2&}p43EpP6dspj89Xk>3iHElIaa}M)p}PAe@k8qzd^a`;qg9) z26%iAXA`_q>ti!~w!9S{-y72oKSJwi2Yi^;$4+>qybJ!NyvMxQ>edU7b?bw_rMeBk zW8Km=2mwjzB!8@1Iy}}b10L&^36FKlg2%dL!(-iY;IVGG@L0Dzc&uB#`4LvP0(h)j z5j@td7#{0Z3XgRwgU7m6z+>I2;IVGi@L0E6c&uAJJl3rN9_!Wwk9BJ{Kho;f3Xjhu zw8P`}wgVpb!JY66HH|KKyf3H+zNgm5UU+WeTzFhwdGNTr^5JoL6~N>2DuT!5RcwCruu!Yy zzoqco^rtfTVtEDpMdhl3$MIw}{9LU^weZ*F_3-cH4e<3eK52rVDsP5=Aa8}=ujfhH z;geSnGu&Z*%rF&U@JA;+)~yR3>(&F0b?b%4y7j?h-3H)qs6In4Js)h>u)+T&?fgNW zJ}$I5dc4mn10L6lO!!BtTNXUlEgK%|mScWwGI4!!;kU{2;IVG`@L0D3c&u9yJl3rk z9_v;Lk98}9$GTO(W8JFYpQvut@V}_P)xxK$ztx+UTHPApr>SmD@J4wv{26&G{1fdL z+Tq*ixU~cRp}Z6Ri1Kv7OLX5|5Bw56FVhQ;?;+}gAGUIsfdP1d@}zAP{+^U9sat$s zeLDPrks&Sv-mzTpO!zS6&oZBB%Ox9rUPzOc1HWIM3-6TY!Q=Z+^Wod7{sr(Q@*;R# zF2(R;wOmT!S8IOD;Lpn|;KypYRKce!z8e07;%ni**K(o1d-N zq;#$DSpRl-tbYeQ*1r=T>)!>B_3wel`uDi_WgK7lIuPyHW$e(eA7Eo1+O$8!M<@J`KF6MWU!|IOpG@=57h z%`dj)(r$jKd53wmc_;ixEtf9%b=scvz_(gH{DWS2o4gMm-(NHUkLyL+CLv$a#H5`U zYkf(Fzar0o@3%tu_nGi@Mg-4-Un9?kH_LP2@xJ0*^BSvX9z51FA0F#j0FU)7g2#Fm z!(%;5;jx}&@L10Zc&uj?Jl3-s9_v{Pzh*?Jb3HuPvjHCK8U9r`?mJt3EwL>9At9|= zLy~K*M`?$o)?BCLhNQ_{x84s)d}bucuUj&Qe2SK7;<{C5$m6<`xGv!id7s6P8*zNLA()|NgAZvq`fmHm%brJE)p!8C#r1T=wwh=@tp z6*YlGI%624f})~LAYsvv#1I4>9m60(8_~G$!lrN2PIjbwg8xV+aSM1C)w@Yw{2pZtC};d3O2eR2vvA^ai*ze>R`SMYZf z{0arn5#vgdbCrTGQt+!4{7VIwu}zod_cKY(^-B7n80Qjxmx51M@TCeazxPP#?^f_P zl=Sy1c$bd+gwo%y;FA>m0R@-esiX8O6uid){DkmF75pIuU#Z~ods&oTu4&Na(sZ7P z@PG3|_E&ySiSQQ`d{U5~5dN})?^f_N3SKVeGbsJ53NF9PLAZQYjxJ}5#)$AY2@t#SOZY|w|5Cv>EBJKrJ_x1XuHdT`{09Zk6pb~d zmu)y*o~z(Hl=SjBe@eeg!3THaCxq`&@W&OLO-71q{X}O#>61j8PnRxNaP_^RV0WI8 z(g)P^3ZAUs^7%SS-%-Kk^Kyi%?==KPCq%gQ3o2c^=SF~Si#E_eE6X}1<6s@E9E*k;c_fYDdoB+;p+O!q)fWX<6oWU&&aZIc~3)# zoW~|P>O8HSw!qxG!oUbEX9Y2rm4FEsFFQPxm3(F8JFj@wDTC<=yeP|}N~SBA@RFQpe07@jM} zX@rZc3}3I{{TRakY*6qc6nx_0{DkD>DR_l~4^r@aA(YY&Rq$d3AEw|>EBG-AzDmK5 zRq%R2j^yVnctpVq6ueo%3l)5`f)^?H;QsuC^GJR| z^3PT9BNRNW;Ef7iuHd&Sc!h#*SMW*&|3$%PDtO@lenNcyqTpi{{89yPQt)~Oe^tTf zDfq~v_zB5hq~Jvg9#QaS1;0_jH!Jwf3SK{upOF096g;Bfw<~z^(RTWW6ugsyFIVsh z3jTzGmnry@3jVQzuTt=@6#PX6AD6>Vi2v&fevX2_q2S9De2aoVqTpKDUJCxPf@drER|?)o!E*+4#>D4v1s|c{{T2Lj z1s|Z`ixqsJg0ENb90lK?;DZ!=zz~~{`o7N)1s|rQuUGI93La5#d9O{9-%;@6mGqw| zc)o)76P*P4XOx2HDtMuSU!veAD)<5g4=MOM1y|pv_&~wsoH6mw7M&CE8LP-SO2JQ7 z@VN?pih|EmaQW^6$$vw^-#yY!udb)GJI==EDCtWTT%G?vQ^DmkH6-C)1y|>*mn(R^ zB7c{H%eftrV;)a`x!O(v$5W-3ND6A7B0FQLv;HVF6dcv zL>(ZH}7gG*l?l?mu=jiT=>x< z{hwX<7=fSa!Y2t_j%}n~S@yGB>0c1(<=8-`Un}rCUFqKx_@gfT6M?UB;c{N@V;8F8q6e?{ML}1uowk zlXm$9CzQU6g1@Zb2P=50 zNJQzyR4cn$tl)90A6pHO-+CCLD@tBoJZ582<@_zl$yV^|g;2u9ln=Xl zt`JK2044pwhw&4_<(P|*v6=LjuRn@gUUq(H7Td95PaZ#HfAjj-xEyN{@?>8dmt!qL z-s^AUa;!y22QjZgeDVnpzc<8u1>uDf#Qs7-j&OB;=?QWFNO*~o{x)$RN4Ok=(d7rl z{S@J)1c={*;y!}#QzeM~YvO)^@No+Mi?}Z!{B#A+5ylffLBZ#U`vStxQt)rZK$mbi z_M^+i1w0YqlldY0yKt0^mn(SBA{(Es;3LM^_<0I`yl^7PuT=1Vib*=cYZUzCllTeY zax6+n+E^Q(%@5h%PZWHPg0~liL2@oq@B>6)5dIehpCAf@@OlNmO*ozK%N6{83Vwxx ze|iQ#q4bLseCF9UewBjXGSSAbR`3VTvGGO)f2+*KuUGIL3Vx%4&l815d~Q>4Q{3PX zewTs|6opFoQUyO%!S7b^hiC8;N`J3{f1}{{EBKi6?eq^Q_!A;HNX|nFe#lHa{R#!2 zS!LsoD)=KJm`KhO3jRQ?oqnZ)mx&;w^v^2ziaI;}zZHC*2tG>xf`V@q!AJNi1;0uJ zAK@=6`0Oi^@QHKU45iL}eg+gMwFx%0T!R3cmbW zenR+H3Vw^IB!q8N@K;48A$+rfPr8Ml5WYphU%%DHw=4MRx7+v+3f}%s8~;hc*DLrA z1#ehlr{AUE^Zst*zbg33du)7We$}E9669C#ryt}A2$J{O zglt)E#YYrVy916(x0Z_>N;$lf;;A=6DBqz5ii=fI`8_zOE#{~uZ|Us5y@BQQQv;WPOr|FmaMgLbzXFpXrxGv zoHL=6AHHs| z>i@uZx9?HkhrWOM?(^N@d(ii!|6jhle4qN4`j+^X`Tp+P=6l}vfd4!Ha{ps~yq!H~ zX2r}YH5VD-v;KTq-JozdH#cu`*{m5;!n5jXXH-oqp7ZC^fK8cRRvWIXEt^p{t9VXP z5wH~%Id0X2`Cy?TTxS4Hl?Cy=FFLM+A3`5jH+1`wRMoyc2VK*jH($B)pki` zvu4ehR+R`zwH32wTntwwfKyFPMOAqMB<1CX!_#W3=Y%I;6fUbO4=crq5-mN6Q9Y?m z5i+HEW=&ZwMTijBCTTXo1W2<2E)lXsoFvp|3E{|#F)XbhWJv_N=%K1fY4&k!X z+Ac#DA8V?@;W@QsHQ^a`6}82%wTOv7tuAkPI9xZKMR-|xxU9Ce?4od0#hh?uMb)&r z=@%LU%PS_&o)#{fJh`^wLTbR;6zq99QX7{auBff8t}SXo@RX=_c8a^51yIy_!ErX= zw&3d7b>Zr%;o7pQX%z`&94)vlEkNNAPEIQ$PH!?91M4d0))@n9D=N#_;Xu19%&Dsm z&*2?m(M1F6%4SsQ6OKT-IFjY6^5(`TPbLe8r_3$m5!^z?1a#gBmo953dh^7~wz~Jk zi?;gv#EZ5D0Erh}CPxGb7aenmAT>^#G9_FwcS=P~UAV4na%F{5q4sHP8Mk6b6>d}e zJebGcMq};nvG$gYI0k7Z;XQ&Y&B#X|rcmRMi#cTJGX0 z^3?k0zM7XaS#xvePL-Rdma+TlzR!WhAt_$JxUAOOHCjo8z?bGh0zX<7^6?11PSc%2PMv}2Ob?H@N%Y|TCwWSB%|%6}b7txt(v~P6s>F$2dYgQbJBXYTo;ss;7ESpS zQ8-#^be+@w)8^=|+NLIt8C6-Pu_=LChAFPAs*ZMF0#yyQ4cfn&MD^RhVW3lzIA`%{ z?y$fiye+kHgtbIMt6ccWZc|rP_KTv}ro=hGXuBzGRpc;5U*Y3aF_^c%Q|$6^$krA_ zoTBaa*Gqbvm`At2iW*%|?LTb}m$gleyZu#cN}v{P`@4Ts>Du4@qRDC+73m2N1D%q@ zm5XeD6$|1J-uj!0Q%^c=NZ79N@q4Mws^Tyw&elb_N7`p|+N{c9j<&6g*JJjIyvv%{ zD&n=G4JzWa!n*Igvn?+B#$kAcK z!oOw7ZR)g@rl|C!DT$}zZwC8`Sy+V!xPSRbEwkqK(ihNmvl6L)wH#=um6w z$u8rBG0z_vrzHqEf5H^A4g!YH_&7Hlq9wF(Oe~G)4?TNmM3EzIRb1 zRE@?A@1l;gA8KPjwO)&d5&EKNy?F1UAXgYc?CDvxNklx*Kh3d38xuy7$p{o3Mci(jKf zdsjvm`8Zu1ts!9%oQsF9XHCa@B-t*#<*HSWSmS$JBaZoTr^6++dV)bbJN4>-!U`ImLXv`SO%Ht0(B*BU_rm!CG z53nS$dNhVmna|k&RV1NmG-k9=1>PmMh`aIm$~x6IZ`=3Rdk+pN?Yp$_d8tz>JZ*9cbhTgl>LYo*o* zb+9dOC0i@KMzF%xN){JeE44=GKHn`^FM3aj!$jwVT$~kESuU7qDM^?K)&#pP+uND@ z<|U1a#L<`UyzK|ii23{d=$I%CiSvtmt8RbzMZ8sKiB5RH$oKZ72J0nMTCl0BF2kMl z?4g5kP&Bi&r8I-`D9w3R8f_o2Pn9y(Yj~2?z(o5dZpDsJYSXlnb3Ifxa}N1!oYawx zC|0l%F5YT=S{8130LAUfya{VQ}z9n z)|Q7?UX8+i?AxqY0IWE1$TJYhm*BcgeA6Ca|m^d;I+ajMmrSyNdYXMxlA zi(JJxE<7$LJT5m}gjhXoXc!M4jR?!u#@odGrcz^`i*THC;s_1)AeFQww%|B@=oakl zBp300lpmXToE||VvVT0{5^N3NT=vIHGuJ`WOIn=X#H)g>G&)|I!kaT^LjGW@%ET_M zc!_J}dwC;X(!v`~(q2O2WvUhG?$9)ie7vNEC-$$ORq0+1iI=c&NIW82>0?!--oxQB zB`1$6C<%xEjFx@`|M1h)+Ul9&Gd=hyob{eDYDRQ_5GSD`*{-(K{Qc2fw3SaKF(@b6 zA&z0=AL)@lf((n~T-T_RjMRPc5JjKk`s5+|6jzS=%|rSYmsR-8;pJs@WdjS(KsZhv zh!@4?&JEX8)Xu8LQ;IX{E(%|mBO)by*0|G8tBZco9iJQzz=xUSNM@S46j=ai;Qub6UvcyjgZ zs&Y#oL|dw7RDm6xmkgwxaE9Y{K{~<-vd>gbM-JjLCrlr$#2K&q;>&I2M;8( zCLCv}o?S&}bEeF~ZMIYjhU~13-uWebev7LGVe;SP_|W^9Luwp=-Vtz zc^A6PvaIKn6JVruJIrP2XA0sh0P!Gg0wl@z-N{vLq9k6g#GB!5_PSDnOjw(EMZY{L zD7HD@fUE7e_L5+YPvVG<%)S78z%*s3sz5GE^3i?ZVEQj{SA zZky<(**2HCUSwOUwKDKfNNOd<8JDe)7^fqx(M*CE#w{;ieqvCQD0*>Mm6ti9;mZXvZKJkPZ zu5e}9tm?`OF|mbz>cJ+LW>#NV;rO6@ zcuFO{rjKVcD=~d0KUr(#X7fXs7OSq6x%iA0rr|1#@c61Z^pUnxD`w$?m{y*e>Kf#L zmEoziWhzepnL)k4r^qU%%XEDD(eVXL#3P$}bb`#%a?1f^FrBIXpHf}rhGxx~fu~Z# zcoLN+yy$IE?kntNX~Nu@HI)@KrCDKT=T4}sE(7E-i4}kKkPp|)oYGcdRzH^jQKFYi zfF$c7x;C3#9@I z;Hab{qM@PD(2!_oa5R*w!3JrP0du%glO>aPzDq9Ej?Uz#cp>I@chF*g;XY4vU6{ zL_@iQqp`ebDA%bCr%|QAl5it5S93@JyBd8l&tXYkl;}axP+l~Y>lB02Xo{4CQ*!RI1kO$99*@FK6hYrk{o0oU0RGLG;AFXw-1N0L%TiB z%ZaijSBH@-J6EnI7cfaYhyNGZw*US1e8cc*#4MX}07L&S{@=PxqWr5_2Km|>?B84m zWCF3zcb&^qzdR88|D9?Wom?257QUCl(4e^X6%;4oSmu}eUVVjrx~Tl}#qr_Y6cC3} zoxKSfq$06*+g}NQ$#Ug?x<9wSQRE~2WV_pbFaDD>X{mn7#ABFrn``6}i`;!&>)1lvO|5BmfZGY)e+(OAy+Uq{| zvcFyvzf{j3IEruZDkD4gcKHdj7#-obf72Ty3&{6i&zzsOJe`yi8>|4|rUP!f0h`!V8@ev&Ugi$3>izt(HYFH4ap<<@$XU$fBv zM2zyA=}~?w#&Y}Xg(9;52;r0hbe$qc!W4~AY1~vR?NF#a6{X-~JUHLVaasM456Y|rj z_`M(bb^NDSaQ=-xo{{)dm*OrzFaA9={EtR{Nk{I_LQv@V2d8qq|Bm7R@yM^^ziT?@ zzew>vjiut{-%s$D<=U(METx0(bWRiBv{V;Tjy7J2u`q$GO3r^* zd!Cizw?xDLHKE^Ke!Fht`S!K^>NNJ#kW9v{+)qTKri{49F>eLC{%_^*F}^Uo0dFY!OO75typ@IOVz zzrUWp@d9T&h>?@*HT;oZ$AA07oPS91e_1Q|uh#HCO~bzmor2E)`7d$KU&e@^8OX2W zKm0Myf3Cv6ycPV{Y50%V@NXQg=by8N^M8QvtiSH|s{#3S{8v25`8SE26hG5&>~6oj z>hH%I{&Y*pbSe9^L-qWd1^)pt<`3EQxJVdG_FsTZZu^H7=8aW6MyGx_&-yq=imG*XM7kVC)r2y ze**cn{F{aUeLOG4|KD)v_J3#GRO3?A{JF80=j+0E)?XJL!>jyCH04(fDKfv@ukwh$ zOrgJDJ4-b?ko8%j&w0e(+Ap~M+ZFq-Kqj~SUi>F$_`6X|;e{+Kz<$noK2j6 zvQR|)uWAMV8V&zC4S#=*o_})+_kXPU)4iCK)$t$xE$6S!pI*}n{+DR@U#Q`KZlRw4 z(lpNh4&+gP?)W(q`E~r8zT^CxL}v2;bvTYUeimu?Q~$+uDfiO4iH<*M;-n7K48-^6UIx`ZMRR z-hbYr;eVsh?;gK4_2ByVwg10YV?Xs@Zu@^K_OM^*-z*)7y!3OO8rzUxXaDryxczH8 z@_gifie-2Ch5p3#yX}AOsJ7YvxF&w*L%-Yp?}|L^7y4t>zs<<6vp*+=Pnmf9`1o|2H)8w@}0X z-7$Lp`FWiGURMQh$KN{S*YZ!}{vXc6koo^U4gdU*KK}AgXj}Y!tSP?+jr~{T>+LU< z`elJ5Fa6y1&&$`_->)mTKSz{5)xUotf4uRxNyC3J@=H2$KcKgs|D@5}f42+$$jW|h z{)Zz!la(Y>@co2CIDa+%mg7>q{D0E$r~X^=mit*4;1W~!{HZa9^S{$Y*mY`DA-|S? zPtIRmzg*D@{>BF>NNrfpKT!Em|1EjTeR~kn@n3od=TB?C>d(zT34o5j(Vz2g6q!js zO)1Cg|1`m0>ZANOAiv}-_g}+I9sg#*zbAKtWrCC^fepB> zjs0HyhimvR(eVEq&qtA`-0jD@D(=5n_3snp*YR&08D0NYwSs@4hX3C+{FjUImz#gE zn)A;Q<8NeTKezvvA-|4)=5d_A`uyZ-NN~rWm;XyO{O>`2rc2r9LJcu>^Uts2{GY%z z_2=e40Qq(NpDy71w~NfweyqW9y!_|y2q&A(!-p1(0WKL1ZbejWd1qoV!)S}XWZ z*YIDa;eU=t`;~Js=RYY%{7mp@zw*a${`JCPTzAif7vOVzuJGkk4#b=%w|6?|KFjBzsHe7`d#ifivHK_{}oqr{uhYxi%=KE z|8wNm@voo2`R6G8|A!Fb=3gkDe|5)S_Dx*B>-NjyFZp=c|B$Bqp4Qm^az}mn(@!<_d+~o-!~Yo#|J;N0{OfPw{`)n?{m%g8*YR(f#QDqh z3u?bMw1WR?4gcpf{Fh_?lbE{Wul^3s|M?jHUxxfT{-x!dzdC>VWh?lv)9|P98`Gui z-^Tryj(`3V&VO2r@$-L?U&nv_RL;LtxqsN$3jQAp{xV*v{F)Tr(vGJ*#=k3;asEfe zsQ-_8jDP!8asCrT`%U`4(eUpk+JATbZ+@8TmpqY`{oLnX_2*kn`K^WonP2XkU>|96 z$KQ6Lzjp_&SN@g$l;_VPKa=H()B0K5e)ah~T2ghle_s4|Y52c_{F1laU+q!21bEk&? zUxa>l{ki20uD>7hs6WYDVqWo=sVTqzB9qK7_gg&TuSw{CAV&Os?Gb<5ujKZt&!7JW z{qfeH0UG}6H2fE1{!dqaHE(nOg<`bdi;!PeemRYtzuJE9X$Ak`8vbu-`2UWVN_G63 zKIZ%%j?w?`LVg|p`kOg__4z*&BIEUcp@#oE8vehXq~~AL%=veSQGa$IzmEUf+cHb0TmV2sZTK?NO{|BX` z#oq1z2ISZA-*i9czg^^`_MeuN4gZfd{I3$@AGiNYw{!l7#<>4oi2OSK>z8r< z^}zAMMfp z& zvy8RxasHViKk*;X3jW(Q{D0K&Kf`1Gs`)6v-^I)A|5H8YuQq+i`K$9+N4J9iZVmsR zHT<_ijn4l|b2#zWWAq=JkYDHjnol_YwTl1gks8??%6j1yKgl2QhDV)0p!;7T&e~sz z`DY#fnxUM3C`SLW0Qq(NhkwrbZxZ%X{0wOY|1N^REN{yHi-!NSOg;am<2e7@V(_1g z{5t-bR519d_dmlm{9i$Sz){a1Of2I1rT5;5>>(59Hf4YB{yyd=KFTMYRr*r5Mxhxi=<~Qzt_4%n$ zt>7Qh@b_u>AL8-+L-U!O&?MqOI?7+izv(>A|Lz#$uUC*? z$G<66v^>iAr6^RKDm{6CCQf1g5rE&l^Jf3^Mnvxa|f z(f+x|k0rCY{!F#-aV&XD_{ns^UjkxZBk~{P!lgeX{0Q=s%zO!m{rWDPf1@}j|DB@Y z@6~=@qVfL$8vkz{t@r;5!JpRL)t{UHCgj)ofBHe3KlOR^BmUzw{CgI1{ciu4U&#HB z;j!cA_Wws9L@HciV$_TLvHbrY^6UJ+^x$a!(<6zpIfylWx=Q1Jnm>{J<^Iwlz5km8 z|5*N?i~LL$cbDa>oUYOSKTE@ZxzO+Sf8Ct;{9k(k=YOE3nIANY{FA6~l%I?rxxW(y zL`mG`w|y?xAM5#(TaaH@e$z9!{qp@WiobI;_U{ti^2a?uD?#x@PAb3ck{2iIzIjv ziSl#Df1}8MNeupV$gktSen52m&?B|(_<7eOe$sA;kN?$!Jp3>6-xGs>1o?IRGx9ip zb^JY3!~Ywh-|hd^x5mf+oe_He%_4s+|Njs9b^L3FMf<--!#~HP{h7EVKK`4B==s-( z{IUH1CGzX|uNWEa|5+OTMWX$4`@hRS;^Uv<;r|?wzdlC%_&xleJSy7%7i#!V75d%$ zSNtTJJp3OT6Yc+tH2nV}^t<`bT@fGuz)|}6X%zX7ioxGReqH=5 zE#dst_Wu$MfBH@}VD@c#*(cJz>52IGKha;$zggrzB?kW$$gksn%PE|{+Wylc!S41m z{YX9k!OzCW|8)=lmx}zc{QruF|CgQ4`K$APf79^qGf>aJz9~Nb7YqB{{nt{FKbHSz zBfrl7HD^cre}RVoJ0AZ3>E-zNHwydR{DZIX{FO1{rvdqO{OiSs3)S)4A`Sm79{#`N z_4xRoFhC#wjUxZz82pbxejWd&3hsZk|83ClzfI`pZ0#DH`DT3l7ayzVpD*%19%KG> z5%TN!XPnRZtMfo1I9e~O3ygRe#FzgMIG*pd4BzjPYcpDyB8mV!I}h9bW%{xaX? z`o(9k`TPGG{pSe%ytYX#hOwfK>(90!c0{_=-_6JA`8SLF-DB{-4*7Nb7kw7Z{{apE zl|sLp|L%G5@!#y>|4i}V#_=)uf9c`>?VCCOQn7wW?axCR{;3}PCtVXC|Iac6W3)(icWuJU)s-vZ=kvRwItDct_`B0t67N{#(q{FiC?U#{W* zrxW%3w+sHS#^7Is{5t-d1pn;{|L0o4|8Wg}dZknPUG8u2;NP^2mwzn&*Ld(>-$BHm z!v6&g|Me&9+yBM~xc+-$#Q)pKPqyR>J#x1;mFu4_@>BV*(&#_4lCW zj-T|K1lRmo&%Z|GkH!B*Y zEPei^&v5^H^{^b|6QbMKZ-^9`P}W-ja-w|$646= z<$0m-zv0TiEB^qNM8*m6|476C9--gu|5BmfRs2@0Kot9ZT&|CwnIgYPX6c880$<4pfL;t$d zxc+4a@%-ff4I2H^JmUZEH}PN^es_~`%1`Q-`xNN+Y1+@Z;{O-RawYxrlll0WVf=J{ z^x6$wYZmdFf$=&0D4%Zr>FC^HLo=0MPSi0+h7KOguH=r$9g)KhCv~{2sN}>X(`IBE z$4Bua-Alz>I34HHAN*Z}l;aD|C^-GJ(op2LP(wR{%NzP_qJ2pNR@HD?)Np)ZWY>@- zk1x2aydV;YYzsv`4Mjd=X;xDCM%DnyeTxC1#r``fS7_z#z4)E5XKyHLRr(oC>75FK z>77iWA~e4#7>fAHiz3JKT=Q2apIvZnLHL}Pj8cvWF7tAppK|kU>0)Ap2NXuOl|=SP4?IhT@4aU4-VzAS z`Yg0+W76}<(Edz5{;Z@(Wb%p|jxJeTkr7!_68Sn5`G#S_oj`=J;;fI0SAFTuUlQ3U zD9uEEamd*fMviCzAL<)m+TM4`gyP8i(q9e9k&^5T*f+^vytpd4;gakgp~!de zlS%=Iv?uG6(5kQ86he`0Ecw`ms^r4R#>gwr49SFbWa8M!uCbBL>?$;87Uh09cEq-V z^cz-_rjp1GOB1<*%-_dB~_V!=5gCZWXoIpQZHGA=tUMB%tw=5Gj*e}m=B&B<`{bia_V#7~zY z|GNFk6A?e5#pl3(yh=G@z^+ooFIWMU^&4|gGRWA`Bpp=JFgrQ221TB%mc{mx$QNTH z8@TC(*~uu5;t`)xaWJ*tS)s>E!!GyYtZl^E;<_>kbiR~DcsN)}&|o&OB=gUsQm(aenJ zscB_!E^72I+>wadJtdJ}`AK1R20JK@tPWX~zc})8an>irRCC-OWQ8S(=$fB?9T#!p`?iR#@Om(P{s%HI zje1#=jJz^n;ptBcXbuWZ7l?L~Ns1%u8I#D%#z*XOA&lulJwrozc8=Ym<4CR0dqS(e zPI`vKF<*&RwO~|(gx%W9)(*X#coj$G3lE9m@qU zeF4oHZKk1H!O9?VG1pLgBwB1_nNq@= zXomq9>Tm{cmxY0-;{{XD+D|X2^F1ZNu)V6Z#A{PN<-~z*2%yeR!Aht{*^L}{gLsrhFuNu zr#8;Chi(kc6M&8CSv7~{utr*50US7~poh&qo;Znm9g^^7|K0E%A zFnR!tEecldO_wbPs{hJNNM$*4cg*{Z)_wES@8tFCfRy>X5#@OLRaNj^c>({_&I@$M zz%@l)l4cb)499>Ag}$-H@s<*mFBc-@{pd<)1ZKw+q7f39_~OX9K~|$7RT)V|wwGjW zV#99#0-}=M$-jV1p*_`q+GA&=^C!a#(mMrKl0%tfS@xmDM^T#Rd*hEB@3B-g;J1c{ zka++M8OwD309kq`pLH}kICahF%<9_E;`4iPd#rm38G}+q zN!C^hX#X1ja^ge3S4Q_Tw)DXL1Il#G7-}fs`baezqn+Z;#BzE>+|5L`V;q6I4ELyx z$IH0W7*To8Q_wIFVG(}n=}C0Ub0zB_MJH{w11E@j$p;9@pkVjM=}&&-?uM-)PwtM( zKeAfs{@02qy8NR$*b*7YXh`yoia^xaEmBECA8s&4R&=0_9_(mq7>;n3Jw+yx$sR0s z#{!N11s~Pb%aH)tB1Zzzjdj*%2&_?vpnp>&u>-)ac z=PQN|U)$RHd}YQ0XML{x|9E|-22op|siIr;nNr1DpD#yR7N1rvR_pUCqcf>CXYEUE z&Pr5mR__N&3nDvZO)6}tao&a%Hh^gJkb8ElZ$_jPMRxI)zc8|s>Wr)DFPOL2(e~e6 za2<~oaUuPxBM~f)X2Kd=pfy~><^Yhwu-kC%$0xVAn+fYaHFrn;8PEIvt`&!FJSFYS6NM}?W#JAS9r5j7|C?Bu!WJF@-_La1HmL$N#q+>Cn57C#Jv_X za_@O)3-^P2U4%s-Y~H=pvg`4RN%oWk> zL{Ju!HA^(f**vjXi?kunE_mq&G*5h%2*XBupiX_XW8zg-Ld-e7gj?wrCW;C$>DDll zrtL6{vqt_@2b>)NZaj9fmWwXgQ$Vc#6hu}x6wz&-pEU<)^X>Kk4Fz)2?S<#m=S;LL zvvb(wpGAOMWDjDCvpy}x&9Q6l6eB!QfoCGWIAnDja~8?v5zM$n=KAqxQZn65;oj>r zFvDGtfA71vAxU%HxP+pnm)cZb9d0}N-T%M55H0x#88#gLW6Ntg&2vY7R8|N0bZi=* zj-6O8XJbnm*u4$z2w4@h0sb%0{S0OdSdj5iKEX5%XwRqO z2Ca*jzZFX&tRi8a%TYW3O|ocF0Pz^&_e-vML24HAc|2nZtF*A8ckV}H7ko(*dYB}% z=JYbbU~HsW4(216(?gi2VKVI1o!9e03FW%{CDe(MNO^V!&9Y766IQ4Ra+QLuO|aWG z-R(Oakh;JtLINbc?y7$oAs-&8AI^E?TV6E<`>nUK~zlQxlhDhvZ~w)a^tl zYfFnw)yve5yt$2}fN5aGFC8@(Iyqrn61a7!#ovc70Raj1dvbJt_0G#U5w z6KC7Ax56a<><&M#H>3MijEdaD1s`ug;l{##gUI$6>P`mcDV;B2%Yth`_HrfVfxra z&BGvws-L88RX{NXBWh6qq3~Bf;-CuMIn^4hZUkI5h7Sg5dLL2$oqcBf|WbKRBj3I3_Z_H}6!7XMJa?_OwIgDCa&4#)0mZ)8i zT_wt6F!v)Ye^H4>EsM#{fcj5ofqrGyjoOEjbdM|f{U)k!HpZmFU_Nq%C-&|&I~kkt zP{Zcb17AxweoK9ljbO=1&h^Yi0I2$-A4SWDp1d#=c`m!2P%(hv>Aup%%u1&DUYE0Ci7?Krztm52_jETh6Ty55HClMggAWm@Egy;2xuk)YCF+YDACZWn$j`_& zo9RI|3>mq*MYl)GJ)&_@`#j#uxcfZ*>;yG^rTd}jtD8W+m_)0&rF8*Ha7Fz)*P}mvu(Cok0yx4Gl~Q| z0)+F_=6zR5)^@R&Lse5Q-iSE_dYGy>(jKF2zO;mOR{mfDU+GnPdR5APM>iMjZT5bN?lZ}39^H(TY;&UQ#t_u|p*E_@?(i02s)mDniU|E+SL1Em zAHD4hew1ol=?`v9F>dp}#h==wsB-m(w*V-P{D*qOAbLYI&X=Gw;C(H+z#81=v&XMO z{C>Z%ydj^S;OoJfCE3KVxwVl)hTeGQNH$kc7`n`$ErQG_p+y8H-~CVYKIU~m1KR*)>)~`l(&)GRO+}QmovLU ziyz9Sy2m;uCLMErVyZ$GuDtOq$@*{@>~<32UX}99*AOMvc-KoraqV!x{2SdeTrvy z*Yx?H*g2JFc&teiJj3&`(nGZL3{M?BN3oM04a-zp722ki|HqMkHatRih7V|Lh<~K+hygU2YL82R*dZB*^Lk=FE;c;NsnVK1a#5^IjkFG zB@xxxtFB>lJNDp;O_Z@*G%Jp19X90`pFqKlzV2%*E$mw930W@#q$_1HsI0dY-l>XoWFN65__7*;nSCnBwdEw zl7DeMo5!iko?s7MQB_!#SBI|h2~#`_0uSY@BUj!&I7hD5G>)IoD~-`TMO)Eu}6szvV8qrFT}Sg(;Ph?e0?faz|Zurtm!_#;aa< zC&g(hbKn1cpBl@~s6G`jU>Cn=r_`q?(39?pHSJSm6tkX`4<1|WNk?YWw9f=9knz4B zYGWd%eI{VqN9{)KX`lJ4=PG@uob_<@l}g8fyQG+NKKmt>S;xs^88POU?MPJLA!i<` zHPUyN?qJ5GkF_o-&4&uK3jfz}9sh*S&VBAEtw4|?U-*snmGzjisP_l!(~Kwl!G;dT z%l@@;&d1$frlGGKmpuXZi@5i~teW-oGw&?$5I7oCtPs-83tDxoFj4D|Bh71@X+ySc z*mW11^l42`m`V3Qj@6Pqtj%%uvcE744`9;@t=h|aPxxT#w$Am{)Om)9C#0O^9SSuN=1A84>c2P7`i@EUOXK!eUn@LL+ z)e+}-k-5%ZFGMI><3*}E6xcy}*9#TOF#_bQq6)!TWn_=Rs!TCNWjOB_SyjQK#cFRT zUQEJ#X>@qoHT3_eM=Yn%lcPIpA}uPsqj{3MJi10y^Y+XUTLNPv8>QV1G%j(3d9+aP zy1iclo^_2p;EA2rG)mlelJuAdw_Fny@@0P3FTReokk@^|uTqV9{@~^m<61u!M4UgR zf1LO2Ex1O{2TZ3va&7^CxEQzW?I;h{Leg+;fLIe5%-2M6uud{p^RRLDkb4S0c}w(- z@h|rG3oUNl`pIhQACu$jAJM1qv7)tN;jY(qKY(H?$=cyu523p-+?|M5*3l&u7DgV* zu7_{zRgv=S5Ys`cA~bJ1mxZVm>2hMLBrIEqb(n#bEYgMF#Zd0aXOfrB8!pnPf zTUP=dnB;Ehz2@Jw%OSsGIb@Nw93rG-TT|tmm=anI`CYpj@;g>T=zV6MQCSSJ9&5y6 z$S2DEVbo#>I(P9#bHjja+~lKA$5Mfu_Q8>QC+d2gS&mH>O++4yOH$Y*0rez&nvDh% z!lX>wBy}ake&AAB3Bju`^cC*SpW+W+3E@JNg%IwSLOcLFa_r)YsKt=xsKt=s#q+=1 zE-MZ#hHPY>4PiWoC9kN(5KN9>?1k0=gC*OZsF9ZKo3UAYoFgsf3ZVnN4le?P&T!{i z2w(2P#{}lTf%lpRqdx3p`dV5GVO4<_MKa1>U6rCof|J?vCsYm5YhoTkEQ!!~%yV7v zcW3a!-!k@T5s=>S#`i{c6h=NT5ug45GJs}_(K3Cfz-%2vyw3cc{W>#yER8t>36Mih ziU_Y@RLMrPT#$ApWNV4}GakuNK4e0j1`Pr18vMKR1}PRo2Fg#|kU#oi@Yxpwfe_m2 z6UDQqC$bSNdO>?71c6~KgW!gqrd#dRT4bf?6{lhdiwA-+1ch>Dl<45eXJTw)PyONT zR`RWDP6Oj#mXjV;^?1xdRQ-K>#O+k-b1`Mg9^7fmN&$O8Rxz?6o0@F9frz~llB~2o z30v@C_GPe|!eaGPPBB@;gfgAi!jrFT!ifr%Wu}R{9IAdaafgzWcQsL6MeEi;XmDkT za(8cXnv-x=jZv+vd3{7{VFdFoi_f8(Kvj%~nT|0lIxp@N8na?vx+nwtsE^{zTTMd@ zWe!JjK@=Vs$*JZJUjne#GyLZqde`RKE;Zse9pwfu558cGs}}a zq))hKA2yP$%pM-+NE0KGR?PBXP*j38KEoD{iCg9g9@`o44Xuud$AIvRE9QEwhdg!D zJWczYAxWm7v;h&8;b%WlYOeC!sDJwE2B>hzKbBWKU(upWtqAhJWk+Xp3C z%{1Fn>RcDeVCy2?*p0vJmU(XUt%_FdvPd_%EK*(=nT6$%^I4NIocV%JRu@FJp*pdT z#Y|Ej17@os_~rxhosaGmuUcS4Ce4VxU$$=pVowJR-yi+W1mYN?{swD1ZJ8s%8xD?| zC2ZYG6UG_JLP%*#3n5}OX+Hv#jCf4Q^RNBLL@`CeLP`^W`uAPBPDw;hJyMgGuF0J%eZO8}MM zw!SqXj;41%7|nXg*byH0ypKE3<=CkNOT$qwg|PXbZJ7Vr<_qplHSX~T=XEe1^S`b3 zm2j> zFcfEfC%ywD9>MCwAIfrm?L)_J^BedW1wI!?Hp3KVzpNVUwt^$#3hG5C<8Mg@wk`|( z#!X4L;aK@8-xHef5^#Pl<6vISp3-~zI=>%F--{e~8b0|N9p8OOFk-JqHUhk3=AA_- zFt)CR2%@R&KkKl?W$k zkGD&mUq=(=z(*hW`YnAJZP)J4zfh|hJ!~gR$NH>ULq8aCGzxPXx(Ql$WC<9CH~;9) z6>&R+?^yUsK4|(Wl{}Ru6bV=|5L zRp(b#&#B@$Gy9Yqlgnn!m=c~nt>e?8Lo|+{hv>(8x#)b=H>~NEPs)AcA0)K zS0qhoA&0lD)?AT#^TOfs>hR2pS+mNfRqS`Ih9UIk4GxE8@%_P;b1z9AC@i(4tPqLi zis$fs*>*;u&u)OI<|MQeTHo_wjZ(m zj_m*}whW^M7i=eC8;>oFZ3eal*y!DqTe01P?OAMZWAnE+jB~J6V~b#;{}=ObZ1ge6 zx3PVV?H6nZBpXI=Yz5d#uw8=fUTpuu_B6H^vAu!qJ#2?z;CC6e8?e2PjUFcb9a}!8 zQzl}YiS24^w_v*$+rO|qjqOEjZ(w^5TQjzAupNR|jkB>0#5Nq;C~PIzPRBM0+s)Wk zWBUnP5B$rlq1cMCO~G~{Haw?eT#4-lYhV2Jzz0p}*itQt7d9Whx0#7;Ft!u0{R!K6Y?H8^kL?a@ct_g!4co!! zfBIt^f-N80+1RSFU5t%hT5QC2JGT3!}R-&p1^w!G0*i68D^d$ka7N=L(S9uLx-8AhS|<< z3`d&bznEs&|BLyUU*rXTkU7qO&~`IvPKJNG`GbkGAIybGI2E~0@ehC22hq>^Sguo` zv7P^_B*F|cMaX^8G$;CBG#^X?wFi^t`Gk0Od7OXv)k$Eoj^pDX0QiCCDgFbmhMqM4 z)k*8*b)3@GJ55EPVW#Ve}*mzU1%~_ zn`WthHOm}C=0}h@=zqlbst@q1zIA>&y)E_8RO~6kMzfKuZuH&Y^UrBAmN0z)Uhut{ zLTcYkxw-?4y}HA{I?yT4*^hEQ;rmCsq&YeMf3$lz0Ixh8xT`&#-qrrPRGi+Hx*RHU z{L7)r98c+EOMJt3Qz}%G4sv>$e_bn8tcywdJcMs977DggmiV{$7Wx4!^s|H%4&B&QF5}Il$9!Z)H^1&^mG514 zHPe4x(ssnKVfGeU@0VH`U~Anhv~Kn-Agv4hEFo#_4XvAfT*jM8k1)Btp*8yG1>f83 zYJb0R7%V*O4L>U98~*?L5t0A(-xe^#hS}f$PSQVoU&SAMhd{Jq`Ic2o+3 z{X5%z!VIJ1AKQPI%7hbLs(&8P&mDYo`YrMQ+Tk}O?+2GsIxR@Dk@E8t&DGxy_-A@j z4ssXxjlIck@0)Ko*C;N?FVA87*2JSNajj6Z7KpfnfdQBRF z;F`4S(%JcS=~r~Z`4yd(bYkaAI{i%NKXAc(y&xpKZSqmZD5oru>|O*!ww!^y9oSbs^;AU?CJC;Swf)Et7wfj}m1r zVb|z@l;EaRyFFUa-R<8^_RVQD{qH8%vqoR!K%;uH|Fb}SvhOl#R8RJQ)V@BMD#^+IhdaE) z8qAaZ^_{QjOtBsB(KNr&9Wl}UPQP!?cEf+Ce?bQn#exnEa6ir)I@G7(ygqI50d#Jd z)BOMTy~&z5^=Mn_9u|qy{P7*l^&6Scnz;#)(`@)R`EKwdz;5twfJ5+SGXe(i=9G0E z0I%z?3ss{T%8{)*Dns|@FbW9zpG$fx3C-nONjsD2bZ7E4DLB0*WmiYmk0WtcG(26e zfsXZt{~F(&)ZIVqdlABM{$k31DfxeqoX(l>0}<2*{u33=@c+~IFx9(Gw{!{(GkfQKhL|NzzF$_@w8P zP~Oick-*icnyFU@*}>JpdxCJ+JweK_T4d-B|90PiMjVaEhNO3>H+;u`4QfBmuL*n~ z!1?z9l7#bxsqaA&4&DoXN|Lq)_ww_-;Dm%XF)Gx$5Ea$}-iMOgL_H6RVmyjs1xgO* zD^j+mz?Q8kBpK%mQ;E|io^zWi4A_axg6B4j`~=6HEOepa4j<)CUg9V9bink+QpFPs zRaRnBC9p?*3sd1gW)r$=D0)h(=qWE_92(ZOBWJ?I8&e#%Gr@Ebs%|82a8(RB7cO6% z42LdGUeBA6^~rCu5gEwv6fFD4f#2HuE}@15`1|dDYfnuP4wrR!4wa4_zLxGTd@3^G z)YsA-<;gNE?0gezd>|(7!@E)1Jy5(o8qflv(l_{jp+?}BlzAv0oX_j9o5s$&Q?Eb^ zM2!Gt=!!_~dOvFg?oUF2mm*>tsb2XTQ|_l~eSgXo2e4{JsXHS~JAaQ5Sa0~hPg+RL zz(U`Lyczf~;(XaLfWB=P4s+=%}3;&?J8Vg!=@K#y!wLqs`J7)|KTrFj+glb8u)fH z`}FDD&ex~5Yp`qgKAp_*y=Qf;>v|Qw;9?|=FnxV+D^I(KiAPBN1IhO*AIRJJ>z+sJM`FgugQ@{!k&u$O(EDE01a6UNo-ju1l$ z=~|zzCW2;YDk}(F>}zKw(RryP{BYrD%c6cxfQTQ#>|q3?J(w?wHqtPTv_a{N0d{5y z9c8ED@-TyDLzK!ej&=eIDFAZ(W^rd}O>RHK*Ox5F17UKiWx*iwB__Tgfrksbg4rz_ zkZOkxG-MhH4dXQf6M9y1)C);{gbhmQ7^`^T^JA6r!0E^wR;)zxI5naT<9KlevwA03 z<$@@q8kuh^k*o?j8){&Vva+x!p-iKbP|ZfdONESrRnv=DWc4+S6Ct%P4?ih&OlSCz z@`RK;h?HVRj(PV_R?q@JX#`exOVH@_<&6&6HC7dynS}&@ZifU^XQ&iTrquGJlnT&p zgic{a2oIdL&AixmU_|%Sip|TEC-=AIH4PJ(PZHw zAeard62N03LHWYJnM`;EQi_^~`T111cbf1h%R60VEAq~;RPI!^1;_EUyYTI1;7O%^RmvDb~lXLVk0Tz zujr;``B6?YyV-G2mjqKO3}=gSPUUrr+MWv$*6iAxbXKe9(vBL+iwd*6H7wWEOmETywWMSjfGHj@S_AUK8Wc-iGlH z=VmmAWxEf zKEFS+2C2+58gr1fT^N_r?oax=5xD*=3@=V%r+wP@`8&=qR!l}xEVv}6U6t}O0cMAt z<^gGqALQaNDVT(r8;lGu8-%|dcA1B!UE2)3xIlBi;zHUgq%}HX z0)_}JJIrKra|$VhmY>Z-&8?O&Qk^;*TDY(SCU6l9&V>gs(qu$CB%5o4fk#MTrxf#b zriU)1zD&@89nAlk{IGKe^BsPe_8ML4lA30|`wos&@Su(dnD3LNNn|OLvyl=X6zpWK zKaLyfvvJPt;4jQCP4k2FJmv?#>vGyea@E0KQJN1$ns!Q>GRwve-@yYPkq4kXpd?}L z?7Gd|ZknGm38_Sio6+@qS^?V-1^;ONWSU>PVJzcz37S84JCH=0KO5aTe@h2Dk`L@+ z{$i$nPqyN4H$Pw?oXsOeQ&X2TAJQy@%P$ByXDn z=y|Bw+hk?TfgYcm&zojnlk;SmjGmj}femKruZQ}Z&5Xd(q{F^|gu@Pd9F1cBVcQSJ z5F~T#a5y{gO_G__i2I~d0}mu+j%U!8B(vA)PXP-AeMawg6&ZnmFZ&p*ZwHcnMxS;W z*!4PN5}kMO8NDW6Lr1ANn*3inO2Z%IIy)oqSyHbF9SPcyWb`_d9etjZ-0Q3>2>SxT zoK+7crGe#1z1x*#1inwoUP4!XOo9>+4#0z5s?J`(*UYaH^)eBiOR6yum7^oDe(S1=QQ0*It-o;Ekm?~Zt_2(M{_a=4U zloq(a*Bu!5V;b{N_swa6i&T_3r298%flE}BY45%zE$~+r%_IfgzfBALO+~4=jqY2o z30&`^?~jX8%ewS1JcAl|I;s2iYXUd<)+r1x!OAD#5qKu4`_5Yf_xSp{o*`)5j+!?q}&C~tYI|C1>NxT1c zV_>;M&F-56D;&V@O9GEMvh4YL;7JFt_nyE?ACdMG0pn|d%4E)T% zzg6f+zlr*@N)|E;Bj(T}19ag<^@4F^do+@P)lMwM>|h4|=fqMe-CF`Pj!ZK3{>!%DgAfjz~9`1=jm`gTy>}M9}L2(K$>4vNV;J3&!P;6s~H&YBYUCe2>d_xz6838BJ01ayWc|ch!7Ex7z{|1 z#1KeG*aFBFmVoRSl;xS_B}B53?Xj;W!4*+a76lY>U%-9T`P3P8oN*i(_fcnb)N#~N zXK@^L9LN9f-sB605;k1m? z#9i*eX2=j)#_7Ohn<3L_8H2=O_mD823}A+a@nnkL?gCW#Fe0vw zNmMk=%pT^w5^>xUn?tFr$;5V_%EomqFLb}oEF_M{V{<4PO(C|QbF{6qa zyj@%_+<#Zo?GRT8_vaQ9&4;zYSBk5I`%4!^EX8*c=4;mj$+qJC@4|ffa`#>O;Op@$ z+5KOY`5yG_As+0PT|G6iL2d6e)wRXmFx{9EyY zaPM|gX0kzZ7aRN{q4z|fWkCnOBwj}Mi%ok)yeix`DKuyFpk==%eka^_N)@#1*Toyc zeV3&WSxg)9rue;ZKjfA@XviPLTbP+zv7x)5Aa)M8b7*9s7sGrn zV6}@cT7LRz`n)LQ>4WsMd9BTNJjvlp9}<>-MwY%vP>_*Y{@`rAQiL9f)}QV+!}aMRf5b?AtKjl5A%E0p zy;U;Ggau>tc3Hkq>fvL@=@&8+mMmuoa}HPCgb@?qMYQB8<`R*ZO{E<!3&C$#!fb;CT0MEN4Ty9!u2Oc&&r=Y z&E*ob(&rmXa%izp8%-kTxIP@s%Wkeej~)r^JlCgr^NU<33CYMwB=_CubeFq6LNT`X z@l>9YiN;pJ(kn+yrKd9^o}}x@;407dT?mQ9eWb?7)vG*L-p%oY9AC56bIr+E%ChO} z)_V31d;i@DW!Um%%fXbhpFS6>pW#tJ&9Mb4z!%u;F$&^yx+t7g}R_T@q)KO^SXr?aM7m} z`kAhc=EYg>*8?v86JdU?dr!Z_+XKtoUm~g@e7qI*eM5+pOMPCfj>AVt4v7WZNj4iV zpOP#}e5Q)kQZC!>ohII5OZp%}>;D15JG`10O{p&Tev@*=mEIXDN6J+@y|cm)S6}0u z8;01m+q*#I;p4p`Q3_p4tAW@ClydEL-eQ%KvTwil+%Uv}>%B|E5H}q3mI%_`5|(mf zmbW|%ap)#*Wf24Zok9Z7)4FF^DggN z1*@gpeb~D>3~}ThZ@ZxSvNY>^?|t5j?ds($`riM5_sVe0gIm0NYz!GqOL-{Qdy`m+ zXOmKlk9`IumumKB$Kf?a%1<8l9u~BqY%zv-QXU!Peb9RLK_&JPmzMJAAny|@)=6N| ze>%wfi;n4>z0@J)e+GGfqjK_nCFQX}-j`HtNWP>$KFIre$8<~d6WQKBs>LVOEz-}j zy&tM1>KGR3=h@!BsU)Y3Tl6QhyWccdK-t$#bWQMQ3>}`li z*HV7>x_7NgQZjtwb?;V{q-6N!>)wl0Qe=j|f8BdUOuClxhqt_YbvXf4I@sH9dH1W> zQtozte9L=K#gb#!Qr>yjd$Woqm9>=j-u2$DVx@#Xz3aVO#j*r#(w<45PWt<#&nJC3 z*|lGYZmosnDy|k&t`WOLx1Be_$@<2TOOa!QZtYXCDT2y)KyVvEaFii()vz9 zb_w?hG5Du=lA7?47?g&a-ZavoKXLjK?iYg}6OW68M--A)Gz)CM6bUbhqD2TjBXjsg zbPk%6gEsgnnZret!@Teuo|ZX;NLoMF`=W;!Ee6O(&0~Z%Kt5|8E4;by3o#xpcm)Ze z$RsPGJXy~Av*;~m#lU}n2hM&wamI&uT2NtmxOx(o@sT)LR9O$5CFU>KV_Plw>3yQa ze2fR}b=Gre#+>{KJ%?_vZdr`NW?Q*wg1+7Ca$VIQw*9Ssy>L&$i3vk^)5LEFdWOzL z%-%Hd4K_{OZf~0SH#SY&O}59JK^K%f@j_BC;cIM~IPC0ma0qfQLBfATPu~$|r$Gd@ z`!^`~ILa~UT)7{D85pC@nE79EC35hM+vGhf!^|{&b(G7jGZ3Kh-RvyWSO3fc1O}VF z#{U85>}=E5L@HuDOB^oUOlqI2>l^19x;EFuV`@ex0=;1_-kqE40UCpdx!rVqZUUw| z^KL{cv!|XWo)g`!CqZI<5B;Vzz@wr^ZciN(IgxmPlp>_>5LE!7UkpRD3WR=1MKj~e zHiq=$tq36@uSC-vNqAFF=If+maj)6vyGfG;$vS3*yk+F#0k97#s%0Lp_tM3ig7#&I z#Gepq@Co`I0uw^2P9N{rpb*}tc1_ep(le)|QI|ZMeN*v?I`zn;=k!H=WaxQaJLe>w zsypeZ{ zT`x|PQr^&u`^(T%lU{tf485-x57M6@ zUH+^WXGq)!dU2)cvC!=Sa#|`nf~(96jmf z-=B(IE$8Oy!}O$AWH?XH*OOkA;oa z`k8vtUu1Z^K0#0Vn8VuQ<8od=wu_I;r6JqmskIW#{yq4s7TEtTIF;G z%l!KUBBnZb%H7*s#RpyovewVyJm>xNxci+k1&WU%r~1`X#iXk5XdX%&O!%NVrm zWe~iB!K$AzSp7=|YyQY!?WYXZf6ZWnZ#dW1O|8a zV{qhj2KNkQaPKGv_f2H*zzhZtE@1GJr3@afBak-e5(1~Lc#lDKTLHytxD}jQx0hq} zhZ(GVoI%5D3>v>=(9~lLC1}oI&@zQVa2bPDK?bY$Fj(^dgS9U(SoaSG>$~I3t;MHq z=*M8=C z9c>J*xQ4-1H!|4yFoUaKW^m1)80`8tgWcwtBzkWz2K)OlIFQTWhUp9rE@5zEHG@Oz z0hSD!EUsW!C~jmpTRgyUj(CjWJVC8<$)JVe8IBi=*BG87K47?5e93UB=suqK{34ZM zi5SeVT#RK{Db8Y8C6+R*7Bvj(#1@7t#kCBZ#1V!;@dU$F;X5j z_&dV`0y~V6@AcwDhBt~_hBt|63~v$37~Uot8Qvi-V0f3fis4~#h~Yir0fzU9rx`vV zUSarkta;hIeOyedv$_?k#(_&br$@O4qd@C|V;!#BnG41X`yF#LnK zh~Zme55u>`Z4Cb?9%J~9c!}Y=;zNe-iLV&`NpvfueBT%S82(udWB7rX#PCBgpW#QM zjN!+kk>Mv|E5lF4l??wX4l?|kxR>ES#LpT2Q@qCTbMXPge~B*{ej&V5DBmwdABJCv zY=-|9(;0p({0#pini+m0E@Jp!v6tbu;&z6b{wPDCKgUqlf6vg+KVfL<-!OFPNmD65 zw|)vkk3NKXFbPY)}I;7{ttsWy{D6~xkDMu zD`YT#F@psw87ypPaQ1Z!itlBx=$8!6d6&Vt{{&ci$XGUbnf_%K-mMt+nMqLd-(;M3 zv!N{>GSyXte1=TpA`F>+BFBm{7|hIKFl#=8*-IJBX<#t7ox!|o8O(ox!Gfa<7QW5k z?7uNsbOHwVi}NdoGFU#ILDd`v=by)5MLmP+O$=%-XHa{9LET{n^^Y@Hd6YrJ+YB22 z#-K@?i5y0p*@MCOlNe0MVlXkE!K6Y4lNT~53^16|%wTFOgK0Y%Oh3e+=zaz>o?*ciNUPT8O%;Ni?W^5m%-dj2J=QUm_M7q=tjPAj&9=G9o@{;I=Y4R93AAl>F8B{ z=3IR-gEcoYSo;Knb#F3Q{~rb$PMAe9H|8+dbQXin%NT4~&0ydKtJKke(#a9fjJbn&IxoQxD zonskXUCiK`l?-;ZG1$GA!Jfkm_CCen+P4{8_c?=ouDK*^e_sX%@)%q{o52m|GdS4F z;Kl&)=1Uyt?+g~)Rd$* zC+XvMi^Sbv_3`vmYdKDD>8+>IGr%MI$s@Jk1CX`qQCz&MX*#;b<1&NvZo%5;5nIP0 zx&;3~QCbFCbDUcQi6}3$91#4Ph!k2&PtDdQK!tS_S~E}=L5htgBW4=eYcf3EAW?$! zuq;T=Q-UOP9X;n+SNJ^(IrUHwN!6GlCqZ42h)j#ino?RYbg}uDChR- zDWK9^J$M%J(E?krm_m!vz)ZEgwt}KJAsXZhMT2Vy_Y}+@ynsS}3SCAaT7g+d+HMw_ z?lHHBAgv{=y^UzJOtAJo3K1^IA!-5ZXu7&?A#m%eaY=mxER%KP)Xid&?((L7glM7O zqt8~6`Z=wdh%!I=0}q@ zi)FgUd!g{_$zyf0(?#Mu)V=Pb=l@!}DAAJ->g2fifwFw6e32;Clke7j?B&`;nVx(g z#DX;Cdh+cO;Uv^976Co^bv*R0(3Ahb8Tnp^I$H28TrUxqib_5CpSo1{Qn6f5)(jbG z7gc()%i!lz>}%S^`FiqRgLJh`u|n_Fi?f=5xtNbH)Hi>k#MtqVxQD^5!j^nPTwpx z>TZ$x4@57}Pdq90YXr9Hy-(jPw&*TBHDM%rlYU~~RH}+ry>~_`?lRgo{lpaZB<*_d ztki5^F49lxlS=O)U8wgyEp8h8N%f~sHfy`05AFEa^R4jGK>p;lb$k$OL4QF zGL8ec=qYD%;8s0lJTu>>r_5x`?Rv`W)QVAfaZ^t@mq~Z%y{DzF0_JW#Wij*IrT3nG zxj3vZP91hLDnE56h!5(gxKsBb@POX$1o&NVzwWK#9&Q8uj)UL5SAQ79e!a{cIEJ!c zk5+M?PF3A68MOQL*NApJn&Eo7N%I{Tr(=Es?3?-k&t%sd`fL4jTE#;wum3Ql`H4;~ zum5mwt9V!jM?mN!GB~nND~@?$hEZv);-@k=dQdA47-DR}&{px742~JuDjt`?vEy6C z6EZk{TC4b(3{IHSDt<156Bo6LC-pq6kM*B?UaNRoA49<@%Ui`Sq-N9VTg5XnIK8P= z{8FDl3`MJ2#j`rKxc+BtY8AiMsfqWWwWU=&rxy{!?5(ZhH~QHWoV%@69MwxGc+Tam z;syPD3NGH&DqhkXD7fT6t9V6by!4h<@hW$u{>u)xiq~}Nll}bNe1s8+k3h}(&{|u)8R`0z#SVyT|)Pq5SFY6)x zURvsQ;NH^H7pCq);1Bx1q^ZBx+wh1W{ULTxw*#y3l&KBJIHi9aLS7`^(bH!M-wWXI zkyC*aA?|kZuAV+$dSQpge&2R<@9F6Qg--XpD}^@rPx||M`oqzLcJXH&u7q=D=fxh* zN`-wBdU}mQw55Hhf25~BCJB63brSqVPj8CI#dif(Jhk98xK908AN+~_sh<9AOrF7i z#W9uX9yX42(JY+Pw~N2)>1cm+7YkQZ%5N9{(9_o`bT#Q`dit4CDpz^C_@|zJ8Mj#} zi=|S1qJlry)5|1p$QE+RhztYp+h{pa~Pk)D-r0-`~ z%w_w@3k%=IGn{tuwVwW=9}dZJ{Y z8j!b9Dj!Jy)zc>_r16wCScvO7neyWXL#%-h@7lGw|fWe{1NZ-d+;ekz?@EYj{oVb*F zmFQ-q|BRGt6A4E8i{#IEvks0pz~M$ih<&gRuM?*KR5li?=?+dZjx*9t#l}{%>tUp? z2;*!MJ&n`makg}U#>qzdOERIQ7Y;Bvof$%naBwf<1mkp__Y3%VI5fDoaiVd0u7XLW zfo~rp<6tU{lTR`-Zfp~Mjm&%=57Px@N-;7=sPU7H%u#AQ)yOPx;yx=;KO=L$gM^S% zjLdOrJk7|Qs>b^pnSM1sz{tEojh|{{9#Z22jm%q|xSeUbky#o-UNfGW6;(=`IL*im zgeY8zZQ^tzbGd^A(;y>rMJPTv!^kvFf7ftElfDmFAjR9n8AfKU!|T(rz^(-;-X^k) z%u7NP3IRFT$QpTHM&@=kKGevZsK#@Q%o%Dt*T`I`#)lc1#cDjy$UH}l z=Np;3)c9~C^Jyn;SKkOD^Un?vN{%!#KTzYNjLa=+e6*3tWtQpNMF9#W90nUZ#>iX{ zfwf6vjm)zmNNC&R47}+SA*M~7X=Gj*fovD!jm#9;Q-}nWCm5L@I$V%7(a1bgP6?Tz zT}(3Yei;w+trU}u%r&7DZKBY~Y*ph^jLh|+c)OTt;O#t~6R?1GG0niMZy`jRm~Lb~ z8=Ahhi6X>Vf;BgqVPs~6$_FK98kz18!mgaNj7+bBwdOOkjLhQ|tfj+j18+GxTCxNm zH~)4q2dy|nLT+=7%)w!Zc}8Y>2*HjTZ1WAg!y6K5b(sZ5=BEx4TnmlNoDdfba5kKW z(_;`XhVxM4i{L!e_&IPMPF#AaHgPVThl7NW#c&>Kdzn5JZIJ(>HdyK4dXZ1>%H?@hqM%G`Q zEbW!FYmKaQe!#$r*u&QAjI1%da2bZ(XJjQPSW*hM*l%QIL`yheWECsCRvWw?%8Bs$ zLSb$&vc`r?#ARg@wTpu&yX3bryV1zHCX|_$nuKSSw;I_Vo~+(t^u9JV4Vc@Fp$Uw+ z&FFn#>K(>p*I}baPGYOL(;#wA53N<)WfW2H1S}TQ&Gc@g_fuDiBS!8tda~Lk?lE#_ z^G%f=t@`K!|6}AGR^yKuc}LXv<3`@SYWxW!?;bV& zGb8UlHU4uW?|wD@q>=Z48h^^jdr*x(ZRE*C1VTdpUl@7MtMq4#yq809Ubp+DF}zpm z06gaXl`(Q?@N@*$(JCRYSv_lvI;~Co+8E{MMD#QlLZ3561=RR&j8Rvp@#l?E%hmW% zV^p;o|E)2qUX8zCjA~ZnFB+p(sqvSLQR~(C%f_fJYWx*rRJ$5~)fjb&8h_0gCH(~H z@1uw1D8%oKQF|$9JCoOqQ8zK&D&!l+s9V+eo5siyPTWTi-XY}o#>hMh+CJb9M!}nM z$`{0QY+mxkGRrox9Of!Pl|UN&4VF8Sfhf17wE07H!EK{Ac3>qhLjZCRU;kjgO3ihKNLV zhJP^%ZZ^11sC-cFW24|ngBH$xtU23&$_COWM#24(m)5#{R)SBBf@c-s7Vlq;f|q4M zh|Tu8e=`bh3Cr#8M!^HoBL86&yeP4%W}g`aR|xh^T=XP7(uY}k0R%~3Ed3Y-*T_L~ zhyklUM!{}*&kSJ)|I7HoDEOzGPB>_(<=`)kuZ)8K$jM72?cc`NM!^??pDabv{$qS& z6bPLkEk)4U#D9%~(on4u8BOn7qo6VzY2VE>vtV^N1?<8sSRanG*>$sE3tNgFNBHOh zcEc>#8-+B@g4S@PEyHCN?B{mMcIN_66oTAl!NZPVA3rp~f{j`5hY-@r(rXqx8A4i| z-OPdyLrCUq7YSxTGCw?FZCR+TNTONr5-Z{)f(|~j;0p(dcz3hlH79PDILR#dM??j2 zE5ZAvW`Q+ku;1qsRBpZCF;O(NPSujwNSSlywI>Ew_SujW;afh%-$D0Mm zE02>{OP0zvtaj1MEGQP-u*nc;w97CajA4#;tUS@19ERk%W}b-Yu}0_&L@VUcpD(6^&7qIlGNXn)FLGYk7Gt`^!r z^BL^Z0NLox=%z9Ui=^H|O zcierkd&T_?MEi0wJ?^21?Gf9M){PB=n%E}>?8R~Nqyz8=06bX|p8~v}bO2m>57F_8 zkvQ9ny)5RAK3AEvn}up(x9Ha&CnhhDg*XpT3(|fEyv~IE3{Z3xP`>>8Sy7Lrs27Un z(|Zv0-Jobb)rR{l@FkE#_KoO^JkKVPnwwNgB$a$4l06BQKFg#&{50h{L0eEX6Yo5n z0+R%m;NA7(3A0}eHLpEE)4qTlex05wx!Xcw!5j8Gst(d_j{{=1XY%nloE;>EWuTjm z5-80vamWMhY^lsO-Sa(ko6?5S8J=Ua)D8CF41) zLPPp8XkD6TTCdBO=2M6YP&%AK>=5>e6QCgUmd8_6jxgORtdzEH3#x9n=zgN6y>5y9 z7;x5b)8uy+HefHpgv_MW8e6HlCg{3e(?MUg{`YKRV>Cd4l)hD87 zY^Anvy%;zE1m8BF$2SC_8-%gracv|*2SxV@43dfft{3maxWc#2=Q)nd?CJ3>u6x8Q zxORsXGAMXljYn{gID%^rY@F55 zY^Yx?dyqKxh`$5$Jb~~_JjZ$Zet{^cOYyY{5RckKms|Amq>y=u_zs}^9CTw&XjYv@ z$N=JpgsA1-U0@TtA14xsIvWW3+ar9CoIDpn_fjt55;8nk&h7^YdIrGpD~Z00=qL*r z-*a+-Bo_konnPs2MJD?r{jy?W&}uJ%axQm?$K~mL1%jRvucd3Bn{b8n5-^=Gf|8el zBejy#V3XWW7NG^w9=VOYN3I3exkisoUTx(|pqvO#W9}Gwm6z@plgz9~L$g}>o;7!o zo5WAWXowcY?<39GCy=u~fQGeTDKeOYHuXQ)g(vsl-7NZ`?SQlAIdJ4uT55qWkTbhk zoRpyxDGQ{%7Xfp%=qG9Qr=WH6V8~64u5T?Ins0v+6`q@3f7$e?i7}0u84toLiS=>n7uNkz4}Xg z4U+cqMB8iN2~e^_doi^mdoi&CdoeAhz0$wKUZ;JBy-sf?g~?uLNPG3ai6qLtImoeB zmTE5?h81Qn+OG(E-9FX)8lkyMq&?0B)Ph92S!B}pf<^I4pq~0YFt)ww2g4>$u}x@G z?HOkX*yNW3cwcQ6x-D<3%_fQD+v%)vukYD3K4g3_#sS!wmF^iL4;jaeWawce7saoE z-S^rfXa-k{965}lfl3avHh19DYUEhfJDYEB6}d85cQ}T<_<3?~#+6bGi=AS(Sb!po z1QQj52ROUMeLb;B(n67ok-JBCi=A$KjzPum7Rx;N2thdNUqD@Gp{x7-=$Ic~KNhszk(UDKXZQ3u4DgmG|^?zQv(!2aEM4?j$#F ztJK!g$=7#?ydx;RDE58Oa4H59!)i_62Ry{g!&dGOXd~_QA{)i;=KH9dC!g#IL^VKy z@8c6a!^uQ@#5uU;XQExXUo$d2BgmAs6L3j%KWy~$j3kre&%F_F_!$WKKIsi->?dP- zM(rS~n;O-KVG!Z_w2x;r84{;><2up{6?~s2dkV-1doiRLwBLiGV7Ovaacb{k&lobG zB!7fZ?ay(+VbTdFdB&2xYY*en9S2a(@QkA-!RjTsz3!f#GcEOMsT9W{$>~xIm4dWL zMsA~?MacIlZtj#nS(^p)a6jm^a4ZBv0gy&hlXO4i9U{4@A&{#8DCj0BR+>tnP!9`N z0`3uGYz9|f(Oo8`215+90NpR4W3vFW0c5f8O~f&J`76L4alcLMe!3uUz3_2H?{&~8 z@}Oqn?Lf#sF4ve}A`)G$o-xZcw!?CbI}Tz{;ttEj496%J(>p2`6Qj!|(b45iHhZ!66*I7 zi9&g%M)dj_AKFC zG*1!FRAz)G$#YVuN_diN?07~C&5}>#S@Kytd6`9nVb4rC7M|pR16QfNf(NU&iKO7)GOsi7X`O*BCN_5ef;TY|c=^d4fiP0sK=nhJ@@*hsg zxV9Z<(m%H0=qLkcBpz}N0`mycbo~6$(fuNw9q3xh&KjDdDT8>BkD4WYu(+KJ*9HipVZlxV-e40b~s6z%bt-ciYz7+o@nj!`nQ z?6d@#_6$byhY5Hmc*)1q>;CZ#AqvfR)n00 zWQZ`br`qu%l1^@iM;Vt`iKj~BM|2ENhh&M$QIPZEvT7WP%S-K zIUO9io)(^3218TJi}1}`ba>1yJ*z_V%0WD@T*LFqwLGs}Eyp(-oOxx2HLqN%%quSz zTS%BSvGm##%caVo=Mtfgdc5|`GV`F=BtlcmO9i%)*>lUK%G~lYp-wKn_T+L&XmTkz z?AfK)o?R|+W|xvdPA`{4O)n+YnqMvnpI>g54bPfjdhH3O`XKIdv62+GW|&?%!`v*C zDdrAYG;5COwda^il{w}aJjdL~bIf%-$6T+>F|QC~DGM4MZV_R_!z%^fk$v($a8wx| zX4yUhNM(F@l?eID$i<_bN>_4LkI2u5yo6-2y#z!@4G|?rN1aJhqdSv@kLpbFZg91D z8|6o9=G%ccbUPSqdke2x#%q)^8arT-(3BHM=%|2_ z8eKpOAESVDQ`jx8q5^i8H-*1BH-)W&`}74uxh?F$w_WYZU@JKz%k0=D-z(q?oS`Lb zrqsu^LLFOz#$(G?5wf`Ch_JY)O*l6O$v`)Tb`f=FkVL*SY!jhdgN3GB!-XR9-f*4x z%qbw5&ne%KnAYAGc5eu?_J02I_pz)kIgVj%$*A4gs)+tX!sd!oC4P(v7MH-wRD zx4$K<+mBS6`K@6MVPuSMFFEXnFfzK^ONNdbf}}<_1PdS45TswbO}s0sp8Z;%Pyuu7 z0`^f0czaj@`=|xHBdmb1K$KsT9CiWwL>EvpbW}h|jV_>tk5NGKYj=t(ses2v4t96Q zc6f!|4rxYnm-tet48_{Hc4dTF`)J_W*<}ke^gUrNEzHpOey5=&hh4ZBhL#K+ z8Cp`K4Q=7049za>K6Yuem&4vFwgWp>?iTk8dcZA;|Fi+E;6zbo7O@N4Ww|hLJRlY` zhX)=F9OV|rZkuDL_z4eJMe!iw7+7hB?dJ_Xh15I6!=g7!nF${8;c}DikXMWAAmoq0 zfZ-7_j~Qx6$R$nMfertSB_r`e%tWdgWm)AJ%iuN_`QSQU-A17e%*BJ z-NWxx{OCA6I$y2`zheB#@mq=C2K+9@Zx?=t@Vf`U$ME|#e!s)-ef;po&8P!N-*~&-jhh-#|$NMRE=C^K5UxL zm`6=wyW4%S$K2;R+>Iiix$btG_jS80LBq!O^;Zb0SD07mJHeG_9@76|nwwnPnQ}z7e>2P@=FgE;p81()XM*`*!eTM1@+&;30q@`xJw(l}t6cbWH~7_-ft?*F*Wi#*q&#%7zpbM17S*LM4yBabE? z_L-0So@8nJx?huI-kfxM60zOT^Xg>trsUg_DRR~ESN1Xw_PV*3CMwOR%%8i=7hSJH z(Mt1(`*x4{i03gVT4`REuszY-pLh@@tu!z7ZS8Je+5H-nbd`CPd4w%^UmZWC?sMx9DksfdAQeoDCG^pyw^P9GM{ig1(gxo@4m`o-srgnIwN*L!sbMC zN8(N>jo21g!))t*5ww0#m{l(d^EZ0CsTulqoRrerFh>}!drhO;X2bB^lW6oAV4QTT zX{7y4HwFwaPQBSQGWWQRY($41HjG^S@{aU0CVbr8n0@03M&+eR#;Py78(0`P!MH)R zB^hv<2Hc|Ypg3$A@O}oon*j%Az(*O_OKadzOJTqj3GLTC$%p*-_hSwGSOY)Sz>hWX zV-5UR13%Wlk2UaP4g6RGKi0sHHSl8%{8$4&*1(T7@c&Bi56vE~4Ow1S6Bts~SXWy)q@sDvnkvA?)isSJwL_|_O3PNQ8d6=|Qsb|0 zs5?JU)@0)v8_K}d*c7Po2O1jc8nVmk>%WJn(&nn_a(`1vRc({j*i^3h{W)5r=5MKQ zY8c3J{ADFgfy%mu)f%z*{Vh$U)qYU@O{?nz+J*?8h^YVES@WBQL1s=~IHhEM;k+61 zhx)a;`anZTQ(ePY4ZJgAGw0Qo)C3A!Gy+=L@{)#Q@a7IH4^)&iS2xL8@R!xqmRB{Q zb_=Vt4k%Qpl4?Hyit5)aMeTHym!(#I1Zj9lV`Eh%B+r{MYra3Sh=rOYA45QXS#_YK z0VQLomMSu}kyzVwO5H|E9#Io$Y%HlH*;YvNPeL6pQ1s5BO7}N4 zlvFh}PA@C8%RR4b-i$Ifh-?g@nuq;1qcv8o3HXm8W_Wd=wz6qCNzr7m<1F(k zs%p!Lvu57>T)#%KV=&j$wLrNtV%I2q4A!!``qefog*#@oYkW>wOC9t z8m?Ab<90ZPbRMVq7jO))9_<#LR`V~ctywN#;ZS5-tI#xylF2eQ)O z^+u0|iyA$;q`JBeU8b%<%1#@nIhc@kqZ}N1!bmF;D6Fx06@!Pd<_s+lINY!!ypbKX zliC?;{t31wP`Yt>T|<+Px~x?~e*-yU_y{=TdJ3{$faN7kB}}634Rol( zQ$qlzdX;pJR(tnPm^W|2IsW<6&n@&XIA>0wpM_Cff|vM%bq(dX)A<`pf^-d_{Vd4A zFIV$VFJFbmR8l(;cCBw(J+Y*bniIQTl0q)00bVmu?yoPYYVZfD12sU~x0kBgDs;LM z(o!Y~A#AUfn;Toobh?k^mX^fQAJP)wGrXS ze_;P}tb1T>eO;rbIz5csFl{NR#yGaYUtQJMB;A>|A&g1slAXG1l(o>^WrQlz-%=F_ zPA|iays!}6!=9g|Me(5i=$;Hfx9BkCS%zxRsKl{vYlU)JI1DXS@ipH!aeir_vZ@w3 zGsMJz?m6~oN5-l!@Sy=-r{oU{u*1N$Q^|*y+4{*qr-bB{NhJt$O2F_2TMHS$$bgm~ z0)D${#&Aug(LFW|pRJem7Rl79tn)AcA&*O-QvybmIm%n1PKn7cvlL<2DG_gyD zfeNnCusG>ttwF`|)yEdu*jy1NQpP(Y(!POq(m&@}>m4gNojO0Xs+Sm@*02t##=*iKeYq;{RJr&y9Y zSF&8Lo$3;dZo}%!!gPhu&em4AYH?Inw4lxvYlPC0XiYqe$tcX_l!7_2c!kBS4HYPA2Jzi1$#~|2^^8DuMdT7jrELSp>oZo(4QYqGb&>J1u6|YaD9p z?36)b=Rylk&caEYwz3wRlu>P`6b*@qr&5(gqsY~w(4uCH3P*1`*2+<*O7y?iMKufc z@Ax{Ay^0mDWx7gEXjw6CjjXlBc;zU|bn%LEmg?daWG~poD<|f-gZ75Pq=B36B|xssLKS#D`*7t2{d4rO$}*Ap?D?c=FlTzDsI?Ad}I(4 zA8&R}0eJN{9><(BtZ_MZ39RsA`%Og^ErN!{<5kqzpB8Teb=H~V6~t?!5E4(N*)r^v z=1z5Axnv!uCS4+=ekN_D#OTmogg=A#QpQt55ZML8IY^0nI0qR&(2#X_Nqs#%kCJsK zBk}f^Fqv{qF&;D6;$RD2pX?%8T~*4kt%#lLMDV+^=A->?418B9{sXnBQT5G@%dy1) zkCMtXCmgTRBkSwxrO*~^-IKw1W#-$D%;I&&s-SpUr~LpfUVRif@u*{Ox0SvjPA6{* z>xvn?EsGWF3I`)Muy>7vab(5YJnd4(?_g|6KTwayQVPbOcy=utij2iw`Y@qgU}Rff zmsnX5)@23l0y|r3@sn_6A!0hpTp0f-#I|#6@jtZsKTzYviy*Wy5Dkn2@mkXo7rTmn zP~r1O#l13$8CiXGNg36K?8;U=UcDpb#^0M2iCxj3!^L%BapUh4j%u-+6s+DQx99K9 z1{+4>9)5qXT)M3KJFKz)3#%N%UBxxyj=g=TQ}YgGD^Z+-J9|r%d^i(V`SSUd4=mv@ zq_z;3xIAl1TD%1eiHS>{oME&L+Dr5NL z@lKV`+Os2P5pk=f>;Q_tx)fnurC1kKSmfrNE~>dmv2;g|zY1eXjk_)*g?2@yhHvue zsyYpq+C^0wEj0cb4VT#!6&hpLPgm7y4AEUwwH-)~zkXu~?utr|-Wk+YbsR0Zi>f%b z;P`7eT5cCqu(L0jt2J&V9dY*5F5ZDvq`)rl*p5ipyDJOa_2RnV?i9A~jAkmaUTNUh z&*H9%@I7wvS8cewuBcsQ|J)B-6-q|&*MlOgD=HxeZ^KvBwv;qfmDDyhVrrm9sS(7p zmY*{c?|ITOEB+E}GnbFYIg3bSS7c;8eaCSOfmKcPbP@f<%G2*4<8IcYP(O`)Xo9RO z8ID_joYR9n1dT9-zp=57RafHiipPt~e(V5m&bzYFUK$AlbIC zUbl=(aGp{>*eoTxs9j+|#9uqeffhHoE+~hv%CT~Ys|avuj)|=ooNl;)pE zFZtKfd!^HH{Lg~rfm(W>S)K=0Qay%G15wWoangoP7{az;IzR+MvUqFnIE~Lei_MAs zXr)+&QeL5sd%I~4oITZx^chyRPKye|#@}!|$}3LiiW>_RAyRoO9>3br^5at&Hv^oy zP{*}Q0n#w8{>s}6ao9wSJtSzr=_4GAS2R?m?fiT?8I3h4(v>p1N>=<29&&Ndq0-^d zj{4R9G92Q-W2}bSl4>r!Rrna>c*{V&qMi{ zkF8_Tqt+@LP<%c|1Jj%7rF@DM-njAOJ{o$)GomBTvX)XfB71LVntgzx zeY5R2UA2;IPzId@7_P|}5@nwyMPWzBF@xxUsSMoe03weM?9>B?V_2o*YQiaI{9@9v ziwZ7TMc-MO#7ULXQB7EfgGE#YV^J3jyQVU5zv9Cltm8xHVe{^H)q z1mh|IZbz1?JfOAj=PE94-O(s&o2#q+xEY-puIsM+;ijRd{-i zjF7GU>S1VkD;6>CjA0=qV<%IbQ;CE89u|w<5|mx7~4vy=&(0|zxyR%bxP>$Sdizh;r&5*E~i?6$Rm}b?nimy zhhOIm4XkXgf*k@lx5zp?I#Na<&c?NQ)Vz)*N*+T!)IO!UoKEu%MM#R(OBEJ-hipe@ zSjS8h>%AaFrgK=e(xeo!dO~$Yfhj#1k<#u_6@_0;lX z9a~--h~VyjEN&cq9WHx}st8ud%j^8s0o|&u3R>aMXVEE7s5?f*76bX zO`$`DF-W8vD3LI0Z^CKKwRH_OaIWP6=MG{cOG+CR7CIW3q7~J3I8NS5*VweWI-oVw zHRBmXxD1JFstcAhl=HHK#f6z!EuLBg8k-yhvsBe$rxRZF49C_6Dk0aR$eg8MnK6c6 zSk>pHM}Mt#^0DfrwFZ2SpsFSy8w&~^D8nfg%GU(64PmiR>&eMg3D~0tuY)aY0Ms<> zQGv>1FIhx;D;g$s>ed5ixvDHsPsjXgcrwyhA1ISYXO?r6&xO~@t19ty!vZ-&`QSW> zLxd}ct|hA|2~QDlMmBRySJlw*{xv*59fs1uj<|-* z_}ytrR#6&Mp=0{*N;AB=E{G2p76C9k1ttzMI|_uA zUlsv_PbkONGWl$?q9G7KEzmjsD7AzorF8l{W(2FSNXr+0AqBBG9;k%@+23lonUpk? zEr$klJTabISKuoK+R8>gx&GW?bhFWL(W?2vSO2-gP^qg{QB`yOYFwvU4XUyhSKM97 zw4gjT9k8jcrWDvlLN_9g0Af&#{8HHpcrGZV1lf={>|U0_`pkxP>OMT>NT_E4p1x7t z)#98PiDt-{VYw2+kTJvaB!;2i-)u>7p#4b?TPzV+o)eIXSR&yp(G+BvPJpw+#01kI zOWjaJq1j4HVn}rvw+o=el(cqXBvmPrL{PS*PADdImvN_5N>rsgC6sifoD$)bR*6z( z6-t3A>=ck9PI)L2l3=G{ZJk6;EToE)3_0-^fw+J%tcfZK))$O6eQiIbu7Kv^|C zQyWCnb0p5ttN@ZyAHc{2kiVn=h*m7Gr2y21X@U)Z9u24xu51hk5ZYP>m( zllYrRBtQ$nih7)E(L|qZv3z$$V_8Wp@DeoETJ*+9zDA2df|ih+mJ%+3^=%GIYKtY$ zhE8@ZmYfi@b8NA*tbpe()9Bg=b(<-SYa=;ydIKDnW-Lk&nwp|k!EK58>9}`THn4)O zO&n_q;NH>@2x595zXyfUiB>^hy}?&A@If!FUV;id3#cWD4COh&NXH+?YO1NHR-^$U z&U(m?qu94Uu0dHbN8ugQTnv z$o!TlShKpcn(Bc9fK8TKc&Jm0a#1~CbcJf5F;86j!P~0+It}s1BKd zf|eO%P?~`{tYroc!VG{c#}Z?i0i|a%py-xLYz91z<65hVEQaA&IK731ngD-LIhR*5g_z(vE6^R32)ScRqKgeJ^JC8*JwTCiye9|~*n z4k081X$!WwfTjcDT zadr&RSILB!r*ML%I!S;J#}}Yzq>U*7-S`l~2nT^Ge0jvu1p%o{(AFkss}r>K3EBz; zZHvS%@Tuv%m6YcMLL{3R@~k{zMa*F6MjMoOT8iP;L@^qt(47t_!dUlQ zK%Ur?OHd&JW{XZXOs=-@k!TyQOaz%9GeaAO3!;gkMd1MTUc|W<15z*MsD#vQ2}|9U z(K626m+#>_+_iJ24uWcNY=>fm6P{luOc zHr4Trkhc%jlyavBpymNyKsjM#1kV^5#RDClR)(st#Wt%2L$xGLX`$ItG`?uDn~@Eh zmRG@{*y~ih;!f*=QO`%_<5P@&KbD&O_->-VVY!kB`^l%yoIP>EOuv5?zMVD|cslle_Hujp(<46c(wU*ey}xf#?)1sEh4Q#9f8!by zg+ENhpC@X>=ji;67*6{!+V@vBV^I&E0BoSyja@&qfyi2=vA2j|**G}8s0NSi=d?_& zUqH1KgCl$uhfcjM2@^~oZnBc`v>($f?0yQ#vXPXK7RhZ$6EzCsS4QfW&F(GDJY*bg8ohJ|xGKbsGGHekL8i|7H)ZIdg zbZTLGa#&&LNlTs{Ej3mn=#X&?S)Zr7wsmN~hNWmoHky;#078V2KAl^=hjrxHNPd3y7X6G8 z3>`k6wAvf_*A413GK$$YmA%5~UmwPgx_{PXu-H(6AO8_CN$F$$KeJD)E#r zj^`YX>BFD9#K^{aF(=j&m>Aqj*(3Gupz431Vswz(u}jlIqK*m`-YdgvGTfMD$ zDXfw^Gv&4hm7?Sr*+{}X0lo2r{%AeVjmWb@*BHUqk++Lri@hzwsnDEUj34kRWclb1 zO@k=TE_n^Z@!)c-4CC&AFnSqQ-5M*kUT#fuY2N=|KDYj(okn$ya#+)|lF-oRk@(WdL0DVoNl9utzhJ;1uaO4r*;HwbXKg&SevkO0ZH znwLRF9m%D{piRT?DvNiRj)0Tz#H2wJlZH-68aX-Xyse%~+?QG!7=87mkHpdbsf%>gUV0SHr`=b@IUjvlh`8L{hVLels!RgUkdj>bTi zNiy(PA6Z9aXZIzxrEeeugen+Bq#+$ATj?WpTw>u*Cm3B{kvjJ5NJlE~Etagl#`lsn zGNvr#Nag*fC95;#C0+7J2mBq5tS`HLhPSC}I%-oSYf~4=8VOmywqz|O<<$BPx8qsi zcGNUV>oqBnrY)vR$7yFore*tEX}eo#XP}LeA6R1HZ9hQy)LXcD7O(Uv=)2)MMs;RN zdq*eJl8zr(X-8Z6ZbciIOkwKF`1>VY)N)H(Mzm4=-dNq$_LE}GoSE!JJ$p%7itS71 zATp3J_&ef7f1^NjUXzm!h_Ft3#1kvG31HJSlDUfH;O}G11Uis8HR zP5AvFXyX2 zTRSgXtLL-}vbFMTZ3(lj-i?2BU`z5#By*SL=f3Q?eMHGT zdJLKCAopWS=I!6VeKd3XK;uA_I;{jz**;)Y;PDSzz&f&JRN5G{m>R~TvQTBHMAYd@ zzQT^OeW2Yy8q%UM$%cYl=4ES*cKcWw-acS09Tg8IG!aOVav>Vxob~}(;E`>}F`aBW zlH{}x1fV4fg8+2xu$>@VsENc7=Va!z69gPR5RiI6A%r11)K03oqidS`f6-1pIEGF0 z&`ut=WDbRGJMbfulfv$4a(wuumF@^+bdWB>e`?yxxEau@#agr_A;i~7-3cI~NyI5M z@cGU^U7VsHcc#Ne$tk_2aqHyUAYT|4E5roWIg~aefJ1y^K+i#4(}i&zMwvMz3dYei zzA!FUG$cNhECR<-+%IB_3Q;)}%7{a;M6ntqP7|h2>t^+2O*2jrZsWXtF5ylv()81W zKI3@37t9jQG!RUS)0ipUo2~0n3>jcJ`*N2HQqJ&>(fdX*3<1L&Zs z#|mSgQDpj%qjBYWy-4VpQCa3AZIQQ$MJ5;@>YVE}>-AFwBKusk-Nxq|^Z_!1XD9=R zOLrT;+py1VOxGs}V?>e5rB6?eA$qGovj1$*X9+Iy-!#;m+qit=Gp-c3@tIcSHZI+$ z4-*tbsL0g~d1*zi1pU-r2%HK#{4tlHA6-`aaWbe46M@CTXW9yOLgUbt^LNURmKPa2xj~E^>7< zt~a2QtH5|`9cYMcapf6X)>pVrb?al3UHNV!LoXCA&24OMS_G;6+{PC=YQ3-9`<|=c zE3Up{Ot-7M+c?RFcO7vz!+~vkaP2M{Y+vm!08>_iS zcQok(h3iz~uTTY?E&4RX+>4C8P5KOh+(uGvsHF?nd$SQjXo#81Dk2Me2TD*xWqpOpN+lh{MKQJo(M+iXRDhsUfFetM zw{c`W?EAdF2nFd2y*I#Y!h5GaAWE}C0_`bbtG-nnubgg<&^*bd*<%Pl%XkEgD}-#(2to^vckl~J(-A-k(im9sfno>H8D{M)9N<0h7BRK zHiQt{?iOJX&C(JZo7ECR2(1kv`o7=Sd7XRS^P2lsc0c?5e*gHKM|anCJ+Jq9pZ9s6 zbKd7%*L~gBh;w*s{z0qrB5M4nxHW!4MOLH6PsOkCvHxa;r|!1GUnZ{b^J>`RGv5fB zqA@A?h@dHsa!paKgS*|hHsMERCYL3JUrnlR{fjo?QOV;a&+9Xj4@(L^m~^MeBp)e5 z;>|$jK9P~LhZTy`&QBhY6u9t0A=?A_xgsCZ{mi7~gIYN9754rp=l#P2?>`dX`x~?d z_sx`%qmk|JNy)wB_}-ZsWd1ItbNJDtM!;ws#t3U8U2d`^-?!v139m&t*Vzn&pORSxb9%bu9~ zWpZKb6Lhf2*xE5O=)T{L%QxEPGKWBB) z!x?&5=q!D%okk+Db+FpHIcDpe)PZ8_9am}y?-+hRq?X@t<<-Hyl)Pg~ukf7I&9ePc zwi2lxyF!9qP`MFQxk6O#SjWHAN^h3l5Z>8&X`68E#S-Cmb}m$}-GAxTF|RFEH{aMs zDlb|;pZ2A=_{KI%TXzdTdwDMjLE-SPE|m#HqVvppsYu&4;gua^_B=5B#`NSnv_bzl zCAqgu(mF)8C5e6YGgFqj8sD?mz!s%+v!x8-QbbL=aOGyPXQoWS28d%+9%%> zPHPjMJ2T~t*87FGCsoU?M8MWF53BS6J zE*z2%!}P9G`+L*J1(UftzG-Tg=3gpPf8RFYH})E$6TBFjV1kz}lz4(4B8BVZE|qrE zd!e7+8)MUZic~~q_ru)mK1BEPl2rVIy&83jca!^#mnEMp%4B*UDAT+4U^l%F)T+Aa zy@#3J_X|IGWpcJ;_|?pmFT>v@70S+1@!EGunpH;5gY9&nNYCiEyC(2sr+J6^<(_AA z%`Ux425?fL^s55xS96m(izV&Cucu1Y+k_v!LtYASQY9>)T4|3~8b)714*9nwGOWCg?al9>o*{j4Fa-P<@{ zI;#|JVK|D3R9LbA+ptQW>yV*9NmWp4TcbK&tAdg znYTNWgN8a>V=#@DTLQ<%8!hv+p}vgUP_nvNEi0r|GbAoa8?`?0YOU(XAY$uv*c+|% zI;;^F5W!_wvp6jaS`(+6F2TeHL4-cV3`%zi)=MI^wrBHeur}cjr=&a{zAd#-nnbQo z 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 z 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⩔(- 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
gDNN%a&(>`$?})Gp~AVE!R}MTIU-_CZN5 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 Tuq4?Wg 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

5&CB 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 h`KGUna0-t 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 z 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

%arVH-HC;KMP(<{AFgcs}t-;044x!3&8`0WT*0 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࿿$XcR54GU($Wj13IzVu|g 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 ^$4s-FU zr@rMW8FNh9*hEz|rA@B(y7mN$)pqR|YN3k_^bT6ch_H;l6oFi{nv`T-#4nkovX-_) z)4WTw2zRNM_KY&FNodg>C7!*!Y^Ltipym#?zmYWvm0P$!H~`a1AhX$!xpBsd2l?9b zGb;t;kr98h)<5M0rEFLPRVwhc6?$s*2G8wG&56lB{m~arz`5X9BQzL8)=+zTRTddr zG4y^sCiM&qVOTO26A4YIN@p7w!->t#p&_l23(^{oLL(4+x5*QHFqg5=Me48Xcx$Ks z2!7SdvXU&WNAXr!^huQu44hdK zEWr4F%e5`CNYhos-Sd{4W5I^@tjTqWWuxL%)J}8rC>DeR@&J))Mo);0@k3PA7B(NI z3Tcaanw)b(ht>Bzg)dt@)`lviCCe~I73MMUUZuLUO)zOIG^B1?!~3HT)WlBGZ*LiI z3t})V^`fW7xY-~pVdG?%bbft8>w;_LrMYyJ+ejmgi8f$+ePFRpT%T?U%M*P5#vK;w z-F%4uVjB@qGdMXB)^~H+4tO(dDQmhe$OrL+taiyXZkI&kb_zA#x`<0?#v5BRu8fgC zwp#ARr|GJLY>H^fAiru}b>YR@bn2$%p#wx-)+rANiZGY8?Be`~RvEd^i}w@8ykm<* z!sM?B)$dz;@PFLp^g@^&A&V!11n1Bs^hk51s)-7`UwuxB5jX>jh!OVP`L3&ynj9*! z>+i6=;lnxab@o%f$xTuw<7IS8EEuMa-z#s{M5TooJJk}CiMTAhRvL9FVxxr9T>7VR z*ohdID6~lyh0_-Cfhoe|_rXq-=<_LX71ye6YdX4XZcny&e3!lotM3?r-73%K8txL`doe3G$`g_A}X==99sYeA_myxL} zQPF710#u|Yr5#dE6t7W#bodZ^yIp}Q2Tw{wQCeVCZ z+xB_XlqcaUlC{|^>E^0X*D7TB+zfUuKQ|Bp5vjWGs#^8I3;V4cSj4|I;j^a%#%nBl zHOzXxF~$;BJ$cEBVxyG5dwOl@O?4}$16MR+&vh&LSy?< z7s4x!BbPYEN%o}Z_f!5paJJr(?R%C4VKsW^983>8V?C66<-J`GvklKz2_R+)r*vup zmbR_Rq%cKJ)3pOWGAbpbeb5FS4Z;Dh^#(lYElq}ogsS1sMvZ^rz7I5R9{(yy%>U@| z*Q6+C*A34Mut8;h;CQMr1R2PZJXF`LZmri^m^upKos=!>tmURA`Jd1NOy!?dQ>D!WpCsjz zQL?O-)yl;C@F9*G`a>2UTKYPJW3mvX0$9NFtI1W+D$&SelkIe| zrH!*{Q6Jr9)CZiJj4F`f2vr~LMnr?iS7PIPV;lLtyikeqyf0Hi{UY*Yc>X`_x=+7n zGyj{&!Djwf>-V3E|3{! z8ZHdZ0?G>S&@UV+gQW)?B69znQ+}X_O}&!K{5+R;&Cj*CCvHp_wgeiWhi(1iFFFB_$4_E(5nJwo*Q9 zkeAb9g(CgKrJ%E_@%_%uSoL2{L%7^2ck)3^m4`5cmHTqUL#(xkH|v5)HX z|7qF8K0{?d*~+9o8Uv`wH-O$D{~!P2rx$PLe=O|H{BLUw{4?=Cvtc)vmNmk;5SRbK zd5DAp%>;7Wgk>M_=*horo_;42KxecH*+3`0wN0qOW zfw{sdYg`U3avEt*^&fi{tQo8_p38{o|V~Vcb8dp42YTU z!ndBnIxye1SK`3pHG9qHd-cSjwfxOkKduqSBXD(a##xyvnJ)!(#R$l~mHo`M!$wYWqjStfcZPFQF zd?WE=Z-njFE=$WXtsnV`xFXcozp?y!&(9t?b~C?j=2vWP-{n3Mer3;THI9XSk0&$2 zq}YY4r^@VG%D?!}hFd@VYVwtHHrrR8eRbSkC<>F4>l@E_{0I z!Y8>A3m;_aNR~TEyWDXuJlpH|l-#K0&b#c*)8)>z$nv689glRmBbsG+w_erd4jxcR zJu;3xLqBQsojCTKUoWChMlc_jtk{J_>dpR)V7;?>KH`4ZJRhsiN4~|;IMU^bo13Du zBlB|v>yyln&ue>k?7iMiv_9!&ed5w6eQW(~uTSbQ|2rdw_eREtWPQ^4F0W6zq8$_` ztsfB^c74(X3%#@TiI8bbq!-%cKX`pIb<)4wyP03(#?bKV>COE5#6QLQWb$oKJ-FE( zimXpi6q|f~(recz!67ukQCY??x4VZTfteAmPwMRY#Ho-?u|DbiUkJx^Mb-mve|;jF z7N<&Xbgp>yE!fkj9kLpt z3CUz5yMzliyBh~sG%dPs6&cOHlKXSTQ^<;zovE%3ThCZZ06Rx#^daUOSK?ef_#~Cv zM3BA}{>BX+AV1-Ht~$NOaR}h#+jsclp6?31eiYCvmcZ?2Z#O)>4k_WPExAaWyiqkGQQkgVX|;o zwzxljg4*3WidXDrhMA4-!3gAQ&FSubp1wzovJI0ElkUjhpsnR<+^z8%HJosvz_|8OLSU02A~Slh1IKhKe!VvoPSXYLUE!j4ml;v^Ec)$xzH&O5-SNfuLR z!DDK9k}Hp*pJi7~m7*!+VW^>&DZF3*FFf2tu5#V885LN`#v*pRsJMmr&<=^|iNy5n z7uF<>IY1f-ej@L)9+hghzq8Z#csZr|wD?wEU6_rjeR&iwrXC!(_@OiH+>t-ce~-u& zrKV}o6wt^lrn>Ub&^~WrTi>phYHM9;M_10k6%4RrR(-t`yx2eJ4;kW-{JbPD%#Zs$ zl6&Nu7Q+9;$+j%$#YIR z>hR-_n0xfbHs{*e-FC<{v~jIS^w9lmX(wi^-PxO}-I2-@Cm-Bz*T490CwJnX$N%5S zJ@-5Qz59Rn-jjj>){z-8L8U-H6`z71|8MzlixCP4+YgV==9Tc-ym!K98`+$rON`Gp zs+Eo4vrX1+IKRGp!Z8)+7o^?e@Z*k~edOVDW}h^o`8z)t;p%_%*sq7vi}S5sbib>& zy6L{1Kf+(;JM)cuY3 zKmPxl`gx8%RzS^$G@Fz_z3~^Q@c#?!c)H&eE*tjaP5rzWeZIV@>2u4lZ)7gWSo*l% zBfPETvQ7OwM<1tWkFGYis#sIkm-Mv!2c4D9H)t{tnNkN)y; zM^)5zRmhp}#a&`v;_$>tiIa9o%-bb#IR74zIQ)pjN&L6V5q!k|$?xNjI{wI>uO*J2 za})|R(Rx@-Vk=gq$8DQPT>sHT;!f}|coA&FDYiR;4}#r626Tbb!S}&`g1fT3!8YR(iI0N)z!BgSa0R#rtOZ;Cdm_;Q z_5q&*v%&e`X7E4Y*j*Bd#_@^71keKZ1vzjOm<_%L&I1>LpMcxI-QW-4d9WTNC>r>$ zU}vx^*dKfed=;Dnegam2r@-IAdnY6k{|@#AU7!cd2j_vy!7soa;6Csa_$$}|cGwL% zfnC8~;H%&+Fs7MjgHyl&_#XHXSPXsx9tM8}TTJBH;EUh}Q2U8Q;s9_MmAL@D@mZl4pUlz-8c<;5P6O`1h7XVhYHBL%1K$J}f}evSu+_yl<~WVjTD?xD{*wJMNuG zj0L-a{lIi^3^)m#2EGHX0)Gd4?Zdqw56%Zyf?t9E1`mUE;5G1`G`tT^1h;_Kz^K+l z;sfB{!QS9=;0SO$=mqD1E5IwDWnb5~IP#!Jc4$@Odx`d>xz%o&=2Q^2>t<=`f8JGdV_0bT*yXBh)a9 z1?$0f2QWv$L@)&$488z*z?t9y@NWk)Kfux8L@)p@1lNF@!EeAH!CFw0gSWv2;CJ9j z@H|L#z$f72;1i%7bb_P7so)+^cMuVNFdZBNP66kD%fYo^8Tc)zJs28;uY&<_F1Q@r z2$q3IzN8Run1fW?f{R0 z*T9yah3~_re1MKug_ybG>*{+yrh1_k$MX{_Dk>$_!Q^>)4(h+8=L~p1h0a9XVNe5 z3vesA3p@;-1uuauyPzc)2im~F;EUjBa3lB&coUp>IO7Yx1%3d23~mO?!SBEzs6B#0 zFyJF#S8ysg3)CLT=inn?SI`0u0EdAdPypWrSAiSAYhdSD$Vu=i&<;Kgrh{&9GWZU- z2YlivWF^ReBf;r_(=HMhfJNW~N5jit7WftT9e46u}+f9`GR8rU$tPb_HoLAN&X`2EPSsz?3LZ1?GW;;5T3$ z*m5p?2cH1@gTujbpcnLkExyV;1>XSYfuDdS;4RQN54wYP@Oki6un=4TE(7(w@CG;^ z{1p5GYydldjrRi`;BYV(_bcoTf&6y^ZPfi5ryECAmDmx2$U z3NM56z>mT8;0@4l8uAt#2xfwl!CBxua0&R(>F9azZEyv+4*VU|e*^Oj900xqP6B6w zZ-a}$*7FmIFM|ug)!^6Q_h5@Nu=Bv4;9zhhm z^chSBSuh>+fK$L(;5D#AKl2P642}SE!KL61@E~{vY&*ahf!)BKU97c1{i$-@)R5bP6WRO4}kR` z^>(<;)o{5ljV# zfNpRyxDUJnhQPKzqCL<7W`pm8Tfu|iWw65)yd$_4wEh@-5gY@)2`&a#g2%z@p!O#` z_y42rJ>aW6uKe#?=2l%vR}EbdMc_uVNlcuwq{kbl>}InzHfB>?HXA3q&c1K{$z~I0 zH;vvA9U*!VMTlNSM-p8WA)4tJQAF<`n)rXudF~^0uO#dM`Rx0CKK#(knKNhRIaBYn z1Kt6@1bLtktOlFG9`FG;2LjWmQ=k?2IQTO7Hh2xZ1%3m1fYG236oVb$#p(3#;3TL9 z2?g}w;4Sbg&;v{Z^TBFR0ZxER;12N4ppJlNKs)d)@CKL#E`g5~k{9r8@FVaG&=m{- z6F?y-277^6R{Rf82v&p5;1IYBg0rYAARGJ*coFM^f zQ^5*Q0b0$WoWWGE46Fn1gLA+$m){N`3p@+H3|<9titr?8HIH!`d?||QdZeRqM z2$q1Ypyhn}6fg?R0!3g8I0CMM8j!Mp`7n3^dZ@NMuz@C)$Ypg+h3 zvp^|GUxY5eATSxs1|?uOI1R1=-(u=IXbZjy27(HZu!MYqkAbg%SHL^q|A4Mw0GJGx zf?yH#8uSEtARiQgGH?W(0r!A^DKf!lK@YGIIG2%6&7D@Dk_%%E9k8(8j=*HuCM@J@FI8}ybFF0hJy)UCRhSWz&5ZCgtyQ(z}w*G z;5VQ*7z)OL0}p;0_ETUxB#5n&^?HNr@-^zi=YtP0H4^-cYt4kKY$#N z2lBxZPy!BtYTz!XUk1&wz0Y1Hh`UYMGKLkGo?}3S6CfERuf%CvoLE8gA1V07G zz3hV%t z;39Ayp|1et-~c!YGLDje@Fnn5&>M^c^TB$s51a!vAov0OKNt1WW+y!9j2dB%VM&;IrUs;JaWm@SdbE z1m6K~fM0@HU?(^Y?tzq3)CJHUd;`1;ri1gKc@=X2@Dk_(rh%1U2RH$4fzWB{0eAs? z6}$opzy;9a3~dN}6LbaB!75MzPJ-JY@ho`4HSUYU?(^Q z?trB8^u6G-;OpR3PzWx8Ru_;9z74vA8DI_A1**VZkbIH;1AGp=2wnpVK==~*0k467 z1NmSxI0~);-(}h$cpm&6_#XHHSPE*uC$At6ybgwdBCrh{12;hMD*6GR244o>0n@=s za1J=GF&=;p;5{$^%m5p}0dNC2ucJTkGf)WjgA2fQgS>;Eg5QIIU@}+&HiN_961WSJ zZc+}QZ#C`k7T*ir0`G!3;2dz=W?Thd2Csr{U?7+b7J&_*0vraXLDn7mBk*hRCol*U zgPp+KMdu(3{1glWAAob1{6zz%Q_ zTm-KB=m#_fgFyv20d9drhtts-d=hj3zX3zQN$_>2(=izA10Q!e9sdb>f>B^LC;>;n zUC`9+bUY7!0Nw%r2mBA{2}XjMU=uhA+{Wq127d#-1AYqTf-@k=<8-_LUIvrF5zx-- zbo2)Mz-N3;$G?LA7jyx`!CX)Rc7c=NDyRWrztizFcoF;)_#yZi=msW$m0$;$5pX)P zf=r>Gg7%;*a3?t(zXQj?CGeAEr(-*KDa?0( zAA;Y2K42`E2iAdo;5=xa;&eO*UH~tHAAx@ZzXpE>Q$QK00#|`2)#+#ho(Eq7-v%AQ zkHK$1Z?GBc2A@nrkKhjYRl3vB9pr*9WRO?jYT|S>0jJR9`poxU@Djg z)`F+nP**`0&>s|l<=_yw1YA!!9qHg%@M-W8cpLm2{04Le{lHi-9V`dyK{W_IP5l6~ zK=L!_11tcmKsg9Jiww{O^am5bGO!hdo+HoT0QgE1e%r(+tp4a~=BFQ6^> z2k;Bf84LllKoO___raI`hI$D`ff8^FJoO3c4)_(w0n@<(uoavFoj&PwEC!KJIUWB2 zwu0>E=?lPT!9Rgtf?;4PC;~gdVNeZH+EI7FYhWPQ0Iq`~l`X--CYvzXkK#I~@bQNS?k#`G7*O7;FZI!7Y&ZW!ew;GI#~N1O5z# zf@z=x>;Y$h=PUG;;FI7x;7?#7I0Lf3N?C*NgZ}`(1zo^sFcr)LWnd4e2B}{|2cRwZ zJMca5eej>)kDxc01ZIIEPyr5sDsUClfWX($8Tb_V0(c3$1>Ob!1#&ua#AN&OT z0zCB%>Jj)U_$BxQ7z9Eu(U*X}U>qm_3&Coz8B~HAkn&Bw5quZ?JNPXa3Z{T+(B@m@ z8GP#7d@DEwZh?gFP@lkOz*oVm;Ah}JK`Gb{!hcUa2d{uPz<+}QU?Nxus=&wpf%XEr zgCcMNc)v@11D^mdfj7Y~!SBI9FbT{8Mc^E$2Ie2>OF$NQ4!i)q1Nwmd;4G*CDc@s^ z0zU!y-~(_KJpE6U6LOcf2fqP1AP?k&BcK{&zDnN>z68Dn-UdGhzX5*+eZg=r9?SrXz#32n_J9w- zIdBt%UqcVzS@1RR58!q1FW^7GZ$TH(ALN3$U^!S1j({`ZI&gHPoIw-N8hir$EqDdI z3;qlI8T18{!3wYeRDeU^0`R@=WY3)X>@bcj=j$fxb?0m5^*7CA=j-DgPG>Fg4fFbs zqC}T*w1u;6wb%KEsrGjEIbU%&mDtg=-RN_Kn-hfN zbvS+Iwec?Zd)Zzy-gU&~`h&w9k)U5P=?)mjClL6Fo|1Y`=O9U4avC&_&yuUpPLqVD zxn@a1q66p=_#;tI^PO zhcn4IGQAy#`a2Buo6P1uT<>M$Y(CKCe=idC40H{1)rJgnjdIx$M!9x9U{hJ&B=_Ge zbfKw2!lD`>4b8zwau6~j5kL+kE?$Q-94+0uP736%v&Jsn)F^#|NSoj~WJxoJTwM)> zu4bNzicdF=)+F2df)k}(a9&4jTXWr2B0JJ!9(k9U!OrC+=&{af)moayFo zA0F$fvDglKCU_;{1aFQ;Y-SwUq?x@;YSA*+I=AM-)Gpfjbd}DhtGBPM z45icm6iTftbl#ykwl{a21ElE;aP_6I+dG_}Hja-W^kYBf>wY{_S!Oynd62Zpvx9H3 zSvs1JjdwyF?<|wEpM;|c_>U$OC91zDabObu zfk_`EtN(-Ko5{$#nY=nIe$7-G6(KE`FKTCUol~U`n(CZPy=Z49yB3HJ7PvN0cJ0gt z_kC$@_suoFw;lhV7e$`;j`q>mM*AkyoQUHe6M#A`Nl<$yjY@(#DrstxB%U-kSpw%KZ;-5RNFEjz@38R1Fy6W0)#8=9IbYwW6Ie1AJDrg`TCN z@THy;6nnNg5gnpl;QJ;7EauU^6#7wS5Q>8xso^_$zm=@S{b&O z3zAlaot@-6E+kzg)Lc!cVtE4`!n#!e@4b~=?F<&RKak?T~Qh`H|U=OPpRh^M0{ zvC`<;(^lclHmh9gC3LrjGE9BBk-RCrfxLYs+IBWb-Zr>)*m+ZWNAvkj(p_z`=#n?+ z+Cda*|5hmV_!Uz^xOO^UH4ZOd>P?LHhU)KV`6c$(j3a~aj8Bl*Cq5;LS4u~d@u_HA zR(}V}-+>rkk4k(dDpCDN6u(GRe+SE7%m1q7XPevoqBlB@I-D=YiBkUqR_EVE!&^j? z`bM1prRYqk$mwPS$P_ty$ONK?YY;sM{*%6SL3OMP?xT*HeF=k;#P4ttu?by4lTK2c zJzU3WEfI6vEbvM-@ecHf_oVM6tvq6C{QE=lcYkPDBE8&%#3_kzO-Woub&Z%+iKTc| z;@7DmU!Nc~ZGy9a9KG+L-R=PwLOh z(L$Yy3d%cXZD*=nT_msFJd)RTW}TNM&`#!%uRGakXS#>RhVYIhcQ8rjbd*2} z0=34xY$mw*E(+ykGus{a{oUmI9n^lSW3Y=${dJ1rb>sLd9m7{=QA5lu-y->?BJ+Hu zcQjvJC{1mlOX*T<(6t*HqgAwvx2KmRdU_Ypma--El&6rdwp?Ab-p2EEGLH5zw%2d( zV)|KgM*ilAGIGpfdlCtw4&?k|VVZS>j+Ug3yB1T1bx_r<-($Zd_?Q0^4gN7x@6{Uoj&VFs_Mh(rW2a&= z(B2fg*0^C_jT_#*Ay`y>lU8>l-{g57E{MjZ=tBd!X7WF&ke|pfl2f(VD2!*Ac$hQ3 zYjk->9p;+dRrc>MsHzLozO2NGlF-cm8nen-!evW_j{e4W`tQ!r-oyAU=p)P9Oa2S zGc8KfW7+EH)@Jfk>UjU@?$3}^_h9{8YWEvQl+rSXGZ$39AUY8m)vanGU;JgOAl)@j=K`y zi`1ozFh@)r>4>THrvJ8~=#}2}zBuOLfeV2+l4K*6Bw6a|9>LUHTqk|Qbt?F-=^7M` zQ38WP!$OqXFnS^Nj}1+viaN~1(9{rBV`^v@y(GmcQHD|Y?ai>@Zt0nKhsp_|F28G5 zODWN$>bm-cHZUxi4T-{)jY9W`cTeKvB=Js8nklpUnMuo;_+^{r;Yq0!!lcxabn%v? z@6MnN?aq)w$fgh~n#tdaW@odAbT(^rbMcODzMvIc3tAn^#w)4!3w3Kl$16@dq1d<* zaxx}Op`1vWlxp>~@7B-4(Tu3@qZy@5(*ImrHZpETi?+1M#LVx3*|@3!h{vl%dAK^lPHz( zkNgZe$Fwun)yLakd+tA){oczy6nNRk7ToK?bSZE(D8r1nZUT&WsX)nHnM_kp`r!W*9p|T3$#A*KwU+s-MYTG4xaf)cHOM8@x?BVBe*sxv z7$j=}gWMGiM(s_7dxEss31$F8Uwi)Nhvi%Ru-vJ?A$EpGr;)+YX$Q3dAIvfYd9fMZi_NY!Ls3_o9n2CD2eYbLOAjmQ=^SGk^Set9Gfh%r{%2-0)Z<_4FJL~0 zqaZ0KjJ|Wi8&lO^lYWqHhX76PHIf_HRQ+q3m9Dbv9d?#u&;_7t($~0sZ2)(Q)0Pb~LSDrSxAFs!Vdm!5g7|MP$vf9czxP z9d%^wXqBvgj0}`8Mz%90fqd!i@cSz4G&RZ|I=-4u*QsowYN)k~XACMn#}j z;2F#i_ziBh=+tOLU}V7g10>GXQFm@&Z%A{1nBCet4oKUO_8?Cio$yg1MkJ8(+b}Ik z6z{&o!_tKwPAp`VA#9e0m!wcRC8{Fr8CS`o^84)0O_okq^Tr0SNrxbS~7Lr zyAp>kjxT>C1peMQrelFyoR1g*^?@&FKAHp7Byb= zh46k3)qie>OnP>hYNNCMYSyIiPYKM@S-+W;xG;==VR)G=p)6ww1>fp$Rf=*~rOe2b zY>6;cdl6C?)2f-2sbfmuiZ!ZT35}MYd7~4Tg)Pl53(unI!h5pGjLfL&5p&4Nst>xZ z2o90es38emLgMWbS|yY7RiWeRy_M7pb&#FB6bW4^*`V}^znn!g&DstRa~~^fcf3X(E!h;Kvql2!FDrOel=FTxtB z`gg3Vec1b%ld7MW&`0ZfA6d_17hh|rOobgp3QoX7V?Ob4(RQuRjJto%u4H( zUhBM|RUhj5j3rw2%Nx|cMUB^g1-wtR>Wjd~ton#}w5m_U_^J=duKGCZRehz!R((kI zsy;Nk>Z>!h>O-=t{-Fj{Z&Bk_f8Jjm1swZN+>LJ;x$5~JHN{dxJqYxLDgH-c-7x}(yAAMkEwb@Jeul>7_WLrw(4=#Q@zq+RS&72>Y>@HS7)s1 zA=#?$&Z&#~Gkl90ulkT%Xnz0zV;52>E&q1mceXRPWW*{UyW zQ1uoyUiBQHda@mk2z*S{BjV9iPsDiDL$Xzmv!3de7OQ$l^;8edR=ql7RS(HleNls| zx2W-|U-qO`F9IJ^^@w;h)e|vZ^^k1U*HBzAHfnLAtRCwq{*@p5r2D9e@dPV*64|mbD>_c za@8x*+PvPAcp!~+6Xo3QoaUExLo?HVG@y>70ZyB+TN|9nVrAG^GQuRdfu*uA8wzYB zyh5rc!b` zwu#O3hXs`-Ptg@J1e{FStIJ^(C{RzbeV1?lZVpR~VUr_EjI4)SVVuVtF2_HHLyfLM z5%BsL-GJOp^l!65_H7QAzRls%%^pkNn?1MnWT}MfL9;1HZfp9xb6ERpYjQjzJuG65 zgbT03DQvovD{Spx8>&l$LxrtFl&zhzt#@72%>rVqcir~5Q-T!HexkoYF5Z|cX9VZE zmRP5~mbj0~67}83ORkgjoK|#U?1&>&#w~i!_NTJq@NIAgr1>w`u zdo@u>QTVX~=a*A)Md1j!hVY3aEr1V^qYh#ds{ z{j>73)R9kCGz+U*s(&$xxeMY zR?!6aw;bKZ{(`I7$6HGu!HH_e7pd1@oFRukXLx2uTi0w4ci70Mglpd~$9=O+7xyh) z(Z6MC47ISv9HAO!E89{zu)v2CW2x&%wAq{^`qvTv^~-WV=(4+v*zGvJcR|#5!Mip^ zylYbirAs48??V-AXZmCg$s}}0W;yzAXUZd0S!As$Yf5vdQ<~3WQ^?^I!Oh4)vk_D% zv^BzgQ_dvZbdO@i8~;Lo4lNExPV#cuqFNqanx_6s8Jn7^;|_IL9G0vMDrbhoJt}d9 z7l*}*!{U|QeA4aiJgL>?Wagbr-KUBaG$n8F(6G9+6hSmP&h5kamWBDsv|75_`aGbi@CUpwrFn zXf=fEbhBEO*v?y&+rxTu3I7Paxv+hN-W)c&H&>_Ko7WJ%Bh|8Fo@}V*x$~(+YzXDM zhsloWFwTXjf06fspK`q5A4Xjwd|2|%6y^XsQ~J;(@%Ks3OPBcRn=JpP^pUd3Ix_Pl zHH+|*&9`LZ-;%w7Jx}}_T3>ulTBs!7hRWNfFU_I7>C1^V3Tz+=ONAe1x|93_Cx80L z!J0naJ$kU_QeX-N+TKh_DwV^wrAbpLSJ;lHN_KGcN#7?0WX41W(>u2}gPYH3PPxr# zev!Vpy(!P$%>jY-W_NZCM?&DQ$*!cc<~+}{qn?w$qn=y+9Q>=FyC_~On=NP;Etaz1 z95GAX2c?M}bW3(3Y>iK01B~;9sW}{0h?pEv#v3R@GQpX%$YmW!E=O)eAm51OadshM z@|qoLf%i}g$y0b?whjEP*dx^xkx zl;USEJ|_;1J;He|BE9#G$UNO#UYk|Y0_Byo=$uVSmS-<&Euo7j80{G;nPFy%G~T=6 zK6FYdV}WlyU!2V$n`%xoHby#^FkcT0BBCO6JtU1c*4Z^YTn~8+5AUH3nmys;>;ltw z!u61#8yVwuWgo6O&b3WWMach+$S~a)CU9V@ZQ0TM4s0bKr-JJ^J3qDmDd{rc?fg{n zv-aoaJ=6DD83+ctjpId{#ETQ$2%g}+K$Dcmijm${g#;%kW+qy zcTX&qc`b>U*K!lZ zhksMcWwO1$to54K)cG~7FX`U4Y?s57dpSGK4zllkhH(6S6V_45 zaI6atNkRCK6!{qZhg2$#%8bPfA~^cDJkm-XqsXv0RFOTL)mrJQBY7=lgjfQXOeN&2 zRPW><$Es$90Xc1|u@-U=GwR&rjmeq@FY<3Bdq+7d=D)*@fktW5l9tGk{LblJ7)6yU zCv#jxh80p>6>j*`G_Y^lSd_-;jj?GJ>CqG#qU~&Urdc$2XS4qDg&O^6^BpuTb#}=f z(K`AmU9v~D=G$Y)V<><&)U`I;MtIBIH&fYrZ_EFOKO`tkI7+3(ak6l_pTfSt~&925{C7#$7?Oi0aiTS%`ObO{$Fh-(wAnJIc`ptOX4rw2f9q~pbbr^5TgDa8bwRJueggGWT-pn8ZczMoYmPeHC&LtispXI{9(* z!SPHse<_*JK3F7;$89o5Oy^XfgHdPRN?UP+yzv#o_0^W^7ouSl`X zvNX|Z!_y;lPNZK=(whD;8j=;7a``JM!!}WuZE{;#|!yt zxR~-|qGo4uhU6;B)o4&j`ofH8mc%Intc+{KBTdS+7`LMLrzys#i=-HfysIe2jSjQQ zn=i$f9~j38UHsz`w#xXhHQ@$R5BxV0cgiojo#BOy&iEIm+|c6?h+E|9O$&E8an5vi zm35=8tjI|6)&9v8CZ#6AUPIUpDs9BW4FiY9)FWhnW6@^OkRXg*e1MFQ!XZq=@BJx#<|nbwHI zGJ5C?b05W^`-x-aqUcz2fQ~1d|JO^Y?D3XLVUz~S0(4Le&SinCLO7e$mGhEjaB{I8 zn?%ODd%V)I?D3vfh4&Az7K^_u@PYpQAW&@e)52Pu>`sweH@J7W53nMn&OZMBdMXU6 zIQ0W@FHHDA2VZrbP14Q)cWL569daw}?Dv#>^$g@hGnx|^tXU)cUn@P5l}b+yWzg2# z@C`=)X0U%I165mAM$7yXoD;~`oaPfz6OovQJ%M)Phx%EerMv(CT8Z^z!^-xjFDvo^Fov5t3r;=x2;RGgKp&VPo=kTTS_1;uBZE&lBcEoM6_ z-{L(QSR;e&n$TLAsI3j<$~yZfhFWP3WPH8rhBj`TE8GXf7tT!Yvq zbzocIye^#|NT`;xRMiQC>4n2cJfeS(gesEh`zn(6=m4oHFrlj}HkZ{crmm1ScsDZ# zQs+qD8h@QH6s0`SUmeXT^8gZ+nE@gOBpjgY37gpLd|1$~q%I5+%C#%0Ziba~C0wZ! z%R7{(F5?Xm#SZap)*8K8F2>W9_~n*MTXQ(T>CLw|M_D3@EeQ=5#g0s^P{oP_{iRi4 z-D@76#5h$P^M0>s;5hh;c4=@0TLp?-oH3Bn*`f!3+&-ks{s_ zI7<<;E}d{giugvtKpkjHLWlJ4p-{OLad~uv)o-PU>xvyA>*z{a@7<(DOlYoeHNUlL zKVE}#eWfVX{uCwkBRMHtV)RScr{hX&Mm{X4BI!QM^2$|_R5z<@h1m}CIbRklma$1@jzHwaK zRI_fb6-xmWbL~Ic^SieRVVnE9Mc@{LCdVE0@f3QPr!Mm4{CGZvsLhAqD^8w~px;qv z99Nmem4lF&JG~a6&PBF?aOl$^?~r`$O}4?N_A1*jo8gx*)ZS$qVQMe4<-zbb%ryRH zkCSS#$9Yn2VVIu$7^gwxnBmgg`G1m!U4%)V>1Zo#rprB%H%))vExO^bx#jEOhq;Hp zt9CVA<+SoE9MnE5UWZds(Dm|@POU&AT^Hmx?gew4^UzeN<1(A>WH!=5)xX()g0aq= zAinrjz&7_~RMM8^@@cZzG0k+>0ie6DkB>Ig$Ja+1ca-z4tgGL3PlKbqndX}*95a10 z;ApQLo45hXwBxv$Ox=l67HV-X^c2g4q}Wp`mBN&IH_Ok(&E9K>qK@z(lRVQz5!3W0 zeLHT_lRiuDg!J(D5he8T7i-5-9N3By9L}+Pygm-YZCjT7JT=y4f*rsE4SAB8NmhVV zRAStf+j}gsu=c7NY=ATYxjHl90{d%RVBc?FbtGVmYp>3_aZdG5*M$+BGeh%rEhXyI zVZ0D24P4w2a@~tNv+&oyxFb|8*CW=&ojDD13AHX4ubMbMO?~@xjnuaqXHVKkThr6k zS=QJ(yQOuuHDlc6vKMxmBmd&vRO#xs?R)v?7G~WZS5ZpMs3gs9P_-iFhI5@9G+5_ZuLItC?_9Y@J2$XEe|s!Q*_BS{ zuJrxsRD=EL{Pf`ZP5Lo5mo{jwC#-9taorg;fQA^>m4|{ z1dpM69HY}eVAmDLfXppi;3`K+H@H+HnWe$mvI00e zp^C{{ds7v@6sC+NWm{xD&H=hS5z8_lQOj3ztmR8y1}9%&JA(c4Nk6PL73W6 zDYTB}Quwy|qk*+*xXsmsC@m&i!f$7*d)hGFS0JJ8X`|Ea8eo&RP#IpJGQ7}P4n%Zz z^`^(jHoaYJRPj)YSt~#55Bf&%BQV>HNM0&>Uz*Z|R-bLUqz;t@gQ2PU>djA`$;6I@ z9=U9m&1JJ?;$4=ySG{{v_sbf{{?u;#9LzS|(rUEFkmR+h$gT5sBzTBQ$Z3hdGUik5 zOkvXS=!(^F#0f>@>D14NM4{|Ytw~pk!-=$IoI3vpafrCU&{RvXEBXeu3cJ6^v*F7*b|p3oSprx+tNdJ3h* z>!A=HX)GETlR2fW2(#%(k3z6GwZiQCkS>EKh2G#vp@rIIEKJ!goy6|+1JY$2pr^)n zD1E&45#uwaN|!M;qg=h^8C$i>kOXSG4E8yWcy`g~adZvNA-g!{BwbFTK3z`Am*4+) z!j%*vEdId1hN$A#9>Tn^uf_9Plu ztA;zeyRWpEYze=etsZH^wI_kAN7@*xCsDUWKJ}4$lHuBu3{NhSo}?(Hvvv-hQ-?@T zG9-1fdMBqAO4m`Cx%eG#WEQA3)-4J+>!-RIev#g!Ykpk_lE%GC?xm!C1*lPlDV=dy+V=XiuV4tv1B9l%ZmFhelgH z$Y@D}9)#fCq4@8g5$!=VFeXzPVR^Vhdk})fsXfRwyLQ}{ndyCJFCAxkxw^>Aw2NEb z*~{jgJ#M9P@WX7@PIRkCC}=V1w0DZ>T%JjG53Wd)+T_ zI3ZPgi*$a8bGuKRrpVu0x{Ka{z6=~P&0_@<{|FsO@RtTIiT_fd?ljPzU&DBjU)f`eACg`CIG0L$ixN>eSYs^S@jClKf*AKSKVJ;#c~q{{Lt*;k2LV1ta@8w- zsP&3pX>rA`w7B9|T3qo%vx`6K)Z(9x{`FnSn=ugkn?D$N=l?ALf$ zYAgcJP}b+w5RDiWy>MiakSQqnKY2soQl*xIJ~V&H*K%Oy`eH z<}60}HT--wI~c8TT=o|-9O5Vp%?ZIUC$z}&cTGBx!jH!vkLUVDPbPD)^ki0NktU~3 zwMbKuuOtqEc+6~%NM+2s>@P(Mj?&O>nHcU)x@65APNZDc#il5G-49gKWp9-%%2xR< zTkEC>ZGg1V7v-AAqGx-4UM=RG3bQzHTh|qCCw7%dpd_UebY%1j#Bugw>f1h!rI$4W z&@Ac%kcf*yof*aX_RdKN{juh8PUt$DElg;xOG3;9;hPhx{a|P;Jt(biev~vQoUe;c zgo;z^z#@v~GpsXwhIIy(BI~X*ylKwqQe-y&GvRxa2_L(y6#7{X*-;02r)<|cuswzC ziC4@ADbuykr^~Mdo327ZzY|Zq}@!XOY(rteYA4F-@BzEQ_`PK_o zX-!HwWzF;krf-kV^boSdBk}nD+kQFLfulIIQ%ZTK#=~Eka)VNq`M0vmN}~MD1srvlt0I&VRa))GL8C;KRyXY^DMoin%L#KTfuF_15T}-M3CeFzDYxeZ z(KqFxO=kHKUPK-zE&a0DhKeHmzfMYdo&OS_7-7b3pBvAU(#}gc%BM!m(UdDv+E-GR zQoI}nPF*3Ty(0C5dQYSt)zT)x6g^etR1PXJ$8aI8@EoD^_}2S=St!M^K7`?!H_dUK z-{ZfQ(u>9|6Juqsn>8if_ui1wyWzV}>G6vYt_DbZ*eqABm6RU8A6XNo^hyHqX`FZ? z4LkC13O0sil>RP_Wf^4^o90c6jZ}+5mnb%-=RK2n(zl}-z${(-nx!IL2iDJHo=*8i zBS=d9grE1Q;kPp}KFrD~Wd@fxwam6tX8(&*b4mWO2WN!*C4;lF#}3Yr?7^h#KE!lX^F`nfEl_c~9SXT9|J}YjZL&6cBiRX25Hm6LE zoHNMrU8N00%+)}#yf0f^dzk8^EDfGa+M{cVdonIJ!F#!hWHw^9XHIB}cS6(3rsTPj zSI$&$vtiAlj%q$rFP6=0KC=a(Gh0;i_FKeMx9G|xCeyXmIBqaR__877opW_6fq75QdG2NM+IxRcBLHmgB0&;W=qzn z=CX&69HGeRX{A}msG$}ooYbSIqncN@w56X+nh=hCG0#j07ladkX}!1{eOIp_JSUv^ z>ljjH%F)zVlBRqzsaAWN^p-8@KIt@er{$*CepF@3h}5_b7?Ijw)+Czjk&&bAnH6$9 zqaw18M>iUwtjea9vaS!iI9;EmI8M{r^tIi|axi?do3jI4lj9btRO`LIwX&?gHZWXI znhZ~vET>v0hYIC1Phn^UZ(W)diD%_d&xOQcdL&%r>50}gtmpaJVlGFLpa0LXlW)%P z;H7x4BADqkw<*>JPSc?MW_rTD=>3X)i5D0;{VGv;G?P1*@UIm`EqOJ{K$Bw22b6oE0GA~Lvuk}&+ zX8ITCF#w{>^sf!*-oLtQ$?;L8o?k{)dNgf@{3x2?oUfa)^PStoyUlr9yT98mPCm2Z z9GuP8LBz}sc9#!Y6k08ZXxD}=>IEQ?q=&%sbPsK#ce@;{*zPTmi3@KG573FmBDl4O z6?Q$VGlL|uvE+eq!q<5ISz>3KtrEKfvGwSVx#BIC`AxY`gt6wT!m`PM2+P*5SZsRg zDQ@J}arWbw2Nk1K#8D#&?C062dwW*?qNJ^m>_nAR=07O+eGbY4$yU5Ff2E~UWW@o^A%2!LX385f9wS^skH-j5Qog@H zKYc^i`Y_mi(d}QxT;d_Fk5|-^y?&8EAKMh zFv#_ek*^x#U2Gj9BKW5wQRV!!8>e?HSEJnbJZtp~9ue<(a#d3e$UN@LSFPpyF@(v* z6#pbqo|zOJ#WX}yIPR;aoj9ER$)ElJIwSL?GoEYF>&@3ZH-&K1Gs`|pC!Bh8=K_ik zn+vY1a)#}yt0x~8#!|{GG80yT?=-}rAzNGx2Mt1Y%+WTBQ0HjdU^wa@Z5!$}fBz@> zj1k`2Gj4e{XUrM5(O&b91F)FHJEY#)({2-C{VTrRZi#>Bs{E)Zf;c4vgc!C;xJ)WROo{yhK zji_(uZTbUh9Yb#gQ0rTIv#1T2dLzKL^;X9@6Cql!wEnA zL)7O#vJ_=6;)xuQKgm~DB6pR@R5k;=Z6K~NdJ?+Oy;Cx<)3CQ@4VNYMht|jnTaCNB z{atGbXt1(Lz(XpV1V5y*ttVIyH1CuXw>v!t?2Jf&&iuQfF=M*9*UFjgYWH}S{MZNf zOq2uR6XD0}aBhTKKQL-EZdCLGN67(zHz=L^_IGTCQy=p|vpg-}DvELzxhth4D<9a( z6Hd*+TpdB@x{D+SMeZZaYcX#kZ?|{kztQA?adiva4eCb%9-SkKIy z70`g4ISF`(p*abDh^4s$jpfh^Xds6NiJ>hk-q@TK(15i$3D9n&VRLhb2#%S+TZB3j z_``6-S)8*-bxh7#ggQ3oj@V+Ki4GqY0kJ|5U0Z}YX6G!z17mXTqh9;xu)}#YUYKEXRA1A5eaxuVHlN3Z;JtD;E6H4`D=PcDAsIVX`Petk}o)$rF?4bQcHjpn-N%X-;-x8#xVmA?C| zjpDd3H*B#~<(E8`TX}pLH%pf){ADbKvK)HHnXhA1zPpF~D%{~YFN2cinVXzm{$YXc z7;7#}Its7=C4qb~WyfH;uP5Rl_YAC(ErV4F=j7hrxrEE&yPR;} zGRAa2VY6O-w$kWezC2Q_0grS}B$MpCO>{05|8{3T${&9}9&n-(<+~+K{A;~(=p4r( z?^szbo9vTJ%N891U#-?Mucq?ITrbzn8fGUJ7kg7m>>YS}$y*n_e3Nx1xX!m<7hCsB z245qCw+e$vvjQGm z^Q$#ZCjr`PHEf-ZVB0*MIvci6$E87QiKL56;2vh6PB^XGO}a!9Z=sIh#!S>*CuU6l zX%Xu5pEuyBzW`GGVBO=6%@DKhaqq!u2S&&LnyVd__=m1`z!F_`5SO*;fUA*J2SPsL zs)KSqbkzZlkGSffoFB6408eA94g@u}>OfE$ww?n^VG}DQ(SNJ6xT@E322No(rnj_g6)Pk z2VdtueYQcl9};xZm&;nUa`gy`_Ir!=OS!s%qqNCD*}W=hdW`)@{KuN*@uHvE(p*ZX zw^ax|g1LHoA~(o$N^kR=Qg1mQqXLT)a`a6Y)LO?mRG#X2n+FI6>M4_>iFfty-NdDG z9dK#VVD2?=_#`}9%&LqI&sXpKa1VKDqesdp-jU%AfYq{LdO3YE`^lOVFGR^^th$GN zhzQ;VqiZHp`SrxiZc_W@J@|6vT9r-Zu_B054bKs|rp>0OWSO;&Gmq+{qi;jD=Loco z&&4`z^K($+?9V~54bZ7GYJsi}c`_+BaFbQYb#Jmx!C(I-t5ECSQJvNxmr(0+72wx4 zJV0hz1KisgJliqg@m9!NycHtznRfiYUfxey@2lZfNjp=Myk3fJeQGZ~rO+#Ln7ocS zEOUx_r(}*26Lh1RjS~}e6hyQHTYrM*cqbz%HYjJ2Ie;B5_`ol7} z$Qz#Hnw2+`31NA&by@5insr&-T0-vDvKOzsvA159eJ~sU2S|`j4Kg`a)-mK8%dpg_ z6w3x(7#nmllW2@IE66J^ubB(Mn>3@g=4Nn*%r6#)7SJl%@{}jLxfn1^JjYR?w&q;Y z1vzQNFF1~3ar2vWW8*97X0TQzuv?kA8GML9jdeQ-{aM)*r!|)$fpWcY9OkIoMcy4! z)&@xXBWIgRgCWBHh^R2$8K*%F9^7J;J`_i!$*qQ|wYtR=x3-}eYjqYi{(bWzc-dBe za@OiZpw{(Aw^oOUM|_s!KA`@T6O`+f7$ z232oS<5j;7-iMj&`ird9i7-|B<5{ai%wt)rBYu68UA_kqT zYjx_htkvPPt<{w`sDFzZum1{opJ>$=fsa}B5%FkMpNR2QACg`5an`H)N{g-fkm^-^ zXm-_CXKdAnWLNz|4XWOv#;g7aybr7Tf04C15!Oi6|4XdZA?C5H)e*m5)rV$VtHT*@ ztqxK>Yjw~XwpK@gZLLn7mbE&Zwzax54eH;b#_Rtayic_1i@?XM`iOY6s!zoDst?Jo z`Z()VeWk@#eMt4HJ~X@Pt24IhL$a&>%?4F(QR7vA>q)C#1U{zf5%FlMCt|$nA=#?O zSx@y!i&Z_Oda8$Jt6rV4s)uB&zPrDnxsFARSA9=-pJ=TYfsd(rL_C`6i5RbXNVe*6 z)>FOGVpR{Rp6a35s#j;M>LJ;xAKakoEo!{#IfnLRRWAY`Q}u{=G}RL^UiFY{)#I$E zdZopx9#TEkL$g({&REq$vQLDgH-c-2pM(yAAMkEwb@Jeul>7_WLrw(4=#Q@zq+ zRS&72>Y>@HS7)s1A=#=gY*6(UHD2|zp0w&k;A5&D5s#*NBF3v8lC652^;EC4Sk*(S zr+R3%>eU&mdPuhFiyBnDMU7YevL~&25%`#@N5rG4o`~_Phh(cBXFb&`EmrlA>Zu-@ zt$KCFsveT9`gIMe-lE2Y?R(+m4BA4emZCR^39ULt8LIx+Uk6No+pLkxk#LfA{xq6R=i2t=$t<~)fUS!WR z+Z+m2i|z61&|uaiv3>%huC>Ft)w$dah?%kq%Oz5T%UL%Fg68FMEK1>awLn6>Xe6GJVt%> zLzIo{cu2Di8maSE)XvrwQt8B+Xr~!sSYn229;@bZc*DJ4R;Tx4*h~F0JQw7E!v!88 zRsTj`^i8x$T)l>WQu0B0u<9UI?bTnIR*ID!0!lN^u)b~1WDH|59sjV%d5m3|^I2l) z2>;3EyW7auNn(O4^S@gx{F>I@6n`ORpdVs%YLU+Ac-aToOSaF$@ zB=I=Hh8UUtEHnd^u~@?nZ4U^j#pao z_e_wC;iyd8i9&Gf6oqi3AY%;XY$QgrN^7&MlB{SJx?$IbfTOK;^Xrr|Aq2by<5Hdfp z)>#uCj24JJIE4qLUgMRnN-pZlu?qMe8n~kA2DMWJUmfT8mbY5UUJumqEst83ac~!9 z7qpfwwtMJH@1zvSqlX2aS<#j?%X1il6|NnF1Y}-EAxtauVnTVi&i}&8z?xs z^~eF~9u7o~sP}lJI>OFRb)+*D+iyBI9nlo;h^D*LyQ^tcQ{q-N9l)hozZuZ17(+a! zxLKKOp_MgTO0D-hobqLA8*d=Bxtyo8+-GIe?yNh9Q!)5w_`7mr9Y@!sGjiSMO!63R zq~hP2zKiCKV=I{tMicu2T_dzRk)bp~Gql-AUYk{kcOs(xsI#%a{?w+24R8|v5e7J6`v?OZ zZ1w=BPJ4hGO!V(DzmDOS~Yx2=xmxU#oW%9CC_jA{Zd67=$MB;kJS=ffA z-k|5iaU*RpJxE*AIdYb^+t!@T>Mthy`ZwRoc-7X-%AU`K_qJw!_5qGwz<(fn4I@@t zGw#{yXXS78vlE_!f5LO+&*61AC7(Kw$qhU1O}Gz9=XS^~*@=*y^;B#g&rg+9Bc$4o zR3oNe)<$l2n~j<(R$Vm_?9)73N+J0I; ztMxPSTc3&JM%osxMw>0^i|HfqcaCgjgu@|8sbd_97Kch7;_RvY!MLo+Ehvr2Ee^@; z|5@2XJ%-g=yNS=orl^ic`BO!Lv6-cR{dbU@${)@ zWDK1^QN2jBd0^E~da?`dKGL`LF)OIe?fCzm+zr0x9YkeqX9gukALuOv(tI zm@-|DZB%9EF;KNLd68~%D5zUjpDZeTpRDWDq;}?d)_jg!S?Si=?UQyUDRv^oLD75V znh2+9lWNc)3=2|+a%=;~P~MG2m0L5bEPqvIpDgRRR-deyIw+Z$Bodv6%lGMZSw?l9 zGdIKin>gu-V^e65RK-DwA|L;P)a@K@!m+(c6-HT2Rpv}4Tlg!RO~Ar3j?3Be=>yhM zcnIy`tkQEKy&^LiczI(yt5R!ZB}r@DgJ-#Cn>DN6Ca2G+X^qh4dFRNpnNtEgf>Kg& z9SM>-%egL8$q$%_sSH)gd#F`p8?SO5NR|hYm~LH2<~dkPenYe!;f?YD>yorH`UDU1 z&!jJq`N)EdD;PvFSDHx4Su)F-9%&{$K1^jzE15)CpIe8#vc)c5-cXK}EiPx;jzxz zm?S1sAwrh~$r~S}PDwl7c|2-B2!`W{qiS<=g-5?7fu(%0J`C{Ju-PZVb@2SlZT3l2 z9Z(ZA{c=pM=^r`*7Pf`_vh=*@xS<*;i_- z`{6eGu6obW&2y0aoV@t-Ht#~^TL;U#2hUm75zhtB%Ke11p#`)e7#AdKGufD0O&^WF zI(4pEeUk*W2;>Jqdvg`5WAe9q@Gh$$?M<&Few=m0uIU(tPHgKYmq*__FHfDWHv2AT z&b5uei6|`+5!E&-sx6`x=pnBKLF_j&3I=oK#9D5$NMy_=)}NVh(ioJ4&Ay4r>pA`y z#-iDFu?V+4rJM<9*py=tPS{S8b8R!kv~BjqIwyO0;De#eH$hK%5;!41+BAHeBgLW; z6&vRVp?8CfmeuNKBg)li(9-n&YV!>NOVck~Hv4dIYO+j?z3o6p zYO_zximms`+kJHVJG>jElicWEtk(-T33ozXH#rd+ZH*73ldI)r@amNPlpg&1Q%6MP zdqkYxGR)^px*st|nd$gV7Yu~T-_nG|vWB%dG=T5q2UF5ODa?UML)AMpX@p&L$XVkW z%B4*exy0R9me2ZnL|PbW%k{3ua>u(^@cSM2xoO)k*V%1v1)rL{0+w3gOr zc_EE6e5s}CEls8Rac3pf`egJJ`+Wy9M=+Xl|B>`BU@b{HDs@KF-$A3YLhs3R zhEgN6jLxOVC`)Elc zK%64L`YaW{u*noH@I#bPgVz0`2AqyCcjRZ{5ji!?%3o+TGk5%}lg3Dak4d>_Ek)f+ zS)D1RgE-r|AI>=Iez*L`DRyj9i!d%7g+@_O5i=@jwk)vBPTH!|-{s-=>DkTu;nn)G z-D+OAqo9taoK)}0l(Vw9aW-Wf1r;&#(y^)W7B)4Cb;{f$bG0>?lDKW%Pn}(5`LC-d zYTXagHEuddf#JO6KPPBr48jBPr-JdN)4SS5#NAJwEEGCrzFKVh{^`r)=s`r))q`bC}kfw*mxe(H>x z^uukN^t)H5KZ*HQH|a+rwn;ynwn;yAHf+-G;X$@ZKe%d5`r)=s`rSiW zbspAvV3O{yYtm1W)#=eAoAg71ZPE|tU&EwdU9nMlchJe?GEFKaubRO!|qK$294O2-~C|&cB99zq(?hCjB7UCjD^M zGwG+aSd)H`Y?FTKY}lmV!-H&-esIN`^n+xZ^vgr1de<-Bq@NY=;I3b-Nk0kDxn;v9 z{Rp;A`l+*FlYXNS(w^mj_QkR+^e~ft!l{evamMzeeF6jT+DYSIq@AJL?raz50g9~^Ne z{gm>NO!~puh)F*}8ZqfNi;r*6q@NYgfJr|B;!XNBK$?qOotea&^drDF>4(!c>4(!c z=@)hC51{2pY2YH1kn3KAT8Y2@MJSNs#O3glm6KBu0szVqS2ddB+pkYZe1O@1=7SKUZB<-g0M{F1}mO&BLj zqC1k$TNZZar>tf+E?X|-_Ne!SSeHGa-!6-ujnHQKV))2rXMUBUqxt+|XYq7?V1_(A zIwN?7M8&U(L|E z;{CvW>&y2ChOs1Qh6Q>2;4L0M5IaU>H!nO`3@i;!<+z0S=cZlfh=#eIb}J1bx6*3F zSCck~zESCA;wwwvCcbUy7sWTG$=oLR<~BK}*Cr)rYM5!1bzy(K zr_fqS*&pa^t&Ge~>%m&-8WJXoI2=wQEi>!&kz1U{LWfygRq9}`#HMcV4{YIw8;&hW zM=^tEj)p}V{ySt;9Ll~K!@A^UwST{?8#YFo=#O&c=(V>kY2fgIRDfK{UwVwcuCaJXk{5orE`U@LXNJ(;6HQVT2RjLN0 zNvQ==CIxAnrJ-slh0`)(-LZb?LAz?yF$$WEQP5m@GU^x)-6Ls>Pj3EYbMvnczY|TL zlyZI)W^*Zz<;9YCSvE>5^~La!;2<%$G$^owW6sB4F_Mr_M1T+=guny= z6479surba7d!Kjhwb%CU+TQgB?^q~zT43lD%y&x~^jpM-Ucne` zXin4a6NFv?XrOx{pYCo1xjURg?eo10`^mwy-+F|X`5dv%p{L25Alz*CDvr}GMh8p7 zWU(Jz)z>d9hc52R3B$#a?`T8A#`D!^;Od%g!O>e zB2DWNzK%Y7u8Zi#J`~CXcLBP63+;Twx)p;Mfou8&6byk2!L#8|(q>mUK=yyOn?CXb z#u3NzD+);>1PAUqw9ODeW)s0%s6ny}2+p*TP&Cgq{kXIY$1BVv13HtXfj~u(mcd|0 zRypaFARN|;Rap8pwv&&<*4P91pb5*FI>X;O4=!LB&Up^_U2vqe<1#u5;!+_!S)lN7 zxsaAR3a90cg0$N!jFQ%4lzTQ?55`Itb2fOWS2A&&wC&?40eTE$li9RPCI~$S(8`KG z@nSq9$UWxPW0?!n4IS^6y`iI+tw*u<(%^1vAG%fSLFS@I#R(jpP;oMui^&zYb98&f zeEyt7>K|b)aCHfFie9b~T18S4aza{--eLKM)j(R4)gaF~x2>B%)0PJNtz$37Ky#qktV{`!KD$@ag zmgxYDmFfVDmFfVD1$F?2N_7BWWt-U70m@Rx{JS~;3I1<)00{Xd9RTcQI=~~af4u`h z;A3HsA8zuf^KHv%w9iS|A3EGJd z>Rd`YB$ftYiOjoLB6CtYo=)PW3i12)8FcCS4E-Ff$2sTRk0%yp+WUjChU;yt;hIi! zfa#&LX~EF!ihF4)u-DUHL-Tu4U&eneORXYEA5)|4o43L z&onOTo5|O~;Vhugiw1Hr^fKm~ND|uDdrcpNe{ao`Q;U=KzH%nm*M&QcJ8OqS=uT|R zC}xH(HD-cfKVriqr!yuwR6v@tKLVRhlOaDJ@{7q3R(RUyNFU1_eJV{6raI0^?~+tv z2z*>Fq@^hWr{yUEGIPhdo2PEOgAWGN9eseVIoHZr!&<^HLtxBTT40zVFh&kR%-l8- zA7&SfZRJ_RR)R2V07Ml-ABl}1PYu?imH7Q}E%k!6b1xwI+zZG%gf=;VD?>PN z(Y^&zfNTlgjq>8$rG;`rSm2%@Cxj$|I1~XPlX2e&cfE`D?s7ud-8E582n*zda8l@e zV?qe_)3)=}YUjBiG=F;pHa{qU4+ZW)6T%+2gO8_cOZ2(a+H)OO<%CcwF$6v?7t&H| zb6Rd~Wag@KwQSneRD3iUV>C&`gm4*QXl}-Q#RZ1uW^6q-?RsKE(=rrLn~d!ZDd6S? znS$KhyU`r{b#*H>_tv1x)ZCZtH|3zeY41brJdo}vd>5D9-KXZh?_7giVbK2^JfE6- zerO&wcV6g9YVMU4+39@RGlrWR@4KoJ1vc%3~r?E~as9pK8N=DQGb zLk`yEp_`4t3iivk>(qSLIb$@o9)T?n3gFXj+6Pke4a7Bl+<({VdDMJ)SbN2Bsl*WY zxLim}&BtlE`H&e|DHtIKf={9Ou+Xm%m1GE(L`?Sg5bLOKqZ>kg$)g+WWggv+!2b0|Hv~S$qno+P zJi39Fd2};Y>e0tjzx5H?9v2S>!k?=IGj)` zs8Un~L%XQT4eV;e`q(Oc>7u{BiL0rry=|RL20^Q~f}7pa-hoqu9ObtFaFN>u{60CL`K4xnDAf{gTH} zY)tZaij7ZRlMEi5ee3O$8?hiSLEESn;z(Sr&^8#ZeE7^AIpmxe>YRdEM1nTO*^N$* z?B>FPMntLXh~`HfjlrLzF$+-i1Z_d=;#lN(aqM!AZj3!rRW1mpyc5H*s`uo1*~sZ| zNebg_D5xkj->2Xp$FWSVCzv~KE0^V zcW;J$M0_)DIYxX(#ol<_A>KP|C^cMu)B~)iPS74yE|vS`l>6ne8;#tbrs(O|Q*lUh zDsC=LDn-HL(X4n_aAr{#Smc=>)vGG~y;uEa4g57|GuY9}Y`)+C>loS&HO4j%Ph9M& zm}fgm@j}~a8xF78! z>leI$Vhe(?><{P82A>Eamm8(v6|38Li_UfJEbq-Z8+3v0 z_DB)0Wh(EYJrKPY?IHNM7wv)7d(oZ|4)jtX*j}vDUTHVcN`nxY7zd2P3r=k!xrZ@S4bb zmVqv;Erw_wQWSFb}@2J-{Xi{M^HCD8N%gzX-$jGkUTiO}1?^ZB?Ia!ww+Y zHNVKd%#Q3WvvoX0$^kqzsyE%s+q?2QZ1vxS*8^ngh#f0WNXB_5Ubb-( zhI25zCknH0s#_pSD(|X{D&1ANH@2}MPVLD7YDo@Us7AGYKo<9iy_d{gFC3W-$peE) zGG5e7*(S+A9?${Z?`k8XNg(13T~LIAtTAf(J%aaIfTWRFQT(rU!a7m=?w^td01>+RJOh#4fL0gqR{oR6Uff-Z3%+$0{60!_QTb z_&mlc0!6VaP(cVBu2Mpm2n?!KgdERRIpvSy0$oRQL7b7Nhn%7F7CPbtgW1?0O2!M) ze-Y1CDJMWcU#+)|M_q5);@%ls+|SF+lIQJLDSp+S4O59;mF-wVK9n_%aWEH%j|<)e zzlF9b_y?2;@gE}k@j2bdR9`J8h-KykeM|SGd>gbBmOb4p`#4UtNY_SInopZ%=T|y| z$5lEPsIN9t>Yr&}K=3 zw9cm;MYLO{hzo!|ISy9^a4zo$Q?mg1Hu^U1Cf9C9&!E$1NZ@)LB%-a4qeenp%BAj$ zLY}wZlNS0Oy=->E%O+LKv@&vm$mT}iZp;vR;tt_fM_dY=<`p?Go;VAQ=70D|xPzd@Y;`2)ixQAy5>XjUpkCosf+~QMBwTRAXe& zQL>)y0&Gn(g3Iu-myHKr#X;d@9GF}dJK?#ET}^P!dwSA_{GMS2v_6R0harqgJQLoZ z_q{{F;~@FQxMC6cF-80ahqU=I7sy|6Ar=T;dVrWlATT-Rj>p_Z3z{pu2&2@f=c3r1 z^f-gLMQV!hWT8~}LgGU{UPpVF*prM?&#HqA;{?WENStgKC!{P+CNVGa6W?@N7ihGDb=L5kHZO4(`DJz` zUaU^hi`946Le=c9b*~mhx2F7*0_wKZlXW5SWZlBLupNbU7o;J!AZ=$F@yxEbs2P>xu14kQ-XoMa*v)PZW#5bZx0Wa$P2 ziJ4G0Yc`#7m2IUvuxR>&+Wtj6MVQn=PJn=E*6q@`Z4cT*#%)hfPrTZuX+0flrJY&p z$i<8~P0Ovhs3z!(YM!DfE1zb)AdTAv`!(8$e$Cz!#`U&pPD~X6WLm8?G~Zr>*5tUX z7!YK|AaDll#3X7c4p2*RU`QLPmD_lXpv2Rx_vN8#_h}hhCoE7SrNw2G0x7Q5yEb}2 z@7mM|h)Z1vNL>g>T?j~B2uNMUQr8Mpwb8BDI@U^G%UTyM-Fj8q?7DQfg0U1~=_YDYk7M?h-NvT#Y)Iu1w+dLZ~X zSN3zoEk@q8^^nN5MJy1p|5UCUa zsT2XJ6oC_s?>2_1z1x@yh`7{+fYfzB>e>@_m9{-|VOK=`7|nWrjLygWT+5HXfM*%z z*%xAQ*bTiR?&pdHBK0C5^&%kkB5=29K{MzrXqJ<~iAOgd*BtS2Y%xHW>gk0C^}8Z! zOAJfi60?Vn4cdc;F3(a+shsOADgsg^0#YRcvOW=*khv@q6}>EztP|o=7fo_m*U?zk zbu{)24hYfC#FDOQYU$zuk;Owm>Ow&3LO|+5pjXDY4D_{e8M8B4imYD{q|#|p>BWS5 z)oA(v{TCCCR-?%df(xrGqsQyADp%<2AXU4PI2fNam~=C765dscE!w22N0JQ#cQf%E z9_)BLoU1l0ndU|i@wj|bY8**sd4Y3pHcR-0_yqIwkPB=ax@@OHID^|I^pWC)_n z;bOv#?l`%@q6S>*MGaOo!1H}YgEI{|ew80b##8pc$Hf`T&DfG@v{7!xsOD(YQO!p; zH%gbCIRWi!?pvdqQ=C%{03Wg>t7LTZpPGBiWDf5E?qizPYDgPjWJnuhrZK*)4;$as zJlVmTYE0WwQTo(1biz@$poez(>FA+-5WOS~a`ZJ$^XOY~G%bc6U2zn))ob5|pZdM= z{Rk57skqV-T@S%R>v+87OcUC8JN78x3UWt3C&&9a@h zqpcVDAqF{?@-hh&WD9yRcXc^fm}^TAadEK7j&fqr2;Cq^L#8LKFX>s~K5u-wk4{df zWKti;`Fha+?Nm}8*J^7S{~NO=~(;Cmz~z+5o%N#{VEeMxPE6xl#qXNSEF^9A;Gk)YrMS)YHfRybC|p!ell|_Y$#cwR-0iz5g7AQ)+-#? z@y77qQ{dkv@TV}e!B1f&$mj@x92Pg>Kyi~k8K~$!8FO1=8acNmWeaqfEd+MFvFA-j z_Pja#Z7>dh`|PJ2Kl|y=pCSJ9XO!&`-faJ`YWWs(`qG*Muu=HvoS=;gn=KpV3cVIz zX>_^?p{JXyZHnmHrrl_o*R5H9yt*fA{hJML26R-j!5KgYXH3W--U%5?=z`@X8Ou4k zA!ADhOwg8$ewjq=msyDCu2z`YwK<9C+PqgMM0<7G+=-~0J00tUetxXe&o5K-=a(0} zf@<6GM)BJe-Spnx_wd(f^#A+$9oG4NXS^rFzP`KZJq{Qp&>sA1()+>RD53V~PUf!UL=aXX7>u3C$H| zHy%Z=ccap?*|U_5Zi>Fuzu9n(4sSM!qNAD}=IG&Ow=-aEZf6vsU%Is-bVyLUA~zK6 z)?!afQ1`U_wlzh+ZN0fQq7PedX6MwsHY?jA>totae43~epI-DddhM8(x}g&zZKp}p zi6?c+dWE8SuiSeDqvYNzQ{JNJu+AgiCFAk#n)mSM!LL@DIzk$Cgq832_>I51#a94< z_V~@(fQ}&1wI7rObOec(e7G{8BS>`RM-Kx!f`#=4;RGFhX+fH#U7+x*^@D z$p5o7Xs#=x2Dzj@s}PuTHUg#FUJm!tZ71g3|F4ual@^yLJ-GsbS>iSP$?r!~?eDHteW8Zac-%Q?^s6Y@8{t-=M2B zZs=X%rnYNc9lgj2+{-b7m(7iUaKJ2koCwGdV{_~`bomAW<#TAs7K{i7XG3}#jv`sd zO$lfOMEY1qIP&=-0LF8mB2CM2j&M@73_~gS)Rc*|Red5|CVnh&PR9V|v+ zZET7*O5CUDeQ_9_Aw?Sz_5e+lqCJS{RSB;Hy((?MikK8_cJ#bxMCV0k;qyxhXZ1<5 z7)J60Wt@XUD=mW$a2!65;UIlHLiR?@!~5DeOdpYp%_tjkJJEWE7gqv-!#f1eofB@# zM1pp+;y@1)4aE5yh;o`kAw-JQE_r%kg3Hj6;8pahvM%H>P8@%1q>J0fekZhmTo45n zyU-^(mT&?mx<4WZJLrsGJROkT@`KYW;eckDwds|v()-d)IQhmZqp2v9 zsZM3HPp6=)xp~p|ql3Rnnf60gmNIP>e#UAOV`xco3b%3~iF0!kDSUlE5mV8N_~7=* zD!TJzwF^3Zn%2d(m%gj)wU6O0H^#~DfJ0oxFeNznz?Dzef#g@%gGx@*_Jp3JqchJ{ zTm@%qnzkyuJC&w;b@qIa=_sE9^+k#iw7 zL;zms%136?ankfU`o6v{xVwk(?w(a1bn%X3wN;*x=wKph9j6D(&ykcN+Vy}8trSL!oWnwGbT>d#Y&pDIl!N!l z81}IHkdgWX9YvU+FEomMg#R9KouG3&Pq^r4`E+eV$U#~n5Pmf*wnYMl4!S&DZ=1eQh|q4%aE5$CZ=2J!QemuWHF z$dee$Ae@BL1%ig6!HK}S4n%aPPGN-UjtL`}g~V{5XGNm#$lmejev@CeE9FO>jH&>o z)8^7RpusSf^#^|)08w5lATK61Ma)Oz^Ah1#QQlVGHbXS&=z^Y5zZzmBlbV+I}NulH2)X(6;m zY!K*U8$=O0q+Kggvn@0ZLAh@oNi&L(HkxxLXtQ*jfzwf&r+<&$hlee5Od^9k$+iOq z85UrNzL!|`>bqe!Y2btBvaK(zo9~MuW9YtYJ3|)iOwfKD7Q{UHLED3nZhKIFo+@em zNtMjRejO*n%bd=}=`qOZJjYoKFHJk^?CK&P;8KiYK4xlDBR?|{4G%R=yY3JEQp4Yn2EUk-`mRY;C!L|`L_{K)qdXkAWI9Fmh35@(o>m}L% zbIC@J)nX}Twsk&L_I&GYBv03F+mIPFJrt}78qN3rZGR8C`wjBLW{IH5wMt zu8kIx1cvV2r$Ao{2@$c3fzcofOBFKg+S>E-gW;IuD~)yAq5@PN`Ls1NDY`=Q>; zxSd8WxtHm9%g|JwMom?Bsjxx2RGJy3V}8EJ4?q`iTBzfl5vi%ShH z_vk@-&(;O}cydY}tn6DsZLz}Ah1?oc#gfobOZymQ|M&qttd6p9tHAn?2WS>w;1tVQ73oy0Bv4@Z92t;_SjvytJ(-C$( zM%g7#Ic1lG$16K{A60fH1(Y3#x9oe7L7pmXpuMgeoLh}cake`5z+0jS(5G2<<5}e% zt8H=Z!MmOtt#ZVh>M9-Pb=5u&eJoNN=h#HOdy}&Ovyn)xzR~@m#wfS)q=wLcKAO!WM6>n5JdL+Ft0h<2R31$L0l%VK3wuT6_8`)}CHLf5Xj| zP8?19DvqXIiLdf@ZDoZ?v~y@uNMAT+>{{Q@g*Zh*TNp+cjA~uNPlqFRI{Xkm!`rnH zv3s$T1q$L$#REPSKc@;s=Tuo=1?5{`8%SjuahUoCLp7ki& zv)=f6h>owfo}=sQ9ir%=dMmKn%C4=bzotH-YwFKKKeTJ}p4j>XqFbLR=4kN~*$oiQ zZg2@J3~(oFgBujR(Vz$`3{c*NeH$U#x6%AY6rJB_GetKyn%9^`HD1yf(It)NrE@fW zM>?WA(rqbWz54rzwykY;)KNQb&=wwt26n=Qq+ zWZa0Fu_^=6RT+!$&CaeZ%G{kv)Xdu)y`4FzIiiD_-@+$6yLPL22}MhqU&s1#yLP?B zpq4~!xu_+lZMmJI+gtw7ilRTXTGk5DWv%A7rs(|E+glU0^>vP3Z{4pAqW#)jYeUp) zZSGL?PMhKKOWWUX zPtp7Bk3Rz&cKn&8&r$SXhnyGaZ_Wz`Uj%&c#gU!BJi61UR|(zp#x;CGM51>lbvBJ1 zd6oudB|$U~p7W%w?fj^VZhuC8=#N#sM?mH4o7Pg(-nGiDp@ zyVx7I4hIV$qw)O{fc8uFFk_Ap^M4Zh)3aN91T$1w;Iolq^8_B7>ITU?FM#nryA zjx@`YXwao=t7`R30kvn!#s+v|Y;3R)9XDND*su>R%I(wmHhL=Fr@SjpmZS5fYs;JF z&?n)Xj0fm#>Dq&goy`&5*?c)V5U4E%v_f=1tGnni>Dt{^TiYPIwapTA0+i>;Lv0Z~ z)b?Ckl=fWPtfx@ZSx?<>k4*ID)=lTuMRathRroNBEWWad=0Tg@=<+5-yS#b-9i*Yg zMHKf72mf!|Le|+ujQc;@l{kCz#ZBy5GlJtWUFG0%^(Z}*j#`${R!XcRN98S7C(>kL zqDC0Gvw`)n^nn9M>tor2Z(#7r?7{U_^g<0%Z|ijIEzqXhh@F;tGKN?3&Uhs!Y^TI_ zS@+Q^`9A9yy!}JOn4l&6P7d}xLD+WjHnv?5`#8zICuj+s6|_Vrj26X$ZKVHF}Zt+9V;;pLoQaj4!8^v z*IYyB5ab~hm|d3pnu||FKET)@DPkG+5kti4;B0(qfQamn3HW@(8drqiFm&ubbh8Lq zohw3c3L6d!4<#&1ipX~NcSA&f_dZO#AYxzWRUF#HB5p)v(}kGXl@4J^AwFTzbCm;& z@l@o%Psx{(VF4~BAFoMqPBk-f0iD*dAd*rQT8vZ($W#dYRPz#Td%09|Q!V1)R0Apx zrwgTrS7u$_RM=OrxY};gWzlvgT}Z;nyO4AkM~Bcp161qs=pSjp`;XC-YJ@ix0#X+O zJ8PVyYiiHcIF8lSBV?+*ai>uZd^9{AcQFp{f*0c^V43z@nf<+S-@|^TY2U|Bj0bIE z`~;Y$G}g8^ZY4;`+RFGt@kSNhjK9jeTalNW@i~|gGvn%n^|UE#eZpxNJM5FEnFf3| zV49p*$Y*+R5Hk$Pej3%gcErsT8;J;C87xsf`yK4W4Nk*FX zBh5LmB{n4&vkIBNm9^K=tYls7GvG+p&R{xXh#6aF47PZ&n6Y)1)}=WyBwnafOcRsh zI)gD2!S4RL-(e=gl+AVXvE9oEo~mc?4^JCKbCXeN%P|>=)RtpX;>~8gTTghiS#MYa zgMUr^4KzL3Q2#8y3!KHg#NeOOU@2Avv-~Ly_G39G2X8dEOEZ+a4W?j95~)qW)WqOF z*Qg}j;6K-BR1<@Lc9S(&4a7-jH#yeKK(91=$g9Fpz$?wL99+s?m9dVd9qTeKVxAGH zUBrCDkUgjQik60yIn58ZH26!JcWD9sE-hwYsu8Kpz?8$_FKT(OwZUK1a%3BWe_5+l zH2GN7st~h{NUadF4ugMYo26|H{+Vqqwl(iN6Rqr=~Q{$K}0 zIqit&jy-1>*<;ULd>+#ehAB)#-iVw+G7jcH@8`*X{uKDjm0IpRhXq`GVf0HzwvWAd zvZK+-Pj(#L$*UUSm)P2jera?kgY{&`!!H@-CRU@KdcIz-F;0-t6+Wp?}X?tFZKw(cN#~f5$79!UhKi z!SQ_sO{t3ao~rn)^)^0h-KDqLyUwk2Ecw=u{jkbd^144{JDK8P6*tgZ%7*am;qt|7 zdw2-}CE@ET!z!PQSw`Dha5xfHDge$(=uf9>^shdmI>RHXV}E96?9aT3msGG_X*4;V z1C!I|rGqdpeG#pkTa>;S3td4U()46A4xDUuqZtS{nsv{hIA?m0x`!5$%%sn8rhMar z!`t}y9guzI_c3n7m8Xn!#r46|vZ#SVd^A_T3gYnokTrOYK>eD~Vb~JS*jRbo=l1Xu z5qQ9#i0F>p0=P7=QXZ|H&WpasivUi>%#9^@ZtOWa_aQ6cAg!T3m~a7!gm$~(=tg*G zjBYd@scEYmGSRO=HX?~b7G(dAI01F8ID(|F#JxW)glw^ zQ|SJXDfZdME}q%;wM<`2(lNB9baHVnLq6C)ic_#~EoV?Ry_jVO;Tz$*_(ljf>^st7 z+zAfj(d2j??ZN~MOI+RgbfihX8@A$IZM%B`mfs}f^6;B<;@iWDxe*l2jaW|0aF<7H z;^?M`Z4s#HZ4py3qLQ_#m3q)xiyo2la2#B+Hm~yZ7+D9?W0t`&lB_L@>4L6@GX)lS zopO|0_K6OK4<-XyI)k^t3}mJU+$u8Qzf={)$ z73^QCCKeHpmXXD}seTP)JXW0H%iMT!(qnRi0x#D0lcQLI^XG7)``!&bSvx5J6i^4fHA+s0jO85ihE|fp+EGjGl(g?TAyA zaDeKB1NZBV#}-?V^6M|aAT@-ak?qgIyM$iDG82^HTJ%jUFfxQ8E`=c=g&`n?As~g( z7f9s3bSo~vx)-$C&1iG08LB{|4Wl=sr}O?!M!S0^;=MnF!xO_w_kmoLoU8>D&8r+x zYy%6(J!8IpG9BGg_J@(N+i7p-_Sg}qs3myUNZ3e*cw@qD?6kz1r=dyHYM^3Qq;A2} zkKP2KP7()UOI+0r)sVO(c@fQ!7uC+HL%lt#&dNH7uH@dAY$OGDk9zm(kr84E`=Jiz zZGXbLL`YbdNa_$@k=n!0GZR>`&}Js?qh($D5)aAviqsj%3kWmPcF;KnJJR-W+>pEg zTv+Y3fKqidQX#$~bq*d~$=V!B)R7Y*YNT0)G_at{D9uYo8pKzmE{0@0Mix_|mkdqx zC^u?BgV%a2mykm~oU3w0>b^935HN26dF@xEo=Bq^lrQxNUuuLHFGws&2Is!CA@%Vm zzy8>UhKTW1&s3%SpQ+k|Us51rT8*J_j&icaHM7WNla-PMf4z~x#Wl^%!fZWiPpD0A zL`Yox#C>>o@Y%-uNEk*Z+6)uD;QdO_dZ~BF0kA#jEN$4z!?y@@f&%9p7k_6$n$foH zcpM~fdKq^6!t^`^%K%3n9AA<}h9wJyY0U42W1K!pV|G{;J7NBD7rCTn9b9b+ZymhZQj~B*C0sIB;ppCv5Xa{Y%W{Sni1&BokXtUtu?YeZ-{jin!c20TYc6Juh|dk#Og3k82nnPw4#-i*jr1KL+e10^ z0`!64Hnj5BImz>1L3>fQCeYPnH+`SmZ8?oELYoxrv~@5&%yv1t!!RP=-Px1ogFRh1 zrh(#XT^r%Vz*i(B=kx9^zypJ-xS*}21rlqmdmsn#J=Vqa(CcrX1>Xqbv-D+D(q)c~ zTy;`_yw??N7p6@Q8pInT?bq=T3e&FZ-5eMh-5ht(Y+;y9BNy-jLOG%`aTN@LDjQvR zy1j(%iu~MAchF;dhep>?Cgb@`kK4|>PFp7qE8-9eUix6ebTCD3(sVS@5c^jY+oT=Q>>Pa=u_IV!VqKB=oI+Nfzhxv%m;HKs3=39=4}j8OTH0O5PiuTV8!v0tat z@G_fb799Oi5v9oE+&Q3X;od~bsr*jG>BxcnYbPu zYn;&5J9B8Sat@~)CyAqiFNdgK#b}p9wz@&v>h6jI**MwB3RmEhmO;jg@bel8u*ukqLFfgbq~E zj|QrDINHO;j5Jk+ywhxFOEW3rCRFh;pJ(XX{22?*HJ~oVgi-W?0_Gk(-r!v?`!!;} zW-0NqgJ9zE1|NdGlJ|hnN*O^ICttZS1~U4oHY34WLPb<~#T*pVrR5+!Vw4t9MRW-5b9wW$>L1Gp`b$&=m>e~rr@X$?UvYuMT3e!@St`J zuOb1#3B*vq32)_Y!6iVV1hcOE?*#T@l}-zbnENJWJ?V_*N8g z!JD$Q$V*;AX^~g_B2B>?evx;OlCQOHYV_WFUQzvNZD@ZnPZ)#}5NcqY)L2E+sZ}CB zknplrV?CuDL=at-*qN|6BSE_zd>B~y}L?uO0t0|VG=1!+mQ7lb_ zrMjYM^ryFoQWUF-PzC}vO+4+fRChX?I-6M)B`8_3RF4T!6nlgMJV~N@s`xBPMxOR$ zM74;j519@tI2u5N(@*u%TtripV4o21S1@TpG=wz;D~ekcjhvPwZw^B1l44}GVlcAu zw1;xgA}S+_GUZ`;)n%r_{Pc9l3-^#1UqK>*A%+-@IHzfjiOeUT>grP;qr4*KN#x=z4GGx^(6TeCEgDam!c#D0==lMs!+vw zvz~}*OQP&nMeewHyyB~I#U&|9^}33pBtejoQz^NIAMk2VPF1`-UZ^HFhO9+YT&)aHFqL{(tYWDE!{*#SEJF;)YKQj+RT?4x)mjZQ&Ody z%A5&MjtvvooI&amCa?vxB$1YuTn)0vLu{+k5)`Gi$6#$^V#V-$lIw-rzb*2X6gWKE zsUp^69!pP2o^&S-)As%ZRG6oY{^NYk`Fx~otym1%XS}et0iX33#S1;>&#)JI-UnF& z<#q5Ap7sQiUf^bmtdATh%8S0-aaDH=%m$6UmjagxI;Ok)Tr;5<%inf-Ke~a>)amv@P zt%{oHwd;!Vn+A#+>CKa(e1NEl`eCf7=Xs^->&`c$qS)m0#YVKfw_ zoA8N5uQNn;Cl)sQB(sN~#c43~6ur6%?gYJ{gP5}YOt68RvEIZ4If~N9s}d>{rLS-z z+x>)*RmS>*!&`;{B2_8flUhXaLuw$jlp-NZOd13UMn~eB7%bY0Z#>laIYL7gKaDaT z+vp)fpdrwlD#}oSiA;4lkr^i3T&Uq9iT{2pLiq0pA@Gn?l#!we;*BBcJ5J?vHb;1r zXw6*TGdGocv9Uf!@cHUhQJU|W^!(5E~F^4gzU6rt7oHD0ww2q5yK!U z${Zg;y1C-#qL7L*&!@~sn2+4k>`qY@fGC^o*Pg#c(a>BNfHbpymh=?RAB;AXGrmRO zX=Z)OgUle!Lb({genfuW!nN8bzsHI{X#oK_WtOoOST3^9r+$`<4+CYY*xtIUzlRBYpt_=ov+&LNv#F6j=@ zUXcT6r=P+(-&HynR+)?4{xb6r+=IBk2KFK+-rD-fOJTl!pimC?a}{unD9Qmuh}~30 z2Yq^}8+nQ7e1Ewl6ssca2r5FUg8#-p)f*VEc|-J9{V6EOuI>#A($qacK|;k}}Q2y!YxE)f*0Dt6+luL_&s&>R(x8hyNNnJU_e zuc1LWUfqH}&WQv)C4^%*qAsE+`gYqwRkRZCLxPuWhi$$pS_HD~vhB8s7;)AwEtr(< zv5AZNLEAc2yd~7BD2t)#XIjbqe4vP%HmnWLG-pV62jM$v8?$o78p0(E)6@l)Ah!|} zDuODiK^_ZUrkX-wlxFD_67fw)B_$+MNGM*j{4=ETHzCnVNQ?-HRYT$|id(a&k@`3_ z^f{!d7TPZi^T^OMFbywO?AQ~KeqI%xo)MT4>C@GUZ!mO06=84A2By0$O1Sl-NZn?M z_zA72+bv2ZYb5@Jy>*Y`4vP}@UM)1I?nLN=k0|6q4w35JNd1@^_BK8!DEbLi344b_ zKdbhz&Q*x*r0P~Ye}_BJd~dogB*H4W#~$_lR;6KVhA} zCGa+y)+Zqz}C$yCLf%GhpcLtAApkN_4;e`tL3Is7B!!NoDiY z#{=quK1q$fn4|yEG8UMuM;F&nbWx7}S2M~L5`8I0|JsbQ_UOww`ajL+WKs}aoTGO& zqtx6=^p&Cd5KBkRt4;BI5vM5E^d)Na^`ZK3%kP*XbNDAvhU-h!m@pBnk2EKW2?z4M znK>pxjMm3lX7~l$&%~q82t7}Yi2`k+WrIodInc)H%hZ@?FLOsA}gP25-rY{RXs)`xiytK3*IPl#Ookfko3gR*dPRCxAJ!o*ykrN%S>{jlW)rqggW z=miLVsn1kn8j87kL7DV1jQ}4llT2@nr>=h7+`G8f>gj}EFyq`8^(KU0G~--hdQ-wL znQ`vXdNYwB^s8oE%FiVHereo4bQQfhaRh0m@kBY0rPW&y5zC!`7=uk_uO;ES88Sinci%~q8*-!dWwN5G3~{Cy^iK@2qoreAgP+a z>6Dmf#6rDp0MD~P(gJv%6G?hAa}KzMVx9-w+zhkfi0J^hwHYREQ@zE!0EXwx4E}11 zc@ebdOVgB?j(|IuVSlB?yad{>%rx1qoy5yR|BV^vG_rADA>v=lC7N=oze;R>E5qi` zul^cw{JmTbMSq=$UzZ{J^RB-^9RJY#M$$!A(ItEAn?(Gk4AGSQE#k;2!yzjGYb%95 zyj<;y-kFFaN~cuxcM1QlG|stF^!LQCgg&}liSkjR{|9kQeKd!;a^EN3x#jbkYWUa0 zHt*4FivAnom|s4Jsj@yGwuNRku5130z2ZaSSY1AcDM!C0wzZFDQ}mCB9`pE#~k3i07q{(T z81rW^+$onqiTMh&yJi{<1|!{H#Adz3OfxC{D`-JhQ&p8#`ZqA>)316s71W>T6Z_UdtFnn`IF(2~ux(n`C6p;oyJ zN=!G+mqCf?3t9&=&7`!SNYy)9=|#*KSEN*l=@0k=Gwd5p(!RyOi>810Xa0_{PxoX@x@uScmn3>lTB5Z!k_90ww;S zI3)B=CdiO|SR4`hs|L=4JHCLRw@i@h=>#-Z{8_@kG~=@vFA|q9M>KGHe7Yolneea8 zxRg^Yt_Z!S30LB;5;VXB87i+4KFo}>=(y|RhR{daNSW-=JjCK|68v2$SQa$ymbi`K zS3d2IxGVH2CYo>dpv2$9;hXwwnFS@jL_83Bu8|>XF(u)lP*i=1O^%=hp{lCB!iZHN zmzkzNR1-DTq8PCVTcQyLs_j)l4*=J1eLpQoSdF@Aw$}v(nWEIFSKs!b2xO9KYdq1w_L2CE zIQfTpq>P4*Y=0=9(m2WXHxq^RP+pZ9=}l~1#5eF`x#&mnQ0AK2o)$HlW!Sn2E)NrG zWHz_;kc={6i73ugebUnK6$1MGKwKB1eMyZuY zzbSwJ+A(kdLc*b7Y$+-K_}VdKGRJKk|K~T3Z!5w}=A~zS;}}(w z^LOj+m=x!a*XhyIF-@j*RU-zJ^Q%Zl0_Ue~eQL>16t0p_l_x%n{c${YA}=wsa!OoT4l}8I*w3!D1DwozC64jqcRVF`NHuZR4;agLm}s(JsRP>+j-0Et8SeACaS|}6C!NDM-*DCDyh$b{e9=Xuz~Lp zvQD)}4RX5SWB(J?9Ks$W?D{(a(SviG5uz7@l0%|ki}JE{0L?|RC^7l_Nsxo7(T6!pqQ4DxK5OQP9x>9{AprPpl(S<1@cn4#%c2&(5DAAA z`bW4g$2wIJJ#M`7H8Ul8!bInr0l=im&UXTUDN~)l5|n#GSoE|s=dS~R=`)-k1^_c> zIX^Z&Hn9Ha*}2Zo#A;uLWM!ldfzUrYA4boa>-?e&HG1BB=ig1J61`xdvr7Q*!y;!d zLG@+iEPe43XJ2pia($;S&2tV3M3(i$^v`GlYBVK!c_Zf(@nL1J7-{(_xy+`A4Tn<` z(JNLu=L+&wOMOh1JkhICor~F88zkaVqF1Ln*O*bCP?w~yNp)^~G~FzJZK`v-nNxP2 zb*aw1X4EfV(tk{K9(pw0$ol&F&J*V1Q`QX9hWgHPW)ckygS4@}v)D``h2{)zs_(pA zE?tSv-|Q5sslH7Lw`_LmW|B$a*3C}0nN(Wgw$0ASa_LI+_8rbDW|B$a&K=I0W|B$a zt{u)gW>RT|yLUJnmP=Qn_w02xH@^ySE7GD=^UlX*GV!d#sE5X(mB?QzRtt$^hxJLGfIYCi9U1IIn|6(mX+wj zv(A}jR7yB^);Y(FvIM2cm?l@7T0O$C2Nu zT=bY$GO;pCxIQ*BYJ~i;45Jm_sa;=4n6lt%1WiitVf^aCm5}Mc2M5=m{DLGs(+90VGAoD>;reH3?&fZh>&o&M(~uD=DhgLGsvM*A^=`WcbG^6-r1|oF5j;Y0HQw{k zgW${H(ZWNu`f~91!k&+SE`q-kN{dROMP<>_x<-f!J$U-PM6_Be@xjU6Cz}Z7=#p#dz1+evA!SjgNXZC zoD?C;OeDp=2y7Qc$X;PzjnDZieH5iS146nBNaiD15})oD*PlRnCdJ@6{p)p zR>9lP-_(}w^TrE_{4W2LUGr2 z8B7rg?L%a+j!16rmcdk!);?4Q>x%TJE2{3k0`FIXv^(mMqD+q(rn(1`GQo)J35LVf z2-W?qgj+CDNsUz9qn<_BV5D5RLLf=Wj8ZGB?y*6MKAIarS7(r1pW{af-iRqcC}eqduv+_xWKZ zv#r`rbszO32IEs|d)0l$BzwNEqMmtLb)Q#d%~SY-47*lR4L5&A&2eA+5kWKh?6Yc5 zcaeb*QOSHxeO`4JQ;t=KY?}`13#$8y8F^9dsJgG3kmp`fJE`s)h9EXm&%La^qPlMz z5Z8e3N6CCueNA;gG)d53SKpw{V}{;T-%>H{HbKs})pu04Cd`VQoz-_$H#sf z`JVbK)$Q z3+`LUiixRIx9sp+^&{0?$;)Xqar%2>hmY0YsqQE_M^oK4Kay5qehhne)H`X|+$=p{M*Bo_%% zI{aDvN_AKFs&<*^{+`(3FX~@acam2~u!)IWx+5_zol&fr?&TO;YtH%pn}(fGc_pHCff0ae4#7 zrTJksCw$W&1kLEPN7SC-TMUGV%1cPN(*TAO z(5V0kcbO70nt4<`riLFR*vQHRV$M8HaDfR{7(PMp&n7sM;hzaUZGyQxnI{Q8V}chl z_bGzUn&3Q!PZL~df>$$qhTwB1cmu;{2|jOvw=!Hv@C6gRo8fZ=Uo^o77(P#MkqJJ^ z@CAY|nc!0lUnKal2|mwo5y8bKxR~Kf1Ya@1HyOT6@KqChpW$NliW+`XntTmQ|CG$D z>NPd|mZPS(VT{L9_|nYlM7e7c;h+Ta(H_1SOWiRmOwf|+R2d5?&p=+pkPnrkZe3;T8RX`cMrI z6Q-Kb6^pQhhnx9L>Qsxx5*{IqmmD}IqGqvL!XwQoWvOkJAWL|Z30JT{@po!?W#i47 zMyaCf7KbG~MvSfHYZPN%5}t>}i!MuetVx24*c3gO@HjJG0Gy{biZPi9UxrJmG$F!& zYF|gA`DJ)Dfej~Gcn$b44$lBL)r^ZM%Byv?6C%8};dnU#A~u|8;dQ*6MTESLJGH`7 z#WjQt0Svt}y&mKO7a+FJa0kqB=M@Kl@Y2c%kJEv?opp?nBaw&%ehzmNfnd47zn_< zLOcEge}!WwYTI~l{!{f#_zZq6P!lXnc17*Ehe}j!+ifQ!@J#yxj!vrq|lc0R-PI3s|ZGu}cJe1%)CiqE)hZDTl1V7F22!eky!5tVLN$^n< z%zY>GJAzM`UxPbt5Z}@k)PQ`TuSCtf-jrkU4R2@zGpo3&}*`zDP;fM!n5>6 zY5zTUlo#u3l-zUI-Z544lnBQidJYhzJoAL+c_0DoY1BLq4dO#K{SCAnk0P8iDYKl0 z;a3~tvEi{8kBv}J@vq(6^)T+*TUxp=h|ma35~_thXo$7_<@*p?gMobr#3_9U3`rjX z2c-{zgVKkJkPpERE17jH zd_pzcysia4gwGLFWd$?(Y?_6A2+T)BC9|G| zd_ad?&L$Sahu~M_Y-%xl2#nDTQ*k!4{7U)|0<|m8XIT6`1Yburd_hO0Q#!P=1o{w6 zq}G-|AA*l$8aEx9!=Z6ljE zR~&{Q|0r)&w4~Vb%b*@hs%;xj>|J$86#wx0fw#geX|^45-36h_Tj7@awp}8SP3nFt z!qULDM?66i_{SuslBJRDQ2C@tl;M<#M0$HJ&I__2F8WbCO(46eZMAqS+LB?r zD7auuc`L@!+;&N_5~{ovYiVgKmL>HIcstJ0+IE%MybCba`W9fU5lXvvUPQ$?DyC9JcB6xil%yg50=2;f_F76|!GKY)NXS-O~cfou_^!hFs zP^SUt)D;PLnG!OZ+0BA?>4O9dDX#)CXLcvJzy#-#(99kL|7?PdDHy@0O)!@yvlqc< zOtAD_WD|VW1WVsVZ-NU=u=HK@A^4mL-oR6tz675)!P0lpkKhX?csFzRC-|ZXmcEMt z1Q(fL>AM(6@Ff#0eHViWzHEY}?_w~)#U{9zRpt7;5qRE)uu} zhFRb%xV52)w_%LOB77IaiE`H@B8d{D@-T+);#(rC!bDF2-SAzEAfmNgqU$ttDcG|G z4!fCypH=#IggZ;)Mxs#`_Fa^(^LrwOnp65RWF#MLVc&%*Ir}cC@QOah@{oKNrkc>l zO5cTv-zQPQhBA}yg8RRTI9~cLOetllCrICgA6KyX%;dWuIf_0>`YzsT=4+H-IUj=W zVzTsI_$9cAO~FPr_Fb6pk-&|4teiysr@o7tm}j~uwc)#HX7*jwrAesQcfp*^2zfn& zeHX0|hR=rtFzoeRd}A5mz7#N9_4_XVLY6@KE?U5VvG0P6VN>#5{KjJPUF_y6`M_fG zT}bFdi^+Gvkn^_|!*_9%3L@#mY*Cp)tc zT~J=WWN(~Z^ilZi!YnA|*#%`IW%^z*&Mr*PbN`@-vkMlH|5EP0D5A3q7Tso1KSi8f zm{ytkE5_M{nVD35ZbiI=wpZq6tF6B65}NYtqCeGzA*<;l%rg;mALF6}+jKk}ac!xzS zE}Zp9yvHII7tZ=5{>>s5XBSZ<-e(buvx^2K-ft0$vx|l#K41}xvx`O~K4=k(vx~+g zK4cM#vx_DqK5P+-vx}xAK4KAzvx{aVK57w*vy0{=K4uY%vx^oa{@o%LXBVH7__#$Z z&MsP#_=H6)&MsP!_<}{u(1*7s@nwrxoL#h0=t-uC-JNxCB07 zv=nK8{8hn=a{vZ~Hk-pX}*w5s!@rx2)=-z>O(>E;SIVk*v_I*MWXexyD9??(zxD z3^i(O5-fh?sK#cc6Si8QKQyoLvqGDvz^o8mV~g@7N#BD`HMRuSip4Q!gsCql* zd>$ACb8FleEI!F!!qXgcrZ6>95GES}jCEb0Ct^t}E zx)-E-Y|*tgb#D|&4gANVqlwr^2dbno--T~w>$s~JCd?}Sw&!+alw}*N3erfb}^(#40HE-Q8(-Zb$2CU~$JIa9? zw5ZO0sFqB=L{ZwV9eBp*+JR^5`KU2+pv{w3v!tc$jEZJbJLAhx%$qs9UPyI))pl~A zkGSu|D;8%)!G3CHH87Yr=mP&dSyX>DFptq?#E1zzDYdw#Fv! zPm|}t1DF#BXNbG#4Xz<4Io8_N+2ktpRTBrYUNUctAfuD9=@93eFu@ikM6a|tpd4ap##eHj6z%K)*F*8`e80gF-T4*2La1ZtC48Ta zvm-bGhI2ypF(sThx$hrxVkfs5aUFzGNTitTn8i;po|5*3%$=ZVFbdGRFp`)jXFN*$Ww|CQC84w< zL3P_p^s=>|DQ!=9&vh7LP~bWO-H=Ez{r1x<*rJhj_Ja3aM_~jCV!p&+A-?Sw>(GPh z(6kE*@CAg>Xc2V5PvgYponr3-4dnq+7ia(_xPJHSS8_a(W zBiJ=phjUQR?mQ2)N@hHl3OxT{Jo8%cT!y#uVzvK3JWrW;E{FD5Q^NDKiRTLZfP)9m zHXb~OA~Y)no_`>oXJ9-*b`}zl#7grp>;!F=5+OV{5TnN3l;-S24t*m`R|!o2AxvAP z##AT;rmfOqx*C!(8|OpB^t{0I4-2Mi1g4J=(+ei1YtzHD={mwx?#{Roq74~C53Uak zT>D8L3y5ZGGE_6v_-o zREdo{UE1UUNh~H1Yh^J0c&Mc>b2rh}>t6$j4$tK6#fBx&Lh= zQYbSVkq68X`AlH?w*}LK=7{{q#Pm>lm^MB9KaWUSlB7cPm@y)+*{-J@kuNMG@}(G& zbP%6nM7~NjBJ-vhk-uj&B9EIR^0kTJ3Gaw}Vs?hjhFd?$k)SbZ^KV0GsN$@iQhzlUz`QM z8zz2}O#E)9i{Gtxz>k(0sm9-31HW6g+iCHOx8Ro`@S~r$QsC!Kg3d!``5tlj_qz*{N`Km`%&OWzd@$J z@26Dw6-a~M^NjF&VdA&I#P6jSzeE$iSLxyR!F5S`ZQ{33E{6hFl3Wo3wJ!%rwP#BZSN-D4~k_${&EH%N}gLU@m{)WmPFoZcQ|i2T3rF=)4# z3cum9*dzXByO$Qf6&Czf3jFBD;uQF;N`+s+H295>GuR`J#PcAmChZYdoA`~AJ$uA8 zCVr#kboPkr5sERgcSX8Z-cAs$mw!bPEB%fk;&*`v;dhIa>*Oa$1b$=Xx9kyxGDG~v znfPrG_$6EL8*k#b(Zp{;y7*0e2mI)Fh*bDZHt@S|dyp2tpDp-p5%|%s`YG_+nhL){ zY4Dqp5q|L|e%nm^61@0rH}P|)hhOCzk~G!CZ--n91+HCkLnN_MYYY*;PDBX5?xfr) z_eUb|oAx&Rgfc_?rknWvBJkU7!Ec6%-yRdcnd#y;>mBf;AB0G zw@=_lw_l{dZ+|NM3a7zuUPk!MH}N}Q;`gH$zk?=zKc$D?K7?X{iQgglI6-toK93|; zx`83$_lOAL_llH+RjK4K+!%rwP#BZ&M-vxo+MGJoGO#CjH z_^nSDzYXtzAN>TI3cpPTeot-B(&G201;48TKf0kQ1%B63;a4OLew#DG?`IRg>n46% zy!hQP@!OgneismmZ6L6FQfW!b2_R{*;C93CbJK{R>&o{i&wjbN@ML zf#?1t!*l<3$u_Z=^S5WEvwga+D%-2J#)1EzcHRt=u>Dngngjp&c;8lsYj$%poKPL` z9SBBmo{JGFroaqI+GtC$nk$PUDP{})va`wNUCmv$A4Ngu%NT67bwmR?A--Y%3*&s^ z|1-XS%X32PJ@L;`6QnIR?`rO*y#NYax9!D{#7gBb#NJ$m2+c-yNO{ZN42cxeA2Z%+ zv#jPuq5!QYQh{{hFO(Vf=503bYW$9!Pc!b?#c9Utk|1rjMWeU88vn~~FNImsiT@5; zdaLoB_{y<&JMp*lT&dk|n>g`*&z_AA_bmY8iT?uvPzc*UBmh&M_%ncy2teb+p8&iL z-UCL4uM>*2CDl7s^ZK)HL5}>P)+B||A5VV=KqgC z^Lc%Fl$MK zAnZWOA&zcH#GpL=wm~VB84k)b=Aazr;6XXuVGhc(=Aazm@D9pz>A~0N{5uRvap<1{ zz>79<=>NVwz%%}gSrrH6Xooo{$2fRUS`Ymhz_E^$gYs7DL3tZG#5qz9%1apy%FE`U z9A_eW#XBg+n~46I(V)C)4$27*9+VRu?=UE@y=_nmWrl8<~HP>N&!6qw#M24$cYG>^VJH znM<9YEC4PL09w!e8NkF;0Nzat;PZ?Cd|?8(&;;g`O#qX`7+jKK z47N>iVRS8a@KuqQI&a>{cO0cbmh3o#Bv!hLA&$WNL}&y)C*=l*R>v~}$J*brRu#$& z0UT!nxKRMO$pYYb6Tr_m`;80Tj z;+TL$Org`>2B1)82;g)Rz&!%My%qpxm;nB20yr~W0B5}efa2&s1%Pu60Q1`Or3G-m z1;7IWKgr=bHc?G6DS23*ccBz@O3s@El^Xzy$D!;~HUf%<&hJ zSm_@O5kRG`0bpiiTt^)_kO%-1-v*#iW(eRy6TsgEfX6KWE;0c;VFH+xE`W>Q0YGu~ zp8~*T27vkP1=0d|+5+Gi0igBlp8-6Z3cv?x0bHIDfGbP@&zS(O^a6O^1aMV)0Dgs7 ztTqAs!_k#6y6E^0Nvt#&Lj-Uf5gLJ0NqNEXBN74NnzsQcloxl3{AU1fqyq3^S^zg^1mMpmfHzG5 zw|D`(WdgW0Jpk_`7TZh!Z#(`ajP5$19s%f!Ap#gcgaFKsjO&i$LnH#g?Qa86C^H0b zhY8?c0>FC~0C$=I-ZufgaWu{dA?__t#SVf3$K43bzW0Ye0E9uWd?DJlPP zY(OFaJoq*Mg)&0`519Zy7XZGn0C?C0@TCdhk#qq(`VIh!5K{BP#-@O zxQ6>Uk;F=QF+>215g`D}k#d+%6(j<{vu^`XC^H1`oC)9vA3mHJ>0=(woHqd+<>Nh^ z`6FEbFT4YQ;{4wVVB3g zegc-@89Tots6~0zIY{HjZ!-19hXP0=6+pA0nk>w6lO$IdK6pG*D}cOJocm*SxO0rh zlC*SaUq!X!hZT~O@U%YlhZRWZ{jkDUXz%@~K@lI0@<$E6sifkU6>gG0B$SGG#t^@( z@J(fuSCsmoydTTEVMw1=sH|1vGDl%N<@XfuV-6(rmN^3>mNGdi%KVJVY(;sKP%1tT zLn^Z>mDz*jYgoPzLn^a^8m;>0>6LZZBKlQ=OID+*tJA;7mv|18YSmZs90Q+QXzY8R z(p8L7C*`^I6j`gZKm#?8AHJTB?4(=`(ZnAtHvG(Eu14zfJOS{6lfqImY^=V{lM|>h z!G|S|ChB83Po5N_rfM@aPXX}56h;AlzyFfwHqGqqORsCmj89{Z99Qtr0u@I3TU2d*r6PYT;P6<~Lct8e!DCTd#ZP`5MPu+i z#YyU@_|1<$OhN6sDu48YO7Q)YOr&l+OggE75YRTgM}VAkq{#yo_HcjF^{AW+6b}Tc%m|=Lg`C+3`$Zax!S3d0xBrwx#=leUl!+X zuMQ8W?6D**el}6vB?m+*;cQx!MIBUp9&4qWYec2_t9Z7s6q*Uw zrEdHlxvr`m0;1EaIjPN>AH+A##;5_u@R|DhlwlK$oHQav%~5jJBWZ#*DQmt@ru3IR z247Gnxm;NDTXIL_MYg^y&fOVn{=j2NTFDVhHUC={HUFALUsE+-$dmh0Y8GYcLZUaG zl;nieW~Zq62WTc-H!$yo?+^?4BE6c68PbD!KiR*)H)_CO%(V|?*aRcPjfhcml#KRB z2B1yKntv}-`Z$ll7|JA9H>~+IISzS|tuKpne~UGrIF8S=3;pq zK3M@iEXvfAMEEua_R*J|klO4KH7|^2!gZtOgVZPp+>qW?0qabU;swrC{R@1j2KK-& zQT|9-HNi+PBf?*4F)EJYz81?I}Dn8;l!=s>Mb5Z9^1L^tBS%yMtvrjZ~-u~Fg+*ZcG8mrcTz~q#T z>>X0v$T6C|z+g4-Q@s4{pb9m?NJS%JZDbTz^N3B)$-0I|Z2C<(*7b<@QntBxqX#_P{GfzrOBab9SOOL{I zHPa|kwDl-VXETkaMsDv>SQ>c@HF5_-A+Xgx=dBh3x2t}LRJ0{ z{7Q9|s@xL%YITjO+!p*=b)Bl*5&U{}gR0zR9)a1(!0;1a{}V7-G63dp4>0}xC^G{Q zmJ%ZH{}PIg48^Iz1jQzXLhzdz3c>%(PzZhtLm~LB429sgF%*K|&QJ(`2SdR;LUDkh z;NSfICn)k{0L3d06axqL_M_|!Fjy{zhwc9*9J?5f_CpDdUls00%IC71565|z?$1(|NmAYtp69ajeo*VMnzt1A zI8f}H1p~>CE*?kJydRRLjG>`aQpKa{q`c*v$Qn|5d$CmUnEE{Lr>0a2{~d3&${TK# z94ARdQ(`=HeL_8{=B*?iy3R=@;CAW|-*@#bx|>b?E~0mKwYO94&CgdK#OJF^RnY$6 zx>@$4<-BzZ!91vL;@&fF-9ALIZ)wWkkKX2EsT*r3l~nOG)$LrvjvkXQ*zb zR0==Kb+by&aotRbQMdD!x>ceQ5SAM}O894;j7N!NUP-n~=?#+}lhoRnAzn%(Kgx@S zNRP=vX1Rj=|D3ii@HiPUg2u^39w&mo#N$NpmwB8B{tAy1!T-tQMDSO6oCy9Jj}yUP z=W)Wk)F*$DoOmx^p8_T6^F4hEl%iK1^eIrbIks+}LY@2K_PS4@*mfNInstS`_U70( zBbjuY%H-SiOuCQeEG$un=Fd24&$%q$BM&({fxr_;8GVXIG<2y5%(3{D`VNBu@ zm`qy8WXf75@%xx0Tw~&X%4Dj~D#~+Ob|y0lGMQ7H$=uJF%x}Tu$50LwlfjwS zQl3NdFd15c$*?L+hBsp};%g=&hcFp6jmhXuOvW5xGWHIW@qz0ovk66+Oe#m@qmFf$ zbZW&UCYFh-FO$w=nZ(Xy^7T?CU4CZL^#GG^&NJzDm&vy;nRNGEPg(cKMWp1^5134= z$YgpHlNnz!nbm{I?BPu2Ol2~6F_ZZ}Gx_lllb9lR(-={bsr{c1~XYZhROOVOg7A7vN4g#req}Fm#YT*m`1>PruE?- z(rr*JHroF*uBbD0+LYVf2&zKH?W=sb`N2WvJJEp^71k+LAW;zxY zG93>am`;SfOeeu9rudC^rc>c1)9K*5iOQP^xtPv|517t{PnphxhD?8gubC#o5T=V@ z8q>wFoas{7#&kIxX1WqCFI}Opn7yOiw~(rl%l^>1l{& zdIr8>dKQK;JqPhj&%*+yf51AX7hpHji*SPJCAh})GCXH`1+r|Ra{q*aOs_&2rq`ev z)9cWJ=?&<@^d|IYdJD!gy$!RO-i75%|AMVd@4+Fa_u&H52XK$+BY4g931r(!zJcpZCHZfrAltW5Iru#; zrixsIsVavt)#RE?b@_9qHrd70F8{#PA;&TGkry(}ByVBrE1zcSC*NY4S$@tmi|oIh z%JY{CGtDZOL)z!#YJ6$ggUHcBorCxp} z^~*DfYQUsHXC@5?GHH~+r14TFO?EPAdYVbIdrX?EJ1Mgk!Aw5?2+0=(^dCNHBdc+e z^uuS5RiaXKLA`GwUFs7aS(yyOYj739Yc}Lqt@cdnoMlq)4U_tgU1S**%%njXCJk#b zY1Dy9K9lBqiBzpbubu8wwep`FtMU(%&)^plR?W(!T0SNbC7D#O!X&Z* zlNw(zso9N5twBs`$1$lhk4fECOzQ1mQvW2AsOwA`JY&*O-%aH;%1NYpcV0eK@4M~W@A5MGOjk0@g12=7{X-YR3>q& znM~TtWb$PuQ=T!2&-5$hl2C|=yAqSBjhRe~VKTixlNpnl%v{c7)-EQqe`hl1CX>1H zZfIhF&*XwojkVG8J6^z32*6RH? z7}Ea99%dslq?Gz?(l_gMiLNsit;P(7xw0@WL%X)C@^ekI@ zEZYdnYx;Hc`1}?0I5HuX$5(a74gIlPuc6!vRp4_It$c|UK`1tY?>&<7d*1EzBDI@( zz1p(lE~RSmU#SQ%$?+H2cKk0}emA`19@%#JFI#>yyyHIE_WUnfelNV^0og|Xmo43{ zDLEdJZQuX0r8@&9$0M>G@?W-e6Po0BOtz!{%a-nUk{nOSHtxS{>DC&_@sw<*{+BJ? z#UV*U;FbPbchu${%HN%QsSkyvB)KbrG!&M3SgD_C(`@p~nhyMY@W835I*wv<*le@q zdb+k4Rp2uot$c~~57UuZ(YKh<9Z`}aGntimiy6Q9*pY?I%D=^o--Imn zd*2pdtDW!VG#vNzc%zuK8@Ox1}}(fgxCDjHEd?-9eP_}$W+DnF$vXe)%BVHG}HSa2LBO)>8k zusMp_aNhgWnD@F=!Op<*-ZC^bK1U*#l^qpqIPb;EBn2O~GUmMyTM?Tv?^#Y3dETQ3 zLV4cfCqw&%+KSnXc`ub^Yma3cVfmr0IC^Zu#|{csnvu%m4{VN)Y&dEf%3V+eKH1R9 zmsk;`p7-c^QZet9pj0jXE0vh{N|J5I|FRYHUMaHe@?W-M-YZSEJ^#yA%zI_XHu}G8 z#k^ORZ2SI~t(f=9kuAQ40hC?IU2%y{7r2b7Y&fG|7W@~QKvco9U4uuxPl43MWK#n#t(n$E+*3za0 z1FM6*>R?t6g;t~^%P}w(THCaOP&WZEUB77C7dWw1nS&GCZWM@#Z7Uk`#6}EHY@`#D z=$ACH#n@c7sL)}Uir*;P$=1IE#%X!nzoWs7gQ(DnXn-GH>TCnQslY4i7j` zz~4=}prUN(Y_h`G*BC1ky3~lpVytv1y~7s0{KnSJ7FEhyURN%!l&3sqq<(#D-`lju z)G(qIxpPn}K4xwR{9x;A({yj!=w{mp)@U1t(KeN}{x(|QQ!y?MJ6Gvv^RDk7EW-}} z(i5PQ18f6r4f2pgY$6Jlm}{)>g%l@bgV~4-DW!gcY=dnLikN9|_7+hxX1UaFsBM@{ zenMlZ;DhR(QTT*c&;5qmM&Jm2vk^zAsS_*feiLjH5!zhy5L&tqK|mX_!?@BB!_bmW zKpRKUPO?qLR1GN=HJeC9^CEW$VmK8yDPQTPP^x%a0;U>Cspuv)k&5m^LFoJe*FcX4qz8swb3+KF}>vmG-0}hEws!ySc1c zlxntZ4yFp7kEy6BMJigMvxmfRDxR`9)m%(fS)0#YfNJaF_UK$?p4kPu(Mz)Xc>;v< zN83-fx_L+<8n0k!EYH~DkrYuC>i)FFBc;@Dfi2Niw}_dBw|E|7mP_MdUFKM{g=XdK zg$eK?%PJN`*d@8~tBG*yy&?9-{2KK**nJnIms#-j!TiSACipx${!QZEp5Lx5 z_;|EmQ>^YxIeS>!57Y)9sEw!LU4xj0@2iod$pALlR(}{b#T3wO>J)HlYH@0Wd}{G2 zkk@9P0tIx4hsD_?DIQv*B7ylS5GsS41#T9&q5S)jVU^+)*>_`(iT zAzGHCX|Mp50n&76Z?{cl8zE9KU3dVcpgAZW_HiD>yWu4Bq;^b-;OUOUcqqq~OVPb}_>6gy&%jBRa%;>IQKx9+v(fz8G?R)A z(3Mrq1IeruhVd|nC4#5W&60S|#Lbz<8`&;lOKKB0^bDqO3rmQPX9?efV+XZ>Yy-_6 z50oOFThYy7JP4O7=B0`fjBWrNDGAUTC2sIzemnCyke>SrgfrQmByL!Q z{9Jy4H-D%bZ3w=2pnH7cfo@=rXONI*Ijxi8fktLL&?*PDY(viw#RIKW;(-<-@qE?$ z5xXXp77z5PayN%^7DZFz`GbJ*5P}!a1m@k$W7Cwwsh7$MQr^$*2KscU8|YpItUntI zUW6T3LN?g3k&ibl=?(@rP&k9bcq2?;d!e0={9K?fyNJ)bxM3|z=&MS;{As0lpf6Fm z;Q&e!z)^+x)65Gwh4CzzVOY|Od1e5GI7xA6U&O-zc{gN7elEW{g+DBY64J&4eG1KO zgzKsjPq#N?YjRrp+{z3?LUL>kmJ9wy^^_glj(R#&_M`jWuPHfgm9?wN=^Q1aw)58u za+H>$cJOCPa+I@2?G#*j|EOJp3k!_;MQ|VIjoK}^3Pqy!2=0>-QF{gVX;{>+f(x%4 z^_$=-*NECDxGGUm`vvz|^QZ&L3cNn&s1_Y{NTI87j_RGF4hvsud=qs6|VxldfnsZoC@ z{}9(|Zq!9lTI)qomlRr}N0;`B}d!jDDe@99MRjO{!{?3_Bp=%1siT1rv2=o z;s$Cwp7f3>K~v=uijEfzns>z{0%&>(O@D&ZN{(V|cUB3S=7y(~{ye6CP0R(wnkYLa za$-pdK)da_N4wYPhLnb-ICWL!H54Jcl^{u|3I!HXfR>t=s|~gphq9# zVHsNz?}m-clhzINu!tM>vqbPBH^GY>1m6$sX8?uqMo3-A4K}=0FTs$Mz}(^?2TO>@ zEA4wJy zp!@9HuwxjPh+#aOKs&D_xTl6R5`D#M!S}2A^3FF2?yDhRS@icXhsA)YX=4-oKz*o& zY)Y$6f=6n|AR(tRIWu1)Z4x|IL%y~s4SDbr^{E=NO(;laCU~ZX^hi~TZ!f$#3Y)Dj zk|m(MPy?63-zpywE`@)XQJ2EMDouy>rSO~?e<}E-`brIXlWu0guhlndh>aIqT($_f zpd^sAkYN_5sd-Z9K?~_?(Q^fiq_P%LN#x29C4r)ajF+kX84=Om)clBts)e)@wkC#2 zplKloEq)ocx)xG7MZPvIq2P{dDNec<*i<{_XSyys53qaxqx?3&@e6^5F!h)K>msVEdw#X##(?Y6RRP`t^ zu78l=@|qK8)oP^tNA!N})-d99_UkLtMNGl_f1X;C^HfCm6@OxTFv_-HGvS}e* z6tNjgg6vv|ori;oH>PoFAz4yMxnelD-q%8AGcdfdPlNz1WUe}5CAg_ApoLb#nPfe(g|*N~++_HNR*fpCQR{|ANKu6ZSKTi8 zokg1vEwlmK)I}Rw0*BTo8|I?ySivG%u^hAz_B3cwE%dVRl^scfP%ZR2f7r%jQA`W{ zi&xV^kO&`Wp}jZ@cC{|vqleQ=BP4E~q7valEwnE!xdldSkO;-K&;hjewg{_yq?OP@ zPjN@_<|TSrm6BR1E%YAwZ6+{OrL{6z=s8;Dr%{#F%4wmGY0;lrwH(T8q2b)*3n2^} zRrck%CkZ~*LVuKL)-i_^ewV0%7P>j{9FED`6E>(n6oeq7tj1vKA^So*`953)Og0>S^@Pw9px16d3)Zs`f#4 zE{g`RF9$sMIXFt?*w0~DO$%L%OT5d-8Y>E~Jyt403*D!1rOdkea^fo0wMgy5K@1Qd z)h0m=E%byK!~_slx~3L-T46*ekgC+uYHJ@(rQ1J!O=%L;(L%2%bZ@AbG>pV`v0Eu= zZ0l*Eg;nnMR84jY3#zY$78TO9Yf;KwgX)RhjDEgKf+#KYLt(&Ul~#%pgRJlD; zB};;aT4-6J;;Wm!&QsVT@I~GY?_rq0OU@){q=o)z!EY6Qcq;U{fm;$Z(L#@#eL=XK z2u-!(%gynf2+g$OE3EP6TJcTRcnhugN^AUct@tWyyrourjWym%E56zqZ><$yYmK+j zim$WA+iJzvTjSAM@eS7a7g}+#1|cC%3twu*4_o!^wBjesxL?`z`1)S0M4%sSdD?41 zh5RB>(orjsgP*tQpaq5awLnRXRw9TW`skzu74_?klFnL*oV*EfX+aVuwyKL3RK#x{O1f#Kf_R_(jTRK@w+1EMwNg3xUiojepb!0a zqok)+8dD+DLklY7cM6&Bw9-NBST8N8oZl^!^wCP^WXF1IL1BI`Q1XLTIu|?ky%to# z&u;@BIclZzuw#9-pt62>P%=O(otGW!uLYI&D~XapTIqc3*g!4lW522>8KRZW&yEe& zfu3;Wm_pP_|);*I+niDqhH zbG$;#WR@0I(Hftvg+*H9bF{Fw*7#g4Y`!%O)gnlQ zy;|6Qb2XI+zhazoFcwq4X<vhw6JUzso}#x zEv#HBsV|R!BsipnDW(cbJFJC$m_l$w3oB#__yUb)N42m3i_{o2$F#6}UQf~LcP*@> zX@vkB$N9rMW-xvN=MQWAB+eh!_$iz}ym2v6CBkW(KfFTBaayp(Z{f6Hjo-#;!5Y7V(}FdA7pDbl z{4bmqtnqs|EqLRehPjW^f>(%6KEP?g8h?n>f;IjKrv)>P2L&`Ocm*QYBzQv8LQ1Je z^^~TClq&3M&uCgmB~66Caau?vOoD&B(*mi`<$rNn@LFMB&%M(E8zjLC@3df~c!|@3 znIaKh;k00lzs707j3>bx@3g=f;7Nn-nHE@(2%v}U=M=^?AnP~{ShG-coCdrCPh+S$ zP6KJAnvT;z8mX@1G>}s2nFee+P6J*QHi2EoX}~IQ=r|2{1)gcZN5^Tvlo}%-lOA@@ zE5yuvb({uFK_d9+6^ilBgpVb>rw#~3X1&5ktT8t(yo^tTEP91;=5Y!w@X_2~uP`yC z(6hSEs#l0lsX_Di^a@i`3O(l8^a_>9d$CRO?v*f2cD=$(p`q=Dv9)sQ73QQAdNO)n zukd3^4dxM`S4iYt25%+I%}F8z>J{31w_Cim^JJ7muW+AtI2=%x*pfkd1)Pl8Pp>yg zkW;VlDIeCcd!GGZF1><}MQY@bTd#nZm()1~>lK<=Y>hsc2c6^nxj4cy+B~mbA>4$B z>&g(}2?f?&*c*lA*DJWq!X&?%JMp+d|J24S)53btOuv>WDXLfWVM!4^Xl`Y#tR7Yg zZ-K$Q@N*9iDXN&@eAK891eeJk^`YQ=eWQvC&d)#UBf(|P9#ukcSpuU<3eG=QR4Kt_ z%^Ou(r~PH6>_wu==v2{4&JuX<%*VQaCq2g3Q+i|UZoMoi|@j?8|cx9LTjTZgh>vc{Y0)yjM0zJH2L zn(5Wb5bGI!&GpFh;z*$CZj{pb0UxT@#F!iEW5_>gw$N*6!Jq3b^~jv!@WyJL1g-SQ z>mnCEpkQQ;tdgL$9(gZS5#q=^3EJq9FVagV^ucZQXgxB&D3DJ!j68$C(7)6pJE!u* zNYqYmuSb5HDv_tauk^@;3O5Q>5c^mMJ@OZY&R%@ka|VIxhN_NwOm;xfif#_58;(Yxu9Ps9q}D;91Bf2()bBVUUBL~30R zy{8`eH{W<*7Gk99rGKYKg3M=Z(9_g zTsbMXNfM0JBa2v6JR%I$I6X3(<#dw0ygF$9LUVkYvx@IS&^HqPvxH`JvULT0jV{%9yBX~%0j2`hDWJ1h7vwF-IC>X zP`+9|Y3ufZB&`FOuU|p|Hb5&R34F)YdZ;E3M_Ct?Y(RtWOoL>6YW$1p_m%VP ztSp>uuk6)fgxnj8jp>JKr6y(#d6b||(AxX;X(8+(*Fhmw1Z{UBQSo4&Y#p7T6?x!N zk7F1!)2r$!*F_aoz@@Fk5dYSIwuw?T8*%{W54_>prLU#iuGfMtnsg4zOT#JKxO~*4 zw)r~0WpoYLI-(Uc+l1=Z@tDkRr^F6_3^##K4kTYgBYYofV|jqo1)9is8vz#Pn8<}a zz*KiARi>vHN}KWJFr1tHpd{_%f_z0mKZ9Si|BR3Yk~9%AZ`J*0WI-)voT&>mP~-fk zPyuS3ov5b>-$tBOBg`uD4c0VE0}B0HP?+^g3g7FDA!g#&1sbYx*{7&RW=Ju!ydtw+ z>~H4AoY`E=Y%e}X<;s4P!fa)SfZCrmK-Y)y?XB3j+3Tv5^;c-u0`1p9ph(|27fPJ}U=97(`?+#Z)>7w>FnoUo z$&&qDL6rAa_zc5^1jEjRNoXMn-MW;!lN{$?1LHzktN=-`_ z_Q9-eMX@s%%1UA392AD+#}E@0&!{Qaz(?3D*rk#&`Kig6q{uZ4v7#k>xD}6}{PiZ3 z7xmqYVQ6*?aoQ_+l%F-`$D>9q;I&dwJt|pSuQ1RkBk_ z`H$l5zj)ug>q94n#dBjAvwt$qO)*s4XwY0AoyVxF#5D}@-A!>vqgCyOu9q6}M<6&B@8i*lLBq8(b4XNxdl@v&)9o-Nv= zMFqC_L|A-kT7CDY<#g-Ypw7M0neim>>MEwF(re2jW%R`M9$%zYed zQZ+Y))e2#V+E3cEwmxcm(exTIkizOCDU6Jxu*P%@(ehJ~Pam|Lj8|Y+%~=%IT7V&H z!y9luZq)unscJ8$u+Dl4>+YZ&HbO-|EE1Y+L7UD{x*&mBPk^}t>icH}e)?l0R4UG9 zSJA8+)Mv9Ok68o%>_Bt-4rquRP3@R(W$M(>%=tUcmC%C|H1Z^9?C%8s{FI;xa&6FX z2Q>A6AHGEnlU5N)qcG_}n9WI>dy+Qu4*(k{ZQ&p2N$^>2E^81b7y-LD!RI0Y=2lfG zXQOgFTwrBOL+OU)C`|x*0v@|7^K^)j4DC>|592gPUqgydpVz5L569y(9D>2+1SQ@A zpYTNev#x&wU4EpQX$!HPnB7V&FH)0XG!7I(*)#3;$LruzUXN~pk)FwZ2n;|Ly{?wk zM$Ok46U4*6>~$;Q^-gFV?Vp<)ynP$YBR98rhqjS+yi@!>K3uU2qM!Ls6Vk61=>Aio zGd5UP=x>iY75@uznFCSd#x7$k%y*CssGqcPnhiYO$_vK3^PGWLiCfOlL!3 zHszStRK(cy4yKHpOQv(d&-LX)jN;PfC6iYCajA~f+hzYBA)Bimclq|*<)xU9P+kLD zNb+9@*)dUBjML;*({r8K2(|K}2%2>~L0vl-`^Y-z;6=H%xb6-`x|9HLQws7^&+L9>0(gUwtXG&)E7 z7lPFb@VEO|M57S5`!4wUng0O+K^Fw(pnyQ>(6y%B{|w8yU84$#i zyEd3jrf0zqmwwc+u5U!Uw&r$~L@gTzk-!df=+T!1!0V^Pa_C-Kg3n8xmR^VITN z|H7h{>tUlj_(L3uXhnTgEPA);_|$>1R&26Pp;ow#2F>xhpd~+T&K*er9H4(-l5YHpBDd~5~aP+w46-E)JN%Q+gWU( zbBOPW?3s_DKtBcc7Nl)tDlBm#89R!sXsZ} z0CZBi`_B>i?t#{@Q>VJ{HO7Lua*5=&t8&Gzw%TOMYtG_qbHfU(% z+RKwGy3zJ~6hpJNnA;TmcMX`2VGLyv?R5ihtsx=#W(rN;u(?~qE_RL*d!73gzNpM@ zonyBs`!A~rw+4c@n07Q(aBcB!98WQ(P%)jA)J6~j(B$*7#7 z;gr*ujK)A~HW~{Z$cU~5e-)FYlSXZLJGmZ;$jeZ5#}M-7b3Npfw^M?%qTXU(c|=Ds z?<dQBE<~oX@O)o zf{IfX1wHTIjNe|83=2{B*w9h&ctKp`G}h-M_+rNEbHQR>aT^ElkZXY>4lc1;JoeMP?{#j;gEZQm$&xg0Y8@+ z!cRA~p8&Oqr>C1b9zeu&XF161ng|4G$BP))psQRJKTASzVz4hae1xPeVI8a5F+^o4B%Pa6x-fVT(-D+XOeC3nLDCA4-xUXhrPS5lVG`7_ zJHvtARI>{b;F+@`G`)cR*$t6)XC>xi`e2iMU6j&>Ls9$=@vqXHF({H^I$^3V%V~5} zgsiT~&==#K$70a+4XWwO)>DA+<}X`+^AKflO0MI==l4*Ee;rR@HV$WH2;2q-QREZ+ zRq!@gi(IDQ=2>~~*o`&vYTw|Bft{d{jIHjP4t_}Juj4IL`C)eX zw*hS#GY8jy-!&C@BPzw@K&x-JlCxDHl=J3TaGjE_8JxG+Ky}ZDInl;c>R1X>WI^kk zu>&htqoQU)eJUyj60onIqO7Wdvom?lvEa73JCpN0ekGrc3iO~yC#eFntQGLLRA9DI zfvsHgo>{Pj;O5xe+yi<|!l<(veu{YxP!Dj;1#cJlZV>9MT|gIIK=iMy&gz(Ip4q?N zqyFWZ52Am?K{Vprn=a1Xd4InTmM;EiLP_nsxGJC>+I^;L?gat-V*arjQH=IGglH&rS zv#nC-S)Gn;FJjVctCg(yjh?_cF&Gnh4uZCn=~^YH3vY14Lb!Vkh6YBi*fB)^ilM`i zAuvr?7j!KIIwukBIuxdocpYZ4NHlDc*|5W4H09MruIa)J43-cJM$6)QW;ht_fRjaJ zNz4xOq|4a1l(%@mC>hG)N|y>F1+Q8*!w48mnKqk+;M$3w)v3 zh|}Or97fPA4lS0+Kd~pPyq>HETti)>91(T@Xy+=Kp5p4T2JovEF%%PKcdnKl z*aQ6Mkatp7=PuZQ)6~y0ZBRPWFn`~baJR!VK}VW$0-Rf9T)Od`vmXZVoYS!?x)kW#B^Pid1GSNB zBQ!z6rzvrO6{h19*U!MGDY!PK-NhsbL^&oZ%K7GS?v!)5HUZCNo5fVXm6!~KCe|&d z3s2!Z-CRhy5?ejfXiQrya|)~?^WWtF*DfGTTsxr~5^?T}58@%~JdTp>TcHA(ZtS`!0T-(Ip*lrGvsSrnraB$!bfCh(ahcP;Ea7^PKC1#Q7$n$9` z9)x<%_hztu0A{ceW^x6g*~%+;MhTm_d+hdhk3E226}!F`J8B%{z*Fm4lpD@ZMqaoZ zy@KfyfL>PSWakDlx@Jc-5JbXh7w)7f3GC-??c-Fb`NjTZ-<>q*%0Q?|)Q zIAWw8C;jr=RRi zKZVlYJ-A(FdGZ&%!YK~=HIbx$(s)t=Jt>E2Q+Og?hR2?GSo9>?^yCZElP_d`L)1nX zD)&N^JC1uhHzuCa))($&>r^`YA*gm&}vWcrp?_sfB4%w263;AA90q z(UT#jCqqq7hRT#ZdNSMaWH#ou7Ur=hd%d3gN}fERms`cbmd_EtG@h(QPmZVdM7$=D zJ@K&U$!OD)F{USDWPW$nMp$BaQsgEr7LwVM<6cirkS7o6)mhk2T4CQziq8D@FEYJqqFpVd^ zxQ4r#+7t1LL-xeOq9;>LPo|lkOp_^lT*$1()laEgqE5!1H%Jb^WkIAN@qmv2kbdqwG@^W58AUdRh{=X0Nh=pww7 z>)V|#sKGnalIwRlCl&W93;y872fA?(g+3nVoN0ns4=?1_cvw{Sj@bohw+~Zfdg}sq zkgd2=ZDeT0u>hV0oE6&5c(m~x@qlK1(4r*!^~&&TC%l%Uoig~NU+v#ekCuUcndn#) zO^Z1d+>8%Ys94t^B^(KFwol6Cuuym<`|`q9Y_@Bn_LRI>C`w~Z$esP*(-H~q+D_B> zfC|)FSf@D1byt$kpbUT6E@Aw#T}1qfEY@FV<#Acb=@Mw?Q0lSUgB5Y*+X+LIXs0IJ z9;%?*8oS+on9{(GJiSfjAYg}&vOE10Ubqieu*YXoXzkCv`~zoZymdf{GkST~4|l<6 z<(V^3Ay_($Q4pbEh4SG=d~s(1rI2fc!kcv-5$ELZFe|hVb&XWKBSJ`d{X0rAMg%S5 z&&zADXP`Bhfu5w81L3k5 z2p{4$bh6?d2v^b$1Rl44%5y2Na2&T26dJdD5_DCbfKuMAPE=^Xa&NeX$a_}Z*F8KA zp&Rl=?y3dvNzylr`4j{5_VEht$n5Y7ZppZNmUKEG*p(o2=TB=!CUphGTfIu6R%8{bXY$B1KocFXON`yJA^q6UCWsS9~BBL__o_KX=7)&X$VPHP6!( zFG->+R=p%i55;AmwNlzOU*Y}dkBWEy`AGhR%ESFi%HxUU5gd(HRP#G$5z&B$Pz_dLvTWW z=IM>d|1CNIesa<5t^cr|=BUl^uQ9P6dmu>*xGOC6&QQygXlG_ILoKHnDl>Q|)-Y!l zDC}AxdhSZI=RVJ9Vtw(piS;EpX_;7iK9reH*_%Ih_Qu`}&B|QDChA&Y7i`47JW%xI zP1Ki%n|=8c=Va{5>n(lxjp)k*u`h2hVHQ$`IoaBm2P*4mS{<0GFAq}kV%gql^;72{ z>dURuPOF2JTxf_MiM|}}9D$v0v!^dxr_~_}E;c3SD4Yqmntlyc>Y25 z*&cIl9;NV-%(_V7xp}lQldP90nOr->c-U!a1~ZdKX{6O;#hly?5HB&|}ea+licnG}DeZj?=Qqu;0-Wdpj#dalpwL^s+;-Dr*3 zjVe0Vr^fuuAfybyVFLi3i#~Jipv!SvYrm1YR^0_h(UHTZBh@fc({;q+$Rwq#;YbV}&P`TY zQn4q|n`0JlrU-8iqc^{s-UumsbKL4pg!4$6#eukn$16)I`-|95PKbVT($Y^7lxWgk z!hUkf>?iIF`pHyBT27?T%0W0IC&bCg3gCjV9PBc$dMY_4~%V5sIP#VOC{ zN>&%X7cKS9WWF+;w01R%>#}H_D`xBbsEne5`Q)(??@azQMiK8deo~fET2QmOt_qZ{ zSx{P_M3Yul16SHv_-#zGV#w7}^#n2k>GHk^+Hr`eE&c?qKy0uYs?4`1)Y|3D)~@0F7+c%itkmrAT*2*RC6xf?)?cHvpz2jp3%dR` zTYs%mo9aay^nW~Kf$q0mr<|d&P)YsJ^{+ziOC9O{rCQD!YQQ$2`mqpVWr$xg#5nvIVuA5SWd&I^ zLW~EhF_&nksdhsmcH*0q=>MbaI>75FuI`)H_EkNBFftH~DFFfjOeX{gH3><;fQ>~6 z*anP*)&>U%B?%b0cUyAra_`-;Ey=z2-g_^&_g?;U@7>+mXG!Ldzt5U|)Ar82XYS6- z&d$MQxvH>n1HUr?nN)_2C;Qq{?i#T1WwG%UZR07v21s;2I*v{63&t+>up&AD$&^B5d3iKvw8NZ1tQqz4eF(xh}{Zs#& zjERPRnatK|;s*}07zf$3x-r976M`V-KC`jkS>2c^>fqIl>elMU zDBNh4?{}0t8|rB4C%MgL{uu~l0{lj~+HOoSie?LnzJ$7)`yG!uN292PUksc@yN2H^ z_oe?iv!$Q+4!81eLzHYDuFRWaK*9fg_?dR2^HhLSvB3~mUiqWgHPi|{%M1UV%3`5)RY{b9| zVM5xhY?~0hd5Q1aDD~!vh;HG}WXrX;EN2g4+KRP0lC@fCYc2KFB*|LAS{<~tmbt8D zuSJoymiwNj+-=Z~PGYUjE^ED2F1LiWR*1DaK~G(@wN`3tb+xTU+pym**9q3@=BM_F z6;}CX&>efi3cbV%`7SH0_SK}+UZ}mdw!)e+tgzOH6(~=+A&|biSfPiu!aA1~WPI6E zTVXw0K{kTR6nlejhCwQS;EKmH%KvXxc^{X`X}~Z}RNj|VK8963OZD?-mK)25GVy@n zopJ@&Jfb%GYLJk{Xi|TzuuVR^Il1N$MX%;J`)J{!++=@6_%;1%ev9C33B~{eq@@FO zOSk$OQe8X-;MGYyNXlEwlQp(`JllMusm{4j`5;mGV3*3b`#z%7d5~|2R{4&SDhGIX zvd8)s`3u$FJ7M0d8n*S$1yl2B=WxCAxS&B&y$iwA-e2JYh~DMPWA!#iiPipAtlpv5 zsCT`ncNnR6t)<@KQ13c_KJv4AtCZVtje2*>2wm2fS`rKenhVv4jW zPn6PA=tH5CV#+JjQ)=)xL&bjjXsAwzJ{rRN)!%i&ij1J+ivL9(kDV5W5ep>DNn+H= z+Nft-4ntnzPjMUdtZxdnClE+8r;1Uhxr})+` z{DAuSDSkK-$gdy0 zV#CF58#eZ{4Sx+AE)g3pb=k0qzb4guFPgAS+pwv>#Nq}#VKXewNyoH4Z>wtCQu^mS z)!hG;4?ZH}zkcO8YouX@H(o7=4QU_Pc(uYW8<}&}O8>NA+5nnH)utWVE&TL+OdA+C zSNUh)x4GIc8@1=Dmj2TKw#opVyyu)%;~J|*?3r}xk^R@L{5McV1FQ|$)u_sKQssK7 zl6PRY_G65Q`(e$Yn!N?PjX#b!mGMkKd7f71jeA)54UX^|E#a|MxUK&S&RPRmbMW8X zZRnNE@_3QC;o)Pf&S} zxmnlQ-cRo&q|R^cIw3~~|9=p#GWMa|9YM&k#s3h3Y^tZDmIEtDh+yelvA(aJn&v7n zhH-15pS!$RTuw#ws@+Vb1PS@PYVsHyZR6MN$Q@cZZBTe znA`lvDA?{lhk$occk|OW>a?*Bm^=Kuje4iw*+$*nUy)>@ebl@BypMXfU-nV&@#}rm zJ^Z&)F5XC8gEmrQ@+%vu_xi1k)CH=i|B9C+dC)-f)g{CGD4}#8Os);1Ac3xE^WB&<*!V-h%4;4t@Z*U@cxbVSLXA&_Sg7b zpnCf^2I;mSSn=GXE*oil+k@6^*|GHTXHhknvYLmqW9jR!hFF?p;(dWNJ)j-Le@906 zlJ2>Xu-Cf*k$)uSt!MA|r459Ka+O5N;ePd8x8Q6TuY#V+CV?e0FawJ zm>#GNqP;7gvUpe7rXtzBZv)ctsKFvJhXGL*GLkAX>Qn7;w# z&zKxio-W)6k2&4_xc`k%+LR+O2)0KKcNH4pm+g_qQD_twI^h&LNrh%w+apJEp>O$4 zqpU*rhLvY77dqt>I!%SJB2!`%E;VF5y9ac@WU)@48CE+P@nl4Ar^%yK9->6 zC!B4LvO92iM!Oud~5S8?@5>_H?p=w$LiH#I?Dg*)k{A+s zPnr>+jpL|Z>Ua&x-D%Zv5FrxiJo6$o#{Xf2)EI~;d?2@ln|H=(-dX?DVA=wzsqQ~M z_2r%O)J*%1kH_cDwjZQ@kI#Dih?d>9bwA8J=YKbp_FrY7Uu4&UEMxu8Lkh%Hz+y@H z{BIHE$$l3CjPw5rQl$N$ZZXgMvk}4jzzh7JBSXc<)6EMSW#j!HAX4C5L*VSm`ZtPH zNAZWui+<7?uN6-4-%dFLzA&~g&|0Cqm#m?JSc$#l=hx7m4Fb;lut|RV6)pS`&64W`WX{41 z{gZ*Ss@~L!G~WG@W2PYH?Lgjs888L%w(|u&ZNE_O1t3ial64I zlmKaCN~kj#Q*n){xW-fppDPW}O!Y73DfqK71-i6T44Q@kd0OSFMgf3kA@Q-){m24M zo(9dwY3-6h^GRltKt?F7gW3muWHt=|K%GkM2q3plu%>ENn)z*$9^<>1O}5pd(G7K%S)whTD9n(eO$*-GH*Q^r-R z0OP84z`@lVKP?sHmy6L)J~w(UPEaCJ6-atW`{rtC@pkB3BzId*hPqWkN3@D zg_Q^17`+Lw2yJ}W!2K>b;cMJNwHqdRDJ2GdmN6#;H4OAGE~(0;vbzUIHtr zE+4eiUxBbv0IYP;SXt(;gY4vkx@xQ}*I4P6gcTFTA2PdZtgI;A2i0b*^boA{)L2>R ze+hT9u#)P+$|`?PNq`TkaSc|UhN4#c*HEhpfR)|>(!H46M>eq%5heW`lT_8S|; zZ!Cu280hjFo5XJ{E#Wsd%kyX%urNepVTyW5sWba{G<1(pFl2W0zoI6|gW) zuu!0}u-n0cIliRd*i!-vd#~p==;#L=QsVX-O9&AA{6BKfZ+N5f>`=dBKumA|F_8eV zgpTB|`?Up#eHsw|O52|dh;K3r2?Ph#({|6_FFpTYiJt$n^!!7xc9FLB0jK8|Yil3W z)}EAP?Qhc#!P=9xwGWlv^S@(jPZ4WR)z&^-R?k233qAj+^!!7x_6+Iy)1~Lnl%7A$ z-SfYPl+yE$iM0>I+Ox#kv$eI4JJv3(=btEH?UVoio_~N0eaaeU*1%{*&hQCJi(Hn>mjR9q_(l8~U_#>wx!K7k@^&br9QR=W9cs zb-MKeZRm53p`ilzaNviup!Xqjp*HmS(hdD18+wr#da*Y21@|!1?cy(9XP8Od`jUS$ zx%i;BoVirG^%CjU%cNT`cX#W0$R{Jq%l_U}%)n;Z6=LX>+R#_7JF>j$GPH~=a{@eq zJjMe`_;?vvVo0#w8Dcs<-tUE_>jz{)QSD}hx93@G=~a%USCgfe(R07P27%|Pd3Thsb;AHpDJsI&YqhN#1?(xsI&JI5fik8P4OCi1 z7<;`oc9X#ExLt{{Uqc+|i%G=>vGzu7?WQbVDG&5!fwCtR^gwSOU~5-|wKq$*-Xz_6 zi*)O)?rzwa2=pd>+zE4U6LW9Z=585iOVabKy5vNn6^xrak!bxtm>b6@6{;vU zp!~jk^2qNdW~S$n-%Wbtcat9Zm1FW5fTfKEmWHU|5pO*P%MJ%DI|(eyiASVvV`ZV` zNsX2!D($Icv@}(jy9h16^Zvs|OItz9?@FL0SJ3h-(6U>jCC@?29*vfEWuc{+N_!S) z*{jjgzI3!S7qsjXwCvYt=};D0I$j4Yk3w6W1TD`3Ee8T*0Q2X-D-;|Iyg|XCz$XZ- z;a>}qQ_#{`(DHkr<*=aTh(=47>!PJ=3AA+kAJFm)q2)24B^xVl?rG;;8ZCEewA`i9 za(93Z$^=@vTWA@B8eaEyWV9T0&~l8>vVyYKZE2&WvPMfQmG)LLT3V~jjI$GKaT22dE&S{DYy{GLtvpLm*f<*^cS?e3$$Dmv|Q3?8E{>+ z3@m|`LH`3<-XXO79cbwcpYBG>Z!}s!Qw3u;Qds!sD*%~eFaL`XOTH343tAv)%y z6yc0J>d?4je4sL$dnxAhKYC}exmyM8HL2D?n0pl=qi$#0+zqw4yQs8A$>#2=GTQ`U z?xx&0N%Z?AjjtIVDRmOkE= zHdtl}So)NBlFSyc^aWUYX|T+3z>=@QGFOA8cM@27tF*oVOCJrEd8LD;kAS7GfTf=X z%X~Lj+;frz*8$5AXlr3$1NHH~0Ly?N8NloxoJ7IE;2Z>&Q|Lb4+jp1>=IdC@2V?M__?uFv%$(Ss&<4sG0(hj2Dnh&>-1x z-Eqc77f58vx(P9O>GA)XvKA9sPB+Fu4fhCI=Chbkt z{XXT%EDruDlvY`;rv%>%rM;#4Q~cE6fMD9&d;%lCE!z^9Li%}2-Gc3Fm7EcUMAK6B zB#jG+CEY3h~j^oe`LXI?Pp1mD25IXCz&0zQjmYv6I* zkG=()ACzyw?3%bZLxAdq+JWr!I|EbnMc!;Jqk`7j|^S(>O{-Wpq+ffpQLc8n19jlH6i~q9c-~ z^DWR8`le$dqRN{yM7EihY}SUg?E!xC{C9PSxmfVEMB{5mpb2j5e)DW?i;>N4I~jgy zpJ3f=A(ySA&o+@Xez~$J$P4DKgMW4bhxQ3cyIt3N2(h$#9g8h?`d(N1KG*er`&tfB zO8c7%(fi`Rhtl4lWwoCJH-!kDvjCcJeNQnumpbTNMkw0z24d?Lf$zOyb^iF!e+6`Ttyhn@m;zfZ{O%G?E!i%>_N;8=5p-5P=2S`E9yfnTEzg59Ph*iB*BZ5Gq6vrNlF&LaVG*=Y^& zEzNo{>;`Svqt4UC#7+u8#5tA;FE6SeBQx+DQhtkS>-8reJi?(K#Icvo z%A}7t_9pJcJ&V-wK;0lI|3zfX^S#T;-(o3$vf3J~nYQ)+KTqf zTcNbhY>8|-wCY5l6*Z!Z+Zw#<;$+|xO6Z2xZP%JU6?hl1tmz$=rn3#ma5^wsa#u8W z2KhYYT|qujd3TUbR2DR!2@Ii3-BINpQP^Isu(JWY$K#%0?n_n}UiO@WzAz52Xzj_f zKDwxf0)^^E>|J>20nwLr9Kusx{Pt9{BCX>P&IgY1PMWU~J=@oiRkq(!S=Q5toTk#| z;!CHWgH&7AU+`zTQeV{_D&ci|8+?mRoJD2n3&RGi8J07dgdF?YB}bp<#_O1Fzx6H#OA6K!78D&qt#IgD!RXB z+Geey*(z-dRCH3SXih0AY7}G@;gdSIiX=8!MP%~E!2)XXHXo^ow@{u6@)pX|LEb_s zHWy9JRmk@$YpRK8YCAM_Ml^L+YpUsWG}X+dDL&9&f22;Dnxk&u17T}DBwd8g3Yw^7 zlVd&mWLRv;A=a%qD$UqPINb_0JH?)H+cwEtBgNA3}{*sH2_fqNmQ$$;m9$YPrhv( zyb-0SrYw?cz9O0MB^t}r$k4(pAYpJwZTWl_r?KG@r%ljrRl=v(l0dR=v28G&5`GE< z(ber8o4LU_B2~r#2-qv&3BAHfYhsBwUNtqGb93{8UvSnNAp2wZZ#FYtM8JC@+XX97 z-T47JI=8&DW3yM_CWC6EeDt`WX2Xl8QTxTmizBHhcr0$Vd0+5qwtUYo+hiQ#VglbMEDe_31{V z)xCl*LWL^BuWQW@zACl0*0uHy-bZm{4_B?OSa+?3>R#lglX^*f>VNg-1ZEwhtza0#Hznu-N#xKz$NME28!ye*25(gDg!z1v=S(9GO0`i#c=FhFo*p>Wu)Ki>%w*Svg)pt zZ!oXSZq$~21-Bm>e4RuQVi~$+_Q#8G7M{fNxAHc#Oga*Wu{*b@Wk?RQxA7Y))B}aA zL>IYCA7eD)@vlG)4;IsXGWH_(<0=?h!Fy=?Lag^83NnnabYeVC84N2!KRd%DH8Pk5 zMW~E>kYNv(?r$aLssYB^MrvDP8d#|Y8kwni#2kSK=O{c5TtiFjRvjJ8WjRdLa*1mh zgj)I?M%9zlm>@YYmC+Q5DUXp&23xn7tcDmMpm`ax=Bl9v2A?(q%~;$5qp?(LG?qj` zGcH(#>syEVZu}J58fN^8g5kzJ6pSz)qF|))6aq+FKo759Afg!`tjbkB@PzWT&qV3b zMo$Vx83QO7V~j+A<6kF8UDsu!nHapny7(4#?S2iV#~McvK$1d~mQMu6VV3+h4;6bL zSBvV%HO}aO0QV^7T(n2JP)&roijjj5%N8wE3lO!$9W_Z!3jPNV43)7T(LGtg1(t$q zk4Dtw;2&`-BB2>?P-ULlv+#FHkccLThGv36^^t&6Z2@sTjjw5ZI1b0e*Joj0e-f+b z$ZJmIijZrDT>`mg2Jwa*V$?-0x`SEB6(iRy&h;bLHQPc%N8}2Bh+IWR8U@A1Z4^v0 z?m>Vub5N#q1WZx)Jw-1@Ks7T@Rp3id&B!Ihm>b;0Vw}MZy46ILla2lqOfiNdn5O0- zexZ^tMwj3k?sYu^y5~IH6GI!nbNmXbn;-m%t9$J!<$3R8)HBui7y)uGpxjA}G7E!3 z((@(qj`}0=PBV%qm~PBK0NXB-8>Gq&$j0N;VoMH-x#lETPT1ZSQZrOm;^p?ctwRnH8{f@D?_fDi-An) z!8+tLa2jQB1vmLwWPVHile5lqvd*Whhd66TCVneYD}q8JQyT@Ut0r7vfm2{16*&AA z`9`9YSsBd6U6@m5k-?-gi;X>qceBbY!vg23U@8HWXl0fd+Yw-?Vtz4U2xz-0As+rA_Ym1d@tK@>^Hw0gTR4SwQGs@HKS=f4;(T;-cMmGfToEw9+ zIKvEN*uh%e;b?WI@i!y&oVdW$JL5pVQqQN{fL-53%g->`KqL~IEW||p= zcGg{_GA|p+Tr<0a_d#tA*^K;js7|b(cgE1y=(vVG!Ph9a%{L=Io!r(>&Rr9-?+w%|gU3QxkTr)jR|%{F*U~6a7LCzf8*z6U?yY zm#EBEp=64g!=ibcV@7^Dy0m^ex;zrB2C0N*raJ4gbx3qsgLO$7J1WnX`{mgp?LB6- z*Z(|5cWMi_qK(tuwjq$raC?bl=7kr)e}{a8Nf`t)$qWxW=BeXBVVQXoIU=D>PgB3h zMNJ)Epow{2$o{0UU5F<9RA`#I6?vEPq`Q5HYBoEB9!5Zm0Jj*A;&vVJ%f1~G&)jOz zpq<9^PV_u1t_btY0z^lxTX(c>ovS)IH=L@PBge_$4Y&i7&(Qs`X_(n(`2L;c{kp8oN2n5lY^vvymPS=^WOT(68;w;H3Hd7)l8QS*&R3VMNoxv=N4L0Q z&slrwTU}*PTZA;utz5ChNMqfK8EL);2)bE!63j6p&2+#AzVCYklT?l&v)8%Ex04Oh z%Q1d_h^D!hkdLWp>Kpb%wReaos(nH-QSBR&iE10v(ZH}Ls{KNAZ?k`>FM{kqH=H7F z+(A~LuPO(GZbpPTFmwlkVl^mqKSG@DiocBv*F^PilxuM4UCuQmRGo6s(0vGIjo)CV zPfFy;W})hcsAg7_v^JS(=4D`iu)9b{H4#5Msn)1;j=IsPd8aq?JbZ z0)xzb&^`~lkEu)cuv;#XzX|ex>Z%JjA>j*EE`+aVCGeGy+AcK zI^Regp$J(YQ;E>{-;=8u3X_k*!>!h^5L3vI$!iS{X$qOzxYu&U95N$9q<7|!S)usb z)R7_U6VQ4{XkxsA+YyV5IVwcvsN>JYUp_lj()fkf=n%hBu|Fa2fh@V|ggCIM}(mRF5uP-qRkYUF8PYhx~MLT?)jLp%+frd~kawe+?TPwH23UFWL( zPgTZG`j_<}F4j@qcP&*kBV12!IX&6`Ky(`;g2yql%FrxOe$pG$BDsMl`(Mb_)|iNT zh)u>U4iP*+D$@i3o$!{2(35o@;%`tyDI?-q%I)#n=XM1GNbv&dbo z47sxj0C`47x;2r=Okx0-lS2*y+8K?I=zd%3u*eX^wkW2NnW7=KRUkIif>@rK56iYU zX!Po6>!$Ie0T;fA82?7pc~TukkofqaJSY%ycz` zXl66+HN^MOOVmZCp^K2m%qEm{Gu}rtm}zFZhDmqhZ`3$?i8;f9$wJk`a8u3nMO|5o zuwJoEIb1Vq@KdVoX+Q?ynwhDq?Pa`eRjbcjqm_?*gQjUh27l8**I##sH3PMhQH4 znWXv|4XDzLFlOPmJwwWx=R88@hlpz?1)mt=W9t6S4JKjr3(BPtAPPOkg%&u47E+g9JCGoZ)eT26r-)o6;ucb69+C$BkW7x-d`{E{<%R)FA#A1`_ zgo4|ZMJE%=CjmTlcVGj@DmbgjUh?o+)U|gikgnWgE)VhA5uZIrmEEUR=j`PRBKDKY<&lGB*8Lfhy)Zw*3yr_B$~nv8iGrAK~>H)s{pR z6MvmX6@TbXNTcgQ^)jyS#uXv$6NDB?%om7e>VS8=a)}S}e}N>1>H{H)CE<_wbyc-t z36D4u9wiC)2}#VNk8xnnH4+x8?{VXC*UIyEO9+tG*q4y!7f523Tap-mQ6PyKz>-{a zB)LSASR^s|c#N+oAxVEo@;u5WX(mfcVqZd%Um%IuVo8#R+JfH6EJ?Gl%mZ>&^Drc_ zNMdScf?DMoNkFY)m0yAKEz~M5-_a@GiOO3fF;9Gkv&63{557RO#Q5tqE%`#X#J)sJ zet{(BtR=}mP+Oilz>@TJBOGPf#`k z5|UJfBzvxv`J&ktJE{NV1M3u}EUh{}Yq-5|ZRVlDa6H zq?3kP68jR8`~pc#p(V*I)K;KAWJz{8lI$i)ERvYwuizI;NHQFfoWE9*7FrVf5|aD^ zNz5Eek~iK|c*_5aB{}9ua-1ZwNMio`FOO$#2}#yNl7=Xoq?0@?iG2x4et{%rr6tKa z)V4siWJxYNl3XE4ERvY#(8*Snkc7UzjaR-#k}g^j`x27;0!hpl&w=UJs)=W~MQU4U zbeKB!zYx9GTfoA#h=_~BKm@dQ2W24AGJ=7K%?HyeLVPfDkvoe9C8v}{2$L#<5`Ly{ z58+8BgfOim&b((wh#$i=pluVe_7L%yC3L%&bKhmQjqtdIhYY6`Q^4d#N*!|0^LtmQ zJ>7<=VDcg~IW*fvoVmg75Dz0=&+qmT>#W5$(BM6xEGkP>FdZVK7^Z^R8={eTNh+9q zAzBhoqJp6}$NNJyDVnHYI!2t~#?R7D_bKbNvI*nbR4@lar|C8shu*@P8|%H3rT1Lb zIYLx0_hN{)%If#r>!ACXmko&x1`j>tJUB>^( z5D&SD{-wXhzr^yGc7Tn48gicsjetHZ`WHRqzMzEgrABG^&!QKj7ZowRV8^|@8Lh%^ zMp=N3m~y9zz|CSIqUUIsED!?&&%)#52{B*^q~5zpqzMKMrxFwD~WQR zFrE+frn-pdWhi$_UaPqfYKvH&DGrO!S`FL(B3tzbzP`lQm^#B{Uk+_$bjGSG&u`hj zqb&Q@8Xdu0DWvEHB_r~ZVxpHZg2=HNkyk=k04oiVS3^K{S%}ODCnK^iB&d(Lw;7Ro zCmr>{BGn*V6elE3K(0UfUS&zg*^(BJq*0c%)_6i+RN3gGGiv`T=$k<3v*=z3eU}yU zz2H3~&7JCA0rn;VdsTfj#mk&b*n3}N@2X@^Da zBkY0i#Vn3!?B#fc;iX!c*sJd)Y8Naa2==NA_Glv5IDCq#Bx08-5uON6jp&JB121#9 zOk=NZPLJq`V3Y8_N${Eg;S4Rf#IoQs9n6yRZyFv=*@?qtmN@^}+W9vNcR?b7lduORNKq_|Z6H?a_ zQk!U`Ht{l>%L*4#+lARn5}V6PZE%TYgRgQUwS9On!72wxUF||@Q?Ky1l)CuIUJ~CD zg180Cqb0m#hw$GCLPXoLK?~3^{8z#b4O2GS0?;s}Q+N#tK(sBJT&?IF{+22s+Lm>? z5{czX);qARu^lv<;bO{8v@P4j)oypW+OFZ6luEQMJG86q7A}4LqI(!qE1_-KEL~uW z?gBl+Es-ee7jmrjR^0`9GQ&@`lX*;)F1R0CA zWj8@4P0_>AKHGM@KxPj?#-eQ@$Taslye$Hn768r90L^p;4L`d2h(4$LUNrY=eM&6r zbD!HNeZvpa*pawi_KQ(??AX#P>?|LY>c40~tCg4eUkY$cNVp*y~Zm9-@Zy~9O_~o!ms@7g%X{l10RM{le!0@|dQEL0~dhnXVU62`JUjs5D!#hLdapwL5qe|ZthRkUTG6W4FbKz0f8G?pQ=5iKu zisL-G;yFbduf^uVAYoLD3RfrDiOuDl*8k}6ThwCes^@L}(}-$JxPZEhzsccWZH<8o1Sd`auLAl#hp$g>Keak*^IDyVml509X-MB{QrRD9K? z;t8T+qH)QII@5)TrK-4))k*{2LbVBt%mzR+-;a|?W zuOF4!+)ULVN;ED!rf(QU*S(g;g>BL(3Y%CoF4SGydMzFoZHMCU`_w? zTrM5FLgqsEnHR1`iX<|Zj`}|H!>^MD(ciES)4C7Yc|mxXEk<(kVBr=!!ST1Q&Q!MVh{ddS*&H@j#P1VK&let*0dRByQW?(Et z`ltTL?`d}0(*j1VUS!VlNuw*%&tT|HV6ezsXnkU(sDsE{@}tiB#41q-lev6ok-7YU z8?6pww~&yz^of$(X5VNV1hPic(aUTu)|`U<=^DWiak=!<_Fb!S)ZfBU7VXOIL|c0^EDYOP-?w7G19zJ8xW_}gf^F-eH*X0~i&Ag?3DGV5 zcd^k%SVptQG;PIDqsUMej|&-UtF(l8Tt;d`ZF3pQ=5ZlIZ4c9|lzCi6i=oE24AsT! z5V>fVyF*+q5xI=jrrPOpxmH)qq8-m&z0Bk?E=nyFOY92IpnDRN%S5q6q017xMSfy( zDbkkMQ-&q>iY182r9dn(URz>c2}?}Sme^00ur^@Rh#6Y}!!rz0`l(N_0o(s1E4|pI zbYXJg-Z6=kZZo+|jyg;(Mvajl)a zNxwFg%N*!;o&O)m&!e&KUW>~`>-UsElDJ&vYW<#eLDJSQee!W8TtKZAE*BDik@C>T zA9WOc`%x!EpMJ<@gR|j$%1K-<^F-zIwaU+h+aS^H)fZUk;upi`!xO12ak(rMjW2R( z{DPpIxLg)%jbAKP956lUur)A zmPDDwg|ursma}4m z*l!b!%WARb8g0)e5$(5y0%Wb*o=qcDs6j;IvQF%|-eu2bk(!iBG%g#oJ)1{LOq9`s zT10GnI;XWbPy3%xOOa|B5gM0zpAn7A4{WiGw#7C@nZ~6nVry-VmO|sg9%?ID&!TZ5 z>$Qro^@zr0i?&{C5ip5ro*oNr#Ck&G!q(g7vR+TG!{ef@*H)}YJTBX{^>RzG9`(Vz z$T-rM@VM{?SUaNp0oKl_s}l;3OFJ=Qg}|TKi0#FQ#N)C{jJR7Hu|o+X?r|HjqZpBR zT=t3)_qmMNNsLH5F8j3+JC|z2E{+k);&JI35gwOUOyzkXv&Up1s!c>LzYT3?=}$P) zpR}aM?&18%7o7EeWPKg~%~R0~1iY8IcccPUZ4;thE_%o| zG18f$iPWWOjHmz2V$SrxFw%s?*0VzU1QsE6DT?4xQOx?GhXOv-jPNWnBkv34smf4k z4&6}S$yF_4pjw&I1J~G6IN4QbN<{V{&PAcxT&Sf}s1+5OY3)Ot%7tiHH%Z}T2;n5- zA__I&Lam)bZK#k<>N4Fa)KT42m$rqy(UUftzi13Z+nz!U^`Ac@WKx&MX)&s^`Zv;u z)MfPZ9?$z$9_x#0s-#f8g-X7*5(Xg@QkU-#%jf1Mk-F69*sbbKhtx&txU(ttu32?V zM~M5rhT9jZ8If`kYTQOdeyO^0^V&Mi%Z=eU8X;f<|z z2Y55{VmQF;ziJY?NA{x-XJ+JiwA12s3FW_nC{OkSxZSMCjSz%*U9c?i0wQ=%_Uy=K z$Ur9swbMYG6QPAyUP){plevK>>rE6H=w)J;4l&XkuOiNkRHUpp`qH)6nwDzih2$Ww zqQjUw#`qO^r2hWG@7^_vlZMTE{cCbAd!I|pnlBXyxt0$V=~wpBcI zW3cs40^4vev%L(^U|W5Cu#FI~4HU2q(qLOt7TDHCXquF?AHxCLN|^)^B7yB9BhpyYzghlC>vX&G`2>2HSvpJYm7H@4B=^fV&<2zF$Xx?B6Td_jMKo`9{GTbNAEidl7KVT%hWI9HE?$DjG|00HBNvtL4Y$+ z17~OCCAvk)jXb*|6C|M&FZD3AwmX7OBOEYAF*1Z%7<-X|;@Dp(m=t>#0X$qy1Qu`# zNbG9tnD#^lP;ugdnJmDWqJguQANTU;E_rhNJ{NGrG3{sI5Yb0jOfVL5#`3{+k%sJ7 ze)yKY{@Kd5pX%6t8rfc$V8+|FU!ZM2!K=Ao#P$=tnKQ_*SY$9W2?tBnHruZp;E5qp zpD?Gp{K`RrhmgUfx*lSO1Rg{NGfTtca3mY*BEK?Q!{dm4h|NiYN1->3*kI;rcpSaH zUnvrJ%oBLb*YG$N!T#aW;BlOn2gI*bzvdxEe&vKb#E2GVq4<>r;#U@lUs-JVl@DBg zrP#~#FyvQGM(9ma8qvcn5qK=s@HoZ8K7j}GcqcKGop!;a9{ZIuZg`YRB4NQ}3BluR z$`?&V*9mX`*qs(m&Tp(blgYrMW;^&Y?l{ z+EGhG#JuPIe>jH&Wc^0b@@)OC|DpYMu@`A_w$-uzHnP5u#mum+ue^QXLV5T))2r!X z#QL+mncK__{+|zgg57zV1x2{%kK3 z#_ZD8Zyv2k>MCpaI!CO(TdcoFTfarLjNxm`XxYP8>iMmrTd94-9J60~{yypXd!^_9 z%st;c5OekXxg@rXSX)PV#7Yb@2gUY>wC&qOoe}Hdk|TiUaGY%zZ~F+VZNTom(P(&q23 z&40P1`FoTwf6xEH{LCn`9)rr(^^ymbH|arT5~GYWsB{=*dRgFEgBl+3KFi>_;(+HW zfkzl+me}BVQiEryS2M~8c$RrHbK(Hc@4N{cJoy41VU%%$r?-Fyj52QU^l`vbKkh8& z^wr>L5O+^~mwTB}reWNf`u4j%cvc8_8pV0)+c@q_efyUMo&nbZPeW*Jpn!*%Wtzpw z5N6YOM+%z6^C@T^A4)-s_;>`?pmHUNE#Mg>;30yUmT_JWY87|Zg9dBxw2qgU?G7mc zo}vE(c$i@3D!{WaCmB3<`Q_ScyF`8GhDzU1T${%j1cgEV8#uekq&tBGo@g2 zZd-q@SYPO8+}58b)(8EJ+xqhz>yOsfU!bi&Cdv9cy-YtdR$G7J^{u~4tUpeyU!bkO zs4VL*{srqV5$h8T%|x;O1hM{jv3{XgzsPO<-6XcSj-_IKVxuV*>rc|wUv^#VFE3&J z6=ePY=a`l0Xx@P9c)4k^>!_q%M-m;4<2oEVnw8NC44xLKp|iIWgJ-e>o+$(#p`+Pj zgQuqk&t9)ZM*|vm0na{f=2QYtAMYP*@T?N>*mN{{y1QDy13DTvc-A=JnWn+BR)c4H z5_tA|nT}?L2G6?dgXd=f&rAW&EDfIZZt$eK*6TN12RzR}Ya647sP7Xk&D=N{!kiQT z3k9>|RVkPkuYthw83#ySLCvOUcPdBhH1h>D3p8prM_VAVET6HZ1ZuV-28&-pJmO-_ zcKHfsr}-DaQnz_BSf18kNn)pQz~ZpeY_kR_6H&t$?+6CVLI*612rR-*bI=CML=Bch zUd>J;U^(o~Tufk@j%+Gp|vZ3T4<$wz_vTS+~G5_D$F_YD-z?;S4 zEd@OE){)6-ZpK?tESwyQzH}1}K~^IDc{Q7%vC)CXrZ|z+&?bz!#|avROjgtPC2Qg2 zgx4ag!O>O%jg$CNWOJOzY948WgPFF(nXHDdx5t^R<{66L5!Ylj^a}7WtKTB42|2?N ziKgY#tr{j0$*b$z9GLWl_@^)^1X<0#cmaOYrf=MiM1PA9JczGmf1EyX!|uOI{EeF& zY;@WSY8q^XFYP-IPZpiKbcU*|IE_z5I_sqam-fc_Lj^gl>6}+MY3RG7^Iqbl*%{|A zqdi&6FtE5l$taybO&7h)NkbBMu0U5?JRFn6nsq$x?DQoz>hp zHd}I6G%v^b)aEPk5r{Xh#_7~%*@D_6HiR+}CrwTYFB#NNap2rE)&+?S=LRXfWZ;5x zGiVI&DNE&~S^6B#zsePTS*I^Fj|u(E2}IBK{eiX9Fh%C~S&IW zCDYH)zL^%WcSv5LpK;c7B$jZ7m(kW%XW9nXGDaWGA~(^`l-!D&%3E>q=Cu{tQU?7@ z>zL5b49z3@nfF=lCYIc}s&NX@&%BLT=}*h7{)8qp_A&iTQ{A2>R(ovv8EQ|PSXGix z=x3bvNUXHSrk|lrscmDl_Ke)bt-_m9o2Brk)KuP-Dx@k+eM~lJi!De2uNBHj?)>h*_vIk+KPO;B~i>1p8qvm&XbjnrR_@DIU!NV;0#;`NGXf0Pwn{kTzkPp3M#wn;js2r56pdRNNLTJgiq9XX)JBSrAGb0Fk#Sv8Mx4ZK z@Yx)wrtnUW=d_i|`Yu#`5EbgAAyUt#w^*YratnZFOz0hBI27@ym61VHsGfyIUv)=y zQdjztxaDv5cs{fezDHQEx?y~ggNEa|Wqk1m(m-dmw;U;{4YD=@%tE)QR)}w;svEfc zmSd+X?tPxx*lV0KQS z9#O2iq}+~hp^~Ix)ivb-{Kmh!t$dk1Q{E4y$J7F#BC}V@KSJqoxz11dAe5dW*S%9d z45gQo>pm&fL+Llmb>Ea4q4adQ9+pxwlwN_aTR{`)QS}%^&wdVf>Jg(ajS%y!*)4_o zT=r-9)058b@PzmJ|7vzmq285M8Gl;)!hzroW{(u=i1?TNUxdA4CN9$xDggq(bBg+% zC%Xgw=EvTqgd0_PPN070$sUBiy(J;dN}%57$u7p0u=klD&jKz4iz)|rBFvR`=?YwkbM$aBr)77jH8EB zsJog2Qw&Oc4u1y3?nag22H`NoZl@x?Y)Szg1e^O){ zUwTFL8*?x#F^iPg*2fAQq7|4c3LNSv@LNADB@4`0SQ7P1S&EYA{C>W8FN5ROH zZU{Wt{qc8jY$fiOjx*5B(J2!sbxg_(PF;e(Lt>36^~gbsMsdT`mj>w#1wKA zjKp@n@WfEqEEEB=pGExW7`=!O7lt0e&2khu5R3`&cT6lH31rY5)d*3asdw8V$gbif zhi(PCDkYPDLGq^vYH!Bsij+3KiX(Cle%DbK@He~2NebMjQjj*6VteS=bQMADC`8D= z*=iuF92@%pKdCjeLv9=%w(isRic~@DFx;2Qc)dHF$UK<6PLbnviplGoAg_}-l{~|f z(z~aTXLw4kr;}%RTCQi1XLv!bXOd_5gIv!d&+wvL&nD0CC%$IS@PzgZ<74kah3QYg zGfdKenGpLEVi_=#HDKBcV5T^LA{9X7#L~D3W6?lEe)m#fMNn~)T z>eoU`5=(`aBwY(FEA|>_vDcawyOV?~%WF-KJweIjwdN;ztR)&rkSx@>E~PUOp8;<1(-|3K`nJTs97;uBTauBnUjm;4c_#WKYYK=;XWmK-wf_D?a*V=+-liYJ- zTSZXq%x`?$H!_adxG_jC)hxq z;N)BI1WVvAN2`xQ>4OzfhGlL^`8bsRsdVnGDW8PWGv#_)O07_OmR#>h`81UNg`?l@<@)CoGnD=xxjv9mJCy!kxjvLqCzRem zt`Dbt9!hU0*GE#m2&FfY>vJh}L+LH~nw?E8?Q9mu-XPo8g0tDE&AKFpFL}h-Y|>`! zE@s{An3bH(QhD}$2Jmc8VP`X2(I{kDtQy&<88OtM-!$e}A;Xt1RbsZH zp~gxXYW$1RX@s##@_(al;io*#_W2(DWw-7xJ*B_w(em{Y`SvEsw>tJM$?*f^JLr~g zO{_A-|76RzHdcjx=h*VCi+x1D8{6`&kG)2}o7wVhi2aRzH&?eXU&6-NO{B+GDqtQ> zp^ui#V=3~{((x4jXes*+0BTdLk{7vJ!zZ3dAq<))Qyxc2N(}!H516M?evJt8 zbjrgB=*c`hNeYmi8ia$9T|-8kQpa(nDE`q>wEYnb5CSEGa;eeH;Kq||;$ zZIWQ;);J-Uelh42mdjS^8zWpjL=#_f7~zjXcLKL9RV($a5zgj#n(WoZ zbh!~_9V2t(LY0LnWK-P5t{$S_Z+vGEWn3>;G|dphw}^04)D#q=nRfZ0-0*uNd>db4 z>gl`L<5_Q&iGM|OZ$SJNkh z^`T8dMo8rE4vK%7s_w!lhR0J`YhcWQzVxXo)ohy}%bFb%Cn?BHTtSdk4(%S~3%3si z%)A8I&g_(^L_xd6?-3NM&WS&A*e&rk!t7$Wh(kQkh3y`~$0m!(iL_6wK~VcIPU2fn z#E|v@rFBSriU4kh-RRJ71`ZWcZjc8^+;65b@o{NIm&Jpn4zW9LdubS0Dq71s3mNM5@yfDF+^Y? z@*;xlrA}ffsBSWQCCKW63RR}93jqH078S72+f}8O-dz+IKNYD)6gVWqFq!=*N zaaMk~HrkP&AXMNWo?8%r78rj|#OhN!>Y(w|4#I`mJMlE9zl^^pc_OoHa6=GcVEDx#EAF)U$w!r#J#<2V(+c=mo;M%^<&sM0qfV|02- zo{4>o9O*OEqh`MZ55^fK!+eNJHTw%nh6+jsYLpBYlnfA*3=@)?A2l$6`hZrmrYrStzk32fB{}!q* z5mhHSswbj;vZ4a0r;(Z(4A1oO%4wlGff032E0q@dDAnd=#Bs23ycL2pbC6@6+Q}Yu zGCV4+_)S(*5;fD$zJLKY4=G0b(wAUJF;x#K#>kLjnjTV&l_AA+dq|O085NJCf-mBQ zb46;5hi4=W;|EB)OKFN*ofm*+BzVbZp=uQWbC{le-x%qu6}5sZDe&Rf)8@O(~d zbCHaO7RxYbwrY=@P2&WN^erkqn|?Nn^T=w4O8+eWqi68woE*>K@%WQJfTW_?QuFvW zAK9+{a2#i#PP6TnShnM*VT(8~3>-ie>H~QilAmiCr#HIkM^qZ3Wzm7=h^^w4DEcTz zlSN<{S%jl0MeF#xlzNO)c>!a#dU>hG(?;}mT-^kT+Q#Priz*{+gz}tI>8}vFms%3# zs%41*!SqWB#Ikg`@lUA63;052x%I53IZdA2=n?}%FQBxG|CMrIQg`4vF`Zv%c(N{S z#7M}Oeg(@|s)`qDW{cEMaauZKh_#QmrXn8f4PBjJh^&%Wo}7eRqb}ZRp!T})WM9P_7(Tl-Db?SHAhiCf2Q++ogMy4R#6?+JzDtd_^OuFKSx+~7|rQhj&(cGrH z;%w=P+jUo*BVBQa-4)q^%=M+;<$c)P$qqyoaeKzUr*_|ktw_6ElbT-fZz%e1MDLc_ zj3=voZ;xl5Fa06!4d$N22>h6)YT)mD-`fww%)N;mjtRkr3w&?i88i1K?#4C#EmZmO zTfH)rPp`!4;a3p7;{j4fCGT_Qer^iCg6I=Ji!!vNgU6RMPg^L>`Pps`qq}c>3$ms^ z3UnS4bRH0N9<cvIuW6^qZU7H`snF^qZFo{r>Fz zi1h14a&f$mANoDutz@=KrTWbFsW&6Y-itd+V%lR^@#>IDqL>|1&mpKy+L;u;9ok77 z`+(U=w9{E@XR_8#7tu~vOFP|M+L;o+-PTTb){faDRkYL7(T*r*>NU!lpsK0V`#he+ zcu_zKL*yBha0^a}{3@G5@E+`Ms}?U}0#W3qvy<3=I-34c1zkrL{Cfv^3Px(lD2n zW@`)$PsY%QYqT`y8Z8y6x$z7<6ja9Z6R`2of3+TIVk9*2$la=Bd%R!F=5QZSS|V zre&QL%zGH&mlwp_a(|zVTz7fXUL!HaK#ac*rQ!crh;e|V$W`M=j05b73sPGeU50@;_1gCOT>^MEmmmRHjxDwJ(p=oRy8tOMKn3QTQxLP({ z9IpdylrLYJO(m_QO_#7uiF2l^_eb(g{ycmSOwZb-7PPt);=NCxRt~j!3fg?Q|Le{pu2`UsFQ$Yen_5uTlLk6+AL`$+q|j_)pu0o z03{qlgTIC9!MwZ+imKcdN%jgI^`v%(eQPY^qsDt;Z;wH`VZl zf;I6wQM&vSm_e%#d3`)dEu2I1Ql6XQ?!EX)4b(m!8mtMHY=7H~Pwd&#!E!^TxM29=cZ@58bMchwp@;$QW-!7_#eR z%NS5=D+Sj*j$JpsPiSS7pXmMZ-?%IA`qh7MESr^gH$qyozvF3DIE0F|Htu+aF9B~V zFh{j9W+FV}DgXoTjlUTn1DBhEpmb`Et>Z$E&Vb zqmw7zmXylq#Isbd8#Bvq@?qPlOhUG#&}5eQ*KQ>XTG>v{~m``n2tAa67=kI>Vq zW32R<+<&L#eJ)OoN+;#^Nz2>G=vc+SX#>8C?EH#i>|mFcKb!kGJj%!C?xn|s+^_LK zOFc^uHloX<)QzI_E0vwj6 zHQFv`PfFyd_!O7aVp`gK;iNSTyl+5m#nNV_@};u{hLzH(xeuk~9cMqMY`(u9r*=;2 z)8K^gYh2CyDKujQ|{h~eTuy@;1pSR%M?ZazH@Gnp+bZteu^n(8BQ9syE#)ufUI7mwwd>$0 ze<8OWJ)Y0~FY;FIxf2ikiN^Ic%gf@JUU{e;TQx0GBqt5L?b=Wuh*<@E4#DRyVv^Mp z-6Yg3WyI6i@&#E6N=%MFBGk54>4~IZETHs)m4N6$DfUqjn~oiOs`rK={&EqYdREL}Fa=8wC+<`|oLvlAD1Ux%5%%WL3d*;sEo!@HQB~Wq$^V(DF&)W>Tc6VJ(K%^RFvkXa5~f<YKa^izgYj>1=s<9I zDGdap6`FqF*c%!&TKQji%~y_RUyDIX`Sb4(V}f#2^cy?$fng^N412nQ-k%PFZ?f-( zO6E;eZZ6-ILur(Mk#hwe{#7Gwwr{h0BaNJYVrB4U&USc|@6OqS2c6^(XGh?&`7a#> z+uiINP~|yZ(Cx{&2_EHpb2{R&K=~@?7kEmlli5EZsv=PBlT`avsskpf?<7?*s18c1 zLn_r_6V<6~tjBFRC7?PYsg9~t$4peGB`+VSzLr$SRjO}HRA;h(O1w%z^{u2jp;Dcc zRJN+mSm}2;HEDS-sdgwi!L+<-(tSFoHZ5^ ztFk_)X5i>#*t};ukb%4@pgNypdk*6JAtxP=1xi16E}k|&QJu@qBC4sN>hBg*1Kg78 zVU_AS(4NoEB&r1{%s_W1c$5!v{}PV{$|LUo##83&hwL<>dK*-O-J-&VxMhV6b;}AP zUj3Yc>K#x$DtSGo@*1Y{`a7ulOR9H4^|(6#kMbwnb$BdLo^<~kPn&-Peg`<|EvdYP zpc?L;0*~?$?iqM2P@ZzXj;GE4A$}irUZ#NRJy4Bwe+rNCQSM!O=s+2|2%)28=omHh zzn+1?zOxm@U5wDNZeh9dv|C!PjB`uN6{31XQoRqVXC&2lm1=@Ybq?tbmQ+hX^{m^8 zexiJ$yEPsQlu7P3c-s6#HAGS^1=VCp^_)sI#Y8pKnL+tl2CAu&>Uovw1(k|A-bbBi zr?$KgFb%{0x$Jjopg^CQs_1w^AAA>|saW{i1uJBX6D5yqDbj9eL}8TkPWv zbBa0II&ATSov{u5xb$By{iV4xS(iNF#FWLBw*gbPY3|wZD4*_rlO8X-7vq6(8NW|D zhZE5z5Y2E41C^O>G0nrIW4QAU%F}Gh({h=oS13;_WS(e59PSkJz~y+$aF$zc_R$n> zgtH5AT_Lk%Oaq^Ct|b4JNNtXrhL7@B-C`Q}np;c*=ep(OOpIG2ogImIvk+ewLwuv8 z_&$gD(CLdw!%Ahe^VgKuHz=<=WnSN;yzVmOH`@6t;>1+!p9^8|Umud3lHO@~O zyls-(GtREWb&Jf4A-D0)`Q*P9sV$Updrt~%kt#3@DZk<$V*1kiLt{FN$!G)6F-nIi zG?F|l+`qvLWu9^;d`7CIv+)!MF#jS49l(%7jXYZE25b7U$|87;QSO9$w6Xy1u}Tl& zUJds=#R2yhaM3;m4O;`18L9TI>~(kzRA#2yw=s${P?=>oXOr^-;rmLeeLEvY1C=?3 z^Hp+gfG>u>2~K_`4S&B~4vSFxOPDjhp)7XGDQD?2cYRvk3j0?med&kphP1rZ_F~!x zU+%`FZjJqYP!Ci7FD-Amo#uLF_kiW+4A>>*@4HD{!eDF%%e#YPRV`{dV54>tu!&|O zZPT80o}wD~AKt=NMvA|a<*mg2@=~?(Xwfmzxr<0v*)cb|hm;%BsnkiN-k6kU@@0y1kX8330-HW727oVCdEo+iqntTP3a0Z z=EfWCVs1>$Zi-Z&jrJ~rSn3ZYHr3ggxNNllx4}iQe_l4!PwZD40ZSE%@`4k4Pf$hs z)#5niMdy=*eu6`Ul~M!O$d+#e9#Iv@}sU~sQ9Q=)h<@L&iz1I z-cfteG(@IMzbwo7wf*Ms;>>Wmi0yIv&HhipXQs0?63jbhzp{M2n>4q4gZltIHoH&Y zfrY&ds#dP?o04MXMGi6AG_P)AFB1uhT37xg>-t|I}z3Ux>DWvtJrSEZWBF&TlF2 z)HdcTZ#oxnV)PvtWw4c^scuo5YROh=l6Hlfq^PgAVNL3V7h4`#L<(+Sl4_yIEdK#IuiRDbKL) zk!RQxae-XXUBX&uG0>Ct;#<&{ytdlZlfs^`6?JPbI2`?zhu}m9xDfj!(|)ki+CIIm_6oj+QhPdDq#J zi2ebhFC@`!N%W**MpLJ+7>aUr`5w0z_RGi^dmlrIt||Y@ErxEP zDEnF7^(>=&znc`L{D529JWxj7bCT&@-c3*x`-tl)5wt|tBElC*Y{FhE0v|r%V^*@ zOP%rWM6RTT`!eUxDdRoaZ$zbj;Kb$?p+7D^FDvStY3}o(6H9tqUN40Hpig?1J3AoJ z(tfmE^BWWA<<376@o(6#@DR*bIG2&n-|(5|!;<+CmHFE!;Y#P_6nYQKDnII83=gcb z|FnwwHgRqEUts!$O#rPw!!AHStz$c;ZU5KQc22(<%)Uuf z6nnAqRBoO_p|h3Jk+gL-L2R9sj>_$qmN!|rmnfsLh4?1>E24@mwU3=ok-#R|pWeV0V$U|K9x_4Zw>p1^2BG}< zMMPN0?h~0Gt7U#n?)Q$oRE2V|Sa~`(4E9!oH(LRofo9qHRs#p6n5q>Du?+`57DNhR-Uh& zlQO70^D7IWDIrt+})O<=j1!Q8IA^ z@{My0oOwUuKZeSSBM_lG$64Oxv;}x?BdtIx&bLlX{A_twa2G1-xT&H}=;E8JoOB*T z8(02(-6q(30?KFPW`B&mDtgcJJLh3AX#EeSl+Vo7-}C%NzUMhBSDX?qRp>>}Q(_;P zUi1{Ncb;}a2=v}(`sRptJ7pNXez!T|#ZDP!`SzU*N(p&efM^ojS5KhO;)6~Ey@|^IU$0d!5cJP(ufA<-KaLA@RL}+cRm9em7y-6 zvxb0PF$8o%3TTd5K<7dQbUuoJWSF&pWSFIZWKg((R9{O0oeUKa>_2{R{$5C;{bp<} z2qC(IIyadoT4z z=obcoEycHUCt*TXPvYyW@vhLO_Wb=*#hI2(a$KY=2?p8Gi-{(9g8TzwG+K2)8= zrHtz2J0^TsFmIAxBM-ZDm3_mgkyElp-Za<9Ko{n0;@xDSvV&ZWtE>#Ot`Qk#StBwi zyhc=C%NjW?YlKQ9l@>1{e1Z)&R~uwi6qX13DU&+DPZjJUAy^WWCRm7auOlvEj}4$DLxq#E}?1C7+rf9d)uTmE99prn4fg05FaxxN=-{kaq?>F8+JBq`Q+4P71Mde{)F zuB&4#h24+K&cH0}v4*f08p7_+#XSY@nT7pysIbRH5w;Ao7Pbtt6t)Zs7q;qaDeM7U z3^y!H*w0uC8_GJ~wS`d+`d@~!PH?T0Qe9*y>$9%cbgAB>E9=9m{2nwZ>qM8L4tnK_ z4fzd}@_XMbzez4KJJ6MNauoT=Fl+hAFiZK#pm6!AzLxSEq{G< ziffM$UpGT3r@FRF@hvfw@_E-HLwveYK5r@1M=XT;f+5tUhENAfp)NBE^~F%3z7$2M zGR#`2GR#t_GALZAs;{L`hgb`Bnzc}=3-~8nlG*|jfdQ~0r7nQ1Nlk-)Tg(gQD$`vr zL#WE1XCQF(4vbhIm9|Zogt33()pEUS;h>IBfhjQV=9!fI?{~4}>)DO{o^+Q9n zk4n)lH;Z;=XnUU(Wo(jR)}obRmZFtG;i6T2Ek*m7Dq57ttgo|OKc+%a@%cl?Y{uaK zPqtJDmIS2<7NUH`HD8GGB)luWfGAhwK8S~(#5%{-%Mhh5;5n889%donR}BHLGz9#( z6!0pufL{w0@Z2Z@mSNTcmSL6xmOQ18+8^GQ{F51RCIp3(Hz7~&f)#rKg}eDgz_{(>k?UxrzW zPlj2FPX>jHPxZAF-w3VghwA6svgr%`d{Ea<+47eO1ts;<6?DDwj%$<<>#b6(q@(Y; z9+P5SYv}4iSCt`FT~`-c3i~MwVZUbxdz~Tdky6;}&B9(3D(uBkge}9Yg)PG@g)M`^ zg{}Hp3VW2bu-~^9Hc8vdK1|KVmdF7ZtCO_JXx-G${sdj{TxE&c&$igD*gEb(=ddC7 zc0BysK)h6T176Y35*N|Wj^^O3^kxs`82#)rqZ`<0h<1z=?IyEmKM3sxK8(^0$S`Zs z$}mgO%Aj!3s=k(@9jkQ%IU)V*a@o&PVfjP2F-BixdD(IySQ3;bScr0k+Ry$2-XDJj zQGT4e8xKE;b*1cQr6_d)ue22K(-s0=We9k)A>eURz@L}}ygF3CYoZ8PhFJ?(hFJ<& z289b)^|ci6Gu8tBNcOW~0!BZ(R_$khnFdu`p^yOAY5nY{hJLP>OKR=dDUx@EP zT|Z^ZUm+Bf)K6E?^~z?opZ%2-E9vMbT0gtZ(A7_6KP$zm>*}YL!k%a$>@9|{w;RHq zB!&H%S=d`cg}p6`uw|IFuw|H~uw_uVuvK46VNbRe_I7JwL)v+7Iaa0C-~gs4UWFlP z(uMO@@2&kh&P6Qwr~ z;*xf){{i7@ksvY95=0U^U7bV{pTqnA4j_pgxsT%Er{s3IHfy|;UV6g2tP}piGGVmK zFJ0K~z@+@PG~{80LX3C2wh&`m`A(xedtAae2IVQ=l`G1#RH0p~y)JR&4}aRL0*f`G z7?er980(d|EubT6x7S4 zCXCwqTCKg?)AHt__K5Lut@id9<@rX|9uh0xn=8sAYwufGd+=A~wq6v2GN~71y>ddW zy*p$gRFacg?R{mG=sQ_^qD1%TCHhX*p7b?Dc}mtEdGiN#QPPQji>Y|QOgZOTfl7z{ zI}*Dy?GpICp&Y7w(c=a{ofOf7g=S-G#gJCFK62aQ`Ha++N|n`%-dO2={=? z$=z4DU%8UpgM@ox8*+~j?su*x_p`!%;99a_xceo_^DFHsw^RO0{N6@+UMy%nyr1aT z2=_I$V;(7D)HrAma7ZG)^e+xIuy zY$>)hyu}9_&omSWFa_`m;2ppUz-GXgfMbAjfDG(-wgy}a$OqgCxC`(XfDcducnB~I z@C;xU;BCMPz$bt`fNuZ_cJ^srbOqohKv%$T0DlA&1MUYr1b7@U9xxs77GN1*BVZTc zC?FN@d$a;v1IP#b67V~~KLM412LX=)o(8-Kcpb1BuobWma1y}LGqna>2j~E}4e$rR zy@2}weF1|3qXAO^uL9l!tO0BT><4@YNXf=4w1BGsw*YN&pRjL4c8f=KypCI^8d} z4)8hP5a0|TEf?hhTo333=nl9CP!8w=cnmNO@Dkt+z!JcEzz)D+KuQbLG2l8t2f%HB zKLG9plmq$z9s!I3OaaURECj3uYz6EC`~b*qX|r7hxB<`^PzdM+@B*p;{{lP)m*bO)iz}&;;1Y8cd5zqy2C*W>C5uh6IZ@@6XGk|G;Hvvll8vr{2 zM*wF589xF$z)gUzfZqWA2q*^J4;Tn|3NRTk8}JTbCEzo_LBMH1Dkg2M0M`II0qy|w z1pE_F33w3jB;Z-V48VNAhk%a(`v4~a{4(6e0%!xc8E_lm4}g0C_W}9>1_Pb}Oar_L zSPIwx*a`Rspj?hV4sZqFCO}ufZvlS;^aj)e1_GV}ya1RBSPWPT_zZ9ma2}8ayQ@n9 z*8@5M?g0E5-~$8!{Q*w`o&~%Dco(n^@HyZR;0z$`O4KvpT0l3z-GBh#0l-s$Nq|{^ zw*kumn*qB4#{o8Mb~*u<18xL#0o)0=8&C$Q13U~E19%?r8ekb2v`l+3OEd~VZz`9Tn@Mq&;@WO;BG(>;Ay}Nz(T-g zzL;19Sk~2KWP@2v7%j7%&_#74RzHJ-`OQ0l+DM<2swICE#j6 zJHV}g-va&y=nbd`3-s5WpC~^MJPi%K#ezdja19?AId?fNKEx zfI9#^0sjO90sR3_0;T}w02Tt)19kuo1C*=zKsJl-T*uy2Lf%a| znW7?p;0KlQ4nD*2sl$dB**B-mb?`SGV?p*OzQF!CQroe_|uF2y2vzE97w#@adix0}d zNUcm%__OwtcF18U7|&4nZ2LgQN3pRIdzOvQ=I`g60Oh<8%4H#xz@BAOv-!##jPA;Y z5Xv1P*r5>YbO`o{-JF+^A=u;)Y*q-iAOu@x=a1PB+4)&J%qtXNJJSbc@TW5{XH-76 z^Lh4toUczglVVf0+WEWoiHy%?ucEZTzD`-?;44yBI{BB*Wv%#@%fGwa@P92ABQ8-5 z%YH4JFUkHeTVUT%mA~$M%V|@-vhx}CZJfW6vIE?ag|YTic0PnX2JXPVW1BfY!ry4k z2jq>*GrWek9N1c5vof}3@Piqrkx`IO&0LeoKhNBS3IsMIXIl>hp=zbpU>daGG;<((Xd5~Z%cX4!Ph#rqk91MRQlp9 z{%sa!%7m@WJeA2G$r_3htzrDVl*tZ0$1x9-z)q!2%;ak_k0ERek{Ql zG!*4qg%7k326mY7XZU%}pGX;j+W(&Mar_+TkEaX=_88}lnG&zGv;R**qNMX-F$|7joYTI=6sW~(ak62&dcSya=%7C;5Ed) z&yHUB5ikZejHv_y`!w~HERa7hDQBd=ooQgRou4}SUgvq_cnjrtLQB50WxrN@R;z`` zF}zGU1~!tZ1R`u5<#=by!^knho}(P=*!MXT-F&9|Bjori%JBv_pP2hrF5j7Z4EcbU zDaXKuF_l1si5ySNohm6sj&*F7^AjiE<2;8Pe@l!*D-T|S?dUYVvs0%I>@lPAh&=TT zt@40PPhX@}9xzko^-qal3@;O7U?#>yZZHOBVhqg0_=!ly@G>z5W@1d_24i3*#=uOB z$44@Tmx(bj6JsJb7y~mg24-SBErqXEo_F&@(0D#8_gz#8ynax2*wNt5QO}aXA7(0n zz}BSB$O8G-sCk4?T79BoSnuE zU?Z4HAh2zz^RhrbSW-?)$2YHaOclj$FkTxeV|bZl49p~BA~$3V%p_xACK+!};eD50 z#b3Pot*iO#*KYWUO@Yr$Ww@PBwoiqKfxXAqw&tJbf$H^ZcV8>K&QjmI*ZE2gUzal$ zO%PNnwxWf=R<$_Qf)8yuLWV8Q-0S3XbJpeXXD>f>r63SqI`%~B=c#;bORQOmRVX$y zZ7~MUyk{_WQ`Vwl-(-Mt5#~>zJdrUalh4gWkMsUzM=#^&E*k|7`%`%Ea3-IT^-4BB zk^KlH3!f><01S}!$tW(c7wsy6z~=BnseEbrVGP>{J0h`Z5}T2^C6j-Zc@WswDg2=? z)A<(}$1!l7PT`*`7<0$5DX4N_M-A*;3g2Qs#rP0D3_rDAH(MM>K#2*$p_CO4zS=Pp)8k}g5 zS@2$Me+Pphdm8LMaG>S9!1!GD2D11iFnfOof5P!D7yuicvL4kSutN@v`4#~tRW_@GpN#{MumYCZ-j02|EA*!cAKui}TVJ$tPPJCZddoA1v4&dndqoe1Rz zd2C+qyT771V`ZEtvp>n^gYv$(RB#Bz4qdwWO1}Hbub^qbLek9{-s0grQ z&Pgsl$2Avo_<4wI%-WZwnrH36Otbb4A(T5pD1n(~?ND12&(k5;BWdQaks;XR5NuWm zwjc!iFa+Bag6&A-LoxY-LQp>q?CtcO>HK*5iFC}Y(&VgtUCL?bAIvwtf-{_^=~x0?SccYnwd*x{_P*?d~|Ow3?`y_vl&o1e@+4eVT+ zoVCB6@;SHrIe<5ocCZ?0q&9io3v-#Iqd_eXf6cE^s zjFFlA`Aq7DfUU?fhaG4+t`&c|)hv`|b~-;vYotAxpxKo9>E>zpl63Pl9N2g^*2UN5 z?nS$zu#Dvye09b;NFf@wKAo>hneE^U(HYqkVExnI%;I~po<+wBY)R(cO#W>qw&0b| z(#_LwV5ie|Wb!AnmZ3!Z)6LWHZ_>@v@N?R4$L$SpOayp zhKFK{GcXN5oWtk4F%A6QjeTYXUIXpB?fhH&c?ga$rVp0+g$GT&&*u|(%$ASk z@ORuF(?aSAM26QO`yM+#AvO#MV=93Ndo%S&Cdl6hV}y-KpJ&3>q6guFog*NM5s{4H zWnxU2!5El{F)$NjU?#>`e1_*3UM9wb8H|CM7y~mg24-SBBa$(^OpFOL7y~mg24-Rm z%)}THTBYpH;jdv0$WOW-fsEmGR@rXnhp>qyuv2!GKwz(??#~4Ie8?D-Bhu%Zu__bUyjYw8dyJ_Bf_!P}*-VhH1Y?9fpZE^nf!R>!&yjc_!WHe6^pMBRPp;imkAc1V(>;9 zFJ`VHu0Le*PcQFBT<3!8sZ1VRp2b&V@D_+V51)YYBItwkL+SiX`Z>%P`e&JD*F&?+ zvuj|c+4bXD=Giqc)9f0UX?8s_%RIXVW}00CGtI8YW$}5+%Zx8&A7X3=b|U4KoA@U; zEx1`=Lmbbh@*!#CFvUq*lP0`YUGh~PKc6=Wo5LUv$Ck9_GxOfe;~Vn6!ZsQR=3X=H zTE64jgP3mu+jrBhw*2e1C)(QZ4NSgN`P9xAvXu-Im$OJ7Uf;VO&E-$#jz%>Ddn6|m z8|mg#-LFE85jMKzXRY{mttMerWq}QA#n-pm){6hoYM3NAa`hM2@Nw6^fPAdN?y|if z$AtDEc1u#8!AuHXYu%&qc5TarNEz7nFl=8gU)y3^3;sh3${Gk>{OR`V`S;hKzn(vG z!}uE-_ZodYUw!>{s667ln?IyIAKQLcdx5>sac=?d-|6X2me|As{&B(H0*pfta>@^B zn7SQw^MS3`gB)J_BE5#B&Q9g;q%OlE2L!{hHOq%*E~Xhs7N2p&v3x$eYun=#3r&*o(hn+v_DzK?{to&SJ@!vM+_d>{x_}RAXL4 zIp4s);9;brG1En9Uv}_Cj#!BJ~L+#<_^S~W{*cR&!daW zTGlw(_N))G`MT@_*?feP=5vT?;Wf(jrHdbR&CKD8a$pufRL64O%jM^C2e;rWpbw3E z?Qrukxl_VP-^)Fh%Llhu(SmPlu^+LY%;sP6QCOs>yZ|i(wlVc=Dt|QXDYUiG+5C>a ze1tMu5$+e1DL>|$e|!MvFbL_FHn=6QJrWy4J=*H5Em?d__FU9B2)1Xx=i*yk{d4%o zIXiOr1kr4w`eVOxhU;Ay-{(5u3X9Y~=i?l{BWHq}zv_m01Mxqe@*%3EB`sJqY^^mm zz4gRAzBlh!9v|={>NP4h&-N zqEj%i39(=}msxM$MuRuaZr6vfGB9G*Bo@kQQ#PNZ?4rHk@9kJ)eZg(G-Iz~H*^t6l zWo^W=W;^QZtu($eZ3D^xYxzR;0x?zjaFZ!dIB!QRD*^nO@)9L`49{w(9K zup!XuNZ-Ir~;lD~EB@*8o?;N(x+H!^H=V0OFS`K6ODcCE+S4F1dc8ruDs z0hIyvDVxDT^C+?a?3r7pcH*--4eVya1wdG5O|tXlIG?cL79YNvVQ=OUJ``Ce%y9xc zBdL#~zj)ip-?X1&d}hiDXgRQ%DRWY=7cv-G1J<9f#U_8w1{t;%+RFFl9FW)`OoaHf z+*!H&9w2q_czVL5c9Q@4{|)=;1jU#WW%)te7y36olmq+2P0r-?86v;l6?eS zI1>^E%oNt&1u-tQ^AGKZIX}kdKTve2-%~>Ka~K z_-85naLNg!1#FE&51SH64lffqFcbN77ZyG^VS3p966Y`T{m3o6-mv3LY#v(zu>u>( z^{`hW$>C)p2WBFF!^NLQ!R!!^=bt%tXF6GBfZpWd@ijGn*sH;bkHRW{@-6y-fK#v-eA7DGLvbGv_8d%Q>&G+*dhkxh9QWIzEM6F_E)22)}xbgZ*S&3cF!T z3i}!GTh1t~-J=eczdnVve=mpqe7>Fi*KRxOhUYKV+u5zz?3XvQUtPy;yN><(3U>Py z?2Zvm_CIadU10wEHtY`rv)SEk*dO0WWq*2;v%hAuzg4n(=Gd9%0p?v~XC+gzn1Azi z>|Y16*cvx&-wE!cE8W+*SWW^ckVk9?NEu}pcbHCqSA z2J-m~jveGU0LLM6drl{JV8I> z>1SHX%9iYnl(j9{`zbqHvbE&5J>|qt*#4AJIqd6{qgm{9%CQu7E@gTKd)V=O1{>;l z!NrC-W;xh!M>d*OB^&8@h>dX|gX0_zuZPLcV$RBdV$R8cV!oXLiM*QuVZ28_i!(;IWFKW5x`b`dfY$BLc(^tDE@MSY zHZb$)mTUz5Or)O~^fNE>v6gIE=D?P0L*~SmYzO%r%3ORsJC(W1#rkJKF^6VBF(1!@ zVvfv$VvfsNa5H;7>+nr%Ro3}C8NPa3#qgoVD;U1`m&)*wy-YSbyI&iIuWDV!Ud!H- z#pY*!oWb5B*9Y03aE8yiWHWsGB$a(cC_crJ$~I+h%wqTgLjl{H{ZR%xoc*PP;Tmst zJp1{7unEqA-Pl~`kPP;QGr(}gVLHS8dj;$x=POwZH*mFJo17nJv8_&Ym)o5O+A>_j z)QaJ1BgSyK4`V+#Ke97iFq6V?H42L2I-0_82Sp0Ql?kZ~FaD=8yn&v=UUAJ&VR-E~ zmEk4TRED=DQyAX!OJR6LEtTPgs#NxwYr387biHY3cs+(OyuQNNLGn97et7AEF}xJP z7`~&)zIVNj-a8UvmC2&y!7bS2}0v9E4Q34kwa8UvmC2&y! z7bS2}0v9E4Q34kwa8UvmC2&y!7bS2}0v9E4Q34kwa8UvmC2&y!7bS2}0v9E4Q3C&e zN#Kt~b(OVsZHfcl%Ca`~zM7!FsmGQ(k7uxN zMbKM$OTb@L+^5eifk1tQr@E%9+*e$y`2}l=Z}C?JZ}wLPYrU1Ves3*U25&B|u8x6W zQJp_f;;HreD{F1R+7g?`lWzkvPmwq1v(;4w{biNDk~S3TtAUrtSMP({Ur|)2xr?i+ z`<7PJsv$DG$X8}7uB);6DoboZpYOgBe~qoUs>D}ZUn@CR-Dj)z)*!C|@U5w;u~k+T zS5?;AYJ9=E0Qe(~5?^IiO@+r_S>mhp)l~Q^y|q5g(_0jzY^WsFh(%~=pvqh8Q9XmT zeFHvQO;ufGNf;05S6kKKtts(5;H#-pscNe{l|Cc`(CvjAo~1#^7ho$ zc>T4(?!|?jyg{mg!k)!F?<%%QM8x#e_O13c9kK&5r#;H12Rzbz9N(=o^RpBBfZK4|T+e4>hjiR~` z)r>ZtR(?L{H137P6idURMe^ORlNI{?sC*r5JXQxPQoRkos#*!n>qdFL)#kZdV0czT zQ>&1geU?wN*8e zcbi+$7*ro4cU^Tq=zbR!@fB8Rw5AFVA7kLVaQREw%5Z1db^r0WUxuBxf^ zRCt5;ss2V@@;j+4s`U2w`(B=qWD8AsB=xPZRac>+d^JX*QbA<%4{forun#F0r9fp1 z&sMi+LiTv5|4~cmsqvtq&>eV+z18Ft`NFfrTk91;)K|gV==ezy;1lR$L$8G{Uv@j5 z+j{oA?XR9*-TzkTx%;m@3O#}u$r7|g-%wRk5+t{`fqs3^pS$w`?QNd!C4Hbw-pXI2 zUaM>S{+h-a5A})Q4hQuv=z@d35>K_)U*quwd=>C6@s)ZpFhHaIXmno6rHo>DXnkn= z_SRgwqx$mOV_fqWdxB8i%Chdo5euNKWlJTYdK z`f7ZY#X>vpk{$VfFcTOzgSC*co(W4CnzY0$0?``H?bI~>$d+mj)KyPw#MHP^yKURF zYul#O8wmQ)X~a?wq0Q*G{(J~F-z?a_{XPakHp!(aNraWBZJYeIZK&fil_I}$gf=Cu zNWBU?g$1Slnjq&3w2%S6HLBFL%2|KCcc!WlyXE?Ox_nhFCBvo-s-}hBnWar8etvz1@3>Mje(Wb zRY9A%)5FZoPfHI>%4<9Uf3Q||XSRQb5Sf}}LZe1;J&i7%%{)EzeqTfPVhrSkg=ijC z)mT$uO4KHT2J)jZ84ntwLozRTm@70Qvh}c5=(j74kA>q*@AqJg`^~|fTgxC}ms~Hi`gjjSW z#Ya(u{wJgi>MArbRq9gV?IYSAvYnr|#Z$doUduwSK zCD!@+L?h-VUs_XDDdsBlOep=1Mc(53AO(6P#(?@mFp%A%HpjH=UM>5E{0=of+A_fA znXgnxGz6zSsar5HcQ-oAU|nelONl4KQX59mODCf99o1cr3M`pS6UtcYxl^#N2rHvP zM3=6Fxab>3G}a`N4V^(nMf0#oP#k(bXd^4hf;10{#Hv;9v5CFAL`or}W8)$5$h2XX zZ2W|hFQ^gwi=ynpnGBZ%MWE&(aT%BxB$WO94kQG1X@c!OA&n5PW?`G4c*1j+xSXsw zC04TbLOKC2X0{>nQhl0(X`<2!%~}$|ie!{nu{xVHiFU?A1SS{B(!1H%Cn`FNoF*Z^ zMz|$b%1(yDMaWPnT{0q!WS*!5BRM4@Kx<}+$uA!#pEb2XPlF%lPBdvS;myD?vEe^I zBv+7BLOJP*wVbJ7I+iT6q;o?BikMk8y`PMeAM9%Q0;S;_83}E&$W4s`G0{}#?}_sH z1GZ&Js7bQvRh!=_e18e2S0P$j}~50VPf^OpEW@$SZQng$g~250lfq_*@SgMb!|SrI4O;c~71t(j5CUSdR|6@C+K^!#@>Q%2{CRlG25Xtb=@bO=)I(*qi$ z>r2=MT#{`*a>Ftqg*VtF(>P6=kKwzH#uj;qDC90AdgW+4kO`G2{=AsmA&nEsb;jCm zsHs6GRF3B2V{A_+og;ORI$1uZ?cQWr>07?ZGSW7FljWmXA%*P!CRG3Cz2IbX)diLp z-eMS&p07Z0d=`j@{wJxg@1Ep`~qoI*Xp`pZ`jJveuVmFzD`oN>jK=8#wRr5tVd@F<2dO9$OS<$SOq-#SHGa)f%O+;c zR?udsXEj^GKEt#JA-3s~pM_}kY|Z{cXa52zZ-IF0iYzjOBiY(i*;$L|f->*bHR;WD zEXJw>-eRmK)uycC$>uwpZ}P3##IZTrb11uJEN=3RLeHADN}<-9Wq58n8CV`CJ^hX; zm1YxvqZ0d1)Jl}@Dye0*wFO#2>kgAOT9V6l&8kkWxsxhifp~X__F3p1BGQGV*mYE` z8j~%c!6vEf1>&d$dVVAiCJ@HtQiCrZvWLxk_%@`BYN^8wBnkyEW?>LhfqW9#F|T{p)UM zmuM)@<`Afb;aGD?)q-_1iMA2W$;;P*adQYc(zvX-WE{!4nM7>OIC%+2@@)nI>$dSi ztVw55XQwUglATzEGi-()TW5*-Zq5QXKf7iaokC0(X{BQIR*ZO$F=*4EDOQ(xyFKU_|-7{&m?h5$?#qAqXR??kx{&7nX%m;#~3QsUt zC9-b9lVy)L%EjtWWLdb9mV=pPl1hR%?}PNdySTJPn!HfWg?J^MU+w*VQ!1qE;zfHs z;bi5Uk1Iqd-{NwXkdo*=$rnUkQ({U(D@RBgNj2Mcs`!QZkyaP<#(J{-K}VB(U?(M; zs3tIYBrhGLKy@l)K`Dd?M@=Cq*`Q0)t5|(M9v4!nLK4YpZ_OtwETp6tMN289IHrV> z+H#?8+A5_Uaw|*~S4TBD?HaQl#fACpbiXQGW~SYf1Y;%_Flj5yxNo(Idy1?nVTx9SZ77owaMG5h z`RMG84nj><*C^SOsJ_W7ZewXB*|}n1p(2E5zS*)J$v?RaV=$n*`-GImC4R}aB4JsG zTT3dmDM1acu@P9Zy&1AfZ-j_z?r5$-NOSURE?&tWJhaD{L#4y*FV%fL#kd1R%&}_F zkVWa$!dnCWY4%7qf%ec#$&cp2R7c|dIghwyQ3$ZH&}37l{!(a&ywOsfbE;bjks%i_IkBFj zJNwFNP<(MQ3zj$Ci^O$gcxlU1FE75MENDY#=f>!Z>xbK32Cy07d840w2izq6Cju|t%)Xo*L@gvWZAH^Gl~`+KqN`6W{F6A@98o&xvT<{P8c<0N?3bw zHi&CaaWABtChFM=4W*>DK_#I+zCG6MwY_P&BrnOrGyr#Si>Y*^cQd9|RY&(j;8xhm zGI}pl%Y@lGidNjcjk!H$-X2^gPFLXKmVg?cw?bYq zR*$z}uhrjYhj&pOU29xlTNLmhNPFoRcNTl_)@-pCmy3HmSV)SCbSu@TPkk0qkq};~ zK7Hb8+%KrH*Ox#AVJSCqhhLZKx*~D+I*cgLQ+1LVDTE=r^fuR3j4V50)dx1H4(TxI zb&MQfQjhD{YauT*(g5W}V)1jrHUUNU-B(pwTG$5#?4n&o-&wsyzOY>K7bFmHG46M# z8WooT(EJ!RNUwJ=rTdqy@@&*Rr49+G z!&r<-bSBN}TSJ_X-s_h$Q|XMKOQ&EZ)?1Vj=}3e_QC&r~;2<3Fb0`R+ zu?q(DOfY_>Xzs+RGJXzSgVlAl^cqevEWdSk{CqkG>oAzevPf6_JPIg%EguO<1Mwk^ zyU_a)t4d=KOSGf+YL~Uft>~JuW9a33F}9KdpL$QDc#6D@r*xyM~qx$Q0rbDJ^07{)wQ^3K5iitRI3+Hh-U%}I#x?5(j$TB z1wJ*tc*ZXU+>7w zjGu>?!bF?cs1u(AIY%EliFZQdW=D0xxBULxs1puNZ4Icl>-h^%2927;vOB zejZ)%B_Ll7zSPrz{z-So&!?bH<3Z2(<99``P<&r0O(Xm^-5oz4$ix_Sq&t2lU2r9? zl!@P_Im1V?(B((7)J{Ar9-!F@#b9e!JN3O6b}|e>IL$>I)QPVa?rWy z3#&rx>?Ohm>nnW<9+M!EbP#u5h;PKi9kbT>B2A(!%r|Vsn&I*U3Tgh@R;=lmx8-7u zBUXX&Xfi6GuOY^eHEf)0ux6$&ttB9w5?e`CT@h`a#H|88xp+@FeviAb;S_hOJ<#$j zRqFTQTRh{AEhaOK?h}X)4w~nSF}0`y$<%t&DRc;naXc*bV=tM? zrY@n(9XM%K_;;rw&c>RIAnxSXcBQV0C#lZ(JQwY4p$b$Nee_Z8muYRJ$>h~LhfJMh zlTo^0@+=cBr&+z8Vyq(SSXNa=+q ze0_?2)#AgQh;1OmMD{UF$~J^YxvH|LRqeAj58Y61r2_Dcon0Oc*avsX&M!6oDH>?YEljzg#ioAz2nJ- zh!ncEXgVeJt59HJ99yX?2-Qzri0LF+ z1It&Nt{M>ULM(c;XbZ9EF)emPW6EfaME_9mCo@v$)yYza9C7O2R5L2l-m5C!@jIYuWZvpAX1B&d6 zTN_18*s{kdQ4x*K$rFs1Sb{y9v6qkqkHRqSEOv(Y1O7_-ws%07A;2B4e9S!J&Oj%8 zWW5UCI1k{KdEtsT^^VopV22*jBks5uqVWxM6rCLL#_mFqf>jk#cp4Hf7aWg^(^$Ek zKpWKYawrg|uMmNF#v5BZW{9&<6wn4j84?xGcoP+C{<7#B3F7=Op3YBY8g(NuJxudu{a{BA5e)SWD@J}kCoSV z%!ZMUcB~_}aB(iuO`YYr@tg z-fYBSx^z`(nzG}mL}GbnzS@g3#?m~C$pN+j)bkV(&%a;dbDV(iRdvc_QBKv zH+sBKa}iyy!q2d+OQ~CRnA=N~)kG{=iD5O-G@H2QX-%?=W+T$5V4~TGG#<%febRLH zEEXtDN3vLWGWCRj_F-`U#@kiFpKH?UTZtf9pIo0<`u36w5Z*Sg#RsCxw2NkXSK#OaH*S^Stx7pTli?x8@TOOj5EVhz*18z} zyXv>&bT7s=VPZZO@(p5R>pwnD+7vDH<4TEg>wrSSoCm+At)QfsiHmab!>&ofoQ&Sf zENq5Enmmw*Pn@Q62J3 z>sZiqsJTfO-OplRxO&q-#MMzmSQI2rSoEkd{n7(3dC*(Xr2%glw&T110UxXPmeBoC z1_FKtg0f&11Um5+9zG!)f@<+(pcau*)CmdE0)pOppD6@Je0B6GVwI%`6{Hp3n)`e; zGJn!-BP%99wqGg#mAI5y6rjD$Qxzz|ja{X97XhUeH~oOLt_Jrm1?nn5UtjCR>zo=% z5XO_f5^)8yOy|OqO_$iBcE-02=)NcP z)vC+Xm8uKv=y~oaqT|k-a(X-7V&^}W=#6#mkpmu#^W^xMSUyEUxcjg)nBR^v7VI0W z^;LAN_SW_$vp@LL`(3KHjlAPc2lo&PiTH_KA`-zSc2$sG*%Qxrlcz5dRCw?6c`EQ` zD9uAeu|j;}W!cEc7?XB1G7QEP*Luv0DXMPtVP&5mT_NKb8)M2!3&=sPrWJk)s^XlSq6^vnRmKW=QqU5(lWo1R)P zEWU5YtI=guHP}A610#&LvKV7@k1D#17~^o8&_ zS(`o3U5i%&&Ac=}ZCI?T8g$Z}m@>p+mS=E0Nie$|wmU^^~ z8B0Aj8nfwow2m55j}|H($H|8IN?aO>@1uL*Dr>1XFeIt=oN7vqG)9aj6i+|%4(%~x ziYt#XU?cOmYrOH%Fjz zuh1s3I&O?l9YZM_k(bz%2${yl7SA+~4NWJeb{i=Ht!AuMEw);X8rLj+>&lBcy4FXi z3aM3I)c9cv*&ZV*zI0NJ6%|%XSU~wPbOd}A-FtM=7EZtQw=4W@5pF=2-;|B@wH*$VM+cx<| z*6*ON8(|%f#h^YY!ZJEc-X>A^xYI9A3=2yAHMj`eEb08XBdW?3Q#|N3eRnB=6hmUh zlce^oHBnU2xfS*hUmA!{R3sO?L5k09Q2`R?qxB=Sl^I?`A*yLn>9^v&NB{l!28YV}iPwFx-wMd?Tj7@o_Xdr~K#f=OwN-%56)&2jWh1KC zO^Z=QOgd>OiLQ)o+gPe1Eh)4eCb^ndM`)uD>LN!G z5t89(r3uOKi%^B6nZ=?DAyv~n%0TnmD9R8LoU}3|#4V~aB*Za_G9<*WF=a@cSuDyB z!o8W4p){gX&{kb)h_wn>96H1nPpjL|Q-|2%TGe7~F-->+MqeIVRMSaCVo@8b*~pW*D^?w<8db=u1QoK0cu^IyiMUY| zvWb|{6tan^(G)VKsL3g0>`BC~kWKK6rjSiU4O2*sIwpn0(PpsPSM0~PqaN^;&`GB} z;kK3d%kU9)^^xDsR^jdAk$ymMkVZ%8I8N(BQRvv938%dp_Rq?`mDm>Y6!~zV;Iq{b9jul5 zny+wfkB<}v{6)pp)%a{%g|7z3+5vwBsLyuNtkJ^c@K=;wPfOKfG zGs`ok*_5s}`If@6KC;4QquDk+j+n8C**eWw#N24irp0U>)ey5q)x>dptxLJ_=~6|U zU8qJMYZof%ni2SM71!Yufg9c zRwd%Iw`5`a8xMWhlw6ua#Y?5VV5$6)2hJwy(X#RBPizs^!g$x?4^|aJmr8@h-b(n( zN3c>24~EkPRRZ~_*Z7oGYgWIdx=Z`ul*e0B2Jm@tHd5vhcFF>y&$zA}u(ZDiUFH5P7Eh-k#;h^J2sH> z#j_~jt-KG>Rbmst9}HG|$p$f4R}D48vyY63 ziWCuQt7HJ=U0K@&Wmg{p$HBYs5KrOLp}q7GPvIjB^ASlJ=zHqa_}bGWd;|mXQaO=R zu+SZnPB0-ql^b06_Bd?k)tniKNL!*>E=`yzRLijpHS#TSE%zo&=0ti>vXmVIGl%M> zlEJ33Ne{h*Ce$2XFRcvM^HORmFuC;t5~7!f5QBpjN90zIq+>=_^k^s+8Jx%hN|z8D zZBmI^mkya>=_Yon@81giL2N;gX5oRgKk!N~?&B5@`QBBh!&_VxL?MF#?E>T$#@>k}qAc{ahj*@uN&X~+NN(m}( zRB2Tbl>)NF=T*S55*<`gUkIL@eQLd>u!fLMbTr-?Fhh@xmvZQ%mE=Sxj;EkkS)uz6 z6a`2Q*qqAJ9bszPRz@{XzyzeG#oqlctGH3W=m zAg5Xl(kZKfMtHRvgcH?(r{JTqQL6!^7uA5Gt637&08#lWimUt5Lk#>FKnca8QhgTV zTY3V;lZY#-2~{7J8d@cX%08vo%q6PcHG)cg1gk3vtuCs$kDeI%M6l`&AM&lOx{sog z{RuERIe~+QH_%t%#jk)^YzKlWj@cJkH3Nr1l=}9T_Jm!zzru$eKzme>0Tw1QV*4A9 z-c@xq0xj|O70;?ldh~_f)3ZVK?yEjA^5JbR1e8@^S^{OR@H~LsaXf9c^^$eHr;?I@ zc}riCb-;tck=~dUS)iSIdiMqInw9uVODR{jiu=Sv{CI=K;wgWT2oZqX8xStYLB=7B zc#%mN4fmLj(6kvYvcRR0w?P}i;gDl^gEojaXrp+8HjFoD<9LHMkT+-}d4o2TH)vyd zgEp8qsG~U&6X~kS+n|%$@UGI*tVHBd%PS_W>g3NOUwT95uTJ3`AT@LorRp=N5!UNb z>UBRoR#2ywvGoANl0Le_2+|^fpPDA5iRlx~yc^`yn=s5(38NSNX#NH-@=+(@c#7Fo ziF}mGhj}h4f&;3*F|(B3n!jnvDFQGD)t-8ORS!KxIH+|ZK(taksg(*;KB-xfFEvZy zEpgF2$sg?x578d+6zvgDXql}+ZM{TA?GsOGffOn+YNmpSSQ0U11W(a@kb@d9$fdp- z^HMP_6(7s0C=!ht4^j`%;wfjX!b413g_l_Qh<6SQ@zrb9sy+=V$*NSnMNQFyqh3=Z z?dkCp)%nq?Dz)_+c$Zby73-+FtfPYk)kI6bFf-(KFnrgcx8HQFr8O13Fh@4$SQ5ZR z-9vFc{ouV%?YK!C@pi{~J2oZI;C+RKbdPRVEWzmQRex#szj(dDn)dlP3L_!I__Go< zRfnzu;oa|ssb)dFH&Evb*5r55XuLsjN z^l!E4Nq3{Qy4<$JOCKI0$E#Aox&XdBU=h#b!HJj$?;@Zl3M*a@*!TZOOGV4gHaAA* zTKCth7w5NlIT8ngfx=>X+a@4B&L;fSBOvO?!RdCfSVKK(HAjbs-2+r}1`E_)&%5sS zz)~3hcenG<(W1)6coR#Ko4Jd3z40!w2bZe~^WN}ORJQnLGi*~do}zf9PeJIDht73_ zrpsAX6ELV>BiqEcx5vh*UYaJ!?+78+-o+)eAG~1END_DCo0Et!PCIiP**pTxtUm3n z8U-$1fa$1c6l#@+sl4V})7#YWWdm>Wm-3DQ&V5cHnhbRniZ579$HZrFs)f#}{N8Q@FAxNCt< zC&Zl#r4_Z(A*M~D0+5+Iu~lN~FT3Je08c6T(U?#mNX4}%qF)i#G1@?3(@9O8v57Zz zDw??Cc~KMng19Lu{6(@})M|)j_`qnkG?J34^fl5U6c$MXAIn!L@1`EJu&`GbkN#Eq zt9}uSqM9LA&XPC>;A4y59_X&;5BuPTQ7i9rjC z@Q6Xn%6>rJZ)D6X3HM;z2v(YMj?_k6g{4W$V$ecL>Y!!8zmYP_fDtr7Dpy5^x*4aV3T&o)qeOf^N2n?dExESRP? z`Ew?8-EvlJW1# z#9Yy)NrNsPu{UF~oy82ec`}B{aqJn>HX|%zScpD$#^zcK)en8OB}!|##nOlzV%Mk( zS1RkhmiUVjeXk{Kj)|==sT*-gD_Rl}6V2vN!g5EYSq0U|j!Ltp(KBMw-29S?m^n9p z5)sqq=1;R4j<(Ot)VlRXGNGwFG zx^#;j1S_&eW=f{*7>k~t);>}zEK+G~1dOlezc8gTk7(8#7NS@oH~P^esF4i|V_st3 zze`Ly)*BWL;vD>fagP{6nlBb;9?}0bEBDaPm>M5V zkQeJVvP&7d01p3Dgw>V<7E?ZAFX=RTKE6yQIFoD{*LOq>3TbB zqHgpKrCf^Qog6b?T(MVD1y*XYeV*QUSp&9HLEMbc{eOsYkNOIgccX;eXv-q>g1oMJ zRt(;SV1@Rn<d%~a$y@Utb{aX1=A4G{-=b^h8a%oI89rm4&*eV~FV%GSo zAp_D2-LUKbv3Dl$QC0WipSdS9nNW$Wmey8NrLDCZajCU6|2|Prh)b#3Hoj_6QA8h$ z#Q;f2A_6KZ)mW{&2-XD^t5w_(6?a@qt43P2pyF;@q%OF%|L^bo&b@Q*%$-Sq@s;`} zpJ6!n+;e{Cx1ZlxXG8ateJ^g$$@fMcv{!*WC+Hs6KIE+igga45{~$aU5h$_02q4#3 zLrebDQg-P;=aWj@+Hkprd${a1#-bv>cVjV=`#?oCLtX#+iE6K%hL0G99k6?Bw~^fX z%+0z?y30+Q{4c-d!2RARwqO!cszE3}qgA;Goa$E2JATLRj0Rh`j3R4DJAOxY9_#Jk zb}4(P{4Dv-BhibUc9nBY{7S?TqejVv8rj-M95a-*efW-C?j?832(QwJWpWRPoDPTp zNE~_WQO8a^n(c}cxcnpfs&KRXEQZhZEUmlwh^!Z(?7UVs1!RoeTk#c+TG?hzb-iqj zZGf`F)yFPuZfxMhOR+tZn@G44G?!7KZJfa-&4aL~?}-Ws%q-3$PiP@;)DdCFvR>Fq zZ03~g7>w|a)(Rb2A!*0~i6j{5V z&EHcwVw7A*YIkOmP@|Cjnt|clGmmHr zz+{~WsK&q#hrq4{2W}UO6^(|3#0eD}P3ZE&_vB)nU{4pnmTQ0BW%#I3Im^EO!f&v_ zE2tOV;MK*C!-Nsd8G{sQST?P8y?v*vAEt@U5EW`}$DJd;H^ct8$aB`OOuS-1TRMjYSs}(lqor$tE4RGYLzj%{Uv9QcJyTw=_CJ_&E&`l6UOGN zn#;}W>Bf!IZf;!Y07Ar)wyTLeh5}A|5@8%d@OwO9`Mq7_Btis0INEldUe5c-V`LYO zw&;4m?5Tukg-~~1(0+E}0=5I`o$ZRD5YMmA1x`6O(1!1RLn?9BZ=1rg$1cWBy;pWvBr6eAwG zHb0r*3@vvAbf@}v;o_KMM>{k|(ML!>!8R+K+Z_nI>JNp4=nyvP=zd(2|6>?BPLdln zvVm`QUIO%a6+bT_<{pgC>?DKjLftRLDO|o8=7vCTz)jcD4tmE8ffQZt-w;T$3BXY- z)4A{~kK_%xg*k`j4FVMq|=WFbNB!=(@%dlR;1v_z^3$0ECX`*G1Q|< zik4n7RSIJ`x}R}~;vdAiwdM0-Nxsrc<)U5%#-)Qa9Kk~az~ zP%DC3{z_4NEu2Jn?AFb;vg=F!e6nu}GMm6)vB2KFf-Wh$0WSW0QUT-(4Ic)>|y2X{8Q9`%sMB~50L(+K0 z#Scld!T-7~btBau%0+>B6AJQU2?dwT#DVqYrEB%z$iQ|(7Ui8@mJD9}=(z+K=8U>F1Y$gn8??$F zZ{8aOvM848w<=#0%k={pkEK6b(yg`nLQ^eWR4&?bS1ai8oN#D&Raskh(^)%lpg=8O z_Ylb~cM~QKWqX#I`;I$>^QDKAHzVbjWn>STTtYi)%%t)EV^81kAa^8l!Ql!2bL{b4 zr_D>*w#Cm7(8|%WMVHcionR{-HCDDM$?w<5p#wRtWRn!$TT1HXnPetL{!pHeWWAUF z#_NAa>wo-QsI)L%|2ta$8zXSJU7!8IuF^zTYoe<*(bb#iD)NIk7S2Rlb*!s3*3}y8 zYK?WZ#=2T#U9GXU)_A=DY#evT3oT=XH}d18BPU9VpDZ0Ya!0%Sid_#Jwbh;dat% zSbpbayvSl}fr(^OujJ;N zRAxGoiNtQ?f5p8!O#UBS-D}V40ee>0>{-3d;Oap$(z8=%R-9!{@x1-3x3Ss0>@~QW z`v#Jc+4XQzMZ+Be6T>fOKyyrO6% zhERQ_gSANh&xbX*dXF$H?}|83LeDnvME=%?o}*mdW90vQ9EMaM9>&2Okc>luszT3= z4ps;07+AUVw8ViD9z{&LKHqbB^?D&*4HP}(Z%2XGB^jw4PNo;bDwma^#P^P5L{Z-gk;CG3GRZ9F;JD5M} z7R_e2LikDCP$x3rucv%L>%MgU14$n2@@rlG;OYT`t7~QuD~yqp4HBe&t1I_)S8f#b zCI8$4`3qeBS6%s^x$+Oh(f79PxXaE8S5AjgKhKLkGdhj9?q@4s7On4+h{tb!&IJ2`r1(ANnc4tM#JU4Afz z(y>ggE*u_*wZNHQA~>r{1ZTHuAt;g9P`aj-2+q&T>(_88KYPbB1sVEc|NuPMIgEeto`$X>rzjrLuCE8eEp@VNt8Q&^# zm-vXsUH*pliT(O0FG|@bj&U$Iv`@Uz!6{XrcsQh1^i_J_s^I_pzG?{3V0f&9Y(imT zq)YsEY?mng*cjKwKMRe4qH)rJL2zVd#j2Xfd$EJLp?z$HbYT3IvX5=}3}7yBFjvR( zFt;y#z>n3;7vdvp3$DM?o@+}3T>ggGlE~g7 zH^e4|#vz*taf!s4^3^qsO@(Nj?ckKkwvPgxl@8`-8Sl#c@USlm@rlIx%$3h{b=PNZ zd5NoAin;Pl1}F`SE0xT=^vqR!arA;$h|Zbn~~^4&322&A}>#ZawZ`Jr|Ex?mE+b#b_Mh z7XMBx1S>K(YDO1>b(DiuaGfF=`xITLxY5DdP<~0j^@)S^k%%*2zjEYQc&>bioscZe zTzQ9sRf@Ut=N+t4%$0Amg)j*=b!&VSnkyd}*W0U2wmO)lm@8lU8Q}MoEtTd{%$1LE zu)=ZXK)_FP`L&k0GB+MSS3cjB%bhD0*S=K-JBO( z5t$d95*iViJ!1z!z?OLX_!_?WtC278^5@ED*^ETui{0}#|19KFrH!W@Ec>5pLuh>4 z+(OVx$?&y{IHIRpIhbfH)Jd$W038( z;)}mhjzOk5m@NVrUUe})T5zs>se@C>vBOuk7Nio1&vNV_@|o${nJ$fW&4Yq-<&Qf! zr5wlC3>2hFH#Z>kHaeIaI(NLdL~tssQ{C{n?EOjv=iCy(dA>w&27be;zy{Ctk1Y|L zg(ZUXNr~VL`DSVOGrL4^o-PrbuWX}qy(j;5?Uz=>MS9Zj9p&JBR`cNxIQY5!-t#Vh zL;Jmf-%>u5vfpcRFgLW{TjJo9s^2>tQu}SI^nRA};Z3fMQqG4z?qF_cKicoxN`EQ) z(J`L^%*767spi9HLw2w2l=kV>{GV_0`&6%vtc92(O!Zp!%uMr!^Tym8d3wMLzgr!C z^4<%*@?xVp9V5H2h&uD2ZsZCwQJ|c zg?Mmd1aI&8>e~_T61GI$nDp)qJ($yCn>mU$4z`2YMB=lgMaCnGT{}PZc*vJQ?wsDS z$zXHHqjAEpa_zMPu=qQxkQ{P!Bpo{t9gHgJUX#Neypsy)Z*=Z!wim1b{~;Dfp?jf& zSt_~(W@eC3ok)}l&)tA^sDrt#>i`LOcY&)rP-xAU?LO5vR)p7N&9*(NZ?70xy`%y~ ztuP-Lo_^v#t*YP&CAROp6T%NI;fG0~2XjF0(33Ym^k7a)hMppo-taoLxMW9>2LFS5{On_4ce@hA&>?8800NcQCKKTf^lx^+HeH zfjl$-VsQ0xZ%Fk@3(C7FRAPK6ZKg(A{AM!zu1VnjEC-a?B3#CMCse_k5PC3M`Q`Q& zTF&#IgtElJu;X^S(F(mSbFZ=7?CUmFeJKJM+cgSou<(%ih(B zGugc=eaIm9eo;m6UeCn%XH%m4(dQLflUP9YRtM{5S(}KH@5-orXH->NWcBER=8fPg2r*D_&(*dWpk9al2jk;%|pSzA;Mst6p^z zkpUb(-n^d7rgw^EK5&J<9j=YvRq>F|lf3=i7sU3f+DAX{VC_=~-{`&$^Q{6FGZ$MF z+_w7;U;Gt3i;&Yd6grF`@k5h?b)2kE=hL}Qbw^b8!#9f;jhvSe+?G0cm&v}^e0X_$ zJEcb)JcZS7S77jW0CdN~ipE^uDJIXu9jtG~!^&A>F@1}{THs*q+C5loFy1ZpT$uEC zYaOg-y9LX8$lpuit&RsOF!%c|U;O=j9buYGJfj!=-9n9|wve<>cFL$lWf5hc?G4FhHoYdX&VItWwVn2I&vhreqwz+?XQtaGK zQ6_f9PNmD}hCQu`)rP^j5V^2E}OD0hQpbxbpu|4p6{bZcO-<$Ng1@tp#9|9^FsHd`6 zF}8Z?4vV0auu1b#CR7LF(MWg!PZd{4g>guQV!kfMREHj#ASu>yjFi}JpNSeO}Y`noTjy)^A3i2@5#^Hi8 zk#Di_eXOxy9RYhVSQLrZ&;bSDj*ihXq@YFUJPhzz(rZ-IApnu`fYJhRS95?yCO{M* zph%GE!x46p1IrQG1Z!?8I%<(mi;4rHL-IUgznC7c0tm`xYJoNarwnxgOBLExoRL4u z5{okx0Y&T7qAea30??EjK|=}?R)8&yQUwEStW8XeP?T%$YF~h*JOE+xf5-I{Vkw{t zT%=4PKvM@g$pL$G8_M$?G5H`3Ln%oyAdto#A6eV$(5QsSgc5~GVW_1pADW|<)2M8@ zhGxBhPDzA91CT+1s8Aw!#0mxM!$MhtOonAtCf9N{tD7=`GL?x6gg#Bh0s#T@x+4}P zBM^()lLd~ZM~H!`0c5xX@%jiFC)6h3F$pxA1mC1F2!xDZ!7Jz^`BVfrd^Wg#18&V6(0Qgx6sKB090FO=R4~U)iqM!ju`z zZ1KO}uI6G-@^{nc!>-V6H6)Z4yTa7<5ld6MLNh;ic6F4jukcs4tBu31#MiB@F3W^# zklcMo|9)R5GMUX-LH^2ivhmnSjXSGYmdVB=lZEcgWLYK~k4%R3FZ-^Itv`8wv$9M! zHklkhpe&P(O(qqxcF$kAKiN3?lUc;V7x?EOi_LLH_lGdo#9*2UE5_EOW&WHYc6k1r zX(e)^Gn^MB{T(ID3sRpMF}|6)B0)(8>^kSn2wf*pd1NLFP&&~_V@xkIX4i_;Wloh* zJo#jLL+yV$C&xQGRT^m$K-2^xEin~I;;{JH=Z++=nY99nPK+@D4Y)%?dt#s>FvcXzIKsTmWTggd>)Ge?ti~%DjVq{R9(| zwwznygU3wC|0td#$M0+T1&f(~1-Hi?p1&3HxqDwdW-7rBOlj3A4YG$f2pcvl zYU6DQ*pEUWN(%6yPP0`G=0uSi6R556%P?!vFx^{=d}u>u9SB`>-~=rqE@cUHli;Jp zKoPA{tZ0s97-UO%#HBhzNw9?mimBMc)4-!b8+8>208$L#RM&Q?t13Ji@z1cbUw206Hclop%^em`JotxR}3ME zY4{wKhx3#NKbWf2j)-T>;rnG(KCu!%xunLTnb@BBoPs*PEV7pX5h$W6V~^Dga1Z-Q zuvY1!`0DN^TEQa))fyG^sOsgY_R8dNwjHQikslNwk+0emKx1fF+qQ5-XAv&tX%6II z0A*+kP3IeSY8A?$G;j`WV}%hN%2{Uw8XuGlP$&;1kOnwas7M+uRDtAU4o9>At&^ZF zKq&;oMW)JA5e6EFAxYIwnnR1gmPfw%z)v73KwE{?kqEEUBtQl}Km`>Ki4(Z$;uTw| zj5lWgJ0CmQZ)?T#?~Kn2>f*|XF1GuM4|~xT>9gS)x(I7vD{SJi$x3lb$l1cRK)O@o zz3%Htc3GmDE0aTfMFgPwArkqjNn7goa#T~jE@-Is>%t@gL;uL+5tXGbVn$1V4<$IM zQPsH!kWYCEpd8q{R?$p|MfFK5dL-2Sp;byL`Lu35YXmGxrY!=21PGAOcts&&JZiw> zeCjBsN=y@2KFY@TN6TIHQyAYJPe;;^L@FXIkzX-=#J{% zm{ncMQy@paKn5F>HY67T4m02xxKSR?p>L$&A5kfo1Sn0i`HBp0$JO>4LeoEXO=F25 z)=l(Ov1txC5DvB~SVfPtPn|=L@_fi|vk90p%t{Fe=mMOvx)9+5`5*(O)Y4W|7wkTY zNXdL%z(}b@brd0lOzx7kz5;o0gK03Tz}BD}lTn4j?KROC@3)QmKd;!BCAz;@Ny5fx z6`g9fA_==ckU&e|h|fWgo`rsNpdZsjKLXiKQ2>&!E9eB7d_z3k z2LjbC_am)bx(Lsb}-9|3bQ!I>3Mi_;&V;Pgi!KVbBN>>i$B^zX0az2?UrA zF8YdMN{wGq$WoTl0GywgXXl4R2X4w?^~H#iM1jo`9gf35R}NF!3M>~hbc+HM%QKfq z$yg5K6~Y|m+#NjL&Ye}%ft~b= zdG(|KSEC+Xe!b=eJ}vA@t?#6fP>LBH7J^dPa%Vf01XUET?s6q z8IZOH6)71jZd4^IZacR4iaTdGxcl;k0SE$l!zyS}j1f~Ij;fU)M0{S0k8zk`ds)`< z7Pa9UfN)yX1|3zkvC_|Fb6}cq*NW6RFhq^=P!X(<0ML*mr~;F37zgIGqI#hLVIXR# zqaxoFn_wwb1Y%VNI9icbfXrh7gSHX|B25NDCLL=DpsqFzid2E}?h6@Biwb!eHl1+i z5GNPgUlW~YQ_rn31{qiYuYDO8bSz^lF{(?*5f-TwP+aKcg9ua#aMG&fEF5$Yfdo>ZJUmA+ zNI*@%VVI9^#Jf)Nq4}?Jo-Ieo4E6b2X>Wqy=k;wn)HDZ(kdC@tT%sFJJ?BD0El_TyUi{ zs8fw^g++oeSFuzt8g+5;7$_t8Mv?{Aca|h+V7L_xdIiI2HNebz;Vfu4K}SOwP{hj( zwdus|$Y$~PG|qXvaO|2Z8`Xt;*^IO2(898TC(3S`&B17IA6exI-5QJv%c(nDf?_z2 zoTyHDZ$B#!+gPrgh)tC_l%oK3$e}*X`a0s>X zbr`o1(I()44f4Vc)vkaLTX=|Nn7)F$^tV7JA$Enl2*@E?jVi3J49LOqbe5TNI;~(pJ#45FTXF(t4VfwXFgFPv!H(#%5c}CadBR!6K`$4=iR| zfvkX1#I}$%wuP4er`guiKTz4V{hzQctXM7VKf<;orfA$l<+Bbk1r)~mKD0B(_u*vF zTHnb;Oay-nvo?yD0zAMH`-3n=x41=9Y`iV}S;iD1n_hdCWwWu$X2D)%*=($`88);m zn~haAtM*pe)OSA~pp)oke^Wfx1_)7ecx+T8)(*#S1iSR-zpy@E#;`=}WNBYdXQ2HX zeFm{MBLbp5LTL&R@-i1kemEF7!5_nFpk1hY3?j%N&?fMsp@M-nLxABM5@<_*Gfggt z;_rvumkn5LM6!Vcg=9l)4XrCw!oc=u&vqnMa6YJQyd zzhO5UEE|^2mnDy2h6yu3d?mJ@4V97D&ysyrM&(#~Ba5ZkV|VEODw|2g_JgjD>=)5- z4vqt-t~SH>7~6yJYJzp-jBrB3o3+e>>h5}mH*{Of59rt*H+h^L-_s|M&%6me5g&js zWWr|w_C!0?g;%1xz;sb@nxkp@88ZD=5;%Gw@RnjIE#GtzT9`)=qqgqLG zzwlKOq4B8sK%fkgSK#PEfjx}Vl2$t?rd;#(un^%Tv_&P5#Q+KLiZaMbB|thc5PlB( zk@9mwvGt`WKgWdl39;A&-!u*_C<}<`2Lbz}A=fM}=ohogiaaJBXtXkuy6}^rP~}w! z$lgBds71T*jRgEJuvKST67hgHR0BQ4^ay5f3HL%7zO!6PB;JKZ#~-MC`WAN{7g$fq zy~7^y!gT0>Tx5&h(Y9)kZ*>u_zznzo#o)&Wf=HtXngCP?Z*dvq!#r3{6GgxV(K*#& zfd+jA`2^h{hl%p{Hvh&Pq;wA~Mt9^48JGoR({>!${z)=aVO@zvKMD{X0-8fImReXf zj#q{V#WNwb;b5ir%3}LOqWc=mf@Em>f*BBbs`tY0ei44>y%@K=O7pUgywc&ZJ$E`5 z)VIhvCi7hE??7@PqQD#UW2LJUccIQCMwsT{onP!O)M$)=zN%s%4AffgLPaIR79KwL zr529qPzQH_NLjX-Xk%IWFF>FPKtz8qSiS*8j=Ghc9xZSdfo-8e#KZu^E-}h_TU~9) zVj1a(0*6I)8p4LuH(}ozkf8AZ1S?=t1_*${Ct^!rHO@8x72w7UH_fQjTYBseRo(1m09&%5dr!r%+o^KCn4yxY=bXb+0I03-xADF(r$ zt%o9vjg%x4cEcuRJ)EU39~6&TLv2FuWSnb%c%*zc!=Cc9vKz^rjJq7Bc3!^gRL28CH7g2Go(7_36)72OR*YDp zW@Ya>UHfyDVfoIJjmNHLAFeVf-*x(*YgZ$VEZfz_cE8iAQDvEIY%*y&x-658O(vTh zQGk~KR=DA1|INR@E za03*b6=QV?^z%^sQU59hy;bRJRPGOKc ztU=H)QBfOj2|+k01CpcwA4p@7171TNLOa3VHHCIjS49fF`FD(}r~{ePs>s~dLRutf zj&EfKuYj*hFCYMxe8$CO%$vN7t z_ey@^eu(rh#q>S0H^9zMi$=uhd-himA&T`c)u}+;;W{#bHE5PPo9^6k`aJ&eib-mh zcknwx1?)0+T@h|-V|{|H8)hNP@t5h0-5s@dIHQ3N6oRNRP5)tXEIs#>D} zC@VQyh6JLfMQVW-RkUf?fI`DaGRdI~AKro$DjTqk>iPjgiorz?CP%9PmPP?ZTdF(x z>xvZS6$RirwUk(@kVZ;5mH;%Gh7Xtun9v;GU`Rt?>r>S0XQA~xcndW6Kr1B1*@g8S2O^(gc5jgQ-I-H1e!qJKHnLrl;<>EYe%6(d{j5`bJ%pX2hx=G&qKEJbDXShf zS zAYJ5#hT&`wUcUTzg%QAXG%}DP0z+5$Mx1~GJ{{7!;zRWSA8-Q*_<$bFMAF~`%zS(Z zbZMG)c}p#dp=2bG!m)a%;E&y%f|xkfVG)>zwJLn8-QHFam3z<#rO;boqwZXBnP90d z^8|~8_M+BkB7BFfGz>j7tVEKwF?#%khN{%cO6tOeVU`hC4~ZuF-kLVmrI)(DPg*em zU7(`~7&{_DVR=-S2d%IT=D`41ZpoO1`UJb2L0VtI?0`vX?7V^(+Dp*{oDK?;fKyNl zJNbqx#6@-5&2Iu6^cCs=dOQ{wjrccX(JBf6lYpKNPMHS=v`Ty6hteXYZr+Rq7s8B( z<%h%jOWKw9I*SM1TY(@p&z7#FKm9CAz^|EdxOH ziy)1Ts@l+^^)eB)rd`z*f)_LgI<+}W0*`~{Xy2xKiEAVuFAL_l!wGR68>FFZd{dnQ zRE)aJNbBk{AslSMoJ4^j-@p43?+uFTHA%2!{jtB1hY6 zxlt9o!SRs^1eg!DG!3`Z)gTMFn-j7iQ`-HkBnv`FmTxfbQnFySp_1i11+ramvdXr6 zuc=i4)Bqu%4`J>WIw3_#KBxo|LvCTWn2_^unNyXw<$F!76At;INMsu8hv@wy{FJ*i z8)hj#%lDe<{z}^?s53+l@rT{<9JrRSZWr;!fo|va2_lPCr>QK;_nQ8DWg+Lsjz2?X zQL1}QmpFLkdrfV4mAxM|h}JL-=HZBE@KIO?f9GNoYiFw*`gi|s3w$CUjg$D+4>1$n z$-XvT(I|(AlMqLv9Nt>AmL~mUB70dN#G~Lx*9AhriH1bk!b5Cf4SA2ZeIBt6-j*gj zq9KJsj6=gvsj)C|6Zs$tXqqQtq9%{}mIUF5g5Xt=w)YOf1o$M2G2W=a++W^}rqOsT za#RK$(2pPvng`-gn?@WrBA1RcRW4%-$FI3-9ni!_#Swf%I-PyKT%xls5mtvaX0qjW zSVmgWMx_yAkP&Suci}WukkL4m5$|}mN+4PimJw2e|Hudi9A{+&Xv)wGYC%b01?3@+ z(Ft&Qt5Pe34N_AwfJSu`pSs1Qh9LH{%8L#nk?u$h^~y?3Y-vb`%4{9(R|;eXb8=)h zB4kUjLaBzomW>hCt1U4U2;>CGMQkZ7Cu*rJVMiVq@XTurDMwC$EkQD7Luq)LBN(tm z9=s)A1(T1fs)CY1G4uTf$Bd1UafV_y9-(mX;@<1dl{k0R4p}vJe?yqk;x_SY%y$KzM^K1+7v)zZW3> zqYSSCk=cH!;~bUQ@D1;mpnb$fYfCtq{}@{mAGgh~RW1X%FBfzMWy`lEv^T$BDx`$! z2#;#9>fqg0MX{8Usbj5H7)qU_2^*tmaacOGWqPLcsZ-Cl{FXA0rp} z{fyh^s9d%vCYNQAJwB*+cj7U`muD}_nZH??l;3$L9_z|pvW1JqW8JiuIJs~u>B{6W zAcHjkMv02rO$3J=yTM}=wwqmE(B-4RM+5 z;aojW%nCV1vokis!y~# zQE>5$>(O5dQ;`n^sKT58-`XQ-UDOsU03fLIO&WSA15PvtVPpdHglLNt06s19p`QRr zU_u)W;qVzGQ9#in0UTOq*_xh;*&d%e&dX9BBq2fZ0Rp`lwScJ>9gqneumvB;6n4_E z@&!6cPys+nOqfE7(V>yAytmCTR?JFfxP7HSC^N~TOG^d%(`g>m0P*+;BO?$&PA4^# zi$g6t>3^vOWr~O2uV?X~79>&zuJ2>N6T|TD7s$qF{$4D0e_-@JO&Wm%kjzJ!OKUI= zz%-5+)J0O}2>JchS;^3jJIcUuUcpal0g6Y;qm+nHbH@1aVJ7n9RZCRrR41Rph!Y$T zfwoA_VYR(}8rPyiMsaBowiVa{IV}ljf+V8dN0m*u-j zrzK&Mng-wK9ZCwr_s}FzU%1y{uhh%flExd55%wn z>&C`O<0`Q;53j7ItDY36AZKlO;5}U(o`6zVx%z1myqe;B6r2-}(hCl;JrEv1p8=zu zfrhk;B42axRO4*1;L*di@fyz%u13q_qviAwzX8HPnMkwvMO?Pl)Le+8yQEoffyJJ# z3p1ewUgK1$M``?Cn{|vQ2v#x$X;|Mh{1l_XzJ65O>)2?{LAAY(4&`8UaEE3f0pNTq zMWBY0no1Fbmww zxy0<__eP)sku(4Xw2Bzuod?RmBgNlh^!b77)PDckzlc7sj>L4-=cBz9_|OO>pqD6{ z3YrEHbgTV_7TCxmOi&h4my*z;+~X12!A>73#-j)0kV;UEW+(?0gb*rqt){XEu2w_* z9*qNun!E!YfPtw8!Q_&qIA{%WkO&OdnG5eCi&>-f^5jw*FtD3KCt64r1l|8yV$^A< z>}s{wUPp#<&>NJP6P-aBazM%hW3+~EB>)Ml4m8gEt?F<4)M~;G;;5Uzq1x;*>#)4`pc~HiB$OkX2rp5Fv)!L{DE?QGXOfE&y844j; z(tzNbVu%>F@=Zx{yqm1Pde>U{d*@m7l`L&Q%o@;W@XxDfr3k)Lj1W`g{IIsyF`*o_ zzGI^~)b&s+n8io2z&@ZKMvwzV=mTuFrk91Tu#S$xf+j!#gmJ)_=&K)DnlM0UlH-T_ z`po)8Z7+V(Ai!Gf4u%4ShG|~eg}8(j!>m0}Crs&Z5ib2x77Ezm19EcEJ`ZOWrWD3Q zDbfsNhd`k8s61GsqB-CNI547@&S3)Zk=}T#Oh`$+1scg|t}xON3Qv?!%HwI^9#n!7 znSl=gJxoER4G=6G7N8?R0dOEqF}OuZU;?K=2RJQ7eP!%WaT1Fe!_2=)eZ;Eo7V!~t zBQcwKy|Q{ffys?{`MIVols4@q^wbhco87$7)09x!G$cb$O`){;QTR=yokPNJB6a$Q zG4S>agL^3*dWwMS6$Tf1^X-CYPYBnEpfG+t-s}=Vdyf#J=JieDPx{X_8Df+%3sruJ z!e=t~Va_P*ey`Bd>sfD^|rvbF~U;3p5lQPlFLqK<$7u_+Udo@W=%g?p~j9%^(Dz zgT=BgAf%Yf)L4hiff5DATkMHOMn_?S33b7fZ}kRH0z+Xg)(U)H(Gbx1kPrP37`ARI(#j$6I?y2p zzwro(#0dU1-m1EAP_f@iiJs3jH>ctu&&4;~4!ETb=BzIl@edtQ|FB%igUPSJ3F`Jusc*hI8fx=+^R>Nz;wM1fYb+0|E2kcqRMMB%` zSv_d5)ZHV3-=7PRYk!lY(ZTz)`|w^X2JZm}Zw-E?0DeQNqx}0*>~DNPn$X+t4k0p; z_*eJgy;=<3Q4ZeUi@}TBGh#Z6!CUCyecXL`FBO7!FmzTdvg9WIR7_tY_<4_3yW398 zTk((u?x7CuE9(RIgLt?ipM?(YwZ-U<%KPkiXe#fDJC*)Bx({z|A$UUf!4BT6^`ZNs zc*p{GfrESQ`oO&^9S2%d3=I194ZYlY>o5=qz<>&8&x03AA zUuyXYCnOW8L?-bLeleL$eq7yC{^KE`8C$ZCxBGuya!YSh_v=Cm!oqQ1sCxJjjY=f! zmoyhjS^Vu+_N^^KUlj&m^Wt9Ea&+_wNb|pPfZE3_0GrCLxAfW{Wv(P?v0x*^rq+qrMrywcohE>1V{f2KAyAZ;#5*Qd>@X0J9$ za!#ts`(~e1uSKaZrM=;le!1EEdeU5KUu@GS)q9bE-nVaR6EnX()0j$m!@rd3o9-|- zPt7baPgK;UzL565-Zzy>dkuZk=BeZ=Z#!tJ=oO~wW)FlPZ|hXrJ?~pdZ@<3j%u?@5 zg^D^hd07TTA)c88;ydjb(1!&bNpClvSGQ+sNY5eRjZ2bhOl_9V9Fpqg?FeCiv*@SI zxygF(YkBRSCjj4Q&-6(R1mO8eZ%2KuAzh#PYNo;4DzDDPQfHMQA#%7R>FuD;HKgb8 z!ke9h#mRDB3TjhRR7746=I)Sj1|o~oSg?UGmfN~!(l z_DrX(eU;YcxyD>Y?LW7B7f}1EWJi4M`BMAY_RiE-K>V7dC?k(lz9u;*)!%FH;|