xf86-video-intel: src/i965_hwmc.c src/xvmc/shader src/xvmc/xvmc_vld.c

Nan hai Zou znh at kemper.freedesktop.org
Wed Jun 10 00:57:03 PDT 2009


 src/i965_hwmc.c                               |    1 
 src/xvmc/shader/mc/Makefile.am                |    4 
 src/xvmc/shader/mc/dual_prime_igd.g4b         | 1564 +++++++++++++-------------
 src/xvmc/shader/mc/field_backward_igd.g4a     |  190 +--
 src/xvmc/shader/mc/field_backward_igd.g4b     |  719 -----------
 src/xvmc/shader/mc/field_f_b_igd.g4a          |  358 ++---
 src/xvmc/shader/mc/field_f_b_igd.g4b          | 1239 +-------------------
 src/xvmc/shader/mc/field_forward_igd.g4a      |  187 +--
 src/xvmc/shader/mc/field_forward_igd.g4b      |  714 -----------
 src/xvmc/shader/mc/frame_backward_igd.g4a     |  109 -
 src/xvmc/shader/mc/frame_backward_igd.g4b     |  389 ------
 src/xvmc/shader/mc/frame_f_b_igd.g4a          |  207 +--
 src/xvmc/shader/mc/frame_f_b_igd.g4b          |  624 ----------
 src/xvmc/shader/mc/frame_forward_igd.g4a      |   89 -
 src/xvmc/shader/mc/frame_forward_igd.g4b      |  388 ------
 src/xvmc/shader/mc/motion_field_uv_igd.g4i    |   10 
 src/xvmc/shader/mc/motion_field_y_igd.g4i     |   10 
 src/xvmc/shader/mc/motion_frame_uv_igd.g4i    |    3 
 src/xvmc/shader/mc/motion_frame_y_igd.g4i     |    9 
 src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i |   68 -
 src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i  |   79 -
 src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i |   81 -
 src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i  |   85 -
 src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i |   69 -
 src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i  |   79 -
 src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i |  123 --
 src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i  |  128 --
 src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i |   65 -
 src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i  |   81 -
 src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i  |   97 -
 src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i  |   88 -
 src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i  |  185 +--
 src/xvmc/xvmc_vld.c                           |  446 +++++--
 33 files changed, 2505 insertions(+), 5983 deletions(-)

New commits:
commit 6d500be3cdecd7617dc6119b58ae273eea478af7
Author: Zou Nan hai <nanhai.zou at intel.com>
Date:   Wed Jun 10 15:53:24 2009 +0800

      enable MC on g45 for player without vld patch

