<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/57818>57818</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Crash at -O1 and above on valid code: Assertion `(!IsSigned || !isKnownNonPositive(Stride)) && "Stride is expected strictly positive for signed case!"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
shao-hua-li
</td>
</tr>
</table>
<pre>
```console
% clang-tk -v
clang version 16.0.0 (https://github.com/llvm/llvm-project.git 8f19de848b968bfdd237bdb6ffb65e7412bb6a0c)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /zdata/shaoli/compilers/ccbuilder-compilers
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Candidate multilib: .;@m64
Selected multilib: .;@m64
%
% clang-tk -O1 a.c
clang-16: /zdata/shaoli/compilers/ccbuilder-repos/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp:12416: const llvm::SCEV* llvm::ScalarEvolution::computeMaxBECountForLT(const llvm::SCEV*, const llvm::SCEV*, const llvm::SCEV*, unsigned int, bool): Assertion `(!IsSigned || !isKnownNonPositive(Stride)) && "Stride is expected strictly positive for signed case!"' 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: /zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj --mrelax-relocations -disable-free -clear-ast-before-backend -main-file-name simple.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -fcoverage-compilation-dir=/zdata/shaoli/RealSmith/synthesizer/bugs/work47 -resource-dir /zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/lib/clang/16.0.0 -internal-isystem /zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/lib/clang/16.0.0/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O1 -w -fdebug-compilation-dir=/zdata/shaoli/RealSmith/synthesizer/bugs/work47 -ferror-limit 19 -fgnuc-version=4.2.1 -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/simple-033dd5.o -x c simple.c
1. <eof> parser at end of file
2. Optimizer
#0 0x0000561c0bb6c394 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
#1 0x0000561c0bb69b54 SignalHandler(int) Signals.cpp:0:0
#2 0x00007fcd4a0e3420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#3 0x00007fcd49b3400b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
#4 0x00007fcd49b13859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
#5 0x00007fcd49b13729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
#6 0x00007fcd49b24fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#7 0x0000561c0aae98ea (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x2e238ea)
#8 0x0000561c0aaf8813 llvm::ScalarEvolution::howManyLessThans(llvm::SCEV const*, llvm::SCEV const*, llvm::Loop const*, bool, bool, bool) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x2e32813)
#9 0x0000561c0aaf8dc3 llvm::ScalarEvolution::computeExitLimitFromICmp(llvm::Loop const*, llvm::CmpInst::Predicate, llvm::SCEV const*, llvm::SCEV const*, bool, bool) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x2e32dc3)
#10 0x0000561c0aaf9408 llvm::ScalarEvolution::computeExitLimitFromICmp(llvm::Loop const*, llvm::ICmpInst*, bool, bool, bool) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x2e33408)
#11 0x0000561c0aaf9782 llvm::ScalarEvolution::computeExitLimitFromCondImpl(llvm::ScalarEvolution::ExitLimitCache&, llvm::Loop const*, llvm::Value*, bool, bool, bool) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x2e33782)
#12 0x0000561c0aaf9c73 llvm::ScalarEvolution::computeExitLimitFromCondCached(llvm::ScalarEvolution::ExitLimitCache&, llvm::Loop const*, llvm::Value*, bool, bool, bool) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x2e33c73)
#13 0x0000561c0aaf9dad llvm::ScalarEvolution::computeExitLimitFromCond(llvm::Loop const*, llvm::Value*, bool, bool, bool) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x2e33dad)
#14 0x0000561c0aac67c8 llvm::ScalarEvolution::computeExitLimit(llvm::Loop const*, llvm::BasicBlock*, bool) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x2e007c8)
#15 0x0000561c0aac6e61 llvm::ScalarEvolution::computeBackedgeTakenCount(llvm::Loop const*, bool) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x2e00e61)
#16 0x0000561c0aac7a28 llvm::ScalarEvolution::getBackedgeTakenInfo(llvm::Loop const*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x2e01a28)
#17 0x0000561c0aafbbf6 llvm::ScalarEvolution::hasLoopInvariantBackedgeTakenCount(llvm::Loop const*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x2e35bf6)
#18 0x0000561c0b8a931e (anonymous namespace)::LoopIdiomRecognize::runOnLoop(llvm::Loop*) LoopIdiomRecognize.cpp:0:0
#19 0x0000561c0b8ab63a llvm::LoopIdiomRecognizePass::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x3be563a)
#20 0x0000561c0ceed576 llvm::detail::PassModel<llvm::Loop, llvm::LoopIdiomRecognizePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x5227576)
#21 0x0000561c0eff102f llvm::Optional<llvm::PreservedAnalyses> llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::runSinglePass<llvm::Loop, std::unique_ptr<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>, std::default_delete<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>>>>(llvm::Loop&, std::unique_ptr<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>, std::default_delete<llvm::detail::PassConcept<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>>>&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&, llvm::PassInstrumentation&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x732b02f)
#22 0x0000561c0eff1216 llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::runWithoutLoopNestPasses(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x732b216)
#23 0x0000561c0eff24bd llvm::PassManager<llvm::Loop, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&>::run(llvm::Loop&, llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>&, llvm::LoopStandardAnalysisResults&, llvm::LPMUpdater&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x732c4bd)
#24 0x0000561c0eff3731 llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x732d731)
#25 0x0000561c0cee9146 llvm::detail::PassModel<llvm::Function, llvm::FunctionToLoopPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x5223146)
#26 0x0000561c0938e474 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x16c8474)
#27 0x0000561c0a9011d6 llvm::CGSCCToFunctionPassAdaptor::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x2c3b1d6)
#28 0x0000561c09374a36 llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::CGSCCToFunctionPassAdaptor, 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&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x16aea36)
#29 0x0000561c0a8f8b17 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&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x2c32b17)
#30 0x0000561c0b40f656 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&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x3749656)
#31 0x0000561c0a8fcfb4 llvm::DevirtSCCRepeatedPass::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x2c36fb4)
#32 0x0000561c0b40f606 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&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x3749606)
#33 0x0000561c0a8fafe4 llvm::ModuleToPostOrderCGSCCPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x2c34fe4)
#34 0x0000561c0b415fba llvm::ModuleInlinerWrapperPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x374ffba)
#35 0x0000561c0ceec596 llvm::detail::PassModel<llvm::Module, llvm::ModuleInlinerWrapperPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x5226596)
#36 0x0000561c0b2d57ba llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x360f7ba)
#37 0x0000561c0bf374b0 (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile>>&) BackendUtil.cpp:0:0
#38 0x0000561c0bf39a42 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x4273a42)
#39 0x0000561c0ce7efab clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x51b8fab)
#40 0x0000561c0dd4fbf9 clang::ParseAST(clang::Sema&, bool, bool) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x6089bf9)
#41 0x0000561c0ce7d9a8 clang::CodeGenAction::ExecuteAction() (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x51b79a8)
#42 0x0000561c0c71a6f9 clang::FrontendAction::Execute() (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x4a546f9)
#43 0x0000561c0c6a28de clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x49dc8de)
#44 0x0000561c0c7ff803 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x4b39803)
#45 0x0000561c090336e4 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x136d6e4)
#46 0x0000561c0902c818 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#47 0x0000561c0902fc85 clang_main(int, char**) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x1369c85)
#48 0x00007fcd49b15083 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24083)
#49 0x0000561c0902c40e _start (/zdata/shaoli/compilers/ccbuilder-compilers/clang-assertion/bin/clang-16+0x136640e)
clang-16: error: unable to execute command: Aborted
clang-16: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 16.0.0 (https://github.com/llvm/llvm-project.git 8f19de848b968bfdd237bdb6ffb65e7412bb6a0c)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /zdata/shaoli/compilers/ccbuilder-compilers
clang-16: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-16: note: diagnostic msg: /tmp/simple-b5efec.c
clang-16: note: diagnostic msg: /tmp/simple-b5efec.sh
clang-16: note: diagnostic msg:
********************
%
% cat a.c
int a;
long b;
short *d;
void e(int f) {
int c = 0;
while (c < 8)
a += c += f;
}
void g() {
if (d) {
b = 2;
for (; b; b--)
e(b - 6);
}
}
int main() {}
%
```
Compiler explorer: https://godbolt.org/z/WxYoWEvPr
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztXFtz4jgW_jXkRWXKN3x5yAMhpDu16UkqYaZrnyhZksHTxmJlmST96_dINmA5JEBPkunpSRdpQJbO5TsXHdlICaePp73Arl-EFyXPWc8-79nDnjtAJMfFzJLfkLWqG3UDWjFRZrxATtC3-zbqudFcymXZ82DQBbxmmZxXSZ_wBXzJ89X6zVoK_icjsg8dUJQ6MWWRHyVxECUppa4XJjQJ0jQJBiz0HTdJAmyTnhvXvCdYzJgEJughCqaBb1XFt4LfF1aeFdWDNSuqpt9cMEzRglOWq95LXmYP9aXLopQ4zxk9z4S6BHJ9p1hieC_nmOcZfACpl1kOGqrPJKmynDJhbVs1oQteFRQRXNAMxjP0aTRCWU0cS4CmIV6VQqmeJQoUAqpcNKJvRXYvHOf1aTaQ3bEc4Gb0VeQbbSRbVLnM1Cig0u95Zz3fXgR-h-VLncC3djnZtYNwn7Q8zXKC48wkGFi7420tH9SKDgucP5aZ6nZHcI7FeMXzSqHSJ8sl8HNcv-ar4kEiPRhc2xvejcZ_9Nxhu8UkUDcq0SrJvuCHs_EIjCovuLiaQJQ8Q6_njp5jtedSVZTZrACws0Kq7wnnuYoXkH1YlkwomZCKbTfquc5leVf37oUjeAGsTlb-R4XQb7y4gSiR2YpB1zspMsoUHTeGTgG84M2tm1FWIvawrG1cQhOR-aOOMTUapVygRiaCSyDiwMieG6IUg7VovzbuzdV4eDdGZZUsIBNglFQzpEwnJJIcHZdM4GtWlhVT9kTgooAFySsQVM4ZIgKXc5Rg8k0KTJjCaAmMBCcM8AEFeCXqZjUSlyUnGVaaiapAJRHZUjYi30kggmi1UB5SN9lwKb4RfCbwAkFyqhaskOWP5hVo1S6P14aDliQrNu1OgCxCHGQB5sucPZsEkcUAVIsnfyLLWgiW4wcIi5wTHfglsmhW4iRnVioYA5I5wwKYSithYDxmKbAYgGEtcFZYKQhnFXjBwKoLYNsnSBNtyFk6y6JlBs3wn5WzFXx16y9ZCW_AYpECQMxacvBSBnn3vOAFNKcLLOcWE6Lg8CVdAhaFshKk-HNwWystuCVUTsxAe9UXKOlYEBWRHGTOM_AwUCitivusoJZUagH-58Bf6snCIstKAWUFPjRVBdMNM1YwoSReKD9SgDIsrVKFssYle2BUyaV4lNY9FgVIALgxcNMZ2AwIQQPwmdEEuBMO8yGescaWNS5UTTDnu_zgluH8Diw0V42PBXhpmX1nKg8DeeUG91x880MERqu9U9F6NY-qU6BuV6m9nsAtbRhIi2Cyx1KyxZuyUwHbhOhOxs2kBB6WH9h17_zlXvT7T__b0fcpN_agPpCnXJuuO-i8PPp4FnpitO7B1bQLvrafpbWr55nKxU4MDaADsZoiD6j7fbfvaEfPoR_N8KzgpcyICj1MKXSD6DifTqHImH4e_jGenn8d3l6409HF5XR49wUowGiu1JKQPUEanUks2_MoHfQh-B8Q2aSXOrU6KrX2vBHjac8boyUW4FMIS6QyE0-RSkt1T1f1vF5KkF5pp9uAlWcj-8GGf4PAITZUksSLfXQjAHSdySdqOlDTIc4_Q-rPFTDRimdUz6wxqi-VTUVg678NbadDO04GPuoS01PyHkJuQyhMCfWxzTzftdF0CpEPCY5NYTrUM3fj4Tv8FS4spa53-yVXoXVmPzg-UNlUzYqN12YTJ55v2wkSOCvZAfSJohxoyr4HAw3KvknZ8aJBjHDCD5K8Rdl1YaBBedClHOpi5CiaoWvSDEyarp_S4DiangdDDJph2xcwZnHEcEPzDUqAWjHmesDFECMyxUijyPH21alzfv8FF49XUApN5rgA_pFZZdalZ1NrHnTpivOlcamuSLvv8Zsj5LkAgIFQ3EWIkr0INZX8-CGTVyo9Xgi-uBypJBa9oPP2EnRVS876y41gNIOyiR2M5pNL748igLRBUWU-u4Ni7NvRW6N4uYbxb3YpyJuRAYbTBSOM3B8BY8QLegnTnxmAu0Zvho0wmTO9Nnsx_LaX_sB5xf52BAEgA0G3iyAJfygoFYIaEvrrYwgQGRh6XQwppj-K4aEh-XMgAYoaSPgmEiQIydHJ6VAEznCZkTNYpXwzYHh7taF8IWYaGnTVZoFzoNpnarFPZ2yCYc2v71W9rP_7KQk6GEoGHSVD7O617YxJQ8HLIuUv6fcOejnYNY3XqR_TJEmDvYUbLpXkl8UKiwwX8jgrvkNkDkAJQ0ujPE0iHHuOXnvgghePC16VSN1jKpf6Hl28FfuSZnxxywifFbC8q9tFVVwX6uITJRv1ng58uvpSQsUdoZLAw52JwCRzA5pvZNjBvTOTrG80Q5GNZ-rG16g7oDvvwNK0oFjQ9chbVla5LBVlb7xzpnphhNn35svvS3XzXuhLb-0DXsIGgGbbB1yjdCSM0UHY9nTKJM7yplQG8l_q5zd7MdthIqMPlN0g6oo1ELHyjY30OhYCSh-OdoCjDWCVD35kOJpRlrM0dWw3bUmobhZx0MKA6amXeOO2EymHPAjdn9-f7rJilje5bIdwpaR1Q1Vk_6vYdClNJbpxCmUjYUv5j4WlrTJlKYZRU8g8DNbpv7Lam9cz2eXDDf5FbvAPmlBGnax8qR8Iqiev9Q8b3mPSCT03gTnFmHTc7qTjOsEvOoF8zeScV1LR-o2VUqnGyo8qZY_DuI5ZpXgdh3H9hP6iDvPhGy_7BgHTG77hd3zDC732HZ2LqiCK4IQrvZSnDCleSi52I77ufhTqm0ENmu8AAwUtDRgGnRVj7PjHrRi3mo8Ogu-1Fo5t8J6Lg3-EVWB55QHohlWMO3GxFzE_9F_BKs8lvN29j0D_w6gdozoBicBmhlHN25Cx7Ti0HWqjT3ej0YSvJd2bcq7w98cRzvNPAi_ndRMQOC7tP0PCSNVGn2dSf7eP-YRWKVan-3o-eBcLuMRLHGqGVWSGVehj78jbYwcA9oIdX-2m2Y_a7S8a7dl648MVX04GmIGnGa5o_lQiSqPECQ8pTQ-A6cNzfhnPgSTmgmO0PafzqzvfToPB6yexX9D_PpLvvzKEYJaPIUKMEHI6yZekSbu8PmerTEgQ9pYtmdqq8MJDyQ_w9-SvALA1wHef5C_79fPXbhN-pIB_pRfqFGCbKcDrpACcsnYKAK-rcjbhN7yU1wK4asn3rsnqYUcB3wx5p3UpBKQPmhpQ-GZAOoM0wU-guCzyrGDiK5h1ycTzCfGnRwCcIQUFDQS6N8HIID4uJa21Hh2C22tloS1uz-WFn94YA9cNAGvDGMa9r8Slg9Bwx-cq010m-MXR8wI7DTuubNxkSlLw9sTe9yuw8SKTai_rIskfP7N8yZrsdlsVza4f_dzvJlsy5cxql63ebaY7ndV7GYebG4j7nmoLfD9d3otMsmmptgUuDn0u_HRg-8nqPrYTzvPrSi4reZHVfnIIz86oLcMYNYr_LrN852_fzP0iYIoY-y5qIadgb4jULExgz7ebwMbFTOOuFW11-cwwOM4dw4LM65_clOsfIXa7jiBnfWLFnl71_v89na7g064uW9TUNuZidsvSXRlxveX6p3Khtw5V3w09ML8RqrE564QgdrIDlhFAXC3WMVlvfpsIXJT19sTfi6zjOMO7CYyR7OF9qquBk0D5lLRV8417FJT6aZLGbdVu1GZDkNMU_I4tcONL7_tD98COYpDQUMHpWIfGONoRUI3T1gH9wEgl2dqPo3fBPgS5DMGN9RUJHRyY2F8I5RybcGtL_i4y-3jgBx2wjWqcBNiNKDPBrpnow0UKwnbj_byS7xEHfkxJVJ_psNHLN22RppHtGVNArcFWvVWz6d_U5on67_Ebcz_xYhDX0McolGMbijVYNRHiTNVBBkbxNBQCP6oZwBuRORbb38bXy2CzDRpa-4Lf-Ga8F9DAXAH55uNW2yWRE6G1bUbORCeh9p6nBaxw_2DqiAS9p2yXjtrjqMhWTOwsD_ywwzQlUXNQyxrN5sQRRVtD8z7oxCCHgc66jllvEx7YkYemU7VrF2ZRLKSW98iNwz4QMbjEXRv4NkM1_bfXOQBmG2nax-LoffvqQ1WogyvU0Sms9guw9mIBk7G6OFS7sRl9YXh9qFPaZKX12ObEFkQrTbnU-9iVtlXJkLXSbYyhrJUW2jJ-HBJlgF1wVe0N0fb0BLQoZ5p842V_4VVTaJ-sM5xMhqPPaPJ5jC6ur66uv17-9gldXF6N79DkWjef_f4J3Y5vrm8nyiL12F0n40SlCuxnT8fZdBAM6UNh4CqWG5IHQtA5GSIZsJSRXSdBHU2jnP-ALV7LIsYpV1huD7eC5ImwOhNLf8s5hEuy-VrO6-MThnTTpCYgxOqsi1KdacPmElJnPyGCet45sjcDELqfgyeqqFOXRmhbhiH4p04oOFMjyPpDuhnaC89bTGfrsqvFL1VkaacVoUTL4LZkQPo4KEXBO9MKosSyDEGQ1ipBFtL3WbZDN1JsPig1m7lnzXrTZwP0-iS75sSyJh7VgVU5F3qZ0j1ditOE57LPhTqg5jv8fX34L_86Xt2IE3bqBIE3CKMoDE_oqUdjWCafyEzm7HSkD5YCm-pDy1R0JHzFEOS7Fc4zlUSp9rGf9Biuk0rkpz9-zhZg4kQn81PiDiixHcjBlFBYhgTYscOBE4cO8wnk5pMcJywvT3uDM-BfsHukSShZBucn2alru64dOzH8-V7YtyM_SNw4CZPEHyQDuwczH5g87ys5lIlOxKkWSZ9g49t5VspyexESlFKZaXZAH1cSQulUJW1rXmGYAk40-1Mt_v8BNqph4A">