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

    <tr>
        <th>Summary</th>
        <td>
            Clang crashes with consteval in front-end
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    ```
# clang -v
clang version 15.0.6
Target: x86_64-pc-linux
Thread model: posix
InstalledDir: /usr/lib/llvm/current/bin
Configuration file: /etc/clang/clang.cfg
System configuration file directory: /etc/clang
```

Note: I self-hosted my LLVM version compiled with itself. The first stage was built using LLVM 11.0.1, which was my previous installed version.

```
# readelf --string-dump=.comment (which clang)
File: /usr/lib/llvm/current/bin/clang
Format: elf64-x86-64
Arch: x86_64
AddressSize: 64bit
LoadName: <Not found>
String dump of section '.comment':
[     1] Linker: LLD 15.0.6
[    14] clang version 15.0.6
```

I followed the instructions at https://llvm.org/docs/HowToSubmitABug.html

1. normal compiler invocation crashes
2. adding `-emit-llvm -Xclang -disable-llvm-passes` to the compiler arguments still crashed
3. just `-emit-llvm` didn't crash
4. `opt -O3 foo.bc -disable-output` didn't crash either
5. compiling the produced source file using the run script file still crashes (from step 1)

Stack trace with `-march=native` (Intel Haswell) and `-O3`:
<details>

```
1.      <eof> parser at end of file
 #0 0x00007fdf10358a33 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x1e38a33)
 #1 0x00007fdf10356bd0 llvm::sys::RunSignalHandlers() (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x1e36bd0)
 #2 0x00007fdf10358eda SignalHandler(int) Signals.cpp:0:0
 #3 0x00007fdf0e0e28f0 __restore_rt sigaction.c:0:0
 #4 0x00007fdf122a6dd2 llvm::X86TTIImpl::areInlineCompatible(llvm::Function const*, llvm::Function const*) const X86TargetTransformInfo.cpp:0:0
 #5 0x00007fdf116621e5 llvm::getAttributeBasedInliningDecision(llvm::CallBase&, llvm::Function*, llvm::TargetTransformInfo&, llvm::function_ref<llvm::TargetLibraryInfo const& (llvm::Function&)>) (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x31421e5)
 #6 0x00007fdf1167121a llvm::InlineAdvisor::getAdvice(llvm::CallBase&, bool) (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x315121a)
 #7 0x00007fdf1137e725 llvm::InlinerPass::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x2e5e725)
 #8 0x00007fdf113833dd llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::InlinerPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) Inliner.cpp:0:0
 #9 0x00007fdf115d7d14 llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x30b7d14)
#10 0x00007fdf113837dd llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) Inliner.cpp:0:0
#11 0x00007fdf115d9d94 llvm::DevirtSCCRepeatedPass::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x30b9d94)
#12 0x00007fdf11383e3d llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::DevirtSCCRepeatedPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) Inliner.cpp:0:0
#13 0x00007fdf115d92f5 llvm::ModuleToPostOrderCGSCCPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x30b92f5)
#14 0x00007fdf11383c5d llvm::detail::PassModel<llvm::Module, llvm::ModuleToPostOrderCGSCCPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) Inliner.cpp:0:0
#15 0x00007fdf104d2c4a llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x1fb2c4a)
#16 0x00007fdf1138044c llvm::ModuleInlinerWrapperPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x2e6044c)
#17 0x00007fdf125df74d llvm::detail::PassModel<llvm::Module, llvm::ModuleInlinerWrapperPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) PassBuilder.cpp:0:0
#18 0x00007fdf104d2c4a llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x1fb2c4a)
#19 0x00007fdf14e159f0 (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
#20 0x00007fdf14e0e7a4 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream>>) (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x23ff7a4)
#21 0x00007fdf15131300 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) CodeGenAction.cpp:0:0
#22 0x00007fdf13fdc424 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x15cd424)
#23 0x00007fdf15a0579f clang::FrontendAction::Execute() (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x2ff679f)
#24 0x00007fdf15989fb6 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x2f7afb6)
#25 0x00007fdf15a78692 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x3069692)
#26 0x000055ec8c7d567b cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm/15/bin/clang-15+0x1567b)
#27 0x000055ec8c7d3401 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#28 0x000055ec8c7d2ef6 clang_main(int, char**) (/usr/lib/llvm/15/bin/clang-15+0x12ef6)
#29 0x00007fdf0e0cd7ed __libc_start_main (/lib64/libc.so.6+0x2017ed)
#30 0x000055ec8c7d001a _start (/usr/lib/llvm/15/bin/clang-15+0x1001a)
```

