]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add BLENDPS and PBLENDW support for x86 32 bit
authorAlexandra Hájková <ahajkova@redhat.com>
Fri, 30 Jan 2026 10:06:17 +0000 (05:06 -0500)
committerAlexandra Hájková <ahajkova@redhat.com>
Wed, 4 Feb 2026 18:13:57 +0000 (19:13 +0100)
Add decode_sse4_blend_imm which allows to reuse BLENDPD decoder code
for BLENDPS and PBLENDW. Moved math_BLENDPS_128, math_PBLENDW_128
and math_PBLENDVB_128 from VEX/priv/guest_amd64_toIR.c
to VEX/priv/guest_generic_sse.h to be able to reuse existing amd64 code
for x86 implementation.

Moved test_BLENDPS and test_PBLENDW from none/tests/amd64/sse4-64.c to
none/tests/sse4-common.h and updated the expected tests output to match
the new implementation. Removed vassert(0) in VEX/priv/host_x86_defs.c
in push_word_from_tags in order for test_PBLENDW to be able to pass.

BZ: https://bugs.kde.org/show_bug.cgi?id=515265

NEWS
VEX/priv/guest_amd64_toIR.c
VEX/priv/guest_generic_sse.h
VEX/priv/guest_x86_toIR.c
VEX/priv/host_x86_defs.c
none/tests/amd64/sse4-64.c
none/tests/sse4-common.h
none/tests/x86/sse4-x86.c
none/tests/x86/sse4-x86.stdout.exp

diff --git a/NEWS b/NEWS
index d907a32e484efeed3797311165e3acc44b3a1bfe..81f154526f12154fa553c1e3cfc396b5c0bae093 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -77,6 +77,7 @@ are not entered into bugzilla tend to get forgotten about or ignored.
 514659  ltp 20250930 vs linux 6.18.3 doesn't build
 514762  Many "Bad file descriptor" messages when using --track-fds=yes and
         -d on systems without /proc
+515265 Add SSE4.1 BLENDPS and PBLENDW instruction for x86 32 bit
 
 To see details of a given bug, visit
   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
index 39a88b4e680f37918464ceb4487b7feda2e17b0e..ff31ad4ee387c896027fb33517206d1b3ed2eb34 100644 (file)
@@ -11248,26 +11248,6 @@ static IRTemp math_BLENDPD_256 ( IRTemp sV, IRTemp dV, UInt imm8 )
    return rV;
 }
 
-
-static IRTemp math_BLENDPS_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
-{
-   UShort imm8_perms[16] = { 0x0000, 0x000F, 0x00F0, 0x00FF, 0x0F00,
-                             0x0F0F, 0x0FF0, 0x0FFF, 0xF000, 0xF00F,
-                             0xF0F0, 0xF0FF, 0xFF00, 0xFF0F, 0xFFF0,
-                             0xFFFF };
-   IRTemp imm8_mask = newTemp(Ity_V128);
-   assign( imm8_mask, mkV128( imm8_perms[ (imm8 & 15) ] ) );
-
-   IRTemp res = newTemp(Ity_V128);
-   assign ( res, binop( Iop_OrV128,
-                        binop( Iop_AndV128, mkexpr(sV), 
-                                            mkexpr(imm8_mask) ),
-                        binop( Iop_AndV128, mkexpr(dV),
-                               unop( Iop_NotV128, mkexpr(imm8_mask) ) ) ) );
-   return res;
-}
-
-
 static IRTemp math_BLENDPS_256 ( IRTemp sV, IRTemp dV, UInt imm8 )
 {
    IRTemp sVhi = IRTemp_INVALID, sVlo = IRTemp_INVALID;
@@ -11282,29 +11262,6 @@ static IRTemp math_BLENDPS_256 ( IRTemp sV, IRTemp dV, UInt imm8 )
 }
 
 
-static IRTemp math_PBLENDW_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
-{
-   /* Make w be a 16-bit version of imm8, formed by duplicating each
-      bit in imm8. */
-   Int i;
-   UShort imm16 = 0;
-   for (i = 0; i < 8; i++) {
-      if (imm8 & (1 << i))
-         imm16 |= (3 << (2*i));
-   }
-   IRTemp imm16_mask = newTemp(Ity_V128);
-   assign( imm16_mask, mkV128( imm16 ));
-
-   IRTemp res = newTemp(Ity_V128);
-   assign ( res, binop( Iop_OrV128,
-                        binop( Iop_AndV128, mkexpr(sV), 
-                                            mkexpr(imm16_mask) ),
-                        binop( Iop_AndV128, mkexpr(dV),
-                               unop( Iop_NotV128, mkexpr(imm16_mask) ) ) ) );
-   return res;
-}
-
-
 static IRTemp math_PMULUDQ_128 ( IRTemp sV, IRTemp dV )
 {
    /* This is a really poor translation -- could be improved if
@@ -16674,29 +16631,6 @@ Long dis_ESC_0F__SSE4 ( Bool* decode_OK,
 /*---                                                      ---*/
 /*------------------------------------------------------------*/
 
-static IRTemp math_PBLENDVB_128 ( IRTemp vecE, IRTemp vecG,
-                                  IRTemp vec0/*controlling mask*/,
-                                  UInt gran, IROp opSAR )
-{
-   /* The tricky bit is to convert vec0 into a suitable mask, by
-      copying the most significant bit of each lane into all positions
-      in the lane. */
-   IRTemp sh = newTemp(Ity_I8);
-   assign(sh, mkU8(8 * gran - 1));
-
-   IRTemp mask = newTemp(Ity_V128);
-   assign(mask, binop(opSAR, mkexpr(vec0), mkexpr(sh)));
-
-   IRTemp notmask = newTemp(Ity_V128);
-   assign(notmask, unop(Iop_NotV128, mkexpr(mask)));
-
-   IRTemp res = newTemp(Ity_V128);
-   assign(res,  binop(Iop_OrV128,
-                      binop(Iop_AndV128, mkexpr(vecE), mkexpr(mask)),
-                      binop(Iop_AndV128, mkexpr(vecG), mkexpr(notmask))));
-   return res;
-}
-
 static IRTemp math_PBLENDVB_256 ( IRTemp vecE, IRTemp vecG,
                                   IRTemp vec0/*controlling mask*/,
                                   UInt gran, IROp opSAR128 )
index 28f6079ff8e300e6edd8d4def13ddbe8682efc72..6f000028502a0937f5eec481266677e65ba99802 100644 (file)
@@ -83,6 +83,75 @@ static inline IRTemp math_BLENDPD_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
    return res;
 }
 
+static inline IRTemp math_BLENDPS_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
+{
+   UShort imm8_perms[16] = { 0x0000, 0x000F, 0x00F0, 0x00FF, 0x0F00,
+                             0x0F0F, 0x0FF0, 0x0FFF, 0xF000, 0xF00F,
+                             0xF0F0, 0xF0FF, 0xFF00, 0xFF0F, 0xFFF0,
+                             0xFFFF };
+   IRTemp imm8_mask = newTemp(Ity_V128);
+   assign( imm8_mask, mkV128( imm8_perms[ (imm8 & 15) ] ) );
+
+   IRTemp res = newTemp(Ity_V128);
+   assign ( res, binop( Iop_OrV128,
+                        binop( Iop_AndV128, mkexpr(sV),
+                                            mkexpr(imm8_mask) ),
+                        binop( Iop_AndV128, mkexpr(dV),
+                               unop( Iop_NotV128, mkexpr(imm8_mask) ) ) ) );
+   return res;
+}
+
+/*------------------------------------------------------------*/
+/*---                                                      ---*/
+/*--- Top-level SSE4: dis_ESC_0F38__SSE4                   ---*/
+/*---                                                      ---*/
+/*------------------------------------------------------------*/
+
+static inline IRTemp math_PBLENDVB_128 ( IRTemp vecE, IRTemp vecG,
+                                  IRTemp vec0/*controlling mask*/,
+                                  UInt gran, IROp opSAR )
+{
+   /* The tricky bit is to convert vec0 into a suitable mask, by
+      copying the most significant bit of each lane into all positions
+      in the lane. */
+   IRTemp sh = newTemp(Ity_I8);
+   assign(sh, mkU8(8 * gran - 1));
+
+   IRTemp mask = newTemp(Ity_V128);
+   assign(mask, binop(opSAR, mkexpr(vec0), mkexpr(sh)));
+
+   IRTemp notmask = newTemp(Ity_V128);
+   assign(notmask, unop(Iop_NotV128, mkexpr(mask)));
+
+   IRTemp res = newTemp(Ity_V128);
+   assign(res,  binop(Iop_OrV128,
+                      binop(Iop_AndV128, mkexpr(vecE), mkexpr(mask)),
+                      binop(Iop_AndV128, mkexpr(vecG), mkexpr(notmask))));
+   return res;
+}
+
+static inline IRTemp math_PBLENDW_128 ( IRTemp sV, IRTemp dV, UInt imm8 )
+{
+   /* Make w be a 16-bit version of imm8, formed by duplicating each
+      bit in imm8. */
+   Int i;
+   UShort imm16 = 0;
+   for (i = 0; i < 8; i++) {
+      if (imm8 & (1 << i))
+         imm16 |= (3 << (2*i));
+   }
+   IRTemp imm16_mask = newTemp(Ity_V128);
+   assign( imm16_mask, mkV128( imm16 ));
+
+   IRTemp res = newTemp(Ity_V128);
+   assign ( res, binop( Iop_OrV128,
+                        binop( Iop_AndV128, mkexpr(sV),
+                                            mkexpr(imm16_mask) ),
+                        binop( Iop_AndV128, mkexpr(dV),
+                               unop( Iop_NotV128, mkexpr(imm16_mask) ) ) ) );
+   return res;
+}
+
 #endif /* ndef __VEX_GUEST_GENERIC_SSE_H */
 
 /*---------------------------------------------------------------*/
index 5312fab875076674438661d18f2decab51932d90..166d5afaa7b5de3873fa0287ad4c3275651e7861 100644 (file)
@@ -8053,6 +8053,54 @@ static IRTemp math_BSWAP ( IRTemp t1, IRType ty )
    return IRTemp_INVALID;
 }
 
+/*------------------------------------------------------------*/
+/*--- SSE4.1 BLEND instruction helpers                     ---*/
+/*------------------------------------------------------------*/
+
+/* decode_sse4_blend_imm: Helper for decoding BLEND instructions
+   (BLENDPS, BLENDPD, PBLENDW).  */
+static void decode_sse4_blend_imm (Int* delta_inout, const UChar*  insn,
+                                   const HChar*  insn_name,
+                                   IRTemp (*math_fn)(IRTemp, IRTemp, UInt),
+                                   UChar sorb)
+{
+     Int imm8, alen;
+     UChar modrm;
+     IRTemp addr;
+     HChar dis_buf[50];
+     Int delta = *delta_inout;
+     IRTemp dst_vec = newTemp(Ity_V128);
+     IRTemp src_vec = newTemp(Ity_V128);
+
+     //no REX prefix on 32bit
+     modrm = insn[3];
+     assign( dst_vec, getXMMReg( gregOfRM(modrm) ) );
+
+     if ( epartIsReg(modrm) ) {
+       imm8 = insn[4];
+       assign( src_vec, getXMMReg( eregOfRM(modrm) ) );
+       //skip opcode bytes: +3
+       delta += 1 + 1 + 3;
+       DIP( "%s $%d, %s,%s\n", insn_name, imm8,
+           nameXMMReg( eregOfRM(modrm) ),
+           nameXMMReg( gregOfRM(modrm) ) );
+     } else {
+       //delta + 3 skips the opcode bytes
+       addr = disAMode( &alen, sorb, delta + 3, dis_buf);
+       assign( src_vec, loadLE( Ity_V128, mkexpr(addr) ) );
+       imm8 = insn[3 + alen];
+       //skip opcode bytes: +3
+       delta += alen + 1 + 3;
+       DIP( "%s $%d, %s,%s\n", insn_name,
+           imm8, dis_buf, nameXMMReg( gregOfRM(modrm) ) );
+     }
+
+     putXMMReg( gregOfRM(modrm),
+         mkexpr( math_fn( src_vec, dst_vec, imm8) ) );
+
+     *delta_inout = delta;
+}
+
 /*------------------------------------------------------------*/
 /*--- Disassemble a single instruction                     ---*/
 /*------------------------------------------------------------*/
@@ -13001,54 +13049,21 @@ DisResult disInstr_X86_WRK (
       goto decode_success;
    }
 
-   /* 66 0F 3A 0D /r ib = BLENDPD xmm1, xmm2/m128, imm8
-         Blend Packed Double Precision Floating-Point Values (XMM)
-         - 66 = mandatory prefix (this is what makes sz == 2)
-         - 0F 3A 0D = three opcode bytes
-         - /r = ModR/M byte follows (specifies registers or memory addressing)
-         - ib = immediate byte follows (1 byte immediate value)
-         insn[] array layout:
-
-         insn[0] = 0x0F     (first opcode byte)
-         insn[1] = 0x3A     (second opcode byte)
-         insn[2] = 0x0D     (third opcode byte)
-         insn[3] = ModR/M   (specifies source/dest registers or memory mode)
-
-         Register-to-register form:
-         insn[3] = ModR/M byte (tells us which registers)
-         insn[4] = immediate byte
-         alen var tells us how many bytes the addressing mode consumed after the ModR/M byte
-*/
+   /* 66 0F 3A 0D /r ib = BLENDPD */
    if (sz == 2 && insn[0] == 0x0F && insn[1] == 0x3A && insn[2] == 0x0D) {
-     Int imm8;
-     IRTemp dst_vec = newTemp(Ity_V128);
-     IRTemp src_vec = newTemp(Ity_V128);
-
-     modrm = insn[3];
-     //no REX prefix on 32bit
-     assign( dst_vec, getXMMReg( gregOfRM(modrm) ) );
+     decode_sse4_blend_imm(&delta, insn, "blendpd", math_BLENDPD_128, sorb);
+     goto decode_success;
+   }
 
