<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJztWltzozgW_jXOi8ouEBjDQx6c20x200km7p6d3ReXDMJmGoMXROL0r99zhLAFCCc90z3btbWJy2Bdzl3nOyCt8uj1_InvijyqQl6MrKuRNR95lvrUP-kNfEjIBEnT5-0YBv_OQwFtYb7dJSkvxgX-ErzEy7ZkGVwivqrWy7Lkk3C3axHKkux3RsINDz-P5WC98-nT_ciZkxGdhinL1vv9EoeQcQzfiUi-8PGWb_PidSwKBvPzIlknWUnGD9QwZscKth0XXDyzFEnCuByvAr48-OB9UWWy6S-SAjQuuTuh5J3yKKmcJAvTKuJk5FwyoFCIyWbkXJu6tyxN83Cwu0zWGUuHu0WU5Cd6iyRb692mQUr_QgXDMskEL2IW8t7EMM9KQaCf3MPMK0JHzkXdE-XVKuWEjaYX96PplewdzS5Gs6vukNWJIfV3KZhIQmCTJhknahraYUR99Ws_ogFOJuCmqkAP-HskiDQnFtzd1Jd503PZNI9t1QFXIIIf54KgEJoEyyUTYLpVJfhyCRTgk-W1PPUcomR8zpOIbF_TPN_JYVKomgYhcV4gezRXIrW1kFUipbmXtyN6IT-taURaMTmYiPpK95VqluOpjZ2qhx17ZCfoqbXC_QWZ0Lpn3umZk4lfG6Hhf7RF2yiox5YlyA_V7ki9lEtuuYOAE8tyw6L8RTKilyDkF57H9a-gzUs3ndb8x4ipWTJTLWExL5MSYhlim6UwKXoHBRVNaB4LzXmIy7YluglXfj9UYlcJkuVjWO9gZ-PQhdQFzLgjyGM_teDP5izm3ELZ9JYY45PkcT3S6o202iOx0fbI6hXy-oF9h0OPEOo4J5b6O3UDvr6cEPkPd7ri_2M6mXz7f4_-ADoFLJB_BL_CwIkNLajTnMj_jk4PEvOJTH81_i8hdQe1LWyZBuZNGviUaWmDQBlQcfLCSkj6eQENIid1qUCYgv3JZHLInhKEbNfyqO_VP_4xf7q_vf8Jdfgg5y0OiAtNVcnHeTyudJ5jyfPNlHP7BCBJVrnYQLVX8pKwgpMk4hlAk6yg_DxLX0mUxDEveBZCZ0kEK9ZcjGPOINeBEzTNu0wAom6qLBRJDoYDQESPkW1VCigp1zC3hGwXF5yTBhzhpuBhVZR4V75mIVyq7CXJItJUGUtluupFMEByVRrwGGfLwgOqHRKzUoQKXUeutfzXnVcjxbNC2SrL2JZHSxZFiLEOPUIRaF-8as6E4sySQJrmLELspWSvigqsbiAe-21zskoEmBQLPR_iUetGkJ2jUCuMA8NUFeTgyHUGoS4ZUFusGMOrq4kFcJVGPdESz23L1TTM0T4i34m6qvBcss8Pt9AqckToNwRGYrWAOMufBZ4VOBal1PLlQj7qdGDbVeiogH0UPnGoJIqXvqDgpu8nc9Nhz6YBtX3Pcl0X7S6VqQUaVoFKFQRU8WFb8aODNJPYh3pYTnbk5Djc7kjO_90LBhl6yBdWen5c3YVGwdUopOKPUAAZYTXuliVP4SFPkjvcHoWWqvZiCn-h5cYBpY4zo5bj-VN3Npv6lt9Y1dhniM8TIk6lVIcV1RHLlW6i2nhPjk_QKJgUqKQh0UQbNDtJlPaI-gaisy7RQLdfYst5KqxlvDf3-hzbOmV015RgsEE9yODjiPyDB4sLS_p6oMecqzRSg5T6hDTp7VPSO2-7uR9T3ZjUuVGT11rhDubs5SCNQL3kMId0mdp1fJ_g3u6g069dLMje3GzrIronI9PpRaY9NYSm7XZj0_b6wWlPjxF5DNNAnzV7Z0hLDvpE_72BcXTfcGx0XKzzCb4HOLNvA87U--vgmX1zeKZa3fOd8Pk9Qv85fLbfBGhw0jBEU_o2RtvBaYilOs4PoPRbNDq5JziZe-z_FlLT07mL9pMXNSUv2kteaiENErb7hGcmwl6PsN_Pb3SmJTVqHVOkNu20A8zp7cdBbedkzUEN4PX1sE11GHHsN4HblJ00AnQQuB3bCNwt_u2uN9Q3LR-UwNysh4XjnA7TflnpuIYwdZxumDrTfpg6rgm8IdVq0wyYPxDdkok-dfbuEPlqADe5RkWIycHdusvo7rYffKMfBig6smRM7LbpgrZjbMwUSLnrGtcyuCbQzerpNdJMn_oWOCnDDMOTq8FTlXEztPjKYE6LtwIlCd2DgHTMM7RJJ2PL1rJMq7ktmno23Vbpuxj4Zgb-MAPjc2GLh-ucyimuEVTaBNyTBOo1sjcFrduEqauXI64_GOXu7BjXWJQMZy_35AOjOXu5_lDK7vByg9NP2_0Upl6PtVOYG3TXydQIAZrcfcLU9CBv9wg7_QU4pdqac612xtOmnjalOcnJuBrscfUXrPg694J8_Pl2QRYfH56uF-Tq9ubm-un6_iP5dX736ZrgzgC9yXK8qinyLfGbOcvt-fNHfIQYeHczqJQhEcMQDABTMu681VkVyvv1FOxL2YrLowBTr_XTUzWDDdxjvPq622CwIzdSv-IPHb0reFSSetN1Wr9H1kxRJ4uQpWkdi6512HBkSbasNxXQWXWg4jOyjpPqDdQXvhdNLANJ5TBtmKpMN6n0n5yIujqtN2RWk4ZaY-T0dhiqfs9SAfGDPf1JgQbCb1iBNRcQb1vw0FGLH18_dLrd0tXXIl8PbS2U4de3CmUVIJ4xT7WSoPmt5V_y5qXgQm77dPfdTdtfN0W-JS8bJsgtQAAnYpOURG5Nsa3cplIqYlXLS5LE2q4LyyINP-U7Eh41I0G7l00SbuR2WVFxEiMneRohr8RhWatNOMk7y4F7toYiriorluK-XAJJkbwkYgNzyGJx7U7UEv45f-HPvJB9pD5edNyCw5cNaC38kNsnclVBzpzHAsb_5nvkav7TGAwKF3KblSBcvTu3kPkX7_BcwzZa76ox8q-PiihyLSYfWLjBPbcwj7g8qRI3O336bhvE3m25WMzRXR_x7FR5lzzzjJflic1JVVXA5OfCVg_oWR7v-D7kO0EuPzw-XhVFogptNQrkFgmPxhGPSbOuPidpyiNVXB3GXZJ6sW93aRImGIvudh-WrR0He4j5_OoKmG8l71OsgWiRSAhSSOPi1uZaLSJ5DmridHt6IhE0eX3kpn6HSP3SrncwZUhJOiwT412epx24oEMqfPh0981UcL-rCk5LhcffHp6Kou0es9ya8q1ir03uQO0NK0xnJmLTNrHF3d0vdUhCpX2CnOfoRLDOWBfq3caHh18_LP6Ooa0F7pFPM-_j9eKjQ5XoDYFjcj7-blwh-YM7eJyydalva-vcL4F9QzY4UDm5pgKN2bTr_C43d7_d1lXH5cPjP9srXH-d3zLrxd31_dWvaBKr49YBv9v6MtfFQe4NG9B0_rjYSlVrg9Xw3wtzyxD3rShqIltB4TG0MdMTTGg_ToHuWdrqesQoUjHk6jbrNZyOor9dXi5lyb1aTagxterjjSj8WOSg41ZiJWKxhmrkhdcQfDyO0V_HYC2VlJsTlNPrJsepg4HypKFpKbfxlO93AIKHEzslAC8g_YqTNPmsqgMgWON1Ig7Q3BzxbZ0B6suJb3k-w_zDax3tpOUf1EEdyGw9xJ9F504UOAE7YxXIV5w_J4Klr6vqMzurivR8I8ROnpySJ5_XoEO1moQ5sLnB097qoh36TsqywmM-NwC2jn-2OY-cKY99K_J9m9HIi4Np4NnT1Sz2qOswh53JUrQ8hxgeUboC0OdZBByh_Bip94aUSl7OHKuHNc-O7es0X0GNJ0sPCoF_9uclTs4prA4LimtKHfhMLJfNZlMWBBabMpd7sLD4liXpBOlM8mJ9VpxLkqsKIte1QBxRHjtZiadmOZcKgoQiESk_Pxz0lmVbmuNxqvqp9kzKcy6F-Q8WmpRE>53938</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            -msse4.2 isel loses select
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:X86,
            llvm:codegen,
            globalisel
      </td>
    </tr>

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

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

