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

    <tr>
        <th>Summary</th>
        <td>
            [AMDGPU] No registers from class available to allocate for R600 / Cannot select for AMDGCN
        </td>
    </tr>

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

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

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

<pre>
    ## Description

The following code crashes `llc` with "LLVM ERROR: no registers from class available" during "Greedy Register Allocator" pass for release build and "unhandled address space" during "GPU Load and Store Vectorizer" for debug build when targeting R600.

The code also crashes `llc` with "LLVM ERROR: Cannot select: t13: ch = store<(store (s8) into `i1* poison`), trunc to i8> t0, t15, undef:i64, undef:i64" when targeting AMDGCN, but compiles successfully for other architectures. 

## Reproduction

https://godbolt.org/z/5rv3f6r8r

### Code

```ll
define void @f() {
BB:
  br label %BB1

BB1:                                              ; preds = %BB1, %BB
  %A1 = alloca <32 x i64>
  %S = shufflevector <32 x i64> zeroinitializer, <32 x i64> <i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1, i64 -1>, <32 x i32> undef
  store <32 x i64> %S, <32 x i64>* %A1
  br i1 false, label %BB1, label %BB2

BB2:                                              ; preds = %BB5, %BB2, %BB1
  %A = alloca i1
  %L = load i1, i1* %A 
  %B1 = add i1 %L, %L
  %B = ashr i1 false, true
  %B3 = or i1 %B, %B1
  %G1 = getelementptr i1, i1* %A, i1 %B
  store i1 %B3, i1* %G1
  br i1 %B, label %BB2, label %BB4

BB4:                                              ; preds = %BB4, %BB2
  %G = getelementptr i1, i1* %A, i1 %B
  %L1 = load i1, i1* %G
  %L2 = load i1, i1* %G
  %B4 = add i1 %L2, true
  %C1 = icmp sgt i1 %B4, %L2
  store i1 %C1, i1* %G
  %B2 = ashr i1 %B4, %L2
  %B5 = xor i1 %B2, %L1
  %C2 = icmp sgt i1 %C1, %B5
  %C4 = icmp eq i1 %C1, %L2
  %C3 = icmp ult i1 %C2, %C4
  br i1 %C3, label %BB4, label %BB5

BB5:                                              ; preds = %BB4
  store i1 %B, i1* %G
  %C = icmp sgt i64 0, -1
  br i1 %C, label %BB2, label %BB3

BB3:                                              ; preds = %BB5
  ret void
}
```

### Stack Trace

**Release Build targeting R600**

```
LLVM ERROR: no registers from class available to allocate
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: ./llvm-project/build-release/bin/llc crash-classification/dagisel-r600/greedy-register-allocator/tracedepth_16__hash_0x-460489b9cc04c4f6/id:004857,sig:11,src:032769+020349,time:371052658,execs:60260845,op:libAFLCustomIRMutator.so,pos:0.ll -mtriple=r600
1.      Running pass 'Function Pass Manager' on module 'crash-classification/dagisel-r600/greedy-register-allocator/tracedepth_16__hash_0x-460489b9cc04c4f6/id:004857,sig:11,src:032769+020349,time:371052658,execs:60260845,op:libAFLCustomIRMutator.so,pos:0.ll'.
2.      Running pass 'Greedy Register Allocator' on function '@f'
 #0 0x0000000001e217f3 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (./llvm-project/build-release/bin/llc+0x1e217f3)
 #1 0x0000000001e1f70e llvm::sys::RunSignalHandlers() (./llvm-project/build-release/bin/llc+0x1e1f70e)
 #2 0x0000000001e21b7f SignalHandler(int) Signals.cpp:0:0
 #3 0x00007f3de317e980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #4 0x00007f3de206ee87 raise /build/glibc-uZu3wS/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #5 0x00007f3de20707f1 abort /build/glibc-uZu3wS/glibc-2.27/stdlib/abort.c:81:0
 #6 0x0000000001d9b230 llvm::report_fatal_error(llvm::Twine const&, bool) (./llvm-project/build-release/bin/llc+0x1d9b230)
 #7 0x0000000001d9b046 (./llvm-project/build-release/bin/llc+0x1d9b046)
 #8 0x00000000016a1ca5 llvm::RegAllocBase::allocatePhysRegs() (./llvm-project/build-release/bin/llc+0x16a1ca5)
 #9 0x0000000001541e4a llvm::RAGreedy::runOnMachineFunction(llvm::MachineFunction&) (./llvm-project/build-release/bin/llc+0x1541e4a)
#10 0x00000000013f5149 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (./llvm-project/build-release/bin/llc+0x13f5149)
#11 0x00000000017b349d llvm::FPPassManager::runOnFunction(llvm::Function&) (./llvm-project/build-release/bin/llc+0x17b349d)
#12 0x00000000017ba973 llvm::FPPassManager::runOnModule(llvm::Module&) (./llvm-project/build-release/bin/llc+0x17ba973)
#13 0x00000000017b4070 llvm::legacy::PassManagerImpl::run(llvm::Module&) (./llvm-project/build-release/bin/llc+0x17b4070)
#14 0x00000000006b3524 main (./llvm-project/build-release/bin/llc+0x6b3524)
#15 0x00007f3de2051c87 __libc_start_main /build/glibc-uZu3wS/glibc-2.27/csu/../csu/libc-start.c:344:0
#16 0x00000000006ae0aa _start (./llvm-project/build-release/bin/llc+0x6ae0aa)
```