-     if ( epartIsReg( modrm ) ) {
-       imm8 = insn[4];
-       assign( src_vec, getXMMReg( eregOfRM(modrm) ) );
-       //skip 0F 3A 0D opcode bytes: +3
-       delta += 1+1 + 3;
-       DIP( "blendpd $%d, %s,%s\n", imm8,
-           nameXMMReg( eregOfRM(modrm) ),
-           nameXMMReg( gregOfRM(modrm) ) );
-     } else {
-       //delta+3 skips the 0F 3A 0D bytes
-       addr = disAMode( &alen, sorb, delta + 3, dis_buf);
-       assign( src_vec, loadLE( Ity_V128, mkexpr(addr) ) );
-       imm8 = insn[3+alen];
-       //skip 0F 3A 0D opcode bytes: +3
-       delta += alen+1 + 3;
-       DIP( "blendpd $%d, %s,%s\n",
-           imm8, dis_buf, nameXMMReg( gregOfRM(modrm) ) );
-     }
+   /* 66 0F 3A 0C /r ib = BLENDPS */
+   if (sz == 2 && insn[0] == 0x0F && insn[1] == 0x3A && insn[2] == 0x0C) {
+     decode_sse4_blend_imm(&delta, insn, "blendps", math_BLENDPS_128, sorb);
+     goto decode_success;
+   }
 
-     putXMMReg( gregOfRM(modrm),
-         mkexpr( math_BLENDPD_128( src_vec, dst_vec, imm8) ) );
+   /* 66 0F 3A 0E /r ib = PBLENDW */
+   if (sz == 2 && insn[0] == 0x0F && insn[1] == 0x3A && insn[2] == 0x0E) {
+     decode_sse4_blend_imm(&delta, insn, "pblendw", math_PBLENDW_128, sorb);
      goto decode_success;
    }
 
index 5b50d8a5366ae7bce9d10bb275b5c2504a550d26..5ef43eb95a929f930d63d8d106c6f915191a7bfd 100644 (file)
@@ -2102,7 +2102,6 @@ static UChar* push_word_from_tags ( UChar* p, UShort tags )
       *p++ = 0x6A;
       *p++ = 0xFF;
    } else {
-      vassert(0); /* awaiting test case */
       w = 0;
       if (tags & 1) w |= 0x000000FF;
       if (tags & 2) w |= 0x0000FF00;
index 9ba5162fd9cda3eee0e089caf60733ea7f4681e7..ca100e1efcfe9794cc4ce31443db8f1c53c94a59 100644 (file)
@@ -152,31 +152,6 @@ void set_sse_roundingmode ( UInt m )
 
 
 
-void test_BLENDPS ( void )
-{
-   V128 src, dst;
-   Int i;
-   for (i = 0; i < 10; i++) {
-      randV128(&src);
-      randV128(&dst);
-      DO_imm_mandr_r("blendps", 0, src, dst);
-      DO_imm_mandr_r("blendps", 1, src, dst);
-      DO_imm_mandr_r("blendps", 2, src, dst);
-      DO_imm_mandr_r("blendps", 3, src, dst);
-      DO_imm_mandr_r("blendps", 4, src, dst);
-      DO_imm_mandr_r("blendps", 5, src, dst);
-      DO_imm_mandr_r("blendps", 6, src, dst);
-      DO_imm_mandr_r("blendps", 7, src, dst);
-      DO_imm_mandr_r("blendps", 8, src, dst);
-      DO_imm_mandr_r("blendps", 9, src, dst);
-      DO_imm_mandr_r("blendps", 10, src, dst);
-      DO_imm_mandr_r("blendps", 11, src, dst);
-      DO_imm_mandr_r("blendps", 12, src, dst);
-      DO_imm_mandr_r("blendps", 13, src, dst);
-      DO_imm_mandr_r("blendps", 14, src, dst);
-      DO_imm_mandr_r("blendps", 15, src, dst);
-   }
-}
 
 void test_DPPD ( void )
 {
@@ -1029,271 +1004,6 @@ void test_PACKUSDW ( void )
    }
 }
 