<pre>
    Reproducer
```
// cat llvm-project/compiler-rt/test/msan/debug_sse.cpp
// ninja check-msan
// RUN: %clangxx_msan -fsanitize-memory-track-origins -O2 -fsanitize-memory-param-retval %s -o %t && %run %t
// RUN: %clangxx_msan -fsanitize-memory-track-origins -O2 -fsanitize-memory-param-retval -msse4.2  %s -o %t && %run %t

#include <assert.h>
#include <malloc.h>
#include <signal.h>
#include <stdio.h>
#include <string.h>

#include <sanitizer/msan_interface.h>

const int N = 2;
double a[N] = {};
double b[N] = {};

static inline double sign(double x) { return (x == .0 ? .0 : (x < .0 ? -1.0 : 1.0)); }

__attribute__((noinline)) static void myloop() {
  for (int i = 0; i < N; i++) {
    a[i] = (sign(b[i]) != sign(a[i])) ? (a[i] + .2) : (a[i] * .8);
  }
}

int main(void) {
  __msan_print_shadow(a, sizeof(a));
  myloop();
  __msan_print_shadow(a, sizeof(a));
  __msan_check_mem_is_initialized(a, sizeof(a));
  return a[0];
}

```

Output no-sse:
```
Shadow map [0x500001eafee0, 0x500001eafef0) of [0x000001eafee0, 0x000001eafef0), 16 bytes:
0x500001eafee0[0x000001eafee0]: 00000000 00000000 00000000 00000000  |. . . .|

Shadow map [0x500001eafee0, 0x500001eafef0) of [0x000001eafee0, 0x000001eafef0), 16 bytes:
0x500001eafee0[0x000001eafee0]: 00000000 00000000 00000000 00000000  |. . . .|
```

