Clean ups and minor changes in high precision mv with 8-tap interpolation

* Removes EDGE_PIXEL_FILTER for external sanpshot
* changes the default 8-tap filter based on high precision results
in http://www.corp.google.com/~debargha/vp8_results/enhinterpn.html
* changes the default prob tables for high-precision mv encoding to
favor zeros in the last bit (i.e. quarter pel). This is only important
for short clips.

Change-Id: I02bb0de8679d9eec06cdbcc8160dbf073cd847a4
diff --git a/vp8/common/entropymv.c b/vp8/common/entropymv.c
index 1e0690a..4959fe9 100644
--- a/vp8/common/entropymv.c
+++ b/vp8/common/entropymv.c
@@ -33,14 +33,14 @@
         /* row */
         162,                                        /* is short */
         128,                                        /* sign */
-        230, 215, 175, 140, 160, 180, 160, 140, 180, 214, 150, 39, 120, 156, 160, /* short tree */
+        220, 204, 180, 192, 192, 119, 192, 192, 180, 140, 192, 192, 224, 224, 224, /* short tree */
         128, 129, 132,  75, 145, 178, 206, 239, 254, 254, 254 /* long bits */
     }},
     {{
         /* same for column */
         164,                                        /* is short */
         128,
-        220, 204, 180, 170, 140, 119, 180, 235, 180, 140, 185, 230, 229, 228, 200,
+        220, 204, 180, 192, 192, 119, 192, 192, 180, 140, 192, 192, 224, 224, 224, /* short tree */
         128, 130, 130,  74, 148, 180, 203, 236, 254, 254, 254 /* long bits */
     }}
 };
diff --git a/vp8/common/filter.c b/vp8/common/filter.c
index bcc3509..bf5cefc 100644
--- a/vp8/common/filter.c
+++ b/vp8/common/filter.c
@@ -13,8 +13,6 @@
 #include "filter.h"
 #include "vpx_ports/mem.h"
 
-//#define ANNOUNCE_FUNCTION
-
 DECLARE_ALIGNED(16, const short, vp8_bilinear_filters[SUBPEL_SHIFTS][2]) =
 {
 #if SUBPEL_SHIFTS==16
@@ -47,37 +45,18 @@
 };
 
 #if CONFIG_ENHANCED_INTERP
-#define FILTER_ALPHA 65
+#define FILTER_ALPHA 60
 DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters[SUBPEL_SHIFTS][2*INTERP_EXTEND]) =
 {
     /* Generated using MATLAB:
-     * alpha = 0.875;
+     * alpha = 0.6;
      * b=intfilt(8,4,alpha);
      * bi=round(128*b);
      * ba=flipud(reshape([bi 0], 8, 8));
-     * % Now normalize the powers of the polyphase components
      * disp(num2str(ba, '%d,'))
      */
 #if SUBPEL_SHIFTS==16
-#if FILTER_ALPHA == 80
-    /* alpha = 0.80 */
-    { 0,   0,   0, 128,   0,   0,   0,  0},
-    {-1,   2,  -6, 127,   9,  -4,   2, -1},
-    {-2,   5, -12, 124,  18,  -7,   4, -2},
-    {-2,   7, -16, 119,  28, -11,   5, -2},
-    {-3,   8, -19, 114,  38, -14,   7, -3},
-    {-3,   9, -22, 107,  49, -17,   8, -3},
-    {-4,  10, -23,  99,  60, -20,  10, -4},
-    {-4,  11, -23,  90,  70, -22,  10, -4},
-    {-4,  11, -23,  80,  80, -23,  11, -4},
-    {-4,  10, -22,  70,  90, -23,  11, -4},
-    {-4,  10, -20,  60,  99, -23,  10, -4},
-    {-3,   8, -17,  49, 107, -22,   9, -3},
-    {-3,   7, -14,  38, 114, -19,   8, -3},
-    {-2,   5, -11,  28, 119, -16,   7, -2},
-    {-2,   4,  -7,  18, 124, -12,   5, -2},
-    {-1,   2,  -4,   9, 127,  -6,   2, -1}
-#elif FILTER_ALPHA == 75
+#if FILTER_ALPHA == 75
     /* alpha = 0.75 */
     { 0,   0,   0, 128,   0,   0,   0,  0},
     {-1,   2,  -6, 126,   9,  -3,   2, -1},
@@ -148,20 +127,28 @@
     {-1,   4, -12,  38, 112, -17,   5, -1},
     {-1,   3,  -9,  28, 118, -14,   4, -1},
     {-1,   2,  -6,  18, 123, -10,   3, -1},
-    {0,   1,  -3,   8, 126,  -6,   2, 0}
+    {0,   1,  -3,   8, 126,  -6,   2,   0}
+#elif FILTER_ALPHA == 55
+    /* alpha = 0.55 */
+    {0,   0,   0, 128,   0,   0,    0,  0},
+    {0,   1,  -5, 126,   8,  -3,    1,  0},
+    {-1,   2, -10, 123,  18,  -6,   2,  0},
+    {-1,   4, -13, 118,  27,  -9,   3, -1},
+    {-1,   5, -16, 112,  37, -12,   4, -1},
+    {-1,   5, -18, 105,  48, -14,   4, -1},
+    {-1,   5, -19,  97,  58, -16,   5, -1},
+    {-1,   6, -19,  88,  68, -18,   5, -1},
+    {-1,   6, -19,  78,  78, -19,   6, -1},
+    {-1,   5, -18,  68,  88, -19,   6, -1},
+    {-1,   5, -16,  58,  97, -19,   5, -1},
+    {-1,   4, -14,  48, 105, -18,   5, -1},
+    {-1,   4, -12,  37, 112, -16,   5, -1},
+    {-1,   3,  -9,  27, 118, -13,   4, -1},
+    {0,   2,  -6,  18, 123, -10,   2,  -1},
+    {0,   1,  -3,   8, 126,  -5,   1,   0}
 #endif  /* FILTER_ALPHA */
 #else   /* SUBPEL_SHIFTS==16 */
-#if FILTER_ALPHA == 80
-    /* alpha = 0.80 */
-    { 0,   0,   0, 128,   0,   0,   0,  0},
-    {-2,   5, -12, 124,  18,  -7,   4, -2},
-    {-3,   8, -19, 114,  38, -14,   7, -3},
-    {-4,  10, -23,  99,  60, -20,  10, -4},
-    {-4,  11, -23,  80,  80, -23,  11, -4},
-    {-4,  10, -20,  60,  99, -23,  10, -4},
-    {-3,   7, -14,  38, 114, -19,   8, -3},
-    {-2,   4,  -7,  18, 124, -12,   5, -2}
-#elif FILTER_ALPHA == 75
+#if FILTER_ALPHA == 75
     /* alpha = 0.75 */
     { 0,   0,   0, 128,   0,   0,   0,  0},
     {-1,   4, -11, 123,  18,  -7,   3, -1},
@@ -201,674 +188,20 @@
     {-1,   6, -17,  58,  97, -20,   6, -1},
     {-1,   4, -12,  38, 112, -17,   5, -1},
     {-1,   2,  -6,  18, 123, -10,   3, -1}
+#elif FILTER_ALPHA == 55
+    /* alpha = 0.55 */
+    { 0,   0,   0, 128,   0,   0,   0,  0},
+    {-1,   2, -10, 123,  18,  -6,   2,  0},
+    {-1,   5, -16, 112,  37, -12,   4, -1},
+    {-1,   5, -19,  97,  58, -16,   5, -1},
+    {-1,   6, -19,  78,  78, -19,   6, -1},
+    {-1,   5, -16,  58,  97, -19,   5, -1},
+    {-1,   4, -12,  37, 112, -16,   5, -1},
+    { 0,   2,  -6,  18, 123, -10,   2, -1}
 #endif  /* FILTER_ALPHA */
 #endif  /* SUBPEL_SHIFTS==16 */
 };
 
