From 4cc36d2b4355401b91c5fd7d153f1c421bf1c6cf Mon Sep 17 00:00:00 2001 From: Christopher Ferris Date: Wed, 6 Jun 2018 14:47:31 -0700 Subject: [PATCH] Fix handling of load bias values. It turns out that for the dwarf information, if a FDE indicates it's pc relative, then pc has to be incremented by the load bias. If not, then it should not be incremented. Previously, the code always subtracted load bias values from pcs, and assumed that all fdes were incremented by load bias values. The new code actually reads the fdes and adjusted the pcs in the fde and in the eh frame hdr so that load bias values are already handled properly. In addition, add dumping of arm exidx values in unwind_reg_info. This allowed verifying that the debug frame in those elf files was being handled properly. Added a new unit test that only has a debug frame that has a non-zero load bias and has fde entries that do not have pc relative encoding. Fix a couple of other small bugs. Bug: 109824792 Test: All libbacktrace/libunwindstack unit tests pass. Test: Ran ART 137-cfi test and 004-ThreadStress. Test: Verify that displaying the fde start and end pc actually match the Test: real data for fde that have pc relative set, and that don't. Test: Verified that the unwind information for arm exidx matches the Test: debug frame data. Change-Id: I707555286b5cb05df9f25489e8c5ede753cfe0fb --- libunwindstack/Android.bp | 1 + libunwindstack/ArmExidx.cpp | 375 +++-- libunwindstack/ArmExidx.h | 16 +- libunwindstack/DwarfCfa.cpp | 8 +- libunwindstack/DwarfCfa.h | 3 +- libunwindstack/DwarfEhFrameWithHdr.cpp | 38 +- libunwindstack/DwarfEhFrameWithHdr.h | 3 +- libunwindstack/DwarfSection.cpp | 41 +- libunwindstack/Elf.cpp | 13 +- libunwindstack/ElfInterface.cpp | 37 +- libunwindstack/ElfInterfaceArm.cpp | 27 +- libunwindstack/ElfInterfaceArm.h | 14 +- libunwindstack/Symbols.cpp | 12 +- libunwindstack/Symbols.h | 3 +- .../include/unwindstack/DwarfSection.h | 11 +- .../include/unwindstack/ElfInterface.h | 31 +- libunwindstack/tests/ArmExidxDecodeTest.cpp | 1285 ++++++++++++----- libunwindstack/tests/ArmExidxExtractTest.cpp | 6 +- libunwindstack/tests/DwarfCfaLogTest.cpp | 148 +- libunwindstack/tests/DwarfDebugFrameTest.cpp | 58 +- libunwindstack/tests/DwarfEhFrameTest.cpp | 54 +- .../tests/DwarfEhFrameWithHdrTest.cpp | 76 +- libunwindstack/tests/DwarfSectionImplTest.cpp | 4 +- libunwindstack/tests/DwarfSectionTest.cpp | 4 +- libunwindstack/tests/ElfFake.cpp | 4 +- libunwindstack/tests/ElfFake.h | 6 +- libunwindstack/tests/ElfInterfaceArmTest.cpp | 24 +- libunwindstack/tests/ElfInterfaceTest.cpp | 16 +- libunwindstack/tests/ElfTest.cpp | 90 +- libunwindstack/tests/SymbolsTest.cpp | 84 +- libunwindstack/tests/UnwindOfflineTest.cpp | 39 + .../debug_frame_load_bias_arm/libbinder.so | Bin 0 -> 655400 bytes .../offline/debug_frame_load_bias_arm/libc.so | Bin 0 -> 826064 bytes .../debug_frame_load_bias_arm/maps.txt | 3 + .../debug_frame_load_bias_arm/mediaserver | Bin 0 -> 20220 bytes .../debug_frame_load_bias_arm/regs.txt | 16 + .../debug_frame_load_bias_arm/stack.data | Bin 0 -> 2512 bytes libunwindstack/tools/unwind_info.cpp | 29 +- libunwindstack/tools/unwind_reg_info.cpp | 44 +- libunwindstack/tools/unwind_symbols.cpp | 5 +- 40 files changed, 1741 insertions(+), 887 deletions(-) create mode 100644 libunwindstack/tests/files/offline/debug_frame_load_bias_arm/libbinder.so create mode 100644 libunwindstack/tests/files/offline/debug_frame_load_bias_arm/libc.so create mode 100644 libunwindstack/tests/files/offline/debug_frame_load_bias_arm/maps.txt create mode 100644 libunwindstack/tests/files/offline/debug_frame_load_bias_arm/mediaserver create mode 100644 libunwindstack/tests/files/offline/debug_frame_load_bias_arm/regs.txt create mode 100644 libunwindstack/tests/files/offline/debug_frame_load_bias_arm/stack.data diff --git a/libunwindstack/Android.bp b/libunwindstack/Android.bp index d4cef7cde..df5da650c 100644 --- a/libunwindstack/Android.bp +++ b/libunwindstack/Android.bp @@ -223,6 +223,7 @@ cc_test { "tests/files/offline/art_quick_osr_stub_arm/*", "tests/files/offline/bad_eh_frame_hdr_arm64/*", "tests/files/offline/debug_frame_first_x86/*", + "tests/files/offline/debug_frame_load_bias_arm/*", "tests/files/offline/eh_frame_hdr_begin_x86_64/*", "tests/files/offline/jit_debug_arm/*", "tests/files/offline/jit_debug_x86/*", diff --git a/libunwindstack/ArmExidx.cpp b/libunwindstack/ArmExidx.cpp index 6e397e31f..818f5d16a 100644 --- a/libunwindstack/ArmExidx.cpp +++ b/libunwindstack/ArmExidx.cpp @@ -31,6 +31,8 @@ namespace unwindstack { +static constexpr uint8_t LOG_CFA_REG = 64; + void ArmExidx::LogRawData() { std::string log_str("Raw Data:"); for (const uint8_t data : data_) { @@ -63,8 +65,10 @@ bool ArmExidx::ExtractEntryData(uint32_t entry_offset) { if (data == 1) { // This is a CANT UNWIND entry. status_ = ARM_STATUS_NO_UNWIND; - if (log_) { - log(log_indent_, "Raw Data: 0x00 0x00 0x00 0x01"); + if (log_type_ != ARM_LOG_NONE) { + if (log_type_ == ARM_LOG_FULL) { + log(log_indent_, "Raw Data: 0x00 0x00 0x00 0x01"); + } log(log_indent_, "[cantunwind]"); } return false; @@ -86,7 +90,7 @@ bool ArmExidx::ExtractEntryData(uint32_t entry_offset) { // If this didn't end with a finish op, add one. data_.push_back(ARM_OP_FINISH); } - if (log_) { + if (log_type_ == ARM_LOG_FULL) { LogRawData(); } return true; @@ -163,7 +167,7 @@ bool ArmExidx::ExtractEntryData(uint32_t entry_offset) { data_.push_back(ARM_OP_FINISH); } - if (log_) { + if (log_type_ == ARM_LOG_FULL) { LogRawData(); } return true; @@ -190,32 +194,45 @@ inline bool ArmExidx::DecodePrefix_10_00(uint8_t byte) { registers |= byte; if (registers == 0) { // 10000000 00000000: Refuse to unwind - if (log_) { + if (log_type_ != ARM_LOG_NONE) { log(log_indent_, "Refuse to unwind"); } status_ = ARM_STATUS_NO_UNWIND; return false; } // 1000iiii iiiiiiii: Pop up to 12 integer registers under masks {r15-r12}, {r11-r4} - if (log_) { - bool add_comma = false; - std::string msg = "pop {"; - for (size_t i = 0; i < 12; i++) { - if (registers & (1 << i)) { - if (add_comma) { - msg += ", "; + registers <<= 4; + + if (log_type_ != ARM_LOG_NONE) { + if (log_type_ == ARM_LOG_FULL) { + bool add_comma = false; + std::string msg = "pop {"; + for (size_t reg = 4; reg < 16; reg++) { + if (registers & (1 << reg)) { + if (add_comma) { + msg += ", "; + } + msg += android::base::StringPrintf("r%zu", reg); + add_comma = true; + } + } + log(log_indent_, "%s}", msg.c_str()); + } else { + uint32_t cfa_offset = __builtin_popcount(registers) * 4; + log_cfa_offset_ += cfa_offset; + for (size_t reg = 4; reg < 16; reg++) { + if (registers & (1 << reg)) { + log_regs_[reg] = cfa_offset; + cfa_offset -= 4; } - msg += android::base::StringPrintf("r%zu", i + 4); - add_comma = true; } } - log(log_indent_, "%s}", msg.c_str()); + if (log_skip_execution_) { return true; } } - registers <<= 4; for (size_t reg = 4; reg < 16; reg++) { if (registers & (1 << reg)) { if (!process_memory_->Read32(cfa_, &(*regs_)[reg])) { @@ -246,15 +263,20 @@ inline bool ArmExidx::DecodePrefix_10_01(uint8_t byte) { if (bits == 13 || bits == 15) { // 10011101: Reserved as prefix for ARM register to register moves // 10011111: Reserved as prefix for Intel Wireless MMX register to register moves - if (log_) { + if (log_type_ != ARM_LOG_NONE) { log(log_indent_, "[Reserved]"); } status_ = ARM_STATUS_RESERVED; return false; } // 1001nnnn: Set vsp = r[nnnn] (nnnn != 13, 15) - if (log_) { - log(log_indent_, "vsp = r%d", bits); + if (log_type_ != ARM_LOG_NONE) { + if (log_type_ == ARM_LOG_FULL) { + log(log_indent_, "vsp = r%d", bits); + } else { + log_regs_[LOG_CFA_REG] = bits; + } + if (log_skip_execution_) { return true; } @@ -270,17 +292,36 @@ inline bool ArmExidx::DecodePrefix_10_10(uint8_t byte) { // 10100nnn: Pop r4-r[4+nnn] // 10101nnn: Pop r4-r[4+nnn], r14 - if (log_) { - std::string msg = "pop {r4"; + if (log_type_ != ARM_LOG_NONE) { uint8_t end_reg = byte & 0x7; - if (end_reg) { - msg += android::base::StringPrintf("-r%d", 4 + end_reg); - } - if (byte & 0x8) { - log(log_indent_, "%s, r14}", msg.c_str()); + if (log_type_ == ARM_LOG_FULL) { + std::string msg = "pop {r4"; + if (end_reg) { + msg += android::base::StringPrintf("-r%d", 4 + end_reg); + } + if (byte & 0x8) { + log(log_indent_, "%s, r14}", msg.c_str()); + } else { + log(log_indent_, "%s}", msg.c_str()); + } } else { - log(log_indent_, "%s}", msg.c_str()); + end_reg += 4; + uint32_t cfa_offset = (end_reg - 3) * 4; + if (byte & 0x8) { + cfa_offset += 4; + } + log_cfa_offset_ += cfa_offset; + + for (uint8_t reg = 4; reg <= end_reg; reg++) { + log_regs_[reg] = cfa_offset; + cfa_offset -= 4; + } + + if (byte & 0x8) { + log_regs_[14] = cfa_offset; + } } + if (log_skip_execution_) { return true; } @@ -307,8 +348,11 @@ inline bool ArmExidx::DecodePrefix_10_10(uint8_t byte) { inline bool ArmExidx::DecodePrefix_10_11_0000() { // 10110000: Finish - if (log_) { - log(log_indent_, "finish"); + if (log_type_ != ARM_LOG_NONE) { + if (log_type_ == ARM_LOG_FULL) { + log(log_indent_, "finish"); + } + if (log_skip_execution_) { status_ = ARM_STATUS_FINISH; return false; @@ -326,7 +370,7 @@ inline bool ArmExidx::DecodePrefix_10_11_0001() { if (byte == 0) { // 10110001 00000000: Spare - if (log_) { + if (log_type_ != ARM_LOG_NONE) { log(log_indent_, "Spare"); } status_ = ARM_STATUS_SPARE; @@ -334,7 +378,7 @@ inline bool ArmExidx::DecodePrefix_10_11_0001() { } if (byte >> 4) { // 10110001 xxxxyyyy: Spare (xxxx != 0000) - if (log_) { + if (log_type_ != ARM_LOG_NONE) { log(log_indent_, "Spare"); } status_ = ARM_STATUS_SPARE; @@ -342,19 +386,32 @@ inline bool ArmExidx::DecodePrefix_10_11_0001() { } // 10110001 0000iiii: Pop integer registers under mask {r3, r2, r1, r0} - if (log_) { - bool add_comma = false; - std::string msg = "pop {"; - for (size_t i = 0; i < 4; i++) { - if (byte & (1 << i)) { - if (add_comma) { - msg += ", "; + if (log_type_ != ARM_LOG_NONE) { + if (log_type_ == ARM_LOG_FULL) { + bool add_comma = false; + std::string msg = "pop {"; + for (size_t i = 0; i < 4; i++) { + if (byte & (1 << i)) { + if (add_comma) { + msg += ", "; + } + msg += android::base::StringPrintf("r%zu", i); + add_comma = true; + } + } + log(log_indent_, "%s}", msg.c_str()); + } else { + byte &= 0xf; + uint32_t cfa_offset = __builtin_popcount(byte) * 4; + log_cfa_offset_ += cfa_offset; + for (size_t reg = 0; reg < 4; reg++) { + if (byte & (1 << reg)) { + log_regs_[reg] = cfa_offset; + cfa_offset -= 4; } - msg += android::base::StringPrintf("r%zu", i); - add_comma = true; } } - log(log_indent_, "%s}", msg.c_str()); + if (log_skip_execution_) { return true; } @@ -373,6 +430,15 @@ inline bool ArmExidx::DecodePrefix_10_11_0001() { return true; } +inline void ArmExidx::AdjustRegisters(int32_t offset) { + for (auto& entry : log_regs_) { + if (entry.first >= LOG_CFA_REG) { + break; + } + entry.second += offset; + } +} + inline bool ArmExidx::DecodePrefix_10_11_0010() { // 10110010 uleb128: vsp = vsp + 0x204 + (uleb128 << 2) uint32_t result = 0; @@ -387,8 +453,15 @@ inline bool ArmExidx::DecodePrefix_10_11_0010() { shift += 7; } while (byte & 0x80); result <<= 2; - if (log_) { - log(log_indent_, "vsp = vsp + %d", 0x204 + result); + if (log_type_ != ARM_LOG_NONE) { + int32_t cfa_offset = 0x204 + result; + if (log_type_ == ARM_LOG_FULL) { + log(log_indent_, "vsp = vsp + %d", cfa_offset); + } else { + log_cfa_offset_ += cfa_offset; + } + AdjustRegisters(cfa_offset); + if (log_skip_execution_) { return true; } @@ -404,14 +477,20 @@ inline bool ArmExidx::DecodePrefix_10_11_0011() { return false; } - if (log_) { + if (log_type_ != ARM_LOG_NONE) { uint8_t start_reg = byte >> 4; - std::string msg = android::base::StringPrintf("pop {d%d", start_reg); uint8_t end_reg = start_reg + (byte & 0xf); - if (end_reg) { - msg += android::base::StringPrintf("-d%d", end_reg); + + if (log_type_ == ARM_LOG_FULL) { + std::string msg = android::base::StringPrintf("pop {d%d", start_reg); + if (end_reg) { + msg += android::base::StringPrintf("-d%d", end_reg); + } + log(log_indent_, "%s}", msg.c_str()); + } else { + log(log_indent_, "Unsupported DX register display"); } - log(log_indent_, "%s}", msg.c_str()); + if (log_skip_execution_) { return true; } @@ -422,7 +501,7 @@ inline bool ArmExidx::DecodePrefix_10_11_0011() { inline bool ArmExidx::DecodePrefix_10_11_01nn() { // 101101nn: Spare - if (log_) { + if (log_type_ != ARM_LOG_NONE) { log(log_indent_, "Spare"); } status_ = ARM_STATUS_SPARE; @@ -433,13 +512,18 @@ inline bool ArmExidx::DecodePrefix_10_11_1nnn(uint8_t byte) { CHECK((byte & ~0x07) == 0xb8); // 10111nnn: Pop VFP double-precision registers D[8]-D[8+nnn] by FSTMFDX - if (log_) { - std::string msg = "pop {d8"; - uint8_t last_reg = (byte & 0x7); - if (last_reg) { - msg += android::base::StringPrintf("-d%d", last_reg + 8); + if (log_type_ != ARM_LOG_NONE) { + if (log_type_ == ARM_LOG_FULL) { + uint8_t last_reg = (byte & 0x7); + std::string msg = "pop {d8"; + if (last_reg) { + msg += android::base::StringPrintf("-d%d", last_reg + 8); + } + log(log_indent_, "%s}", msg.c_str()); + } else { + log(log_indent_, "Unsupported DX register display"); } - log(log_indent_, "%s}", msg.c_str()); + if (log_skip_execution_) { return true; } @@ -489,14 +573,19 @@ inline bool ArmExidx::DecodePrefix_11_000(uint8_t byte) { } // 11000110 sssscccc: Intel Wireless MMX pop wR[ssss]-wR[ssss+cccc] - if (log_) { - uint8_t start_reg = byte >> 4; - std::string msg = android::base::StringPrintf("pop {wR%d", start_reg); - uint8_t end_reg = byte & 0xf; - if (end_reg) { - msg += android::base::StringPrintf("-wR%d", start_reg + end_reg); + if (log_type_ != ARM_LOG_NONE) { + if (log_type_ == ARM_LOG_FULL) { + uint8_t start_reg = byte >> 4; + std::string msg = android::base::StringPrintf("pop {wR%d", start_reg); + uint8_t end_reg = byte & 0xf; + if (end_reg) { + msg += android::base::StringPrintf("-wR%d", start_reg + end_reg); + } + log(log_indent_, "%s}", msg.c_str()); + } else { + log(log_indent_, "Unsupported wRX register display"); } - log(log_indent_, "%s}", msg.c_str()); + if (log_skip_execution_) { return true; } @@ -510,32 +599,40 @@ inline bool ArmExidx::DecodePrefix_11_000(uint8_t byte) { if (byte == 0) { // 11000111 00000000: Spare - if (log_) { + if (log_type_ != ARM_LOG_NONE) { log(log_indent_, "Spare"); } status_ = ARM_STATUS_SPARE; return false; } else if ((byte >> 4) == 0) { // 11000111 0000iiii: Intel Wireless MMX pop wCGR registers {wCGR0,1,2,3} - if (log_) { - bool add_comma = false; - std::string msg = "pop {"; - for (size_t i = 0; i < 4; i++) { - if (byte & (1 << i)) { - if (add_comma) { - msg += ", "; + if (log_type_ != ARM_LOG_NONE) { + if (log_type_ == ARM_LOG_FULL) { + bool add_comma = false; + std::string msg = "pop {"; + for (size_t i = 0; i < 4; i++) { + if (byte & (1 << i)) { + if (add_comma) { + msg += ", "; + } + msg += android::base::StringPrintf("wCGR%zu", i); + add_comma = true; } - msg += android::base::StringPrintf("wCGR%zu", i); - add_comma = true; } + log(log_indent_, "%s}", msg.c_str()); + } else { + log(log_indent_, "Unsupported wCGR register display"); + } + + if (log_skip_execution_) { + return true; } - log(log_indent_, "%s}", msg.c_str()); } // Only update the cfa. cfa_ += __builtin_popcount(byte) * 4; } else { // 11000111 xxxxyyyy: Spare (xxxx != 0000) - if (log_) { + if (log_type_ != ARM_LOG_NONE) { log(log_indent_, "Spare"); } status_ = ARM_STATUS_SPARE; @@ -543,13 +640,18 @@ inline bool ArmExidx::DecodePrefix_11_000(uint8_t byte) { } } else { // 11000nnn: Intel Wireless MMX pop wR[10]-wR[10+nnn] (nnn != 6, 7) - if (log_) { - std::string msg = "pop {wR10"; - uint8_t nnn = byte & 0x7; - if (nnn) { - msg += android::base::StringPrintf("-wR%d", 10 + nnn); + if (log_type_ != ARM_LOG_NONE) { + if (log_type_ == ARM_LOG_FULL) { + std::string msg = "pop {wR10"; + uint8_t nnn = byte & 0x7; + if (nnn) { + msg += android::base::StringPrintf("-wR%d", 10 + nnn); + } + log(log_indent_, "%s}", msg.c_str()); + } else { + log(log_indent_, "Unsupported wRX register display"); } - log(log_indent_, "%s}", msg.c_str()); + if (log_skip_execution_) { return true; } @@ -570,14 +672,19 @@ inline bool ArmExidx::DecodePrefix_11_001(uint8_t byte) { return false; } - if (log_) { - uint8_t start_reg = byte >> 4; - std::string msg = android::base::StringPrintf("pop {d%d", 16 + start_reg); - uint8_t end_reg = byte & 0xf; - if (end_reg) { - msg += android::base::StringPrintf("-d%d", 16 + start_reg + end_reg); + if (log_type_ != ARM_LOG_NONE) { + if (log_type_ == ARM_LOG_FULL) { + uint8_t start_reg = byte >> 4; + std::string msg = android::base::StringPrintf("pop {d%d", 16 + start_reg); + uint8_t end_reg = byte & 0xf; + if (end_reg) { + msg += android::base::StringPrintf("-d%d", 16 + start_reg + end_reg); + } + log(log_indent_, "%s}", msg.c_str()); + } else { + log(log_indent_, "Unsupported DX register display"); } - log(log_indent_, "%s}", msg.c_str()); + if (log_skip_execution_) { return true; } @@ -590,14 +697,19 @@ inline bool ArmExidx::DecodePrefix_11_001(uint8_t byte) { return false; } - if (log_) { - uint8_t start_reg = byte >> 4; - std::string msg = android::base::StringPrintf("pop {d%d", start_reg); - uint8_t end_reg = byte & 0xf; - if (end_reg) { - msg += android::base::StringPrintf("-d%d", start_reg + end_reg); + if (log_type_ != ARM_LOG_NONE) { + if (log_type_ == ARM_LOG_FULL) { + uint8_t start_reg = byte >> 4; + std::string msg = android::base::StringPrintf("pop {d%d", start_reg); + uint8_t end_reg = byte & 0xf; + if (end_reg) { + msg += android::base::StringPrintf("-d%d", start_reg + end_reg); + } + log(log_indent_, "%s}", msg.c_str()); + } else { + log(log_indent_, "Unsupported DX register display"); } - log(log_indent_, "%s}", msg.c_str()); + if (log_skip_execution_) { return true; } @@ -606,7 +718,7 @@ inline bool ArmExidx::DecodePrefix_11_001(uint8_t byte) { cfa_ += (byte & 0xf) * 8 + 8; } else { // 11001yyy: Spare (yyy != 000, 001) - if (log_) { + if (log_type_ != ARM_LOG_NONE) { log(log_indent_, "Spare"); } status_ = ARM_STATUS_SPARE; @@ -619,13 +731,18 @@ inline bool ArmExidx::DecodePrefix_11_010(uint8_t byte) { CHECK((byte & ~0x07) == 0xd0); // 11010nnn: Pop VFP double precision registers D[8]-D[8+nnn] by VPUSH - if (log_) { - std::string msg = "pop {d8"; - uint8_t end_reg = byte & 0x7; - if (end_reg) { - msg += android::base::StringPrintf("-d%d", 8 + end_reg); + if (log_type_ != ARM_LOG_NONE) { + if (log_type_ == ARM_LOG_FULL) { + std::string msg = "pop {d8"; + uint8_t end_reg = byte & 0x7; + if (end_reg) { + msg += android::base::StringPrintf("-d%d", 8 + end_reg); + } + log(log_indent_, "%s}", msg.c_str()); + } else { + log(log_indent_, "Unsupported DX register display"); } - log(log_indent_, "%s}", msg.c_str()); + if (log_skip_execution_) { return true; } @@ -646,7 +763,7 @@ inline bool ArmExidx::DecodePrefix_11(uint8_t byte) { return DecodePrefix_11_010(byte); default: // 11xxxyyy: Spare (xxx != 000, 001, 010) - if (log_) { + if (log_type_ != ARM_LOG_NONE) { log(log_indent_, "Spare"); } status_ = ARM_STATUS_SPARE; @@ -664,8 +781,15 @@ bool ArmExidx::Decode() { switch (byte >> 6) { case 0: // 00xxxxxx: vsp = vsp + (xxxxxxx << 2) + 4 - if (log_) { - log(log_indent_, "vsp = vsp + %d", ((byte & 0x3f) << 2) + 4); + if (log_type_ != ARM_LOG_NONE) { + int32_t cfa_offset = ((byte & 0x3f) << 2) + 4; + if (log_type_ == ARM_LOG_FULL) { + log(log_indent_, "vsp = vsp + %d", cfa_offset); + } else { + log_cfa_offset_ += cfa_offset; + } + AdjustRegisters(cfa_offset); + if (log_skip_execution_) { break; } @@ -674,8 +798,15 @@ bool ArmExidx::Decode() { break; case 1: // 01xxxxxx: vsp = vsp - (xxxxxxx << 2) + 4 - if (log_) { - log(log_indent_, "vsp = vsp - %d", ((byte & 0x3f) << 2) + 4); + if (log_type_ != ARM_LOG_NONE) { + uint32_t cfa_offset = ((byte & 0x3f) << 2) + 4; + if (log_type_ == ARM_LOG_FULL) { + log(log_indent_, "vsp = vsp - %d", cfa_offset); + } else { + log_cfa_offset_ -= cfa_offset; + } + AdjustRegisters(-cfa_offset); + if (log_skip_execution_) { break; } @@ -696,4 +827,36 @@ bool ArmExidx::Eval() { return status_ == ARM_STATUS_FINISH; } +void ArmExidx::LogByReg() { + if (log_type_ != ARM_LOG_BY_REG) { + return; + } + + uint8_t cfa_reg; + if (log_regs_.count(LOG_CFA_REG) == 0) { + cfa_reg = 13; + } else { + cfa_reg = log_regs_[LOG_CFA_REG]; + } + + if (log_cfa_offset_ != 0) { + char sign = (log_cfa_offset_ > 0) ? '+' : '-'; + log(log_indent_, "cfa = r%zu %c %d", cfa_reg, sign, abs(log_cfa_offset_)); + } else { + log(log_indent_, "cfa = r%zu", cfa_reg); + } + + for (const auto& entry : log_regs_) { + if (entry.first >= LOG_CFA_REG) { + break; + } + if (entry.second == 0) { + log(log_indent_, "r%zu = [cfa]", entry.first); + } else { + char sign = (entry.second > 0) ? '-' : '+'; + log(log_indent_, "r%zu = [cfa %c %d]", entry.first, sign, abs(entry.second)); + } + } +} + } // namespace unwindstack diff --git a/libunwindstack/ArmExidx.h b/libunwindstack/ArmExidx.h index 96756a017..d9fc371c3 100644 --- a/libunwindstack/ArmExidx.h +++ b/libunwindstack/ArmExidx.h @@ -20,6 +20,7 @@ #include #include +#include namespace unwindstack { @@ -44,6 +45,12 @@ enum ArmOp : uint8_t { ARM_OP_FINISH = 0xb0, }; +enum ArmLogType : uint8_t { + ARM_LOG_NONE, + ARM_LOG_FULL, + ARM_LOG_BY_REG, +}; + class ArmExidx { public: ArmExidx(RegsArm* regs, Memory* elf_memory, Memory* process_memory) @@ -52,6 +59,8 @@ class ArmExidx { void LogRawData(); + void LogByReg(); + bool ExtractEntryData(uint32_t entry_offset); bool Eval(); @@ -71,12 +80,13 @@ class ArmExidx { bool pc_set() { return pc_set_; } void set_pc_set(bool pc_set) { pc_set_ = pc_set; } - void set_log(bool log) { log_ = log; } + void set_log(ArmLogType log_type) { log_type_ = log_type; } void set_log_skip_execution(bool skip_execution) { log_skip_execution_ = skip_execution; } void set_log_indent(uint8_t indent) { log_indent_ = indent; } private: bool GetByte(uint8_t* byte); + void AdjustRegisters(int32_t offset); bool DecodePrefix_10_00(uint8_t byte); bool DecodePrefix_10_01(uint8_t byte); @@ -103,10 +113,12 @@ class ArmExidx { Memory* elf_memory_; Memory* process_memory_; - bool log_ = false; + ArmLogType log_type_ = ARM_LOG_NONE; uint8_t log_indent_ = 0; bool log_skip_execution_ = false; bool pc_set_ = false; + int32_t log_cfa_offset_ = 0; + std::map log_regs_; }; } // namespace unwindstack diff --git a/libunwindstack/DwarfCfa.cpp b/libunwindstack/DwarfCfa.cpp index 6ecedce38..cd9ef6141 100644 --- a/libunwindstack/DwarfCfa.cpp +++ b/libunwindstack/DwarfCfa.cpp @@ -264,8 +264,8 @@ bool DwarfCfa::LogInstruction(uint32_t indent, uint64_t cfa_offset, } template -bool DwarfCfa::Log(uint32_t indent, uint64_t pc, uint64_t load_bias, - uint64_t start_offset, uint64_t end_offset) { +bool DwarfCfa::Log(uint32_t indent, uint64_t pc, uint64_t start_offset, + uint64_t end_offset) { memory_->set_cur_offset(start_offset); uint64_t cfa_offset; uint64_t cur_pc = fde_->pc_start; @@ -301,8 +301,8 @@ bool DwarfCfa::Log(uint32_t indent, uint64_t pc, uint64_t load_bias break; } if (cur_pc != old_pc) { - log(indent, ""); - log(indent, "PC 0x%" PRIx64, cur_pc + load_bias); + log(0, ""); + log(indent, "PC 0x%" PRIx64, cur_pc); } old_pc = cur_pc; } diff --git a/libunwindstack/DwarfCfa.h b/libunwindstack/DwarfCfa.h index 16c66e296..c5ffb8e89 100644 --- a/libunwindstack/DwarfCfa.h +++ b/libunwindstack/DwarfCfa.h @@ -71,8 +71,7 @@ class DwarfCfa { bool GetLocationInfo(uint64_t pc, uint64_t start_offset, uint64_t end_offset, dwarf_loc_regs_t* loc_regs); - bool Log(uint32_t indent, uint64_t pc, uint64_t load_bias, uint64_t start_offset, - uint64_t end_offset); + bool Log(uint32_t indent, uint64_t pc, uint64_t start_offset, uint64_t end_offset); const DwarfErrorData& last_error() { return last_error_; } DwarfErrorCode LastErrorCode() { return last_error_.code; } diff --git a/libunwindstack/DwarfEhFrameWithHdr.cpp b/libunwindstack/DwarfEhFrameWithHdr.cpp index 9a4901344..fd6a457ef 100644 --- a/libunwindstack/DwarfEhFrameWithHdr.cpp +++ b/libunwindstack/DwarfEhFrameWithHdr.cpp @@ -22,12 +22,18 @@ #include "Check.h" #include "DwarfEhFrameWithHdr.h" +#include "DwarfEncoding.h" namespace unwindstack { +static inline bool IsEncodingRelative(uint8_t encoding) { + encoding >>= 4; + return encoding > 0 && encoding <= DW_EH_PE_funcrel; +} + template -bool DwarfEhFrameWithHdr::Init(uint64_t offset, uint64_t size) { - uint8_t data[4]; +bool DwarfEhFrameWithHdr::Init(uint64_t offset, uint64_t size, uint64_t load_bias) { + load_bias_ = load_bias; memory_.clear_func_offset(); memory_.clear_text_offset(); @@ -35,6 +41,7 @@ bool DwarfEhFrameWithHdr::Init(uint64_t offset, uint64_t size) { memory_.set_cur_offset(offset); // Read the first four bytes all at once. + uint8_t data[4]; if (!memory_.ReadBytes(data, 4)) { last_error_.code = DWARF_ERROR_MEMORY_INVALID; last_error_.address = memory_.cur_offset(); @@ -100,7 +107,7 @@ DwarfEhFrameWithHdr::GetFdeInfoFromIndex(size_t index) { memory_.set_data_offset(entries_data_offset_); memory_.set_cur_offset(entries_offset_ + 2 * index * table_entry_size_); - memory_.set_pc_offset(memory_.cur_offset()); + memory_.set_pc_offset(0); uint64_t value; if (!memory_.template ReadEncodedValue(table_encoding_, &value) || !memory_.template ReadEncodedValue(table_encoding_, &info->offset)) { @@ -109,6 +116,11 @@ DwarfEhFrameWithHdr::GetFdeInfoFromIndex(size_t index) { fde_info_.erase(index); return nullptr; } + + // Relative encodings require adding in the load bias. + if (IsEncodingRelative(table_encoding_)) { + value += load_bias_; + } info->pc = value; return info; } @@ -174,27 +186,27 @@ bool DwarfEhFrameWithHdr::GetFdeOffsetSequential(uint64_t pc, uint6 memory_.set_data_offset(entries_data_offset_); memory_.set_cur_offset(cur_entries_offset_); + memory_.set_pc_offset(0); cur_entries_offset_ = 0; FdeInfo* prev_info = nullptr; for (size_t current = fde_info_.size(); current < fde_count_ && memory_.cur_offset() < entries_end_; current++) { - memory_.set_pc_offset(memory_.cur_offset()); - uint64_t value; - if (!memory_.template ReadEncodedValue(table_encoding_, &value)) { - last_error_.code = DWARF_ERROR_MEMORY_INVALID; - last_error_.address = memory_.cur_offset(); - return false; - } - FdeInfo* info = &fde_info_[current]; - if (!memory_.template ReadEncodedValue(table_encoding_, &info->offset)) { + uint64_t value; + if (!memory_.template ReadEncodedValue(table_encoding_, &value) || + !memory_.template ReadEncodedValue(table_encoding_, &info->offset)) { fde_info_.erase(current); last_error_.code = DWARF_ERROR_MEMORY_INVALID; last_error_.address = memory_.cur_offset(); return false; } - info->pc = value + 4; + + // Relative encodings require adding in the load bias. + if (IsEncodingRelative(table_encoding_)) { + value += load_bias_; + } + info->pc = value; if (pc < info->pc) { if (prev_info == nullptr) { diff --git a/libunwindstack/DwarfEhFrameWithHdr.h b/libunwindstack/DwarfEhFrameWithHdr.h index 357116620..d16dd1006 100644 --- a/libunwindstack/DwarfEhFrameWithHdr.h +++ b/libunwindstack/DwarfEhFrameWithHdr.h @@ -38,6 +38,7 @@ class DwarfEhFrameWithHdr : public DwarfEhFrame { using DwarfSectionImpl::entries_offset_; using DwarfSectionImpl::entries_end_; using DwarfSectionImpl::last_error_; + using DwarfSectionImpl::load_bias_; struct FdeInfo { AddressType pc; @@ -47,7 +48,7 @@ class DwarfEhFrameWithHdr : public DwarfEhFrame { DwarfEhFrameWithHdr(Memory* memory) : DwarfEhFrame(memory) {} virtual ~DwarfEhFrameWithHdr() = default; - bool Init(uint64_t offset, uint64_t size) override; + bool Init(uint64_t offset, uint64_t size, uint64_t load_bias) override; bool GetFdeOffsetFromPc(uint64_t pc, uint64_t* fde_offset) override; diff --git a/libunwindstack/DwarfSection.cpp b/libunwindstack/DwarfSection.cpp index 65eec65b8..eb8394989 100644 --- a/libunwindstack/DwarfSection.cpp +++ b/libunwindstack/DwarfSection.cpp @@ -420,6 +420,7 @@ bool DwarfSectionImpl::FillInCie(DwarfCie* cie) { last_error_.address = memory_.cur_offset(); return false; } + memory_.set_pc_offset(pc_offset_); if (!memory_.ReadEncodedValue(encoding, &cie->personality_handler)) { last_error_.code = DWARF_ERROR_MEMORY_INVALID; last_error_.address = memory_.cur_offset(); @@ -521,19 +522,19 @@ bool DwarfSectionImpl::FillInFde(DwarfFde* fde) { } memory_.set_cur_offset(cur_offset); - if (!memory_.ReadEncodedValue(cie->fde_address_encoding & 0xf, &fde->pc_start)) { - last_error_.code = DWARF_ERROR_MEMORY_INVALID; - last_error_.address = memory_.cur_offset(); - return false; - } + // The load bias only applies to the start. + memory_.set_pc_offset(load_bias_); + bool valid = memory_.ReadEncodedValue(cie->fde_address_encoding, &fde->pc_start); fde->pc_start = AdjustPcFromFde(fde->pc_start); - if (!memory_.ReadEncodedValue(cie->fde_address_encoding & 0xf, &fde->pc_end)) { + memory_.set_pc_offset(0); + if (!valid || !memory_.ReadEncodedValue(cie->fde_address_encoding, &fde->pc_end)) { last_error_.code = DWARF_ERROR_MEMORY_INVALID; last_error_.address = memory_.cur_offset(); return false; } fde->pc_end += fde->pc_start; + if (cie->augmentation_string.size() > 0 && cie->augmentation_string[0] == 'z') { // Augmentation Size uint64_t aug_length; @@ -544,6 +545,7 @@ bool DwarfSectionImpl::FillInFde(DwarfFde* fde) { } uint64_t cur_offset = memory_.cur_offset(); + memory_.set_pc_offset(pc_offset_); if (!memory_.ReadEncodedValue(cie->lsda_encoding, &fde->lsda_address)) { last_error_.code = DWARF_ERROR_MEMORY_INVALID; last_error_.address = memory_.cur_offset(); @@ -582,17 +584,16 @@ bool DwarfSectionImpl::GetCfaLocationInfo(uint64_t pc, const DwarfF } template -bool DwarfSectionImpl::Log(uint8_t indent, uint64_t pc, uint64_t load_bias, - const DwarfFde* fde) { +bool DwarfSectionImpl::Log(uint8_t indent, uint64_t pc, const DwarfFde* fde) { DwarfCfa cfa(&memory_, fde); // Always print the cie information. const DwarfCie* cie = fde->cie; - if (!cfa.Log(indent, pc, load_bias, cie->cfa_instructions_offset, cie->cfa_instructions_end)) { + if (!cfa.Log(indent, pc, cie->cfa_instructions_offset, cie->cfa_instructions_end)) { last_error_ = cfa.last_error(); return false; } - if (!cfa.Log(indent, pc, load_bias, fde->cfa_instructions_offset, fde->cfa_instructions_end)) { + if (!cfa.Log(indent, pc, fde->cfa_instructions_offset, fde->cfa_instructions_end)) { last_error_ = cfa.last_error(); return false; } @@ -600,15 +601,16 @@ bool DwarfSectionImpl::Log(uint8_t indent, uint64_t pc, uint64_t lo } template -bool DwarfSectionImpl::Init(uint64_t offset, uint64_t size) { +bool DwarfSectionImpl::Init(uint64_t offset, uint64_t size, uint64_t load_bias) { + load_bias_ = load_bias; entries_offset_ = offset; entries_end_ = offset + size; memory_.clear_func_offset(); memory_.clear_text_offset(); - memory_.set_data_offset(offset); memory_.set_cur_offset(offset); - memory_.set_pc_offset(offset); + memory_.set_data_offset(offset); + pc_offset_ = offset; return CreateSortedFdeList(); } @@ -717,6 +719,7 @@ bool DwarfSectionImpl::GetCieInfo(uint8_t* segment_size, uint8_t* e return false; } uint64_t value; + memory_.set_pc_offset(pc_offset_); if (!memory_.template ReadEncodedValue(encoding, &value)) { last_error_.code = DWARF_ERROR_MEMORY_INVALID; last_error_.address = memory_.cur_offset(); @@ -737,15 +740,13 @@ bool DwarfSectionImpl::AddFdeInfo(uint64_t entry_offset, uint8_t se } uint64_t start; - if (!memory_.template ReadEncodedValue(encoding & 0xf, &start)) { - last_error_.code = DWARF_ERROR_MEMORY_INVALID; - last_error_.address = memory_.cur_offset(); - return false; - } + memory_.set_pc_offset(load_bias_); + bool valid = memory_.template ReadEncodedValue(encoding, &start); start = AdjustPcFromFde(start); uint64_t length; - if (!memory_.template ReadEncodedValue(encoding & 0xf, &length)) { + memory_.set_pc_offset(0); + if (!valid || !memory_.template ReadEncodedValue(encoding, &length)) { last_error_.code = DWARF_ERROR_MEMORY_INVALID; last_error_.address = memory_.cur_offset(); return false; @@ -877,7 +878,7 @@ bool DwarfSectionImpl::GetFdeOffsetFromPc(uint64_t pc, uint64_t* fd while (first < last) { size_t current = (first + last) / 2; const FdeInfo* info = &fdes_[current]; - if (pc >= info->start && pc <= info->end) { + if (pc >= info->start && pc < info->end) { *fde_offset = info->offset; return true; } diff --git a/libunwindstack/Elf.cpp b/libunwindstack/Elf.cpp index 3762107d6..472360698 100644 --- a/libunwindstack/Elf.cpp +++ b/libunwindstack/Elf.cpp @@ -53,7 +53,7 @@ bool Elf::Init(bool init_gnu_debugdata) { valid_ = interface_->Init(&load_bias_); if (valid_) { - interface_->InitHeaders(); + interface_->InitHeaders(load_bias_); if (init_gnu_debugdata) { InitGnuDebugdata(); } else { @@ -83,7 +83,7 @@ void Elf::InitGnuDebugdata() { // is in the uncompressed data. uint64_t load_bias; if (gnu->Init(&load_bias)) { - gnu->InitHeaders(); + gnu->InitHeaders(load_bias); interface_->SetGnuDebugdataInterface(gnu); } else { // Free all of the memory associated with the gnu_debugdata section. @@ -103,9 +103,9 @@ uint64_t Elf::GetRelPc(uint64_t pc, const MapInfo* map_info) { bool Elf::GetFunctionName(uint64_t addr, std::string* name, uint64_t* func_offset) { std::lock_guard guard(lock_); - return valid_ && (interface_->GetFunctionName(addr, load_bias_, name, func_offset) || - (gnu_debugdata_interface_ && gnu_debugdata_interface_->GetFunctionName( - addr, load_bias_, name, func_offset))); + return valid_ && (interface_->GetFunctionName(addr, name, func_offset) || + (gnu_debugdata_interface_ && + gnu_debugdata_interface_->GetFunctionName(addr, name, func_offset))); } bool Elf::GetGlobalVariable(const std::string& name, uint64_t* memory_address) { @@ -174,7 +174,7 @@ bool Elf::Step(uint64_t rel_pc, uint64_t adjusted_rel_pc, Regs* regs, Memory* pr // Lock during the step which can update information in the object. std::lock_guard guard(lock_); - return interface_->Step(adjusted_rel_pc, load_bias_, regs, process_memory, finished); + return interface_->Step(adjusted_rel_pc, regs, process_memory, finished); } bool Elf::IsValidElf(Memory* memory) { @@ -220,7 +220,6 @@ bool Elf::IsValidPc(uint64_t pc) { if (!valid_ || pc < load_bias_) { return false; } - pc -= load_bias_; if (interface_->IsValidPc(pc)) { return true; diff --git a/libunwindstack/ElfInterface.cpp b/libunwindstack/ElfInterface.cpp index 4c05a1bcc..954a82104 100644 --- a/libunwindstack/ElfInterface.cpp +++ b/libunwindstack/ElfInterface.cpp @@ -124,10 +124,10 @@ Memory* ElfInterface::CreateGnuDebugdataMemory() { } template -void ElfInterface::InitHeadersWithTemplate() { +void ElfInterface::InitHeadersWithTemplate(uint64_t load_bias) { if (eh_frame_hdr_offset_ != 0) { eh_frame_.reset(new DwarfEhFrameWithHdr(memory_)); - if (!eh_frame_->Init(eh_frame_hdr_offset_, eh_frame_hdr_size_)) { + if (!eh_frame_->Init(eh_frame_hdr_offset_, eh_frame_hdr_size_, load_bias)) { eh_frame_.reset(nullptr); } } @@ -136,7 +136,7 @@ void ElfInterface::InitHeadersWithTemplate() { // If there is an eh_frame section without an eh_frame_hdr section, // or using the frame hdr object failed to init. eh_frame_.reset(new DwarfEhFrame(memory_)); - if (!eh_frame_->Init(eh_frame_offset_, eh_frame_size_)) { + if (!eh_frame_->Init(eh_frame_offset_, eh_frame_size_, load_bias)) { eh_frame_.reset(nullptr); } } @@ -150,7 +150,7 @@ void ElfInterface::InitHeadersWithTemplate() { if (debug_frame_offset_ != 0) { debug_frame_.reset(new DwarfDebugFrame(memory_)); - if (!debug_frame_->Init(debug_frame_offset_, debug_frame_size_)) { + if (!debug_frame_->Init(debug_frame_offset_, debug_frame_size_, load_bias)) { debug_frame_.reset(nullptr); debug_frame_offset_ = 0; debug_frame_size_ = static_cast(-1); @@ -441,14 +441,14 @@ bool ElfInterface::GetSonameWithTemplate(std::string* soname) { } template -bool ElfInterface::GetFunctionNameWithTemplate(uint64_t addr, uint64_t load_bias, std::string* name, +bool ElfInterface::GetFunctionNameWithTemplate(uint64_t addr, std::string* name, uint64_t* func_offset) { if (symbols_.empty()) { return false; } for (const auto symbol : symbols_) { - if (symbol->GetName(addr, load_bias, memory_, name, func_offset)) { + if (symbol->GetName(addr, memory_, name, func_offset)) { return true; } } @@ -469,34 +469,25 @@ bool ElfInterface::GetGlobalVariableWithTemplate(const std::string& name, uint64 return false; } -bool ElfInterface::Step(uint64_t pc, uint64_t load_bias, Regs* regs, Memory* process_memory, - bool* finished) { +bool ElfInterface::Step(uint64_t pc, Regs* regs, Memory* process_memory, bool* finished) { last_error_.code = ERROR_NONE; last_error_.address = 0; - // Adjust the load bias to get the real relative pc. - if (pc < load_bias) { - last_error_.code = ERROR_UNWIND_INFO; - return false; - } - uint64_t adjusted_pc = pc - load_bias; - // Try the debug_frame first since it contains the most specific unwind // information. DwarfSection* debug_frame = debug_frame_.get(); - if (debug_frame != nullptr && debug_frame->Step(adjusted_pc, regs, process_memory, finished)) { + if (debug_frame != nullptr && debug_frame->Step(pc, regs, process_memory, finished)) { return true; } // Try the eh_frame next. DwarfSection* eh_frame = eh_frame_.get(); - if (eh_frame != nullptr && eh_frame->Step(adjusted_pc, regs, process_memory, finished)) { + if (eh_frame != nullptr && eh_frame->Step(pc, regs, process_memory, finished)) { return true; } - // Finally try the gnu_debugdata interface, but always use a zero load bias. if (gnu_debugdata_interface_ != nullptr && - gnu_debugdata_interface_->Step(pc, 0, regs, process_memory, finished)) { + gnu_debugdata_interface_->Step(pc, regs, process_memory, finished)) { return true; } @@ -559,8 +550,8 @@ void ElfInterface::GetMaxSizeWithTemplate(Memory* memory, uint64_t* size) { } // Instantiate all of the needed template functions. -template void ElfInterface::InitHeadersWithTemplate(); -template void ElfInterface::InitHeadersWithTemplate(); +template void ElfInterface::InitHeadersWithTemplate(uint64_t); +template void ElfInterface::InitHeadersWithTemplate(uint64_t); template bool ElfInterface::ReadAllHeaders(uint64_t*); template bool ElfInterface::ReadAllHeaders(uint64_t*); @@ -574,9 +565,9 @@ template bool ElfInterface::ReadSectionHeaders(const Elf template bool ElfInterface::GetSonameWithTemplate(std::string*); template bool ElfInterface::GetSonameWithTemplate(std::string*); -template bool ElfInterface::GetFunctionNameWithTemplate(uint64_t, uint64_t, std::string*, +template bool ElfInterface::GetFunctionNameWithTemplate(uint64_t, std::string*, uint64_t*); -template bool ElfInterface::GetFunctionNameWithTemplate(uint64_t, uint64_t, std::string*, +template bool ElfInterface::GetFunctionNameWithTemplate(uint64_t, std::string*, uint64_t*); template bool ElfInterface::GetGlobalVariableWithTemplate(const std::string&, uint64_t*); diff --git a/libunwindstack/ElfInterfaceArm.cpp b/libunwindstack/ElfInterfaceArm.cpp index f93baeb27..9b61599ce 100644 --- a/libunwindstack/ElfInterfaceArm.cpp +++ b/libunwindstack/ElfInterfaceArm.cpp @@ -26,6 +26,14 @@ namespace unwindstack { +bool ElfInterfaceArm::Init(uint64_t* load_bias) { + if (!ElfInterface32::Init(load_bias)) { + return false; + } + load_bias_ = *load_bias; + return true; +} + bool ElfInterfaceArm::FindEntry(uint32_t pc, uint64_t* entry_offset) { if (start_offset_ == 0 || total_entries_ == 0) { last_error_.code = ERROR_UNWIND_INFO; @@ -96,24 +104,22 @@ bool ElfInterfaceArm::HandleType(uint64_t offset, uint32_t type, uint64_t load_b return true; } -bool ElfInterfaceArm::Step(uint64_t pc, uint64_t load_bias, Regs* regs, Memory* process_memory, - bool* finished) { +bool ElfInterfaceArm::Step(uint64_t pc, Regs* regs, Memory* process_memory, bool* finished) { // Dwarf unwind information is precise about whether a pc is covered or not, // but arm unwind information only has ranges of pc. In order to avoid // incorrectly doing a bad unwind using arm unwind information for a // different function, always try and unwind with the dwarf information first. - return ElfInterface32::Step(pc, load_bias, regs, process_memory, finished) || - StepExidx(pc, load_bias, regs, process_memory, finished); + return ElfInterface32::Step(pc, regs, process_memory, finished) || + StepExidx(pc, regs, process_memory, finished); } -bool ElfInterfaceArm::StepExidx(uint64_t pc, uint64_t load_bias, Regs* regs, Memory* process_memory, - bool* finished) { +bool ElfInterfaceArm::StepExidx(uint64_t pc, Regs* regs, Memory* process_memory, bool* finished) { // Adjust the load bias to get the real relative pc. - if (pc < load_bias) { + if (pc < load_bias_) { last_error_.code = ERROR_UNWIND_INFO; return false; } - pc -= load_bias; + pc -= load_bias_; RegsArm* regs_arm = reinterpret_cast(regs); uint64_t entry_offset; @@ -167,13 +173,12 @@ bool ElfInterfaceArm::StepExidx(uint64_t pc, uint64_t load_bias, Regs* regs, Mem return return_value; } -bool ElfInterfaceArm::GetFunctionName(uint64_t addr, uint64_t load_bias, std::string* name, - uint64_t* offset) { +bool ElfInterfaceArm::GetFunctionName(uint64_t addr, std::string* name, uint64_t* offset) { // For ARM, thumb function symbols have bit 0 set, but the address passed // in here might not have this bit set and result in a failure to find // the thumb function names. Adjust the address and offset to account // for this possible case. - if (ElfInterface32::GetFunctionName(addr | 1, load_bias, name, offset)) { + if (ElfInterface32::GetFunctionName(addr | 1, name, offset)) { *offset &= ~1; return true; } diff --git a/libunwindstack/ElfInterfaceArm.h b/libunwindstack/ElfInterfaceArm.h index c1597ce3a..18efb6cc4 100644 --- a/libunwindstack/ElfInterfaceArm.h +++ b/libunwindstack/ElfInterfaceArm.h @@ -64,28 +64,30 @@ class ElfInterfaceArm : public ElfInterface32 { iterator begin() { return iterator(this, 0); } iterator end() { return iterator(this, total_entries_); } + bool Init(uint64_t* load_bias) override; + bool GetPrel31Addr(uint32_t offset, uint32_t* addr); bool FindEntry(uint32_t pc, uint64_t* entry_offset); bool HandleType(uint64_t offset, uint32_t type, uint64_t load_bias) override; - bool Step(uint64_t pc, uint64_t load_bias, Regs* regs, Memory* process_memory, - bool* finished) override; + bool Step(uint64_t pc, Regs* regs, Memory* process_memory, bool* finished) override; - bool StepExidx(uint64_t pc, uint64_t load_bias, Regs* regs, Memory* process_memory, - bool* finished); + bool StepExidx(uint64_t pc, Regs* regs, Memory* process_memory, bool* finished); - bool GetFunctionName(uint64_t addr, uint64_t load_bias, std::string* name, - uint64_t* offset) override; + bool GetFunctionName(uint64_t addr, std::string* name, uint64_t* offset) override; uint64_t start_offset() { return start_offset_; } size_t total_entries() { return total_entries_; } + void set_load_bias(uint64_t load_bias) { load_bias_ = load_bias; } + protected: uint64_t start_offset_ = 0; size_t total_entries_ = 0; + uint64_t load_bias_ = 0; std::unordered_map addrs_; }; diff --git a/libunwindstack/Symbols.cpp b/libunwindstack/Symbols.cpp index 25def40c4..14ebdbbc5 100644 --- a/libunwindstack/Symbols.cpp +++ b/libunwindstack/Symbols.cpp @@ -54,10 +54,7 @@ const Symbols::Info* Symbols::GetInfoFromCache(uint64_t addr) { } template -bool Symbols::GetName(uint64_t addr, uint64_t load_bias, Memory* elf_memory, std::string* name, - uint64_t* func_offset) { - addr += load_bias; - +bool Symbols::GetName(uint64_t addr, Memory* elf_memory, std::string* name, uint64_t* func_offset) { if (symbols_.size() != 0) { const Info* info = GetInfoFromCache(addr); if (info) { @@ -81,9 +78,6 @@ bool Symbols::GetName(uint64_t addr, uint64_t load_bias, Memory* elf_memory, std if (entry.st_shndx != SHN_UNDEF && ELF32_ST_TYPE(entry.st_info) == STT_FUNC) { // Treat st_value as virtual address. uint64_t start_offset = entry.st_value; - if (entry.st_shndx != SHN_ABS) { - start_offset += load_bias; - } uint64_t end_offset = start_offset + entry.st_size; // Cache the value. @@ -134,8 +128,8 @@ bool Symbols::GetGlobal(Memory* elf_memory, const std::string& name, uint64_t* m } // Instantiate all of the needed template functions. -template bool Symbols::GetName(uint64_t, uint64_t, Memory*, std::string*, uint64_t*); -template bool Symbols::GetName(uint64_t, uint64_t, Memory*, std::string*, uint64_t*); +template bool Symbols::GetName(uint64_t, Memory*, std::string*, uint64_t*); +template bool Symbols::GetName(uint64_t, Memory*, std::string*, uint64_t*); template bool Symbols::GetGlobal(Memory*, const std::string&, uint64_t*); template bool Symbols::GetGlobal(Memory*, const std::string&, uint64_t*); diff --git a/libunwindstack/Symbols.h b/libunwindstack/Symbols.h index 7d239c16b..7fcd067d3 100644 --- a/libunwindstack/Symbols.h +++ b/libunwindstack/Symbols.h @@ -44,8 +44,7 @@ class Symbols { const Info* GetInfoFromCache(uint64_t addr); template - bool GetName(uint64_t addr, uint64_t load_bias, Memory* elf_memory, std::string* name, - uint64_t* func_offset); + bool GetName(uint64_t addr, Memory* elf_memory, std::string* name, uint64_t* func_offset); template bool GetGlobal(Memory* elf_memory, const std::string& name, uint64_t* memory_address); diff --git a/libunwindstack/include/unwindstack/DwarfSection.h b/libunwindstack/include/unwindstack/DwarfSection.h index 209c54abc..847f382ed 100644 --- a/libunwindstack/include/unwindstack/DwarfSection.h +++ b/libunwindstack/include/unwindstack/DwarfSection.h @@ -78,13 +78,13 @@ class DwarfSection { DwarfErrorCode LastErrorCode() { return last_error_.code; } uint64_t LastErrorAddress() { return last_error_.address; } - virtual bool Init(uint64_t offset, uint64_t size) = 0; + virtual bool Init(uint64_t offset, uint64_t size, uint64_t load_bias) = 0; virtual bool Eval(const DwarfCie*, Memory*, const dwarf_loc_regs_t&, Regs*, bool*) = 0; virtual bool GetFdeOffsetFromPc(uint64_t pc, uint64_t* fde_offset) = 0; - virtual bool Log(uint8_t indent, uint64_t pc, uint64_t load_bias, const DwarfFde* fde) = 0; + virtual bool Log(uint8_t indent, uint64_t pc, const DwarfFde* fde) = 0; virtual const DwarfFde* GetFdeFromIndex(size_t index) = 0; @@ -131,7 +131,7 @@ class DwarfSectionImpl : public DwarfSection { DwarfSectionImpl(Memory* memory) : DwarfSection(memory) {} virtual ~DwarfSectionImpl() = default; - bool Init(uint64_t offset, uint64_t size) override; + bool Init(uint64_t offset, uint64_t size, uint64_t load_bias) override; bool GetFdeOffsetFromPc(uint64_t pc, uint64_t* fde_offset) override; @@ -150,7 +150,7 @@ class DwarfSectionImpl : public DwarfSection { bool GetCfaLocationInfo(uint64_t pc, const DwarfFde* fde, dwarf_loc_regs_t* loc_regs) override; - bool Log(uint8_t indent, uint64_t pc, uint64_t load_bias, const DwarfFde* fde) override; + bool Log(uint8_t indent, uint64_t pc, const DwarfFde* fde) override; protected: bool EvalExpression(const DwarfLocation& loc, Memory* regular_memory, AddressType* value, @@ -162,6 +162,9 @@ class DwarfSectionImpl : public DwarfSection { bool CreateSortedFdeList(); + uint64_t load_bias_ = 0; + uint64_t pc_offset_ = 0; + std::vector fdes_; uint64_t entries_offset_; uint64_t entries_end_; diff --git a/libunwindstack/include/unwindstack/ElfInterface.h b/libunwindstack/include/unwindstack/ElfInterface.h index 3a221bc2e..4d25c4027 100644 --- a/libunwindstack/include/unwindstack/ElfInterface.h +++ b/libunwindstack/include/unwindstack/ElfInterface.h @@ -54,17 +54,15 @@ class ElfInterface { virtual bool Init(uint64_t* load_bias) = 0; - virtual void InitHeaders() = 0; + virtual void InitHeaders(uint64_t load_bias) = 0; virtual bool GetSoname(std::string* name) = 0; - virtual bool GetFunctionName(uint64_t addr, uint64_t load_bias, std::string* name, - uint64_t* offset) = 0; + virtual bool GetFunctionName(uint64_t addr, std::string* name, uint64_t* offset) = 0; virtual bool GetGlobalVariable(const std::string& name, uint64_t* memory_address) = 0; - virtual bool Step(uint64_t rel_pc, uint64_t load_bias, Regs* regs, Memory* process_memory, - bool* finished); + virtual bool Step(uint64_t rel_pc, Regs* regs, Memory* process_memory, bool* finished); virtual bool IsValidPc(uint64_t pc); @@ -100,7 +98,7 @@ class ElfInterface { protected: template - void InitHeadersWithTemplate(); + void InitHeadersWithTemplate(uint64_t load_bias); template bool ReadAllHeaders(uint64_t* load_bias); @@ -115,8 +113,7 @@ class ElfInterface { bool GetSonameWithTemplate(std::string* soname); template - bool GetFunctionNameWithTemplate(uint64_t addr, uint64_t load_bias, std::string* name, - uint64_t* func_offset); + bool GetFunctionNameWithTemplate(uint64_t addr, std::string* name, uint64_t* func_offset); template bool GetGlobalVariableWithTemplate(const std::string& name, uint64_t* memory_address); @@ -169,15 +166,16 @@ class ElfInterface32 : public ElfInterface { return ElfInterface::ReadAllHeaders(load_bias); } - void InitHeaders() override { ElfInterface::InitHeadersWithTemplate(); } + void InitHeaders(uint64_t load_bias) override { + ElfInterface::InitHeadersWithTemplate(load_bias); + } bool GetSoname(std::string* soname) override { return ElfInterface::GetSonameWithTemplate(soname); } - bool GetFunctionName(uint64_t addr, uint64_t load_bias, std::string* name, - uint64_t* func_offset) override { - return ElfInterface::GetFunctionNameWithTemplate(addr, load_bias, name, func_offset); + bool GetFunctionName(uint64_t addr, std::string* name, uint64_t* func_offset) override { + return ElfInterface::GetFunctionNameWithTemplate(addr, name, func_offset); } bool GetGlobalVariable(const std::string& name, uint64_t* memory_address) override { @@ -198,15 +196,16 @@ class ElfInterface64 : public ElfInterface { return ElfInterface::ReadAllHeaders(load_bias); } - void InitHeaders() override { ElfInterface::InitHeadersWithTemplate(); } + void InitHeaders(uint64_t load_bias) override { + ElfInterface::InitHeadersWithTemplate(load_bias); + } bool GetSoname(std::string* soname) override { return ElfInterface::GetSonameWithTemplate(soname); } - bool GetFunctionName(uint64_t addr, uint64_t load_bias, std::string* name, - uint64_t* func_offset) override { - return ElfInterface::GetFunctionNameWithTemplate(addr, load_bias, name, func_offset); + bool GetFunctionName(uint64_t addr, std::string* name, uint64_t* func_offset) override { + return ElfInterface::GetFunctionNameWithTemplate(addr, name, func_offset); } bool GetGlobalVariable(const std::string& name, uint64_t* memory_address) override { diff --git a/libunwindstack/tests/ArmExidxDecodeTest.cpp b/libunwindstack/tests/ArmExidxDecodeTest.cpp index 8d6d00de9..5f3d1ea08 100644 --- a/libunwindstack/tests/ArmExidxDecodeTest.cpp +++ b/libunwindstack/tests/ArmExidxDecodeTest.cpp @@ -36,8 +36,6 @@ namespace unwindstack { class ArmExidxDecodeTest : public ::testing::TestWithParam { protected: void Init(Memory* process_memory = nullptr) { - TearDown(); - if (process_memory == nullptr) { process_memory = &process_memory_; } @@ -50,8 +48,8 @@ class ArmExidxDecodeTest : public ::testing::TestWithParam { regs_arm_->set_sp(0); exidx_.reset(new ArmExidx(regs_arm_.get(), &elf_memory_, process_memory)); - if (log_) { - exidx_->set_log(true); + if (log_ != ARM_LOG_NONE) { + exidx_->set_log(log_); exidx_->set_log_indent(0); exidx_->set_log_skip_execution(false); } @@ -60,14 +58,20 @@ class ArmExidxDecodeTest : public ::testing::TestWithParam { } void SetUp() override { - if (GetParam() != "no_logging") { - log_ = false; + if (GetParam() == "no_logging") { + log_ = ARM_LOG_NONE; + } else if (GetParam() == "register_logging") { + log_ = ARM_LOG_BY_REG; } else { - log_ = true; + log_ = ARM_LOG_FULL; } - ResetLogs(); elf_memory_.Clear(); process_memory_.Clear(); + ResetExidx(); + } + + void ResetExidx() { + ResetLogs(); Init(); } @@ -77,7 +81,7 @@ class ArmExidxDecodeTest : public ::testing::TestWithParam { MemoryFake elf_memory_; MemoryFake process_memory_; - bool log_; + ArmLogType log_; }; TEST_P(ArmExidxDecodeTest, vsp_incr) { @@ -86,38 +90,59 @@ TEST_P(ArmExidxDecodeTest, vsp_incr) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind vsp = vsp + 4\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind vsp = vsp + 4\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ("4 unwind cfa = r13 + 4\n", GetFakeLogPrint()); + break; } ASSERT_EQ(0x10004U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->clear(); data_->push_back(0x01); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind vsp = vsp + 8\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind vsp = vsp + 8\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ("4 unwind cfa = r13 + 8\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x1000cU, exidx_->cfa()); + ASSERT_EQ(0x10008U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->clear(); data_->push_back(0x3f); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind vsp = vsp + 256\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind vsp = vsp + 256\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ("4 unwind cfa = r13 + 256\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x1010cU, exidx_->cfa()); + ASSERT_EQ(0x10100U, exidx_->cfa()); } TEST_P(ArmExidxDecodeTest, vsp_decr) { @@ -126,38 +151,59 @@ TEST_P(ArmExidxDecodeTest, vsp_decr) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind vsp = vsp - 4\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind vsp = vsp - 4\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ("4 unwind cfa = r13 - 4\n", GetFakeLogPrint()); + break; } ASSERT_EQ(0xfffcU, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->clear(); data_->push_back(0x41); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind vsp = vsp - 8\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind vsp = vsp - 8\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ("4 unwind cfa = r13 - 8\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0xfff4U, exidx_->cfa()); + ASSERT_EQ(0xfff8U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->clear(); data_->push_back(0x7f); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind vsp = vsp - 256\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind vsp = vsp - 256\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ("4 unwind cfa = r13 - 256\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0xfef4U, exidx_->cfa()); + ASSERT_EQ(0xff00U, exidx_->cfa()); } TEST_P(ArmExidxDecodeTest, refuse_unwind) { @@ -166,10 +212,14 @@ TEST_P(ArmExidxDecodeTest, refuse_unwind) { data_->push_back(0x00); ASSERT_FALSE(exidx_->Decode()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind Refuse to unwind\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Refuse to unwind\n", GetFakeLogPrint()); + break; } ASSERT_EQ(ARM_STATUS_NO_UNWIND, exidx_->status()); } @@ -182,29 +232,60 @@ TEST_P(ArmExidxDecodeTest, pop_up_to_12) { ASSERT_TRUE(exidx_->Decode()); ASSERT_TRUE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {r15}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {r15}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 + 4\n" + "4 unwind r15 = [cfa - 4]\n", + GetFakeLogPrint()); + break; } ASSERT_EQ(0x10004U, exidx_->cfa()); ASSERT_EQ(0x10U, (*exidx_->regs())[15]); - ResetLogs(); + ResetExidx(); data_->push_back(0x8f); data_->push_back(0xff); for (size_t i = 0; i < 12; i++) { - process_memory_.SetData32(0x10004 + i * 4, i + 0x20); + process_memory_.SetData32(0x10000 + i * 4, i + 0x20); } exidx_->set_pc_set(false); ASSERT_TRUE(exidx_->Decode()); ASSERT_TRUE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15}\n", - GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15}\n", + GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 + 48\n" + "4 unwind r4 = [cfa - 48]\n" + "4 unwind r5 = [cfa - 44]\n" + "4 unwind r6 = [cfa - 40]\n" + "4 unwind r7 = [cfa - 36]\n" + "4 unwind r8 = [cfa - 32]\n" + "4 unwind r9 = [cfa - 28]\n" + "4 unwind r10 = [cfa - 24]\n" + "4 unwind r11 = [cfa - 20]\n" + "4 unwind r12 = [cfa - 16]\n" + "4 unwind r13 = [cfa - 12]\n" + "4 unwind r14 = [cfa - 8]\n" + "4 unwind r15 = [cfa - 4]\n", + GetFakeLogPrint()); + break; } // Popping r13 results in a modified cfa. ASSERT_EQ(0x29U, exidx_->cfa()); @@ -222,7 +303,7 @@ TEST_P(ArmExidxDecodeTest, pop_up_to_12) { ASSERT_EQ(0x2aU, (*exidx_->regs())[14]); ASSERT_EQ(0x2bU, (*exidx_->regs())[15]); - ResetLogs(); + ResetExidx(); exidx_->set_cfa(0x10034); data_->push_back(0x81); data_->push_back(0x28); @@ -233,10 +314,22 @@ TEST_P(ArmExidxDecodeTest, pop_up_to_12) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {r7, r9, r12}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {r7, r9, r12}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 + 12\n" + "4 unwind r7 = [cfa - 12]\n" + "4 unwind r9 = [cfa - 8]\n" + "4 unwind r12 = [cfa - 4]\n", + GetFakeLogPrint()); + break; } ASSERT_EQ(0x10040U, exidx_->cfa()); ASSERT_EQ(0x11U, (*exidx_->regs())[7]); @@ -255,34 +348,63 @@ TEST_P(ArmExidxDecodeTest, set_vsp_from_register) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind vsp = r0\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind vsp = r0\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ("4 unwind cfa = r0\n", GetFakeLogPrint()); + break; } ASSERT_EQ(1U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); + exidx_->set_cfa(0x100); + for (size_t i = 0; i < 15; i++) { + (*regs_arm_)[i] = i + 1; + } data_->push_back(0x93); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind vsp = r3\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind vsp = r3\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ("4 unwind cfa = r3\n", GetFakeLogPrint()); + break; } ASSERT_EQ(4U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); + exidx_->set_cfa(0x100); + for (size_t i = 0; i < 15; i++) { + (*regs_arm_)[i] = i + 1; + } data_->push_back(0x9e); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind vsp = r14\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind vsp = r14\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ("4 unwind cfa = r14\n", GetFakeLogPrint()); + break; } ASSERT_EQ(15U, exidx_->cfa()); } @@ -292,22 +414,30 @@ TEST_P(ArmExidxDecodeTest, reserved_prefix) { data_->push_back(0x9d); ASSERT_FALSE(exidx_->Decode()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind [Reserved]\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind [Reserved]\n", GetFakeLogPrint()); + break; } ASSERT_EQ(ARM_STATUS_RESERVED, exidx_->status()); // 10011111: Reserved as prefix for Intel Wireless MMX register to register moves - ResetLogs(); + ResetExidx(); data_->push_back(0x9f); ASSERT_FALSE(exidx_->Decode()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind [Reserved]\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind [Reserved]\n", GetFakeLogPrint()); + break; } ASSERT_EQ(ARM_STATUS_RESERVED, exidx_->status()); } @@ -319,53 +449,93 @@ TEST_P(ArmExidxDecodeTest, pop_registers) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {r4}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {r4}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 + 4\n" + "4 unwind r4 = [cfa - 4]\n", + GetFakeLogPrint()); + break; } ASSERT_EQ(0x10004U, exidx_->cfa()); ASSERT_EQ(0x14U, (*exidx_->regs())[4]); - ResetLogs(); + ResetExidx(); data_->push_back(0xa3); - process_memory_.SetData32(0x10004, 0x20); - process_memory_.SetData32(0x10008, 0x30); - process_memory_.SetData32(0x1000c, 0x40); - process_memory_.SetData32(0x10010, 0x50); + process_memory_.SetData32(0x10000, 0x20); + process_memory_.SetData32(0x10004, 0x30); + process_memory_.SetData32(0x10008, 0x40); + process_memory_.SetData32(0x1000c, 0x50); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {r4-r7}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {r4-r7}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 + 16\n" + "4 unwind r4 = [cfa - 16]\n" + "4 unwind r5 = [cfa - 12]\n" + "4 unwind r6 = [cfa - 8]\n" + "4 unwind r7 = [cfa - 4]\n", + GetFakeLogPrint()); + break; } - ASSERT_EQ(0x10014U, exidx_->cfa()); + ASSERT_EQ(0x10010U, exidx_->cfa()); ASSERT_EQ(0x20U, (*exidx_->regs())[4]); ASSERT_EQ(0x30U, (*exidx_->regs())[5]); ASSERT_EQ(0x40U, (*exidx_->regs())[6]); ASSERT_EQ(0x50U, (*exidx_->regs())[7]); - ResetLogs(); + ResetExidx(); data_->push_back(0xa7); - process_memory_.SetData32(0x10014, 0x41); - process_memory_.SetData32(0x10018, 0x51); - process_memory_.SetData32(0x1001c, 0x61); - process_memory_.SetData32(0x10020, 0x71); - process_memory_.SetData32(0x10024, 0x81); - process_memory_.SetData32(0x10028, 0x91); - process_memory_.SetData32(0x1002c, 0xa1); - process_memory_.SetData32(0x10030, 0xb1); + process_memory_.SetData32(0x10000, 0x41); + process_memory_.SetData32(0x10004, 0x51); + process_memory_.SetData32(0x10008, 0x61); + process_memory_.SetData32(0x1000c, 0x71); + process_memory_.SetData32(0x10010, 0x81); + process_memory_.SetData32(0x10014, 0x91); + process_memory_.SetData32(0x10018, 0xa1); + process_memory_.SetData32(0x1001c, 0xb1); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {r4-r11}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {r4-r11}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 + 32\n" + "4 unwind r4 = [cfa - 32]\n" + "4 unwind r5 = [cfa - 28]\n" + "4 unwind r6 = [cfa - 24]\n" + "4 unwind r7 = [cfa - 20]\n" + "4 unwind r8 = [cfa - 16]\n" + "4 unwind r9 = [cfa - 12]\n" + "4 unwind r10 = [cfa - 8]\n" + "4 unwind r11 = [cfa - 4]\n", + GetFakeLogPrint()); + break; } - ASSERT_EQ(0x10034U, exidx_->cfa()); + ASSERT_EQ(0x10020U, exidx_->cfa()); ASSERT_EQ(0x41U, (*exidx_->regs())[4]); ASSERT_EQ(0x51U, (*exidx_->regs())[5]); ASSERT_EQ(0x61U, (*exidx_->regs())[6]); @@ -384,57 +554,100 @@ TEST_P(ArmExidxDecodeTest, pop_registers_with_r14) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {r4, r14}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {r4, r14}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 + 8\n" + "4 unwind r4 = [cfa - 8]\n" + "4 unwind r14 = [cfa - 4]\n", + GetFakeLogPrint()); + break; } ASSERT_EQ(0x10008U, exidx_->cfa()); ASSERT_EQ(0x12U, (*exidx_->regs())[4]); ASSERT_EQ(0x22U, (*exidx_->regs())[14]); - ResetLogs(); + ResetExidx(); data_->push_back(0xab); - process_memory_.SetData32(0x10008, 0x1); - process_memory_.SetData32(0x1000c, 0x2); - process_memory_.SetData32(0x10010, 0x3); - process_memory_.SetData32(0x10014, 0x4); - process_memory_.SetData32(0x10018, 0x5); + process_memory_.SetData32(0x10000, 0x1); + process_memory_.SetData32(0x10004, 0x2); + process_memory_.SetData32(0x10008, 0x3); + process_memory_.SetData32(0x1000c, 0x4); + process_memory_.SetData32(0x10010, 0x5); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {r4-r7, r14}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {r4-r7, r14}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 + 20\n" + "4 unwind r4 = [cfa - 20]\n" + "4 unwind r5 = [cfa - 16]\n" + "4 unwind r6 = [cfa - 12]\n" + "4 unwind r7 = [cfa - 8]\n" + "4 unwind r14 = [cfa - 4]\n", + GetFakeLogPrint()); + break; } - ASSERT_EQ(0x1001cU, exidx_->cfa()); + ASSERT_EQ(0x10014U, exidx_->cfa()); ASSERT_EQ(0x1U, (*exidx_->regs())[4]); ASSERT_EQ(0x2U, (*exidx_->regs())[5]); ASSERT_EQ(0x3U, (*exidx_->regs())[6]); ASSERT_EQ(0x4U, (*exidx_->regs())[7]); ASSERT_EQ(0x5U, (*exidx_->regs())[14]); - ResetLogs(); + ResetExidx(); data_->push_back(0xaf); - process_memory_.SetData32(0x1001c, 0x1a); - process_memory_.SetData32(0x10020, 0x2a); - process_memory_.SetData32(0x10024, 0x3a); - process_memory_.SetData32(0x10028, 0x4a); - process_memory_.SetData32(0x1002c, 0x5a); - process_memory_.SetData32(0x10030, 0x6a); - process_memory_.SetData32(0x10034, 0x7a); - process_memory_.SetData32(0x10038, 0x8a); - process_memory_.SetData32(0x1003c, 0x9a); + process_memory_.SetData32(0x10000, 0x1a); + process_memory_.SetData32(0x10004, 0x2a); + process_memory_.SetData32(0x10008, 0x3a); + process_memory_.SetData32(0x1000c, 0x4a); + process_memory_.SetData32(0x10010, 0x5a); + process_memory_.SetData32(0x10014, 0x6a); + process_memory_.SetData32(0x10018, 0x7a); + process_memory_.SetData32(0x1001c, 0x8a); + process_memory_.SetData32(0x10020, 0x9a); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {r4-r11, r14}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {r4-r11, r14}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 + 36\n" + "4 unwind r4 = [cfa - 36]\n" + "4 unwind r5 = [cfa - 32]\n" + "4 unwind r6 = [cfa - 28]\n" + "4 unwind r7 = [cfa - 24]\n" + "4 unwind r8 = [cfa - 20]\n" + "4 unwind r9 = [cfa - 16]\n" + "4 unwind r10 = [cfa - 12]\n" + "4 unwind r11 = [cfa - 8]\n" + "4 unwind r14 = [cfa - 4]\n", + GetFakeLogPrint()); + break; } - ASSERT_EQ(0x10040U, exidx_->cfa()); + ASSERT_EQ(0x10024U, exidx_->cfa()); ASSERT_EQ(0x1aU, (*exidx_->regs())[4]); ASSERT_EQ(0x2aU, (*exidx_->regs())[5]); ASSERT_EQ(0x3aU, (*exidx_->regs())[6]); @@ -451,10 +664,17 @@ TEST_P(ArmExidxDecodeTest, finish) { data_->push_back(0xb0); ASSERT_FALSE(exidx_->Decode()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind finish\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind finish\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ("4 unwind cfa = r13\n", GetFakeLogPrint()); + break; } ASSERT_EQ(0x10000U, exidx_->cfa()); ASSERT_EQ(ARM_STATUS_FINISH, exidx_->status()); @@ -466,10 +686,14 @@ TEST_P(ArmExidxDecodeTest, spare) { data_->push_back(0x00); ASSERT_FALSE(exidx_->Decode()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind Spare\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Spare\n", GetFakeLogPrint()); + break; } ASSERT_EQ(0x10000U, exidx_->cfa()); ASSERT_EQ(ARM_STATUS_SPARE, exidx_->status()); @@ -477,15 +701,19 @@ TEST_P(ArmExidxDecodeTest, spare) { // 10110001 xxxxyyyy: Spare (xxxx != 0000) for (size_t x = 1; x < 16; x++) { for (size_t y = 0; y < 16; y++) { - ResetLogs(); + ResetExidx(); data_->push_back(0xb1); data_->push_back((x << 4) | y); ASSERT_FALSE(exidx_->Decode()) << "x, y = " << x << ", " << y; ASSERT_EQ("", GetFakeLogBuf()) << "x, y = " << x << ", " << y; - if (log_) { - ASSERT_EQ("4 unwind Spare\n", GetFakeLogPrint()) << "x, y = " << x << ", " << y; - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Spare\n", GetFakeLogPrint()) << "x, y = " << x << ", " << y; + break; } ASSERT_EQ(0x10000U, exidx_->cfa()) << "x, y = " << x << ", " << y; ASSERT_EQ(ARM_STATUS_SPARE, exidx_->status()); @@ -494,29 +722,37 @@ TEST_P(ArmExidxDecodeTest, spare) { // 101101nn: Spare for (size_t n = 0; n < 4; n++) { - ResetLogs(); + ResetExidx(); data_->push_back(0xb4 | n); ASSERT_FALSE(exidx_->Decode()) << "n = " << n; ASSERT_EQ("", GetFakeLogBuf()) << "n = " << n; - if (log_) { - ASSERT_EQ("4 unwind Spare\n", GetFakeLogPrint()) << "n = " << n; - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Spare\n", GetFakeLogPrint()) << "n = " << n; + break; } ASSERT_EQ(0x10000U, exidx_->cfa()) << "n = " << n; ASSERT_EQ(ARM_STATUS_SPARE, exidx_->status()); } // 11000111 00000000: Spare - ResetLogs(); + ResetExidx(); data_->push_back(0xc7); data_->push_back(0x00); ASSERT_FALSE(exidx_->Decode()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind Spare\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Spare\n", GetFakeLogPrint()); + break; } ASSERT_EQ(0x10000U, exidx_->cfa()); ASSERT_EQ(ARM_STATUS_SPARE, exidx_->status()); @@ -524,15 +760,19 @@ TEST_P(ArmExidxDecodeTest, spare) { // 11000111 xxxxyyyy: Spare (xxxx != 0000) for (size_t x = 1; x < 16; x++) { for (size_t y = 0; y < 16; y++) { - ResetLogs(); + ResetExidx(); data_->push_back(0xc7); data_->push_back(0x10); ASSERT_FALSE(exidx_->Decode()) << "x, y = " << x << ", " << y; ASSERT_EQ("", GetFakeLogBuf()) << "x, y = " << x << ", " << y; - if (log_) { - ASSERT_EQ("4 unwind Spare\n", GetFakeLogPrint()) << "x, y = " << x << ", " << y; - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Spare\n", GetFakeLogPrint()) << "x, y = " << x << ", " << y; + break; } ASSERT_EQ(0x10000U, exidx_->cfa()) << "x, y = " << x << ", " << y; ASSERT_EQ(ARM_STATUS_SPARE, exidx_->status()); @@ -541,14 +781,18 @@ TEST_P(ArmExidxDecodeTest, spare) { // 11001yyy: Spare (yyy != 000, 001) for (size_t y = 2; y < 8; y++) { - ResetLogs(); + ResetExidx(); data_->push_back(0xc8 | y); ASSERT_FALSE(exidx_->Decode()) << "y = " << y; ASSERT_EQ("", GetFakeLogBuf()) << "y = " << y; - if (log_) { - ASSERT_EQ("4 unwind Spare\n", GetFakeLogPrint()) << "y = " << y; - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Spare\n", GetFakeLogPrint()) << "y = " << y; + break; } ASSERT_EQ(0x10000U, exidx_->cfa()) << "y = " << y; ASSERT_EQ(ARM_STATUS_SPARE, exidx_->status()); @@ -557,14 +801,18 @@ TEST_P(ArmExidxDecodeTest, spare) { // 11xxxyyy: Spare (xxx != 000, 001, 010) for (size_t x = 3; x < 8; x++) { for (size_t y = 0; y < 8; y++) { - ResetLogs(); + ResetExidx(); data_->push_back(0xc0 | (x << 3) | y); ASSERT_FALSE(exidx_->Decode()) << "x, y = " << x << ", " << y; ASSERT_EQ("", GetFakeLogBuf()) << "x, y = " << x << ", " << y; - if (log_) { - ASSERT_EQ("4 unwind Spare\n", GetFakeLogPrint()) << "x, y = " << x << ", " << y; - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Spare\n", GetFakeLogPrint()) << "x, y = " << x << ", " << y; + break; } ASSERT_EQ(0x10000U, exidx_->cfa()) << "x, y = " << x << ", " << y; ASSERT_EQ(ARM_STATUS_SPARE, exidx_->status()); @@ -580,47 +828,81 @@ TEST_P(ArmExidxDecodeTest, pop_registers_under_mask) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {r0}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {r0}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 + 4\n" + "4 unwind r0 = [cfa - 4]\n", + GetFakeLogPrint()); + break; } ASSERT_EQ(0x10004U, exidx_->cfa()); ASSERT_EQ(0x45U, (*exidx_->regs())[0]); - ResetLogs(); + ResetExidx(); data_->push_back(0xb1); data_->push_back(0x0a); - process_memory_.SetData32(0x10004, 0x23); - process_memory_.SetData32(0x10008, 0x24); + process_memory_.SetData32(0x10000, 0x23); + process_memory_.SetData32(0x10004, 0x24); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {r1, r3}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {r1, r3}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 + 8\n" + "4 unwind r1 = [cfa - 8]\n" + "4 unwind r3 = [cfa - 4]\n", + GetFakeLogPrint()); + break; } - ASSERT_EQ(0x1000cU, exidx_->cfa()); + ASSERT_EQ(0x10008U, exidx_->cfa()); ASSERT_EQ(0x23U, (*exidx_->regs())[1]); ASSERT_EQ(0x24U, (*exidx_->regs())[3]); - ResetLogs(); + ResetExidx(); data_->push_back(0xb1); data_->push_back(0x0f); - process_memory_.SetData32(0x1000c, 0x65); - process_memory_.SetData32(0x10010, 0x54); - process_memory_.SetData32(0x10014, 0x43); - process_memory_.SetData32(0x10018, 0x32); + process_memory_.SetData32(0x10000, 0x65); + process_memory_.SetData32(0x10004, 0x54); + process_memory_.SetData32(0x10008, 0x43); + process_memory_.SetData32(0x1000c, 0x32); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {r0, r1, r2, r3}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {r0, r1, r2, r3}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 + 16\n" + "4 unwind r0 = [cfa - 16]\n" + "4 unwind r1 = [cfa - 12]\n" + "4 unwind r2 = [cfa - 8]\n" + "4 unwind r3 = [cfa - 4]\n", + GetFakeLogPrint()); + break; } - ASSERT_EQ(0x1001cU, exidx_->cfa()); + ASSERT_EQ(0x10010U, exidx_->cfa()); ASSERT_EQ(0x65U, (*exidx_->regs())[0]); ASSERT_EQ(0x54U, (*exidx_->regs())[1]); ASSERT_EQ(0x43U, (*exidx_->regs())[2]); @@ -634,28 +916,42 @@ TEST_P(ArmExidxDecodeTest, vsp_large_incr) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind vsp = vsp + 1024\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind vsp = vsp + 1024\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ("4 unwind cfa = r13 + 1024\n", GetFakeLogPrint()); + break; } ASSERT_EQ(0x10400U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xb2); data_->push_back(0xff); data_->push_back(0x02); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind vsp = vsp + 2048\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind vsp = vsp + 2048\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ("4 unwind cfa = r13 + 2048\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x10c00U, exidx_->cfa()); + ASSERT_EQ(0x10800U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xb2); data_->push_back(0xff); data_->push_back(0x82); @@ -663,12 +959,19 @@ TEST_P(ArmExidxDecodeTest, vsp_large_incr) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind vsp = vsp + 3147776\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind vsp = vsp + 3147776\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ("4 unwind cfa = r13 + 3147776\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x311400U, exidx_->cfa()); + ASSERT_EQ(0x310800U, exidx_->cfa()); } TEST_P(ArmExidxDecodeTest, pop_vfp_fstmfdx) { @@ -678,25 +981,37 @@ TEST_P(ArmExidxDecodeTest, pop_vfp_fstmfdx) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {d0}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {d0}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported DX register display\n", GetFakeLogPrint()); + break; } ASSERT_EQ(0x1000cU, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xb3); data_->push_back(0x48); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {d4-d12}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {d4-d12}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported DX register display\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x10058U, exidx_->cfa()); + ASSERT_EQ(0x1004cU, exidx_->cfa()); } TEST_P(ArmExidxDecodeTest, pop_vfp8_fstmfdx) { @@ -705,36 +1020,54 @@ TEST_P(ArmExidxDecodeTest, pop_vfp8_fstmfdx) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {d8}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {d8}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported DX register display\n", GetFakeLogPrint()); + break; } ASSERT_EQ(0x1000cU, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xbb); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {d8-d11}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {d8-d11}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported DX register display\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x10030U, exidx_->cfa()); + ASSERT_EQ(0x10024U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xbf); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {d8-d15}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {d8-d15}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported DX register display\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x10074U, exidx_->cfa()); + ASSERT_EQ(0x10044U, exidx_->cfa()); } TEST_P(ArmExidxDecodeTest, pop_mmx_wr10) { @@ -743,36 +1076,54 @@ TEST_P(ArmExidxDecodeTest, pop_mmx_wr10) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {wR10}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {wR10}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported wRX register display\n", GetFakeLogPrint()); + break; } ASSERT_EQ(0x10008U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xc2); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {wR10-wR12}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {wR10-wR12}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported wRX register display\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x10020U, exidx_->cfa()); + ASSERT_EQ(0x10018U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xc5); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {wR10-wR15}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {wR10-wR15}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported wRX register display\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x10050U, exidx_->cfa()); + ASSERT_EQ(0x10030U, exidx_->cfa()); } TEST_P(ArmExidxDecodeTest, pop_mmx_wr) { @@ -782,38 +1133,56 @@ TEST_P(ArmExidxDecodeTest, pop_mmx_wr) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {wR0}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {wR0}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported wRX register display\n", GetFakeLogPrint()); + break; } ASSERT_EQ(0x10008U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xc6); data_->push_back(0x25); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {wR2-wR7}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {wR2-wR7}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported wRX register display\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x10038U, exidx_->cfa()); + ASSERT_EQ(0x10030U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xc6); data_->push_back(0xff); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {wR15-wR30}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {wR15-wR30}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported wRX register display\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x100b8U, exidx_->cfa()); + ASSERT_EQ(0x10080U, exidx_->cfa()); } TEST_P(ArmExidxDecodeTest, pop_mmx_wcgr) { @@ -823,38 +1192,56 @@ TEST_P(ArmExidxDecodeTest, pop_mmx_wcgr) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {wCGR0}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {wCGR0}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported wCGR register display\n", GetFakeLogPrint()); + break; } ASSERT_EQ(0x10004U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xc7); data_->push_back(0x0a); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {wCGR1, wCGR3}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {wCGR1, wCGR3}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported wCGR register display\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x1000cU, exidx_->cfa()); + ASSERT_EQ(0x10008U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xc7); data_->push_back(0x0f); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {wCGR0, wCGR1, wCGR2, wCGR3}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {wCGR0, wCGR1, wCGR2, wCGR3}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported wCGR register display\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x1001cU, exidx_->cfa()); + ASSERT_EQ(0x10010U, exidx_->cfa()); } TEST_P(ArmExidxDecodeTest, pop_vfp16_vpush) { @@ -864,38 +1251,56 @@ TEST_P(ArmExidxDecodeTest, pop_vfp16_vpush) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {d16}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {d16}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported DX register display\n", GetFakeLogPrint()); + break; } ASSERT_EQ(0x10008U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xc8); data_->push_back(0x14); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {d17-d21}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {d17-d21}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported DX register display\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x10030U, exidx_->cfa()); + ASSERT_EQ(0x10028U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xc8); data_->push_back(0xff); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {d31-d46}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {d31-d46}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported DX register display\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x100b0U, exidx_->cfa()); + ASSERT_EQ(0x10080U, exidx_->cfa()); } TEST_P(ArmExidxDecodeTest, pop_vfp_vpush) { @@ -905,38 +1310,56 @@ TEST_P(ArmExidxDecodeTest, pop_vfp_vpush) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {d0}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {d0}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported DX register display\n", GetFakeLogPrint()); + break; } ASSERT_EQ(0x10008U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xc9); data_->push_back(0x23); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {d2-d5}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {d2-d5}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported DX register display\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x10028U, exidx_->cfa()); + ASSERT_EQ(0x10020U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xc9); data_->push_back(0xff); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {d15-d30}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {d15-d30}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported DX register display\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x100a8U, exidx_->cfa()); + ASSERT_EQ(0x10080U, exidx_->cfa()); } TEST_P(ArmExidxDecodeTest, pop_vfp8_vpush) { @@ -945,36 +1368,54 @@ TEST_P(ArmExidxDecodeTest, pop_vfp8_vpush) { ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {d8}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {d8}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported DX register display\n", GetFakeLogPrint()); + break; } ASSERT_EQ(0x10008U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xd2); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {d8-d10}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {d8-d10}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported DX register display\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x10020U, exidx_->cfa()); + ASSERT_EQ(0x10018U, exidx_->cfa()); - ResetLogs(); + ResetExidx(); data_->push_back(0xd7); ASSERT_TRUE(exidx_->Decode()); ASSERT_FALSE(exidx_->pc_set()); ASSERT_EQ("", GetFakeLogBuf()); - if (log_) { - ASSERT_EQ("4 unwind pop {d8-d15}\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ("4 unwind pop {d8-d15}\n", GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + ASSERT_EQ("4 unwind Unsupported DX register display\n", GetFakeLogPrint()); + break; } - ASSERT_EQ(0x10060U, exidx_->cfa()); + ASSERT_EQ(0x10040U, exidx_->cfa()); } TEST_P(ArmExidxDecodeTest, expect_truncated) { @@ -1047,32 +1488,147 @@ TEST_P(ArmExidxDecodeTest, verify_no_truncated) { TEST_P(ArmExidxDecodeTest, eval_multiple_decodes) { // vsp = vsp + 4 data_->push_back(0x00); - // vsp = vsp + 8 + // vsp = vsp + 12 data_->push_back(0x02); // Finish data_->push_back(0xb0); ASSERT_TRUE(exidx_->Eval()); - if (log_) { - ASSERT_EQ("4 unwind vsp = vsp + 4\n" - "4 unwind vsp = vsp + 12\n" - "4 unwind finish\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ( + "4 unwind vsp = vsp + 4\n" + "4 unwind vsp = vsp + 12\n" + "4 unwind finish\n", + GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ("4 unwind cfa = r13 + 16\n", GetFakeLogPrint()); + break; } ASSERT_EQ(0x10010U, exidx_->cfa()); ASSERT_FALSE(exidx_->pc_set()); } +TEST_P(ArmExidxDecodeTest, eval_vsp_add_after_pop) { + // Pop {r15} + data_->push_back(0x88); + data_->push_back(0x00); + // vsp = vsp + 12 + data_->push_back(0x02); + // Finish + data_->push_back(0xb0); + process_memory_.SetData32(0x10000, 0x10); + + ASSERT_TRUE(exidx_->Eval()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ( + "4 unwind pop {r15}\n" + "4 unwind vsp = vsp + 12\n" + "4 unwind finish\n", + GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 + 16\n" + "4 unwind r15 = [cfa - 16]\n", + GetFakeLogPrint()); + break; + } + ASSERT_EQ(0x10010U, exidx_->cfa()); + ASSERT_TRUE(exidx_->pc_set()); + ASSERT_EQ(0x10U, (*exidx_->regs())[15]); +} + +TEST_P(ArmExidxDecodeTest, eval_vsp_add_large_after_pop) { + // Pop {r15} + data_->push_back(0x88); + data_->push_back(0x00); + // vsp = vsp + 1024 + data_->push_back(0xb2); + data_->push_back(0x7f); + // Finish + data_->push_back(0xb0); + process_memory_.SetData32(0x10000, 0x10); + + ASSERT_TRUE(exidx_->Eval()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ( + "4 unwind pop {r15}\n" + "4 unwind vsp = vsp + 1024\n" + "4 unwind finish\n", + GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 + 1028\n" + "4 unwind r15 = [cfa - 1028]\n", + GetFakeLogPrint()); + break; + } + ASSERT_EQ(0x10404U, exidx_->cfa()); + ASSERT_TRUE(exidx_->pc_set()); + ASSERT_EQ(0x10U, (*exidx_->regs())[15]); +} + +TEST_P(ArmExidxDecodeTest, eval_vsp_sub_after_pop) { + // Pop {r15} + data_->push_back(0x88); + data_->push_back(0x00); + // vsp = vsp - 4 + data_->push_back(0x41); + // Finish + data_->push_back(0xb0); + process_memory_.SetData32(0x10000, 0x10); + + ASSERT_TRUE(exidx_->Eval()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ( + "4 unwind pop {r15}\n" + "4 unwind vsp = vsp - 8\n" + "4 unwind finish\n", + GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 - 4\n" + "4 unwind r15 = [cfa + 4]\n", + GetFakeLogPrint()); + break; + } + ASSERT_EQ(0xfffcU, exidx_->cfa()); + ASSERT_TRUE(exidx_->pc_set()); + ASSERT_EQ(0x10U, (*exidx_->regs())[15]); +} + TEST_P(ArmExidxDecodeTest, eval_pc_set) { // vsp = vsp + 4 data_->push_back(0x00); - // vsp = vsp + 8 + // vsp = vsp + 12 data_->push_back(0x02); // Pop {r15} data_->push_back(0x88); data_->push_back(0x00); - // vsp = vsp + 8 + // vsp = vsp + 12 data_->push_back(0x02); // Finish data_->push_back(0xb0); @@ -1080,20 +1636,33 @@ TEST_P(ArmExidxDecodeTest, eval_pc_set) { process_memory_.SetData32(0x10010, 0x10); ASSERT_TRUE(exidx_->Eval()); - if (log_) { - ASSERT_EQ("4 unwind vsp = vsp + 4\n" - "4 unwind vsp = vsp + 12\n" - "4 unwind pop {r15}\n" - "4 unwind vsp = vsp + 12\n" - "4 unwind finish\n", GetFakeLogPrint()); - } else { - ASSERT_EQ("", GetFakeLogPrint()); + switch (log_) { + case ARM_LOG_NONE: + ASSERT_EQ("", GetFakeLogPrint()); + break; + case ARM_LOG_FULL: + ASSERT_EQ( + "4 unwind vsp = vsp + 4\n" + "4 unwind vsp = vsp + 12\n" + "4 unwind pop {r15}\n" + "4 unwind vsp = vsp + 12\n" + "4 unwind finish\n", + GetFakeLogPrint()); + break; + case ARM_LOG_BY_REG: + exidx_->LogByReg(); + ASSERT_EQ( + "4 unwind cfa = r13 + 32\n" + "4 unwind r15 = [cfa - 16]\n", + GetFakeLogPrint()); + break; } ASSERT_EQ(0x10020U, exidx_->cfa()); ASSERT_TRUE(exidx_->pc_set()); ASSERT_EQ(0x10U, (*exidx_->regs())[15]); } -INSTANTIATE_TEST_CASE_P(, ArmExidxDecodeTest, ::testing::Values("logging", "no_logging")); +INSTANTIATE_TEST_CASE_P(, ArmExidxDecodeTest, + ::testing::Values("logging", "register_logging", "no_logging")); } // namespace unwindstack diff --git a/libunwindstack/tests/ArmExidxExtractTest.cpp b/libunwindstack/tests/ArmExidxExtractTest.cpp index 8d0f0e599..79c799c3a 100644 --- a/libunwindstack/tests/ArmExidxExtractTest.cpp +++ b/libunwindstack/tests/ArmExidxExtractTest.cpp @@ -301,7 +301,7 @@ TEST_F(ArmExidxExtractTest, cant_unwind_log) { elf_memory_.SetData32(0x1000, 0x7fff2340); elf_memory_.SetData32(0x1004, 1); - exidx_->set_log(true); + exidx_->set_log(ARM_LOG_FULL); exidx_->set_log_indent(0); exidx_->set_log_skip_execution(false); @@ -316,7 +316,7 @@ TEST_F(ArmExidxExtractTest, raw_data_compact) { elf_memory_.SetData32(0x4000, 0x7ffa3000); elf_memory_.SetData32(0x4004, 0x80a8b0b0); - exidx_->set_log(true); + exidx_->set_log(ARM_LOG_FULL); exidx_->set_log_indent(0); exidx_->set_log_skip_execution(false); @@ -330,7 +330,7 @@ TEST_F(ArmExidxExtractTest, raw_data_non_compact) { elf_memory_.SetData32(0x6234, 0x2); elf_memory_.SetData32(0x6238, 0x00112233); - exidx_->set_log(true); + exidx_->set_log(ARM_LOG_FULL); exidx_->set_log_indent(0); exidx_->set_log_skip_execution(false); diff --git a/libunwindstack/tests/DwarfCfaLogTest.cpp b/libunwindstack/tests/DwarfCfaLogTest.cpp index b17ca33a8..bb2e8f039 100644 --- a/libunwindstack/tests/DwarfCfaLogTest.cpp +++ b/libunwindstack/tests/DwarfCfaLogTest.cpp @@ -79,7 +79,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_illegal) { this->memory_.SetMemory(0x2000, std::vector{i}); ResetLogs(); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x2000, 0x2001)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x2000, 0x2001)); std::string expected = "4 unwind Illegal\n"; expected += android::base::StringPrintf("4 unwind Raw Data: 0x%02x\n", i); ASSERT_EQ(expected, GetFakeLogPrint()); @@ -90,7 +90,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_illegal) { TYPED_TEST_P(DwarfCfaLogTest, cfa_nop) { this->memory_.SetMemory(0x2000, std::vector{0x00}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x2000, 0x2001)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x2000, 0x2001)); std::string expected = "4 unwind DW_CFA_nop\n" "4 unwind Raw Data: 0x00\n"; @@ -101,7 +101,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_nop) { TYPED_TEST_P(DwarfCfaLogTest, cfa_offset) { this->memory_.SetMemory(0x2000, std::vector{0x83, 0x04}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x2000, 0x2002)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x2000, 0x2002)); std::string expected = "4 unwind DW_CFA_offset register(3) 4\n" "4 unwind Raw Data: 0x83 0x04\n"; @@ -111,7 +111,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_offset) { ResetLogs(); this->memory_.SetMemory(0x2100, std::vector{0x83, 0x84, 0x01}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x2100, 0x2103)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x2100, 0x2103)); expected = "4 unwind DW_CFA_offset register(3) 132\n" "4 unwind Raw Data: 0x83 0x84 0x01\n"; @@ -122,7 +122,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_offset) { TYPED_TEST_P(DwarfCfaLogTest, cfa_offset_extended) { this->memory_.SetMemory(0x500, std::vector{0x05, 0x03, 0x02}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x500, 0x503)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x500, 0x503)); std::string expected = "4 unwind DW_CFA_offset_extended register(3) 2\n" "4 unwind Raw Data: 0x05 0x03 0x02\n"; @@ -132,7 +132,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_offset_extended) { ResetLogs(); this->memory_.SetMemory(0x1500, std::vector{0x05, 0x81, 0x01, 0x82, 0x12}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x1500, 0x1505)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x1500, 0x1505)); expected = "4 unwind DW_CFA_offset_extended register(129) 2306\n" "4 unwind Raw Data: 0x05 0x81 0x01 0x82 0x12\n"; @@ -143,7 +143,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_offset_extended) { TYPED_TEST_P(DwarfCfaLogTest, cfa_offset_extended_sf) { this->memory_.SetMemory(0x500, std::vector{0x11, 0x05, 0x10}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x500, 0x503)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x500, 0x503)); std::string expected = "4 unwind DW_CFA_offset_extended_sf register(5) 16\n" "4 unwind Raw Data: 0x11 0x05 0x10\n"; @@ -154,7 +154,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_offset_extended_sf) { ResetLogs(); this->memory_.SetMemory(0x1500, std::vector{0x11, 0x86, 0x01, 0xff, 0x7f}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x1500, 0x1505)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x1500, 0x1505)); expected = "4 unwind DW_CFA_offset_extended_sf register(134) -1\n" "4 unwind Raw Data: 0x11 0x86 0x01 0xff 0x7f\n"; @@ -165,7 +165,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_offset_extended_sf) { TYPED_TEST_P(DwarfCfaLogTest, cfa_restore) { this->memory_.SetMemory(0x2000, std::vector{0xc2}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x2000, 0x2001)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x2000, 0x2001)); std::string expected = "4 unwind DW_CFA_restore register(2)\n" "4 unwind Raw Data: 0xc2\n"; @@ -175,7 +175,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_restore) { ResetLogs(); this->memory_.SetMemory(0x3000, std::vector{0x82, 0x04, 0xc2}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x3000, 0x3003)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x3000, 0x3003)); expected = "4 unwind DW_CFA_offset register(2) 4\n" "4 unwind Raw Data: 0x82 0x04\n" @@ -188,7 +188,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_restore) { TYPED_TEST_P(DwarfCfaLogTest, cfa_restore_extended) { this->memory_.SetMemory(0x4000, std::vector{0x06, 0x08}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x4000, 0x4002)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x4000, 0x4002)); std::string expected = "4 unwind DW_CFA_restore_extended register(8)\n" "4 unwind Raw Data: 0x06 0x08\n"; @@ -198,7 +198,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_restore_extended) { ResetLogs(); this->memory_.SetMemory(0x5000, std::vector{0x05, 0x82, 0x02, 0x04, 0x06, 0x82, 0x02}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x5000, 0x5007)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x5000, 0x5007)); expected = "4 unwind DW_CFA_offset_extended register(258) 4\n" "4 unwind Raw Data: 0x05 0x82 0x02 0x04\n" @@ -228,7 +228,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_set_loc) { this->memory_.SetMemory(0x50, buffer, sizeof(buffer)); ResetLogs(); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x50, 0x51 + sizeof(TypeParam))); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x50, 0x51 + sizeof(TypeParam))); std::string expected = "4 unwind DW_CFA_set_loc " + address_str + "\n"; expected += "4 unwind " + raw_data + "\n"; expected += "4 unwind \n"; @@ -240,7 +240,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_set_loc) { ResetLogs(); this->fde_.pc_start = address + 0x10; - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x50, 0x51 + sizeof(TypeParam))); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x50, 0x51 + sizeof(TypeParam))); expected = "4 unwind DW_CFA_set_loc " + address_str + "\n"; expected += "4 unwind " + raw_data + "\n"; expected += "4 unwind \n"; @@ -252,7 +252,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_set_loc) { TYPED_TEST_P(DwarfCfaLogTest, cfa_advance_loc) { this->memory_.SetMemory(0x200, std::vector{0x44}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x200, 0x201)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x200, 0x201)); std::string expected = "4 unwind DW_CFA_advance_loc 4\n" "4 unwind Raw Data: 0x44\n" @@ -260,22 +260,12 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_advance_loc) { "4 unwind PC 0x2010\n"; ASSERT_EQ(expected, GetFakeLogPrint()); ASSERT_EQ("", GetFakeLogBuf()); - - ResetLogs(); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x100, 0x200, 0x201)); - expected = - "4 unwind DW_CFA_advance_loc 4\n" - "4 unwind Raw Data: 0x44\n" - "4 unwind \n" - "4 unwind PC 0x2110\n"; - ASSERT_EQ(expected, GetFakeLogPrint()); - ASSERT_EQ("", GetFakeLogBuf()); } TYPED_TEST_P(DwarfCfaLogTest, cfa_advance_loc1) { this->memory_.SetMemory(0x200, std::vector{0x02, 0x04}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x200, 0x202)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x200, 0x202)); std::string expected = "4 unwind DW_CFA_advance_loc1 4\n" "4 unwind Raw Data: 0x02 0x04\n" @@ -283,22 +273,12 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_advance_loc1) { "4 unwind PC 0x2004\n"; ASSERT_EQ(expected, GetFakeLogPrint()); ASSERT_EQ("", GetFakeLogBuf()); - - ResetLogs(); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x10, 0x200, 0x202)); - expected = - "4 unwind DW_CFA_advance_loc1 4\n" - "4 unwind Raw Data: 0x02 0x04\n" - "4 unwind \n" - "4 unwind PC 0x2014\n"; - ASSERT_EQ(expected, GetFakeLogPrint()); - ASSERT_EQ("", GetFakeLogBuf()); } TYPED_TEST_P(DwarfCfaLogTest, cfa_advance_loc2) { this->memory_.SetMemory(0x600, std::vector{0x03, 0x04, 0x03}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x600, 0x603)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x600, 0x603)); std::string expected = "4 unwind DW_CFA_advance_loc2 772\n" "4 unwind Raw Data: 0x03 0x04 0x03\n" @@ -306,22 +286,12 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_advance_loc2) { "4 unwind PC 0x2304\n"; ASSERT_EQ(expected, GetFakeLogPrint()); ASSERT_EQ("", GetFakeLogBuf()); - - ResetLogs(); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x1000, 0x600, 0x603)); - expected = - "4 unwind DW_CFA_advance_loc2 772\n" - "4 unwind Raw Data: 0x03 0x04 0x03\n" - "4 unwind \n" - "4 unwind PC 0x3304\n"; - ASSERT_EQ(expected, GetFakeLogPrint()); - ASSERT_EQ("", GetFakeLogBuf()); } TYPED_TEST_P(DwarfCfaLogTest, cfa_advance_loc4) { this->memory_.SetMemory(0x500, std::vector{0x04, 0x04, 0x03, 0x02, 0x01}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x500, 0x505)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x500, 0x505)); std::string expected = "4 unwind DW_CFA_advance_loc4 16909060\n" "4 unwind Raw Data: 0x04 0x04 0x03 0x02 0x01\n" @@ -329,22 +299,12 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_advance_loc4) { "4 unwind PC 0x1022304\n"; ASSERT_EQ(expected, GetFakeLogPrint()); ASSERT_EQ("", GetFakeLogBuf()); - - ResetLogs(); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x2000, 0x500, 0x505)); - expected = - "4 unwind DW_CFA_advance_loc4 16909060\n" - "4 unwind Raw Data: 0x04 0x04 0x03 0x02 0x01\n" - "4 unwind \n" - "4 unwind PC 0x1024304\n"; - ASSERT_EQ(expected, GetFakeLogPrint()); - ASSERT_EQ("", GetFakeLogBuf()); } TYPED_TEST_P(DwarfCfaLogTest, cfa_undefined) { this->memory_.SetMemory(0xa00, std::vector{0x07, 0x09}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0xa00, 0xa02)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0xa00, 0xa02)); std::string expected = "4 unwind DW_CFA_undefined register(9)\n" "4 unwind Raw Data: 0x07 0x09\n"; @@ -355,7 +315,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_undefined) { dwarf_loc_regs_t cie_loc_regs; this->memory_.SetMemory(0x1a00, std::vector{0x07, 0x81, 0x01}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x1a00, 0x1a03)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x1a00, 0x1a03)); expected = "4 unwind DW_CFA_undefined register(129)\n" "4 unwind Raw Data: 0x07 0x81 0x01\n"; @@ -366,7 +326,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_undefined) { TYPED_TEST_P(DwarfCfaLogTest, cfa_same) { this->memory_.SetMemory(0x100, std::vector{0x08, 0x7f}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x100, 0x102)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x100, 0x102)); std::string expected = "4 unwind DW_CFA_same_value register(127)\n" "4 unwind Raw Data: 0x08 0x7f\n"; @@ -376,7 +336,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_same) { ResetLogs(); this->memory_.SetMemory(0x2100, std::vector{0x08, 0xff, 0x01}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x2100, 0x2103)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x2100, 0x2103)); expected = "4 unwind DW_CFA_same_value register(255)\n" "4 unwind Raw Data: 0x08 0xff 0x01\n"; @@ -387,7 +347,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_same) { TYPED_TEST_P(DwarfCfaLogTest, cfa_register) { this->memory_.SetMemory(0x300, std::vector{0x09, 0x02, 0x01}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x300, 0x303)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x300, 0x303)); std::string expected = "4 unwind DW_CFA_register register(2) register(1)\n" "4 unwind Raw Data: 0x09 0x02 0x01\n"; @@ -397,7 +357,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_register) { ResetLogs(); this->memory_.SetMemory(0x4300, std::vector{0x09, 0xff, 0x01, 0xff, 0x03}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x4300, 0x4305)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x4300, 0x4305)); expected = "4 unwind DW_CFA_register register(255) register(511)\n" "4 unwind Raw Data: 0x09 0xff 0x01 0xff 0x03\n"; @@ -408,7 +368,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_register) { TYPED_TEST_P(DwarfCfaLogTest, cfa_state) { this->memory_.SetMemory(0x300, std::vector{0x0a}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x300, 0x301)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x300, 0x301)); std::string expected = "4 unwind DW_CFA_remember_state\n" @@ -419,7 +379,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_state) { ResetLogs(); this->memory_.SetMemory(0x4300, std::vector{0x0b}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x4300, 0x4301)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x4300, 0x4301)); expected = "4 unwind DW_CFA_restore_state\n" @@ -431,7 +391,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_state) { TYPED_TEST_P(DwarfCfaLogTest, cfa_state_cfa_offset_restore) { this->memory_.SetMemory(0x3000, std::vector{0x0a, 0x0e, 0x40, 0x0b}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x3000, 0x3004)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x3000, 0x3004)); std::string expected = "4 unwind DW_CFA_remember_state\n" @@ -447,7 +407,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_state_cfa_offset_restore) { TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa) { this->memory_.SetMemory(0x100, std::vector{0x0c, 0x7f, 0x74}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x100, 0x103)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x100, 0x103)); std::string expected = "4 unwind DW_CFA_def_cfa register(127) 116\n" @@ -458,7 +418,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa) { ResetLogs(); this->memory_.SetMemory(0x200, std::vector{0x0c, 0xff, 0x02, 0xf4, 0x04}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x200, 0x205)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x200, 0x205)); expected = "4 unwind DW_CFA_def_cfa register(383) 628\n" @@ -470,7 +430,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa) { TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_sf) { this->memory_.SetMemory(0x100, std::vector{0x12, 0x30, 0x25}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x100, 0x103)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x100, 0x103)); std::string expected = "4 unwind DW_CFA_def_cfa_sf register(48) 37\n" @@ -482,7 +442,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_sf) { ResetLogs(); this->memory_.SetMemory(0x200, std::vector{0x12, 0xa3, 0x01, 0xfa, 0x7f}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x200, 0x205)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x200, 0x205)); expected = "4 unwind DW_CFA_def_cfa_sf register(163) -6\n" @@ -494,7 +454,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_sf) { TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_register) { this->memory_.SetMemory(0x100, std::vector{0x0d, 0x72}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x100, 0x102)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x100, 0x102)); std::string expected = "4 unwind DW_CFA_def_cfa_register register(114)\n" @@ -505,7 +465,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_register) { ResetLogs(); this->memory_.SetMemory(0x200, std::vector{0x0d, 0xf9, 0x20}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x200, 0x203)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x200, 0x203)); expected = "4 unwind DW_CFA_def_cfa_register register(4217)\n" @@ -517,7 +477,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_register) { TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_offset) { this->memory_.SetMemory(0x100, std::vector{0x0e, 0x59}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x100, 0x102)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x100, 0x102)); std::string expected = "4 unwind DW_CFA_def_cfa_offset 89\n" @@ -526,7 +486,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_offset) { ASSERT_EQ("", GetFakeLogBuf()); ResetLogs(); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x100, 0x102)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x100, 0x102)); expected = "4 unwind DW_CFA_def_cfa_offset 89\n" @@ -537,7 +497,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_offset) { ResetLogs(); this->memory_.SetMemory(0x200, std::vector{0x0e, 0xd4, 0x0a}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x200, 0x203)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x200, 0x203)); expected = "4 unwind DW_CFA_def_cfa_offset 1364\n" @@ -549,7 +509,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_offset) { TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_offset_sf) { this->memory_.SetMemory(0x100, std::vector{0x13, 0x23}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x100, 0x102)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x100, 0x102)); std::string expected = "4 unwind DW_CFA_def_cfa_offset_sf 35\n" @@ -558,7 +518,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_offset_sf) { ASSERT_EQ("", GetFakeLogBuf()); ResetLogs(); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x100, 0x102)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x100, 0x102)); expected = "4 unwind DW_CFA_def_cfa_offset_sf 35\n" @@ -570,7 +530,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_offset_sf) { ResetLogs(); this->memory_.SetMemory(0x200, std::vector{0x13, 0xf6, 0x7f}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x200, 0x203)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x200, 0x203)); expected = "4 unwind DW_CFA_def_cfa_offset_sf -10\n" @@ -582,7 +542,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_offset_sf) { TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_expression) { this->memory_.SetMemory(0x100, std::vector{0x0f, 0x04, 0x01, 0x02, 0x04, 0x05}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x100, 0x106)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x100, 0x106)); std::string expected = "4 unwind DW_CFA_def_cfa_expression 4\n" @@ -614,7 +574,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_expression) { } expected += '\n'; this->memory_.SetMemory(0x200, ops); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x200, 0x284)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x200, 0x284)); expected = "4 unwind DW_CFA_def_cfa_expression 129\n" + expected; ASSERT_EQ(expected + op_string, GetFakeLogPrint()); @@ -624,7 +584,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_def_cfa_expression) { TYPED_TEST_P(DwarfCfaLogTest, cfa_expression) { this->memory_.SetMemory(0x100, std::vector{0x10, 0x04, 0x02, 0xc0, 0xc1}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x100, 0x105)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x100, 0x105)); std::string expected = "4 unwind DW_CFA_expression register(4) 2\n" @@ -652,7 +612,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_expression) { expected = "4 unwind DW_CFA_expression register(255) 130\n" + expected + "\n"; this->memory_.SetMemory(0x200, ops); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x200, 0x287)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x200, 0x287)); ASSERT_EQ(expected + op_string, GetFakeLogPrint()); ASSERT_EQ("", GetFakeLogBuf()); @@ -661,7 +621,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_expression) { TYPED_TEST_P(DwarfCfaLogTest, cfa_val_offset) { this->memory_.SetMemory(0x100, std::vector{0x14, 0x45, 0x54}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x100, 0x103)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x100, 0x103)); std::string expected = "4 unwind DW_CFA_val_offset register(69) 84\n" @@ -672,7 +632,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_val_offset) { ResetLogs(); this->memory_.SetMemory(0x400, std::vector{0x14, 0xa2, 0x02, 0xb4, 0x05}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x400, 0x405)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x400, 0x405)); expected = "4 unwind DW_CFA_val_offset register(290) 692\n" @@ -684,7 +644,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_val_offset) { TYPED_TEST_P(DwarfCfaLogTest, cfa_val_offset_sf) { this->memory_.SetMemory(0x100, std::vector{0x15, 0x56, 0x12}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x100, 0x103)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x100, 0x103)); std::string expected = "4 unwind DW_CFA_val_offset_sf register(86) 18\n" @@ -696,7 +656,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_val_offset_sf) { ResetLogs(); this->memory_.SetMemory(0xa00, std::vector{0x15, 0xff, 0x01, 0xc0, 0x7f}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0xa00, 0xa05)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0xa00, 0xa05)); expected = "4 unwind DW_CFA_val_offset_sf register(255) -64\n" @@ -708,7 +668,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_val_offset_sf) { TYPED_TEST_P(DwarfCfaLogTest, cfa_val_expression) { this->memory_.SetMemory(0x100, std::vector{0x16, 0x05, 0x02, 0xb0, 0xb1}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x100, 0x105)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x100, 0x105)); std::string expected = "4 unwind DW_CFA_val_expression register(5) 2\n" @@ -737,7 +697,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_val_expression) { this->memory_.SetMemory(0xa00, ops); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0xa00, 0xaad)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0xa00, 0xaad)); ASSERT_EQ(expected + op_string, GetFakeLogPrint()); ASSERT_EQ("", GetFakeLogBuf()); @@ -746,7 +706,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_val_expression) { TYPED_TEST_P(DwarfCfaLogTest, cfa_gnu_args_size) { this->memory_.SetMemory(0x2000, std::vector{0x2e, 0x04}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x2000, 0x2002)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x2000, 0x2002)); std::string expected = "4 unwind DW_CFA_GNU_args_size 4\n" @@ -757,7 +717,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_gnu_args_size) { ResetLogs(); this->memory_.SetMemory(0x5000, std::vector{0x2e, 0xa4, 0x80, 0x04}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x5000, 0x5004)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x5000, 0x5004)); expected = "4 unwind DW_CFA_GNU_args_size 65572\n" @@ -769,7 +729,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_gnu_args_size) { TYPED_TEST_P(DwarfCfaLogTest, cfa_gnu_negative_offset_extended) { this->memory_.SetMemory(0x500, std::vector{0x2f, 0x08, 0x10}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x500, 0x503)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x500, 0x503)); std::string expected = "4 unwind DW_CFA_GNU_negative_offset_extended register(8) 16\n" @@ -780,7 +740,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_gnu_negative_offset_extended) { ResetLogs(); this->memory_.SetMemory(0x1500, std::vector{0x2f, 0x81, 0x02, 0xff, 0x01}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x1500, 0x1505)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x1500, 0x1505)); expected = "4 unwind DW_CFA_GNU_negative_offset_extended register(257) 255\n" @@ -792,7 +752,7 @@ TYPED_TEST_P(DwarfCfaLogTest, cfa_gnu_negative_offset_extended) { TYPED_TEST_P(DwarfCfaLogTest, cfa_register_override) { this->memory_.SetMemory(0x300, std::vector{0x09, 0x02, 0x01, 0x09, 0x02, 0x04}); - ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0, 0x300, 0x306)); + ASSERT_TRUE(this->cfa_->Log(0, this->fde_.pc_start, 0x300, 0x306)); std::string expected = "4 unwind DW_CFA_register register(2) register(1)\n" diff --git a/libunwindstack/tests/DwarfDebugFrameTest.cpp b/libunwindstack/tests/DwarfDebugFrameTest.cpp index c28a41edb..3a5204463 100644 --- a/libunwindstack/tests/DwarfDebugFrameTest.cpp +++ b/libunwindstack/tests/DwarfDebugFrameTest.cpp @@ -103,7 +103,7 @@ TYPED_TEST_P(DwarfDebugFrameTest, Init32) { this->memory_.SetData32(0x5508, 0x4500); this->memory_.SetData32(0x550c, 0x500); - ASSERT_TRUE(this->debug_frame_->Init(0x5000, 0x600)); + ASSERT_TRUE(this->debug_frame_->Init(0x5000, 0x600, 0)); ASSERT_EQ(4U, this->debug_frame_->TestGetFdeCount()); typename DwarfDebugFrame::FdeInfo info(0, 0, 0); @@ -142,7 +142,7 @@ TYPED_TEST_P(DwarfDebugFrameTest, Init32_fde_not_following_cie) { this->memory_.SetData32(0x5108, 0x1500); this->memory_.SetData32(0x510c, 0x200); - ASSERT_FALSE(this->debug_frame_->Init(0x5000, 0x600)); + ASSERT_FALSE(this->debug_frame_->Init(0x5000, 0x600, 0)); ASSERT_EQ(DWARF_ERROR_ILLEGAL_VALUE, this->debug_frame_->LastErrorCode()); } @@ -181,7 +181,7 @@ TYPED_TEST_P(DwarfDebugFrameTest, Init32_do_not_fail_on_bad_next_entry) { this->memory_.SetData32(0x5508, 0x4500); this->memory_.SetData32(0x550c, 0x500); - ASSERT_TRUE(this->debug_frame_->Init(0x5000, 0x600)); + ASSERT_TRUE(this->debug_frame_->Init(0x5000, 0x600, 0)); ASSERT_EQ(2U, this->debug_frame_->TestGetFdeCount()); } @@ -226,7 +226,7 @@ TYPED_TEST_P(DwarfDebugFrameTest, Init64) { this->memory_.SetData64(0x5514, 0x4500); this->memory_.SetData64(0x551c, 0x500); - ASSERT_TRUE(this->debug_frame_->Init(0x5000, 0x600)); + ASSERT_TRUE(this->debug_frame_->Init(0x5000, 0x600, 0)); ASSERT_EQ(4U, this->debug_frame_->TestGetFdeCount()); typename DwarfDebugFrame::FdeInfo info(0, 0, 0); @@ -267,7 +267,7 @@ TYPED_TEST_P(DwarfDebugFrameTest, Init64_fde_not_following_cie) { this->memory_.SetData64(0x5114, 0x1500); this->memory_.SetData64(0x511c, 0x200); - ASSERT_FALSE(this->debug_frame_->Init(0x5000, 0x600)); + ASSERT_FALSE(this->debug_frame_->Init(0x5000, 0x600, 0)); ASSERT_EQ(DWARF_ERROR_ILLEGAL_VALUE, this->debug_frame_->LastErrorCode()); } @@ -312,10 +312,48 @@ TYPED_TEST_P(DwarfDebugFrameTest, Init64_do_not_fail_on_bad_next_entry) { this->memory_.SetData64(0x5514, 0x4500); this->memory_.SetData64(0x551c, 0x500); - ASSERT_TRUE(this->debug_frame_->Init(0x5000, 0x600)); + ASSERT_TRUE(this->debug_frame_->Init(0x5000, 0x600, 0)); ASSERT_EQ(2U, this->debug_frame_->TestGetFdeCount()); } +TYPED_TEST_P(DwarfDebugFrameTest, Init_non_zero_load_bias) { + // CIE 32 information. + this->memory_.SetData32(0x5000, 0xfc); + this->memory_.SetData32(0x5004, 0xffffffff); + this->memory_.SetData8(0x5008, 1); + this->memory_.SetData8(0x5009, 'z'); + this->memory_.SetData8(0x500a, 'R'); + this->memory_.SetData8(0x500b, '\0'); + this->memory_.SetData8(0x500c, 0); + this->memory_.SetData8(0x500d, 0); + this->memory_.SetData8(0x500e, 0); + this->memory_.SetData8(0x500f, 0); + this->memory_.SetData8(0x5010, 0x1b); + + // FDE 32 information. + this->memory_.SetData32(0x5100, 0xfc); + this->memory_.SetData32(0x5104, 0); + this->memory_.SetData32(0x5108, 0x1500); + this->memory_.SetData32(0x510c, 0x200); + this->memory_.SetData8(0x5110, 0); + this->memory_.SetData8(0x5111, 0); + + ASSERT_TRUE(this->debug_frame_->Init(0x5000, 0x200, 0x1000)); + ASSERT_EQ(1U, this->debug_frame_->TestGetFdeCount()); + + typename DwarfDebugFrame::FdeInfo info(0, 0, 0); + + this->debug_frame_->TestGetFdeInfo(0, &info); + EXPECT_EQ(0x5100U, info.offset); + EXPECT_EQ(0x2500U, info.start); + EXPECT_EQ(0x2700U, info.end); + + const DwarfFde* fde = this->debug_frame_->GetFdeFromPc(0x2504); + ASSERT_TRUE(fde != nullptr); + EXPECT_EQ(0x2500U, fde->pc_start); + EXPECT_EQ(0x2700U, fde->pc_end); +} + TYPED_TEST_P(DwarfDebugFrameTest, Init_version1) { // CIE 32 information. this->memory_.SetData32(0x5000, 0xfc); @@ -340,7 +378,7 @@ TYPED_TEST_P(DwarfDebugFrameTest, Init_version1) { this->memory_.SetData16(0x5108, 0x1500); this->memory_.SetData16(0x510a, 0x200); - ASSERT_TRUE(this->debug_frame_->Init(0x5000, 0x200)); + ASSERT_TRUE(this->debug_frame_->Init(0x5000, 0x200, 0)); ASSERT_EQ(1U, this->debug_frame_->TestGetFdeCount()); typename DwarfDebugFrame::FdeInfo info(0, 0, 0); @@ -383,7 +421,7 @@ TYPED_TEST_P(DwarfDebugFrameTest, Init_version4) { this->memory_.SetData16(0x5108, 0x1500); this->memory_.SetData16(0x510a, 0x200); - ASSERT_TRUE(this->debug_frame_->Init(0x5000, 0x200)); + ASSERT_TRUE(this->debug_frame_->Init(0x5000, 0x200, 0)); ASSERT_EQ(1U, this->debug_frame_->TestGetFdeCount()); typename DwarfDebugFrame::FdeInfo info(0, 0, 0); @@ -538,8 +576,8 @@ TYPED_TEST_P(DwarfDebugFrameTest, GetCieFde64) { REGISTER_TYPED_TEST_CASE_P(DwarfDebugFrameTest, Init32, Init32_fde_not_following_cie, Init32_do_not_fail_on_bad_next_entry, Init64, Init64_do_not_fail_on_bad_next_entry, Init64_fde_not_following_cie, - Init_version1, Init_version4, GetFdeOffsetFromPc, GetCieFde32, - GetCieFde64); + Init_non_zero_load_bias, Init_version1, Init_version4, + GetFdeOffsetFromPc, GetCieFde32, GetCieFde64); typedef ::testing::Types DwarfDebugFrameTestTypes; INSTANTIATE_TYPED_TEST_CASE_P(, DwarfDebugFrameTest, DwarfDebugFrameTestTypes); diff --git a/libunwindstack/tests/DwarfEhFrameTest.cpp b/libunwindstack/tests/DwarfEhFrameTest.cpp index a73db6580..e8d53e647 100644 --- a/libunwindstack/tests/DwarfEhFrameTest.cpp +++ b/libunwindstack/tests/DwarfEhFrameTest.cpp @@ -103,7 +103,7 @@ TYPED_TEST_P(DwarfEhFrameTest, Init32) { this->memory_.SetData32(0x5508, 0x4500); this->memory_.SetData32(0x550c, 0x500); - ASSERT_TRUE(this->eh_frame_->Init(0x5000, 0x600)); + ASSERT_TRUE(this->eh_frame_->Init(0x5000, 0x600, 0)); ASSERT_EQ(4U, this->eh_frame_->TestGetFdeCount()); typename DwarfEhFrame::FdeInfo info(0, 0, 0); @@ -142,7 +142,7 @@ TYPED_TEST_P(DwarfEhFrameTest, Init32_fde_not_following_cie) { this->memory_.SetData32(0x5108, 0x1500); this->memory_.SetData32(0x510c, 0x200); - ASSERT_FALSE(this->eh_frame_->Init(0x5000, 0x600)); + ASSERT_FALSE(this->eh_frame_->Init(0x5000, 0x600, 0)); ASSERT_EQ(DWARF_ERROR_ILLEGAL_VALUE, this->eh_frame_->LastErrorCode()); } @@ -187,7 +187,7 @@ TYPED_TEST_P(DwarfEhFrameTest, Init64) { this->memory_.SetData64(0x5514, 0x4500); this->memory_.SetData64(0x551c, 0x500); - ASSERT_TRUE(this->eh_frame_->Init(0x5000, 0x600)); + ASSERT_TRUE(this->eh_frame_->Init(0x5000, 0x600, 0)); ASSERT_EQ(4U, this->eh_frame_->TestGetFdeCount()); typename DwarfEhFrame::FdeInfo info(0, 0, 0); @@ -228,10 +228,48 @@ TYPED_TEST_P(DwarfEhFrameTest, Init64_fde_not_following_cie) { this->memory_.SetData64(0x5114, 0x1500); this->memory_.SetData64(0x511c, 0x200); - ASSERT_FALSE(this->eh_frame_->Init(0x5000, 0x600)); + ASSERT_FALSE(this->eh_frame_->Init(0x5000, 0x600, 0)); ASSERT_EQ(DWARF_ERROR_ILLEGAL_VALUE, this->eh_frame_->LastErrorCode()); } +TYPED_TEST_P(DwarfEhFrameTest, Init_non_zero_load_bias) { + // CIE 32 information. + this->memory_.SetData32(0x5000, 0xfc); + this->memory_.SetData32(0x5004, 0); + this->memory_.SetData8(0x5008, 1); + this->memory_.SetData8(0x5009, 'z'); + this->memory_.SetData8(0x500a, 'R'); + this->memory_.SetData8(0x500b, '\0'); + this->memory_.SetData8(0x500c, 0); + this->memory_.SetData8(0x500d, 0); + this->memory_.SetData8(0x500e, 0); + this->memory_.SetData8(0x500f, 0); + this->memory_.SetData8(0x5010, 0x1b); + + // FDE 32 information. + this->memory_.SetData32(0x5100, 0xfc); + this->memory_.SetData32(0x5104, 0x104); + this->memory_.SetData32(0x5108, 0x1500); + this->memory_.SetData32(0x510c, 0x200); + this->memory_.SetData8(0x5110, 0); + this->memory_.SetData8(0x5111, 0); + + ASSERT_TRUE(this->eh_frame_->Init(0x5000, 0x200, 0x2000)); + ASSERT_EQ(1U, this->eh_frame_->TestGetFdeCount()); + + typename DwarfEhFrame::FdeInfo info(0, 0, 0); + + this->eh_frame_->TestGetFdeInfo(0, &info); + EXPECT_EQ(0x5100U, info.offset); + EXPECT_EQ(0x8608U, info.start); + EXPECT_EQ(0x8808U, info.end); + + const DwarfFde* fde = this->eh_frame_->GetFdeFromPc(0x8700); + ASSERT_TRUE(fde != nullptr); + EXPECT_EQ(0x8608U, fde->pc_start); + EXPECT_EQ(0x8808U, fde->pc_end); +} + TYPED_TEST_P(DwarfEhFrameTest, Init_version1) { // CIE 32 information. this->memory_.SetData32(0x5000, 0xfc); @@ -256,7 +294,7 @@ TYPED_TEST_P(DwarfEhFrameTest, Init_version1) { this->memory_.SetData16(0x5108, 0x1500); this->memory_.SetData16(0x510a, 0x200); - ASSERT_TRUE(this->eh_frame_->Init(0x5000, 0x200)); + ASSERT_TRUE(this->eh_frame_->Init(0x5000, 0x200, 0)); ASSERT_EQ(1U, this->eh_frame_->TestGetFdeCount()); typename DwarfEhFrame::FdeInfo info(0, 0, 0); @@ -299,7 +337,7 @@ TYPED_TEST_P(DwarfEhFrameTest, Init_version4) { this->memory_.SetData16(0x5108, 0x1500); this->memory_.SetData16(0x510a, 0x200); - ASSERT_TRUE(this->eh_frame_->Init(0x5000, 0x200)); + ASSERT_TRUE(this->eh_frame_->Init(0x5000, 0x200, 0)); ASSERT_EQ(1U, this->eh_frame_->TestGetFdeCount()); typename DwarfEhFrame::FdeInfo info(0, 0, 0); @@ -450,8 +488,8 @@ TYPED_TEST_P(DwarfEhFrameTest, GetCieFde64) { } REGISTER_TYPED_TEST_CASE_P(DwarfEhFrameTest, Init32, Init32_fde_not_following_cie, Init64, - Init64_fde_not_following_cie, Init_version1, Init_version4, - GetFdeOffsetFromPc, GetCieFde32, GetCieFde64); + Init64_fde_not_following_cie, Init_non_zero_load_bias, Init_version1, + Init_version4, GetFdeOffsetFromPc, GetCieFde32, GetCieFde64); typedef ::testing::Types DwarfEhFrameTestTypes; INSTANTIATE_TYPED_TEST_CASE_P(, DwarfEhFrameTest, DwarfEhFrameTestTypes); diff --git a/libunwindstack/tests/DwarfEhFrameWithHdrTest.cpp b/libunwindstack/tests/DwarfEhFrameWithHdrTest.cpp index 4240419a5..19c7b98a2 100644 --- a/libunwindstack/tests/DwarfEhFrameWithHdrTest.cpp +++ b/libunwindstack/tests/DwarfEhFrameWithHdrTest.cpp @@ -83,7 +83,7 @@ TYPED_TEST_P(DwarfEhFrameWithHdrTest, Init) { this->memory_.SetData16(0x1004, 0x500); this->memory_.SetData32(0x1006, 126); - ASSERT_TRUE(this->eh_frame_->Init(0x1000, 0x100)); + ASSERT_TRUE(this->eh_frame_->Init(0x1000, 0x100, 0)); EXPECT_EQ(1U, this->eh_frame_->TestGetVersion()); EXPECT_EQ(DW_EH_PE_udata2, this->eh_frame_->TestGetPtrEncoding()); EXPECT_EQ(DW_EH_PE_sdata4, this->eh_frame_->TestGetTableEncoding()); @@ -97,19 +97,66 @@ TYPED_TEST_P(DwarfEhFrameWithHdrTest, Init) { // Verify a zero fde count fails to init. this->memory_.SetData32(0x1006, 0); - ASSERT_FALSE(this->eh_frame_->Init(0x1000, 0x100)); + ASSERT_FALSE(this->eh_frame_->Init(0x1000, 0x100, 0)); ASSERT_EQ(DWARF_ERROR_NO_FDES, this->eh_frame_->LastErrorCode()); // Verify an unexpected version will cause a fail. this->memory_.SetData32(0x1006, 126); this->memory_.SetData8(0x1000, 0); - ASSERT_FALSE(this->eh_frame_->Init(0x1000, 0x100)); + ASSERT_FALSE(this->eh_frame_->Init(0x1000, 0x100, 0)); ASSERT_EQ(DWARF_ERROR_UNSUPPORTED_VERSION, this->eh_frame_->LastErrorCode()); this->memory_.SetData8(0x1000, 2); - ASSERT_FALSE(this->eh_frame_->Init(0x1000, 0x100)); + ASSERT_FALSE(this->eh_frame_->Init(0x1000, 0x100, 0)); ASSERT_EQ(DWARF_ERROR_UNSUPPORTED_VERSION, this->eh_frame_->LastErrorCode()); } +TYPED_TEST_P(DwarfEhFrameWithHdrTest, Init_non_zero_load_bias) { + this->memory_.SetMemory(0x1000, std::vector{0x1, DW_EH_PE_udata2, DW_EH_PE_udata4, + DW_EH_PE_pcrel | DW_EH_PE_sdata4}); + this->memory_.SetData16(0x1004, 0x500); + this->memory_.SetData32(0x1006, 1); + this->memory_.SetData32(0x100a, 0x2500); + this->memory_.SetData32(0x100e, 0x1400); + + // CIE 32 information. + this->memory_.SetData32(0x1300, 0xfc); + this->memory_.SetData32(0x1304, 0); + this->memory_.SetData8(0x1308, 1); + this->memory_.SetData8(0x1309, 'z'); + this->memory_.SetData8(0x130a, 'R'); + this->memory_.SetData8(0x130b, '\0'); + this->memory_.SetData8(0x130c, 0); + this->memory_.SetData8(0x130d, 0); + this->memory_.SetData8(0x130e, 0); + this->memory_.SetData8(0x130f, 0); + this->memory_.SetData8(0x1310, 0x1b); + + // FDE 32 information. + this->memory_.SetData32(0x1400, 0xfc); + this->memory_.SetData32(0x1404, 0x104); + this->memory_.SetData32(0x1408, 0x10f8); + this->memory_.SetData32(0x140c, 0x200); + this->memory_.SetData8(0x1410, 0); + this->memory_.SetData8(0x1411, 0); + + ASSERT_TRUE(this->eh_frame_->Init(0x1000, 0x100, 0x2000)); + EXPECT_EQ(1U, this->eh_frame_->TestGetVersion()); + EXPECT_EQ(DW_EH_PE_udata2, this->eh_frame_->TestGetPtrEncoding()); + EXPECT_EQ(0x1b, this->eh_frame_->TestGetTableEncoding()); + EXPECT_EQ(4U, this->eh_frame_->TestGetTableEntrySize()); + EXPECT_EQ(1U, this->eh_frame_->TestGetFdeCount()); + EXPECT_EQ(0x500U, this->eh_frame_->TestGetPtrOffset()); + EXPECT_EQ(0x100aU, this->eh_frame_->TestGetEntriesOffset()); + EXPECT_EQ(0x1100U, this->eh_frame_->TestGetEntriesEnd()); + EXPECT_EQ(0x1000U, this->eh_frame_->TestGetEntriesDataOffset()); + EXPECT_EQ(0x100aU, this->eh_frame_->TestGetCurEntriesOffset()); + + const DwarfFde* fde = this->eh_frame_->GetFdeFromPc(0x4600); + ASSERT_TRUE(fde != nullptr); + EXPECT_EQ(0x4500U, fde->pc_start); + EXPECT_EQ(0x4700U, fde->pc_end); +} + TYPED_TEST_P(DwarfEhFrameWithHdrTest, GetFdeInfoFromIndex_expect_cache_fail) { this->eh_frame_->TestSetTableEntrySize(0x10); this->eh_frame_->TestSetTableEncoding(DW_EH_PE_udata4); @@ -123,6 +170,7 @@ TYPED_TEST_P(DwarfEhFrameWithHdrTest, GetFdeInfoFromIndex_expect_cache_fail) { EXPECT_EQ(0x1000U, this->eh_frame_->LastErrorAddress()); } +// We are assuming that pc rel, is really relative to the load_bias. TYPED_TEST_P(DwarfEhFrameWithHdrTest, GetFdeInfoFromIndex_read_pcrel) { this->eh_frame_->TestSetTableEncoding(DW_EH_PE_pcrel | DW_EH_PE_udata4); this->eh_frame_->TestSetEntriesOffset(0x1000); @@ -134,8 +182,8 @@ TYPED_TEST_P(DwarfEhFrameWithHdrTest, GetFdeInfoFromIndex_read_pcrel) { auto info = this->eh_frame_->GetFdeInfoFromIndex(2); ASSERT_TRUE(info != nullptr); - EXPECT_EQ(0x1380U, info->pc); - EXPECT_EQ(0x1540U, info->offset); + EXPECT_EQ(0x340U, info->pc); + EXPECT_EQ(0x500U, info->offset); } TYPED_TEST_P(DwarfEhFrameWithHdrTest, GetFdeInfoFromIndex_read_datarel) { @@ -430,14 +478,14 @@ TYPED_TEST_P(DwarfEhFrameWithHdrTest, GetFdeFromPc_fde_not_found) { ASSERT_EQ(nullptr, this->eh_frame_->GetFdeFromPc(0x800)); } -REGISTER_TYPED_TEST_CASE_P(DwarfEhFrameWithHdrTest, Init, GetFdeInfoFromIndex_expect_cache_fail, - GetFdeInfoFromIndex_read_pcrel, GetFdeInfoFromIndex_read_datarel, - GetFdeInfoFromIndex_cached, GetFdeOffsetBinary_verify, - GetFdeOffsetBinary_index_fail, GetFdeOffsetSequential, - GetFdeOffsetSequential_last_element, GetFdeOffsetSequential_end_check, - GetFdeOffsetFromPc_fail_fde_count, GetFdeOffsetFromPc_binary_search, - GetFdeOffsetFromPc_sequential_search, GetCieFde32, GetCieFde64, - GetFdeFromPc_fde_not_found); +REGISTER_TYPED_TEST_CASE_P(DwarfEhFrameWithHdrTest, Init, Init_non_zero_load_bias, + GetFdeInfoFromIndex_expect_cache_fail, GetFdeInfoFromIndex_read_pcrel, + GetFdeInfoFromIndex_read_datarel, GetFdeInfoFromIndex_cached, + GetFdeOffsetBinary_verify, GetFdeOffsetBinary_index_fail, + GetFdeOffsetSequential, GetFdeOffsetSequential_last_element, + GetFdeOffsetSequential_end_check, GetFdeOffsetFromPc_fail_fde_count, + GetFdeOffsetFromPc_binary_search, GetFdeOffsetFromPc_sequential_search, + GetCieFde32, GetCieFde64, GetFdeFromPc_fde_not_found); typedef ::testing::Types DwarfEhFrameWithHdrTestTypes; INSTANTIATE_TYPED_TEST_CASE_P(, DwarfEhFrameWithHdrTest, DwarfEhFrameWithHdrTestTypes); diff --git a/libunwindstack/tests/DwarfSectionImplTest.cpp b/libunwindstack/tests/DwarfSectionImplTest.cpp index c34029130..414f2f248 100644 --- a/libunwindstack/tests/DwarfSectionImplTest.cpp +++ b/libunwindstack/tests/DwarfSectionImplTest.cpp @@ -36,7 +36,7 @@ class MockDwarfSectionImpl : public DwarfSectionImpl { MockDwarfSectionImpl(Memory* memory) : DwarfSectionImpl(memory) {} virtual ~MockDwarfSectionImpl() = default; - MOCK_METHOD2(Init, bool(uint64_t, uint64_t)); + MOCK_METHOD3(Init, bool(uint64_t, uint64_t, uint64_t)); MOCK_METHOD2(GetFdeOffsetFromPc, bool(uint64_t, uint64_t*)); @@ -884,7 +884,7 @@ TYPED_TEST_P(DwarfSectionImplTest, Log) { this->memory_.SetMemory(0x5000, std::vector{0x00}); this->memory_.SetMemory(0x6000, std::vector{0xc2}); - ASSERT_TRUE(this->section_->Log(2, 0x1000, 0x1000, &fde)); + ASSERT_TRUE(this->section_->Log(2, 0x1000, &fde)); ASSERT_EQ( "4 unwind DW_CFA_nop\n" diff --git a/libunwindstack/tests/DwarfSectionTest.cpp b/libunwindstack/tests/DwarfSectionTest.cpp index 071d2dfa3..2c6c8790a 100644 --- a/libunwindstack/tests/DwarfSectionTest.cpp +++ b/libunwindstack/tests/DwarfSectionTest.cpp @@ -30,13 +30,13 @@ class MockDwarfSection : public DwarfSection { MockDwarfSection(Memory* memory) : DwarfSection(memory) {} virtual ~MockDwarfSection() = default; - MOCK_METHOD4(Log, bool(uint8_t, uint64_t, uint64_t, const DwarfFde*)); + MOCK_METHOD3(Log, bool(uint8_t, uint64_t, const DwarfFde*)); MOCK_METHOD5(Eval, bool(const DwarfCie*, Memory*, const dwarf_loc_regs_t&, Regs*, bool*)); MOCK_METHOD3(GetCfaLocationInfo, bool(uint64_t, const DwarfFde*, dwarf_loc_regs_t*)); - MOCK_METHOD2(Init, bool(uint64_t, uint64_t)); + MOCK_METHOD3(Init, bool(uint64_t, uint64_t, uint64_t)); MOCK_METHOD2(GetFdeOffsetFromPc, bool(uint64_t, uint64_t*)); diff --git a/libunwindstack/tests/ElfFake.cpp b/libunwindstack/tests/ElfFake.cpp index 66207dbd1..3d5ddd6b6 100644 --- a/libunwindstack/tests/ElfFake.cpp +++ b/libunwindstack/tests/ElfFake.cpp @@ -32,7 +32,7 @@ namespace unwindstack { std::deque ElfInterfaceFake::functions_; std::deque ElfInterfaceFake::steps_; -bool ElfInterfaceFake::GetFunctionName(uint64_t, uint64_t, std::string* name, uint64_t* offset) { +bool ElfInterfaceFake::GetFunctionName(uint64_t, std::string* name, uint64_t* offset) { if (functions_.empty()) { return false; } @@ -52,7 +52,7 @@ bool ElfInterfaceFake::GetGlobalVariable(const std::string& global, uint64_t* of return true; } -bool ElfInterfaceFake::Step(uint64_t, uint64_t, Regs* regs, Memory*, bool* finished) { +bool ElfInterfaceFake::Step(uint64_t, Regs* regs, Memory*, bool* finished) { if (steps_.empty()) { return false; } diff --git a/libunwindstack/tests/ElfFake.h b/libunwindstack/tests/ElfFake.h index e23298670..a3bf5ce76 100644 --- a/libunwindstack/tests/ElfFake.h +++ b/libunwindstack/tests/ElfFake.h @@ -67,13 +67,13 @@ class ElfInterfaceFake : public ElfInterface { virtual ~ElfInterfaceFake() = default; bool Init(uint64_t*) override { return false; } - void InitHeaders() override {} + void InitHeaders(uint64_t) override {} bool GetSoname(std::string*) override { return false; } - bool GetFunctionName(uint64_t, uint64_t, std::string*, uint64_t*) override; + bool GetFunctionName(uint64_t, std::string*, uint64_t*) override; bool GetGlobalVariable(const std::string&, uint64_t*) override; - bool Step(uint64_t, uint64_t, Regs*, Memory*, bool*) override; + bool Step(uint64_t, Regs*, Memory*, bool*) override; void FakeSetGlobalVariable(const std::string& global, uint64_t offset) { globals_[global] = offset; diff --git a/libunwindstack/tests/ElfInterfaceArmTest.cpp b/libunwindstack/tests/ElfInterfaceArmTest.cpp index 70a52ad1e..5f1c2ac64 100644 --- a/libunwindstack/tests/ElfInterfaceArmTest.cpp +++ b/libunwindstack/tests/ElfInterfaceArmTest.cpp @@ -302,7 +302,7 @@ TEST_F(ElfInterfaceArmTest, StepExidx) { // FindEntry fails. bool finished; - ASSERT_FALSE(interface.StepExidx(0x7000, 0, nullptr, nullptr, &finished)); + ASSERT_FALSE(interface.StepExidx(0x7000, nullptr, nullptr, &finished)); EXPECT_EQ(ERROR_UNWIND_INFO, interface.LastErrorCode()); // ExtractEntry should fail. @@ -316,18 +316,18 @@ TEST_F(ElfInterfaceArmTest, StepExidx) { regs[ARM_REG_LR] = 0x20000; regs.set_sp(regs[ARM_REG_SP]); regs.set_pc(0x1234); - ASSERT_FALSE(interface.StepExidx(0x7000, 0, ®s, &process_memory_, &finished)); + ASSERT_FALSE(interface.StepExidx(0x7000, ®s, &process_memory_, &finished)); EXPECT_EQ(ERROR_MEMORY_INVALID, interface.LastErrorCode()); EXPECT_EQ(0x1004U, interface.LastErrorAddress()); // Eval should fail. memory_.SetData32(0x1004, 0x81000000); - ASSERT_FALSE(interface.StepExidx(0x7000, 0, ®s, &process_memory_, &finished)); + ASSERT_FALSE(interface.StepExidx(0x7000, ®s, &process_memory_, &finished)); EXPECT_EQ(ERROR_UNWIND_INFO, interface.LastErrorCode()); // Everything should pass. memory_.SetData32(0x1004, 0x80b0b0b0); - ASSERT_TRUE(interface.StepExidx(0x7000, 0, ®s, &process_memory_, &finished)); + ASSERT_TRUE(interface.StepExidx(0x7000, ®s, &process_memory_, &finished)); EXPECT_EQ(ERROR_UNWIND_INFO, interface.LastErrorCode()); ASSERT_FALSE(finished); ASSERT_EQ(0x1000U, regs.sp()); @@ -336,11 +336,13 @@ TEST_F(ElfInterfaceArmTest, StepExidx) { ASSERT_EQ(0x20000U, regs[ARM_REG_PC]); // Load bias is non-zero. - ASSERT_TRUE(interface.StepExidx(0x8000, 0x1000, ®s, &process_memory_, &finished)); + interface.set_load_bias(0x1000); + ASSERT_TRUE(interface.StepExidx(0x8000, ®s, &process_memory_, &finished)); EXPECT_EQ(ERROR_UNWIND_INFO, interface.LastErrorCode()); // Pc too small. - ASSERT_FALSE(interface.StepExidx(0x8000, 0x9000, ®s, &process_memory_, &finished)); + interface.set_load_bias(0x9000); + ASSERT_FALSE(interface.StepExidx(0x8000, ®s, &process_memory_, &finished)); EXPECT_EQ(ERROR_UNWIND_INFO, interface.LastErrorCode()); } @@ -362,7 +364,7 @@ TEST_F(ElfInterfaceArmTest, StepExidx_pc_set) { // Everything should pass. bool finished; - ASSERT_TRUE(interface.StepExidx(0x7000, 0, ®s, &process_memory_, &finished)); + ASSERT_TRUE(interface.StepExidx(0x7000, ®s, &process_memory_, &finished)); EXPECT_EQ(ERROR_NONE, interface.LastErrorCode()); ASSERT_FALSE(finished); ASSERT_EQ(0x10004U, regs.sp()); @@ -386,7 +388,7 @@ TEST_F(ElfInterfaceArmTest, StepExidx_cant_unwind) { regs.set_pc(0x1234); bool finished; - ASSERT_TRUE(interface.StepExidx(0x7000, 0, ®s, &process_memory_, &finished)); + ASSERT_TRUE(interface.StepExidx(0x7000, ®s, &process_memory_, &finished)); EXPECT_EQ(ERROR_NONE, interface.LastErrorCode()); ASSERT_TRUE(finished); ASSERT_EQ(0x10000U, regs.sp()); @@ -409,7 +411,7 @@ TEST_F(ElfInterfaceArmTest, StepExidx_refuse_unwind) { regs.set_pc(0x1234); bool finished; - ASSERT_TRUE(interface.StepExidx(0x7000, 0, ®s, &process_memory_, &finished)); + ASSERT_TRUE(interface.StepExidx(0x7000, ®s, &process_memory_, &finished)); EXPECT_EQ(ERROR_NONE, interface.LastErrorCode()); ASSERT_TRUE(finished); ASSERT_EQ(0x10000U, regs.sp()); @@ -436,7 +438,7 @@ TEST_F(ElfInterfaceArmTest, StepExidx_pc_zero) { regs.set_pc(0x1234); bool finished; - ASSERT_TRUE(interface.StepExidx(0x7000, 0, ®s, &process_memory_, &finished)); + ASSERT_TRUE(interface.StepExidx(0x7000, ®s, &process_memory_, &finished)); EXPECT_EQ(ERROR_NONE, interface.LastErrorCode()); ASSERT_TRUE(finished); ASSERT_EQ(0U, regs.pc()); @@ -449,7 +451,7 @@ TEST_F(ElfInterfaceArmTest, StepExidx_pc_zero) { regs.set_sp(regs[ARM_REG_SP]); regs.set_pc(0x1234); - ASSERT_TRUE(interface.StepExidx(0x7000, 0, ®s, &process_memory_, &finished)); + ASSERT_TRUE(interface.StepExidx(0x7000, ®s, &process_memory_, &finished)); EXPECT_EQ(ERROR_NONE, interface.LastErrorCode()); ASSERT_TRUE(finished); ASSERT_EQ(0U, regs.pc()); diff --git a/libunwindstack/tests/ElfInterfaceTest.cpp b/libunwindstack/tests/ElfInterfaceTest.cpp index bf97e30bf..4008e9ba6 100644 --- a/libunwindstack/tests/ElfInterfaceTest.cpp +++ b/libunwindstack/tests/ElfInterfaceTest.cpp @@ -647,7 +647,7 @@ void ElfInterfaceTest::InitHeadersEhFrameTest() { memory_.SetData32(0x10004, 0x500); memory_.SetData32(0x10008, 250); - elf.InitHeaders(); + elf.InitHeaders(0); EXPECT_FALSE(elf.eh_frame() == nullptr); EXPECT_TRUE(elf.debug_frame() == nullptr); @@ -680,7 +680,7 @@ void ElfInterfaceTest::InitHeadersDebugFrame() { memory_.SetData32(0x5108, 0x1500); memory_.SetData32(0x510c, 0x200); - elf.InitHeaders(); + elf.InitHeaders(0); EXPECT_TRUE(elf.eh_frame() == nullptr); EXPECT_FALSE(elf.debug_frame() == nullptr); @@ -703,7 +703,7 @@ void ElfInterfaceTest::InitHeadersEhFrameFail() { elf.FakeSetDebugFrameOffset(0); elf.FakeSetDebugFrameSize(0); - elf.InitHeaders(); + elf.InitHeaders(0); EXPECT_TRUE(elf.eh_frame() == nullptr); EXPECT_EQ(0U, elf.eh_frame_offset()); @@ -728,7 +728,7 @@ void ElfInterfaceTest::InitHeadersDebugFrameFail() { elf.FakeSetDebugFrameOffset(0x1000); elf.FakeSetDebugFrameSize(0x100); - elf.InitHeaders(); + elf.InitHeaders(0); EXPECT_TRUE(elf.eh_frame() == nullptr); EXPECT_TRUE(elf.debug_frame() == nullptr); @@ -833,10 +833,10 @@ void ElfInterfaceTest::InitSectionHeaders(uint64_t entry_size) { // Look in the first symbol table. std::string name; uint64_t name_offset; - ASSERT_TRUE(elf->GetFunctionName(0x90010, 0, &name, &name_offset)); + ASSERT_TRUE(elf->GetFunctionName(0x90010, &name, &name_offset)); EXPECT_EQ("function_one", name); EXPECT_EQ(16U, name_offset); - ASSERT_TRUE(elf->GetFunctionName(0xd0020, 0, &name, &name_offset)); + ASSERT_TRUE(elf->GetFunctionName(0xd0020, &name, &name_offset)); EXPECT_EQ("function_two", name); EXPECT_EQ(32U, name_offset); } @@ -1065,7 +1065,7 @@ TEST_F(ElfInterfaceTest, is_valid_pc_from_debug_frame) { uint64_t load_bias = 0; ASSERT_TRUE(elf->Init(&load_bias)); - elf->InitHeaders(); + elf->InitHeaders(0); EXPECT_EQ(0U, load_bias); EXPECT_FALSE(elf->IsValidPc(0)); EXPECT_FALSE(elf->IsValidPc(0x20ff)); @@ -1128,7 +1128,7 @@ TEST_F(ElfInterfaceTest, is_valid_pc_from_eh_frame) { uint64_t load_bias = 0; ASSERT_TRUE(elf->Init(&load_bias)); - elf->InitHeaders(); + elf->InitHeaders(0); EXPECT_EQ(0U, load_bias); EXPECT_FALSE(elf->IsValidPc(0)); EXPECT_FALSE(elf->IsValidPc(0x27ff)); diff --git a/libunwindstack/tests/ElfTest.cpp b/libunwindstack/tests/ElfTest.cpp index aecbf6dcb..55fe16f14 100644 --- a/libunwindstack/tests/ElfTest.cpp +++ b/libunwindstack/tests/ElfTest.cpp @@ -297,16 +297,11 @@ TEST_F(ElfTest, rel_pc) { elf.FakeSetInterface(interface); elf.FakeSetValid(true); - elf.FakeSetLoadBias(0); MapInfo map_info(0x1000, 0x2000); ASSERT_EQ(0x101U, elf.GetRelPc(0x1101, &map_info)); - elf.FakeSetLoadBias(0x3000); - ASSERT_EQ(0x3101U, elf.GetRelPc(0x1101, &map_info)); - elf.FakeSetValid(false); - elf.FakeSetLoadBias(0); ASSERT_EQ(0x101U, elf.GetRelPc(0x1101, &map_info)); } @@ -328,7 +323,6 @@ TEST_F(ElfTest, step_in_signal_map) { } elf.FakeSetValid(true); - elf.FakeSetLoadBias(0); bool finished; ASSERT_TRUE(elf.Step(0x3000, 0x1000, ®s, &process_memory, &finished)); EXPECT_FALSE(finished); @@ -342,11 +336,11 @@ class ElfInterfaceMock : public ElfInterface { virtual ~ElfInterfaceMock() = default; bool Init(uint64_t*) override { return false; } - void InitHeaders() override {} + void InitHeaders(uint64_t) override {} bool GetSoname(std::string*) override { return false; } - bool GetFunctionName(uint64_t, uint64_t, std::string*, uint64_t*) override { return false; } + bool GetFunctionName(uint64_t, std::string*, uint64_t*) override { return false; } - MOCK_METHOD5(Step, bool(uint64_t, uint64_t, Regs*, Memory*, bool*)); + MOCK_METHOD4(Step, bool(uint64_t, Regs*, Memory*, bool*)); MOCK_METHOD2(GetGlobalVariable, bool(const std::string&, uint64_t*)); MOCK_METHOD1(IsValidPc, bool(uint64_t)); @@ -358,7 +352,6 @@ class ElfInterfaceMock : public ElfInterface { TEST_F(ElfTest, step_in_interface) { ElfFake elf(memory_); elf.FakeSetValid(true); - elf.FakeSetLoadBias(0); RegsArm regs; @@ -367,30 +360,12 @@ TEST_F(ElfTest, step_in_interface) { MemoryFake process_memory; bool finished; - EXPECT_CALL(*interface, Step(0x1000, 0, ®s, &process_memory, &finished)) + EXPECT_CALL(*interface, Step(0x1000, ®s, &process_memory, &finished)) .WillOnce(::testing::Return(true)); ASSERT_TRUE(elf.Step(0x1004, 0x1000, ®s, &process_memory, &finished)); } -TEST_F(ElfTest, step_in_interface_non_zero_load_bias) { - ElfFake elf(memory_); - elf.FakeSetValid(true); - elf.FakeSetLoadBias(0x4000); - - RegsArm regs; - - ElfInterfaceMock* interface = new ElfInterfaceMock(memory_); - elf.FakeSetInterface(interface); - MemoryFake process_memory; - - bool finished; - EXPECT_CALL(*interface, Step(0x7300, 0x4000, ®s, &process_memory, &finished)) - .WillOnce(::testing::Return(true)); - - ASSERT_TRUE(elf.Step(0x7304, 0x7300, ®s, &process_memory, &finished)); -} - TEST_F(ElfTest, get_global_invalid_elf) { ElfFake elf(memory_); elf.FakeSetValid(false); @@ -403,7 +378,6 @@ TEST_F(ElfTest, get_global_invalid_elf) { TEST_F(ElfTest, get_global_valid_not_in_interface) { ElfFake elf(memory_); elf.FakeSetValid(true); - elf.FakeSetLoadBias(0); ElfInterfaceMock* interface = new ElfInterfaceMock(memory_); elf.FakeSetInterface(interface); @@ -431,10 +405,26 @@ TEST_F(ElfTest, get_global_valid_below_load_bias) { ASSERT_FALSE(elf.GetGlobalVariable(global, &offset)); } +TEST_F(ElfTest, get_global_valid_dynamic_zero_non_zero_load_bias) { + ElfFake elf(memory_); + elf.FakeSetValid(true); + elf.FakeSetLoadBias(0x100); + + ElfInterfaceMock* interface = new ElfInterfaceMock(memory_); + elf.FakeSetInterface(interface); + + uint64_t offset; + std::string global("something"); + EXPECT_CALL(*interface, GetGlobalVariable(global, &offset)) + .WillOnce(::testing::DoAll(::testing::SetArgPointee<1>(0x300), ::testing::Return(true))); + + ASSERT_TRUE(elf.GetGlobalVariable(global, &offset)); + EXPECT_EQ(0x200U, offset); +} + TEST_F(ElfTest, get_global_valid_dynamic_zero) { ElfFake elf(memory_); elf.FakeSetValid(true); - elf.FakeSetLoadBias(0); ElfInterfaceMock* interface = new ElfInterfaceMock(memory_); elf.FakeSetInterface(interface); @@ -456,7 +446,6 @@ TEST_F(ElfTest, get_global_valid_dynamic_zero) { TEST_F(ElfTest, get_global_valid_in_gnu_debugdata_dynamic_zero) { ElfFake elf(memory_); elf.FakeSetValid(true); - elf.FakeSetLoadBias(0); ElfInterfaceMock* interface = new ElfInterfaceMock(memory_); elf.FakeSetInterface(interface); @@ -470,27 +459,9 @@ TEST_F(ElfTest, get_global_valid_in_gnu_debugdata_dynamic_zero) { EXPECT_EQ(0x300U, offset); } -TEST_F(ElfTest, get_global_valid_dynamic_zero_non_zero_load_bias) { - ElfFake elf(memory_); - elf.FakeSetValid(true); - elf.FakeSetLoadBias(0x100); - - ElfInterfaceMock* interface = new ElfInterfaceMock(memory_); - elf.FakeSetInterface(interface); - - uint64_t offset; - std::string global("something"); - EXPECT_CALL(*interface, GetGlobalVariable(global, &offset)) - .WillOnce(::testing::DoAll(::testing::SetArgPointee<1>(0x300), ::testing::Return(true))); - - ASSERT_TRUE(elf.GetGlobalVariable(global, &offset)); - EXPECT_EQ(0x200U, offset); -} - TEST_F(ElfTest, get_global_valid_dynamic_adjust_negative) { ElfFake elf(memory_); elf.FakeSetValid(true); - elf.FakeSetLoadBias(0); ElfInterfaceMock* interface = new ElfInterfaceMock(memory_); interface->MockSetDynamicOffset(0x400); @@ -510,7 +481,6 @@ TEST_F(ElfTest, get_global_valid_dynamic_adjust_negative) { TEST_F(ElfTest, get_global_valid_dynamic_adjust_positive) { ElfFake elf(memory_); elf.FakeSetValid(true); - elf.FakeSetLoadBias(0); ElfInterfaceMock* interface = new ElfInterfaceMock(memory_); interface->MockSetDynamicOffset(0x1000); @@ -530,7 +500,6 @@ TEST_F(ElfTest, get_global_valid_dynamic_adjust_positive) { TEST_F(ElfTest, is_valid_pc_elf_invalid) { ElfFake elf(memory_); elf.FakeSetValid(false); - elf.FakeSetLoadBias(0); EXPECT_FALSE(elf.IsValidPc(0x100)); EXPECT_FALSE(elf.IsValidPc(0x200)); @@ -539,7 +508,6 @@ TEST_F(ElfTest, is_valid_pc_elf_invalid) { TEST_F(ElfTest, is_valid_pc_interface) { ElfFake elf(memory_); elf.FakeSetValid(true); - elf.FakeSetLoadBias(0); ElfInterfaceMock* interface = new ElfInterfaceMock(memory_); elf.FakeSetInterface(interface); @@ -549,25 +517,9 @@ TEST_F(ElfTest, is_valid_pc_interface) { EXPECT_TRUE(elf.IsValidPc(0x1500)); } -TEST_F(ElfTest, is_valid_pc_non_zero_load_bias) { - ElfFake elf(memory_); - elf.FakeSetValid(true); - elf.FakeSetLoadBias(0x1000); - - ElfInterfaceMock* interface = new ElfInterfaceMock(memory_); - elf.FakeSetInterface(interface); - - EXPECT_CALL(*interface, IsValidPc(0x500)).WillOnce(::testing::Return(true)); - - EXPECT_FALSE(elf.IsValidPc(0x100)); - EXPECT_FALSE(elf.IsValidPc(0x200)); - EXPECT_TRUE(elf.IsValidPc(0x1500)); -} - TEST_F(ElfTest, is_valid_pc_from_gnu_debugdata) { ElfFake elf(memory_); elf.FakeSetValid(true); - elf.FakeSetLoadBias(0); ElfInterfaceMock* interface = new ElfInterfaceMock(memory_); elf.FakeSetInterface(interface); diff --git a/libunwindstack/tests/SymbolsTest.cpp b/libunwindstack/tests/SymbolsTest.cpp index 45a7b58a0..b40a2531c 100644 --- a/libunwindstack/tests/SymbolsTest.cpp +++ b/libunwindstack/tests/SymbolsTest.cpp @@ -70,18 +70,18 @@ TYPED_TEST_P(SymbolsTest, function_bounds_check) { std::string name; uint64_t func_offset; - ASSERT_TRUE(symbols.GetName(0x5000, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols.GetName(0x5000, &this->memory_, &name, &func_offset)); ASSERT_EQ("fake_function", name); ASSERT_EQ(0U, func_offset); name.clear(); - ASSERT_TRUE(symbols.GetName(0x500f, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols.GetName(0x500f, &this->memory_, &name, &func_offset)); ASSERT_EQ("fake_function", name); ASSERT_EQ(0xfU, func_offset); // Check one before and one after the function. - ASSERT_FALSE(symbols.GetName(0x4fff, 0, &this->memory_, &name, &func_offset)); - ASSERT_FALSE(symbols.GetName(0x5010, 0, &this->memory_, &name, &func_offset)); + ASSERT_FALSE(symbols.GetName(0x4fff, &this->memory_, &name, &func_offset)); + ASSERT_FALSE(symbols.GetName(0x5010, &this->memory_, &name, &func_offset)); } TYPED_TEST_P(SymbolsTest, no_symbol) { @@ -98,7 +98,7 @@ TYPED_TEST_P(SymbolsTest, no_symbol) { // First verify that we can get the name. std::string name; uint64_t func_offset; - ASSERT_TRUE(symbols.GetName(0x5000, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols.GetName(0x5000, &this->memory_, &name, &func_offset)); ASSERT_EQ("fake_function", name); ASSERT_EQ(0U, func_offset); @@ -107,7 +107,7 @@ TYPED_TEST_P(SymbolsTest, no_symbol) { this->memory_.SetMemory(offset, &sym, sizeof(sym)); // Clear the cache to force the symbol data to be re-read. symbols.ClearCache(); - ASSERT_FALSE(symbols.GetName(0x5000, 0, &this->memory_, &name, &func_offset)); + ASSERT_FALSE(symbols.GetName(0x5000, &this->memory_, &name, &func_offset)); // Set the function back, and set the shndx to UNDEF. sym.st_info = STT_FUNC; @@ -115,7 +115,7 @@ TYPED_TEST_P(SymbolsTest, no_symbol) { this->memory_.SetMemory(offset, &sym, sizeof(sym)); // Clear the cache to force the symbol data to be re-read. symbols.ClearCache(); - ASSERT_FALSE(symbols.GetName(0x5000, 0, &this->memory_, &name, &func_offset)); + ASSERT_FALSE(symbols.GetName(0x5000, &this->memory_, &name, &func_offset)); } TYPED_TEST_P(SymbolsTest, multiple_entries) { @@ -144,34 +144,34 @@ TYPED_TEST_P(SymbolsTest, multiple_entries) { std::string name; uint64_t func_offset; - ASSERT_TRUE(symbols.GetName(0x3005, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols.GetName(0x3005, &this->memory_, &name, &func_offset)); ASSERT_EQ("function_two", name); ASSERT_EQ(1U, func_offset); name.clear(); - ASSERT_TRUE(symbols.GetName(0x5004, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols.GetName(0x5004, &this->memory_, &name, &func_offset)); ASSERT_EQ("function_one", name); ASSERT_EQ(4U, func_offset); name.clear(); - ASSERT_TRUE(symbols.GetName(0xa011, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols.GetName(0xa011, &this->memory_, &name, &func_offset)); ASSERT_EQ("function_three", name); ASSERT_EQ(1U, func_offset); // Reget some of the others to verify getting one function name doesn't // affect any of the next calls. name.clear(); - ASSERT_TRUE(symbols.GetName(0x5008, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols.GetName(0x5008, &this->memory_, &name, &func_offset)); ASSERT_EQ("function_one", name); ASSERT_EQ(8U, func_offset); name.clear(); - ASSERT_TRUE(symbols.GetName(0x3008, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols.GetName(0x3008, &this->memory_, &name, &func_offset)); ASSERT_EQ("function_two", name); ASSERT_EQ(4U, func_offset); name.clear(); - ASSERT_TRUE(symbols.GetName(0xa01a, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols.GetName(0xa01a, &this->memory_, &name, &func_offset)); ASSERT_EQ("function_three", name); ASSERT_EQ(0xaU, func_offset); } @@ -203,47 +203,21 @@ TYPED_TEST_P(SymbolsTest, multiple_entries_nonstandard_size) { std::string name; uint64_t func_offset; - ASSERT_TRUE(symbols.GetName(0x3005, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols.GetName(0x3005, &this->memory_, &name, &func_offset)); ASSERT_EQ("function_two", name); ASSERT_EQ(1U, func_offset); name.clear(); - ASSERT_TRUE(symbols.GetName(0x5004, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols.GetName(0x5004, &this->memory_, &name, &func_offset)); ASSERT_EQ("function_one", name); ASSERT_EQ(4U, func_offset); name.clear(); - ASSERT_TRUE(symbols.GetName(0xa011, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols.GetName(0xa011, &this->memory_, &name, &func_offset)); ASSERT_EQ("function_three", name); ASSERT_EQ(1U, func_offset); } -TYPED_TEST_P(SymbolsTest, load_bias) { - Symbols symbols(0x1000, sizeof(TypeParam), sizeof(TypeParam), 0x2000, 0x100); - - TypeParam sym; - this->InitSym(&sym, 0x5000, 0x10, 0x40); - uint64_t offset = 0x1000; - this->memory_.SetMemory(offset, &sym, sizeof(sym)); - - std::string fake_name("fake_function"); - this->memory_.SetMemory(0x2040, fake_name.c_str(), fake_name.size() + 1); - - // Set a non-zero load_bias that should be a valid function offset. - std::string name; - uint64_t func_offset; - ASSERT_TRUE(symbols.GetName(0x5004, 0x1000, &this->memory_, &name, &func_offset)); - ASSERT_EQ("fake_function", name); - ASSERT_EQ(4U, func_offset); - - // Set a flag that should cause the load_bias to be ignored. - sym.st_shndx = SHN_ABS; - this->memory_.SetMemory(offset, &sym, sizeof(sym)); - // Clear the cache to force the symbol data to be re-read. - symbols.ClearCache(); - ASSERT_FALSE(symbols.GetName(0x5004, 0x1000, &this->memory_, &name, &func_offset)); -} - TYPED_TEST_P(SymbolsTest, symtab_value_out_of_bounds) { Symbols symbols_end_at_100(0x1000, sizeof(TypeParam) * 2, sizeof(TypeParam), 0x2000, 0x100); Symbols symbols_end_at_200(0x1000, sizeof(TypeParam) * 2, sizeof(TypeParam), 0x2000, 0x200); @@ -265,18 +239,16 @@ TYPED_TEST_P(SymbolsTest, symtab_value_out_of_bounds) { std::string name; uint64_t func_offset; // Verify that we can get the function name properly for both entries. - ASSERT_TRUE(symbols_end_at_200.GetName(0x5000, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols_end_at_200.GetName(0x5000, &this->memory_, &name, &func_offset)); ASSERT_EQ("fake_function", name); ASSERT_EQ(0U, func_offset); - ASSERT_TRUE(symbols_end_at_200.GetName(0x3000, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols_end_at_200.GetName(0x3000, &this->memory_, &name, &func_offset)); ASSERT_EQ("function", name); ASSERT_EQ(0U, func_offset); // Now use the symbol table that ends at 0x100. - ASSERT_FALSE( - symbols_end_at_100.GetName(0x5000, 0, &this->memory_, &name, &func_offset)); - ASSERT_FALSE( - symbols_end_at_100.GetName(0x3000, 0, &this->memory_, &name, &func_offset)); + ASSERT_FALSE(symbols_end_at_100.GetName(0x5000, &this->memory_, &name, &func_offset)); + ASSERT_FALSE(symbols_end_at_100.GetName(0x3000, &this->memory_, &name, &func_offset)); } // Verify the entire func table is cached. @@ -302,9 +274,9 @@ TYPED_TEST_P(SymbolsTest, symtab_read_cached) { // Do call that should cache all of the entries (except the string data). std::string name; uint64_t func_offset; - ASSERT_FALSE(symbols.GetName(0x6000, 0, &this->memory_, &name, &func_offset)); + ASSERT_FALSE(symbols.GetName(0x6000, &this->memory_, &name, &func_offset)); this->memory_.Clear(); - ASSERT_FALSE(symbols.GetName(0x6000, 0, &this->memory_, &name, &func_offset)); + ASSERT_FALSE(symbols.GetName(0x6000, &this->memory_, &name, &func_offset)); // Clear the memory and only put the symbol data string data in memory. this->memory_.Clear(); @@ -317,15 +289,15 @@ TYPED_TEST_P(SymbolsTest, symtab_read_cached) { fake_name = "third_entry"; this->memory_.SetMemory(0xa300, fake_name.c_str(), fake_name.size() + 1); - ASSERT_TRUE(symbols.GetName(0x5001, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols.GetName(0x5001, &this->memory_, &name, &func_offset)); ASSERT_EQ("first_entry", name); ASSERT_EQ(1U, func_offset); - ASSERT_TRUE(symbols.GetName(0x2002, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols.GetName(0x2002, &this->memory_, &name, &func_offset)); ASSERT_EQ("second_entry", name); ASSERT_EQ(2U, func_offset); - ASSERT_TRUE(symbols.GetName(0x1003, 0, &this->memory_, &name, &func_offset)); + ASSERT_TRUE(symbols.GetName(0x1003, &this->memory_, &name, &func_offset)); ASSERT_EQ("third_entry", name); ASSERT_EQ(3U, func_offset); } @@ -381,17 +353,17 @@ TYPED_TEST_P(SymbolsTest, get_global) { EXPECT_FALSE(symbols.GetGlobal(&this->memory_, "function_1", &offset)); std::string name; - EXPECT_TRUE(symbols.GetName(0x10002, 0, &this->memory_, &name, &offset)); + EXPECT_TRUE(symbols.GetName(0x10002, &this->memory_, &name, &offset)); EXPECT_EQ("function_0", name); EXPECT_EQ(2U, offset); - EXPECT_TRUE(symbols.GetName(0x12004, 0, &this->memory_, &name, &offset)); + EXPECT_TRUE(symbols.GetName(0x12004, &this->memory_, &name, &offset)); EXPECT_EQ("function_1", name); EXPECT_EQ(4U, offset); } REGISTER_TYPED_TEST_CASE_P(SymbolsTest, function_bounds_check, no_symbol, multiple_entries, - multiple_entries_nonstandard_size, load_bias, symtab_value_out_of_bounds, + multiple_entries_nonstandard_size, symtab_value_out_of_bounds, symtab_read_cached, get_global); typedef ::testing::Types SymbolsTestTypes; diff --git a/libunwindstack/tests/UnwindOfflineTest.cpp b/libunwindstack/tests/UnwindOfflineTest.cpp index 285fc9e27..a65c077d7 100644 --- a/libunwindstack/tests/UnwindOfflineTest.cpp +++ b/libunwindstack/tests/UnwindOfflineTest.cpp @@ -1200,4 +1200,43 @@ TEST_F(UnwindOfflineTest, offset_arm) { EXPECT_EQ(0xffcc1558U, unwinder.frames()[18].sp); } +// Test using a non-zero load bias library that has the fde entries +// encoded as 0xb, which is not set as pc relative. +TEST_F(UnwindOfflineTest, debug_frame_load_bias_arm) { + ASSERT_NO_FATAL_FAILURE(Init("debug_frame_load_bias_arm/", ARCH_ARM)); + + Unwinder unwinder(128, maps_.get(), regs_.get(), process_memory_); + unwinder.Unwind(); + + std::string frame_info(DumpFrames(unwinder)); + ASSERT_EQ(8U, unwinder.NumFrames()) << "Unwind:\n" << frame_info; + EXPECT_EQ( + " #00 pc 0005138c libc.so (__ioctl+8)\n" + " #01 pc 0002140f libc.so (ioctl+30)\n" + " #02 pc 00039535 libbinder.so (_ZN7android14IPCThreadState14talkWithDriverEb+204)\n" + " #03 pc 00039633 libbinder.so (_ZN7android14IPCThreadState20getAndExecuteCommandEv+10)\n" + " #04 pc 00039b57 libbinder.so (_ZN7android14IPCThreadState14joinThreadPoolEb+38)\n" + " #05 pc 00000c21 mediaserver (main+104)\n" + " #06 pc 00084b89 libc.so (__libc_init+48)\n" + " #07 pc 00000b77 mediaserver (_start_main+38)\n", + frame_info); + + EXPECT_EQ(0xf0be238cU, unwinder.frames()[0].pc); + EXPECT_EQ(0xffd4a638U, unwinder.frames()[0].sp); + EXPECT_EQ(0xf0bb240fU, unwinder.frames()[1].pc); + EXPECT_EQ(0xffd4a638U, unwinder.frames()[1].sp); + EXPECT_EQ(0xf1a75535U, unwinder.frames()[2].pc); + EXPECT_EQ(0xffd4a650U, unwinder.frames()[2].sp); + EXPECT_EQ(0xf1a75633U, unwinder.frames()[3].pc); + EXPECT_EQ(0xffd4a6b0U, unwinder.frames()[3].sp); + EXPECT_EQ(0xf1a75b57U, unwinder.frames()[4].pc); + EXPECT_EQ(0xffd4a6d0U, unwinder.frames()[4].sp); + EXPECT_EQ(0x8d1cc21U, unwinder.frames()[5].pc); + EXPECT_EQ(0xffd4a6e8U, unwinder.frames()[5].sp); + EXPECT_EQ(0xf0c15b89U, unwinder.frames()[6].pc); + EXPECT_EQ(0xffd4a700U, unwinder.frames()[6].sp); + EXPECT_EQ(0x8d1cb77U, unwinder.frames()[7].pc); + EXPECT_EQ(0xffd4a718U, unwinder.frames()[7].sp); +} + } // namespace unwindstack diff --git a/libunwindstack/tests/files/offline/debug_frame_load_bias_arm/libbinder.so b/libunwindstack/tests/files/offline/debug_frame_load_bias_arm/libbinder.so new file mode 100644 index 0000000000000000000000000000000000000000..4b7bf44c4ff3a161fa265af44df4426601c79987 GIT binary patch literal 655400 zcmeEv2YejG_5U0?nGypwp;wy{Fc{FCdVpZrI%DA`EZKC`yp?Z9(e=k}kER*dL;PU3_j;!Owu-2Wepo}QJ)2InvyH@WAfJ`t z?`~73vnPk&|K0SRdjI{z(GUJ{)bNkL#?RUxYH$Bp3;)>0F5tgZt~JWNM)@vcl=wsS z*QJ5QA1ZHRly@@97a8R{jPgH>^4CUr17eu?L*s2`lq-#Lqf#D@`ZJU=wNDu3LyYoi zM)@40yu>IkGs-_0aaTWD~u-XfwUM#|XW= zH8D~AA%5kJa(qkssl~sGjPm(g>(8$?%6Ay$dyMjPM)?(^{E1QCR{G%JYr#VMh5#qkOzkKEo*A5!c6CYLp)`%6~V?ZyDupjPkEK z^!_(B$|0k?7WA0?hxogrQ9euoaC*MlQFd)hK1LbkhmO^sKW~)ZG|KE0z5c33c~hfY zZItI+skcAQC|_xm?=#A;8fA8s-rpuh`H08#=kFWkQIG4-6Gr(IqkN4~{@N&y{kz`Z zH%588C-mo0qkN%Je%>e#eNt~f#whm~<*SVH_^0*u2OH%ZjPhGXdDDOB?c0s=AB^&g zMtS{b^!781@|i~Y5u@DuoNQ0}^TB_~@>=-kp0DZUtWiG6DBq=&slUI!p|@Y+-L?MEK2m**a#mzVusFK>6g zUf%ix#-<(+WTeJ7XG2-`lmPqa;~;l_)2}Q^r<7ncDv$#@L~o z1lg9Ne9n2G=gTtID9W?qj9u|wIrn>L{3tg04R@6D_S9c!K4YhTSI%alK0W_x9me)J zy^P%@+OIl`v4tO%ae8RHW6otP_DLDrSv+5NL4bYrQjlCqPEQZ|-$v>G))|a_h4~E; z&uc;NQA&S@9|oUfNf{rX`akG$#{T_Q84HX0_wCNuTSt}QiPis^$1_$5r-{rIsz3j{ z0E@gEVIAo}cwR=!H`THu3R4 z*@3a9y(InBV;LL$&vJH+=)~r~teA&7iaX+kg>=K%Pe9ImyeN#|PL^9|j$HXuJsH{1@_pZ9?OZ zgFUkSYe62%pz?-k##%ou=j%uGd;oh*9j|*5W4}7Bj9r2LX}vxGNOgf;awDkyt?xj7 z_6f2JMEQ@O!-vlW*$7eIBm{YWz*;Y&?_kK=2Cqy0KXQG54cl1qW7ux`{L_EIcpC-T z4Whq4Kg8Jn+h9G#e6GHXvBN__hyOdA7GV3oCC5MgRrI&BMIX_B$-|6Y|Gt#}SAf4a zK8*UJzZcd*`S2h+6XQ|+Pab6K$}Q!7O5V!Yd27k?-e&~ZXP?ORJsA9Xs#flY+9Mcy z_(3Tj*FOsR`v&xvS^PUP7hsd0408SwKZh;~uo%{7v6%0^O^6d6Q^qEUauofY^^n~E zYktbu%LfMe{-O5It^|JV2YC_m84vz7fIrxAe7!cjBETjncy<~Dw+ZswjCRz1rvn(f zad8=gnDX*(A*knpev&VG{?6NsUA%9QO%VO>_9bKW^MmXeo4%0&cHD86d=dX%LH{b= z+zbBS4t|muNd4_mf&Fop0SnowaJ|AlTgP zY~lPq!-EYC<8zD{5@l9eqP4urSbOq z3i7CoKOX$;j#%qW{M!-h`R@0!|54BPo@<~L8`WyjZy{rMn?C%=L`26mMEz4AE5 z9)DcU=j<^7Hv4D`zp4Mp5aeY~m2>%`{#&nxJdFbVppTwE^c&b8_ei|C5P}&3USnJE z_4wo@##UAMeM({+v~gU0Xp6ubR_Ia;Dya^0-m>kKO`?i|A!!Cb=X_KL7B$?;1b4O zSSjeN@6>-n|Lz)Ow~76KEbQ0)6uke>Hq5basr`a|87n`tjExZeT?c+`wVmYG<-oTE z50$g~@tpX%&1`*tP8T57I3ijk)qQ5I32& zUy29VpKq7zlWoDd$g5JG_Uys>-&E$<*Gpf7{+|H-Cf4_Z&lvkC6?DeGX#<_U2JDx0 zMoIm!(wVStVZYB3^e;ORc(M8ru5W3+3pWB@L!VtLo*%TaZXfJ=Ec*LM>eq3X2UwND z?{m&!>_XV*lLS9by#jXHTS3R(Yl3}y3-I|CJg4!_0DfNlw=(vnsJ{vPhcnQH_KduX~nHx!a|BZ!= z?E-zVjTmp^{TRFZ_hk%Zf*V8GwpgDNa0mk!=JGXbyl$U{QXd;nD#6Qt|&9DzM)7NqsmL__;Og4{ST$e!+$Czp#G8M7cN0 z*lTY|d;INBVQ*64_;v1v z0hTyc;@j8oXG5P!`+o0J1MKm4r9EGTiJt|0tP%9i$McV{UR9!e4$8*?&+A0FD;m)7 z>VcV%AK<|d@q8pUwu*PJPJ#ZOFa4jLfS>Aqj^7A=tRwA}8Q%b}dL^FUw@-j=v@pol z75nv8&~xp3lD>0)hw<`d49m>W4=lFZX?0=FD%* zK>@b?i%jkny+2y?zX|Yf z!J0$3{YH4S`R>5)MP=-H8&5_ucGq1pelZ#PV<$yk&N~Jj{Yv_CH7f_$YiCROJvO7; zk4N7GJR2tE<(o9*8}@p$p#OoJ!S6^p8!EHyrT#hr`+JyT zpR5P}Y$4)5Nin~~Ovnq?%a-puKGgk%Yp(!3ivPUtQ;dDm5M=)q^ek9|v3)m}@^Lcc z;l1ai|M|tm(BA>+Z~W&f><`8MXoJ6UT&wg~)*Q>&eBg5{`ltESLEp`MTguPTh_^NW zdWaJrN}h%I3g%<)-!0%jF9DuT679!89+xWm^sk7QT?Tz)WdPKwq4z;AQhj@N1lu&qeS*)c8aT z?CZskNWAR9{#N683yx*%Bd5ang}mvj4#^wE?(b$tBOdWe5ClyQ5K#y@E))^mZS zPpSWfn9nl!3$&ipzV#98|4oB@KU4ji>G`AOT%XbNwNA%+zk~i(vgY&QssVP=QqV8f z??~*Qwa1k^@u0`xe;%ml_jem$m;OuAJ8>5Hh56g^aqXduP5ME`$DSV_V8>wnNuLnC z!w$wj@Z6Ta_0NDk3~#p?;}gA?z+SjriI1!TU~g8|cPip9YP|J#Sg*KZ5A2Qo_}YKq z{{*f6jyw(V66{Y~{vS8|LtReE#8U*c&s0>{9>$(RbM_-9B7x zDD=y3rM#RA!P)q)1f5KePAqbjZV)ze#&*A@F?| z>=m0|8yx|>xUY=8i~fn8>#&{+f!7c-UVa*Q@C@Re?I_d!{NtI}53pCMO#J@{>vPuK z63=pohi_I^&h8b@hrs@L?_%lS+&@~M?=`@$%Ya`aP@l#h0spBP{?j6qX}r1X01p-Y zu+u5P&!;SVo9fq%gnfQzIo}^te~$yv5cZ2bzkM*D%|4U*`I}|XC-p)0KB^J@QzE+k zvFgc)r+sOyANBvk6s-R|=}(-Mz<&Eg?vIaA|2){=5F1YafuLs>;Ki1rJmnDZefe9y1d0GaLUe{{;L#P{z-00nn@d+q827?9eYHK3s}{Hh_HE{nwlgefqh4zViBp zJ+}w+Df}0kAE%Ci|NEk(e-Zfg>6g+Up1w7X7vMibtoZ)lF^L=tWxsR-m=`PMlz}g6 z17H4(`L8SHe=-ECcW-OI5Wk;=;Eq=GZLfC|=-mqEJNEuub}RP7_cDGs z3-oMq68s0z|Dl-AkC+enFT{@{4ZJ&kH{dtyX&Y}(`v&$a?8V=R`q5+2zhd7!cs2Ix zCgtoy(f^fT%)&J-{?PiqXW-#KFK2A>%F_Nm=uhC+GO2&wJ~F`Gc{Aw5|1MAH`lxJn zfOTDL?Jw$oD$YlCdBM_;RQ^pR_Lm}$`;7(vUyyit%0l>0_mwgH%;&%F7~mhCFF={_ z;zs=AEUb^s?}zbx4D^wWxA~VCJF+Rr0An044qFNG1OI(3l!>3)0S|_KB=KtTW01E! zgAB07>wmZx{FNtyPCR+nJ#_rr7XCx%d5KS>v47VYQ^x6|{#VWd4}oWkFdosnUO>mI zM=;RK|CILLPKyI%Zw-oe_xtFoi(0_;E=f-t7Uph_Fv+EzgkF_C>V!mgckNLu1ZWQgmMMq_r z-^SwkZ$5{;m6q{@Cm=sZ?GOJ#@Z*FXQ4#*Qjh9EC4g7(=!?xo5dUQDA(RWDx?0FIJ z`PbzPY~bsC83gAk%-_bdS+%N+{zGe7A1Y8}`=>iN}$(*rDiiQK<)(a&i+$avC@u!mmj zmGXJ;2?5pseYdlq=W@u~iLf6RpdHEUXTbOK4w85~^Cpx>NPBwZ9gO`c6lBk%J@NP8 z%i+H$@vvKt$9`ANLteg%v0ZUKcZ;asme$wn8tA)A6@1wO_+0&r#OL3@e|hp5XQPtq@)zZJ&=VRa_;)TuPdBarf_qXKwKXn82;ICwSFNOVn z8pgNJQ%~*0euck}Y8)R`g+ni z@W;Q9@vl43-+GPK`6ux+`z>;ca?)P=uYn&&hu}Xgk^bE0u;)Jgho!H{{<&~>#J7)@ z^1BoGbr$e>KSA%!@YmFM&eIEkr{HI+cpjLo%lC!Yw<;e0{hx^6O%Jjqs895UplENt zIq1aihCp$u{@aDvcbCDQxnIo<@IFP-)G{yg!n`Byo~j}5cWcasNaPD9+{Qrl^sKM{qa5O-;Ma3UBB@| z;AfqT2fYJARsU$u2xGrqP{!tn{y%$Fx2HD(eoseyuSz_x8>Nr;`^o@o`Ag98A9imC zKaLD?ei47xIw!!E!oRZTyWZKb7b@g==d=Z|XNO3B{}$sN3jWyir$#^@BR+&`oFB&< z`1=&%@9KPR1AZ}AW}CVA<+4E|hD>Z|b9jJ*l|5&!A= zsRkaN49EV3KS}xh1N| zmrHQIJqgcgez#qY`~&#Aw4bTJ>=~d3`aUSir=1vJqkx~bKH3%X`4;5UmbW?EV86CX ze0t_|;1%M<_IR_7!+F$GWlp}qlfQ>Q1b-CO_;{~C&Mw?e`Ume}ebw{md)9(KiT${- zs6TC2;LY=r{!@(j^1(RIxefjmV2RH!avatR`jqg8=C}3y0E_<1im%Xq``wk0Pes1o ziekTQE#>j#vyiXymBfz|UxvRl3Gp+5UrWRK{(cDfS`K@Ef*9`!;JLluX#5ELqlcH2 zIry;l7g*08ssCHBa4%Fy{;!LLITZdD#E#Q{@RyK>1E9}DnKtTW_saD@4EUwSv$p}B zj|86E>oFGc5XXAj<-dZ?2<#D(2cqxt!{Cqn(JB*v#vB7YQuOC0Xjl*b4PwOWfA9|a zSK@cOeT(?_%%GFMa1b{30@w%CKgs)bcs>vM(;h!I6!tgrKN>}U?_>P=I8UeNRR1R6 zmnshtLtlK4`KtLQH+}|rQtXNQrhwl0vj6>3&`-!;*h}=k_FTrkMgGQqDARsOL7!9v zhB*6kBg0?(3V770$jfZRe{aC~#0{c-#SFwR;eRJlCVpPfh5d&7E}B2}|K%gVn^ooc z^}6?iUijzu57&oNk?$FKGU(vj6TsW5@#T*EKe-C@Gw^y_(f>(n>hr%E{2l{);|e?{ z{w=)@{_A={C%(0lf!{BoyuQ-^+t}#WLSHTt{V%{qnhAd7MSoYV0ek6n8SnpFi*8RH z2t#?M;18Y8TyO{QWpa?cjrJr@jjQ8)0f%+7MEQH{ztIXmA8C{E8>+u~IrIha&9)al z8HRj=Ga)}>|Lrhc$H(gspNxMg_xsy7LVqB?k?@N6e~N*p|DFkZLODNK3Vp8TKQ4nl zYuZ5K>E1Bl?>=7UyVQWNh4;z$&Ig<5`E?(`P+0u2#QVw~#4{EC9JdGLW0{OUJ#i7v zbAUI*Z<3z}zCwHx`{g&Hd=%tg-4C~8|EuxqxyJeWHrs$dkSCG{>Tf6n=QQ{~JBV^C z=zXBkT2JEl8K)z@ig?}v@%$f%x4gPq(1{;>1U&yY@cc0Ge6P*rdQty}4uSl;nA07uj zZHV?%9*uZ#@BPTv6L{FLrH)U}oQ?B0*z>kLe{v?`As?6V_&w44QZm3QPnYtzIrQfX zZ%TXMj2!}O4~&m(#K-%%1?TDTPwo=*Zw!BX`%k6*`z!37RbcN-5YI1NU&psGyXfop zRt)=8v7ee2B46$$nXh%q>hKq8q&<~~ymtZ5v8>j50>D40m-g`7f9w9}vsljn;-ht< z{;Da+o04C*=}GACIk{fn;9&SKuul&{ed6!Cz@zCe$b9a%BCt=C{Edl^Vg5K@vibX3 zJN#*7eNKmeI1G41`;YMGs!KJo3+e;Tq5>r4-ya%i7=PAJB5d7s%G5_=agmM|;A3|Oj?1LZPlKCLlZvcB`mom0k z)ZegC$CuYZ-!q_(#wYpR_eJ3Elpw<~pT)0L^n9Cq73h6f%JWV8;Jgj=b&Bz^71({) zk0j3|j|cA!yg@u-OHm%V4E}6Qko{Hkf7SK@_RUEW{}w&~`QBXS&%NcmHdk;*gKKe<#^}JM7$K^V;ggN);n5{7ffQhy)y#(dH(zn%}!2oX@~Nw)wY*f!`-i(Cz;vT> z*8|Vh^T4Md-`7Cj4#Rk~KCgU(^*+>!htT-#z0w{d`QGAV`0I$bj~4VkIz{)FPrWX{ zmO+2mcr+dI@!mKYFZkdX*z?HW0c`Q{-d_p+zzM)R&`JG|SOfd-TzOvi((nL#?ktHX z@9xXki^!)PgZ4z<*TBOF@W7VOlYzfGK|UbH{CV(r@E`sJ?I)^#(~0yBt@H=mV4v)) z=+lp1*5zk7@Kp6bSBHIH4}5^y=lzA&!2U&k&Dx@TEbODDm&x_LV?NG5|0DPF?g+%F z=QYb}kZ*(h-iOeh_U+9$j5{IYuDfI z3SFN(jfoF?K*py(gCg4HUMXL90KeY=e%tcCG5EVWg1%n^)ziSsjC zURJvS=R3%UUjX`u{>;jZ{Uv1OqZ0iaPsRE5AvpgN`*;5&{M{>Me`}8quv2c8^19_J z;1AaSIx*ix*#9A{H}y~bHDmo2Bj0Up^he`0V|~|we`VwKW|!gp7iGVmgZ&Z!-i;9L zABR4?K(Uuk=s|q-CYgUU9{4`_S*ia%Jq!GWf0h;Pye@}*rREbhA^x+@Zqgrp z3i6=(qqU8C`K6;UzsIG0y7!LQAK34cFdohC8Te~Qy(s;!MOf&|nvqY9btir-x&`+0 zFllf7{&JEBD}Rih-!l~W41ds;&t5Ft%a9j{C2zmd_BuUup}`2{yuKTZRq6jT@+aQf z&^q6x{;!4olmtIXeu&-QzjgO}nw zf(bnMdycX1zmVtoNBuFt?o!rwH{i|E4Ulgm`a^1i7O(yU?Pq=?<$oLC?d>ni{q;!| z;-}Cz89{&Q9{7*zNdIEBO%V@^Sn+P!f49IM*(E3CcU#yG_bB$}9gw%x7s&np^tt-` zPJ73&-irNF55k+^&uuK|AA<4ULp+G~7xDMEke|Dde}`q}{QVmE)&hL6{h6JcAuq^} zUm%|Ea|7^a^&oppv>%Fn^3nEkzaMm_ejfiV?DNSPX}{bKd+iX!duV)G&(v+eBg8vk zmUDV4uzmr=&$blhk#H=|f<0*a7w60mu)|^hfUO*_M(vM$?Av8NV;&P#-%nT<_VH_f zN4~n~ukkMAe@_guuSNUw8yI^G`9?N9_pFZiYpt~Jj$H-zIpi73#Ob>Z`)L%;%afv< z2L3$xj@(a+uYx=)@vV`-1Jxg1{czaBO8ofHlTpTc+48kJ@a_iWzwd|si9hAAKlg_` zA?(7(e{&l0jgFG>$;S`H`oKEK<2mW~-u-m{Z{-i6kN21M;(H&#o>TPe!-qhBz@Kat z?Z*S(DirxYdjZxD;}d^KUS0<*nESChnip9P*a08hUa^LrAE{NYiFA0x2-YQFZ)n^XK%@?*4tZ)eu&^GnXq z%U2wP{SlDoH5WyJuZVBGE5<*0PrZHw`cd^SH~9Pi7 zbo=FA_@|lIq=QeFNAr9A8t9{!<@((`59|A#T;JyZ=>FHkkT+HSzDpzDP&rR~ z1o7d8pGbXi8}z{iihR8Qe0UG`^8`WfI)4DZz<oNo#Je(>p_2kX6>sDB#b$wxt7ZYj#O z7Y5kGwaOX7s(kz-AxP)vWq!!-y5X-PKi8JO=br+8jtjE0(Vpmi3_$kOSyDed3_L#Y zNr}f0U-p9%Z+;(ytLHsaEA{iSU=QYdGvecd{@>4sy$JalhVh8Mxr4!PypM!w^K$AW z*oXg={`Bh)>H4vv8TP~_5>L7je+%M#m--|6o95vC)g?h^{$T)F1>S$L@#(7+_7nVf zS|7sSoiXvpm&x;*hYdWsuLdS{; zBSNIV8k~Uqt>a|;{q)ztf93hxu+P=}xIKU`SHj*IE#~t&23GN}>^Hi8{2c!0bFhC& z-_m-|-yQXp^=SwGZ36roA^Q6oft!R+Sa-M$;*Uk6M3=bc8q zzb}A~Hv%6amc0J(qXLfpB6=GT|DB2VduadAcz?w|?uWj|GU+VzB|GkOCzjO9QeEbOHo1i`M?|Q^HZ@(|-#D})32EE9)hL~~s_gN40{togY z_|-m6*WbrsJtkv4uuXY?UD#iX6?^No*@&mWA08^`ycqW{;Ve{l=! z!!H#3>`t5~9rvl6-`}B6ZiK%)M6|zx^hrY*n<>iwz{0BU&*Y8<{yqx*Cg@)kg1Y!# z$=|bqrwz|Y|8;!;M+EzSvFPvhfUdt!3hVOm)x*Fy_&-&m{`?PcKDNJ=&rSRtiTK|h zu>bA-JD<*L-;w1RSkLpGKz@{HU!TSMrH>ed_O~ zkAP2m%lzIb?4u`PAKCrgb}RJp$RPVz)ISvXHF>N&@BKaIzq4ZRyb69Fi2RJvqW(kM zVgDfi%bw4d-|O~Mn}K)l8Ru1BLB1}7eS&4@^xlDvRs34K9pdR%N_`u7ANDlXe{Iw! zem`|mfHi?%5PRPK>^H0sCZAQSNEQbJ+7|iu(7$UbzzX3gId7=a9TU-hA*&#m9Bf zfAw2(|D1{a|7ZB05M$nccLP7)oD6)%eude?>Dw6gTpi9EhM`RBw+7|MmGAzx!qCVqB&g7bvg zvOE;~E%JnXKcyV|M}0r=m^kDS=eJ~U(0+LC1jzRqL%9D<^zHB*&I78g`x1!$n)h^j ze$FE7Z}=x4aoc#FMXXLiA!L%edRc>XWQrMRmhoNuA0$_B z4_f{%(etZ=^!Z+f_4pL;v)SXn*Ms)LzN7Qu`%zwBDF-p%3wMz7-EddL3l#hcUJLw& z|7Po_bAfja!0Ro=eD3YV`{D}Td^ugGr}s19RWgVegvFoBFM!;vBKi5=<~R?XDDyM^ zx+CaE5bg>w-*)($BNY4eRtU1XzOOt9`TZU6Q^@cTyS}*GF$}O;8!4E78FQ2_1 z;&nK`vgPXqtoMy~N_jdD`@dD;|3|Q&)cc0^Zwj#U50meoe!jOJZ@CBUM;i;PHjb^OJXRwFt_59B+`g!?@z|XA^Uz&jV z(R}t?1^ylEGc@Dnb%8fuD0uT26pt#;A3z@*3Vi^!^7{8)13cbXzRxuj`|m5|JnFDL zb$dSau8!{;BEGJkA5S||f4{sQ`e~Sg2XhwVeE3UwzCPQ)@6)kxDt^yQz@EYT2n#?j zt>P~>&B)%5w#fZ?p_v&-t?zW}da68#_82>Tg_ zR$0;Cz35Nn-zmtSdRVdlpEwZoeI@bp^o?|V^x}N@*N8976#d^a9QM)eQa(3B`x|h6 zK>L&Cw@x1UDF2Z5-q{O~zlis(Xus0)v3G;NJIVZjT|dHpM=%3y;QAbJ0iOr*u#&aD z+Zp(MGyIqHl>C9qF2ej?lk&d|{zm}z9??Vcwbl%M{;L2Vzh5HHJC?@u^W;%@KJ$L* zf1TY7e;f8GmepE6*gp%FN&Wcf3HtkHx16HqC*BGFW|89G91py%Q1E)n&N_Xsosajq zKa=OHrvMM90}n~R(R`}D)9uk=(*o?`Mbe)6>q+1z@+XFh`o}EP@7q}m`c~b)AO1;? zkJW;ISMFTK<(0;pT%+UR^{{uF5g!8CoSvk4{fb1@&}R~>>f;s1ZH1-@=n?%>rH*gs3|ka%#*URbZEWq#Nu-y)t2dtid- z?-MNi6WGtTemn9$$Sckx?-%nw9*VeYZ^@qx*VX;c3(v#-9SR=)I;!W(gt2hf;(fl1 z7;kd}Z{7fYsPb~I5g+^!6Fn9Co8*(`J8A*BgYtdEGiZJ3`9$nzwZDhp*c=6Y z1+~K0vjO~V27hgN7fcP`?*%;76@_Y~ULq<7&{R`~V?catz7W(?qI~lt=BJ&5HgnsLSeuG)X z+tQHpibc9|8Wu{@Pshp8!6O z`Cj^~<6y5XQS#gW4*m0_B9HGt9+o1$xus~|dOYIO%6WY9kN_M0y!40906pq`9D$Yf zc*=oQx_;mMD(U}|{oZZh+qzdm{$8=(M<@PX-3WU`dEfF%;N2#`yE;MN82CGCKH-a? zcc&Q=AHKQ*_P65Co_j9v@CzCLIT-7?%f-^4T6i_&VHEsjtRK<$5(F=llX!U^Hr}(x zBVH!f_eJn?eXRdz&_nXOGVIrPQ67OZt=EH#k-zt&ygw{@3F!M;+FvVA(dBh@@S|al z+|LJI1^zFS_Y1r~3Fmbe$b8PRh#%hbri_2o0>9rw|9}lHUu)qX(-9w@Daz$9A-`t4 z^jDt3d>%hh($n%stRLbDw*9^q6z+HMxAqb3PkJACpu{8o_-o|5-Xr4;H$fiM`$`^L zA9%HE8T(YUKNbG%p;bZl2+G9YH?9Z2hsyKviO7c?j`)VXzFz=O)O_Ny(-^zt1<9Wd z&^I0a?|!2Hjc&wsBIwW74_nOvUf}(2dQR(e>YSM9oe^E&kN z2DqCd+I609?8QVV|ZWQ#;>I} zw$3#QbkN4D(zf&!4tgov~w}e~5mf z@0@9f*D3FteEI_LsnX&%t;hOv5sy1t+V{JnWBWXj+Ml?iZtuUpJN7I5pP{1v5b*Bi z-K_Pb{*J#G`U~rGta$$GiF*4}pzp@qDdQoF0bEzWK3E&|$=|N5Mf~zqDX%yE4)>>A zCgU3&WxBq)5J0H<+t-YM{<%xuclu5S@{99$n_l)X_BZ@#zzFBhr71nX_H;u(JiT6k zop6?=?`eKZ8{qHbK3I}hl8;m`^!M0ul&tr>FTHopD{JXG!V zyVH97bpv#DH~iK01$~FWo_$KOXX{Ugynin7Zq8D~!#9Bcu#z?2_prCr{@W}2*bm)r*o|E%k4fc5#{0n>jN6*sR-#rrN-8fI$RJ7j${-K)xm(0PR!2Jg{zxTNS z=c%8Tu|J6V>pY5hJM14DzgC65xE=VnvEbiHXuk~kNEN70^FRLp9ses}pR4(WdFYF+ z-jn)n8vx-4XUOy88;%A&xIcIj`lI!)!v4x&f7#_jcZ2+1DCPCMj}foT$b5hgj)493 znvA!uI|}hr#Xi0qWz|310Sglf%Xm-KUa-d%`~P(C?@@(+4E^^)e*otBdYpW5faQjl zJMY^bijB56;v=-)v|h<;^?ZYsMg#Bek@mwdtnWzV3oQ}#*WC&F_i8EMBXB;Z=2!ms z67+Wy)&u+}`6#~)_7UP?SBUmc{VBle6o2Q=ZJ{qlN_t=4752$<(*LZ2JT*eUZiDu; ze$S&L_5R+cAsA))`RM2u<*<7v*e%F>%hMvKJ}fP|JvJOJj7@0 z^?M@+dkg+*m7w?auaTc}u*Ba6$XCNW=^wlXdu=B2ouEdzJY4ey?8SMq{=T~buX<&? zI`;_LuPf#Cs$Mqe`{LgKa^qw+x$;3f%6tnT!iCjLOMbnOSb}ozVGo?0WeF!R4(bSZ}qmEcxye^g-%R7lon>eK< z8qQ^!S}LNEh*m$`oyjM<;*%4}WFi;o(VkT{WHM7Txyi9qY<4^ws+b+mx5TqOiMDv* ziZ!`>IUUf$nVc1Cn;S7mGKQ_q6sIDcS z#Q>q24)tynuP-Z3_oi`Tcu+aRgw)NHin!?~*@ zQhJrtygAtCVoyht>Dkc?L_Lq+AO>x7qivmYqaCqCQu|?ccP!h^GWpJIJk}oV>ISYv zvHp4Er)0WquJKcMivO5P#^V`va-oVD@wR+A+tigwhAJ&#iuUlIbjGO_E3tm|Ol@AM z&mli^Fgv++>O*ryLRC#Io$+MS#){HpNbS73X<9r7!I&0rizj*jVZ9rg6b1d5yPlhVyWw9?H<(1(`LY<^tp^{h7k;{=G4Vvv1wRQ_gkcsD- zG<&wL=dH&llJUlPt}UC$U^yd+SstXBLNCU*<=S3Kdyj-F0GQcWDi>?ZN9J%q7A+#p zEupBk!m>>UfGsBBx${DyWFj@UHQgAGknVL20-L_C#;_Gs?$9xVi^jwK5Y z7mnqzp*p9|nggjOscr6Qsf;#{?`a7~@elk@}6dAO8tZMJ>g0iu=E%qj4KnjqqO6_KK`93Zb$9RwN8!PmEZx7%nB<6Oup%=^S zyEH-Z)7nG~#@;P;K930YJUBF5yF5JvXKqrGYHQsC@7KWmv4orxFKq(JR_%MtW zXF~M{cE_{5lW10kj+2X{t*DrSi__wF7pLvtxtfXQ#(Q< zuJXK_@o8bxyG%iC5#%sfcMi6t);G7U?8)S`@mHS>KL98+u@aS{lI|v7S1z>>#7PCmx3? z+SAeYcn)@QudUBzm)=dnXwsHWp-ngGZp#QL)~Fhdy3#%IC_LwRu$R#eTi#%r_jomS zQ*v7S*0z?DnxUzcI9eTADV6$(e45$()JKJ6uWeiSG*)IMtD9Api{;sD!dK4Gk!t=*Nnp8CLUQsvd8 z5c)^=X-_soYNN4uY*qqVq>J`DkFQ0i;Ae`taaTDSYdf$zk&SD=W#h?sjA9GCUZy)6 zkM<<8`R-Vfajj%{&H}O^0M5izcQ#Z>Mr=>K31(ET0e+I^sHioo+c0icx2|ECHjiuN z?tDugnq{NQd<?D9r z*QXHO(C3RM~Et-byH^vCa9Z7 zw(?OhZaFHfSKRgc7>{u%lKZ&GHg;OTana(5@_`X(bRL+lh4qe|k&Wh?V7{tIYIw%Ah~Z^>qZG%Ba4(=O-Ia-D z;}I+TMhiNq!}&QK13k6E-pW9a=HcdmpSqhf&|`Y}M}s}6;#dv#P^w4f9?PZtpw`;s z^QSsdEk}rj=Uzt+bPEo2EtHjy73b3qCP{p=wuqn1s$Pp%+rlzfthI+sxjfTieR#=8 zUprCOysu5wHFULg%##pYVG)xQ)~~ZV4u}?Xy=AR}zPGGam&i$%dmI9V2u13Sw^O%7 zN8O3lRpo3MQ(S4Mw}QU3tOXQS{N4cujsmW?hY%aJbs9~l*?H>c)5;1yF0E6+Wreyt zT3OY{-mqFI4z1IopxvRJ10&cH&*C6haYiay5%!+iozHaVO`9#GJTtYs>V1Z4;_Zn% zd8u@QA>)XS`5&H5gN*I&=!j=?x-V2`{TgqVWP~cX(+dE^`J869ggk3!a2zqVoBOny z$>~|U3cFKrighE^vqepw`_R~7JXDASP>K&I9P}Wnnjdn&Cu!4Nc8{v{nRKR9>d9*= zHneHDdCkd;CVSQ~40s3MDzfoZtSgQXT~3_bhH6lVKrF%(PCf_>_htLpk(Qy3mUZ9=0X3Ra!aI%Q~|0I73`JiBoI_ zP(f0|cx1_NyrXh5o?;f}AYUhq5F*51{{aq_1_R;dY`P8ST~?g0f+9gvvs1cFUp=JP zqir=Yo=wG*&i2KQZU(|cdyuP=NaZ^yRfy5N>_Dlfr8{IVz13ujCIC|LU%EgDVs;h_B z3ar%tSNYojb|!8qJn?SgLRHtyT%hVVx~rv&CngC+5Y@9o1yJ2grV+IY=7>~5!Bfu> zl;_?fXcfFh=uBZ|j=S#aq=ZfE${28MQePxC=fr^+cJM)MU71h~7$7NgZ3yEf0XhWm z#bTqbKNK4kT{vnycfqLn+(c3Hxe21xHiFo%K9qo=(h@UzFNlpQ(i!cF?@*J>ezz#T zswVvS3~f%q*w3z31tHF-whzKp+X!dBp{1cCS76=w3%Pvx|O#nn9*7rkV9j2ylsfWz$&7 zKgsrz51%WDV|rD87&Gei*`CzfyHHSn>;ggKvB?1Au?c}yV^b@bJUUYl&E%2+cqV-Y-g)$`z?oOy+GBkl)VB_HMh7MAAGZOgljsX|Mm2MzD-k;R zN^!IKa)7ERWi>qlk3!m@NF#5pfJPawl`n;Rg&LY#!f)Ol+$+$nUoS51dG}FR zixlcyY7<{B6AfB5ZyKnYM7ly_Dz$vJrvaP3Ye{2jTE}k^CG2;X_VJm5pBD0~ZU7ff z1dV7eA$?am+dCm1%M`+QSIb(_uy7-#cVATyQfcV(3+7sD6ZW--CfMr_U7S)#HxHRY zTyku-m9V^0)oLwW4Jc0CnU^xZ%5XtLpA`fQOf*evwC_duV3wuEHM!6 zN@M|+Sv$a!GcbirJ~0(^SR#gH8jaz9N>tGWKTiJb+W0{OA0o14p7mE@B zr%@6LvLlK%sHGf`SkBBg)_bK&9x2IsC6b@<$=GZ&HCC@hsVM|>O^xQ!pN5fCZE8mc z(qUZHN_evXhvQ+FSkQ^N1F@kH?FC$e(~9j@3?*$Yb7Pr_Gi$- zDQ$x`Y$-W!gEn|cNpXWUdZDbj!5Y&etxh70t*=9&4&1cSoK8?Cgdg(rR9y$q?4~7R znO$8boV%&0Nqg;eyJc-gkf%qD9F0j}VJYWGbAqzmw8R?~ev5jk04rgy5LEQ9dJ#{= z4ElPFsL^c9N3UPV!8ayjRrPl3b&xJ)-io;^s+%sn=7qQuqBOj>yHH#cH=ooYy(wQ*_1~2_(E}Nr zaZ{~4b5pH7G^th}4vt-9gp4%i$kBD?sK46+p!2|BjuvauQL6;EQ4dw=&4mSDu!?2M zyQ(O>_UlEh;?;}8mOjtIY3Vt%eCj=_pv$MN{ZzDdWo)X-$L^wVCBL3DY4+_(ujSvD z%59&^OmsCSTx?ea(iUPrik#;@v`F^*kRdDh_Fyl9Zx40_pC056@|%THgZH7mE*8&b z)7hxF5G#sOD$UxGX2wlrkn#7lBHHbg`Y@^H$xI5FF#)ZsuWvu@CoLRYwlR%f~ zMQEjqP*D}1A8*6Gu;OYLkPzRqV(q#hilmm}KpbQv``n`rATJoj*gv$R-*CVGz%FQF9X zZkX=JZotJ=I*$v=MYy7qU*$uq9d9q~#+`5lZlR@jg_?2u2dHbrdwY11ugEwY0_-$y zyq`fY{6rFS%xh!{az2a;>G=ChB=Ra>=4-%Vus>Wq3$IDdoemZzEotJ{#>Hmg2BX46 z*S05eRBbHoTbrFt;|0+cdNaD4ZwwtI%rWcejyAJRqt%^wwb}{Vn{7#4Xh$jBvfiGu zqFx1AR4dk|@XYFRo!$BN^t@EzY9J)lJ}sU}_F4|R4P^Qoqz3tB{L_RYGYV=xH{;c= z=SJ8%RG06J(>;87ydWG+TNmkS@<9A-?F8uXD&neLie}}kn{dUY+eT2^_0$fy+UsV& zYY;;BB+Wc%Q2;`Jh@MqJgTU&ADt)`2UQO5pP91a-{i z3{?WP#C~p0n70lTsy)4UZ3@`9fS2!iUwXpSroisgTiYvK!OfR(bg#a(rJVkq8dy3@ z^vt-mT_c1VjvRRpgV&$&=9*`a%I+oH4pDTZ$h#X}$GNc6yH2&FcN~z<43CT9s%SLt z8S}U7@S;1H9FrZjVyc60aNyZ~FV|>PO4!(^X-Pp}@3w_P zw%#oY23)l!KnXf@(Jwrse1lRs>eoRZ`0Lk2pSkVVQQvv*(^JVS;nUt@U6go?wlI!x z8*vYl<3EXX8{Rmyzq{KZHIczsAJc(&3i1KmE&iw1uEXkXrj zC5xI7-7id!-z+JpsPMvPJtBo7>b?V8jl2WwXq53<`BJ!7sG)g+;x}(I8ef)@5)hHN$l z@2z>F;r4j(pj7bnB)B*RQ~*4zNR6^e%h${V4sXg_uu+H-FUFXl?cKgGV0e>e;DC3> zItuuAq-<{gj?5kD*`42h^sa1*s;La|;fZJY zs^dc~>etXp;fZ$>7ZkZ>X2Ou~=&qJ7o|q&QfgaBerTO8(H652cC^az2a|DS;J|k!q z%sJ5rnjPZqq=dcZIs|oXIbWj!rfIJC}srr^RrBa*FGtwB{i{98h5H3%1$ zP0`E0Ts8Y_+?YLhK&wuS2ecX$+|X)NFrl@YUuq-$4J+s`uklJ~LEvy`wydf+_YfoL z;D&jZc6ir`1(-eer%iK0T>NOq;{oN3p5Nfqdav=Wglk9V5`;RW*AvlrlfG>(4m5BJ zr*`ThAKEhN_}MP0>4S#R*QX?C9H=H9Xliurg{DRo>&0zTl--&sW3(%Zrbd0Nlj6(~ zSb9`Yu+Ebr<+*nUF2l|2rT~!X^jJb7u5?VcCwjWl?UeI?+i6shbG;yj(+}HYWW>tbxadxFRb_iPzm**XR*0)9Fel*A_c{>{I zitk3;4x-Jg-z{9$o=J*pEBXv=wxfNcn0l^O1uZ?F+CGLJZj|XWGdx?kfXSSc2Qxf7 zGTXVBVYDg&N?zS57M_b+24=bVL(dgR^6FlB?Ag8c+?Wk@uN!w}7bR>%w{2&T>5GVF zJrgr3th9PMt1@1b)3aD3NEyLY96SiA4fPl1N^j^wIHgltzuQKJI-ng5l31fOEc~v3 zQn5HpxGS3oVJ8y0liyu!ovI`e3K+O5I=O|W{#I)iL=1OD6)cp^qE}!Ys8Sr5wmy^*Yj6GT0O3UWvBQmX|F$H?9rh zw%FBDzEEm*T@Ag`%D)1tEtmZmszH}VSVeW=%;U$idb&d?o=6NJko@h^UTn-vR5BvtW@w-#!4NZ zR~AAFjn*#5#|BdR*9J29Za0Z2>x#AaB|5$<3p zU4a`jc4=1gxoKFL&qeqnhtE14cbE^c&+ni8is|zT{CwvIN{W z5_t5e+)1E4PWiJR;3%|qi_x)NHLh-P|AwD%S7z-L^|h%K!Nk|m^3WFoI?7<}6q z+R09qD>i~v+XwW_zNs_CWA=LNas!M?Hp~^Rr=p$mxoT5@wf+j#Q~C?nMWqThJ2XU& z`#vNxzA~z9A*(v*C|KROuY*^wf-3f{u5T%;J~WzdeIj4o2tBxCJQXU$7+Yl&t;jhT zO~b^ChFL7v*%j{+iI352d^T(f`$wd)NAXTY-u}5Ghud`_J2C{J9W~)p#QJt0GB4)$ z;sqnmPeAKU=pYMLXF4^zV52JWxp4a(2lWU`e@PAgB>|Fjd&H^6-xL|2OvmyO?VC+{ z1*AyTR7JGcwe$)z=)=91$kbT!Q*Hg^MO#RGs+ZoHKpPO}Sqm3OC32m6W)pcMEMX5F z;>0(myXlp%cF#U|4e{!b_ukUp2h)3=j!RD}4Zqc01B~hQ8aqrczmi!zZ+v@Bf34B( zgufRT%jOHr(Rv4ohX&&9_;_9<(dx-9y&YAJ*zKR0HA~bDm=x^$76u zmCTY#}u#-C6C)_jN3V|a)a0u(EP0)t@2G3Y;s0SA z_$mG6nvj=~P}eV_`pZpL1f&<~6 zxbXg)Cx$9h{D-J@--cH^ijM4-OwWoXc?{f%tGJ9d3X3QemDjUPlg#>rt8HkO%+o2j zLjV$8)UK@JB4aE7c7wG9)zKzgZc6|5nr&gyY^J-2P*&RCtPNXEOk;OOzvMu_b48e> zVaLiw0LD^nePEPxiG&?>w1iJ3(-J%4lG`#T{P5&Y2~;UOvhS+!C!*SSAj?dh&K(Ma zUEDCJ0&K=ZRl?)wXphoywS}maBHwl#-6w(9dc77pY(d(z*gPAr6+5FD9u1<`$}b+G z60YO8K%i(XjDW^ItP&UJ0Y^-0@i_dqj1xlN0HKfg^18&C$dz3#nrlFdFRE8sK@YEW z?*n6_e$r7D4Y{Pl4=B7ghA(jRfo{o0UotC8Ak$ZER9agHFw@l4)t%=z1p&W}O{67` z3(Tn+i+awv;~cNh5wB9sZ-Mgkr1^7v@|t_o{x!_=L6rdWz)pQ;rcY?kjDtS$%;E+& zSSq67n(_M(4LxD9o(`eu!+plFvEZ$xElFx3b7t|#a45Vd0-CnWd9hTq zaowDzcM0D<67xV^t2Mctk;a_Ib06U`(`huzImGXTp-{4g_*iT*u0=r`M2-ErWLSGB z(&JqCwpp-Bfnlf<9P2dma~=OqP{pT{Tw5%KLu5Mm@vadf zzS^f81*&Lg94<&qz)tg9QGY{lBG zZs?>$^9Mc0bv5vc^cVGP<%x-lBCf-f(*)4uHNKO~~^E%`HSlcEv2DTU4 za~#iw=6z`~cW-3j^%hlXLYLzJ%PYbrBZF@83sAK@2R^QW>N;aNJzVBz=hhKPwjF3li;)f^Ew8~i$8gV~ z0A;ouYi6qf^U5)XtM7WXZ`*|Tw$H<%?o=+;5uXM=kqg~!F{!CBM=1vhTdHh|T9H^C zR<#YTjHaWA$w;D`I6l$bS`qa`3%_A7L-!`)eR>XEtqpCR7%j)peo^SKM|ih|jzT<% zs?mtD_Q!G%C9xQs_8GEL8`3(Y>Hm;keu(DkfFG{pFl*iUsU2}8>?A?CMZ`MrSYG;E z2m-3y=kS_v@^g58mfjb=T94p#i;Pe&;YYNu%E9t08mn-BniG%DZfY+v$-8A!n9u35- zO4LriRBBp+XJgUH8)cp>?<%M|VFlTMss>p>NK*C93PO^qoqk%9cwp5=^M3l6Vcv;X zRt9%e{g4d~o-5tLbANJ=LZ;FA8P%o@df*C7O7)=M_BLa~QB*JZ$D~9-8fy3jQ7NNWIUYGVg%Lqa)4y z)kV({tP1`kSg$c+O^j@E9j4Wklu$(`h7fO(90QYgT0JX+wKZ*L)zBD9QjH{6ZADqc zRzOV##rtbvddvU;RC|nbR9}$4o?|c zo}TLIZB!74>vEU7FC-fwRjHciTnU=+dSgc-nT)3JQburM?nv|%ZkR}0aJwg$- z(x*1!Digg;y5Kl9_}F4T+e80L`a&IAaXsG0 zHaz1-w1IfEr8B+J7+o}nm!FFW70C`sO>wy*KeHyf7sbkLVMDwEp;Tq{`aC#*Xdnj{ zyQw3V%nkN-BIg9i2=MB|ek!q%zM)ENB=VGn7)Tw0&F-s1B2~HGl#aM1HmpvdS8)z2 za9#zQQhVv{z?=RW;+NPG0FuYFBF)xa<$arV&HNm6O{(9Gk?o1b;+pin4PBq>Owa3z zrF#3tbvqBaZ)4hN%C1&;HPBZybOl7_1+v!TbJGazBO@W|Xl?#$dm^g=mt4fY4N;fI z$E>+X@D~Y|li>OcY3`0#B5Az~wY=TolgNTPZe)q>Y6ReRr+yB|4Fhr^j?p&cuE*M7 z6GU@yT$YeRvV^DAC^A_qE%dU%t2Iin9s!u+))RbAS3-KY7G@%@I)D+BjG@#oRZxO0afY3Gd(I{S%6$6P&Rhlq$yvK^J#JjF^O3UqJs3+2VJWx;c z;eM6&C|DdzQX8npb6i+bx_OV%U`z6H|8kx`PhM)^#YHTHj0zHkVC~z1}bTsW1i{-Lm z?7u`Vip0Ztu`FH$mi~4mQq8qgE*q*r4F}&6Xx>Bvg{tk^04jdl0zn-jYaQ_{sb&mr z^+4l>FwVRz6cV**g0jKWD(<{b0pK+?PXu{rj{mtA(IZR{0;3&@qPPIXrG)a-fv?M|uRIL!(DrSEW}+zNEUObQeNF zAwxQ|TA!|1DOevV?rMFy+s6?Z6zJ)|hzt!hup$HU{6r?9&x-P{3vz*seI-wuu0!#x z?>Ge3o4(D8iR?TQZ}=+er{3|Ry=}XQ@LgK+wW%}@S7H<3u2xGDLUk&37IMV(N$?CS z>l$rg2s=?Rp1n4}W4IjnfgJ>QqC$QQi@wbnqjeydMI4!7chq0+jsgU-m*rVI>ZmhC z6SuNQTpT8jm}z!)aI-%xl{;wR1lYrx!c%Zm``%nZa%pV~j+-td@y=|$$1T#S!kJiP7teb8?issW%{G(1Ui6a{Nu};(o)#xR=igN8?s9O1CVGQ3U4E61shpzVF zeth7t-<{x#hgIC9uq|>|Pt|QSDf3kj{eB5|qfB>pwm4w)?HR`sTz&ahFfN6tZ$X?Z z8PDTzjWEDuJU(SdHzha052hH3-gyaa@!~)~+g9f$xxV#SjMjQN7`B_^7#5||$bTUO>A8b#G!FYG_J~+kzq@jL z`yOup^sApRCrN};BF)RuQ#E?(LbTQPZ_t^2A8NlStFil|kSjS%%h_QqpJ@i6kmaJQ z4&CGstIC(wkM#Q8%Wt7k0p^&EOJ8ucWnY(AZQH*^ReR{?GAdp4ZQ+!Lg_p{NR7;g1 zhsSsmkoK1PrGwJ*nB3@GK-886@LK zZRyTa%27O)GS!uK87-;-GaFRCd2s+3!Ce8{W@nXX$CmCR}vKM*F+2<3MsmOv;C)WWaNERiGd zxQwB=4^|TMYcQCQkP=5jutb{{PZ23$T2_LXb1P9(Duv7Jw5y4@dMYd|VUlQ92n2!S06c{ zG+0%6mOi>nptXdh?|Rp6|7M z{30}wta@m$X0F1Dw6(>^)FejIwznWiIdC=CuPgI!?ybj~v3E&xBWOq8?kI5fZZlC@ z)$~%H_joX1$y4`E+^CEqEfJ4J;s%|}+KC(L!38Rzn<`4*u)Yz3CUnHdGYR;CnLOe{ zU7!R%nNt!C@S~MzV5e^MZ<0=qFAm@^h;p_fE=MRbSsw29m@H+f@K;SsoMWBW9P#6T z&e7vYuh?S#PtDKc4DuH>KabPGU)20OPB;Je=f`n`@XHr4`ImJ)FhoNmepg0`U{d7; zCirpr!32KoFJ&r-Jp59of}qkbWhw|Bs)0+S1Jkw!LQ9r2QeQVDf92l3%TuAEs0&ku~fE zm-x|wOF&-1MArTgUhAAjkg(f!ua!Y-4NPXc!6DQ%GP1pf9(=3a6b7>K3kd_J*jLk@ zU-!b(7}6O7hUW(>s5tG zY67E$y8JMI#n=H#(!DiZK#c=36Jhb;Gys;XrOVuz^MxH+N||4wXAeV`zg=Qw>{<)% zl_YPu=qoUi71SSX7Jz{<+6J9}{j%AXV_y`q z0`R6<^8ndwgU+|2CR<_YSh4j$2^L%7>8-eUQOIB$D6AWdgVkS}v9==cXz&fSL7C-> zXrv9wME@5Iv_YBpPi>qH#w7l)7-oaPyI;CdHW)lxAq=v?nAi$nj19)LehNcuFfzb? zX@=N}z@x!8#0F)SE21GbC=>l(FvJFB;y<+^HW-umzha0D2Je39hS*^6Y=tny24i9? zfFU**)A}h4vB5}H|D_pXD*}%O-w+#=S+0nN*q}`Gf58wNl!^b;hS*?C;{S>vHW{!Lt>@5F3n%tpJADU`*?$FvJGqow{F|A+{p$Xz&fOL7C->XowBUME@5Iu|b*m zPi=?|#w7l)7-ECLyI;B?HW)lxAq=s>nAi$nhz-WH2F(x~$d~^I((3ZLA%K5&y+HOp zeTf|z{>zce_;WJE&%~lxtteCKi#_GDh+01W?)}ZjAJBy=Zai6^aPdjJFFeuZNxUD> zS(a)kSvPU?Gh=ojDIR#UXtz>R=?gFEK%~+SB%}Ie11*P07s{EhisBPp1M!~YKr*PP z!Bcp>R}l0q!MZ6tj}>4~7cym*3wW?6A(jJii_tH_koo!8F-T_208VIyF=7UAPDM=^ zjOBabLt)fd9s_0oXZVwtF9S#KFWPt+I5zdibm_k+|0IUXz%l3NGg}634nLRCGH^2( zG?QiEuK4>!m@GdZI|j*Q8NdmxFeb|Y&Z(%$g0X%ElVt#B_>-6{14r*K+GH6xHucA3 z>AxudBqqziG3VzqSq5$nKbOfea5ES*lLdjj{~u+MUm^JU*fB^Z%K%Pjg)vzMa85-{ z7L4^Xm@ET0!=J=t88~`>(I(5lv8g{MOaDdrCox$DjyXS{$ue+r__<7$ft$ggnJfc$ zW&bZC%JTEEV~|Xi0i4hZW3mk3oQj$(80%*+Sq5;1KZ(gQaPUM$-#zed=K>eW55WOqE54b`9q|5{H_`PstzZ+jPc-k->_O zPPjYpxXCG0M_(dJ z;i}iV(#VUo&|E4#Dtlap;H;w++f(UVj#Z?AJk}7m;1*oN+GtB{X=GdLPWZ5vptEnc&M&B(;mym$KtD~@$95@+uV4&_2t?^t@tN>MQ1H}G|x44Ws;FO z%?aas?_NWO>7%z=5Pk2w z2|yJi%%R;4Rcl}IJ>dnWRojoCy`Jd65m1!`Ag>9YCO&TKr^-keS+ zbrCSSCP^NbPUYkC^HXQdfiVCrg6%KQ5_mD3%aFX)Hd&htTCKqNH95~N2d58%+5%+N z%?9rzSEj_ejLl(irY@OI&+X1kh^5+-aRDp*qt^Cb)a!>UX2sjmU2(z8$+1*yHZ9fo zSq6zd48{8=!j$przbiIZfSfgpVlxQWVj<*&C&%Vng>mWbR6bHb-mswxN*Fdz!RL(? zg+$KWMmif^8>Vu$*b0-oA*7nz)mZZhRgk3jwx*|br}TmC3ZZQLKvV)19TtmH645rTw#k686sq5Y$eKcZ`kY;-T=ocx*0A+$b5ep{iIuPv2f| zO115Y-$9dx-?i2k%j-hnSSADeb9_466(js;J4mI_u2$WajK{M2jO%QEa#lJYXxCSP zOmst#_0PtK!Y%1+KHe_Sj0}dFx$)j8H}RvHSOO+IA%?^e6x;{^APH5pr(suj{Xh1; z1g@s74||`fc{t4jt`I_KGIJG$j1ie7i6TjvhdQ9x{I7m0d4IzXO zx^(%T|2aF#tuFU{@Atjm?{`l0RrHK7kL;7-sg(6r5cCxq#XrAi7btV!DN}s3)P4@K2 zP}(DuK!0DVM1K}u+e*c|YL9H=E$--hbzQ26|L|0rS_8Z{r-GU!T5gPzAN9q z+q>Gb^}9W(HP^m0t#(+3@bp4cidJ)~-$br49o+rvbi#_pM~Ys=$%>XBxYnB5#=(QD zxA)DfD&<1%?(2-ky0ZV|uF|Vo-Tl{E*KZ>9-2#@on`!0lhmT8N#ZV>AT>m%tFKj8g z!#~-o=oS@2g&JRzYY$JF@iC}y0aJa(yH<>8X!yef&I!bt%mixkDuzv5FH^Ncb8`B2 zU{PVMjWaiotQfJ?WYfml*~KehiVyBE%Bix$Wd5AGB8ttE%MWH}349`~al_2Wr`(q)>+S=3GUt0z@Tctx>qtC(}pGP9L@z4mL< zRi%=3m_C)8rc@QBwbj=;{O#na%DZo7Q0;no&32qI#UBEzSSYF7I8^erO0;eLyr#Ez z_IJVD%4fE<6-u+i`0-ezgT(r@^YL@{z*FT?Setz;)wKN!2X-_GrJC>JfkB5aqDsRF z?xE&z+8|zvDE9U8n>gLOY70Pd@|wow&6mVDam)N)YF*Y66ehgR z{xj_qCANA$6;|3Rthi3Mb;q2S``+XY8F%pT^_}WTU$30KQJ>l>R`;A;`rwIPSNaC@ zAADn>kg8dmZ(sd47P5>la-LoLwktif?EAUAwzGySAmXX)3-lRjO81^1DjC z;#$NuZuB+J+6vuuHw>b^Jp52htFDtMS_RIc4Jno|n_82H$mz;!Emb^swL>P?=6zd|rXmw-@*f{WtN4k1jJ5b^L&XB4Bu%=$j8JRjgFE&Q-+%B@l%V5vZ>BR+Lb((~m+z z!!0kGwo^Q4)!WA1+NN^PN_{HK{@kZlk&nDjMV!g5oiBZ{!on6c1nu1AepcM zKbpH0?!Fe@zY5}iD{r{?S82=sle$=)e?M0Ds`KH;nw#o;_^}4HIv;+lg|E(sA8Uo> zKGfD~$Su@dq2#Y??$G3~Ypz1_*EKgb^4B%jQw(+gUTspi`yZ_gl-_eh8R{ysuY2`@$H!5j${{2`bti|8`RkhNp!{{sbx{7g<~k^UEw6)Lro>fhi?tOd z=oQmH7kMmduxO3>^_SUS)p>YTA8p{{SDP-}SiGW0)+qcMg0=AptTaumHC!M3aOuko zur`~vl;*E<&u^nxV+pGvisW6TkiYe=#==sAcXmF3Ri>V`r37}X%qnZMOY1{bJpMMK zHP+15MiWZ?ZEA6P<(9GOL-auC$6j_qb%w1|}N!wRc+uDMIC2m??OTN&`CpX7; zkvII+$BL|Ro>3vISmc*4l6{wpsw15moP4Q-wIxfw!p#js6-zIFUU8{z!KLzgA+5J? zzlO%ryZq;o|A|-fj<3qj0BhQ@Hf@H7ue*n@&qO~j`EUO#x+Sy@l_Mix9Fy+>z&-#c zCwlv*T>^vMhYhxJcN*5$N4`w}>q7kz9xccY8;lj93UgWw;ntenu`9yM%b7g0ap!(% zML!x-n0&iL^*sV}`tpUkO6!0qQy|#Dh7~X_Anq4h&WNXLH~OUnx2T05_d8Ka$q7Zj z8!cviyCan>DYjX*RV2dQ4<9?-5oIrDI(Hl1(Z&%RRLZ;WHJR=rHoH+zZIR0#5F1D2g{`H%SZAJG)Z9{*2-$Wk?Gx}Y!b00JqU%t8gP~<9l zdt~$1qRlXZwoKVFt`7q*d#Sn9`Dn7|SFa9l`P^PQ+B>#~5 zw|v6Xy^2rrFT8)tCrpW}_$2=t`+Yune4jN){(JHdV*MU#Na^=jLo#ZyM(;*g<2M%A zBI}1yD2@Ew{ij#jx?59~#gArYI<=kR5ir?{e(+MeCtnLT{n+NO-BtNiYE@0Oh1s90 ztySeJBd@kKj6~@-NtH&L@-e2|jH}9D8+@l9iSL)1T=ApPugNCgE7xc4K8ha@Muq1d z-*|^t}Ge%UAC|#;yWsh_jlRy`7T?tzqR$HB3WB^^TYa#SHJ`h{0JU>Ry+Js zdO9{N*!WMO-!fwp2X?4&zk2TPF&(?(Xd}Z^KZihWm!Eu*p`wQTwQKC;@e1?|@bSk_ zps2O_5|i(6YE4^Cxwzu94~@iX-E#QXUg8t#561u7k4AqT#1yEgaLwi^F|*lYIh z`^8?HAJ*Oczmz9*bAMOt)dwLLTZeA`+-_a@0R8K}u*w-%OM$H3K}|VLc~g^%>LW=m zzV0mh&PY}7pteZWIpE7m4ySJCGKTWDQD?XeR(0CtP&h89ySjF;;FYh^@eFJ^J_~Gjt zNFMqIdIu={@CfvV59Hgpz(DNoz}XHAojrtqIQGPY@%0%;3+b%_r;-*M%{ZOsjOjkU zf!xEN^q%Na;g{#+3fnDOaJnhP45KV$m~&u;$1s|pK%qUGY{rWG88((nPx=}UCrPsoEl~clD&zm>U;mxoYid6+6 zb$jtuBkVgjvtpWAja#!cx&c4VL7XMB6gR7@I&599jI3+To{vp3JFA|g>#>mk_LrTq z6KyFP-Gp1a+uMigstP6M^vv*iIo(ulj1n%?5!*0K&x5U;df1PAI%8F#zOsgc%RQ+> zcTt+g>LnJ=%`_gq;+@wQ^Mxnvb#!da%q;}GvCNW3A@?u;vF4Ca%m|%EIWszIIyP$0 z6ZBMxtHTrM3Ybt8UY@2Ib4s;|vATu*YH?g|p+#RK#?htlDbK%<;kgL;{nX+lDuRe+ zI(E!;Q|qA<#}B+Vc){Mrr?c%Dp>Z6~*G$!omz9y*$X;LHU^XLGQIR$r+jo9^uY{lY z89EZNy_$yskH?5qRCxCM9-=rM;Vovx;=!-NRU6CH`%)4$og0o4OL#JM^9*MF`WAz( zjDKEFXLPo+rMTg>UQ$y>4?Sax5i4gi7Gl<~S)Cqsh59`r)rU3c)__^qSHcWpE{W|m z%tR`TS*WX(xK&=hkTE_d5jEoJsxbB;TU^yb=h`e|412xlmB8$jsP@my65YJR*jo>? z5->f~To^-@g}ke#WtovYwY;!tqP6Pc0VA$5e4F+>Ne06dW{i_5WjP2eZ-?DmZN_w7 zZSN2w6bTpETP^3Cg^ur@lR8YO!Z6X2xCRTIkM6$0XP8Er^^|flByEQ=i_R>vU$Jn= zl5V^eJfXy%=g8Im#pdA2H> z#7S(ta*3Jn^mwyIJa3`USlBw@ca=WNB73&%^@eF^!I;{o1TySZo}Rsup|zPI)BmTnVMv!y$dfo2C#x~DB6Q7^#0~YkX{==iS~Jtz z_iwDD6jrC3z@AZ2yT&&T;W;$c5+@Ag*-PryO-gZSt|L?(EIv6x+DJt_HlztpH(tr= zZHmsT$vR@YrObc}{sxZi6PG=)^K1^cLC=mhgl; zQFKHE1T1PqZNUZL5^xzHbyY#~|JOKu4)|9f54Zyq0QUh>4}e18A@Bq!2A%`2fY-n~ z;5|U94EO+i1j+$Ye*m9=&-8$HNlst^padubDu61W4rleG~4vDYzM@Zvk!vSaHv`U^`CV2HX~C2ebz|0iA)$>SsK6<;?8A zdDk7!j^CK|#B*<;A20wI2)F`nz))ZWFbZ%7JOEF?3zz`-0F!|!fFCdw2mq!76>28* zvw%6kTwoqhq2@y$1S|v=0gHi9U^%b?2m``_RX_x=8dwXg14u=491GqIpgEVTc#gM% zw*fnVL|`XCY7aOWH~<_1jsg|x1oXcECxO$zSs)9z09*tr)Me<)!~1Td;!fL$-qH?)FF;Ze;E2Bz%k%BZ~~}M>Cm49 zPE|5H3w;)F3AhYg1xQ^3-{ADOIKB%m;PekTE(AXYih!rUGvGP!0(c3KDgnO+N`ZGk z8SpzmsvP_W@R@riGd|`&q=aA*paiG@Y5*y9jx{*e1nY5ndT#)|Az%cU0Cj=-0I3FG zbD#;(6lexC2S~L5w*;)XXB)6BUxAdnR$UH0N%hP&TKMxD&WsOPXh-4 zf!y;9j%RXQk%rlLo(s$e7I5!^!7Q+ZdkzJM0jq!r&TKWu75=Qj^IFbq9XJ};z&*!u zyqV)T@K#Qr0Nx2C0egUb0I7rEL%?C+C}(yId>lvv(t!+s)JgCuAQLzPWC0g}%IXsL zd>MR|(_aVQ0Dk43E9~FIb3SkfxC`6^?gI~i$G{WdDew%ate)ffB~Z$lzXiYJ^zXqR zIDLhik9aNz{vdM^#@B!l5CO`78lVMe13G{nUTUuohSk!~n6t zW?%~t4}7b(ePgyA&pUubU>C3(*aPeZl7amIse>FVo={ftd>BaO%#VVParz27C-9sO zWB{4K8Q>gn9;i?kpufmHUjoa3>p%{01IPnz0=IzMKt52R?r{3w!1sWMz+=wrDYzJT z36ub@fY-nqfYe*?d*FAV9QX{7;whm_0!n}~pbBUL+JG3)2MhoszyzoV`~=hoNHqjE z0vZEN0Sllx&=P0`SOYeIEno+<0onrf@p2=(o^uvJ>oS8evW5MG9FJK}t3GfB{0Dm9=2n41Bq-JqEhvT{6dB6f7h%=LL zO!gO5(uY951PBF|bLK0+D}iue6%Yxm0iuAlz&c<88$Qw4WoDP*3q5wfV6)urjymPO z;m(C#cRYXI^kVNs<+V3DT{x6)Gwo8dR*gb7NannK-$LVXk@SW}(<`gH=7#w_{4jiD zN{DN=Qk}AQ_APssyEy;4{a%U6@DCS0hlb_f5vR!FF)u`a{-uJ^k zPaEPl;m)xQF|95FCf6`v(qrv?i>3hsbBK$1ZvP>d^P`{5|m} z8oYmTWbBRl9gO>qznrROJ`{s)>hwNPSvSmtALge4op7+OCOSGG>8TNAIg9V?{I!&DM`XO!qWdl;l3( zLB77-dc*oo8n1GLc{}o654qe!sI%j6*O8N(oM7i=4%NtOxF|;B^A3A)+M=zE?H-nA zHQT7uD?Ithx~4tqm%V#lC+_k7cfY!i?O=Vd|GGvA^Jer+TtD*t(vw#rrwy5AyHMJ4 z#0Kp*`-fb4^80g@kEL^i{T7V!Wwys;_Yjx&feYsA9j6K^oEIe`Vc!B25O+jaT zmpwjy@o4jpzqd%-^{)+OCC6bnMM4(|gjut`CcB>LraxKfWR* zesp$jU)7mg>h>7_;NkK1l8FP3ZteZJxyu~^@o`}5<0mx9iEKJ>lIf#`n#Ljg3<|>3QKofM(ZcPm3Vz>cd%c8j{)TnU?$65O znax8J+9gkU(th9KR!{asm?YfNFMPA@qH4d%`!7V_IDey=m!V5&tZYZ1tjVs-p2oj8 zE&Z+Ii_e-vMkt?;$Xs>yW9tQnTDv}Ixi*Dy^H9?75bo6JLbD5pv%5LDPqc~A@V~d^ z{6_xzOpEo4PIdZ~?``;#)4uG1!~H(4`54oJA5d(x!g9jS>2Fpw-+b^^VOXn052D)b zoMJom)0|c#^Ywq#`sHkjsBN3&Zp(AKT*^ItQ@VHQ5YNB~$Ng5D4$+BAU)tRLg_?GQ z4Ju2=>izm^RQ#EX`x4wD?M~g02yYJT?{sF~m087m>!v$e+`oA4v)1NA^LCe>xaIIE zUss%bQuFR{x4CI2CRvWyd9LxN=SR|(%-dyo@Z9PdmbVNFg`0<3Z@D_4VAb+d&6Iz! z%5l;=-ofj`ns-XF=CcpBN&L+(psrCXFGEIC)xd6k!<7fu^_iYDF}vH!8`rys5199& zc^4;@A<4g9O+OgX!?m+(q4@mBu5*44Y1~&uxp)2g^Gx2p`f%QbU%y*w5AzTmJLjy@ zptW0XSR{nHjrv2XIVG{>w8`CbC%z4oENRllqe+(+^KLFZ)#+!$Uq|kl=ip+j>}@Fc z+$ers4?{`L=a?43Ic0C_47p#}`c2OGKX|!bLDvqp)6}^8=2o53B4ek3YkDtcZi`qr zJjki7?$XN-(vF=z)9khRpu=OEJeaIKRb|$+m^)KXsn57_{Gz{8-8q&A@3>qUAk%rd z+uG#asQBkSbnbQaQ|k9LRghrnE`Hp%qrr@zu+Q!{rwywcxc~8?opVBS+8@@K-|h5g zt(1*Fe|T_ocKqbL~?pRB+<-RxCrDe`N8)U>bi_mVX zrQTysSV#YD_lDNVQ;`|FW{-N>>P5?j2}27Xm9f9&x{MjSz%VN%Rr{P}$xbFUqQ~1% zixVB6mTi6Bzu8$EtCg4E+aLPae6EVoiyjW)&b@oZ=T8m0;@aLhD|&M)h4S?82UqI~Pr zxODa63Gqov22U5aTO zwHS-fi!F=hBrY#hP1|s16<*?t8<0qFKOc!?BjL_IsrFIDTi^;KyF)l?vvy zJpLeZe*Xv7vp1Efp4}mcc$YkA;JYQdA3t_|FnXi*Qg%?ebGL*kNxcRew6kjO8>C{C z7iD>Na`*a;$A^k%4L~>=-Dmb`;kv7{>+Uv>%f|bIE?`wq*VTV= zH1&^_x*e98&9>F{nwR{0{9WZk>a&NQ&ka3nG-XNQL0RLIn^v1l8f!TIqSv_G%XdAD zpU13iT({*Dr$WoNFKwUoexmn&P{M$s5e>6GEa}qB;*QbWf~bsc8#_iX{`mCq%#v`2 zW0}S`w~p#uvVX>edD`i{4`&HAAGOvU^+-4IaQ%pM2YEqgd8UU!)8whk==S9m?U z)LC%3f5S-iIUi4U3gIQ&9hDV11e|(uB}kjM`eQyj| zHFI&oNpGd`n#Z=L9`Z=HhI!^Z^NaO@b~qjxF~Ito@@eC3jRh8?*EE=(AG^ta!F|~U z^OlA`C9~Tc)nB~S?=)8}tYhEhCGS_-hD^Ap6mwxud%v!4Ca%kt1sqB8Zf8DA^xGWA zdchl`rnSCyviq1{6F#~fFi&^uywz{T;r<(V9U5l0y7hi^sd&^u|4Bop{PF6tiqYwo z&dYa+%qE^59knM&bJDn6vnB498zg1@n|k;9EU;NU;KQ^>8h1{BT>EiT=Qd$6h5Y8P*G(Vkt)i;=Xy%l2Z<>92A=-CM zrD^)O+Yi%*tiQHtyHiZZ0*yY_Q?vRmKYsCHK>q1jq4h2_9}pS%(0feJuHEZgC>gz^ z!0BMjsI@&4?q zOK1JIYUf_l>)RhH#l-atS$K5U_~?790wni+Pd`rz-*2KG`!uZAuIx+g!~4hR&kDUW z{lW3K_nwVd8{N9lw)2^7v&~Lq=iFv)Wk&1GT<*2eS=N4JgO=NsMD?tnjW64yH+{j} z@*9T@r@YAveiQ1ey%1Rs5?M9z6*XCMj^X>>@L29{Ipm{n+h%1FyXP01gyxFF z-#s3)>R|Y*ca~Q?(za&2ez5rum0W4LpZMt&-vvHx*2TM7riSy?WD@5c1s!J$boba@ zK79SPBQDO{$9I@zl2UMbmZ-#SV&ul(%N>r4-2dDAa%Y1zsXb>p6c%>qU#S0c)21gE zZQq)C)qiV9m!O3721x@W9fMT|KfO2jMpSz1xXTWEUDVF6TkSA+pOpr=do2TTcSM6qYZZIy4v)7VddG_|GDAi&YsRA?zNxs=GLK*cy7;u506dYulDrVJuSU-eU}lEcK(N62^Kcq`?;{!?8igbrS?4HR9Kkt zT4T>Rqx(10wL5-ZF)cjXaNG1gyuibomfg#K)yF&BLG#&j_q1&L{k!gXK}j!$NeF?g^1;cfo2rn|RZ?D^DAZ)m_SW})5D^~?3tUJQD2 z>voUy*i|!<-N&eB)cwuYV!*aNwhh&{zmDZMv>mS&y!!LDor8aB_eLqyaiZJ00Jq?Q zw}xG7x@q~Khz7ER!20=tJ%%gAWN6%2&@#|;@^Hys?OAnx-8F2*rB8K-_ecvo-mm@8 z#DFV?nLS-3bq?#)Uu{-8bm#OwapxWGCw9FNbzel?u;)Y8-ZT-Rd!Q zGuEzedtzLU4=>U-$7)l7ZS?Y4WP)7uMMsYV&vH1dh=&So>?CnZI; zGa9p|zLT{}dyNlo_dW`YY@}-{&g0I_B}H2eua4 zbtWy)z2X+PHu=ikmL}o;a{>k@eJ*Faq9nQ8^D% zChL2eTBz=LAKZLu@Y{NROUDnNc&&fW!{djISkxf!X#HPzb!5HU-^+LU_>}3F_B#Dc z>imx;n-Vk}A8vIrm@skKEah$2CzL!1N^WtXi>h?e$?2|J%re%F_HQvxJzi?uD693h zbk)!z<6m`7bUI&rF8qR${O6`%Rs*ZP+(PaC*AsJrd?h=G%B%vT&q4SM{z z=e45sFPh&rzC6I@vDS$;E`Ka*JfU&S4&gh~ZHY@)p6cq@BWS_2i_cePOjPcZKEW&d zdhbiK3x@knJ`gtC$b<=9H!J;K538QH-FxlLb&8x3msL7v=jVRXv!gA}|043&j4~|S zf5f}{)0OvU)fuxU-MqZq~}Oo#`~7 z_3b@sA-~SQ6Sr3u(*N0x7kv&|iu$FkdOcuDoAdoo9FBL{^k~$+lZ)fU8|(Z&RaRiV zDypu&%C0DZ?DWTO<6ah+XRHlw^x(nbd&ldI^Kuk7jjq>7$GrHDrz@AdIo-6u>g@B( zwf&B|O8$}M%{{YQZ}Ye~pgiFIu%ALj-9EG#Juk*}n9&CBePJrcCJ&oG@MIeoOV_mX zciT>E-oE~}M2p)ST3?wuxKwg=e~XicdkXyf+;-P>a9EQ5v-+IHZHmm+8$6pZ-d=fw z?B<$D?KdRuO07R;&F*dOO>PcemBCifRi$tU69xr@1?YxJP-Kj+$tCd81;{`g4505kmEE(w& zVQf3f>WrHC*3qYXjQr`+RLz;k`aNqJ=yQF2%QH>fOg*LHO;394e&UhcY*0}LogJFJ zUZyvF@ZjF${Kr=^ni$z_`}pX%Z=<%`WUaRiXnd}1!Ek|UkKW@y?z{GSMex8Y^$QaU z^1NEtKim1kj{J;$e;jc%T(xcTZyQ>_N=#^$lxDj3V6KV9sLzj+oiEPs?bRi3%$&`M zyZqAn#_&FD_*uNPN1`ErOMiz;+thO6RfbKv9zVCGTid6is9z2)ZgcYb;D@W9mgzP3 z-(2VR6ZLfE+%xNzA8EGe?cDvPmxsKXX4HO|DC*5k)L-R&CtL}{#cH-GLzt&;f z^t0Pn)gN#retDD0KMlWnbENOwEVsVD42-Vd|4f5-*Fx2PEiXBItz?#$OV{O%Uwv$E z-)=?w#~pxn7wTAa0^6N!VDn`CrUK@*<+LG(b>^sS{$#s)jmK2AoI8T_bB&z4!p<(G zK`CeN9=tfTcWjTS;to1HEq#uCO0#ldEFV1ZIcqpFa>4m`Cc=4=n;R|``Q6&gGtg*0 zG{&O;Xz$=z;r4pgMJr6hZ4Aw#dp?Yg>{73;XZO6lx0i-l9UL-fz3Are$1EqEdF7zd zWT4LA+0cv*AKdiCOm}b#%6jONsnVyU*s3{MP$a%74)|{k88Ow(f7$ z*1vd|nB2Z!8{0ky|LCyql)c-_r3X$qZ++}xtJ78^Q{>z-S?$sRk@JYpU4H4&$$RPB zxzh$seC}p&Wauj1&qiaLrk}WaenYeI8_L2ld{C-*#{M${oL+D4oc{h!tHRe|dc%VTwyJwy_E~k@yS;Ze^TfgrWzT$eY>$7W zByD$PLUN?@IKjwHee(vnI`E}t`%=dq8rAjL`)x71PY&fXaeaJ)PcNBu)pwukxFkK*$Yo|Ni|efqy0NuLS;;z`qjsR|5Y^;9m*+D}jF{@V_L1 zucP$M`HKYl+(5q$$2`nP^q|MCF~$n;)TAGe@fj`7>}MY`5HNmZ35rsdjp0ApC#A42 zl-s9g2NzeH1he8-hPncwQ8~jiiV_O5`9cd}79%tl3N?gzJfToUEVLBL@VjASaFIZ$ zqM|Rf!|NgjTCqYa;H>3y)Cy z{XxaN2%e0e!^^=2zA}Culf)|oN_hF$=oiWhauzX=Twx@G^KM5F-h3HLLj2V(*m8LcWpdjE*prz8A1UmbQ$pgAAoT_E z*w<_?iTC4Tk5!6>zY>6Al*0Qed@81=nAoHLmQx6Z>RHX@ltguwN&Ht-e_f?{OoWP5 z#)JrY>|G}MK#-!fM2Cg8Tdtr*(^{cTL))Q(=8;#%sN|v2L!ZNx@)CJ?%BRi(3NE7f z74H>B@Qpe@xhmtV36prRDOafGU)?5fp$Utz8L8quLgMraqAFU&prpcAh3U8Ub1H|B zSrLN5E>cv*D{8%S7!?Yl#*~!_D-u|}05E8Qf*m5cph!b@iRIm@5JIDeDuT;lWMrxk z7X}x?IC_*-j(rqjUqT+sNd9Q6L-|5V0!90KvZII`2s!Cy|D~fuLGqunH%ItqvusL> zFjbxn)uk*?M1w7%M1+`All>(TNpL~}`EyE*nAAz^Yulc3qlw_}sR z2l$D>Yzj1o`FtMxh%XToG0+t8qk`p{rwR=$yx_AXd=;iWTaJfM{GtVHxS+g_G*VDJ zkzFg07)zrCu|d)pL1?fvUH~t)3rY_MYw#G^c}BXO3=Rk+D}(c87F4MHdpDLko!q!Jfc501)WBGmXyTq|j)Fmw_dF4W?&n}o&Z zgJLyg8YP->+HsmPr3`h6QHe;VAyJZP$gnduWHcKmEHz=b3sa1w2ZV@vhA`q-kW3K4 zmkCQm$^1A`oKgnA06*1C;HB}%Or}Kd3WRZdi6~A)CK3Ds&VJk%U4c@BT83JQb}~O% zq=Y_4m=GEqeHI(p$-89Axh!E?STJQ>@nRmEEzI8=%w874JXe^hZ2{wg+l(|<7+ob!=L z9+MUt%!Z2KXt^l+2}4m07Zo+KB29!StBx7sTwYfiAu5RsX4jIv7*UZ0{7$IL#?oV) zNb;GoPqv*WjT6CDf+*R)E@nbGli2O_yjK*rU6G9fM)o*}O%bJK@ubH@vXme;gDjj9 zg|#ymc82UkrH&;Kgp41hR)V4ooicI-oTw7VF9MgUD9j5r6`Y_X;b+46XdeAsv@RVGo0-bmfTRhSXfRcue#JHkT5fC(2`k zHTX>QXtqdHh$NLzV#-9xmxIhndLKlwrRg_kTNahzpK;LET1N z1Wd^xo-|UaAV|7a331+}gtrMwsex9=vGNh@b|s|jfKrw_m7Xh%^Z>n2Q3`dzasWzU zYiSA@q$w3`4<_$WF)i41rO>9*403o%DP=kwh7D&k$y&COY$BEUG_;M`O38fbHL{eW zBs&?T0nJ^d>_s?^g~@IwEl{#Vv!)c55>%*7Ia{DY`JRf#tB4;WFAJqwWS*i-`JFAI z+>Vl)B*_04D=G3hm0yv|*@8k$akBXddX&Qm?U9mXf3Q%@W6PDYR|HcblWAvYW@sgA z#py{jN>np+Wx6sAs@^gq0h9SUh+U$b_l#k~lrzL^gffy7sT{jIm@*XlDCN>EoCGo; z&=}>?LqTkUGDcO~mGjFn?@2*J4vCIr_bMas!^)ZGs0S!$C_P5c>B{8;HI$fAE9nL0 zw0>;1a*3_5yo?nzT$=;>VUN zBSD{()6NCeo*+Jxsw7>a5_cqs4OM|RVJhXu@Fw*W!$znSwUTa9K_d~TBKs5+!p|4V z&Y{iaF`@T^*m$zNT_wScO7t$3=~S`vQPWdY@SLh5J3(z73WQ4P0-=B@$Yi9aRN`FN zvnqu@u`;rgr;>Ih$O5j?GI-KF^6jol+)mUR9$TQ26EE)u@2ixf<$+0&N}3yLRJj#f ztdi55EhX#kRC3DX#id+DG903io#9E#>BT3N;@xuR%TpJX+RBt)NB6Co%9AFlX7Z%FR3VNe z)v}LY#UW%8A&$MO*%x@y1FGd{yHZqB&-0{*$=hS933m}kCc}hHS52tHo+9@bRC9V3 zi%J9qn0h0m%c>E-G3FGuOf@YyUkygrRAY;RsL2*FGDB&;YDs^#NVU|QeX5!@o&BI% zXdo?Dg|$zrA@AfOEMLZxexmSLwak}6Ih!AAkitjJ zJc&ZB2EVqem7ay%nDW$MHbX7KfXyV+vuY72j7X_k$uttCOfAhg4LvIyj%BZrjU2TQ z0olk^EBT4q)_k>6w+Q_js~yUOT3Tih){dCsrwsd4P2$3SP)k9wCF*%@EUON$mZ%r^ zD#j=UzoeFil0lfd3=KCl;p*815C(K>)r(StDMqpCDH`S|8xdQB*(9=@tX|wgL%>L) zdD3L{(houG0rmV6hCNL0Qq}WEL6%IKBb%vS=Er7$g zs26*d(-aZ6O@37)kGShA!DS`8cE2X7<#iwqo@tCr))7#8m|!+ zEZt6qi5e+egGp2oH_?#O7$H?7>PisB25(Pkly{M5jfNyOIEs%kQl3VL=YM^4cS|Gd zLlAPH7$ezyio;!vLXib(T&kY*t_J$j`xJvFZpsnEB{$gDfND8>@l)>N~^G0U2JR*ZO3M6m1weATB(N83tAykjE%KY zAupL$HuO2<_?A}ESd{UIO_1|sG&h3ag)c8QTRf!-%-hfYN<7M=@YcWEbK9F;_-Y1+{vkx>~< zr0LpaC|X(Cp-&j;1#O7nvbN-EkbF>mOS@#Yyq(V1F8N5!6%*Y`TA*DRBrPOA9%*OH z5~2naX&0RMhiU+Z6Q6_FrxdMHZOH>1%c8_&H<6ZUXTJ|(KWOJKg;cbYhqDrK=uu3+ z#j(htP%&&T7Zk1Df2pPA zg!ndzLr!B7i^#@_la1x$4w{!x?Bm7d`9Z~)@xAhdIiJL%HI-87Lmf zw;8rb9C9^?Efyp8rQ+ndHBT%M#0PQt`e1}vlFzW8C`^e?1bQSiGAb;qgXa*PPy<9E zTTdFIL;0Z-VNXqId1vWzogyzbTqmrKG=eNf>J&RrE$SkT)Cu8BqjV&w=$pt*oKE2_ z`K$!C5_F=5Ah^7hXspOpvQE*tAS!%^b&9?Jv4Qw8ozhc^EK1Xfs!JJy;*_ovWyTdJ zL^4w+Y6~~>$0$Q5s~fc@7;v-MlmwYhSXa~_COaL?piUWTe?GyOO<2H&>PD?c4bzR<7|cfNrZ}?+x=41CZt`Lt^(AF>*}b|*P^xai zC#rN=J20KrMUl+VE&V+xLle_lMH|UuLK;X<=^~X`x={yfuQ(TULvGLzwxl_GSvM|} zC(YGGw&dv+FTvnI-r^z(cXd-@geSdAkt)y)VZY>5p>C8I`4Ul2TBsX=vDG7r zWsz#G2GR0G*y3PzIhlp&CE4Z4jne9|;ban_m(@f*Nkx6o zOHqfU%6CAZdWckvUXC7>1=I(<99JNC6+f&*KshXV3WFF6itxsYviW9d5ztxT^Z4x>)!KImZ( z0hZ{e^dn~VqqGr^Oq3l~AMps$FLaTQNtWv;Vrq^tVmTv?(1*<^{n%gRYf6|iMv>KM z{m^MtM9{Nr(vLm!UtY<>pk@jiPvIo#Cpsv~Rgo>bmrPRhWs8FqK zN|{M8XHV%TAYb*1R|d0Z^)u_RS^6bc8TOjK1aj9eHJ0X+i@W;8Bau?35Ywk(eIfgT z5?P|3T%SgiMaJxFeH4arecAngsK>9535kBfv7m|-s0^(LUa|&&wjvIQ(2d}gs73Iw z?7~ad!G~IcdIV3Rif16hP`)}TF-Y1FjJ#%9158EaOB_hYa)XEwG<**?Nbbm0w+MrB zLnJrTTpDRGUm9fqThRt_#nf1pt-+#`0j$Rvlt{Q`LCh}=Vjs)Lmw1tAAi0GVG_-3c z&@YkIBm;E&grpA^U6qraq7@z>KhNTDpp#lJrEHMmy6GR1Bz~sGW*yV;P zdeTV4!P2#cNbe@Yq_tE7lZqH=f+5zFwi~7$`inIs__@olxKOd!nPiw_S#}Al%kXTk zVX2#ZZhXKnHh>zQRrvNop&T~M`M^-~nQE9RUo$R77m!MCju{s0luy{x4NK}{g3Uy< zm!=!ayx3EQ2j@}}7}ef2>?*x8y@XOa^t>M}{SL8MfF^b|;7}HB35(;V;FBHOjw2 zvxJZ^2+t@%iw!kO#@8UDuLW%`b$kZq&3{y<# z9vPKlIT>!B8fDrM7aOHo(~B2I#fPXzWePg7uZ^O$*is`D`!b`%?0=}(BkXdcsCnhI z{`Scz`H?)&krqsALyeJ^NaKP?H13N2Sc!>RfqB2Nr8L?YGX*xzIHxYV%a|6TQjF6u zh(Bfw|1KCuKcbb~9Aw1>W3+{rjZ2RQrScLmbKonC#TBarXnIWw)a&BR`=ZwDUX#@8LF{3Z@=d6~ zCdj>GCLw!**>sbn1PpRa;xG%&GKmeAW}Co+T$4B#%KAK$5L9d)6N?xX(2M&fp(il< zN4^)DBuxKj#y%LdW4Yy#iR45uTSS4rHpvvB*p;0^)i%M>-zPF;O_Pdg#9JE4lZKe) zBgaEcVZ7Wl?~HtjILtIDPClQAFfE=%X^A#Xyvk?@nYcHMbdza@HydYKvMZQPFwMsJ zZo4URHPKXd^uIhdK_2Wi&77=Q0!P;9O>6U4|J;tbsF`iE&|oH!%)g_9ZsrG5*BLINO#O z8{%gZWAny*Vr=%15M%E~2(dQ9gc8SNagZ37Rz(owF!(59Rh<1zjEx|%#5fE;ju;ov zBoNodS8HM%TAxI0D`Jv~aS1~Tu{q9ACT@vyzKNSMOa^f)oS96F!|1c*=0YZ$7#9V| zh^=u(GI0xr$s=x#NgnYi4DIFSSn42djPvV>aWP0SF%AMQAvVIf-Nar3ri>Vuwv-ba zB0F)2v7s7H3m`VY`Sirbxc7#*jffEwiTCoE>BP8HV>U4kET2!DAY>%O z*z6NR+yMDc+=yYqh|Q4y#Pfwr6mdr(6HTlsWMYYN;ZPhg4t7o;o`e-jVr|Uqi7f?8 zGBGY4N+HIf*Qvy#JHd(n-~|;$cS;VOb&4*zM&D1Mg9|? z5#kpvU>t^BNQ{diiimOBSuwFK!;}!WL;e$Y#GM7ib~p!{xDE2Z5x5if(Gce#|A}!q zg9dSD>|-MCfU~fPX9*Z%VjKovm$(!1pSV5ppBNY1SPZ(ui@XQU-Bb zA(KfwLC9ngk3jwtHxM#1;zdFxhj;+;pV$%kPkc|r6cG2oomj*@QU8fY;rATGKO_H% zae+rE@ffTJ62CzH6FVXQ&B2bS|HR#p|HKZc|HNI9|HSslf8y>8V@!<8KI#$|@)?&d`iN}i=D`H$mV@Di^{3pg`0iB6Y2^o9hNIv68jEiM@5j&&(C+>yz zpBR_m3?`N!|A|}inNh^JSY#~m93C^C7#ART6E74nzQhtG#-F%1+JE9cX#a_E2>pEG zzG(l6-=O{zPs2BJVjSikMm$=`L=bDE{u7&F*_}8_iHRkiC1T>_??qUe#xoAVPb6-K z_MaGs+9wnDL;WYdfcz(3h@WQ>;{vk`Vq7?oN&FJ|Ph5ufpI8&^KXHbL$sxvNKY7Hs z$R(e+E`9<=j0?mHi5b*?;zax$mbe9$TZwTwN-1%O5>rMzM#z*C>!3qy4EEwPLSh_@ zuR@HA05pjE3K%i580|l?sfaNqK8yNKj05w{h;gvLIq@P9V?n%Lz*rKW<}p^pxM0JM z7?&osC&q;dor(K1j6HEDA>&9qTEO%oZp35y61yP(iE%l_U}BtZGmO|vi5W%gA!5c7 zt0^(#iE*ixH}OE6Z%;e`=i3vzBL9i^3Ygi%xI|$-aU;}!;%uxs5~rj76TcNOVZ^wc zCW3e<>OV0qOo}GP1yQlYzhiNNc!!WlAdW--Pke`Al8C1w|A~(YnG|ANmXu12L;ur= zabZjb@kadGgxDVaKQS&z$|lA|Au>55|B1(mm^@+})}K#|%LxjIaX~;KF)l>^@>#O6Xqg*aKrXb_JRGGbySA)`;6g7%*{ z3HeWq3tY^IF9{iQVqCalLEMeUSQ1|lFjmBV0>+N`I{JU&);y*&@lE7E@j2u_aRK^& zVso_r#C6dB6PIKBN8AVfKk=_TW)$&AjQ@y7VEjiMfcz&uiuzAH6!}k#OAn?Kk4F6` z9)F0@(Rx|H zOKQC=R_%(4@lqSSZWJ_#m{2c`R@)6)45IC7y##3cJ@Gn8Hp%aKXLdJl0^0xo_v7;! zo+mr!Hs|u5_kGWqGtmDCu{!?&AwE=;Ap9HTKjCzT=raF?{zur6B_yGiCB7oW2k{I- ze84J6cm>8kWZgu3D8fN#L;Dlr0}Z)^t8BteI71N=2>nixPq+s1pAa8&QVAcoi>ZXi zWBe1I0Qpb&u}uUB@d3TLgx4yf%={hlpRgM8pD+vUPk27spYRjASVlO(DXIxC!Te8{ zbchyc^~qh@D-c5fN(R~pKuZMKSB-ipKxN9xPtH%ho~p4c8Y5V@j#wg!t&%ql6)}KjBX?{t3^;cU1^~ zmnF6mmO=j`#0LUjB0Lr2pAa8CdzCN*`A>)sK)yxz2sWw`R-yd~FT(gIRI|hfg!mXx zg78|q_=NCyo9H53jqy*2k046Ia)dg>gt`r@ zE5Nx<;U>HQ^FQH*nEwgG82^NGF#i*Nh4D{_57zhz=b`-xe+T(b_y@E<;e3ZEBRmh^ z@*~8DhRO+7;ah!#=i^&xg!u5`GQx)yQB8=C?ERQ5KVdD#KjB5t{|S%5_$OTH6cIvvIOZdLFj*k3!(oJzJl>j zSf3@{A{3DSgb&-ryM!lU{wI75?N9iq5DCIZF#ZYmVg4ul7UQ3=2=brs7ifRN$Dscc zZif6PJQwo61o#K&e}un>{zsS#`A>+C>bMEFp#2H)vCMqJM-|~Agbt|^zKZrIyxcDQ zgnx(pC&Whs1B91B|0l!;;>rkPXn(?IApZ&Rajr_j*%<$Xx1jwADPzcKy^k3;(t zu7&+icqZn5!iUlRg!q`DPWV&U|AePO|0f)$h${&3vCMkH2O$3m???L+K89DA2rohV z6V}20BgDrxBZM2URz+Bk`JeCv=zoOxh-o9?RE&SZrD%V`TC_i57sfwf7W99@DyL{6 zOhEr9dYM#kFfvE`&dFJ zoaGe%BE*MmCE>p?{}WEe_$Ry_?N4|)^#7Sa)gc^&?_&HD-jDH5_;0j7;m^?ig!3W) z34iPq9>Nps9pqnEwf%hW$@?CG0=Kr_la{P5Ay1AwC>7pYT$&Kj9jTf5O!m z|AcnPe?kHIPxu7pf5OM1{}Dck_9wj2Awq<@U0h%y#y{aBu>T0%u>T2vh4v?00Qpb& z3C2HR589v5p!6aEkOYY_et?N9g+?0>=sG5!hnL;e#^bmC)yz?)$I6XF9; zF2dtr{}bXPjBdh*(f)+Lg#0J`75qPhzkvNucm>Qz!aFdX5N<^K6JCS%C;U0upKt@( zpKv|KKjGbIf5N-a{)G3T{Rub0{v*5^`aj`SXn(@rq5TQ(LHiS42mO!mTIhd-_u{*O zgi+}Kgf~I|BW!^FPdFXppYTSEf5P9O{Rw{!`A=Aa_9wg<~l6E;Ks6P9Dul@K2XGYH?o znsJ40Q--y3-doA zKEgbUP&!0_u)rzin!jWIC#;43PdG*q<%GvU{u6FcM3C?Tr&vZm5bjk(i0~-re}wpOn@;!+^nbz^;r}H}!2d^hjZ@SUzKQWq_zCPk!keN05msPF z0pYi>{|NDs$p|5I<+})vhyG8957FLF_?cZa60U;(hY%mBZ6f>#_CMhs*nfnN;5-z< zZrFc>wUGaWE3!lz;jx(i3ExHg6Y7}%2|p4dPIw>MpRg9~Pq+*EKcOG~AHr?${}EmU z`A@hN^FQHE*#CqJu|@1S;9m3Jmf#&Wr~?5g;L@PFa|BRm!JKjE+7|0nFi_$OS3_9rYv`x9OY`9B-@ zXS;9^&V~Pna5ct1;eObEgfr3pg!jV#Pxxz_@DNrwg-ZAw{C|W;LjNOd!1yP0!~aJ( z5B@*GH{kyv+yVa&AwEi8PB_{wDhYoK{g2S@5X%TJf&Z8AIz{}L@C4ZZgg?UgCp;SZ zAE6)qKSF$zS0`K!{h#oUkpF})LH-lALH{TG5Bxub&qDqaz6kkGxD)yx;YR5HggfB> zCww0ApKuq}e+X~K_$S;B`A^t`_9r|M?N9h0`2PvdLHiT-LjNb+hWVdxE9QT~=P>^h zwm|RV1K>sH^6XT!o&+z{e;{BxwgttNd6E1@NPk1uq zKVdQCKjEvG{|SXn%p#l&`;TxG{C|Y_FnAf^R-2elI1Tn6A$*aQghxRB6NcdbA>4rW zC%h8lpRfz1F-)HKSBEwmZ1F!{aF7aEQJ0?=z;!6h~b+cgc&I&EOP{8BKI3l2U5pFHjh>;nlJPFa6O4B<9%sCr@ixX=7>_aD#CRj)QN|;T zH!vP%yq@to#&yO+jMp$;&3KUUa>mOT4>0a$TxC3;aW~^G#s%Ys!Rnv!F2)m#cQPJl zyq)nj##*HFFz#nuWjvp8H{&kG1>?roto|AAVm!fk zC*yI(+Zk_TyoK=?<4ue=G9G0-!gvGYVaDqjuVY+iJj8en_aD#CRj)QN|;TH!vP%yq@to#&yO+ zjMp$;&3KUUa>mOT4>0a$TxC3;aW~^G#s%ZXm#qF7?_xZ`cqij=#@iWhW4wj&7~@Th zH!>b&Ji>Sb<6*|@8LwkpXFSAs4dc~}2N^GCyo~Vx<9^0f#`76>GwxzsFm8Oo>Ywp0 z#uJQpG9G8Vo$)rtTNsZq-o$t#<59*Vj5jbIX1t#9I>vRzLyXrjUd?!r@p8t?7!NS+ zXIy1GpK&+iF2)7pMmMW}#=96#Fy6^{obh(X+ZbQHb&TtbhZwJ6yqfVKK(F&<#t&$!BXKI3l2U5twqFNN)F z3|jS1Tr%Fpc!Kdx#^a2)Gv3B{3*#}yn;36oJj!^4@dn1jjMp<>$GFaTi18Z6s~Hb6 zUe0(K;{nF~jH`_2Gwx>G#kgSH7-03!co*Xd#yc60Gv3a48{;jE#~5#7ypi!J;}OOi z7!NaE&v+f-4n{gN8f^nmt)j#81j3*fHWIWDz zJL7GPw=f=KyovEf#-of!7;j)a%y>QHb&TtbhZwJ6yqfVKK(F&<#t&$!BXKI3l2 zU5pFHjU=mo#=96#Fy6^{obh(X+Zb{k?|MlRcpc+9;~~at7_VkL$ap#9WsCjPWMM8ySx>9$~zJ z@i61{jMp))Gah2RhVg2~gN&CmUdDKUaX;fKb&Ji>Sb<6*|@8LwkpXFSAs4dc~}2N^GCyo~Vx<9^0f#`76> zGwxzsFm9xL(PsTK-o0%)GhWBI&UlFN z8pf*`4>DfPcp2jX#{G<|jOR1%X57WNVBARgqRskeyo>P!-4n{gN8f^j3|i#F?@@h-*_jCV2~XS|*9HpW{Rk1^iFcq8Lc#v_b3Fdk;S zp7A=yb;d)C*Dzkqc#!dO#>*HFFz#nuWjvp8H{&kG1>*+uMN7uJ7*8loJ=4>4ZDcs1ie#>*KmV?4mPpK+D(e8%03yBHTK z9$@}|;xgrzCf>z(g7HqqrH<28&|Gah8TobfWo1C09_R~gS|+|9U)alyEe@&nV!V;@DB}^v8yF8WUe9p_xSMeo4!pYbln6O4B<9%sCr@ixX=h^PL=wvAmjcF8rBS5>N7u~d6= zgJVwhY4w%YR^oL${PN45QA_ZmpmtTIE945+m8|Z|`B^ z9gBDq5w8#NUP3(QVdCvPOuQoy?>`9tFT}e6_!qplFfzY~4ioR&7SZ}T!he8x%YgSB zCf<#QiMJ2&HY2jK0ZS-;)Jq5Yr= z_4Fpf=U$Aq!8=&TA12=44ioQa#CsU=zPg;f-))a<>Y+m-FtP6+wr^1<1eFxw5AN?~HFta}Rw{di_E!|JO(xngkIsdWF^ zN=kjsU~!Q8v7+aNd}gXX=^rdIYl-@{PtF_kYZTrmJ%f`oVJD@+jvqWK^V>x8Hzl^S zOQJ5bP&c=u-t$pEui*W=2Mi^h!@6H1AYZC z2prz#RDUD;y-)u6Wzo7CVRzR-{(TMkmu(jcO68N!zg!3|nnhI|&V*7ld(duVYN$FF->JIiq73ICrBA>Q7v{MZ>!r+X&C z{cb?0W4dSMWJhwI9`#gsc^GBBzS15Msx$KTe#h1O5G(K;&c{!cr37)V9SB0k_~g2Q z(NRVJwcbz_)<#E%%DV*jel#$O{X(Ia4zzTOymI+snA&#DK+e4)z3^xN}rrUzljCf4HZhXTjlBWwMRelhF%uRPD#qCWXizY-OC?!D!c zZ5?B1tlZ&~|LBLj!*#G(T%2J;x?ith5RAt%d7jV>Lya5R7U^qJL%UWx5j4 z(I)%)MHHWmf=;nW%dIWd8mrJRqve@CTZ=F&`b9#SiWtbz-l1wX%5$Ah{vLS=yoddL z=|92JU-lj8`@SRnUm*R)FU<58ZHWCE$cRh*y&j|_~gmRs~mYLRPT2uN0~YAPofkkuhLE$ChxPOi`jo_SIXKr!(`NQ{N;Qxik2FW=w$SND?yM#Hy6QU2 z0^x0Dem*6H89}Y9Lj6~5j)k>zgI?_@jpTUTz=sPV0lX3S(iK>NK;y{Izzp>coX8O>sb`{|IrYZ9eVkyK8~?sjB<(?RmjzuEm9 zzR7D!b>&HGj@j5}d&+0(M|btPA$zI(HrB#6wD84!O0+Ta?8=thgivh}cN5*4bV%sx zzJPvcKIdfe38nH$_KnQv2j7#=r-y|0^mXEy6n%Lu^o@;`-&C$}KV^UVwQm-!ovHmm zYr%M?8tCXFz2h%^X3e7QNhTFiKfM|4(I;A?{|nnE)mFdJH&mzF?G3b>@GYd)GUw*p zfKNWx=Y$<~Rb`H@bYEi2E&Vw3>VDy-Ia;*#;>;KY?Ha>8J^}qG-gQTwTPk@u@uN)X zKSeX;e;?h8?Hq&uee$<`!vDYV(WhFv(OrEx!BI;|dm{_WC-3jgHbX`FKKxv?o;V2I z2A2!hoyhBh0h{;&*SeqB#AN(Nx?rA`rMWfX^Jo+C%-8f)ep3~C?VIYln=3|j`1M`T z?;5HUO~t+0ePY@L+w&47x-&XQo1%3X3H>Wkm8E%_Rir}o@slKJGZW~|YBR4?_{vc4?ynJ($|Yq6a|r7?INi*tn;=SVY7PAbmyJ{5X@40_{= z7b*Nj6dsz18X~#-hVHArP+#2a$J6Xbsy_K2^Zze^ZvHLE8-M84tE%Ip# z4aexQy4Fm!@OCdf?QZk`_srN|A$HwPi8F&@+tQlVm?aKa<>~%ZY2+STZa50EQh7gN z#*3N%Z$oUW#PJs&M;cUyy#G>$-VB;Q+d`*r4G-1+l!+05;GmEES35HEwu~G zbZX82e`cokn@nmKy;z8}Ak&urCbmwyHdv%h&@PipoTgN3B-t}6viOU|<*$8nTHU&e zQ$E0Gt;R?NKPO)KO*MEWc)8piruMzKSBVg=>CM)%njEm9ee%-Y+Msf*Wof%czimv2 z;dF_op`E$1o}#c9_SQ9{#=&%yjr7S&%#yC{b#*JQmc{?tM-sqZoAsn}ZxHrHw91KI zL+Ma{l)@#wcP18pak_Zzn;)Sp_##Yr@fTXE#O3nFFvVY}2hA~5hVXawT$P}BZZq~6 z^Z!xi|9QPxnR1WoogY+=NtN4${K7}>6Ehr7kLjL}L$Pyu^;EfYdxK`V-DbIu>{U*9 zrsCiG>?!Fyt=C~n=aODKlg@TX;HZ(7;79b@%`ip1BPHuihCQl7f{&`jSXLrcBh$Fj zaIjPzNcB>K%9`~gmGQkE`u~F-CE=4jJz~1qo~A4fXroD%VsvjaMC%`Mj^27)Z_>FH z=$}r=FS0My5XIk$R4lvq1^97x<4g<+lOA(RFy@5Mt$zfWswj%j(tuP*$@ZR*UZ0tL zsD)23LV9`x(ci5-jmUv4C5PsQr0~JM9S2>7#?^et>EczskSH$ENnR`C6-c(thom`X zM4ES-X~uS*b(nI7^t$Gc^l^~x&W@pSsPdh`M(A-qc|D#Ka{|UWAEUX-{D3dC*l_24 zSN!Kv@z3ocne%}`(kA}-ki2j&y}EL7{&;;Soyy1 zd4HHn_jB^Z$O|&*o{V%q`waf1Ky{ZWS|}Bzyi1H1Gr#SqtD^dL!#+OjJ*`~#H`{d5 zyWEwk9NlV#pWsm{gTw9&yo@^t?QU+sO#4g=X=Idgz8TW`^-=Rz>Z3Fd5B1|}l+!2A zFsLu9azFeIqfl1&wh5X`D{fY0Y|s%<=J$5Eccy>Cd~2kCi*573s&Z*RXr{UAYQu3H z-7z|1=)KmRqs=>)nlXCtdw82mbNKGk9_dqjleVuytc#5>=B!JM@HX-<`s8JX-R$kI zQY93IE>ia?%?~%~4(*&~F+HTOpY)Di&>TK$Z*69HmEU4veRRg8^s=-KK3O zru(WL-8kUGcVS4CfA3dRYKuh3(VZ_YS~Y!@Dj$Wv(dsvis~p_{p~63->Wa_u`>Jx~ zpeo-Sq;dLJ)O#J;?frjR^ZH!KFjZbNP+-Payej^BYH(6eOt<8@;LYrRe4^&(xl4E25k8Mt^Pdx|3*K}E|mk0;gN$M*Mr zWa?8@_s7<2Q-eopV=&hewJ-=UB;OKTZEL#v-*9vG|C@*Rh&!jwE4G%=xZbJR_(^Jklv~)MCvK4mol~(y+ z+dH&2y$CW5C2aoCP{XP`cVHEK?ni4F?e(e*54gKk#oi&*MCdYEBrHpw>|YwisGP*575iBO#`V>8S5SKofrWIWK&BzrAT$ z9HSzON?(wqe!FasTI+A7zt2u0f5*{@P_5W8K~?3ik~C&j_;b{Z{0yy1YaXgRdccQR zfdN&1)4vKUGtd}i=>WC*@dKe+D#eNY4zmx>PC5>Ja)lDjPnGUEvzL)PA$!wFt%`b^ zl7tU=i3^@!OZF8YwE!@rYG&zZV#srx5`K{~p{8mxo>bOiQ4hs7TY#h@&e#f5uVt$4Gq2UjU>8?4a z8?I{}tgv^SZa7w6xY!;)di#<3?<;H_XXs}vcEsItl;dx&_}4r8J}1xZ_&7o>D}n{J z5Gg)k_6D`N({Kp-dvt&MesKlmU#cmn#~tusP7q<;g?_j5bJREfcDTW5_rYP$2p<3 zy$!t{;~#QQT_x1eDhj!#?`i!s_&;=bKPa~i=<(UzZg@ZZ`a)R0)>?t9isA%Pf2p#1 zhbk}XtJ`)1X0JliqfVYY@`l^c3#*?C=_F|$ND9BJ)pmb=>r~XU?XIoO;uvvvcHFPm znqFr=<}!SEF{0vc8&*ss@IJx&7p+A(ewno0PrhD~{74HSU+zT?=4|7L)j@hr>>K-c z%XfKmEF1EMZ0s>wHYBj+S9C(6sPZ|}hMln|{{-9Jwk`Dh@ON3W>QzqlXf1DvJ2k8B z>7`lq?fteh;m;3SVXsM28heqm6FJ*DvZ+^YP-SPYDnIKDe`ph@YB=W^m)v%vIg^jo zvdj{Y2iRej;BvDBllEj`maEmoJu3WDH0SQGr8##o&AHPkm&bY$!_396WuYxq`FrGo z^0y9rkWSwnJT(0ZGkrHpzr-x{b*c1}4lA|mklL-in~@gA$)a_TBQCu`8?xS2=}n^l zh*Pm+04Vz2ex{ zI^MzcDQ=CP6fFRO$8ap<#* z&pgYKc$SCv9`0F$`7BwfXSo;8avj1IHw$&4;U2A=*oXXLuvW%sOPk@lo}b^W!%C$7 z=RQu%`WhBTooR`T)qc}lg8QW*Q34AyWQ&tlv8DHK`)!K*xYz0bO|pI z_8yD$DL=9dj)8Po(IxUKJiEI7d8|0v=x7X;;C_*e4Ek};1wD7{zA^fAGfo9;=4t9E z>`GB(c`sHqU`ggA)S$^WQmQxVr0@LEAYHgfK0oN_cEk4hG$f`K$#Vy%szvhM!9QTc z`ivtpx|HH;+i&|t+kVFx%9TE?ZGZL|p;bk)23C}{UZiTYMpYz#H;8eG=UR{Jb@*GJ z$8{a9)A4rz*X7_2AbQL~%e!vXYN*!T?9+sdan6w zD*RV%_{*;?2o=dQ&62A!%k(zLg{q8izkiQSybnLdW?WZ-Q_s8+cFd2VcmGC%rJG~! z;lLaiL~b&*${xjCZ zM4)Xq{nisNyDrvj)GGeb`&8N31A9vTzQ?AO(W;Jg^prQBm6%{Cxuc+Ql&yBP3jgu( zM-Ps+m1$?<{#USamv)%<%SbvdKTz#1yD}Zp9)Co8W%15;j!zi6Qf!Nq)!HKgeFH2f z+m{~cT{8kr}0)K9~~%? z&kpqd&8*+5^{{IeqJ7eey1im5+?P7aIct|Ga5P(UqdQxRX%NyEtZWn zjCqLjzx|{u+vDZtU-AAjJ-k?n7fJiTf)K)sT6mUJ;oAN_v}0JGZUsJx)QaZKMKXWj zVVwIf;6u6x7{Rq0zLz;blB-yWuXRASR_9OMeO_&(!oAn-YwT0T_im3JT#+}iGodec z%|rjW%?LMNyebj$)rv$ycU6|cnuC65sI}#jvUih?Y^~&s7KEz2(I}Fq4A#NQcRQSz z3sgME2Gc?xvxoZism89_C6jXY_zrxucGoJ)&r>8{#AuDfR=&s}|A5={4;0CZ&3L2t z_z|zvP*y9Y*?W}pC{C=rNH!wQ^N6#|pz(VH#?=h?2i(wXNw2g+uPl<9nZg1yXE$12 ztX9hA?NJXT*5ZQ}=Q%&{*OG-(avfPXIk2dT0V~`-$ZIFU&1nvAyHmKdak$qp7~Ywl ze=E%S*A0JPk=&MaU~c(_&Aw-wcZEM-&b&qPC4_Kb#)ZC+nW29)BFy7S3h|XWC*K$w z2l?eOJqMNs?@%A<6Kd0TT0Jh3l>@eWXwQHvphWC|wyE;l6(#kR?X9lLF#3{28{L%r@^nl0|4r;x z?Up5uvC9v*m*AScwfBavud3|8=!9RzJ!<1^MpooD!%=>l;Y{3SWQ(>hvlogIczAr5 z<}5y-I4cjh7ryaqbMLzDQ*)Hr?he}wWy@dA5woA~z3EGYntpc9>_y&ke32s07FSNN zA1mLv@qkl#BReY|m^HWK+}>Yz*Ovr3s=f&*_PnPcPcFgi_ve+j8KVLYnP(?9I?(o| z{YS)d139VR#?Ws+px?#@#-@JDqu-7Y&>H`|(uF(jz-`7jVQUiIqa43X%<$cY)NN1y ztNBrQQ{H&?rzMWg8ME?RSI#Pz;c(SAE0w2=9Ji7e#GbMN>EZ3}51%LmA3HVXap$PRP;X~S(sPWe{z**11; z`5f`@qw@Ztqm}rsyBYb@V)&__WL>p2GD@Tu7(;hL(^7PoetIMn&5eAx|EJ*(_pjVe`sApNyjixr%cUbH3%fy-oa|W* zt;?k?r(>z`UtI}Lfkw|U`p%;Gi@@3VfAHjr59iN%O!Fh${IN81ylwaswvDI7mE*$Q zXRUj4$%p$#s~2HiID+|lt2QPA&rRaA#16!CevqrZWZtK{K3Kh{qZZ2L`RiUl&AT&U zwjCzSighuBp|pQQ5_7q`YK%r{IzD(J6MFoUTb7pleuUZJ>PjKc>B)_b-b6cTW@$4& zdVjI85{@%_cn2$W8Yvv_w@EIi;+TpOXQ zE8{k!0?+yMDv z#zt}y?&zbMJE~MtzOJb7k8jG`IHu$JrQ@5%-bXsj1!n07jJ$iPe0Ico z8MRy;7scc5yDvX1o5Iv`m2vld59W(0&cyqRkNdFV3)P_-wo?KLYLTPjO3Bgtikl0z zS9~$c{Jmg1#<jKe zx6Yno!?V~vRHq>B50w*@(zS~ZyrXC{iWNgSI&ahEiyeE%Y`WPqN_EvKi7}h_it01(-nENedyjr+Y}9>l ztQZ>^{OSkK6v=bo1^kzZ)aaC~j;UPy8HD6xOi?0=D}qcS~CHG8nF z!|apL5;yk19_SIR#@jYgBzt?G!d_W7#-qUXuj6gvpSWJewF}n@{B}FgyBxk#;O~yZ z@3?+77yDvj?rj@lS--tY8>Nk2ay~{=uI|%q8?&~+D?Lv5isanXzBPxrZ_Qn<#OkVw z7opcx{RbSn&?4G7xFGmz$QGKPZRq7{C`X629e3$=eV(b`(vCo7^ECbV<^cRs z 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

z zW-5B8Ch$|lgxk*J=cY?uU6poH0avXcnuU1P0R^r$eoy0y7qsaA_$J~A0_Ro?i2k29YbKhD})Rt z(_^%`Pu``(GsO4BE-XQgt_9vV;tgi%Ey4uroKnaggURQ5?4oxJ2rJOt0@?uxA0V7h zc*w**gGT9`3e6@4yx*(o3+Uz<`OTsv=Fa!9kaDvBr*d9IId+sIp`6-AR@@c%pJs;K z18;#}p_wrTGs6g*lN1X3o45)Z#YwnlAeX(Pv5Vj;fd3nT|HVB6;D3DgZpe?py+1hn z6b&1f2mL-j@c*rtBe>T(e5u4NaOT?}duotaI{aS{AEfbrxB!j+FG1svQ)v7o*LUc_ zAZ2FadLc`^N2T$%2|Q5ZJX+n+q|o^HYhX_|4K`kOH3zAi^XdG9zKhZM3mg8N&X@R4 zV$H~O{(hg4KP7sf@pE*3xlhL47oziHAhRR9EYtbne0<|MI)AP&l+MTc7hKIE?D9sQ zEOdzIY~b&s^RfN~&mzHH(D=zJ6IF3THKIu zFJR<;rM0&UIzO5}6lhK7NAnrr)s2&(`v)C`tXrU;`#tP;L~7ZKF^oOYp0Pt68H-si zu?a}CxE^m(hS2%51#cwN`9@wT<^;{izmLv0@vh*4tvpEQKh*G_==_07eTdFC@?y0< ze;=K1;)g&>1nKp#nZ_~*^220M-dY~t z1XxI#uB(u#Zpr)^_F%HqWWt>sqK0z7WkEiy!M$5)MhJyZRF4!tL!s|M6A678(t$Vn z;=0wu+NfSInT&9mFA$9NGkX!Qg7b=(X{< zz5QVSHr4Su=ER+lM>E{X>A6FGg^nq9Os$^77d_D$>Y>{Obe=_Y1Mzy1%A8}pSjxXD zn2?rG{O_J52Si{%w<;|;Mmp0z!_rBH` zEah|0cWrfY#|3|T*K+`pe#r<;QYW=`kx$;SJ_KbA-E|Fg*QNZBIZt$TzA`%@%@8x5 zq!!`6xF>Uz8Bh0#9@_pQ=Dn<+YT`F5x&G@v9cbtOs{2o4T3GkiwhmPfhpe_=guJ(~ zE>*O5yx5zlz2zZNr+m4+s^;T`q)xyjGM?QW81? z+oIHQG~sX+l&d{7D}Uit|+N%`-}AA|BI0@qMkuQi`MS${3$JJ3rQa6R;l;dWhz zeE|Nv8qof&YIdtqvrJL555$}!iIu3Cm4@_fh-tLE%gNNh+3MK2BXRPJ%%bquca zhbdBYwo-z`h6#y{w2VSQi4Em4#Gi3Fw0!)NAsQylv}uelb5u~WSdME*7kW?$ZVju z5n_|6);p+au_{0R*ZtN|Vfp3mHhUJI4l{Ppu0>ggxILC&t2 zj#rnk$2JE0n=r6^I%C1@{1|>O)|};{8Zdud3L|U4Jh81uRhnpJ5ZgQ?IH)f{T^Mj@ zn)W7bD+xqWn>Jnu*Ial-Q|&uJ0x{i2>-mAk)m4{@S-!h5n%DT+i|;q_eFAUt-8mNb zA8_`KQ)srQ1-8hvuvw;u%`zC>I`Fu}-fGsc0=Tu5?i$!7IVG_-#y}QPC9(IM68k3{ z*7@*-rDez$Z4;EK&b0e5I6{tLny{+w^kj&;|tqy!8P&eLJL&t2E<{lD&;o>JlGOi)5$Qiub;So!R{9z5 zAtg7;XH_G+{D|kT)nc~-_a4sq&#jBeiYESKu`b>d(i~bBE97+{b^+z2|GZs*)(6o8 z7r)y;bEX-*Eo^DJZYNBbAFt_VIx&p+d?tp z7r?Sb1ZaIRAN<7AIc=>i(|=SpdkjmOdy%;f4IOoEpYhJYEO{Gqo7Tp(fKgc`lbdMO zynw%Fy(5}}v-aK!dCuMvGM@$s?Zy((-z&u$Z9AJLT%^bU+HCq3{C#jXr8Wd5W3yY$ zrajPI`QK;LwU|xonp@AN4+T#l&nB|P62z{-*>o{_DU@=)_-t~3@0VxO2flR*wG`FR zjt^~-sUhkrJ!ztb16dA zrf5BvUI701d*;%trqH=$fNnm`A9*f?iJJheG1LDxm$D!Qpt)q=YXb6IGC&sFj$hhL zbIHIf@oj1zYJG7iRUwY_fQ^C@akE)6dz)b{^7EXb2gUEwQtK3 zk`27G-OIyz>TO}gi?Y@p`d200-hsr!q0gq6=MPm>Ivk6#+Er|F9IZACNVOG@+~`2h zn5YL*vyIv2(~_R`q_ly$!tJ{%nfor}K=QX~pq(Qev5v*iWQDygXhUgj`em%r>`3l{ z_cZY$J!#(>D#A~XH<%n@HJ$#kFpD30ymELOO?eR|Uq|wlFjeQSVwsW$d z>)hKB))+a^0JjQna=s^h<+#}w)q{RTD4guqn0h?11NF;W*#)#_MB-_^-d_Lmz-3)O ztM8ZiQlmEUh;NXY)jVg?*RWL9dqLa-;dJoTQQ%RQIW$?}6reV4%7j zRO>?ZpmGeT3-!Vflt=xlUm5I=0CZ8=+F<{FwJoCZ5MFfo;8ax%>)%lE<4GF*%H+3wGVuH^{49}V9OHv#Vb;hFD%a>+UeRL(Ux7 z%huIKv3C4JKWU+~!z1-y^?0Sj7Ds?e2| zqO9@Yn_ss=NAx`n+Y|@{{)w_o&=m}Lzi*5n&a}W@2F@d%B`~+aZX8vRJsUa2HBo8w zu8_$J8|}NR>0m4pX7b>@wN*~q8FkKxA%kv}0%J(bIHfha_5e61B!nWai3`&i>42%G10c-J`iL zDs@Qq#5lZHF|!^2)j#%Z!DD0VUUGa@A9zfpc8Av(@qkvkp6t4R=)V!8cnMZZxMMut zG+rFX8l^{5Z8G$ieq*h}*rhf-;#h@LtXYeb*g*@j_8elc3CW7v;XHtM#S0_sGhfF% zt+1ik4ei|d8)z{&Q>Ogx7sI<>XU}L@l6j_hPhmdZCylaEAM}i8<_We>kwaF4E5ekA zd*YDcJsXiM`awcJJnT=hZvdZ3cKS1pklwKdeF9B$ykHZR+Kx~4lNBBcyYfHvnM~3> zpMocr&NP4a~? zr601>QMWjZWUk-wkMzMmqYv8gY`@%6wzuOx*mXp^oN&D{S1`VrI@=|-7`1H)HuLRr z%V=Iu%etTicnM7Oy}{r6^4^C#Q4C&-j6Wj3G75T;9WHakhc!wD!yl`l_1=!3ZTQY- z3X9J9u;xRJ7%ATXlYMwz-giEq?mHj5WPh~*`r_?)eFKf@?+x@q6yB8D3*PTn=)S^D z%Lwi>8$@~7>m5dS3}5J9n*-@dl zEVRt?fB*BCApC6P^yjJ1Pf;)#FTkM}3hU=?uR3n1k&M3K#u}!xq1P;BDVDw-X)wvH z8XzBEUt=cRAbf6kp!%^4c(HyixJ?52`+Lrr-Q}DQR`f@%Mgb=Qj`3s8zKBV{dWsVE zVsG>qQj8Tzh%+En6h8y`8sipMPc_vE5%ZF>U5b_e=`b|U2w#9N_hh4nymq?sj{ z^FR-6iiUhTUfeagp~$deLyb|&!K+E*iZZ*!Cp-D@q8MPBD~_?fi?7C=u6ObFcz@8? zk4mf;+#Cu&AhD|+#u*9DX}`T+V*B9A;kLuAfqQ1Ch8;z3Qn@D{p zQfrW!-n7I!(rW7W?C&Y5b9{1n@7ni@msTIa( zSkxJ}>RiEE;{@C#4aY4>R{?S}PLXr_x@6=}%-ppyqE;8tzVbozAgz)pzCzS^tLUw; zgnRAxijv+u0cmLjQA;zBhqh8O>(=DsE8JmJYPYqd$4}GH%1DvRBO;eBF4oJCqOX{O zczGSar(8t;wo53!z4|%_SRLGy$;js(*l5D{ z1pNLP(k{mL82IgR_TCBp_c)I~K2u`frelx8cNFa5hOP|IC(ZGWC(45}HL8NJ&_3=L zqthFV_oq%`c9-6W35)RrADltpEmTgj7W~vxlACZvRZGU~yfTeiPXoYBDM8YffSCsZ7ixx&C ztg)|EV$6HCtE=g3lWq;O@Vcn9FSM3aa5u8=Jt&di2 zP}6*gG&YfoK4Gm|Qq68T-$(5QO1?ksz8|Y{;7OMXS=Lm#gHlB%%(Kr^Qhl|%5WNzn z^wjz$`;NIG;o>H%fY2q(w$D)@-r7A|)GoME-rQoTlwV6OK6w*L^q-h+hlSc$?6Z}3 zh|zfp+LY9uu*#e9`{@%?#hO`=w;m@X^169$i@s7yhL!kYR;e%6L)SVIZ$R$G4Vc2Z znOmlbTv&mlY%0E@`5(>JGRj%ce+Y<-PgCWDf z+CGT2nGJs({GNz=3G4DO!f(Kjf!l}gdi-_}{^fA=mdcCpHzSWfu+F0Z(;eaKkmerv zAK^^(8^pf_|6#;!gzxSKeh>N-zaX3d_bA*c#9s@45p*m1!`C678vy?lzCZehhLuQ+ zJ%D^}MYpXYzIQ; z;x?OON4jGeWJ?c1=Yq8GQ=tPKjW;>y?lakBJg1#AEksj+ZeQcg2?-YRh5mi;Z4AjA z0iA+eMW;Z56)+ZAgpym!m>2DshZ|-E*+n)w5n0emrgC+8_sVfL+Vj8(;#J5qp0L^| z*k6g_-!*>YbI-i1j9y^x16yk!1Q2FJ95G$u_Qu#)|FbyHi{jrmN`v0WI$A*^&Jvov z#m%B8zzZkI66j~8o`cZFc6=|aTlmT@-oCbNqc=9tx>3|R(k6zbKK`mdCwPK@+wywo z7E`}{4T-j%r{QH0lKGOZQ1JfvFdC1L)B6kEA1CbrDl4e#Ex+qQHKzLjcASn-NuM-t zs8VHwqU@(d*@bnzaXN!_Ek;n55~B2;WOu5ylyJXl;h1VcXEQXa7cad(tQ5*+FKPb$ zWDHuO=ZBi3xVDkr7t!-C@ZAhKL%{%?$qxkI40ke3!@7MAc>&^9!oPF}Y?~beEqtfM zYT-11G+~Wb?_zuXr5ZKdfbeM%CTvD29Pb=PcqU{PI$H-S4=2`ivoV@)X-qGZddk+! zFIB9Z-vdiC7X0=qB*)2^6*<^%QkO5zQ194f5>x?=Cxh)ch4>=;}SdF zr9W53tVTz9Fwfaao;{R2XE$b-(W{Q(u=h(kcaU)uq{Buj-LRA@$mTlsJG_l{ANnR0 zWnGVT+b0!zc-1U%=1Aw8niZq#S;`0XD~G<+7}f8IIJ_H^r)`WnHa;^m&-soAcIsx1 ztf*$~k-j~pN6aq>cVOnSnrO{~HBlOz?3Dujaas6Xh788t z*yVOL&P2I&+t8@_S!&c~Mm1_;k@lGB9eS^lN^Zx$ZrBgs^o}Su3V9?>0Z)FQ!TAn< zb3Vr6lHhrcL*v$)zpiF?Me&1;M*)LYC8AXWKkc-yQQLlTSLDD%cS_&nc4(xW%~kp zn@O86+`)R2%r2hpis~&G%a34#QA&*!8XMcQF0Ht4M-S|dSK>}RM#-IBpE>Tsvo~OF zJ?0-~BP`JYBNh)%wj;@YTF(qqOP5i6mr~-FKIS-OvnFJsP3@aHgL! zo{d?ZJv3gUQOln&UU{fxaJ*h=435{oeZldPw8}5Ipb-O{W+tY38HnCORW(E>aw}P#}AE?_e_;$XjONip1 zgSrMrGdtfQd0kOyk82XJ^I_jLLenXa?BbE;ljQD-FKVw2E5ht)SF0tBh6E|G9oOP) zlIWq=eC+ZLN7wkY%*rK}mQFTG$DST%N}U-|G1FnKb6RKOrafUby~kL&2sDNq(g4TN zdWq!S1D-87XY7MML>=kvT9RY40`razW6XGE9VeSoz?;(?OR=@7s6oJ+)f`r96<=33 zvtER)1K#xJxPQF)$G+RV6~UPPa?Dt7Md>>eP{ug8H{hrYkz2v3GLurqB$Uw!xtc_- z?VBT&_&CHzBHk|I_0Z)=#@q9y)_|A2Q~D0uduB6eF}Q5x%inYXwUgSY_ z`?V>U!zp~liM)2jm#E z(V(<{AM%s?WH)lKAO~Uf1NGanM*^N)j=C|_Z6^GS*KfUAzg24eUT9UnXVv;GQR}zx zy!y>KuYM1z^}DxC{iccf)os$SJk-qtpX!GbOW2dY9ylN(9yZ`H^BmB+9PP{Z>wWH~s7H1}DnruO%x%GLaN7HP1NHFTchFz6&Ffv`*V}?M zEJF+85m(Z@S7`srqvG}U*n@K`38$9#OQ*-N^?x|WZO8A5O&9BF?`yjVBgWf~dVBgJ z`AngYPoc{YnvOdhCoPa;Cu`Uz@Dt!Kfj{Rq$Rgn6wG7=1bChkd6%-@AUv=BHhqH5H zQpvJQxFcqAmgp7qvE#rF*2`)m3(D;IYOfZyxbt=l#jix~_eL+5W?kzsI7+i_^jvXK zi_POaX=*PU&g)}l{)Y_~bJ<7L8Xa^1#d;6bdt%A&2#VVad+UO^RjKIdAFyu+YyK+km8K!?Ow*3@^sF~m z%}APEwK)m*+~J&Xcxi>*4qxVl!fXeFw1coRA=^b_ytnI%i_SKBf$ig9PdM+J!TK}2 zWSH(CTV)LL$O`%0O4E|8ZbvdlbUXx^u)Z|QaQKo+3-}VeRqsznPe&gqz)9C16%k5o zB4P%60dTuhxT{`Z1YNEPk*Kv2c5MmS~k^0N)a`mv7`7E@6wij z$}}rtDu>zbP-;=xFwAyKC0R=zd-?!2Ig^AuSS0V#Li|<|X3EYi#y@hB4jp}c?p%^P zq>FrZ{C-Vr8oiXhZ^k~HAqVjG?#E8jHVUrG@bl)3lBecHK9dRdnLc$s z60$m-c!Mf*eUjXtRw%1o;D))tLa$g{F&rsHXwfFge&`x@Gz-3aR;ZrU21&rC!l_o1}8G%mM*;5@>NF!!C zq|}*tqeQDgzkP;KC-EDF_9J9!D(DS6m2i{b zEWMyd)D!&OO%jW~Sz>vJ^B^u2ZV}us`0Z2tb{1{|zG*)gF+*p&yj;ex$yg~Xd={}L z9Lkyq?hCyz5AoD8_JxgEqp>d}Ut|XU`M!XhG|y-C$G)&JWbRp8?F&O%?F&QHeZdSn z$<^K`V8bL&>}VbXu3nL-|OHslhN}p`S(@HU!59)Y0uvm=^8LGb`cXbYcJO%Ndtq|4TqS-!feCHSHIj zS_-BwKlKbVcEJhUKaFRsuR3h-M^mB>v0AfkTdgL{G}x4c zI$rV5yr@B@!P3>figzKuG#rA3Gc7a=YUXP{s1BQRWC|qyeHQPP682SVaWc=}VPaoh zP&z0V`a=@1nIzSA3=AnNc^hqewcCii4(rFDb5KAstM zkgb!}N>{KKZMDoGy-1;qu8-6(!`VX_eZjvEl;xeWUW#Nn=n0l*gf@pb3pWR2>cO?# z0UpraL*|zkV0H|^tiUcsEi!4BO7UN#MIV&!KXtqZQA_9}3AIJrbMjlaZ2zCNEKF_L z<BeXjahneDL z=1bg?xue@??f|PDQ|%o#cia>S9=6fD+h0%?Y02aR=TE^54daDE4>bk6OD3-_x}19P zS<*1O&M9l3v1sCjq$H`A)HAJMLv1cgv{(-Rc#84%@fZAeNjHk_+#P?+ooMDpRfyu5?_|hjA&)z+u%6H^id2qziZ7cKXYi zoh$y4JIOZQ_84xwWH-<|S=Sb^o^h3FYV42($&3<>^v)0J+dJGH4o#^bOdkPbE0TKZ z%u+l{?C$Qd^fLDs)m>R{^cQo-+k0*54LzYoZ!)xFGx_GCUaMG&&C^ZIA-tiB`mIG- z?P{NsSfUKw(JsSA3fOOp*7%-dCZdciY-vo6Y1Ay}4H@@F+M*%f=nmTxD=*Wqe@?&| zIPgFi+;0NuK7~GJCcj?P zfTft0L*MX*FRH^Hhfas<*U`UT!z=_pFMCe*K*+g4<0D5S$Lrlm#2YJZdXeta{H)}- zLFD+5$gy(FKtRt$yC#9ACitTQezvc-fRW*kD3A*TH5 zqo_W!vq4QgXXFzvP>%yjZnucstQW}beUaOcR&{t+fyxq4{VxFZmVoMhffCCU*q#Em z>jhvp30Q3VA+3H@feIH;5f^}33n&9W5jelEixt=!=x=25dKb-~);+dVzZ1!l-6NnLyg-R}DX_By zZ0QAH^91bmtxBA%K;0^!)(EKfD`;KOyouY}+jd>7$S)T?zFfd;IzB~Z^ z#~Y4f4Rom-oik<>%|Tj^aafPJxr9*+urrdAnUW|F4AT0G6CP42xAR%xgZ*&dVEs>rTZQj+a5up{4p#*CAlxjt7owmu1AmSZ zo(iARje#2rHv%pjE)DK-xUO*R;hJxdm>2E@-1l&w!+i#~6K)^eF1X9Ck=X1p65EP8 zL;w#(M9?{$#GZ!h41Bc^ZZLkEfpGS<68j4Er?D}Bw`a>);^%hrrpwT4e%y=Qk@S3uBTxr7W+!XA6#rtTvB zsDNp;qdaj{O4&}4{%w(-{>tf-K)0d<_YSp$0fEKky;hAbE47cu4$0h;Z1hUGfwyll zRhFo8AhKnP{n&8g>hRy9!Mu|aVzVq2a(!R5$8YK;%8v|uQci8&VDGKOXaY{OIUX$# zXO8YQ$X#36yO_CGskQpPd4=7yTFzZcC#mJJ;ZjzjlKXRN?%%h_xx3Ze548kye@e9X zNj3K+YVIY?axE9BZQj{J<3PPiXOPTYgtStnONCh8Ol_E_j@x>Xp2qDlk^V7}ewLbk z4oV2FkcY(z@p~7wl$O)#cp&G2R;$BOM%GlB`#zD!y=opep-efCd?kmeN)C7BINIbu zXYkB@r^tc+%40huq!za+c??(bn4EJ>V-Jok+v5Be+T(Mhev^-2y2N)8ipCbY?c zUT$LUu_A|S)Ew%Y&hWrU$L3>G43_mn44$~d3Ju%7+fQ-DkU6hO5ZJGw3pN}4k%@; z%~^L|8LLDYgn3$*@uFJB3up)7;N@y>Z)j?Zb&8u>W1Xh}E#tIvSmyz?u8Wkq&TW!M zV1CYmHY4B?wQ?dCsgnN6t%WYXsL33)CX<_j<1TD&x`{%ODj!uL($z8_RLUH#lsPl! z{x)Tb_g39Rtw@#hS6Tldqv%lbh*$EMnlr6U9zwUseY?nm{>pj$;SY||tx688$+UW- zz=k*F+#HfeO4%gQ@<}3xiE0jC`{@<~aTm;et&+zNjmEOA<*#FAJjcf7j19?!c%co> z(dzz{i+l|Hb$^b!du{cfqh|i;cZ2_^2X3i@`x5Jx!w%QI8MxozeuX=pE3s>lR)gOv5dIGCG~8LZLj3j{+*+*XpAe?9dLVx@+%<^n z48Jd&4X!#zV%H(7Q(Ni+@bK#QH&k^I#3BRXEz441@U%%?`6;o zw(>XTC$8#PW)~wyf8{Z6Y&Zuo9P?F%&`^Sc3dAYe_E0~8p^5?v9$D%GAUwBcCaoqHu4TiQ>}|ILuPBx4Vk>q0i2 ztbEpdGiu)pX{E}ZD#Yp#2(t?Ds(^3^h^_*H{>trzZ5}~Kby8`BXZ+)K?Ag8LC$?9@ zSg+_Ou>f#;6u$34|NesS{218gLVP0P2ID&i{;dHf_PNXP-3KlmE)A|P++es=I5YTg z#%C32)%l#=02#vGZ;_`C)*vua%h~f`_AW|Gb40z}^C?X|(%?+M-DMTk+lcxbc&`RZ z&l1Dbkxdm4h4ZzQ$C3UgxWrYFYH95n!qsm>Lzm)PY+v~7>%Z`2m(t$-k`pqGy$1nv z7!DS~p=+T7ADxH$dn~dbJH|~?%xHJ-t(~{iZKrm)M}!k+@i)?~$9IG~va$@Yufugh zdwarB9}I(wS!ofJ^k+VOuXx*);2z=@Mi=|N9}4SsJ&HQ7_`t zhwJ<@iv;9BmwA;pH+IcY^v+}1a=q{Kbt(4d_(qW~<@^!Eby;lb;F5d_-*p>)pFiTs zL%v)}Por~#@7!we**hy^dK-9ZD}Sq~^QvP8Q z(Y|2opt;Up59rY{o%vGHx=x~Xn*~1V>*~~|b(f-b>jjO;MM*e;XTo}&U+*@qBY(d_e*6kzHdzZ=<&8WkT%T)-bnCteW&)q zk1gNielv<>4iS~{#mr*)_s6+7ZSb?-AIq-#`6J{>c|(7)g=7T@vb}#rihws2{T<7Q zdzLECrF^SJ$bccy9ah(=B%D_^?@&wI*mB_K8q66TpWi_CuTR=fiakWn{|&4DTUt)o zPblF-2*2EN+gYQexYh@J715Qi*>9@e5jJBJDC! z+GvzEr{yk$gL>(D{u0tW&@u^etLc79M|%Q{ZS=sMcCBxB+7iy{*V$k7;*ZRuMjuWe!mizg1DyU z&k%Qya)U+B6A*W{`4Hmr?K6~gafmzBd<*!W1BjmsH=&WS?(jbv0bNo19ZEVK(tX{W zXP=^kn_vh3^X6Oaw<+N|g!ea3w%?+Je?fRp^G)`fmGI99ztMayzwZ&=8j|1F2*1)i z)jmy0|2e{|n~|{h`w;JLJ{R7J@Zx3*(w(c@HpI;fsoOshex!L2=*GTT z;2m+?bff(yCBI_)=4ke!{Yya)UT?oaiGK?5lbbI=`oo~*-h>N)rZ|ptN8vt!`w*@i zjstET{LOI2Z1B*-W%o2-I}U{`9pzn%?^$q0{8o+dtN1| zmm^$&ae5VgBg%XpKG9&a6n_f*Qv6Q3AlmKEm5!{AH5J>I+H^guuv#HY78VLe`Z`99 z^mQ9uRLXk427RvAYP)H`kG$|B(lmHqY}SDKvGS=!BYkE{^8$WH8Z**-CsHg@QcNz= z^&IKzspMlu8XS8gAL85_ybmg=#v>n#l21>hfx1c}X`3{7Z&y;-MLsD?J{F{b8Y1$c z*Gw9`W0h1_BcD_ypA@8lI&tFLBE>Kz#h@acd8BVp6zXio??^L<@^Nn$sro9Zl8e6c z#jU3oQ*QHY%AHspoA+2YZ0m7D(?nlf6f}G?_MJMGLH90R&YkG9PENyKVZra-#)-ae zL)T#^q!>N_4Po=p)oQp3;hsZRsNo+GwhVni4S$Dl%FyT3@K*?@4t1;Hj~kz{KQn65 z=?GmKq?IJY*4m!LuT)lfBki%-uEkWND7pOYjY*XgtBu-;)e-R%tD|g-N}oP8lIfP8 z3Te}tMty19Rvin;Q zed+5de2weIlBarJp&Kwy_sq@i;?tR8cc9#q zNtg$Tm=`tv1*N{}X^{3OLZXwNFS!fyHIOx90XOJMjkOY9FzaLcWW>bk4yn)tvrPg_ zg`di&oA}=z$_0;comRuNSogmHKOBK0d{F|o63zwp09+p2?Qjk_;^k+;Jq%X>_x08I z{ddM3z>yyMEr(_RcMv+XDRi#9b+iTIHG+k}HG#hG4H#uFom0AjsJ5 ztE$4GA3eZ6P}y&;!+Qoj{i*geB|IA8Zm`tQUkPU;+|i$6zg!6qML5de$KF>74?4kma*3;jQH9ikZl0RAA_F=ze4ffgKtK-41N#z8{l_` zzZ8B~_%8Sv-66k)-yd=k+9Q51wJbAWcPO?+W4-RedS#AFVOQV*H#6V8oVnk!kKJ@P z=;8+NQ{baBdDVQq*|9v|U1q;~Q@)757rNM)yk>s>3gW7Ex`?Z~d*ij69pF3e1TCG( zn~N;P*RC>^y(*|#`b%$===sg!{!AWNF`N%h}Y}~5*k#A(>{i0t~55Yg58CqJ(l$!i1tA)MOQk`2S2krVZ2>0R=rQ{C0(aGNRANsZdV~s4Lq* z*#y*l0o6@~8m>Y;AfS@kKxGRkhk%k)s4G;ci2|x)8>lP+MRr;<`AL_h_>1b^k1)%v zo@-Vm=TaZh4w&v6vnojqrGe|R3I2?JPe5Plc@pBX)wu2=?lQz>sc~IITnArvWok3% zOwechur4;jy$$y!Tru1$a9fn`jY#Lg_b#|e_}&TseYlt5=EL0qHv%pm&Z4+v_$hE> zAZxKns8bT^F!kwEk2Bp1VbAwom$bH28T&B)1vq(m4Qy5W=tFSwnS4o6>lKwL`e-*e z`AmMDi=b!}*Qrp%|7Y??+dvHyP{jXd@*yhJb1Kxc0%}?tsG$OCp@8bHLM>9E9uiR3 zwt>1*K;;W4Ek<$ij@in1h4C8$nX3xa&;*>?4^v0wLG(r#wFHVSE_ku2kb@ zh`2$4d^Mkbfw)SC8cISLlrQo@k6+oU$8S@6yrbIVH>>T567BiJ)w;)ri1uhidtfV9 z>G82DRIR{>Ked4xETF0c=5eY}St=CS=gZ_@wSgKWpy*ypCZDQ84OXFc3#fP7Kn)O3 zWdbVKX@QI(&(lZkk993W)D;uPi(8IX4_5n?HNR6Wv69(S?X!QU!j#f+< zf2^gmn(IR?nV?t7!F&7!_Zi&la4X;z!7YY+3hr6BWpHcZisAOd9fSK6t_+Ui=EHRa z?;8i#6|Os6AGjeH#laZGK^VmWtw!-TbrjQDg6pP6?IT&YYfzg$N)vt51AS!WJ0A~@ z;twiRwCLIRHco)Jr3;Wd&RkUN4eVLyPMNiy`_fUXg*rqPaU5!F+Q6Sm!iheDPtI4kGMW+9Gx?U z@fVsms`55rqD!O<^J`?inh+nd$CeV=Ybf)W`mkH6^Mor^5Rqd_~|joy$d37^RMMX34R zrRJv*`CS#vZ-boMD3O~F_`=GUBDYbPVN`u%Lv z(dxM)h&zg@7<2q+b&fWT_!nD$v?Po>)n6IUm@l8jfFgW8**;ZJgg)f%PHC%0;XUUs9iL$P!=`nbp#8JG&qE&$H{*U^q)c13 z05z>^(7mpt{zWkp?553$dTmit$p z-W4r(Cer@Odpj@pZJx64vYA~{7NOi1@e*I;=~k5es!O_= z+ir`N_zX{Zb+p9W&`UGC|H4Zoz0amSP*vd~3Gp<)7y7?G z>4KD4khR_J-2C;)**KGIm^tW$)pfsP12+$zG#C_`3$A_pdFq{_s;^JZLhPcf)pbcM z7r!U5U_L?rJ3qht>ytB6e)Zf{xAeVrtbM@d75R_iyPnxT2;baB*jLxx$}%Pm+CXtf zo?o!zm-fFv5Bc&z&yCpkzEaH5Q=Pf)HcuMgs zz;g?p96aZ+7Pt}aCqr-^LS-xu?`+tD9ZY)~H?`dXHwK-#z(RZ$ByFNW;a;$u(P074^N_Zs`Xpv?kbe@$PzaMQ=( z*=p}~_iRKzg+4yn>vq$t7@W)We7~-j!FCOWw?K*?VQV z&f6EhigHD{!JA$l=iNC8GI>Mq=N>BPtAev&G-lr3%bT>u^mOvG|0o~j6;EBVEpF{5 zo=0S47oJq2(`WunYspn>)ET-My`8S7=PR7SCDd_KAw8OP?!K)8o z24s2ZZ$C(j0kH01!Ea0#JnI6_4mXFn7SUKTxSY6Z^_rpfdl8E?1G9Z0IQl8hU6x_p zYr&3R(X+&h!_8mwR4P(&PPb-cN2(&+)Hcc(-p|t=LORYh z)@(~0# zi#6DDxa--e$Z>{!rZ<<*`^R~C&zH>Hz;|*`Piom+(Kv%=9jvt?#UraVB!p-;c zR8OLockwry!U0zvr+M$8s zFVcG>&5}(K%2Tw@+Fy8MUV!L|dZDgnK>1@YK-d1a?5d_HwJX}eb~c=8Q#(=nnGR~l z?ML9u!%HI6ezt?!-{$_U`1)~C%PES^gi0QE4*OB2s%FdqN&P806BO;K_M-ACd`o9q z4-cKKFd8u%df-V|QZT@~Xcx_hvl!+6-kCd^;AUYyT#xziak$*$@(uuv-p94jXFSmv zQFU=f-8_JY6x;MdaZ{YP)MkF7gOB58)}_0oPt2O|jElxUW8eUDTRlbK&fyf#r0fLBU%K6HxFV$_-RJBRnYw)|9B_Pqh`5)9IZmdnssm(XIur&fL)sJD0R4 z+5{?zr*AU}M61pG3z6PWEAWBkH`x`O|G&H(`@}elkWlj*{@b#co~&qd+uEAvzlAeK zt#s>|tc^Jrr!8zd;i%(#;EJ}kEe>&NqbC#;?FrynZ6U|;Xm|| zIzEkJ2XK1Z<=_u5e#w~MQ4{rt{c0_-tqeToW5*{^zmf2h+dgs}isB)_=UYE;d>F<3 zfX}qPi+%g|9Dj-WrNghTH4J^_9mm0_UoZH5)4JbrAc_sZpS50|gWroe-j4dUw8r84 z|1I#l;An~Zoq^wh)^m>YQCtuFX6ub;-y}RI9raQFZ{WYPwG@8eIZj0Vj>2zCYdQR? z@WjqjD6p*+r!Hy5ly!TcxCG*$L1)m1a`N^&UYxumlQCtq}YJJA>Y!rKeovrH~Pe<`e;G)*Gj&)J&1}<#%I@Uz-5@1K`Q;y$7aWSy1 zb(Ldv6uW?PTc_WEbM1~NqJDS6Z$#?~$I2+42|Td%CM)DZ)UK(bO@?1)Yl)*Y8m9m_ zt<~-DMDbYQ#MYe{|3{-%4HfJ^VEkKSHVYMP2=Muq2OSSZ)AR#A)ACzK#8#rBWdPT= z9Ls_YpwC&yc@jnI1^;ha9zx!+^CXIMbW;1-?o+kte+=$Oxa06F#QW!Fe8(CJ*^lQK=FMTaJur3$;Esd4 z8}1IcFT&N}u7%qSw*+o0+y~(5FmL9w4zdvL9dKvCeHQK{xG%%~ z0PR_YGQP$)IC>v}HuglnWx%DiN^;*w9a<576XMN;|EuUHJKP)5C-`0mTSu$!PPFSA zCP?&a_#5pr!`W9$Lz2JjbMwo%W9;FABlvCS4fi~kp=(&H8#vr_jIB$6mdLcB;hyU5 z#`bZkU**~h!^8T@gL@s3u9uuW)FB8>JC}=_4+fYiM9TTlhF>W;bMLV_;~W)t!|qrP z?2NVni?Mt`$?#hO^9@rOw zB-Tr=e(Zv5VrMJnu(Mm7x;3)*9!Lh9NAWSU;+=ChS$a5TpBh#&$zBO8r@LUQ^MX{! z&OZ0+T%6~ee!)<_jBdFom${8L$(jedt_N^FPqz{F*D_7^!?4meEq#1Lq6BMh7Do2f z7;Fc7BN|Qn^-e0o1S|7avK)}?dL=*6ujKj~o@68ebtMT#TQJ7Ls=w7<+q|#kV%#G&RJ+Uz#R~^>yAHb-rtf_IlV3QW>;863z3z0a#-KCV9Hdn_D ztU=$UxXjr59B4TE++Eoy>yz`Jh0Oy#3-`a~v#?SBSvc`BY2^4urh5;*@4*+nkwv?$ z?;(_#-$OX{1f~4o{Lzz2>YMB(+~4&QehY8Zja>LHt)PrUY37VjlA*GZbnln*KL6R zNPl=G?kdSM`A;gDF)M#c3NydU$6BJXPJsQL>s?e%r?IYxj`b6;-zgZUQo?RYl|R#JJT-S8ai4-Ne!D+o0|-!}N}xbg>KZBQyk9`Y-$7jf^5 zl$(aTShDBr*|*h++u2}`k8B;i;#7(wh-jmR2Mr$0O|L5)q z8yILiCBDI6w51=znU<-%Cn$9Gxtqd<1?wOEW*@OEXi9h>5 z@u2Gy8eP3iS;#XHHXbK_bCM1CBD~U>(tAQfobt&@*8fZq{3oRJK2vCD(8)7gi}K8) zW;nr14y9YA>*?NzI4%2}{CtdJ6V6fnXN0{;&MKShgRsIZ_{&V#v-g@^)nSF~HFyu= zvD*1<6I0?e;~NF5IM2lWoQnMvY8bhplg{lDFC;E#)L?B5YqE*{*sZX*MS$O9w#L2n z9ywcALpn8EvUOfjm1Q9t{4j3ZW7@~Ce-*jmage`nz>JdySJp&wdoOwq;EV3qjf+eR z^85mBHt^+n0oP498-yDJE_??|cXTtT!QZB`fsuEccFt{$+!(pyfJ1tP*Aut4N}3;c zh_UP)H4ZcGEaG?OD!3JIt_OB5?bd;0d6mxQ!QK*VE}3yp^LrhZS3BSJMV43fjTh~{ z4z|N*VWj5w^PPop9troOO4^6#WBswTX$fvKOHk2n3mf=j^F&xxrn5c|@7i*LZ23k~ zPvZBg6F>T|-<(VRKCWr}t_der@IHWzG1O>E^k%^6uszFg=9ccyq&`r=>u_Tx?}JA! z(FgzdF1JW4PV@EdTW;wUD$#L1Hik=^u0kI$RcFqQw)Zf<*K(fUivHK5$6*Ulo&)Q} z^UnQs$XrJWwbw!-dTSKZ|jZxUR=ey(0}ocUeU_$KYwp#q@@p` zrH-1&SRXyt{{&7bb)vQnynHXGwstXI z!@7~1Rl*L|Wye_KILV@old53-ZuYU~CrQ_TU?h8FQ)h3)>N~|XEo^bZGTxMGZH4<8 zd|M)GNOT%1#g*!^^()QK-j_G{io@$}_T)cY(8txsbwYxA zqMb2oR=%!4xj^ zmii|uHAfmKHQ1!8^PWbJ)>r!LRfh9%&4$4!busL=myVRDmyahKgtqkT zeazC!eh2SKvJS`wgEj|A=8<+=7GzqS!+yMZJM0^>>{ z>$mfK$rj_!tppky6ZLdDSZ;%@zy(E+2ZfLa#ZJ;da-0TonH@LVGH8A8rMWCm9-{;=>XT^2 zTmjo#vt+j87}jTaHsZM)bX*Si0X$AT_u}#Y4Qm@bU*H*wXVWs=6ZMBYmtwcTCOv-h z7-nXt(?qsep(`p2pR|MGaeBFr2eOm*)uPs;kn%;)3W_GkPbc}m{Y6;MHG>`v`Z!zqgRY2PKw*Wg zH;46Z=mppOC9Jsr0KFho^Ek#*@k%b(3Up@=wjAlfwFBIdbx}K*0qx*{W6%!1?>#pU zy1}%+uN%~2Rbs#zzel6lKy_n-3b|cMva{3PeDAr>sCDC${I4`xdF#J#As^^KTu+A< zArVcShwV}6y7)#{{GhA9seuNF`|{-S?Ch(lhQCGqltBYc0}AmgtdTgW+1@3#=Nztch}ru&nIi25`5W#!%RczWK{?1DVk9eH_9iu-PhQf|H`{W|GdhMW05Ju-oM z1o!O?#mcK_!Y!~tS2SU|KX1}@SYeFJY0(a1p?^%rjOflfDbGuuHQ^e6&Q04JWESC3 zRSl+bbVoFFzv{h>*-8D5B%FQVevEbe zpez&VzrA34+y+V^YAih7yD$&bV%vHLeEYl8w@%eJ7+Ah*Zl3vCX;i**|4H^kdd|EF z$Bz)7fL%IIMAsa8i^sl_TOv+W=tTCb7qaP|30LkL4*U3@!uOwSK7}1=tJC7&ZU6M7 z^lOUq+J&p$u>I6pyduB%vCnY}+tk+_u-Cb<#b95FId0INyx?-Vt0dRm;Beq#CR>Kv zMBFV2TA4vxe?c0QODDotMDBXb3!9x3Dp_geV9?4guxPjgH;zez&NScEN;=%3njf*& zd>QxLk44?d?w`TllUp;zdWg@RDHmv@;vl*Dn+8`|Q74?4!*4$NgRe$x)EczgaA#lr zG}uOU^Y-WUn&QUkX0lWqY5#CopC*Z07#?V14a@bGDjV|IihQzRg*4mwDC&s1=NUBX zpI=5kW04QlMX`_P=~%Y(Wv^`c@RTNJVZ6$J(Wm`OR1UAqUx|H^8*Y{R(M=v>ri{61 zDSn-XlG*v@KKK%okGnfa8s{Cm<|ZjOV%63-d(^Fx)x#)-8TJc2YLP?qoDY(Y9J^$>HF;1+*Vc$^Ve@V{wj#{kkEaOSO>$0R=vRDgSwbC)0)KG#= zHXYLs$=+ui|MH1@%v(;BHNrMg4fe;D%4`JsNgIUu;m2?If!E?0jWC7!Wr?Lq2RAY2 zT=Tp8iYMNxVb5@?{Ijq(5jGNG3EhP4LKti~vL6az_uXpNU`)07tv9%BL%x=Jf>Q<7 zELeN#vTycF+4sX%C9Fu}M&^yp1JBdnEdJMwzh|1OaD(re<`4Pb5dLm#PUE4;{BJM( zJ>T4y`y08B{=959J0G~^(SmFj_Iuh4cGI7Y+WY74z10JIYq-nBXaild^Tn>+pkt@s zV6SrBG=XW`-8rsa*gM1N`VnVq>?-9lFPh7_R)gKz?VaApkCDzk2bwFbkPMC4%z&Fm z@IFK`8?d&rM{gU6tr)T{8R(Wx?brOc}+fS zr5D=ewaJ*vxM9sHl`E>WRrX3=ihB-xb{uG`DknLpDF)2*eg&>g?4GHCtp`1ZJ1`K zdmugeCcm^n-k9v9zmuF)s{}O?|0fq4v9#&VUAs@vzComxGtb?2!k|qLbIbg=Tiu`y zkK9*)-*4fJIP6CL+b8(F-D9vjeHu0i?#6!dqqq+ zvJ~&3TRy(&QOsuAOG|Cl-pF=+2tI0PG)u5C#=iwF@knNCF}0}&Uk$!yPxBAN9<7nz z>bI7!x?gik=Cbf;mg|b#Ykw5$>&RY=QS+T6N>Z@zW6-_`7rQF?s8!_8=`w0}+vW9l z+F>Bs1Ssq6DCYODd-2=O(Y=d#%R40uYZo^1PcGBNTPSlgd^D$cyZgR0GNT@_IfRj`h*frhBofrQ3M$y%4Lsbj-2K&-Fl`z!os?l_^vjl<2ws5?BW|nrM#g zaFYb8!mrS<_iCrzw#J$Qtc)Z1*eM^(GW_BMt76!G{!gxovrg!>>~^E}Nw{-;;&^?I zRmEy^mtU;Q8Qfj-aoFgk@gfUk5@uO!#1xDe?uW%JGkQNlyKFcQ^HaMUHx*84_h6Rk zyfZM%Zi>z_x>>gKEc@qI*wmjNUa(=7>9w8hG+sq^7sg9h!#2#qJ+U;)Qv7U#gjq&^ zCpoEBi5M}8{{?se{aSKq(`-I!v6@!2;|6%D6Yf^U8F9W+#%~nyzPSCFTO)Vi7$3pi zPH~L6zsGl_U*j9jT{w5qicMTRv3VBR1yj7#?jz9h=sd!5&xf~~?G8v$nqRO95dO<8 z7U(e4lDqhx$ip6bza6)pd#hfvM<{6JYckUQ0sAkVXV_=%$oz`awD#Ei(rZK7i?O#m z&R=CG&RCI8mbxzT#zv1w)QINZy0kt+0BOIw6W z87zFqD1**eh_umI^HP^NtJj*_+~z9WEkA|#1I=2g)2vO5#A)@~jV)7R<7L z#TU>%UHWqd@6Z3vSvDU1+}Qj)-^bE%Sr(gRSO1r0*%jwWmg%(%t^cuEcA@oBv+Re~ z=_k0psy!RlYkz5t=QC~%-uJh%eS6=Rn7JM{otD5B`8@1P&BZs$^Nc-+2lFcr-wGkE z7Psje75+T|^SL$K<=}GV4cs1ck>Y=*Y9|>@x1NI=AAR3%=Q4x1avzIq{9= zHqxt$ZTOAJTMXPeh8}&3VgCU0eo1u|vtS1yZ0ytCoN~du#9bA+!-j#v7UF)rNZV7x zWNQa|XiKu+FyZEkw{TN;WAnzh^!Wb2ezD9RJqMfq@6ui0ik(u(u6|V{`6!-gBGojl zMYhXPAH7!lHrqD@=}dpXU04X!cM1LMZLDYZ(t2;D-DB@RWbiR*$RK}wqeN@{MBLb$ z=xdCZ^n(qDrE4#u@DX$NPyV6VI{)zOt7@juUH40N+pXDSYw*kDBp-g8ZXDeEFe58) z{ftAdR`ps*%jK32F&`x-_P?yO2S%rSepB;XRl1Q%qSUHCQ!T>xs3qC=*6g-tgk_%7 z<%5mKq%0jQcH7RhkE%ZNn67ueTr(%vkUfW&VCrWYlD-dmDN0M|$Ff*|9qwYqcQCYe zBP3@zJce{1XgVBR|! z_ctiIZw~iSD;nqU*apPDy(4zr5oRgMugKer+8g(!!%B1XNMPQ|}_Li)ZM+9C7Ox{>y@sQo|IG@saQuQIsT}^j>B*O|KCE=S_U{|* ze|%}Bed`aVK6@&rXy#s?(}mT)K6g67a_)3JQ3~C`jXS9N*AQd7%k2ZceGhb<+Fu|kUutL(V+ZU@(sb?Itls}b3>ar(z z=K+baeHZ^Hg4TQD>4hf=j}cEio&-ES@Ie1%dOQX^P_6hsy`wjbNQ`X}b=z5f2Z`peRW$1g2-b2j)|TrZpr zmTpW0J+Wc6HA$Oy;s)@EKUrl<_{OUrLO+ZxU6D`Jw{l;uz2vIh4MwKteUU$*=O)}U zvpi*Ei6+U1(GTY3Z(j9cgHbVMd$fbg(NFzkt?`Z9?0>>Zl-t6}cKug{;J3G&quk=` zNgLkpQ@+n;PsVrn^nD(jezf7fU9wAY`HGbC zk!D&5BfK!Uh>!UQKjrdJwzYF;ED3xYTA1Z;F`Sd{e8tq0jp6v-_8a#}((*o36kRU#->j+*FgU#trq~=O~^`Dc@<7 zt(Fp z!3ibWAdjqNy_d}0yCYBZmb58<5cH6H5As{@N5-v~cJ z_+~bU`ufR$amUL)czfXf40%*K8+a5vTG?SLSaA9i2i}J+IIS8NoDOC$IQ^l^)xMzA z)jt2FpW3raerg}G_Dp;Bi(mZU{l)ijxqe;PpnmZ~CEl;CiTL~Re!c&N-pj%=LbQ&M z^E^c)L{ZOQOj8p6;bIzt8jhyP#cxr@e9YLH%kW*~BgTG!dz#*P%J+E*l6tYscWWZ0 zMM88uBvR(PHIdRHA$kglmicZ?q%@i57N@$}=c1*~Zdy8m$1q0QIH_@F+KbE|iVFR@p!c3LMutuEttEmf;lv!tw z$g`zCeX`>h_HmYr5@qR6f7@aF?(fdjel?(VmKf!e=C5v%v^ZU_2H7Bud9>j4Y?`Bg zHNI!8X^fL5*4uvjNCRWn+pYHcBZ$KeG=en`<>sBV#${!ir0cnf<|xgcFXNJ))7Mxn z2cU1U@VLH`y$Bri#In~K5<1OYh2}1{upwj0VzU=#s>+COUc=|FN4pm?WZ}N(d}0%^ zuWP(H(W~3Y@SR|s5qBCkPE7#6ac;0*25tO$J862aVIJSx{>sgaPVZd1r6FH_xL_mk zcwIu+XkM7P75x8bW4wa4D~lWA;uPGT`OT4}=XRr(zwy78pTjx8%6+}ELmbYp*dTP)f-g?Px%amANWO6m2|6=! z&C>>ODJ5x^s9ef|_9|(Kdq8m!Nr6*o4Au#!>VH-L!TnRT;qf$1>9`xn9B*oM9`we7v78%x9E%os0Ou`fZrlI$mr^eV58qnw7u)4tapybX`1 z-hQPw;kYkeLx3ExONZ8f^UyBoVYm!=eEDV z*}!Aacm5lA{qRn_{^$HJ#_NC1|6;uU=ln0m>qY+8nX7l@f1SB{SN_+Tt9Rvp|FgJy zU(VHy{-5)7sUcp+w32lduzy3cW`S1BDj;KLTQVZ`L)PVO9{yTdw zk4XNG5JViM_AWZb;x)g(z#U~GMIkyXPD zgS8~-OnQWK6s5DQ|G=sNy*k`4hjrcZj?dCB#XBgZd)`4I-SH0c@1A#1NcX&hLb~T2 z6!Q0Z2gT@~cTh<8yn{lz=N%N%9q%Cj?s*4=bk92|qbXOMBcH1^Nz={`;h!x zy#JL3N$OZ3Tpw8>+*~joYg{dTD^7M#wP)I&%`e|K2D)7Og{+9?x$%wjk2fCceN+6L zdKp@6d`)~qoJ6|}+w5-b`cl$9bN1@&+i4Z`r^;lw7L-J;0EJ%Py&m`uT72+Eo?V!PH12< z@h{+^`2|mB%JzR^@8gCq#{CD=c;M|baGkX!6zZ=!=S=``kY zLxSG8?J!XS{T=!r8T+_PjJ^I6W3TIW?4_`Ds=Ki_Tw?5%ON_mIiLqz@VC*?p>t^gZ zPwViHQ80~K_hZlb8IOOFf{C)aqhO*e^8fkRcW^S~)R}^fmmGV~grRnlP>hY|dsr7o zAMyr=A`)~o`c|JIy59*3kRcV)*`WW#jwiS#t$X5VzTmy<3W2yOUj=uBpnV;DwtL+r z!o4FLJGu%+iX)secdxrpitcq63h7>Vp^(3?yHJeobr%ZhUU#98?sXRm=}vbc|L%1c z3h7>Vp^)x%7Yc#y(yb)uyK4<}mk4FZa)<5`-QDa_kXoLf8Ts<~SkoV0X=|>2<9~NZ z{-^AF|Gga&;uas;weNavI>@<6qAHEVSG&ZL{GX1{3c9Un)Xui%8{anWA{j!O#F_NJ zk@VPgWpot;^v`IO54T@j1>wDeli+=X|8MClBAlcn1e~NJgmaQu2ub^n5WWiHAzY`# z+Yz2u2Pc6K*C{(fIyear0cYEI+h1RM&k%yYXWCqaxz-8m-#`gyB3C+P_3+$zpV zVj*2x#W@KN>DsCePJ*zmt?J+;Jfw50Iyear>D;RBRzc-_6_os3S$>><0;dPPDp{p# zeEH2svI?XD<3SJOceFK6-g}=W%SY^oGk!f`<-Wc4olr>kbV4D2 zpH3)7_jE!b-O~w$bWbM~(jA?UfA@4kA>Gpng>+9R6aqT=+1Iq!I(FIy^L-WCS!-+h z<@UDbyZ`*Zdu#u*_SS6JFT>tif07jyyV{y}?CZH975i#tBXI)SU!&RoVQ=sT>E;PZ z1uOS$upfg2>Dg$4RjnR6HV|kitygX?sIX^&i~JL-(VLHRX~Mt61bjH(?Fi}M5RpwBcyYyIG2cpbZHgm5k+#&U?bnjZ)+NW+;Y0ljZ@<+XfAglw~1Vm#i>$`be#v1EK-+|NPXiQ<0qus zv-jZ}He;5Y8L+P58bH9nGu1)}D=tz1XlcN3XM<>5o2)&h>4MM!)cNT&jO-ZZL~CSlS@AnId0i4}6X(+HFr)PO7ZNA2t1YnmmX5toX7*0Bx(2&q zwNU8SL*sS4^?$%!aEnlnVW`IysE1^6hsTtx-gBlra{l)D=0yC8>iOpT+R`0VLtVcm1v;(e!jd;GLm!##>zWU@n(Y)K_0wq@ z{Am={H-EcF*3PvtmrlD8)*a~l^U>xDVOg8lE^FU&|B>*g8#a$NpN9Vp_-%f#Pw{&* zJhiKF7Vas=f3v5DjT)RZyGIWjC~;Sk?IWcR8+@T=gUeE-cQDjO)*fvm>pNpGGCD2k zJlps6p>yqeEoF~no*KNW{c0(Tu`#ev9mrs8qs)>6eQ*>ndE9*g)7AF{Wb=4vS-wzm ziZ75l(idQ6Ux?yL%x2b^ODq+5ufY3Dc(+J}0gGfaXIbEn_X@nfgm=aYLs=s$lPxK} zee!ysx#%Ol$OG+sIydUR+$O6mZ4pJ={TXaGQh0Pd|2KNTorAbnc9Z3Qj_jO zx_nhady-AQK#Cb{W7M|k0h}B(li-i{3cSCFcgCiN z`t`fmHpXV7-p>3;y~ZNX*t>7kp(LLqF}JRBdnx`XwE1GZ!jLSf@5qwxH6_~ibJ4cH z*G=2a)@ea=HSf2)9G!1!a-usg2V+HLbPk&u4Vx;2VO;Y}slKV!Oi!LE+V^s@C5U5| z^>R*D(273y*nEM~LSI17Mh9eO#Szf;$#V76$p=5wlHbMiAo_I6Bwyh7vlgqY@UGoB zxA}$MR;J2kv#PUNRL1(Lk}0bLU(0R_S>11~l%?d5bh$4ez2^&AE?)(Dz?iY(ATtGm zvXmOqUF!>ET^sc`KM-WrP>||yJK{;Uf}mObS77#L$|t_SNIhudwJFAmsP2# zL%q3h0^&Rsgk`i)D&ol1tFope-aCD(RC%ft#Cg(LtojkORpVt!hN&T(NgX4@Mfx!n zrpkbmRR$JSqmH(+VA&A3`UgU{F*Zb&W`}&$m8f!MP|2uJ^(IdMZK_*U4Vq(>Xm5oo z8PGn|^GDD;V>uya@*%!YM{~<;EtPv%#|O>k=|Sv_ZA&z-4dUGE7irZc!9>i1Yjsmv3JHshooz>g3{#{8Eu!P!U-uA z?d|m#^8k%`I>sPI517O-K)ODlL;GarlPE78%L$;psWiWV)3m~)c;a(b|CJpECTW(y*O`*F>dl4 zLr^j;2XAp>tS#ye&~{?s;%dWM{1_v8Mi^+4 z(>~6SM`*ure$aFc`ikgZ?+(Zo%z2E@OG#ceC+$VGRNWMKDXChbI`BC`@kb**>Q3_l z`3EU3@s-YT%@nWpsel!6ldmZa(7d6zIZ8G1b9c#?<`K@fXUKD;V1)KN_<~F_%>cf^ z*fk-dDS3`ASOU7!SziM0NDX1mMdDaXIX}l(2C`-)sx+RUrv#7F8z^0&f6)l!1KsoYXB?OL3EFo`G+4PX@Ye+WG+$ugoy!7-xsZ!FzQBt&mIg{JzQC{pm4PoY z7R2{4J{gRUE$X-57lN8uPyX;jlYF|^oS4+!{)DdjHdU^k$vVpu>TfyFD`>g=slX1~ z`b*A-G04}TE(_$sjnKyE0LE1U598xa^&npPJJgHDdj(vKHSyHI6G%gTkTDrFPX7mK zVqwI?V)S(j(s*p%z!JEng=+)z;699SR;`9G|LZ029MTuaRjP;AdLSa++@hq z1jWBP=&1(1R&$;Wes1OcKs*vWFhue~$EM;(EQQiLNj}RvNoo#sC7Kt3Sbm6@A-(72 z^^N8os6$Tp)=-!^Q-K}Z@Z9IYy*u;tPRvIY6H16 zf2j?qOQh{+gFJ9;5Wkrjg5Su@y75LebYRGI6^hbE4|toLQyTJ(!CZna71bk2J_S1R zF%TaB|B;fRQ>nVnVIJfiH*#7~es6lerSCq{4|Uoo?+2d(E&F<{LY~t?I?1O(;p6Ef zlmR}HF=F64PW1=I zXq@jz*Lnj>6n2&Q( zkY^wZc}eE{;8dL#GIm}tIhFdBMP#(;e$+z^%KE|(_~sZ%DGXuGjPbEbt{+Iy&)T44 z4(EE|)KE!}NT2B-pW&?7M(s;oDKsEo6qS<_$d3mB^>L)V+8nxN~I^lPP1TiL-?@2oDd}2NHqlCl&O`AbTRO0uBj`U!k9kYwAzPpB7sv;8UuF54 z@xe^2*Novxj* zvGqI2_}Kb=2i|ofD@krAYiKWxBi0B{P@b_lO!cENr14vdHQJ@d4)V4BKRXTwJBM180)ckyxX1$HA2VI9J$Z=c2ZqJINB;2#^aZxC0u_(Ly}n^O~d3how!yTRu@ zQJ%ra>LB!W57 zGY2#rqY2_Wi1#zuL;M{14x#)pr#tdTy(Y!-r@SMy7pYI@d?WQ$c|BwGro9-(rsr7-j6TAx`~ zF~`+xwz-yBWwoCKd#6^nnhBf*9*413nc`NN(XE;xBdC72;om6yOTxb}@|TOD-#Ec< zZP0ZJeSzgD`&mh+daoU*K5IrE*5#^<^%UvN>DCu&HQPIZFv{m?5nqRN4Cy80^AOT{ z6-D(9C{>@%>#uTs+ln<~@n0foosqQ6>aCTqKLZ*_m2=+FL1yuNxaKLtPg0*zJuEa= z-FZQo>V~|HUbvOMP`vF)b<318^&rYEtMCO93RkFl<_mz|;CHq&0$5l>k6T@9WKRSc zTcL*Fub|#KHj`+7NDsup_$El+f?xw^TVgiEn;8JzY?La?f}~%t!ia1l|1<6FV<`Vb zjIs7R>^DH~qx8@-L!f2I%tF3C>rZ3AHlLtArv8t;r*(P<9dUX)SOz=$cwWb&SvS{S zhjGwZH=m#}AR3el^Masl?2lmo#nXsps)<$^(JdsZ9MWC3VHZC(!Y)}czTqt zvpUsxu%=L~t84XUO8-LbR`dZYEDWB;oZrm*i z9p*yFSh+g*&@PIzs?J!v8vWr5I55ul@cy3}N^ts8;WFs|84k>Y zG>lyj)c2|pKG2gdFd6MJp*>Vj1^x-`5)g;-zXo|5+3g{{(-(l=i9WdR*G=Rx$B@^|{{s(T~-#H?ya%^6rr`P)#o znfFy;2s%hcYzz(Ni(^P_$M_{szsy8j1L_W1=5?ojS`0s`^Mh1Z&~v)kT|3sit~Sx+ zuCLh_^rG)+&ddzO>Q8M!o(U4-J&63EH`bdFhv-R0-b%DSL`&$m z1fng>w~jhY=k_HlNF^RZb&@4FWYG(? ziiz?p0l$sN8_JW)qV|y6m*zRzm1td!J#&mX=nMG-45)V^1AT%&C|E!LXX?N(uDl*5 z&@@wS>6{)UP=5dz7XG#(62O)6VWF` zhnO!IPslxt&vocGnrBVmCnhWO4fJJf9um*dTWvwbdW6#zA|;4 z@Eo}q^BHu|pY#`7q+QHAJt!4Ij=Nbf&9=HWy&7@@s}Iuo8J<6%&w{ z8Fi&GXF(%eW_uoVIwQ0V{XlsuzUTG3eP1OzkY1|%5M`kc(I-adD!J13RkGq-m7=SB zQeA}pVeA*Q<}1bActWxs43U2iR!DwXQnhcCbR<-GTS5 zXb&vv{3f(*moM-n{EE!WAlH5qGMPzFA$?_eun6Nt zyf;ddyu3+No~|(8lj%qP=B;Z&N~?D9c|Zj zsE-kJNaH41OTi+hhend0&lf1FUKTV#KEc9AU>f`+-xI+EX}M|wT|utZUPW{dTIqo~ zkFt0>O=xFgHRTtPoqapE!}oM;BcCg?0#tsi9hc)BGAP7+zK|8NnDo?a8~Op`H5!B*=x%O|jXU^Bs6X19?OcX=9g&;m520qLr-b@ad)nKu z#)I1mR~sMEZ^nan$u`LRD6ij({E63JhUX1D9y~ALq5A&;ZIRP4cacXf%RnL zgKzZ5L%L|3vyAp;GE9(<8!(@fAa8YU-x}uht$P|+kMw4Qt&N7QhrX^jK|^lzqxYGh zf^|V(qlqD!OW!VrjTxuAejz?XdY8Mhsk{$eVQSg@NLMntoC2|xN+Ww zeXiBP`+DuBd`>C)aC$&7uS-+RTQ0*M4){;;2NweR1^G1 zP#;5&ApM*2HljZYbKJ*=Ag$ZI8tWLur+mPVmd{zKDo%TF#r`c5)Img>^bSD;C0 zc?V6RPeWn!2k4Q@-~h@&yX$4lA9N1r9J)L&7y6mox6bJFt#M)eOsMZ&QN9iuT>ES&^dXS}u zo4e*HHg{lu)W4d$vZS4olkr&a1>@0?%Yd_}yqx>f;wE9O$@aO*&0ZoEUcMEhvHg8fkFG1c(**6Q#* zk|B)N!_>}7&=k3(^Fr2zxXugN0$mew(-*i2_2{hgLcgnTpBUlKQZe#!A`RwH`=*H8 zI0_kE2^mTH2(7hfEl~qE(S~^d8D>D9%trc~FVG8RAQJfL*e+PAUn@n`x zBZFZdh3doHk+eM#uOH&HLw`zyoKYadZ7eOM^DQ*#d{3}M-|AWm(reJ++~_xKZe=j& zizL6cqmBypwdMFi;wu>>yIw(DhHpI72P_{vBs(Jasmzg7$Ea>A$ESrPtX zQ2PiuC=D)w%!s4~U#+i1T=2V$D%6M4P& z<&U<-%8vD84eCI7EI=NRwIS+n>d&RvD$ zRHb}CGqqIS`|y7aWs%IHG*c0mcwLg21!)}U8xqCCSk$)wzmB$GuO}f6;ju7^FApjS z{S|ptBOKogGT!Ud*0IP_*G-t=M<2hg2E>o7h= zK^gN~F+*nuFEGN@fz}eS)`_zosqKli&>Z9!TQ?e!J^^)fFvv#i4-hs0Q=W0`NG+2} zRU`JdVqrbTVy^^o;^ERBDD8#ns-X|6G%tM>m=_hS*!L3FI@@Are&8Q~KlVpe@FLo` zLs;~jTU@cq(^4J=HXAg5r)0F@y%4;C@pUG6m9G?hy7XF-;aIO+b>Dqb=6&}io1M!c z%5Mv$kGoHzb7q%~yD!<`oTnPhXuorH?Htrm!Z{1*6cY2H4wa~b**6M#jY8j#VYVVw z!hSKuM+E3szR(P67h%jB;#<(=6Sh}Y1{NZHf_sMA!~3pkbeF5~-d9w~T^?lKSFnay zuj);|$C~ao=e!3Kix>ITh-~J>Kc4<1{Hu`_WF6Q;hWy@1yCV zlqvT~sZ-ELIMYVsWa^7PGI`|WzV{_7wmGWIpc|WrPJDqYs4l1@ZgHhHqbu-UN$p2p znS7%#H^wC3ObP;cA5oef#eY#FG%zC+{@q)~i+wZ`ee{=~^^w8+j2dVCcl6Qi=%bmE z?Dpm8y!f_=^GwiT0`aIj^%3)xt5W4Fsvc#Ko`rr4oVfwK6Zm_$I2xczrjJyVSx57L z#*E&VOsuxE>dm!D+A5Wu3b%L0Ee&09SinsJ)&zV?z;yyXE?`x_UkUh_fR75;FW^H0 zeqX=`1zauQy#n4N;MWCQDc~If-YVcN0`>{`c>$LTc)ftV0$wHHl>#mkaB+D{m+`j= zc+ZBe;e|r_$pUr=xIn-*0gn}Mu7F1i*b1zGb`z_Ar)EMA`}paWF1W^dt_$wnyDR>s zfGq-^5I*0fKNkPcbv_gec#(iz0-i5mr+{Y*xJbY=1Y9WK$pUr=xIn-*0gn}Mu7F1i z*ec**0?rn2e*ynj>vK%tS7QEVp}b51rwceuz$O7F3fL%MMZiqJE#G&gpRjRfK38U6tGdiMc%IT;S%t1VZMvuej)sjfW`dx{Dbff%ciGUXixLCl81nd&j|=$!Z+*LP zb=Ud)|GNI{7W(%Q0WT5oVgVNmc#(iz0-i5mr+{Y*xJbY=1pI%4KHpjX4-@K_E#UqF zHVZgY!07@`6R=6Zi2^nXSP?K2a7(?Q?+Lg`z?y(h3Aj$c#|5kk_$vV)6Yx<1`vrVR z!0!wApn$6dyyWq&^M8jBzE!|m1nd*=^8zjx@OlAz1-weYD+OF8V7GuD5%3ZLFBWjI zfENkaCE)o2b_#g5fRBFNmA=M)(-r3m@e>7p++PSc3;2;$UB@p`2sa8?5ik>Q%gL_w z3k$eOz?y(h3Aj$c#|5kk_$vV)6Yx<1`vrVR!0!wApn$6dyjQ?`1pK;yD+Rnmz*_~p zMZi7*KQG{N0k0RZSHP_pjV5fj*3%E$YGXz{H z;K>4Z2)IDNHUW3 z;Bo=47qC~rs|37Kz-0n<3-}QMFA?x!0T&B+k$_zSo-bghfM*N1NWe1$Tqxkl0(JsPfJY11D&S!P&K7Wg0h_zJQ$qo-N=a0nZR{p@1g~*dgEo z0ow#TR=~Le9xY(2fQJbCSa3*69sG(up(e4;Fj-%`7Gcj0c!#d z3-}+!KPAMk6Yy~Xs{;N?z{do9RKR`#9}@8U0zN3^6L3py zSN^3w*meKH_E1-ROo)F}zEG+$g_l-VZgsbCx6%!nw{&Ozvu?Ex{#$i!tVt2R z&5gA=+)8&bxyCZLJBo+ZlmAw?jk}d@2i#rbjBfAgi2n}mR=QPkkuFn%i+l^o1%8BF zq*ofrt&F%m%G_h4xQJZDDHdDZf2%$HLtUm*Q0?pF@5|_pwyCz+aL3YNp$rMtG~+3pX9{ z9haY5`u`F4E`W7a=bi78EZeehzyt@J;3PW^3bJE8{KPQ^EL$>GkR>6>V8BE^I_F3_ z=;)lo+2`otka)LsTPCHcr)6?!N>kdpt!fKfO}Q;Mr5QJ2T9PsuH=!BYdUBa5cZO+c z%1xOm5GT36|5|&Whb)t{oqMlf`@g<#y?=z-pK&VPrH_;0Lv^H>e# zdgb2s}2Wx~+)&{fSi~ofiWbcJORTHdw zpZw>7-4;&;Pg$G|Ubi?Oye6dHt3Bb`;AtWGy(pYN6FmO`kaBf@Q2r*UyWvgSjyHhy zwC5gB`R}th7fcHYH!D1IeK6k$K52s09|CFTtwP#mOn9~~*l{B`w|y~C3-dpEY1hd38~);;G-`Y^SbC$ z*9V7h0T~}Bgv2+u3eN;{LijIO`czPV8#MWK2uWv9Ncj#~oDB+~nX3)khVD0p^d;N9W)gF^U1wf7OxXO{)%x*h#B zQ2ytID$%?v!KHLv5@k9&C<+IQ1feLufo>_&w!#| z5Uu%iCpcFVZ0whRZIC+%lFlcEr1OZSPX%8J`R9daDCgZE@pc??;irX+zo+hT=|2yu zd@tWC|1-gn`&_uRkbHOD4N?x)gwa2+iSv8%;O30Y(wy|ocPESi*v!Q z2Sv|Y)cDDXCjE=P#EA8-nzY z3+sc|g{K*JKOtni9S2GGR-xKg_+(wM`X?QIt&nuz7t$W6_J1hkp9BwGFy>kCFu3}s zT==cv700g&#zOj`pLX;-sCoRNko+vNPIwPH`PdE4&n*w07b3s9|CN)A0XTnVMX>5q zAme(Ukn#SIrA=@u9t6fp-F$_I*Q0_>=z{q&=7YJV<&QL5<5D zA>AXSKiB?(c=JoH-FAa2hsC)M1kZ`a-+LT9eP!^Xko@X@+3}we(w|MAlYeb+TuAsggmX)S z!C!Iwr-h{Zj1d0|!n0QfCw|q@^FsRPMT_&n@n3WFXDyxzz6eUrUa&OsDk~pi*v!?Zz^0(@B*muQ~z5o{A!EH zkC5&V(*G~d3Qe&4lnb{@2>r>^jy@_pTNkW+QuL|daf|c8NukCED1G5oQ2o8;jEmO> ziar9GS>9R*`M(+RzaG+cX9-U`ZWU5ri^zqGqG|Ud^C0xoLi%Ux?+ELHSA?@y2S+{+ z67OM9^5AK(@S-tq{O+5_ror_8jz8r*F2w)5knnB4=gPMq6n!M5r$hRL@XU?DGyeyO z-a7pSg*z2&`~#47?-LTQUr74%A$?v*KIR$cUn|6ajZpI{@U+Dlqd15 z=-J@0KXLp=EuuGl#nCy7vqA2wj!p}y_YHq4dN$Z7L@t~MHJ)D;&3Kyqn*8S-YTxl^ z;+xU5;6{+XjeJdSAtqs$Myh*5>4K2{pH74H z?~6k8z-O``{rZ}aaD5MoZ-Q_XF-z0=S5z>!^^y;JHF9{wMo?RO}e+;A?D+9*Y3&xx~ z{?@T0VAD^&bu0m%0F}>qQ2f51f=2E<463|sKkee1Pl4#Cv!524;HeYBwZZGZ;KDuj zDDhrxdfGH-4;2a?~g5dY_dtp98N$kA(sq?h=T zo7c18!{qyHNT2&M{6}g?vGu(Re$2bT>v${*F5Lw zU7*T8D)*y3z(QiwcT`JX`gp+iVH`-HUj7rrH2 z9jyHu=bsa*KSKIxOP>l}3i+G=R{pcW$AqN!nx*H1H-yxC`>W1>+Twh0LP)rCA^p6N zc6%$NSN@#~f2+m0;HZ%B&s%yv_?D3H=G!h@A2`R$^4+gNgRj3X{;6Q?|8V>l{!#RN zAe_bj!VjRS=gOMz9yGo_dewO2Ze+Wnnce9iS;1!;_(kVdh13IxpPuTJDnF2E@&3c2hW1fo|oMP znsOYz<-5nuL3?*XQ@^!?suyw#lz;s}#XA$+aF>vJTAU5O5YjIQ=iVEn?*^&o6GF*_ zLm=sm-3yZc;roQAg4czlyW=p(dbH|eLi9KAH1^u9LkfpJC`3;m3+ZVg`q=6t@<(40 z(heOl@sWc<_FIQX9Q}fj_45T^*bp501W5k7J}Dag;Zq>)juGY&%j>N74}T1dP(A?@{=rLjw&l|SP`NIL80g>%6J7UzSJkUk+i zdu#COITvpAAA#h5LMS`Smq5~eSP0*IS^Ng%BZwZ<_8iFg=@ugI>b?RJ{stlW_FJ3{ zj)(lOh5R>!#9Q}O7jCD;*&qQXzGlq%zlKkL%>B)Gj~#)29+Z54>~BHpwdU3D9vg(8 zTYi!9peG6m|HzdfcBa0oE*{%0e{gFX{sp05vH z2UYG9?-tGmvliL^Tf~n29{7x-*Mv&%`isYE*}psvY8<>QB>o#A?X88To*hE?yM>I4 zC*Cilo!5cHds+ycYZTT64>W;<&k6CL3+ZQt)USJk{Lch0eAtES+jtTAF8gvAUWi`5 zrcJmqIKD+#7p%GoBwo`Fkoo_tkp6mANWDJ!5s>nJTS)zn>;%yhE(i(tz|A1#eC-zb z&joF_I(|V2|NL#@V?W;wo_C z|BR4wraK+~3qsO+Sx7tXxE*AiKDr;Iot_1y2bnHM?+{Y1M?VUZ?s*~kZoLDXdw=jE zxa)cJ_-<&*W%0BZJRj1}39%2HI{-epE_kTNg`2i`D)_d=*&yBP_zq78&s+LbVD5DM z4+)t+X-m%qpAk}?FNFTj3+dN${ovWUpkok3-dzyVo<|OXw9|PZ<$TfNDda6Q_3022 zE^To(csQiL7SgW^33tQY3O5_vYH==jD5Nh4@ozaK|M}o!7EcAog_QGzrP&XL{MLgLjGLE8J_NzrG5N2fsIKP6<|9-0Bk=LsR@eOXAorjI&$-r{`ll#ph<)#cIgomqC*@xkc)utAH9^PkgOu|z zA^VMozW|cX8$#ya$>%`i*2b@Z?9ax8lFBPGku`qUl5XS`p-euzY`W2{~`UVka`wg1UUzL{x3ka*I$CPqxly2gX zLfUQquR+@5oRDzGUv~7PLiEU${}+fH-6}lu?%-7+?fO53l;h-o1(~PE|C^&v3F%+& z6_9ijLiLA`_S^k;j$Zw3;e7BRi>HDe-*NPAi>HD|gv{^5{{S){9v4CfuY;s>{(oLP z_QZ3>yb3D6SN;(szg2I5lU#>u`P}z~bHO=K_NCV>Js;Hnz|lK|ly??Xx-SYT*Td#}wj3`B;WyQQ z$cGn%_$O+e|FjVL6(RP`x;hYj=me;A%~ELMw}GOc26+jb(S+MtANmW)*Q@|ZXSI-cYb|ol3@YC1q5qMF?;SIz)&(oCAl#`B z1W$l9;Odp4-yckaYOh&P_P-ZGy6zoH_f)X*N|)XRQ1nYzfs}9KDo}dJ)xu@LypVFd zA*5VQ@BH4ev;ChBcD(O<#~%G-V+O&;!1?tq+?$bR(5M?vJ|UkaI5uUh0hFQnV<5Pv=x2Cdz? z8yb1KLkNGj#o6F4i*vzeh4jnGkpJodXwrYQ2h{lKRlL)|ev9+Lsy=AOSBH@F&IzgS zbN!A#KL8@v_YZ=MmqWs{)bB2k@$kysAmv_lkL&koQ2CGD>-et;)t~o$@0j;2_7YI- zHhEb7>|^ei|FYouAxD4oh@)Q^cJw>rqHBYVN$||o!Q2Q)f4?N8KfO_qcFze(@3TVc z+dT%7&m%(SQGH5$=BbeMEcTode{0%@PaLehCjNID(Uj(AAmN?>SAUs(b|60XyB`-`8=U_M zVMFlpPYJ2Vr$Ex17t$ZkKO%lz(DZZ8|Iwcpt_m(b?&ekfFFXGuzXFo)^b;Wcast%6 zdt5a9$A3-X>Vu2F3sU}7Pl2?@V?xSv{P!Jw9-RIX`r;Qv&jmftIsRcG@gDy7Amust zHQ}n@@jsJ4=PzFuy)0Pug7ZJ}P4VY~!UfUnXa5=`{u@I0=~u+B3!eS&LK7VNJMhd^ zf%o^$zgtN7X-m%sPgvx<&?0)_Yl>GN1m973^bCuqf*v@eelUu!RjB#pZg!? z`ylq)8jy0F6fz%o*MijNh>-Y?fNTGV`${XIkxO0!Nccdgad3tBOM;6QvD2<}^a~al zU++-3WxNi=g%ohduz!IC)mcczZRZuU#jab8;d6 zvqH-A>IXr_QFkMFhV$ePec#>>dGtnT%DuY@MEq-xy54=Lc?{c;IcDgI&AelkRgu+IRj|VO{Xh z?jP8B`3$J`xzG;M&d+uVYl0{CgVbkENci9m(Px4S-5}*!b3pW5a7YOKaF1y2c?wBq zH6OZUI^)zh15IvMTKLX z7XEfE_Zmdc22H=@_`5A~9tEDwe?EBTamN>)zHLWv=$9Rxw#a@Yq{lu-J&xA}4}(ho zLP(om`N6TdcYHoL2WlM7{<`yj8hn!T*tNgq>ha919h&aL+0lk{}u3& zKj0UW!4qKJleAZekAcu76VDdYiOh`! zZzPpTc=)yYGkzgC(OUHLtqQ=CC@csT%XnRT4|*+$nBt|AW~eb?(y3v>7UL~`wj4a0 zOJ=+ZpPkAgt%xR(94?NUv21o6PHH%A8vUK#L@b@o#tGylGqK@xGGRtyWRUO*SNpb#(4Ic>B|=@b@sIH>F%sd+E%5-mAfjs z^B}rvc+l2M^|5W^kHzv-j|Rxc@-tN2woodQDx_lR)X}7&Uz}q!S%}I*?Z<~wnUSm+ z$tRPSa>HT|$KvCKd@P5R^fFm`FI%MBQyDTgaohGbNuv~O1~#c& z!7{S(5Qd7rI%mjN0Vk4#NsVSqF6*bJhf1VnCKE$0)qK)ns*udniBUp{luaoj!^X=^ zy1*f*+=;Y5GtsoJ(OJkeXnY zEMVr7e#8rdWJeOQnTTiO6f?=`9A#jP_^Hv6bZpe4Rf8f}!pDN6>gw0|`=+o&~p^y)Uc_jIwB$^t1W&r8f=o+`a?_h|rt89HPZfdPSb0A-58go1Hn#gkow+u&7*O zc!e>dN6paUH5JIt<^sErM?f>(t^Br=*Ho28EN?94doeevy{Q!C3X9ixv`FGCF-j<# z_0qBYXwnw?(xNecn$|P27b|kp`kQ~03N@`q4zl#c5-p~>S!0PsS~Z_#q=#eG4tYDW zM_QB9$r67!m1*_IN=s@;BF-8UJH43C)X^$rdomJgp{GRN;sNXwF6LuQk_iKNNOLbc z;yBsF7wKU#F_ZcEHA3@wG&s2?s_k}ba3 z^H5{rAtXSjEp_X7GM`DN$&d0dWRnv^jYZRn zLK8E^#^O*4N=Oq5VvtOk_?XsU*Yu;wJj&9c&LMu1G_%#02GJZ5kS$ z8j8i;+9S7Lh#^P)L_C&H4CSX>+@aJ&Y!s<$(^sT?Y|6wE!zPu<6D{?KG9k<6m< zWsFTD;ZiSzS;eyxs;`qn$)RLAIiUqL5lc>FDac6NB!-LVN!h7fEMwxx?5GgARNOb3 z;OK7?iHx5&!>mh8)B+2TD<`6Yn4?rTO?5RY)b0$D*r=IG4o{|%Q$t5*MziPxNk3^4 zWAR)RHE+iJ3Ho3xg|0V5-KMhnaZ~h%!&+sBhfS^roZJM1J_6ykz%I{<@6J^X|O5{`~PIqPs3?4K$tCR(AY-o^WsniI)S%f{Fq$*jKZQDj>qL4EhjXe2W+++)}p<>RJF*&T{TsV!ssnke{ z>PU4R$|uwLtm_Ly8SIb`hkiKn_gN*AH6`C_Cy-knZfx{#^w2ylO72ULNmS8E2^N&( zNNU=8n$}kS@4CIGw;!q0I*6DX=__n0w0+p(md%dd zvKe|RPMHg)I3ygL$q_=@Sy!ge=TxGZyQEyfWl`FL=AEC3Jd9}{*xS`*4i4^X-eDT| zd5wdJQyivo&@^`KY&@{DalmWLnf3#w?|>OVuSS(SkhL&~{1th3GLdnv!LefAvi9Xu z@)?K~ih1iOW)#a1MZsAwi-s@?U_Q#Gha#DM$>F?p9Ejyn_u6y$RN5RMm5-t>@=tok zv=>K2YNd?&Fy=8d+r*ti^=VsgAn_MSgFkZ-hsjP?ymNM&H?k$&S=9Z zZ`0i|)ZTk=aEQ%be|!HuE^fr^>+kIDZSSyw4t6jK@vwW&l4FRteFvS#Jw5FQy7ms; z-PwMJ{1>L!+uwD2S5GN}inROsd-rv*y(H4W{@%NX+7BMOOT@u}&LQPLw1=V__PFic zEcxwSJ#yPhhFjmg`#bmEF=Qf2^$Ok0pS_)?r)$9F+tWQ@bjc zfgU{2r$!sRSN|sSdDKt4V?o!1TT z!rP_3yvLtF8hUr55GR>;1-I`(2cLqY9jD|)d52eF8(1t}Wh90m!uFq@Sw+0PEpF=X zHOUP95K?`;16_w$r}93U+%4-K&}JBM-n?m@8B4};CX>HqU1MUMBxBZU!p&BVHPXb& zys;w7c$s9e_RFNnxHJu-M5$;k_nQmI=d{^{RebvPD23Mvx;&8_zGs*`Q$h@fd69 zi427-k}vX+9>K=PAi2r3h>&A{>~>_To9Sxpb)_lAVCS2P+tkoa(H4Buo*ykr*+CHb z1-HY|Q*dM6K}Ya>)|13|lrq-nJK} z?5;fyw>m@v%I%-=jow9$VNard862R09=Q(KF+VCMU6+ zMHTfDd34;oO%`i~b|7}%?j7jze0BwK)R|;O3q{2UbBo4aavDuc#f%u?UR70&rdnqh zhCXFx(+M%zST2bnb-%>)(ZOG8&;)`+Gk>OOV=wyk9Z8BQ{| zeQi4k)}80;uW7!G#;U>#EH4SPayBNex$JQ4kwHn7r#P4y)CSRR%?hh> zM{4mNM)GMJs@bQ?M`93Rs$sxT#-d^S#u>I^B$iA_xZBN!bVk|9Lj#TUiWtVV(h5)= zsD;opi9I1u=CKxSF-pNryK4}of-y^zP@y#4t;DO!5<95MrlMitiEHdsWfsa+H19~P z$qYm8v`I$7Zt;bRRIJPyPHI#Y*qqP?19ntO9nM9)UlN4cMft{AnI)6M^;4~$%{2SS zC1!62NwImcD{HvUki6SjnFFC*DT%exc$q>p&=d$6Yh?=)D|y>)DT%x)wqMNUvaam5 z1TGOpDEm||_9ecZG>9r+2_OR#xonD!Z7KPY*hGpgLUmg0ZVAU|cB!X!A-PaWF^lY4 z@5R#EiOi^fX~C!`F?^tt*rsvzv1n25aWhzxG{FwXRM5o?DKT2Lf<){Do5vi36dSG1 z3$)S?C*v_$QIXzGq7Gz73R5v;qUBeGjSW+EOva_iHioT7((c$;`$t9)w!U3P%gfH- zCGDmXM|BNL!+=^moSL*8CLG+7AYN>QRS4tl!d_vt77MmPO5>4jI^v2Ej=?hS=7*nS zO{0y=^^pdc(6Us?Bqj}%F#EG;U!{g-i6vZ86LJiX3KcP`7F|g9j?zYcg)bXXb#BRL z0BM`_dJuG0pFp}K=rCqhxH3ts`0gB$`OgX<@pq`Rr|XclPGGRM(*S)(tAq3KQSNhN z7)&ac{w^t1(i1A9gu<J*3aGErpKQD^l|W$5t)hX}M0 z;@PGzWrsz`4)y(rXH1_ZF=p;8rV1rlr`1g@%gEPY!w8}wO=A1fS;P=h#m;Km0QTh7 z+>x@2;hrLe)_xL8!>Dv7C$vUlELx_Wt)`P9c?ByRZ*MKgrt+} zjF^CZ*(pMfproOTn7c7RGf1p)B3f+@a-x8KpnhT|Bsg@X0-`v}^i!JR0|hs=o80bY zeZ9zs?s_3_8qh# zS(n%qm4}X9RBa^|c+hWbBwWi$^Qqhp4RqbU|6rd1x_Sl$cOJxaA+oz$fK9;qw(se; z>^%nu#NOA}DYzpHb#S16ljwoY+wT%WZx;4-xp3{>{TRMTt<&Ma;2rzAZF+n6cX!AK z!-Ay;277IOg9C#O2eDu%=3wtZ;lcjf1&3$^i~9!d72bu(#w9KLh&Xq5_3Yg*M^~@@ z?Yp~QFmTU+vktkP1|}lAHEfONFxBIh4T(`-$!}%vfo5X}(pYTdGQxyuj=N26^?50K zTTKWFC=_K092Q}E*&b!V6e0@C!cXHb$MnzEU=sdBrsEY zyS(v(u=W&32G}Rv7&ae97u}g@mC=$zChK;is(e1mcxZ{|a!7N;kJ8w(`O@rC*~yBW zy0Vj1x!9NcVi*tNnL<8oTq^b~f@1^4#<+|==F+qZh;eC6 zyP#1fQ5J{qn>LMYoB3xGMxw^V{bt3A6=t{o@o4l$-+0DrY7iGzW4dU(^`^1N!C%oU zgIpq;Jk#I;COos=Fb3PUPRj$Ulh-6aq&q!6yL#ElZZQ8tL>$dGT?f6Lhp1mEN`)=Rg_0c=J5A^i*-Pu1dc<`=U$^l}- zakfCCW2pzm(-WC&?!mlYC{CKt67F^N4PbWdyvG}5rJ9Oi4%d#|)?kHcQn^b(`}>_I zSY>QF{6T^>`YUc$u^VV1+R`&OduE+!Sa;YQHlAnTCXi8)avN&Fx)dOt$r>%}+$(A2 zgKYe=_JUEk8cJ8P;ZSC>Y3>7Q-3#qO_I`=o0mM>6?o_yky+wsKVCRJP_lu;WIE!fI zY&&EOLpjxewkmS8Fry5Gdbf_ev+3z0QoUIF5ec^N2nn5TCN|1Qs2Y#! zJi?Uxs~RDyk+wCqTPSJdcA~1(Tm#OM=%imhi77*SUMg#4_#zF35dec+zuFReOj#5n z1jC_Gwl;>ke96LAWjr;-M9vgA2K5@=vEpMlt}~d~)i}C~#elH?M?+a-x@bOTq~Q9t zh5X9kcBRuzKAmZ+{e1Jm2IDby{1%2535z*Av!O+KWPIkj?i`>g+Ll6Sx(wHC^f;k) z`miJ^VgZTdmPWTlY~_@bu9%+TjQ7Lkgl!jTs%l17v&)n!S5d2CwGUIZrSyL))2z@f zv3xFO8mC+M-=uQeL%J9>f8Oh~2NZ2yQzq+_OD(r{Xt+Jae(LQ;KL?}Zx<(kPh*2mF zpkzK&Oy6dBs)k%vFb(Cr83FKq%Bo6j5-XC=T+<2{%+ zUMyz3LY&`KPw?Qr?KXJ0;|T)l&I%p9F>;{Np_}d9-`+c5_Va(|Kv!>vY45p*%Jg)a z{(*Kqp2Vd+h&a%(O`Di8)3G1B=?E51Z$Ag-*kVivVLP zbRO#K>hJ9B=_YNYNr~Ur-*uPTs}$194i{q9f;E!QPI#OYn!YO(^F~&w#PB!wocZ zpo0sLDQv10cAKVzjMetYXuUbG&jmolV?#(VHmkh%a?IGtxj!Z#%8VUY<8q+4-O!^L zRj@&DErE?I=X2)39-Gu~cG?`c-KFXdyP{xm8Ds^Tf%NbIo*i;z11JuAX3|U>CFnuazE+15WMcK%FP-{kgEcAVi_>1vnb9xBY`&w@@=Ii<1f*@Tg`e7dmS zbTYyslNnRCbTF_mTu;{lr497=cIfmX#u=8kFw{W*U3TqccySxi8L~|K;DL7i6BY83 zSUv4(piC@R$eTM3sa>>LbyoeoowRP{w5hDF*QBeh+SY5|pI&b|>@b!c6B(-Aei~ba zJFn7c;WjtNmjx5cr4a}wK@m~2@Ug}K`g&ksAG^tc{g`~PCFh;u8mVNoG`g8oMbqD} z?##2F!0-c;KIdu!HwM(NfDP2Ke=m)jn4#S-7A*ve=(gf#4U)xrGoB~ zs6hGS<`-e?F-eu|QMh(DSvjr3m{R3?u)oLap#_;C?IjU(2SX$})G?K!wtc&s5AEUf zOK8wD_j>NYUc|*_jz(*_lAdu z$}|%7)N>N~-8(3KfMt>5WNaUsJ?$MDNA@fxT1>^%FcVWF4RWxHMMboB*OqY)cAi20 zVU@>!Z+H8^fU*C=ke*>;F&*KCa%DZ&vXYbBv&*L@@?|DDqC&8=aRG`+JVGC{PR(Sw z>ZV(S+-Jg?DBt9!l4~bV$mD!1g zkQv2hJgh6Q6t$(Lv!|n_MNap!Q<#5dV%+9{AyCS4^r-P&Ltt3oI(tM_gk`7OmP&;O=JM*=72^(EWYSia-udJCvD0(M=9>=Nu_U%a@0c9y z^zUa^yxvW?u>6V9^|sJWa)hO}ZnDZGr@W5aJr|N1(_(79a2$#u1xjLWQacU#l}l&m zuqR>7)t<0r;e}0HI-ju}=JrOK(rqr9JEe7g8j_cb=t7qoFKn0wv#(>Qi-mDej=kOe z0#PGa0ce`&q)}Hm8A7|fHs=#|6%*IKbjGG{#CBfTYpNm%#JM+*Y~zxNK$lZ2nVX^c zbX^%H0^WKuFbtYb+Hi6l{kwfDiv|4|p~=}iM3ytNIqI-pSJ5eEiME|U@%%zAPL4pP z0(pfDCCr|C*@4EbcYEBd-4PP9*&f%s+7mU8hP)H)jLR6h$K$zy`orRkA+XDFF3F}M z_1sKl$R8>7G(}R$(ymf@-jaE{I+Zii8#r&DTV+_=a(T7f+oirpi>YHPv$%=(@L49c>g)YL&*0 z7&@uYT?pQt<1H3WaJY-XC6tkb)*~Cb+@+;zvmTe+Ve2`;VpF`;8&G!KDn4WrP*CK7 z^i^s1=@H51yv)O;d}X}FRyLCG-IdGkd$@($-_M$Fnww4Y-5xiVQO8(Ky4ZxEYjGDc z)??auMZ>CIGX^tBOq+JUg=_1=h~zDZ81``~an_>+&832uH&f=mox674e?M@mU~wz> z-G}bEcX9Lg)bz~JvPJ8k72PbaU(s;I%6HV%E~#6(?8>WFUH#5$R=?}o>(;#cJ=d>& z@B7|=tinkD&&r@&z7MSX;0=u*y0K~fh7WISZfV_l^R8QNy>0h>hwuN`(2E4GKV#*$l-ZiM3&IOq?n&q``pWQAsk8rEO>}4~_sOH_C zB-=&V%*l|=8+)-%3^SW}HuG%Z*=l;Y5I=BF4@KEy_O^o@93R|cItTV*oY`vj4FFrr z?Sjo%2?0*}2MmUVbc~C+=!ngF|I9q7dlhBUU4U%Xt{6L1n)?IJjhP|Ny(W>QC5w4%`7D{dM$KBr z%43o$1gfSEra8>h(FWEC>%!*GC2-6vt|Z(IiKW9*aW@9VHDBS2w!n?BsL@nv8iaRx zn^{t9&3&Thlg(VNvlqzhAg~423dk;$n`N%xu2~iYkEinS;>1WgIc>_$X1&$Hn(q`g zZr#zy*{Nnbkg$wRCZhnh0LnS+1-5?anNm?o1I|Wt*}K5bT^+i>^^c_KU_keG-acfH ztmWw89f?7V(fQ=4ZtwA`r_(bf?io((ITeaMEw4f#PMyV#z(qz7TWl5pdw<)8>fGDg z-7TYX6psGDI3gW6l<{FO?Uc)bxGjjy2J?>HtGOTy_jbZy&~Z0FO3m&y9bWH(Fe@lp zDH(+*UAYP`=(>QstHM+cJJ3g?_3mG9Rm|ZS$GdSRsH)hBWva7>SKq>co^+@5)nSwr zJAd`aBHpyp9$A{AM#?1%&bDb)ye958*o^wydv0H>`tDY;4Z@2j z%Xih#h?xNh7_518vE8z0S&na|71)Vca~h^oE*K&MF(Dfa;-;}NyaLNn=@hyr2F~^j zR}6V$uSu48>?%6U-+900lSQc>C>jlw$7P(58C?{Bum4Kd1*DNwkPB}a=z@WwX}?~I zgW9RPMd8g^SzJrHbW`()^=y_U6ZJZqUvF;XSg4ULf6ErMB>riX9c44NlARU*dX3Fn zRpPe~#JQNKirF(qtHRi?Oyr9?^4xe}Ys;pVwv7iiwY6+(X?vT6`|=u1SugN*ez>`1 z$aL#;)9&M(L3D!G=%f;&3^q6Os)BbEb1-L8y2+Jetuywr5EmU<8)tM_&-DU5_cS+7 zG-DQPY}>*=diL{*plN&{bn&vFX-qaZ4mZ z;k_O)n%g2TnzrP14{vB`jb0zOY(?u9NT{7z$Tekb_7-^Ly z*E=T?{`SsKIjo&Sgo~!Xdn>@o8}0^CG<}`HuL!S;C@$$Jic8UME=omcJc=2nD*x~r z1l@cz;kKSGo*GTXt_WUkAQz;neM*ViP*JV;G)P4mnLe^slvlip%%hty1i0`1w-2IA zbFI$a(W;lar>d?*#q@5;kRKaKww9ekgtIrIFrI`a*66(hI=YxCT>?kt8O`ugKCdL$ z_oOPlbOC1P<^JLA{8+vf15s-csl`<&>~+!hXrE5QnL_lZ#HOcr+cxO)HX4U!gnOmj z1lMj7t6wpLgwZ8gM;m=$D37h!j3l!o6~0igbibgIX)mxcG?L>OM=W5n&`?2GMJSHG zc|ZsYqFEno2#4Z?yIuLjt$(~CA8wJt)W6kC@_^}AFn!iK3OW@fH{}>MRsB;A3gt91 zZoJ27EB)8NZ7*`F&IpPC?mG^sp#^rmA?SDshLRDJ2Iey%aSxRfN*}pVCzj(=r*_ z`vf;`xX~OO+`C|jvCB~O4<@dL%8x;Cn#*^PBJrki;#GVqLcS79EUnF~t^;;aloih@ z5lr_5fh&_{m8|%T*21LaYm+WzZbf26dZiFv;|9(oHX!#ed5}gMF83@JUc4xLrCU<1 z+zj?CqOxkXD$&c`95}MsDCsw)@|T3nVE2HnS@_mBq&LcDBVm463LH#YmBPC;1-oTp zAlc(j-XK&@EXG?rCtokC>AipJK$UQp#6$ILL9t4KX@(g0^~-wPq5&DhrBoT=8@-P= zCO)yAS0fNWmya9yAd@(>jVMOif;=LhOItazM)@p%_FWXahqn#?!_p|VGnc9d*(&vP zmTgE9Iby*ZX5)+RnBi+oHdsQYRpy002?Mszg#!Dt`@& z1Y>&GopL!$_yst`0msBjn{S9k@6(%PF3aBBjWz_5u3vCFQZJjjW?_Qx`h>P8oSJWK z+1k?9+}1ogvT5X|?OV3pv}MzlwrwPyh-36( z%+L$mx#S(-h^TbuIG@yYe-s0ZK4a|FWJTrf1!fvsj-l*uIyITfV$(r&;Bz;zqcf;I z3|jZnzP^DrVt7}RX=w{P#2_Dy>r@=Y0(UW^FC!T~2g6rOtPzBr?I;JW2{RqO_wU{h zOZa?-XVmpR<(Sp zU6b-fr)gI#6fr)&;@n|nZE?fzc{rB6S*Y07%g3t5(Pu=GA@{?$CTcxL6GfCW>qI$= zxcZ7=ln3S`<5m)i@1`9#7wqqLun)PfM9S>#zKWPoMKT2<*)3Q_`7`$037IhmX*5Gx zjekvMESxtEF(tA$=VM4nHD+Eh<347%NDXb-T@6aLqMBia83cAPaKk5Nw@?(@-VCDu zC5LHdcj3@rSk#(MpG8e-`^@mECiNi$Br(bBzOGC8%#b>t;Uqsh`E89{g`%oZcx%~1 zXVE^6iZDacjHHYmtw|iV0SISNq0}H?ltfo(#|dw|Ng$MUGJRdLyctqcv#nqwRJsBE zHnHe@-UgO-RGwHPm?)ErNCh;fNb1K5$eVE;KD*{>aeW(pqs(11abtkD87jn_lR_lq zgsM#-Urd%ts%hxHO=4WoND^sU^%e`w*^y>znqqfb3TaDTokT8{s?K! z=UzEiJLu@jZrq1@6~0(-nb03^Sg|hZcZ>udmwjQ#+kk zQCCXmZdtf!@Nx@=Nfxy7LSjuH+J$Wlmpo4EWS&$|>#_mJuARM;{eqyD@`fm|U4|4^ zj#64-_T}YCAxcy!n7C^AY}_tf@WZNw@hkkCS1H?YiL(jV)vlCg7**om)rPelCrK+ zLY~4qU#ajeFzc9I6>a?@LQ#(L3KB1i*f$)Td%dO0V5?1IxPBm(&W-7HRj;&>)T5+I#=q@Ga=mqUp z5lf})rMY#U&{1Szr_l0X{d_AEbbW=jBc=H3$2uowd7)Pt;d46b}v&xDQJ%+V|=*1q-W}-xPZu*e} zV>xkImW696zk^)OKn1VJ%LcN?eYQ+?JCGFggvAU2(v;FBS40ybN%Q6^BXvDrHX)#Yn8x}3xAX{&{SC0I}Aw1-LwiQ>+thG) zkNa)){3z1!j3O|xDFTI1KBcNxmB4M;T`230%3c+Ujjr3$yMPhtl60ATLcNXm{T1!v zHrOga#yX?4#SsIVh6!^LBWe55au zicC6=iL8q(hiVtzu?QuaBchx_zbKE8bg7s8TxBiUVD^UJzIDm*rm4Lo6naMO(c*?8 zMJZ3z(%v8QlRA#eUVK{31!*{73C~5d8)fYr2o}wTb&bU^s0(vnWAT0)f*rK$lyLO7 zwUkU+L}$Xd0a+F`_Ul@R+mKJmk&O$I2zL^dTM336+{kRCEshR``3fAjm`I~E;!4G+ zT3b|=%Plut&5JsxVhOOzjS8nl=52%6rDb6SN=m=Wd689T!5TyL6enDC7E3d-5H83n zXA8Zs1w;Gcg0LlX;sUbD@y~Ip}|r?OG1M9vSw z1qdq{60TArN>*XoPVKPMg{b--{8*sG7TPjF5cjwXVeto z#FfFDRzaFs|9@fOWjVim*{$zoithXtFS+xpF1UEE+;S~eY_;=c8{K}+d9he;7b#k3 zs=8K$jdV#*hAXQb#|xIVXdU_yQ;JqV*Jlx>!OZN|yH(LbwjjOBlq)CFkes4^NG@(=~g|oDqlTwDYqM`K3RoO#U^X5E6 zbu2}775<@9(*+ApZOR0PGaS^8^65_=kI(X?ouB8YmdK7ti^?Ul;+}7HuMc!eBr_n#Vt+g%jE1%*DmL&6JpNX zF5?}Z!7c8qa_MBw4p@#j+`tWok%p~ZVI#Jy;zD*QTO|q?}tqqO=9q8XpT#jv%4BTQ@oy$nWvY=FetqLwj z^ES>o7Fn@ECRZl^7pCoI|NY?((e3?0Ik0eD`d=dl=>1Csw%vhho-97%OWunQ`I2`u z0v3+UD8S-_?{XdcqqlM>LCafSgy_P>@n6_@6f#WylEw@9mv6p`0E;(ZMS#mSVL3>- zBnu{S+2fKqqS?aE-r0KmOJ3coV7$#cX>Eu2ES|Z$y}zfc=k}c*-{9cYBR)`VFBkEq zi>{ur3A5ij(icUALhR> zd=yV{mo8hj{9hXXho!$TzbIejy=?jNdVWpyfUfyt9OS%s;b$G~eO9%iUcRA0?W-VM zJFom(RZ091w|?r@*nbuTth`~3!3F~;S9-$lEGcL+&xd*1csB8D=Gnrtm1i5zcAlGf zcJO?Jr-f&l=MYblr;{hg)5p`qvz{lz)58n z{uEzvh5Az(@>3f6Q+o1Kdiqn|@-OnF!)HCHzeb+8bs4_b;r_&%;A!QNTTLIiRWALB zuXa(JL|r4^LRxiDJ4R_n?#ehyN9`K%m>~8~arX1<6{Pr~LCG_)}l2E)gC1M}496)VJzm{YA9utUtw<|ELK5)JDoLYM)-*8Uq@8`qS9S z@=S{0uY*V7qj6GMex)0gH7ZYKeN^Vf!bEkDztSD!(O+dY#ShpVC*~RMtPrPie?6YPZU~7y4C}L+!cHzp`9W|11`+ zvb-wiVqq%lurQy>`ludCV_}#^c&eAjBe(i4a;xnkx5^T^@4>CVb{@5Z{`z<#_m7(9 z+sPD<^pwuMJdr!fw;7&fg#KzBl-!lHm^BrT{6q`O@70+f{1g97jr|A!Ujzsv>caq6 zUUm6YewhE|WBz~QV@zPoRkVo~<12)9hEIm_M?+b;PNUUB20Y7ocJnOb@pzWa zpS9%*pFU`-TO3iW%b`ZIIkuR#rjZlH`lsfpI;l_B@~GgdgZek>XPi}k%lIJhL~+{G z6ii(*K9)7hOOB#h&INk?D6CmgsIB7zRO5Ae*{#eiR&bX|wdFOWD+)DB(RK6wa(;2r zzE%5<0trQK66Gg+Y{;v~>A`FvVXh{MKDLltGU4aUI}64kLHX1pCfkg;rck?#jw9YO z_wz_)pW*_a`jJAe+1{33O+panT|yFmSFxrJOf2!aY=13Gi$$}HcjhRQxsLMq`k~Ty z7i#MC;m|r;{Ki7f3LMgvllhQUtY9t4r*r1UVog0G-Ts$S?dnM?kg3)Lhgbzj&r+lUi6i?kMH{z!pN zvdJ`a4ZOXYBIYo^-pc!Ddx;r2BQBq(jJP<9rmmn?>%@ChpReHO%J7byWS4&+X$}-> zmeFSU2mEDR8R3JNrkBQJ zQ6G!vn=}0CiWy`0CHV5iL zB**wI*(tw{?`q|ii2HG-i$z97ZYrTU`D2WV$jMaYfU4Q&cYJ@EDkO6hu*{(rmeW8} z@}{1z=KNO-?n<&~u87FQ=!E$cf~1PB@b~?U`I!oTOBc;jUh$!=e~$i@Dd zIrF>pkwsEti_ed+@g10dOKHmlvzO1Qm@g61A_LTy^#2np`sAP|V})i$Sk8Qfpp`Zklx z)jXrVwT_}$$rpYY8T?!rt3=Ho78WvSp>e&UGnJ@0PYadYN{e^)YW|zjvJT3T@?+x@ zxtiB0N8}`2zToF-HxSM_7;%{g{aPfmL*`2+$GoEkv2^Wlq2|iOgFY|Q4L!&Q+IX+4 z%D1@Cx8BAbEv9PYg_@ONOnr4HQQ=cu;4?Nsew?M%CJHsH!Z`L85UR%o|8J|chap8^sYWeJYKsDm;Ii2 zZ9Qs_`?9!$#8T-hiQ0Ft6v(CFmCP^Ik1}R!uawr2oI)u|F6ZsuJU{PQ`%VhLAaBqM z6z)gXYOi4qqHqNKY z*8uM)(73C#hu?UfYQG~f7SBy?Z;q!^NX^=H1+$P-EOA^-YCl*G6LAVqR+yrotEHSs@2c0-9j0CIU}0I%hC;e z{U`jX-P$|ItCFN!G++JNhnRk$i~M;NGG6<0}}>E+`pOa2pSidyn5qB&K>U-D9=n&6br4FLhri^n2^G5F>C+s3-41x6i$TDuk{wCZb<)3)Q^iEjOw^$< zMlMFSK1eW`%ha8sJSDe;?gYPpI*KsN&(zVR)ii01$BxEgbzdZ{&_%BN#Jyki>;8gV zBPR{PFR~VW-Um!B-Cw9_C{cc;2Q#DWQ9r@=%pT1WG65R5hy zU37dT*Z5L|UKL4gqE)szlUw>fs7)1(zxs*G0i2)s%O)r#pKRr=Kz^vtulAyx6<&U< zdBPuU*4nfT?eL1wi~Ht>8YR)Z0XG- z%YFk9klu{WX9+}>h-I#n%U6?D3kTwn9Rf~mA)i>uSuJ{Sn*E$p~fqWXi;&0eH;T%c~ zmpH7Gj0c#+>9{2OX*n5w=!#~uf^*swC2b~4lL672NPF)pBy5mWMYcX z7q0pkS+KcDTzz%PK@5g2SJkh67cnBI#Pzmj{fu#b=4wV?B}M5{vFWQ3Y7W&;h0Hq# z)K5Y;+c1t;@%S}gC^_))Q@LxNB}I#jACNEG``7$C z#!tyjxL7v58u{&zoTn#pxp1XkjSBdV2V%qQ-a}5cZ*fsyH{e(Qn{r&oad9Kxa$Lu$ zkB=lXXi&-3D6ka-eLKOY`B(pU)y+B>^V(cXHb0nt*AA4Hh^*qXnTz<#_40WoM+9r~B4w__i^ysxLeh#6hH*LBuhoS&Bw>b(m!BY0$P1hlJBNszO zKAW#&=McF<-j?gwgj*i2khk?Z)J@C774o)SR}6W$Lf-c4CPN;skayE{Xr?wUE|d$T znZ5@VYxXDOYuL9fU{r?47xHWVv@(Qc(EUE2Tn%;ecW*?HLPxrKwI2&mh2ILrvzqz4 zo7ok~$5NGic10!r6?TH_OMlZd?`~m$SJ6dtRcyrH(#)-*P_@1O5CUU(*uRvI=z#wY z8$LQ&zn;C}LJp$NhRN{>Qmr}Hvr}BiiNZ|sZ2=pGeWMFg=0st}*#X)xhodlM4((|3 zn#?Mp>+h$2RdnQ^)b~#O>k%r>KcZO(Z1~}ra869r_~ z^{hHB<%nhsjPPr-cB#ZRb^S9m>-31ffJvLetk=%6IhHQG{{)i^Mb*A0RKaB?a*u%z zn>KSH`-7+$RU{HH^c_ij@Y6`Z3aaeqCq9VE9QldT;GUT9H#dG+gWI{7gqh*QhL12} zk0OuIBdh`D#yyuXiss5NgseL();I1gT*^Xb^X*@5RNqJomYn1=HlEu!&eXSva2U?z z6Wbm`I5-Do8_p$$C$^zRMlPCsIQIa*q>bh_8Q+E)SxpmX5`81F?Q!CSE}L>ZvF)2S zWjQF(WH!f-CU5(Xlqhl%j*rgd?wUYov+`OuKYvg+mC007wO_o`B8wc_9S%&X}58; zVEs~t*wJKeY=&uGKovpP`Z_|W`7>=JarpHU*;JnS zFuY_rbH);=K`R~CRddM-Y#GkSF&aW&YQE$O)RWK;aw%Wlnn*0UigNP`Tt2^~3C+s7 z5)lK%$}yJ5xpsspVhJl{*{y|td|Z;Mj)95Mfgiz&7wWzsrDdWJ9~rHCfyAd$xpZPF z3V$76vPm!f04zDCmadbs;C{<;>6=Q|S^t-RgP`03n^r^C^G#{AdTc8rRRlupXp%4g z(o+pAuS+e_u%4LtR4&o5LCR7pml;hod|37Kb0dj{jrd~IOf)p(E7tZz1FOSwIb*q0 zLn|TqtfQZ3K>tH5B2xI##Vh8j2!=syWFqu>lD@29piU8XuV|Kznad0mEMxNA}S>L&7q#Iv z=f3XyeeeB7P!`XbKbVo4Ieo!`>4VY!{`lhYS`(qCE&3CT0``^lV&R;NR;i4J)V`a1FOH9@ayjmHf5`jrI-4oAKM z?8@?U4!i+P=9)Qc9!BLQ3r60;q3ZA%_;S78_(jE$ufb(jIchDk;evrJ>p@Yd;zDn+ z#pTGJvzweXcur2iL6~Go#=jCh0OUE%*k2!^&SX@bF!EB zk_tbU<-yNr{SJOY%+GUkAnm>J8SX*GR9qKkl8@Wn1nwv^=F=bhnAh(9LohFX2L^j! z=ex7w_|r!CLu2PB+heg!#?3K)?R_zR(a0WNdVE`fn;gF=bXt6@`_pDj<=LHE7XGdU z{v5&Ckk}G-JoC~o@G>|b_B&sf$*zwy3h5)Y!h9S^;eRk6Gi?90Vl)aa%UeoKkH#-9<|F!nz?t%IZrhyYjzRSV}M?wZcXxt03HzWo!6vB5P_J@ps90(Z= ziGv&r;d@BqAbi&~0m6f2@?9F{@q*~o7Y5FHiTd`D_wyI_btLzzz)dVt{U^frqy8iL z?Kj7F=ArrR4`SkY{KkGeDURCl2>7DnRDI&n?kHWSK`&9fLUs;HrJRUbFI0~TyKiaGIN8u(JVJNnVZcmro`N8 zZZm&2rRH{Xhq=>~nY+y0<}aq)++*%Fe>D~6KC{C7%~YEE%>(A|rpo-oJZK&=)#hRI zhPHLJ}U^PG9!)R`B|i{>R$Z(cU9m{(1MS!-T1 zubW1*&b(pXG)-o`dCRmgC zb$mSDX#FGJ)IJe!`krLc@IK}=a|+(f{FA{C1e*+Vx;X>y#Af0>`LlNz0so!+yGB58 z1nm5`8+QIjF?P8>1XKLCrB+UNy6T1nUp{r;Dh>T1s@M@b{(O`z-1{M^ojc|J#MI91 z{PC%)0!y#Hrs&%1t}kA8!;Q;ty7`upTW|Yw>FsyiS$5ame<{D`-oIAdx8iS=_doFW zs((EAQ1!!)JX*8zvBy_E@#IsrPe1eQ>NU?jU-!a`FV(;N%Bu})UwgfA-5YNXLbrm&`tG zR^BNy^QSGmIAzvM=O-rc{yHwe3n08c2e0kJaZVmYJy+d+A?ef>JP+c4e|cT_*C|k) z;}@$cvc>KLmf*av4XL2`>{wg2r;3=Q%<6!t9yo)?e zVGd@z!dL>?yPvC6E-$x}JeN-CGX6 zc*6z;akRSb#V6UF2l!1?rWLy(%>Z+6bAR*ak^RlG;t1Fy zO!4*o%%Wla%!<{0&Fl;Mni(;D&64$f%;P0}P);B7^zc6Bl#Xz-VokW2dRw^pc22lC zJ|*1r9}(`f_kZd?_p0*WFKws!qfllnBp#9sNrz-Z@*n|71*8tr3PD6nG9&=0gWyiy z1Xyx!AjGiEeIR`yynaPM20$VqgCMLd8WIB;28o5lL0EYrBpLF*$^rQE&kwectzwH} zA^)pe6M%yikUB^!#Gnt8ApuAo^|HZNIzc_~dhsS>Z;W7L_Jof(&56*&r=iqAh zpB(?w`B(M}TUyg|%kK1Pihg$N==HqFFmEp|ZFo*8 z=e>CD{>kfF*7YbJW-^V`wRRNr54-vnSI-4M=mRejrrgy#K0n}|??L@?(Ys~3zP;w^ z9Y2fZT&s&(RgaT?>*LQsad+VZw-Pi zZE*6e-AiI5aV&A`J66(P#dEK2M_=ZqabmQ>J>Q3E*6!|<8F0>rIOo?p=ZyQKc%Y2q zU1^W@-y1v87lk2jO_o*Q>OX^gadJ-^MZ%ju6DVkdD}dx+!nQpbO% z-bbAClkN;#`lz|a+0cLGmg8)uoU!G#(dkR`2satV>8D-~JLkPtvMm_4I3oVdb6&@J zgk5&32`d~Fwr}LX-*zh-qPlyEIeBvjMHKbAIgHnP?piAM>h4Jfn$$s2Md8=>zOL8x zVJs&N(g2$?_;F5MHl!6gC(xcQAGkqu+&>gUnAaJdDT5*cs4sI+Wcr|}j6sp$DT7Si z8%V>nt01X+clS86J7rL0p!ZUw?i~|`G%vi-D}7MJ&0%SS%p2TowL&TeclRU!)!!^^ z&78Jl)UJY^?czb-qoHep&atNr3cneg=VO5l(6=xl4yNT+qGTVheW|YB)Mr8;fW8xG zT(z^)%LC6G(%n2}t58PuzTG{?aHJhK zD6**cwP?TVV-v7xcz4fGXY{yxv^MCP59sb0?WT_kgu6MM_Q8*~QQbX_D2j*Ee(1_a zclVUj#~j4h^Tg9M})uvbCoHegtE|dJ3U$`)O;B zbJytQqrMdS$GW%nINLKXcGOox-@a^HPb|(&O8}2}r$3mYSqIdcq`dsM!+RJ)!V9yK5M|~mm1wQ&x z=mS3bYUqo7^!3n}_~=`pFZ0oNL0{pckHl?Um5+WT^ff;EBZA zyN(vK9<`Ed+R^3cfj7h6FcjT#4T*6PrW0d@BSzGQeZbX{(e4X zK_B6x&xbzBN535U7$1El^szpAJf1LdKKc#N$NT6zpilJChvO=m?4!pc5R>MkPk=td zN1q0LmXAIM`kW9w`>PQ8dC>cf6ZS_r?D--2sORS#g+6+I9#Z6^=jRm5ee~O*FAdSt zujmNW4gJpiN`SpGBp>}sgTC5Fp9B3WAAKS8t9|sP(AWFutD$f5(bq%Y?4xgizST$H z1%11ZKC(Z?zmFb|#!R=5J_&lW{P*KN1NsOb{XFQSeDp=o$N1>Wp^x>^uYx|#N8bp2 ze2AX?*#>;3y&kdO!tuB&IV2zT!=O(M(X+e+=+pm6c^R;0hU8;;{NkQ$AAJ$@ zxjy=G=<|H^tDrCN(KkXL@X@zHU+kmb4tGg*t0|OvE8N6=lbZYq0jTt*F#_6qvyw=fe=0Y>Vm!) z`kna|jeTlKNIv>C7Wy(DJ?_m+g^!;1SXDmyeCTU@^vj{I4bjuzO6cpL-!a_0zRpJ-?4w@}eX5VX68dx>{c7klee@fk&-T%GK%eWQ z4@dCwLiFsPVbB*qzq9^Hf;|wDkNuE=|B6HOEN>q4CI6(n<*=89OcfCqdujqtAf8*+)MQ`c@x(5%ldo`f}(y zee|oK@AlC*LT^fbKQG##kMPlNhd#_TL#~g081#7|`mlX_|DmzHr)LvFUAOh8 zo;I9UZU3ofJFp!Xv#F;i`j?-2#sY@{lYt|F8NjArf9eSUGYp<{1B-!;z*=A{umRW& ztPJb!iTtVu&%(QVMgq%wclRU#6Z&@d1c3Sd@oW}YGO)X+23U*d^o_uxJx~rXt#xZp zH!ueng_lBRe7dzK9+>d?)}B=0(6+5T*}&W-+j&d+*bJ-!b^;rK5u1@87z>QL6#fAdf!V-JU;!`y zECW^nYk^I`W?(0<6Bu(D{Q4I8fN{V~U^1`(mF{LGGGd@2ABhE02TpTfz?3sT~ALV zFb3EGj0Z+uf%1T3f!V-xU;!`>SOP2oRsm~(b-*TIGq4lb35>cD@%z4~Cmt9JOa~?c z^ML8V5@0T{1{eS~0n31$z#3r8RcJRb5!epQ1ezZZZ(uC20+PtOSOd%kHUI;_R$v9N8(0U7>Oy{C9MCL9{{UlwnZRUV9xxkN3=9A(fEB=6U>&dt z*a~b1nycaGkH`;<0VV_Efw{nRU@|i2PfrCf z>Sy>1j03g;lYs`G{cM3Id=n7fl=F$9~cKL1||cmfSJGsU>>j? zSPYE7Gm{En9IzIc3Ty)A0^5On78UUe;s%Tb^4U%zkk48&fibwJ%mXF@i-DQI3Lx+C z>wvrmZwB&Sxf95H*@$1!ZtkIhvA{%NGB6#O4a@}wfB|3yunbrStO2$H8-NCTjaFbR zup5{RjKX(EX9MGa0bnw)0+U6@gt5*cE|Y5%|9`0()G;7vXk(TybVUbNr?K%)@`{XQof-XV%=( z&s-7_ZtgjypP2+aab`cW^zwe@<-hhbeUN58!8hi%*1@L*`cfjX>zXE@PJ>snh!#^R42Chd_h64E+_W{5k zU>^ZM~ft^T~3FJF#vw>{I0$^|OMZiJ8OMnLfuLSl1 zUIXk8yahM}cn6U0$dv=X0zLrT4f>V9NZ^ye!+_5MUqHR}z_;M{THt=rHv>lkTYy`T z|5IQ%_*cL<;AY@(;IF`+Vej>JggFpA61WF21~>*d8aNm@9=Jd7XkZNR1mK{9j5!I2 z?l+l0{>kl3U=;8|;6T`y0KY}~mjd^K{%Rn<=V=*m0QjGQd|&h~;AZG6fTO`51?~%c z9QZ8SR}1_F_SL{9wDU#a?kImP5$VHywHuQU#A_y|7>FjAzX0*tfw>=ukKxVZKztl+UIyahShF68 zk0s5QKzv+hdVu`6Yd5^igpY5`en5U!F&4r`LcW#knafR0fzvKfJ1?| z1NQ}10{I!qtoDC;NHMPf#ZRP0jC1T0nY-)17`!r0|USbz{egb~js+$GCj*ZLo(?<)I2*`6I#>cs2Hp&u z46Fto2YeAY1^6~F1-J=#Ja8-U1Yp0`2z-wU#waiqI01Mf@Oa=0x@@Lb?B;Ca9b;Q7F3fZ4!y;B;W$&m)}Q_ZtVC34Q`F2Y3N+ z7Vu)=1;Cqtvw=?obAcZK=Ky~I&IJx^i@-MwVa@{Q0nY-?2VM_c0DKU*5coVW5BL`F zBH$;$MZiwrV&I@JBJjOL_9pIe*-9WAvy}xwVi9LW^2lfYYo{j}_ z{vHM7e4hs7Je~>U`j7|Y`mhwpbz>Qj>%?t9t`iRcxgI31b2h0~rn(1^M4_@Y)!;8S5|P9LU9x`yfw4-iG`H8Tl>N zKgcXd5u_aQG~_J^$2aE?$8{?>=LL0~Uz|H_qT?J39-Lpy7n+wmG%t0bd7=7UUg|>g zQWu&RkEwg8*JH0vtod)VCU>v&%Ley6G!4t=UWynz*j`@eIhWb1r~I+MIUm9_EQMg{G|4ZOk5cd04;4cu) zkzPN-F9_H37~pUS*ZO#10)*>*GVpi^*ZNa|r$e~jX91@}c&%6fqz_#0FTwfc5U%;x z0+&H}UAPHY0^zlx68H}Y$LQ<8CJ3)J9|1pw@OtzWa5IG0ia}f8BP15*M*xq8jKFyo zFdK3J&MyL93^@?zw*ku_BXNE&@IJ^WoIe7595Nc`?7Qc2eh|)EfS*Ce;Cvgf2XZjZ zd;f&~gdBqNe!u|`?lp%2M?en6`FP+_ki&4E0-OpNhx2sc>5zDwpADQ28ISWhz=e9#HzXLh z=>y^qe~*a2^)GeGKprNa%6Hc2~!Fbc=V+dBi!+gY&4|(>n_Jk81-D=KZ_meZ)K8 zS>9CmaTa6&W^JY(75tg{A2I@ zN}Tt2=S4X0+t`}KF$q2WNztAl}@Q%3+fpQZpg zmre$99%TaKfOCMHKbHf!<`e&yqh1mGvYiNH4C5x{mJ*PhM5L|_+i5^yWNj{qJEOaUeXPX(R>ya1R5%=0h+JQw_S;Ca9b4<7@b55C63SAf~zZv!s}e(d3Q zz(VjI;1$5#`n$M4@JjGez^j14gJXUIbjLtA?lXZiAsqWx0&j$H{NE3(fp88q05?E5 z555Ne1mRqW9)K|b;XL>Q@B|3w!1=(r5RU&VfyEGx{Yv1Y5RUs-fp0-L=39YZLpa`d z-wopv!ZAM%coc-=J_|S-!h`d88P2)R@ZcK5gX;?qt}Q&cuJGWR!h`Dx53VIVxQ_7P z*yX|Xg9q0RJx+TU&j29jK+cB@h0KJ^hFl0)2w4od1adj#7x>o)I0zCAVfx{a10ivc zaga%n$&jg#Pm%r$$R@})knbQrLbgJxAdf?x**ZVVeUe*AoC!FkmZnaNHt_Nq!H2%37>-X36ciMgDi(^I2Pp`gEDd6 z0qKT>r}Q^xt?X;oJl@y509gxJ4|yN*5rp%L3snv+rjdJ$4#EkU%hYV%YEzIcASj7!DGl9t}at_%RF6<=)&G~)3F^~ zo2sQ=`bXUc(cLI{FM7w#`&xtbWs|4-i=;dET{m5Y=-%;k4~p)@_uO<(if)akqc6c@ ze6yQwjp*+8bZbR7(S7IXJ{R4r58b>SqI=)d zb&2le7B}6`qFd+beihyEAGzuJ4YmHQ@pQY3ZsNyoy1hlW#?u`rx{05-=?)X!!=COa z(H+|ArsK6cc--&lj+JzyK6TSg72Q3aPGhy-XKp%;%Lq@Wu^;8>PL=ZR_jKCl`+e?~ zmo4c=c)EF_8|CQ=L^sCMm5A<8Pxn{RjrVjlqMPXHo)z6BPxp%Gj`nm-qMPjLJ`~;Y zp6*iV^L3u?GfCI4jaPo$mjk&5=y>?kSFUcmq`%M8>3Hb#wVO`I!%|Ndv9ImtUp!ru z=;q@K1z7LiqWjd-#ft8%Z`^dFMYq<|@iR=8QT~xz7tarsbdxu`c@v5lW#RZF@PCEfUM-SW;C-910Jx+019eV%TSq`TkKT_U=Fc)G77&JTOKDN+;l5Nx8Bq78pJqfd~EyU zB8kgI-nBr-=90JF@~)C}bG$WPV>;i{@jA?FT9ovWu3Hy*$A9VSI;G#XLdRoGr;De5@8Wkr#)N)zKi(jI4+^t$WF7J`UAn~e zrc2&Qx`7xoJWl_~`pJ9HJW2nI)PJ9sPUAMI+s&(S zTkq*KZgaM}>0XlZ!hUvjuZ!+3Pp9K<{5Ch8j=Qy0PebN2m={^(PUB9^L zI0v`~Y5v5H*-g;#e#x|2-M5}DU35Qsx(d<#3?1X$DY_m{*Dbm}!`yV{Q(K3&cjB+E zf4UD_=cAj|Ya}r{&G>_51Sr_jYw!-u<3V z%bScZh@mf9-us?T{ae!K_vP);mowd%hdsO}(&eY`?xy7&U~7g+47Hv$$QK%iS^a)r z&%g**w~xf;2~W4b=+5fzrW-A~umP@aoap}H=_ZQqPrJG4juzckPses}ytVD59Z#d( zq3xJH(A8=D`w#kk9V!%PF@-#JztZ_BM+i)UFE3^0wr ze|6N&#(gv->9zqTYsvsqhV#&)9zOlEWBS8=aDUC-bdLbi2d=<+3m*z`UI3}P9QX3T zus$dY(ic(#-U}EBX~&oDWa2)&H_ii>!GB;a>?y!}U=^ei5)a;nv?VzMOcc%=ao!AR zfwV#l>WqLs0aAhVtCkHgMZi2r2_y+p3JE>JaX%Va&QY=BQ7|*i?2=tE*fj=rje%Wb zVAmMfH3oK#fn8%@*BJPp90NPQ8 z-2(F9!FzU|m*8HD?=ifAo7C6w5HWbS$9Eh;b$lP>LgdK>2GeDH?|z0z+#h;Ahit-m zwx?e?Y45u}Uw!}Jb(Q(EhyN+;mO9EMfY9bb7XnXjZcJM^yyhA-f-)i*DOD>|3#Irp8Aht#@rP4(kc5tchQG04V$)V z($;B}-75n(rp3MV&5(~ydj9$^k{?^U?@60Cefh}MQzl<{&S@XK{M--YE}p(<+@d85 z#x2R8p9jBo9lIj1D+0SBuqy()BCsn0yCSeF0=puxD+0SBuqy()BCsn0|Mx{;(BbPI zO4xJ$#*UBs;IsbNkRv|iz~9Wx>2EgA?Qc5ygD^PweB`dY{)VE5^Zt%1e9mL|8SuYx zxNlt93>o(Hx3lDbvrK%d{aaq1RPDfAlKXF#`MV;LT@62b|EI@)Gacg)^qbF?f(QGC z=gxB|yllb05pm9w-F|DqJ9>OiuN^{tFmEB=jb9J>0K#+HLyoXD^8QIMpV{ws>6~); zo`>(@lioMoe?hrpFCxR_1v!fr&dG_5OE_}k_#+a=$Ih6(cvepA!UeI54xf-XDgN*= zu`}mQUoboN;#rFp&w={L!{QH{5F3}9pP#q*sBz<_yZH~By>Q{|d9xNTT(W59tixt5 zoIfsq;lg<{bEnT)FwV^%AAk6G$dU0!#2+~!VM0z$&cwv=6K5q%k54#!Qv8v#rca8G zPneK6e$2mB_Plu)&yO9SbL8QZF1TPu{NYC&kuYI=&f$rN&x%jD;DW^XSu-chnl*9K z_`}Cf96$aD6#ZN4($da2*=@_>ix-SBf1EPqsMxqaPCI=}Y{Fra4l9VA5I=rm{P+on z$HwI?nzd-wyjcj#823FM_8#XgQk&Te=jFtXKWsezu4^(Mj8305ea0LU#^<1YW-eTm zKda!-=@Sn(eFycM91+&P*MQ!Uz4z#~XLxkj-eLRT=PZZzIv{Lh*yyl>!%}+Bn=@nP zVT%`Q{2g1NaMl+u<+HwUvGecQl7uILN8tS+#xV?UJIw?} z3cn0IO8BkdM+zp+xbdzM|I%T~ywTdv zz-f-~EbwT)i00*=fzvqQx!_5{7l5Y=&j&9Sei?Y9aE|Xf@h1TL2H`wy7tZleB>V>0 zJA{{j8)-k^g^Lzm4jw0b1$dHhj;}H)uL|~bu|EQyBb>jdS|A)>gJw#F*MV0Ge+7J= z^hYCjw#54_@Gjxa;4u=fkHNUxpw@~V%zZJsiZ=-Pf+a{d;r3$Bi0pawoN;v)7ApEyY9nuBI ze`+ZbIfonnc1b@Ro4HgO&k4V6?%e$JCqwcd>toLn`-wjGe6gPnd!g{NebR^j_I~X^ z!}&8(IOCBlJQw*-70&W=LU^U{`62aP5yF|jR??FF^tb)P+L=C$i-29-<{Sgfldx~EvHV$Z{4V@&_B!z3 z5ggA&k6SzESGRD^r`%Q6&iP*=ob7Lv@)@t?lArU*`O$I!*DKEVe96B)#2@}%b@gxG zPwMV>(x0^TbH1lOWjXz;6Hfmc@qMT6G0<>-(ITAj8!F{m6+GV(?~3Pk-kM=Xzc#ya4Gl zk9NODg!`MDL(1d&)%=oee>6^$U$uNFPD_O|o@TAJSAxgAW;x@TQEz!V^NXG1ZI#$L z-U2V%^lVRy_|NgyCU(xxRPpBy@N(hopY#S>9{VR!{9OUl0^#hhcH!)=4v7c*Ctm#L z(mGZ6gRq}1oI`nm@H+5C!g;??Ae{Z3De>TZ2ngqVSS_6Mp;Y2ggY+k%JU$cR`mh;1 zcyPQho@G*BA3QSSdt%&HG5rDZ2rW3DqF;xT&f#89%OyYmmMK&AGZ%no2wxsj9_vq% z^6vGqpDp$Wee5&DzQ)IXvDn}Dv0ozqWNd);Ch@9M74;Io_5FALmowb}5hb4SQq9 z^4rDE@{QP!3Mr56ixvBn5IftqLF`N)C;Tj=&zAA^H}EWQdc^xz{3*W45&N<3pH#wX z`y>BN>p$DmC7ktjNquZjf!NbS%47b{CR-l!cT0M%zk|ij@{)uz{$0XnhLq2EWNonJ zv%Xcr+26z7vv$^BxZZNs7m)O(o^U>YTZ;OF&kxqZ9z3|-d;va>4@I2AU2m?I`km{UaJKIa z;k-ZT5dKw2`HW|ol+So}2xt8AgtPo|;otj|m;e5b{&q_G9;7dn@i?4;@s8m78u7u7 z`3t1HLy$fo`K#n3fZ%!_DfyT34@0GVwr8l=@n@{R9l`pu#Ln~y!q4ydN zD|{R5D}-}?KOp>JpZGM2o%f%OAEOZG7-)v#H1QM5V{uw2d^C8eaA&=g^0;)Moc)t3wheyeCE%R^w0a) zYsLO*h@JkWweRR(k#LsZAo=NEy4dO8pTL9ud0&4At=%t1Y}&E>WZ^7-xs=E9BgM}0 z2Z9I7Zwv9C`BNo5uO}J8S>6oc_>-33j^O;N6FcWu!&lZ{&aY14oL|XbTl;97mI&wk z87ApDe^P}z^G7)S&y)IZKzS8n=X_}r&iT?Uobx4J>SueKq&&`tI7!d>kS^Sr55l<~ zUne|FUV#b5E3N~DIEOo)vxT!gWg-5I6+8R$Q1D=X?jBM;^XE$X{X*>A&%}OX>*s#A zUAPlZ$Bv#o!Ik3CZC^F!>MZ|!1d zc>&>9`J}J>*4D@L9g_ZLpY*14$MjW_|K5=FEH7NrKjLE_Aogc`>``KW*~fmc*x&K7 zA0_r}A$HEkh@WhG_`ET4tK}RIN#9w{=V#l+o(NMR2f1?$#P`l(es8xt9jA#smY;#s zB=meR{S5H!S6e&hbMg08>;6pMVE&(px0@p*g$`hnjzbUt`3_H)BfFQ0#01YRz@2>e9&8|meL5c~=BSGLFN z!T$mOg5`IBpN@E@c=o}3sm(jMesVlF_p#%P&(}-)S?)Yv?{7KRx9wq;2arFjx8)pf z72%e1JXH$k_-T{+I9@8GK3*>}WW2Ng@}xelkEWL`pZyUnoc)n2{v3q%&H+z?p7FlG zr~QKl+VVJmvj$ks=h@}ESSOzgr9O_gEyCH} zXsM6)D;2_dee4pRhxY9azMNq~dzXXX4u85l{zORox&D_7vi>>yZQ;)S-0s%S_NIuP z{Z%EL{zpmrS5RNG+@E{}-Y$F`zI?k?_+s!4!fyv}6W$EoB7A7b^AWbETk5C3g~I7? zc$94qpy(}M%^7|k?e_n<0JUOI3mftSv&kM2BpSWmS9@BS9`rMH8w2zha zi$m-zFH`JJf9<_v`Ke-Od+UX>eRYFv`anqetiN9DH~QFH#m@2GCY<%P3uk;ggtPum z;T+#x!tV*GkL@kp$NJ0lXKak+oS&J(>3_GB$N85fcKTN%<!w2k@7hIj}rbN{F#jO&7ObX zgWrnst3AGuUtH%MT<_^mw&Wkc0DDJpKV2zyULQL4we8{kNAWPr*&i*Ep8XLg>A7BJ z31|IC;dy`*RFqmK- z52R0(_&50EPdaeN`c_H)caT0!@^^*gr++Du|N0mxydyXt8pZCsP#t3bK_xyyRzp93hDk}S!nxkZjN-x9Gi9*x53Ux#pK{XWFze;oC%gMAqMra$X^{7Da~Z=~?| zLekTp46zrp0p1Z@zpKQ~>s{Sp)*mKs5j*=U=TK{Be{~4w{ZE|aXZ=}{pVzywVrP7+ z#m@M&3TOZ2O8M-+PT{RS?X8#cIbM2=v;KbXlRjDOOn+s9^+9c`5BK?NzZr`3FrFooN&gcUO2D+uL&Omf3HCKjVPDni_iZ~ zggtn_e!Ne6(hj%&)88g3FWo17mZazBYefk*Kle{@6D^Mg&lb+-w~0qs`&jTU;f&`z zDWCJNSvdDwsZt;PO&2>qZz~o%_gmG%?*NY%f6Bpggs%Wk5r5cU*;0NL?A>DL{LT|Q z`>Rzr`zKxMcb?yabHBy@$qb1v+jHEJHa;_a>@&p9@qB^s3w_eh6?=h?y+G{O_}ELt zzTC%NDfT;k?5o6npO5`Tv9mp8iMIU@`=ozN>@S7bIX@#N+5C*>21&mmBt7kslAh~V z!XIpYj;D)-b37a&>3Mxh5zg_DA)NEMNjS&HyTUo2OOLYkalG6u{4@Cb9@0ODdO2PO z?1>Za2=33W6aV(|vEMEB{eA3JVn4*k{-oHC46!rbu}Ri{&ff;%jBlOfXZ%KrJ&_r_ zgYDt^G3;1d9@mdd;aoqeg!A*%Fje?e@Dkz2qkVD5+4LuY z7YqLrc(5wNF57T93B;a@fvWd5<5Q+N)gWSKTY^%#On;c9XViBW;;|a(c>OvH?+dMmf4QiK{8C;(yd!u$ z8-0@X_koc2i#T3d#Ln@Oo@Uc?yd;SI9+=XFvw!9ZckV}oKNeCS%gd1RSze}amX{@* z4!@g=IPvqrFgRFSkC#ReCvxtW#~^+1 z{$(f|;2pv7k|X7@e{zL8{Vn_;pZs}ZXa0QQ6MfPbh<%EWy+Z6PuS&SHe*MYDpX=A2 zr&-SRYp`%$->M})7DgN__sd(WSnK| zr#b3u%bn|kaQagwoc^>(`Sd4S%A-HSBt8Af5WdaFpDMA_yh=FzX%J3-%sJLyK3_}B zvYh^vOM3cOEu8+<3a5XK!g+lTm-74W4gclygrVS#^7j!5;K3ufUtD$Wj{c;Hf5-Zy zZ-RjdbH5o7&i!SHaPB87g>(N{FP!_s4Z^t}Y!lA? zU%2?s{a&-Vq!R;WKP}IliN3 zTF&vkN;u;+QvBoi&6NDk{F3x#sILWo@3|k+@$WsK053|gpI^Qo;t$Jjmi!w-?0nwc zlwya^3uph`Cj9%5_H(_SC-t+x3WT%2ii8JHeu;3#BS$#>&lAr6D-=%ui-q?Y zjQK77HyFHF_!#iu5gcDNlAr$0yTJAr{V5eY{izi`5#>D%UI#tzFHQ<6pZN=xFZ? zW=ndGuNJX$J?N17*k9pNAIDdW@O=1RD*bf_c)9Re@Dkzgf|m*J0uLU+{rbh?AN{{f zIQ_p@IOBPxaJJ`a;T(V031|Cm5YG19ES&S{HsNgV9l|-E?iTL+P@>m>;P_lU*Y*d; zXWNCAb3R4Rx19Y|Ddn*}4U(V!cS?Tx8zcGY?=a!?H&*y=`=9{t2>O>GcCLSA!ufo) zS~%CkI^kRoHwfqFGh-Ln_V9UYnQ%UD-7cK*NR|A9;okuZB|q$0Vjl*3Ri3pU0G@l1 z<#FIm!Vd#)Tx9JD;A0nCeiV3%aL%VZsgLuiNI3gvq;QVEV&Pox%Z1+oUL&0Ad%bWz zA8HoP{!SFm=RqkFFFyaN5q>1nr%C!`v?p5PcLMlf!qaG%_?!wJBRms4Ae`eXTgpEV z_I9!7fE$V5T<~z=dEg1cF9wgyxAEur%$M>DVXu_+pbWfP_+#L!gg1h(7QPX@UO2zV zuR{1x@G9XGz-xq01+Nu81H4Z7W#GXhIDZve9D_~i7k)&>*Rpt++UXn=lsknuy*cu>n^vP{?thQ z&V0DS+PUBDyvlO!e^R7;?srRtbACJ`ob9_;{5=vpU;N?vT_~LE-v;rIY$5UTVwZ^=P035^r7)DkR?Q|6D1b*Ml^PKd%Sv5`RAbkCJ%vdH)9Cb>OuUe?HGo zlK3}*=SaNY0xytw^Y1}gCEong;6{lz$KyzeAOCbTTH@acUMunE=Ut62+j#PNv-(EM zIe%Lv{$U9C)5y8qGKgVnAYnC&4x#Va6bx8Urz`p?xKA%qTDL+xlV>^#)vgLEWHVKaf zPkP(hIbYj0SkC#{{+{KWuYvb1=X_27z;e#l?vE_zd@cFda?aPlCzf-5wzOK#`C0s_ z<(!}O!uff3#h2C|fW1cA%lQ@ghP5+1aboBE8YXtmuc;Cb&aV#PoL{LDAI`7s5+C+Y zl9bQ+)g|%b{3?=oaeie!aL%Vy!jD6MWB=ISj6)op=O@6MP=7Lz^Jg0DzaU=4 zD3|cUF9(l8eSGbX_0@oPp5XqzJNe7t z>rnr_xX!WscfrH)+vXWg`e^eZcpd&oI@#kJ!8;o8d637u!3}tW$N2;D4d5d^z9;xH z#4FbG{{Zl7(Z9{Gv%W*X&qe<-j^q=;PZ577gP$*a8u&tRBzM|#7WiV}v%s%K|8pL& zygcwvTkYQ?ECml9!Tn@fyX{ZT|J==%bN*L-XF1yu@xA4o|9QeW|HFTdd~Mw;q1OD zSsysxyTs1eo5U=w*7p+Bp~tR`z0eKo?H)>3+MGUS>nn0T`QdPyISJK`CW?f z7@Xg?V7wK8yMIr)yQu)b3FVK3OB|mo!M}mOZ=oLY7r}o-d5k-G7kDY=V{kr=*cV@q zhxP{Zb3PWr9-NPyPcNXoui?2B^B;lqrz8G!k^E%vOet>xc<=~buhYZrc;fS~QsKNG zDd=PE96vQO{&+oa5zhT{w&dqLFBi`1^K|gw^_lBWJ>nG)J=do~_;(NNt>EAID$0*x8?t2&X?U3TOWg?`O-q8})U;pG)z;oBmY#)Snz-(=#3gl7FR7 z`aDU``CcZR^R<3ATOQ|YTBPMHKSk2BeFehVz6#-NPn~d%*Cr|dIUoN<4z%^rzg*$0 zKSTUs{i$MqHKaVQr`yHehN5ftu;ugfq)y>nKLh(%JNHi=!nuDciLrL>mzwsqoa^b> zVU}~hRJ@<%XMh*&Z#l0MUBbDZ7Q|XR*Ta1ApYt+ukhSyvIxfm`-d}H!_G|&~7S8pt zINGM?dRQXusk6lTOQZ5 z2ZeJzt2n~ibHPU*X?Z?)=24bk2HyGy%jY8=;YVA}&kF*=IbQ0-KfdogY_d(i82M9= zvz+58YpmrQPhG+}o(g1qa{QP>ZF-KMQi(su&uWQ3$In=aH^)z@_{Z^6E_Uue+k|uf zIZyh7e5n_IIA3a|zph34)?)^kGvPO% zf8PmS2+nnd{6YG+uD^3V;roIwftSD@=h@!|Kl0cC*jc&hH-XoR{U`8TDK7&1uqr7p z7Cb}j6Tp*&r*Pkf@v|EJ%hB;%der)=TeFI4>YBMbQZQSf0>9W&UwRY}D3dMhphu9g`-bpV0Zvk%- z|M@;rx%f}hF!7(`CtUpHcv&s}J_}wU{{92;U5`S7e~(xLeh+Vo{kT@}(~+O!p8kIe zo`Ly{Vx9G<8+;DzyuYNqKO9;KUhMH9bkI9E-#OmX7VOxbOsSv!TPmFGDHqQ1UNGP0 z=Xg(-@(PZC7k=G*hMx!_qQ3sxxXzI&iz!i zaOeI|IQLiKi*0#qZ+xER++W3u{S5GI;oM)92mK^x!>v(&iz)} z5}Tg;txDnCZ<&j&o&8@S{__2dRI#6r{wNa8{a1tVS+I8rzYsj<5?lU7-~r*6fL96U z`y92xuYkQpIN$GxD6r)P(7rD5_Zp-hEB0lqPxvjYPx$TNF_+r%{sNvZ{66qJ;eQ9O z6#g)HxA4colP|O7Jq=ziocqy{GX9>2y;JO*pSd!=dA}1U>A7D`6@CZ!a^c*sHVNl` z)yVinb*5R$=YDmp*m=K`Eu8z)QsK{l*9flzZxPP@YLtvu?pG6qJNs4P+^?1iclN8o zkA%Oe(!c!tF1nC&i!hM@Rt$54Z>e% zKxKS#{jC*$*TbGK_V>Vxg!BEHYT+NjzFIinw`mv7_idtO{CipwCYC7S$~C;$LsMb;k^E)NO{R9f4h{& z@ffqrmiHu16NFz5|K7jAzHhx0yi@i&H-SHa`cm;b72MC<1Kuk3HQ+0dACDajpI<4>%BY2yX_Z@h<@L$0v!r#?sH|yUc7Wa>0-v|6Dly`tv z-T~mTsP90Jj{^@L!TYPIJ_ zz;p?}FBa>AwD%G4OyN&~2ajNTqNV&gANyFbzvg3~C-(Pz?B!x_^|3!A_Dw$aCb56- zV{aGxHXr*IvG*BaemjEgKlm>;zJq-1X=0D@vDb@zgpYlL*vI+UhnCy=C;8ZO#6HEx zUL^LDeeA2nex{GTN$k^o?0xUC{$1!}j}?2qkNs@1U*TiFSM1mM*t^AE;$z>FFE2R9 zKy$Z`JxT19KK7|%f7HjGDfXvB?3}M96}Eof?=pT8T%>%lAFlVOiS0`f-iOHp2(cfEKA{7>+Y_i?nh zf(H-IPsX=v)sF2imiT=glKz(v&Ul$8Y<^xZ4inCJTqisiN$(ckmlrPY2>Nq(tu2rJ zXP&W~{nx$5a@JqLAUcQpdz}@MpYczY{EWYO&Zh4ZQvbjZ&iFLHY}2#8oEI%;`&z_4 zI3z#!I}vMbdgd>C)pEvbb%W)@L-Mo!w2=If!sC3>2VS@3vA%RkPk$@L9`BPs@r@nx zS4sLwA?aCulBEANWPH&7Zn1Ozmc4Du=lqR)$8yf!#P=-c^ThJ^E$8!z<`&C2K2qPb zoX^LGt+$-_o1MbxZ=U$W`EA~^={div#6QmOvEm=^FVn=oEy!9doX-zei@%I_g!sq% z&8iPZp4p%@%v-{3?7Le`3Um+zzgudI0u<$=cQ-vcFUddEbZl`s8!16c&_ec%V+r=;qY|la71~pQ z_GQ5z-p@P-{xHf9M><|#UJ7Y1`}1RIALA6)*ZM>MYsAj}*(kgb<;6;Tn|;bZA*8%` z;Vf^O@Xtc>v;Jzaw};s2e|*G_{x8a*2fXr6 z1W%Im)4-$VSbsL7LleY)8tlP?@niejr9Eed*f}2Bcen9lJ8PmWXa0mimNS0QVxNKX z>cs!K;AP;!_4*Q@`jYmr<+1#FDUao+ihZe1{$jB+f4cBxKItpO&h{njY3t|s$r8@- zQze|`FPHrEuTnV2PpYKn_{kQYSc3LRd`jS76Z(rUSabZ`3ElvEHp=1ktvtkk)?Xv# zIoGGXtp8OZ>Diz8zx^mT-Uop{QL#2X*XPtxmdAn*8*Mp1PuYBs<@`Kl1A28H%UTBc!y!n1}mBgFxH?NX-^Y0tpka#4we-*SXf%vU}1w378W(wP+?)CWramgIAKvysbPbK6BapG zIHQFP78WKJmNr&cID=({g$v^Vr{nuV!d+oK?{y2ve>2Iz- zwo8An!~UQ5&LFP}`S5*@jd1L{I6fjmZh_Yz{}RM`es~w&g!XqC?}U@54))OO;PJBy zUWN8Vqa3FH4Bn0U#2D{~*Py=+;P1>Z{u6u-_D?yAq{EUtZw%@ig}>WD4}{mEKSrDT zrH8}*$3H*SUlcI^DfIr;_=~MMe!6A+aeoIS&huX+JRbjKdGW|U_Ps&D=j-f`c{ckBIf$8F3aY}@m4PN=lF`|MOE-K#N&FeI@_A- zy;^DCs3gzZkNTa6bqf1?EY12GkB5h&{AI|O@$=yo$gc(Y&=c{6? zj9&@QM*ox<=feKSKOe8=OJux|Z zFYPDZA@PTtILk|z6~O=U6MBE6ThcFe(l2q$@{?uzYA4S8t0m6#W#Z@iNxx3wOkX2z zaMCm0DDl^vILnW{Hh}--C)B<+N#Ek6XMPEiew!0#evJ}m`tjmV`bqCy*SGv8N&h+0 zkH!3l=_xq>_4KoSnzMb3_!lQV>oZy6QO_u^ zC!oDs;Y8%a`Rg(`9pi~L=6dvcct7GzCVn%#5cy>y0n^We7o)r$6Myk3jAz;YLB!L< z55xY)pAYM${~kEOk7B==>zADpujyy|uO+^^pZMW-+5TVGPkge(U+*WrOyaHm#9Jl) zK|k?dB;L_a{J6Vq{l0YKJRXWmY@Fk7bfq=NU*nV3iSW5gtht_VTV~Dm{Ey46`F?rJ z)7JdGwd%iGb3BhA7dB5pu_-ye4_>=I#=KHsCUM2js zxDNI|{`&K^6}G=QK05wk&GAw4sx`+)Y@;>D$Gu{XkM7rOoa@Kv*R44|O5U*M@A1`$ zIbLF)wQ-J@_+xikfYI zar*eyn<{HtVp?#~KI&+Ew!Tt5}yzw`R( zPUQd9je~G(hWhJa_z|S%A%Yn3 zZn!|qTkmCJUTW2fgZoeN=X~8FaUOqr#SJ`O#XKH=6u*M_FJc~_^^$)&^B41aaj%%y zi&3)u`hNCb;ycJB_z7JP1jKLklRi!2?9U|ed;O%(kvP+*i+A;tex1abK3Ck?Px`2L z`_{iz(s%WfzQ{=*EAHtheWS!#pHlI@e$snwee2UA>A&kIeVUU#ARfVq)qMQ)B!bl($pTbNf1RLOY}o?H_jHY+s$kgY6SP*-!cw zi8Fn@xEkp*W&gj>&-U4$+WK&Q@9MB-er=K;+nXop8<5|(HxKeA;=gk}@v4(Qx9^tx z-smUZBk?W$#1BY(XFu_T-L}4a`-xvJ@$Z~?a6Czz?cXkD{fotHf0cMGyd2KJKe-+V z8-?o?^fyjB=#O}B2<(6S`6OeHtuOQMko@BNN#C%yZ~AQ6ek9WW<`(<=c4x!q!~XR_ zCj2|`EGPfjj^{XL{~Y?NZ}}}!pSzJhI%06}eJnnYs(}m9{?K|U-dhD1iC4qdir2%% z;@9AL;!SV?%o?yiTj2%b_u+i;F8Eg2eh+-R_-puP@&91|!~Mhkk=te4d&r5iKN7yS zai(9e&zj>SQR0!O;y;*=pMRFb5AP@brNocwCw}cWw!Gt=IO~_&ZR4z8yQB{uzY?5|RZ|Ix|sHe{7?z~;y8_ey#`Z}on#ajqvbC4D+V*Jx_iGx6U!|CBiOWB(){wB@sY<+457mnw1I?`#sYzJVX@_BF^q5+02I z&hpm68<9T4coRGhE;oJz_CNmoS10+g{|kSz`Llj85@-F^iCLc_NzeXk6hDjdHo$|C zj`eGR=fIi9&G35Ux6XJ6?0@{@^G(UG-HEe5vwrSd-vg5VvwqT-{$kSy&#z*(H(T-x zwpZdjzpRJ-=X>4#3%)eXm3+``;GyidLI{wN2I*9yBF+YahFNpU7r+Hop z%n~^N#=`!`@2_IXZ$v-wonEBb1m73I@sJQ^eTtKw{hJbQa_mkiFh`!~w%J$4JUER=#CJ-()``FD_$9}$IA(cYN`4&A3IA^jmE#2kAJ?%A7b-o`zyt)U%Hs(6^Mr; zzdWpeF?r$thI%8M{JH%SNq@-`!9AJ&7-J;wv4qelan9>*tAI zaniH=Scy-^cuI1d;W*!MspA^Q&5k=A2Zq`Dvi#AGvmF;Zu5{e!xZUv~#|cODEkDh1 zzT;BIHIADdcRCIn*|)qT#~F_E9hW+;aop;-$8l_I-}2KO=Q}QUT<3VZ;~vMc!~2$( z>NwkRvExd|4UV^qIsSXZ98U)v#~szTKI0wdIG*RY+HsTP4#(cnealO9obI^5ahc;< z$1RTcirF7gaed2=c0Af~rsG1#<&Ntdw>s`}939`cKBFCHIxciv?zqnJcE>%AV~^=u zewyQ4#|s=+Ic{{^?)Z@7gkzoZ9p^e;;JC_hqvLkRha4v)IORLeb-ciFmE%Uo?T!yQ zP8!j-{0ztWj!PZaIBs^_={Rs)-|~_iXE-i&T<*BeajWAl$I-|4EkD(9w&P;Qm5v)6 zZ+G0|I3clb`Du=G9WQWP<+#ytyW>NS6He$`eum>h$K{S29Jf0ToY*)2B*z(!3mum` zu5-NI@gc_vC-p5q&2g^d1&*s6H#%;2e8_P^l2g9pT*nI>S2=EU-0t|0&UL)Nah2mn$L)>}IZim$Dc^Cf;{}eZ95*^{cYMfk z!fCerx1H-LuD4P~+c>YUOU1muP$A~^SDNI<>&I+~^Zr7anD-Z_!>RZuukW{`{JBN` z@5>MMK8N$*;fVA4{3o~q*PoMvj`s$hj(;&9|9)eoL3{dXCI zFa6E;cjif)@9!i@|MC5uVlm&}X%f#sf96Vmar~so{<;S7Dv9&`oLVuzpX5pZ^7}}| zVtyYfTl(`ov?ou@?EQ!uitw{JpT^-`f7-?}bIn{^0M0t&{!1 z-@C1wWYhEa!xAsH=I@7%mi@)w51S|Zi_e3yq`&$5VU@D~`1kr6#r%7HS+YNm!||~m z_31&k@%T%IUqpS1kT0DAFT?SNZVn!Qsc`Hy_V%61W!i%R_q34>j=5*k9{R z{CRi-^83WR|M)U|I{LE!UCjJng*&bu>~Y#-{a%AlK>tVMJ|*KV@LKHerl^qLh38`b zau+iGZ@3!eBOENh6P|EJWbfan+6Vg||9<76>309}ecGlxYraq0eXTX;pYhjQk40u# zS6Y`KeM^ot-*>IcwdV0zCFSvb*U>X=Jovu9l+X8F^RBaT9bM< zuT1)b^Jm}&TR!`ziaR&>!Shb!v%S!o{ZoCjHTx$=^5c9{E@pdIOa5$ct>n-4c1r#u zP~QX6-V}H-@=L}oX13?te%iC{7F!>-C%MR)?Pk&kNSyV}zTL*z|Cx7K2jAbn+nVi3 zmF+n`3nb3=)k&P~`?}a}&;5}n<#B(MOL-iBwcG9Z<9K@!`8AmF_O8=j)+bNe$LAH@ z;!mCQ-#g~|BI{mTKkm;Waj?B&wl7=E_7#hNaq?&XmoBpTbH3;h^Y>;KJZR&Wz=3jW z)+fBwIt%fb#nxBCIb!b5B1zBvdFuT(J@;p(nENkF%=u-B)Q|0*C+*|=ww)4hg3G1; zZ^BVh|5i9r>c{?ymilo##7X%a59f-9or&`Y%1;~^Ivy{D{SW6CzOPaGkZm9LSFV&7 z91r3gY+r%nhtG?7{1o()-(Ja&-#1HmxNrVt5@-GmVm=S+7IVG47WRM7VlK*i0_7iJ z$}e@wABz88_lPZz<0odhHP^d6VvdjK$84PYd-9Xk+~0@9?4Lww5BI;f#HQ!|kCptn z9vm&^`Q?C^CI3`yc=OQ~tCqkL`~Uzu8avMu{_hh4|fm(ii@b0Skbq<$<@}}A1M;&c)VK7{nIYy{z-nuZa+8$-*-ox(-`~n zM0gjRX?zYm3h9IM65_vuuR;876Q2$HAHV+_C4Y|Ru`6wPoDYxsn{^@_{hT$+>5%O? zzcoE;;~ejeHP#&OhfDtK?=;z-<2_E|9Pc^eC*WhGKJ3poWqbDD04bm2xmnEd+${CE zy`TQ*lJ>EFv0|3jExrfa?}s^GaDV)tlV1fq`E}d=C*eZz({P!1C0r%0gFD18!`W}x z{9b`;#2ev8aSObl*`|LNt`_rpy=1kGe}H&{#CO4?H`#b6yhQvJ+$8=M-YY%`N55&e z_r~CQO*|0Je#^!Whug)RPuuEkd^qBhTdWh{67flJgZNaqOFRZn*=)BT4;PDn3$GJj z1RoMlh4bIG+h@aVVqRZFud(r~5HH+feJ$J}o(-q8+ISHhz18~9aFdw#OQK)0ao#UU z6Z3vag_!G?4sizTy==GVdL~QE^-GcXO1McJ{QZ`H*zI}#jj6Nd@43`UoWJL?Q#>1v z`ln6L`z>kWxp4YA8^04S5%cd4)rpgj#&}$B)8CE$S|>ga{gWc~D@D9p;=CV|_ln(~ zzkh!~%-_Gye$~eL`}d_{{@#6qn7?-)Xte47g7N|ztSjIw@e^>NxC-tRKLeM%X1A|} z1OKvK4KEP~*N-pScmv`wP1di#P2wiFXrqn433rM)|Ap7uIM-8y#hkD6q`X#a-!0p} z4`<8#^$}bw-VIlX_rld;-v6qV{J%lGTjJltxia7V4A+YTW6@smVQ{(3Z%4qj;&^zS zI1%m?p8}`K{B{OhEglEAh`Bzil=(Fc@otG<2*=8NcnP-`PlNMiKFonT#Mi)?GQZsb zmx^zK*NKbaZth@_nPX(FTfpQ-cOB@ z`IPrlGsGL<$ufVYqkocQe&pW|E0Z|yr#6UrKXtIopE-!@@MM1F-($!X^L_nPsXzZdL%GEH_Zb?+{QC^iGCyxc{hGw@!_hMT zehBA?xqd8@@;*hpSmJx&F7a1zxy;}D;TV~(e}HSmKf?(!KS%rq^QU+a+$tUl2V}k- z4lfWN3pa@QefE7gzLPkwW4(F;;A8D%N}R`6hxly7yTlx?2gF?8dy*f=LqN>^6)ooXg^v)= zcG|=1w-$-Befb~R_VIeCT+HjAC)#WryU*(o^ZMuMZ8pyHbNLQy_E)x)$Ns65IIn*S zr9Af6Ywz0a**{fM9{ZzH%=ULl`P~0EAwPfr&qe#A=GedA@K8Vf5&N+%kL^v_WzF_J zBW8QQ{=~-F-sIiZY;T3MhwV*~INLY4-KJ;zQYC-3uTISN{pVAgektmIs00$Ma>hnCHtF zG0&HYVm=?t74!ECTg5z{1E1OU^8DB)aXvrXF6Q}ird3>cy`8=L7#XMee#5`V_#oRwTrN6j80{d2$oPa??fW5TBfbtU zGTUDaPZsY-`e+!t0p$<%u0-7b`1cd@WdFn>SS9BEY898DKSuv(`-A6;QZe^mnxqeo ze=+;FRvaAfVvg_elHY99_W=4Y^n5wqTL3r9`sVR|+EXvv^ZZ}=ldbP)xcp~p*0(~^ z^LWpe^c;V=;^6sR`~=c35pz7&h&lhiDdzZW6?6XIE@pobMvpy&PYW<3n ze$^@VFQK1! z>LA;mGn_c@XJ!qyaklq-Nze6Mj+p!RW-<3~f^5(InJxY;%9{?yU^`xa-Q<+d^71A9 z1O3GBmH3K&;_pcOpH7_nKl(7+zF0U*%<)hq=6HyWw&_{F4#}VGkCXJ=zqw-W-&%1i z>XV%3Ur)w+pR#^%GXBBy*$+;ASzd~iA9WV~gZcR9o2((Wer!**nCgY zMdD!lq&&7STefHWYQ$_`r zRx#I8ov}8~^;GFm)?80D9Bs|@RC1hk@b@Fde7`aw-o|f#XSFYiFv;3miBTzRxa)3{(42q{}%Os)c802AqnZf z49A?0y^%IQ&R>nuk^TRT5|VI&tuL5wm_}r`YoT;^fEvh)cHd;Q2|+^4es3wm(7Q&-IgE+Ni$y zWu9uy{IX?x<~Lc=*CW47IX>3I+2Z%%EEvNiIKStm;$O_iKVEXAyic9_eGa$YVe9iX zTyeKG=l__o)_mSy^sqIb_oqH;9em#Zm^GjGw^my7`F`S)*59GLj%C(|;K|FaBhJC; z`DyFHaN7!No{utqV?7Ms+|uLhEbcmW!+l z;G#>c`8<5VrPh2NzAn?6&%={{XU*r~<(FHJMf2vJVa?~`(bKK@eEd+3^@&Ggewb;^ z?I(7vuSZTw=yoAa%w!nJ?2zJlBT$(ql{ z#}``j`FPhY)_gwRbDK4vk7pKJ^LcoUn9svo#9WW8OR?$sJiJrlGfi*1+xKFg?^+~(KL4IP&u)JW^3N6D0Qbo8eiPg#$2*^ge_3X?FGjpu%;)0= z#CIa@EwbtPe7yEA*7qWQbGbF2m#02t&FAICGN15yd5+8{!RO^NpYZ&hAoCHQpSM@q z{P_GlRpysPD1WcaFBNc>%r8&E#WKG<4eylsWhERZ^G6-rDSjEQllkNoI8Wvit|zi( ze%gq5)AP2zTu=1Ke8TlajLauoUsj2Een>sdZqM~)l*~8$J?bPe@0Z8O{PPOjA@ffY zTq^Sq&zH|g{(QdNCG!#QpBKn{#QWu~G9U5&c&p4upTK)%KH~YeUGncle90xYJ$%00 zEavm&noDh*&zJYge8uO>nKEDT`ErxYSA3p4Ugjr0PmY~o^W*d56q%p+{hSOj*JqV7 z-|_o6H8Oww8*Y~QiqDTb#Vy$12gL8d2{M0ehrR1;eLjMFWd7=a8)g3D^I}itD?TsI z67zX+T9M6<>qk%K2R<+MWd7mv;sWtN{Jr&3F`pk-i23}uR?O$eZDKw@-Ye$w;aHj9 z_I!80%)q@o?X9{3fG$MM&SX3$5T>v>;bd~uymkAn9gUX0^{ zz6hR+`K8mWhjZYq9Iqz7LUZ%AIDdxsn6N)G|WFO$dC1#3~$7IP-W^r3m%90i%WdQ{|qn2 z{Ks_wT?y~19N^`c`n~|q!hDlw;v3;ySs!kP3+4|p-v=4$eGlhIJemu0^Wl1NxMQw| zW9m_v;3xF=;hNO=@3~^^ey?0yf_hbpc|NQc$8-DDHh-Sa8YIs7ZnT*5N1ix%e2O{V zYs3j?PrkJGG&oN@0WK0xgA2to;dyWz%H{o&8{lGz&w&fX_rU(gUw=1CeR%%esBf{!IIqHP@dD#N0nQ zYiykRr>w!6$6bY(*VC0!Kc4@p#5~`1ig~_^`-jbs=euHQ5BGng^asy(OQd}~-)$H3 zd{-gu<@v5o+S>$YNc(ucYm)qVzN?ft$6JfUdHvod=J?ww=Jk8KnB%cS%BHqu8L|fj3Kh58RI9I|1?F@10G+{2=Maz}qDKBzOn< ztI?EqIUJAv&qcjhULO3RY+npNj{flLQw~3Z`UlW1re6vlK>6vW{8h03;rQoxuaf>; z>%=*}Y9#);6K`?M*QYHK=k;hor;YRaGi{GG zuRj-jX3gu*w9l=1{h1^A^ZK(};=KNh`NF2>^=JB**1Z0#67%}g`^v_7{kcH=4*KJO zcn4h2Wz)CA?c)E!S^I39^GAWy_e;c^CB7dX|Funj0InDR3MYSK;{(pe@zrfT1a1+> z!WsK*{8+}tC&HQE+W08AK+NZ3^Q68hi0_s7*>K>0cKh?;3h^X3rN_oI;dSCG;I!{- zoX=A$H(CDy@g|ASf-}Ci@dCI-d<&fUgN@$~FA?7bryQ{HQf@DP5Y9VjRb1gbv5G2KUqHqH;GrnIfra~E!-n+ge!iw@i*YnzgWKwH;cEyxxd=@PWXWM zQ@GN@L#^Ovh{y9$^%k4{GsIKEYv!)^R0*o&|Z|1FLm@gR77z{X?XHu2GL zVWf>82S*LC9tqcodA>|&we=m1_&SOI2F@L5w?7vSL|IRS>%^1ctU)&ZJNSV3O1OHk zjn9N9A7-5ocZ>f7S4P`7&*x=Q-&+x{m-u`*XNXN-0(*yBKLFQ?AA&Q7+W6yefw&5e zjj{1(;U@9(aN#f;U&HiASaZEmxz+YB@3-#UXw7wR>^s(1!lh!~|2ib*{jb7zZF=7S zN`2q@W_Yr=nBHOIH{nFuDdz8QCcsYxGVV z=kIe=i+MjR_Cp)z{jf4IzaQd#WaIpP$UHH>AJQc*LHia+effQnypQen{JzL`@x$=s zb{l^jZWccUr|q)w6>x+2Ie7FZHvS@9FMgTvPi=fXTqEZ7L4wTp|3W;e!=~r=N2J; z9FdOxlJ(PIc%66{oFeNfULO@oed7>sl=al{aI5%aI8)YBr^9XHR5)AKOXtBw;tSwz z@f0{()=yb*mH78?wfJhdMtnV7E9Udi5@}B%;&l?g4Xzj80XK*j!t2CkaGI>&9)_F5 zPrwSVpxg!JQOJ@*#eCVmGl zkoDXS*pu~KJG?~vUpPh9Z(qVK;{9-*tltj6hs3|aOJqIA>*ab`FAkW9^P{ZihQO`j zSU6wSbH~D-tmjUItHh(=@v?qPfwzm#h6`mqcRm~?>$gd8jhNT-^|D^fL_A&Ab63DS z#eaZ{Wqmgbj*<0R0bD1(1#T4I4(H2y?k+f5)^DY7gZM!>N7iq=-;gBhuSXI0WIeYO zt`%3qS+bsc4n81W4OhwfZ7sY`+z98%dhQK4O4e_0!}a2AaJH=9n!<3uNb0*2@gj+T z3Ma^V?lZVWybmsx^&Rh@RLgpf&kN#Yea7bnWnw-r@MOKl=LJRLvk~r;^__r3Ot`TJhEvYzAbdu z&wU5Cig~}PMC$t!;u*5O3p*a|74vyPs;uvZFfKllaarHR!*ybQzihOu=lK1y8gb7= z98a>I6EcoO0b#^=#ke`K2Um%1V)?U_IieU;I1FAG-zxe@}$JcXb=$Be4ERHQO(Q=SX>v!8_n0lix}>^CSQF#A3aA zcmvMgF(zJ({9BNJ8qECPKzu6B-=!x05xh;@18>FlB_=-jLi7i==lwZue+;}3>z4&4 zo&t}-`l8&__X2o7&i5F`!S=30`RShw3jSUPx6eU*2+p?^CO!wQll)8J6}c%F%$46ny} z%J;eOL~$(2&qn``M*G>mOvG=(`mNY(p9}wt`uq9c0`ErL&+mSC4(12n)$kXvzx^6` zCguk}z7gI5`|%IpDVQI8?}Impe}&sWu=P7^680D72S5F>@JjJmI3DwZAJ2pr!+!ZQ z;YiE}zHfo=g8lS&!~4Y*@b#D<{CExgq4=M03!ZO;##g+zk#VelqRn`E8?Hti#Q(>8 zAHjPtU+0_n9=HwhI1}FoFKou~hFbtUUJt@G^86(7BAg$^!{9pc2)JH63T_aOgV%{C z!j0moaFcijJQC->0y7?V!)r1A1IE|EQ!zi57|(&nVgB;_w-nxrxbF)1bj)AAm&21V zU;17RZ@~QMyBQwyUt8WTZZGbESK|88Pe1r#Y%lp814r$|@gE)<-zUKnW&5+>k>X3> z5#ry&=ZJ5F$BFNPCx{=0PY^!~j}pJZ?a{t6(_h=*k(jUj`gg+1VZT3n;1|)KzN021 zJ=*L0Xm|u1F!`MfpCCR9UWxwp(;qVp^ONkq3mF&RjPh2Ax1fL5h%dtSB_G@Qej2ua zQR2_B{^BmoFJ(Ihc`c|P=a)RB--zpxQd8eK@C5Pw@LH@NYfSt(_#oDMzBj`!Vm%sT z;(Orhu^z289ykT_A=aC|li@I|Cw*TEZ@~7x521buy9Wi&XRO~%hz~*ee*6)58p`+m zGQ3LidmrxZu;-U9c=o{o-V#%v!IxnC9I!qCo{ROMpWhUCI@Xi^`KACKf%RjZ*?uuR z2XWscF!4|R&!FJ^&-%WE_-0A}A?%?&QTPYr-@y~H{`c#1^ra{t>;Ec~|Jm?|i2MFM zT#fdinBewB@G$h3AAb~{{sYzrX8Y&h9k_n+^M4y2gzFPO{a5f!xSsJHjSaIT|C8aB zl70%jP5SFbcn#L){{CMKFUR^m!Ib|zJPYf4zdyIa>k;=o5e?}?fB5a`Mtl(R^W(#( z;(9{%-nq{t_Ca1XiedX_!J8#s3~!U| zAAk=beXL2p3~s>s$M;L{Xjw09g#+Tx;9|@-e){j>DC~dVM`M4a;`s4>9^5AJnQ*S; z_h)z#=I=7phv(x(@Ib6z@mfpJb1)xnMcnryI0oyfG*ka7q+fySy?G}68aN);cSXi; z!HaQzjWz3mo$w;W{q*0!VYuG&(+@=cSy&I1oBWT2Z^C*jVDdW^o-O_@ydC|SY|>}J zbC6#E8?Ze$!gJpr;PsgD?}h6mJ)d8Xzr#MiejM>NTkLvh1?+$LJe%)hbj1!d|7nQF z?-v)wSzn6l&F*8Zr@=YLTl4pzGLE#4M@|XyJcRF4ERi_hr|6dQ_|dj5VL9XN|Q^gqu^X`8>GoY-_ITtHxV%+;=5ekA?G+txJ$TWwbS) zH|#yrn)@SG>c{5;FAhGkyL5T_bYmywC4L2fv2qbK1J4Y zYraoW^;c`YPf`7hHQ%S`7V~|I+-Gf^$7?~FHQ%qOmN?(9sHm}VzF$!*=I{3{SZU+@ z{l0|1S@ZY%mWlcMed}s%oWI{!SZB@O?^{rB&F|ASOa1u!ea$c1IDfzIkeI*U7u{gv z{QbTJG2ahsonYfN@S${TKHrYM&^iOo5cB(WnHSqQ=eNn1T62CY`kgh`0eM$g@4>(3 zoomhKuTj6ZE{5lc?|@^jvT;6-ExyK@&tns=v*z>HjvK7`{I%>xYd(K%yV;u0U$@_C z&F8Oyxz>FCdSIS4pT8#DY0c-a3&ec>+9>AyQgNP5ACKd^R*pwL|7();obT%;J)i#- z%JItQeN}S2^7-BZIbQiZuSSknKF`aRi)YFBkoyjq~^A($-k> z_vO0f_~h@)d2&4R_vK>5eE+dU>cjUR+vIq~@bVgD{P6w9*on40o(FbbV9n^;#?ohljEK1gL!hibA3=H$2;%W*NAz4zD|yR-k(pEj1~j|DP+@c#Vd>uh@7pHKRuHSf>Y%kj_q^WH5s&inISa{TjrTPpeU z{(Oqe2fRO@G2d>_`}65{TJ!#ViFp4sj2F4T)B|roe{(IVHKd^(Pon8QNpBd@@CM14Z(@P5f}GJHVleIB1kIzPW|3hxrm;*zv&pyCgl|fBja>^<>#vo1XLkGBM}Z zIx*{agg6}?9Vh1aJyFc}k0*<{e#{kf{az%#!)XuuuT9#+_BE}y_2v3H^`F+k{uP&? zypnY`9(G@0TULV%x*_%NB^a-br}X#<{*}6bHW_CGFw!&J@|6^Jkfu^JlVb|2*o` zhWf^t`u+nR4~Ono#CvbRdnLXdE)#dcIpS~Oba5aX>r?TOa0-lS1pDVSxLV>D!>O=8 zKU@YENqh$EfBfUItI_sPEP|=8S#$hUZL}^y!GSldIewbN96v46KO7%X8*F-xkI9lh z$Hz{|pW`D@^1A``JppdOcARhSga;wNbflvng#8cO!}aX=O}0E<&&RxJ&H8PZ{5hZG zHQP9k-!$3&F(>~KY>@f*{r9Nk&);)Li%p6l9^Ze@7W4i00x^Hjy-dvO?Ya+aeR#bc z`)}(+c)Xa`+XZ5tx2nZ_|F}cU`v7I_Ha}ipREc?g(ICDAZWhO)Wo>WS?XwWyDe)`e zE-{bKz%HAf$7h_F$7hw8$7j8m*B{MdUVrQq^ZKJp%9panl$^L@~AG2aKR5%Yb}onpQZ+9l@upfSJL{P;d-l9=yw$7PK6pJ) zBW{A%iFv=UMcfLvi+TR)5%c^NwafMo&tId(XQRGREjG^cS+&H!gd4=X9%vEsdZ1m* z>w&;0Hb1Wa%f(#(*NeISZx?g@-y`PwKfA-`$MZv7t2NjE*>e1G{Xg$B8|V6eryPG= z|HtgJalW6Ex8IuY=PZ%qkMHNqljDu==M?^I)ARkDN-^KhsTK45)zfCv^ZlH5iSzxO zZZY4_iT%Z<=leOyV!oe~CFc7%`C`7Gvp~%EbF$=k=$VM)QOx&qYQ@WNew&Z}t3Nh$ zKCOeNqyLizg#0h({Kwz(>>6m#Z@j-)cbGNTqh*I%^ZZmf%$oPNa*nX(?@h%VY0cl8 z$`bWB=lr{1fHl|u-O^sJ ze>yZ|53&umt4R(FG9sUsQZ8z70|Ak{Ez8_A2 z{q^zBaGb<>{n#YekAtV9g66~Z)sc?59?Cr4?w_$pTXeKF_uuwota*M)JI zo=V&;uG4;A|CLI8cszPZwtYMv%ST%Ccx*Yvn)j~*r(1KqSUJU->%-_vthqj{6mvcO zj?|C+nI-k(@v~a$$K$76>c{(SF;YLCZ}X*oJbua~f1Y2LNSx=_ zIH@n!_tlb~`>#gK^?r)9hu7zU6K#7q{&S>#6R|%QVSA2eUVmgd`-knVmhw4%YQ=1S zz4%IJd+y)u5|4!^Uux^a@m?Wje>X~c_Rmf++nXclIbJKpg(!am(&MxoY|ldYL%77a z9$q5pUv|uRUZ$bo-lreusN|VE@DUkNtJP*}n7tlRowu zKffWt{4*VQ$@bs$Q(lgfzDLsk&`FEH*F}G*>?X&u(?+{N#db-e*cO9I0ZB+363vT~^a30JY z=xVqC#5aZ`=g8!O5ol9dPUQu!;W{&blEg_hCVezrXZFxA#roBk6Nc{;>PPLie}Bhj`b+W8m$kKktTD{$H4v6^ZsBUIXta z4-5UhdiZ5{>Ef{7`nSQ$#b3j_VJwq^{Slti*GI!YBaY>5Fh1Jx1&)93_$J2-9X|no zCG~m1@kYlVIPP-n&FGuoaQGX^|1`%JIL>i=i{nzq%i#Y>|NY(ZCdVH+?sgpbL*M-3 z;q(}@ehiQIM#7682@5@c!T!Alp7L0jH=g?keg@tF^E^m5!>i!Y#=GH#aBzGhehAL+ z^T&EC<|?coo(%KSP5R^E8raY89JmqYh-Lm4!Y$$~xB!cKUI#ONHT-jZm>13TIKKZ1 zuU!-79c8=&9t77J$K>MoKCnnhH0$GBI1G!FViR8gFMiqjS$He9=Y0U?zX6_$^ob_@ z2k;mF4D0>-@rU3G*PHer{c$t#{wa)M6x@Cy{7*P|yrcfJ;a%&(yz@=G5}u0us*L{y zKaTQRO!+#cr@R%`dwo;`FU0m~CjJJz3+;^w3-#}R;0=iHH1VPNsPASwUM9hh zqddN5%KdQ*yd3#A7+1kxApKK-I4m5$sS@%`c+%nFz3a<4 z@UWrbz2j>+yb5s?6D;pdc*v3AUc2d!eekBE!+ZPlm>V%3jtUQr7nC;{UW2&b{(N|5 z9LhJ_7r|cQU|x!#9r4~h@T$b{-t+Gh@KiY0q<;yHOh!6UB2 z{xJ1n$IZAl+-o*I3BK$4@X-8<^2fo8#8cqw#WUeK;@jX6H--1ke=or&i1)+s;*^_E z-n?)x#~eTD@RJL|y>D3`9KV;t4U+~1k8l1S*fsFV|AmLn$EaT!y#A~3(D@yH3cmkq z><^RQ-{D5mWKZHFOl%KHr77!~2gnC-uZ=flY+9&t17r*5|I zqYr@>#YW&e-=Xn&JRFv2@a|$E8!%h5L_+r>UJ}!lIJ#!VDj{9@P zCxwoWS?~;`PviF3pLf8I!%@Z+@cf%lKjT&KlQ&27UT^#pUJm>H{|5XyoM6(w>!fdo zBX5c5UC-@>Hz9p+enj~_@Jz&`&Gvjzf7Y!Lq3b2YkAQcHli<03#&|I4&w^hRPlk_Q z5D{Acp+9HA|Gqn-cYS^boO_|UpNaY60r-Kn5xv*bkHTldIVS&S;HThlGd}+ghrwr< z_-pVA+;nR`EYzQy;Ok#U{keZp|M%dfZ=tBAJm}qs-u1#I z@P-c~ye<>ZhKv5_uYZSn*TPf(ZO2O?yy_#2cT?W&@FK)hjTgdWwng-=S008J!X+mE zrSLSA|Ag^#@aa2n{G06?;IQ{1dgsr7!C$bxrvJ9WtKP@)Y}^hvp}y;oALpab;U!Z4 z@8Nx)MD%{&D&kgte=wqVJ#qvb2B(_(90xDj716t1KNbF>J;Hn1#8crpUq^U2Ed=*( z2D}@7`^bjO;eyBP^N=p4e>&i8 zH{}Ix!~VKE;1$P*+BXzl|9T*_{zHDJz>8lE1iw$i`d?+tjBX1>1Ez z^o{xALAYJK3_c`&9?n0~Y>)Ko;j~y&9^4GqiQC|~qip(icpmJZAHIQSV=}B{|6uzc z;5DNodw(y$n~US;mdM`g=i%_$o6+AGFHD~V&srGSyS^O{?}sli`DMa$?~Ux853g|i z2Y5Q-!TvygdGI*#4e$wz?cWzHfd`dGdU2-wrSQ^4k-hWBOYq_cBYThU7I+Wh{(5g0 ze8R)1uNjYDz!RQ{^vaC)!kcO$JuDf6?dyU6*bo`IKZE)Wy&d-x@b{Nv*govvBzQCa zzBc|5OrMH>ne}31@BDo}JRN^uHx4II_SY2nk&hz1d~-g^hG*mN1*V()Zi83Bqm3Vf zCx{#1bMW`@g6BV!-vUn!AJ97=biunK26zX|_DB91?S=jI>m~4{r~%%+CjJL_#NYwF z>+wIsyT#AJs}3{Y4@7y*a6BA5|G_`NGvQ2=-*4t&`)Kq1Im9o6*T&=fcP4%(JR;ea z_Xxc7k^#N#eF1J*G}tS{f```&8{qHm7~p+BB-Gzq;9aK;@YZqvApbq^%2Nk;mz(?t z&c}QM`}6TA`0+Cac!eAi-xBzXO!NE2*nTx!F8f3LyIv3;T0{(X2R z>a)b`zYcgD_9vFv!TR>V&%);#4_e@Pzd`z=jE{#0Nqfe@BP4z)yzz2;pA;Ry{e2aD zOZforP1E1E!K?maT@HU$HXwL@X8Nb${V;}KaQk}rp!jt-Y|((we1i1b;oavB=)HdU zFTCx%itREb8xM=0qzL+>x($=O}JhBF}zc}7jA{4(LY?@9D--AHotd| z_6@!p^ItuFAIJ3H(ePT>pD)jVSBfu!9~WN;g_2&115Z?k%`j`2A8TdnZ=_}^%Q^DWBk8D7HoBcQN9@G!{as9^q zcPyNP?_Vbb+aK$Vg?GPfes2izN$`;k148EmI0v35{apaR_?r3tJL31ii;&(QZ;!xf zNIyE5f4sK>ULf1AhD*dvaHqe2us^oI75Vo0$H(xc$@c!jet0?B@0T~Q1kdZRJ@*gy zXFR+TasPNf9p3+-xt>9NFMvnl_gj*Yp8atdyzmV>{;z_^G~xI#@!9Yc#K#-o0pEn} z{qax%&lEogPZj?IUUbaB-ue4oc*GF{d-um4_)^5r_d@mg6@DXrVCeb=^*d@I=Cfl5 zddHdT`7_~RNbk=tli{UD4)k)uLfc;tYyS7ZGZFXGFNgQX4)op&gwnqPZ^HM1mzeT5 z!~0SPdeP>1-3bprVW5|2;-ACg;Pio^?Z1a-j>Y$T%<&$1FUD&!exJa^6X1hqjQ9BtQK_@LJd( zAIsozzaQ9pe7yi~n}E3K&n9@-h4}ur$$uNX^*r-?7AXHycupGn*TlQw&2Us$s6J8m z;r&4w&qu&|e`E|i1^LIB?We$Zp+2o#KOz4s;7RibdWTGYSHU0R`*41JZh~8pKf=NF z!~(eK&OyQZNxa^92;THpbaq52zoqc}=4D>pTe}$JXM0+uTu)ar@Vt+h~?M-`*hi9REY1jdbkAnBg@jD)lMEU}g{t|c- zzCW36JPW=Fao@MX_v8DX<4yg`;0+HC^eO|P{GWy=qP~9m=iw#N|F6K>|L@b-pPcVl zzrApkq~8yFk^c8Z;=EtrC^&%s%)9o3@5etSo&bl7Plsb9eHt7sz6_3#^fTdr_)l=8 z_zrl0`2XM%{JsO{bMEiQ;pO-~oj;#H2T!>U-+vnxYTrvte-}^Aq4dqL_D6@~U*Lt( zpHctUcfK6~pU_~(|5*5b*x#Si;CtW!rhn(a^TmtcDfqrttcgDfp9G(5yb6wovD^vn zpLOt4@DawF;YH$);W@B>JbeT2lk$Fn{|6_U?GJyT@BDuvd?dCXVB%-OGhx4e7r-yV zc_w}ZJYhZNH{)6GcmFiMzk=~J2Yv+K*Qzq{`(Qm^JpvEG_rG?U_|r~&HGDeq_s=IA z;EBk;!KB{;@4@!D#vj3DGJd<@JHZ~)#a^TlCh_ZQ(i-VMTGX}3V1W}PdD@1zu*t?eWu|3HuT>Pc)}*z zKVQQ;-Wcfp#pM4JJgeEBFOFJ-0PZ*Y^Wi8s;J+V=_4>K+@HbK3F`@FOz}3=USHP(_ zzJkX$)(Zu2ihsPpx5EnuMD?C89)UN*$)^4A*Lhs|C{%^q>!twr+iSLH%q`V$@ zCEiE&ug@aTuuXU$*dK4h;oXNth5o)1@;e#U{!E8QA^%F#AJgIe1I_zVNM8WgOL=#~ zYw{uSOOKKwx( z4@XCN1!n)B2p`1zzIn!H!DEo$V3Yr)aJt|BII3sB6A;ff^M3(6<2dtv8QNP4Z-6f{ z+dm0sV0+ew^K~t}PTKo2oQF8u$9OZm;&}6Z7xHU^m*V}{5|iJ5;Bwi%2ad=4o*0I~ z`6&_$%j=Oo)i@4biTp~;{vQpGIU&j$n;c4?4$nY5#iY-Ib^jL7$lvded*M}Zlu5rF zULme`w%-IleyM$5tp~2f?;_`lhP5y7Jr?+5l8I~AYuUSm+u1;Kw{ z3B#ijpMQk@5rO-t{4{>GeTV9~uGgV<)?enw4-0PZ z*FW@>27mJ-bd#r^wbFLG4BgTcsMEJ)40r!^Q?vs z-iP2P!aFkf&%|DHR=|1&`;VUpZ+P&Z+@B%yE&}rVukWLS_PTxZtcVZZkKrc*&wKO} z5qxXI{+9^vSPT4H=qa21PZ8b-FCF{a{|v+XwwF1++VP(p-|Be2;}XaB!#i-lFdu~; zf%}b5(pQHE&yOdlHSAKl6ZYSS zqz}OpCH;_x@cj(Q|5%v)$&tzO=G=<;`+l2$GU7`=4ZWYl{Kmp3+!uO(lb#6AogaF> zMNfnM_b=I=Jh*(O&Hq-|fB%y4d*LwLpZDAIm=k{%UW&ysPItlf1&)KIelH;Ie>nQq zz$@_nfZt#LaN-*rZ-VE(5PBbn^>2lLy({$mh~5rQPY&H5rFX-L(qH@GVQX;z-1Pqe z*ndBh?Hlwk?(a+bnZNgI%l06KxTa5r7s`0ZybtS9Y47rTalXX+v3`G@kMxhjTwk$% z*|7iqCdWhW30Y?K=wN`$d>XI_txQsrJt@jL&J({(PiAUB>qktoMgYd>FR>?!nOePt0!x z(uYa>L3p2(|2(#zAn`E2Txc}jJd1*YxH{Q=p$G@#%jE53Y~s3izrmw)`b<jQOu3^nND&4B{iO zJ-R(u-Wqs8LZp{y{3?77w$C^9slxWlW&1jKpZE==pYb%_Up46;|0Bl3BcbD@- z?~ldrXPWusQ+U#_0baK$?+!fgT8R43GfpnS{iV6#!T0;P{kKT}1>T3|@yp{cWj*R! ziT4FfdC`yH{v95+os6Xk(;o@XMckh+kA?5Y`yk1F{_rTw@1u>+f~QOR3GhtVKVHY9 zybl)yg3kk(|0KjCpA5ZEN?!?2ggKV!>)z(u);3DLgV#YD;LNc^|(_A9WyHStWC-)Hj2+f^{Xf8^J%0QSEh#s0V*Zpe!A(oKEu zWqR~ay~*!kI58L3C#FBDV19oo+oXRU=J%ca^47!Je{aI&$lo6i@4@`O)DnMu!s+O5 z41r*OcftIAl|O!egrm^@JX79)$Iw4BqP#@oBj7aD*Y}CA|9vvH?@XBA5A(-E8XS%C z7ntoQ!~XZLm_7&Q_sjhB*TdUUo?ri4VSXRYkKe=X(Y_>;UpdV0Tlw*&@F8qpZsLD~ z{qMuEyau=j+v6|~wtpj>j_Xy$_?Q9f@sHjzK)t)PF3j<=+8!AU#fr!SsKE+hqGvC;h|l!AYU_i#h(5!^Oxy#^nDz zJf;Tkzhl9}_!@YBHNG!m&KE})BB|QCgo8PyL<9&~vrv3-uJ;?85W4#a{CyzxUr>5qhm+#c{sO#X|J{`!mT_&E{rx)bgGKMkIK zyS-k$1QYwAQ*HakBR&DwU(v{q$KRFkk$B(Sug^8`6uCajuEMwi1qHzCgc z=Jrp(nF$lve(li@kI9!)gyGvLkQv*7uXJ{?{tz65?m(q9g*fsZoz{Qi6aAY5en=K#u^DCK>Nc)+~x$o>B-yaDNBP5Q{C z7;lo_Pj{;R%TQ z<8?6{9dGOVDE!as0=?t6>~E+a(kGexmLa|njx+xJX&iqWLhnm5|7Q?i*@5}g%#Qx_?QSkj{aI=>T?OK{dcyL{t9>ww)f}rt6=TFL|DtuhaZsi zH^B$t98e_T?w0`|R^mhVWBio+}PdyO& zg-Dj43g2~1c<*}pQh4~t(DzvxpAPTA_h|#BygYac>Nn4<7YgBPke@$3=fWE$eIvYI zd>_0CPB8iX1+JM8`o8!uJa2sh-Y4mwfg2?LGCW<%dlmjp(!UPx7PrD*i2n`GmiBkR zUW)&GBi{Q8-aIorI3Bn@2w*)DkM~pk>(k-z7+gR5{r$UVFdor=etSkBem3HMe~pB{ zI62&FGwmGVfzpW$)G+Wo%}4okrIy-oZooL(p3%ub~e4obT_t`1Ly+EZaqy#Stp@#vTLpc7vLACK?r`QyDB*8HA#{10dQ*PVE) z6aT>R9(Wp#uMX3mZ=HBVHJ(4n{g=1j=zIU_{}K1*adKBx-hV;T2nY%)3NtRCD9i{k zRlUXsm5?+L385hgn_yX8OLwKKt17j0r%}fhl|ghEWgHh=Mp0Z)QBYA(5KvK2QSlL# zQG7&YkQo_e6h-~L&vL)tTh-NhoM-;{<&{_0{oHfze($;Gp1XYahJF&`CCHxx`taky zzlr4G!QcbYPlJBbWPCjRD7&vO_4AZI`Y`xZ>{(%a9|^wqnW_B!8}P-%7vymcJR0#o z8@$i@J(Km(3E&5gPWev(ZzugAPqu*{j>h*n;47eyWNf^h4St;8pOgHa3qBWm=)cq8 zQbeBzAH60WuZ!Tj;Sb~KW#IMCO6_}hft z6B$eIKyc@vbbLNd!bf-nJoI$CZzlD30yq=(uQR~iN7;P~p_jmiM)VH&8~g5s?6dXb zYrq%(ekieD|1 z)Bo$;%!iaO=m!<(HxoYem!CsFAN*|R-vs>&5&etMzZT)|K`#ua^6W>iLLP7*Z8PB| zfA>HykEY}Ce(>a2D!(5DKLmchr}t;@sZo4GjHip=Y4suXw;wo`KaT@vi9ht`CxLeo zzUlEj9el+|y5IdQ@ZAx89r&>4+4~z3{|4{{@E`8sPXf=4r}B6k_(!Ewp1u%#!*ln{ zyvX@0;MM5whdQ1IUvO;NJ`3RQMD6i1@X^Pm;a>;dKzbqk8^E<_J^xnl6aOZS|J~s3 zKCAWn#FGEZ!IwNcZO@y)MdAzc{6_Fhg!lX$`q%z;-&?}p0{tTLbG_&Po8b7o&@S*2 z;SYBD_ra&Uf&1qijg#;{244(4%vbk-&x!Q^e+OR%{QwXDAoyx>TDKIUm@`BuM| z{<1FRe-!ve_`mDn5AMT|b50{DZZAHshbyq)-7;{4wPzdDNVmaACb!XMh>`_SJWh5rfo;lopTd@p!g zR9_E)50B#8<9*B*5&h$=4?j(Odwco^LZ4$ig!%0$;NL|3{h-e?Uf?e|{~G9zjO5j^ z;MYdsPXga@Oe)V_0KNzQzw+=i;Pp}Xo!~!5_{HEWz(Jnx1wMIwy59QVU!i^(pBp{C zS3@sQ|02Jn{V$gAQF~kp{`HBee(-qY)pZ-v_&)>v65xGJi;Z4+l?fO7nLd_>2e_z)y?t z%fLs2L;l_cE`US&*MT1-{f!>~t>AN__5QcPZ;#Ty54>(;+8=)n{sQ!UJ^X&}XS_o% zIet9&_K3a~d;hbel7GVkMAPzhspml9Dfx2GH@7A z-vIACe$Pbz_yPE#?dks3Pr$d3pU|Hl2HyicjGt8>VEsgVp*)9yPXP!1W5JJ%=r07H ze|lQKW$;1JLw%nQeh%~#J-@F9{~)T54}hNrJ@ogFg71MI!ha1s1UAL;S^ z2z&?hkpG{7??#{OIQ;?e6B+-9I+lgdm*Efb?*)$e9}PYx;(sdmiYR}_f@6L40>*p1 ze|t3aGb4R#0{o^Z{ByzYi{$h3!M~33b1L{=aH#(?z%M;Boj;!ij`iz2_=B8ZUG3$2 z1b99w|IaCZj4RNu97^{;=fT@Ir{NdCXGQpB;18Z*?}BElE(V_)@xKim z$M-()OHWSqjjO>|NBO-DT!_Md8C;F7W`qnUIjje{v68lMetVWdwG7p1-=p-=F1<0ZvzMY z>OSyiZr&%edJp;)qxiSrb@aDT-aS8r{U%C(U+^B#gZw=6a@s%YpO1xp?U&N{o&pZ` zCuzUuf-gNg?LQ}g-&#rYdkXjp==*v8&j6o%4)UJ-seA@s13k!_D)?ghhhT~SmEfTl zAn%<2Rp8s;5BdFj@V)2q-k|fpAAF|U(_}yX3*gJ5{&oj=C~x_d_r}qKy%cA%`3LY(|>3s%#K}5eEd`EbGVoHkUso0@P!foQQ)E3w7-pjk7a!w#@lni`*+g(ZUWywvu9#o zIOD6tNB+Wmw-x$md(Y(j)4AZgpdaA<_5C+9-lF=Lh5o82KW*^M@E`2?9|OM&9LB?T z@DTBb{_$e)A>==dhu45d+v$Gv8^HzQf4s-{R`AQB^xg}ef7_}gzK??Uxjo$6zxPLxClNjnd}V~6*hfF2kG@tg=?8s(9XPJ(vdm-kb>{cZ!_@!~x*EGslWKLlU!(mgYX2*vk- zU;L6(A9xtt-IdP2kNg<@`(-viO8SR_KSp|?ex3!s1RV5_z#^znTY_+0qUasF?D*RSXOQ^!96-;O*9_R9Og=ab%3o&Hg0USlfeg`pW5q>0-wv|zsutr1y`X@JBlv#u6Y6&>_zw8r z?EL3~Z{fYv5ieg2e9f2k)c0_tK3)vIoBY1c`ClV+jJcZ~|08(QPJ3Td>kk~;n?3}7 z>)fhjKKTrIXxpmHtxPDwe-rqbPqUk_g1-*Ffc^QSJpLboum0+unK$ok`pqA~JHZ>F zi@x*(&LjOW+JAo<_{P1`^ORZeZz6rSa)`WlZu60Z-}+4S|E~=t=T|1+{~PEs-wAyZ z{2Z{XPX(U_-iQ2#`RrWq_IuLyn*l$P^GItv{|)fcBPg%q^T2OqJrVSSSAq|Z&P!Yb ze$U>klJ)REgX8+V9DL8_Rr=nv)YsME>!S0-H-aY#KjP_q9sHgxt1=w9v+*k7f1TQs ze+SXWqJeyj9-7oqP9-n4(3{^P(O{_{{0|1-dQ9Bl6o3;zc2b z@t+C4_zA0$^=AkCHR#7X{X+2mhwwhEkGBtlFMSgI-|@G=>knU*%s2lEek0PX5M_zd!W@2jYv!&W8s<;Q`a67fG7{Jf{~zN*LfOz_hp`WX0b@Qa+j9=rq& z^5Z1%OQ-BTWhws)!RJ0BJ-@L7d=l~`^q)oWT~ANx7l0ptKgg4}gKvxI9|K<(;TysC zgPWe8uM0h!;_rix&ZYPsaF+a@==}c<9vxqm`8X9M`F#j{8TI>Srw?6?{z-mb?f3xj zI?@aHufW$FmBx2Cc)zdiqxB=}*b+&Q0Co^-vz!j zHQ5u@i9hHEj{%>|dH)wV{ZR0O5&bCemE5lk{o#LsPwk}PpARlm zpMm}Y@D&k#7W^OFw>;G2Z-Vb2KVd%oJMccFAM$q*cn{`}j`P0*yq)wz_{+gr=Hrmw z*z3_3zBHuo|49G)6!a_pExoUQE%@PRfA5RnjnRFZuYxymzvVPf?_1y-qVRWu9}WH4 zPQM%c!zlc}f#37WRGvQoK8*8Ye{%jmflq}#<@iw)?1opYO7#V3HT_xDodeS|~7hg^`-v)~`{y^qzTFZcJp*CxG) ze**gVBKq^d--+yz0kw__kQp};Deoh z1^D&|Uj;rIe5}*21%D3wc*i$_F9nDFfUipUcdSb6N8bWJllA^no&Qeob4Cq?V4Bf;;2ezwQ=EbwEY|E=S3@Iz7j&jW9|%-+M7_C67O!Ik6}`7iiX@aUsf zC+FAC03UR~>g2xJ3&9(s{mvcWSM1CC;@+Me@V)Gphw?3fPu_2}e(y-)e`s?)k$9ur19+-}g4}hQW)V=h*dEvhfd^7oZwU_T^@X%B2eORIY0KAFtVSV;f z@Nc5?2LA!x<8hRS0VMpt1y6n=)zAL~KI>EV-m=h#K8w60zu)up9tXaR_}}OFN#FwX zAP=4az6kokPJb5oV|;XXv*U5_0~=Ro9=E5Ze=PVpC#=pi_c46pKcb(#Xm!&6PK5pk z!Uz3s3VcB!J%4v5xD5Y(9{-ELe*^tRjw|4u(8KsEfaCb<;0K^jIR66pZg3cHe+Ryd z_(FMJ1D;_&B$W4J@O99`_;@RL6Z9~?-UEKp^y;L4Uk*MHdPwi%;2WTa_&yCD>aI@S ztGEGtYG-vaUw#$*3UFxuJHYo7-}C`ifBy%38}dEp<+%@hCG%C7-~R-@j`%}*`yh`; zxzD-H`L6}9M?MGoW55><4P{>A^e2MPphoYT$#Qhx%!Ohse*N9{=Bg_m0Z+xR+j_sqL1K$PxD5rlBJdb@e@P7>)+gI-ZckfR7%a6cUlAn}AMW(O20s|lZ$W=v`eeGkJghJL5#WP9FqGUE z%YqO4_q03{eepdPeC{t9k1n4l!C(GE%6~HWwqK|HcPsc*;(MFt?`-gW;9ZV?cN6EO z{$q9KJjX@om;8$H=XeLW01or{PVo7}ANu1i@H=>)M*6epFQ28qhwnXzynQ+JyB=Jf zoHxD@e8_M3K7{B0&ETD!C;ux??;YT)Z%FUQ{rR1&9|`{=r(Xg6+{=eDU-9|vli=>3 z)A&9MzKHlPcm7+z5Bw?Zf8PWj`1_RpWAOGrrs019eu(-!$Mg3q@Z{(Ja}}^^nT1!z_)=r&VK~>^^yD- z1;_ILIpF<~Uw`NPli)iak=h&b-~$=odprGP@O99i=y)4=-6PZW-V6KqPX}MIk9{9P z%6l$2j=u=La_^yJ{@(#!2M+SN34RMWwC5uDKGNUf>Awv8ZN_^Tzpn$|Nq(N~^f!Rl zLqFT`TfpW0(*2=#2|xC-S*O1r{8;E=eehB6PUu13yBd5K^aGs#bKoy?o>b(UtOxG^ ze&m-K|b4*crqe8&dx`yzY% zX7H_1d!G&dNQ7s>zlhRrgZGQ*=YeYxeg*ib2)_;-zo+oGuyC4ZI9SC@h} zNA}MTfX|8OSAc5~{c7+r5&a9`??m)32|cp6eiM9c#Q%Np!_j*FC*U7O^k0DA5z+q> z{KN?V9{iFBuV%mdmo5DZ+n%|2Le!KGOSN0eUS;Zx;L==!ZIeC-@@~{UzY5BKj-Aw?_0gg11HVw}AJH z(t8hhBj;&D`X2@#6Rl^j1fLV(Yrt1U>*ue5UlP&33x0h>|2en@4*7ooyqfd^{yq5G z=zQzl5?-U%J=US5Z zBKn2kYa{xb!RJKy-Qagb_`~3rMEEKRe`H$z&w&q*^u=4iH%05MZ-F;P^dEpr5&frv zBl`W|)e-&I;8#cV--B<8@Lo3{Zz6mE_?#$zPXPZkitjM+F%kW5z?+Xq%kv)abvZbqpGNqXM0gtfaKv8$pA*p+z{f=R zrnl4H5k4RKB}b+6(;L7qiOx6t6Zq2Y>HP98@U;>Ba`1CFPZRb}|I9>o0r83cBlG1a zpm&FdGCy{_$IE3hxE9%ez7Bpm^eGSjJ@5_ScR0Qq zynQ51|2}X59Q60<8t(r@@%<5qjT<0pd;x|I6z{Qjsb_KWns%QK)qa8df+Ko)#7^jn?(x!`l5 zzuECg;0xZ6>JMj1cyQ4Fi{MS~9@6hON_*762flMC^KuWr2!7MMhV%(tp}!6s+XvnN z4&Sp9`a323r_=Ji5Bv(kKgQ#`8hiusU+?$};B~jA`ux|ySAS+G+28ms_=(i_!|+Re z{{Z~R%hUGwKj2khX%9*Nm*BImOZB%ufG_&|Q0CQ6-}gr9=W}WK4*~BJtv8+we%@7S z{NMc&`rtL`dg~d`hokhL1>XPKp~N2lT<}}5r|j$LO@S{1Z*+VX_)_9K)Nuj4ll{@q zzjuP~g+I_=20n}Y1^htFj4}JjpLBt>0 z|I@<%k@P*MFMu!kDC2KWtIsd@;oHIY{ldOqCh7eUe12pv+JwHp{rWV$d!SzlJ*0O( z`0fb*7997NKY=IdKdbk!^dG@`>ygw~&~Fa}A4qvZ|2_=-o-d~3eKX}9x*<*fNa$7U z-y6NY{+amqp#9HrycYV!gg?OXBcWdu^^e@O^l#`-box5@A0Ymc_Y!~T-|L~@ z0e+m*PXzxV!c*W=?;A?&180KYb936??x(+Y>AzvUxqU73w?{<(IP|-TKh)PX;Oip(8^B8u{wnx>(%;Y1`!4t)aF8c=fuHpC zH2?R3hrogUU*J8!t3CXm!FNaTJ(BZ)cSi9&9(;R*4+B4z@IhWY6MR+le(ePK?TokM zJpM`W{_uzS>J)Gp`k2$t0sr})lwJYfb#L1KZSWo7kl$B>ABy-d1b-$<|1IEaBm6$_ zgYbv&9|2z<(LW82@9%yAe1DYQ*ZSx`2LA{75BAod_0j(e9G}lvjXeG%{GtB$1;^<< z1$<|e-jU$_Bb)`_9^u#Bz<2^Tz5eci9?SdV!9zbw?H60XhrxeLsBdtbzpXUXZBhIc z=;xB(P+vR2ZQ=|4?Lu$^9O##UABf`r5cn>_hyL+#@Tos1yvxVWfrsD^_3>r!D~Ru# zp1<#a3sL(23jTS7?*Si3_)!1%fya?gA%9;&zC9WoG&H0-wY1&Y=7_}@Xvbw4gsGGJ*4+k@UMSw_6V^DJP*9j1H9k7%I1UTgNMMOzD@_P zkHSxbZyz=^wJ~4@Tk70pEF;eLqk5Uk&~?`p6~ph1m8{m!~A(G_?jsE&%w8VgS^jto%tgw?_Y!C{=5$SNACNd z=<%Ndj>peDIL`n1;H~5*l=r>ho#0TO8^E{IUp5n;wDP-&>0$^r3HJ4~pJzej@nQ zjg&qPzBS^X0zVw#Iq)wd{6_HmO6hylg>Rt`K@a`!gU~b3-{jEietrx7O@t4oe!dgo6Tu%Le3)O> zfd4s)@Ay7?9vs*2YrwyW!neWSjPR@b=-od0HQ-|?Ur7Jm;DaOl=|1|u^wGZt{xSVe zdXV(5pMX2yV;w&Tz6tz9#|M2IeI0y&N~LLC*tNG5;w38$Z(9na@0)p{upJ>OoMpKjEqPAX2W zt2Dai3ESrE_>9m?g-#*AP;RxWje78|Ri~kJi}~3?y;LiUcP^XP*kC8>T3P;d%B`uB z#!A&zx!w_;iFUo&s@6M|sp9tRc(c%M=Nr>I%EeB;T|KXy-9aACgYPfM-h81}YZUXv z#{7Jv9!i+iTF6ojR0zf8@3{V5Cx3HF%_%jf)SOatN*%TuRO+x&hm|_4)DfkQD0M`s zN`%%~lhqo}=F~l+f5-Iig#67}dnh%h)SOatN*z|}uu_MWI;_-TrH&|dM5!Z6RpNxU zLUtx!>DG%KTBWTXV_qk;Yc*e;Z`P(3#D92gK2LKM^G+_6D}`>YlP^`<%|fR*o7qzC zls43=G?CV$H2g$8@!M3db~X{2#??OcG(3-cR3}>jknWAI=_iqgiB_bn>0Tw7^!QS#EWf^3{5!k#81S z?XsmJ-H!$=trR<+!oDpt=6(Gp9!RV~yQQY9^~L`5g!Fa4*qMmy1{W}I@C3ki>9 zR68|;MGB^c3iO!*$sLnhCR7^LJF~e;eRArgbxGoM;gAS^bp9# zC2RP6zT9fnt?%aZGxctMy3j5&JiL3_a4dFPA{LQ+Gp){iVV7lX5UpwgPCL4C6^g}j z(|UEYNmkXKK?S+}UZ^=<@0*w2C7whEs#?&QR0IAvfj{qg|+!=^=q5 zKi#cNE$lcgyY8fNt6r|HZ_RY)DZ+6wz9zG|*}_6O-?iAZ^8SB~CpW@GWSPlNFLlao z1W3J2hD#YQd!@@D)MC2_^;N6Z=VCAE+pR(|6)en&>VY_I&6QjEN{OOw9!46M%F|t> zj!~I=+lBQuee zyi%No?4E_~s;R+SJtI+9~*r-ShF{Cj>kLtcaQ9_BM6!a)72O>xmpO`i^F&P*~ zPDam>rAU6UMP0Cz@K|LfGGfby;%uR{ZK+w_F_~T4%?Cv6K37ZV*+TocYQ4}}avfr6 z$GYvoNr$dZPG;8);POZiJQ4|2xvAa>!A>vKy5%UE$y|0I3vvA4v#RRC|16_t=l*Be ztX2x8Qc}OVD5Jpcn=hg*O`|PMElf?+Yp5-#ESYM(q0*RTgNdzbqu4QZe6CunHD|Q3 zYK1!M&5CI?wc>1J(X^6Ur9C#n*lact>c%OH4T&sXoiPq_!;vb%6fozD$JTXW(FN8-2$qpq(Uhi|3~SA%FQ$?jnP;N60?bb{`7%3uY0jPq9s_1yBMsZs zM-Ow};oKnJ^89?+w6ys-s>iay4B>4uKgVjqJdqK;n452v=L;rzQEu{8D~2`(qoJbG z2qnC{YjD>fOvzLZT%t}=t)X1m+%zFu<@SQK{N#xI&D3l84ujanw# zQ>W1Cu&ijNie1yEpjIKICyJw%RDvW*VXHjdXjlhmm5U}D(Vl{4-F-+o)Zf zEtf>>6e_Yb_oNbEG%QW1EiEshKY=7OI`8QH4_{O-OlU^*7Dh*z<`( zfI-OeEbeaVP9|TL8U-~NXo5_#VtC*$%S`_2+E5G+r8Q!B;IC4}@PJ#XBT5}r>ZqC} z#B9=8GptKgF`MAlHLjRVur?`G%qF;%I-=AOrH*DZDluY_4YO-dDyv+h-g>6F?dsjpjolCX54S7+7viYqWw6b}%j!It#AqwLA2p>AYJx)D%(gCPjj;bX}mVRr5j9O zpkpnedN7L-W?s`!)~P==h&q6_UCk2nV$r=&EwU=pPOTHq+8GTLD6leDG-`=?wNon7f(=uM z(e&o44U?rVyL_P+63epelu0#NSE7EhRx;BYsb)I!&14B7)rHZ+y<~=^oAT_B*s?Uj zZaryn5jX0$D4LijcXoE|{B*m{^tM=R5164uMOq6WqbjDx zRB(-{&lvG^){H6t_*$9~jdY^gUM#W%stwRqg;uK0R6CO>qt&)L(@;&Z*&0QiPN7a~ zjm2_HC=5n%rWBN`Kv5@@m2;q!0qLv%fYi^P7@W5HFH3o`xL7T@9c>YPq*?Sups2kf z@WcenP?`^FhYX2P3?IyQH@QIWY)Lm%3?1( zp}`uhL?D@;ot#lwx6F%;k#-9U0bChj&({jm<(fI0r~~CvS@labgH@XgBWv1h&|r8X zh2S?Peq-+0suah@b0eZAQ^aznP$|`Tc1=XR8WR#rJ=v2{+{V=2tf3)<-+X0fslKL! z9Xj!;W8i94wX{rlXk=2ZdRw}aBrKUP)R)v`Ws39f@&jn!Cr+cl|VgdCKPZV$*`AV&e`B_#R*eTtQ z7Ma6#fpu2e!T3axjInl@h%VS?g*1?^f5dVl)yn#8uDoP2qt#2nXh*mg*D76*oN_8mqyG~YxHmM3jMf^MG&LB>^Gvpz}sjFUQ-W@ zFo;|i{l3xdG`o}#E>!~(9+md;Cj{y?B>?r_6FF%})|zX&YPKRG_h|_#3YQ!8|8 zje4$IV{eC%(x}i~*#00ln6Rvbt#U^alq!;{^D3I3(*fcrcAH+FS+7k^FzOstj1+6+ zQ=<`KsSU5P1hb0n88i!QT98{wi00A6tevH?)Z0~oN~_FbR`}e5Zkj|)3t$2jt*~5} zcc6-KdwIG>NBoW>$v$V z|AbN}lsci*38hXbb)8PIGC9+ibZQ;bsd!9R6=Ui@uI_Q2e#gy6IVY5JLa7r>6MS6vEE78h$c6yH#piR8OfT(?REDhb3cY1X}IPV$swE zanx0Dz{OITai{`Ffdm(a?A59xA&I7;KJ6w}2ywA(V2&C_0e9)XE;J0{QM_UvH->tW zR+JmY#8xN`V zwfZ-wf9Y{qcOZI7G-RP>+m)G_5(2izzE+yAwq>7PDe}wQBKugG87Itgtixo~tOSMv zojn^IHTRI!@Z#vaoCDaHTfe5cb~GdML}!uaDE)~X=j&`yBL;1236D(M6QCYc{g&-> zaa5Ys$Vo~WlsC5AIGA7@GH@!@g>suiDeX*a;gpk%fN3Z=h-0m}TdW5&Y}E0$Ta)(P zfn`Kbd${#jWmKs=Lxxd_P|L97WGeDUtTyb!&6uNIZkj`;3w2?Cw=OA+o#|SpC86MB zx@OWQEjIVH1F=bAm0`a&l{UlrIip)8l0jxZ{Sp045%YebsrnTDt@4a0ceoIpob@Q` zyhyH#qENImrAB$4dA!u9*3la^eBEykI6=;jvfU1jeVp;KekyvW}UbRjwBNMpFiEBsVs-dyXD78jWNEtWtCsNRES827t3Bt23WgXw#3{) z9#MwcNqD+q(Z(3POGY_A5)7dB2yyMI=m8Gqw=AU8@C=aoR+J#NuP`xI(coL?*Vv;= z__Jpzkmgr!SF_s8vo`;-y699}YC0uTWUJNQ6-A%#*0ING(&W-bNW0T?QA5UDQmISj z1TGg&>eAk#E~PG17=Y|#YM+;R4Lg?}l|azz<~!D{V!Q=8HHDddX38w)SiRVeT2z~? z99OB8r>177s85 zpO>=%Xm!C4wIWlosevxW@&(JB8ncksW~7jHK;-WWeMzaq?jehOadHSiy0iRN*zLm;zI*hr%~18CgQ6mKzGO@S-l7moMNIh&#qYd z+?fRTQHBksAxEL)SB@wIha@d4^sy2Aj#Ecww$rFfO!6zq=&nMoUXWuc2IdQM*xYqt zsYI59DN&aj&ZzEb3#7Wf`!|U?L?-T$HELUE8>je;t&#rDT$Ha3^6X}aZdP(BzmiK) zvqk>MF&Wp+4Ps>v`ZwlBT|pWl)9U66@@HE9s1nK=94C`g7h9=%i)9ai9_309g;acU?RWGZcD7Q;&2vmD9eJMd&pE43pG(*D%f#^m)J_o z`%*5P!YlQUYAmif%%n1VnFFoD*Wxlsa^!BF{?GaX2K7)iC-|g*B_YQ`ObJq|6mKrZ znzsyj7Zr^mvS7(e;?yX9%(6WWS&F$IKU%q&E|%$z^m}z^4J{PfLG)x6N{N%*MN4s^ zE&DW5(sF}2uTaV?v=d<^?m%9&3@ws3)i_B>&&+6*b*ItNiGw+u6`(j69|avl;_?|0 zW06#DEtyl(DX$=UEgN+fnlvnKIqHHd(-C=$Vp#IKh*mta>MUYJAyjp`^*Evs@beSbq zRY~~s8g)!gx{cHdrQD##5K%_i&c;khvGPlDN<$hEV~Wl;`HgnMcN=iCa|W^>ICE`6 zk6(1oqbAT>h!mUCWNxjT&k*Yo+a8*nWJH$Kax%ep&2_kU&J$yi?&#X$*%gbCzbr=j zQz#Y-@?C}eOt&DaKb^ub(yW~4G+3wWhlA^7JJ?jv{U|-07;gn-u^FK&pnVlOo3azf z>FWLzwIgj+xih(N+BQx=^{7i3Sv<-4GMzFapk_vt2R&736KcDXh^! z+6G)!4uQ$pWehv~$YFW;(Y>6k?OJDT+d6Ce)>+%Q&f3m(*0!#*ws)Pi&Fie~UT0;` zhsbP`C~Lb!S+PXnDW)j-F&5eX5oCFheIN{D`q%ixG*wzNu0CR#;=s2C6w?%LrHW~) zvcJ8ybb)U7p`>bu=XKnXBYuoo(*=8e7+c(Ra zbvP>~L-DkPY#%La8);eDe}g90L#%%GSNX(x$l-YP8CM^%9(LA<^^m_x73(2xrJD6{ zofdSR*48@ZS*JYfbl)~N-mjQp1FkgP0KoWQanwFuOdPl;WQv=Sy(jI|n6c>a3@^6t zO+(P3rVE_5`%R9EYAXgn)+a$x(8Y>@K&_XU0$bgRMQ9fy^20eqDIyl7U#(|EFVb5T z<*mAlmOl+$qgBsu#FUol^+KA-s)H#}jL~@}oz84#N4LglRP6V7PA|Eq%|%RBd6`-= zDxSpE&d*k7W@9YYfu#Ke# zBKR?BnXFGdkX?R&RZ`%rmz-T~bY>~4izw!wz^#T*J;P&XdRV%%ebSR^d1sh6LLjqE zYD-dtG_o#>JGL2W?WycU;0>xS2QY(|sF%H`p(BclZDw&%SEHg6hBK}CI(k;*8zNUv zDJ@m(b#MDPcyatJ@^br=`|QA8)Dt1Li4fPg>>7v~7&0ek_7Avi2 z3nkQrxzonohoiE|K_i?0PhzGZKaNGY1F4SaXdt`EJZz| z+L@Jdqc}`X8Xgo)L^f-r&?QV;QQ%$nlv|&_AjH@Ij&YoxTbPReK~Q3 z)OHioV(Y&ZQ^+?vP-aX@J#=@ozmK96uF$93&8jMk)`e7cO9Y3WJdwL+O0-=7GzYGG z>4t!7b}VT0cG4PApt0AI6~^2ci8dwL$rRaEV=~l)(GRpT@`VK~l}LLv z6Pp*uFU??==k&j`iJu$GSq+vVUpA8}*l>iG3oJ_rCMOnWyY)F6WIaCEhOx(nC`vX8 zElpV{=nX>;;6$uvGi8-jePp(!mN>dwoRd>pb-f$FT!Q6$%`9s~vA$c0O3GNW6PL0> z&+5l0vt43tSsv&osM@ye>*V>u(sVhm<`23Psky)TAVV}Y_mmp297i4|lcwo}m{&up z!a2*j54~D;aw2xUrpEygDKMAISTZdmt`Mdz&6BZ`%9Kxj^*$!M9C8`2UeFf82rr9% zl?t4Rp(+;InHqPDSPmiH_5P-Zvm1+y7Ew6-$C{Hd$6Y6Uz4x@wYu8zAst>Xi8+g9W zN?TMQ^<&m(h7j{?39F~dPjfOvu^DlY0@Vdx($c;YeqB(9@>su;3%V#ey`J7*`aH`6 zd1pENz;(=aTULY8BYbmG`yYGxv6u2%rm#*)+w>+8I*3)cWe`&e8!jFQuvBDaZ6s^t zo+z*avXtaZ0JDmZ8QRVK#Gue=+uoaHvgHw#aMb;K&Svz@=wZ&Q1R%cmTo@H%)mbC?1 zR+hTNVvDn^7uwdmIk6YW^>}5;*#w)j2{tG80%$hD=B$=-R!cdt7YNN*#9jch#cs|P zyE$9z=4`Q>v&C-C7P~oH?B;B-o3q7k&KA2lTkPg+v758SZq63FIa}=JY_XfO#cs~l zusK`o=4`Q>v&C-CCia}o>^Ym-b2hipzBEcel=rpKGN7hp2KmM*Me}PERwununmLxiR*!v|N__j1aYCF@ zJpV*Vtx$n%I7y-U(sRH5)YLmpi&Ft82t5^5r%ro4W|#YDA$z$b?j9e}%Ho<~^<3|C z=VPyq9X(`ELw#AoSE@699BJD&RbH2G4^!*Rf6<* z+cG_hO{>OZW>>X`TXA@~Ar27Q=7pw(-ZHm zP#nobrJJdn9s? zM((l5J)Y6rX|>47GkaQtblBe$9ZuBvM3AVL3lVYe5P=kU>HapdB9BOSjeNC55jON=3J&BiEGE*;V#$iOIqJ8T?JfU@_nPQ zpXvj$&)eoLZ=L`Kls=Gl_$0kzG`neqG!D$FdTejE2{HArT#q5HK^37U0Zl;Gxr5qL zId+#*F)HjXlS&t1(q9is*j>g4_Fyv?>^95BvYR|R!^$=53_P){}LzN%-FN49qd%A4kLQ60o`)27`4V^C8XIB>YGz*&yLgG%jJyRRQ(*-aBW z!^#cp3V0L#}H&FgHG#HGuX!y#_Y-*N(rilZq;d}xKFqnAhj6u zogQ7G-_tay;HzfOC@dD>L7^k>p7548+Xz%eCTe$2LcR5LUX+Y^N~JiLmxeVKCuMD9 z^iouDu!3819zt{Ak2fjV%&S=Vf}K@OuX@vu>kw_R{mJa)Kf$tHZ?JER#>I62cG{A2 z?{F1(nQkp>1h#y{5u2~&)UI6Oll?S~p2=Bxu2t(v6Qf|D^pS>1UrM${_O8f_oPn;1 z-MN=67v*igw>T>YTXw@B*A}q{58zF2_E>0P9S8zCCht&rY7-3M+?BgNLYmmN)I%_p5X_llr&w zS~zs`f?v7c>X9^f#FDl*>or#=T6#}NIv0G?o!ku9tMamtvklGJR-U&RdVo^no-5pn zRYC7X?efl)-&Q3FLl{u$TEn7Q?ypgFWUk|+n*OLyx&|TdDadmH0Nafm1dBX%0jsue zm}OT`espujM55MYPp$e^iM6e9b3l-*!CVORq2!{(A(nsH_)3tJ)EMPjFsBl^Z_MRl zqQdgdUwWdL;IZKs>Rg%h3nQ7jd$i@^hMenN}k{)rZ~hHm&tE86A9}LB&6OTkPEPK*Je$XyBHWCdg9NGuq$MgY!Y~*Tp>M? z9UKnjs==j+@GIwfk=(uD@^ljDgmUME(-O4RP+Sy>A%l(AXq&C0lOr@XqC6dW@Gpr% zBV3~rh(XmP=gzf#!*Lu#;8KvtLfHn()5Y^8PJGIN<@^fI&etKITpEyk@a$(DkbHA#Q1aZ^=_$RG$^Clblv#9n`l;_S=H)pM<^fsI z`MEz2iDyr|*uj_QA@S^IU7iD22V?->WpxnzBu?#v@}jPEQ!Wdo-BjMw?dzl~h^xH5 zLY9Uk{`3Lfzc7k$R5*l{qt{&O%X5WLuhNiJKTI4r^m$**hA^%~L~zMyh+q8G%YR8+ zj9fXatjACg>~g$7j-Yoq^H$=;G6JL1i?mB!?A`*rC&`w#97q~R|B@Gmvuj0Sa5azT zYIAF+{AHI-2*UL!!N+syFFU%KBitKpGk%H}uO_AD{~HmEo+djc|J_g%lBy=>C#_Bz zlx2=z^<_DiLmI}On`AeJ6H-JowPWjuyyv$io84dnaSNh9o7D`i*M}`Fo4xdj4bo&r zUtces!rhPoY$NJFJtYqx_9ig8UC!TmkYP``y;UAU&aT~*?D$X0(~Tayk83~<`#5sP zqaBmE-6SjF}FTCCnwb5ZWS%IQV}W6e#Z1x;Cx zXKs={wnF^l$2VG&9DC$3PflycPbN>=v!z?Iy&2lL))JoxmAo;h9@|duW7NVVTvjXc zn)FKTF^F|QqYPpj)G~wkR&1U@%)4u&0sOgKTKiGY4^1^7#9vVL144!R&kmv`O)-Ed z?P2YUW?jhU~Z=S=VTMl2Yh+afCc9 zttK+vt(@%3*%-Q9nJ%eO^rg7Gla8vii6Z9-`zZB%Yf&=5^K3TkQ^sL#X9#HrG`Z;- zRnCYMczM3ZJ!316l{EGVia4lr>vYY>h2_Si+@$bCMJwKr9gv%d5am&Qb1ShMLD{oo zVU$j_%Da_@%NYlZz2!`UM&5F+702Cj*4>S|W!!(k2wD~<89&ROlFzOcacqLh1?+O3 z+-cZPH(-2_qlmPCwYW5h2vE83vUN1SBaxlUA{buZ*Xx!)X+O;5AZJ$XMO zn!hke|5+YeT5A)774%<+iTWSLu0xK+Rmv*T=RcJHEx9 zsz*e~JL|lnl+AACUgBxCnP&275ZADDAr!hM_Bhe{wBsjl0Z-b4&V%Ad#HnICAkqys zbqxx&aph31dt}Fa8DOU=D1)wCCVG7JTQ_0UWVaSk$xGYhS$-3|+NXNFRgNz6PI43T zdOo&fM>fa{TqRe(mL^h3p`szjOoPpV2OH(H5_$|mZ3lERy?Cl#cFj}1%b_$eYhjYr z4|S-AAWn&>ubk^mJcWg>$Z~~`nV7jwv+oaf>q=v-2#@2Ig2uW0!ETW$QGf~K-&C3$ z_^fyjuT><|X@9CTt_VgWOq|RVD0vy%*bt|ylfhT!3e#65h(5l)W!(w#F#6#9FMBIJ z;_k`(?ihP=o~G85Z%lRin0dZ4&WOQS>+7w^pR8}e1f(U(_PUI?^emp^5^*pQ}RK=^yOeke+P>=_=Tnj2v$Z{(587`NlLH8yRk zZLZZhbv!;YF+4UhF}b;xfbq#my#_pG_hdtWU7L5+*Kv?^c$_n-V-uqzJU^0KH?odb9oLNxN@e?|rOitmx*i!D9~oIYK0Lm5-RLNXxBHm4WOG~D z(<8 z^9!73pFO6pgOrdbQh$q6Q;So_>o+BeRORI4mhF6TYU_BuI+@2j%8iA_TzPWqae46~ z$4T(=|15ar|0Q^yvq`%BC$E2qnJnNg*HMad_~0RXLb9~^OP-o!iL{GbCjK2N=A*hS zdGJD+m}Un8y}=)R%yTuw+3=K1h{nls1WtWF!rqRAEk9e)aLJ>YDVAXJGDaGwJ{V}X z1(6ke^T-ckvNFV*fJ)wVxl$Ljj{$Xy>_A43>pJ?U|Hhvy{a9VId0JBe4c zx;&~VTM7EKlBifpeHg`7UZ43!1PiAUdQZy;KoBi~~MZw8ai`>8u3>-)zMaiAj6?fE%UYL#-!YffC z)$@rldsnwud0j#>K=S1U24;H`)?}IA%L~Z%Z72aonQx|UxDv3Xv6#5GcBkFV4xK&R zNMN^DhPO4$hbqHz zh!^F+JG-d#^YXkLppWK3WRRc`J4<`ETG8j|;71v(*3NSZJiOM^3#2auACGNTAGag0 zy>{o+;CY;FI$K)DNxq$7I#&v=>I}14+Y#^ixvP|$4lW)Xap!DxtvqJusG6|U8nJ&Z zE>w7Kk1UFlk?Nu2xA>&+X(qxudd|qxy|P1Pg+L2lin3rIXYsnEYd4&&on)wWSuzU`ZN#xM9{q_N;C8n?%q7`ICP-HKLZFn% z9%AyBQv}OnOT`qoEB5FTr1s)$LEn$f+e=D#`71>d4y|6^`QddKWEfWpql(}rBcU1A z`eF`~sz1P#=ZO>7z2}l)O%=n?A`yGqfg$1a!BjRL}Gd)d6H-Mc-E*q*BBc~dhss4+~w-IJze2P9q?@1aV6;|S|9R`;+)oe zc*6pw@OTCBM-Tk?gAW{`WU}B8kgUnY^5NAUk?jbO($V<`(0Qa1Q?lstUAg8%N7MIq zP=M$>S|*j{D?Yyfk1V}J-kSnD_>~6oC#yMOV?8e4$dX5)!^bhu@m319Wn?oIWRD0) zF}7sanSo)e2G)-omRqJ%pDoL!aB)5iMiFrBCyz%ZPSuc%}G;S(&a7 zB#&g$`FN$Uxoik2Pef=pkqKMNyz=7**{p1x`I8X3B$FZJO9@J%7x_i<)5u(2wpmv1 zg6L7rl)^zpny1o;d^p*dBD*hQ;pJ>xKP6l~lAGRs4?aoN@0y7HhDEG!`0eXH4!=7v zD0;tKu4l%R^LJh-i$3OP&$1Si<83Q*aKD`s*C~sqE!7~^!}&rVm`Nngp_QkHwU-4R zRIeUtZ~!~=z5Dd~+9|qV;8&kTU5>JnUIPkrr1C)eO5u9>xw62dpkHc@VhO%Iyx}yZ z-&#*NHXM}eT~A+IV5UY$mrRE)RR}vA|Pk4 zbWHU5S*u5$HX?bzpLIr(jpWRDPhk>Y6vC9Z*_X`nQ=m4&6aVz^rxWbV=h`Sr^T{sr z$u094j(p@+R0^X5hl9GmjmnhWN2wpBjr`@5MG9>Rr;h}ro_+)oGZZ)LqzQ#&Lx`r+ zx0}UBwgIQB9GrBwyo&9|@WiV=8(w)9fV#rt1uQ86asewHUcslQ+XYX%W=j~m55Q+c zi3=lu#-k52B+aErzDp)y6(miR9N_KsPFv3Wlf$|e-0H@=jJ@@sl3Qn2O+?>+NMJ0v zB|>3|{Zw-IdxoQ#32!KYg>1g)NnXW|1aiccWbv^m}{ZEG^^o?qOc`NJ$#X zT47nb%To3CA(DWyjobt1Jba6aLTg`WC*6WhpeZNJc^-}Ek&9k0!Pm2!a3!6?__TNA z<&<(1W1lDYN0Uky_tJcITDcXd$w^uVByOJeP07o9n6M?jX$Mp9w12q(XQ_Z#lczGU zlW4!~Be)Rk_q8LglE*#@6Uf2|OuADd^XMwWYNYkvSicv_0ufkNE zE41lD3ZyU<%?eYI7eQH^$T`F$P}@?FueR2BTau%@CZ<&fi+mHkEb{Yn@#ySHV7+KA zkr&pcnJvhdbGH`?PSx`130_-~XzbF59n?-eM1fDyJl{qat6jpc zN7dDQ*AtHpBaM+KOZ9Zh^pbo=*R)*r1wsUY92QCV%NtY}EO3cYNPer!@`lb9?shAK zoSDn%5fSbPfMieJ#M#cicB zmmG1fgoyZTk6*r6?vqG$4`-KQB0ifP>}jQSk_U+C!&mMTo;MTL)+tsRQzR)B(yh zYH@Svp_FT%CkO5o>Q_qR!n;jNh|*tjV(Zxz*u#d5G!?xkxwjzPPK)k5#hux$Z18zA z*|U2=ocDN!A=Tr#ymJmFryaDHo_12Z8l!eTvg3$7N(m_iNqm}WAauyB2i}s3=+)&u zVlAvTYjLnp7LP@s>XMF={rMR*%GBSgu3J zi&m+R$lw(Dglo+8MlUf{>g4n27`dzSX-IwELLjODTS=9$w}6jyU-1%ZaEoprkB>^u zgxl`CCD1Mg(M=McZA zu6*$>-2O^>qs^I~QsV1PHh7Zg^^V9mEIoirG7 zOx24xOP0x>u=$kZ)^EajK02DuY~FMnUw+=ae%tYS7f zZE~YiPup}l$btQwVn18-2jw^{|NMPqe0o0>ykuwnFm*Qg4Q@h;iXgUZ4-AU$fj3Cg}`x z>@-V=4L;xonVO`x%SN$2%a2dbEwUaC`-oBx!vycxlLg+uFV*;j72ktvRB`I21{u>% zk0juIYVL=&&fE&X&^TzJZk9zV>K`c;^|=wirK zy&lLdxjxK$=4ocQ@D@WU=Sb)jVHv_s5Oqw|@+C2;VEzl>onyZHB4>({{vcPuX&Clq z^nRvnO~~!3l77~Zw_5o)J0n)s4pLCV>MSfYXL)K|6&>=U`;$VDt7m8(!W}UH`KGPt zO^gtYjx0&5hkj}LtDiOM^`v#@k|Q)UMeqGDDV|gbKk~UPvLYT_vbJvR-inMMobtUt zsYJ196!YX`S8-N0-rPfMs0k1wX#(1d7*s%IF68EmB|^$~I7Im^Rfc;B<()=oM}(5? zhKJx%0~TK6E9I&jl=H|-Ir*Ndai-}QAHgj41kT8qO_|Xx5{MR^0!c7pMd$9JVVn-( zDm|HL$)`(FlI*T}YCVKFzDlke6{kYVaqMwLRC8&3l{mYVp2&OhP>aG;qpFf+1jf=N ze}WUhvruVW)S^)G*}6CsCfjsOcH{VoqKA^EREu-ojbrD!f0PMGX&@z8%2ZIPl1uX1 zP4ncFB*!#oiu6`lS}`~3hXLgbjx|KjWWo(>vyheA6^oP{SPw1lOgyY->h3b;0O@Wl zC`y&KY$&^L$$i_AFNZyxTfPgzlfcR&ZlR=zkH`pRreg_ejJz3S9DE=}3!C^VFI8Bo z$~fXMnUcjr$4|{;;bfV92c=z=s)B5V2;RD~mJ|IJyj$mOUvJfBF2N9qN*X;c);l*Q=qIn1zIQalXwX-Mc!oCGF^3 z`)ulL$VAI0G3AXv)fW)ra`QkcRL&QOL(dWG`)~5HG^RUViRPhCjbSjE*$I&=y+rm% zTCC;ui*E=AO{bup=)@=SSg#17|(TFnuf;({Emm;9jz@&vfg z2YMk#mdtXicS+2UT=vpypCNh?5&e3c%!>oOrB2j1Wc_EEKb26k=Ya zsgG+pMbnl)s0`H>#Viizj72nMmXizec|TcHWH`#hEoOR7a^@!eA_Wnu?#5;m&pPmm zqZ3ehrRXQ})TPS{bzzTf&cdZW{3=$8emgRC@kPVb z2hm?-Z4JNnYIWHc_|&N=vr&?o)AAoC_jAR zn+mCLAyL+v0hoR#4Ej|t`3SC5T|*A{>rhvc#k9b8aVv^d(#*7G_*e6cOcBd%FS|}&x>30@`(WZu&sW^R6a+l>w9YpUN5Wb7f@9c z(Qqx<%m&m`AP%ZSs{%!WijYp}!4nr{rCjbSf`N)^NCI%6ZA>p| zK(AH|8nTs>&{Suk zfl{Gn)WAvw>My;cwII4+MLr_0%WbWA1UPD0yUS(6dI@rqmX)5+tTGSCpPcl( zrp#mf8gVRe3BQo!SGTz;+AyMiqQ14}IdrVAS~AT>Ebf&AQA_|4X)O^om@is#D5@_` zq6kcAw$x<;-KcE*{*op{JDn`imgItM;zNz9VxG)KQu8tr>arL}vLTLyMZ`-&gujPK zp6!!f2|HhLzxnF%43k+xRpm(3dMxl{ zMv5X#vke~p1G8Ea*eoCfq)N-WJBAOZr}5#IhWz!F0fVeFqjjg>YDf8Qa{(l268R>b z-=3xJl|{QFYX>(LQWZPZS}EGQ6o`BgsqCmwp4Pl5RtE5uxJ`a}Xz??nqxOCKkS48# zicHoMSg5EHAWI!5YA#z#+HJ%gbU|^$f;mgR3m6wgk+!&a(`uF-6~ELPqgG})sq8j_ zjp0hkgwu+Ivr|?EygXG2BQv*<>{k{oQsugo@-Zu9o#2DNYR7yFkffO8I!n;CKUpYS z`X#**CSRiB@-<>VF^);x)2m_SsNRWD^kt<&$EOM*>$xX> zJ;&tII{P5L0Ys~8U3`a_^d`cxSf~Me+i_6za=)8hio*P|V3J9tHrRw%8c3EZurCJ< ziaMe8W*(DDa;McNZYm)e6EKsqGDt z(l=!avEB;<(k{?bsM59#Rh^Bf}W= zydtU_1}YuR!Am^sx(hSq@@k;xXlgo<>L{0+Mv{Q6`DBy|HmjFRG9VSR%VYB6G7IoZ zkmU?&QS%j%mfG-m@-%jP@kjn$;YI?ahx{^FUH6Q?m!Z(-&-5O}^ z#-h7Z)E91f3fB)P6uD^CK~LsPKvAyBVev9I-i_eKKXK!q@XQx@leVx(tQb4w2O^S~ zZ~Wq6ryay7IZa+AX`&GkW-igV)Jp?&=fzf(%jnJf3VqZ(+%RU|((yaO)#A(reY;s8fL0%@&Jd0pQ_iF)TubH}w_2x_d&`3{b(!!m&(zCkAscEkcJ2_4 zv5k+56kP2lFJ`wF&E}3HHK8sB8>;yUm--MB&eV*Guh~(}&-j8Rm38r=Sog$Ntq|f+ zzr@FgsX28~t*=53CRg(@zQj^$_g952*i3Pz=34U=vYKGUky>EQFOCp5y&=RDoZ=S> z5S;n|Hr>NrLD6${i$ff;1YRsIR!cf`!&3{gafOyE){WpLhL>I_GCWY_Wrhga zQw@=ayyXx4~M+IUm!H%JiG;^**o@SNsy$qsC%Vv}|g1C8u z!EGtFagv!SR3$A{9MnJ?BJe_&q*z*;+P7eB%EnB+&5kFg6ebqDiXtpzb|5LS8&Vj5 zmcwI-ORrTKDw4o8tZrIKM9>?GT44`sHZH#~OfN|utp=ok<|jqWEoT+)6)UShwosov zk?tG=}E4r$tr(}4k|TRgwZWJc%pAY@I= zt(rf3y+G3my_F8E<4SaK6*lCNI~gH%+2F|6t)uj0EmJ{D=h6Q?kt|chfCseqS(~&_oxnt6vaI7N?FGai#@hCyt}#i9nO15+aD2a==$k zZi=(AQ@UPox*JB3pu+4yIfl1A3gBaM#a)8bd zo!Jr%B00bXkRxu+Xy+(Ggi`t>LYvw62&B$HXd20E6pp%L`Yyh-)~j@mN#z#PwLm*)zy3dx~r?IySXoh6BL9f8H~gRSR#8U7T02+=4riw zjbvIcKPL^)^f5PY)a0n!-&&sna=}U)2!ym3N7*I;gCfM|T|iV#f#~VUVvCIBB^FzX zEm+pg!wn_kXAU$?s%SB?8r4K{E2a~u zc0?qwU)TaS$ddK&11YrvP?3AVu;a?f?lo1u5{3)DOM7)MBHOdG=Ilk+|%pfv3Cb`Abl6HqsDPZ z_1$SCPeKs{iIh4LrYC}?=EfM#m$rE0z3W_o z?#Bdr#~uJC01@lj4wxu4RP?xeeS=j;GH)jO$@Umb0eF05|MrI2VLBuP3oGs_GI-CP ziI%}VY1yL@tdm&A@X8l#W#485E(;pPU0!2S2F!iA3ps$sg3O0NU)qwgVPA~~Egw^VY%H)vFW&5$#jBngjhaNSD z+ef zeL8r=gJPc85(*+OlN!zBDy15Mz%=9GQu;L)C@!gs2%u zH3~rh_3E+uEgJw7vH`I;x8PuOsPJDyorlL)L_!mOLaJGLkg3R346?cPPA znynPoAzjej%~eZ|w{K{%qT~uUYf|kX1%!bv8ou2Wg(9Iy0jQ4ESQ3i$MC4jJ zfYG%68p@x9(hV*HG@O}(3D2K>0BB#GW#atJ9v@_A-P|%NgCK8<)|zyem-;qPhACif z95j;<%V4|KnJ9Jj8UL<0m&g&W#@*j7{wz+2JMxlVur^yTCb(TuI*8hrm`%e)UWm_o zaB>PH@r?$aW{pYOM3E?S1W3jE0iIFP1WWXYPAgUV-Vg# zU)|O1exaP%A*_*Z-)HU4HoDSBfaf)o*)4pU7EQ19;;EW~@2%fu}K!z4R0dz zBGs@JPYnzGXG{KQIJsQWE+t_C2Dg~{T%dlO3 z=@W3R+yGgc0py^SwkDnD)ivC@$dqv9@(ecILkeY`q)_7qL>80|V!k70z1TxHqc^jn zyFL3sd;6@HHzuhI=Y!)bzJs8JLB+5k*X4JU7E#@8o#__RasyOckzqQ|BrNxUD}jzS z^Q7lm_O3~rR^3fefbZGU1n3}yn7t4NOS2#PKu*c@FCxLi8tSH#G-+vxIb199P2`nm zW}5G56|P+cNxpUG)XLy)T})uXc>y>m7HJG8aNg0zX7#Z^%q9IJPWpz(eDgXK9DrlyJq&fvUF!Sh5rceQZ|K(|n|V1%57 z>T|AcpXt`nd#*#Y=FEd=VH+ukWy&Ubi=S6 zG=q6L@~Jq}Gg~ioMvba7-zOHCRypFZf4gAn>#SEzIY`RkbrC~#2NGkH`=C&V6*ZT^ zvHhNnvAJ?RCMbxhk`(`s>m`&hce=*m(|oBJ80;dRY{n61Y;}(JT3;IiAMs`d(k|!9@6LnE%!)jt%?+;}pT>W`j;M&k+P2wfI8=qFdq$FKkF?%<;2knNHp@fX*ai&R zyG5QF4He~ho6{{9;SVmZPR=7!$TDXuuA#Brbvl@r(V0A8+qIN3NX2YBneat8NVm6_ z;%=DiFu+&21+p?|M#yp5^I?Bmo1allQ&&V*Ef3$J{8|4W$fFoXs zCylU?fs7Q&ak7nYN!qGmZg6^*i6yM^5(#2V357$KGmNa{GJ1CL%7|%^i#SHR($L`r z`2e|us~c>A)hMHKE$h7Y2!8Y?hjDhfYJa3iPM)jkMw+qP0G$g#)H~u9lR#@m+@;g- zL^|iN29;e$3-*b&CMtmD`OOu^H24~gH}u52wP2h7|Mz)NKZ5xH=IUIS&-S8!Fx^jL z7v2OsnX@zS&I5ZGqx4<|N2XbC8l@wr>@%3JV;;g7Zv#Bccdh`)pK$eC#Jv09!ENC+ zzYKH#sfa6((v!J{`4C2U_x~E^FJC&2_ie%-WO_e&bgq$k`*eq=_%fTAe<$7xUzlrT zPEjc3bqXU}zaz|l67PGD&owgVfGND{i?jJIW*(!oUjs+xy-}BMrThKFJCFVIZ_L@e z@yWpZ46wp`1-H`wFy`p`oXx`Hc=A`}`vLyK`_+qcjm+iGsVC#7zR>T-81Qyp#6JC_ zQ#S8?xoJM8Kz^0)PjM?f)nnm}Q#Q?Oc=ET9_Ajtoycg!11bzHs6LRNu?+AM~u=F-dXU@f_L;q zJo!7D_TR7{!3giwKg~C<{%+pmH-p>s{slmNA-sFw-4h-eRQY9V+&l!V^1c6O>hacm zbCK~^zrxp8E4=0%>hU&deyXr2b2=XZ$?3{}=A+HMf6O;;zLbH6h5Hkkp2ntr!h2E~ zh>m6m=NaFkpAXZ|_g^s3v2JxZ9` yu6|3eoNg9-5z8rCW3PS-r1$1;=bEzsMxT!IX-w-|>!)|-*AF)r-U67vO7Fk^{_`~e literal 0 HcmV?d00001 diff --git a/libunwindstack/tests/files/offline/debug_frame_load_bias_arm/maps.txt b/libunwindstack/tests/files/offline/debug_frame_load_bias_arm/maps.txt new file mode 100644 index 000000000..10f13254b --- /dev/null +++ b/libunwindstack/tests/files/offline/debug_frame_load_bias_arm/maps.txt @@ -0,0 +1,3 @@ +8d1c000-8d1f000 r-xp 0 00:00 0 mediaserver +f0b91000-f0c2c000 r-xp 0 00:00 0 libc.so +f1a41000-f1a97000 r-xp 0 00:00 0 libbinder.so diff --git a/libunwindstack/tests/files/offline/debug_frame_load_bias_arm/mediaserver b/libunwindstack/tests/files/offline/debug_frame_load_bias_arm/mediaserver new file mode 100644 index 0000000000000000000000000000000000000000..9e4a83f018346798c2bba668ed5fa04f0c3bad24 GIT binary patch literal 20220 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 literal 0 HcmV?d00001 diff --git a/libunwindstack/tests/files/offline/debug_frame_load_bias_arm/regs.txt b/libunwindstack/tests/files/offline/debug_frame_load_bias_arm/regs.txt new file mode 100644 index 000000000..f147247e5 --- /dev/null +++ b/libunwindstack/tests/files/offline/debug_frame_load_bias_arm/regs.txt @@ -0,0 +1,16 @@ +r0: 3 +r1: c0306201 +r2: ffd4a658 +r3: 0 +r4: f0c36d8c +r5: ffd4a658 +r6: f0168000 +r7: 36 +r8: ffd4a678 +r9: f016802c +r10: ffd4a660 +r11: 0 +ip: 0 +sp: ffd4a638 +lr: f0bb2413 +pc: f0be238c diff --git a/libunwindstack/tests/files/offline/debug_frame_load_bias_arm/stack.data b/libunwindstack/tests/files/offline/debug_frame_load_bias_arm/stack.data new file mode 100644 index 0000000000000000000000000000000000000000..847c8192a80f1c672310a76f7848a3f06f999f5f GIT binary patch literal 2512 zcmeHH&rj1(953+Q#_*rVBvpr`#s z;Q2oI`gU&Zu6BNktpnZwLJ7aC3wQ{426zqF1bhS30Q}29e;Q(U z*892REEz1~KnCClps&0YI|_Uea13w~a00-U)4O4DW*djz+JS#U5SuOIPT=prry6_) znDu!U(6PE*I|qEBfv?a@7d)Q_J5bBj);=`U{`AtX4F3|5Xv$(pP7P7 zDmT(8MM`E9QesRV77gShQAc_nb5c5)QO1+m5k=8b%BV8j+cags1dY_YY#Jq1l{Gaq zi^z4GuB4<%LGGqW)s&1h3Kcz{P&AJ@c}9~nX(^T6^B6j!1}CXrL{?AJPmbi z#}{EFI>$Ooq@ZqNFu~O3D6;Vqp^KtUDCWt6uz+ZDV1IZmGl!@jsc<}<7TqX6SbBhR;Rgao;4(EPG(MF=cBkMtt%V=t-&yd33eZZsmdk1g!xiBsftV%x-t zkQIpO9;`5J?_dF;^Fpvyp+2u*SAuD~QTs-YL5XPydDF0j9K36Ox>xAo7f=C3wAm72 zBL}`H+8V^EH&soZQ02_DoH^*LVTaAsu@_MZ`*}glx&2GyfrhxeH<67SWM! Z!dq}DDVPSPEG-wFayY3iKZ5Wt_8Txw4^037 literal 0 HcmV?d00001 diff --git a/libunwindstack/tools/unwind_info.cpp b/libunwindstack/tools/unwind_info.cpp index 5a8edfdf3..266a6db8e 100644 --- a/libunwindstack/tools/unwind_info.cpp +++ b/libunwindstack/tools/unwind_info.cpp @@ -37,7 +37,7 @@ namespace unwindstack { -void DumpArm(ElfInterfaceArm* interface) { +void DumpArm(Elf* elf, ElfInterfaceArm* interface) { if (interface == nullptr) { printf("No ARM Unwind Information.\n\n"); return; @@ -48,12 +48,11 @@ void DumpArm(ElfInterfaceArm* interface) { uint64_t load_bias = entry.second.table_offset; printf(" PC Range 0x%" PRIx64 " - 0x%" PRIx64 "\n", entry.second.offset + load_bias, entry.second.table_size + load_bias); - for (auto addr : *interface) { + for (auto pc : *interface) { std::string name; - printf(" PC 0x%" PRIx64, addr + load_bias); + printf(" PC 0x%" PRIx64, pc + load_bias); uint64_t func_offset; - uint64_t pc = addr + load_bias; - if (interface->GetFunctionName(pc, load_bias, &name, &func_offset) && !name.empty()) { + if (elf->GetFunctionName(pc + load_bias, &name, &func_offset) && !name.empty()) { printf(" <%s>", name.c_str()); } printf("\n"); @@ -63,7 +62,7 @@ void DumpArm(ElfInterfaceArm* interface) { continue; } ArmExidx arm(nullptr, interface->memory(), nullptr); - arm.set_log(true); + arm.set_log(ARM_LOG_FULL); arm.set_log_skip_execution(true); arm.set_log_indent(2); if (!arm.ExtractEntryData(entry)) { @@ -82,21 +81,21 @@ void DumpArm(ElfInterfaceArm* interface) { printf("\n"); } -void DumpDwarfSection(ElfInterface* interface, DwarfSection* section, uint64_t load_bias) { +void DumpDwarfSection(Elf* elf, DwarfSection* section, uint64_t) { for (const DwarfFde* fde : *section) { // Sometimes there are entries that have empty length, skip those since // they don't contain any interesting information. if (fde == nullptr || fde->pc_start == fde->pc_end) { continue; } - printf("\n PC 0x%" PRIx64, fde->pc_start + load_bias); + printf("\n PC 0x%" PRIx64 "-0x%" PRIx64, fde->pc_start, fde->pc_end); std::string name; uint64_t func_offset; - if (interface->GetFunctionName(fde->pc_start, load_bias, &name, &func_offset) && !name.empty()) { + if (elf->GetFunctionName(fde->pc_start, &name, &func_offset) && !name.empty()) { printf(" <%s>", name.c_str()); } printf("\n"); - if (!section->Log(2, UINT64_MAX, load_bias, fde)) { + if (!section->Log(2, UINT64_MAX, fde)) { printf("Failed to process cfa information for entry at 0x%" PRIx64 "\n", fde->pc_start); } } @@ -126,13 +125,13 @@ int GetElfInfo(const char* file, uint64_t offset) { ElfInterface* interface = elf.interface(); if (elf.machine_type() == EM_ARM) { - DumpArm(reinterpret_cast(interface)); + DumpArm(&elf, reinterpret_cast(interface)); printf("\n"); } if (interface->eh_frame() != nullptr) { printf("eh_frame information:\n"); - DumpDwarfSection(interface, interface->eh_frame(), elf.GetLoadBias()); + DumpDwarfSection(&elf, interface->eh_frame(), elf.GetLoadBias()); printf("\n"); } else { printf("\nno eh_frame information\n"); @@ -140,7 +139,7 @@ int GetElfInfo(const char* file, uint64_t offset) { if (interface->debug_frame() != nullptr) { printf("\ndebug_frame information:\n"); - DumpDwarfSection(interface, interface->debug_frame(), elf.GetLoadBias()); + DumpDwarfSection(&elf, interface->debug_frame(), elf.GetLoadBias()); printf("\n"); } else { printf("\nno debug_frame information\n"); @@ -151,12 +150,12 @@ int GetElfInfo(const char* file, uint64_t offset) { if (gnu_debugdata_interface != nullptr) { if (gnu_debugdata_interface->eh_frame() != nullptr) { printf("\ngnu_debugdata (eh_frame):\n"); - DumpDwarfSection(gnu_debugdata_interface, gnu_debugdata_interface->eh_frame(), 0); + DumpDwarfSection(&elf, gnu_debugdata_interface->eh_frame(), 0); printf("\n"); } if (gnu_debugdata_interface->debug_frame() != nullptr) { printf("\ngnu_debugdata (debug_frame):\n"); - DumpDwarfSection(gnu_debugdata_interface, gnu_debugdata_interface->debug_frame(), 0); + DumpDwarfSection(&elf, gnu_debugdata_interface->debug_frame(), 0); printf("\n"); } } else { diff --git a/libunwindstack/tools/unwind_reg_info.cpp b/libunwindstack/tools/unwind_reg_info.cpp index 47a4f912d..0f0156623 100644 --- a/libunwindstack/tools/unwind_reg_info.cpp +++ b/libunwindstack/tools/unwind_reg_info.cpp @@ -34,7 +34,9 @@ #include #include +#include "ArmExidx.h" #include "DwarfOp.h" +#include "ElfInterfaceArm.h" namespace unwindstack { @@ -136,6 +138,32 @@ void PrintRegInformation(DwarfSection* section, Memory* memory, uint64_t pc, uin } } +void PrintArmRegInformation(ElfInterfaceArm* interface, uint64_t pc) { + printf("\nArm exidx:\n"); + uint64_t entry_offset; + if (!interface->FindEntry(pc, &entry_offset)) { + return; + } + + ArmExidx arm(nullptr, interface->memory(), nullptr); + + log_to_stdout(true); + arm.set_log(ARM_LOG_BY_REG); + arm.set_log_skip_execution(true); + arm.set_log_indent(1); + if (!arm.ExtractEntryData(entry_offset)) { + if (arm.status() != ARM_STATUS_NO_UNWIND) { + printf(" Error trying to extract data.\n"); + } + return; + } + if (arm.data()->size() != 0 && arm.Eval()) { + arm.LogByReg(); + } else { + printf(" Error tring to evaluate exidx data.\n"); + } +} + int GetInfo(const char* file, uint64_t pc) { MemoryFileAtOffset* memory = new MemoryFileAtOffset; if (!memory->Init(file, 0)) { @@ -162,12 +190,22 @@ int GetInfo(const char* file, uint64_t pc) { printf("Soname: %s\n\n", soname.c_str()); } - printf("PC 0x%" PRIx64 ":\n", pc); + printf("PC 0x%" PRIx64, pc); + std::string function_name; + uint64_t function_offset; + if (elf.GetFunctionName(pc, &function_name, &function_offset)) { + printf(" (%s)", function_name.c_str()); + } + printf(":\n"); + + if (elf.machine_type() == EM_ARM) { + PrintArmRegInformation(reinterpret_cast(interface), pc - load_bias); + } DwarfSection* section = interface->eh_frame(); if (section != nullptr) { printf("\neh_frame:\n"); - PrintRegInformation(section, memory, pc - load_bias, elf.class_type()); + PrintRegInformation(section, memory, pc, elf.class_type()); } else { printf("\nno eh_frame information\n"); } @@ -175,7 +213,7 @@ int GetInfo(const char* file, uint64_t pc) { section = interface->debug_frame(); if (section != nullptr) { printf("\ndebug_frame:\n"); - PrintRegInformation(section, memory, pc - load_bias, elf.class_type()); + PrintRegInformation(section, memory, pc, elf.class_type()); printf("\n"); } else { printf("\nno debug_frame information\n"); diff --git a/libunwindstack/tools/unwind_symbols.cpp b/libunwindstack/tools/unwind_symbols.cpp index 086dffef3..f8e3e9249 100644 --- a/libunwindstack/tools/unwind_symbols.cpp +++ b/libunwindstack/tools/unwind_symbols.cpp @@ -95,7 +95,6 @@ int main(int argc, char** argv) { } std::string name; - uint64_t load_bias = elf.GetLoadBias(); if (argc == 3) { std::string cur_name; uint64_t func_offset; @@ -113,8 +112,8 @@ int main(int argc, char** argv) { // This is a crude way to get the symbols in order. for (const auto& entry : elf.interface()->pt_loads()) { - uint64_t start = entry.second.offset + load_bias; - uint64_t end = entry.second.table_size + load_bias; + uint64_t start = entry.second.offset; + uint64_t end = entry.second.table_size; for (uint64_t addr = start; addr < end; addr += 4) { std::string cur_name; uint64_t func_offset;

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 IH6_0P2U*_*3;+NC literal 0 HcmV?d00001 diff --git a/libunwindstack/tests/files/offline/debug_frame_load_bias_arm/libc.so b/libunwindstack/tests/files/offline/debug_frame_load_bias_arm/libc.so new file mode 100644 index 0000000000000000000000000000000000000000..013858ef529f039674eb239efed111e8818f780c GIT binary patch literal 826064 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≷%Nt` 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