**Debug Build targeting R600**

```
unhandled address space
UNREACHABLE executed at /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Target/AMDGPU/R600TargetTransformInfo.cpp:61!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: ./llvm-project/build-debug/bin/llc crash-classification/dagisel-r600/greedy-register-allocator/tracedepth_16__hash_0x-460489b9cc04c4f6/id:004857,sig:11,src:032769+020349,time:371052658,execs:60260845,op:libAFLCustomIRMutator.so,pos:0.ll -mtriple=r600
1.      Running pass 'Function Pass Manager' on module 'crash-classification/dagisel-r600/greedy-register-allocator/tracedepth_16__hash_0x-460489b9cc04c4f6/id:004857,sig:11,src:032769+020349,time:371052658,execs:60260845,op:libAFLCustomIRMutator.so,pos:0.ll'.
2.      Running pass 'GPU Load and Store Vectorizer' on function '@f'
 #0 0x0000000003adad2a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:569:11
 #1 0x0000000003adaedb PrintStackTraceSignalHandler(void*) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:636:1
 #2 0x0000000003ad9526 llvm::sys::RunSignalHandlers() /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Signals.cpp:103:5
 #3 0x0000000003adb605 SignalHandler(int) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
 #4 0x00007fcd080dd980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #5 0x00007fcd06fcde87 raise /build/glibc-uZu3wS/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #6 0x00007fcd06fcf7f1 abort /build/glibc-uZu3wS/glibc-2.27/stdlib/abort.c:81:0
 #7 0x0000000003a017a0 llvm::install_out_of_memory_new_handler() /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/ErrorHandling.cpp:193:0
 #8 0x000000000193ba41 llvm::R600TTIImpl::getLoadStoreVecRegBitWidth(unsigned int) const /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Target/AMDGPU/R600TargetTransformInfo.cpp:62:1
 #9 0x000000000192d67f llvm::TargetTransformInfo::Model<llvm::R600TTIImpl>::getLoadStoreVecRegBitWidth(unsigned int) const /home/henry/aflplusplus-isel/llvm-project/llvm/include/llvm/Analysis/TargetTransformInfo.h:2481:5
#10 0x000000000239bd67 llvm::TargetTransformInfo::getLoadStoreVecRegBitWidth(unsigned int) const /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Analysis/TargetTransformInfo.cpp:1088:3
#11 0x0000000003d0a8a6 (anonymous namespace)::Vectorizer::collectInstructions(llvm::BasicBlock*) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp:886:16
#12 0x0000000003d0a142 (anonymous namespace)::Vectorizer::run() /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp:286:5
#13 0x0000000003d0a437 (anonymous namespace)::LoadStoreVectorizerLegacyPass::runOnFunction(llvm::Function&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp:251:3
#14 0x0000000002f797d6 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1430:23
#15 0x0000000002f7e602 llvm::FPPassManager::runOnModule(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1476:16
#16 0x0000000002f7a0a9 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1545:23
#17 0x0000000002f79c1d llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:16
#18 0x0000000002f7e8e1 llvm::legacy::PassManager::run(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1672:3
#19 0x0000000000d2cdbc compileModule(char**, llvm::LLVMContext&) /home/henry/aflplusplus-isel/llvm-project/llvm/tools/llc/llc.cpp:737:41
#20 0x0000000000d2b162 main /home/henry/aflplusplus-isel/llvm-project/llvm/tools/llc/llc.cpp:418:13
#21 0x00007fcd06fb0c87 __libc_start_main /build/glibc-uZu3wS/glibc-2.27/csu/../csu/libc-start.c:344:0
#22 0x0000000000d2a96a _start (./llvm-project/build-debug/bin/llc+0xd2a96a)
```