sse:
```
Shadow map [0x500001eafee0, 0x500001eafef0) of [0x000001eafee0, 0x000001eafef0), 16 bytes:
0x500001eafee0[0x000001eafee0]: 00000000 00000000 00000000 00000000  |. . . .|

Shadow map [0x500001eafee0, 0x500001eafef0) of [0x000001eafee0, 0x000001eafef0), 16 bytes:
0x500001eafee0[0x000001eafee0]: 9a999999 9999c93f 9a999999 9999c93f  |A A A A|

Origin A (origin_id 90000001):
  Uninitialized value was stored to memory at
...
  ==1406286==WARNING: MemorySanitizer: use-of-uninitialized-value

```

IR in both cases are identical (only difference is target-features):
```
; Function Attrs: mustprogress nofree noinline norecurse nosync nounwind sanitize_memory uwtable
define internal fastcc void @_ZL6myloopv() unnamed_addr #2 {
entry:
  %0 = load <2 x double>, <2 x double>* bitcast ([2 x double]* @b to <2 x double>*), align 16, !tbaa !4
  %_msld = load <2 x i64>, <2 x i64>* inttoptr (i64 xor (i64 ptrtoint ([2 x double]* @b to i64), i64 87960930222080) to <2 x i64>*), align 16
  %1 = load i32, i32* inttoptr (i64 add (i64 xor (i64 ptrtoint ([2 x double]* @b to i64), i64 87960930222080), i64 17592186044416) to i32*), align 16
  %2 = trunc <2 x i64> %_msld to <2 x i1>
  %3 = fcmp oeq <2 x double> %0, zeroinitializer
  %4 = fcmp olt <2 x double> %0, zeroinitializer
  %_msprop_select = select <2 x i1> %2, <2 x i64> <i64 -9223372036854775808, i64 -9223372036854775808>, <2 x i64> zeroinitializer
  %5 = bitcast <2 x i1> %4 to i2
  %6 = icmp ne i2 %5, 0
  %7 = bitcast <2 x i1> %2 to i2
  %8 = icmp ne i2 %7, 0
  %9 = select i1 %8, i32 %1, i32 0
  %10 = select <2 x i1> %4, <2 x double> <double -1.000000e+00, double -1.000000e+00>, <2 x double> <double 1.000000e+00, double 1.000000e+00>
  %11 = select <2 x i1> %3, <2 x i64> zeroinitializer, <2 x i64> %_msprop_select
  %12 = bitcast <2 x double> %10 to <2 x i64>
  %13 = or <2 x i64> %12, %_msprop_select
  %_msprop_select25 = select <2 x i1> %2, <2 x i64> %13, <2 x i64> %11
  %14 = bitcast <2 x i1> %3 to i2
  %15 = icmp ne i2 %14, 0
  %16 = select i1 %15, i32 0, i32 %9
  %17 = select i1 %8, i32 %1, i32 %16
  %18 = select <2 x i1> %3, <2 x double> zeroinitializer, <2 x double> %10
  %19 = load <2 x double>, <2 x double>* bitcast ([2 x double]* @a to <2 x double>*), align 16, !tbaa !4
  %_msld26 = load <2 x i64>, <2 x i64>* inttoptr (i64 xor (i64 ptrtoint ([2 x double]* @a to i64), i64 87960930222080) to <2 x i64>*), align 16
  %20 = load i32, i32* inttoptr (i64 add (i64 xor (i64 ptrtoint ([2 x double]* @a to i64), i64 87960930222080), i64 17592186044416) to i32*), align 16
  %21 = trunc <2 x i64> %_msld26 to <2 x i1>
  %22 = fcmp oeq <2 x double> %19, zeroinitializer
  %23 = fcmp olt <2 x double> %19, zeroinitializer
  %_msprop_select29 = select <2 x i1> %21, <2 x i64> <i64 -9223372036854775808, i64 -9223372036854775808>, <2 x i64> zeroinitializer
  %24 = bitcast <2 x i1> %23 to i2
  %25 = icmp ne i2 %24, 0
  %26 = bitcast <2 x i1> %21 to i2
  %27 = icmp ne i2 %26, 0
  %28 = select i1 %27, i32 %20, i32 0
  %29 = select <2 x i1> %23, <2 x double> <double -1.000000e+00, double -1.000000e+00>, <2 x double> <double 1.000000e+00, double 1.000000e+00>
  %30 = select <2 x i1> %22, <2 x i64> zeroinitializer, <2 x i64> %_msprop_select29
  %31 = bitcast <2 x double> %29 to <2 x i64>
  %32 = or <2 x i64> %31, %_msprop_select29
  %_msprop_select30 = select <2 x i1> %21, <2 x i64> %32, <2 x i64> %30
  %33 = bitcast <2 x i1> %22 to i2
  %34 = icmp ne i2 %33, 0
  %35 = select i1 %34, i32 0, i32 %28
  %36 = select i1 %27, i32 %20, i32 %35
  %37 = select <2 x i1> %22, <2 x double> zeroinitializer, <2 x double> %29
  %_msprop31 = or <2 x i64> %_msprop_select25, %_msprop_select30
  %38 = bitcast <2 x i64> %_msprop_select30 to i128
  %39 = icmp ne i128 %38, 0
  %40 = select i1 %39, i32 %36, i32 %17
  %41 = trunc <2 x i64> %_msprop31 to <2 x i1>
  %42 = fcmp une <2 x double> %18, %37
  %43 = fadd <2 x double> %19, <double 2.000000e-01, double 2.000000e-01>
  %44 = fmul <2 x double> %19, <double 8.000000e-01, double 8.000000e-01>
  %45 = bitcast <2 x double> %43 to <2 x i64>
  %46 = bitcast <2 x double> %44 to <2 x i64>
  %47 = xor <2 x i64> %45, %46
  %48 = or <2 x i64> %47, %_msld26
  %_msprop_select34 = select <2 x i1> %41, <2 x i64> %48, <2 x i64> %_msld26
  %49 = bitcast <2 x i1> %42 to i2
  %50 = icmp ne i2 %49, 0
  %51 = bitcast <2 x i1> %41 to i2
  %52 = icmp ne i2 %51, 0
  %53 = select i1 %52, i32 %40, i32 %20
  %54 = select <2 x i1> %42, <2 x double> %43, <2 x double> %44

  ; THIS STORES DIFFERENT VALUE sse/nosse
  store <2 x i64> %_msprop_select34, <2 x i64>* inttoptr (i64 xor (i64 ptrtoint ([2 x double]* @a to i64), i64 87960930222080) to <2 x i64>*), align 16
  %55 = bitcast <2 x i64> %_msprop_select34 to i128
  %_mscmp = icmp ne i128 %55, 0
  br i1 %_mscmp, label %56, label %61, !prof !8

56:                                               ; preds = %entry
  %57 = call i32 @__msan_chain_origin(i32 %53)
  %58 = zext i32 %57 to i64
  %59 = shl i64 %58, 32
  %60 = or i64 %58, %59
  store i64 %60, i64* inttoptr (i64 add (i64 xor (i64 ptrtoint ([2 x double]* @a to i64), i64 87960930222080), i64 17592186044416) to i64*), align 16
  store i64 %60, i64* getelementptr (i64, i64* inttoptr (i64 add (i64 xor (i64 ptrtoint ([2 x double]* @a to i64), i64 87960930222080), i64 17592186044416) to i64*), i32 1), align 8
  br label %61

61:                                               ; preds = %entry, %56
  store <2 x double> %54, <2 x double>* bitcast ([2 x double]* @a to <2 x double>*), align 16, !tbaa !4
  ret void
}
```

