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

    <tr>
        <th>Summary</th>
        <td>
            [Crash] Clang does not like vtables in structural templates.
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          Oliver-makes-code
      </td>
    </tr>
</table>

<pre>
    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: /usr/bin/clang -DDBG=0 -DFASTNOISE_STATIC_LIB -DGLM_ENABLE_EXPERIMENTAL -DGLM_FORCE_DEPTH_ZERO_TO_ONE -DGLM_FORCE_QUAT_DATA_XYZW -DIS_MACOS=0 -DIS_WINDOWS=0 -DSIMD_AVX2=1 -DSIMD_NEON=0 -D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR -I/home/octal/data/projects/native/Stratalia/submodule/glm -I/home/octal/data/projects/native/Stratalia/submodule/stb -I/home/octal/data/projects/native/Stratalia/submodule/magic_enum/include -I/home/octal/data/projects/native/Stratalia/submodule/json/include -I/home/octal/data/projects/native/Stratalia/submodule/FastNoise2/include -I/home/octal/data/projects/native/Stratalia/submodule/QjsCpp/include -I/home/octal/data/projects/native/Stratalia/submodule/QjsCpp/quickjs -I/home/octal/data/projects/native/Stratalia/common -I/home/octal/data/projects/native/Stratalia/submodule/SDL/include -I/home/octal/data/projects/native/Stratalia/vkb -I/home/octal/data/projects/native/Stratalia/submodule/imgui -I/home/octal/data/projects/native/Stratalia/submodule/imgui/backends -I/home/octal/data/projects/native/Stratalia/submodule/VulkanMemoryAllocator/include -I/home/octal/data/projects/native/Stratalia/submodule/Vulkan-Headers/include -I/home/octal/data/projects/native/Stratalia/submodule/Vulkan-Utility-Libraries/include -I/home/octal/data/projects/native/Stratalia/client -I/home/octal/data/projects/native/Stratalia/submodule/shaderc/libshaderc/include -I/home/octal/data/projects/native/Stratalia/build/submodule/SDL/include-revision -mavx2 -O2 -g -DNDEBUG -std=gnu++23 -fPIE -fdeclspec -Wno-parentheses-equality -ggdb3 -Wno-unused-command-line-argument -Wno-nullability-completeness -Wno-deprecated-anon-enum-enum-conversion -Wno-nan-infinity-disabled -Wno-deprecated-declarations -Wno-c++11-narrowing -Wl,--threads -Wl,--thread-count,THREAD_COUNT -MD -MT CMakeFiles/client.dir/client/runtime/model/part.cpp.o -MF CMakeFiles/client.dir/client/runtime/model/part.cpp.o.d -o CMakeFiles/client.dir/client/runtime/model/part.cpp.o -c /home/octal/data/projects/native/Stratalia/client/runtime/model/part.cpp
1. <eof> parser at end of file
2.      Per-file LLVM IR generation
 #0 0x00007387be81a730 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/src/debug/llvm/llvm-19.1.7.src/lib/Support/Unix/Signals.inc:723:22
 #1 0x00007387be817bf5 llvm::sys::RunSignalHandlers() /usr/src/debug/llvm/llvm-19.1.7.src/lib/Support/Signals.cpp:105:20
 #2 0x00007387be817bf5 llvm::sys::CleanupOnSignal(unsigned long) /usr/src/debug/llvm/llvm-19.1.7.src/lib/Support/Unix/Signals.inc:367:31
 #3 0x00007387be701319 HandleCrash /usr/src/debug/llvm/llvm-19.1.7.src/lib/Support/CrashRecoveryContext.cpp:73:5
 #4 0x00007387be701319 CrashRecoverySignalHandler /usr/src/debug/llvm/llvm-19.1.7.src/lib/Support/CrashRecoveryContext.cpp:390:62
 #5 0x00007387bda4c1d0 (/usr/lib/libc.so.6+0x3d1d0)
 #6 0x00007387c82fce62 clang::Decl::getKind() const /usr/src/debug/clang/clang-19.1.7.src/include/clang/AST/DeclBase.h:448:51
 #7 0x00007387c82fce62 clang::ClassTemplateSpecializationDecl::classof(clang::Decl const*) /usr/src/debug/clang/clang-19.1.7.src/include/clang/AST/DeclTemplate.h:2065:58
 #8 0x00007387c82fce62 llvm::isa_impl<clang::ClassTemplateSpecializationDecl, clang::CXXRecordDecl, void>::doit(clang::CXXRecordDecl const&) /usr/include/llvm/Support/Casting.h:64:64
 #9 0x00007387c82fce62 llvm::isa_impl_cl<clang::ClassTemplateSpecializationDecl, clang::CXXRecordDecl const*>::doit(clang::CXXRecordDecl const*) /usr/include/llvm/Support/Casting.h:110:36