</details>

Stack trace without `-march` flag and `-O0`:
<details>

```
1. <eof> parser at end of file
2.      Per-file LLVM IR generation
3. /usr/include/c++/v1/__memory/allocate_at_least.h:53:65: Generating code for declaration 'std::__allocate_at_least'
 #0 0x00007f3938410a33 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x1e38a33)
 #1 0x00007f393840ebd0 llvm::sys::RunSignalHandlers() (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x1e36bd0)
 #2 0x00007f3938335066 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007f393619a8f0 __restore_rt sigaction.c:0:0
 #4 0x00007f39361e66a9 _int_malloc malloc.c:0:0
 #5 0x00007f39361e7aa2 _int_realloc malloc.c:0:0
 #6 0x00007f39361e8d32 __libc_realloc (/lib64/libc.so.6+0x264d32)
 #7 0x00007f39383a0420 llvm::SmallVectorBase<unsigned int>::grow_pod(void*, unsigned long, unsigned long) (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x1dc8420)
 #8 0x00007f393834c8b2 llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>::Allocate(unsigned long, llvm::Align) FoldingSet.cpp:0:0
 #9 0x00007f3938439b7a llvm::AttributeList::getImpl(llvm::LLVMContext&, llvm::ArrayRef<llvm::AttributeSet>) (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x1e61b7a)
#10 0x00007f393843ab68 llvm::AttributeList::setAttributesAtIndex(llvm::LLVMContext&, unsigned int, llvm::AttributeSet) const (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x1e62b68)
#11 0x00007f393843ad59 llvm::AttributeList::addAttributesAtIndex(llvm::LLVMContext&, unsigned int, llvm::AttrBuilder const&) const (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x1e62d59)
#12 0x00007f3938519a1b llvm::Function::addFnAttrs(llvm::AttrBuilder const&) (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x1f41a1b)
#13 0x00007f393d2071dc clang::CodeGen::CodeGenModule::SetLLVMFunctionAttributesForDefinition(clang::Decl const*, llvm::Function*) (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x27401dc)
#14 0x00007f393d211876 clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x274a876)
#15 0x00007f393d20b29d clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x274429d)
#16 0x00007f393d1fff0b clang::CodeGen::CodeGenModule::EmitDeferred() (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x2738f0b)
#17 0x00007f393d1ffe68 clang::CodeGen::CodeGenModule::EmitDeferred() (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x2738e68)
#18 0x00007f393d1ffe68 clang::CodeGen::CodeGenModule::EmitDeferred() (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x2738e68)
#19 0x00007f393d1ffe68 clang::CodeGen::CodeGenModule::EmitDeferred() (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x2738e68)
#20 0x00007f393d1fe10e clang::CodeGen::CodeGenModule::Release() (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x273710e)
#21 0x00007f393d299994 (anonymous namespace)::CodeGeneratorImpl::HandleTranslationUnit(clang::ASTContext&) ModuleBuilder.cpp:0:0
#22 0x00007f393d1e8c39 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) CodeGenAction.cpp:0:0
#23 0x00007f393c094424 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x15cd424)
#24 0x00007f393dabd79f clang::FrontendAction::Execute() (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x2ff679f)
#25 0x00007f393da41fb6 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x2f7afb6)
#26 0x00007f393db30692 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x3069692)
#27 0x0000564439ec567b cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm/current/bin/clang+++0x1567b)
#28 0x0000564439ec3401 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#29 0x00007f393d71a962 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const::$_1>(long) Job.cpp:0:0
#30 0x00007f3938334daf llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/usr/lib/llvm/15/bin/../lib64/libLLVM-15libcxx.so+0x1d5cdaf)
#31 0x00007f393d71a433 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x2c53433)
#32 0x00007f393d6e45d7 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x2c1d5d7)
#33 0x00007f393d6e48de clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&, bool) const (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x2c1d8de)
#34 0x00007f393d6fd55c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&) (/usr/lib/llvm/15/bin/../lib64/libclang-cpp.so.15libcxx+0x2c3655c)
#35 0x0000564439ec2b60 clang_main(int, char**) (/usr/lib/llvm/current/bin/clang+++0x12b60)
#36 0x00007f39361857ed __libc_start_main (/lib64/libc.so.6+0x2017ed)
#37 0x0000564439ec001a _start (/usr/lib/llvm/current/bin/clang+++0x1001a)
```