>From what I see this program must store zeroes if  %_msld and %_msld26 loaded zeroes (which is true from printout)

I see nothing unusual in isel without SSE4.2
However with sse4.2:
# *** IR Dump After X86 DAG->DAG Instruction Selection (amdgpu-isel) ***:
# Machine code for function _ZL6myloopv: IsSSA, TracksLiveness

```
  %50:vr128 = nofpexcept CMPPDrri %39:vr128(tied-def 0), killed %47:vr128, 4, implicit $mxcsr
  %51:vr128 = nofpexcept ADDPDrm %3:vr128(tied-def 0), $rip, 1, $noreg, %const.3, $noreg, implicit $mxcsr :: (load (s128) from constant-pool)
  %52:vr128 = nofpexcept MULPDrm %3:vr128(tied-def 0), $rip, 1, $noreg, %const.4, $noreg, implicit $mxcsr :: (load (s128) from constant-pool)
  %53:vr128 = PXORrr %51:vr128(tied-def 0), %52:vr128
  %54:vr128 = PORrr %53:vr128(tied-def 0), %7:vr128
  %55:vr128 = PSLLQri %48:vr128(tied-def 0), 63
  %56:gr32 = MOVMSKPDrr killed %55:vr128
  TEST32rr %56:gr32, %56:gr32, implicit-def $eflags
  %0:gr32 = CMOV32rr %9:gr32(tied-def 0), killed %49:gr32, 5, implicit $eflags
  $xmm0 = COPY %50:vr128
  %1:vr128 = BLENDVPDrr0 %52:vr128(tied-def 0), %51:vr128, implicit $xmm0
  MOVAPSmr %6:gr64, 1, $noreg, 0, $noreg, %54:vr128 :: (store (s128) into `<2 x i64>* inttoptr (i64 xor (i64 ptrtoint ([2 x double]* @a to i64), i64 87960930222080) to <2 x i64>*)`)
  PTESTrr %54:vr128, %54:vr128, implicit-def $eflags
  JCC_1 %bb.2, 4, implicit $eflags
```

