<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/126581>126581</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[SLPVectorizer] Segmentation Fault using opt "-passes=lto<O3>"
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ewlu
</td>
</tr>
</table>
<pre>
Testcase:
```llvm ir
target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
target triple = "riscv64-unknown-linux-gnu"
@a = external global i32
@g = internal global i16 -8049
@r = external global [8 x i8]
define internal void @c(i16 %g, ptr %r) #0 {
entry:
br label %for.cond16.preheader.us.us.us.us
for.cond16.preheader.us.us.us.us: ; preds = %for.cond.cleanup20.split.us.us.us.us.us, %entry
%indvars.iv133 = phi i64 [ %indvars.iv.next134, %for.cond.cleanup20.split.us.us.us.us.us ], [ 0, %entry ]
br label %for.body21.us.us.us.us.us
for.body21.us.us.us.us.us: ; preds = %for.body21.us.us.us.us.us, %for.cond16.preheader.us.us.us.us
%sub74.us.us.us.us124.us = phi i32 [ 0, %for.cond16.preheader.us.us.us.us ], [ %sub74.us.us.us.us.us, %for.body21.us.us.us.us.us ]
%w.0109.us.us.us.us.us = phi i16 [ 0, %for.cond16.preheader.us.us.us.us ], [ %add77.us.us.us.us.us, %for.body21.us.us.us.us.us ]
%idxprom38.us.us.us.us.us = sext i16 %w.0109.us.us.us.us.us to i64
%arrayidx48.us.us.us.us.us = getelementptr i8, ptr %r, i64 %idxprom38.us.us.us.us.us
%0 = load i8, ptr %arrayidx48.us.us.us.us.us, align 1
%loadedv49.us.us.us.us.us = trunc i8 %0 to i1
%cond71.in.in.v.us.us.us.us.us = select i1 %loadedv49.us.us.us.us.us, i64 %indvars.iv133, i64 0
%cond71.in.in.us.us.us.us.us = getelementptr i8, ptr %r, i64 %cond71.in.in.v.us.us.us.us.us
%cond71.in.us.us.us.us.us = load i8, ptr %cond71.in.in.us.us.us.us.us, align 1
%cmp72.us.us.us.us.us = icmp ule i8 %0, %cond71.in.us.us.us.us.us
%conv73.neg.us.us.us.us.us = sext i1 %cmp72.us.us.us.us.us to i32
%sub74.us.us.us.us.us = add i32 %sub74.us.us.us.us124.us, %conv73.neg.us.us.us.us.us
store i32 %sub74.us.us.us.us124.us, ptr @a, align 4
%add77.us.us.us.us.us = add i16 %w.0109.us.us.us.us.us, %g
%cmp18.us.us.us.us.us = icmp slt i16 %add77.us.us.us.us.us, 0
br i1 %cmp18.us.us.us.us.us, label %for.body21.us.us.us.us.us, label %for.cond.cleanup20.split.us.us.us.us.us
for.cond.cleanup20.split.us.us.us.us.us: ; preds = %for.body21.us.us.us.us.us
%indvars.iv.next134 = add i64 %indvars.iv133, 1
%1 = and i64 %indvars.iv133, 2147483648
%cmp12.us.us.us.us = icmp eq i64 %1, 0
br i1 %cmp12.us.us.us.us, label %for.cond16.preheader.us.us.us.us, label %for.cond5.loopexit.split.us.us.us.us
for.cond5.loopexit.split.us.us.us.us: ; preds = %for.cond.cleanup20.split.us.us.us.us.us
ret void
}
define i32 @main() {
entry:
%0 = load i16, ptr @g, align 2
call void @c(i16 %0, ptr @r)
ret i32 0
}
attributes #0 = { "target-features"="+64bit,+a,+c,+d,+f,+m,+relax,+v,+zaamo,+zalrsc,+zicsr,+zifencei,+zmmul,+zve32f,+zve32x,+zve64d,+zve64f,+zve64x,+zvl128b,+zvl256b,+zvl32b,+zvl64b,-b,-e,-experimental-sdext,-experimental-sdtrig,-experimental-smctr,-experimental-ssctr,-experimental-svukte,-experimental-xqcia,-experimental-xqciac,-experimental-xqcicli,-experimental-xqcicm,-experimental-xqcics,-experimental-xqcicsr,-experimental-xqciint,-experimental-xqcilo,-experimental-xqcilsm,-experimental-xqcisls,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-experimental-zvbc32e,-experimental-zvkgs,-h,-sha,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smdbltrp,-smepmp,-smmpm,-smnpm,-smrnmi,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssdbltrp,-ssnpm,-sspm,-ssqosid,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-supm,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-svvptc,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xmipscmove,-xmipslsp,-xsfcease,-xsfvcp,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zabha,-zacas,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-ztso,-zvbb,-zvbc,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl16384b,-zvl2048b,-zvl32768b,-zvl4096b,-zvl512b,-zvl65536b,-zvl8192b" }
```
Command/backtrace:
```
$ /scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt "-passes=lto<O3>" reduced.ll
WARNING: You're attempting to print out a bitcode file.
This is inadvisable as it may cause display problems. If
you REALLY want to taste LLVM bitcode first-hand, you
can force output with the `-f' option.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt -passes=lto<O3> reduced.ll
1. Running pass "function<eager-inv>(loop-mssa(licm<allowspeculation>),gvn<>,memcpyopt,dse,move-auto-init,mldst-motion<no-split-footer-bb>,loop(indvars,loop-deletion,loop-unroll-full),loop-distribute,loop-vectorize<no-interleave-forced-only;no-vectorize-forced-only;>,infer-alignment,loop-unroll<O3>,transform-warning,sroa<preserve-cfg>,instcombine<max-iterations=1;no-verify-fixpoint>,simplifycfg<bonus-inst-threshold=1;forward-switch-cond;switch-range-to-icmp;switch-to-lookup;no-keep-loops;hoist-common-insts;no-hoist-loads-stores-with-cond-faulting;sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,sccp,instcombine<max-iterations=1;no-verify-fixpoint>,bdce,slp-vectorizer,vector-combine,infer-alignment,instcombine<max-iterations=1;no-verify-fixpoint>,loop-mssa(licm<allowspeculation>),alignment-from-assumptions,jump-threading)" on module "reduced.ll"
2. Running pass "slp-vectorizer" on function "c"
#0 0x000064a320d6dd02 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x34a8d02)
#1 0x000064a320d6ad3f llvm::sys::RunSignalHandlers() (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x34a5d3f)
#2 0x000064a320d6ae84 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x00007fe3fee45330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
#4 0x000064a31fc28b80 llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes()::'lambda1'(llvm::slpvectorizer::BoUpSLP::EdgeInfo const&)::operator()(llvm::slpvectorizer::BoUpSLP::EdgeInfo const&) const (.isra.0) SLPVectorizer.cpp:0:0
#5 0x000064a31fcdc0bb llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes() (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x24170bb)
#6 0x000064a31fcf9808 (anonymous namespace)::HorizontalReduction::tryToReduce(llvm::slpvectorizer::BoUpSLP&, llvm::DataLayout const&, llvm::TargetTransformInfo*, llvm::TargetLibraryInfo const&, llvm::AssumptionCache*) SLPVectorizer.cpp:0:0
#7 0x000064a31fcfc9ae llvm::SLPVectorizerPass::vectorizeHorReduction(llvm::PHINode*, llvm::Instruction*, llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&, llvm::SmallVectorImpl<llvm::WeakTrackingVH>&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x24379ae)
#8 0x000064a31fd00c41 llvm::SLPVectorizerPass::vectorizeRootInstruction(llvm::PHINode*, llvm::Instruction*, llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x243bc41)
#9 0x000064a31fd04e32 llvm::SLPVectorizerPass::vectorizeChainsInBlock(llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x243fe32)
#10 0x000064a31fd0c6e0 llvm::SLPVectorizerPass::runImpl(llvm::Function&, llvm::ScalarEvolution*, llvm::TargetTransformInfo*, llvm::TargetLibraryInfo*, llvm::AAResults*, llvm::LoopInfo*, llvm::DominatorTree*, llvm::AssumptionCache*, llvm::DemandedBits*, llvm::OptimizationRemarkEmitter*) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x24476e0)
#11 0x000064a31fd0d336 llvm::SLPVectorizerPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x2448336)
#12 0x000064a31e87b285 llvm::detail::PassModel<llvm::Function, llvm::SLPVectorizerPass, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0xfb6285)
#13 0x000064a320b5976a llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x329476a)
#14 0x000064a31e87d0d5 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0xfb80d5)
#15 0x000064a320b5807c llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x329307c)
#16 0x000064a31e879675 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0xfb4675)
#17 0x000064a320b5865d llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x329365d)
#18 0x000064a31e01d465 llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::ArrayRef<std::function<void (llvm::PassBuilder&)>>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x758465)
#19 0x000064a31e00d6ee optMain (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x7486ee)
#20 0x00007fe3fee2a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#21 0x00007fe3fee2a28b call_init ./csu/../csu/libc-start.c:128:20
#22 0x00007fe3fee2a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#23 0x000064a31e003f45 _start (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/opt+0x73ef45)
Segmentation fault (core dumped)
```
Godbolt: https://godbolt.org/z/P3sGYsGYc
Found via fuzzer (C program before reduction)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkW1tz27iS_jX0C4sqEqQo6sEPshLPpNaZSSXZOTVPLhAAJRzjwgAgLenXb-FCiZLo3GZ8ds-elCI0Go3uxteNGylDrelGEHIbze-i-Zsb2JmtVLfkmXU3tcT7289EGwQ1ifJVlK6iMvUfxnoeUxWlKwPVhpgYQwMZ3MvOxFH-Jo4AIAmP8hVJ2ihflYX7SuiRyEAV5asMVInIged9sjwATjqNoi0jgz5FNerLIunEk5DPImFUdLtkIzrfx36KFDppsjNECcjiDZM1ZDHNgW_euGYqLpqzMk6qtFh6ITWpI5rfVfEuplU0f-PNYdJQQU7aeklxHBUpikBlVUZgvonAOm6NsrSKwDKOQJ7G0eIuSldEGLX3sMZxrWIGa8KsYCPVDEmBs3LWKrIlEBM16_Tx461_UypfxVF-F7eKYB0wPKqeIUag6FqQznTLqBl3tH3B2kp7D9OVpanAPVR6Rvssz526dktjWhYWmHOBmSA7k-VF0PKdNmOLq-0xv4vTsQOxB_waI5ufILt0_QjOdPNLqExLn4_gKwGxYrqrF8WYn4HCDWwAKwdno_uW2jEiU-rPHZwcwIBdBObPszRLl1ftg282X3_eN4jxYvHzvlG8a5XkeTXlniY7E4f5ND0II20iBl1QKbineFdMKtsQQxjhRBg7K2l1Pj_XPqFfdsjlYQTmqVPGJMTnOl40bmUgoxsRZ4MO25vgvpiMiVGdQDGtvDE7wCyMz0Zlkc2osJ9-GjBGkIXsa1bGgx1P7YGfDm6e2ft5RL_q9rWtCUPXaH_FtQm8EW8XYEoxRbyNO0YGuEPivuTMyNl-kc8E2Xwla180bEPqdqX4pbnt1ECM_brx4vJy8nbaG2dCG6nIdyhywBYpPMFXDC5OTfGTi1-ZnsHBzSgO2eTcdHHQ7DjZX1pU0mE3OMJ7pc-KfcdecSn1PVvj2eb7LeEf220CQNc76QnnF2bsMckzLypeFgVZsSiqvCyqYUHhbQamg0G-DGqyF4AH38TzxU1zSng-Y1K2ZEfNNZ7nyH9V8q8cfewQFTHuNGdNLi5Oe3YOFSmHVET2uLqcOs1d7BBZOZpbm9PcctMfQTZ5dExHfezR8eiY9SAdewaNUbTuDNHheGkHvLD7MvAH6aQh0HSKaHtSzt_Yb3BXFjU1EVhH4A76AvkC-6LxBfeFIgzuPNn74gAhlwPJlA69DxRpNZANEYjQUOO8Y4HsSQ6aEb070mWBR3Qzoo8yLANVfayAeXmq5OBEl4WlE_dF3NeuJYrajQqyRGOyMxNco-jmms2RUddcPcntuydzbW_3BVE4zUWTbMToNJ9Ps_UL7GsPLZ-K68FbPpPTbD1tVbNrswfI4ITVA0UNZe00X0-o6WuUg2sgD_3Txklv7ZfeQl8g2dlrGBHPvr6Bpg1NpocskL0-sXt91mB6grCrcOgjpTnChJFNoLWiIgjgmhnVepq0PFC85Z4QA6EEp57SBhpChKvoQb9GqNkMVOtzSWskm5Y3A302Kj1yQo-c0INFPZRfpKZB7sy0Nooi42mDQnmEYQSC7spixxzZBaU9xGQgOk_UUAUWFT304r2ArfQm-rbmgepbb26Hesi6QNX0SBgOBW1DlbDnQHE49OKEB0pT7nzccdpqxGVPjjWmvQrdIAI1CXSPBm7fCIUYbXfNl-bIeuYQoS9fvgyML7aOJT6rf5GhnTbUgkQ1ggpjJgUZ8xvW6e2Ja-y2V8MRXY9ofaKRW0qHihSYy_7EaDjhFO9OjAEWX7lsJLyFVJ0Yei9G4j320dn1dkIJaK3J1vvyjLZO8gAzUCntybIYqNrPtgNEMHA4zNzymxzgc5Dywz34kR5qr69-CtWnob7zpe-DfB_khXwKHhDxReMLLttADKUbxgFT4XU1XklTN5wKT25DcWQMstsxMbRSFPaMA0W15EeqPVKHQCHIJRxo2gxUWCYtqXz2HSgSfmIfqAXaU1sqjDDsVGlhN8hv26BjGO-T_xahwKEkofRDfPI2nnQoSBDTodlDZbTLskMfgtOH6PQjzCz9zGGgt0N5bA6B7J82oRz4Ag1EMN4_iaNMSBxLDf31UA799LGfHvoF9_vgf8-yFIQQ9Swr8-pYAWlRDXQOFuWxUqTLcqDnGRjIcj7Pj_wqW9oGEIcj1fCQMzxVTFdryTm00N_XED0ZBdHl81BLA3tSvtdIQYO2Ebgnz3alu8eQsn3StdooAnlSd5Q5TbZMNqg_0oz13D_VtCwL-L1sjT3GJS3Umugof8OMjPL173mUv7UOK4I7RPCMsShd_WP18bd3v_1iT79_yi4CC0ViaAzhraFiY2-craLCxLIzMYxrapDEJG4oI7MoXX3eUh3bj4C4pxrWjMRQx9TEHO5jZDM0xlS3DO7jVsmaEa5n8bsmSld72cUf364eHv6Mn6Ew1pKB2pD44eGP9yNDSptk63Bcx3vZRekKQRE3UiFinWo7Ez9Ts43NlsRRmSZNBBaxbA2VYuYD8eHh7erT21h3NaduEN0mVqSVyhndGtPaw38E7iNwv6Fm29UzZGfyvcU2FEmr5D-J3QXvqdadPRXf-xuTQKzDxJlHCuptfIy2Nf_JQPQU4463PvbpLHb_Pii5UZDHUG06e0jx149XSITJLDhPgSz49LETwsbc9rAJ1HQCWRijfE3ghqiEit6lUGVvUQnXGlrani7zNWRMPuuWoI5B3-mtvX-A9aa3Clx1zQlH7V62dmZit3jZnTiBnZEJFe5mwRnWJuEyGBYycReupJHSEJXUtddkPbDXHn9RDYzEHr1cx1DvhJKMJU3HmHfGS1Ed7j4DpyfISEUPxFt0D-cZgT1JXJ7hRAq2j_I7IU-iF03eLSoaohJ3UbNRPffjNAfXRkGhG6l48gyVBT0Ca60kjPJ1q4gmqieJPecFpdogyWsqrH8c7hJqiHIo27hmg2OKNvukobtW2pO666opbxlt9k7Xupai04lVl5itInorGQ4KGqmeocKJfqYGbRO37eR3oaag2JDExsjuo0e2kQmT8qlrvQNPhLSWYWfT3VZSbRIkOZfCWdReyPPtDVcn7vmSTuzsdQaTBnbMrjrWBBVPl92H7CJJzSR6cqwwPt-_VlCgrTd0Eu6EvdJTZOzqpAMuyB3v_gKyNXZHDc1G2WP3U19JBq1TKfEXrP7IxDuaTBoleQK17njrjYD1PzveuiSA2GXf0m4MUsRc4o4R9-bstES4V2XghVXiEgGnZlg6rADy_f1jhnSXpmlaFjAHKS4xTkHsVtl8FeUrvdee-GC3HLd0fnbbJqhOQgo-P0q_GkbAPSNx99Jl7J6s_O0LaATu0l1ewAqnIDxQiUCeXQwE4ryZGsjHTnyiGwHZr1BgRuxKVb2-r3OcNydfwaWvpCriM6_cQmozM9Z0Q0UjH00EVrbunmdZchl66Blq7VaWuv_eQB4MLBqSN4QU8zxPwwgZrSNwv6vKx7IYv3u1DWim5ax0PrsuJ4-LkcdZg0BVV-kYXdaOEs6x7uR_t58ePvgKkrztDHlPBeUd_wOyjnyiBxKw9zIRWDDIawyzCCzO8utb2t_iDXknGhkjKbRxKRh0ytbOYqmCnb-q1NMWyBnVCs5SF4WHD38cFU3EYn4OHUZpXf9t0L1m2oIiW6T2ijEkQXk-kmZZpZV1AAop9lx2OhaQE9269SFE4Fc7MCkMZB_t6uWXQ9tg1P6zdDzyvXHxa8tJ9A008MH_VuEUpLHAZ_fY9POws9twhll0KfNAawXV_iLgY7nVcbFeQ7QlwxT8RvAXF5ChJSQjpWfdP0Ad1qgjAL9KdYJtjNKHX9_9JjG5Gs07oY0a5C_a7qCm6M7u01dNPwD6Jw4Z806_4609QZ3a_kGg2x6eqNj88avb9spXT9J8sYTklKTVGeI4TVGR_QDiH6U0ZyD-r4H-2rDVqMhOsC0vYCtIDn4AtvUWUqHfiTDS6t8BgIbk4fxgjw_pBQCoJOm3AVCdcLNgPOL74ZJ2NXUQZFC97SXrJnPlp5arK4nV6iPRHTP6quVBynayyxvJqbD75GdFrtN7auU76004FJjgOzph8_fWUE4P7hz8kXCont5yaow94axePcTFoiTpKcTZRYhxnpffFeLvC-9KQLbXVL-Hwt7Nz1bGY6d_zZpYVHlengY-Pm9mpFrUoJqPHMfEQMrCGge1fi8xYdPun-fzFWA_hYf9_HsC3dQlqOYnnPOzc309Xy5KOPLbYfs1n__D4MvBsliU8IRfcZGnOMV_R56-Gu7_YfFq6irFo3SfX6R7lS7QyO_37sHFZzn4aMOwwrC197FJBHyHHxp_6PIvytY8XaDT8MuLbF2Wix_L1mG86-8E7SdQeSnZ_m9D3dRFuRgl2uIy0co5_o75PYXv_2fYbIaWc3zC7ewuRNIMF-U4Q1Xn0usDbQlzT0ZHI_1kFBWbj6SZSs8XLtrvIdo6Pd86s_oj86WUlOx39_bonrIJJX-p-YXhrJSCe8sdR8xhwroNFddr_EleG-x5o3cy_udfZ1dGqPWdjZs98PrnUtc7h2zNo5EyrBV-FP_lfyDyotQfRNGGEjXI1bblh8tXTcfFvCrK0SxenmdjiktCYtma95CKV_WjqEpCjn6A9PzhKIAZgvHjI6M1etQGKvOIIGOP3Lo1i8A90taTmSX1XmPS6gjci9aw8ND0stNsG-WrRRHlqzxYzC4tgqp2Pxh8pIKaSyOetJoTp3mG_F_YRPkKpEEjmNJ4NoYp9yc158UiylfzoDi_CFLeFPPYq3zVGOWkKUKufCIb9yMx97bCvYCylpFUxL21JcMCd_56_xeJa8lMlK8u3x_7hplUmwjcHyJw_yHXv_ypf_kT-Z73shM47imMm-5wIMpaW8dteB1ck8ZaVqfHcMsbfJvjZb6EN-Q2W-RLkM3LrLrZ3lZpVs8XRb6AaQERIQ2ZkyxD1XxR4qYBzQ29BSmYpyBLsyUo5-WsBplVRUBJynLRzKMiJRxSNrNYWZdv3Lvt2wyU8yq7cT-01e6PvAAQ5Dl2rREA0fzNjbp1ANfdRkdFyqg2-qTGUMPcX4edXdqi-Zv4DO57B3enqdjE3_jRwk2n2O3Pv6oPI-pvwf8EAAD__54gaG0">