-void test_PBLENDW ( void )
-{
-   V128 src, dst;
-   randV128(&src);
-   randV128(&dst);
-   {
-      DO_imm_mandr_r("pblendw", 0, src, dst);
-      DO_imm_mandr_r("pblendw", 1, src, dst);
-      DO_imm_mandr_r("pblendw", 2, src, dst);
-      DO_imm_mandr_r("pblendw", 3, src, dst);
-      DO_imm_mandr_r("pblendw", 4, src, dst);
-      DO_imm_mandr_r("pblendw", 5, src, dst);
-      DO_imm_mandr_r("pblendw", 6, src, dst);
-      DO_imm_mandr_r("pblendw", 7, src, dst);
-      DO_imm_mandr_r("pblendw", 8, src, dst);
-      DO_imm_mandr_r("pblendw", 9, src, dst);
-      DO_imm_mandr_r("pblendw", 10, src, dst);
-      DO_imm_mandr_r("pblendw", 11, src, dst);
-      DO_imm_mandr_r("pblendw", 12, src, dst);
-      DO_imm_mandr_r("pblendw", 13, src, dst);
-      DO_imm_mandr_r("pblendw", 14, src, dst);
-      DO_imm_mandr_r("pblendw", 15, src, dst);
-      DO_imm_mandr_r("pblendw", 16, src, dst);
-      DO_imm_mandr_r("pblendw", 17, src, dst);
-      DO_imm_mandr_r("pblendw", 18, src, dst);
-      DO_imm_mandr_r("pblendw", 19, src, dst);
-      DO_imm_mandr_r("pblendw", 20, src, dst);
-      DO_imm_mandr_r("pblendw", 21, src, dst);
-      DO_imm_mandr_r("pblendw", 22, src, dst);
-      DO_imm_mandr_r("pblendw", 23, src, dst);
-      DO_imm_mandr_r("pblendw", 24, src, dst);
-      DO_imm_mandr_r("pblendw", 25, src, dst);
-      DO_imm_mandr_r("pblendw", 26, src, dst);
-      DO_imm_mandr_r("pblendw", 27, src, dst);
-      DO_imm_mandr_r("pblendw", 28, src, dst);
-      DO_imm_mandr_r("pblendw", 29, src, dst);
-      DO_imm_mandr_r("pblendw", 30, src, dst);
-      DO_imm_mandr_r("pblendw", 31, src, dst);
-      DO_imm_mandr_r("pblendw", 32, src, dst);
-      DO_imm_mandr_r("pblendw", 33, src, dst);
-      DO_imm_mandr_r("pblendw", 34, src, dst);
-      DO_imm_mandr_r("pblendw", 35, src, dst);
-      DO_imm_mandr_r("pblendw", 36, src, dst);
-      DO_imm_mandr_r("pblendw", 37, src, dst);
-      DO_imm_mandr_r("pblendw", 38, src, dst);
-      DO_imm_mandr_r("pblendw", 39, src, dst);
-      DO_imm_mandr_r("pblendw", 40, src, dst);
-      DO_imm_mandr_r("pblendw", 41, src, dst);
-      DO_imm_mandr_r("pblendw", 42, src, dst);
-      DO_imm_mandr_r("pblendw", 43, src, dst);
-      DO_imm_mandr_r("pblendw", 44, src, dst);
-      DO_imm_mandr_r("pblendw", 45, src, dst);
-      DO_imm_mandr_r("pblendw", 46, src, dst);
-      DO_imm_mandr_r("pblendw", 47, src, dst);
-      DO_imm_mandr_r("pblendw", 48, src, dst);
-      DO_imm_mandr_r("pblendw", 49, src, dst);
-      DO_imm_mandr_r("pblendw", 50, src, dst);
-      DO_imm_mandr_r("pblendw", 51, src, dst);
-      DO_imm_mandr_r("pblendw", 52, src, dst);
-      DO_imm_mandr_r("pblendw", 53, src, dst);
-      DO_imm_mandr_r("pblendw", 54, src, dst);
-      DO_imm_mandr_r("pblendw", 55, src, dst);
-      DO_imm_mandr_r("pblendw", 56, src, dst);
-      DO_imm_mandr_r("pblendw", 57, src, dst);
-      DO_imm_mandr_r("pblendw", 58, src, dst);
-      DO_imm_mandr_r("pblendw", 59, src, dst);
-      DO_imm_mandr_r("pblendw", 60, src, dst);
-      DO_imm_mandr_r("pblendw", 61, src, dst);
-      DO_imm_mandr_r("pblendw", 62, src, dst);
-      DO_imm_mandr_r("pblendw", 63, src, dst);
-      DO_imm_mandr_r("pblendw", 64, src, dst);
-      DO_imm_mandr_r("pblendw", 65, src, dst);
-      DO_imm_mandr_r("pblendw", 66, src, dst);
-      DO_imm_mandr_r("pblendw", 67, src, dst);
-      DO_imm_mandr_r("pblendw", 68, src, dst);
-      DO_imm_mandr_r("pblendw", 69, src, dst);
-      DO_imm_mandr_r("pblendw", 70, src, dst);
-      DO_imm_mandr_r("pblendw", 71, src, dst);
-      DO_imm_mandr_r("pblendw", 72, src, dst);
-      DO_imm_mandr_r("pblendw", 73, src, dst);
-      DO_imm_mandr_r("pblendw", 74, src, dst);
-      DO_imm_mandr_r("pblendw", 75, src, dst);
-      DO_imm_mandr_r("pblendw", 76, src, dst);
-      DO_imm_mandr_r("pblendw", 77, src, dst);
-      DO_imm_mandr_r("pblendw", 78, src, dst);
-      DO_imm_mandr_r("pblendw", 79, src, dst);
-      DO_imm_mandr_r("pblendw", 80, src, dst);
-      DO_imm_mandr_r("pblendw", 81, src, dst);
-      DO_imm_mandr_r("pblendw", 82, src, dst);
-      DO_imm_mandr_r("pblendw", 83, src, dst);
-      DO_imm_mandr_r("pblendw", 84, src, dst);
-      DO_imm_mandr_r("pblendw", 85, src, dst);
-      DO_imm_mandr_r("pblendw", 86, src, dst);
-      DO_imm_mandr_r("pblendw", 87, src, dst);
-      DO_imm_mandr_r("pblendw", 88, src, dst);
-      DO_imm_mandr_r("pblendw", 89, src, dst);
-      DO_imm_mandr_r("pblendw", 90, src, dst);
-      DO_imm_mandr_r("pblendw", 91, src, dst);
-      DO_imm_mandr_r("pblendw", 92, src, dst);
-      DO_imm_mandr_r("pblendw", 93, src, dst);
-      DO_imm_mandr_r("pblendw", 94, src, dst);
-      DO_imm_mandr_r("pblendw", 95, src, dst);
-      DO_imm_mandr_r("pblendw", 96, src, dst);
-      DO_imm_mandr_r("pblendw", 97, src, dst);
-      DO_imm_mandr_r("pblendw", 98, src, dst);
-      DO_imm_mandr_r("pblendw", 99, src, dst);
-      DO_imm_mandr_r("pblendw", 100, src, dst);
-      DO_imm_mandr_r("pblendw", 101, src, dst);
-      DO_imm_mandr_r("pblendw", 102, src, dst);
-      DO_imm_mandr_r("pblendw", 103, src, dst);
-      DO_imm_mandr_r("pblendw", 104, src, dst);
-      DO_imm_mandr_r("pblendw", 105, src, dst);
-      DO_imm_mandr_r("pblendw", 106, src, dst);
-      DO_imm_mandr_r("pblendw", 107, src, dst);
-      DO_imm_mandr_r("pblendw", 108, src, dst);
-      DO_imm_mandr_r("pblendw", 109, src, dst);
-      DO_imm_mandr_r("pblendw", 110, src, dst);
-      DO_imm_mandr_r("pblendw", 111, src, dst);
-      DO_imm_mandr_r("pblendw", 112, src, dst);
-      DO_imm_mandr_r("pblendw", 113, src, dst);
-      DO_imm_mandr_r("pblendw", 114, src, dst);
-      DO_imm_mandr_r("pblendw", 115, src, dst);
-      DO_imm_mandr_r("pblendw", 116, src, dst);
-      DO_imm_mandr_r("pblendw", 117, src, dst);
-      DO_imm_mandr_r("pblendw", 118, src, dst);
-      DO_imm_mandr_r("pblendw", 119, src, dst);
-      DO_imm_mandr_r("pblendw", 120, src, dst);
-      DO_imm_mandr_r("pblendw", 121, src, dst);
-      DO_imm_mandr_r("pblendw", 122, src, dst);
-      DO_imm_mandr_r("pblendw", 123, src, dst);
-      DO_imm_mandr_r("pblendw", 124, src, dst);
-      DO_imm_mandr_r("pblendw", 125, src, dst);
-      DO_imm_mandr_r("pblendw", 126, src, dst);
-      DO_imm_mandr_r("pblendw", 127, src, dst);
-      DO_imm_mandr_r("pblendw", 128, src, dst);
-      DO_imm_mandr_r("pblendw", 129, src, dst);
-      DO_imm_mandr_r("pblendw", 130, src, dst);
-      DO_imm_mandr_r("pblendw", 131, src, dst);
-      DO_imm_mandr_r("pblendw", 132, src, dst);
-      DO_imm_mandr_r("pblendw", 133, src, dst);
-      DO_imm_mandr_r("pblendw", 134, src, dst);
-      DO_imm_mandr_r("pblendw", 135, src, dst);
-      DO_imm_mandr_r("pblendw", 136, src, dst);
-      DO_imm_mandr_r("pblendw", 137, src, dst);
-      DO_imm_mandr_r("pblendw", 138, src, dst);
-      DO_imm_mandr_r("pblendw", 139, src, dst);
-      DO_imm_mandr_r("pblendw", 140, src, dst);
-      DO_imm_mandr_r("pblendw", 141, src, dst);
-      DO_imm_mandr_r("pblendw", 142, src, dst);
-      DO_imm_mandr_r("pblendw", 143, src, dst);
-      DO_imm_mandr_r("pblendw", 144, src, dst);
-      DO_imm_mandr_r("pblendw", 145, src, dst);
-      DO_imm_mandr_r("pblendw", 146, src, dst);
-      DO_imm_mandr_r("pblendw", 147, src, dst);
-      DO_imm_mandr_r("pblendw", 148, src, dst);
-      DO_imm_mandr_r("pblendw", 149, src, dst);
-      DO_imm_mandr_r("pblendw", 150, src, dst);
-      DO_imm_mandr_r("pblendw", 151, src, dst);
-      DO_imm_mandr_r("pblendw", 152, src, dst);
-      DO_imm_mandr_r("pblendw", 153, src, dst);
-      DO_imm_mandr_r("pblendw", 154, src, dst);
-      DO_imm_mandr_r("pblendw", 155, src, dst);
-      DO_imm_mandr_r("pblendw", 156, src, dst);
-      DO_imm_mandr_r("pblendw", 157, src, dst);
-      DO_imm_mandr_r("pblendw", 158, src, dst);
-      DO_imm_mandr_r("pblendw", 159, src, dst);
-      DO_imm_mandr_r("pblendw", 160, src, dst);
-      DO_imm_mandr_r("pblendw", 161, src, dst);
-      DO_imm_mandr_r("pblendw", 162, src, dst);
-      DO_imm_mandr_r("pblendw", 163, src, dst);
-      DO_imm_mandr_r("pblendw", 164, src, dst);
-      DO_imm_mandr_r("pblendw", 165, src, dst);
-      DO_imm_mandr_r("pblendw", 166, src, dst);
-      DO_imm_mandr_r("pblendw", 167, src, dst);
-      DO_imm_mandr_r("pblendw", 168, src, dst);
-      DO_imm_mandr_r("pblendw", 169, src, dst);
-      DO_imm_mandr_r("pblendw", 170, src, dst);
-      DO_imm_mandr_r("pblendw", 171, src, dst);
-      DO_imm_mandr_r("pblendw", 172, src, dst);
-      DO_imm_mandr_r("pblendw", 173, src, dst);
-      DO_imm_mandr_r("pblendw", 174, src, dst);
-      DO_imm_mandr_r("pblendw", 175, src, dst);
-      DO_imm_mandr_r("pblendw", 176, src, dst);
-      DO_imm_mandr_r("pblendw", 177, src, dst);
-      DO_imm_mandr_r("pblendw", 178, src, dst);
-      DO_imm_mandr_r("pblendw", 179, src, dst);
-      DO_imm_mandr_r("pblendw", 180, src, dst);
-      DO_imm_mandr_r("pblendw", 181, src, dst);
-      DO_imm_mandr_r("pblendw", 182, src, dst);
-      DO_imm_mandr_r("pblendw", 183, src, dst);
-      DO_imm_mandr_r("pblendw", 184, src, dst);
-      DO_imm_mandr_r("pblendw", 185, src, dst);
-      DO_imm_mandr_r("pblendw", 186, src, dst);
-      DO_imm_mandr_r("pblendw", 187, src, dst);
-      DO_imm_mandr_r("pblendw", 188, src, dst);
-      DO_imm_mandr_r("pblendw", 189, src, dst);
-      DO_imm_mandr_r("pblendw", 190, src, dst);
-      DO_imm_mandr_r("pblendw", 191, src, dst);
-      DO_imm_mandr_r("pblendw", 192, src, dst);
-      DO_imm_mandr_r("pblendw", 193, src, dst);
-      DO_imm_mandr_r("pblendw", 194, src, dst);
-      DO_imm_mandr_r("pblendw", 195, src, dst);
-      DO_imm_mandr_r("pblendw", 196, src, dst);
-      DO_imm_mandr_r("pblendw", 197, src, dst);
-      DO_imm_mandr_r("pblendw", 198, src, dst);
-      DO_imm_mandr_r("pblendw", 199, src, dst);
-      DO_imm_mandr_r("pblendw", 200, src, dst);
-      DO_imm_mandr_r("pblendw", 201, src, dst);
-      DO_imm_mandr_r("pblendw", 202, src, dst);
-      DO_imm_mandr_r("pblendw", 203, src, dst);
-      DO_imm_mandr_r("pblendw", 204, src, dst);
-      DO_imm_mandr_r("pblendw", 205, src, dst);
-      DO_imm_mandr_r("pblendw", 206, src, dst);
-      DO_imm_mandr_r("pblendw", 207, src, dst);
-      DO_imm_mandr_r("pblendw", 208, src, dst);
-      DO_imm_mandr_r("pblendw", 209, src, dst);
-      DO_imm_mandr_r("pblendw", 210, src, dst);
-      DO_imm_mandr_r("pblendw", 211, src, dst);
-      DO_imm_mandr_r("pblendw", 212, src, dst);
-      DO_imm_mandr_r("pblendw", 213, src, dst);
-      DO_imm_mandr_r("pblendw", 214, src, dst);
-      DO_imm_mandr_r("pblendw", 215, src, dst);
-      DO_imm_mandr_r("pblendw", 216, src, dst);
-      DO_imm_mandr_r("pblendw", 217, src, dst);
-      DO_imm_mandr_r("pblendw", 218, src, dst);
-      DO_imm_mandr_r("pblendw", 219, src, dst);
-      DO_imm_mandr_r("pblendw", 220, src, dst);
-      DO_imm_mandr_r("pblendw", 221, src, dst);
-      DO_imm_mandr_r("pblendw", 222, src, dst);
-      DO_imm_mandr_r("pblendw", 223, src, dst);
-      DO_imm_mandr_r("pblendw", 224, src, dst);
-      DO_imm_mandr_r("pblendw", 225, src, dst);
-      DO_imm_mandr_r("pblendw", 226, src, dst);
-      DO_imm_mandr_r("pblendw", 227, src, dst);
-      DO_imm_mandr_r("pblendw", 228, src, dst);
-      DO_imm_mandr_r("pblendw", 229, src, dst);
-      DO_imm_mandr_r("pblendw", 230, src, dst);
-      DO_imm_mandr_r("pblendw", 231, src, dst);
-      DO_imm_mandr_r("pblendw", 232, src, dst);
-      DO_imm_mandr_r("pblendw", 233, src, dst);
-      DO_imm_mandr_r("pblendw", 234, src, dst);
-      DO_imm_mandr_r("pblendw", 235, src, dst);
-      DO_imm_mandr_r("pblendw", 236, src, dst);
-      DO_imm_mandr_r("pblendw", 237, src, dst);
-      DO_imm_mandr_r("pblendw", 238, src, dst);
-      DO_imm_mandr_r("pblendw", 239, src, dst);
-      DO_imm_mandr_r("pblendw", 240, src, dst);
-      DO_imm_mandr_r("pblendw", 241, src, dst);
-      DO_imm_mandr_r("pblendw", 242, src, dst);
-      DO_imm_mandr_r("pblendw", 243, src, dst);
-      DO_imm_mandr_r("pblendw", 244, src, dst);
-      DO_imm_mandr_r("pblendw", 245, src, dst);
-      DO_imm_mandr_r("pblendw", 246, src, dst);
-      DO_imm_mandr_r("pblendw", 247, src, dst);
-      DO_imm_mandr_r("pblendw", 248, src, dst);
-      DO_imm_mandr_r("pblendw", 249, src, dst);
-      DO_imm_mandr_r("pblendw", 250, src, dst);
-      DO_imm_mandr_r("pblendw", 251, src, dst);
-      DO_imm_mandr_r("pblendw", 252, src, dst);
-      DO_imm_mandr_r("pblendw", 253, src, dst);
-      DO_imm_mandr_r("pblendw", 254, src, dst);
-      DO_imm_mandr_r("pblendw", 255, src, dst);
-   }
-}
-
 
 void test_PCMPEQQ ( void )
 {
index 62c112548eee6cbbcf59192340213bb853f83975..a83ee6811049998feca5976672b0740719f317fe 100644 (file)
@@ -365,4 +365,295 @@ static inline void test_BLENDPD ( void )
    }
 }
 