Problem is that with sse4.2 we store:
 %54:vr128 = (ADDPDrm() ^ MULPDrm()) | %7:vr128

However expected value should be like this (I see it without -msse4.2):
 %54:vr128 = trunk(_msprop31) ? ((ADDPDrm() ^ MULPDrm()) | %7:vr128) : _msld26

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWltzozgW_jXOi8ouENiGhzw4t5nsppNs3D07uy8uGYTNNAYviMSZX7_nCGELECTd293btbWJy2BdzvXTOQekdRa-nj_xfZ6FZcDzkXU1shajmaU-1U96Ax8SMEGS5Hk3hsF_8EBAW5Dt9nHC83GOvwQv8LIrWAqXkK_Lzaoo-CTY7xuE0jj9g5Fgy4PPYzlY73z6dD9yFmREp0HC0s3hsMIhZBzBdyziP_l4x3dZ_joWOYP5WR5v4rQg4wdqGLNnOduNcy6eWYIkYVyGVwFfM_jgfV6msukHSQEaF9ydUPJOeZRUTpwGSRlyMnIuGVDIxWQ7cq5N3TuWJFnQ213Em5Ql_d0ijLOB3jxON3q3aZDSP1dgWMWp4HnEAt6ZGGRpIQj0k3uYeUXoyLmoesKsXCecsNH04n40vZK9o_nFaH7VHrIeGFJ9F4KJOAA2SZxyoqahHUbUU78OI-rjZAJuKnP0gHdAgkhzYsHdTXVZ1D2XdfPYVh1wBSL4cS4ICqFJsFoxAaZbl4KvVkABPmlWyVPNIUrG5ywOye41ybK9HCaFqmgQEmU5skdzxVJbC1nFUpp7eTuiF_LTmEakFeOjiaindF-rZjme2tipetipR3aCnlor3F-QCa16Fq2eBZl4lRFq_idbNI2CeuxYjPxQ7ZbUK7nkVnsAnFgVWxZmL5IRvQQh_-RZVP3ym7x002nNX0dMzZKRagWLeRUXgGXANktgUvgOCgpNaB4LzXnEZdMS7YArvx9KsS8FSbMxrHews3HoUuoCZtwT5HGYWvBncxZxbqFsekuE-CRZVI20OiOt5khstGdk_Qpx_ci-xaFDCHVcEEv9Dd2Ary8nRP7Dna74_5hOJt_-36M_gU4-8-Ufwa_AdyJDC-q0IPK_pdODzPlEhr8q_68gdPuVLWwZBhZ1GPiUamGDQBlQcvLCCgj6WQ4NIiNVqUCYSvuTyeQYPWUSsl1rRr1Z9ePvi6f72_tfUIcPct7ymHGhqSz4OIvGpc5zLHm-GXJunyBJknUmtlDtFbwgLOckDnkKqUlWUF6WJq8kjKOI5zwNoLMgguUbLsYRZxDrwAma5m0mkKJuyjQQcQaGg4SIHiO7shBQUm5gbgHRLso5J3VyhJucB2Ve4F3xmgZwKdOXOA1JXWWslOnKF8Egk6vSgEc4WxYeUO2QiBUiUNl15Fqrf97NqkzxrLJsmaZsx8MVC0PMsQ49pSLQPn_VnAnFmSUTaZKxEHMvJQdVVGB1A3jsti3IOhZgUiz0PMCj1o1JdoFCrREHhqkK5ODITQpQlwyoLdaM4dXVxIJ0lYQd0eKZ25SrbligfUS2F1VVMXPJITveQqvIMEO_ITASqwTEWd7cn1m-Y1FKLU8u5JNOR7ZthU4K2CfhY4dKonjpCgpu-n4y1x32fOpT25tZruui3aUylUD9KlCpgoAqPmgqfnKQZhL7WA_LyY6cHAW7Pcn4vzpgkNBDvrDSs9PqzjUKrkYhEV9DAWSE1bhfFTyBhzxJ7nh7Elqq2sEU_kLLjX1KHWdOLWfmTd35fOpZXm1VY58BnwMiTqVUxxXVEsuVbqLa-JkcH6NRMChQSUNmE23QfJAo7RD1DETnbaK-br_YlvMUrCXe63t9jm0NGd01BRhsUA8y-Dgi_-DB4sKSvu7pMccqjVQvpS4hTXp7SHrnbTd3MdXGpM6NmrzWgDuYsxODNALVksMY0mZqV_ge4N7soNMvXSzI3txs6yK6g8h0Osi0pwZo2m4bm_asC057ekLkCaa-Pmv-TkhLDvpE773AOLmvHxstF-t8_O-RnNm3Sc509uPSM_vm6Zlqdc93ys_vEfo_y8_2mwkanNSfoil9O0fb_nCKpXqe78nSb9FoxR5_MPbY_61MTYdjF-0GL2oKXrQTvNRC6iVsdwnPTYRnHcJeN77RuRbUqHUKkdq0YQeYw9vPk7WdwZqDGpLXl6dtqqcRx34zcZuik0aA9iZuxzYm7gb_Ztcb6puWD0pgbtZh4TjDMO2WlY5rgKnjtGHqTLswdVxT8oZQq00z5PwedEsm-tT5uyHyxQnc5BqFEJOD23WX0d1NP3hGP_RQdGTJGNtN0_lNx9gYKZBy2zWuZXCNr5t1ptdIc33qW8lJGaY_PblaeipTbk4tnjKY0-CtkpJM3b0J6RRnaB1OxpatRZlGc1M09Wy6K5N3MfDMDLx-BsbnwgYP1xmKKa4xqTQJuIMEqjVyMIHWrWHq6uWI6_Wi3J2fcI1FSX_0cgcfGM3Ry_X6QnaLl-sPP213Q5h6PdYMYa7fXidTYwrQ5O4SpqYHebtD2OkuwCnV1pxrNSOeNnXYlOYgJ3HV2-PqL1jxde4F-fjr7ZIsPz48XS_J1e3NzfXT9f1H8tvi7tM1wZ0BepNmeFVT5FviN2OW2_Hnz_gI0fPuplcpQyCGIQgAUzBuvdVZ58r71RTsS9iay6MA01nj50zVDDZwj_Dq6W6DwY7cSP2CP3T0PudhQapN12n1HlkzRRUsApYkFRZd67jhyOJ0VW0qoLMqoOIzsp4n1RuoP_lB1FgGksph2jBVmW4T6T85EXV1Gm_IrDoMNcbI6U0Yqv6ZpQDxkz39SYF64NevwIYLwNsOPHTS4ufXD51uN3T1NOTr0NagDL--FZQVQGbGONUIgua3lj_kzUvOhdz2ae-7m7a_bvJsR162TJBbSAGciG1cELk1xXZym0qpiFUtL0gcabsuLA21_CnfkfCwHgnavWzjYCu3y_KSkwg5ydMIWSmOy1ptwkneaQbc0w0UcWVRsgT35WIIiuQlFluYQ5bLa3eilvCv2Qt_5rnsI9XxotMWHL5sQGvhh9w-kasSYuYiEjD-d29Grha_jMGgcCG3aQHCVbtzSxl_8Q7PNezCzb4cI__qqIgi12DygQVb3HMLspDLkypRvdOn77YB9m6L5XKB7vqIZ6eKu_iZp7woBjYnVVUBk59zWz2gp1m054eA7wW5_PD4eJXnsSq01SiQW8Q8HIc8IvW6-hwnCQ9VcXUcd0mqxb7bJ3EQIxbd3SEoGjsOdh_zxdUVMN9J3kOsgWgeyxSkMo2LW5sbtYjkOaiJ0-7piETQ5NWRm-odIvUKu9rBlJCSdFgqxvssS1rpgvap8OHT3TdTwf2uKjgNFR5_f3jK86Z7zHJryjeKvSa5I7U3rDCdm4hNm8SWd3d_qyAJlfYAuZmjE8E6Y5OrdxsfHn77sPwrQlsD7olPPe_j9fKjQ5XoNYFTcD79rl0h-YM7eJSwTaFva-vcL4F9TdY_UhlcU77GbNp2fpube9jtqqrj8uHxH80Vrr_Ob5j14u76_uo3NInVcmuP3219meviIPeaDWi6eFzupKqVwar034G5ZcB9A0U1slUqPEEbIz3BgPbzFOgzS1tdj4gihSFXt1mnYRhFf7m8XMmSe72eUGNo1ccbs_BjnoGOO5krMRdrWY288CoFn45jdNcxWEsF5foE5fS6jnHqYKA8aWhays18yg97SILHEzsFJF7I9GtOkvizqg6AYJWvY3FMzfUR38YZoK6c-JbnM8w_vtbRTlp-pQ7qQGbjIf4sPHdC3_HZmYhFws-PB5BlOZFkeMyneto6K_PkfCvEXh6kkgehN6BSuZ4EGXC9wcPf6qKdAY-LosRTPzeQex3vbHseRYHHfd-arlkUepzaluUFa9u3Qh8qx7l7JivT4hwgPaJ0DTUAT0PgCNXISL1GpFTychZYTGx4emrfJNkaSj5ZiVBYB2fxOQWoW1ApU-rAZ2K5bD6fMhCATZnLZ7BK-I7FyQRJTrJ8c5afSxXWJcDQtYCYKE6drMAjsJxL8YA-K8Gp-flzLFjyui4_szOp8LnU9t-bzX8n">