#10 0x00007387c82fce62 llvm::isa_impl_wrap<clang::ClassTemplateSpecializationDecl, clang::CXXRecordDecl const*, clang::CXXRecordDecl const*>::doit(clang::CXXRecordDecl const* const&) /usr/include/llvm/Support/Casting.h:137:41
#11 0x00007387c82fce62 llvm::isa_impl_wrap<clang::ClassTemplateSpecializationDecl, clang::CXXRecordDecl const* const, clang::CXXRecordDecl const*>::doit(clang::CXXRecordDecl const* const&) /usr/include/llvm/Support/Casting.h:129:13
#12 0x00007387c82fce62 llvm::CastIsPossible<clang::ClassTemplateSpecializationDecl, clang::CXXRecordDecl const*, void>::isPossible(clang::CXXRecordDecl const* const&) /usr/include/llvm/Support/Casting.h:257:62
#13 0x00007387c82fce62 llvm::CastInfo<clang::ClassTemplateSpecializationDecl, clang::CXXRecordDecl const*, void>::doCastIfPossible(clang::CXXRecordDecl const* const&) /usr/include/llvm/Support/Casting.h:493:26
#14 0x00007387c82fce62 decltype(auto) llvm::dyn_cast<clang::ClassTemplateSpecializationDecl, clang::CXXRecordDecl const>(clang::CXXRecordDecl const*) /usr/include/llvm/Support/Casting.h:663:48
#15 0x00007387c82fce62 clang::CXXRecordDecl::getTemplateSpecializationKind() const /usr/src/debug/clang/clang-19.1.7.src/lib/AST/DeclCXX.cpp:1945:67
#16 0x00007387c82fce62 clang::CodeGen::CodeGenVTables::isVTableExternal(clang::CXXRecordDecl const*) /usr/src/debug/clang/clang-19.1.7.src/lib/CodeGen/CGVTables.cpp:1218:69
#17 0x00007387c82fce62 shouldEmitVTableAtEndOfTranslationUnit /usr/src/debug/clang/clang-19.1.7.src/lib/CodeGen/CGVTables.cpp:1250:41
#18 0x00007387c82fce62 clang::CodeGen::CodeGenModule::EmitDeferredVTables() /usr/src/debug/clang/clang-19.1.7.src/lib/CodeGen/CGVTables.cpp:1268:47
#19 0x00007387c8338088 clang::CodeGen::CodeGenModule::getLangOpts() const /usr/src/debug/clang/clang-19.1.7.src/lib/CodeGen/CodeGenModule.h:760:0
#20 0x00007387c8338088 clang::CodeGen::CodeGenModule::EmitDeferred() /usr/src/debug/clang/clang-19.1.7.src/lib/CodeGen/CodeGenModule.cpp:3191:0
#21 0x00007387c833aeaa llvm::DenseMapBase<llvm::DenseMap<llvm::StringRef, clang::GlobalDecl, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::GlobalDecl>>, llvm::StringRef, clang::GlobalDecl, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::GlobalDecl>>::getBucketsEnd() /usr/include/llvm/ADT/DenseMap.h:572:0
#22 0x00007387c833aeaa llvm::DenseMapBase<llvm::DenseMap<llvm::StringRef, clang::GlobalDecl, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::GlobalDecl>>, llvm::StringRef, clang::GlobalDecl, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseMapPair<llvm::StringRef, clang::GlobalDecl>>::end() /usr/include/llvm/ADT/DenseMap.h:85:0
#23 0x00007387c833aeaa clang::CodeGen::CodeGenModule::Release() /usr/src/debug/clang/clang-19.1.7.src/lib/CodeGen/CodeGenModule.cpp:850:0
#24 0x00007387c83d0256 HandleTranslationUnit /usr/src/debug/clang/clang-19.1.7.src/lib/CodeGen/ModuleBuilder.cpp:291:0
#25 0x00007387c82ff5ed clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /usr/src/debug/clang/clang-19.1.7.src/lib/CodeGen/CodeGenAction.cpp:278:5
#26 0x00007387c6dd9c86 __gnu_cxx::__normal_iterator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>*, std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>>::__normal_iterator(std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>* const&) /usr/include/c++/14.2.1/bits/stl_iterator.h:1068:0
#27 0x00007387c6dd9c86 std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>::begin() /usr/include/c++/14.2.1/bits/stl_vector.h:874:0
#28 0x00007387c6dd9c86 void clang::finalize<std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>>(std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>&, clang::Sema const&) /usr/src/debug/clang/clang-19.1.7.src/include/clang/Sema/TemplateInstCallback.h:54:0
#29 0x00007387c6dd9c86 clang::ParseAST(clang::Sema&, bool, bool) /usr/src/debug/clang/clang-19.1.7.src/lib/Parse/ParseAST.cpp:191:0
#30 0x00007387c8afa221 clang::FrontendAction::Execute() /usr/src/debug/clang/clang-19.1.7.src/lib/Frontend/FrontendAction.cpp:1078:21
#31 0x00007387c8a9008f llvm::Error::getPtr() const /usr/include/llvm/Support/Error.h:282:12
#32 0x00007387c8a9008f llvm::Error::operator bool() /usr/include/llvm/Support/Error.h:242:22
#33 0x00007387c8a9008f clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /usr/src/debug/clang/clang-19.1.7.src/lib/Frontend/CompilerInstance.cpp:1061:42
#34 0x00007387c8b54ba5 std::__shared_ptr<clang::FrontendOptions, (__gnu_cxx::_Lock_policy)2>::get() const /usr/include/c++/14.2.1/bits/shared_ptr_base.h:1667:0
#35 0x00007387c8b54ba5 std::__shared_ptr_access<clang::FrontendOptions, (__gnu_cxx::_Lock_policy)2, false, false>::_M_get() const /usr/include/c++/14.2.1/bits/shared_ptr_base.h:1364:0
#36 0x00007387c8b54ba5 std::__shared_ptr_access<clang::FrontendOptions, (__gnu_cxx::_Lock_policy)2, false, false>::operator*() const /usr/include/c++/14.2.1/bits/shared_ptr_base.h:1350:0
#37 0x00007387c8b54ba5 clang::CompilerInvocation::getFrontendOpts() /usr/src/debug/clang/clang-19.1.7.src/include/clang/Frontend/CompilerInvocation.h:259:0
#38 0x00007387c8b54ba5 clang::CompilerInstance::getFrontendOpts() /usr/src/debug/clang/clang-19.1.7.src/include/clang/Frontend/CompilerInstance.h:312:0
#39 0x00007387c8b54ba5 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /usr/src/debug/clang/clang-19.1.7.src/lib/FrontendTool/ExecuteCompilerInvocation.cpp:281:0
#40 0x00005cea4c714832 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /usr/src/debug/clang/clang-19.1.7.src/tools/driver/cc1_main.cpp:284:40
#41 0x00005cea4c71904e ExecuteCC1Tool /usr/src/debug/clang/clang-19.1.7.src/tools/driver/driver.cpp:215:20
#42 0x00007387c8764bb5 operator() /usr/src/debug/clang/clang-19.1.7.src/lib/Driver/Job.cpp:440:32
#43 0x00007387c8764bb5 callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef> >, std::string*, bool*) const::<lambda()> > /usr/include/llvm/ADT/STLFunctionalExtras.h:45:52
#44 0x00007387be70176a llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) /usr/src/debug/llvm/llvm-19.1.7.src/lib/Support/CrashRecoveryContext.cpp:428:1
#45 0x00007387c876bb76 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const /usr/src/debug/clang/clang-19.1.7.src/lib/Driver/Job.cpp:444:10
#46 0x00007387c8722709 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const /usr/src/debug/clang/clang-19.1.7.src/lib/Driver/Compilation.cpp:200:3
#47 0x00007387c8722afc clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const /usr/src/debug/clang/clang-19.1.7.src/lib/Driver/Compilation.cpp:253:5
#48 0x00007387c8792a64 llvm::SmallVectorBase<unsigned int>::empty() const /usr/include/llvm/ADT/SmallVector.h:95:46
#49 0x00007387c8792a64 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) /usr/src/debug/clang/clang-19.1.7.src/lib/Driver/Driver.cpp:1946:28
#50 0x00005cea4c71ad8c llvm::SmallVectorBase<unsigned int>::size() const /usr/include/llvm/ADT/SmallVector.h:92:32
#51 0x00005cea4c71ad8c llvm::SmallVectorTemplateCommon<std::pair<int, clang::driver::Command const*>, void>::end() /usr/include/llvm/ADT/SmallVector.h:283:41
#52 0x00005cea4c71ad8c clang_main(int, char**, llvm::ToolContext const&) /usr/src/debug/clang/clang-19.1.7.src/tools/driver/driver.cpp:393:26
#53 0x00005cea4c70cf65 main /usr/src/debug/clang/clang-19.1.7.src/build/tools/driver/clang-driver.cpp:18:1
#54 0x00007387bda34e08 __libc_start_call_main /usr/src/debug/glibc/glibc/csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#55 0x00007387bda34ecc call_init /usr/src/debug/glibc/glibc/csu/../csu/libc-start.c:128:20
#56 0x00007387bda34ecc __libc_start_main /usr/src/debug/glibc/glibc/csu/../csu/libc-start.c:347:5
#57 0x00005cea4c70cfc5 _start (/usr/bin/clang+0xafc5)
clang: error: clang frontend command failed with exit code 139 (use -v to see invocation)
clang version 19.1.7
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/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/part-4f6327.cpp
clang: note: diagnostic msg: /tmp/part-4f6327.sh
clang: note: diagnostic msg: 