+static inline void test_BLENDPS ( void )
+{
+   V128 src, dst;
+   Int i;
+   for (i = 0; i < 10; i++) {
+      randV128(&src);
+      randV128(&dst);
+      DO_imm_mandr_r("blendps", 0, src, dst);
+      DO_imm_mandr_r("blendps", 1, src, dst);
+      DO_imm_mandr_r("blendps", 2, src, dst);
+      DO_imm_mandr_r("blendps", 3, src, dst);
+      DO_imm_mandr_r("blendps", 4, src, dst);
+      DO_imm_mandr_r("blendps", 5, src, dst);
+      DO_imm_mandr_r("blendps", 6, src, dst);
+      DO_imm_mandr_r("blendps", 7, src, dst);
+      DO_imm_mandr_r("blendps", 8, src, dst);
+      DO_imm_mandr_r("blendps", 9, src, dst);
+      DO_imm_mandr_r("blendps", 10, src, dst);
+      DO_imm_mandr_r("blendps", 11, src, dst);
+      DO_imm_mandr_r("blendps", 12, src, dst);
+      DO_imm_mandr_r("blendps", 13, src, dst);
+      DO_imm_mandr_r("blendps", 14, src, dst);
+      DO_imm_mandr_r("blendps", 15, src, dst);
+   }
+}
+
+static inline void test_PBLENDW ( void )
+{
+   V128 src, dst;
+   randV128(&src);
+   randV128(&dst);
+   {
+      DO_imm_mandr_r("pblendw", 0, src, dst);
+      DO_imm_mandr_r("pblendw", 1, src, dst);
+      DO_imm_mandr_r("pblendw", 2, src, dst);
+      DO_imm_mandr_r("pblendw", 3, src, dst);
+      DO_imm_mandr_r("pblendw", 4, src, dst);
+      DO_imm_mandr_r("pblendw", 5, src, dst);
+      DO_imm_mandr_r("pblendw", 6, src, dst);
+      DO_imm_mandr_r("pblendw", 7, src, dst);
+      DO_imm_mandr_r("pblendw", 8, src, dst);
+      DO_imm_mandr_r("pblendw", 9, src, dst);
+      DO_imm_mandr_r("pblendw", 10, src, dst);
+      DO_imm_mandr_r("pblendw", 11, src, dst);
+      DO_imm_mandr_r("pblendw", 12, src, dst);
+      DO_imm_mandr_r("pblendw", 13, src, dst);
+      DO_imm_mandr_r("pblendw", 14, src, dst);
+      DO_imm_mandr_r("pblendw", 15, src, dst);
+      DO_imm_mandr_r("pblendw", 16, src, dst);
+      DO_imm_mandr_r("pblendw", 17, src, dst);
+      DO_imm_mandr_r("pblendw", 18, src, dst);
+      DO_imm_mandr_r("pblendw", 19, src, dst);
+      DO_imm_mandr_r("pblendw", 20, src, dst);
+      DO_imm_mandr_r("pblendw", 21, src, dst);
+      DO_imm_mandr_r("pblendw", 22, src, dst);
+      DO_imm_mandr_r("pblendw", 23, src, dst);
+      DO_imm_mandr_r("pblendw", 24, src, dst);
+      DO_imm_mandr_r("pblendw", 25, src, dst);
+      DO_imm_mandr_r("pblendw", 26, src, dst);
+      DO_imm_mandr_r("pblendw", 27, src, dst);
+      DO_imm_mandr_r("pblendw", 28, src, dst);
+      DO_imm_mandr_r("pblendw", 29, src, dst);
+      DO_imm_mandr_r("pblendw", 30, src, dst);
+      DO_imm_mandr_r("pblendw", 31, src, dst);
+      DO_imm_mandr_r("pblendw", 32, src, dst);
+      DO_imm_mandr_r("pblendw", 33, src, dst);
+      DO_imm_mandr_r("pblendw", 34, src, dst);
+      DO_imm_mandr_r("pblendw", 35, src, dst);
+      DO_imm_mandr_r("pblendw", 36, src, dst);
+      DO_imm_mandr_r("pblendw", 37, src, dst);
+      DO_imm_mandr_r("pblendw", 38, src, dst);
+      DO_imm_mandr_r("pblendw", 39, src, dst);
+      DO_imm_mandr_r("pblendw", 40, src, dst);
+      DO_imm_mandr_r("pblendw", 41, src, dst);
+      DO_imm_mandr_r("pblendw", 42, src, dst);
+      DO_imm_mandr_r("pblendw", 43, src, dst);
+      DO_imm_mandr_r("pblendw", 44, src, dst);
+      DO_imm_mandr_r("pblendw", 45, src, dst);
+      DO_imm_mandr_r("pblendw", 46, src, dst);
+      DO_imm_mandr_r("pblendw", 47, src, dst);
+      DO_imm_mandr_r("pblendw", 48, src, dst);
+      DO_imm_mandr_r("pblendw", 49, src, dst);
+      DO_imm_mandr_r("pblendw", 50, src, dst);
+      DO_imm_mandr_r("pblendw", 51, src, dst);
+      DO_imm_mandr_r("pblendw", 52, src, dst);
+      DO_imm_mandr_r("pblendw", 53, src, dst);
+      DO_imm_mandr_r("pblendw", 54, src, dst);
+      DO_imm_mandr_r("pblendw", 55, src, dst);
+      DO_imm_mandr_r("pblendw", 56, src, dst);
+      DO_imm_mandr_r("pblendw", 57, src, dst);
+      DO_imm_mandr_r("pblendw", 58, src, dst);
+      DO_imm_mandr_r("pblendw", 59, src, dst);
+      DO_imm_mandr_r("pblendw", 60, src, dst);
+      DO_imm_mandr_r("pblendw", 61, src, dst);
+      DO_imm_mandr_r("pblendw", 62, src, dst);
+      DO_imm_mandr_r("pblendw", 63, src, dst);
+      DO_imm_mandr_r("pblendw", 64, src, dst);
+      DO_imm_mandr_r("pblendw", 65, src, dst);
+      DO_imm_mandr_r("pblendw", 66, src, dst);
+      DO_imm_mandr_r("pblendw", 67, src, dst);
+      DO_imm_mandr_r("pblendw", 68, src, dst);
+      DO_imm_mandr_r("pblendw", 69, src, dst);
+      DO_imm_mandr_r("pblendw", 70, src, dst);
+      DO_imm_mandr_r("pblendw", 71, src, dst);
+      DO_imm_mandr_r("pblendw", 72, src, dst);
+      DO_imm_mandr_r("pblendw", 73, src, dst);
+      DO_imm_mandr_r("pblendw", 74, src, dst);
+      DO_imm_mandr_r("pblendw", 75, src, dst);
+      DO_imm_mandr_r("pblendw", 76, src, dst);
+      DO_imm_mandr_r("pblendw", 77, src, dst);
+      DO_imm_mandr_r("pblendw", 78, src, dst);
+      DO_imm_mandr_r("pblendw", 79, src, dst);
+      DO_imm_mandr_r("pblendw", 80, src, dst);
+      DO_imm_mandr_r("pblendw", 81, src, dst);
+      DO_imm_mandr_r("pblendw", 82, src, dst);
+      DO_imm_mandr_r("pblendw", 83, src, dst);
+      DO_imm_mandr_r("pblendw", 84, src, dst);
+      DO_imm_mandr_r("pblendw", 85, src, dst);
+      DO_imm_mandr_r("pblendw", 86, src, dst);
+      DO_imm_mandr_r("pblendw", 87, src, dst);
+      DO_imm_mandr_r("pblendw", 88, src, dst);
+      DO_imm_mandr_r("pblendw", 89, src, dst);
+      DO_imm_mandr_r("pblendw", 90, src, dst);
+      DO_imm_mandr_r("pblendw", 91, src, dst);
+      DO_imm_mandr_r("pblendw", 92, src, dst);
+      DO_imm_mandr_r("pblendw", 93, src, dst);
+      DO_imm_mandr_r("pblendw", 94, src, dst);
+      DO_imm_mandr_r("pblendw", 95, src, dst);
+      DO_imm_mandr_r("pblendw", 96, src, dst);
+      DO_imm_mandr_r("pblendw", 97, src, dst);
+      DO_imm_mandr_r("pblendw", 98, src, dst);
+      DO_imm_mandr_r("pblendw", 99, src, dst);
+      DO_imm_mandr_r("pblendw", 100, src, dst);
+      DO_imm_mandr_r("pblendw", 101, src, dst);
+      DO_imm_mandr_r("pblendw", 102, src, dst);
+      DO_imm_mandr_r("pblendw", 103, src, dst);
+      DO_imm_mandr_r("pblendw", 104, src, dst);
+      DO_imm_mandr_r("pblendw", 105, src, dst);
+      DO_imm_mandr_r("pblendw", 106, src, dst);
+      DO_imm_mandr_r("pblendw", 107, src, dst);
+      DO_imm_mandr_r("pblendw", 108, src, dst);
+      DO_imm_mandr_r("pblendw", 109, src, dst);
+      DO_imm_mandr_r("pblendw", 110, src, dst);
+      DO_imm_mandr_r("pblendw", 111, src, dst);
+      DO_imm_mandr_r("pblendw", 112, src, dst);
+      DO_imm_mandr_r("pblendw", 113, src, dst);
+      DO_imm_mandr_r("pblendw", 114, src, dst);
+      DO_imm_mandr_r("pblendw", 115, src, dst);
+      DO_imm_mandr_r("pblendw", 116, src, dst);
+      DO_imm_mandr_r("pblendw", 117, src, dst);
+      DO_imm_mandr_r("pblendw", 118, src, dst);
+      DO_imm_mandr_r("pblendw", 119, src, dst);
+      DO_imm_mandr_r("pblendw", 120, src, dst);
+      DO_imm_mandr_r("pblendw", 121, src, dst);
+      DO_imm_mandr_r("pblendw", 122, src, dst);
+      DO_imm_mandr_r("pblendw", 123, src, dst);
+      DO_imm_mandr_r("pblendw", 124, src, dst);
+      DO_imm_mandr_r("pblendw", 125, src, dst);
+      DO_imm_mandr_r("pblendw", 126, src, dst);
+      DO_imm_mandr_r("pblendw", 127, src, dst);
+      DO_imm_mandr_r("pblendw", 128, src, dst);
+      DO_imm_mandr_r("pblendw", 129, src, dst);
+      DO_imm_mandr_r("pblendw", 130, src, dst);
+      DO_imm_mandr_r("pblendw", 131, src, dst);
+      DO_imm_mandr_r("pblendw", 132, src, dst);
+      DO_imm_mandr_r("pblendw", 133, src, dst);
+      DO_imm_mandr_r("pblendw", 134, src, dst);
+      DO_imm_mandr_r("pblendw", 135, src, dst);
+      DO_imm_mandr_r("pblendw", 136, src, dst);
+      DO_imm_mandr_r("pblendw", 137, src, dst);
+      DO_imm_mandr_r("pblendw", 138, src, dst);
+      DO_imm_mandr_r("pblendw", 139, src, dst);
+      DO_imm_mandr_r("pblendw", 140, src, dst);
+      DO_imm_mandr_r("pblendw", 141, src, dst);
+      DO_imm_mandr_r("pblendw", 142, src, dst);
+      DO_imm_mandr_r("pblendw", 143, src, dst);
+      DO_imm_mandr_r("pblendw", 144, src, dst);
+      DO_imm_mandr_r("pblendw", 145, src, dst);
+      DO_imm_mandr_r("pblendw", 146, src, dst);
+      DO_imm_mandr_r("pblendw", 147, src, dst);
+      DO_imm_mandr_r("pblendw", 148, src, dst);
+      DO_imm_mandr_r("pblendw", 149, src, dst);
+      DO_imm_mandr_r("pblendw", 150, src, dst);
+      DO_imm_mandr_r("pblendw", 151, src, dst);
+      DO_imm_mandr_r("pblendw", 152, src, dst);
+      DO_imm_mandr_r("pblendw", 153, src, dst);
+      DO_imm_mandr_r("pblendw", 154, src, dst);
+      DO_imm_mandr_r("pblendw", 155, src, dst);
+      DO_imm_mandr_r("pblendw", 156, src, dst);
+      DO_imm_mandr_r("pblendw", 157, src, dst);
+      DO_imm_mandr_r("pblendw", 158, src, dst);
+      DO_imm_mandr_r("pblendw", 159, src, dst);
+      DO_imm_mandr_r("pblendw", 160, src, dst);
+      DO_imm_mandr_r("pblendw", 161, src, dst);
+      DO_imm_mandr_r("pblendw", 162, src, dst);
+      DO_imm_mandr_r("pblendw", 163, src, dst);
+      DO_imm_mandr_r("pblendw", 164, src, dst);
+      DO_imm_mandr_r("pblendw", 165, src, dst);
+      DO_imm_mandr_r("pblendw", 166, src, dst);
+      DO_imm_mandr_r("pblendw", 167, src, dst);
+      DO_imm_mandr_r("pblendw", 168, src, dst);
+      DO_imm_mandr_r("pblendw", 169, src, dst);
+      DO_imm_mandr_r("pblendw", 170, src, dst);
+      DO_imm_mandr_r("pblendw", 171, src, dst);
+      DO_imm_mandr_r("pblendw", 172, src, dst);
+      DO_imm_mandr_r("pblendw", 173, src, dst);
+      DO_imm_mandr_r("pblendw", 174, src, dst);
+      DO_imm_mandr_r("pblendw", 175, src, dst);
+      DO_imm_mandr_r("pblendw", 176, src, dst);
+      DO_imm_mandr_r("pblendw", 177, src, dst);
+      DO_imm_mandr_r("pblendw", 178, src, dst);
+      DO_imm_mandr_r("pblendw", 179, src, dst);
+      DO_imm_mandr_r("pblendw", 180, src, dst);
+      DO_imm_mandr_r("pblendw", 181, src, dst);
+      DO_imm_mandr_r("pblendw", 182, src, dst);
+      DO_imm_mandr_r("pblendw", 183, src, dst);
+      DO_imm_mandr_r("pblendw", 184, src, dst);
+      DO_imm_mandr_r("pblendw", 185, src, dst);
+      DO_imm_mandr_r("pblendw", 186, src, dst);
+      DO_imm_mandr_r("pblendw", 187, src, dst);
+      DO_imm_mandr_r("pblendw", 188, src, dst);
+      DO_imm_mandr_r("pblendw", 189, src, dst);
+      DO_imm_mandr_r("pblendw", 190, src, dst);
+      DO_imm_mandr_r("pblendw", 191, src, dst);
+      DO_imm_mandr_r("pblendw", 192, src, dst);
+      DO_imm_mandr_r("pblendw", 193, src, dst);
+      DO_imm_mandr_r("pblendw", 194, src, dst);
+      DO_imm_mandr_r("pblendw", 195, src, dst);
+      DO_imm_mandr_r("pblendw", 196, src, dst);
+      DO_imm_mandr_r("pblendw", 197, src, dst);
+      DO_imm_mandr_r("pblendw", 198, src, dst);
+      DO_imm_mandr_r("pblendw", 199, src, dst);
+      DO_imm_mandr_r("pblendw", 200, src, dst);
+      DO_imm_mandr_r("pblendw", 201, src, dst);
+      DO_imm_mandr_r("pblendw", 202, src, dst);
+      DO_imm_mandr_r("pblendw", 203, src, dst);
+      DO_imm_mandr_r("pblendw", 204, src, dst);
+      DO_imm_mandr_r("pblendw", 205, src, dst);
+      DO_imm_mandr_r("pblendw", 206, src, dst);
+      DO_imm_mandr_r("pblendw", 207, src, dst);
+      DO_imm_mandr_r("pblendw", 208, src, dst);
+      DO_imm_mandr_r("pblendw", 209, src, dst);
+      DO_imm_mandr_r("pblendw", 210, src, dst);
+      DO_imm_mandr_r("pblendw", 211, src, dst);
+      DO_imm_mandr_r("pblendw", 212, src, dst);
+      DO_imm_mandr_r("pblendw", 213, src, dst);
+      DO_imm_mandr_r("pblendw", 214, src, dst);
+      DO_imm_mandr_r("pblendw", 215, src, dst);
+      DO_imm_mandr_r("pblendw", 216, src, dst);
+      DO_imm_mandr_r("pblendw", 217, src, dst);
+      DO_imm_mandr_r("pblendw", 218, src, dst);
+      DO_imm_mandr_r("pblendw", 219, src, dst);
+      DO_imm_mandr_r("pblendw", 220, src, dst);
+      DO_imm_mandr_r("pblendw", 221, src, dst);
+      DO_imm_mandr_r("pblendw", 222, src, dst);
+      DO_imm_mandr_r("pblendw", 223, src, dst);
+      DO_imm_mandr_r("pblendw", 224, src, dst);
+      DO_imm_mandr_r("pblendw", 225, src, dst);
+      DO_imm_mandr_r("pblendw", 226, src, dst);
+      DO_imm_mandr_r("pblendw", 227, src, dst);
+      DO_imm_mandr_r("pblendw", 228, src, dst);
+      DO_imm_mandr_r("pblendw", 229, src, dst);
+      DO_imm_mandr_r("pblendw", 230, src, dst);
+      DO_imm_mandr_r("pblendw", 231, src, dst);
+      DO_imm_mandr_r("pblendw", 232, src, dst);
+      DO_imm_mandr_r("pblendw", 233, src, dst);
+      DO_imm_mandr_r("pblendw", 234, src, dst);
+      DO_imm_mandr_r("pblendw", 235, src, dst);
+      DO_imm_mandr_r("pblendw", 236, src, dst);
+      DO_imm_mandr_r("pblendw", 237, src, dst);
+      DO_imm_mandr_r("pblendw", 238, src, dst);
+      DO_imm_mandr_r("pblendw", 239, src, dst);
+      DO_imm_mandr_r("pblendw", 240, src, dst);
+      DO_imm_mandr_r("pblendw", 241, src, dst);
+      DO_imm_mandr_r("pblendw", 242, src, dst);
+      DO_imm_mandr_r("pblendw", 243, src, dst);
+      DO_imm_mandr_r("pblendw", 244, src, dst);
+      DO_imm_mandr_r("pblendw", 245, src, dst);
+      DO_imm_mandr_r("pblendw", 246, src, dst);
+      DO_imm_mandr_r("pblendw", 247, src, dst);
+      DO_imm_mandr_r("pblendw", 248, src, dst);
+      DO_imm_mandr_r("pblendw", 249, src, dst);
+      DO_imm_mandr_r("pblendw", 250, src, dst);
+      DO_imm_mandr_r("pblendw", 251, src, dst);
+      DO_imm_mandr_r("pblendw", 252, src, dst);
+      DO_imm_mandr_r("pblendw", 253, src, dst);
+      DO_imm_mandr_r("pblendw", 254, src, dst);
+      DO_imm_mandr_r("pblendw", 255, src, dst);
+   }
+}
+
 #endif /* __SSE4_COMMON_H */