</details>

My only guess is `consteval`. Replacing all instances with `constexpr` makes the crash go away.

I found the crash attempting to compile this project: https://github.com/RPCS3/rpcs3.git `0d929a210f33ea8fe18dcc3aa5291a9544b29cfc`

The file https://github.com/RPCS3/rpcs3/blob/0d929a210f33ea8fe18dcc3aa5291a9544b29cfc/rpcs3/Loader/TRP.cpp is reliable to reproduce the crash on my system.

The included header file with the possible crashing `consteval` -> https://github.com/RPCS3/rpcs3/blob/0d929a210f33ea8fe18dcc3aa5291a9544b29cfc/rpcs3/util/types.hpp#L118 \(search for `__INTELLISENSE__`, about line 118\). Enabling `#define consteval constexpr` makes the crash go away. I couldn't test yet if the application still works as intended with this change.

cpp and script files: [crash.zip](https://github.com/llvm/llvm-project/files/10203057/crash.zip)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsfFtz2zbz96dhbjDWkACPF75QZKt1x2kzttv3udOAxFLCE4jgC4C21U__H4CURMiSHSdOmzyTTmrLJA67vz0A2F2Bas2XDcB5kLwPkot3tDMrqc7XdMlV192DuAfzrpRscx6k4fAvvAjCaYAJqgRtlujsvn_S_3UPSnPZoCiZhJO0f3NH1RJMQKboMU8XaXzWVmeCN93j8HqlgDK0lgyEbdRKzYdXV402VAhgF1zZVwGed1oFeC54aX-K-3WA51WnFDQmwPOSN33HmWxqvuwUNZaYmgsYuoOpbA9L6_b3pKqXfa_bjTawRtWTzohxBZWRanNkmB6PA3jcz9-lcfNeIQ2iPltJbYCh9QZdX__1YQdVJdctF8DQAzcrxI1tO0F3K0A1V9ogbegS0APVqOy4MKjTvFn2Q0TRJJxEAZ6hhxWvVq7ReoNaBfdcdhrxLX7bySZj8o6I1EoCRI3OzrRRvFmesW7dBuRiUsn1GhqDApz3Uw0QFn3f-R7hFwXk4TaXak2dboCo0_jsMU_P0rh_N1XVaq81wzPGFGh9y_9286VxyU3_5lpS9jtd92SQ2e_SoFp2DQvI5SBdxxGyHCFZIw2Vk2-Asy13Ac4CsgUneY_sf1GQXKBr3nwCp4HX1xeebg_Notg2O20CR9XjCtVSCPkADJkVOGGpzhGlETVoZUyrLT14PkA5kcpqLZOVDvD8V_lwJ2-7cs3N9H23nKzMWoyHjyaoseiKrYYpxJt7WfVqXSmqV6D7pniCKGMWnSANz2DNzZmdD539Z7BxxjUtBbinZy3VGnSQhshIR_lufKqWnQVSI224EMMkrJ-ETNB_O238KewojLMmwJnpm_eN44ltJ1uDzv4gqJZyUlZ7MmRn2s487YuAmxWofohkMhBm-bJktkqyrgKGtOxUBb1l99ZkX6uuQbpSvDX9mzEL2ip-reQaaQMtinaKv1UtWn1CRtEKeiu2PK6p09-Lhhp-D5bYAOdXjQGBfqX6AYQIcIFow1zrP4jVjp32kRkDQ7nQO_U9qkjRxCmpVXiQdUAuUUuVtpIwCBpm9dw5P9cYBZiEKHwMwzDMalZHIUlySghygiDTgEz1RvcfPireGMfWneUqwPm-kaIPC6mNAroOcGq9D7e2U1j-jjuAKNnZ_mTSv0zj_rf1Y2dRInhZPT5OtAzw-_AxAmIJ26FsKY8OKE9LFh6j_KZrbvmyoeJX2jABSjuq3pY4O7dHHD6EFRhFHhkBzgeU-sd6UrVtQKah-383EBkNFEIIOK9DtFgo0EYqWCiDNF9S5yQm1dPu8ZgOjGnKGB6B9J88vbu7ulq3ov-bKrhqBG9gJtctNbwUvqTnXdM7yUo22gR4aoX97Oui_4zsTG7Zv1O00bVU66umlsd5TsZER2mKI0hGsyzBTI1RvOwMvKcamCOZN8sLqLj1tB7JMyqEbTVo5lNin3BxhM4nneuh80JBHZDZYedrXiqqNrbrFosUHUXSjVxYo35LlSRRbEHzVDL1Uc0iHNERR73cp-yea6n2QLN7fmDtB4CWUoo3pj2xpHm0Zx7tJIMMJ09oVx-pHmxedb4SXNO_N5buXxRtV_2j29nsiVSnDRUbzfUH2tClXd9nLw8x7u-3wakTa_pCG-_t7Jfb2ezPllEDN6A7YXr9eDt0MSQWPA_d3Ec3J4SxEU39wjMsA1TrD_3G_JXYjGXkvfioQIO6B9ajD_ofkMlXCoRc_o-q2SCk42658NQkYRmL4rEcrWp8IUc_hfwj-hISllYH9ntfTKLw0Jdk38CX_A-q2k-X-J1ay0mXaLU9OnCJBSvGLvEC7rkyt7PZDbRADbCfO5TP8ioWRs-r4EOvAuTtvcpxaf00zO9U4Z41THJomLgeHxg-SNYJuJMfpTZ_KAbKTWLlPWW0NdsD0CFmfbdXYTR0Gbh-YzPBdeKZSXxoJlXyOjPZMjh7FVZvZSJ7rE4p7RsI4Fm18SIPYcxwFdPP2Hccg-1fZ_Tt4lt1aXHwNC090LQwjqsnOjNA_f8UbdvnTuffE7MYUsuLx6wXfcAJq7P4rczqCEQ_lDVZit93XLBTFpX_tKjPsyjvdB1DlBS1SxDQRjabtew0augadOuC70VP4OWam6nWsC7F5lcQLQzr1k3X_NEavuZ_u9zOR96CVbMA532mzTV6T6tP0LDpEIacIW1Y_2axiPoPXcP_fweL1vi4KPqwaB8UN7DYRv2P9WZQ006YBQMBBl4YoZdcL53PJuROSvGHS_24fONrqTjoviehQAM4fxoujuo1Dn1xhZDRGI3QtaIZBumn8MG_4HTZSG14pS-bpZONY33U5FegDNQtUFWtrDRlo3ex5IOmM8ngF2heaNWHpl9odE2b5bEme9T6tOkN1Mf82RBM_97V7Mts2XF1VrXtRMvJ1qb7VYPUdUa9Mwv2zoZJRCIShkeAmclGd-ut5fbJIZd7EM52_2z4gepMb-9msjHwuN0ID9KfDkmgY9rqnZ9IzaoYe9r6kSoN09s7f6ZbWFMvyv910f7T8EVJxWLsw-ft4BMaJllRj0meKwvCTrF6o3uEqjPwFQm-Z0Rc12lW1B6N3n47KfKiLlPfLvs8uCtbaSrwqNxaRH6aqS9fdp7jI6N1mXp8JD7WWZ4W2HNmPcV7drZVAz71T9jtE4BvSz8J0yItsEf_djeaJFDlVcaSNCtRVUWLNeX-LmCqFN3cuJxdtaJqn6jsT9r-MzxD95KzV7DRk20fOK1Os9KjMzugk8RhhLbgzqI7Z1wjam_XVIi_XKFRn6M9QrRTEab4_YkdGM4PJsVQD0q6hcfloXvmHa9fyK4d2GO38HPXFcuAocXCCnOhDVXGETDMNBa-FXraa2sYZcDGo-4qFrb8hGFEUT_eFxBte--HP1aVE5BZgOfHqy8O6zxkZ0alHmmIakGX-5KO8AtLOj6rmgMPpR8fQZ25ehVXEXZ1g5bQQF-7tqu72YHEm0p0DCwsAX7v_s3vowDPF4s1rKXaBHhOhbDmDgtqFgKoNpNVQKYJCcg0TQIyRb8MEzRLVEkGqJYKMagEHSrmApyNlu0nwwU4O1aPQgqSx1H4A9ajOMpD-D7rUSxxhCRhmqKZonp1A5W8B7U5UZzitRn2HS9VqpCCpFFBv7RSxXWHNKUFWvDGOgmrMaj_daxrctA1oxT3XRW81Dc96Jszgrc-atv7WQeVxozgE8UKDmsaxnisCCOn7sooyKxrXNEtc2q6Pb8ulXxYtJIFON8tQjO0aypkszzy4C3ViFV5jMMTlQKOtbjKy3E50ftu3X40atpb-G7RGh0SHKC795aBOCzSTvifIpx3YofE0Nza-BP2Ryu74MvGAjCXgvFmeQsn9LTw7ZQUZTaOSOxKi665NoMowDhOvPD59V8fxttwj5T9JuPIuLdg3rrcJ4I0KjN6IhHbs0nLNH-eTT2qq9JTc9UweHyBZ09zfQzG7O6qwN6SY1ymucdxdMgxS4rnOaaMvS3HQyhsdHL-JpyzpDiRHrOcJ1FBo_JYpduW6XljidX-zvgE-W8Y9IojGnkb4shbMxgOs4hVRwIb3h_bqFx_QjV2ri2De2HOpbqAmjf86SnlAirxQv3iNzm44CwOI1adSNg4_qMoz9LX8H-55uYXIUsqtqSf4rpvZXn3We6f_0VF922OaziLaZ5554IoOZB6iQv2ZVx_h9zGuGAnUiWW26iu67B8LbcXUINS9iD0LSIbGcnrsDyR8hiIhjT_7oiGgwUg_xGJLn5AonF4QDREIbyG6BuwJ79vFKjLSBaFcCIW6zxOURRF_FJyZSDbnmy3O9kvjdD2rD-XJ8PYRxTyihT_VrTYW5WrsIi__2ixv5DSkn2H0WJ_2aNx9INGi_0FrSThDxYt3kVh0zgmBVT_bLT4-Hcfh9jb0ahxfkDvPxI19pelLKJFih1_p78E49721rQ7u1dUiJJWnxZ1Y-nYS7-fe9CEWTST6zVt2KFhvnCm7hOV1I8x7POTQ7LvWNKwpJpXi_47rQNAxxvaNwujKDd62-7UmHQX1tg3tG2ne1e4_0JU3yXAse19aVkd4je_yfKoRA4io4TEjNbjMrkjgbp9wJHWIDYeoM8L720DSUnFqOcL_WCpVa-YEPRTPb4uXvCMG68SEo_i1VYE_o4jhThh2UkROF9Nn6ydW7l4jv2go21wqtrgmabTg--XfRtYIpawzIOFHMKSM3gtLL_JUp_G5DdZXnNtTpVXPPHeT1Wppdxq0TZv95l4jktsvjWqOfM24H50n6U1S5LqFOEXo8_eXuLIJuKUNP4NVN9871WRNEm8gNEu1bHdC-AyDb8mmfvibsRO4FFwkDDJkzdJ6h7uyT4rqfsi8V-X3P2wQbIRG7TsQGvENQrS0Ikd7qkI0nCCbqAVtOLNElEh-ss1mgr07iv_fevHVgVpiNb0E-j-egR3NcFSIvpAN5PDGyC6ho1aUWNg3brcqpHbixWQWXGNWiX_C5W7K8O_GmLJzaorJ5W0IN18nN2SAM9VW2kyWXKXoA5ZgQuKo7AmBGheQ5SzqiKUJriIaJHEcYmLqq4O0OrvIBHw2fNZ0QhpRfbZM-57XkvKwAr97uaj3RJZESgQnJYWAYkUDBc4jOCSDVpvkHb3tkwOSR-S3QytXGldz4qTlbsNQmrN7dBupOHui7G80VlALv8Z1jvDRYDnZtOCnqzaNsDkOopyFCSzAOfa1QS6NHuQhovF1e93l9fXV7eXv99eLhZWZniGaCk7gwRvAEVR7joWE3TZ0FIMvAWYMKhtgx2X6LM0Fl2hSnZiuGjDgDZoAwbx2rWlbSv4cKlIf2XGg1SfNKIacXdc3d5s45S4WtFmCZ6orKitix3dvaHdJS7Je0fH5G_eBslFgPNnZDG4COHuJxkMBc_7sfA8CnFIwiSzTmM35NZRvGPnhBWkoO_gPEqzMMuzMMPvVudVFlLIMCM5TkmcFJRBxkqGSVJEMaX4HT_HIcYRjqKoIFGEJ3mGE5bGSUYoydOkDOIQ1pSLiRhub3nHte7gPCniOHsnaAlCu6uXMG7gAbmXAcZBcvFOnTteym6pgzgUXBu9H8VwI-B85u5m2V5Q4jDeS5Y3qFayMWfQsHedEuevBs9RY9Fz1P5fAAAA___ytDjN">