#define SQ_A1 0
#define A1 (1ULL << 0)
#define SQ_A2 1
#define A2 (1ULL << 1)
#define SQ_A3 2
#define A3 (1ULL << 2)
#define SQ_A4 3
#define A4 (1ULL << 3)
#define SQ_A5 4
#define A5 (1ULL << 4)
#define SQ_A6 5
#define A6 (1ULL << 5)
#define SQ_A7 6
#define A7 (1ULL << 6)
#define SQ_A8 7
#define A8 (1ULL << 7)
#define SQ_B1 8
#define B1 (1ULL << 8)
#define SQ_B2 9
#define B2 (1ULL << 9)
#define SQ_B3 10
#define B3 (1ULL << 10)
#define SQ_B4 11
#define B4 (1ULL << 11)
#define SQ_B5 12
#define B5 (1ULL << 12)
#define SQ_B6 13
#define B6 (1ULL << 13)
#define SQ_B7 14
#define B7 (1ULL << 14)
#define SQ_B8 15
#define B8 (1ULL << 15)
#define SQ_C1 16
#define C1 (1ULL << 16)
#define SQ_C2 17
#define C2 (1ULL << 17)
#define SQ_C3 18
#define C3 (1ULL << 18)
#define SQ_C4 19
#define C4 (1ULL << 19)
#define SQ_C5 20
#define C5 (1ULL << 20)
#define SQ_C6 21
#define C6 (1ULL << 21)
#define SQ_C7 22
#define C7 (1ULL << 22)
#define SQ_C8 23
#define C8 (1ULL << 23)
#define SQ_D1 24
#define D1 (1ULL << 24)
#define SQ_D2 25
#define D2 (1ULL << 25)
#define SQ_D3 26
#define D3 (1ULL << 26)
#define SQ_D4 27
#define D4 (1ULL << 27)
#define SQ_D5 28
#define D5 (1ULL << 28)
#define SQ_D6 29
#define D6 (1ULL << 29)
#define SQ_D7 30
#define D7 (1ULL << 30)
#define SQ_D8 31
#define D8 (1ULL << 31)
#define SQ_E1 32
#define E1 (1ULL << 32)
#define SQ_E2 33
#define E2 (1ULL << 33)
#define SQ_E3 34
#define E3 (1ULL << 34)
#define SQ_E4 35
#define E4 (1ULL << 35)
#define SQ_E5 36
#define E5 (1ULL << 36)
#define SQ_E6 37
#define E6 (1ULL << 37)
#define SQ_E7 38
#define E7 (1ULL << 38)
#define SQ_E8 39
#define E8 (1ULL << 39)
#define SQ_F1 40
#define F1 (1ULL << 40)
#define SQ_F2 41
#define F2 (1ULL << 41)
#define SQ_F3 42
#define F3 (1ULL << 42)
#define SQ_F4 43
#define F4 (1ULL << 43)
#define SQ_F5 44
#define F5 (1ULL << 44)
#define SQ_F6 45
#define F6 (1ULL << 45)
#define SQ_F7 46
#define F7 (1ULL << 46)
#define SQ_F8 47
#define F8 (1ULL << 47)
#define SQ_G1 48
#define G1 (1ULL << 48)
#define SQ_G2 49
#define G2 (1ULL << 49)
#define SQ_G3 50
#define G3 (1ULL << 50)
#define SQ_G4 51
#define G4 (1ULL << 51)
#define SQ_G5 52
#define G5 (1ULL << 52)
#define SQ_G6 53
#define G6 (1ULL << 53)
#define SQ_G7 54
#define G7 (1ULL << 54)
#define SQ_G8 55
#define G8 (1ULL << 55)
#define SQ_H1 56
#define H1 (1ULL << 56)
#define SQ_H2 57
#define H2 (1ULL << 57)
#define SQ_H3 58
#define H3 (1ULL << 58)
#define SQ_H4 59
#define H4 (1ULL << 59)
#define SQ_H5 60
#define H5 (1ULL << 60)
#define SQ_H6 61
#define H6 (1ULL << 61)
#define SQ_H7 62
#define H7 (1ULL << 62)
#define SQ_H8 63
#define H8 (1ULL << 63)
#define FILE_A (0|A1|A2|A3|A4|A5|A6|A7|A8)
#define FILE_B (0|B1|B2|B3|B4|B5|B6|B7|B8)
#define FILE_C (0|C1|C2|C3|C4|C5|C6|C7|C8)
#define FILE_D (0|D1|D2|D3|D4|D5|D6|D7|D8)
#define FILE_E (0|E1|E2|E3|E4|E5|E6|E7|E8)
#define FILE_F (0|F1|F2|F3|F4|F5|F6|F7|F8)
#define FILE_G (0|G1|G2|G3|G4|G5|G6|G7|G8)
#define FILE_H (0|H1|H2|H3|H4|H5|H6|H7|H8)
#define RANK_1 (0|A1|B1|C1|D1|E1|F1|G1|H1)
#define RANK_2 (0|A2|B2|C2|D2|E2|F2|G2|H2)
#define RANK_3 (0|A3|B3|C3|D3|E3|F3|G3|H3)
#define RANK_4 (0|A4|B4|C4|D4|E4|F4|G4|H4)
#define RANK_5 (0|A5|B5|C5|D5|E5|F5|G5|H5)
#define RANK_6 (0|A6|B6|C6|D6|E6|F6|G6|H6)
#define RANK_7 (0|A7|B7|C7|D7|E7|F7|G7|H7)
#define RANK_8 (0|A8|B8|C8|D8|E8|F8|G8|H8)
#define DIAG_A1H8 (0|A1|B2|C3|D4|E5|F6|G7|H8)
#define DIAG_A2G8 (0|A2|B3|C4|D5|E6|F7|G8)
#define DIAG_A3F8 (0|A3|B4|C5|D6|E7|F8)
#define DIAG_A4E8 (0|A4|B5|C6|D7|E8)
#define DIAG_A5D8 (0|A5|B6|C7|D8)
#define DIAG_A6C8 (0|A6|B7|C8)
#define DIAG_A7B8 (0|A7|B8)
#define DIAG_B1H7 (0|B1|C2|D3|E4|F5|G6|H7)
#define DIAG_C1H6 (0|C1|D2|E3|F4|G5|H6)
#define DIAG_D1H5 (0|D1|E2|F3|G4|H5)
#define DIAG_E1H4 (0|E1|F2|G3|H4)
#define DIAG_F1H3 (0|F1|G2|H3)
#define DIAG_G1H2 (0|G1|H2)
#define DIAG_A8H1 (0|A8|B7|C6|D5|E4|F3|G2|H1)
#define DIAG_A7G1 (0|A7|B6|C5|D4|E3|F2|G1)
#define DIAG_A6F1 (0|A6|B5|C4|D3|E2|F1)
#define DIAG_A5E1 (0|A5|B4|C3|D2|E1)
#define DIAG_A4D1 (0|A4|B3|C2|D1)
#define DIAG_A3C1 (0|A3|B2|C1)
#define DIAG_A2B1 (0|A2|B1)
#define DIAG_B8H2 (0|B8|C7|D6|E5|F4|G3|H2)
#define DIAG_C8H3 (0|C8|D7|E6|F5|G4|H3)
#define DIAG_D8H4 (0|D8|E7|F6|G5|H4)
#define DIAG_E8H5 (0|E8|F7|G6|H5)
#define DIAG_F8H6 (0|F8|G7|H6)
#define DIAG_G8H7 (0|G8|H7)
