<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/68647>68647</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang crash: Assertion `I >= 0 && I < (NumOpElts * 2) && "Out-of-bounds shuffle mask element"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
shao-hua-li
</td>
</tr>
</table>
<pre>
Clang at -O3 crashes.
Bisected to e22818d5c98a5cb2babc44de8b29abc22d613b15, which was committed by @alexey-bataev
Compiler explorer: https://godbolt.org/z/jd8zvzG4T
```console
% cat a.c
int *a, b, e, f;
static int **c = &a, **g = &a, **i = &a;
long d;
unsigned short h, n;
char j;
static long *k = &d;
int *l;
static int **m = &l;
void o() {}
static void p() {
e = 0;
for (; e <= 2; e++) {
j = 0;
for (; j <= 2; j++) {
unsigned short *q = &h;
b + *l || (*k = 0);
*c = &f;
n = 12;
for (; n <= 19; ++n)
**i ^= o < (--*q);
*m = *g;
}
}
}
void r() { p(); }
int main() {}
% clang -O3 a.c
reduced.c:20:18: warning: ordered comparison between pointer and integer ('void (*)()' and 'unsigned short')
20 | **i ^= o < --*q;
| ~ ^ ~~~~
clang-18: /tmp/tmptilctcgw/llvm/lib/IR/Instructions.cpp:2128: bool isSingleSourceMaskImpl(llvm::ArrayRef<int>, int): Assertion `I >= 0 && I < (NumOpElts * 2) && "Out-of-bounds shuffle mask element"' 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-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/clang-18 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -main-file-name reduced.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 -debugger-tuning=gdb -fdebug-compilation-dir=/zdata/shaoli/realsmith/watchdir/reduced/case_6eny68Eh -fcoverage-compilation-dir=/zdata/shaoli/realsmith/watchdir/reduced/case_6eny68Eh -resource-dir /zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/lib/clang/18 -internal-isystem /zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/lib/clang/18/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 -O3 -ferror-limit 19 -fgnuc-version=4.2.1 -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/reduced-7daa50.o -x c reduced.c
1. <eof> parser at end of file
2. Optimizer
#0 0x00007f59069c567f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libLLVM-18git.so+0x92567f)
#1 0x00007f59069c2be4 SignalHandler(int) Signals.cpp:0:0
#2 0x00007f5905cb5090 (/lib/x86_64-linux-gnu/libc.so.6+0x43090)
#3 0x00007f5905cb500b raise /build/glibc-BHL3KM/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#4 0x00007f5905c94859 abort /build/glibc-BHL3KM/glibc-2.31/stdlib/abort.c:81:7
#5 0x00007f5905c94729 get_sysdep_segment_value /build/glibc-BHL3KM/glibc-2.31/intl/loadmsgcat.c:509:8
#6 0x00007f5905c94729 _nl_load_domain /build/glibc-BHL3KM/glibc-2.31/intl/loadmsgcat.c:970:34
#7 0x00007f5905ca5fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#8 0x00007f5906b40ac6 isSingleSourceMaskImpl(llvm::ArrayRef<int>, int) Instructions.cpp:0:0
#9 0x00007f5906b4ac84 llvm::ShuffleVectorInst::isReverseMask(llvm::ArrayRef<int>, int) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libLLVM-18git.so+0xaaac84)
#10 0x00007f59096bb9a6 llvm::X86TTIImpl::getShuffleCost(llvm::TargetTransformInfo::ShuffleKind, llvm::VectorType*, llvm::ArrayRef<int>, llvm::TargetTransformInfo::TargetCostKind, int, llvm::VectorType*, llvm::ArrayRef<llvm::Value const*>) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libLLVM-18git.so+0x361b9a6)
#11 0x00007f590894cbb5 llvm::TargetTransformInfo::getShuffleCost(llvm::TargetTransformInfo::ShuffleKind, llvm::VectorType*, llvm::ArrayRef<int>, llvm::TargetTransformInfo::TargetCostKind, int, llvm::VectorType*, llvm::ArrayRef<llvm::Value const*>) const (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libLLVM-18git.so+0x28acbb5)
#12 0x00007f590853c276 (anonymous namespace)::VectorCombine::foldShuffleFromReductions(llvm::Instruction&) VectorCombine.cpp:0:0
#13 0x00007f590853d82d llvm::VectorCombinePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libLLVM-18git.so+0x249d82d)
#14 0x00007f590988f636 llvm::detail::PassModel<llvm::Function, llvm::VectorCombinePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libLLVM-18git.so+0x37ef636)
#15 0x00007f590d2a46b5 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-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libclang-cpp.so.18git+0x208e6b5)
#16 0x00007f5906bd7b3d llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libLLVM-18git.so+0xb37b3d)
#17 0x00007f590d292396 llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libclang-cpp.so.18git+0x207c396)
#18 0x00007f5906bd5abd llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libLLVM-18git.so+0xb35abd)
#19 0x00007f590d2a5c84 (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
#20 0x00007f590d2a94ff (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) BackendUtil.cpp:0:0
#21 0x00007f590d2a9b49 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::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libclang-cpp.so.18git+0x2093b49)
#22 0x00007f590d768177 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libclang-cpp.so.18git+0x2552177)
#23 0x00007f590bc8b919 clang::ParseAST(clang::Sema&, bool, bool) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libclang-cpp.so.18git+0xa75919)
#24 0x00007f590d767358 clang::CodeGenAction::ExecuteAction() (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libclang-cpp.so.18git+0x2551358)
#25 0x00007f590e400269 clang::FrontendAction::Execute() (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libclang-cpp.so.18git+0x31ea269)
#26 0x00007f590e37bcbe clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libclang-cpp.so.18git+0x3165cbe)
#27 0x00007f590e498db6 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/../lib/libclang-cpp.so.18git+0x3282db6)
#28 0x0000558b46587aa6 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/clang-18+0x15aa6)
#29 0x0000558b4657f3da ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#30 0x0000558b4658401c clang_main(int, char**, llvm::ToolContext const&) (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/clang-18+0x1201c)
#31 0x0000558b4657ee55 main (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/clang-18+0xce55)
#32 0x00007f5905c96083 __libc_start_main /build/glibc-BHL3KM/glibc-2.31/csu/../csu/libc-start.c:342:3
#33 0x0000558b4657ee9e _start (/zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/bin/clang-18+0xce9e)
clang: error: unable to execute command: Aborted
clang: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 18.0.0 (https://github.com/llvm/llvm-project.git cbafb6f2f5c99474164dcc725820cbbeb2e02e14)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /zdata/shaoli/compilers/ccbuilder-compilers/clang-cbafb6f2f5c99474164dcc725820cbbeb2e02e14/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/reduced-70384a.c
clang: note: diagnostic msg: /tmp/reduced-70384a.sh
clang: note: diagnostic msg:
********************
%
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsW1tz2ziy_jX0C4oqErw_-EGWrcS1ydple2bPmwoEmhQSEuACoC95yG8_BZC6UJYndmbPxKd2Uo5MgUB34_u6GwDZJlrzWgCcesmZl5yfkN6spTrVayL9dU_8hp-Ukj2dLhoiakQM8q8iRBXRa9AzLzj3gvnwecY1UAMMGYkA4zzMWUKLnCS0xCUpaRwzyEtckJJizNIwKsPEwwv0sOZ0jR6IRlS2LTdWRPmEvDggDTzCk18SQ-AeDVrGXwvZdrwBheCxa6QC5UVztDam01409_DSw8taslI2ZiZV7eHlNw8vv7D82_23D_HdvtleGgw_VAotGxhbcYIoMYjM6NDAhUEenhNrcWk_wH5UXnQ23NeGGE7R2M3Dc4q86Bx5OHVDhrb6SBvftW1kNVLUiG2_9sIxxJBeS2XQ2o4V27t0TRT6cmiHE-Hh-deN9J240cTmZdPbzaBdn3vJGZIezj1cIC8787LzyWB3v9u7P5CFwIkKtnIQqqRCtl905m4u7H3svnn4zP1MBCD05ZmIiZAvEyFfXhCC0AGKHp7_ezPN9UQ2QiXy8JnDCHnZwssWTtcGzMDDxcGAfbqrg3vC3QjxrnnPeLExPrQi0WC8sAr2JKCdpyQXtrO0o6wI37fTOGrPhsN5vbu3JQ3tLrcXjkG1Y3DDprNr08n6SEu4OOIILmJcjrAJYhs3ClhPgc2oF81x4EXzMLeh-kCU4KK2l1IxUMBs9HdEcS0FKsE8AAjUSS4MKEQEs-4JNQzI4cxZO7BibRwsxZnr6eFsSraHs31IcWBpRX8I7ojsAax7o8Z_3-0w9P379-9jNFoE_GGOHl6aths-DW-oofWDh5dNc9_aX7z08PLyxn4IbVRPDZdCz2jXWahC7GSUUjaI61su6gZuZa8ofCb662XbNR7Onaho7kXzuVLk6QYqL1pwYbzowiYJe2UJnKO51qCsfOSlwSWy960nW3_1cIouNw71z7696i4aoy0qCDuOhy4exle98WXll7IXTCO97quqAdQS_RVBAy1YbdiSUBHeABsXh-tPF_PbC6T7suUGEVT2NVLQ2Rg08jBlc7PuyxmV7R5OzX3rd0p-AWo8vORa96A9vBydgjY9A2TWMKxJqCT0q1GEuvTcKeiUpKC1dQWHnm22I4nWknJiFxvVC6Sp4p0ZTb41hH5FrG8tE0NTMBv4vlayVqRFRNW9nbEeif7GiCEeXtpls-EeXtJxgbKmUlr2vGGg_EmrcxVakqpMK1wltCjiLA7TmFGa4STHAS1LKDEEGMLYw8vSxt1y42HIpzREvlG8awA95ukqjf1efBXyQfgNF_2jX4se-dBy48vyC_LthBhXiPjIZ1yTsgG_UgDIpw0Q5RNt_BIqqcC3KIJgyLfB7le8AV-QFtA2mpHfKmgkJdap_FYyaFDHKfI7Tv0G7qFBePjCtd9xQH5bKdKCP4a0F50LKQD5VUvM2gelhER-VXU-lcLyZ7zoXArkV0L6ynocF7Vv-yK_tSu1CxipfNJwokEjv-rFAxfMN3Ze2ovOMfINUTUYn3a9BchPY-SbXoBrqEGAshYzKPu6BmVvuZR0XrMS-ZVrHxkbpsm4tfsY2wpIo1tu1h5ePhBD17arbXZwWdaIhlUK4inNL9bIr6i8B0Vq-D-Sr2Dwdivyr3LPIaG5YR5eWgd1TAvS-Fw_aQPtr7LEpo0xURy1qdcWTOvNzSu7OgU1pR5ejpG3jTirMfTwcjZ7_nGk73Nt8Ggv6HOtY9cjcv549NtVuCXcr0ApqfyG28QdFsivatFT_x6U5lJ40Xk8w7PQOXMjlc84qYXUhlON_Huw0cm_gd9I2U0adNMhvyKMKc1r5J-vVh8Wi9XH-e8Xq_N_zW-WeLVYXq7mt5-96DxEvtyto6O7-xkjJAlmEvmPiO5y0pCpwzFTe9ECZOVFF6gjSttNhEE2pckK2Xw2dMZj56vO8JZ_A7XZKeEoQMFjEARBViVFkBY0SbMK7RZc_aSHi2vFhXErxt2w7Oytyoo8rKQ2CkjrltHNkjzsXP7CRcN53-C1DS8_ffr9sx_mNTczLT18FjwW2E5vt0nycBQezB-XEKNbXgvSfCSCNWD3iuN0hubN3iVw_7eC8L6ghJZJUAQjAINFR6Ki4SWdaTlLnXVxFBTBxLjomcygRIpwDdZbHHA2QK0Y_-zjp-gfn7df8Syy4amdyRto9JNm0FmAe8Efh4Z7Z4fo7Vcn2u1hk9DuYXeWxFNLijhPCkTK4YjxOksMG3Bwo5yS3CrJdkqSQyUZLlANZjXYvdJQ283I6p40_asR4MI0Lu0R1uqakkF1EtgNY77TnR7TvRLNyg5cMWl3CH9OZZFZj4ninc5sqpMkFUvf5jJRVLF04jL5xJ_LOCA0_ZM7a3Rk437g_MWBVkLzeC-L3A6b6N9dcrTShmaub8CmWWfRq615b0mFEDvbLQk2p0ySapGWZUHSPTj-J0_v7i4dBe57DWZEaCG1mQBx57Z2d4oIXUnVXopKTiD9BxfMYrMbMYB899SBO_Ht3zqK6it0DTesbRt1joq3a93r70LY7XDtAGvK-2M2SkPL3ITayXqRFzEty-Q1GP7N8cCx-_rumMY5sUROmJ4s6HkSUZy57EyEFE-t7DWyZ0Xdud1QsQ_RQrYlFzA0VbJhI5FLJdsbu41zmXTiA3sp1m2hCjQR9TzrWgujAwtZjtkzvkYJ10SPOznVi4nqZS92eiekCtI8aa4_E0Fqe5ZdHBlkWU3fY_DiuLB4TCid7GKKPK_SaD8vMzCEjznZ4vXZnvePT_tIYOwDPbl9rUCDugc2AAr652C2P_9F_EUZWHom_E02iAyTOJ0k35_lz_X9I5B-lq-_3eCNbjAK6Tq7xXXuMMRykEN6kJ7T6ZaTZWW0n_w-S9Y3cCc3M7QczxnpjFTH8RsGvAm9ccg7we55CJWRBWWCWjaNoAJHxdsy4AamxSux_k-FwA7rlwLg_z2BLzp_RqNimggPTnksISV7RUI7Rt5_OejHosaiOYG7OFh3Enu8_cFW8KLlZq41tGXz9BGaDsa8c9OL8TGcexp-zTto7GYR58OTXNfpbHgxMd8uP9qw4U4v-L97WHVmCqoiD6vuQXEDq82DuL1BDCrSN2bFoAEDPxg4Ll3pa9TeSdlc9abrzZIPjvUanQejdgoLNE78N8Obo3teHBxQUcRV9bNU7Le_O_xfgUV4iEUZF2hvFnZ-o5AB7ukkz3dPsi9E7XzQkb7X5SMQBuoWiKJr67VS6M2B7rDrQjL4AOIHvYZj5g86fSKiPtZl74GSUVzU9sB5ZCEaT6d_ROf-wcuoXvN7uIFqIcz1Aa_31Xhqsp56614jjBu7X-ER73R9KqIyLvYTJp6cnVmW5mGWHSFkIYXu2004Ds_b3bOJ4U3hb4IfuOz89m4hhYFH8y4Wj5cQSRIcZtkEkclZvaR5WYSTWL0mSsP89m4631toyej8pZTN7vc7nTnJkiKcukJ84ApZlORH8sYYm0PeegTaG9iEa_5up4uTJIySfDLfyRkV4iDA6YTopbIOvE1G-xN-z1ONQiA4nVI7OYJBlJW0hCm1g22XQhsiKBxn92Vs3nGIR2Ga0BImcGRT5ouclelkOR4mvkPlfiwsmYLwDDVX-_VOYcA5ZuXkbII3Z5Mkycs4TfKMkBRRGq7GirqjT41deefkUfECTdvwwlVf_iI0tgVvdtZhQqZvBXAxnXNWRYygDd-L8M7l7L2Z37akacbXYe410BEADrY8Vsa49u1tigrEFL8HdXSDuH25v6EiDkI6eOSGjPEhv9U-FAi-TumvhR8HId2Hf_sSfwM_QJKg8Y3tLzSUQjJ5ZnVYI1CkQR6h1crG10oboszqLa-Zqe43cTpcuptOjnvhHMXYfu7UR89gKgANin81UMUulW5SIXJ1OfaiF6RswBXcDyHlSuiJYK7ms5TKAHtp7FCrW40Ly2bgWLuJWO_EDlUSFoNeA_LvXRsA4nspet86NBYHoTCfBTNX5vG2Cs9ZzQ16PWaj7uHwZGf1Uh3k2G-tgDDUDg_v5qiTmj8Ot9yi0jTAzrn6i2s6pwQJaY89c7Qrp0Ktdivg6K5_4mfvzx7Gstz53d188RHdfbxAy6tPn67-dfnPD2h5-eniFt1dueaz3z6gm4vrq5u7rQ3Xx8pqc23z34ultdsOCpCrGwWGiNmK_PH0j5SBBVEebwvN_4QEvX4jB_8pJnBy8DcoJ-w0YkVUkBM4DdMizYs0yaOT9WnKwiAnpAwgpjEtwjCBlDJaQk7zoiDpCT_FAY7CILR5rIijGUmDiqSYsTKiBIfEiwNoCW9mNtxmUtUnrpT6NM3TODtpSAmNdn8DhPFYOYm95PxEnbrwLPtae3HQcG30ToLhpoHxL4Nc-fUvqzU_6VVz-vPF5A6E_w0AAP__j5okqg">