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

    <tr>
        <th>Summary</th>
        <td>
            [AMDGPU] llc crash in 'AMDGPU DAG->DAG Pattern Instruction Selection'
        </td>
    </tr>

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

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

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

<pre>
    The following LLVM IR crashes the AMDGPU backend, commenting out the target triple to target x86 works.

https://alive2.llvm.org/ce/z/rcPsqm

```llvm
target triple = "amdgcn-amd-amdhsa"

define void @Secp256k1_32b_fp_add(ptr %0, ptr %1, ptr %2) {
addModSatBody:
  %3 = alloca [8 x i32], align 4
  %4 = getelementptr inbounds [8 x i32], ptr %1, i32 0, i32 0
  %5 = load i32, ptr %4, align 4
  %6 = getelementptr inbounds [8 x i32], ptr %2, i32 0, i32 0
  %7 = load i32, ptr %6, align 4
  %adc01_ = add i32 %5, %7
  %adc01c_ = icmp ult i32 %adc01_, %7
  %adc_ = add i32 0, %adc01_
  %adc012c_ = icmp ult i32 %adc_, %adc01_
  %cOut_ = or i1 %adc01c_, %adc012c_
  %8 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 0
  store i32 %adc_, ptr %8, align 4
  %9 = getelementptr inbounds [8 x i32], ptr %1, i32 0, i32 1
  %10 = load i32, ptr %9, align 4
  %11 = getelementptr inbounds [8 x i32], ptr %2, i32 0, i32 1
  %12 = load i32, ptr %11, align 4
  %adc01_1 = add i32 %10, %12
  %adc01c_2 = icmp ult i32 %adc01_1, %12
  %adc2_ = zext i1 %cOut_ to i32
  %adc_3 = add i32 %adc2_, %adc01_1
  %adc012c_4 = icmp ult i32 %adc_3, %adc01_1
  %cOut_5 = or i1 %adc01c_2, %adc012c_4
  %13 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 1
  store i32 %adc_3, ptr %13, align 4
  %14 = getelementptr inbounds [8 x i32], ptr %1, i32 0, i32 2
 %15 = load i32, ptr %14, align 4
  %16 = getelementptr inbounds [8 x i32], ptr %2, i32 0, i32 2
  %17 = load i32, ptr %16, align 4
 %adc01_6 = add i32 %15, %17
  %adc01c_7 = icmp ult i32 %adc01_6, %17
 %adc2_8 = zext i1 %cOut_5 to i32
  %adc_9 = add i32 %adc2_8, %adc01_6
 %adc012c_10 = icmp ult i32 %adc_9, %adc01_6
  %cOut_11 = or i1 %adc01c_7, %adc012c_10
  %18 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 2
  store i32 %adc_9, ptr %18, align 4
  %19 = getelementptr inbounds [8 x i32], ptr %1, i32 0, i32 3
  %20 = load i32, ptr %19, align 4
 %21 = getelementptr inbounds [8 x i32], ptr %2, i32 0, i32 3
  %22 = load i32, ptr %21, align 4
  %adc01_12 = add i32 %20, %22
  %adc01c_13 = icmp ult i32 %adc01_12, %22
  %adc2_14 = zext i1 %cOut_11 to i32
 %adc_15 = add i32 %adc2_14, %adc01_12
  %adc012c_16 = icmp ult i32 %adc_15, %adc01_12
  %cOut_17 = or i1 %adc01c_13, %adc012c_16
  %23 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 3
  store i32 %adc_15, ptr %23, align 4
  %24 = getelementptr inbounds [8 x i32], ptr %1, i32 0, i32 4
  %25 = load i32, ptr %24, align 4
  %26 = getelementptr inbounds [8 x i32], ptr %2, i32 0, i32 4
  %27 = load i32, ptr %26, align 4
  %adc01_18 = add i32 %25, %27
  %adc01c_19 = icmp ult i32 %adc01_18, %27
  %adc2_20 = zext i1 %cOut_17 to i32
  %adc_21 = add i32 %adc2_20, %adc01_18
  %adc012c_22 = icmp ult i32 %adc_21, %adc01_18
  %cOut_23 = or i1 %adc01c_19, %adc012c_22
  %28 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 4
  store i32 %adc_21, ptr %28, align 4
  %29 = getelementptr inbounds [8 x i32], ptr %1, i32 0, i32 5
  %30 = load i32, ptr %29, align 4
  %31 = getelementptr inbounds [8 x i32], ptr %2, i32 0, i32 5
  %32 = load i32, ptr %31, align 4
  %adc01_24 = add i32 %30, %32
  %adc01c_25 = icmp ult i32 %adc01_24, %32
  %adc2_26 = zext i1 %cOut_23 to i32
  %adc_27 = add i32 %adc2_26, %adc01_24
  %adc012c_28 = icmp ult i32 %adc_27, %adc01_24
  %cOut_29 = or i1 %adc01c_25, %adc012c_28
  %33 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 5
  store i32 %adc_27, ptr %33, align 4
  %34 = getelementptr inbounds [8 x i32], ptr %1, i32 0, i32 6
  %35 = load i32, ptr %34, align 4
  %36 = getelementptr inbounds [8 x i32], ptr %2, i32 0, i32 6
  %37 = load i32, ptr %36, align 4
  %adc01_30 = add i32 %35, %37
  %adc01c_31 = icmp ult i32 %adc01_30, %37
  %adc2_32 = zext i1 %cOut_29 to i32
  %adc_33 = add i32 %adc2_32, %adc01_30
  %adc012c_34 = icmp ult i32 %adc_33, %adc01_30
  %cOut_35 = or i1 %adc01c_31, %adc012c_34
  %38 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 6
  store i32 %adc_33, ptr %38, align 4
  %39 = getelementptr inbounds [8 x i32], ptr %1, i32 0, i32 7
  %40 = load i32, ptr %39, align 4
  %41 = getelementptr inbounds [8 x i32], ptr %2, i32 0, i32 7
  %42 = load i32, ptr %41, align 4
  %adc01_36 = add i32 %40, %42
  %adc01c_37 = icmp ult i32 %adc01_36, %42
  %adc2_38 = zext i1 %cOut_35 to i32
  %adc_39 = add i32 %adc2_38, %adc01_36
  %adc012c_40 = icmp ult i32 %adc_39, %adc01_36
  %cOut_41 = or i1 %adc01c_37, %adc012c_40
  %43 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 7
  store i32 %adc_39, ptr %43, align 4
  %44 = alloca [8 x i32], align 4
  %sbb2_ = zext i1 %cOut_41 to i32
  %sbb_ = sub i32 0, %sbb2_
  %sbb012b_ = icmp ult i32 0, %sbb2_
  %bOut_ = or i1 false, %sbb012b_
  %45 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 0
  %46 = load i32, ptr %45, align 4
  %sbb01_ = sub i32 %46, -977
  %sbb01b_ = icmp ult i32 %46, -977
  %sbb_42 = sub i32 %sbb01_, 0
  %sbb012b_43 = icmp ult i32 %sbb01_, 0
  %bOut_44 = or i1 %sbb01b_, %sbb012b_43
  %47 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 0
  store i32 %sbb_42, ptr %47, align 4
  %48 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 1
  %49 = load i32, ptr %48, align 4
  %sbb01_45 = sub i32 %49, -2
  %sbb01b_46 = icmp ult i32 %49, -2
  %sbb2_47 = zext i1 %bOut_44 to i32
  %sbb_48 = sub i32 %sbb01_45, %sbb2_47
  %sbb012b_49 = icmp ult i32 %sbb01_45, %sbb2_47
  %bOut_50 = or i1 %sbb01b_46, %sbb012b_49
  %50 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 1
  store i32 %sbb_48, ptr %50, align 4
  %51 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 2
  %52 = load i32, ptr %51, align 4
 %sbb01_51 = sub i32 %52, -1
  %sbb01b_52 = icmp ult i32 %52, -1
 %sbb2_53 = zext i1 %bOut_50 to i32
  %sbb_54 = sub i32 %sbb01_51, %sbb2_53
  %sbb012b_55 = icmp ult i32 %sbb01_51, %sbb2_53
  %bOut_56 = or i1 %sbb01b_52, %sbb012b_55
  %53 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 2
  store i32 %sbb_54, ptr %53, align 4
  %54 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 3
  %55 = load i32, ptr %54, align 4
  %sbb01_57 = sub i32 %55, -1
  %sbb01b_58 = icmp ult i32 %55, -1
  %sbb2_59 = zext i1 %bOut_56 to i32
  %sbb_60 = sub i32 %sbb01_57, %sbb2_59
  %sbb012b_61 = icmp ult i32 %sbb01_57, %sbb2_59
 %bOut_62 = or i1 %sbb01b_58, %sbb012b_61
  %56 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 3
  store i32 %sbb_60, ptr %56, align 4
 %57 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 4
  %58 = load i32, ptr %57, align 4
  %sbb01_63 = sub i32 %58, -1
  %sbb01b_64 = icmp ult i32 %58, -1
  %sbb2_65 = zext i1 %bOut_62 to i32
  %sbb_66 = sub i32 %sbb01_63, %sbb2_65
  %sbb012b_67 = icmp ult i32 %sbb01_63, %sbb2_65
  %bOut_68 = or i1 %sbb01b_64, %sbb012b_67
  %59 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 4
  store i32 %sbb_66, ptr %59, align 4
  %60 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 5
  %61 = load i32, ptr %60, align 4
  %sbb01_69 = sub i32 %61, -1
  %sbb01b_70 = icmp ult i32 %61, -1
  %sbb2_71 = zext i1 %bOut_68 to i32
  %sbb_72 = sub i32 %sbb01_69, %sbb2_71
  %sbb012b_73 = icmp ult i32 %sbb01_69, %sbb2_71
  %bOut_74 = or i1 %sbb01b_70, %sbb012b_73
  %62 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 5
  store i32 %sbb_72, ptr %62, align 4
  %63 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 6
  %64 = load i32, ptr %63, align 4
 %sbb01_75 = sub i32 %64, -1
  %sbb01b_76 = icmp ult i32 %64, -1
 %sbb2_77 = zext i1 %bOut_74 to i32
  %sbb_78 = sub i32 %sbb01_75, %sbb2_77
  %sbb012b_79 = icmp ult i32 %sbb01_75, %sbb2_77
  %bOut_80 = or i1 %sbb01b_76, %sbb012b_79
  %65 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 6
  store i32 %sbb_78, ptr %65, align 4
  %66 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 7
  %67 = load i32, ptr %66, align 4
  %sbb01_81 = sub i32 %67, -1
  %sbb01b_82 = icmp ult i32 %67, -1
  %sbb2_83 = zext i1 %bOut_80 to i32
  %sbb_84 = sub i32 %sbb01_81, %sbb2_83
  %sbb012b_85 = icmp ult i32 %sbb01_81, %sbb2_83
 %bOut_86 = or i1 %sbb01b_82, %sbb012b_85
  %68 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 7
  store i32 %sbb_84, ptr %68, align 4
 %sbb01_87 = sub i32 %sbb_, 0
  %sbb01b_88 = icmp ult i32 %sbb_, 0
 %sbb2_89 = zext i1 %bOut_86 to i32
  %sbb_90 = sub i32 %sbb01_87, %sbb2_89
  %sbb012b_91 = icmp ult i32 %sbb01_87, %sbb2_89
  %bOut_92 = or i1 %sbb01b_88, %sbb012b_91
  %69 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 0
  %70 = load i32, ptr %69, align 4
  %71 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 0
  %72 = load i32, ptr %71, align 4
  %73 = select i1 %bOut_92, i32 %70, i32 %72
  %74 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 0
  store i32 %73, ptr %74, align 4
  %75 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 1
  %76 = load i32, ptr %75, align 4
  %77 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 1
  %78 = load i32, ptr %77, align 4
 %79 = select i1 %bOut_92, i32 %76, i32 %78
  %80 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 1
  store i32 %79, ptr %80, align 4
  %81 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 2
  %82 = load i32, ptr %81, align 4
  %83 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 2
  %84 = load i32, ptr %83, align 4
  %85 = select i1 %bOut_92, i32 %82, i32 %84
  %86 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 2
  store i32 %85, ptr %86, align 4
  %87 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 3
  %88 = load i32, ptr %87, align 4
 %89 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 3
  %90 = load i32, ptr %89, align 4
  %91 = select i1 %bOut_92, i32 %88, i32 %90
 %92 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 3
  store i32 %91, ptr %92, align 4
  %93 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 4
  %94 = load i32, ptr %93, align 4
  %95 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 4
  %96 = load i32, ptr %95, align 4
  %97 = select i1 %bOut_92, i32 %94, i32 %96
  %98 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 4
  store i32 %97, ptr %98, align 4
  %99 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 5
  %100 = load i32, ptr %99, align 4
  %101 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 5
  %102 = load i32, ptr %101, align 4
  %103 = select i1 %bOut_92, i32 %100, i32 %102
  %104 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 5
  store i32 %103, ptr %104, align 4
  %105 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 6
  %106 = load i32, ptr %105, align 4
  %107 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 6
  %108 = load i32, ptr %107, align 4
  %109 = select i1 %bOut_92, i32 %106, i32 %108
  %110 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 6
  store i32 %109, ptr %110, align 4
  %111 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 7
  %112 = load i32, ptr %111, align 4
  %113 = getelementptr inbounds [8 x i32], ptr %44, i32 0, i32 7
  %114 = load i32, ptr %113, align 4
  %115 = select i1 %bOut_92, i32 %112, i32 %114
  %116 = getelementptr inbounds [8 x i32], ptr %3, i32 0, i32 7
  store i32 %115, ptr %116, align 4
  %117 = load [8 x i32], ptr %3, align 4
  store [8 x i32] %117, ptr %0, align 4
 ret void
}
```

