<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/61893>61893</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Clang OOMs when using hardened-malloc
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          cjdb
      </td>
    </tr>
</table>

<pre>
    **System info**

OS: Arch Linux
CPU: AMD Ryzen 7 1700 3.2GHz (8 p-cores, 16 v-cores)
RAM: 16GB
Swap space: 20 GB

**Crash info**

[files.tar.gz](https://github.com/llvm/llvm-project/files/11130909/files.tar.gz) (contains `Registry-1729d6.cpp` and `Registry-1729d6.sh`).

Steps to repro:

1. Install [hardened-malloc](https://github.com/GrapheneOS/hardened_malloc). This can be done on Arch as follows:

```
$ cd /tmp
$ git clone https://aur.archlinux.org/hardened-malloc-git.git
$ cd hardened-malloc
$ makepkg -i
$ export LD_PRELOAD=/usr/lib/libhardened_malloc.so
```

2. Use close-to-ToT Clang to build LLVM:

```
$ cd /tmp/llvm-project
$ export CC=clang CXX=clang++
$ cmake -G Ninja -S llvm -B build \
 -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_CROSSCOMPILING=Yes \
 -DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-unknown-linux-gnu \
 -DLLVM_ENABLE_LLD=Yes \
  -DLLVM_ENABLE_LIBCXX=Yes \
 -DLLVM_ENABLE_PROJECTS='clang;clang-tools-extra;lld;polly' \
 -DLLVM_ENABLE_RUNTIMES='compiler-rt;libcxx;libcxxabi;libunwind' \
 -DLLVM_ENABLE_ZLIB=Yes -DLLVM_TARGETS_TO_BUILD=X86
$ ninja
```
```
FAILED: tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/obj.clangDynamicASTMatchers.dir/Registry.cpp.o 
/home/cjdb/opt/bin/clang++ -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/cjdb/projects/llvm-project/build/tools/clang/lib/ASTMatchers/Dynamic -I/home/cjdb/projects/llvm-project/clang/lib/ASTMatchers/Dynamic -I/home/cjdb/projects/llvm-project/clang/include -I/home/cjdb/projects/llvm-project/build/tools/clang/include -I/home/cjdb/projects/llvm-project/build/include -I/home/cjdb/projects/llvm-project/llvm/include -stdlib=libc++ -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -MD -MT tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/obj.clangDynamicASTMatchers.dir/Registry.cpp.o -MF tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/obj.clangDynamicASTMatchers.dir/Registry.cpp.o.d -o tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/obj.clangDynamicASTMatchers.dir/Registry.cpp.o -c /home/cjdb/projects/llvm-project/clang/lib/ASTMatchers/Dynamic/Registry.cpp
LLVM ERROR: out of memory
Allocation failed
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /home/cjdb/opt/bin/clang++ -DGTEST_HAS_RTTI=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/cjdb/projects/llvm-project/build/tools/clang/lib/ASTMatchers/Dynamic -I/home/cjdb/projects/llvm-project/clang/lib/ASTMatchers/Dynamic -I/home/cjdb/projects/llvm-project/clang/include -I/home/cjdb/projects/llvm-project/build/tools/clang/include -I/home/cjdb/projects/llvm-project/build/include -I/home/cjdb/projects/llvm-project/llvm/include -stdlib=libc++ -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -std=c++17 -fno-exceptions -funwind-tables -fno-rtti -MD -MT tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/obj.clangDynamicASTMatchers.dir/Registry.cpp.o -MF tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/obj.clangDynamicASTMatchers.dir/Registry.cpp.o.d -o tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/obj.clangDynamicASTMatchers.dir/Registry.cpp.o -c /home/cjdb/projects/llvm-project/clang/lib/ASTMatchers/Dynamic/Registry.cpp
1.      <eof> parser at end of file
2.      Optimizer
 #0 0x000055a5f5d39fc8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/cjdb/opt/bin/clang+++0x3dd7fc8)
 #1 0x000055a5f5d37c8e llvm::sys::RunSignalHandlers() (/home/cjdb/opt/bin/clang+++0x3dd5c8e)
 #2 0x000055a5f5cb6a76 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007fc160f9df50 (/usr/lib/libc.so.6+0x38f50)
 #4 0x00007fc160fec8ec (/usr/lib/libc.so.6+0x878ec)
 #5 0x00007fc160f9dea8 raise (/usr/lib/libc.so.6+0x38ea8)
 #6 0x00007fc160f8753d abort (/usr/lib/libc.so.6+0x2253d)
 #7 0x000055a5f5cbc310 llvm::report_bad_alloc_error(char const*, bool) (/home/cjdb/opt/bin/clang+++0x3d5a310)
 #8 0x000055a5f5cbc552 (/home/cjdb/opt/bin/clang+++0x3d5a552)
 #9 0x00007fc1615187e7 (/usr/lib/libhardened_malloc.so+0x27e7)
#10 0x000055a5f57735ec llvm::DominatorTreeBase<llvm::BasicBlock, false>::createNode(llvm::BasicBlock*) (/home/cjdb/opt/bin/clang+++0x38115ec)
#11 0x000055a5f5777bc2 llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<llvm::BasicBlock, false>>::CalculateFromScratch(llvm::DominatorTreeBase<llvm::BasicBlock, false>&, llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<llvm::BasicBlock, false>>::BatchUpdateInfo*) Dominators.cpp:0:0
#12 0x000055a5f577ecae llvm::DominatorTreeAnalysis::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/cjdb/opt/bin/clang+++0x381ccae)
#13 0x000055a5f72ae432 llvm::detail::AnalysisPassModel<llvm::Function, llvm::DominatorTreeAnalysis, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>::Invalidator>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) PassBuilder.cpp:0:0
#14 0x000055a5f584c329 llvm::AnalysisManager<llvm::Function>::getResultImpl(llvm::AnalysisKey*, llvm::Function&) (/home/cjdb/opt/bin/clang+++0x38ea329)
#15 0x000055a5f75a38b7 llvm::IPSCCPPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/cjdb/opt/bin/clang+++0x56418b7)
#16 0x000055a5f72bc8bd llvm::detail::PassModel<llvm::Module, llvm::IPSCCPPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) PassBuilder.cpp:0:0
#17 0x000055a5f5847cf0 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/cjdb/opt/bin/clang+++0x38e5cf0)
#18 0x000055a5f647e6e1 (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream>>&, std::__1::unique_ptr<llvm::ToolOutputFile, std::__1::default_delete<llvm::ToolOutputFile>>&) BackendUtil.cpp:0:0
#19 0x000055a5f647797d clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream>>) (/home/cjdb/opt/bin/clang+++0x451597d)
#20 0x000055a5f690af22 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) CodeGenAction.cpp:0:0
#21 0x000055a5f82b8126 clang::ParseAST(clang::Sema&, bool, bool) (/home/cjdb/opt/bin/clang+++0x6356126)
#22 0x000055a5f682e1af clang::FrontendAction::Execute() (/home/cjdb/opt/bin/clang+++0x48cc1af)
#23 0x000055a5f67aa8fd clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/cjdb/opt/bin/clang+++0x48488fd)
#24 0x000055a5f69036cd clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/cjdb/opt/bin/clang+++0x49a16cd)
#25 0x000055a5f4b52bae cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/cjdb/opt/bin/clang+++0x2bf0bae)
#26 0x000055a5f4b4e97e ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#27 0x000055a5f6614d39 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const::$_0>(long) Job.cpp:0:0
#28 0x000055a5f5cb67b6 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/cjdb/opt/bin/clang+++0x3d547b6)
#29 0x000055a5f66145e2 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const (/home/cjdb/opt/bin/clang+++0x46b25e2)
#30 0x000055a5f65d341b clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/home/cjdb/opt/bin/clang+++0x467141b)
#31 0x000055a5f65d36fe clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&, bool) const (/home/cjdb/opt/bin/clang+++0x46716fe)
#32 0x000055a5f65f26b0 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&) (/home/cjdb/opt/bin/clang+++0x46906b0)
#33 0x000055a5f4b4dc13 clang_main(int, char**, llvm::ToolContext const&) (/home/cjdb/opt/bin/clang+++0x2bebc13)
#34 0x000055a5f4b5e021 main (/home/cjdb/opt/bin/clang+++0x2bfc021)
#35 0x00007fc160f88790 (/usr/lib/libc.so.6+0x23790)
#36 0x00007fc160f8884a __libc_start_main (/usr/lib/libc.so.6+0x2384a)
#37 0x000055a5f4b4ade5 _start (/home/cjdb/opt/bin/clang+++0x2be8de5)
clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 17.0.0 (git@github.com:llvm/llvm-project.git 1ee5c58f02263bf2a550fa4750cc7a6dcfd183c9)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/cjdb/opt/bin
clang++: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang++: note: diagnostic msg: /tmp/Registry-1729d6.cpp
clang++: note: diagnostic msg: /tmp/Registry-1729d6.sh
clang++: note: diagnostic msg: 

********************
```

`1ee5c58f02263bf2a550fa4750cc7a6dcfd183c9` is a local commit. The most recent upstream commit I've observed this with is `c692e92dc5d61495118775adda4872148240bac5`.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsW1tz2ziy_jXMC4oqEhRvD37Q1dGsbLkkeTN7XlQg0JSQkIAWAB17fv0pkJQlyvIk0WZn99RJVSJLuDS-vqC70QSJ1nwrAG6ccOiE4w-kMjupbuhnln3IJHu5cfDAwYPVizZQIi5y2TQ43tjx2s_FygkGaKDoDs25qJ6b1tHDY918N0bLlz9AoBj5seehoIdvP_6BHJwkaO9SqUA7eIT8CD0dfqUNheXgzlLwo9th07D6SvZI7wkF2449dOhoP2tkI0X07h2kTjjMeQG6Z4jqbf9wwrGDk50xe-0EAwdPHTzdcrOrsh6VpYOnRfF0-OPulfwM1Dh4WpNw8NT3_cBLvfTQdKCKU8sdlcIQLjRyIm8JW66NenH9GKcs6tH93ok8RAS71Kt3TuQ5OO2dQl8Z2GtkJFKwV9LCPen0e2gmtCFFgZxwuCOKgQDmlqQoJP0ml7eK7HcgYLFy8PQwedNOxmkPrXdcI0oEygAxKQBJ0aibaJTLopBf9Rkgy0Dzr9VMH1GGHDw15f7YtOUG0cIS7KIjleoRRXeFtaaeVNsTXC1T7pab3pabDv1zxl_7SvIF9l-2yOXHNnjeS2XQfLx5WE7mi8HYCcYOnlZaWY3zrPk8E0dPy8sM1p-4hx41WJY0uEa6a7lGo4KIrdVbVvGCofn873c_Iqsz4ztHPxo5wZjWS4x-__3w3cFD--9IzvKP3Ft0z8VngtwVskSRO2xBOeGoGYzc8ehu8LfJZvg4m4836388TJxgvIQCiIaTYa_jRsvFajVa3D3M5rP7WycY_wN0h5zldzOeTAeP8_VmPVjeTtab9XL2MLeEn5NoE_XdSnwR8qtwa3W7W1G9pTC5Hwznk818Pn6zxvmQ2bCRxEUk7aCH5eK3yWi9qlUeNzILhvVf10hZaBeejSJOMCwK5gTDvSyKFwfH7xJcPt6vZ3eTA0FZ7nkBylXGkuAZfX5-_UIy3nyvxFcu2J9R_Z_5bNhy0nY0Elxt1otGRU4w_j2JjpoWVsGXzar7czqYzSdj60Zrfh08bS2nNf3Ban1HDN2Bsn3jF0FKTh08Hd2RLzBtHaDMPvfqaW3_yaQe43YfHVyb9Xg9iQ5ApztZgl3zM7OLyb11qxkXRxjWgJE7vl1PVuvNx8Fqs1yvZ04w9pA73tzeP25Wi8flaGJ_bVbr8WgzWtyv1oP79eZuYI3y2DFdLO8Gb5vns7vZsXX2BlO74_Rb91_vGbs9v19wP7bAv40gF7SoGPwcdv8lYldNbqPx61xtmBVRMLYb62Ay-cNshNxcSFdDSYTh1OXCgNpLzQ2XArn5E9c84wU3Ly4XBReg3R1nDARyP4FSUjnBmBEDruElnLRVYlvZcMBc8kR4QVoaAr4i95ONve6n2m0g95OQbiUqDczdE0VKMKCQ--mr4gZcbRQXW43cT5Ro4_6zInZmybXmYuvmHArmcsENJwX_A5RG7h5YzUlDuJBiW39YCg3baeJan0NM47cs6xy5n3i5Lzjlxs1JUZidktV2ZyfJJ1DAXP2VG7pzGeSkKkxDXEh4prA3rnnZQ90k3CeuTEUKlxlpuWBQgAH3Qo-utlvQxrX0Fbcq-tQw61IpnkDpWv6W1QIIs-1cMBCGNIr5RA2xsfslA7cSutrbEAcMuTnjZCukNpxql8rCLpbnlaB2nquh_qvtOGLI6W8hrVzKmrgFVUhi1dfCbjkGbaxKLT-WaY3cRYDc8f14Mny8ra3MxtVG0H6MGrKNlNplGk_uGpIV0C6rjOHIvRsj9279l7pY9276V67XY8iVfy2DFP1cX3q2RBOjbLRFk-VysbQxUlYGyRyVUEr10gwY2HSwMdyc8AJY0_wwnwxWE6SrrOQGEZRVW5ux21zNSPTDRw2udVWLqT4rHDyf2QGi9TEnI_SLUfZAhEdoXx8NKGgNDGlZqabZziRaS8qJ3U2qEkhTxfemdzhZEPoFsarcvyamXs_x0gclt4qUiKhtVYIwFvhb0f-K3b9i96_Y_St2_5-I3b9C9_-D0O3b4OUEI5C5E0zQnigNChGDQDAbxXNewKFe43jpYm94aTdrewR3cOAh79nzPC8MSZiHLEhzmtQlExsgg4F-0c2XB8WFqcPnuonByXGQIl83UhsFpHRwZOMwF6YtDX5vEHXw0HsOGItzmrxWRS1A_wxgTBO4BHBZiRXfClJ8JIIVteiSKzGENIEOBtzBQLOIxBGqi69LqL3US2dpByetADpjRlIYeDa19oKBV_9_XSJol4hz6kdenrI89FrsZ2U62tOyFzVYkzz0Okj7XTJAE6DfJJPECdAOmfAcDZAEKcI1fAcmIF0NRl1iSRwGDJHM5onfIoZxGLAOsfhMFTTwvRNzaPLPTUbYpi5ibpqgiBO6IwpRKbSpS-UjlElZXGcfIQn8rtSTc1BhiK8iHIa4Qzg9FZ0f-kkM8WWhXSje1gKMIX6laHdTd7_HcRACPZHfWJZcECPVWgEMiQYnGB17h0RzOiwk_WIlmJPC9k-aPqqAGLiXrOsbTqcMrpJ34vvhiXlaJvwzJuKM4i4TNXybxIFq2lZQ8vvRYCZy2WHpOoZbnkekoFVBDEyVLFdUWafd4f4q6o0L_Q-wM7T4H_c2p5wdniml6JWkfuu5rDLwmTKAEnjPogaCFC-aty5bVaIjrWmbKr2RwGHaHRFka0UwujCpldxVFkYpgY6FBadMxZhAPzi1MAaG8KIL7oFofScZFJfhnav0glA6Qx4UaFBPwJpu0NeJpG6YiSdScGYXfG37NwnfSqG11Mvm0u-YS9KnAU6v5WsLZgm6Ksys3Bcdbg5k_gYvrb9_h9NrzAVIgNOOuYQdcwlJkGTxyYqzh9Vo9GBFc1n2d5JVBfyQ5NspVxt9GPX9JOvGhqhr9BlNMvaO0V829gMfo8u8_yz7PvL-njH_BIF-05DjM0OOaX6aidQSen-d_y5mr9gDIc29jvV0kqCoH0MEviVsT6wvpaw0EqSE5koDThsck5KbgdZQZsXLRyj2h_C2rER7VqnP3A98DwUXNrNoH2A24Yp-AcEGr_61PgLbns3Gb75Ugv-zgs3edNm3B5Z9XeXYHI4tl2a3FYdNU0n4BoVGQY0SvhvIWspiUZl9ZexB84dRnE0_QkhRK5xHw4vL5pueqStOY4ZOpGtV0xJplugKf3wsdUzEttZNzfrJkI9AGKgVEEV3i7YK0Wbg50NHksEtiG-MWhO1BfONQXMitpeGHKW2qms9S8i7zYdtNDgj-MbMTnybMKrS_AmWkI-EeTjT7lPe-nurneZaUa2g_w5L_fFd3w_9MI3Z6a7HnfNElHokx_iC9EZS6Ko8bO_mnLxWROii3uCPgp_Z12C1bs_LrUG3JtKo4aJJ486xIMFZ4uPoFMsDURoGq3V3pRWUpLWR5kx4_dkwCsLIr-EeQXXS4yjB4JP8FNRUWTZf7avZe89AKwNXVjD6CaU-yTsoOvlsFBOS5Ky7AZtrHPXVKlFfOjviOJh-8j7s68JIP-knSd41qP6ZQQUR7fqlBtMR8FP7bKqL7w1D150--ynxI9pF2En2-lmIMwKIUn9TEt6NzAOlyIt1NMGoW39ovMCbmsST5OxKoDjLvax7iMFRF2gf0hjQQX4jf11b-QncVUmK4u9AjVR1Qn0J9ZkvtTTafXribVPEFH96J3HCncQpivw-C9Ka9RO6h6r5RtXSq3ub7XAsOJCiyAj9ssmFRXpUfbN2awYjfyTLkgh2vrMuaumtZ5V1KCHdPPcYQVpfesknZ_awvWkeLLSivDzQ9myMItzow7j3aJLmSaw9xr0OtGNPKlq19TSqqKc4uL_x6kFJIa3JpOg3mV3WzHkdK4qz6EQpl6qZr_naiuRQvHQE--dKvK721o-zrn9Nz60phE4A-mUNjTX8uOuLMhwCPhV292lBFLKg72fvCrv2wORNVDtooOOuzybaAe8leH8ydNCJ49czHvt9P-sw7p8zHuXwo4z_JjP9Pte_yWzOtXkvZ33jmt-aw55wawn1o4fvl9jpueVfl1uUd0JQ98lJFOY4yrz3oI1Pvnei_IXw_p68_xNyuyKriFIvyjrH5yA4C9aM-kED5pBXHADWrmPwpqz1Xij-8UwCMuoHHXD9s5QHPOwjC-uaPIV62O9QP3valCRx-u1nXziI064Ez58zJUmfoM3GTttoQ5TZnCD-M8JJn3QIx2eqIQxC1JC8RroJg_CV_ml_MEDtHY5Bo3mUt1k2oq35Nfev0FdudgieudU0A-QHfQuk0oDcJ2Qk0gCIn2TGp4uhww0HP-55vVrQW26cvndyRysYXLij1dtyg3yAkIZJ7mEcBVmOSRh6OenHoUdpTCJGc-YnAT2WR5tDu2XpvSvw7bidAsJQ2RQVB2gvNW9fr2nf9wA25uobF7MuyVRIU79Ec7ydgUq9rQmdvEtz5b-Tlxva-3CD9Xow-ojWHydoupjPF59m97doOptPVmi9qJuHj7doOXlYLNfO4Rbaw6X7bIm2-_fdO22vAxSgOhEAhoh5Jfn9Uji8fnHp1Z2fRErvrlPNz1LQpVdYnMj7bmuOPMQ1IrWci3o3ctND6x2gUmqDFFAQBlX7psTSDkAzB8dPgGTWVLqR2XHd7F1evytFoxRDihkNWeT309D3kzgOCWOkn8TY7ye472WEhk7k9T6wm4ClQUo-wI0fJV6QxnEafNjdYEo9nJMoiHAMOWNBFibM7zPs5UkUB94HfoM9HHh9D3u-l4ZBL4-B-Xk_YRmOcZh7Tt-DkvCiZ3d7T6rth_ou5k3kJ2nwoSAZFLp-aQ7jVn_YCccf1E3tHbJqq52-V3Bt9JGC4aaAm-aNoMXiTqOvOxCo0lxsz99d-lCp4ub666I1yv8NAAD__6q5M0g">