index c834758ec680ad1b099cbecafbcfffaf1648010e..167fe485dc590ba1b2e2cc169c151b922225704a 100644 (file)
@@ -114,6 +114,8 @@ int main(void)
    test_PMINUW();
    test_PMULLD();
    test_BLENDPD();
+   test_BLENDPS();
+   test_PBLENDW();
 
    return 0;
 }
index db6addce93441fd80675997a92c605d7c13f14f4..81958488091a0692853d13dbc443a7165cdc3889 100644 (file)
@@ -266,3 +266,835 @@ r    blendpd $2 b2ed4ecc1e172df2d3a0a41fce854ae7 06a10a317fc4b5b3ef9f8c927c405d2
 m    blendpd $2 b2ed4ecc1e172df2d3a0a41fce854ae7 06a10a317fc4b5b3ef9f8c927c405d2f b2ed4ecc1e172df2ef9f8c927c405d2f
 r    blendpd $3 b2ed4ecc1e172df2d3a0a41fce854ae7 06a10a317fc4b5b3ef9f8c927c405d2f b2ed4ecc1e172df2d3a0a41fce854ae7
 m    blendpd $3 b2ed4ecc1e172df2d3a0a41fce854ae7 06a10a317fc4b5b3ef9f8c927c405d2f b2ed4ecc1e172df2d3a0a41fce854ae7
