summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BitB.py132
-rw-r--r--bb.py39
-rw-r--r--bitchess.py942
-rw-r--r--bitmasks.py246
-rw-r--r--bitmasks.txt603
-rw-r--r--chess.py1033
-rw-r--r--chess_manual.txt30
-rw-r--r--chessconf.py220
-rw-r--r--gen_piece_move_tables.py285
-rw-r--r--loading_animation.py27
-rw-r--r--magic_machine.py37
-rw-r--r--piece_move_tables.py4120
12 files changed, 7714 insertions, 0 deletions
diff --git a/BitB.py b/BitB.py
new file mode 100644
index 0000000..5bba199
--- /dev/null
+++ b/BitB.py
@@ -0,0 +1,132 @@
+import piece_move_tables
+import typing
+
+bb = {
+ 'P': 0x00FF_0000_0000_0000,
+ 'R': 0x8100_0000_0000_0000,
+ 'N': 0x4200_0000_0000_0000,
+ 'B': 0x2400_0000_0000_0000,
+ 'Q': 0x0800_0000_0008_0000,
+ 'K': 0x1000_0000_0000_0000,
+
+ 'p': 0x0000_0000_0000_FF00,
+ 'r': 0x0000_0000_0000_0081,
+ 'n': 0x0000_0000_0000_0042,
+ 'b': 0x0000_0000_0000_0024,
+ 'q': 0x0000_0000_0000_0008,
+ 'k': 0x0000_0000_0000_0010,
+
+ 'ep': 0x0000_0000_0000_0000,
+ }
+
+def render_hex(hex_val: int) -> None:
+ if not isinstance(hex_val, int):
+ raise ValueError('Input must be integer.')
+ if hex_val > 0xFFFF_FFFF_FFFF_FFFF:
+ raise ValueError('Input hexadecimal value is too large, must be 64 bits or less.')
+ binary_value = bin(hex_val)[2:].zfill(64)
+ print('\n', end = '')
+ for i in range(0, 64, 8):
+ print(*['\x1b[47m' + bit + '\x1b[0m' if bit == '1' else bit for bit in binary_value[i:i+8]])
+
+def bit_not(bm: int) -> int:
+ return bm ^ 0xFFFF_FFFF_FFFF_FFFF
+
+def get_bit(bm: int, idx: int) -> int:
+ return bm & 1 << idx
+
+def set_bit(bm: int, idx: int) -> int:
+ return bm | 1 << idx
+
+def rm_bit(bm: int, idx: int) -> int:
+ return bm & bit_not(1 << idx)
+
+def switch_bit(bm: int, *idxs: int) -> int:
+ for idx in idxs:
+ bm ^= 1 << idx
+ return bm
+
+def count_trailing_zeros(bm: int) -> int:
+ return (bm & -bm).bit_length() - 1
+
+def w_pcs() -> int:
+ return bb['P'] | bb['R'] | bb['N'] | bb['B'] | bb['Q'] | bb['Q']
+
+def b_pcs() -> int:
+ return bb['p'] | bb['r'] | bb['n'] | bb['b'] | bb['q'] | bb['k']
+
+def all_pcs() -> int:
+ return w_pcs() ^ b_pcs()
+
+def R_mvs(idx: int) -> int:
+ all_pieces = all_pcs()
+ left = piece_move_tables.L_MASK[idx][all_pieces & piece_move_tables.L_BORDER_MASK[idx]]
+ right = piece_move_tables.R_MASK[idx][all_pieces & piece_move_tables.R_BORDER_MASK[idx]]
+ up = piece_move_tables.U_MASK[idx][all_pieces & piece_move_tables.U_BORDER_MASK[idx]]
+ down = piece_move_tables.D_MASK[idx][all_pieces & piece_move_tables.D_BORDER_MASK[idx]]
+ return (left | right | up | down) & bit_not(w_pcs())
+
+def N_mvs(idx) -> int:
+ return piece_move_tables.N_MASK[idx] & bit_not(w_pcs())
+
+def B_mvs(idx: int) -> int:
+ all_pieces = all_pcs()
+ left_up = piece_move_tables.LU_MASK[idx][all_pieces & piece_move_tables.LU_BORDER_MASK[idx]]
+ left_down = piece_move_tables.LD_MASK[idx][all_pieces & piece_move_tables.LD_BORDER_MASK[idx]]
+ right_up = piece_move_tables.RU_MASK[idx][all_pieces & piece_move_tables.RU_BORDER_MASK[idx]]
+ right_down = piece_move_tables.RD_MASK[idx][all_pieces & piece_move_tables.RD_BORDER_MASK[idx]]
+ return (left_up | left_down | right_up | right_down) & bit_not(w_pcs())
+
+def Q_mvs(idx: int) -> int:
+ return R_mvs(idx) | B_mvs(idx)
+
+def K_mvs(idx: int) -> int:
+ return piece_move_tables.K_MASK[idx] & bit_not(w_pcs())
+
+def P_mvs(idx: int) -> int:
+ return piece_move_tables.WP_PUSH_MASK[idx] & bit_not(all_pcs()) | piece_move_tables.WP_LEFT_TAKE_MASK[idx] | piece_move_tables.WP_RIGHT_TAKE_MASK[idx] & b_pcs()
+
+def r_mvs(idx: int) -> int:
+ all_pieces = all_pcs()
+ left = piece_move_tables.L_MASK[idx][all_pieces & piece_move_tables.L_BORDER_MASK[idx]]
+ right = piece_move_tables.R_MASK[idx][all_pieces & piece_move_tables.R_BORDER_MASK[idx]]
+ up = piece_move_tables.U_MASK[idx][all_pieces & piece_move_tables.U_BORDER_MASK[idx]]
+ down = piece_move_tables.D_MASK[idx][all_pieces & piece_move_tables.D_BORDER_MASK[idx]]
+ return (left | right | up | down) & bit_not(b_pcs())
+
+def n_mvs(idx: int) -> int:
+ return piece_move_tables.N_MASK[idx] & bit_not(b_pcs())
+
+def b_mvs(idx: int) -> int:
+ all_pieces = all_pcs()
+ left_up = piece_move_tables.LU_MASK[idx][all_pieces & piece_move_tables.LU_BORDER_MASK[idx]]
+ left_down = piece_move_tables.LD_MASK[idx][all_pieces & piece_move_tables.LD_BORDER_MASK[idx]]
+ right_up = piece_move_tables.RU_MASK[idx][all_pieces & piece_move_tables.RU_BORDER_MASK[idx]]
+ right_down = piece_move_tables.RD_MASK[idx][all_pieces & piece_move_tables.RD_BORDER_MASK[idx]]
+ return (left_up | left_down | right_up | right_down) & bit_not(b_pcs())
+
+def q_mvs(idx: int) -> int:
+ return r_mvs(idx) | b_mvs(idx)
+
+def k_mvs(idx: int) -> int:
+ return piece_move_tables.K_MASK[idx] & bit_not(b_pcs())
+
+def p_mvs(idx) -> int:
+ return piece_move_tables.BP_PUSH_MASK[idx] & bit_not(all_pcs()) | piece_move_tables.BP_LEFT_TAKE_MASK[idx] | piece_move_tables.BP_RIGHT_TAKE_MASK[idx] & w_pcs()
+
+def ver_mirr(bm: int) -> int:
+ return (bm & 0x8080_8080_8080_8080) >> 7 | (bm & 0x4040_4040_4040_4040) >> 5 | (bm & 0x2020_2020_2020_2020) >> 3 | (bm & 0x1010_1010_1010_1010) >> 1 | (bm & 0x0808_0808_0808_0808) << 1 | (bm & 0x0404_0404_0404_0404) << 3 | (bm & 0x0202_0202_0202_0202) << 5 | (bm & 0x0101_0101_0101_0101) << 7
+
+def hor_mirr(bm: int) -> int:
+ return (bm & 0xFF00_0000_0000_0000) >> 56 | (bm & 0x00FF_0000_0000_0000) >> 40 | (bm & 0x0000_FF00_0000_0000) >> 24 | (bm & 0x0000_00FF_0000_0000) >> 8 | (bm & 0x0000_0000_FF00_0000) << 8 | (bm & 0x0000_0000_00FF_0000) << 24 | (bm & 0x0000_0000_0000_FF00) << 40 | (bm & 0x0000_0000_0000_00FF) << 56
+
+def bits(bm: int) -> typing.Generator[int, int, None]:
+ for idx in range(64):
+ if bm & 1 << idx:
+ yield 1 << idx
+
+render_hex(1 << 33)
+render_hex(R_mvs(33))
+
+render_hex(1 << 44)
+render_hex(Q_mvs(44)) \ No newline at end of file
diff --git a/bb.py b/bb.py
new file mode 100644
index 0000000..dcc82fb
--- /dev/null
+++ b/bb.py
@@ -0,0 +1,39 @@
+SQR_MASK = (
+ 0x8000_0000_0000_0000, 0x4000_0000_0000_0000, 0x2000_0000_0000_0000, 0x1000_0000_0000_0000, 0x0800_0000_0000_0000, 0x0400_0000_0000_0000, 0x0200_0000_0000_0000, 0x0100_0000_0000_0000,
+ 0x0080_0000_0000_0000, 0x0040_0000_0000_0000, 0x0020_0000_0000_0000, 0x0010_0000_0000_0000, 0x0008_0000_0000_0000, 0x0004_0000_0000_0000, 0x0002_0000_0000_0000, 0x0001_0000_0000_0000,
+ 0x0000_8000_0000_0000, 0x0000_4000_0000_0000, 0x0000_2000_0000_0000, 0x0000_1000_0000_0000, 0x0000_0800_0000_0000, 0x0000_0400_0000_0000, 0x0000_0200_0000_0000, 0x0000_0100_0000_0000,
+ 0x0000_0080_0000_0000, 0x0000_0040_0000_0000, 0x0000_0020_0000_0000, 0x0000_0010_0000_0000, 0x0000_0008_0000_0000, 0x0000_0004_0000_0000, 0x0000_0002_0000_0000, 0x0000_0001_0000_0000,
+ 0x0000_0000_8000_0000, 0x0000_0000_4000_0000, 0x0000_0000_2000_0000, 0x0000_0000_1000_0000, 0x0000_0000_0800_0000, 0x0000_0000_0400_0000, 0x0000_0000_0200_0000, 0x0000_0000_0100_0000,
+ 0x0000_0000_0080_0000, 0x0000_0000_0040_0000, 0x0000_0000_0020_0000, 0x0000_0000_0010_0000, 0x0000_0000_0008_0000, 0x0000_0000_0004_0000, 0x0000_0000_0002_0000, 0x0000_0000_0001_0000,
+ 0x0000_0000_0000_8000, 0x0000_0000_0000_4000, 0x0000_0000_0000_2000, 0x0000_0000_0000_1000, 0x0000_0000_0000_0800, 0x0000_0000_0000_0400, 0x0000_0000_0000_0200, 0x0000_0000_0000_0100,
+ 0x0000_0000_0000_0080, 0x0000_0000_0000_0040, 0x0000_0000_0000_0020, 0x0000_0000_0000_0010, 0x0000_0000_0000_0008, 0x0000_0000_0000_0004, 0x0000_0000_0000_0002, 0x0000_0000_0000_0001)
+
+def render_hex(hex_val: int) -> None:
+ if not isinstance(hex_val, int):
+ raise ValueError('Input must be integer.')
+ if hex_val > 0xFFFF_FFFF_FFFF_FFFF:
+ raise ValueError('Input hexadecimal value is too large, must be 64 bits or less.')
+ binary_value = bin(hex_val)[2:].zfill(64)
+ print('\n', end = '')
+ for i in range(0, 64, 8):
+ print(*['\x1b[47m' + bit + '\x1b[0m' if bit == '1' else bit for bit in binary_value[i:i+8]])
+
+def switch_bit(bm: int, *idxs: int) -> int:
+ for idx in idxs:
+ bm ^= SQR_MASK[idx]
+ return bm
+
+bm = 0x8080_8080_8080_8080
+render_hex(bm)
+
+new_bm = switch_bit(bm)
+render_hex(new_bm)
+
+def turn_90_clockw(bm: int) -> int:
+ return (bm & 0x0)
+
+num = 0x110
+render_hex(num)
+newnum = num // 0x4
+render_hex(newnum)
+print(newnum) \ No newline at end of file
diff --git a/bitchess.py b/bitchess.py
new file mode 100644
index 0000000..3f600ad
--- /dev/null
+++ b/bitchess.py
@@ -0,0 +1,942 @@
+import chessconf
+from random import choice, choices
+from copy import deepcopy
+from subprocess import Popen, PIPE
+
+move_struct = tuple[tuple[int, int, str], tuple[int, int, str]] | tuple[tuple[int, int, str], tuple[int, int, str], tuple[int, int, str]] | tuple[tuple[int, int, str], tuple[int, int, str], tuple[int, int, str], tuple[int, int, str]]
+board_struct = tuple[list[str], list[str], list[str], list[str], list[str], list[str], list[str], list[str]]
+
+ICON = {
+ 'K': chessconf.WHITECOLOR + chessconf.WHITE_KING_ICON + '\x1b[0m',
+ 'Q': chessconf.WHITECOLOR + chessconf.WHITE_QUEEN_ICON + '\x1b[0m',
+ 'R': chessconf.WHITECOLOR + chessconf.WHITE_ROOK_ICON + '\x1b[0m',
+ 'B': chessconf.WHITECOLOR + chessconf.WHITE_BISHOP_ICON + '\x1b[0m',
+ 'N': chessconf.WHITECOLOR + chessconf.WHITE_KNIGHT_ICON + '\x1b[0m',
+ 'P': chessconf.WHITECOLOR + chessconf.WHITE_PAWN_ICON + '\x1b[0m',
+ '.': chessconf.SPACECOLOR + chessconf.SPACE_ICON + '\x1b[0m',
+ 'k': chessconf.BLACKCOLOR + chessconf.BLACK_KING_ICON + '\x1b[0m',
+ 'q': chessconf.BLACKCOLOR + chessconf.BLACK_QUEEN_ICON + '\x1b[0m',
+ 'r': chessconf.BLACKCOLOR + chessconf.BLACK_ROOK_ICON + '\x1b[0m',
+ 'b': chessconf.BLACKCOLOR + chessconf.BLACK_BISHOP_ICON + '\x1b[0m',
+ 'n': chessconf.BLACKCOLOR + chessconf.BLACK_KNIGHT_ICON + '\x1b[0m',
+ 'p': chessconf.BLACKCOLOR + chessconf.BLACK_PAWN_ICON + '\x1b[0m'}
+
+INT_TO_ALPH = {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'g', 7: 'h'}
+ALPH_TO_INT = {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4, 'f': 5, 'g': 6, 'h': 7}
+INT_TO_NUM = {0: '8', 1: '7', 2: '6', 3: '5', 4: '4', 5: '3', 6: '2', 7: '1'}
+NUM_TO_INT = {'8': 0, '7': 1, '6': 2, '5': 3, '4': 4, '3': 5, '2': 6, '1': 7}
+
+COLORWHITE = {'R': 'R', 'N': 'N', 'B': 'B', 'K': 'K', 'Q': 'Q', 'P': 'P', 'r': 'R', 'n': 'N', 'b': 'B', 'k': 'K', 'q': 'Q', 'p': 'P'}
+COLORBLACK = {'R': 'r', 'N': 'n', 'B': 'b', 'K': 'k', 'Q': 'q', 'P': 'p', 'r': 'r', 'n': 'n', 'b': 'b', 'k': 'k', 'q': 'q', 'p': 'p'}
+WHITEPIECES, BLACKPIECES = {'R', 'N', 'B', 'Q', 'K', 'P'}, {'r', 'n', 'b', 'q', 'k', 'p'}
+
+def render_hex(hex_val: int) -> None:
+ if not isinstance(hex_val, int):
+ raise ValueError('Input must be a string or an integer.')
+ if hex_val > 0xFFFFFFFFFFFFFFFF:
+ raise ValueError('Input hexadecimal value is too large, must be 64 bits or less.')
+ binary_value = bin(hex_val)[2:].zfill(64)
+ print('\n', end = '')
+ for i in range(0, 64, 8):
+ print(*['\x1b[47m' + bit + '\x1b[0m' if bit == '1' else bit for bit in binary_value[i:i+8]])
+
+def invert(b):
+ return b ^ 0xFFFFFFFFFFFFFFFF
+
+class Board():
+ def __init__(self, white: bool = True) -> None:
+ self.pos: board_struct = (
+ ['r', 'n', 'b', 'q', 'k', 'b', 'n', 'r'],
+ ['p', 'p', 'p', 'p', 'p', 'p', 'p', 'p'],
+ ['.', '.', '.', '.', '.', '.', '.', '.'],
+ ['.', '.', '.', '.', '.', '.', '.', '.'],
+ ['.', '.', '.', '.', '.', '.', '.', '.'],
+ ['.', '.', '.', '.', '.', '.', '.', '.'],
+ ['P', 'P', 'P', 'P', 'P', 'P', 'P', 'P'],
+ ['R', 'N', 'B', 'Q', 'K', 'B', 'N', 'R'])
+
+ self.player_color, self.white = True, white
+ self.hist, self.pos_hist = [], [deepcopy(self.pos)]
+ self.half_move_ctr, self.fifty_move_ctr = 0, 0
+ self.w_short_castling, self.w_long_castling, self.b_short_castling, self.b_long_castling = True, True, True, True
+ self.ep_sqr = None
+ self.board_turned = False
+ self.asked_draw = False
+ self.bb = {
+ 'p': 0x00FF000000000000,
+ 'r': 0x8100000000000000,
+ 'n': 0x4200000000000000,
+ 'b': 0x2400000000000000,
+ 'q': 0x1000000000000000,
+ 'k': 0x0800000000000000,
+ 'P': 0x000000000000FF00,
+ 'R': 0x0000000000000081,
+ 'N': 0x0000000000000042,
+ 'B': 0x0000000000000024,
+ 'Q': 0x0000000000000010,
+ 'K': 0x0000000000000008}
+
+ def bb_black(self):
+ return self.bb['p'] | self.bb['r'] | self.bb['n'] | self.bb['b'] | self.bb['q'] | self.bb['k']
+
+ def bb_white(self):
+ return self.bb['P'] | self.bb['R'] | self.bb['N'] | self.bb['B'] | self.bb['Q'] | self.bb['K']
+
+ def bb(self):
+ return self.bb_white() | self.bb_black()
+
+ def _bb_rook_moves(self, white: bool):
+ bm, enemypieces = (self.bb_R, self.bb_black()) if white else (self.bb_r, self.bb_white())
+ render_hex(bm)
+ render_hex(bm << 8)
+
+
+
+ def render(self, white: bool) -> None:
+ if (white and not self.board_turned) or (not white and self.board_turned):
+ if self.board_turned:
+ print('\nBoard turned! Use /turnboard to turn it back.')
+ print(f'''
+ ┌───┬───┬───┬───┬───┬───┬───┬───┐
+8 │ {' │ '.join((ICON[self.pos[0][0]], ICON[self.pos[0][1]], ICON[self.pos[0][2]], ICON[self.pos[0][3]], ICON[self.pos[0][4]], ICON[self.pos[0][5]], ICON[self.pos[0][6]], ICON[self.pos[0][7]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+7 │ {' │ '.join((ICON[self.pos[1][0]], ICON[self.pos[1][1]], ICON[self.pos[1][2]], ICON[self.pos[1][3]], ICON[self.pos[1][4]], ICON[self.pos[1][5]], ICON[self.pos[1][6]], ICON[self.pos[1][7]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+6 │ {' │ '.join((ICON[self.pos[2][0]], ICON[self.pos[2][1]], ICON[self.pos[2][2]], ICON[self.pos[2][3]], ICON[self.pos[2][4]], ICON[self.pos[2][5]], ICON[self.pos[2][6]], ICON[self.pos[2][7]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+5 │ {' │ '.join((ICON[self.pos[3][0]], ICON[self.pos[3][1]], ICON[self.pos[3][2]], ICON[self.pos[3][3]], ICON[self.pos[3][4]], ICON[self.pos[3][5]], ICON[self.pos[3][6]], ICON[self.pos[3][7]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+4 │ {' │ '.join((ICON[self.pos[4][0]], ICON[self.pos[4][1]], ICON[self.pos[4][2]], ICON[self.pos[4][3]], ICON[self.pos[4][4]], ICON[self.pos[4][5]], ICON[self.pos[4][6]], ICON[self.pos[4][7]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+3 │ {' │ '.join((ICON[self.pos[5][0]], ICON[self.pos[5][1]], ICON[self.pos[5][2]], ICON[self.pos[5][3]], ICON[self.pos[5][4]], ICON[self.pos[5][5]], ICON[self.pos[5][6]], ICON[self.pos[5][7]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+2 │ {' │ '.join((ICON[self.pos[6][0]], ICON[self.pos[6][1]], ICON[self.pos[6][2]], ICON[self.pos[6][3]], ICON[self.pos[6][4]], ICON[self.pos[6][5]], ICON[self.pos[6][6]], ICON[self.pos[6][7]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+1 │ {' │ '.join((ICON[self.pos[7][0]], ICON[self.pos[7][1]], ICON[self.pos[7][2]], ICON[self.pos[7][3]], ICON[self.pos[7][4]], ICON[self.pos[7][5]], ICON[self.pos[7][6]], ICON[self.pos[7][7]]))} │
+ └───┴───┴───┴───┴───┴───┴───┴───┘
+ a b c d e f g h''')
+ else:
+ if self.board_turned:
+ print('\nBoard turned! Use /turnboard to turn it back.')
+ print(f'''
+ ┌───┬───┬───┬───┬───┬───┬───┬───┐
+1 │ {' │ '.join((ICON[self.pos[7][7]], ICON[self.pos[7][6]], ICON[self.pos[7][5]], ICON[self.pos[7][4]], ICON[self.pos[7][3]], ICON[self.pos[7][2]], ICON[self.pos[7][1]], ICON[self.pos[7][0]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+2 │ {' │ '.join((ICON[self.pos[6][7]], ICON[self.pos[6][6]], ICON[self.pos[6][5]], ICON[self.pos[6][4]], ICON[self.pos[6][3]], ICON[self.pos[6][2]], ICON[self.pos[6][1]], ICON[self.pos[6][0]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+3 │ {' │ '.join((ICON[self.pos[5][7]], ICON[self.pos[5][6]], ICON[self.pos[5][5]], ICON[self.pos[5][4]], ICON[self.pos[5][3]], ICON[self.pos[5][2]], ICON[self.pos[5][1]], ICON[self.pos[5][0]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+4 │ {' │ '.join((ICON[self.pos[4][7]], ICON[self.pos[4][6]], ICON[self.pos[4][5]], ICON[self.pos[4][4]], ICON[self.pos[4][3]], ICON[self.pos[4][2]], ICON[self.pos[4][1]], ICON[self.pos[4][0]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+5 │ {' │ '.join((ICON[self.pos[3][7]], ICON[self.pos[3][6]], ICON[self.pos[3][5]], ICON[self.pos[3][4]], ICON[self.pos[3][3]], ICON[self.pos[3][2]], ICON[self.pos[3][1]], ICON[self.pos[3][0]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+6 │ {' │ '.join((ICON[self.pos[2][7]], ICON[self.pos[2][6]], ICON[self.pos[2][5]], ICON[self.pos[2][4]], ICON[self.pos[2][3]], ICON[self.pos[2][2]], ICON[self.pos[2][1]], ICON[self.pos[2][0]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+7 │ {' │ '.join((ICON[self.pos[1][7]], ICON[self.pos[1][6]], ICON[self.pos[1][5]], ICON[self.pos[1][4]], ICON[self.pos[1][3]], ICON[self.pos[1][2]], ICON[self.pos[1][1]], ICON[self.pos[1][0]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+8 │ {' │ '.join((ICON[self.pos[0][7]], ICON[self.pos[0][6]], ICON[self.pos[0][5]], ICON[self.pos[0][4]], ICON[self.pos[0][3]], ICON[self.pos[0][2]], ICON[self.pos[0][1]], ICON[self.pos[0][0]]))} │
+ └───┴───┴───┴───┴───┴───┴───┴───┘
+ h g f e d c b a''')
+
+ def _rook_moves(self, y: int, x: int, white: bool) -> list:
+ enemypieces, rook = (BLACKPIECES, 'R') if white else (WHITEPIECES, 'r')
+
+ moves = []
+ directions = ((1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while 0 <= newy <= 7 and 0 <= newx <= 7:
+ if self.pos[newy][newx] == '.':
+ moves.append(((y, x, '.'), (newy, newx, rook)))
+ elif self.pos[newy][newx] in enemypieces:
+ moves.append(((y, x, '.'), (newy, newx, rook)))
+ break
+ else:
+ break
+ newy, newx = newy + dy, newx + dx
+ return moves
+
+ def _knight_moves(self, y: int, x: int, white: bool) -> list:
+ ownpieces, knight = (WHITEPIECES, 'N') if white else (BLACKPIECES, 'n')
+
+ moves = []
+ directions = ((1, 2), (1, -2), (2, 1), (2, -1), (-1, 2), (-1, -2), (-2, 1), (-2, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ if 0 <= newy <= 7 and 0 <= newx <= 7 and self.pos[newy][newx] not in ownpieces:
+ moves.append(((y, x, '.'), (newy, newx, knight)))
+ return moves
+
+ def _bishop_moves(self, y: int, x: int, white: bool) -> list:
+ enemypieces, bishop = (BLACKPIECES, 'B') if white else (WHITEPIECES, 'b')
+
+ moves = []
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while 0 <= newx <= 7 and 0 <= newy <= 7:
+ if self.pos[newy][newx] == '.':
+ moves.append(((y, x, '.'), (newy, newx, bishop)))
+ elif self.pos[newy][newx] in enemypieces:
+ moves.append(((y, x, '.'), (newy, newx, bishop)))
+ break
+ else:
+ break
+ newy, newx = newy + dy, newx + dx
+ return moves
+
+ def _queen_moves(self, y: int, x: int, white: bool) -> list:
+ enemypieces, queen = (BLACKPIECES, 'Q') if white else (WHITEPIECES, 'q')
+
+ moves = []
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1), (1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while 0 <= newx <= 7 and 0 <= newy <= 7:
+ if self.pos[newy][newx] == '.':
+ moves.append(((y, x, '.'), (newy, newx, queen)))
+ elif self.pos[newy][newx] in enemypieces:
+ moves.append(((y, x, '.'), (newy, newx, queen)))
+ break
+ else:
+ break
+ newy, newx = newy + dy, newx + dx
+ return moves
+
+ def _king_moves(self, y: int, x: int, white: bool) -> list:
+ ownpieces, king = (WHITEPIECES, 'K') if white else (BLACKPIECES, 'k')
+
+ moves = []
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1), (1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ if 0 <= newy <= 7 and 0 <= newx <= 7 and self.pos[newy][newx] not in ownpieces:
+ moves.append(((y, x, '.'), (newy, newx, king)))
+ return moves
+
+ def _castling_moves(self, white: bool) -> list:
+ shortcastling, longcastling, colorpiece, castlingrow = (self.w_short_castling, self.w_long_castling, COLORWHITE, 7) if white else (self.b_short_castling, self.b_long_castling, COLORBLACK, 0)
+
+ moves = []
+ if shortcastling and self.pos[castlingrow][5] == '.' and self.pos[castlingrow][6] == '.':
+ moves.append(((castlingrow, 4, '.'), (castlingrow, 5, colorpiece['R']), (castlingrow, 6, colorpiece['K']), (castlingrow, 7, '.')))
+ if longcastling and self.pos[castlingrow][1] == '.' and self.pos[castlingrow][2] == '.' and self.pos[castlingrow][3] == '.':
+ moves.append(((castlingrow, 0, '.'), (castlingrow, 2, colorpiece['K']), (castlingrow, 3, colorpiece['R']), (castlingrow, 4, '.')))
+ return moves
+
+ def _pawn_moves(self, y: int, x: int, white: bool) -> list:
+ startingrow, forwardstep, promotionrow = (6, -1, 1) if white else (1, 1, 6)
+ colorpiece, enemypieces = (COLORWHITE, BLACKPIECES) if white else (COLORBLACK, WHITEPIECES)
+
+ moves = []
+ if 0 <= y + forwardstep <= 7 and self.pos[y + forwardstep][x] == '.':
+ if y == promotionrow:
+ for i in (colorpiece['Q'], colorpiece['R'], colorpiece['N'], colorpiece['B']):
+ moves.append(((y, x, '.'), (y + forwardstep, x, i)))
+ else:
+ moves.append(((y, x, '.'), (y + forwardstep, x, colorpiece['P'])))
+ if y == startingrow and self.pos[y + forwardstep * 2][x] == '.':
+ moves.append(((y, x, '.'), (y + forwardstep * 2, x, colorpiece['P'])))
+ for dx in (1, -1):
+ newx = x + dx
+ if 0 <= y + forwardstep <= 7 and 0 <= newx <= 7 and self.pos[y + forwardstep][newx] in enemypieces:
+ if y == promotionrow:
+ for i in (colorpiece['Q'], colorpiece['R'], colorpiece['N'], colorpiece['B']):
+ moves.append(((y, x, '.'), (y + forwardstep, newx, i)))
+ else: # taking enemy piece
+ moves.append(((y, x, '.'), (y + forwardstep, newx, colorpiece['P'])))
+ if [y + forwardstep, newx] == self.ep_sqr: # en passant
+ moves.append(((y, x, '.'), (y + forwardstep, newx, colorpiece['P']), (y, newx, '.')))
+ return moves
+
+ def all_moves(self, white: bool) -> tuple:
+ colorpiece = COLORWHITE if white else COLORBLACK
+ move_generators = {colorpiece['P']: self._pawn_moves, colorpiece['R']: self._rook_moves, colorpiece['N']: self._knight_moves, colorpiece['B']: self._bishop_moves, colorpiece['Q']: self._queen_moves, colorpiece['K']: self._king_moves}
+ moves = []
+ for y, row in enumerate(self.pos):
+ for x, piece in enumerate(row):
+ if piece in move_generators:
+ moves.extend(move_generators[piece](y, x, white))
+ moves.extend(self._castling_moves(white))
+ return tuple(moves)
+
+ def reach(self, white: bool) -> tuple:
+ reach = (([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []))
+ colorpiece, forwardstep, startingrow, enemypieces = (COLORWHITE, -1, 6, BLACKPIECES) if white else (COLORBLACK, 1, 1, WHITEPIECES)
+ shortcastling, longcastling, castlingrow = (self.w_short_castling, self.w_long_castling, 7) if white else (self.b_short_castling, self.b_long_castling, 0)
+ for y, row in enumerate(self.pos):
+ for x, piece in enumerate(row):
+
+ if piece == colorpiece['R']:
+ directions = ((1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while 0 <= newy <= 7 and 0 <= newx <= 7:
+ if self.pos[newy][newx] != '.':
+ reach[newy][newx].append((y, x, piece))
+ break
+ reach[newy][newx].append((y, x, piece))
+ newy, newx = newy + dy, newx + dx
+
+ elif piece == colorpiece['N']:
+ directions = ((1, 2), (1, -2), (2, 1), (2, -1), (-1, 2), (-1, -2), (-2, 1), (-2, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ if 0 <= newy <= 7 and 0 <= newx <= 7:
+ reach[newy][newx].append((y, x, piece))
+
+ elif piece == colorpiece['B']:
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while 0 <= newx <= 7 and 0 <= newy <= 7:
+ if self.pos[newy][newx] != '.':
+ reach[newy][newx].append((y, x, piece))
+ break
+ reach[newy][newx].append((y, x, piece))
+ newy, newx = newy + dy, newx + dx
+
+ elif piece == colorpiece['Q']:
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1), (1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while 0 <= newx <= 7 and 0 <= newy <= 7:
+ if self.pos[newy][newx] != '.':
+ reach[newy][newx].append((y, x, piece))
+ break
+ reach[newy][newx].append((y, x, piece))
+ newy, newx = newy + dy, newx + dx
+
+ elif piece == colorpiece['K']:
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1), (1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ if 0 <= newy <= 7 and 0 <= newx <= 7:
+ reach[newy][newx].append((y, x, piece))
+
+ if shortcastling and self.pos[castlingrow][5] == '.' and self.pos[castlingrow][6] == '.':
+ reach[castlingrow][6].append((y, x, piece))
+ if longcastling and self.pos[castlingrow][2] == '.' and self.pos[castlingrow][3] == '.':
+ reach[castlingrow][2].append((y, x, piece))
+
+ elif piece == colorpiece['P']:
+ if self.pos[y + forwardstep][x] == '.':
+ reach[y + forwardstep][x].append((y, x, piece))
+ if y == startingrow and self.pos[y + (forwardstep * 2)][x] == '.':
+ reach[y + (forwardstep * 2)][x].append((y, x, piece))
+ for dx in (1, -1):
+ newx = x + dx
+ if 0 <= y + forwardstep <= 7 and 0 <= newx <= 7 and (self.pos[y + forwardstep][newx] in enemypieces or self.ep_sqr == (y + forwardstep, newx)):
+ reach[y + forwardstep][newx].append((y, x, piece))
+ return reach
+
+ def control(self, white: bool) -> tuple:
+ control = (([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []))
+ colorpiece, colorenemypiece, forwardstep = (COLORWHITE, COLORBLACK, -1) if white else (COLORBLACK, COLORWHITE, 1)
+ for y, row in enumerate(self.pos):
+ for x, piece in enumerate(row):
+
+ if piece == colorpiece['R']:
+ directions = ((1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while 0 <= newy <= 7 and 0 <= newx <= 7:
+ if self.pos[newy][newx] not in {'.', colorpiece['R'], colorpiece['Q']}:
+ control[newy][newx].append((y, x, piece))
+ break
+ control[newy][newx].append((y, x, piece))
+ newy, newx = newy + dy, newx + dx
+
+ elif piece == colorpiece['N']:
+ directions = ((1, 2), (1, -2), (2, 1), (2, -1), (-1, 2), (-1, -2), (-2, 1), (-2, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ if 0 <= newy <= 7 and 0 <= newx <= 7:
+ control[newy][newx].append((y, x, piece))
+
+ elif piece == colorpiece['B']:
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while 0 <= newx <= 7 and 0 <= newy <= 7:
+ if self.pos[newy][newx] not in {'.', colorpiece['Q']}:
+ control[newy][newx].append((y, x, piece))
+ if self.pos[newy][newx] == colorpiece['P'] and dy == forwardstep:
+ control[newy + dy][newx + dx].append((y, x, piece))
+ break
+ control[newy][newx].append((y, x, piece))
+ newy, newx = newy + dy, newx + dx
+
+ elif piece == colorpiece['Q']:
+ directions = ((1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while 0 <= newx <= 7 and 0 <= newy <= 7:
+ if self.pos[newy][newx] not in {'.', colorpiece['R'], colorpiece['Q']}:
+ control[newy][newx].append((y, x, piece))
+ break
+ control[newy][newx].append((y, x, piece))
+ newy, newx = newy + dy, newx + dx
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while 0 <= newx <= 7 and 0 <= newy <= 7:
+ if self.pos[newy][newx] not in {'.', colorpiece['B'], colorpiece['Q']}:
+ control[newy][newx].append((y, x, piece))
+ if self.pos[newy][newx] == colorpiece['P'] and dy == forwardstep:
+ control[newy + dy][newx + dx].append((y, x, piece))
+ break
+ control[newy][newx].append((y, x, piece))
+ newy, newx = newy + dy, newx + dx
+
+ elif piece == colorpiece['K']:
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1), (1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ if 0 <= newy <= 7 and 0 <= newx <= 7:
+ control[newy][newx].append((y, x, piece))
+
+ elif piece == colorpiece['P']:
+ for dx in (1, -1):
+ newx = x + dx
+ if 0 <= y + forwardstep <= 7 and 0 <= newx <= 7:
+ control[y + forwardstep][newx].append((y, x, piece))
+ if self.ep_sqr == (y + forwardstep, newx) and self.pos[y][newx] == colorenemypiece['P']:
+ control[y][newx].append((y, x, piece))
+ return control
+
+ def legal_moves(self, white: bool) -> tuple:
+ enemycontrol = self.control(False) if white else self.control(True)
+ colorpiece = COLORWHITE if white else COLORBLACK
+ shortcastling, longcastling, arookmoved, kingmoved, hrookmoved = ((self.w_short_castling, self.w_long_castling, self.whitearookmoved, self.whitekingmoved, self.whitehrookmoved)
+ if white else (self.b_short_castling, self.b_long_castling, self.whitearookmoved, self.whitekingmoved, self.whitehrookmoved))
+
+ moves = []
+ for move in self.all_moves(white):
+ if move == ((7, 4, '.'), (7, 5, colorpiece['R']), (7, 6, colorpiece['K']), (7, 7, '.')) and (enemycontrol[7][5] or enemycontrol[7][4] or kingmoved or hrookmoved or not shortcastling):
+ continue
+ elif move == ((7, 0, '.'), (7, 2, colorpiece['K']), (7, 3, colorpiece['R']), (7, 4, '.')) and (enemycontrol[7][3] or enemycontrol[7][4] or kingmoved or arookmoved or not longcastling):
+ continue
+ self.do(move)
+ if any(self.pos[singlemove[0]][singlemove[1]] == colorpiece['K'] for enemymove in self.all_moves(not white) for singlemove in enemymove):
+ self.undo(); continue
+ self.undo(); moves.append(move)
+ return tuple(moves)
+
+ def _fifty_move_rule(self) -> None:
+ if self.fifty_move_ctr == 100:
+ userinput = input('\n50 moves have been played without capture or pawnpush. Do you want to force a draw? [Y/n] > ')
+ if userinput in {'', 'yes', 'y', 'Y'}:
+ self.render(self.player_color)
+ print('\nDraw due to fifty move rule!\n'); raise SystemExit
+
+ def _move_rep(self) -> None:
+ if self.pos_hist.count(self.pos_hist[-1]) == 3:
+ self.render(self.player_color)
+ print('\nDRAW DUE TO MOVEREPITITION!\n'); raise SystemExit
+
+ def check_pos(self) -> None:
+ for white in {True, False}:
+ if not len(self.legal_moves(not white)):
+ self.render(self.player_color)
+ if self._is_checkmate(white):
+ print('\nWHITE WON BY CHECKMATE!\n') if white else print('\nBLACK WON BY CHECKMATE!\n'); raise SystemExit
+ print('\nSTALEMATE!\n'); raise SystemExit
+ self._fifty_move_rule(); self._move_rep()
+
+ def do(self, move: move_struct) -> None:
+ save = []
+ for singlemove in move:
+ save.append((self.pos[singlemove[0]][singlemove[1]], singlemove[0], singlemove[1], singlemove[2]))
+ self.pos[singlemove[0]][singlemove[1]] = singlemove[2]
+ self.hist.append(tuple(save))
+
+ def undo(self) -> None:
+ lastmove = self.hist.pop()
+ for singlemove in lastmove:
+ self.pos[singlemove[1]][singlemove[2]] = singlemove[0]
+
+ def make_move(self, move: move_struct, white: bool) -> None:
+ self.asked_draw, self.ep_sqr = False, None
+ colorpiece, forwardstep = (COLORWHITE, -1) if white else (COLORBLACK, 1)
+
+ if move[1][2] == colorpiece['P'] and move[1][0] == move[0][0] + (2 * forwardstep): # EP square
+ self.ep_sqr = (move[0][0] + forwardstep, move[0][1])
+
+ save = []
+ pawn_move, capture = False, 0
+ for singlemove in move:
+ save.append((self.pos[singlemove[0]][singlemove[1]], singlemove[0], singlemove[1], singlemove[2]))
+ if singlemove[2] == colorpiece['P']: # checks if pawnmove to reset 50-move-rule
+ pawn_move = True
+ capture = capture + 1 if singlemove[2] == '.' else capture - 1 # capture if capture not 0
+
+ if singlemove[0:2] == (7, 0):
+ self.w_long_castling = False
+ elif singlemove[0:2] == (7, 4):
+ self.w_short_castling, self.w_long_castling = False, False
+ elif singlemove[0:2] == (7, 7):
+ self.w_short_castling = False
+ elif singlemove[0:2] == (0, 0):
+ self.b_long_castling = False
+ elif singlemove[0:2] == (0, 4):
+ self.b_short_castling, self.b_long_castling = False, False
+ elif singlemove[0:2] == (0, 7):
+ self.b_short_castling = False
+
+ self.pos[singlemove[0]][singlemove[1]] = singlemove[2]
+
+ self.fifty_move_ctr = 0 if pawn_move or capture else self.fifty_move_ctr + 1
+ self.half_move_ctr += 1
+ self.hist.append(tuple(save))
+ self.pos_hist.append(deepcopy(self.pos))
+ self.check_pos()
+
+ def _is_check(self, white: bool, move: move_struct = None) -> bool:
+ colorenemypiece = COLORBLACK if white else COLORWHITE
+ if not move:
+ if any(self.pos[singlemove[0]][singlemove[1]] == colorenemypiece['K'] for move in self.all_moves(white) for singlemove in move):
+ return True
+ return False
+ self.do(move)
+ if any(self.pos[singlemove[0]][singlemove[1]] == colorenemypiece['K'] for move in self.all_moves(white) for singlemove in move):
+ self.undo(); return True
+ self.undo(); return False
+
+ def _is_checkmate(self, white: bool, move: move_struct = None) -> bool:
+ colorenemypiece = COLORBLACK if white else COLORWHITE
+ if not move:
+ if not self.legal_moves(not white):
+ if not any(self.pos[singlemove[0]][singlemove[1]] == colorenemypiece['K'] for move in self.all_moves(white) for singlemove in move):
+ return False
+ return True
+ self.do(move)
+ if not self.legal_moves(not white):
+ if not any(self.pos[singlemove[0]][singlemove[1]] == colorenemypiece['K'] for move in self.all_moves(white) for singlemove in move):
+ self.undo(); return False
+ self.undo(); return True
+
+ def _is_capture(self, move: move_struct) -> bool:
+ capture = 0
+ for singlemove in move:
+ capture = capture + 1 if singlemove[2] == '.' else capture - 1
+ if not capture:
+ return True
+ return False
+
+ def set_fen(self, fen_str: str) -> bool | None:
+ try:
+ board_str, color_str, castling_str, ep_str, fifty_move_str, full_move_str = fen_str.strip().split()
+ except ValueError:
+ return False
+
+ tmp_pos = []
+ board_lst = board_str.split('/')
+ if len(board_lst) != 8:
+ return False
+ for row_str in board_lst:
+ tmp_row = []
+ for char in row_str:
+ if char == '.' or char in WHITEPIECES or char in BLACKPIECES:
+ tmp_row.append(char)
+ elif char in {'1', '2', '3', '4', '5', '6', '7', '8'}:
+ tmp_row.extend(['.'] * int(char))
+ else:
+ return False
+ tmp_pos.append(tmp_row)
+ if len(tmp_pos) != 8:
+ return False
+ self.pos = tuple(tmp_pos)
+
+ self.white = color_str == 'w'
+ if not self.white and color_str != 'b':
+ return False
+
+ if castling_str != '-' and set(castling_str) <= {'K', 'Q', 'k', 'q'} or sorted(castling_str) != list(castling_str):
+ return False
+ self.w_short_castling = 'K' in castling_str
+ self.w_long_castling = 'Q' in castling_str
+ self.b_short_castling = 'k' in castling_str
+ self.b_long_castling = 'q' in castling_str
+
+ if ep_str == '-':
+ self.ep_sqr = None
+ elif len(ep_str) == 2 and ep_str[0] in ALPH_TO_INT and ep_str[1] in NUM_TO_INT and NUM_TO_INT[ep_str[1]] in {2, 5}:
+ self.ep_sqr = (NUM_TO_INT[ep_str[1]], ALPH_TO_INT[ep_str[0]])
+ else:
+ return False
+
+ if fifty_move_str.isdigit():
+ self.fifty_move_ctr = int(fifty_move_str)
+
+ if full_move_str.isdigit():
+ self.half_move_ctr = int(full_move_str) * 2 + (1 if color_str == 'b' else 0)
+
+ self.check_pos(); self.start_game(self.white)
+
+ def get_fen(self, white: bool) -> str:
+
+ row_strs = []
+ for row in self.pos:
+ row_str = ''
+ space_ctr = 0
+ for piece in row:
+ if piece == '.':
+ space_ctr += 1
+ elif piece in WHITEPIECES or piece in BLACKPIECES:
+ if space_ctr:
+ row_str += str(space_ctr)
+ row_str += piece
+ space_ctr = 0
+ if space_ctr:
+ row_str += str(space_ctr)
+ row_strs.append(row_str)
+ board_str = '/'.join(row_strs)
+
+ color_str = 'w' if white else 'b'
+
+ castling_str = ('K' if self.w_short_castling else '') + ('Q' if self.w_long_castling else '') + ('k' if self.b_short_castling else '') + ('q' if self.b_long_castling else '')
+ castling_str = '-' if not castling_str else castling_str
+
+ ep_str = '-' if self.ep_sqr == None else INT_TO_ALPH[self.ep_sqr[1]] + INT_TO_NUM[self.ep_sqr[0]]
+
+ fifty_move_str = str(self.fifty_move_ctr)
+
+ full_move_str = str(self.half_move_ctr // 2)
+
+ fen_str = ' '.join([board_str, color_str, castling_str, ep_str, fifty_move_str, full_move_str])
+ return fen_str
+
+ def _game_controls(self, userinput: tuple, white: bool) -> bool | None:
+ if userinput in {'/m', '/menu', '?', 'h', 'help', '/h', '/help', '-h', '-help', '--help'}:
+ print(('''
+/m, /menu > gamecontrols, opens this menu
+/q, /quit > quit game
+/s, /save > save game to FEN
+/t, /turnboard > turn board position
+/p, /printboard > reprint board
+/d, /draw > offer draw
+/r, /resign > resign game
+/f, /forcedraw > force draw if 50 move rule applies
+/i, /import > import game from FEN
+/m, /manual > how to play''')); return True
+
+ elif userinput in {'/q', '/quit'}:
+ print(f'\nFEN-notation > {self.get_fen(white)}\n'); raise SystemExit
+
+ elif userinput in {'/s', '/save'}:
+ print('\nFEN-notation >', self.get_fen(white)); return True
+
+ elif userinput in {'/t', '/turnboard'}:
+ self.board_turned = not self.board_turned
+ self.render(self.player_color); return True
+
+ elif userinput in {'/p', '/printboard'}:
+ self.render(self.player_color); return True
+
+ elif userinput in {'/d', '/draw'}:
+ if not self.asked_draw:
+ self.asked_draw = True
+ if (white and self.eval_pos() < 0) or (not white and self.eval_pos() > 0):
+ print('\nDRAW\n'); raise SystemExit
+ elif self.eval_pos() == 0:
+ if choices([True, False], weights = [1, 5], k = 1)[0]:
+ print('\nDRAW\n'); raise SystemExit
+ print('\nNO DRAW'); return True
+ print('\nNO DRAW'); return True
+ print('\nAlready asked for draw this move'); return True
+
+ elif userinput in {'/r', '/resign'}:
+ print('\nBLACK WON BY RESIGNATION\n') if white else print('\nWHITE WON BY RESIGNATION\n'); raise SystemExit
+
+ elif userinput in {'/f', '/forcedraw'}:
+ if self.fifty_move_ctr > 99:
+ print('\nWhite forced DRAW\n') if white else print('\nBlack forced DRAW\n'); raise SystemExit
+ print('\n50-move-rule does not apply'); return True
+
+ elif userinput in {'/i', '/import'}:
+ if not self.set_fen(input('\nPaste FEN-position here > ')):
+ print('!INVALID FEN!'); return True
+ return False
+
+ def find_piece(self, item: str) -> tuple:
+ for y, row in enumerate(self.pos):
+ for x, piece in enumerate(row):
+ if piece == item:
+ return (y, x)
+
+ def parse(self, userinput: str, white: bool) -> tuple:
+ colorpiece = COLORWHITE if white else COLORBLACK
+ shortcastling, longcastling, castlingrow = (self.w_short_castling, self.w_long_castling, 7) if white else (self.b_short_castling, self.b_long_castling, 0)
+
+ if self._game_controls(userinput, white):
+ userinput = input('\nEnter your move in algebraic notation > ')
+ return self.parse(userinput, white)
+
+ userinput = userinput.strip()
+ check, checkmate, capture, promotion = False, False, False, ''
+
+ if userinput:
+ for postfix, check_code in chessconf.POSTFIX_MAP.items():
+ if userinput.endswith(postfix):
+ check, checkmate = (False, True) if check_code else (True, False)
+ userinput = userinput[:-len(postfix)]; break
+
+ if userinput:
+ if userinput in chessconf.CASTLING_MAP:
+ if chessconf.CASTLING_MAP[userinput]:
+ usermove = ((castlingrow, 4, '.'), (castlingrow, 5, 'R'), (castlingrow, 6, 'K'), (castlingrow, 7, '.'))
+ else:
+ usermove = ((castlingrow, 0, '.'), (castlingrow, 2, 'K'), (castlingrow, 3, 'R'), (castlingrow, 4, '.'))
+ if (parsed := self._validate(usermove, white, check, checkmate, capture, promotion)):
+ return parsed
+
+ promotion = None
+
+ for postfix, promotion_code in chessconf.PROMOTION_MAP.items():
+ if userinput.endswith(postfix):
+ promotion, userinput = colorpiece[promotion_code], userinput[:-len(postfix)]; break
+
+ if len(userinput) >= 2 and userinput[-2] in ALPH_TO_INT and userinput[-1] in NUM_TO_INT:
+ target, userinput = (NUM_TO_INT[userinput[-1]], ALPH_TO_INT[userinput[-2]]), userinput[:-2]
+
+ y, x, attackingpiece = None, None, colorpiece['P']
+
+ if userinput:
+
+ abbr_piece = False
+ for i in WHITEPIECES:
+ if userinput.startswith(i):
+ attackingpiece, abbr_piece, userinput = colorpiece[i], True, userinput[1:]; break
+
+ if not abbr_piece:
+ for prefix, piece_code in chessconf.PIECE_MAP.items():
+ if userinput.startswith(prefix):
+ attackingpiece, userinput = colorpiece[piece_code], userinput[len(prefix):]; break
+
+ if userinput:
+ for postfix, action_code in chessconf.ACTION_MAP.items():
+ if userinput.endswith(postfix):
+ capture, userinput = True if action_code == 'x' else False, userinput[:-len(postfix)]; break
+
+ if userinput:
+ att_coords = False
+ if userinput[-1] in NUM_TO_INT:
+ y, att_coords, userinput = NUM_TO_INT[userinput[-1]], True, userinput[:-1]
+
+ if userinput:
+ if userinput[-1] in ALPH_TO_INT:
+ x, att_coords, userinput = ALPH_TO_INT[userinput[-1]], True, userinput[:-1]
+ if y:
+ attackingpiece = self.pos[y][x]
+
+ if att_coords:
+ if userinput in {' ', ' on '}:
+ userinput = ''
+
+ if not userinput:
+ matchingattackers = [attacker for attacker in self.reach(white)[target[0]][target[1]] if attacker[2] == attackingpiece]
+ if y != None and x != None:
+ attackers = [attacker for attacker in matchingattackers if attacker[1] == x]
+ elif y != None:
+ attackers = [attacker for attacker in matchingattackers if attacker[0] == y]
+ elif x != None:
+ attackers = [attacker for attacker in matchingattackers if attacker[1] == x]
+ else:
+ attackers = matchingattackers
+ if len(attackers) == 1:
+ attacker = attackers[0]
+ if promotion:
+ if attackingpiece == colorpiece['P']:
+ usermove = ((attacker[0], attacker[1], '.'), (target[0], target[1], promotion))
+ check = self._validate(usermove, white, check, checkmate, capture, promotion)
+ if check:
+ return check
+ else:
+ if attacker[2] == colorpiece['K'] and shortcastling and target == (castlingrow, 6):
+ usermove = ((castlingrow, 4, '.'), (castlingrow, 5, colorpiece['R']), (castlingrow, 6, colorpiece['K']), (castlingrow, 7, '.'))
+ elif attacker[2] == colorpiece['K'] and longcastling and target == (castlingrow, 2):
+ usermove = ((castlingrow, 0, '.'), (castlingrow, 2, colorpiece['K']), (castlingrow, 3, colorpiece['R']), (castlingrow, 4, '.'))
+ elif attacker[2] == colorpiece['P'] and self.ep_sqr == (target[0], target[1]):
+ usermove = ((attacker[0], attacker[1], '.'), (target[0], target[1], attacker[2]), (attacker[0], target[1], '.'))
+ else:
+ usermove = ((attacker[0], attacker[1], '.'), (target[0], target[1], attacker[2]))
+ if (validation := self._validate(usermove, white, check, checkmate, capture, promotion)):
+ return validation
+ elif len(attackers) > 1:
+ userinput = input('\nPlease specify which piece to move.\n\nEnter your move in algebraic notation > ')
+ return self.parse(userinput, white)
+
+ print(('\n!INVALID INPUT! Read the manual for more information.'))
+ return self.parse(input('\nEnter your move in algebraic notation > '), white)
+
+ def _validate(self, usermove: move_struct, white: bool, check: bool = False, checkmate: bool = False, capture: bool = False, promotion: str = '') -> tuple | None:
+ enemycontrol = self.control(not white)
+ colorpiece = COLORWHITE if white else COLORBLACK
+ shortcastling, longcastling = (((7, 4, '.'), (7, 5, 'R'), (7, 6, 'K'), (7, 7, '.')), ((7, 0, '.'), (7, 2, 'K'), (7, 3, 'R'), (7, 4, '.'))) if white else (((0, 4, '.'), (0, 5, 'r'), (0, 6, 'k'), (0, 7, '.')), ((0, 0, '.'), (0, 2, 'k'), (0, 3, 'r'), (0, 4, '.')))
+
+ if usermove in self.legal_moves(white):
+ notcheck, notcheckmate, notcapture = check and not self._is_check(white, usermove), checkmate and not self._is_checkmate(white, usermove), capture and not self._is_capture(usermove)
+ if notcheck or notcheckmate or notcapture:
+ if notcheck and notcapture:
+ userinput = input('\nMove is neither a check nor a capture. Do you want to proceed? [Y/n] > ')
+ elif notcheckmate and notcapture:
+ userinput = input('\nMove is neither a checkmate nor a capture. Do you want to proceed? [Y/n] > ')
+ elif notcheck:
+ userinput = input('\nMove is not a check. Do you want to proceed? [Y/n] > ')
+ elif notcheckmate:
+ userinput = input('\nMove is not a checkmate. Do you want to proceed? [Y/n] > ')
+ elif notcapture:
+ userinput = input('\nMove is not a capture. Do you want to proceed? [Y/n] > ')
+ if userinput in {'y', 'yes', '1', '', 'Y'}:
+ return usermove
+ userinput = input('\nEnter your move in algebraic notation > ')
+ return self.parse(userinput, white)
+ return usermove
+
+ if usermove in self.all_moves(white):
+ if any(singlemove[2] == colorpiece['K'] for singlemove in usermove):
+ if usermove in (shortcastling, longcastling) and enemycontrol[usermove[0][0]][4]:
+ print(enemycontrol[usermove[0][0]][4])
+ print('\nKing cannot castle if in check.')
+ elif (usermove == shortcastling and not enemycontrol[usermove[0][0]][6]) or (usermove == longcastling and not enemycontrol[usermove[0][0]][2]):
+ print('\nKing cannot castle through enemy controlled square.')
+ else:
+ print('\nSquare controlled by enemy.')
+ else:
+ y, x = self.find_piece(colorpiece['K'])
+ if enemycontrol[y][x]:
+ print('\nKing is in check.')
+ else:
+ print('\nPiece is pinned to king.')
+ userinput = input('\nEnter your move in algebraic notation > ')
+ return self.parse(userinput, white)
+
+ def eval_pos(self) -> float:
+ value = 0
+ for y, row in enumerate(self.pos):
+ for x, piece in enumerate(row):
+ if piece != '.':
+ value += chessconf.PIECEVALUE[piece] + chessconf.POSTABLES[piece][y][x]
+ return value
+
+ def minimax(self, depth: int, ismax: bool, alpha: float | None = -float('inf'), beta: float | None = float('inf')) -> float:
+ if depth == 0:
+ return self.eval_pos()
+
+ if ismax:
+ bestvalue = float('-inf')
+ for move in self.all_moves(True):
+ self.do(move)
+ minimaxvalue = self.minimax(depth - 1, not ismax, alpha, beta)
+ self.undo()
+ if minimaxvalue > bestvalue:
+ bestvalue = minimaxvalue
+ alpha = max(alpha, bestvalue)
+ if alpha >= beta:
+ break
+ return bestvalue
+ else:
+ bestvalue = float('inf')
+ for move in self.all_moves(False):
+ self.do(move)
+ minimaxvalue = self.minimax(depth - 1, not ismax, alpha, beta)
+ self.undo()
+ if minimaxvalue < bestvalue:
+ bestvalue = minimaxvalue
+ beta = min(beta, bestvalue)
+ if alpha >= beta:
+ break
+ return bestvalue
+
+ def best_moves(self, white: bool, depth: int | None = chessconf.minimax_depth) -> tuple:
+ if white:
+ bestvalue, bestmovelist = float('-inf'), []
+ for move in self.legal_moves(True):
+ self.do(move)
+ minimaxvalue = self.minimax(depth - 1, not white)
+ self.undo()
+ if minimaxvalue == bestvalue:
+ bestmovelist.append(move)
+ elif minimaxvalue > bestvalue:
+ bestvalue, bestmovelist = minimaxvalue, [move]
+ legalbestmoves = [move for move in bestmovelist if move in self.legal_moves(True)]
+ return tuple(legalbestmoves)
+ else:
+ bestvalue, bestmovelist = float('inf'), []
+ for move in self.legal_moves(False):
+ self.do(move)
+ minimaxvalue = self.minimax(depth - 1, not white)
+ self.undo()
+ if minimaxvalue == bestvalue:
+ bestmovelist.append(move)
+ elif minimaxvalue < bestvalue:
+ bestvalue, bestmovelist = minimaxvalue, [move]
+ legalbestmoves = [move for move in bestmovelist if move in self.legal_moves(False)]
+ return tuple(legalbestmoves)
+
+ def stockfish_move(self, white: bool, depth: int | None = chessconf.stockfish_depth) -> str | None:
+ stockfish = Popen(chessconf.STOCKFISH_PATH, stdin = PIPE, stdout = PIPE, text = True)
+ stockfish.stdin.write(f'position fen {self.get_fen(white)}\ngo depth {depth}\n'); stockfish.stdin.flush()
+ while True:
+ output = stockfish.stdout.readline().strip()
+ if 'bestmove' in output:
+ move = output.split(' ')[1]; stockfish.stdin.close(); stockfish.terminate()
+ return None if move == '(none)' else move
+
+ def start_game(self, white: bool | None = None) -> None:
+ while True:
+ userinput = input('\nDo you want to play against stockfish or own minimax algorithm? [M/s] > ')
+ if userinput in {'', 'm', 'minimax', '1', 'M', 'Minimax', 'MINIMAX'}:
+ while True:
+ userinput = input('\nChoose a difficulty level from 1 (easy) to 5 (hard) > ')
+ if userinput.isdigit() and int(userinput) in range(1, 6):
+ def enemymove():
+ return choice(self.best_moves(not self.player_color, int(userinput)))
+ if not self._game_controls(userinput, self.player_color):
+ def enemymove():
+ return choice(self.best_moves(not self.player_color))
+ break
+ elif userinput in {'s', 'stockfish', '2', 'S', 'Stockfish', 'STOCKFISH'}:
+ while True:
+ userinput = input('\nChoose a difficulty level from 1 (easy) to 10 (hard) > ')
+ if userinput.isdigit() and int(userinput) in range(1, 11):
+ def enemymove():
+ return self.parse(self.stockfish_move(not self.player_color, int(userinput)), not self.player_color)
+ if not self._game_controls(userinput, self.player_color):
+ def enemymove():
+ return self.parse(self.stockfish_move(not self.player_color), not self.player_color)
+ break
+ if not self._game_controls(userinput, white):
+ break
+ if white == None:
+ while True:
+ colorchoice = input('\nWould you like to play with white or black? Press ENTER for random color. [w/b] > ')
+ if colorchoice in {'', 'r', 'random', 'R', 'Random', 'RANDOM'}:
+ randchoice = choice([True, False])
+ self.player_color, self.white = randchoice, randchoice
+ elif colorchoice in {'w', 'white', '1', 'W', 'White', 'WHITE'}:
+ self.player_color, self.white = True, True
+ elif colorchoice in {'b', 'black', '2', 'B', 'Black', 'BLACK'}:
+ self.player_color, self.white = False, False
+ if not self._game_controls(colorchoice, white):
+ break
+
+ if self.white:
+ self.render(self.player_color)
+ userinput = input('\nEnter your move in algebraic notation > ')
+ usermove = self.parse(userinput, self.player_color)
+ self.make_move(usermove, self.player_color)
+
+ while True:
+ self.make_move(enemymove(), not self.player_color)
+ self.render(self.player_color)
+ userinput = input('\nEnter your move in algebraic notation > ')
+ usermove = self.parse(userinput, self.player_color)
+ self.make_move(usermove, self.player_color)
+
+if __name__ == '__main__':
+ board: Board = Board()
+ render_hex(invert(board.bb()))
+ render_hex(board.bb())
+ board.start_game() \ No newline at end of file
diff --git a/bitmasks.py b/bitmasks.py
new file mode 100644
index 0000000..34684ab
--- /dev/null
+++ b/bitmasks.py
@@ -0,0 +1,246 @@
+SQR_MASK = (
+ 0x8000_0000_0000_0000, 0x4000_0000_0000_0000, 0x2000_0000_0000_0000, 0x1000_0000_0000_0000, 0x0800_0000_0000_0000, 0x0400_0000_0000_0000, 0x0200_0000_0000_0000, 0x0100_0000_0000_0000,
+ 0x0080_0000_0000_0000, 0x0040_0000_0000_0000, 0x0020_0000_0000_0000, 0x0010_0000_0000_0000, 0x0008_0000_0000_0000, 0x0004_0000_0000_0000, 0x0002_0000_0000_0000, 0x0001_0000_0000_0000,
+ 0x0000_8000_0000_0000, 0x0000_4000_0000_0000, 0x0000_2000_0000_0000, 0x0000_1000_0000_0000, 0x0000_0800_0000_0000, 0x0000_0400_0000_0000, 0x0000_0200_0000_0000, 0x0000_0100_0000_0000,
+ 0x0000_0080_0000_0000, 0x0000_0040_0000_0000, 0x0000_0020_0000_0000, 0x0000_0010_0000_0000, 0x0000_0008_0000_0000, 0x0000_0004_0000_0000, 0x0000_0002_0000_0000, 0x0000_0001_0000_0000,
+ 0x0000_0000_8000_0000, 0x0000_0000_4000_0000, 0x0000_0000_2000_0000, 0x0000_0000_1000_0000, 0x0000_0000_0800_0000, 0x0000_0000_0400_0000, 0x0000_0000_0200_0000, 0x0000_0000_0100_0000,
+ 0x0000_0000_0080_0000, 0x0000_0000_0040_0000, 0x0000_0000_0020_0000, 0x0000_0000_0010_0000, 0x0000_0000_0008_0000, 0x0000_0000_0004_0000, 0x0000_0000_0002_0000, 0x0000_0000_0001_0000,
+ 0x0000_0000_0000_8000, 0x0000_0000_0000_4000, 0x0000_0000_0000_2000, 0x0000_0000_0000_1000, 0x0000_0000_0000_0800, 0x0000_0000_0000_0400, 0x0000_0000_0000_0200, 0x0000_0000_0000_0100,
+ 0x0000_0000_0000_0080, 0x0000_0000_0000_0040, 0x0000_0000_0000_0020, 0x0000_0000_0000_0010, 0x0000_0000_0000_0008, 0x0000_0000_0000_0004, 0x0000_0000_0000_0002, 0x0000_0000_0000_0001,
+ )
+DIA_MASK = (
+ 0x0000_0000_0000_0000, 0x0080_0000_0000_0000, 0x0040_8000_0000_0000, 0x0020_4080_0000_0000, 0x0010_2040_8000_0000, 0x0008_1020_4080_0000, 0x0004_0810_2040_8000, 0x0002_0408_1020_4080,
+ 0x4000_0000_0000_0000, 0x2000_8000_0000_0000, 0x1000_4080_0000_0000, 0x0800_2040_8000_0000, 0x0400_1020_4080_0000, 0x0200_0810_2040_8000, 0x0100_0408_1020_4080, 0x0000_0204_0810_2040,
+ 0x2040_0000_0000_0000, 0x1020_0080_0000_0000, 0x0810_0040_8000_0000, 0x0408_0020_4080_0000, 0x0204_0010_2040_8000, 0x0102_0008_1020_4080, 0x0001_0004_0810_2040, 0x0000_0002_0408_1020,
+ 0x1020_4000_0000_0000, 0x0810_2000_8000_0000, 0x0408_1000_4080_0000, 0x0204_0800_2040_8000, 0x0102_0400_1020_4080, 0x0001_0200_0810_2040, 0x0000_0100_0408_1020, 0x0000_0000_0204_0810,
+ 0x0810_2040_0000_0000, 0x0408_1020_0080_0000, 0x0204_0810_0040_8000, 0x0102_0408_0020_4080, 0x0001_0204_0010_2040, 0x0000_0102_0008_1020, 0x0000_0001_0004_0810, 0x0000_0000_0002_0408,
+ 0x0408_1020_4000_0000, 0x0204_0810_2000_8000, 0x0102_0408_1000_4080, 0x0001_0204_0800_2040, 0x0000_0102_0400_1020, 0x0000_0001_0200_0810, 0x0000_0000_0100_0408, 0x0000_0000_0000_0204,
+ 0x0204_0810_2040_0000, 0x0102_0408_1020_0080, 0x0001_0204_0810_0040, 0x0000_0102_0408_0020, 0x0000_0001_0204_0010, 0x0000_0000_0102_0008, 0x0000_0000_0001_0004, 0x0000_0000_0000_0002,
+ 0x0102_0408_1020_4000, 0x0001_0204_0810_2000, 0x0000_0102_0408_1000, 0x0000_0001_0204_0800, 0x0000_0000_0102_0400, 0x0000_0000_0001_0200, 0x0000_0000_0000_0100, 0x0000_0000_0000_0000,
+ )
+ANTIDIA_MASK = (
+ 0x0040_2010_0804_0201, 0x0020_1008_0402_0100, 0x0010_0804_0201_0000, 0x0008_0402_0100_0000, 0x0004_0201_0000_0000, 0x0002_0100_0000_0000, 0x0001_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_4020_1008_0402, 0x8000_2010_0804_0201, 0x4000_1008_0402_0100, 0x2000_0804_0201_0000, 0x1000_0402_0100_0000, 0x0800_0201_0000_0000, 0x0400_0100_0000_0000, 0x0200_0000_0000_0000,
+ 0x0000_0040_2010_0804, 0x0080_0020_1008_0402, 0x8040_0010_0804_0201, 0x4020_0008_0402_0100, 0x2010_0004_0201_0000, 0x1008_0002_0100_0000, 0x0804_0001_0000_0000, 0x0402_0000_0000_0000,
+ 0x0000_0000_4020_1008, 0x0000_8000_2010_0804, 0x0080_4000_1008_0402, 0x8040_2000_0804_0201, 0x4020_1000_0402_0100, 0x2010_0800_0201_0000, 0x1008_0400_0100_0000, 0x0804_0200_0000_0000,
+ 0x0000_0000_0040_2010, 0x0000_0080_0020_1008, 0x0000_8040_0010_0804, 0x0080_4020_0008_0402, 0x8040_2010_0004_0201, 0x4020_1008_0002_0100, 0x2010_0804_0001_0000, 0x1008_0402_0000_0000,
+ 0x0000_0000_0000_4020, 0x0000_0000_8000_2010, 0x0000_0080_4000_1008, 0x0000_8040_2000_0804, 0x0080_4020_1000_0402, 0x8040_2010_0800_0201, 0x4020_1008_0400_0100, 0x2010_0804_0200_0000,
+ 0x0000_0000_0000_0040, 0x0000_0000_0080_0020, 0x0000_0000_8040_0010, 0x0000_0080_4020_0008, 0x0000_8040_2010_0004, 0x0080_4020_1008_0002, 0x8040_2010_0804_0001, 0x4020_1008_0402_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_8000, 0x0000_0000_0080_4000, 0x0000_0000_8040_2000, 0x0000_0080_4020_1000, 0x0000_8040_2010_0800, 0x0080_4020_1008_0400, 0x8040_2010_0804_0200,
+ )
+HOR_MASK = (
+ 0x7F00_0000_0000_0000, 0xBF00_0000_0000_0000, 0xDF00_0000_0000_0000, 0xEF00_0000_0000_0000, 0xF700_0000_0000_0000, 0xFB00_0000_0000_0000, 0xFD00_0000_0000_0000, 0xFE00_0000_0000_0000,
+ 0x007F_0000_0000_0000, 0x00BF_0000_0000_0000, 0x00DF_0000_0000_0000, 0x00EF_0000_0000_0000, 0x00F7_0000_0000_0000, 0x00FB_0000_0000_0000, 0x00FD_0000_0000_0000, 0x00FE_0000_0000_0000,
+ 0x0000_7F00_0000_0000, 0x0000_BF00_0000_0000, 0x0000_DF00_0000_0000, 0x0000_EF00_0000_0000, 0x0000_F700_0000_0000, 0x0000_FB00_0000_0000, 0x0000_FD00_0000_0000, 0x0000_FE00_0000_0000,
+ 0x0000_007F_0000_0000, 0x0000_00BF_0000_0000, 0x0000_00DF_0000_0000, 0x0000_00EF_0000_0000, 0x0000_00F7_0000_0000, 0x0000_00FB_0000_0000, 0x0000_00FD_0000_0000, 0x0000_00FE_0000_0000,
+ 0x0000_0000_7F00_0000, 0x0000_0000_BF00_0000, 0x0000_0000_DF00_0000, 0x0000_0000_EF00_0000, 0x0000_0000_F700_0000, 0x0000_0000_FB00_0000, 0x0000_0000_FD00_0000, 0x0000_0000_FE00_0000,
+ 0x0000_0000_007F_0000, 0x0000_0000_00BF_0000, 0x0000_0000_00DF_0000, 0x0000_0000_00EF_0000, 0x0000_0000_00F7_0000, 0x0000_0000_00FB_0000, 0x0000_0000_00FD_0000, 0x0000_0000_00FE_0000,
+ 0x0000_0000_0000_7F00, 0x0000_0000_0000_BF00, 0x0000_0000_0000_DF00, 0x0000_0000_0000_EF00, 0x0000_0000_0000_F700, 0x0000_0000_0000_FB00, 0x0000_0000_0000_FD00, 0x0000_0000_0000_FE00,
+ 0x0000_0000_0000_007F, 0x0000_0000_0000_00BF, 0x0000_0000_0000_00DF, 0x0000_0000_0000_00EF, 0x0000_0000_0000_00F7, 0x0000_0000_0000_00FB, 0x0000_0000_0000_00FD, 0x0000_0000_0000_00FE,
+ )
+VER_MASK = (
+ 0x0080_8080_8080_8080, 0x0040_4040_4040_4040, 0x0020_2020_2020_2020, 0x0010_1010_1010_1010, 0x0008_0808_0808_0808, 0x0004_0404_0404_0404, 0x0002_0202_0202_0202, 0x0001_0101_0101_0101,
+ 0x8000_8080_8080_8080, 0x4000_4040_4040_4040, 0x2000_2020_2020_2020, 0x1000_1010_1010_1010, 0x0800_0808_0808_0808, 0x0400_0404_0404_0404, 0x0200_0202_0202_0202, 0x0100_0101_0101_0101,
+ 0x8080_0080_8080_8080, 0x4040_0040_4040_4040, 0x2020_0020_2020_2020, 0x1010_0010_1010_1010, 0x0808_0008_0808_0808, 0x0404_0004_0404_0404, 0x0202_0002_0202_0202, 0x0101_0001_0101_0101,
+ 0x8080_8000_8080_8080, 0x4040_4000_4040_4040, 0x2020_2000_2020_2020, 0x1010_1000_1010_1010, 0x0808_0800_0808_0808, 0x0404_0400_0404_0404, 0x0202_0200_0202_0202, 0x0101_0100_0101_0101,
+ 0x8080_8080_0080_8080, 0x4040_4040_0040_4040, 0x2020_2020_0020_2020, 0x1010_1010_0010_1010, 0x0808_0808_0008_0808, 0x0404_0404_0004_0404, 0x0202_0202_0002_0202, 0x0101_0101_0001_0101,
+ 0x8080_8080_8000_8080, 0x4040_4040_4000_4040, 0x2020_2020_2000_2020, 0x1010_1010_1000_1010, 0x0808_0808_0800_0808, 0x0404_0404_0400_0404, 0x0202_0202_0200_0202, 0x0101_0101_0100_0101,
+ 0x8080_8080_8080_0080, 0x4040_4040_4040_0040, 0x2020_2020_2020_0020, 0x1010_1010_1010_0010, 0x0808_0808_0808_0008, 0x0404_0404_0404_0004, 0x0202_0202_0202_0002, 0x0101_0101_0101_0001,
+ 0x8080_8080_8080_8000, 0x4040_4040_4040_4000, 0x2020_2020_2020_2000, 0x1010_1010_1010_1000, 0x0808_0808_0808_0800, 0x0404_0404_0404_0400, 0x0202_0202_0202_0200, 0x0101_0101_0101_0100,
+ )
+RIGHT_MASK = (
+ 0x7F00_0000_0000_0000, 0x3F00_0000_0000_0000, 0x1F00_0000_0000_0000, 0x0F00_0000_0000_0000, 0x0700_0000_0000_0000, 0x0300_0000_0000_0000, 0x0100_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x007F_0000_0000_0000, 0x003F_0000_0000_0000, 0x001F_0000_0000_0000, 0x000F_0000_0000_0000, 0x0007_0000_0000_0000, 0x0003_0000_0000_0000, 0x0001_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_7F00_0000_0000, 0x0000_3F00_0000_0000, 0x0000_1F00_0000_0000, 0x0000_0F00_0000_0000, 0x0000_0700_0000_0000, 0x0000_0300_0000_0000, 0x0000_0100_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_007F_0000_0000, 0x0000_003F_0000_0000, 0x0000_001F_0000_0000, 0x0000_000F_0000_0000, 0x0000_0007_0000_0000, 0x0000_0003_0000_0000, 0x0000_0001_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_7F00_0000, 0x0000_0000_3F00_0000, 0x0000_0000_1F00_0000, 0x0000_0000_0F00_0000, 0x0000_0000_0700_0000, 0x0000_0000_0300_0000, 0x0000_0000_0100_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_007F_0000, 0x0000_0000_003F_0000, 0x0000_0000_001F_0000, 0x0000_0000_000F_0000, 0x0000_0000_0007_0000, 0x0000_0000_0003_0000, 0x0000_0000_0001_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_7F00, 0x0000_0000_0000_3F00, 0x0000_0000_0000_1F00, 0x0000_0000_0000_0F00, 0x0000_0000_0000_0700, 0x0000_0000_0000_0300, 0x0000_0000_0000_0100, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_007F, 0x0000_0000_0000_003F, 0x0000_0000_0000_001F, 0x0000_0000_0000_000F, 0x0000_0000_0000_0007, 0x0000_0000_0000_0003, 0x0000_0000_0000_0001, 0x0000_0000_0000_0000,
+ )
+LEFT_MASK = (
+ 0x0000_0000_0000_0000, 0x8000_0000_0000_0000, 0xC000_0000_0000_0000, 0xE000_0000_0000_0000, 0xF000_0000_0000_0000, 0xF800_0000_0000_0000, 0xFC00_0000_0000_0000, 0xFE00_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0080_0000_0000_0000, 0x00C0_0000_0000_0000, 0x00E0_0000_0000_0000, 0x00F0_0000_0000_0000, 0x00F8_0000_0000_0000, 0x00FC_0000_0000_0000, 0x00FE_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_8000_0000_0000, 0x0000_C000_0000_0000, 0x0000_E000_0000_0000, 0x0000_F000_0000_0000, 0x0000_F800_0000_0000, 0x0000_FC00_0000_0000, 0x0000_FE00_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0080_0000_0000, 0x0000_00C0_0000_0000, 0x0000_00E0_0000_0000, 0x0000_00F0_0000_0000, 0x0000_00F8_0000_0000, 0x0000_00FC_0000_0000, 0x0000_00FE_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_8000_0000, 0x0000_0000_C000_0000, 0x0000_0000_E000_0000, 0x0000_0000_F000_0000, 0x0000_0000_F800_0000, 0x0000_0000_FC00_0000, 0x0000_0000_FE00_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0080_0000, 0x0000_0000_00C0_0000, 0x0000_0000_00E0_0000, 0x0000_0000_00F0_0000, 0x0000_0000_00F8_0000, 0x0000_0000_00FC_0000, 0x0000_0000_00FE_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_8000, 0x0000_0000_0000_C000, 0x0000_0000_0000_E000, 0x0000_0000_0000_F000, 0x0000_0000_0000_F800, 0x0000_0000_0000_FC00, 0x0000_0000_0000_FE00,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0080, 0x0000_0000_0000_00C0, 0x0000_0000_0000_00E0, 0x0000_0000_0000_00F0, 0x0000_0000_0000_00F8, 0x0000_0000_0000_00FC, 0x0000_0000_0000_00FE,
+ )
+UP_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x8000_0000_0000_0000, 0x4000_0000_0000_0000, 0x2000_0000_0000_0000, 0x1000_0000_0000_0000, 0x0800_0000_0000_0000, 0x0400_0000_0000_0000, 0x0200_0000_0000_0000, 0x0100_0000_0000_0000,
+ 0x8080_0000_0000_0000, 0x4040_0000_0000_0000, 0x2020_0000_0000_0000, 0x1010_0000_0000_0000, 0x0808_0000_0000_0000, 0x0404_0000_0000_0000, 0x0202_0000_0000_0000, 0x0101_0000_0000_0000,
+ 0x8080_8000_0000_0000, 0x4040_4000_0000_0000, 0x2020_2000_0000_0000, 0x1010_1000_0000_0000, 0x0808_0800_0000_0000, 0x0404_0400_0000_0000, 0x0202_0200_0000_0000, 0x0101_0100_0000_0000,
+ 0x8080_8080_0000_0000, 0x4040_4040_0000_0000, 0x2020_2020_0000_0000, 0x1010_1010_0000_0000, 0x0808_0808_0000_0000, 0x0404_0404_0000_0000, 0x0202_0202_0000_0000, 0x0101_0101_0000_0000,
+ 0x8080_8080_8000_0000, 0x4040_4040_4000_0000, 0x2020_2020_2000_0000, 0x1010_1010_1000_0000, 0x0808_0808_0800_0000, 0x0404_0404_0400_0000, 0x0202_0202_0200_0000, 0x0101_0101_0100_0000,
+ 0x8080_8080_8080_0000, 0x4040_4040_4040_0000, 0x2020_2020_2020_0000, 0x1010_1010_1010_0000, 0x0808_0808_0808_0000, 0x0404_0404_0404_0000, 0x0202_0202_0202_0000, 0x0101_0101_0101_0000,
+ 0x8080_8080_8080_8000, 0x4040_4040_4040_4000, 0x2020_2020_2020_2000, 0x1010_1010_1010_1000, 0x0808_0808_0808_0800, 0x0404_0404_0404_0400, 0x0202_0202_0202_0200, 0x0101_0101_0101_0100,
+ )
+DOWN_MASK = (
+ 0x0080_8080_8080_8080, 0x0040_4040_4040_4040, 0x0020_2020_2020_2020, 0x0010_1010_1010_1010, 0x0008_0808_0808_0808, 0x0004_0404_0404_0404, 0x0002_0202_0202_0202, 0x0001_0101_0101_0101,
+ 0x0000_8080_8080_8080, 0x0000_4040_4040_4040, 0x0000_2020_2020_2020, 0x0000_1010_1010_1010, 0x0000_0808_0808_0808, 0x0000_0404_0404_0404, 0x0000_0202_0202_0202, 0x0000_0101_0101_0101,
+ 0x0000_0080_8080_8080, 0x0000_0040_4040_4040, 0x0000_0020_2020_2020, 0x0000_0010_1010_1010, 0x0000_0008_0808_0808, 0x0000_0004_0404_0404, 0x0000_0002_0202_0202, 0x0000_0001_0101_0101,
+ 0x0000_0000_8080_8080, 0x0000_0000_4040_4040, 0x0000_0000_2020_2020, 0x0000_0000_1010_1010, 0x0000_0000_0808_0808, 0x0000_0000_0404_0404, 0x0000_0000_0202_0202, 0x0000_0000_0101_0101,
+ 0x0000_0000_0080_8080, 0x0000_0000_0040_4040, 0x0000_0000_0020_2020, 0x0000_0000_0010_1010, 0x0000_0000_0008_0808, 0x0000_0000_0004_0404, 0x0000_0000_0002_0202, 0x0000_0000_0001_0101,
+ 0x0000_0000_0000_8080, 0x0000_0000_0000_4040, 0x0000_0000_0000_2020, 0x0000_0000_0000_1010, 0x0000_0000_0000_0808, 0x0000_0000_0000_0404, 0x0000_0000_0000_0202, 0x0000_0000_0000_0101,
+ 0x0000_0000_0000_0080, 0x0000_0000_0000_0040, 0x0000_0000_0000_0020, 0x0000_0000_0000_0010, 0x0000_0000_0000_0008, 0x0000_0000_0000_0004, 0x0000_0000_0000_0002, 0x0000_0000_0000_0001,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ )
+RIGHT_UP_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x4000_0000_0000_0000, 0x2000_0000_0000_0000, 0x1000_0000_0000_0000, 0x0800_0000_0000_0000, 0x0400_0000_0000_0000, 0x0200_0000_0000_0000, 0x0100_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x2040_0000_0000_0000, 0x1020_0000_0000_0000, 0x0810_0000_0000_0000, 0x0408_0000_0000_0000, 0x0204_0000_0000_0000, 0x0102_0000_0000_0000, 0x0001_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x1020_4000_0000_0000, 0x0810_2000_0000_0000, 0x0408_1000_0000_0000, 0x0204_0800_0000_0000, 0x0102_0400_0000_0000, 0x0001_0200_0000_0000, 0x0000_0100_0000_0000, 0x0000_0000_0000_0000,
+ 0x0810_2040_0000_0000, 0x0408_1020_0000_0000, 0x0204_0810_0000_0000, 0x0102_0408_0000_0000, 0x0001_0204_0000_0000, 0x0000_0102_0000_0000, 0x0000_0001_0000_0000, 0x0000_0000_0000_0000,
+ 0x0408_1020_4000_0000, 0x0204_0810_2000_0000, 0x0102_0408_1000_0000, 0x0001_0204_0800_0000, 0x0000_0102_0400_0000, 0x0000_0001_0200_0000, 0x0000_0000_0100_0000, 0x0000_0000_0000_0000,
+ 0x0204_0810_2040_0000, 0x0102_0408_1020_0000, 0x0001_0204_0810_0000, 0x0000_0102_0408_0000, 0x0000_0001_0204_0000, 0x0000_0000_0102_0000, 0x0000_0000_0001_0000, 0x0000_0000_0000_0000,
+ 0x0102_0408_1020_4000, 0x0001_0204_0810_2000, 0x0000_0102_0408_1000, 0x0000_0001_0204_0800, 0x0000_0000_0102_0400, 0x0000_0000_0001_0200, 0x0000_0000_0000_0100, 0x0000_0000_0000_0000,
+ )
+LEFT_UP_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x8000_0000_0000_0000, 0x4000_0000_0000_0000, 0x2000_0000_0000_0000, 0x1000_0000_0000_0000, 0x0800_0000_0000_0000, 0x0400_0000_0000_0000, 0x0200_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0080_0000_0000_0000, 0x8040_0000_0000_0000, 0x4020_0000_0000_0000, 0x2010_0000_0000_0000, 0x1008_0000_0000_0000, 0x0804_0000_0000_0000, 0x0402_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_8000_0000_0000, 0x0080_4000_0000_0000, 0x8040_2000_0000_0000, 0x4020_1000_0000_0000, 0x2010_0800_0000_0000, 0x1008_0400_0000_0000, 0x0804_0200_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0080_0000_0000, 0x0000_8040_0000_0000, 0x0080_4020_0000_0000, 0x8040_2010_0000_0000, 0x4020_1008_0000_0000, 0x2010_0804_0000_0000, 0x1008_0402_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_8000_0000, 0x0000_0080_4000_0000, 0x0000_8040_2000_0000, 0x0080_4020_1000_0000, 0x8040_2010_0800_0000, 0x4020_1008_0400_0000, 0x2010_0804_0200_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0080_0000, 0x0000_0000_8040_0000, 0x0000_0080_4020_0000, 0x0000_8040_2010_0000, 0x0080_4020_1008_0000, 0x8040_2010_0804_0000, 0x4020_1008_0402_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_8000, 0x0000_0000_0080_4000, 0x0000_0000_8040_2000, 0x0000_0080_4020_1000, 0x0000_8040_2010_0800, 0x0080_4020_1008_0400, 0x8040_2010_0804_0200,
+ )
+RIGHT_DOWN_MASK = (
+ 0x0040_2010_0804_0201, 0x0020_1008_0402_0100, 0x0010_0804_0201_0000, 0x0008_0402_0100_0000, 0x0004_0201_0000_0000, 0x0002_0100_0000_0000, 0x0001_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_4020_1008_0402, 0x0000_2010_0804_0201, 0x0000_1008_0402_0100, 0x0000_0804_0201_0000, 0x0000_0402_0100_0000, 0x0000_0201_0000_0000, 0x0000_0100_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0040_2010_0804, 0x0000_0020_1008_0402, 0x0000_0010_0804_0201, 0x0000_0008_0402_0100, 0x0000_0004_0201_0000, 0x0000_0002_0100_0000, 0x0000_0001_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_4020_1008, 0x0000_0000_2010_0804, 0x0000_0000_1008_0402, 0x0000_0000_0804_0201, 0x0000_0000_0402_0100, 0x0000_0000_0201_0000, 0x0000_0000_0100_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0040_2010, 0x0000_0000_0020_1008, 0x0000_0000_0010_0804, 0x0000_0000_0008_0402, 0x0000_0000_0004_0201, 0x0000_0000_0002_0100, 0x0000_0000_0001_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_4020, 0x0000_0000_0000_2010, 0x0000_0000_0000_1008, 0x0000_0000_0000_0804, 0x0000_0000_0000_0402, 0x0000_0000_0000_0201, 0x0000_0000_0000_0100, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0040, 0x0000_0000_0000_0020, 0x0000_0000_0000_0010, 0x0000_0000_0000_0008, 0x0000_0000_0000_0004, 0x0000_0000_0000_0002, 0x0000_0000_0000_0001, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ )
+LEFT_DOWN_MASK = (
+ 0x0000_0000_0000_0000, 0x0080_0000_0000_0000, 0x0040_8000_0000_0000, 0x0020_4080_0000_0000, 0x0010_2040_8000_0000, 0x0008_1020_4080_0000, 0x0004_0810_2040_8000, 0x0002_0408_1020_4080,
+ 0x0000_0000_0000_0000, 0x0000_8000_0000_0000, 0x0000_4080_0000_0000, 0x0000_2040_8000_0000, 0x0000_1020_4080_0000, 0x0000_0810_2040_8000, 0x0000_0408_1020_4080, 0x0000_0204_0810_2040,
+ 0x0000_0000_0000_0000, 0x0000_0080_0000_0000, 0x0000_0040_8000_0000, 0x0000_0020_4080_0000, 0x0000_0010_2040_8000, 0x0000_0008_1020_4080, 0x0000_0004_0810_2040, 0x0000_0002_0408_1020,
+ 0x0000_0000_0000_0000, 0x0000_0000_8000_0000, 0x0000_0000_4080_0000, 0x0000_0000_2040_8000, 0x0000_0000_1020_4080, 0x0000_0000_0810_2040, 0x0000_0000_0408_1020, 0x0000_0000_0204_0810,
+ 0x0000_0000_0000_0000, 0x0000_0000_0080_0000, 0x0000_0000_0040_8000, 0x0000_0000_0020_4080, 0x0000_0000_0010_2040, 0x0000_0000_0008_1020, 0x0000_0000_0004_0810, 0x0000_0000_0002_0408,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_8000, 0x0000_0000_0000_4080, 0x0000_0000_0000_2040, 0x0000_0000_0000_1020, 0x0000_0000_0000_0810, 0x0000_0000_0000_0408, 0x0000_0000_0000_0204,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0080, 0x0000_0000_0000_0040, 0x0000_0000_0000_0020, 0x0000_0000_0000_0010, 0x0000_0000_0000_0008, 0x0000_0000_0000_0004, 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ )
+
+# -------------------------------------------------
+
+R_MV_MASK = (
+ 0x807F_8080_8080_8080, 0xBF40_4040_4040_4040, 0xDF20_2020_2020_2020, 0xEF10_1010_1010_1010, 0xF708_0808_0808_0808, 0xFB04_0404_0404_0404, 0xFD02_0202_0202_0202, 0xFE01_0101_0101_0101,
+ 0x8080_7F80_8080_8080, 0x40BF_4040_4040_4040, 0x20DF_2020_2020_2020, 0x10EF_1010_1010_1010, 0x08F7_0808_0808_0808, 0x04FB_0404_0404_0404, 0x02FD_0202_0202_0202, 0x01FE_0101_0101_0101,
+ 0x8080_7F80_8080_8080, 0x4040_BF40_4040_4040, 0x2020_DF20_2020_2020, 0x1010_EF10_1010_1010, 0x0808_F708_0808_0808, 0x0404_FB04_0404_0404, 0x0202_FD02_0202_0202, 0x0101_FE01_0101_0101,
+ 0x8080_807F_8080_8080, 0x4040_40BF_4040_4040, 0x2020_20DF_2020_2020, 0x1010_10EF_1010_1010, 0x0808_08F7_0808_0808, 0x0404_04FB_0404_0404, 0x0202_02FD_0202_0202, 0x0101_01FE_0101_0101,
+ 0x8080_8080_7F80_8080, 0x4040_4040_BF40_4040, 0x2020_2020_DF20_2020, 0x1010_1010_EF10_1010, 0x0808_0808_F708_0808, 0x0404_0404_FB04_0404, 0x0202_0202_FD02_0202, 0x0101_0101_FE01_0101,
+ 0x8080_8080_807F_8080, 0x4040_4040_40BF_4040, 0x2020_2020_20DF_2020, 0x1010_1010_10EF_1010, 0x0808_0808_08F7_0808, 0x0404_0404_04FB_0404, 0x0202_0202_02FD_0202, 0x0101_0101_01FE_0101,
+ 0x8080_8080_8080_7F80, 0x4040_4040_4040_BF40, 0x2020_2020_2020_DF20, 0x1010_1010_1010_EF10, 0x0808_0808_0808_F708, 0x0404_0404_0404_FB04, 0x0202_0202_0202_FD02, 0x0101_0101_0101_FE01,
+ 0x8080_8080_8080_807F, 0x4040_4040_4040_40BF, 0x2020_2020_2020_20DF, 0x1010_1010_1010_10EF, 0x0808_0808_0808_08F7, 0x0404_0404_0404_04FB, 0x0202_0202_0202_02FD, 0x0101_0101_0101_01FE,
+ )
+N_MV_MASK = (
+ 0x0020_4000_0000_0000, 0x0010_A000_0000_0000, 0x0088_5000_0000_0000, 0x0044_2800_0000_0000, 0x0022_1400_0000_0000, 0x0011_0A00_0000_0000, 0x0008_0500_0000_0000, 0x0004_0200_0000_0000,
+ 0x2000_2040_0000_0000, 0x1000_10A0_0000_0000, 0x8800_8850_0000_0000, 0x4400_4428_0000_0000, 0x2200_2214_0000_0000, 0x1100_110A_0000_0000, 0x0800_0805_0000_0000, 0x0400_0402_0000_0000,
+ 0x4020_0020_4000_0000, 0xA010_0010_A000_0000, 0x5088_0088_5000_0000, 0x2844_0044_2800_0000, 0x1422_0022_1400_0000, 0x0A11_0011_0A00_0000, 0x0508_0008_0500_0000, 0x0204_0004_0200_0000,
+ 0x0040_2000_2040_0000, 0x00A0_1000_10A0_0000, 0x0050_8800_8850_0000, 0x0028_4400_4428_0000, 0x0014_2200_2214_0000, 0x000A_1100_110A_0000, 0x0005_0800_0805_0000, 0x0002_0400_0402_0000,
+ 0x0000_4020_0020_4000, 0x0000_A010_0010_A000, 0x0000_5088_0088_5000, 0x0000_2844_0044_2800, 0x0000_1422_0022_1400, 0x0000_0A11_0011_0A00, 0x0000_0508_0008_0500, 0x0000_0204_0004_0200,
+ 0x0000_0040_2000_2040, 0x0000_00A0_1000_10A0, 0x0000_0050_8800_8850, 0x0000_0028_4400_4428, 0x0000_0014_2200_2214, 0x0000_000A_1100_110A, 0x0000_0005_0800_0805, 0x0000_0002_0400_0402,
+ 0x0000_0000_4020_0020, 0x0000_0000_A010_0010, 0x0000_0000_5088_0088, 0x0000_0000_2844_0044, 0x0000_0000_1422_0022, 0x0000_0000_0A11_0011, 0x0000_0000_0508_0008, 0x0000_0000_0204_0004,
+ 0x0000_0000_0040_2000, 0x0000_0000_00A0_1000, 0x0000_0000_0050_8800, 0x0000_0000_0028_4400, 0x0000_0000_0014_2200, 0x0000_0000_000A_1100, 0x0000_0000_0005_0800, 0x0000_0000_0002_0400,
+ )
+B_MV_MASK = (
+ 0x0040_2010_0804_0201, 0x00A0_1008_0402_0100, 0x0050_8804_0201_0000, 0x0028_4482_0100_0000, 0x0014_2241_8000_0000, 0x000A_1120_4080_0000, 0x0005_0810_2040_8000, 0x0002_0408_1020_4080,
+ 0x4000_4020_1008_0402, 0xA000_A010_0804_0201, 0x5000_5088_0402_0100, 0x2800_2844_8201_0000, 0x1400_1422_4180_0000, 0x0A00_0A11_2040_8000, 0x0500_0508_1020_4080, 0x0200_0204_0810_2040,
+ 0x2040_0040_2010_0804, 0x10A0_00A0_1008_0402, 0x8850_0050_8804_0201, 0x4428_0028_4482_0100, 0x2214_0014_2241_8000, 0x110A_000A_1120_4080, 0x0805_0005_0810_2040, 0x0402_0002_0408_1020,
+ 0x1020_4000_4020_1008, 0x0810_A000_A010_0804, 0x0488_5000_5088_0402, 0x8244_2800_2844_8201, 0x4122_1400_1422_4180, 0x2011_0A00_0A11_2040, 0x1008_0500_0508_1020, 0x0804_0200_0204_0810,
+ 0x0810_2040_0040_2010, 0x0408_10A0_00A0_1008, 0x0204_8850_0050_8804, 0x0182_4428_0028_4482, 0x8041_2214_0014_2241, 0x4020_110A_000A_1120, 0x2010_0805_0005_0810, 0x1008_0402_0002_0408,
+ 0x0408_1020_4000_4020, 0x0204_0810_A000_A010, 0x0102_0488_5000_5088, 0x0001_8244_2800_2844, 0x0080_4122_1400_1422, 0x8040_2011_0A00_0A11, 0x4020_1008_0500_0508, 0x2010_0804_0200_0204,
+ 0x0204_0810_2040_0040, 0x0102_0408_10A0_00A0, 0x0001_0204_8850_0050, 0x0000_0182_4428_0028, 0x0000_8041_2214_0014, 0x0080_4020_110A_000A, 0x8040_2010_0805_0005, 0x4020_1008_0402_0102,
+ 0x0102_0408_1020_4000, 0x0001_0204_0810_A000, 0x0000_0102_0488_5000, 0x0000_0001_8244_2800, 0x0000_0080_4122_1400, 0x0000_8040_2011_0A00, 0x0080_4020_1008_0500, 0x8040_2010_0804_0200,
+ )
+Q_MV_MASK = (
+ 0x807F_A090_8884_8281, 0xBFE0_5048_4442_4140, 0xDF70_A824_2221_2020, 0xEF38_5492_1110_1010, 0xF71C_2A49_8808_0808, 0xFB0E_1524_4484_0404, 0xFD07_0A12_2242_8202, 0xFE03_0509_1121_4181,
+ 0xC080_7FA0_9088_8482, 0xE0BF_E050_4844_4241, 0x70DF_70A8_2422_2120, 0x38EF_3854_9211_1010, 0x1CF7_1C2A_4988_0808, 0x0EFB_0E15_2444_8404, 0x07FD_070A_1222_4282, 0x03FE_0305_0911_2141,
+ 0xA0C0_7FC0_A090_8884, 0x50E0_BFE0_5048_4442, 0xA870_DF70_A824_2221, 0x5438_EF38_5492_1110, 0x2A1C_F71C_2A49_8808, 0x150E_FB0E_1524_4484, 0x0A07_FD07_0A12_2242, 0x0503_FE03_0509_1121,
+ 0x90A0_C07F_C0A0_9088, 0x4850_E0BF_E050_4844, 0x24A8_70DF_70A8_2422, 0x9254_38EF_3854_9211, 0x492A_1CF7_1C2A_4988, 0x2415_0EFB_0E15_2444, 0x120A_07FD_070A_1222, 0x0905_03FE_0305_0911,
+ 0x8890_A0C0_7FC0_A090, 0x4448_50E0_BFE0_5048, 0x2224_A870_DF70_A824, 0x1192_5438_EF38_5492, 0x8849_2A1C_F71C_2A49, 0x4424_150E_FB0E_1524, 0x2212_0A07_FD07_0A12, 0x1109_0503_FE03_0509,
+ 0x8488_90A0_C07F_C0A0, 0x4244_4850_E0BF_E050, 0x2122_24A8_70DF_70A8, 0x1011_9254_38EF_3854, 0x0888_492A_1CF7_1C2A, 0x8444_2415_0EFB_0E15, 0x4222_120A_07FD_070A, 0x2111_0905_03FE_0305,
+ 0x8284_8890_A0C0_7FC0, 0x4142_4448_50E0_BFE0, 0x2021_2224_A870_DF70, 0x1010_1192_5438_EF38, 0x0808_8849_2A1C_F71C, 0x0484_4424_150E_FB0E, 0x8242_2212_0A07_FD07, 0x4121_1109_0503_FF03,
+ 0x8182_8488_90A0_C07F, 0x4041_4244_4850_E0BF, 0x2020_2122_24A8_70DF, 0x1010_1011_9254_38EF, 0x0808_0888_492A_1CF7, 0x0404_8444_2415_0EFB, 0x0282_4222_120A_07FD, 0x8141_2111_0905_03FE,
+ )
+K_MV_MASK = (
+ 0x40C0_0000_0000_0000, 0xA0E0_0000_0000_0000, 0x5070_0000_0000_0000, 0x2838_0000_0000_0000, 0x141C_0000_0000_0000, 0x0A0E_0000_0000_0000, 0x0507_0000_0000_0000, 0x0203_0000_0000_0000,
+ 0xC040_C000_0000_0000, 0xE0A0_E000_0000_0000, 0x7050_7000_0000_0000, 0x3828_3800_0000_0000, 0x1C14_1C00_0000_0000, 0x0E0A_0E00_0000_0000, 0x0705_0700_0000_0000, 0x0302_0300_0000_0000,
+ 0x00C0_40C0_0000_0000, 0x00E0_A0E0_0000_0000, 0x0070_5070_0000_0000, 0x0038_2838_0000_0000, 0x001C_141C_0000_0000, 0x000E_0A0E_0000_0000, 0x0007_0507_0000_0000, 0x0003_0203_0000_0000,
+ 0x0000_C040_C000_0000, 0x0000_E0A0_E000_0000, 0x0000_7050_7000_0000, 0x0000_3828_3800_0000, 0x0000_1C14_1C00_0000, 0x0000_0E0A_0E00_0000, 0x0000_0705_0700_0000, 0x0000_0302_0300_0000,
+ 0x0000_00C0_40C0_0000, 0x0000_00E0_A0E0_0000, 0x0000_0070_5070_0000, 0x0000_0038_2838_0000, 0x0000_001C_141C_0000, 0x0000_000E_0A0E_0000, 0x0000_0007_0507_0000, 0x0000_0003_0203_0000,
+ 0x0000_0000_C040_C000, 0x0000_0000_E0A0_E000, 0x0000_0000_7050_7000, 0x0000_0000_3828_3800, 0x0000_0000_1C14_1C00, 0x0000_0000_0E0A_0E00, 0x0000_0000_0705_0700, 0x0000_0000_0302_0300,
+ 0x0000_0000_00C0_40C0, 0x0000_0000_00E0_A0E0, 0x0000_0000_0070_5070, 0x0000_0000_0038_2838, 0x0000_0000_001C_141C, 0x0000_0000_000E_0A0E, 0x0000_0000_0007_0507, 0x0000_0000_0003_0203,
+ 0x0000_0000_0000_C040, 0x0000_0000_0000_E0A0, 0x0000_0000_0000_7050, 0x0000_0000_0000_3828, 0x0000_0000_0000_1C14, 0x0000_0000_0000_0E0A, 0x0000_0000_0000_0705, 0x0000_0000_0000_0302,
+ )
+
+# -------------------------------------------------
+
+WP_PUSH_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x8000_0000_0000_0000, 0x4000_0000_0000_0000, 0x2000_0000_0000_0000, 0x1000_0000_0000_0000, 0x0800_0000_0000_0000, 0x0400_0000_0000_0000, 0x0200_0000_0000_0000, 0x0100_0000_0000_0000,
+ 0x0080_0000_0000_0000, 0x0040_0000_0000_0000, 0x0020_0000_0000_0000, 0x0010_0000_0000_0000, 0x0008_0000_0000_0000, 0x0004_0000_0000_0000, 0x0002_0000_0000_0000, 0x0001_0000_0000_0000,
+ 0x0000_8000_0000_0000, 0x0000_4000_0000_0000, 0x0000_2000_0000_0000, 0x0000_1000_0000_0000, 0x0000_0800_0000_0000, 0x0000_0400_0000_0000, 0x0000_0200_0000_0000, 0x0000_0100_0000_0000,
+ 0x0000_0080_0000_0000, 0x0000_0040_0000_0000, 0x0000_0020_0000_0000, 0x0000_0010_0000_0000, 0x0000_0008_0000_0000, 0x0000_0004_0000_0000, 0x0000_0002_0000_0000, 0x0000_0001_0000_0000,
+ 0x0000_0000_8000_0000, 0x0000_0000_4000_0000, 0x0000_0000_2000_0000, 0x0000_0000_1000_0000, 0x0000_0000_0800_0000, 0x0000_0000_0400_0000, 0x0000_0000_0200_0000, 0x0000_0000_0100_0000,
+ 0x0000_0000_0080_0000, 0x0000_0000_0040_0000, 0x0000_0000_0020_0000, 0x0000_0000_0010_0000, 0x0000_0000_0008_0000, 0x0000_0000_0004_0000, 0x0000_0000_0002_0000, 0x0000_0000_0001_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ )
+WP_DOUBLE_PUSH_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_8000_0000, 0x0000_0000_4000_0000, 0x0000_0000_2000_0000, 0x0000_0000_1000_0000, 0x0000_0000_0800_0000, 0x0000_0000_0400_0000, 0x0000_0000_0200_0000, 0x0000_0000_0100_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ )
+WP_TAKE_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x4000_0000_0000_0000, 0xA000_0000_0000_0000, 0x5000_0000_0000_0000, 0x2800_0000_0000_0000, 0x1400_0000_0000_0000, 0x0A00_0000_0000_0000, 0x0500_0000_0000_0000, 0x0200_0000_0000_0000,
+ 0x0040_0000_0000_0000, 0x00A0_0000_0000_0000, 0x0050_0000_0000_0000, 0x0028_0000_0000_0000, 0x0014_0000_0000_0000, 0x000A_0000_0000_0000, 0x0005_0000_0000_0000, 0x0002_0000_0000_0000,
+ 0x0000_4000_0000_0000, 0x0000_A000_0000_0000, 0x0000_5000_0000_0000, 0x0000_2800_0000_0000, 0x0000_1400_0000_0000, 0x0000_0A00_0000_0000, 0x0000_0500_0000_0000, 0x0000_0200_0000_0000,
+ 0x0000_0040_0000_0000, 0x0000_00A0_0000_0000, 0x0000_0050_0000_0000, 0x0000_0028_0000_0000, 0x0000_0014_0000_0000, 0x0000_000A_0000_0000, 0x0000_0005_0000_0000, 0x0000_0002_0000_0000,
+ 0x0000_0000_4000_0000, 0x0000_0000_A000_0000, 0x0000_0000_5000_0000, 0x0000_0000_2800_0000, 0x0000_0000_1400_0000, 0x0000_0000_0A00_0000, 0x0000_0000_0500_0000, 0x0000_0000_0200_0000,
+ 0x0000_0000_0040_0000, 0x0000_0000_00A0_0000, 0x0000_0000_0050_0000, 0x0000_0000_0028_0000, 0x0000_0000_0014_0000, 0x0000_0000_000A_0000, 0x0000_0000_0005_0000, 0x0000_0000_0002_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ )
+BP_PUSH_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0080_8000_0000_0000, 0x0040_4000_0000_0000, 0x0020_2000_0000_0000, 0x0010_1000_0000_0000, 0x0008_0800_0000_0000, 0x0004_0400_0000_0000, 0x0002_0200_0000_0000, 0x0001_0100_0000_0000,
+ 0x0000_0080_0000_0000, 0x0000_0040_0000_0000, 0x0000_0020_0000_0000, 0x0000_0010_0000_0000, 0x0000_0008_0000_0000, 0x0000_0004_0000_0000, 0x0000_0002_0000_0000, 0x0000_0001_0000_0000,
+ 0x0000_0000_8000_0000, 0x0000_0000_4000_0000, 0x0000_0000_2000_0000, 0x0000_0000_1000_0000, 0x0000_0000_0800_0000, 0x0000_0000_0400_0000, 0x0000_0000_0200_0000, 0x0000_0000_0100_0000,
+ 0x0000_0000_0080_0000, 0x0000_0000_0040_0000, 0x0000_0000_0020_0000, 0x0000_0000_0010_0000, 0x0000_0000_0008_0000, 0x0000_0000_0004_0000, 0x0000_0000_0002_0000, 0x0000_0000_0001_0000,
+ 0x0000_0000_0000_8000, 0x0000_0000_0000_4000, 0x0000_0000_0000_2000, 0x0000_0000_0000_1000, 0x0000_0000_0000_0800, 0x0000_0000_0000_0400, 0x0000_0000_0000_0200, 0x0000_0000_0000_0100,
+ 0x0000_0000_0000_0080, 0x0000_0000_0000_0040, 0x0000_0000_0000_0020, 0x0000_0000_0000_0010, 0x0000_0000_0000_0008, 0x0000_0000_0000_0004, 0x0000_0000_0000_0002, 0x0000_0000_0000_0001,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ )
+BP_DOUBLE_PUSH_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0080_0000_0000_0000, 0x0040_0000_0000_0000, 0x0020_0000_0000_0000, 0x0010_0000_0000_0000, 0x0008_0000_0000_0000, 0x0004_0000_0000_0000, 0x0002_0000_0000_0000, 0x0001_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ )
+BP_TAKE_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_4000_0000_0000, 0x0000_A000_0000_0000, 0x0000_5000_0000_0000, 0x0000_2800_0000_0000, 0x0000_1400_0000_0000, 0x0000_0A00_0000_0000, 0x0000_0500_0000_0000, 0x0000_0200_0000_0000,
+ 0x0000_0040_0000_0000, 0x0000_00A0_0000_0000, 0x0000_0050_0000_0000, 0x0000_0028_0000_0000, 0x0000_0014_0000_0000, 0x0000_000A_0000_0000, 0x0000_0005_0000_0000, 0x0000_0002_0000_0000,
+ 0x0000_0000_4000_0000, 0x0000_0000_A000_0000, 0x0000_0000_5000_0000, 0x0000_0000_2800_0000, 0x0000_0000_1400_0000, 0x0000_0000_0A00_0000, 0x0000_0000_0500_0000, 0x0000_0000_0200_0000,
+ 0x0000_0000_0040_0000, 0x0000_0000_00A0_0000, 0x0000_0000_0050_0000, 0x0000_0000_0028_0000, 0x0000_0000_0014_0000, 0x0000_0000_000A_0000, 0x0000_0000_0005_0000, 0x0000_0000_0002_0000,
+ 0x0000_0000_0000_4000, 0x0000_0000_0000_A000, 0x0000_0000_0000_5000, 0x0000_0000_0000_2800, 0x0000_0000_0000_1400, 0x0000_0000_0000_0A00, 0x0000_0000_0000_0500, 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_0040, 0x0000_0000_0000_00A0, 0x0000_0000_0000_0050, 0x0000_0000_0000_0028, 0x0000_0000_0000_0014, 0x0000_0000_0000_000A, 0x0000_0000_0000_0005, 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ ) \ No newline at end of file
diff --git a/bitmasks.txt b/bitmasks.txt
new file mode 100644
index 0000000..d617d12
--- /dev/null
+++ b/bitmasks.txt
@@ -0,0 +1,603 @@
+0 1 0 0 0 0 0 0
+0 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+0 0 0 0 0 0 1 0
+0 0 0 0 0 0 0 1
+0 0 0 0 0 0 1 0
+
+1 0 0 0 0 0 0 0
+0 1 0 0 0 0 0 0
+0 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 1
+0 0 0 0 0 0 0 0
+0 0 0 0 0 1 0 1
+
+0 0 0 0 0 0 0 0
+1 0 0 0 0 0 0 0
+0 1 0 0 0 0 0 0
+0 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 1
+0 0 0 0 1 0 1 0
+0 0 0 0 0 0 0 0
+0 0 0 0 1 0 1 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 1 0 0 0 0 0 1
+0 0 1 0 0 0 1 0
+0 0 0 1 0 1 0 0
+0 0 0 0 0 0 0 0
+0 0 0 1 0 1 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 1
+1 0 0 0 0 0 1 0
+0 1 0 0 0 1 0 0
+0 0 1 0 1 0 0 0
+0 0 0 0 0 0 0 0
+0 0 1 0 1 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 1 0
+0 0 0 0 0 1 0 0
+1 0 0 0 1 0 0 0
+0 1 0 1 0 0 0 0
+0 0 0 0 0 0 0 0
+0 1 0 1 0 0 0 0
+
+0 0 0 0 0 0 0 1
+0 0 0 0 0 0 1 0
+0 0 0 0 0 1 0 0
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+1 0 1 0 0 0 0 0
+0 0 0 0 0 0 0 0
+1 0 1 0 0 0 0 0
+
+0 0 0 0 0 0 1 0
+0 0 0 0 0 1 0 0
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+0 0 1 0 0 0 0 0
+0 1 0 0 0 0 0 0
+0 0 0 0 0 0 0 0
+0 1 0 0 0 0 0 0
+
+0 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+0 0 0 0 0 0 1 0
+0 0 0 0 0 0 0 0
+0 0 0 0 0 0 1 0
+0 0 0 0 0 1 0 0
+
+0 1 0 0 0 0 0 0
+0 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 1
+0 0 0 0 0 0 0 0
+0 0 0 0 0 1 0 1
+0 0 0 0 1 0 0 0
+
+1 0 0 0 0 0 0 0
+0 1 0 0 0 0 0 0
+0 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 1
+0 0 0 0 1 0 1 0
+0 0 0 0 0 0 0 0
+0 0 0 0 1 0 1 0
+0 0 0 1 0 0 0 1
+
+0 0 0 0 0 0 0 0
+1 0 0 0 0 0 0 0
+0 1 0 0 0 0 0 1
+0 0 1 0 0 0 1 0
+0 0 0 1 0 1 0 0
+0 0 0 0 0 0 0 0
+0 0 0 1 0 1 0 0
+0 0 1 0 0 0 1 0
+
+0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 1
+1 0 0 0 0 0 1 0
+0 1 0 0 0 1 0 0
+0 0 1 0 1 0 0 0
+0 0 0 0 0 0 0 0
+0 0 1 0 1 0 0 0
+0 1 0 0 0 1 0 0
+
+0 0 0 0 0 0 0 1
+0 0 0 0 0 0 1 0
+0 0 0 0 0 1 0 0
+1 0 0 0 1 0 0 0
+0 1 0 1 0 0 0 0
+0 0 0 0 0 0 0 0
+0 1 0 1 0 0 0 0
+1 0 0 0 1 0 0 0
+
+0 0 0 0 0 0 1 0
+0 0 0 0 0 1 0 0
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+1 0 1 0 0 0 0 0
+0 0 0 0 0 0 0 0
+1 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+
+0 0 0 0 0 1 0 0
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+0 0 1 0 0 0 0 0
+0 1 0 0 0 0 0 0
+0 0 0 0 0 0 0 0
+0 1 0 0 0 0 0 0
+0 0 1 0 0 0 0 0
+
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+0 0 0 0 0 0 1 0
+0 0 0 0 0 0 0 0
+0 0 0 0 0 0 1 0
+0 0 0 0 0 1 0 0
+0 0 0 0 1 0 0 0
+
+0 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 1
+0 0 0 0 0 0 0 0
+0 0 0 0 0 1 0 1
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+
+0 1 0 0 0 0 0 0
+0 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 1
+0 0 0 0 1 0 1 0
+0 0 0 0 0 0 0 0
+0 0 0 0 1 0 1 0
+0 0 0 1 0 0 0 1
+0 0 1 0 0 0 0 0
+
+1 0 0 0 0 0 0 0
+0 1 0 0 0 0 0 1
+0 0 1 0 0 0 1 0
+0 0 0 1 0 1 0 0
+0 0 0 0 0 0 0 0
+0 0 0 1 0 1 0 0
+0 0 1 0 0 0 1 0
+0 1 0 0 0 0 0 1
+
+0 0 0 0 0 0 0 1
+1 0 0 0 0 0 1 0
+0 1 0 0 0 1 0 0
+0 0 1 0 1 0 0 0
+0 0 0 0 0 0 0 0
+0 0 1 0 1 0 0 0
+0 1 0 0 0 1 0 0
+1 0 0 0 0 0 1 0
+
+0 0 0 0 0 0 1 0
+0 0 0 0 0 1 0 0
+1 0 0 0 1 0 0 0
+0 1 0 1 0 0 0 0
+0 0 0 0 0 0 0 0
+0 1 0 1 0 0 0 0
+1 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+
+0 0 0 0 0 1 0 0
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+1 0 1 0 0 0 0 0
+0 0 0 0 0 0 0 0
+1 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+0 0 1 0 0 0 0 0
+0 1 0 0 0 0 0 0
+0 0 0 0 0 0 0 0
+0 1 0 0 0 0 0 0
+0 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+0 0 0 0 0 0 1 0
+0 0 0 0 0 0 0 0
+0 0 0 0 0 0 1 0
+0 0 0 0 0 1 0 0
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 1
+0 0 0 0 0 0 0 0
+0 0 0 0 0 1 0 1
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+0 0 1 0 0 0 0 0
+
+0 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 1
+0 0 0 0 1 0 1 0
+0 0 0 0 0 0 0 0
+0 0 0 0 1 0 1 0
+0 0 0 1 0 0 0 1
+0 0 1 0 0 0 0 0
+0 1 0 0 0 0 0 0
+
+0 1 0 0 0 0 0 1
+0 0 1 0 0 0 1 0
+0 0 0 1 0 1 0 0
+0 0 0 0 0 0 0 0
+0 0 0 1 0 1 0 0
+0 0 1 0 0 0 1 0
+0 1 0 0 0 0 0 1
+1 0 0 0 0 0 0 0
+
+1 0 0 0 0 0 1 0
+0 1 0 0 0 1 0 0
+0 0 1 0 1 0 0 0
+0 0 0 0 0 0 0 0
+0 0 1 0 1 0 0 0
+0 1 0 0 0 1 0 0
+1 0 0 0 0 0 1 0
+0 0 0 0 0 0 0 1
+
+0 0 0 0 0 1 0 0
+1 0 0 0 1 0 0 0
+0 1 0 1 0 0 0 0
+0 0 0 0 0 0 0 0
+0 1 0 1 0 0 0 0
+1 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+0 0 0 0 0 0 1 0
+
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+1 0 1 0 0 0 0 0
+0 0 0 0 0 0 0 0
+1 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+
+0 0 0 1 0 0 0 0
+0 0 1 0 0 0 0 0
+0 1 0 0 0 0 0 0
+0 0 0 0 0 0 0 0
+0 1 0 0 0 0 0 0
+0 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+
+0 0 0 0 0 1 0 0
+0 0 0 0 0 0 1 0
+0 0 0 0 0 0 0 0
+0 0 0 0 0 0 1 0
+0 0 0 0 0 1 0 0
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+0 0 1 0 0 0 0 0
+
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 1
+0 0 0 0 0 0 0 0
+0 0 0 0 0 1 0 1
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+0 0 1 0 0 0 0 0
+0 1 0 0 0 0 0 0
+
+0 0 0 1 0 0 0 1
+0 0 0 0 1 0 1 0
+0 0 0 0 0 0 0 0
+0 0 0 0 1 0 1 0
+0 0 0 1 0 0 0 1
+0 0 1 0 0 0 0 0
+0 1 0 0 0 0 0 0
+1 0 0 0 0 0 0 0
+
+0 0 1 0 0 0 1 0
+0 0 0 1 0 1 0 0
+0 0 0 0 0 0 0 0
+0 0 0 1 0 1 0 0
+0 0 1 0 0 0 1 0
+0 1 0 0 0 0 0 1
+1 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0
+
+0 1 0 0 0 1 0 0
+0 0 1 0 1 0 0 0
+0 0 0 0 0 0 0 0
+0 0 1 0 1 0 0 0
+0 1 0 0 0 1 0 0
+1 0 0 0 0 0 1 0
+0 0 0 0 0 0 0 1
+0 0 0 0 0 0 0 0
+
+1 0 0 0 1 0 0 0
+0 1 0 1 0 0 0 0
+0 0 0 0 0 0 0 0
+0 1 0 1 0 0 0 0
+1 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+0 0 0 0 0 0 1 0
+0 0 0 0 0 0 0 1
+
+0 0 0 1 0 0 0 0
+1 0 1 0 0 0 0 0
+0 0 0 0 0 0 0 0
+1 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+0 0 0 0 0 0 1 0
+
+0 0 1 0 0 0 0 0
+0 1 0 0 0 0 0 0
+0 0 0 0 0 0 0 0
+0 1 0 0 0 0 0 0
+0 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+
+0 0 0 0 0 0 1 0
+0 0 0 0 0 0 0 0
+0 0 0 0 0 0 1 0
+0 0 0 0 0 1 0 0
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+0 0 1 0 0 0 0 0
+0 1 0 0 0 0 0 0
+
+0 0 0 0 0 1 0 1
+0 0 0 0 0 0 0 0
+0 0 0 0 0 1 0 1
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+0 0 1 0 0 0 0 0
+0 1 0 0 0 0 0 0
+1 0 0 0 0 0 0 0
+
+0 0 0 0 1 0 1 0
+0 0 0 0 0 0 0 0
+0 0 0 0 1 0 1 0
+0 0 0 1 0 0 0 1
+0 0 1 0 0 0 0 0
+0 1 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 1 0 1 0 0
+0 0 0 0 0 0 0 0
+0 0 0 1 0 1 0 0
+0 0 1 0 0 0 1 0
+0 1 0 0 0 0 0 1
+1 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 1 0 1 0 0 0
+0 0 0 0 0 0 0 0
+0 0 1 0 1 0 0 0
+0 1 0 0 0 1 0 0
+1 0 0 0 0 0 1 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 1 0 1 0 0 0 0
+0 0 0 0 0 0 0 0
+0 1 0 1 0 0 0 0
+1 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+0 0 0 0 0 0 1 0
+0 0 0 0 0 0 0 1
+0 0 0 0 0 0 0 0
+
+1 0 1 0 0 0 0 0
+0 0 0 0 0 0 0 0
+1 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+0 0 0 0 0 0 1 0
+0 0 0 0 0 0 0 1
+
+0 1 0 0 0 0 0 0
+0 0 0 0 0 0 0 0
+0 1 0 0 0 0 0 0
+0 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+0 0 0 0 0 0 1 0
+
+0 0 0 0 0 0 0 0
+0 0 0 0 0 0 1 0
+0 0 0 0 0 1 0 0
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+0 0 1 0 0 0 0 0
+0 1 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 1 0 1
+0 0 0 0 1 0 0 0
+0 0 0 1 0 0 0 0
+0 0 1 0 0 0 0 0
+0 1 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 0 0 0
+0 0 0 0 1 0 1 0
+0 0 0 1 0 0 0 1
+0 0 1 0 0 0 0 0
+0 1 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 0 0 0
+
+0 0 0 0 0 0 0 0
+0 0 0 1 0 1 0 0
+0 0 1 0 0 0 1 0
+0 1 0 0 0 0 0 1
+1 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 0 0 0 0 0 0
+0 0 1 0 1 0 0 0
+0 1 0 0 0 1 0 0
+1 0 0 0 0 0 1 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 0 0 0 0
+
+0 0 0 0 0 0 0 0
+0 1 0 1 0 0 0 0
+1 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+0 0 0 0 0 0 1 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 0 0 0 0
+1 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+0 0 0 0 0 0 1 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 1 0 0 0 0 0 0
+0 0 1 0 0 0 0 0
+0 0 0 1 0 0 0 0
+0 0 0 0 1 0 0 0
+0 0 0 0 0 1 0 0
+0 0 0 0 0 0 1 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 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 0 1 1
+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 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 0 1 1 1
+0 0 0 0 0 1 0 1
+
+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 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0
+0 0 0 0 1 1 1 0
+0 0 0 0 1 0 1 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
+0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0
+0 0 0 1 1 1 0 0
+0 0 0 1 0 1 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 0
+0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0
+0 0 1 1 1 0 0 0
+0 0 1 0 1 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 0 0
+0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0
+0 1 1 1 0 0 0 0
+0 1 0 1 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 0 0 0
+0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0
+1 1 1 0 0 0 0 0
+1 0 1 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 0 0 0 0
+0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0
+1 1 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 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 1 1
+0 0 0 0 0 0 1 0
+0 0 0 0 0 0 1 1
+
+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 0 0 0 0 0 0 0
+0 0 0 0 0 1 1 1
+0 0 0 0 0 1 0 1
+0 0 0 0 0 1 1 1
+
+
+
+
+
+
+
+
+
+
diff --git a/chess.py b/chess.py
new file mode 100644
index 0000000..64ba1af
--- /dev/null
+++ b/chess.py
@@ -0,0 +1,1033 @@
+import chessconf
+import random
+import copy
+import subprocess
+import typing
+from collections.abc import Generator
+
+mv_struct = tuple[tuple[int, int, str], tuple[int, int, str]] | tuple[tuple[int, int, str], tuple[int, int, str], tuple[int, int, str]] | tuple[tuple[int, int, str], tuple[int, int, str], tuple[int, int, str], tuple[int, int, str]]
+board_struct = tuple[list[str], list[str], list[str], list[str], list[str], list[str], list[str], list[str]]
+
+ICON: typing.Final[dict[str, str]] = {
+ 'K': chessconf.WHITECOLOR + chessconf.WHITE_KING_ICON + '\x1b[0m',
+ 'Q': chessconf.WHITECOLOR + chessconf.WHITE_QUEEN_ICON + '\x1b[0m',
+ 'R': chessconf.WHITECOLOR + chessconf.WHITE_ROOK_ICON + '\x1b[0m',
+ 'B': chessconf.WHITECOLOR + chessconf.WHITE_BISHOP_ICON + '\x1b[0m',
+ 'N': chessconf.WHITECOLOR + chessconf.WHITE_KNIGHT_ICON + '\x1b[0m',
+ 'P': chessconf.WHITECOLOR + chessconf.WHITE_PAWN_ICON + '\x1b[0m',
+ '.': chessconf.SPACECOLOR + chessconf.SPACE_ICON + '\x1b[0m',
+ 'k': chessconf.BLACKCOLOR + chessconf.BLACK_KING_ICON + '\x1b[0m',
+ 'q': chessconf.BLACKCOLOR + chessconf.BLACK_QUEEN_ICON + '\x1b[0m',
+ 'r': chessconf.BLACKCOLOR + chessconf.BLACK_ROOK_ICON + '\x1b[0m',
+ 'b': chessconf.BLACKCOLOR + chessconf.BLACK_BISHOP_ICON + '\x1b[0m',
+ 'n': chessconf.BLACKCOLOR + chessconf.BLACK_KNIGHT_ICON + '\x1b[0m',
+ 'p': chessconf.BLACKCOLOR + chessconf.BLACK_PAWN_ICON + '\x1b[0m'}
+
+INT_TO_ALPH: typing.Final[dict[int, str]] = {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'g', 7: 'h'}
+ALPH_TO_INT: typing.Final[dict[str, int]] = {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4, 'f': 5, 'g': 6, 'h': 7}
+INT_TO_NUM: typing.Final[dict[int, str]] = {0: '8', 1: '7', 2: '6', 3: '5', 4: '4', 5: '3', 6: '2', 7: '1'}
+NUM_TO_INT: typing.Final[dict[str, int]] = {'8': 0, '7': 1, '6': 2, '5': 3, '4': 4, '3': 5, '2': 6, '1': 7}
+
+COLOR_WHITE: typing.Final[dict[str, str]] = {'R': 'R', 'N': 'N', 'B': 'B', 'K': 'K', 'Q': 'Q', 'P': 'P', 'r': 'R', 'n': 'N', 'b': 'B', 'k': 'K', 'q': 'Q', 'p': 'P'}
+COLOR_BLACK: typing.Final[dict[str, str]] = {'R': 'r', 'N': 'n', 'B': 'b', 'K': 'k', 'Q': 'q', 'P': 'p', 'r': 'r', 'n': 'n', 'b': 'b', 'k': 'k', 'q': 'q', 'p': 'p'}
+
+WHITEPIECES: typing.Final[set[str]] = {'R', 'N', 'B', 'Q', 'K', 'P'}
+BLACKPIECES: typing.Final[set[str]] = {'r', 'n', 'b', 'q', 'k', 'p'}
+
+class Board():
+ def __init__(self, white: bool = True) -> None:
+ self.pos: board_struct = (
+ ['r', 'n', 'b', 'q', 'k', 'b', 'n', 'r'],
+ ['p', 'p', 'p', 'p', 'p', 'p', 'p', 'p'],
+ ['.', '.', '.', '.', '.', '.', '.', '.'],
+ ['.', '.', '.', '.', '.', '.', '.', '.'],
+ ['.', '.', '.', '.', '.', '.', '.', '.'],
+ ['.', '.', '.', '.', '.', '.', '.', '.'],
+ ['P', 'P', 'P', 'P', 'P', 'P', 'P', 'P'],
+ ['R', 'N', 'B', 'Q', 'K', 'B', 'N', 'R'])
+
+ self.white: bool = white
+ self.bot: bool | None = None
+
+ self.end_game: bool = False
+ self.last_move_capture: bool = False
+
+ self.log: list = []
+ self.pos_log: list = [copy.deepcopy(self.pos)]
+
+ self.half_mv_ctr: int = 0
+ self.fifty_mv_ctr: int = 0
+
+ self.ep_sqr: tuple | None = None
+
+ self.board_turned: bool = False
+ self.asked_draw: bool = False
+
+ self.w_short_castling: bool = True
+ self.w_long_castling: bool = True
+ self.b_short_castling: bool = True
+ self.b_long_castling: bool = True
+
+ def render(self, white: bool) -> None:
+ if (white and not self.board_turned) or (not white and self.board_turned):
+ if self.board_turned:
+ print('\nBoard turned! Use /turnboard to turn it back.')
+ print(f'''
+ ┌───┬───┬───┬───┬───┬───┬───┬───┐
+8 │ {' │ '.join((ICON[self.pos[0][0]], ICON[self.pos[0][1]], ICON[self.pos[0][2]], ICON[self.pos[0][3]], ICON[self.pos[0][4]], ICON[self.pos[0][5]], ICON[self.pos[0][6]], ICON[self.pos[0][7]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+7 │ {' │ '.join((ICON[self.pos[1][0]], ICON[self.pos[1][1]], ICON[self.pos[1][2]], ICON[self.pos[1][3]], ICON[self.pos[1][4]], ICON[self.pos[1][5]], ICON[self.pos[1][6]], ICON[self.pos[1][7]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+6 │ {' │ '.join((ICON[self.pos[2][0]], ICON[self.pos[2][1]], ICON[self.pos[2][2]], ICON[self.pos[2][3]], ICON[self.pos[2][4]], ICON[self.pos[2][5]], ICON[self.pos[2][6]], ICON[self.pos[2][7]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+5 │ {' │ '.join((ICON[self.pos[3][0]], ICON[self.pos[3][1]], ICON[self.pos[3][2]], ICON[self.pos[3][3]], ICON[self.pos[3][4]], ICON[self.pos[3][5]], ICON[self.pos[3][6]], ICON[self.pos[3][7]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+4 │ {' │ '.join((ICON[self.pos[4][0]], ICON[self.pos[4][1]], ICON[self.pos[4][2]], ICON[self.pos[4][3]], ICON[self.pos[4][4]], ICON[self.pos[4][5]], ICON[self.pos[4][6]], ICON[self.pos[4][7]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+3 │ {' │ '.join((ICON[self.pos[5][0]], ICON[self.pos[5][1]], ICON[self.pos[5][2]], ICON[self.pos[5][3]], ICON[self.pos[5][4]], ICON[self.pos[5][5]], ICON[self.pos[5][6]], ICON[self.pos[5][7]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+2 │ {' │ '.join((ICON[self.pos[6][0]], ICON[self.pos[6][1]], ICON[self.pos[6][2]], ICON[self.pos[6][3]], ICON[self.pos[6][4]], ICON[self.pos[6][5]], ICON[self.pos[6][6]], ICON[self.pos[6][7]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+1 │ {' │ '.join((ICON[self.pos[7][0]], ICON[self.pos[7][1]], ICON[self.pos[7][2]], ICON[self.pos[7][3]], ICON[self.pos[7][4]], ICON[self.pos[7][5]], ICON[self.pos[7][6]], ICON[self.pos[7][7]]))} │
+ └───┴───┴───┴───┴───┴───┴───┴───┘
+ a b c d e f g h''')
+ else:
+ if self.board_turned:
+ print('\nBoard turned! Use /turnboard to turn it back.')
+ print(f'''
+ ┌───┬───┬───┬───┬───┬───┬───┬───┐
+1 │ {' │ '.join((ICON[self.pos[7][7]], ICON[self.pos[7][6]], ICON[self.pos[7][5]], ICON[self.pos[7][4]], ICON[self.pos[7][3]], ICON[self.pos[7][2]], ICON[self.pos[7][1]], ICON[self.pos[7][0]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+2 │ {' │ '.join((ICON[self.pos[6][7]], ICON[self.pos[6][6]], ICON[self.pos[6][5]], ICON[self.pos[6][4]], ICON[self.pos[6][3]], ICON[self.pos[6][2]], ICON[self.pos[6][1]], ICON[self.pos[6][0]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+3 │ {' │ '.join((ICON[self.pos[5][7]], ICON[self.pos[5][6]], ICON[self.pos[5][5]], ICON[self.pos[5][4]], ICON[self.pos[5][3]], ICON[self.pos[5][2]], ICON[self.pos[5][1]], ICON[self.pos[5][0]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+4 │ {' │ '.join((ICON[self.pos[4][7]], ICON[self.pos[4][6]], ICON[self.pos[4][5]], ICON[self.pos[4][4]], ICON[self.pos[4][3]], ICON[self.pos[4][2]], ICON[self.pos[4][1]], ICON[self.pos[4][0]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+5 │ {' │ '.join((ICON[self.pos[3][7]], ICON[self.pos[3][6]], ICON[self.pos[3][5]], ICON[self.pos[3][4]], ICON[self.pos[3][3]], ICON[self.pos[3][2]], ICON[self.pos[3][1]], ICON[self.pos[3][0]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+6 │ {' │ '.join((ICON[self.pos[2][7]], ICON[self.pos[2][6]], ICON[self.pos[2][5]], ICON[self.pos[2][4]], ICON[self.pos[2][3]], ICON[self.pos[2][2]], ICON[self.pos[2][1]], ICON[self.pos[2][0]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+7 │ {' │ '.join((ICON[self.pos[1][7]], ICON[self.pos[1][6]], ICON[self.pos[1][5]], ICON[self.pos[1][4]], ICON[self.pos[1][3]], ICON[self.pos[1][2]], ICON[self.pos[1][1]], ICON[self.pos[1][0]]))} │
+ ├───┼───┼───┼───┼───┼───┼───┼───┤
+8 │ {' │ '.join((ICON[self.pos[0][7]], ICON[self.pos[0][6]], ICON[self.pos[0][5]], ICON[self.pos[0][4]], ICON[self.pos[0][3]], ICON[self.pos[0][2]], ICON[self.pos[0][1]], ICON[self.pos[0][0]]))} │
+ └───┴───┴───┴───┴───┴───┴───┴───┘
+ h g f e d c b a''')
+
+ def _rook_mvs(self, y: int, x: int, white: bool) -> Generator[mv_struct]:
+ enemypieces = BLACKPIECES if white else WHITEPIECES
+ rook = 'R' if white else 'r'
+
+ directions = ((1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while newy in range(8) and newx in range(8):
+ if self.pos[newy][newx] == '.':
+ yield ((y, x, '.'), (newy, newx, rook))
+ elif self.pos[newy][newx] in enemypieces:
+ yield ((y, x, '.'), (newy, newx, rook))
+ break
+ else:
+ break
+ newy, newx = newy + dy, newx + dx
+
+ def _knight_mvs(self, y: int, x: int, white: bool) -> Generator[mv_struct]:
+ ownpieces, knight = (WHITEPIECES, 'N') if white else (BLACKPIECES, 'n')
+
+ directions = ((1, 2), (1, -2), (2, 1), (2, -1), (-1, 2), (-1, -2), (-2, 1), (-2, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ if newy in range(8) and newx in range(8) and self.pos[newy][newx] not in ownpieces:
+ yield ((y, x, '.'), (newy, newx, knight))
+
+ def _bishop_mvs(self, y: int, x: int, white: bool) -> Generator[mv_struct]:
+ enemypieces, bishop = (BLACKPIECES, 'B') if white else (WHITEPIECES, 'b')
+
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while newx in range(8) and newy in range(8):
+ piece = self.pos[newy][newx]
+ if piece == '.':
+ yield ((y, x, '.'), (newy, newx, bishop))
+ elif piece in enemypieces:
+ yield ((y, x, '.'), (newy, newx, bishop))
+ break
+ else:
+ break
+ newy, newx = newy + dy, newx + dx
+
+ def _queen_mvs(self, y: int, x: int, white: bool) -> Generator[mv_struct]:
+ enemypieces, queen = (BLACKPIECES, 'Q') if white else (WHITEPIECES, 'q')
+
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1), (1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while newx in range(8) and newy in range(8):
+ piece = self.pos[newy][newx]
+ if piece == '.':
+ yield ((y, x, '.'), (newy, newx, queen))
+ elif piece in enemypieces:
+ yield ((y, x, '.'), (newy, newx, queen))
+ break
+ else:
+ break
+ newy, newx = newy + dy, newx + dx
+
+ def _king_mvs(self, y: int, x: int, white: bool) -> Generator[mv_struct]:
+ ownpieces, king = (WHITEPIECES, 'K') if white else (BLACKPIECES, 'k')
+
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1), (1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ if newy in range(8) and newx in range(8) and self.pos[newy][newx] not in ownpieces:
+ yield ((y, x, '.'), (newy, newx, king))
+
+ def _castling_mvs(self, white: bool) -> Generator[mv_struct]:
+ short_castling, long_castling, color_piece, castling_row = (self.w_short_castling, self.w_long_castling, COLOR_WHITE, 7) if white else (self.b_short_castling, self.b_long_castling, COLOR_BLACK, 0)
+
+ if short_castling and self.pos[castling_row][5] == '.' and self.pos[castling_row][6] == '.':
+ yield ((castling_row, 4, '.'), (castling_row, 5, color_piece['R']), (castling_row, 6, color_piece['K']), (castling_row, 7, '.'))
+ if long_castling and self.pos[castling_row][1] == '.' and self.pos[castling_row][2] == '.' and self.pos[castling_row][3] == '.':
+ yield ((castling_row, 0, '.'), (castling_row, 2, color_piece['K']), (castling_row, 3, color_piece['R']), (castling_row, 4, '.'))
+
+ def _pawn_mvs(self, y: int, x: int, white: bool) -> Generator[mv_struct]:
+
+ startingrow = 6 if white else 1
+ forwardstep = -1 if white else 1
+ promotionrow = 1 if white else 6
+
+ color_piece = COLOR_WHITE if white else COLOR_BLACK
+ enemypieces = BLACKPIECES if white else WHITEPIECES
+
+ newy = y + forwardstep
+
+ if newy in range(8) and self.pos[newy][x] == '.':
+ if y == promotionrow:
+ for promotion in {color_piece['Q'], color_piece['R'], color_piece['N'], color_piece['B']}:
+ yield ((y, x, '.'), (newy, x, promotion))
+ else:
+ yield ((y, x, '.'), (newy, x, color_piece['P']))
+ if y == startingrow and self.pos[newy + forwardstep][x] == '.':
+ yield ((y, x, '.'), (newy + forwardstep, x, color_piece['P']))
+ for dx in (1, -1):
+ newx = x + dx
+ if newy in range(8) and newx in range(8) and self.pos[newy][newx] in enemypieces:
+ if y == promotionrow:
+ for i in (color_piece['Q'], color_piece['R'], color_piece['N'], color_piece['B']):
+ yield ((y, x, '.'), (newy, newx, i))
+ else: # taking enemy piece
+ yield ((y, x, '.'), (newy, newx, color_piece['P']))
+ if [newy, newx] == self.ep_sqr: # en passant
+ yield ((y, x, '.'), (newy, newx, color_piece['P']), (y, newx, '.'))
+
+ def all_mvs(self, white: bool) -> Generator[mv_struct]:
+ color_piece = COLOR_WHITE if white else COLOR_BLACK
+ mv_generators = {color_piece['P']: self._pawn_mvs, color_piece['R']: self._rook_mvs, color_piece['N']: self._knight_mvs, color_piece['B']: self._bishop_mvs, color_piece['Q']: self._queen_mvs, color_piece['K']: self._king_mvs}
+ for y, row in enumerate(self.pos):
+ for x, piece in enumerate(row):
+ if generator := mv_generators.get(piece):
+ yield from generator(y, x, white)
+ yield from self._castling_mvs(white)
+
+ def reach(self, white: bool) -> tuple:
+ reach = (([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []))
+ color_piece, forwardstep, startingrow, enemypieces = (COLOR_WHITE, -1, 6, BLACKPIECES) if white else (COLOR_BLACK, 1, 1, WHITEPIECES)
+ short_castling, long_castling, castling_row = (self.w_short_castling, self.w_long_castling, 7) if white else (self.b_short_castling, self.b_long_castling, 0)
+ for y, row in enumerate(self.pos):
+ for x, piece in enumerate(row):
+
+ if piece == color_piece['R']:
+ directions = ((1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while newy in range(8) and newx in range(8):
+ if self.pos[newy][newx] != '.':
+ reach[newy][newx].append((y, x, piece))
+ break
+ reach[newy][newx].append((y, x, piece))
+ newy, newx = newy + dy, newx + dx
+
+ elif piece == color_piece['N']:
+ directions = ((1, 2), (1, -2), (2, 1), (2, -1), (-1, 2), (-1, -2), (-2, 1), (-2, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ if newy in range(8) and newx in range(8):
+ reach[newy][newx].append((y, x, piece))
+
+ elif piece == color_piece['B']:
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while newx in range(8) and newy in range(8):
+ if self.pos[newy][newx] != '.':
+ reach[newy][newx].append((y, x, piece))
+ break
+ reach[newy][newx].append((y, x, piece))
+ newy, newx = newy + dy, newx + dx
+
+ elif piece == color_piece['Q']:
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1), (1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while newx in range(8) and newy in range(8):
+ if self.pos[newy][newx] != '.':
+ reach[newy][newx].append((y, x, piece))
+ break
+ reach[newy][newx].append((y, x, piece))
+ newy, newx = newy + dy, newx + dx
+
+ elif piece == color_piece['K']:
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1), (1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ if newy in range(8) and newx in range(8):
+ reach[newy][newx].append((y, x, piece))
+
+ if short_castling and self.pos[castling_row][5] == '.' and self.pos[castling_row][6] == '.':
+ reach[castling_row][6].append((castling_row, 4, piece))
+ if long_castling and self.pos[castling_row][2] == '.' and self.pos[castling_row][3] == '.':
+ reach[castling_row][2].append((castling_row, 4, piece))
+
+ elif piece == color_piece['P']:
+ if self.pos[y + forwardstep][x] == '.':
+ reach[y + forwardstep][x].append((y, x, piece))
+ if y == startingrow and self.pos[y + (forwardstep * 2)][x] == '.':
+ reach[y + (forwardstep * 2)][x].append((y, x, piece))
+ for dx in (1, -1):
+ newx = x + dx
+ if y + forwardstep in range(8) and newx in range(8) and (self.pos[y + forwardstep][newx] in enemypieces or self.ep_sqr == (y + forwardstep, newx)):
+ reach[y + forwardstep][newx].append((y, x, piece))
+ return reach
+
+ def control(self, white: bool) -> tuple:
+ control = (([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []), ([], [], [], [], [], [], [], []))
+ color_piece, colorenemypiece, forwardstep = (COLOR_WHITE, COLOR_BLACK, -1) if white else (COLOR_BLACK, COLOR_WHITE, 1)
+ for y, row in enumerate(self.pos):
+ for x, piece in enumerate(row):
+
+ if piece == color_piece['R']:
+ directions = ((1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while newy in range(8) and newx in range(8):
+ if self.pos[newy][newx] not in {'.', color_piece['R'], color_piece['Q']}:
+ control[newy][newx].append((y, x, piece))
+ break
+ control[newy][newx].append((y, x, piece))
+ newy, newx = newy + dy, newx + dx
+
+ elif piece == color_piece['N']:
+ directions = ((1, 2), (1, -2), (2, 1), (2, -1), (-1, 2), (-1, -2), (-2, 1), (-2, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ if newy in range(8) and newx in range(8):
+ control[newy][newx].append((y, x, piece))
+
+ elif piece == color_piece['B']:
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while newx in range(8) and newy in range(8):
+ if self.pos[newy][newx] not in {'.', color_piece['Q']}:
+ control[newy][newx].append((y, x, piece))
+ if self.pos[newy][newx] == color_piece['P'] and dy == forwardstep:
+ control[newy][newx].append((y, x, piece))
+ break
+ control[newy][newx].append((y, x, piece))
+ newy, newx = newy + dy, newx + dx
+
+ elif piece == color_piece['Q']:
+ directions = ((1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while newx in range(8) and newy in range(8):
+ if self.pos[newy][newx] not in {'.', color_piece['R'], color_piece['Q']}:
+ control[newy][newx].append((y, x, piece))
+ break
+ control[newy][newx].append((y, x, piece))
+ newy, newx = newy + dy, newx + dx
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ while newx in range(8) and newy in range(8):
+ if self.pos[newy][newx] not in {'.', color_piece['B'], color_piece['Q']}:
+ control[newy][newx].append((y, x, piece))
+ if self.pos[newy][newx] == color_piece['P'] and dy == forwardstep:
+ control[newy + dy][newx + dx].append((y, x, piece))
+ break
+ control[newy][newx].append((y, x, piece))
+ newy, newx = newy + dy, newx + dx
+
+ elif piece == color_piece['K']:
+ directions = ((1, 1), (1, -1), (-1, 1), (-1, -1), (1, 0), (0, 1), (-1, 0), (0, -1))
+ for dy, dx in directions:
+ newy, newx = y + dy, x + dx
+ if newy in range(8) and newx in range(8):
+ control[newy][newx].append((y, x, piece))
+
+ elif piece == color_piece['P']:
+ for dx in (1, -1):
+ newx = x + dx
+ if y + forwardstep in range(8) and newx in range(8):
+ control[y + forwardstep][newx].append((y, x, piece))
+ if self.ep_sqr == (y + forwardstep, newx) and self.pos[y][newx] == colorenemypiece['P']:
+ control[y][newx].append((y, x, piece))
+ return control
+
+ def legal_mvs(self, white: bool) -> Generator[mv_struct]:
+ enemycontrol = self.control(not white)
+ color_piece = COLOR_WHITE if white else COLOR_BLACK
+ short_castling, long_castling = ((self.w_short_castling, self.w_long_castling) if white else (self.b_short_castling, self.b_long_castling))
+
+ for mv in self.all_mvs(white):
+ if mv == ((7, 4, '.'), (7, 5, color_piece['R']), (7, 6, color_piece['K']), (7, 7, '.')) and (enemycontrol[7][5] or enemycontrol[7][4] or not short_castling):
+ continue
+ elif mv == ((7, 0, '.'), (7, 2, color_piece['K']), (7, 3, color_piece['R']), (7, 4, '.')) and (enemycontrol[7][3] or enemycontrol[7][4] or not long_castling):
+ continue
+ self.do(mv)
+ if any(self.pos[single_mv[0]][single_mv[1]] == color_piece['K'] for enemy_mv in self.all_mvs(not white) for single_mv in enemy_mv):
+ self.undo()
+ continue
+ self.undo()
+ yield mv
+
+ def _fifty_mv_rule(self) -> None:
+ if self.fifty_mv_ctr == 100:
+ userinput = input('\n50 moves have been played without capture or pawnpush. Do you want to force a draw? [Y/n] > ')
+ if userinput in {'', 'yes', 'y', 'Y'}:
+ self.render(self.white if self.bot is not None else not self.bot)
+ print('\nDraw due to fifty move rule!\n')
+ raise SystemExit
+
+ def _mv_rep(self) -> None:
+ if self.pos_log.count(self.pos_log[-1]) == 3:
+ self.render(self.white if self.bot is not None else not self.bot)
+ print('\nDRAW DUE TO MOVE REPITITION!\n')
+ raise SystemExit
+
+ def check_pos(self) -> None:
+ for white in {True, False}:
+ if not [*self.legal_mvs(not white)]:
+ self.render(self.white if self.bot is not None else not self.bot)
+ if self._is_checkmate(white):
+ print('\nWHITE WON BY CHECKMATE!\n') if white else print('\nBLACK WON BY CHECKMATE!\n')
+ raise SystemExit
+ print('\nSTALEMATE!\n')
+ raise SystemExit
+ self._fifty_mv_rule(); self._mv_rep()
+
+ def do(self, mv: mv_struct) -> None:
+ save = []
+ for single_mv in mv:
+ save.append((self.pos[single_mv[0]][single_mv[1]], single_mv[0], single_mv[1], single_mv[2]))
+ self.pos[single_mv[0]][single_mv[1]] = single_mv[2]
+ self.log.append(tuple(save))
+
+ def undo(self) -> None:
+ lastmv = self.log.pop()
+ for single_mv in lastmv:
+ self.pos[single_mv[1]][single_mv[2]] = single_mv[0]
+
+ def make_mv(self, mv: mv_struct, white: bool) -> None:
+ self.asked_draw, self.ep_sqr = False, None
+ color_piece, forwardstep = (COLOR_WHITE, -1) if white else (COLOR_BLACK, 1)
+ self.last_move_capture = self._is_capture(mv)
+
+ if mv[1][2] == color_piece['P'] and mv[1][0] == mv[0][0] + (2 * forwardstep): # EP square
+ self.ep_sqr = (mv[0][0] + forwardstep, mv[0][1])
+
+ save = []
+ pawn_mv = False
+
+ for single_mv in mv:
+ save.append((self.pos[single_mv[0]][single_mv[1]], single_mv[0], single_mv[1], single_mv[2]))
+ if single_mv[2] == color_piece['P']: # checks if pawnmove to reset 50-mv-rule
+ pawn_mv = True
+
+ match single_mv[:2]:
+ case (7, 0):
+ self.w_long_castling = False
+ case (7, 4):
+ self.w_short_castling, self.w_long_castling = False, False
+ case (7, 7):
+ self.w_short_castling = False
+ case (0, 0):
+ self.b_long_castling = False
+ case (0, 4):
+ self.b_short_castling, self.b_long_castling = False, False
+ case (0, 7):
+ self.b_short_castling = False
+
+ self.pos[single_mv[0]][single_mv[1]] = single_mv[2]
+
+ self.fifty_mv_ctr = 0 if pawn_mv or self.last_move_capture else self.fifty_mv_ctr + 1
+ self.half_mv_ctr += 1
+ self.log.append(tuple(save))
+ self.pos_log.append(copy.deepcopy(self.pos))
+ self.end_game = self.is_end_game()
+ self.check_pos()
+
+ def _is_check(self, white: bool, mv: mv_struct | None = None) -> bool:
+ colorenemypiece = COLOR_BLACK if white else COLOR_WHITE
+ if not mv:
+ if any(self.pos[single_mv[0]][single_mv[1]] == colorenemypiece['K'] for mv in self.all_mvs(white) for single_mv in mv):
+ return True
+ return False
+ self.do(mv)
+ if any(self.pos[single_mv[0]][single_mv[1]] == colorenemypiece['K'] for mv in self.all_mvs(white) for single_mv in mv):
+ self.undo()
+ return True
+ self.undo()
+ return False
+
+ def _is_checkmate(self, white: bool, mv: mv_struct | None = None) -> bool:
+ colorenemypiece = COLOR_BLACK if white else COLOR_WHITE
+ if not mv:
+ if not [*self.legal_mvs(not white)]:
+ if not any(self.pos[single_mv[0]][single_mv[1]] == colorenemypiece['K'] for mv in self.all_mvs(white) for single_mv in mv):
+ return False
+ return True
+ self.do(mv)
+ if not [*self.legal_mvs(not white)]:
+ if not any(self.pos[single_mv[0]][single_mv[1]] == colorenemypiece['K'] for mv in self.all_mvs(white) for single_mv in mv):
+ self.undo()
+ return False
+ self.undo()
+ return True
+
+ def _is_capture(self, mv: mv_struct) -> bool:
+ capture = 0
+ for single_mv in mv:
+ capture += (1 if single_mv[2] == '.' else capture -1)
+ if not capture:
+ return True
+ return False
+
+ def set_fen(self, fen_str: str) -> bool | None:
+ try:
+ board_str, color_str, castling_str, ep_str, fifty_mv_str, full_mv_str = fen_str.strip().split()
+ except ValueError:
+ return False
+
+ tmp_pos = []
+ board_lst = board_str.split('/')
+ if len(board_lst) != 8:
+ return False
+ for row_str in board_lst:
+ tmp_row = []
+ for char in row_str:
+ if char == '.' or char in WHITEPIECES | BLACKPIECES:
+ tmp_row.append(char)
+ elif char in {'1', '2', '3', '4', '5', '6', '7', '8'}:
+ tmp_row.extend(['.'] * int(char))
+ else:
+ return False
+ tmp_pos.append(tmp_row)
+ if len(tmp_pos) != 8:
+ return False
+ self.pos = tuple(tmp_pos)
+
+ self.white = color_str == 'w'
+ if not self.white and color_str != 'b':
+ return False
+
+ if castling_str != '-' and set(castling_str) <= {'K', 'Q', 'k', 'q'} or sorted(castling_str) != list(castling_str):
+ return False
+ self.w_short_castling = 'K' in castling_str
+ self.w_long_castling = 'Q' in castling_str
+ self.b_short_castling = 'k' in castling_str
+ self.b_long_castling = 'q' in castling_str
+
+ if ep_str == '-':
+ self.ep_sqr = None
+ elif len(ep_str) == 2 and ep_str[0] in ALPH_TO_INT and ep_str[1] in NUM_TO_INT and NUM_TO_INT[ep_str[1]] in {2, 5}:
+ self.ep_sqr = (NUM_TO_INT[ep_str[1]], ALPH_TO_INT[ep_str[0]])
+ else:
+ return False
+
+ if fifty_mv_str.isdigit():
+ self.fifty_mv_ctr = int(fifty_mv_str)
+
+ if full_mv_str.isdigit():
+ self.half_mv_ctr = int(full_mv_str) * 2 + (1 if color_str == 'b' else 0)
+
+ self.check_pos(); return True
+
+ def get_fen(self, white: bool) -> str:
+
+ row_strs = []
+ for row in self.pos:
+ row_str = ''
+ space_ctr = 0
+ for piece in row:
+ if piece == '.':
+ space_ctr += 1
+ elif piece in WHITEPIECES or piece in BLACKPIECES:
+ if space_ctr:
+ row_str += str(space_ctr)
+ row_str += piece
+ space_ctr = 0
+ if space_ctr:
+ row_str += str(space_ctr)
+ row_strs.append(row_str)
+ board_str = '/'.join(row_strs)
+
+ color_str = 'w' if white else 'b'
+
+ castling_str = ('K' if self.w_short_castling else '') + ('Q' if self.w_long_castling else '') + ('k' if self.b_short_castling else '') + ('q' if self.b_long_castling else '')
+ castling_str = '-' if not castling_str else castling_str
+
+ ep_str = '-' if self.ep_sqr == None else (INT_TO_ALPH[self.ep_sqr[1]] + INT_TO_NUM[self.ep_sqr[0]])
+
+ fifty_mv_str = str(self.fifty_mv_ctr)
+
+ full_mv_str = str(self.half_mv_ctr // 2)
+
+ fen_str = ' '.join([board_str, color_str, castling_str, ep_str, fifty_mv_str, full_mv_str])
+ return fen_str
+
+ def _game_controls(self, userinput: tuple, white: bool = None) -> bool | None:
+ if userinput in {'/m', '/menu', '?', 'h', 'help', '/h', '/help', '-h', '-help', '--help'}:
+ print(('''
+/m, /menu > gamecontrols, opens this menu
+/q, /quit > quit game
+/s, /save > save game to FEN
+/t, /turnboard > turn board position
+/p, /printboard > reprint board
+/d, /draw > offer draw
+/r, /resign > resign game
+/f, /forcedraw > force draw if 50 move rule applies
+/i, /import > import game from FEN
+
+Read the manual for more information'''))
+ return True
+
+ elif userinput in {'/q', '/quit'}:
+ print(f'\nFEN-notation > {self.get_fen(white)}\n')
+ raise SystemExit
+
+ elif userinput in {'/s', '/save'}:
+ print('\nFEN-notation >', self.get_fen(white))
+ return True
+
+ elif userinput in {'/t', '/turnboard'}:
+ self.board_turned = not self.board_turned
+ self.render(self.white if self.bot is not None else not self.bot)
+ return True
+
+ elif userinput in {'/p', '/printboard'}:
+ self.render(self.white if self.bot is not None else not self.bot)
+ return True
+
+ elif userinput in {'/d', '/draw'}:
+ if not self.asked_draw:
+ self.asked_draw = True
+ if (white and self.eval_pos() < 0) or (not white and self.eval_pos() > 0):
+ print('\nDRAW\n')
+ raise SystemExit
+ elif self.eval_pos() == 0:
+ if random.choices([True, False], weights = [1, 5], k = 1)[0]:
+ print('\nDRAW\n')
+ raise SystemExit
+ print('\nNO DRAW')
+ return True
+ print('\nNO DRAW')
+ return True
+ print('\nAlready asked for draw this mv')
+ return True
+
+ elif userinput in {'/r', '/resign'}:
+ print('\nBLACK WON BY RESIGNATION\n') if white else print('\nWHITE WON BY RESIGNATION\n')
+ raise SystemExit
+
+ elif userinput in {'/f', '/forcedraw'}:
+ if self.fifty_mv_ctr > 99:
+ print('\nWhite forced DRAW\n') if white else print('\nBlack forced DRAW\n')
+ raise SystemExit
+ print('\n50-move-rule does not apply')
+ return True
+
+ elif userinput in {'/i', '/import'}:
+ if not self.set_fen(input('\nPaste FEN-position here > ')):
+ print('!INVALID FEN!')
+ return True
+ return False
+
+ def find_piece(self, item: str) -> tuple:
+ for y, row in enumerate(self.pos):
+ for x, piece in enumerate(row):
+ if piece == item:
+ return (y, x)
+
+ def parse(self, userinput: str, white: bool) -> tuple:
+ color_piece = COLOR_WHITE if white else COLOR_BLACK
+ short_castling, long_castling, castling_row = (self.w_short_castling, self.w_long_castling, 7) if white else (self.b_short_castling, self.b_long_castling, 0)
+
+ if self._game_controls(userinput, white):
+ userinput = input('\nEnter your move in algebraic notation > ')
+ return self.parse(userinput, white)
+
+ userinput = userinput.strip()
+ check_or_checkmate = ''
+ capture = False
+ promotion = ''
+
+ if userinput:
+ for check_or_checkmate_option, check_code in chessconf.CHECK_OR_CHECKMATE_MAP.items():
+ if userinput.endswith(check_or_checkmate_option):
+ check_or_checkmate = check_code
+ userinput = userinput[:-len(check_or_checkmate_option)]
+ break
+
+ if userinput:
+ if userinput in chessconf.CASTLING_MAP:
+ if chessconf.CASTLING_MAP[userinput]:
+ user_mv = ((castling_row, 4, '.'), (castling_row, 5, 'R'), (castling_row, 6, 'K'), (castling_row, 7, '.'))
+ else:
+ user_mv = ((castling_row, 0, '.'), (castling_row, 2, 'K'), (castling_row, 3, 'R'), (castling_row, 4, '.'))
+ if (parsed := self._validate(user_mv, white, check_or_checkmate, capture, promotion)):
+ return parsed
+
+ promotion = None
+
+ for promotion_option, promotion_code in chessconf.PROMOTION_MAP.items():
+ if userinput.endswith(promotion_option):
+ promotion = color_piece[promotion_code]
+ userinput = userinput[:-len(promotion_option)]
+ break
+
+ if len(userinput) >= 2 and userinput[-2] in ALPH_TO_INT and userinput[-1] in NUM_TO_INT:
+ to_y = NUM_TO_INT[userinput[-1]]
+ to_x = ALPH_TO_INT[userinput[-2]]
+ userinput = userinput[:-2]
+
+ from_y = None
+ from_x = None
+ from_piece = color_piece['P']
+
+ if userinput:
+ abbr_piece = False
+ for abbr in WHITEPIECES: # need capitalized piece abbreviations
+ if userinput.startswith(abbr):
+ from_piece = color_piece[abbr]
+ abbr_piece = True
+ userinput = userinput[1:]
+ break
+
+ if not abbr_piece:
+ for piece_option, piece_code in chessconf.PIECE_MAP.items():
+ if userinput.startswith(piece_option):
+ from_piece = color_piece[piece_code]
+ userinput = userinput[len(piece_option):]
+ break
+
+ if userinput:
+ for action_option, action_code in chessconf.ACTION_MAP.items():
+ if userinput.endswith(action_option):
+ capture = True if action_code == 'x' else False
+ userinput = userinput[:-len(action_option)]
+ break
+
+ if userinput:
+ from_coords = False
+ if userinput[-1] in NUM_TO_INT:
+ from_y = NUM_TO_INT[userinput[-1]]
+ from_coords = True
+ userinput = userinput[:-1]
+
+ if userinput:
+ if userinput[-1] in ALPH_TO_INT:
+ from_x = ALPH_TO_INT[userinput[-1]]
+ from_coords = True
+ userinput = userinput[:-1]
+ if from_y is not None:
+ from_piece = self.pos[from_y][from_x]
+
+ if from_coords:
+ if userinput in {' ', ' on '}:
+ userinput = ''
+
+ if not userinput:
+ matchingattackers = [attacker for attacker in self.reach(white)[to_y][to_x] if attacker[2] == from_piece]
+ if from_y is not None and from_x is not None:
+ attackers = [attacker for attacker in matchingattackers if attacker[0] == from_y and attacker[1] == from_x]
+ elif from_y is not None:
+ attackers = [attacker for attacker in matchingattackers if attacker[0] == from_y]
+ elif from_x is not None:
+ attackers = [attacker for attacker in matchingattackers if attacker[1] == from_x]
+ else:
+ attackers = matchingattackers
+
+ if len(attackers) == 1:
+ from_y = attackers[0][0]
+ from_x = attackers[0][1]
+
+ if promotion:
+ if from_piece == color_piece['P']:
+ user_mv = ((from_y, from_x, '.'), (to_y, to_x, promotion))
+ validation = self._validate(user_mv, white, check_or_checkmate, capture, promotion)
+ if validation:
+ return validation
+ else:
+ if from_piece == color_piece['K'] and short_castling and to_y == castling_row and to_x == 6:
+ user_mv = ((castling_row, 4, '.'), (castling_row, 5, color_piece['R']), (castling_row, 6, color_piece['K']), (castling_row, 7, '.'))
+ elif from_piece == color_piece['K'] and long_castling and to_y == castling_row and to_x == 2:
+ user_mv = ((castling_row, 0, '.'), (castling_row, 2, color_piece['K']), (castling_row, 3, color_piece['R']), (castling_row, 4, '.'))
+ elif from_piece == color_piece['P'] and self.ep_sqr == (to_y, to_x):
+ user_mv = ((from_y, from_x, '.'), (to_y, to_x, from_piece), (from_y, to_x, '.'))
+ else:
+ user_mv = ((from_y, from_x, '.'), (to_y, to_x, from_piece))
+ if validation := self._validate(user_mv, white, check_or_checkmate, capture, promotion):
+ return validation
+ elif len(attackers) > 1:
+ userinput = input('''
+Please specify which piece to move.
+
+Enter your move in algebraic notation > ''')
+ return self.parse(userinput, white)
+
+ print(('\n!INVALID INPUT! Read the manual for more information.'))
+ return self.parse(input('\nEnter your move in algebraic notation > '), white)
+
+ def _validate(self, user_mv: mv_struct, white: bool, check_or_checkmate: str = '', capture: bool = False, promotion: str = '') -> tuple | None:
+ enemycontrol = self.control(not white)
+ color_piece = COLOR_WHITE if white else COLOR_BLACK
+ short_castling = ((7, 4, '.'), (7, 5, 'R'), (7, 6, 'K'), (7, 7, '.')) if white else ((0, 4, '.'), (0, 5, 'r'), (0, 6, 'k'), (0, 7, '.'))
+ long_castling = ((7, 0, '.'), (7, 2, 'K'), (7, 3, 'R'), (7, 4, '.')) if white else ((0, 0, '.'), (0, 2, 'k'), (0, 3, 'r'), (0, 4, '.'))
+
+ if user_mv in self.legal_mvs(white):
+ notcheck = check_or_checkmate == '+' and not self._is_check(white, user_mv)
+ notcheckmate = check_or_checkmate == '#' and not self._is_checkmate(white, user_mv)
+ notcapture = capture and not self._is_capture(user_mv)
+
+ if notcheck or notcheckmate or notcapture:
+ if notcheck and notcapture:
+ userinput = input('\nmove is neither a check nor a capture. Do you want to proceed? [Y/n] > ')
+ elif notcheckmate and notcapture:
+ userinput = input('\nmove is neither a checkmate nor a capture. Do you want to proceed? [Y/n] > ')
+ elif notcheck:
+ userinput = input('\nmove is not a check. Do you want to proceed? [Y/n] > ')
+ elif notcheckmate:
+ userinput = input('\nmove is not a checkmate. Do you want to proceed? [Y/n] > ')
+ elif notcapture:
+ userinput = input('\nmove is not a capture. Do you want to proceed? [Y/n] > ')
+ if userinput in {'y', 'yes', '1', '', 'Y'}:
+ return user_mv
+ userinput = input('\nEnter your move in algebraic notation > ')
+ return self.parse(userinput, white)
+ return user_mv
+
+ if user_mv in self.all_mvs(white):
+ if any(single_mv[2] == color_piece['K'] for single_mv in user_mv):
+ if user_mv in (short_castling, long_castling) and enemycontrol[user_mv[0][0]][4]:
+ print(enemycontrol[user_mv[0][0]][4])
+ print('\nKing cannot castle if in check.')
+ elif (user_mv == short_castling and not enemycontrol[user_mv[0][0]][6]) or (user_mv == long_castling and not enemycontrol[user_mv[0][0]][2]):
+ print('\nKing cannot castle through enemy controlled square.')
+ else:
+ print('\nSquare controlled by enemy.')
+ else:
+ y, x = self.find_piece(color_piece['K'])
+ if enemycontrol[y][x]:
+ print('\nKing is in check.')
+ else:
+ print('\nPiece is pinned to king.')
+ userinput = input('\nEnter your move in algebraic notation > ')
+ return self.parse(userinput, white)
+
+ def is_end_game(self) -> bool:
+ white_queen_ctr = 0
+ white_minor_pieces_ctr = 0
+ black_queen_ctr = 0
+ black_minor_pieces_ctr = 0
+ other_pieces = False
+ for row in self.pos:
+ for piece in row:
+ if piece in {'N', 'B'}:
+ white_minor_pieces_ctr += 1
+ if piece == 'Q':
+ white_queen_ctr += 1
+ else:
+ other_pieces = True
+ if piece in {'n', 'b'}:
+ black_minor_pieces_ctr += 1
+ if piece == 'q':
+ black_queen_ctr += 1
+ else:
+ other_pieces = True
+
+ if not white_queen_ctr and not black_queen_ctr:
+ return True
+ if white_queen_ctr == 1 and black_queen_ctr == 1:
+ if white_minor_pieces_ctr <= 1 and black_minor_pieces_ctr <= 1 and not other_pieces:
+ return True
+ return False
+
+ def eval_pos(self) -> float:
+ value = 0
+ for y, row in enumerate(self.pos):
+ for x, piece in enumerate(row):
+ if piece != '.':
+ if piece in {'K', 'k'}:
+ if self.end_game:
+ value += chessconf.PIECEVALUE[piece] + chessconf.POSTABLES[piece + '_end'][y][x]
+ else:
+ value += chessconf.PIECEVALUE[piece] + chessconf.POSTABLES[piece + '_middle'][y][x]
+ else:
+ value += chessconf.PIECEVALUE[piece] + chessconf.POSTABLES[piece][y][x]
+ return value
+
+ def minimax(self, depth: int, ismax: bool, alpha: float | None = -float('inf'), beta: float | None = float('inf')) -> float:
+ if depth <= 0 and not self.last_move_capture:
+ return self.eval_pos()
+
+ if ismax:
+ bestvalue = float('-inf')
+ for mv in self.all_mvs(True):
+ self.do(mv)
+ minimaxvalue = self.minimax(depth - 1, not ismax, alpha, beta)
+ self.undo()
+ if minimaxvalue > bestvalue:
+ bestvalue = minimaxvalue
+ if bestvalue > alpha:
+ alpha = bestvalue
+ if alpha >= beta:
+ break
+ return bestvalue
+ else:
+ bestvalue = float('inf')
+ for mv in self.all_mvs(False):
+ self.do(mv)
+ minimaxvalue = self.minimax(depth - 1, not ismax, alpha, beta)
+ self.undo()
+ if minimaxvalue < bestvalue:
+ bestvalue = minimaxvalue
+ if bestvalue < beta:
+ beta = bestvalue
+ if alpha >= beta:
+ break
+ return bestvalue
+
+ def best_mvs(self, white: bool, depth: int = chessconf.minimax_depth) -> tuple:
+ if white:
+ bestvalue, best_mv_list = float('-inf'), []
+ for mv in self.legal_mvs(True):
+ self.do(mv)
+ minimaxvalue = self.minimax(depth - 1, not white)
+ self.undo()
+ if minimaxvalue == bestvalue:
+ best_mv_list.append(mv)
+ elif minimaxvalue > bestvalue:
+ bestvalue, best_mv_list = minimaxvalue, [mv]
+ legalbest_mvs = [mv for mv in best_mv_list if mv in self.legal_mvs(True)]
+ return tuple(legalbest_mvs)
+ else:
+ bestvalue, best_mv_list = float('inf'), []
+ for mv in self.legal_mvs(False):
+ self.do(mv)
+ minimaxvalue = self.minimax(depth - 1, not white)
+ self.undo()
+ if minimaxvalue == bestvalue:
+ best_mv_list.append(mv)
+ elif minimaxvalue < bestvalue:
+ bestvalue, best_mv_list = minimaxvalue, [mv]
+ legalbest_mvs = [mv for mv in best_mv_list if mv in self.legal_mvs(False)]
+ return tuple(legalbest_mvs)
+
+ def stockfish_mv(self, white: bool, depth: int = chessconf.stockfish_depth) -> str | None:
+ stockfish = subprocess.Popen(chessconf.STOCKFISH_PATH, stdin=subprocess.PIPE, stdout=subprocess.PIPE, text=True)
+ stockfish.stdin.write(f'position fen {self.get_fen(white)}\ngo depth {depth}\n')
+ stockfish.stdin.flush()
+ while True:
+ output = stockfish.stdout.readline().strip()
+ if 'bestmove' in output:
+ mv = output.split(' ')[1]
+ stockfish.stdin.close()
+ stockfish.terminate()
+ return None if mv == '(none)' else mv
+
+ def select_game(self) -> typing.Callable | typing.Callable | typing.Callable | False:
+ i = 0
+ while i < 3:
+ userinput = input('''
+(1) > play against minimax
+(2) > play against stockfish
+(3) > pass the board to a friend
+
+Choose a game mode > ''')
+ if userinput in {'1', 'one', '(1)', 'ONE', '', 'm', 'minimax', 'M', 'Minimax', 'MINIMAX'}:
+ return self.play_minimax
+ elif userinput in {'2', 'two', '(2)', 'TWO', 's', 'stockfish', 'S', 'Stockfish', 'STOCKFISH'}:
+ return self.play_stockfish
+ elif userinput in {'3', 'three', '(3)', 'THREE', 'p', 'pass', 'P', 'Pass', 'PASS', 'f', 'friend', 'F', 'FRIEND'}:
+ return self.pass_and_play
+ if not self._game_controls(userinput):
+ i += 1
+ return False
+
+ def select_color(self) -> bool:
+ i = 0
+ while i < 3:
+ userinput = input('''
+(1) > play white
+(2) > play black
+(3) > play random color
+
+Choose a color > ''')
+ if userinput in {'1', 'one', '(1)', 'ONE', 'w', 'white', 'W', 'White', 'WHITE'}:
+ return True
+ elif userinput in {'2', 'two', '(2)', 'TWO', 'b', 'black', 'B', 'Black', 'BLACK'}:
+ return False
+ elif userinput in {'3', 'three', '(3)', 'THREE', '', 'r', 'random', 'R', 'Random', 'RANDOM'}:
+ return random.choice(True, False)
+ if not self._game_controls(userinput):
+ i += 1
+ return random.choice(True, False)
+
+ def pass_and_play(self, white: bool = True) -> None:
+ while True:
+ self.render(white)
+ userinput = input('\nEnter your move in algebraic notation > ')
+ user_mv = self.parse(userinput, white)
+ self.make_mv(user_mv, white)
+ white = not white
+
+ def play_minimax(self, white: bool = True, depth: int = chessconf.minimax_depth) -> None:
+ self.bot = True
+ if white:
+ self.bot = False
+ self.render(True)
+ userinput = input('\nEnter your move in algebraic notation > ')
+ user_mv = self.parse(userinput, True)
+ self.make_mv(user_mv, True)
+ while True:
+ enemy_mv = random.choice(self.best_mvs(not white, depth))
+ self.make_mv(enemy_mv, not white)
+ self.render(white)
+ userinput = input('\nEnter your move in algebraic notation > ')
+ user_mv = self.parse(userinput, white)
+ self.make_mv(user_mv, white)
+
+ def play_stockfish(self, white: bool = True, depth: int = chessconf.stockfish_depth) -> None:
+ self.bot = True
+ if white:
+ self.bot = False
+ self.render(True)
+ userinput = input('\nEnter your move in algebraic notation > ')
+ user_mv = self.parse(userinput, True)
+ self.make_mv(user_mv, True)
+ while True:
+ enemy_return = self.stockfish_mv(not white, depth)
+ enemy_mv = self.parse(enemy_return, not white)
+ self.make_mv(enemy_mv, not white)
+ self.render(white)
+ userinput = input('\nEnter your move in algebraic notation > ')
+ user_mv = self.parse(userinput, white)
+ self.make_mv(user_mv, white)
+
+if __name__ == '__main__':
+ board = Board()
+ game = board.select_game()
+ color = board.select_color()
+ game(color) \ No newline at end of file
diff --git a/chess_manual.txt b/chess_manual.txt
new file mode 100644
index 0000000..355094b
--- /dev/null
+++ b/chess_manual.txt
@@ -0,0 +1,30 @@
+_________ .__ _____ .__
+\_ ___ \| |__ ____ ______ ______ / \ _____ ____ __ _______ | |
+/ \ \/| | \_/ __ \ / ___// ___// \ / \\__ \ / \| | \__ \ | |
+\ \___| Y \ ___/ \___ \ \___ \/ Y \/ __ \| | \ | // __ \| |__
+ \______ /___| /\___ >____ >____ >____|__ (____ /___| /____/(____ /____/
+ \/ \/ \/ \/ \/ \/ \/ \/ \/
+
+Both short algebraic (SAN) and long algebraic (UCI) are valid input methods.
+Remember to use uppercase for piece (R, N, B, Q, K, P) and lowercase
+to select square (e4, f3, etc.).
+
+┌─┐┌─┐┌──┐┌──┐┌─┐ ┌─┐┌──┐┌──┐ ┌─┐┌─┐┌─┐┌──┐┌─┐
+│b││x││a8││=q││+│ │Q││c3││e5│ │R││2││-││c1││#│
+└┬┘└┬┘└─┬┘└─┬┘└┬┘ └┬┘└─┬┘└─┬┘ └┬┘└┬┘└┬┘└─┬┘└┬┘
+ │ │ │ │ │ └───┼───┼────┴──┼──┼───┼──┼── 1 > attacker
+ └──┼───┼───┼──┼────────┴───┼───────┴──┼───┼──┼── 2 > attackersquare
+ └───┼───┼──┼────────────┼──────────┴───┼──┼── 3 > captures/goes to
+ └───┼──┼────────────┴──────────────┴──┼── 4 > targetsquare
+ └──┼──────────────────────────────┼── 5 > pawn promotion
+ └──────────────────────────────┴── 6 > check/checkmate
+
+1 > R, N, B, Q, K, P - remember to use capital letters!
+2 > required if column (a-h), row (1-8) or both (a1-h8) uncertain
+3 > (optional)
+4 > always required with column (a-h) and row (1-8) coordinates
+5 > required if pawn is promoted (Q, R, N, B)
+6 > (optional) note '+' to say check and '#' to say checkmate
+
+Valid inputs > 'rook on 2 goes to c1 with check', 'Nf3', 'e2e4'
+'b takes c8 /q CHECKMATE', 'O-O-O', 'castle queenside', 'd4', etc. \ No newline at end of file
diff --git a/chessconf.py b/chessconf.py
new file mode 100644
index 0000000..6b1d296
--- /dev/null
+++ b/chessconf.py
@@ -0,0 +1,220 @@
+# _________ .__ _________ _____.__
+# \_ ___ \| |__ ____ ______ _____\_ ___ \ ____ _____/ ____\__| ____
+# / \ \/| | \_/ __ \ / ___// ___/ \ \/ / _ \ / \ __\| |/ ___\
+# \ \___| Y \ ___/ \___ \ \___ \\ \___( <_> ) | \ | | / /_/ >
+# \______ /___| /\___ >____ >____ >\______ /\____/|___| /__| |__\___ /
+# \/ \/ \/ \/ \/ \/ \/ /_____/
+'''
+cool ascii > http://patorjk.com/software/taag
+chess-ICON > https://en.wikipedia.org/wiki/Chess_symbols_in_Unicode
+more cool unicode ICON > https://www.unicode.org/charts/
+color codes cheatsheet > https://gist.github.com/ConnerWill/d4b6c776b509add763e17f9f113fd25b'''
+
+import typing
+
+# ------------ BOARD -----------------
+'''
+black > '\x1b[30m'
+red > '\x1b[31m'
+green > '\x1b[32m'
+yellow > '\x1b[33m'
+blue > '\x1b[34m'
+magenta > '\x1b[35m'
+cyan > '\x1b[36m'
+white > '\x1b[37m' '''
+
+WHITECOLOR: typing.Final[str] = '\x1b[36m'
+BLACKCOLOR: typing.Final[str] = '\x1b[31m'
+SPACECOLOR: typing.Final[str] = ''
+
+WHITE_KING_ICON: typing.Final[str] = '\u265A'
+WHITE_QUEEN_ICON: typing.Final[str] = '\u265B'
+WHITE_ROOK_ICON: typing.Final[str] = '\u265C'
+WHITE_BISHOP_ICON: typing.Final[str] = '\u265D'
+WHITE_KNIGHT_ICON: typing.Final[str] = '\u265E'
+WHITE_PAWN_ICON: typing.Final[str] = '\u265F'
+
+SPACE_ICON: str = ' '
+
+BLACK_KING_ICON: str = '\u265A'
+BLACK_QUEEN_ICON: str = '\u265B'
+BLACK_ROOK_ICON: str = '\u265C'
+BLACK_BISHOP_ICON: str = '\u265D'
+BLACK_KNIGHT_ICON: str = '\u265E'
+BLACK_PAWN_ICON: str = '\u265F'
+
+STOCKFISH_PATH: str = '/opt/homebrew/bin/stockfish' # path to installed stockfish bin
+stockfish_depth: int = 10 # default calculation depth for stockfish engine
+minimax_depth: int = 4 # default calculation depth for minimax algorithm
+
+# ------------ PARSING --------------
+
+PIECE_MAP: typing.Final[dict[str, str]] = { # add other languages ('Springer': 'N')
+ 'rook': 'R', 'Rook': 'R', 'ROOK': 'R', 'Turm': 'R', 'T': 'R',
+ 'knight': 'N', 'Knight': 'N', 'KNIGHT': 'N', 'Springer': 'N', 'S': 'N',
+ 'bishop': 'B', 'Bishop': 'B', 'BISHOP': 'B', 'L': 'B', 'Läufer': 'B',
+ 'queen': 'Q', 'Queen': 'Q', 'QUEEN': 'Q', 'Dame': 'Q', 'D': 'Q',
+ 'king': 'K', 'King': 'K', 'KING': 'K',
+ 'pawn': 'P', 'Pawn': 'P', 'PAWN': 'P'}
+
+# value = True if capture else False
+ACTION_MAP: typing.Final[dict[str, bool]] = {' captures ': True, ' takes ': True, ' goes to ': False, ' goes ': False, ' to ': False, ' x ': True, ' - ': False, ' / ': False, 'x': True, '-': False, '/': False, '_': False, ' ': False} # put longer strings to the front so they match before ' ' does!
+
+PROMOTION_MAP: typing.Final[dict[str, str]] = {
+ ' queen': 'Q', ' = q': 'Q', ' =q': 'Q', ' /q': 'Q', '=q': 'Q', '/q': 'Q', ' q': 'Q', 'q': 'Q', ' QUEEN': 'Q', ' Queen': 'Q', ' = Q': 'Q', ' =Q': 'Q', ' /Q': 'Q', '=Q': 'Q', '/Q': 'Q', ' Q': 'Q', 'Q': 'Q',
+ ' rook': 'R', ' = r': 'R', ' =r': 'R', ' /r': 'R', '=r': 'R', '/r': 'R', ' r': 'R', 'r': 'R', ' ROOK': 'R', ' Rook': 'R', ' = R': 'R', ' =R': 'R', ' /R': 'R', '=R': 'R', '/R': 'R', ' R': 'R', 'R': 'R',
+ ' knight': 'N', ' = n': 'N', ' =n': 'N', ' /n': 'N', '=n': 'N', '/n': 'N', ' n': 'N', 'n': 'N', ' KNIGHT': 'N', ' Knight': 'N', ' = N': 'N', ' =N': 'N', ' /N': 'N', '=N': 'N', '/N': 'N', ' N': 'N', 'N': 'N',
+ ' bishop': 'B', ' = b': 'B', ' =b': 'B', ' /b': 'B', '=b': 'B', '/b': 'B', ' b': 'B', 'b': 'B', ' BISHOP': 'B', ' Bishop': 'B', ' = B': 'B', ' =B': 'B', ' /B': 'B', '=B': 'B', '/B': 'B', ' B': 'B', 'B': 'B'}
+
+# value = True if short castling else False
+CASTLING_MAP: typing.Final[dict[str, bool]] = {
+ 'short castling': True, 'castle short': True, 'kingside castling': True, 'castle kingside': True, 'O-O': True, '0-0': True, '00': True, 'o-o': True, 'oo': True, 'OO': True,
+ 'long castling': False, 'castle long': False, 'queenside castling': False, 'castle queenside': False, 'O-O-O': False, '0-0-0': False, '000': False, 'o-o-o': False, 'ooo': False, 'OOO': False}
+
+# value = True if check else False (checkmate)
+CHECK_OR_CHECKMATE_MAP: typing.Final[dict[str, str]] = {
+ ' with check': '+', ' CHECK': '+', ' check': '+', ' +': '+', '+': '+',
+ ' with checkmate': '#', ' CHECKMATE': '#', ' checkmate': '#', ' ++': '#', ' #': '#', '++': '#', '#': '#'}
+
+# ------------ EVAL FUNCTION --------------
+
+PIECEVALUE: typing.Final[dict[str, int]] = {'K': 20_000, 'Q': 900, 'R': 500, 'B': 330, 'N': 320, 'P': 100,'k': -20_000, 'q': -900, 'r': -500, 'b': -330, 'n': -320, 'p': -100, '.': 0}
+
+postables_struct = dict[str, tuple[
+ tuple[int, int, int, int, int, int, int, int],
+ tuple[int, int, int, int, int, int, int, int],
+ tuple[int, int, int, int, int, int, int, int],
+ tuple[int, int, int, int, int, int, int, int],
+ tuple[int, int, int, int, int, int, int, int],
+ tuple[int, int, int, int, int, int, int, int],
+ tuple[int, int, int, int, int, int, int, int],
+ tuple[int, int, int, int, int, int, int, int]]]
+
+POSTABLES: typing.Final[postables_struct] = {
+
+ 'R': ((0, 0, 0, 0, 0, 0, 0, 0),
+ (5, 10, 10, 10, 10, 10, 10, 5),
+ (-5, 0, 0, 0, 0, 0, 0, -5),
+ (-5, 0, 0, 0, 0, 0, 0, -5),
+ (-5, 0, 0, 0, 0, 0, 0, -5),
+ (-5, 0, 0, 0, 0, 0, 0, -5),
+ (-5, 0, 0, 0, 0, 0, 0, -5),
+ (0, 0, 0, 5, 5, 0, 0, 0)),
+
+ 'N': ((-50, -40, -30, -30, -30, -30, -40, -50),
+ (-40, -20, 0, 0, 0, 0, -20, -40),
+ (-30, 0, 10, 15, 15, 10, 0, -30),
+ (-30, 5, 15, 20, 20, 15, 5, -30),
+ (-30, 0, 15, 20, 20, 15, 0, -30),
+ (-30, 5, 10, 15, 15, 10, 5, -30),
+ (-40, -20, 0, 5, 5, 0, -20, -40),
+ (-50, -40, -30, -30, -30, -30, -40, -50)),
+
+ 'B': ((-20, -10, -10, -10, -10, -10, -10, -20),
+ (-10, 0, 0, 0, 0, 0, 0, -10),
+ (-10, 0, 5, 10, 10, 5, 0, -10),
+ (-10, 5, 5, 10, 10, 5, 5, -10),
+ (-10, 0, 10, 10, 10, 10, 0, -10),
+ (-10, 10, 10, 10, 10, 10, 10, -10),
+ (-10, 5, 0, 0, 0, 0, 5, -10),
+ (-20, -10, -10, -10, -10, -10, -10, -20)),
+
+ 'Q': ((-20, -10, -10, -5, -5, -10, -10, -20),
+ (-10, 0, 0, 0, 0, 0, 0, -10),
+ (-10, 0, 5, 5, 5, 5, 0, -10),
+ (-5, 0, 5, 5, 5, 5, 0, -5),
+ (0, 0, 5, 5, 5, 5, 0, -5),
+ (-10, 5, 5, 5, 5, 5, 0, -10),
+ (-10, 0, 5, 0, 0, 0, 0, -10),
+ (-20, -10, -10, -5, -5, -10, -10, -20)),
+
+ 'P': ((0, 0, 0, 0, 0, 0, 0, 0),
+ (50, 50, 50, 50, 50, 50, 50, 50),
+ (10, 10, 20, 30, 30, 20, 10, 10),
+ (5, 5, 10, 25, 25, 10, 5, 5),
+ (0, 0, 0, 20, 20, 0, 0, 0),
+ (5, -5, -10, 0, 0, -10, -5, 5),
+ (5, 10, 10, -20, -20, 10, 10, 5),
+ (0, 0, 0, 0, 0, 0, 0, 0)),
+
+ 'p': ((0, 0, 0, 0, 0, 0, 0, 0),
+ (-5, -10, -10, 20, 20, -10, -10, -5),
+ (-5, 5, 10, 0, 0, 10, 5, -5),
+ (0, 0, 0, -20, -20, 0, 0, 0),
+ (-5, -5, -10, -25, -25, -10, -5, -5),
+ (-10, -10, -20, -30, -30, -20, -10, -10),
+ (-50, -50, -50, -50, -50, -50, -50, -50),
+ (0, 0, 0, 0, 0, 0, 0, 0)),
+
+ 'K_end': ((-50, -40, -30, -20, -20, -30, -40, -50), # end game
+ (-30, -20, -10, 0, 0, -10, -20, -30),
+ (-30, -10, 20, 30, 30, 20, -10, -30),
+ (-30, -10, 30, 40, 40, 30, -10, -30),
+ (-30, -10, 30, 40, 40, 30, -10, -30),
+ (-30, -10, 20, 30, 30, 20, -10, -30),
+ (-30, -30, 0, 0, 0, 0, -30, -30),
+ (-50, -30, -30, -30, -30, -30, -30, -50)),
+
+ 'K_middle': ((-30, -40, -40, -50, -50, -40, -40, -30), # middle game
+ (-30, -40, -40, -50, -50, -40, -40, -30),
+ (-30, -40, -40, -50, -50, -40, -40, -30),
+ (-30, -40, -40, -50, -50, -40, -40, -30),
+ (-20, -30, -30, -40, -40, -30, -30, -20),
+ (-10, -20, -20, -20, -20, -20, -20, -10),
+ (20, 20, 0, 0, 0, 0, 20, 20),
+ (20, 30, 10, 0, 0, 10, 30, 20),
+ ),
+ 'r': ((0, 0, 0, -5, -5, 0, 0, 0),
+ (5, 0, 0, 0, 0, 0, 0, 5),
+ (5, 0, 0, 0, 0, 0, 0, 5),
+ (5, 0, 0, 0, 0, 0, 0, 5),
+ (5, 0, 0, 0, 0, 0, 0, 5),
+ (5, 0, 0, 0, 0, 0, 0, 5),
+ (-5, -10, -10, -10, -10, -10, -10, -5),
+ (0, 0, 0, 0, 0, 0, 0, 0)),
+
+ 'n': ((50, 40, 30, 30, 30, 30, 40, 50),
+ (40, 20, 0, -5, -5, 0, 20, 10),
+ (30, -5, -10, -15, -15, -10, -5, 30),
+ (30, 0, -15, -20, -20, -15, 0, 30),
+ (30, -5, -15, -20, -20, -15, -5, 30),
+ (30, 0, -10, -15, -15, -10, 0, 30),
+ (40, 20, 0, 0, 0, 0, 20, 40),
+ (50, 40, 30, 30, 30, 30, 40, 50)),
+
+ 'b': ((20, 10, 10, 10, 10, 10, 10, 20),
+ (10, -5, 0, 0, 0, 0, 0, 0, -5, 10),
+ (10, -10, -10, -10, -10, -10, -10, 10),
+ (10, 0, -10, -10, -10, -10, 0, 10),
+ (10, -5, -5, -5, -5, -5, -5, 10),
+ (10, 0, -5, -10, -10, -5, 0, 10),
+ (10, 0, 0, 0, 0, 0, 0, 10),
+ (20, 10, 10, 10, 10, 10, 10, 20)),
+
+ 'k_end': ((50, 30, 30, 30, 30, 30, 30, 50), # end game
+ (30, 30, 0, 0, 0, 0, 30, 30),
+ (30, 10, -20, -30, -30, -20, 10, 30),
+ (30, 10, -30, -40, -40, -30, 10, 30),
+ (30, 10, -30, -40, -40, -30, 10, 30),
+ (30, 10, -20, -30, -30, -20, 10, 30),
+ (30, 20, 10, 0, 0, 10, 20, 30),
+ (50, 40, 30, 20, 20, 30, 40, 50)),
+
+ 'k_middle': ((-20, -30, -10, 0, 0, -10, -30, -20), # middle game
+ (-20, -20, 0, 0, 0, 0, -20, -20),
+ (10, 20, 20, 20, 20, 20, 20, 10),
+ (20, 30, 30, 40, 40, 30, 30, 20),
+ (30, 40, 40, 50, 50, 40, 40, 30),
+ (30, 40, 40, 50, 50, 40, 40, 30),
+ (30, 40, 40, 50, 50, 40, 40, 30),
+ (30, 40, 40, 50, 50, 40, 40, 30)),
+
+ 'q': ((20, 10, 10, -5, -5, 10, 10, 20),
+ (10, 0, -5, 0, 0, 0, 0, 10),
+ (10, -5, -5, -5, -5, -5, 0, 10),
+ (0, 0, -5, -5, -5, -5, 0, 5),
+ (5, 0, -5, -5, -5, -5, 0, 5),
+ (10, 0, -5, -5, -5, -5, 0, 10),
+ (10, 0, 0, 0, 0, 0, 0, 10),
+ (20, 10, 10, 5, 5, 10, 10, 20))
+ } \ No newline at end of file
diff --git a/gen_piece_move_tables.py b/gen_piece_move_tables.py
new file mode 100644
index 0000000..a0efbf7
--- /dev/null
+++ b/gen_piece_move_tables.py
@@ -0,0 +1,285 @@
+import typing
+
+def int_to_hexstr(bm: int) -> str:
+ if bm > 0xFFFF_FFFF_FFFF_FFFF:
+ return False
+ return '0x' + '_'.join(f'{bm:016X}'[i : i + 4] for i in range(0, 16, 4))
+
+def fill_bm(bm: int, bits: int) -> int:
+ filled_bm = 0
+ for idx in range(64):
+ if bm & 1 << idx:
+ if bits & 1:
+ filled_bm |= 1 << idx
+ bits >>= 1
+ return filled_bm
+
+def count_ones(bm: int) -> int:
+ ctr = 0
+ for idx in range(64):
+ ctr += bm >> idx & 1
+ return ctr
+
+def all_bit_combs(bm: int):
+ for bit_comb in range(2**count_ones(bm)):
+ yield fill_bm(bm, bit_comb)
+
+def n_mvs_mask(idx: int) -> int:
+ bm = 0
+ for dir in (-6, -10, -17, -15, 6, 10, 17, 15):
+ new_idx = idx + dir
+ if abs(new_idx%8 - idx%8) < 3 and new_idx in range(64):
+ bm |= 1 << new_idx
+ return bm
+
+def k_mvs_mask(idx: int) -> int:
+ bm = 0
+ for dir in (1, -1, -7, -8, -9, 7, 8, 9):
+ new_idx = idx + dir
+ if abs(new_idx%8 - idx%8) < 2 and new_idx in range(64):
+ bm |= 1 << new_idx
+ return bm
+
+def wp_double_push_mask(idx: int) -> int:
+ if idx // 8 == 6:
+ return 1 << (idx - 16)
+ return 0
+
+def wp_push_mask(idx: int) -> int:
+ if not idx // 8 == 0:
+ return 1 << (idx - 8)
+ return 0
+
+def wp_left_take_mask(idx: int) -> int:
+ if not idx // 8 == 0 and not idx % 8 == 0:
+ return 1 << (idx - 9)
+ return 0
+
+def wp_right_take_mask(idx: int) -> int:
+ if not idx // 8 == 0 and not idx % 8 == 7:
+ return 1 << (idx - 7)
+ return 0
+
+def bp_double_push_mask(idx: int) -> int:
+ if idx // 8 == 1:
+ return 1 << (idx + 16)
+ return 0
+
+def bp_push_mask(idx: int) -> int:
+ if not idx // 8 == 7:
+ return 1 << (idx + 8)
+ return 0
+
+def bp_left_take_mask(idx: int) -> int:
+ if not idx // 8 == 7 and not idx % 8 == 0:
+ return 1 << (idx + 7)
+ return 0
+
+def bp_right_take_mask(idx: int) -> int:
+ if not idx // 8 == 7 and not idx % 8 == 7:
+ return 1 << (idx + 9)
+ return 0
+
+def l_border_slide(idx: int) -> int:
+ slide_bm = 0
+ if idx % 8 == 7:
+ return slide_bm
+ while True:
+ idx += 1
+ slide_bm |= 1 << idx
+ if idx % 8 == 7:
+ return slide_bm
+
+def l_slide(bm: int, idx: int) -> int:
+ slide_bm = 0
+ if idx % 8 == 7:
+ return slide_bm
+ while True:
+ idx += 1
+ slide_bm |= 1 << idx
+ if idx % 8 == 7 or bm & 1 << idx:
+ return slide_bm
+
+def r_border_slide(idx: int) -> int:
+ slide_bm = 0
+ if idx % 8 == 0:
+ return slide_bm
+ while True:
+ idx -= 1
+ slide_bm |= 1 << idx
+ if idx % 8 == 0:
+ return slide_bm
+
+def r_slide(bm: int, idx: int) -> int:
+ slide_bm = 0
+ if idx % 8 == 0:
+ return slide_bm
+ while True:
+ idx -= 1
+ slide_bm |= 1 << idx
+ if idx % 8 == 0 or bm & 1 << idx:
+ return slide_bm
+
+def u_border_slide(idx: int) -> int:
+ slide_bm = 0
+ if idx // 8 == 7:
+ return slide_bm
+ while True:
+ idx += 8
+ slide_bm |= 1 << idx
+ if idx // 8 == 7:
+ return slide_bm
+
+def u_slide(bm: int, idx: int) -> int:
+ slide_bm = 0
+ if idx // 8 == 7:
+ return slide_bm
+ while True:
+ idx += 8
+ slide_bm |= 1 << idx
+ if idx // 8 == 7 or bm & 1 << idx:
+ return slide_bm
+
+def d_border_slide(idx: int) -> int:
+ slide_bm = 0
+ if idx // 8 == 0:
+ return slide_bm
+ while True:
+ idx -= 8
+ slide_bm |= 1 << idx
+ if idx // 8 == 0:
+ return slide_bm
+
+def d_slide(bm: int, idx: int) -> int:
+ slide_bm = 0
+ if idx // 8 == 0:
+ return slide_bm
+ while True:
+ idx -= 8
+ slide_bm |= 1 << idx
+ if idx // 8 == 0 or bm & 1 << idx:
+ return slide_bm
+
+def lu_border_slide(idx: int) -> int:
+ slide_bm = 0
+ if idx % 8 == 7 or idx // 8 == 7:
+ return slide_bm
+ while True:
+ idx += 9
+ slide_bm |= 1 << idx
+ if idx % 8 == 7 or idx // 8 == 7:
+ return slide_bm
+
+def lu_slide(bm: int, idx: int) -> int:
+ slide_bm = 0
+ if idx % 8 == 7 or idx // 8 == 7:
+ return slide_bm
+ while True:
+ idx += 9
+ slide_bm |= 1 << idx
+ if idx % 8 == 7 or idx // 8 == 7 or bm & 1 << idx:
+ return slide_bm
+
+def ld_border_slide(idx: int) -> int:
+ slide_bm = 0
+ if idx % 8 == 7 or idx // 8 == 0:
+ return slide_bm
+ while True:
+ idx -= 7
+ slide_bm |= 1 << idx
+ if idx % 8 == 7 or idx // 8 == 0:
+ return slide_bm
+
+def ld_slide(bm: int, idx: int) -> int:
+ slide_bm = 0
+ if idx % 8 == 7 or idx // 8 == 0:
+ return slide_bm
+ while True:
+ idx -= 7
+ slide_bm |= 1 << idx
+ if idx % 8 == 7 or idx // 8 == 0 or bm & 1 << idx:
+ return slide_bm
+
+def ru_border_slide(idx: int) -> int:
+ slide_bm = 0
+ if idx % 8 == 0 or idx // 8 == 7:
+ return slide_bm
+ while True:
+ idx += 7
+ slide_bm |= 1 << idx
+ if idx % 8 == 0 or idx // 8 == 7:
+ return slide_bm
+
+def ru_slide(bm: int, idx: int) -> int:
+ slide_bm = 0
+ if idx % 8 == 0 or idx // 8 == 7:
+ return slide_bm
+ while True:
+ idx += 7
+ slide_bm |= 1 << idx
+ if idx % 8 == 0 or idx // 8 == 7 or bm & 1 << idx:
+ return slide_bm
+
+def rd_border_slide(idx: int) -> int:
+ slide_bm = 0
+ if idx % 8 == 0 or idx // 8 == 0:
+ return slide_bm
+ while True:
+ idx -= 9
+ slide_bm |= 1 << idx
+ if idx % 8 == 0 or idx // 8 == 0:
+ return slide_bm
+
+def rd_slide(bm: int, idx: int) -> int:
+ slide_bm = 0
+ if idx % 8 == 0 or idx // 8 == 0:
+ return slide_bm
+ while True:
+ idx -= 9
+ slide_bm |= 1 << idx
+ if idx % 8 == 0 or idx // 8 == 0 or bm & 1 << idx:
+ return slide_bm
+
+direction_sliding_func = {
+ 'L': l_slide, 'R': r_slide, 'U': u_slide, 'D': d_slide,
+ 'LU': lu_slide, 'LD': ld_slide, 'RU': ru_slide, 'RD': rd_slide,
+}
+direction_border_sliding_func = {
+ 'L': l_border_slide, 'R': r_border_slide, 'U': u_border_slide, 'D': d_border_slide,
+ 'LU': lu_border_slide, 'LD': ld_border_slide, 'RU': ru_border_slide, 'RD': rd_border_slide,
+}
+
+def write_8x8_table(function: typing.Callable[[int], int], file_name: str = '8x8_table.py', tuple_name: str = 'TABLE', overwrite: bool = False) -> None:
+ f = open(file_name, 'w' if overwrite else 'a')
+ f.write(tuple_name + ' = (')
+ for idx in range(64):
+ if idx % 8 == 0:
+ f.write('\n ')
+ f.write(int_to_hexstr(function(idx)) + ', ')
+ f.write('\n)\n')
+
+def write_comb_dict(border_func: int, sliding_func: typing.Callable[[int, int], int], file_name: str = 'blocker_comb_table.py', tuple_name: str = 'BLOCKER_COMBS', overwrite: bool = False) -> None:
+ f = open(file_name, 'w' if overwrite else 'a')
+ f.write(tuple_name + ' = (')
+ for idx in range(64):
+ f.write('\n {')
+ for ctr, bit_comb in enumerate(all_bit_combs(border_func(idx))):
+ if ctr % 4 == 0:
+ f.write('\n ')
+ f.write(int_to_hexstr(bit_comb) + ': ' + int_to_hexstr(sliding_func(bit_comb, idx)) + ', ')
+ f.write('\n }, ')
+ f.write('\n)\n')
+
+def write_piece_move_tables(file_name: str = 'piece_move_tables.py', overwrite: bool = True) -> None:
+ if overwrite:
+ open(file_name, 'w')
+ func_dict = {'N': n_mvs_mask, 'K': k_mvs_mask, 'WP_DOUBLE_PUSH': wp_double_push_mask, 'WP_PUSH': wp_push_mask, 'WP_LEFT_TAKE': wp_left_take_mask, 'WP_RIGHT_TAKE': wp_right_take_mask, 'BP_DOUBLE_PUSH': bp_double_push_mask, 'BP_PUSH': bp_push_mask, 'BP_LEFT_TAKE': bp_left_take_mask, 'BP_RIGHT_TAKE': bp_right_take_mask}
+ for piece, func in func_dict.items():
+ write_8x8_table(func, file_name, piece + '_MASK')
+ for direction in ('L', 'R', 'U', 'D', 'LU', 'LD', 'RU', 'RD'):
+ write_8x8_table(direction_border_sliding_func[direction], file_name, direction + '_BORDER_MASK')
+ for direction in ('L', 'R', 'U', 'D', 'LU', 'LD', 'RU', 'RD'):
+ write_comb_dict(direction_border_sliding_func[direction], direction_sliding_func[direction], file_name, direction + '_MASK')
+
+if __name__ == '__main__':
+ write_piece_move_tables() \ No newline at end of file
diff --git a/loading_animation.py b/loading_animation.py
new file mode 100644
index 0000000..fe4d51f
--- /dev/null
+++ b/loading_animation.py
@@ -0,0 +1,27 @@
+from time import sleep
+
+loadingdelay = 0.1
+
+('|', '/', '-', '\\')
+('▁', '▂', '▃', '▄', '▅', '▆', '▇', '█', '▇', '▆', '▅', '▄', '▃', '▁')
+('▉', '▊', '▋', '▌', '▍', '▎', '▏', '▎', '▍', '▌', '▋', '▊', '▉')
+('┤', '┘', '┴', '└', '├', '┌', '┬', '┐')
+('←', '↖', '↑', '↗', '→', '↘', '↓', '↙')
+('⣾', '⣽', '⣻', '⢿', '⡿', '⣟', '⣯', '⣷')
+('⠁', '⠂', '⠄', '⡀', '⢀', '⠠', '⠐', '⠈')
+('◡', '⊙', '◠')
+('◢', '◣', '◤', '◥')
+('◰', '◳', '◲', '◱')
+('◴', '◷', '◶', '◵')
+('◐', '◓', '◑', '◒')
+('◡◡', '⊙⊙', '◠◠')
+('♚ 🔫', '♚ -🔫', '♚ - 🔫', '♚- 🔫', '☠ 🔫')
+
+animation = ('←', '↖', '↑', '↗', '→', '↘', '↓', '↙')
+def animate():
+ while True:
+ for frame in animation:
+ print('\rloading ' + frame, end = '')
+ sleep(loadingdelay)
+
+animate() \ No newline at end of file
diff --git a/magic_machine.py b/magic_machine.py
new file mode 100644
index 0000000..7a9658e
--- /dev/null
+++ b/magic_machine.py
@@ -0,0 +1,37 @@
+import piece_move_tables
+
+def all_pos_rook(idx: int):
+ for left in piece_move_tables.L_BORDER_MASK[idx]:
+ for right in piece_move_tables.R_BORDER_MASK[idx]:
+ for up in piece_move_tables.U_BORDER_MASK[idx]:
+ for down in piece_move_tables.D_BORDER_MASK[idx]:
+ yield left | right | up | down
+
+def all_pos_bishop(idx: int):
+ for left_up in piece_move_tables.LU_BORDER_MASK[idx]:
+ for left_down in piece_move_tables.LD_BORDER_MASK[idx]:
+ for right_up in piece_move_tables.RU_BORDER_MASK[idx]:
+ for right_down in piece_move_tables.RD_BORDER_MASK[idx]:
+ yield left_up | left_down | right_up | right_down
+
+def all_pos_queen(idx: int):
+ for rook_directions in all_pos_rook(idx):
+ for bishop_directions in all_pos_bishop(idx):
+ yield rook_directions | bishop_directions
+
+def forever_magics():
+ yield
+
+import time
+starttime = time.time()
+
+for _ in range(10):
+ for pos in all_pos_queen(30):
+ var = pos
+ print('yes')
+
+# 21.63
+# 16.22
+
+exectime = round(time.time() - starttime, 2)
+print('exectime >', exectime) \ No newline at end of file
diff --git a/piece_move_tables.py b/piece_move_tables.py
new file mode 100644
index 0000000..86c2741
--- /dev/null
+++ b/piece_move_tables.py
@@ -0,0 +1,4120 @@
+N_MASK = (
+ 0x0000_0000_0002_0400, 0x0000_0000_0005_0800, 0x0000_0000_000A_1100, 0x0000_0000_0014_2200, 0x0000_0000_0028_4400, 0x0000_0000_0050_8800, 0x0000_0000_00A0_1000, 0x0000_0000_0040_2000,
+ 0x0000_0000_0204_0004, 0x0000_0000_0508_0008, 0x0000_0000_0A11_0011, 0x0000_0000_1422_0022, 0x0000_0000_2844_0044, 0x0000_0000_5088_0088, 0x0000_0000_A010_0010, 0x0000_0000_4020_0020,
+ 0x0000_0002_0400_0402, 0x0000_0005_0800_0805, 0x0000_000A_1100_110A, 0x0000_0014_2200_2214, 0x0000_0028_4400_4428, 0x0000_0050_8800_8850, 0x0000_00A0_1000_10A0, 0x0000_0040_2000_2040,
+ 0x0000_0204_0004_0200, 0x0000_0508_0008_0500, 0x0000_0A11_0011_0A00, 0x0000_1422_0022_1400, 0x0000_2844_0044_2800, 0x0000_5088_0088_5000, 0x0000_A010_0010_A000, 0x0000_4020_0020_4000,
+ 0x0002_0400_0402_0000, 0x0005_0800_0805_0000, 0x000A_1100_110A_0000, 0x0014_2200_2214_0000, 0x0028_4400_4428_0000, 0x0050_8800_8850_0000, 0x00A0_1000_10A0_0000, 0x0040_2000_2040_0000,
+ 0x0204_0004_0200_0000, 0x0508_0008_0500_0000, 0x0A11_0011_0A00_0000, 0x1422_0022_1400_0000, 0x2844_0044_2800_0000, 0x5088_0088_5000_0000, 0xA010_0010_A000_0000, 0x4020_0020_4000_0000,
+ 0x0400_0402_0000_0000, 0x0800_0805_0000_0000, 0x1100_110A_0000_0000, 0x2200_2214_0000_0000, 0x4400_4428_0000_0000, 0x8800_8850_0000_0000, 0x1000_10A0_0000_0000, 0x2000_2040_0000_0000,
+ 0x0004_0200_0000_0000, 0x0008_0500_0000_0000, 0x0011_0A00_0000_0000, 0x0022_1400_0000_0000, 0x0044_2800_0000_0000, 0x0088_5000_0000_0000, 0x0010_A000_0000_0000, 0x0020_4000_0000_0000,
+)
+K_MASK = (
+ 0x0000_0000_0000_0302, 0x0000_0000_0000_0705, 0x0000_0000_0000_0E0A, 0x0000_0000_0000_1C14, 0x0000_0000_0000_3828, 0x0000_0000_0000_7050, 0x0000_0000_0000_E0A0, 0x0000_0000_0000_C040,
+ 0x0000_0000_0003_0203, 0x0000_0000_0007_0507, 0x0000_0000_000E_0A0E, 0x0000_0000_001C_141C, 0x0000_0000_0038_2838, 0x0000_0000_0070_5070, 0x0000_0000_00E0_A0E0, 0x0000_0000_00C0_40C0,
+ 0x0000_0000_0302_0300, 0x0000_0000_0705_0700, 0x0000_0000_0E0A_0E00, 0x0000_0000_1C14_1C00, 0x0000_0000_3828_3800, 0x0000_0000_7050_7000, 0x0000_0000_E0A0_E000, 0x0000_0000_C040_C000,
+ 0x0000_0003_0203_0000, 0x0000_0007_0507_0000, 0x0000_000E_0A0E_0000, 0x0000_001C_141C_0000, 0x0000_0038_2838_0000, 0x0000_0070_5070_0000, 0x0000_00E0_A0E0_0000, 0x0000_00C0_40C0_0000,
+ 0x0000_0302_0300_0000, 0x0000_0705_0700_0000, 0x0000_0E0A_0E00_0000, 0x0000_1C14_1C00_0000, 0x0000_3828_3800_0000, 0x0000_7050_7000_0000, 0x0000_E0A0_E000_0000, 0x0000_C040_C000_0000,
+ 0x0003_0203_0000_0000, 0x0007_0507_0000_0000, 0x000E_0A0E_0000_0000, 0x001C_141C_0000_0000, 0x0038_2838_0000_0000, 0x0070_5070_0000_0000, 0x00E0_A0E0_0000_0000, 0x00C0_40C0_0000_0000,
+ 0x0302_0300_0000_0000, 0x0705_0700_0000_0000, 0x0E0A_0E00_0000_0000, 0x1C14_1C00_0000_0000, 0x3828_3800_0000_0000, 0x7050_7000_0000_0000, 0xE0A0_E000_0000_0000, 0xC040_C000_0000_0000,
+ 0x0203_0000_0000_0000, 0x0507_0000_0000_0000, 0x0A0E_0000_0000_0000, 0x141C_0000_0000_0000, 0x2838_0000_0000_0000, 0x5070_0000_0000_0000, 0xA0E0_0000_0000_0000, 0x40C0_0000_0000_0000,
+)
+WP_DOUBLE_PUSH_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0001_0000_0000, 0x0000_0002_0000_0000, 0x0000_0004_0000_0000, 0x0000_0008_0000_0000, 0x0000_0010_0000_0000, 0x0000_0020_0000_0000, 0x0000_0040_0000_0000, 0x0000_0080_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+)
+WP_PUSH_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0001, 0x0000_0000_0000_0002, 0x0000_0000_0000_0004, 0x0000_0000_0000_0008, 0x0000_0000_0000_0010, 0x0000_0000_0000_0020, 0x0000_0000_0000_0040, 0x0000_0000_0000_0080,
+ 0x0000_0000_0000_0100, 0x0000_0000_0000_0200, 0x0000_0000_0000_0400, 0x0000_0000_0000_0800, 0x0000_0000_0000_1000, 0x0000_0000_0000_2000, 0x0000_0000_0000_4000, 0x0000_0000_0000_8000,
+ 0x0000_0000_0001_0000, 0x0000_0000_0002_0000, 0x0000_0000_0004_0000, 0x0000_0000_0008_0000, 0x0000_0000_0010_0000, 0x0000_0000_0020_0000, 0x0000_0000_0040_0000, 0x0000_0000_0080_0000,
+ 0x0000_0000_0100_0000, 0x0000_0000_0200_0000, 0x0000_0000_0400_0000, 0x0000_0000_0800_0000, 0x0000_0000_1000_0000, 0x0000_0000_2000_0000, 0x0000_0000_4000_0000, 0x0000_0000_8000_0000,
+ 0x0000_0001_0000_0000, 0x0000_0002_0000_0000, 0x0000_0004_0000_0000, 0x0000_0008_0000_0000, 0x0000_0010_0000_0000, 0x0000_0020_0000_0000, 0x0000_0040_0000_0000, 0x0000_0080_0000_0000,
+ 0x0000_0100_0000_0000, 0x0000_0200_0000_0000, 0x0000_0400_0000_0000, 0x0000_0800_0000_0000, 0x0000_1000_0000_0000, 0x0000_2000_0000_0000, 0x0000_4000_0000_0000, 0x0000_8000_0000_0000,
+ 0x0001_0000_0000_0000, 0x0002_0000_0000_0000, 0x0004_0000_0000_0000, 0x0008_0000_0000_0000, 0x0010_0000_0000_0000, 0x0020_0000_0000_0000, 0x0040_0000_0000_0000, 0x0080_0000_0000_0000,
+)
+WP_LEFT_TAKE_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0001, 0x0000_0000_0000_0002, 0x0000_0000_0000_0004, 0x0000_0000_0000_0008, 0x0000_0000_0000_0010, 0x0000_0000_0000_0020, 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0100, 0x0000_0000_0000_0200, 0x0000_0000_0000_0400, 0x0000_0000_0000_0800, 0x0000_0000_0000_1000, 0x0000_0000_0000_2000, 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0001_0000, 0x0000_0000_0002_0000, 0x0000_0000_0004_0000, 0x0000_0000_0008_0000, 0x0000_0000_0010_0000, 0x0000_0000_0020_0000, 0x0000_0000_0040_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0100_0000, 0x0000_0000_0200_0000, 0x0000_0000_0400_0000, 0x0000_0000_0800_0000, 0x0000_0000_1000_0000, 0x0000_0000_2000_0000, 0x0000_0000_4000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0001_0000_0000, 0x0000_0002_0000_0000, 0x0000_0004_0000_0000, 0x0000_0008_0000_0000, 0x0000_0010_0000_0000, 0x0000_0020_0000_0000, 0x0000_0040_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0100_0000_0000, 0x0000_0200_0000_0000, 0x0000_0400_0000_0000, 0x0000_0800_0000_0000, 0x0000_1000_0000_0000, 0x0000_2000_0000_0000, 0x0000_4000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0001_0000_0000_0000, 0x0002_0000_0000_0000, 0x0004_0000_0000_0000, 0x0008_0000_0000_0000, 0x0010_0000_0000_0000, 0x0020_0000_0000_0000, 0x0040_0000_0000_0000,
+)
+WP_RIGHT_TAKE_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0002, 0x0000_0000_0000_0004, 0x0000_0000_0000_0008, 0x0000_0000_0000_0010, 0x0000_0000_0000_0020, 0x0000_0000_0000_0040, 0x0000_0000_0000_0080, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0200, 0x0000_0000_0000_0400, 0x0000_0000_0000_0800, 0x0000_0000_0000_1000, 0x0000_0000_0000_2000, 0x0000_0000_0000_4000, 0x0000_0000_0000_8000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0002_0000, 0x0000_0000_0004_0000, 0x0000_0000_0008_0000, 0x0000_0000_0010_0000, 0x0000_0000_0020_0000, 0x0000_0000_0040_0000, 0x0000_0000_0080_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0200_0000, 0x0000_0000_0400_0000, 0x0000_0000_0800_0000, 0x0000_0000_1000_0000, 0x0000_0000_2000_0000, 0x0000_0000_4000_0000, 0x0000_0000_8000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0002_0000_0000, 0x0000_0004_0000_0000, 0x0000_0008_0000_0000, 0x0000_0010_0000_0000, 0x0000_0020_0000_0000, 0x0000_0040_0000_0000, 0x0000_0080_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0200_0000_0000, 0x0000_0400_0000_0000, 0x0000_0800_0000_0000, 0x0000_1000_0000_0000, 0x0000_2000_0000_0000, 0x0000_4000_0000_0000, 0x0000_8000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0002_0000_0000_0000, 0x0004_0000_0000_0000, 0x0008_0000_0000_0000, 0x0010_0000_0000_0000, 0x0020_0000_0000_0000, 0x0040_0000_0000_0000, 0x0080_0000_0000_0000, 0x0000_0000_0000_0000,
+)
+BP_DOUBLE_PUSH_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0100_0000, 0x0000_0000_0200_0000, 0x0000_0000_0400_0000, 0x0000_0000_0800_0000, 0x0000_0000_1000_0000, 0x0000_0000_2000_0000, 0x0000_0000_4000_0000, 0x0000_0000_8000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+)
+BP_PUSH_MASK = (
+ 0x0000_0000_0000_0100, 0x0000_0000_0000_0200, 0x0000_0000_0000_0400, 0x0000_0000_0000_0800, 0x0000_0000_0000_1000, 0x0000_0000_0000_2000, 0x0000_0000_0000_4000, 0x0000_0000_0000_8000,
+ 0x0000_0000_0001_0000, 0x0000_0000_0002_0000, 0x0000_0000_0004_0000, 0x0000_0000_0008_0000, 0x0000_0000_0010_0000, 0x0000_0000_0020_0000, 0x0000_0000_0040_0000, 0x0000_0000_0080_0000,
+ 0x0000_0000_0100_0000, 0x0000_0000_0200_0000, 0x0000_0000_0400_0000, 0x0000_0000_0800_0000, 0x0000_0000_1000_0000, 0x0000_0000_2000_0000, 0x0000_0000_4000_0000, 0x0000_0000_8000_0000,
+ 0x0000_0001_0000_0000, 0x0000_0002_0000_0000, 0x0000_0004_0000_0000, 0x0000_0008_0000_0000, 0x0000_0010_0000_0000, 0x0000_0020_0000_0000, 0x0000_0040_0000_0000, 0x0000_0080_0000_0000,
+ 0x0000_0100_0000_0000, 0x0000_0200_0000_0000, 0x0000_0400_0000_0000, 0x0000_0800_0000_0000, 0x0000_1000_0000_0000, 0x0000_2000_0000_0000, 0x0000_4000_0000_0000, 0x0000_8000_0000_0000,
+ 0x0001_0000_0000_0000, 0x0002_0000_0000_0000, 0x0004_0000_0000_0000, 0x0008_0000_0000_0000, 0x0010_0000_0000_0000, 0x0020_0000_0000_0000, 0x0040_0000_0000_0000, 0x0080_0000_0000_0000,
+ 0x0100_0000_0000_0000, 0x0200_0000_0000_0000, 0x0400_0000_0000_0000, 0x0800_0000_0000_0000, 0x1000_0000_0000_0000, 0x2000_0000_0000_0000, 0x4000_0000_0000_0000, 0x8000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+)
+BP_LEFT_TAKE_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0100, 0x0000_0000_0000_0200, 0x0000_0000_0000_0400, 0x0000_0000_0000_0800, 0x0000_0000_0000_1000, 0x0000_0000_0000_2000, 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0001_0000, 0x0000_0000_0002_0000, 0x0000_0000_0004_0000, 0x0000_0000_0008_0000, 0x0000_0000_0010_0000, 0x0000_0000_0020_0000, 0x0000_0000_0040_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0100_0000, 0x0000_0000_0200_0000, 0x0000_0000_0400_0000, 0x0000_0000_0800_0000, 0x0000_0000_1000_0000, 0x0000_0000_2000_0000, 0x0000_0000_4000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0001_0000_0000, 0x0000_0002_0000_0000, 0x0000_0004_0000_0000, 0x0000_0008_0000_0000, 0x0000_0010_0000_0000, 0x0000_0020_0000_0000, 0x0000_0040_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0100_0000_0000, 0x0000_0200_0000_0000, 0x0000_0400_0000_0000, 0x0000_0800_0000_0000, 0x0000_1000_0000_0000, 0x0000_2000_0000_0000, 0x0000_4000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0001_0000_0000_0000, 0x0002_0000_0000_0000, 0x0004_0000_0000_0000, 0x0008_0000_0000_0000, 0x0010_0000_0000_0000, 0x0020_0000_0000_0000, 0x0040_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0100_0000_0000_0000, 0x0200_0000_0000_0000, 0x0400_0000_0000_0000, 0x0800_0000_0000_0000, 0x1000_0000_0000_0000, 0x2000_0000_0000_0000, 0x4000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+)
+BP_RIGHT_TAKE_MASK = (
+ 0x0000_0000_0000_0200, 0x0000_0000_0000_0400, 0x0000_0000_0000_0800, 0x0000_0000_0000_1000, 0x0000_0000_0000_2000, 0x0000_0000_0000_4000, 0x0000_0000_0000_8000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0002_0000, 0x0000_0000_0004_0000, 0x0000_0000_0008_0000, 0x0000_0000_0010_0000, 0x0000_0000_0020_0000, 0x0000_0000_0040_0000, 0x0000_0000_0080_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0200_0000, 0x0000_0000_0400_0000, 0x0000_0000_0800_0000, 0x0000_0000_1000_0000, 0x0000_0000_2000_0000, 0x0000_0000_4000_0000, 0x0000_0000_8000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0002_0000_0000, 0x0000_0004_0000_0000, 0x0000_0008_0000_0000, 0x0000_0010_0000_0000, 0x0000_0020_0000_0000, 0x0000_0040_0000_0000, 0x0000_0080_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0200_0000_0000, 0x0000_0400_0000_0000, 0x0000_0800_0000_0000, 0x0000_1000_0000_0000, 0x0000_2000_0000_0000, 0x0000_4000_0000_0000, 0x0000_8000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0002_0000_0000_0000, 0x0004_0000_0000_0000, 0x0008_0000_0000_0000, 0x0010_0000_0000_0000, 0x0020_0000_0000_0000, 0x0040_0000_0000_0000, 0x0080_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0200_0000_0000_0000, 0x0400_0000_0000_0000, 0x0800_0000_0000_0000, 0x1000_0000_0000_0000, 0x2000_0000_0000_0000, 0x4000_0000_0000_0000, 0x8000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+)
+L_BORDER_MASK = (
+ 0x0000_0000_0000_00FE, 0x0000_0000_0000_00FC, 0x0000_0000_0000_00F8, 0x0000_0000_0000_00F0, 0x0000_0000_0000_00E0, 0x0000_0000_0000_00C0, 0x0000_0000_0000_0080, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_FE00, 0x0000_0000_0000_FC00, 0x0000_0000_0000_F800, 0x0000_0000_0000_F000, 0x0000_0000_0000_E000, 0x0000_0000_0000_C000, 0x0000_0000_0000_8000, 0x0000_0000_0000_0000,
+ 0x0000_0000_00FE_0000, 0x0000_0000_00FC_0000, 0x0000_0000_00F8_0000, 0x0000_0000_00F0_0000, 0x0000_0000_00E0_0000, 0x0000_0000_00C0_0000, 0x0000_0000_0080_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_FE00_0000, 0x0000_0000_FC00_0000, 0x0000_0000_F800_0000, 0x0000_0000_F000_0000, 0x0000_0000_E000_0000, 0x0000_0000_C000_0000, 0x0000_0000_8000_0000, 0x0000_0000_0000_0000,
+ 0x0000_00FE_0000_0000, 0x0000_00FC_0000_0000, 0x0000_00F8_0000_0000, 0x0000_00F0_0000_0000, 0x0000_00E0_0000_0000, 0x0000_00C0_0000_0000, 0x0000_0080_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_FE00_0000_0000, 0x0000_FC00_0000_0000, 0x0000_F800_0000_0000, 0x0000_F000_0000_0000, 0x0000_E000_0000_0000, 0x0000_C000_0000_0000, 0x0000_8000_0000_0000, 0x0000_0000_0000_0000,
+ 0x00FE_0000_0000_0000, 0x00FC_0000_0000_0000, 0x00F8_0000_0000_0000, 0x00F0_0000_0000_0000, 0x00E0_0000_0000_0000, 0x00C0_0000_0000_0000, 0x0080_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0xFE00_0000_0000_0000, 0xFC00_0000_0000_0000, 0xF800_0000_0000_0000, 0xF000_0000_0000_0000, 0xE000_0000_0000_0000, 0xC000_0000_0000_0000, 0x8000_0000_0000_0000, 0x0000_0000_0000_0000,
+)
+R_BORDER_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0001, 0x0000_0000_0000_0003, 0x0000_0000_0000_0007, 0x0000_0000_0000_000F, 0x0000_0000_0000_001F, 0x0000_0000_0000_003F, 0x0000_0000_0000_007F,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0100, 0x0000_0000_0000_0300, 0x0000_0000_0000_0700, 0x0000_0000_0000_0F00, 0x0000_0000_0000_1F00, 0x0000_0000_0000_3F00, 0x0000_0000_0000_7F00,
+ 0x0000_0000_0000_0000, 0x0000_0000_0001_0000, 0x0000_0000_0003_0000, 0x0000_0000_0007_0000, 0x0000_0000_000F_0000, 0x0000_0000_001F_0000, 0x0000_0000_003F_0000, 0x0000_0000_007F_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0100_0000, 0x0000_0000_0300_0000, 0x0000_0000_0700_0000, 0x0000_0000_0F00_0000, 0x0000_0000_1F00_0000, 0x0000_0000_3F00_0000, 0x0000_0000_7F00_0000,
+ 0x0000_0000_0000_0000, 0x0000_0001_0000_0000, 0x0000_0003_0000_0000, 0x0000_0007_0000_0000, 0x0000_000F_0000_0000, 0x0000_001F_0000_0000, 0x0000_003F_0000_0000, 0x0000_007F_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0100_0000_0000, 0x0000_0300_0000_0000, 0x0000_0700_0000_0000, 0x0000_0F00_0000_0000, 0x0000_1F00_0000_0000, 0x0000_3F00_0000_0000, 0x0000_7F00_0000_0000,
+ 0x0000_0000_0000_0000, 0x0001_0000_0000_0000, 0x0003_0000_0000_0000, 0x0007_0000_0000_0000, 0x000F_0000_0000_0000, 0x001F_0000_0000_0000, 0x003F_0000_0000_0000, 0x007F_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0100_0000_0000_0000, 0x0300_0000_0000_0000, 0x0700_0000_0000_0000, 0x0F00_0000_0000_0000, 0x1F00_0000_0000_0000, 0x3F00_0000_0000_0000, 0x7F00_0000_0000_0000,
+)
+U_BORDER_MASK = (
+ 0x0101_0101_0101_0100, 0x0202_0202_0202_0200, 0x0404_0404_0404_0400, 0x0808_0808_0808_0800, 0x1010_1010_1010_1000, 0x2020_2020_2020_2000, 0x4040_4040_4040_4000, 0x8080_8080_8080_8000,
+ 0x0101_0101_0101_0000, 0x0202_0202_0202_0000, 0x0404_0404_0404_0000, 0x0808_0808_0808_0000, 0x1010_1010_1010_0000, 0x2020_2020_2020_0000, 0x4040_4040_4040_0000, 0x8080_8080_8080_0000,
+ 0x0101_0101_0100_0000, 0x0202_0202_0200_0000, 0x0404_0404_0400_0000, 0x0808_0808_0800_0000, 0x1010_1010_1000_0000, 0x2020_2020_2000_0000, 0x4040_4040_4000_0000, 0x8080_8080_8000_0000,
+ 0x0101_0101_0000_0000, 0x0202_0202_0000_0000, 0x0404_0404_0000_0000, 0x0808_0808_0000_0000, 0x1010_1010_0000_0000, 0x2020_2020_0000_0000, 0x4040_4040_0000_0000, 0x8080_8080_0000_0000,
+ 0x0101_0100_0000_0000, 0x0202_0200_0000_0000, 0x0404_0400_0000_0000, 0x0808_0800_0000_0000, 0x1010_1000_0000_0000, 0x2020_2000_0000_0000, 0x4040_4000_0000_0000, 0x8080_8000_0000_0000,
+ 0x0101_0000_0000_0000, 0x0202_0000_0000_0000, 0x0404_0000_0000_0000, 0x0808_0000_0000_0000, 0x1010_0000_0000_0000, 0x2020_0000_0000_0000, 0x4040_0000_0000_0000, 0x8080_0000_0000_0000,
+ 0x0100_0000_0000_0000, 0x0200_0000_0000_0000, 0x0400_0000_0000_0000, 0x0800_0000_0000_0000, 0x1000_0000_0000_0000, 0x2000_0000_0000_0000, 0x4000_0000_0000_0000, 0x8000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+)
+D_BORDER_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0001, 0x0000_0000_0000_0002, 0x0000_0000_0000_0004, 0x0000_0000_0000_0008, 0x0000_0000_0000_0010, 0x0000_0000_0000_0020, 0x0000_0000_0000_0040, 0x0000_0000_0000_0080,
+ 0x0000_0000_0000_0101, 0x0000_0000_0000_0202, 0x0000_0000_0000_0404, 0x0000_0000_0000_0808, 0x0000_0000_0000_1010, 0x0000_0000_0000_2020, 0x0000_0000_0000_4040, 0x0000_0000_0000_8080,
+ 0x0000_0000_0001_0101, 0x0000_0000_0002_0202, 0x0000_0000_0004_0404, 0x0000_0000_0008_0808, 0x0000_0000_0010_1010, 0x0000_0000_0020_2020, 0x0000_0000_0040_4040, 0x0000_0000_0080_8080,
+ 0x0000_0000_0101_0101, 0x0000_0000_0202_0202, 0x0000_0000_0404_0404, 0x0000_0000_0808_0808, 0x0000_0000_1010_1010, 0x0000_0000_2020_2020, 0x0000_0000_4040_4040, 0x0000_0000_8080_8080,
+ 0x0000_0001_0101_0101, 0x0000_0002_0202_0202, 0x0000_0004_0404_0404, 0x0000_0008_0808_0808, 0x0000_0010_1010_1010, 0x0000_0020_2020_2020, 0x0000_0040_4040_4040, 0x0000_0080_8080_8080,
+ 0x0000_0101_0101_0101, 0x0000_0202_0202_0202, 0x0000_0404_0404_0404, 0x0000_0808_0808_0808, 0x0000_1010_1010_1010, 0x0000_2020_2020_2020, 0x0000_4040_4040_4040, 0x0000_8080_8080_8080,
+ 0x0001_0101_0101_0101, 0x0002_0202_0202_0202, 0x0004_0404_0404_0404, 0x0008_0808_0808_0808, 0x0010_1010_1010_1010, 0x0020_2020_2020_2020, 0x0040_4040_4040_4040, 0x0080_8080_8080_8080,
+)
+LU_BORDER_MASK = (
+ 0x8040_2010_0804_0200, 0x0080_4020_1008_0400, 0x0000_8040_2010_0800, 0x0000_0080_4020_1000, 0x0000_0000_8040_2000, 0x0000_0000_0080_4000, 0x0000_0000_0000_8000, 0x0000_0000_0000_0000,
+ 0x4020_1008_0402_0000, 0x8040_2010_0804_0000, 0x0080_4020_1008_0000, 0x0000_8040_2010_0000, 0x0000_0080_4020_0000, 0x0000_0000_8040_0000, 0x0000_0000_0080_0000, 0x0000_0000_0000_0000,
+ 0x2010_0804_0200_0000, 0x4020_1008_0400_0000, 0x8040_2010_0800_0000, 0x0080_4020_1000_0000, 0x0000_8040_2000_0000, 0x0000_0080_4000_0000, 0x0000_0000_8000_0000, 0x0000_0000_0000_0000,
+ 0x1008_0402_0000_0000, 0x2010_0804_0000_0000, 0x4020_1008_0000_0000, 0x8040_2010_0000_0000, 0x0080_4020_0000_0000, 0x0000_8040_0000_0000, 0x0000_0080_0000_0000, 0x0000_0000_0000_0000,
+ 0x0804_0200_0000_0000, 0x1008_0400_0000_0000, 0x2010_0800_0000_0000, 0x4020_1000_0000_0000, 0x8040_2000_0000_0000, 0x0080_4000_0000_0000, 0x0000_8000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0402_0000_0000_0000, 0x0804_0000_0000_0000, 0x1008_0000_0000_0000, 0x2010_0000_0000_0000, 0x4020_0000_0000_0000, 0x8040_0000_0000_0000, 0x0080_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0200_0000_0000_0000, 0x0400_0000_0000_0000, 0x0800_0000_0000_0000, 0x1000_0000_0000_0000, 0x2000_0000_0000_0000, 0x4000_0000_0000_0000, 0x8000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+)
+LD_BORDER_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0002, 0x0000_0000_0000_0004, 0x0000_0000_0000_0008, 0x0000_0000_0000_0010, 0x0000_0000_0000_0020, 0x0000_0000_0000_0040, 0x0000_0000_0000_0080, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0204, 0x0000_0000_0000_0408, 0x0000_0000_0000_0810, 0x0000_0000_0000_1020, 0x0000_0000_0000_2040, 0x0000_0000_0000_4080, 0x0000_0000_0000_8000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0002_0408, 0x0000_0000_0004_0810, 0x0000_0000_0008_1020, 0x0000_0000_0010_2040, 0x0000_0000_0020_4080, 0x0000_0000_0040_8000, 0x0000_0000_0080_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0204_0810, 0x0000_0000_0408_1020, 0x0000_0000_0810_2040, 0x0000_0000_1020_4080, 0x0000_0000_2040_8000, 0x0000_0000_4080_0000, 0x0000_0000_8000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0002_0408_1020, 0x0000_0004_0810_2040, 0x0000_0008_1020_4080, 0x0000_0010_2040_8000, 0x0000_0020_4080_0000, 0x0000_0040_8000_0000, 0x0000_0080_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0204_0810_2040, 0x0000_0408_1020_4080, 0x0000_0810_2040_8000, 0x0000_1020_4080_0000, 0x0000_2040_8000_0000, 0x0000_4080_0000_0000, 0x0000_8000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0002_0408_1020_4080, 0x0004_0810_2040_8000, 0x0008_1020_4080_0000, 0x0010_2040_8000_0000, 0x0020_4080_0000_0000, 0x0040_8000_0000_0000, 0x0080_0000_0000_0000, 0x0000_0000_0000_0000,
+)
+RU_BORDER_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0100, 0x0000_0000_0001_0200, 0x0000_0000_0102_0400, 0x0000_0001_0204_0800, 0x0000_0102_0408_1000, 0x0001_0204_0810_2000, 0x0102_0408_1020_4000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0001_0000, 0x0000_0000_0102_0000, 0x0000_0001_0204_0000, 0x0000_0102_0408_0000, 0x0001_0204_0810_0000, 0x0102_0408_1020_0000, 0x0204_0810_2040_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0100_0000, 0x0000_0001_0200_0000, 0x0000_0102_0400_0000, 0x0001_0204_0800_0000, 0x0102_0408_1000_0000, 0x0204_0810_2000_0000, 0x0408_1020_4000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0001_0000_0000, 0x0000_0102_0000_0000, 0x0001_0204_0000_0000, 0x0102_0408_0000_0000, 0x0204_0810_0000_0000, 0x0408_1020_0000_0000, 0x0810_2040_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0100_0000_0000, 0x0001_0200_0000_0000, 0x0102_0400_0000_0000, 0x0204_0800_0000_0000, 0x0408_1000_0000_0000, 0x0810_2000_0000_0000, 0x1020_4000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0001_0000_0000_0000, 0x0102_0000_0000_0000, 0x0204_0000_0000_0000, 0x0408_0000_0000_0000, 0x0810_0000_0000_0000, 0x1020_0000_0000_0000, 0x2040_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0100_0000_0000_0000, 0x0200_0000_0000_0000, 0x0400_0000_0000_0000, 0x0800_0000_0000_0000, 0x1000_0000_0000_0000, 0x2000_0000_0000_0000, 0x4000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+)
+RD_BORDER_MASK = (
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000, 0x0000_0000_0000_0000,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0001, 0x0000_0000_0000_0002, 0x0000_0000_0000_0004, 0x0000_0000_0000_0008, 0x0000_0000_0000_0010, 0x0000_0000_0000_0020, 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_0000, 0x0000_0000_0000_0100, 0x0000_0000_0000_0201, 0x0000_0000_0000_0402, 0x0000_0000_0000_0804, 0x0000_0000_0000_1008, 0x0000_0000_0000_2010, 0x0000_0000_0000_4020,
+ 0x0000_0000_0000_0000, 0x0000_0000_0001_0000, 0x0000_0000_0002_0100, 0x0000_0000_0004_0201, 0x0000_0000_0008_0402, 0x0000_0000_0010_0804, 0x0000_0000_0020_1008, 0x0000_0000_0040_2010,
+ 0x0000_0000_0000_0000, 0x0000_0000_0100_0000, 0x0000_0000_0201_0000, 0x0000_0000_0402_0100, 0x0000_0000_0804_0201, 0x0000_0000_1008_0402, 0x0000_0000_2010_0804, 0x0000_0000_4020_1008,
+ 0x0000_0000_0000_0000, 0x0000_0001_0000_0000, 0x0000_0002_0100_0000, 0x0000_0004_0201_0000, 0x0000_0008_0402_0100, 0x0000_0010_0804_0201, 0x0000_0020_1008_0402, 0x0000_0040_2010_0804,
+ 0x0000_0000_0000_0000, 0x0000_0100_0000_0000, 0x0000_0201_0000_0000, 0x0000_0402_0100_0000, 0x0000_0804_0201_0000, 0x0000_1008_0402_0100, 0x0000_2010_0804_0201, 0x0000_4020_1008_0402,
+ 0x0000_0000_0000_0000, 0x0001_0000_0000_0000, 0x0002_0100_0000_0000, 0x0004_0201_0000_0000, 0x0008_0402_0100_0000, 0x0010_0804_0201_0000, 0x0020_1008_0402_0100, 0x0040_2010_0804_0201,
+)
+L_MASK = (
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_00FE, 0x0000_0000_0000_0002: 0x0000_0000_0000_0002, 0x0000_0000_0000_0004: 0x0000_0000_0000_0006, 0x0000_0000_0000_0006: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0008: 0x0000_0000_0000_000E, 0x0000_0000_0000_000A: 0x0000_0000_0000_0002, 0x0000_0000_0000_000C: 0x0000_0000_0000_0006, 0x0000_0000_0000_000E: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0010: 0x0000_0000_0000_001E, 0x0000_0000_0000_0012: 0x0000_0000_0000_0002, 0x0000_0000_0000_0014: 0x0000_0000_0000_0006, 0x0000_0000_0000_0016: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0018: 0x0000_0000_0000_000E, 0x0000_0000_0000_001A: 0x0000_0000_0000_0002, 0x0000_0000_0000_001C: 0x0000_0000_0000_0006, 0x0000_0000_0000_001E: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0020: 0x0000_0000_0000_003E, 0x0000_0000_0000_0022: 0x0000_0000_0000_0002, 0x0000_0000_0000_0024: 0x0000_0000_0000_0006, 0x0000_0000_0000_0026: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0028: 0x0000_0000_0000_000E, 0x0000_0000_0000_002A: 0x0000_0000_0000_0002, 0x0000_0000_0000_002C: 0x0000_0000_0000_0006, 0x0000_0000_0000_002E: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0030: 0x0000_0000_0000_001E, 0x0000_0000_0000_0032: 0x0000_0000_0000_0002, 0x0000_0000_0000_0034: 0x0000_0000_0000_0006, 0x0000_0000_0000_0036: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0038: 0x0000_0000_0000_000E, 0x0000_0000_0000_003A: 0x0000_0000_0000_0002, 0x0000_0000_0000_003C: 0x0000_0000_0000_0006, 0x0000_0000_0000_003E: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0040: 0x0000_0000_0000_007E, 0x0000_0000_0000_0042: 0x0000_0000_0000_0002, 0x0000_0000_0000_0044: 0x0000_0000_0000_0006, 0x0000_0000_0000_0046: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0048: 0x0000_0000_0000_000E, 0x0000_0000_0000_004A: 0x0000_0000_0000_0002, 0x0000_0000_0000_004C: 0x0000_0000_0000_0006, 0x0000_0000_0000_004E: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0050: 0x0000_0000_0000_001E, 0x0000_0000_0000_0052: 0x0000_0000_0000_0002, 0x0000_0000_0000_0054: 0x0000_0000_0000_0006, 0x0000_0000_0000_0056: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0058: 0x0000_0000_0000_000E, 0x0000_0000_0000_005A: 0x0000_0000_0000_0002, 0x0000_0000_0000_005C: 0x0000_0000_0000_0006, 0x0000_0000_0000_005E: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0060: 0x0000_0000_0000_003E, 0x0000_0000_0000_0062: 0x0000_0000_0000_0002, 0x0000_0000_0000_0064: 0x0000_0000_0000_0006, 0x0000_0000_0000_0066: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0068: 0x0000_0000_0000_000E, 0x0000_0000_0000_006A: 0x0000_0000_0000_0002, 0x0000_0000_0000_006C: 0x0000_0000_0000_0006, 0x0000_0000_0000_006E: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0070: 0x0000_0000_0000_001E, 0x0000_0000_0000_0072: 0x0000_0000_0000_0002, 0x0000_0000_0000_0074: 0x0000_0000_0000_0006, 0x0000_0000_0000_0076: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0078: 0x0000_0000_0000_000E, 0x0000_0000_0000_007A: 0x0000_0000_0000_0002, 0x0000_0000_0000_007C: 0x0000_0000_0000_0006, 0x0000_0000_0000_007E: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0080: 0x0000_0000_0000_00FE, 0x0000_0000_0000_0082: 0x0000_0000_0000_0002, 0x0000_0000_0000_0084: 0x0000_0000_0000_0006, 0x0000_0000_0000_0086: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0088: 0x0000_0000_0000_000E, 0x0000_0000_0000_008A: 0x0000_0000_0000_0002, 0x0000_0000_0000_008C: 0x0000_0000_0000_0006, 0x0000_0000_0000_008E: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0090: 0x0000_0000_0000_001E, 0x0000_0000_0000_0092: 0x0000_0000_0000_0002, 0x0000_0000_0000_0094: 0x0000_0000_0000_0006, 0x0000_0000_0000_0096: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_0098: 0x0000_0000_0000_000E, 0x0000_0000_0000_009A: 0x0000_0000_0000_0002, 0x0000_0000_0000_009C: 0x0000_0000_0000_0006, 0x0000_0000_0000_009E: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_00A0: 0x0000_0000_0000_003E, 0x0000_0000_0000_00A2: 0x0000_0000_0000_0002, 0x0000_0000_0000_00A4: 0x0000_0000_0000_0006, 0x0000_0000_0000_00A6: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_00A8: 0x0000_0000_0000_000E, 0x0000_0000_0000_00AA: 0x0000_0000_0000_0002, 0x0000_0000_0000_00AC: 0x0000_0000_0000_0006, 0x0000_0000_0000_00AE: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_00B0: 0x0000_0000_0000_001E, 0x0000_0000_0000_00B2: 0x0000_0000_0000_0002, 0x0000_0000_0000_00B4: 0x0000_0000_0000_0006, 0x0000_0000_0000_00B6: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_00B8: 0x0000_0000_0000_000E, 0x0000_0000_0000_00BA: 0x0000_0000_0000_0002, 0x0000_0000_0000_00BC: 0x0000_0000_0000_0006, 0x0000_0000_0000_00BE: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_00C0: 0x0000_0000_0000_007E, 0x0000_0000_0000_00C2: 0x0000_0000_0000_0002, 0x0000_0000_0000_00C4: 0x0000_0000_0000_0006, 0x0000_0000_0000_00C6: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_00C8: 0x0000_0000_0000_000E, 0x0000_0000_0000_00CA: 0x0000_0000_0000_0002, 0x0000_0000_0000_00CC: 0x0000_0000_0000_0006, 0x0000_0000_0000_00CE: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_00D0: 0x0000_0000_0000_001E, 0x0000_0000_0000_00D2: 0x0000_0000_0000_0002, 0x0000_0000_0000_00D4: 0x0000_0000_0000_0006, 0x0000_0000_0000_00D6: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_00D8: 0x0000_0000_0000_000E, 0x0000_0000_0000_00DA: 0x0000_0000_0000_0002, 0x0000_0000_0000_00DC: 0x0000_0000_0000_0006, 0x0000_0000_0000_00DE: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_00E0: 0x0000_0000_0000_003E, 0x0000_0000_0000_00E2: 0x0000_0000_0000_0002, 0x0000_0000_0000_00E4: 0x0000_0000_0000_0006, 0x0000_0000_0000_00E6: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_00E8: 0x0000_0000_0000_000E, 0x0000_0000_0000_00EA: 0x0000_0000_0000_0002, 0x0000_0000_0000_00EC: 0x0000_0000_0000_0006, 0x0000_0000_0000_00EE: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_00F0: 0x0000_0000_0000_001E, 0x0000_0000_0000_00F2: 0x0000_0000_0000_0002, 0x0000_0000_0000_00F4: 0x0000_0000_0000_0006, 0x0000_0000_0000_00F6: 0x0000_0000_0000_0002,
+ 0x0000_0000_0000_00F8: 0x0000_0000_0000_000E, 0x0000_0000_0000_00FA: 0x0000_0000_0000_0002, 0x0000_0000_0000_00FC: 0x0000_0000_0000_0006, 0x0000_0000_0000_00FE: 0x0000_0000_0000_0002,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_00FC, 0x0000_0000_0000_0004: 0x0000_0000_0000_0004, 0x0000_0000_0000_0008: 0x0000_0000_0000_000C, 0x0000_0000_0000_000C: 0x0000_0000_0000_0004,
+ 0x0000_0000_0000_0010: 0x0000_0000_0000_001C, 0x0000_0000_0000_0014: 0x0000_0000_0000_0004, 0x0000_0000_0000_0018: 0x0000_0000_0000_000C, 0x0000_0000_0000_001C: 0x0000_0000_0000_0004,
+ 0x0000_0000_0000_0020: 0x0000_0000_0000_003C, 0x0000_0000_0000_0024: 0x0000_0000_0000_0004, 0x0000_0000_0000_0028: 0x0000_0000_0000_000C, 0x0000_0000_0000_002C: 0x0000_0000_0000_0004,
+ 0x0000_0000_0000_0030: 0x0000_0000_0000_001C, 0x0000_0000_0000_0034: 0x0000_0000_0000_0004, 0x0000_0000_0000_0038: 0x0000_0000_0000_000C, 0x0000_0000_0000_003C: 0x0000_0000_0000_0004,
+ 0x0000_0000_0000_0040: 0x0000_0000_0000_007C, 0x0000_0000_0000_0044: 0x0000_0000_0000_0004, 0x0000_0000_0000_0048: 0x0000_0000_0000_000C, 0x0000_0000_0000_004C: 0x0000_0000_0000_0004,
+ 0x0000_0000_0000_0050: 0x0000_0000_0000_001C, 0x0000_0000_0000_0054: 0x0000_0000_0000_0004, 0x0000_0000_0000_0058: 0x0000_0000_0000_000C, 0x0000_0000_0000_005C: 0x0000_0000_0000_0004,
+ 0x0000_0000_0000_0060: 0x0000_0000_0000_003C, 0x0000_0000_0000_0064: 0x0000_0000_0000_0004, 0x0000_0000_0000_0068: 0x0000_0000_0000_000C, 0x0000_0000_0000_006C: 0x0000_0000_0000_0004,
+ 0x0000_0000_0000_0070: 0x0000_0000_0000_001C, 0x0000_0000_0000_0074: 0x0000_0000_0000_0004, 0x0000_0000_0000_0078: 0x0000_0000_0000_000C, 0x0000_0000_0000_007C: 0x0000_0000_0000_0004,
+ 0x0000_0000_0000_0080: 0x0000_0000_0000_00FC, 0x0000_0000_0000_0084: 0x0000_0000_0000_0004, 0x0000_0000_0000_0088: 0x0000_0000_0000_000C, 0x0000_0000_0000_008C: 0x0000_0000_0000_0004,
+ 0x0000_0000_0000_0090: 0x0000_0000_0000_001C, 0x0000_0000_0000_0094: 0x0000_0000_0000_0004, 0x0000_0000_0000_0098: 0x0000_0000_0000_000C, 0x0000_0000_0000_009C: 0x0000_0000_0000_0004,
+ 0x0000_0000_0000_00A0: 0x0000_0000_0000_003C, 0x0000_0000_0000_00A4: 0x0000_0000_0000_0004, 0x0000_0000_0000_00A8: 0x0000_0000_0000_000C, 0x0000_0000_0000_00AC: 0x0000_0000_0000_0004,
+ 0x0000_0000_0000_00B0: 0x0000_0000_0000_001C, 0x0000_0000_0000_00B4: 0x0000_0000_0000_0004, 0x0000_0000_0000_00B8: 0x0000_0000_0000_000C, 0x0000_0000_0000_00BC: 0x0000_0000_0000_0004,
+ 0x0000_0000_0000_00C0: 0x0000_0000_0000_007C, 0x0000_0000_0000_00C4: 0x0000_0000_0000_0004, 0x0000_0000_0000_00C8: 0x0000_0000_0000_000C, 0x0000_0000_0000_00CC: 0x0000_0000_0000_0004,
+ 0x0000_0000_0000_00D0: 0x0000_0000_0000_001C, 0x0000_0000_0000_00D4: 0x0000_0000_0000_0004, 0x0000_0000_0000_00D8: 0x0000_0000_0000_000C, 0x0000_0000_0000_00DC: 0x0000_0000_0000_0004,
+ 0x0000_0000_0000_00E0: 0x0000_0000_0000_003C, 0x0000_0000_0000_00E4: 0x0000_0000_0000_0004, 0x0000_0000_0000_00E8: 0x0000_0000_0000_000C, 0x0000_0000_0000_00EC: 0x0000_0000_0000_0004,
+ 0x0000_0000_0000_00F0: 0x0000_0000_0000_001C, 0x0000_0000_0000_00F4: 0x0000_0000_0000_0004, 0x0000_0000_0000_00F8: 0x0000_0000_0000_000C, 0x0000_0000_0000_00FC: 0x0000_0000_0000_0004,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_00F8, 0x0000_0000_0000_0008: 0x0000_0000_0000_0008, 0x0000_0000_0000_0010: 0x0000_0000_0000_0018, 0x0000_0000_0000_0018: 0x0000_0000_0000_0008,
+ 0x0000_0000_0000_0020: 0x0000_0000_0000_0038, 0x0000_0000_0000_0028: 0x0000_0000_0000_0008, 0x0000_0000_0000_0030: 0x0000_0000_0000_0018, 0x0000_0000_0000_0038: 0x0000_0000_0000_0008,
+ 0x0000_0000_0000_0040: 0x0000_0000_0000_0078, 0x0000_0000_0000_0048: 0x0000_0000_0000_0008, 0x0000_0000_0000_0050: 0x0000_0000_0000_0018, 0x0000_0000_0000_0058: 0x0000_0000_0000_0008,
+ 0x0000_0000_0000_0060: 0x0000_0000_0000_0038, 0x0000_0000_0000_0068: 0x0000_0000_0000_0008, 0x0000_0000_0000_0070: 0x0000_0000_0000_0018, 0x0000_0000_0000_0078: 0x0000_0000_0000_0008,
+ 0x0000_0000_0000_0080: 0x0000_0000_0000_00F8, 0x0000_0000_0000_0088: 0x0000_0000_0000_0008, 0x0000_0000_0000_0090: 0x0000_0000_0000_0018, 0x0000_0000_0000_0098: 0x0000_0000_0000_0008,
+ 0x0000_0000_0000_00A0: 0x0000_0000_0000_0038, 0x0000_0000_0000_00A8: 0x0000_0000_0000_0008, 0x0000_0000_0000_00B0: 0x0000_0000_0000_0018, 0x0000_0000_0000_00B8: 0x0000_0000_0000_0008,
+ 0x0000_0000_0000_00C0: 0x0000_0000_0000_0078, 0x0000_0000_0000_00C8: 0x0000_0000_0000_0008, 0x0000_0000_0000_00D0: 0x0000_0000_0000_0018, 0x0000_0000_0000_00D8: 0x0000_0000_0000_0008,
+ 0x0000_0000_0000_00E0: 0x0000_0000_0000_0038, 0x0000_0000_0000_00E8: 0x0000_0000_0000_0008, 0x0000_0000_0000_00F0: 0x0000_0000_0000_0018, 0x0000_0000_0000_00F8: 0x0000_0000_0000_0008,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_00F0, 0x0000_0000_0000_0010: 0x0000_0000_0000_0010, 0x0000_0000_0000_0020: 0x0000_0000_0000_0030, 0x0000_0000_0000_0030: 0x0000_0000_0000_0010,
+ 0x0000_0000_0000_0040: 0x0000_0000_0000_0070, 0x0000_0000_0000_0050: 0x0000_0000_0000_0010, 0x0000_0000_0000_0060: 0x0000_0000_0000_0030, 0x0000_0000_0000_0070: 0x0000_0000_0000_0010,
+ 0x0000_0000_0000_0080: 0x0000_0000_0000_00F0, 0x0000_0000_0000_0090: 0x0000_0000_0000_0010, 0x0000_0000_0000_00A0: 0x0000_0000_0000_0030, 0x0000_0000_0000_00B0: 0x0000_0000_0000_0010,
+ 0x0000_0000_0000_00C0: 0x0000_0000_0000_0070, 0x0000_0000_0000_00D0: 0x0000_0000_0000_0010, 0x0000_0000_0000_00E0: 0x0000_0000_0000_0030, 0x0000_0000_0000_00F0: 0x0000_0000_0000_0010,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_00E0, 0x0000_0000_0000_0020: 0x0000_0000_0000_0020, 0x0000_0000_0000_0040: 0x0000_0000_0000_0060, 0x0000_0000_0000_0060: 0x0000_0000_0000_0020,
+ 0x0000_0000_0000_0080: 0x0000_0000_0000_00E0, 0x0000_0000_0000_00A0: 0x0000_0000_0000_0020, 0x0000_0000_0000_00C0: 0x0000_0000_0000_0060, 0x0000_0000_0000_00E0: 0x0000_0000_0000_0020,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_00C0, 0x0000_0000_0000_0040: 0x0000_0000_0000_0040, 0x0000_0000_0000_0080: 0x0000_0000_0000_00C0, 0x0000_0000_0000_00C0: 0x0000_0000_0000_0040,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0080, 0x0000_0000_0000_0080: 0x0000_0000_0000_0080,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_FE00, 0x0000_0000_0000_0200: 0x0000_0000_0000_0200, 0x0000_0000_0000_0400: 0x0000_0000_0000_0600, 0x0000_0000_0000_0600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_0800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_0A00: 0x0000_0000_0000_0200, 0x0000_0000_0000_0C00: 0x0000_0000_0000_0600, 0x0000_0000_0000_0E00: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_1000: 0x0000_0000_0000_1E00, 0x0000_0000_0000_1200: 0x0000_0000_0000_0200, 0x0000_0000_0000_1400: 0x0000_0000_0000_0600, 0x0000_0000_0000_1600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_1800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_1A00: 0x0000_0000_0000_0200, 0x0000_0000_0000_1C00: 0x0000_0000_0000_0600, 0x0000_0000_0000_1E00: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_2000: 0x0000_0000_0000_3E00, 0x0000_0000_0000_2200: 0x0000_0000_0000_0200, 0x0000_0000_0000_2400: 0x0000_0000_0000_0600, 0x0000_0000_0000_2600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_2800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_2A00: 0x0000_0000_0000_0200, 0x0000_0000_0000_2C00: 0x0000_0000_0000_0600, 0x0000_0000_0000_2E00: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_3000: 0x0000_0000_0000_1E00, 0x0000_0000_0000_3200: 0x0000_0000_0000_0200, 0x0000_0000_0000_3400: 0x0000_0000_0000_0600, 0x0000_0000_0000_3600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_3800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_3A00: 0x0000_0000_0000_0200, 0x0000_0000_0000_3C00: 0x0000_0000_0000_0600, 0x0000_0000_0000_3E00: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_4000: 0x0000_0000_0000_7E00, 0x0000_0000_0000_4200: 0x0000_0000_0000_0200, 0x0000_0000_0000_4400: 0x0000_0000_0000_0600, 0x0000_0000_0000_4600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_4800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_4A00: 0x0000_0000_0000_0200, 0x0000_0000_0000_4C00: 0x0000_0000_0000_0600, 0x0000_0000_0000_4E00: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_5000: 0x0000_0000_0000_1E00, 0x0000_0000_0000_5200: 0x0000_0000_0000_0200, 0x0000_0000_0000_5400: 0x0000_0000_0000_0600, 0x0000_0000_0000_5600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_5800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_5A00: 0x0000_0000_0000_0200, 0x0000_0000_0000_5C00: 0x0000_0000_0000_0600, 0x0000_0000_0000_5E00: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_6000: 0x0000_0000_0000_3E00, 0x0000_0000_0000_6200: 0x0000_0000_0000_0200, 0x0000_0000_0000_6400: 0x0000_0000_0000_0600, 0x0000_0000_0000_6600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_6800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_6A00: 0x0000_0000_0000_0200, 0x0000_0000_0000_6C00: 0x0000_0000_0000_0600, 0x0000_0000_0000_6E00: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_7000: 0x0000_0000_0000_1E00, 0x0000_0000_0000_7200: 0x0000_0000_0000_0200, 0x0000_0000_0000_7400: 0x0000_0000_0000_0600, 0x0000_0000_0000_7600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_7800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_7A00: 0x0000_0000_0000_0200, 0x0000_0000_0000_7C00: 0x0000_0000_0000_0600, 0x0000_0000_0000_7E00: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_8000: 0x0000_0000_0000_FE00, 0x0000_0000_0000_8200: 0x0000_0000_0000_0200, 0x0000_0000_0000_8400: 0x0000_0000_0000_0600, 0x0000_0000_0000_8600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_8800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_8A00: 0x0000_0000_0000_0200, 0x0000_0000_0000_8C00: 0x0000_0000_0000_0600, 0x0000_0000_0000_8E00: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_9000: 0x0000_0000_0000_1E00, 0x0000_0000_0000_9200: 0x0000_0000_0000_0200, 0x0000_0000_0000_9400: 0x0000_0000_0000_0600, 0x0000_0000_0000_9600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_9800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_9A00: 0x0000_0000_0000_0200, 0x0000_0000_0000_9C00: 0x0000_0000_0000_0600, 0x0000_0000_0000_9E00: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_A000: 0x0000_0000_0000_3E00, 0x0000_0000_0000_A200: 0x0000_0000_0000_0200, 0x0000_0000_0000_A400: 0x0000_0000_0000_0600, 0x0000_0000_0000_A600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_A800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_AA00: 0x0000_0000_0000_0200, 0x0000_0000_0000_AC00: 0x0000_0000_0000_0600, 0x0000_0000_0000_AE00: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_B000: 0x0000_0000_0000_1E00, 0x0000_0000_0000_B200: 0x0000_0000_0000_0200, 0x0000_0000_0000_B400: 0x0000_0000_0000_0600, 0x0000_0000_0000_B600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_B800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_BA00: 0x0000_0000_0000_0200, 0x0000_0000_0000_BC00: 0x0000_0000_0000_0600, 0x0000_0000_0000_BE00: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_C000: 0x0000_0000_0000_7E00, 0x0000_0000_0000_C200: 0x0000_0000_0000_0200, 0x0000_0000_0000_C400: 0x0000_0000_0000_0600, 0x0000_0000_0000_C600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_C800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_CA00: 0x0000_0000_0000_0200, 0x0000_0000_0000_CC00: 0x0000_0000_0000_0600, 0x0000_0000_0000_CE00: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_D000: 0x0000_0000_0000_1E00, 0x0000_0000_0000_D200: 0x0000_0000_0000_0200, 0x0000_0000_0000_D400: 0x0000_0000_0000_0600, 0x0000_0000_0000_D600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_D800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_DA00: 0x0000_0000_0000_0200, 0x0000_0000_0000_DC00: 0x0000_0000_0000_0600, 0x0000_0000_0000_DE00: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_E000: 0x0000_0000_0000_3E00, 0x0000_0000_0000_E200: 0x0000_0000_0000_0200, 0x0000_0000_0000_E400: 0x0000_0000_0000_0600, 0x0000_0000_0000_E600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_E800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_EA00: 0x0000_0000_0000_0200, 0x0000_0000_0000_EC00: 0x0000_0000_0000_0600, 0x0000_0000_0000_EE00: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_F000: 0x0000_0000_0000_1E00, 0x0000_0000_0000_F200: 0x0000_0000_0000_0200, 0x0000_0000_0000_F400: 0x0000_0000_0000_0600, 0x0000_0000_0000_F600: 0x0000_0000_0000_0200,
+ 0x0000_0000_0000_F800: 0x0000_0000_0000_0E00, 0x0000_0000_0000_FA00: 0x0000_0000_0000_0200, 0x0000_0000_0000_FC00: 0x0000_0000_0000_0600, 0x0000_0000_0000_FE00: 0x0000_0000_0000_0200,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_FC00, 0x0000_0000_0000_0400: 0x0000_0000_0000_0400, 0x0000_0000_0000_0800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_0C00: 0x0000_0000_0000_0400,
+ 0x0000_0000_0000_1000: 0x0000_0000_0000_1C00, 0x0000_0000_0000_1400: 0x0000_0000_0000_0400, 0x0000_0000_0000_1800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_1C00: 0x0000_0000_0000_0400,
+ 0x0000_0000_0000_2000: 0x0000_0000_0000_3C00, 0x0000_0000_0000_2400: 0x0000_0000_0000_0400, 0x0000_0000_0000_2800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_2C00: 0x0000_0000_0000_0400,
+ 0x0000_0000_0000_3000: 0x0000_0000_0000_1C00, 0x0000_0000_0000_3400: 0x0000_0000_0000_0400, 0x0000_0000_0000_3800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_3C00: 0x0000_0000_0000_0400,
+ 0x0000_0000_0000_4000: 0x0000_0000_0000_7C00, 0x0000_0000_0000_4400: 0x0000_0000_0000_0400, 0x0000_0000_0000_4800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_4C00: 0x0000_0000_0000_0400,
+ 0x0000_0000_0000_5000: 0x0000_0000_0000_1C00, 0x0000_0000_0000_5400: 0x0000_0000_0000_0400, 0x0000_0000_0000_5800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_5C00: 0x0000_0000_0000_0400,
+ 0x0000_0000_0000_6000: 0x0000_0000_0000_3C00, 0x0000_0000_0000_6400: 0x0000_0000_0000_0400, 0x0000_0000_0000_6800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_6C00: 0x0000_0000_0000_0400,
+ 0x0000_0000_0000_7000: 0x0000_0000_0000_1C00, 0x0000_0000_0000_7400: 0x0000_0000_0000_0400, 0x0000_0000_0000_7800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_7C00: 0x0000_0000_0000_0400,
+ 0x0000_0000_0000_8000: 0x0000_0000_0000_FC00, 0x0000_0000_0000_8400: 0x0000_0000_0000_0400, 0x0000_0000_0000_8800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_8C00: 0x0000_0000_0000_0400,
+ 0x0000_0000_0000_9000: 0x0000_0000_0000_1C00, 0x0000_0000_0000_9400: 0x0000_0000_0000_0400, 0x0000_0000_0000_9800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_9C00: 0x0000_0000_0000_0400,
+ 0x0000_0000_0000_A000: 0x0000_0000_0000_3C00, 0x0000_0000_0000_A400: 0x0000_0000_0000_0400, 0x0000_0000_0000_A800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_AC00: 0x0000_0000_0000_0400,
+ 0x0000_0000_0000_B000: 0x0000_0000_0000_1C00, 0x0000_0000_0000_B400: 0x0000_0000_0000_0400, 0x0000_0000_0000_B800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_BC00: 0x0000_0000_0000_0400,
+ 0x0000_0000_0000_C000: 0x0000_0000_0000_7C00, 0x0000_0000_0000_C400: 0x0000_0000_0000_0400, 0x0000_0000_0000_C800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_CC00: 0x0000_0000_0000_0400,
+ 0x0000_0000_0000_D000: 0x0000_0000_0000_1C00, 0x0000_0000_0000_D400: 0x0000_0000_0000_0400, 0x0000_0000_0000_D800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_DC00: 0x0000_0000_0000_0400,
+ 0x0000_0000_0000_E000: 0x0000_0000_0000_3C00, 0x0000_0000_0000_E400: 0x0000_0000_0000_0400, 0x0000_0000_0000_E800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_EC00: 0x0000_0000_0000_0400,
+ 0x0000_0000_0000_F000: 0x0000_0000_0000_1C00, 0x0000_0000_0000_F400: 0x0000_0000_0000_0400, 0x0000_0000_0000_F800: 0x0000_0000_0000_0C00, 0x0000_0000_0000_FC00: 0x0000_0000_0000_0400,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_F800, 0x0000_0000_0000_0800: 0x0000_0000_0000_0800, 0x0000_0000_0000_1000: 0x0000_0000_0000_1800, 0x0000_0000_0000_1800: 0x0000_0000_0000_0800,
+ 0x0000_0000_0000_2000: 0x0000_0000_0000_3800, 0x0000_0000_0000_2800: 0x0000_0000_0000_0800, 0x0000_0000_0000_3000: 0x0000_0000_0000_1800, 0x0000_0000_0000_3800: 0x0000_0000_0000_0800,
+ 0x0000_0000_0000_4000: 0x0000_0000_0000_7800, 0x0000_0000_0000_4800: 0x0000_0000_0000_0800, 0x0000_0000_0000_5000: 0x0000_0000_0000_1800, 0x0000_0000_0000_5800: 0x0000_0000_0000_0800,
+ 0x0000_0000_0000_6000: 0x0000_0000_0000_3800, 0x0000_0000_0000_6800: 0x0000_0000_0000_0800, 0x0000_0000_0000_7000: 0x0000_0000_0000_1800, 0x0000_0000_0000_7800: 0x0000_0000_0000_0800,
+ 0x0000_0000_0000_8000: 0x0000_0000_0000_F800, 0x0000_0000_0000_8800: 0x0000_0000_0000_0800, 0x0000_0000_0000_9000: 0x0000_0000_0000_1800, 0x0000_0000_0000_9800: 0x0000_0000_0000_0800,
+ 0x0000_0000_0000_A000: 0x0000_0000_0000_3800, 0x0000_0000_0000_A800: 0x0000_0000_0000_0800, 0x0000_0000_0000_B000: 0x0000_0000_0000_1800, 0x0000_0000_0000_B800: 0x0000_0000_0000_0800,
+ 0x0000_0000_0000_C000: 0x0000_0000_0000_7800, 0x0000_0000_0000_C800: 0x0000_0000_0000_0800, 0x0000_0000_0000_D000: 0x0000_0000_0000_1800, 0x0000_0000_0000_D800: 0x0000_0000_0000_0800,
+ 0x0000_0000_0000_E000: 0x0000_0000_0000_3800, 0x0000_0000_0000_E800: 0x0000_0000_0000_0800, 0x0000_0000_0000_F000: 0x0000_0000_0000_1800, 0x0000_0000_0000_F800: 0x0000_0000_0000_0800,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_F000, 0x0000_0000_0000_1000: 0x0000_0000_0000_1000, 0x0000_0000_0000_2000: 0x0000_0000_0000_3000, 0x0000_0000_0000_3000: 0x0000_0000_0000_1000,
+ 0x0000_0000_0000_4000: 0x0000_0000_0000_7000, 0x0000_0000_0000_5000: 0x0000_0000_0000_1000, 0x0000_0000_0000_6000: 0x0000_0000_0000_3000, 0x0000_0000_0000_7000: 0x0000_0000_0000_1000,
+ 0x0000_0000_0000_8000: 0x0000_0000_0000_F000, 0x0000_0000_0000_9000: 0x0000_0000_0000_1000, 0x0000_0000_0000_A000: 0x0000_0000_0000_3000, 0x0000_0000_0000_B000: 0x0000_0000_0000_1000,
+ 0x0000_0000_0000_C000: 0x0000_0000_0000_7000, 0x0000_0000_0000_D000: 0x0000_0000_0000_1000, 0x0000_0000_0000_E000: 0x0000_0000_0000_3000, 0x0000_0000_0000_F000: 0x0000_0000_0000_1000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_E000, 0x0000_0000_0000_2000: 0x0000_0000_0000_2000, 0x0000_0000_0000_4000: 0x0000_0000_0000_6000, 0x0000_0000_0000_6000: 0x0000_0000_0000_2000,
+ 0x0000_0000_0000_8000: 0x0000_0000_0000_E000, 0x0000_0000_0000_A000: 0x0000_0000_0000_2000, 0x0000_0000_0000_C000: 0x0000_0000_0000_6000, 0x0000_0000_0000_E000: 0x0000_0000_0000_2000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_C000, 0x0000_0000_0000_4000: 0x0000_0000_0000_4000, 0x0000_0000_0000_8000: 0x0000_0000_0000_C000, 0x0000_0000_0000_C000: 0x0000_0000_0000_4000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_8000, 0x0000_0000_0000_8000: 0x0000_0000_0000_8000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_00FE_0000, 0x0000_0000_0002_0000: 0x0000_0000_0002_0000, 0x0000_0000_0004_0000: 0x0000_0000_0006_0000, 0x0000_0000_0006_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0008_0000: 0x0000_0000_000E_0000, 0x0000_0000_000A_0000: 0x0000_0000_0002_0000, 0x0000_0000_000C_0000: 0x0000_0000_0006_0000, 0x0000_0000_000E_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0010_0000: 0x0000_0000_001E_0000, 0x0000_0000_0012_0000: 0x0000_0000_0002_0000, 0x0000_0000_0014_0000: 0x0000_0000_0006_0000, 0x0000_0000_0016_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0018_0000: 0x0000_0000_000E_0000, 0x0000_0000_001A_0000: 0x0000_0000_0002_0000, 0x0000_0000_001C_0000: 0x0000_0000_0006_0000, 0x0000_0000_001E_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0020_0000: 0x0000_0000_003E_0000, 0x0000_0000_0022_0000: 0x0000_0000_0002_0000, 0x0000_0000_0024_0000: 0x0000_0000_0006_0000, 0x0000_0000_0026_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0028_0000: 0x0000_0000_000E_0000, 0x0000_0000_002A_0000: 0x0000_0000_0002_0000, 0x0000_0000_002C_0000: 0x0000_0000_0006_0000, 0x0000_0000_002E_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0030_0000: 0x0000_0000_001E_0000, 0x0000_0000_0032_0000: 0x0000_0000_0002_0000, 0x0000_0000_0034_0000: 0x0000_0000_0006_0000, 0x0000_0000_0036_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0038_0000: 0x0000_0000_000E_0000, 0x0000_0000_003A_0000: 0x0000_0000_0002_0000, 0x0000_0000_003C_0000: 0x0000_0000_0006_0000, 0x0000_0000_003E_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0040_0000: 0x0000_0000_007E_0000, 0x0000_0000_0042_0000: 0x0000_0000_0002_0000, 0x0000_0000_0044_0000: 0x0000_0000_0006_0000, 0x0000_0000_0046_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0048_0000: 0x0000_0000_000E_0000, 0x0000_0000_004A_0000: 0x0000_0000_0002_0000, 0x0000_0000_004C_0000: 0x0000_0000_0006_0000, 0x0000_0000_004E_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0050_0000: 0x0000_0000_001E_0000, 0x0000_0000_0052_0000: 0x0000_0000_0002_0000, 0x0000_0000_0054_0000: 0x0000_0000_0006_0000, 0x0000_0000_0056_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0058_0000: 0x0000_0000_000E_0000, 0x0000_0000_005A_0000: 0x0000_0000_0002_0000, 0x0000_0000_005C_0000: 0x0000_0000_0006_0000, 0x0000_0000_005E_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0060_0000: 0x0000_0000_003E_0000, 0x0000_0000_0062_0000: 0x0000_0000_0002_0000, 0x0000_0000_0064_0000: 0x0000_0000_0006_0000, 0x0000_0000_0066_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0068_0000: 0x0000_0000_000E_0000, 0x0000_0000_006A_0000: 0x0000_0000_0002_0000, 0x0000_0000_006C_0000: 0x0000_0000_0006_0000, 0x0000_0000_006E_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0070_0000: 0x0000_0000_001E_0000, 0x0000_0000_0072_0000: 0x0000_0000_0002_0000, 0x0000_0000_0074_0000: 0x0000_0000_0006_0000, 0x0000_0000_0076_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0078_0000: 0x0000_0000_000E_0000, 0x0000_0000_007A_0000: 0x0000_0000_0002_0000, 0x0000_0000_007C_0000: 0x0000_0000_0006_0000, 0x0000_0000_007E_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0080_0000: 0x0000_0000_00FE_0000, 0x0000_0000_0082_0000: 0x0000_0000_0002_0000, 0x0000_0000_0084_0000: 0x0000_0000_0006_0000, 0x0000_0000_0086_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0088_0000: 0x0000_0000_000E_0000, 0x0000_0000_008A_0000: 0x0000_0000_0002_0000, 0x0000_0000_008C_0000: 0x0000_0000_0006_0000, 0x0000_0000_008E_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0090_0000: 0x0000_0000_001E_0000, 0x0000_0000_0092_0000: 0x0000_0000_0002_0000, 0x0000_0000_0094_0000: 0x0000_0000_0006_0000, 0x0000_0000_0096_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_0098_0000: 0x0000_0000_000E_0000, 0x0000_0000_009A_0000: 0x0000_0000_0002_0000, 0x0000_0000_009C_0000: 0x0000_0000_0006_0000, 0x0000_0000_009E_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_00A0_0000: 0x0000_0000_003E_0000, 0x0000_0000_00A2_0000: 0x0000_0000_0002_0000, 0x0000_0000_00A4_0000: 0x0000_0000_0006_0000, 0x0000_0000_00A6_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_00A8_0000: 0x0000_0000_000E_0000, 0x0000_0000_00AA_0000: 0x0000_0000_0002_0000, 0x0000_0000_00AC_0000: 0x0000_0000_0006_0000, 0x0000_0000_00AE_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_00B0_0000: 0x0000_0000_001E_0000, 0x0000_0000_00B2_0000: 0x0000_0000_0002_0000, 0x0000_0000_00B4_0000: 0x0000_0000_0006_0000, 0x0000_0000_00B6_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_00B8_0000: 0x0000_0000_000E_0000, 0x0000_0000_00BA_0000: 0x0000_0000_0002_0000, 0x0000_0000_00BC_0000: 0x0000_0000_0006_0000, 0x0000_0000_00BE_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_00C0_0000: 0x0000_0000_007E_0000, 0x0000_0000_00C2_0000: 0x0000_0000_0002_0000, 0x0000_0000_00C4_0000: 0x0000_0000_0006_0000, 0x0000_0000_00C6_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_00C8_0000: 0x0000_0000_000E_0000, 0x0000_0000_00CA_0000: 0x0000_0000_0002_0000, 0x0000_0000_00CC_0000: 0x0000_0000_0006_0000, 0x0000_0000_00CE_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_00D0_0000: 0x0000_0000_001E_0000, 0x0000_0000_00D2_0000: 0x0000_0000_0002_0000, 0x0000_0000_00D4_0000: 0x0000_0000_0006_0000, 0x0000_0000_00D6_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_00D8_0000: 0x0000_0000_000E_0000, 0x0000_0000_00DA_0000: 0x0000_0000_0002_0000, 0x0000_0000_00DC_0000: 0x0000_0000_0006_0000, 0x0000_0000_00DE_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_00E0_0000: 0x0000_0000_003E_0000, 0x0000_0000_00E2_0000: 0x0000_0000_0002_0000, 0x0000_0000_00E4_0000: 0x0000_0000_0006_0000, 0x0000_0000_00E6_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_00E8_0000: 0x0000_0000_000E_0000, 0x0000_0000_00EA_0000: 0x0000_0000_0002_0000, 0x0000_0000_00EC_0000: 0x0000_0000_0006_0000, 0x0000_0000_00EE_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_00F0_0000: 0x0000_0000_001E_0000, 0x0000_0000_00F2_0000: 0x0000_0000_0002_0000, 0x0000_0000_00F4_0000: 0x0000_0000_0006_0000, 0x0000_0000_00F6_0000: 0x0000_0000_0002_0000,
+ 0x0000_0000_00F8_0000: 0x0000_0000_000E_0000, 0x0000_0000_00FA_0000: 0x0000_0000_0002_0000, 0x0000_0000_00FC_0000: 0x0000_0000_0006_0000, 0x0000_0000_00FE_0000: 0x0000_0000_0002_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_00FC_0000, 0x0000_0000_0004_0000: 0x0000_0000_0004_0000, 0x0000_0000_0008_0000: 0x0000_0000_000C_0000, 0x0000_0000_000C_0000: 0x0000_0000_0004_0000,
+ 0x0000_0000_0010_0000: 0x0000_0000_001C_0000, 0x0000_0000_0014_0000: 0x0000_0000_0004_0000, 0x0000_0000_0018_0000: 0x0000_0000_000C_0000, 0x0000_0000_001C_0000: 0x0000_0000_0004_0000,
+ 0x0000_0000_0020_0000: 0x0000_0000_003C_0000, 0x0000_0000_0024_0000: 0x0000_0000_0004_0000, 0x0000_0000_0028_0000: 0x0000_0000_000C_0000, 0x0000_0000_002C_0000: 0x0000_0000_0004_0000,
+ 0x0000_0000_0030_0000: 0x0000_0000_001C_0000, 0x0000_0000_0034_0000: 0x0000_0000_0004_0000, 0x0000_0000_0038_0000: 0x0000_0000_000C_0000, 0x0000_0000_003C_0000: 0x0000_0000_0004_0000,
+ 0x0000_0000_0040_0000: 0x0000_0000_007C_0000, 0x0000_0000_0044_0000: 0x0000_0000_0004_0000, 0x0000_0000_0048_0000: 0x0000_0000_000C_0000, 0x0000_0000_004C_0000: 0x0000_0000_0004_0000,
+ 0x0000_0000_0050_0000: 0x0000_0000_001C_0000, 0x0000_0000_0054_0000: 0x0000_0000_0004_0000, 0x0000_0000_0058_0000: 0x0000_0000_000C_0000, 0x0000_0000_005C_0000: 0x0000_0000_0004_0000,
+ 0x0000_0000_0060_0000: 0x0000_0000_003C_0000, 0x0000_0000_0064_0000: 0x0000_0000_0004_0000, 0x0000_0000_0068_0000: 0x0000_0000_000C_0000, 0x0000_0000_006C_0000: 0x0000_0000_0004_0000,
+ 0x0000_0000_0070_0000: 0x0000_0000_001C_0000, 0x0000_0000_0074_0000: 0x0000_0000_0004_0000, 0x0000_0000_0078_0000: 0x0000_0000_000C_0000, 0x0000_0000_007C_0000: 0x0000_0000_0004_0000,
+ 0x0000_0000_0080_0000: 0x0000_0000_00FC_0000, 0x0000_0000_0084_0000: 0x0000_0000_0004_0000, 0x0000_0000_0088_0000: 0x0000_0000_000C_0000, 0x0000_0000_008C_0000: 0x0000_0000_0004_0000,
+ 0x0000_0000_0090_0000: 0x0000_0000_001C_0000, 0x0000_0000_0094_0000: 0x0000_0000_0004_0000, 0x0000_0000_0098_0000: 0x0000_0000_000C_0000, 0x0000_0000_009C_0000: 0x0000_0000_0004_0000,
+ 0x0000_0000_00A0_0000: 0x0000_0000_003C_0000, 0x0000_0000_00A4_0000: 0x0000_0000_0004_0000, 0x0000_0000_00A8_0000: 0x0000_0000_000C_0000, 0x0000_0000_00AC_0000: 0x0000_0000_0004_0000,
+ 0x0000_0000_00B0_0000: 0x0000_0000_001C_0000, 0x0000_0000_00B4_0000: 0x0000_0000_0004_0000, 0x0000_0000_00B8_0000: 0x0000_0000_000C_0000, 0x0000_0000_00BC_0000: 0x0000_0000_0004_0000,
+ 0x0000_0000_00C0_0000: 0x0000_0000_007C_0000, 0x0000_0000_00C4_0000: 0x0000_0000_0004_0000, 0x0000_0000_00C8_0000: 0x0000_0000_000C_0000, 0x0000_0000_00CC_0000: 0x0000_0000_0004_0000,
+ 0x0000_0000_00D0_0000: 0x0000_0000_001C_0000, 0x0000_0000_00D4_0000: 0x0000_0000_0004_0000, 0x0000_0000_00D8_0000: 0x0000_0000_000C_0000, 0x0000_0000_00DC_0000: 0x0000_0000_0004_0000,
+ 0x0000_0000_00E0_0000: 0x0000_0000_003C_0000, 0x0000_0000_00E4_0000: 0x0000_0000_0004_0000, 0x0000_0000_00E8_0000: 0x0000_0000_000C_0000, 0x0000_0000_00EC_0000: 0x0000_0000_0004_0000,
+ 0x0000_0000_00F0_0000: 0x0000_0000_001C_0000, 0x0000_0000_00F4_0000: 0x0000_0000_0004_0000, 0x0000_0000_00F8_0000: 0x0000_0000_000C_0000, 0x0000_0000_00FC_0000: 0x0000_0000_0004_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_00F8_0000, 0x0000_0000_0008_0000: 0x0000_0000_0008_0000, 0x0000_0000_0010_0000: 0x0000_0000_0018_0000, 0x0000_0000_0018_0000: 0x0000_0000_0008_0000,
+ 0x0000_0000_0020_0000: 0x0000_0000_0038_0000, 0x0000_0000_0028_0000: 0x0000_0000_0008_0000, 0x0000_0000_0030_0000: 0x0000_0000_0018_0000, 0x0000_0000_0038_0000: 0x0000_0000_0008_0000,
+ 0x0000_0000_0040_0000: 0x0000_0000_0078_0000, 0x0000_0000_0048_0000: 0x0000_0000_0008_0000, 0x0000_0000_0050_0000: 0x0000_0000_0018_0000, 0x0000_0000_0058_0000: 0x0000_0000_0008_0000,
+ 0x0000_0000_0060_0000: 0x0000_0000_0038_0000, 0x0000_0000_0068_0000: 0x0000_0000_0008_0000, 0x0000_0000_0070_0000: 0x0000_0000_0018_0000, 0x0000_0000_0078_0000: 0x0000_0000_0008_0000,
+ 0x0000_0000_0080_0000: 0x0000_0000_00F8_0000, 0x0000_0000_0088_0000: 0x0000_0000_0008_0000, 0x0000_0000_0090_0000: 0x0000_0000_0018_0000, 0x0000_0000_0098_0000: 0x0000_0000_0008_0000,
+ 0x0000_0000_00A0_0000: 0x0000_0000_0038_0000, 0x0000_0000_00A8_0000: 0x0000_0000_0008_0000, 0x0000_0000_00B0_0000: 0x0000_0000_0018_0000, 0x0000_0000_00B8_0000: 0x0000_0000_0008_0000,
+ 0x0000_0000_00C0_0000: 0x0000_0000_0078_0000, 0x0000_0000_00C8_0000: 0x0000_0000_0008_0000, 0x0000_0000_00D0_0000: 0x0000_0000_0018_0000, 0x0000_0000_00D8_0000: 0x0000_0000_0008_0000,
+ 0x0000_0000_00E0_0000: 0x0000_0000_0038_0000, 0x0000_0000_00E8_0000: 0x0000_0000_0008_0000, 0x0000_0000_00F0_0000: 0x0000_0000_0018_0000, 0x0000_0000_00F8_0000: 0x0000_0000_0008_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_00F0_0000, 0x0000_0000_0010_0000: 0x0000_0000_0010_0000, 0x0000_0000_0020_0000: 0x0000_0000_0030_0000, 0x0000_0000_0030_0000: 0x0000_0000_0010_0000,
+ 0x0000_0000_0040_0000: 0x0000_0000_0070_0000, 0x0000_0000_0050_0000: 0x0000_0000_0010_0000, 0x0000_0000_0060_0000: 0x0000_0000_0030_0000, 0x0000_0000_0070_0000: 0x0000_0000_0010_0000,
+ 0x0000_0000_0080_0000: 0x0000_0000_00F0_0000, 0x0000_0000_0090_0000: 0x0000_0000_0010_0000, 0x0000_0000_00A0_0000: 0x0000_0000_0030_0000, 0x0000_0000_00B0_0000: 0x0000_0000_0010_0000,
+ 0x0000_0000_00C0_0000: 0x0000_0000_0070_0000, 0x0000_0000_00D0_0000: 0x0000_0000_0010_0000, 0x0000_0000_00E0_0000: 0x0000_0000_0030_0000, 0x0000_0000_00F0_0000: 0x0000_0000_0010_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_00E0_0000, 0x0000_0000_0020_0000: 0x0000_0000_0020_0000, 0x0000_0000_0040_0000: 0x0000_0000_0060_0000, 0x0000_0000_0060_0000: 0x0000_0000_0020_0000,
+ 0x0000_0000_0080_0000: 0x0000_0000_00E0_0000, 0x0000_0000_00A0_0000: 0x0000_0000_0020_0000, 0x0000_0000_00C0_0000: 0x0000_0000_0060_0000, 0x0000_0000_00E0_0000: 0x0000_0000_0020_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_00C0_0000, 0x0000_0000_0040_0000: 0x0000_0000_0040_0000, 0x0000_0000_0080_0000: 0x0000_0000_00C0_0000, 0x0000_0000_00C0_0000: 0x0000_0000_0040_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0080_0000, 0x0000_0000_0080_0000: 0x0000_0000_0080_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_FE00_0000, 0x0000_0000_0200_0000: 0x0000_0000_0200_0000, 0x0000_0000_0400_0000: 0x0000_0000_0600_0000, 0x0000_0000_0600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_0800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_0A00_0000: 0x0000_0000_0200_0000, 0x0000_0000_0C00_0000: 0x0000_0000_0600_0000, 0x0000_0000_0E00_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_1000_0000: 0x0000_0000_1E00_0000, 0x0000_0000_1200_0000: 0x0000_0000_0200_0000, 0x0000_0000_1400_0000: 0x0000_0000_0600_0000, 0x0000_0000_1600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_1800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_1A00_0000: 0x0000_0000_0200_0000, 0x0000_0000_1C00_0000: 0x0000_0000_0600_0000, 0x0000_0000_1E00_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_2000_0000: 0x0000_0000_3E00_0000, 0x0000_0000_2200_0000: 0x0000_0000_0200_0000, 0x0000_0000_2400_0000: 0x0000_0000_0600_0000, 0x0000_0000_2600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_2800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_2A00_0000: 0x0000_0000_0200_0000, 0x0000_0000_2C00_0000: 0x0000_0000_0600_0000, 0x0000_0000_2E00_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_3000_0000: 0x0000_0000_1E00_0000, 0x0000_0000_3200_0000: 0x0000_0000_0200_0000, 0x0000_0000_3400_0000: 0x0000_0000_0600_0000, 0x0000_0000_3600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_3800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_3A00_0000: 0x0000_0000_0200_0000, 0x0000_0000_3C00_0000: 0x0000_0000_0600_0000, 0x0000_0000_3E00_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_4000_0000: 0x0000_0000_7E00_0000, 0x0000_0000_4200_0000: 0x0000_0000_0200_0000, 0x0000_0000_4400_0000: 0x0000_0000_0600_0000, 0x0000_0000_4600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_4800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_4A00_0000: 0x0000_0000_0200_0000, 0x0000_0000_4C00_0000: 0x0000_0000_0600_0000, 0x0000_0000_4E00_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_5000_0000: 0x0000_0000_1E00_0000, 0x0000_0000_5200_0000: 0x0000_0000_0200_0000, 0x0000_0000_5400_0000: 0x0000_0000_0600_0000, 0x0000_0000_5600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_5800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_5A00_0000: 0x0000_0000_0200_0000, 0x0000_0000_5C00_0000: 0x0000_0000_0600_0000, 0x0000_0000_5E00_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_6000_0000: 0x0000_0000_3E00_0000, 0x0000_0000_6200_0000: 0x0000_0000_0200_0000, 0x0000_0000_6400_0000: 0x0000_0000_0600_0000, 0x0000_0000_6600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_6800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_6A00_0000: 0x0000_0000_0200_0000, 0x0000_0000_6C00_0000: 0x0000_0000_0600_0000, 0x0000_0000_6E00_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_7000_0000: 0x0000_0000_1E00_0000, 0x0000_0000_7200_0000: 0x0000_0000_0200_0000, 0x0000_0000_7400_0000: 0x0000_0000_0600_0000, 0x0000_0000_7600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_7800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_7A00_0000: 0x0000_0000_0200_0000, 0x0000_0000_7C00_0000: 0x0000_0000_0600_0000, 0x0000_0000_7E00_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_8000_0000: 0x0000_0000_FE00_0000, 0x0000_0000_8200_0000: 0x0000_0000_0200_0000, 0x0000_0000_8400_0000: 0x0000_0000_0600_0000, 0x0000_0000_8600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_8800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_8A00_0000: 0x0000_0000_0200_0000, 0x0000_0000_8C00_0000: 0x0000_0000_0600_0000, 0x0000_0000_8E00_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_9000_0000: 0x0000_0000_1E00_0000, 0x0000_0000_9200_0000: 0x0000_0000_0200_0000, 0x0000_0000_9400_0000: 0x0000_0000_0600_0000, 0x0000_0000_9600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_9800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_9A00_0000: 0x0000_0000_0200_0000, 0x0000_0000_9C00_0000: 0x0000_0000_0600_0000, 0x0000_0000_9E00_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_A000_0000: 0x0000_0000_3E00_0000, 0x0000_0000_A200_0000: 0x0000_0000_0200_0000, 0x0000_0000_A400_0000: 0x0000_0000_0600_0000, 0x0000_0000_A600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_A800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_AA00_0000: 0x0000_0000_0200_0000, 0x0000_0000_AC00_0000: 0x0000_0000_0600_0000, 0x0000_0000_AE00_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_B000_0000: 0x0000_0000_1E00_0000, 0x0000_0000_B200_0000: 0x0000_0000_0200_0000, 0x0000_0000_B400_0000: 0x0000_0000_0600_0000, 0x0000_0000_B600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_B800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_BA00_0000: 0x0000_0000_0200_0000, 0x0000_0000_BC00_0000: 0x0000_0000_0600_0000, 0x0000_0000_BE00_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_C000_0000: 0x0000_0000_7E00_0000, 0x0000_0000_C200_0000: 0x0000_0000_0200_0000, 0x0000_0000_C400_0000: 0x0000_0000_0600_0000, 0x0000_0000_C600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_C800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_CA00_0000: 0x0000_0000_0200_0000, 0x0000_0000_CC00_0000: 0x0000_0000_0600_0000, 0x0000_0000_CE00_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_D000_0000: 0x0000_0000_1E00_0000, 0x0000_0000_D200_0000: 0x0000_0000_0200_0000, 0x0000_0000_D400_0000: 0x0000_0000_0600_0000, 0x0000_0000_D600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_D800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_DA00_0000: 0x0000_0000_0200_0000, 0x0000_0000_DC00_0000: 0x0000_0000_0600_0000, 0x0000_0000_DE00_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_E000_0000: 0x0000_0000_3E00_0000, 0x0000_0000_E200_0000: 0x0000_0000_0200_0000, 0x0000_0000_E400_0000: 0x0000_0000_0600_0000, 0x0000_0000_E600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_E800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_EA00_0000: 0x0000_0000_0200_0000, 0x0000_0000_EC00_0000: 0x0000_0000_0600_0000, 0x0000_0000_EE00_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_F000_0000: 0x0000_0000_1E00_0000, 0x0000_0000_F200_0000: 0x0000_0000_0200_0000, 0x0000_0000_F400_0000: 0x0000_0000_0600_0000, 0x0000_0000_F600_0000: 0x0000_0000_0200_0000,
+ 0x0000_0000_F800_0000: 0x0000_0000_0E00_0000, 0x0000_0000_FA00_0000: 0x0000_0000_0200_0000, 0x0000_0000_FC00_0000: 0x0000_0000_0600_0000, 0x0000_0000_FE00_0000: 0x0000_0000_0200_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_FC00_0000, 0x0000_0000_0400_0000: 0x0000_0000_0400_0000, 0x0000_0000_0800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_0C00_0000: 0x0000_0000_0400_0000,
+ 0x0000_0000_1000_0000: 0x0000_0000_1C00_0000, 0x0000_0000_1400_0000: 0x0000_0000_0400_0000, 0x0000_0000_1800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_1C00_0000: 0x0000_0000_0400_0000,
+ 0x0000_0000_2000_0000: 0x0000_0000_3C00_0000, 0x0000_0000_2400_0000: 0x0000_0000_0400_0000, 0x0000_0000_2800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_2C00_0000: 0x0000_0000_0400_0000,
+ 0x0000_0000_3000_0000: 0x0000_0000_1C00_0000, 0x0000_0000_3400_0000: 0x0000_0000_0400_0000, 0x0000_0000_3800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_3C00_0000: 0x0000_0000_0400_0000,
+ 0x0000_0000_4000_0000: 0x0000_0000_7C00_0000, 0x0000_0000_4400_0000: 0x0000_0000_0400_0000, 0x0000_0000_4800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_4C00_0000: 0x0000_0000_0400_0000,
+ 0x0000_0000_5000_0000: 0x0000_0000_1C00_0000, 0x0000_0000_5400_0000: 0x0000_0000_0400_0000, 0x0000_0000_5800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_5C00_0000: 0x0000_0000_0400_0000,
+ 0x0000_0000_6000_0000: 0x0000_0000_3C00_0000, 0x0000_0000_6400_0000: 0x0000_0000_0400_0000, 0x0000_0000_6800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_6C00_0000: 0x0000_0000_0400_0000,
+ 0x0000_0000_7000_0000: 0x0000_0000_1C00_0000, 0x0000_0000_7400_0000: 0x0000_0000_0400_0000, 0x0000_0000_7800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_7C00_0000: 0x0000_0000_0400_0000,
+ 0x0000_0000_8000_0000: 0x0000_0000_FC00_0000, 0x0000_0000_8400_0000: 0x0000_0000_0400_0000, 0x0000_0000_8800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_8C00_0000: 0x0000_0000_0400_0000,
+ 0x0000_0000_9000_0000: 0x0000_0000_1C00_0000, 0x0000_0000_9400_0000: 0x0000_0000_0400_0000, 0x0000_0000_9800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_9C00_0000: 0x0000_0000_0400_0000,
+ 0x0000_0000_A000_0000: 0x0000_0000_3C00_0000, 0x0000_0000_A400_0000: 0x0000_0000_0400_0000, 0x0000_0000_A800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_AC00_0000: 0x0000_0000_0400_0000,
+ 0x0000_0000_B000_0000: 0x0000_0000_1C00_0000, 0x0000_0000_B400_0000: 0x0000_0000_0400_0000, 0x0000_0000_B800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_BC00_0000: 0x0000_0000_0400_0000,
+ 0x0000_0000_C000_0000: 0x0000_0000_7C00_0000, 0x0000_0000_C400_0000: 0x0000_0000_0400_0000, 0x0000_0000_C800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_CC00_0000: 0x0000_0000_0400_0000,
+ 0x0000_0000_D000_0000: 0x0000_0000_1C00_0000, 0x0000_0000_D400_0000: 0x0000_0000_0400_0000, 0x0000_0000_D800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_DC00_0000: 0x0000_0000_0400_0000,
+ 0x0000_0000_E000_0000: 0x0000_0000_3C00_0000, 0x0000_0000_E400_0000: 0x0000_0000_0400_0000, 0x0000_0000_E800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_EC00_0000: 0x0000_0000_0400_0000,
+ 0x0000_0000_F000_0000: 0x0000_0000_1C00_0000, 0x0000_0000_F400_0000: 0x0000_0000_0400_0000, 0x0000_0000_F800_0000: 0x0000_0000_0C00_0000, 0x0000_0000_FC00_0000: 0x0000_0000_0400_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_F800_0000, 0x0000_0000_0800_0000: 0x0000_0000_0800_0000, 0x0000_0000_1000_0000: 0x0000_0000_1800_0000, 0x0000_0000_1800_0000: 0x0000_0000_0800_0000,
+ 0x0000_0000_2000_0000: 0x0000_0000_3800_0000, 0x0000_0000_2800_0000: 0x0000_0000_0800_0000, 0x0000_0000_3000_0000: 0x0000_0000_1800_0000, 0x0000_0000_3800_0000: 0x0000_0000_0800_0000,
+ 0x0000_0000_4000_0000: 0x0000_0000_7800_0000, 0x0000_0000_4800_0000: 0x0000_0000_0800_0000, 0x0000_0000_5000_0000: 0x0000_0000_1800_0000, 0x0000_0000_5800_0000: 0x0000_0000_0800_0000,
+ 0x0000_0000_6000_0000: 0x0000_0000_3800_0000, 0x0000_0000_6800_0000: 0x0000_0000_0800_0000, 0x0000_0000_7000_0000: 0x0000_0000_1800_0000, 0x0000_0000_7800_0000: 0x0000_0000_0800_0000,
+ 0x0000_0000_8000_0000: 0x0000_0000_F800_0000, 0x0000_0000_8800_0000: 0x0000_0000_0800_0000, 0x0000_0000_9000_0000: 0x0000_0000_1800_0000, 0x0000_0000_9800_0000: 0x0000_0000_0800_0000,
+ 0x0000_0000_A000_0000: 0x0000_0000_3800_0000, 0x0000_0000_A800_0000: 0x0000_0000_0800_0000, 0x0000_0000_B000_0000: 0x0000_0000_1800_0000, 0x0000_0000_B800_0000: 0x0000_0000_0800_0000,
+ 0x0000_0000_C000_0000: 0x0000_0000_7800_0000, 0x0000_0000_C800_0000: 0x0000_0000_0800_0000, 0x0000_0000_D000_0000: 0x0000_0000_1800_0000, 0x0000_0000_D800_0000: 0x0000_0000_0800_0000,
+ 0x0000_0000_E000_0000: 0x0000_0000_3800_0000, 0x0000_0000_E800_0000: 0x0000_0000_0800_0000, 0x0000_0000_F000_0000: 0x0000_0000_1800_0000, 0x0000_0000_F800_0000: 0x0000_0000_0800_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_F000_0000, 0x0000_0000_1000_0000: 0x0000_0000_1000_0000, 0x0000_0000_2000_0000: 0x0000_0000_3000_0000, 0x0000_0000_3000_0000: 0x0000_0000_1000_0000,
+ 0x0000_0000_4000_0000: 0x0000_0000_7000_0000, 0x0000_0000_5000_0000: 0x0000_0000_1000_0000, 0x0000_0000_6000_0000: 0x0000_0000_3000_0000, 0x0000_0000_7000_0000: 0x0000_0000_1000_0000,
+ 0x0000_0000_8000_0000: 0x0000_0000_F000_0000, 0x0000_0000_9000_0000: 0x0000_0000_1000_0000, 0x0000_0000_A000_0000: 0x0000_0000_3000_0000, 0x0000_0000_B000_0000: 0x0000_0000_1000_0000,
+ 0x0000_0000_C000_0000: 0x0000_0000_7000_0000, 0x0000_0000_D000_0000: 0x0000_0000_1000_0000, 0x0000_0000_E000_0000: 0x0000_0000_3000_0000, 0x0000_0000_F000_0000: 0x0000_0000_1000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_E000_0000, 0x0000_0000_2000_0000: 0x0000_0000_2000_0000, 0x0000_0000_4000_0000: 0x0000_0000_6000_0000, 0x0000_0000_6000_0000: 0x0000_0000_2000_0000,
+ 0x0000_0000_8000_0000: 0x0000_0000_E000_0000, 0x0000_0000_A000_0000: 0x0000_0000_2000_0000, 0x0000_0000_C000_0000: 0x0000_0000_6000_0000, 0x0000_0000_E000_0000: 0x0000_0000_2000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_C000_0000, 0x0000_0000_4000_0000: 0x0000_0000_4000_0000, 0x0000_0000_8000_0000: 0x0000_0000_C000_0000, 0x0000_0000_C000_0000: 0x0000_0000_4000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_8000_0000, 0x0000_0000_8000_0000: 0x0000_0000_8000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_00FE_0000_0000, 0x0000_0002_0000_0000: 0x0000_0002_0000_0000, 0x0000_0004_0000_0000: 0x0000_0006_0000_0000, 0x0000_0006_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0008_0000_0000: 0x0000_000E_0000_0000, 0x0000_000A_0000_0000: 0x0000_0002_0000_0000, 0x0000_000C_0000_0000: 0x0000_0006_0000_0000, 0x0000_000E_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0010_0000_0000: 0x0000_001E_0000_0000, 0x0000_0012_0000_0000: 0x0000_0002_0000_0000, 0x0000_0014_0000_0000: 0x0000_0006_0000_0000, 0x0000_0016_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0018_0000_0000: 0x0000_000E_0000_0000, 0x0000_001A_0000_0000: 0x0000_0002_0000_0000, 0x0000_001C_0000_0000: 0x0000_0006_0000_0000, 0x0000_001E_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0020_0000_0000: 0x0000_003E_0000_0000, 0x0000_0022_0000_0000: 0x0000_0002_0000_0000, 0x0000_0024_0000_0000: 0x0000_0006_0000_0000, 0x0000_0026_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0028_0000_0000: 0x0000_000E_0000_0000, 0x0000_002A_0000_0000: 0x0000_0002_0000_0000, 0x0000_002C_0000_0000: 0x0000_0006_0000_0000, 0x0000_002E_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0030_0000_0000: 0x0000_001E_0000_0000, 0x0000_0032_0000_0000: 0x0000_0002_0000_0000, 0x0000_0034_0000_0000: 0x0000_0006_0000_0000, 0x0000_0036_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0038_0000_0000: 0x0000_000E_0000_0000, 0x0000_003A_0000_0000: 0x0000_0002_0000_0000, 0x0000_003C_0000_0000: 0x0000_0006_0000_0000, 0x0000_003E_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0040_0000_0000: 0x0000_007E_0000_0000, 0x0000_0042_0000_0000: 0x0000_0002_0000_0000, 0x0000_0044_0000_0000: 0x0000_0006_0000_0000, 0x0000_0046_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0048_0000_0000: 0x0000_000E_0000_0000, 0x0000_004A_0000_0000: 0x0000_0002_0000_0000, 0x0000_004C_0000_0000: 0x0000_0006_0000_0000, 0x0000_004E_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0050_0000_0000: 0x0000_001E_0000_0000, 0x0000_0052_0000_0000: 0x0000_0002_0000_0000, 0x0000_0054_0000_0000: 0x0000_0006_0000_0000, 0x0000_0056_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0058_0000_0000: 0x0000_000E_0000_0000, 0x0000_005A_0000_0000: 0x0000_0002_0000_0000, 0x0000_005C_0000_0000: 0x0000_0006_0000_0000, 0x0000_005E_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0060_0000_0000: 0x0000_003E_0000_0000, 0x0000_0062_0000_0000: 0x0000_0002_0000_0000, 0x0000_0064_0000_0000: 0x0000_0006_0000_0000, 0x0000_0066_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0068_0000_0000: 0x0000_000E_0000_0000, 0x0000_006A_0000_0000: 0x0000_0002_0000_0000, 0x0000_006C_0000_0000: 0x0000_0006_0000_0000, 0x0000_006E_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0070_0000_0000: 0x0000_001E_0000_0000, 0x0000_0072_0000_0000: 0x0000_0002_0000_0000, 0x0000_0074_0000_0000: 0x0000_0006_0000_0000, 0x0000_0076_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0078_0000_0000: 0x0000_000E_0000_0000, 0x0000_007A_0000_0000: 0x0000_0002_0000_0000, 0x0000_007C_0000_0000: 0x0000_0006_0000_0000, 0x0000_007E_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0080_0000_0000: 0x0000_00FE_0000_0000, 0x0000_0082_0000_0000: 0x0000_0002_0000_0000, 0x0000_0084_0000_0000: 0x0000_0006_0000_0000, 0x0000_0086_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0088_0000_0000: 0x0000_000E_0000_0000, 0x0000_008A_0000_0000: 0x0000_0002_0000_0000, 0x0000_008C_0000_0000: 0x0000_0006_0000_0000, 0x0000_008E_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0090_0000_0000: 0x0000_001E_0000_0000, 0x0000_0092_0000_0000: 0x0000_0002_0000_0000, 0x0000_0094_0000_0000: 0x0000_0006_0000_0000, 0x0000_0096_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_0098_0000_0000: 0x0000_000E_0000_0000, 0x0000_009A_0000_0000: 0x0000_0002_0000_0000, 0x0000_009C_0000_0000: 0x0000_0006_0000_0000, 0x0000_009E_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_00A0_0000_0000: 0x0000_003E_0000_0000, 0x0000_00A2_0000_0000: 0x0000_0002_0000_0000, 0x0000_00A4_0000_0000: 0x0000_0006_0000_0000, 0x0000_00A6_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_00A8_0000_0000: 0x0000_000E_0000_0000, 0x0000_00AA_0000_0000: 0x0000_0002_0000_0000, 0x0000_00AC_0000_0000: 0x0000_0006_0000_0000, 0x0000_00AE_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_00B0_0000_0000: 0x0000_001E_0000_0000, 0x0000_00B2_0000_0000: 0x0000_0002_0000_0000, 0x0000_00B4_0000_0000: 0x0000_0006_0000_0000, 0x0000_00B6_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_00B8_0000_0000: 0x0000_000E_0000_0000, 0x0000_00BA_0000_0000: 0x0000_0002_0000_0000, 0x0000_00BC_0000_0000: 0x0000_0006_0000_0000, 0x0000_00BE_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_00C0_0000_0000: 0x0000_007E_0000_0000, 0x0000_00C2_0000_0000: 0x0000_0002_0000_0000, 0x0000_00C4_0000_0000: 0x0000_0006_0000_0000, 0x0000_00C6_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_00C8_0000_0000: 0x0000_000E_0000_0000, 0x0000_00CA_0000_0000: 0x0000_0002_0000_0000, 0x0000_00CC_0000_0000: 0x0000_0006_0000_0000, 0x0000_00CE_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_00D0_0000_0000: 0x0000_001E_0000_0000, 0x0000_00D2_0000_0000: 0x0000_0002_0000_0000, 0x0000_00D4_0000_0000: 0x0000_0006_0000_0000, 0x0000_00D6_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_00D8_0000_0000: 0x0000_000E_0000_0000, 0x0000_00DA_0000_0000: 0x0000_0002_0000_0000, 0x0000_00DC_0000_0000: 0x0000_0006_0000_0000, 0x0000_00DE_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_00E0_0000_0000: 0x0000_003E_0000_0000, 0x0000_00E2_0000_0000: 0x0000_0002_0000_0000, 0x0000_00E4_0000_0000: 0x0000_0006_0000_0000, 0x0000_00E6_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_00E8_0000_0000: 0x0000_000E_0000_0000, 0x0000_00EA_0000_0000: 0x0000_0002_0000_0000, 0x0000_00EC_0000_0000: 0x0000_0006_0000_0000, 0x0000_00EE_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_00F0_0000_0000: 0x0000_001E_0000_0000, 0x0000_00F2_0000_0000: 0x0000_0002_0000_0000, 0x0000_00F4_0000_0000: 0x0000_0006_0000_0000, 0x0000_00F6_0000_0000: 0x0000_0002_0000_0000,
+ 0x0000_00F8_0000_0000: 0x0000_000E_0000_0000, 0x0000_00FA_0000_0000: 0x0000_0002_0000_0000, 0x0000_00FC_0000_0000: 0x0000_0006_0000_0000, 0x0000_00FE_0000_0000: 0x0000_0002_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_00FC_0000_0000, 0x0000_0004_0000_0000: 0x0000_0004_0000_0000, 0x0000_0008_0000_0000: 0x0000_000C_0000_0000, 0x0000_000C_0000_0000: 0x0000_0004_0000_0000,
+ 0x0000_0010_0000_0000: 0x0000_001C_0000_0000, 0x0000_0014_0000_0000: 0x0000_0004_0000_0000, 0x0000_0018_0000_0000: 0x0000_000C_0000_0000, 0x0000_001C_0000_0000: 0x0000_0004_0000_0000,
+ 0x0000_0020_0000_0000: 0x0000_003C_0000_0000, 0x0000_0024_0000_0000: 0x0000_0004_0000_0000, 0x0000_0028_0000_0000: 0x0000_000C_0000_0000, 0x0000_002C_0000_0000: 0x0000_0004_0000_0000,
+ 0x0000_0030_0000_0000: 0x0000_001C_0000_0000, 0x0000_0034_0000_0000: 0x0000_0004_0000_0000, 0x0000_0038_0000_0000: 0x0000_000C_0000_0000, 0x0000_003C_0000_0000: 0x0000_0004_0000_0000,
+ 0x0000_0040_0000_0000: 0x0000_007C_0000_0000, 0x0000_0044_0000_0000: 0x0000_0004_0000_0000, 0x0000_0048_0000_0000: 0x0000_000C_0000_0000, 0x0000_004C_0000_0000: 0x0000_0004_0000_0000,
+ 0x0000_0050_0000_0000: 0x0000_001C_0000_0000, 0x0000_0054_0000_0000: 0x0000_0004_0000_0000, 0x0000_0058_0000_0000: 0x0000_000C_0000_0000, 0x0000_005C_0000_0000: 0x0000_0004_0000_0000,
+ 0x0000_0060_0000_0000: 0x0000_003C_0000_0000, 0x0000_0064_0000_0000: 0x0000_0004_0000_0000, 0x0000_0068_0000_0000: 0x0000_000C_0000_0000, 0x0000_006C_0000_0000: 0x0000_0004_0000_0000,
+ 0x0000_0070_0000_0000: 0x0000_001C_0000_0000, 0x0000_0074_0000_0000: 0x0000_0004_0000_0000, 0x0000_0078_0000_0000: 0x0000_000C_0000_0000, 0x0000_007C_0000_0000: 0x0000_0004_0000_0000,
+ 0x0000_0080_0000_0000: 0x0000_00FC_0000_0000, 0x0000_0084_0000_0000: 0x0000_0004_0000_0000, 0x0000_0088_0000_0000: 0x0000_000C_0000_0000, 0x0000_008C_0000_0000: 0x0000_0004_0000_0000,
+ 0x0000_0090_0000_0000: 0x0000_001C_0000_0000, 0x0000_0094_0000_0000: 0x0000_0004_0000_0000, 0x0000_0098_0000_0000: 0x0000_000C_0000_0000, 0x0000_009C_0000_0000: 0x0000_0004_0000_0000,
+ 0x0000_00A0_0000_0000: 0x0000_003C_0000_0000, 0x0000_00A4_0000_0000: 0x0000_0004_0000_0000, 0x0000_00A8_0000_0000: 0x0000_000C_0000_0000, 0x0000_00AC_0000_0000: 0x0000_0004_0000_0000,
+ 0x0000_00B0_0000_0000: 0x0000_001C_0000_0000, 0x0000_00B4_0000_0000: 0x0000_0004_0000_0000, 0x0000_00B8_0000_0000: 0x0000_000C_0000_0000, 0x0000_00BC_0000_0000: 0x0000_0004_0000_0000,
+ 0x0000_00C0_0000_0000: 0x0000_007C_0000_0000, 0x0000_00C4_0000_0000: 0x0000_0004_0000_0000, 0x0000_00C8_0000_0000: 0x0000_000C_0000_0000, 0x0000_00CC_0000_0000: 0x0000_0004_0000_0000,
+ 0x0000_00D0_0000_0000: 0x0000_001C_0000_0000, 0x0000_00D4_0000_0000: 0x0000_0004_0000_0000, 0x0000_00D8_0000_0000: 0x0000_000C_0000_0000, 0x0000_00DC_0000_0000: 0x0000_0004_0000_0000,
+ 0x0000_00E0_0000_0000: 0x0000_003C_0000_0000, 0x0000_00E4_0000_0000: 0x0000_0004_0000_0000, 0x0000_00E8_0000_0000: 0x0000_000C_0000_0000, 0x0000_00EC_0000_0000: 0x0000_0004_0000_0000,
+ 0x0000_00F0_0000_0000: 0x0000_001C_0000_0000, 0x0000_00F4_0000_0000: 0x0000_0004_0000_0000, 0x0000_00F8_0000_0000: 0x0000_000C_0000_0000, 0x0000_00FC_0000_0000: 0x0000_0004_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_00F8_0000_0000, 0x0000_0008_0000_0000: 0x0000_0008_0000_0000, 0x0000_0010_0000_0000: 0x0000_0018_0000_0000, 0x0000_0018_0000_0000: 0x0000_0008_0000_0000,
+ 0x0000_0020_0000_0000: 0x0000_0038_0000_0000, 0x0000_0028_0000_0000: 0x0000_0008_0000_0000, 0x0000_0030_0000_0000: 0x0000_0018_0000_0000, 0x0000_0038_0000_0000: 0x0000_0008_0000_0000,
+ 0x0000_0040_0000_0000: 0x0000_0078_0000_0000, 0x0000_0048_0000_0000: 0x0000_0008_0000_0000, 0x0000_0050_0000_0000: 0x0000_0018_0000_0000, 0x0000_0058_0000_0000: 0x0000_0008_0000_0000,
+ 0x0000_0060_0000_0000: 0x0000_0038_0000_0000, 0x0000_0068_0000_0000: 0x0000_0008_0000_0000, 0x0000_0070_0000_0000: 0x0000_0018_0000_0000, 0x0000_0078_0000_0000: 0x0000_0008_0000_0000,
+ 0x0000_0080_0000_0000: 0x0000_00F8_0000_0000, 0x0000_0088_0000_0000: 0x0000_0008_0000_0000, 0x0000_0090_0000_0000: 0x0000_0018_0000_0000, 0x0000_0098_0000_0000: 0x0000_0008_0000_0000,
+ 0x0000_00A0_0000_0000: 0x0000_0038_0000_0000, 0x0000_00A8_0000_0000: 0x0000_0008_0000_0000, 0x0000_00B0_0000_0000: 0x0000_0018_0000_0000, 0x0000_00B8_0000_0000: 0x0000_0008_0000_0000,
+ 0x0000_00C0_0000_0000: 0x0000_0078_0000_0000, 0x0000_00C8_0000_0000: 0x0000_0008_0000_0000, 0x0000_00D0_0000_0000: 0x0000_0018_0000_0000, 0x0000_00D8_0000_0000: 0x0000_0008_0000_0000,
+ 0x0000_00E0_0000_0000: 0x0000_0038_0000_0000, 0x0000_00E8_0000_0000: 0x0000_0008_0000_0000, 0x0000_00F0_0000_0000: 0x0000_0018_0000_0000, 0x0000_00F8_0000_0000: 0x0000_0008_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_00F0_0000_0000, 0x0000_0010_0000_0000: 0x0000_0010_0000_0000, 0x0000_0020_0000_0000: 0x0000_0030_0000_0000, 0x0000_0030_0000_0000: 0x0000_0010_0000_0000,
+ 0x0000_0040_0000_0000: 0x0000_0070_0000_0000, 0x0000_0050_0000_0000: 0x0000_0010_0000_0000, 0x0000_0060_0000_0000: 0x0000_0030_0000_0000, 0x0000_0070_0000_0000: 0x0000_0010_0000_0000,
+ 0x0000_0080_0000_0000: 0x0000_00F0_0000_0000, 0x0000_0090_0000_0000: 0x0000_0010_0000_0000, 0x0000_00A0_0000_0000: 0x0000_0030_0000_0000, 0x0000_00B0_0000_0000: 0x0000_0010_0000_0000,
+ 0x0000_00C0_0000_0000: 0x0000_0070_0000_0000, 0x0000_00D0_0000_0000: 0x0000_0010_0000_0000, 0x0000_00E0_0000_0000: 0x0000_0030_0000_0000, 0x0000_00F0_0000_0000: 0x0000_0010_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_00E0_0000_0000, 0x0000_0020_0000_0000: 0x0000_0020_0000_0000, 0x0000_0040_0000_0000: 0x0000_0060_0000_0000, 0x0000_0060_0000_0000: 0x0000_0020_0000_0000,
+ 0x0000_0080_0000_0000: 0x0000_00E0_0000_0000, 0x0000_00A0_0000_0000: 0x0000_0020_0000_0000, 0x0000_00C0_0000_0000: 0x0000_0060_0000_0000, 0x0000_00E0_0000_0000: 0x0000_0020_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_00C0_0000_0000, 0x0000_0040_0000_0000: 0x0000_0040_0000_0000, 0x0000_0080_0000_0000: 0x0000_00C0_0000_0000, 0x0000_00C0_0000_0000: 0x0000_0040_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0080_0000_0000, 0x0000_0080_0000_0000: 0x0000_0080_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_FE00_0000_0000, 0x0000_0200_0000_0000: 0x0000_0200_0000_0000, 0x0000_0400_0000_0000: 0x0000_0600_0000_0000, 0x0000_0600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_0800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_0A00_0000_0000: 0x0000_0200_0000_0000, 0x0000_0C00_0000_0000: 0x0000_0600_0000_0000, 0x0000_0E00_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_1000_0000_0000: 0x0000_1E00_0000_0000, 0x0000_1200_0000_0000: 0x0000_0200_0000_0000, 0x0000_1400_0000_0000: 0x0000_0600_0000_0000, 0x0000_1600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_1800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_1A00_0000_0000: 0x0000_0200_0000_0000, 0x0000_1C00_0000_0000: 0x0000_0600_0000_0000, 0x0000_1E00_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_2000_0000_0000: 0x0000_3E00_0000_0000, 0x0000_2200_0000_0000: 0x0000_0200_0000_0000, 0x0000_2400_0000_0000: 0x0000_0600_0000_0000, 0x0000_2600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_2800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_2A00_0000_0000: 0x0000_0200_0000_0000, 0x0000_2C00_0000_0000: 0x0000_0600_0000_0000, 0x0000_2E00_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_3000_0000_0000: 0x0000_1E00_0000_0000, 0x0000_3200_0000_0000: 0x0000_0200_0000_0000, 0x0000_3400_0000_0000: 0x0000_0600_0000_0000, 0x0000_3600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_3800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_3A00_0000_0000: 0x0000_0200_0000_0000, 0x0000_3C00_0000_0000: 0x0000_0600_0000_0000, 0x0000_3E00_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_4000_0000_0000: 0x0000_7E00_0000_0000, 0x0000_4200_0000_0000: 0x0000_0200_0000_0000, 0x0000_4400_0000_0000: 0x0000_0600_0000_0000, 0x0000_4600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_4800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_4A00_0000_0000: 0x0000_0200_0000_0000, 0x0000_4C00_0000_0000: 0x0000_0600_0000_0000, 0x0000_4E00_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_5000_0000_0000: 0x0000_1E00_0000_0000, 0x0000_5200_0000_0000: 0x0000_0200_0000_0000, 0x0000_5400_0000_0000: 0x0000_0600_0000_0000, 0x0000_5600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_5800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_5A00_0000_0000: 0x0000_0200_0000_0000, 0x0000_5C00_0000_0000: 0x0000_0600_0000_0000, 0x0000_5E00_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_6000_0000_0000: 0x0000_3E00_0000_0000, 0x0000_6200_0000_0000: 0x0000_0200_0000_0000, 0x0000_6400_0000_0000: 0x0000_0600_0000_0000, 0x0000_6600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_6800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_6A00_0000_0000: 0x0000_0200_0000_0000, 0x0000_6C00_0000_0000: 0x0000_0600_0000_0000, 0x0000_6E00_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_7000_0000_0000: 0x0000_1E00_0000_0000, 0x0000_7200_0000_0000: 0x0000_0200_0000_0000, 0x0000_7400_0000_0000: 0x0000_0600_0000_0000, 0x0000_7600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_7800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_7A00_0000_0000: 0x0000_0200_0000_0000, 0x0000_7C00_0000_0000: 0x0000_0600_0000_0000, 0x0000_7E00_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_8000_0000_0000: 0x0000_FE00_0000_0000, 0x0000_8200_0000_0000: 0x0000_0200_0000_0000, 0x0000_8400_0000_0000: 0x0000_0600_0000_0000, 0x0000_8600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_8800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_8A00_0000_0000: 0x0000_0200_0000_0000, 0x0000_8C00_0000_0000: 0x0000_0600_0000_0000, 0x0000_8E00_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_9000_0000_0000: 0x0000_1E00_0000_0000, 0x0000_9200_0000_0000: 0x0000_0200_0000_0000, 0x0000_9400_0000_0000: 0x0000_0600_0000_0000, 0x0000_9600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_9800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_9A00_0000_0000: 0x0000_0200_0000_0000, 0x0000_9C00_0000_0000: 0x0000_0600_0000_0000, 0x0000_9E00_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_A000_0000_0000: 0x0000_3E00_0000_0000, 0x0000_A200_0000_0000: 0x0000_0200_0000_0000, 0x0000_A400_0000_0000: 0x0000_0600_0000_0000, 0x0000_A600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_A800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_AA00_0000_0000: 0x0000_0200_0000_0000, 0x0000_AC00_0000_0000: 0x0000_0600_0000_0000, 0x0000_AE00_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_B000_0000_0000: 0x0000_1E00_0000_0000, 0x0000_B200_0000_0000: 0x0000_0200_0000_0000, 0x0000_B400_0000_0000: 0x0000_0600_0000_0000, 0x0000_B600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_B800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_BA00_0000_0000: 0x0000_0200_0000_0000, 0x0000_BC00_0000_0000: 0x0000_0600_0000_0000, 0x0000_BE00_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_C000_0000_0000: 0x0000_7E00_0000_0000, 0x0000_C200_0000_0000: 0x0000_0200_0000_0000, 0x0000_C400_0000_0000: 0x0000_0600_0000_0000, 0x0000_C600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_C800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_CA00_0000_0000: 0x0000_0200_0000_0000, 0x0000_CC00_0000_0000: 0x0000_0600_0000_0000, 0x0000_CE00_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_D000_0000_0000: 0x0000_1E00_0000_0000, 0x0000_D200_0000_0000: 0x0000_0200_0000_0000, 0x0000_D400_0000_0000: 0x0000_0600_0000_0000, 0x0000_D600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_D800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_DA00_0000_0000: 0x0000_0200_0000_0000, 0x0000_DC00_0000_0000: 0x0000_0600_0000_0000, 0x0000_DE00_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_E000_0000_0000: 0x0000_3E00_0000_0000, 0x0000_E200_0000_0000: 0x0000_0200_0000_0000, 0x0000_E400_0000_0000: 0x0000_0600_0000_0000, 0x0000_E600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_E800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_EA00_0000_0000: 0x0000_0200_0000_0000, 0x0000_EC00_0000_0000: 0x0000_0600_0000_0000, 0x0000_EE00_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_F000_0000_0000: 0x0000_1E00_0000_0000, 0x0000_F200_0000_0000: 0x0000_0200_0000_0000, 0x0000_F400_0000_0000: 0x0000_0600_0000_0000, 0x0000_F600_0000_0000: 0x0000_0200_0000_0000,
+ 0x0000_F800_0000_0000: 0x0000_0E00_0000_0000, 0x0000_FA00_0000_0000: 0x0000_0200_0000_0000, 0x0000_FC00_0000_0000: 0x0000_0600_0000_0000, 0x0000_FE00_0000_0000: 0x0000_0200_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_FC00_0000_0000, 0x0000_0400_0000_0000: 0x0000_0400_0000_0000, 0x0000_0800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_0C00_0000_0000: 0x0000_0400_0000_0000,
+ 0x0000_1000_0000_0000: 0x0000_1C00_0000_0000, 0x0000_1400_0000_0000: 0x0000_0400_0000_0000, 0x0000_1800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_1C00_0000_0000: 0x0000_0400_0000_0000,
+ 0x0000_2000_0000_0000: 0x0000_3C00_0000_0000, 0x0000_2400_0000_0000: 0x0000_0400_0000_0000, 0x0000_2800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_2C00_0000_0000: 0x0000_0400_0000_0000,
+ 0x0000_3000_0000_0000: 0x0000_1C00_0000_0000, 0x0000_3400_0000_0000: 0x0000_0400_0000_0000, 0x0000_3800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_3C00_0000_0000: 0x0000_0400_0000_0000,
+ 0x0000_4000_0000_0000: 0x0000_7C00_0000_0000, 0x0000_4400_0000_0000: 0x0000_0400_0000_0000, 0x0000_4800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_4C00_0000_0000: 0x0000_0400_0000_0000,
+ 0x0000_5000_0000_0000: 0x0000_1C00_0000_0000, 0x0000_5400_0000_0000: 0x0000_0400_0000_0000, 0x0000_5800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_5C00_0000_0000: 0x0000_0400_0000_0000,
+ 0x0000_6000_0000_0000: 0x0000_3C00_0000_0000, 0x0000_6400_0000_0000: 0x0000_0400_0000_0000, 0x0000_6800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_6C00_0000_0000: 0x0000_0400_0000_0000,
+ 0x0000_7000_0000_0000: 0x0000_1C00_0000_0000, 0x0000_7400_0000_0000: 0x0000_0400_0000_0000, 0x0000_7800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_7C00_0000_0000: 0x0000_0400_0000_0000,
+ 0x0000_8000_0000_0000: 0x0000_FC00_0000_0000, 0x0000_8400_0000_0000: 0x0000_0400_0000_0000, 0x0000_8800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_8C00_0000_0000: 0x0000_0400_0000_0000,
+ 0x0000_9000_0000_0000: 0x0000_1C00_0000_0000, 0x0000_9400_0000_0000: 0x0000_0400_0000_0000, 0x0000_9800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_9C00_0000_0000: 0x0000_0400_0000_0000,
+ 0x0000_A000_0000_0000: 0x0000_3C00_0000_0000, 0x0000_A400_0000_0000: 0x0000_0400_0000_0000, 0x0000_A800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_AC00_0000_0000: 0x0000_0400_0000_0000,
+ 0x0000_B000_0000_0000: 0x0000_1C00_0000_0000, 0x0000_B400_0000_0000: 0x0000_0400_0000_0000, 0x0000_B800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_BC00_0000_0000: 0x0000_0400_0000_0000,
+ 0x0000_C000_0000_0000: 0x0000_7C00_0000_0000, 0x0000_C400_0000_0000: 0x0000_0400_0000_0000, 0x0000_C800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_CC00_0000_0000: 0x0000_0400_0000_0000,
+ 0x0000_D000_0000_0000: 0x0000_1C00_0000_0000, 0x0000_D400_0000_0000: 0x0000_0400_0000_0000, 0x0000_D800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_DC00_0000_0000: 0x0000_0400_0000_0000,
+ 0x0000_E000_0000_0000: 0x0000_3C00_0000_0000, 0x0000_E400_0000_0000: 0x0000_0400_0000_0000, 0x0000_E800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_EC00_0000_0000: 0x0000_0400_0000_0000,
+ 0x0000_F000_0000_0000: 0x0000_1C00_0000_0000, 0x0000_F400_0000_0000: 0x0000_0400_0000_0000, 0x0000_F800_0000_0000: 0x0000_0C00_0000_0000, 0x0000_FC00_0000_0000: 0x0000_0400_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_F800_0000_0000, 0x0000_0800_0000_0000: 0x0000_0800_0000_0000, 0x0000_1000_0000_0000: 0x0000_1800_0000_0000, 0x0000_1800_0000_0000: 0x0000_0800_0000_0000,
+ 0x0000_2000_0000_0000: 0x0000_3800_0000_0000, 0x0000_2800_0000_0000: 0x0000_0800_0000_0000, 0x0000_3000_0000_0000: 0x0000_1800_0000_0000, 0x0000_3800_0000_0000: 0x0000_0800_0000_0000,
+ 0x0000_4000_0000_0000: 0x0000_7800_0000_0000, 0x0000_4800_0000_0000: 0x0000_0800_0000_0000, 0x0000_5000_0000_0000: 0x0000_1800_0000_0000, 0x0000_5800_0000_0000: 0x0000_0800_0000_0000,
+ 0x0000_6000_0000_0000: 0x0000_3800_0000_0000, 0x0000_6800_0000_0000: 0x0000_0800_0000_0000, 0x0000_7000_0000_0000: 0x0000_1800_0000_0000, 0x0000_7800_0000_0000: 0x0000_0800_0000_0000,
+ 0x0000_8000_0000_0000: 0x0000_F800_0000_0000, 0x0000_8800_0000_0000: 0x0000_0800_0000_0000, 0x0000_9000_0000_0000: 0x0000_1800_0000_0000, 0x0000_9800_0000_0000: 0x0000_0800_0000_0000,
+ 0x0000_A000_0000_0000: 0x0000_3800_0000_0000, 0x0000_A800_0000_0000: 0x0000_0800_0000_0000, 0x0000_B000_0000_0000: 0x0000_1800_0000_0000, 0x0000_B800_0000_0000: 0x0000_0800_0000_0000,
+ 0x0000_C000_0000_0000: 0x0000_7800_0000_0000, 0x0000_C800_0000_0000: 0x0000_0800_0000_0000, 0x0000_D000_0000_0000: 0x0000_1800_0000_0000, 0x0000_D800_0000_0000: 0x0000_0800_0000_0000,
+ 0x0000_E000_0000_0000: 0x0000_3800_0000_0000, 0x0000_E800_0000_0000: 0x0000_0800_0000_0000, 0x0000_F000_0000_0000: 0x0000_1800_0000_0000, 0x0000_F800_0000_0000: 0x0000_0800_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_F000_0000_0000, 0x0000_1000_0000_0000: 0x0000_1000_0000_0000, 0x0000_2000_0000_0000: 0x0000_3000_0000_0000, 0x0000_3000_0000_0000: 0x0000_1000_0000_0000,
+ 0x0000_4000_0000_0000: 0x0000_7000_0000_0000, 0x0000_5000_0000_0000: 0x0000_1000_0000_0000, 0x0000_6000_0000_0000: 0x0000_3000_0000_0000, 0x0000_7000_0000_0000: 0x0000_1000_0000_0000,
+ 0x0000_8000_0000_0000: 0x0000_F000_0000_0000, 0x0000_9000_0000_0000: 0x0000_1000_0000_0000, 0x0000_A000_0000_0000: 0x0000_3000_0000_0000, 0x0000_B000_0000_0000: 0x0000_1000_0000_0000,
+ 0x0000_C000_0000_0000: 0x0000_7000_0000_0000, 0x0000_D000_0000_0000: 0x0000_1000_0000_0000, 0x0000_E000_0000_0000: 0x0000_3000_0000_0000, 0x0000_F000_0000_0000: 0x0000_1000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_E000_0000_0000, 0x0000_2000_0000_0000: 0x0000_2000_0000_0000, 0x0000_4000_0000_0000: 0x0000_6000_0000_0000, 0x0000_6000_0000_0000: 0x0000_2000_0000_0000,
+ 0x0000_8000_0000_0000: 0x0000_E000_0000_0000, 0x0000_A000_0000_0000: 0x0000_2000_0000_0000, 0x0000_C000_0000_0000: 0x0000_6000_0000_0000, 0x0000_E000_0000_0000: 0x0000_2000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_C000_0000_0000, 0x0000_4000_0000_0000: 0x0000_4000_0000_0000, 0x0000_8000_0000_0000: 0x0000_C000_0000_0000, 0x0000_C000_0000_0000: 0x0000_4000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_8000_0000_0000, 0x0000_8000_0000_0000: 0x0000_8000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x00FE_0000_0000_0000, 0x0002_0000_0000_0000: 0x0002_0000_0000_0000, 0x0004_0000_0000_0000: 0x0006_0000_0000_0000, 0x0006_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0008_0000_0000_0000: 0x000E_0000_0000_0000, 0x000A_0000_0000_0000: 0x0002_0000_0000_0000, 0x000C_0000_0000_0000: 0x0006_0000_0000_0000, 0x000E_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0010_0000_0000_0000: 0x001E_0000_0000_0000, 0x0012_0000_0000_0000: 0x0002_0000_0000_0000, 0x0014_0000_0000_0000: 0x0006_0000_0000_0000, 0x0016_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0018_0000_0000_0000: 0x000E_0000_0000_0000, 0x001A_0000_0000_0000: 0x0002_0000_0000_0000, 0x001C_0000_0000_0000: 0x0006_0000_0000_0000, 0x001E_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0020_0000_0000_0000: 0x003E_0000_0000_0000, 0x0022_0000_0000_0000: 0x0002_0000_0000_0000, 0x0024_0000_0000_0000: 0x0006_0000_0000_0000, 0x0026_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0028_0000_0000_0000: 0x000E_0000_0000_0000, 0x002A_0000_0000_0000: 0x0002_0000_0000_0000, 0x002C_0000_0000_0000: 0x0006_0000_0000_0000, 0x002E_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0030_0000_0000_0000: 0x001E_0000_0000_0000, 0x0032_0000_0000_0000: 0x0002_0000_0000_0000, 0x0034_0000_0000_0000: 0x0006_0000_0000_0000, 0x0036_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0038_0000_0000_0000: 0x000E_0000_0000_0000, 0x003A_0000_0000_0000: 0x0002_0000_0000_0000, 0x003C_0000_0000_0000: 0x0006_0000_0000_0000, 0x003E_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0040_0000_0000_0000: 0x007E_0000_0000_0000, 0x0042_0000_0000_0000: 0x0002_0000_0000_0000, 0x0044_0000_0000_0000: 0x0006_0000_0000_0000, 0x0046_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0048_0000_0000_0000: 0x000E_0000_0000_0000, 0x004A_0000_0000_0000: 0x0002_0000_0000_0000, 0x004C_0000_0000_0000: 0x0006_0000_0000_0000, 0x004E_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0050_0000_0000_0000: 0x001E_0000_0000_0000, 0x0052_0000_0000_0000: 0x0002_0000_0000_0000, 0x0054_0000_0000_0000: 0x0006_0000_0000_0000, 0x0056_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0058_0000_0000_0000: 0x000E_0000_0000_0000, 0x005A_0000_0000_0000: 0x0002_0000_0000_0000, 0x005C_0000_0000_0000: 0x0006_0000_0000_0000, 0x005E_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0060_0000_0000_0000: 0x003E_0000_0000_0000, 0x0062_0000_0000_0000: 0x0002_0000_0000_0000, 0x0064_0000_0000_0000: 0x0006_0000_0000_0000, 0x0066_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0068_0000_0000_0000: 0x000E_0000_0000_0000, 0x006A_0000_0000_0000: 0x0002_0000_0000_0000, 0x006C_0000_0000_0000: 0x0006_0000_0000_0000, 0x006E_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0070_0000_0000_0000: 0x001E_0000_0000_0000, 0x0072_0000_0000_0000: 0x0002_0000_0000_0000, 0x0074_0000_0000_0000: 0x0006_0000_0000_0000, 0x0076_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0078_0000_0000_0000: 0x000E_0000_0000_0000, 0x007A_0000_0000_0000: 0x0002_0000_0000_0000, 0x007C_0000_0000_0000: 0x0006_0000_0000_0000, 0x007E_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0080_0000_0000_0000: 0x00FE_0000_0000_0000, 0x0082_0000_0000_0000: 0x0002_0000_0000_0000, 0x0084_0000_0000_0000: 0x0006_0000_0000_0000, 0x0086_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0088_0000_0000_0000: 0x000E_0000_0000_0000, 0x008A_0000_0000_0000: 0x0002_0000_0000_0000, 0x008C_0000_0000_0000: 0x0006_0000_0000_0000, 0x008E_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0090_0000_0000_0000: 0x001E_0000_0000_0000, 0x0092_0000_0000_0000: 0x0002_0000_0000_0000, 0x0094_0000_0000_0000: 0x0006_0000_0000_0000, 0x0096_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x0098_0000_0000_0000: 0x000E_0000_0000_0000, 0x009A_0000_0000_0000: 0x0002_0000_0000_0000, 0x009C_0000_0000_0000: 0x0006_0000_0000_0000, 0x009E_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x00A0_0000_0000_0000: 0x003E_0000_0000_0000, 0x00A2_0000_0000_0000: 0x0002_0000_0000_0000, 0x00A4_0000_0000_0000: 0x0006_0000_0000_0000, 0x00A6_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x00A8_0000_0000_0000: 0x000E_0000_0000_0000, 0x00AA_0000_0000_0000: 0x0002_0000_0000_0000, 0x00AC_0000_0000_0000: 0x0006_0000_0000_0000, 0x00AE_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x00B0_0000_0000_0000: 0x001E_0000_0000_0000, 0x00B2_0000_0000_0000: 0x0002_0000_0000_0000, 0x00B4_0000_0000_0000: 0x0006_0000_0000_0000, 0x00B6_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x00B8_0000_0000_0000: 0x000E_0000_0000_0000, 0x00BA_0000_0000_0000: 0x0002_0000_0000_0000, 0x00BC_0000_0000_0000: 0x0006_0000_0000_0000, 0x00BE_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x00C0_0000_0000_0000: 0x007E_0000_0000_0000, 0x00C2_0000_0000_0000: 0x0002_0000_0000_0000, 0x00C4_0000_0000_0000: 0x0006_0000_0000_0000, 0x00C6_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x00C8_0000_0000_0000: 0x000E_0000_0000_0000, 0x00CA_0000_0000_0000: 0x0002_0000_0000_0000, 0x00CC_0000_0000_0000: 0x0006_0000_0000_0000, 0x00CE_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x00D0_0000_0000_0000: 0x001E_0000_0000_0000, 0x00D2_0000_0000_0000: 0x0002_0000_0000_0000, 0x00D4_0000_0000_0000: 0x0006_0000_0000_0000, 0x00D6_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x00D8_0000_0000_0000: 0x000E_0000_0000_0000, 0x00DA_0000_0000_0000: 0x0002_0000_0000_0000, 0x00DC_0000_0000_0000: 0x0006_0000_0000_0000, 0x00DE_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x00E0_0000_0000_0000: 0x003E_0000_0000_0000, 0x00E2_0000_0000_0000: 0x0002_0000_0000_0000, 0x00E4_0000_0000_0000: 0x0006_0000_0000_0000, 0x00E6_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x00E8_0000_0000_0000: 0x000E_0000_0000_0000, 0x00EA_0000_0000_0000: 0x0002_0000_0000_0000, 0x00EC_0000_0000_0000: 0x0006_0000_0000_0000, 0x00EE_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x00F0_0000_0000_0000: 0x001E_0000_0000_0000, 0x00F2_0000_0000_0000: 0x0002_0000_0000_0000, 0x00F4_0000_0000_0000: 0x0006_0000_0000_0000, 0x00F6_0000_0000_0000: 0x0002_0000_0000_0000,
+ 0x00F8_0000_0000_0000: 0x000E_0000_0000_0000, 0x00FA_0000_0000_0000: 0x0002_0000_0000_0000, 0x00FC_0000_0000_0000: 0x0006_0000_0000_0000, 0x00FE_0000_0000_0000: 0x0002_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x00FC_0000_0000_0000, 0x0004_0000_0000_0000: 0x0004_0000_0000_0000, 0x0008_0000_0000_0000: 0x000C_0000_0000_0000, 0x000C_0000_0000_0000: 0x0004_0000_0000_0000,
+ 0x0010_0000_0000_0000: 0x001C_0000_0000_0000, 0x0014_0000_0000_0000: 0x0004_0000_0000_0000, 0x0018_0000_0000_0000: 0x000C_0000_0000_0000, 0x001C_0000_0000_0000: 0x0004_0000_0000_0000,
+ 0x0020_0000_0000_0000: 0x003C_0000_0000_0000, 0x0024_0000_0000_0000: 0x0004_0000_0000_0000, 0x0028_0000_0000_0000: 0x000C_0000_0000_0000, 0x002C_0000_0000_0000: 0x0004_0000_0000_0000,
+ 0x0030_0000_0000_0000: 0x001C_0000_0000_0000, 0x0034_0000_0000_0000: 0x0004_0000_0000_0000, 0x0038_0000_0000_0000: 0x000C_0000_0000_0000, 0x003C_0000_0000_0000: 0x0004_0000_0000_0000,
+ 0x0040_0000_0000_0000: 0x007C_0000_0000_0000, 0x0044_0000_0000_0000: 0x0004_0000_0000_0000, 0x0048_0000_0000_0000: 0x000C_0000_0000_0000, 0x004C_0000_0000_0000: 0x0004_0000_0000_0000,
+ 0x0050_0000_0000_0000: 0x001C_0000_0000_0000, 0x0054_0000_0000_0000: 0x0004_0000_0000_0000, 0x0058_0000_0000_0000: 0x000C_0000_0000_0000, 0x005C_0000_0000_0000: 0x0004_0000_0000_0000,
+ 0x0060_0000_0000_0000: 0x003C_0000_0000_0000, 0x0064_0000_0000_0000: 0x0004_0000_0000_0000, 0x0068_0000_0000_0000: 0x000C_0000_0000_0000, 0x006C_0000_0000_0000: 0x0004_0000_0000_0000,
+ 0x0070_0000_0000_0000: 0x001C_0000_0000_0000, 0x0074_0000_0000_0000: 0x0004_0000_0000_0000, 0x0078_0000_0000_0000: 0x000C_0000_0000_0000, 0x007C_0000_0000_0000: 0x0004_0000_0000_0000,
+ 0x0080_0000_0000_0000: 0x00FC_0000_0000_0000, 0x0084_0000_0000_0000: 0x0004_0000_0000_0000, 0x0088_0000_0000_0000: 0x000C_0000_0000_0000, 0x008C_0000_0000_0000: 0x0004_0000_0000_0000,
+ 0x0090_0000_0000_0000: 0x001C_0000_0000_0000, 0x0094_0000_0000_0000: 0x0004_0000_0000_0000, 0x0098_0000_0000_0000: 0x000C_0000_0000_0000, 0x009C_0000_0000_0000: 0x0004_0000_0000_0000,
+ 0x00A0_0000_0000_0000: 0x003C_0000_0000_0000, 0x00A4_0000_0000_0000: 0x0004_0000_0000_0000, 0x00A8_0000_0000_0000: 0x000C_0000_0000_0000, 0x00AC_0000_0000_0000: 0x0004_0000_0000_0000,
+ 0x00B0_0000_0000_0000: 0x001C_0000_0000_0000, 0x00B4_0000_0000_0000: 0x0004_0000_0000_0000, 0x00B8_0000_0000_0000: 0x000C_0000_0000_0000, 0x00BC_0000_0000_0000: 0x0004_0000_0000_0000,
+ 0x00C0_0000_0000_0000: 0x007C_0000_0000_0000, 0x00C4_0000_0000_0000: 0x0004_0000_0000_0000, 0x00C8_0000_0000_0000: 0x000C_0000_0000_0000, 0x00CC_0000_0000_0000: 0x0004_0000_0000_0000,
+ 0x00D0_0000_0000_0000: 0x001C_0000_0000_0000, 0x00D4_0000_0000_0000: 0x0004_0000_0000_0000, 0x00D8_0000_0000_0000: 0x000C_0000_0000_0000, 0x00DC_0000_0000_0000: 0x0004_0000_0000_0000,
+ 0x00E0_0000_0000_0000: 0x003C_0000_0000_0000, 0x00E4_0000_0000_0000: 0x0004_0000_0000_0000, 0x00E8_0000_0000_0000: 0x000C_0000_0000_0000, 0x00EC_0000_0000_0000: 0x0004_0000_0000_0000,
+ 0x00F0_0000_0000_0000: 0x001C_0000_0000_0000, 0x00F4_0000_0000_0000: 0x0004_0000_0000_0000, 0x00F8_0000_0000_0000: 0x000C_0000_0000_0000, 0x00FC_0000_0000_0000: 0x0004_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x00F8_0000_0000_0000, 0x0008_0000_0000_0000: 0x0008_0000_0000_0000, 0x0010_0000_0000_0000: 0x0018_0000_0000_0000, 0x0018_0000_0000_0000: 0x0008_0000_0000_0000,
+ 0x0020_0000_0000_0000: 0x0038_0000_0000_0000, 0x0028_0000_0000_0000: 0x0008_0000_0000_0000, 0x0030_0000_0000_0000: 0x0018_0000_0000_0000, 0x0038_0000_0000_0000: 0x0008_0000_0000_0000,
+ 0x0040_0000_0000_0000: 0x0078_0000_0000_0000, 0x0048_0000_0000_0000: 0x0008_0000_0000_0000, 0x0050_0000_0000_0000: 0x0018_0000_0000_0000, 0x0058_0000_0000_0000: 0x0008_0000_0000_0000,
+ 0x0060_0000_0000_0000: 0x0038_0000_0000_0000, 0x0068_0000_0000_0000: 0x0008_0000_0000_0000, 0x0070_0000_0000_0000: 0x0018_0000_0000_0000, 0x0078_0000_0000_0000: 0x0008_0000_0000_0000,
+ 0x0080_0000_0000_0000: 0x00F8_0000_0000_0000, 0x0088_0000_0000_0000: 0x0008_0000_0000_0000, 0x0090_0000_0000_0000: 0x0018_0000_0000_0000, 0x0098_0000_0000_0000: 0x0008_0000_0000_0000,
+ 0x00A0_0000_0000_0000: 0x0038_0000_0000_0000, 0x00A8_0000_0000_0000: 0x0008_0000_0000_0000, 0x00B0_0000_0000_0000: 0x0018_0000_0000_0000, 0x00B8_0000_0000_0000: 0x0008_0000_0000_0000,
+ 0x00C0_0000_0000_0000: 0x0078_0000_0000_0000, 0x00C8_0000_0000_0000: 0x0008_0000_0000_0000, 0x00D0_0000_0000_0000: 0x0018_0000_0000_0000, 0x00D8_0000_0000_0000: 0x0008_0000_0000_0000,
+ 0x00E0_0000_0000_0000: 0x0038_0000_0000_0000, 0x00E8_0000_0000_0000: 0x0008_0000_0000_0000, 0x00F0_0000_0000_0000: 0x0018_0000_0000_0000, 0x00F8_0000_0000_0000: 0x0008_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x00F0_0000_0000_0000, 0x0010_0000_0000_0000: 0x0010_0000_0000_0000, 0x0020_0000_0000_0000: 0x0030_0000_0000_0000, 0x0030_0000_0000_0000: 0x0010_0000_0000_0000,
+ 0x0040_0000_0000_0000: 0x0070_0000_0000_0000, 0x0050_0000_0000_0000: 0x0010_0000_0000_0000, 0x0060_0000_0000_0000: 0x0030_0000_0000_0000, 0x0070_0000_0000_0000: 0x0010_0000_0000_0000,
+ 0x0080_0000_0000_0000: 0x00F0_0000_0000_0000, 0x0090_0000_0000_0000: 0x0010_0000_0000_0000, 0x00A0_0000_0000_0000: 0x0030_0000_0000_0000, 0x00B0_0000_0000_0000: 0x0010_0000_0000_0000,
+ 0x00C0_0000_0000_0000: 0x0070_0000_0000_0000, 0x00D0_0000_0000_0000: 0x0010_0000_0000_0000, 0x00E0_0000_0000_0000: 0x0030_0000_0000_0000, 0x00F0_0000_0000_0000: 0x0010_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x00E0_0000_0000_0000, 0x0020_0000_0000_0000: 0x0020_0000_0000_0000, 0x0040_0000_0000_0000: 0x0060_0000_0000_0000, 0x0060_0000_0000_0000: 0x0020_0000_0000_0000,
+ 0x0080_0000_0000_0000: 0x00E0_0000_0000_0000, 0x00A0_0000_0000_0000: 0x0020_0000_0000_0000, 0x00C0_0000_0000_0000: 0x0060_0000_0000_0000, 0x00E0_0000_0000_0000: 0x0020_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x00C0_0000_0000_0000, 0x0040_0000_0000_0000: 0x0040_0000_0000_0000, 0x0080_0000_0000_0000: 0x00C0_0000_0000_0000, 0x00C0_0000_0000_0000: 0x0040_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0080_0000_0000_0000, 0x0080_0000_0000_0000: 0x0080_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0xFE00_0000_0000_0000, 0x0200_0000_0000_0000: 0x0200_0000_0000_0000, 0x0400_0000_0000_0000: 0x0600_0000_0000_0000, 0x0600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x0800_0000_0000_0000: 0x0E00_0000_0000_0000, 0x0A00_0000_0000_0000: 0x0200_0000_0000_0000, 0x0C00_0000_0000_0000: 0x0600_0000_0000_0000, 0x0E00_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x1000_0000_0000_0000: 0x1E00_0000_0000_0000, 0x1200_0000_0000_0000: 0x0200_0000_0000_0000, 0x1400_0000_0000_0000: 0x0600_0000_0000_0000, 0x1600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x1800_0000_0000_0000: 0x0E00_0000_0000_0000, 0x1A00_0000_0000_0000: 0x0200_0000_0000_0000, 0x1C00_0000_0000_0000: 0x0600_0000_0000_0000, 0x1E00_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x2000_0000_0000_0000: 0x3E00_0000_0000_0000, 0x2200_0000_0000_0000: 0x0200_0000_0000_0000, 0x2400_0000_0000_0000: 0x0600_0000_0000_0000, 0x2600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x2800_0000_0000_0000: 0x0E00_0000_0000_0000, 0x2A00_0000_0000_0000: 0x0200_0000_0000_0000, 0x2C00_0000_0000_0000: 0x0600_0000_0000_0000, 0x2E00_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x3000_0000_0000_0000: 0x1E00_0000_0000_0000, 0x3200_0000_0000_0000: 0x0200_0000_0000_0000, 0x3400_0000_0000_0000: 0x0600_0000_0000_0000, 0x3600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x3800_0000_0000_0000: 0x0E00_0000_0000_0000, 0x3A00_0000_0000_0000: 0x0200_0000_0000_0000, 0x3C00_0000_0000_0000: 0x0600_0000_0000_0000, 0x3E00_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x4000_0000_0000_0000: 0x7E00_0000_0000_0000, 0x4200_0000_0000_0000: 0x0200_0000_0000_0000, 0x4400_0000_0000_0000: 0x0600_0000_0000_0000, 0x4600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x4800_0000_0000_0000: 0x0E00_0000_0000_0000, 0x4A00_0000_0000_0000: 0x0200_0000_0000_0000, 0x4C00_0000_0000_0000: 0x0600_0000_0000_0000, 0x4E00_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x5000_0000_0000_0000: 0x1E00_0000_0000_0000, 0x5200_0000_0000_0000: 0x0200_0000_0000_0000, 0x5400_0000_0000_0000: 0x0600_0000_0000_0000, 0x5600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x5800_0000_0000_0000: 0x0E00_0000_0000_0000, 0x5A00_0000_0000_0000: 0x0200_0000_0000_0000, 0x5C00_0000_0000_0000: 0x0600_0000_0000_0000, 0x5E00_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x6000_0000_0000_0000: 0x3E00_0000_0000_0000, 0x6200_0000_0000_0000: 0x0200_0000_0000_0000, 0x6400_0000_0000_0000: 0x0600_0000_0000_0000, 0x6600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x6800_0000_0000_0000: 0x0E00_0000_0000_0000, 0x6A00_0000_0000_0000: 0x0200_0000_0000_0000, 0x6C00_0000_0000_0000: 0x0600_0000_0000_0000, 0x6E00_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x7000_0000_0000_0000: 0x1E00_0000_0000_0000, 0x7200_0000_0000_0000: 0x0200_0000_0000_0000, 0x7400_0000_0000_0000: 0x0600_0000_0000_0000, 0x7600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x7800_0000_0000_0000: 0x0E00_0000_0000_0000, 0x7A00_0000_0000_0000: 0x0200_0000_0000_0000, 0x7C00_0000_0000_0000: 0x0600_0000_0000_0000, 0x7E00_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x8000_0000_0000_0000: 0xFE00_0000_0000_0000, 0x8200_0000_0000_0000: 0x0200_0000_0000_0000, 0x8400_0000_0000_0000: 0x0600_0000_0000_0000, 0x8600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x8800_0000_0000_0000: 0x0E00_0000_0000_0000, 0x8A00_0000_0000_0000: 0x0200_0000_0000_0000, 0x8C00_0000_0000_0000: 0x0600_0000_0000_0000, 0x8E00_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x9000_0000_0000_0000: 0x1E00_0000_0000_0000, 0x9200_0000_0000_0000: 0x0200_0000_0000_0000, 0x9400_0000_0000_0000: 0x0600_0000_0000_0000, 0x9600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0x9800_0000_0000_0000: 0x0E00_0000_0000_0000, 0x9A00_0000_0000_0000: 0x0200_0000_0000_0000, 0x9C00_0000_0000_0000: 0x0600_0000_0000_0000, 0x9E00_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0xA000_0000_0000_0000: 0x3E00_0000_0000_0000, 0xA200_0000_0000_0000: 0x0200_0000_0000_0000, 0xA400_0000_0000_0000: 0x0600_0000_0000_0000, 0xA600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0xA800_0000_0000_0000: 0x0E00_0000_0000_0000, 0xAA00_0000_0000_0000: 0x0200_0000_0000_0000, 0xAC00_0000_0000_0000: 0x0600_0000_0000_0000, 0xAE00_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0xB000_0000_0000_0000: 0x1E00_0000_0000_0000, 0xB200_0000_0000_0000: 0x0200_0000_0000_0000, 0xB400_0000_0000_0000: 0x0600_0000_0000_0000, 0xB600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0xB800_0000_0000_0000: 0x0E00_0000_0000_0000, 0xBA00_0000_0000_0000: 0x0200_0000_0000_0000, 0xBC00_0000_0000_0000: 0x0600_0000_0000_0000, 0xBE00_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0xC000_0000_0000_0000: 0x7E00_0000_0000_0000, 0xC200_0000_0000_0000: 0x0200_0000_0000_0000, 0xC400_0000_0000_0000: 0x0600_0000_0000_0000, 0xC600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0xC800_0000_0000_0000: 0x0E00_0000_0000_0000, 0xCA00_0000_0000_0000: 0x0200_0000_0000_0000, 0xCC00_0000_0000_0000: 0x0600_0000_0000_0000, 0xCE00_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0xD000_0000_0000_0000: 0x1E00_0000_0000_0000, 0xD200_0000_0000_0000: 0x0200_0000_0000_0000, 0xD400_0000_0000_0000: 0x0600_0000_0000_0000, 0xD600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0xD800_0000_0000_0000: 0x0E00_0000_0000_0000, 0xDA00_0000_0000_0000: 0x0200_0000_0000_0000, 0xDC00_0000_0000_0000: 0x0600_0000_0000_0000, 0xDE00_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0xE000_0000_0000_0000: 0x3E00_0000_0000_0000, 0xE200_0000_0000_0000: 0x0200_0000_0000_0000, 0xE400_0000_0000_0000: 0x0600_0000_0000_0000, 0xE600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0xE800_0000_0000_0000: 0x0E00_0000_0000_0000, 0xEA00_0000_0000_0000: 0x0200_0000_0000_0000, 0xEC00_0000_0000_0000: 0x0600_0000_0000_0000, 0xEE00_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0xF000_0000_0000_0000: 0x1E00_0000_0000_0000, 0xF200_0000_0000_0000: 0x0200_0000_0000_0000, 0xF400_0000_0000_0000: 0x0600_0000_0000_0000, 0xF600_0000_0000_0000: 0x0200_0000_0000_0000,
+ 0xF800_0000_0000_0000: 0x0E00_0000_0000_0000, 0xFA00_0000_0000_0000: 0x0200_0000_0000_0000, 0xFC00_0000_0000_0000: 0x0600_0000_0000_0000, 0xFE00_0000_0000_0000: 0x0200_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0xFC00_0000_0000_0000, 0x0400_0000_0000_0000: 0x0400_0000_0000_0000, 0x0800_0000_0000_0000: 0x0C00_0000_0000_0000, 0x0C00_0000_0000_0000: 0x0400_0000_0000_0000,
+ 0x1000_0000_0000_0000: 0x1C00_0000_0000_0000, 0x1400_0000_0000_0000: 0x0400_0000_0000_0000, 0x1800_0000_0000_0000: 0x0C00_0000_0000_0000, 0x1C00_0000_0000_0000: 0x0400_0000_0000_0000,
+ 0x2000_0000_0000_0000: 0x3C00_0000_0000_0000, 0x2400_0000_0000_0000: 0x0400_0000_0000_0000, 0x2800_0000_0000_0000: 0x0C00_0000_0000_0000, 0x2C00_0000_0000_0000: 0x0400_0000_0000_0000,
+ 0x3000_0000_0000_0000: 0x1C00_0000_0000_0000, 0x3400_0000_0000_0000: 0x0400_0000_0000_0000, 0x3800_0000_0000_0000: 0x0C00_0000_0000_0000, 0x3C00_0000_0000_0000: 0x0400_0000_0000_0000,
+ 0x4000_0000_0000_0000: 0x7C00_0000_0000_0000, 0x4400_0000_0000_0000: 0x0400_0000_0000_0000, 0x4800_0000_0000_0000: 0x0C00_0000_0000_0000, 0x4C00_0000_0000_0000: 0x0400_0000_0000_0000,
+ 0x5000_0000_0000_0000: 0x1C00_0000_0000_0000, 0x5400_0000_0000_0000: 0x0400_0000_0000_0000, 0x5800_0000_0000_0000: 0x0C00_0000_0000_0000, 0x5C00_0000_0000_0000: 0x0400_0000_0000_0000,
+ 0x6000_0000_0000_0000: 0x3C00_0000_0000_0000, 0x6400_0000_0000_0000: 0x0400_0000_0000_0000, 0x6800_0000_0000_0000: 0x0C00_0000_0000_0000, 0x6C00_0000_0000_0000: 0x0400_0000_0000_0000,
+ 0x7000_0000_0000_0000: 0x1C00_0000_0000_0000, 0x7400_0000_0000_0000: 0x0400_0000_0000_0000, 0x7800_0000_0000_0000: 0x0C00_0000_0000_0000, 0x7C00_0000_0000_0000: 0x0400_0000_0000_0000,
+ 0x8000_0000_0000_0000: 0xFC00_0000_0000_0000, 0x8400_0000_0000_0000: 0x0400_0000_0000_0000, 0x8800_0000_0000_0000: 0x0C00_0000_0000_0000, 0x8C00_0000_0000_0000: 0x0400_0000_0000_0000,
+ 0x9000_0000_0000_0000: 0x1C00_0000_0000_0000, 0x9400_0000_0000_0000: 0x0400_0000_0000_0000, 0x9800_0000_0000_0000: 0x0C00_0000_0000_0000, 0x9C00_0000_0000_0000: 0x0400_0000_0000_0000,
+ 0xA000_0000_0000_0000: 0x3C00_0000_0000_0000, 0xA400_0000_0000_0000: 0x0400_0000_0000_0000, 0xA800_0000_0000_0000: 0x0C00_0000_0000_0000, 0xAC00_0000_0000_0000: 0x0400_0000_0000_0000,
+ 0xB000_0000_0000_0000: 0x1C00_0000_0000_0000, 0xB400_0000_0000_0000: 0x0400_0000_0000_0000, 0xB800_0000_0000_0000: 0x0C00_0000_0000_0000, 0xBC00_0000_0000_0000: 0x0400_0000_0000_0000,
+ 0xC000_0000_0000_0000: 0x7C00_0000_0000_0000, 0xC400_0000_0000_0000: 0x0400_0000_0000_0000, 0xC800_0000_0000_0000: 0x0C00_0000_0000_0000, 0xCC00_0000_0000_0000: 0x0400_0000_0000_0000,
+ 0xD000_0000_0000_0000: 0x1C00_0000_0000_0000, 0xD400_0000_0000_0000: 0x0400_0000_0000_0000, 0xD800_0000_0000_0000: 0x0C00_0000_0000_0000, 0xDC00_0000_0000_0000: 0x0400_0000_0000_0000,
+ 0xE000_0000_0000_0000: 0x3C00_0000_0000_0000, 0xE400_0000_0000_0000: 0x0400_0000_0000_0000, 0xE800_0000_0000_0000: 0x0C00_0000_0000_0000, 0xEC00_0000_0000_0000: 0x0400_0000_0000_0000,
+ 0xF000_0000_0000_0000: 0x1C00_0000_0000_0000, 0xF400_0000_0000_0000: 0x0400_0000_0000_0000, 0xF800_0000_0000_0000: 0x0C00_0000_0000_0000, 0xFC00_0000_0000_0000: 0x0400_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0xF800_0000_0000_0000, 0x0800_0000_0000_0000: 0x0800_0000_0000_0000, 0x1000_0000_0000_0000: 0x1800_0000_0000_0000, 0x1800_0000_0000_0000: 0x0800_0000_0000_0000,
+ 0x2000_0000_0000_0000: 0x3800_0000_0000_0000, 0x2800_0000_0000_0000: 0x0800_0000_0000_0000, 0x3000_0000_0000_0000: 0x1800_0000_0000_0000, 0x3800_0000_0000_0000: 0x0800_0000_0000_0000,
+ 0x4000_0000_0000_0000: 0x7800_0000_0000_0000, 0x4800_0000_0000_0000: 0x0800_0000_0000_0000, 0x5000_0000_0000_0000: 0x1800_0000_0000_0000, 0x5800_0000_0000_0000: 0x0800_0000_0000_0000,
+ 0x6000_0000_0000_0000: 0x3800_0000_0000_0000, 0x6800_0000_0000_0000: 0x0800_0000_0000_0000, 0x7000_0000_0000_0000: 0x1800_0000_0000_0000, 0x7800_0000_0000_0000: 0x0800_0000_0000_0000,
+ 0x8000_0000_0000_0000: 0xF800_0000_0000_0000, 0x8800_0000_0000_0000: 0x0800_0000_0000_0000, 0x9000_0000_0000_0000: 0x1800_0000_0000_0000, 0x9800_0000_0000_0000: 0x0800_0000_0000_0000,
+ 0xA000_0000_0000_0000: 0x3800_0000_0000_0000, 0xA800_0000_0000_0000: 0x0800_0000_0000_0000, 0xB000_0000_0000_0000: 0x1800_0000_0000_0000, 0xB800_0000_0000_0000: 0x0800_0000_0000_0000,
+ 0xC000_0000_0000_0000: 0x7800_0000_0000_0000, 0xC800_0000_0000_0000: 0x0800_0000_0000_0000, 0xD000_0000_0000_0000: 0x1800_0000_0000_0000, 0xD800_0000_0000_0000: 0x0800_0000_0000_0000,
+ 0xE000_0000_0000_0000: 0x3800_0000_0000_0000, 0xE800_0000_0000_0000: 0x0800_0000_0000_0000, 0xF000_0000_0000_0000: 0x1800_0000_0000_0000, 0xF800_0000_0000_0000: 0x0800_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0xF000_0000_0000_0000, 0x1000_0000_0000_0000: 0x1000_0000_0000_0000, 0x2000_0000_0000_0000: 0x3000_0000_0000_0000, 0x3000_0000_0000_0000: 0x1000_0000_0000_0000,
+ 0x4000_0000_0000_0000: 0x7000_0000_0000_0000, 0x5000_0000_0000_0000: 0x1000_0000_0000_0000, 0x6000_0000_0000_0000: 0x3000_0000_0000_0000, 0x7000_0000_0000_0000: 0x1000_0000_0000_0000,
+ 0x8000_0000_0000_0000: 0xF000_0000_0000_0000, 0x9000_0000_0000_0000: 0x1000_0000_0000_0000, 0xA000_0000_0000_0000: 0x3000_0000_0000_0000, 0xB000_0000_0000_0000: 0x1000_0000_0000_0000,
+ 0xC000_0000_0000_0000: 0x7000_0000_0000_0000, 0xD000_0000_0000_0000: 0x1000_0000_0000_0000, 0xE000_0000_0000_0000: 0x3000_0000_0000_0000, 0xF000_0000_0000_0000: 0x1000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0xE000_0000_0000_0000, 0x2000_0000_0000_0000: 0x2000_0000_0000_0000, 0x4000_0000_0000_0000: 0x6000_0000_0000_0000, 0x6000_0000_0000_0000: 0x2000_0000_0000_0000,
+ 0x8000_0000_0000_0000: 0xE000_0000_0000_0000, 0xA000_0000_0000_0000: 0x2000_0000_0000_0000, 0xC000_0000_0000_0000: 0x6000_0000_0000_0000, 0xE000_0000_0000_0000: 0x2000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0xC000_0000_0000_0000, 0x4000_0000_0000_0000: 0x4000_0000_0000_0000, 0x8000_0000_0000_0000: 0xC000_0000_0000_0000, 0xC000_0000_0000_0000: 0x4000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x8000_0000_0000_0000, 0x8000_0000_0000_0000: 0x8000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+)
+R_MASK = (
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0001, 0x0000_0000_0000_0001: 0x0000_0000_0000_0001,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0003, 0x0000_0000_0000_0001: 0x0000_0000_0000_0003, 0x0000_0000_0000_0002: 0x0000_0000_0000_0002, 0x0000_0000_0000_0003: 0x0000_0000_0000_0002,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0007, 0x0000_0000_0000_0001: 0x0000_0000_0000_0007, 0x0000_0000_0000_0002: 0x0000_0000_0000_0006, 0x0000_0000_0000_0003: 0x0000_0000_0000_0006,
+ 0x0000_0000_0000_0004: 0x0000_0000_0000_0004, 0x0000_0000_0000_0005: 0x0000_0000_0000_0004, 0x0000_0000_0000_0006: 0x0000_0000_0000_0004, 0x0000_0000_0000_0007: 0x0000_0000_0000_0004,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_000F, 0x0000_0000_0000_0001: 0x0000_0000_0000_000F, 0x0000_0000_0000_0002: 0x0000_0000_0000_000E, 0x0000_0000_0000_0003: 0x0000_0000_0000_000E,
+ 0x0000_0000_0000_0004: 0x0000_0000_0000_000C, 0x0000_0000_0000_0005: 0x0000_0000_0000_000C, 0x0000_0000_0000_0006: 0x0000_0000_0000_000C, 0x0000_0000_0000_0007: 0x0000_0000_0000_000C,
+ 0x0000_0000_0000_0008: 0x0000_0000_0000_0008, 0x0000_0000_0000_0009: 0x0000_0000_0000_0008, 0x0000_0000_0000_000A: 0x0000_0000_0000_0008, 0x0000_0000_0000_000B: 0x0000_0000_0000_0008,
+ 0x0000_0000_0000_000C: 0x0000_0000_0000_0008, 0x0000_0000_0000_000D: 0x0000_0000_0000_0008, 0x0000_0000_0000_000E: 0x0000_0000_0000_0008, 0x0000_0000_0000_000F: 0x0000_0000_0000_0008,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_001F, 0x0000_0000_0000_0001: 0x0000_0000_0000_001F, 0x0000_0000_0000_0002: 0x0000_0000_0000_001E, 0x0000_0000_0000_0003: 0x0000_0000_0000_001E,
+ 0x0000_0000_0000_0004: 0x0000_0000_0000_001C, 0x0000_0000_0000_0005: 0x0000_0000_0000_001C, 0x0000_0000_0000_0006: 0x0000_0000_0000_001C, 0x0000_0000_0000_0007: 0x0000_0000_0000_001C,
+ 0x0000_0000_0000_0008: 0x0000_0000_0000_0018, 0x0000_0000_0000_0009: 0x0000_0000_0000_0018, 0x0000_0000_0000_000A: 0x0000_0000_0000_0018, 0x0000_0000_0000_000B: 0x0000_0000_0000_0018,
+ 0x0000_0000_0000_000C: 0x0000_0000_0000_0018, 0x0000_0000_0000_000D: 0x0000_0000_0000_0018, 0x0000_0000_0000_000E: 0x0000_0000_0000_0018, 0x0000_0000_0000_000F: 0x0000_0000_0000_0018,
+ 0x0000_0000_0000_0010: 0x0000_0000_0000_0010, 0x0000_0000_0000_0011: 0x0000_0000_0000_0010, 0x0000_0000_0000_0012: 0x0000_0000_0000_0010, 0x0000_0000_0000_0013: 0x0000_0000_0000_0010,
+ 0x0000_0000_0000_0014: 0x0000_0000_0000_0010, 0x0000_0000_0000_0015: 0x0000_0000_0000_0010, 0x0000_0000_0000_0016: 0x0000_0000_0000_0010, 0x0000_0000_0000_0017: 0x0000_0000_0000_0010,
+ 0x0000_0000_0000_0018: 0x0000_0000_0000_0010, 0x0000_0000_0000_0019: 0x0000_0000_0000_0010, 0x0000_0000_0000_001A: 0x0000_0000_0000_0010, 0x0000_0000_0000_001B: 0x0000_0000_0000_0010,
+ 0x0000_0000_0000_001C: 0x0000_0000_0000_0010, 0x0000_0000_0000_001D: 0x0000_0000_0000_0010, 0x0000_0000_0000_001E: 0x0000_0000_0000_0010, 0x0000_0000_0000_001F: 0x0000_0000_0000_0010,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_003F, 0x0000_0000_0000_0001: 0x0000_0000_0000_003F, 0x0000_0000_0000_0002: 0x0000_0000_0000_003E, 0x0000_0000_0000_0003: 0x0000_0000_0000_003E,
+ 0x0000_0000_0000_0004: 0x0000_0000_0000_003C, 0x0000_0000_0000_0005: 0x0000_0000_0000_003C, 0x0000_0000_0000_0006: 0x0000_0000_0000_003C, 0x0000_0000_0000_0007: 0x0000_0000_0000_003C,
+ 0x0000_0000_0000_0008: 0x0000_0000_0000_0038, 0x0000_0000_0000_0009: 0x0000_0000_0000_0038, 0x0000_0000_0000_000A: 0x0000_0000_0000_0038, 0x0000_0000_0000_000B: 0x0000_0000_0000_0038,
+ 0x0000_0000_0000_000C: 0x0000_0000_0000_0038, 0x0000_0000_0000_000D: 0x0000_0000_0000_0038, 0x0000_0000_0000_000E: 0x0000_0000_0000_0038, 0x0000_0000_0000_000F: 0x0000_0000_0000_0038,
+ 0x0000_0000_0000_0010: 0x0000_0000_0000_0030, 0x0000_0000_0000_0011: 0x0000_0000_0000_0030, 0x0000_0000_0000_0012: 0x0000_0000_0000_0030, 0x0000_0000_0000_0013: 0x0000_0000_0000_0030,
+ 0x0000_0000_0000_0014: 0x0000_0000_0000_0030, 0x0000_0000_0000_0015: 0x0000_0000_0000_0030, 0x0000_0000_0000_0016: 0x0000_0000_0000_0030, 0x0000_0000_0000_0017: 0x0000_0000_0000_0030,
+ 0x0000_0000_0000_0018: 0x0000_0000_0000_0030, 0x0000_0000_0000_0019: 0x0000_0000_0000_0030, 0x0000_0000_0000_001A: 0x0000_0000_0000_0030, 0x0000_0000_0000_001B: 0x0000_0000_0000_0030,
+ 0x0000_0000_0000_001C: 0x0000_0000_0000_0030, 0x0000_0000_0000_001D: 0x0000_0000_0000_0030, 0x0000_0000_0000_001E: 0x0000_0000_0000_0030, 0x0000_0000_0000_001F: 0x0000_0000_0000_0030,
+ 0x0000_0000_0000_0020: 0x0000_0000_0000_0020, 0x0000_0000_0000_0021: 0x0000_0000_0000_0020, 0x0000_0000_0000_0022: 0x0000_0000_0000_0020, 0x0000_0000_0000_0023: 0x0000_0000_0000_0020,
+ 0x0000_0000_0000_0024: 0x0000_0000_0000_0020, 0x0000_0000_0000_0025: 0x0000_0000_0000_0020, 0x0000_0000_0000_0026: 0x0000_0000_0000_0020, 0x0000_0000_0000_0027: 0x0000_0000_0000_0020,
+ 0x0000_0000_0000_0028: 0x0000_0000_0000_0020, 0x0000_0000_0000_0029: 0x0000_0000_0000_0020, 0x0000_0000_0000_002A: 0x0000_0000_0000_0020, 0x0000_0000_0000_002B: 0x0000_0000_0000_0020,
+ 0x0000_0000_0000_002C: 0x0000_0000_0000_0020, 0x0000_0000_0000_002D: 0x0000_0000_0000_0020, 0x0000_0000_0000_002E: 0x0000_0000_0000_0020, 0x0000_0000_0000_002F: 0x0000_0000_0000_0020,
+ 0x0000_0000_0000_0030: 0x0000_0000_0000_0020, 0x0000_0000_0000_0031: 0x0000_0000_0000_0020, 0x0000_0000_0000_0032: 0x0000_0000_0000_0020, 0x0000_0000_0000_0033: 0x0000_0000_0000_0020,
+ 0x0000_0000_0000_0034: 0x0000_0000_0000_0020, 0x0000_0000_0000_0035: 0x0000_0000_0000_0020, 0x0000_0000_0000_0036: 0x0000_0000_0000_0020, 0x0000_0000_0000_0037: 0x0000_0000_0000_0020,
+ 0x0000_0000_0000_0038: 0x0000_0000_0000_0020, 0x0000_0000_0000_0039: 0x0000_0000_0000_0020, 0x0000_0000_0000_003A: 0x0000_0000_0000_0020, 0x0000_0000_0000_003B: 0x0000_0000_0000_0020,
+ 0x0000_0000_0000_003C: 0x0000_0000_0000_0020, 0x0000_0000_0000_003D: 0x0000_0000_0000_0020, 0x0000_0000_0000_003E: 0x0000_0000_0000_0020, 0x0000_0000_0000_003F: 0x0000_0000_0000_0020,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_007F, 0x0000_0000_0000_0001: 0x0000_0000_0000_007F, 0x0000_0000_0000_0002: 0x0000_0000_0000_007E, 0x0000_0000_0000_0003: 0x0000_0000_0000_007E,
+ 0x0000_0000_0000_0004: 0x0000_0000_0000_007C, 0x0000_0000_0000_0005: 0x0000_0000_0000_007C, 0x0000_0000_0000_0006: 0x0000_0000_0000_007C, 0x0000_0000_0000_0007: 0x0000_0000_0000_007C,
+ 0x0000_0000_0000_0008: 0x0000_0000_0000_0078, 0x0000_0000_0000_0009: 0x0000_0000_0000_0078, 0x0000_0000_0000_000A: 0x0000_0000_0000_0078, 0x0000_0000_0000_000B: 0x0000_0000_0000_0078,
+ 0x0000_0000_0000_000C: 0x0000_0000_0000_0078, 0x0000_0000_0000_000D: 0x0000_0000_0000_0078, 0x0000_0000_0000_000E: 0x0000_0000_0000_0078, 0x0000_0000_0000_000F: 0x0000_0000_0000_0078,
+ 0x0000_0000_0000_0010: 0x0000_0000_0000_0070, 0x0000_0000_0000_0011: 0x0000_0000_0000_0070, 0x0000_0000_0000_0012: 0x0000_0000_0000_0070, 0x0000_0000_0000_0013: 0x0000_0000_0000_0070,
+ 0x0000_0000_0000_0014: 0x0000_0000_0000_0070, 0x0000_0000_0000_0015: 0x0000_0000_0000_0070, 0x0000_0000_0000_0016: 0x0000_0000_0000_0070, 0x0000_0000_0000_0017: 0x0000_0000_0000_0070,
+ 0x0000_0000_0000_0018: 0x0000_0000_0000_0070, 0x0000_0000_0000_0019: 0x0000_0000_0000_0070, 0x0000_0000_0000_001A: 0x0000_0000_0000_0070, 0x0000_0000_0000_001B: 0x0000_0000_0000_0070,
+ 0x0000_0000_0000_001C: 0x0000_0000_0000_0070, 0x0000_0000_0000_001D: 0x0000_0000_0000_0070, 0x0000_0000_0000_001E: 0x0000_0000_0000_0070, 0x0000_0000_0000_001F: 0x0000_0000_0000_0070,
+ 0x0000_0000_0000_0020: 0x0000_0000_0000_0060, 0x0000_0000_0000_0021: 0x0000_0000_0000_0060, 0x0000_0000_0000_0022: 0x0000_0000_0000_0060, 0x0000_0000_0000_0023: 0x0000_0000_0000_0060,
+ 0x0000_0000_0000_0024: 0x0000_0000_0000_0060, 0x0000_0000_0000_0025: 0x0000_0000_0000_0060, 0x0000_0000_0000_0026: 0x0000_0000_0000_0060, 0x0000_0000_0000_0027: 0x0000_0000_0000_0060,
+ 0x0000_0000_0000_0028: 0x0000_0000_0000_0060, 0x0000_0000_0000_0029: 0x0000_0000_0000_0060, 0x0000_0000_0000_002A: 0x0000_0000_0000_0060, 0x0000_0000_0000_002B: 0x0000_0000_0000_0060,
+ 0x0000_0000_0000_002C: 0x0000_0000_0000_0060, 0x0000_0000_0000_002D: 0x0000_0000_0000_0060, 0x0000_0000_0000_002E: 0x0000_0000_0000_0060, 0x0000_0000_0000_002F: 0x0000_0000_0000_0060,
+ 0x0000_0000_0000_0030: 0x0000_0000_0000_0060, 0x0000_0000_0000_0031: 0x0000_0000_0000_0060, 0x0000_0000_0000_0032: 0x0000_0000_0000_0060, 0x0000_0000_0000_0033: 0x0000_0000_0000_0060,
+ 0x0000_0000_0000_0034: 0x0000_0000_0000_0060, 0x0000_0000_0000_0035: 0x0000_0000_0000_0060, 0x0000_0000_0000_0036: 0x0000_0000_0000_0060, 0x0000_0000_0000_0037: 0x0000_0000_0000_0060,
+ 0x0000_0000_0000_0038: 0x0000_0000_0000_0060, 0x0000_0000_0000_0039: 0x0000_0000_0000_0060, 0x0000_0000_0000_003A: 0x0000_0000_0000_0060, 0x0000_0000_0000_003B: 0x0000_0000_0000_0060,
+ 0x0000_0000_0000_003C: 0x0000_0000_0000_0060, 0x0000_0000_0000_003D: 0x0000_0000_0000_0060, 0x0000_0000_0000_003E: 0x0000_0000_0000_0060, 0x0000_0000_0000_003F: 0x0000_0000_0000_0060,
+ 0x0000_0000_0000_0040: 0x0000_0000_0000_0040, 0x0000_0000_0000_0041: 0x0000_0000_0000_0040, 0x0000_0000_0000_0042: 0x0000_0000_0000_0040, 0x0000_0000_0000_0043: 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_0044: 0x0000_0000_0000_0040, 0x0000_0000_0000_0045: 0x0000_0000_0000_0040, 0x0000_0000_0000_0046: 0x0000_0000_0000_0040, 0x0000_0000_0000_0047: 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_0048: 0x0000_0000_0000_0040, 0x0000_0000_0000_0049: 0x0000_0000_0000_0040, 0x0000_0000_0000_004A: 0x0000_0000_0000_0040, 0x0000_0000_0000_004B: 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_004C: 0x0000_0000_0000_0040, 0x0000_0000_0000_004D: 0x0000_0000_0000_0040, 0x0000_0000_0000_004E: 0x0000_0000_0000_0040, 0x0000_0000_0000_004F: 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_0050: 0x0000_0000_0000_0040, 0x0000_0000_0000_0051: 0x0000_0000_0000_0040, 0x0000_0000_0000_0052: 0x0000_0000_0000_0040, 0x0000_0000_0000_0053: 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_0054: 0x0000_0000_0000_0040, 0x0000_0000_0000_0055: 0x0000_0000_0000_0040, 0x0000_0000_0000_0056: 0x0000_0000_0000_0040, 0x0000_0000_0000_0057: 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_0058: 0x0000_0000_0000_0040, 0x0000_0000_0000_0059: 0x0000_0000_0000_0040, 0x0000_0000_0000_005A: 0x0000_0000_0000_0040, 0x0000_0000_0000_005B: 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_005C: 0x0000_0000_0000_0040, 0x0000_0000_0000_005D: 0x0000_0000_0000_0040, 0x0000_0000_0000_005E: 0x0000_0000_0000_0040, 0x0000_0000_0000_005F: 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_0060: 0x0000_0000_0000_0040, 0x0000_0000_0000_0061: 0x0000_0000_0000_0040, 0x0000_0000_0000_0062: 0x0000_0000_0000_0040, 0x0000_0000_0000_0063: 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_0064: 0x0000_0000_0000_0040, 0x0000_0000_0000_0065: 0x0000_0000_0000_0040, 0x0000_0000_0000_0066: 0x0000_0000_0000_0040, 0x0000_0000_0000_0067: 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_0068: 0x0000_0000_0000_0040, 0x0000_0000_0000_0069: 0x0000_0000_0000_0040, 0x0000_0000_0000_006A: 0x0000_0000_0000_0040, 0x0000_0000_0000_006B: 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_006C: 0x0000_0000_0000_0040, 0x0000_0000_0000_006D: 0x0000_0000_0000_0040, 0x0000_0000_0000_006E: 0x0000_0000_0000_0040, 0x0000_0000_0000_006F: 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_0070: 0x0000_0000_0000_0040, 0x0000_0000_0000_0071: 0x0000_0000_0000_0040, 0x0000_0000_0000_0072: 0x0000_0000_0000_0040, 0x0000_0000_0000_0073: 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_0074: 0x0000_0000_0000_0040, 0x0000_0000_0000_0075: 0x0000_0000_0000_0040, 0x0000_0000_0000_0076: 0x0000_0000_0000_0040, 0x0000_0000_0000_0077: 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_0078: 0x0000_0000_0000_0040, 0x0000_0000_0000_0079: 0x0000_0000_0000_0040, 0x0000_0000_0000_007A: 0x0000_0000_0000_0040, 0x0000_0000_0000_007B: 0x0000_0000_0000_0040,
+ 0x0000_0000_0000_007C: 0x0000_0000_0000_0040, 0x0000_0000_0000_007D: 0x0000_0000_0000_0040, 0x0000_0000_0000_007E: 0x0000_0000_0000_0040, 0x0000_0000_0000_007F: 0x0000_0000_0000_0040,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0100, 0x0000_0000_0000_0100: 0x0000_0000_0000_0100,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0300, 0x0000_0000_0000_0100: 0x0000_0000_0000_0300, 0x0000_0000_0000_0200: 0x0000_0000_0000_0200, 0x0000_0000_0000_0300: 0x0000_0000_0000_0200,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0700, 0x0000_0000_0000_0100: 0x0000_0000_0000_0700, 0x0000_0000_0000_0200: 0x0000_0000_0000_0600, 0x0000_0000_0000_0300: 0x0000_0000_0000_0600,
+ 0x0000_0000_0000_0400: 0x0000_0000_0000_0400, 0x0000_0000_0000_0500: 0x0000_0000_0000_0400, 0x0000_0000_0000_0600: 0x0000_0000_0000_0400, 0x0000_0000_0000_0700: 0x0000_0000_0000_0400,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0F00, 0x0000_0000_0000_0100: 0x0000_0000_0000_0F00, 0x0000_0000_0000_0200: 0x0000_0000_0000_0E00, 0x0000_0000_0000_0300: 0x0000_0000_0000_0E00,
+ 0x0000_0000_0000_0400: 0x0000_0000_0000_0C00, 0x0000_0000_0000_0500: 0x0000_0000_0000_0C00, 0x0000_0000_0000_0600: 0x0000_0000_0000_0C00, 0x0000_0000_0000_0700: 0x0000_0000_0000_0C00,
+ 0x0000_0000_0000_0800: 0x0000_0000_0000_0800, 0x0000_0000_0000_0900: 0x0000_0000_0000_0800, 0x0000_0000_0000_0A00: 0x0000_0000_0000_0800, 0x0000_0000_0000_0B00: 0x0000_0000_0000_0800,
+ 0x0000_0000_0000_0C00: 0x0000_0000_0000_0800, 0x0000_0000_0000_0D00: 0x0000_0000_0000_0800, 0x0000_0000_0000_0E00: 0x0000_0000_0000_0800, 0x0000_0000_0000_0F00: 0x0000_0000_0000_0800,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_1F00, 0x0000_0000_0000_0100: 0x0000_0000_0000_1F00, 0x0000_0000_0000_0200: 0x0000_0000_0000_1E00, 0x0000_0000_0000_0300: 0x0000_0000_0000_1E00,
+ 0x0000_0000_0000_0400: 0x0000_0000_0000_1C00, 0x0000_0000_0000_0500: 0x0000_0000_0000_1C00, 0x0000_0000_0000_0600: 0x0000_0000_0000_1C00, 0x0000_0000_0000_0700: 0x0000_0000_0000_1C00,
+ 0x0000_0000_0000_0800: 0x0000_0000_0000_1800, 0x0000_0000_0000_0900: 0x0000_0000_0000_1800, 0x0000_0000_0000_0A00: 0x0000_0000_0000_1800, 0x0000_0000_0000_0B00: 0x0000_0000_0000_1800,
+ 0x0000_0000_0000_0C00: 0x0000_0000_0000_1800, 0x0000_0000_0000_0D00: 0x0000_0000_0000_1800, 0x0000_0000_0000_0E00: 0x0000_0000_0000_1800, 0x0000_0000_0000_0F00: 0x0000_0000_0000_1800,
+ 0x0000_0000_0000_1000: 0x0000_0000_0000_1000, 0x0000_0000_0000_1100: 0x0000_0000_0000_1000, 0x0000_0000_0000_1200: 0x0000_0000_0000_1000, 0x0000_0000_0000_1300: 0x0000_0000_0000_1000,
+ 0x0000_0000_0000_1400: 0x0000_0000_0000_1000, 0x0000_0000_0000_1500: 0x0000_0000_0000_1000, 0x0000_0000_0000_1600: 0x0000_0000_0000_1000, 0x0000_0000_0000_1700: 0x0000_0000_0000_1000,
+ 0x0000_0000_0000_1800: 0x0000_0000_0000_1000, 0x0000_0000_0000_1900: 0x0000_0000_0000_1000, 0x0000_0000_0000_1A00: 0x0000_0000_0000_1000, 0x0000_0000_0000_1B00: 0x0000_0000_0000_1000,
+ 0x0000_0000_0000_1C00: 0x0000_0000_0000_1000, 0x0000_0000_0000_1D00: 0x0000_0000_0000_1000, 0x0000_0000_0000_1E00: 0x0000_0000_0000_1000, 0x0000_0000_0000_1F00: 0x0000_0000_0000_1000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_3F00, 0x0000_0000_0000_0100: 0x0000_0000_0000_3F00, 0x0000_0000_0000_0200: 0x0000_0000_0000_3E00, 0x0000_0000_0000_0300: 0x0000_0000_0000_3E00,
+ 0x0000_0000_0000_0400: 0x0000_0000_0000_3C00, 0x0000_0000_0000_0500: 0x0000_0000_0000_3C00, 0x0000_0000_0000_0600: 0x0000_0000_0000_3C00, 0x0000_0000_0000_0700: 0x0000_0000_0000_3C00,
+ 0x0000_0000_0000_0800: 0x0000_0000_0000_3800, 0x0000_0000_0000_0900: 0x0000_0000_0000_3800, 0x0000_0000_0000_0A00: 0x0000_0000_0000_3800, 0x0000_0000_0000_0B00: 0x0000_0000_0000_3800,
+ 0x0000_0000_0000_0C00: 0x0000_0000_0000_3800, 0x0000_0000_0000_0D00: 0x0000_0000_0000_3800, 0x0000_0000_0000_0E00: 0x0000_0000_0000_3800, 0x0000_0000_0000_0F00: 0x0000_0000_0000_3800,
+ 0x0000_0000_0000_1000: 0x0000_0000_0000_3000, 0x0000_0000_0000_1100: 0x0000_0000_0000_3000, 0x0000_0000_0000_1200: 0x0000_0000_0000_3000, 0x0000_0000_0000_1300: 0x0000_0000_0000_3000,
+ 0x0000_0000_0000_1400: 0x0000_0000_0000_3000, 0x0000_0000_0000_1500: 0x0000_0000_0000_3000, 0x0000_0000_0000_1600: 0x0000_0000_0000_3000, 0x0000_0000_0000_1700: 0x0000_0000_0000_3000,
+ 0x0000_0000_0000_1800: 0x0000_0000_0000_3000, 0x0000_0000_0000_1900: 0x0000_0000_0000_3000, 0x0000_0000_0000_1A00: 0x0000_0000_0000_3000, 0x0000_0000_0000_1B00: 0x0000_0000_0000_3000,
+ 0x0000_0000_0000_1C00: 0x0000_0000_0000_3000, 0x0000_0000_0000_1D00: 0x0000_0000_0000_3000, 0x0000_0000_0000_1E00: 0x0000_0000_0000_3000, 0x0000_0000_0000_1F00: 0x0000_0000_0000_3000,
+ 0x0000_0000_0000_2000: 0x0000_0000_0000_2000, 0x0000_0000_0000_2100: 0x0000_0000_0000_2000, 0x0000_0000_0000_2200: 0x0000_0000_0000_2000, 0x0000_0000_0000_2300: 0x0000_0000_0000_2000,
+ 0x0000_0000_0000_2400: 0x0000_0000_0000_2000, 0x0000_0000_0000_2500: 0x0000_0000_0000_2000, 0x0000_0000_0000_2600: 0x0000_0000_0000_2000, 0x0000_0000_0000_2700: 0x0000_0000_0000_2000,
+ 0x0000_0000_0000_2800: 0x0000_0000_0000_2000, 0x0000_0000_0000_2900: 0x0000_0000_0000_2000, 0x0000_0000_0000_2A00: 0x0000_0000_0000_2000, 0x0000_0000_0000_2B00: 0x0000_0000_0000_2000,
+ 0x0000_0000_0000_2C00: 0x0000_0000_0000_2000, 0x0000_0000_0000_2D00: 0x0000_0000_0000_2000, 0x0000_0000_0000_2E00: 0x0000_0000_0000_2000, 0x0000_0000_0000_2F00: 0x0000_0000_0000_2000,
+ 0x0000_0000_0000_3000: 0x0000_0000_0000_2000, 0x0000_0000_0000_3100: 0x0000_0000_0000_2000, 0x0000_0000_0000_3200: 0x0000_0000_0000_2000, 0x0000_0000_0000_3300: 0x0000_0000_0000_2000,
+ 0x0000_0000_0000_3400: 0x0000_0000_0000_2000, 0x0000_0000_0000_3500: 0x0000_0000_0000_2000, 0x0000_0000_0000_3600: 0x0000_0000_0000_2000, 0x0000_0000_0000_3700: 0x0000_0000_0000_2000,
+ 0x0000_0000_0000_3800: 0x0000_0000_0000_2000, 0x0000_0000_0000_3900: 0x0000_0000_0000_2000, 0x0000_0000_0000_3A00: 0x0000_0000_0000_2000, 0x0000_0000_0000_3B00: 0x0000_0000_0000_2000,
+ 0x0000_0000_0000_3C00: 0x0000_0000_0000_2000, 0x0000_0000_0000_3D00: 0x0000_0000_0000_2000, 0x0000_0000_0000_3E00: 0x0000_0000_0000_2000, 0x0000_0000_0000_3F00: 0x0000_0000_0000_2000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_7F00, 0x0000_0000_0000_0100: 0x0000_0000_0000_7F00, 0x0000_0000_0000_0200: 0x0000_0000_0000_7E00, 0x0000_0000_0000_0300: 0x0000_0000_0000_7E00,
+ 0x0000_0000_0000_0400: 0x0000_0000_0000_7C00, 0x0000_0000_0000_0500: 0x0000_0000_0000_7C00, 0x0000_0000_0000_0600: 0x0000_0000_0000_7C00, 0x0000_0000_0000_0700: 0x0000_0000_0000_7C00,
+ 0x0000_0000_0000_0800: 0x0000_0000_0000_7800, 0x0000_0000_0000_0900: 0x0000_0000_0000_7800, 0x0000_0000_0000_0A00: 0x0000_0000_0000_7800, 0x0000_0000_0000_0B00: 0x0000_0000_0000_7800,
+ 0x0000_0000_0000_0C00: 0x0000_0000_0000_7800, 0x0000_0000_0000_0D00: 0x0000_0000_0000_7800, 0x0000_0000_0000_0E00: 0x0000_0000_0000_7800, 0x0000_0000_0000_0F00: 0x0000_0000_0000_7800,
+ 0x0000_0000_0000_1000: 0x0000_0000_0000_7000, 0x0000_0000_0000_1100: 0x0000_0000_0000_7000, 0x0000_0000_0000_1200: 0x0000_0000_0000_7000, 0x0000_0000_0000_1300: 0x0000_0000_0000_7000,
+ 0x0000_0000_0000_1400: 0x0000_0000_0000_7000, 0x0000_0000_0000_1500: 0x0000_0000_0000_7000, 0x0000_0000_0000_1600: 0x0000_0000_0000_7000, 0x0000_0000_0000_1700: 0x0000_0000_0000_7000,
+ 0x0000_0000_0000_1800: 0x0000_0000_0000_7000, 0x0000_0000_0000_1900: 0x0000_0000_0000_7000, 0x0000_0000_0000_1A00: 0x0000_0000_0000_7000, 0x0000_0000_0000_1B00: 0x0000_0000_0000_7000,
+ 0x0000_0000_0000_1C00: 0x0000_0000_0000_7000, 0x0000_0000_0000_1D00: 0x0000_0000_0000_7000, 0x0000_0000_0000_1E00: 0x0000_0000_0000_7000, 0x0000_0000_0000_1F00: 0x0000_0000_0000_7000,
+ 0x0000_0000_0000_2000: 0x0000_0000_0000_6000, 0x0000_0000_0000_2100: 0x0000_0000_0000_6000, 0x0000_0000_0000_2200: 0x0000_0000_0000_6000, 0x0000_0000_0000_2300: 0x0000_0000_0000_6000,
+ 0x0000_0000_0000_2400: 0x0000_0000_0000_6000, 0x0000_0000_0000_2500: 0x0000_0000_0000_6000, 0x0000_0000_0000_2600: 0x0000_0000_0000_6000, 0x0000_0000_0000_2700: 0x0000_0000_0000_6000,
+ 0x0000_0000_0000_2800: 0x0000_0000_0000_6000, 0x0000_0000_0000_2900: 0x0000_0000_0000_6000, 0x0000_0000_0000_2A00: 0x0000_0000_0000_6000, 0x0000_0000_0000_2B00: 0x0000_0000_0000_6000,
+ 0x0000_0000_0000_2C00: 0x0000_0000_0000_6000, 0x0000_0000_0000_2D00: 0x0000_0000_0000_6000, 0x0000_0000_0000_2E00: 0x0000_0000_0000_6000, 0x0000_0000_0000_2F00: 0x0000_0000_0000_6000,
+ 0x0000_0000_0000_3000: 0x0000_0000_0000_6000, 0x0000_0000_0000_3100: 0x0000_0000_0000_6000, 0x0000_0000_0000_3200: 0x0000_0000_0000_6000, 0x0000_0000_0000_3300: 0x0000_0000_0000_6000,
+ 0x0000_0000_0000_3400: 0x0000_0000_0000_6000, 0x0000_0000_0000_3500: 0x0000_0000_0000_6000, 0x0000_0000_0000_3600: 0x0000_0000_0000_6000, 0x0000_0000_0000_3700: 0x0000_0000_0000_6000,
+ 0x0000_0000_0000_3800: 0x0000_0000_0000_6000, 0x0000_0000_0000_3900: 0x0000_0000_0000_6000, 0x0000_0000_0000_3A00: 0x0000_0000_0000_6000, 0x0000_0000_0000_3B00: 0x0000_0000_0000_6000,
+ 0x0000_0000_0000_3C00: 0x0000_0000_0000_6000, 0x0000_0000_0000_3D00: 0x0000_0000_0000_6000, 0x0000_0000_0000_3E00: 0x0000_0000_0000_6000, 0x0000_0000_0000_3F00: 0x0000_0000_0000_6000,
+ 0x0000_0000_0000_4000: 0x0000_0000_0000_4000, 0x0000_0000_0000_4100: 0x0000_0000_0000_4000, 0x0000_0000_0000_4200: 0x0000_0000_0000_4000, 0x0000_0000_0000_4300: 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_4400: 0x0000_0000_0000_4000, 0x0000_0000_0000_4500: 0x0000_0000_0000_4000, 0x0000_0000_0000_4600: 0x0000_0000_0000_4000, 0x0000_0000_0000_4700: 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_4800: 0x0000_0000_0000_4000, 0x0000_0000_0000_4900: 0x0000_0000_0000_4000, 0x0000_0000_0000_4A00: 0x0000_0000_0000_4000, 0x0000_0000_0000_4B00: 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_4C00: 0x0000_0000_0000_4000, 0x0000_0000_0000_4D00: 0x0000_0000_0000_4000, 0x0000_0000_0000_4E00: 0x0000_0000_0000_4000, 0x0000_0000_0000_4F00: 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_5000: 0x0000_0000_0000_4000, 0x0000_0000_0000_5100: 0x0000_0000_0000_4000, 0x0000_0000_0000_5200: 0x0000_0000_0000_4000, 0x0000_0000_0000_5300: 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_5400: 0x0000_0000_0000_4000, 0x0000_0000_0000_5500: 0x0000_0000_0000_4000, 0x0000_0000_0000_5600: 0x0000_0000_0000_4000, 0x0000_0000_0000_5700: 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_5800: 0x0000_0000_0000_4000, 0x0000_0000_0000_5900: 0x0000_0000_0000_4000, 0x0000_0000_0000_5A00: 0x0000_0000_0000_4000, 0x0000_0000_0000_5B00: 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_5C00: 0x0000_0000_0000_4000, 0x0000_0000_0000_5D00: 0x0000_0000_0000_4000, 0x0000_0000_0000_5E00: 0x0000_0000_0000_4000, 0x0000_0000_0000_5F00: 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_6000: 0x0000_0000_0000_4000, 0x0000_0000_0000_6100: 0x0000_0000_0000_4000, 0x0000_0000_0000_6200: 0x0000_0000_0000_4000, 0x0000_0000_0000_6300: 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_6400: 0x0000_0000_0000_4000, 0x0000_0000_0000_6500: 0x0000_0000_0000_4000, 0x0000_0000_0000_6600: 0x0000_0000_0000_4000, 0x0000_0000_0000_6700: 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_6800: 0x0000_0000_0000_4000, 0x0000_0000_0000_6900: 0x0000_0000_0000_4000, 0x0000_0000_0000_6A00: 0x0000_0000_0000_4000, 0x0000_0000_0000_6B00: 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_6C00: 0x0000_0000_0000_4000, 0x0000_0000_0000_6D00: 0x0000_0000_0000_4000, 0x0000_0000_0000_6E00: 0x0000_0000_0000_4000, 0x0000_0000_0000_6F00: 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_7000: 0x0000_0000_0000_4000, 0x0000_0000_0000_7100: 0x0000_0000_0000_4000, 0x0000_0000_0000_7200: 0x0000_0000_0000_4000, 0x0000_0000_0000_7300: 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_7400: 0x0000_0000_0000_4000, 0x0000_0000_0000_7500: 0x0000_0000_0000_4000, 0x0000_0000_0000_7600: 0x0000_0000_0000_4000, 0x0000_0000_0000_7700: 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_7800: 0x0000_0000_0000_4000, 0x0000_0000_0000_7900: 0x0000_0000_0000_4000, 0x0000_0000_0000_7A00: 0x0000_0000_0000_4000, 0x0000_0000_0000_7B00: 0x0000_0000_0000_4000,
+ 0x0000_0000_0000_7C00: 0x0000_0000_0000_4000, 0x0000_0000_0000_7D00: 0x0000_0000_0000_4000, 0x0000_0000_0000_7E00: 0x0000_0000_0000_4000, 0x0000_0000_0000_7F00: 0x0000_0000_0000_4000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0001_0000, 0x0000_0000_0001_0000: 0x0000_0000_0001_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0003_0000, 0x0000_0000_0001_0000: 0x0000_0000_0003_0000, 0x0000_0000_0002_0000: 0x0000_0000_0002_0000, 0x0000_0000_0003_0000: 0x0000_0000_0002_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0007_0000, 0x0000_0000_0001_0000: 0x0000_0000_0007_0000, 0x0000_0000_0002_0000: 0x0000_0000_0006_0000, 0x0000_0000_0003_0000: 0x0000_0000_0006_0000,
+ 0x0000_0000_0004_0000: 0x0000_0000_0004_0000, 0x0000_0000_0005_0000: 0x0000_0000_0004_0000, 0x0000_0000_0006_0000: 0x0000_0000_0004_0000, 0x0000_0000_0007_0000: 0x0000_0000_0004_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_000F_0000, 0x0000_0000_0001_0000: 0x0000_0000_000F_0000, 0x0000_0000_0002_0000: 0x0000_0000_000E_0000, 0x0000_0000_0003_0000: 0x0000_0000_000E_0000,
+ 0x0000_0000_0004_0000: 0x0000_0000_000C_0000, 0x0000_0000_0005_0000: 0x0000_0000_000C_0000, 0x0000_0000_0006_0000: 0x0000_0000_000C_0000, 0x0000_0000_0007_0000: 0x0000_0000_000C_0000,
+ 0x0000_0000_0008_0000: 0x0000_0000_0008_0000, 0x0000_0000_0009_0000: 0x0000_0000_0008_0000, 0x0000_0000_000A_0000: 0x0000_0000_0008_0000, 0x0000_0000_000B_0000: 0x0000_0000_0008_0000,
+ 0x0000_0000_000C_0000: 0x0000_0000_0008_0000, 0x0000_0000_000D_0000: 0x0000_0000_0008_0000, 0x0000_0000_000E_0000: 0x0000_0000_0008_0000, 0x0000_0000_000F_0000: 0x0000_0000_0008_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_001F_0000, 0x0000_0000_0001_0000: 0x0000_0000_001F_0000, 0x0000_0000_0002_0000: 0x0000_0000_001E_0000, 0x0000_0000_0003_0000: 0x0000_0000_001E_0000,
+ 0x0000_0000_0004_0000: 0x0000_0000_001C_0000, 0x0000_0000_0005_0000: 0x0000_0000_001C_0000, 0x0000_0000_0006_0000: 0x0000_0000_001C_0000, 0x0000_0000_0007_0000: 0x0000_0000_001C_0000,
+ 0x0000_0000_0008_0000: 0x0000_0000_0018_0000, 0x0000_0000_0009_0000: 0x0000_0000_0018_0000, 0x0000_0000_000A_0000: 0x0000_0000_0018_0000, 0x0000_0000_000B_0000: 0x0000_0000_0018_0000,
+ 0x0000_0000_000C_0000: 0x0000_0000_0018_0000, 0x0000_0000_000D_0000: 0x0000_0000_0018_0000, 0x0000_0000_000E_0000: 0x0000_0000_0018_0000, 0x0000_0000_000F_0000: 0x0000_0000_0018_0000,
+ 0x0000_0000_0010_0000: 0x0000_0000_0010_0000, 0x0000_0000_0011_0000: 0x0000_0000_0010_0000, 0x0000_0000_0012_0000: 0x0000_0000_0010_0000, 0x0000_0000_0013_0000: 0x0000_0000_0010_0000,
+ 0x0000_0000_0014_0000: 0x0000_0000_0010_0000, 0x0000_0000_0015_0000: 0x0000_0000_0010_0000, 0x0000_0000_0016_0000: 0x0000_0000_0010_0000, 0x0000_0000_0017_0000: 0x0000_0000_0010_0000,
+ 0x0000_0000_0018_0000: 0x0000_0000_0010_0000, 0x0000_0000_0019_0000: 0x0000_0000_0010_0000, 0x0000_0000_001A_0000: 0x0000_0000_0010_0000, 0x0000_0000_001B_0000: 0x0000_0000_0010_0000,
+ 0x0000_0000_001C_0000: 0x0000_0000_0010_0000, 0x0000_0000_001D_0000: 0x0000_0000_0010_0000, 0x0000_0000_001E_0000: 0x0000_0000_0010_0000, 0x0000_0000_001F_0000: 0x0000_0000_0010_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_003F_0000, 0x0000_0000_0001_0000: 0x0000_0000_003F_0000, 0x0000_0000_0002_0000: 0x0000_0000_003E_0000, 0x0000_0000_0003_0000: 0x0000_0000_003E_0000,
+ 0x0000_0000_0004_0000: 0x0000_0000_003C_0000, 0x0000_0000_0005_0000: 0x0000_0000_003C_0000, 0x0000_0000_0006_0000: 0x0000_0000_003C_0000, 0x0000_0000_0007_0000: 0x0000_0000_003C_0000,
+ 0x0000_0000_0008_0000: 0x0000_0000_0038_0000, 0x0000_0000_0009_0000: 0x0000_0000_0038_0000, 0x0000_0000_000A_0000: 0x0000_0000_0038_0000, 0x0000_0000_000B_0000: 0x0000_0000_0038_0000,
+ 0x0000_0000_000C_0000: 0x0000_0000_0038_0000, 0x0000_0000_000D_0000: 0x0000_0000_0038_0000, 0x0000_0000_000E_0000: 0x0000_0000_0038_0000, 0x0000_0000_000F_0000: 0x0000_0000_0038_0000,
+ 0x0000_0000_0010_0000: 0x0000_0000_0030_0000, 0x0000_0000_0011_0000: 0x0000_0000_0030_0000, 0x0000_0000_0012_0000: 0x0000_0000_0030_0000, 0x0000_0000_0013_0000: 0x0000_0000_0030_0000,
+ 0x0000_0000_0014_0000: 0x0000_0000_0030_0000, 0x0000_0000_0015_0000: 0x0000_0000_0030_0000, 0x0000_0000_0016_0000: 0x0000_0000_0030_0000, 0x0000_0000_0017_0000: 0x0000_0000_0030_0000,
+ 0x0000_0000_0018_0000: 0x0000_0000_0030_0000, 0x0000_0000_0019_0000: 0x0000_0000_0030_0000, 0x0000_0000_001A_0000: 0x0000_0000_0030_0000, 0x0000_0000_001B_0000: 0x0000_0000_0030_0000,
+ 0x0000_0000_001C_0000: 0x0000_0000_0030_0000, 0x0000_0000_001D_0000: 0x0000_0000_0030_0000, 0x0000_0000_001E_0000: 0x0000_0000_0030_0000, 0x0000_0000_001F_0000: 0x0000_0000_0030_0000,
+ 0x0000_0000_0020_0000: 0x0000_0000_0020_0000, 0x0000_0000_0021_0000: 0x0000_0000_0020_0000, 0x0000_0000_0022_0000: 0x0000_0000_0020_0000, 0x0000_0000_0023_0000: 0x0000_0000_0020_0000,
+ 0x0000_0000_0024_0000: 0x0000_0000_0020_0000, 0x0000_0000_0025_0000: 0x0000_0000_0020_0000, 0x0000_0000_0026_0000: 0x0000_0000_0020_0000, 0x0000_0000_0027_0000: 0x0000_0000_0020_0000,
+ 0x0000_0000_0028_0000: 0x0000_0000_0020_0000, 0x0000_0000_0029_0000: 0x0000_0000_0020_0000, 0x0000_0000_002A_0000: 0x0000_0000_0020_0000, 0x0000_0000_002B_0000: 0x0000_0000_0020_0000,
+ 0x0000_0000_002C_0000: 0x0000_0000_0020_0000, 0x0000_0000_002D_0000: 0x0000_0000_0020_0000, 0x0000_0000_002E_0000: 0x0000_0000_0020_0000, 0x0000_0000_002F_0000: 0x0000_0000_0020_0000,
+ 0x0000_0000_0030_0000: 0x0000_0000_0020_0000, 0x0000_0000_0031_0000: 0x0000_0000_0020_0000, 0x0000_0000_0032_0000: 0x0000_0000_0020_0000, 0x0000_0000_0033_0000: 0x0000_0000_0020_0000,
+ 0x0000_0000_0034_0000: 0x0000_0000_0020_0000, 0x0000_0000_0035_0000: 0x0000_0000_0020_0000, 0x0000_0000_0036_0000: 0x0000_0000_0020_0000, 0x0000_0000_0037_0000: 0x0000_0000_0020_0000,
+ 0x0000_0000_0038_0000: 0x0000_0000_0020_0000, 0x0000_0000_0039_0000: 0x0000_0000_0020_0000, 0x0000_0000_003A_0000: 0x0000_0000_0020_0000, 0x0000_0000_003B_0000: 0x0000_0000_0020_0000,
+ 0x0000_0000_003C_0000: 0x0000_0000_0020_0000, 0x0000_0000_003D_0000: 0x0000_0000_0020_0000, 0x0000_0000_003E_0000: 0x0000_0000_0020_0000, 0x0000_0000_003F_0000: 0x0000_0000_0020_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_007F_0000, 0x0000_0000_0001_0000: 0x0000_0000_007F_0000, 0x0000_0000_0002_0000: 0x0000_0000_007E_0000, 0x0000_0000_0003_0000: 0x0000_0000_007E_0000,
+ 0x0000_0000_0004_0000: 0x0000_0000_007C_0000, 0x0000_0000_0005_0000: 0x0000_0000_007C_0000, 0x0000_0000_0006_0000: 0x0000_0000_007C_0000, 0x0000_0000_0007_0000: 0x0000_0000_007C_0000,
+ 0x0000_0000_0008_0000: 0x0000_0000_0078_0000, 0x0000_0000_0009_0000: 0x0000_0000_0078_0000, 0x0000_0000_000A_0000: 0x0000_0000_0078_0000, 0x0000_0000_000B_0000: 0x0000_0000_0078_0000,
+ 0x0000_0000_000C_0000: 0x0000_0000_0078_0000, 0x0000_0000_000D_0000: 0x0000_0000_0078_0000, 0x0000_0000_000E_0000: 0x0000_0000_0078_0000, 0x0000_0000_000F_0000: 0x0000_0000_0078_0000,
+ 0x0000_0000_0010_0000: 0x0000_0000_0070_0000, 0x0000_0000_0011_0000: 0x0000_0000_0070_0000, 0x0000_0000_0012_0000: 0x0000_0000_0070_0000, 0x0000_0000_0013_0000: 0x0000_0000_0070_0000,
+ 0x0000_0000_0014_0000: 0x0000_0000_0070_0000, 0x0000_0000_0015_0000: 0x0000_0000_0070_0000, 0x0000_0000_0016_0000: 0x0000_0000_0070_0000, 0x0000_0000_0017_0000: 0x0000_0000_0070_0000,
+ 0x0000_0000_0018_0000: 0x0000_0000_0070_0000, 0x0000_0000_0019_0000: 0x0000_0000_0070_0000, 0x0000_0000_001A_0000: 0x0000_0000_0070_0000, 0x0000_0000_001B_0000: 0x0000_0000_0070_0000,
+ 0x0000_0000_001C_0000: 0x0000_0000_0070_0000, 0x0000_0000_001D_0000: 0x0000_0000_0070_0000, 0x0000_0000_001E_0000: 0x0000_0000_0070_0000, 0x0000_0000_001F_0000: 0x0000_0000_0070_0000,
+ 0x0000_0000_0020_0000: 0x0000_0000_0060_0000, 0x0000_0000_0021_0000: 0x0000_0000_0060_0000, 0x0000_0000_0022_0000: 0x0000_0000_0060_0000, 0x0000_0000_0023_0000: 0x0000_0000_0060_0000,
+ 0x0000_0000_0024_0000: 0x0000_0000_0060_0000, 0x0000_0000_0025_0000: 0x0000_0000_0060_0000, 0x0000_0000_0026_0000: 0x0000_0000_0060_0000, 0x0000_0000_0027_0000: 0x0000_0000_0060_0000,
+ 0x0000_0000_0028_0000: 0x0000_0000_0060_0000, 0x0000_0000_0029_0000: 0x0000_0000_0060_0000, 0x0000_0000_002A_0000: 0x0000_0000_0060_0000, 0x0000_0000_002B_0000: 0x0000_0000_0060_0000,
+ 0x0000_0000_002C_0000: 0x0000_0000_0060_0000, 0x0000_0000_002D_0000: 0x0000_0000_0060_0000, 0x0000_0000_002E_0000: 0x0000_0000_0060_0000, 0x0000_0000_002F_0000: 0x0000_0000_0060_0000,
+ 0x0000_0000_0030_0000: 0x0000_0000_0060_0000, 0x0000_0000_0031_0000: 0x0000_0000_0060_0000, 0x0000_0000_0032_0000: 0x0000_0000_0060_0000, 0x0000_0000_0033_0000: 0x0000_0000_0060_0000,
+ 0x0000_0000_0034_0000: 0x0000_0000_0060_0000, 0x0000_0000_0035_0000: 0x0000_0000_0060_0000, 0x0000_0000_0036_0000: 0x0000_0000_0060_0000, 0x0000_0000_0037_0000: 0x0000_0000_0060_0000,
+ 0x0000_0000_0038_0000: 0x0000_0000_0060_0000, 0x0000_0000_0039_0000: 0x0000_0000_0060_0000, 0x0000_0000_003A_0000: 0x0000_0000_0060_0000, 0x0000_0000_003B_0000: 0x0000_0000_0060_0000,
+ 0x0000_0000_003C_0000: 0x0000_0000_0060_0000, 0x0000_0000_003D_0000: 0x0000_0000_0060_0000, 0x0000_0000_003E_0000: 0x0000_0000_0060_0000, 0x0000_0000_003F_0000: 0x0000_0000_0060_0000,
+ 0x0000_0000_0040_0000: 0x0000_0000_0040_0000, 0x0000_0000_0041_0000: 0x0000_0000_0040_0000, 0x0000_0000_0042_0000: 0x0000_0000_0040_0000, 0x0000_0000_0043_0000: 0x0000_0000_0040_0000,
+ 0x0000_0000_0044_0000: 0x0000_0000_0040_0000, 0x0000_0000_0045_0000: 0x0000_0000_0040_0000, 0x0000_0000_0046_0000: 0x0000_0000_0040_0000, 0x0000_0000_0047_0000: 0x0000_0000_0040_0000,
+ 0x0000_0000_0048_0000: 0x0000_0000_0040_0000, 0x0000_0000_0049_0000: 0x0000_0000_0040_0000, 0x0000_0000_004A_0000: 0x0000_0000_0040_0000, 0x0000_0000_004B_0000: 0x0000_0000_0040_0000,
+ 0x0000_0000_004C_0000: 0x0000_0000_0040_0000, 0x0000_0000_004D_0000: 0x0000_0000_0040_0000, 0x0000_0000_004E_0000: 0x0000_0000_0040_0000, 0x0000_0000_004F_0000: 0x0000_0000_0040_0000,
+ 0x0000_0000_0050_0000: 0x0000_0000_0040_0000, 0x0000_0000_0051_0000: 0x0000_0000_0040_0000, 0x0000_0000_0052_0000: 0x0000_0000_0040_0000, 0x0000_0000_0053_0000: 0x0000_0000_0040_0000,
+ 0x0000_0000_0054_0000: 0x0000_0000_0040_0000, 0x0000_0000_0055_0000: 0x0000_0000_0040_0000, 0x0000_0000_0056_0000: 0x0000_0000_0040_0000, 0x0000_0000_0057_0000: 0x0000_0000_0040_0000,
+ 0x0000_0000_0058_0000: 0x0000_0000_0040_0000, 0x0000_0000_0059_0000: 0x0000_0000_0040_0000, 0x0000_0000_005A_0000: 0x0000_0000_0040_0000, 0x0000_0000_005B_0000: 0x0000_0000_0040_0000,
+ 0x0000_0000_005C_0000: 0x0000_0000_0040_0000, 0x0000_0000_005D_0000: 0x0000_0000_0040_0000, 0x0000_0000_005E_0000: 0x0000_0000_0040_0000, 0x0000_0000_005F_0000: 0x0000_0000_0040_0000,
+ 0x0000_0000_0060_0000: 0x0000_0000_0040_0000, 0x0000_0000_0061_0000: 0x0000_0000_0040_0000, 0x0000_0000_0062_0000: 0x0000_0000_0040_0000, 0x0000_0000_0063_0000: 0x0000_0000_0040_0000,
+ 0x0000_0000_0064_0000: 0x0000_0000_0040_0000, 0x0000_0000_0065_0000: 0x0000_0000_0040_0000, 0x0000_0000_0066_0000: 0x0000_0000_0040_0000, 0x0000_0000_0067_0000: 0x0000_0000_0040_0000,
+ 0x0000_0000_0068_0000: 0x0000_0000_0040_0000, 0x0000_0000_0069_0000: 0x0000_0000_0040_0000, 0x0000_0000_006A_0000: 0x0000_0000_0040_0000, 0x0000_0000_006B_0000: 0x0000_0000_0040_0000,
+ 0x0000_0000_006C_0000: 0x0000_0000_0040_0000, 0x0000_0000_006D_0000: 0x0000_0000_0040_0000, 0x0000_0000_006E_0000: 0x0000_0000_0040_0000, 0x0000_0000_006F_0000: 0x0000_0000_0040_0000,
+ 0x0000_0000_0070_0000: 0x0000_0000_0040_0000, 0x0000_0000_0071_0000: 0x0000_0000_0040_0000, 0x0000_0000_0072_0000: 0x0000_0000_0040_0000, 0x0000_0000_0073_0000: 0x0000_0000_0040_0000,
+ 0x0000_0000_0074_0000: 0x0000_0000_0040_0000, 0x0000_0000_0075_0000: 0x0000_0000_0040_0000, 0x0000_0000_0076_0000: 0x0000_0000_0040_0000, 0x0000_0000_0077_0000: 0x0000_0000_0040_0000,
+ 0x0000_0000_0078_0000: 0x0000_0000_0040_0000, 0x0000_0000_0079_0000: 0x0000_0000_0040_0000, 0x0000_0000_007A_0000: 0x0000_0000_0040_0000, 0x0000_0000_007B_0000: 0x0000_0000_0040_0000,
+ 0x0000_0000_007C_0000: 0x0000_0000_0040_0000, 0x0000_0000_007D_0000: 0x0000_0000_0040_0000, 0x0000_0000_007E_0000: 0x0000_0000_0040_0000, 0x0000_0000_007F_0000: 0x0000_0000_0040_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0100_0000, 0x0000_0000_0100_0000: 0x0000_0000_0100_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0300_0000, 0x0000_0000_0100_0000: 0x0000_0000_0300_0000, 0x0000_0000_0200_0000: 0x0000_0000_0200_0000, 0x0000_0000_0300_0000: 0x0000_0000_0200_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0700_0000, 0x0000_0000_0100_0000: 0x0000_0000_0700_0000, 0x0000_0000_0200_0000: 0x0000_0000_0600_0000, 0x0000_0000_0300_0000: 0x0000_0000_0600_0000,
+ 0x0000_0000_0400_0000: 0x0000_0000_0400_0000, 0x0000_0000_0500_0000: 0x0000_0000_0400_0000, 0x0000_0000_0600_0000: 0x0000_0000_0400_0000, 0x0000_0000_0700_0000: 0x0000_0000_0400_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0F00_0000, 0x0000_0000_0100_0000: 0x0000_0000_0F00_0000, 0x0000_0000_0200_0000: 0x0000_0000_0E00_0000, 0x0000_0000_0300_0000: 0x0000_0000_0E00_0000,
+ 0x0000_0000_0400_0000: 0x0000_0000_0C00_0000, 0x0000_0000_0500_0000: 0x0000_0000_0C00_0000, 0x0000_0000_0600_0000: 0x0000_0000_0C00_0000, 0x0000_0000_0700_0000: 0x0000_0000_0C00_0000,
+ 0x0000_0000_0800_0000: 0x0000_0000_0800_0000, 0x0000_0000_0900_0000: 0x0000_0000_0800_0000, 0x0000_0000_0A00_0000: 0x0000_0000_0800_0000, 0x0000_0000_0B00_0000: 0x0000_0000_0800_0000,
+ 0x0000_0000_0C00_0000: 0x0000_0000_0800_0000, 0x0000_0000_0D00_0000: 0x0000_0000_0800_0000, 0x0000_0000_0E00_0000: 0x0000_0000_0800_0000, 0x0000_0000_0F00_0000: 0x0000_0000_0800_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_1F00_0000, 0x0000_0000_0100_0000: 0x0000_0000_1F00_0000, 0x0000_0000_0200_0000: 0x0000_0000_1E00_0000, 0x0000_0000_0300_0000: 0x0000_0000_1E00_0000,
+ 0x0000_0000_0400_0000: 0x0000_0000_1C00_0000, 0x0000_0000_0500_0000: 0x0000_0000_1C00_0000, 0x0000_0000_0600_0000: 0x0000_0000_1C00_0000, 0x0000_0000_0700_0000: 0x0000_0000_1C00_0000,
+ 0x0000_0000_0800_0000: 0x0000_0000_1800_0000, 0x0000_0000_0900_0000: 0x0000_0000_1800_0000, 0x0000_0000_0A00_0000: 0x0000_0000_1800_0000, 0x0000_0000_0B00_0000: 0x0000_0000_1800_0000,
+ 0x0000_0000_0C00_0000: 0x0000_0000_1800_0000, 0x0000_0000_0D00_0000: 0x0000_0000_1800_0000, 0x0000_0000_0E00_0000: 0x0000_0000_1800_0000, 0x0000_0000_0F00_0000: 0x0000_0000_1800_0000,
+ 0x0000_0000_1000_0000: 0x0000_0000_1000_0000, 0x0000_0000_1100_0000: 0x0000_0000_1000_0000, 0x0000_0000_1200_0000: 0x0000_0000_1000_0000, 0x0000_0000_1300_0000: 0x0000_0000_1000_0000,
+ 0x0000_0000_1400_0000: 0x0000_0000_1000_0000, 0x0000_0000_1500_0000: 0x0000_0000_1000_0000, 0x0000_0000_1600_0000: 0x0000_0000_1000_0000, 0x0000_0000_1700_0000: 0x0000_0000_1000_0000,
+ 0x0000_0000_1800_0000: 0x0000_0000_1000_0000, 0x0000_0000_1900_0000: 0x0000_0000_1000_0000, 0x0000_0000_1A00_0000: 0x0000_0000_1000_0000, 0x0000_0000_1B00_0000: 0x0000_0000_1000_0000,
+ 0x0000_0000_1C00_0000: 0x0000_0000_1000_0000, 0x0000_0000_1D00_0000: 0x0000_0000_1000_0000, 0x0000_0000_1E00_0000: 0x0000_0000_1000_0000, 0x0000_0000_1F00_0000: 0x0000_0000_1000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_3F00_0000, 0x0000_0000_0100_0000: 0x0000_0000_3F00_0000, 0x0000_0000_0200_0000: 0x0000_0000_3E00_0000, 0x0000_0000_0300_0000: 0x0000_0000_3E00_0000,
+ 0x0000_0000_0400_0000: 0x0000_0000_3C00_0000, 0x0000_0000_0500_0000: 0x0000_0000_3C00_0000, 0x0000_0000_0600_0000: 0x0000_0000_3C00_0000, 0x0000_0000_0700_0000: 0x0000_0000_3C00_0000,
+ 0x0000_0000_0800_0000: 0x0000_0000_3800_0000, 0x0000_0000_0900_0000: 0x0000_0000_3800_0000, 0x0000_0000_0A00_0000: 0x0000_0000_3800_0000, 0x0000_0000_0B00_0000: 0x0000_0000_3800_0000,
+ 0x0000_0000_0C00_0000: 0x0000_0000_3800_0000, 0x0000_0000_0D00_0000: 0x0000_0000_3800_0000, 0x0000_0000_0E00_0000: 0x0000_0000_3800_0000, 0x0000_0000_0F00_0000: 0x0000_0000_3800_0000,
+ 0x0000_0000_1000_0000: 0x0000_0000_3000_0000, 0x0000_0000_1100_0000: 0x0000_0000_3000_0000, 0x0000_0000_1200_0000: 0x0000_0000_3000_0000, 0x0000_0000_1300_0000: 0x0000_0000_3000_0000,
+ 0x0000_0000_1400_0000: 0x0000_0000_3000_0000, 0x0000_0000_1500_0000: 0x0000_0000_3000_0000, 0x0000_0000_1600_0000: 0x0000_0000_3000_0000, 0x0000_0000_1700_0000: 0x0000_0000_3000_0000,
+ 0x0000_0000_1800_0000: 0x0000_0000_3000_0000, 0x0000_0000_1900_0000: 0x0000_0000_3000_0000, 0x0000_0000_1A00_0000: 0x0000_0000_3000_0000, 0x0000_0000_1B00_0000: 0x0000_0000_3000_0000,
+ 0x0000_0000_1C00_0000: 0x0000_0000_3000_0000, 0x0000_0000_1D00_0000: 0x0000_0000_3000_0000, 0x0000_0000_1E00_0000: 0x0000_0000_3000_0000, 0x0000_0000_1F00_0000: 0x0000_0000_3000_0000,
+ 0x0000_0000_2000_0000: 0x0000_0000_2000_0000, 0x0000_0000_2100_0000: 0x0000_0000_2000_0000, 0x0000_0000_2200_0000: 0x0000_0000_2000_0000, 0x0000_0000_2300_0000: 0x0000_0000_2000_0000,
+ 0x0000_0000_2400_0000: 0x0000_0000_2000_0000, 0x0000_0000_2500_0000: 0x0000_0000_2000_0000, 0x0000_0000_2600_0000: 0x0000_0000_2000_0000, 0x0000_0000_2700_0000: 0x0000_0000_2000_0000,
+ 0x0000_0000_2800_0000: 0x0000_0000_2000_0000, 0x0000_0000_2900_0000: 0x0000_0000_2000_0000, 0x0000_0000_2A00_0000: 0x0000_0000_2000_0000, 0x0000_0000_2B00_0000: 0x0000_0000_2000_0000,
+ 0x0000_0000_2C00_0000: 0x0000_0000_2000_0000, 0x0000_0000_2D00_0000: 0x0000_0000_2000_0000, 0x0000_0000_2E00_0000: 0x0000_0000_2000_0000, 0x0000_0000_2F00_0000: 0x0000_0000_2000_0000,
+ 0x0000_0000_3000_0000: 0x0000_0000_2000_0000, 0x0000_0000_3100_0000: 0x0000_0000_2000_0000, 0x0000_0000_3200_0000: 0x0000_0000_2000_0000, 0x0000_0000_3300_0000: 0x0000_0000_2000_0000,
+ 0x0000_0000_3400_0000: 0x0000_0000_2000_0000, 0x0000_0000_3500_0000: 0x0000_0000_2000_0000, 0x0000_0000_3600_0000: 0x0000_0000_2000_0000, 0x0000_0000_3700_0000: 0x0000_0000_2000_0000,
+ 0x0000_0000_3800_0000: 0x0000_0000_2000_0000, 0x0000_0000_3900_0000: 0x0000_0000_2000_0000, 0x0000_0000_3A00_0000: 0x0000_0000_2000_0000, 0x0000_0000_3B00_0000: 0x0000_0000_2000_0000,
+ 0x0000_0000_3C00_0000: 0x0000_0000_2000_0000, 0x0000_0000_3D00_0000: 0x0000_0000_2000_0000, 0x0000_0000_3E00_0000: 0x0000_0000_2000_0000, 0x0000_0000_3F00_0000: 0x0000_0000_2000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_7F00_0000, 0x0000_0000_0100_0000: 0x0000_0000_7F00_0000, 0x0000_0000_0200_0000: 0x0000_0000_7E00_0000, 0x0000_0000_0300_0000: 0x0000_0000_7E00_0000,
+ 0x0000_0000_0400_0000: 0x0000_0000_7C00_0000, 0x0000_0000_0500_0000: 0x0000_0000_7C00_0000, 0x0000_0000_0600_0000: 0x0000_0000_7C00_0000, 0x0000_0000_0700_0000: 0x0000_0000_7C00_0000,
+ 0x0000_0000_0800_0000: 0x0000_0000_7800_0000, 0x0000_0000_0900_0000: 0x0000_0000_7800_0000, 0x0000_0000_0A00_0000: 0x0000_0000_7800_0000, 0x0000_0000_0B00_0000: 0x0000_0000_7800_0000,
+ 0x0000_0000_0C00_0000: 0x0000_0000_7800_0000, 0x0000_0000_0D00_0000: 0x0000_0000_7800_0000, 0x0000_0000_0E00_0000: 0x0000_0000_7800_0000, 0x0000_0000_0F00_0000: 0x0000_0000_7800_0000,
+ 0x0000_0000_1000_0000: 0x0000_0000_7000_0000, 0x0000_0000_1100_0000: 0x0000_0000_7000_0000, 0x0000_0000_1200_0000: 0x0000_0000_7000_0000, 0x0000_0000_1300_0000: 0x0000_0000_7000_0000,
+ 0x0000_0000_1400_0000: 0x0000_0000_7000_0000, 0x0000_0000_1500_0000: 0x0000_0000_7000_0000, 0x0000_0000_1600_0000: 0x0000_0000_7000_0000, 0x0000_0000_1700_0000: 0x0000_0000_7000_0000,
+ 0x0000_0000_1800_0000: 0x0000_0000_7000_0000, 0x0000_0000_1900_0000: 0x0000_0000_7000_0000, 0x0000_0000_1A00_0000: 0x0000_0000_7000_0000, 0x0000_0000_1B00_0000: 0x0000_0000_7000_0000,
+ 0x0000_0000_1C00_0000: 0x0000_0000_7000_0000, 0x0000_0000_1D00_0000: 0x0000_0000_7000_0000, 0x0000_0000_1E00_0000: 0x0000_0000_7000_0000, 0x0000_0000_1F00_0000: 0x0000_0000_7000_0000,
+ 0x0000_0000_2000_0000: 0x0000_0000_6000_0000, 0x0000_0000_2100_0000: 0x0000_0000_6000_0000, 0x0000_0000_2200_0000: 0x0000_0000_6000_0000, 0x0000_0000_2300_0000: 0x0000_0000_6000_0000,
+ 0x0000_0000_2400_0000: 0x0000_0000_6000_0000, 0x0000_0000_2500_0000: 0x0000_0000_6000_0000, 0x0000_0000_2600_0000: 0x0000_0000_6000_0000, 0x0000_0000_2700_0000: 0x0000_0000_6000_0000,
+ 0x0000_0000_2800_0000: 0x0000_0000_6000_0000, 0x0000_0000_2900_0000: 0x0000_0000_6000_0000, 0x0000_0000_2A00_0000: 0x0000_0000_6000_0000, 0x0000_0000_2B00_0000: 0x0000_0000_6000_0000,
+ 0x0000_0000_2C00_0000: 0x0000_0000_6000_0000, 0x0000_0000_2D00_0000: 0x0000_0000_6000_0000, 0x0000_0000_2E00_0000: 0x0000_0000_6000_0000, 0x0000_0000_2F00_0000: 0x0000_0000_6000_0000,
+ 0x0000_0000_3000_0000: 0x0000_0000_6000_0000, 0x0000_0000_3100_0000: 0x0000_0000_6000_0000, 0x0000_0000_3200_0000: 0x0000_0000_6000_0000, 0x0000_0000_3300_0000: 0x0000_0000_6000_0000,
+ 0x0000_0000_3400_0000: 0x0000_0000_6000_0000, 0x0000_0000_3500_0000: 0x0000_0000_6000_0000, 0x0000_0000_3600_0000: 0x0000_0000_6000_0000, 0x0000_0000_3700_0000: 0x0000_0000_6000_0000,
+ 0x0000_0000_3800_0000: 0x0000_0000_6000_0000, 0x0000_0000_3900_0000: 0x0000_0000_6000_0000, 0x0000_0000_3A00_0000: 0x0000_0000_6000_0000, 0x0000_0000_3B00_0000: 0x0000_0000_6000_0000,
+ 0x0000_0000_3C00_0000: 0x0000_0000_6000_0000, 0x0000_0000_3D00_0000: 0x0000_0000_6000_0000, 0x0000_0000_3E00_0000: 0x0000_0000_6000_0000, 0x0000_0000_3F00_0000: 0x0000_0000_6000_0000,
+ 0x0000_0000_4000_0000: 0x0000_0000_4000_0000, 0x0000_0000_4100_0000: 0x0000_0000_4000_0000, 0x0000_0000_4200_0000: 0x0000_0000_4000_0000, 0x0000_0000_4300_0000: 0x0000_0000_4000_0000,
+ 0x0000_0000_4400_0000: 0x0000_0000_4000_0000, 0x0000_0000_4500_0000: 0x0000_0000_4000_0000, 0x0000_0000_4600_0000: 0x0000_0000_4000_0000, 0x0000_0000_4700_0000: 0x0000_0000_4000_0000,
+ 0x0000_0000_4800_0000: 0x0000_0000_4000_0000, 0x0000_0000_4900_0000: 0x0000_0000_4000_0000, 0x0000_0000_4A00_0000: 0x0000_0000_4000_0000, 0x0000_0000_4B00_0000: 0x0000_0000_4000_0000,
+ 0x0000_0000_4C00_0000: 0x0000_0000_4000_0000, 0x0000_0000_4D00_0000: 0x0000_0000_4000_0000, 0x0000_0000_4E00_0000: 0x0000_0000_4000_0000, 0x0000_0000_4F00_0000: 0x0000_0000_4000_0000,
+ 0x0000_0000_5000_0000: 0x0000_0000_4000_0000, 0x0000_0000_5100_0000: 0x0000_0000_4000_0000, 0x0000_0000_5200_0000: 0x0000_0000_4000_0000, 0x0000_0000_5300_0000: 0x0000_0000_4000_0000,
+ 0x0000_0000_5400_0000: 0x0000_0000_4000_0000, 0x0000_0000_5500_0000: 0x0000_0000_4000_0000, 0x0000_0000_5600_0000: 0x0000_0000_4000_0000, 0x0000_0000_5700_0000: 0x0000_0000_4000_0000,
+ 0x0000_0000_5800_0000: 0x0000_0000_4000_0000, 0x0000_0000_5900_0000: 0x0000_0000_4000_0000, 0x0000_0000_5A00_0000: 0x0000_0000_4000_0000, 0x0000_0000_5B00_0000: 0x0000_0000_4000_0000,
+ 0x0000_0000_5C00_0000: 0x0000_0000_4000_0000, 0x0000_0000_5D00_0000: 0x0000_0000_4000_0000, 0x0000_0000_5E00_0000: 0x0000_0000_4000_0000, 0x0000_0000_5F00_0000: 0x0000_0000_4000_0000,
+ 0x0000_0000_6000_0000: 0x0000_0000_4000_0000, 0x0000_0000_6100_0000: 0x0000_0000_4000_0000, 0x0000_0000_6200_0000: 0x0000_0000_4000_0000, 0x0000_0000_6300_0000: 0x0000_0000_4000_0000,
+ 0x0000_0000_6400_0000: 0x0000_0000_4000_0000, 0x0000_0000_6500_0000: 0x0000_0000_4000_0000, 0x0000_0000_6600_0000: 0x0000_0000_4000_0000, 0x0000_0000_6700_0000: 0x0000_0000_4000_0000,
+ 0x0000_0000_6800_0000: 0x0000_0000_4000_0000, 0x0000_0000_6900_0000: 0x0000_0000_4000_0000, 0x0000_0000_6A00_0000: 0x0000_0000_4000_0000, 0x0000_0000_6B00_0000: 0x0000_0000_4000_0000,
+ 0x0000_0000_6C00_0000: 0x0000_0000_4000_0000, 0x0000_0000_6D00_0000: 0x0000_0000_4000_0000, 0x0000_0000_6E00_0000: 0x0000_0000_4000_0000, 0x0000_0000_6F00_0000: 0x0000_0000_4000_0000,
+ 0x0000_0000_7000_0000: 0x0000_0000_4000_0000, 0x0000_0000_7100_0000: 0x0000_0000_4000_0000, 0x0000_0000_7200_0000: 0x0000_0000_4000_0000, 0x0000_0000_7300_0000: 0x0000_0000_4000_0000,
+ 0x0000_0000_7400_0000: 0x0000_0000_4000_0000, 0x0000_0000_7500_0000: 0x0000_0000_4000_0000, 0x0000_0000_7600_0000: 0x0000_0000_4000_0000, 0x0000_0000_7700_0000: 0x0000_0000_4000_0000,
+ 0x0000_0000_7800_0000: 0x0000_0000_4000_0000, 0x0000_0000_7900_0000: 0x0000_0000_4000_0000, 0x0000_0000_7A00_0000: 0x0000_0000_4000_0000, 0x0000_0000_7B00_0000: 0x0000_0000_4000_0000,
+ 0x0000_0000_7C00_0000: 0x0000_0000_4000_0000, 0x0000_0000_7D00_0000: 0x0000_0000_4000_0000, 0x0000_0000_7E00_0000: 0x0000_0000_4000_0000, 0x0000_0000_7F00_0000: 0x0000_0000_4000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0001_0000_0000, 0x0000_0001_0000_0000: 0x0000_0001_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0003_0000_0000, 0x0000_0001_0000_0000: 0x0000_0003_0000_0000, 0x0000_0002_0000_0000: 0x0000_0002_0000_0000, 0x0000_0003_0000_0000: 0x0000_0002_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0007_0000_0000, 0x0000_0001_0000_0000: 0x0000_0007_0000_0000, 0x0000_0002_0000_0000: 0x0000_0006_0000_0000, 0x0000_0003_0000_0000: 0x0000_0006_0000_0000,
+ 0x0000_0004_0000_0000: 0x0000_0004_0000_0000, 0x0000_0005_0000_0000: 0x0000_0004_0000_0000, 0x0000_0006_0000_0000: 0x0000_0004_0000_0000, 0x0000_0007_0000_0000: 0x0000_0004_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_000F_0000_0000, 0x0000_0001_0000_0000: 0x0000_000F_0000_0000, 0x0000_0002_0000_0000: 0x0000_000E_0000_0000, 0x0000_0003_0000_0000: 0x0000_000E_0000_0000,
+ 0x0000_0004_0000_0000: 0x0000_000C_0000_0000, 0x0000_0005_0000_0000: 0x0000_000C_0000_0000, 0x0000_0006_0000_0000: 0x0000_000C_0000_0000, 0x0000_0007_0000_0000: 0x0000_000C_0000_0000,
+ 0x0000_0008_0000_0000: 0x0000_0008_0000_0000, 0x0000_0009_0000_0000: 0x0000_0008_0000_0000, 0x0000_000A_0000_0000: 0x0000_0008_0000_0000, 0x0000_000B_0000_0000: 0x0000_0008_0000_0000,
+ 0x0000_000C_0000_0000: 0x0000_0008_0000_0000, 0x0000_000D_0000_0000: 0x0000_0008_0000_0000, 0x0000_000E_0000_0000: 0x0000_0008_0000_0000, 0x0000_000F_0000_0000: 0x0000_0008_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_001F_0000_0000, 0x0000_0001_0000_0000: 0x0000_001F_0000_0000, 0x0000_0002_0000_0000: 0x0000_001E_0000_0000, 0x0000_0003_0000_0000: 0x0000_001E_0000_0000,
+ 0x0000_0004_0000_0000: 0x0000_001C_0000_0000, 0x0000_0005_0000_0000: 0x0000_001C_0000_0000, 0x0000_0006_0000_0000: 0x0000_001C_0000_0000, 0x0000_0007_0000_0000: 0x0000_001C_0000_0000,
+ 0x0000_0008_0000_0000: 0x0000_0018_0000_0000, 0x0000_0009_0000_0000: 0x0000_0018_0000_0000, 0x0000_000A_0000_0000: 0x0000_0018_0000_0000, 0x0000_000B_0000_0000: 0x0000_0018_0000_0000,
+ 0x0000_000C_0000_0000: 0x0000_0018_0000_0000, 0x0000_000D_0000_0000: 0x0000_0018_0000_0000, 0x0000_000E_0000_0000: 0x0000_0018_0000_0000, 0x0000_000F_0000_0000: 0x0000_0018_0000_0000,
+ 0x0000_0010_0000_0000: 0x0000_0010_0000_0000, 0x0000_0011_0000_0000: 0x0000_0010_0000_0000, 0x0000_0012_0000_0000: 0x0000_0010_0000_0000, 0x0000_0013_0000_0000: 0x0000_0010_0000_0000,
+ 0x0000_0014_0000_0000: 0x0000_0010_0000_0000, 0x0000_0015_0000_0000: 0x0000_0010_0000_0000, 0x0000_0016_0000_0000: 0x0000_0010_0000_0000, 0x0000_0017_0000_0000: 0x0000_0010_0000_0000,
+ 0x0000_0018_0000_0000: 0x0000_0010_0000_0000, 0x0000_0019_0000_0000: 0x0000_0010_0000_0000, 0x0000_001A_0000_0000: 0x0000_0010_0000_0000, 0x0000_001B_0000_0000: 0x0000_0010_0000_0000,
+ 0x0000_001C_0000_0000: 0x0000_0010_0000_0000, 0x0000_001D_0000_0000: 0x0000_0010_0000_0000, 0x0000_001E_0000_0000: 0x0000_0010_0000_0000, 0x0000_001F_0000_0000: 0x0000_0010_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_003F_0000_0000, 0x0000_0001_0000_0000: 0x0000_003F_0000_0000, 0x0000_0002_0000_0000: 0x0000_003E_0000_0000, 0x0000_0003_0000_0000: 0x0000_003E_0000_0000,
+ 0x0000_0004_0000_0000: 0x0000_003C_0000_0000, 0x0000_0005_0000_0000: 0x0000_003C_0000_0000, 0x0000_0006_0000_0000: 0x0000_003C_0000_0000, 0x0000_0007_0000_0000: 0x0000_003C_0000_0000,
+ 0x0000_0008_0000_0000: 0x0000_0038_0000_0000, 0x0000_0009_0000_0000: 0x0000_0038_0000_0000, 0x0000_000A_0000_0000: 0x0000_0038_0000_0000, 0x0000_000B_0000_0000: 0x0000_0038_0000_0000,
+ 0x0000_000C_0000_0000: 0x0000_0038_0000_0000, 0x0000_000D_0000_0000: 0x0000_0038_0000_0000, 0x0000_000E_0000_0000: 0x0000_0038_0000_0000, 0x0000_000F_0000_0000: 0x0000_0038_0000_0000,
+ 0x0000_0010_0000_0000: 0x0000_0030_0000_0000, 0x0000_0011_0000_0000: 0x0000_0030_0000_0000, 0x0000_0012_0000_0000: 0x0000_0030_0000_0000, 0x0000_0013_0000_0000: 0x0000_0030_0000_0000,
+ 0x0000_0014_0000_0000: 0x0000_0030_0000_0000, 0x0000_0015_0000_0000: 0x0000_0030_0000_0000, 0x0000_0016_0000_0000: 0x0000_0030_0000_0000, 0x0000_0017_0000_0000: 0x0000_0030_0000_0000,
+ 0x0000_0018_0000_0000: 0x0000_0030_0000_0000, 0x0000_0019_0000_0000: 0x0000_0030_0000_0000, 0x0000_001A_0000_0000: 0x0000_0030_0000_0000, 0x0000_001B_0000_0000: 0x0000_0030_0000_0000,
+ 0x0000_001C_0000_0000: 0x0000_0030_0000_0000, 0x0000_001D_0000_0000: 0x0000_0030_0000_0000, 0x0000_001E_0000_0000: 0x0000_0030_0000_0000, 0x0000_001F_0000_0000: 0x0000_0030_0000_0000,
+ 0x0000_0020_0000_0000: 0x0000_0020_0000_0000, 0x0000_0021_0000_0000: 0x0000_0020_0000_0000, 0x0000_0022_0000_0000: 0x0000_0020_0000_0000, 0x0000_0023_0000_0000: 0x0000_0020_0000_0000,
+ 0x0000_0024_0000_0000: 0x0000_0020_0000_0000, 0x0000_0025_0000_0000: 0x0000_0020_0000_0000, 0x0000_0026_0000_0000: 0x0000_0020_0000_0000, 0x0000_0027_0000_0000: 0x0000_0020_0000_0000,
+ 0x0000_0028_0000_0000: 0x0000_0020_0000_0000, 0x0000_0029_0000_0000: 0x0000_0020_0000_0000, 0x0000_002A_0000_0000: 0x0000_0020_0000_0000, 0x0000_002B_0000_0000: 0x0000_0020_0000_0000,
+ 0x0000_002C_0000_0000: 0x0000_0020_0000_0000, 0x0000_002D_0000_0000: 0x0000_0020_0000_0000, 0x0000_002E_0000_0000: 0x0000_0020_0000_0000, 0x0000_002F_0000_0000: 0x0000_0020_0000_0000,
+ 0x0000_0030_0000_0000: 0x0000_0020_0000_0000, 0x0000_0031_0000_0000: 0x0000_0020_0000_0000, 0x0000_0032_0000_0000: 0x0000_0020_0000_0000, 0x0000_0033_0000_0000: 0x0000_0020_0000_0000,
+ 0x0000_0034_0000_0000: 0x0000_0020_0000_0000, 0x0000_0035_0000_0000: 0x0000_0020_0000_0000, 0x0000_0036_0000_0000: 0x0000_0020_0000_0000, 0x0000_0037_0000_0000: 0x0000_0020_0000_0000,
+ 0x0000_0038_0000_0000: 0x0000_0020_0000_0000, 0x0000_0039_0000_0000: 0x0000_0020_0000_0000, 0x0000_003A_0000_0000: 0x0000_0020_0000_0000, 0x0000_003B_0000_0000: 0x0000_0020_0000_0000,
+ 0x0000_003C_0000_0000: 0x0000_0020_0000_0000, 0x0000_003D_0000_0000: 0x0000_0020_0000_0000, 0x0000_003E_0000_0000: 0x0000_0020_0000_0000, 0x0000_003F_0000_0000: 0x0000_0020_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_007F_0000_0000, 0x0000_0001_0000_0000: 0x0000_007F_0000_0000, 0x0000_0002_0000_0000: 0x0000_007E_0000_0000, 0x0000_0003_0000_0000: 0x0000_007E_0000_0000,
+ 0x0000_0004_0000_0000: 0x0000_007C_0000_0000, 0x0000_0005_0000_0000: 0x0000_007C_0000_0000, 0x0000_0006_0000_0000: 0x0000_007C_0000_0000, 0x0000_0007_0000_0000: 0x0000_007C_0000_0000,
+ 0x0000_0008_0000_0000: 0x0000_0078_0000_0000, 0x0000_0009_0000_0000: 0x0000_0078_0000_0000, 0x0000_000A_0000_0000: 0x0000_0078_0000_0000, 0x0000_000B_0000_0000: 0x0000_0078_0000_0000,
+ 0x0000_000C_0000_0000: 0x0000_0078_0000_0000, 0x0000_000D_0000_0000: 0x0000_0078_0000_0000, 0x0000_000E_0000_0000: 0x0000_0078_0000_0000, 0x0000_000F_0000_0000: 0x0000_0078_0000_0000,
+ 0x0000_0010_0000_0000: 0x0000_0070_0000_0000, 0x0000_0011_0000_0000: 0x0000_0070_0000_0000, 0x0000_0012_0000_0000: 0x0000_0070_0000_0000, 0x0000_0013_0000_0000: 0x0000_0070_0000_0000,
+ 0x0000_0014_0000_0000: 0x0000_0070_0000_0000, 0x0000_0015_0000_0000: 0x0000_0070_0000_0000, 0x0000_0016_0000_0000: 0x0000_0070_0000_0000, 0x0000_0017_0000_0000: 0x0000_0070_0000_0000,
+ 0x0000_0018_0000_0000: 0x0000_0070_0000_0000, 0x0000_0019_0000_0000: 0x0000_0070_0000_0000, 0x0000_001A_0000_0000: 0x0000_0070_0000_0000, 0x0000_001B_0000_0000: 0x0000_0070_0000_0000,
+ 0x0000_001C_0000_0000: 0x0000_0070_0000_0000, 0x0000_001D_0000_0000: 0x0000_0070_0000_0000, 0x0000_001E_0000_0000: 0x0000_0070_0000_0000, 0x0000_001F_0000_0000: 0x0000_0070_0000_0000,
+ 0x0000_0020_0000_0000: 0x0000_0060_0000_0000, 0x0000_0021_0000_0000: 0x0000_0060_0000_0000, 0x0000_0022_0000_0000: 0x0000_0060_0000_0000, 0x0000_0023_0000_0000: 0x0000_0060_0000_0000,
+ 0x0000_0024_0000_0000: 0x0000_0060_0000_0000, 0x0000_0025_0000_0000: 0x0000_0060_0000_0000, 0x0000_0026_0000_0000: 0x0000_0060_0000_0000, 0x0000_0027_0000_0000: 0x0000_0060_0000_0000,
+ 0x0000_0028_0000_0000: 0x0000_0060_0000_0000, 0x0000_0029_0000_0000: 0x0000_0060_0000_0000, 0x0000_002A_0000_0000: 0x0000_0060_0000_0000, 0x0000_002B_0000_0000: 0x0000_0060_0000_0000,
+ 0x0000_002C_0000_0000: 0x0000_0060_0000_0000, 0x0000_002D_0000_0000: 0x0000_0060_0000_0000, 0x0000_002E_0000_0000: 0x0000_0060_0000_0000, 0x0000_002F_0000_0000: 0x0000_0060_0000_0000,
+ 0x0000_0030_0000_0000: 0x0000_0060_0000_0000, 0x0000_0031_0000_0000: 0x0000_0060_0000_0000, 0x0000_0032_0000_0000: 0x0000_0060_0000_0000, 0x0000_0033_0000_0000: 0x0000_0060_0000_0000,
+ 0x0000_0034_0000_0000: 0x0000_0060_0000_0000, 0x0000_0035_0000_0000: 0x0000_0060_0000_0000, 0x0000_0036_0000_0000: 0x0000_0060_0000_0000, 0x0000_0037_0000_0000: 0x0000_0060_0000_0000,
+ 0x0000_0038_0000_0000: 0x0000_0060_0000_0000, 0x0000_0039_0000_0000: 0x0000_0060_0000_0000, 0x0000_003A_0000_0000: 0x0000_0060_0000_0000, 0x0000_003B_0000_0000: 0x0000_0060_0000_0000,
+ 0x0000_003C_0000_0000: 0x0000_0060_0000_0000, 0x0000_003D_0000_0000: 0x0000_0060_0000_0000, 0x0000_003E_0000_0000: 0x0000_0060_0000_0000, 0x0000_003F_0000_0000: 0x0000_0060_0000_0000,
+ 0x0000_0040_0000_0000: 0x0000_0040_0000_0000, 0x0000_0041_0000_0000: 0x0000_0040_0000_0000, 0x0000_0042_0000_0000: 0x0000_0040_0000_0000, 0x0000_0043_0000_0000: 0x0000_0040_0000_0000,
+ 0x0000_0044_0000_0000: 0x0000_0040_0000_0000, 0x0000_0045_0000_0000: 0x0000_0040_0000_0000, 0x0000_0046_0000_0000: 0x0000_0040_0000_0000, 0x0000_0047_0000_0000: 0x0000_0040_0000_0000,
+ 0x0000_0048_0000_0000: 0x0000_0040_0000_0000, 0x0000_0049_0000_0000: 0x0000_0040_0000_0000, 0x0000_004A_0000_0000: 0x0000_0040_0000_0000, 0x0000_004B_0000_0000: 0x0000_0040_0000_0000,
+ 0x0000_004C_0000_0000: 0x0000_0040_0000_0000, 0x0000_004D_0000_0000: 0x0000_0040_0000_0000, 0x0000_004E_0000_0000: 0x0000_0040_0000_0000, 0x0000_004F_0000_0000: 0x0000_0040_0000_0000,
+ 0x0000_0050_0000_0000: 0x0000_0040_0000_0000, 0x0000_0051_0000_0000: 0x0000_0040_0000_0000, 0x0000_0052_0000_0000: 0x0000_0040_0000_0000, 0x0000_0053_0000_0000: 0x0000_0040_0000_0000,
+ 0x0000_0054_0000_0000: 0x0000_0040_0000_0000, 0x0000_0055_0000_0000: 0x0000_0040_0000_0000, 0x0000_0056_0000_0000: 0x0000_0040_0000_0000, 0x0000_0057_0000_0000: 0x0000_0040_0000_0000,
+ 0x0000_0058_0000_0000: 0x0000_0040_0000_0000, 0x0000_0059_0000_0000: 0x0000_0040_0000_0000, 0x0000_005A_0000_0000: 0x0000_0040_0000_0000, 0x0000_005B_0000_0000: 0x0000_0040_0000_0000,
+ 0x0000_005C_0000_0000: 0x0000_0040_0000_0000, 0x0000_005D_0000_0000: 0x0000_0040_0000_0000, 0x0000_005E_0000_0000: 0x0000_0040_0000_0000, 0x0000_005F_0000_0000: 0x0000_0040_0000_0000,
+ 0x0000_0060_0000_0000: 0x0000_0040_0000_0000, 0x0000_0061_0000_0000: 0x0000_0040_0000_0000, 0x0000_0062_0000_0000: 0x0000_0040_0000_0000, 0x0000_0063_0000_0000: 0x0000_0040_0000_0000,
+ 0x0000_0064_0000_0000: 0x0000_0040_0000_0000, 0x0000_0065_0000_0000: 0x0000_0040_0000_0000, 0x0000_0066_0000_0000: 0x0000_0040_0000_0000, 0x0000_0067_0000_0000: 0x0000_0040_0000_0000,
+ 0x0000_0068_0000_0000: 0x0000_0040_0000_0000, 0x0000_0069_0000_0000: 0x0000_0040_0000_0000, 0x0000_006A_0000_0000: 0x0000_0040_0000_0000, 0x0000_006B_0000_0000: 0x0000_0040_0000_0000,
+ 0x0000_006C_0000_0000: 0x0000_0040_0000_0000, 0x0000_006D_0000_0000: 0x0000_0040_0000_0000, 0x0000_006E_0000_0000: 0x0000_0040_0000_0000, 0x0000_006F_0000_0000: 0x0000_0040_0000_0000,
+ 0x0000_0070_0000_0000: 0x0000_0040_0000_0000, 0x0000_0071_0000_0000: 0x0000_0040_0000_0000, 0x0000_0072_0000_0000: 0x0000_0040_0000_0000, 0x0000_0073_0000_0000: 0x0000_0040_0000_0000,
+ 0x0000_0074_0000_0000: 0x0000_0040_0000_0000, 0x0000_0075_0000_0000: 0x0000_0040_0000_0000, 0x0000_0076_0000_0000: 0x0000_0040_0000_0000, 0x0000_0077_0000_0000: 0x0000_0040_0000_0000,
+ 0x0000_0078_0000_0000: 0x0000_0040_0000_0000, 0x0000_0079_0000_0000: 0x0000_0040_0000_0000, 0x0000_007A_0000_0000: 0x0000_0040_0000_0000, 0x0000_007B_0000_0000: 0x0000_0040_0000_0000,
+ 0x0000_007C_0000_0000: 0x0000_0040_0000_0000, 0x0000_007D_0000_0000: 0x0000_0040_0000_0000, 0x0000_007E_0000_0000: 0x0000_0040_0000_0000, 0x0000_007F_0000_0000: 0x0000_0040_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0100_0000_0000, 0x0000_0100_0000_0000: 0x0000_0100_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0300_0000_0000, 0x0000_0100_0000_0000: 0x0000_0300_0000_0000, 0x0000_0200_0000_0000: 0x0000_0200_0000_0000, 0x0000_0300_0000_0000: 0x0000_0200_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0700_0000_0000, 0x0000_0100_0000_0000: 0x0000_0700_0000_0000, 0x0000_0200_0000_0000: 0x0000_0600_0000_0000, 0x0000_0300_0000_0000: 0x0000_0600_0000_0000,
+ 0x0000_0400_0000_0000: 0x0000_0400_0000_0000, 0x0000_0500_0000_0000: 0x0000_0400_0000_0000, 0x0000_0600_0000_0000: 0x0000_0400_0000_0000, 0x0000_0700_0000_0000: 0x0000_0400_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0F00_0000_0000, 0x0000_0100_0000_0000: 0x0000_0F00_0000_0000, 0x0000_0200_0000_0000: 0x0000_0E00_0000_0000, 0x0000_0300_0000_0000: 0x0000_0E00_0000_0000,
+ 0x0000_0400_0000_0000: 0x0000_0C00_0000_0000, 0x0000_0500_0000_0000: 0x0000_0C00_0000_0000, 0x0000_0600_0000_0000: 0x0000_0C00_0000_0000, 0x0000_0700_0000_0000: 0x0000_0C00_0000_0000,
+ 0x0000_0800_0000_0000: 0x0000_0800_0000_0000, 0x0000_0900_0000_0000: 0x0000_0800_0000_0000, 0x0000_0A00_0000_0000: 0x0000_0800_0000_0000, 0x0000_0B00_0000_0000: 0x0000_0800_0000_0000,
+ 0x0000_0C00_0000_0000: 0x0000_0800_0000_0000, 0x0000_0D00_0000_0000: 0x0000_0800_0000_0000, 0x0000_0E00_0000_0000: 0x0000_0800_0000_0000, 0x0000_0F00_0000_0000: 0x0000_0800_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_1F00_0000_0000, 0x0000_0100_0000_0000: 0x0000_1F00_0000_0000, 0x0000_0200_0000_0000: 0x0000_1E00_0000_0000, 0x0000_0300_0000_0000: 0x0000_1E00_0000_0000,
+ 0x0000_0400_0000_0000: 0x0000_1C00_0000_0000, 0x0000_0500_0000_0000: 0x0000_1C00_0000_0000, 0x0000_0600_0000_0000: 0x0000_1C00_0000_0000, 0x0000_0700_0000_0000: 0x0000_1C00_0000_0000,
+ 0x0000_0800_0000_0000: 0x0000_1800_0000_0000, 0x0000_0900_0000_0000: 0x0000_1800_0000_0000, 0x0000_0A00_0000_0000: 0x0000_1800_0000_0000, 0x0000_0B00_0000_0000: 0x0000_1800_0000_0000,
+ 0x0000_0C00_0000_0000: 0x0000_1800_0000_0000, 0x0000_0D00_0000_0000: 0x0000_1800_0000_0000, 0x0000_0E00_0000_0000: 0x0000_1800_0000_0000, 0x0000_0F00_0000_0000: 0x0000_1800_0000_0000,
+ 0x0000_1000_0000_0000: 0x0000_1000_0000_0000, 0x0000_1100_0000_0000: 0x0000_1000_0000_0000, 0x0000_1200_0000_0000: 0x0000_1000_0000_0000, 0x0000_1300_0000_0000: 0x0000_1000_0000_0000,
+ 0x0000_1400_0000_0000: 0x0000_1000_0000_0000, 0x0000_1500_0000_0000: 0x0000_1000_0000_0000, 0x0000_1600_0000_0000: 0x0000_1000_0000_0000, 0x0000_1700_0000_0000: 0x0000_1000_0000_0000,
+ 0x0000_1800_0000_0000: 0x0000_1000_0000_0000, 0x0000_1900_0000_0000: 0x0000_1000_0000_0000, 0x0000_1A00_0000_0000: 0x0000_1000_0000_0000, 0x0000_1B00_0000_0000: 0x0000_1000_0000_0000,
+ 0x0000_1C00_0000_0000: 0x0000_1000_0000_0000, 0x0000_1D00_0000_0000: 0x0000_1000_0000_0000, 0x0000_1E00_0000_0000: 0x0000_1000_0000_0000, 0x0000_1F00_0000_0000: 0x0000_1000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_3F00_0000_0000, 0x0000_0100_0000_0000: 0x0000_3F00_0000_0000, 0x0000_0200_0000_0000: 0x0000_3E00_0000_0000, 0x0000_0300_0000_0000: 0x0000_3E00_0000_0000,
+ 0x0000_0400_0000_0000: 0x0000_3C00_0000_0000, 0x0000_0500_0000_0000: 0x0000_3C00_0000_0000, 0x0000_0600_0000_0000: 0x0000_3C00_0000_0000, 0x0000_0700_0000_0000: 0x0000_3C00_0000_0000,
+ 0x0000_0800_0000_0000: 0x0000_3800_0000_0000, 0x0000_0900_0000_0000: 0x0000_3800_0000_0000, 0x0000_0A00_0000_0000: 0x0000_3800_0000_0000, 0x0000_0B00_0000_0000: 0x0000_3800_0000_0000,
+ 0x0000_0C00_0000_0000: 0x0000_3800_0000_0000, 0x0000_0D00_0000_0000: 0x0000_3800_0000_0000, 0x0000_0E00_0000_0000: 0x0000_3800_0000_0000, 0x0000_0F00_0000_0000: 0x0000_3800_0000_0000,
+ 0x0000_1000_0000_0000: 0x0000_3000_0000_0000, 0x0000_1100_0000_0000: 0x0000_3000_0000_0000, 0x0000_1200_0000_0000: 0x0000_3000_0000_0000, 0x0000_1300_0000_0000: 0x0000_3000_0000_0000,
+ 0x0000_1400_0000_0000: 0x0000_3000_0000_0000, 0x0000_1500_0000_0000: 0x0000_3000_0000_0000, 0x0000_1600_0000_0000: 0x0000_3000_0000_0000, 0x0000_1700_0000_0000: 0x0000_3000_0000_0000,
+ 0x0000_1800_0000_0000: 0x0000_3000_0000_0000, 0x0000_1900_0000_0000: 0x0000_3000_0000_0000, 0x0000_1A00_0000_0000: 0x0000_3000_0000_0000, 0x0000_1B00_0000_0000: 0x0000_3000_0000_0000,
+ 0x0000_1C00_0000_0000: 0x0000_3000_0000_0000, 0x0000_1D00_0000_0000: 0x0000_3000_0000_0000, 0x0000_1E00_0000_0000: 0x0000_3000_0000_0000, 0x0000_1F00_0000_0000: 0x0000_3000_0000_0000,
+ 0x0000_2000_0000_0000: 0x0000_2000_0000_0000, 0x0000_2100_0000_0000: 0x0000_2000_0000_0000, 0x0000_2200_0000_0000: 0x0000_2000_0000_0000, 0x0000_2300_0000_0000: 0x0000_2000_0000_0000,
+ 0x0000_2400_0000_0000: 0x0000_2000_0000_0000, 0x0000_2500_0000_0000: 0x0000_2000_0000_0000, 0x0000_2600_0000_0000: 0x0000_2000_0000_0000, 0x0000_2700_0000_0000: 0x0000_2000_0000_0000,
+ 0x0000_2800_0000_0000: 0x0000_2000_0000_0000, 0x0000_2900_0000_0000: 0x0000_2000_0000_0000, 0x0000_2A00_0000_0000: 0x0000_2000_0000_0000, 0x0000_2B00_0000_0000: 0x0000_2000_0000_0000,
+ 0x0000_2C00_0000_0000: 0x0000_2000_0000_0000, 0x0000_2D00_0000_0000: 0x0000_2000_0000_0000, 0x0000_2E00_0000_0000: 0x0000_2000_0000_0000, 0x0000_2F00_0000_0000: 0x0000_2000_0000_0000,
+ 0x0000_3000_0000_0000: 0x0000_2000_0000_0000, 0x0000_3100_0000_0000: 0x0000_2000_0000_0000, 0x0000_3200_0000_0000: 0x0000_2000_0000_0000, 0x0000_3300_0000_0000: 0x0000_2000_0000_0000,
+ 0x0000_3400_0000_0000: 0x0000_2000_0000_0000, 0x0000_3500_0000_0000: 0x0000_2000_0000_0000, 0x0000_3600_0000_0000: 0x0000_2000_0000_0000, 0x0000_3700_0000_0000: 0x0000_2000_0000_0000,
+ 0x0000_3800_0000_0000: 0x0000_2000_0000_0000, 0x0000_3900_0000_0000: 0x0000_2000_0000_0000, 0x0000_3A00_0000_0000: 0x0000_2000_0000_0000, 0x0000_3B00_0000_0000: 0x0000_2000_0000_0000,
+ 0x0000_3C00_0000_0000: 0x0000_2000_0000_0000, 0x0000_3D00_0000_0000: 0x0000_2000_0000_0000, 0x0000_3E00_0000_0000: 0x0000_2000_0000_0000, 0x0000_3F00_0000_0000: 0x0000_2000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_7F00_0000_0000, 0x0000_0100_0000_0000: 0x0000_7F00_0000_0000, 0x0000_0200_0000_0000: 0x0000_7E00_0000_0000, 0x0000_0300_0000_0000: 0x0000_7E00_0000_0000,
+ 0x0000_0400_0000_0000: 0x0000_7C00_0000_0000, 0x0000_0500_0000_0000: 0x0000_7C00_0000_0000, 0x0000_0600_0000_0000: 0x0000_7C00_0000_0000, 0x0000_0700_0000_0000: 0x0000_7C00_0000_0000,
+ 0x0000_0800_0000_0000: 0x0000_7800_0000_0000, 0x0000_0900_0000_0000: 0x0000_7800_0000_0000, 0x0000_0A00_0000_0000: 0x0000_7800_0000_0000, 0x0000_0B00_0000_0000: 0x0000_7800_0000_0000,
+ 0x0000_0C00_0000_0000: 0x0000_7800_0000_0000, 0x0000_0D00_0000_0000: 0x0000_7800_0000_0000, 0x0000_0E00_0000_0000: 0x0000_7800_0000_0000, 0x0000_0F00_0000_0000: 0x0000_7800_0000_0000,
+ 0x0000_1000_0000_0000: 0x0000_7000_0000_0000, 0x0000_1100_0000_0000: 0x0000_7000_0000_0000, 0x0000_1200_0000_0000: 0x0000_7000_0000_0000, 0x0000_1300_0000_0000: 0x0000_7000_0000_0000,
+ 0x0000_1400_0000_0000: 0x0000_7000_0000_0000, 0x0000_1500_0000_0000: 0x0000_7000_0000_0000, 0x0000_1600_0000_0000: 0x0000_7000_0000_0000, 0x0000_1700_0000_0000: 0x0000_7000_0000_0000,
+ 0x0000_1800_0000_0000: 0x0000_7000_0000_0000, 0x0000_1900_0000_0000: 0x0000_7000_0000_0000, 0x0000_1A00_0000_0000: 0x0000_7000_0000_0000, 0x0000_1B00_0000_0000: 0x0000_7000_0000_0000,
+ 0x0000_1C00_0000_0000: 0x0000_7000_0000_0000, 0x0000_1D00_0000_0000: 0x0000_7000_0000_0000, 0x0000_1E00_0000_0000: 0x0000_7000_0000_0000, 0x0000_1F00_0000_0000: 0x0000_7000_0000_0000,
+ 0x0000_2000_0000_0000: 0x0000_6000_0000_0000, 0x0000_2100_0000_0000: 0x0000_6000_0000_0000, 0x0000_2200_0000_0000: 0x0000_6000_0000_0000, 0x0000_2300_0000_0000: 0x0000_6000_0000_0000,
+ 0x0000_2400_0000_0000: 0x0000_6000_0000_0000, 0x0000_2500_0000_0000: 0x0000_6000_0000_0000, 0x0000_2600_0000_0000: 0x0000_6000_0000_0000, 0x0000_2700_0000_0000: 0x0000_6000_0000_0000,
+ 0x0000_2800_0000_0000: 0x0000_6000_0000_0000, 0x0000_2900_0000_0000: 0x0000_6000_0000_0000, 0x0000_2A00_0000_0000: 0x0000_6000_0000_0000, 0x0000_2B00_0000_0000: 0x0000_6000_0000_0000,
+ 0x0000_2C00_0000_0000: 0x0000_6000_0000_0000, 0x0000_2D00_0000_0000: 0x0000_6000_0000_0000, 0x0000_2E00_0000_0000: 0x0000_6000_0000_0000, 0x0000_2F00_0000_0000: 0x0000_6000_0000_0000,
+ 0x0000_3000_0000_0000: 0x0000_6000_0000_0000, 0x0000_3100_0000_0000: 0x0000_6000_0000_0000, 0x0000_3200_0000_0000: 0x0000_6000_0000_0000, 0x0000_3300_0000_0000: 0x0000_6000_0000_0000,
+ 0x0000_3400_0000_0000: 0x0000_6000_0000_0000, 0x0000_3500_0000_0000: 0x0000_6000_0000_0000, 0x0000_3600_0000_0000: 0x0000_6000_0000_0000, 0x0000_3700_0000_0000: 0x0000_6000_0000_0000,
+ 0x0000_3800_0000_0000: 0x0000_6000_0000_0000, 0x0000_3900_0000_0000: 0x0000_6000_0000_0000, 0x0000_3A00_0000_0000: 0x0000_6000_0000_0000, 0x0000_3B00_0000_0000: 0x0000_6000_0000_0000,
+ 0x0000_3C00_0000_0000: 0x0000_6000_0000_0000, 0x0000_3D00_0000_0000: 0x0000_6000_0000_0000, 0x0000_3E00_0000_0000: 0x0000_6000_0000_0000, 0x0000_3F00_0000_0000: 0x0000_6000_0000_0000,
+ 0x0000_4000_0000_0000: 0x0000_4000_0000_0000, 0x0000_4100_0000_0000: 0x0000_4000_0000_0000, 0x0000_4200_0000_0000: 0x0000_4000_0000_0000, 0x0000_4300_0000_0000: 0x0000_4000_0000_0000,
+ 0x0000_4400_0000_0000: 0x0000_4000_0000_0000, 0x0000_4500_0000_0000: 0x0000_4000_0000_0000, 0x0000_4600_0000_0000: 0x0000_4000_0000_0000, 0x0000_4700_0000_0000: 0x0000_4000_0000_0000,
+ 0x0000_4800_0000_0000: 0x0000_4000_0000_0000, 0x0000_4900_0000_0000: 0x0000_4000_0000_0000, 0x0000_4A00_0000_0000: 0x0000_4000_0000_0000, 0x0000_4B00_0000_0000: 0x0000_4000_0000_0000,
+ 0x0000_4C00_0000_0000: 0x0000_4000_0000_0000, 0x0000_4D00_0000_0000: 0x0000_4000_0000_0000, 0x0000_4E00_0000_0000: 0x0000_4000_0000_0000, 0x0000_4F00_0000_0000: 0x0000_4000_0000_0000,
+ 0x0000_5000_0000_0000: 0x0000_4000_0000_0000, 0x0000_5100_0000_0000: 0x0000_4000_0000_0000, 0x0000_5200_0000_0000: 0x0000_4000_0000_0000, 0x0000_5300_0000_0000: 0x0000_4000_0000_0000,
+ 0x0000_5400_0000_0000: 0x0000_4000_0000_0000, 0x0000_5500_0000_0000: 0x0000_4000_0000_0000, 0x0000_5600_0000_0000: 0x0000_4000_0000_0000, 0x0000_5700_0000_0000: 0x0000_4000_0000_0000,
+ 0x0000_5800_0000_0000: 0x0000_4000_0000_0000, 0x0000_5900_0000_0000: 0x0000_4000_0000_0000, 0x0000_5A00_0000_0000: 0x0000_4000_0000_0000, 0x0000_5B00_0000_0000: 0x0000_4000_0000_0000,
+ 0x0000_5C00_0000_0000: 0x0000_4000_0000_0000, 0x0000_5D00_0000_0000: 0x0000_4000_0000_0000, 0x0000_5E00_0000_0000: 0x0000_4000_0000_0000, 0x0000_5F00_0000_0000: 0x0000_4000_0000_0000,
+ 0x0000_6000_0000_0000: 0x0000_4000_0000_0000, 0x0000_6100_0000_0000: 0x0000_4000_0000_0000, 0x0000_6200_0000_0000: 0x0000_4000_0000_0000, 0x0000_6300_0000_0000: 0x0000_4000_0000_0000,
+ 0x0000_6400_0000_0000: 0x0000_4000_0000_0000, 0x0000_6500_0000_0000: 0x0000_4000_0000_0000, 0x0000_6600_0000_0000: 0x0000_4000_0000_0000, 0x0000_6700_0000_0000: 0x0000_4000_0000_0000,
+ 0x0000_6800_0000_0000: 0x0000_4000_0000_0000, 0x0000_6900_0000_0000: 0x0000_4000_0000_0000, 0x0000_6A00_0000_0000: 0x0000_4000_0000_0000, 0x0000_6B00_0000_0000: 0x0000_4000_0000_0000,
+ 0x0000_6C00_0000_0000: 0x0000_4000_0000_0000, 0x0000_6D00_0000_0000: 0x0000_4000_0000_0000, 0x0000_6E00_0000_0000: 0x0000_4000_0000_0000, 0x0000_6F00_0000_0000: 0x0000_4000_0000_0000,
+ 0x0000_7000_0000_0000: 0x0000_4000_0000_0000, 0x0000_7100_0000_0000: 0x0000_4000_0000_0000, 0x0000_7200_0000_0000: 0x0000_4000_0000_0000, 0x0000_7300_0000_0000: 0x0000_4000_0000_0000,
+ 0x0000_7400_0000_0000: 0x0000_4000_0000_0000, 0x0000_7500_0000_0000: 0x0000_4000_0000_0000, 0x0000_7600_0000_0000: 0x0000_4000_0000_0000, 0x0000_7700_0000_0000: 0x0000_4000_0000_0000,
+ 0x0000_7800_0000_0000: 0x0000_4000_0000_0000, 0x0000_7900_0000_0000: 0x0000_4000_0000_0000, 0x0000_7A00_0000_0000: 0x0000_4000_0000_0000, 0x0000_7B00_0000_0000: 0x0000_4000_0000_0000,
+ 0x0000_7C00_0000_0000: 0x0000_4000_0000_0000, 0x0000_7D00_0000_0000: 0x0000_4000_0000_0000, 0x0000_7E00_0000_0000: 0x0000_4000_0000_0000, 0x0000_7F00_0000_0000: 0x0000_4000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0001_0000_0000_0000, 0x0001_0000_0000_0000: 0x0001_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0003_0000_0000_0000, 0x0001_0000_0000_0000: 0x0003_0000_0000_0000, 0x0002_0000_0000_0000: 0x0002_0000_0000_0000, 0x0003_0000_0000_0000: 0x0002_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0007_0000_0000_0000, 0x0001_0000_0000_0000: 0x0007_0000_0000_0000, 0x0002_0000_0000_0000: 0x0006_0000_0000_0000, 0x0003_0000_0000_0000: 0x0006_0000_0000_0000,
+ 0x0004_0000_0000_0000: 0x0004_0000_0000_0000, 0x0005_0000_0000_0000: 0x0004_0000_0000_0000, 0x0006_0000_0000_0000: 0x0004_0000_0000_0000, 0x0007_0000_0000_0000: 0x0004_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x000F_0000_0000_0000, 0x0001_0000_0000_0000: 0x000F_0000_0000_0000, 0x0002_0000_0000_0000: 0x000E_0000_0000_0000, 0x0003_0000_0000_0000: 0x000E_0000_0000_0000,
+ 0x0004_0000_0000_0000: 0x000C_0000_0000_0000, 0x0005_0000_0000_0000: 0x000C_0000_0000_0000, 0x0006_0000_0000_0000: 0x000C_0000_0000_0000, 0x0007_0000_0000_0000: 0x000C_0000_0000_0000,
+ 0x0008_0000_0000_0000: 0x0008_0000_0000_0000, 0x0009_0000_0000_0000: 0x0008_0000_0000_0000, 0x000A_0000_0000_0000: 0x0008_0000_0000_0000, 0x000B_0000_0000_0000: 0x0008_0000_0000_0000,
+ 0x000C_0000_0000_0000: 0x0008_0000_0000_0000, 0x000D_0000_0000_0000: 0x0008_0000_0000_0000, 0x000E_0000_0000_0000: 0x0008_0000_0000_0000, 0x000F_0000_0000_0000: 0x0008_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x001F_0000_0000_0000, 0x0001_0000_0000_0000: 0x001F_0000_0000_0000, 0x0002_0000_0000_0000: 0x001E_0000_0000_0000, 0x0003_0000_0000_0000: 0x001E_0000_0000_0000,
+ 0x0004_0000_0000_0000: 0x001C_0000_0000_0000, 0x0005_0000_0000_0000: 0x001C_0000_0000_0000, 0x0006_0000_0000_0000: 0x001C_0000_0000_0000, 0x0007_0000_0000_0000: 0x001C_0000_0000_0000,
+ 0x0008_0000_0000_0000: 0x0018_0000_0000_0000, 0x0009_0000_0000_0000: 0x0018_0000_0000_0000, 0x000A_0000_0000_0000: 0x0018_0000_0000_0000, 0x000B_0000_0000_0000: 0x0018_0000_0000_0000,
+ 0x000C_0000_0000_0000: 0x0018_0000_0000_0000, 0x000D_0000_0000_0000: 0x0018_0000_0000_0000, 0x000E_0000_0000_0000: 0x0018_0000_0000_0000, 0x000F_0000_0000_0000: 0x0018_0000_0000_0000,
+ 0x0010_0000_0000_0000: 0x0010_0000_0000_0000, 0x0011_0000_0000_0000: 0x0010_0000_0000_0000, 0x0012_0000_0000_0000: 0x0010_0000_0000_0000, 0x0013_0000_0000_0000: 0x0010_0000_0000_0000,
+ 0x0014_0000_0000_0000: 0x0010_0000_0000_0000, 0x0015_0000_0000_0000: 0x0010_0000_0000_0000, 0x0016_0000_0000_0000: 0x0010_0000_0000_0000, 0x0017_0000_0000_0000: 0x0010_0000_0000_0000,
+ 0x0018_0000_0000_0000: 0x0010_0000_0000_0000, 0x0019_0000_0000_0000: 0x0010_0000_0000_0000, 0x001A_0000_0000_0000: 0x0010_0000_0000_0000, 0x001B_0000_0000_0000: 0x0010_0000_0000_0000,
+ 0x001C_0000_0000_0000: 0x0010_0000_0000_0000, 0x001D_0000_0000_0000: 0x0010_0000_0000_0000, 0x001E_0000_0000_0000: 0x0010_0000_0000_0000, 0x001F_0000_0000_0000: 0x0010_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x003F_0000_0000_0000, 0x0001_0000_0000_0000: 0x003F_0000_0000_0000, 0x0002_0000_0000_0000: 0x003E_0000_0000_0000, 0x0003_0000_0000_0000: 0x003E_0000_0000_0000,
+ 0x0004_0000_0000_0000: 0x003C_0000_0000_0000, 0x0005_0000_0000_0000: 0x003C_0000_0000_0000, 0x0006_0000_0000_0000: 0x003C_0000_0000_0000, 0x0007_0000_0000_0000: 0x003C_0000_0000_0000,
+ 0x0008_0000_0000_0000: 0x0038_0000_0000_0000, 0x0009_0000_0000_0000: 0x0038_0000_0000_0000, 0x000A_0000_0000_0000: 0x0038_0000_0000_0000, 0x000B_0000_0000_0000: 0x0038_0000_0000_0000,
+ 0x000C_0000_0000_0000: 0x0038_0000_0000_0000, 0x000D_0000_0000_0000: 0x0038_0000_0000_0000, 0x000E_0000_0000_0000: 0x0038_0000_0000_0000, 0x000F_0000_0000_0000: 0x0038_0000_0000_0000,
+ 0x0010_0000_0000_0000: 0x0030_0000_0000_0000, 0x0011_0000_0000_0000: 0x0030_0000_0000_0000, 0x0012_0000_0000_0000: 0x0030_0000_0000_0000, 0x0013_0000_0000_0000: 0x0030_0000_0000_0000,
+ 0x0014_0000_0000_0000: 0x0030_0000_0000_0000, 0x0015_0000_0000_0000: 0x0030_0000_0000_0000, 0x0016_0000_0000_0000: 0x0030_0000_0000_0000, 0x0017_0000_0000_0000: 0x0030_0000_0000_0000,
+ 0x0018_0000_0000_0000: 0x0030_0000_0000_0000, 0x0019_0000_0000_0000: 0x0030_0000_0000_0000, 0x001A_0000_0000_0000: 0x0030_0000_0000_0000, 0x001B_0000_0000_0000: 0x0030_0000_0000_0000,
+ 0x001C_0000_0000_0000: 0x0030_0000_0000_0000, 0x001D_0000_0000_0000: 0x0030_0000_0000_0000, 0x001E_0000_0000_0000: 0x0030_0000_0000_0000, 0x001F_0000_0000_0000: 0x0030_0000_0000_0000,
+ 0x0020_0000_0000_0000: 0x0020_0000_0000_0000, 0x0021_0000_0000_0000: 0x0020_0000_0000_0000, 0x0022_0000_0000_0000: 0x0020_0000_0000_0000, 0x0023_0000_0000_0000: 0x0020_0000_0000_0000,
+ 0x0024_0000_0000_0000: 0x0020_0000_0000_0000, 0x0025_0000_0000_0000: 0x0020_0000_0000_0000, 0x0026_0000_0000_0000: 0x0020_0000_0000_0000, 0x0027_0000_0000_0000: 0x0020_0000_0000_0000,
+ 0x0028_0000_0000_0000: 0x0020_0000_0000_0000, 0x0029_0000_0000_0000: 0x0020_0000_0000_0000, 0x002A_0000_0000_0000: 0x0020_0000_0000_0000, 0x002B_0000_0000_0000: 0x0020_0000_0000_0000,
+ 0x002C_0000_0000_0000: 0x0020_0000_0000_0000, 0x002D_0000_0000_0000: 0x0020_0000_0000_0000, 0x002E_0000_0000_0000: 0x0020_0000_0000_0000, 0x002F_0000_0000_0000: 0x0020_0000_0000_0000,
+ 0x0030_0000_0000_0000: 0x0020_0000_0000_0000, 0x0031_0000_0000_0000: 0x0020_0000_0000_0000, 0x0032_0000_0000_0000: 0x0020_0000_0000_0000, 0x0033_0000_0000_0000: 0x0020_0000_0000_0000,
+ 0x0034_0000_0000_0000: 0x0020_0000_0000_0000, 0x0035_0000_0000_0000: 0x0020_0000_0000_0000, 0x0036_0000_0000_0000: 0x0020_0000_0000_0000, 0x0037_0000_0000_0000: 0x0020_0000_0000_0000,
+ 0x0038_0000_0000_0000: 0x0020_0000_0000_0000, 0x0039_0000_0000_0000: 0x0020_0000_0000_0000, 0x003A_0000_0000_0000: 0x0020_0000_0000_0000, 0x003B_0000_0000_0000: 0x0020_0000_0000_0000,
+ 0x003C_0000_0000_0000: 0x0020_0000_0000_0000, 0x003D_0000_0000_0000: 0x0020_0000_0000_0000, 0x003E_0000_0000_0000: 0x0020_0000_0000_0000, 0x003F_0000_0000_0000: 0x0020_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x007F_0000_0000_0000, 0x0001_0000_0000_0000: 0x007F_0000_0000_0000, 0x0002_0000_0000_0000: 0x007E_0000_0000_0000, 0x0003_0000_0000_0000: 0x007E_0000_0000_0000,
+ 0x0004_0000_0000_0000: 0x007C_0000_0000_0000, 0x0005_0000_0000_0000: 0x007C_0000_0000_0000, 0x0006_0000_0000_0000: 0x007C_0000_0000_0000, 0x0007_0000_0000_0000: 0x007C_0000_0000_0000,
+ 0x0008_0000_0000_0000: 0x0078_0000_0000_0000, 0x0009_0000_0000_0000: 0x0078_0000_0000_0000, 0x000A_0000_0000_0000: 0x0078_0000_0000_0000, 0x000B_0000_0000_0000: 0x0078_0000_0000_0000,
+ 0x000C_0000_0000_0000: 0x0078_0000_0000_0000, 0x000D_0000_0000_0000: 0x0078_0000_0000_0000, 0x000E_0000_0000_0000: 0x0078_0000_0000_0000, 0x000F_0000_0000_0000: 0x0078_0000_0000_0000,
+ 0x0010_0000_0000_0000: 0x0070_0000_0000_0000, 0x0011_0000_0000_0000: 0x0070_0000_0000_0000, 0x0012_0000_0000_0000: 0x0070_0000_0000_0000, 0x0013_0000_0000_0000: 0x0070_0000_0000_0000,
+ 0x0014_0000_0000_0000: 0x0070_0000_0000_0000, 0x0015_0000_0000_0000: 0x0070_0000_0000_0000, 0x0016_0000_0000_0000: 0x0070_0000_0000_0000, 0x0017_0000_0000_0000: 0x0070_0000_0000_0000,
+ 0x0018_0000_0000_0000: 0x0070_0000_0000_0000, 0x0019_0000_0000_0000: 0x0070_0000_0000_0000, 0x001A_0000_0000_0000: 0x0070_0000_0000_0000, 0x001B_0000_0000_0000: 0x0070_0000_0000_0000,
+ 0x001C_0000_0000_0000: 0x0070_0000_0000_0000, 0x001D_0000_0000_0000: 0x0070_0000_0000_0000, 0x001E_0000_0000_0000: 0x0070_0000_0000_0000, 0x001F_0000_0000_0000: 0x0070_0000_0000_0000,
+ 0x0020_0000_0000_0000: 0x0060_0000_0000_0000, 0x0021_0000_0000_0000: 0x0060_0000_0000_0000, 0x0022_0000_0000_0000: 0x0060_0000_0000_0000, 0x0023_0000_0000_0000: 0x0060_0000_0000_0000,
+ 0x0024_0000_0000_0000: 0x0060_0000_0000_0000, 0x0025_0000_0000_0000: 0x0060_0000_0000_0000, 0x0026_0000_0000_0000: 0x0060_0000_0000_0000, 0x0027_0000_0000_0000: 0x0060_0000_0000_0000,
+ 0x0028_0000_0000_0000: 0x0060_0000_0000_0000, 0x0029_0000_0000_0000: 0x0060_0000_0000_0000, 0x002A_0000_0000_0000: 0x0060_0000_0000_0000, 0x002B_0000_0000_0000: 0x0060_0000_0000_0000,
+ 0x002C_0000_0000_0000: 0x0060_0000_0000_0000, 0x002D_0000_0000_0000: 0x0060_0000_0000_0000, 0x002E_0000_0000_0000: 0x0060_0000_0000_0000, 0x002F_0000_0000_0000: 0x0060_0000_0000_0000,
+ 0x0030_0000_0000_0000: 0x0060_0000_0000_0000, 0x0031_0000_0000_0000: 0x0060_0000_0000_0000, 0x0032_0000_0000_0000: 0x0060_0000_0000_0000, 0x0033_0000_0000_0000: 0x0060_0000_0000_0000,
+ 0x0034_0000_0000_0000: 0x0060_0000_0000_0000, 0x0035_0000_0000_0000: 0x0060_0000_0000_0000, 0x0036_0000_0000_0000: 0x0060_0000_0000_0000, 0x0037_0000_0000_0000: 0x0060_0000_0000_0000,
+ 0x0038_0000_0000_0000: 0x0060_0000_0000_0000, 0x0039_0000_0000_0000: 0x0060_0000_0000_0000, 0x003A_0000_0000_0000: 0x0060_0000_0000_0000, 0x003B_0000_0000_0000: 0x0060_0000_0000_0000,
+ 0x003C_0000_0000_0000: 0x0060_0000_0000_0000, 0x003D_0000_0000_0000: 0x0060_0000_0000_0000, 0x003E_0000_0000_0000: 0x0060_0000_0000_0000, 0x003F_0000_0000_0000: 0x0060_0000_0000_0000,
+ 0x0040_0000_0000_0000: 0x0040_0000_0000_0000, 0x0041_0000_0000_0000: 0x0040_0000_0000_0000, 0x0042_0000_0000_0000: 0x0040_0000_0000_0000, 0x0043_0000_0000_0000: 0x0040_0000_0000_0000,
+ 0x0044_0000_0000_0000: 0x0040_0000_0000_0000, 0x0045_0000_0000_0000: 0x0040_0000_0000_0000, 0x0046_0000_0000_0000: 0x0040_0000_0000_0000, 0x0047_0000_0000_0000: 0x0040_0000_0000_0000,
+ 0x0048_0000_0000_0000: 0x0040_0000_0000_0000, 0x0049_0000_0000_0000: 0x0040_0000_0000_0000, 0x004A_0000_0000_0000: 0x0040_0000_0000_0000, 0x004B_0000_0000_0000: 0x0040_0000_0000_0000,
+ 0x004C_0000_0000_0000: 0x0040_0000_0000_0000, 0x004D_0000_0000_0000: 0x0040_0000_0000_0000, 0x004E_0000_0000_0000: 0x0040_0000_0000_0000, 0x004F_0000_0000_0000: 0x0040_0000_0000_0000,
+ 0x0050_0000_0000_0000: 0x0040_0000_0000_0000, 0x0051_0000_0000_0000: 0x0040_0000_0000_0000, 0x0052_0000_0000_0000: 0x0040_0000_0000_0000, 0x0053_0000_0000_0000: 0x0040_0000_0000_0000,
+ 0x0054_0000_0000_0000: 0x0040_0000_0000_0000, 0x0055_0000_0000_0000: 0x0040_0000_0000_0000, 0x0056_0000_0000_0000: 0x0040_0000_0000_0000, 0x0057_0000_0000_0000: 0x0040_0000_0000_0000,
+ 0x0058_0000_0000_0000: 0x0040_0000_0000_0000, 0x0059_0000_0000_0000: 0x0040_0000_0000_0000, 0x005A_0000_0000_0000: 0x0040_0000_0000_0000, 0x005B_0000_0000_0000: 0x0040_0000_0000_0000,
+ 0x005C_0000_0000_0000: 0x0040_0000_0000_0000, 0x005D_0000_0000_0000: 0x0040_0000_0000_0000, 0x005E_0000_0000_0000: 0x0040_0000_0000_0000, 0x005F_0000_0000_0000: 0x0040_0000_0000_0000,
+ 0x0060_0000_0000_0000: 0x0040_0000_0000_0000, 0x0061_0000_0000_0000: 0x0040_0000_0000_0000, 0x0062_0000_0000_0000: 0x0040_0000_0000_0000, 0x0063_0000_0000_0000: 0x0040_0000_0000_0000,
+ 0x0064_0000_0000_0000: 0x0040_0000_0000_0000, 0x0065_0000_0000_0000: 0x0040_0000_0000_0000, 0x0066_0000_0000_0000: 0x0040_0000_0000_0000, 0x0067_0000_0000_0000: 0x0040_0000_0000_0000,
+ 0x0068_0000_0000_0000: 0x0040_0000_0000_0000, 0x0069_0000_0000_0000: 0x0040_0000_0000_0000, 0x006A_0000_0000_0000: 0x0040_0000_0000_0000, 0x006B_0000_0000_0000: 0x0040_0000_0000_0000,
+ 0x006C_0000_0000_0000: 0x0040_0000_0000_0000, 0x006D_0000_0000_0000: 0x0040_0000_0000_0000, 0x006E_0000_0000_0000: 0x0040_0000_0000_0000, 0x006F_0000_0000_0000: 0x0040_0000_0000_0000,
+ 0x0070_0000_0000_0000: 0x0040_0000_0000_0000, 0x0071_0000_0000_0000: 0x0040_0000_0000_0000, 0x0072_0000_0000_0000: 0x0040_0000_0000_0000, 0x0073_0000_0000_0000: 0x0040_0000_0000_0000,
+ 0x0074_0000_0000_0000: 0x0040_0000_0000_0000, 0x0075_0000_0000_0000: 0x0040_0000_0000_0000, 0x0076_0000_0000_0000: 0x0040_0000_0000_0000, 0x0077_0000_0000_0000: 0x0040_0000_0000_0000,
+ 0x0078_0000_0000_0000: 0x0040_0000_0000_0000, 0x0079_0000_0000_0000: 0x0040_0000_0000_0000, 0x007A_0000_0000_0000: 0x0040_0000_0000_0000, 0x007B_0000_0000_0000: 0x0040_0000_0000_0000,
+ 0x007C_0000_0000_0000: 0x0040_0000_0000_0000, 0x007D_0000_0000_0000: 0x0040_0000_0000_0000, 0x007E_0000_0000_0000: 0x0040_0000_0000_0000, 0x007F_0000_0000_0000: 0x0040_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0100_0000_0000_0000, 0x0100_0000_0000_0000: 0x0100_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0300_0000_0000_0000, 0x0100_0000_0000_0000: 0x0300_0000_0000_0000, 0x0200_0000_0000_0000: 0x0200_0000_0000_0000, 0x0300_0000_0000_0000: 0x0200_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0700_0000_0000_0000, 0x0100_0000_0000_0000: 0x0700_0000_0000_0000, 0x0200_0000_0000_0000: 0x0600_0000_0000_0000, 0x0300_0000_0000_0000: 0x0600_0000_0000_0000,
+ 0x0400_0000_0000_0000: 0x0400_0000_0000_0000, 0x0500_0000_0000_0000: 0x0400_0000_0000_0000, 0x0600_0000_0000_0000: 0x0400_0000_0000_0000, 0x0700_0000_0000_0000: 0x0400_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0F00_0000_0000_0000, 0x0100_0000_0000_0000: 0x0F00_0000_0000_0000, 0x0200_0000_0000_0000: 0x0E00_0000_0000_0000, 0x0300_0000_0000_0000: 0x0E00_0000_0000_0000,
+ 0x0400_0000_0000_0000: 0x0C00_0000_0000_0000, 0x0500_0000_0000_0000: 0x0C00_0000_0000_0000, 0x0600_0000_0000_0000: 0x0C00_0000_0000_0000, 0x0700_0000_0000_0000: 0x0C00_0000_0000_0000,
+ 0x0800_0000_0000_0000: 0x0800_0000_0000_0000, 0x0900_0000_0000_0000: 0x0800_0000_0000_0000, 0x0A00_0000_0000_0000: 0x0800_0000_0000_0000, 0x0B00_0000_0000_0000: 0x0800_0000_0000_0000,
+ 0x0C00_0000_0000_0000: 0x0800_0000_0000_0000, 0x0D00_0000_0000_0000: 0x0800_0000_0000_0000, 0x0E00_0000_0000_0000: 0x0800_0000_0000_0000, 0x0F00_0000_0000_0000: 0x0800_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x1F00_0000_0000_0000, 0x0100_0000_0000_0000: 0x1F00_0000_0000_0000, 0x0200_0000_0000_0000: 0x1E00_0000_0000_0000, 0x0300_0000_0000_0000: 0x1E00_0000_0000_0000,
+ 0x0400_0000_0000_0000: 0x1C00_0000_0000_0000, 0x0500_0000_0000_0000: 0x1C00_0000_0000_0000, 0x0600_0000_0000_0000: 0x1C00_0000_0000_0000, 0x0700_0000_0000_0000: 0x1C00_0000_0000_0000,
+ 0x0800_0000_0000_0000: 0x1800_0000_0000_0000, 0x0900_0000_0000_0000: 0x1800_0000_0000_0000, 0x0A00_0000_0000_0000: 0x1800_0000_0000_0000, 0x0B00_0000_0000_0000: 0x1800_0000_0000_0000,
+ 0x0C00_0000_0000_0000: 0x1800_0000_0000_0000, 0x0D00_0000_0000_0000: 0x1800_0000_0000_0000, 0x0E00_0000_0000_0000: 0x1800_0000_0000_0000, 0x0F00_0000_0000_0000: 0x1800_0000_0000_0000,
+ 0x1000_0000_0000_0000: 0x1000_0000_0000_0000, 0x1100_0000_0000_0000: 0x1000_0000_0000_0000, 0x1200_0000_0000_0000: 0x1000_0000_0000_0000, 0x1300_0000_0000_0000: 0x1000_0000_0000_0000,
+ 0x1400_0000_0000_0000: 0x1000_0000_0000_0000, 0x1500_0000_0000_0000: 0x1000_0000_0000_0000, 0x1600_0000_0000_0000: 0x1000_0000_0000_0000, 0x1700_0000_0000_0000: 0x1000_0000_0000_0000,
+ 0x1800_0000_0000_0000: 0x1000_0000_0000_0000, 0x1900_0000_0000_0000: 0x1000_0000_0000_0000, 0x1A00_0000_0000_0000: 0x1000_0000_0000_0000, 0x1B00_0000_0000_0000: 0x1000_0000_0000_0000,
+ 0x1C00_0000_0000_0000: 0x1000_0000_0000_0000, 0x1D00_0000_0000_0000: 0x1000_0000_0000_0000, 0x1E00_0000_0000_0000: 0x1000_0000_0000_0000, 0x1F00_0000_0000_0000: 0x1000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x3F00_0000_0000_0000, 0x0100_0000_0000_0000: 0x3F00_0000_0000_0000, 0x0200_0000_0000_0000: 0x3E00_0000_0000_0000, 0x0300_0000_0000_0000: 0x3E00_0000_0000_0000,
+ 0x0400_0000_0000_0000: 0x3C00_0000_0000_0000, 0x0500_0000_0000_0000: 0x3C00_0000_0000_0000, 0x0600_0000_0000_0000: 0x3C00_0000_0000_0000, 0x0700_0000_0000_0000: 0x3C00_0000_0000_0000,
+ 0x0800_0000_0000_0000: 0x3800_0000_0000_0000, 0x0900_0000_0000_0000: 0x3800_0000_0000_0000, 0x0A00_0000_0000_0000: 0x3800_0000_0000_0000, 0x0B00_0000_0000_0000: 0x3800_0000_0000_0000,
+ 0x0C00_0000_0000_0000: 0x3800_0000_0000_0000, 0x0D00_0000_0000_0000: 0x3800_0000_0000_0000, 0x0E00_0000_0000_0000: 0x3800_0000_0000_0000, 0x0F00_0000_0000_0000: 0x3800_0000_0000_0000,
+ 0x1000_0000_0000_0000: 0x3000_0000_0000_0000, 0x1100_0000_0000_0000: 0x3000_0000_0000_0000, 0x1200_0000_0000_0000: 0x3000_0000_0000_0000, 0x1300_0000_0000_0000: 0x3000_0000_0000_0000,
+ 0x1400_0000_0000_0000: 0x3000_0000_0000_0000, 0x1500_0000_0000_0000: 0x3000_0000_0000_0000, 0x1600_0000_0000_0000: 0x3000_0000_0000_0000, 0x1700_0000_0000_0000: 0x3000_0000_0000_0000,
+ 0x1800_0000_0000_0000: 0x3000_0000_0000_0000, 0x1900_0000_0000_0000: 0x3000_0000_0000_0000, 0x1A00_0000_0000_0000: 0x3000_0000_0000_0000, 0x1B00_0000_0000_0000: 0x3000_0000_0000_0000,
+ 0x1C00_0000_0000_0000: 0x3000_0000_0000_0000, 0x1D00_0000_0000_0000: 0x3000_0000_0000_0000, 0x1E00_0000_0000_0000: 0x3000_0000_0000_0000, 0x1F00_0000_0000_0000: 0x3000_0000_0000_0000,
+ 0x2000_0000_0000_0000: 0x2000_0000_0000_0000, 0x2100_0000_0000_0000: 0x2000_0000_0000_0000, 0x2200_0000_0000_0000: 0x2000_0000_0000_0000, 0x2300_0000_0000_0000: 0x2000_0000_0000_0000,
+ 0x2400_0000_0000_0000: 0x2000_0000_0000_0000, 0x2500_0000_0000_0000: 0x2000_0000_0000_0000, 0x2600_0000_0000_0000: 0x2000_0000_0000_0000, 0x2700_0000_0000_0000: 0x2000_0000_0000_0000,
+ 0x2800_0000_0000_0000: 0x2000_0000_0000_0000, 0x2900_0000_0000_0000: 0x2000_0000_0000_0000, 0x2A00_0000_0000_0000: 0x2000_0000_0000_0000, 0x2B00_0000_0000_0000: 0x2000_0000_0000_0000,
+ 0x2C00_0000_0000_0000: 0x2000_0000_0000_0000, 0x2D00_0000_0000_0000: 0x2000_0000_0000_0000, 0x2E00_0000_0000_0000: 0x2000_0000_0000_0000, 0x2F00_0000_0000_0000: 0x2000_0000_0000_0000,
+ 0x3000_0000_0000_0000: 0x2000_0000_0000_0000, 0x3100_0000_0000_0000: 0x2000_0000_0000_0000, 0x3200_0000_0000_0000: 0x2000_0000_0000_0000, 0x3300_0000_0000_0000: 0x2000_0000_0000_0000,
+ 0x3400_0000_0000_0000: 0x2000_0000_0000_0000, 0x3500_0000_0000_0000: 0x2000_0000_0000_0000, 0x3600_0000_0000_0000: 0x2000_0000_0000_0000, 0x3700_0000_0000_0000: 0x2000_0000_0000_0000,
+ 0x3800_0000_0000_0000: 0x2000_0000_0000_0000, 0x3900_0000_0000_0000: 0x2000_0000_0000_0000, 0x3A00_0000_0000_0000: 0x2000_0000_0000_0000, 0x3B00_0000_0000_0000: 0x2000_0000_0000_0000,
+ 0x3C00_0000_0000_0000: 0x2000_0000_0000_0000, 0x3D00_0000_0000_0000: 0x2000_0000_0000_0000, 0x3E00_0000_0000_0000: 0x2000_0000_0000_0000, 0x3F00_0000_0000_0000: 0x2000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x7F00_0000_0000_0000, 0x0100_0000_0000_0000: 0x7F00_0000_0000_0000, 0x0200_0000_0000_0000: 0x7E00_0000_0000_0000, 0x0300_0000_0000_0000: 0x7E00_0000_0000_0000,
+ 0x0400_0000_0000_0000: 0x7C00_0000_0000_0000, 0x0500_0000_0000_0000: 0x7C00_0000_0000_0000, 0x0600_0000_0000_0000: 0x7C00_0000_0000_0000, 0x0700_0000_0000_0000: 0x7C00_0000_0000_0000,
+ 0x0800_0000_0000_0000: 0x7800_0000_0000_0000, 0x0900_0000_0000_0000: 0x7800_0000_0000_0000, 0x0A00_0000_0000_0000: 0x7800_0000_0000_0000, 0x0B00_0000_0000_0000: 0x7800_0000_0000_0000,
+ 0x0C00_0000_0000_0000: 0x7800_0000_0000_0000, 0x0D00_0000_0000_0000: 0x7800_0000_0000_0000, 0x0E00_0000_0000_0000: 0x7800_0000_0000_0000, 0x0F00_0000_0000_0000: 0x7800_0000_0000_0000,
+ 0x1000_0000_0000_0000: 0x7000_0000_0000_0000, 0x1100_0000_0000_0000: 0x7000_0000_0000_0000, 0x1200_0000_0000_0000: 0x7000_0000_0000_0000, 0x1300_0000_0000_0000: 0x7000_0000_0000_0000,
+ 0x1400_0000_0000_0000: 0x7000_0000_0000_0000, 0x1500_0000_0000_0000: 0x7000_0000_0000_0000, 0x1600_0000_0000_0000: 0x7000_0000_0000_0000, 0x1700_0000_0000_0000: 0x7000_0000_0000_0000,
+ 0x1800_0000_0000_0000: 0x7000_0000_0000_0000, 0x1900_0000_0000_0000: 0x7000_0000_0000_0000, 0x1A00_0000_0000_0000: 0x7000_0000_0000_0000, 0x1B00_0000_0000_0000: 0x7000_0000_0000_0000,
+ 0x1C00_0000_0000_0000: 0x7000_0000_0000_0000, 0x1D00_0000_0000_0000: 0x7000_0000_0000_0000, 0x1E00_0000_0000_0000: 0x7000_0000_0000_0000, 0x1F00_0000_0000_0000: 0x7000_0000_0000_0000,
+ 0x2000_0000_0000_0000: 0x6000_0000_0000_0000, 0x2100_0000_0000_0000: 0x6000_0000_0000_0000, 0x2200_0000_0000_0000: 0x6000_0000_0000_0000, 0x2300_0000_0000_0000: 0x6000_0000_0000_0000,
+ 0x2400_0000_0000_0000: 0x6000_0000_0000_0000, 0x2500_0000_0000_0000: 0x6000_0000_0000_0000, 0x2600_0000_0000_0000: 0x6000_0000_0000_0000, 0x2700_0000_0000_0000: 0x6000_0000_0000_0000,
+ 0x2800_0000_0000_0000: 0x6000_0000_0000_0000, 0x2900_0000_0000_0000: 0x6000_0000_0000_0000, 0x2A00_0000_0000_0000: 0x6000_0000_0000_0000, 0x2B00_0000_0000_0000: 0x6000_0000_0000_0000,
+ 0x2C00_0000_0000_0000: 0x6000_0000_0000_0000, 0x2D00_0000_0000_0000: 0x6000_0000_0000_0000, 0x2E00_0000_0000_0000: 0x6000_0000_0000_0000, 0x2F00_0000_0000_0000: 0x6000_0000_0000_0000,
+ 0x3000_0000_0000_0000: 0x6000_0000_0000_0000, 0x3100_0000_0000_0000: 0x6000_0000_0000_0000, 0x3200_0000_0000_0000: 0x6000_0000_0000_0000, 0x3300_0000_0000_0000: 0x6000_0000_0000_0000,
+ 0x3400_0000_0000_0000: 0x6000_0000_0000_0000, 0x3500_0000_0000_0000: 0x6000_0000_0000_0000, 0x3600_0000_0000_0000: 0x6000_0000_0000_0000, 0x3700_0000_0000_0000: 0x6000_0000_0000_0000,
+ 0x3800_0000_0000_0000: 0x6000_0000_0000_0000, 0x3900_0000_0000_0000: 0x6000_0000_0000_0000, 0x3A00_0000_0000_0000: 0x6000_0000_0000_0000, 0x3B00_0000_0000_0000: 0x6000_0000_0000_0000,
+ 0x3C00_0000_0000_0000: 0x6000_0000_0000_0000, 0x3D00_0000_0000_0000: 0x6000_0000_0000_0000, 0x3E00_0000_0000_0000: 0x6000_0000_0000_0000, 0x3F00_0000_0000_0000: 0x6000_0000_0000_0000,
+ 0x4000_0000_0000_0000: 0x4000_0000_0000_0000, 0x4100_0000_0000_0000: 0x4000_0000_0000_0000, 0x4200_0000_0000_0000: 0x4000_0000_0000_0000, 0x4300_0000_0000_0000: 0x4000_0000_0000_0000,
+ 0x4400_0000_0000_0000: 0x4000_0000_0000_0000, 0x4500_0000_0000_0000: 0x4000_0000_0000_0000, 0x4600_0000_0000_0000: 0x4000_0000_0000_0000, 0x4700_0000_0000_0000: 0x4000_0000_0000_0000,
+ 0x4800_0000_0000_0000: 0x4000_0000_0000_0000, 0x4900_0000_0000_0000: 0x4000_0000_0000_0000, 0x4A00_0000_0000_0000: 0x4000_0000_0000_0000, 0x4B00_0000_0000_0000: 0x4000_0000_0000_0000,
+ 0x4C00_0000_0000_0000: 0x4000_0000_0000_0000, 0x4D00_0000_0000_0000: 0x4000_0000_0000_0000, 0x4E00_0000_0000_0000: 0x4000_0000_0000_0000, 0x4F00_0000_0000_0000: 0x4000_0000_0000_0000,
+ 0x5000_0000_0000_0000: 0x4000_0000_0000_0000, 0x5100_0000_0000_0000: 0x4000_0000_0000_0000, 0x5200_0000_0000_0000: 0x4000_0000_0000_0000, 0x5300_0000_0000_0000: 0x4000_0000_0000_0000,
+ 0x5400_0000_0000_0000: 0x4000_0000_0000_0000, 0x5500_0000_0000_0000: 0x4000_0000_0000_0000, 0x5600_0000_0000_0000: 0x4000_0000_0000_0000, 0x5700_0000_0000_0000: 0x4000_0000_0000_0000,
+ 0x5800_0000_0000_0000: 0x4000_0000_0000_0000, 0x5900_0000_0000_0000: 0x4000_0000_0000_0000, 0x5A00_0000_0000_0000: 0x4000_0000_0000_0000, 0x5B00_0000_0000_0000: 0x4000_0000_0000_0000,
+ 0x5C00_0000_0000_0000: 0x4000_0000_0000_0000, 0x5D00_0000_0000_0000: 0x4000_0000_0000_0000, 0x5E00_0000_0000_0000: 0x4000_0000_0000_0000, 0x5F00_0000_0000_0000: 0x4000_0000_0000_0000,
+ 0x6000_0000_0000_0000: 0x4000_0000_0000_0000, 0x6100_0000_0000_0000: 0x4000_0000_0000_0000, 0x6200_0000_0000_0000: 0x4000_0000_0000_0000, 0x6300_0000_0000_0000: 0x4000_0000_0000_0000,
+ 0x6400_0000_0000_0000: 0x4000_0000_0000_0000, 0x6500_0000_0000_0000: 0x4000_0000_0000_0000, 0x6600_0000_0000_0000: 0x4000_0000_0000_0000, 0x6700_0000_0000_0000: 0x4000_0000_0000_0000,
+ 0x6800_0000_0000_0000: 0x4000_0000_0000_0000, 0x6900_0000_0000_0000: 0x4000_0000_0000_0000, 0x6A00_0000_0000_0000: 0x4000_0000_0000_0000, 0x6B00_0000_0000_0000: 0x4000_0000_0000_0000,
+ 0x6C00_0000_0000_0000: 0x4000_0000_0000_0000, 0x6D00_0000_0000_0000: 0x4000_0000_0000_0000, 0x6E00_0000_0000_0000: 0x4000_0000_0000_0000, 0x6F00_0000_0000_0000: 0x4000_0000_0000_0000,
+ 0x7000_0000_0000_0000: 0x4000_0000_0000_0000, 0x7100_0000_0000_0000: 0x4000_0000_0000_0000, 0x7200_0000_0000_0000: 0x4000_0000_0000_0000, 0x7300_0000_0000_0000: 0x4000_0000_0000_0000,
+ 0x7400_0000_0000_0000: 0x4000_0000_0000_0000, 0x7500_0000_0000_0000: 0x4000_0000_0000_0000, 0x7600_0000_0000_0000: 0x4000_0000_0000_0000, 0x7700_0000_0000_0000: 0x4000_0000_0000_0000,
+ 0x7800_0000_0000_0000: 0x4000_0000_0000_0000, 0x7900_0000_0000_0000: 0x4000_0000_0000_0000, 0x7A00_0000_0000_0000: 0x4000_0000_0000_0000, 0x7B00_0000_0000_0000: 0x4000_0000_0000_0000,
+ 0x7C00_0000_0000_0000: 0x4000_0000_0000_0000, 0x7D00_0000_0000_0000: 0x4000_0000_0000_0000, 0x7E00_0000_0000_0000: 0x4000_0000_0000_0000, 0x7F00_0000_0000_0000: 0x4000_0000_0000_0000,
+ },
+)
+U_MASK = (
+ {
+ 0x0000_0000_0000_0000: 0x0101_0101_0101_0100, 0x0000_0000_0000_0100: 0x0000_0000_0000_0100, 0x0000_0000_0001_0000: 0x0000_0000_0001_0100, 0x0000_0000_0001_0100: 0x0000_0000_0000_0100,
+ 0x0000_0000_0100_0000: 0x0000_0000_0101_0100, 0x0000_0000_0100_0100: 0x0000_0000_0000_0100, 0x0000_0000_0101_0000: 0x0000_0000_0001_0100, 0x0000_0000_0101_0100: 0x0000_0000_0000_0100,
+ 0x0000_0001_0000_0000: 0x0000_0001_0101_0100, 0x0000_0001_0000_0100: 0x0000_0000_0000_0100, 0x0000_0001_0001_0000: 0x0000_0000_0001_0100, 0x0000_0001_0001_0100: 0x0000_0000_0000_0100,
+ 0x0000_0001_0100_0000: 0x0000_0000_0101_0100, 0x0000_0001_0100_0100: 0x0000_0000_0000_0100, 0x0000_0001_0101_0000: 0x0000_0000_0001_0100, 0x0000_0001_0101_0100: 0x0000_0000_0000_0100,
+ 0x0000_0100_0000_0000: 0x0000_0101_0101_0100, 0x0000_0100_0000_0100: 0x0000_0000_0000_0100, 0x0000_0100_0001_0000: 0x0000_0000_0001_0100, 0x0000_0100_0001_0100: 0x0000_0000_0000_0100,
+ 0x0000_0100_0100_0000: 0x0000_0000_0101_0100, 0x0000_0100_0100_0100: 0x0000_0000_0000_0100, 0x0000_0100_0101_0000: 0x0000_0000_0001_0100, 0x0000_0100_0101_0100: 0x0000_0000_0000_0100,
+ 0x0000_0101_0000_0000: 0x0000_0001_0101_0100, 0x0000_0101_0000_0100: 0x0000_0000_0000_0100, 0x0000_0101_0001_0000: 0x0000_0000_0001_0100, 0x0000_0101_0001_0100: 0x0000_0000_0000_0100,
+ 0x0000_0101_0100_0000: 0x0000_0000_0101_0100, 0x0000_0101_0100_0100: 0x0000_0000_0000_0100, 0x0000_0101_0101_0000: 0x0000_0000_0001_0100, 0x0000_0101_0101_0100: 0x0000_0000_0000_0100,
+ 0x0001_0000_0000_0000: 0x0001_0101_0101_0100, 0x0001_0000_0000_0100: 0x0000_0000_0000_0100, 0x0001_0000_0001_0000: 0x0000_0000_0001_0100, 0x0001_0000_0001_0100: 0x0000_0000_0000_0100,
+ 0x0001_0000_0100_0000: 0x0000_0000_0101_0100, 0x0001_0000_0100_0100: 0x0000_0000_0000_0100, 0x0001_0000_0101_0000: 0x0000_0000_0001_0100, 0x0001_0000_0101_0100: 0x0000_0000_0000_0100,
+ 0x0001_0001_0000_0000: 0x0000_0001_0101_0100, 0x0001_0001_0000_0100: 0x0000_0000_0000_0100, 0x0001_0001_0001_0000: 0x0000_0000_0001_0100, 0x0001_0001_0001_0100: 0x0000_0000_0000_0100,
+ 0x0001_0001_0100_0000: 0x0000_0000_0101_0100, 0x0001_0001_0100_0100: 0x0000_0000_0000_0100, 0x0001_0001_0101_0000: 0x0000_0000_0001_0100, 0x0001_0001_0101_0100: 0x0000_0000_0000_0100,
+ 0x0001_0100_0000_0000: 0x0000_0101_0101_0100, 0x0001_0100_0000_0100: 0x0000_0000_0000_0100, 0x0001_0100_0001_0000: 0x0000_0000_0001_0100, 0x0001_0100_0001_0100: 0x0000_0000_0000_0100,
+ 0x0001_0100_0100_0000: 0x0000_0000_0101_0100, 0x0001_0100_0100_0100: 0x0000_0000_0000_0100, 0x0001_0100_0101_0000: 0x0000_0000_0001_0100, 0x0001_0100_0101_0100: 0x0000_0000_0000_0100,
+ 0x0001_0101_0000_0000: 0x0000_0001_0101_0100, 0x0001_0101_0000_0100: 0x0000_0000_0000_0100, 0x0001_0101_0001_0000: 0x0000_0000_0001_0100, 0x0001_0101_0001_0100: 0x0000_0000_0000_0100,
+ 0x0001_0101_0100_0000: 0x0000_0000_0101_0100, 0x0001_0101_0100_0100: 0x0000_0000_0000_0100, 0x0001_0101_0101_0000: 0x0000_0000_0001_0100, 0x0001_0101_0101_0100: 0x0000_0000_0000_0100,
+ 0x0100_0000_0000_0000: 0x0101_0101_0101_0100, 0x0100_0000_0000_0100: 0x0000_0000_0000_0100, 0x0100_0000_0001_0000: 0x0000_0000_0001_0100, 0x0100_0000_0001_0100: 0x0000_0000_0000_0100,
+ 0x0100_0000_0100_0000: 0x0000_0000_0101_0100, 0x0100_0000_0100_0100: 0x0000_0000_0000_0100, 0x0100_0000_0101_0000: 0x0000_0000_0001_0100, 0x0100_0000_0101_0100: 0x0000_0000_0000_0100,
+ 0x0100_0001_0000_0000: 0x0000_0001_0101_0100, 0x0100_0001_0000_0100: 0x0000_0000_0000_0100, 0x0100_0001_0001_0000: 0x0000_0000_0001_0100, 0x0100_0001_0001_0100: 0x0000_0000_0000_0100,
+ 0x0100_0001_0100_0000: 0x0000_0000_0101_0100, 0x0100_0001_0100_0100: 0x0000_0000_0000_0100, 0x0100_0001_0101_0000: 0x0000_0000_0001_0100, 0x0100_0001_0101_0100: 0x0000_0000_0000_0100,
+ 0x0100_0100_0000_0000: 0x0000_0101_0101_0100, 0x0100_0100_0000_0100: 0x0000_0000_0000_0100, 0x0100_0100_0001_0000: 0x0000_0000_0001_0100, 0x0100_0100_0001_0100: 0x0000_0000_0000_0100,
+ 0x0100_0100_0100_0000: 0x0000_0000_0101_0100, 0x0100_0100_0100_0100: 0x0000_0000_0000_0100, 0x0100_0100_0101_0000: 0x0000_0000_0001_0100, 0x0100_0100_0101_0100: 0x0000_0000_0000_0100,
+ 0x0100_0101_0000_0000: 0x0000_0001_0101_0100, 0x0100_0101_0000_0100: 0x0000_0000_0000_0100, 0x0100_0101_0001_0000: 0x0000_0000_0001_0100, 0x0100_0101_0001_0100: 0x0000_0000_0000_0100,
+ 0x0100_0101_0100_0000: 0x0000_0000_0101_0100, 0x0100_0101_0100_0100: 0x0000_0000_0000_0100, 0x0100_0101_0101_0000: 0x0000_0000_0001_0100, 0x0100_0101_0101_0100: 0x0000_0000_0000_0100,
+ 0x0101_0000_0000_0000: 0x0001_0101_0101_0100, 0x0101_0000_0000_0100: 0x0000_0000_0000_0100, 0x0101_0000_0001_0000: 0x0000_0000_0001_0100, 0x0101_0000_0001_0100: 0x0000_0000_0000_0100,
+ 0x0101_0000_0100_0000: 0x0000_0000_0101_0100, 0x0101_0000_0100_0100: 0x0000_0000_0000_0100, 0x0101_0000_0101_0000: 0x0000_0000_0001_0100, 0x0101_0000_0101_0100: 0x0000_0000_0000_0100,
+ 0x0101_0001_0000_0000: 0x0000_0001_0101_0100, 0x0101_0001_0000_0100: 0x0000_0000_0000_0100, 0x0101_0001_0001_0000: 0x0000_0000_0001_0100, 0x0101_0001_0001_0100: 0x0000_0000_0000_0100,
+ 0x0101_0001_0100_0000: 0x0000_0000_0101_0100, 0x0101_0001_0100_0100: 0x0000_0000_0000_0100, 0x0101_0001_0101_0000: 0x0000_0000_0001_0100, 0x0101_0001_0101_0100: 0x0000_0000_0000_0100,
+ 0x0101_0100_0000_0000: 0x0000_0101_0101_0100, 0x0101_0100_0000_0100: 0x0000_0000_0000_0100, 0x0101_0100_0001_0000: 0x0000_0000_0001_0100, 0x0101_0100_0001_0100: 0x0000_0000_0000_0100,
+ 0x0101_0100_0100_0000: 0x0000_0000_0101_0100, 0x0101_0100_0100_0100: 0x0000_0000_0000_0100, 0x0101_0100_0101_0000: 0x0000_0000_0001_0100, 0x0101_0100_0101_0100: 0x0000_0000_0000_0100,
+ 0x0101_0101_0000_0000: 0x0000_0001_0101_0100, 0x0101_0101_0000_0100: 0x0000_0000_0000_0100, 0x0101_0101_0001_0000: 0x0000_0000_0001_0100, 0x0101_0101_0001_0100: 0x0000_0000_0000_0100,
+ 0x0101_0101_0100_0000: 0x0000_0000_0101_0100, 0x0101_0101_0100_0100: 0x0000_0000_0000_0100, 0x0101_0101_0101_0000: 0x0000_0000_0001_0100, 0x0101_0101_0101_0100: 0x0000_0000_0000_0100,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0202_0202_0202_0200, 0x0000_0000_0000_0200: 0x0000_0000_0000_0200, 0x0000_0000_0002_0000: 0x0000_0000_0002_0200, 0x0000_0000_0002_0200: 0x0000_0000_0000_0200,
+ 0x0000_0000_0200_0000: 0x0000_0000_0202_0200, 0x0000_0000_0200_0200: 0x0000_0000_0000_0200, 0x0000_0000_0202_0000: 0x0000_0000_0002_0200, 0x0000_0000_0202_0200: 0x0000_0000_0000_0200,
+ 0x0000_0002_0000_0000: 0x0000_0002_0202_0200, 0x0000_0002_0000_0200: 0x0000_0000_0000_0200, 0x0000_0002_0002_0000: 0x0000_0000_0002_0200, 0x0000_0002_0002_0200: 0x0000_0000_0000_0200,
+ 0x0000_0002_0200_0000: 0x0000_0000_0202_0200, 0x0000_0002_0200_0200: 0x0000_0000_0000_0200, 0x0000_0002_0202_0000: 0x0000_0000_0002_0200, 0x0000_0002_0202_0200: 0x0000_0000_0000_0200,
+ 0x0000_0200_0000_0000: 0x0000_0202_0202_0200, 0x0000_0200_0000_0200: 0x0000_0000_0000_0200, 0x0000_0200_0002_0000: 0x0000_0000_0002_0200, 0x0000_0200_0002_0200: 0x0000_0000_0000_0200,
+ 0x0000_0200_0200_0000: 0x0000_0000_0202_0200, 0x0000_0200_0200_0200: 0x0000_0000_0000_0200, 0x0000_0200_0202_0000: 0x0000_0000_0002_0200, 0x0000_0200_0202_0200: 0x0000_0000_0000_0200,
+ 0x0000_0202_0000_0000: 0x0000_0002_0202_0200, 0x0000_0202_0000_0200: 0x0000_0000_0000_0200, 0x0000_0202_0002_0000: 0x0000_0000_0002_0200, 0x0000_0202_0002_0200: 0x0000_0000_0000_0200,
+ 0x0000_0202_0200_0000: 0x0000_0000_0202_0200, 0x0000_0202_0200_0200: 0x0000_0000_0000_0200, 0x0000_0202_0202_0000: 0x0000_0000_0002_0200, 0x0000_0202_0202_0200: 0x0000_0000_0000_0200,
+ 0x0002_0000_0000_0000: 0x0002_0202_0202_0200, 0x0002_0000_0000_0200: 0x0000_0000_0000_0200, 0x0002_0000_0002_0000: 0x0000_0000_0002_0200, 0x0002_0000_0002_0200: 0x0000_0000_0000_0200,
+ 0x0002_0000_0200_0000: 0x0000_0000_0202_0200, 0x0002_0000_0200_0200: 0x0000_0000_0000_0200, 0x0002_0000_0202_0000: 0x0000_0000_0002_0200, 0x0002_0000_0202_0200: 0x0000_0000_0000_0200,
+ 0x0002_0002_0000_0000: 0x0000_0002_0202_0200, 0x0002_0002_0000_0200: 0x0000_0000_0000_0200, 0x0002_0002_0002_0000: 0x0000_0000_0002_0200, 0x0002_0002_0002_0200: 0x0000_0000_0000_0200,
+ 0x0002_0002_0200_0000: 0x0000_0000_0202_0200, 0x0002_0002_0200_0200: 0x0000_0000_0000_0200, 0x0002_0002_0202_0000: 0x0000_0000_0002_0200, 0x0002_0002_0202_0200: 0x0000_0000_0000_0200,
+ 0x0002_0200_0000_0000: 0x0000_0202_0202_0200, 0x0002_0200_0000_0200: 0x0000_0000_0000_0200, 0x0002_0200_0002_0000: 0x0000_0000_0002_0200, 0x0002_0200_0002_0200: 0x0000_0000_0000_0200,
+ 0x0002_0200_0200_0000: 0x0000_0000_0202_0200, 0x0002_0200_0200_0200: 0x0000_0000_0000_0200, 0x0002_0200_0202_0000: 0x0000_0000_0002_0200, 0x0002_0200_0202_0200: 0x0000_0000_0000_0200,
+ 0x0002_0202_0000_0000: 0x0000_0002_0202_0200, 0x0002_0202_0000_0200: 0x0000_0000_0000_0200, 0x0002_0202_0002_0000: 0x0000_0000_0002_0200, 0x0002_0202_0002_0200: 0x0000_0000_0000_0200,
+ 0x0002_0202_0200_0000: 0x0000_0000_0202_0200, 0x0002_0202_0200_0200: 0x0000_0000_0000_0200, 0x0002_0202_0202_0000: 0x0000_0000_0002_0200, 0x0002_0202_0202_0200: 0x0000_0000_0000_0200,
+ 0x0200_0000_0000_0000: 0x0202_0202_0202_0200, 0x0200_0000_0000_0200: 0x0000_0000_0000_0200, 0x0200_0000_0002_0000: 0x0000_0000_0002_0200, 0x0200_0000_0002_0200: 0x0000_0000_0000_0200,
+ 0x0200_0000_0200_0000: 0x0000_0000_0202_0200, 0x0200_0000_0200_0200: 0x0000_0000_0000_0200, 0x0200_0000_0202_0000: 0x0000_0000_0002_0200, 0x0200_0000_0202_0200: 0x0000_0000_0000_0200,
+ 0x0200_0002_0000_0000: 0x0000_0002_0202_0200, 0x0200_0002_0000_0200: 0x0000_0000_0000_0200, 0x0200_0002_0002_0000: 0x0000_0000_0002_0200, 0x0200_0002_0002_0200: 0x0000_0000_0000_0200,
+ 0x0200_0002_0200_0000: 0x0000_0000_0202_0200, 0x0200_0002_0200_0200: 0x0000_0000_0000_0200, 0x0200_0002_0202_0000: 0x0000_0000_0002_0200, 0x0200_0002_0202_0200: 0x0000_0000_0000_0200,
+ 0x0200_0200_0000_0000: 0x0000_0202_0202_0200, 0x0200_0200_0000_0200: 0x0000_0000_0000_0200, 0x0200_0200_0002_0000: 0x0000_0000_0002_0200, 0x0200_0200_0002_0200: 0x0000_0000_0000_0200,
+ 0x0200_0200_0200_0000: 0x0000_0000_0202_0200, 0x0200_0200_0200_0200: 0x0000_0000_0000_0200, 0x0200_0200_0202_0000: 0x0000_0000_0002_0200, 0x0200_0200_0202_0200: 0x0000_0000_0000_0200,
+ 0x0200_0202_0000_0000: 0x0000_0002_0202_0200, 0x0200_0202_0000_0200: 0x0000_0000_0000_0200, 0x0200_0202_0002_0000: 0x0000_0000_0002_0200, 0x0200_0202_0002_0200: 0x0000_0000_0000_0200,
+ 0x0200_0202_0200_0000: 0x0000_0000_0202_0200, 0x0200_0202_0200_0200: 0x0000_0000_0000_0200, 0x0200_0202_0202_0000: 0x0000_0000_0002_0200, 0x0200_0202_0202_0200: 0x0000_0000_0000_0200,
+ 0x0202_0000_0000_0000: 0x0002_0202_0202_0200, 0x0202_0000_0000_0200: 0x0000_0000_0000_0200, 0x0202_0000_0002_0000: 0x0000_0000_0002_0200, 0x0202_0000_0002_0200: 0x0000_0000_0000_0200,
+ 0x0202_0000_0200_0000: 0x0000_0000_0202_0200, 0x0202_0000_0200_0200: 0x0000_0000_0000_0200, 0x0202_0000_0202_0000: 0x0000_0000_0002_0200, 0x0202_0000_0202_0200: 0x0000_0000_0000_0200,
+ 0x0202_0002_0000_0000: 0x0000_0002_0202_0200, 0x0202_0002_0000_0200: 0x0000_0000_0000_0200, 0x0202_0002_0002_0000: 0x0000_0000_0002_0200, 0x0202_0002_0002_0200: 0x0000_0000_0000_0200,
+ 0x0202_0002_0200_0000: 0x0000_0000_0202_0200, 0x0202_0002_0200_0200: 0x0000_0000_0000_0200, 0x0202_0002_0202_0000: 0x0000_0000_0002_0200, 0x0202_0002_0202_0200: 0x0000_0000_0000_0200,
+ 0x0202_0200_0000_0000: 0x0000_0202_0202_0200, 0x0202_0200_0000_0200: 0x0000_0000_0000_0200, 0x0202_0200_0002_0000: 0x0000_0000_0002_0200, 0x0202_0200_0002_0200: 0x0000_0000_0000_0200,
+ 0x0202_0200_0200_0000: 0x0000_0000_0202_0200, 0x0202_0200_0200_0200: 0x0000_0000_0000_0200, 0x0202_0200_0202_0000: 0x0000_0000_0002_0200, 0x0202_0200_0202_0200: 0x0000_0000_0000_0200,
+ 0x0202_0202_0000_0000: 0x0000_0002_0202_0200, 0x0202_0202_0000_0200: 0x0000_0000_0000_0200, 0x0202_0202_0002_0000: 0x0000_0000_0002_0200, 0x0202_0202_0002_0200: 0x0000_0000_0000_0200,
+ 0x0202_0202_0200_0000: 0x0000_0000_0202_0200, 0x0202_0202_0200_0200: 0x0000_0000_0000_0200, 0x0202_0202_0202_0000: 0x0000_0000_0002_0200, 0x0202_0202_0202_0200: 0x0000_0000_0000_0200,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0404_0404_0404_0400, 0x0000_0000_0000_0400: 0x0000_0000_0000_0400, 0x0000_0000_0004_0000: 0x0000_0000_0004_0400, 0x0000_0000_0004_0400: 0x0000_0000_0000_0400,
+ 0x0000_0000_0400_0000: 0x0000_0000_0404_0400, 0x0000_0000_0400_0400: 0x0000_0000_0000_0400, 0x0000_0000_0404_0000: 0x0000_0000_0004_0400, 0x0000_0000_0404_0400: 0x0000_0000_0000_0400,
+ 0x0000_0004_0000_0000: 0x0000_0004_0404_0400, 0x0000_0004_0000_0400: 0x0000_0000_0000_0400, 0x0000_0004_0004_0000: 0x0000_0000_0004_0400, 0x0000_0004_0004_0400: 0x0000_0000_0000_0400,
+ 0x0000_0004_0400_0000: 0x0000_0000_0404_0400, 0x0000_0004_0400_0400: 0x0000_0000_0000_0400, 0x0000_0004_0404_0000: 0x0000_0000_0004_0400, 0x0000_0004_0404_0400: 0x0000_0000_0000_0400,
+ 0x0000_0400_0000_0000: 0x0000_0404_0404_0400, 0x0000_0400_0000_0400: 0x0000_0000_0000_0400, 0x0000_0400_0004_0000: 0x0000_0000_0004_0400, 0x0000_0400_0004_0400: 0x0000_0000_0000_0400,
+ 0x0000_0400_0400_0000: 0x0000_0000_0404_0400, 0x0000_0400_0400_0400: 0x0000_0000_0000_0400, 0x0000_0400_0404_0000: 0x0000_0000_0004_0400, 0x0000_0400_0404_0400: 0x0000_0000_0000_0400,
+ 0x0000_0404_0000_0000: 0x0000_0004_0404_0400, 0x0000_0404_0000_0400: 0x0000_0000_0000_0400, 0x0000_0404_0004_0000: 0x0000_0000_0004_0400, 0x0000_0404_0004_0400: 0x0000_0000_0000_0400,
+ 0x0000_0404_0400_0000: 0x0000_0000_0404_0400, 0x0000_0404_0400_0400: 0x0000_0000_0000_0400, 0x0000_0404_0404_0000: 0x0000_0000_0004_0400, 0x0000_0404_0404_0400: 0x0000_0000_0000_0400,
+ 0x0004_0000_0000_0000: 0x0004_0404_0404_0400, 0x0004_0000_0000_0400: 0x0000_0000_0000_0400, 0x0004_0000_0004_0000: 0x0000_0000_0004_0400, 0x0004_0000_0004_0400: 0x0000_0000_0000_0400,
+ 0x0004_0000_0400_0000: 0x0000_0000_0404_0400, 0x0004_0000_0400_0400: 0x0000_0000_0000_0400, 0x0004_0000_0404_0000: 0x0000_0000_0004_0400, 0x0004_0000_0404_0400: 0x0000_0000_0000_0400,
+ 0x0004_0004_0000_0000: 0x0000_0004_0404_0400, 0x0004_0004_0000_0400: 0x0000_0000_0000_0400, 0x0004_0004_0004_0000: 0x0000_0000_0004_0400, 0x0004_0004_0004_0400: 0x0000_0000_0000_0400,
+ 0x0004_0004_0400_0000: 0x0000_0000_0404_0400, 0x0004_0004_0400_0400: 0x0000_0000_0000_0400, 0x0004_0004_0404_0000: 0x0000_0000_0004_0400, 0x0004_0004_0404_0400: 0x0000_0000_0000_0400,
+ 0x0004_0400_0000_0000: 0x0000_0404_0404_0400, 0x0004_0400_0000_0400: 0x0000_0000_0000_0400, 0x0004_0400_0004_0000: 0x0000_0000_0004_0400, 0x0004_0400_0004_0400: 0x0000_0000_0000_0400,
+ 0x0004_0400_0400_0000: 0x0000_0000_0404_0400, 0x0004_0400_0400_0400: 0x0000_0000_0000_0400, 0x0004_0400_0404_0000: 0x0000_0000_0004_0400, 0x0004_0400_0404_0400: 0x0000_0000_0000_0400,
+ 0x0004_0404_0000_0000: 0x0000_0004_0404_0400, 0x0004_0404_0000_0400: 0x0000_0000_0000_0400, 0x0004_0404_0004_0000: 0x0000_0000_0004_0400, 0x0004_0404_0004_0400: 0x0000_0000_0000_0400,
+ 0x0004_0404_0400_0000: 0x0000_0000_0404_0400, 0x0004_0404_0400_0400: 0x0000_0000_0000_0400, 0x0004_0404_0404_0000: 0x0000_0000_0004_0400, 0x0004_0404_0404_0400: 0x0000_0000_0000_0400,
+ 0x0400_0000_0000_0000: 0x0404_0404_0404_0400, 0x0400_0000_0000_0400: 0x0000_0000_0000_0400, 0x0400_0000_0004_0000: 0x0000_0000_0004_0400, 0x0400_0000_0004_0400: 0x0000_0000_0000_0400,
+ 0x0400_0000_0400_0000: 0x0000_0000_0404_0400, 0x0400_0000_0400_0400: 0x0000_0000_0000_0400, 0x0400_0000_0404_0000: 0x0000_0000_0004_0400, 0x0400_0000_0404_0400: 0x0000_0000_0000_0400,
+ 0x0400_0004_0000_0000: 0x0000_0004_0404_0400, 0x0400_0004_0000_0400: 0x0000_0000_0000_0400, 0x0400_0004_0004_0000: 0x0000_0000_0004_0400, 0x0400_0004_0004_0400: 0x0000_0000_0000_0400,
+ 0x0400_0004_0400_0000: 0x0000_0000_0404_0400, 0x0400_0004_0400_0400: 0x0000_0000_0000_0400, 0x0400_0004_0404_0000: 0x0000_0000_0004_0400, 0x0400_0004_0404_0400: 0x0000_0000_0000_0400,
+ 0x0400_0400_0000_0000: 0x0000_0404_0404_0400, 0x0400_0400_0000_0400: 0x0000_0000_0000_0400, 0x0400_0400_0004_0000: 0x0000_0000_0004_0400, 0x0400_0400_0004_0400: 0x0000_0000_0000_0400,
+ 0x0400_0400_0400_0000: 0x0000_0000_0404_0400, 0x0400_0400_0400_0400: 0x0000_0000_0000_0400, 0x0400_0400_0404_0000: 0x0000_0000_0004_0400, 0x0400_0400_0404_0400: 0x0000_0000_0000_0400,
+ 0x0400_0404_0000_0000: 0x0000_0004_0404_0400, 0x0400_0404_0000_0400: 0x0000_0000_0000_0400, 0x0400_0404_0004_0000: 0x0000_0000_0004_0400, 0x0400_0404_0004_0400: 0x0000_0000_0000_0400,
+ 0x0400_0404_0400_0000: 0x0000_0000_0404_0400, 0x0400_0404_0400_0400: 0x0000_0000_0000_0400, 0x0400_0404_0404_0000: 0x0000_0000_0004_0400, 0x0400_0404_0404_0400: 0x0000_0000_0000_0400,
+ 0x0404_0000_0000_0000: 0x0004_0404_0404_0400, 0x0404_0000_0000_0400: 0x0000_0000_0000_0400, 0x0404_0000_0004_0000: 0x0000_0000_0004_0400, 0x0404_0000_0004_0400: 0x0000_0000_0000_0400,
+ 0x0404_0000_0400_0000: 0x0000_0000_0404_0400, 0x0404_0000_0400_0400: 0x0000_0000_0000_0400, 0x0404_0000_0404_0000: 0x0000_0000_0004_0400, 0x0404_0000_0404_0400: 0x0000_0000_0000_0400,
+ 0x0404_0004_0000_0000: 0x0000_0004_0404_0400, 0x0404_0004_0000_0400: 0x0000_0000_0000_0400, 0x0404_0004_0004_0000: 0x0000_0000_0004_0400, 0x0404_0004_0004_0400: 0x0000_0000_0000_0400,
+ 0x0404_0004_0400_0000: 0x0000_0000_0404_0400, 0x0404_0004_0400_0400: 0x0000_0000_0000_0400, 0x0404_0004_0404_0000: 0x0000_0000_0004_0400, 0x0404_0004_0404_0400: 0x0000_0000_0000_0400,
+ 0x0404_0400_0000_0000: 0x0000_0404_0404_0400, 0x0404_0400_0000_0400: 0x0000_0000_0000_0400, 0x0404_0400_0004_0000: 0x0000_0000_0004_0400, 0x0404_0400_0004_0400: 0x0000_0000_0000_0400,
+ 0x0404_0400_0400_0000: 0x0000_0000_0404_0400, 0x0404_0400_0400_0400: 0x0000_0000_0000_0400, 0x0404_0400_0404_0000: 0x0000_0000_0004_0400, 0x0404_0400_0404_0400: 0x0000_0000_0000_0400,
+ 0x0404_0404_0000_0000: 0x0000_0004_0404_0400, 0x0404_0404_0000_0400: 0x0000_0000_0000_0400, 0x0404_0404_0004_0000: 0x0000_0000_0004_0400, 0x0404_0404_0004_0400: 0x0000_0000_0000_0400,
+ 0x0404_0404_0400_0000: 0x0000_0000_0404_0400, 0x0404_0404_0400_0400: 0x0000_0000_0000_0400, 0x0404_0404_0404_0000: 0x0000_0000_0004_0400, 0x0404_0404_0404_0400: 0x0000_0000_0000_0400,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0808_0808_0808_0800, 0x0000_0000_0000_0800: 0x0000_0000_0000_0800, 0x0000_0000_0008_0000: 0x0000_0000_0008_0800, 0x0000_0000_0008_0800: 0x0000_0000_0000_0800,
+ 0x0000_0000_0800_0000: 0x0000_0000_0808_0800, 0x0000_0000_0800_0800: 0x0000_0000_0000_0800, 0x0000_0000_0808_0000: 0x0000_0000_0008_0800, 0x0000_0000_0808_0800: 0x0000_0000_0000_0800,
+ 0x0000_0008_0000_0000: 0x0000_0008_0808_0800, 0x0000_0008_0000_0800: 0x0000_0000_0000_0800, 0x0000_0008_0008_0000: 0x0000_0000_0008_0800, 0x0000_0008_0008_0800: 0x0000_0000_0000_0800,
+ 0x0000_0008_0800_0000: 0x0000_0000_0808_0800, 0x0000_0008_0800_0800: 0x0000_0000_0000_0800, 0x0000_0008_0808_0000: 0x0000_0000_0008_0800, 0x0000_0008_0808_0800: 0x0000_0000_0000_0800,
+ 0x0000_0800_0000_0000: 0x0000_0808_0808_0800, 0x0000_0800_0000_0800: 0x0000_0000_0000_0800, 0x0000_0800_0008_0000: 0x0000_0000_0008_0800, 0x0000_0800_0008_0800: 0x0000_0000_0000_0800,
+ 0x0000_0800_0800_0000: 0x0000_0000_0808_0800, 0x0000_0800_0800_0800: 0x0000_0000_0000_0800, 0x0000_0800_0808_0000: 0x0000_0000_0008_0800, 0x0000_0800_0808_0800: 0x0000_0000_0000_0800,
+ 0x0000_0808_0000_0000: 0x0000_0008_0808_0800, 0x0000_0808_0000_0800: 0x0000_0000_0000_0800, 0x0000_0808_0008_0000: 0x0000_0000_0008_0800, 0x0000_0808_0008_0800: 0x0000_0000_0000_0800,
+ 0x0000_0808_0800_0000: 0x0000_0000_0808_0800, 0x0000_0808_0800_0800: 0x0000_0000_0000_0800, 0x0000_0808_0808_0000: 0x0000_0000_0008_0800, 0x0000_0808_0808_0800: 0x0000_0000_0000_0800,
+ 0x0008_0000_0000_0000: 0x0008_0808_0808_0800, 0x0008_0000_0000_0800: 0x0000_0000_0000_0800, 0x0008_0000_0008_0000: 0x0000_0000_0008_0800, 0x0008_0000_0008_0800: 0x0000_0000_0000_0800,
+ 0x0008_0000_0800_0000: 0x0000_0000_0808_0800, 0x0008_0000_0800_0800: 0x0000_0000_0000_0800, 0x0008_0000_0808_0000: 0x0000_0000_0008_0800, 0x0008_0000_0808_0800: 0x0000_0000_0000_0800,
+ 0x0008_0008_0000_0000: 0x0000_0008_0808_0800, 0x0008_0008_0000_0800: 0x0000_0000_0000_0800, 0x0008_0008_0008_0000: 0x0000_0000_0008_0800, 0x0008_0008_0008_0800: 0x0000_0000_0000_0800,
+ 0x0008_0008_0800_0000: 0x0000_0000_0808_0800, 0x0008_0008_0800_0800: 0x0000_0000_0000_0800, 0x0008_0008_0808_0000: 0x0000_0000_0008_0800, 0x0008_0008_0808_0800: 0x0000_0000_0000_0800,
+ 0x0008_0800_0000_0000: 0x0000_0808_0808_0800, 0x0008_0800_0000_0800: 0x0000_0000_0000_0800, 0x0008_0800_0008_0000: 0x0000_0000_0008_0800, 0x0008_0800_0008_0800: 0x0000_0000_0000_0800,
+ 0x0008_0800_0800_0000: 0x0000_0000_0808_0800, 0x0008_0800_0800_0800: 0x0000_0000_0000_0800, 0x0008_0800_0808_0000: 0x0000_0000_0008_0800, 0x0008_0800_0808_0800: 0x0000_0000_0000_0800,
+ 0x0008_0808_0000_0000: 0x0000_0008_0808_0800, 0x0008_0808_0000_0800: 0x0000_0000_0000_0800, 0x0008_0808_0008_0000: 0x0000_0000_0008_0800, 0x0008_0808_0008_0800: 0x0000_0000_0000_0800,
+ 0x0008_0808_0800_0000: 0x0000_0000_0808_0800, 0x0008_0808_0800_0800: 0x0000_0000_0000_0800, 0x0008_0808_0808_0000: 0x0000_0000_0008_0800, 0x0008_0808_0808_0800: 0x0000_0000_0000_0800,
+ 0x0800_0000_0000_0000: 0x0808_0808_0808_0800, 0x0800_0000_0000_0800: 0x0000_0000_0000_0800, 0x0800_0000_0008_0000: 0x0000_0000_0008_0800, 0x0800_0000_0008_0800: 0x0000_0000_0000_0800,
+ 0x0800_0000_0800_0000: 0x0000_0000_0808_0800, 0x0800_0000_0800_0800: 0x0000_0000_0000_0800, 0x0800_0000_0808_0000: 0x0000_0000_0008_0800, 0x0800_0000_0808_0800: 0x0000_0000_0000_0800,
+ 0x0800_0008_0000_0000: 0x0000_0008_0808_0800, 0x0800_0008_0000_0800: 0x0000_0000_0000_0800, 0x0800_0008_0008_0000: 0x0000_0000_0008_0800, 0x0800_0008_0008_0800: 0x0000_0000_0000_0800,
+ 0x0800_0008_0800_0000: 0x0000_0000_0808_0800, 0x0800_0008_0800_0800: 0x0000_0000_0000_0800, 0x0800_0008_0808_0000: 0x0000_0000_0008_0800, 0x0800_0008_0808_0800: 0x0000_0000_0000_0800,
+ 0x0800_0800_0000_0000: 0x0000_0808_0808_0800, 0x0800_0800_0000_0800: 0x0000_0000_0000_0800, 0x0800_0800_0008_0000: 0x0000_0000_0008_0800, 0x0800_0800_0008_0800: 0x0000_0000_0000_0800,
+ 0x0800_0800_0800_0000: 0x0000_0000_0808_0800, 0x0800_0800_0800_0800: 0x0000_0000_0000_0800, 0x0800_0800_0808_0000: 0x0000_0000_0008_0800, 0x0800_0800_0808_0800: 0x0000_0000_0000_0800,
+ 0x0800_0808_0000_0000: 0x0000_0008_0808_0800, 0x0800_0808_0000_0800: 0x0000_0000_0000_0800, 0x0800_0808_0008_0000: 0x0000_0000_0008_0800, 0x0800_0808_0008_0800: 0x0000_0000_0000_0800,
+ 0x0800_0808_0800_0000: 0x0000_0000_0808_0800, 0x0800_0808_0800_0800: 0x0000_0000_0000_0800, 0x0800_0808_0808_0000: 0x0000_0000_0008_0800, 0x0800_0808_0808_0800: 0x0000_0000_0000_0800,
+ 0x0808_0000_0000_0000: 0x0008_0808_0808_0800, 0x0808_0000_0000_0800: 0x0000_0000_0000_0800, 0x0808_0000_0008_0000: 0x0000_0000_0008_0800, 0x0808_0000_0008_0800: 0x0000_0000_0000_0800,
+ 0x0808_0000_0800_0000: 0x0000_0000_0808_0800, 0x0808_0000_0800_0800: 0x0000_0000_0000_0800, 0x0808_0000_0808_0000: 0x0000_0000_0008_0800, 0x0808_0000_0808_0800: 0x0000_0000_0000_0800,
+ 0x0808_0008_0000_0000: 0x0000_0008_0808_0800, 0x0808_0008_0000_0800: 0x0000_0000_0000_0800, 0x0808_0008_0008_0000: 0x0000_0000_0008_0800, 0x0808_0008_0008_0800: 0x0000_0000_0000_0800,
+ 0x0808_0008_0800_0000: 0x0000_0000_0808_0800, 0x0808_0008_0800_0800: 0x0000_0000_0000_0800, 0x0808_0008_0808_0000: 0x0000_0000_0008_0800, 0x0808_0008_0808_0800: 0x0000_0000_0000_0800,
+ 0x0808_0800_0000_0000: 0x0000_0808_0808_0800, 0x0808_0800_0000_0800: 0x0000_0000_0000_0800, 0x0808_0800_0008_0000: 0x0000_0000_0008_0800, 0x0808_0800_0008_0800: 0x0000_0000_0000_0800,
+ 0x0808_0800_0800_0000: 0x0000_0000_0808_0800, 0x0808_0800_0800_0800: 0x0000_0000_0000_0800, 0x0808_0800_0808_0000: 0x0000_0000_0008_0800, 0x0808_0800_0808_0800: 0x0000_0000_0000_0800,
+ 0x0808_0808_0000_0000: 0x0000_0008_0808_0800, 0x0808_0808_0000_0800: 0x0000_0000_0000_0800, 0x0808_0808_0008_0000: 0x0000_0000_0008_0800, 0x0808_0808_0008_0800: 0x0000_0000_0000_0800,
+ 0x0808_0808_0800_0000: 0x0000_0000_0808_0800, 0x0808_0808_0800_0800: 0x0000_0000_0000_0800, 0x0808_0808_0808_0000: 0x0000_0000_0008_0800, 0x0808_0808_0808_0800: 0x0000_0000_0000_0800,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x1010_1010_1010_1000, 0x0000_0000_0000_1000: 0x0000_0000_0000_1000, 0x0000_0000_0010_0000: 0x0000_0000_0010_1000, 0x0000_0000_0010_1000: 0x0000_0000_0000_1000,
+ 0x0000_0000_1000_0000: 0x0000_0000_1010_1000, 0x0000_0000_1000_1000: 0x0000_0000_0000_1000, 0x0000_0000_1010_0000: 0x0000_0000_0010_1000, 0x0000_0000_1010_1000: 0x0000_0000_0000_1000,
+ 0x0000_0010_0000_0000: 0x0000_0010_1010_1000, 0x0000_0010_0000_1000: 0x0000_0000_0000_1000, 0x0000_0010_0010_0000: 0x0000_0000_0010_1000, 0x0000_0010_0010_1000: 0x0000_0000_0000_1000,
+ 0x0000_0010_1000_0000: 0x0000_0000_1010_1000, 0x0000_0010_1000_1000: 0x0000_0000_0000_1000, 0x0000_0010_1010_0000: 0x0000_0000_0010_1000, 0x0000_0010_1010_1000: 0x0000_0000_0000_1000,
+ 0x0000_1000_0000_0000: 0x0000_1010_1010_1000, 0x0000_1000_0000_1000: 0x0000_0000_0000_1000, 0x0000_1000_0010_0000: 0x0000_0000_0010_1000, 0x0000_1000_0010_1000: 0x0000_0000_0000_1000,
+ 0x0000_1000_1000_0000: 0x0000_0000_1010_1000, 0x0000_1000_1000_1000: 0x0000_0000_0000_1000, 0x0000_1000_1010_0000: 0x0000_0000_0010_1000, 0x0000_1000_1010_1000: 0x0000_0000_0000_1000,
+ 0x0000_1010_0000_0000: 0x0000_0010_1010_1000, 0x0000_1010_0000_1000: 0x0000_0000_0000_1000, 0x0000_1010_0010_0000: 0x0000_0000_0010_1000, 0x0000_1010_0010_1000: 0x0000_0000_0000_1000,
+ 0x0000_1010_1000_0000: 0x0000_0000_1010_1000, 0x0000_1010_1000_1000: 0x0000_0000_0000_1000, 0x0000_1010_1010_0000: 0x0000_0000_0010_1000, 0x0000_1010_1010_1000: 0x0000_0000_0000_1000,
+ 0x0010_0000_0000_0000: 0x0010_1010_1010_1000, 0x0010_0000_0000_1000: 0x0000_0000_0000_1000, 0x0010_0000_0010_0000: 0x0000_0000_0010_1000, 0x0010_0000_0010_1000: 0x0000_0000_0000_1000,
+ 0x0010_0000_1000_0000: 0x0000_0000_1010_1000, 0x0010_0000_1000_1000: 0x0000_0000_0000_1000, 0x0010_0000_1010_0000: 0x0000_0000_0010_1000, 0x0010_0000_1010_1000: 0x0000_0000_0000_1000,
+ 0x0010_0010_0000_0000: 0x0000_0010_1010_1000, 0x0010_0010_0000_1000: 0x0000_0000_0000_1000, 0x0010_0010_0010_0000: 0x0000_0000_0010_1000, 0x0010_0010_0010_1000: 0x0000_0000_0000_1000,
+ 0x0010_0010_1000_0000: 0x0000_0000_1010_1000, 0x0010_0010_1000_1000: 0x0000_0000_0000_1000, 0x0010_0010_1010_0000: 0x0000_0000_0010_1000, 0x0010_0010_1010_1000: 0x0000_0000_0000_1000,
+ 0x0010_1000_0000_0000: 0x0000_1010_1010_1000, 0x0010_1000_0000_1000: 0x0000_0000_0000_1000, 0x0010_1000_0010_0000: 0x0000_0000_0010_1000, 0x0010_1000_0010_1000: 0x0000_0000_0000_1000,
+ 0x0010_1000_1000_0000: 0x0000_0000_1010_1000, 0x0010_1000_1000_1000: 0x0000_0000_0000_1000, 0x0010_1000_1010_0000: 0x0000_0000_0010_1000, 0x0010_1000_1010_1000: 0x0000_0000_0000_1000,
+ 0x0010_1010_0000_0000: 0x0000_0010_1010_1000, 0x0010_1010_0000_1000: 0x0000_0000_0000_1000, 0x0010_1010_0010_0000: 0x0000_0000_0010_1000, 0x0010_1010_0010_1000: 0x0000_0000_0000_1000,
+ 0x0010_1010_1000_0000: 0x0000_0000_1010_1000, 0x0010_1010_1000_1000: 0x0000_0000_0000_1000, 0x0010_1010_1010_0000: 0x0000_0000_0010_1000, 0x0010_1010_1010_1000: 0x0000_0000_0000_1000,
+ 0x1000_0000_0000_0000: 0x1010_1010_1010_1000, 0x1000_0000_0000_1000: 0x0000_0000_0000_1000, 0x1000_0000_0010_0000: 0x0000_0000_0010_1000, 0x1000_0000_0010_1000: 0x0000_0000_0000_1000,
+ 0x1000_0000_1000_0000: 0x0000_0000_1010_1000, 0x1000_0000_1000_1000: 0x0000_0000_0000_1000, 0x1000_0000_1010_0000: 0x0000_0000_0010_1000, 0x1000_0000_1010_1000: 0x0000_0000_0000_1000,
+ 0x1000_0010_0000_0000: 0x0000_0010_1010_1000, 0x1000_0010_0000_1000: 0x0000_0000_0000_1000, 0x1000_0010_0010_0000: 0x0000_0000_0010_1000, 0x1000_0010_0010_1000: 0x0000_0000_0000_1000,
+ 0x1000_0010_1000_0000: 0x0000_0000_1010_1000, 0x1000_0010_1000_1000: 0x0000_0000_0000_1000, 0x1000_0010_1010_0000: 0x0000_0000_0010_1000, 0x1000_0010_1010_1000: 0x0000_0000_0000_1000,
+ 0x1000_1000_0000_0000: 0x0000_1010_1010_1000, 0x1000_1000_0000_1000: 0x0000_0000_0000_1000, 0x1000_1000_0010_0000: 0x0000_0000_0010_1000, 0x1000_1000_0010_1000: 0x0000_0000_0000_1000,
+ 0x1000_1000_1000_0000: 0x0000_0000_1010_1000, 0x1000_1000_1000_1000: 0x0000_0000_0000_1000, 0x1000_1000_1010_0000: 0x0000_0000_0010_1000, 0x1000_1000_1010_1000: 0x0000_0000_0000_1000,
+ 0x1000_1010_0000_0000: 0x0000_0010_1010_1000, 0x1000_1010_0000_1000: 0x0000_0000_0000_1000, 0x1000_1010_0010_0000: 0x0000_0000_0010_1000, 0x1000_1010_0010_1000: 0x0000_0000_0000_1000,
+ 0x1000_1010_1000_0000: 0x0000_0000_1010_1000, 0x1000_1010_1000_1000: 0x0000_0000_0000_1000, 0x1000_1010_1010_0000: 0x0000_0000_0010_1000, 0x1000_1010_1010_1000: 0x0000_0000_0000_1000,
+ 0x1010_0000_0000_0000: 0x0010_1010_1010_1000, 0x1010_0000_0000_1000: 0x0000_0000_0000_1000, 0x1010_0000_0010_0000: 0x0000_0000_0010_1000, 0x1010_0000_0010_1000: 0x0000_0000_0000_1000,
+ 0x1010_0000_1000_0000: 0x0000_0000_1010_1000, 0x1010_0000_1000_1000: 0x0000_0000_0000_1000, 0x1010_0000_1010_0000: 0x0000_0000_0010_1000, 0x1010_0000_1010_1000: 0x0000_0000_0000_1000,
+ 0x1010_0010_0000_0000: 0x0000_0010_1010_1000, 0x1010_0010_0000_1000: 0x0000_0000_0000_1000, 0x1010_0010_0010_0000: 0x0000_0000_0010_1000, 0x1010_0010_0010_1000: 0x0000_0000_0000_1000,
+ 0x1010_0010_1000_0000: 0x0000_0000_1010_1000, 0x1010_0010_1000_1000: 0x0000_0000_0000_1000, 0x1010_0010_1010_0000: 0x0000_0000_0010_1000, 0x1010_0010_1010_1000: 0x0000_0000_0000_1000,
+ 0x1010_1000_0000_0000: 0x0000_1010_1010_1000, 0x1010_1000_0000_1000: 0x0000_0000_0000_1000, 0x1010_1000_0010_0000: 0x0000_0000_0010_1000, 0x1010_1000_0010_1000: 0x0000_0000_0000_1000,
+ 0x1010_1000_1000_0000: 0x0000_0000_1010_1000, 0x1010_1000_1000_1000: 0x0000_0000_0000_1000, 0x1010_1000_1010_0000: 0x0000_0000_0010_1000, 0x1010_1000_1010_1000: 0x0000_0000_0000_1000,
+ 0x1010_1010_0000_0000: 0x0000_0010_1010_1000, 0x1010_1010_0000_1000: 0x0000_0000_0000_1000, 0x1010_1010_0010_0000: 0x0000_0000_0010_1000, 0x1010_1010_0010_1000: 0x0000_0000_0000_1000,
+ 0x1010_1010_1000_0000: 0x0000_0000_1010_1000, 0x1010_1010_1000_1000: 0x0000_0000_0000_1000, 0x1010_1010_1010_0000: 0x0000_0000_0010_1000, 0x1010_1010_1010_1000: 0x0000_0000_0000_1000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x2020_2020_2020_2000, 0x0000_0000_0000_2000: 0x0000_0000_0000_2000, 0x0000_0000_0020_0000: 0x0000_0000_0020_2000, 0x0000_0000_0020_2000: 0x0000_0000_0000_2000,
+ 0x0000_0000_2000_0000: 0x0000_0000_2020_2000, 0x0000_0000_2000_2000: 0x0000_0000_0000_2000, 0x0000_0000_2020_0000: 0x0000_0000_0020_2000, 0x0000_0000_2020_2000: 0x0000_0000_0000_2000,
+ 0x0000_0020_0000_0000: 0x0000_0020_2020_2000, 0x0000_0020_0000_2000: 0x0000_0000_0000_2000, 0x0000_0020_0020_0000: 0x0000_0000_0020_2000, 0x0000_0020_0020_2000: 0x0000_0000_0000_2000,
+ 0x0000_0020_2000_0000: 0x0000_0000_2020_2000, 0x0000_0020_2000_2000: 0x0000_0000_0000_2000, 0x0000_0020_2020_0000: 0x0000_0000_0020_2000, 0x0000_0020_2020_2000: 0x0000_0000_0000_2000,
+ 0x0000_2000_0000_0000: 0x0000_2020_2020_2000, 0x0000_2000_0000_2000: 0x0000_0000_0000_2000, 0x0000_2000_0020_0000: 0x0000_0000_0020_2000, 0x0000_2000_0020_2000: 0x0000_0000_0000_2000,
+ 0x0000_2000_2000_0000: 0x0000_0000_2020_2000, 0x0000_2000_2000_2000: 0x0000_0000_0000_2000, 0x0000_2000_2020_0000: 0x0000_0000_0020_2000, 0x0000_2000_2020_2000: 0x0000_0000_0000_2000,
+ 0x0000_2020_0000_0000: 0x0000_0020_2020_2000, 0x0000_2020_0000_2000: 0x0000_0000_0000_2000, 0x0000_2020_0020_0000: 0x0000_0000_0020_2000, 0x0000_2020_0020_2000: 0x0000_0000_0000_2000,
+ 0x0000_2020_2000_0000: 0x0000_0000_2020_2000, 0x0000_2020_2000_2000: 0x0000_0000_0000_2000, 0x0000_2020_2020_0000: 0x0000_0000_0020_2000, 0x0000_2020_2020_2000: 0x0000_0000_0000_2000,
+ 0x0020_0000_0000_0000: 0x0020_2020_2020_2000, 0x0020_0000_0000_2000: 0x0000_0000_0000_2000, 0x0020_0000_0020_0000: 0x0000_0000_0020_2000, 0x0020_0000_0020_2000: 0x0000_0000_0000_2000,
+ 0x0020_0000_2000_0000: 0x0000_0000_2020_2000, 0x0020_0000_2000_2000: 0x0000_0000_0000_2000, 0x0020_0000_2020_0000: 0x0000_0000_0020_2000, 0x0020_0000_2020_2000: 0x0000_0000_0000_2000,
+ 0x0020_0020_0000_0000: 0x0000_0020_2020_2000, 0x0020_0020_0000_2000: 0x0000_0000_0000_2000, 0x0020_0020_0020_0000: 0x0000_0000_0020_2000, 0x0020_0020_0020_2000: 0x0000_0000_0000_2000,
+ 0x0020_0020_2000_0000: 0x0000_0000_2020_2000, 0x0020_0020_2000_2000: 0x0000_0000_0000_2000, 0x0020_0020_2020_0000: 0x0000_0000_0020_2000, 0x0020_0020_2020_2000: 0x0000_0000_0000_2000,
+ 0x0020_2000_0000_0000: 0x0000_2020_2020_2000, 0x0020_2000_0000_2000: 0x0000_0000_0000_2000, 0x0020_2000_0020_0000: 0x0000_0000_0020_2000, 0x0020_2000_0020_2000: 0x0000_0000_0000_2000,
+ 0x0020_2000_2000_0000: 0x0000_0000_2020_2000, 0x0020_2000_2000_2000: 0x0000_0000_0000_2000, 0x0020_2000_2020_0000: 0x0000_0000_0020_2000, 0x0020_2000_2020_2000: 0x0000_0000_0000_2000,
+ 0x0020_2020_0000_0000: 0x0000_0020_2020_2000, 0x0020_2020_0000_2000: 0x0000_0000_0000_2000, 0x0020_2020_0020_0000: 0x0000_0000_0020_2000, 0x0020_2020_0020_2000: 0x0000_0000_0000_2000,
+ 0x0020_2020_2000_0000: 0x0000_0000_2020_2000, 0x0020_2020_2000_2000: 0x0000_0000_0000_2000, 0x0020_2020_2020_0000: 0x0000_0000_0020_2000, 0x0020_2020_2020_2000: 0x0000_0000_0000_2000,
+ 0x2000_0000_0000_0000: 0x2020_2020_2020_2000, 0x2000_0000_0000_2000: 0x0000_0000_0000_2000, 0x2000_0000_0020_0000: 0x0000_0000_0020_2000, 0x2000_0000_0020_2000: 0x0000_0000_0000_2000,
+ 0x2000_0000_2000_0000: 0x0000_0000_2020_2000, 0x2000_0000_2000_2000: 0x0000_0000_0000_2000, 0x2000_0000_2020_0000: 0x0000_0000_0020_2000, 0x2000_0000_2020_2000: 0x0000_0000_0000_2000,
+ 0x2000_0020_0000_0000: 0x0000_0020_2020_2000, 0x2000_0020_0000_2000: 0x0000_0000_0000_2000, 0x2000_0020_0020_0000: 0x0000_0000_0020_2000, 0x2000_0020_0020_2000: 0x0000_0000_0000_2000,
+ 0x2000_0020_2000_0000: 0x0000_0000_2020_2000, 0x2000_0020_2000_2000: 0x0000_0000_0000_2000, 0x2000_0020_2020_0000: 0x0000_0000_0020_2000, 0x2000_0020_2020_2000: 0x0000_0000_0000_2000,
+ 0x2000_2000_0000_0000: 0x0000_2020_2020_2000, 0x2000_2000_0000_2000: 0x0000_0000_0000_2000, 0x2000_2000_0020_0000: 0x0000_0000_0020_2000, 0x2000_2000_0020_2000: 0x0000_0000_0000_2000,
+ 0x2000_2000_2000_0000: 0x0000_0000_2020_2000, 0x2000_2000_2000_2000: 0x0000_0000_0000_2000, 0x2000_2000_2020_0000: 0x0000_0000_0020_2000, 0x2000_2000_2020_2000: 0x0000_0000_0000_2000,
+ 0x2000_2020_0000_0000: 0x0000_0020_2020_2000, 0x2000_2020_0000_2000: 0x0000_0000_0000_2000, 0x2000_2020_0020_0000: 0x0000_0000_0020_2000, 0x2000_2020_0020_2000: 0x0000_0000_0000_2000,
+ 0x2000_2020_2000_0000: 0x0000_0000_2020_2000, 0x2000_2020_2000_2000: 0x0000_0000_0000_2000, 0x2000_2020_2020_0000: 0x0000_0000_0020_2000, 0x2000_2020_2020_2000: 0x0000_0000_0000_2000,
+ 0x2020_0000_0000_0000: 0x0020_2020_2020_2000, 0x2020_0000_0000_2000: 0x0000_0000_0000_2000, 0x2020_0000_0020_0000: 0x0000_0000_0020_2000, 0x2020_0000_0020_2000: 0x0000_0000_0000_2000,
+ 0x2020_0000_2000_0000: 0x0000_0000_2020_2000, 0x2020_0000_2000_2000: 0x0000_0000_0000_2000, 0x2020_0000_2020_0000: 0x0000_0000_0020_2000, 0x2020_0000_2020_2000: 0x0000_0000_0000_2000,
+ 0x2020_0020_0000_0000: 0x0000_0020_2020_2000, 0x2020_0020_0000_2000: 0x0000_0000_0000_2000, 0x2020_0020_0020_0000: 0x0000_0000_0020_2000, 0x2020_0020_0020_2000: 0x0000_0000_0000_2000,
+ 0x2020_0020_2000_0000: 0x0000_0000_2020_2000, 0x2020_0020_2000_2000: 0x0000_0000_0000_2000, 0x2020_0020_2020_0000: 0x0000_0000_0020_2000, 0x2020_0020_2020_2000: 0x0000_0000_0000_2000,
+ 0x2020_2000_0000_0000: 0x0000_2020_2020_2000, 0x2020_2000_0000_2000: 0x0000_0000_0000_2000, 0x2020_2000_0020_0000: 0x0000_0000_0020_2000, 0x2020_2000_0020_2000: 0x0000_0000_0000_2000,
+ 0x2020_2000_2000_0000: 0x0000_0000_2020_2000, 0x2020_2000_2000_2000: 0x0000_0000_0000_2000, 0x2020_2000_2020_0000: 0x0000_0000_0020_2000, 0x2020_2000_2020_2000: 0x0000_0000_0000_2000,
+ 0x2020_2020_0000_0000: 0x0000_0020_2020_2000, 0x2020_2020_0000_2000: 0x0000_0000_0000_2000, 0x2020_2020_0020_0000: 0x0000_0000_0020_2000, 0x2020_2020_0020_2000: 0x0000_0000_0000_2000,
+ 0x2020_2020_2000_0000: 0x0000_0000_2020_2000, 0x2020_2020_2000_2000: 0x0000_0000_0000_2000, 0x2020_2020_2020_0000: 0x0000_0000_0020_2000, 0x2020_2020_2020_2000: 0x0000_0000_0000_2000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x4040_4040_4040_4000, 0x0000_0000_0000_4000: 0x0000_0000_0000_4000, 0x0000_0000_0040_0000: 0x0000_0000_0040_4000, 0x0000_0000_0040_4000: 0x0000_0000_0000_4000,
+ 0x0000_0000_4000_0000: 0x0000_0000_4040_4000, 0x0000_0000_4000_4000: 0x0000_0000_0000_4000, 0x0000_0000_4040_0000: 0x0000_0000_0040_4000, 0x0000_0000_4040_4000: 0x0000_0000_0000_4000,
+ 0x0000_0040_0000_0000: 0x0000_0040_4040_4000, 0x0000_0040_0000_4000: 0x0000_0000_0000_4000, 0x0000_0040_0040_0000: 0x0000_0000_0040_4000, 0x0000_0040_0040_4000: 0x0000_0000_0000_4000,
+ 0x0000_0040_4000_0000: 0x0000_0000_4040_4000, 0x0000_0040_4000_4000: 0x0000_0000_0000_4000, 0x0000_0040_4040_0000: 0x0000_0000_0040_4000, 0x0000_0040_4040_4000: 0x0000_0000_0000_4000,
+ 0x0000_4000_0000_0000: 0x0000_4040_4040_4000, 0x0000_4000_0000_4000: 0x0000_0000_0000_4000, 0x0000_4000_0040_0000: 0x0000_0000_0040_4000, 0x0000_4000_0040_4000: 0x0000_0000_0000_4000,
+ 0x0000_4000_4000_0000: 0x0000_0000_4040_4000, 0x0000_4000_4000_4000: 0x0000_0000_0000_4000, 0x0000_4000_4040_0000: 0x0000_0000_0040_4000, 0x0000_4000_4040_4000: 0x0000_0000_0000_4000,
+ 0x0000_4040_0000_0000: 0x0000_0040_4040_4000, 0x0000_4040_0000_4000: 0x0000_0000_0000_4000, 0x0000_4040_0040_0000: 0x0000_0000_0040_4000, 0x0000_4040_0040_4000: 0x0000_0000_0000_4000,
+ 0x0000_4040_4000_0000: 0x0000_0000_4040_4000, 0x0000_4040_4000_4000: 0x0000_0000_0000_4000, 0x0000_4040_4040_0000: 0x0000_0000_0040_4000, 0x0000_4040_4040_4000: 0x0000_0000_0000_4000,
+ 0x0040_0000_0000_0000: 0x0040_4040_4040_4000, 0x0040_0000_0000_4000: 0x0000_0000_0000_4000, 0x0040_0000_0040_0000: 0x0000_0000_0040_4000, 0x0040_0000_0040_4000: 0x0000_0000_0000_4000,
+ 0x0040_0000_4000_0000: 0x0000_0000_4040_4000, 0x0040_0000_4000_4000: 0x0000_0000_0000_4000, 0x0040_0000_4040_0000: 0x0000_0000_0040_4000, 0x0040_0000_4040_4000: 0x0000_0000_0000_4000,
+ 0x0040_0040_0000_0000: 0x0000_0040_4040_4000, 0x0040_0040_0000_4000: 0x0000_0000_0000_4000, 0x0040_0040_0040_0000: 0x0000_0000_0040_4000, 0x0040_0040_0040_4000: 0x0000_0000_0000_4000,
+ 0x0040_0040_4000_0000: 0x0000_0000_4040_4000, 0x0040_0040_4000_4000: 0x0000_0000_0000_4000, 0x0040_0040_4040_0000: 0x0000_0000_0040_4000, 0x0040_0040_4040_4000: 0x0000_0000_0000_4000,
+ 0x0040_4000_0000_0000: 0x0000_4040_4040_4000, 0x0040_4000_0000_4000: 0x0000_0000_0000_4000, 0x0040_4000_0040_0000: 0x0000_0000_0040_4000, 0x0040_4000_0040_4000: 0x0000_0000_0000_4000,
+ 0x0040_4000_4000_0000: 0x0000_0000_4040_4000, 0x0040_4000_4000_4000: 0x0000_0000_0000_4000, 0x0040_4000_4040_0000: 0x0000_0000_0040_4000, 0x0040_4000_4040_4000: 0x0000_0000_0000_4000,
+ 0x0040_4040_0000_0000: 0x0000_0040_4040_4000, 0x0040_4040_0000_4000: 0x0000_0000_0000_4000, 0x0040_4040_0040_0000: 0x0000_0000_0040_4000, 0x0040_4040_0040_4000: 0x0000_0000_0000_4000,
+ 0x0040_4040_4000_0000: 0x0000_0000_4040_4000, 0x0040_4040_4000_4000: 0x0000_0000_0000_4000, 0x0040_4040_4040_0000: 0x0000_0000_0040_4000, 0x0040_4040_4040_4000: 0x0000_0000_0000_4000,
+ 0x4000_0000_0000_0000: 0x4040_4040_4040_4000, 0x4000_0000_0000_4000: 0x0000_0000_0000_4000, 0x4000_0000_0040_0000: 0x0000_0000_0040_4000, 0x4000_0000_0040_4000: 0x0000_0000_0000_4000,
+ 0x4000_0000_4000_0000: 0x0000_0000_4040_4000, 0x4000_0000_4000_4000: 0x0000_0000_0000_4000, 0x4000_0000_4040_0000: 0x0000_0000_0040_4000, 0x4000_0000_4040_4000: 0x0000_0000_0000_4000,
+ 0x4000_0040_0000_0000: 0x0000_0040_4040_4000, 0x4000_0040_0000_4000: 0x0000_0000_0000_4000, 0x4000_0040_0040_0000: 0x0000_0000_0040_4000, 0x4000_0040_0040_4000: 0x0000_0000_0000_4000,
+ 0x4000_0040_4000_0000: 0x0000_0000_4040_4000, 0x4000_0040_4000_4000: 0x0000_0000_0000_4000, 0x4000_0040_4040_0000: 0x0000_0000_0040_4000, 0x4000_0040_4040_4000: 0x0000_0000_0000_4000,
+ 0x4000_4000_0000_0000: 0x0000_4040_4040_4000, 0x4000_4000_0000_4000: 0x0000_0000_0000_4000, 0x4000_4000_0040_0000: 0x0000_0000_0040_4000, 0x4000_4000_0040_4000: 0x0000_0000_0000_4000,
+ 0x4000_4000_4000_0000: 0x0000_0000_4040_4000, 0x4000_4000_4000_4000: 0x0000_0000_0000_4000, 0x4000_4000_4040_0000: 0x0000_0000_0040_4000, 0x4000_4000_4040_4000: 0x0000_0000_0000_4000,
+ 0x4000_4040_0000_0000: 0x0000_0040_4040_4000, 0x4000_4040_0000_4000: 0x0000_0000_0000_4000, 0x4000_4040_0040_0000: 0x0000_0000_0040_4000, 0x4000_4040_0040_4000: 0x0000_0000_0000_4000,
+ 0x4000_4040_4000_0000: 0x0000_0000_4040_4000, 0x4000_4040_4000_4000: 0x0000_0000_0000_4000, 0x4000_4040_4040_0000: 0x0000_0000_0040_4000, 0x4000_4040_4040_4000: 0x0000_0000_0000_4000,
+ 0x4040_0000_0000_0000: 0x0040_4040_4040_4000, 0x4040_0000_0000_4000: 0x0000_0000_0000_4000, 0x4040_0000_0040_0000: 0x0000_0000_0040_4000, 0x4040_0000_0040_4000: 0x0000_0000_0000_4000,
+ 0x4040_0000_4000_0000: 0x0000_0000_4040_4000, 0x4040_0000_4000_4000: 0x0000_0000_0000_4000, 0x4040_0000_4040_0000: 0x0000_0000_0040_4000, 0x4040_0000_4040_4000: 0x0000_0000_0000_4000,
+ 0x4040_0040_0000_0000: 0x0000_0040_4040_4000, 0x4040_0040_0000_4000: 0x0000_0000_0000_4000, 0x4040_0040_0040_0000: 0x0000_0000_0040_4000, 0x4040_0040_0040_4000: 0x0000_0000_0000_4000,
+ 0x4040_0040_4000_0000: 0x0000_0000_4040_4000, 0x4040_0040_4000_4000: 0x0000_0000_0000_4000, 0x4040_0040_4040_0000: 0x0000_0000_0040_4000, 0x4040_0040_4040_4000: 0x0000_0000_0000_4000,
+ 0x4040_4000_0000_0000: 0x0000_4040_4040_4000, 0x4040_4000_0000_4000: 0x0000_0000_0000_4000, 0x4040_4000_0040_0000: 0x0000_0000_0040_4000, 0x4040_4000_0040_4000: 0x0000_0000_0000_4000,
+ 0x4040_4000_4000_0000: 0x0000_0000_4040_4000, 0x4040_4000_4000_4000: 0x0000_0000_0000_4000, 0x4040_4000_4040_0000: 0x0000_0000_0040_4000, 0x4040_4000_4040_4000: 0x0000_0000_0000_4000,
+ 0x4040_4040_0000_0000: 0x0000_0040_4040_4000, 0x4040_4040_0000_4000: 0x0000_0000_0000_4000, 0x4040_4040_0040_0000: 0x0000_0000_0040_4000, 0x4040_4040_0040_4000: 0x0000_0000_0000_4000,
+ 0x4040_4040_4000_0000: 0x0000_0000_4040_4000, 0x4040_4040_4000_4000: 0x0000_0000_0000_4000, 0x4040_4040_4040_0000: 0x0000_0000_0040_4000, 0x4040_4040_4040_4000: 0x0000_0000_0000_4000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x8080_8080_8080_8000, 0x0000_0000_0000_8000: 0x0000_0000_0000_8000, 0x0000_0000_0080_0000: 0x0000_0000_0080_8000, 0x0000_0000_0080_8000: 0x0000_0000_0000_8000,
+ 0x0000_0000_8000_0000: 0x0000_0000_8080_8000, 0x0000_0000_8000_8000: 0x0000_0000_0000_8000, 0x0000_0000_8080_0000: 0x0000_0000_0080_8000, 0x0000_0000_8080_8000: 0x0000_0000_0000_8000,
+ 0x0000_0080_0000_0000: 0x0000_0080_8080_8000, 0x0000_0080_0000_8000: 0x0000_0000_0000_8000, 0x0000_0080_0080_0000: 0x0000_0000_0080_8000, 0x0000_0080_0080_8000: 0x0000_0000_0000_8000,
+ 0x0000_0080_8000_0000: 0x0000_0000_8080_8000, 0x0000_0080_8000_8000: 0x0000_0000_0000_8000, 0x0000_0080_8080_0000: 0x0000_0000_0080_8000, 0x0000_0080_8080_8000: 0x0000_0000_0000_8000,
+ 0x0000_8000_0000_0000: 0x0000_8080_8080_8000, 0x0000_8000_0000_8000: 0x0000_0000_0000_8000, 0x0000_8000_0080_0000: 0x0000_0000_0080_8000, 0x0000_8000_0080_8000: 0x0000_0000_0000_8000,
+ 0x0000_8000_8000_0000: 0x0000_0000_8080_8000, 0x0000_8000_8000_8000: 0x0000_0000_0000_8000, 0x0000_8000_8080_0000: 0x0000_0000_0080_8000, 0x0000_8000_8080_8000: 0x0000_0000_0000_8000,
+ 0x0000_8080_0000_0000: 0x0000_0080_8080_8000, 0x0000_8080_0000_8000: 0x0000_0000_0000_8000, 0x0000_8080_0080_0000: 0x0000_0000_0080_8000, 0x0000_8080_0080_8000: 0x0000_0000_0000_8000,
+ 0x0000_8080_8000_0000: 0x0000_0000_8080_8000, 0x0000_8080_8000_8000: 0x0000_0000_0000_8000, 0x0000_8080_8080_0000: 0x0000_0000_0080_8000, 0x0000_8080_8080_8000: 0x0000_0000_0000_8000,
+ 0x0080_0000_0000_0000: 0x0080_8080_8080_8000, 0x0080_0000_0000_8000: 0x0000_0000_0000_8000, 0x0080_0000_0080_0000: 0x0000_0000_0080_8000, 0x0080_0000_0080_8000: 0x0000_0000_0000_8000,
+ 0x0080_0000_8000_0000: 0x0000_0000_8080_8000, 0x0080_0000_8000_8000: 0x0000_0000_0000_8000, 0x0080_0000_8080_0000: 0x0000_0000_0080_8000, 0x0080_0000_8080_8000: 0x0000_0000_0000_8000,
+ 0x0080_0080_0000_0000: 0x0000_0080_8080_8000, 0x0080_0080_0000_8000: 0x0000_0000_0000_8000, 0x0080_0080_0080_0000: 0x0000_0000_0080_8000, 0x0080_0080_0080_8000: 0x0000_0000_0000_8000,
+ 0x0080_0080_8000_0000: 0x0000_0000_8080_8000, 0x0080_0080_8000_8000: 0x0000_0000_0000_8000, 0x0080_0080_8080_0000: 0x0000_0000_0080_8000, 0x0080_0080_8080_8000: 0x0000_0000_0000_8000,
+ 0x0080_8000_0000_0000: 0x0000_8080_8080_8000, 0x0080_8000_0000_8000: 0x0000_0000_0000_8000, 0x0080_8000_0080_0000: 0x0000_0000_0080_8000, 0x0080_8000_0080_8000: 0x0000_0000_0000_8000,
+ 0x0080_8000_8000_0000: 0x0000_0000_8080_8000, 0x0080_8000_8000_8000: 0x0000_0000_0000_8000, 0x0080_8000_8080_0000: 0x0000_0000_0080_8000, 0x0080_8000_8080_8000: 0x0000_0000_0000_8000,
+ 0x0080_8080_0000_0000: 0x0000_0080_8080_8000, 0x0080_8080_0000_8000: 0x0000_0000_0000_8000, 0x0080_8080_0080_0000: 0x0000_0000_0080_8000, 0x0080_8080_0080_8000: 0x0000_0000_0000_8000,
+ 0x0080_8080_8000_0000: 0x0000_0000_8080_8000, 0x0080_8080_8000_8000: 0x0000_0000_0000_8000, 0x0080_8080_8080_0000: 0x0000_0000_0080_8000, 0x0080_8080_8080_8000: 0x0000_0000_0000_8000,
+ 0x8000_0000_0000_0000: 0x8080_8080_8080_8000, 0x8000_0000_0000_8000: 0x0000_0000_0000_8000, 0x8000_0000_0080_0000: 0x0000_0000_0080_8000, 0x8000_0000_0080_8000: 0x0000_0000_0000_8000,
+ 0x8000_0000_8000_0000: 0x0000_0000_8080_8000, 0x8000_0000_8000_8000: 0x0000_0000_0000_8000, 0x8000_0000_8080_0000: 0x0000_0000_0080_8000, 0x8000_0000_8080_8000: 0x0000_0000_0000_8000,
+ 0x8000_0080_0000_0000: 0x0000_0080_8080_8000, 0x8000_0080_0000_8000: 0x0000_0000_0000_8000, 0x8000_0080_0080_0000: 0x0000_0000_0080_8000, 0x8000_0080_0080_8000: 0x0000_0000_0000_8000,
+ 0x8000_0080_8000_0000: 0x0000_0000_8080_8000, 0x8000_0080_8000_8000: 0x0000_0000_0000_8000, 0x8000_0080_8080_0000: 0x0000_0000_0080_8000, 0x8000_0080_8080_8000: 0x0000_0000_0000_8000,
+ 0x8000_8000_0000_0000: 0x0000_8080_8080_8000, 0x8000_8000_0000_8000: 0x0000_0000_0000_8000, 0x8000_8000_0080_0000: 0x0000_0000_0080_8000, 0x8000_8000_0080_8000: 0x0000_0000_0000_8000,
+ 0x8000_8000_8000_0000: 0x0000_0000_8080_8000, 0x8000_8000_8000_8000: 0x0000_0000_0000_8000, 0x8000_8000_8080_0000: 0x0000_0000_0080_8000, 0x8000_8000_8080_8000: 0x0000_0000_0000_8000,
+ 0x8000_8080_0000_0000: 0x0000_0080_8080_8000, 0x8000_8080_0000_8000: 0x0000_0000_0000_8000, 0x8000_8080_0080_0000: 0x0000_0000_0080_8000, 0x8000_8080_0080_8000: 0x0000_0000_0000_8000,
+ 0x8000_8080_8000_0000: 0x0000_0000_8080_8000, 0x8000_8080_8000_8000: 0x0000_0000_0000_8000, 0x8000_8080_8080_0000: 0x0000_0000_0080_8000, 0x8000_8080_8080_8000: 0x0000_0000_0000_8000,
+ 0x8080_0000_0000_0000: 0x0080_8080_8080_8000, 0x8080_0000_0000_8000: 0x0000_0000_0000_8000, 0x8080_0000_0080_0000: 0x0000_0000_0080_8000, 0x8080_0000_0080_8000: 0x0000_0000_0000_8000,
+ 0x8080_0000_8000_0000: 0x0000_0000_8080_8000, 0x8080_0000_8000_8000: 0x0000_0000_0000_8000, 0x8080_0000_8080_0000: 0x0000_0000_0080_8000, 0x8080_0000_8080_8000: 0x0000_0000_0000_8000,
+ 0x8080_0080_0000_0000: 0x0000_0080_8080_8000, 0x8080_0080_0000_8000: 0x0000_0000_0000_8000, 0x8080_0080_0080_0000: 0x0000_0000_0080_8000, 0x8080_0080_0080_8000: 0x0000_0000_0000_8000,
+ 0x8080_0080_8000_0000: 0x0000_0000_8080_8000, 0x8080_0080_8000_8000: 0x0000_0000_0000_8000, 0x8080_0080_8080_0000: 0x0000_0000_0080_8000, 0x8080_0080_8080_8000: 0x0000_0000_0000_8000,
+ 0x8080_8000_0000_0000: 0x0000_8080_8080_8000, 0x8080_8000_0000_8000: 0x0000_0000_0000_8000, 0x8080_8000_0080_0000: 0x0000_0000_0080_8000, 0x8080_8000_0080_8000: 0x0000_0000_0000_8000,
+ 0x8080_8000_8000_0000: 0x0000_0000_8080_8000, 0x8080_8000_8000_8000: 0x0000_0000_0000_8000, 0x8080_8000_8080_0000: 0x0000_0000_0080_8000, 0x8080_8000_8080_8000: 0x0000_0000_0000_8000,
+ 0x8080_8080_0000_0000: 0x0000_0080_8080_8000, 0x8080_8080_0000_8000: 0x0000_0000_0000_8000, 0x8080_8080_0080_0000: 0x0000_0000_0080_8000, 0x8080_8080_0080_8000: 0x0000_0000_0000_8000,
+ 0x8080_8080_8000_0000: 0x0000_0000_8080_8000, 0x8080_8080_8000_8000: 0x0000_0000_0000_8000, 0x8080_8080_8080_0000: 0x0000_0000_0080_8000, 0x8080_8080_8080_8000: 0x0000_0000_0000_8000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0101_0101_0101_0000, 0x0000_0000_0001_0000: 0x0000_0000_0001_0000, 0x0000_0000_0100_0000: 0x0000_0000_0101_0000, 0x0000_0000_0101_0000: 0x0000_0000_0001_0000,
+ 0x0000_0001_0000_0000: 0x0000_0001_0101_0000, 0x0000_0001_0001_0000: 0x0000_0000_0001_0000, 0x0000_0001_0100_0000: 0x0000_0000_0101_0000, 0x0000_0001_0101_0000: 0x0000_0000_0001_0000,
+ 0x0000_0100_0000_0000: 0x0000_0101_0101_0000, 0x0000_0100_0001_0000: 0x0000_0000_0001_0000, 0x0000_0100_0100_0000: 0x0000_0000_0101_0000, 0x0000_0100_0101_0000: 0x0000_0000_0001_0000,
+ 0x0000_0101_0000_0000: 0x0000_0001_0101_0000, 0x0000_0101_0001_0000: 0x0000_0000_0001_0000, 0x0000_0101_0100_0000: 0x0000_0000_0101_0000, 0x0000_0101_0101_0000: 0x0000_0000_0001_0000,
+ 0x0001_0000_0000_0000: 0x0001_0101_0101_0000, 0x0001_0000_0001_0000: 0x0000_0000_0001_0000, 0x0001_0000_0100_0000: 0x0000_0000_0101_0000, 0x0001_0000_0101_0000: 0x0000_0000_0001_0000,
+ 0x0001_0001_0000_0000: 0x0000_0001_0101_0000, 0x0001_0001_0001_0000: 0x0000_0000_0001_0000, 0x0001_0001_0100_0000: 0x0000_0000_0101_0000, 0x0001_0001_0101_0000: 0x0000_0000_0001_0000,
+ 0x0001_0100_0000_0000: 0x0000_0101_0101_0000, 0x0001_0100_0001_0000: 0x0000_0000_0001_0000, 0x0001_0100_0100_0000: 0x0000_0000_0101_0000, 0x0001_0100_0101_0000: 0x0000_0000_0001_0000,
+ 0x0001_0101_0000_0000: 0x0000_0001_0101_0000, 0x0001_0101_0001_0000: 0x0000_0000_0001_0000, 0x0001_0101_0100_0000: 0x0000_0000_0101_0000, 0x0001_0101_0101_0000: 0x0000_0000_0001_0000,
+ 0x0100_0000_0000_0000: 0x0101_0101_0101_0000, 0x0100_0000_0001_0000: 0x0000_0000_0001_0000, 0x0100_0000_0100_0000: 0x0000_0000_0101_0000, 0x0100_0000_0101_0000: 0x0000_0000_0001_0000,
+ 0x0100_0001_0000_0000: 0x0000_0001_0101_0000, 0x0100_0001_0001_0000: 0x0000_0000_0001_0000, 0x0100_0001_0100_0000: 0x0000_0000_0101_0000, 0x0100_0001_0101_0000: 0x0000_0000_0001_0000,
+ 0x0100_0100_0000_0000: 0x0000_0101_0101_0000, 0x0100_0100_0001_0000: 0x0000_0000_0001_0000, 0x0100_0100_0100_0000: 0x0000_0000_0101_0000, 0x0100_0100_0101_0000: 0x0000_0000_0001_0000,
+ 0x0100_0101_0000_0000: 0x0000_0001_0101_0000, 0x0100_0101_0001_0000: 0x0000_0000_0001_0000, 0x0100_0101_0100_0000: 0x0000_0000_0101_0000, 0x0100_0101_0101_0000: 0x0000_0000_0001_0000,
+ 0x0101_0000_0000_0000: 0x0001_0101_0101_0000, 0x0101_0000_0001_0000: 0x0000_0000_0001_0000, 0x0101_0000_0100_0000: 0x0000_0000_0101_0000, 0x0101_0000_0101_0000: 0x0000_0000_0001_0000,
+ 0x0101_0001_0000_0000: 0x0000_0001_0101_0000, 0x0101_0001_0001_0000: 0x0000_0000_0001_0000, 0x0101_0001_0100_0000: 0x0000_0000_0101_0000, 0x0101_0001_0101_0000: 0x0000_0000_0001_0000,
+ 0x0101_0100_0000_0000: 0x0000_0101_0101_0000, 0x0101_0100_0001_0000: 0x0000_0000_0001_0000, 0x0101_0100_0100_0000: 0x0000_0000_0101_0000, 0x0101_0100_0101_0000: 0x0000_0000_0001_0000,
+ 0x0101_0101_0000_0000: 0x0000_0001_0101_0000, 0x0101_0101_0001_0000: 0x0000_0000_0001_0000, 0x0101_0101_0100_0000: 0x0000_0000_0101_0000, 0x0101_0101_0101_0000: 0x0000_0000_0001_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0202_0202_0202_0000, 0x0000_0000_0002_0000: 0x0000_0000_0002_0000, 0x0000_0000_0200_0000: 0x0000_0000_0202_0000, 0x0000_0000_0202_0000: 0x0000_0000_0002_0000,
+ 0x0000_0002_0000_0000: 0x0000_0002_0202_0000, 0x0000_0002_0002_0000: 0x0000_0000_0002_0000, 0x0000_0002_0200_0000: 0x0000_0000_0202_0000, 0x0000_0002_0202_0000: 0x0000_0000_0002_0000,
+ 0x0000_0200_0000_0000: 0x0000_0202_0202_0000, 0x0000_0200_0002_0000: 0x0000_0000_0002_0000, 0x0000_0200_0200_0000: 0x0000_0000_0202_0000, 0x0000_0200_0202_0000: 0x0000_0000_0002_0000,
+ 0x0000_0202_0000_0000: 0x0000_0002_0202_0000, 0x0000_0202_0002_0000: 0x0000_0000_0002_0000, 0x0000_0202_0200_0000: 0x0000_0000_0202_0000, 0x0000_0202_0202_0000: 0x0000_0000_0002_0000,
+ 0x0002_0000_0000_0000: 0x0002_0202_0202_0000, 0x0002_0000_0002_0000: 0x0000_0000_0002_0000, 0x0002_0000_0200_0000: 0x0000_0000_0202_0000, 0x0002_0000_0202_0000: 0x0000_0000_0002_0000,
+ 0x0002_0002_0000_0000: 0x0000_0002_0202_0000, 0x0002_0002_0002_0000: 0x0000_0000_0002_0000, 0x0002_0002_0200_0000: 0x0000_0000_0202_0000, 0x0002_0002_0202_0000: 0x0000_0000_0002_0000,
+ 0x0002_0200_0000_0000: 0x0000_0202_0202_0000, 0x0002_0200_0002_0000: 0x0000_0000_0002_0000, 0x0002_0200_0200_0000: 0x0000_0000_0202_0000, 0x0002_0200_0202_0000: 0x0000_0000_0002_0000,
+ 0x0002_0202_0000_0000: 0x0000_0002_0202_0000, 0x0002_0202_0002_0000: 0x0000_0000_0002_0000, 0x0002_0202_0200_0000: 0x0000_0000_0202_0000, 0x0002_0202_0202_0000: 0x0000_0000_0002_0000,
+ 0x0200_0000_0000_0000: 0x0202_0202_0202_0000, 0x0200_0000_0002_0000: 0x0000_0000_0002_0000, 0x0200_0000_0200_0000: 0x0000_0000_0202_0000, 0x0200_0000_0202_0000: 0x0000_0000_0002_0000,
+ 0x0200_0002_0000_0000: 0x0000_0002_0202_0000, 0x0200_0002_0002_0000: 0x0000_0000_0002_0000, 0x0200_0002_0200_0000: 0x0000_0000_0202_0000, 0x0200_0002_0202_0000: 0x0000_0000_0002_0000,
+ 0x0200_0200_0000_0000: 0x0000_0202_0202_0000, 0x0200_0200_0002_0000: 0x0000_0000_0002_0000, 0x0200_0200_0200_0000: 0x0000_0000_0202_0000, 0x0200_0200_0202_0000: 0x0000_0000_0002_0000,
+ 0x0200_0202_0000_0000: 0x0000_0002_0202_0000, 0x0200_0202_0002_0000: 0x0000_0000_0002_0000, 0x0200_0202_0200_0000: 0x0000_0000_0202_0000, 0x0200_0202_0202_0000: 0x0000_0000_0002_0000,
+ 0x0202_0000_0000_0000: 0x0002_0202_0202_0000, 0x0202_0000_0002_0000: 0x0000_0000_0002_0000, 0x0202_0000_0200_0000: 0x0000_0000_0202_0000, 0x0202_0000_0202_0000: 0x0000_0000_0002_0000,
+ 0x0202_0002_0000_0000: 0x0000_0002_0202_0000, 0x0202_0002_0002_0000: 0x0000_0000_0002_0000, 0x0202_0002_0200_0000: 0x0000_0000_0202_0000, 0x0202_0002_0202_0000: 0x0000_0000_0002_0000,
+ 0x0202_0200_0000_0000: 0x0000_0202_0202_0000, 0x0202_0200_0002_0000: 0x0000_0000_0002_0000, 0x0202_0200_0200_0000: 0x0000_0000_0202_0000, 0x0202_0200_0202_0000: 0x0000_0000_0002_0000,
+ 0x0202_0202_0000_0000: 0x0000_0002_0202_0000, 0x0202_0202_0002_0000: 0x0000_0000_0002_0000, 0x0202_0202_0200_0000: 0x0000_0000_0202_0000, 0x0202_0202_0202_0000: 0x0000_0000_0002_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0404_0404_0404_0000, 0x0000_0000_0004_0000: 0x0000_0000_0004_0000, 0x0000_0000_0400_0000: 0x0000_0000_0404_0000, 0x0000_0000_0404_0000: 0x0000_0000_0004_0000,
+ 0x0000_0004_0000_0000: 0x0000_0004_0404_0000, 0x0000_0004_0004_0000: 0x0000_0000_0004_0000, 0x0000_0004_0400_0000: 0x0000_0000_0404_0000, 0x0000_0004_0404_0000: 0x0000_0000_0004_0000,
+ 0x0000_0400_0000_0000: 0x0000_0404_0404_0000, 0x0000_0400_0004_0000: 0x0000_0000_0004_0000, 0x0000_0400_0400_0000: 0x0000_0000_0404_0000, 0x0000_0400_0404_0000: 0x0000_0000_0004_0000,
+ 0x0000_0404_0000_0000: 0x0000_0004_0404_0000, 0x0000_0404_0004_0000: 0x0000_0000_0004_0000, 0x0000_0404_0400_0000: 0x0000_0000_0404_0000, 0x0000_0404_0404_0000: 0x0000_0000_0004_0000,
+ 0x0004_0000_0000_0000: 0x0004_0404_0404_0000, 0x0004_0000_0004_0000: 0x0000_0000_0004_0000, 0x0004_0000_0400_0000: 0x0000_0000_0404_0000, 0x0004_0000_0404_0000: 0x0000_0000_0004_0000,
+ 0x0004_0004_0000_0000: 0x0000_0004_0404_0000, 0x0004_0004_0004_0000: 0x0000_0000_0004_0000, 0x0004_0004_0400_0000: 0x0000_0000_0404_0000, 0x0004_0004_0404_0000: 0x0000_0000_0004_0000,
+ 0x0004_0400_0000_0000: 0x0000_0404_0404_0000, 0x0004_0400_0004_0000: 0x0000_0000_0004_0000, 0x0004_0400_0400_0000: 0x0000_0000_0404_0000, 0x0004_0400_0404_0000: 0x0000_0000_0004_0000,
+ 0x0004_0404_0000_0000: 0x0000_0004_0404_0000, 0x0004_0404_0004_0000: 0x0000_0000_0004_0000, 0x0004_0404_0400_0000: 0x0000_0000_0404_0000, 0x0004_0404_0404_0000: 0x0000_0000_0004_0000,
+ 0x0400_0000_0000_0000: 0x0404_0404_0404_0000, 0x0400_0000_0004_0000: 0x0000_0000_0004_0000, 0x0400_0000_0400_0000: 0x0000_0000_0404_0000, 0x0400_0000_0404_0000: 0x0000_0000_0004_0000,
+ 0x0400_0004_0000_0000: 0x0000_0004_0404_0000, 0x0400_0004_0004_0000: 0x0000_0000_0004_0000, 0x0400_0004_0400_0000: 0x0000_0000_0404_0000, 0x0400_0004_0404_0000: 0x0000_0000_0004_0000,
+ 0x0400_0400_0000_0000: 0x0000_0404_0404_0000, 0x0400_0400_0004_0000: 0x0000_0000_0004_0000, 0x0400_0400_0400_0000: 0x0000_0000_0404_0000, 0x0400_0400_0404_0000: 0x0000_0000_0004_0000,
+ 0x0400_0404_0000_0000: 0x0000_0004_0404_0000, 0x0400_0404_0004_0000: 0x0000_0000_0004_0000, 0x0400_0404_0400_0000: 0x0000_0000_0404_0000, 0x0400_0404_0404_0000: 0x0000_0000_0004_0000,
+ 0x0404_0000_0000_0000: 0x0004_0404_0404_0000, 0x0404_0000_0004_0000: 0x0000_0000_0004_0000, 0x0404_0000_0400_0000: 0x0000_0000_0404_0000, 0x0404_0000_0404_0000: 0x0000_0000_0004_0000,
+ 0x0404_0004_0000_0000: 0x0000_0004_0404_0000, 0x0404_0004_0004_0000: 0x0000_0000_0004_0000, 0x0404_0004_0400_0000: 0x0000_0000_0404_0000, 0x0404_0004_0404_0000: 0x0000_0000_0004_0000,
+ 0x0404_0400_0000_0000: 0x0000_0404_0404_0000, 0x0404_0400_0004_0000: 0x0000_0000_0004_0000, 0x0404_0400_0400_0000: 0x0000_0000_0404_0000, 0x0404_0400_0404_0000: 0x0000_0000_0004_0000,
+ 0x0404_0404_0000_0000: 0x0000_0004_0404_0000, 0x0404_0404_0004_0000: 0x0000_0000_0004_0000, 0x0404_0404_0400_0000: 0x0000_0000_0404_0000, 0x0404_0404_0404_0000: 0x0000_0000_0004_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0808_0808_0808_0000, 0x0000_0000_0008_0000: 0x0000_0000_0008_0000, 0x0000_0000_0800_0000: 0x0000_0000_0808_0000, 0x0000_0000_0808_0000: 0x0000_0000_0008_0000,
+ 0x0000_0008_0000_0000: 0x0000_0008_0808_0000, 0x0000_0008_0008_0000: 0x0000_0000_0008_0000, 0x0000_0008_0800_0000: 0x0000_0000_0808_0000, 0x0000_0008_0808_0000: 0x0000_0000_0008_0000,
+ 0x0000_0800_0000_0000: 0x0000_0808_0808_0000, 0x0000_0800_0008_0000: 0x0000_0000_0008_0000, 0x0000_0800_0800_0000: 0x0000_0000_0808_0000, 0x0000_0800_0808_0000: 0x0000_0000_0008_0000,
+ 0x0000_0808_0000_0000: 0x0000_0008_0808_0000, 0x0000_0808_0008_0000: 0x0000_0000_0008_0000, 0x0000_0808_0800_0000: 0x0000_0000_0808_0000, 0x0000_0808_0808_0000: 0x0000_0000_0008_0000,
+ 0x0008_0000_0000_0000: 0x0008_0808_0808_0000, 0x0008_0000_0008_0000: 0x0000_0000_0008_0000, 0x0008_0000_0800_0000: 0x0000_0000_0808_0000, 0x0008_0000_0808_0000: 0x0000_0000_0008_0000,
+ 0x0008_0008_0000_0000: 0x0000_0008_0808_0000, 0x0008_0008_0008_0000: 0x0000_0000_0008_0000, 0x0008_0008_0800_0000: 0x0000_0000_0808_0000, 0x0008_0008_0808_0000: 0x0000_0000_0008_0000,
+ 0x0008_0800_0000_0000: 0x0000_0808_0808_0000, 0x0008_0800_0008_0000: 0x0000_0000_0008_0000, 0x0008_0800_0800_0000: 0x0000_0000_0808_0000, 0x0008_0800_0808_0000: 0x0000_0000_0008_0000,
+ 0x0008_0808_0000_0000: 0x0000_0008_0808_0000, 0x0008_0808_0008_0000: 0x0000_0000_0008_0000, 0x0008_0808_0800_0000: 0x0000_0000_0808_0000, 0x0008_0808_0808_0000: 0x0000_0000_0008_0000,
+ 0x0800_0000_0000_0000: 0x0808_0808_0808_0000, 0x0800_0000_0008_0000: 0x0000_0000_0008_0000, 0x0800_0000_0800_0000: 0x0000_0000_0808_0000, 0x0800_0000_0808_0000: 0x0000_0000_0008_0000,
+ 0x0800_0008_0000_0000: 0x0000_0008_0808_0000, 0x0800_0008_0008_0000: 0x0000_0000_0008_0000, 0x0800_0008_0800_0000: 0x0000_0000_0808_0000, 0x0800_0008_0808_0000: 0x0000_0000_0008_0000,
+ 0x0800_0800_0000_0000: 0x0000_0808_0808_0000, 0x0800_0800_0008_0000: 0x0000_0000_0008_0000, 0x0800_0800_0800_0000: 0x0000_0000_0808_0000, 0x0800_0800_0808_0000: 0x0000_0000_0008_0000,
+ 0x0800_0808_0000_0000: 0x0000_0008_0808_0000, 0x0800_0808_0008_0000: 0x0000_0000_0008_0000, 0x0800_0808_0800_0000: 0x0000_0000_0808_0000, 0x0800_0808_0808_0000: 0x0000_0000_0008_0000,
+ 0x0808_0000_0000_0000: 0x0008_0808_0808_0000, 0x0808_0000_0008_0000: 0x0000_0000_0008_0000, 0x0808_0000_0800_0000: 0x0000_0000_0808_0000, 0x0808_0000_0808_0000: 0x0000_0000_0008_0000,
+ 0x0808_0008_0000_0000: 0x0000_0008_0808_0000, 0x0808_0008_0008_0000: 0x0000_0000_0008_0000, 0x0808_0008_0800_0000: 0x0000_0000_0808_0000, 0x0808_0008_0808_0000: 0x0000_0000_0008_0000,
+ 0x0808_0800_0000_0000: 0x0000_0808_0808_0000, 0x0808_0800_0008_0000: 0x0000_0000_0008_0000, 0x0808_0800_0800_0000: 0x0000_0000_0808_0000, 0x0808_0800_0808_0000: 0x0000_0000_0008_0000,
+ 0x0808_0808_0000_0000: 0x0000_0008_0808_0000, 0x0808_0808_0008_0000: 0x0000_0000_0008_0000, 0x0808_0808_0800_0000: 0x0000_0000_0808_0000, 0x0808_0808_0808_0000: 0x0000_0000_0008_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x1010_1010_1010_0000, 0x0000_0000_0010_0000: 0x0000_0000_0010_0000, 0x0000_0000_1000_0000: 0x0000_0000_1010_0000, 0x0000_0000_1010_0000: 0x0000_0000_0010_0000,
+ 0x0000_0010_0000_0000: 0x0000_0010_1010_0000, 0x0000_0010_0010_0000: 0x0000_0000_0010_0000, 0x0000_0010_1000_0000: 0x0000_0000_1010_0000, 0x0000_0010_1010_0000: 0x0000_0000_0010_0000,
+ 0x0000_1000_0000_0000: 0x0000_1010_1010_0000, 0x0000_1000_0010_0000: 0x0000_0000_0010_0000, 0x0000_1000_1000_0000: 0x0000_0000_1010_0000, 0x0000_1000_1010_0000: 0x0000_0000_0010_0000,
+ 0x0000_1010_0000_0000: 0x0000_0010_1010_0000, 0x0000_1010_0010_0000: 0x0000_0000_0010_0000, 0x0000_1010_1000_0000: 0x0000_0000_1010_0000, 0x0000_1010_1010_0000: 0x0000_0000_0010_0000,
+ 0x0010_0000_0000_0000: 0x0010_1010_1010_0000, 0x0010_0000_0010_0000: 0x0000_0000_0010_0000, 0x0010_0000_1000_0000: 0x0000_0000_1010_0000, 0x0010_0000_1010_0000: 0x0000_0000_0010_0000,
+ 0x0010_0010_0000_0000: 0x0000_0010_1010_0000, 0x0010_0010_0010_0000: 0x0000_0000_0010_0000, 0x0010_0010_1000_0000: 0x0000_0000_1010_0000, 0x0010_0010_1010_0000: 0x0000_0000_0010_0000,
+ 0x0010_1000_0000_0000: 0x0000_1010_1010_0000, 0x0010_1000_0010_0000: 0x0000_0000_0010_0000, 0x0010_1000_1000_0000: 0x0000_0000_1010_0000, 0x0010_1000_1010_0000: 0x0000_0000_0010_0000,
+ 0x0010_1010_0000_0000: 0x0000_0010_1010_0000, 0x0010_1010_0010_0000: 0x0000_0000_0010_0000, 0x0010_1010_1000_0000: 0x0000_0000_1010_0000, 0x0010_1010_1010_0000: 0x0000_0000_0010_0000,
+ 0x1000_0000_0000_0000: 0x1010_1010_1010_0000, 0x1000_0000_0010_0000: 0x0000_0000_0010_0000, 0x1000_0000_1000_0000: 0x0000_0000_1010_0000, 0x1000_0000_1010_0000: 0x0000_0000_0010_0000,
+ 0x1000_0010_0000_0000: 0x0000_0010_1010_0000, 0x1000_0010_0010_0000: 0x0000_0000_0010_0000, 0x1000_0010_1000_0000: 0x0000_0000_1010_0000, 0x1000_0010_1010_0000: 0x0000_0000_0010_0000,
+ 0x1000_1000_0000_0000: 0x0000_1010_1010_0000, 0x1000_1000_0010_0000: 0x0000_0000_0010_0000, 0x1000_1000_1000_0000: 0x0000_0000_1010_0000, 0x1000_1000_1010_0000: 0x0000_0000_0010_0000,
+ 0x1000_1010_0000_0000: 0x0000_0010_1010_0000, 0x1000_1010_0010_0000: 0x0000_0000_0010_0000, 0x1000_1010_1000_0000: 0x0000_0000_1010_0000, 0x1000_1010_1010_0000: 0x0000_0000_0010_0000,
+ 0x1010_0000_0000_0000: 0x0010_1010_1010_0000, 0x1010_0000_0010_0000: 0x0000_0000_0010_0000, 0x1010_0000_1000_0000: 0x0000_0000_1010_0000, 0x1010_0000_1010_0000: 0x0000_0000_0010_0000,
+ 0x1010_0010_0000_0000: 0x0000_0010_1010_0000, 0x1010_0010_0010_0000: 0x0000_0000_0010_0000, 0x1010_0010_1000_0000: 0x0000_0000_1010_0000, 0x1010_0010_1010_0000: 0x0000_0000_0010_0000,
+ 0x1010_1000_0000_0000: 0x0000_1010_1010_0000, 0x1010_1000_0010_0000: 0x0000_0000_0010_0000, 0x1010_1000_1000_0000: 0x0000_0000_1010_0000, 0x1010_1000_1010_0000: 0x0000_0000_0010_0000,
+ 0x1010_1010_0000_0000: 0x0000_0010_1010_0000, 0x1010_1010_0010_0000: 0x0000_0000_0010_0000, 0x1010_1010_1000_0000: 0x0000_0000_1010_0000, 0x1010_1010_1010_0000: 0x0000_0000_0010_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x2020_2020_2020_0000, 0x0000_0000_0020_0000: 0x0000_0000_0020_0000, 0x0000_0000_2000_0000: 0x0000_0000_2020_0000, 0x0000_0000_2020_0000: 0x0000_0000_0020_0000,
+ 0x0000_0020_0000_0000: 0x0000_0020_2020_0000, 0x0000_0020_0020_0000: 0x0000_0000_0020_0000, 0x0000_0020_2000_0000: 0x0000_0000_2020_0000, 0x0000_0020_2020_0000: 0x0000_0000_0020_0000,
+ 0x0000_2000_0000_0000: 0x0000_2020_2020_0000, 0x0000_2000_0020_0000: 0x0000_0000_0020_0000, 0x0000_2000_2000_0000: 0x0000_0000_2020_0000, 0x0000_2000_2020_0000: 0x0000_0000_0020_0000,
+ 0x0000_2020_0000_0000: 0x0000_0020_2020_0000, 0x0000_2020_0020_0000: 0x0000_0000_0020_0000, 0x0000_2020_2000_0000: 0x0000_0000_2020_0000, 0x0000_2020_2020_0000: 0x0000_0000_0020_0000,
+ 0x0020_0000_0000_0000: 0x0020_2020_2020_0000, 0x0020_0000_0020_0000: 0x0000_0000_0020_0000, 0x0020_0000_2000_0000: 0x0000_0000_2020_0000, 0x0020_0000_2020_0000: 0x0000_0000_0020_0000,
+ 0x0020_0020_0000_0000: 0x0000_0020_2020_0000, 0x0020_0020_0020_0000: 0x0000_0000_0020_0000, 0x0020_0020_2000_0000: 0x0000_0000_2020_0000, 0x0020_0020_2020_0000: 0x0000_0000_0020_0000,
+ 0x0020_2000_0000_0000: 0x0000_2020_2020_0000, 0x0020_2000_0020_0000: 0x0000_0000_0020_0000, 0x0020_2000_2000_0000: 0x0000_0000_2020_0000, 0x0020_2000_2020_0000: 0x0000_0000_0020_0000,
+ 0x0020_2020_0000_0000: 0x0000_0020_2020_0000, 0x0020_2020_0020_0000: 0x0000_0000_0020_0000, 0x0020_2020_2000_0000: 0x0000_0000_2020_0000, 0x0020_2020_2020_0000: 0x0000_0000_0020_0000,
+ 0x2000_0000_0000_0000: 0x2020_2020_2020_0000, 0x2000_0000_0020_0000: 0x0000_0000_0020_0000, 0x2000_0000_2000_0000: 0x0000_0000_2020_0000, 0x2000_0000_2020_0000: 0x0000_0000_0020_0000,
+ 0x2000_0020_0000_0000: 0x0000_0020_2020_0000, 0x2000_0020_0020_0000: 0x0000_0000_0020_0000, 0x2000_0020_2000_0000: 0x0000_0000_2020_0000, 0x2000_0020_2020_0000: 0x0000_0000_0020_0000,
+ 0x2000_2000_0000_0000: 0x0000_2020_2020_0000, 0x2000_2000_0020_0000: 0x0000_0000_0020_0000, 0x2000_2000_2000_0000: 0x0000_0000_2020_0000, 0x2000_2000_2020_0000: 0x0000_0000_0020_0000,
+ 0x2000_2020_0000_0000: 0x0000_0020_2020_0000, 0x2000_2020_0020_0000: 0x0000_0000_0020_0000, 0x2000_2020_2000_0000: 0x0000_0000_2020_0000, 0x2000_2020_2020_0000: 0x0000_0000_0020_0000,
+ 0x2020_0000_0000_0000: 0x0020_2020_2020_0000, 0x2020_0000_0020_0000: 0x0000_0000_0020_0000, 0x2020_0000_2000_0000: 0x0000_0000_2020_0000, 0x2020_0000_2020_0000: 0x0000_0000_0020_0000,
+ 0x2020_0020_0000_0000: 0x0000_0020_2020_0000, 0x2020_0020_0020_0000: 0x0000_0000_0020_0000, 0x2020_0020_2000_0000: 0x0000_0000_2020_0000, 0x2020_0020_2020_0000: 0x0000_0000_0020_0000,
+ 0x2020_2000_0000_0000: 0x0000_2020_2020_0000, 0x2020_2000_0020_0000: 0x0000_0000_0020_0000, 0x2020_2000_2000_0000: 0x0000_0000_2020_0000, 0x2020_2000_2020_0000: 0x0000_0000_0020_0000,
+ 0x2020_2020_0000_0000: 0x0000_0020_2020_0000, 0x2020_2020_0020_0000: 0x0000_0000_0020_0000, 0x2020_2020_2000_0000: 0x0000_0000_2020_0000, 0x2020_2020_2020_0000: 0x0000_0000_0020_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x4040_4040_4040_0000, 0x0000_0000_0040_0000: 0x0000_0000_0040_0000, 0x0000_0000_4000_0000: 0x0000_0000_4040_0000, 0x0000_0000_4040_0000: 0x0000_0000_0040_0000,
+ 0x0000_0040_0000_0000: 0x0000_0040_4040_0000, 0x0000_0040_0040_0000: 0x0000_0000_0040_0000, 0x0000_0040_4000_0000: 0x0000_0000_4040_0000, 0x0000_0040_4040_0000: 0x0000_0000_0040_0000,
+ 0x0000_4000_0000_0000: 0x0000_4040_4040_0000, 0x0000_4000_0040_0000: 0x0000_0000_0040_0000, 0x0000_4000_4000_0000: 0x0000_0000_4040_0000, 0x0000_4000_4040_0000: 0x0000_0000_0040_0000,
+ 0x0000_4040_0000_0000: 0x0000_0040_4040_0000, 0x0000_4040_0040_0000: 0x0000_0000_0040_0000, 0x0000_4040_4000_0000: 0x0000_0000_4040_0000, 0x0000_4040_4040_0000: 0x0000_0000_0040_0000,
+ 0x0040_0000_0000_0000: 0x0040_4040_4040_0000, 0x0040_0000_0040_0000: 0x0000_0000_0040_0000, 0x0040_0000_4000_0000: 0x0000_0000_4040_0000, 0x0040_0000_4040_0000: 0x0000_0000_0040_0000,
+ 0x0040_0040_0000_0000: 0x0000_0040_4040_0000, 0x0040_0040_0040_0000: 0x0000_0000_0040_0000, 0x0040_0040_4000_0000: 0x0000_0000_4040_0000, 0x0040_0040_4040_0000: 0x0000_0000_0040_0000,
+ 0x0040_4000_0000_0000: 0x0000_4040_4040_0000, 0x0040_4000_0040_0000: 0x0000_0000_0040_0000, 0x0040_4000_4000_0000: 0x0000_0000_4040_0000, 0x0040_4000_4040_0000: 0x0000_0000_0040_0000,
+ 0x0040_4040_0000_0000: 0x0000_0040_4040_0000, 0x0040_4040_0040_0000: 0x0000_0000_0040_0000, 0x0040_4040_4000_0000: 0x0000_0000_4040_0000, 0x0040_4040_4040_0000: 0x0000_0000_0040_0000,
+ 0x4000_0000_0000_0000: 0x4040_4040_4040_0000, 0x4000_0000_0040_0000: 0x0000_0000_0040_0000, 0x4000_0000_4000_0000: 0x0000_0000_4040_0000, 0x4000_0000_4040_0000: 0x0000_0000_0040_0000,
+ 0x4000_0040_0000_0000: 0x0000_0040_4040_0000, 0x4000_0040_0040_0000: 0x0000_0000_0040_0000, 0x4000_0040_4000_0000: 0x0000_0000_4040_0000, 0x4000_0040_4040_0000: 0x0000_0000_0040_0000,
+ 0x4000_4000_0000_0000: 0x0000_4040_4040_0000, 0x4000_4000_0040_0000: 0x0000_0000_0040_0000, 0x4000_4000_4000_0000: 0x0000_0000_4040_0000, 0x4000_4000_4040_0000: 0x0000_0000_0040_0000,
+ 0x4000_4040_0000_0000: 0x0000_0040_4040_0000, 0x4000_4040_0040_0000: 0x0000_0000_0040_0000, 0x4000_4040_4000_0000: 0x0000_0000_4040_0000, 0x4000_4040_4040_0000: 0x0000_0000_0040_0000,
+ 0x4040_0000_0000_0000: 0x0040_4040_4040_0000, 0x4040_0000_0040_0000: 0x0000_0000_0040_0000, 0x4040_0000_4000_0000: 0x0000_0000_4040_0000, 0x4040_0000_4040_0000: 0x0000_0000_0040_0000,
+ 0x4040_0040_0000_0000: 0x0000_0040_4040_0000, 0x4040_0040_0040_0000: 0x0000_0000_0040_0000, 0x4040_0040_4000_0000: 0x0000_0000_4040_0000, 0x4040_0040_4040_0000: 0x0000_0000_0040_0000,
+ 0x4040_4000_0000_0000: 0x0000_4040_4040_0000, 0x4040_4000_0040_0000: 0x0000_0000_0040_0000, 0x4040_4000_4000_0000: 0x0000_0000_4040_0000, 0x4040_4000_4040_0000: 0x0000_0000_0040_0000,
+ 0x4040_4040_0000_0000: 0x0000_0040_4040_0000, 0x4040_4040_0040_0000: 0x0000_0000_0040_0000, 0x4040_4040_4000_0000: 0x0000_0000_4040_0000, 0x4040_4040_4040_0000: 0x0000_0000_0040_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x8080_8080_8080_0000, 0x0000_0000_0080_0000: 0x0000_0000_0080_0000, 0x0000_0000_8000_0000: 0x0000_0000_8080_0000, 0x0000_0000_8080_0000: 0x0000_0000_0080_0000,
+ 0x0000_0080_0000_0000: 0x0000_0080_8080_0000, 0x0000_0080_0080_0000: 0x0000_0000_0080_0000, 0x0000_0080_8000_0000: 0x0000_0000_8080_0000, 0x0000_0080_8080_0000: 0x0000_0000_0080_0000,
+ 0x0000_8000_0000_0000: 0x0000_8080_8080_0000, 0x0000_8000_0080_0000: 0x0000_0000_0080_0000, 0x0000_8000_8000_0000: 0x0000_0000_8080_0000, 0x0000_8000_8080_0000: 0x0000_0000_0080_0000,
+ 0x0000_8080_0000_0000: 0x0000_0080_8080_0000, 0x0000_8080_0080_0000: 0x0000_0000_0080_0000, 0x0000_8080_8000_0000: 0x0000_0000_8080_0000, 0x0000_8080_8080_0000: 0x0000_0000_0080_0000,
+ 0x0080_0000_0000_0000: 0x0080_8080_8080_0000, 0x0080_0000_0080_0000: 0x0000_0000_0080_0000, 0x0080_0000_8000_0000: 0x0000_0000_8080_0000, 0x0080_0000_8080_0000: 0x0000_0000_0080_0000,
+ 0x0080_0080_0000_0000: 0x0000_0080_8080_0000, 0x0080_0080_0080_0000: 0x0000_0000_0080_0000, 0x0080_0080_8000_0000: 0x0000_0000_8080_0000, 0x0080_0080_8080_0000: 0x0000_0000_0080_0000,
+ 0x0080_8000_0000_0000: 0x0000_8080_8080_0000, 0x0080_8000_0080_0000: 0x0000_0000_0080_0000, 0x0080_8000_8000_0000: 0x0000_0000_8080_0000, 0x0080_8000_8080_0000: 0x0000_0000_0080_0000,
+ 0x0080_8080_0000_0000: 0x0000_0080_8080_0000, 0x0080_8080_0080_0000: 0x0000_0000_0080_0000, 0x0080_8080_8000_0000: 0x0000_0000_8080_0000, 0x0080_8080_8080_0000: 0x0000_0000_0080_0000,
+ 0x8000_0000_0000_0000: 0x8080_8080_8080_0000, 0x8000_0000_0080_0000: 0x0000_0000_0080_0000, 0x8000_0000_8000_0000: 0x0000_0000_8080_0000, 0x8000_0000_8080_0000: 0x0000_0000_0080_0000,
+ 0x8000_0080_0000_0000: 0x0000_0080_8080_0000, 0x8000_0080_0080_0000: 0x0000_0000_0080_0000, 0x8000_0080_8000_0000: 0x0000_0000_8080_0000, 0x8000_0080_8080_0000: 0x0000_0000_0080_0000,
+ 0x8000_8000_0000_0000: 0x0000_8080_8080_0000, 0x8000_8000_0080_0000: 0x0000_0000_0080_0000, 0x8000_8000_8000_0000: 0x0000_0000_8080_0000, 0x8000_8000_8080_0000: 0x0000_0000_0080_0000,
+ 0x8000_8080_0000_0000: 0x0000_0080_8080_0000, 0x8000_8080_0080_0000: 0x0000_0000_0080_0000, 0x8000_8080_8000_0000: 0x0000_0000_8080_0000, 0x8000_8080_8080_0000: 0x0000_0000_0080_0000,
+ 0x8080_0000_0000_0000: 0x0080_8080_8080_0000, 0x8080_0000_0080_0000: 0x0000_0000_0080_0000, 0x8080_0000_8000_0000: 0x0000_0000_8080_0000, 0x8080_0000_8080_0000: 0x0000_0000_0080_0000,
+ 0x8080_0080_0000_0000: 0x0000_0080_8080_0000, 0x8080_0080_0080_0000: 0x0000_0000_0080_0000, 0x8080_0080_8000_0000: 0x0000_0000_8080_0000, 0x8080_0080_8080_0000: 0x0000_0000_0080_0000,
+ 0x8080_8000_0000_0000: 0x0000_8080_8080_0000, 0x8080_8000_0080_0000: 0x0000_0000_0080_0000, 0x8080_8000_8000_0000: 0x0000_0000_8080_0000, 0x8080_8000_8080_0000: 0x0000_0000_0080_0000,
+ 0x8080_8080_0000_0000: 0x0000_0080_8080_0000, 0x8080_8080_0080_0000: 0x0000_0000_0080_0000, 0x8080_8080_8000_0000: 0x0000_0000_8080_0000, 0x8080_8080_8080_0000: 0x0000_0000_0080_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0101_0101_0100_0000, 0x0000_0000_0100_0000: 0x0000_0000_0100_0000, 0x0000_0001_0000_0000: 0x0000_0001_0100_0000, 0x0000_0001_0100_0000: 0x0000_0000_0100_0000,
+ 0x0000_0100_0000_0000: 0x0000_0101_0100_0000, 0x0000_0100_0100_0000: 0x0000_0000_0100_0000, 0x0000_0101_0000_0000: 0x0000_0001_0100_0000, 0x0000_0101_0100_0000: 0x0000_0000_0100_0000,
+ 0x0001_0000_0000_0000: 0x0001_0101_0100_0000, 0x0001_0000_0100_0000: 0x0000_0000_0100_0000, 0x0001_0001_0000_0000: 0x0000_0001_0100_0000, 0x0001_0001_0100_0000: 0x0000_0000_0100_0000,
+ 0x0001_0100_0000_0000: 0x0000_0101_0100_0000, 0x0001_0100_0100_0000: 0x0000_0000_0100_0000, 0x0001_0101_0000_0000: 0x0000_0001_0100_0000, 0x0001_0101_0100_0000: 0x0000_0000_0100_0000,
+ 0x0100_0000_0000_0000: 0x0101_0101_0100_0000, 0x0100_0000_0100_0000: 0x0000_0000_0100_0000, 0x0100_0001_0000_0000: 0x0000_0001_0100_0000, 0x0100_0001_0100_0000: 0x0000_0000_0100_0000,
+ 0x0100_0100_0000_0000: 0x0000_0101_0100_0000, 0x0100_0100_0100_0000: 0x0000_0000_0100_0000, 0x0100_0101_0000_0000: 0x0000_0001_0100_0000, 0x0100_0101_0100_0000: 0x0000_0000_0100_0000,
+ 0x0101_0000_0000_0000: 0x0001_0101_0100_0000, 0x0101_0000_0100_0000: 0x0000_0000_0100_0000, 0x0101_0001_0000_0000: 0x0000_0001_0100_0000, 0x0101_0001_0100_0000: 0x0000_0000_0100_0000,
+ 0x0101_0100_0000_0000: 0x0000_0101_0100_0000, 0x0101_0100_0100_0000: 0x0000_0000_0100_0000, 0x0101_0101_0000_0000: 0x0000_0001_0100_0000, 0x0101_0101_0100_0000: 0x0000_0000_0100_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0202_0202_0200_0000, 0x0000_0000_0200_0000: 0x0000_0000_0200_0000, 0x0000_0002_0000_0000: 0x0000_0002_0200_0000, 0x0000_0002_0200_0000: 0x0000_0000_0200_0000,
+ 0x0000_0200_0000_0000: 0x0000_0202_0200_0000, 0x0000_0200_0200_0000: 0x0000_0000_0200_0000, 0x0000_0202_0000_0000: 0x0000_0002_0200_0000, 0x0000_0202_0200_0000: 0x0000_0000_0200_0000,
+ 0x0002_0000_0000_0000: 0x0002_0202_0200_0000, 0x0002_0000_0200_0000: 0x0000_0000_0200_0000, 0x0002_0002_0000_0000: 0x0000_0002_0200_0000, 0x0002_0002_0200_0000: 0x0000_0000_0200_0000,
+ 0x0002_0200_0000_0000: 0x0000_0202_0200_0000, 0x0002_0200_0200_0000: 0x0000_0000_0200_0000, 0x0002_0202_0000_0000: 0x0000_0002_0200_0000, 0x0002_0202_0200_0000: 0x0000_0000_0200_0000,
+ 0x0200_0000_0000_0000: 0x0202_0202_0200_0000, 0x0200_0000_0200_0000: 0x0000_0000_0200_0000, 0x0200_0002_0000_0000: 0x0000_0002_0200_0000, 0x0200_0002_0200_0000: 0x0000_0000_0200_0000,
+ 0x0200_0200_0000_0000: 0x0000_0202_0200_0000, 0x0200_0200_0200_0000: 0x0000_0000_0200_0000, 0x0200_0202_0000_0000: 0x0000_0002_0200_0000, 0x0200_0202_0200_0000: 0x0000_0000_0200_0000,
+ 0x0202_0000_0000_0000: 0x0002_0202_0200_0000, 0x0202_0000_0200_0000: 0x0000_0000_0200_0000, 0x0202_0002_0000_0000: 0x0000_0002_0200_0000, 0x0202_0002_0200_0000: 0x0000_0000_0200_0000,
+ 0x0202_0200_0000_0000: 0x0000_0202_0200_0000, 0x0202_0200_0200_0000: 0x0000_0000_0200_0000, 0x0202_0202_0000_0000: 0x0000_0002_0200_0000, 0x0202_0202_0200_0000: 0x0000_0000_0200_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0404_0404_0400_0000, 0x0000_0000_0400_0000: 0x0000_0000_0400_0000, 0x0000_0004_0000_0000: 0x0000_0004_0400_0000, 0x0000_0004_0400_0000: 0x0000_0000_0400_0000,
+ 0x0000_0400_0000_0000: 0x0000_0404_0400_0000, 0x0000_0400_0400_0000: 0x0000_0000_0400_0000, 0x0000_0404_0000_0000: 0x0000_0004_0400_0000, 0x0000_0404_0400_0000: 0x0000_0000_0400_0000,
+ 0x0004_0000_0000_0000: 0x0004_0404_0400_0000, 0x0004_0000_0400_0000: 0x0000_0000_0400_0000, 0x0004_0004_0000_0000: 0x0000_0004_0400_0000, 0x0004_0004_0400_0000: 0x0000_0000_0400_0000,
+ 0x0004_0400_0000_0000: 0x0000_0404_0400_0000, 0x0004_0400_0400_0000: 0x0000_0000_0400_0000, 0x0004_0404_0000_0000: 0x0000_0004_0400_0000, 0x0004_0404_0400_0000: 0x0000_0000_0400_0000,
+ 0x0400_0000_0000_0000: 0x0404_0404_0400_0000, 0x0400_0000_0400_0000: 0x0000_0000_0400_0000, 0x0400_0004_0000_0000: 0x0000_0004_0400_0000, 0x0400_0004_0400_0000: 0x0000_0000_0400_0000,
+ 0x0400_0400_0000_0000: 0x0000_0404_0400_0000, 0x0400_0400_0400_0000: 0x0000_0000_0400_0000, 0x0400_0404_0000_0000: 0x0000_0004_0400_0000, 0x0400_0404_0400_0000: 0x0000_0000_0400_0000,
+ 0x0404_0000_0000_0000: 0x0004_0404_0400_0000, 0x0404_0000_0400_0000: 0x0000_0000_0400_0000, 0x0404_0004_0000_0000: 0x0000_0004_0400_0000, 0x0404_0004_0400_0000: 0x0000_0000_0400_0000,
+ 0x0404_0400_0000_0000: 0x0000_0404_0400_0000, 0x0404_0400_0400_0000: 0x0000_0000_0400_0000, 0x0404_0404_0000_0000: 0x0000_0004_0400_0000, 0x0404_0404_0400_0000: 0x0000_0000_0400_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0808_0808_0800_0000, 0x0000_0000_0800_0000: 0x0000_0000_0800_0000, 0x0000_0008_0000_0000: 0x0000_0008_0800_0000, 0x0000_0008_0800_0000: 0x0000_0000_0800_0000,
+ 0x0000_0800_0000_0000: 0x0000_0808_0800_0000, 0x0000_0800_0800_0000: 0x0000_0000_0800_0000, 0x0000_0808_0000_0000: 0x0000_0008_0800_0000, 0x0000_0808_0800_0000: 0x0000_0000_0800_0000,
+ 0x0008_0000_0000_0000: 0x0008_0808_0800_0000, 0x0008_0000_0800_0000: 0x0000_0000_0800_0000, 0x0008_0008_0000_0000: 0x0000_0008_0800_0000, 0x0008_0008_0800_0000: 0x0000_0000_0800_0000,
+ 0x0008_0800_0000_0000: 0x0000_0808_0800_0000, 0x0008_0800_0800_0000: 0x0000_0000_0800_0000, 0x0008_0808_0000_0000: 0x0000_0008_0800_0000, 0x0008_0808_0800_0000: 0x0000_0000_0800_0000,
+ 0x0800_0000_0000_0000: 0x0808_0808_0800_0000, 0x0800_0000_0800_0000: 0x0000_0000_0800_0000, 0x0800_0008_0000_0000: 0x0000_0008_0800_0000, 0x0800_0008_0800_0000: 0x0000_0000_0800_0000,
+ 0x0800_0800_0000_0000: 0x0000_0808_0800_0000, 0x0800_0800_0800_0000: 0x0000_0000_0800_0000, 0x0800_0808_0000_0000: 0x0000_0008_0800_0000, 0x0800_0808_0800_0000: 0x0000_0000_0800_0000,
+ 0x0808_0000_0000_0000: 0x0008_0808_0800_0000, 0x0808_0000_0800_0000: 0x0000_0000_0800_0000, 0x0808_0008_0000_0000: 0x0000_0008_0800_0000, 0x0808_0008_0800_0000: 0x0000_0000_0800_0000,
+ 0x0808_0800_0000_0000: 0x0000_0808_0800_0000, 0x0808_0800_0800_0000: 0x0000_0000_0800_0000, 0x0808_0808_0000_0000: 0x0000_0008_0800_0000, 0x0808_0808_0800_0000: 0x0000_0000_0800_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x1010_1010_1000_0000, 0x0000_0000_1000_0000: 0x0000_0000_1000_0000, 0x0000_0010_0000_0000: 0x0000_0010_1000_0000, 0x0000_0010_1000_0000: 0x0000_0000_1000_0000,
+ 0x0000_1000_0000_0000: 0x0000_1010_1000_0000, 0x0000_1000_1000_0000: 0x0000_0000_1000_0000, 0x0000_1010_0000_0000: 0x0000_0010_1000_0000, 0x0000_1010_1000_0000: 0x0000_0000_1000_0000,
+ 0x0010_0000_0000_0000: 0x0010_1010_1000_0000, 0x0010_0000_1000_0000: 0x0000_0000_1000_0000, 0x0010_0010_0000_0000: 0x0000_0010_1000_0000, 0x0010_0010_1000_0000: 0x0000_0000_1000_0000,
+ 0x0010_1000_0000_0000: 0x0000_1010_1000_0000, 0x0010_1000_1000_0000: 0x0000_0000_1000_0000, 0x0010_1010_0000_0000: 0x0000_0010_1000_0000, 0x0010_1010_1000_0000: 0x0000_0000_1000_0000,
+ 0x1000_0000_0000_0000: 0x1010_1010_1000_0000, 0x1000_0000_1000_0000: 0x0000_0000_1000_0000, 0x1000_0010_0000_0000: 0x0000_0010_1000_0000, 0x1000_0010_1000_0000: 0x0000_0000_1000_0000,
+ 0x1000_1000_0000_0000: 0x0000_1010_1000_0000, 0x1000_1000_1000_0000: 0x0000_0000_1000_0000, 0x1000_1010_0000_0000: 0x0000_0010_1000_0000, 0x1000_1010_1000_0000: 0x0000_0000_1000_0000,
+ 0x1010_0000_0000_0000: 0x0010_1010_1000_0000, 0x1010_0000_1000_0000: 0x0000_0000_1000_0000, 0x1010_0010_0000_0000: 0x0000_0010_1000_0000, 0x1010_0010_1000_0000: 0x0000_0000_1000_0000,
+ 0x1010_1000_0000_0000: 0x0000_1010_1000_0000, 0x1010_1000_1000_0000: 0x0000_0000_1000_0000, 0x1010_1010_0000_0000: 0x0000_0010_1000_0000, 0x1010_1010_1000_0000: 0x0000_0000_1000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x2020_2020_2000_0000, 0x0000_0000_2000_0000: 0x0000_0000_2000_0000, 0x0000_0020_0000_0000: 0x0000_0020_2000_0000, 0x0000_0020_2000_0000: 0x0000_0000_2000_0000,
+ 0x0000_2000_0000_0000: 0x0000_2020_2000_0000, 0x0000_2000_2000_0000: 0x0000_0000_2000_0000, 0x0000_2020_0000_0000: 0x0000_0020_2000_0000, 0x0000_2020_2000_0000: 0x0000_0000_2000_0000,
+ 0x0020_0000_0000_0000: 0x0020_2020_2000_0000, 0x0020_0000_2000_0000: 0x0000_0000_2000_0000, 0x0020_0020_0000_0000: 0x0000_0020_2000_0000, 0x0020_0020_2000_0000: 0x0000_0000_2000_0000,
+ 0x0020_2000_0000_0000: 0x0000_2020_2000_0000, 0x0020_2000_2000_0000: 0x0000_0000_2000_0000, 0x0020_2020_0000_0000: 0x0000_0020_2000_0000, 0x0020_2020_2000_0000: 0x0000_0000_2000_0000,
+ 0x2000_0000_0000_0000: 0x2020_2020_2000_0000, 0x2000_0000_2000_0000: 0x0000_0000_2000_0000, 0x2000_0020_0000_0000: 0x0000_0020_2000_0000, 0x2000_0020_2000_0000: 0x0000_0000_2000_0000,
+ 0x2000_2000_0000_0000: 0x0000_2020_2000_0000, 0x2000_2000_2000_0000: 0x0000_0000_2000_0000, 0x2000_2020_0000_0000: 0x0000_0020_2000_0000, 0x2000_2020_2000_0000: 0x0000_0000_2000_0000,
+ 0x2020_0000_0000_0000: 0x0020_2020_2000_0000, 0x2020_0000_2000_0000: 0x0000_0000_2000_0000, 0x2020_0020_0000_0000: 0x0000_0020_2000_0000, 0x2020_0020_2000_0000: 0x0000_0000_2000_0000,
+ 0x2020_2000_0000_0000: 0x0000_2020_2000_0000, 0x2020_2000_2000_0000: 0x0000_0000_2000_0000, 0x2020_2020_0000_0000: 0x0000_0020_2000_0000, 0x2020_2020_2000_0000: 0x0000_0000_2000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x4040_4040_4000_0000, 0x0000_0000_4000_0000: 0x0000_0000_4000_0000, 0x0000_0040_0000_0000: 0x0000_0040_4000_0000, 0x0000_0040_4000_0000: 0x0000_0000_4000_0000,
+ 0x0000_4000_0000_0000: 0x0000_4040_4000_0000, 0x0000_4000_4000_0000: 0x0000_0000_4000_0000, 0x0000_4040_0000_0000: 0x0000_0040_4000_0000, 0x0000_4040_4000_0000: 0x0000_0000_4000_0000,
+ 0x0040_0000_0000_0000: 0x0040_4040_4000_0000, 0x0040_0000_4000_0000: 0x0000_0000_4000_0000, 0x0040_0040_0000_0000: 0x0000_0040_4000_0000, 0x0040_0040_4000_0000: 0x0000_0000_4000_0000,
+ 0x0040_4000_0000_0000: 0x0000_4040_4000_0000, 0x0040_4000_4000_0000: 0x0000_0000_4000_0000, 0x0040_4040_0000_0000: 0x0000_0040_4000_0000, 0x0040_4040_4000_0000: 0x0000_0000_4000_0000,
+ 0x4000_0000_0000_0000: 0x4040_4040_4000_0000, 0x4000_0000_4000_0000: 0x0000_0000_4000_0000, 0x4000_0040_0000_0000: 0x0000_0040_4000_0000, 0x4000_0040_4000_0000: 0x0000_0000_4000_0000,
+ 0x4000_4000_0000_0000: 0x0000_4040_4000_0000, 0x4000_4000_4000_0000: 0x0000_0000_4000_0000, 0x4000_4040_0000_0000: 0x0000_0040_4000_0000, 0x4000_4040_4000_0000: 0x0000_0000_4000_0000,
+ 0x4040_0000_0000_0000: 0x0040_4040_4000_0000, 0x4040_0000_4000_0000: 0x0000_0000_4000_0000, 0x4040_0040_0000_0000: 0x0000_0040_4000_0000, 0x4040_0040_4000_0000: 0x0000_0000_4000_0000,
+ 0x4040_4000_0000_0000: 0x0000_4040_4000_0000, 0x4040_4000_4000_0000: 0x0000_0000_4000_0000, 0x4040_4040_0000_0000: 0x0000_0040_4000_0000, 0x4040_4040_4000_0000: 0x0000_0000_4000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x8080_8080_8000_0000, 0x0000_0000_8000_0000: 0x0000_0000_8000_0000, 0x0000_0080_0000_0000: 0x0000_0080_8000_0000, 0x0000_0080_8000_0000: 0x0000_0000_8000_0000,
+ 0x0000_8000_0000_0000: 0x0000_8080_8000_0000, 0x0000_8000_8000_0000: 0x0000_0000_8000_0000, 0x0000_8080_0000_0000: 0x0000_0080_8000_0000, 0x0000_8080_8000_0000: 0x0000_0000_8000_0000,
+ 0x0080_0000_0000_0000: 0x0080_8080_8000_0000, 0x0080_0000_8000_0000: 0x0000_0000_8000_0000, 0x0080_0080_0000_0000: 0x0000_0080_8000_0000, 0x0080_0080_8000_0000: 0x0000_0000_8000_0000,
+ 0x0080_8000_0000_0000: 0x0000_8080_8000_0000, 0x0080_8000_8000_0000: 0x0000_0000_8000_0000, 0x0080_8080_0000_0000: 0x0000_0080_8000_0000, 0x0080_8080_8000_0000: 0x0000_0000_8000_0000,
+ 0x8000_0000_0000_0000: 0x8080_8080_8000_0000, 0x8000_0000_8000_0000: 0x0000_0000_8000_0000, 0x8000_0080_0000_0000: 0x0000_0080_8000_0000, 0x8000_0080_8000_0000: 0x0000_0000_8000_0000,
+ 0x8000_8000_0000_0000: 0x0000_8080_8000_0000, 0x8000_8000_8000_0000: 0x0000_0000_8000_0000, 0x8000_8080_0000_0000: 0x0000_0080_8000_0000, 0x8000_8080_8000_0000: 0x0000_0000_8000_0000,
+ 0x8080_0000_0000_0000: 0x0080_8080_8000_0000, 0x8080_0000_8000_0000: 0x0000_0000_8000_0000, 0x8080_0080_0000_0000: 0x0000_0080_8000_0000, 0x8080_0080_8000_0000: 0x0000_0000_8000_0000,
+ 0x8080_8000_0000_0000: 0x0000_8080_8000_0000, 0x8080_8000_8000_0000: 0x0000_0000_8000_0000, 0x8080_8080_0000_0000: 0x0000_0080_8000_0000, 0x8080_8080_8000_0000: 0x0000_0000_8000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0101_0101_0000_0000, 0x0000_0001_0000_0000: 0x0000_0001_0000_0000, 0x0000_0100_0000_0000: 0x0000_0101_0000_0000, 0x0000_0101_0000_0000: 0x0000_0001_0000_0000,
+ 0x0001_0000_0000_0000: 0x0001_0101_0000_0000, 0x0001_0001_0000_0000: 0x0000_0001_0000_0000, 0x0001_0100_0000_0000: 0x0000_0101_0000_0000, 0x0001_0101_0000_0000: 0x0000_0001_0000_0000,
+ 0x0100_0000_0000_0000: 0x0101_0101_0000_0000, 0x0100_0001_0000_0000: 0x0000_0001_0000_0000, 0x0100_0100_0000_0000: 0x0000_0101_0000_0000, 0x0100_0101_0000_0000: 0x0000_0001_0000_0000,
+ 0x0101_0000_0000_0000: 0x0001_0101_0000_0000, 0x0101_0001_0000_0000: 0x0000_0001_0000_0000, 0x0101_0100_0000_0000: 0x0000_0101_0000_0000, 0x0101_0101_0000_0000: 0x0000_0001_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0202_0202_0000_0000, 0x0000_0002_0000_0000: 0x0000_0002_0000_0000, 0x0000_0200_0000_0000: 0x0000_0202_0000_0000, 0x0000_0202_0000_0000: 0x0000_0002_0000_0000,
+ 0x0002_0000_0000_0000: 0x0002_0202_0000_0000, 0x0002_0002_0000_0000: 0x0000_0002_0000_0000, 0x0002_0200_0000_0000: 0x0000_0202_0000_0000, 0x0002_0202_0000_0000: 0x0000_0002_0000_0000,
+ 0x0200_0000_0000_0000: 0x0202_0202_0000_0000, 0x0200_0002_0000_0000: 0x0000_0002_0000_0000, 0x0200_0200_0000_0000: 0x0000_0202_0000_0000, 0x0200_0202_0000_0000: 0x0000_0002_0000_0000,
+ 0x0202_0000_0000_0000: 0x0002_0202_0000_0000, 0x0202_0002_0000_0000: 0x0000_0002_0000_0000, 0x0202_0200_0000_0000: 0x0000_0202_0000_0000, 0x0202_0202_0000_0000: 0x0000_0002_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0404_0404_0000_0000, 0x0000_0004_0000_0000: 0x0000_0004_0000_0000, 0x0000_0400_0000_0000: 0x0000_0404_0000_0000, 0x0000_0404_0000_0000: 0x0000_0004_0000_0000,
+ 0x0004_0000_0000_0000: 0x0004_0404_0000_0000, 0x0004_0004_0000_0000: 0x0000_0004_0000_0000, 0x0004_0400_0000_0000: 0x0000_0404_0000_0000, 0x0004_0404_0000_0000: 0x0000_0004_0000_0000,
+ 0x0400_0000_0000_0000: 0x0404_0404_0000_0000, 0x0400_0004_0000_0000: 0x0000_0004_0000_0000, 0x0400_0400_0000_0000: 0x0000_0404_0000_0000, 0x0400_0404_0000_0000: 0x0000_0004_0000_0000,
+ 0x0404_0000_0000_0000: 0x0004_0404_0000_0000, 0x0404_0004_0000_0000: 0x0000_0004_0000_0000, 0x0404_0400_0000_0000: 0x0000_0404_0000_0000, 0x0404_0404_0000_0000: 0x0000_0004_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0808_0808_0000_0000, 0x0000_0008_0000_0000: 0x0000_0008_0000_0000, 0x0000_0800_0000_0000: 0x0000_0808_0000_0000, 0x0000_0808_0000_0000: 0x0000_0008_0000_0000,
+ 0x0008_0000_0000_0000: 0x0008_0808_0000_0000, 0x0008_0008_0000_0000: 0x0000_0008_0000_0000, 0x0008_0800_0000_0000: 0x0000_0808_0000_0000, 0x0008_0808_0000_0000: 0x0000_0008_0000_0000,
+ 0x0800_0000_0000_0000: 0x0808_0808_0000_0000, 0x0800_0008_0000_0000: 0x0000_0008_0000_0000, 0x0800_0800_0000_0000: 0x0000_0808_0000_0000, 0x0800_0808_0000_0000: 0x0000_0008_0000_0000,
+ 0x0808_0000_0000_0000: 0x0008_0808_0000_0000, 0x0808_0008_0000_0000: 0x0000_0008_0000_0000, 0x0808_0800_0000_0000: 0x0000_0808_0000_0000, 0x0808_0808_0000_0000: 0x0000_0008_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x1010_1010_0000_0000, 0x0000_0010_0000_0000: 0x0000_0010_0000_0000, 0x0000_1000_0000_0000: 0x0000_1010_0000_0000, 0x0000_1010_0000_0000: 0x0000_0010_0000_0000,
+ 0x0010_0000_0000_0000: 0x0010_1010_0000_0000, 0x0010_0010_0000_0000: 0x0000_0010_0000_0000, 0x0010_1000_0000_0000: 0x0000_1010_0000_0000, 0x0010_1010_0000_0000: 0x0000_0010_0000_0000,
+ 0x1000_0000_0000_0000: 0x1010_1010_0000_0000, 0x1000_0010_0000_0000: 0x0000_0010_0000_0000, 0x1000_1000_0000_0000: 0x0000_1010_0000_0000, 0x1000_1010_0000_0000: 0x0000_0010_0000_0000,
+ 0x1010_0000_0000_0000: 0x0010_1010_0000_0000, 0x1010_0010_0000_0000: 0x0000_0010_0000_0000, 0x1010_1000_0000_0000: 0x0000_1010_0000_0000, 0x1010_1010_0000_0000: 0x0000_0010_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x2020_2020_0000_0000, 0x0000_0020_0000_0000: 0x0000_0020_0000_0000, 0x0000_2000_0000_0000: 0x0000_2020_0000_0000, 0x0000_2020_0000_0000: 0x0000_0020_0000_0000,
+ 0x0020_0000_0000_0000: 0x0020_2020_0000_0000, 0x0020_0020_0000_0000: 0x0000_0020_0000_0000, 0x0020_2000_0000_0000: 0x0000_2020_0000_0000, 0x0020_2020_0000_0000: 0x0000_0020_0000_0000,
+ 0x2000_0000_0000_0000: 0x2020_2020_0000_0000, 0x2000_0020_0000_0000: 0x0000_0020_0000_0000, 0x2000_2000_0000_0000: 0x0000_2020_0000_0000, 0x2000_2020_0000_0000: 0x0000_0020_0000_0000,
+ 0x2020_0000_0000_0000: 0x0020_2020_0000_0000, 0x2020_0020_0000_0000: 0x0000_0020_0000_0000, 0x2020_2000_0000_0000: 0x0000_2020_0000_0000, 0x2020_2020_0000_0000: 0x0000_0020_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x4040_4040_0000_0000, 0x0000_0040_0000_0000: 0x0000_0040_0000_0000, 0x0000_4000_0000_0000: 0x0000_4040_0000_0000, 0x0000_4040_0000_0000: 0x0000_0040_0000_0000,
+ 0x0040_0000_0000_0000: 0x0040_4040_0000_0000, 0x0040_0040_0000_0000: 0x0000_0040_0000_0000, 0x0040_4000_0000_0000: 0x0000_4040_0000_0000, 0x0040_4040_0000_0000: 0x0000_0040_0000_0000,
+ 0x4000_0000_0000_0000: 0x4040_4040_0000_0000, 0x4000_0040_0000_0000: 0x0000_0040_0000_0000, 0x4000_4000_0000_0000: 0x0000_4040_0000_0000, 0x4000_4040_0000_0000: 0x0000_0040_0000_0000,
+ 0x4040_0000_0000_0000: 0x0040_4040_0000_0000, 0x4040_0040_0000_0000: 0x0000_0040_0000_0000, 0x4040_4000_0000_0000: 0x0000_4040_0000_0000, 0x4040_4040_0000_0000: 0x0000_0040_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x8080_8080_0000_0000, 0x0000_0080_0000_0000: 0x0000_0080_0000_0000, 0x0000_8000_0000_0000: 0x0000_8080_0000_0000, 0x0000_8080_0000_0000: 0x0000_0080_0000_0000,
+ 0x0080_0000_0000_0000: 0x0080_8080_0000_0000, 0x0080_0080_0000_0000: 0x0000_0080_0000_0000, 0x0080_8000_0000_0000: 0x0000_8080_0000_0000, 0x0080_8080_0000_0000: 0x0000_0080_0000_0000,
+ 0x8000_0000_0000_0000: 0x8080_8080_0000_0000, 0x8000_0080_0000_0000: 0x0000_0080_0000_0000, 0x8000_8000_0000_0000: 0x0000_8080_0000_0000, 0x8000_8080_0000_0000: 0x0000_0080_0000_0000,
+ 0x8080_0000_0000_0000: 0x0080_8080_0000_0000, 0x8080_0080_0000_0000: 0x0000_0080_0000_0000, 0x8080_8000_0000_0000: 0x0000_8080_0000_0000, 0x8080_8080_0000_0000: 0x0000_0080_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0101_0100_0000_0000, 0x0000_0100_0000_0000: 0x0000_0100_0000_0000, 0x0001_0000_0000_0000: 0x0001_0100_0000_0000, 0x0001_0100_0000_0000: 0x0000_0100_0000_0000,
+ 0x0100_0000_0000_0000: 0x0101_0100_0000_0000, 0x0100_0100_0000_0000: 0x0000_0100_0000_0000, 0x0101_0000_0000_0000: 0x0001_0100_0000_0000, 0x0101_0100_0000_0000: 0x0000_0100_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0202_0200_0000_0000, 0x0000_0200_0000_0000: 0x0000_0200_0000_0000, 0x0002_0000_0000_0000: 0x0002_0200_0000_0000, 0x0002_0200_0000_0000: 0x0000_0200_0000_0000,
+ 0x0200_0000_0000_0000: 0x0202_0200_0000_0000, 0x0200_0200_0000_0000: 0x0000_0200_0000_0000, 0x0202_0000_0000_0000: 0x0002_0200_0000_0000, 0x0202_0200_0000_0000: 0x0000_0200_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0404_0400_0000_0000, 0x0000_0400_0000_0000: 0x0000_0400_0000_0000, 0x0004_0000_0000_0000: 0x0004_0400_0000_0000, 0x0004_0400_0000_0000: 0x0000_0400_0000_0000,
+ 0x0400_0000_0000_0000: 0x0404_0400_0000_0000, 0x0400_0400_0000_0000: 0x0000_0400_0000_0000, 0x0404_0000_0000_0000: 0x0004_0400_0000_0000, 0x0404_0400_0000_0000: 0x0000_0400_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0808_0800_0000_0000, 0x0000_0800_0000_0000: 0x0000_0800_0000_0000, 0x0008_0000_0000_0000: 0x0008_0800_0000_0000, 0x0008_0800_0000_0000: 0x0000_0800_0000_0000,
+ 0x0800_0000_0000_0000: 0x0808_0800_0000_0000, 0x0800_0800_0000_0000: 0x0000_0800_0000_0000, 0x0808_0000_0000_0000: 0x0008_0800_0000_0000, 0x0808_0800_0000_0000: 0x0000_0800_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x1010_1000_0000_0000, 0x0000_1000_0000_0000: 0x0000_1000_0000_0000, 0x0010_0000_0000_0000: 0x0010_1000_0000_0000, 0x0010_1000_0000_0000: 0x0000_1000_0000_0000,
+ 0x1000_0000_0000_0000: 0x1010_1000_0000_0000, 0x1000_1000_0000_0000: 0x0000_1000_0000_0000, 0x1010_0000_0000_0000: 0x0010_1000_0000_0000, 0x1010_1000_0000_0000: 0x0000_1000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x2020_2000_0000_0000, 0x0000_2000_0000_0000: 0x0000_2000_0000_0000, 0x0020_0000_0000_0000: 0x0020_2000_0000_0000, 0x0020_2000_0000_0000: 0x0000_2000_0000_0000,
+ 0x2000_0000_0000_0000: 0x2020_2000_0000_0000, 0x2000_2000_0000_0000: 0x0000_2000_0000_0000, 0x2020_0000_0000_0000: 0x0020_2000_0000_0000, 0x2020_2000_0000_0000: 0x0000_2000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x4040_4000_0000_0000, 0x0000_4000_0000_0000: 0x0000_4000_0000_0000, 0x0040_0000_0000_0000: 0x0040_4000_0000_0000, 0x0040_4000_0000_0000: 0x0000_4000_0000_0000,
+ 0x4000_0000_0000_0000: 0x4040_4000_0000_0000, 0x4000_4000_0000_0000: 0x0000_4000_0000_0000, 0x4040_0000_0000_0000: 0x0040_4000_0000_0000, 0x4040_4000_0000_0000: 0x0000_4000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x8080_8000_0000_0000, 0x0000_8000_0000_0000: 0x0000_8000_0000_0000, 0x0080_0000_0000_0000: 0x0080_8000_0000_0000, 0x0080_8000_0000_0000: 0x0000_8000_0000_0000,
+ 0x8000_0000_0000_0000: 0x8080_8000_0000_0000, 0x8000_8000_0000_0000: 0x0000_8000_0000_0000, 0x8080_0000_0000_0000: 0x0080_8000_0000_0000, 0x8080_8000_0000_0000: 0x0000_8000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0101_0000_0000_0000, 0x0001_0000_0000_0000: 0x0001_0000_0000_0000, 0x0100_0000_0000_0000: 0x0101_0000_0000_0000, 0x0101_0000_0000_0000: 0x0001_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0202_0000_0000_0000, 0x0002_0000_0000_0000: 0x0002_0000_0000_0000, 0x0200_0000_0000_0000: 0x0202_0000_0000_0000, 0x0202_0000_0000_0000: 0x0002_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0404_0000_0000_0000, 0x0004_0000_0000_0000: 0x0004_0000_0000_0000, 0x0400_0000_0000_0000: 0x0404_0000_0000_0000, 0x0404_0000_0000_0000: 0x0004_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0808_0000_0000_0000, 0x0008_0000_0000_0000: 0x0008_0000_0000_0000, 0x0800_0000_0000_0000: 0x0808_0000_0000_0000, 0x0808_0000_0000_0000: 0x0008_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x1010_0000_0000_0000, 0x0010_0000_0000_0000: 0x0010_0000_0000_0000, 0x1000_0000_0000_0000: 0x1010_0000_0000_0000, 0x1010_0000_0000_0000: 0x0010_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x2020_0000_0000_0000, 0x0020_0000_0000_0000: 0x0020_0000_0000_0000, 0x2000_0000_0000_0000: 0x2020_0000_0000_0000, 0x2020_0000_0000_0000: 0x0020_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x4040_0000_0000_0000, 0x0040_0000_0000_0000: 0x0040_0000_0000_0000, 0x4000_0000_0000_0000: 0x4040_0000_0000_0000, 0x4040_0000_0000_0000: 0x0040_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x8080_0000_0000_0000, 0x0080_0000_0000_0000: 0x0080_0000_0000_0000, 0x8000_0000_0000_0000: 0x8080_0000_0000_0000, 0x8080_0000_0000_0000: 0x0080_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0100_0000_0000_0000, 0x0100_0000_0000_0000: 0x0100_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0200_0000_0000_0000, 0x0200_0000_0000_0000: 0x0200_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0400_0000_0000_0000, 0x0400_0000_0000_0000: 0x0400_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0800_0000_0000_0000, 0x0800_0000_0000_0000: 0x0800_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x1000_0000_0000_0000, 0x1000_0000_0000_0000: 0x1000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x2000_0000_0000_0000, 0x2000_0000_0000_0000: 0x2000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x4000_0000_0000_0000, 0x4000_0000_0000_0000: 0x4000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x8000_0000_0000_0000, 0x8000_0000_0000_0000: 0x8000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+)
+D_MASK = (
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0001, 0x0000_0000_0000_0001: 0x0000_0000_0000_0001,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0002, 0x0000_0000_0000_0002: 0x0000_0000_0000_0002,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0004, 0x0000_0000_0000_0004: 0x0000_0000_0000_0004,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0008, 0x0000_0000_0000_0008: 0x0000_0000_0000_0008,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0010, 0x0000_0000_0000_0010: 0x0000_0000_0000_0010,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0020, 0x0000_0000_0000_0020: 0x0000_0000_0000_0020,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0040, 0x0000_0000_0000_0040: 0x0000_0000_0000_0040,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0080, 0x0000_0000_0000_0080: 0x0000_0000_0000_0080,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0101, 0x0000_0000_0000_0001: 0x0000_0000_0000_0101, 0x0000_0000_0000_0100: 0x0000_0000_0000_0100, 0x0000_0000_0000_0101: 0x0000_0000_0000_0100,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0202, 0x0000_0000_0000_0002: 0x0000_0000_0000_0202, 0x0000_0000_0000_0200: 0x0000_0000_0000_0200, 0x0000_0000_0000_0202: 0x0000_0000_0000_0200,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0404, 0x0000_0000_0000_0004: 0x0000_0000_0000_0404, 0x0000_0000_0000_0400: 0x0000_0000_0000_0400, 0x0000_0000_0000_0404: 0x0000_0000_0000_0400,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0808, 0x0000_0000_0000_0008: 0x0000_0000_0000_0808, 0x0000_0000_0000_0800: 0x0000_0000_0000_0800, 0x0000_0000_0000_0808: 0x0000_0000_0000_0800,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_1010, 0x0000_0000_0000_0010: 0x0000_0000_0000_1010, 0x0000_0000_0000_1000: 0x0000_0000_0000_1000, 0x0000_0000_0000_1010: 0x0000_0000_0000_1000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_2020, 0x0000_0000_0000_0020: 0x0000_0000_0000_2020, 0x0000_0000_0000_2000: 0x0000_0000_0000_2000, 0x0000_0000_0000_2020: 0x0000_0000_0000_2000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_4040, 0x0000_0000_0000_0040: 0x0000_0000_0000_4040, 0x0000_0000_0000_4000: 0x0000_0000_0000_4000, 0x0000_0000_0000_4040: 0x0000_0000_0000_4000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_8080, 0x0000_0000_0000_0080: 0x0000_0000_0000_8080, 0x0000_0000_0000_8000: 0x0000_0000_0000_8000, 0x0000_0000_0000_8080: 0x0000_0000_0000_8000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0001_0101, 0x0000_0000_0000_0001: 0x0000_0000_0001_0101, 0x0000_0000_0000_0100: 0x0000_0000_0001_0100, 0x0000_0000_0000_0101: 0x0000_0000_0001_0100,
+ 0x0000_0000_0001_0000: 0x0000_0000_0001_0000, 0x0000_0000_0001_0001: 0x0000_0000_0001_0000, 0x0000_0000_0001_0100: 0x0000_0000_0001_0000, 0x0000_0000_0001_0101: 0x0000_0000_0001_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0002_0202, 0x0000_0000_0000_0002: 0x0000_0000_0002_0202, 0x0000_0000_0000_0200: 0x0000_0000_0002_0200, 0x0000_0000_0000_0202: 0x0000_0000_0002_0200,
+ 0x0000_0000_0002_0000: 0x0000_0000_0002_0000, 0x0000_0000_0002_0002: 0x0000_0000_0002_0000, 0x0000_0000_0002_0200: 0x0000_0000_0002_0000, 0x0000_0000_0002_0202: 0x0000_0000_0002_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0004_0404, 0x0000_0000_0000_0004: 0x0000_0000_0004_0404, 0x0000_0000_0000_0400: 0x0000_0000_0004_0400, 0x0000_0000_0000_0404: 0x0000_0000_0004_0400,
+ 0x0000_0000_0004_0000: 0x0000_0000_0004_0000, 0x0000_0000_0004_0004: 0x0000_0000_0004_0000, 0x0000_0000_0004_0400: 0x0000_0000_0004_0000, 0x0000_0000_0004_0404: 0x0000_0000_0004_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0008_0808, 0x0000_0000_0000_0008: 0x0000_0000_0008_0808, 0x0000_0000_0000_0800: 0x0000_0000_0008_0800, 0x0000_0000_0000_0808: 0x0000_0000_0008_0800,
+ 0x0000_0000_0008_0000: 0x0000_0000_0008_0000, 0x0000_0000_0008_0008: 0x0000_0000_0008_0000, 0x0000_0000_0008_0800: 0x0000_0000_0008_0000, 0x0000_0000_0008_0808: 0x0000_0000_0008_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0010_1010, 0x0000_0000_0000_0010: 0x0000_0000_0010_1010, 0x0000_0000_0000_1000: 0x0000_0000_0010_1000, 0x0000_0000_0000_1010: 0x0000_0000_0010_1000,
+ 0x0000_0000_0010_0000: 0x0000_0000_0010_0000, 0x0000_0000_0010_0010: 0x0000_0000_0010_0000, 0x0000_0000_0010_1000: 0x0000_0000_0010_0000, 0x0000_0000_0010_1010: 0x0000_0000_0010_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0020_2020, 0x0000_0000_0000_0020: 0x0000_0000_0020_2020, 0x0000_0000_0000_2000: 0x0000_0000_0020_2000, 0x0000_0000_0000_2020: 0x0000_0000_0020_2000,
+ 0x0000_0000_0020_0000: 0x0000_0000_0020_0000, 0x0000_0000_0020_0020: 0x0000_0000_0020_0000, 0x0000_0000_0020_2000: 0x0000_0000_0020_0000, 0x0000_0000_0020_2020: 0x0000_0000_0020_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0040_4040, 0x0000_0000_0000_0040: 0x0000_0000_0040_4040, 0x0000_0000_0000_4000: 0x0000_0000_0040_4000, 0x0000_0000_0000_4040: 0x0000_0000_0040_4000,
+ 0x0000_0000_0040_0000: 0x0000_0000_0040_0000, 0x0000_0000_0040_0040: 0x0000_0000_0040_0000, 0x0000_0000_0040_4000: 0x0000_0000_0040_0000, 0x0000_0000_0040_4040: 0x0000_0000_0040_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0080_8080, 0x0000_0000_0000_0080: 0x0000_0000_0080_8080, 0x0000_0000_0000_8000: 0x0000_0000_0080_8000, 0x0000_0000_0000_8080: 0x0000_0000_0080_8000,
+ 0x0000_0000_0080_0000: 0x0000_0000_0080_0000, 0x0000_0000_0080_0080: 0x0000_0000_0080_0000, 0x0000_0000_0080_8000: 0x0000_0000_0080_0000, 0x0000_0000_0080_8080: 0x0000_0000_0080_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0101_0101, 0x0000_0000_0000_0001: 0x0000_0000_0101_0101, 0x0000_0000_0000_0100: 0x0000_0000_0101_0100, 0x0000_0000_0000_0101: 0x0000_0000_0101_0100,
+ 0x0000_0000_0001_0000: 0x0000_0000_0101_0000, 0x0000_0000_0001_0001: 0x0000_0000_0101_0000, 0x0000_0000_0001_0100: 0x0000_0000_0101_0000, 0x0000_0000_0001_0101: 0x0000_0000_0101_0000,
+ 0x0000_0000_0100_0000: 0x0000_0000_0100_0000, 0x0000_0000_0100_0001: 0x0000_0000_0100_0000, 0x0000_0000_0100_0100: 0x0000_0000_0100_0000, 0x0000_0000_0100_0101: 0x0000_0000_0100_0000,
+ 0x0000_0000_0101_0000: 0x0000_0000_0100_0000, 0x0000_0000_0101_0001: 0x0000_0000_0100_0000, 0x0000_0000_0101_0100: 0x0000_0000_0100_0000, 0x0000_0000_0101_0101: 0x0000_0000_0100_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0202_0202, 0x0000_0000_0000_0002: 0x0000_0000_0202_0202, 0x0000_0000_0000_0200: 0x0000_0000_0202_0200, 0x0000_0000_0000_0202: 0x0000_0000_0202_0200,
+ 0x0000_0000_0002_0000: 0x0000_0000_0202_0000, 0x0000_0000_0002_0002: 0x0000_0000_0202_0000, 0x0000_0000_0002_0200: 0x0000_0000_0202_0000, 0x0000_0000_0002_0202: 0x0000_0000_0202_0000,
+ 0x0000_0000_0200_0000: 0x0000_0000_0200_0000, 0x0000_0000_0200_0002: 0x0000_0000_0200_0000, 0x0000_0000_0200_0200: 0x0000_0000_0200_0000, 0x0000_0000_0200_0202: 0x0000_0000_0200_0000,
+ 0x0000_0000_0202_0000: 0x0000_0000_0200_0000, 0x0000_0000_0202_0002: 0x0000_0000_0200_0000, 0x0000_0000_0202_0200: 0x0000_0000_0200_0000, 0x0000_0000_0202_0202: 0x0000_0000_0200_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0404_0404, 0x0000_0000_0000_0004: 0x0000_0000_0404_0404, 0x0000_0000_0000_0400: 0x0000_0000_0404_0400, 0x0000_0000_0000_0404: 0x0000_0000_0404_0400,
+ 0x0000_0000_0004_0000: 0x0000_0000_0404_0000, 0x0000_0000_0004_0004: 0x0000_0000_0404_0000, 0x0000_0000_0004_0400: 0x0000_0000_0404_0000, 0x0000_0000_0004_0404: 0x0000_0000_0404_0000,
+ 0x0000_0000_0400_0000: 0x0000_0000_0400_0000, 0x0000_0000_0400_0004: 0x0000_0000_0400_0000, 0x0000_0000_0400_0400: 0x0000_0000_0400_0000, 0x0000_0000_0400_0404: 0x0000_0000_0400_0000,
+ 0x0000_0000_0404_0000: 0x0000_0000_0400_0000, 0x0000_0000_0404_0004: 0x0000_0000_0400_0000, 0x0000_0000_0404_0400: 0x0000_0000_0400_0000, 0x0000_0000_0404_0404: 0x0000_0000_0400_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0808_0808, 0x0000_0000_0000_0008: 0x0000_0000_0808_0808, 0x0000_0000_0000_0800: 0x0000_0000_0808_0800, 0x0000_0000_0000_0808: 0x0000_0000_0808_0800,
+ 0x0000_0000_0008_0000: 0x0000_0000_0808_0000, 0x0000_0000_0008_0008: 0x0000_0000_0808_0000, 0x0000_0000_0008_0800: 0x0000_0000_0808_0000, 0x0000_0000_0008_0808: 0x0000_0000_0808_0000,
+ 0x0000_0000_0800_0000: 0x0000_0000_0800_0000, 0x0000_0000_0800_0008: 0x0000_0000_0800_0000, 0x0000_0000_0800_0800: 0x0000_0000_0800_0000, 0x0000_0000_0800_0808: 0x0000_0000_0800_0000,
+ 0x0000_0000_0808_0000: 0x0000_0000_0800_0000, 0x0000_0000_0808_0008: 0x0000_0000_0800_0000, 0x0000_0000_0808_0800: 0x0000_0000_0800_0000, 0x0000_0000_0808_0808: 0x0000_0000_0800_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_1010_1010, 0x0000_0000_0000_0010: 0x0000_0000_1010_1010, 0x0000_0000_0000_1000: 0x0000_0000_1010_1000, 0x0000_0000_0000_1010: 0x0000_0000_1010_1000,
+ 0x0000_0000_0010_0000: 0x0000_0000_1010_0000, 0x0000_0000_0010_0010: 0x0000_0000_1010_0000, 0x0000_0000_0010_1000: 0x0000_0000_1010_0000, 0x0000_0000_0010_1010: 0x0000_0000_1010_0000,
+ 0x0000_0000_1000_0000: 0x0000_0000_1000_0000, 0x0000_0000_1000_0010: 0x0000_0000_1000_0000, 0x0000_0000_1000_1000: 0x0000_0000_1000_0000, 0x0000_0000_1000_1010: 0x0000_0000_1000_0000,
+ 0x0000_0000_1010_0000: 0x0000_0000_1000_0000, 0x0000_0000_1010_0010: 0x0000_0000_1000_0000, 0x0000_0000_1010_1000: 0x0000_0000_1000_0000, 0x0000_0000_1010_1010: 0x0000_0000_1000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_2020_2020, 0x0000_0000_0000_0020: 0x0000_0000_2020_2020, 0x0000_0000_0000_2000: 0x0000_0000_2020_2000, 0x0000_0000_0000_2020: 0x0000_0000_2020_2000,
+ 0x0000_0000_0020_0000: 0x0000_0000_2020_0000, 0x0000_0000_0020_0020: 0x0000_0000_2020_0000, 0x0000_0000_0020_2000: 0x0000_0000_2020_0000, 0x0000_0000_0020_2020: 0x0000_0000_2020_0000,
+ 0x0000_0000_2000_0000: 0x0000_0000_2000_0000, 0x0000_0000_2000_0020: 0x0000_0000_2000_0000, 0x0000_0000_2000_2000: 0x0000_0000_2000_0000, 0x0000_0000_2000_2020: 0x0000_0000_2000_0000,
+ 0x0000_0000_2020_0000: 0x0000_0000_2000_0000, 0x0000_0000_2020_0020: 0x0000_0000_2000_0000, 0x0000_0000_2020_2000: 0x0000_0000_2000_0000, 0x0000_0000_2020_2020: 0x0000_0000_2000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_4040_4040, 0x0000_0000_0000_0040: 0x0000_0000_4040_4040, 0x0000_0000_0000_4000: 0x0000_0000_4040_4000, 0x0000_0000_0000_4040: 0x0000_0000_4040_4000,
+ 0x0000_0000_0040_0000: 0x0000_0000_4040_0000, 0x0000_0000_0040_0040: 0x0000_0000_4040_0000, 0x0000_0000_0040_4000: 0x0000_0000_4040_0000, 0x0000_0000_0040_4040: 0x0000_0000_4040_0000,
+ 0x0000_0000_4000_0000: 0x0000_0000_4000_0000, 0x0000_0000_4000_0040: 0x0000_0000_4000_0000, 0x0000_0000_4000_4000: 0x0000_0000_4000_0000, 0x0000_0000_4000_4040: 0x0000_0000_4000_0000,
+ 0x0000_0000_4040_0000: 0x0000_0000_4000_0000, 0x0000_0000_4040_0040: 0x0000_0000_4000_0000, 0x0000_0000_4040_4000: 0x0000_0000_4000_0000, 0x0000_0000_4040_4040: 0x0000_0000_4000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_8080_8080, 0x0000_0000_0000_0080: 0x0000_0000_8080_8080, 0x0000_0000_0000_8000: 0x0000_0000_8080_8000, 0x0000_0000_0000_8080: 0x0000_0000_8080_8000,
+ 0x0000_0000_0080_0000: 0x0000_0000_8080_0000, 0x0000_0000_0080_0080: 0x0000_0000_8080_0000, 0x0000_0000_0080_8000: 0x0000_0000_8080_0000, 0x0000_0000_0080_8080: 0x0000_0000_8080_0000,
+ 0x0000_0000_8000_0000: 0x0000_0000_8000_0000, 0x0000_0000_8000_0080: 0x0000_0000_8000_0000, 0x0000_0000_8000_8000: 0x0000_0000_8000_0000, 0x0000_0000_8000_8080: 0x0000_0000_8000_0000,
+ 0x0000_0000_8080_0000: 0x0000_0000_8000_0000, 0x0000_0000_8080_0080: 0x0000_0000_8000_0000, 0x0000_0000_8080_8000: 0x0000_0000_8000_0000, 0x0000_0000_8080_8080: 0x0000_0000_8000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0001_0101_0101, 0x0000_0000_0000_0001: 0x0000_0001_0101_0101, 0x0000_0000_0000_0100: 0x0000_0001_0101_0100, 0x0000_0000_0000_0101: 0x0000_0001_0101_0100,
+ 0x0000_0000_0001_0000: 0x0000_0001_0101_0000, 0x0000_0000_0001_0001: 0x0000_0001_0101_0000, 0x0000_0000_0001_0100: 0x0000_0001_0101_0000, 0x0000_0000_0001_0101: 0x0000_0001_0101_0000,
+ 0x0000_0000_0100_0000: 0x0000_0001_0100_0000, 0x0000_0000_0100_0001: 0x0000_0001_0100_0000, 0x0000_0000_0100_0100: 0x0000_0001_0100_0000, 0x0000_0000_0100_0101: 0x0000_0001_0100_0000,
+ 0x0000_0000_0101_0000: 0x0000_0001_0100_0000, 0x0000_0000_0101_0001: 0x0000_0001_0100_0000, 0x0000_0000_0101_0100: 0x0000_0001_0100_0000, 0x0000_0000_0101_0101: 0x0000_0001_0100_0000,
+ 0x0000_0001_0000_0000: 0x0000_0001_0000_0000, 0x0000_0001_0000_0001: 0x0000_0001_0000_0000, 0x0000_0001_0000_0100: 0x0000_0001_0000_0000, 0x0000_0001_0000_0101: 0x0000_0001_0000_0000,
+ 0x0000_0001_0001_0000: 0x0000_0001_0000_0000, 0x0000_0001_0001_0001: 0x0000_0001_0000_0000, 0x0000_0001_0001_0100: 0x0000_0001_0000_0000, 0x0000_0001_0001_0101: 0x0000_0001_0000_0000,
+ 0x0000_0001_0100_0000: 0x0000_0001_0000_0000, 0x0000_0001_0100_0001: 0x0000_0001_0000_0000, 0x0000_0001_0100_0100: 0x0000_0001_0000_0000, 0x0000_0001_0100_0101: 0x0000_0001_0000_0000,
+ 0x0000_0001_0101_0000: 0x0000_0001_0000_0000, 0x0000_0001_0101_0001: 0x0000_0001_0000_0000, 0x0000_0001_0101_0100: 0x0000_0001_0000_0000, 0x0000_0001_0101_0101: 0x0000_0001_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0002_0202_0202, 0x0000_0000_0000_0002: 0x0000_0002_0202_0202, 0x0000_0000_0000_0200: 0x0000_0002_0202_0200, 0x0000_0000_0000_0202: 0x0000_0002_0202_0200,
+ 0x0000_0000_0002_0000: 0x0000_0002_0202_0000, 0x0000_0000_0002_0002: 0x0000_0002_0202_0000, 0x0000_0000_0002_0200: 0x0000_0002_0202_0000, 0x0000_0000_0002_0202: 0x0000_0002_0202_0000,
+ 0x0000_0000_0200_0000: 0x0000_0002_0200_0000, 0x0000_0000_0200_0002: 0x0000_0002_0200_0000, 0x0000_0000_0200_0200: 0x0000_0002_0200_0000, 0x0000_0000_0200_0202: 0x0000_0002_0200_0000,
+ 0x0000_0000_0202_0000: 0x0000_0002_0200_0000, 0x0000_0000_0202_0002: 0x0000_0002_0200_0000, 0x0000_0000_0202_0200: 0x0000_0002_0200_0000, 0x0000_0000_0202_0202: 0x0000_0002_0200_0000,
+ 0x0000_0002_0000_0000: 0x0000_0002_0000_0000, 0x0000_0002_0000_0002: 0x0000_0002_0000_0000, 0x0000_0002_0000_0200: 0x0000_0002_0000_0000, 0x0000_0002_0000_0202: 0x0000_0002_0000_0000,
+ 0x0000_0002_0002_0000: 0x0000_0002_0000_0000, 0x0000_0002_0002_0002: 0x0000_0002_0000_0000, 0x0000_0002_0002_0200: 0x0000_0002_0000_0000, 0x0000_0002_0002_0202: 0x0000_0002_0000_0000,
+ 0x0000_0002_0200_0000: 0x0000_0002_0000_0000, 0x0000_0002_0200_0002: 0x0000_0002_0000_0000, 0x0000_0002_0200_0200: 0x0000_0002_0000_0000, 0x0000_0002_0200_0202: 0x0000_0002_0000_0000,
+ 0x0000_0002_0202_0000: 0x0000_0002_0000_0000, 0x0000_0002_0202_0002: 0x0000_0002_0000_0000, 0x0000_0002_0202_0200: 0x0000_0002_0000_0000, 0x0000_0002_0202_0202: 0x0000_0002_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0004_0404_0404, 0x0000_0000_0000_0004: 0x0000_0004_0404_0404, 0x0000_0000_0000_0400: 0x0000_0004_0404_0400, 0x0000_0000_0000_0404: 0x0000_0004_0404_0400,
+ 0x0000_0000_0004_0000: 0x0000_0004_0404_0000, 0x0000_0000_0004_0004: 0x0000_0004_0404_0000, 0x0000_0000_0004_0400: 0x0000_0004_0404_0000, 0x0000_0000_0004_0404: 0x0000_0004_0404_0000,
+ 0x0000_0000_0400_0000: 0x0000_0004_0400_0000, 0x0000_0000_0400_0004: 0x0000_0004_0400_0000, 0x0000_0000_0400_0400: 0x0000_0004_0400_0000, 0x0000_0000_0400_0404: 0x0000_0004_0400_0000,
+ 0x0000_0000_0404_0000: 0x0000_0004_0400_0000, 0x0000_0000_0404_0004: 0x0000_0004_0400_0000, 0x0000_0000_0404_0400: 0x0000_0004_0400_0000, 0x0000_0000_0404_0404: 0x0000_0004_0400_0000,
+ 0x0000_0004_0000_0000: 0x0000_0004_0000_0000, 0x0000_0004_0000_0004: 0x0000_0004_0000_0000, 0x0000_0004_0000_0400: 0x0000_0004_0000_0000, 0x0000_0004_0000_0404: 0x0000_0004_0000_0000,
+ 0x0000_0004_0004_0000: 0x0000_0004_0000_0000, 0x0000_0004_0004_0004: 0x0000_0004_0000_0000, 0x0000_0004_0004_0400: 0x0000_0004_0000_0000, 0x0000_0004_0004_0404: 0x0000_0004_0000_0000,
+ 0x0000_0004_0400_0000: 0x0000_0004_0000_0000, 0x0000_0004_0400_0004: 0x0000_0004_0000_0000, 0x0000_0004_0400_0400: 0x0000_0004_0000_0000, 0x0000_0004_0400_0404: 0x0000_0004_0000_0000,
+ 0x0000_0004_0404_0000: 0x0000_0004_0000_0000, 0x0000_0004_0404_0004: 0x0000_0004_0000_0000, 0x0000_0004_0404_0400: 0x0000_0004_0000_0000, 0x0000_0004_0404_0404: 0x0000_0004_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0008_0808_0808, 0x0000_0000_0000_0008: 0x0000_0008_0808_0808, 0x0000_0000_0000_0800: 0x0000_0008_0808_0800, 0x0000_0000_0000_0808: 0x0000_0008_0808_0800,
+ 0x0000_0000_0008_0000: 0x0000_0008_0808_0000, 0x0000_0000_0008_0008: 0x0000_0008_0808_0000, 0x0000_0000_0008_0800: 0x0000_0008_0808_0000, 0x0000_0000_0008_0808: 0x0000_0008_0808_0000,
+ 0x0000_0000_0800_0000: 0x0000_0008_0800_0000, 0x0000_0000_0800_0008: 0x0000_0008_0800_0000, 0x0000_0000_0800_0800: 0x0000_0008_0800_0000, 0x0000_0000_0800_0808: 0x0000_0008_0800_0000,
+ 0x0000_0000_0808_0000: 0x0000_0008_0800_0000, 0x0000_0000_0808_0008: 0x0000_0008_0800_0000, 0x0000_0000_0808_0800: 0x0000_0008_0800_0000, 0x0000_0000_0808_0808: 0x0000_0008_0800_0000,
+ 0x0000_0008_0000_0000: 0x0000_0008_0000_0000, 0x0000_0008_0000_0008: 0x0000_0008_0000_0000, 0x0000_0008_0000_0800: 0x0000_0008_0000_0000, 0x0000_0008_0000_0808: 0x0000_0008_0000_0000,
+ 0x0000_0008_0008_0000: 0x0000_0008_0000_0000, 0x0000_0008_0008_0008: 0x0000_0008_0000_0000, 0x0000_0008_0008_0800: 0x0000_0008_0000_0000, 0x0000_0008_0008_0808: 0x0000_0008_0000_0000,
+ 0x0000_0008_0800_0000: 0x0000_0008_0000_0000, 0x0000_0008_0800_0008: 0x0000_0008_0000_0000, 0x0000_0008_0800_0800: 0x0000_0008_0000_0000, 0x0000_0008_0800_0808: 0x0000_0008_0000_0000,
+ 0x0000_0008_0808_0000: 0x0000_0008_0000_0000, 0x0000_0008_0808_0008: 0x0000_0008_0000_0000, 0x0000_0008_0808_0800: 0x0000_0008_0000_0000, 0x0000_0008_0808_0808: 0x0000_0008_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0010_1010_1010, 0x0000_0000_0000_0010: 0x0000_0010_1010_1010, 0x0000_0000_0000_1000: 0x0000_0010_1010_1000, 0x0000_0000_0000_1010: 0x0000_0010_1010_1000,
+ 0x0000_0000_0010_0000: 0x0000_0010_1010_0000, 0x0000_0000_0010_0010: 0x0000_0010_1010_0000, 0x0000_0000_0010_1000: 0x0000_0010_1010_0000, 0x0000_0000_0010_1010: 0x0000_0010_1010_0000,
+ 0x0000_0000_1000_0000: 0x0000_0010_1000_0000, 0x0000_0000_1000_0010: 0x0000_0010_1000_0000, 0x0000_0000_1000_1000: 0x0000_0010_1000_0000, 0x0000_0000_1000_1010: 0x0000_0010_1000_0000,
+ 0x0000_0000_1010_0000: 0x0000_0010_1000_0000, 0x0000_0000_1010_0010: 0x0000_0010_1000_0000, 0x0000_0000_1010_1000: 0x0000_0010_1000_0000, 0x0000_0000_1010_1010: 0x0000_0010_1000_0000,
+ 0x0000_0010_0000_0000: 0x0000_0010_0000_0000, 0x0000_0010_0000_0010: 0x0000_0010_0000_0000, 0x0000_0010_0000_1000: 0x0000_0010_0000_0000, 0x0000_0010_0000_1010: 0x0000_0010_0000_0000,
+ 0x0000_0010_0010_0000: 0x0000_0010_0000_0000, 0x0000_0010_0010_0010: 0x0000_0010_0000_0000, 0x0000_0010_0010_1000: 0x0000_0010_0000_0000, 0x0000_0010_0010_1010: 0x0000_0010_0000_0000,
+ 0x0000_0010_1000_0000: 0x0000_0010_0000_0000, 0x0000_0010_1000_0010: 0x0000_0010_0000_0000, 0x0000_0010_1000_1000: 0x0000_0010_0000_0000, 0x0000_0010_1000_1010: 0x0000_0010_0000_0000,
+ 0x0000_0010_1010_0000: 0x0000_0010_0000_0000, 0x0000_0010_1010_0010: 0x0000_0010_0000_0000, 0x0000_0010_1010_1000: 0x0000_0010_0000_0000, 0x0000_0010_1010_1010: 0x0000_0010_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0020_2020_2020, 0x0000_0000_0000_0020: 0x0000_0020_2020_2020, 0x0000_0000_0000_2000: 0x0000_0020_2020_2000, 0x0000_0000_0000_2020: 0x0000_0020_2020_2000,
+ 0x0000_0000_0020_0000: 0x0000_0020_2020_0000, 0x0000_0000_0020_0020: 0x0000_0020_2020_0000, 0x0000_0000_0020_2000: 0x0000_0020_2020_0000, 0x0000_0000_0020_2020: 0x0000_0020_2020_0000,
+ 0x0000_0000_2000_0000: 0x0000_0020_2000_0000, 0x0000_0000_2000_0020: 0x0000_0020_2000_0000, 0x0000_0000_2000_2000: 0x0000_0020_2000_0000, 0x0000_0000_2000_2020: 0x0000_0020_2000_0000,
+ 0x0000_0000_2020_0000: 0x0000_0020_2000_0000, 0x0000_0000_2020_0020: 0x0000_0020_2000_0000, 0x0000_0000_2020_2000: 0x0000_0020_2000_0000, 0x0000_0000_2020_2020: 0x0000_0020_2000_0000,
+ 0x0000_0020_0000_0000: 0x0000_0020_0000_0000, 0x0000_0020_0000_0020: 0x0000_0020_0000_0000, 0x0000_0020_0000_2000: 0x0000_0020_0000_0000, 0x0000_0020_0000_2020: 0x0000_0020_0000_0000,
+ 0x0000_0020_0020_0000: 0x0000_0020_0000_0000, 0x0000_0020_0020_0020: 0x0000_0020_0000_0000, 0x0000_0020_0020_2000: 0x0000_0020_0000_0000, 0x0000_0020_0020_2020: 0x0000_0020_0000_0000,
+ 0x0000_0020_2000_0000: 0x0000_0020_0000_0000, 0x0000_0020_2000_0020: 0x0000_0020_0000_0000, 0x0000_0020_2000_2000: 0x0000_0020_0000_0000, 0x0000_0020_2000_2020: 0x0000_0020_0000_0000,
+ 0x0000_0020_2020_0000: 0x0000_0020_0000_0000, 0x0000_0020_2020_0020: 0x0000_0020_0000_0000, 0x0000_0020_2020_2000: 0x0000_0020_0000_0000, 0x0000_0020_2020_2020: 0x0000_0020_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0040_4040_4040, 0x0000_0000_0000_0040: 0x0000_0040_4040_4040, 0x0000_0000_0000_4000: 0x0000_0040_4040_4000, 0x0000_0000_0000_4040: 0x0000_0040_4040_4000,
+ 0x0000_0000_0040_0000: 0x0000_0040_4040_0000, 0x0000_0000_0040_0040: 0x0000_0040_4040_0000, 0x0000_0000_0040_4000: 0x0000_0040_4040_0000, 0x0000_0000_0040_4040: 0x0000_0040_4040_0000,
+ 0x0000_0000_4000_0000: 0x0000_0040_4000_0000, 0x0000_0000_4000_0040: 0x0000_0040_4000_0000, 0x0000_0000_4000_4000: 0x0000_0040_4000_0000, 0x0000_0000_4000_4040: 0x0000_0040_4000_0000,
+ 0x0000_0000_4040_0000: 0x0000_0040_4000_0000, 0x0000_0000_4040_0040: 0x0000_0040_4000_0000, 0x0000_0000_4040_4000: 0x0000_0040_4000_0000, 0x0000_0000_4040_4040: 0x0000_0040_4000_0000,
+ 0x0000_0040_0000_0000: 0x0000_0040_0000_0000, 0x0000_0040_0000_0040: 0x0000_0040_0000_0000, 0x0000_0040_0000_4000: 0x0000_0040_0000_0000, 0x0000_0040_0000_4040: 0x0000_0040_0000_0000,
+ 0x0000_0040_0040_0000: 0x0000_0040_0000_0000, 0x0000_0040_0040_0040: 0x0000_0040_0000_0000, 0x0000_0040_0040_4000: 0x0000_0040_0000_0000, 0x0000_0040_0040_4040: 0x0000_0040_0000_0000,
+ 0x0000_0040_4000_0000: 0x0000_0040_0000_0000, 0x0000_0040_4000_0040: 0x0000_0040_0000_0000, 0x0000_0040_4000_4000: 0x0000_0040_0000_0000, 0x0000_0040_4000_4040: 0x0000_0040_0000_0000,
+ 0x0000_0040_4040_0000: 0x0000_0040_0000_0000, 0x0000_0040_4040_0040: 0x0000_0040_0000_0000, 0x0000_0040_4040_4000: 0x0000_0040_0000_0000, 0x0000_0040_4040_4040: 0x0000_0040_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0080_8080_8080, 0x0000_0000_0000_0080: 0x0000_0080_8080_8080, 0x0000_0000_0000_8000: 0x0000_0080_8080_8000, 0x0000_0000_0000_8080: 0x0000_0080_8080_8000,
+ 0x0000_0000_0080_0000: 0x0000_0080_8080_0000, 0x0000_0000_0080_0080: 0x0000_0080_8080_0000, 0x0000_0000_0080_8000: 0x0000_0080_8080_0000, 0x0000_0000_0080_8080: 0x0000_0080_8080_0000,
+ 0x0000_0000_8000_0000: 0x0000_0080_8000_0000, 0x0000_0000_8000_0080: 0x0000_0080_8000_0000, 0x0000_0000_8000_8000: 0x0000_0080_8000_0000, 0x0000_0000_8000_8080: 0x0000_0080_8000_0000,
+ 0x0000_0000_8080_0000: 0x0000_0080_8000_0000, 0x0000_0000_8080_0080: 0x0000_0080_8000_0000, 0x0000_0000_8080_8000: 0x0000_0080_8000_0000, 0x0000_0000_8080_8080: 0x0000_0080_8000_0000,
+ 0x0000_0080_0000_0000: 0x0000_0080_0000_0000, 0x0000_0080_0000_0080: 0x0000_0080_0000_0000, 0x0000_0080_0000_8000: 0x0000_0080_0000_0000, 0x0000_0080_0000_8080: 0x0000_0080_0000_0000,
+ 0x0000_0080_0080_0000: 0x0000_0080_0000_0000, 0x0000_0080_0080_0080: 0x0000_0080_0000_0000, 0x0000_0080_0080_8000: 0x0000_0080_0000_0000, 0x0000_0080_0080_8080: 0x0000_0080_0000_0000,
+ 0x0000_0080_8000_0000: 0x0000_0080_0000_0000, 0x0000_0080_8000_0080: 0x0000_0080_0000_0000, 0x0000_0080_8000_8000: 0x0000_0080_0000_0000, 0x0000_0080_8000_8080: 0x0000_0080_0000_0000,
+ 0x0000_0080_8080_0000: 0x0000_0080_0000_0000, 0x0000_0080_8080_0080: 0x0000_0080_0000_0000, 0x0000_0080_8080_8000: 0x0000_0080_0000_0000, 0x0000_0080_8080_8080: 0x0000_0080_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0101_0101_0101, 0x0000_0000_0000_0001: 0x0000_0101_0101_0101, 0x0000_0000_0000_0100: 0x0000_0101_0101_0100, 0x0000_0000_0000_0101: 0x0000_0101_0101_0100,
+ 0x0000_0000_0001_0000: 0x0000_0101_0101_0000, 0x0000_0000_0001_0001: 0x0000_0101_0101_0000, 0x0000_0000_0001_0100: 0x0000_0101_0101_0000, 0x0000_0000_0001_0101: 0x0000_0101_0101_0000,
+ 0x0000_0000_0100_0000: 0x0000_0101_0100_0000, 0x0000_0000_0100_0001: 0x0000_0101_0100_0000, 0x0000_0000_0100_0100: 0x0000_0101_0100_0000, 0x0000_0000_0100_0101: 0x0000_0101_0100_0000,
+ 0x0000_0000_0101_0000: 0x0000_0101_0100_0000, 0x0000_0000_0101_0001: 0x0000_0101_0100_0000, 0x0000_0000_0101_0100: 0x0000_0101_0100_0000, 0x0000_0000_0101_0101: 0x0000_0101_0100_0000,
+ 0x0000_0001_0000_0000: 0x0000_0101_0000_0000, 0x0000_0001_0000_0001: 0x0000_0101_0000_0000, 0x0000_0001_0000_0100: 0x0000_0101_0000_0000, 0x0000_0001_0000_0101: 0x0000_0101_0000_0000,
+ 0x0000_0001_0001_0000: 0x0000_0101_0000_0000, 0x0000_0001_0001_0001: 0x0000_0101_0000_0000, 0x0000_0001_0001_0100: 0x0000_0101_0000_0000, 0x0000_0001_0001_0101: 0x0000_0101_0000_0000,
+ 0x0000_0001_0100_0000: 0x0000_0101_0000_0000, 0x0000_0001_0100_0001: 0x0000_0101_0000_0000, 0x0000_0001_0100_0100: 0x0000_0101_0000_0000, 0x0000_0001_0100_0101: 0x0000_0101_0000_0000,
+ 0x0000_0001_0101_0000: 0x0000_0101_0000_0000, 0x0000_0001_0101_0001: 0x0000_0101_0000_0000, 0x0000_0001_0101_0100: 0x0000_0101_0000_0000, 0x0000_0001_0101_0101: 0x0000_0101_0000_0000,
+ 0x0000_0100_0000_0000: 0x0000_0100_0000_0000, 0x0000_0100_0000_0001: 0x0000_0100_0000_0000, 0x0000_0100_0000_0100: 0x0000_0100_0000_0000, 0x0000_0100_0000_0101: 0x0000_0100_0000_0000,
+ 0x0000_0100_0001_0000: 0x0000_0100_0000_0000, 0x0000_0100_0001_0001: 0x0000_0100_0000_0000, 0x0000_0100_0001_0100: 0x0000_0100_0000_0000, 0x0000_0100_0001_0101: 0x0000_0100_0000_0000,
+ 0x0000_0100_0100_0000: 0x0000_0100_0000_0000, 0x0000_0100_0100_0001: 0x0000_0100_0000_0000, 0x0000_0100_0100_0100: 0x0000_0100_0000_0000, 0x0000_0100_0100_0101: 0x0000_0100_0000_0000,
+ 0x0000_0100_0101_0000: 0x0000_0100_0000_0000, 0x0000_0100_0101_0001: 0x0000_0100_0000_0000, 0x0000_0100_0101_0100: 0x0000_0100_0000_0000, 0x0000_0100_0101_0101: 0x0000_0100_0000_0000,
+ 0x0000_0101_0000_0000: 0x0000_0100_0000_0000, 0x0000_0101_0000_0001: 0x0000_0100_0000_0000, 0x0000_0101_0000_0100: 0x0000_0100_0000_0000, 0x0000_0101_0000_0101: 0x0000_0100_0000_0000,
+ 0x0000_0101_0001_0000: 0x0000_0100_0000_0000, 0x0000_0101_0001_0001: 0x0000_0100_0000_0000, 0x0000_0101_0001_0100: 0x0000_0100_0000_0000, 0x0000_0101_0001_0101: 0x0000_0100_0000_0000,
+ 0x0000_0101_0100_0000: 0x0000_0100_0000_0000, 0x0000_0101_0100_0001: 0x0000_0100_0000_0000, 0x0000_0101_0100_0100: 0x0000_0100_0000_0000, 0x0000_0101_0100_0101: 0x0000_0100_0000_0000,
+ 0x0000_0101_0101_0000: 0x0000_0100_0000_0000, 0x0000_0101_0101_0001: 0x0000_0100_0000_0000, 0x0000_0101_0101_0100: 0x0000_0100_0000_0000, 0x0000_0101_0101_0101: 0x0000_0100_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0202_0202_0202, 0x0000_0000_0000_0002: 0x0000_0202_0202_0202, 0x0000_0000_0000_0200: 0x0000_0202_0202_0200, 0x0000_0000_0000_0202: 0x0000_0202_0202_0200,
+ 0x0000_0000_0002_0000: 0x0000_0202_0202_0000, 0x0000_0000_0002_0002: 0x0000_0202_0202_0000, 0x0000_0000_0002_0200: 0x0000_0202_0202_0000, 0x0000_0000_0002_0202: 0x0000_0202_0202_0000,
+ 0x0000_0000_0200_0000: 0x0000_0202_0200_0000, 0x0000_0000_0200_0002: 0x0000_0202_0200_0000, 0x0000_0000_0200_0200: 0x0000_0202_0200_0000, 0x0000_0000_0200_0202: 0x0000_0202_0200_0000,
+ 0x0000_0000_0202_0000: 0x0000_0202_0200_0000, 0x0000_0000_0202_0002: 0x0000_0202_0200_0000, 0x0000_0000_0202_0200: 0x0000_0202_0200_0000, 0x0000_0000_0202_0202: 0x0000_0202_0200_0000,
+ 0x0000_0002_0000_0000: 0x0000_0202_0000_0000, 0x0000_0002_0000_0002: 0x0000_0202_0000_0000, 0x0000_0002_0000_0200: 0x0000_0202_0000_0000, 0x0000_0002_0000_0202: 0x0000_0202_0000_0000,
+ 0x0000_0002_0002_0000: 0x0000_0202_0000_0000, 0x0000_0002_0002_0002: 0x0000_0202_0000_0000, 0x0000_0002_0002_0200: 0x0000_0202_0000_0000, 0x0000_0002_0002_0202: 0x0000_0202_0000_0000,
+ 0x0000_0002_0200_0000: 0x0000_0202_0000_0000, 0x0000_0002_0200_0002: 0x0000_0202_0000_0000, 0x0000_0002_0200_0200: 0x0000_0202_0000_0000, 0x0000_0002_0200_0202: 0x0000_0202_0000_0000,
+ 0x0000_0002_0202_0000: 0x0000_0202_0000_0000, 0x0000_0002_0202_0002: 0x0000_0202_0000_0000, 0x0000_0002_0202_0200: 0x0000_0202_0000_0000, 0x0000_0002_0202_0202: 0x0000_0202_0000_0000,
+ 0x0000_0200_0000_0000: 0x0000_0200_0000_0000, 0x0000_0200_0000_0002: 0x0000_0200_0000_0000, 0x0000_0200_0000_0200: 0x0000_0200_0000_0000, 0x0000_0200_0000_0202: 0x0000_0200_0000_0000,
+ 0x0000_0200_0002_0000: 0x0000_0200_0000_0000, 0x0000_0200_0002_0002: 0x0000_0200_0000_0000, 0x0000_0200_0002_0200: 0x0000_0200_0000_0000, 0x0000_0200_0002_0202: 0x0000_0200_0000_0000,
+ 0x0000_0200_0200_0000: 0x0000_0200_0000_0000, 0x0000_0200_0200_0002: 0x0000_0200_0000_0000, 0x0000_0200_0200_0200: 0x0000_0200_0000_0000, 0x0000_0200_0200_0202: 0x0000_0200_0000_0000,
+ 0x0000_0200_0202_0000: 0x0000_0200_0000_0000, 0x0000_0200_0202_0002: 0x0000_0200_0000_0000, 0x0000_0200_0202_0200: 0x0000_0200_0000_0000, 0x0000_0200_0202_0202: 0x0000_0200_0000_0000,
+ 0x0000_0202_0000_0000: 0x0000_0200_0000_0000, 0x0000_0202_0000_0002: 0x0000_0200_0000_0000, 0x0000_0202_0000_0200: 0x0000_0200_0000_0000, 0x0000_0202_0000_0202: 0x0000_0200_0000_0000,
+ 0x0000_0202_0002_0000: 0x0000_0200_0000_0000, 0x0000_0202_0002_0002: 0x0000_0200_0000_0000, 0x0000_0202_0002_0200: 0x0000_0200_0000_0000, 0x0000_0202_0002_0202: 0x0000_0200_0000_0000,
+ 0x0000_0202_0200_0000: 0x0000_0200_0000_0000, 0x0000_0202_0200_0002: 0x0000_0200_0000_0000, 0x0000_0202_0200_0200: 0x0000_0200_0000_0000, 0x0000_0202_0200_0202: 0x0000_0200_0000_0000,
+ 0x0000_0202_0202_0000: 0x0000_0200_0000_0000, 0x0000_0202_0202_0002: 0x0000_0200_0000_0000, 0x0000_0202_0202_0200: 0x0000_0200_0000_0000, 0x0000_0202_0202_0202: 0x0000_0200_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0404_0404_0404, 0x0000_0000_0000_0004: 0x0000_0404_0404_0404, 0x0000_0000_0000_0400: 0x0000_0404_0404_0400, 0x0000_0000_0000_0404: 0x0000_0404_0404_0400,
+ 0x0000_0000_0004_0000: 0x0000_0404_0404_0000, 0x0000_0000_0004_0004: 0x0000_0404_0404_0000, 0x0000_0000_0004_0400: 0x0000_0404_0404_0000, 0x0000_0000_0004_0404: 0x0000_0404_0404_0000,
+ 0x0000_0000_0400_0000: 0x0000_0404_0400_0000, 0x0000_0000_0400_0004: 0x0000_0404_0400_0000, 0x0000_0000_0400_0400: 0x0000_0404_0400_0000, 0x0000_0000_0400_0404: 0x0000_0404_0400_0000,
+ 0x0000_0000_0404_0000: 0x0000_0404_0400_0000, 0x0000_0000_0404_0004: 0x0000_0404_0400_0000, 0x0000_0000_0404_0400: 0x0000_0404_0400_0000, 0x0000_0000_0404_0404: 0x0000_0404_0400_0000,
+ 0x0000_0004_0000_0000: 0x0000_0404_0000_0000, 0x0000_0004_0000_0004: 0x0000_0404_0000_0000, 0x0000_0004_0000_0400: 0x0000_0404_0000_0000, 0x0000_0004_0000_0404: 0x0000_0404_0000_0000,
+ 0x0000_0004_0004_0000: 0x0000_0404_0000_0000, 0x0000_0004_0004_0004: 0x0000_0404_0000_0000, 0x0000_0004_0004_0400: 0x0000_0404_0000_0000, 0x0000_0004_0004_0404: 0x0000_0404_0000_0000,
+ 0x0000_0004_0400_0000: 0x0000_0404_0000_0000, 0x0000_0004_0400_0004: 0x0000_0404_0000_0000, 0x0000_0004_0400_0400: 0x0000_0404_0000_0000, 0x0000_0004_0400_0404: 0x0000_0404_0000_0000,
+ 0x0000_0004_0404_0000: 0x0000_0404_0000_0000, 0x0000_0004_0404_0004: 0x0000_0404_0000_0000, 0x0000_0004_0404_0400: 0x0000_0404_0000_0000, 0x0000_0004_0404_0404: 0x0000_0404_0000_0000,
+ 0x0000_0400_0000_0000: 0x0000_0400_0000_0000, 0x0000_0400_0000_0004: 0x0000_0400_0000_0000, 0x0000_0400_0000_0400: 0x0000_0400_0000_0000, 0x0000_0400_0000_0404: 0x0000_0400_0000_0000,
+ 0x0000_0400_0004_0000: 0x0000_0400_0000_0000, 0x0000_0400_0004_0004: 0x0000_0400_0000_0000, 0x0000_0400_0004_0400: 0x0000_0400_0000_0000, 0x0000_0400_0004_0404: 0x0000_0400_0000_0000,
+ 0x0000_0400_0400_0000: 0x0000_0400_0000_0000, 0x0000_0400_0400_0004: 0x0000_0400_0000_0000, 0x0000_0400_0400_0400: 0x0000_0400_0000_0000, 0x0000_0400_0400_0404: 0x0000_0400_0000_0000,
+ 0x0000_0400_0404_0000: 0x0000_0400_0000_0000, 0x0000_0400_0404_0004: 0x0000_0400_0000_0000, 0x0000_0400_0404_0400: 0x0000_0400_0000_0000, 0x0000_0400_0404_0404: 0x0000_0400_0000_0000,
+ 0x0000_0404_0000_0000: 0x0000_0400_0000_0000, 0x0000_0404_0000_0004: 0x0000_0400_0000_0000, 0x0000_0404_0000_0400: 0x0000_0400_0000_0000, 0x0000_0404_0000_0404: 0x0000_0400_0000_0000,
+ 0x0000_0404_0004_0000: 0x0000_0400_0000_0000, 0x0000_0404_0004_0004: 0x0000_0400_0000_0000, 0x0000_0404_0004_0400: 0x0000_0400_0000_0000, 0x0000_0404_0004_0404: 0x0000_0400_0000_0000,
+ 0x0000_0404_0400_0000: 0x0000_0400_0000_0000, 0x0000_0404_0400_0004: 0x0000_0400_0000_0000, 0x0000_0404_0400_0400: 0x0000_0400_0000_0000, 0x0000_0404_0400_0404: 0x0000_0400_0000_0000,
+ 0x0000_0404_0404_0000: 0x0000_0400_0000_0000, 0x0000_0404_0404_0004: 0x0000_0400_0000_0000, 0x0000_0404_0404_0400: 0x0000_0400_0000_0000, 0x0000_0404_0404_0404: 0x0000_0400_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0808_0808_0808, 0x0000_0000_0000_0008: 0x0000_0808_0808_0808, 0x0000_0000_0000_0800: 0x0000_0808_0808_0800, 0x0000_0000_0000_0808: 0x0000_0808_0808_0800,
+ 0x0000_0000_0008_0000: 0x0000_0808_0808_0000, 0x0000_0000_0008_0008: 0x0000_0808_0808_0000, 0x0000_0000_0008_0800: 0x0000_0808_0808_0000, 0x0000_0000_0008_0808: 0x0000_0808_0808_0000,
+ 0x0000_0000_0800_0000: 0x0000_0808_0800_0000, 0x0000_0000_0800_0008: 0x0000_0808_0800_0000, 0x0000_0000_0800_0800: 0x0000_0808_0800_0000, 0x0000_0000_0800_0808: 0x0000_0808_0800_0000,
+ 0x0000_0000_0808_0000: 0x0000_0808_0800_0000, 0x0000_0000_0808_0008: 0x0000_0808_0800_0000, 0x0000_0000_0808_0800: 0x0000_0808_0800_0000, 0x0000_0000_0808_0808: 0x0000_0808_0800_0000,
+ 0x0000_0008_0000_0000: 0x0000_0808_0000_0000, 0x0000_0008_0000_0008: 0x0000_0808_0000_0000, 0x0000_0008_0000_0800: 0x0000_0808_0000_0000, 0x0000_0008_0000_0808: 0x0000_0808_0000_0000,
+ 0x0000_0008_0008_0000: 0x0000_0808_0000_0000, 0x0000_0008_0008_0008: 0x0000_0808_0000_0000, 0x0000_0008_0008_0800: 0x0000_0808_0000_0000, 0x0000_0008_0008_0808: 0x0000_0808_0000_0000,
+ 0x0000_0008_0800_0000: 0x0000_0808_0000_0000, 0x0000_0008_0800_0008: 0x0000_0808_0000_0000, 0x0000_0008_0800_0800: 0x0000_0808_0000_0000, 0x0000_0008_0800_0808: 0x0000_0808_0000_0000,
+ 0x0000_0008_0808_0000: 0x0000_0808_0000_0000, 0x0000_0008_0808_0008: 0x0000_0808_0000_0000, 0x0000_0008_0808_0800: 0x0000_0808_0000_0000, 0x0000_0008_0808_0808: 0x0000_0808_0000_0000,
+ 0x0000_0800_0000_0000: 0x0000_0800_0000_0000, 0x0000_0800_0000_0008: 0x0000_0800_0000_0000, 0x0000_0800_0000_0800: 0x0000_0800_0000_0000, 0x0000_0800_0000_0808: 0x0000_0800_0000_0000,
+ 0x0000_0800_0008_0000: 0x0000_0800_0000_0000, 0x0000_0800_0008_0008: 0x0000_0800_0000_0000, 0x0000_0800_0008_0800: 0x0000_0800_0000_0000, 0x0000_0800_0008_0808: 0x0000_0800_0000_0000,
+ 0x0000_0800_0800_0000: 0x0000_0800_0000_0000, 0x0000_0800_0800_0008: 0x0000_0800_0000_0000, 0x0000_0800_0800_0800: 0x0000_0800_0000_0000, 0x0000_0800_0800_0808: 0x0000_0800_0000_0000,
+ 0x0000_0800_0808_0000: 0x0000_0800_0000_0000, 0x0000_0800_0808_0008: 0x0000_0800_0000_0000, 0x0000_0800_0808_0800: 0x0000_0800_0000_0000, 0x0000_0800_0808_0808: 0x0000_0800_0000_0000,
+ 0x0000_0808_0000_0000: 0x0000_0800_0000_0000, 0x0000_0808_0000_0008: 0x0000_0800_0000_0000, 0x0000_0808_0000_0800: 0x0000_0800_0000_0000, 0x0000_0808_0000_0808: 0x0000_0800_0000_0000,
+ 0x0000_0808_0008_0000: 0x0000_0800_0000_0000, 0x0000_0808_0008_0008: 0x0000_0800_0000_0000, 0x0000_0808_0008_0800: 0x0000_0800_0000_0000, 0x0000_0808_0008_0808: 0x0000_0800_0000_0000,
+ 0x0000_0808_0800_0000: 0x0000_0800_0000_0000, 0x0000_0808_0800_0008: 0x0000_0800_0000_0000, 0x0000_0808_0800_0800: 0x0000_0800_0000_0000, 0x0000_0808_0800_0808: 0x0000_0800_0000_0000,
+ 0x0000_0808_0808_0000: 0x0000_0800_0000_0000, 0x0000_0808_0808_0008: 0x0000_0800_0000_0000, 0x0000_0808_0808_0800: 0x0000_0800_0000_0000, 0x0000_0808_0808_0808: 0x0000_0800_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_1010_1010_1010, 0x0000_0000_0000_0010: 0x0000_1010_1010_1010, 0x0000_0000_0000_1000: 0x0000_1010_1010_1000, 0x0000_0000_0000_1010: 0x0000_1010_1010_1000,
+ 0x0000_0000_0010_0000: 0x0000_1010_1010_0000, 0x0000_0000_0010_0010: 0x0000_1010_1010_0000, 0x0000_0000_0010_1000: 0x0000_1010_1010_0000, 0x0000_0000_0010_1010: 0x0000_1010_1010_0000,
+ 0x0000_0000_1000_0000: 0x0000_1010_1000_0000, 0x0000_0000_1000_0010: 0x0000_1010_1000_0000, 0x0000_0000_1000_1000: 0x0000_1010_1000_0000, 0x0000_0000_1000_1010: 0x0000_1010_1000_0000,
+ 0x0000_0000_1010_0000: 0x0000_1010_1000_0000, 0x0000_0000_1010_0010: 0x0000_1010_1000_0000, 0x0000_0000_1010_1000: 0x0000_1010_1000_0000, 0x0000_0000_1010_1010: 0x0000_1010_1000_0000,
+ 0x0000_0010_0000_0000: 0x0000_1010_0000_0000, 0x0000_0010_0000_0010: 0x0000_1010_0000_0000, 0x0000_0010_0000_1000: 0x0000_1010_0000_0000, 0x0000_0010_0000_1010: 0x0000_1010_0000_0000,
+ 0x0000_0010_0010_0000: 0x0000_1010_0000_0000, 0x0000_0010_0010_0010: 0x0000_1010_0000_0000, 0x0000_0010_0010_1000: 0x0000_1010_0000_0000, 0x0000_0010_0010_1010: 0x0000_1010_0000_0000,
+ 0x0000_0010_1000_0000: 0x0000_1010_0000_0000, 0x0000_0010_1000_0010: 0x0000_1010_0000_0000, 0x0000_0010_1000_1000: 0x0000_1010_0000_0000, 0x0000_0010_1000_1010: 0x0000_1010_0000_0000,
+ 0x0000_0010_1010_0000: 0x0000_1010_0000_0000, 0x0000_0010_1010_0010: 0x0000_1010_0000_0000, 0x0000_0010_1010_1000: 0x0000_1010_0000_0000, 0x0000_0010_1010_1010: 0x0000_1010_0000_0000,
+ 0x0000_1000_0000_0000: 0x0000_1000_0000_0000, 0x0000_1000_0000_0010: 0x0000_1000_0000_0000, 0x0000_1000_0000_1000: 0x0000_1000_0000_0000, 0x0000_1000_0000_1010: 0x0000_1000_0000_0000,
+ 0x0000_1000_0010_0000: 0x0000_1000_0000_0000, 0x0000_1000_0010_0010: 0x0000_1000_0000_0000, 0x0000_1000_0010_1000: 0x0000_1000_0000_0000, 0x0000_1000_0010_1010: 0x0000_1000_0000_0000,
+ 0x0000_1000_1000_0000: 0x0000_1000_0000_0000, 0x0000_1000_1000_0010: 0x0000_1000_0000_0000, 0x0000_1000_1000_1000: 0x0000_1000_0000_0000, 0x0000_1000_1000_1010: 0x0000_1000_0000_0000,
+ 0x0000_1000_1010_0000: 0x0000_1000_0000_0000, 0x0000_1000_1010_0010: 0x0000_1000_0000_0000, 0x0000_1000_1010_1000: 0x0000_1000_0000_0000, 0x0000_1000_1010_1010: 0x0000_1000_0000_0000,
+ 0x0000_1010_0000_0000: 0x0000_1000_0000_0000, 0x0000_1010_0000_0010: 0x0000_1000_0000_0000, 0x0000_1010_0000_1000: 0x0000_1000_0000_0000, 0x0000_1010_0000_1010: 0x0000_1000_0000_0000,
+ 0x0000_1010_0010_0000: 0x0000_1000_0000_0000, 0x0000_1010_0010_0010: 0x0000_1000_0000_0000, 0x0000_1010_0010_1000: 0x0000_1000_0000_0000, 0x0000_1010_0010_1010: 0x0000_1000_0000_0000,
+ 0x0000_1010_1000_0000: 0x0000_1000_0000_0000, 0x0000_1010_1000_0010: 0x0000_1000_0000_0000, 0x0000_1010_1000_1000: 0x0000_1000_0000_0000, 0x0000_1010_1000_1010: 0x0000_1000_0000_0000,
+ 0x0000_1010_1010_0000: 0x0000_1000_0000_0000, 0x0000_1010_1010_0010: 0x0000_1000_0000_0000, 0x0000_1010_1010_1000: 0x0000_1000_0000_0000, 0x0000_1010_1010_1010: 0x0000_1000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_2020_2020_2020, 0x0000_0000_0000_0020: 0x0000_2020_2020_2020, 0x0000_0000_0000_2000: 0x0000_2020_2020_2000, 0x0000_0000_0000_2020: 0x0000_2020_2020_2000,
+ 0x0000_0000_0020_0000: 0x0000_2020_2020_0000, 0x0000_0000_0020_0020: 0x0000_2020_2020_0000, 0x0000_0000_0020_2000: 0x0000_2020_2020_0000, 0x0000_0000_0020_2020: 0x0000_2020_2020_0000,
+ 0x0000_0000_2000_0000: 0x0000_2020_2000_0000, 0x0000_0000_2000_0020: 0x0000_2020_2000_0000, 0x0000_0000_2000_2000: 0x0000_2020_2000_0000, 0x0000_0000_2000_2020: 0x0000_2020_2000_0000,
+ 0x0000_0000_2020_0000: 0x0000_2020_2000_0000, 0x0000_0000_2020_0020: 0x0000_2020_2000_0000, 0x0000_0000_2020_2000: 0x0000_2020_2000_0000, 0x0000_0000_2020_2020: 0x0000_2020_2000_0000,
+ 0x0000_0020_0000_0000: 0x0000_2020_0000_0000, 0x0000_0020_0000_0020: 0x0000_2020_0000_0000, 0x0000_0020_0000_2000: 0x0000_2020_0000_0000, 0x0000_0020_0000_2020: 0x0000_2020_0000_0000,
+ 0x0000_0020_0020_0000: 0x0000_2020_0000_0000, 0x0000_0020_0020_0020: 0x0000_2020_0000_0000, 0x0000_0020_0020_2000: 0x0000_2020_0000_0000, 0x0000_0020_0020_2020: 0x0000_2020_0000_0000,
+ 0x0000_0020_2000_0000: 0x0000_2020_0000_0000, 0x0000_0020_2000_0020: 0x0000_2020_0000_0000, 0x0000_0020_2000_2000: 0x0000_2020_0000_0000, 0x0000_0020_2000_2020: 0x0000_2020_0000_0000,
+ 0x0000_0020_2020_0000: 0x0000_2020_0000_0000, 0x0000_0020_2020_0020: 0x0000_2020_0000_0000, 0x0000_0020_2020_2000: 0x0000_2020_0000_0000, 0x0000_0020_2020_2020: 0x0000_2020_0000_0000,
+ 0x0000_2000_0000_0000: 0x0000_2000_0000_0000, 0x0000_2000_0000_0020: 0x0000_2000_0000_0000, 0x0000_2000_0000_2000: 0x0000_2000_0000_0000, 0x0000_2000_0000_2020: 0x0000_2000_0000_0000,
+ 0x0000_2000_0020_0000: 0x0000_2000_0000_0000, 0x0000_2000_0020_0020: 0x0000_2000_0000_0000, 0x0000_2000_0020_2000: 0x0000_2000_0000_0000, 0x0000_2000_0020_2020: 0x0000_2000_0000_0000,
+ 0x0000_2000_2000_0000: 0x0000_2000_0000_0000, 0x0000_2000_2000_0020: 0x0000_2000_0000_0000, 0x0000_2000_2000_2000: 0x0000_2000_0000_0000, 0x0000_2000_2000_2020: 0x0000_2000_0000_0000,
+ 0x0000_2000_2020_0000: 0x0000_2000_0000_0000, 0x0000_2000_2020_0020: 0x0000_2000_0000_0000, 0x0000_2000_2020_2000: 0x0000_2000_0000_0000, 0x0000_2000_2020_2020: 0x0000_2000_0000_0000,
+ 0x0000_2020_0000_0000: 0x0000_2000_0000_0000, 0x0000_2020_0000_0020: 0x0000_2000_0000_0000, 0x0000_2020_0000_2000: 0x0000_2000_0000_0000, 0x0000_2020_0000_2020: 0x0000_2000_0000_0000,
+ 0x0000_2020_0020_0000: 0x0000_2000_0000_0000, 0x0000_2020_0020_0020: 0x0000_2000_0000_0000, 0x0000_2020_0020_2000: 0x0000_2000_0000_0000, 0x0000_2020_0020_2020: 0x0000_2000_0000_0000,
+ 0x0000_2020_2000_0000: 0x0000_2000_0000_0000, 0x0000_2020_2000_0020: 0x0000_2000_0000_0000, 0x0000_2020_2000_2000: 0x0000_2000_0000_0000, 0x0000_2020_2000_2020: 0x0000_2000_0000_0000,
+ 0x0000_2020_2020_0000: 0x0000_2000_0000_0000, 0x0000_2020_2020_0020: 0x0000_2000_0000_0000, 0x0000_2020_2020_2000: 0x0000_2000_0000_0000, 0x0000_2020_2020_2020: 0x0000_2000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_4040_4040_4040, 0x0000_0000_0000_0040: 0x0000_4040_4040_4040, 0x0000_0000_0000_4000: 0x0000_4040_4040_4000, 0x0000_0000_0000_4040: 0x0000_4040_4040_4000,
+ 0x0000_0000_0040_0000: 0x0000_4040_4040_0000, 0x0000_0000_0040_0040: 0x0000_4040_4040_0000, 0x0000_0000_0040_4000: 0x0000_4040_4040_0000, 0x0000_0000_0040_4040: 0x0000_4040_4040_0000,
+ 0x0000_0000_4000_0000: 0x0000_4040_4000_0000, 0x0000_0000_4000_0040: 0x0000_4040_4000_0000, 0x0000_0000_4000_4000: 0x0000_4040_4000_0000, 0x0000_0000_4000_4040: 0x0000_4040_4000_0000,
+ 0x0000_0000_4040_0000: 0x0000_4040_4000_0000, 0x0000_0000_4040_0040: 0x0000_4040_4000_0000, 0x0000_0000_4040_4000: 0x0000_4040_4000_0000, 0x0000_0000_4040_4040: 0x0000_4040_4000_0000,
+ 0x0000_0040_0000_0000: 0x0000_4040_0000_0000, 0x0000_0040_0000_0040: 0x0000_4040_0000_0000, 0x0000_0040_0000_4000: 0x0000_4040_0000_0000, 0x0000_0040_0000_4040: 0x0000_4040_0000_0000,
+ 0x0000_0040_0040_0000: 0x0000_4040_0000_0000, 0x0000_0040_0040_0040: 0x0000_4040_0000_0000, 0x0000_0040_0040_4000: 0x0000_4040_0000_0000, 0x0000_0040_0040_4040: 0x0000_4040_0000_0000,
+ 0x0000_0040_4000_0000: 0x0000_4040_0000_0000, 0x0000_0040_4000_0040: 0x0000_4040_0000_0000, 0x0000_0040_4000_4000: 0x0000_4040_0000_0000, 0x0000_0040_4000_4040: 0x0000_4040_0000_0000,
+ 0x0000_0040_4040_0000: 0x0000_4040_0000_0000, 0x0000_0040_4040_0040: 0x0000_4040_0000_0000, 0x0000_0040_4040_4000: 0x0000_4040_0000_0000, 0x0000_0040_4040_4040: 0x0000_4040_0000_0000,
+ 0x0000_4000_0000_0000: 0x0000_4000_0000_0000, 0x0000_4000_0000_0040: 0x0000_4000_0000_0000, 0x0000_4000_0000_4000: 0x0000_4000_0000_0000, 0x0000_4000_0000_4040: 0x0000_4000_0000_0000,
+ 0x0000_4000_0040_0000: 0x0000_4000_0000_0000, 0x0000_4000_0040_0040: 0x0000_4000_0000_0000, 0x0000_4000_0040_4000: 0x0000_4000_0000_0000, 0x0000_4000_0040_4040: 0x0000_4000_0000_0000,
+ 0x0000_4000_4000_0000: 0x0000_4000_0000_0000, 0x0000_4000_4000_0040: 0x0000_4000_0000_0000, 0x0000_4000_4000_4000: 0x0000_4000_0000_0000, 0x0000_4000_4000_4040: 0x0000_4000_0000_0000,
+ 0x0000_4000_4040_0000: 0x0000_4000_0000_0000, 0x0000_4000_4040_0040: 0x0000_4000_0000_0000, 0x0000_4000_4040_4000: 0x0000_4000_0000_0000, 0x0000_4000_4040_4040: 0x0000_4000_0000_0000,
+ 0x0000_4040_0000_0000: 0x0000_4000_0000_0000, 0x0000_4040_0000_0040: 0x0000_4000_0000_0000, 0x0000_4040_0000_4000: 0x0000_4000_0000_0000, 0x0000_4040_0000_4040: 0x0000_4000_0000_0000,
+ 0x0000_4040_0040_0000: 0x0000_4000_0000_0000, 0x0000_4040_0040_0040: 0x0000_4000_0000_0000, 0x0000_4040_0040_4000: 0x0000_4000_0000_0000, 0x0000_4040_0040_4040: 0x0000_4000_0000_0000,
+ 0x0000_4040_4000_0000: 0x0000_4000_0000_0000, 0x0000_4040_4000_0040: 0x0000_4000_0000_0000, 0x0000_4040_4000_4000: 0x0000_4000_0000_0000, 0x0000_4040_4000_4040: 0x0000_4000_0000_0000,
+ 0x0000_4040_4040_0000: 0x0000_4000_0000_0000, 0x0000_4040_4040_0040: 0x0000_4000_0000_0000, 0x0000_4040_4040_4000: 0x0000_4000_0000_0000, 0x0000_4040_4040_4040: 0x0000_4000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_8080_8080_8080, 0x0000_0000_0000_0080: 0x0000_8080_8080_8080, 0x0000_0000_0000_8000: 0x0000_8080_8080_8000, 0x0000_0000_0000_8080: 0x0000_8080_8080_8000,
+ 0x0000_0000_0080_0000: 0x0000_8080_8080_0000, 0x0000_0000_0080_0080: 0x0000_8080_8080_0000, 0x0000_0000_0080_8000: 0x0000_8080_8080_0000, 0x0000_0000_0080_8080: 0x0000_8080_8080_0000,
+ 0x0000_0000_8000_0000: 0x0000_8080_8000_0000, 0x0000_0000_8000_0080: 0x0000_8080_8000_0000, 0x0000_0000_8000_8000: 0x0000_8080_8000_0000, 0x0000_0000_8000_8080: 0x0000_8080_8000_0000,
+ 0x0000_0000_8080_0000: 0x0000_8080_8000_0000, 0x0000_0000_8080_0080: 0x0000_8080_8000_0000, 0x0000_0000_8080_8000: 0x0000_8080_8000_0000, 0x0000_0000_8080_8080: 0x0000_8080_8000_0000,
+ 0x0000_0080_0000_0000: 0x0000_8080_0000_0000, 0x0000_0080_0000_0080: 0x0000_8080_0000_0000, 0x0000_0080_0000_8000: 0x0000_8080_0000_0000, 0x0000_0080_0000_8080: 0x0000_8080_0000_0000,
+ 0x0000_0080_0080_0000: 0x0000_8080_0000_0000, 0x0000_0080_0080_0080: 0x0000_8080_0000_0000, 0x0000_0080_0080_8000: 0x0000_8080_0000_0000, 0x0000_0080_0080_8080: 0x0000_8080_0000_0000,
+ 0x0000_0080_8000_0000: 0x0000_8080_0000_0000, 0x0000_0080_8000_0080: 0x0000_8080_0000_0000, 0x0000_0080_8000_8000: 0x0000_8080_0000_0000, 0x0000_0080_8000_8080: 0x0000_8080_0000_0000,
+ 0x0000_0080_8080_0000: 0x0000_8080_0000_0000, 0x0000_0080_8080_0080: 0x0000_8080_0000_0000, 0x0000_0080_8080_8000: 0x0000_8080_0000_0000, 0x0000_0080_8080_8080: 0x0000_8080_0000_0000,
+ 0x0000_8000_0000_0000: 0x0000_8000_0000_0000, 0x0000_8000_0000_0080: 0x0000_8000_0000_0000, 0x0000_8000_0000_8000: 0x0000_8000_0000_0000, 0x0000_8000_0000_8080: 0x0000_8000_0000_0000,
+ 0x0000_8000_0080_0000: 0x0000_8000_0000_0000, 0x0000_8000_0080_0080: 0x0000_8000_0000_0000, 0x0000_8000_0080_8000: 0x0000_8000_0000_0000, 0x0000_8000_0080_8080: 0x0000_8000_0000_0000,
+ 0x0000_8000_8000_0000: 0x0000_8000_0000_0000, 0x0000_8000_8000_0080: 0x0000_8000_0000_0000, 0x0000_8000_8000_8000: 0x0000_8000_0000_0000, 0x0000_8000_8000_8080: 0x0000_8000_0000_0000,
+ 0x0000_8000_8080_0000: 0x0000_8000_0000_0000, 0x0000_8000_8080_0080: 0x0000_8000_0000_0000, 0x0000_8000_8080_8000: 0x0000_8000_0000_0000, 0x0000_8000_8080_8080: 0x0000_8000_0000_0000,
+ 0x0000_8080_0000_0000: 0x0000_8000_0000_0000, 0x0000_8080_0000_0080: 0x0000_8000_0000_0000, 0x0000_8080_0000_8000: 0x0000_8000_0000_0000, 0x0000_8080_0000_8080: 0x0000_8000_0000_0000,
+ 0x0000_8080_0080_0000: 0x0000_8000_0000_0000, 0x0000_8080_0080_0080: 0x0000_8000_0000_0000, 0x0000_8080_0080_8000: 0x0000_8000_0000_0000, 0x0000_8080_0080_8080: 0x0000_8000_0000_0000,
+ 0x0000_8080_8000_0000: 0x0000_8000_0000_0000, 0x0000_8080_8000_0080: 0x0000_8000_0000_0000, 0x0000_8080_8000_8000: 0x0000_8000_0000_0000, 0x0000_8080_8000_8080: 0x0000_8000_0000_0000,
+ 0x0000_8080_8080_0000: 0x0000_8000_0000_0000, 0x0000_8080_8080_0080: 0x0000_8000_0000_0000, 0x0000_8080_8080_8000: 0x0000_8000_0000_0000, 0x0000_8080_8080_8080: 0x0000_8000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0001_0101_0101_0101, 0x0000_0000_0000_0001: 0x0001_0101_0101_0101, 0x0000_0000_0000_0100: 0x0001_0101_0101_0100, 0x0000_0000_0000_0101: 0x0001_0101_0101_0100,
+ 0x0000_0000_0001_0000: 0x0001_0101_0101_0000, 0x0000_0000_0001_0001: 0x0001_0101_0101_0000, 0x0000_0000_0001_0100: 0x0001_0101_0101_0000, 0x0000_0000_0001_0101: 0x0001_0101_0101_0000,
+ 0x0000_0000_0100_0000: 0x0001_0101_0100_0000, 0x0000_0000_0100_0001: 0x0001_0101_0100_0000, 0x0000_0000_0100_0100: 0x0001_0101_0100_0000, 0x0000_0000_0100_0101: 0x0001_0101_0100_0000,
+ 0x0000_0000_0101_0000: 0x0001_0101_0100_0000, 0x0000_0000_0101_0001: 0x0001_0101_0100_0000, 0x0000_0000_0101_0100: 0x0001_0101_0100_0000, 0x0000_0000_0101_0101: 0x0001_0101_0100_0000,
+ 0x0000_0001_0000_0000: 0x0001_0101_0000_0000, 0x0000_0001_0000_0001: 0x0001_0101_0000_0000, 0x0000_0001_0000_0100: 0x0001_0101_0000_0000, 0x0000_0001_0000_0101: 0x0001_0101_0000_0000,
+ 0x0000_0001_0001_0000: 0x0001_0101_0000_0000, 0x0000_0001_0001_0001: 0x0001_0101_0000_0000, 0x0000_0001_0001_0100: 0x0001_0101_0000_0000, 0x0000_0001_0001_0101: 0x0001_0101_0000_0000,
+ 0x0000_0001_0100_0000: 0x0001_0101_0000_0000, 0x0000_0001_0100_0001: 0x0001_0101_0000_0000, 0x0000_0001_0100_0100: 0x0001_0101_0000_0000, 0x0000_0001_0100_0101: 0x0001_0101_0000_0000,
+ 0x0000_0001_0101_0000: 0x0001_0101_0000_0000, 0x0000_0001_0101_0001: 0x0001_0101_0000_0000, 0x0000_0001_0101_0100: 0x0001_0101_0000_0000, 0x0000_0001_0101_0101: 0x0001_0101_0000_0000,
+ 0x0000_0100_0000_0000: 0x0001_0100_0000_0000, 0x0000_0100_0000_0001: 0x0001_0100_0000_0000, 0x0000_0100_0000_0100: 0x0001_0100_0000_0000, 0x0000_0100_0000_0101: 0x0001_0100_0000_0000,
+ 0x0000_0100_0001_0000: 0x0001_0100_0000_0000, 0x0000_0100_0001_0001: 0x0001_0100_0000_0000, 0x0000_0100_0001_0100: 0x0001_0100_0000_0000, 0x0000_0100_0001_0101: 0x0001_0100_0000_0000,
+ 0x0000_0100_0100_0000: 0x0001_0100_0000_0000, 0x0000_0100_0100_0001: 0x0001_0100_0000_0000, 0x0000_0100_0100_0100: 0x0001_0100_0000_0000, 0x0000_0100_0100_0101: 0x0001_0100_0000_0000,
+ 0x0000_0100_0101_0000: 0x0001_0100_0000_0000, 0x0000_0100_0101_0001: 0x0001_0100_0000_0000, 0x0000_0100_0101_0100: 0x0001_0100_0000_0000, 0x0000_0100_0101_0101: 0x0001_0100_0000_0000,
+ 0x0000_0101_0000_0000: 0x0001_0100_0000_0000, 0x0000_0101_0000_0001: 0x0001_0100_0000_0000, 0x0000_0101_0000_0100: 0x0001_0100_0000_0000, 0x0000_0101_0000_0101: 0x0001_0100_0000_0000,
+ 0x0000_0101_0001_0000: 0x0001_0100_0000_0000, 0x0000_0101_0001_0001: 0x0001_0100_0000_0000, 0x0000_0101_0001_0100: 0x0001_0100_0000_0000, 0x0000_0101_0001_0101: 0x0001_0100_0000_0000,
+ 0x0000_0101_0100_0000: 0x0001_0100_0000_0000, 0x0000_0101_0100_0001: 0x0001_0100_0000_0000, 0x0000_0101_0100_0100: 0x0001_0100_0000_0000, 0x0000_0101_0100_0101: 0x0001_0100_0000_0000,
+ 0x0000_0101_0101_0000: 0x0001_0100_0000_0000, 0x0000_0101_0101_0001: 0x0001_0100_0000_0000, 0x0000_0101_0101_0100: 0x0001_0100_0000_0000, 0x0000_0101_0101_0101: 0x0001_0100_0000_0000,
+ 0x0001_0000_0000_0000: 0x0001_0000_0000_0000, 0x0001_0000_0000_0001: 0x0001_0000_0000_0000, 0x0001_0000_0000_0100: 0x0001_0000_0000_0000, 0x0001_0000_0000_0101: 0x0001_0000_0000_0000,
+ 0x0001_0000_0001_0000: 0x0001_0000_0000_0000, 0x0001_0000_0001_0001: 0x0001_0000_0000_0000, 0x0001_0000_0001_0100: 0x0001_0000_0000_0000, 0x0001_0000_0001_0101: 0x0001_0000_0000_0000,
+ 0x0001_0000_0100_0000: 0x0001_0000_0000_0000, 0x0001_0000_0100_0001: 0x0001_0000_0000_0000, 0x0001_0000_0100_0100: 0x0001_0000_0000_0000, 0x0001_0000_0100_0101: 0x0001_0000_0000_0000,
+ 0x0001_0000_0101_0000: 0x0001_0000_0000_0000, 0x0001_0000_0101_0001: 0x0001_0000_0000_0000, 0x0001_0000_0101_0100: 0x0001_0000_0000_0000, 0x0001_0000_0101_0101: 0x0001_0000_0000_0000,
+ 0x0001_0001_0000_0000: 0x0001_0000_0000_0000, 0x0001_0001_0000_0001: 0x0001_0000_0000_0000, 0x0001_0001_0000_0100: 0x0001_0000_0000_0000, 0x0001_0001_0000_0101: 0x0001_0000_0000_0000,
+ 0x0001_0001_0001_0000: 0x0001_0000_0000_0000, 0x0001_0001_0001_0001: 0x0001_0000_0000_0000, 0x0001_0001_0001_0100: 0x0001_0000_0000_0000, 0x0001_0001_0001_0101: 0x0001_0000_0000_0000,
+ 0x0001_0001_0100_0000: 0x0001_0000_0000_0000, 0x0001_0001_0100_0001: 0x0001_0000_0000_0000, 0x0001_0001_0100_0100: 0x0001_0000_0000_0000, 0x0001_0001_0100_0101: 0x0001_0000_0000_0000,
+ 0x0001_0001_0101_0000: 0x0001_0000_0000_0000, 0x0001_0001_0101_0001: 0x0001_0000_0000_0000, 0x0001_0001_0101_0100: 0x0001_0000_0000_0000, 0x0001_0001_0101_0101: 0x0001_0000_0000_0000,
+ 0x0001_0100_0000_0000: 0x0001_0000_0000_0000, 0x0001_0100_0000_0001: 0x0001_0000_0000_0000, 0x0001_0100_0000_0100: 0x0001_0000_0000_0000, 0x0001_0100_0000_0101: 0x0001_0000_0000_0000,
+ 0x0001_0100_0001_0000: 0x0001_0000_0000_0000, 0x0001_0100_0001_0001: 0x0001_0000_0000_0000, 0x0001_0100_0001_0100: 0x0001_0000_0000_0000, 0x0001_0100_0001_0101: 0x0001_0000_0000_0000,
+ 0x0001_0100_0100_0000: 0x0001_0000_0000_0000, 0x0001_0100_0100_0001: 0x0001_0000_0000_0000, 0x0001_0100_0100_0100: 0x0001_0000_0000_0000, 0x0001_0100_0100_0101: 0x0001_0000_0000_0000,
+ 0x0001_0100_0101_0000: 0x0001_0000_0000_0000, 0x0001_0100_0101_0001: 0x0001_0000_0000_0000, 0x0001_0100_0101_0100: 0x0001_0000_0000_0000, 0x0001_0100_0101_0101: 0x0001_0000_0000_0000,
+ 0x0001_0101_0000_0000: 0x0001_0000_0000_0000, 0x0001_0101_0000_0001: 0x0001_0000_0000_0000, 0x0001_0101_0000_0100: 0x0001_0000_0000_0000, 0x0001_0101_0000_0101: 0x0001_0000_0000_0000,
+ 0x0001_0101_0001_0000: 0x0001_0000_0000_0000, 0x0001_0101_0001_0001: 0x0001_0000_0000_0000, 0x0001_0101_0001_0100: 0x0001_0000_0000_0000, 0x0001_0101_0001_0101: 0x0001_0000_0000_0000,
+ 0x0001_0101_0100_0000: 0x0001_0000_0000_0000, 0x0001_0101_0100_0001: 0x0001_0000_0000_0000, 0x0001_0101_0100_0100: 0x0001_0000_0000_0000, 0x0001_0101_0100_0101: 0x0001_0000_0000_0000,
+ 0x0001_0101_0101_0000: 0x0001_0000_0000_0000, 0x0001_0101_0101_0001: 0x0001_0000_0000_0000, 0x0001_0101_0101_0100: 0x0001_0000_0000_0000, 0x0001_0101_0101_0101: 0x0001_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0002_0202_0202_0202, 0x0000_0000_0000_0002: 0x0002_0202_0202_0202, 0x0000_0000_0000_0200: 0x0002_0202_0202_0200, 0x0000_0000_0000_0202: 0x0002_0202_0202_0200,
+ 0x0000_0000_0002_0000: 0x0002_0202_0202_0000, 0x0000_0000_0002_0002: 0x0002_0202_0202_0000, 0x0000_0000_0002_0200: 0x0002_0202_0202_0000, 0x0000_0000_0002_0202: 0x0002_0202_0202_0000,
+ 0x0000_0000_0200_0000: 0x0002_0202_0200_0000, 0x0000_0000_0200_0002: 0x0002_0202_0200_0000, 0x0000_0000_0200_0200: 0x0002_0202_0200_0000, 0x0000_0000_0200_0202: 0x0002_0202_0200_0000,
+ 0x0000_0000_0202_0000: 0x0002_0202_0200_0000, 0x0000_0000_0202_0002: 0x0002_0202_0200_0000, 0x0000_0000_0202_0200: 0x0002_0202_0200_0000, 0x0000_0000_0202_0202: 0x0002_0202_0200_0000,
+ 0x0000_0002_0000_0000: 0x0002_0202_0000_0000, 0x0000_0002_0000_0002: 0x0002_0202_0000_0000, 0x0000_0002_0000_0200: 0x0002_0202_0000_0000, 0x0000_0002_0000_0202: 0x0002_0202_0000_0000,
+ 0x0000_0002_0002_0000: 0x0002_0202_0000_0000, 0x0000_0002_0002_0002: 0x0002_0202_0000_0000, 0x0000_0002_0002_0200: 0x0002_0202_0000_0000, 0x0000_0002_0002_0202: 0x0002_0202_0000_0000,
+ 0x0000_0002_0200_0000: 0x0002_0202_0000_0000, 0x0000_0002_0200_0002: 0x0002_0202_0000_0000, 0x0000_0002_0200_0200: 0x0002_0202_0000_0000, 0x0000_0002_0200_0202: 0x0002_0202_0000_0000,
+ 0x0000_0002_0202_0000: 0x0002_0202_0000_0000, 0x0000_0002_0202_0002: 0x0002_0202_0000_0000, 0x0000_0002_0202_0200: 0x0002_0202_0000_0000, 0x0000_0002_0202_0202: 0x0002_0202_0000_0000,
+ 0x0000_0200_0000_0000: 0x0002_0200_0000_0000, 0x0000_0200_0000_0002: 0x0002_0200_0000_0000, 0x0000_0200_0000_0200: 0x0002_0200_0000_0000, 0x0000_0200_0000_0202: 0x0002_0200_0000_0000,
+ 0x0000_0200_0002_0000: 0x0002_0200_0000_0000, 0x0000_0200_0002_0002: 0x0002_0200_0000_0000, 0x0000_0200_0002_0200: 0x0002_0200_0000_0000, 0x0000_0200_0002_0202: 0x0002_0200_0000_0000,
+ 0x0000_0200_0200_0000: 0x0002_0200_0000_0000, 0x0000_0200_0200_0002: 0x0002_0200_0000_0000, 0x0000_0200_0200_0200: 0x0002_0200_0000_0000, 0x0000_0200_0200_0202: 0x0002_0200_0000_0000,
+ 0x0000_0200_0202_0000: 0x0002_0200_0000_0000, 0x0000_0200_0202_0002: 0x0002_0200_0000_0000, 0x0000_0200_0202_0200: 0x0002_0200_0000_0000, 0x0000_0200_0202_0202: 0x0002_0200_0000_0000,
+ 0x0000_0202_0000_0000: 0x0002_0200_0000_0000, 0x0000_0202_0000_0002: 0x0002_0200_0000_0000, 0x0000_0202_0000_0200: 0x0002_0200_0000_0000, 0x0000_0202_0000_0202: 0x0002_0200_0000_0000,
+ 0x0000_0202_0002_0000: 0x0002_0200_0000_0000, 0x0000_0202_0002_0002: 0x0002_0200_0000_0000, 0x0000_0202_0002_0200: 0x0002_0200_0000_0000, 0x0000_0202_0002_0202: 0x0002_0200_0000_0000,
+ 0x0000_0202_0200_0000: 0x0002_0200_0000_0000, 0x0000_0202_0200_0002: 0x0002_0200_0000_0000, 0x0000_0202_0200_0200: 0x0002_0200_0000_0000, 0x0000_0202_0200_0202: 0x0002_0200_0000_0000,
+ 0x0000_0202_0202_0000: 0x0002_0200_0000_0000, 0x0000_0202_0202_0002: 0x0002_0200_0000_0000, 0x0000_0202_0202_0200: 0x0002_0200_0000_0000, 0x0000_0202_0202_0202: 0x0002_0200_0000_0000,
+ 0x0002_0000_0000_0000: 0x0002_0000_0000_0000, 0x0002_0000_0000_0002: 0x0002_0000_0000_0000, 0x0002_0000_0000_0200: 0x0002_0000_0000_0000, 0x0002_0000_0000_0202: 0x0002_0000_0000_0000,
+ 0x0002_0000_0002_0000: 0x0002_0000_0000_0000, 0x0002_0000_0002_0002: 0x0002_0000_0000_0000, 0x0002_0000_0002_0200: 0x0002_0000_0000_0000, 0x0002_0000_0002_0202: 0x0002_0000_0000_0000,
+ 0x0002_0000_0200_0000: 0x0002_0000_0000_0000, 0x0002_0000_0200_0002: 0x0002_0000_0000_0000, 0x0002_0000_0200_0200: 0x0002_0000_0000_0000, 0x0002_0000_0200_0202: 0x0002_0000_0000_0000,
+ 0x0002_0000_0202_0000: 0x0002_0000_0000_0000, 0x0002_0000_0202_0002: 0x0002_0000_0000_0000, 0x0002_0000_0202_0200: 0x0002_0000_0000_0000, 0x0002_0000_0202_0202: 0x0002_0000_0000_0000,
+ 0x0002_0002_0000_0000: 0x0002_0000_0000_0000, 0x0002_0002_0000_0002: 0x0002_0000_0000_0000, 0x0002_0002_0000_0200: 0x0002_0000_0000_0000, 0x0002_0002_0000_0202: 0x0002_0000_0000_0000,
+ 0x0002_0002_0002_0000: 0x0002_0000_0000_0000, 0x0002_0002_0002_0002: 0x0002_0000_0000_0000, 0x0002_0002_0002_0200: 0x0002_0000_0000_0000, 0x0002_0002_0002_0202: 0x0002_0000_0000_0000,
+ 0x0002_0002_0200_0000: 0x0002_0000_0000_0000, 0x0002_0002_0200_0002: 0x0002_0000_0000_0000, 0x0002_0002_0200_0200: 0x0002_0000_0000_0000, 0x0002_0002_0200_0202: 0x0002_0000_0000_0000,
+ 0x0002_0002_0202_0000: 0x0002_0000_0000_0000, 0x0002_0002_0202_0002: 0x0002_0000_0000_0000, 0x0002_0002_0202_0200: 0x0002_0000_0000_0000, 0x0002_0002_0202_0202: 0x0002_0000_0000_0000,
+ 0x0002_0200_0000_0000: 0x0002_0000_0000_0000, 0x0002_0200_0000_0002: 0x0002_0000_0000_0000, 0x0002_0200_0000_0200: 0x0002_0000_0000_0000, 0x0002_0200_0000_0202: 0x0002_0000_0000_0000,
+ 0x0002_0200_0002_0000: 0x0002_0000_0000_0000, 0x0002_0200_0002_0002: 0x0002_0000_0000_0000, 0x0002_0200_0002_0200: 0x0002_0000_0000_0000, 0x0002_0200_0002_0202: 0x0002_0000_0000_0000,
+ 0x0002_0200_0200_0000: 0x0002_0000_0000_0000, 0x0002_0200_0200_0002: 0x0002_0000_0000_0000, 0x0002_0200_0200_0200: 0x0002_0000_0000_0000, 0x0002_0200_0200_0202: 0x0002_0000_0000_0000,
+ 0x0002_0200_0202_0000: 0x0002_0000_0000_0000, 0x0002_0200_0202_0002: 0x0002_0000_0000_0000, 0x0002_0200_0202_0200: 0x0002_0000_0000_0000, 0x0002_0200_0202_0202: 0x0002_0000_0000_0000,
+ 0x0002_0202_0000_0000: 0x0002_0000_0000_0000, 0x0002_0202_0000_0002: 0x0002_0000_0000_0000, 0x0002_0202_0000_0200: 0x0002_0000_0000_0000, 0x0002_0202_0000_0202: 0x0002_0000_0000_0000,
+ 0x0002_0202_0002_0000: 0x0002_0000_0000_0000, 0x0002_0202_0002_0002: 0x0002_0000_0000_0000, 0x0002_0202_0002_0200: 0x0002_0000_0000_0000, 0x0002_0202_0002_0202: 0x0002_0000_0000_0000,
+ 0x0002_0202_0200_0000: 0x0002_0000_0000_0000, 0x0002_0202_0200_0002: 0x0002_0000_0000_0000, 0x0002_0202_0200_0200: 0x0002_0000_0000_0000, 0x0002_0202_0200_0202: 0x0002_0000_0000_0000,
+ 0x0002_0202_0202_0000: 0x0002_0000_0000_0000, 0x0002_0202_0202_0002: 0x0002_0000_0000_0000, 0x0002_0202_0202_0200: 0x0002_0000_0000_0000, 0x0002_0202_0202_0202: 0x0002_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0004_0404_0404_0404, 0x0000_0000_0000_0004: 0x0004_0404_0404_0404, 0x0000_0000_0000_0400: 0x0004_0404_0404_0400, 0x0000_0000_0000_0404: 0x0004_0404_0404_0400,
+ 0x0000_0000_0004_0000: 0x0004_0404_0404_0000, 0x0000_0000_0004_0004: 0x0004_0404_0404_0000, 0x0000_0000_0004_0400: 0x0004_0404_0404_0000, 0x0000_0000_0004_0404: 0x0004_0404_0404_0000,
+ 0x0000_0000_0400_0000: 0x0004_0404_0400_0000, 0x0000_0000_0400_0004: 0x0004_0404_0400_0000, 0x0000_0000_0400_0400: 0x0004_0404_0400_0000, 0x0000_0000_0400_0404: 0x0004_0404_0400_0000,
+ 0x0000_0000_0404_0000: 0x0004_0404_0400_0000, 0x0000_0000_0404_0004: 0x0004_0404_0400_0000, 0x0000_0000_0404_0400: 0x0004_0404_0400_0000, 0x0000_0000_0404_0404: 0x0004_0404_0400_0000,
+ 0x0000_0004_0000_0000: 0x0004_0404_0000_0000, 0x0000_0004_0000_0004: 0x0004_0404_0000_0000, 0x0000_0004_0000_0400: 0x0004_0404_0000_0000, 0x0000_0004_0000_0404: 0x0004_0404_0000_0000,
+ 0x0000_0004_0004_0000: 0x0004_0404_0000_0000, 0x0000_0004_0004_0004: 0x0004_0404_0000_0000, 0x0000_0004_0004_0400: 0x0004_0404_0000_0000, 0x0000_0004_0004_0404: 0x0004_0404_0000_0000,
+ 0x0000_0004_0400_0000: 0x0004_0404_0000_0000, 0x0000_0004_0400_0004: 0x0004_0404_0000_0000, 0x0000_0004_0400_0400: 0x0004_0404_0000_0000, 0x0000_0004_0400_0404: 0x0004_0404_0000_0000,
+ 0x0000_0004_0404_0000: 0x0004_0404_0000_0000, 0x0000_0004_0404_0004: 0x0004_0404_0000_0000, 0x0000_0004_0404_0400: 0x0004_0404_0000_0000, 0x0000_0004_0404_0404: 0x0004_0404_0000_0000,
+ 0x0000_0400_0000_0000: 0x0004_0400_0000_0000, 0x0000_0400_0000_0004: 0x0004_0400_0000_0000, 0x0000_0400_0000_0400: 0x0004_0400_0000_0000, 0x0000_0400_0000_0404: 0x0004_0400_0000_0000,
+ 0x0000_0400_0004_0000: 0x0004_0400_0000_0000, 0x0000_0400_0004_0004: 0x0004_0400_0000_0000, 0x0000_0400_0004_0400: 0x0004_0400_0000_0000, 0x0000_0400_0004_0404: 0x0004_0400_0000_0000,
+ 0x0000_0400_0400_0000: 0x0004_0400_0000_0000, 0x0000_0400_0400_0004: 0x0004_0400_0000_0000, 0x0000_0400_0400_0400: 0x0004_0400_0000_0000, 0x0000_0400_0400_0404: 0x0004_0400_0000_0000,
+ 0x0000_0400_0404_0000: 0x0004_0400_0000_0000, 0x0000_0400_0404_0004: 0x0004_0400_0000_0000, 0x0000_0400_0404_0400: 0x0004_0400_0000_0000, 0x0000_0400_0404_0404: 0x0004_0400_0000_0000,
+ 0x0000_0404_0000_0000: 0x0004_0400_0000_0000, 0x0000_0404_0000_0004: 0x0004_0400_0000_0000, 0x0000_0404_0000_0400: 0x0004_0400_0000_0000, 0x0000_0404_0000_0404: 0x0004_0400_0000_0000,
+ 0x0000_0404_0004_0000: 0x0004_0400_0000_0000, 0x0000_0404_0004_0004: 0x0004_0400_0000_0000, 0x0000_0404_0004_0400: 0x0004_0400_0000_0000, 0x0000_0404_0004_0404: 0x0004_0400_0000_0000,
+ 0x0000_0404_0400_0000: 0x0004_0400_0000_0000, 0x0000_0404_0400_0004: 0x0004_0400_0000_0000, 0x0000_0404_0400_0400: 0x0004_0400_0000_0000, 0x0000_0404_0400_0404: 0x0004_0400_0000_0000,
+ 0x0000_0404_0404_0000: 0x0004_0400_0000_0000, 0x0000_0404_0404_0004: 0x0004_0400_0000_0000, 0x0000_0404_0404_0400: 0x0004_0400_0000_0000, 0x0000_0404_0404_0404: 0x0004_0400_0000_0000,
+ 0x0004_0000_0000_0000: 0x0004_0000_0000_0000, 0x0004_0000_0000_0004: 0x0004_0000_0000_0000, 0x0004_0000_0000_0400: 0x0004_0000_0000_0000, 0x0004_0000_0000_0404: 0x0004_0000_0000_0000,
+ 0x0004_0000_0004_0000: 0x0004_0000_0000_0000, 0x0004_0000_0004_0004: 0x0004_0000_0000_0000, 0x0004_0000_0004_0400: 0x0004_0000_0000_0000, 0x0004_0000_0004_0404: 0x0004_0000_0000_0000,
+ 0x0004_0000_0400_0000: 0x0004_0000_0000_0000, 0x0004_0000_0400_0004: 0x0004_0000_0000_0000, 0x0004_0000_0400_0400: 0x0004_0000_0000_0000, 0x0004_0000_0400_0404: 0x0004_0000_0000_0000,
+ 0x0004_0000_0404_0000: 0x0004_0000_0000_0000, 0x0004_0000_0404_0004: 0x0004_0000_0000_0000, 0x0004_0000_0404_0400: 0x0004_0000_0000_0000, 0x0004_0000_0404_0404: 0x0004_0000_0000_0000,
+ 0x0004_0004_0000_0000: 0x0004_0000_0000_0000, 0x0004_0004_0000_0004: 0x0004_0000_0000_0000, 0x0004_0004_0000_0400: 0x0004_0000_0000_0000, 0x0004_0004_0000_0404: 0x0004_0000_0000_0000,
+ 0x0004_0004_0004_0000: 0x0004_0000_0000_0000, 0x0004_0004_0004_0004: 0x0004_0000_0000_0000, 0x0004_0004_0004_0400: 0x0004_0000_0000_0000, 0x0004_0004_0004_0404: 0x0004_0000_0000_0000,
+ 0x0004_0004_0400_0000: 0x0004_0000_0000_0000, 0x0004_0004_0400_0004: 0x0004_0000_0000_0000, 0x0004_0004_0400_0400: 0x0004_0000_0000_0000, 0x0004_0004_0400_0404: 0x0004_0000_0000_0000,
+ 0x0004_0004_0404_0000: 0x0004_0000_0000_0000, 0x0004_0004_0404_0004: 0x0004_0000_0000_0000, 0x0004_0004_0404_0400: 0x0004_0000_0000_0000, 0x0004_0004_0404_0404: 0x0004_0000_0000_0000,
+ 0x0004_0400_0000_0000: 0x0004_0000_0000_0000, 0x0004_0400_0000_0004: 0x0004_0000_0000_0000, 0x0004_0400_0000_0400: 0x0004_0000_0000_0000, 0x0004_0400_0000_0404: 0x0004_0000_0000_0000,
+ 0x0004_0400_0004_0000: 0x0004_0000_0000_0000, 0x0004_0400_0004_0004: 0x0004_0000_0000_0000, 0x0004_0400_0004_0400: 0x0004_0000_0000_0000, 0x0004_0400_0004_0404: 0x0004_0000_0000_0000,
+ 0x0004_0400_0400_0000: 0x0004_0000_0000_0000, 0x0004_0400_0400_0004: 0x0004_0000_0000_0000, 0x0004_0400_0400_0400: 0x0004_0000_0000_0000, 0x0004_0400_0400_0404: 0x0004_0000_0000_0000,
+ 0x0004_0400_0404_0000: 0x0004_0000_0000_0000, 0x0004_0400_0404_0004: 0x0004_0000_0000_0000, 0x0004_0400_0404_0400: 0x0004_0000_0000_0000, 0x0004_0400_0404_0404: 0x0004_0000_0000_0000,
+ 0x0004_0404_0000_0000: 0x0004_0000_0000_0000, 0x0004_0404_0000_0004: 0x0004_0000_0000_0000, 0x0004_0404_0000_0400: 0x0004_0000_0000_0000, 0x0004_0404_0000_0404: 0x0004_0000_0000_0000,
+ 0x0004_0404_0004_0000: 0x0004_0000_0000_0000, 0x0004_0404_0004_0004: 0x0004_0000_0000_0000, 0x0004_0404_0004_0400: 0x0004_0000_0000_0000, 0x0004_0404_0004_0404: 0x0004_0000_0000_0000,
+ 0x0004_0404_0400_0000: 0x0004_0000_0000_0000, 0x0004_0404_0400_0004: 0x0004_0000_0000_0000, 0x0004_0404_0400_0400: 0x0004_0000_0000_0000, 0x0004_0404_0400_0404: 0x0004_0000_0000_0000,
+ 0x0004_0404_0404_0000: 0x0004_0000_0000_0000, 0x0004_0404_0404_0004: 0x0004_0000_0000_0000, 0x0004_0404_0404_0400: 0x0004_0000_0000_0000, 0x0004_0404_0404_0404: 0x0004_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0008_0808_0808_0808, 0x0000_0000_0000_0008: 0x0008_0808_0808_0808, 0x0000_0000_0000_0800: 0x0008_0808_0808_0800, 0x0000_0000_0000_0808: 0x0008_0808_0808_0800,
+ 0x0000_0000_0008_0000: 0x0008_0808_0808_0000, 0x0000_0000_0008_0008: 0x0008_0808_0808_0000, 0x0000_0000_0008_0800: 0x0008_0808_0808_0000, 0x0000_0000_0008_0808: 0x0008_0808_0808_0000,
+ 0x0000_0000_0800_0000: 0x0008_0808_0800_0000, 0x0000_0000_0800_0008: 0x0008_0808_0800_0000, 0x0000_0000_0800_0800: 0x0008_0808_0800_0000, 0x0000_0000_0800_0808: 0x0008_0808_0800_0000,
+ 0x0000_0000_0808_0000: 0x0008_0808_0800_0000, 0x0000_0000_0808_0008: 0x0008_0808_0800_0000, 0x0000_0000_0808_0800: 0x0008_0808_0800_0000, 0x0000_0000_0808_0808: 0x0008_0808_0800_0000,
+ 0x0000_0008_0000_0000: 0x0008_0808_0000_0000, 0x0000_0008_0000_0008: 0x0008_0808_0000_0000, 0x0000_0008_0000_0800: 0x0008_0808_0000_0000, 0x0000_0008_0000_0808: 0x0008_0808_0000_0000,
+ 0x0000_0008_0008_0000: 0x0008_0808_0000_0000, 0x0000_0008_0008_0008: 0x0008_0808_0000_0000, 0x0000_0008_0008_0800: 0x0008_0808_0000_0000, 0x0000_0008_0008_0808: 0x0008_0808_0000_0000,
+ 0x0000_0008_0800_0000: 0x0008_0808_0000_0000, 0x0000_0008_0800_0008: 0x0008_0808_0000_0000, 0x0000_0008_0800_0800: 0x0008_0808_0000_0000, 0x0000_0008_0800_0808: 0x0008_0808_0000_0000,
+ 0x0000_0008_0808_0000: 0x0008_0808_0000_0000, 0x0000_0008_0808_0008: 0x0008_0808_0000_0000, 0x0000_0008_0808_0800: 0x0008_0808_0000_0000, 0x0000_0008_0808_0808: 0x0008_0808_0000_0000,
+ 0x0000_0800_0000_0000: 0x0008_0800_0000_0000, 0x0000_0800_0000_0008: 0x0008_0800_0000_0000, 0x0000_0800_0000_0800: 0x0008_0800_0000_0000, 0x0000_0800_0000_0808: 0x0008_0800_0000_0000,
+ 0x0000_0800_0008_0000: 0x0008_0800_0000_0000, 0x0000_0800_0008_0008: 0x0008_0800_0000_0000, 0x0000_0800_0008_0800: 0x0008_0800_0000_0000, 0x0000_0800_0008_0808: 0x0008_0800_0000_0000,
+ 0x0000_0800_0800_0000: 0x0008_0800_0000_0000, 0x0000_0800_0800_0008: 0x0008_0800_0000_0000, 0x0000_0800_0800_0800: 0x0008_0800_0000_0000, 0x0000_0800_0800_0808: 0x0008_0800_0000_0000,
+ 0x0000_0800_0808_0000: 0x0008_0800_0000_0000, 0x0000_0800_0808_0008: 0x0008_0800_0000_0000, 0x0000_0800_0808_0800: 0x0008_0800_0000_0000, 0x0000_0800_0808_0808: 0x0008_0800_0000_0000,
+ 0x0000_0808_0000_0000: 0x0008_0800_0000_0000, 0x0000_0808_0000_0008: 0x0008_0800_0000_0000, 0x0000_0808_0000_0800: 0x0008_0800_0000_0000, 0x0000_0808_0000_0808: 0x0008_0800_0000_0000,
+ 0x0000_0808_0008_0000: 0x0008_0800_0000_0000, 0x0000_0808_0008_0008: 0x0008_0800_0000_0000, 0x0000_0808_0008_0800: 0x0008_0800_0000_0000, 0x0000_0808_0008_0808: 0x0008_0800_0000_0000,
+ 0x0000_0808_0800_0000: 0x0008_0800_0000_0000, 0x0000_0808_0800_0008: 0x0008_0800_0000_0000, 0x0000_0808_0800_0800: 0x0008_0800_0000_0000, 0x0000_0808_0800_0808: 0x0008_0800_0000_0000,
+ 0x0000_0808_0808_0000: 0x0008_0800_0000_0000, 0x0000_0808_0808_0008: 0x0008_0800_0000_0000, 0x0000_0808_0808_0800: 0x0008_0800_0000_0000, 0x0000_0808_0808_0808: 0x0008_0800_0000_0000,
+ 0x0008_0000_0000_0000: 0x0008_0000_0000_0000, 0x0008_0000_0000_0008: 0x0008_0000_0000_0000, 0x0008_0000_0000_0800: 0x0008_0000_0000_0000, 0x0008_0000_0000_0808: 0x0008_0000_0000_0000,
+ 0x0008_0000_0008_0000: 0x0008_0000_0000_0000, 0x0008_0000_0008_0008: 0x0008_0000_0000_0000, 0x0008_0000_0008_0800: 0x0008_0000_0000_0000, 0x0008_0000_0008_0808: 0x0008_0000_0000_0000,
+ 0x0008_0000_0800_0000: 0x0008_0000_0000_0000, 0x0008_0000_0800_0008: 0x0008_0000_0000_0000, 0x0008_0000_0800_0800: 0x0008_0000_0000_0000, 0x0008_0000_0800_0808: 0x0008_0000_0000_0000,
+ 0x0008_0000_0808_0000: 0x0008_0000_0000_0000, 0x0008_0000_0808_0008: 0x0008_0000_0000_0000, 0x0008_0000_0808_0800: 0x0008_0000_0000_0000, 0x0008_0000_0808_0808: 0x0008_0000_0000_0000,
+ 0x0008_0008_0000_0000: 0x0008_0000_0000_0000, 0x0008_0008_0000_0008: 0x0008_0000_0000_0000, 0x0008_0008_0000_0800: 0x0008_0000_0000_0000, 0x0008_0008_0000_0808: 0x0008_0000_0000_0000,
+ 0x0008_0008_0008_0000: 0x0008_0000_0000_0000, 0x0008_0008_0008_0008: 0x0008_0000_0000_0000, 0x0008_0008_0008_0800: 0x0008_0000_0000_0000, 0x0008_0008_0008_0808: 0x0008_0000_0000_0000,
+ 0x0008_0008_0800_0000: 0x0008_0000_0000_0000, 0x0008_0008_0800_0008: 0x0008_0000_0000_0000, 0x0008_0008_0800_0800: 0x0008_0000_0000_0000, 0x0008_0008_0800_0808: 0x0008_0000_0000_0000,
+ 0x0008_0008_0808_0000: 0x0008_0000_0000_0000, 0x0008_0008_0808_0008: 0x0008_0000_0000_0000, 0x0008_0008_0808_0800: 0x0008_0000_0000_0000, 0x0008_0008_0808_0808: 0x0008_0000_0000_0000,
+ 0x0008_0800_0000_0000: 0x0008_0000_0000_0000, 0x0008_0800_0000_0008: 0x0008_0000_0000_0000, 0x0008_0800_0000_0800: 0x0008_0000_0000_0000, 0x0008_0800_0000_0808: 0x0008_0000_0000_0000,
+ 0x0008_0800_0008_0000: 0x0008_0000_0000_0000, 0x0008_0800_0008_0008: 0x0008_0000_0000_0000, 0x0008_0800_0008_0800: 0x0008_0000_0000_0000, 0x0008_0800_0008_0808: 0x0008_0000_0000_0000,
+ 0x0008_0800_0800_0000: 0x0008_0000_0000_0000, 0x0008_0800_0800_0008: 0x0008_0000_0000_0000, 0x0008_0800_0800_0800: 0x0008_0000_0000_0000, 0x0008_0800_0800_0808: 0x0008_0000_0000_0000,
+ 0x0008_0800_0808_0000: 0x0008_0000_0000_0000, 0x0008_0800_0808_0008: 0x0008_0000_0000_0000, 0x0008_0800_0808_0800: 0x0008_0000_0000_0000, 0x0008_0800_0808_0808: 0x0008_0000_0000_0000,
+ 0x0008_0808_0000_0000: 0x0008_0000_0000_0000, 0x0008_0808_0000_0008: 0x0008_0000_0000_0000, 0x0008_0808_0000_0800: 0x0008_0000_0000_0000, 0x0008_0808_0000_0808: 0x0008_0000_0000_0000,
+ 0x0008_0808_0008_0000: 0x0008_0000_0000_0000, 0x0008_0808_0008_0008: 0x0008_0000_0000_0000, 0x0008_0808_0008_0800: 0x0008_0000_0000_0000, 0x0008_0808_0008_0808: 0x0008_0000_0000_0000,
+ 0x0008_0808_0800_0000: 0x0008_0000_0000_0000, 0x0008_0808_0800_0008: 0x0008_0000_0000_0000, 0x0008_0808_0800_0800: 0x0008_0000_0000_0000, 0x0008_0808_0800_0808: 0x0008_0000_0000_0000,
+ 0x0008_0808_0808_0000: 0x0008_0000_0000_0000, 0x0008_0808_0808_0008: 0x0008_0000_0000_0000, 0x0008_0808_0808_0800: 0x0008_0000_0000_0000, 0x0008_0808_0808_0808: 0x0008_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0010_1010_1010_1010, 0x0000_0000_0000_0010: 0x0010_1010_1010_1010, 0x0000_0000_0000_1000: 0x0010_1010_1010_1000, 0x0000_0000_0000_1010: 0x0010_1010_1010_1000,
+ 0x0000_0000_0010_0000: 0x0010_1010_1010_0000, 0x0000_0000_0010_0010: 0x0010_1010_1010_0000, 0x0000_0000_0010_1000: 0x0010_1010_1010_0000, 0x0000_0000_0010_1010: 0x0010_1010_1010_0000,
+ 0x0000_0000_1000_0000: 0x0010_1010_1000_0000, 0x0000_0000_1000_0010: 0x0010_1010_1000_0000, 0x0000_0000_1000_1000: 0x0010_1010_1000_0000, 0x0000_0000_1000_1010: 0x0010_1010_1000_0000,
+ 0x0000_0000_1010_0000: 0x0010_1010_1000_0000, 0x0000_0000_1010_0010: 0x0010_1010_1000_0000, 0x0000_0000_1010_1000: 0x0010_1010_1000_0000, 0x0000_0000_1010_1010: 0x0010_1010_1000_0000,
+ 0x0000_0010_0000_0000: 0x0010_1010_0000_0000, 0x0000_0010_0000_0010: 0x0010_1010_0000_0000, 0x0000_0010_0000_1000: 0x0010_1010_0000_0000, 0x0000_0010_0000_1010: 0x0010_1010_0000_0000,
+ 0x0000_0010_0010_0000: 0x0010_1010_0000_0000, 0x0000_0010_0010_0010: 0x0010_1010_0000_0000, 0x0000_0010_0010_1000: 0x0010_1010_0000_0000, 0x0000_0010_0010_1010: 0x0010_1010_0000_0000,
+ 0x0000_0010_1000_0000: 0x0010_1010_0000_0000, 0x0000_0010_1000_0010: 0x0010_1010_0000_0000, 0x0000_0010_1000_1000: 0x0010_1010_0000_0000, 0x0000_0010_1000_1010: 0x0010_1010_0000_0000,
+ 0x0000_0010_1010_0000: 0x0010_1010_0000_0000, 0x0000_0010_1010_0010: 0x0010_1010_0000_0000, 0x0000_0010_1010_1000: 0x0010_1010_0000_0000, 0x0000_0010_1010_1010: 0x0010_1010_0000_0000,
+ 0x0000_1000_0000_0000: 0x0010_1000_0000_0000, 0x0000_1000_0000_0010: 0x0010_1000_0000_0000, 0x0000_1000_0000_1000: 0x0010_1000_0000_0000, 0x0000_1000_0000_1010: 0x0010_1000_0000_0000,
+ 0x0000_1000_0010_0000: 0x0010_1000_0000_0000, 0x0000_1000_0010_0010: 0x0010_1000_0000_0000, 0x0000_1000_0010_1000: 0x0010_1000_0000_0000, 0x0000_1000_0010_1010: 0x0010_1000_0000_0000,
+ 0x0000_1000_1000_0000: 0x0010_1000_0000_0000, 0x0000_1000_1000_0010: 0x0010_1000_0000_0000, 0x0000_1000_1000_1000: 0x0010_1000_0000_0000, 0x0000_1000_1000_1010: 0x0010_1000_0000_0000,
+ 0x0000_1000_1010_0000: 0x0010_1000_0000_0000, 0x0000_1000_1010_0010: 0x0010_1000_0000_0000, 0x0000_1000_1010_1000: 0x0010_1000_0000_0000, 0x0000_1000_1010_1010: 0x0010_1000_0000_0000,
+ 0x0000_1010_0000_0000: 0x0010_1000_0000_0000, 0x0000_1010_0000_0010: 0x0010_1000_0000_0000, 0x0000_1010_0000_1000: 0x0010_1000_0000_0000, 0x0000_1010_0000_1010: 0x0010_1000_0000_0000,
+ 0x0000_1010_0010_0000: 0x0010_1000_0000_0000, 0x0000_1010_0010_0010: 0x0010_1000_0000_0000, 0x0000_1010_0010_1000: 0x0010_1000_0000_0000, 0x0000_1010_0010_1010: 0x0010_1000_0000_0000,
+ 0x0000_1010_1000_0000: 0x0010_1000_0000_0000, 0x0000_1010_1000_0010: 0x0010_1000_0000_0000, 0x0000_1010_1000_1000: 0x0010_1000_0000_0000, 0x0000_1010_1000_1010: 0x0010_1000_0000_0000,
+ 0x0000_1010_1010_0000: 0x0010_1000_0000_0000, 0x0000_1010_1010_0010: 0x0010_1000_0000_0000, 0x0000_1010_1010_1000: 0x0010_1000_0000_0000, 0x0000_1010_1010_1010: 0x0010_1000_0000_0000,
+ 0x0010_0000_0000_0000: 0x0010_0000_0000_0000, 0x0010_0000_0000_0010: 0x0010_0000_0000_0000, 0x0010_0000_0000_1000: 0x0010_0000_0000_0000, 0x0010_0000_0000_1010: 0x0010_0000_0000_0000,
+ 0x0010_0000_0010_0000: 0x0010_0000_0000_0000, 0x0010_0000_0010_0010: 0x0010_0000_0000_0000, 0x0010_0000_0010_1000: 0x0010_0000_0000_0000, 0x0010_0000_0010_1010: 0x0010_0000_0000_0000,
+ 0x0010_0000_1000_0000: 0x0010_0000_0000_0000, 0x0010_0000_1000_0010: 0x0010_0000_0000_0000, 0x0010_0000_1000_1000: 0x0010_0000_0000_0000, 0x0010_0000_1000_1010: 0x0010_0000_0000_0000,
+ 0x0010_0000_1010_0000: 0x0010_0000_0000_0000, 0x0010_0000_1010_0010: 0x0010_0000_0000_0000, 0x0010_0000_1010_1000: 0x0010_0000_0000_0000, 0x0010_0000_1010_1010: 0x0010_0000_0000_0000,
+ 0x0010_0010_0000_0000: 0x0010_0000_0000_0000, 0x0010_0010_0000_0010: 0x0010_0000_0000_0000, 0x0010_0010_0000_1000: 0x0010_0000_0000_0000, 0x0010_0010_0000_1010: 0x0010_0000_0000_0000,
+ 0x0010_0010_0010_0000: 0x0010_0000_0000_0000, 0x0010_0010_0010_0010: 0x0010_0000_0000_0000, 0x0010_0010_0010_1000: 0x0010_0000_0000_0000, 0x0010_0010_0010_1010: 0x0010_0000_0000_0000,
+ 0x0010_0010_1000_0000: 0x0010_0000_0000_0000, 0x0010_0010_1000_0010: 0x0010_0000_0000_0000, 0x0010_0010_1000_1000: 0x0010_0000_0000_0000, 0x0010_0010_1000_1010: 0x0010_0000_0000_0000,
+ 0x0010_0010_1010_0000: 0x0010_0000_0000_0000, 0x0010_0010_1010_0010: 0x0010_0000_0000_0000, 0x0010_0010_1010_1000: 0x0010_0000_0000_0000, 0x0010_0010_1010_1010: 0x0010_0000_0000_0000,
+ 0x0010_1000_0000_0000: 0x0010_0000_0000_0000, 0x0010_1000_0000_0010: 0x0010_0000_0000_0000, 0x0010_1000_0000_1000: 0x0010_0000_0000_0000, 0x0010_1000_0000_1010: 0x0010_0000_0000_0000,
+ 0x0010_1000_0010_0000: 0x0010_0000_0000_0000, 0x0010_1000_0010_0010: 0x0010_0000_0000_0000, 0x0010_1000_0010_1000: 0x0010_0000_0000_0000, 0x0010_1000_0010_1010: 0x0010_0000_0000_0000,
+ 0x0010_1000_1000_0000: 0x0010_0000_0000_0000, 0x0010_1000_1000_0010: 0x0010_0000_0000_0000, 0x0010_1000_1000_1000: 0x0010_0000_0000_0000, 0x0010_1000_1000_1010: 0x0010_0000_0000_0000,
+ 0x0010_1000_1010_0000: 0x0010_0000_0000_0000, 0x0010_1000_1010_0010: 0x0010_0000_0000_0000, 0x0010_1000_1010_1000: 0x0010_0000_0000_0000, 0x0010_1000_1010_1010: 0x0010_0000_0000_0000,
+ 0x0010_1010_0000_0000: 0x0010_0000_0000_0000, 0x0010_1010_0000_0010: 0x0010_0000_0000_0000, 0x0010_1010_0000_1000: 0x0010_0000_0000_0000, 0x0010_1010_0000_1010: 0x0010_0000_0000_0000,
+ 0x0010_1010_0010_0000: 0x0010_0000_0000_0000, 0x0010_1010_0010_0010: 0x0010_0000_0000_0000, 0x0010_1010_0010_1000: 0x0010_0000_0000_0000, 0x0010_1010_0010_1010: 0x0010_0000_0000_0000,
+ 0x0010_1010_1000_0000: 0x0010_0000_0000_0000, 0x0010_1010_1000_0010: 0x0010_0000_0000_0000, 0x0010_1010_1000_1000: 0x0010_0000_0000_0000, 0x0010_1010_1000_1010: 0x0010_0000_0000_0000,
+ 0x0010_1010_1010_0000: 0x0010_0000_0000_0000, 0x0010_1010_1010_0010: 0x0010_0000_0000_0000, 0x0010_1010_1010_1000: 0x0010_0000_0000_0000, 0x0010_1010_1010_1010: 0x0010_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0020_2020_2020_2020, 0x0000_0000_0000_0020: 0x0020_2020_2020_2020, 0x0000_0000_0000_2000: 0x0020_2020_2020_2000, 0x0000_0000_0000_2020: 0x0020_2020_2020_2000,
+ 0x0000_0000_0020_0000: 0x0020_2020_2020_0000, 0x0000_0000_0020_0020: 0x0020_2020_2020_0000, 0x0000_0000_0020_2000: 0x0020_2020_2020_0000, 0x0000_0000_0020_2020: 0x0020_2020_2020_0000,
+ 0x0000_0000_2000_0000: 0x0020_2020_2000_0000, 0x0000_0000_2000_0020: 0x0020_2020_2000_0000, 0x0000_0000_2000_2000: 0x0020_2020_2000_0000, 0x0000_0000_2000_2020: 0x0020_2020_2000_0000,
+ 0x0000_0000_2020_0000: 0x0020_2020_2000_0000, 0x0000_0000_2020_0020: 0x0020_2020_2000_0000, 0x0000_0000_2020_2000: 0x0020_2020_2000_0000, 0x0000_0000_2020_2020: 0x0020_2020_2000_0000,
+ 0x0000_0020_0000_0000: 0x0020_2020_0000_0000, 0x0000_0020_0000_0020: 0x0020_2020_0000_0000, 0x0000_0020_0000_2000: 0x0020_2020_0000_0000, 0x0000_0020_0000_2020: 0x0020_2020_0000_0000,
+ 0x0000_0020_0020_0000: 0x0020_2020_0000_0000, 0x0000_0020_0020_0020: 0x0020_2020_0000_0000, 0x0000_0020_0020_2000: 0x0020_2020_0000_0000, 0x0000_0020_0020_2020: 0x0020_2020_0000_0000,
+ 0x0000_0020_2000_0000: 0x0020_2020_0000_0000, 0x0000_0020_2000_0020: 0x0020_2020_0000_0000, 0x0000_0020_2000_2000: 0x0020_2020_0000_0000, 0x0000_0020_2000_2020: 0x0020_2020_0000_0000,
+ 0x0000_0020_2020_0000: 0x0020_2020_0000_0000, 0x0000_0020_2020_0020: 0x0020_2020_0000_0000, 0x0000_0020_2020_2000: 0x0020_2020_0000_0000, 0x0000_0020_2020_2020: 0x0020_2020_0000_0000,
+ 0x0000_2000_0000_0000: 0x0020_2000_0000_0000, 0x0000_2000_0000_0020: 0x0020_2000_0000_0000, 0x0000_2000_0000_2000: 0x0020_2000_0000_0000, 0x0000_2000_0000_2020: 0x0020_2000_0000_0000,
+ 0x0000_2000_0020_0000: 0x0020_2000_0000_0000, 0x0000_2000_0020_0020: 0x0020_2000_0000_0000, 0x0000_2000_0020_2000: 0x0020_2000_0000_0000, 0x0000_2000_0020_2020: 0x0020_2000_0000_0000,
+ 0x0000_2000_2000_0000: 0x0020_2000_0000_0000, 0x0000_2000_2000_0020: 0x0020_2000_0000_0000, 0x0000_2000_2000_2000: 0x0020_2000_0000_0000, 0x0000_2000_2000_2020: 0x0020_2000_0000_0000,
+ 0x0000_2000_2020_0000: 0x0020_2000_0000_0000, 0x0000_2000_2020_0020: 0x0020_2000_0000_0000, 0x0000_2000_2020_2000: 0x0020_2000_0000_0000, 0x0000_2000_2020_2020: 0x0020_2000_0000_0000,
+ 0x0000_2020_0000_0000: 0x0020_2000_0000_0000, 0x0000_2020_0000_0020: 0x0020_2000_0000_0000, 0x0000_2020_0000_2000: 0x0020_2000_0000_0000, 0x0000_2020_0000_2020: 0x0020_2000_0000_0000,
+ 0x0000_2020_0020_0000: 0x0020_2000_0000_0000, 0x0000_2020_0020_0020: 0x0020_2000_0000_0000, 0x0000_2020_0020_2000: 0x0020_2000_0000_0000, 0x0000_2020_0020_2020: 0x0020_2000_0000_0000,
+ 0x0000_2020_2000_0000: 0x0020_2000_0000_0000, 0x0000_2020_2000_0020: 0x0020_2000_0000_0000, 0x0000_2020_2000_2000: 0x0020_2000_0000_0000, 0x0000_2020_2000_2020: 0x0020_2000_0000_0000,
+ 0x0000_2020_2020_0000: 0x0020_2000_0000_0000, 0x0000_2020_2020_0020: 0x0020_2000_0000_0000, 0x0000_2020_2020_2000: 0x0020_2000_0000_0000, 0x0000_2020_2020_2020: 0x0020_2000_0000_0000,
+ 0x0020_0000_0000_0000: 0x0020_0000_0000_0000, 0x0020_0000_0000_0020: 0x0020_0000_0000_0000, 0x0020_0000_0000_2000: 0x0020_0000_0000_0000, 0x0020_0000_0000_2020: 0x0020_0000_0000_0000,
+ 0x0020_0000_0020_0000: 0x0020_0000_0000_0000, 0x0020_0000_0020_0020: 0x0020_0000_0000_0000, 0x0020_0000_0020_2000: 0x0020_0000_0000_0000, 0x0020_0000_0020_2020: 0x0020_0000_0000_0000,
+ 0x0020_0000_2000_0000: 0x0020_0000_0000_0000, 0x0020_0000_2000_0020: 0x0020_0000_0000_0000, 0x0020_0000_2000_2000: 0x0020_0000_0000_0000, 0x0020_0000_2000_2020: 0x0020_0000_0000_0000,
+ 0x0020_0000_2020_0000: 0x0020_0000_0000_0000, 0x0020_0000_2020_0020: 0x0020_0000_0000_0000, 0x0020_0000_2020_2000: 0x0020_0000_0000_0000, 0x0020_0000_2020_2020: 0x0020_0000_0000_0000,
+ 0x0020_0020_0000_0000: 0x0020_0000_0000_0000, 0x0020_0020_0000_0020: 0x0020_0000_0000_0000, 0x0020_0020_0000_2000: 0x0020_0000_0000_0000, 0x0020_0020_0000_2020: 0x0020_0000_0000_0000,
+ 0x0020_0020_0020_0000: 0x0020_0000_0000_0000, 0x0020_0020_0020_0020: 0x0020_0000_0000_0000, 0x0020_0020_0020_2000: 0x0020_0000_0000_0000, 0x0020_0020_0020_2020: 0x0020_0000_0000_0000,
+ 0x0020_0020_2000_0000: 0x0020_0000_0000_0000, 0x0020_0020_2000_0020: 0x0020_0000_0000_0000, 0x0020_0020_2000_2000: 0x0020_0000_0000_0000, 0x0020_0020_2000_2020: 0x0020_0000_0000_0000,
+ 0x0020_0020_2020_0000: 0x0020_0000_0000_0000, 0x0020_0020_2020_0020: 0x0020_0000_0000_0000, 0x0020_0020_2020_2000: 0x0020_0000_0000_0000, 0x0020_0020_2020_2020: 0x0020_0000_0000_0000,
+ 0x0020_2000_0000_0000: 0x0020_0000_0000_0000, 0x0020_2000_0000_0020: 0x0020_0000_0000_0000, 0x0020_2000_0000_2000: 0x0020_0000_0000_0000, 0x0020_2000_0000_2020: 0x0020_0000_0000_0000,
+ 0x0020_2000_0020_0000: 0x0020_0000_0000_0000, 0x0020_2000_0020_0020: 0x0020_0000_0000_0000, 0x0020_2000_0020_2000: 0x0020_0000_0000_0000, 0x0020_2000_0020_2020: 0x0020_0000_0000_0000,
+ 0x0020_2000_2000_0000: 0x0020_0000_0000_0000, 0x0020_2000_2000_0020: 0x0020_0000_0000_0000, 0x0020_2000_2000_2000: 0x0020_0000_0000_0000, 0x0020_2000_2000_2020: 0x0020_0000_0000_0000,
+ 0x0020_2000_2020_0000: 0x0020_0000_0000_0000, 0x0020_2000_2020_0020: 0x0020_0000_0000_0000, 0x0020_2000_2020_2000: 0x0020_0000_0000_0000, 0x0020_2000_2020_2020: 0x0020_0000_0000_0000,
+ 0x0020_2020_0000_0000: 0x0020_0000_0000_0000, 0x0020_2020_0000_0020: 0x0020_0000_0000_0000, 0x0020_2020_0000_2000: 0x0020_0000_0000_0000, 0x0020_2020_0000_2020: 0x0020_0000_0000_0000,
+ 0x0020_2020_0020_0000: 0x0020_0000_0000_0000, 0x0020_2020_0020_0020: 0x0020_0000_0000_0000, 0x0020_2020_0020_2000: 0x0020_0000_0000_0000, 0x0020_2020_0020_2020: 0x0020_0000_0000_0000,
+ 0x0020_2020_2000_0000: 0x0020_0000_0000_0000, 0x0020_2020_2000_0020: 0x0020_0000_0000_0000, 0x0020_2020_2000_2000: 0x0020_0000_0000_0000, 0x0020_2020_2000_2020: 0x0020_0000_0000_0000,
+ 0x0020_2020_2020_0000: 0x0020_0000_0000_0000, 0x0020_2020_2020_0020: 0x0020_0000_0000_0000, 0x0020_2020_2020_2000: 0x0020_0000_0000_0000, 0x0020_2020_2020_2020: 0x0020_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0040_4040_4040_4040, 0x0000_0000_0000_0040: 0x0040_4040_4040_4040, 0x0000_0000_0000_4000: 0x0040_4040_4040_4000, 0x0000_0000_0000_4040: 0x0040_4040_4040_4000,
+ 0x0000_0000_0040_0000: 0x0040_4040_4040_0000, 0x0000_0000_0040_0040: 0x0040_4040_4040_0000, 0x0000_0000_0040_4000: 0x0040_4040_4040_0000, 0x0000_0000_0040_4040: 0x0040_4040_4040_0000,
+ 0x0000_0000_4000_0000: 0x0040_4040_4000_0000, 0x0000_0000_4000_0040: 0x0040_4040_4000_0000, 0x0000_0000_4000_4000: 0x0040_4040_4000_0000, 0x0000_0000_4000_4040: 0x0040_4040_4000_0000,
+ 0x0000_0000_4040_0000: 0x0040_4040_4000_0000, 0x0000_0000_4040_0040: 0x0040_4040_4000_0000, 0x0000_0000_4040_4000: 0x0040_4040_4000_0000, 0x0000_0000_4040_4040: 0x0040_4040_4000_0000,
+ 0x0000_0040_0000_0000: 0x0040_4040_0000_0000, 0x0000_0040_0000_0040: 0x0040_4040_0000_0000, 0x0000_0040_0000_4000: 0x0040_4040_0000_0000, 0x0000_0040_0000_4040: 0x0040_4040_0000_0000,
+ 0x0000_0040_0040_0000: 0x0040_4040_0000_0000, 0x0000_0040_0040_0040: 0x0040_4040_0000_0000, 0x0000_0040_0040_4000: 0x0040_4040_0000_0000, 0x0000_0040_0040_4040: 0x0040_4040_0000_0000,
+ 0x0000_0040_4000_0000: 0x0040_4040_0000_0000, 0x0000_0040_4000_0040: 0x0040_4040_0000_0000, 0x0000_0040_4000_4000: 0x0040_4040_0000_0000, 0x0000_0040_4000_4040: 0x0040_4040_0000_0000,
+ 0x0000_0040_4040_0000: 0x0040_4040_0000_0000, 0x0000_0040_4040_0040: 0x0040_4040_0000_0000, 0x0000_0040_4040_4000: 0x0040_4040_0000_0000, 0x0000_0040_4040_4040: 0x0040_4040_0000_0000,
+ 0x0000_4000_0000_0000: 0x0040_4000_0000_0000, 0x0000_4000_0000_0040: 0x0040_4000_0000_0000, 0x0000_4000_0000_4000: 0x0040_4000_0000_0000, 0x0000_4000_0000_4040: 0x0040_4000_0000_0000,
+ 0x0000_4000_0040_0000: 0x0040_4000_0000_0000, 0x0000_4000_0040_0040: 0x0040_4000_0000_0000, 0x0000_4000_0040_4000: 0x0040_4000_0000_0000, 0x0000_4000_0040_4040: 0x0040_4000_0000_0000,
+ 0x0000_4000_4000_0000: 0x0040_4000_0000_0000, 0x0000_4000_4000_0040: 0x0040_4000_0000_0000, 0x0000_4000_4000_4000: 0x0040_4000_0000_0000, 0x0000_4000_4000_4040: 0x0040_4000_0000_0000,
+ 0x0000_4000_4040_0000: 0x0040_4000_0000_0000, 0x0000_4000_4040_0040: 0x0040_4000_0000_0000, 0x0000_4000_4040_4000: 0x0040_4000_0000_0000, 0x0000_4000_4040_4040: 0x0040_4000_0000_0000,
+ 0x0000_4040_0000_0000: 0x0040_4000_0000_0000, 0x0000_4040_0000_0040: 0x0040_4000_0000_0000, 0x0000_4040_0000_4000: 0x0040_4000_0000_0000, 0x0000_4040_0000_4040: 0x0040_4000_0000_0000,
+ 0x0000_4040_0040_0000: 0x0040_4000_0000_0000, 0x0000_4040_0040_0040: 0x0040_4000_0000_0000, 0x0000_4040_0040_4000: 0x0040_4000_0000_0000, 0x0000_4040_0040_4040: 0x0040_4000_0000_0000,
+ 0x0000_4040_4000_0000: 0x0040_4000_0000_0000, 0x0000_4040_4000_0040: 0x0040_4000_0000_0000, 0x0000_4040_4000_4000: 0x0040_4000_0000_0000, 0x0000_4040_4000_4040: 0x0040_4000_0000_0000,
+ 0x0000_4040_4040_0000: 0x0040_4000_0000_0000, 0x0000_4040_4040_0040: 0x0040_4000_0000_0000, 0x0000_4040_4040_4000: 0x0040_4000_0000_0000, 0x0000_4040_4040_4040: 0x0040_4000_0000_0000,
+ 0x0040_0000_0000_0000: 0x0040_0000_0000_0000, 0x0040_0000_0000_0040: 0x0040_0000_0000_0000, 0x0040_0000_0000_4000: 0x0040_0000_0000_0000, 0x0040_0000_0000_4040: 0x0040_0000_0000_0000,
+ 0x0040_0000_0040_0000: 0x0040_0000_0000_0000, 0x0040_0000_0040_0040: 0x0040_0000_0000_0000, 0x0040_0000_0040_4000: 0x0040_0000_0000_0000, 0x0040_0000_0040_4040: 0x0040_0000_0000_0000,
+ 0x0040_0000_4000_0000: 0x0040_0000_0000_0000, 0x0040_0000_4000_0040: 0x0040_0000_0000_0000, 0x0040_0000_4000_4000: 0x0040_0000_0000_0000, 0x0040_0000_4000_4040: 0x0040_0000_0000_0000,
+ 0x0040_0000_4040_0000: 0x0040_0000_0000_0000, 0x0040_0000_4040_0040: 0x0040_0000_0000_0000, 0x0040_0000_4040_4000: 0x0040_0000_0000_0000, 0x0040_0000_4040_4040: 0x0040_0000_0000_0000,
+ 0x0040_0040_0000_0000: 0x0040_0000_0000_0000, 0x0040_0040_0000_0040: 0x0040_0000_0000_0000, 0x0040_0040_0000_4000: 0x0040_0000_0000_0000, 0x0040_0040_0000_4040: 0x0040_0000_0000_0000,
+ 0x0040_0040_0040_0000: 0x0040_0000_0000_0000, 0x0040_0040_0040_0040: 0x0040_0000_0000_0000, 0x0040_0040_0040_4000: 0x0040_0000_0000_0000, 0x0040_0040_0040_4040: 0x0040_0000_0000_0000,
+ 0x0040_0040_4000_0000: 0x0040_0000_0000_0000, 0x0040_0040_4000_0040: 0x0040_0000_0000_0000, 0x0040_0040_4000_4000: 0x0040_0000_0000_0000, 0x0040_0040_4000_4040: 0x0040_0000_0000_0000,
+ 0x0040_0040_4040_0000: 0x0040_0000_0000_0000, 0x0040_0040_4040_0040: 0x0040_0000_0000_0000, 0x0040_0040_4040_4000: 0x0040_0000_0000_0000, 0x0040_0040_4040_4040: 0x0040_0000_0000_0000,
+ 0x0040_4000_0000_0000: 0x0040_0000_0000_0000, 0x0040_4000_0000_0040: 0x0040_0000_0000_0000, 0x0040_4000_0000_4000: 0x0040_0000_0000_0000, 0x0040_4000_0000_4040: 0x0040_0000_0000_0000,
+ 0x0040_4000_0040_0000: 0x0040_0000_0000_0000, 0x0040_4000_0040_0040: 0x0040_0000_0000_0000, 0x0040_4000_0040_4000: 0x0040_0000_0000_0000, 0x0040_4000_0040_4040: 0x0040_0000_0000_0000,
+ 0x0040_4000_4000_0000: 0x0040_0000_0000_0000, 0x0040_4000_4000_0040: 0x0040_0000_0000_0000, 0x0040_4000_4000_4000: 0x0040_0000_0000_0000, 0x0040_4000_4000_4040: 0x0040_0000_0000_0000,
+ 0x0040_4000_4040_0000: 0x0040_0000_0000_0000, 0x0040_4000_4040_0040: 0x0040_0000_0000_0000, 0x0040_4000_4040_4000: 0x0040_0000_0000_0000, 0x0040_4000_4040_4040: 0x0040_0000_0000_0000,
+ 0x0040_4040_0000_0000: 0x0040_0000_0000_0000, 0x0040_4040_0000_0040: 0x0040_0000_0000_0000, 0x0040_4040_0000_4000: 0x0040_0000_0000_0000, 0x0040_4040_0000_4040: 0x0040_0000_0000_0000,
+ 0x0040_4040_0040_0000: 0x0040_0000_0000_0000, 0x0040_4040_0040_0040: 0x0040_0000_0000_0000, 0x0040_4040_0040_4000: 0x0040_0000_0000_0000, 0x0040_4040_0040_4040: 0x0040_0000_0000_0000,
+ 0x0040_4040_4000_0000: 0x0040_0000_0000_0000, 0x0040_4040_4000_0040: 0x0040_0000_0000_0000, 0x0040_4040_4000_4000: 0x0040_0000_0000_0000, 0x0040_4040_4000_4040: 0x0040_0000_0000_0000,
+ 0x0040_4040_4040_0000: 0x0040_0000_0000_0000, 0x0040_4040_4040_0040: 0x0040_0000_0000_0000, 0x0040_4040_4040_4000: 0x0040_0000_0000_0000, 0x0040_4040_4040_4040: 0x0040_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0080_8080_8080_8080, 0x0000_0000_0000_0080: 0x0080_8080_8080_8080, 0x0000_0000_0000_8000: 0x0080_8080_8080_8000, 0x0000_0000_0000_8080: 0x0080_8080_8080_8000,
+ 0x0000_0000_0080_0000: 0x0080_8080_8080_0000, 0x0000_0000_0080_0080: 0x0080_8080_8080_0000, 0x0000_0000_0080_8000: 0x0080_8080_8080_0000, 0x0000_0000_0080_8080: 0x0080_8080_8080_0000,
+ 0x0000_0000_8000_0000: 0x0080_8080_8000_0000, 0x0000_0000_8000_0080: 0x0080_8080_8000_0000, 0x0000_0000_8000_8000: 0x0080_8080_8000_0000, 0x0000_0000_8000_8080: 0x0080_8080_8000_0000,
+ 0x0000_0000_8080_0000: 0x0080_8080_8000_0000, 0x0000_0000_8080_0080: 0x0080_8080_8000_0000, 0x0000_0000_8080_8000: 0x0080_8080_8000_0000, 0x0000_0000_8080_8080: 0x0080_8080_8000_0000,
+ 0x0000_0080_0000_0000: 0x0080_8080_0000_0000, 0x0000_0080_0000_0080: 0x0080_8080_0000_0000, 0x0000_0080_0000_8000: 0x0080_8080_0000_0000, 0x0000_0080_0000_8080: 0x0080_8080_0000_0000,
+ 0x0000_0080_0080_0000: 0x0080_8080_0000_0000, 0x0000_0080_0080_0080: 0x0080_8080_0000_0000, 0x0000_0080_0080_8000: 0x0080_8080_0000_0000, 0x0000_0080_0080_8080: 0x0080_8080_0000_0000,
+ 0x0000_0080_8000_0000: 0x0080_8080_0000_0000, 0x0000_0080_8000_0080: 0x0080_8080_0000_0000, 0x0000_0080_8000_8000: 0x0080_8080_0000_0000, 0x0000_0080_8000_8080: 0x0080_8080_0000_0000,
+ 0x0000_0080_8080_0000: 0x0080_8080_0000_0000, 0x0000_0080_8080_0080: 0x0080_8080_0000_0000, 0x0000_0080_8080_8000: 0x0080_8080_0000_0000, 0x0000_0080_8080_8080: 0x0080_8080_0000_0000,
+ 0x0000_8000_0000_0000: 0x0080_8000_0000_0000, 0x0000_8000_0000_0080: 0x0080_8000_0000_0000, 0x0000_8000_0000_8000: 0x0080_8000_0000_0000, 0x0000_8000_0000_8080: 0x0080_8000_0000_0000,
+ 0x0000_8000_0080_0000: 0x0080_8000_0000_0000, 0x0000_8000_0080_0080: 0x0080_8000_0000_0000, 0x0000_8000_0080_8000: 0x0080_8000_0000_0000, 0x0000_8000_0080_8080: 0x0080_8000_0000_0000,
+ 0x0000_8000_8000_0000: 0x0080_8000_0000_0000, 0x0000_8000_8000_0080: 0x0080_8000_0000_0000, 0x0000_8000_8000_8000: 0x0080_8000_0000_0000, 0x0000_8000_8000_8080: 0x0080_8000_0000_0000,
+ 0x0000_8000_8080_0000: 0x0080_8000_0000_0000, 0x0000_8000_8080_0080: 0x0080_8000_0000_0000, 0x0000_8000_8080_8000: 0x0080_8000_0000_0000, 0x0000_8000_8080_8080: 0x0080_8000_0000_0000,
+ 0x0000_8080_0000_0000: 0x0080_8000_0000_0000, 0x0000_8080_0000_0080: 0x0080_8000_0000_0000, 0x0000_8080_0000_8000: 0x0080_8000_0000_0000, 0x0000_8080_0000_8080: 0x0080_8000_0000_0000,
+ 0x0000_8080_0080_0000: 0x0080_8000_0000_0000, 0x0000_8080_0080_0080: 0x0080_8000_0000_0000, 0x0000_8080_0080_8000: 0x0080_8000_0000_0000, 0x0000_8080_0080_8080: 0x0080_8000_0000_0000,
+ 0x0000_8080_8000_0000: 0x0080_8000_0000_0000, 0x0000_8080_8000_0080: 0x0080_8000_0000_0000, 0x0000_8080_8000_8000: 0x0080_8000_0000_0000, 0x0000_8080_8000_8080: 0x0080_8000_0000_0000,
+ 0x0000_8080_8080_0000: 0x0080_8000_0000_0000, 0x0000_8080_8080_0080: 0x0080_8000_0000_0000, 0x0000_8080_8080_8000: 0x0080_8000_0000_0000, 0x0000_8080_8080_8080: 0x0080_8000_0000_0000,
+ 0x0080_0000_0000_0000: 0x0080_0000_0000_0000, 0x0080_0000_0000_0080: 0x0080_0000_0000_0000, 0x0080_0000_0000_8000: 0x0080_0000_0000_0000, 0x0080_0000_0000_8080: 0x0080_0000_0000_0000,
+ 0x0080_0000_0080_0000: 0x0080_0000_0000_0000, 0x0080_0000_0080_0080: 0x0080_0000_0000_0000, 0x0080_0000_0080_8000: 0x0080_0000_0000_0000, 0x0080_0000_0080_8080: 0x0080_0000_0000_0000,
+ 0x0080_0000_8000_0000: 0x0080_0000_0000_0000, 0x0080_0000_8000_0080: 0x0080_0000_0000_0000, 0x0080_0000_8000_8000: 0x0080_0000_0000_0000, 0x0080_0000_8000_8080: 0x0080_0000_0000_0000,
+ 0x0080_0000_8080_0000: 0x0080_0000_0000_0000, 0x0080_0000_8080_0080: 0x0080_0000_0000_0000, 0x0080_0000_8080_8000: 0x0080_0000_0000_0000, 0x0080_0000_8080_8080: 0x0080_0000_0000_0000,
+ 0x0080_0080_0000_0000: 0x0080_0000_0000_0000, 0x0080_0080_0000_0080: 0x0080_0000_0000_0000, 0x0080_0080_0000_8000: 0x0080_0000_0000_0000, 0x0080_0080_0000_8080: 0x0080_0000_0000_0000,
+ 0x0080_0080_0080_0000: 0x0080_0000_0000_0000, 0x0080_0080_0080_0080: 0x0080_0000_0000_0000, 0x0080_0080_0080_8000: 0x0080_0000_0000_0000, 0x0080_0080_0080_8080: 0x0080_0000_0000_0000,
+ 0x0080_0080_8000_0000: 0x0080_0000_0000_0000, 0x0080_0080_8000_0080: 0x0080_0000_0000_0000, 0x0080_0080_8000_8000: 0x0080_0000_0000_0000, 0x0080_0080_8000_8080: 0x0080_0000_0000_0000,
+ 0x0080_0080_8080_0000: 0x0080_0000_0000_0000, 0x0080_0080_8080_0080: 0x0080_0000_0000_0000, 0x0080_0080_8080_8000: 0x0080_0000_0000_0000, 0x0080_0080_8080_8080: 0x0080_0000_0000_0000,
+ 0x0080_8000_0000_0000: 0x0080_0000_0000_0000, 0x0080_8000_0000_0080: 0x0080_0000_0000_0000, 0x0080_8000_0000_8000: 0x0080_0000_0000_0000, 0x0080_8000_0000_8080: 0x0080_0000_0000_0000,
+ 0x0080_8000_0080_0000: 0x0080_0000_0000_0000, 0x0080_8000_0080_0080: 0x0080_0000_0000_0000, 0x0080_8000_0080_8000: 0x0080_0000_0000_0000, 0x0080_8000_0080_8080: 0x0080_0000_0000_0000,
+ 0x0080_8000_8000_0000: 0x0080_0000_0000_0000, 0x0080_8000_8000_0080: 0x0080_0000_0000_0000, 0x0080_8000_8000_8000: 0x0080_0000_0000_0000, 0x0080_8000_8000_8080: 0x0080_0000_0000_0000,
+ 0x0080_8000_8080_0000: 0x0080_0000_0000_0000, 0x0080_8000_8080_0080: 0x0080_0000_0000_0000, 0x0080_8000_8080_8000: 0x0080_0000_0000_0000, 0x0080_8000_8080_8080: 0x0080_0000_0000_0000,
+ 0x0080_8080_0000_0000: 0x0080_0000_0000_0000, 0x0080_8080_0000_0080: 0x0080_0000_0000_0000, 0x0080_8080_0000_8000: 0x0080_0000_0000_0000, 0x0080_8080_0000_8080: 0x0080_0000_0000_0000,
+ 0x0080_8080_0080_0000: 0x0080_0000_0000_0000, 0x0080_8080_0080_0080: 0x0080_0000_0000_0000, 0x0080_8080_0080_8000: 0x0080_0000_0000_0000, 0x0080_8080_0080_8080: 0x0080_0000_0000_0000,
+ 0x0080_8080_8000_0000: 0x0080_0000_0000_0000, 0x0080_8080_8000_0080: 0x0080_0000_0000_0000, 0x0080_8080_8000_8000: 0x0080_0000_0000_0000, 0x0080_8080_8000_8080: 0x0080_0000_0000_0000,
+ 0x0080_8080_8080_0000: 0x0080_0000_0000_0000, 0x0080_8080_8080_0080: 0x0080_0000_0000_0000, 0x0080_8080_8080_8000: 0x0080_0000_0000_0000, 0x0080_8080_8080_8080: 0x0080_0000_0000_0000,
+ },
+)
+LU_MASK = (
+ {
+ 0x0000_0000_0000_0000: 0x8040_2010_0804_0200, 0x0000_0000_0000_0200: 0x0000_0000_0000_0200, 0x0000_0000_0004_0000: 0x0000_0000_0004_0200, 0x0000_0000_0004_0200: 0x0000_0000_0000_0200,
+ 0x0000_0000_0800_0000: 0x0000_0000_0804_0200, 0x0000_0000_0800_0200: 0x0000_0000_0000_0200, 0x0000_0000_0804_0000: 0x0000_0000_0004_0200, 0x0000_0000_0804_0200: 0x0000_0000_0000_0200,
+ 0x0000_0010_0000_0000: 0x0000_0010_0804_0200, 0x0000_0010_0000_0200: 0x0000_0000_0000_0200, 0x0000_0010_0004_0000: 0x0000_0000_0004_0200, 0x0000_0010_0004_0200: 0x0000_0000_0000_0200,
+ 0x0000_0010_0800_0000: 0x0000_0000_0804_0200, 0x0000_0010_0800_0200: 0x0000_0000_0000_0200, 0x0000_0010_0804_0000: 0x0000_0000_0004_0200, 0x0000_0010_0804_0200: 0x0000_0000_0000_0200,
+ 0x0000_2000_0000_0000: 0x0000_2010_0804_0200, 0x0000_2000_0000_0200: 0x0000_0000_0000_0200, 0x0000_2000_0004_0000: 0x0000_0000_0004_0200, 0x0000_2000_0004_0200: 0x0000_0000_0000_0200,
+ 0x0000_2000_0800_0000: 0x0000_0000_0804_0200, 0x0000_2000_0800_0200: 0x0000_0000_0000_0200, 0x0000_2000_0804_0000: 0x0000_0000_0004_0200, 0x0000_2000_0804_0200: 0x0000_0000_0000_0200,
+ 0x0000_2010_0000_0000: 0x0000_0010_0804_0200, 0x0000_2010_0000_0200: 0x0000_0000_0000_0200, 0x0000_2010_0004_0000: 0x0000_0000_0004_0200, 0x0000_2010_0004_0200: 0x0000_0000_0000_0200,
+ 0x0000_2010_0800_0000: 0x0000_0000_0804_0200, 0x0000_2010_0800_0200: 0x0000_0000_0000_0200, 0x0000_2010_0804_0000: 0x0000_0000_0004_0200, 0x0000_2010_0804_0200: 0x0000_0000_0000_0200,
+ 0x0040_0000_0000_0000: 0x0040_2010_0804_0200, 0x0040_0000_0000_0200: 0x0000_0000_0000_0200, 0x0040_0000_0004_0000: 0x0000_0000_0004_0200, 0x0040_0000_0004_0200: 0x0000_0000_0000_0200,
+ 0x0040_0000_0800_0000: 0x0000_0000_0804_0200, 0x0040_0000_0800_0200: 0x0000_0000_0000_0200, 0x0040_0000_0804_0000: 0x0000_0000_0004_0200, 0x0040_0000_0804_0200: 0x0000_0000_0000_0200,
+ 0x0040_0010_0000_0000: 0x0000_0010_0804_0200, 0x0040_0010_0000_0200: 0x0000_0000_0000_0200, 0x0040_0010_0004_0000: 0x0000_0000_0004_0200, 0x0040_0010_0004_0200: 0x0000_0000_0000_0200,
+ 0x0040_0010_0800_0000: 0x0000_0000_0804_0200, 0x0040_0010_0800_0200: 0x0000_0000_0000_0200, 0x0040_0010_0804_0000: 0x0000_0000_0004_0200, 0x0040_0010_0804_0200: 0x0000_0000_0000_0200,
+ 0x0040_2000_0000_0000: 0x0000_2010_0804_0200, 0x0040_2000_0000_0200: 0x0000_0000_0000_0200, 0x0040_2000_0004_0000: 0x0000_0000_0004_0200, 0x0040_2000_0004_0200: 0x0000_0000_0000_0200,
+ 0x0040_2000_0800_0000: 0x0000_0000_0804_0200, 0x0040_2000_0800_0200: 0x0000_0000_0000_0200, 0x0040_2000_0804_0000: 0x0000_0000_0004_0200, 0x0040_2000_0804_0200: 0x0000_0000_0000_0200,
+ 0x0040_2010_0000_0000: 0x0000_0010_0804_0200, 0x0040_2010_0000_0200: 0x0000_0000_0000_0200, 0x0040_2010_0004_0000: 0x0000_0000_0004_0200, 0x0040_2010_0004_0200: 0x0000_0000_0000_0200,
+ 0x0040_2010_0800_0000: 0x0000_0000_0804_0200, 0x0040_2010_0800_0200: 0x0000_0000_0000_0200, 0x0040_2010_0804_0000: 0x0000_0000_0004_0200, 0x0040_2010_0804_0200: 0x0000_0000_0000_0200,
+ 0x8000_0000_0000_0000: 0x8040_2010_0804_0200, 0x8000_0000_0000_0200: 0x0000_0000_0000_0200, 0x8000_0000_0004_0000: 0x0000_0000_0004_0200, 0x8000_0000_0004_0200: 0x0000_0000_0000_0200,
+ 0x8000_0000_0800_0000: 0x0000_0000_0804_0200, 0x8000_0000_0800_0200: 0x0000_0000_0000_0200, 0x8000_0000_0804_0000: 0x0000_0000_0004_0200, 0x8000_0000_0804_0200: 0x0000_0000_0000_0200,
+ 0x8000_0010_0000_0000: 0x0000_0010_0804_0200, 0x8000_0010_0000_0200: 0x0000_0000_0000_0200, 0x8000_0010_0004_0000: 0x0000_0000_0004_0200, 0x8000_0010_0004_0200: 0x0000_0000_0000_0200,
+ 0x8000_0010_0800_0000: 0x0000_0000_0804_0200, 0x8000_0010_0800_0200: 0x0000_0000_0000_0200, 0x8000_0010_0804_0000: 0x0000_0000_0004_0200, 0x8000_0010_0804_0200: 0x0000_0000_0000_0200,
+ 0x8000_2000_0000_0000: 0x0000_2010_0804_0200, 0x8000_2000_0000_0200: 0x0000_0000_0000_0200, 0x8000_2000_0004_0000: 0x0000_0000_0004_0200, 0x8000_2000_0004_0200: 0x0000_0000_0000_0200,
+ 0x8000_2000_0800_0000: 0x0000_0000_0804_0200, 0x8000_2000_0800_0200: 0x0000_0000_0000_0200, 0x8000_2000_0804_0000: 0x0000_0000_0004_0200, 0x8000_2000_0804_0200: 0x0000_0000_0000_0200,
+ 0x8000_2010_0000_0000: 0x0000_0010_0804_0200, 0x8000_2010_0000_0200: 0x0000_0000_0000_0200, 0x8000_2010_0004_0000: 0x0000_0000_0004_0200, 0x8000_2010_0004_0200: 0x0000_0000_0000_0200,
+ 0x8000_2010_0800_0000: 0x0000_0000_0804_0200, 0x8000_2010_0800_0200: 0x0000_0000_0000_0200, 0x8000_2010_0804_0000: 0x0000_0000_0004_0200, 0x8000_2010_0804_0200: 0x0000_0000_0000_0200,
+ 0x8040_0000_0000_0000: 0x0040_2010_0804_0200, 0x8040_0000_0000_0200: 0x0000_0000_0000_0200, 0x8040_0000_0004_0000: 0x0000_0000_0004_0200, 0x8040_0000_0004_0200: 0x0000_0000_0000_0200,
+ 0x8040_0000_0800_0000: 0x0000_0000_0804_0200, 0x8040_0000_0800_0200: 0x0000_0000_0000_0200, 0x8040_0000_0804_0000: 0x0000_0000_0004_0200, 0x8040_0000_0804_0200: 0x0000_0000_0000_0200,
+ 0x8040_0010_0000_0000: 0x0000_0010_0804_0200, 0x8040_0010_0000_0200: 0x0000_0000_0000_0200, 0x8040_0010_0004_0000: 0x0000_0000_0004_0200, 0x8040_0010_0004_0200: 0x0000_0000_0000_0200,
+ 0x8040_0010_0800_0000: 0x0000_0000_0804_0200, 0x8040_0010_0800_0200: 0x0000_0000_0000_0200, 0x8040_0010_0804_0000: 0x0000_0000_0004_0200, 0x8040_0010_0804_0200: 0x0000_0000_0000_0200,
+ 0x8040_2000_0000_0000: 0x0000_2010_0804_0200, 0x8040_2000_0000_0200: 0x0000_0000_0000_0200, 0x8040_2000_0004_0000: 0x0000_0000_0004_0200, 0x8040_2000_0004_0200: 0x0000_0000_0000_0200,
+ 0x8040_2000_0800_0000: 0x0000_0000_0804_0200, 0x8040_2000_0800_0200: 0x0000_0000_0000_0200, 0x8040_2000_0804_0000: 0x0000_0000_0004_0200, 0x8040_2000_0804_0200: 0x0000_0000_0000_0200,
+ 0x8040_2010_0000_0000: 0x0000_0010_0804_0200, 0x8040_2010_0000_0200: 0x0000_0000_0000_0200, 0x8040_2010_0004_0000: 0x0000_0000_0004_0200, 0x8040_2010_0004_0200: 0x0000_0000_0000_0200,
+ 0x8040_2010_0800_0000: 0x0000_0000_0804_0200, 0x8040_2010_0800_0200: 0x0000_0000_0000_0200, 0x8040_2010_0804_0000: 0x0000_0000_0004_0200, 0x8040_2010_0804_0200: 0x0000_0000_0000_0200,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0080_4020_1008_0400, 0x0000_0000_0000_0400: 0x0000_0000_0000_0400, 0x0000_0000_0008_0000: 0x0000_0000_0008_0400, 0x0000_0000_0008_0400: 0x0000_0000_0000_0400,
+ 0x0000_0000_1000_0000: 0x0000_0000_1008_0400, 0x0000_0000_1000_0400: 0x0000_0000_0000_0400, 0x0000_0000_1008_0000: 0x0000_0000_0008_0400, 0x0000_0000_1008_0400: 0x0000_0000_0000_0400,
+ 0x0000_0020_0000_0000: 0x0000_0020_1008_0400, 0x0000_0020_0000_0400: 0x0000_0000_0000_0400, 0x0000_0020_0008_0000: 0x0000_0000_0008_0400, 0x0000_0020_0008_0400: 0x0000_0000_0000_0400,
+ 0x0000_0020_1000_0000: 0x0000_0000_1008_0400, 0x0000_0020_1000_0400: 0x0000_0000_0000_0400, 0x0000_0020_1008_0000: 0x0000_0000_0008_0400, 0x0000_0020_1008_0400: 0x0000_0000_0000_0400,
+ 0x0000_4000_0000_0000: 0x0000_4020_1008_0400, 0x0000_4000_0000_0400: 0x0000_0000_0000_0400, 0x0000_4000_0008_0000: 0x0000_0000_0008_0400, 0x0000_4000_0008_0400: 0x0000_0000_0000_0400,
+ 0x0000_4000_1000_0000: 0x0000_0000_1008_0400, 0x0000_4000_1000_0400: 0x0000_0000_0000_0400, 0x0000_4000_1008_0000: 0x0000_0000_0008_0400, 0x0000_4000_1008_0400: 0x0000_0000_0000_0400,
+ 0x0000_4020_0000_0000: 0x0000_0020_1008_0400, 0x0000_4020_0000_0400: 0x0000_0000_0000_0400, 0x0000_4020_0008_0000: 0x0000_0000_0008_0400, 0x0000_4020_0008_0400: 0x0000_0000_0000_0400,
+ 0x0000_4020_1000_0000: 0x0000_0000_1008_0400, 0x0000_4020_1000_0400: 0x0000_0000_0000_0400, 0x0000_4020_1008_0000: 0x0000_0000_0008_0400, 0x0000_4020_1008_0400: 0x0000_0000_0000_0400,
+ 0x0080_0000_0000_0000: 0x0080_4020_1008_0400, 0x0080_0000_0000_0400: 0x0000_0000_0000_0400, 0x0080_0000_0008_0000: 0x0000_0000_0008_0400, 0x0080_0000_0008_0400: 0x0000_0000_0000_0400,
+ 0x0080_0000_1000_0000: 0x0000_0000_1008_0400, 0x0080_0000_1000_0400: 0x0000_0000_0000_0400, 0x0080_0000_1008_0000: 0x0000_0000_0008_0400, 0x0080_0000_1008_0400: 0x0000_0000_0000_0400,
+ 0x0080_0020_0000_0000: 0x0000_0020_1008_0400, 0x0080_0020_0000_0400: 0x0000_0000_0000_0400, 0x0080_0020_0008_0000: 0x0000_0000_0008_0400, 0x0080_0020_0008_0400: 0x0000_0000_0000_0400,
+ 0x0080_0020_1000_0000: 0x0000_0000_1008_0400, 0x0080_0020_1000_0400: 0x0000_0000_0000_0400, 0x0080_0020_1008_0000: 0x0000_0000_0008_0400, 0x0080_0020_1008_0400: 0x0000_0000_0000_0400,
+ 0x0080_4000_0000_0000: 0x0000_4020_1008_0400, 0x0080_4000_0000_0400: 0x0000_0000_0000_0400, 0x0080_4000_0008_0000: 0x0000_0000_0008_0400, 0x0080_4000_0008_0400: 0x0000_0000_0000_0400,
+ 0x0080_4000_1000_0000: 0x0000_0000_1008_0400, 0x0080_4000_1000_0400: 0x0000_0000_0000_0400, 0x0080_4000_1008_0000: 0x0000_0000_0008_0400, 0x0080_4000_1008_0400: 0x0000_0000_0000_0400,
+ 0x0080_4020_0000_0000: 0x0000_0020_1008_0400, 0x0080_4020_0000_0400: 0x0000_0000_0000_0400, 0x0080_4020_0008_0000: 0x0000_0000_0008_0400, 0x0080_4020_0008_0400: 0x0000_0000_0000_0400,
+ 0x0080_4020_1000_0000: 0x0000_0000_1008_0400, 0x0080_4020_1000_0400: 0x0000_0000_0000_0400, 0x0080_4020_1008_0000: 0x0000_0000_0008_0400, 0x0080_4020_1008_0400: 0x0000_0000_0000_0400,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_8040_2010_0800, 0x0000_0000_0000_0800: 0x0000_0000_0000_0800, 0x0000_0000_0010_0000: 0x0000_0000_0010_0800, 0x0000_0000_0010_0800: 0x0000_0000_0000_0800,
+ 0x0000_0000_2000_0000: 0x0000_0000_2010_0800, 0x0000_0000_2000_0800: 0x0000_0000_0000_0800, 0x0000_0000_2010_0000: 0x0000_0000_0010_0800, 0x0000_0000_2010_0800: 0x0000_0000_0000_0800,
+ 0x0000_0040_0000_0000: 0x0000_0040_2010_0800, 0x0000_0040_0000_0800: 0x0000_0000_0000_0800, 0x0000_0040_0010_0000: 0x0000_0000_0010_0800, 0x0000_0040_0010_0800: 0x0000_0000_0000_0800,
+ 0x0000_0040_2000_0000: 0x0000_0000_2010_0800, 0x0000_0040_2000_0800: 0x0000_0000_0000_0800, 0x0000_0040_2010_0000: 0x0000_0000_0010_0800, 0x0000_0040_2010_0800: 0x0000_0000_0000_0800,
+ 0x0000_8000_0000_0000: 0x0000_8040_2010_0800, 0x0000_8000_0000_0800: 0x0000_0000_0000_0800, 0x0000_8000_0010_0000: 0x0000_0000_0010_0800, 0x0000_8000_0010_0800: 0x0000_0000_0000_0800,
+ 0x0000_8000_2000_0000: 0x0000_0000_2010_0800, 0x0000_8000_2000_0800: 0x0000_0000_0000_0800, 0x0000_8000_2010_0000: 0x0000_0000_0010_0800, 0x0000_8000_2010_0800: 0x0000_0000_0000_0800,
+ 0x0000_8040_0000_0000: 0x0000_0040_2010_0800, 0x0000_8040_0000_0800: 0x0000_0000_0000_0800, 0x0000_8040_0010_0000: 0x0000_0000_0010_0800, 0x0000_8040_0010_0800: 0x0000_0000_0000_0800,
+ 0x0000_8040_2000_0000: 0x0000_0000_2010_0800, 0x0000_8040_2000_0800: 0x0000_0000_0000_0800, 0x0000_8040_2010_0000: 0x0000_0000_0010_0800, 0x0000_8040_2010_0800: 0x0000_0000_0000_0800,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0080_4020_1000, 0x0000_0000_0000_1000: 0x0000_0000_0000_1000, 0x0000_0000_0020_0000: 0x0000_0000_0020_1000, 0x0000_0000_0020_1000: 0x0000_0000_0000_1000,
+ 0x0000_0000_4000_0000: 0x0000_0000_4020_1000, 0x0000_0000_4000_1000: 0x0000_0000_0000_1000, 0x0000_0000_4020_0000: 0x0000_0000_0020_1000, 0x0000_0000_4020_1000: 0x0000_0000_0000_1000,
+ 0x0000_0080_0000_0000: 0x0000_0080_4020_1000, 0x0000_0080_0000_1000: 0x0000_0000_0000_1000, 0x0000_0080_0020_0000: 0x0000_0000_0020_1000, 0x0000_0080_0020_1000: 0x0000_0000_0000_1000,
+ 0x0000_0080_4000_0000: 0x0000_0000_4020_1000, 0x0000_0080_4000_1000: 0x0000_0000_0000_1000, 0x0000_0080_4020_0000: 0x0000_0000_0020_1000, 0x0000_0080_4020_1000: 0x0000_0000_0000_1000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_8040_2000, 0x0000_0000_0000_2000: 0x0000_0000_0000_2000, 0x0000_0000_0040_0000: 0x0000_0000_0040_2000, 0x0000_0000_0040_2000: 0x0000_0000_0000_2000,
+ 0x0000_0000_8000_0000: 0x0000_0000_8040_2000, 0x0000_0000_8000_2000: 0x0000_0000_0000_2000, 0x0000_0000_8040_0000: 0x0000_0000_0040_2000, 0x0000_0000_8040_2000: 0x0000_0000_0000_2000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0080_4000, 0x0000_0000_0000_4000: 0x0000_0000_0000_4000, 0x0000_0000_0080_0000: 0x0000_0000_0080_4000, 0x0000_0000_0080_4000: 0x0000_0000_0000_4000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_8000, 0x0000_0000_0000_8000: 0x0000_0000_0000_8000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x4020_1008_0402_0000, 0x0000_0000_0002_0000: 0x0000_0000_0002_0000, 0x0000_0000_0400_0000: 0x0000_0000_0402_0000, 0x0000_0000_0402_0000: 0x0000_0000_0002_0000,
+ 0x0000_0008_0000_0000: 0x0000_0008_0402_0000, 0x0000_0008_0002_0000: 0x0000_0000_0002_0000, 0x0000_0008_0400_0000: 0x0000_0000_0402_0000, 0x0000_0008_0402_0000: 0x0000_0000_0002_0000,
+ 0x0000_1000_0000_0000: 0x0000_1008_0402_0000, 0x0000_1000_0002_0000: 0x0000_0000_0002_0000, 0x0000_1000_0400_0000: 0x0000_0000_0402_0000, 0x0000_1000_0402_0000: 0x0000_0000_0002_0000,
+ 0x0000_1008_0000_0000: 0x0000_0008_0402_0000, 0x0000_1008_0002_0000: 0x0000_0000_0002_0000, 0x0000_1008_0400_0000: 0x0000_0000_0402_0000, 0x0000_1008_0402_0000: 0x0000_0000_0002_0000,
+ 0x0020_0000_0000_0000: 0x0020_1008_0402_0000, 0x0020_0000_0002_0000: 0x0000_0000_0002_0000, 0x0020_0000_0400_0000: 0x0000_0000_0402_0000, 0x0020_0000_0402_0000: 0x0000_0000_0002_0000,
+ 0x0020_0008_0000_0000: 0x0000_0008_0402_0000, 0x0020_0008_0002_0000: 0x0000_0000_0002_0000, 0x0020_0008_0400_0000: 0x0000_0000_0402_0000, 0x0020_0008_0402_0000: 0x0000_0000_0002_0000,
+ 0x0020_1000_0000_0000: 0x0000_1008_0402_0000, 0x0020_1000_0002_0000: 0x0000_0000_0002_0000, 0x0020_1000_0400_0000: 0x0000_0000_0402_0000, 0x0020_1000_0402_0000: 0x0000_0000_0002_0000,
+ 0x0020_1008_0000_0000: 0x0000_0008_0402_0000, 0x0020_1008_0002_0000: 0x0000_0000_0002_0000, 0x0020_1008_0400_0000: 0x0000_0000_0402_0000, 0x0020_1008_0402_0000: 0x0000_0000_0002_0000,
+ 0x4000_0000_0000_0000: 0x4020_1008_0402_0000, 0x4000_0000_0002_0000: 0x0000_0000_0002_0000, 0x4000_0000_0400_0000: 0x0000_0000_0402_0000, 0x4000_0000_0402_0000: 0x0000_0000_0002_0000,
+ 0x4000_0008_0000_0000: 0x0000_0008_0402_0000, 0x4000_0008_0002_0000: 0x0000_0000_0002_0000, 0x4000_0008_0400_0000: 0x0000_0000_0402_0000, 0x4000_0008_0402_0000: 0x0000_0000_0002_0000,
+ 0x4000_1000_0000_0000: 0x0000_1008_0402_0000, 0x4000_1000_0002_0000: 0x0000_0000_0002_0000, 0x4000_1000_0400_0000: 0x0000_0000_0402_0000, 0x4000_1000_0402_0000: 0x0000_0000_0002_0000,
+ 0x4000_1008_0000_0000: 0x0000_0008_0402_0000, 0x4000_1008_0002_0000: 0x0000_0000_0002_0000, 0x4000_1008_0400_0000: 0x0000_0000_0402_0000, 0x4000_1008_0402_0000: 0x0000_0000_0002_0000,
+ 0x4020_0000_0000_0000: 0x0020_1008_0402_0000, 0x4020_0000_0002_0000: 0x0000_0000_0002_0000, 0x4020_0000_0400_0000: 0x0000_0000_0402_0000, 0x4020_0000_0402_0000: 0x0000_0000_0002_0000,
+ 0x4020_0008_0000_0000: 0x0000_0008_0402_0000, 0x4020_0008_0002_0000: 0x0000_0000_0002_0000, 0x4020_0008_0400_0000: 0x0000_0000_0402_0000, 0x4020_0008_0402_0000: 0x0000_0000_0002_0000,
+ 0x4020_1000_0000_0000: 0x0000_1008_0402_0000, 0x4020_1000_0002_0000: 0x0000_0000_0002_0000, 0x4020_1000_0400_0000: 0x0000_0000_0402_0000, 0x4020_1000_0402_0000: 0x0000_0000_0002_0000,
+ 0x4020_1008_0000_0000: 0x0000_0008_0402_0000, 0x4020_1008_0002_0000: 0x0000_0000_0002_0000, 0x4020_1008_0400_0000: 0x0000_0000_0402_0000, 0x4020_1008_0402_0000: 0x0000_0000_0002_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x8040_2010_0804_0000, 0x0000_0000_0004_0000: 0x0000_0000_0004_0000, 0x0000_0000_0800_0000: 0x0000_0000_0804_0000, 0x0000_0000_0804_0000: 0x0000_0000_0004_0000,
+ 0x0000_0010_0000_0000: 0x0000_0010_0804_0000, 0x0000_0010_0004_0000: 0x0000_0000_0004_0000, 0x0000_0010_0800_0000: 0x0000_0000_0804_0000, 0x0000_0010_0804_0000: 0x0000_0000_0004_0000,
+ 0x0000_2000_0000_0000: 0x0000_2010_0804_0000, 0x0000_2000_0004_0000: 0x0000_0000_0004_0000, 0x0000_2000_0800_0000: 0x0000_0000_0804_0000, 0x0000_2000_0804_0000: 0x0000_0000_0004_0000,
+ 0x0000_2010_0000_0000: 0x0000_0010_0804_0000, 0x0000_2010_0004_0000: 0x0000_0000_0004_0000, 0x0000_2010_0800_0000: 0x0000_0000_0804_0000, 0x0000_2010_0804_0000: 0x0000_0000_0004_0000,
+ 0x0040_0000_0000_0000: 0x0040_2010_0804_0000, 0x0040_0000_0004_0000: 0x0000_0000_0004_0000, 0x0040_0000_0800_0000: 0x0000_0000_0804_0000, 0x0040_0000_0804_0000: 0x0000_0000_0004_0000,
+ 0x0040_0010_0000_0000: 0x0000_0010_0804_0000, 0x0040_0010_0004_0000: 0x0000_0000_0004_0000, 0x0040_0010_0800_0000: 0x0000_0000_0804_0000, 0x0040_0010_0804_0000: 0x0000_0000_0004_0000,
+ 0x0040_2000_0000_0000: 0x0000_2010_0804_0000, 0x0040_2000_0004_0000: 0x0000_0000_0004_0000, 0x0040_2000_0800_0000: 0x0000_0000_0804_0000, 0x0040_2000_0804_0000: 0x0000_0000_0004_0000,
+ 0x0040_2010_0000_0000: 0x0000_0010_0804_0000, 0x0040_2010_0004_0000: 0x0000_0000_0004_0000, 0x0040_2010_0800_0000: 0x0000_0000_0804_0000, 0x0040_2010_0804_0000: 0x0000_0000_0004_0000,
+ 0x8000_0000_0000_0000: 0x8040_2010_0804_0000, 0x8000_0000_0004_0000: 0x0000_0000_0004_0000, 0x8000_0000_0800_0000: 0x0000_0000_0804_0000, 0x8000_0000_0804_0000: 0x0000_0000_0004_0000,
+ 0x8000_0010_0000_0000: 0x0000_0010_0804_0000, 0x8000_0010_0004_0000: 0x0000_0000_0004_0000, 0x8000_0010_0800_0000: 0x0000_0000_0804_0000, 0x8000_0010_0804_0000: 0x0000_0000_0004_0000,
+ 0x8000_2000_0000_0000: 0x0000_2010_0804_0000, 0x8000_2000_0004_0000: 0x0000_0000_0004_0000, 0x8000_2000_0800_0000: 0x0000_0000_0804_0000, 0x8000_2000_0804_0000: 0x0000_0000_0004_0000,
+ 0x8000_2010_0000_0000: 0x0000_0010_0804_0000, 0x8000_2010_0004_0000: 0x0000_0000_0004_0000, 0x8000_2010_0800_0000: 0x0000_0000_0804_0000, 0x8000_2010_0804_0000: 0x0000_0000_0004_0000,
+ 0x8040_0000_0000_0000: 0x0040_2010_0804_0000, 0x8040_0000_0004_0000: 0x0000_0000_0004_0000, 0x8040_0000_0800_0000: 0x0000_0000_0804_0000, 0x8040_0000_0804_0000: 0x0000_0000_0004_0000,
+ 0x8040_0010_0000_0000: 0x0000_0010_0804_0000, 0x8040_0010_0004_0000: 0x0000_0000_0004_0000, 0x8040_0010_0800_0000: 0x0000_0000_0804_0000, 0x8040_0010_0804_0000: 0x0000_0000_0004_0000,
+ 0x8040_2000_0000_0000: 0x0000_2010_0804_0000, 0x8040_2000_0004_0000: 0x0000_0000_0004_0000, 0x8040_2000_0800_0000: 0x0000_0000_0804_0000, 0x8040_2000_0804_0000: 0x0000_0000_0004_0000,
+ 0x8040_2010_0000_0000: 0x0000_0010_0804_0000, 0x8040_2010_0004_0000: 0x0000_0000_0004_0000, 0x8040_2010_0800_0000: 0x0000_0000_0804_0000, 0x8040_2010_0804_0000: 0x0000_0000_0004_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0080_4020_1008_0000, 0x0000_0000_0008_0000: 0x0000_0000_0008_0000, 0x0000_0000_1000_0000: 0x0000_0000_1008_0000, 0x0000_0000_1008_0000: 0x0000_0000_0008_0000,
+ 0x0000_0020_0000_0000: 0x0000_0020_1008_0000, 0x0000_0020_0008_0000: 0x0000_0000_0008_0000, 0x0000_0020_1000_0000: 0x0000_0000_1008_0000, 0x0000_0020_1008_0000: 0x0000_0000_0008_0000,
+ 0x0000_4000_0000_0000: 0x0000_4020_1008_0000, 0x0000_4000_0008_0000: 0x0000_0000_0008_0000, 0x0000_4000_1000_0000: 0x0000_0000_1008_0000, 0x0000_4000_1008_0000: 0x0000_0000_0008_0000,
+ 0x0000_4020_0000_0000: 0x0000_0020_1008_0000, 0x0000_4020_0008_0000: 0x0000_0000_0008_0000, 0x0000_4020_1000_0000: 0x0000_0000_1008_0000, 0x0000_4020_1008_0000: 0x0000_0000_0008_0000,
+ 0x0080_0000_0000_0000: 0x0080_4020_1008_0000, 0x0080_0000_0008_0000: 0x0000_0000_0008_0000, 0x0080_0000_1000_0000: 0x0000_0000_1008_0000, 0x0080_0000_1008_0000: 0x0000_0000_0008_0000,
+ 0x0080_0020_0000_0000: 0x0000_0020_1008_0000, 0x0080_0020_0008_0000: 0x0000_0000_0008_0000, 0x0080_0020_1000_0000: 0x0000_0000_1008_0000, 0x0080_0020_1008_0000: 0x0000_0000_0008_0000,
+ 0x0080_4000_0000_0000: 0x0000_4020_1008_0000, 0x0080_4000_0008_0000: 0x0000_0000_0008_0000, 0x0080_4000_1000_0000: 0x0000_0000_1008_0000, 0x0080_4000_1008_0000: 0x0000_0000_0008_0000,
+ 0x0080_4020_0000_0000: 0x0000_0020_1008_0000, 0x0080_4020_0008_0000: 0x0000_0000_0008_0000, 0x0080_4020_1000_0000: 0x0000_0000_1008_0000, 0x0080_4020_1008_0000: 0x0000_0000_0008_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_8040_2010_0000, 0x0000_0000_0010_0000: 0x0000_0000_0010_0000, 0x0000_0000_2000_0000: 0x0000_0000_2010_0000, 0x0000_0000_2010_0000: 0x0000_0000_0010_0000,
+ 0x0000_0040_0000_0000: 0x0000_0040_2010_0000, 0x0000_0040_0010_0000: 0x0000_0000_0010_0000, 0x0000_0040_2000_0000: 0x0000_0000_2010_0000, 0x0000_0040_2010_0000: 0x0000_0000_0010_0000,
+ 0x0000_8000_0000_0000: 0x0000_8040_2010_0000, 0x0000_8000_0010_0000: 0x0000_0000_0010_0000, 0x0000_8000_2000_0000: 0x0000_0000_2010_0000, 0x0000_8000_2010_0000: 0x0000_0000_0010_0000,
+ 0x0000_8040_0000_0000: 0x0000_0040_2010_0000, 0x0000_8040_0010_0000: 0x0000_0000_0010_0000, 0x0000_8040_2000_0000: 0x0000_0000_2010_0000, 0x0000_8040_2010_0000: 0x0000_0000_0010_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0080_4020_0000, 0x0000_0000_0020_0000: 0x0000_0000_0020_0000, 0x0000_0000_4000_0000: 0x0000_0000_4020_0000, 0x0000_0000_4020_0000: 0x0000_0000_0020_0000,
+ 0x0000_0080_0000_0000: 0x0000_0080_4020_0000, 0x0000_0080_0020_0000: 0x0000_0000_0020_0000, 0x0000_0080_4000_0000: 0x0000_0000_4020_0000, 0x0000_0080_4020_0000: 0x0000_0000_0020_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_8040_0000, 0x0000_0000_0040_0000: 0x0000_0000_0040_0000, 0x0000_0000_8000_0000: 0x0000_0000_8040_0000, 0x0000_0000_8040_0000: 0x0000_0000_0040_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0080_0000, 0x0000_0000_0080_0000: 0x0000_0000_0080_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x2010_0804_0200_0000, 0x0000_0000_0200_0000: 0x0000_0000_0200_0000, 0x0000_0004_0000_0000: 0x0000_0004_0200_0000, 0x0000_0004_0200_0000: 0x0000_0000_0200_0000,
+ 0x0000_0800_0000_0000: 0x0000_0804_0200_0000, 0x0000_0800_0200_0000: 0x0000_0000_0200_0000, 0x0000_0804_0000_0000: 0x0000_0004_0200_0000, 0x0000_0804_0200_0000: 0x0000_0000_0200_0000,
+ 0x0010_0000_0000_0000: 0x0010_0804_0200_0000, 0x0010_0000_0200_0000: 0x0000_0000_0200_0000, 0x0010_0004_0000_0000: 0x0000_0004_0200_0000, 0x0010_0004_0200_0000: 0x0000_0000_0200_0000,
+ 0x0010_0800_0000_0000: 0x0000_0804_0200_0000, 0x0010_0800_0200_0000: 0x0000_0000_0200_0000, 0x0010_0804_0000_0000: 0x0000_0004_0200_0000, 0x0010_0804_0200_0000: 0x0000_0000_0200_0000,
+ 0x2000_0000_0000_0000: 0x2010_0804_0200_0000, 0x2000_0000_0200_0000: 0x0000_0000_0200_0000, 0x2000_0004_0000_0000: 0x0000_0004_0200_0000, 0x2000_0004_0200_0000: 0x0000_0000_0200_0000,
+ 0x2000_0800_0000_0000: 0x0000_0804_0200_0000, 0x2000_0800_0200_0000: 0x0000_0000_0200_0000, 0x2000_0804_0000_0000: 0x0000_0004_0200_0000, 0x2000_0804_0200_0000: 0x0000_0000_0200_0000,
+ 0x2010_0000_0000_0000: 0x0010_0804_0200_0000, 0x2010_0000_0200_0000: 0x0000_0000_0200_0000, 0x2010_0004_0000_0000: 0x0000_0004_0200_0000, 0x2010_0004_0200_0000: 0x0000_0000_0200_0000,
+ 0x2010_0800_0000_0000: 0x0000_0804_0200_0000, 0x2010_0800_0200_0000: 0x0000_0000_0200_0000, 0x2010_0804_0000_0000: 0x0000_0004_0200_0000, 0x2010_0804_0200_0000: 0x0000_0000_0200_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x4020_1008_0400_0000, 0x0000_0000_0400_0000: 0x0000_0000_0400_0000, 0x0000_0008_0000_0000: 0x0000_0008_0400_0000, 0x0000_0008_0400_0000: 0x0000_0000_0400_0000,
+ 0x0000_1000_0000_0000: 0x0000_1008_0400_0000, 0x0000_1000_0400_0000: 0x0000_0000_0400_0000, 0x0000_1008_0000_0000: 0x0000_0008_0400_0000, 0x0000_1008_0400_0000: 0x0000_0000_0400_0000,
+ 0x0020_0000_0000_0000: 0x0020_1008_0400_0000, 0x0020_0000_0400_0000: 0x0000_0000_0400_0000, 0x0020_0008_0000_0000: 0x0000_0008_0400_0000, 0x0020_0008_0400_0000: 0x0000_0000_0400_0000,
+ 0x0020_1000_0000_0000: 0x0000_1008_0400_0000, 0x0020_1000_0400_0000: 0x0000_0000_0400_0000, 0x0020_1008_0000_0000: 0x0000_0008_0400_0000, 0x0020_1008_0400_0000: 0x0000_0000_0400_0000,
+ 0x4000_0000_0000_0000: 0x4020_1008_0400_0000, 0x4000_0000_0400_0000: 0x0000_0000_0400_0000, 0x4000_0008_0000_0000: 0x0000_0008_0400_0000, 0x4000_0008_0400_0000: 0x0000_0000_0400_0000,
+ 0x4000_1000_0000_0000: 0x0000_1008_0400_0000, 0x4000_1000_0400_0000: 0x0000_0000_0400_0000, 0x4000_1008_0000_0000: 0x0000_0008_0400_0000, 0x4000_1008_0400_0000: 0x0000_0000_0400_0000,
+ 0x4020_0000_0000_0000: 0x0020_1008_0400_0000, 0x4020_0000_0400_0000: 0x0000_0000_0400_0000, 0x4020_0008_0000_0000: 0x0000_0008_0400_0000, 0x4020_0008_0400_0000: 0x0000_0000_0400_0000,
+ 0x4020_1000_0000_0000: 0x0000_1008_0400_0000, 0x4020_1000_0400_0000: 0x0000_0000_0400_0000, 0x4020_1008_0000_0000: 0x0000_0008_0400_0000, 0x4020_1008_0400_0000: 0x0000_0000_0400_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x8040_2010_0800_0000, 0x0000_0000_0800_0000: 0x0000_0000_0800_0000, 0x0000_0010_0000_0000: 0x0000_0010_0800_0000, 0x0000_0010_0800_0000: 0x0000_0000_0800_0000,
+ 0x0000_2000_0000_0000: 0x0000_2010_0800_0000, 0x0000_2000_0800_0000: 0x0000_0000_0800_0000, 0x0000_2010_0000_0000: 0x0000_0010_0800_0000, 0x0000_2010_0800_0000: 0x0000_0000_0800_0000,
+ 0x0040_0000_0000_0000: 0x0040_2010_0800_0000, 0x0040_0000_0800_0000: 0x0000_0000_0800_0000, 0x0040_0010_0000_0000: 0x0000_0010_0800_0000, 0x0040_0010_0800_0000: 0x0000_0000_0800_0000,
+ 0x0040_2000_0000_0000: 0x0000_2010_0800_0000, 0x0040_2000_0800_0000: 0x0000_0000_0800_0000, 0x0040_2010_0000_0000: 0x0000_0010_0800_0000, 0x0040_2010_0800_0000: 0x0000_0000_0800_0000,
+ 0x8000_0000_0000_0000: 0x8040_2010_0800_0000, 0x8000_0000_0800_0000: 0x0000_0000_0800_0000, 0x8000_0010_0000_0000: 0x0000_0010_0800_0000, 0x8000_0010_0800_0000: 0x0000_0000_0800_0000,
+ 0x8000_2000_0000_0000: 0x0000_2010_0800_0000, 0x8000_2000_0800_0000: 0x0000_0000_0800_0000, 0x8000_2010_0000_0000: 0x0000_0010_0800_0000, 0x8000_2010_0800_0000: 0x0000_0000_0800_0000,
+ 0x8040_0000_0000_0000: 0x0040_2010_0800_0000, 0x8040_0000_0800_0000: 0x0000_0000_0800_0000, 0x8040_0010_0000_0000: 0x0000_0010_0800_0000, 0x8040_0010_0800_0000: 0x0000_0000_0800_0000,
+ 0x8040_2000_0000_0000: 0x0000_2010_0800_0000, 0x8040_2000_0800_0000: 0x0000_0000_0800_0000, 0x8040_2010_0000_0000: 0x0000_0010_0800_0000, 0x8040_2010_0800_0000: 0x0000_0000_0800_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0080_4020_1000_0000, 0x0000_0000_1000_0000: 0x0000_0000_1000_0000, 0x0000_0020_0000_0000: 0x0000_0020_1000_0000, 0x0000_0020_1000_0000: 0x0000_0000_1000_0000,
+ 0x0000_4000_0000_0000: 0x0000_4020_1000_0000, 0x0000_4000_1000_0000: 0x0000_0000_1000_0000, 0x0000_4020_0000_0000: 0x0000_0020_1000_0000, 0x0000_4020_1000_0000: 0x0000_0000_1000_0000,
+ 0x0080_0000_0000_0000: 0x0080_4020_1000_0000, 0x0080_0000_1000_0000: 0x0000_0000_1000_0000, 0x0080_0020_0000_0000: 0x0000_0020_1000_0000, 0x0080_0020_1000_0000: 0x0000_0000_1000_0000,
+ 0x0080_4000_0000_0000: 0x0000_4020_1000_0000, 0x0080_4000_1000_0000: 0x0000_0000_1000_0000, 0x0080_4020_0000_0000: 0x0000_0020_1000_0000, 0x0080_4020_1000_0000: 0x0000_0000_1000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_8040_2000_0000, 0x0000_0000_2000_0000: 0x0000_0000_2000_0000, 0x0000_0040_0000_0000: 0x0000_0040_2000_0000, 0x0000_0040_2000_0000: 0x0000_0000_2000_0000,
+ 0x0000_8000_0000_0000: 0x0000_8040_2000_0000, 0x0000_8000_2000_0000: 0x0000_0000_2000_0000, 0x0000_8040_0000_0000: 0x0000_0040_2000_0000, 0x0000_8040_2000_0000: 0x0000_0000_2000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0080_4000_0000, 0x0000_0000_4000_0000: 0x0000_0000_4000_0000, 0x0000_0080_0000_0000: 0x0000_0080_4000_0000, 0x0000_0080_4000_0000: 0x0000_0000_4000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_8000_0000, 0x0000_0000_8000_0000: 0x0000_0000_8000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x1008_0402_0000_0000, 0x0000_0002_0000_0000: 0x0000_0002_0000_0000, 0x0000_0400_0000_0000: 0x0000_0402_0000_0000, 0x0000_0402_0000_0000: 0x0000_0002_0000_0000,
+ 0x0008_0000_0000_0000: 0x0008_0402_0000_0000, 0x0008_0002_0000_0000: 0x0000_0002_0000_0000, 0x0008_0400_0000_0000: 0x0000_0402_0000_0000, 0x0008_0402_0000_0000: 0x0000_0002_0000_0000,
+ 0x1000_0000_0000_0000: 0x1008_0402_0000_0000, 0x1000_0002_0000_0000: 0x0000_0002_0000_0000, 0x1000_0400_0000_0000: 0x0000_0402_0000_0000, 0x1000_0402_0000_0000: 0x0000_0002_0000_0000,
+ 0x1008_0000_0000_0000: 0x0008_0402_0000_0000, 0x1008_0002_0000_0000: 0x0000_0002_0000_0000, 0x1008_0400_0000_0000: 0x0000_0402_0000_0000, 0x1008_0402_0000_0000: 0x0000_0002_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x2010_0804_0000_0000, 0x0000_0004_0000_0000: 0x0000_0004_0000_0000, 0x0000_0800_0000_0000: 0x0000_0804_0000_0000, 0x0000_0804_0000_0000: 0x0000_0004_0000_0000,
+ 0x0010_0000_0000_0000: 0x0010_0804_0000_0000, 0x0010_0004_0000_0000: 0x0000_0004_0000_0000, 0x0010_0800_0000_0000: 0x0000_0804_0000_0000, 0x0010_0804_0000_0000: 0x0000_0004_0000_0000,
+ 0x2000_0000_0000_0000: 0x2010_0804_0000_0000, 0x2000_0004_0000_0000: 0x0000_0004_0000_0000, 0x2000_0800_0000_0000: 0x0000_0804_0000_0000, 0x2000_0804_0000_0000: 0x0000_0004_0000_0000,
+ 0x2010_0000_0000_0000: 0x0010_0804_0000_0000, 0x2010_0004_0000_0000: 0x0000_0004_0000_0000, 0x2010_0800_0000_0000: 0x0000_0804_0000_0000, 0x2010_0804_0000_0000: 0x0000_0004_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x4020_1008_0000_0000, 0x0000_0008_0000_0000: 0x0000_0008_0000_0000, 0x0000_1000_0000_0000: 0x0000_1008_0000_0000, 0x0000_1008_0000_0000: 0x0000_0008_0000_0000,
+ 0x0020_0000_0000_0000: 0x0020_1008_0000_0000, 0x0020_0008_0000_0000: 0x0000_0008_0000_0000, 0x0020_1000_0000_0000: 0x0000_1008_0000_0000, 0x0020_1008_0000_0000: 0x0000_0008_0000_0000,
+ 0x4000_0000_0000_0000: 0x4020_1008_0000_0000, 0x4000_0008_0000_0000: 0x0000_0008_0000_0000, 0x4000_1000_0000_0000: 0x0000_1008_0000_0000, 0x4000_1008_0000_0000: 0x0000_0008_0000_0000,
+ 0x4020_0000_0000_0000: 0x0020_1008_0000_0000, 0x4020_0008_0000_0000: 0x0000_0008_0000_0000, 0x4020_1000_0000_0000: 0x0000_1008_0000_0000, 0x4020_1008_0000_0000: 0x0000_0008_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x8040_2010_0000_0000, 0x0000_0010_0000_0000: 0x0000_0010_0000_0000, 0x0000_2000_0000_0000: 0x0000_2010_0000_0000, 0x0000_2010_0000_0000: 0x0000_0010_0000_0000,
+ 0x0040_0000_0000_0000: 0x0040_2010_0000_0000, 0x0040_0010_0000_0000: 0x0000_0010_0000_0000, 0x0040_2000_0000_0000: 0x0000_2010_0000_0000, 0x0040_2010_0000_0000: 0x0000_0010_0000_0000,
+ 0x8000_0000_0000_0000: 0x8040_2010_0000_0000, 0x8000_0010_0000_0000: 0x0000_0010_0000_0000, 0x8000_2000_0000_0000: 0x0000_2010_0000_0000, 0x8000_2010_0000_0000: 0x0000_0010_0000_0000,
+ 0x8040_0000_0000_0000: 0x0040_2010_0000_0000, 0x8040_0010_0000_0000: 0x0000_0010_0000_0000, 0x8040_2000_0000_0000: 0x0000_2010_0000_0000, 0x8040_2010_0000_0000: 0x0000_0010_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0080_4020_0000_0000, 0x0000_0020_0000_0000: 0x0000_0020_0000_0000, 0x0000_4000_0000_0000: 0x0000_4020_0000_0000, 0x0000_4020_0000_0000: 0x0000_0020_0000_0000,
+ 0x0080_0000_0000_0000: 0x0080_4020_0000_0000, 0x0080_0020_0000_0000: 0x0000_0020_0000_0000, 0x0080_4000_0000_0000: 0x0000_4020_0000_0000, 0x0080_4020_0000_0000: 0x0000_0020_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_8040_0000_0000, 0x0000_0040_0000_0000: 0x0000_0040_0000_0000, 0x0000_8000_0000_0000: 0x0000_8040_0000_0000, 0x0000_8040_0000_0000: 0x0000_0040_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0080_0000_0000, 0x0000_0080_0000_0000: 0x0000_0080_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0804_0200_0000_0000, 0x0000_0200_0000_0000: 0x0000_0200_0000_0000, 0x0004_0000_0000_0000: 0x0004_0200_0000_0000, 0x0004_0200_0000_0000: 0x0000_0200_0000_0000,
+ 0x0800_0000_0000_0000: 0x0804_0200_0000_0000, 0x0800_0200_0000_0000: 0x0000_0200_0000_0000, 0x0804_0000_0000_0000: 0x0004_0200_0000_0000, 0x0804_0200_0000_0000: 0x0000_0200_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x1008_0400_0000_0000, 0x0000_0400_0000_0000: 0x0000_0400_0000_0000, 0x0008_0000_0000_0000: 0x0008_0400_0000_0000, 0x0008_0400_0000_0000: 0x0000_0400_0000_0000,
+ 0x1000_0000_0000_0000: 0x1008_0400_0000_0000, 0x1000_0400_0000_0000: 0x0000_0400_0000_0000, 0x1008_0000_0000_0000: 0x0008_0400_0000_0000, 0x1008_0400_0000_0000: 0x0000_0400_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x2010_0800_0000_0000, 0x0000_0800_0000_0000: 0x0000_0800_0000_0000, 0x0010_0000_0000_0000: 0x0010_0800_0000_0000, 0x0010_0800_0000_0000: 0x0000_0800_0000_0000,
+ 0x2000_0000_0000_0000: 0x2010_0800_0000_0000, 0x2000_0800_0000_0000: 0x0000_0800_0000_0000, 0x2010_0000_0000_0000: 0x0010_0800_0000_0000, 0x2010_0800_0000_0000: 0x0000_0800_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x4020_1000_0000_0000, 0x0000_1000_0000_0000: 0x0000_1000_0000_0000, 0x0020_0000_0000_0000: 0x0020_1000_0000_0000, 0x0020_1000_0000_0000: 0x0000_1000_0000_0000,
+ 0x4000_0000_0000_0000: 0x4020_1000_0000_0000, 0x4000_1000_0000_0000: 0x0000_1000_0000_0000, 0x4020_0000_0000_0000: 0x0020_1000_0000_0000, 0x4020_1000_0000_0000: 0x0000_1000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x8040_2000_0000_0000, 0x0000_2000_0000_0000: 0x0000_2000_0000_0000, 0x0040_0000_0000_0000: 0x0040_2000_0000_0000, 0x0040_2000_0000_0000: 0x0000_2000_0000_0000,
+ 0x8000_0000_0000_0000: 0x8040_2000_0000_0000, 0x8000_2000_0000_0000: 0x0000_2000_0000_0000, 0x8040_0000_0000_0000: 0x0040_2000_0000_0000, 0x8040_2000_0000_0000: 0x0000_2000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0080_4000_0000_0000, 0x0000_4000_0000_0000: 0x0000_4000_0000_0000, 0x0080_0000_0000_0000: 0x0080_4000_0000_0000, 0x0080_4000_0000_0000: 0x0000_4000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_8000_0000_0000, 0x0000_8000_0000_0000: 0x0000_8000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0402_0000_0000_0000, 0x0002_0000_0000_0000: 0x0002_0000_0000_0000, 0x0400_0000_0000_0000: 0x0402_0000_0000_0000, 0x0402_0000_0000_0000: 0x0002_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0804_0000_0000_0000, 0x0004_0000_0000_0000: 0x0004_0000_0000_0000, 0x0800_0000_0000_0000: 0x0804_0000_0000_0000, 0x0804_0000_0000_0000: 0x0004_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x1008_0000_0000_0000, 0x0008_0000_0000_0000: 0x0008_0000_0000_0000, 0x1000_0000_0000_0000: 0x1008_0000_0000_0000, 0x1008_0000_0000_0000: 0x0008_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x2010_0000_0000_0000, 0x0010_0000_0000_0000: 0x0010_0000_0000_0000, 0x2000_0000_0000_0000: 0x2010_0000_0000_0000, 0x2010_0000_0000_0000: 0x0010_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x4020_0000_0000_0000, 0x0020_0000_0000_0000: 0x0020_0000_0000_0000, 0x4000_0000_0000_0000: 0x4020_0000_0000_0000, 0x4020_0000_0000_0000: 0x0020_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x8040_0000_0000_0000, 0x0040_0000_0000_0000: 0x0040_0000_0000_0000, 0x8000_0000_0000_0000: 0x8040_0000_0000_0000, 0x8040_0000_0000_0000: 0x0040_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0080_0000_0000_0000, 0x0080_0000_0000_0000: 0x0080_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0200_0000_0000_0000, 0x0200_0000_0000_0000: 0x0200_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0400_0000_0000_0000, 0x0400_0000_0000_0000: 0x0400_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0800_0000_0000_0000, 0x0800_0000_0000_0000: 0x0800_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x1000_0000_0000_0000, 0x1000_0000_0000_0000: 0x1000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x2000_0000_0000_0000, 0x2000_0000_0000_0000: 0x2000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x4000_0000_0000_0000, 0x4000_0000_0000_0000: 0x4000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x8000_0000_0000_0000, 0x8000_0000_0000_0000: 0x8000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+)
+LD_MASK = (
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0002, 0x0000_0000_0000_0002: 0x0000_0000_0000_0002,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0004, 0x0000_0000_0000_0004: 0x0000_0000_0000_0004,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0008, 0x0000_0000_0000_0008: 0x0000_0000_0000_0008,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0010, 0x0000_0000_0000_0010: 0x0000_0000_0000_0010,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0020, 0x0000_0000_0000_0020: 0x0000_0000_0000_0020,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0040, 0x0000_0000_0000_0040: 0x0000_0000_0000_0040,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0080, 0x0000_0000_0000_0080: 0x0000_0000_0000_0080,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0204, 0x0000_0000_0000_0004: 0x0000_0000_0000_0204, 0x0000_0000_0000_0200: 0x0000_0000_0000_0200, 0x0000_0000_0000_0204: 0x0000_0000_0000_0200,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0408, 0x0000_0000_0000_0008: 0x0000_0000_0000_0408, 0x0000_0000_0000_0400: 0x0000_0000_0000_0400, 0x0000_0000_0000_0408: 0x0000_0000_0000_0400,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0810, 0x0000_0000_0000_0010: 0x0000_0000_0000_0810, 0x0000_0000_0000_0800: 0x0000_0000_0000_0800, 0x0000_0000_0000_0810: 0x0000_0000_0000_0800,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_1020, 0x0000_0000_0000_0020: 0x0000_0000_0000_1020, 0x0000_0000_0000_1000: 0x0000_0000_0000_1000, 0x0000_0000_0000_1020: 0x0000_0000_0000_1000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_2040, 0x0000_0000_0000_0040: 0x0000_0000_0000_2040, 0x0000_0000_0000_2000: 0x0000_0000_0000_2000, 0x0000_0000_0000_2040: 0x0000_0000_0000_2000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_4080, 0x0000_0000_0000_0080: 0x0000_0000_0000_4080, 0x0000_0000_0000_4000: 0x0000_0000_0000_4000, 0x0000_0000_0000_4080: 0x0000_0000_0000_4000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_8000, 0x0000_0000_0000_8000: 0x0000_0000_0000_8000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0002_0408, 0x0000_0000_0000_0008: 0x0000_0000_0002_0408, 0x0000_0000_0000_0400: 0x0000_0000_0002_0400, 0x0000_0000_0000_0408: 0x0000_0000_0002_0400,
+ 0x0000_0000_0002_0000: 0x0000_0000_0002_0000, 0x0000_0000_0002_0008: 0x0000_0000_0002_0000, 0x0000_0000_0002_0400: 0x0000_0000_0002_0000, 0x0000_0000_0002_0408: 0x0000_0000_0002_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0004_0810, 0x0000_0000_0000_0010: 0x0000_0000_0004_0810, 0x0000_0000_0000_0800: 0x0000_0000_0004_0800, 0x0000_0000_0000_0810: 0x0000_0000_0004_0800,
+ 0x0000_0000_0004_0000: 0x0000_0000_0004_0000, 0x0000_0000_0004_0010: 0x0000_0000_0004_0000, 0x0000_0000_0004_0800: 0x0000_0000_0004_0000, 0x0000_0000_0004_0810: 0x0000_0000_0004_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0008_1020, 0x0000_0000_0000_0020: 0x0000_0000_0008_1020, 0x0000_0000_0000_1000: 0x0000_0000_0008_1000, 0x0000_0000_0000_1020: 0x0000_0000_0008_1000,
+ 0x0000_0000_0008_0000: 0x0000_0000_0008_0000, 0x0000_0000_0008_0020: 0x0000_0000_0008_0000, 0x0000_0000_0008_1000: 0x0000_0000_0008_0000, 0x0000_0000_0008_1020: 0x0000_0000_0008_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0010_2040, 0x0000_0000_0000_0040: 0x0000_0000_0010_2040, 0x0000_0000_0000_2000: 0x0000_0000_0010_2000, 0x0000_0000_0000_2040: 0x0000_0000_0010_2000,
+ 0x0000_0000_0010_0000: 0x0000_0000_0010_0000, 0x0000_0000_0010_0040: 0x0000_0000_0010_0000, 0x0000_0000_0010_2000: 0x0000_0000_0010_0000, 0x0000_0000_0010_2040: 0x0000_0000_0010_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0020_4080, 0x0000_0000_0000_0080: 0x0000_0000_0020_4080, 0x0000_0000_0000_4000: 0x0000_0000_0020_4000, 0x0000_0000_0000_4080: 0x0000_0000_0020_4000,
+ 0x0000_0000_0020_0000: 0x0000_0000_0020_0000, 0x0000_0000_0020_0080: 0x0000_0000_0020_0000, 0x0000_0000_0020_4000: 0x0000_0000_0020_0000, 0x0000_0000_0020_4080: 0x0000_0000_0020_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0040_8000, 0x0000_0000_0000_8000: 0x0000_0000_0040_8000, 0x0000_0000_0040_0000: 0x0000_0000_0040_0000, 0x0000_0000_0040_8000: 0x0000_0000_0040_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0080_0000, 0x0000_0000_0080_0000: 0x0000_0000_0080_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0204_0810, 0x0000_0000_0000_0010: 0x0000_0000_0204_0810, 0x0000_0000_0000_0800: 0x0000_0000_0204_0800, 0x0000_0000_0000_0810: 0x0000_0000_0204_0800,
+ 0x0000_0000_0004_0000: 0x0000_0000_0204_0000, 0x0000_0000_0004_0010: 0x0000_0000_0204_0000, 0x0000_0000_0004_0800: 0x0000_0000_0204_0000, 0x0000_0000_0004_0810: 0x0000_0000_0204_0000,
+ 0x0000_0000_0200_0000: 0x0000_0000_0200_0000, 0x0000_0000_0200_0010: 0x0000_0000_0200_0000, 0x0000_0000_0200_0800: 0x0000_0000_0200_0000, 0x0000_0000_0200_0810: 0x0000_0000_0200_0000,
+ 0x0000_0000_0204_0000: 0x0000_0000_0200_0000, 0x0000_0000_0204_0010: 0x0000_0000_0200_0000, 0x0000_0000_0204_0800: 0x0000_0000_0200_0000, 0x0000_0000_0204_0810: 0x0000_0000_0200_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0408_1020, 0x0000_0000_0000_0020: 0x0000_0000_0408_1020, 0x0000_0000_0000_1000: 0x0000_0000_0408_1000, 0x0000_0000_0000_1020: 0x0000_0000_0408_1000,
+ 0x0000_0000_0008_0000: 0x0000_0000_0408_0000, 0x0000_0000_0008_0020: 0x0000_0000_0408_0000, 0x0000_0000_0008_1000: 0x0000_0000_0408_0000, 0x0000_0000_0008_1020: 0x0000_0000_0408_0000,
+ 0x0000_0000_0400_0000: 0x0000_0000_0400_0000, 0x0000_0000_0400_0020: 0x0000_0000_0400_0000, 0x0000_0000_0400_1000: 0x0000_0000_0400_0000, 0x0000_0000_0400_1020: 0x0000_0000_0400_0000,
+ 0x0000_0000_0408_0000: 0x0000_0000_0400_0000, 0x0000_0000_0408_0020: 0x0000_0000_0400_0000, 0x0000_0000_0408_1000: 0x0000_0000_0400_0000, 0x0000_0000_0408_1020: 0x0000_0000_0400_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0810_2040, 0x0000_0000_0000_0040: 0x0000_0000_0810_2040, 0x0000_0000_0000_2000: 0x0000_0000_0810_2000, 0x0000_0000_0000_2040: 0x0000_0000_0810_2000,
+ 0x0000_0000_0010_0000: 0x0000_0000_0810_0000, 0x0000_0000_0010_0040: 0x0000_0000_0810_0000, 0x0000_0000_0010_2000: 0x0000_0000_0810_0000, 0x0000_0000_0010_2040: 0x0000_0000_0810_0000,
+ 0x0000_0000_0800_0000: 0x0000_0000_0800_0000, 0x0000_0000_0800_0040: 0x0000_0000_0800_0000, 0x0000_0000_0800_2000: 0x0000_0000_0800_0000, 0x0000_0000_0800_2040: 0x0000_0000_0800_0000,
+ 0x0000_0000_0810_0000: 0x0000_0000_0800_0000, 0x0000_0000_0810_0040: 0x0000_0000_0800_0000, 0x0000_0000_0810_2000: 0x0000_0000_0800_0000, 0x0000_0000_0810_2040: 0x0000_0000_0800_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_1020_4080, 0x0000_0000_0000_0080: 0x0000_0000_1020_4080, 0x0000_0000_0000_4000: 0x0000_0000_1020_4000, 0x0000_0000_0000_4080: 0x0000_0000_1020_4000,
+ 0x0000_0000_0020_0000: 0x0000_0000_1020_0000, 0x0000_0000_0020_0080: 0x0000_0000_1020_0000, 0x0000_0000_0020_4000: 0x0000_0000_1020_0000, 0x0000_0000_0020_4080: 0x0000_0000_1020_0000,
+ 0x0000_0000_1000_0000: 0x0000_0000_1000_0000, 0x0000_0000_1000_0080: 0x0000_0000_1000_0000, 0x0000_0000_1000_4000: 0x0000_0000_1000_0000, 0x0000_0000_1000_4080: 0x0000_0000_1000_0000,
+ 0x0000_0000_1020_0000: 0x0000_0000_1000_0000, 0x0000_0000_1020_0080: 0x0000_0000_1000_0000, 0x0000_0000_1020_4000: 0x0000_0000_1000_0000, 0x0000_0000_1020_4080: 0x0000_0000_1000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_2040_8000, 0x0000_0000_0000_8000: 0x0000_0000_2040_8000, 0x0000_0000_0040_0000: 0x0000_0000_2040_0000, 0x0000_0000_0040_8000: 0x0000_0000_2040_0000,
+ 0x0000_0000_2000_0000: 0x0000_0000_2000_0000, 0x0000_0000_2000_8000: 0x0000_0000_2000_0000, 0x0000_0000_2040_0000: 0x0000_0000_2000_0000, 0x0000_0000_2040_8000: 0x0000_0000_2000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_4080_0000, 0x0000_0000_0080_0000: 0x0000_0000_4080_0000, 0x0000_0000_4000_0000: 0x0000_0000_4000_0000, 0x0000_0000_4080_0000: 0x0000_0000_4000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_8000_0000, 0x0000_0000_8000_0000: 0x0000_0000_8000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0002_0408_1020, 0x0000_0000_0000_0020: 0x0000_0002_0408_1020, 0x0000_0000_0000_1000: 0x0000_0002_0408_1000, 0x0000_0000_0000_1020: 0x0000_0002_0408_1000,
+ 0x0000_0000_0008_0000: 0x0000_0002_0408_0000, 0x0000_0000_0008_0020: 0x0000_0002_0408_0000, 0x0000_0000_0008_1000: 0x0000_0002_0408_0000, 0x0000_0000_0008_1020: 0x0000_0002_0408_0000,
+ 0x0000_0000_0400_0000: 0x0000_0002_0400_0000, 0x0000_0000_0400_0020: 0x0000_0002_0400_0000, 0x0000_0000_0400_1000: 0x0000_0002_0400_0000, 0x0000_0000_0400_1020: 0x0000_0002_0400_0000,
+ 0x0000_0000_0408_0000: 0x0000_0002_0400_0000, 0x0000_0000_0408_0020: 0x0000_0002_0400_0000, 0x0000_0000_0408_1000: 0x0000_0002_0400_0000, 0x0000_0000_0408_1020: 0x0000_0002_0400_0000,
+ 0x0000_0002_0000_0000: 0x0000_0002_0000_0000, 0x0000_0002_0000_0020: 0x0000_0002_0000_0000, 0x0000_0002_0000_1000: 0x0000_0002_0000_0000, 0x0000_0002_0000_1020: 0x0000_0002_0000_0000,
+ 0x0000_0002_0008_0000: 0x0000_0002_0000_0000, 0x0000_0002_0008_0020: 0x0000_0002_0000_0000, 0x0000_0002_0008_1000: 0x0000_0002_0000_0000, 0x0000_0002_0008_1020: 0x0000_0002_0000_0000,
+ 0x0000_0002_0400_0000: 0x0000_0002_0000_0000, 0x0000_0002_0400_0020: 0x0000_0002_0000_0000, 0x0000_0002_0400_1000: 0x0000_0002_0000_0000, 0x0000_0002_0400_1020: 0x0000_0002_0000_0000,
+ 0x0000_0002_0408_0000: 0x0000_0002_0000_0000, 0x0000_0002_0408_0020: 0x0000_0002_0000_0000, 0x0000_0002_0408_1000: 0x0000_0002_0000_0000, 0x0000_0002_0408_1020: 0x0000_0002_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0004_0810_2040, 0x0000_0000_0000_0040: 0x0000_0004_0810_2040, 0x0000_0000_0000_2000: 0x0000_0004_0810_2000, 0x0000_0000_0000_2040: 0x0000_0004_0810_2000,
+ 0x0000_0000_0010_0000: 0x0000_0004_0810_0000, 0x0000_0000_0010_0040: 0x0000_0004_0810_0000, 0x0000_0000_0010_2000: 0x0000_0004_0810_0000, 0x0000_0000_0010_2040: 0x0000_0004_0810_0000,
+ 0x0000_0000_0800_0000: 0x0000_0004_0800_0000, 0x0000_0000_0800_0040: 0x0000_0004_0800_0000, 0x0000_0000_0800_2000: 0x0000_0004_0800_0000, 0x0000_0000_0800_2040: 0x0000_0004_0800_0000,
+ 0x0000_0000_0810_0000: 0x0000_0004_0800_0000, 0x0000_0000_0810_0040: 0x0000_0004_0800_0000, 0x0000_0000_0810_2000: 0x0000_0004_0800_0000, 0x0000_0000_0810_2040: 0x0000_0004_0800_0000,
+ 0x0000_0004_0000_0000: 0x0000_0004_0000_0000, 0x0000_0004_0000_0040: 0x0000_0004_0000_0000, 0x0000_0004_0000_2000: 0x0000_0004_0000_0000, 0x0000_0004_0000_2040: 0x0000_0004_0000_0000,
+ 0x0000_0004_0010_0000: 0x0000_0004_0000_0000, 0x0000_0004_0010_0040: 0x0000_0004_0000_0000, 0x0000_0004_0010_2000: 0x0000_0004_0000_0000, 0x0000_0004_0010_2040: 0x0000_0004_0000_0000,
+ 0x0000_0004_0800_0000: 0x0000_0004_0000_0000, 0x0000_0004_0800_0040: 0x0000_0004_0000_0000, 0x0000_0004_0800_2000: 0x0000_0004_0000_0000, 0x0000_0004_0800_2040: 0x0000_0004_0000_0000,
+ 0x0000_0004_0810_0000: 0x0000_0004_0000_0000, 0x0000_0004_0810_0040: 0x0000_0004_0000_0000, 0x0000_0004_0810_2000: 0x0000_0004_0000_0000, 0x0000_0004_0810_2040: 0x0000_0004_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0008_1020_4080, 0x0000_0000_0000_0080: 0x0000_0008_1020_4080, 0x0000_0000_0000_4000: 0x0000_0008_1020_4000, 0x0000_0000_0000_4080: 0x0000_0008_1020_4000,
+ 0x0000_0000_0020_0000: 0x0000_0008_1020_0000, 0x0000_0000_0020_0080: 0x0000_0008_1020_0000, 0x0000_0000_0020_4000: 0x0000_0008_1020_0000, 0x0000_0000_0020_4080: 0x0000_0008_1020_0000,
+ 0x0000_0000_1000_0000: 0x0000_0008_1000_0000, 0x0000_0000_1000_0080: 0x0000_0008_1000_0000, 0x0000_0000_1000_4000: 0x0000_0008_1000_0000, 0x0000_0000_1000_4080: 0x0000_0008_1000_0000,
+ 0x0000_0000_1020_0000: 0x0000_0008_1000_0000, 0x0000_0000_1020_0080: 0x0000_0008_1000_0000, 0x0000_0000_1020_4000: 0x0000_0008_1000_0000, 0x0000_0000_1020_4080: 0x0000_0008_1000_0000,
+ 0x0000_0008_0000_0000: 0x0000_0008_0000_0000, 0x0000_0008_0000_0080: 0x0000_0008_0000_0000, 0x0000_0008_0000_4000: 0x0000_0008_0000_0000, 0x0000_0008_0000_4080: 0x0000_0008_0000_0000,
+ 0x0000_0008_0020_0000: 0x0000_0008_0000_0000, 0x0000_0008_0020_0080: 0x0000_0008_0000_0000, 0x0000_0008_0020_4000: 0x0000_0008_0000_0000, 0x0000_0008_0020_4080: 0x0000_0008_0000_0000,
+ 0x0000_0008_1000_0000: 0x0000_0008_0000_0000, 0x0000_0008_1000_0080: 0x0000_0008_0000_0000, 0x0000_0008_1000_4000: 0x0000_0008_0000_0000, 0x0000_0008_1000_4080: 0x0000_0008_0000_0000,
+ 0x0000_0008_1020_0000: 0x0000_0008_0000_0000, 0x0000_0008_1020_0080: 0x0000_0008_0000_0000, 0x0000_0008_1020_4000: 0x0000_0008_0000_0000, 0x0000_0008_1020_4080: 0x0000_0008_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0010_2040_8000, 0x0000_0000_0000_8000: 0x0000_0010_2040_8000, 0x0000_0000_0040_0000: 0x0000_0010_2040_0000, 0x0000_0000_0040_8000: 0x0000_0010_2040_0000,
+ 0x0000_0000_2000_0000: 0x0000_0010_2000_0000, 0x0000_0000_2000_8000: 0x0000_0010_2000_0000, 0x0000_0000_2040_0000: 0x0000_0010_2000_0000, 0x0000_0000_2040_8000: 0x0000_0010_2000_0000,
+ 0x0000_0010_0000_0000: 0x0000_0010_0000_0000, 0x0000_0010_0000_8000: 0x0000_0010_0000_0000, 0x0000_0010_0040_0000: 0x0000_0010_0000_0000, 0x0000_0010_0040_8000: 0x0000_0010_0000_0000,
+ 0x0000_0010_2000_0000: 0x0000_0010_0000_0000, 0x0000_0010_2000_8000: 0x0000_0010_0000_0000, 0x0000_0010_2040_0000: 0x0000_0010_0000_0000, 0x0000_0010_2040_8000: 0x0000_0010_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0020_4080_0000, 0x0000_0000_0080_0000: 0x0000_0020_4080_0000, 0x0000_0000_4000_0000: 0x0000_0020_4000_0000, 0x0000_0000_4080_0000: 0x0000_0020_4000_0000,
+ 0x0000_0020_0000_0000: 0x0000_0020_0000_0000, 0x0000_0020_0080_0000: 0x0000_0020_0000_0000, 0x0000_0020_4000_0000: 0x0000_0020_0000_0000, 0x0000_0020_4080_0000: 0x0000_0020_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0040_8000_0000, 0x0000_0000_8000_0000: 0x0000_0040_8000_0000, 0x0000_0040_0000_0000: 0x0000_0040_0000_0000, 0x0000_0040_8000_0000: 0x0000_0040_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0080_0000_0000, 0x0000_0080_0000_0000: 0x0000_0080_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0204_0810_2040, 0x0000_0000_0000_0040: 0x0000_0204_0810_2040, 0x0000_0000_0000_2000: 0x0000_0204_0810_2000, 0x0000_0000_0000_2040: 0x0000_0204_0810_2000,
+ 0x0000_0000_0010_0000: 0x0000_0204_0810_0000, 0x0000_0000_0010_0040: 0x0000_0204_0810_0000, 0x0000_0000_0010_2000: 0x0000_0204_0810_0000, 0x0000_0000_0010_2040: 0x0000_0204_0810_0000,
+ 0x0000_0000_0800_0000: 0x0000_0204_0800_0000, 0x0000_0000_0800_0040: 0x0000_0204_0800_0000, 0x0000_0000_0800_2000: 0x0000_0204_0800_0000, 0x0000_0000_0800_2040: 0x0000_0204_0800_0000,
+ 0x0000_0000_0810_0000: 0x0000_0204_0800_0000, 0x0000_0000_0810_0040: 0x0000_0204_0800_0000, 0x0000_0000_0810_2000: 0x0000_0204_0800_0000, 0x0000_0000_0810_2040: 0x0000_0204_0800_0000,
+ 0x0000_0004_0000_0000: 0x0000_0204_0000_0000, 0x0000_0004_0000_0040: 0x0000_0204_0000_0000, 0x0000_0004_0000_2000: 0x0000_0204_0000_0000, 0x0000_0004_0000_2040: 0x0000_0204_0000_0000,
+ 0x0000_0004_0010_0000: 0x0000_0204_0000_0000, 0x0000_0004_0010_0040: 0x0000_0204_0000_0000, 0x0000_0004_0010_2000: 0x0000_0204_0000_0000, 0x0000_0004_0010_2040: 0x0000_0204_0000_0000,
+ 0x0000_0004_0800_0000: 0x0000_0204_0000_0000, 0x0000_0004_0800_0040: 0x0000_0204_0000_0000, 0x0000_0004_0800_2000: 0x0000_0204_0000_0000, 0x0000_0004_0800_2040: 0x0000_0204_0000_0000,
+ 0x0000_0004_0810_0000: 0x0000_0204_0000_0000, 0x0000_0004_0810_0040: 0x0000_0204_0000_0000, 0x0000_0004_0810_2000: 0x0000_0204_0000_0000, 0x0000_0004_0810_2040: 0x0000_0204_0000_0000,
+ 0x0000_0200_0000_0000: 0x0000_0200_0000_0000, 0x0000_0200_0000_0040: 0x0000_0200_0000_0000, 0x0000_0200_0000_2000: 0x0000_0200_0000_0000, 0x0000_0200_0000_2040: 0x0000_0200_0000_0000,
+ 0x0000_0200_0010_0000: 0x0000_0200_0000_0000, 0x0000_0200_0010_0040: 0x0000_0200_0000_0000, 0x0000_0200_0010_2000: 0x0000_0200_0000_0000, 0x0000_0200_0010_2040: 0x0000_0200_0000_0000,
+ 0x0000_0200_0800_0000: 0x0000_0200_0000_0000, 0x0000_0200_0800_0040: 0x0000_0200_0000_0000, 0x0000_0200_0800_2000: 0x0000_0200_0000_0000, 0x0000_0200_0800_2040: 0x0000_0200_0000_0000,
+ 0x0000_0200_0810_0000: 0x0000_0200_0000_0000, 0x0000_0200_0810_0040: 0x0000_0200_0000_0000, 0x0000_0200_0810_2000: 0x0000_0200_0000_0000, 0x0000_0200_0810_2040: 0x0000_0200_0000_0000,
+ 0x0000_0204_0000_0000: 0x0000_0200_0000_0000, 0x0000_0204_0000_0040: 0x0000_0200_0000_0000, 0x0000_0204_0000_2000: 0x0000_0200_0000_0000, 0x0000_0204_0000_2040: 0x0000_0200_0000_0000,
+ 0x0000_0204_0010_0000: 0x0000_0200_0000_0000, 0x0000_0204_0010_0040: 0x0000_0200_0000_0000, 0x0000_0204_0010_2000: 0x0000_0200_0000_0000, 0x0000_0204_0010_2040: 0x0000_0200_0000_0000,
+ 0x0000_0204_0800_0000: 0x0000_0200_0000_0000, 0x0000_0204_0800_0040: 0x0000_0200_0000_0000, 0x0000_0204_0800_2000: 0x0000_0200_0000_0000, 0x0000_0204_0800_2040: 0x0000_0200_0000_0000,
+ 0x0000_0204_0810_0000: 0x0000_0200_0000_0000, 0x0000_0204_0810_0040: 0x0000_0200_0000_0000, 0x0000_0204_0810_2000: 0x0000_0200_0000_0000, 0x0000_0204_0810_2040: 0x0000_0200_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0408_1020_4080, 0x0000_0000_0000_0080: 0x0000_0408_1020_4080, 0x0000_0000_0000_4000: 0x0000_0408_1020_4000, 0x0000_0000_0000_4080: 0x0000_0408_1020_4000,
+ 0x0000_0000_0020_0000: 0x0000_0408_1020_0000, 0x0000_0000_0020_0080: 0x0000_0408_1020_0000, 0x0000_0000_0020_4000: 0x0000_0408_1020_0000, 0x0000_0000_0020_4080: 0x0000_0408_1020_0000,
+ 0x0000_0000_1000_0000: 0x0000_0408_1000_0000, 0x0000_0000_1000_0080: 0x0000_0408_1000_0000, 0x0000_0000_1000_4000: 0x0000_0408_1000_0000, 0x0000_0000_1000_4080: 0x0000_0408_1000_0000,
+ 0x0000_0000_1020_0000: 0x0000_0408_1000_0000, 0x0000_0000_1020_0080: 0x0000_0408_1000_0000, 0x0000_0000_1020_4000: 0x0000_0408_1000_0000, 0x0000_0000_1020_4080: 0x0000_0408_1000_0000,
+ 0x0000_0008_0000_0000: 0x0000_0408_0000_0000, 0x0000_0008_0000_0080: 0x0000_0408_0000_0000, 0x0000_0008_0000_4000: 0x0000_0408_0000_0000, 0x0000_0008_0000_4080: 0x0000_0408_0000_0000,
+ 0x0000_0008_0020_0000: 0x0000_0408_0000_0000, 0x0000_0008_0020_0080: 0x0000_0408_0000_0000, 0x0000_0008_0020_4000: 0x0000_0408_0000_0000, 0x0000_0008_0020_4080: 0x0000_0408_0000_0000,
+ 0x0000_0008_1000_0000: 0x0000_0408_0000_0000, 0x0000_0008_1000_0080: 0x0000_0408_0000_0000, 0x0000_0008_1000_4000: 0x0000_0408_0000_0000, 0x0000_0008_1000_4080: 0x0000_0408_0000_0000,
+ 0x0000_0008_1020_0000: 0x0000_0408_0000_0000, 0x0000_0008_1020_0080: 0x0000_0408_0000_0000, 0x0000_0008_1020_4000: 0x0000_0408_0000_0000, 0x0000_0008_1020_4080: 0x0000_0408_0000_0000,
+ 0x0000_0400_0000_0000: 0x0000_0400_0000_0000, 0x0000_0400_0000_0080: 0x0000_0400_0000_0000, 0x0000_0400_0000_4000: 0x0000_0400_0000_0000, 0x0000_0400_0000_4080: 0x0000_0400_0000_0000,
+ 0x0000_0400_0020_0000: 0x0000_0400_0000_0000, 0x0000_0400_0020_0080: 0x0000_0400_0000_0000, 0x0000_0400_0020_4000: 0x0000_0400_0000_0000, 0x0000_0400_0020_4080: 0x0000_0400_0000_0000,
+ 0x0000_0400_1000_0000: 0x0000_0400_0000_0000, 0x0000_0400_1000_0080: 0x0000_0400_0000_0000, 0x0000_0400_1000_4000: 0x0000_0400_0000_0000, 0x0000_0400_1000_4080: 0x0000_0400_0000_0000,
+ 0x0000_0400_1020_0000: 0x0000_0400_0000_0000, 0x0000_0400_1020_0080: 0x0000_0400_0000_0000, 0x0000_0400_1020_4000: 0x0000_0400_0000_0000, 0x0000_0400_1020_4080: 0x0000_0400_0000_0000,
+ 0x0000_0408_0000_0000: 0x0000_0400_0000_0000, 0x0000_0408_0000_0080: 0x0000_0400_0000_0000, 0x0000_0408_0000_4000: 0x0000_0400_0000_0000, 0x0000_0408_0000_4080: 0x0000_0400_0000_0000,
+ 0x0000_0408_0020_0000: 0x0000_0400_0000_0000, 0x0000_0408_0020_0080: 0x0000_0400_0000_0000, 0x0000_0408_0020_4000: 0x0000_0400_0000_0000, 0x0000_0408_0020_4080: 0x0000_0400_0000_0000,
+ 0x0000_0408_1000_0000: 0x0000_0400_0000_0000, 0x0000_0408_1000_0080: 0x0000_0400_0000_0000, 0x0000_0408_1000_4000: 0x0000_0400_0000_0000, 0x0000_0408_1000_4080: 0x0000_0400_0000_0000,
+ 0x0000_0408_1020_0000: 0x0000_0400_0000_0000, 0x0000_0408_1020_0080: 0x0000_0400_0000_0000, 0x0000_0408_1020_4000: 0x0000_0400_0000_0000, 0x0000_0408_1020_4080: 0x0000_0400_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0810_2040_8000, 0x0000_0000_0000_8000: 0x0000_0810_2040_8000, 0x0000_0000_0040_0000: 0x0000_0810_2040_0000, 0x0000_0000_0040_8000: 0x0000_0810_2040_0000,
+ 0x0000_0000_2000_0000: 0x0000_0810_2000_0000, 0x0000_0000_2000_8000: 0x0000_0810_2000_0000, 0x0000_0000_2040_0000: 0x0000_0810_2000_0000, 0x0000_0000_2040_8000: 0x0000_0810_2000_0000,
+ 0x0000_0010_0000_0000: 0x0000_0810_0000_0000, 0x0000_0010_0000_8000: 0x0000_0810_0000_0000, 0x0000_0010_0040_0000: 0x0000_0810_0000_0000, 0x0000_0010_0040_8000: 0x0000_0810_0000_0000,
+ 0x0000_0010_2000_0000: 0x0000_0810_0000_0000, 0x0000_0010_2000_8000: 0x0000_0810_0000_0000, 0x0000_0010_2040_0000: 0x0000_0810_0000_0000, 0x0000_0010_2040_8000: 0x0000_0810_0000_0000,
+ 0x0000_0800_0000_0000: 0x0000_0800_0000_0000, 0x0000_0800_0000_8000: 0x0000_0800_0000_0000, 0x0000_0800_0040_0000: 0x0000_0800_0000_0000, 0x0000_0800_0040_8000: 0x0000_0800_0000_0000,
+ 0x0000_0800_2000_0000: 0x0000_0800_0000_0000, 0x0000_0800_2000_8000: 0x0000_0800_0000_0000, 0x0000_0800_2040_0000: 0x0000_0800_0000_0000, 0x0000_0800_2040_8000: 0x0000_0800_0000_0000,
+ 0x0000_0810_0000_0000: 0x0000_0800_0000_0000, 0x0000_0810_0000_8000: 0x0000_0800_0000_0000, 0x0000_0810_0040_0000: 0x0000_0800_0000_0000, 0x0000_0810_0040_8000: 0x0000_0800_0000_0000,
+ 0x0000_0810_2000_0000: 0x0000_0800_0000_0000, 0x0000_0810_2000_8000: 0x0000_0800_0000_0000, 0x0000_0810_2040_0000: 0x0000_0800_0000_0000, 0x0000_0810_2040_8000: 0x0000_0800_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_1020_4080_0000, 0x0000_0000_0080_0000: 0x0000_1020_4080_0000, 0x0000_0000_4000_0000: 0x0000_1020_4000_0000, 0x0000_0000_4080_0000: 0x0000_1020_4000_0000,
+ 0x0000_0020_0000_0000: 0x0000_1020_0000_0000, 0x0000_0020_0080_0000: 0x0000_1020_0000_0000, 0x0000_0020_4000_0000: 0x0000_1020_0000_0000, 0x0000_0020_4080_0000: 0x0000_1020_0000_0000,
+ 0x0000_1000_0000_0000: 0x0000_1000_0000_0000, 0x0000_1000_0080_0000: 0x0000_1000_0000_0000, 0x0000_1000_4000_0000: 0x0000_1000_0000_0000, 0x0000_1000_4080_0000: 0x0000_1000_0000_0000,
+ 0x0000_1020_0000_0000: 0x0000_1000_0000_0000, 0x0000_1020_0080_0000: 0x0000_1000_0000_0000, 0x0000_1020_4000_0000: 0x0000_1000_0000_0000, 0x0000_1020_4080_0000: 0x0000_1000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_2040_8000_0000, 0x0000_0000_8000_0000: 0x0000_2040_8000_0000, 0x0000_0040_0000_0000: 0x0000_2040_0000_0000, 0x0000_0040_8000_0000: 0x0000_2040_0000_0000,
+ 0x0000_2000_0000_0000: 0x0000_2000_0000_0000, 0x0000_2000_8000_0000: 0x0000_2000_0000_0000, 0x0000_2040_0000_0000: 0x0000_2000_0000_0000, 0x0000_2040_8000_0000: 0x0000_2000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_4080_0000_0000, 0x0000_0080_0000_0000: 0x0000_4080_0000_0000, 0x0000_4000_0000_0000: 0x0000_4000_0000_0000, 0x0000_4080_0000_0000: 0x0000_4000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_8000_0000_0000, 0x0000_8000_0000_0000: 0x0000_8000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0002_0408_1020_4080, 0x0000_0000_0000_0080: 0x0002_0408_1020_4080, 0x0000_0000_0000_4000: 0x0002_0408_1020_4000, 0x0000_0000_0000_4080: 0x0002_0408_1020_4000,
+ 0x0000_0000_0020_0000: 0x0002_0408_1020_0000, 0x0000_0000_0020_0080: 0x0002_0408_1020_0000, 0x0000_0000_0020_4000: 0x0002_0408_1020_0000, 0x0000_0000_0020_4080: 0x0002_0408_1020_0000,
+ 0x0000_0000_1000_0000: 0x0002_0408_1000_0000, 0x0000_0000_1000_0080: 0x0002_0408_1000_0000, 0x0000_0000_1000_4000: 0x0002_0408_1000_0000, 0x0000_0000_1000_4080: 0x0002_0408_1000_0000,
+ 0x0000_0000_1020_0000: 0x0002_0408_1000_0000, 0x0000_0000_1020_0080: 0x0002_0408_1000_0000, 0x0000_0000_1020_4000: 0x0002_0408_1000_0000, 0x0000_0000_1020_4080: 0x0002_0408_1000_0000,
+ 0x0000_0008_0000_0000: 0x0002_0408_0000_0000, 0x0000_0008_0000_0080: 0x0002_0408_0000_0000, 0x0000_0008_0000_4000: 0x0002_0408_0000_0000, 0x0000_0008_0000_4080: 0x0002_0408_0000_0000,
+ 0x0000_0008_0020_0000: 0x0002_0408_0000_0000, 0x0000_0008_0020_0080: 0x0002_0408_0000_0000, 0x0000_0008_0020_4000: 0x0002_0408_0000_0000, 0x0000_0008_0020_4080: 0x0002_0408_0000_0000,
+ 0x0000_0008_1000_0000: 0x0002_0408_0000_0000, 0x0000_0008_1000_0080: 0x0002_0408_0000_0000, 0x0000_0008_1000_4000: 0x0002_0408_0000_0000, 0x0000_0008_1000_4080: 0x0002_0408_0000_0000,
+ 0x0000_0008_1020_0000: 0x0002_0408_0000_0000, 0x0000_0008_1020_0080: 0x0002_0408_0000_0000, 0x0000_0008_1020_4000: 0x0002_0408_0000_0000, 0x0000_0008_1020_4080: 0x0002_0408_0000_0000,
+ 0x0000_0400_0000_0000: 0x0002_0400_0000_0000, 0x0000_0400_0000_0080: 0x0002_0400_0000_0000, 0x0000_0400_0000_4000: 0x0002_0400_0000_0000, 0x0000_0400_0000_4080: 0x0002_0400_0000_0000,
+ 0x0000_0400_0020_0000: 0x0002_0400_0000_0000, 0x0000_0400_0020_0080: 0x0002_0400_0000_0000, 0x0000_0400_0020_4000: 0x0002_0400_0000_0000, 0x0000_0400_0020_4080: 0x0002_0400_0000_0000,
+ 0x0000_0400_1000_0000: 0x0002_0400_0000_0000, 0x0000_0400_1000_0080: 0x0002_0400_0000_0000, 0x0000_0400_1000_4000: 0x0002_0400_0000_0000, 0x0000_0400_1000_4080: 0x0002_0400_0000_0000,
+ 0x0000_0400_1020_0000: 0x0002_0400_0000_0000, 0x0000_0400_1020_0080: 0x0002_0400_0000_0000, 0x0000_0400_1020_4000: 0x0002_0400_0000_0000, 0x0000_0400_1020_4080: 0x0002_0400_0000_0000,
+ 0x0000_0408_0000_0000: 0x0002_0400_0000_0000, 0x0000_0408_0000_0080: 0x0002_0400_0000_0000, 0x0000_0408_0000_4000: 0x0002_0400_0000_0000, 0x0000_0408_0000_4080: 0x0002_0400_0000_0000,
+ 0x0000_0408_0020_0000: 0x0002_0400_0000_0000, 0x0000_0408_0020_0080: 0x0002_0400_0000_0000, 0x0000_0408_0020_4000: 0x0002_0400_0000_0000, 0x0000_0408_0020_4080: 0x0002_0400_0000_0000,
+ 0x0000_0408_1000_0000: 0x0002_0400_0000_0000, 0x0000_0408_1000_0080: 0x0002_0400_0000_0000, 0x0000_0408_1000_4000: 0x0002_0400_0000_0000, 0x0000_0408_1000_4080: 0x0002_0400_0000_0000,
+ 0x0000_0408_1020_0000: 0x0002_0400_0000_0000, 0x0000_0408_1020_0080: 0x0002_0400_0000_0000, 0x0000_0408_1020_4000: 0x0002_0400_0000_0000, 0x0000_0408_1020_4080: 0x0002_0400_0000_0000,
+ 0x0002_0000_0000_0000: 0x0002_0000_0000_0000, 0x0002_0000_0000_0080: 0x0002_0000_0000_0000, 0x0002_0000_0000_4000: 0x0002_0000_0000_0000, 0x0002_0000_0000_4080: 0x0002_0000_0000_0000,
+ 0x0002_0000_0020_0000: 0x0002_0000_0000_0000, 0x0002_0000_0020_0080: 0x0002_0000_0000_0000, 0x0002_0000_0020_4000: 0x0002_0000_0000_0000, 0x0002_0000_0020_4080: 0x0002_0000_0000_0000,
+ 0x0002_0000_1000_0000: 0x0002_0000_0000_0000, 0x0002_0000_1000_0080: 0x0002_0000_0000_0000, 0x0002_0000_1000_4000: 0x0002_0000_0000_0000, 0x0002_0000_1000_4080: 0x0002_0000_0000_0000,
+ 0x0002_0000_1020_0000: 0x0002_0000_0000_0000, 0x0002_0000_1020_0080: 0x0002_0000_0000_0000, 0x0002_0000_1020_4000: 0x0002_0000_0000_0000, 0x0002_0000_1020_4080: 0x0002_0000_0000_0000,
+ 0x0002_0008_0000_0000: 0x0002_0000_0000_0000, 0x0002_0008_0000_0080: 0x0002_0000_0000_0000, 0x0002_0008_0000_4000: 0x0002_0000_0000_0000, 0x0002_0008_0000_4080: 0x0002_0000_0000_0000,
+ 0x0002_0008_0020_0000: 0x0002_0000_0000_0000, 0x0002_0008_0020_0080: 0x0002_0000_0000_0000, 0x0002_0008_0020_4000: 0x0002_0000_0000_0000, 0x0002_0008_0020_4080: 0x0002_0000_0000_0000,
+ 0x0002_0008_1000_0000: 0x0002_0000_0000_0000, 0x0002_0008_1000_0080: 0x0002_0000_0000_0000, 0x0002_0008_1000_4000: 0x0002_0000_0000_0000, 0x0002_0008_1000_4080: 0x0002_0000_0000_0000,
+ 0x0002_0008_1020_0000: 0x0002_0000_0000_0000, 0x0002_0008_1020_0080: 0x0002_0000_0000_0000, 0x0002_0008_1020_4000: 0x0002_0000_0000_0000, 0x0002_0008_1020_4080: 0x0002_0000_0000_0000,
+ 0x0002_0400_0000_0000: 0x0002_0000_0000_0000, 0x0002_0400_0000_0080: 0x0002_0000_0000_0000, 0x0002_0400_0000_4000: 0x0002_0000_0000_0000, 0x0002_0400_0000_4080: 0x0002_0000_0000_0000,
+ 0x0002_0400_0020_0000: 0x0002_0000_0000_0000, 0x0002_0400_0020_0080: 0x0002_0000_0000_0000, 0x0002_0400_0020_4000: 0x0002_0000_0000_0000, 0x0002_0400_0020_4080: 0x0002_0000_0000_0000,
+ 0x0002_0400_1000_0000: 0x0002_0000_0000_0000, 0x0002_0400_1000_0080: 0x0002_0000_0000_0000, 0x0002_0400_1000_4000: 0x0002_0000_0000_0000, 0x0002_0400_1000_4080: 0x0002_0000_0000_0000,
+ 0x0002_0400_1020_0000: 0x0002_0000_0000_0000, 0x0002_0400_1020_0080: 0x0002_0000_0000_0000, 0x0002_0400_1020_4000: 0x0002_0000_0000_0000, 0x0002_0400_1020_4080: 0x0002_0000_0000_0000,
+ 0x0002_0408_0000_0000: 0x0002_0000_0000_0000, 0x0002_0408_0000_0080: 0x0002_0000_0000_0000, 0x0002_0408_0000_4000: 0x0002_0000_0000_0000, 0x0002_0408_0000_4080: 0x0002_0000_0000_0000,
+ 0x0002_0408_0020_0000: 0x0002_0000_0000_0000, 0x0002_0408_0020_0080: 0x0002_0000_0000_0000, 0x0002_0408_0020_4000: 0x0002_0000_0000_0000, 0x0002_0408_0020_4080: 0x0002_0000_0000_0000,
+ 0x0002_0408_1000_0000: 0x0002_0000_0000_0000, 0x0002_0408_1000_0080: 0x0002_0000_0000_0000, 0x0002_0408_1000_4000: 0x0002_0000_0000_0000, 0x0002_0408_1000_4080: 0x0002_0000_0000_0000,
+ 0x0002_0408_1020_0000: 0x0002_0000_0000_0000, 0x0002_0408_1020_0080: 0x0002_0000_0000_0000, 0x0002_0408_1020_4000: 0x0002_0000_0000_0000, 0x0002_0408_1020_4080: 0x0002_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0004_0810_2040_8000, 0x0000_0000_0000_8000: 0x0004_0810_2040_8000, 0x0000_0000_0040_0000: 0x0004_0810_2040_0000, 0x0000_0000_0040_8000: 0x0004_0810_2040_0000,
+ 0x0000_0000_2000_0000: 0x0004_0810_2000_0000, 0x0000_0000_2000_8000: 0x0004_0810_2000_0000, 0x0000_0000_2040_0000: 0x0004_0810_2000_0000, 0x0000_0000_2040_8000: 0x0004_0810_2000_0000,
+ 0x0000_0010_0000_0000: 0x0004_0810_0000_0000, 0x0000_0010_0000_8000: 0x0004_0810_0000_0000, 0x0000_0010_0040_0000: 0x0004_0810_0000_0000, 0x0000_0010_0040_8000: 0x0004_0810_0000_0000,
+ 0x0000_0010_2000_0000: 0x0004_0810_0000_0000, 0x0000_0010_2000_8000: 0x0004_0810_0000_0000, 0x0000_0010_2040_0000: 0x0004_0810_0000_0000, 0x0000_0010_2040_8000: 0x0004_0810_0000_0000,
+ 0x0000_0800_0000_0000: 0x0004_0800_0000_0000, 0x0000_0800_0000_8000: 0x0004_0800_0000_0000, 0x0000_0800_0040_0000: 0x0004_0800_0000_0000, 0x0000_0800_0040_8000: 0x0004_0800_0000_0000,
+ 0x0000_0800_2000_0000: 0x0004_0800_0000_0000, 0x0000_0800_2000_8000: 0x0004_0800_0000_0000, 0x0000_0800_2040_0000: 0x0004_0800_0000_0000, 0x0000_0800_2040_8000: 0x0004_0800_0000_0000,
+ 0x0000_0810_0000_0000: 0x0004_0800_0000_0000, 0x0000_0810_0000_8000: 0x0004_0800_0000_0000, 0x0000_0810_0040_0000: 0x0004_0800_0000_0000, 0x0000_0810_0040_8000: 0x0004_0800_0000_0000,
+ 0x0000_0810_2000_0000: 0x0004_0800_0000_0000, 0x0000_0810_2000_8000: 0x0004_0800_0000_0000, 0x0000_0810_2040_0000: 0x0004_0800_0000_0000, 0x0000_0810_2040_8000: 0x0004_0800_0000_0000,
+ 0x0004_0000_0000_0000: 0x0004_0000_0000_0000, 0x0004_0000_0000_8000: 0x0004_0000_0000_0000, 0x0004_0000_0040_0000: 0x0004_0000_0000_0000, 0x0004_0000_0040_8000: 0x0004_0000_0000_0000,
+ 0x0004_0000_2000_0000: 0x0004_0000_0000_0000, 0x0004_0000_2000_8000: 0x0004_0000_0000_0000, 0x0004_0000_2040_0000: 0x0004_0000_0000_0000, 0x0004_0000_2040_8000: 0x0004_0000_0000_0000,
+ 0x0004_0010_0000_0000: 0x0004_0000_0000_0000, 0x0004_0010_0000_8000: 0x0004_0000_0000_0000, 0x0004_0010_0040_0000: 0x0004_0000_0000_0000, 0x0004_0010_0040_8000: 0x0004_0000_0000_0000,
+ 0x0004_0010_2000_0000: 0x0004_0000_0000_0000, 0x0004_0010_2000_8000: 0x0004_0000_0000_0000, 0x0004_0010_2040_0000: 0x0004_0000_0000_0000, 0x0004_0010_2040_8000: 0x0004_0000_0000_0000,
+ 0x0004_0800_0000_0000: 0x0004_0000_0000_0000, 0x0004_0800_0000_8000: 0x0004_0000_0000_0000, 0x0004_0800_0040_0000: 0x0004_0000_0000_0000, 0x0004_0800_0040_8000: 0x0004_0000_0000_0000,
+ 0x0004_0800_2000_0000: 0x0004_0000_0000_0000, 0x0004_0800_2000_8000: 0x0004_0000_0000_0000, 0x0004_0800_2040_0000: 0x0004_0000_0000_0000, 0x0004_0800_2040_8000: 0x0004_0000_0000_0000,
+ 0x0004_0810_0000_0000: 0x0004_0000_0000_0000, 0x0004_0810_0000_8000: 0x0004_0000_0000_0000, 0x0004_0810_0040_0000: 0x0004_0000_0000_0000, 0x0004_0810_0040_8000: 0x0004_0000_0000_0000,
+ 0x0004_0810_2000_0000: 0x0004_0000_0000_0000, 0x0004_0810_2000_8000: 0x0004_0000_0000_0000, 0x0004_0810_2040_0000: 0x0004_0000_0000_0000, 0x0004_0810_2040_8000: 0x0004_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0008_1020_4080_0000, 0x0000_0000_0080_0000: 0x0008_1020_4080_0000, 0x0000_0000_4000_0000: 0x0008_1020_4000_0000, 0x0000_0000_4080_0000: 0x0008_1020_4000_0000,
+ 0x0000_0020_0000_0000: 0x0008_1020_0000_0000, 0x0000_0020_0080_0000: 0x0008_1020_0000_0000, 0x0000_0020_4000_0000: 0x0008_1020_0000_0000, 0x0000_0020_4080_0000: 0x0008_1020_0000_0000,
+ 0x0000_1000_0000_0000: 0x0008_1000_0000_0000, 0x0000_1000_0080_0000: 0x0008_1000_0000_0000, 0x0000_1000_4000_0000: 0x0008_1000_0000_0000, 0x0000_1000_4080_0000: 0x0008_1000_0000_0000,
+ 0x0000_1020_0000_0000: 0x0008_1000_0000_0000, 0x0000_1020_0080_0000: 0x0008_1000_0000_0000, 0x0000_1020_4000_0000: 0x0008_1000_0000_0000, 0x0000_1020_4080_0000: 0x0008_1000_0000_0000,
+ 0x0008_0000_0000_0000: 0x0008_0000_0000_0000, 0x0008_0000_0080_0000: 0x0008_0000_0000_0000, 0x0008_0000_4000_0000: 0x0008_0000_0000_0000, 0x0008_0000_4080_0000: 0x0008_0000_0000_0000,
+ 0x0008_0020_0000_0000: 0x0008_0000_0000_0000, 0x0008_0020_0080_0000: 0x0008_0000_0000_0000, 0x0008_0020_4000_0000: 0x0008_0000_0000_0000, 0x0008_0020_4080_0000: 0x0008_0000_0000_0000,
+ 0x0008_1000_0000_0000: 0x0008_0000_0000_0000, 0x0008_1000_0080_0000: 0x0008_0000_0000_0000, 0x0008_1000_4000_0000: 0x0008_0000_0000_0000, 0x0008_1000_4080_0000: 0x0008_0000_0000_0000,
+ 0x0008_1020_0000_0000: 0x0008_0000_0000_0000, 0x0008_1020_0080_0000: 0x0008_0000_0000_0000, 0x0008_1020_4000_0000: 0x0008_0000_0000_0000, 0x0008_1020_4080_0000: 0x0008_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0010_2040_8000_0000, 0x0000_0000_8000_0000: 0x0010_2040_8000_0000, 0x0000_0040_0000_0000: 0x0010_2040_0000_0000, 0x0000_0040_8000_0000: 0x0010_2040_0000_0000,
+ 0x0000_2000_0000_0000: 0x0010_2000_0000_0000, 0x0000_2000_8000_0000: 0x0010_2000_0000_0000, 0x0000_2040_0000_0000: 0x0010_2000_0000_0000, 0x0000_2040_8000_0000: 0x0010_2000_0000_0000,
+ 0x0010_0000_0000_0000: 0x0010_0000_0000_0000, 0x0010_0000_8000_0000: 0x0010_0000_0000_0000, 0x0010_0040_0000_0000: 0x0010_0000_0000_0000, 0x0010_0040_8000_0000: 0x0010_0000_0000_0000,
+ 0x0010_2000_0000_0000: 0x0010_0000_0000_0000, 0x0010_2000_8000_0000: 0x0010_0000_0000_0000, 0x0010_2040_0000_0000: 0x0010_0000_0000_0000, 0x0010_2040_8000_0000: 0x0010_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0020_4080_0000_0000, 0x0000_0080_0000_0000: 0x0020_4080_0000_0000, 0x0000_4000_0000_0000: 0x0020_4000_0000_0000, 0x0000_4080_0000_0000: 0x0020_4000_0000_0000,
+ 0x0020_0000_0000_0000: 0x0020_0000_0000_0000, 0x0020_0080_0000_0000: 0x0020_0000_0000_0000, 0x0020_4000_0000_0000: 0x0020_0000_0000_0000, 0x0020_4080_0000_0000: 0x0020_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0040_8000_0000_0000, 0x0000_8000_0000_0000: 0x0040_8000_0000_0000, 0x0040_0000_0000_0000: 0x0040_0000_0000_0000, 0x0040_8000_0000_0000: 0x0040_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0080_0000_0000_0000, 0x0080_0000_0000_0000: 0x0080_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+)
+RU_MASK = (
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0100, 0x0000_0000_0000_0100: 0x0000_0000_0000_0100,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0001_0200, 0x0000_0000_0000_0200: 0x0000_0000_0000_0200, 0x0000_0000_0001_0000: 0x0000_0000_0001_0200, 0x0000_0000_0001_0200: 0x0000_0000_0000_0200,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0102_0400, 0x0000_0000_0000_0400: 0x0000_0000_0000_0400, 0x0000_0000_0002_0000: 0x0000_0000_0002_0400, 0x0000_0000_0002_0400: 0x0000_0000_0000_0400,
+ 0x0000_0000_0100_0000: 0x0000_0000_0102_0400, 0x0000_0000_0100_0400: 0x0000_0000_0000_0400, 0x0000_0000_0102_0000: 0x0000_0000_0002_0400, 0x0000_0000_0102_0400: 0x0000_0000_0000_0400,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0001_0204_0800, 0x0000_0000_0000_0800: 0x0000_0000_0000_0800, 0x0000_0000_0004_0000: 0x0000_0000_0004_0800, 0x0000_0000_0004_0800: 0x0000_0000_0000_0800,
+ 0x0000_0000_0200_0000: 0x0000_0000_0204_0800, 0x0000_0000_0200_0800: 0x0000_0000_0000_0800, 0x0000_0000_0204_0000: 0x0000_0000_0004_0800, 0x0000_0000_0204_0800: 0x0000_0000_0000_0800,
+ 0x0000_0001_0000_0000: 0x0000_0001_0204_0800, 0x0000_0001_0000_0800: 0x0000_0000_0000_0800, 0x0000_0001_0004_0000: 0x0000_0000_0004_0800, 0x0000_0001_0004_0800: 0x0000_0000_0000_0800,
+ 0x0000_0001_0200_0000: 0x0000_0000_0204_0800, 0x0000_0001_0200_0800: 0x0000_0000_0000_0800, 0x0000_0001_0204_0000: 0x0000_0000_0004_0800, 0x0000_0001_0204_0800: 0x0000_0000_0000_0800,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0102_0408_1000, 0x0000_0000_0000_1000: 0x0000_0000_0000_1000, 0x0000_0000_0008_0000: 0x0000_0000_0008_1000, 0x0000_0000_0008_1000: 0x0000_0000_0000_1000,
+ 0x0000_0000_0400_0000: 0x0000_0000_0408_1000, 0x0000_0000_0400_1000: 0x0000_0000_0000_1000, 0x0000_0000_0408_0000: 0x0000_0000_0008_1000, 0x0000_0000_0408_1000: 0x0000_0000_0000_1000,
+ 0x0000_0002_0000_0000: 0x0000_0002_0408_1000, 0x0000_0002_0000_1000: 0x0000_0000_0000_1000, 0x0000_0002_0008_0000: 0x0000_0000_0008_1000, 0x0000_0002_0008_1000: 0x0000_0000_0000_1000,
+ 0x0000_0002_0400_0000: 0x0000_0000_0408_1000, 0x0000_0002_0400_1000: 0x0000_0000_0000_1000, 0x0000_0002_0408_0000: 0x0000_0000_0008_1000, 0x0000_0002_0408_1000: 0x0000_0000_0000_1000,
+ 0x0000_0100_0000_0000: 0x0000_0102_0408_1000, 0x0000_0100_0000_1000: 0x0000_0000_0000_1000, 0x0000_0100_0008_0000: 0x0000_0000_0008_1000, 0x0000_0100_0008_1000: 0x0000_0000_0000_1000,
+ 0x0000_0100_0400_0000: 0x0000_0000_0408_1000, 0x0000_0100_0400_1000: 0x0000_0000_0000_1000, 0x0000_0100_0408_0000: 0x0000_0000_0008_1000, 0x0000_0100_0408_1000: 0x0000_0000_0000_1000,
+ 0x0000_0102_0000_0000: 0x0000_0002_0408_1000, 0x0000_0102_0000_1000: 0x0000_0000_0000_1000, 0x0000_0102_0008_0000: 0x0000_0000_0008_1000, 0x0000_0102_0008_1000: 0x0000_0000_0000_1000,
+ 0x0000_0102_0400_0000: 0x0000_0000_0408_1000, 0x0000_0102_0400_1000: 0x0000_0000_0000_1000, 0x0000_0102_0408_0000: 0x0000_0000_0008_1000, 0x0000_0102_0408_1000: 0x0000_0000_0000_1000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0001_0204_0810_2000, 0x0000_0000_0000_2000: 0x0000_0000_0000_2000, 0x0000_0000_0010_0000: 0x0000_0000_0010_2000, 0x0000_0000_0010_2000: 0x0000_0000_0000_2000,
+ 0x0000_0000_0800_0000: 0x0000_0000_0810_2000, 0x0000_0000_0800_2000: 0x0000_0000_0000_2000, 0x0000_0000_0810_0000: 0x0000_0000_0010_2000, 0x0000_0000_0810_2000: 0x0000_0000_0000_2000,
+ 0x0000_0004_0000_0000: 0x0000_0004_0810_2000, 0x0000_0004_0000_2000: 0x0000_0000_0000_2000, 0x0000_0004_0010_0000: 0x0000_0000_0010_2000, 0x0000_0004_0010_2000: 0x0000_0000_0000_2000,
+ 0x0000_0004_0800_0000: 0x0000_0000_0810_2000, 0x0000_0004_0800_2000: 0x0000_0000_0000_2000, 0x0000_0004_0810_0000: 0x0000_0000_0010_2000, 0x0000_0004_0810_2000: 0x0000_0000_0000_2000,
+ 0x0000_0200_0000_0000: 0x0000_0204_0810_2000, 0x0000_0200_0000_2000: 0x0000_0000_0000_2000, 0x0000_0200_0010_0000: 0x0000_0000_0010_2000, 0x0000_0200_0010_2000: 0x0000_0000_0000_2000,
+ 0x0000_0200_0800_0000: 0x0000_0000_0810_2000, 0x0000_0200_0800_2000: 0x0000_0000_0000_2000, 0x0000_0200_0810_0000: 0x0000_0000_0010_2000, 0x0000_0200_0810_2000: 0x0000_0000_0000_2000,
+ 0x0000_0204_0000_0000: 0x0000_0004_0810_2000, 0x0000_0204_0000_2000: 0x0000_0000_0000_2000, 0x0000_0204_0010_0000: 0x0000_0000_0010_2000, 0x0000_0204_0010_2000: 0x0000_0000_0000_2000,
+ 0x0000_0204_0800_0000: 0x0000_0000_0810_2000, 0x0000_0204_0800_2000: 0x0000_0000_0000_2000, 0x0000_0204_0810_0000: 0x0000_0000_0010_2000, 0x0000_0204_0810_2000: 0x0000_0000_0000_2000,
+ 0x0001_0000_0000_0000: 0x0001_0204_0810_2000, 0x0001_0000_0000_2000: 0x0000_0000_0000_2000, 0x0001_0000_0010_0000: 0x0000_0000_0010_2000, 0x0001_0000_0010_2000: 0x0000_0000_0000_2000,
+ 0x0001_0000_0800_0000: 0x0000_0000_0810_2000, 0x0001_0000_0800_2000: 0x0000_0000_0000_2000, 0x0001_0000_0810_0000: 0x0000_0000_0010_2000, 0x0001_0000_0810_2000: 0x0000_0000_0000_2000,
+ 0x0001_0004_0000_0000: 0x0000_0004_0810_2000, 0x0001_0004_0000_2000: 0x0000_0000_0000_2000, 0x0001_0004_0010_0000: 0x0000_0000_0010_2000, 0x0001_0004_0010_2000: 0x0000_0000_0000_2000,
+ 0x0001_0004_0800_0000: 0x0000_0000_0810_2000, 0x0001_0004_0800_2000: 0x0000_0000_0000_2000, 0x0001_0004_0810_0000: 0x0000_0000_0010_2000, 0x0001_0004_0810_2000: 0x0000_0000_0000_2000,
+ 0x0001_0200_0000_0000: 0x0000_0204_0810_2000, 0x0001_0200_0000_2000: 0x0000_0000_0000_2000, 0x0001_0200_0010_0000: 0x0000_0000_0010_2000, 0x0001_0200_0010_2000: 0x0000_0000_0000_2000,
+ 0x0001_0200_0800_0000: 0x0000_0000_0810_2000, 0x0001_0200_0800_2000: 0x0000_0000_0000_2000, 0x0001_0200_0810_0000: 0x0000_0000_0010_2000, 0x0001_0200_0810_2000: 0x0000_0000_0000_2000,
+ 0x0001_0204_0000_0000: 0x0000_0004_0810_2000, 0x0001_0204_0000_2000: 0x0000_0000_0000_2000, 0x0001_0204_0010_0000: 0x0000_0000_0010_2000, 0x0001_0204_0010_2000: 0x0000_0000_0000_2000,
+ 0x0001_0204_0800_0000: 0x0000_0000_0810_2000, 0x0001_0204_0800_2000: 0x0000_0000_0000_2000, 0x0001_0204_0810_0000: 0x0000_0000_0010_2000, 0x0001_0204_0810_2000: 0x0000_0000_0000_2000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0102_0408_1020_4000, 0x0000_0000_0000_4000: 0x0000_0000_0000_4000, 0x0000_0000_0020_0000: 0x0000_0000_0020_4000, 0x0000_0000_0020_4000: 0x0000_0000_0000_4000,
+ 0x0000_0000_1000_0000: 0x0000_0000_1020_4000, 0x0000_0000_1000_4000: 0x0000_0000_0000_4000, 0x0000_0000_1020_0000: 0x0000_0000_0020_4000, 0x0000_0000_1020_4000: 0x0000_0000_0000_4000,
+ 0x0000_0008_0000_0000: 0x0000_0008_1020_4000, 0x0000_0008_0000_4000: 0x0000_0000_0000_4000, 0x0000_0008_0020_0000: 0x0000_0000_0020_4000, 0x0000_0008_0020_4000: 0x0000_0000_0000_4000,
+ 0x0000_0008_1000_0000: 0x0000_0000_1020_4000, 0x0000_0008_1000_4000: 0x0000_0000_0000_4000, 0x0000_0008_1020_0000: 0x0000_0000_0020_4000, 0x0000_0008_1020_4000: 0x0000_0000_0000_4000,
+ 0x0000_0400_0000_0000: 0x0000_0408_1020_4000, 0x0000_0400_0000_4000: 0x0000_0000_0000_4000, 0x0000_0400_0020_0000: 0x0000_0000_0020_4000, 0x0000_0400_0020_4000: 0x0000_0000_0000_4000,
+ 0x0000_0400_1000_0000: 0x0000_0000_1020_4000, 0x0000_0400_1000_4000: 0x0000_0000_0000_4000, 0x0000_0400_1020_0000: 0x0000_0000_0020_4000, 0x0000_0400_1020_4000: 0x0000_0000_0000_4000,
+ 0x0000_0408_0000_0000: 0x0000_0008_1020_4000, 0x0000_0408_0000_4000: 0x0000_0000_0000_4000, 0x0000_0408_0020_0000: 0x0000_0000_0020_4000, 0x0000_0408_0020_4000: 0x0000_0000_0000_4000,
+ 0x0000_0408_1000_0000: 0x0000_0000_1020_4000, 0x0000_0408_1000_4000: 0x0000_0000_0000_4000, 0x0000_0408_1020_0000: 0x0000_0000_0020_4000, 0x0000_0408_1020_4000: 0x0000_0000_0000_4000,
+ 0x0002_0000_0000_0000: 0x0002_0408_1020_4000, 0x0002_0000_0000_4000: 0x0000_0000_0000_4000, 0x0002_0000_0020_0000: 0x0000_0000_0020_4000, 0x0002_0000_0020_4000: 0x0000_0000_0000_4000,
+ 0x0002_0000_1000_0000: 0x0000_0000_1020_4000, 0x0002_0000_1000_4000: 0x0000_0000_0000_4000, 0x0002_0000_1020_0000: 0x0000_0000_0020_4000, 0x0002_0000_1020_4000: 0x0000_0000_0000_4000,
+ 0x0002_0008_0000_0000: 0x0000_0008_1020_4000, 0x0002_0008_0000_4000: 0x0000_0000_0000_4000, 0x0002_0008_0020_0000: 0x0000_0000_0020_4000, 0x0002_0008_0020_4000: 0x0000_0000_0000_4000,
+ 0x0002_0008_1000_0000: 0x0000_0000_1020_4000, 0x0002_0008_1000_4000: 0x0000_0000_0000_4000, 0x0002_0008_1020_0000: 0x0000_0000_0020_4000, 0x0002_0008_1020_4000: 0x0000_0000_0000_4000,
+ 0x0002_0400_0000_0000: 0x0000_0408_1020_4000, 0x0002_0400_0000_4000: 0x0000_0000_0000_4000, 0x0002_0400_0020_0000: 0x0000_0000_0020_4000, 0x0002_0400_0020_4000: 0x0000_0000_0000_4000,
+ 0x0002_0400_1000_0000: 0x0000_0000_1020_4000, 0x0002_0400_1000_4000: 0x0000_0000_0000_4000, 0x0002_0400_1020_0000: 0x0000_0000_0020_4000, 0x0002_0400_1020_4000: 0x0000_0000_0000_4000,
+ 0x0002_0408_0000_0000: 0x0000_0008_1020_4000, 0x0002_0408_0000_4000: 0x0000_0000_0000_4000, 0x0002_0408_0020_0000: 0x0000_0000_0020_4000, 0x0002_0408_0020_4000: 0x0000_0000_0000_4000,
+ 0x0002_0408_1000_0000: 0x0000_0000_1020_4000, 0x0002_0408_1000_4000: 0x0000_0000_0000_4000, 0x0002_0408_1020_0000: 0x0000_0000_0020_4000, 0x0002_0408_1020_4000: 0x0000_0000_0000_4000,
+ 0x0100_0000_0000_0000: 0x0102_0408_1020_4000, 0x0100_0000_0000_4000: 0x0000_0000_0000_4000, 0x0100_0000_0020_0000: 0x0000_0000_0020_4000, 0x0100_0000_0020_4000: 0x0000_0000_0000_4000,
+ 0x0100_0000_1000_0000: 0x0000_0000_1020_4000, 0x0100_0000_1000_4000: 0x0000_0000_0000_4000, 0x0100_0000_1020_0000: 0x0000_0000_0020_4000, 0x0100_0000_1020_4000: 0x0000_0000_0000_4000,
+ 0x0100_0008_0000_0000: 0x0000_0008_1020_4000, 0x0100_0008_0000_4000: 0x0000_0000_0000_4000, 0x0100_0008_0020_0000: 0x0000_0000_0020_4000, 0x0100_0008_0020_4000: 0x0000_0000_0000_4000,
+ 0x0100_0008_1000_0000: 0x0000_0000_1020_4000, 0x0100_0008_1000_4000: 0x0000_0000_0000_4000, 0x0100_0008_1020_0000: 0x0000_0000_0020_4000, 0x0100_0008_1020_4000: 0x0000_0000_0000_4000,
+ 0x0100_0400_0000_0000: 0x0000_0408_1020_4000, 0x0100_0400_0000_4000: 0x0000_0000_0000_4000, 0x0100_0400_0020_0000: 0x0000_0000_0020_4000, 0x0100_0400_0020_4000: 0x0000_0000_0000_4000,
+ 0x0100_0400_1000_0000: 0x0000_0000_1020_4000, 0x0100_0400_1000_4000: 0x0000_0000_0000_4000, 0x0100_0400_1020_0000: 0x0000_0000_0020_4000, 0x0100_0400_1020_4000: 0x0000_0000_0000_4000,
+ 0x0100_0408_0000_0000: 0x0000_0008_1020_4000, 0x0100_0408_0000_4000: 0x0000_0000_0000_4000, 0x0100_0408_0020_0000: 0x0000_0000_0020_4000, 0x0100_0408_0020_4000: 0x0000_0000_0000_4000,
+ 0x0100_0408_1000_0000: 0x0000_0000_1020_4000, 0x0100_0408_1000_4000: 0x0000_0000_0000_4000, 0x0100_0408_1020_0000: 0x0000_0000_0020_4000, 0x0100_0408_1020_4000: 0x0000_0000_0000_4000,
+ 0x0102_0000_0000_0000: 0x0002_0408_1020_4000, 0x0102_0000_0000_4000: 0x0000_0000_0000_4000, 0x0102_0000_0020_0000: 0x0000_0000_0020_4000, 0x0102_0000_0020_4000: 0x0000_0000_0000_4000,
+ 0x0102_0000_1000_0000: 0x0000_0000_1020_4000, 0x0102_0000_1000_4000: 0x0000_0000_0000_4000, 0x0102_0000_1020_0000: 0x0000_0000_0020_4000, 0x0102_0000_1020_4000: 0x0000_0000_0000_4000,
+ 0x0102_0008_0000_0000: 0x0000_0008_1020_4000, 0x0102_0008_0000_4000: 0x0000_0000_0000_4000, 0x0102_0008_0020_0000: 0x0000_0000_0020_4000, 0x0102_0008_0020_4000: 0x0000_0000_0000_4000,
+ 0x0102_0008_1000_0000: 0x0000_0000_1020_4000, 0x0102_0008_1000_4000: 0x0000_0000_0000_4000, 0x0102_0008_1020_0000: 0x0000_0000_0020_4000, 0x0102_0008_1020_4000: 0x0000_0000_0000_4000,
+ 0x0102_0400_0000_0000: 0x0000_0408_1020_4000, 0x0102_0400_0000_4000: 0x0000_0000_0000_4000, 0x0102_0400_0020_0000: 0x0000_0000_0020_4000, 0x0102_0400_0020_4000: 0x0000_0000_0000_4000,
+ 0x0102_0400_1000_0000: 0x0000_0000_1020_4000, 0x0102_0400_1000_4000: 0x0000_0000_0000_4000, 0x0102_0400_1020_0000: 0x0000_0000_0020_4000, 0x0102_0400_1020_4000: 0x0000_0000_0000_4000,
+ 0x0102_0408_0000_0000: 0x0000_0008_1020_4000, 0x0102_0408_0000_4000: 0x0000_0000_0000_4000, 0x0102_0408_0020_0000: 0x0000_0000_0020_4000, 0x0102_0408_0020_4000: 0x0000_0000_0000_4000,
+ 0x0102_0408_1000_0000: 0x0000_0000_1020_4000, 0x0102_0408_1000_4000: 0x0000_0000_0000_4000, 0x0102_0408_1020_0000: 0x0000_0000_0020_4000, 0x0102_0408_1020_4000: 0x0000_0000_0000_4000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0001_0000, 0x0000_0000_0001_0000: 0x0000_0000_0001_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0102_0000, 0x0000_0000_0002_0000: 0x0000_0000_0002_0000, 0x0000_0000_0100_0000: 0x0000_0000_0102_0000, 0x0000_0000_0102_0000: 0x0000_0000_0002_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0001_0204_0000, 0x0000_0000_0004_0000: 0x0000_0000_0004_0000, 0x0000_0000_0200_0000: 0x0000_0000_0204_0000, 0x0000_0000_0204_0000: 0x0000_0000_0004_0000,
+ 0x0000_0001_0000_0000: 0x0000_0001_0204_0000, 0x0000_0001_0004_0000: 0x0000_0000_0004_0000, 0x0000_0001_0200_0000: 0x0000_0000_0204_0000, 0x0000_0001_0204_0000: 0x0000_0000_0004_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0102_0408_0000, 0x0000_0000_0008_0000: 0x0000_0000_0008_0000, 0x0000_0000_0400_0000: 0x0000_0000_0408_0000, 0x0000_0000_0408_0000: 0x0000_0000_0008_0000,
+ 0x0000_0002_0000_0000: 0x0000_0002_0408_0000, 0x0000_0002_0008_0000: 0x0000_0000_0008_0000, 0x0000_0002_0400_0000: 0x0000_0000_0408_0000, 0x0000_0002_0408_0000: 0x0000_0000_0008_0000,
+ 0x0000_0100_0000_0000: 0x0000_0102_0408_0000, 0x0000_0100_0008_0000: 0x0000_0000_0008_0000, 0x0000_0100_0400_0000: 0x0000_0000_0408_0000, 0x0000_0100_0408_0000: 0x0000_0000_0008_0000,
+ 0x0000_0102_0000_0000: 0x0000_0002_0408_0000, 0x0000_0102_0008_0000: 0x0000_0000_0008_0000, 0x0000_0102_0400_0000: 0x0000_0000_0408_0000, 0x0000_0102_0408_0000: 0x0000_0000_0008_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0001_0204_0810_0000, 0x0000_0000_0010_0000: 0x0000_0000_0010_0000, 0x0000_0000_0800_0000: 0x0000_0000_0810_0000, 0x0000_0000_0810_0000: 0x0000_0000_0010_0000,
+ 0x0000_0004_0000_0000: 0x0000_0004_0810_0000, 0x0000_0004_0010_0000: 0x0000_0000_0010_0000, 0x0000_0004_0800_0000: 0x0000_0000_0810_0000, 0x0000_0004_0810_0000: 0x0000_0000_0010_0000,
+ 0x0000_0200_0000_0000: 0x0000_0204_0810_0000, 0x0000_0200_0010_0000: 0x0000_0000_0010_0000, 0x0000_0200_0800_0000: 0x0000_0000_0810_0000, 0x0000_0200_0810_0000: 0x0000_0000_0010_0000,
+ 0x0000_0204_0000_0000: 0x0000_0004_0810_0000, 0x0000_0204_0010_0000: 0x0000_0000_0010_0000, 0x0000_0204_0800_0000: 0x0000_0000_0810_0000, 0x0000_0204_0810_0000: 0x0000_0000_0010_0000,
+ 0x0001_0000_0000_0000: 0x0001_0204_0810_0000, 0x0001_0000_0010_0000: 0x0000_0000_0010_0000, 0x0001_0000_0800_0000: 0x0000_0000_0810_0000, 0x0001_0000_0810_0000: 0x0000_0000_0010_0000,
+ 0x0001_0004_0000_0000: 0x0000_0004_0810_0000, 0x0001_0004_0010_0000: 0x0000_0000_0010_0000, 0x0001_0004_0800_0000: 0x0000_0000_0810_0000, 0x0001_0004_0810_0000: 0x0000_0000_0010_0000,
+ 0x0001_0200_0000_0000: 0x0000_0204_0810_0000, 0x0001_0200_0010_0000: 0x0000_0000_0010_0000, 0x0001_0200_0800_0000: 0x0000_0000_0810_0000, 0x0001_0200_0810_0000: 0x0000_0000_0010_0000,
+ 0x0001_0204_0000_0000: 0x0000_0004_0810_0000, 0x0001_0204_0010_0000: 0x0000_0000_0010_0000, 0x0001_0204_0800_0000: 0x0000_0000_0810_0000, 0x0001_0204_0810_0000: 0x0000_0000_0010_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0102_0408_1020_0000, 0x0000_0000_0020_0000: 0x0000_0000_0020_0000, 0x0000_0000_1000_0000: 0x0000_0000_1020_0000, 0x0000_0000_1020_0000: 0x0000_0000_0020_0000,
+ 0x0000_0008_0000_0000: 0x0000_0008_1020_0000, 0x0000_0008_0020_0000: 0x0000_0000_0020_0000, 0x0000_0008_1000_0000: 0x0000_0000_1020_0000, 0x0000_0008_1020_0000: 0x0000_0000_0020_0000,
+ 0x0000_0400_0000_0000: 0x0000_0408_1020_0000, 0x0000_0400_0020_0000: 0x0000_0000_0020_0000, 0x0000_0400_1000_0000: 0x0000_0000_1020_0000, 0x0000_0400_1020_0000: 0x0000_0000_0020_0000,
+ 0x0000_0408_0000_0000: 0x0000_0008_1020_0000, 0x0000_0408_0020_0000: 0x0000_0000_0020_0000, 0x0000_0408_1000_0000: 0x0000_0000_1020_0000, 0x0000_0408_1020_0000: 0x0000_0000_0020_0000,
+ 0x0002_0000_0000_0000: 0x0002_0408_1020_0000, 0x0002_0000_0020_0000: 0x0000_0000_0020_0000, 0x0002_0000_1000_0000: 0x0000_0000_1020_0000, 0x0002_0000_1020_0000: 0x0000_0000_0020_0000,
+ 0x0002_0008_0000_0000: 0x0000_0008_1020_0000, 0x0002_0008_0020_0000: 0x0000_0000_0020_0000, 0x0002_0008_1000_0000: 0x0000_0000_1020_0000, 0x0002_0008_1020_0000: 0x0000_0000_0020_0000,
+ 0x0002_0400_0000_0000: 0x0000_0408_1020_0000, 0x0002_0400_0020_0000: 0x0000_0000_0020_0000, 0x0002_0400_1000_0000: 0x0000_0000_1020_0000, 0x0002_0400_1020_0000: 0x0000_0000_0020_0000,
+ 0x0002_0408_0000_0000: 0x0000_0008_1020_0000, 0x0002_0408_0020_0000: 0x0000_0000_0020_0000, 0x0002_0408_1000_0000: 0x0000_0000_1020_0000, 0x0002_0408_1020_0000: 0x0000_0000_0020_0000,
+ 0x0100_0000_0000_0000: 0x0102_0408_1020_0000, 0x0100_0000_0020_0000: 0x0000_0000_0020_0000, 0x0100_0000_1000_0000: 0x0000_0000_1020_0000, 0x0100_0000_1020_0000: 0x0000_0000_0020_0000,
+ 0x0100_0008_0000_0000: 0x0000_0008_1020_0000, 0x0100_0008_0020_0000: 0x0000_0000_0020_0000, 0x0100_0008_1000_0000: 0x0000_0000_1020_0000, 0x0100_0008_1020_0000: 0x0000_0000_0020_0000,
+ 0x0100_0400_0000_0000: 0x0000_0408_1020_0000, 0x0100_0400_0020_0000: 0x0000_0000_0020_0000, 0x0100_0400_1000_0000: 0x0000_0000_1020_0000, 0x0100_0400_1020_0000: 0x0000_0000_0020_0000,
+ 0x0100_0408_0000_0000: 0x0000_0008_1020_0000, 0x0100_0408_0020_0000: 0x0000_0000_0020_0000, 0x0100_0408_1000_0000: 0x0000_0000_1020_0000, 0x0100_0408_1020_0000: 0x0000_0000_0020_0000,
+ 0x0102_0000_0000_0000: 0x0002_0408_1020_0000, 0x0102_0000_0020_0000: 0x0000_0000_0020_0000, 0x0102_0000_1000_0000: 0x0000_0000_1020_0000, 0x0102_0000_1020_0000: 0x0000_0000_0020_0000,
+ 0x0102_0008_0000_0000: 0x0000_0008_1020_0000, 0x0102_0008_0020_0000: 0x0000_0000_0020_0000, 0x0102_0008_1000_0000: 0x0000_0000_1020_0000, 0x0102_0008_1020_0000: 0x0000_0000_0020_0000,
+ 0x0102_0400_0000_0000: 0x0000_0408_1020_0000, 0x0102_0400_0020_0000: 0x0000_0000_0020_0000, 0x0102_0400_1000_0000: 0x0000_0000_1020_0000, 0x0102_0400_1020_0000: 0x0000_0000_0020_0000,
+ 0x0102_0408_0000_0000: 0x0000_0008_1020_0000, 0x0102_0408_0020_0000: 0x0000_0000_0020_0000, 0x0102_0408_1000_0000: 0x0000_0000_1020_0000, 0x0102_0408_1020_0000: 0x0000_0000_0020_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0204_0810_2040_0000, 0x0000_0000_0040_0000: 0x0000_0000_0040_0000, 0x0000_0000_2000_0000: 0x0000_0000_2040_0000, 0x0000_0000_2040_0000: 0x0000_0000_0040_0000,
+ 0x0000_0010_0000_0000: 0x0000_0010_2040_0000, 0x0000_0010_0040_0000: 0x0000_0000_0040_0000, 0x0000_0010_2000_0000: 0x0000_0000_2040_0000, 0x0000_0010_2040_0000: 0x0000_0000_0040_0000,
+ 0x0000_0800_0000_0000: 0x0000_0810_2040_0000, 0x0000_0800_0040_0000: 0x0000_0000_0040_0000, 0x0000_0800_2000_0000: 0x0000_0000_2040_0000, 0x0000_0800_2040_0000: 0x0000_0000_0040_0000,
+ 0x0000_0810_0000_0000: 0x0000_0010_2040_0000, 0x0000_0810_0040_0000: 0x0000_0000_0040_0000, 0x0000_0810_2000_0000: 0x0000_0000_2040_0000, 0x0000_0810_2040_0000: 0x0000_0000_0040_0000,
+ 0x0004_0000_0000_0000: 0x0004_0810_2040_0000, 0x0004_0000_0040_0000: 0x0000_0000_0040_0000, 0x0004_0000_2000_0000: 0x0000_0000_2040_0000, 0x0004_0000_2040_0000: 0x0000_0000_0040_0000,
+ 0x0004_0010_0000_0000: 0x0000_0010_2040_0000, 0x0004_0010_0040_0000: 0x0000_0000_0040_0000, 0x0004_0010_2000_0000: 0x0000_0000_2040_0000, 0x0004_0010_2040_0000: 0x0000_0000_0040_0000,
+ 0x0004_0800_0000_0000: 0x0000_0810_2040_0000, 0x0004_0800_0040_0000: 0x0000_0000_0040_0000, 0x0004_0800_2000_0000: 0x0000_0000_2040_0000, 0x0004_0800_2040_0000: 0x0000_0000_0040_0000,
+ 0x0004_0810_0000_0000: 0x0000_0010_2040_0000, 0x0004_0810_0040_0000: 0x0000_0000_0040_0000, 0x0004_0810_2000_0000: 0x0000_0000_2040_0000, 0x0004_0810_2040_0000: 0x0000_0000_0040_0000,
+ 0x0200_0000_0000_0000: 0x0204_0810_2040_0000, 0x0200_0000_0040_0000: 0x0000_0000_0040_0000, 0x0200_0000_2000_0000: 0x0000_0000_2040_0000, 0x0200_0000_2040_0000: 0x0000_0000_0040_0000,
+ 0x0200_0010_0000_0000: 0x0000_0010_2040_0000, 0x0200_0010_0040_0000: 0x0000_0000_0040_0000, 0x0200_0010_2000_0000: 0x0000_0000_2040_0000, 0x0200_0010_2040_0000: 0x0000_0000_0040_0000,
+ 0x0200_0800_0000_0000: 0x0000_0810_2040_0000, 0x0200_0800_0040_0000: 0x0000_0000_0040_0000, 0x0200_0800_2000_0000: 0x0000_0000_2040_0000, 0x0200_0800_2040_0000: 0x0000_0000_0040_0000,
+ 0x0200_0810_0000_0000: 0x0000_0010_2040_0000, 0x0200_0810_0040_0000: 0x0000_0000_0040_0000, 0x0200_0810_2000_0000: 0x0000_0000_2040_0000, 0x0200_0810_2040_0000: 0x0000_0000_0040_0000,
+ 0x0204_0000_0000_0000: 0x0004_0810_2040_0000, 0x0204_0000_0040_0000: 0x0000_0000_0040_0000, 0x0204_0000_2000_0000: 0x0000_0000_2040_0000, 0x0204_0000_2040_0000: 0x0000_0000_0040_0000,
+ 0x0204_0010_0000_0000: 0x0000_0010_2040_0000, 0x0204_0010_0040_0000: 0x0000_0000_0040_0000, 0x0204_0010_2000_0000: 0x0000_0000_2040_0000, 0x0204_0010_2040_0000: 0x0000_0000_0040_0000,
+ 0x0204_0800_0000_0000: 0x0000_0810_2040_0000, 0x0204_0800_0040_0000: 0x0000_0000_0040_0000, 0x0204_0800_2000_0000: 0x0000_0000_2040_0000, 0x0204_0800_2040_0000: 0x0000_0000_0040_0000,
+ 0x0204_0810_0000_0000: 0x0000_0010_2040_0000, 0x0204_0810_0040_0000: 0x0000_0000_0040_0000, 0x0204_0810_2000_0000: 0x0000_0000_2040_0000, 0x0204_0810_2040_0000: 0x0000_0000_0040_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0100_0000, 0x0000_0000_0100_0000: 0x0000_0000_0100_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0001_0200_0000, 0x0000_0000_0200_0000: 0x0000_0000_0200_0000, 0x0000_0001_0000_0000: 0x0000_0001_0200_0000, 0x0000_0001_0200_0000: 0x0000_0000_0200_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0102_0400_0000, 0x0000_0000_0400_0000: 0x0000_0000_0400_0000, 0x0000_0002_0000_0000: 0x0000_0002_0400_0000, 0x0000_0002_0400_0000: 0x0000_0000_0400_0000,
+ 0x0000_0100_0000_0000: 0x0000_0102_0400_0000, 0x0000_0100_0400_0000: 0x0000_0000_0400_0000, 0x0000_0102_0000_0000: 0x0000_0002_0400_0000, 0x0000_0102_0400_0000: 0x0000_0000_0400_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0001_0204_0800_0000, 0x0000_0000_0800_0000: 0x0000_0000_0800_0000, 0x0000_0004_0000_0000: 0x0000_0004_0800_0000, 0x0000_0004_0800_0000: 0x0000_0000_0800_0000,
+ 0x0000_0200_0000_0000: 0x0000_0204_0800_0000, 0x0000_0200_0800_0000: 0x0000_0000_0800_0000, 0x0000_0204_0000_0000: 0x0000_0004_0800_0000, 0x0000_0204_0800_0000: 0x0000_0000_0800_0000,
+ 0x0001_0000_0000_0000: 0x0001_0204_0800_0000, 0x0001_0000_0800_0000: 0x0000_0000_0800_0000, 0x0001_0004_0000_0000: 0x0000_0004_0800_0000, 0x0001_0004_0800_0000: 0x0000_0000_0800_0000,
+ 0x0001_0200_0000_0000: 0x0000_0204_0800_0000, 0x0001_0200_0800_0000: 0x0000_0000_0800_0000, 0x0001_0204_0000_0000: 0x0000_0004_0800_0000, 0x0001_0204_0800_0000: 0x0000_0000_0800_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0102_0408_1000_0000, 0x0000_0000_1000_0000: 0x0000_0000_1000_0000, 0x0000_0008_0000_0000: 0x0000_0008_1000_0000, 0x0000_0008_1000_0000: 0x0000_0000_1000_0000,
+ 0x0000_0400_0000_0000: 0x0000_0408_1000_0000, 0x0000_0400_1000_0000: 0x0000_0000_1000_0000, 0x0000_0408_0000_0000: 0x0000_0008_1000_0000, 0x0000_0408_1000_0000: 0x0000_0000_1000_0000,
+ 0x0002_0000_0000_0000: 0x0002_0408_1000_0000, 0x0002_0000_1000_0000: 0x0000_0000_1000_0000, 0x0002_0008_0000_0000: 0x0000_0008_1000_0000, 0x0002_0008_1000_0000: 0x0000_0000_1000_0000,
+ 0x0002_0400_0000_0000: 0x0000_0408_1000_0000, 0x0002_0400_1000_0000: 0x0000_0000_1000_0000, 0x0002_0408_0000_0000: 0x0000_0008_1000_0000, 0x0002_0408_1000_0000: 0x0000_0000_1000_0000,
+ 0x0100_0000_0000_0000: 0x0102_0408_1000_0000, 0x0100_0000_1000_0000: 0x0000_0000_1000_0000, 0x0100_0008_0000_0000: 0x0000_0008_1000_0000, 0x0100_0008_1000_0000: 0x0000_0000_1000_0000,
+ 0x0100_0400_0000_0000: 0x0000_0408_1000_0000, 0x0100_0400_1000_0000: 0x0000_0000_1000_0000, 0x0100_0408_0000_0000: 0x0000_0008_1000_0000, 0x0100_0408_1000_0000: 0x0000_0000_1000_0000,
+ 0x0102_0000_0000_0000: 0x0002_0408_1000_0000, 0x0102_0000_1000_0000: 0x0000_0000_1000_0000, 0x0102_0008_0000_0000: 0x0000_0008_1000_0000, 0x0102_0008_1000_0000: 0x0000_0000_1000_0000,
+ 0x0102_0400_0000_0000: 0x0000_0408_1000_0000, 0x0102_0400_1000_0000: 0x0000_0000_1000_0000, 0x0102_0408_0000_0000: 0x0000_0008_1000_0000, 0x0102_0408_1000_0000: 0x0000_0000_1000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0204_0810_2000_0000, 0x0000_0000_2000_0000: 0x0000_0000_2000_0000, 0x0000_0010_0000_0000: 0x0000_0010_2000_0000, 0x0000_0010_2000_0000: 0x0000_0000_2000_0000,
+ 0x0000_0800_0000_0000: 0x0000_0810_2000_0000, 0x0000_0800_2000_0000: 0x0000_0000_2000_0000, 0x0000_0810_0000_0000: 0x0000_0010_2000_0000, 0x0000_0810_2000_0000: 0x0000_0000_2000_0000,
+ 0x0004_0000_0000_0000: 0x0004_0810_2000_0000, 0x0004_0000_2000_0000: 0x0000_0000_2000_0000, 0x0004_0010_0000_0000: 0x0000_0010_2000_0000, 0x0004_0010_2000_0000: 0x0000_0000_2000_0000,
+ 0x0004_0800_0000_0000: 0x0000_0810_2000_0000, 0x0004_0800_2000_0000: 0x0000_0000_2000_0000, 0x0004_0810_0000_0000: 0x0000_0010_2000_0000, 0x0004_0810_2000_0000: 0x0000_0000_2000_0000,
+ 0x0200_0000_0000_0000: 0x0204_0810_2000_0000, 0x0200_0000_2000_0000: 0x0000_0000_2000_0000, 0x0200_0010_0000_0000: 0x0000_0010_2000_0000, 0x0200_0010_2000_0000: 0x0000_0000_2000_0000,
+ 0x0200_0800_0000_0000: 0x0000_0810_2000_0000, 0x0200_0800_2000_0000: 0x0000_0000_2000_0000, 0x0200_0810_0000_0000: 0x0000_0010_2000_0000, 0x0200_0810_2000_0000: 0x0000_0000_2000_0000,
+ 0x0204_0000_0000_0000: 0x0004_0810_2000_0000, 0x0204_0000_2000_0000: 0x0000_0000_2000_0000, 0x0204_0010_0000_0000: 0x0000_0010_2000_0000, 0x0204_0010_2000_0000: 0x0000_0000_2000_0000,
+ 0x0204_0800_0000_0000: 0x0000_0810_2000_0000, 0x0204_0800_2000_0000: 0x0000_0000_2000_0000, 0x0204_0810_0000_0000: 0x0000_0010_2000_0000, 0x0204_0810_2000_0000: 0x0000_0000_2000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0408_1020_4000_0000, 0x0000_0000_4000_0000: 0x0000_0000_4000_0000, 0x0000_0020_0000_0000: 0x0000_0020_4000_0000, 0x0000_0020_4000_0000: 0x0000_0000_4000_0000,
+ 0x0000_1000_0000_0000: 0x0000_1020_4000_0000, 0x0000_1000_4000_0000: 0x0000_0000_4000_0000, 0x0000_1020_0000_0000: 0x0000_0020_4000_0000, 0x0000_1020_4000_0000: 0x0000_0000_4000_0000,
+ 0x0008_0000_0000_0000: 0x0008_1020_4000_0000, 0x0008_0000_4000_0000: 0x0000_0000_4000_0000, 0x0008_0020_0000_0000: 0x0000_0020_4000_0000, 0x0008_0020_4000_0000: 0x0000_0000_4000_0000,
+ 0x0008_1000_0000_0000: 0x0000_1020_4000_0000, 0x0008_1000_4000_0000: 0x0000_0000_4000_0000, 0x0008_1020_0000_0000: 0x0000_0020_4000_0000, 0x0008_1020_4000_0000: 0x0000_0000_4000_0000,
+ 0x0400_0000_0000_0000: 0x0408_1020_4000_0000, 0x0400_0000_4000_0000: 0x0000_0000_4000_0000, 0x0400_0020_0000_0000: 0x0000_0020_4000_0000, 0x0400_0020_4000_0000: 0x0000_0000_4000_0000,
+ 0x0400_1000_0000_0000: 0x0000_1020_4000_0000, 0x0400_1000_4000_0000: 0x0000_0000_4000_0000, 0x0400_1020_0000_0000: 0x0000_0020_4000_0000, 0x0400_1020_4000_0000: 0x0000_0000_4000_0000,
+ 0x0408_0000_0000_0000: 0x0008_1020_4000_0000, 0x0408_0000_4000_0000: 0x0000_0000_4000_0000, 0x0408_0020_0000_0000: 0x0000_0020_4000_0000, 0x0408_0020_4000_0000: 0x0000_0000_4000_0000,
+ 0x0408_1000_0000_0000: 0x0000_1020_4000_0000, 0x0408_1000_4000_0000: 0x0000_0000_4000_0000, 0x0408_1020_0000_0000: 0x0000_0020_4000_0000, 0x0408_1020_4000_0000: 0x0000_0000_4000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0001_0000_0000, 0x0000_0001_0000_0000: 0x0000_0001_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0102_0000_0000, 0x0000_0002_0000_0000: 0x0000_0002_0000_0000, 0x0000_0100_0000_0000: 0x0000_0102_0000_0000, 0x0000_0102_0000_0000: 0x0000_0002_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0001_0204_0000_0000, 0x0000_0004_0000_0000: 0x0000_0004_0000_0000, 0x0000_0200_0000_0000: 0x0000_0204_0000_0000, 0x0000_0204_0000_0000: 0x0000_0004_0000_0000,
+ 0x0001_0000_0000_0000: 0x0001_0204_0000_0000, 0x0001_0004_0000_0000: 0x0000_0004_0000_0000, 0x0001_0200_0000_0000: 0x0000_0204_0000_0000, 0x0001_0204_0000_0000: 0x0000_0004_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0102_0408_0000_0000, 0x0000_0008_0000_0000: 0x0000_0008_0000_0000, 0x0000_0400_0000_0000: 0x0000_0408_0000_0000, 0x0000_0408_0000_0000: 0x0000_0008_0000_0000,
+ 0x0002_0000_0000_0000: 0x0002_0408_0000_0000, 0x0002_0008_0000_0000: 0x0000_0008_0000_0000, 0x0002_0400_0000_0000: 0x0000_0408_0000_0000, 0x0002_0408_0000_0000: 0x0000_0008_0000_0000,
+ 0x0100_0000_0000_0000: 0x0102_0408_0000_0000, 0x0100_0008_0000_0000: 0x0000_0008_0000_0000, 0x0100_0400_0000_0000: 0x0000_0408_0000_0000, 0x0100_0408_0000_0000: 0x0000_0008_0000_0000,
+ 0x0102_0000_0000_0000: 0x0002_0408_0000_0000, 0x0102_0008_0000_0000: 0x0000_0008_0000_0000, 0x0102_0400_0000_0000: 0x0000_0408_0000_0000, 0x0102_0408_0000_0000: 0x0000_0008_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0204_0810_0000_0000, 0x0000_0010_0000_0000: 0x0000_0010_0000_0000, 0x0000_0800_0000_0000: 0x0000_0810_0000_0000, 0x0000_0810_0000_0000: 0x0000_0010_0000_0000,
+ 0x0004_0000_0000_0000: 0x0004_0810_0000_0000, 0x0004_0010_0000_0000: 0x0000_0010_0000_0000, 0x0004_0800_0000_0000: 0x0000_0810_0000_0000, 0x0004_0810_0000_0000: 0x0000_0010_0000_0000,
+ 0x0200_0000_0000_0000: 0x0204_0810_0000_0000, 0x0200_0010_0000_0000: 0x0000_0010_0000_0000, 0x0200_0800_0000_0000: 0x0000_0810_0000_0000, 0x0200_0810_0000_0000: 0x0000_0010_0000_0000,
+ 0x0204_0000_0000_0000: 0x0004_0810_0000_0000, 0x0204_0010_0000_0000: 0x0000_0010_0000_0000, 0x0204_0800_0000_0000: 0x0000_0810_0000_0000, 0x0204_0810_0000_0000: 0x0000_0010_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0408_1020_0000_0000, 0x0000_0020_0000_0000: 0x0000_0020_0000_0000, 0x0000_1000_0000_0000: 0x0000_1020_0000_0000, 0x0000_1020_0000_0000: 0x0000_0020_0000_0000,
+ 0x0008_0000_0000_0000: 0x0008_1020_0000_0000, 0x0008_0020_0000_0000: 0x0000_0020_0000_0000, 0x0008_1000_0000_0000: 0x0000_1020_0000_0000, 0x0008_1020_0000_0000: 0x0000_0020_0000_0000,
+ 0x0400_0000_0000_0000: 0x0408_1020_0000_0000, 0x0400_0020_0000_0000: 0x0000_0020_0000_0000, 0x0400_1000_0000_0000: 0x0000_1020_0000_0000, 0x0400_1020_0000_0000: 0x0000_0020_0000_0000,
+ 0x0408_0000_0000_0000: 0x0008_1020_0000_0000, 0x0408_0020_0000_0000: 0x0000_0020_0000_0000, 0x0408_1000_0000_0000: 0x0000_1020_0000_0000, 0x0408_1020_0000_0000: 0x0000_0020_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0810_2040_0000_0000, 0x0000_0040_0000_0000: 0x0000_0040_0000_0000, 0x0000_2000_0000_0000: 0x0000_2040_0000_0000, 0x0000_2040_0000_0000: 0x0000_0040_0000_0000,
+ 0x0010_0000_0000_0000: 0x0010_2040_0000_0000, 0x0010_0040_0000_0000: 0x0000_0040_0000_0000, 0x0010_2000_0000_0000: 0x0000_2040_0000_0000, 0x0010_2040_0000_0000: 0x0000_0040_0000_0000,
+ 0x0800_0000_0000_0000: 0x0810_2040_0000_0000, 0x0800_0040_0000_0000: 0x0000_0040_0000_0000, 0x0800_2000_0000_0000: 0x0000_2040_0000_0000, 0x0800_2040_0000_0000: 0x0000_0040_0000_0000,
+ 0x0810_0000_0000_0000: 0x0010_2040_0000_0000, 0x0810_0040_0000_0000: 0x0000_0040_0000_0000, 0x0810_2000_0000_0000: 0x0000_2040_0000_0000, 0x0810_2040_0000_0000: 0x0000_0040_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0100_0000_0000, 0x0000_0100_0000_0000: 0x0000_0100_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0001_0200_0000_0000, 0x0000_0200_0000_0000: 0x0000_0200_0000_0000, 0x0001_0000_0000_0000: 0x0001_0200_0000_0000, 0x0001_0200_0000_0000: 0x0000_0200_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0102_0400_0000_0000, 0x0000_0400_0000_0000: 0x0000_0400_0000_0000, 0x0002_0000_0000_0000: 0x0002_0400_0000_0000, 0x0002_0400_0000_0000: 0x0000_0400_0000_0000,
+ 0x0100_0000_0000_0000: 0x0102_0400_0000_0000, 0x0100_0400_0000_0000: 0x0000_0400_0000_0000, 0x0102_0000_0000_0000: 0x0002_0400_0000_0000, 0x0102_0400_0000_0000: 0x0000_0400_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0204_0800_0000_0000, 0x0000_0800_0000_0000: 0x0000_0800_0000_0000, 0x0004_0000_0000_0000: 0x0004_0800_0000_0000, 0x0004_0800_0000_0000: 0x0000_0800_0000_0000,
+ 0x0200_0000_0000_0000: 0x0204_0800_0000_0000, 0x0200_0800_0000_0000: 0x0000_0800_0000_0000, 0x0204_0000_0000_0000: 0x0004_0800_0000_0000, 0x0204_0800_0000_0000: 0x0000_0800_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0408_1000_0000_0000, 0x0000_1000_0000_0000: 0x0000_1000_0000_0000, 0x0008_0000_0000_0000: 0x0008_1000_0000_0000, 0x0008_1000_0000_0000: 0x0000_1000_0000_0000,
+ 0x0400_0000_0000_0000: 0x0408_1000_0000_0000, 0x0400_1000_0000_0000: 0x0000_1000_0000_0000, 0x0408_0000_0000_0000: 0x0008_1000_0000_0000, 0x0408_1000_0000_0000: 0x0000_1000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0810_2000_0000_0000, 0x0000_2000_0000_0000: 0x0000_2000_0000_0000, 0x0010_0000_0000_0000: 0x0010_2000_0000_0000, 0x0010_2000_0000_0000: 0x0000_2000_0000_0000,
+ 0x0800_0000_0000_0000: 0x0810_2000_0000_0000, 0x0800_2000_0000_0000: 0x0000_2000_0000_0000, 0x0810_0000_0000_0000: 0x0010_2000_0000_0000, 0x0810_2000_0000_0000: 0x0000_2000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x1020_4000_0000_0000, 0x0000_4000_0000_0000: 0x0000_4000_0000_0000, 0x0020_0000_0000_0000: 0x0020_4000_0000_0000, 0x0020_4000_0000_0000: 0x0000_4000_0000_0000,
+ 0x1000_0000_0000_0000: 0x1020_4000_0000_0000, 0x1000_4000_0000_0000: 0x0000_4000_0000_0000, 0x1020_0000_0000_0000: 0x0020_4000_0000_0000, 0x1020_4000_0000_0000: 0x0000_4000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0001_0000_0000_0000, 0x0001_0000_0000_0000: 0x0001_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0102_0000_0000_0000, 0x0002_0000_0000_0000: 0x0002_0000_0000_0000, 0x0100_0000_0000_0000: 0x0102_0000_0000_0000, 0x0102_0000_0000_0000: 0x0002_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0204_0000_0000_0000, 0x0004_0000_0000_0000: 0x0004_0000_0000_0000, 0x0200_0000_0000_0000: 0x0204_0000_0000_0000, 0x0204_0000_0000_0000: 0x0004_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0408_0000_0000_0000, 0x0008_0000_0000_0000: 0x0008_0000_0000_0000, 0x0400_0000_0000_0000: 0x0408_0000_0000_0000, 0x0408_0000_0000_0000: 0x0008_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0810_0000_0000_0000, 0x0010_0000_0000_0000: 0x0010_0000_0000_0000, 0x0800_0000_0000_0000: 0x0810_0000_0000_0000, 0x0810_0000_0000_0000: 0x0010_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x1020_0000_0000_0000, 0x0020_0000_0000_0000: 0x0020_0000_0000_0000, 0x1000_0000_0000_0000: 0x1020_0000_0000_0000, 0x1020_0000_0000_0000: 0x0020_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x2040_0000_0000_0000, 0x0040_0000_0000_0000: 0x0040_0000_0000_0000, 0x2000_0000_0000_0000: 0x2040_0000_0000_0000, 0x2040_0000_0000_0000: 0x0040_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0100_0000_0000_0000, 0x0100_0000_0000_0000: 0x0100_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0200_0000_0000_0000, 0x0200_0000_0000_0000: 0x0200_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0400_0000_0000_0000, 0x0400_0000_0000_0000: 0x0400_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0800_0000_0000_0000, 0x0800_0000_0000_0000: 0x0800_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x1000_0000_0000_0000, 0x1000_0000_0000_0000: 0x1000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x2000_0000_0000_0000, 0x2000_0000_0000_0000: 0x2000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x4000_0000_0000_0000, 0x4000_0000_0000_0000: 0x4000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+)
+RD_MASK = (
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0001, 0x0000_0000_0000_0001: 0x0000_0000_0000_0001,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0002, 0x0000_0000_0000_0002: 0x0000_0000_0000_0002,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0004, 0x0000_0000_0000_0004: 0x0000_0000_0000_0004,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0008, 0x0000_0000_0000_0008: 0x0000_0000_0000_0008,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0010, 0x0000_0000_0000_0010: 0x0000_0000_0000_0010,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0020, 0x0000_0000_0000_0020: 0x0000_0000_0000_0020,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0040, 0x0000_0000_0000_0040: 0x0000_0000_0000_0040,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0100, 0x0000_0000_0000_0100: 0x0000_0000_0000_0100,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0201, 0x0000_0000_0000_0001: 0x0000_0000_0000_0201, 0x0000_0000_0000_0200: 0x0000_0000_0000_0200, 0x0000_0000_0000_0201: 0x0000_0000_0000_0200,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0402, 0x0000_0000_0000_0002: 0x0000_0000_0000_0402, 0x0000_0000_0000_0400: 0x0000_0000_0000_0400, 0x0000_0000_0000_0402: 0x0000_0000_0000_0400,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0804, 0x0000_0000_0000_0004: 0x0000_0000_0000_0804, 0x0000_0000_0000_0800: 0x0000_0000_0000_0800, 0x0000_0000_0000_0804: 0x0000_0000_0000_0800,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_1008, 0x0000_0000_0000_0008: 0x0000_0000_0000_1008, 0x0000_0000_0000_1000: 0x0000_0000_0000_1000, 0x0000_0000_0000_1008: 0x0000_0000_0000_1000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_2010, 0x0000_0000_0000_0010: 0x0000_0000_0000_2010, 0x0000_0000_0000_2000: 0x0000_0000_0000_2000, 0x0000_0000_0000_2010: 0x0000_0000_0000_2000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_4020, 0x0000_0000_0000_0020: 0x0000_0000_0000_4020, 0x0000_0000_0000_4000: 0x0000_0000_0000_4000, 0x0000_0000_0000_4020: 0x0000_0000_0000_4000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0001_0000, 0x0000_0000_0001_0000: 0x0000_0000_0001_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0002_0100, 0x0000_0000_0000_0100: 0x0000_0000_0002_0100, 0x0000_0000_0002_0000: 0x0000_0000_0002_0000, 0x0000_0000_0002_0100: 0x0000_0000_0002_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0004_0201, 0x0000_0000_0000_0001: 0x0000_0000_0004_0201, 0x0000_0000_0000_0200: 0x0000_0000_0004_0200, 0x0000_0000_0000_0201: 0x0000_0000_0004_0200,
+ 0x0000_0000_0004_0000: 0x0000_0000_0004_0000, 0x0000_0000_0004_0001: 0x0000_0000_0004_0000, 0x0000_0000_0004_0200: 0x0000_0000_0004_0000, 0x0000_0000_0004_0201: 0x0000_0000_0004_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0008_0402, 0x0000_0000_0000_0002: 0x0000_0000_0008_0402, 0x0000_0000_0000_0400: 0x0000_0000_0008_0400, 0x0000_0000_0000_0402: 0x0000_0000_0008_0400,
+ 0x0000_0000_0008_0000: 0x0000_0000_0008_0000, 0x0000_0000_0008_0002: 0x0000_0000_0008_0000, 0x0000_0000_0008_0400: 0x0000_0000_0008_0000, 0x0000_0000_0008_0402: 0x0000_0000_0008_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0010_0804, 0x0000_0000_0000_0004: 0x0000_0000_0010_0804, 0x0000_0000_0000_0800: 0x0000_0000_0010_0800, 0x0000_0000_0000_0804: 0x0000_0000_0010_0800,
+ 0x0000_0000_0010_0000: 0x0000_0000_0010_0000, 0x0000_0000_0010_0004: 0x0000_0000_0010_0000, 0x0000_0000_0010_0800: 0x0000_0000_0010_0000, 0x0000_0000_0010_0804: 0x0000_0000_0010_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0020_1008, 0x0000_0000_0000_0008: 0x0000_0000_0020_1008, 0x0000_0000_0000_1000: 0x0000_0000_0020_1000, 0x0000_0000_0000_1008: 0x0000_0000_0020_1000,
+ 0x0000_0000_0020_0000: 0x0000_0000_0020_0000, 0x0000_0000_0020_0008: 0x0000_0000_0020_0000, 0x0000_0000_0020_1000: 0x0000_0000_0020_0000, 0x0000_0000_0020_1008: 0x0000_0000_0020_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0040_2010, 0x0000_0000_0000_0010: 0x0000_0000_0040_2010, 0x0000_0000_0000_2000: 0x0000_0000_0040_2000, 0x0000_0000_0000_2010: 0x0000_0000_0040_2000,
+ 0x0000_0000_0040_0000: 0x0000_0000_0040_0000, 0x0000_0000_0040_0010: 0x0000_0000_0040_0000, 0x0000_0000_0040_2000: 0x0000_0000_0040_0000, 0x0000_0000_0040_2010: 0x0000_0000_0040_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0100_0000, 0x0000_0000_0100_0000: 0x0000_0000_0100_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0201_0000, 0x0000_0000_0001_0000: 0x0000_0000_0201_0000, 0x0000_0000_0200_0000: 0x0000_0000_0200_0000, 0x0000_0000_0201_0000: 0x0000_0000_0200_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0402_0100, 0x0000_0000_0000_0100: 0x0000_0000_0402_0100, 0x0000_0000_0002_0000: 0x0000_0000_0402_0000, 0x0000_0000_0002_0100: 0x0000_0000_0402_0000,
+ 0x0000_0000_0400_0000: 0x0000_0000_0400_0000, 0x0000_0000_0400_0100: 0x0000_0000_0400_0000, 0x0000_0000_0402_0000: 0x0000_0000_0400_0000, 0x0000_0000_0402_0100: 0x0000_0000_0400_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0804_0201, 0x0000_0000_0000_0001: 0x0000_0000_0804_0201, 0x0000_0000_0000_0200: 0x0000_0000_0804_0200, 0x0000_0000_0000_0201: 0x0000_0000_0804_0200,
+ 0x0000_0000_0004_0000: 0x0000_0000_0804_0000, 0x0000_0000_0004_0001: 0x0000_0000_0804_0000, 0x0000_0000_0004_0200: 0x0000_0000_0804_0000, 0x0000_0000_0004_0201: 0x0000_0000_0804_0000,
+ 0x0000_0000_0800_0000: 0x0000_0000_0800_0000, 0x0000_0000_0800_0001: 0x0000_0000_0800_0000, 0x0000_0000_0800_0200: 0x0000_0000_0800_0000, 0x0000_0000_0800_0201: 0x0000_0000_0800_0000,
+ 0x0000_0000_0804_0000: 0x0000_0000_0800_0000, 0x0000_0000_0804_0001: 0x0000_0000_0800_0000, 0x0000_0000_0804_0200: 0x0000_0000_0800_0000, 0x0000_0000_0804_0201: 0x0000_0000_0800_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_1008_0402, 0x0000_0000_0000_0002: 0x0000_0000_1008_0402, 0x0000_0000_0000_0400: 0x0000_0000_1008_0400, 0x0000_0000_0000_0402: 0x0000_0000_1008_0400,
+ 0x0000_0000_0008_0000: 0x0000_0000_1008_0000, 0x0000_0000_0008_0002: 0x0000_0000_1008_0000, 0x0000_0000_0008_0400: 0x0000_0000_1008_0000, 0x0000_0000_0008_0402: 0x0000_0000_1008_0000,
+ 0x0000_0000_1000_0000: 0x0000_0000_1000_0000, 0x0000_0000_1000_0002: 0x0000_0000_1000_0000, 0x0000_0000_1000_0400: 0x0000_0000_1000_0000, 0x0000_0000_1000_0402: 0x0000_0000_1000_0000,
+ 0x0000_0000_1008_0000: 0x0000_0000_1000_0000, 0x0000_0000_1008_0002: 0x0000_0000_1000_0000, 0x0000_0000_1008_0400: 0x0000_0000_1000_0000, 0x0000_0000_1008_0402: 0x0000_0000_1000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_2010_0804, 0x0000_0000_0000_0004: 0x0000_0000_2010_0804, 0x0000_0000_0000_0800: 0x0000_0000_2010_0800, 0x0000_0000_0000_0804: 0x0000_0000_2010_0800,
+ 0x0000_0000_0010_0000: 0x0000_0000_2010_0000, 0x0000_0000_0010_0004: 0x0000_0000_2010_0000, 0x0000_0000_0010_0800: 0x0000_0000_2010_0000, 0x0000_0000_0010_0804: 0x0000_0000_2010_0000,
+ 0x0000_0000_2000_0000: 0x0000_0000_2000_0000, 0x0000_0000_2000_0004: 0x0000_0000_2000_0000, 0x0000_0000_2000_0800: 0x0000_0000_2000_0000, 0x0000_0000_2000_0804: 0x0000_0000_2000_0000,
+ 0x0000_0000_2010_0000: 0x0000_0000_2000_0000, 0x0000_0000_2010_0004: 0x0000_0000_2000_0000, 0x0000_0000_2010_0800: 0x0000_0000_2000_0000, 0x0000_0000_2010_0804: 0x0000_0000_2000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_4020_1008, 0x0000_0000_0000_0008: 0x0000_0000_4020_1008, 0x0000_0000_0000_1000: 0x0000_0000_4020_1000, 0x0000_0000_0000_1008: 0x0000_0000_4020_1000,
+ 0x0000_0000_0020_0000: 0x0000_0000_4020_0000, 0x0000_0000_0020_0008: 0x0000_0000_4020_0000, 0x0000_0000_0020_1000: 0x0000_0000_4020_0000, 0x0000_0000_0020_1008: 0x0000_0000_4020_0000,
+ 0x0000_0000_4000_0000: 0x0000_0000_4000_0000, 0x0000_0000_4000_0008: 0x0000_0000_4000_0000, 0x0000_0000_4000_1000: 0x0000_0000_4000_0000, 0x0000_0000_4000_1008: 0x0000_0000_4000_0000,
+ 0x0000_0000_4020_0000: 0x0000_0000_4000_0000, 0x0000_0000_4020_0008: 0x0000_0000_4000_0000, 0x0000_0000_4020_1000: 0x0000_0000_4000_0000, 0x0000_0000_4020_1008: 0x0000_0000_4000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0001_0000_0000, 0x0000_0001_0000_0000: 0x0000_0001_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0002_0100_0000, 0x0000_0000_0100_0000: 0x0000_0002_0100_0000, 0x0000_0002_0000_0000: 0x0000_0002_0000_0000, 0x0000_0002_0100_0000: 0x0000_0002_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0004_0201_0000, 0x0000_0000_0001_0000: 0x0000_0004_0201_0000, 0x0000_0000_0200_0000: 0x0000_0004_0200_0000, 0x0000_0000_0201_0000: 0x0000_0004_0200_0000,
+ 0x0000_0004_0000_0000: 0x0000_0004_0000_0000, 0x0000_0004_0001_0000: 0x0000_0004_0000_0000, 0x0000_0004_0200_0000: 0x0000_0004_0000_0000, 0x0000_0004_0201_0000: 0x0000_0004_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0008_0402_0100, 0x0000_0000_0000_0100: 0x0000_0008_0402_0100, 0x0000_0000_0002_0000: 0x0000_0008_0402_0000, 0x0000_0000_0002_0100: 0x0000_0008_0402_0000,
+ 0x0000_0000_0400_0000: 0x0000_0008_0400_0000, 0x0000_0000_0400_0100: 0x0000_0008_0400_0000, 0x0000_0000_0402_0000: 0x0000_0008_0400_0000, 0x0000_0000_0402_0100: 0x0000_0008_0400_0000,
+ 0x0000_0008_0000_0000: 0x0000_0008_0000_0000, 0x0000_0008_0000_0100: 0x0000_0008_0000_0000, 0x0000_0008_0002_0000: 0x0000_0008_0000_0000, 0x0000_0008_0002_0100: 0x0000_0008_0000_0000,
+ 0x0000_0008_0400_0000: 0x0000_0008_0000_0000, 0x0000_0008_0400_0100: 0x0000_0008_0000_0000, 0x0000_0008_0402_0000: 0x0000_0008_0000_0000, 0x0000_0008_0402_0100: 0x0000_0008_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0010_0804_0201, 0x0000_0000_0000_0001: 0x0000_0010_0804_0201, 0x0000_0000_0000_0200: 0x0000_0010_0804_0200, 0x0000_0000_0000_0201: 0x0000_0010_0804_0200,
+ 0x0000_0000_0004_0000: 0x0000_0010_0804_0000, 0x0000_0000_0004_0001: 0x0000_0010_0804_0000, 0x0000_0000_0004_0200: 0x0000_0010_0804_0000, 0x0000_0000_0004_0201: 0x0000_0010_0804_0000,
+ 0x0000_0000_0800_0000: 0x0000_0010_0800_0000, 0x0000_0000_0800_0001: 0x0000_0010_0800_0000, 0x0000_0000_0800_0200: 0x0000_0010_0800_0000, 0x0000_0000_0800_0201: 0x0000_0010_0800_0000,
+ 0x0000_0000_0804_0000: 0x0000_0010_0800_0000, 0x0000_0000_0804_0001: 0x0000_0010_0800_0000, 0x0000_0000_0804_0200: 0x0000_0010_0800_0000, 0x0000_0000_0804_0201: 0x0000_0010_0800_0000,
+ 0x0000_0010_0000_0000: 0x0000_0010_0000_0000, 0x0000_0010_0000_0001: 0x0000_0010_0000_0000, 0x0000_0010_0000_0200: 0x0000_0010_0000_0000, 0x0000_0010_0000_0201: 0x0000_0010_0000_0000,
+ 0x0000_0010_0004_0000: 0x0000_0010_0000_0000, 0x0000_0010_0004_0001: 0x0000_0010_0000_0000, 0x0000_0010_0004_0200: 0x0000_0010_0000_0000, 0x0000_0010_0004_0201: 0x0000_0010_0000_0000,
+ 0x0000_0010_0800_0000: 0x0000_0010_0000_0000, 0x0000_0010_0800_0001: 0x0000_0010_0000_0000, 0x0000_0010_0800_0200: 0x0000_0010_0000_0000, 0x0000_0010_0800_0201: 0x0000_0010_0000_0000,
+ 0x0000_0010_0804_0000: 0x0000_0010_0000_0000, 0x0000_0010_0804_0001: 0x0000_0010_0000_0000, 0x0000_0010_0804_0200: 0x0000_0010_0000_0000, 0x0000_0010_0804_0201: 0x0000_0010_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0020_1008_0402, 0x0000_0000_0000_0002: 0x0000_0020_1008_0402, 0x0000_0000_0000_0400: 0x0000_0020_1008_0400, 0x0000_0000_0000_0402: 0x0000_0020_1008_0400,
+ 0x0000_0000_0008_0000: 0x0000_0020_1008_0000, 0x0000_0000_0008_0002: 0x0000_0020_1008_0000, 0x0000_0000_0008_0400: 0x0000_0020_1008_0000, 0x0000_0000_0008_0402: 0x0000_0020_1008_0000,
+ 0x0000_0000_1000_0000: 0x0000_0020_1000_0000, 0x0000_0000_1000_0002: 0x0000_0020_1000_0000, 0x0000_0000_1000_0400: 0x0000_0020_1000_0000, 0x0000_0000_1000_0402: 0x0000_0020_1000_0000,
+ 0x0000_0000_1008_0000: 0x0000_0020_1000_0000, 0x0000_0000_1008_0002: 0x0000_0020_1000_0000, 0x0000_0000_1008_0400: 0x0000_0020_1000_0000, 0x0000_0000_1008_0402: 0x0000_0020_1000_0000,
+ 0x0000_0020_0000_0000: 0x0000_0020_0000_0000, 0x0000_0020_0000_0002: 0x0000_0020_0000_0000, 0x0000_0020_0000_0400: 0x0000_0020_0000_0000, 0x0000_0020_0000_0402: 0x0000_0020_0000_0000,
+ 0x0000_0020_0008_0000: 0x0000_0020_0000_0000, 0x0000_0020_0008_0002: 0x0000_0020_0000_0000, 0x0000_0020_0008_0400: 0x0000_0020_0000_0000, 0x0000_0020_0008_0402: 0x0000_0020_0000_0000,
+ 0x0000_0020_1000_0000: 0x0000_0020_0000_0000, 0x0000_0020_1000_0002: 0x0000_0020_0000_0000, 0x0000_0020_1000_0400: 0x0000_0020_0000_0000, 0x0000_0020_1000_0402: 0x0000_0020_0000_0000,
+ 0x0000_0020_1008_0000: 0x0000_0020_0000_0000, 0x0000_0020_1008_0002: 0x0000_0020_0000_0000, 0x0000_0020_1008_0400: 0x0000_0020_0000_0000, 0x0000_0020_1008_0402: 0x0000_0020_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0040_2010_0804, 0x0000_0000_0000_0004: 0x0000_0040_2010_0804, 0x0000_0000_0000_0800: 0x0000_0040_2010_0800, 0x0000_0000_0000_0804: 0x0000_0040_2010_0800,
+ 0x0000_0000_0010_0000: 0x0000_0040_2010_0000, 0x0000_0000_0010_0004: 0x0000_0040_2010_0000, 0x0000_0000_0010_0800: 0x0000_0040_2010_0000, 0x0000_0000_0010_0804: 0x0000_0040_2010_0000,
+ 0x0000_0000_2000_0000: 0x0000_0040_2000_0000, 0x0000_0000_2000_0004: 0x0000_0040_2000_0000, 0x0000_0000_2000_0800: 0x0000_0040_2000_0000, 0x0000_0000_2000_0804: 0x0000_0040_2000_0000,
+ 0x0000_0000_2010_0000: 0x0000_0040_2000_0000, 0x0000_0000_2010_0004: 0x0000_0040_2000_0000, 0x0000_0000_2010_0800: 0x0000_0040_2000_0000, 0x0000_0000_2010_0804: 0x0000_0040_2000_0000,
+ 0x0000_0040_0000_0000: 0x0000_0040_0000_0000, 0x0000_0040_0000_0004: 0x0000_0040_0000_0000, 0x0000_0040_0000_0800: 0x0000_0040_0000_0000, 0x0000_0040_0000_0804: 0x0000_0040_0000_0000,
+ 0x0000_0040_0010_0000: 0x0000_0040_0000_0000, 0x0000_0040_0010_0004: 0x0000_0040_0000_0000, 0x0000_0040_0010_0800: 0x0000_0040_0000_0000, 0x0000_0040_0010_0804: 0x0000_0040_0000_0000,
+ 0x0000_0040_2000_0000: 0x0000_0040_0000_0000, 0x0000_0040_2000_0004: 0x0000_0040_0000_0000, 0x0000_0040_2000_0800: 0x0000_0040_0000_0000, 0x0000_0040_2000_0804: 0x0000_0040_0000_0000,
+ 0x0000_0040_2010_0000: 0x0000_0040_0000_0000, 0x0000_0040_2010_0004: 0x0000_0040_0000_0000, 0x0000_0040_2010_0800: 0x0000_0040_0000_0000, 0x0000_0040_2010_0804: 0x0000_0040_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0100_0000_0000, 0x0000_0100_0000_0000: 0x0000_0100_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0201_0000_0000, 0x0000_0001_0000_0000: 0x0000_0201_0000_0000, 0x0000_0200_0000_0000: 0x0000_0200_0000_0000, 0x0000_0201_0000_0000: 0x0000_0200_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0402_0100_0000, 0x0000_0000_0100_0000: 0x0000_0402_0100_0000, 0x0000_0002_0000_0000: 0x0000_0402_0000_0000, 0x0000_0002_0100_0000: 0x0000_0402_0000_0000,
+ 0x0000_0400_0000_0000: 0x0000_0400_0000_0000, 0x0000_0400_0100_0000: 0x0000_0400_0000_0000, 0x0000_0402_0000_0000: 0x0000_0400_0000_0000, 0x0000_0402_0100_0000: 0x0000_0400_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0804_0201_0000, 0x0000_0000_0001_0000: 0x0000_0804_0201_0000, 0x0000_0000_0200_0000: 0x0000_0804_0200_0000, 0x0000_0000_0201_0000: 0x0000_0804_0200_0000,
+ 0x0000_0004_0000_0000: 0x0000_0804_0000_0000, 0x0000_0004_0001_0000: 0x0000_0804_0000_0000, 0x0000_0004_0200_0000: 0x0000_0804_0000_0000, 0x0000_0004_0201_0000: 0x0000_0804_0000_0000,
+ 0x0000_0800_0000_0000: 0x0000_0800_0000_0000, 0x0000_0800_0001_0000: 0x0000_0800_0000_0000, 0x0000_0800_0200_0000: 0x0000_0800_0000_0000, 0x0000_0800_0201_0000: 0x0000_0800_0000_0000,
+ 0x0000_0804_0000_0000: 0x0000_0800_0000_0000, 0x0000_0804_0001_0000: 0x0000_0800_0000_0000, 0x0000_0804_0200_0000: 0x0000_0800_0000_0000, 0x0000_0804_0201_0000: 0x0000_0800_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_1008_0402_0100, 0x0000_0000_0000_0100: 0x0000_1008_0402_0100, 0x0000_0000_0002_0000: 0x0000_1008_0402_0000, 0x0000_0000_0002_0100: 0x0000_1008_0402_0000,
+ 0x0000_0000_0400_0000: 0x0000_1008_0400_0000, 0x0000_0000_0400_0100: 0x0000_1008_0400_0000, 0x0000_0000_0402_0000: 0x0000_1008_0400_0000, 0x0000_0000_0402_0100: 0x0000_1008_0400_0000,
+ 0x0000_0008_0000_0000: 0x0000_1008_0000_0000, 0x0000_0008_0000_0100: 0x0000_1008_0000_0000, 0x0000_0008_0002_0000: 0x0000_1008_0000_0000, 0x0000_0008_0002_0100: 0x0000_1008_0000_0000,
+ 0x0000_0008_0400_0000: 0x0000_1008_0000_0000, 0x0000_0008_0400_0100: 0x0000_1008_0000_0000, 0x0000_0008_0402_0000: 0x0000_1008_0000_0000, 0x0000_0008_0402_0100: 0x0000_1008_0000_0000,
+ 0x0000_1000_0000_0000: 0x0000_1000_0000_0000, 0x0000_1000_0000_0100: 0x0000_1000_0000_0000, 0x0000_1000_0002_0000: 0x0000_1000_0000_0000, 0x0000_1000_0002_0100: 0x0000_1000_0000_0000,
+ 0x0000_1000_0400_0000: 0x0000_1000_0000_0000, 0x0000_1000_0400_0100: 0x0000_1000_0000_0000, 0x0000_1000_0402_0000: 0x0000_1000_0000_0000, 0x0000_1000_0402_0100: 0x0000_1000_0000_0000,
+ 0x0000_1008_0000_0000: 0x0000_1000_0000_0000, 0x0000_1008_0000_0100: 0x0000_1000_0000_0000, 0x0000_1008_0002_0000: 0x0000_1000_0000_0000, 0x0000_1008_0002_0100: 0x0000_1000_0000_0000,
+ 0x0000_1008_0400_0000: 0x0000_1000_0000_0000, 0x0000_1008_0400_0100: 0x0000_1000_0000_0000, 0x0000_1008_0402_0000: 0x0000_1000_0000_0000, 0x0000_1008_0402_0100: 0x0000_1000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_2010_0804_0201, 0x0000_0000_0000_0001: 0x0000_2010_0804_0201, 0x0000_0000_0000_0200: 0x0000_2010_0804_0200, 0x0000_0000_0000_0201: 0x0000_2010_0804_0200,
+ 0x0000_0000_0004_0000: 0x0000_2010_0804_0000, 0x0000_0000_0004_0001: 0x0000_2010_0804_0000, 0x0000_0000_0004_0200: 0x0000_2010_0804_0000, 0x0000_0000_0004_0201: 0x0000_2010_0804_0000,
+ 0x0000_0000_0800_0000: 0x0000_2010_0800_0000, 0x0000_0000_0800_0001: 0x0000_2010_0800_0000, 0x0000_0000_0800_0200: 0x0000_2010_0800_0000, 0x0000_0000_0800_0201: 0x0000_2010_0800_0000,
+ 0x0000_0000_0804_0000: 0x0000_2010_0800_0000, 0x0000_0000_0804_0001: 0x0000_2010_0800_0000, 0x0000_0000_0804_0200: 0x0000_2010_0800_0000, 0x0000_0000_0804_0201: 0x0000_2010_0800_0000,
+ 0x0000_0010_0000_0000: 0x0000_2010_0000_0000, 0x0000_0010_0000_0001: 0x0000_2010_0000_0000, 0x0000_0010_0000_0200: 0x0000_2010_0000_0000, 0x0000_0010_0000_0201: 0x0000_2010_0000_0000,
+ 0x0000_0010_0004_0000: 0x0000_2010_0000_0000, 0x0000_0010_0004_0001: 0x0000_2010_0000_0000, 0x0000_0010_0004_0200: 0x0000_2010_0000_0000, 0x0000_0010_0004_0201: 0x0000_2010_0000_0000,
+ 0x0000_0010_0800_0000: 0x0000_2010_0000_0000, 0x0000_0010_0800_0001: 0x0000_2010_0000_0000, 0x0000_0010_0800_0200: 0x0000_2010_0000_0000, 0x0000_0010_0800_0201: 0x0000_2010_0000_0000,
+ 0x0000_0010_0804_0000: 0x0000_2010_0000_0000, 0x0000_0010_0804_0001: 0x0000_2010_0000_0000, 0x0000_0010_0804_0200: 0x0000_2010_0000_0000, 0x0000_0010_0804_0201: 0x0000_2010_0000_0000,
+ 0x0000_2000_0000_0000: 0x0000_2000_0000_0000, 0x0000_2000_0000_0001: 0x0000_2000_0000_0000, 0x0000_2000_0000_0200: 0x0000_2000_0000_0000, 0x0000_2000_0000_0201: 0x0000_2000_0000_0000,
+ 0x0000_2000_0004_0000: 0x0000_2000_0000_0000, 0x0000_2000_0004_0001: 0x0000_2000_0000_0000, 0x0000_2000_0004_0200: 0x0000_2000_0000_0000, 0x0000_2000_0004_0201: 0x0000_2000_0000_0000,
+ 0x0000_2000_0800_0000: 0x0000_2000_0000_0000, 0x0000_2000_0800_0001: 0x0000_2000_0000_0000, 0x0000_2000_0800_0200: 0x0000_2000_0000_0000, 0x0000_2000_0800_0201: 0x0000_2000_0000_0000,
+ 0x0000_2000_0804_0000: 0x0000_2000_0000_0000, 0x0000_2000_0804_0001: 0x0000_2000_0000_0000, 0x0000_2000_0804_0200: 0x0000_2000_0000_0000, 0x0000_2000_0804_0201: 0x0000_2000_0000_0000,
+ 0x0000_2010_0000_0000: 0x0000_2000_0000_0000, 0x0000_2010_0000_0001: 0x0000_2000_0000_0000, 0x0000_2010_0000_0200: 0x0000_2000_0000_0000, 0x0000_2010_0000_0201: 0x0000_2000_0000_0000,
+ 0x0000_2010_0004_0000: 0x0000_2000_0000_0000, 0x0000_2010_0004_0001: 0x0000_2000_0000_0000, 0x0000_2010_0004_0200: 0x0000_2000_0000_0000, 0x0000_2010_0004_0201: 0x0000_2000_0000_0000,
+ 0x0000_2010_0800_0000: 0x0000_2000_0000_0000, 0x0000_2010_0800_0001: 0x0000_2000_0000_0000, 0x0000_2010_0800_0200: 0x0000_2000_0000_0000, 0x0000_2010_0800_0201: 0x0000_2000_0000_0000,
+ 0x0000_2010_0804_0000: 0x0000_2000_0000_0000, 0x0000_2010_0804_0001: 0x0000_2000_0000_0000, 0x0000_2010_0804_0200: 0x0000_2000_0000_0000, 0x0000_2010_0804_0201: 0x0000_2000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_4020_1008_0402, 0x0000_0000_0000_0002: 0x0000_4020_1008_0402, 0x0000_0000_0000_0400: 0x0000_4020_1008_0400, 0x0000_0000_0000_0402: 0x0000_4020_1008_0400,
+ 0x0000_0000_0008_0000: 0x0000_4020_1008_0000, 0x0000_0000_0008_0002: 0x0000_4020_1008_0000, 0x0000_0000_0008_0400: 0x0000_4020_1008_0000, 0x0000_0000_0008_0402: 0x0000_4020_1008_0000,
+ 0x0000_0000_1000_0000: 0x0000_4020_1000_0000, 0x0000_0000_1000_0002: 0x0000_4020_1000_0000, 0x0000_0000_1000_0400: 0x0000_4020_1000_0000, 0x0000_0000_1000_0402: 0x0000_4020_1000_0000,
+ 0x0000_0000_1008_0000: 0x0000_4020_1000_0000, 0x0000_0000_1008_0002: 0x0000_4020_1000_0000, 0x0000_0000_1008_0400: 0x0000_4020_1000_0000, 0x0000_0000_1008_0402: 0x0000_4020_1000_0000,
+ 0x0000_0020_0000_0000: 0x0000_4020_0000_0000, 0x0000_0020_0000_0002: 0x0000_4020_0000_0000, 0x0000_0020_0000_0400: 0x0000_4020_0000_0000, 0x0000_0020_0000_0402: 0x0000_4020_0000_0000,
+ 0x0000_0020_0008_0000: 0x0000_4020_0000_0000, 0x0000_0020_0008_0002: 0x0000_4020_0000_0000, 0x0000_0020_0008_0400: 0x0000_4020_0000_0000, 0x0000_0020_0008_0402: 0x0000_4020_0000_0000,
+ 0x0000_0020_1000_0000: 0x0000_4020_0000_0000, 0x0000_0020_1000_0002: 0x0000_4020_0000_0000, 0x0000_0020_1000_0400: 0x0000_4020_0000_0000, 0x0000_0020_1000_0402: 0x0000_4020_0000_0000,
+ 0x0000_0020_1008_0000: 0x0000_4020_0000_0000, 0x0000_0020_1008_0002: 0x0000_4020_0000_0000, 0x0000_0020_1008_0400: 0x0000_4020_0000_0000, 0x0000_0020_1008_0402: 0x0000_4020_0000_0000,
+ 0x0000_4000_0000_0000: 0x0000_4000_0000_0000, 0x0000_4000_0000_0002: 0x0000_4000_0000_0000, 0x0000_4000_0000_0400: 0x0000_4000_0000_0000, 0x0000_4000_0000_0402: 0x0000_4000_0000_0000,
+ 0x0000_4000_0008_0000: 0x0000_4000_0000_0000, 0x0000_4000_0008_0002: 0x0000_4000_0000_0000, 0x0000_4000_0008_0400: 0x0000_4000_0000_0000, 0x0000_4000_0008_0402: 0x0000_4000_0000_0000,
+ 0x0000_4000_1000_0000: 0x0000_4000_0000_0000, 0x0000_4000_1000_0002: 0x0000_4000_0000_0000, 0x0000_4000_1000_0400: 0x0000_4000_0000_0000, 0x0000_4000_1000_0402: 0x0000_4000_0000_0000,
+ 0x0000_4000_1008_0000: 0x0000_4000_0000_0000, 0x0000_4000_1008_0002: 0x0000_4000_0000_0000, 0x0000_4000_1008_0400: 0x0000_4000_0000_0000, 0x0000_4000_1008_0402: 0x0000_4000_0000_0000,
+ 0x0000_4020_0000_0000: 0x0000_4000_0000_0000, 0x0000_4020_0000_0002: 0x0000_4000_0000_0000, 0x0000_4020_0000_0400: 0x0000_4000_0000_0000, 0x0000_4020_0000_0402: 0x0000_4000_0000_0000,
+ 0x0000_4020_0008_0000: 0x0000_4000_0000_0000, 0x0000_4020_0008_0002: 0x0000_4000_0000_0000, 0x0000_4020_0008_0400: 0x0000_4000_0000_0000, 0x0000_4020_0008_0402: 0x0000_4000_0000_0000,
+ 0x0000_4020_1000_0000: 0x0000_4000_0000_0000, 0x0000_4020_1000_0002: 0x0000_4000_0000_0000, 0x0000_4020_1000_0400: 0x0000_4000_0000_0000, 0x0000_4020_1000_0402: 0x0000_4000_0000_0000,
+ 0x0000_4020_1008_0000: 0x0000_4000_0000_0000, 0x0000_4020_1008_0002: 0x0000_4000_0000_0000, 0x0000_4020_1008_0400: 0x0000_4000_0000_0000, 0x0000_4020_1008_0402: 0x0000_4000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0000_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0001_0000_0000_0000, 0x0001_0000_0000_0000: 0x0001_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0002_0100_0000_0000, 0x0000_0100_0000_0000: 0x0002_0100_0000_0000, 0x0002_0000_0000_0000: 0x0002_0000_0000_0000, 0x0002_0100_0000_0000: 0x0002_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0004_0201_0000_0000, 0x0000_0001_0000_0000: 0x0004_0201_0000_0000, 0x0000_0200_0000_0000: 0x0004_0200_0000_0000, 0x0000_0201_0000_0000: 0x0004_0200_0000_0000,
+ 0x0004_0000_0000_0000: 0x0004_0000_0000_0000, 0x0004_0001_0000_0000: 0x0004_0000_0000_0000, 0x0004_0200_0000_0000: 0x0004_0000_0000_0000, 0x0004_0201_0000_0000: 0x0004_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0008_0402_0100_0000, 0x0000_0000_0100_0000: 0x0008_0402_0100_0000, 0x0000_0002_0000_0000: 0x0008_0402_0000_0000, 0x0000_0002_0100_0000: 0x0008_0402_0000_0000,
+ 0x0000_0400_0000_0000: 0x0008_0400_0000_0000, 0x0000_0400_0100_0000: 0x0008_0400_0000_0000, 0x0000_0402_0000_0000: 0x0008_0400_0000_0000, 0x0000_0402_0100_0000: 0x0008_0400_0000_0000,
+ 0x0008_0000_0000_0000: 0x0008_0000_0000_0000, 0x0008_0000_0100_0000: 0x0008_0000_0000_0000, 0x0008_0002_0000_0000: 0x0008_0000_0000_0000, 0x0008_0002_0100_0000: 0x0008_0000_0000_0000,
+ 0x0008_0400_0000_0000: 0x0008_0000_0000_0000, 0x0008_0400_0100_0000: 0x0008_0000_0000_0000, 0x0008_0402_0000_0000: 0x0008_0000_0000_0000, 0x0008_0402_0100_0000: 0x0008_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0010_0804_0201_0000, 0x0000_0000_0001_0000: 0x0010_0804_0201_0000, 0x0000_0000_0200_0000: 0x0010_0804_0200_0000, 0x0000_0000_0201_0000: 0x0010_0804_0200_0000,
+ 0x0000_0004_0000_0000: 0x0010_0804_0000_0000, 0x0000_0004_0001_0000: 0x0010_0804_0000_0000, 0x0000_0004_0200_0000: 0x0010_0804_0000_0000, 0x0000_0004_0201_0000: 0x0010_0804_0000_0000,
+ 0x0000_0800_0000_0000: 0x0010_0800_0000_0000, 0x0000_0800_0001_0000: 0x0010_0800_0000_0000, 0x0000_0800_0200_0000: 0x0010_0800_0000_0000, 0x0000_0800_0201_0000: 0x0010_0800_0000_0000,
+ 0x0000_0804_0000_0000: 0x0010_0800_0000_0000, 0x0000_0804_0001_0000: 0x0010_0800_0000_0000, 0x0000_0804_0200_0000: 0x0010_0800_0000_0000, 0x0000_0804_0201_0000: 0x0010_0800_0000_0000,
+ 0x0010_0000_0000_0000: 0x0010_0000_0000_0000, 0x0010_0000_0001_0000: 0x0010_0000_0000_0000, 0x0010_0000_0200_0000: 0x0010_0000_0000_0000, 0x0010_0000_0201_0000: 0x0010_0000_0000_0000,
+ 0x0010_0004_0000_0000: 0x0010_0000_0000_0000, 0x0010_0004_0001_0000: 0x0010_0000_0000_0000, 0x0010_0004_0200_0000: 0x0010_0000_0000_0000, 0x0010_0004_0201_0000: 0x0010_0000_0000_0000,
+ 0x0010_0800_0000_0000: 0x0010_0000_0000_0000, 0x0010_0800_0001_0000: 0x0010_0000_0000_0000, 0x0010_0800_0200_0000: 0x0010_0000_0000_0000, 0x0010_0800_0201_0000: 0x0010_0000_0000_0000,
+ 0x0010_0804_0000_0000: 0x0010_0000_0000_0000, 0x0010_0804_0001_0000: 0x0010_0000_0000_0000, 0x0010_0804_0200_0000: 0x0010_0000_0000_0000, 0x0010_0804_0201_0000: 0x0010_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0020_1008_0402_0100, 0x0000_0000_0000_0100: 0x0020_1008_0402_0100, 0x0000_0000_0002_0000: 0x0020_1008_0402_0000, 0x0000_0000_0002_0100: 0x0020_1008_0402_0000,
+ 0x0000_0000_0400_0000: 0x0020_1008_0400_0000, 0x0000_0000_0400_0100: 0x0020_1008_0400_0000, 0x0000_0000_0402_0000: 0x0020_1008_0400_0000, 0x0000_0000_0402_0100: 0x0020_1008_0400_0000,
+ 0x0000_0008_0000_0000: 0x0020_1008_0000_0000, 0x0000_0008_0000_0100: 0x0020_1008_0000_0000, 0x0000_0008_0002_0000: 0x0020_1008_0000_0000, 0x0000_0008_0002_0100: 0x0020_1008_0000_0000,
+ 0x0000_0008_0400_0000: 0x0020_1008_0000_0000, 0x0000_0008_0400_0100: 0x0020_1008_0000_0000, 0x0000_0008_0402_0000: 0x0020_1008_0000_0000, 0x0000_0008_0402_0100: 0x0020_1008_0000_0000,
+ 0x0000_1000_0000_0000: 0x0020_1000_0000_0000, 0x0000_1000_0000_0100: 0x0020_1000_0000_0000, 0x0000_1000_0002_0000: 0x0020_1000_0000_0000, 0x0000_1000_0002_0100: 0x0020_1000_0000_0000,
+ 0x0000_1000_0400_0000: 0x0020_1000_0000_0000, 0x0000_1000_0400_0100: 0x0020_1000_0000_0000, 0x0000_1000_0402_0000: 0x0020_1000_0000_0000, 0x0000_1000_0402_0100: 0x0020_1000_0000_0000,
+ 0x0000_1008_0000_0000: 0x0020_1000_0000_0000, 0x0000_1008_0000_0100: 0x0020_1000_0000_0000, 0x0000_1008_0002_0000: 0x0020_1000_0000_0000, 0x0000_1008_0002_0100: 0x0020_1000_0000_0000,
+ 0x0000_1008_0400_0000: 0x0020_1000_0000_0000, 0x0000_1008_0400_0100: 0x0020_1000_0000_0000, 0x0000_1008_0402_0000: 0x0020_1000_0000_0000, 0x0000_1008_0402_0100: 0x0020_1000_0000_0000,
+ 0x0020_0000_0000_0000: 0x0020_0000_0000_0000, 0x0020_0000_0000_0100: 0x0020_0000_0000_0000, 0x0020_0000_0002_0000: 0x0020_0000_0000_0000, 0x0020_0000_0002_0100: 0x0020_0000_0000_0000,
+ 0x0020_0000_0400_0000: 0x0020_0000_0000_0000, 0x0020_0000_0400_0100: 0x0020_0000_0000_0000, 0x0020_0000_0402_0000: 0x0020_0000_0000_0000, 0x0020_0000_0402_0100: 0x0020_0000_0000_0000,
+ 0x0020_0008_0000_0000: 0x0020_0000_0000_0000, 0x0020_0008_0000_0100: 0x0020_0000_0000_0000, 0x0020_0008_0002_0000: 0x0020_0000_0000_0000, 0x0020_0008_0002_0100: 0x0020_0000_0000_0000,
+ 0x0020_0008_0400_0000: 0x0020_0000_0000_0000, 0x0020_0008_0400_0100: 0x0020_0000_0000_0000, 0x0020_0008_0402_0000: 0x0020_0000_0000_0000, 0x0020_0008_0402_0100: 0x0020_0000_0000_0000,
+ 0x0020_1000_0000_0000: 0x0020_0000_0000_0000, 0x0020_1000_0000_0100: 0x0020_0000_0000_0000, 0x0020_1000_0002_0000: 0x0020_0000_0000_0000, 0x0020_1000_0002_0100: 0x0020_0000_0000_0000,
+ 0x0020_1000_0400_0000: 0x0020_0000_0000_0000, 0x0020_1000_0400_0100: 0x0020_0000_0000_0000, 0x0020_1000_0402_0000: 0x0020_0000_0000_0000, 0x0020_1000_0402_0100: 0x0020_0000_0000_0000,
+ 0x0020_1008_0000_0000: 0x0020_0000_0000_0000, 0x0020_1008_0000_0100: 0x0020_0000_0000_0000, 0x0020_1008_0002_0000: 0x0020_0000_0000_0000, 0x0020_1008_0002_0100: 0x0020_0000_0000_0000,
+ 0x0020_1008_0400_0000: 0x0020_0000_0000_0000, 0x0020_1008_0400_0100: 0x0020_0000_0000_0000, 0x0020_1008_0402_0000: 0x0020_0000_0000_0000, 0x0020_1008_0402_0100: 0x0020_0000_0000_0000,
+ },
+ {
+ 0x0000_0000_0000_0000: 0x0040_2010_0804_0201, 0x0000_0000_0000_0001: 0x0040_2010_0804_0201, 0x0000_0000_0000_0200: 0x0040_2010_0804_0200, 0x0000_0000_0000_0201: 0x0040_2010_0804_0200,
+ 0x0000_0000_0004_0000: 0x0040_2010_0804_0000, 0x0000_0000_0004_0001: 0x0040_2010_0804_0000, 0x0000_0000_0004_0200: 0x0040_2010_0804_0000, 0x0000_0000_0004_0201: 0x0040_2010_0804_0000,
+ 0x0000_0000_0800_0000: 0x0040_2010_0800_0000, 0x0000_0000_0800_0001: 0x0040_2010_0800_0000, 0x0000_0000_0800_0200: 0x0040_2010_0800_0000, 0x0000_0000_0800_0201: 0x0040_2010_0800_0000,
+ 0x0000_0000_0804_0000: 0x0040_2010_0800_0000, 0x0000_0000_0804_0001: 0x0040_2010_0800_0000, 0x0000_0000_0804_0200: 0x0040_2010_0800_0000, 0x0000_0000_0804_0201: 0x0040_2010_0800_0000,
+ 0x0000_0010_0000_0000: 0x0040_2010_0000_0000, 0x0000_0010_0000_0001: 0x0040_2010_0000_0000, 0x0000_0010_0000_0200: 0x0040_2010_0000_0000, 0x0000_0010_0000_0201: 0x0040_2010_0000_0000,
+ 0x0000_0010_0004_0000: 0x0040_2010_0000_0000, 0x0000_0010_0004_0001: 0x0040_2010_0000_0000, 0x0000_0010_0004_0200: 0x0040_2010_0000_0000, 0x0000_0010_0004_0201: 0x0040_2010_0000_0000,
+ 0x0000_0010_0800_0000: 0x0040_2010_0000_0000, 0x0000_0010_0800_0001: 0x0040_2010_0000_0000, 0x0000_0010_0800_0200: 0x0040_2010_0000_0000, 0x0000_0010_0800_0201: 0x0040_2010_0000_0000,
+ 0x0000_0010_0804_0000: 0x0040_2010_0000_0000, 0x0000_0010_0804_0001: 0x0040_2010_0000_0000, 0x0000_0010_0804_0200: 0x0040_2010_0000_0000, 0x0000_0010_0804_0201: 0x0040_2010_0000_0000,
+ 0x0000_2000_0000_0000: 0x0040_2000_0000_0000, 0x0000_2000_0000_0001: 0x0040_2000_0000_0000, 0x0000_2000_0000_0200: 0x0040_2000_0000_0000, 0x0000_2000_0000_0201: 0x0040_2000_0000_0000,
+ 0x0000_2000_0004_0000: 0x0040_2000_0000_0000, 0x0000_2000_0004_0001: 0x0040_2000_0000_0000, 0x0000_2000_0004_0200: 0x0040_2000_0000_0000, 0x0000_2000_0004_0201: 0x0040_2000_0000_0000,
+ 0x0000_2000_0800_0000: 0x0040_2000_0000_0000, 0x0000_2000_0800_0001: 0x0040_2000_0000_0000, 0x0000_2000_0800_0200: 0x0040_2000_0000_0000, 0x0000_2000_0800_0201: 0x0040_2000_0000_0000,
+ 0x0000_2000_0804_0000: 0x0040_2000_0000_0000, 0x0000_2000_0804_0001: 0x0040_2000_0000_0000, 0x0000_2000_0804_0200: 0x0040_2000_0000_0000, 0x0000_2000_0804_0201: 0x0040_2000_0000_0000,
+ 0x0000_2010_0000_0000: 0x0040_2000_0000_0000, 0x0000_2010_0000_0001: 0x0040_2000_0000_0000, 0x0000_2010_0000_0200: 0x0040_2000_0000_0000, 0x0000_2010_0000_0201: 0x0040_2000_0000_0000,
+ 0x0000_2010_0004_0000: 0x0040_2000_0000_0000, 0x0000_2010_0004_0001: 0x0040_2000_0000_0000, 0x0000_2010_0004_0200: 0x0040_2000_0000_0000, 0x0000_2010_0004_0201: 0x0040_2000_0000_0000,
+ 0x0000_2010_0800_0000: 0x0040_2000_0000_0000, 0x0000_2010_0800_0001: 0x0040_2000_0000_0000, 0x0000_2010_0800_0200: 0x0040_2000_0000_0000, 0x0000_2010_0800_0201: 0x0040_2000_0000_0000,
+ 0x0000_2010_0804_0000: 0x0040_2000_0000_0000, 0x0000_2010_0804_0001: 0x0040_2000_0000_0000, 0x0000_2010_0804_0200: 0x0040_2000_0000_0000, 0x0000_2010_0804_0201: 0x0040_2000_0000_0000,
+ 0x0040_0000_0000_0000: 0x0040_0000_0000_0000, 0x0040_0000_0000_0001: 0x0040_0000_0000_0000, 0x0040_0000_0000_0200: 0x0040_0000_0000_0000, 0x0040_0000_0000_0201: 0x0040_0000_0000_0000,
+ 0x0040_0000_0004_0000: 0x0040_0000_0000_0000, 0x0040_0000_0004_0001: 0x0040_0000_0000_0000, 0x0040_0000_0004_0200: 0x0040_0000_0000_0000, 0x0040_0000_0004_0201: 0x0040_0000_0000_0000,
+ 0x0040_0000_0800_0000: 0x0040_0000_0000_0000, 0x0040_0000_0800_0001: 0x0040_0000_0000_0000, 0x0040_0000_0800_0200: 0x0040_0000_0000_0000, 0x0040_0000_0800_0201: 0x0040_0000_0000_0000,
+ 0x0040_0000_0804_0000: 0x0040_0000_0000_0000, 0x0040_0000_0804_0001: 0x0040_0000_0000_0000, 0x0040_0000_0804_0200: 0x0040_0000_0000_0000, 0x0040_0000_0804_0201: 0x0040_0000_0000_0000,
+ 0x0040_0010_0000_0000: 0x0040_0000_0000_0000, 0x0040_0010_0000_0001: 0x0040_0000_0000_0000, 0x0040_0010_0000_0200: 0x0040_0000_0000_0000, 0x0040_0010_0000_0201: 0x0040_0000_0000_0000,
+ 0x0040_0010_0004_0000: 0x0040_0000_0000_0000, 0x0040_0010_0004_0001: 0x0040_0000_0000_0000, 0x0040_0010_0004_0200: 0x0040_0000_0000_0000, 0x0040_0010_0004_0201: 0x0040_0000_0000_0000,
+ 0x0040_0010_0800_0000: 0x0040_0000_0000_0000, 0x0040_0010_0800_0001: 0x0040_0000_0000_0000, 0x0040_0010_0800_0200: 0x0040_0000_0000_0000, 0x0040_0010_0800_0201: 0x0040_0000_0000_0000,
+ 0x0040_0010_0804_0000: 0x0040_0000_0000_0000, 0x0040_0010_0804_0001: 0x0040_0000_0000_0000, 0x0040_0010_0804_0200: 0x0040_0000_0000_0000, 0x0040_0010_0804_0201: 0x0040_0000_0000_0000,
+ 0x0040_2000_0000_0000: 0x0040_0000_0000_0000, 0x0040_2000_0000_0001: 0x0040_0000_0000_0000, 0x0040_2000_0000_0200: 0x0040_0000_0000_0000, 0x0040_2000_0000_0201: 0x0040_0000_0000_0000,
+ 0x0040_2000_0004_0000: 0x0040_0000_0000_0000, 0x0040_2000_0004_0001: 0x0040_0000_0000_0000, 0x0040_2000_0004_0200: 0x0040_0000_0000_0000, 0x0040_2000_0004_0201: 0x0040_0000_0000_0000,
+ 0x0040_2000_0800_0000: 0x0040_0000_0000_0000, 0x0040_2000_0800_0001: 0x0040_0000_0000_0000, 0x0040_2000_0800_0200: 0x0040_0000_0000_0000, 0x0040_2000_0800_0201: 0x0040_0000_0000_0000,
+ 0x0040_2000_0804_0000: 0x0040_0000_0000_0000, 0x0040_2000_0804_0001: 0x0040_0000_0000_0000, 0x0040_2000_0804_0200: 0x0040_0000_0000_0000, 0x0040_2000_0804_0201: 0x0040_0000_0000_0000,
+ 0x0040_2010_0000_0000: 0x0040_0000_0000_0000, 0x0040_2010_0000_0001: 0x0040_0000_0000_0000, 0x0040_2010_0000_0200: 0x0040_0000_0000_0000, 0x0040_2010_0000_0201: 0x0040_0000_0000_0000,
+ 0x0040_2010_0004_0000: 0x0040_0000_0000_0000, 0x0040_2010_0004_0001: 0x0040_0000_0000_0000, 0x0040_2010_0004_0200: 0x0040_0000_0000_0000, 0x0040_2010_0004_0201: 0x0040_0000_0000_0000,
+ 0x0040_2010_0800_0000: 0x0040_0000_0000_0000, 0x0040_2010_0800_0001: 0x0040_0000_0000_0000, 0x0040_2010_0800_0200: 0x0040_0000_0000_0000, 0x0040_2010_0800_0201: 0x0040_0000_0000_0000,
+ 0x0040_2010_0804_0000: 0x0040_0000_0000_0000, 0x0040_2010_0804_0001: 0x0040_0000_0000_0000, 0x0040_2010_0804_0200: 0x0040_0000_0000_0000, 0x0040_2010_0804_0201: 0x0040_0000_0000_0000,
+ },
+)