********************

Here's the files it asked me to include
[part-4f6327.zip](https://github.com/user-attachments/files/18567154/part-4f6327.zip)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsXF9T47iy_zTmReWULduJ88CDyZ8Z9gLhkMwM97y4ZFkJWhTZK8ks7Ke_JVlO7BAYIGHO3lM7NUUS_2n9utXq_rUkG0lJV5yQUyc6c6LxCarUXSFOZ4w-EOGu0T2RLi5ycpIV-dPp9cUkmU-ArLI1VQCBrFoBQcpCKKAKcKdUKZ0gceDUgdMVVXdV1sPF2oFTxh6aD7cUxe8EKwdOqZQVkQ6cAsRzQDlmVU6AuiMACyTvQIbwvRIIEweOQClIKQpMpCQ5kEUl6sP6TiRlgSlSJAei4kBiQUvVc7xkrhC-B3m1LjUsL_F6wPy7FsVKoDVAYlWtCVcaNXDgtJLCgdOMcgdOMUN8Bdzx-OyLE4w94I6nyXxxNTufT9L5Ilmcj9KL8zPgjr9cXKaTq-TsYpJObq8nN-eXk6tFcmHPTGc3o0k6nlwvvqb_ntzM0sUsnV1NOmf_9S1ZpONkkaS3__vvH8Adn8_Ty2Q0m9uGz-fpj_Or8exHc2B-fjlOk--30AnGfvP7ajK7sufT8fncABrNruaLye31TXr5bTG5rX_ffBstZjfAPXfg9K5YEwdOC6wQc-A0Rwo5cGq7SHcNR4o-6EvmSiCFGNXntQMUecX08RVbH0uUVNmxRK3RiuKU8Eq7XeNZR5L9uyz48aVOkVRXBZUEHl_2v36Xo7L8RLl_VBTf_y4PkYuL9brgx0I2H18cR92H-6P5JF2vKnpUYTpYIXxPeH6Q6dtyv1fsHvFLsi7EU8JYgZEqxPE9p27G_UpQToT8NPnfFGVUPbkXNBNIUHKkljCjhKujhb07bQSs8yPNtj-OgDOrKMtfGxmuIA9UUj3u1ujhEQJ3BoGr097VeHL27QtwpcqdYLzilQPPHHgGA-Aur88nwF3mBDNZEgzcH7xwSyQIV3dEEumSPyqkzQ7c1SrPgvqCileS5K4e5ojnLqOcuE3-ra_gFWMoqzsMF-uSEUU4kbI-m5NSEKyTvIt4wV0d2-s_uOAPRNRaGDmIu5QvKdeCcipRxkj-TIiGjwRStOC2BVyr6PsuR0IUf1Kd_38wB45cV90JgvQo6_x2cVFx5cDR4uvNJBmno9m3qwVwL8fAvVyA0SW6J1PKjNfVLtPLqdj8cOBUVFxR07PrIie6Z0skVA-XZa8A7uX0UBm9HLjF4UAwOHCovNqC4yV-DzjBiBRLJ5iAEglJBEAKEJ6DYgmWlBHHS2DD3ohw9SFwcfH9EpzfgBXhpO5Jx9M8LvCA9-h5njcI4kFGYh8NAg8YDhokTpDIJ1l_uRaUK0MSFzXNjLcXCfRnWkglCFo7sK-pJtV6DLc8UZphmpOsWu1QXH_Y83uDnmwGtbZJVWqe7MDpN04f9QG64ojJHuXYCZIBDJwggdAq4O8oMMiW0T4Fbipey_mKeM5MJI2PgbEBp3snSHwv0uA8Cw6-EdyIEcSrcmYhOjCuuKk2csAKvvo0Wwb9gf7rW7hBB-7A8wN_CGp7jUyZcSgII-WG4OKBiKdRwRV5VNZyA92rkQUS7gPSubnTl5-JKxh6TpD0G3eL2shyFGI_94BxJYugFs1ohnuy6PUdeOY9Brmfew4cWhn9lgwcwyUmfQhMEVV7w5hgVn9bEfU_lOfWVXHBpXpJ1_p--9nV1maw1kXJfOHAqW7nDEnSu3OCJAxj3QGNKwx-gnHEkJQLsi4ZUmReEkwRo3-ZyLKFj_VFxdKB8Y52tSoOTF7x7A8q1GAySkGvr8djFFut4n1abccjlSil65I5wegdqsJRxzC3t9qRRN6ceyho7gST-mxeUNU1R-f6xi79jl226lqHbjkukorylVG2H9Z_alWHb1M1xcfTdtur71Q3-Yi6vu-ZCOZ4iU4D3hv1_VOg8hM0_hSzHOQOfqBje-hb-_j_Ufs0X_5-VoJDYytrJfi6lfSd5_K6kJJmjHyOG3XiBd029tmWgNGgSXTaEsEbLMGXxS-wQV6Yxpa_zBLh0DDMJrKE-yyhayL1VGowqFKFbmZrnPyJpxhJdWzjBJPPCqb9vlY5jK3K0c-yfyfJNVRlv25HIDA1p9rm-NHtbcO3h6FO8P2BBf4zajUqcvKF8M6P7wtd9spmwNU_J4-KiJqKv8_g71SqAQSnoy8WSKMa9DUj6w-tansZmbwrKpZP1lTVNydqwvPZciEQl8yY_xunHzf5a-gir51e9jKrnxj-sp5oMYe0CmOyJEKQvOmQVwu0g7D3tWXDxmm6VCkIYi-O34N9RdQF4qtZqeRRHL2FvN2YGaiDvja7VyOH3oHI21Y_nrk7oG0V5Q_9Fm5_BzciCLXi55hwSS5RqYsTJxg9P9E5OFeC8tUNWe5E0C-syBBrQutzITZ9vSCoSUGdW3OiEGVdMdeIivfi0altR_T_Wy2aIXBW4Xui5IQ_86RnOSgZ15G8btr4dTSALf-A__jHf5d_kI95RRy1nCLY5xTvCHY3hBHtMJ8Z5-KoHZ67zDHIPRj17Xza8TN0jeOsoiwnwsKBnai7y-qWEcnbBjyrF8hGBZfVmoj64F64XVaUzBd2zmyXcB9q2wTrFhtlBrGdItTKdJheP8-HOO6DNF3xKsWPjzWwNOWFWCOWUkWEWZ0LRmaVRp-sOP2jImmpRJemNyz2nEuFuKJG6RFiLEP4Xjv7RkJOlqhiKs0JI4q8R4od30lH3APBfz-ILVlos8b5t4K4_b-_y2H8NwL788rULq05cOqHPdjzzS4bs2gk1Vareu7CMzy2Gd6DfSPiH-86infpyzOyovzlLPZ6x9Xmr5PaIGz1Wryv13RabkfmJeW6niZt2_zToYeFi1Zc-MeUB5iyXvFt3Tona7Q_yh2wwKOFOnDahtWgqeuH9pga7htTLYTXSEhippPiHdxWm6wo2Pbz44TGNNR8JvPFZtaqRcuCbhGPlghCv412KjS54nlNhmzh_khwpQ7lso3k1tcO4_I9Q7mgneQJumU7GnpevGzVDRMhCrGpB6-V2D8b8sqUpJFQz0bH0MzU2Jbhm1suyjpD2r77Sc2xt-kQNhsMdNPBvqY7Zce6pIyIeqRg0ukg22cdP9vpz8Moc6sLd4FsOrGvvS1s9OkWJVkUZijaxoQ0lXdIkPx5XGlampVmI5AeHg6Mdxn3RYHv07JgFD85cAjbEwQ_84ZXEugGUpo169V-3-xdaAZR9GatUoQxkfIYysERWCImyfbLhoZepsfXOOi3gtzOLoL_uMbNuDNVzXHVbtfUOxsTrNp7h-ODzpmbiLkiqqXyxyeXn6emvUOwadwurQ1bGsRv1qAdUH4xfhtC7szcbWtqbmdfwXP0NvDt6YbuSsqukoctozQ6LEzQn74IoplKiFsJOGwScIQJCvHAD-MAAoz9dI0M4d_mmUQI9HRDlnoo3SHRWbPWJKhzrJle-6hmqiiYHhS5oA_EbEG0kDZK6HAQNlr4O1oMvZCAxhAjX1vmGCDqLw0Ef7PdTUPoZulBP8yyCGwDw0FcZdwA-K3IbOthaHaA2MQWBvtax5YkpkvejX9WodoZR_6o3my7y672dv0myBYmdiL2wsRoMAG7TF6ak9Y7aoaSbGJlfYkWhtZZjmqDWSk_nTedLy6mFcc1oMmjEkjWi9lmA1Rjo2cb6wb99sT6vn1wdvK04nO0JOypY5SlbTEVxjCmbN3APsauxVc25oVQc1NLTcNop_OzbNCh_L-ku3d7O9WZ1Pft9AGSFKfWAer40blYH0iVQDoT2tOvlIHN-c004q4zHXeghYZIWlt3mccAwoE3fNHWJgSjZ5VL0wGdpLBzo76gVUiOXmmjfWnSKeKOZo6WJk3080z8sVYZ7FoFLfF7rfJbkcmXTfJbkV1QqTomaTniGjH23cxknNd7GDeOU9aLN2ZX9tut2C7vP9-WUbCd3A-7FGkwhKgf7lfVLgFutktrHTeLTutSPb2xBrVBdCvYBM-hDp6h3QgUDvehesGa49b3DhvZw4Ve8oxf2MNHyMvjNjHwh2HfUJTadNEuxUJ5jN_foZL-RQ7rT9giDNEuY3oZVDPtNDJP3h3F8Lu73N6-QrqrFIyD1k6cCO7TygBr-GwD1mSgxOaPrd6aKdpUe-A03uvkMehss4uCLm4PL_sR0Ig_0HDzNNdzCm2u7cDwWzQiCrvb-4OQeDFIU0YznbqRUKkmlOlrsFb64tYnlpUDp72evvBJ5qQ0DwCVitnHBHbl1tt8wm1miaJnoDA2xDalrywdv4Kj_qqPu6bxHjZzbXGLy0f9fY12LPFBI-xtPAgH2_AfDZ65Ao5A3WrnWYvW4-fmOQu0xFH9mEUzEAGxM4P1CABLWycC-3AdWCLKSA7-pOoOkEeqPT4nwA-0u8eVJMB9AKoAkhBAW6Xspg3QPE9X-5_jJQskVkSzZvAY99N-6JbYZZRXj-6KV_q8eR4O1I92BQkoC0kfHS8xlTBjJB9T8ewh-5ZGvFBEf-YUrXghFcVgLc0ZY70D_nv6v31xQbJYJKOvYPF1Aqazi4vZj_OrL2B6fjGZg8XMHD779gXcTK5nNwvHvDHget9bB2KpI8eLbx7YXCAIMNyW5ACpWt5bFIZTtS7t83FuuOwHcGAfk_vo3fLu7bY-hrm_EkEcOJDmXQ5LyogEVAEk70kO1kS7XpMFvMSJztpQ_6KlE40dGL_yNolKEuEipRC-q9_eAKdL-3SjH0f9gR-FOwbQUuHwJD8N8mEwRCfk1B8EsRd4sR-f3J0GcJjhYUwQWoZ5FuUB9OAw9PzA9-MgjLITego9GHk-jD0IPT_u-X7kaz6MwyXJssHQCT2yRpT1dMbpFWJ1Yl5ucerDsD8IThjKCJPmJRsQ2qENnWh8Ik5NuZhVK-mEHqNSya0IRRUzb-YwBaMTjcHIjM68IFL3ImD0noAHZbaBAsqBVKLCqhKIAWWTu-ydVIKdfvzdHFaDh1P4fwEAAP__nn5IIw">