-#if EDGE_PIXEL_FILTER > 0
-
-#define EDGE_SIMPLE_THRESH 128
-#define EDGE_GRAD_THRESH 128
-#define EDGE_GRADS2X2_THRESH 4
-/* TODO: Refine these filters */
-DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters_ns[SUBPEL_SHIFTS*SUBPEL_SHIFTS][4*EDGE_PIXEL_FILTER_EXTEND*EDGE_PIXEL_FILTER_EXTEND]) =
-{
-#if SUBPEL_SHIFTS==16
-#if EDGE_PIXEL_FILTER_EXTEND == 2
-    {0,   0,   0,   0,   0, 128,   0,   0,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   1,   0,   0,  -7, 128,   9,  -3,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   1,   1,   1, -13, 125,  18,  -7,   0,   1,   1,   0,   0,   0,   0, 0},
-    {0,   1,   1,   1, -18, 121,  28, -11,   0,   1,   1,   1,   1,   1,   0, 0},
-    {0,   1,   1,   1, -22, 116,  39, -15,   0,   1,   1,   1,   1,   1,   1, 1},
-    {1,   1,   1,   1, -24, 109,  50, -19,   1,   1,   1,   1,   1,   1,   1, 1},
-    {1,   1,   1,   1, -25, 101,  61, -21,   1,   1,   1,   1,   1,   1,   1, 1},
-    {1,   1,   1,   1, -25,  92,  72, -23,   1,   1,   1,   1,   1,   1,   1, 1},
-    {1,   1,   1,   1, -25,  83,  83, -25,   1,   1,   1,   1,   1,   1,   1, 1},
-    {1,   1,   1,   1, -23,  72,  92, -25,   1,   1,   1,   1,   1,   1,   1, 1},
-    {1,   1,   1,   1, -21,  61, 101, -25,   1,   1,   1,   1,   1,   1,   1, 1},
-    {1,   1,   1,   1, -19,  50, 109, -24,   1,   1,   1,   1,   1,   1,   1, 1},
-    {1,   1,   1,   0, -15,  39, 116, -22,   1,   1,   1,   0,   1,   1,   1, 1},
-    {1,   1,   1,   0, -11,  28, 121, -18,   1,   1,   1,   0,   1,   1,   0, 0},
-    {1,   1,   1,   0,  -7,  18, 125, -13,   0,   1,   1,   0,   0,   0,   0, 0},
-    {0,   0,   1,   0,  -3,   9, 128,  -7,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -7,   0,   0,   1, 128,   0,   0,   0,   9,   0,   0,   0,  -3,   0, 0},
-    {0,  -7,  -1,   0,  -7, 126,   8,   0,   0,   8,   1,   0,   0,   0,   0, 0},
-    {1,  -7,  -1,   1, -13, 124,  18,  -7,   0,   9,   2,   1,   0,   0,   0, 0},
-    {2,  -6,  -1,   1, -18, 120,  28, -11,  -1,   8,   2,   1,   1,   1,   1, 0},
-    {2,  -6,  -1,   1, -22, 115,  39, -15,  -1,   8,   3,   1,   1,   1,   1, 1},
-    {2,  -5,  -2,   1, -24, 109,  50, -18,  -1,   8,   4,   0,   1,   1,   1, 1},
-    {3,  -5,  -2,   1, -25, 101,  60, -21,  -1,   8,   5,   0,   1,   1,   1, 1},
-    {3,  -4,  -3,   3, -26,  92,  71, -23,  -1,   7,   6,  -1,   1,   1,   1, 1},
-    {3,  -3,  -3,   3, -25,  82,  82, -25,  -1,   6,   6,  -1,   1,   1,   1, 1},
-    {3,  -3,  -4,   3, -23,  71,  92, -26,  -1,   6,   7,  -1,   1,   1,   1, 1},
-    {1,  -2,  -5,   3, -21,  60, 101, -25,   0,   5,   8,  -1,   1,   1,   1, 1},
-    {1,  -2,  -5,   2, -18,  50, 109, -24,   0,   4,   8,  -1,   1,   1,   1, 1},
-    {1,  -1,  -6,   2, -15,  39, 115, -22,   1,   3,   8,  -1,   1,   1,   1, 1},
-    {1,  -1,  -6,   2, -11,  28, 120, -18,   1,   2,   8,  -1,   1,   1,   1, 0},
-    {1,  -1,  -7,   1,  -7,  18, 124, -13,   1,   2,   9,   0,   0,   0,   0, 0},
-    {0,  -1,  -7,   0,   0,   8, 126,  -7,   0,   1,   8,   0,   0,   0,   0, 0},
-    {0, -13,   0,   1,   1, 125,   1,   0,   1,  18,   1,   0,   0,  -7,   0, 0},
-    {1, -13,   0,   1,  -7, 124,   9,   1,  -1,  18,   2,   0,   0,  -7,   0, 0},
-    {2, -12,  -1,   1, -12, 122,  18,  -7,  -1,  18,   3,   1,   1,  -7,   1, 1},
-    {3, -12,  -2,   1, -17, 119,  28, -11,  -2,  18,   5,   1,   1,  -6,   1, 1},
-    {4, -11,  -3,   1, -21, 114,  38, -14,  -2,  17,   7,   1,   1,  -6,   1, 1},
-    {4, -10,  -4,   2, -23, 107,  49, -17,  -2,  16,   8,  -1,   2,  -5,   1, 1},
-    {4,  -9,  -5,   2, -24,  99,  60, -20,  -2,  15,  10,  -2,   2,  -5,   2, 1},
-    {4,  -8,  -6,   4, -25,  90,  70, -22,  -2,  14,  11,  -2,   2,  -4,   1, 1},
-    {4,  -8,  -8,   4, -24,  80,  80, -24,  -2,  12,  12,  -2,   1,   1,   1, 1},
-    {4,  -6,  -8,   4, -22,  70,  90, -25,  -2,  11,  14,  -2,   2,   1,  -4, 1},
-    {2,  -5,  -9,   4, -20,  60,  99, -24,  -2,  10,  15,  -2,   2,   2,  -5, 1},
-    {2,  -4, -10,   4, -17,  49, 107, -23,  -1,   8,  16,  -2,   2,   1,  -5, 1},
-    {1,  -3, -11,   4, -14,  38, 114, -21,   1,   7,  17,  -2,   1,   1,  -6, 1},
-    {1,  -2, -12,   3, -11,  28, 119, -17,   1,   5,  18,  -2,   1,   1,  -6, 1},
-    {1,  -1, -12,   2,  -7,  18, 122, -12,   1,   3,  18,  -1,   1,   1,  -7, 1},
-    {1,   0, -13,   1,   1,   9, 124,  -7,   0,   2,  18,  -1,   0,   0,  -7, 0},
-    {0, -18,   0,   1,   1, 121,   1,   1,   1,  28,   1,   1,   1, -11,   0, 0},
-    {2, -18,  -1,   1,  -6, 120,   8,   1,  -1,  28,   2,   1,   1, -11,   1, 0},
-    {3, -17,  -2,   1, -12, 119,  18,  -6,  -2,  28,   5,   1,   1, -11,   1, 1},
-    {4, -16,  -3,   2, -16, 115,  27, -10,  -3,  27,   7,   1,   1, -10,   1, 1},
-    {5, -15,  -4,   2, -20, 110,  37, -13,  -3,  26,  10,  -2,   2,  -9,   1, 1},
-    {5, -14,  -6,   2, -22, 104,  48, -17,  -4,  25,  12,  -3,   2,  -8,   2, 2},
-    {6, -12,  -7,   2, -23,  96,  59, -19,  -4,  24,  15,  -3,   2,  -7,  -3, 2},
-    {6, -11,  -8,   2, -23,  88,  69, -21,  -4,  22,  17,  -3,   2,  -6,  -4, 2},
-    {6, -10, -10,   6, -23,  79,  79, -23,  -4,  19,  19,  -4,   2,  -5,  -5, 2},
-    {2,  -8, -11,   6, -21,  69,  88, -23,  -3,  17,  22,  -4,   2,  -4,  -6, 2},
-    {2,  -7, -12,   6, -19,  59,  96, -23,  -3,  15,  24,  -4,   2,  -3,  -7, 2},
-    {2,  -6, -14,   5, -17,  48, 104, -22,  -3,  12,  25,  -4,   2,   2,  -8, 2},
-    {2,  -4, -15,   5, -13,  37, 110, -20,  -2,  10,  26,  -3,   2,   1,  -9, 1},
-    {2,  -3, -16,   4, -10,  27, 115, -16,   1,   7,  27,  -3,   1,   1, -10, 1},
-    {1,  -2, -17,   3,  -6,  18, 119, -12,   1,   5,  28,  -2,   1,   1, -11, 1},
-    {1,  -1, -18,   2,   1,   8, 120,  -6,   1,   2,  28,  -1,   1,   1, -11, 0},
-    {0, -22,   0,   1,   1, 116,   1,   1,   1,  39,   1,   1,   1, -15,   1, 1},
-    {2, -22,  -1,   1,  -6, 115,   8,   1,  -1,  39,   3,   1,   1, -15,   1, 1},
-    {4, -21,  -2,   1, -11, 114,  17,  -6,  -3,  38,   7,   1,   1, -14,   1, 1},
-    {5, -20,  -3,   2, -15, 110,  26,  -9,  -4,  37,  10,   2,   1, -13,  -2, 1},
-    {6, -18,  -5,   2, -18, 106,  36, -12,  -5,  36,  13,  -2,   2, -12,  -3, 2},
-    {7, -17,  -6,   2, -20, 100,  46, -15,  -5,  34,  17,  -4,   2, -11,  -4, 2},
-    {7, -15,  -8,   2, -21,  93,  56, -18,  -5,  32,  20,  -4,   2, -10,  -5, 2},
-    {7, -13, -10,   3, -22,  84,  66, -20,  -5,  30,  24,  -5,   2,  -9,  -6, 2},
-    {3, -12, -12,   3, -21,  76,  76, -21,  -5,  27,  27,  -5,   3,  -7,  -7, 3},
-    {3, -10, -13,   7, -20,  66,  84, -22,  -5,  24,  30,  -5,   2,  -6,  -9, 2},
-    {2,  -8, -15,   7, -18,  56,  93, -21,  -4,  20,  32,  -5,   2,  -5, -10, 2},
-    {2,  -6, -17,   7, -15,  46, 100, -20,  -4,  17,  34,  -5,   2,  -4, -11, 2},
-    {2,  -5, -18,   6, -12,  36, 106, -18,  -2,  13,  36,  -5,   2,  -3, -12, 2},
-    {2,  -3, -20,   5,  -9,  26, 110, -15,   2,  10,  37,  -4,   1,  -2, -13, 1},
-    {1,  -2, -21,   4,  -6,  17, 114, -11,   1,   7,  38,  -3,   1,   1, -14, 1},
-    {1,  -1, -22,   2,   1,   8, 115,  -6,   1,   3,  39,  -1,   1,   1, -15, 1},
-    {1, -24,   1,   1,   1, 109,   1,   1,   1,  50,   1,   1,   1, -19,   1, 1},
-    {2, -24,  -1,   1,  -5, 109,   8,   1,  -2,  50,   4,   1,   1, -18,   0, 1},
-    {4, -23,  -2,   2, -10, 107,  16,  -5,  -4,  49,   8,   2,   1, -17,  -1, 1},
-    {5, -22,  -4,   2, -14, 104,  25,  -8,  -6,  48,  12,   2,   2, -17,  -3, 2},
-    {7, -20,  -5,   2, -17, 100,  34, -11,  -6,  46,  17,  -4,   2, -15,  -4, 2},
-    {7, -19,  -7,   3, -19,  94,  44, -14,  -7,  44,  21,  -5,   3, -14,  -5, 2},
-    {8, -17,  -9,   3, -20,  87,  53, -16,  -8,  41,  25,  -6,   3, -12,  -6, 2},
-    {3, -15, -11,   3, -20,  80,  63, -18,  -7,  38,  30,  -6,   3, -11,  -7, 3},
-    {3, -13, -13,   3, -19,  72,  72, -19,  -7,  34,  34,  -7,   3,  -9,  -9, 3},
-    {3, -11, -15,   3, -18,  63,  80, -20,  -6,  30,  38,  -7,   3,  -7, -11, 3},
-    {3,  -9, -17,   8, -16,  53,  87, -20,  -6,  25,  41,  -8,   3,  -6, -12, 2},
-    {3,  -7, -19,   7, -14,  44,  94, -19,  -5,  21,  44,  -7,   3,  -5, -14, 2},
-    {2,  -5, -20,   7, -11,  34, 100, -17,  -4,  17,  46,  -6,   2,  -4, -15, 2},
-    {2,  -4, -22,   5,  -8,  25, 104, -14,   2,  12,  48,  -6,   2,  -3, -17, 2},
-    {2,  -2, -23,   4,  -5,  16, 107, -10,   2,   8,  49,  -4,   1,  -1, -17, 1},
-    {1,  -1, -24,   2,   1,   8, 109,  -5,   1,   4,  50,  -2,   1,   0, -18, 1},
-    {1, -25,   1,   1,   1, 101,   1,   1,   1,  61,   1,   1,   1, -21,   1, 1},
-    {3, -25,  -1,   1,  -5, 101,   8,   1,  -2,  60,   5,   1,   1, -21,   0, 1},
-    {4, -24,  -2,   2,  -9,  99,  15,  -5,  -5,  60,  10,   2,   2, -20,  -2, 1},
-    {6, -23,  -4,   2, -12,  96,  24,  -7,  -7,  59,  15,  -3,   2, -19,  -3, 2},
-    {7, -21,  -5,   2, -15,  93,  32, -10,  -8,  56,  20,  -5,   2, -18,  -4, 2},
-    {8, -20,  -8,   3, -17,  87,  41, -12,  -9,  53,  25,  -6,   3, -16,  -6, 2},
-    {3, -18,  -9,   3, -18,  81,  50, -14,  -9,  50,  31,  -7,   3, -14,  -7, 3},
-    {3, -16, -11,   3, -18,  75,  59, -16,  -9,  46,  36,  -8,   3, -13,  -9, 3},
-    {3, -13, -13,   3, -17,  67,  67, -17,  -9,  41,  41,  -9,   3, -11, -11, 3},
-    {3, -11, -16,   3, -16,  59,  75, -18,  -8,  36,  46,  -9,   3,  -9, -13, 3},
-    {3,  -9, -18,   3, -14,  50,  81, -18,  -7,  31,  50,  -9,   3,  -7, -14, 3},
-    {3,  -8, -20,   8, -12,  41,  87, -17,  -6,  25,  53,  -9,   3,  -6, -16, 2},
-    {2,  -5, -21,   7, -10,  32,  93, -15,  -5,  20,  56,  -8,   2,  -4, -18, 2},
-    {2,  -4, -23,   6,  -7,  24,  96, -12,  -3,  15,  59,  -7,   2,  -3, -19, 2},
-    {2,  -2, -24,   4,  -5,  15,  99,  -9,   2,  10,  60,  -5,   2,  -2, -20, 1},
-    {1,  -1, -25,   3,   1,   8, 101,  -5,   1,   5,  60,  -2,   1,   0, -21, 1},
-    {1, -25,   1,   1,   1,  92,   1,   1,   1,  72,   1,   1,   1, -23,   1, 1},
-    {3, -26,  -1,   1,  -4,  92,   7,   1,  -3,  71,   6,   1,   3, -23,  -1, 1},
-    {4, -25,  -2,   2,  -8,  90,  14,  -4,  -6,  70,  11,   1,   4, -22,  -2, 1},
-    {6, -23,  -4,   2, -11,  88,  22,  -6,  -8,  69,  17,  -4,   2, -21,  -3, 2},
-    {7, -22,  -5,   3, -13,  84,  30,  -9, -10,  66,  24,  -6,   2, -20,  -5, 2},
-    {3, -20,  -7,   3, -15,  80,  38, -11, -11,  63,  30,  -7,   3, -18,  -6, 3},
-    {3, -18,  -9,   3, -16,  75,  46, -13, -11,  59,  36,  -9,   3, -16,  -8, 3},
-    {3, -16, -11,   3, -16,  68,  54, -14, -11,  54,  42, -10,   3, -14, -10, 3},
-    {4, -14, -14,   4, -15,  61,  61, -15, -11,  48,  48, -11,   3, -12, -12, 3},
-    {3, -11, -16,   3, -14,  54,  68, -16, -10,  42,  54, -11,   3, -10, -14, 3},
-    {3,  -9, -18,   3, -13,  46,  75, -16,  -9,  36,  59, -11,   3,  -8, -16, 3},
-    {3,  -7, -20,   3, -11,  38,  80, -15,  -7,  30,  63, -11,   3,  -6, -18, 3},
-    {3,  -5, -22,   7,  -9,  30,  84, -13,  -6,  24,  66, -10,   2,  -5, -20, 2},
-    {2,  -4, -23,   6,  -6,  22,  88, -11,  -4,  17,  69,  -8,   2,  -3, -21, 2},
-    {2,  -2, -25,   4,  -4,  14,  90,  -8,   1,  11,  70,  -6,   1,  -2, -22, 4},
-    {1,  -1, -26,   3,   1,   7,  92,  -4,   1,   6,  71,  -3,   1,  -1, -23, 3},
-    {1, -25,   1,   1,   1,  83,   1,   1,   1,  83,   1,   1,   1, -25,   1, 1},
-    {3, -25,  -1,   1,  -3,  82,   6,   1,  -3,  82,   6,   1,   3, -25,  -1, 1},
-    {4, -24,  -2,   1,  -8,  80,  12,   1,  -8,  80,  12,   1,   4, -24,  -2, 1},
-    {6, -23,  -4,   2, -10,  79,  19,  -5, -10,  79,  19,  -5,   6, -23,  -4, 2},
-    {3, -21,  -5,   3, -12,  76,  27,  -7, -12,  76,  27,  -7,   3, -21,  -5, 3},
-    {3, -19,  -7,   3, -13,  72,  34,  -9, -13,  72,  34,  -9,   3, -19,  -7, 3},
-    {3, -17,  -9,   3, -13,  67,  41, -11, -13,  67,  41, -11,   3, -17,  -9, 3},
-    {4, -15, -11,   4, -14,  61,  48, -12, -14,  61,  48, -12,   3, -15, -11, 3},
-    {3, -13, -13,   3, -13,  55,  55, -13, -13,  55,  55, -13,   3, -13, -13, 3},
-    {4, -11, -15,   4, -12,  48,  61, -14, -12,  48,  61, -14,   3, -11, -15, 3},
-    {3,  -9, -17,   3, -11,  41,  67, -13, -11,  41,  67, -13,   3,  -9, -17, 3},
-    {3,  -7, -19,   3,  -9,  34,  72, -13,  -9,  34,  72, -13,   3,  -7, -19, 3},
-    {3,  -5, -21,   3,  -7,  27,  76, -12,  -7,  27,  76, -12,   3,  -5, -21, 3},
-    {2,  -4, -23,   6,  -5,  19,  79, -10,  -5,  19,  79, -10,   2,  -4, -23, 6},
-    {1,  -2, -24,   4,   1,  12,  80,  -8,   1,  12,  80,  -8,   1,  -2, -24, 4},
-    {1,  -1, -25,   3,   1,   6,  82,  -3,   1,   6,  82,  -3,   1,  -1, -25, 3},
-    {1, -23,   1,   1,   1,  72,   1,   1,   1,  92,   1,   1,   1, -25,   1, 1},
-    {3, -23,  -1,   1,  -3,  71,   6,   1,  -4,  92,   7,   1,   3, -26,  -1, 1},
-    {4, -22,  -2,   2,  -6,  70,  11,   1,  -8,  90,  14,  -4,   4, -25,  -2, 1},
-    {2, -21,  -3,   2,  -8,  69,  17,  -4, -11,  88,  22,  -6,   6, -23,  -4, 2},
-    {3, -20,  -5,   2, -10,  66,  24,  -6, -13,  84,  30,  -9,   7, -22,  -5, 2},
-    {3, -18,  -6,   3, -11,  63,  30,  -7, -15,  80,  38, -11,   3, -20,  -7, 3},
-    {3, -16,  -8,   3, -11,  59,  36,  -9, -16,  75,  46, -13,   3, -18,  -9, 3},
-    {3, -14, -10,   3, -11,  54,  42, -10, -16,  68,  54, -14,   3, -16, -11, 3},
-    {4, -12, -12,   4, -11,  48,  48, -11, -15,  61,  61, -15,   3, -14, -14, 3},
-    {3, -10, -14,   3, -10,  42,  54, -11, -14,  54,  68, -16,   3, -11, -16, 3},
-    {3,  -8, -16,   3,  -9,  36,  59, -11, -13,  46,  75, -16,   3,  -9, -18, 3},
-    {3,  -6, -18,   3,  -7,  30,  63, -11, -11,  38,  80, -15,   3,  -7, -20, 3},
-    {3,  -5, -20,   2,  -6,  24,  66, -10,  -9,  30,  84, -13,   2,  -5, -22, 7},
-    {2,  -3, -21,   2,  -4,  17,  69,  -8,  -6,  22,  88, -11,   2,  -4, -23, 6},
-    {2,  -2, -22,   4,   1,  11,  70,  -6,  -4,  14,  90,  -8,   1,  -2, -25, 4},
-    {1,  -1, -23,   3,   1,   6,  71,  -3,   1,   7,  92,  -4,   1,  -1, -26, 3},
-    {1, -21,   1,   1,   1,  61,   1,   1,   1, 101,   1,   1,   1, -25,   1, 1},
-    {1, -21,   0,   1,  -2,  60,   5,   1,  -5, 101,   8,   1,   3, -25,  -1, 1},
-    {2, -20,  -2,   2,  -5,  60,  10,   2,  -9,  99,  15,  -5,   4, -24,  -2, 1},
-    {2, -19,  -3,   2,  -7,  59,  15,  -3, -12,  96,  24,  -7,   6, -23,  -4, 2},
-    {2, -18,  -4,   2,  -8,  56,  20,  -5, -15,  93,  32, -10,   7, -21,  -5, 2},
-    {3, -16,  -6,   3,  -9,  53,  25,  -6, -17,  87,  41, -12,   8, -20,  -8, 2},
-    {3, -14,  -7,   3,  -9,  50,  31,  -7, -18,  81,  50, -14,   3, -18,  -9, 3},
-    {3, -13,  -9,   3,  -9,  46,  36,  -8, -18,  75,  59, -16,   3, -16, -11, 3},
-    {3, -11, -11,   3,  -9,  41,  41,  -9, -17,  67,  67, -17,   3, -13, -13, 3},
-    {3,  -9, -13,   3,  -8,  36,  46,  -9, -16,  59,  75, -18,   3, -11, -16, 3},
-    {3,  -7, -14,   3,  -7,  31,  50,  -9, -14,  50,  81, -18,   3,  -9, -18, 3},
-    {3,  -6, -16,   3,  -6,  25,  53,  -9, -12,  41,  87, -17,   2,  -8, -20, 8},
-    {2,  -4, -18,   2,  -5,  20,  56,  -8, -10,  32,  93, -15,   2,  -5, -21, 7},
-    {2,  -3, -19,   2,  -3,  15,  59,  -7,  -7,  24,  96, -12,   2,  -4, -23, 6},
-    {2,  -2, -20,   2,   2,  10,  60,  -5,  -5,  15,  99,  -9,   1,  -2, -24, 4},
-    {1,   0, -21,   1,   1,   5,  60,  -2,   1,   8, 101,  -5,   1,  -1, -25, 3},
-    {1, -19,   1,   1,   1,  50,   1,   1,   1, 109,   1,   1,   1, -24,   1, 1},
-    {1, -18,   0,   1,  -2,  50,   4,   1,  -5, 109,   8,   1,   2, -24,  -1, 1},
-    {2, -17,  -1,   2,  -4,  49,   8,   1, -10, 107,  16,  -5,   4, -23,  -2, 1},
-    {2, -17,  -3,   2,  -6,  48,  12,   2, -14, 104,  25,  -8,   5, -22,  -4, 2},
-    {2, -15,  -4,   2,  -6,  46,  17,  -4, -17, 100,  34, -11,   7, -20,  -5, 2},
-    {3, -14,  -5,   3,  -7,  44,  21,  -5, -19,  94,  44, -14,   7, -19,  -7, 2},
-    {3, -12,  -6,   3,  -8,  41,  25,  -6, -20,  87,  53, -16,   8, -17,  -9, 2},
-    {3, -11,  -7,   3,  -7,  38,  30,  -6, -20,  80,  63, -18,   3, -15, -11, 3},
-    {3,  -9,  -9,   3,  -7,  34,  34,  -7, -19,  72,  72, -19,   3, -13, -13, 3},
-    {3,  -7, -11,   3,  -6,  30,  38,  -7, -18,  63,  80, -20,   3, -11, -15, 3},
-    {3,  -6, -12,   3,  -6,  25,  41,  -8, -16,  53,  87, -20,   2,  -9, -17, 8},
-    {3,  -5, -14,   3,  -5,  21,  44,  -7, -14,  44,  94, -19,   2,  -7, -19, 7},
-    {2,  -4, -15,   2,  -4,  17,  46,  -6, -11,  34, 100, -17,   2,  -5, -20, 7},
-    {2,  -3, -17,   2,   2,  12,  48,  -6,  -8,  25, 104, -14,   2,  -4, -22, 5},
-    {2,  -1, -17,   2,   1,   8,  49,  -4,  -5,  16, 107, -10,   1,  -2, -23, 4},
-    {1,   0, -18,   1,   1,   4,  50,  -2,   1,   8, 109,  -5,   1,  -1, -24, 2},
-    {1, -15,   1,   1,   1,  39,   1,   1,   1, 116,   1,   1,   0, -22,   0, 1},
-    {1, -15,   1,   1,  -1,  39,   3,   1,  -6, 115,   8,   1,   2, -22,  -1, 1},
-    {1, -14,   1,   1,  -3,  38,   7,   1, -11, 114,  17,  -6,   4, -21,  -2, 1},
-    {2, -13,  -2,   2,  -4,  37,  10,   1, -15, 110,  26,  -9,   5, -20,  -3, 1},
-    {2, -12,  -2,   2,  -5,  36,  13,  -3, -18, 106,  36, -12,   6, -18,  -5, 2},
-    {2, -11,  -4,   2,  -5,  34,  17,  -4, -20, 100,  46, -15,   7, -17,  -6, 2},
-    {2, -10,  -5,   2,  -5,  32,  20,  -4, -21,  93,  56, -18,   7, -15,  -8, 2},
-    {3,  -9,  -6,   2,  -5,  30,  24,  -5, -22,  84,  66, -20,   7, -13, -10, 2},
-    {3,  -7,  -7,   3,  -5,  27,  27,  -5, -21,  76,  76, -21,   3, -12, -12, 3},
-    {3,  -6,  -9,   2,  -5,  24,  30,  -5, -20,  66,  84, -22,   2, -10, -13, 7},
-    {2,  -5, -10,   2,  -4,  20,  32,  -5, -18,  56,  93, -21,   2,  -8, -15, 7},
-    {2,  -4, -11,   2,  -4,  17,  34,  -5, -15,  46, 100, -20,   2,  -6, -17, 7},
-    {2,  -2, -12,   2,  -3,  13,  36,  -5, -12,  36, 106, -18,   2,  -5, -18, 6},
-    {2,  -2, -13,   2,   1,  10,  37,  -4,  -9,  26, 110, -15,   1,  -3, -20, 5},
-    {1,   1, -14,   1,   1,   7,  38,  -3,  -6,  17, 114, -11,   1,  -2, -21, 4},
-    {1,   1, -15,   1,   1,   3,  39,  -1,   1,   8, 115,  -6,   1,  -1, -22, 2},
-    {1, -11,   1,   1,   1,  28,   1,   1,   1, 121,   1,   0,   0, -18,   0, 0},
-    {1, -11,   1,   1,  -1,  28,   2,   1,  -6, 120,   8,   1,   2, -18,  -1, 0},
-    {1, -11,   1,   1,  -2,  28,   5,   1, -12, 119,  18,  -6,   3, -17,  -2, 1},
-    {2, -10,   1,   1,  -3,  27,   7,   1, -16, 115,  27, -10,   4, -16,  -3, 1},
-    {2,  -9,   2,   1,  -3,  26,  10,  -2, -20, 110,  37, -13,   5, -15,  -4, 1},
-    {2,  -8,   2,   2,  -4,  25,  12,  -3, -22, 104,  48, -17,   5, -14,  -6, 2},
-    {2,  -7,  -3,   2,  -4,  24,  15,  -3, -23,  96,  59, -19,   6, -12,  -7, 2},
-    {2,  -6,  -4,   2,  -4,  22,  17,  -3, -23,  88,  69, -21,   6, -11,  -8, 2},
-    {2,  -5,  -5,   2,  -4,  19,  19,  -4, -23,  79,  79, -23,   6, -10, -10, 6},
-    {2,  -4,  -6,   2,  -3,  17,  22,  -4, -21,  69,  88, -23,   2,  -8, -11, 6},
-    {2,  -3,  -7,   2,  -3,  15,  24,  -4, -19,  59,  96, -23,   2,  -7, -12, 6},
-    {2,   2,  -8,   2,  -3,  12,  25,  -4, -17,  48, 104, -22,   2,  -6, -14, 5},
-    {2,   2,  -9,   1,  -2,  10,  26,  -3, -13,  37, 110, -20,   1,  -4, -15, 5},
-    {2,   1, -10,   1,   1,   7,  27,  -3, -10,  27, 115, -16,   1,  -3, -16, 4},
-    {1,   1, -11,   1,   1,   5,  28,  -2,  -6,  18, 119, -12,   1,  -2, -17, 3},
-    {1,   1, -11,   1,   1,   2,  28,  -1,   1,   8, 120,  -6,   0,  -1, -18, 2},
-    {1,  -7,   0,   0,   1,  18,   1,   0,   1, 125,   1,   0,   0, -13,   0, 0},
-    {1,  -7,   1,   0,  -1,  18,   2,   0,  -7, 124,   9,   0,   1, -13,   0, 0},
-    {1,  -7,   1,   1,  -1,  18,   3,   1, -12, 122,  18,  -7,   2, -12,  -1, 1},
-    {1,  -6,   1,   1,  -2,  18,   5,   1, -17, 119,  28, -11,   3, -12,  -2, 1},
-    {1,  -6,   1,   1,  -2,  17,   7,   1, -21, 114,  38, -14,   4, -11,  -3, 1},
-    {2,  -5,   2,   1,  -2,  16,   8,  -1, -23, 107,  49, -17,   4, -10,  -4, 1},
-    {2,  -5,   2,   2,  -2,  15,  10,  -2, -24,  99,  60, -20,   4,  -9,  -5, 1},
-    {2,  -4,   1,   1,  -2,  14,  11,  -2, -25,  90,  70, -22,   4,  -8,  -6, 4},
-    {1,   1,   1,   1,  -2,  12,  12,  -2, -24,  80,  80, -24,   4,  -8,  -8, 4},
-    {2,   1,  -4,   1,  -2,  11,  14,  -2, -22,  70,  90, -25,   4,  -6,  -8, 4},
-    {2,   2,  -5,   2,  -2,  10,  15,  -2, -20,  60,  99, -24,   1,  -5,  -9, 4},
-    {2,   2,  -5,   1,  -1,   8,  16,  -2, -17,  49, 107, -23,   1,  -4, -10, 4},
-    {1,   1,  -6,   1,   1,   7,  17,  -2, -14,  38, 114, -21,   1,  -3, -11, 4},
-    {1,   1,  -6,   1,   1,   5,  18,  -2, -11,  28, 119, -17,   1,  -2, -12, 3},
-    {1,   1,  -7,   1,   1,   3,  18,  -1,  -7,  18, 122, -12,   1,  -1, -12, 2},
-    {1,   1,  -7,   0,   0,   2,  18,  -1,   0,   9, 124,  -7,   0,   0, -13, 1},
-    {0,  -3,   0,   0,   0,   9,   0,   0,   1, 128,   0,   0,   0,  -7,   0, 0},
-    {0,   0,   0,   0,  -1,   8,   1,   0,  -7, 126,   8,   0,   0,  -7,   0, 0},
-    {1,   1,   0,   0,   0,   9,   2,   0, -13, 124,  18,  -7,   1,  -7,  -1, 0},
-    {1,   1,   1,   1,  -1,   8,   2,   1, -18, 120,  28, -11,   2,  -6,  -1, 0},
-    {1,   1,   1,   1,  -1,   8,   3,   1, -22, 115,  39, -15,   2,  -6,  -1, 1},
-    {1,   1,   1,   1,  -1,   8,   4,   0, -24, 109,  50, -18,   2,  -5,  -2, 1},
-    {1,   1,   1,   1,  -1,   8,   5,   0, -25, 101,  60, -21,   3,  -5,  -2, 1},
-    {1,   1,   1,   1,  -1,   7,   6,  -1, -26,  92,  71, -23,   3,  -4,  -3, 3},
-    {1,   1,   1,   1,  -1,   6,   6,  -1, -25,  82,  82, -25,   3,  -3,  -3, 3},
-    {1,   1,   1,   1,  -1,   6,   7,  -1, -23,  71,  92, -26,   3,  -3,  -4, 3},
-    {1,   1,   1,   1,   0,   5,   8,  -1, -21,  60, 101, -25,   1,  -2,  -5, 3},
-    {1,   1,   1,   1,   0,   4,   8,  -1, -18,  50, 109, -24,   1,  -2,  -5, 2},
-    {1,   1,   1,   1,   1,   3,   8,  -1, -15,  39, 115, -22,   1,  -1,  -6, 2},
-    {1,   1,   1,   1,   1,   2,   8,  -1, -11,  28, 120, -18,   0,  -1,  -6, 2},
-    {1,   1,   0,   0,   0,   2,   9,   0,  -7,  18, 124, -13,   0,  -1,  -7, 1},
-    {0,   0,   0,   0,   0,   1,   8,  -1,   0,   8, 126,  -7,   0,   0,  -7, 0}
-#elif EDGE_PIXEL_FILTER_EXTEND == 3
-    {0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 128,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   3,  -8, 127,   8,  -4,   2,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,  -1,   0,   0,   0,   0,   0,   0,   0,   0,   0,   7, -14, 124,  17,  -9,   5,   0,   0,   0,   0,   0,   0,   0,   0,  -1,   0,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0,   0,  10, -19, 120,  27, -13,   7,   0,   0,   0,   0,   0,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,  -1,  -1,   0,   0,   0,  -1,   0,   0,   0,   0,  12, -23, 115,  38, -17,   9,   0,  -1,   0,   0,   0,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,  -1,  -1,   0,   0,   0,  -1,   0,   0,  -1,   0,  14, -26, 108,  49, -20,  11,   0,  -1,   0,   0,  -1,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {-1,   0,  -1,  -1,   0,   0,   0,  -1,   0,   0,  -1,   0,  15, -28, 100,  60, -23,  13,   0,  -1,   0,   0,  -1,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,  -1,  -1,   0,   0,   0,  -1,   0,   0,  -1,   0,  15, -28,  91,  70, -26,  14,   0,  -1,   0,   0,  -1,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {-1,   0,  -1,  -1,   0,  -1,   0,  -1,   0,   0,  -1,   0,  15, -27,  81,  81, -27,  15,   0,  -1,   0,   0,  -1,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,  -1,  -1,   0,   0,   0,  -1,   0,   0,  -1,   0,  14, -26,  70,  91, -28,  15,   0,  -1,   0,   0,  -1,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {-1,   0,  -1,  -1,   0,   0,   0,  -1,   0,   0,  -1,   0,  13, -23,  60, 100, -28,  15,   0,  -1,   0,   0,  -1,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,  -1,  -1,   0,   0,   0,  -1,   0,   0,  -1,   0,  11, -20,  49, 108, -26,  14,   0,  -1,   0,   0,  -1,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,  -1,   0,   9, -17,  38, 115, -23,  12,   0,   0,   0,   0,  -1,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0,   0,   7, -13,  27, 120, -19,  10,   0,   0,   0,   0,   0,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,   0,  -1,   0,   0,   0,   0,   0,   0,   0,   0,   5,  -9,  17, 124, -14,   7,   0,   0,   0,   0,   0,   0,   0,   0,   0,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   2,  -4,   8, 127,  -8,   3,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,   3,   0,   0,   0,   0,   0,  -8,   0,   0,   0,   0,   0, 127,   0,   0,   0,   0,   0,   8,   0,   0,   0,   0,   0,  -4,   0,   0,   0,   0,   0,   2,   0,   0, 0},
-    {0,   0,   4,   0,   0,   0,   0,   0,  -7,  -1,   0,   0,   4,  -7, 126,   8,  -4,   0,   0,   0,   8,   1,   0,   0,   0,   0,  -4,   0,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -1,   4,   0,   0,   0,  -1,   1,  -7,  -1,   0,   0,   7, -14, 124,  17,  -8,   5,   0,  -1,   8,   1,  -1,   0,   0,   0,  -4,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -1,   3,   1,  -1,   0,  -1,   1,  -7,  -2,   0,   0,  10, -19, 120,  27, -12,   7,   0,  -1,   8,   2,  -1,   0,  -1,   0,  -4,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -1,   3,   1,  -1,   0,  -1,   1,  -7,  -3,   1,   0,  12, -23, 114,  38, -16,  10,   0,  -2,   7,   2,  -1,   0,   0,   0,  -4,  -2,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -1,   3,   1,  -1,   0,  -1,   1,  -7,  -3,   1,  -1,  14, -26, 107,  48, -20,  12,   1,  -2,   7,   3,  -2,   0,   0,   0,  -4,  -2,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -1,   2,   1,  -1,   0,  -1,   1,  -6,  -4,   1,  -1,  15, -27,  99,  59, -23,  13,   1,  -2,   6,   4,  -2,   0,   0,   0,  -4,  -2,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -1,   2,   2,  -1,   0,  -1,   1,  -6,  -5,   1,  -1,  15, -28,  90,  70, -25,  14,   1,  -2,   6,   4,  -2,   0,   0,   0,  -3,  -3,   0,   0,   0,   0,   0,   0,   0, 0},
-    {-1,  -1,   2,   2,  -1,  -1,  -1,   1,  -5,  -5,   1,  -1,  15, -27,  80,  80, -27,  15,   1,  -2,   5,   5,  -2,   1,   0,   0,  -3,  -3,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -1,   2,   2,  -1,   0,  -1,   1,  -5,  -6,   1,  -1,  14, -25,  70,  90, -28,  15,   0,  -2,   4,   6,  -2,   1,   0,   0,  -3,  -3,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -1,   1,   2,  -1,   0,  -1,   1,  -4,  -6,   1,  -1,  13, -23,  59,  99, -27,  15,   0,  -2,   4,   6,  -2,   1,   0,   0,  -2,  -4,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -1,   1,   3,  -1,   0,  -1,   1,  -3,  -7,   1,  -1,  12, -20,  48, 107, -26,  14,   0,  -2,   3,   7,  -2,   1,   0,   0,  -2,  -4,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -1,   1,   3,  -1,   0,   0,   1,  -3,  -7,   1,  -1,  10, -16,  38, 114, -23,  12,   0,  -1,   2,   7,  -2,   0,   0,   0,  -2,  -4,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -1,   1,   3,  -1,   0,   0,   0,  -2,  -7,   1,  -1,   7, -12,  27, 120, -19,  10,   0,  -1,   2,   8,  -1,   0,   0,   0,  -1,  -4,   0,  -1,   0,   0,   0,   0,   0, 0},
-    {0,   0,   0,   4,  -1,   0,   0,   0,  -1,  -7,   1,  -1,   5,  -8,  17, 124, -14,   7,   0,  -1,   1,   8,  -1,   0,   0,   0,  -1,  -4,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,   0,   4,   0,   0,   0,   0,  -1,  -7,   0,   0,   0,  -4,   8, 126,  -7,   4,   0,   0,   1,   8,   0,   0,   0,   0,   0,  -4,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,   7,   0,   0,   0,   0,   0, -14,   0,   0,   0,  -1,   0, 124,   0,  -1,   0,   0,   0,  17,   0,   0,   0,   0,   0,  -9,   0,   0,   0,   0,   0,   5,   0,   0, 0},
-    {0,  -1,   7,   0,   0,   0,  -1,   1, -14,  -1,   0,   0,   4,  -7, 124,   8,  -4,   0,   0,  -1,  17,   1,  -1,   0,   0,   0,  -8,  -1,   0,   0,   0,   0,   5,   0,   0, 0},
-    {0,  -1,   7,   1,  -1,   0,  -1,   1, -14,  -2,   0,   0,   7, -14, 121,  17,  -8,   5,   1,  -2,  17,   2,  -2,   0,  -1,   0,  -8,  -2,   0,   0,   0,   0,   5,   0,   0, 0},
-    {0,  -1,   6,   1,  -1,   0,  -2,   2, -13,  -3,   1,   0,   9, -19, 117,  27, -12,   7,   1,  -3,  16,   3,  -2,   0,  -1,   1,  -8,  -2,   0,   0,   0,   0,   4,   0,   0, 0},
-    {0,  -2,   6,   2,  -1,   0,  -2,   2, -13,  -5,   1,   0,  12, -23, 112,  37, -16,   9,   1,  -4,  15,   5,  -3,   1,  -1,   1,  -8,  -3,   1,   0,   0,   0,   4,   0,   0, 0},
-    {0,  -2,   6,   2,  -2,   0,  -2,   2, -12,  -6,   2,  -2,  13, -25, 105,  47, -20,  11,   1,  -4,  15,   6,  -3,   1,   0,   1,  -7,  -4,   1,   0,   0,   0,   4,   0,   0, 0},
-    {-1,  -2,   5,   3,  -2,   0,  -2,   2, -11,  -7,   2,  -2,  14, -27,  97,  58, -23,  13,   2,  -4,  13,   8,  -4,   1,   0,   1,  -7,  -4,   1,   0,   0,   0,   4,   0,   0, 0},
-    {-1,  -2,   5,   3,  -2,  -1,  -2,   2, -10,  -8,   2,  -2,  15, -27,  88,  69, -25,  14,   2,  -4,  12,   9,  -4,   2,  -1,   1,  -6,  -5,   1,  -1,  -1,   0,   3,   2,   0, 0},
-    {-1,  -2,   4,   4,  -2,  -1,  -2,   2,  -9,  -9,   2,  -2,  15, -27,  79,  79, -27,  15,   2,  -4,  11,  11,  -4,   2,  -1,   1,  -6,  -6,   1,  -1,  -1,  -1,   3,   3,   0, 0},
-    {-1,  -2,   3,   5,  -2,  -1,  -2,   2,  -8, -10,   2,  -2,  14, -25,  69,  88, -27,  15,   2,  -4,   9,  12,  -4,   2,  -1,   1,  -5,  -6,   1,  -1,  -1,   0,   2,   3,   0, 0},
-    {-1,  -2,   3,   5,  -2,   0,  -2,   2,  -7, -11,   2,  -2,  13, -23,  58,  97, -27,  14,   1,  -4,   8,  13,  -4,   2,   0,   1,  -4,  -7,   1,   0,   0,   0,   0,   4,   0, 0},
-    {0,  -2,   2,   6,  -2,   0,  -2,   2,  -6, -12,   2,  -2,  11, -20,  47, 105, -25,  13,   1,  -3,   6,  15,  -4,   1,   0,   1,  -4,  -7,   1,   0,   0,   0,   0,   4,   0, 0},
-    {0,  -1,   2,   6,  -2,   0,   0,   1,  -5, -13,   2,  -2,   9, -16,  37, 112, -23,  12,   1,  -3,   5,  15,  -4,   1,   0,   1,  -3,  -8,   1,  -1,   0,   0,   0,   4,   0, 0},
-    {0,  -1,   1,   6,  -1,   0,   0,   1,  -3, -13,   2,  -2,   7, -12,  27, 117, -19,   9,   0,  -2,   3,  16,  -3,   1,   0,   0,  -2,  -8,   1,  -1,   0,   0,   0,   4,   0, 0},
-    {0,  -1,   1,   7,  -1,   0,   0,   0,  -2, -14,   1,  -1,   5,  -8,  17, 121, -14,   7,   0,  -2,   2,  17,  -2,   1,   0,   0,  -2,  -8,   0,  -1,   0,   0,   0,   5,   0, 0},
-    {0,   0,   0,   7,  -1,   0,   0,   0,  -1, -14,   1,  -1,   0,  -4,   8, 124,  -7,   4,   0,  -1,   1,  17,  -1,   0,   0,   0,  -1,  -8,   0,   0,   0,   0,   0,   5,   0, 0},
-    {0,   0,  10,   0,   0,   0,   0,   0, -19,   0,   0,   0,  -1,   0, 120,   0,  -1,   0,  -1,   0,  27,   0,  -1,   0,   0,   0, -13,   0,   0,   0,   0,   0,   7,   0,   0, 0},
-    {0,  -1,  10,   0,  -1,   0,  -1,   1, -19,  -1,   0,   0,   3,  -7, 120,   8,  -4,   0,   1,  -2,  27,   2,  -1,   0,  -1,   0, -12,  -1,   0,   0,   0,   0,   7,   0,   0, 0},
-    {0,  -2,   9,   1,  -1,   0,  -1,   2, -19,  -3,   1,   0,   6, -13, 117,  16,  -8,   4,   1,  -3,  27,   3,  -2,   0,  -1,   1, -12,  -2,   0,   0,   0,   0,   7,   0,   0, 0},
-    {-1,  -2,   9,   2,  -1,  -1,  -2,   2, -18,  -5,   1,  -1,   9, -18, 113,  26, -12,   7,   2,  -5,  26,   6,  -3,   1,  -1,   1, -12,  -3,   1,  -1,   0,   0,   7,   1,   0, 0},
-    {-1,  -2,   9,   2,  -2,  -1,  -2,   3, -17,  -6,   2,  -1,  11, -22, 108,  36, -16,   9,   2,  -5,  24,   8,  -4,   2,  -2,   2, -11,  -4,   1,  -1,  -1,  -1,   6,   2,   0, 0},
-    {-1,  -2,   8,   3,  -2,  -1,  -3,   3, -16,  -8,   2,  -1,  13, -25, 102,  46, -19,  11,   3,  -6,  23,  10,  -5,   2,  -1,   2, -11,  -5,   1,  -1,  -1,  -1,   6,   2,   0, 0},
-    {-1,  -3,   7,   4,  -2,  -1,  -3,   3, -15,  -9,   3,  -3,  14, -26,  94,  56, -22,  12,   3,  -6,  21,  13,  -5,   2,  -1,   2, -10,  -6,   2,  -1,  -1,  -1,   5,   3,   0, 0},
-    {-1,  -3,   7,   5,  -2,  -1,  -3,   4, -14, -11,   3,  -3,  14, -26,  85,  66, -24,  13,   3,  -6,  19,  15,  -6,   3,  -1,   2,  -9,  -7,   2,  -1,  -1,  -1,   5,   4,  -1, -1},
-    {-1,  -3,   6,   6,  -3,  -1,  -3,   3, -12, -12,   3,  -3,  14, -26,  76,  76, -26,  14,   3,  -6,  17,  17,  -6,   3,  -1,   2,  -8,  -8,   2,  -1,  -1,  -1,   4,   4,   0, 0},
-    {-1,  -2,   5,   7,  -3,  -1,  -3,   3, -11, -14,   4,  -3,  13, -24,  66,  85, -26,  14,   3,  -6,  15,  19,  -6,   3,  -1,   2,  -7,  -9,   2,  -1,  -1,  -1,   4,   5,  -1, -1},
-    {-1,  -2,   4,   7,  -3,  -1,  -3,   3,  -9, -15,   3,  -3,  12, -22,  56,  94, -26,  14,   2,  -5,  13,  21,  -6,   3,  -1,   2,  -6, -10,   2,  -1,  -1,  -1,   3,   5,   0, 0},
-    {-1,  -2,   3,   8,  -2,  -1,  -1,   2,  -8, -16,   3,  -3,  11, -19,  46, 102, -25,  13,   2,  -5,  10,  23,  -6,   3,  -1,   1,  -5, -11,   2,  -1,  -1,  -1,   2,   6,   0, 0},
-    {-1,  -2,   2,   9,  -2,  -1,  -1,   2,  -6, -17,   3,  -2,   9, -16,  36, 108, -22,  11,   2,  -4,   8,  24,  -5,   2,  -1,   1,  -4, -11,   2,  -2,  -1,  -1,   2,   6,   0, 0},
-    {-1,  -1,   2,   9,  -2,  -1,  -1,   1,  -5, -18,   2,  -2,   7, -12,  26, 113, -18,   9,   1,  -3,   6,  26,  -5,   2,  -1,   1,  -3, -12,   1,  -1,   0,   0,   1,   7,   0, 0},
-    {0,  -1,   1,   9,  -2,   0,   0,   1,  -3, -19,   2,  -1,   4,  -8,  16, 117, -13,   6,   0,  -2,   3,  27,  -3,   1,   0,   0,  -2, -12,   1,  -1,   0,   0,   0,   7,   0, 0},
-    {0,  -1,   0,  10,  -1,   0,   0,   0,  -1, -19,   1,  -1,   0,  -4,   8, 120,  -7,   3,   0,  -1,   2,  27,  -2,   1,   0,   0,  -1, -12,   0,  -1,   0,   0,   0,   7,   0, 0},
-    {0,   0,  12,   0,   0,   0,   0,  -1, -23,  -1,   0,   0,  -1,   0, 115,   0,  -1,   0,  -1,   0,  38,   0,  -1,   0,   0,   0, -17,   0,   0,   0,   0,   0,   9,   0,   0, 0},
-    {0,  -1,  12,   0,   0,   0,  -1,   1, -23,  -2,   0,   0,   3,  -7, 114,   7,  -4,   0,   1,  -3,  38,   2,  -2,   0,  -1,   1, -16,  -1,   0,   0,   0,   0,  10,   0,   0, 0},
-    {0,  -2,  12,   1,  -1,   0,  -2,   2, -23,  -4,   1,   0,   6, -13, 112,  15,  -8,   4,   2,  -5,  37,   5,  -3,   0,  -1,   1, -16,  -3,   1,   0,   0,   0,   9,   1,   0, 0},
-    {-1,  -2,  11,   2,  -2,  -1,  -2,   3, -22,  -5,   2,  -1,   9, -17, 108,  24, -11,   6,   2,  -6,  36,   8,  -4,   2,  -2,   2, -16,  -4,   1,  -1,  -1,  -1,   9,   2,   0, 0},
-    {-1,  -3,  11,   3,  -2,  -1,  -3,   4, -21,  -7,   2,  -1,  11, -21, 103,  34, -15,   8,   3,  -7,  34,  11,  -5,   2,  -2,   2, -15,  -5,   2,  -1,  -1,  -1,   8,   2,   0, 0},
-    {-1,  -3,  10,   4,  -3,  -1,  -3,   4, -20,  -9,   3,  -1,  12, -24,  97,  44, -18,  10,   4,  -8,  32,  14,  -6,   3,  -2,   3, -14,  -7,   2,  -1,  -1,  -1,   8,   3,  -1, -1},
-    {-1,  -3,   9,   5,  -3,  -1,  -3,   4, -18, -11,   3,  -3,  13, -25,  90,  54, -21,  12,   4,  -9,  29,  17,  -7,   4,  -1,   3, -13,  -8,   2,  -1,  -1,  -1,   7,   4,  -1, -1},
-    {-1,  -3,   8,   6,  -3,  -1,  -3,   4, -17, -13,   4,  -3,  13, -25,  81,  63, -23,  13,   4,  -9,  27,  21,  -8,   4,  -1,   3, -12, -10,   3,  -1,  -1,  -1,   6,   5,  -1, -1},
-    {-1,  -3,   7,   7,  -3,  -1,  -3,   4, -15, -15,   4,  -3,  13, -25,  73,  73, -25,  13,   4,  -9,  24,  24,  -9,   4,  -1,   3, -11, -11,   3,  -1,  -1,  -1,   6,   6,  -1, -1},
-    {-1,  -3,   6,   8,  -3,  -1,  -3,   4, -13, -17,   4,  -3,  13, -23,  63,  81, -25,  13,   4,  -8,  21,  27,  -9,   4,  -1,   3, -10, -12,   3,  -1,  -1,  -1,   5,   6,  -1, -1},
-    {-1,  -3,   5,   9,  -3,  -1,  -3,   3, -11, -18,   4,  -3,  12, -21,  54,  90, -25,  13,   4,  -7,  17,  29,  -9,   4,  -1,   2,  -8, -13,   3,  -1,  -1,  -1,   4,   7,  -1, -1},
-    {-1,  -3,   4,  10,  -3,  -1,  -1,   3,  -9, -20,   4,  -3,  10, -18,  44,  97, -24,  12,   3,  -6,  14,  32,  -8,   4,  -1,   2,  -7, -14,   3,  -2,  -1,  -1,   3,   8,  -1, -1},
-    {-1,  -2,   3,  11,  -3,  -1,  -1,   2,  -7, -21,   4,  -3,   8, -15,  34, 103, -21,  11,   2,  -5,  11,  34,  -7,   3,  -1,   2,  -5, -15,   2,  -2,  -1,  -1,   2,   8,   0, 0},
-    {-1,  -2,   2,  11,  -2,  -1,  -1,   2,  -5, -22,   3,  -2,   6, -11,  24, 108, -17,   9,   2,  -4,   8,  36,  -6,   2,  -1,   1,  -4, -16,   2,  -2,  -1,  -1,   2,   9,   0, 0},
-    {0,  -1,   1,  12,  -2,   0,   0,   1,  -4, -23,   2,  -2,   4,  -8,  15, 112, -13,   6,   0,  -3,   5,  37,  -5,   2,   0,   1,  -3, -16,   1,  -1,   0,   0,   1,   9,   0, 0},
-    {0,   0,   0,  12,  -1,   0,   0,   0,  -2, -23,   1,  -1,   0,  -4,   7, 114,  -7,   3,   0,  -2,   2,  38,  -3,   1,   0,   0,  -1, -16,   1,  -1,   0,   0,   0,  10,   0, 0},
-    {0,   0,  14,   0,   0,   0,   0,  -1, -26,  -1,   0,   0,  -1,   0, 108,   0,  -1,   0,  -1,   0,  49,   0,  -1,   0,   0,  -1, -20,  -1,   0,   0,   0,   0,  11,   0,   0, 0},
-    {0,  -1,  14,   1,   0,   0,  -1,   1, -26,  -2,   0,   0,   3,  -7, 107,   7,  -4,   0,   1,  -3,  48,   3,  -2,   0,  -1,   1, -20,  -2,   0,   0,   0,  -1,  12,   0,   0, 0},
-    {0,  -2,  13,   1,   0,   0,  -2,   2, -25,  -4,   1,   0,   6, -12, 105,  15,  -7,   4,   2,  -6,  47,   6,  -4,   0,  -2,   2, -20,  -3,   1,   0,   0,  -2,  11,   1,   0, 0},
-    {-1,  -3,  13,   3,  -1,  -1,  -2,   3, -25,  -6,   2,  -1,   8, -16, 102,  23, -11,   6,   3,  -8,  46,  10,  -5,   2,  -2,   2, -19,  -5,   1,  -1,  -1,  -1,  11,   2,   0, 0},
-    {-1,  -3,  12,   4,  -2,  -1,  -3,   4, -24,  -8,   3,  -1,  10, -20,  97,  32, -14,   8,   4,  -9,  44,  14,  -7,   3,  -3,   3, -18,  -6,   2,  -1,  -1,  -1,  10,   3,  -1, -1},
-    {-1,  -3,  11,   5,  -3,  -1,  -3,   4, -22, -10,   3,  -1,  11, -22,  91,  41, -17,   9,   5, -10,  41,  18,  -8,   4,  -3,   3, -17,  -8,   2,  -1,  -1,  -1,  10,   4,  -1, -1},
-    {-1,  -4,  11,   6,  -3,  -1,  -4,   5, -21, -13,   4,  -3,  12, -23,  84,  50, -20,  11,   5, -11,  38,  23,  -9,   5,  -3,   4, -16, -10,   3,  -1,  -1,  -1,   9,   5,  -1, -1},
-    {-1,  -4,   9,   7,  -3,  -1,  -4,   5, -19, -15,   4,  -4,  13, -24,  77,  59, -22,  12,   5, -11,  34,  27, -10,   5,  -1,   4, -15, -11,   3,  -1,  -1,  -1,   8,   6,  -1, -1},
-    {-1,  -4,   8,   8,  -4,  -1,  -4,   5, -17, -17,   5,  -4,  13, -23,  68,  68, -23,  13,   5, -11,  31,  31, -11,   5,  -1,   3, -13, -13,   3,  -1,  -1,  -1,   7,   7,  -1, -1},
-    {-1,  -3,   7,   9,  -4,  -1,  -4,   4, -15, -19,   5,  -4,  12, -22,  59,  77, -24,  13,   5, -10,  27,  34, -11,   5,  -1,   3, -11, -15,   4,  -1,  -1,  -1,   6,   8,  -1, -1},
-    {-1,  -3,   6,  11,  -4,  -1,  -3,   4, -13, -21,   5,  -4,  11, -20,  50,  84, -23,  12,   5,  -9,  23,  38, -11,   5,  -1,   3, -10, -16,   4,  -3,  -1,  -1,   5,   9,  -1, -1},
-    {-1,  -3,   5,  11,  -3,  -1,  -1,   3, -10, -22,   4,  -3,   9, -17,  41,  91, -22,  11,   4,  -8,  18,  41, -10,   5,  -1,   2,  -8, -17,   3,  -3,  -1,  -1,   4,  10,  -1, -1},
-    {-1,  -2,   4,  12,  -3,  -1,  -1,   3,  -8, -24,   4,  -3,   8, -14,  32,  97, -20,  10,   3,  -7,  14,  44,  -9,   4,  -1,   2,  -6, -18,   3,  -3,  -1,  -1,   3,  10,  -1, -1},
-    {-1,  -1,   3,  13,  -3,  -1,  -1,   2,  -6, -25,   3,  -2,   6, -11,  23, 102, -16,   8,   2,  -5,  10,  46,  -8,   3,  -1,   1,  -5, -19,   2,  -2,  -1,  -1,   2,  11,   0, 0},
-    {0,   0,   1,  13,  -2,   0,   0,   1,  -4, -25,   2,  -2,   4,  -7,  15, 105, -12,   6,   0,  -4,   6,  47,  -6,   2,   0,   1,  -3, -20,   2,  -2,   0,   0,   1,  11,  -2, 0},
-    {0,   0,   1,  14,  -1,   0,   0,   0,  -2, -26,   1,  -1,   0,  -4,   7, 107,  -7,   3,   0,  -2,   3,  48,  -3,   1,   0,   0,  -2, -20,   1,  -1,   0,   0,   0,  12,  -1, 0},
-    {-1,   0,  15,   0,   0,   0,   0,  -1, -28,  -1,   0,   0,  -1,   0, 100,   0,  -1,   0,  -1,   0,  60,   0,  -1,   0,   0,  -1, -23,  -1,   0,   0,   0,   0,  13,   0,   0, 0},
-    {0,  -1,  15,   1,   0,   0,  -1,   1, -27,  -2,   0,   0,   2,  -6,  99,   6,  -4,   0,   1,  -4,  59,   4,  -2,   0,  -1,   1, -23,  -2,   0,   0,   0,  -1,  13,   0,   0, 0},
-    {-1,  -2,  14,   2,   0,   0,  -2,   2, -27,  -4,   1,   0,   5, -11,  97,  13,  -7,   4,   3,  -7,  58,   8,  -4,   0,  -2,   2, -23,  -4,   1,   0,   0,  -2,  13,   1,   0, 0},
-    {-1,  -3,  14,   3,  -1,  -1,  -3,   3, -26,  -6,   2,  -1,   7, -15,  94,  21, -10,   5,   4,  -9,  56,  13,  -6,   3,  -2,   3, -22,  -5,   2,  -1,  -1,  -3,  12,   2,   0, 0},
-    {-1,  -3,  13,   4,  -1,  -1,  -3,   4, -25,  -9,   3,  -1,   9, -18,  90,  29, -13,   7,   5, -11,  54,  17,  -8,   4,  -3,   3, -21,  -7,   2,  -1,  -1,  -3,  12,   4,  -1, -1},
-    {-1,  -4,  12,   5,  -3,  -1,  -4,   5, -23, -11,   4,  -1,  11, -21,  84,  38, -16,   9,   6, -13,  50,  23, -10,   5,  -3,   4, -20,  -9,   3,  -1,  -1,  -3,  11,   5,  -1, -1},
-    {-1,  -4,  11,   6,  -3,  -1,  -4,   5, -22, -13,   4,  -1,  11, -22,  78,  46, -19,  10,   6, -13,  46,  27, -11,   6,  -3,   4, -18, -11,   3,  -1,  -1,  -1,  10,   6,  -1, -1},
-    {-1,  -4,  10,   8,  -4,  -1,  -4,   5, -20, -16,   5,  -4,  12, -22,  71,  55, -20,  11,   7, -14,  42,  33, -13,   6,  -3,   4, -17, -13,   4,  -1,  -1,  -1,   9,   7,  -1, -1},
-    {-1,  -4,   9,   9,  -4,  -1,  -4,   5, -18, -18,   5,  -4,  11, -22,  63,  63, -22,  11,   7, -13,  37,  37, -13,   7,  -1,   4, -15, -15,   4,  -1,  -1,  -1,   8,   8,  -1, -1},
-    {-1,  -4,   8,  10,  -4,  -1,  -4,   5, -16, -20,   5,  -4,  11, -20,  55,  71, -22,  12,   6, -13,  33,  42, -14,   7,  -1,   4, -13, -17,   4,  -3,  -1,  -1,   7,   9,  -1, -1},
-    {-1,  -3,   6,  11,  -4,  -1,  -1,   4, -13, -22,   5,  -4,  10, -19,  46,  78, -22,  11,   6, -11,  27,  46, -13,   6,  -1,   3, -11, -18,   4,  -3,  -1,  -1,   6,  10,  -1, -1},
-    {-1,  -3,   5,  12,  -4,  -1,  -1,   4, -11, -23,   5,  -4,   9, -16,  38,  84, -21,  11,   5, -10,  23,  50, -13,   6,  -1,   3,  -9, -20,   4,  -3,  -1,  -1,   5,  11,  -3, -1},
-    {-1,  -1,   4,  13,  -3,  -1,  -1,   3,  -9, -25,   4,  -3,   7, -13,  29,  90, -18,   9,   4,  -8,  17,  54, -11,   5,  -1,   2,  -7, -21,   3,  -3,  -1,  -1,   4,  12,  -3, -1},
-    {-1,  -1,   3,  14,  -3,  -1,  -1,   2,  -6, -26,   3,  -3,   5, -10,  21,  94, -15,   7,   3,  -6,  13,  56,  -9,   4,  -1,   2,  -5, -22,   3,  -2,  -1,   0,   2,  12,  -3, 0},
-    {-1,   0,   2,  14,  -2,   0,   0,   1,  -4, -27,   2,  -2,   4,  -7,  13,  97, -11,   5,   0,  -4,   8,  58,  -7,   3,   0,   1,  -4, -23,   2,  -2,   0,   0,   1,  13,  -2, 0},
-    {0,   0,   1,  15,  -1,   0,   0,   0,  -2, -27,   1,  -1,   0,  -4,   6,  99,  -6,   2,   0,  -2,   4,  59,  -4,   1,   0,   0,  -2, -23,   1,  -1,   0,   0,   0,  13,  -1, 0},
-    {0,   0,  15,   0,   0,   0,   0,  -1, -28,  -1,   0,   0,  -1,   0,  91,   0,  -1,   0,  -1,   0,  70,   0,  -1,   0,   0,  -1, -26,  -1,   0,   0,   0,   0,  14,   0,   0, 0},
-    {0,  -1,  15,   1,   0,   0,  -1,   1, -28,  -2,   0,   0,   2,  -6,  90,   6,  -3,   0,   2,  -5,  70,   4,  -3,   0,  -1,   1, -25,  -2,   0,   0,   0,  -1,  14,   0,   0, 0},
-    {-1,  -2,  15,   2,  -1,  -1,  -2,   2, -27,  -4,   1,  -1,   5, -10,  88,  12,  -6,   3,   3,  -8,  69,   9,  -5,   2,  -2,   2, -25,  -4,   1,  -1,   0,  -2,  14,   2,   0, 0},
-    {-1,  -3,  14,   3,  -1,  -1,  -3,   4, -26,  -6,   2,  -1,   7, -14,  85,  19,  -9,   5,   5, -11,  66,  15,  -7,   4,  -2,   3, -24,  -6,   2,  -1,  -1,  -3,  13,   3,  -1, -1},
-    {-1,  -3,  13,   4,  -1,  -1,  -3,   4, -25,  -9,   3,  -1,   8, -17,  81,  27, -12,   6,   6, -13,  63,  21, -10,   5,  -3,   4, -23,  -8,   3,  -1,  -1,  -3,  13,   4,  -1, -1},
-    {-1,  -4,  13,   5,  -1,  -1,  -4,   5, -24, -11,   4,  -1,   9, -19,  77,  34, -15,   8,   7, -15,  59,  27, -11,   6,  -3,   4, -22, -10,   3,  -1,  -1,  -4,  12,   5,  -1, -1},
-    {-1,  -4,  12,   7,  -3,  -1,  -4,   5, -22, -14,   4,  -1,  10, -20,  71,  42, -17,   9,   8, -16,  55,  33, -13,   7,  -4,   5, -20, -13,   4,  -1,  -1,  -4,  11,   6,  -1, -1},
-    {-1,  -4,  10,   8,  -4,  -1,  -4,   5, -20, -16,   5,  -1,  10, -20,  64,  50, -19,  10,   8, -16,  50,  39, -15,   7,  -4,   5, -19, -15,   4,  -1,  -1,  -1,  10,   7,  -1, -1},
-    {-1,  -4,   9,   9,  -4,  -1,  -4,   5, -18, -18,   5,  -4,  10, -20,  57,  57, -20,  10,   8, -16,  44,  44, -16,   8,  -1,   5, -17, -17,   5,  -1,  -1,  -1,   9,   9,  -1, -1},
-    {-1,  -4,   8,  10,  -4,  -1,  -1,   5, -16, -20,   5,  -4,  10, -19,  50,  64, -20,  10,   7, -15,  39,  50, -16,   8,  -1,   4, -15, -19,   5,  -4,  -1,  -1,   7,  10,  -1, -1},
-    {-1,  -3,   7,  12,  -4,  -1,  -1,   4, -14, -22,   5,  -4,   9, -17,  42,  71, -20,  10,   7, -13,  33,  55, -16,   8,  -1,   4, -13, -20,   5,  -4,  -1,  -1,   6,  11,  -4, -1},
-    {-1,  -1,   5,  13,  -4,  -1,  -1,   4, -11, -24,   5,  -4,   8, -15,  34,  77, -19,   9,   6, -11,  27,  59, -15,   7,  -1,   3, -10, -22,   4,  -3,  -1,  -1,   5,  12,  -4, -1},
-    {-1,  -1,   4,  13,  -3,  -1,  -1,   3,  -9, -25,   4,  -3,   6, -12,  27,  81, -17,   8,   5, -10,  21,  63, -13,   6,  -1,   3,  -8, -23,   4,  -3,  -1,  -1,   4,  13,  -3, -1},
-    {-1,  -1,   3,  14,  -3,  -1,  -1,   2,  -6, -26,   4,  -3,   5,  -9,  19,  85, -14,   7,   4,  -7,  15,  66, -11,   5,  -1,   2,  -6, -24,   3,  -2,  -1,  -1,   3,  13,  -3, -1},
-    {-1,  -1,   2,  15,  -2,  -1,  -1,   1,  -4, -27,   2,  -2,   3,  -6,  12,  88, -10,   5,   2,  -5,   9,  69,  -8,   3,  -1,   1,  -4, -25,   2,  -2,   0,   0,   2,  14,  -2, 0},
-    {0,   0,   1,  15,  -1,   0,   0,   0,  -2, -28,   1,  -1,   0,  -3,   6,  90,  -6,   2,   0,  -3,   4,  70,  -5,   2,   0,   0,  -2, -25,   1,  -1,   0,   0,   0,  14,  -1, 0},
-    {-1,   0,  15,   0,  -1,   0,   0,  -1, -27,  -1,   0,   0,  -1,   0,  81,   0,  -1,   0,  -1,   0,  81,   0,  -1,   0,   0,  -1, -27,  -1,   0,   0,   0,   0,  15,   0,   0, 0},
-    {-1,  -1,  15,   1,  -1,   0,  -1,   1, -27,  -2,   0,   0,   2,  -5,  80,   5,  -3,   0,   2,  -5,  80,   5,  -3,   0,  -1,   1, -27,  -2,   0,   0,   0,  -1,  15,   1,   0, 0},
-    {-1,  -2,  15,   2,  -1,  -1,  -2,   2, -27,  -4,   1,  -1,   4,  -9,  79,  11,  -6,   3,   4,  -9,  79,  11,  -6,   3,  -2,   2, -27,  -4,   1,  -1,  -1,  -2,  15,   2,   0, 0},
-    {-1,  -3,  14,   3,  -1,  -1,  -3,   3, -26,  -6,   2,  -1,   6, -12,  76,  17,  -8,   4,   6, -12,  76,  17,  -8,   4,  -3,   3, -26,  -6,   2,  -1,  -1,  -3,  14,   3,   0, 0},
-    {-1,  -3,  13,   4,  -1,  -1,  -3,   4, -25,  -9,   3,  -1,   7, -15,  73,  24, -11,   6,   7, -15,  73,  24, -11,   6,  -3,   4, -25,  -9,   3,  -1,  -1,  -3,  13,   4,  -1, -1},
-    {-1,  -4,  13,   5,  -1,  -1,  -4,   5, -23, -11,   3,  -1,   8, -17,  68,  31, -13,   7,   8, -17,  68,  31, -13,   7,  -4,   5, -23, -11,   3,  -1,  -1,  -4,  13,   5,  -1, -1},
-    {-1,  -4,  11,   7,  -1,  -1,  -4,   5, -22, -13,   4,  -1,   9, -18,  63,  37, -15,   8,   9, -18,  63,  37, -15,   8,  -4,   5, -22, -13,   4,  -1,  -1,  -4,  11,   7,  -1, -1},
-    {-1,  -4,  10,   8,  -1,  -1,  -4,   5, -20, -16,   5,  -1,   9, -18,  57,  44, -17,   9,   9, -18,  57,  44, -17,   9,  -4,   5, -20, -16,   5,  -1,  -1,  -4,  10,   8,  -1, -1},
-    {0,  -4,   9,   9,  -4,   0,  -4,   5, -17, -17,   5,  -4,   9, -17,  51,  51, -17,   9,   9, -17,  51,  51, -17,   9,  -4,   5, -17, -17,   5,  -4,   0,  -4,   9,   9,  -4, 0},
-    {-1,  -1,   8,  10,  -4,  -1,  -1,   5, -16, -20,   5,  -4,   9, -17,  44,  57, -18,   9,   9, -17,  44,  57, -18,   9,  -1,   5, -16, -20,   5,  -4,  -1,  -1,   8,  10,  -4, -1},
-    {-1,  -1,   7,  11,  -4,  -1,  -1,   4, -13, -22,   5,  -4,   8, -15,  37,  63, -18,   9,   8, -15,  37,  63, -18,   9,  -1,   4, -13, -22,   5,  -4,  -1,  -1,   7,  11,  -4, -1},
-    {-1,  -1,   5,  13,  -4,  -1,  -1,   3, -11, -23,   5,  -4,   7, -13,  31,  68, -17,   8,   7, -13,  31,  68, -17,   8,  -1,   3, -11, -23,   5,  -4,  -1,  -1,   5,  13,  -4, -1},
-    {-1,  -1,   4,  13,  -3,  -1,  -1,   3,  -9, -25,   4,  -3,   6, -11,  24,  73, -15,   7,   6, -11,  24,  73, -15,   7,  -1,   3,  -9, -25,   4,  -3,  -1,  -1,   4,  13,  -3, -1},
-    {-1,  -1,   3,  14,  -3,  -1,  -1,   2,  -6, -26,   3,  -3,   4,  -8,  17,  76, -12,   6,   4,  -8,  17,  76, -12,   6,  -1,   2,  -6, -26,   3,  -3,  -1,   0,   3,  14,  -3, 0},
-    {-1,  -1,   2,  15,  -2,  -1,  -1,   1,  -4, -27,   2,  -2,   3,  -6,  11,  79,  -9,   4,   3,  -6,  11,  79,  -9,   4,  -1,   1,  -4, -27,   2,  -2,  -1,   0,   2,  15,  -2, 0},
-    {-1,  -1,   1,  15,  -1,   0,   0,   0,  -2, -27,   1,  -1,   0,  -3,   5,  80,  -5,   2,   0,  -3,   5,  80,  -5,   2,   0,   0,  -2, -27,   1,  -1,   0,   0,   1,  15,  -1, 0},
-    {0,   0,  14,   0,   0,   0,   0,  -1, -26,  -1,   0,   0,  -1,   0,  70,   0,  -1,   0,  -1,   0,  91,   0,  -1,   0,   0,  -1, -28,  -1,   0,   0,   0,   0,  15,   0,   0, 0},
-    {0,  -1,  14,   0,   0,   0,  -1,   1, -25,  -2,   0,   0,   2,  -5,  70,   4,  -3,   0,   2,  -6,  90,   6,  -3,   0,  -1,   1, -28,  -2,   0,   0,   0,  -1,  15,   1,   0, 0},
-    {-1,  -2,  14,   2,  -1,  -1,  -2,   2, -25,  -4,   1,  -1,   3,  -8,  69,   9,  -5,   2,   5, -10,  88,  12,  -6,   3,  -2,   2, -27,  -4,   1,  -1,   0,  -2,  15,   2,   0, 0},
-    {-1,  -3,  13,   3,  -1,  -1,  -2,   3, -24,  -6,   2,  -1,   5, -11,  66,  15,  -7,   4,   7, -14,  85,  19,  -9,   5,  -3,   4, -26,  -6,   2,  -1,  -1,  -3,  14,   3,  -1, -1},
-    {-1,  -3,  13,   4,  -1,  -1,  -3,   4, -23,  -8,   3,  -1,   6, -13,  63,  21, -10,   5,   8, -17,  81,  27, -12,   6,  -3,   4, -25,  -9,   3,  -1,  -1,  -3,  13,   4,  -1, -1},
-    {-1,  -4,  12,   5,  -1,  -1,  -3,   4, -22, -10,   3,  -1,   7, -15,  59,  27, -11,   6,   9, -19,  77,  34, -15,   8,  -4,   5, -24, -11,   4,  -1,  -1,  -4,  13,   5,  -1, -1},
-    {-1,  -4,  11,   6,  -1,  -1,  -4,   5, -20, -13,   4,  -1,   8, -16,  55,  33, -13,   7,  10, -20,  71,  42, -17,   9,  -4,   5, -22, -14,   4,  -1,  -1,  -4,  12,   7,  -3, -1},
-    {-1,  -1,  10,   7,  -1,  -1,  -4,   5, -19, -15,   4,  -1,   8, -16,  50,  39, -15,   7,  10, -20,  64,  50, -19,  10,  -4,   5, -20, -16,   5,  -1,  -1,  -4,  10,   8,  -4, -1},
-    {-1,  -1,   9,   9,  -1,  -1,  -1,   5, -17, -17,   5,  -1,   8, -16,  44,  44, -16,   8,  10, -20,  57,  57, -20,  10,  -4,   5, -18, -18,   5,  -4,  -1,  -4,   9,   9,  -4, -1},
-    {-1,  -1,   7,  10,  -1,  -1,  -1,   4, -15, -19,   5,  -4,   7, -15,  39,  50, -16,   8,  10, -19,  50,  64, -20,  10,  -1,   5, -16, -20,   5,  -4,  -1,  -4,   8,  10,  -4, -1},
-    {-1,  -1,   6,  11,  -4,  -1,  -1,   4, -13, -20,   5,  -4,   7, -13,  33,  55, -16,   8,   9, -17,  42,  71, -20,  10,  -1,   4, -14, -22,   5,  -4,  -1,  -3,   7,  12,  -4, -1},
-    {-1,  -1,   5,  12,  -4,  -1,  -1,   3, -10, -22,   4,  -3,   6, -11,  27,  59, -15,   7,   8, -15,  34,  77, -19,   9,  -1,   4, -11, -24,   5,  -4,  -1,  -1,   5,  13,  -4, -1},
-    {-1,  -1,   4,  13,  -3,  -1,  -1,   3,  -8, -23,   4,  -3,   5, -10,  21,  63, -13,   6,   6, -12,  27,  81, -17,   8,  -1,   3,  -9, -25,   4,  -3,  -1,  -1,   4,  13,  -3, -1},
-    {-1,  -1,   3,  13,  -3,  -1,  -1,   2,  -6, -24,   3,  -2,   4,  -7,  15,  66, -11,   5,   5,  -9,  19,  85, -14,   7,  -1,   2,  -6, -26,   4,  -3,  -1,  -1,   3,  14,  -3, -1},
-    {-1,  -1,   2,  14,  -2,  -1,  -1,   1,  -4, -25,   2,  -2,   2,  -5,   9,  69,  -8,   3,   3,  -6,  12,  88, -10,   5,  -1,   1,  -4, -27,   2,  -2,   0,   0,   2,  15,  -2, 0},
-    {0,   0,   0,  14,  -1,   0,   0,   0,  -2, -25,   1,  -1,   0,  -3,   4,  70,  -5,   2,   0,  -3,   6,  90,  -6,   2,   0,   0,  -2, -28,   1,  -1,   0,   0,   1,  15,  -1, 0},
-    {-1,   0,  13,   0,   0,   0,   0,  -1, -23,  -1,   0,   0,  -1,   0,  60,   0,  -1,   0,  -1,   0, 100,   0,  -1,   0,   0,  -1, -28,  -1,   0,   0,   0,   0,  15,   0,   0, 0},
-    {0,  -1,  13,   0,   0,   0,  -1,   1, -23,  -2,   0,   0,   1,  -4,  59,   4,  -2,   0,   2,  -6,  99,   6,  -4,   0,  -1,   1, -27,  -2,   0,   0,   0,  -1,  15,   1,   0, 0},
-    {-1,  -2,  13,   1,   0,   0,  -2,   2, -23,  -4,   1,   0,   3,  -7,  58,   8,  -4,   0,   5, -11,  97,  13,  -7,   4,  -2,   2, -27,  -4,   1,   0,   0,  -2,  14,   2,   0, 0},
-    {-1,  -3,  12,   2,  -1,  -1,  -2,   3, -22,  -5,   2,  -1,   4,  -9,  56,  13,  -6,   3,   7, -15,  94,  21, -10,   5,  -3,   3, -26,  -6,   2,  -1,  -1,  -3,  14,   3,   0, 0},
-    {-1,  -3,  12,   4,  -1,  -1,  -3,   3, -21,  -7,   2,  -1,   5, -11,  54,  17,  -8,   4,   9, -18,  90,  29, -13,   7,  -3,   4, -25,  -9,   3,  -1,  -1,  -3,  13,   4,  -1, -1},
-    {-1,  -3,  11,   5,  -1,  -1,  -3,   4, -20,  -9,   3,  -1,   6, -13,  50,  23, -10,   5,  11, -21,  84,  38, -16,   9,  -4,   5, -23, -11,   4,  -1,  -1,  -4,  12,   5,  -3, -1},
-    {-1,  -1,  10,   6,  -1,  -1,  -3,   4, -19, -11,   3,  -1,   6, -13,  46,  27, -11,   6,  11, -22,  78,  46, -18,  10,  -4,   5, -22, -13,   4,  -1,  -1,  -4,  11,   6,  -3, -1},
-    {-1,  -1,   9,   7,  -1,  -1,  -3,   4, -17, -13,   4,  -1,   7, -14,  42,  33, -13,   6,  12, -22,  71,  55, -20,  11,  -4,   5, -20, -16,   5,  -4,  -1,  -4,  10,   8,  -4, -1},
-    {-1,  -1,   8,   8,  -1,  -1,  -1,   4, -15, -15,   4,  -1,   7, -13,  37,  37, -13,   7,  11, -22,  63,  63, -22,  11,  -4,   5, -18, -18,   5,  -4,  -1,  -4,   9,   9,  -4, -1},
-    {-1,  -1,   7,   9,  -1,  -1,  -1,   4, -13, -17,   4,  -3,   6, -13,  33,  42, -14,   7,  11, -20,  55,  71, -22,  12,  -4,   5, -16, -20,   5,  -4,  -1,  -4,   8,  10,  -4, -1},
-    {-1,  -1,   6,  10,  -1,  -1,  -1,   3, -11, -19,   4,  -3,   6, -11,  27,  46, -13,   6,  10, -18,  46,  78, -22,  11,  -1,   4, -13, -22,   5,  -4,  -1,  -3,   6,  11,  -4, -1},
-    {-1,  -1,   5,  11,  -3,  -1,  -1,   3,  -9, -20,   4,  -3,   5, -10,  23,  50, -13,   6,   9, -16,  38,  84, -21,  11,  -1,   4, -11, -23,   5,  -4,  -1,  -3,   5,  12,  -4, -1},
-    {-1,  -1,   4,  12,  -3,  -1,  -1,   2,  -7, -21,   3,  -3,   4,  -8,  17,  54, -11,   5,   7, -13,  29,  90, -18,   9,  -1,   3,  -9, -25,   4,  -3,  -1,  -1,   4,  13,  -3, -1},
-    {-1,  -1,   2,  12,  -3,  -1,  -1,   2,  -5, -22,   3,  -2,   3,  -6,  13,  56,  -9,   4,   5, -10,  21,  94, -15,   7,  -1,   2,  -6, -26,   3,  -3,  -1,   0,   3,  14,  -3, 0},
-    {-1,   0,   1,  13,  -2,   0,   0,   1,  -4, -23,   2,  -2,   0,  -4,   8,  58,  -7,   3,   4,  -7,  13,  97, -11,   5,   0,   1,  -4, -27,   2,  -2,   0,   0,   2,  14,  -2, 0},
-    {0,   0,   0,  13,  -1,   0,   0,   0,  -2, -23,   1,  -1,   0,  -2,   4,  59,  -4,   1,   0,  -4,   6,  99,  -6,   2,   0,   0,  -2, -27,   1,  -1,   0,   0,   1,  15,  -1, 0},
-    {0,   0,  11,   0,   0,   0,   0,  -1, -20,  -1,   0,   0,  -1,   0,  49,   0,  -1,   0,  -1,   0, 108,   0,  -1,   0,   0,  -1, -26,  -1,   0,   0,   0,   0,  14,   0,   0, 0},
-    {0,  -1,  12,   0,   0,   0,  -1,   1, -20,  -2,   0,   0,   1,  -3,  48,   3,  -2,   0,   3,  -7, 107,   7,  -4,   0,  -1,   1, -26,  -2,   0,   0,   0,  -1,  14,   1,   0, 0},
-    {0,  -2,  11,   1,   0,   0,  -2,   2, -20,  -3,   1,   0,   2,  -6,  47,   6,  -4,   0,   6, -12, 105,  15,  -7,   4,  -2,   2, -25,  -4,   1,   0,   0,  -2,  13,   1,   0, 0},
-    {-1,  -1,  11,   2,  -1,  -1,  -2,   2, -19,  -5,   1,  -1,   3,  -8,  46,  10,  -5,   2,   8, -16, 102,  23, -11,   6,  -2,   3, -25,  -6,   2,  -1,  -1,  -3,  13,   3,   0, 0},
-    {-1,  -1,  10,   3,  -1,  -1,  -3,   3, -18,  -6,   2,  -1,   4,  -9,  44,  14,  -7,   3,  10, -20,  97,  32, -14,   8,  -3,   4, -24,  -8,   3,  -1,  -1,  -3,  12,   4,  -2, -1},
-    {-1,  -1,   9,   4,  -1,  -1,  -3,   3, -17,  -8,   2,  -1,   5, -10,  41,  18,  -8,   4,  11, -22,  91,  41, -17,  10,  -3,   4, -22, -10,   3,  -1,  -1,  -3,  11,   5,  -3, -1},
-    {-1,  -1,   9,   5,  -1,  -1,  -3,   4, -16, -10,   3,  -1,   5, -11,  38,  23,  -9,   5,  12, -23,  84,  50, -20,  11,  -4,   5, -21, -13,   4,  -3,  -1,  -4,  11,   6,  -3, -1},
-    {-1,  -1,   8,   6,  -1,  -1,  -1,   4, -15, -11,   3,  -1,   5, -11,  34,  27, -10,   5,  13, -24,  77,  59, -22,  12,  -4,   5, -19, -15,   4,  -4,  -1,  -4,   9,   7,  -3, -1},
-    {-1,  -1,   7,   7,  -1,  -1,  -1,   3, -13, -13,   3,  -1,   5, -11,  31,  31, -11,   5,  13, -23,  68,  68, -23,  13,  -4,   5, -17, -17,   5,  -4,  -1,  -4,   8,   8,  -4, -1},
-    {-1,  -1,   6,   8,  -1,  -1,  -1,   3, -11, -15,   4,  -1,   5, -10,  27,  34, -11,   5,  12, -22,  59,  77, -24,  13,  -4,   4, -15, -19,   5,  -4,  -1,  -3,   7,   9,  -4, -1},
-    {-1,  -1,   5,   9,  -1,  -1,  -1,   3, -10, -16,   4,  -3,   5,  -9,  23,  38, -11,   5,  11, -20,  50,  84, -23,  12,  -3,   4, -13, -21,   5,  -4,  -1,  -3,   6,  11,  -4, -1},
-    {-1,  -1,   4,   9,  -1,  -1,  -1,   2,  -8, -17,   3,  -3,   4,  -8,  18,  41, -10,   5,  10, -17,  41,  91, -22,  11,  -1,   3, -10, -22,   4,  -3,  -1,  -3,   5,  11,  -3, -1},
-    {-1,  -1,   3,  10,  -1,  -1,  -1,   2,  -6, -18,   3,  -3,   3,  -7,  14,  44,  -9,   4,   8, -14,  32,  97, -20,  10,  -1,   3,  -8, -24,   4,  -3,  -1,  -2,   4,  12,  -3, -1},
-    {-1,  -1,   2,  11,  -1,  -1,  -1,   1,  -5, -19,   2,  -2,   2,  -5,  10,  46,  -8,   3,   6, -11,  23, 102, -16,   8,  -1,   2,  -6, -25,   3,  -2,  -1,   0,   3,  13,  -3, 0},
-    {0,   0,   1,  11,  -2,   0,   0,   1,  -3, -20,   2,  -2,   0,  -4,   6,  47,  -6,   2,   4,  -7,  15, 105, -12,   6,   0,   1,  -4, -25,   2,  -2,   0,   0,   1,  13,  -2, 0},
-    {0,   0,   0,  12,  -1,   0,   0,   0,  -2, -20,   1,  -1,   0,  -2,   3,  48,  -3,   1,   0,  -4,   7, 107,  -7,   3,   0,   0,  -2, -26,   1,  -1,   0,   0,   1,  14,  -1, 0},
-    {0,   0,   9,   0,   0,   0,   0,   0, -17,   0,   0,   0,  -1,   0,  38,   0,  -1,   0,  -1,   0, 115,   0,  -1,   0,   0,  -1, -23,  -1,   0,   0,   0,   0,  12,   0,   0, 0},
-    {0,   0,  10,   0,   0,   0,  -1,   1, -16,  -1,   0,   0,   1,  -3,  38,   2,  -2,   0,   3,  -7, 114,   7,  -4,   0,  -1,   1, -23,  -2,   0,   0,   0,  -1,  12,   0,   0, 0},
-    {0,   0,   9,   1,   0,   0,  -1,   1, -16,  -3,   1,   0,   2,  -5,  37,   5,  -3,   0,   6, -13, 112,  15,  -8,   4,  -2,   2, -23,  -4,   1,   0,   0,  -2,  12,   1,  -1, 0},
-    {-1,  -1,   9,   2,  -1,  -1,  -2,   2, -16,  -4,   1,  -1,   2,  -6,  36,   8,  -4,   2,   9, -17, 108,  24, -11,   6,  -2,   3, -22,  -5,   2,  -1,   0,  -2,  11,   2,  -2, 0},
-    {-1,  -1,   8,   2,  -1,  -1,  -2,   2, -15,  -5,   2,  -1,   3,  -7,  34,  11,  -5,   2,  11, -21, 103,  34, -15,   8,  -3,   4, -21,  -7,   2,  -1,   0,  -3,  11,   3,  -2, 0},
-    {-1,  -1,   8,   3,  -1,  -1,  -2,   3, -14,  -7,   2,  -1,   4,  -8,  32,  14,  -6,   3,  12, -24,  97,  44, -18,  10,  -3,   4, -20,  -9,   3,  -1,  -1,  -3,  10,   4,  -3, -1},
-    {-1,  -1,   7,   4,  -1,  -1,  -1,   3, -13,  -8,   2,  -1,   4,  -9,  29,  17,  -7,   4,  13, -25,  90,  54, -21,  12,  -3,   4, -18, -11,   3,  -3,  -1,  -3,   9,   5,  -3, -1},
-    {-1,  -1,   6,   5,  -1,  -1,  -1,   3, -12, -10,   3,  -1,   4,  -9,  27,  21,  -8,   4,  13, -25,  81,  63, -23,  13,  -3,   4, -17, -13,   4,  -3,  -1,  -3,   8,   6,  -3, -1},
-    {-1,  -1,   6,   6,  -1,  -1,  -1,   3, -11, -11,   3,  -1,   4,  -9,  24,  24,  -9,   4,  13, -25,  73,  73, -25,  13,  -3,   4, -15, -15,   4,  -3,  -1,  -3,   7,   7,  -3, -1},
-    {-1,  -1,   5,   6,  -1,  -1,  -1,   3, -10, -12,   3,  -1,   4,  -8,  21,  27,  -9,   4,  13, -23,  63,  81, -25,  13,  -3,   4, -13, -17,   4,  -3,  -1,  -3,   6,   8,  -3, -1},
-    {-1,  -1,   4,   7,  -1,  -1,  -1,   2,  -8, -13,   3,  -1,   4,  -7,  17,  29,  -9,   4,  12, -21,  54,  90, -25,  13,  -3,   3, -11, -18,   4,  -3,  -1,  -3,   5,   9,  -3, -1},
-    {-1,  -1,   3,   8,  -1,  -1,  -1,   2,  -7, -14,   3,  -2,   3,  -6,  14,  32,  -8,   4,  10, -18,  44,  97, -24,  12,  -1,   3,  -9, -20,   4,  -3,  -1,  -3,   4,  10,  -3, -1},
-    {-1,  -1,   2,   8,  -1,  -1,  -1,   2,  -5, -15,   2,  -2,   2,  -5,  11,  34,  -7,   3,   8, -15,  34, 103, -21,  11,  -1,   2,  -7, -21,   4,  -3,   0,  -2,   3,  11,  -3, 0},
-    {-1,  -1,   2,   9,  -1,  -1,  -1,   1,  -4, -16,   2,  -2,   2,  -4,   8,  36,  -6,   2,   6, -11,  24, 108, -17,   9,  -1,   2,  -5, -22,   3,  -2,   0,  -2,   2,  11,  -2, 0},
-    {0,   0,   1,   9,   0,   0,   0,   1,  -3, -16,   1,  -1,   0,  -3,   5,  37,  -5,   2,   4,  -8,  15, 112, -13,   6,   0,   1,  -4, -23,   2,  -2,   0,  -1,   1,  12,  -2, 0},
-    {0,   0,   0,  10,   0,   0,   0,   0,  -1, -16,   1,  -1,   0,  -2,   2,  38,  -3,   1,   0,  -4,   7, 114,  -7,   3,   0,   0,  -2, -23,   1,  -1,   0,   0,   0,  12,  -1, 0},
-    {0,   0,   7,   0,   0,   0,   0,   0, -13,   0,   0,   0,  -1,   0,  27,   0,  -1,   0,  -1,   0, 120,   0,  -1,   0,   0,   0, -19,   0,   0,   0,   0,   0,  10,   0,   0, 0},
-    {0,   0,   7,   0,   0,   0,  -1,   0, -12,  -1,   0,   0,   1,  -2,  27,   2,  -1,   0,   3,  -7, 120,   8,  -4,   0,  -1,   1, -19,  -1,   0,   0,   0,  -1,  10,   0,  -1, 0},
-    {0,   0,   7,   0,   0,   0,  -1,   1, -12,  -2,   0,   0,   1,  -3,  27,   3,  -2,   0,   6, -13, 117,  16,  -8,   4,  -1,   2, -19,  -3,   1,   0,   0,  -2,   9,   1,  -1, 0},
-    {-1,  -1,   7,   1,  -1,  -1,  -1,   1, -12,  -3,   1,   0,   2,  -5,  26,   6,  -3,   1,   9, -18, 113,  26, -12,   7,  -2,   2, -18,  -5,   1,   0,   0,  -2,   9,   2,  -1, 0},
-    {-1,  -1,   6,   2,  -1,  -1,  -2,   2, -11,  -4,   1,  -1,   2,  -5,  24,   8,  -4,   2,  11, -22, 108,  36, -16,   9,  -2,   3, -17,  -6,   2,  -1,   0,  -2,   9,   2,  -2, 0},
-    {-1,  -1,   6,   2,  -1,  -1,  -1,   2, -11,  -5,   1,  -1,   3,  -6,  23,  10,  -5,   2,  13, -25, 102,  46, -19,  11,  -3,   3, -16,  -8,   2,  -1,   0,  -2,   8,   3,  -2, 0},
-    {-1,  -1,   5,   3,  -1,  -1,  -1,   2, -10,  -6,   2,  -1,   3,  -6,  21,  13,  -5,   2,  14, -26,  94,  56, -22,  12,  -3,   3, -15,  -9,   3,  -3,   0,  -3,   7,   4,  -2, 0},
-    {-1,  -1,   5,   4,  -1,  -1,  -1,   2,  -9,  -7,   2,  -1,   3,  -6,  19,  15,  -6,   3,  14, -26,  85,  66, -24,  13,  -3,   4, -14, -11,   3,  -3,  -1,  -3,   7,   5,  -2, -1},
-    {-1,  -1,   4,   4,  -1,  -1,  -1,   2,  -8,  -8,   2,  -1,   3,  -6,  17,  17,  -6,   3,  14, -26,  76,  76, -26,  14,  -3,   3, -12, -12,   3,  -3,   0,  -3,   6,   6,  -3, 0},
-    {-1,  -1,   4,   5,  -1,  -1,  -1,   2,  -7,  -9,   2,  -1,   3,  -6,  15,  19,  -6,   3,  13, -24,  66,  85, -26,  14,  -3,   3, -11, -14,   4,  -3,  -1,  -2,   5,   7,  -3, -1},
-    {-1,  -1,   3,   5,  -1,  -1,  -1,   2,  -6, -10,   2,  -1,   2,  -5,  13,  21,  -6,   3,  12, -22,  56,  94, -26,  14,  -3,   3,  -9, -15,   3,  -3,   0,  -2,   4,   7,  -3, 0},
-    {-1,  -1,   2,   6,  -1,  -1,  -1,   1,  -5, -11,   2,  -1,   2,  -5,  10,  23,  -6,   3,  11, -19,  46, 102, -25,  13,  -1,   2,  -8, -16,   3,  -3,   0,  -2,   3,   8,  -2, 0},
-    {-1,  -1,   2,   6,  -1,  -1,  -1,   1,  -4, -11,   2,  -2,   2,  -4,   8,  24,  -5,   2,   9, -16,  36, 108, -22,  11,  -1,   2,  -6, -17,   3,  -2,   0,  -2,   2,   9,  -2, 0},
-    {-1,  -1,   1,   7,  -1,  -1,   0,   1,  -3, -12,   1,  -1,   1,  -3,   6,  26,  -5,   2,   7, -12,  26, 113, -18,   9,   0,   1,  -5, -18,   2,  -2,   0,  -1,   2,   9,  -2, 0},
-    {0,   0,   0,   7,   0,   0,   0,   0,  -2, -12,   1,  -1,   0,  -2,   3,  27,  -3,   1,   4,  -8,  16, 117, -13,   6,   0,   1,  -3, -19,   2,  -1,   0,  -1,   1,   9,  -2, 0},
-    {0,   0,   0,   7,   0,   0,   0,   0,  -1, -12,   0,  -1,   0,  -1,   2,  27,  -2,   1,   0,  -4,   8, 120,  -7,   3,   0,   0,  -1, -19,   1,  -1,   0,  -1,   0,  10,  -1, 0},
-    {0,   0,   5,   0,   0,   0,   0,   0,  -9,   0,   0,   0,   0,   0,  17,   0,   0,   0,  -1,   0, 124,   0,  -1,   0,   0,   0, -14,   0,   0,   0,   0,   0,   7,   0,   0, 0},
-    {0,   0,   5,   0,   0,   0,   0,   0,  -8,  -1,   0,   0,   0,  -1,  17,   1,  -1,   0,   4,  -7, 124,   8,  -4,   0,  -1,   1, -14,  -1,   0,   0,   0,  -1,   7,   0,   0, 0},
-    {0,   0,   5,   0,   0,   0,  -1,   0,  -8,  -2,   0,   0,   1,  -2,  17,   2,  -2,   0,   7, -14, 121,  17,  -8,   5,  -1,   1, -14,  -2,   0,   0,   0,  -1,   7,   1,  -1, 0},
-    {0,   0,   4,   0,   0,   0,  -1,   1,  -8,  -2,   0,   0,   1,  -3,  16,   3,  -2,   0,   9, -19, 117,  27, -12,   7,  -2,   2, -13,  -3,   1,   0,   0,  -1,   6,   1,  -1, 0},
-    {0,   0,   4,   0,   0,   0,  -1,   1,  -8,  -3,   1,   0,   1,  -4,  15,   5,  -3,   1,  12, -23, 112,  37, -16,   9,  -2,   2, -13,  -5,   1,   0,   0,  -2,   6,   2,  -1, 0},
-    {0,   0,   4,   0,   0,   0,   0,   1,  -7,  -4,   1,   0,   1,  -4,  15,   6,  -3,   1,  13, -25, 105,  47, -20,  11,  -2,   2, -12,  -6,   2,  -2,   0,  -2,   6,   2,  -2, 0},
-    {-1,   0,   4,   0,   0,   0,   0,   1,  -7,  -4,   1,   0,   2,  -4,  13,   8,  -4,   1,  14, -27,  97,  58, -23,  13,  -2,   2, -11,  -7,   2,  -2,   0,  -2,   5,   3,  -2, 0},
-    {-1,  -1,   3,   2,  -1,  -1,  -1,   1,  -6,  -5,   1,   0,   2,  -4,  12,   9,  -4,   2,  15, -27,  88,  69, -25,  14,  -2,   2, -10,  -8,   2,  -2,   0,  -2,   5,   3,  -2, 0},
-    {-1,  -1,   3,   3,  -1,  -1,  -1,   1,  -6,  -6,   1,  -1,   2,  -4,  11,  11,  -4,   2,  15, -27,  79,  79, -27,  15,  -2,   2,  -9,  -9,   2,  -2,   0,  -2,   4,   4,  -2, 0},
-    {-1,  -1,   2,   3,  -1,  -1,  -1,   1,  -5,  -6,   1,   0,   2,  -4,   9,  12,  -4,   2,  14, -25,  69,  88, -27,  15,  -2,   2,  -8, -10,   2,  -2,   0,  -2,   3,   5,  -2, 0},
-    {-1,   0,   0,   4,   0,   0,   0,   1,  -4,  -7,   1,   0,   1,  -4,   8,  13,  -4,   2,  13, -23,  58,  97, -27,  14,  -2,   2,  -7, -11,   2,  -2,   0,  -2,   3,   5,  -2, 0},
-    {0,   0,   0,   4,   0,   0,   0,   1,  -4,  -7,   1,   0,   1,  -3,   6,  15,  -4,   1,  11, -20,  47, 105, -25,  13,  -2,   2,  -6, -12,   2,  -2,   0,  -2,   2,   6,  -2, 0},
-    {0,   0,   0,   4,   0,   0,   0,   1,  -3,  -8,   1,  -1,   1,  -3,   5,  15,  -4,   1,   9, -16,  37, 112, -23,  12,   0,   1,  -5, -13,   2,  -2,   0,  -1,   2,   6,  -2, 0},
-    {0,   0,   0,   4,   0,   0,   0,   0,  -2,  -8,   1,  -1,   0,  -2,   3,  16,  -3,   1,   7, -12,  27, 117, -19,   9,   0,   1,  -3, -13,   2,  -2,   0,  -1,   1,   6,  -1, 0},
-    {0,   0,   0,   5,   0,   0,   0,   0,  -2,  -8,   0,  -1,   0,  -2,   2,  17,  -2,   1,   5,  -8,  17, 121, -14,   7,   0,   0,  -2, -14,   1,  -1,   0,  -1,   1,   7,  -1, 0},
-    {0,   0,   0,   5,   0,   0,   0,   0,  -1,  -8,   0,   0,   0,  -1,   1,  17,  -1,   0,   0,  -4,   8, 124,  -7,   4,   0,   0,  -1, -14,   1,  -1,   0,   0,   0,   7,  -1, 0},
-    {0,   0,   2,   0,   0,   0,   0,   0,  -4,   0,   0,   0,   0,   0,   8,   0,   0,   0,   0,   0, 127,   0,   0,   0,   0,   0,  -8,   0,   0,   0,   0,   0,   3,   0,   0, 0},
-    {0,   0,   0,   0,   0,   0,   0,   0,  -4,   0,   0,   0,   0,  -1,   8,   1,   0,   0,   4,  -7, 126,   8,  -4,   0,   0,   0,  -7,   0,   0,   0,   0,   0,   4,   0,   0, 0},
-    {0,   0,   0,   0,   0,   0,   0,   0,  -4,  -1,   0,   0,   0,  -1,   8,   1,  -1,   0,   7, -14, 124,  17,  -8,   5,  -1,   1,  -7,  -1,   0,   0,   0,  -1,   4,   0,   0, 0},
-    {0,   0,   0,   0,   0,   0,  -1,   0,  -4,  -1,   0,   0,   0,  -1,   8,   2,  -1,   0,  10, -19, 120,  27, -12,   7,  -1,   1,  -7,  -2,   0,   0,   0,  -1,   3,   1,  -1, 0},
-    {0,   0,   0,   0,   0,   0,   0,   0,  -4,  -2,   0,   0,   0,  -2,   7,   2,  -1,   0,  12, -23, 114,  38, -16,  10,  -1,   1,  -7,  -3,   1,   0,   0,  -1,   3,   1,  -1, 0},
-    {0,   0,   0,   0,   0,   0,   0,   0,  -4,  -2,   0,   0,   1,  -2,   7,   3,  -2,   0,  14, -26, 107,  48, -20,  12,  -1,   1,  -7,  -3,   1,  -1,   0,  -1,   3,   1,  -1, 0},
-    {0,   0,   0,   0,   0,   0,   0,   0,  -4,  -2,   0,   0,   1,  -2,   6,   4,  -2,   0,  15, -27,  99,  59, -23,  13,  -1,   1,  -6,  -4,   1,  -1,   0,  -1,   2,   1,  -1, 0},
-    {0,   0,   0,   0,   0,   0,   0,   0,  -3,  -3,   0,   0,   1,  -2,   6,   4,  -2,   0,  15, -28,  90,  70, -25,  14,  -1,   1,  -6,  -5,   1,  -1,   0,  -1,   2,   2,  -1, 0},
-    {-1,  -1,   0,   0,   0,   0,   0,   0,  -3,  -3,   0,   0,   1,  -2,   5,   5,  -2,   1,  15, -27,  80,  80, -27,  15,  -1,   1,  -5,  -5,   1,  -1,   0,  -1,   2,   2,  -1, 0},
-    {0,   0,   0,   0,   0,   0,   0,   0,  -3,  -3,   0,   0,   0,  -2,   4,   6,  -2,   1,  14, -25,  70,  90, -28,  15,  -1,   1,  -5,  -6,   1,  -1,   0,  -1,   2,   2,  -1, 0},
-    {0,   0,   0,   0,   0,   0,   0,   0,  -2,  -4,   0,   0,   0,  -2,   4,   6,  -2,   1,  13, -23,  59,  99, -27,  15,  -1,   1,  -4,  -6,   1,  -1,   0,  -1,   1,   2,  -1, 0},
-    {0,   0,   0,   0,   0,   0,   0,   0,  -2,  -4,   0,   0,   0,  -2,   3,   7,  -2,   1,  12, -20,  48, 107, -26,  14,  -1,   1,  -3,  -7,   1,  -1,   0,  -1,   1,   3,  -1, 0},
-    {0,   0,   0,   0,   0,   0,   0,   0,  -2,  -4,   0,   0,   0,  -1,   2,   7,  -2,   0,  10, -16,  38, 114, -23,  12,   0,   1,  -3,  -7,   1,  -1,   0,  -1,   1,   3,  -1, 0},
-    {0,   0,   0,   0,   0,   0,   0,   0,  -1,  -4,   0,  -1,   0,  -1,   2,   8,  -1,   0,   7, -12,  27, 120, -19,  10,   0,   0,  -2,  -7,   1,  -1,   0,  -1,   1,   3,  -1, 0},
-    {0,   0,   0,   0,   0,   0,   0,   0,  -1,  -4,   0,   0,   0,  -1,   1,   8,  -1,   0,   5,  -8,  17, 124, -14,   7,   0,   0,  -1,  -7,   1,  -1,   0,   0,   0,   4,  -1, 0},
-    {0,   0,   0,   0,   0,   0,   0,   0,   0,  -4,   0,   0,   0,   0,   1,   8,  -1,   0,   0,  -4,   8, 126,  -7,   4,   0,   0,   0,  -7,   0,   0,   0,   0,   0,   4,   0, 0}
-#endif  /* EDGE_PIXEL_FILTER_EXTEND */
-
-#else  /* SUBPEL_SHIFTS==16 */
-
-#if EDGE_PIXEL_FILTER_EXTEND == 2
-    {0,   0,   0,   0,   0, 128,   0,   0,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   1,   1,   1, -13, 125,  18,  -7,   0,   1,   1,   0,   0,   0,   0, 0},
-    {0,   1,   1,   1, -22, 116,  39, -15,   0,   1,   1,   1,   1,   1,   1, 1},
-    {1,   1,   1,   1, -25, 101,  61, -21,   1,   1,   1,   1,   1,   1,   1, 1},
-    {1,   1,   1,   1, -25,  83,  83, -25,   1,   1,   1,   1,   1,   1,   1, 1},
-    {1,   1,   1,   1, -21,  61, 101, -25,   1,   1,   1,   1,   1,   1,   1, 1},
-    {1,   1,   1,   0, -15,  39, 116, -22,   1,   1,   1,   0,   1,   1,   1, 1},
-    {1,   1,   1,   0,  -7,  18, 125, -13,   0,   1,   1,   0,   0,   0,   0, 0},
-    {0, -13,   0,   1,   1, 125,   1,   0,   1,  18,   1,   0,   0,  -7,   0, 0},
-    {1, -13,  -2,   0, -13, 121,  17,   0,  -2,  17,   2,   0,   0,   0,   0, 0},
-    {3, -12,  -3,   1, -21, 113,  38, -15,  -3,  16,   6,   1,   1,   1,   1, 1},
-    {4,  -9,  -5,   1, -25,  99,  59, -20,  -2,  15,   9,  -2,   1,   1,   1, 1},
-    {4,  -8,  -8,   4, -24,  80,  80, -24,  -2,  12,  12,  -2,   1,   1,   1, 1},
-    {1,  -5,  -9,   4, -20,  59,  99, -25,  -2,   9,  15,  -2,   1,   1,   1, 1},
-    {1,  -3, -12,   3, -15,  38, 113, -21,   1,   6,  16,  -3,   1,   1,   1, 1},
-    {0,  -2, -13,   1,   0,  17, 121, -13,   0,   2,  17,  -2,   0,   0,   0, 0},
-    {0, -22,   0,   1,   1, 116,   1,   1,   1,  39,   1,   1,   1, -15,   1, 1},
-    {3, -21,  -3,   1, -12, 113,  16,   1,  -3,  38,   6,   1,   1, -15,   1, 1},
-    {5, -19,  -5,   2, -19, 105,  36, -13,  -5,  36,  13,   2,   1, -13,   1, 1},
-    {7, -15,  -8,   2, -21,  92,  56, -17,  -5,  32,  20,  -4,   2, -10,  -5, 2},
-    {3, -12, -12,   3, -21,  76,  76, -21,  -5,  27,  27,  -5,   3,  -7,  -7, 3},
-    {2,  -8, -15,   7, -17,  56,  92, -21,  -4,  20,  32,  -5,   2,  -5, -10, 2},
-    {2,  -5, -19,   5, -13,  36, 105, -19,   2,  13,  36,  -5,   1,   1, -13, 1},
-    {1,  -3, -21,   3,   1,  16, 113, -12,   1,   6,  38,  -3,   1,   1, -15, 1},
-    {1, -25,   1,   1,   1, 101,   1,   1,   1,  61,   1,   1,   1, -21,   1, 1},
-    {4, -25,  -2,   1,  -9,  99,  15,   1,  -5,  59,   9,   1,   1, -20,  -2, 1},
-    {7, -21,  -5,   2, -15,  92,  32, -10,  -8,  56,  20,  -5,   2, -17,  -4, 2},
-    {3, -18,  -9,   3, -18,  81,  50, -14,  -9,  50,  31,  -7,   3, -14,  -7, 3},
-    {3, -13, -13,   3, -17,  67,  67, -17,  -9,  41,  41,  -9,   3, -11, -11, 3},
-    {3,  -9, -18,   3, -14,  50,  81, -18,  -7,  31,  50,  -9,   3,  -7, -14, 3},
-    {2,  -5, -21,   7, -10,  32,  92, -15,  -5,  20,  56,  -8,   2,  -4, -17, 2},
-    {1,  -2, -25,   4,   1,  15,  99,  -9,   1,   9,  59,  -5,   1,  -2, -20, 1},
-    {1, -25,   1,   1,   1,  83,   1,   1,   1,  83,   1,   1,   1, -25,   1, 1},
-    {4, -24,  -2,   1,  -8,  80,  12,   1,  -8,  80,  12,   1,   4, -24,  -2, 1},
-    {3, -21,  -5,   3, -12,  76,  27,  -7, -12,  76,  27,  -7,   3, -21,  -5, 3},
-    {3, -17,  -9,   3, -13,  67,  41, -11, -13,  67,  41, -11,   3, -17,  -9, 3},
-    {3, -13, -13,   3, -13,  55,  55, -13, -13,  55,  55, -13,   3, -13, -13, 3},
-    {3,  -9, -17,   3, -11,  41,  67, -13, -11,  41,  67, -13,   3,  -9, -17, 3},
-    {3,  -5, -21,   3,  -7,  27,  76, -12,  -7,  27,  76, -12,   3,  -5, -21, 3},
-    {1,  -2, -24,   4,   1,  12,  80,  -8,   1,  12,  80,  -8,   1,  -2, -24, 4},
-    {1, -21,   1,   1,   1,  61,   1,   1,   1, 101,   1,   1,   1, -25,   1, 1},
-    {1, -20,  -2,   1,  -5,  59,   9,   1,  -9,  99,  15,   1,   4, -25,  -2, 1},
-    {2, -17,  -4,   2,  -8,  56,  20,  -5, -15,  92,  32, -10,   7, -21,  -5, 2},
-    {3, -14,  -7,   3,  -9,  50,  31,  -7, -18,  81,  50, -14,   3, -18,  -9, 3},
-    {3, -11, -11,   3,  -9,  41,  41,  -9, -17,  67,  67, -17,   3, -13, -13, 3},
-    {3,  -7, -14,   3,  -7,  31,  50,  -9, -14,  50,  81, -18,   3,  -9, -18, 3},
-    {2,  -4, -17,   2,  -5,  20,  56,  -8, -10,  32,  92, -15,   2,  -5, -21, 7},
-    {1,  -2, -20,   1,   1,   9,  59,  -5,   1,  15,  99,  -9,   1,  -2, -25, 4},
-    {1, -15,   1,   1,   1,  39,   1,   1,   1, 116,   1,   1,   0, -22,   0, 1},
-    {1, -15,   1,   1,  -3,  38,   6,   1, -12, 113,  16,   1,   3, -21,  -3, 1},
-    {2, -13,   2,   1,  -5,  36,  13,   1, -19, 105,  36, -13,   5, -19,  -5, 1},
-    {2, -10,  -5,   2,  -5,  32,  20,  -4, -21,  92,  56, -17,   7, -15,  -8, 2},
-    {3,  -7,  -7,   3,  -5,  27,  27,  -5, -21,  76,  76, -21,   3, -12, -12, 3},
-    {2,  -5, -10,   2,  -4,  20,  32,  -5, -17,  56,  92, -21,   2,  -8, -15, 7},
-    {2,   2, -13,   1,   1,  13,  36,  -5, -13,  36, 105, -19,   1,  -5, -19, 5},
-    {1,   1, -15,   1,   1,   6,  38,  -3,   1,  16, 113, -12,   1,  -3, -21, 3},
-    {1,  -7,   0,   0,   1,  18,   1,   0,   1, 125,   1,   0,   0, -13,   0, 0},
-    {0,   0,   0,   0,  -2,  17,   2,   0, -13, 121,  17,   0,   1, -13,  -2, 0},
-    {1,   1,   1,   1,  -3,  16,   6,   1, -21, 113,  38, -15,   3, -12,  -3, 1},
-    {1,   1,   1,   1,  -2,  15,   9,  -2, -25,  99,  59, -20,   4,  -9,  -5, 1},
-    {1,   1,   1,   1,  -2,  12,  12,  -2, -24,  80,  80, -24,   4,  -8,  -8, 4},
-    {1,   1,   1,   1,  -2,   9,  15,  -2, -20,  59,  99, -25,   1,  -5,  -9, 4},
-    {1,   1,   1,   1,   1,   6,  16,  -3, -15,  38, 113, -21,   1,  -3, -12, 3},
-    {0,   0,   0,   0,   0,   2,  17,  -2,   0,  17, 121, -13,   0,  -2, -13, 1}
-#elif EDGE_PIXEL_FILTER_EXTEND == 3
-    {0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 128,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,  -1,   0,   0,   0,   0,   0,   0,   0,   0,   0,   7, -14, 124,  17,  -9,   5,   0,   0,   0,   0,   0,   0,   0,   0,  -1,   0,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,  -1,  -1,   0,   0,   0,  -1,   0,   0,   0,   0,  12, -23, 115,  38, -17,   9,   0,  -1,   0,   0,   0,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {-1,   0,  -1,  -1,   0,  -1,   0,  -1,   0,   0,  -1,   0,  15, -27, 100,  60, -23,  13,   0,  -1,   0,   0,  -1,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {-1,   0,  -1,  -1,   0,  -1,   0,  -1,   0,   0,  -1,   0,  15, -27,  81,  81, -27,  15,   0,  -1,   0,   0,  -1,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {-1,   0,  -1,  -1,   0,  -1,   0,  -1,   0,   0,  -1,   0,  13, -23,  60, 100, -27,  15,   0,  -1,   0,   0,  -1,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,  -1,   0,   9, -17,  38, 115, -23,  12,   0,   0,   0,   0,  -1,   0,   0,   0,  -1,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,   0,  -1,   0,   0,   0,   0,   0,   0,   0,   0,   5,  -9,  17, 124, -14,   7,   0,   0,   0,   0,   0,   0,   0,   0,   0,  -1,   0,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,   7,   0,   0,   0,   0,   0, -14,   0,   0,   0,  -1,   0, 124,   0,  -1,   0,   0,   0,  17,   0,   0,   0,   0,   0,  -9,   0,   0,   0,   0,   0,   5,   0,   0, 0},
-    {0,  -1,   7,   1,   0,   0,  -1,   1, -13,  -2,   1,   0,   7, -13, 122,  17,  -8,   0,   1,  -2,  17,   2,  -1,   0,   0,   1,  -8,  -1,   1,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -2,   6,   2,  -1,   0,  -2,   2, -13,  -4,   1,   0,  12, -22, 112,  37, -16,   9,   1,  -3,  16,   5,  -3,   0,   0,   1,  -8,  -3,   1,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -2,   5,   3,  -2,   0,  -2,   3, -11,  -7,   2,  -2,  14, -27,  97,  58, -23,  13,   2,  -4,  14,   8,  -4,   2,   0,   1,  -7,  -4,   1,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -2,   4,   4,  -2,   0,  -2,   2,  -9,  -9,   2,  -2,  15, -27,  79,  79, -27,  15,   2,  -4,  11,  11,  -4,   2,   0,   1,  -6,  -6,   1,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -2,   3,   5,  -2,   0,  -2,   2,  -7, -11,   3,  -2,  13, -23,  58,  97, -27,  14,   2,  -4,   8,  14,  -4,   2,   0,   1,  -4,  -7,   1,   0,   0,   0,   0,   0,   0, 0},
-    {0,  -1,   2,   6,  -2,   0,   0,   1,  -4, -13,   2,  -2,   9, -16,  37, 112, -22,  12,   0,  -3,   5,  16,  -3,   1,   0,   1,  -3,  -8,   1,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,   1,   7,  -1,   0,   0,   1,  -2, -13,   1,  -1,   0,  -8,  17, 122, -13,   7,   0,  -1,   2,  17,  -2,   1,   0,   1,  -1,  -8,   1,   0,   0,   0,   0,   0,   0, 0},
-    {0,   0,  12,   0,   0,   0,   0,  -1, -23,  -1,   0,   0,  -1,   0, 115,   0,  -1,   0,  -1,   0,  38,   0,  -1,   0,   0,   0, -17,   0,   0,   0,   0,   0,   9,   0,   0, 0},
-    {0,  -2,  12,   1,   0,   0,  -2,   2, -22,  -3,   1,   0,   6, -13, 112,  16,  -8,   0,   2,  -4,  37,   5,  -3,   0,  -1,   1, -16,  -3,   1,   0,   0,   0,   9,   0,   0, 0},
-    {-1,  -3,  11,   3,  -2,  -1,  -3,   4, -21,  -7,   2,  -1,  11, -21, 103,  34, -15,   8,   3,  -7,  34,  11,  -5,   2,  -2,   2, -15,  -5,   2,  -1,  -1,  -1,   8,   2,   0, 0},
-    {-1,  -3,   9,   5,  -3,  -1,  -3,   4, -18, -11,   3,  -1,  13, -25,  90,  53, -21,  12,   4,  -9,  29,  17,  -7,   3,  -1,   3, -13,  -8,   2,  -1,  -1,  -1,   7,   4,  -1, -1},
-    {-1,  -3,   7,   7,  -3,  -1,  -3,   4, -15, -15,   4,  -3,  13, -25,  73,  73, -25,  13,   4,  -9,  24,  24,  -9,   4,  -1,   3, -11, -11,   3,  -1,  -1,  -1,   6,   6,  -1, -1},
-    {-1,  -3,   5,   9,  -3,  -1,  -1,   3, -11, -18,   4,  -3,  12, -21,  53,  90, -25,  13,   3,  -7,  17,  29,  -9,   4,  -1,   2,  -8, -13,   3,  -1,  -1,  -1,   4,   7,  -1, -1},
-    {-1,  -2,   3,  11,  -3,  -1,  -1,   2,  -7, -21,   4,  -3,   8, -15,  34, 103, -21,  11,   2,  -5,  11,  34,  -7,   3,  -1,   2,  -5, -15,   2,  -2,  -1,  -1,   2,   8,   0, 0},
-    {0,   0,   1,  12,  -2,   0,   0,   1,  -3, -22,   2,  -2,   0,  -8,  16, 112, -13,   6,   0,  -3,   5,  37,  -4,   2,   0,   1,  -3, -16,   1,  -1,   0,   0,   0,   9,   0, 0},
-    {-1,   0,  15,   0,  -1,   0,   0,  -1, -27,  -1,   0,   0,  -1,   0, 100,   0,  -1,   0,  -1,   0,  60,   0,  -1,   0,   0,  -1, -23,  -1,   0,   0,   0,   0,  13,   0,   0, 0},
-    {0,  -2,  14,   2,   0,   0,  -2,   3, -27,  -4,   1,   0,   5, -11,  97,  14,  -7,   0,   3,  -7,  58,   8,  -4,   0,  -2,   2, -23,  -4,   1,   0,   0,  -2,  13,   2,   0, 0},
-    {-1,  -3,  13,   4,  -1,  -1,  -3,   4, -25,  -9,   3,  -1,   9, -18,  90,  29, -13,   7,   5, -11,  53,  17,  -8,   4,  -3,   3, -21,  -7,   2,  -1,  -1,  -1,  12,   3,  -1, -1},
-    {-1,  -4,  11,   6,  -1,  -1,  -4,   5, -22, -14,   4,  -1,  11, -22,  78,  46, -19,  10,   6, -14,  46,  27, -12,   6,  -1,   4, -19, -11,   3,  -1,  -1,  -1,  10,   6,  -1, -1},
-    {-1,  -4,   9,   9,  -4,  -1,  -4,   5, -18, -18,   5,  -4,  11, -22,  63,  63, -22,  11,   7, -13,  37,  37, -13,   7,  -1,   4, -15, -15,   4,  -1,  -1,  -1,   8,   8,  -1, -1},
-    {-1,  -1,   6,  11,  -4,  -1,  -1,   4, -14, -22,   5,  -4,  10, -19,  46,  78, -22,  11,   6, -12,  27,  46, -14,   6,  -1,   3, -11, -19,   4,  -1,  -1,  -1,   6,  10,  -1, -1},
-    {-1,  -1,   4,  13,  -3,  -1,  -1,   3,  -9, -25,   4,  -3,   7, -13,  29,  90, -18,   9,   4,  -8,  17,  53, -11,   5,  -1,   2,  -7, -21,   3,  -3,  -1,  -1,   3,  12,  -1, -1},
-    {0,   0,   2,  14,  -2,   0,   0,   1,  -4, -27,   3,  -2,   0,  -7,  14,  97, -11,   5,   0,  -4,   8,  58,  -7,   3,   0,   1,  -4, -23,   2,  -2,   0,   0,   2,  13,  -2, 0},
-    {-1,   0,  15,   0,  -1,   0,   0,  -1, -27,  -1,   0,   0,  -1,   0,  81,   0,  -1,   0,  -1,   0,  81,   0,  -1,   0,   0,  -1, -27,  -1,   0,   0,   0,   0,  15,   0,   0, 0},
-    {0,  -2,  15,   2,   0,   0,  -2,   2, -27,  -4,   1,   0,   4,  -9,  79,  11,  -6,   0,   4,  -9,  79,  11,  -6,   0,  -2,   2, -27,  -4,   1,   0,   0,  -2,  15,   2,   0, 0},
-    {-1,  -3,  13,   4,  -1,  -1,  -3,   4, -25,  -9,   3,  -1,   7, -15,  73,  24, -11,   6,   7, -15,  73,  24, -11,   6,  -3,   4, -25,  -9,   3,  -1,  -1,  -3,  13,   4,  -1, -1},
-    {-1,  -4,  11,   7,  -1,  -1,  -4,   5, -22, -13,   4,  -1,   9, -18,  63,  37, -15,   8,   9, -18,  63,  37, -15,   8,  -4,   5, -22, -13,   4,  -1,  -1,  -4,  11,   7,  -1, -1},
-    {-1,  -1,   8,   8,  -1,  -1,  -1,   4, -18, -18,   4,  -1,   8, -18,  50,  50, -18,   8,   9, -18,  50,  50, -18,   9,  -1,   4, -18, -18,   4,  -1,  -1,  -1,   9,   9,  -1, -1},
-    {-1,  -1,   7,  11,  -4,  -1,  -1,   4, -13, -22,   5,  -4,   8, -15,  37,  63, -18,   9,   8, -15,  37,  63, -18,   9,  -1,   4, -13, -22,   5,  -4,  -1,  -1,   7,  11,  -4, -1},
-    {-1,  -1,   4,  13,  -3,  -1,  -1,   3,  -9, -25,   4,  -3,   6, -11,  24,  73, -15,   7,   6, -11,  24,  73, -15,   7,  -1,   3,  -9, -25,   4,  -3,  -1,  -1,   4,  13,  -3, -1},
-    {0,   0,   2,  15,  -2,   0,   0,   1,  -4, -27,   2,  -2,   0,  -6,  11,  79,  -9,   4,   0,  -6,  11,  79,  -9,   4,   0,   1,  -4, -27,   2,  -2,   0,   0,   2,  15,  -2, 0},
-    {-1,   0,  13,   0,  -1,   0,   0,  -1, -23,  -1,   0,   0,  -1,   0,  60,   0,  -1,   0,  -1,   0, 100,   0,  -1,   0,   0,  -1, -27,  -1,   0,   0,   0,   0,  15,   0,   0, 0},
-    {0,  -2,  13,   2,   0,   0,  -2,   2, -23,  -4,   1,   0,   3,  -7,  58,   8,  -4,   0,   5, -11,  97,  14,  -7,   0,  -2,   3, -27,  -4,   1,   0,   0,  -2,  14,   2,   0, 0},
-    {-1,  -1,  12,   3,  -1,  -1,  -3,   3, -21,  -7,   2,  -1,   5, -11,  53,  17,  -8,   4,   9, -18,  90,  29, -13,   7,  -3,   4, -25,  -9,   3,  -1,  -1,  -3,  13,   4,  -1, -1},
-    {-1,  -1,  10,   6,  -1,  -1,  -1,   4, -19, -12,   3,  -1,   6, -14,  46,  27, -11,   6,  11, -22,  78,  46, -19,  10,  -4,   5, -22, -14,   4,  -1,  -1,  -4,  11,   6,  -1, -1},
-    {-1,  -1,   8,   8,  -1,  -1,  -1,   4, -15, -15,   4,  -1,   7, -13,  37,  37, -13,   7,  11, -22,  63,  63, -22,  11,  -4,   5, -18, -18,   5,  -4,  -1,  -4,   9,   9,  -4, -1},
-    {-1,  -1,   6,  10,  -1,  -1,  -1,   3, -12, -19,   4,  -1,   6, -11,  27,  46, -14,   6,  10, -19,  46,  78, -22,  11,  -1,   4, -14, -22,   5,  -4,  -1,  -1,   6,  11,  -4, -1},
-    {-1,  -1,   3,  12,  -1,  -1,  -1,   2,  -7, -21,   3,  -3,   4,  -8,  17,  53, -11,   5,   7, -13,  29,  90, -18,   9,  -1,   3,  -9, -25,   4,  -3,  -1,  -1,   4,  13,  -3, -1},
-    {0,   0,   2,  13,  -2,   0,   0,   1,  -4, -23,   2,  -2,   0,  -4,   8,  58,  -7,   3,   0,  -7,  14,  97, -11,   5,   0,   1,  -4, -27,   3,  -2,   0,   0,   2,  14,  -2, 0},
-    {0,   0,   9,   0,   0,   0,   0,   0, -17,   0,   0,   0,  -1,   0,  38,   0,  -1,   0,  -1,   0, 115,   0,  -1,   0,   0,  -1, -23,  -1,   0,   0,   0,   0,  12,   0,   0, 0},
-    {0,   0,   9,   0,   0,   0,  -1,   1, -16,  -3,   1,   0,   2,  -4,  37,   5,  -3,   0,   6, -13, 112,  16,  -8,   0,  -2,   2, -22,  -3,   1,   0,   0,  -2,  12,   1,   0, 0},
-    {-1,  -1,   8,   2,  -1,  -1,  -2,   2, -15,  -5,   2,  -1,   3,  -7,  34,  11,  -5,   2,  11, -21, 103,  34, -15,   8,  -3,   4, -21,  -7,   2,  -1,   0,  -3,  11,   3,  -2, 0},
-    {-1,  -1,   7,   4,  -1,  -1,  -1,   3, -13,  -8,   2,  -1,   4,  -9,  29,  17,  -7,   3,  13, -25,  90,  53, -21,  12,  -3,   4, -18, -11,   3,  -1,  -1,  -3,   9,   5,  -3, -1},
-    {-1,  -1,   6,   6,  -1,  -1,  -1,   3, -11, -11,   3,  -1,   4,  -9,  24,  24,  -9,   4,  13, -25,  73,  73, -25,  13,  -3,   4, -15, -15,   4,  -3,  -1,  -3,   7,   7,  -3, -1},
-    {-1,  -1,   4,   7,  -1,  -1,  -1,   2,  -8, -13,   3,  -1,   3,  -7,  17,  29,  -9,   4,  12, -21,  53,  90, -25,  13,  -1,   3, -11, -18,   4,  -3,  -1,  -3,   5,   9,  -3, -1},
-    {-1,  -1,   2,   8,  -1,  -1,  -1,   2,  -5, -15,   2,  -2,   2,  -5,  11,  34,  -7,   3,   8, -15,  34, 103, -21,  11,  -1,   2,  -7, -21,   4,  -3,   0,  -2,   3,  11,  -3, 0},
-    {0,   0,   0,   9,   0,   0,   0,   1,  -3, -16,   1,  -1,   0,  -3,   5,  37,  -4,   2,   0,  -8,  16, 112, -13,   6,   0,   1,  -3, -22,   2,  -2,   0,   0,   1,  12,  -2, 0},
-    {0,   0,   5,   0,   0,   0,   0,   0,  -9,   0,   0,   0,   0,   0,  17,   0,   0,   0,  -1,   0, 124,   0,  -1,   0,   0,   0, -14,   0,   0,   0,   0,   0,   7,   0,   0, 0},
-    {0,   0,   0,   0,   0,   0,   0,   1,  -8,  -1,   1,   0,   1,  -2,  17,   2,  -1,   0,   7, -13, 122,  17,  -8,   0,  -1,   1, -13,  -2,   1,   0,   0,  -1,   7,   1,   0, 0},
-    {0,   0,   0,   0,   0,   0,   0,   1,  -8,  -3,   1,   0,   1,  -3,  16,   5,  -3,   0,  12, -22, 112,  37, -16,   9,  -2,   2, -13,  -4,   1,   0,   0,  -2,   6,   2,  -1, 0},
-    {0,   0,   0,   0,   0,   0,   0,   1,  -7,  -4,   1,   0,   2,  -4,  14,   8,  -4,   2,  14, -27,  97,  58, -23,  13,  -2,   3, -11,  -7,   2,  -2,   0,  -2,   5,   3,  -2, 0},
-    {0,   0,   0,   0,   0,   0,   0,   1,  -6,  -6,   1,   0,   2,  -4,  11,  11,  -4,   2,  15, -27,  79,  79, -27,  15,  -2,   2,  -9,  -9,   2,  -2,   0,  -2,   4,   4,  -2, 0},
-      0,   0,   0,   0,   0,   0,   1,  -4,  -7,   1,   0,   2,  -4,   8,  14,  -4,   2,  13, -23,  58,  97, -27,  14,  -2,   2,  -7, -11,   3,  -2,   0,  -2,   3,   5,  -2, 0},
-    {0,   0,   0,   0,   0,   0,   0,   1,  -3,  -8,   1,   0,   0,  -3,   5,  16,  -3,   1,   9, -16,  37, 112, -22,  12,   0,   1,  -4, -13,   2,  -2,   0,  -1,   2,   6,  -2, 0},
-    {0,   0,   0,   0,   0,   0,   0,   1,  -1,  -8,   1,   0,   0,  -1,   2,  17,  -2,   1,   0,  -8,  17, 122, -13,   7,   0,   1,  -2, -13,   1,  -1,   0,   0,   1,   7,  -1, 0}
-#endif  /* EDGE_PIXEL_FILTER_EXTEND */
-
-#endif  /* SUBPEL_SHIFTS==16 */
-};
-
-#endif  // EDGE_PIXEL_FILTER
-
 #else  // CONFIG_ENHANCED_INTERP
 
 DECLARE_ALIGNED(16, const short, vp8_sub_pel_filters[8][6]) =
@@ -883,6 +216,7 @@
     { 1, -8,   36,  108, -11,  2 },         /* New 1/4 pel 6 tap filter */
     { 0, -1,   12,  123,  -6,  0 },
 };
+
 #endif  // CONFIG_ENHANCED_INTERP
 
 static void filter_block2d_first_pass
@@ -1023,224 +357,6 @@
     }
 }
 
-#if EDGE_PIXEL_FILTER > 0
-static void filter_non_separable
-(
-
-    unsigned char *src_ptr,
-    unsigned char *output_ptr,
-    unsigned int src_pixels_per_line,
-    unsigned int pixel_step,
-    const short *vp8_filter
-)
-{
-    int Temp;
-#if EDGE_PIXEL_FILTER_EXTEND == 2
-    /* This code computes non-separable filtering of a pixel
-     * using a 4x4 neighborhood as shown where F is the pixel
-     * that src_ptr points to:
-     *
-     *    A B C D
-     *    E F G H
-     *    I J K L
-     *    M N O P
-     *
-     * The 16 filter coefficients are in row by row order
-     * */
-    Temp = ((int)src_ptr[-1 * (int)src_pixels_per_line - 1 * (int)pixel_step] * vp8_filter[0]) +
-           ((int)src_ptr[-1 * (int)src_pixels_per_line + 0 * (int)pixel_step] * vp8_filter[1]) +
-           ((int)src_ptr[-1 * (int)src_pixels_per_line + 1 * (int)pixel_step] * vp8_filter[2]) +
-           ((int)src_ptr[-1 * (int)src_pixels_per_line + 2 * (int)pixel_step] * vp8_filter[3]) +
-           ((int)src_ptr[ 0 * (int)src_pixels_per_line - 1 * (int)pixel_step] * vp8_filter[4]) +
-           ((int)src_ptr[ 0 * (int)src_pixels_per_line + 0 * (int)pixel_step] * vp8_filter[5]) +
-           ((int)src_ptr[ 0 * (int)src_pixels_per_line + 1 * (int)pixel_step] * vp8_filter[6]) +
-           ((int)src_ptr[ 0 * (int)src_pixels_per_line + 2 * (int)pixel_step] * vp8_filter[7]) +
-           ((int)src_ptr[ 1 * (int)src_pixels_per_line - 1 * (int)pixel_step] * vp8_filter[8]) +
-           ((int)src_ptr[ 1 * (int)src_pixels_per_line + 0 * (int)pixel_step] * vp8_filter[9]) +
-           ((int)src_ptr[ 1 * (int)src_pixels_per_line + 1 * (int)pixel_step] * vp8_filter[10]) +
-           ((int)src_ptr[ 1 * (int)src_pixels_per_line + 2 * (int)pixel_step] * vp8_filter[11]) +
-           ((int)src_ptr[ 2 * (int)src_pixels_per_line - 1 * (int)pixel_step] * vp8_filter[12]) +
-           ((int)src_ptr[ 2 * (int)src_pixels_per_line + 0 * (int)pixel_step] * vp8_filter[13]) +
-           ((int)src_ptr[ 2 * (int)src_pixels_per_line + 1 * (int)pixel_step] * vp8_filter[14]) +
-           ((int)src_ptr[ 2 * (int)src_pixels_per_line + 2 * (int)pixel_step] * vp8_filter[15]) +
-           (VP8_FILTER_WEIGHT >> 1);      /* Rounding */
-#elif EDGE_PIXEL_FILTER_EXTEND == 3
-    /* This code computes non-separable filtering of a pixel
-     * using a 6x6 neighborhood as shown where O is the pixel
-     * that src_ptr points to:
-     *
-     *    A B C D E F
-     *    G H I J K L
-     *    M N O P Q R
-     *    S T U V W X
-     *    Y Z a b c d
-     *    e f g h i j
-     *
-     * The 36 filter coefficients are in row by row order
-     * */
-    Temp = ((int)src_ptr[-2 * (int)src_pixels_per_line - 2 * (int)pixel_step] * vp8_filter[0]) +
-           ((int)src_ptr[-2 * (int)src_pixels_per_line - 1 * (int)pixel_step] * vp8_filter[1]) +
-           ((int)src_ptr[-2 * (int)src_pixels_per_line + 0 * (int)pixel_step] * vp8_filter[2]) +
-           ((int)src_ptr[-2 * (int)src_pixels_per_line + 1 * (int)pixel_step] * vp8_filter[3]) +
-           ((int)src_ptr[-2 * (int)src_pixels_per_line + 2 * (int)pixel_step] * vp8_filter[4]) +
-           ((int)src_ptr[-2 * (int)src_pixels_per_line + 3 * (int)pixel_step] * vp8_filter[5]) +
-           ((int)src_ptr[-1 * (int)src_pixels_per_line - 2 * (int)pixel_step] * vp8_filter[6]) +
-           ((int)src_ptr[-1 * (int)src_pixels_per_line - 1 * (int)pixel_step] * vp8_filter[7]) +
-           ((int)src_ptr[-1 * (int)src_pixels_per_line + 0 * (int)pixel_step] * vp8_filter[8]) +
-           ((int)src_ptr[-1 * (int)src_pixels_per_line + 1 * (int)pixel_step] * vp8_filter[9]) +
-           ((int)src_ptr[-1 * (int)src_pixels_per_line + 2 * (int)pixel_step] * vp8_filter[10]) +
-           ((int)src_ptr[-1 * (int)src_pixels_per_line + 3 * (int)pixel_step] * vp8_filter[11]) +
-           ((int)src_ptr[ 0 * (int)src_pixels_per_line - 2 * (int)pixel_step] * vp8_filter[12]) +
-           ((int)src_ptr[ 0 * (int)src_pixels_per_line - 1 * (int)pixel_step] * vp8_filter[13]) +
-           ((int)src_ptr[ 0 * (int)src_pixels_per_line + 0 * (int)pixel_step] * vp8_filter[14]) +
-           ((int)src_ptr[ 0 * (int)src_pixels_per_line + 1 * (int)pixel_step] * vp8_filter[15]) +
-           ((int)src_ptr[ 0 * (int)src_pixels_per_line + 2 * (int)pixel_step] * vp8_filter[16]) +
-           ((int)src_ptr[ 0 * (int)src_pixels_per_line + 3 * (int)pixel_step] * vp8_filter[17]) +
-           ((int)src_ptr[ 1 * (int)src_pixels_per_line - 2 * (int)pixel_step] * vp8_filter[18]) +
-           ((int)src_ptr[ 1 * (int)src_pixels_per_line - 1 * (int)pixel_step] * vp8_filter[19]) +
-           ((int)src_ptr[ 1 * (int)src_pixels_per_line + 0 * (int)pixel_step] * vp8_filter[20]) +
-           ((int)src_ptr[ 1 * (int)src_pixels_per_line + 1 * (int)pixel_step] * vp8_filter[21]) +
-           ((int)src_ptr[ 1 * (int)src_pixels_per_line + 2 * (int)pixel_step] * vp8_filter[22]) +
-           ((int)src_ptr[ 1 * (int)src_pixels_per_line + 3 * (int)pixel_step] * vp8_filter[23]) +
-           ((int)src_ptr[ 2 * (int)src_pixels_per_line - 2 * (int)pixel_step] * vp8_filter[24]) +
-           ((int)src_ptr[ 2 * (int)src_pixels_per_line - 1 * (int)pixel_step] * vp8_filter[25]) +
-           ((int)src_ptr[ 2 * (int)src_pixels_per_line + 0 * (int)pixel_step] * vp8_filter[26]) +
-           ((int)src_ptr[ 2 * (int)src_pixels_per_line + 1 * (int)pixel_step] * vp8_filter[27]) +
-           ((int)src_ptr[ 2 * (int)src_pixels_per_line + 2 * (int)pixel_step] * vp8_filter[28]) +
-           ((int)src_ptr[ 2 * (int)src_pixels_per_line + 3 * (int)pixel_step] * vp8_filter[29]) +
-           ((int)src_ptr[ 3 * (int)src_pixels_per_line - 2 * (int)pixel_step] * vp8_filter[30]) +
-           ((int)src_ptr[ 3 * (int)src_pixels_per_line - 1 * (int)pixel_step] * vp8_filter[31]) +
-           ((int)src_ptr[ 3 * (int)src_pixels_per_line + 0 * (int)pixel_step] * vp8_filter[32]) +
-           ((int)src_ptr[ 3 * (int)src_pixels_per_line + 1 * (int)pixel_step] * vp8_filter[33]) +
-           ((int)src_ptr[ 3 * (int)src_pixels_per_line + 2 * (int)pixel_step] * vp8_filter[34]) +
-           ((int)src_ptr[ 3 * (int)src_pixels_per_line + 3 * (int)pixel_step] * vp8_filter[35]) +
-           (VP8_FILTER_WEIGHT >> 1);      /* Rounding */
-#endif
-    Temp = Temp >> VP8_FILTER_SHIFT;
-
-    if (Temp < 0)
-        Temp = 0;
-    else if (Temp > 255)
-        Temp = 255;
-
-    *output_ptr = Temp;
-}
-
-static void filter_edge_pixel
-(
-    unsigned char *src_ptr,
-    unsigned char *output_ptr,
-    unsigned int src_pixels_per_line,
-    unsigned int pixel_step,
-    int xoffset,
-    int yoffset
-)
-{
-    const short *vp8_filter=vp8_sub_pel_filters_ns[xoffset+8*yoffset];
-    filter_non_separable(src_ptr, output_ptr, src_pixels_per_line, pixel_step, vp8_filter);
-}
-
-static void get_sobel_grads(unsigned char *src_ptr, int width, int height,
-                            unsigned int src_pixels_per_line,
-                            unsigned int *sum_g)
-{
-    /* Assume that the block always has extension of at least 1 */
-    int i, j;
-    int gx, gy, gd, ga;
-    unsigned char *prev = src_ptr-src_pixels_per_line;
-    unsigned char *prev2 = src_ptr-2*src_pixels_per_line;
-    unsigned char *curr = src_ptr;
-    unsigned char *next = src_ptr+src_pixels_per_line;
-    unsigned char *next2 = src_ptr+2*src_pixels_per_line;
-    sum_g[0] = sum_g[1] = sum_g[2] = sum_g[3] = 0;
-    for (i=0; i<height; ++i)
-    {
-        for (j=0; j<width; ++j)
-        {
-            gx = abs((prev[1]-prev[-1])+((curr[1]-curr[-1])*2)+(next[1]-next[-1]));
-            gy = abs((prev[-1]-next[-1])+((prev[0]-next[0])*2)+(prev[1]-next[1]));
-            gd = abs((curr[2]-prev2[0])+((next[1]-prev[-1])*2)+(next2[0]-curr[-2]));
-            ga = abs((curr[2]-next2[0])+((prev[1]-next[-1])*2)+(prev2[0]-curr[-2]));
-            sum_g[0] += (gx>EDGE_GRAD_THRESH*4);
-            sum_g[1] += (gy>EDGE_GRAD_THRESH*4);
-            sum_g[2] += (gd>EDGE_GRAD_THRESH*4);
-            sum_g[3] += (ga>EDGE_GRAD_THRESH*4);
-            prev++;
-            prev2++;
-            curr++;
-            next++;
-            next2++;
-        }
-        prev  += src_pixels_per_line-width;
-        curr  += src_pixels_per_line-width;
-        next  += src_pixels_per_line-width;
-        prev2 += src_pixels_per_line-width;
-        next2 += src_pixels_per_line-width;
-    }
-}
-
-static int edge_pixel_detected(unsigned char *src_ptr, int src_pitch)
-{
-    unsigned int ng[4];
-    get_sobel_grads(src_ptr, 2, 2, src_pitch, ng);
-    return (ng[0] + ng[1] + ng[2] + ng[3] > EDGE_GRADS2X2_THRESH);
-}
-
-static int edge_pixel_detected_simple(unsigned char *src_ptr, int src_pitch)
-{
-    int gmax, gmin, gmax2, gmin2;
-    if (src_ptr[0]>src_ptr[1])
-    {
-        gmax=src_ptr[0];
-        gmin=src_ptr[1];
-    }
-    else
-    {
-        gmax=src_ptr[1];
-        gmin=src_ptr[0];
-    }
-    src_ptr += src_pitch;
-    if (src_ptr[0]>src_ptr[1])
-    {
-        gmax2=src_ptr[0];
-        gmin2=src_ptr[1];
-    }
-    else
-    {
-        gmax2=src_ptr[1];
-        gmin2=src_ptr[0];
-    }
-    if (gmax2>gmax) gmax=gmax2;
-    if (gmin2<gmin) gmin=gmin2;
-    return (gmax - gmin > EDGE_SIMPLE_THRESH);
-}
-
-void vp8_edge_pixel_interpolation
-(
-    unsigned char  *src_ptr,
-    int  src_pixels_per_line,
-    int width,
-    int height,
-    int  xoffset,
-    int  yoffset,
-    unsigned char *dst_ptr,
-    int  dst_pitch
-)
-{
-    unsigned char *sp = src_ptr;
-    unsigned char *dp = dst_ptr;
-    int i, j;
-    for (i = 0; i < height; ++i, sp+=src_pixels_per_line-width, dp+=dst_pitch-width)
-        for (j = 0; j < width; ++j, ++sp, ++dp)
-        {
-            if (edge_pixel_detected(sp, src_pixels_per_line))
-            {
-                filter_edge_pixel(sp, dp, src_pixels_per_line, 1, xoffset, yoffset);
-            }
-        }
-}
-#endif  // EDGE_PIXEL_FILTER
-
 /*
  * The only functional difference between filter_block2d_second_pass()
  * and this function is that filter_block2d_second_pass() does a sixtap
@@ -1330,9 +446,6 @@
 )
 {
     int FData[(3+INTERP_EXTEND*2)*4]; /* Temp data buffer used in filtering */
-#ifdef ANNOUNCE_FUNCTION
-    printf("vp8_block2d\n");
-#endif
 
     /* First filter 1-D horizontally... */
     filter_block2d_first_pass(src_ptr - ((INTERP_EXTEND-1) * src_pixels_per_line), FData, src_pixels_per_line, 1,
@@ -1356,17 +469,10 @@
     const short  *HFilter;
     const short  *VFilter;
 
-#ifdef ANNOUNCE_FUNCTION
-    printf("vp8_sixtap_predict_c\n");
-#endif
     HFilter = vp8_sub_pel_filters[xoffset];   /* 6 tap */
     VFilter = vp8_sub_pel_filters[yoffset];   /* 6 tap */
 
     filter_block2d(src_ptr, dst_ptr, src_pixels_per_line, dst_pitch, HFilter, VFilter);
-#if CONFIG_ENHANCED_INTERP && EDGE_PIXEL_FILTER > 0
-    vp8_edge_pixel_interpolation(src_ptr, src_pixels_per_line, 4, 4,
-                                 xoffset, yoffset, dst_ptr, dst_pitch);
-#endif
 }
 void vp8_sixtap_predict8x8_c
 (
@@ -1382,9 +488,6 @@
     const short  *VFilter;
     // int FData[(7+INTERP_EXTEND*2)*16];   /* Temp data buffer used in filtering */
     int FData[(7+INTERP_EXTEND*2)*8];   /* Temp data buffer used in filtering */
-#ifdef ANNOUNCE_FUNCTION
-    printf("vp8_sixtap_predict8x8_c\n");
-#endif
 
     HFilter = vp8_sub_pel_filters[xoffset];   /* 6 tap */
     VFilter = vp8_sub_pel_filters[yoffset];   /* 6 tap */
@@ -1397,10 +500,6 @@
     /* then filter verticaly... */
     filter_block2d_second_pass(FData + 8*(INTERP_EXTEND-1), dst_ptr, dst_pitch, 8, 8, 8, 8, VFilter);
 
-#if CONFIG_ENHANCED_INTERP && EDGE_PIXEL_FILTER > 0
-    vp8_edge_pixel_interpolation(src_ptr, src_pixels_per_line, 8, 8,
-                                 xoffset, yoffset, dst_ptr, dst_pitch);
-#endif
 }
 
 void vp8_sixtap_predict_avg8x8_c
@@ -1417,9 +516,6 @@
     const short  *VFilter;
     // int FData[(7+INTERP_EXTEND*2)*16];   /* Temp data buffer used in filtering */
     int FData[(7+INTERP_EXTEND*2)*8];   /* Temp data buffer used in filtering */
-#ifdef ANNOUNCE_FUNCTION
-    printf("vp8_sixtap_predict_avg8x8_c\n");
-#endif
 
     HFilter = vp8_sub_pel_filters[xoffset];   /* 6 tap */
     VFilter = vp8_sub_pel_filters[yoffset];   /* 6 tap */
@@ -1430,10 +526,6 @@
 
     /* then filter verticaly... */
     filter_block2d_second_pass_avg(FData + 8*(INTERP_EXTEND-1), dst_ptr, dst_pitch, 8, 8, 8, 8, VFilter);
-#if CONFIG_ENHANCED_INTERP && EDGE_PIXEL_FILTER > 0
-    vp8_edge_pixel_interpolation(src_ptr, src_pixels_per_line, 8, 8,
-                                 xoffset, yoffset, dst_ptr, dst_pitch);
-#endif
 }
 
 void vp8_sixtap_predict8x4_c
@@ -1450,9 +542,6 @@
     const short  *VFilter;
     // int FData[(7+INTERP_EXTEND*2)*16];   /* Temp data buffer used in filtering */
     int FData[(3+INTERP_EXTEND*2)*8];   /* Temp data buffer used in filtering */
-#ifdef ANNOUNCE_FUNCTION
-    printf("vp8_sixtap_predict8x4_c\n");
-#endif
 
     HFilter = vp8_sub_pel_filters[xoffset];   /* 6 tap */
     VFilter = vp8_sub_pel_filters[yoffset];   /* 6 tap */
@@ -1465,10 +554,6 @@
     /* then filter verticaly... */
     filter_block2d_second_pass(FData + 8*(INTERP_EXTEND-1), dst_ptr, dst_pitch, 8, 8, 4, 8, VFilter);
 
-#if CONFIG_ENHANCED_INTERP && EDGE_PIXEL_FILTER > 0
-    vp8_edge_pixel_interpolation(src_ptr, src_pixels_per_line, 8, 4,
-                                 xoffset, yoffset, dst_ptr, dst_pitch);
-#endif
 }
 
 void vp8_sixtap_predict16x16_c
