You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nvidia-texture-tools/src/nvtt/cuda/BitmapTable.h

1887 lines
33 KiB
C

/*
static void doPrecomputation()
{
uint bitmaps[1024];
int indices[16];
int num = 0;
// Compute bitmaps with 3 clusters:
// first cluster [0,i) is at the start
for( int m = 0; m < 16; ++m )
{
indices[m] = 0;
}
const int imax = 15;
for( int i = imax; i >= 0; --i )
{
// second cluster [i,j) is half along
for( int m = i; m < 16; ++m )
{
indices[m] = 2;
}
const int jmax = ( i == 0 ) ? 15 : 16;
for( int j = jmax; j >= i; --j )
{
// last cluster [j,k) is at the end
if( j < 16 )
{
indices[j] = 1;
}
uint bitmap = 0;
for(int p = 0; p < 16; p++) {
bitmap |= indices[p] << (p * 2);
}
bitmaps[num] = bitmap;
num++;
}
}
nvDebugCheck(num == 151);
// Align to 160.
for(int i = 0; i < 9; i++)
{
bitmaps[num] = 0x555AA000;
num++;
}
nvDebugCheck(num == 160);
// Append bitmaps with 4 clusters:
// first cluster [0,i) is at the start
for( int m = 0; m < 16; ++m )
{
indices[m] = 0;
}
for( int i = imax; i >= 0; --i )
{
// second cluster [i,j) is one third along
for( int m = i; m < 16; ++m )
{
indices[m] = 2;
}
const int jmax = ( i == 0 ) ? 15 : 16;
for( int j = jmax; j >= i; --j )
{
// third cluster [j,k) is two thirds along
for( int m = j; m < 16; ++m )
{
indices[m] = 3;
}
int kmax = ( j == 0 ) ? 15 : 16;
for( int k = kmax; k >= j; --k )
{
// last cluster [k,n) is at the end
if( k < 16 )
{
indices[k] = 1;
}
uint bitmap = 0;
bool hasThree = false;
for(int p = 0; p < 16; p++) {
bitmap |= indices[p] << (p * 2);
if (indices[p] == 3) hasThree = true;
}
if (hasThree) {
bitmaps[num] = bitmap;
num++;
}
}
}
}
nvDebugCheck(num == 975);
// Align to 1024.
for(int i = 0; i < 49; i++)
{
bitmaps[num] = 0x555AA000;
num++;
}
nvDebugCheck(num == 1024);
printf("uint bitmaps[992] =\n{\n");
for (int i = 0; i < 992; i++)
{
printf("\t0x%.8X,\n", bitmaps[i]);
}
printf("};\n");
}
*/
const static uint s_bitmapTable[992] =
{
0x80000000,
0x40000000,
0xA0000000,
0x60000000,
0x50000000,
0xA8000000,
0x68000000,
0x58000000,
0x54000000,
0xAA000000,
0x6A000000,
0x5A000000,
0x56000000,
0x55000000,
0xAA800000,
0x6A800000,
0x5A800000,
0x56800000,
0x55800000,
0x55400000,
0xAAA00000,
0x6AA00000,
0x5AA00000,
0x56A00000,
0x55A00000,
0x55600000,
0x55500000,
0xAAA80000,
0x6AA80000,
0x5AA80000,
0x56A80000,
0x55A80000,
0x55680000,
0x55580000,
0x55540000,
0xAAAA0000,
0x6AAA0000,
0x5AAA0000,
0x56AA0000,
0x55AA0000,
0x556A0000,
0x555A0000,
0x55560000,
0x55550000,
0xAAAA8000,
0x6AAA8000,
0x5AAA8000,
0x56AA8000,
0x55AA8000,
0x556A8000,
0x555A8000,
0x55568000,
0x55558000,
0x55554000,
0xAAAAA000,
0x6AAAA000,
0x5AAAA000,
0x56AAA000,
0x55AAA000,
0x556AA000,
0x555AA000,
0x5556A000,
0x5555A000,
0x55556000,
0x55555000,
0xAAAAA800,
0x6AAAA800,
0x5AAAA800,
0x56AAA800,
0x55AAA800,
0x556AA800,
0x555AA800,
0x5556A800,
0x5555A800,
0x55556800,
0x55555800,
0x55555400,
0xAAAAAA00,
0x6AAAAA00,
0x5AAAAA00,
0x56AAAA00,
0x55AAAA00,
0x556AAA00,
0x555AAA00,
0x5556AA00,
0x5555AA00,
0x55556A00,
0x55555A00,
0x55555600,
0x55555500,
0xAAAAAA80,
0x6AAAAA80,
0x5AAAAA80,
0x56AAAA80,
0x55AAAA80,
0x556AAA80,
0x555AAA80,
0x5556AA80,
0x5555AA80,
0x55556A80,
0x55555A80,
0x55555680,
0x55555580,
0x55555540,
0xAAAAAAA0,
0x6AAAAAA0,
0x5AAAAAA0,
0x56AAAAA0,
0x55AAAAA0,
0x556AAAA0,
0x555AAAA0,
0x5556AAA0,
0x5555AAA0,
0x55556AA0,
0x55555AA0,
0x555556A0,
0x555555A0,
0x55555560,
0x55555550,
0xAAAAAAA8,
0x6AAAAAA8,
0x5AAAAAA8,
0x56AAAAA8,
0x55AAAAA8,
0x556AAAA8,
0x555AAAA8,
0x5556AAA8,
0x5555AAA8,
0x55556AA8,
0x55555AA8,
0x555556A8,
0x555555A8,
0x55555568,
0x55555558,
0x55555554,
0x6AAAAAAA,
0x5AAAAAAA,
0x56AAAAAA,
0x55AAAAAA,
0x556AAAAA,
0x555AAAAA,
0x5556AAAA,
0x5555AAAA,
0x55556AAA,
0x55555AAA,
0x555556AA,
0x555555AA,
0x5555556A,
0x5555555A,
0x55555556,
0x55555555,
0x55555555,
0x55555555,
0x55555555,
0x55555555,
0x55555555,
0x55555555,
0x55555555,
0x55555555,
0x55555555,
0xC0000000,
0xE0000000,
0xF0000000,
0x70000000,
0xE8000000,
0xF8000000,
0x78000000,
0xFC000000,
0x7C000000,
0x5C000000,
0xEA000000,
0xFA000000,
0x7A000000,
0xFE000000,
0x7E000000,
0x5E000000,
0xFF000000,
0x7F000000,
0x5F000000,
0x57000000,
0xEA800000,
0xFA800000,
0x7A800000,
0xFE800000,
0x7E800000,
0x5E800000,
0xFF800000,
0x7F800000,
0x5F800000,
0x57800000,
0xFFC00000,
0x7FC00000,
0x5FC00000,
0x57C00000,
0x55C00000,
0xEAA00000,
0xFAA00000,
0x7AA00000,
0xFEA00000,
0x7EA00000,
0x5EA00000,
0xFFA00000,
0x7FA00000,
0x5FA00000,
0x57A00000,
0xFFE00000,
0x7FE00000,
0x5FE00000,
0x57E00000,
0x55E00000,
0xFFF00000,
0x7FF00000,
0x5FF00000,
0x57F00000,
0x55F00000,
0x55700000,
0xEAA80000,
0xFAA80000,
0x7AA80000,
0xFEA80000,
0x7EA80000,
0x5EA80000,
0xFFA80000,
0x7FA80000,
0x5FA80000,
0x57A80000,
0xFFE80000,
0x7FE80000,
0x5FE80000,
0x57E80000,
0x55E80000,
0xFFF80000,
0x7FF80000,
0x5FF80000,
0x57F80000,
0x55F80000,
0x55780000,
0xFFFC0000,
0x7FFC0000,
0x5FFC0000,
0x57FC0000,
0x55FC0000,
0x557C0000,
0x555C0000,
0xEAAA0000,
0xFAAA0000,
0x7AAA0000,
0xFEAA0000,
0x7EAA0000,
0x5EAA0000,
0xFFAA0000,
0x7FAA0000,
0x5FAA0000,
0x57AA0000,
0xFFEA0000,
0x7FEA0000,
0x5FEA0000,
0x57EA0000,
0x55EA0000,
0xFFFA0000,
0x7FFA0000,
0x5FFA0000,
0x57FA0000,
0x55FA0000,
0x557A0000,
0xFFFE0000,
0x7FFE0000,
0x5FFE0000,
0x57FE0000,
0x55FE0000,
0x557E0000,
0x555E0000,
0xFFFF0000,
0x7FFF0000,
0x5FFF0000,
0x57FF0000,
0x55FF0000,
0x557F0000,
0x555F0000,
0x55570000,
0xEAAA8000,
0xFAAA8000,
0x7AAA8000,
0xFEAA8000,
0x7EAA8000,
0x5EAA8000,
0xFFAA8000,
0x7FAA8000,
0x5FAA8000,
0x57AA8000,
0xFFEA8000,
0x7FEA8000,
0x5FEA8000,
0x57EA8000,
0x55EA8000,
0xFFFA8000,
0x7FFA8000,
0x5FFA8000,
0x57FA8000,
0x55FA8000,
0x557A8000,
0xFFFE8000,
0x7FFE8000,
0x5FFE8000,
0x57FE8000,
0x55FE8000,
0x557E8000,
0x555E8000,
0xFFFF8000,
0x7FFF8000,
0x5FFF8000,
0x57FF8000,
0x55FF8000,
0x557F8000,
0x555F8000,
0x55578000,
0xFFFFC000,
0x7FFFC000,
0x5FFFC000,
0x57FFC000,
0x55FFC000,
0x557FC000,
0x555FC000,
0x5557C000,
0x5555C000,
0xEAAAA000,
0xFAAAA000,
0x7AAAA000,
0xFEAAA000,
0x7EAAA000,
0x5EAAA000,
0xFFAAA000,
0x7FAAA000,
0x5FAAA000,
0x57AAA000,
0xFFEAA000,
0x7FEAA000,
0x5FEAA000,
0x57EAA000,
0x55EAA000,
0xFFFAA000,
0x7FFAA000,
0x5FFAA000,
0x57FAA000,
0x55FAA000,
0x557AA000,
0xFFFEA000,
0x7FFEA000,
0x5FFEA000,
0x57FEA000,
0x55FEA000,
0x557EA000,
0x555EA000,
0xFFFFA000,
0x7FFFA000,
0x5FFFA000,
0x57FFA000,
0x55FFA000,
0x557FA000,
0x555FA000,
0x5557A000,
0xFFFFE000,
0x7FFFE000,
0x5FFFE000,
0x57FFE000,
0x55FFE000,
0x557FE000,
0x555FE000,
0x5557E000,
0x5555E000,
0xFFFFF000,
0x7FFFF000,
0x5FFFF000,
0x57FFF000,
0x55FFF000,
0x557FF000,
0x555FF000,
0x5557F000,
0x5555F000,
0x55557000,
0xEAAAA800,
0xFAAAA800,
0x7AAAA800,
0xFEAAA800,
0x7EAAA800,
0x5EAAA800,
0xFFAAA800,
0x7FAAA800,
0x5FAAA800,
0x57AAA800,
0xFFEAA800,
0x7FEAA800,
0x5FEAA800,
0x57EAA800,
0x55EAA800,
0xFFFAA800,
0x7FFAA800,
0x5FFAA800,
0x57FAA800,
0x55FAA800,
0x557AA800,
0xFFFEA800,
0x7FFEA800,
0x5FFEA800,
0x57FEA800,
0x55FEA800,
0x557EA800,
0x555EA800,
0xFFFFA800,
0x7FFFA800,
0x5FFFA800,
0x57FFA800,
0x55FFA800,
0x557FA800,
0x555FA800,
0x5557A800,
0xFFFFE800,
0x7FFFE800,
0x5FFFE800,
0x57FFE800,
0x55FFE800,
0x557FE800,
0x555FE800,
0x5557E800,
0x5555E800,
0xFFFFF800,
0x7FFFF800,
0x5FFFF800,
0x57FFF800,
0x55FFF800,
0x557FF800,
0x555FF800,
0x5557F800,
0x5555F800,
0x55557800,
0xFFFFFC00,
0x7FFFFC00,
0x5FFFFC00,
0x57FFFC00,
0x55FFFC00,
0x557FFC00,
0x555FFC00,
0x5557FC00,
0x5555FC00,
0x55557C00,
0x55555C00,
0xEAAAAA00,
0xFAAAAA00,
0x7AAAAA00,
0xFEAAAA00,
0x7EAAAA00,
0x5EAAAA00,
0xFFAAAA00,
0x7FAAAA00,
0x5FAAAA00,
0x57AAAA00,
0xFFEAAA00,
0x7FEAAA00,
0x5FEAAA00,
0x57EAAA00,
0x55EAAA00,
0xFFFAAA00,
0x7FFAAA00,
0x5FFAAA00,
0x57FAAA00,
0x55FAAA00,
0x557AAA00,
0xFFFEAA00,
0x7FFEAA00,
0x5FFEAA00,
0x57FEAA00,
0x55FEAA00,
0x557EAA00,
0x555EAA00,
0xFFFFAA00,
0x7FFFAA00,
0x5FFFAA00,
0x57FFAA00,
0x55FFAA00,
0x557FAA00,
0x555FAA00,
0x5557AA00,
0xFFFFEA00,
0x7FFFEA00,
0x5FFFEA00,
0x57FFEA00,
0x55FFEA00,
0x557FEA00,
0x555FEA00,
0x5557EA00,
0x5555EA00,
0xFFFFFA00,
0x7FFFFA00,
0x5FFFFA00,
0x57FFFA00,
0x55FFFA00,
0x557FFA00,
0x555FFA00,
0x5557FA00,
0x5555FA00,
0x55557A00,
0xFFFFFE00,
0x7FFFFE00,
0x5FFFFE00,
0x57FFFE00,
0x55FFFE00,
0x557FFE00,
0x555FFE00,
0x5557FE00,
0x5555FE00,
0x55557E00,
0x55555E00,
0xFFFFFF00,
0x7FFFFF00,
0x5FFFFF00,
0x57FFFF00,
0x55FFFF00,
0x557FFF00,
0x555FFF00,
0x5557FF00,
0x5555FF00,
0x55557F00,
0x55555F00,
0x55555700,
0xEAAAAA80,
0xFAAAAA80,
0x7AAAAA80,
0xFEAAAA80,
0x7EAAAA80,
0x5EAAAA80,
0xFFAAAA80,
0x7FAAAA80,
0x5FAAAA80,
0x57AAAA80,
0xFFEAAA80,
0x7FEAAA80,
0x5FEAAA80,
0x57EAAA80,
0x55EAAA80,
0xFFFAAA80,
0x7FFAAA80,
0x5FFAAA80,
0x57FAAA80,
0x55FAAA80,
0x557AAA80,
0xFFFEAA80,
0x7FFEAA80,
0x5FFEAA80,
0x57FEAA80,
0x55FEAA80,
0x557EAA80,
0x555EAA80,
0xFFFFAA80,
0x7FFFAA80,
0x5FFFAA80,
0x57FFAA80,
0x55FFAA80,
0x557FAA80,
0x555FAA80,
0x5557AA80,
0xFFFFEA80,
0x7FFFEA80,
0x5FFFEA80,
0x57FFEA80,
0x55FFEA80,
0x557FEA80,
0x555FEA80,
0x5557EA80,
0x5555EA80,
0xFFFFFA80,
0x7FFFFA80,
0x5FFFFA80,
0x57FFFA80,
0x55FFFA80,
0x557FFA80,
0x555FFA80,
0x5557FA80,
0x5555FA80,
0x55557A80,
0xFFFFFE80,
0x7FFFFE80,
0x5FFFFE80,
0x57FFFE80,
0x55FFFE80,
0x557FFE80,
0x555FFE80,
0x5557FE80,
0x5555FE80,
0x55557E80,
0x55555E80,
0xFFFFFF80,
0x7FFFFF80,
0x5FFFFF80,
0x57FFFF80,
0x55FFFF80,
0x557FFF80,
0x555FFF80,
0x5557FF80,
0x5555FF80,
0x55557F80,
0x55555F80,
0x55555780,
0xFFFFFFC0,
0x7FFFFFC0,
0x5FFFFFC0,
0x57FFFFC0,
0x55FFFFC0,
0x557FFFC0,
0x555FFFC0,
0x5557FFC0,
0x5555FFC0,
0x55557FC0,
0x55555FC0,
0x555557C0,
0x555555C0,
0xEAAAAAA0,
0xFAAAAAA0,
0x7AAAAAA0,
0xFEAAAAA0,
0x7EAAAAA0,
0x5EAAAAA0,
0xFFAAAAA0,
0x7FAAAAA0,
0x5FAAAAA0,
0x57AAAAA0,
0xFFEAAAA0,
0x7FEAAAA0,
0x5FEAAAA0,
0x57EAAAA0,
0x55EAAAA0,
0xFFFAAAA0,
0x7FFAAAA0,
0x5FFAAAA0,
0x57FAAAA0,
0x55FAAAA0,
0x557AAAA0,
0xFFFEAAA0,
0x7FFEAAA0,
0x5FFEAAA0,
0x57FEAAA0,
0x55FEAAA0,
0x557EAAA0,
0x555EAAA0,
0xFFFFAAA0,
0x7FFFAAA0,
0x5FFFAAA0,
0x57FFAAA0,
0x55FFAAA0,
0x557FAAA0,
0x555FAAA0,
0x5557AAA0,
0xFFFFEAA0,
0x7FFFEAA0,
0x5FFFEAA0,
0x57FFEAA0,
0x55FFEAA0,
0x557FEAA0,
0x555FEAA0,
0x5557EAA0,
0x5555EAA0,
0xFFFFFAA0,
0x7FFFFAA0,
0x5FFFFAA0,
0x57FFFAA0,
0x55FFFAA0,
0x557FFAA0,
0x555FFAA0,
0x5557FAA0,
0x5555FAA0,
0x55557AA0,
0xFFFFFEA0,
0x7FFFFEA0,
0x5FFFFEA0,
0x57FFFEA0,
0x55FFFEA0,
0x557FFEA0,
0x555FFEA0,
0x5557FEA0,
0x5555FEA0,
0x55557EA0,
0x55555EA0,
0xFFFFFFA0,
0x7FFFFFA0,
0x5FFFFFA0,
0x57FFFFA0,
0x55FFFFA0,
0x557FFFA0,
0x555FFFA0,
0x5557FFA0,
0x5555FFA0,
0x55557FA0,
0x55555FA0,
0x555557A0,
0xFFFFFFE0,
0x7FFFFFE0,
0x5FFFFFE0,
0x57FFFFE0,
0x55FFFFE0,
0x557FFFE0,
0x555FFFE0,
0x5557FFE0,
0x5555FFE0,
0x55557FE0,
0x55555FE0,
0x555557E0,
0x555555E0,
0xFFFFFFF0,
0x7FFFFFF0,
0x5FFFFFF0,
0x57FFFFF0,
0x55FFFFF0,
0x557FFFF0,
0x555FFFF0,
0x5557FFF0,
0x5555FFF0,
0x55557FF0,
0x55555FF0,
0x555557F0,
0x555555F0,
0x55555570,
0xEAAAAAA8,
0xFAAAAAA8,
0x7AAAAAA8,
0xFEAAAAA8,
0x7EAAAAA8,
0x5EAAAAA8,
0xFFAAAAA8,
0x7FAAAAA8,
0x5FAAAAA8,
0x57AAAAA8,
0xFFEAAAA8,
0x7FEAAAA8,
0x5FEAAAA8,
0x57EAAAA8,
0x55EAAAA8,
0xFFFAAAA8,
0x7FFAAAA8,
0x5FFAAAA8,
0x57FAAAA8,
0x55FAAAA8,
0x557AAAA8,
0xFFFEAAA8,
0x7FFEAAA8,
0x5FFEAAA8,
0x57FEAAA8,
0x55FEAAA8,
0x557EAAA8,
0x555EAAA8,
0xFFFFAAA8,
0x7FFFAAA8,
0x5FFFAAA8,
0x57FFAAA8,
0x55FFAAA8,
0x557FAAA8,
0x555FAAA8,
0x5557AAA8,
0xFFFFEAA8,
0x7FFFEAA8,
0x5FFFEAA8,
0x57FFEAA8,
0x55FFEAA8,
0x557FEAA8,
0x555FEAA8,
0x5557EAA8,
0x5555EAA8,
0xFFFFFAA8,
0x7FFFFAA8,
0x5FFFFAA8,
0x57FFFAA8,
0x55FFFAA8,
0x557FFAA8,
0x555FFAA8,
0x5557FAA8,
0x5555FAA8,
0x55557AA8,
0xFFFFFEA8,
0x7FFFFEA8,
0x5FFFFEA8,
0x57FFFEA8,
0x55FFFEA8,
0x557FFEA8,
0x555FFEA8,
0x5557FEA8,
0x5555FEA8,
0x55557EA8,
0x55555EA8,
0xFFFFFFA8,
0x7FFFFFA8,
0x5FFFFFA8,
0x57FFFFA8,
0x55FFFFA8,
0x557FFFA8,
0x555FFFA8,
0x5557FFA8,
0x5555FFA8,
0x55557FA8,
0x55555FA8,
0x555557A8,
0xFFFFFFE8,
0x7FFFFFE8,
0x5FFFFFE8,
0x57FFFFE8,
0x55FFFFE8,
0x557FFFE8,
0x555FFFE8,
0x5557FFE8,
0x5555FFE8,
0x55557FE8,
0x55555FE8,
0x555557E8,
0x555555E8,
0xFFFFFFF8,
0x7FFFFFF8,
0x5FFFFFF8,
0x57FFFFF8,
0x55FFFFF8,
0x557FFFF8,
0x555FFFF8,
0x5557FFF8,
0x5555FFF8,
0x55557FF8,
0x55555FF8,
0x555557F8,
0x555555F8,
0x55555578,
0xFFFFFFFC,
0x7FFFFFFC,
0x5FFFFFFC,
0x57FFFFFC,
0x55FFFFFC,
0x557FFFFC,
0x555FFFFC,
0x5557FFFC,
0x5555FFFC,
0x55557FFC,
0x55555FFC,
0x555557FC,
0x555555FC,
0x5555557C,
0x5555555C,
0xEAAAAAAA,
0xFAAAAAAA,
0x7AAAAAAA,
0xFEAAAAAA,
0x7EAAAAAA,
0x5EAAAAAA,
0xFFAAAAAA,
0x7FAAAAAA,
0x5FAAAAAA,
0x57AAAAAA,
0xFFEAAAAA,
0x7FEAAAAA,
0x5FEAAAAA,
0x57EAAAAA,
0x55EAAAAA,
0xFFFAAAAA,
0x7FFAAAAA,
0x5FFAAAAA,
0x57FAAAAA,
0x55FAAAAA,
0x557AAAAA,
0xFFFEAAAA,
0x7FFEAAAA,
0x5FFEAAAA,
0x57FEAAAA,
0x55FEAAAA,
0x557EAAAA,
0x555EAAAA,
0xFFFFAAAA,
0x7FFFAAAA,
0x5FFFAAAA,
0x57FFAAAA,
0x55FFAAAA,
0x557FAAAA,
0x555FAAAA,
0x5557AAAA,
0xFFFFEAAA,
0x7FFFEAAA,
0x5FFFEAAA,
0x57FFEAAA,
0x55FFEAAA,
0x557FEAAA,
0x555FEAAA,
0x5557EAAA,
0x5555EAAA,
0xFFFFFAAA,
0x7FFFFAAA,
0x5FFFFAAA,
0x57FFFAAA,
0x55FFFAAA,
0x557FFAAA,
0x555FFAAA,
0x5557FAAA,
0x5555FAAA,
0x55557AAA,
0xFFFFFEAA,
0x7FFFFEAA,
0x5FFFFEAA,
0x57FFFEAA,
0x55FFFEAA,
0x557FFEAA,
0x555FFEAA,
0x5557FEAA,
0x5555FEAA,
0x55557EAA,
0x55555EAA,
0xFFFFFFAA,
0x7FFFFFAA,
0x5FFFFFAA,
0x57FFFFAA,
0x55FFFFAA,
0x557FFFAA,
0x555FFFAA,
0x5557FFAA,
0x5555FFAA,
0x55557FAA,
0x55555FAA,
0x555557AA,
0xFFFFFFEA,
0x7FFFFFEA,
0x5FFFFFEA,
0x57FFFFEA,
0x55FFFFEA,
0x557FFFEA,
0x555FFFEA,
0x5557FFEA,
0x5555FFEA,
0x55557FEA,
0x55555FEA,
0x555557EA,
0x555555EA,
0xFFFFFFFA,
0x7FFFFFFA,
0x5FFFFFFA,
0x57FFFFFA,
0x55FFFFFA,
0x557FFFFA,
0x555FFFFA,
0x5557FFFA,
0x5555FFFA,
0x55557FFA,
0x55555FFA,
0x555557FA,
0x555555FA,
0x5555557A,
0xFFFFFFFE,
0x7FFFFFFE,
0x5FFFFFFE,
0x57FFFFFE,
0x55FFFFFE,
0x557FFFFE,
0x555FFFFE,
0x5557FFFE,
0x5555FFFE,
0x55557FFE,
0x55555FFE,
0x555557FE,
0x555555FE,
0x5555557E,
0x5555555E,
0x7FFFFFFF,
0x5FFFFFFF,
0x57FFFFFF,
0x55FFFFFF,
0x557FFFFF,
0x555FFFFF,
0x5557FFFF,
0x5555FFFF,
0x55557FFF,
0x55555FFF,
0x555557FF,
0x555555FF,
0x5555557F,
0x5555555F,
0x55555557,
0x55555557,
0x55555557,
0x55555557,
0x55555557,
0x55555557,
0x55555557,
0x55555557,
0x55555557,
0x55555557,
0x55555557,
0x55555557,
0x55555557,
0x55555557,
0x55555557,
0x55555557,
0x55555557,
0x55555557,
};
/*
void precomp()
{
unsigned int bitmaps[1024];
int num = 0;
printf("const static uint s_bitmapTableCTX[704] =\n{\n");
for (int a = 1; a <= 15; a++)
{
for (int b = a; b <= 15; b++)
{
for (int c = b; c <= 15; c++)
{
int indices[16];
int i = 0;
for(; i < a; i++) {
indices[i] = 0;
}
for(; i < a+b; i++) {
indices[i] = 2;
}
for(; i < a+b+c; i++) {
indices[i] = 3;
}
for(; i < 16; i++) {
indices[i] = 1;
}
unsigned int bm = 0;
for(i = 0; i < 16; i++) {
bm |= indices[i] << (i * 2);
}
printf("\t0x%8X, // %d %d %d %d\n", bm, a-0, b-a, c-b, 16-c);
bitmaps[num] = bm;
num++;
}
}
}
// Align to 32: 680 -> 704
while (num < 704)
{
printf("\t0x80000000,\n");
bitmaps[num] = 0x80000000; // 15 0 0 1;
num++;
}
printf("}; // num = %d\n", num);
}
*/
const static uint s_bitmapTableCTX[704] =
{
0x55555578, // 1 0 0 15
0x555555F8, // 1 0 1 14
0x555557F8, // 1 0 2 13
0x55555FF8, // 1 0 3 12
0x55557FF8, // 1 0 4 11
0x5555FFF8, // 1 0 5 10
0x5557FFF8, // 1 0 6 9
0x555FFFF8, // 1 0 7 8
0x557FFFF8, // 1 0 8 7
0x55FFFFF8, // 1 0 9 6
0x57FFFFF8, // 1 0 10 5
0x5FFFFFF8, // 1 0 11 4
0x7FFFFFF8, // 1 0 12 3
0xFFFFFFF8, // 1 0 13 2
0xFFFFFFF8, // 1 0 14 1
0x555557E8, // 1 1 0 14
0x55555FE8, // 1 1 1 13
0x55557FE8, // 1 1 2 12
0x5555FFE8, // 1 1 3 11
0x5557FFE8, // 1 1 4 10
0x555FFFE8, // 1 1 5 9
0x557FFFE8, // 1 1 6 8
0x55FFFFE8, // 1 1 7 7
0x57FFFFE8, // 1 1 8 6
0x5FFFFFE8, // 1 1 9 5
0x7FFFFFE8, // 1 1 10 4
0xFFFFFFE8, // 1 1 11 3
0xFFFFFFE8, // 1 1 12 2
0xFFFFFFE8, // 1 1 13 1
0x55557FA8, // 1 2 0 13
0x5555FFA8, // 1 2 1 12
0x5557FFA8, // 1 2 2 11
0x555FFFA8, // 1 2 3 10
0x557FFFA8, // 1 2 4 9
0x55FFFFA8, // 1 2 5 8
0x57FFFFA8, // 1 2 6 7
0x5FFFFFA8, // 1 2 7 6
0x7FFFFFA8, // 1 2 8 5
0xFFFFFFA8, // 1 2 9 4
0xFFFFFFA8, // 1 2 10 3
0xFFFFFFA8, // 1 2 11 2
0xFFFFFFA8, // 1 2 12 1
0x5557FEA8, // 1 3 0 12
0x555FFEA8, // 1 3 1 11
0x557FFEA8, // 1 3 2 10
0x55FFFEA8, // 1 3 3 9
0x57FFFEA8, // 1 3 4 8
0x5FFFFEA8, // 1 3 5 7
0x7FFFFEA8, // 1 3 6 6
0xFFFFFEA8, // 1 3 7 5
0xFFFFFEA8, // 1 3 8 4
0xFFFFFEA8, // 1 3 9 3
0xFFFFFEA8, // 1 3 10 2
0xFFFFFEA8, // 1 3 11 1
0x557FFAA8, // 1 4 0 11
0x55FFFAA8, // 1 4 1 10
0x57FFFAA8, // 1 4 2 9
0x5FFFFAA8, // 1 4 3 8
0x7FFFFAA8, // 1 4 4 7
0xFFFFFAA8, // 1 4 5 6
0xFFFFFAA8, // 1 4 6 5
0xFFFFFAA8, // 1 4 7 4
0xFFFFFAA8, // 1 4 8 3
0xFFFFFAA8, // 1 4 9 2
0xFFFFFAA8, // 1 4 10 1
0x57FFEAA8, // 1 5 0 10
0x5FFFEAA8, // 1 5 1 9
0x7FFFEAA8, // 1 5 2 8
0xFFFFEAA8, // 1 5 3 7
0xFFFFEAA8, // 1 5 4 6
0xFFFFEAA8, // 1 5 5 5
0xFFFFEAA8, // 1 5 6 4
0xFFFFEAA8, // 1 5 7 3
0xFFFFEAA8, // 1 5 8 2
0xFFFFEAA8, // 1 5 9 1
0x7FFFAAA8, // 1 6 0 9
0xFFFFAAA8, // 1 6 1 8
0xFFFFAAA8, // 1 6 2 7
0xFFFFAAA8, // 1 6 3 6
0xFFFFAAA8, // 1 6 4 5
0xFFFFAAA8, // 1 6 5 4
0xFFFFAAA8, // 1 6 6 3
0xFFFFAAA8, // 1 6 7 2
0xFFFFAAA8, // 1 6 8 1
0xFFFEAAA8, // 1 7 0 8
0xFFFEAAA8, // 1 7 1 7
0xFFFEAAA8, // 1 7 2 6
0xFFFEAAA8, // 1 7 3 5
0xFFFEAAA8, // 1 7 4 4
0xFFFEAAA8, // 1 7 5 3
0xFFFEAAA8, // 1 7 6 2
0xFFFEAAA8, // 1 7 7 1
0xFFFAAAA8, // 1 8 0 7
0xFFFAAAA8, // 1 8 1 6
0xFFFAAAA8, // 1 8 2 5
0xFFFAAAA8, // 1 8 3 4
0xFFFAAAA8, // 1 8 4 3
0xFFFAAAA8, // 1 8 5 2
0xFFFAAAA8, // 1 8 6 1
0xFFEAAAA8, // 1 9 0 6
0xFFEAAAA8, // 1 9 1 5
0xFFEAAAA8, // 1 9 2 4
0xFFEAAAA8, // 1 9 3 3
0xFFEAAAA8, // 1 9 4 2
0xFFEAAAA8, // 1 9 5 1
0xFFAAAAA8, // 1 10 0 5
0xFFAAAAA8, // 1 10 1 4
0xFFAAAAA8, // 1 10 2 3
0xFFAAAAA8, // 1 10 3 2
0xFFAAAAA8, // 1 10 4 1
0xFEAAAAA8, // 1 11 0 4
0xFEAAAAA8, // 1 11 1 3
0xFEAAAAA8, // 1 11 2 2
0xFEAAAAA8, // 1 11 3 1
0xFAAAAAA8, // 1 12 0 3
0xFAAAAAA8, // 1 12 1 2
0xFAAAAAA8, // 1 12 2 1
0xEAAAAAA8, // 1 13 0 2
0xEAAAAAA8, // 1 13 1 1
0xAAAAAAA8, // 1 14 0 1
0x55555FA0, // 2 0 0 14
0x55557FA0, // 2 0 1 13
0x5555FFA0, // 2 0 2 12
0x5557FFA0, // 2 0 3 11
0x555FFFA0, // 2 0 4 10
0x557FFFA0, // 2 0 5 9
0x55FFFFA0, // 2 0 6 8
0x57FFFFA0, // 2 0 7 7
0x5FFFFFA0, // 2 0 8 6
0x7FFFFFA0, // 2 0 9 5
0xFFFFFFA0, // 2 0 10 4
0xFFFFFFA0, // 2 0 11 3
0xFFFFFFA0, // 2 0 12 2
0xFFFFFFA0, // 2 0 13 1
0x5555FEA0, // 2 1 0 13
0x5557FEA0, // 2 1 1 12
0x555FFEA0, // 2 1 2 11
0x557FFEA0, // 2 1 3 10
0x55FFFEA0, // 2 1 4 9
0x57FFFEA0, // 2 1 5 8
0x5FFFFEA0, // 2 1 6 7
0x7FFFFEA0, // 2 1 7 6
0xFFFFFEA0, // 2 1 8 5
0xFFFFFEA0, // 2 1 9 4
0xFFFFFEA0, // 2 1 10 3
0xFFFFFEA0, // 2 1 11 2
0xFFFFFEA0, // 2 1 12 1
0x555FFAA0, // 2 2 0 12
0x557FFAA0, // 2 2 1 11
0x55FFFAA0, // 2 2 2 10
0x57FFFAA0, // 2 2 3 9
0x5FFFFAA0, // 2 2 4 8
0x7FFFFAA0, // 2 2 5 7
0xFFFFFAA0, // 2 2 6 6
0xFFFFFAA0, // 2 2 7 5
0xFFFFFAA0, // 2 2 8 4
0xFFFFFAA0, // 2 2 9 3
0xFFFFFAA0, // 2 2 10 2
0xFFFFFAA0, // 2 2 11 1
0x55FFEAA0, // 2 3 0 11
0x57FFEAA0, // 2 3 1 10
0x5FFFEAA0, // 2 3 2 9
0x7FFFEAA0, // 2 3 3 8
0xFFFFEAA0, // 2 3 4 7
0xFFFFEAA0, // 2 3 5 6
0xFFFFEAA0, // 2 3 6 5
0xFFFFEAA0, // 2 3 7 4
0xFFFFEAA0, // 2 3 8 3
0xFFFFEAA0, // 2 3 9 2
0xFFFFEAA0, // 2 3 10 1
0x5FFFAAA0, // 2 4 0 10
0x7FFFAAA0, // 2 4 1 9
0xFFFFAAA0, // 2 4 2 8
0xFFFFAAA0, // 2 4 3 7
0xFFFFAAA0, // 2 4 4 6
0xFFFFAAA0, // 2 4 5 5
0xFFFFAAA0, // 2 4 6 4
0xFFFFAAA0, // 2 4 7 3
0xFFFFAAA0, // 2 4 8 2
0xFFFFAAA0, // 2 4 9 1
0xFFFEAAA0, // 2 5 0 9
0xFFFEAAA0, // 2 5 1 8
0xFFFEAAA0, // 2 5 2 7
0xFFFEAAA0, // 2 5 3 6
0xFFFEAAA0, // 2 5 4 5
0xFFFEAAA0, // 2 5 5 4
0xFFFEAAA0, // 2 5 6 3
0xFFFEAAA0, // 2 5 7 2
0xFFFEAAA0, // 2 5 8 1
0xFFFAAAA0, // 2 6 0 8
0xFFFAAAA0, // 2 6 1 7
0xFFFAAAA0, // 2 6 2 6
0xFFFAAAA0, // 2 6 3 5
0xFFFAAAA0, // 2 6 4 4
0xFFFAAAA0, // 2 6 5 3
0xFFFAAAA0, // 2 6 6 2
0xFFFAAAA0, // 2 6 7 1
0xFFEAAAA0, // 2 7 0 7
0xFFEAAAA0, // 2 7 1 6
0xFFEAAAA0, // 2 7 2 5
0xFFEAAAA0, // 2 7 3 4
0xFFEAAAA0, // 2 7 4 3
0xFFEAAAA0, // 2 7 5 2
0xFFEAAAA0, // 2 7 6 1
0xFFAAAAA0, // 2 8 0 6
0xFFAAAAA0, // 2 8 1 5
0xFFAAAAA0, // 2 8 2 4
0xFFAAAAA0, // 2 8 3 3
0xFFAAAAA0, // 2 8 4 2
0xFFAAAAA0, // 2 8 5 1
0xFEAAAAA0, // 2 9 0 5
0xFEAAAAA0, // 2 9 1 4
0xFEAAAAA0, // 2 9 2 3
0xFEAAAAA0, // 2 9 3 2
0xFEAAAAA0, // 2 9 4 1
0xFAAAAAA0, // 2 10 0 4
0xFAAAAAA0, // 2 10 1 3
0xFAAAAAA0, // 2 10 2 2
0xFAAAAAA0, // 2 10 3 1
0xEAAAAAA0, // 2 11 0 3
0xEAAAAAA0, // 2 11 1 2
0xEAAAAAA0, // 2 11 2 1
0xAAAAAAA0, // 2 12 0 2
0xAAAAAAA0, // 2 12 1 1
0xAAAAAAA0, // 2 13 0 1
0x5557FA80, // 3 0 0 13
0x555FFA80, // 3 0 1 12
0x557FFA80, // 3 0 2 11
0x55FFFA80, // 3 0 3 10
0x57FFFA80, // 3 0 4 9
0x5FFFFA80, // 3 0 5 8
0x7FFFFA80, // 3 0 6 7
0xFFFFFA80, // 3 0 7 6
0xFFFFFA80, // 3 0 8 5
0xFFFFFA80, // 3 0 9 4
0xFFFFFA80, // 3 0 10 3
0xFFFFFA80, // 3 0 11 2
0xFFFFFA80, // 3 0 12 1
0x557FEA80, // 3 1 0 12
0x55FFEA80, // 3 1 1 11
0x57FFEA80, // 3 1 2 10
0x5FFFEA80, // 3 1 3 9
0x7FFFEA80, // 3 1 4 8
0xFFFFEA80, // 3 1 5 7
0xFFFFEA80, // 3 1 6 6
0xFFFFEA80, // 3 1 7 5
0xFFFFEA80, // 3 1 8 4
0xFFFFEA80, // 3 1 9 3
0xFFFFEA80, // 3 1 10 2
0xFFFFEA80, // 3 1 11 1
0x57FFAA80, // 3 2 0 11
0x5FFFAA80, // 3 2 1 10
0x7FFFAA80, // 3 2 2 9
0xFFFFAA80, // 3 2 3 8
0xFFFFAA80, // 3 2 4 7
0xFFFFAA80, // 3 2 5 6
0xFFFFAA80, // 3 2 6 5
0xFFFFAA80, // 3 2 7 4
0xFFFFAA80, // 3 2 8 3
0xFFFFAA80, // 3 2 9 2
0xFFFFAA80, // 3 2 10 1
0x7FFEAA80, // 3 3 0 10
0xFFFEAA80, // 3 3 1 9
0xFFFEAA80, // 3 3 2 8
0xFFFEAA80, // 3 3 3 7
0xFFFEAA80, // 3 3 4 6
0xFFFEAA80, // 3 3 5 5
0xFFFEAA80, // 3 3 6 4
0xFFFEAA80, // 3 3 7 3
0xFFFEAA80, // 3 3 8 2
0xFFFEAA80, // 3 3 9 1
0xFFFAAA80, // 3 4 0 9
0xFFFAAA80, // 3 4 1 8
0xFFFAAA80, // 3 4 2 7
0xFFFAAA80, // 3 4 3 6
0xFFFAAA80, // 3 4 4 5
0xFFFAAA80, // 3 4 5 4
0xFFFAAA80, // 3 4 6 3
0xFFFAAA80, // 3 4 7 2
0xFFFAAA80, // 3 4 8 1
0xFFEAAA80, // 3 5 0 8
0xFFEAAA80, // 3 5 1 7
0xFFEAAA80, // 3 5 2 6
0xFFEAAA80, // 3 5 3 5
0xFFEAAA80, // 3 5 4 4
0xFFEAAA80, // 3 5 5 3
0xFFEAAA80, // 3 5 6 2
0xFFEAAA80, // 3 5 7 1
0xFFAAAA80, // 3 6 0 7
0xFFAAAA80, // 3 6 1 6
0xFFAAAA80, // 3 6 2 5
0xFFAAAA80, // 3 6 3 4
0xFFAAAA80, // 3 6 4 3
0xFFAAAA80, // 3 6 5 2
0xFFAAAA80, // 3 6 6 1
0xFEAAAA80, // 3 7 0 6
0xFEAAAA80, // 3 7 1 5
0xFEAAAA80, // 3 7 2 4
0xFEAAAA80, // 3 7 3 3
0xFEAAAA80, // 3 7 4 2
0xFEAAAA80, // 3 7 5 1
0xFAAAAA80, // 3 8 0 5
0xFAAAAA80, // 3 8 1 4
0xFAAAAA80, // 3 8 2 3
0xFAAAAA80, // 3 8 3 2
0xFAAAAA80, // 3 8 4 1
0xEAAAAA80, // 3 9 0 4
0xEAAAAA80, // 3 9 1 3
0xEAAAAA80, // 3 9 2 2
0xEAAAAA80, // 3 9 3 1
0xAAAAAA80, // 3 10 0 3
0xAAAAAA80, // 3 10 1 2
0xAAAAAA80, // 3 10 2 1
0xAAAAAA80, // 3 11 0 2
0xAAAAAA80, // 3 11 1 1
0xAAAAAA80, // 3 12 0 1
0x55FFAA00, // 4 0 0 12
0x57FFAA00, // 4 0 1 11
0x5FFFAA00, // 4 0 2 10
0x7FFFAA00, // 4 0 3 9
0xFFFFAA00, // 4 0 4 8
0xFFFFAA00, // 4 0 5 7
0xFFFFAA00, // 4 0 6 6
0xFFFFAA00, // 4 0 7 5
0xFFFFAA00, // 4 0 8 4
0xFFFFAA00, // 4 0 9 3
0xFFFFAA00, // 4 0 10 2
0xFFFFAA00, // 4 0 11 1
0x5FFEAA00, // 4 1 0 11
0x7FFEAA00, // 4 1 1 10
0xFFFEAA00, // 4 1 2 9
0xFFFEAA00, // 4 1 3 8
0xFFFEAA00, // 4 1 4 7
0xFFFEAA00, // 4 1 5 6
0xFFFEAA00, // 4 1 6 5
0xFFFEAA00, // 4 1 7 4
0xFFFEAA00, // 4 1 8 3
0xFFFEAA00, // 4 1 9 2
0xFFFEAA00, // 4 1 10 1
0xFFFAAA00, // 4 2 0 10
0xFFFAAA00, // 4 2 1 9
0xFFFAAA00, // 4 2 2 8
0xFFFAAA00, // 4 2 3 7
0xFFFAAA00, // 4 2 4 6
0xFFFAAA00, // 4 2 5 5
0xFFFAAA00, // 4 2 6 4
0xFFFAAA00, // 4 2 7 3
0xFFFAAA00, // 4 2 8 2
0xFFFAAA00, // 4 2 9 1
0xFFEAAA00, // 4 3 0 9
0xFFEAAA00, // 4 3 1 8
0xFFEAAA00, // 4 3 2 7
0xFFEAAA00, // 4 3 3 6
0xFFEAAA00, // 4 3 4 5
0xFFEAAA00, // 4 3 5 4
0xFFEAAA00, // 4 3 6 3
0xFFEAAA00, // 4 3 7 2
0xFFEAAA00, // 4 3 8 1
0xFFAAAA00, // 4 4 0 8
0xFFAAAA00, // 4 4 1 7
0xFFAAAA00, // 4 4 2 6
0xFFAAAA00, // 4 4 3 5
0xFFAAAA00, // 4 4 4 4
0xFFAAAA00, // 4 4 5 3
0xFFAAAA00, // 4 4 6 2
0xFFAAAA00, // 4 4 7 1
0xFEAAAA00, // 4 5 0 7
0xFEAAAA00, // 4 5 1 6
0xFEAAAA00, // 4 5 2 5
0xFEAAAA00, // 4 5 3 4
0xFEAAAA00, // 4 5 4 3
0xFEAAAA00, // 4 5 5 2
0xFEAAAA00, // 4 5 6 1
0xFAAAAA00, // 4 6 0 6
0xFAAAAA00, // 4 6 1 5
0xFAAAAA00, // 4 6 2 4
0xFAAAAA00, // 4 6 3 3
0xFAAAAA00, // 4 6 4 2
0xFAAAAA00, // 4 6 5 1
0xEAAAAA00, // 4 7 0 5
0xEAAAAA00, // 4 7 1 4
0xEAAAAA00, // 4 7 2 3
0xEAAAAA00, // 4 7 3 2
0xEAAAAA00, // 4 7 4 1
0xAAAAAA00, // 4 8 0 4
0xAAAAAA00, // 4 8 1 3
0xAAAAAA00, // 4 8 2 2
0xAAAAAA00, // 4 8 3 1
0xAAAAAA00, // 4 9 0 3
0xAAAAAA00, // 4 9 1 2
0xAAAAAA00, // 4 9 2 1
0xAAAAAA00, // 4 10 0 2
0xAAAAAA00, // 4 10 1 1
0xAAAAAA00, // 4 11 0 1
0x7FFAA800, // 5 0 0 11
0xFFFAA800, // 5 0 1 10
0xFFFAA800, // 5 0 2 9
0xFFFAA800, // 5 0 3 8
0xFFFAA800, // 5 0 4 7
0xFFFAA800, // 5 0 5 6
0xFFFAA800, // 5 0 6 5
0xFFFAA800, // 5 0 7 4
0xFFFAA800, // 5 0 8 3
0xFFFAA800, // 5 0 9 2
0xFFFAA800, // 5 0 10 1
0xFFEAA800, // 5 1 0 10
0xFFEAA800, // 5 1 1 9
0xFFEAA800, // 5 1 2 8
0xFFEAA800, // 5 1 3 7
0xFFEAA800, // 5 1 4 6
0xFFEAA800, // 5 1 5 5
0xFFEAA800, // 5 1 6 4
0xFFEAA800, // 5 1 7 3
0xFFEAA800, // 5 1 8 2
0xFFEAA800, // 5 1 9 1
0xFFAAA800, // 5 2 0 9
0xFFAAA800, // 5 2 1 8
0xFFAAA800, // 5 2 2 7
0xFFAAA800, // 5 2 3 6
0xFFAAA800, // 5 2 4 5
0xFFAAA800, // 5 2 5 4
0xFFAAA800, // 5 2 6 3
0xFFAAA800, // 5 2 7 2
0xFFAAA800, // 5 2 8 1
0xFEAAA800, // 5 3 0 8
0xFEAAA800, // 5 3 1 7
0xFEAAA800, // 5 3 2 6
0xFEAAA800, // 5 3 3 5
0xFEAAA800, // 5 3 4 4
0xFEAAA800, // 5 3 5 3
0xFEAAA800, // 5 3 6 2
0xFEAAA800, // 5 3 7 1
0xFAAAA800, // 5 4 0 7
0xFAAAA800, // 5 4 1 6
0xFAAAA800, // 5 4 2 5
0xFAAAA800, // 5 4 3 4
0xFAAAA800, // 5 4 4 3
0xFAAAA800, // 5 4 5 2
0xFAAAA800, // 5 4 6 1
0xEAAAA800, // 5 5 0 6
0xEAAAA800, // 5 5 1 5
0xEAAAA800, // 5 5 2 4
0xEAAAA800, // 5 5 3 3
0xEAAAA800, // 5 5 4 2
0xEAAAA800, // 5 5 5 1
0xAAAAA800, // 5 6 0 5
0xAAAAA800, // 5 6 1 4
0xAAAAA800, // 5 6 2 3
0xAAAAA800, // 5 6 3 2
0xAAAAA800, // 5 6 4 1
0xAAAAA800, // 5 7 0 4
0xAAAAA800, // 5 7 1 3
0xAAAAA800, // 5 7 2 2
0xAAAAA800, // 5 7 3 1
0xAAAAA800, // 5 8 0 3
0xAAAAA800, // 5 8 1 2
0xAAAAA800, // 5 8 2 1
0xAAAAA800, // 5 9 0 2
0xAAAAA800, // 5 9 1 1
0xAAAAA800, // 5 10 0 1
0xFFAAA000, // 6 0 0 10
0xFFAAA000, // 6 0 1 9
0xFFAAA000, // 6 0 2 8
0xFFAAA000, // 6 0 3 7
0xFFAAA000, // 6 0 4 6
0xFFAAA000, // 6 0 5 5
0xFFAAA000, // 6 0 6 4
0xFFAAA000, // 6 0 7 3
0xFFAAA000, // 6 0 8 2
0xFFAAA000, // 6 0 9 1
0xFEAAA000, // 6 1 0 9
0xFEAAA000, // 6 1 1 8
0xFEAAA000, // 6 1 2 7
0xFEAAA000, // 6 1 3 6
0xFEAAA000, // 6 1 4 5
0xFEAAA000, // 6 1 5 4
0xFEAAA000, // 6 1 6 3
0xFEAAA000, // 6 1 7 2
0xFEAAA000, // 6 1 8 1
0xFAAAA000, // 6 2 0 8
0xFAAAA000, // 6 2 1 7
0xFAAAA000, // 6 2 2 6
0xFAAAA000, // 6 2 3 5
0xFAAAA000, // 6 2 4 4
0xFAAAA000, // 6 2 5 3
0xFAAAA000, // 6 2 6 2
0xFAAAA000, // 6 2 7 1
0xEAAAA000, // 6 3 0 7
0xEAAAA000, // 6 3 1 6
0xEAAAA000, // 6 3 2 5
0xEAAAA000, // 6 3 3 4
0xEAAAA000, // 6 3 4 3
0xEAAAA000, // 6 3 5 2
0xEAAAA000, // 6 3 6 1
0xAAAAA000, // 6 4 0 6
0xAAAAA000, // 6 4 1 5
0xAAAAA000, // 6 4 2 4
0xAAAAA000, // 6 4 3 3
0xAAAAA000, // 6 4 4 2
0xAAAAA000, // 6 4 5 1
0xAAAAA000, // 6 5 0 5
0xAAAAA000, // 6 5 1 4
0xAAAAA000, // 6 5 2 3
0xAAAAA000, // 6 5 3 2
0xAAAAA000, // 6 5 4 1
0xAAAAA000, // 6 6 0 4
0xAAAAA000, // 6 6 1 3
0xAAAAA000, // 6 6 2 2
0xAAAAA000, // 6 6 3 1
0xAAAAA000, // 6 7 0 3
0xAAAAA000, // 6 7 1 2
0xAAAAA000, // 6 7 2 1
0xAAAAA000, // 6 8 0 2
0xAAAAA000, // 6 8 1 1
0xAAAAA000, // 6 9 0 1
0xFAAA8000, // 7 0 0 9
0xFAAA8000, // 7 0 1 8
0xFAAA8000, // 7 0 2 7
0xFAAA8000, // 7 0 3 6
0xFAAA8000, // 7 0 4 5
0xFAAA8000, // 7 0 5 4
0xFAAA8000, // 7 0 6 3
0xFAAA8000, // 7 0 7 2
0xFAAA8000, // 7 0 8 1
0xEAAA8000, // 7 1 0 8
0xEAAA8000, // 7 1 1 7
0xEAAA8000, // 7 1 2 6
0xEAAA8000, // 7 1 3 5
0xEAAA8000, // 7 1 4 4
0xEAAA8000, // 7 1 5 3
0xEAAA8000, // 7 1 6 2
0xEAAA8000, // 7 1 7 1
0xAAAA8000, // 7 2 0 7
0xAAAA8000, // 7 2 1 6
0xAAAA8000, // 7 2 2 5
0xAAAA8000, // 7 2 3 4
0xAAAA8000, // 7 2 4 3
0xAAAA8000, // 7 2 5 2
0xAAAA8000, // 7 2 6 1
0xAAAA8000, // 7 3 0 6
0xAAAA8000, // 7 3 1 5
0xAAAA8000, // 7 3 2 4
0xAAAA8000, // 7 3 3 3
0xAAAA8000, // 7 3 4 2
0xAAAA8000, // 7 3 5 1
0xAAAA8000, // 7 4 0 5
0xAAAA8000, // 7 4 1 4
0xAAAA8000, // 7 4 2 3
0xAAAA8000, // 7 4 3 2
0xAAAA8000, // 7 4 4 1
0xAAAA8000, // 7 5 0 4
0xAAAA8000, // 7 5 1 3
0xAAAA8000, // 7 5 2 2
0xAAAA8000, // 7 5 3 1
0xAAAA8000, // 7 6 0 3
0xAAAA8000, // 7 6 1 2
0xAAAA8000, // 7 6 2 1
0xAAAA8000, // 7 7 0 2
0xAAAA8000, // 7 7 1 1
0xAAAA8000, // 7 8 0 1
0xAAAA0000, // 8 0 0 8
0xAAAA0000, // 8 0 1 7
0xAAAA0000, // 8 0 2 6
0xAAAA0000, // 8 0 3 5
0xAAAA0000, // 8 0 4 4
0xAAAA0000, // 8 0 5 3
0xAAAA0000, // 8 0 6 2
0xAAAA0000, // 8 0 7 1
0xAAAA0000, // 8 1 0 7
0xAAAA0000, // 8 1 1 6
0xAAAA0000, // 8 1 2 5
0xAAAA0000, // 8 1 3 4
0xAAAA0000, // 8 1 4 3
0xAAAA0000, // 8 1 5 2
0xAAAA0000, // 8 1 6 1
0xAAAA0000, // 8 2 0 6
0xAAAA0000, // 8 2 1 5
0xAAAA0000, // 8 2 2 4
0xAAAA0000, // 8 2 3 3
0xAAAA0000, // 8 2 4 2
0xAAAA0000, // 8 2 5 1
0xAAAA0000, // 8 3 0 5
0xAAAA0000, // 8 3 1 4
0xAAAA0000, // 8 3 2 3
0xAAAA0000, // 8 3 3 2
0xAAAA0000, // 8 3 4 1
0xAAAA0000, // 8 4 0 4
0xAAAA0000, // 8 4 1 3
0xAAAA0000, // 8 4 2 2
0xAAAA0000, // 8 4 3 1
0xAAAA0000, // 8 5 0 3
0xAAAA0000, // 8 5 1 2
0xAAAA0000, // 8 5 2 1
0xAAAA0000, // 8 6 0 2
0xAAAA0000, // 8 6 1 1
0xAAAA0000, // 8 7 0 1
0xAAA80000, // 9 0 0 7
0xAAA80000, // 9 0 1 6
0xAAA80000, // 9 0 2 5
0xAAA80000, // 9 0 3 4
0xAAA80000, // 9 0 4 3
0xAAA80000, // 9 0 5 2
0xAAA80000, // 9 0 6 1
0xAAA80000, // 9 1 0 6
0xAAA80000, // 9 1 1 5
0xAAA80000, // 9 1 2 4
0xAAA80000, // 9 1 3 3
0xAAA80000, // 9 1 4 2
0xAAA80000, // 9 1 5 1
0xAAA80000, // 9 2 0 5
0xAAA80000, // 9 2 1 4
0xAAA80000, // 9 2 2 3
0xAAA80000, // 9 2 3 2
0xAAA80000, // 9 2 4 1
0xAAA80000, // 9 3 0 4
0xAAA80000, // 9 3 1 3
0xAAA80000, // 9 3 2 2
0xAAA80000, // 9 3 3 1
0xAAA80000, // 9 4 0 3
0xAAA80000, // 9 4 1 2
0xAAA80000, // 9 4 2 1
0xAAA80000, // 9 5 0 2
0xAAA80000, // 9 5 1 1
0xAAA80000, // 9 6 0 1
0xAAA00000, // 10 0 0 6
0xAAA00000, // 10 0 1 5
0xAAA00000, // 10 0 2 4
0xAAA00000, // 10 0 3 3
0xAAA00000, // 10 0 4 2
0xAAA00000, // 10 0 5 1
0xAAA00000, // 10 1 0 5
0xAAA00000, // 10 1 1 4
0xAAA00000, // 10 1 2 3
0xAAA00000, // 10 1 3 2
0xAAA00000, // 10 1 4 1
0xAAA00000, // 10 2 0 4
0xAAA00000, // 10 2 1 3
0xAAA00000, // 10 2 2 2
0xAAA00000, // 10 2 3 1
0xAAA00000, // 10 3 0 3
0xAAA00000, // 10 3 1 2
0xAAA00000, // 10 3 2 1
0xAAA00000, // 10 4 0 2
0xAAA00000, // 10 4 1 1
0xAAA00000, // 10 5 0 1
0xAA800000, // 11 0 0 5
0xAA800000, // 11 0 1 4
0xAA800000, // 11 0 2 3
0xAA800000, // 11 0 3 2
0xAA800000, // 11 0 4 1
0xAA800000, // 11 1 0 4
0xAA800000, // 11 1 1 3
0xAA800000, // 11 1 2 2
0xAA800000, // 11 1 3 1
0xAA800000, // 11 2 0 3
0xAA800000, // 11 2 1 2
0xAA800000, // 11 2 2 1
0xAA800000, // 11 3 0 2
0xAA800000, // 11 3 1 1
0xAA800000, // 11 4 0 1
0xAA000000, // 12 0 0 4
0xAA000000, // 12 0 1 3
0xAA000000, // 12 0 2 2
0xAA000000, // 12 0 3 1
0xAA000000, // 12 1 0 3
0xAA000000, // 12 1 1 2
0xAA000000, // 12 1 2 1
0xAA000000, // 12 2 0 2
0xAA000000, // 12 2 1 1
0xAA000000, // 12 3 0 1
0xA8000000, // 13 0 0 3
0xA8000000, // 13 0 1 2
0xA8000000, // 13 0 2 1
0xA8000000, // 13 1 0 2
0xA8000000, // 13 1 1 1
0xA8000000, // 13 2 0 1
0xA0000000, // 14 0 0 2
0xA0000000, // 14 0 1 1
0xA0000000, // 14 1 0 1
0x80000000, // 15 0 0 1
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
0x80000000,
};