MoKy

FSF_Rider

Aug 4th, 2025 (edited)
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 36.37 KB | None | 0 0
  1. # FSF_Rider - unlimited riders XX/X0 or riders with limited number of steps X1/X9
  2. # Added Camelrider/Jamal, Dabbabarider and Alfilrider into Fairy Stockfish
  3. -------------------------------------------------------------------------------------------------------------------------------------
  4. # types.h, lines 453-478
  5.  
  6. enum RiderType : int {
  7.   NO_RIDER = 0,
  8.   RIDER_BISHOP = 1 << 0,
  9.   RIDER_ROOK_H = 1 << 1,
  10.   RIDER_ROOK_V = 1 << 2,
  11.   RIDER_CANNON_H = 1 << 3,
  12.   RIDER_CANNON_V = 1 << 4,
  13.   RIDER_LAME_DABBABA = 1 << 5,
  14.   RIDER_HORSE = 1 << 6,
  15.   RIDER_JAMAL = 1 << 7,
  16.   RIDER_ELEPHANT = 1 << 8,
  17.   RIDER_JANGGI_ELEPHANT = 1 << 9,
  18.   RIDER_CANNON_DIAG = 1 << 10,
  19.   RIDER_NIGHTRIDER = 1 << 11,
  20.   RIDER_CAMELRIDER = 1 << 12,
  21.   RIDER_ALFILRIDER = 1 << 13,
  22.   RIDER_DABBABARIDER = 1 << 14,
  23.   RIDER_GRASSHOPPER_H = 1 << 15,
  24.   RIDER_GRASSHOPPER_V = 1 << 16,
  25.   RIDER_GRASSHOPPER_D = 1 << 17,
  26.  
  27.   HOPPING_RIDERS =  RIDER_CANNON_H | RIDER_CANNON_V | RIDER_CANNON_DIAG | RIDER_GRASSHOPPER_H | RIDER_GRASSHOPPER_V | RIDER_GRASSHOPPER_D,
  28.   LAME_LEAPERS = RIDER_LAME_DABBABA | RIDER_HORSE | RIDER_JAMAL | RIDER_ELEPHANT | RIDER_JANGGI_ELEPHANT,
  29.   ASYMMETRICAL_RIDERS =  RIDER_HORSE | RIDER_JANGGI_ELEPHANT | RIDER_GRASSHOPPER_H | RIDER_GRASSHOPPER_V | RIDER_GRASSHOPPER_D,
  30.   NON_SLIDING_RIDERS = HOPPING_RIDERS | LAME_LEAPERS | RIDER_NIGHTRIDER | RIDER_CAMELRIDER | RIDER_ALFILRIDER | RIDER_DABBABARIDER,
  31. };
  32. -------------------------------------------------------------------------------------------------------------------------------------
  33. # bitboard.h, lines 147-163
  34.  
  35. extern Magic RookMagicsH[SQUARE_NB];
  36. extern Magic RookMagicsV[SQUARE_NB];
  37. extern Magic BishopMagics[SQUARE_NB];
  38. extern Magic CannonMagicsH[SQUARE_NB];
  39. extern Magic CannonMagicsV[SQUARE_NB];
  40. extern Magic LameDabbabaMagics[SQUARE_NB];
  41. extern Magic HorseMagics[SQUARE_NB];
  42. extern Magic JamalMagics[SQUARE_NB];
  43. extern Magic ElephantMagics[SQUARE_NB];
  44. extern Magic JanggiElephantMagics[SQUARE_NB];
  45. extern Magic CannonDiagMagics[SQUARE_NB];
  46. extern Magic NightriderMagics[SQUARE_NB];
  47. extern Magic CamelriderMagics[SQUARE_NB];
  48. extern Magic AlfilriderMagics[SQUARE_NB];
  49. extern Magic DabbabariderMagics[SQUARE_NB];
  50. extern Magic GrasshopperMagicsH[SQUARE_NB];
  51. extern Magic GrasshopperMagicsV[SQUARE_NB];
  52. extern Magic GrasshopperMagicsD[SQUARE_NB];
  53.  
  54. # bitboard.h, lines 407-430
  55.  
  56. template<RiderType R>
  57. inline Bitboard rider_attacks_bb(Square s, Bitboard occupied) {
  58.  
  59.   static_assert(R != NO_RIDER && !(R & (R - 1))); // exactly one bit
  60.   const Magic& m =  R == RIDER_ROOK_H ? RookMagicsH[s]
  61.                   : R == RIDER_ROOK_V ? RookMagicsV[s]
  62.                   : R == RIDER_CANNON_H ? CannonMagicsH[s]
  63.                   : R == RIDER_CANNON_V ? CannonMagicsV[s]
  64.                   : R == RIDER_LAME_DABBABA ? LameDabbabaMagics[s]
  65.                   : R == RIDER_HORSE ? HorseMagics[s]
  66.                   : R == RIDER_JAMAL ? JamalMagics[s]
  67.                   : R == RIDER_ELEPHANT ? ElephantMagics[s]
  68.                   : R == RIDER_JANGGI_ELEPHANT ? JanggiElephantMagics[s]
  69.                   : R == RIDER_CANNON_DIAG ? CannonDiagMagics[s]
  70.                   : R == RIDER_NIGHTRIDER ? NightriderMagics[s]
  71.                   : R == RIDER_CAMELRIDER ? CamelriderMagics[s]
  72.                   : R == RIDER_ALFILRIDER ? AlfilriderMagics[s]  
  73.                   : R == RIDER_DABBABARIDER ? DabbabariderMagics[s]
  74.                   : R == RIDER_GRASSHOPPER_H ? GrasshopperMagicsH[s]
  75.                   : R == RIDER_GRASSHOPPER_V ? GrasshopperMagicsV[s]
  76.                   : R == RIDER_GRASSHOPPER_D ? GrasshopperMagicsD[s]
  77.                   : BishopMagics[s];
  78.   return m.attacks[m.index(occupied)];
  79. }
  80. -------------------------------------------------------------------------------------------------------------------------------------
  81. # bitboard.cpp, lines 43-62
  82.    
  83. Magic RookMagicsH[SQUARE_NB];
  84. Magic RookMagicsV[SQUARE_NB];
  85. Magic BishopMagics[SQUARE_NB];
  86. Magic CannonMagicsH[SQUARE_NB];
  87. Magic CannonMagicsV[SQUARE_NB];
  88. Magic LameDabbabaMagics[SQUARE_NB];
  89. Magic HorseMagics[SQUARE_NB];
  90. Magic JamalMagics[SQUARE_NB];
  91. Magic ElephantMagics[SQUARE_NB];
  92. Magic JanggiElephantMagics[SQUARE_NB];
  93. Magic CannonDiagMagics[SQUARE_NB];
  94. Magic NightriderMagics[SQUARE_NB];
  95. Magic CamelriderMagics[SQUARE_NB];
  96. Magic AlfilriderMagics[SQUARE_NB];
  97. Magic DabbabariderMagics[SQUARE_NB];
  98. Magic GrasshopperMagicsH[SQUARE_NB];
  99. Magic GrasshopperMagicsV[SQUARE_NB];
  100. Magic GrasshopperMagicsD[SQUARE_NB];
  101.  
  102. Magic* magics[] = {BishopMagics, RookMagicsH, RookMagicsV, CannonMagicsH, CannonMagicsV, LameDabbabaMagics, HorseMagics, JamalMagics, ElephantMagics, JanggiElephantMagics, CannonDiagMagics, NightriderMagics, CamelriderMagics, AlfilriderMagics, DabbabariderMagics, GrasshopperMagicsH, GrasshopperMagicsV, GrasshopperMagicsD};
  103.  
  104. # bitboard.cpp, lines 66-116
  105.  
  106. #ifdef LARGEBOARDS
  107.   Bitboard RookTableH[0x11800];  // To store horizontal rook attacks
  108.   Bitboard RookTableV[0x4800];  // To store vertical rook attacks
  109.   Bitboard BishopTable[0x33C00];  // To store bishop attacks
  110.   Bitboard CannonTableH[0x11800];  // To store horizontal cannon attacks
  111.   Bitboard CannonTableV[0x4800];  // To store vertical cannon attacks
  112.   Bitboard LameDabbabaTable[0x500];  // To store lame dabbaba attacks
  113.   Bitboard HorseTable[0x500];  // To store horse attacks
  114.   Bitboard JamalTable[0x500];  // To store jamal attacks
  115.   Bitboard ElephantTable[0x400];  // To store elephant attacks
  116.   Bitboard JanggiElephantTable[0x1C000];  // To store janggi elephant attacks
  117.   Bitboard CannonDiagTable[0x33C00];  // To store diagonal cannon attacks
  118.   Bitboard NightriderTable[0x70200];  // To store nightrider attacks
  119.   Bitboard CamelriderTable[0x5400];  // To store camelrider attacks
  120.   Bitboard AlfilriderTable[0x880];  // To store alfilrider attacks
  121.   Bitboard DabbabariderTable[0x5400];  // To store dabbabarider attacks
  122.   Bitboard GrasshopperTableH[0x11800];  // To store horizontal grasshopper attacks
  123.   Bitboard GrasshopperTableV[0x4800];  // To store vertical grasshopper attacks
  124.   Bitboard GrasshopperTableD[0x33C00];  // To store diagonal grasshopper attacks
  125. #else
  126.   Bitboard RookTableH[0xA00];  // To store horizontal rook attacks
  127.   Bitboard RookTableV[0xA00];  // To store vertical rook attacks
  128.   Bitboard BishopTable[0x1480]; // To store bishop attacks
  129.   Bitboard CannonTableH[0xA00];  // To store horizontal cannon attacks
  130.   Bitboard CannonTableV[0xA00];  // To store vertical cannon attacks
  131.   Bitboard LameDabbabaTable[0x240];  // To store lame dabbaba attacks
  132.   Bitboard HorseTable[0x240];  // To store horse attacks
  133.   Bitboard JamalTable[0x240];  // To store jamal attacks
  134.   Bitboard ElephantTable[0x1A0];  // To store elephant attacks
  135.   Bitboard JanggiElephantTable[0x5C00];  // To store janggi elephant attacks
  136.   Bitboard CannonDiagTable[0x1480];  // To store diagonal cannon attacks
  137.   Bitboard NightriderTable[0x1840];  // To store nightrider attacks
  138.   Bitboard CamelriderTable[0x640];  // To store camelrider attacks
  139.   Bitboard AlfilriderTable[0x140];  // To store alfilrider attacks
  140.   Bitboard DabbabariderTable[0x640];  // To store dabbabarider attacks
  141.   Bitboard GrasshopperTableH[0xA00];  // To store horizontal grasshopper attacks
  142.   Bitboard GrasshopperTableV[0xA00];  // To store vertical grasshopper attacks
  143.   Bitboard GrasshopperTableD[0x1480]; // To store diagonal grasshopper attacks
  144. #endif
  145.  
  146.   // Rider directions
  147.   const std::map<Direction, int> RookDirectionsV { {NORTH, 0}, {SOUTH, 0}};
  148.   const std::map<Direction, int> RookDirectionsH { {EAST, 0}, {WEST, 0} };
  149.   const std::map<Direction, int> BishopDirections { {NORTH_EAST, 0}, {SOUTH_EAST, 0}, {SOUTH_WEST, 0}, {NORTH_WEST, 0} };
  150.   const std::map<Direction, int> LameDabbabaDirections { {2 * NORTH, 0}, {2 * EAST, 0}, {2 * SOUTH, 0}, {2 * WEST, 0} };
  151.   const std::map<Direction, int> HorseDirections { {2 * SOUTH + WEST, 0}, {2 * SOUTH + EAST, 0}, {SOUTH + 2 * WEST, 0}, {SOUTH + 2 * EAST, 0}, {NORTH + 2 * WEST, 0}, {NORTH + 2 * EAST, 0}, {2 * NORTH + WEST, 0}, {2 * NORTH + EAST, 0} };
  152.   const std::map<Direction, int> JamalDirections { {3 * NORTH + EAST, 0}, {3 * NORTH + WEST, 0}, {3 * SOUTH + EAST, 0}, {3 * SOUTH + WEST, 0}, {NORTH + 3 * EAST, 0}, {NORTH + 3 * WEST, 0}, {SOUTH + 3 * EAST, 0}, {SOUTH + 3 * WEST, 0} };
  153.   const std::map<Direction, int> ElephantDirections { {2 * NORTH_EAST, 0}, {2 * SOUTH_EAST, 0}, {2 * SOUTH_WEST, 0}, {2 * NORTH_WEST, 0} };
  154.   const std::map<Direction, int> JanggiElephantDirections { {NORTH + 2 * NORTH_EAST, 0}, {EAST + 2 * NORTH_EAST, 0}, {EAST + 2 * SOUTH_EAST, 0}, {SOUTH + 2 * SOUTH_EAST, 0}, {SOUTH + 2 * SOUTH_WEST, 0}, {WEST + 2 * SOUTH_WEST, 0}, {WEST + 2 * NORTH_WEST, 0}, {NORTH + 2 * NORTH_WEST, 0} };
  155.  
  156. # bitboard.cpp, line 141
  157.  
  158.              is_ok(s) && distance(s, s - (c == WHITE ? d : -d)) <= 3; // Distance 3 for jamal
  159.  
  160. # bitboard.cpp, lines 255-284
  161.  
  162.               for (auto const& [d, limit] : pi->steps[initial][modality])
  163.               {
  164.                   if (limit && LameDabbabaDirections.find(d) != LameDabbabaDirections.end())
  165.                       riderTypes |= RIDER_LAME_DABBABA;
  166.                   if (limit && HorseDirections.find(d) != HorseDirections.end())
  167.                       riderTypes |= RIDER_HORSE;
  168.                   if (limit && JamalDirections.find(d) != JamalDirections.end())
  169.                       riderTypes |= RIDER_JAMAL;
  170.                   if (limit && ElephantDirections.find(d) != ElephantDirections.end())
  171.                       riderTypes |= RIDER_ELEPHANT;
  172.                   if (limit && JanggiElephantDirections.find(d) != JanggiElephantDirections.end())
  173.                       riderTypes |= RIDER_JANGGI_ELEPHANT;
  174.               }
  175.               for (auto const& [d, limit] : pi->slider[initial][modality])
  176.               {
  177.                   if (BishopDirections.find(d) != BishopDirections.end())
  178.                       riderTypes |= RIDER_BISHOP;
  179.                   if (RookDirectionsH.find(d) != RookDirectionsH.end())
  180.                       riderTypes |= RIDER_ROOK_H;
  181.                   if (RookDirectionsV.find(d) != RookDirectionsV.end())
  182.                       riderTypes |= RIDER_ROOK_V;
  183.                   if (HorseDirections.find(d) != HorseDirections.end())
  184.                       riderTypes |= RIDER_NIGHTRIDER;
  185.                   if (JamalDirections.find(d) != JamalDirections.end())
  186.                       riderTypes |= RIDER_CAMELRIDER;
  187.                   if (ElephantDirections.find(d) != ElephantDirections.end())
  188.                       riderTypes |= RIDER_ALFILRIDER;
  189.                   if (LameDabbabaDirections.find(d) != LameDabbabaDirections.end())
  190.                       riderTypes |= RIDER_DABBABARIDER;
  191.               }
  192.  
  193. # bitboard.cpp, lines 348-386
  194.  
  195. #ifdef PRECOMPUTED_MAGICS
  196.   init_magics<RIDER>(RookTableH, RookMagicsH, RookDirectionsH, RookMagicHInit);
  197.   init_magics<RIDER>(RookTableV, RookMagicsV, RookDirectionsV, RookMagicVInit);
  198.   init_magics<RIDER>(BishopTable, BishopMagics, BishopDirections, BishopMagicInit);
  199.   init_magics<HOPPER>(CannonTableH, CannonMagicsH, RookDirectionsH, CannonMagicHInit);
  200.   init_magics<HOPPER>(CannonTableV, CannonMagicsV, RookDirectionsV, CannonMagicVInit);
  201.   init_magics<LAME_LEAPER>(LameDabbabaTable, LameDabbabaMagics, LameDabbabaDirections, LameDabbabaMagicInit);
  202.   init_magics<LAME_LEAPER>(HorseTable, HorseMagics, HorseDirections, HorseMagicInit);
  203.   init_magics<LAME_LEAPER>(JamalTable, JamalMagics, JamalDirections, JamalMagicInit);
  204.   init_magics<LAME_LEAPER>(ElephantTable, ElephantMagics, ElephantDirections, ElephantMagicInit);
  205.   init_magics<LAME_LEAPER>(JanggiElephantTable, JanggiElephantMagics, JanggiElephantDirections, JanggiElephantMagicInit);
  206.   init_magics<HOPPER>(CannonDiagTable, CannonDiagMagics, BishopDirections, CannonDiagMagicInit);
  207.   init_magics<RIDER>(NightriderTable, NightriderMagics, HorseDirections, NightriderMagicInit);
  208.   init_magics<RIDER>(CamelriderTable, CamelriderMagics, JamalDirections, CamelriderMagicInit);
  209.   init_magics<RIDER>(AlfilriderTable, AlfilriderMagics, ElephantDirections, AlfilriderMagicInit);
  210.   init_magics<RIDER>(DabbabariderTable, DabbabariderMagics, LameDabbabaDirections, DabbabariderMagicInit);
  211.   init_magics<HOPPER>(GrasshopperTableH, GrasshopperMagicsH, GrasshopperDirectionsH, GrasshopperMagicHInit);
  212.   init_magics<HOPPER>(GrasshopperTableV, GrasshopperMagicsV, GrasshopperDirectionsV, GrasshopperMagicVInit);
  213.   init_magics<HOPPER>(GrasshopperTableD, GrasshopperMagicsD, GrasshopperDirectionsD, GrasshopperMagicDInit);
  214. #else
  215.   init_magics<RIDER>(RookTableH, RookMagicsH, RookDirectionsH);
  216.   init_magics<RIDER>(RookTableV, RookMagicsV, RookDirectionsV);
  217.   init_magics<RIDER>(BishopTable, BishopMagics, BishopDirections);
  218.   init_magics<HOPPER>(CannonTableH, CannonMagicsH, RookDirectionsH);
  219.   init_magics<HOPPER>(CannonTableV, CannonMagicsV, RookDirectionsV);
  220.   init_magics<LAME_LEAPER>(LameDabbabaTable, LameDabbabaMagics, LameDabbabaDirections);
  221.   init_magics<LAME_LEAPER>(HorseTable, HorseMagics, HorseDirections);
  222.   init_magics<LAME_LEAPER>(JamalTable, JamalMagics, JamalDirections);
  223.   init_magics<LAME_LEAPER>(ElephantTable, ElephantMagics, ElephantDirections);
  224.   init_magics<LAME_LEAPER>(JanggiElephantTable, JanggiElephantMagics, JanggiElephantDirections);
  225.   init_magics<HOPPER>(CannonDiagTable, CannonDiagMagics, BishopDirections);
  226.   init_magics<RIDER>(NightriderTable, NightriderMagics, HorseDirections);
  227.   init_magics<RIDER>(CamelriderTable, CamelriderMagics, JamalDirections);
  228.   init_magics<RIDER>(AlfilriderTable, AlfilriderMagics, ElephantDirections);
  229.   init_magics<RIDER>(DabbabariderTable, DabbabariderMagics, LameDabbabaDirections);
  230.   init_magics<HOPPER>(GrasshopperTableH, GrasshopperMagicsH, GrasshopperDirectionsH);
  231.   init_magics<HOPPER>(GrasshopperTableV, GrasshopperMagicsV, GrasshopperDirectionsV);
  232.   init_magics<HOPPER>(GrasshopperTableD, GrasshopperMagicsD, GrasshopperDirectionsD);
  233. #endif
  234. -------------------------------------------------------------------------------------------------------------------------------------
  235. # magic.h, add precomputed magics
  236.  
  237.   constexpr Bitboard JamalMagicInit[SQUARE_NB] = {
  238.       B(0xC502282200061400, 0x2D07081241D90200),
  239.       B(0x402014624005200, 0x400000201040),
  240.       B(0x402014624005200, 0x400000201040),
  241.       B(0x203000214000510, 0x800088800081000),
  242.       B(0x104120804040050, 0x228008000400008),
  243.       B(0x300021100814590, 0xC4010140002000),
  244.       B(0x4040442202200141, 0x4082008649),
  245.       B(0x40288040223200, 0x2600408020080049),
  246.       B(0x104120804040050, 0x228008000400008),
  247.       B(0x40008244804008, 0x2004000080018A40),
  248.       B(0x41104D1810100050, 0x8141002010910),
  249.       B(0x4142280080C0118, 0x42400400002001),
  250.       B(0x461003008941102, 0x201000140200100),
  251.       B(0x1001000881400408, 0x420208808008040),
  252.       B(0xA020A09001200004, 0x8080000408140440),
  253.       B(0x100E040200200023, 0x38018001A0180098),
  254.       B(0x1080080814003, 0x218810050001420),
  255.       B(0x100810102286018, 0x4040048000),
  256.       B(0x1080080814003, 0x218810050001420),
  257.       B(0x1014004000C022, 0x88002C140),
  258.       B(0x883401048005202C, 0x30001044005200),
  259.       B(0x2000029240120000, 0x8008002000000060),
  260.       B(0x8011022010002, 0x200290004002208),
  261.       B(0x50014070008C00, 0x242001002602),
  262.       B(0x102400818154000, 0x2200A0980010),
  263.       B(0x20300040608E008, 0x28001008100800),
  264.       B(0x200A221100225C, 0x8A810008002),
  265.       B(0x20820201020242, 0x8000208),
  266.       B(0x1600000102802906, 0xA500120048182800),
  267.       B(0x1020008480090408, 0x4802000040000E10),
  268.       B(0x8800840040204, 0xC080080401880210),
  269.       B(0xD80000141028040, 0xC8404004000000),
  270.       B(0x11000010080412, 0x898100000040410),
  271.       B(0x203010080148E30, 0x4080000000000082),
  272.       B(0x2290180C2008204, 0x2842403111E0C001),
  273.       B(0x4400004408810048, 0x2004061024800),
  274.       B(0x6000682011018, 0x8108041004010100),
  275.       B(0x4000801200844000, 0x40A1240800100080),
  276.       B(0x2021100812800426, 0x2448411088000040),
  277.       B(0x821000200200, 0x8480200025088004),
  278.       B(0x12000202000C2, 0x4510100100200000),
  279.       B(0x1000200206040040, 0x800000440A0060),
  280.       B(0x1000200206040040, 0x800000440A0060),
  281.       B(0x200040202040088, 0x2143010500003100),
  282.       B(0x8020420424004040, 0x4000000C5811888),
  283.       B(0x140088340048410, 0x2101280A0208001),
  284.       B(0x244A00500A040004, 0x1088200820000A98),
  285.       B(0x8030000A40808030, 0x2882400C03000010),
  286.       B(0x802010408085000, 0x8430000008802040),
  287.       B(0x310040600520804, 0x128240030048002),
  288.       B(0x2840021401802800, 0x10120A2800000004),
  289.       B(0x2400000028080400, 0x4404000020C0801C),
  290.       B(0x100C00040041009, 0x1016001002040800),
  291.       B(0x1422000021038900, 0x111042000080001),
  292.       B(0x19046008880, 0x801101A01602000),
  293.       B(0x8201108A424040, 0x480400080200004),
  294.       B(0xA4008298B040208, 0x802088480008001),
  295.       B(0x1028401084004041, 0x320400840423044),
  296.       B(0x114A00003800D040, 0x44026888000800),
  297.       B(0x284000240102A120, 0x8A1C1041802052),
  298.       B(0x8440001024000, 0x2021080000004504),
  299.       B(0x204202419, 0x8040448801A00004),
  300.       B(0x1400000004400450, 0x3005128024224000),
  301.       B(0x4054500871008401, 0x808908000100001),
  302.       B(0x1000000C00020801, 0x201041001088003),
  303.       B(0x4200040008220608, 0x1002109000000020),
  304.       B(0x6212200224, 0x1400484C20110108),
  305.       B(0x404050000033140, 0x4400080640500001),
  306.       B(0x4A50010C02003A, 0x200044790800041),
  307.       B(0x1006020040002, 0x612142208420203),
  308.       B(0x8020044000108002, 0x2410110440004021),
  309.       B(0x4100200A00410002, 0x22004004002C000),
  310.       B(0x400410100040A1AA, 0x1008004028100408),
  311.       B(0x103200000001024, 0x282020A22002052),
  312.       B(0x400410100040A1AA, 0x1008004028100408),
  313.       B(0x2000000200210400, 0x1224000402800002),
  314.       B(0x601150E228104200, 0x424200C100440000),
  315.       B(0x150000A00100080, 0x80804051101120),
  316.       B(0x150000A00100080, 0x80804051101120),
  317.       B(0x4208108468, 0x500A680808404200),
  318.       B(0x100004082040010, 0x800301115022164),
  319.       B(0x4180880842, 0x119500200200042),
  320.       B(0x8000800200003024, 0x28400284090440),
  321.       B(0x2005044000200801, 0x66200228241428),
  322.       B(0xA00800004008, 0x209801018E406094),
  323.       B(0x8000808804, 0xC2004A300000004),
  324.       B(0xB16016C0580A0405, 0x10110025901802A0),
  325.       B(0x200200100800120, 0xA4C00C010201A00),
  326.       B(0x8C00910024040141, 0x300E0D0200000810),
  327.       B(0x3004010C000004, 0x1804000824804208),
  328.       B(0x100000140002801, 0x2020400400040008),
  329.       B(0x60100000000480, 0x100022220B100000),
  330.       B(0x1800002, 0x4F008001040002C0),
  331.       B(0x20008040400241, 0xB00828802A0220),
  332.       B(0x20008040400241, 0xB00828802A0220),
  333.       B(0x958808402025, 0x5020022241090000),
  334.       B(0x2000020000158000, 0x190480810804411),
  335.       B(0x2240100800002000, 0x2E128084003100),
  336.       B(0x416000820020080, 0x100500814800204D),
  337.       B(0x6080000002844005, 0x21000204E088400),
  338.       B(0x40808000C202020, 0x408001248200080),
  339.       B(0x60000A001001842, 0x80C010800404),
  340.       B(0x2600000002880118, 0x20080010080184C),
  341.       B(0x201080C00A0A208, 0x4040400882400082),
  342.       B(0x2002002001200000, 0xA18820006420220A),
  343.       B(0x201080C00A0A208, 0x4040400882400082),
  344.       B(0x2002002001200000, 0xA18820006420220A),
  345.       B(0x2000342084000000, 0x1020030040A04000),
  346.       B(0x1000803C84200005, 0x10A3010820322000),
  347.       B(0x800000010400240, 0x240820805200),
  348.       B(0x904200010180, 0x5A00A104818200),
  349.       B(0x4901080210000419, 0x2840100C200200C),
  350.       B(0x44000000800010, 0x8420A0201248A042),
  351.       B(0x4208000600109002, 0x3101002A7001008),
  352.       B(0x1028000088086405, 0x8023020130800801),
  353.       B(0x4090400C0284000, 0x4800411420206045),
  354.       B(0xC00100101001000, 0x8000000CAE03040),
  355.       B(0x80200A080006, 0xA108100880819),
  356.       B(0x4000000000100080, 0x35040084270C04),
  357.       B(0x280001002088, 0x21200228010C181),
  358.   };
  359.   constexpr Bitboard CamelriderMagicInit[SQUARE_NB] = {
  360.       B(0x380044001500, 0x6010004000908A20),
  361.       B(0xA800041081010, 0x901223001242020),
  362.       B(0x80084414021, 0x8804229800000288),
  363.       B(0x20100041108400, 0x4090401080000620),
  364.       B(0x180005220840080, 0xA3800120140200),
  365.       B(0x180005220840080, 0xA3800120140200),
  366.       B(0x80084414021, 0x8804229800000288),
  367.       B(0x8040808002348900, 0x200201502000001),
  368.       B(0x102C20005812000, 0x4100920800800),
  369.       B(0x8084425000224400, 0x10A1808400105500),
  370.       B(0x8004084940050002, 0x8C00180010000200),
  371.       B(0x8004084940050002, 0x8C00180010000200),
  372.       B(0x11008810200490, 0x43401648000C40),
  373.       B(0x4100040202100400, 0x4091C8101800122),
  374.       B(0x2003200054100, 0xA00090000000A000),
  375.       B(0x1000400102100211, 0x296118180A04014),
  376.       B(0x10840080, 0x40020801840020),
  377.       B(0x10840080, 0x40020801840020),
  378.       B(0x2003200054100, 0xA00090000000A000),
  379.       B(0x1C00240A00010604, 0x60A0010000400),
  380.       B(0x4000451040611, 0xA000284000040008),
  381.       B(0x100810102286018, 0x4040048000),
  382.       B(0x1000400102100211, 0x296118180A04014),
  383.       B(0x30040020, 0x244020000840000A),
  384.       B(0x909203000028, 0xC000004C00200041),
  385.       B(0x2001810020400110, 0xA0100800000480E2),
  386.       B(0x520040800080044, 0x8220000080001402),
  387.       B(0x20140042849501, 0x2003080800010150),
  388.       B(0x1108220088010810, 0x4000002190080000),
  389.       B(0x900002404480011, 0x880000000824402),
  390.       B(0x9011200100400, 0x3801010500040088),
  391.       B(0x8001A20061410000, 0x14008499A000000),
  392.       B(0x800010AC1600006, 0x400008500042000),
  393.       B(0x100051000A140800, 0x2200000C0004A04),
  394.       B(0x206140210900410, 0x4200001050008C),
  395.       B(0x2080B40050544300, 0x424A04000000002),
  396.       B(0x1002042C00000102, 0x4110000610000284),
  397.       B(0x40281060800800, 0x406000201260022),
  398.       B(0x8000809100400020, 0x182802A00B020081),
  399.       B(0x1802C00214003200, 0x94902001040000),
  400.       B(0x200080102010020, 0x380201A00040504),
  401.       B(0x808C42400C0020, 0x3028100840801000),
  402.       B(0xC405009000730B00, 0xA008840000020005),
  403.       B(0x84109040003800, 0x800480200014A42),
  404.       B(0x2400002042010300, 0x642200000A0810D),
  405.       B(0x1800024A2C418, 0xA040200000342600),
  406.       B(0x81180900004010, 0xD00200400000001),
  407.       B(0x8000448011000D80, 0x1080150280048080),
  408.       B(0xA00000800D0000, 0x1001008000C08014),
  409.       B(0x200004022140000, 0x2A0820000094420),
  410.       B(0x5010904000, 0x81140048205012),
  411.       B(0xA0028020000AA800, 0x401C00082001804),
  412.       B(0x402000100001090, 0x4240A40000440000),
  413.       B(0x402000100001090, 0x4240A40000440000),
  414.       B(0x10840101820880, 0xA800008000020020),
  415.       B(0x24004101908094, 0x4000180100002001),
  416.       B(0x24004101908094, 0x4000180100002001),
  417.       B(0x44040100424A0002, 0x68804100008180),
  418.       B(0x20028100028, 0x82080080210800),
  419.       B(0x402000100001090, 0x4240A40000440000),
  420.       B(0x1000100000200C00, 0x403842088000100),
  421.       B(0x200000008088, 0xC62000200488428),
  422.       B(0x4001040000040026, 0x1004880041021),
  423.       B(0x102000000010, 0x8000040140010020),
  424.       B(0xC020200088014, 0x422094000000480),
  425.       B(0x2019004504820001, 0x4008020220003083),
  426.       B(0x800800000100, 0xB111820100000002),
  427.       B(0x289001200000400, 0x49211008000A000),
  428.       B(0x40200E1080241401, 0x2000A04006000000),
  429.       B(0x20008040A0, 0xA0142003000000),
  430.       B(0x501002000080100, 0x400863400000020),
  431.       B(0x11000600000A0201, 0x8C80001A802),
  432.       B(0x41000005A000016, 0x1118010080804104),
  433.       B(0x880802042000108, 0x2800000801200800),
  434.       B(0x44088500004200C0, 0x4008840834040150),
  435.       B(0x1540008800400400, 0x6200082800020120),
  436.       B(0x1000C0100080050, 0x110181100000940),
  437.       B(0x180800004201007, 0x40800500018010),
  438.       B(0x490804B140040011, 0x100040080410A022),
  439.       B(0x1000C0100080050, 0x110181100000940),
  440.       B(0xC08120050288082, 0x24002A1414400104),
  441.       B(0x20004002910500, 0x200890484C820120),
  442.       B(0xC011000002200, 0x1001008124800000),
  443.       B(0x33008000001044C, 0x4100A803814080),
  444.       B(0x6000000000004800, 0x204022060C10000),
  445.       B(0x808010004020100, 0x350201220A001410),
  446.       B(0x1001000310018200, 0x84120007001000),
  447.       B(0x20001000040204, 0x948110C0B2081),
  448.       B(0x8000000002080225, 0x110060400900),
  449.       B(0x2600000008018740, 0x8A0020300044060),
  450.       B(0x4001880060028029, 0x204040002401000),
  451.       B(0x4401100000000202, 0x8000100110000),
  452.       B(0x88400040080820, 0x1240101025120098),
  453.       B(0x24200541001090, 0x1002500002000004),
  454.       B(0x600C000801000004, 0x8015084010200020),
  455.       B(0x8401040000400124, 0x2000081288202200),
  456.       B(0x480011020000180, 0x5402802000150000),
  457.       B(0x480011020000180, 0x5402802000150000),
  458.       B(0x480011020000180, 0x5402802000150000),
  459.       B(0x0, 0x84000002A200400C),
  460.       B(0x0, 0x84000002A200400C),
  461.       B(0x0, 0x84000002A200400C),
  462.       B(0x81040800200, 0x1044002000180108),
  463.       B(0x0, 0x84000002A200400C),
  464.       B(0x81040800200, 0x1044002000180108),
  465.       B(0x300200090800409, 0x444202000038000),
  466.       B(0x804008000040050, 0x41044890228000),
  467.       B(0x804008000040050, 0x41044890228000),
  468.       B(0x18041020028C4020, 0x40248020820804C0),
  469.       B(0x200002021083002, 0x1002001325000000),
  470.       B(0x1001048080880000, 0x990001400A10410),
  471.       B(0x80A40800C4040800, 0x2001000001001041),
  472.       B(0x420004281000, 0x408880200088404),
  473.       B(0x40340880000C0008, 0x47011107808048C0),
  474.       B(0xE0010000240004, 0x80202010001000),
  475.       B(0x100004040101100, 0x700000804200),
  476.       B(0x100011510031403, 0x100004000680),
  477.       B(0x2000C800040802A0, 0x8000690004400080),
  478.       B(0x8100010310520200, 0x1005A1000100000),
  479.       B(0x5000000100208100, 0x28100504808220),
  480.   };
  481.   constexpr Bitboard AlfilriderMagicInit[SQUARE_NB] = {
  482.       B(0x8002004D10144403, 0x400080411008C110),
  483.       B(0x50E008010000A0, 0x31004080008049),
  484.       B(0x8000288101080A00, 0x608820828090C004),
  485.       B(0x42A10240400B00, 0x420A100004200001),
  486.       B(0x20011C0040080, 0x1220082000060004),
  487.       B(0x420200830180090, 0xC00008100402000),
  488.       B(0x2000200814205000, 0x1002010020000041),
  489.       B(0x880000421002600, 0x1000050000040812),
  490.       B(0xA22000520A20A00, 0x4080401820000),
  491.       B(0xA22000520A20A00, 0x4080401820000),
  492.       B(0x800302098404080, 0x4983020000000001),
  493.       B(0x300440080424, 0x112302002A0044),
  494.       B(0x4050400020C04201, 0xC802002148024883),
  495.       B(0x2400803000890A00, 0x4404C04400000AC0),
  496.       B(0x2001820520308201, 0x2008003404349000),
  497.       B(0xC000004200AC, 0x8448010081D08000),
  498.       B(0x840010200480040, 0x801020002608000),
  499.       B(0x8000104080280040, 0x100A20112000000),
  500.       B(0x4B82200001542410, 0x800007C022000010),
  501.       B(0x6802018080929080, 0x9014400404820002),
  502.       B(0x4B82200001542410, 0x800007C022000010),
  503.       B(0x2400803000890A00, 0x4404C04400000AC0),
  504.       B(0x42110608320020, 0x9010538028204018),
  505.       B(0x20030232442, 0x880004C956008020),
  506.       B(0x422001002020B80, 0x100B021200040080),
  507.       B(0x1000200008410C84, 0x1024108400000151),
  508.       B(0x82A080200000845, 0x1518A040080020),
  509.       B(0x80400040400484, 0x5618400C00A0204),
  510.       B(0x820080A080006140, 0x8000100250009180),
  511.       B(0x20140042849501, 0x2003080800010150),
  512.       B(0x94080C0120000480, 0x2044412202002000),
  513.       B(0x400006054200C10, 0x2104400188010),
  514.       B(0x20140042849501, 0x2003080800010150),
  515.       B(0x80400040400484, 0x5618400C00A0204),
  516.       B(0x80400040400484, 0x5618400C00A0204),
  517.       B(0x20004044000023, 0x800D000400034B82),
  518.       B(0xD0000200000, 0x8004014C00600400),
  519.       B(0xD0000200000, 0x8004014C00600400),
  520.       B(0x200180040008200, 0xA411602045000100),
  521.       B(0xC200001220108000, 0x4091100402445000),
  522.       B(0x4000088280442, 0x908420140008041),
  523.       B(0xC200001220108000, 0x4091100402445000),
  524.       B(0x50B5000180000400, 0x8080184000021040),
  525.       B(0x4000000500508008, 0x120000A202210010),
  526.       B(0x200800041000000, 0x602400100448040A),
  527.       B(0x282000001020F20, 0x1A04171106001108),
  528.       B(0x484918C8A6080841, 0x200409004100040),
  529.       B(0x8000000002C008, 0x205499408008100),
  530.       B(0x808000C04000200, 0x3112204C00110080),
  531.       B(0x808000C04000200, 0x3112204C00110080),
  532.       B(0x808000C04000200, 0x3112204C00110080),
  533.       B(0x44040100424A0002, 0x68804100008180),
  534.       B(0x8A008300AC0004, 0x806110000008008),
  535.       B(0x80500023320, 0x4018900000014804),
  536.       B(0x243804068200504, 0x481084080110008),
  537.       B(0x81088040820000, 0x80A02000011448),
  538.       B(0x44040100424A0002, 0x68804100008180),
  539.       B(0x44040100424A0002, 0x68804100008180),
  540.       B(0x44040100424A0002, 0x68804100008180),
  541.       B(0x140C0041044000, 0x80114290002002),
  542.       B(0x900004802400221, 0x4000809081800203),
  543.       B(0x900004802400221, 0x4000809081800203),
  544.       B(0x900004802400221, 0x4000809081800203),
  545.       B(0xA1808E0100108000, 0x2008000505000002),
  546.       B(0x880A8000020A0400, 0x2324008460012300),
  547.       B(0x4440008008A08006, 0x9800610041D2120),
  548.       B(0x400000100380000, 0x8702000100),
  549.       B(0x826002101050042, 0x48081081000241),
  550.       B(0x7000000200040422, 0x8040000202101000),
  551.       B(0x20064101200, 0x40C0C428080),
  552.       B(0x8104868204040412, 0x22244202000081),
  553.       B(0x4408600010011028, 0x7222409160),
  554.       B(0x8000281403004, 0x14208B0001040010),
  555.       B(0x80A080038246C880, 0x404E008082042020),
  556.       B(0x840000320004200, 0x408000120580811),
  557.       B(0x320400010C041060, 0x4100900080000202),
  558.       B(0x320400010C041060, 0x4100900080000202),
  559.       B(0x8000080, 0x2820004000042090),
  560.       B(0x700A021029818832, 0x440022001800),
  561.       B(0x818802844140, 0xA0410902C8000000),
  562.       B(0x440200100114060, 0x2012040400C1420),
  563.       B(0xA1008454108080, 0x120101000480000),
  564.       B(0x440200100114060, 0x2012040400C1420),
  565.       B(0x3000020490A00040, 0x8052300000101014),
  566.       B(0x140C0282022, 0x120200C090000),
  567.       B(0x68483020A0101804, 0x8010200440080045),
  568.       B(0x84008002041081C0, 0x8080500200000000),
  569.       B(0x3040000200080000, 0x400D012800000908),
  570.       B(0x182500482004, 0x8C10120100000000),
  571.       B(0x4001880060028029, 0x204040002401000),
  572.       B(0x800704010804022, 0x4810A00000020000),
  573.       B(0x800000101040001, 0x1240400408800410),
  574.       B(0x10208900103000, 0xC19000040000008),
  575.       B(0x182500482004, 0x8C10120100000000),
  576.       B(0x182500482004, 0x8C10120100000000),
  577.       B(0x182500482004, 0x8C10120100000000),
  578.       B(0xA0010A0250430, 0x20100006002004),
  579.       B(0x1800001108142282, 0x9414002004400000),
  580.       B(0x8020031500100, 0xE588D01000044000),
  581.       B(0x501C40008228104, 0x3044000020400),
  582.       B(0x10494088050090, 0x12300000A020204),
  583.       B(0x60404008041440A, 0x208408C28000042),
  584.       B(0x60404008041440A, 0x208408C28000042),
  585.       B(0x300200090800409, 0x444202000038000),
  586.       B(0x480011020000180, 0x5402802000150000),
  587.       B(0x4010588440181A0, 0xC09008200210002),
  588.       B(0x204000944041080, 0x1032400086101000),
  589.       B(0x12010164412080, 0x2100402002020040),
  590.       B(0x4280058840000, 0x4042028C081910A0),
  591.       B(0x4280058840000, 0x4042028C081910A0),
  592.       B(0x4000B0C0021, 0xC410402440200000),
  593.       B(0x4000B0C0021, 0xC410402440200000),
  594.       B(0x8000003100100002, 0x8B00806110138180),
  595.       B(0x940001000400, 0x2180264C8010020),
  596.       B(0x4000B0C0021, 0xC410402440200000),
  597.       B(0x24004000144D05, 0x4000500A08000010),
  598.       B(0x4358000401122000, 0x616001040040000C),
  599.       B(0x4001142500, 0xA00690800040700),
  600.       B(0xA011008901888400, 0x2820100104008001),
  601.       B(0xA011008901888400, 0x2820100104008001),
  602.   };
  603.   constexpr Bitboard DabbabariderMagicInit[SQUARE_NB] = {
  604.       B(0x4880201415114000, 0x801050500040000),
  605.       B(0x8480A1408004001, 0x3280000000C0902),
  606.       B(0x20100041108400, 0x4090401080000620),
  607.       B(0x12400080011110, 0x128022500000403),
  608.       B(0x80114110000010, 0x400000255C051),
  609.       B(0x2200110000CA10, 0x900020208C000048),
  610.       B(0x40006209000881, 0x4022009280001005),
  611.       B(0x2200110000CA10, 0x900020208C000048),
  612.       B(0x80042003060010, 0x4100050A410),
  613.       B(0x40000040005460, 0xD0028011000048),
  614.       B(0x2104004108000011, 0x1048048202000084),
  615.       B(0x10800020841020, 0x2000082002000040),
  616.       B(0x40080004000101, 0x4020D109080080),
  617.       B(0x414440420800018, 0x2209220000700000),
  618.       B(0x8E690102004249, 0x8000145800200130),
  619.       B(0x6088010620086401, 0x2100148000002811),
  620.       B(0x4140C0000804020, 0xD804800400100820),
  621.       B(0x8070040090120000, 0x2000000408400803),
  622.       B(0xD01A8010100E000, 0x800000108108402),
  623.       B(0x142C042808040000, 0x200400800000804),
  624.       B(0x4040100000089800, 0x2000C08011A00B0),
  625.       B(0x40010020000, 0x2020808406402804),
  626.       B(0x4019080801010000, 0x8010040040000A19),
  627.       B(0xC400040001010602, 0x7860106080000210),
  628.       B(0x1480A4840000214, 0x890314400000A000),
  629.       B(0x400006054200C10, 0x2104400188010),
  630.       B(0x2001810020400110, 0xA0100800000480E2),
  631.       B(0x2080B40050544300, 0x424A04000000002),
  632.       B(0x9000420008840, 0x4881300000000210),
  633.       B(0x5401832090020400, 0x300010020001),
  634.       B(0x820080A080006140, 0x8000100250009180),
  635.       B(0x2080B40050544300, 0x424A04000000002),
  636.       B(0x28281100028002, 0x240040008E00),
  637.       B(0x28281100028002, 0x240040008E00),
  638.       B(0x4040090840240020, 0x8008000600),
  639.       B(0x9000420008840, 0x4881300000000210),
  640.       B(0x10000008210000, 0x4218406180100400),
  641.       B(0x41802000840102, 0x80440A400C00000),
  642.       B(0x2000000088080408, 0x1000013080002080),
  643.       B(0x810286000041001, 0x100018000800020),
  644.       B(0x10000008210000, 0x4218406180100400),
  645.       B(0x214000010A850008, 0x10150C0A0E02144),
  646.       B(0x214000010A850008, 0x10150C0A0E02144),
  647.       B(0x80800030120900, 0xA02C1024005028),
  648.       B(0x4000088280442, 0x908420140008041),
  649.       B(0x8020000008054000, 0x400001120001880),
  650.       B(0x4400280000240080, 0x8208240080000400),
  651.       B(0x6021080010024080, 0x6107002014042060),
  652.       B(0x8000208000000881, 0x110000800084240),
  653.       B(0x420402820040084, 0x400000002140C0),
  654.       B(0x2009810080430080, 0x4104000100005000),
  655.       B(0x20608840000020, 0x1110000000010120),
  656.       B(0x4048100200090090, 0x2008090100000900),
  657.       B(0x218000200121408, 0x14000410104C80),
  658.       B(0x2000010221020, 0x200040000220),
  659.       B(0x2000010221020, 0x200040000220),
  660.       B(0x2000010221020, 0x200040000220),
  661.       B(0x82000018868040, 0x120640200402),
  662.       B(0x100010044480, 0x4901C5A0005002A),
  663.       B(0x82000018868040, 0x120640200402),
  664.       B(0x4080182A21410008, 0x6800130421082000),
  665.       B(0x10020006080400, 0x410002002241009),
  666.       B(0x808403080080200, 0x802601000000500),
  667.       B(0x101000000740800, 0x4208004001000816),
  668.       B(0x808403080080200, 0x802601000000500),
  669.       B(0x501002000080100, 0x400863400000020),
  670.       B(0x808403080080200, 0x802601000000500),
  671.       B(0x501002000080100, 0x400863400000020),
  672.       B(0x22100024003004, 0x1000444880012050),
  673.       B(0x66108040, 0x10000C0120000002),
  674.       B(0x8010000088401D, 0x2901000101100004),
  675.       B(0x80000058001000, 0xD080141440000012),
  676.       B(0x401040400064010, 0x841804010802490),
  677.       B(0x8000402000000804, 0x64040880001051),
  678.       B(0xE00000840000080, 0x1010400400200282),
  679.       B(0x400840200D02904, 0x61011400000000),
  680.       B(0x1000C0100080050, 0x110181100000940),
  681.       B(0x2000000601001020, 0x10040200000602),
  682.       B(0x400806614800B041, 0x2004800280800000),
  683.       B(0x320400010C041060, 0x4100900080000202),
  684.       B(0x1590804810880C40, 0x2310810271000040),
  685.       B(0x700A021029818832, 0x440022001800),
  686.       B(0x2820220402800020, 0x2100880100000),
  687.       B(0x2508000800804888, 0x41008002800018),
  688.       B(0x12006002C804000, 0x2381100400204004),
  689.       B(0x12006002C804000, 0x2381100400204004),
  690.       B(0x80A1005001546000, 0x8830000800020100),
  691.       B(0x800151002000, 0x2002900422013008),
  692.       B(0x80A1005001546000, 0x8830000800020100),
  693.       B(0x400400A200020, 0x8022100C0000100),
  694.       B(0x2600000008018740, 0x8A0020300044060),
  695.       B(0x800000101040001, 0x1240400408800410),
  696.       B(0x800100040108, 0x600020000841C1),
  697.       B(0x38180020988208, 0x21141000040928),
  698.       B(0x38000050001220, 0x9200010200145900),
  699.       B(0x100000140002801, 0x2020400400040008),
  700.       B(0x160004580C04000, 0x1004182800800),
  701.       B(0x4800882002004800, 0x641002405022010),
  702.       B(0x1020040108285000, 0x4200200200032),
  703.       B(0x1020040108285000, 0x4200200200032),
  704.       B(0x1000820080A0C900, 0x402C001012801200),
  705.       B(0x200000096042200, 0x208209080410028),
  706.       B(0x800808201400108, 0x8050100640010A),
  707.       B(0x6082004808040100, 0x1000800000502440),
  708.       B(0x2300004282201004, 0x48501000824020C0),
  709.       B(0x40024012005008, 0x1000604000408000),
  710.       B(0x2425000001001010, 0x1010240008080080),
  711.       B(0x40A11500210000, 0x8100080080400C00),
  712.       B(0x10001004080100, 0x4880C40088060800),
  713.       B(0x408200, 0x1080040104002088),
  714.       B(0x4140008000B01032, 0x8000100C003240),
  715.       B(0x42A0010922400400, 0x200022020100300),
  716.       B(0x8818014040100000, 0x402804011108800),
  717.       B(0x1450000000480040, 0x89081020001080),
  718.       B(0x400000004048005, 0x110802440002802),
  719.       B(0x880080040500C140, 0x94890120410610),
  720.       B(0x2200020010490, 0x8401245048044800),
  721.       B(0x148080000043200A, 0x80548100000244),
  722.       B(0x8600000030000410, 0x4100C104000820),
  723.       B(0x5004000000002040, 0x8120000180110840),
  724.   };
Advertisement
Add Comment
Please, Sign In to add comment