@@ -1485,9 +570,6 @@
     const short  *VFilter;
     // int FData[(15+INTERP_EXTEND*2)*24];   /* Temp data buffer used in filtering */
     int FData[(15+INTERP_EXTEND*2)*16];  /* Temp data buffer used in filtering */
-#ifdef ANNOUNCE_FUNCTION
-    printf("vp8_sixtap_predict16x16_c\n");
-#endif
 
 
     HFilter = vp8_sub_pel_filters[xoffset];   /* 6 tap */
@@ -1500,10 +582,6 @@
     /* then filter verticaly... */
     filter_block2d_second_pass(FData + 16*(INTERP_EXTEND-1), dst_ptr, dst_pitch, 16, 16, 16, 16, VFilter);
 
-#if CONFIG_ENHANCED_INTERP && EDGE_PIXEL_FILTER > 0
-    vp8_edge_pixel_interpolation(src_ptr, src_pixels_per_line, 16, 16,
-                                 xoffset, yoffset, dst_ptr, dst_pitch);
-#endif
 }
 
 void vp8_sixtap_predict_avg16x16_c
@@ -1520,9 +598,6 @@
     const short  *VFilter;
     // int FData[(15+INTERP_EXTEND*2)*24];   /* Temp data buffer used in filtering */
     int FData[(15+INTERP_EXTEND*2)*16];  /* Temp data buffer used in filtering */