**Debug Build targeting AMDGCN**

```
LLVM ERROR: Cannot select: t13: ch = store<(store (s8) into `i1* poison`), trunc to i8> t0, t15, undef:i64, undef:i64
  t15: i32 = zero_extend t2
    t2: i1,ch = CopyFromReg t0, Register:i1 %2
      t1: i1 = Register %2
  t3: i64 = undef
  t3: i64 = undef
In function: f
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: ./llvm-project/build-debug/bin/llc crash-classification/dagisel-r600/greedy-register-allocator/tracedepth_16__hash_0x-460489b9cc04c4f6/id:004857,sig:11,src:032769+020349,time:371052658,execs:60260845,op:libAFLCustomIRMutator.so,pos:0.ll -mtriple=amdgcn
1.      Running pass 'CallGraph Pass Manager' on module 'crash-classification/dagisel-r600/greedy-register-allocator/tracedepth_16__hash_0x-460489b9cc04c4f6/id:004857,sig:11,src:032769+020349,time:371052658,execs:60260845,op:libAFLCustomIRMutator.so,pos:0.ll'.
2.      Running pass 'AMDGPU DAG->DAG Pattern Instruction Selection' on function '@f'
 #0 0x0000000003adad2a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:569:11
 #1 0x0000000003adaedb PrintStackTraceSignalHandler(void*) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:636:1
 #2 0x0000000003ad9526 llvm::sys::RunSignalHandlers() /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Signals.cpp:103:5
 #3 0x0000000003adb605 SignalHandler(int) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
 #4 0x00007f37688a7980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #5 0x00007f3767797e87 raise /build/glibc-uZu3wS/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #6 0x00007f37677997f1 abort /build/glibc-uZu3wS/glibc-2.27/stdlib/abort.c:81:0
 #7 0x0000000003a014b4 llvm::report_fatal_error(llvm::Twine const&, bool) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/ErrorHandling.cpp:125:5
 #8 0x000000000384fddb /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:3777:3
 #9 0x000000000384d372 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:3679:9
#10 0x0000000001b73ea9 AMDGPUDAGToDAGISel::SelectCode(llvm::SDNode*) /home/henry/aflplusplus-isel/llvm-project/build-debug/lib/Target/AMDGPU/AMDGPUGenDAGISel.inc:224554:1
#11 0x0000000001b62d83 AMDGPUDAGToDAGISel::Select(llvm::SDNode*) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp:524:5
#12 0x0000000003840ec9 llvm::SelectionDAGISel::DoInstructionSelection() /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1165:5
#13 0x000000000383ff1a llvm::SelectionDAGISel::CodeGenAndEmitDAG() /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:936:3
#14 0x000000000383e8ed llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, bool&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:688:1
#15 0x000000000383e38b llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1603:11
#16 0x000000000383b936 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:467:3
#17 0x0000000001b604ca AMDGPUDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp:136:3
#18 0x0000000002894c85 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:91:8
#19 0x0000000002f797d6 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1430:23
#20 0x000000000211c1cd (anonymous namespace)::CGPassManager::RunPassOnSCC(llvm::Pass*, llvm::CallGraphSCC&, llvm::CallGraph&, bool&, bool&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Analysis/CallGraphSCCPass.cpp:179:20
#21 0x000000000211bb5e (anonymous namespace)::CGPassManager::RunAllPassesOnSCC(llvm::CallGraphSCC&, llvm::CallGraph&, bool&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Analysis/CallGraphSCCPass.cpp:476:10
#22 0x000000000211b4df (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Analysis/CallGraphSCCPass.cpp:542:18
#23 0x0000000002f7a0a9 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1545:23
#24 0x0000000002f79c1d llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:16
#25 0x0000000002f7e8e1 llvm::legacy::PassManager::run(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1672:3
#26 0x0000000000d2cdbc compileModule(char**, llvm::LLVMContext&) /home/henry/aflplusplus-isel/llvm-project/llvm/tools/llc/llc.cpp:737:41
#27 0x0000000000d2b162 main /home/henry/aflplusplus-isel/llvm-project/llvm/tools/llc/llc.cpp:418:13
#28 0x00007f376777ac87 __libc_start_main /build/glibc-uZu3wS/glibc-2.27/csu/../csu/libc-start.c:344:0
#29 0x0000000000d2a96a _start (./llvm-project/build-debug/bin/llc+0xd2a96a)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztXFtT47gS_jXhRZWULfmWBx4Sc1mqYJaCmT1V5yUl23Lis46d48sM7K_fbslOLCcZIBNgZpcphsi2rP76olZ3SyHIo8fTAWXwQ85EGRbJqkrybGCcDYyJ-v15IUicp2n-LcnmJMwjQcKClwtRkoFjpGkIv8m3pFqQAaXX13_ckPO7u9_vBmxCspwUYp6UlShKEhf5koQpL0vCv_Ik5UEq4A0S1QUODM3LQojokdw1r5AJEA15lRfYbYUvxnkBI6aCl4IEdZJGhGcRvlpnC2ilAm5EUSGga7niYX_82y_kOufqpXsYV5A_RAifyV9C0sDhIxHU82bwbwuRkYoXc1HhEHeOYYz6opEC4WmZP1sqPs-yvCIl8BFWeKMyGX6E0JedkRKBDZg_oJ5sEmx4AzomSVblOHpiDuiErPKkBE05BjwaUJ9URZ2FBHok3oCdk8qQN00bP-osEjHQSBxr65L22ZzcnF36n7BfUFfA33KVpMBWWYchCDau0_RRSiqvFqAkXoSLpAJOahD7iHTF09jVnVgVeVSHfcNaVNWqBBQDegE_8zwK8rQa5cUcrv6C_3bxlcVO4RXbY-KwPgheewKSkD9pqm4Aj0kmyNc8AROxjBjkiFIcuFP1fDpF4rJJSFAQsEiRgrTt6dTsDoyXoJ4X_RuwKVkVIiqlSpsxQaKy1dKEi4kpO3Bp6dD0GSUPBPXCzjvd7pVlLOo4TsVXabO9zgRMOE-ypEp4qszZ7_eAS2iRoQTy0XpxCzTSFSqjKFQ1lRpNNfO1J3ZQ37Y2cAZL_XcMMDFJDJ5EYG_NGPVrqhsnPYZx2mvjpOuW2bXTrpkm3SfX8kmKbjVR0jJb3kin27Qx9Ai7yfcaOtfdTqpPudBlAZ5NdHsx2S0vmpGmLeIurEtFD1wauNmlyKpVVWwBVFdqDE2FzU2mdb_s6aolralGv7Z0VVnHUJXVUVWH38PYRQWYezV42e1Gn9VtavX1THeo0Fc0k3C5IuW8alG1rF3TXerwv0OVapazeyy8a8t-Dxvbac39ums8Pt0Fz197cLvb19r0Ff_vd9Wo-2zTtU7Xw7YQfGvLvny2ZVD6ta0bmH0cA9s1F_bK3u_JCpylDD2G29PFf2K6MJ0bdhzP1qAoRCVjgYaGe9YLG3ZHGfcVD_8knwsMJrUO-HPXhKJTGS3qgaLqsTNAUZcvDJUxslP-t2qQ3F6fT-7PIS4LlklFOMG4tRCrvKiwby-6gki0DkYQzMFFmn5tP4YQmv0Pw1B6kZRlLUpoyPA4ycK0hsi2WjThPglAEBXKoQmBlWSierlah1EYHY9vi3xe8CUEhvMaPRGCIKNtejLEHjbRPF4nmewUKnpDyX8SJ8AwBo70IuIgH5EOCyndi7nMFoat1IZ8ky1cSJyRWFWLmenMZgsYb2Y8DC3HsLxxMA5Dwwqt2EGuI4BnwG3bBWMskzlcmjh7yyLEJ4y6DoTXU4MazMI4u0qWEJ1PmGsaNnVsCCl98SBC5NIxqGN4Fq6lOQolTYLJxbVfwzxaXt3d1BWiG5U5PF_l-IIxSlMyXFaQdUEuxM4kZ1KSJkryrs4yNCeZ-gyoewEBPsqC3OKNG57xOQZ6LoFbS4iwU8wV3H-V9IDfxhzpLol9J6OUUotbicK1ShHcxl3A3DeI8WC0_0xBTTdmRM4dsHc2KR9L1biF_LKSs0G5CeptOhX82ywvq0JwmHGO9KFZJbMQ6r1kTqAMHxoMmO-tQZo6SDN2DbELJEjmPplnPP1N5slF2WZDB-GQZDQctC-swI2JRhEoNbyr2-UoXKGeDfl_PRBrBgJGI8FMV4w9g8xmkFziajQD5yaRX4B5wO8Hz5k51jBNsvphOM9q9QAsFyQegbGMDIWYwigaXqtLhhqOEJ5LCg5ThLT84yyBwcJh_d-afbtfX9IRWAm9KCUX0BihAEHQMGPQfdZZ8qBufJVoABl8yqFHOClsU2fY1pG40DAJD3LJ6fOQVJGShnxLEvF6RBxNPdE4QPPumKlcNmYxr3g6E0WBE6RjxZ-_YSId5llZNVYc5Hl6sPko8po63D4-w3IOHhze1Qb3tMEdbobc7jAP3kH6hSmOJ--06-zt4rGEpz80VxQ5Dc9Yw2NbprB4F89Eua1GNXX2e3bDwwWooF0ANOVsPXMOxqqgrLGie9GdIItt0xqTvcRxYerA3on3GEAVDg2o7gjdANabqAP04haxtWvmG0BUCDSItAeRj132DIg3cmnXdd7c-hF4SF2Dx3rwLPBFHXipmPOwMcoO0KvlKl2DPTpIxKCBtLogDSdgNrXIkifZQRTU-xqBnju2zRAWhtkM_e2shBC_mjXUnuWaw7JuVwjVlA_lONJPM8vaOGok7-j8cWFwThThwziUI2w43J3t4M-ZLHwflMrsq77Lh18-3Z1P_N8m0-tzgrFeXWE_ubgt8iUiXoiseMTlK05XaV3i_yHGqtu8tpmLXO0-S5DQwIL17RdoIFh1FyKxrIzzYnmVxXkTaDgQmJr_oNRJ7lR8JE4fidNrJE7f3yp7YfLEeMQjyo-YPP2g67ivVzjZofVFRettSgJzF0N0kL3Ux-40C9kRUUB62PvZjiw2oet8fcAOcxDwnnQM8I7BaF6WFh4NsJ7tmQZW9eztfK9FGjiGvS9xfG0xQrShi3GTJYaR4RlR9DrJqN0l48Cvd0tGnR6S-DWSUVdXOcSavBtoJpBmgled5XU1y-PZUizz4nGWiW-zxdogjmwN55jySnMDJ9ha6pjpsPU0cswCbpndtA2Dj89Xm3gYwhB0odJ7gvOERHKaVP9JomoBDNQZqkxErUuTyfU7xERUN3g9NR3TyHHjDo87BlrH-oCN-XvEcf4eEmnisM2NCUyRxzIp13LSJbIAhNSSxmrvSYBBQAGI5DkSeQ_tP8Fg64E9DyOJPakziwzucVl84VmePS7zuiQZX4rmQM1YsdeJBuR1mKd4nOUK-CjUUY9SW8unvEzCKYRKfx5rSVzzhuyu4UC7K_YGY8O658ll0tmTkiPrpkVfyrrKe9-LJyp5svek8ciSBQ73CZZ2DH8t0_2DCjrvIAS5jrE9ZQIau2M3co5WDfpB_q7ukJe1eBsU7ey0GBbEKduuSLS8CAj4j1I2el0-3P5cc3p8cIOPnzLMm5-TOduye0py-wYXmtERi2evyY3N7J6mvL7FecJ8mpl3Z8R0XKq7AS2cMSIaRkHYnmhcm1C44EVT4sLjCGvkuEHv51klHqofh1_leVoOmroc_m4wuwxTDstcY6ZGD3NgOrStcB6dvGViLGBuREZNPQMIjDetf1La456PnWfVP7eKYTLVUu8fXv1sj8K-6CjHz3W-tzn9gh0BQ8LU0SY8LToDwxYZsLs-o0Swjb2wEtXA9fPV40WRLyGAbWi2u-lIQB7r6byPhNQI8uX1xnu3VyWlgeeEsIt2gHLvo6tNuQl7xB9l3H9KIbJbxuXLaB5m3ynk-sDkZcFXi49K7nMruaoQQM4ml0NwG_ABoquA3Yx0cjVyL52VFNNHbfejtvvvqu0y1_E87r52bRfIuJCI_gS1XYVk_Ca1XSuwjnPQ6HWLvdTWTVdLgZhnxRE4hR8Ggd9ZuhS4Fq0dLnjk3uUVXDSwmOu6m4xmq0ALuCLmdosB_XG6d5G4ny-XvfLG_dkn_CaVyn7WhUlMilpF6E-ONV9fLAvHRc-992xS4DLBx0Std_Dq53yPDPZxfxhPehC3rwqvGsBuy5NySpRatm1t_NL2QabAoZHHnuDquBw9saGgGgihhdPWEag10CqRtGerhgjHT9rqWd6JSzphyXGWrpcanWk69uA75VWPxbHJn2SqITvJonPIVCTF9-FnLIOJfYVSYEd4InqmP-mW9Dv2l6QQTs8SCDFlLN3dE1KPIlHxpBkpA_yzfKX2C7pdO0aw_v4QfK6_EyYDMPWNPP17YureTwZHrWLHKYG9VOWO3O7pOBi7r3LmBc9U-SRNN1ovd1bJO6v3e8xXR8agZoddp8duAHPgSXYPPnX7xvxaTic-2KpDw-oBeSrfu3q8F5cvWFTMvsPSa9Pe2Ao9-8gHko-mwx1gWj-MYbO3p1D9a-9X6QVsapqhGUZP7fP4l1sMQvqK937P7n1f40_qtF-sX1eGZG9nz0MtqXCO7Zk72-9dOB21mzKEpZ16t9kTVhDY4jBhgW_G22KHxA4TzptIpNkm3LcDgBKxovgAibzNNuHTDNqWPGKzmeuU_YP3QenWxvsvvA9Kt3bef9F9UOr8gvug7vvug3p6tczlb7sP2t-5fp190BNxajqObYzHlu2cRKcsGrMxP6mSKhWnA3vaxGf2Gfn0ku-nyz8PhAcAUTz6fqh8pLZVT-oiPT18k872qGmcLE5tGjBTeCEPeRC4lmNQw7CiMHZiz-RW4JzIPzBQIjvAyElySg0KbxoOZcxlbOQJxnhsxLEj2NgN6MAyBKg2HSFh_HNEJ8WpxACCLeEhJo3l5iHuMc0zIdrxeV0t8uL0N_7XI2BdnEi8pxLs3_zMihM">