+r    blendps $0 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3e4b100d48d969e225f9318a0
+m    blendps $0 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3e4b100d48d969e225f9318a0
+r    blendps $1 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3e4b100d48d969e22fbdea09a
+m    blendps $1 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3e4b100d48d969e22fbdea09a
+r    blendps $2 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3e4b100d493aee0cf5f9318a0
+m    blendps $2 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3e4b100d493aee0cf5f9318a0
+r    blendps $3 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3e4b100d493aee0cffbdea09a
+m    blendps $3 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3e4b100d493aee0cffbdea09a
+r    blendps $4 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3c001d4c78d969e225f9318a0
+m    blendps $4 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3c001d4c78d969e225f9318a0
+r    blendps $5 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3c001d4c78d969e22fbdea09a
+m    blendps $5 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3c001d4c78d969e22fbdea09a
+r    blendps $6 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3c001d4c793aee0cf5f9318a0
+m    blendps $6 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3c001d4c793aee0cf5f9318a0
+r    blendps $7 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3c001d4c793aee0cffbdea09a
+m    blendps $7 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 84db9fe3c001d4c793aee0cffbdea09a
+r    blendps $8 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9e4b100d48d969e225f9318a0
+m    blendps $8 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9e4b100d48d969e225f9318a0
+r    blendps $9 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9e4b100d48d969e22fbdea09a
+m    blendps $9 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9e4b100d48d969e22fbdea09a
+r    blendps $10 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9e4b100d493aee0cf5f9318a0
+m    blendps $10 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9e4b100d493aee0cf5f9318a0
+r    blendps $11 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9e4b100d493aee0cffbdea09a
+m    blendps $11 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9e4b100d493aee0cffbdea09a
+r    blendps $12 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9c001d4c78d969e225f9318a0
+m    blendps $12 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9c001d4c78d969e225f9318a0
+r    blendps $13 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9c001d4c78d969e22fbdea09a
+m    blendps $13 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9c001d4c78d969e22fbdea09a
+r    blendps $14 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9c001d4c793aee0cf5f9318a0
+m    blendps $14 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9c001d4c793aee0cf5f9318a0
+r    blendps $15 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9c001d4c793aee0cffbdea09a
+m    blendps $15 0e1d55b9c001d4c793aee0cffbdea09a 84db9fe3e4b100d48d969e225f9318a0 0e1d55b9c001d4c793aee0cffbdea09a
+r    blendps $0 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df041cdc14f0bf7ba2283e22a31
+m    blendps $0 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df041cdc14f0bf7ba2283e22a31
+r    blendps $1 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df041cdc14f0bf7ba229beeae16
+m    blendps $1 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df041cdc14f0bf7ba229beeae16
+r    blendps $2 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df041cdc14f8680a73983e22a31
+m    blendps $2 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df041cdc14f8680a73983e22a31
+r    blendps $3 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df041cdc14f8680a7399beeae16
+m    blendps $3 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df041cdc14f8680a7399beeae16
+r    blendps $4 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df0ce1492e00bf7ba2283e22a31
+m    blendps $4 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df0ce1492e00bf7ba2283e22a31
+r    blendps $5 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df0ce1492e00bf7ba229beeae16
+m    blendps $5 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df0ce1492e00bf7ba229beeae16
+r    blendps $6 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df0ce1492e08680a73983e22a31
+m    blendps $6 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df0ce1492e08680a73983e22a31
+r    blendps $7 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df0ce1492e08680a7399beeae16
+m    blendps $7 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 09e14df0ce1492e08680a7399beeae16
+r    blendps $8 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378b41cdc14f0bf7ba2283e22a31
+m    blendps $8 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378b41cdc14f0bf7ba2283e22a31
+r    blendps $9 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378b41cdc14f0bf7ba229beeae16
+m    blendps $9 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378b41cdc14f0bf7ba229beeae16
+r    blendps $10 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378b41cdc14f8680a73983e22a31
+m    blendps $10 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378b41cdc14f8680a73983e22a31
+r    blendps $11 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378b41cdc14f8680a7399beeae16
+m    blendps $11 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378b41cdc14f8680a7399beeae16
+r    blendps $12 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378bce1492e00bf7ba2283e22a31
+m    blendps $12 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378bce1492e00bf7ba2283e22a31
+r    blendps $13 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378bce1492e00bf7ba229beeae16
+m    blendps $13 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378bce1492e00bf7ba229beeae16
+r    blendps $14 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378bce1492e08680a73983e22a31
+m    blendps $14 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378bce1492e08680a73983e22a31
+r    blendps $15 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378bce1492e08680a7399beeae16
+m    blendps $15 04b4378bce1492e08680a7399beeae16 09e14df041cdc14f0bf7ba2283e22a31 04b4378bce1492e08680a7399beeae16
+r    blendps $0 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c432a534d0478d5d7e053a4e0c
+m    blendps $0 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c432a534d0478d5d7e053a4e0c
+r    blendps $1 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c432a534d0478d5d7ecbc13287
+m    blendps $1 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c432a534d0478d5d7ecbc13287
+r    blendps $2 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c432a534d088e2774a053a4e0c
+m    blendps $2 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c432a534d088e2774a053a4e0c
+r    blendps $3 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c432a534d088e2774acbc13287
+m    blendps $3 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c432a534d088e2774acbc13287
+r    blendps $4 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c4e1dda4e8478d5d7e053a4e0c
+m    blendps $4 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c4e1dda4e8478d5d7e053a4e0c
+r    blendps $5 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c4e1dda4e8478d5d7ecbc13287
+m    blendps $5 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c4e1dda4e8478d5d7ecbc13287
+r    blendps $6 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c4e1dda4e888e2774a053a4e0c
+m    blendps $6 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c4e1dda4e888e2774a053a4e0c
+r    blendps $7 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c4e1dda4e888e2774acbc13287
+m    blendps $7 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f30110c4e1dda4e888e2774acbc13287
+r    blendps $8 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0ae32a534d0478d5d7e053a4e0c
+m    blendps $8 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0ae32a534d0478d5d7e053a4e0c
+r    blendps $9 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0ae32a534d0478d5d7ecbc13287
+m    blendps $9 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0ae32a534d0478d5d7ecbc13287
+r    blendps $10 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0ae32a534d088e2774a053a4e0c
+m    blendps $10 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0ae32a534d088e2774a053a4e0c
+r    blendps $11 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0ae32a534d088e2774acbc13287
+m    blendps $11 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0ae32a534d088e2774acbc13287
+r    blendps $12 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0aee1dda4e8478d5d7e053a4e0c
+m    blendps $12 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0aee1dda4e8478d5d7e053a4e0c
+r    blendps $13 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0aee1dda4e8478d5d7ecbc13287
+m    blendps $13 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0aee1dda4e8478d5d7ecbc13287
+r    blendps $14 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0aee1dda4e888e2774a053a4e0c
+m    blendps $14 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0aee1dda4e888e2774a053a4e0c
+r    blendps $15 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0aee1dda4e888e2774acbc13287
+m    blendps $15 f0fdf0aee1dda4e888e2774acbc13287 f30110c432a534d0478d5d7e053a4e0c f0fdf0aee1dda4e888e2774acbc13287
+r    blendps $0 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb54c594021c25022200a7415e
+m    blendps $0 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb54c594021c25022200a7415e
+r    blendps $1 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb54c594021c250222a561e618
+m    blendps $1 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb54c594021c250222a561e618
+r    blendps $2 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb54c5940275a0cbed00a7415e
+m    blendps $2 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb54c5940275a0cbed00a7415e
+r    blendps $3 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb54c5940275a0cbeda561e618
+m    blendps $3 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb54c5940275a0cbeda561e618
+r    blendps $4 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb98e7468c1c25022200a7415e
+m    blendps $4 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb98e7468c1c25022200a7415e
+r    blendps $5 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb98e7468c1c250222a561e618
+m    blendps $5 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb98e7468c1c250222a561e618
+r    blendps $6 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb98e7468c75a0cbed00a7415e
+m    blendps $6 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb98e7468c75a0cbed00a7415e
+r    blendps $7 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb98e7468c75a0cbeda561e618
+m    blendps $7 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 9c86e5cb98e7468c75a0cbeda561e618
+r    blendps $8 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e54c594021c25022200a7415e
+m    blendps $8 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e54c594021c25022200a7415e
+r    blendps $9 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e54c594021c250222a561e618
+m    blendps $9 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e54c594021c250222a561e618
+r    blendps $10 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e54c5940275a0cbed00a7415e
+m    blendps $10 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e54c5940275a0cbed00a7415e
+r    blendps $11 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e54c5940275a0cbeda561e618
+m    blendps $11 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e54c5940275a0cbeda561e618
+r    blendps $12 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e98e7468c1c25022200a7415e
+m    blendps $12 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e98e7468c1c25022200a7415e
+r    blendps $13 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e98e7468c1c250222a561e618
+m    blendps $13 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e98e7468c1c250222a561e618
+r    blendps $14 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e98e7468c75a0cbed00a7415e
+m    blendps $14 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e98e7468c75a0cbed00a7415e
+r    blendps $15 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e98e7468c75a0cbeda561e618
+m    blendps $15 2e467d8e98e7468c75a0cbeda561e618 9c86e5cb54c594021c25022200a7415e 2e467d8e98e7468c75a0cbeda561e618
+r    blendps $0 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc77143b71e92668b24fb9133bf52
+m    blendps $0 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc77143b71e92668b24fb9133bf52
+r    blendps $1 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc77143b71e92668b24fb48dc87f5
+m    blendps $1 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc77143b71e92668b24fb48dc87f5
+r    blendps $2 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc77143b71e9229861f0d9133bf52
+m    blendps $2 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc77143b71e9229861f0d9133bf52
+r    blendps $3 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc77143b71e9229861f0d48dc87f5
+m    blendps $3 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc77143b71e9229861f0d48dc87f5
+r    blendps $4 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc7718cbfb478668b24fb9133bf52
+m    blendps $4 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc7718cbfb478668b24fb9133bf52
+r    blendps $5 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc7718cbfb478668b24fb48dc87f5
+m    blendps $5 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc7718cbfb478668b24fb48dc87f5
+r    blendps $6 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc7718cbfb47829861f0d9133bf52
+m    blendps $6 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc7718cbfb47829861f0d9133bf52
+r    blendps $7 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc7718cbfb47829861f0d48dc87f5
+m    blendps $7 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 62bbc7718cbfb47829861f0d48dc87f5
+r    blendps $8 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad89743b71e92668b24fb9133bf52
+m    blendps $8 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad89743b71e92668b24fb9133bf52
+r    blendps $9 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad89743b71e92668b24fb48dc87f5
+m    blendps $9 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad89743b71e92668b24fb48dc87f5
+r    blendps $10 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad89743b71e9229861f0d9133bf52
+m    blendps $10 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad89743b71e9229861f0d9133bf52
+r    blendps $11 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad89743b71e9229861f0d48dc87f5
+m    blendps $11 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad89743b71e9229861f0d48dc87f5
+r    blendps $12 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad8978cbfb478668b24fb9133bf52
+m    blendps $12 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad8978cbfb478668b24fb9133bf52
+r    blendps $13 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad8978cbfb478668b24fb48dc87f5
+m    blendps $13 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad8978cbfb478668b24fb48dc87f5
+r    blendps $14 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad8978cbfb47829861f0d9133bf52
+m    blendps $14 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad8978cbfb47829861f0d9133bf52
+r    blendps $15 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad8978cbfb47829861f0d48dc87f5
+m    blendps $15 1adad8978cbfb47829861f0d48dc87f5 62bbc77143b71e92668b24fb9133bf52 1adad8978cbfb47829861f0d48dc87f5
+r    blendps $0 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2229a090d2c018b42f3d3ec8415
+m    blendps $0 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2229a090d2c018b42f3d3ec8415
+r    blendps $1 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2229a090d2c018b42f3ce3ed14b
+m    blendps $1 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2229a090d2c018b42f3ce3ed14b
+r    blendps $2 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2229a090d2c805ff098d3ec8415
+m    blendps $2 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2229a090d2c805ff098d3ec8415
+r    blendps $3 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2229a090d2c805ff098ce3ed14b
+m    blendps $3 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2229a090d2c805ff098ce3ed14b
+r    blendps $4 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2225bf02957018b42f3d3ec8415
+m    blendps $4 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2225bf02957018b42f3d3ec8415
+r    blendps $5 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2225bf02957018b42f3ce3ed14b
+m    blendps $5 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2225bf02957018b42f3ce3ed14b
+r    blendps $6 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2225bf02957805ff098d3ec8415
+m    blendps $6 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2225bf02957805ff098d3ec8415
+r    blendps $7 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2225bf02957805ff098ce3ed14b
+m    blendps $7 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 9fedb2225bf02957805ff098ce3ed14b
+r    blendps $8 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff359a090d2c018b42f3d3ec8415
+m    blendps $8 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff359a090d2c018b42f3d3ec8415
+r    blendps $9 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff359a090d2c018b42f3ce3ed14b
+m    blendps $9 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff359a090d2c018b42f3ce3ed14b
+r    blendps $10 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff359a090d2c805ff098d3ec8415
+m    blendps $10 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff359a090d2c805ff098d3ec8415
+r    blendps $11 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff359a090d2c805ff098ce3ed14b
+m    blendps $11 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff359a090d2c805ff098ce3ed14b
+r    blendps $12 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff355bf02957018b42f3d3ec8415
+m    blendps $12 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff355bf02957018b42f3d3ec8415
+r    blendps $13 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff355bf02957018b42f3ce3ed14b
+m    blendps $13 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff355bf02957018b42f3ce3ed14b
+r    blendps $14 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff355bf02957805ff098d3ec8415
+m    blendps $14 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff355bf02957805ff098d3ec8415
+r    blendps $15 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff355bf02957805ff098ce3ed14b
+m    blendps $15 1004ff355bf02957805ff098ce3ed14b 9fedb2229a090d2c018b42f3d3ec8415 1004ff355bf02957805ff098ce3ed14b
+r    blendps $0 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24af5479e7bc9f1d5f8e2de4bd3
+m    blendps $0 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24af5479e7bc9f1d5f8e2de4bd3
+r    blendps $1 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24af5479e7bc9f1d5f853917f46
+m    blendps $1 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24af5479e7bc9f1d5f853917f46
+r    blendps $2 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24af5479e7b55f9b979e2de4bd3
+m    blendps $2 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24af5479e7b55f9b979e2de4bd3
+r    blendps $3 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24af5479e7b55f9b97953917f46
+m    blendps $3 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24af5479e7b55f9b97953917f46
+r    blendps $4 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24aa106e2d6c9f1d5f8e2de4bd3
+m    blendps $4 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24aa106e2d6c9f1d5f8e2de4bd3
+r    blendps $5 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24aa106e2d6c9f1d5f853917f46
+m    blendps $5 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24aa106e2d6c9f1d5f853917f46
+r    blendps $6 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24aa106e2d655f9b979e2de4bd3
+m    blendps $6 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24aa106e2d655f9b979e2de4bd3
+r    blendps $7 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24aa106e2d655f9b97953917f46
+m    blendps $7 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 b168a24aa106e2d655f9b97953917f46
+r    blendps $8 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5f5479e7bc9f1d5f8e2de4bd3
+m    blendps $8 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5f5479e7bc9f1d5f8e2de4bd3
+r    blendps $9 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5f5479e7bc9f1d5f853917f46
+m    blendps $9 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5f5479e7bc9f1d5f853917f46
+r    blendps $10 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5f5479e7b55f9b979e2de4bd3
+m    blendps $10 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5f5479e7b55f9b979e2de4bd3
+r    blendps $11 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5f5479e7b55f9b97953917f46
+m    blendps $11 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5f5479e7b55f9b97953917f46
+r    blendps $12 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5a106e2d6c9f1d5f8e2de4bd3
+m    blendps $12 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5a106e2d6c9f1d5f8e2de4bd3
+r    blendps $13 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5a106e2d6c9f1d5f853917f46
+m    blendps $13 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5a106e2d6c9f1d5f853917f46
+r    blendps $14 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5a106e2d655f9b979e2de4bd3
+m    blendps $14 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5a106e2d655f9b979e2de4bd3
+r    blendps $15 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5a106e2d655f9b97953917f46
+m    blendps $15 6c11edd5a106e2d655f9b97953917f46 b168a24af5479e7bc9f1d5f8e2de4bd3 6c11edd5a106e2d655f9b97953917f46
+r    blendps $0 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f1fb0d2b99885af4db13d1b7
+m    blendps $0 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f1fb0d2b99885af4db13d1b7
+r    blendps $1 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f1fb0d2b99885af4f4e34e11
+m    blendps $1 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f1fb0d2b99885af4f4e34e11
+r    blendps $2 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f1fb0d2b861ef69cdb13d1b7
+m    blendps $2 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f1fb0d2b861ef69cdb13d1b7
+r    blendps $3 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f1fb0d2b861ef69cf4e34e11
+m    blendps $3 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f1fb0d2b861ef69cf4e34e11
+r    blendps $4 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f98d1aa099885af4db13d1b7
+m    blendps $4 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f98d1aa099885af4db13d1b7
+r    blendps $5 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f98d1aa099885af4f4e34e11
+m    blendps $5 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f98d1aa099885af4f4e34e11
+r    blendps $6 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f98d1aa0861ef69cdb13d1b7
+m    blendps $6 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f98d1aa0861ef69cdb13d1b7
+r    blendps $7 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f98d1aa0861ef69cf4e34e11
+m    blendps $7 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 f2789356f98d1aa0861ef69cf4e34e11
+r    blendps $8 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f1fb0d2b99885af4db13d1b7
+m    blendps $8 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f1fb0d2b99885af4db13d1b7
+r    blendps $9 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f1fb0d2b99885af4f4e34e11
+m    blendps $9 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f1fb0d2b99885af4f4e34e11
+r    blendps $10 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f1fb0d2b861ef69cdb13d1b7
+m    blendps $10 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f1fb0d2b861ef69cdb13d1b7
+r    blendps $11 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f1fb0d2b861ef69cf4e34e11
+m    blendps $11 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f1fb0d2b861ef69cf4e34e11
+r    blendps $12 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f98d1aa099885af4db13d1b7
+m    blendps $12 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f98d1aa099885af4db13d1b7
+r    blendps $13 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f98d1aa099885af4f4e34e11
+m    blendps $13 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f98d1aa099885af4f4e34e11
+r    blendps $14 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f98d1aa0861ef69cdb13d1b7
+m    blendps $14 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f98d1aa0861ef69cdb13d1b7
+r    blendps $15 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f98d1aa0861ef69cf4e34e11
+m    blendps $15 894d9fe1f98d1aa0861ef69cf4e34e11 f2789356f1fb0d2b99885af4db13d1b7 894d9fe1f98d1aa0861ef69cf4e34e11
+r    blendps $0 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b029b396ea4f1e4ed5da99d2ee
+m    blendps $0 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b029b396ea4f1e4ed5da99d2ee
+r    blendps $1 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b029b396ea4f1e4ed5cc40fad9
+m    blendps $1 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b029b396ea4f1e4ed5cc40fad9
+r    blendps $2 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b029b396eaee9b23edda99d2ee
+m    blendps $2 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b029b396eaee9b23edda99d2ee
+r    blendps $3 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b029b396eaee9b23edcc40fad9
+m    blendps $3 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b029b396eaee9b23edcc40fad9
+r    blendps $4 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b000120f624f1e4ed5da99d2ee
+m    blendps $4 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b000120f624f1e4ed5da99d2ee
+r    blendps $5 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b000120f624f1e4ed5cc40fad9
+m    blendps $5 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b000120f624f1e4ed5cc40fad9
+r    blendps $6 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b000120f62ee9b23edda99d2ee
+m    blendps $6 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b000120f62ee9b23edda99d2ee
+r    blendps $7 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b000120f62ee9b23edcc40fad9
+m    blendps $7 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee bf6982b000120f62ee9b23edcc40fad9
+r    blendps $8 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc729b396ea4f1e4ed5da99d2ee
+m    blendps $8 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc729b396ea4f1e4ed5da99d2ee
+r    blendps $9 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc729b396ea4f1e4ed5cc40fad9
+m    blendps $9 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc729b396ea4f1e4ed5cc40fad9
+r    blendps $10 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc729b396eaee9b23edda99d2ee
+m    blendps $10 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc729b396eaee9b23edda99d2ee
+r    blendps $11 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc729b396eaee9b23edcc40fad9
+m    blendps $11 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc729b396eaee9b23edcc40fad9
+r    blendps $12 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc700120f624f1e4ed5da99d2ee
+m    blendps $12 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc700120f624f1e4ed5da99d2ee
+r    blendps $13 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc700120f624f1e4ed5cc40fad9
+m    blendps $13 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc700120f624f1e4ed5cc40fad9
+r    blendps $14 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc700120f62ee9b23edda99d2ee
+m    blendps $14 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc700120f62ee9b23edda99d2ee
+r    blendps $15 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc700120f62ee9b23edcc40fad9
+m    blendps $15 c5040fc700120f62ee9b23edcc40fad9 bf6982b029b396ea4f1e4ed5da99d2ee c5040fc700120f62ee9b23edcc40fad9
+r    blendps $0 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac63afb7562c67d2c86fa7c09a3
+m    blendps $0 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac63afb7562c67d2c86fa7c09a3
+r    blendps $1 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac63afb7562c67d2c86f8b23fca
+m    blendps $1 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac63afb7562c67d2c86f8b23fca
+r    blendps $2 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac63afb7562683cbc58fa7c09a3
+m    blendps $2 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac63afb7562683cbc58fa7c09a3
+r    blendps $3 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac63afb7562683cbc58f8b23fca
+m    blendps $3 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac63afb7562683cbc58f8b23fca
+r    blendps $4 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac65120fbc8c67d2c86fa7c09a3
+m    blendps $4 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac65120fbc8c67d2c86fa7c09a3
+r    blendps $5 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac65120fbc8c67d2c86f8b23fca
+m    blendps $5 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac65120fbc8c67d2c86f8b23fca
+r    blendps $6 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac65120fbc8683cbc58fa7c09a3
+m    blendps $6 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac65120fbc8683cbc58fa7c09a3
+r    blendps $7 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac65120fbc8683cbc58f8b23fca
+m    blendps $7 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 74876ac65120fbc8683cbc58f8b23fca
+r    blendps $8 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf13afb7562c67d2c86fa7c09a3
+m    blendps $8 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf13afb7562c67d2c86fa7c09a3
+r    blendps $9 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf13afb7562c67d2c86f8b23fca
+m    blendps $9 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf13afb7562c67d2c86f8b23fca
+r    blendps $10 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf13afb7562683cbc58fa7c09a3
+m    blendps $10 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf13afb7562683cbc58fa7c09a3
+r    blendps $11 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf13afb7562683cbc58f8b23fca
+m    blendps $11 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf13afb7562683cbc58f8b23fca
+r    blendps $12 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf15120fbc8c67d2c86fa7c09a3
+m    blendps $12 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf15120fbc8c67d2c86fa7c09a3
+r    blendps $13 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf15120fbc8c67d2c86f8b23fca
+m    blendps $13 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf15120fbc8c67d2c86f8b23fca
+r    blendps $14 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf15120fbc8683cbc58fa7c09a3
+m    blendps $14 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf15120fbc8683cbc58fa7c09a3
+r    blendps $15 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf15120fbc8683cbc58f8b23fca
+m    blendps $15 7b813bf15120fbc8683cbc58f8b23fca 74876ac63afb7562c67d2c86fa7c09a3 7b813bf15120fbc8683cbc58f8b23fca
+r    pblendw $0 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd97270f257c73303
+m    pblendw $0 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd97270f257c73303
+r    pblendw $1 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd97270f257c7d80f
+m    pblendw $1 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd97270f257c7d80f
+r    pblendw $2 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd97270f293473303
+m    pblendw $2 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd97270f293473303
+r    pblendw $3 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd97270f29347d80f
+m    pblendw $3 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd97270f29347d80f
+r    pblendw $4 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd9723eca57c73303
+m    pblendw $4 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd9723eca57c73303
+r    pblendw $5 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd9723eca57c7d80f
+m    pblendw $5 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd9723eca57c7d80f
+r    pblendw $6 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd9723eca93473303
+m    pblendw $6 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd9723eca93473303
+r    pblendw $7 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd9723eca9347d80f
+m    pblendw $7 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd9723eca9347d80f
+r    pblendw $8 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc70f257c73303
+m    pblendw $8 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc70f257c73303
+r    pblendw $9 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc70f257c7d80f
+m    pblendw $9 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc70f257c7d80f
+r    pblendw $10 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc70f293473303
+m    pblendw $10 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc70f293473303
+r    pblendw $11 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc70f29347d80f
+m    pblendw $11 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc70f29347d80f
+r    pblendw $12 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc3eca57c73303
+m    pblendw $12 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc3eca57c73303
+r    pblendw $13 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc3eca57c7d80f
+m    pblendw $13 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc3eca57c7d80f
+r    pblendw $14 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc3eca93473303
+m    pblendw $14 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc3eca93473303
+r    pblendw $15 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc3eca9347d80f
+m    pblendw $15 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5de53fd2cc3eca9347d80f
+r    pblendw $16 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd97270f257c73303
+m    pblendw $16 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd97270f257c73303
+r    pblendw $17 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd97270f257c7d80f
+m    pblendw $17 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd97270f257c7d80f
+r    pblendw $18 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd97270f293473303
+m    pblendw $18 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd97270f293473303
+r    pblendw $19 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd97270f29347d80f
+m    pblendw $19 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd97270f29347d80f
+r    pblendw $20 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd9723eca57c73303
+m    pblendw $20 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd9723eca57c73303
+r    pblendw $21 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd9723eca57c7d80f
+m    pblendw $21 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd9723eca57c7d80f
+r    pblendw $22 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd9723eca93473303
+m    pblendw $22 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd9723eca93473303
+r    pblendw $23 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd9723eca9347d80f
+m    pblendw $23 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd9723eca9347d80f
+r    pblendw $24 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc70f257c73303
+m    pblendw $24 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc70f257c73303
+r    pblendw $25 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc70f257c7d80f
+m    pblendw $25 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc70f257c7d80f
+r    pblendw $26 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc70f293473303
+m    pblendw $26 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc70f293473303
+r    pblendw $27 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc70f29347d80f
+m    pblendw $27 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc70f29347d80f
+r    pblendw $28 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc3eca57c73303
+m    pblendw $28 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc3eca57c73303
+r    pblendw $29 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc3eca57c7d80f
+m    pblendw $29 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc3eca57c7d80f
+r    pblendw $30 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc3eca93473303
+m    pblendw $30 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc3eca93473303
+r    pblendw $31 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc3eca9347d80f
+m    pblendw $31 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d4703bf5d1b7dd2cc3eca9347d80f
+r    pblendw $32 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd97270f257c73303
+m    pblendw $32 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd97270f257c73303
+r    pblendw $33 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd97270f257c7d80f
+m    pblendw $33 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd97270f257c7d80f
+r    pblendw $34 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd97270f293473303
+m    pblendw $34 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd97270f293473303
+r    pblendw $35 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd97270f29347d80f
+m    pblendw $35 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd97270f29347d80f
+r    pblendw $36 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd9723eca57c73303
+m    pblendw $36 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd9723eca57c73303
+r    pblendw $37 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd9723eca57c7d80f
+m    pblendw $37 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd9723eca57c7d80f
+r    pblendw $38 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd9723eca93473303
+m    pblendw $38 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd9723eca93473303
+r    pblendw $39 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd9723eca9347d80f
+m    pblendw $39 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd9723eca9347d80f
+r    pblendw $40 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc70f257c73303
+m    pblendw $40 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc70f257c73303
+r    pblendw $41 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc70f257c7d80f
+m    pblendw $41 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc70f257c7d80f
+r    pblendw $42 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc70f293473303
+m    pblendw $42 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc70f293473303
+r    pblendw $43 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc70f29347d80f
+m    pblendw $43 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc70f29347d80f
+r    pblendw $44 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc3eca57c73303
+m    pblendw $44 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc3eca57c73303
+r    pblendw $45 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc3eca57c7d80f
+m    pblendw $45 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc3eca57c7d80f
+r    pblendw $46 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc3eca93473303
+m    pblendw $46 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc3eca93473303
+r    pblendw $47 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc3eca9347d80f
+m    pblendw $47 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d47038844e53fd2cc3eca9347d80f
+r    pblendw $48 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd97270f257c73303
+m    pblendw $48 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd97270f257c73303
+r    pblendw $49 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd97270f257c7d80f
+m    pblendw $49 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd97270f257c7d80f
+r    pblendw $50 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd97270f293473303
+m    pblendw $50 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd97270f293473303
+r    pblendw $51 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd97270f29347d80f
+m    pblendw $51 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd97270f29347d80f
+r    pblendw $52 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd9723eca57c73303
+m    pblendw $52 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd9723eca57c73303
+r    pblendw $53 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd9723eca57c7d80f
+m    pblendw $53 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd9723eca57c7d80f
+r    pblendw $54 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd9723eca93473303
+m    pblendw $54 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd9723eca93473303
+r    pblendw $55 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd9723eca9347d80f
+m    pblendw $55 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd9723eca9347d80f
+r    pblendw $56 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc70f257c73303
+m    pblendw $56 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc70f257c73303
+r    pblendw $57 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc70f257c7d80f
+m    pblendw $57 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc70f257c7d80f
+r    pblendw $58 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc70f293473303
+m    pblendw $58 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc70f293473303
+r    pblendw $59 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc70f29347d80f
+m    pblendw $59 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc70f29347d80f
+r    pblendw $60 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc3eca57c73303
+m    pblendw $60 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc3eca57c73303
+r    pblendw $61 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc3eca57c7d80f
+m    pblendw $61 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc3eca57c7d80f
+r    pblendw $62 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc3eca93473303
+m    pblendw $62 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc3eca93473303
+r    pblendw $63 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc3eca9347d80f
+m    pblendw $63 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d470388441b7dd2cc3eca9347d80f
+r    pblendw $64 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd97270f257c73303
+m    pblendw $64 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd97270f257c73303
+r    pblendw $65 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd97270f257c7d80f
+m    pblendw $65 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd97270f257c7d80f
+r    pblendw $66 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd97270f293473303
+m    pblendw $66 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd97270f293473303
+r    pblendw $67 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd97270f29347d80f
+m    pblendw $67 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd97270f29347d80f
+r    pblendw $68 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd9723eca57c73303
+m    pblendw $68 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd9723eca57c73303
+r    pblendw $69 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd9723eca57c7d80f
+m    pblendw $69 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd9723eca57c7d80f
+r    pblendw $70 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd9723eca93473303
+m    pblendw $70 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd9723eca93473303
+r    pblendw $71 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd9723eca9347d80f
+m    pblendw $71 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd9723eca9347d80f
+r    pblendw $72 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc70f257c73303
+m    pblendw $72 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc70f257c73303
+r    pblendw $73 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc70f257c7d80f
+m    pblendw $73 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc70f257c7d80f
+r    pblendw $74 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc70f293473303
+m    pblendw $74 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc70f293473303
+r    pblendw $75 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc70f29347d80f
+m    pblendw $75 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc70f29347d80f
+r    pblendw $76 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc3eca57c73303
+m    pblendw $76 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc3eca57c73303
+r    pblendw $77 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc3eca57c7d80f
+m    pblendw $77 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc3eca57c7d80f
+r    pblendw $78 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc3eca93473303
+m    pblendw $78 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc3eca93473303
+r    pblendw $79 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc3eca9347d80f
+m    pblendw $79 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5de53fd2cc3eca9347d80f
+r    pblendw $80 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd97270f257c73303
+m    pblendw $80 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd97270f257c73303
+r    pblendw $81 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd97270f257c7d80f
+m    pblendw $81 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd97270f257c7d80f
+r    pblendw $82 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd97270f293473303
+m    pblendw $82 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd97270f293473303
+r    pblendw $83 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd97270f29347d80f
+m    pblendw $83 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd97270f29347d80f
+r    pblendw $84 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd9723eca57c73303
+m    pblendw $84 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd9723eca57c73303
+r    pblendw $85 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd9723eca57c7d80f
+m    pblendw $85 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd9723eca57c7d80f
+r    pblendw $86 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd9723eca93473303
+m    pblendw $86 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd9723eca93473303
+r    pblendw $87 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd9723eca9347d80f
+m    pblendw $87 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd9723eca9347d80f
+r    pblendw $88 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc70f257c73303
+m    pblendw $88 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc70f257c73303
+r    pblendw $89 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc70f257c7d80f
+m    pblendw $89 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc70f257c7d80f
+r    pblendw $90 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc70f293473303
+m    pblendw $90 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc70f293473303
+r    pblendw $91 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc70f29347d80f
+m    pblendw $91 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc70f29347d80f
+r    pblendw $92 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc3eca57c73303
+m    pblendw $92 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc3eca57c73303
+r    pblendw $93 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc3eca57c7d80f
+m    pblendw $93 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc3eca57c7d80f
+r    pblendw $94 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc3eca93473303
+m    pblendw $94 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc3eca93473303
+r    pblendw $95 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc3eca9347d80f
+m    pblendw $95 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecdbf5d1b7dd2cc3eca9347d80f
+r    pblendw $96 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd97270f257c73303
+m    pblendw $96 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd97270f257c73303
+r    pblendw $97 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd97270f257c7d80f
+m    pblendw $97 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd97270f257c7d80f
+r    pblendw $98 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd97270f293473303
+m    pblendw $98 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd97270f293473303
+r    pblendw $99 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd97270f29347d80f
+m    pblendw $99 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd97270f29347d80f
+r    pblendw $100 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd9723eca57c73303
+m    pblendw $100 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd9723eca57c73303
+r    pblendw $101 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd9723eca57c7d80f
+m    pblendw $101 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd9723eca57c7d80f
+r    pblendw $102 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd9723eca93473303
+m    pblendw $102 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd9723eca93473303
+r    pblendw $103 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd9723eca9347d80f
+m    pblendw $103 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd9723eca9347d80f
+r    pblendw $104 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc70f257c73303
+m    pblendw $104 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc70f257c73303
+r    pblendw $105 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc70f257c7d80f
+m    pblendw $105 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc70f257c7d80f
+r    pblendw $106 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc70f293473303
+m    pblendw $106 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc70f293473303
+r    pblendw $107 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc70f29347d80f
+m    pblendw $107 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc70f29347d80f
+r    pblendw $108 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc3eca57c73303
+m    pblendw $108 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc3eca57c73303
+r    pblendw $109 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc3eca57c7d80f
+m    pblendw $109 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc3eca57c7d80f
+r    pblendw $110 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc3eca93473303
+m    pblendw $110 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc3eca93473303
+r    pblendw $111 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc3eca9347d80f
+m    pblendw $111 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd8844e53fd2cc3eca9347d80f
+r    pblendw $112 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd97270f257c73303
+m    pblendw $112 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd97270f257c73303
+r    pblendw $113 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd97270f257c7d80f
+m    pblendw $113 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd97270f257c7d80f
+r    pblendw $114 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd97270f293473303
+m    pblendw $114 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd97270f293473303
+r    pblendw $115 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd97270f29347d80f
+m    pblendw $115 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd97270f29347d80f
+r    pblendw $116 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd9723eca57c73303
+m    pblendw $116 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd9723eca57c73303
+r    pblendw $117 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd9723eca57c7d80f
+m    pblendw $117 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd9723eca57c7d80f
+r    pblendw $118 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd9723eca93473303
+m    pblendw $118 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd9723eca93473303
+r    pblendw $119 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd9723eca9347d80f
+m    pblendw $119 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd9723eca9347d80f
+r    pblendw $120 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc70f257c73303
+m    pblendw $120 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc70f257c73303
+r    pblendw $121 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc70f257c7d80f
+m    pblendw $121 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc70f257c7d80f
+r    pblendw $122 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc70f293473303
+m    pblendw $122 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc70f293473303
+r    pblendw $123 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc70f29347d80f
+m    pblendw $123 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc70f29347d80f
+r    pblendw $124 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc3eca57c73303
+m    pblendw $124 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc3eca57c73303
+r    pblendw $125 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc3eca57c7d80f
+m    pblendw $125 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc3eca57c7d80f
+r    pblendw $126 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc3eca93473303
+m    pblendw $126 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc3eca93473303
+r    pblendw $127 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc3eca9347d80f
+m    pblendw $127 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 6e1d1ecd88441b7dd2cc3eca9347d80f
+r    pblendw $128 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd97270f257c73303
+m    pblendw $128 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd97270f257c73303
+r    pblendw $129 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd97270f257c7d80f
+m    pblendw $129 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd97270f257c7d80f
+r    pblendw $130 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd97270f293473303
+m    pblendw $130 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd97270f293473303
+r    pblendw $131 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd97270f29347d80f
+m    pblendw $131 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd97270f29347d80f
+r    pblendw $132 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd9723eca57c73303
+m    pblendw $132 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd9723eca57c73303
+r    pblendw $133 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd9723eca57c7d80f
+m    pblendw $133 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd9723eca57c7d80f
+r    pblendw $134 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd9723eca93473303
+m    pblendw $134 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd9723eca93473303
+r    pblendw $135 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd9723eca9347d80f
+m    pblendw $135 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd9723eca9347d80f
+r    pblendw $136 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc70f257c73303
+m    pblendw $136 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc70f257c73303
+r    pblendw $137 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc70f257c7d80f
+m    pblendw $137 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc70f257c7d80f
+r    pblendw $138 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc70f293473303
+m    pblendw $138 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc70f293473303
+r    pblendw $139 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc70f29347d80f
+m    pblendw $139 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc70f29347d80f
+r    pblendw $140 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc3eca57c73303
+m    pblendw $140 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc3eca57c73303
+r    pblendw $141 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc3eca57c7d80f
+m    pblendw $141 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc3eca57c7d80f
+r    pblendw $142 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc3eca93473303
+m    pblendw $142 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc3eca93473303
+r    pblendw $143 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc3eca9347d80f
+m    pblendw $143 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5de53fd2cc3eca9347d80f
+r    pblendw $144 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd97270f257c73303
+m    pblendw $144 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd97270f257c73303
+r    pblendw $145 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd97270f257c7d80f
+m    pblendw $145 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd97270f257c7d80f
+r    pblendw $146 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd97270f293473303
+m    pblendw $146 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd97270f293473303
+r    pblendw $147 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd97270f29347d80f
+m    pblendw $147 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd97270f29347d80f
+r    pblendw $148 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd9723eca57c73303
+m    pblendw $148 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd9723eca57c73303
+r    pblendw $149 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd9723eca57c7d80f
+m    pblendw $149 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd9723eca57c7d80f
+r    pblendw $150 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd9723eca93473303
+m    pblendw $150 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd9723eca93473303
+r    pblendw $151 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd9723eca9347d80f
+m    pblendw $151 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd9723eca9347d80f
+r    pblendw $152 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc70f257c73303
+m    pblendw $152 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc70f257c73303
+r    pblendw $153 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc70f257c7d80f
+m    pblendw $153 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc70f257c7d80f
+r    pblendw $154 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc70f293473303
+m    pblendw $154 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc70f293473303
+r    pblendw $155 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc70f29347d80f
+m    pblendw $155 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc70f29347d80f
+r    pblendw $156 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc3eca57c73303
+m    pblendw $156 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc3eca57c73303
+r    pblendw $157 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc3eca57c7d80f
+m    pblendw $157 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc3eca57c7d80f
+r    pblendw $158 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc3eca93473303
+m    pblendw $158 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc3eca93473303
+r    pblendw $159 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc3eca9347d80f
+m    pblendw $159 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07124703bf5d1b7dd2cc3eca9347d80f
+r    pblendw $160 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd97270f257c73303
+m    pblendw $160 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd97270f257c73303
+r    pblendw $161 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd97270f257c7d80f
+m    pblendw $161 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd97270f257c7d80f
+r    pblendw $162 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd97270f293473303
+m    pblendw $162 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd97270f293473303
+r    pblendw $163 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd97270f29347d80f
+m    pblendw $163 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd97270f29347d80f
+r    pblendw $164 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd9723eca57c73303
+m    pblendw $164 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd9723eca57c73303
+r    pblendw $165 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd9723eca57c7d80f
+m    pblendw $165 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd9723eca57c7d80f
+r    pblendw $166 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd9723eca93473303
+m    pblendw $166 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd9723eca93473303
+r    pblendw $167 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd9723eca9347d80f
+m    pblendw $167 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd9723eca9347d80f
+r    pblendw $168 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc70f257c73303
+m    pblendw $168 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc70f257c73303
+r    pblendw $169 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc70f257c7d80f
+m    pblendw $169 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc70f257c7d80f
+r    pblendw $170 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc70f293473303
+m    pblendw $170 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc70f293473303
+r    pblendw $171 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc70f29347d80f
+m    pblendw $171 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc70f29347d80f
+r    pblendw $172 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc3eca57c73303
+m    pblendw $172 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc3eca57c73303
+r    pblendw $173 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc3eca57c7d80f
+m    pblendw $173 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc3eca57c7d80f
+r    pblendw $174 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc3eca93473303
+m    pblendw $174 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc3eca93473303
+r    pblendw $175 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc3eca9347d80f
+m    pblendw $175 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 071247038844e53fd2cc3eca9347d80f
+r    pblendw $176 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd97270f257c73303
+m    pblendw $176 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd97270f257c73303
+r    pblendw $177 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd97270f257c7d80f
+m    pblendw $177 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd97270f257c7d80f
+r    pblendw $178 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd97270f293473303
+m    pblendw $178 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd97270f293473303
+r    pblendw $179 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd97270f29347d80f
+m    pblendw $179 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd97270f29347d80f
+r    pblendw $180 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd9723eca57c73303
+m    pblendw $180 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd9723eca57c73303
+r    pblendw $181 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd9723eca57c7d80f
+m    pblendw $181 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd9723eca57c7d80f
+r    pblendw $182 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd9723eca93473303
+m    pblendw $182 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd9723eca93473303
+r    pblendw $183 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd9723eca9347d80f
+m    pblendw $183 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd9723eca9347d80f
+r    pblendw $184 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc70f257c73303
+m    pblendw $184 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc70f257c73303
+r    pblendw $185 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc70f257c7d80f
+m    pblendw $185 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc70f257c7d80f
+r    pblendw $186 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc70f293473303
+m    pblendw $186 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc70f293473303
+r    pblendw $187 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc70f29347d80f
+m    pblendw $187 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc70f29347d80f
+r    pblendw $188 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc3eca57c73303
+m    pblendw $188 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc3eca57c73303
+r    pblendw $189 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc3eca57c7d80f
+m    pblendw $189 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc3eca57c7d80f
+r    pblendw $190 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc3eca93473303
+m    pblendw $190 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc3eca93473303
+r    pblendw $191 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc3eca9347d80f
+m    pblendw $191 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 0712470388441b7dd2cc3eca9347d80f
+r    pblendw $192 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd97270f257c73303
+m    pblendw $192 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd97270f257c73303
+r    pblendw $193 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd97270f257c7d80f
+m    pblendw $193 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd97270f257c7d80f
+r    pblendw $194 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd97270f293473303
+m    pblendw $194 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd97270f293473303
+r    pblendw $195 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd97270f29347d80f
+m    pblendw $195 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd97270f29347d80f
+r    pblendw $196 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd9723eca57c73303
+m    pblendw $196 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd9723eca57c73303
+r    pblendw $197 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd9723eca57c7d80f
+m    pblendw $197 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd9723eca57c7d80f
+r    pblendw $198 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd9723eca93473303
+m    pblendw $198 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd9723eca93473303
+r    pblendw $199 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd9723eca9347d80f
+m    pblendw $199 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd9723eca9347d80f
+r    pblendw $200 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc70f257c73303
+m    pblendw $200 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc70f257c73303
+r    pblendw $201 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc70f257c7d80f
+m    pblendw $201 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc70f257c7d80f
+r    pblendw $202 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc70f293473303
+m    pblendw $202 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc70f293473303
+r    pblendw $203 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc70f29347d80f
+m    pblendw $203 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc70f29347d80f
+r    pblendw $204 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc3eca57c73303
+m    pblendw $204 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc3eca57c73303
+r    pblendw $205 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc3eca57c7d80f
+m    pblendw $205 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc3eca57c7d80f
+r    pblendw $206 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc3eca93473303
+m    pblendw $206 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc3eca93473303
+r    pblendw $207 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc3eca9347d80f
+m    pblendw $207 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5de53fd2cc3eca9347d80f
+r    pblendw $208 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd97270f257c73303
+m    pblendw $208 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd97270f257c73303
+r    pblendw $209 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd97270f257c7d80f
+m    pblendw $209 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd97270f257c7d80f
+r    pblendw $210 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd97270f293473303
+m    pblendw $210 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd97270f293473303
+r    pblendw $211 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd97270f29347d80f
+m    pblendw $211 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd97270f29347d80f
+r    pblendw $212 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd9723eca57c73303
+m    pblendw $212 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd9723eca57c73303
+r    pblendw $213 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd9723eca57c7d80f
+m    pblendw $213 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd9723eca57c7d80f
+r    pblendw $214 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd9723eca93473303
+m    pblendw $214 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd9723eca93473303
+r    pblendw $215 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd9723eca9347d80f
+m    pblendw $215 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd9723eca9347d80f
+r    pblendw $216 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc70f257c73303
+m    pblendw $216 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc70f257c73303
+r    pblendw $217 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc70f257c7d80f
+m    pblendw $217 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc70f257c7d80f
+r    pblendw $218 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc70f293473303
+m    pblendw $218 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc70f293473303
+r    pblendw $219 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc70f29347d80f
+m    pblendw $219 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc70f29347d80f
+r    pblendw $220 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc3eca57c73303
+m    pblendw $220 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc3eca57c73303
+r    pblendw $221 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc3eca57c7d80f
+m    pblendw $221 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc3eca57c7d80f
+r    pblendw $222 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc3eca93473303
+m    pblendw $222 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc3eca93473303
+r    pblendw $223 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc3eca9347d80f
+m    pblendw $223 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecdbf5d1b7dd2cc3eca9347d80f
+r    pblendw $224 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd97270f257c73303
+m    pblendw $224 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd97270f257c73303
+r    pblendw $225 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd97270f257c7d80f
+m    pblendw $225 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd97270f257c7d80f
+r    pblendw $226 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd97270f293473303
+m    pblendw $226 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd97270f293473303
+r    pblendw $227 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd97270f29347d80f
+m    pblendw $227 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd97270f29347d80f
+r    pblendw $228 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd9723eca57c73303
+m    pblendw $228 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd9723eca57c73303
+r    pblendw $229 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd9723eca57c7d80f
+m    pblendw $229 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd9723eca57c7d80f
+r    pblendw $230 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd9723eca93473303
+m    pblendw $230 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd9723eca93473303
+r    pblendw $231 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd9723eca9347d80f
+m    pblendw $231 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd9723eca9347d80f
+r    pblendw $232 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc70f257c73303
+m    pblendw $232 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc70f257c73303
+r    pblendw $233 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc70f257c7d80f
+m    pblendw $233 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc70f257c7d80f
+r    pblendw $234 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc70f293473303
+m    pblendw $234 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc70f293473303
+r    pblendw $235 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc70f29347d80f
+m    pblendw $235 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc70f29347d80f
+r    pblendw $236 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc3eca57c73303
+m    pblendw $236 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc3eca57c73303
+r    pblendw $237 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc3eca57c7d80f
+m    pblendw $237 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc3eca57c7d80f
+r    pblendw $238 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc3eca93473303
+m    pblendw $238 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc3eca93473303
+r    pblendw $239 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc3eca9347d80f
+m    pblendw $239 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd8844e53fd2cc3eca9347d80f
+r    pblendw $240 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd97270f257c73303
+m    pblendw $240 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd97270f257c73303
+r    pblendw $241 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd97270f257c7d80f
+m    pblendw $241 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd97270f257c7d80f
+r    pblendw $242 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd97270f293473303
+m    pblendw $242 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd97270f293473303
+r    pblendw $243 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd97270f29347d80f
+m    pblendw $243 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd97270f29347d80f
+r    pblendw $244 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd9723eca57c73303
+m    pblendw $244 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd9723eca57c73303
+r    pblendw $245 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd9723eca57c7d80f
+m    pblendw $245 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd9723eca57c7d80f
+r    pblendw $246 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd9723eca93473303
+m    pblendw $246 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd9723eca93473303
+r    pblendw $247 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd9723eca9347d80f
+m    pblendw $247 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd9723eca9347d80f
+r    pblendw $248 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc70f257c73303
+m    pblendw $248 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc70f257c73303
+r    pblendw $249 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc70f257c7d80f
+m    pblendw $249 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc70f257c7d80f
+r    pblendw $250 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc70f293473303
+m    pblendw $250 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc70f293473303
+r    pblendw $251 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc70f29347d80f
+m    pblendw $251 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc70f29347d80f
+r    pblendw $252 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc3eca57c73303
+m    pblendw $252 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc3eca57c73303
+r    pblendw $253 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc3eca57c7d80f
+m    pblendw $253 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc3eca57c7d80f
+r    pblendw $254 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc3eca93473303
+m    pblendw $254 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc3eca93473303
+r    pblendw $255 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc3eca9347d80f
+m    pblendw $255 07121ecd88441b7dd2cc3eca9347d80f 6e1d4703bf5de53fd97270f257c73303 07121ecd88441b7dd2cc3eca9347d80f