-#ifdef ANNOUNCE_FUNCTION
-    printf("vp8_sixtap_predict_avg16x16_c\n");
-#endif
 
     HFilter = vp8_sub_pel_filters[xoffset];   /* 6 tap */
     VFilter = vp8_sub_pel_filters[yoffset];   /* 6 tap */
@@ -1534,10 +609,6 @@
     /* then filter verticaly... */
     filter_block2d_second_pass_avg(FData + 16*(INTERP_EXTEND-1), dst_ptr, dst_pitch,
                                    16, 16, 16, 16, VFilter);
-#if CONFIG_ENHANCED_INTERP && EDGE_PIXEL_FILTER > 0
-    vp8_edge_pixel_interpolation(src_ptr, src_pixels_per_line, 16, 16,
-                                 xoffset, yoffset, dst_ptr, dst_pitch);
-#endif
 }
 
 /****************************************************************************
diff --git a/vp8/common/filter.h b/vp8/common/filter.h
index 81ad525..d502216 100644
--- a/vp8/common/filter.h
+++ b/vp8/common/filter.h
@@ -27,12 +27,4 @@
 extern const short vp8_bilinear_filters[SUBPEL_SHIFTS][2];
 extern const short vp8_sub_pel_filters[SUBPEL_SHIFTS][INTERP_EXTEND*2];
 
-/* whether to use a special filter for edge pixels */
-#define EDGE_PIXEL_FILTER 0
-
-#if EDGE_PIXEL_FILTER > 0
-#define EDGE_PIXEL_FILTER_EXTEND 2
-extern const short vp8_sub_pel_filters_ns[SUBPEL_SHIFTS*SUBPEL_SHIFTS][4*EDGE_PIXEL_FILTER_EXTEND*EDGE_PIXEL_FILTER_EXTEND];
-#endif
-
 #endif //FILTER_H