Stacktrace:

```
LLVM ERROR: Cannot select: t50: i64 = FrameIndex<0>
In function: Secp256k1_32b_fp_add
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/ce/llvm-install/bin/llc -o /tmp/compiler-explorer-compiler202475-1055-1xvzvzx.ofu6/output.s -x86-asm-syntax=intel -O3 <source>
1.      Running pass 'CallGraph Pass Manager' on module '<source>'.
2.      Running pass 'AMDGPU DAG->DAG Pattern Instruction Selection' on function '@Secp256k1_32b_fp_add'
 #0 0x0000563db0d8d390 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/ce/llvm-install/bin/llc+0x42ae390)
 #1 0x0000563db0d8a3af llvm::sys::RunSignalHandlers() (/home/ce/llvm-install/bin/llc+0x42ab3af)
 #2 0x0000563db0d8a505 SignalHandler(int) Signals.cpp:0:0
 #3 0x00007f77033c2520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007f77034169fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #5 0x00007f77033c2476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #6 0x00007f77033a87f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #7 0x0000563dad703718 llvm::report_bad_alloc_error(char const*, bool) (.cold) ErrorHandling.cpp:0:0
 #8 0x0000563db0b1b77d llvm::SelectionDAGISel::CannotYetSelect(llvm::SDNode*) (/home/ce/llvm-install/bin/llc+0x403c77d)
 #9 0x0000563db0b2adc3 llvm::SelectionDAGISel::SelectCodeCommon(llvm::SDNode*, unsigned char const*, unsigned int) (/home/ce/llvm-install/bin/llc+0x404bdc3)
#10 0x0000563db0b180ee llvm::SelectionDAGISel::DoInstructionSelection() (/home/ce/llvm-install/bin/llc+0x40390ee)
#11 0x0000563db0b218f1 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/home/ce/llvm-install/bin/llc+0x40428f1)
#12 0x0000563db0b24d2e llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/home/ce/llvm-install/bin/llc+0x4045d2e)
#13 0x0000563db0b25f6d llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/home/ce/llvm-install/bin/llc+0x4046f6d)
#14 0x0000563db0b1d4f0 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/home/ce/llvm-install/bin/llc+0x403e4f0)
#15 0x0000563dafc69e15 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/home/ce/llvm-install/bin/llc+0x318ae15)
#16 0x0000563db02a1b6c llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/ce/llvm-install/bin/llc+0x37c2b6c)
#17 0x0000563daf6f5faa (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) CallGraphSCCPass.cpp:0:0
#18 0x0000563db02a2662 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/ce/llvm-install/bin/llc+0x37c3662)
#19 0x0000563dad8a362b compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#20 0x0000563dad7abf8c main (/home/ce/llvm-install/bin/llc+0xcccf8c)
#21 0x00007f77033a9d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#22 0x00007f77033a9e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#23 0x0000563dad898305 _start (/home/ce/llvm-install/bin/llc+0xdb9305)
Compiler returned: -1
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8XF1zozqT_jXkRuWUPkASF7nIJJPZqTqzJzV5d6v2yiVAdtjB4AU8JzO_fksCOxJWk8SH81bNh8Hq5qH7Uau7QVZdV25rrW-i5FOU3F-pQ__ctDe7VvVdubvKmuLXzb-eNdo0VdX8VdZb9Mcf__0Nff2O8lZ1z7pD_bNGt9_uvzz-F8pU_kPXRUTvUN7sdrrujUBz6O2gXrVb3aO-LfeVRn1zPPEiOfqraX901xG-j_Dt8O9z3--7iN1G9CGiD6oqf2p6XVU_d9dNu43oQ64j-vA7og9t_tj9384VjTge_pjhwyn_2hG7RxGlalds83qldoX5-9ypiFJXT6E3Za3Rz6YsUBTjJ53vacJ_kDWj2XqzX6uiiKjc9y2KaILNXY-fifOZRjRFkfg0qFRF8a0pnlT_qSl-mbuzZ5EZyCwsVVVNrlCUfJLoBZWMRsm90aaqcluj2Bkf2_Fb3etKG1Ob65V11hzqojuXd5GVjCL8-uFVZWJVVo0qrOSrWByGwC-BQGchCAgCD0NQRY7JejBdYWXsjZjBRtt0ZD4MLfPdHh2q_jh-0BIW8pXjcdAoMVFPYf1rSDD_89APUk2LSuJAdSVo7srISwzPYMN3fdPqKdhRTIYNny5DP-KoJBhyfhrGQMgyBPRAUAgEIXMUJFMOkiNVCD1nIZ2hIQHk6MCS3_qlH3kyUKdvLFCftGwKxyrwOEgC7I1B-jJQ1qJIggymEwp7zmPLkJiAJGau8xhAoYXC6NH-5kswjBIgjpKFAqlLAgJGUhIIpSfH8jMaH2MpCQRTMUNjPpU7klAGaZyEeZwGeSw9MvLJTdB8PYaSEJHToOwJxxhTpkwWEyYTd9EiC8VjClI5df0HRGSyUEhmjk4KhmQSiMlGYKGQ7IEAQzKdD8l0Sh56jMk0EJPHgAQEZQpI0vUYQqaEJsRn9OjJMTpMGT2EBvdy58F5DBMhUp9maUB8QCOCtCZsymt3QtCFQjQDeT3gPnoTiNF0oRjt6QSDNAWCNF0oSHs6wSBNZ_PdMeC4zD4SgAbC9BgZAGZLQJKux9l_xmwRjtX0LAcatfjclAFqUzAhWlMCi1s4I0vPqJ1OqO3NXLpQyI5BalOvCgRiNl0oZiduIQnGbArk0WyhoO2hAIM2mw3a42R3SMSO_JkSzmaYyQy1aQxI0vU4m6fUpgygtghTm3vcpGe3Y2gnYWoLWHyAk4bT6mRKbXdSsIWidgJTW7iCQNRmC0Vtd0FiYNRmQNRmC0VtDwUYtdls1B4npkvtoyNZIGqPszJM7ddJcRa1x5l3Ru0UqBTDpSLzajdzvXNqs5lykcHiFg4LV4yMTKjNPG8uFLU5XDO6RSMDojZbKGq7rovBqM2AqB0vFLU9FGDUjmejNjurG-MjQeNA1GZzhSPjgCRds3DtyIDikYWrR-aXj4yHGiFwAclSWNzCicMlJJvWkLE7KeKForaAqe0WkTEQteP4g23oLsuAxlRMzr3SZdkwuDtkXj_VqvEHYkKzQDsVksgmfdSNqjr9OtZqc280WbiHanRycPYkoPWO7eujRaweM3qVCjEdGjLIjMB6nM-O7uGKZjgOmDsO18BhIWvxkTAnso8wJ4aP3Xo-FpeYPo5h23tcH-7blRQA1xdaTdxmaJyCFAAWk8G2Ix1dEtjpuqLnFIjDfYCwAF2P5nam59Fxwek5WuWMMnHiTrz4jJrGy-E68015iyfBQSLFfEql1H1ihReiUriLPNjDkRwe8507MbloLZ7pABqd4FqcBNbik51HKI7_hjV_Rc6ZlITL7onA0WfjI8opkRIcJtL4hPKMSAlxiZCwAJGScFX3pvyAhweJlNAJkRK3XE0uWn4DRAr3cAd7uC4E1t_LHuvOtNyMTrBqgh7sjoYWZ0xKQCaFq9ywAF2Pjw_PqMTDVOIYoJLwqJAGqMTDVdSs_BEOp2EmyQmTuHt_lz0VDzAp3DUdzOH6MPw4J7lokZ1pcBmdEiQSsMQOZubsjEgSIhIP15RhAbrmSZBInAJE4mEiceYSgSchIoVrljflBzwyyCQeT5nkLouXPWMPMCncpBzs4ToRKDT5RYvsTEPJ6CQQlTiwxI6GTqcO5ASikgjXcGEBuhYkTCUZppIAUmueulQQZ7hothZzWfaMvMUjwgm3wBMqCXcJGCPZ36dSuCk42MN1IgWotFCV69bcY8QIUSmwyJ7sLM4y7mE2BpkUzrgnAiefhRNuASTcAki4hZcwn9eCxsdzCfeMvMUjwwm3mCbcwl1W-UVlc4BI4RbcYA_XhUDhzC9aZWfaJUYn_PIZ0NcdDC3PMm4uICbJcMYdFqBrGU65JZBySyDlll7KLEMpt5xLuQH5E5xwxi2nGbf0VoCLqu8Ak8Idr8Ecrg8D9ffrDZ6lukY-2CXJ1jKc604lTuYK57oSyHVTINeVXq4qQ7luOpfrzshbPGk42ZXTZDd1ScovSlHmu2gC7IRzIEERF1Xfcw0loxQsvwXQCh-X9U5XOvdcnZ6a7vb23APX-2Kh2i_cFhPukw0BFH5ioa6oyxEBdkUFENzFUg1CDwZYvIhA8WJOp-9yJ3cP3OewcqG0OdyaEm43XwI5s_wH2lISnBcSmBdy8d6KUQpmfRJorYwr3Bv-lN6BJ79QyhHuEEn3TSgJ5BtyoaLeTQAkOC9keF7IpcpSF0UKBn0JBP1xsXvLndI5SJ2lOb2oInrvu22p-_JPChRD6ULFkKcTnBYpMC3SpTJ6TykY81Mg5qfiPe5MY_fArQLTf_SFrtR94yWFtkQslAy5WTLB8KYIaFcEXiod8oHAGyMwEPgJfldGRDD2jrzX2PFCSVG4cUGwt0kAQy_o44XyIu4pBScJwcAsIXip1MhHAq4BBAOdXYLflR4RzL0jN0EiZKEMKdxLINh7a54AORK5bBfRfCuBzG0jgmbLZTti5ipiqxVcEQi4KYa8K1UixD_yVSzdoPF96704TkJbWoYvnJbO7DUnssPFPIlRnyMYIFSre7tfdDiMxP344bgjdTy0_z71Kv_RtyrXp42gwdF2w-3n79___B6xW3Sn6rrpR9eYE32CzX_l2AZ9aNVOf60L_RKxOxyxz4OSrzXaHOq8L5vajA7uZbUDH__4fPv0GXWHbFf2SKHssEWt3jdtj_oG-btyt2X_fMiu82YX0Qe72Xb4b7Vvm_818OhD2XUH3UX0Aam6QGWdV4dC2-3Adv-w3TJsbXDtGAUVh93-ZBR8HeH0sW22rdoh1W4Phk0GBIrow3Oz08fdwPbSZd31qqoi-pCVtT2Zo1Vjhva7vRnZ7PZlpduVftlXTavb1fEMxTQWyYrgJFmRl5-_f_5-uW42Bx7Rh-bQ7w_9dYdWL5KvVLdbdb_qXr1E7L6se12h1Z9m7t51zaE17hyNTgzy74e6Lust2quuQxEVd6qqvrRq_4wezZlvqlZb3UZUoKZGu6Y4VNoM87RRMZqHhjSOu6_vb7-sIvb5_vYLelR9r9safa27vj1Yr6Mnyxjj_-FSRzrYi0G7m1_3bjGM8AvGGCecFRkuZMFSjKzT2W3Ebrtf3fDhsS3r3rrxX5bbVL4OatVf66brW6120fDudFn3doM0le90ZkQ_4ZeYKs1SHNHXJ7aMTPAppjYhfN8P9VO5rVX1H6ouKt129tqXQMiY2ngQ6BRCghPkXSyicrzj4XR3ne8N07H9e1LERkViIwRmLB82YlmAVZlF9OFF8jWPV1VZH15W2_owfJFfd801H-HZzU4OuNjTGROebnK0759brYr1j7KqPnaB1Mh7F0imoGPB0baz9_lR8LHgnm7u61ZSbBhSmYlKH9JMjaCnWTg-U4XATBDp0GYIfetMFWv7TuRat21j3Jg_qxblTd31Eb01TM6aphp5dJ03VWE-fzaDrevLeht2tfQ4k5FMiMK5_mnW3t9--fqkq-HssAj8j-6Hr7059nT_n02hLaiPkxqzXIjCM1DqA6SqyNmbAIezd02h75rdzsScMMI7dKjtD1AU6Mygp28ujBE4zor81dkmROCJsSXW-s17uW-cMOpE0YuiBmYp1toDRSYGJnJD3mZAU-gvur6ti8-7sr-__XIpnpjKDfHw0AmeuKBvG2k4e1tVn1RX5p-qJv_ReU5_OC43o4v5ZWiTgvrWYxO0yYa_PX_aQ_1n_U3lz2Wtj8A8tGffXQiXb3jhwY0nDCziDZ6B-4feqvzXvxc00_EGe6ATN0Zucp5qkiDwuiatcRAHof49jIxIpU0F4GDknmGpIhnPHYwPjwbWMdn6Z9GJnGY899B5q8yGb5KNUkavqpv61645dKhWO93tbcKUjlP8SxjyN5sj-p4fT1m4pwTz6e7OaDhfdwwiObEX5Zw69qoc4jkwvu72r1MIhvBxizHOqWex1FuXpWKcZmhM1U8WMGuGXS3sgvEKxpRMd03d65djpKmqPGgHiv31X2UbmaOdKuuP3kSe5xvpeZ2SSdaSFukH0zhqRDyddKpTxxit10Zs3fWq7dcO-HdfRcf-VZhv_VQynKBB_0ftUmQpw69z9W6stkypfGhrXZhC7vjiw6TyvSpuWJGyVF3pGyIolSlmWFw93yRZgfN0Q3JSZBudsmSDySbfaFlgQkS-uSpvTDWHJU4oZpKKa5zEekM5znOidBrrKMZ6p8rq9JNSV7ZSvSGY4kReVSrTVWd_FIvSWv-F7LcRpVFyf9Xe2BvODtsuinFVdn33qqYv-8r-mtZQlUXJveHeWO1ax1xQr10d2urm8tp7vKmfN_T_AwAA__-tYFU_">