diff --git a/src/i965_hwmc.c b/src/i965_hwmc.c
index 4dc2e3a..7163330 100644
--- a/src/i965_hwmc.c
+++ b/src/i965_hwmc.c
@@ -244,6 +244,7 @@ static XF86MCSurfaceInfoPtr surface_info[] = {
 
 static XF86MCSurfaceInfoPtr surface_info_vld[] = {
     &yv12_mpeg2_vld_surface,
+    &yv12_mpeg2_surface,
 };
 
 static XF86MCAdaptorRec adaptor_vld = {
diff --git a/src/xvmc/shader/mc/Makefile.am b/src/xvmc/shader/mc/Makefile.am
index b4d6c4a..be5d84d 100644
--- a/src/xvmc/shader/mc/Makefile.am
+++ b/src/xvmc/shader/mc/Makefile.am
@@ -13,7 +13,9 @@ INTEL_G4A = dual_prime_igd.g4a          \
         frame_backward.g4a              \
         frame_f_b.g4a                   \
         frame_forward.g4a               \
+		lib_igd.g4a						\
         ipicture.g4a                    \
+        ipicture_igd.g4a                \
         null.g4a
 
 INTEL_G4I = addidct.g4i                          \
@@ -74,6 +76,8 @@ INTEL_G4B = dual_prime.g4b          \
         frame_f_b_igd.g4b           \
         frame_forward_igd.g4b       \
         ipicture.g4b                \
+        ipicture_igd.g4b            \
+		lib_igd.g4b					\
         null.g4b
 
 EXTRA_DIST = $(INTEL_G4A)    \
diff --git a/src/xvmc/shader/mc/dual_prime_igd.g4b b/src/xvmc/shader/mc/dual_prime_igd.g4b
index 6477d06..6a558fd 100644
--- a/src/xvmc/shader/mc/dual_prime_igd.g4b
+++ b/src/xvmc/shader/mc/dual_prime_igd.g4b
@@ -110,121 +110,121 @@
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
    { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
    { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000041 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000012 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
    { 0x00600001, 0x26800021, 0x008d0c00, 0x00000000 },
    { 0x00600001, 0x26c00021, 0x008d0c20, 0x00000000 },
    { 0x00600001, 0x27000021, 0x008d0c40, 0x00000000 },
@@ -239,121 +239,121 @@
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
    { 0x02000005, 0x20000e3c, 0x0021003f, 0x00000004 },
    { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000041 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000012 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
    { 0x00600001, 0x26a00021, 0x008d0c00, 0x00000000 },
    { 0x00600001, 0x26e00021, 0x008d0c20, 0x00000000 },
    { 0x00600001, 0x27200021, 0x008d0c40, 0x00000000 },
@@ -369,90 +369,113 @@
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
    { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000041 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600040, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600040, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600040, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600040, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0501 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0521 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0541 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0561 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0521 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0541 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0561 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0581 },
+   { 0x00600040, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600040, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600040, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600040, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05a1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05c1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d05e1 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0601 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05c1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05e1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d0601 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000039 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0501 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0521 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0541 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0561 },
+   { 0x00600042, 0x24804629, 0x008d0580, 0x008d0581 },
+   { 0x00600042, 0x24a04629, 0x008d05a0, 0x008d05a1 },
+   { 0x00600042, 0x24c04629, 0x008d05c0, 0x008d05c1 },
+   { 0x00600042, 0x24e04629, 0x008d05e0, 0x008d05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600042, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600042, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600042, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600042, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000c },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a009 },
+   { 0x00802001, 0x24000229, 0x008d0500, 0x00000000 },
+   { 0x00802001, 0x24400229, 0x008d0540, 0x00000000 },
+   { 0x00802001, 0x24800229, 0x008d0600, 0x00000000 },
+   { 0x00802001, 0x24c00229, 0x008d0640, 0x00000000 },
    { 0x00600001, 0x28800129, 0x008d09c0, 0x00000000 },
    { 0x00600001, 0x28a00129, 0x008d09e0, 0x00000000 },
    { 0x00600001, 0x28c00129, 0x008d0a00, 0x00000000 },
@@ -467,90 +490,113 @@
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
    { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000041 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600040, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600040, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600040, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600040, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0501 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0521 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0541 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0561 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0521 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0541 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0561 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0581 },
+   { 0x00600040, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600040, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600040, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600040, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05a1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05c1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d05e1 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0601 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05c1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05e1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d0601 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000039 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0501 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0521 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0541 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0561 },
+   { 0x00600042, 0x24804629, 0x008d0580, 0x008d0581 },
+   { 0x00600042, 0x24a04629, 0x008d05a0, 0x008d05a1 },
+   { 0x00600042, 0x24c04629, 0x008d05c0, 0x008d05c1 },
+   { 0x00600042, 0x24e04629, 0x008d05e0, 0x008d05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600042, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600042, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600042, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600042, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000c },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a009 },
+   { 0x00802001, 0x24000229, 0x008d0500, 0x00000000 },
+   { 0x00802001, 0x24400229, 0x008d0540, 0x00000000 },
+   { 0x00802001, 0x24800229, 0x008d0600, 0x00000000 },
+   { 0x00802001, 0x24c00229, 0x008d0640, 0x00000000 },
    { 0x00600001, 0x28900129, 0x008d09c0, 0x00000000 },
    { 0x00600001, 0x28b00129, 0x008d09e0, 0x00000000 },
    { 0x00600001, 0x28d00129, 0x008d0a00, 0x00000000 },
@@ -568,121 +614,121 @@
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
    { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
    { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000041 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000012 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
    { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
    { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
    { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
@@ -697,121 +743,121 @@
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
    { 0x02000005, 0x20000c3c, 0x00210054, 0x00000008 },
    { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000043 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 },
+   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 },
+   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 },
+   { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 },
+   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 },
+   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 },
+   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 },
+   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 },
+   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000041 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10501 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10541 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b10581 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10601 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10641 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b10681 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b106c1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
    { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
+   { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 },
+   { 0x00800042, 0x24004629, 0x00b10500, 0x00b10540 },
+   { 0x00800042, 0x24204629, 0x00b10540, 0x00b10580 },
+   { 0x00800042, 0x24404629, 0x00b10580, 0x00b105c0 },
+   { 0x00800042, 0x24604629, 0x00b105c0, 0x00b10600 },
+   { 0x00800042, 0x24804629, 0x00b10600, 0x00b10640 },
+   { 0x00800042, 0x24a04629, 0x00b10640, 0x00b10680 },
+   { 0x00800042, 0x24c04629, 0x00b10680, 0x00b106c0 },
+   { 0x00800042, 0x24e04629, 0x00b106c0, 0x00b10700 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000012 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 },
+   { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 },
    { 0x80800042, 0x23802529, 0x00b10680, 0x00b10380 },
    { 0x80800042, 0x23a02529, 0x00b106a0, 0x00b10c00 },
    { 0x80800042, 0x23c02529, 0x00b106c0, 0x00b103c0 },
@@ -835,90 +881,113 @@
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
    { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000041 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600040, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600040, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600040, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600040, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0501 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0521 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0541 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0561 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0521 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0541 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0561 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0581 },
+   { 0x00600040, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600040, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600040, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600040, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05a1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05c1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d05e1 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0601 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05c1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05e1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d0601 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000039 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0501 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0521 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0541 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0561 },
+   { 0x00600042, 0x24804629, 0x008d0580, 0x008d0581 },
+   { 0x00600042, 0x24a04629, 0x008d05a0, 0x008d05a1 },
+   { 0x00600042, 0x24c04629, 0x008d05c0, 0x008d05c1 },
+   { 0x00600042, 0x24e04629, 0x008d05e0, 0x008d05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600042, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600042, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600042, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600042, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000c },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a009 },
+   { 0x00802001, 0x24000229, 0x008d0500, 0x00000000 },
+   { 0x00802001, 0x24400229, 0x008d0540, 0x00000000 },
+   { 0x00802001, 0x24800229, 0x008d0600, 0x00000000 },
+   { 0x00802001, 0x24c00229, 0x008d0640, 0x00000000 },
    { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
    { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
    { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
@@ -933,90 +1002,113 @@
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
    { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000041 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002d },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600040, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600040, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600040, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600040, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0501 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0521 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0541 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0561 },
+   { 0x00600040, 0x24004529, 0x008d0400, 0x008d0521 },
+   { 0x00600040, 0x24204529, 0x008d0420, 0x008d0541 },
+   { 0x00600040, 0x24404529, 0x008d0440, 0x008d0561 },
+   { 0x00600040, 0x24604529, 0x008d0460, 0x008d0581 },
+   { 0x00600040, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600040, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600040, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600040, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05a1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05c1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d05e1 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0601 },
+   { 0x00600040, 0x24804529, 0x008d0480, 0x008d05c1 },
+   { 0x00600040, 0x24a04529, 0x008d04a0, 0x008d05e1 },
+   { 0x00600040, 0x24c04529, 0x008d04c0, 0x008d0601 },
+   { 0x00600040, 0x24e04529, 0x008d04e0, 0x008d0621 },
+   { 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 },
+   { 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 },
+   { 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 },
+   { 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000039 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0501 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0521 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0541 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0561 },
+   { 0x00600042, 0x24804629, 0x008d0580, 0x008d0581 },
+   { 0x00600042, 0x24a04629, 0x008d05a0, 0x008d05a1 },
+   { 0x00600042, 0x24c04629, 0x008d05c0, 0x008d05c1 },
+   { 0x00600042, 0x24e04629, 0x008d05e0, 0x008d05e1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20002d3c, 0x00218000, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000019 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 },
+   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
+   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
+   { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 },
+   { 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 },
+   { 0x00600042, 0x24004629, 0x008d0500, 0x008d0520 },
+   { 0x00600042, 0x24204629, 0x008d0520, 0x008d0540 },
+   { 0x00600042, 0x24404629, 0x008d0540, 0x008d0560 },
+   { 0x00600042, 0x24604629, 0x008d0560, 0x008d0580 },
+   { 0x00600042, 0x24804629, 0x008d05a0, 0x008d05c0 },
+   { 0x00600042, 0x24a04629, 0x008d05c0, 0x008d05e0 },
+   { 0x00600042, 0x24c04629, 0x008d05e0, 0x008d0600 },
+   { 0x00600042, 0x24e04629, 0x008d0600, 0x008d0620 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000c },
    { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210e70, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a006 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000002 },
+   { 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 },
+   { 0x00800031, 0x26001d29, 0x008d0e60, 0x0414a009 },
+   { 0x00802001, 0x24000229, 0x008d0500, 0x00000000 },
+   { 0x00802001, 0x24400229, 0x008d0540, 0x00000000 },
+   { 0x00802001, 0x24800229, 0x008d0600, 0x00000000 },
+   { 0x00802001, 0x24c00229, 0x008d0640, 0x00000000 },
    { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
    { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
    { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
diff --git a/src/xvmc/shader/mc/field_backward_igd.g4a b/src/xvmc/shader/mc/field_backward_igd.g4a
index d01b8dc..9938ab5 100644
--- a/src/xvmc/shader/mc/field_backward_igd.g4a
+++ b/src/xvmc/shader/mc/field_backward_igd.g4a
@@ -1,124 +1,86 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g84~g107:IDCT data
+   g115:   message descriptor for reading reference data   */
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x50UD {align1};            //jump to the lib to do IQ and IDCT
 
-include(`block_clear.g4i')
-
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
-/*Y buffer*/
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-mov(1) g1.8<1>UD 0x007000fUD  { align1 };
-/*first vector*/
-asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+/*field 0 of Y*/
+asr (2) g31.14<1>W g82.18<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+and.nz (1) null g82.31<1,1,1>UB 0x2UW {align1};             //motion vertical field select
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+mov (1) g115.16<1>UW 1UW {align1};           	//0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A52UD {align1};        	//g82.18,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   	//jump to the lib to read reference data 
 
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_y_igd.g4i')
-mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
+mov (8) g58.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g60.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g62.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g64.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g66.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g68.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g70.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g72.0<1>UD g39.0<8,8,1>UD {align1};
 
-and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_y_igd.g4i')
-mov (8) g29.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g31.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g33.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g35.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g37.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g39.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g41.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g43.0<1>UD g103.0<8,8,1>UD {align1};
-/*U buffer, V buffer*/
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-/*first vector*/
-asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+/*field 1 of Y*/
+asr (2) g31.14<1>W g82.26<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x8UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`8')
-define(`surface_v',`9')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+mov (1) a0.0<1>UD 0x0A5AUD {align1};		//g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   	//jump to the lib to read reference data 
+
+mov (8) g59.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g61.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g63.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g65.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g67.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g69.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g71.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g73.0<1>UD g39.0<8,8,1>UD {align1};
+
+/*field 0 of UV*/
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+
+asr (2) g31.14<1>W g82.18<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+mov (1) a0.0<1>UD 0x0A52UD {align1};         //g82.18,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+mov (16) g74.0<1>UW g32.0<8,8,1>UW {align1 compr};
+mov (16) g76.0<1>UW g34.0<8,8,1>UW {align1 compr};
+mov (16) g78.0<1>UW g36.0<8,8,1>UW {align1 compr};
+mov (16) g80.0<1>UW g38.0<8,8,1>UW {align1 compr};
 
-and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
+/*field 1 of UV*/
+asr (2) g31.14<1>W g82.26<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x8UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
+mov (1) a0.0<1>UD 0x0A5AUD {align1};         //g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+mov (16) g74.16<1>UW g32.0<8,8,1>UW {align1 compr};
+mov (16) g76.16<1>UW g34.0<8,8,1>UW {align1 compr};
+mov (16) g78.16<1>UW g36.0<8,8,1>UW {align1 compr};
+mov (16) g80.16<1>UW g38.0<8,8,1>UW {align1 compr};
 
-include(`addidct.g4i')
-//send (16) 0 acc0<1>UW g0<8,8,1>UW 
-//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
+add (1) ip g21.0<1,1,1>UD 0x40UD {align1};          //jump to the lib to add the reference and idct data
diff --git a/src/xvmc/shader/mc/field_backward_igd.g4b b/src/xvmc/shader/mc/field_backward_igd.g4b
index 7382a87..6236e78 100644
--- a/src/xvmc/shader/mc/field_backward_igd.g4b
+++ b/src/xvmc/shader/mc/field_backward_igd.g4b
@@ -1,669 +1,62 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000050 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00020002 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x2e700169, 0x00000000, 0x00010001 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a52 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00600001, 0x27400021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27800021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28000021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28400021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a5a, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23a00021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23e00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24200021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24600021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24a00021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24e00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25200021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25600021, 0x008d0ce0, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00080008 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a5a },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00600001, 0x27600021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28200021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28600021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00020002 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a52 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802001, 0x29400129, 0x008d0400, 0x00000000 },
+   { 0x00802001, 0x29800129, 0x008d0440, 0x00000000 },
+   { 0x00802001, 0x29c00129, 0x008d0480, 0x00000000 },
+   { 0x00802001, 0x2a000129, 0x008d04c0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a5a, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00080008 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a5a },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802001, 0x29500129, 0x008d0400, 0x00000000 },
+   { 0x00802001, 0x29900129, 0x008d0440, 0x00000000 },
+   { 0x00802001, 0x29d00129, 0x008d0480, 0x00000000 },
+   { 0x00802001, 0x2a100129, 0x008d04c0, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000040 },
diff --git a/src/xvmc/shader/mc/field_f_b_igd.g4a b/src/xvmc/shader/mc/field_f_b_igd.g4a
index e741244..c072cd6 100644
--- a/src/xvmc/shader/mc/field_f_b_igd.g4a
+++ b/src/xvmc/shader/mc/field_f_b_igd.g4a
@@ -1,223 +1,159 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-
-include(`block_clear.g4i')
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
-
-/* forward---Y---first vector*/
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g84~g107:IDCT data
+   g115:   message descriptor for reading reference data   */
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x50UD {align1};          //jump to the lib to do IQ and IDCT 
+
+/*field 0 forward prediction of Y*/
+asr (2) g31.14<1>W g82.14<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`4')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_y_igd.g4i')
-mov (8) g52.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g54.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g56.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g58.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g60.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g62.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g64.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g66.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*forward---Y---second vector*/
-asr (2) g115.14<1>W g1.22<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+mov (1) g115.16<1>UW 0UW {align1};           //0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A4EUD {align1};         //g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   //jump to the lib to read reference data 
+
+mov (8) g58.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g60.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g62.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g64.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g66.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g68.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g70.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g72.0<1>UD g39.0<8,8,1>UD {align1};
+
+/*field 1 forward prediction of Y*/
+asr (2) g31.14<1>W g82.22<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x4UD {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`4')
-define(`mv1',`g1.22')
-define(`mv2',`g1.24')
-include(`motion_field_y_igd.g4i')
-mov (8) g53.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g55.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g57.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g59.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g61.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g63.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g65.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g67.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*forward---UV---first vector*/
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x4UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+mov (1) a0.0<1>UD 0x0A56UD {align1};         //g82.22,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   //jump to the lib to read reference data 
+
+mov (8) g59.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g61.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g63.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g65.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g67.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g69.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g71.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g73.0<1>UD g39.0<8,8,1>UD {align1};
+
+/*field 0 forward prediction of UV*/
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+
+asr (2) g31.14<1>W g82.14<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x1UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`5')
-define(`surface_v',`6')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_uv_igd.g4i')
-mov (8) g68.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g69.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g70.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g71.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g72.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g73.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g74.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g75.0<1>UW g85.0<8,8,1>UW {align1};
-
-/*forward---UV---second vector */
-asr (2) g115.14<1>W g1.22<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+mov (1) a0.0<1>UD 0x0A4EUD {align1};         //g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+mov (16) g74.0<1>UW g32.0<8,8,1>UW {align1 compr};
+mov (16) g76.0<1>UW g34.0<8,8,1>UW {align1 compr};
+mov (16) g78.0<1>UW g36.0<8,8,1>UW {align1 compr};
+mov (16) g80.0<1>UW g38.0<8,8,1>UW {align1 compr};
+
+/*field 1 forward prediction of UV*/
+asr (2) g31.14<1>W g82.22<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x4UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.24')
-define(`mv2',`g1.26')
-include(`motion_field_uv_igd.g4i')
-mov (8) g68.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g69.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g70.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g71.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g72.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g73.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g74.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g75.16<1>UW g85.0<8,8,1>UW {align1};
-
-/*backward---Y---first vector */
-mov(8) g1.0<1>UD g116.0<8,8,1>UD {align1};
-mov(1) g115.8<1>UD 0x007001fUD  { align1 };
-mov(1) g1.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.18<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+mov (1) a0.0<1>UD 0x0A56UD {align1};         //g82.22,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+mov (16) g74.16<1>UW g32.0<8,8,1>UW {align1 compr};
+mov (16) g76.16<1>UW g34.0<8,8,1>UW {align1 compr};
+mov (16) g78.16<1>UW g36.0<8,8,1>UW {align1 compr};
+mov (16) g80.16<1>UW g38.0<8,8,1>UW {align1 compr};
+
+/*field 0 backward prediction of Y*/
+mov(2) g31.0<1>UD g82.0<2,2,1>UD {align1};
+
+asr (2) g31.14<1>W g82.18<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_y_igd.g4i')
-mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
-
-/*backward---Y---second vector */
-asr (2) g115.14<1>W g1.26<2,2,1>W 1W {align1};
-add (2) g115.0<1>D g116.0<2,2,1>D g115.14<2,2,1>W {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x2UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+mov (1) g115.16<1>UW 1UW {align1};           //0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A52UD {align1};         //g82.18,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   //jump to the lib to read reference data 
+
+avg (16) g58.0<1>UW g58.0<16,16,1>UW g32.0<16,16,1>UW {align1};
+avg (16) g60.0<1>UW g60.0<16,16,1>UW g33.0<16,16,1>UW {align1};
+avg (16) g62.0<1>UW g62.0<16,16,1>UW g34.0<16,16,1>UW {align1};
+avg (16) g64.0<1>UW g64.0<16,16,1>UW g35.0<16,16,1>UW {align1};
+avg (16) g66.0<1>UW g66.0<16,16,1>UW g36.0<16,16,1>UW {align1};
+avg (16) g68.0<1>UW g68.0<16,16,1>UW g37.0<16,16,1>UW {align1};
+avg (16) g70.0<1>UW g70.0<16,16,1>UW g38.0<16,16,1>UW {align1};
+avg (16) g72.0<1>UW g72.0<16,16,1>UW g39.0<16,16,1>UW {align1};
+
+/*field 1 backward prediction of Y*/
+asr (2) g31.14<1>W g82.26<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov(1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-and.nz (1) null g2.20<1,1,1>UD 0x8UD {align1};
-(f0) add (1) g115.4<1>D g115.4<1,1,1>D 1D {align1};
-define(`surface',`7')
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_y_igd.g4i')
-
-avg.sat (16) g28.0<1>UW g52.0<16,16,1>UW g28.0<16,16,1>UW {align1};
-avg.sat (16) g29.0<1>UW g53.0<16,16,1>UW g96.0<16,16,1>UW {align1};
-avg.sat (16) g30.0<1>UW g54.0<16,16,1>UW g30.0<16,16,1>UW {align1};
-avg.sat (16) g31.0<1>UW g55.0<16,16,1>UW g97.0<16,16,1>UW {align1};
-avg.sat (16) g32.0<1>UW g56.0<16,16,1>UW g32.0<16,16,1>UW {align1};
-avg.sat (16) g33.0<1>UW g57.0<16,16,1>UW g98.0<16,16,1>UW {align1};
-avg.sat (16) g34.0<1>UW g58.0<16,16,1>UW g34.0<16,16,1>UW {align1};
-avg.sat (16) g35.0<1>UW g59.0<16,16,1>UW g99.0<16,16,1>UW {align1};
-avg.sat (16) g36.0<1>UW g60.0<16,16,1>UW g36.0<16,16,1>UW {align1};
-avg.sat (16) g37.0<1>UW g61.0<16,16,1>UW g100.0<16,16,1>UW {align1};
-avg.sat (16) g38.0<1>UW g62.0<16,16,1>UW g38.0<16,16,1>UW {align1};
-avg.sat (16) g39.0<1>UW g63.0<16,16,1>UW g101.0<16,16,1>UW {align1};
-avg.sat (16) g40.0<1>UW g64.0<16,16,1>UW g40.0<16,16,1>UW {align1};
-avg.sat (16) g41.0<1>UW g65.0<16,16,1>UW g102.0<16,16,1>UW {align1};
-avg.sat (16) g42.0<1>UW g66.0<16,16,1>UW g42.0<16,16,1>UW {align1};
-avg.sat (16) g43.0<1>UW g67.0<16,16,1>UW g103.0<16,16,1>UW {align1};
-
-/*backward---UV---first vector */
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.18<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x8UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+mov (1) a0.0<1>UD 0x0A5AUD {align1};         //g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   //jump to the lib to read reference data 
+
+avg (16) g59.0<1>UW g59.0<16,16,1>UW g32.0<16,16,1>UW {align1};
+avg (16) g61.0<1>UW g61.0<16,16,1>UW g33.0<16,16,1>UW {align1};
+avg (16) g63.0<1>UW g63.0<16,16,1>UW g34.0<16,16,1>UW {align1};
+avg (16) g65.0<1>UW g65.0<16,16,1>UW g35.0<16,16,1>UW {align1};
+avg (16) g67.0<1>UW g67.0<16,16,1>UW g36.0<16,16,1>UW {align1};
+avg (16) g69.0<1>UW g69.0<16,16,1>UW g37.0<16,16,1>UW {align1};
+avg (16) g71.0<1>UW g71.0<16,16,1>UW g38.0<16,16,1>UW {align1};
+avg (16) g73.0<1>UW g73.0<16,16,1>UW g39.0<16,16,1>UW {align1};
+
+/*field 0 backward prediction of UV*/
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+
+asr (2) g31.14<1>W g82.18<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x2UW {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x2UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`8')
-define(`surface_v',`9')
-define(`mv1',`g1.18')
-define(`mv2',`g1.20')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
-
-/*backward---UV---second vector */
-asr (2) g115.14<1>W g1.26<2,2,1>W 2W {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+mov (1) a0.0<1>UD 0x0A52UD {align1};         //g82.18,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+avg (16) g74.0<1>UW g74.0<8,8,1>UW g32.0<8,8,1>UW {align1 compr};
+avg (16) g76.0<1>UW g76.0<8,8,1>UW g34.0<8,8,1>UW {align1 compr};
+avg (16) g78.0<1>UW g78.0<8,8,1>UW g36.0<8,8,1>UW {align1 compr};
+avg (16) g80.0<1>UW g80.0<8,8,1>UW g38.0<8,8,1>UW {align1 compr};
+
+/*field 1 backward prediction of UV*/
+asr (2) g31.14<1>W g82.26<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-and.nz (1) null g1.31<1,1,1>UB 0x8UW {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x8UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.26')
-define(`mv2',`g1.28')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
-
-avg.sat (16) g44.0<1>UW g68.0<16,16,1>UW g44.0<16,16,1>UW {align1};
-avg.sat (16) g45.0<1>UW g69.0<16,16,1>UW g45.0<16,16,1>UW {align1};
-avg.sat (16) g46.0<1>UW g70.0<16,16,1>UW g46.0<16,16,1>UW {align1};
-avg.sat (16) g47.0<1>UW g71.0<16,16,1>UW g47.0<16,16,1>UW {align1};
-avg.sat (16) g48.0<1>UW g72.0<16,16,1>UW g48.0<16,16,1>UW {align1};
-avg.sat (16) g49.0<1>UW g73.0<16,16,1>UW g49.0<16,16,1>UW {align1};
-avg.sat (16) g50.0<1>UW g74.0<16,16,1>UW g50.0<16,16,1>UW {align1};
-avg.sat (16) g51.0<1>UW g75.0<16,16,1>UW g51.0<16,16,1>UW {align1};
-
-include(`addidct.g4i')
-
-//send (16) 0 acc0<1>UW g0<8,8,1>UW 
-//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
+mov (1) a0.0<1>UD 0x0A5AUD {align1};         //g82.26,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+avg (16) g74.16<1>UW g74.16<8,8,1>UW g32.0<8,8,1>UW {align1 compr};
+avg (16) g76.16<1>UW g76.16<8,8,1>UW g34.0<8,8,1>UW {align1 compr};
+avg (16) g78.16<1>UW g78.16<8,8,1>UW g36.0<8,8,1>UW {align1 compr};
+avg (16) g80.16<1>UW g80.16<8,8,1>UW g38.0<8,8,1>UW {align1 compr};
+
+add (1) ip g21.0<1,1,1>UD 0x40UD {align1};          //jump to the lib to add the reference and idct data
diff --git a/src/xvmc/shader/mc/field_f_b_igd.g4b b/src/xvmc/shader/mc/field_f_b_igd.g4b
index 6477d06..c0bd0be 100644
--- a/src/xvmc/shader/mc/field_f_b_igd.g4b
+++ b/src/xvmc/shader/mc/field_f_b_igd.g4b
@@ -1,1142 +1,121 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000050 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x26800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x26c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x27000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x27400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x27800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x27c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x28000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x28400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00010001 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x2e700169, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a4e },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00600001, 0x27400021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27800021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28000021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28400021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a56, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20000e3c, 0x0021003f, 0x00000004 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x26a00021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x26e00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x27200021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x27600021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x27a00021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x27e00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x28200021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x28600021, 0x008d0ce0, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x0045002e, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00040004 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a56 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00600001, 0x27600021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28200021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28600021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00010001 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x28800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x28a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x28c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x28e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x29000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x29200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x29400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x29600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450036, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a4e },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802001, 0x29400129, 0x008d0400, 0x00000000 },
+   { 0x00802001, 0x29800129, 0x008d0440, 0x00000000 },
+   { 0x00802001, 0x29c00129, 0x008d0480, 0x00000000 },
+   { 0x00802001, 0x2a000129, 0x008d04c0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a56, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00040004 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x28900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x28b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x28d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x28f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x29100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x29300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x29500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x29700129, 0x008d0aa0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0e80, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a56 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802001, 0x29500129, 0x008d0400, 0x00000000 },
+   { 0x00802001, 0x29900129, 0x008d0440, 0x00000000 },
+   { 0x00802001, 0x29d00129, 0x008d0480, 0x00000000 },
+   { 0x00802001, 0x2a100129, 0x008d04c0, 0x00000000 },
+   { 0x00200001, 0x23e00021, 0x00450a40, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00010001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e80, 0x00450e6e },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00020002 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x2e700169, 0x00000000, 0x00010001 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a52 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00800042, 0x27402529, 0x00b10740, 0x00b10400 },
+   { 0x00800042, 0x27802529, 0x00b10780, 0x00b10420 },
+   { 0x00800042, 0x27c02529, 0x00b107c0, 0x00b10440 },
+   { 0x00800042, 0x28002529, 0x00b10800, 0x00b10460 },
+   { 0x00800042, 0x28402529, 0x00b10840, 0x00b10480 },
+   { 0x00800042, 0x28802529, 0x00b10880, 0x00b104a0 },
+   { 0x00800042, 0x28c02529, 0x00b108c0, 0x00b104c0 },
+   { 0x00800042, 0x29002529, 0x00b10900, 0x00b104e0 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a5a, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20000c3c, 0x00210054, 0x00000008 },
-   { 0x00010040, 0x2e641ca5, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a007 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a007 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a007 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x80800042, 0x23802529, 0x00b10680, 0x00b10380 },
-   { 0x80800042, 0x23a02529, 0x00b106a0, 0x00b10c00 },
-   { 0x80800042, 0x23c02529, 0x00b106c0, 0x00b103c0 },
-   { 0x80800042, 0x23e02529, 0x00b106e0, 0x00b10c20 },
-   { 0x80800042, 0x24002529, 0x00b10700, 0x00b10400 },
-   { 0x80800042, 0x24202529, 0x00b10720, 0x00b10c40 },
-   { 0x80800042, 0x24402529, 0x00b10740, 0x00b10440 },
-   { 0x80800042, 0x24602529, 0x00b10760, 0x00b10c60 },
-   { 0x80800042, 0x24802529, 0x00b10780, 0x00b10480 },
-   { 0x80800042, 0x24a02529, 0x00b107a0, 0x00b10c80 },
-   { 0x80800042, 0x24c02529, 0x00b107c0, 0x00b104c0 },
-   { 0x80800042, 0x24e02529, 0x00b107e0, 0x00b10ca0 },
-   { 0x80800042, 0x25002529, 0x00b10800, 0x00b10500 },
-   { 0x80800042, 0x25202529, 0x00b10820, 0x00b10cc0 },
-   { 0x80800042, 0x25402529, 0x00b10840, 0x00b10540 },
-   { 0x80800042, 0x25602529, 0x00b10860, 0x00b10ce0 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e3dad, 0x00450032, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00080008 },
+   { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a5a },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00800042, 0x27602529, 0x00b10760, 0x00b10400 },
+   { 0x00800042, 0x27a02529, 0x00b107a0, 0x00b10420 },
+   { 0x00800042, 0x27e02529, 0x00b107e0, 0x00b10440 },
+   { 0x00800042, 0x28202529, 0x00b10820, 0x00b10460 },
+   { 0x00800042, 0x28602529, 0x00b10860, 0x00b10480 },
+   { 0x00800042, 0x28a02529, 0x00b108a0, 0x00b104a0 },
+   { 0x00800042, 0x28e02529, 0x00b108e0, 0x00b104c0 },
+   { 0x00800042, 0x29202529, 0x00b10920, 0x00b104e0 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00020002 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00020002 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210032, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210034, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e3dad, 0x0045003a, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a52 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802042, 0x29402529, 0x008d0940, 0x008d0400 },
+   { 0x00802042, 0x29802529, 0x008d0980, 0x008d0440 },
+   { 0x00802042, 0x29c02529, 0x008d09c0, 0x008d0480 },
+   { 0x00802042, 0x2a002529, 0x008d0a00, 0x008d04c0 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a5a, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00080008 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00080008 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021003a, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x0021003c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a008 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a009 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a008 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a009 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
-   { 0x80800042, 0x25802529, 0x00b10880, 0x00b10580 },
-   { 0x80800042, 0x25a02529, 0x00b108a0, 0x00b105a0 },
-   { 0x80800042, 0x25c02529, 0x00b108c0, 0x00b105c0 },
-   { 0x80800042, 0x25e02529, 0x00b108e0, 0x00b105e0 },
-   { 0x80800042, 0x26002529, 0x00b10900, 0x00b10600 },
-   { 0x80800042, 0x26202529, 0x00b10920, 0x00b10620 },
-   { 0x80800042, 0x26402529, 0x00b10940, 0x00b10640 },
-   { 0x80800042, 0x26602529, 0x00b10960, 0x00b10660 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a5a },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802042, 0x29502529, 0x008d0950, 0x008d0400 },
+   { 0x00802042, 0x29902529, 0x008d0990, 0x008d0440 },
+   { 0x00802042, 0x29d02529, 0x008d09d0, 0x008d0480 },
+   { 0x00802042, 0x2a102529, 0x008d0a10, 0x008d04c0 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000040 },
diff --git a/src/xvmc/shader/mc/field_forward_igd.g4a b/src/xvmc/shader/mc/field_forward_igd.g4a
index fdd4925..61719ed 100644
--- a/src/xvmc/shader/mc/field_forward_igd.g4a
+++ b/src/xvmc/shader/mc/field_forward_igd.g4a
@@ -1,121 +1,86 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g84~g107:IDCT data
+   g115:   message descriptor for reading reference data   */
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x50UD {align1};                  //jump to the lib to do IDCT
 
-include(`block_clear.g4i')
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (8) g116.0<1>UD g1.0<8,8,1>UD {align1};
-/*Y buffer*/
-mov(1) g1.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 1UW {align1};
-add (2) g115.0<1>UD g116.0<2,2,1>UD g115.14<2,2,1>W {align1};
+/*field 0 of Y*/
+asr (2) g31.14<1>W g82.14<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov (1) g115.8<1>UD 0x1fUD  { align1 }; //read 1 line, 32 columns.
-/*first vector*/
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x1UW {align1};             //motion vertical field select
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface',`4')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_y_igd.g4i')
-mov (8) g28.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g30.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g32.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g34.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g36.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g38.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g40.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g42.0<1>UD g103.0<8,8,1>UD {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.22<2,2,1>W 1UW {align1};
-add (2) g115.0<1>UD g116.0<2,2,1>UD g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
-mov (1) g115.8<1>UD 0x1fUD { align1 };              //read 1 line, 32 columns.
+mov (1) g115.16<1>UW 0UW {align1};           	//0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A4EUD {align1};        	//g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   	//jump to the lib to read reference data 
 
-and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
-(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface',`4')
-define(`mv1',`g1.22')
-define(`mv2',`g1.24')
-include(`motion_field_y_igd.g4i')
-mov (8) g29.0<1>UD g96.0<8,8,1>UD {align1};
-mov (8) g31.0<1>UD g97.0<8,8,1>UD {align1};
-mov (8) g33.0<1>UD g98.0<8,8,1>UD {align1};
-mov (8) g35.0<1>UD g99.0<8,8,1>UD {align1};
-mov (8) g37.0<1>UD g100.0<8,8,1>UD {align1};
-mov (8) g39.0<1>UD g101.0<8,8,1>UD {align1};
-mov (8) g41.0<1>UD g102.0<8,8,1>UD {align1};
-mov (8) g43.0<1>UD g103.0<8,8,1>UD {align1};
-/*U buffer,  V buffer*/
-/*first vector*/
-mov(1) g115.8<1>UD 0x007000fUD  { align1 };
-asr (2) g115.14<1>W g1.14<2,2,1>W 2UW {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
-and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+mov (8) g58.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g60.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g62.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g64.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g66.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g68.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g70.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g72.0<1>UD g39.0<8,8,1>UD {align1};
 
-and.nz (1) null g1.31<1,1,1>UB 0x1UW {align1};
+/*field 1 of Y*/
+asr (2) g31.14<1>W g82.22<2,2,1>W 1W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x4UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`surface_u',`5')
-define(`surface_v',`6')
-define(`mv1',`g1.14')
-define(`mv2',`g1.16')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.0<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.0<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.0<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.0<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.0<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.0<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.0<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.0<1>UW g85.0<8,8,1>UW {align1};
-/*second vector*/
-asr (2) g115.14<1>W g1.22<2,2,1>W 2UW {align1};
-asr (2) g115.0<1>D g116.0<2,2,1>D 1D {align1};
-add (2) g115.0<1>D g115.0<2,2,1>D g115.14<2,2,1>W {align1};
+mov (1) a0.0<1>UD 0x0A56UD {align1};        //g82.22,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x20UD {align1};   //jump to the lib to read reference data 
+
+mov (8) g59.0<1>UD g32.0<8,8,1>UD {align1};
+mov (8) g61.0<1>UD g33.0<8,8,1>UD {align1};
+mov (8) g63.0<1>UD g34.0<8,8,1>UD {align1};
+mov (8) g65.0<1>UD g35.0<8,8,1>UD {align1};
+mov (8) g67.0<1>UD g36.0<8,8,1>UD {align1};
+mov (8) g69.0<1>UD g37.0<8,8,1>UD {align1};
+mov (8) g71.0<1>UD g38.0<8,8,1>UD {align1};
+mov (8) g73.0<1>UD g39.0<8,8,1>UD {align1};
+
+/*field 0 of UV*/
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+
+asr (2) g31.14<1>W g82.14<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x1UW {align1};
+(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
+mov (1) a0.0<1>UD 0x0A4EUD {align1};         //g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+mov (16) g74.0<1>UW g32.0<8,8,1>UW {align1 compr};
+mov (16) g76.0<1>UW g34.0<8,8,1>UW {align1 compr};
+mov (16) g78.0<1>UW g36.0<8,8,1>UW {align1 compr};
+mov (16) g80.0<1>UW g38.0<8,8,1>UW {align1 compr};
 
-and.nz (1) null g1.31<1,1,1>UB 0x4UW {align1};
+/*field 1 of UV*/
+asr (2) g31.14<1>W g82.22<2,2,1>W 2W {align1};
+add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1};
+and.nz (1) null g82.31<1,1,1>UB 0x4UW {align1};
 (f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1};
-define(`mv1',`g1.22')
-define(`mv2',`g1.24')
-include(`motion_field_uv_igd.g4i')
-mov (8) g44.16<1>UW g78.0<8,8,1>UW {align1};
-mov (8) g45.16<1>UW g79.0<8,8,1>UW {align1};
-mov (8) g46.16<1>UW g80.0<8,8,1>UW {align1};
-mov (8) g47.16<1>UW g81.0<8,8,1>UW {align1};
-mov (8) g48.16<1>UW g82.0<8,8,1>UW {align1};
-mov (8) g49.16<1>UW g83.0<8,8,1>UW {align1};
-mov (8) g50.16<1>UW g84.0<8,8,1>UW {align1};
-mov (8) g51.16<1>UW g85.0<8,8,1>UW {align1};
+mov (1) a0.0<1>UD 0x0A56UD {align1};         //g82.22,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x30UD {align1};   //jump to the lib to read reference data 
+
+mov (16) g74.16<1>UW g32.0<8,8,1>UW {align1 compr};
+mov (16) g76.16<1>UW g34.0<8,8,1>UW {align1 compr};
+mov (16) g78.16<1>UW g36.0<8,8,1>UW {align1 compr};
+mov (16) g80.16<1>UW g38.0<8,8,1>UW {align1 compr};
 
-include(`addidct.g4i')
-//send (16) 0 acc0<1>UW g0<8,8,1>UW 
-//	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
+add (1) ip g21.0<1,1,1>UD 0x40UD {align1};          //jump to the lib to add the reference and idct data
diff --git a/src/xvmc/shader/mc/field_forward_igd.g4b b/src/xvmc/shader/mc/field_forward_igd.g4b
index 6d1dee5..12036bf 100644
--- a/src/xvmc/shader/mc/field_forward_igd.g4b
+++ b/src/xvmc/shader/mc/field_forward_igd.g4b
@@ -1,668 +1,62 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00600001, 0x2e800021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e2dad, 0x0045002e, 0x00010001 },
-   { 0x00200040, 0x2e603421, 0x00450e80, 0x00450e6e },
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000050 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00010001 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23800021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23c00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24000021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24400021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24800021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24c00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25000021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25400021, 0x008d0ce0, 0x00000000 },
-   { 0x0020000c, 0x2e6e2dad, 0x00450036, 0x00010001 },
-   { 0x00200040, 0x2e603421, 0x00450e80, 0x00450e6e },
+   { 0x00000001, 0x2e700169, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a4e },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00600001, 0x27400021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27800021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28000021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28400021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a56, 0x00010001 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00040004 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00800040, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x00800040, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x00800040, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x00800040, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x00800040, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x00800040, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x00800040, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x00800040, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b109c1 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a01 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a41 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10a81 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10ac1 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b01 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b41 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10b81 },
-   { 0x00800040, 0x2c004529, 0x00b10c00, 0x00b10a01 },
-   { 0x00800040, 0x2c204529, 0x00b10c20, 0x00b10a41 },
-   { 0x00800040, 0x2c404529, 0x00b10c40, 0x00b10a81 },
-   { 0x00800040, 0x2c604529, 0x00b10c60, 0x00b10ac1 },
-   { 0x00800040, 0x2c804529, 0x00b10c80, 0x00b10b01 },
-   { 0x00800040, 0x2ca04529, 0x00b10ca0, 0x00b10b41 },
-   { 0x00800040, 0x2cc04529, 0x00b10cc0, 0x00b10b81 },
-   { 0x00800040, 0x2ce04529, 0x00b10ce0, 0x00b10bc1 },
-   { 0x00800008, 0x2c002d29, 0x00b10c00, 0x00020002 },
-   { 0x00800008, 0x2c202d29, 0x00b10c20, 0x00020002 },
-   { 0x00800008, 0x2c402d29, 0x00b10c40, 0x00020002 },
-   { 0x00800008, 0x2c602d29, 0x00b10c60, 0x00020002 },
-   { 0x00800008, 0x2c802d29, 0x00b10c80, 0x00020002 },
-   { 0x00800008, 0x2ca02d29, 0x00b10ca0, 0x00020002 },
-   { 0x00800008, 0x2cc02d29, 0x00b10cc0, 0x00020002 },
-   { 0x00800008, 0x2ce02d29, 0x00b10ce0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b109c1 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a01 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a41 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10a81 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10ac1 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b01 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b41 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10b81 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2bc01d29, 0x008d0e60, 0x0411a004 },
-   { 0x80800042, 0x2c004629, 0x00b109c0, 0x00b10a00 },
-   { 0x80800042, 0x2c204629, 0x00b10a00, 0x00b10a40 },
-   { 0x80800042, 0x2c404629, 0x00b10a40, 0x00b10a80 },
-   { 0x80800042, 0x2c604629, 0x00b10a80, 0x00b10ac0 },
-   { 0x80800042, 0x2c804629, 0x00b10ac0, 0x00b10b00 },
-   { 0x80800042, 0x2ca04629, 0x00b10b00, 0x00b10b40 },
-   { 0x80800042, 0x2cc04629, 0x00b10b40, 0x00b10b80 },
-   { 0x80800042, 0x2ce04629, 0x00b10b80, 0x00b10bc0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x29c01d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a001d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a401d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00800031, 0x2a801d29, 0x008d0e60, 0x0411a004 },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2ac01d29, 0x008d0e60, 0x0418a004 },
-   { 0x00800001, 0x2c000229, 0x00b109c0, 0x00000000 },
-   { 0x00800001, 0x2c200229, 0x00b10a00, 0x00000000 },
-   { 0x00800001, 0x2c400229, 0x00b10a40, 0x00000000 },
-   { 0x00800001, 0x2c600229, 0x00b10a80, 0x00000000 },
-   { 0x00800001, 0x2c800229, 0x00b10ac0, 0x00000000 },
-   { 0x00800001, 0x2ca00229, 0x00b10b00, 0x00000000 },
-   { 0x00800001, 0x2cc00229, 0x00b10b40, 0x00000000 },
-   { 0x00800001, 0x2ce00229, 0x00b10b80, 0x00000000 },
-   { 0x00600001, 0x23a00021, 0x008d0c00, 0x00000000 },
-   { 0x00600001, 0x23e00021, 0x008d0c20, 0x00000000 },
-   { 0x00600001, 0x24200021, 0x008d0c40, 0x00000000 },
-   { 0x00600001, 0x24600021, 0x008d0c60, 0x00000000 },
-   { 0x00600001, 0x24a00021, 0x008d0c80, 0x00000000 },
-   { 0x00600001, 0x24e00021, 0x008d0ca0, 0x00000000 },
-   { 0x00600001, 0x25200021, 0x008d0cc0, 0x00000000 },
-   { 0x00600001, 0x25600021, 0x008d0ce0, 0x00000000 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x0020000c, 0x2e6e2dad, 0x0045002e, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a56 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000020 },
+   { 0x00600001, 0x27600021, 0x008d0400, 0x00000000 },
+   { 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 },
+   { 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 },
+   { 0x00600001, 0x28200021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28600021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00010001 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00010001 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x0021002e, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210030, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25800129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25a00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25c00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25e00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26000129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26200129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26400129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26600129, 0x008d0aa0, 0x00000000 },
-   { 0x0020000c, 0x2e6e2dad, 0x00450036, 0x00020002 },
-   { 0x0020000c, 0x2e601ca5, 0x00450e80, 0x00000001 },
-   { 0x00200040, 0x2e6034a5, 0x00450e60, 0x00450e6e },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a4e },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802001, 0x29400129, 0x008d0400, 0x00000000 },
+   { 0x00802001, 0x29800129, 0x008d0440, 0x00000000 },
+   { 0x00802001, 0x29c00129, 0x008d0480, 0x00000000 },
+   { 0x00802001, 0x2a000129, 0x008d04c0, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a56, 0x00020002 },
+   { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee },
    { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe },
-   { 0x02000005, 0x20002e3c, 0x0021003f, 0x00040004 },
+   { 0x02000005, 0x20002e3c, 0x00210a5f, 0x00040004 },
    { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 },
-   { 0x01000005, 0x20002d3c, 0x00210036, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000036 },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0001000f },
-   { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x00800040, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x00800040, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x00800040, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x00800040, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ac1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0ae1 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b01 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b21 },
-   { 0x00800040, 0x29c04529, 0x00ad09c0, 0x00ad0ae1 },
-   { 0x00800040, 0x29e04529, 0x00ad09e0, 0x00ad0b01 },
-   { 0x00800040, 0x2a004529, 0x00ad0a00, 0x00ad0b21 },
-   { 0x00800040, 0x2a204529, 0x00ad0a20, 0x00ad0b41 },
-   { 0x00800040, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x00800040, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x00800040, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x00800040, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b61 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0b81 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0ba1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0bc1 },
-   { 0x00800040, 0x2a404529, 0x00ad0a40, 0x00ad0b81 },
-   { 0x00800040, 0x2a604529, 0x00ad0a60, 0x00ad0ba1 },
-   { 0x00800040, 0x2a804529, 0x00ad0a80, 0x00ad0bc1 },
-   { 0x00800040, 0x2aa04529, 0x00ad0aa0, 0x00ad0be1 },
-   { 0x80800008, 0x29c02d29, 0x00b109c0, 0x00020002 },
-   { 0x80800008, 0x29e02d29, 0x00b109e0, 0x00020002 },
-   { 0x80800008, 0x2a002d29, 0x00b10a00, 0x00020002 },
-   { 0x80800008, 0x2a202d29, 0x00b10a20, 0x00020002 },
-   { 0x80800008, 0x2a402d29, 0x00b10a40, 0x00020002 },
-   { 0x80800008, 0x2a602d29, 0x00b10a60, 0x00020002 },
-   { 0x80800008, 0x2a802d29, 0x00b10a80, 0x00020002 },
-   { 0x80800008, 0x2aa02d29, 0x00b10aa0, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000028 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ac1 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0ae1 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b01 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b21 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b61 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0b81 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0ba1 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0bc1 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000001c },
-   { 0x01000005, 0x20002d3c, 0x00210038, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000000f },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0000000f },
-   { 0x00800031, 0x2b401d29, 0x00ad0e60, 0x0411a005 },
-   { 0x00800031, 0x2be01d29, 0x00ad0e60, 0x0411a006 },
-   { 0x80800042, 0x29c04629, 0x00ad0ac0, 0x00ad0ae0 },
-   { 0x80800042, 0x29e04629, 0x00ad0ae0, 0x00ad0b00 },
-   { 0x80800042, 0x2a004629, 0x00ad0b00, 0x00ad0b20 },
-   { 0x80800042, 0x2a204629, 0x00ad0b20, 0x00ad0b40 },
-   { 0x80800042, 0x2a404629, 0x00ad0b60, 0x00ad0b80 },
-   { 0x80800042, 0x2a604629, 0x00ad0b80, 0x00ad0ba0 },
-   { 0x80800042, 0x2a804629, 0x00ad0ba0, 0x00ad0bc0 },
-   { 0x80800042, 0x2aa04629, 0x00ad0bc0, 0x00ad0be0 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000000b },
-   { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x00ad0e60, 0x0414a005 },
-   { 0x00800031, 0x2b601d29, 0x00ad0e60, 0x0414a006 },
-   { 0x00800001, 0x29c00229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x29e00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x2a000229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x2a200229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x2a400229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x2a600229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x2a800229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2aa00229, 0x00ad0bc0, 0x00000000 },
-   { 0x00600001, 0x25900129, 0x008d09c0, 0x00000000 },
-   { 0x00600001, 0x25b00129, 0x008d09e0, 0x00000000 },
-   { 0x00600001, 0x25d00129, 0x008d0a00, 0x00000000 },
-   { 0x00600001, 0x25f00129, 0x008d0a20, 0x00000000 },
-   { 0x00600001, 0x26100129, 0x008d0a40, 0x00000000 },
-   { 0x00600001, 0x26300129, 0x008d0a60, 0x00000000 },
-   { 0x00600001, 0x26500129, 0x008d0a80, 0x00000000 },
-   { 0x00600001, 0x26700129, 0x008d0aa0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a56 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000030 },
+   { 0x00802001, 0x29500129, 0x008d0400, 0x00000000 },
+   { 0x00802001, 0x29900129, 0x008d0440, 0x00000000 },
+   { 0x00802001, 0x29d00129, 0x008d0480, 0x00000000 },
+   { 0x00802001, 0x2a100129, 0x008d04c0, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000040 },
diff --git a/src/xvmc/shader/mc/frame_backward_igd.g4a b/src/xvmc/shader/mc/frame_backward_igd.g4a
index 338ae1e..774c119 100644
--- a/src/xvmc/shader/mc/frame_backward_igd.g4a
+++ b/src/xvmc/shader/mc/frame_backward_igd.g4a
@@ -1,69 +1,50 @@
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
 /*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-
-/* shader for backward predict mc
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+define(`UV_red',`0xffffffffUD')
+define(`UV_white',`0x7f7f7f7fUD')
+define(`UV_green',`0x00000000UD')
+mov(1) g31.8<1>UD 0x000f000fUD  { align1 };
+mov(16) m1<1>UD 0xFFFFFFFFUD {align1 compr};
+mov(16) m3<1>UD 0xFFFFFFFFUD {align1 compr};
+mov(16) m5<1>UD 0xFFFFFFFFUD {align1 compr};
+mov(16) m7<1>UD 0xFFFFFFFFUD {align1 compr};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(0, 0, 2, 0) mlen 9 rlen 0 { align1 };
+shr (2) g31.0<1>UD g82.0<2,2,1>UD  1UW {align1};
+mov(1) g31.8<1>UD 0x00070007UD  { align1 };
+mov (16) m1<1>UD UV_green {align1 compr};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
 */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
 
-include(`block_clear.g4i')
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x50UD {align1};  //jump to the lib to do IDCT         
+ 
+//Y, (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) 
+asr (2) g31.14<1>W g82.18<2,2,1>W 1W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g32.16<1>UW 1UW {align1};           //0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A52UD {align1};        //g82.18,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x0UD {align1};   //jump to the lib to read reference data  
 
-mov (2) g1.14<1>UW g1.18<2,2,1>UW {align1};
-/* save payload */
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1}; 
-/* 8x8 media read/write payload */
-mov (1) g1.8<1>UD 0x0070007UD {align1};  
-/* save payload, again */
-define(`dest', `g118')
-define(`input_surface',	`7')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-/* Y */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-include(`motion_frame_y_igd.g4i')
-/* motion_vector = motion_vector >> 1 */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
-asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
-/* U */
-define(`input_surface1',	`8')
-define(`input_surface2',	`9')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv_igd.g4i')
+//UV, (x', y') = (x >> 1, y >> 1) + (motion_vector.x >> 2, motion_vector.y >> 2)
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+asr (2) g31.14<1>W g82.18<2,2,1>W 2W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x10UD {align1};          //jump to the lib to read reference data  
 
-/* V */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-include(`addidct.g4i')
-
-send (16) 0 acc0<1>UW g0<8,8,1>UW 
-	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
+add (1) ip g21.0<1,1,1>UD 0x40UD {align1};          //jump to the lib to add the reference and idct data
diff --git a/src/xvmc/shader/mc/frame_backward_igd.g4b b/src/xvmc/shader/mc/frame_backward_igd.g4b
index dbb1320..1b533e5 100644
--- a/src/xvmc/shader/mc/frame_backward_igd.g4b
+++ b/src/xvmc/shader/mc/frame_backward_igd.g4b
@@ -1,374 +1,15 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00200001, 0x202e0129, 0x00450032, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a008 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a009 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000050 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00010001 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24100169, 0x00000000, 0x00010001 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a52 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000000 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00020002 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000010 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000040 },
diff --git a/src/xvmc/shader/mc/frame_f_b_igd.g4a b/src/xvmc/shader/mc/frame_f_b_igd.g4a
index ca7952e..35231f1 100644
--- a/src/xvmc/shader/mc/frame_f_b_igd.g4a
+++ b/src/xvmc/shader/mc/frame_f_b_igd.g4a
@@ -1,131 +1,96 @@
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
 /*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-
-/* shader for forward and backward predict mc
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+define(`UV_red',`0xffffffffUD')
+define(`UV_white',`0x7f7f7f7fUD')
+define(`UV_green',`0x00000000UD')
+mov(1) g31.8<1>UD 0x000f000fUD  { align1 };
+mov(16) m1<1>UD 0xFFFFFFFFUD {align1 compr};
+mov(16) m3<1>UD 0xFFFFFFFFUD {align1 compr};
+mov(16) m5<1>UD 0xFFFFFFFFUD {align1 compr};
+mov(16) m7<1>UD 0xFFFFFFFFUD {align1 compr};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(0, 0, 2, 0) mlen 9 rlen 0 { align1 };
+shr (2) g31.0<1>UD g82.0<2,2,1>UD  1UW {align1};
+mov(1) g31.8<1>UD 0x00070007UD  { align1 };
+mov (16) m1<1>UD UV_green {align1 compr};
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 };
+send (16) 0 acc0<1>UW g31<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 };
+send (16) 0 acc0<1>UW g0<8,8,1>UW 
+	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
 */
-/* (x', y') = (x, y) + (motion_vector1.x >> 1, motion_vector1.y >> 1)
-/* (x'', y'') = (x, y) + (motion_vector2.x >> 1, motion_vector2.y >> 1)
-/* f(x, y) = (motion_forward(x`, y`) + motion_backward(x'', y'') + 1) / 2 */
 
-//Save payload
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
-include(`block_clear.g4i')
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x50UD {align1};         //jump to the lib to do IDCT
 
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
-mov (1) g1.8<1>UD 0x0070007UD  {align1};
-mov (8) g2.0<1>UD g1.0<8,8,1>UD {align1};
-/* Y */
-//Forward
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface',	`4')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-include(`motion_frame_y_igd.g4i')
-mov (16) g52.0<1>UD g28.0<16,16,1>UD {align1 compr};
-mov (16) g54.0<1>UD g30.0<16,16,1>UD {align1 compr};
-mov (16) g56.0<1>UD g32.0<16,16,1>UD {align1 compr};
-mov (16) g58.0<1>UD g34.0<16,16,1>UD {align1 compr};
-mov (16) g60.0<1>UD g36.0<16,16,1>UD {align1 compr};
-mov (16) g62.0<1>UD g38.0<16,16,1>UD {align1 compr};
-mov (16) g64.0<1>UD g40.0<16,16,1>UD {align1 compr};
-mov (16) g66.0<1>UD g42.0<16,16,1>UD {align1 compr};
-//Backward
-asr (2) g1.14<1>W g115.18<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface',	`7')
-define(`mv1',	`g115.18')
-define(`mv2',	`g115.20')
-include(`motion_frame_y_igd.g4i')
+//Y, Forward
+asr (2) g31.14<1>W g82.14<2,2,1>W 1W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g32.16<1>UW 0UW {align1};            //0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A4EUD {align1};         //g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x0UD {align1};   //jump to the lib to read reference data 
 
-//Average
-avg.sat (16) g28.0<1>UW g28.0<16,16,1>UW g52.0<16,16,1>UW {align1};
-avg.sat (16) g29.0<1>UW g29.0<16,16,1>UW g53.0<16,16,1>UW {align1};
-avg.sat (16) g30.0<1>UW g30.0<16,16,1>UW g54.0<16,16,1>UW {align1};
-avg.sat (16) g31.0<1>UW g31.0<16,16,1>UW g55.0<16,16,1>UW {align1};
-avg.sat (16) g32.0<1>UW g32.0<16,16,1>UW g56.0<16,16,1>UW {align1};
-avg.sat (16) g33.0<1>UW g33.0<16,16,1>UW g57.0<16,16,1>UW {align1};
-avg.sat (16) g34.0<1>UW g34.0<16,16,1>UW g58.0<16,16,1>UW {align1};
-avg.sat (16) g35.0<1>UW g35.0<16,16,1>UW g59.0<16,16,1>UW {align1};
-avg.sat (16) g36.0<1>UW g36.0<16,16,1>UW g60.0<16,16,1>UW {align1};
-avg.sat (16) g37.0<1>UW g37.0<16,16,1>UW g61.0<16,16,1>UW {align1};
-avg.sat (16) g38.0<1>UW g38.0<16,16,1>UW g62.0<16,16,1>UW {align1};
-avg.sat (16) g39.0<1>UW g39.0<16,16,1>UW g63.0<16,16,1>UW {align1};
-avg.sat (16) g40.0<1>UW g40.0<16,16,1>UW g64.0<16,16,1>UW {align1};
-avg.sat (16) g41.0<1>UW g41.0<16,16,1>UW g65.0<16,16,1>UW {align1};
-avg.sat (16) g42.0<1>UW g42.0<16,16,1>UW g66.0<16,16,1>UW {align1};
-avg.sat (16) g43.0<1>UW g43.0<16,16,1>UW g67.0<16,16,1>UW {align1};
+//Save Forward
+mov (16) g108.0<1>UD g58.0<16,16,1>UD {align1 compr};
+mov (16) g110.0<1>UD g60.0<16,16,1>UD {align1 compr};
+mov (16) g112.0<1>UD g62.0<16,16,1>UD {align1 compr};
+mov (16) g114.0<1>UD g64.0<16,16,1>UD {align1 compr};
+mov (16) g116.0<1>UD g66.0<16,16,1>UD {align1 compr};
+mov (16) g118.0<1>UD g68.0<16,16,1>UD {align1 compr};
+mov (16) g120.0<1>UD g70.0<16,16,1>UD {align1 compr};
+mov (16) g122.0<1>UD g72.0<16,16,1>UD {align1 compr};
 
-/* UV */
-//Forward
-shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
-asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
+//Y, Backward
+asr (2) g31.14<1>W g82.18<2,2,1>W 1W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g32.16<1>UW 1UW {align1};            //0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A52UD {align1};         //g82.18,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x0UD {align1};   //jump to the lib to read reference data 
+//Average Forward and Backward
+avg (32) g58.0<1>UW g58.0<16,16,1>UW g108.0<16,16,1>UW {align1 compr};
+avg (32) g60.0<1>UW g60.0<16,16,1>UW g110.0<16,16,1>UW {align1 compr};
+avg (32) g62.0<1>UW g62.0<16,16,1>UW g112.0<16,16,1>UW {align1 compr};
+avg (32) g64.0<1>UW g64.0<16,16,1>UW g114.0<16,16,1>UW {align1 compr};
+avg (32) g66.0<1>UW g66.0<16,16,1>UW g116.0<16,16,1>UW {align1 compr};
+avg (32) g68.0<1>UW g68.0<16,16,1>UW g118.0<16,16,1>UW {align1 compr};
+avg (32) g70.0<1>UW g70.0<16,16,1>UW g120.0<16,16,1>UW {align1 compr};
+avg (32) g72.0<1>UW g72.0<16,16,1>UW g122.0<16,16,1>UW {align1 compr};
 
-define(`input_surface1',	`5')
-define(`input_surface2',	`6')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv_igd.g4i')
-mov (16) g122.0<1>UB g44.0<16,16,2>UB {align1};
-mov (16) g122.16<1>UB g45.0<16,16,2>UB {align1};
-mov (16) g123.0<1>UB g46.0<16,16,2>UB {align1};
-mov (16) g123.16<1>UB g47.0<16,16,2>UB {align1};
-mov (16) g124.0<1>UB g48.0<16,16,2>UB {align1};
-mov (16) g124.16<1>UB g49.0<16,16,2>UB {align1};
-mov (16) g125.0<1>UB g50.0<16,16,2>UB {align1};
-mov (16) g125.16<1>UB g51.0<16,16,2>UB {align1};
-//Backward
-asr (2) g115.18<1>W g115.18<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.18<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface1',	`8')
-define(`input_surface2',	`9')
-define(`mv1',	`g115.18')
-define(`mv2',	`g115.20')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv_igd.g4i')
+//UV, Forward
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+asr (2) g31.14<1>W g82.14<2,2,1>W 2W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g32.16<1>UW 0UW {align1};                   //0:forward 1:backward
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x10UD {align1};          //jump to the lib to read reference data  
 
-//Average
-avg.sat (16) g44.0<1>UW g44.0<16,16,1>UW g122.0<16,16,1>UB {align1};
-avg.sat (16) g45.0<1>UW g45.0<16,16,1>UW g122.16<16,16,1>UB {align1};
-avg.sat (16) g46.0<1>UW g46.0<16,16,1>UW g123.0<16,16,1>UB {align1};
-avg.sat (16) g47.0<1>UW g47.0<16,16,1>UW g123.16<16,16,1>UB {align1};
-avg.sat (16) g48.0<1>UW g48.0<16,16,1>UW g124.0<16,16,1>UB {align1};
-avg.sat (16) g49.0<1>UW g49.0<16,16,1>UW g124.16<16,16,1>UB {align1};
-avg.sat (16) g50.0<1>UW g50.0<16,16,1>UW g125.0<16,16,1>UB {align1};
-avg.sat (16) g51.0<1>UW g51.0<16,16,1>UW g125.16<16,16,1>UB {align1};
+//Save UV Forward
+mov (32) g108.0<1>UW g74.0<16,16,1>UW {align1 compr};
+mov (32) g110.0<1>UW g76.0<16,16,1>UW {align1 compr};
+mov (32) g112.0<1>UW g78.0<16,16,1>UW {align1 compr};
+mov (32) g114.0<1>UW g80.0<16,16,1>UW {align1 compr};
+//UV, Backward
+asr (2) g31.14<1>W g82.18<2,2,1>W 2W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g32.16<1>UW 1UW {align1};                   //0:forward 1:backward
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x10UD {align1};          //jump to the lib to read reference data 
 
-include(`addidct.g4i')
+//Average Forward and Backward
+avg (32) g74.0<1>UW g74.0<16,16,1>UW g108.0<16,16,1>UW {align1 compr};
+avg (32) g76.0<1>UW g76.0<16,16,1>UW g110.0<16,16,1>UW {align1 compr};
+avg (32) g78.0<1>UW g78.0<16,16,1>UW g112.0<16,16,1>UW {align1 compr};
+avg (32) g80.0<1>UW g80.0<16,16,1>UW g114.0<16,16,1>UW {align1 compr};
 
-send (16) 0 acc0<1>UW g0<8,8,1>UW 
-	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
+add (1) ip g21.0<1,1,1>UD 0x40UD {align1};         //jump to the lib to add the reference and idct data
diff --git a/src/xvmc/shader/mc/frame_f_b_igd.g4b b/src/xvmc/shader/mc/frame_f_b_igd.g4b
index f838d7b..6505aec 100644
--- a/src/xvmc/shader/mc/frame_f_b_igd.g4b
+++ b/src/xvmc/shader/mc/frame_f_b_igd.g4b
@@ -1,573 +1,51 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00600001, 0x20400021, 0x008d0020, 0x00000000 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x00802001, 0x26800021, 0x00b10380, 0x00000000 },
-   { 0x00802001, 0x26c00021, 0x00b103c0, 0x00000000 },
-   { 0x00802001, 0x27000021, 0x00b10400, 0x00000000 },
-   { 0x00802001, 0x27400021, 0x00b10440, 0x00000000 },
-   { 0x00802001, 0x27800021, 0x00b10480, 0x00000000 },
-   { 0x00802001, 0x27c00021, 0x00b104c0, 0x00000000 },
-   { 0x00802001, 0x28000021, 0x00b10500, 0x00000000 },
-   { 0x00802001, 0x28400021, 0x00b10540, 0x00000000 },
-   { 0x0020000c, 0x202e3dad, 0x00450e72, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e72, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
-   { 0x01000005, 0x20000d3c, 0x00210e74, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
-   { 0x01000005, 0x20000d3c, 0x00210e74, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a007 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a007 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a007 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x80800042, 0x23802529, 0x00b10380, 0x00b10680 },
-   { 0x80800042, 0x23a02529, 0x00b103a0, 0x00b106a0 },
-   { 0x80800042, 0x23c02529, 0x00b103c0, 0x00b106c0 },
-   { 0x80800042, 0x23e02529, 0x00b103e0, 0x00b106e0 },
-   { 0x80800042, 0x24002529, 0x00b10400, 0x00b10700 },
-   { 0x80800042, 0x24202529, 0x00b10420, 0x00b10720 },
-   { 0x80800042, 0x24402529, 0x00b10440, 0x00b10740 },
-   { 0x80800042, 0x24602529, 0x00b10460, 0x00b10760 },
-   { 0x80800042, 0x24802529, 0x00b10480, 0x00b10780 },
-   { 0x80800042, 0x24a02529, 0x00b104a0, 0x00b107a0 },
-   { 0x80800042, 0x24c02529, 0x00b104c0, 0x00b107c0 },
-   { 0x80800042, 0x24e02529, 0x00b104e0, 0x00b107e0 },
-   { 0x80800042, 0x25002529, 0x00b10500, 0x00b10800 },
-   { 0x80800042, 0x25202529, 0x00b10520, 0x00b10820 },
-   { 0x80800042, 0x25402529, 0x00b10540, 0x00b10840 },
-   { 0x80800042, 0x25602529, 0x00b10560, 0x00b10860 },
-   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a005 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a006 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x00800001, 0x2f400231, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x2f500231, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x2f600231, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x2f700231, 0x00b205e0, 0x00000000 },
-   { 0x00800001, 0x2f800231, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x2f900231, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x2fa00231, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x2fb00231, 0x00b20660, 0x00000000 },
-   { 0x0020000c, 0x2e723dad, 0x00450e72, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e72, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a008 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a009 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x80800042, 0x25804529, 0x00b10580, 0x00b10f40 },
-   { 0x80800042, 0x25a04529, 0x00b105a0, 0x00b10f50 },
-   { 0x80800042, 0x25c04529, 0x00b105c0, 0x00b10f60 },
-   { 0x80800042, 0x25e04529, 0x00b105e0, 0x00b10f70 },
-   { 0x80800042, 0x26004529, 0x00b10600, 0x00b10f80 },
-   { 0x80800042, 0x26204529, 0x00b10620, 0x00b10f90 },
-   { 0x80800042, 0x26404529, 0x00b10640, 0x00b10fa0 },
-   { 0x80800042, 0x26604529, 0x00b10660, 0x00b10fb0 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000050 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00010001 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24100169, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a4e },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000000 },
+   { 0x00802001, 0x2d800021, 0x00b10740, 0x00000000 },
+   { 0x00802001, 0x2dc00021, 0x00b10780, 0x00000000 },
+   { 0x00802001, 0x2e000021, 0x00b107c0, 0x00000000 },
+   { 0x00802001, 0x2e400021, 0x00b10800, 0x00000000 },
+   { 0x00802001, 0x2e800021, 0x00b10840, 0x00000000 },
+   { 0x00802001, 0x2ec00021, 0x00b10880, 0x00000000 },
+   { 0x00802001, 0x2f000021, 0x00b108c0, 0x00000000 },
+   { 0x00802001, 0x2f400021, 0x00b10900, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00010001 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24100169, 0x00000000, 0x00010001 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a52 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000000 },
+   { 0x00a02042, 0x27402529, 0x00b10740, 0x00b10d80 },
+   { 0x00a02042, 0x27802529, 0x00b10780, 0x00b10dc0 },
+   { 0x00a02042, 0x27c02529, 0x00b107c0, 0x00b10e00 },
+   { 0x00a02042, 0x28002529, 0x00b10800, 0x00b10e40 },
+   { 0x00a02042, 0x28402529, 0x00b10840, 0x00b10e80 },
+   { 0x00a02042, 0x28802529, 0x00b10880, 0x00b10ec0 },
+   { 0x00a02042, 0x28c02529, 0x00b108c0, 0x00b10f00 },
+   { 0x00a02042, 0x29002529, 0x00b10900, 0x00b10f40 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00020002 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24100169, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000010 },
+   { 0x00a02001, 0x2d800129, 0x00b10940, 0x00000000 },
+   { 0x00a02001, 0x2dc00129, 0x00b10980, 0x00000000 },
+   { 0x00a02001, 0x2e000129, 0x00b109c0, 0x00000000 },
+   { 0x00a02001, 0x2e400129, 0x00b10a00, 0x00000000 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a52, 0x00020002 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24100169, 0x00000000, 0x00010001 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000010 },
+   { 0x00a02042, 0x29402529, 0x00b10940, 0x00b10d80 },
+   { 0x00a02042, 0x29802529, 0x00b10980, 0x00b10dc0 },
+   { 0x00a02042, 0x29c02529, 0x00b109c0, 0x00b10e00 },
+   { 0x00a02042, 0x2a002529, 0x00b10a00, 0x00b10e40 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000040 },
diff --git a/src/xvmc/shader/mc/frame_forward_igd.g4a b/src/xvmc/shader/mc/frame_forward_igd.g4a
index f474807..11928ea 100644
--- a/src/xvmc/shader/mc/frame_forward_igd.g4a
+++ b/src/xvmc/shader/mc/frame_forward_igd.g4a
@@ -1,65 +1,30 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
+mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x50UD {align1};   //jump to the lib to do IDCT  
 
-/* shader for backward predict mc
-*/
+//Y, (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) 
+asr (2) g31.14<1>W g82.14<2,2,1>W 1W {align1};  
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g32.16<1>UW 0UW {align1};           //0:forward 1:backward
+mov (1) a0.0<1>UD 0x0A4EUD {align1};        //g82.14,motion vector
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x00UD {align1};   //jump to the lib to read reference data  
 
-/* save payload */
-mov (8) g76.0<1>UD g1.0<8,8,1>UD {align1};
-//mov (8) g77.0<1>UD g2.0<8,8,1>UD {align1};
+//UV, (x', y') = (x >> 1, y >> 1) + (motion_vector.x >> 2, motion_vector.y >> 2)
+shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
+asr (2) g31.14<1>W g82.14<2,2,1>W 2W {align1};
+add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
+mov (1) g126.8<1>UD ip {align1};
+add (1) ip g21.0<1,1,1>UD 0x10UD {align1};          //jump to the lib to read reference data  
 
-include(`block_clear.g4i')
-
-mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1}; 
-mov (1) g1.8<1>UD 0x0070007UD {align1};  
-define(`input_surface',	`4')
-define(`mv1',	`g115.14')
-define(`mv2',	`g115.16')
-/* Y */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g115.0<2,2,1>UD g1.14<2,2,1>W {align1};
-include(`motion_frame_y_igd.g4i')
-/* motion_vector = motion_vector >> 1 */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-/* U */
-shr (2) g1.0<1>UD g115.0<2,2,1>UD 1UD {align1};
-asr (2) g115.14<1>W g115.14<2,2,1>W 1W {align1};
-asr (2) g1.14<1>W g115.14<2,2,1>W 1W {align1};
-add (2) g2.0<1>UD g1.0<2,2,1>UD g1.14<2,2,1>W {align1};
-define(`input_surface1',	`5')
-define(`input_surface2',	`6')
-mov (1) g2.8<1>UD 0x007000fUD  {align1};
-include(`motion_frame_uv_igd.g4i')
-/* V */
-/* (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) */
-include(`addidct.g4i')
-
-send (16) 0 acc0<1>UW g0<8,8,1>UW 
-	thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT};
+add (1) ip g21.0<1,1,1>UD 0x40UD {align1};          //jump to the lib to add the reference and idct data
diff --git a/src/xvmc/shader/mc/frame_forward_igd.g4b b/src/xvmc/shader/mc/frame_forward_igd.g4b
index 9356180..ea7ecf8 100644
--- a/src/xvmc/shader/mc/frame_forward_igd.g4b
+++ b/src/xvmc/shader/mc/frame_forward_igd.g4b
@@ -1,373 +1,15 @@
-   { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
-   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
-   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
-   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
-   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
-   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
-   { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00100010 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x20700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x20f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00080008 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21600169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21800169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21a00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21c00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21e00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22000169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22200169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22400169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00040004 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
-   { 0x00600001, 0x21700169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21900169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21b00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21d00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x21f00169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22100169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22300169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x22500169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00020002 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22600169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22800169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22a00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x22c00169, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002d3c, 0x0021002c, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
-   { 0x00800001, 0x22e00169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23000169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23200169, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x23400169, 0x00000000, 0x00000000 },
-   { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450e60, 0x0045002e },
-   { 0x01000005, 0x20000d3c, 0x00210e6e, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x00800040, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x00800040, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x00800040, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x00800040, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x00800040, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x00800040, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x00800040, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x00800040, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x00800040, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x00800040, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x00800040, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x00800040, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x00800040, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x00800040, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x00800040, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x00800040, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c60 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c80 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca0 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc0 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce0 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d00 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d20 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d40 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d60 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d80 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da0 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc0 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de0 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e00 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e20 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f00 },
-   { 0x00800040, 0x23804529, 0x00b10380, 0x00b10c61 },
-   { 0x00800040, 0x23a04529, 0x00b103a0, 0x00b10c81 },
-   { 0x00800040, 0x23c04529, 0x00b103c0, 0x00b10ca1 },
-   { 0x00800040, 0x23e04529, 0x00b103e0, 0x00b10cc1 },
-   { 0x00800040, 0x24004529, 0x00b10400, 0x00b10ce1 },
-   { 0x00800040, 0x24204529, 0x00b10420, 0x00b10d01 },
-   { 0x00800040, 0x24404529, 0x00b10440, 0x00b10d21 },
-   { 0x00800040, 0x24604529, 0x00b10460, 0x00b10d41 },
-   { 0x00800040, 0x24804529, 0x00b10480, 0x00b10d61 },
-   { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10d81 },
-   { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10da1 },
-   { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10dc1 },
-   { 0x00800040, 0x25004529, 0x00b10500, 0x00b10de1 },
-   { 0x00800040, 0x25204529, 0x00b10520, 0x00b10e01 },
-   { 0x00800040, 0x25404529, 0x00b10540, 0x00b10e21 },
-   { 0x00800040, 0x25604529, 0x00b10560, 0x00b10f01 },
-   { 0x80800008, 0x23802d29, 0x00b10380, 0x00020002 },
-   { 0x80800008, 0x23a02d29, 0x00b103a0, 0x00020002 },
-   { 0x80800008, 0x23c02d29, 0x00b103c0, 0x00020002 },
-   { 0x80800008, 0x23e02d29, 0x00b103e0, 0x00020002 },
-   { 0x80800008, 0x24002d29, 0x00b10400, 0x00020002 },
-   { 0x80800008, 0x24202d29, 0x00b10420, 0x00020002 },
-   { 0x80800008, 0x24402d29, 0x00b10440, 0x00020002 },
-   { 0x80800008, 0x24602d29, 0x00b10460, 0x00020002 },
-   { 0x80800008, 0x24802d29, 0x00b10480, 0x00020002 },
-   { 0x80800008, 0x24a02d29, 0x00b104a0, 0x00020002 },
-   { 0x80800008, 0x24c02d29, 0x00b104c0, 0x00020002 },
-   { 0x80800008, 0x24e02d29, 0x00b104e0, 0x00020002 },
-   { 0x80800008, 0x25002d29, 0x00b10500, 0x00020002 },
-   { 0x80800008, 0x25202d29, 0x00b10520, 0x00020002 },
-   { 0x80800008, 0x25402d29, 0x00b10540, 0x00020002 },
-   { 0x80800008, 0x25602d29, 0x00b10560, 0x00020002 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c41 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c61 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10c81 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10ca1 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10cc1 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10ce1 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d01 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d21 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d41 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d61 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10d81 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10da1 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10dc1 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10de1 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e01 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10e21 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e },
-   { 0x01000005, 0x20000d3c, 0x00210e70, 0x00000001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0000001f },
-   { 0x00800031, 0x2f001d29, 0x008d0040, 0x0411a004 },
-   { 0x80800042, 0x23804629, 0x00b10c40, 0x00b10c60 },
-   { 0x80800042, 0x23a04629, 0x00b10c60, 0x00b10c80 },
-   { 0x80800042, 0x23c04629, 0x00b10c80, 0x00b10ca0 },
-   { 0x80800042, 0x23e04629, 0x00b10ca0, 0x00b10cc0 },
-   { 0x80800042, 0x24004629, 0x00b10cc0, 0x00b10ce0 },
-   { 0x80800042, 0x24204629, 0x00b10ce0, 0x00b10d00 },
-   { 0x80800042, 0x24404629, 0x00b10d00, 0x00b10d20 },
-   { 0x80800042, 0x24604629, 0x00b10d20, 0x00b10d40 },
-   { 0x80800042, 0x24804629, 0x00b10d40, 0x00b10d60 },
-   { 0x80800042, 0x24a04629, 0x00b10d60, 0x00b10d80 },
-   { 0x80800042, 0x24c04629, 0x00b10d80, 0x00b10da0 },
-   { 0x80800042, 0x24e04629, 0x00b10da0, 0x00b10dc0 },
-   { 0x80800042, 0x25004629, 0x00b10dc0, 0x00b10de0 },
-   { 0x80800042, 0x25204629, 0x00b10de0, 0x00b10e00 },
-   { 0x80800042, 0x25404629, 0x00b10e00, 0x00b10e20 },
-   { 0x80800042, 0x25604629, 0x00b10e20, 0x00b10f00 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007001f },
-   { 0x00800031, 0x2c401d29, 0x008d0040, 0x0418a004 },
-   { 0x00000040, 0x20440c21, 0x00210044, 0x00000008 },
-   { 0x00800031, 0x2d401d29, 0x008d0040, 0x0418a004 },
-   { 0x00800001, 0x23800229, 0x00b10c40, 0x00000000 },
-   { 0x00800001, 0x23a00229, 0x00b10c60, 0x00000000 },
-   { 0x00800001, 0x23c00229, 0x00b10c80, 0x00000000 },
-   { 0x00800001, 0x23e00229, 0x00b10ca0, 0x00000000 },
-   { 0x00800001, 0x24000229, 0x00b10cc0, 0x00000000 },
-   { 0x00800001, 0x24200229, 0x00b10ce0, 0x00000000 },
-   { 0x00800001, 0x24400229, 0x00b10d00, 0x00000000 },
-   { 0x00800001, 0x24600229, 0x00b10d20, 0x00000000 },
-   { 0x00800001, 0x24800229, 0x00b10d40, 0x00000000 },
-   { 0x00800001, 0x24a00229, 0x00b10d60, 0x00000000 },
-   { 0x00800001, 0x24c00229, 0x00b10d80, 0x00000000 },
-   { 0x00800001, 0x24e00229, 0x00b10da0, 0x00000000 },
-   { 0x00800001, 0x25000229, 0x00b10dc0, 0x00000000 },
-   { 0x00800001, 0x25200229, 0x00b10de0, 0x00000000 },
-   { 0x00800001, 0x25400229, 0x00b10e00, 0x00000000 },
-   { 0x00800001, 0x25600229, 0x00b10e20, 0x00000000 },
-   { 0x00200008, 0x20200c21, 0x00450e60, 0x00000001 },
-   { 0x0020000c, 0x2e6e3dad, 0x00450e6e, 0x00010001 },
-   { 0x0020000c, 0x202e3dad, 0x00450e6e, 0x00010001 },
-   { 0x00200040, 0x20403421, 0x00450020, 0x0045002e },
-   { 0x00000001, 0x20480061, 0x00000000, 0x0007000f },
-   { 0x00800031, 0x2ac01d29, 0x008d0040, 0x0414a005 },
-   { 0x00800031, 0x2b401d29, 0x008d0040, 0x0414a006 },
-   { 0x00800001, 0x25800229, 0x00ad0ac0, 0x00000000 },
-   { 0x00800001, 0x25a00229, 0x00ad0ae0, 0x00000000 },
-   { 0x00800001, 0x25c00229, 0x00ad0b00, 0x00000000 },
-   { 0x00800001, 0x25e00229, 0x00ad0b20, 0x00000000 },
-   { 0x00800001, 0x26000229, 0x00ad0b40, 0x00000000 },
-   { 0x00800001, 0x26200229, 0x00ad0b60, 0x00000000 },
-   { 0x00800001, 0x26400229, 0x00ad0b80, 0x00000000 },
-   { 0x00800001, 0x26600229, 0x00ad0ba0, 0x00000000 },
-   { 0x00600001, 0x20200021, 0x008d0980, 0x00000000 },
-   { 0x00800001, 0x458101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45a101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45c101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x45e101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x460101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x462101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x464101f1, 0x00000000, 0x00000000 },
-   { 0x00800001, 0x466101f1, 0x00000000, 0x00000000 },
-   { 0x02000005, 0x20002e3c, 0x0021003e, 0x00010001 },
-   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10080, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b100a0, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b100c0, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100e0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b10100, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b10120, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b10140, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b10160, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b10180, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b101a0, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b101c0, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b101e0, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10200, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10220, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
-   { 0x00800040, 0x238045ad, 0x00b10060, 0x00b20380 },
-   { 0x00800040, 0x23a045ad, 0x00b10160, 0x00b203a0 },
-   { 0x00800040, 0x23c045ad, 0x00b10080, 0x00b203c0 },
-   { 0x00800040, 0x23e045ad, 0x00b10180, 0x00b203e0 },
-   { 0x00800040, 0x240045ad, 0x00b100a0, 0x00b20400 },
-   { 0x00800040, 0x242045ad, 0x00b101a0, 0x00b20420 },
-   { 0x00800040, 0x244045ad, 0x00b100c0, 0x00b20440 },
-   { 0x00800040, 0x246045ad, 0x00b101c0, 0x00b20460 },
-   { 0x00800040, 0x248045ad, 0x00b100e0, 0x00b20480 },
-   { 0x00800040, 0x24a045ad, 0x00b101e0, 0x00b204a0 },
-   { 0x00800040, 0x24c045ad, 0x00b10100, 0x00b204c0 },
-   { 0x00800040, 0x24e045ad, 0x00b10200, 0x00b204e0 },
-   { 0x00800040, 0x250045ad, 0x00b10120, 0x00b20500 },
-   { 0x00800040, 0x252045ad, 0x00b10220, 0x00b20520 },
-   { 0x00800040, 0x254045ad, 0x00b10140, 0x00b20540 },
-   { 0x00800040, 0x256045ad, 0x00b10240, 0x00b20560 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
-   { 0x80800001, 0x438001b1, 0x00b10380, 0x00000000 },
-   { 0x80800001, 0x43a001b1, 0x00b103a0, 0x00000000 },
-   { 0x80800001, 0x43c001b1, 0x00b103c0, 0x00000000 },
-   { 0x80800001, 0x43e001b1, 0x00b103e0, 0x00000000 },
-   { 0x80800001, 0x440001b1, 0x00b10400, 0x00000000 },
-   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
-   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
-   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
-   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
-   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
-   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
-   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
-   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
-   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
-   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
-   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20380, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b203a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b203c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b203e0, 0x00000000 },
-   { 0x00800001, 0x20600232, 0x00b20400, 0x00000000 },
-   { 0x00800001, 0x20700232, 0x00b20420, 0x00000000 },
-   { 0x00800001, 0x20800232, 0x00b20440, 0x00000000 },
-   { 0x00800001, 0x20900232, 0x00b20460, 0x00000000 },
-   { 0x00800001, 0x20a00232, 0x00b20480, 0x00000000 },
-   { 0x00800001, 0x20b00232, 0x00b204a0, 0x00000000 },
-   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
-   { 0x00800001, 0x20d00232, 0x00b204e0, 0x00000000 },
-   { 0x00800001, 0x20e00232, 0x00b20500, 0x00000000 },
-   { 0x00800001, 0x20f00232, 0x00b20520, 0x00000000 },
-   { 0x00800001, 0x21000232, 0x00b20540, 0x00000000 },
-   { 0x00800001, 0x21100232, 0x00b20560, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05902000 },
-   { 0x00000001, 0x20280061, 0x00000000, 0x00070007 },
-   { 0x00200008, 0x20201c21, 0x00450020, 0x00000001 },
-   { 0x00800040, 0x258025a9, 0x00b10260, 0x00b10580 },
-   { 0x00800040, 0x25a025a9, 0x00b10280, 0x00b105a0 },
-   { 0x00800040, 0x25c025a9, 0x00b102a0, 0x00b105c0 },
-   { 0x00800040, 0x25e025a9, 0x00b102c0, 0x00b105e0 },
-   { 0x80800001, 0x45800131, 0x00b10580, 0x00000000 },
-   { 0x80800001, 0x45a00131, 0x00b105a0, 0x00000000 },
-   { 0x80800001, 0x45c00131, 0x00b105c0, 0x00000000 },
-   { 0x80800001, 0x45e00131, 0x00b105e0, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20580, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b205a0, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b205c0, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b205e0, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302001 },
-   { 0x00800040, 0x260025a9, 0x00b102e0, 0x00b10600 },
-   { 0x00800040, 0x262025a9, 0x00b10300, 0x00b10620 },
-   { 0x00800040, 0x264025a9, 0x00b10320, 0x00b10640 },
-   { 0x00800040, 0x266025a9, 0x00b10340, 0x00b10660 },
-   { 0x80800001, 0x46000131, 0x00b10600, 0x00000000 },
-   { 0x80800001, 0x46200131, 0x00b10620, 0x00000000 },
-   { 0x80800001, 0x46400131, 0x00b10640, 0x00000000 },
-   { 0x80800001, 0x46600131, 0x00b10660, 0x00000000 },
-   { 0x00800001, 0x20200232, 0x00b20600, 0x00000000 },
-   { 0x00800001, 0x20300232, 0x00b20620, 0x00000000 },
-   { 0x00800001, 0x20400232, 0x00b20640, 0x00000000 },
-   { 0x00800001, 0x20500232, 0x00b20660, 0x00000000 },
-   { 0x00800031, 0x24001d28, 0x008d0020, 0x05302002 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
-   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000050 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00010001 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x24100169, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x22000060, 0x00000000, 0x00000a4e },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000000 },
+   { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 },
+   { 0x0020000c, 0x23ee3dad, 0x00450a4e, 0x00020002 },
+   { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee },
+   { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000010 },
+   { 0x00000040, 0x34000c20, 0x002102a0, 0x00000040 },
diff --git a/src/xvmc/shader/mc/motion_field_uv_igd.g4i b/src/xvmc/shader/mc/motion_field_uv_igd.g4i
index d4eba84..9681e2e 100644
--- a/src/xvmc/shader/mc/motion_field_uv_igd.g4i
+++ b/src/xvmc/shader/mc/motion_field_uv_igd.g4i
@@ -24,11 +24,11 @@
  *    Zou Nan hai <nanhai.zou at intel.com>
  *    Zhang Hua jun <huajun.zhang at intel.com>
  *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
  */
-       and.z (1) null mv1<1,1,1>UW 2UW {align1};       
+       and.z (1) null g[a0.0]<1,1,1>UW 2UW {align1};       
        (f0) jmpi L1;
-       and.z (1) null mv2<1,1,1>UW 2UW {align1};       
+       add (1) a0.0<1>UD a0.0<1,1,1>UD 0x2UD {align1};
+       and.z (1) null g[a0.0]<1,1,1>UW 2UW {align1};       
        (f0) jmpi L2;
        include(`read_field_x1y1_uv_igd.g4i')
        jmpi L5;
@@ -36,11 +36,11 @@ L2:
        include(`read_field_x1y0_uv_igd.g4i')
        jmpi L5;
 L1:
-       and.z (1) null mv2<1,1,1>UW 2UW {align1};       
+       add (1) a0.0<1>UD a0.0<1,1,1>UD 0x2UD {align1};
+       and.z (1) null g[a0.0]<1,1,1>UW 2UW {align1};       
        (f0) jmpi L4;
        include(`read_field_x0y1_uv_igd.g4i')
        jmpi L5;
 L4:
        include(`read_field_x0y0_uv_igd.g4i')
 L5:
-
diff --git a/src/xvmc/shader/mc/motion_field_y_igd.g4i b/src/xvmc/shader/mc/motion_field_y_igd.g4i
index bd55cb2..619857a 100644
--- a/src/xvmc/shader/mc/motion_field_y_igd.g4i
+++ b/src/xvmc/shader/mc/motion_field_y_igd.g4i
@@ -19,16 +19,15 @@
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
- *
  * Author:
  *    Zou Nan hai <nanhai.zou at intel.com>
  *    Zhang Hua jun <huajun.zhang at intel.com>
  *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
  */
-	and.z (1) null mv1<1,1,1>UW 1UW {align1};	
+	and.z (1) null g[a0.0]<1,1,1>UW 1UW {align1};	
 	(f0) jmpi L1;
-	and.z (1) null mv2<1,1,1>UW 1UW {align1};	
+	add (1) a0.0<1>UD a0.0<1,1,1>UD 0x2UD {align1};
+	and.z (1) null g[a0.0]<1,1,1>UW 1UW {align1};	
 	(f0) jmpi L2;
 	include(`read_field_x1y1_y_igd.g4i')
 	jmpi L5;
@@ -36,7 +35,8 @@ L2:
 	include(`read_field_x1y0_y_igd.g4i')
 	jmpi L5;
 L1:
-	and.z (1) null mv2<1,1,1>UW 1UW {align1};	
+	add (1) a0.0<1>UD a0.0<1,1,1>UD 0x2UD {align1};
+	and.z (1) null g[a0.0]<1,1,1>UW 1UW {align1};	
 	(f0) jmpi L4;
 	include(`read_field_x0y1_y_igd.g4i')
 	jmpi L5;
diff --git a/src/xvmc/shader/mc/motion_frame_uv_igd.g4i b/src/xvmc/shader/mc/motion_frame_uv_igd.g4i
index 2e359fd..7fc8931 100644
--- a/src/xvmc/shader/mc/motion_frame_uv_igd.g4i
+++ b/src/xvmc/shader/mc/motion_frame_uv_igd.g4i
@@ -25,5 +25,6 @@
  *    Zhang Hua jun <huajun.zhang at intel.com>
  *    Xing Dong sheng <dongsheng.xing at intel.com>
  */  
-
+	
 	include(`read_frame_x0y0_uv_igd.g4i')
+
diff --git a/src/xvmc/shader/mc/motion_frame_y_igd.g4i b/src/xvmc/shader/mc/motion_frame_y_igd.g4i
index 911a8f4..d888b54 100644
--- a/src/xvmc/shader/mc/motion_frame_y_igd.g4i
+++ b/src/xvmc/shader/mc/motion_frame_y_igd.g4i
@@ -36,10 +36,10 @@
  *	  full_pixel_read;	
  * }	 
  */
-
-	and.z (1) null mv1<1,1,1>UW 1UD {align1};	
+	and.z (1) null g[a0.0]<1,1,1>UW 1UD {align1};	
 	(f0) jmpi LL1;
-	and.z (1) null mv2<1,1,1>UW 1UD {align1};	
+	add (1) a0.0<1>UD a0.0<1,1,1>UD 0x2UD {align1};
+	and.z (1) null g[a0.0]<1,1,1>UW 1UD {align1};	
 	(f0) jmpi LL2;
 	include(`read_frame_x1y1_y_igd.g4i') 
 	jmpi LL5;
@@ -47,7 +47,8 @@ LL2:
 	include(`read_frame_x1y0_y_igd.g4i') 
 	jmpi LL5;
 LL1: 
-	and.z (1) null mv2<1,1,1>UW 1UD {align1};	
+	add (1) a0.0<1>UD a0.0<1,1,1>UD 0x2UD {align1};
+	and.z (1) null g[a0.0]<1,1,1>UW 1UD {align1};	
 	(f0) jmpi LL4;
 	include(`read_frame_x0y1_y_igd.g4i')
 	jmpi LL5;
diff --git a/src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i b/src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i
index c03a83d..23fe1a5 100644
--- a/src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i
@@ -1,40 +1,30 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x7000FUD {align1}; // 8*16/32=4
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   
+*/
 
-mov (16) g78.0<1>UW g86.0<16,8,1>UB {align1};
-mov (16) g79.0<1>UW g87.0<16,8,1>UB {align1};
-mov (16) g80.0<1>UW g88.0<16,8,1>UB {align1};
-mov (16) g81.0<1>UW g89.0<16,8,1>UB {align1};
-mov (16) g82.0<1>UW g91.0<16,8,1>UB {align1};
-mov (16) g83.0<1>UW g92.0<16,8,1>UB {align1};
-mov (16) g84.0<1>UW g93.0<16,8,1>UB {align1};
-mov (16) g85.0<1>UW g94.0<16,8,1>UB {align1};
+mov (1) g115.8<1>UD 0x07000FUD {align1};
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(5,2,0,2) mlen 1 rlen 4 {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(6,2,0,2) mlen 1 rlen 4 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(8,2,0,2) mlen 1 rlen 4 {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(9,2,0,2) mlen 1 rlen 4 {align1};
+
+put_data:
+mov (16) g32.0<1>UW g40.0<8,8,1>UB {align1 compr};
+mov (16) g34.0<1>UW g42.0<8,8,1>UB {align1 compr};
+
+mov (16) g36.0<1>UW g48.0<8,8,1>UB {align1 compr};
+mov (16) g38.0<1>UW g50.0<8,8,1>UB {align1 compr};
diff --git a/src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i b/src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i
index 294cfb4..8dcb96d 100644
--- a/src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i
@@ -1,48 +1,35 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g84~g107:IDCT data
+   g115:   message descriptor for reading reference data   
+*/
 mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
+
+put_data:
+mov (16) g32.0<1>UW g40.0<16,16,1>UB {align1};
+mov (16) g33.0<1>UW g42.0<16,16,1>UB {align1};
+mov (16) g34.0<1>UW g44.0<16,16,1>UB {align1};
+mov (16) g35.0<1>UW g46.0<16,16,1>UB {align1};
+mov (16) g36.0<1>UW g48.0<16,16,1>UB {align1};
+mov (16) g37.0<1>UW g50.0<16,16,1>UB {align1};
+mov (16) g38.0<1>UW g52.0<16,16,1>UB {align1};
+mov (16) g39.0<1>UW g54.0<16,16,1>UB {align1};
 
-mov (16) g96.0<1>UW g78.0<16,16,1>UB {align1};
-mov (16) g97.0<1>UW g80.0<16,16,1>UB {align1};
-mov (16) g98.0<1>UW g82.0<16,16,1>UB {align1};
-mov (16) g99.0<1>UW g84.0<16,16,1>UB {align1};
-mov (16) g100.0<1>UW g86.0<16,16,1>UB {align1};
-mov (16) g101.0<1>UW g88.0<16,16,1>UB {align1};
-mov (16) g102.0<1>UW g90.0<16,16,1>UB {align1};
-mov (16) g103.0<1>UW g92.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i b/src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i
index 9e8efa0..489f50a 100644
--- a/src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i
@@ -1,43 +1,42 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x07000FUD {align1}; // 8*16/32=4
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   
+*/
+
+mov (1) g115.8<1>UD 0x07000FUD {align1}; 
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(5, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g45.0<1>UW g115<8,8,1>UW read(6, 2, 0, 2) mlen 1 rlen 4 {align1};//V
 mov (1) g115.8<1>UD 0xFUD {align1};
-send (16) 0 g90.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 1 {align1};
-send (16) 0 g95.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 1 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(5, 2, 0, 2) mlen 1 rlen 1 {align1};//U
+send (16) 0 g49.0<1>UW g115<8,8,1>UW read(6, 2, 0, 2) mlen 1 rlen 1 {align1};//V
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(8, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g45.0<1>UW g115<8,8,1>UW read(9, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+mov (1) g115.8<1>UD 0xFUD {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(8, 2, 0, 2) mlen 1 rlen 1 {align1};//U
+send (16) 0 g49.0<1>UW g115<8,8,1>UW read(9, 2, 0, 2) mlen 1 rlen 1 {align1};//V
+
+put_data:
+avg (8) g32.0<1>UW g40.0<8,8,1>UB g41.0<8,8,1>UB {align1};
+avg (8) g33.0<1>UW g41.0<8,8,1>UB g42.0<8,8,1>UB {align1};
+avg (8) g34.0<1>UW g42.0<8,8,1>UB g43.0<8,8,1>UB {align1};
+avg (8) g35.0<1>UW g43.0<8,8,1>UB g44.0<8,8,1>UB {align1};
 
-avg.sat (16) g78.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB {align1};
-avg.sat (16) g79.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB {align1};
-avg.sat (16) g80.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB {align1};
-avg.sat (16) g81.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB {align1};
-avg.sat (16) g82.0<1>UW g91.0<16,8,1>UB g92.0<16,8,1>UB {align1};
-avg.sat (16) g83.0<1>UW g92.0<16,8,1>UB g93.0<16,8,1>UB {align1};
-avg.sat (16) g84.0<1>UW g93.0<16,8,1>UB g94.0<16,8,1>UB {align1};
-avg.sat (16) g85.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB {align1};
+avg (8) g36.0<1>UW g45.0<8,8,1>UB g46.0<8,8,1>UB {align1};
+avg (8) g37.0<1>UW g46.0<8,8,1>UB g47.0<8,8,1>UB {align1};
+avg (8) g38.0<1>UW g47.0<8,8,1>UB g48.0<8,8,1>UB {align1};
+avg (8) g39.0<1>UW g48.0<8,8,1>UB g49.0<8,8,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i b/src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i
index e48211b..58d3f26 100644
--- a/src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i
@@ -1,51 +1,42 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   
+*/
+
 mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+mov (1) g115.8<1>UD 0x1FUD {align1};
+send (16) 0 g56.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 1 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
 add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
 mov (1) g115.8<1>UD 0x1FUD {align1};
-send (16) 0 g94.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+send (16) 0 g56.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 1 {align1};
+
+put_data:
+avg (16) g32.0<1>UW g40.0<16,16,1>UB g42.0<16,16,1>UB {align1};
+avg (16) g33.0<1>UW g42.0<16,16,1>UB g44.0<16,16,1>UB {align1};
+avg (16) g34.0<1>UW g44.0<16,16,1>UB g46.0<16,16,1>UB {align1};
+avg (16) g35.0<1>UW g46.0<16,16,1>UB g48.0<16,16,1>UB {align1};
+avg (16) g36.0<1>UW g48.0<16,16,1>UB g50.0<16,16,1>UB {align1};
+avg (16) g37.0<1>UW g50.0<16,16,1>UB g52.0<16,16,1>UB {align1};
+avg (16) g38.0<1>UW g52.0<16,16,1>UB g54.0<16,16,1>UB {align1};
+avg (16) g39.0<1>UW g54.0<16,16,1>UB g56.0<16,16,1>UB {align1};
 
-avg.sat (16) g96.0<1>UW g78.0<16,16,1>UB g80.0<16,16,1>UB {align1};
-avg.sat (16) g97.0<1>UW g80.0<16,16,1>UB g82.0<16,16,1>UB {align1};
-avg.sat (16) g98.0<1>UW g82.0<16,16,1>UB g84.0<16,16,1>UB {align1};
-avg.sat (16) g99.0<1>UW g84.0<16,16,1>UB g86.0<16,16,1>UB {align1};
-avg.sat (16) g100.0<1>UW g86.0<16,16,1>UB g88.0<16,16,1>UB {align1};
-avg.sat (16) g101.0<1>UW g88.0<16,16,1>UB g90.0<16,16,1>UB {align1};
-avg.sat (16) g102.0<1>UW g90.0<16,16,1>UB g92.0<16,16,1>UB {align1};
-avg.sat (16) g103.0<1>UW g92.0<16,16,1>UB g94.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i b/src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i
index fc56acc..0cec2e0 100644
--- a/src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i
@@ -1,40 +1,33 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   */
+
 mov (1) g115.8<1>UD 0x07000FUD {align1}; // 8*16/32=4
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(5, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(6, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(8, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(9, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+
+put_data:
+avg (8) g32.0<1>UW g40.0<8,8,1>UB g40.1<8,8,1>UB {align1};
+avg (8) g33.0<1>UW g41.0<8,8,1>UB g41.1<8,8,1>UB {align1};
+avg (8) g34.0<1>UW g42.0<8,8,1>UB g42.1<8,8,1>UB {align1};
+avg (8) g35.0<1>UW g43.0<8,8,1>UB g43.1<8,8,1>UB {align1};
 
-avg.sat (16) g78.0<1>UW g86.0<16,8,1>UB g86.1<16,8,1>UB {align1};
-avg.sat (16) g79.0<1>UW g87.0<16,8,1>UB g87.1<16,8,1>UB {align1};
-avg.sat (16) g80.0<1>UW g88.0<16,8,1>UB g88.1<16,8,1>UB {align1};
-avg.sat (16) g81.0<1>UW g89.0<16,8,1>UB g89.1<16,8,1>UB {align1};
-avg.sat (16) g82.0<1>UW g91.0<16,8,1>UB g91.1<16,8,1>UB {align1};
-avg.sat (16) g83.0<1>UW g92.0<16,8,1>UB g92.1<16,8,1>UB {align1};
-avg.sat (16) g84.0<1>UW g93.0<16,8,1>UB g93.1<16,8,1>UB {align1};
-avg.sat (16) g85.0<1>UW g94.0<16,8,1>UB g94.1<16,8,1>UB {align1};
+avg (8) g36.0<1>UW g44.0<8,8,1>UB g44.1<8,8,1>UB {align1};
+avg (8) g37.0<1>UW g45.0<8,8,1>UB g45.1<8,8,1>UB {align1};
+avg (8) g38.0<1>UW g46.0<8,8,1>UB g46.1<8,8,1>UB {align1};
+avg (8) g39.0<1>UW g47.0<8,8,1>UB g47.1<8,8,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i b/src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i
index 14394ca..f76a267 100644
--- a/src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i
@@ -1,48 +1,35 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   
+*/
+
 mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
 
-avg.sat (16) g96.0<1>UW g78.0<16,16,1>UB g78.1<16,16,1>UB {align1};
-avg.sat (16) g97.0<1>UW g80.0<16,16,1>UB g80.1<16,16,1>UB {align1};
-avg.sat (16) g98.0<1>UW g82.0<16,16,1>UB g82.1<16,16,1>UB {align1};
-avg.sat (16) g99.0<1>UW g84.0<16,16,1>UB g84.1<16,16,1>UB {align1};
-avg.sat (16) g100.0<1>UW g86.0<16,16,1>UB g86.1<16,16,1>UB {align1};
-avg.sat (16) g101.0<1>UW g88.0<16,16,1>UB g88.1<16,16,1>UB {align1};
-avg.sat (16) g102.0<1>UW g90.0<16,16,1>UB g90.1<16,16,1>UB {align1};
-avg.sat (16) g103.0<1>UW g92.0<16,16,1>UB g92.1<16,16,1>UB {align1};
+put_data:
+avg (16) g32.0<1>UW g40.0<16,16,1>UB g40.1<16,16,1>UB {align1};
+avg (16) g33.0<1>UW g42.0<16,16,1>UB g42.1<16,16,1>UB {align1};
+avg (16) g34.0<1>UW g44.0<16,16,1>UB g44.1<16,16,1>UB {align1};
+avg (16) g35.0<1>UW g46.0<16,16,1>UB g46.1<16,16,1>UB {align1};
+avg (16) g36.0<1>UW g48.0<16,16,1>UB g48.1<16,16,1>UB {align1};
+avg (16) g37.0<1>UW g50.0<16,16,1>UB g50.1<16,16,1>UB {align1};
+avg (16) g38.0<1>UW g52.0<16,16,1>UB g52.1<16,16,1>UB {align1};
+avg (16) g39.0<1>UW g54.0<16,16,1>UB g54.1<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i b/src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i
index 10f48c8..e261225 100644
--- a/src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i
@@ -1,75 +1,66 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   */
 mov (1) g115.8<1>UD 0x07000FUD {align1};
-send (16) 0 g86.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U
-send (16) 0 g91.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V
-mov (1) g115.8<1>UD 0x01000FUD {align1};
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(5, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g45.0<1>UW g115<8,8,1>UW read(6, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+mov (1) g115.8<1>UD 0xFUD {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(5, 2, 0, 2) mlen 1 rlen 1 {align1};//U
+send (16) 0 g49.0<1>UW g115<8,8,1>UW read(6, 2, 0, 2) mlen 1 rlen 1 {align1};//V
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(8, 2, 0, 2) mlen 1 rlen 4 {align1};//U
+send (16) 0 g45.0<1>UW g115<8,8,1>UW read(9, 2, 0, 2) mlen 1 rlen 4 {align1};//V
+mov (1) g115.8<1>UD 0xFUD {align1};
 add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
-send (16) 0 g90.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 1 {align1};
-send (16) 0 g95.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 1 {align1};
+send (16) 0 g44.0<1>UW g115<8,8,1>UW read(8, 2, 0, 2) mlen 1 rlen 1 {align1};//U
+send (16) 0 g49.0<1>UW g115<8,8,1>UW read(9, 2, 0, 2) mlen 1 rlen 1 {align1};//V
+
+put_data:
 //U
-add (16) g78.0<1>UW g86.0<16,8,1>UB g87.0<16,8,1>UB {align1};
-add (16) g79.0<1>UW g87.0<16,8,1>UB g88.0<16,8,1>UB {align1};
-add (16) g80.0<1>UW g88.0<16,8,1>UB g89.0<16,8,1>UB {align1};
-add (16) g81.0<1>UW g89.0<16,8,1>UB g90.0<16,8,1>UB {align1};
+add (8) g32.0<1>UW g40.0<8,8,1>UB g41.0<8,8,1>UB {align1};
+add (8) g33.0<1>UW g41.0<8,8,1>UB g42.0<8,8,1>UB {align1};
+add (8) g34.0<1>UW g42.0<8,8,1>UB g43.0<8,8,1>UB {align1};
+add (8) g35.0<1>UW g43.0<8,8,1>UB g44.0<8,8,1>UB {align1};
 
-add (16) g78.0<1>UW g78.0<16,8,1>UW g86.1<16,8,1>UB {align1};
-add (16) g79.0<1>UW g79.0<16,8,1>UW g87.1<16,8,1>UB {align1};
-add (16) g80.0<1>UW g80.0<16,8,1>UW g88.1<16,8,1>UB {align1};
-add (16) g81.0<1>UW g81.0<16,8,1>UW g89.1<16,8,1>UB {align1};
+add (8) g32.0<1>UW g32.0<8,8,1>UW g40.1<8,8,1>UB {align1};
+add (8) g33.0<1>UW g33.0<8,8,1>UW g41.1<8,8,1>UB {align1};
+add (8) g34.0<1>UW g34.0<8,8,1>UW g42.1<8,8,1>UB {align1};
+add (8) g35.0<1>UW g35.0<8,8,1>UW g43.1<8,8,1>UB {align1};
 
-add (16) g78.0<1>UW g78.0<16,8,1>UW g87.1<16,8,1>UB {align1};
-add (16) g79.0<1>UW g79.0<16,8,1>UW g88.1<16,8,1>UB {align1};
-add (16) g80.0<1>UW g80.0<16,8,1>UW g89.1<16,8,1>UB {align1};
-add (16) g81.0<1>UW g81.0<16,8,1>UW g90.1<16,8,1>UB {align1};
+add (8) g32.0<1>UW g32.0<8,8,1>UW g41.1<8,8,1>UB {align1};
+add (8) g33.0<1>UW g33.0<8,8,1>UW g42.1<8,8,1>UB {align1};
+add (8) g34.0<1>UW g34.0<8,8,1>UW g43.1<8,8,1>UB {align1};
+add (8) g35.0<1>UW g35.0<8,8,1>UW g44.1<8,8,1>UB {align1};
 //V
-add (16) g82.0<1>UW g91.0<16,8,1>UB g92.0<16,8,1>UB {align1};
-add (16) g83.0<1>UW g92.0<16,8,1>UB g93.0<16,8,1>UB {align1};
-add (16) g84.0<1>UW g93.0<16,8,1>UB g94.0<16,8,1>UB {align1};
-add (16) g85.0<1>UW g94.0<16,8,1>UB g95.0<16,8,1>UB {align1};
-
-add (16) g82.0<1>UW g82.0<16,8,1>UW g91.1<16,8,1>UB {align1};
-add (16) g83.0<1>UW g83.0<16,8,1>UW g92.1<16,8,1>UB {align1};
-add (16) g84.0<1>UW g84.0<16,8,1>UW g93.1<16,8,1>UB {align1};
-add (16) g85.0<1>UW g85.0<16,8,1>UW g94.1<16,8,1>UB {align1};
+add (8) g36.0<1>UW g45.0<8,8,1>UB g46.0<8,8,1>UB {align1};
+add (8) g37.0<1>UW g46.0<8,8,1>UB g47.0<8,8,1>UB {align1};
+add (8) g38.0<1>UW g47.0<8,8,1>UB g48.0<8,8,1>UB {align1};
+add (8) g39.0<1>UW g48.0<8,8,1>UB g49.0<8,8,1>UB {align1};
 
-add (16) g82.0<1>UW g82.0<16,8,1>UW g92.1<16,8,1>UB {align1};
-add (16) g83.0<1>UW g83.0<16,8,1>UW g93.1<16,8,1>UB {align1};
-add (16) g84.0<1>UW g84.0<16,8,1>UW g94.1<16,8,1>UB {align1};
-add (16) g85.0<1>UW g85.0<16,8,1>UW g95.1<16,8,1>UB {align1};
+add (8) g36.0<1>UW g36.0<8,8,1>UW g45.1<8,8,1>UB {align1};
+add (8) g37.0<1>UW g37.0<8,8,1>UW g46.1<8,8,1>UB {align1};
+add (8) g38.0<1>UW g38.0<8,8,1>UW g47.1<8,8,1>UB {align1};
+add (8) g39.0<1>UW g39.0<8,8,1>UW g48.1<8,8,1>UB {align1};
 
-shr.sat (16) g78.0<1>UW g78.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g79.0<1>UW g79.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g80.0<1>UW g80.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g81.0<1>UW g81.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g82.0<1>UW g82.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g83.0<1>UW g83.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g84.0<1>UW g84.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g85.0<1>UW g85.0<16,16,1>UW 2UW {align1};
+add (8) g36.0<1>UW g36.0<8,8,1>UW g46.1<8,8,1>UB {align1};
+add (8) g37.0<1>UW g37.0<8,8,1>UW g47.1<8,8,1>UB {align1};
+add (8) g38.0<1>UW g38.0<8,8,1>UW g48.1<8,8,1>UB {align1};
+add (8) g39.0<1>UW g39.0<8,8,1>UW g49.1<8,8,1>UB {align1};
 
+shr (32) g32.0<1>UW g32.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g34.0<1>UW g34.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g36.0<1>UW g36.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g38.0<1>UW g38.0<16,16,1>UW 2UW {align1 compr};
diff --git a/src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i b/src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i
index 39526c8..db635fe 100644
--- a/src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i
@@ -1,78 +1,64 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g115.8<1>UD 0x01FUD {align1};
-send (16) 0 g78.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g80.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g82.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
-send (16) 0 g84.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
-add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data
+   g115:   message descriptor for reading reference data   
+*/
+
 mov (1) g115.8<1>UD 0x07001FUD {align1};
-send (16) 0 g86.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1};
+and.nz (1) null g115.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
+
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+mov (1) g115.8<1>UD 0x1FUD {align1};
+send (16) 0 g56.0<1>UW g115<8,8,1>UW read(4,2,0,2) mlen 1 rlen 1 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g40.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
+add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
+send (16) 0 g48.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 8 {align1};
 add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1};
 mov (1) g115.8<1>UD 0x1FUD {align1};
-send (16) 0 g94.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1};
+send (16) 0 g56.0<1>UW g115<8,8,1>UW read(7,2,0,2) mlen 1 rlen 1 {align1};
 
-add (16) g96.0<1>UW g78.0<16,16,1>UB g80.0<16,16,1>UB {align1};
-add (16) g97.0<1>UW g80.0<16,16,1>UB g82.0<16,16,1>UB {align1};
-add (16) g98.0<1>UW g82.0<16,16,1>UB g84.0<16,16,1>UB {align1};
-add (16) g99.0<1>UW g84.0<16,16,1>UB g86.0<16,16,1>UB {align1};
-add (16) g100.0<1>UW g86.0<16,16,1>UB g88.0<16,16,1>UB {align1};
-add (16) g101.0<1>UW g88.0<16,16,1>UB g90.0<16,16,1>UB {align1};
-add (16) g102.0<1>UW g90.0<16,16,1>UB g92.0<16,16,1>UB {align1};
-add (16) g103.0<1>UW g92.0<16,16,1>UB g94.0<16,16,1>UB {align1};
+put_data:
+add (16) g32.0<1>UW g40.0<16,16,1>UB g42.0<16,16,1>UB {align1};
+add (16) g33.0<1>UW g42.0<16,16,1>UB g44.0<16,16,1>UB {align1};
+add (16) g34.0<1>UW g44.0<16,16,1>UB g46.0<16,16,1>UB {align1};
+add (16) g35.0<1>UW g46.0<16,16,1>UB g48.0<16,16,1>UB {align1};
+add (16) g36.0<1>UW g48.0<16,16,1>UB g50.0<16,16,1>UB {align1};
+add (16) g37.0<1>UW g50.0<16,16,1>UB g52.0<16,16,1>UB {align1};
+add (16) g38.0<1>UW g52.0<16,16,1>UB g54.0<16,16,1>UB {align1};
+add (16) g39.0<1>UW g54.0<16,16,1>UB g56.0<16,16,1>UB {align1};
 
-add (16) g96.0<1>UW g96.0<16,16,1>UW g78.1<16,16,1>UB {align1};
-add (16) g97.0<1>UW g97.0<16,16,1>UW g80.1<16,16,1>UB {align1};
-add (16) g98.0<1>UW g98.0<16,16,1>UW g82.1<16,16,1>UB {align1};
-add (16) g99.0<1>UW g99.0<16,16,1>UW g84.1<16,16,1>UB {align1};
-add (16) g100.0<1>UW g100.0<16,16,1>UW g86.1<16,16,1>UB {align1};
-add (16) g101.0<1>UW g101.0<16,16,1>UW g88.1<16,16,1>UB {align1};
-add (16) g102.0<1>UW g102.0<16,16,1>UW g90.1<16,16,1>UB {align1};
-add (16) g103.0<1>UW g103.0<16,16,1>UW g92.1<16,16,1>UB {align1};
+add (16) g32.0<1>UW g32.0<16,16,1>UW g40.1<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g42.1<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g44.1<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g46.1<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g48.1<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g50.1<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g52.1<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g54.1<16,16,1>UB {align1};
 
-add (16) g96.0<1>UW g96.0<16,16,1>UW g80.1<16,16,1>UB {align1};
-add (16) g97.0<1>UW g97.0<16,16,1>UW g82.1<16,16,1>UB {align1};
-add (16) g98.0<1>UW g98.0<16,16,1>UW g84.1<16,16,1>UB {align1};
-add (16) g99.0<1>UW g99.0<16,16,1>UW g86.1<16,16,1>UB {align1};
-add (16) g100.0<1>UW g100.0<16,16,1>UW g88.1<16,16,1>UB {align1};
-add (16) g101.0<1>UW g101.0<16,16,1>UW g90.1<16,16,1>UB {align1};
-add (16) g102.0<1>UW g102.0<16,16,1>UW g92.1<16,16,1>UB {align1};
-add (16) g103.0<1>UW g103.0<16,16,1>UW g94.1<16,16,1>UB {align1};
+add (16) g32.0<1>UW g32.0<16,16,1>UW g42.1<16,16,1>UB {align1};
+add (16) g33.0<1>UW g33.0<16,16,1>UW g44.1<16,16,1>UB {align1};
+add (16) g34.0<1>UW g34.0<16,16,1>UW g46.1<16,16,1>UB {align1};
+add (16) g35.0<1>UW g35.0<16,16,1>UW g48.1<16,16,1>UB {align1};
+add (16) g36.0<1>UW g36.0<16,16,1>UW g50.1<16,16,1>UB {align1};
+add (16) g37.0<1>UW g37.0<16,16,1>UW g52.1<16,16,1>UB {align1};
+add (16) g38.0<1>UW g38.0<16,16,1>UW g54.1<16,16,1>UB {align1};
+add (16) g39.0<1>UW g39.0<16,16,1>UW g56.1<16,16,1>UB {align1};
 
-shr (16) g96.0<1>UW g96.0<16,16,1>UW 2UW {align1};
-shr (16) g97.0<1>UW g97.0<16,16,1>UW 2UW {align1};
-shr (16) g98.0<1>UW g98.0<16,16,1>UW 2UW {align1};
-shr (16) g99.0<1>UW g99.0<16,16,1>UW 2UW {align1};
-shr (16) g100.0<1>UW g100.0<16,16,1>UW 2UW {align1};
-shr (16) g101.0<1>UW g101.0<16,16,1>UW 2UW {align1};
-shr (16) g102.0<1>UW g102.0<16,16,1>UW 2UW {align1};
-shr (16) g103.0<1>UW g103.0<16,16,1>UW 2UW {align1};
+shr (32) g32.0<1>UW g32.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g34.0<1>UW g34.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g36.0<1>UW g36.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g38.0<1>UW g38.0<16,16,1>UW 2UW {align1 compr};
diff --git a/src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i b/src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i
index d522d0e..edff59b 100644
--- a/src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i
+++ b/src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i
@@ -1,39 +1,28 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-send (16) 0 g86.0<1>UW g2<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1};
-send (16) 0 g90.0<1>UW g2<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                          
+*/
+mov (1) g32.8<1>UD 0x007000fUD  {align1};
+and.nz (1) null g32.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
 
-mov (16) g44.0<1>UW g86.0<16,8,1>UB {align1};
-mov (16) g45.0<1>UW g87.0<16,8,1>UB {align1};
-mov (16) g46.0<1>UW g88.0<16,8,1>UB {align1};
-mov (16) g47.0<1>UW g89.0<16,8,1>UB {align1};
-mov (16) g48.0<1>UW g90.0<16,8,1>UB {align1};
-mov (16) g49.0<1>UW g91.0<16,8,1>UB {align1};
-mov (16) g50.0<1>UW g92.0<16,8,1>UB {align1};
-mov (16) g51.0<1>UW g93.0<16,8,1>UB {align1};
+send (16) 0 g34.0<1>UW g32<8,8,1>UW read(5, 2, 0, 2) mlen 1 rlen 4 {align1};
+send (16) 0 g44.0<1>UW g32<8,8,1>UW read(6, 2, 0, 2) mlen 1 rlen 4 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g34.0<1>UW g32<8,8,1>UW read(8, 2, 0, 2) mlen 1 rlen 4 {align1};
+send (16) 0 g44.0<1>UW g32<8,8,1>UW read(9, 2, 0, 2) mlen 1 rlen 4 {align1};
+
+put_data:
+mov (32) g74.0<1>UW g34.0<16,8,1>UB {align1 compr};
+mov (32) g76.0<1>UW g36.0<16,8,1>UB {align1 compr};
+mov (32) g78.0<1>UW g44.0<16,8,1>UB {align1 compr};
+mov (32) g80.0<1>UW g46.0<16,8,1>UB {align1 compr};
diff --git a/src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i b/src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i
index 6191abf..ba3dc72 100644
--- a/src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i
@@ -1,50 +1,35 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           
+*/
+mov (1) g32.8<1>UD 0x007001FUD {align1};
+and.nz (1) null g32.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
 
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+put_data:
+mov (32) g58.0<1>UW g38.0<16,16,1>UB {align1 compr};
+mov (32) g60.0<1>UW g40.0<16,16,1>UB {align1 compr};
+mov (32) g62.0<1>UW g42.0<16,16,1>UB {align1 compr};
+mov (32) g64.0<1>UW g44.0<16,16,1>UB {align1 compr};
+mov (32) g66.0<1>UW g46.0<16,16,1>UB {align1 compr};
+mov (32) g68.0<1>UW g48.0<16,16,1>UB {align1 compr};
+mov (32) g70.0<1>UW g50.0<16,16,1>UB {align1 compr};
+mov (32) g72.0<1>UW g52.0<16,16,1>UB {align1 compr};
 
-mov (16) g28.0<1>UW g98.0<16,16,1>UB {align1};
-mov (16) g29.0<1>UW g99.0<16,16,1>UB {align1};
-mov (16) g30.0<1>UW g100.0<16,16,1>UB {align1};
-mov (16) g31.0<1>UW g101.0<16,16,1>UB {align1};
-mov (16) g32.0<1>UW g102.0<16,16,1>UB {align1};
-mov (16) g33.0<1>UW g103.0<16,16,1>UB {align1};
-mov (16) g34.0<1>UW g104.0<16,16,1>UB {align1};
-mov (16) g35.0<1>UW g105.0<16,16,1>UB {align1};
-mov (16) g36.0<1>UW g106.0<16,16,1>UB {align1};
-mov (16) g37.0<1>UW g107.0<16,16,1>UB {align1};
-mov (16) g38.0<1>UW g108.0<16,16,1>UB {align1};
-mov (16) g39.0<1>UW g109.0<16,16,1>UB {align1};
-mov (16) g40.0<1>UW g110.0<16,16,1>UB {align1};
-mov (16) g41.0<1>UW g111.0<16,16,1>UB {align1};
-mov (16) g42.0<1>UW g112.0<16,16,1>UB {align1};
-mov (16) g43.0<1>UW g113.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i b/src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i
index 106296b..65cc88b 100644
--- a/src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i
@@ -1,54 +1,49 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
 
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-mov (1) g2.8<1>UD 0x1FUD {align1};
-send (16) 0 g120.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
+mov (1) g32.8<1>UD 0x007001FUD {align1};
+and.nz (1) null g32.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
 
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+mov (1) g32.8<1>UD 0x1FUD {align1};
+send (16) 0 g54.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 1 {align1};
+jmpi put_data;
+
+read_backward:
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+mov (1) g32.8<1>UD 0x1FUD {align1};
+send (16) 0 g54.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 1 {align1};
+
+put_data:
+avg (16) g58.0<1>UW g38.0<16,16,1>UB g39.0<16,16,1>UB {align1};
+avg (16) g59.0<1>UW g39.0<16,16,1>UB g40.0<16,16,1>UB {align1};
+avg (16) g60.0<1>UW g40.0<16,16,1>UB g41.0<16,16,1>UB {align1};
+avg (16) g61.0<1>UW g41.0<16,16,1>UB g42.0<16,16,1>UB {align1};
+avg (16) g62.0<1>UW g42.0<16,16,1>UB g43.0<16,16,1>UB {align1};
+avg (16) g63.0<1>UW g43.0<16,16,1>UB g44.0<16,16,1>UB {align1};
+avg (16) g64.0<1>UW g44.0<16,16,1>UB g45.0<16,16,1>UB {align1};
+avg (16) g65.0<1>UW g45.0<16,16,1>UB g46.0<16,16,1>UB {align1};
+avg (16) g66.0<1>UW g46.0<16,16,1>UB g47.0<16,16,1>UB {align1};
+avg (16) g67.0<1>UW g47.0<16,16,1>UB g48.0<16,16,1>UB {align1};
+avg (16) g68.0<1>UW g48.0<16,16,1>UB g49.0<16,16,1>UB {align1};
+avg (16) g69.0<1>UW g49.0<16,16,1>UB g50.0<16,16,1>UB {align1};
+avg (16) g70.0<1>UW g50.0<16,16,1>UB g51.0<16,16,1>UB {align1};
+avg (16) g71.0<1>UW g51.0<16,16,1>UB g52.0<16,16,1>UB {align1};
+avg (16) g72.0<1>UW g52.0<16,16,1>UB g53.0<16,16,1>UB {align1};
+avg (16) g73.0<1>UW g53.0<16,16,1>UB g54.0<16,16,1>UB {align1};
 
-avg.sat (16) g28.0<1>UW g98.0<16,16,1>UB g99.0<16,16,1>UB {align1};
-avg.sat (16) g29.0<1>UW g99.0<16,16,1>UB g100.0<16,16,1>UB {align1};
-avg.sat (16) g30.0<1>UW g100.0<16,16,1>UB g101.0<16,16,1>UB {align1};
-avg.sat (16) g31.0<1>UW g101.0<16,16,1>UB g102.0<16,16,1>UB {align1};
-avg.sat (16) g32.0<1>UW g102.0<16,16,1>UB g103.0<16,16,1>UB {align1};
-avg.sat (16) g33.0<1>UW g103.0<16,16,1>UB g104.0<16,16,1>UB {align1};
-avg.sat (16) g34.0<1>UW g104.0<16,16,1>UB g105.0<16,16,1>UB {align1};
-avg.sat (16) g35.0<1>UW g105.0<16,16,1>UB g106.0<16,16,1>UB {align1};
-avg.sat (16) g36.0<1>UW g106.0<16,16,1>UB g107.0<16,16,1>UB {align1};
-avg.sat (16) g37.0<1>UW g107.0<16,16,1>UB g108.0<16,16,1>UB {align1};
-avg.sat (16) g38.0<1>UW g108.0<16,16,1>UB g109.0<16,16,1>UB {align1};
-avg.sat (16) g39.0<1>UW g109.0<16,16,1>UB g110.0<16,16,1>UB {align1};
-avg.sat (16) g40.0<1>UW g110.0<16,16,1>UB g111.0<16,16,1>UB {align1};
-avg.sat (16) g41.0<1>UW g111.0<16,16,1>UB g112.0<16,16,1>UB {align1};
-avg.sat (16) g42.0<1>UW g112.0<16,16,1>UB g113.0<16,16,1>UB {align1};
-avg.sat (16) g43.0<1>UW g113.0<16,16,1>UB g120.0<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i b/src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i
index 03ee54b..64bd8e8 100644
--- a/src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i
@@ -1,51 +1,43 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           
+*/
 
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+mov (1) g32.8<1>UD 0x007001FUD {align1};
+and.nz (1) null g32.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
 
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+jmpi put_data;
 
-avg.sat (16) g28.0<1>UW g98.0<16,16,1>UB g98.1<16,16,1>UB {align1};
-avg.sat (16) g29.0<1>UW g99.0<16,16,1>UB g99.1<16,16,1>UB {align1};
-avg.sat (16) g30.0<1>UW g100.0<16,16,1>UB g100.1<16,16,1>UB {align1};
-avg.sat (16) g31.0<1>UW g101.0<16,16,1>UB g101.1<16,16,1>UB {align1};
-avg.sat (16) g32.0<1>UW g102.0<16,16,1>UB g102.1<16,16,1>UB {align1};
-avg.sat (16) g33.0<1>UW g103.0<16,16,1>UB g103.1<16,16,1>UB {align1};
-avg.sat (16) g34.0<1>UW g104.0<16,16,1>UB g104.1<16,16,1>UB {align1};
-avg.sat (16) g35.0<1>UW g105.0<16,16,1>UB g105.1<16,16,1>UB {align1};
-avg.sat (16) g36.0<1>UW g106.0<16,16,1>UB g106.1<16,16,1>UB {align1};
-avg.sat (16) g37.0<1>UW g107.0<16,16,1>UB g107.1<16,16,1>UB {align1};
-avg.sat (16) g38.0<1>UW g108.0<16,16,1>UB g108.1<16,16,1>UB {align1};
-avg.sat (16) g39.0<1>UW g109.0<16,16,1>UB g109.1<16,16,1>UB {align1};
-avg.sat (16) g40.0<1>UW g110.0<16,16,1>UB g110.1<16,16,1>UB {align1};
-avg.sat (16) g41.0<1>UW g111.0<16,16,1>UB g111.1<16,16,1>UB {align1};
-avg.sat (16) g42.0<1>UW g112.0<16,16,1>UB g112.1<16,16,1>UB {align1};
-avg.sat (16) g43.0<1>UW g113.0<16,16,1>UB g113.1<16,16,1>UB {align1};
+read_backward:
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+
+put_data:
+avg (16) g58.0<1>UW g38.0<16,16,1>UB g38.1<16,16,1>UB {align1};
+avg (16) g59.0<1>UW g39.0<16,16,1>UB g39.1<16,16,1>UB {align1};
+avg (16) g60.0<1>UW g40.0<16,16,1>UB g40.1<16,16,1>UB {align1};
+avg (16) g61.0<1>UW g41.0<16,16,1>UB g41.1<16,16,1>UB {align1};
+avg (16) g62.0<1>UW g42.0<16,16,1>UB g42.1<16,16,1>UB {align1};
+avg (16) g63.0<1>UW g43.0<16,16,1>UB g43.1<16,16,1>UB {align1};
+avg (16) g64.0<1>UW g44.0<16,16,1>UB g44.1<16,16,1>UB {align1};
+avg (16) g65.0<1>UW g45.0<16,16,1>UB g45.1<16,16,1>UB {align1};
+avg (16) g66.0<1>UW g46.0<16,16,1>UB g46.1<16,16,1>UB {align1};
+avg (16) g67.0<1>UW g47.0<16,16,1>UB g47.1<16,16,1>UB {align1};
+avg (16) g68.0<1>UW g48.0<16,16,1>UB g48.1<16,16,1>UB {align1};
+avg (16) g69.0<1>UW g49.0<16,16,1>UB g49.1<16,16,1>UB {align1};
+avg (16) g70.0<1>UW g50.0<16,16,1>UB g50.1<16,16,1>UB {align1};
+avg (16) g71.0<1>UW g51.0<16,16,1>UB g51.1<16,16,1>UB {align1};
+avg (16) g72.0<1>UW g52.0<16,16,1>UB g52.1<16,16,1>UB {align1};
+avg (16) g73.0<1>UW g53.0<16,16,1>UB g53.1<16,16,1>UB {align1};
diff --git a/src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i b/src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i
index 89adc38..ce8f46a 100644
--- a/src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i
+++ b/src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i
@@ -1,105 +1,92 @@
-/*
- * Copyright © 2008 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Author:
- *    Zou Nan hai <nanhai.zou at intel.com>
- *    Zhang Hua jun <huajun.zhang at intel.com>
- *    Xing Dong sheng <dongsheng.xing at intel.com>
- *
- */
-mov (1) g2.8<1>UD 0x007001FUD {align1};
-send (16) 0 g98.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
+/* GRF allocation:
+   g1~g30: constant buffer
+           g1~g2:intra IQ matrix
+           g3~g4:non intra IQ matrix
+           g5~g20:IDCT table
+   g31:    thread payload 
+   g32:    message descriptor for reading reference data
+   g58~g81:reference data
+   g82:    thread payload backup
+   g83~g106:IDCT data                           */
 
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-send (16) 0 g106.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1};
-add (1) g2.4<1>UD g2.4<1,1,1>UD 8UD {align1};
-mov (1) g2.8<1>UD 0x1FUD {align1};
-send (16) 0 g120.0<1>UW g2<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1};
+mov (1) g32.8<1>UD 0x007001FUD {align1};
+and.nz (1) null g32.16<1,1,1>UW 1UW {align1};
+(f0) jmpi read_backward;
 
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+mov (1) g32.8<1>UD 0x1FUD {align1};
+send (16) 0 g54.0<1>UW g32<8,8,1>UW read(4, 2, 0, 2) mlen 1 rlen 1 {align1};
+jmpi put_data;
 
-add (16) g28.0<1>UW g98.0<16,16,1>UB g98.1<16,16,1>UB {align1};
-add (16) g29.0<1>UW g99.0<16,16,1>UB g99.1<16,16,1>UB {align1};
-add (16) g30.0<1>UW g100.0<16,16,1>UB g100.1<16,16,1>UB {align1};
-add (16) g31.0<1>UW g101.0<16,16,1>UB g101.1<16,16,1>UB {align1};
-add (16) g32.0<1>UW g102.0<16,16,1>UB g102.1<16,16,1>UB {align1};
-add (16) g33.0<1>UW g103.0<16,16,1>UB g103.1<16,16,1>UB {align1};
-add (16) g34.0<1>UW g104.0<16,16,1>UB g104.1<16,16,1>UB {align1};
-add (16) g35.0<1>UW g105.0<16,16,1>UB g105.1<16,16,1>UB {align1};
-add (16) g36.0<1>UW g106.0<16,16,1>UB g106.1<16,16,1>UB {align1};
-add (16) g37.0<1>UW g107.0<16,16,1>UB g107.1<16,16,1>UB {align1};
-add (16) g38.0<1>UW g108.0<16,16,1>UB g108.1<16,16,1>UB {align1};
-add (16) g39.0<1>UW g109.0<16,16,1>UB g109.1<16,16,1>UB {align1};
-add (16) g40.0<1>UW g110.0<16,16,1>UB g110.1<16,16,1>UB {align1};
-add (16) g41.0<1>UW g111.0<16,16,1>UB g111.1<16,16,1>UB {align1};
-add (16) g42.0<1>UW g112.0<16,16,1>UB g112.1<16,16,1>UB {align1};
-add (16) g43.0<1>UW g113.0<16,16,1>UB g113.1<16,16,1>UB {align1};
+read_backward:
+send (16) 0 g38.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+send (16) 0 g46.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 8 {align1};
+add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1};
+mov (1) g32.8<1>UD 0x1FUD {align1};
+send (16) 0 g54.0<1>UW g32<8,8,1>UW read(7, 2, 0, 2) mlen 1 rlen 1 {align1};
 
-add (16) g28.0<1>UW g28.0<16,16,1>UW g99.0<16,16,1>UB {align1};
-add (16) g29.0<1>UW g29.0<16,16,1>UW g100.0<16,16,1>UB {align1};
-add (16) g30.0<1>UW g30.0<16,16,1>UW g101.0<16,16,1>UB {align1};
-add (16) g31.0<1>UW g31.0<16,16,1>UW g102.0<16,16,1>UB {align1};
-add (16) g32.0<1>UW g32.0<16,16,1>UW g103.0<16,16,1>UB {align1};
-add (16) g33.0<1>UW g33.0<16,16,1>UW g104.0<16,16,1>UB {align1};
-add (16) g34.0<1>UW g34.0<16,16,1>UW g105.0<16,16,1>UB {align1};
-add (16) g35.0<1>UW g35.0<16,16,1>UW g106.0<16,16,1>UB {align1};
-add (16) g36.0<1>UW g36.0<16,16,1>UW g107.0<16,16,1>UB {align1};
-add (16) g37.0<1>UW g37.0<16,16,1>UW g108.0<16,16,1>UB {align1};
-add (16) g38.0<1>UW g38.0<16,16,1>UW g109.0<16,16,1>UB {align1};
-add (16) g39.0<1>UW g39.0<16,16,1>UW g110.0<16,16,1>UB {align1};
-add (16) g40.0<1>UW g40.0<16,16,1>UW g111.0<16,16,1>UB {align1};
-add (16) g41.0<1>UW g41.0<16,16,1>UW g112.0<16,16,1>UB {align1};
-add (16) g42.0<1>UW g42.0<16,16,1>UW g113.0<16,16,1>UB {align1};
-add (16) g43.0<1>UW g43.0<16,16,1>UW g120.0<16,16,1>UB {align1};
+put_data:
+add (16) g58.0<1>UW g38.0<16,16,1>UB g38.1<16,16,1>UB {align1};
+add (16) g59.0<1>UW g39.0<16,16,1>UB g39.1<16,16,1>UB {align1};
+add (16) g60.0<1>UW g40.0<16,16,1>UB g40.1<16,16,1>UB {align1};
+add (16) g61.0<1>UW g41.0<16,16,1>UB g41.1<16,16,1>UB {align1};
+add (16) g62.0<1>UW g42.0<16,16,1>UB g42.1<16,16,1>UB {align1};
+add (16) g63.0<1>UW g43.0<16,16,1>UB g43.1<16,16,1>UB {align1};
+add (16) g64.0<1>UW g44.0<16,16,1>UB g44.1<16,16,1>UB {align1};
+add (16) g65.0<1>UW g45.0<16,16,1>UB g45.1<16,16,1>UB {align1};
+add (16) g66.0<1>UW g46.0<16,16,1>UB g46.1<16,16,1>UB {align1};
+add (16) g67.0<1>UW g47.0<16,16,1>UB g47.1<16,16,1>UB {align1};
+add (16) g68.0<1>UW g48.0<16,16,1>UB g48.1<16,16,1>UB {align1};
+add (16) g69.0<1>UW g49.0<16,16,1>UB g49.1<16,16,1>UB {align1};
+add (16) g70.0<1>UW g50.0<16,16,1>UB g50.1<16,16,1>UB {align1};
+add (16) g71.0<1>UW g51.0<16,16,1>UB g51.1<16,16,1>UB {align1};
+add (16) g72.0<1>UW g52.0<16,16,1>UB g52.1<16,16,1>UB {align1};
+add (16) g73.0<1>UW g53.0<16,16,1>UB g53.1<16,16,1>UB {align1};
 
-add (16) g28.0<1>UW g28.0<16,16,1>UW g99.1<16,16,1>UB {align1};
-add (16) g29.0<1>UW g29.0<16,16,1>UW g100.1<16,16,1>UB {align1};
-add (16) g30.0<1>UW g30.0<16,16,1>UW g101.1<16,16,1>UB {align1};
-add (16) g31.0<1>UW g31.0<16,16,1>UW g102.1<16,16,1>UB {align1};
-add (16) g32.0<1>UW g32.0<16,16,1>UW g103.1<16,16,1>UB {align1};
-add (16) g33.0<1>UW g33.0<16,16,1>UW g104.1<16,16,1>UB {align1};
-add (16) g34.0<1>UW g34.0<16,16,1>UW g105.1<16,16,1>UB {align1};
-add (16) g35.0<1>UW g35.0<16,16,1>UW g106.1<16,16,1>UB {align1};
-add (16) g36.0<1>UW g36.0<16,16,1>UW g107.1<16,16,1>UB {align1};
-add (16) g37.0<1>UW g37.0<16,16,1>UW g108.1<16,16,1>UB {align1};
-add (16) g38.0<1>UW g38.0<16,16,1>UW g109.1<16,16,1>UB {align1};
-add (16) g39.0<1>UW g39.0<16,16,1>UW g110.1<16,16,1>UB {align1};
-add (16) g40.0<1>UW g40.0<16,16,1>UW g111.1<16,16,1>UB {align1};
-add (16) g41.0<1>UW g41.0<16,16,1>UW g112.1<16,16,1>UB {align1};
-add (16) g42.0<1>UW g42.0<16,16,1>UW g113.1<16,16,1>UB {align1};
-add (16) g43.0<1>UW g43.0<16,16,1>UW g120.1<16,16,1>UB {align1};
+add (16) g58.0<1>UW g58.0<16,16,1>UW g39.0<16,16,1>UB {align1};
+add (16) g59.0<1>UW g59.0<16,16,1>UW g40.0<16,16,1>UB {align1};
+add (16) g60.0<1>UW g60.0<16,16,1>UW g41.0<16,16,1>UB {align1};
+add (16) g61.0<1>UW g61.0<16,16,1>UW g42.0<16,16,1>UB {align1};
+add (16) g62.0<1>UW g62.0<16,16,1>UW g43.0<16,16,1>UB {align1};
+add (16) g63.0<1>UW g63.0<16,16,1>UW g44.0<16,16,1>UB {align1};
+add (16) g64.0<1>UW g64.0<16,16,1>UW g45.0<16,16,1>UB {align1};
+add (16) g65.0<1>UW g65.0<16,16,1>UW g46.0<16,16,1>UB {align1};
+add (16) g66.0<1>UW g66.0<16,16,1>UW g47.0<16,16,1>UB {align1};
+add (16) g67.0<1>UW g67.0<16,16,1>UW g48.0<16,16,1>UB {align1};
+add (16) g68.0<1>UW g68.0<16,16,1>UW g49.0<16,16,1>UB {align1};
+add (16) g69.0<1>UW g69.0<16,16,1>UW g50.0<16,16,1>UB {align1};
+add (16) g70.0<1>UW g70.0<16,16,1>UW g51.0<16,16,1>UB {align1};
+add (16) g71.0<1>UW g71.0<16,16,1>UW g52.0<16,16,1>UB {align1};
+add (16) g72.0<1>UW g72.0<16,16,1>UW g53.0<16,16,1>UB {align1};
+add (16) g73.0<1>UW g73.0<16,16,1>UW g54.0<16,16,1>UB {align1};
+
+add (16) g58.0<1>UW g58.0<16,16,1>UW g39.1<16,16,1>UB {align1};
+add (16) g59.0<1>UW g59.0<16,16,1>UW g40.1<16,16,1>UB {align1};
+add (16) g60.0<1>UW g60.0<16,16,1>UW g41.1<16,16,1>UB {align1};
+add (16) g61.0<1>UW g61.0<16,16,1>UW g42.1<16,16,1>UB {align1};
+add (16) g62.0<1>UW g62.0<16,16,1>UW g43.1<16,16,1>UB {align1};
+add (16) g63.0<1>UW g63.0<16,16,1>UW g44.1<16,16,1>UB {align1};
+add (16) g64.0<1>UW g64.0<16,16,1>UW g45.1<16,16,1>UB {align1};
+add (16) g65.0<1>UW g65.0<16,16,1>UW g46.1<16,16,1>UB {align1};
+add (16) g66.0<1>UW g66.0<16,16,1>UW g47.1<16,16,1>UB {align1};
+add (16) g67.0<1>UW g67.0<16,16,1>UW g48.1<16,16,1>UB {align1};
+add (16) g68.0<1>UW g68.0<16,16,1>UW g49.1<16,16,1>UB {align1};
+add (16) g69.0<1>UW g69.0<16,16,1>UW g50.1<16,16,1>UB {align1};
+add (16) g70.0<1>UW g70.0<16,16,1>UW g51.1<16,16,1>UB {align1};
+add (16) g71.0<1>UW g71.0<16,16,1>UW g52.1<16,16,1>UB {align1};
+add (16) g72.0<1>UW g72.0<16,16,1>UW g53.1<16,16,1>UB {align1};
+add (16) g73.0<1>UW g73.0<16,16,1>UW g54.1<16,16,1>UB {align1};
+
+shr (32) g58.0<1>UW g58.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g60.0<1>UW g60.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g62.0<1>UW g62.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g64.0<1>UW g64.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g66.0<1>UW g66.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g68.0<1>UW g68.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g70.0<1>UW g70.0<16,16,1>UW 2UW {align1 compr};
+shr (32) g72.0<1>UW g72.0<16,16,1>UW 2UW {align1 compr};
 
-shr.sat (16) g28.0<1>UW g28.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g29.0<1>UW g29.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g30.0<1>UW g30.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g31.0<1>UW g31.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g32.0<1>UW g32.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g33.0<1>UW g33.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g34.0<1>UW g34.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g35.0<1>UW g35.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g36.0<1>UW g36.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g37.0<1>UW g37.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g38.0<1>UW g38.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g39.0<1>UW g39.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g40.0<1>UW g40.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g41.0<1>UW g41.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g42.0<1>UW g42.0<16,16,1>UW 2UW {align1};
-shr.sat (16) g43.0<1>UW g43.0<16,16,1>UW 2UW {align1};
diff --git a/src/xvmc/xvmc_vld.c b/src/xvmc/xvmc_vld.c
index 9bb9894..a2c2c15 100644
--- a/src/xvmc/xvmc_vld.c
+++ b/src/xvmc/xvmc_vld.c
@@ -34,11 +34,9 @@
 #endif
 
 #define BATCH_STRUCT(x) intelBatchbufferData(&x, sizeof(x), 0)
-
 #define VLD_MAX_SLICE_SIZE (32 * 1024)
-
-#define CS_SIZE 30
-#define URB_SIZE 384
+#define CS_SIZE 	30
+#define URB_SIZE 	384
 /* idct table */
 #define C0 23170
 #define C1 22725
@@ -75,17 +73,19 @@ const uint32_t idct_table[] = {
 #undef C6 
 #undef C7 
 
+#define INTERFACE_NUM	8
 enum interface {
-    INTRA_INTERFACE = 0,
-    FORWARD_INTERFACE,
-    BACKWARD_INTERFACE,
-    F_B_INTERFACE,
-    FIELD_FORWARD_INTERFACE,
-    FIELD_BACKWARD_INTERFACE,
-    FIELD_F_B_INTERFACE,
+    FRAME_INTRA = 0,
+	FRAME_FRAME_PRED_FORWARD,
+	FRAME_FRAME_PRED_BACKWARD,
+	FRAME_FRAME_PRED_BIDIRECT,
+	FRAME_FIELD_PRED_FORWARD,
+	FRAME_FIELD_PRED_BACKWARD,
+	FRAME_FIELD_PRED_BIDIRECT,
     LIB_INTERFACE
 };
 
+/*kernels for vld mode*/
 static uint32_t lib_kernel[][4] = {
    #include "shader/vld/lib.g4b"
 };
@@ -111,10 +111,37 @@ static uint32_t field_f_b_kernel[][4] = {
    #include "shader/vld/field_f_b.g4b"
 };
 
+/*kernels for mc mode*/
+static uint32_t lib_kernel_idct[][4] = {
+   #include "shader/mc/lib_igd.g4b"
+};
+static uint32_t ipicture_kernel_idct[][4] = {
+   #include "shader/mc/ipicture_igd.g4b"
+};
+static uint32_t frame_forward_kernel_idct[][4] = {
+   #include "shader/mc/frame_forward_igd.g4b"
+};
+static uint32_t frame_backward_kernel_idct[][4] = {
+   #include "shader/mc/frame_backward_igd.g4b"
+};
+static uint32_t frame_f_b_kernel_idct[][4] = {
+   #include "shader/mc/frame_f_b_igd.g4b"
+};
+static uint32_t field_forward_kernel_idct[][4] = {
+   #include "shader/mc/field_forward_igd.g4b"
+};
+static uint32_t field_backward_kernel_idct[][4] = {
+   #include "shader/mc/field_backward_igd.g4b"
+};
+static uint32_t field_f_b_kernel_idct[][4] = {
+   #include "shader/mc/field_f_b_igd.g4b"
+};
+
 struct media_kernel {
    uint32_t (*bin)[4];
    int size;
 }media_kernels[] = {
+	/*kernels for vld mode*/
     {ipicture_kernel, sizeof(ipicture_kernel)},
     {frame_forward_kernel, sizeof(frame_forward_kernel)},
     {frame_backward_kernel, sizeof(frame_backward_kernel)},
@@ -122,7 +149,16 @@ struct media_kernel {
     {field_forward_kernel, sizeof(field_forward_kernel)},
     {field_backward_kernel, sizeof(field_backward_kernel)},
     {field_f_b_kernel, sizeof(field_f_b_kernel)},
-    {lib_kernel, sizeof(lib_kernel)}
+    {lib_kernel, sizeof(lib_kernel)},
+	/*kernels for mc mode*/
+    {ipicture_kernel_idct, sizeof(ipicture_kernel_idct)},
+    {frame_forward_kernel_idct, sizeof(frame_forward_kernel_idct)},
+    {frame_backward_kernel_idct, sizeof(frame_backward_kernel_idct)},
+    {frame_f_b_kernel_idct, sizeof(frame_f_b_kernel_idct)},
+    {field_forward_kernel_idct, sizeof(field_forward_kernel_idct)},
+    {field_backward_kernel_idct, sizeof(field_backward_kernel_idct)},
+    {field_f_b_kernel_idct, sizeof(field_f_b_kernel_idct)},
+    {lib_kernel_idct, sizeof(lib_kernel_idct)}
 };
 
 #define MEDIA_KERNEL_NUM (sizeof(media_kernels)/sizeof(media_kernels[0]))
@@ -163,6 +199,10 @@ struct slice_data_obj {
     dri_bo *bo;
 };
 
+struct mb_data_obj {
+    dri_bo *bo;
+};
+
 struct cs_state_obj {
     dri_bo *bo;
 };
@@ -173,6 +213,7 @@ static struct media_state {
     struct binding_table_obj binding_table;
     struct cs_state_obj cs_object;
     struct slice_data_obj slice_data;
+	struct mb_data_obj mb_data;
 } media_state;
 
 /* XvMCQMatrix * 2 + idct_table + 8 * kernel offset pointer */
@@ -191,6 +232,7 @@ static int free_object(struct media_state *s)
     for (i = 0; i < I965_MAX_SURFACES; i++)
         FREE_ONE_BO(s->binding_table.surface_states[i].bo);
     FREE_ONE_BO(s->slice_data.bo);
+    FREE_ONE_BO(s->mb_data.bo);
     FREE_ONE_BO(s->cs_object.bo);
     FREE_ONE_BO(s->vld_state.bo);
 }
@@ -222,18 +264,22 @@ static void flush()
     BATCH_STRUCT(f);
 }
 
-static Status vfe_state()
+static Status vfe_state(int vfe_mode)
 {
-  struct brw_vfe_state tmp, *vfe_state = &tmp;
-  memset(vfe_state, 0, sizeof(*vfe_state));
-  vfe_state->vfe0.extend_vfe_state_present = 1;
-  vfe_state->vfe1.vfe_mode = VFE_VLD_MODE;
-  vfe_state->vfe1.num_urb_entries = 1;
-  vfe_state->vfe1.children_present = 0;
-  vfe_state->vfe1.urb_entry_alloc_size = 2;
-  vfe_state->vfe1.max_threads = 31;
-  vfe_state->vfe2.interface_descriptor_base =
-      media_state.vfe_state.interface.bo->offset >> 4;
+	struct brw_vfe_state tmp, *vfe_state = &tmp;
+	memset(vfe_state, 0, sizeof(*vfe_state));
+	if (vfe_mode == VFE_VLD_MODE) {
+		vfe_state->vfe0.extend_vfe_state_present = 1;
+	} else {
+		vfe_state->vfe0.extend_vfe_state_present = 0; 
+	}
+	vfe_state->vfe1.vfe_mode = vfe_mode;
+	vfe_state->vfe1.num_urb_entries = 1;
+	vfe_state->vfe1.children_present = 0;
+	vfe_state->vfe1.urb_entry_alloc_size = 2;
+	vfe_state->vfe1.max_threads = 31;
+	vfe_state->vfe2.interface_descriptor_base =
+		media_state.vfe_state.interface.bo->offset >> 4;
 
     if (media_state.vfe_state.bo)
         drm_intel_bo_unreference(media_state.vfe_state.bo);
@@ -246,9 +292,9 @@ static Status vfe_state()
     drm_intel_bo_subdata(media_state.vfe_state.bo, 0, sizeof(tmp), &tmp);
 
     drm_intel_bo_emit_reloc(media_state.vfe_state.bo,
-	offsetof(struct brw_vfe_state, vfe2),
-	media_state.vfe_state.interface.bo, 0,
-	I915_GEM_DOMAIN_INSTRUCTION, 0);
+		offsetof(struct brw_vfe_state, vfe2),
+		media_state.vfe_state.interface.bo, 0,
+		I915_GEM_DOMAIN_INSTRUCTION, 0);
     return Success;
 }
 
@@ -267,35 +313,35 @@ static Status interface_descriptor()
         return BadAlloc;
 
     for (i = 0; i < MEDIA_KERNEL_NUM; i++) {
-	memset(desc, 0, sizeof(*desc));
-	desc->desc0.grf_reg_blocks = 15;
-	desc->desc0.kernel_start_pointer =
-            media_state.vfe_state.interface.kernels[i].bo->offset >> 6;
-
-	desc->desc1.const_urb_entry_read_offset = 0;
-	desc->desc1.const_urb_entry_read_len = 30;
-
-	desc->desc3.binding_table_entry_count = I965_MAX_SURFACES - 1;
-	desc->desc3.binding_table_pointer =
-            media_state.binding_table.bo->offset >> 5;
-
-        drm_intel_bo_subdata(media_state.vfe_state.interface.bo, i*sizeof(tmp), sizeof(tmp), desc);
-
-        drm_intel_bo_emit_reloc(
-	    media_state.vfe_state.interface.bo,
-	    i * sizeof(*desc) + 
-	    offsetof(struct brw_interface_descriptor, desc0),
-	    media_state.vfe_state.interface.kernels[i].bo,
-	    desc->desc0.grf_reg_blocks,
-	    I915_GEM_DOMAIN_INSTRUCTION, 0);
-
-       drm_intel_bo_emit_reloc(
-	    media_state.vfe_state.interface.bo,
-	    i * sizeof(*desc) + 
-	    offsetof(struct brw_interface_descriptor, desc3),
-	    media_state.binding_table.bo,
-	    desc->desc3.binding_table_entry_count,
-	    I915_GEM_DOMAIN_INSTRUCTION, 0);
+		memset(desc, 0, sizeof(*desc));
+		desc->desc0.grf_reg_blocks = 15;
+		desc->desc0.kernel_start_pointer =
+				media_state.vfe_state.interface.kernels[i].bo->offset >> 6;
+
+		desc->desc1.const_urb_entry_read_offset = 0;
+		desc->desc1.const_urb_entry_read_len = 30;
+
+		desc->desc3.binding_table_entry_count = I965_MAX_SURFACES - 1;
+		desc->desc3.binding_table_pointer =
+				media_state.binding_table.bo->offset >> 5;
+
+		drm_intel_bo_subdata(media_state.vfe_state.interface.bo, i*sizeof(tmp), sizeof(tmp), desc);
+
+		drm_intel_bo_emit_reloc(
+			media_state.vfe_state.interface.bo,
+			i * sizeof(*desc) + 
+			offsetof(struct brw_interface_descriptor, desc0),
+			media_state.vfe_state.interface.kernels[i].bo,
+			desc->desc0.grf_reg_blocks,
+			I915_GEM_DOMAIN_INSTRUCTION, 0);
+		
+		drm_intel_bo_emit_reloc(
+			media_state.vfe_state.interface.bo,
+			i * sizeof(*desc) + 
+			offsetof(struct brw_interface_descriptor, desc3),
+			media_state.binding_table.bo,
+			desc->desc3.binding_table_entry_count,
+			I915_GEM_DOMAIN_INSTRUCTION, 0);
     }
     return Success;
 }
@@ -347,7 +393,7 @@ static Status binding_tables()
    return Success;
 }
 
-static Status cs_init()
+static Status cs_init(int interface_offset)
 {
    char buf[CS_OBJECT_SIZE];
    unsigned int *lib_reloc;
@@ -364,13 +410,14 @@ static Status cs_init()
    /* idct lib reloction */
    lib_reloc = (unsigned int *)(buf + 32*20);
    for (i = 0; i < 8; i++)
-       lib_reloc[i] = media_state.vfe_state.interface.kernels[LIB_INTERFACE].bo->offset;
+       lib_reloc[i] = 
+	   media_state.vfe_state.interface.kernels[LIB_INTERFACE + interface_offset].bo->offset;
    drm_intel_bo_subdata(media_state.cs_object.bo, 32*4, 32*16 + 8*sizeof(unsigned int), buf + 32*4);
 
    for (i = 0; i < 8; i++)
        drm_intel_bo_emit_reloc(media_state.cs_object.bo,
            32*20 + sizeof(unsigned int) * i,
-           media_state.vfe_state.interface.kernels[LIB_INTERFACE].bo, 0,
+           media_state.vfe_state.interface.kernels[LIB_INTERFACE + interface_offset].bo, 0,
            I915_GEM_DOMAIN_INSTRUCTION, 0);
 
    return Success;
@@ -428,7 +475,7 @@ static Status load_qmatrix(Display *display, XvMCContext *context,
 	const XvMCQMatrix *qmx)
 {
     Status ret;
-    ret = cs_init();
+    ret = cs_init(0);
     if (ret != Success)
         return ret;
     drm_intel_bo_subdata(media_state.cs_object.bo, 0, 64, qmx->intra_quantiser_matrix);
@@ -449,11 +496,11 @@ static Status vld_state(const XvMCMpegControl *control)
     struct brw_vld_state tmp, *vld = &tmp;
 
     if (media_state.vld_state.bo)
-        drm_intel_bo_unreference(media_state.vld_state.bo);
+	drm_intel_bo_unreference(media_state.vld_state.bo);
     media_state.vld_state.bo = drm_intel_bo_alloc(xvmc_driver->bufmgr, 
 	    "vld state", sizeof(struct brw_vld_state), 64);
     if (!media_state.vld_state.bo)
-        return BadAlloc;
+	return BadAlloc;
 
     memset(vld, 0, sizeof(*vld));
     vld->vld0.f_code_0_0 = control->FHMV_range + 1;
@@ -473,23 +520,23 @@ static Status vld_state(const XvMCMpegControl *control)
 
     vld->vld1.picture_coding_type = control->picture_coding_type;
 
-    vld->desc_remap_table0.index_0 = INTRA_INTERFACE;
-    vld->desc_remap_table0.index_1 = FORWARD_INTERFACE;
-    vld->desc_remap_table0.index_2 = FIELD_FORWARD_INTERFACE;
-    vld->desc_remap_table0.index_3 = FIELD_F_B_INTERFACE; /* dual prime */
-    vld->desc_remap_table0.index_4 = BACKWARD_INTERFACE;
-    vld->desc_remap_table0.index_5 = FIELD_BACKWARD_INTERFACE;
-    vld->desc_remap_table0.index_6 = F_B_INTERFACE;
-    vld->desc_remap_table0.index_7 = FIELD_F_B_INTERFACE;
-
-    vld->desc_remap_table1.index_8 = INTRA_INTERFACE;
-    vld->desc_remap_table1.index_9 = FORWARD_INTERFACE;
-    vld->desc_remap_table1.index_10 = FIELD_FORWARD_INTERFACE;
-    vld->desc_remap_table1.index_11 = FIELD_F_B_INTERFACE;
-    vld->desc_remap_table1.index_12 = BACKWARD_INTERFACE;
-    vld->desc_remap_table1.index_13 = FIELD_BACKWARD_INTERFACE;
-    vld->desc_remap_table1.index_14 = F_B_INTERFACE;
-    vld->desc_remap_table1.index_15 = FIELD_F_B_INTERFACE;
+    vld->desc_remap_table0.index_0 = FRAME_INTRA;
+    vld->desc_remap_table0.index_1 = FRAME_FRAME_PRED_FORWARD;
+    vld->desc_remap_table0.index_2 = FRAME_FIELD_PRED_FORWARD;
+    vld->desc_remap_table0.index_3 = FRAME_FIELD_PRED_BIDIRECT; /* dual prime */
+    vld->desc_remap_table0.index_4 = FRAME_FRAME_PRED_BACKWARD;
+    vld->desc_remap_table0.index_5 = FRAME_FIELD_PRED_BACKWARD;
+    vld->desc_remap_table0.index_6 = FRAME_FRAME_PRED_BIDIRECT;
+    vld->desc_remap_table0.index_7 = FRAME_FIELD_PRED_BIDIRECT;
+
+    vld->desc_remap_table1.index_8 = FRAME_INTRA;
+    vld->desc_remap_table1.index_9 = FRAME_FRAME_PRED_FORWARD;
+    vld->desc_remap_table1.index_10 = FRAME_FIELD_PRED_FORWARD;
+    vld->desc_remap_table1.index_11 = FRAME_FIELD_PRED_BIDIRECT;
+    vld->desc_remap_table1.index_12 = FRAME_FRAME_PRED_BACKWARD;
+    vld->desc_remap_table1.index_13 = FRAME_FIELD_PRED_BACKWARD;
+    vld->desc_remap_table1.index_14 = FRAME_FRAME_PRED_BIDIRECT;
+    vld->desc_remap_table1.index_15 = FRAME_FIELD_PRED_BIDIRECT;
 
     drm_intel_bo_subdata(media_state.vld_state.bo, 0, sizeof(tmp), vld);
     return Success;
@@ -534,34 +581,34 @@ static Status setup_surface(struct i965_xvmc_surface *target,
     Status ret;
     ret = setup_media_surface(0, target->bo, 0, w, h, TRUE);
     if (ret != Success)
-        return ret;
+	return ret;
     ret = setup_media_surface(1, target->bo, w*h, w/2, h/2, TRUE);
     if (ret != Success)
-        return ret;
+	return ret;
     ret = setup_media_surface(2, target->bo, w*h + w*h/4, w/2, h/2, TRUE);
     if (ret != Success)
-        return ret;
+	return ret;
     if (past) {
 	ret = setup_media_surface(4, past->bo, 0, w, h, FALSE);
-        if (ret != Success)
-            return ret;
+	if (ret != Success)
+	    return ret;
 	ret = setup_media_surface(5, past->bo, w*h, w/2, h/2, FALSE);
-        if (ret != Success)
-            return ret;
+	if (ret != Success)
+	    return ret;
 	ret = setup_media_surface(6, past->bo, w*h + w*h/4, w/2, h/2, FALSE);
-        if (ret != Success)
-            return ret;
+	if (ret != Success)
+	    return ret;
     }
     if (future) {
 	ret = setup_media_surface(7, future->bo, 0, w, h, FALSE);
-        if (ret != Success)
-            return ret;
+	if (ret != Success)
+	    return ret;
 	ret = setup_media_surface(8, future->bo, w*h, w/2, h/2, FALSE);
-        if (ret != Success)
-            return ret;
+	if (ret != Success)
+	    return ret;
 	ret = setup_media_surface(9, future->bo, w*h + w*h/4, w/2, h/2, FALSE);
-        if (ret != Success)
-            return ret;
+	if (ret != Success)
+	    return ret;
     }
     return Success;
 }
@@ -595,7 +642,7 @@ static  Status begin_surface(Display *display, XvMCContext *context,
     ret = interface_descriptor();
     if (ret != Success)
         return ret;
-    ret = vfe_state();
+    ret = vfe_state(VFE_VLD_MODE);
     if (ret != Success)
         return ret;
 
@@ -631,15 +678,20 @@ static void pipeline_select()
     OUT_BATCH(NEW_PIPELINE_SELECT|PIPELINE_SELECT_MEDIA);
     ADVANCE_BATCH();
 }
-static void media_state_pointers()
+
+static void media_state_pointers(int vfe_mode)
 {
     BATCH_LOCALS;
     BEGIN_BATCH(3);
     OUT_BATCH(BRW_MEDIA_STATE_POINTERS|1);
-    OUT_RELOC(media_state.vld_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 1);
+	if (vfe_mode == VFE_VLD_MODE) 
+		OUT_RELOC(media_state.vld_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 1);
+	else
+		OUT_BATCH(0);
     OUT_RELOC(media_state.vfe_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
     ADVANCE_BATCH();
 }
+
 static void align_urb_fence()
 {
     BATCH_LOCALS;
@@ -654,6 +706,7 @@ static void align_urb_fence()
 	ADVANCE_BATCH();
     }
 }
+
 static void urb_layout()
 {
     BATCH_LOCALS;
@@ -698,6 +751,39 @@ static void cs_buffer()
     ADVANCE_BATCH();
 }
 
+/* kick media object to gpu in idct mode*/
+static void send_media_object(XvMCMacroBlock *mb, dri_bo *bo, 
+							uint32_t offset,  
+							enum interface interface)
+{
+    BATCH_LOCALS;
+    BEGIN_BATCH(13);
+    OUT_BATCH(BRW_MEDIA_OBJECT|11);
+    OUT_BATCH(interface);
+    OUT_BATCH(6*128);
+    OUT_RELOC(bo, I915_GEM_DOMAIN_INSTRUCTION, 0, offset);
+    
+    OUT_BATCH(mb->x<<4);                 	  		
+    OUT_BATCH(mb->y<<4);
+	OUT_RELOC(bo, I915_GEM_DOMAIN_INSTRUCTION, 0, offset);
+    OUT_BATCH_SHORT(mb->coded_block_pattern); 			
+    OUT_BATCH_SHORT(mb->PMV[0][0][0]);        			
+    OUT_BATCH_SHORT(mb->PMV[0][0][1]);        			
+    OUT_BATCH_SHORT(mb->PMV[0][1][0]);        			
+    OUT_BATCH_SHORT(mb->PMV[0][1][1]);        			
+    
+    OUT_BATCH_SHORT(mb->PMV[1][0][0]);        			 
+    OUT_BATCH_SHORT(mb->PMV[1][0][1]);        			
+    OUT_BATCH_SHORT(mb->PMV[1][1][0]);        			
+    OUT_BATCH_SHORT(mb->PMV[1][1][1]);        			
+    OUT_BATCH_CHAR(mb->dct_type);             			
+    OUT_BATCH_CHAR(mb->motion_vertical_field_select);	
+    
+    OUT_BATCH(0xffffffff);
+    ADVANCE_BATCH();
+}
+
+/* kick media object to gpu in vld mode*/
 static void vld_send_media_object(dri_bo *bo,
 	int slice_len, int mb_h_pos, int mb_v_pos, int mb_bit_offset,
 	int mb_count, int q_scale_code)
@@ -749,8 +835,8 @@ static Status put_slice2(Display *display, XvMCContext *context,
     intel_ctx = intel_xvmc_find_context(context->context_id);
     LOCK_HARDWARE(intel_ctx->hw_context);
     state_base_address();
-    pipeline_select(&media_state);
-    media_state_pointers(&media_state);
+    pipeline_select();
+    media_state_pointers(VFE_VLD_MODE);
     urb_layout();	
     cs_urb_layout();
     cs_buffer();
@@ -779,6 +865,169 @@ static Status put_surface(Display *display,XvMCSurface *surface,
 	return Success;
 }
 
+static Status render_surface(Display *display, 
+	XvMCContext *context,
+	unsigned int picture_structure,
+	XvMCSurface *target_surface,
+	XvMCSurface *past_surface,
+	XvMCSurface *future_surface,
+	unsigned int flags,
+	unsigned int num_macroblocks,
+	unsigned int first_macroblock,
+	XvMCMacroBlockArray *macroblock_array,
+	XvMCBlockArray *blocks)
+{
+    struct i965_xvmc_surface *priv_target, *priv_past, *priv_future;
+    intel_xvmc_context_ptr intel_ctx;
+    XvMCMacroBlock *mb;
+    Status ret;
+    unsigned short *block_ptr;
+    int i, j;
+    int block_offset = 0;
+
+    intel_ctx = intel_xvmc_find_context(context->context_id);
+    if (!intel_ctx) {
+	XVMC_ERR("Can't find intel xvmc context\n");
+	return BadValue;
+    }
+
+    priv_target = target_surface->privData;
+    priv_past = past_surface?past_surface->privData:NULL;
+    priv_future = future_surface?future_surface->privData:NULL;
+
+    ret = setup_surface(priv_target, priv_past, priv_future, 
+	    context->width, context->height);
+    if (ret != Success)
+	return ret;
+    ret = binding_tables();
+    if (ret != Success)
+	return ret;
+    ret = interface_descriptor();
+    if (ret != Success)
+	return ret;
+    ret = cs_init(INTERFACE_NUM);
+    if (ret != Success)
+	return ret;
+    ret = vfe_state(VFE_GENERIC_MODE);
+    if (ret != Success)
+	return ret;
+
+    if (media_state.mb_data.bo) {
+	if (xvmc_driver->kernel_exec_fencing)
+	    drm_intel_gem_bo_unmap_gtt(media_state.mb_data.bo);
+	else
+	    drm_intel_bo_unmap(media_state.mb_data.bo);
+
+	drm_intel_bo_unreference(media_state.mb_data.bo);
+    }
+    unsigned int block_num = 
+	(((context->width + 15) >> 4) * ((context->height + 15) >> 4));
+    unsigned int surface_size = (64 * sizeof(short) * 6 * block_num);
+    media_state.mb_data.bo = drm_intel_bo_alloc(xvmc_driver->bufmgr,
+	    "macroblock data", surface_size, 64); 
+    if(!media_state.mb_data.bo)
+	return BadAlloc;
+    if(xvmc_driver->kernel_exec_fencing)
+	drm_intel_gem_bo_map_gtt(media_state.mb_data.bo);
+    else
+	drm_intel_bo_map(media_state.mb_data.bo, 1);
+
+    block_ptr = media_state.mb_data.bo->virtual;
+    unsigned short *mb_block_ptr;
+    for (i = first_macroblock; 
+	    i < num_macroblocks + first_macroblock; i++) {
+	mb = &macroblock_array->macro_blocks[i];
+	mb_block_ptr = &blocks->blocks[(mb->index<<6)];
+
+	if (mb->coded_block_pattern & 0x20) {
+	    for (j = 0; j < 8; j++)
+		memcpy(block_ptr + 16*j, mb_block_ptr + 8*j, 16);	
+	    mb_block_ptr += 64;
+	}
+	if (mb->coded_block_pattern & 0x10) {
+	    for (j = 0; j < 8; j++)
+		memcpy(block_ptr + 16*j + 8, mb_block_ptr + 8*j, 16);	
+	    mb_block_ptr += 64;
+	}
+
+	block_ptr += 2*64;
+	if (mb->coded_block_pattern & 0x08) {
+	    for (j = 0; j < 8; j++)
+		memcpy(block_ptr + 16*j, mb_block_ptr + 8*j, 16);	
+	    mb_block_ptr += 64;
+	}
+	if (mb->coded_block_pattern & 0x04) {
+	    for (j = 0; j < 8; j++)
+		memcpy(block_ptr + 16*j + 8, mb_block_ptr + 8*j, 16);	
+	    mb_block_ptr += 64;
+	}
+
+	block_ptr += 2*64;
+	if (mb->coded_block_pattern & 0x2) {
+	    memcpy(block_ptr, mb_block_ptr, 128);
+	    mb_block_ptr += 64;
+	}
+
+	block_ptr += 64;
+	if (mb->coded_block_pattern & 0x1) 
+	    memcpy(block_ptr, mb_block_ptr, 128);
+	block_ptr += 64; 
+    }
+
+    LOCK_HARDWARE(intel_ctx->hw_context);
+    state_base_address();
+    flush();	
+    pipeline_select();
+    urb_layout();	
+    media_state_pointers(VFE_GENERIC_MODE);
+    cs_urb_layout();
+    cs_buffer();
+    for (i = first_macroblock; 
+	    i < num_macroblocks + first_macroblock; 
+	    i++, block_offset += 128*6) {
+	mb = &macroblock_array->macro_blocks[i];
+
+	if (mb->macroblock_type & XVMC_MB_TYPE_INTRA) {
+	    send_media_object(mb, media_state.mb_data.bo, block_offset, 
+		    FRAME_INTRA + INTERFACE_NUM);
+	} else {
+	    if (((mb->motion_type & 3) == XVMC_PREDICTION_FRAME)) {
+		if ((mb->macroblock_type & XVMC_MB_TYPE_MOTION_FORWARD)) {
+		    if ((mb->macroblock_type & XVMC_MB_TYPE_MOTION_BACKWARD)) {
+			send_media_object(mb, media_state.mb_data.bo, block_offset, 
+				FRAME_FRAME_PRED_BIDIRECT + INTERFACE_NUM);
+		    } else {
+			send_media_object(mb, media_state.mb_data.bo, block_offset, 
+				FRAME_FRAME_PRED_FORWARD + INTERFACE_NUM);
+		    }
+		} else if ((mb->macroblock_type&XVMC_MB_TYPE_MOTION_BACKWARD)) {
+		    send_media_object(mb, media_state.mb_data.bo, block_offset, 
+			    FRAME_FRAME_PRED_BACKWARD + INTERFACE_NUM);
+		}
+	    } else if ((mb->motion_type & 3) == XVMC_PREDICTION_FIELD) {
+		if ((mb->macroblock_type&XVMC_MB_TYPE_MOTION_FORWARD)) {
+		    if (((mb->macroblock_type&XVMC_MB_TYPE_MOTION_BACKWARD))) {
+			send_media_object(mb, media_state.mb_data.bo, block_offset, 
+				FRAME_FIELD_PRED_BIDIRECT + INTERFACE_NUM);
+		    } else {
+			send_media_object(mb, media_state.mb_data.bo, block_offset, 
+				FRAME_FIELD_PRED_FORWARD + INTERFACE_NUM);
+		    }
+		} else if ((mb->macroblock_type&XVMC_MB_TYPE_MOTION_BACKWARD)) {
+		    send_media_object(mb, media_state.mb_data.bo, block_offset, 
+			    FRAME_FIELD_PRED_BACKWARD + INTERFACE_NUM);
+		}
+	    } else {
+		send_media_object(mb, media_state.mb_data.bo, block_offset, 
+			FRAME_FIELD_PRED_BIDIRECT + INTERFACE_NUM); /*dual prime*/
+	    } 
+	}
+    }
+    intelFlushBatch(TRUE);
+    UNLOCK_HARDWARE(intel_ctx->hw_context);
+    return Success;
+}
+
 struct _intel_xvmc_driver xvmc_vld_driver = {
     .type = XVMC_I965_MPEG2_VLD,
     .create_context = create_context,
@@ -788,6 +1037,7 @@ struct _intel_xvmc_driver xvmc_vld_driver = {
     .load_qmatrix = load_qmatrix,
     .get_surface_status = get_surface_status,
     .begin_surface = begin_surface,
+	.render_surface = render_surface,
     .put_surface = put_surface,
     .put_slice = put_slice,
     .put_slice2 = put_slice2


More information about the xorg-commit mailing list