CountBits

CountBits

PFRefBits

PFRefMasks

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668
namespace {

  template <int INDEX>
  struct CountBits {
    static const unsigned int value = INDEX % 2 + CountBits<(INDEX >> 1)>::value;
  };

  template <>
  struct CountBits<0> {
    static const unsigned int value = 0;
  };
}  // namespace

static const unsigned int s_refsBefore[] = {CountBits<0>::value,
                                            CountBits<1>::value,
                                            CountBits<2>::value,
                                            CountBits<3>::value,
                                            CountBits<4>::value,
                                            CountBits<5>::value,
                                            CountBits<6>::value,
                                            CountBits<7>::value,
                                            CountBits<8>::value,
                                            CountBits<9>::value,
                                            CountBits<10>::value,
                                            CountBits<11>::value,
                                            CountBits<12>::value,
                                            CountBits<13>::value,
                                            CountBits<14>::value,
                                            CountBits<15>::value,
                                            CountBits<16>::value,
                                            CountBits<17>::value,
                                            CountBits<18>::value,
                                            CountBits<19>::value,
                                            CountBits<20>::value,
                                            CountBits<21>::value,
                                            CountBits<22>::value,
                                            CountBits<23>::value,
                                            CountBits<24>::value,
                                            CountBits<25>::value,
                                            CountBits<26>::value,
                                            CountBits<27>::value,
                                            CountBits<28>::value,
                                            CountBits<29>::value,
                                            CountBits<30>::value,
                                            CountBits<31>::value,
                                            CountBits<32>::value,
                                            CountBits<33>::value,
                                            CountBits<34>::value,
                                            CountBits<35>::value,
                                            CountBits<36>::value,
                                            CountBits<37>::value,
                                            CountBits<38>::value,
                                            CountBits<39>::value,
                                            CountBits<40>::value,
                                            CountBits<41>::value,
                                            CountBits<42>::value,
                                            CountBits<43>::value,
                                            CountBits<44>::value,
                                            CountBits<45>::value,
                                            CountBits<46>::value,
                                            CountBits<47>::value,
                                            CountBits<48>::value,
                                            CountBits<49>::value,
                                            CountBits<50>::value,
                                            CountBits<51>::value,
                                            CountBits<52>::value,
                                            CountBits<53>::value,
                                            CountBits<54>::value,
                                            CountBits<55>::value,
                                            CountBits<56>::value,
                                            CountBits<57>::value,
                                            CountBits<58>::value,
                                            CountBits<59>::value,
                                            CountBits<60>::value,
                                            CountBits<61>::value,
                                            CountBits<62>::value,
                                            CountBits<63>::value,
                                            CountBits<64>::value,
                                            CountBits<65>::value,
                                            CountBits<66>::value,
                                            CountBits<67>::value,
                                            CountBits<68>::value,
                                            CountBits<69>::value,
                                            CountBits<70>::value,
                                            CountBits<71>::value,
                                            CountBits<72>::value,
                                            CountBits<73>::value,
                                            CountBits<74>::value,
                                            CountBits<75>::value,
                                            CountBits<76>::value,
                                            CountBits<77>::value,
                                            CountBits<78>::value,
                                            CountBits<79>::value,
                                            CountBits<80>::value,
                                            CountBits<81>::value,
                                            CountBits<82>::value,
                                            CountBits<83>::value,
                                            CountBits<84>::value,
                                            CountBits<85>::value,
                                            CountBits<86>::value,
                                            CountBits<87>::value,
                                            CountBits<88>::value,
                                            CountBits<89>::value,
                                            CountBits<90>::value,
                                            CountBits<91>::value,
                                            CountBits<92>::value,
                                            CountBits<93>::value,
                                            CountBits<94>::value,
                                            CountBits<95>::value,
                                            CountBits<96>::value,
                                            CountBits<97>::value,
                                            CountBits<98>::value,
                                            CountBits<99>::value,
                                            CountBits<100>::value,
                                            CountBits<101>::value,
                                            CountBits<102>::value,
                                            CountBits<103>::value,
                                            CountBits<104>::value,
                                            CountBits<105>::value,
                                            CountBits<106>::value,
                                            CountBits<107>::value,
                                            CountBits<108>::value,
                                            CountBits<109>::value,
                                            CountBits<110>::value,
                                            CountBits<111>::value,
                                            CountBits<112>::value,
                                            CountBits<113>::value,
                                            CountBits<114>::value,
                                            CountBits<115>::value,
                                            CountBits<116>::value,
                                            CountBits<117>::value,
                                            CountBits<118>::value,
                                            CountBits<119>::value,
                                            CountBits<120>::value,
                                            CountBits<121>::value,
                                            CountBits<122>::value,
                                            CountBits<123>::value,
                                            CountBits<124>::value,
                                            CountBits<125>::value,
                                            CountBits<126>::value,
                                            CountBits<127>::value,
                                            CountBits<128>::value,
                                            CountBits<129>::value,
                                            CountBits<130>::value,
                                            CountBits<131>::value,
                                            CountBits<132>::value,
                                            CountBits<133>::value,
                                            CountBits<134>::value,
                                            CountBits<135>::value,
                                            CountBits<136>::value,
                                            CountBits<137>::value,
                                            CountBits<138>::value,
                                            CountBits<139>::value,
                                            CountBits<140>::value,
                                            CountBits<141>::value,
                                            CountBits<142>::value,
                                            CountBits<143>::value,
                                            CountBits<144>::value,
                                            CountBits<145>::value,
                                            CountBits<146>::value,
                                            CountBits<147>::value,
                                            CountBits<148>::value,
                                            CountBits<149>::value,
                                            CountBits<150>::value,
                                            CountBits<151>::value,
                                            CountBits<152>::value,
                                            CountBits<153>::value,
                                            CountBits<154>::value,
                                            CountBits<155>::value,
                                            CountBits<156>::value,
                                            CountBits<157>::value,
                                            CountBits<158>::value,
                                            CountBits<159>::value,
                                            CountBits<160>::value,
                                            CountBits<161>::value,
                                            CountBits<162>::value,
                                            CountBits<163>::value,
                                            CountBits<164>::value,
                                            CountBits<165>::value,
                                            CountBits<166>::value,
                                            CountBits<167>::value,
                                            CountBits<168>::value,
                                            CountBits<169>::value,
                                            CountBits<170>::value,
                                            CountBits<171>::value,
                                            CountBits<172>::value,
                                            CountBits<173>::value,
                                            CountBits<174>::value,
                                            CountBits<175>::value,
                                            CountBits<176>::value,
                                            CountBits<177>::value,
                                            CountBits<178>::value,
                                            CountBits<179>::value,
                                            CountBits<180>::value,
                                            CountBits<181>::value,
                                            CountBits<182>::value,
                                            CountBits<183>::value,
                                            CountBits<184>::value,
                                            CountBits<185>::value,
                                            CountBits<186>::value,
                                            CountBits<187>::value,
                                            CountBits<188>::value,
                                            CountBits<189>::value,
                                            CountBits<190>::value,
                                            CountBits<191>::value,
                                            CountBits<192>::value,
                                            CountBits<193>::value,
                                            CountBits<194>::value,
                                            CountBits<195>::value,
                                            CountBits<196>::value,
                                            CountBits<197>::value,
                                            CountBits<198>::value,
                                            CountBits<199>::value,
                                            CountBits<200>::value,
                                            CountBits<201>::value,
                                            CountBits<202>::value,
                                            CountBits<203>::value,
                                            CountBits<204>::value,
                                            CountBits<205>::value,
                                            CountBits<206>::value,
                                            CountBits<207>::value,
                                            CountBits<208>::value,
                                            CountBits<209>::value,
                                            CountBits<210>::value,
                                            CountBits<211>::value,
                                            CountBits<212>::value,
                                            CountBits<213>::value,
                                            CountBits<214>::value,
                                            CountBits<215>::value,
                                            CountBits<216>::value,
                                            CountBits<217>::value,
                                            CountBits<218>::value,
                                            CountBits<219>::value,
                                            CountBits<220>::value,
                                            CountBits<221>::value,
                                            CountBits<222>::value,
                                            CountBits<223>::value,
                                            CountBits<224>::value,
                                            CountBits<225>::value,
                                            CountBits<226>::value,
                                            CountBits<227>::value,
                                            CountBits<228>::value,
                                            CountBits<229>::value,
                                            CountBits<230>::value,
                                            CountBits<231>::value,
                                            CountBits<232>::value,
                                            CountBits<233>::value,
                                            CountBits<234>::value,
                                            CountBits<235>::value,
                                            CountBits<236>::value,
                                            CountBits<237>::value,
                                            CountBits<238>::value,
                                            CountBits<239>::value,
                                            CountBits<240>::value,
                                            CountBits<241>::value,
                                            CountBits<242>::value,
                                            CountBits<243>::value,
                                            CountBits<244>::value,
                                            CountBits<245>::value,
                                            CountBits<246>::value,
                                            CountBits<247>::value,
                                            CountBits<248>::value,
                                            CountBits<249>::value,
                                            CountBits<250>::value,
                                            CountBits<251>::value,
                                            CountBits<252>::value,
                                            CountBits<253>::value,
                                            CountBits<254>::value,
                                            CountBits<255>::value,
                                            CountBits<256>::value,
                                            CountBits<257>::value,
                                            CountBits<258>::value,
                                            CountBits<259>::value,
                                            CountBits<260>::value,
                                            CountBits<261>::value,
                                            CountBits<262>::value,
                                            CountBits<263>::value,
                                            CountBits<264>::value,
                                            CountBits<265>::value,
                                            CountBits<266>::value,
                                            CountBits<267>::value,
                                            CountBits<268>::value,
                                            CountBits<269>::value,
                                            CountBits<270>::value,
                                            CountBits<271>::value,
                                            CountBits<272>::value,
                                            CountBits<273>::value,
                                            CountBits<274>::value,
                                            CountBits<275>::value,
                                            CountBits<276>::value,
                                            CountBits<277>::value,
                                            CountBits<278>::value,
                                            CountBits<279>::value,
                                            CountBits<280>::value,
                                            CountBits<281>::value,
                                            CountBits<282>::value,
                                            CountBits<283>::value,
                                            CountBits<284>::value,
                                            CountBits<285>::value,
                                            CountBits<286>::value,
                                            CountBits<287>::value,
                                            CountBits<288>::value,
                                            CountBits<289>::value,
                                            CountBits<290>::value,
                                            CountBits<291>::value,
                                            CountBits<292>::value,
                                            CountBits<293>::value,
                                            CountBits<294>::value,
                                            CountBits<295>::value,
                                            CountBits<296>::value,
                                            CountBits<297>::value,
                                            CountBits<298>::value,
                                            CountBits<299>::value,
                                            CountBits<300>::value,
                                            CountBits<301>::value,
                                            CountBits<302>::value,
                                            CountBits<303>::value,
                                            CountBits<304>::value,
                                            CountBits<305>::value,
                                            CountBits<306>::value,
                                            CountBits<307>::value,
                                            CountBits<308>::value,
                                            CountBits<309>::value,
                                            CountBits<310>::value,
                                            CountBits<311>::value,
                                            CountBits<312>::value,
                                            CountBits<313>::value,
                                            CountBits<314>::value,
                                            CountBits<315>::value,
                                            CountBits<316>::value,
                                            CountBits<317>::value,
                                            CountBits<318>::value,
                                            CountBits<319>::value,
                                            CountBits<320>::value,
                                            CountBits<321>::value,
                                            CountBits<322>::value,
                                            CountBits<323>::value,
                                            CountBits<324>::value,
                                            CountBits<325>::value,
                                            CountBits<326>::value,
                                            CountBits<327>::value,
                                            CountBits<328>::value,
                                            CountBits<329>::value,
                                            CountBits<330>::value,
                                            CountBits<331>::value,
                                            CountBits<332>::value,
                                            CountBits<333>::value,
                                            CountBits<334>::value,
                                            CountBits<335>::value,
                                            CountBits<336>::value,
                                            CountBits<337>::value,
                                            CountBits<338>::value,
                                            CountBits<339>::value,
                                            CountBits<340>::value,
                                            CountBits<341>::value,
                                            CountBits<342>::value,
                                            CountBits<343>::value,
                                            CountBits<344>::value,
                                            CountBits<345>::value,
                                            CountBits<346>::value,
                                            CountBits<347>::value,
                                            CountBits<348>::value,
                                            CountBits<349>::value,
                                            CountBits<350>::value,
                                            CountBits<351>::value,
                                            CountBits<352>::value,
                                            CountBits<353>::value,
                                            CountBits<354>::value,
                                            CountBits<355>::value,
                                            CountBits<356>::value,
                                            CountBits<357>::value,
                                            CountBits<358>::value,
                                            CountBits<359>::value,
                                            CountBits<360>::value,
                                            CountBits<361>::value,
                                            CountBits<362>::value,
                                            CountBits<363>::value,
                                            CountBits<364>::value,
                                            CountBits<365>::value,
                                            CountBits<366>::value,
                                            CountBits<367>::value,
                                            CountBits<368>::value,
                                            CountBits<369>::value,
                                            CountBits<370>::value,
                                            CountBits<371>::value,
                                            CountBits<372>::value,
                                            CountBits<373>::value,
                                            CountBits<374>::value,
                                            CountBits<375>::value,
                                            CountBits<376>::value,
                                            CountBits<377>::value,
                                            CountBits<378>::value,
                                            CountBits<379>::value,
                                            CountBits<380>::value,
                                            CountBits<381>::value,
                                            CountBits<382>::value,
                                            CountBits<383>::value,
                                            CountBits<384>::value,
                                            CountBits<385>::value,
                                            CountBits<386>::value,
                                            CountBits<387>::value,
                                            CountBits<388>::value,
                                            CountBits<389>::value,
                                            CountBits<390>::value,
                                            CountBits<391>::value,
                                            CountBits<392>::value,
                                            CountBits<393>::value,
                                            CountBits<394>::value,
                                            CountBits<395>::value,
                                            CountBits<396>::value,
                                            CountBits<397>::value,
                                            CountBits<398>::value,
                                            CountBits<399>::value,
                                            CountBits<400>::value,
                                            CountBits<401>::value,
                                            CountBits<402>::value,
                                            CountBits<403>::value,
                                            CountBits<404>::value,
                                            CountBits<405>::value,
                                            CountBits<406>::value,
                                            CountBits<407>::value,
                                            CountBits<408>::value,
                                            CountBits<409>::value,
                                            CountBits<410>::value,
                                            CountBits<411>::value,
                                            CountBits<412>::value,
                                            CountBits<413>::value,
                                            CountBits<414>::value,
                                            CountBits<415>::value,
                                            CountBits<416>::value,
                                            CountBits<417>::value,
                                            CountBits<418>::value,
                                            CountBits<419>::value,
                                            CountBits<420>::value,
                                            CountBits<421>::value,
                                            CountBits<422>::value,
                                            CountBits<423>::value,
                                            CountBits<424>::value,
                                            CountBits<425>::value,
                                            CountBits<426>::value,
                                            CountBits<427>::value,
                                            CountBits<428>::value,
                                            CountBits<429>::value,
                                            CountBits<430>::value,
                                            CountBits<431>::value,
                                            CountBits<432>::value,
                                            CountBits<433>::value,
                                            CountBits<434>::value,
                                            CountBits<435>::value,
                                            CountBits<436>::value,
                                            CountBits<437>::value,
                                            CountBits<438>::value,
                                            CountBits<439>::value,
                                            CountBits<440>::value,
                                            CountBits<441>::value,
                                            CountBits<442>::value,
                                            CountBits<443>::value,
                                            CountBits<444>::value,
                                            CountBits<445>::value,
                                            CountBits<446>::value,
                                            CountBits<447>::value,
                                            CountBits<448>::value,
                                            CountBits<449>::value,
                                            CountBits<450>::value,
                                            CountBits<451>::value,
                                            CountBits<452>::value,
                                            CountBits<453>::value,
                                            CountBits<454>::value,
                                            CountBits<455>::value,
                                            CountBits<456>::value,
                                            CountBits<457>::value,
                                            CountBits<458>::value,
                                            CountBits<459>::value,
                                            CountBits<460>::value,
                                            CountBits<461>::value,
                                            CountBits<462>::value,
                                            CountBits<463>::value,
                                            CountBits<464>::value,
                                            CountBits<465>::value,
                                            CountBits<466>::value,
                                            CountBits<467>::value,
                                            CountBits<468>::value,
                                            CountBits<469>::value,
                                            CountBits<470>::value,
                                            CountBits<471>::value,
                                            CountBits<472>::value,
                                            CountBits<473>::value,
                                            CountBits<474>::value,
                                            CountBits<475>::value,
                                            CountBits<476>::value,
                                            CountBits<477>::value,
                                            CountBits<478>::value,
                                            CountBits<479>::value,
                                            CountBits<480>::value,
                                            CountBits<481>::value,
                                            CountBits<482>::value,
                                            CountBits<483>::value,
                                            CountBits<484>::value,
                                            CountBits<485>::value,
                                            CountBits<486>::value,
                                            CountBits<487>::value,
                                            CountBits<488>::value,
                                            CountBits<489>::value,
                                            CountBits<490>::value,
                                            CountBits<491>::value,
                                            CountBits<492>::value,
                                            CountBits<493>::value,
                                            CountBits<494>::value,
                                            CountBits<495>::value,
                                            CountBits<496>::value,
                                            CountBits<497>::value,
                                            CountBits<498>::value,
                                            CountBits<499>::value,
                                            CountBits<500>::value,
                                            CountBits<501>::value,
                                            CountBits<502>::value,
                                            CountBits<503>::value,
                                            CountBits<504>::value,
                                            CountBits<505>::value,
                                            CountBits<506>::value,
                                            CountBits<507>::value,
                                            CountBits<508>::value,
                                            CountBits<509>::value,
                                            CountBits<510>::value,
                                            CountBits<511>::value,
                                            CountBits<512>::value,
                                            CountBits<513>::value,
                                            CountBits<514>::value,
                                            CountBits<515>::value,
                                            CountBits<516>::value,
                                            CountBits<517>::value,
                                            CountBits<518>::value,
                                            CountBits<519>::value,
                                            CountBits<520>::value,
                                            CountBits<521>::value,
                                            CountBits<522>::value,
                                            CountBits<523>::value,
                                            CountBits<524>::value,
                                            CountBits<525>::value,
                                            CountBits<526>::value,
                                            CountBits<527>::value,
                                            CountBits<528>::value,
                                            CountBits<529>::value,
                                            CountBits<530>::value,
                                            CountBits<531>::value,
                                            CountBits<532>::value,
                                            CountBits<533>::value,
                                            CountBits<534>::value,
                                            CountBits<535>::value,
                                            CountBits<536>::value,
                                            CountBits<537>::value,
                                            CountBits<538>::value,
                                            CountBits<539>::value,
                                            CountBits<540>::value,
                                            CountBits<541>::value,
                                            CountBits<542>::value,
                                            CountBits<543>::value,
                                            CountBits<544>::value,
                                            CountBits<545>::value,
                                            CountBits<546>::value,
                                            CountBits<547>::value,
                                            CountBits<548>::value,
                                            CountBits<549>::value,
                                            CountBits<550>::value,
                                            CountBits<551>::value,
                                            CountBits<552>::value,
                                            CountBits<553>::value,
                                            CountBits<554>::value,
                                            CountBits<555>::value,
                                            CountBits<556>::value,
                                            CountBits<557>::value,
                                            CountBits<558>::value,
                                            CountBits<559>::value,
                                            CountBits<560>::value,
                                            CountBits<561>::value,
                                            CountBits<562>::value,
                                            CountBits<563>::value,
                                            CountBits<564>::value,
                                            CountBits<565>::value,
                                            CountBits<566>::value,
                                            CountBits<567>::value,
                                            CountBits<568>::value,
                                            CountBits<569>::value,
                                            CountBits<570>::value,
                                            CountBits<571>::value,
                                            CountBits<572>::value,
                                            CountBits<573>::value,
                                            CountBits<574>::value,
                                            CountBits<575>::value,
                                            CountBits<576>::value,
                                            CountBits<577>::value,
                                            CountBits<578>::value,
                                            CountBits<579>::value,
                                            CountBits<580>::value,
                                            CountBits<581>::value,
                                            CountBits<582>::value,
                                            CountBits<583>::value,
                                            CountBits<584>::value,
                                            CountBits<585>::value,
                                            CountBits<586>::value,
                                            CountBits<587>::value,
                                            CountBits<588>::value,
                                            CountBits<589>::value,
                                            CountBits<590>::value,
                                            CountBits<591>::value,
                                            CountBits<592>::value,
                                            CountBits<593>::value,
                                            CountBits<594>::value,
                                            CountBits<595>::value,
                                            CountBits<596>::value,
                                            CountBits<597>::value,
                                            CountBits<598>::value,
                                            CountBits<599>::value,
                                            CountBits<600>::value,
                                            CountBits<601>::value,
                                            CountBits<602>::value,
                                            CountBits<603>::value,
                                            CountBits<604>::value,
                                            CountBits<605>::value,
                                            CountBits<606>::value,
                                            CountBits<607>::value,
                                            CountBits<608>::value,
                                            CountBits<609>::value,
                                            CountBits<610>::value,
                                            CountBits<611>::value,
                                            CountBits<612>::value,
                                            CountBits<613>::value,
                                            CountBits<614>::value,
                                            CountBits<615>::value,
                                            CountBits<616>::value,
                                            CountBits<617>::value,
                                            CountBits<618>::value,
                                            CountBits<619>::value,
                                            CountBits<620>::value,
                                            CountBits<621>::value,
                                            CountBits<622>::value,
                                            CountBits<623>::value,
                                            CountBits<624>::value,
                                            CountBits<625>::value,
                                            CountBits<626>::value,
                                            CountBits<627>::value,
                                            CountBits<628>::value,
                                            CountBits<629>::value,
                                            CountBits<630>::value,
                                            CountBits<631>::value,
                                            CountBits<632>::value,
                                            CountBits<633>::value,
                                            CountBits<634>::value,
                                            CountBits<635>::value,
                                            CountBits<636>::value,
                                            CountBits<637>::value,
                                            CountBits<638>::value,
                                            CountBits<639>::value,
                                            CountBits<640>::value,
                                            CountBits<641>::value,
                                            CountBits<642>::value,
                                            CountBits<643>::value,
                                            CountBits<644>::value,
                                            CountBits<645>::value,
                                            CountBits<646>::value,
                                            CountBits<647>::value,
                                            CountBits<648>::value,
                                            CountBits<649>::value,
                                            CountBits<650>::value,
                                            CountBits<651>::value,
                                            CountBits<652>::value,
                                            CountBits<653>::value,
                                            CountBits<654>::value,
                                            CountBits<655>::value,
                                            CountBits<656>::value,
                                            CountBits<657>::value,
                                            CountBits<658>::value,
                                            CountBits<659>::value,
                                            CountBits<660>::value,
                                            CountBits<661>::value,
                                            CountBits<662>::value,
                                            CountBits<663>::value,
                                            CountBits<664>::value,
                                            CountBits<665>::value,
                                            CountBits<666>::value,
                                            CountBits<667>::value,
                                            CountBits<668>::value,
                                            CountBits<669>::value,
                                            CountBits<670>::value,
                                            CountBits<671>::value,
                                            CountBits<672>::value,
                                            CountBits<673>::value,
                                            CountBits<674>::value,
                                            CountBits<675>::value,
                                            CountBits<676>::value,
                                            CountBits<677>::value,
                                            CountBits<678>::value,
                                            CountBits<679>::value,
                                            CountBits<680>::value,
                                            CountBits<681>::value,
                                            CountBits<682>::value,
                                            CountBits<683>::value,
                                            CountBits<684>::value,
                                            CountBits<685>::value,
                                            CountBits<686>::value,
                                            CountBits<687>::value,
                                            CountBits<688>::value,
                                            CountBits<689>::value,
                                            CountBits<690>::value,
                                            CountBits<691>::value,
                                            CountBits<692>::value,
                                            CountBits<693>::value,
                                            CountBits<694>::value,
                                            CountBits<695>::value,
                                            CountBits<696>::value,
                                            CountBits<697>::value,
                                            CountBits<698>::value,
                                            CountBits<699>::value,
                                            CountBits<700>::value,
                                            CountBits<701>::value,
                                            CountBits<702>::value,
                                            CountBits<703>::value,
                                            CountBits<704>::value,
                                            CountBits<705>::value,
                                            CountBits<706>::value,
                                            CountBits<707>::value,
                                            CountBits<708>::value,
                                            CountBits<709>::value,
                                            CountBits<710>::value,
                                            CountBits<711>::value,
                                            CountBits<712>::value,
                                            CountBits<713>::value,
                                            CountBits<714>::value,
                                            CountBits<715>::value,
                                            CountBits<716>::value,
                                            CountBits<717>::value,
                                            CountBits<718>::value,
                                            CountBits<719>::value,
                                            CountBits<720>::value,
                                            CountBits<721>::value,
                                            CountBits<722>::value,
                                            CountBits<723>::value,
                                            CountBits<724>::value,
                                            CountBits<725>::value,
                                            CountBits<726>::value,
                                            CountBits<727>::value,
                                            CountBits<728>::value,
                                            CountBits<729>::value,
                                            CountBits<730>::value,
                                            CountBits<731>::value,
                                            CountBits<732>::value,
                                            CountBits<733>::value,
                                            CountBits<734>::value,
                                            CountBits<735>::value,
                                            CountBits<736>::value,
                                            CountBits<737>::value,
                                            CountBits<738>::value,
                                            CountBits<739>::value,
                                            CountBits<740>::value,
                                            CountBits<741>::value,
                                            CountBits<742>::value,
                                            CountBits<743>::value,
                                            CountBits<744>::value,
                                            CountBits<745>::value,
                                            CountBits<746>::value,
                                            CountBits<747>::value,
                                            CountBits<748>::value,
                                            CountBits<749>::value,
                                            CountBits<750>::value,
                                            CountBits<751>::value,
                                            CountBits<752>::value,
                                            CountBits<753>::value,
                                            CountBits<754>::value,
                                            CountBits<755>::value,
                                            CountBits<756>::value,
                                            CountBits<757>::value,
                                            CountBits<758>::value,
                                            CountBits<759>::value,
                                            CountBits<760>::value,
                                            CountBits<761>::value,
                                            CountBits<762>::value,
                                            CountBits<763>::value,
                                            CountBits<764>::value,
                                            CountBits<765>::value,
                                            CountBits<766>::value,
                                            CountBits<767>::value,
                                            CountBits<768>::value,
                                            CountBits<769>::value,
                                            CountBits<770>::value,
                                            CountBits<771>::value,
                                            CountBits<772>::value,
                                            CountBits<773>::value,
                                            CountBits<774>::value,
                                            CountBits<775>::value,
                                            CountBits<776>::value,
                                            CountBits<777>::value,
                                            CountBits<778>::value,
                                            CountBits<779>::value,
                                            CountBits<780>::value,
                                            CountBits<781>::value,
                                            CountBits<782>::value,
                                            CountBits<783>::value,
                                            CountBits<784>::value,
                                            CountBits<785>::value,
                                            CountBits<786>::value,
                                            CountBits<787>::value,
                                            CountBits<788>::value,
                                            CountBits<789>::value,
                                            CountBits<790>::value,
                                            CountBits<791>::value,
                                            CountBits<792>::value,
                                            CountBits<793>::value,
                                            CountBits<794>::value,
                                            CountBits<795>::value,
                                            CountBits<796>::value,
                                            CountBits<797>::value,
                                            CountBits<798>::value,
                                            CountBits<799>::value,
                                            CountBits<800>::value,
                                            CountBits<801>::value,
                                            CountBits<802>::value,
                                            CountBits<803>::value,
                                            CountBits<804>::value,
                                            CountBits<805>::value,
                                            CountBits<806>::value,
                                            CountBits<807>::value,
                                            CountBits<808>::value,
                                            CountBits<809>::value,
                                            CountBits<810>::value,
                                            CountBits<811>::value,
                                            CountBits<812>::value,
                                            CountBits<813>::value,
                                            CountBits<814>::value,
                                            CountBits<815>::value,
                                            CountBits<816>::value,
                                            CountBits<817>::value,
                                            CountBits<818>::value,
                                            CountBits<819>::value,
                                            CountBits<820>::value,
                                            CountBits<821>::value,
                                            CountBits<822>::value,
                                            CountBits<823>::value,
                                            CountBits<824>::value,
                                            CountBits<825>::value,
                                            CountBits<826>::value,
                                            CountBits<827>::value,
                                            CountBits<828>::value,
                                            CountBits<829>::value,
                                            CountBits<830>::value,
                                            CountBits<831>::value,
                                            CountBits<832>::value,
                                            CountBits<833>::value,
                                            CountBits<834>::value,
                                            CountBits<835>::value,
                                            CountBits<836>::value,
                                            CountBits<837>::value,
                                            CountBits<838>::value,
                                            CountBits<839>::value,
                                            CountBits<840>::value,
                                            CountBits<841>::value,
                                            CountBits<842>::value,
                                            CountBits<843>::value,
                                            CountBits<844>::value,
                                            CountBits<845>::value,
                                            CountBits<846>::value,
                                            CountBits<847>::value,
                                            CountBits<848>::value,
                                            CountBits<849>::value,
                                            CountBits<850>::value,
                                            CountBits<851>::value,
                                            CountBits<852>::value,
                                            CountBits<853>::value,
                                            CountBits<854>::value,
                                            CountBits<855>::value,
                                            CountBits<856>::value,
                                            CountBits<857>::value,
                                            CountBits<858>::value,
                                            CountBits<859>::value,
                                            CountBits<860>::value,
                                            CountBits<861>::value,
                                            CountBits<862>::value,
                                            CountBits<863>::value,
                                            CountBits<864>::value,
                                            CountBits<865>::value,
                                            CountBits<866>::value,
                                            CountBits<867>::value,
                                            CountBits<868>::value,
                                            CountBits<869>::value,
                                            CountBits<870>::value,
                                            CountBits<871>::value,
                                            CountBits<872>::value,
                                            CountBits<873>::value,
                                            CountBits<874>::value,
                                            CountBits<875>::value,
                                            CountBits<876>::value,
                                            CountBits<877>::value,
                                            CountBits<878>::value,
                                            CountBits<879>::value,
                                            CountBits<880>::value,
                                            CountBits<881>::value,
                                            CountBits<882>::value,
                                            CountBits<883>::value,
                                            CountBits<884>::value,
                                            CountBits<885>::value,
                                            CountBits<886>::value,
                                            CountBits<887>::value,
                                            CountBits<888>::value,
                                            CountBits<889>::value,
                                            CountBits<890>::value,
                                            CountBits<891>::value,
                                            CountBits<892>::value,
                                            CountBits<893>::value,
                                            CountBits<894>::value,
                                            CountBits<895>::value,
                                            CountBits<896>::value,
                                            CountBits<897>::value,
                                            CountBits<898>::value,
                                            CountBits<899>::value,
                                            CountBits<900>::value,
                                            CountBits<901>::value,
                                            CountBits<902>::value,
                                            CountBits<903>::value,
                                            CountBits<904>::value,
                                            CountBits<905>::value,
                                            CountBits<906>::value,
                                            CountBits<907>::value,
                                            CountBits<908>::value,
                                            CountBits<909>::value,
                                            CountBits<910>::value,
                                            CountBits<911>::value,
                                            CountBits<912>::value,
                                            CountBits<913>::value,
                                            CountBits<914>::value,
                                            CountBits<915>::value,
                                            CountBits<916>::value,
                                            CountBits<917>::value,
                                            CountBits<918>::value,
                                            CountBits<919>::value,
                                            CountBits<920>::value,
                                            CountBits<921>::value,
                                            CountBits<922>::value,
                                            CountBits<923>::value,
                                            CountBits<924>::value,
                                            CountBits<925>::value,
                                            CountBits<926>::value,
                                            CountBits<927>::value,
                                            CountBits<928>::value,
                                            CountBits<929>::value,
                                            CountBits<930>::value,
                                            CountBits<931>::value,
                                            CountBits<932>::value,
                                            CountBits<933>::value,
                                            CountBits<934>::value,
                                            CountBits<935>::value,
                                            CountBits<936>::value,
                                            CountBits<937>::value,
                                            CountBits<938>::value,
                                            CountBits<939>::value,
                                            CountBits<940>::value,
                                            CountBits<941>::value,
                                            CountBits<942>::value,
                                            CountBits<943>::value,
                                            CountBits<944>::value,
                                            CountBits<945>::value,
                                            CountBits<946>::value,
                                            CountBits<947>::value,
                                            CountBits<948>::value,
                                            CountBits<949>::value,
                                            CountBits<950>::value,
                                            CountBits<951>::value,
                                            CountBits<952>::value,
                                            CountBits<953>::value,
                                            CountBits<954>::value,
                                            CountBits<955>::value,
                                            CountBits<956>::value,
                                            CountBits<957>::value,
                                            CountBits<958>::value,
                                            CountBits<959>::value,
                                            CountBits<960>::value,
                                            CountBits<961>::value,
                                            CountBits<962>::value,
                                            CountBits<963>::value,
                                            CountBits<964>::value,
                                            CountBits<965>::value,
                                            CountBits<966>::value,
                                            CountBits<967>::value,
                                            CountBits<968>::value,
                                            CountBits<969>::value,
                                            CountBits<970>::value,
                                            CountBits<971>::value,
                                            CountBits<972>::value,
                                            CountBits<973>::value,
                                            CountBits<974>::value,
                                            CountBits<975>::value,
                                            CountBits<976>::value,
                                            CountBits<977>::value,
                                            CountBits<978>::value,
                                            CountBits<979>::value,
                                            CountBits<980>::value,
                                            CountBits<981>::value,
                                            CountBits<982>::value,
                                            CountBits<983>::value,
                                            CountBits<984>::value,
                                            CountBits<985>::value,
                                            CountBits<986>::value,
                                            CountBits<987>::value,
                                            CountBits<988>::value,
                                            CountBits<989>::value,
                                            CountBits<990>::value,
                                            CountBits<991>::value,
                                            CountBits<992>::value,
                                            CountBits<993>::value,
                                            CountBits<994>::value,
                                            CountBits<995>::value,
                                            CountBits<996>::value,
                                            CountBits<997>::value,
                                            CountBits<998>::value,
                                            CountBits<999>::value,
                                            CountBits<1000>::value,
                                            CountBits<1001>::value,
                                            CountBits<1002>::value,
                                            CountBits<1003>::value,
                                            CountBits<1004>::value,
                                            CountBits<1005>::value,
                                            CountBits<1006>::value,
                                            CountBits<1007>::value,
                                            CountBits<1008>::value,
                                            CountBits<1009>::value,
                                            CountBits<1010>::value,
                                            CountBits<1011>::value,
                                            CountBits<1012>::value,
                                            CountBits<1013>::value,
                                            CountBits<1014>::value,
                                            CountBits<1015>::value,
                                            CountBits<1016>::value,
                                            CountBits<1017>::value,
                                            CountBits<1018>::value,
                                            CountBits<1019>::value,
                                            CountBits<1020>::value,
                                            CountBits<1021>::value,
                                            CountBits<1022>::value,
                                            CountBits<1023>::value,
                                            CountBits<1024>::value,
                                            CountBits<1025>::value,
                                            CountBits<1026>::value,
                                            CountBits<1027>::value,
                                            CountBits<1028>::value,
                                            CountBits<1029>::value,
                                            CountBits<1030>::value,
                                            CountBits<1031>::value,
                                            CountBits<1032>::value,
                                            CountBits<1033>::value,
                                            CountBits<1034>::value,
                                            CountBits<1035>::value,
                                            CountBits<1036>::value,
                                            CountBits<1037>::value,
                                            CountBits<1038>::value,
                                            CountBits<1039>::value,
                                            CountBits<1040>::value,
                                            CountBits<1041>::value,
                                            CountBits<1042>::value,
                                            CountBits<1043>::value,
                                            CountBits<1044>::value,
                                            CountBits<1045>::value,
                                            CountBits<1046>::value,
                                            CountBits<1047>::value,
                                            CountBits<1048>::value,
                                            CountBits<1049>::value,
                                            CountBits<1050>::value,
                                            CountBits<1051>::value,
                                            CountBits<1052>::value,
                                            CountBits<1053>::value,
                                            CountBits<1054>::value,
                                            CountBits<1055>::value,
                                            CountBits<1056>::value,
                                            CountBits<1057>::value,
                                            CountBits<1058>::value,
                                            CountBits<1059>::value,
                                            CountBits<1060>::value,
                                            CountBits<1061>::value,
                                            CountBits<1062>::value,
                                            CountBits<1063>::value,
                                            CountBits<1064>::value,
                                            CountBits<1065>::value,
                                            CountBits<1066>::value,
                                            CountBits<1067>::value,
                                            CountBits<1068>::value,
                                            CountBits<1069>::value,
                                            CountBits<1070>::value,
                                            CountBits<1071>::value,
                                            CountBits<1072>::value,
                                            CountBits<1073>::value,
                                            CountBits<1074>::value,
                                            CountBits<1075>::value,
                                            CountBits<1076>::value,
                                            CountBits<1077>::value,
                                            CountBits<1078>::value,
                                            CountBits<1079>::value,
                                            CountBits<1080>::value,
                                            CountBits<1081>::value,
                                            CountBits<1082>::value,
                                            CountBits<1083>::value,
                                            CountBits<1084>::value,
                                            CountBits<1085>::value,
                                            CountBits<1086>::value,
                                            CountBits<1087>::value,
                                            CountBits<1088>::value,
                                            CountBits<1089>::value,
                                            CountBits<1090>::value,
                                            CountBits<1091>::value,
                                            CountBits<1092>::value,
                                            CountBits<1093>::value,
                                            CountBits<1094>::value,
                                            CountBits<1095>::value,
                                            CountBits<1096>::value,
                                            CountBits<1097>::value,
                                            CountBits<1098>::value,
                                            CountBits<1099>::value,
                                            CountBits<1100>::value,
                                            CountBits<1101>::value,
                                            CountBits<1102>::value,
                                            CountBits<1103>::value,
                                            CountBits<1104>::value,
                                            CountBits<1105>::value,
                                            CountBits<1106>::value,
                                            CountBits<1107>::value,
                                            CountBits<1108>::value,
                                            CountBits<1109>::value,
                                            CountBits<1110>::value,
                                            CountBits<1111>::value,
                                            CountBits<1112>::value,
                                            CountBits<1113>::value,
                                            CountBits<1114>::value,
                                            CountBits<1115>::value,
                                            CountBits<1116>::value,
                                            CountBits<1117>::value,
                                            CountBits<1118>::value,
                                            CountBits<1119>::value,
                                            CountBits<1120>::value,
                                            CountBits<1121>::value,
                                            CountBits<1122>::value,
                                            CountBits<1123>::value,
                                            CountBits<1124>::value,
                                            CountBits<1125>::value,
                                            CountBits<1126>::value,
                                            CountBits<1127>::value,
                                            CountBits<1128>::value,
                                            CountBits<1129>::value,
                                            CountBits<1130>::value,
                                            CountBits<1131>::value,
                                            CountBits<1132>::value,
                                            CountBits<1133>::value,
                                            CountBits<1134>::value,
                                            CountBits<1135>::value,
                                            CountBits<1136>::value,
                                            CountBits<1137>::value,
                                            CountBits<1138>::value,
                                            CountBits<1139>::value,
                                            CountBits<1140>::value,
                                            CountBits<1141>::value,
                                            CountBits<1142>::value,
                                            CountBits<1143>::value,
                                            CountBits<1144>::value,
                                            CountBits<1145>::value,
                                            CountBits<1146>::value,
                                            CountBits<1147>::value,
                                            CountBits<1148>::value,
                                            CountBits<1149>::value,
                                            CountBits<1150>::value,
                                            CountBits<1151>::value,
                                            CountBits<1152>::value,
                                            CountBits<1153>::value,
                                            CountBits<1154>::value,
                                            CountBits<1155>::value,
                                            CountBits<1156>::value,
                                            CountBits<1157>::value,
                                            CountBits<1158>::value,
                                            CountBits<1159>::value,
                                            CountBits<1160>::value,
                                            CountBits<1161>::value,
                                            CountBits<1162>::value,
                                            CountBits<1163>::value,
                                            CountBits<1164>::value,
                                            CountBits<1165>::value,
                                            CountBits<1166>::value,
                                            CountBits<1167>::value,
                                            CountBits<1168>::value,
                                            CountBits<1169>::value,
                                            CountBits<1170>::value,
                                            CountBits<1171>::value,
                                            CountBits<1172>::value,
                                            CountBits<1173>::value,
                                            CountBits<1174>::value,
                                            CountBits<1175>::value,
                                            CountBits<1176>::value,
                                            CountBits<1177>::value,
                                            CountBits<1178>::value,
                                            CountBits<1179>::value,
                                            CountBits<1180>::value,
                                            CountBits<1181>::value,
                                            CountBits<1182>::value,
                                            CountBits<1183>::value,
                                            CountBits<1184>::value,
                                            CountBits<1185>::value,
                                            CountBits<1186>::value,
                                            CountBits<1187>::value,
                                            CountBits<1188>::value,
                                            CountBits<1189>::value,
                                            CountBits<1190>::value,
                                            CountBits<1191>::value,
                                            CountBits<1192>::value,
                                            CountBits<1193>::value,
                                            CountBits<1194>::value,
                                            CountBits<1195>::value,
                                            CountBits<1196>::value,
                                            CountBits<1197>::value,
                                            CountBits<1198>::value,
                                            CountBits<1199>::value,
                                            CountBits<1200>::value,
                                            CountBits<1201>::value,
                                            CountBits<1202>::value,
                                            CountBits<1203>::value,
                                            CountBits<1204>::value,
                                            CountBits<1205>::value,
                                            CountBits<1206>::value,
                                            CountBits<1207>::value,
                                            CountBits<1208>::value,
                                            CountBits<1209>::value,
                                            CountBits<1210>::value,
                                            CountBits<1211>::value,
                                            CountBits<1212>::value,
                                            CountBits<1213>::value,
                                            CountBits<1214>::value,
                                            CountBits<1215>::value,
                                            CountBits<1216>::value,
                                            CountBits<1217>::value,
                                            CountBits<1218>::value,
                                            CountBits<1219>::value,
                                            CountBits<1220>::value,
                                            CountBits<1221>::value,
                                            CountBits<1222>::value,
                                            CountBits<1223>::value,
                                            CountBits<1224>::value,
                                            CountBits<1225>::value,
                                            CountBits<1226>::value,
                                            CountBits<1227>::value,
                                            CountBits<1228>::value,
                                            CountBits<1229>::value,
                                            CountBits<1230>::value,
                                            CountBits<1231>::value,
                                            CountBits<1232>::value,
                                            CountBits<1233>::value,
                                            CountBits<1234>::value,
                                            CountBits<1235>::value,
                                            CountBits<1236>::value,
                                            CountBits<1237>::value,
                                            CountBits<1238>::value,
                                            CountBits<1239>::value,
                                            CountBits<1240>::value,
                                            CountBits<1241>::value,
                                            CountBits<1242>::value,
                                            CountBits<1243>::value,
                                            CountBits<1244>::value,
                                            CountBits<1245>::value,
                                            CountBits<1246>::value,
                                            CountBits<1247>::value,
                                            CountBits<1248>::value,
                                            CountBits<1249>::value,
                                            CountBits<1250>::value,
                                            CountBits<1251>::value,
                                            CountBits<1252>::value,
                                            CountBits<1253>::value,
                                            CountBits<1254>::value,
                                            CountBits<1255>::value,
                                            CountBits<1256>::value,
                                            CountBits<1257>::value,
                                            CountBits<1258>::value,
                                            CountBits<1259>::value,
                                            CountBits<1260>::value,
                                            CountBits<1261>::value,
                                            CountBits<1262>::value,
                                            CountBits<1263>::value,
                                            CountBits<1264>::value,
                                            CountBits<1265>::value,
                                            CountBits<1266>::value,
                                            CountBits<1267>::value,
                                            CountBits<1268>::value,
                                            CountBits<1269>::value,
                                            CountBits<1270>::value,
                                            CountBits<1271>::value,
                                            CountBits<1272>::value,
                                            CountBits<1273>::value,
                                            CountBits<1274>::value,
                                            CountBits<1275>::value,
                                            CountBits<1276>::value,
                                            CountBits<1277>::value,
                                            CountBits<1278>::value,
                                            CountBits<1279>::value,
                                            CountBits<1280>::value,
                                            CountBits<1281>::value,
                                            CountBits<1282>::value,
                                            CountBits<1283>::value,
                                            CountBits<1284>::value,
                                            CountBits<1285>::value,
                                            CountBits<1286>::value,
                                            CountBits<1287>::value,
                                            CountBits<1288>::value,
                                            CountBits<1289>::value,
                                            CountBits<1290>::value,
                                            CountBits<1291>::value,
                                            CountBits<1292>::value,
                                            CountBits<1293>::value,
                                            CountBits<1294>::value,
                                            CountBits<1295>::value,
                                            CountBits<1296>::value,
                                            CountBits<1297>::value,
                                            CountBits<1298>::value,
                                            CountBits<1299>::value,
                                            CountBits<1300>::value,
                                            CountBits<1301>::value,
                                            CountBits<1302>::value,
                                            CountBits<1303>::value,
                                            CountBits<1304>::value,
                                            CountBits<1305>::value,
                                            CountBits<1306>::value,
                                            CountBits<1307>::value,
                                            CountBits<1308>::value,
                                            CountBits<1309>::value,
                                            CountBits<1310>::value,
                                            CountBits<1311>::value,
                                            CountBits<1312>::value,
                                            CountBits<1313>::value,
                                            CountBits<1314>::value,
                                            CountBits<1315>::value,
                                            CountBits<1316>::value,
                                            CountBits<1317>::value,
                                            CountBits<1318>::value,
                                            CountBits<1319>::value,
                                            CountBits<1320>::value,
                                            CountBits<1321>::value,
                                            CountBits<1322>::value,
                                            CountBits<1323>::value,
                                            CountBits<1324>::value,
                                            CountBits<1325>::value,
                                            CountBits<1326>::value,
                                            CountBits<1327>::value,
                                            CountBits<1328>::value,
                                            CountBits<1329>::value,
                                            CountBits<1330>::value,
                                            CountBits<1331>::value,
                                            CountBits<1332>::value,
                                            CountBits<1333>::value,
                                            CountBits<1334>::value,
                                            CountBits<1335>::value,
                                            CountBits<1336>::value,
                                            CountBits<1337>::value,
                                            CountBits<1338>::value,
                                            CountBits<1339>::value,
                                            CountBits<1340>::value,
                                            CountBits<1341>::value,
                                            CountBits<1342>::value,
                                            CountBits<1343>::value,
                                            CountBits<1344>::value,
                                            CountBits<1345>::value,
                                            CountBits<1346>::value,
                                            CountBits<1347>::value,
                                            CountBits<1348>::value,
                                            CountBits<1349>::value,
                                            CountBits<1350>::value,
                                            CountBits<1351>::value,
                                            CountBits<1352>::value,
                                            CountBits<1353>::value,
                                            CountBits<1354>::value,
                                            CountBits<1355>::value,
                                            CountBits<1356>::value,
                                            CountBits<1357>::value,
                                            CountBits<1358>::value,
                                            CountBits<1359>::value,
                                            CountBits<1360>::value,
                                            CountBits<1361>::value,
                                            CountBits<1362>::value,
                                            CountBits<1363>::value,
                                            CountBits<1364>::value,
                                            CountBits<1365>::value,
                                            CountBits<1366>::value,
                                            CountBits<1367>::value,
                                            CountBits<1368>::value,
                                            CountBits<1369>::value,
                                            CountBits<1370>::value,
                                            CountBits<1371>::value,
                                            CountBits<1372>::value,
                                            CountBits<1373>::value,
                                            CountBits<1374>::value,
                                            CountBits<1375>::value,
                                            CountBits<1376>::value,
                                            CountBits<1377>::value,
                                            CountBits<1378>::value,
                                            CountBits<1379>::value,
                                            CountBits<1380>::value,
                                            CountBits<1381>::value,
                                            CountBits<1382>::value,
                                            CountBits<1383>::value,
                                            CountBits<1384>::value,
                                            CountBits<1385>::value,
                                            CountBits<1386>::value,
                                            CountBits<1387>::value,
                                            CountBits<1388>::value,
                                            CountBits<1389>::value,
                                            CountBits<1390>::value,
                                            CountBits<1391>::value,
                                            CountBits<1392>::value,
                                            CountBits<1393>::value,
                                            CountBits<1394>::value,
                                            CountBits<1395>::value,
                                            CountBits<1396>::value,
                                            CountBits<1397>::value,
                                            CountBits<1398>::value,
                                            CountBits<1399>::value,
                                            CountBits<1400>::value,
                                            CountBits<1401>::value,
                                            CountBits<1402>::value,
                                            CountBits<1403>::value,
                                            CountBits<1404>::value,
                                            CountBits<1405>::value,
                                            CountBits<1406>::value,
                                            CountBits<1407>::value,
                                            CountBits<1408>::value,
                                            CountBits<1409>::value,
                                            CountBits<1410>::value,
                                            CountBits<1411>::value,
                                            CountBits<1412>::value,
                                            CountBits<1413>::value,
                                            CountBits<1414>::value,
                                            CountBits<1415>::value,
                                            CountBits<1416>::value,
                                            CountBits<1417>::value,
                                            CountBits<1418>::value,
                                            CountBits<1419>::value,
                                            CountBits<1420>::value,
                                            CountBits<1421>::value,
                                            CountBits<1422>::value,
                                            CountBits<1423>::value,
                                            CountBits<1424>::value,
                                            CountBits<1425>::value,
                                            CountBits<1426>::value,
                                            CountBits<1427>::value,
                                            CountBits<1428>::value,
                                            CountBits<1429>::value,
                                            CountBits<1430>::value,
                                            CountBits<1431>::value,
                                            CountBits<1432>::value,
                                            CountBits<1433>::value,
                                            CountBits<1434>::value,
                                            CountBits<1435>::value,
                                            CountBits<1436>::value,
                                            CountBits<1437>::value,
                                            CountBits<1438>::value,
                                            CountBits<1439>::value,
                                            CountBits<1440>::value,
                                            CountBits<1441>::value,
                                            CountBits<1442>::value,
                                            CountBits<1443>::value,
                                            CountBits<1444>::value,
                                            CountBits<1445>::value,
                                            CountBits<1446>::value,
                                            CountBits<1447>::value,
                                            CountBits<1448>::value,
                                            CountBits<1449>::value,
                                            CountBits<1450>::value,
                                            CountBits<1451>::value,
                                            CountBits<1452>::value,
                                            CountBits<1453>::value,
                                            CountBits<1454>::value,
                                            CountBits<1455>::value,
                                            CountBits<1456>::value,
                                            CountBits<1457>::value,
                                            CountBits<1458>::value,
                                            CountBits<1459>::value,
                                            CountBits<1460>::value,
                                            CountBits<1461>::value,
                                            CountBits<1462>::value,
                                            CountBits<1463>::value,
                                            CountBits<1464>::value,
                                            CountBits<1465>::value,
                                            CountBits<1466>::value,
                                            CountBits<1467>::value,
                                            CountBits<1468>::value,
                                            CountBits<1469>::value,
                                            CountBits<1470>::value,
                                            CountBits<1471>::value,
                                            CountBits<1472>::value,
                                            CountBits<1473>::value,
                                            CountBits<1474>::value,
                                            CountBits<1475>::value,
                                            CountBits<1476>::value,
                                            CountBits<1477>::value,
                                            CountBits<1478>::value,
                                            CountBits<1479>::value,
                                            CountBits<1480>::value,
                                            CountBits<1481>::value,
                                            CountBits<1482>::value,
                                            CountBits<1483>::value,
                                            CountBits<1484>::value,
                                            CountBits<1485>::value,
                                            CountBits<1486>::value,
                                            CountBits<1487>::value,
                                            CountBits<1488>::value,
                                            CountBits<1489>::value,
                                            CountBits<1490>::value,
                                            CountBits<1491>::value,
                                            CountBits<1492>::value,
                                            CountBits<1493>::value,
                                            CountBits<1494>::value,
                                            CountBits<1495>::value,
                                            CountBits<1496>::value,
                                            CountBits<1497>::value,
                                            CountBits<1498>::value,
                                            CountBits<1499>::value,
                                            CountBits<1500>::value,
                                            CountBits<1501>::value,
                                            CountBits<1502>::value,
                                            CountBits<1503>::value,
                                            CountBits<1504>::value,
                                            CountBits<1505>::value,
                                            CountBits<1506>::value,
                                            CountBits<1507>::value,
                                            CountBits<1508>::value,
                                            CountBits<1509>::value,
                                            CountBits<1510>::value,
                                            CountBits<1511>::value,
                                            CountBits<1512>::value,
                                            CountBits<1513>::value,
                                            CountBits<1514>::value,
                                            CountBits<1515>::value,
                                            CountBits<1516>::value,
                                            CountBits<1517>::value,
                                            CountBits<1518>::value,
                                            CountBits<1519>::value,
                                            CountBits<1520>::value,
                                            CountBits<1521>::value,
                                            CountBits<1522>::value,
                                            CountBits<1523>::value,
                                            CountBits<1524>::value,
                                            CountBits<1525>::value,
                                            CountBits<1526>::value,
                                            CountBits<1527>::value,
                                            CountBits<1528>::value,
                                            CountBits<1529>::value,
                                            CountBits<1530>::value,
                                            CountBits<1531>::value,
                                            CountBits<1532>::value,
                                            CountBits<1533>::value,
                                            CountBits<1534>::value,
                                            CountBits<1535>::value,
                                            CountBits<1536>::value,
                                            CountBits<1537>::value,
                                            CountBits<1538>::value,
                                            CountBits<1539>::value,
                                            CountBits<1540>::value,
                                            CountBits<1541>::value,
                                            CountBits<1542>::value,
                                            CountBits<1543>::value,
                                            CountBits<1544>::value,
                                            CountBits<1545>::value,
                                            CountBits<1546>::value,
                                            CountBits<1547>::value,
                                            CountBits<1548>::value,
                                            CountBits<1549>::value,
                                            CountBits<1550>::value,
                                            CountBits<1551>::value,
                                            CountBits<1552>::value,
                                            CountBits<1553>::value,
                                            CountBits<1554>::value,
                                            CountBits<1555>::value,
                                            CountBits<1556>::value,
                                            CountBits<1557>::value,
                                            CountBits<1558>::value,
                                            CountBits<1559>::value,
                                            CountBits<1560>::value,
                                            CountBits<1561>::value,
                                            CountBits<1562>::value,
                                            CountBits<1563>::value,
                                            CountBits<1564>::value,
                                            CountBits<1565>::value,
                                            CountBits<1566>::value,
                                            CountBits<1567>::value,
                                            CountBits<1568>::value,
                                            CountBits<1569>::value,
                                            CountBits<1570>::value,
                                            CountBits<1571>::value,
                                            CountBits<1572>::value,
                                            CountBits<1573>::value,
                                            CountBits<1574>::value,
                                            CountBits<1575>::value,
                                            CountBits<1576>::value,
                                            CountBits<1577>::value,
                                            CountBits<1578>::value,
                                            CountBits<1579>::value,
                                            CountBits<1580>::value,
                                            CountBits<1581>::value,
                                            CountBits<1582>::value,
                                            CountBits<1583>::value,
                                            CountBits<1584>::value,
                                            CountBits<1585>::value,
                                            CountBits<1586>::value,
                                            CountBits<1587>::value,
                                            CountBits<1588>::value,
                                            CountBits<1589>::value,
                                            CountBits<1590>::value,
                                            CountBits<1591>::value,
                                            CountBits<1592>::value,
                                            CountBits<1593>::value,
                                            CountBits<1594>::value,
                                            CountBits<1595>::value,
                                            CountBits<1596>::value,
                                            CountBits<1597>::value,
                                            CountBits<1598>::value,
                                            CountBits<1599>::value,
                                            CountBits<1600>::value,
                                            CountBits<1601>::value,
                                            CountBits<1602>::value,
                                            CountBits<1603>::value,
                                            CountBits<1604>::value,
                                            CountBits<1605>::value,
                                            CountBits<1606>::value,
                                            CountBits<1607>::value,
                                            CountBits<1608>::value,
                                            CountBits<1609>::value,
                                            CountBits<1610>::value,
                                            CountBits<1611>::value,
                                            CountBits<1612>::value,
                                            CountBits<1613>::value,
                                            CountBits<1614>::value,
                                            CountBits<1615>::value,
                                            CountBits<1616>::value,
                                            CountBits<1617>::value,
                                            CountBits<1618>::value,
                                            CountBits<1619>::value,
                                            CountBits<1620>::value,
                                            CountBits<1621>::value,
                                            CountBits<1622>::value,
                                            CountBits<1623>::value,
                                            CountBits<1624>::value,
                                            CountBits<1625>::value,
                                            CountBits<1626>::value,
                                            CountBits<1627>::value,
                                            CountBits<1628>::value,
                                            CountBits<1629>::value,
                                            CountBits<1630>::value,
                                            CountBits<1631>::value,
                                            CountBits<1632>::value,
                                            CountBits<1633>::value,
                                            CountBits<1634>::value,
                                            CountBits<1635>::value,
                                            CountBits<1636>::value,
                                            CountBits<1637>::value,
                                            CountBits<1638>::value,
                                            CountBits<1639>::value,
                                            CountBits<1640>::value,
                                            CountBits<1641>::value,
                                            CountBits<1642>::value,
                                            CountBits<1643>::value,
                                            CountBits<1644>::value,
                                            CountBits<1645>::value,
                                            CountBits<1646>::value,
                                            CountBits<1647>::value,
                                            CountBits<1648>::value,
                                            CountBits<1649>::value,
                                            CountBits<1650>::value,
                                            CountBits<1651>::value,
                                            CountBits<1652>::value,
                                            CountBits<1653>::value,
                                            CountBits<1654>::value,
                                            CountBits<1655>::value,
                                            CountBits<1656>::value,
                                            CountBits<1657>::value,
                                            CountBits<1658>::value,
                                            CountBits<1659>::value,
                                            CountBits<1660>::value,
                                            CountBits<1661>::value,
                                            CountBits<1662>::value,
                                            CountBits<1663>::value,
                                            CountBits<1664>::value,
                                            CountBits<1665>::value,
                                            CountBits<1666>::value,
                                            CountBits<1667>::value,
                                            CountBits<1668>::value,
                                            CountBits<1669>::value,
                                            CountBits<1670>::value,
                                            CountBits<1671>::value,
                                            CountBits<1672>::value,
                                            CountBits<1673>::value,
                                            CountBits<1674>::value,
                                            CountBits<1675>::value,
                                            CountBits<1676>::value,
                                            CountBits<1677>::value,
                                            CountBits<1678>::value,
                                            CountBits<1679>::value,
                                            CountBits<1680>::value,
                                            CountBits<1681>::value,
                                            CountBits<1682>::value,
                                            CountBits<1683>::value,
                                            CountBits<1684>::value,
                                            CountBits<1685>::value,
                                            CountBits<1686>::value,
                                            CountBits<1687>::value,
                                            CountBits<1688>::value,
                                            CountBits<1689>::value,
                                            CountBits<1690>::value,
                                            CountBits<1691>::value,
                                            CountBits<1692>::value,
                                            CountBits<1693>::value,
                                            CountBits<1694>::value,
                                            CountBits<1695>::value,
                                            CountBits<1696>::value,
                                            CountBits<1697>::value,
                                            CountBits<1698>::value,
                                            CountBits<1699>::value,
                                            CountBits<1700>::value,
                                            CountBits<1701>::value,
                                            CountBits<1702>::value,
                                            CountBits<1703>::value,
                                            CountBits<1704>::value,
                                            CountBits<1705>::value,
                                            CountBits<1706>::value,
                                            CountBits<1707>::value,
                                            CountBits<1708>::value,
                                            CountBits<1709>::value,
                                            CountBits<1710>::value,
                                            CountBits<1711>::value,
                                            CountBits<1712>::value,
                                            CountBits<1713>::value,
                                            CountBits<1714>::value,
                                            CountBits<1715>::value,
                                            CountBits<1716>::value,
                                            CountBits<1717>::value,
                                            CountBits<1718>::value,
                                            CountBits<1719>::value,
                                            CountBits<1720>::value,
                                            CountBits<1721>::value,
                                            CountBits<1722>::value,
                                            CountBits<1723>::value,
                                            CountBits<1724>::value,
                                            CountBits<1725>::value,
                                            CountBits<1726>::value,
                                            CountBits<1727>::value,
                                            CountBits<1728>::value,
                                            CountBits<1729>::value,
                                            CountBits<1730>::value,
                                            CountBits<1731>::value,
                                            CountBits<1732>::value,
                                            CountBits<1733>::value,
                                            CountBits<1734>::value,
                                            CountBits<1735>::value,
                                            CountBits<1736>::value,
                                            CountBits<1737>::value,
                                            CountBits<1738>::value,
                                            CountBits<1739>::value,
                                            CountBits<1740>::value,
                                            CountBits<1741>::value,
                                            CountBits<1742>::value,
                                            CountBits<1743>::value,
                                            CountBits<1744>::value,
                                            CountBits<1745>::value,
                                            CountBits<1746>::value,
                                            CountBits<1747>::value,
                                            CountBits<1748>::value,
                                            CountBits<1749>::value,
                                            CountBits<1750>::value,
                                            CountBits<1751>::value,
                                            CountBits<1752>::value,
                                            CountBits<1753>::value,
                                            CountBits<1754>::value,
                                            CountBits<1755>::value,
                                            CountBits<1756>::value,
                                            CountBits<1757>::value,
                                            CountBits<1758>::value,
                                            CountBits<1759>::value,
                                            CountBits<1760>::value,
                                            CountBits<1761>::value,
                                            CountBits<1762>::value,
                                            CountBits<1763>::value,
                                            CountBits<1764>::value,
                                            CountBits<1765>::value,
                                            CountBits<1766>::value,
                                            CountBits<1767>::value,
                                            CountBits<1768>::value,
                                            CountBits<1769>::value,
                                            CountBits<1770>::value,
                                            CountBits<1771>::value,
                                            CountBits<1772>::value,
                                            CountBits<1773>::value,
                                            CountBits<1774>::value,
                                            CountBits<1775>::value,
                                            CountBits<1776>::value,
                                            CountBits<1777>::value,
                                            CountBits<1778>::value,
                                            CountBits<1779>::value,
                                            CountBits<1780>::value,
                                            CountBits<1781>::value,
                                            CountBits<1782>::value,
                                            CountBits<1783>::value,
                                            CountBits<1784>::value,
                                            CountBits<1785>::value,
                                            CountBits<1786>::value,
                                            CountBits<1787>::value,
                                            CountBits<1788>::value,
                                            CountBits<1789>::value,
                                            CountBits<1790>::value,
                                            CountBits<1791>::value,
                                            CountBits<1792>::value,
                                            CountBits<1793>::value,
                                            CountBits<1794>::value,
                                            CountBits<1795>::value,
                                            CountBits<1796>::value,
                                            CountBits<1797>::value,
                                            CountBits<1798>::value,
                                            CountBits<1799>::value,
                                            CountBits<1800>::value,
                                            CountBits<1801>::value,
                                            CountBits<1802>::value,
                                            CountBits<1803>::value,
                                            CountBits<1804>::value,
                                            CountBits<1805>::value,
                                            CountBits<1806>::value,
                                            CountBits<1807>::value,
                                            CountBits<1808>::value,
                                            CountBits<1809>::value,
                                            CountBits<1810>::value,
                                            CountBits<1811>::value,
                                            CountBits<1812>::value,
                                            CountBits<1813>::value,
                                            CountBits<1814>::value,
                                            CountBits<1815>::value,
                                            CountBits<1816>::value,
                                            CountBits<1817>::value,
                                            CountBits<1818>::value,
                                            CountBits<1819>::value,
                                            CountBits<1820>::value,
                                            CountBits<1821>::value,
                                            CountBits<1822>::value,
                                            CountBits<1823>::value,
                                            CountBits<1824>::value,
                                            CountBits<1825>::value,
                                            CountBits<1826>::value,
                                            CountBits<1827>::value,
                                            CountBits<1828>::value,
                                            CountBits<1829>::value,
                                            CountBits<1830>::value,
                                            CountBits<1831>::value,
                                            CountBits<1832>::value,
                                            CountBits<1833>::value,
                                            CountBits<1834>::value,
                                            CountBits<1835>::value,
                                            CountBits<1836>::value,
                                            CountBits<1837>::value,
                                            CountBits<1838>::value,
                                            CountBits<1839>::value,
                                            CountBits<1840>::value,
                                            CountBits<1841>::value,
                                            CountBits<1842>::value,
                                            CountBits<1843>::value,
                                            CountBits<1844>::value,
                                            CountBits<1845>::value,
                                            CountBits<1846>::value,
                                            CountBits<1847>::value,
                                            CountBits<1848>::value,
                                            CountBits<1849>::value,
                                            CountBits<1850>::value,
                                            CountBits<1851>::value,
                                            CountBits<1852>::value,
                                            CountBits<1853>::value,
                                            CountBits<1854>::value,
                                            CountBits<1855>::value,
                                            CountBits<1856>::value,
                                            CountBits<1857>::value,
                                            CountBits<1858>::value,
                                            CountBits<1859>::value,
                                            CountBits<1860>::value,
                                            CountBits<1861>::value,
                                            CountBits<1862>::value,
                                            CountBits<1863>::value,
                                            CountBits<1864>::value,
                                            CountBits<1865>::value,
                                            CountBits<1866>::value,
                                            CountBits<1867>::value,
                                            CountBits<1868>::value,
                                            CountBits<1869>::value,
                                            CountBits<1870>::value,
                                            CountBits<1871>::value,
                                            CountBits<1872>::value,
                                            CountBits<1873>::value,
                                            CountBits<1874>::value,
                                            CountBits<1875>::value,
                                            CountBits<1876>::value,
                                            CountBits<1877>::value,
                                            CountBits<1878>::value,
                                            CountBits<1879>::value,
                                            CountBits<1880>::value,
                                            CountBits<1881>::value,
                                            CountBits<1882>::value,
                                            CountBits<1883>::value,
                                            CountBits<1884>::value,
                                            CountBits<1885>::value,
                                            CountBits<1886>::value,
                                            CountBits<1887>::value,
                                            CountBits<1888>::value,
                                            CountBits<1889>::value,
                                            CountBits<1890>::value,
                                            CountBits<1891>::value,
                                            CountBits<1892>::value,
                                            CountBits<1893>::value,
                                            CountBits<1894>::value,
                                            CountBits<1895>::value,
                                            CountBits<1896>::value,
                                            CountBits<1897>::value,
                                            CountBits<1898>::value,
                                            CountBits<1899>::value,
                                            CountBits<1900>::value,
                                            CountBits<1901>::value,
                                            CountBits<1902>::value,
                                            CountBits<1903>::value,
                                            CountBits<1904>::value,
                                            CountBits<1905>::value,
                                            CountBits<1906>::value,
                                            CountBits<1907>::value,
                                            CountBits<1908>::value,
                                            CountBits<1909>::value,
                                            CountBits<1910>::value,
                                            CountBits<1911>::value,
                                            CountBits<1912>::value,
                                            CountBits<1913>::value,
                                            CountBits<1914>::value,
                                            CountBits<1915>::value,
                                            CountBits<1916>::value,
                                            CountBits<1917>::value,
                                            CountBits<1918>::value,
                                            CountBits<1919>::value,
                                            CountBits<1920>::value,
                                            CountBits<1921>::value,
                                            CountBits<1922>::value,
                                            CountBits<1923>::value,
                                            CountBits<1924>::value,
                                            CountBits<1925>::value,
                                            CountBits<1926>::value,
                                            CountBits<1927>::value,
                                            CountBits<1928>::value,
                                            CountBits<1929>::value,
                                            CountBits<1930>::value,
                                            CountBits<1931>::value,
                                            CountBits<1932>::value,
                                            CountBits<1933>::value,
                                            CountBits<1934>::value,
                                            CountBits<1935>::value,
                                            CountBits<1936>::value,
                                            CountBits<1937>::value,
                                            CountBits<1938>::value,
                                            CountBits<1939>::value,
                                            CountBits<1940>::value,
                                            CountBits<1941>::value,
                                            CountBits<1942>::value,
                                            CountBits<1943>::value,
                                            CountBits<1944>::value,
                                            CountBits<1945>::value,
                                            CountBits<1946>::value,
                                            CountBits<1947>::value,
                                            CountBits<1948>::value,
                                            CountBits<1949>::value,
                                            CountBits<1950>::value,
                                            CountBits<1951>::value,
                                            CountBits<1952>::value,
                                            CountBits<1953>::value,
                                            CountBits<1954>::value,
                                            CountBits<1955>::value,
                                            CountBits<1956>::value,
                                            CountBits<1957>::value,
                                            CountBits<1958>::value,
                                            CountBits<1959>::value,
                                            CountBits<1960>::value,
                                            CountBits<1961>::value,
                                            CountBits<1962>::value,
                                            CountBits<1963>::value,
                                            CountBits<1964>::value,
                                            CountBits<1965>::value,
                                            CountBits<1966>::value,
                                            CountBits<1967>::value,
                                            CountBits<1968>::value,
                                            CountBits<1969>::value,
                                            CountBits<1970>::value,
                                            CountBits<1971>::value,
                                            CountBits<1972>::value,
                                            CountBits<1973>::value,
                                            CountBits<1974>::value,
                                            CountBits<1975>::value,
                                            CountBits<1976>::value,
                                            CountBits<1977>::value,
                                            CountBits<1978>::value,
                                            CountBits<1979>::value,
                                            CountBits<1980>::value,
                                            CountBits<1981>::value,
                                            CountBits<1982>::value,
                                            CountBits<1983>::value,
                                            CountBits<1984>::value,
                                            CountBits<1985>::value,
                                            CountBits<1986>::value,
                                            CountBits<1987>::value,
                                            CountBits<1988>::value,
                                            CountBits<1989>::value,
                                            CountBits<1990>::value,
                                            CountBits<1991>::value,
                                            CountBits<1992>::value,
                                            CountBits<1993>::value,
                                            CountBits<1994>::value,
                                            CountBits<1995>::value,
                                            CountBits<1996>::value,
                                            CountBits<1997>::value,
                                            CountBits<1998>::value,
                                            CountBits<1999>::value,
                                            CountBits<2000>::value,
                                            CountBits<2001>::value,
                                            CountBits<2002>::value,
                                            CountBits<2003>::value,
                                            CountBits<2004>::value,
                                            CountBits<2005>::value,
                                            CountBits<2006>::value,
                                            CountBits<2007>::value,
                                            CountBits<2008>::value,
                                            CountBits<2009>::value,
                                            CountBits<2010>::value,
                                            CountBits<2011>::value,
                                            CountBits<2012>::value,
                                            CountBits<2013>::value,
                                            CountBits<2014>::value,
                                            CountBits<2015>::value,
                                            CountBits<2016>::value,
                                            CountBits<2017>::value,
                                            CountBits<2018>::value,
                                            CountBits<2019>::value,
                                            CountBits<2020>::value,
                                            CountBits<2021>::value,
                                            CountBits<2022>::value,
                                            CountBits<2023>::value,
                                            CountBits<2024>::value,
                                            CountBits<2025>::value,
                                            CountBits<2026>::value,
                                            CountBits<2027>::value,
                                            CountBits<2028>::value,
                                            CountBits<2029>::value,
                                            CountBits<2030>::value,
                                            CountBits<2031>::value,
                                            CountBits<2032>::value,
                                            CountBits<2033>::value,
                                            CountBits<2034>::value,
                                            CountBits<2035>::value,
                                            CountBits<2036>::value,
                                            CountBits<2037>::value,
                                            CountBits<2038>::value,
                                            CountBits<2039>::value,
                                            CountBits<2040>::value,
                                            CountBits<2041>::value,
                                            CountBits<2042>::value,
                                            CountBits<2043>::value,
                                            CountBits<2044>::value,
                                            CountBits<2045>::value,
                                            CountBits<2046>::value,
                                            CountBits<2047>::value,
                                            CountBits<2048>::value,
                                            CountBits<2049>::value,
                                            CountBits<2050>::value,
                                            CountBits<2051>::value,
                                            CountBits<2052>::value,
                                            CountBits<2053>::value,
                                            CountBits<2054>::value,
                                            CountBits<2055>::value,
                                            CountBits<2056>::value,
                                            CountBits<2057>::value,
                                            CountBits<2058>::value,
                                            CountBits<2059>::value,
                                            CountBits<2060>::value,
                                            CountBits<2061>::value,
                                            CountBits<2062>::value,
                                            CountBits<2063>::value,
                                            CountBits<2064>::value,
                                            CountBits<2065>::value,
                                            CountBits<2066>::value,
                                            CountBits<2067>::value,
                                            CountBits<2068>::value,
                                            CountBits<2069>::value,
                                            CountBits<2070>::value,
                                            CountBits<2071>::value,
                                            CountBits<2072>::value,
                                            CountBits<2073>::value,
                                            CountBits<2074>::value,
                                            CountBits<2075>::value,
                                            CountBits<2076>::value,
                                            CountBits<2077>::value,
                                            CountBits<2078>::value,
                                            CountBits<2079>::value,
                                            CountBits<2080>::value,
                                            CountBits<2081>::value,
                                            CountBits<2082>::value,
                                            CountBits<2083>::value,
                                            CountBits<2084>::value,
                                            CountBits<2085>::value,
                                            CountBits<2086>::value,
                                            CountBits<2087>::value,
                                            CountBits<2088>::value,
                                            CountBits<2089>::value,
                                            CountBits<2090>::value,
                                            CountBits<2091>::value,
                                            CountBits<2092>::value,
                                            CountBits<2093>::value,
                                            CountBits<2094>::value,
                                            CountBits<2095>::value,
                                            CountBits<2096>::value,
                                            CountBits<2097>::value,
                                            CountBits<2098>::value,
                                            CountBits<2099>::value,
                                            CountBits<2100>::value,
                                            CountBits<2101>::value,
                                            CountBits<2102>::value,
                                            CountBits<2103>::value,
                                            CountBits<2104>::value,
                                            CountBits<2105>::value,
                                            CountBits<2106>::value,
                                            CountBits<2107>::value,
                                            CountBits<2108>::value,
                                            CountBits<2109>::value,
                                            CountBits<2110>::value,
                                            CountBits<2111>::value,
                                            CountBits<2112>::value,
                                            CountBits<2113>::value,
                                            CountBits<2114>::value,
                                            CountBits<2115>::value,
                                            CountBits<2116>::value,
                                            CountBits<2117>::value,
                                            CountBits<2118>::value,
                                            CountBits<2119>::value,
                                            CountBits<2120>::value,
                                            CountBits<2121>::value,
                                            CountBits<2122>::value,
                                            CountBits<2123>::value,
                                            CountBits<2124>::value,
                                            CountBits<2125>::value,
                                            CountBits<2126>::value,
                                            CountBits<2127>::value,
                                            CountBits<2128>::value,
                                            CountBits<2129>::value,
                                            CountBits<2130>::value,
                                            CountBits<2131>::value,
                                            CountBits<2132>::value,
                                            CountBits<2133>::value,
                                            CountBits<2134>::value,
                                            CountBits<2135>::value,
                                            CountBits<2136>::value,
                                            CountBits<2137>::value,
                                            CountBits<2138>::value,
                                            CountBits<2139>::value,
                                            CountBits<2140>::value,
                                            CountBits<2141>::value,
                                            CountBits<2142>::value,
                                            CountBits<2143>::value,
                                            CountBits<2144>::value,
                                            CountBits<2145>::value,
                                            CountBits<2146>::value,
                                            CountBits<2147>::value,
                                            CountBits<2148>::value,
                                            CountBits<2149>::value,
                                            CountBits<2150>::value,
                                            CountBits<2151>::value,
                                            CountBits<2152>::value,
                                            CountBits<2153>::value,
                                            CountBits<2154>::value,
                                            CountBits<2155>::value,
                                            CountBits<2156>::value,
                                            CountBits<2157>::value,
                                            CountBits<2158>::value,
                                            CountBits<2159>::value,
                                            CountBits<2160>::value,
                                            CountBits<2161>::value,
                                            CountBits<2162>::value,
                                            CountBits<2163>::value,
                                            CountBits<2164>::value,
                                            CountBits<2165>::value,
                                            CountBits<2166>::value,
                                            CountBits<2167>::value,
                                            CountBits<2168>::value,
                                            CountBits<2169>::value,
                                            CountBits<2170>::value,
                                            CountBits<2171>::value,
                                            CountBits<2172>::value,
                                            CountBits<2173>::value,
                                            CountBits<2174>::value,
                                            CountBits<2175>::value,
                                            CountBits<2176>::value,
                                            CountBits<2177>::value,
                                            CountBits<2178>::value,
                                            CountBits<2179>::value,
                                            CountBits<2180>::value,
                                            CountBits<2181>::value,
                                            CountBits<2182>::value,
                                            CountBits<2183>::value,
                                            CountBits<2184>::value,
                                            CountBits<2185>::value,
                                            CountBits<2186>::value,
                                            CountBits<2187>::value,
                                            CountBits<2188>::value,
                                            CountBits<2189>::value,
                                            CountBits<2190>::value,
                                            CountBits<2191>::value,
                                            CountBits<2192>::value,
                                            CountBits<2193>::value,
                                            CountBits<2194>::value,
                                            CountBits<2195>::value,
                                            CountBits<2196>::value,
                                            CountBits<2197>::value,
                                            CountBits<2198>::value,
                                            CountBits<2199>::value,
                                            CountBits<2200>::value,
                                            CountBits<2201>::value,
                                            CountBits<2202>::value,
                                            CountBits<2203>::value,
                                            CountBits<2204>::value,
                                            CountBits<2205>::value,
                                            CountBits<2206>::value,
                                            CountBits<2207>::value,
                                            CountBits<2208>::value,
                                            CountBits<2209>::value,
                                            CountBits<2210>::value,
                                            CountBits<2211>::value,
                                            CountBits<2212>::value,
                                            CountBits<2213>::value,
                                            CountBits<2214>::value,
                                            CountBits<2215>::value,
                                            CountBits<2216>::value,
                                            CountBits<2217>::value,
                                            CountBits<2218>::value,
                                            CountBits<2219>::value,
                                            CountBits<2220>::value,
                                            CountBits<2221>::value,
                                            CountBits<2222>::value,
                                            CountBits<2223>::value,
                                            CountBits<2224>::value,
                                            CountBits<2225>::value,
                                            CountBits<2226>::value,
                                            CountBits<2227>::value,
                                            CountBits<2228>::value,
                                            CountBits<2229>::value,
                                            CountBits<2230>::value,
                                            CountBits<2231>::value,
                                            CountBits<2232>::value,
                                            CountBits<2233>::value,
                                            CountBits<2234>::value,
                                            CountBits<2235>::value,
                                            CountBits<2236>::value,
                                            CountBits<2237>::value,
                                            CountBits<2238>::value,
                                            CountBits<2239>::value,
                                            CountBits<2240>::value,
                                            CountBits<2241>::value,
                                            CountBits<2242>::value,
                                            CountBits<2243>::value,
                                            CountBits<2244>::value,
                                            CountBits<2245>::value,
                                            CountBits<2246>::value,
                                            CountBits<2247>::value,
                                            CountBits<2248>::value,
                                            CountBits<2249>::value,
                                            CountBits<2250>::value,
                                            CountBits<2251>::value,
                                            CountBits<2252>::value,
                                            CountBits<2253>::value,
                                            CountBits<2254>::value,
                                            CountBits<2255>::value,
                                            CountBits<2256>::value,
                                            CountBits<2257>::value,
                                            CountBits<2258>::value,
                                            CountBits<2259>::value,
                                            CountBits<2260>::value,
                                            CountBits<2261>::value,
                                            CountBits<2262>::value,
                                            CountBits<2263>::value,
                                            CountBits<2264>::value,
                                            CountBits<2265>::value,
                                            CountBits<2266>::value,
                                            CountBits<2267>::value,
                                            CountBits<2268>::value,
                                            CountBits<2269>::value,
                                            CountBits<2270>::value,
                                            CountBits<2271>::value,
                                            CountBits<2272>::value,
                                            CountBits<2273>::value,
                                            CountBits<2274>::value,
                                            CountBits<2275>::value,
                                            CountBits<2276>::value,
                                            CountBits<2277>::value,
                                            CountBits<2278>::value,
                                            CountBits<2279>::value,
                                            CountBits<2280>::value,
                                            CountBits<2281>::value,
                                            CountBits<2282>::value,
                                            CountBits<2283>::value,
                                            CountBits<2284>::value,
                                            CountBits<2285>::value,
                                            CountBits<2286>::value,
                                            CountBits<2287>::value,
                                            CountBits<2288>::value,
                                            CountBits<2289>::value,
                                            CountBits<2290>::value,
                                            CountBits<2291>::value,
                                            CountBits<2292>::value,
                                            CountBits<2293>::value,
                                            CountBits<2294>::value,
                                            CountBits<2295>::value,
                                            CountBits<2296>::value,
                                            CountBits<2297>::value,
                                            CountBits<2298>::value,
                                            CountBits<2299>::value,
                                            CountBits<2300>::value,
                                            CountBits<2301>::value,
                                            CountBits<2302>::value,
                                            CountBits<2303>::value,
                                            CountBits<2304>::value,
                                            CountBits<2305>::value,
                                            CountBits<2306>::value,
                                            CountBits<2307>::value,
                                            CountBits<2308>::value,
                                            CountBits<2309>::value,
                                            CountBits<2310>::value,
                                            CountBits<2311>::value,
                                            CountBits<2312>::value,
                                            CountBits<2313>::value,
                                            CountBits<2314>::value,
                                            CountBits<2315>::value,
                                            CountBits<2316>::value,
                                            CountBits<2317>::value,
                                            CountBits<2318>::value,
                                            CountBits<2319>::value,
                                            CountBits<2320>::value,
                                            CountBits<2321>::value,
                                            CountBits<2322>::value,
                                            CountBits<2323>::value,
                                            CountBits<2324>::value,
                                            CountBits<2325>::value,
                                            CountBits<2326>::value,
                                            CountBits<2327>::value,
                                            CountBits<2328>::value,
                                            CountBits<2329>::value,
                                            CountBits<2330>::value,
                                            CountBits<2331>::value,
                                            CountBits<2332>::value,
                                            CountBits<2333>::value,
                                            CountBits<2334>::value,
                                            CountBits<2335>::value,
                                            CountBits<2336>::value,
                                            CountBits<2337>::value,
                                            CountBits<2338>::value,
                                            CountBits<2339>::value,
                                            CountBits<2340>::value,
                                            CountBits<2341>::value,
                                            CountBits<2342>::value,
                                            CountBits<2343>::value,
                                            CountBits<2344>::value,
                                            CountBits<2345>::value,
                                            CountBits<2346>::value,
                                            CountBits<2347>::value,
                                            CountBits<2348>::value,
                                            CountBits<2349>::value,
                                            CountBits<2350>::value,
                                            CountBits<2351>::value,
                                            CountBits<2352>::value,
                                            CountBits<2353>::value,
                                            CountBits<2354>::value,
                                            CountBits<2355>::value,
                                            CountBits<2356>::value,
                                            CountBits<2357>::value,
                                            CountBits<2358>::value,
                                            CountBits<2359>::value,
                                            CountBits<2360>::value,
                                            CountBits<2361>::value,
                                            CountBits<2362>::value,
                                            CountBits<2363>::value,
                                            CountBits<2364>::value,
                                            CountBits<2365>::value,
                                            CountBits<2366>::value,
                                            CountBits<2367>::value,
                                            CountBits<2368>::value,
                                            CountBits<2369>::value,
                                            CountBits<2370>::value,
                                            CountBits<2371>::value,
                                            CountBits<2372>::value,
                                            CountBits<2373>::value,
                                            CountBits<2374>::value,
                                            CountBits<2375>::value,
                                            CountBits<2376>::value,
                                            CountBits<2377>::value,
                                            CountBits<2378>::value,
                                            CountBits<2379>::value,
                                            CountBits<2380>::value,
                                            CountBits<2381>::value,
                                            CountBits<2382>::value,
                                            CountBits<2383>::value,
                                            CountBits<2384>::value,
                                            CountBits<2385>::value,
                                            CountBits<2386>::value,
                                            CountBits<2387>::value,
                                            CountBits<2388>::value,
                                            CountBits<2389>::value,
                                            CountBits<2390>::value,
                                            CountBits<2391>::value,
                                            CountBits<2392>::value,
                                            CountBits<2393>::value,
                                            CountBits<2394>::value,
                                            CountBits<2395>::value,
                                            CountBits<2396>::value,
                                            CountBits<2397>::value,
                                            CountBits<2398>::value,
                                            CountBits<2399>::value,
                                            CountBits<2400>::value,
                                            CountBits<2401>::value,
                                            CountBits<2402>::value,
                                            CountBits<2403>::value,
                                            CountBits<2404>::value,
                                            CountBits<2405>::value,
                                            CountBits<2406>::value,
                                            CountBits<2407>::value,
                                            CountBits<2408>::value,
                                            CountBits<2409>::value,
                                            CountBits<2410>::value,
                                            CountBits<2411>::value,
                                            CountBits<2412>::value,
                                            CountBits<2413>::value,
                                            CountBits<2414>::value,
                                            CountBits<2415>::value,
                                            CountBits<2416>::value,
                                            CountBits<2417>::value,
                                            CountBits<2418>::value,
                                            CountBits<2419>::value,
                                            CountBits<2420>::value,
                                            CountBits<2421>::value,
                                            CountBits<2422>::value,
                                            CountBits<2423>::value,
                                            CountBits<2424>::value,
                                            CountBits<2425>::value,
                                            CountBits<2426>::value,
                                            CountBits<2427>::value,
                                            CountBits<2428>::value,
                                            CountBits<2429>::value,
                                            CountBits<2430>::value,
                                            CountBits<2431>::value,
                                            CountBits<2432>::value,
                                            CountBits<2433>::value,
                                            CountBits<2434>::value,
                                            CountBits<2435>::value,
                                            CountBits<2436>::value,
                                            CountBits<2437>::value,
                                            CountBits<2438>::value,
                                            CountBits<2439>::value,
                                            CountBits<2440>::value,
                                            CountBits<2441>::value,
                                            CountBits<2442>::value,
                                            CountBits<2443>::value,
                                            CountBits<2444>::value,
                                            CountBits<2445>::value,
                                            CountBits<2446>::value,
                                            CountBits<2447>::value,
                                            CountBits<2448>::value,
                                            CountBits<2449>::value,
                                            CountBits<2450>::value,
                                            CountBits<2451>::value,
                                            CountBits<2452>::value,
                                            CountBits<2453>::value,
                                            CountBits<2454>::value,
                                            CountBits<2455>::value,
                                            CountBits<2456>::value,
                                            CountBits<2457>::value,
                                            CountBits<2458>::value,
                                            CountBits<2459>::value,
                                            CountBits<2460>::value,
                                            CountBits<2461>::value,
                                            CountBits<2462>::value,
                                            CountBits<2463>::value,
                                            CountBits<2464>::value,
                                            CountBits<2465>::value,
                                            CountBits<2466>::value,
                                            CountBits<2467>::value,
                                            CountBits<2468>::value,
                                            CountBits<2469>::value,
                                            CountBits<2470>::value,
                                            CountBits<2471>::value,
                                            CountBits<2472>::value,
                                            CountBits<2473>::value,
                                            CountBits<2474>::value,
                                            CountBits<2475>::value,
                                            CountBits<2476>::value,
                                            CountBits<2477>::value,
                                            CountBits<2478>::value,
                                            CountBits<2479>::value,
                                            CountBits<2480>::value,
                                            CountBits<2481>::value,
                                            CountBits<2482>::value,
                                            CountBits<2483>::value,
                                            CountBits<2484>::value,
                                            CountBits<2485>::value,
                                            CountBits<2486>::value,
                                            CountBits<2487>::value,
                                            CountBits<2488>::value,
                                            CountBits<2489>::value,
                                            CountBits<2490>::value,
                                            CountBits<2491>::value,
                                            CountBits<2492>::value,
                                            CountBits<2493>::value,
                                            CountBits<2494>::value,
                                            CountBits<2495>::value,
                                            CountBits<2496>::value,
                                            CountBits<2497>::value,
                                            CountBits<2498>::value,
                                            CountBits<2499>::value,
                                            CountBits<2500>::value,
                                            CountBits<2501>::value,
                                            CountBits<2502>::value,
                                            CountBits<2503>::value,
                                            CountBits<2504>::value,
                                            CountBits<2505>::value,
                                            CountBits<2506>::value,
                                            CountBits<2507>::value,
                                            CountBits<2508>::value,
                                            CountBits<2509>::value,
                                            CountBits<2510>::value,
                                            CountBits<2511>::value,
                                            CountBits<2512>::value,
                                            CountBits<2513>::value,
                                            CountBits<2514>::value,
                                            CountBits<2515>::value,
                                            CountBits<2516>::value,
                                            CountBits<2517>::value,
                                            CountBits<2518>::value,
                                            CountBits<2519>::value,
                                            CountBits<2520>::value,
                                            CountBits<2521>::value,
                                            CountBits<2522>::value,
                                            CountBits<2523>::value,
                                            CountBits<2524>::value,
                                            CountBits<2525>::value,
                                            CountBits<2526>::value,
                                            CountBits<2527>::value,
                                            CountBits<2528>::value,
                                            CountBits<2529>::value,
                                            CountBits<2530>::value,
                                            CountBits<2531>::value,
                                            CountBits<2532>::value,
                                            CountBits<2533>::value,
                                            CountBits<2534>::value,
                                            CountBits<2535>::value,
                                            CountBits<2536>::value,
                                            CountBits<2537>::value,
                                            CountBits<2538>::value,
                                            CountBits<2539>::value,
                                            CountBits<2540>::value,
                                            CountBits<2541>::value,
                                            CountBits<2542>::value,
                                            CountBits<2543>::value,
                                            CountBits<2544>::value,
                                            CountBits<2545>::value,
                                            CountBits<2546>::value,
                                            CountBits<2547>::value,
                                            CountBits<2548>::value,
                                            CountBits<2549>::value,
                                            CountBits<2550>::value,
                                            CountBits<2551>::value,
                                            CountBits<2552>::value,
                                            CountBits<2553>::value,
                                            CountBits<2554>::value,
                                            CountBits<2555>::value,
                                            CountBits<2556>::value,
                                            CountBits<2557>::value,
                                            CountBits<2558>::value,
                                            CountBits<2559>::value,
                                            CountBits<2560>::value,
                                            CountBits<2561>::value,
                                            CountBits<2562>::value,
                                            CountBits<2563>::value,
                                            CountBits<2564>::value,
                                            CountBits<2565>::value,
                                            CountBits<2566>::value,
                                            CountBits<2567>::value,
                                            CountBits<2568>::value,
                                            CountBits<2569>::value,
                                            CountBits<2570>::value,
                                            CountBits<2571>::value,
                                            CountBits<2572>::value,
                                            CountBits<2573>::value,
                                            CountBits<2574>::value,
                                            CountBits<2575>::value,
                                            CountBits<2576>::value,
                                            CountBits<2577>::value,
                                            CountBits<2578>::value,
                                            CountBits<2579>::value,
                                            CountBits<2580>::value,
                                            CountBits<2581>::value,
                                            CountBits<2582>::value,
                                            CountBits<2583>::value,
                                            CountBits<2584>::value,
                                            CountBits<2585>::value,
                                            CountBits<2586>::value,
                                            CountBits<2587>::value,
                                            CountBits<2588>::value,
                                            CountBits<2589>::value,
                                            CountBits<2590>::value,
                                            CountBits<2591>::value,
                                            CountBits<2592>::value,
                                            CountBits<2593>::value,
                                            CountBits<2594>::value,
                                            CountBits<2595>::value,
                                            CountBits<2596>::value,
                                            CountBits<2597>::value,
                                            CountBits<2598>::value,
                                            CountBits<2599>::value,
                                            CountBits<2600>::value,
                                            CountBits<2601>::value,
                                            CountBits<2602>::value,
                                            CountBits<2603>::value,
                                            CountBits<2604>::value,
                                            CountBits<2605>::value,
                                            CountBits<2606>::value,
                                            CountBits<2607>::value,
                                            CountBits<2608>::value,
                                            CountBits<2609>::value,
                                            CountBits<2610>::value,
                                            CountBits<2611>::value,
                                            CountBits<2612>::value,
                                            CountBits<2613>::value,
                                            CountBits<2614>::value,
                                            CountBits<2615>::value,
                                            CountBits<2616>::value,
                                            CountBits<2617>::value,
                                            CountBits<2618>::value,
                                            CountBits<2619>::value,
                                            CountBits<2620>::value,
                                            CountBits<2621>::value,
                                            CountBits<2622>::value,
                                            CountBits<2623>::value,
                                            CountBits<2624>::value,
                                            CountBits<2625>::value,
                                            CountBits<2626>::value,
                                            CountBits<2627>::value,
                                            CountBits<2628>::value,
                                            CountBits<2629>::value,
                                            CountBits<2630>::value,
                                            CountBits<2631>::value,
                                            CountBits<2632>::value,
                                            CountBits<2633>::value,
                                            CountBits<2634>::value,
                                            CountBits<2635>::value,
                                            CountBits<2636>::value,
                                            CountBits<2637>::value,
                                            CountBits<2638>::value,
                                            CountBits<2639>::value,
                                            CountBits<2640>::value,
                                            CountBits<2641>::value,
                                            CountBits<2642>::value,
                                            CountBits<2643>::value,
                                            CountBits<2644>::value,
                                            CountBits<2645>::value,
                                            CountBits<2646>::value,
                                            CountBits<2647>::value,
                                            CountBits<2648>::value,
                                            CountBits<2649>::value,
                                            CountBits<2650>::value,
                                            CountBits<2651>::value,
                                            CountBits<2652>::value,
                                            CountBits<2653>::value,
                                            CountBits<2654>::value,
                                            CountBits<2655>::value,
                                            CountBits<2656>::value,
                                            CountBits<2657>::value,
                                            CountBits<2658>::value,
                                            CountBits<2659>::value,
                                            CountBits<2660>::value,
                                            CountBits<2661>::value,
                                            CountBits<2662>::value,
                                            CountBits<2663>::value,
                                            CountBits<2664>::value,
                                            CountBits<2665>::value,
                                            CountBits<2666>::value,
                                            CountBits<2667>::value,
                                            CountBits<2668>::value,
                                            CountBits<2669>::value,
                                            CountBits<2670>::value,
                                            CountBits<2671>::value,
                                            CountBits<2672>::value,
                                            CountBits<2673>::value,
                                            CountBits<2674>::value,
                                            CountBits<2675>::value,
                                            CountBits<2676>::value,
                                            CountBits<2677>::value,
                                            CountBits<2678>::value,
                                            CountBits<2679>::value,
                                            CountBits<2680>::value,
                                            CountBits<2681>::value,
                                            CountBits<2682>::value,
                                            CountBits<2683>::value,
                                            CountBits<2684>::value,
                                            CountBits<2685>::value,
                                            CountBits<2686>::value,
                                            CountBits<2687>::value,
                                            CountBits<2688>::value,
                                            CountBits<2689>::value,
                                            CountBits<2690>::value,
                                            CountBits<2691>::value,
                                            CountBits<2692>::value,
                                            CountBits<2693>::value,
                                            CountBits<2694>::value,
                                            CountBits<2695>::value,
                                            CountBits<2696>::value,
                                            CountBits<2697>::value,
                                            CountBits<2698>::value,
                                            CountBits<2699>::value,
                                            CountBits<2700>::value,
                                            CountBits<2701>::value,
                                            CountBits<2702>::value,
                                            CountBits<2703>::value,
                                            CountBits<2704>::value,
                                            CountBits<2705>::value,
                                            CountBits<2706>::value,
                                            CountBits<2707>::value,
                                            CountBits<2708>::value,
                                            CountBits<2709>::value,
                                            CountBits<2710>::value,
                                            CountBits<2711>::value,
                                            CountBits<2712>::value,
                                            CountBits<2713>::value,
                                            CountBits<2714>::value,
                                            CountBits<2715>::value,
                                            CountBits<2716>::value,
                                            CountBits<2717>::value,
                                            CountBits<2718>::value,
                                            CountBits<2719>::value,
                                            CountBits<2720>::value,
                                            CountBits<2721>::value,
                                            CountBits<2722>::value,
                                            CountBits<2723>::value,
                                            CountBits<2724>::value,
                                            CountBits<2725>::value,
                                            CountBits<2726>::value,
                                            CountBits<2727>::value,
                                            CountBits<2728>::value,
                                            CountBits<2729>::value,
                                            CountBits<2730>::value,
                                            CountBits<2731>::value,
                                            CountBits<2732>::value,
                                            CountBits<2733>::value,
                                            CountBits<2734>::value,
                                            CountBits<2735>::value,
                                            CountBits<2736>::value,
                                            CountBits<2737>::value,
                                            CountBits<2738>::value,
                                            CountBits<2739>::value,
                                            CountBits<2740>::value,
                                            CountBits<2741>::value,
                                            CountBits<2742>::value,
                                            CountBits<2743>::value,
                                            CountBits<2744>::value,
                                            CountBits<2745>::value,
                                            CountBits<2746>::value,
                                            CountBits<2747>::value,
                                            CountBits<2748>::value,
                                            CountBits<2749>::value,
                                            CountBits<2750>::value,
                                            CountBits<2751>::value,
                                            CountBits<2752>::value,
                                            CountBits<2753>::value,
                                            CountBits<2754>::value,
                                            CountBits<2755>::value,
                                            CountBits<2756>::value,
                                            CountBits<2757>::value,
                                            CountBits<2758>::value,
                                            CountBits<2759>::value,
                                            CountBits<2760>::value,
                                            CountBits<2761>::value,
                                            CountBits<2762>::value,
                                            CountBits<2763>::value,
                                            CountBits<2764>::value,
                                            CountBits<2765>::value,
                                            CountBits<2766>::value,
                                            CountBits<2767>::value,
                                            CountBits<2768>::value,
                                            CountBits<2769>::value,
                                            CountBits<2770>::value,
                                            CountBits<2771>::value,
                                            CountBits<2772>::value,
                                            CountBits<2773>::value,
                                            CountBits<2774>::value,
                                            CountBits<2775>::value,
                                            CountBits<2776>::value,
                                            CountBits<2777>::value,
                                            CountBits<2778>::value,
                                            CountBits<2779>::value,
                                            CountBits<2780>::value,
                                            CountBits<2781>::value,
                                            CountBits<2782>::value,
                                            CountBits<2783>::value,
                                            CountBits<2784>::value,
                                            CountBits<2785>::value,
                                            CountBits<2786>::value,
                                            CountBits<2787>::value,
                                            CountBits<2788>::value,
                                            CountBits<2789>::value,
                                            CountBits<2790>::value,
                                            CountBits<2791>::value,
                                            CountBits<2792>::value,
                                            CountBits<2793>::value,
                                            CountBits<2794>::value,
                                            CountBits<2795>::value,
                                            CountBits<2796>::value,
                                            CountBits<2797>::value,
                                            CountBits<2798>::value,
                                            CountBits<2799>::value,
                                            CountBits<2800>::value,
                                            CountBits<2801>::value,
                                            CountBits<2802>::value,
                                            CountBits<2803>::value,
                                            CountBits<2804>::value,
                                            CountBits<2805>::value,
                                            CountBits<2806>::value,
                                            CountBits<2807>::value,
                                            CountBits<2808>::value,
                                            CountBits<2809>::value,
                                            CountBits<2810>::value,
                                            CountBits<2811>::value,
                                            CountBits<2812>::value,
                                            CountBits<2813>::value,
                                            CountBits<2814>::value,
                                            CountBits<2815>::value,
                                            CountBits<2816>::value,
                                            CountBits<2817>::value,
                                            CountBits<2818>::value,
                                            CountBits<2819>::value,
                                            CountBits<2820>::value,
                                            CountBits<2821>::value,
                                            CountBits<2822>::value,
                                            CountBits<2823>::value,
                                            CountBits<2824>::value,
                                            CountBits<2825>::value,
                                            CountBits<2826>::value,
                                            CountBits<2827>::value,
                                            CountBits<2828>::value,
                                            CountBits<2829>::value,
                                            CountBits<2830>::value,
                                            CountBits<2831>::value,
                                            CountBits<2832>::value,
                                            CountBits<2833>::value,
                                            CountBits<2834>::value,
                                            CountBits<2835>::value,
                                            CountBits<2836>::value,
                                            CountBits<2837>::value,
                                            CountBits<2838>::value,
                                            CountBits<2839>::value,
                                            CountBits<2840>::value,
                                            CountBits<2841>::value,
                                            CountBits<2842>::value,
                                            CountBits<2843>::value,
                                            CountBits<2844>::value,
                                            CountBits<2845>::value,
                                            CountBits<2846>::value,
                                            CountBits<2847>::value,
                                            CountBits<2848>::value,
                                            CountBits<2849>::value,
                                            CountBits<2850>::value,
                                            CountBits<2851>::value,
                                            CountBits<2852>::value,
                                            CountBits<2853>::value,
                                            CountBits<2854>::value,
                                            CountBits<2855>::value,
                                            CountBits<2856>::value,
                                            CountBits<2857>::value,
                                            CountBits<2858>::value,
                                            CountBits<2859>::value,
                                            CountBits<2860>::value,
                                            CountBits<2861>::value,
                                            CountBits<2862>::value,
                                            CountBits<2863>::value,
                                            CountBits<2864>::value,
                                            CountBits<2865>::value,
                                            CountBits<2866>::value,
                                            CountBits<2867>::value,
                                            CountBits<2868>::value,
                                            CountBits<2869>::value,
                                            CountBits<2870>::value,
                                            CountBits<2871>::value,
                                            CountBits<2872>::value,
                                            CountBits<2873>::value,
                                            CountBits<2874>::value,
                                            CountBits<2875>::value,
                                            CountBits<2876>::value,
                                            CountBits<2877>::value,
                                            CountBits<2878>::value,
                                            CountBits<2879>::value,
                                            CountBits<2880>::value,
                                            CountBits<2881>::value,
                                            CountBits<2882>::value,
                                            CountBits<2883>::value,
                                            CountBits<2884>::value,
                                            CountBits<2885>::value,
                                            CountBits<2886>::value,
                                            CountBits<2887>::value,
                                            CountBits<2888>::value,
                                            CountBits<2889>::value,
                                            CountBits<2890>::value,
                                            CountBits<2891>::value,
                                            CountBits<2892>::value,
                                            CountBits<2893>::value,
                                            CountBits<2894>::value,
                                            CountBits<2895>::value,
                                            CountBits<2896>::value,
                                            CountBits<2897>::value,
                                            CountBits<2898>::value,
                                            CountBits<2899>::value,
                                            CountBits<2900>::value,
                                            CountBits<2901>::value,
                                            CountBits<2902>::value,
                                            CountBits<2903>::value,
                                            CountBits<2904>::value,
                                            CountBits<2905>::value,
                                            CountBits<2906>::value,
                                            CountBits<2907>::value,
                                            CountBits<2908>::value,
                                            CountBits<2909>::value,
                                            CountBits<2910>::value,
                                            CountBits<2911>::value,
                                            CountBits<2912>::value,
                                            CountBits<2913>::value,
                                            CountBits<2914>::value,
                                            CountBits<2915>::value,
                                            CountBits<2916>::value,
                                            CountBits<2917>::value,
                                            CountBits<2918>::value,
                                            CountBits<2919>::value,
                                            CountBits<2920>::value,
                                            CountBits<2921>::value,
                                            CountBits<2922>::value,
                                            CountBits<2923>::value,
                                            CountBits<2924>::value,
                                            CountBits<2925>::value,
                                            CountBits<2926>::value,
                                            CountBits<2927>::value,
                                            CountBits<2928>::value,
                                            CountBits<2929>::value,
                                            CountBits<2930>::value,
                                            CountBits<2931>::value,
                                            CountBits<2932>::value,
                                            CountBits<2933>::value,
                                            CountBits<2934>::value,
                                            CountBits<2935>::value,
                                            CountBits<2936>::value,
                                            CountBits<2937>::value,
                                            CountBits<2938>::value,
                                            CountBits<2939>::value,
                                            CountBits<2940>::value,
                                            CountBits<2941>::value,
                                            CountBits<2942>::value,
                                            CountBits<2943>::value,
                                            CountBits<2944>::value,
                                            CountBits<2945>::value,
                                            CountBits<2946>::value,
                                            CountBits<2947>::value,
                                            CountBits<2948>::value,
                                            CountBits<2949>::value,
                                            CountBits<2950>::value,
                                            CountBits<2951>::value,
                                            CountBits<2952>::value,
                                            CountBits<2953>::value,
                                            CountBits<2954>::value,
                                            CountBits<2955>::value,
                                            CountBits<2956>::value,
                                            CountBits<2957>::value,
                                            CountBits<2958>::value,
                                            CountBits<2959>::value,
                                            CountBits<2960>::value,
                                            CountBits<2961>::value,
                                            CountBits<2962>::value,
                                            CountBits<2963>::value,
                                            CountBits<2964>::value,
                                            CountBits<2965>::value,
                                            CountBits<2966>::value,
                                            CountBits<2967>::value,
                                            CountBits<2968>::value,
                                            CountBits<2969>::value,
                                            CountBits<2970>::value,
                                            CountBits<2971>::value,
                                            CountBits<2972>::value,
                                            CountBits<2973>::value,
                                            CountBits<2974>::value,
                                            CountBits<2975>::value,
                                            CountBits<2976>::value,
                                            CountBits<2977>::value,
                                            CountBits<2978>::value,
                                            CountBits<2979>::value,
                                            CountBits<2980>::value,
                                            CountBits<2981>::value,
                                            CountBits<2982>::value,
                                            CountBits<2983>::value,
                                            CountBits<2984>::value,
                                            CountBits<2985>::value,
                                            CountBits<2986>::value,
                                            CountBits<2987>::value,
                                            CountBits<2988>::value,
                                            CountBits<2989>::value,
                                            CountBits<2990>::value,
                                            CountBits<2991>::value,
                                            CountBits<2992>::value,
                                            CountBits<2993>::value,
                                            CountBits<2994>::value,
                                            CountBits<2995>::value,
                                            CountBits<2996>::value,
                                            CountBits<2997>::value,
                                            CountBits<2998>::value,
                                            CountBits<2999>::value,
                                            CountBits<3000>::value,
                                            CountBits<3001>::value,
                                            CountBits<3002>::value,
                                            CountBits<3003>::value,
                                            CountBits<3004>::value,
                                            CountBits<3005>::value,
                                            CountBits<3006>::value,
                                            CountBits<3007>::value,
                                            CountBits<3008>::value,
                                            CountBits<3009>::value,
                                            CountBits<3010>::value,
                                            CountBits<3011>::value,
                                            CountBits<3012>::value,
                                            CountBits<3013>::value,
                                            CountBits<3014>::value,
                                            CountBits<3015>::value,
                                            CountBits<3016>::value,
                                            CountBits<3017>::value,
                                            CountBits<3018>::value,
                                            CountBits<3019>::value,
                                            CountBits<3020>::value,
                                            CountBits<3021>::value,
                                            CountBits<3022>::value,
                                            CountBits<3023>::value,
                                            CountBits<3024>::value,
                                            CountBits<3025>::value,
                                            CountBits<3026>::value,
                                            CountBits<3027>::value,
                                            CountBits<3028>::value,
                                            CountBits<3029>::value,
                                            CountBits<3030>::value,
                                            CountBits<3031>::value,
                                            CountBits<3032>::value,
                                            CountBits<3033>::value,
                                            CountBits<3034>::value,
                                            CountBits<3035>::value,
                                            CountBits<3036>::value,
                                            CountBits<3037>::value,
                                            CountBits<3038>::value,
                                            CountBits<3039>::value,
                                            CountBits<3040>::value,
                                            CountBits<3041>::value,
                                            CountBits<3042>::value,
                                            CountBits<3043>::value,
                                            CountBits<3044>::value,
                                            CountBits<3045>::value,
                                            CountBits<3046>::value,
                                            CountBits<3047>::value,
                                            CountBits<3048>::value,
                                            CountBits<3049>::value,
                                            CountBits<3050>::value,
                                            CountBits<3051>::value,
                                            CountBits<3052>::value,
                                            CountBits<3053>::value,
                                            CountBits<3054>::value,
                                            CountBits<3055>::value,
                                            CountBits<3056>::value,
                                            CountBits<3057>::value,
                                            CountBits<3058>::value,
                                            CountBits<3059>::value,
                                            CountBits<3060>::value,
                                            CountBits<3061>::value,
                                            CountBits<3062>::value,
                                            CountBits<3063>::value,
                                            CountBits<3064>::value,
                                            CountBits<3065>::value,
                                            CountBits<3066>::value,
                                            CountBits<3067>::value,
                                            CountBits<3068>::value,
                                            CountBits<3069>::value,
                                            CountBits<3070>::value,
                                            CountBits<3071>::value,
                                            CountBits<3072>::value,
                                            CountBits<3073>::value,
                                            CountBits<3074>::value,
                                            CountBits<3075>::value,
                                            CountBits<3076>::value,
                                            CountBits<3077>::value,
                                            CountBits<3078>::value,
                                            CountBits<3079>::value,
                                            CountBits<3080>::value,
                                            CountBits<3081>::value,
                                            CountBits<3082>::value,
                                            CountBits<3083>::value,
                                            CountBits<3084>::value,
                                            CountBits<3085>::value,
                                            CountBits<3086>::value,
                                            CountBits<3087>::value,
                                            CountBits<3088>::value,
                                            CountBits<3089>::value,
                                            CountBits<3090>::value,
                                            CountBits<3091>::value,
                                            CountBits<3092>::value,
                                            CountBits<3093>::value,
                                            CountBits<3094>::value,
                                            CountBits<3095>::value,
                                            CountBits<3096>::value,
                                            CountBits<3097>::value,
                                            CountBits<3098>::value,
                                            CountBits<3099>::value,
                                            CountBits<3100>::value,
                                            CountBits<3101>::value,
                                            CountBits<3102>::value,
                                            CountBits<3103>::value,
                                            CountBits<3104>::value,
                                            CountBits<3105>::value,
                                            CountBits<3106>::value,
                                            CountBits<3107>::value,
                                            CountBits<3108>::value,
                                            CountBits<3109>::value,
                                            CountBits<3110>::value,
                                            CountBits<3111>::value,
                                            CountBits<3112>::value,
                                            CountBits<3113>::value,
                                            CountBits<3114>::value,
                                            CountBits<3115>::value,
                                            CountBits<3116>::value,
                                            CountBits<3117>::value,
                                            CountBits<3118>::value,
                                            CountBits<3119>::value,
                                            CountBits<3120>::value,
                                            CountBits<3121>::value,
                                            CountBits<3122>::value,
                                            CountBits<3123>::value,
                                            CountBits<3124>::value,
                                            CountBits<3125>::value,
                                            CountBits<3126>::value,
                                            CountBits<3127>::value,
                                            CountBits<3128>::value,
                                            CountBits<3129>::value,
                                            CountBits<3130>::value,
                                            CountBits<3131>::value,
                                            CountBits<3132>::value,
                                            CountBits<3133>::value,
                                            CountBits<3134>::value,
                                            CountBits<3135>::value,
                                            CountBits<3136>::value,
                                            CountBits<3137>::value,
                                            CountBits<3138>::value,
                                            CountBits<3139>::value,
                                            CountBits<3140>::value,
                                            CountBits<3141>::value,
                                            CountBits<3142>::value,
                                            CountBits<3143>::value,
                                            CountBits<3144>::value,
                                            CountBits<3145>::value,
                                            CountBits<3146>::value,
                                            CountBits<3147>::value,
                                            CountBits<3148>::value,
                                            CountBits<3149>::value,
                                            CountBits<3150>::value,
                                            CountBits<3151>::value,
                                            CountBits<3152>::value,
                                            CountBits<3153>::value,
                                            CountBits<3154>::value,
                                            CountBits<3155>::value,
                                            CountBits<3156>::value,
                                            CountBits<3157>::value,
                                            CountBits<3158>::value,
                                            CountBits<3159>::value,
                                            CountBits<3160>::value,
                                            CountBits<3161>::value,
                                            CountBits<3162>::value,
                                            CountBits<3163>::value,
                                            CountBits<3164>::value,
                                            CountBits<3165>::value,
                                            CountBits<3166>::value,
                                            CountBits<3167>::value,
                                            CountBits<3168>::value,
                                            CountBits<3169>::value,
                                            CountBits<3170>::value,
                                            CountBits<3171>::value,
                                            CountBits<3172>::value,
                                            CountBits<3173>::value,
                                            CountBits<3174>::value,
                                            CountBits<3175>::value,
                                            CountBits<3176>::value,
                                            CountBits<3177>::value,
                                            CountBits<3178>::value,
                                            CountBits<3179>::value,
                                            CountBits<3180>::value,
                                            CountBits<3181>::value,
                                            CountBits<3182>::value,
                                            CountBits<3183>::value,
                                            CountBits<3184>::value,
                                            CountBits<3185>::value,
                                            CountBits<3186>::value,
                                            CountBits<3187>::value,
                                            CountBits<3188>::value,
                                            CountBits<3189>::value,
                                            CountBits<3190>::value,
                                            CountBits<3191>::value,
                                            CountBits<3192>::value,
                                            CountBits<3193>::value,
                                            CountBits<3194>::value,
                                            CountBits<3195>::value,
                                            CountBits<3196>::value,
                                            CountBits<3197>::value,
                                            CountBits<3198>::value,
                                            CountBits<3199>::value,
                                            CountBits<3200>::value,
                                            CountBits<3201>::value,
                                            CountBits<3202>::value,
                                            CountBits<3203>::value,
                                            CountBits<3204>::value,
                                            CountBits<3205>::value,
                                            CountBits<3206>::value,
                                            CountBits<3207>::value,
                                            CountBits<3208>::value,
                                            CountBits<3209>::value,
                                            CountBits<3210>::value,
                                            CountBits<3211>::value,
                                            CountBits<3212>::value,
                                            CountBits<3213>::value,
                                            CountBits<3214>::value,
                                            CountBits<3215>::value,
                                            CountBits<3216>::value,
                                            CountBits<3217>::value,
                                            CountBits<3218>::value,
                                            CountBits<3219>::value,
                                            CountBits<3220>::value,
                                            CountBits<3221>::value,
                                            CountBits<3222>::value,
                                            CountBits<3223>::value,
                                            CountBits<3224>::value,
                                            CountBits<3225>::value,
                                            CountBits<3226>::value,
                                            CountBits<3227>::value,
                                            CountBits<3228>::value,
                                            CountBits<3229>::value,
                                            CountBits<3230>::value,
                                            CountBits<3231>::value,
                                            CountBits<3232>::value,
                                            CountBits<3233>::value,
                                            CountBits<3234>::value,
                                            CountBits<3235>::value,
                                            CountBits<3236>::value,
                                            CountBits<3237>::value,
                                            CountBits<3238>::value,
                                            CountBits<3239>::value,
                                            CountBits<3240>::value,
                                            CountBits<3241>::value,
                                            CountBits<3242>::value,
                                            CountBits<3243>::value,
                                            CountBits<3244>::value,
                                            CountBits<3245>::value,
                                            CountBits<3246>::value,
                                            CountBits<3247>::value,
                                            CountBits<3248>::value,
                                            CountBits<3249>::value,
                                            CountBits<3250>::value,
                                            CountBits<3251>::value,
                                            CountBits<3252>::value,
                                            CountBits<3253>::value,
                                            CountBits<3254>::value,
                                            CountBits<3255>::value,
                                            CountBits<3256>::value,
                                            CountBits<3257>::value,
                                            CountBits<3258>::value,
                                            CountBits<3259>::value,
                                            CountBits<3260>::value,
                                            CountBits<3261>::value,
                                            CountBits<3262>::value,
                                            CountBits<3263>::value,
                                            CountBits<3264>::value,
                                            CountBits<3265>::value,
                                            CountBits<3266>::value,
                                            CountBits<3267>::value,
                                            CountBits<3268>::value,
                                            CountBits<3269>::value,
                                            CountBits<3270>::value,
                                            CountBits<3271>::value,
                                            CountBits<3272>::value,
                                            CountBits<3273>::value,
                                            CountBits<3274>::value,
                                            CountBits<3275>::value,
                                            CountBits<3276>::value,
                                            CountBits<3277>::value,
                                            CountBits<3278>::value,
                                            CountBits<3279>::value,
                                            CountBits<3280>::value,
                                            CountBits<3281>::value,
                                            CountBits<3282>::value,
                                            CountBits<3283>::value,
                                            CountBits<3284>::value,
                                            CountBits<3285>::value,
                                            CountBits<3286>::value,
                                            CountBits<3287>::value,
                                            CountBits<3288>::value,
                                            CountBits<3289>::value,
                                            CountBits<3290>::value,
                                            CountBits<3291>::value,
                                            CountBits<3292>::value,
                                            CountBits<3293>::value,
                                            CountBits<3294>::value,
                                            CountBits<3295>::value,
                                            CountBits<3296>::value,
                                            CountBits<3297>::value,
                                            CountBits<3298>::value,
                                            CountBits<3299>::value,
                                            CountBits<3300>::value,
                                            CountBits<3301>::value,
                                            CountBits<3302>::value,
                                            CountBits<3303>::value,
                                            CountBits<3304>::value,
                                            CountBits<3305>::value,
                                            CountBits<3306>::value,
                                            CountBits<3307>::value,
                                            CountBits<3308>::value,
                                            CountBits<3309>::value,
                                            CountBits<3310>::value,
                                            CountBits<3311>::value,
                                            CountBits<3312>::value,
                                            CountBits<3313>::value,
                                            CountBits<3314>::value,
                                            CountBits<3315>::value,
                                            CountBits<3316>::value,
                                            CountBits<3317>::value,
                                            CountBits<3318>::value,
                                            CountBits<3319>::value,
                                            CountBits<3320>::value,
                                            CountBits<3321>::value,
                                            CountBits<3322>::value,
                                            CountBits<3323>::value,
                                            CountBits<3324>::value,
                                            CountBits<3325>::value,
                                            CountBits<3326>::value,
                                            CountBits<3327>::value,
                                            CountBits<3328>::value,
                                            CountBits<3329>::value,
                                            CountBits<3330>::value,
                                            CountBits<3331>::value,
                                            CountBits<3332>::value,
                                            CountBits<3333>::value,
                                            CountBits<3334>::value,
                                            CountBits<3335>::value,
                                            CountBits<3336>::value,
                                            CountBits<3337>::value,
                                            CountBits<3338>::value,
                                            CountBits<3339>::value,
                                            CountBits<3340>::value,
                                            CountBits<3341>::value,
                                            CountBits<3342>::value,
                                            CountBits<3343>::value,
                                            CountBits<3344>::value,
                                            CountBits<3345>::value,
                                            CountBits<3346>::value,
                                            CountBits<3347>::value,
                                            CountBits<3348>::value,
                                            CountBits<3349>::value,
                                            CountBits<3350>::value,
                                            CountBits<3351>::value,
                                            CountBits<3352>::value,
                                            CountBits<3353>::value,
                                            CountBits<3354>::value,
                                            CountBits<3355>::value,
                                            CountBits<3356>::value,
                                            CountBits<3357>::value,
                                            CountBits<3358>::value,
                                            CountBits<3359>::value,
                                            CountBits<3360>::value,
                                            CountBits<3361>::value,
                                            CountBits<3362>::value,
                                            CountBits<3363>::value,
                                            CountBits<3364>::value,
                                            CountBits<3365>::value,
                                            CountBits<3366>::value,
                                            CountBits<3367>::value,
                                            CountBits<3368>::value,
                                            CountBits<3369>::value,
                                            CountBits<3370>::value,
                                            CountBits<3371>::value,
                                            CountBits<3372>::value,
                                            CountBits<3373>::value,
                                            CountBits<3374>::value,
                                            CountBits<3375>::value,
                                            CountBits<3376>::value,
                                            CountBits<3377>::value,
                                            CountBits<3378>::value,
                                            CountBits<3379>::value,
                                            CountBits<3380>::value,
                                            CountBits<3381>::value,
                                            CountBits<3382>::value,
                                            CountBits<3383>::value,
                                            CountBits<3384>::value,
                                            CountBits<3385>::value,
                                            CountBits<3386>::value,
                                            CountBits<3387>::value,
                                            CountBits<3388>::value,
                                            CountBits<3389>::value,
                                            CountBits<3390>::value,
                                            CountBits<3391>::value,
                                            CountBits<3392>::value,
                                            CountBits<3393>::value,
                                            CountBits<3394>::value,
                                            CountBits<3395>::value,
                                            CountBits<3396>::value,
                                            CountBits<3397>::value,
                                            CountBits<3398>::value,
                                            CountBits<3399>::value,
                                            CountBits<3400>::value,
                                            CountBits<3401>::value,
                                            CountBits<3402>::value,
                                            CountBits<3403>::value,
                                            CountBits<3404>::value,
                                            CountBits<3405>::value,
                                            CountBits<3406>::value,
                                            CountBits<3407>::value,
                                            CountBits<3408>::value,
                                            CountBits<3409>::value,
                                            CountBits<3410>::value,
                                            CountBits<3411>::value,
                                            CountBits<3412>::value,
                                            CountBits<3413>::value,
                                            CountBits<3414>::value,
                                            CountBits<3415>::value,
                                            CountBits<3416>::value,
                                            CountBits<3417>::value,
                                            CountBits<3418>::value,
                                            CountBits<3419>::value,
                                            CountBits<3420>::value,
                                            CountBits<3421>::value,
                                            CountBits<3422>::value,
                                            CountBits<3423>::value,
                                            CountBits<3424>::value,
                                            CountBits<3425>::value,
                                            CountBits<3426>::value,
                                            CountBits<3427>::value,
                                            CountBits<3428>::value,
                                            CountBits<3429>::value,
                                            CountBits<3430>::value,
                                            CountBits<3431>::value,
                                            CountBits<3432>::value,
                                            CountBits<3433>::value,
                                            CountBits<3434>::value,
                                            CountBits<3435>::value,
                                            CountBits<3436>::value,
                                            CountBits<3437>::value,
                                            CountBits<3438>::value,
                                            CountBits<3439>::value,
                                            CountBits<3440>::value,
                                            CountBits<3441>::value,
                                            CountBits<3442>::value,
                                            CountBits<3443>::value,
                                            CountBits<3444>::value,
                                            CountBits<3445>::value,
                                            CountBits<3446>::value,
                                            CountBits<3447>::value,
                                            CountBits<3448>::value,
                                            CountBits<3449>::value,
                                            CountBits<3450>::value,
                                            CountBits<3451>::value,
                                            CountBits<3452>::value,
                                            CountBits<3453>::value,
                                            CountBits<3454>::value,
                                            CountBits<3455>::value,
                                            CountBits<3456>::value,
                                            CountBits<3457>::value,
                                            CountBits<3458>::value,
                                            CountBits<3459>::value,
                                            CountBits<3460>::value,
                                            CountBits<3461>::value,
                                            CountBits<3462>::value,
                                            CountBits<3463>::value,
                                            CountBits<3464>::value,
                                            CountBits<3465>::value,
                                            CountBits<3466>::value,
                                            CountBits<3467>::value,
                                            CountBits<3468>::value,
                                            CountBits<3469>::value,
                                            CountBits<3470>::value,
                                            CountBits<3471>::value,
                                            CountBits<3472>::value,
                                            CountBits<3473>::value,
                                            CountBits<3474>::value,
                                            CountBits<3475>::value,
                                            CountBits<3476>::value,
                                            CountBits<3477>::value,
                                            CountBits<3478>::value,
                                            CountBits<3479>::value,
                                            CountBits<3480>::value,
                                            CountBits<3481>::value,
                                            CountBits<3482>::value,
                                            CountBits<3483>::value,
                                            CountBits<3484>::value,
                                            CountBits<3485>::value,
                                            CountBits<3486>::value,
                                            CountBits<3487>::value,
                                            CountBits<3488>::value,
                                            CountBits<3489>::value,
                                            CountBits<3490>::value,
                                            CountBits<3491>::value,
                                            CountBits<3492>::value,
                                            CountBits<3493>::value,
                                            CountBits<3494>::value,
                                            CountBits<3495>::value,
                                            CountBits<3496>::value,
                                            CountBits<3497>::value,
                                            CountBits<3498>::value,
                                            CountBits<3499>::value,
                                            CountBits<3500>::value,
                                            CountBits<3501>::value,
                                            CountBits<3502>::value,
                                            CountBits<3503>::value,
                                            CountBits<3504>::value,
                                            CountBits<3505>::value,
                                            CountBits<3506>::value,
                                            CountBits<3507>::value,
                                            CountBits<3508>::value,
                                            CountBits<3509>::value,
                                            CountBits<3510>::value,
                                            CountBits<3511>::value,
                                            CountBits<3512>::value,
                                            CountBits<3513>::value,
                                            CountBits<3514>::value,
                                            CountBits<3515>::value,
                                            CountBits<3516>::value,
                                            CountBits<3517>::value,
                                            CountBits<3518>::value,
                                            CountBits<3519>::value,
                                            CountBits<3520>::value,
                                            CountBits<3521>::value,
                                            CountBits<3522>::value,
                                            CountBits<3523>::value,
                                            CountBits<3524>::value,
                                            CountBits<3525>::value,
                                            CountBits<3526>::value,
                                            CountBits<3527>::value,
                                            CountBits<3528>::value,
                                            CountBits<3529>::value,
                                            CountBits<3530>::value,
                                            CountBits<3531>::value,
                                            CountBits<3532>::value,
                                            CountBits<3533>::value,
                                            CountBits<3534>::value,
                                            CountBits<3535>::value,
                                            CountBits<3536>::value,
                                            CountBits<3537>::value,
                                            CountBits<3538>::value,
                                            CountBits<3539>::value,
                                            CountBits<3540>::value,
                                            CountBits<3541>::value,
                                            CountBits<3542>::value,
                                            CountBits<3543>::value,
                                            CountBits<3544>::value,
                                            CountBits<3545>::value,
                                            CountBits<3546>::value,
                                            CountBits<3547>::value,
                                            CountBits<3548>::value,
                                            CountBits<3549>::value,
                                            CountBits<3550>::value,
                                            CountBits<3551>::value,
                                            CountBits<3552>::value,
                                            CountBits<3553>::value,
                                            CountBits<3554>::value,
                                            CountBits<3555>::value,
                                            CountBits<3556>::value,
                                            CountBits<3557>::value,
                                            CountBits<3558>::value,
                                            CountBits<3559>::value,
                                            CountBits<3560>::value,
                                            CountBits<3561>::value,
                                            CountBits<3562>::value,
                                            CountBits<3563>::value,
                                            CountBits<3564>::value,
                                            CountBits<3565>::value,
                                            CountBits<3566>::value,
                                            CountBits<3567>::value,
                                            CountBits<3568>::value,
                                            CountBits<3569>::value,
                                            CountBits<3570>::value,
                                            CountBits<3571>::value,
                                            CountBits<3572>::value,
                                            CountBits<3573>::value,
                                            CountBits<3574>::value,
                                            CountBits<3575>::value,
                                            CountBits<3576>::value,
                                            CountBits<3577>::value,
                                            CountBits<3578>::value,
                                            CountBits<3579>::value,
                                            CountBits<3580>::value,
                                            CountBits<3581>::value,
                                            CountBits<3582>::value,
                                            CountBits<3583>::value,
                                            CountBits<3584>::value,
                                            CountBits<3585>::value,
                                            CountBits<3586>::value,
                                            CountBits<3587>::value,
                                            CountBits<3588>::value,
                                            CountBits<3589>::value,
                                            CountBits<3590>::value,
                                            CountBits<3591>::value,
                                            CountBits<3592>::value,
                                            CountBits<3593>::value,
                                            CountBits<3594>::value,
                                            CountBits<3595>::value,
                                            CountBits<3596>::value,
                                            CountBits<3597>::value,
                                            CountBits<3598>::value,
                                            CountBits<3599>::value,
                                            CountBits<3600>::value,
                                            CountBits<3601>::value,
                                            CountBits<3602>::value,
                                            CountBits<3603>::value,
                                            CountBits<3604>::value,
                                            CountBits<3605>::value,
                                            CountBits<3606>::value,
                                            CountBits<3607>::value,
                                            CountBits<3608>::value,
                                            CountBits<3609>::value,
                                            CountBits<3610>::value,
                                            CountBits<3611>::value,
                                            CountBits<3612>::value,
                                            CountBits<3613>::value,
                                            CountBits<3614>::value,
                                            CountBits<3615>::value,
                                            CountBits<3616>::value,
                                            CountBits<3617>::value,
                                            CountBits<3618>::value,
                                            CountBits<3619>::value,
                                            CountBits<3620>::value,
                                            CountBits<3621>::value,
                                            CountBits<3622>::value,
                                            CountBits<3623>::value,
                                            CountBits<3624>::value,
                                            CountBits<3625>::value,
                                            CountBits<3626>::value,
                                            CountBits<3627>::value,
                                            CountBits<3628>::value,
                                            CountBits<3629>::value,
                                            CountBits<3630>::value,
                                            CountBits<3631>::value,
                                            CountBits<3632>::value,
                                            CountBits<3633>::value,
                                            CountBits<3634>::value,
                                            CountBits<3635>::value,
                                            CountBits<3636>::value,
                                            CountBits<3637>::value,
                                            CountBits<3638>::value,
                                            CountBits<3639>::value,
                                            CountBits<3640>::value,
                                            CountBits<3641>::value,
                                            CountBits<3642>::value,
                                            CountBits<3643>::value,
                                            CountBits<3644>::value,
                                            CountBits<3645>::value,
                                            CountBits<3646>::value,
                                            CountBits<3647>::value,
                                            CountBits<3648>::value,
                                            CountBits<3649>::value,
                                            CountBits<3650>::value,
                                            CountBits<3651>::value,
                                            CountBits<3652>::value,
                                            CountBits<3653>::value,
                                            CountBits<3654>::value,
                                            CountBits<3655>::value,
                                            CountBits<3656>::value,
                                            CountBits<3657>::value,
                                            CountBits<3658>::value,
                                            CountBits<3659>::value,
                                            CountBits<3660>::value,
                                            CountBits<3661>::value,
                                            CountBits<3662>::value,
                                            CountBits<3663>::value,
                                            CountBits<3664>::value,
                                            CountBits<3665>::value,
                                            CountBits<3666>::value,
                                            CountBits<3667>::value,
                                            CountBits<3668>::value,
                                            CountBits<3669>::value,
                                            CountBits<3670>::value,
                                            CountBits<3671>::value,
                                            CountBits<3672>::value,
                                            CountBits<3673>::value,
                                            CountBits<3674>::value,
                                            CountBits<3675>::value,
                                            CountBits<3676>::value,
                                            CountBits<3677>::value,
                                            CountBits<3678>::value,
                                            CountBits<3679>::value,
                                            CountBits<3680>::value,
                                            CountBits<3681>::value,
                                            CountBits<3682>::value,
                                            CountBits<3683>::value,
                                            CountBits<3684>::value,
                                            CountBits<3685>::value,
                                            CountBits<3686>::value,
                                            CountBits<3687>::value,
                                            CountBits<3688>::value,
                                            CountBits<3689>::value,
                                            CountBits<3690>::value,
                                            CountBits<3691>::value,
                                            CountBits<3692>::value,
                                            CountBits<3693>::value,
                                            CountBits<3694>::value,
                                            CountBits<3695>::value,
                                            CountBits<3696>::value,
                                            CountBits<3697>::value,
                                            CountBits<3698>::value,
                                            CountBits<3699>::value,
                                            CountBits<3700>::value,
                                            CountBits<3701>::value,
                                            CountBits<3702>::value,
                                            CountBits<3703>::value,
                                            CountBits<3704>::value,
                                            CountBits<3705>::value,
                                            CountBits<3706>::value,
                                            CountBits<3707>::value,
                                            CountBits<3708>::value,
                                            CountBits<3709>::value,
                                            CountBits<3710>::value,
                                            CountBits<3711>::value,
                                            CountBits<3712>::value,
                                            CountBits<3713>::value,
                                            CountBits<3714>::value,
                                            CountBits<3715>::value,
                                            CountBits<3716>::value,
                                            CountBits<3717>::value,
                                            CountBits<3718>::value,
                                            CountBits<3719>::value,
                                            CountBits<3720>::value,
                                            CountBits<3721>::value,
                                            CountBits<3722>::value,
                                            CountBits<3723>::value,
                                            CountBits<3724>::value,
                                            CountBits<3725>::value,
                                            CountBits<3726>::value,
                                            CountBits<3727>::value,
                                            CountBits<3728>::value,
                                            CountBits<3729>::value,
                                            CountBits<3730>::value,
                                            CountBits<3731>::value,
                                            CountBits<3732>::value,
                                            CountBits<3733>::value,
                                            CountBits<3734>::value,
                                            CountBits<3735>::value,
                                            CountBits<3736>::value,
                                            CountBits<3737>::value,
                                            CountBits<3738>::value,
                                            CountBits<3739>::value,
                                            CountBits<3740>::value,
                                            CountBits<3741>::value,
                                            CountBits<3742>::value,
                                            CountBits<3743>::value,
                                            CountBits<3744>::value,
                                            CountBits<3745>::value,
                                            CountBits<3746>::value,
                                            CountBits<3747>::value,
                                            CountBits<3748>::value,
                                            CountBits<3749>::value,
                                            CountBits<3750>::value,
                                            CountBits<3751>::value,
                                            CountBits<3752>::value,
                                            CountBits<3753>::value,
                                            CountBits<3754>::value,
                                            CountBits<3755>::value,
                                            CountBits<3756>::value,
                                            CountBits<3757>::value,
                                            CountBits<3758>::value,
                                            CountBits<3759>::value,
                                            CountBits<3760>::value,
                                            CountBits<3761>::value,
                                            CountBits<3762>::value,
                                            CountBits<3763>::value,
                                            CountBits<3764>::value,
                                            CountBits<3765>::value,
                                            CountBits<3766>::value,
                                            CountBits<3767>::value,
                                            CountBits<3768>::value,
                                            CountBits<3769>::value,
                                            CountBits<3770>::value,
                                            CountBits<3771>::value,
                                            CountBits<3772>::value,
                                            CountBits<3773>::value,
                                            CountBits<3774>::value,
                                            CountBits<3775>::value,
                                            CountBits<3776>::value,
                                            CountBits<3777>::value,
                                            CountBits<3778>::value,
                                            CountBits<3779>::value,
                                            CountBits<3780>::value,
                                            CountBits<3781>::value,
                                            CountBits<3782>::value,
                                            CountBits<3783>::value,
                                            CountBits<3784>::value,
                                            CountBits<3785>::value,
                                            CountBits<3786>::value,
                                            CountBits<3787>::value,
                                            CountBits<3788>::value,
                                            CountBits<3789>::value,
                                            CountBits<3790>::value,
                                            CountBits<3791>::value,
                                            CountBits<3792>::value,
                                            CountBits<3793>::value,
                                            CountBits<3794>::value,
                                            CountBits<3795>::value,
                                            CountBits<3796>::value,
                                            CountBits<3797>::value,
                                            CountBits<3798>::value,
                                            CountBits<3799>::value,
                                            CountBits<3800>::value,
                                            CountBits<3801>::value,
                                            CountBits<3802>::value,
                                            CountBits<3803>::value,
                                            CountBits<3804>::value,
                                            CountBits<3805>::value,
                                            CountBits<3806>::value,
                                            CountBits<3807>::value,
                                            CountBits<3808>::value,
                                            CountBits<3809>::value,
                                            CountBits<3810>::value,
                                            CountBits<3811>::value,
                                            CountBits<3812>::value,
                                            CountBits<3813>::value,
                                            CountBits<3814>::value,
                                            CountBits<3815>::value,
                                            CountBits<3816>::value,
                                            CountBits<3817>::value,
                                            CountBits<3818>::value,
                                            CountBits<3819>::value,
                                            CountBits<3820>::value,
                                            CountBits<3821>::value,
                                            CountBits<3822>::value,
                                            CountBits<3823>::value,
                                            CountBits<3824>::value,
                                            CountBits<3825>::value,
                                            CountBits<3826>::value,
                                            CountBits<3827>::value,
                                            CountBits<3828>::value,
                                            CountBits<3829>::value,
                                            CountBits<3830>::value,
                                            CountBits<3831>::value,
                                            CountBits<3832>::value,
                                            CountBits<3833>::value,
                                            CountBits<3834>::value,
                                            CountBits<3835>::value,
                                            CountBits<3836>::value,
                                            CountBits<3837>::value,
                                            CountBits<3838>::value,
                                            CountBits<3839>::value,
                                            CountBits<3840>::value,
                                            CountBits<3841>::value,
                                            CountBits<3842>::value,
                                            CountBits<3843>::value,
                                            CountBits<3844>::value,
                                            CountBits<3845>::value,
                                            CountBits<3846>::value,
                                            CountBits<3847>::value,
                                            CountBits<3848>::value,
                                            CountBits<3849>::value,
                                            CountBits<3850>::value,
                                            CountBits<3851>::value,
                                            CountBits<3852>::value,
                                            CountBits<3853>::value,
                                            CountBits<3854>::value,
                                            CountBits<3855>::value,
                                            CountBits<3856>::value,
                                            CountBits<3857>::value,
                                            CountBits<3858>::value,
                                            CountBits<3859>::value,
                                            CountBits<3860>::value,
                                            CountBits<3861>::value,
                                            CountBits<3862>::value,
                                            CountBits<3863>::value,
                                            CountBits<3864>::value,
                                            CountBits<3865>::value,
                                            CountBits<3866>::value,
                                            CountBits<3867>::value,
                                            CountBits<3868>::value,
                                            CountBits<3869>::value,
                                            CountBits<3870>::value,
                                            CountBits<3871>::value,
                                            CountBits<3872>::value,
                                            CountBits<3873>::value,
                                            CountBits<3874>::value,
                                            CountBits<3875>::value,
                                            CountBits<3876>::value,
                                            CountBits<3877>::value,
                                            CountBits<3878>::value,
                                            CountBits<3879>::value,
                                            CountBits<3880>::value,
                                            CountBits<3881>::value,
                                            CountBits<3882>::value,
                                            CountBits<3883>::value,
                                            CountBits<3884>::value,
                                            CountBits<3885>::value,
                                            CountBits<3886>::value,
                                            CountBits<3887>::value,
                                            CountBits<3888>::value,
                                            CountBits<3889>::value,
                                            CountBits<3890>::value,
                                            CountBits<3891>::value,
                                            CountBits<3892>::value,
                                            CountBits<3893>::value,
                                            CountBits<3894>::value,
                                            CountBits<3895>::value,
                                            CountBits<3896>::value,
                                            CountBits<3897>::value,
                                            CountBits<3898>::value,
                                            CountBits<3899>::value,
                                            CountBits<3900>::value,
                                            CountBits<3901>::value,
                                            CountBits<3902>::value,
                                            CountBits<3903>::value,
                                            CountBits<3904>::value,
                                            CountBits<3905>::value,
                                            CountBits<3906>::value,
                                            CountBits<3907>::value,
                                            CountBits<3908>::value,
                                            CountBits<3909>::value,
                                            CountBits<3910>::value,
                                            CountBits<3911>::value,
                                            CountBits<3912>::value,
                                            CountBits<3913>::value,
                                            CountBits<3914>::value,
                                            CountBits<3915>::value,
                                            CountBits<3916>::value,
                                            CountBits<3917>::value,
                                            CountBits<3918>::value,
                                            CountBits<3919>::value,
                                            CountBits<3920>::value,
                                            CountBits<3921>::value,
                                            CountBits<3922>::value,
                                            CountBits<3923>::value,
                                            CountBits<3924>::value,
                                            CountBits<3925>::value,
                                            CountBits<3926>::value,
                                            CountBits<3927>::value,
                                            CountBits<3928>::value,
                                            CountBits<3929>::value,
                                            CountBits<3930>::value,
                                            CountBits<3931>::value,
                                            CountBits<3932>::value,
                                            CountBits<3933>::value,
                                            CountBits<3934>::value,
                                            CountBits<3935>::value,
                                            CountBits<3936>::value,
                                            CountBits<3937>::value,
                                            CountBits<3938>::value,
                                            CountBits<3939>::value,
                                            CountBits<3940>::value,
                                            CountBits<3941>::value,
                                            CountBits<3942>::value,
                                            CountBits<3943>::value,
                                            CountBits<3944>::value,
                                            CountBits<3945>::value,
                                            CountBits<3946>::value,
                                            CountBits<3947>::value,
                                            CountBits<3948>::value,
                                            CountBits<3949>::value,
                                            CountBits<3950>::value,
                                            CountBits<3951>::value,
                                            CountBits<3952>::value,
                                            CountBits<3953>::value,
                                            CountBits<3954>::value,
                                            CountBits<3955>::value,
                                            CountBits<3956>::value,
                                            CountBits<3957>::value,
                                            CountBits<3958>::value,
                                            CountBits<3959>::value,
                                            CountBits<3960>::value,
                                            CountBits<3961>::value,
                                            CountBits<3962>::value,
                                            CountBits<3963>::value,
                                            CountBits<3964>::value,
                                            CountBits<3965>::value,
                                            CountBits<3966>::value,
                                            CountBits<3967>::value,
                                            CountBits<3968>::value,
                                            CountBits<3969>::value,
                                            CountBits<3970>::value,
                                            CountBits<3971>::value,
                                            CountBits<3972>::value,
                                            CountBits<3973>::value,
                                            CountBits<3974>::value,
                                            CountBits<3975>::value,
                                            CountBits<3976>::value,
                                            CountBits<3977>::value,
                                            CountBits<3978>::value,
                                            CountBits<3979>::value,
                                            CountBits<3980>::value,
                                            CountBits<3981>::value,
                                            CountBits<3982>::value,
                                            CountBits<3983>::value,
                                            CountBits<3984>::value,
                                            CountBits<3985>::value,
                                            CountBits<3986>::value,
                                            CountBits<3987>::value,
                                            CountBits<3988>::value,
                                            CountBits<3989>::value,
                                            CountBits<3990>::value,
                                            CountBits<3991>::value,
                                            CountBits<3992>::value,
                                            CountBits<3993>::value,
                                            CountBits<3994>::value,
                                            CountBits<3995>::value,
                                            CountBits<3996>::value,
                                            CountBits<3997>::value,
                                            CountBits<3998>::value,
                                            CountBits<3999>::value,
                                            CountBits<4000>::value,
                                            CountBits<4001>::value,
                                            CountBits<4002>::value,
                                            CountBits<4003>::value,
                                            CountBits<4004>::value,
                                            CountBits<4005>::value,
                                            CountBits<4006>::value,
                                            CountBits<4007>::value,
                                            CountBits<4008>::value,
                                            CountBits<4009>::value,
                                            CountBits<4010>::value,
                                            CountBits<4011>::value,
                                            CountBits<4012>::value,
                                            CountBits<4013>::value,
                                            CountBits<4014>::value,
                                            CountBits<4015>::value,
                                            CountBits<4016>::value,
                                            CountBits<4017>::value,
                                            CountBits<4018>::value,
                                            CountBits<4019>::value,
                                            CountBits<4020>::value,
                                            CountBits<4021>::value,
                                            CountBits<4022>::value,
                                            CountBits<4023>::value,
                                            CountBits<4024>::value,
                                            CountBits<4025>::value,
                                            CountBits<4026>::value,
                                            CountBits<4027>::value,
                                            CountBits<4028>::value,
                                            CountBits<4029>::value,
                                            CountBits<4030>::value,
                                            CountBits<4031>::value,
                                            CountBits<4032>::value,
                                            CountBits<4033>::value,
                                            CountBits<4034>::value,
                                            CountBits<4035>::value,
                                            CountBits<4036>::value,
                                            CountBits<4037>::value,
                                            CountBits<4038>::value,
                                            CountBits<4039>::value,
                                            CountBits<4040>::value,
                                            CountBits<4041>::value,
                                            CountBits<4042>::value,
                                            CountBits<4043>::value,
                                            CountBits<4044>::value,
                                            CountBits<4045>::value,
                                            CountBits<4046>::value,
                                            CountBits<4047>::value,
                                            CountBits<4048>::value,
                                            CountBits<4049>::value,
                                            CountBits<4050>::value,
                                            CountBits<4051>::value,
                                            CountBits<4052>::value,
                                            CountBits<4053>::value,
                                            CountBits<4054>::value,
                                            CountBits<4055>::value,
                                            CountBits<4056>::value,
                                            CountBits<4057>::value,
                                            CountBits<4058>::value,
                                            CountBits<4059>::value,
                                            CountBits<4060>::value,
                                            CountBits<4061>::value,
                                            CountBits<4062>::value,
                                            CountBits<4063>::value,
                                            CountBits<4064>::value,
                                            CountBits<4065>::value,
                                            CountBits<4066>::value,
                                            CountBits<4067>::value,
                                            CountBits<4068>::value,
                                            CountBits<4069>::value,
                                            CountBits<4070>::value,
                                            CountBits<4071>::value,
                                            CountBits<4072>::value,
                                            CountBits<4073>::value,
                                            CountBits<4074>::value,
                                            CountBits<4075>::value,
                                            CountBits<4076>::value,
                                            CountBits<4077>::value,
                                            CountBits<4078>::value,
                                            CountBits<4079>::value,
                                            CountBits<4080>::value,
                                            CountBits<4081>::value,
                                            CountBits<4082>::value,
                                            CountBits<4083>::value,
                                            CountBits<4084>::value,
                                            CountBits<4085>::value,
                                            CountBits<4086>::value,
                                            CountBits<4087>::value,
                                            CountBits<4088>::value,
                                            CountBits<4089>::value,
                                            CountBits<4090>::value,
                                            CountBits<4091>::value,
                                            CountBits<4092>::value,
                                            CountBits<4093>::value,
                                            CountBits<4094>::value,
                                            CountBits<4095>::value,
                                            CountBits<4096>::value,
                                            CountBits<4097>::value,
                                            CountBits<4098>::value,
                                            CountBits<4099>::value,
                                            CountBits<4100>::value,
                                            CountBits<4101>::value,
                                            CountBits<4102>::value,
                                            CountBits<4103>::value,
                                            CountBits<4104>::value,
                                            CountBits<4105>::value,
                                            CountBits<4106>::value,
                                            CountBits<4107>::value,
                                            CountBits<4108>::value,
                                            CountBits<4109>::value,
                                            CountBits<4110>::value,
                                            CountBits<4111>::value,
                                            CountBits<4112>::value,
                                            CountBits<4113>::value,
                                            CountBits<4114>::value,
                                            CountBits<4115>::value,
                                            CountBits<4116>::value,
                                            CountBits<4117>::value,
                                            CountBits<4118>::value,
                                            CountBits<4119>::value,
                                            CountBits<4120>::value,
                                            CountBits<4121>::value,
                                            CountBits<4122>::value,
                                            CountBits<4123>::value,
                                            CountBits<4124>::value,
                                            CountBits<4125>::value,
                                            CountBits<4126>::value,
                                            CountBits<4127>::value,
                                            CountBits<4128>::value,
                                            CountBits<4129>::value,
                                            CountBits<4130>::value,
                                            CountBits<4131>::value,
                                            CountBits<4132>::value,
                                            CountBits<4133>::value,
                                            CountBits<4134>::value,
                                            CountBits<4135>::value,
                                            CountBits<4136>::value,
                                            CountBits<4137>::value,
                                            CountBits<4138>::value,
                                            CountBits<4139>::value,
                                            CountBits<4140>::value,
                                            CountBits<4141>::value,
                                            CountBits<4142>::value,
                                            CountBits<4143>::value,
                                            CountBits<4144>::value,
                                            CountBits<4145>::value,
                                            CountBits<4146>::value,
                                            CountBits<4147>::value,
                                            CountBits<4148>::value,
                                            CountBits<4149>::value,
                                            CountBits<4150>::value,
                                            CountBits<4151>::value,
                                            CountBits<4152>::value,
                                            CountBits<4153>::value,
                                            CountBits<4154>::value,
                                            CountBits<4155>::value,
                                            CountBits<4156>::value,
                                            CountBits<4157>::value,
                                            CountBits<4158>::value,
                                            CountBits<4159>::value,
                                            CountBits<4160>::value,
                                            CountBits<4161>::value,
                                            CountBits<4162>::value,
                                            CountBits<4163>::value,
                                            CountBits<4164>::value,
                                            CountBits<4165>::value,
                                            CountBits<4166>::value,
                                            CountBits<4167>::value,
                                            CountBits<4168>::value,
                                            CountBits<4169>::value,
                                            CountBits<4170>::value,
                                            CountBits<4171>::value,
                                            CountBits<4172>::value,
                                            CountBits<4173>::value,
                                            CountBits<4174>::value,
                                            CountBits<4175>::value,
                                            CountBits<4176>::value,
                                            CountBits<4177>::value,
                                            CountBits<4178>::value,
                                            CountBits<4179>::value,
                                            CountBits<4180>::value,
                                            CountBits<4181>::value,
                                            CountBits<4182>::value,
                                            CountBits<4183>::value,
                                            CountBits<4184>::value,
                                            CountBits<4185>::value,
                                            CountBits<4186>::value,
                                            CountBits<4187>::value,
                                            CountBits<4188>::value,
                                            CountBits<4189>::value,
                                            CountBits<4190>::value,
                                            CountBits<4191>::value,
                                            CountBits<4192>::value,
                                            CountBits<4193>::value,
                                            CountBits<4194>::value,
                                            CountBits<4195>::value,
                                            CountBits<4196>::value,
                                            CountBits<4197>::value,
                                            CountBits<4198>::value,
                                            CountBits<4199>::value,
                                            CountBits<4200>::value,
                                            CountBits<4201>::value,
                                            CountBits<4202>::value,
                                            CountBits<4203>::value,
                                            CountBits<4204>::value,
                                            CountBits<4205>::value,
                                            CountBits<4206>::value,
                                            CountBits<4207>::value,
                                            CountBits<4208>::value,
                                            CountBits<4209>::value,
                                            CountBits<4210>::value,
                                            CountBits<4211>::value,
                                            CountBits<4212>::value,
                                            CountBits<4213>::value,
                                            CountBits<4214>::value,
                                            CountBits<4215>::value,
                                            CountBits<4216>::value,
                                            CountBits<4217>::value,
                                            CountBits<4218>::value,
                                            CountBits<4219>::value,
                                            CountBits<4220>::value,
                                            CountBits<4221>::value,
                                            CountBits<4222>::value,
                                            CountBits<4223>::value,
                                            CountBits<4224>::value,
                                            CountBits<4225>::value,
                                            CountBits<4226>::value,
                                            CountBits<4227>::value,
                                            CountBits<4228>::value,
                                            CountBits<4229>::value,
                                            CountBits<4230>::value,
                                            CountBits<4231>::value,
                                            CountBits<4232>::value,
                                            CountBits<4233>::value,
                                            CountBits<4234>::value,
                                            CountBits<4235>::value,
                                            CountBits<4236>::value,
                                            CountBits<4237>::value,
                                            CountBits<4238>::value,
                                            CountBits<4239>::value,
                                            CountBits<4240>::value,
                                            CountBits<4241>::value,
                                            CountBits<4242>::value,
                                            CountBits<4243>::value,
                                            CountBits<4244>::value,
                                            CountBits<4245>::value,
                                            CountBits<4246>::value,
                                            CountBits<4247>::value,
                                            CountBits<4248>::value,
                                            CountBits<4249>::value,
                                            CountBits<4250>::value,
                                            CountBits<4251>::value,
                                            CountBits<4252>::value,
                                            CountBits<4253>::value,
                                            CountBits<4254>::value,
                                            CountBits<4255>::value,
                                            CountBits<4256>::value,
                                            CountBits<4257>::value,
                                            CountBits<4258>::value,
                                            CountBits<4259>::value,
                                            CountBits<4260>::value,
                                            CountBits<4261>::value,
                                            CountBits<4262>::value,
                                            CountBits<4263>::value,
                                            CountBits<4264>::value,
                                            CountBits<4265>::value,
                                            CountBits<4266>::value,
                                            CountBits<4267>::value,
                                            CountBits<4268>::value,
                                            CountBits<4269>::value,
                                            CountBits<4270>::value,
                                            CountBits<4271>::value,
                                            CountBits<4272>::value,
                                            CountBits<4273>::value,
                                            CountBits<4274>::value,
                                            CountBits<4275>::value,
                                            CountBits<4276>::value,
                                            CountBits<4277>::value,
                                            CountBits<4278>::value,
                                            CountBits<4279>::value,
                                            CountBits<4280>::value,
                                            CountBits<4281>::value,
                                            CountBits<4282>::value,
                                            CountBits<4283>::value,
                                            CountBits<4284>::value,
                                            CountBits<4285>::value,
                                            CountBits<4286>::value,
                                            CountBits<4287>::value,
                                            CountBits<4288>::value,
                                            CountBits<4289>::value,
                                            CountBits<4290>::value,
                                            CountBits<4291>::value,
                                            CountBits<4292>::value,
                                            CountBits<4293>::value,
                                            CountBits<4294>::value,
                                            CountBits<4295>::value,
                                            CountBits<4296>::value,
                                            CountBits<4297>::value,
                                            CountBits<4298>::value,
                                            CountBits<4299>::value,
                                            CountBits<4300>::value,
                                            CountBits<4301>::value,
                                            CountBits<4302>::value,
                                            CountBits<4303>::value,
                                            CountBits<4304>::value,
                                            CountBits<4305>::value,
                                            CountBits<4306>::value,
                                            CountBits<4307>::value,
                                            CountBits<4308>::value,
                                            CountBits<4309>::value,
                                            CountBits<4310>::value,
                                            CountBits<4311>::value,
                                            CountBits<4312>::value,
                                            CountBits<4313>::value,
                                            CountBits<4314>::value,
                                            CountBits<4315>::value,
                                            CountBits<4316>::value,
                                            CountBits<4317>::value,
                                            CountBits<4318>::value,
                                            CountBits<4319>::value,
                                            CountBits<4320>::value,
                                            CountBits<4321>::value,
                                            CountBits<4322>::value,
                                            CountBits<4323>::value,
                                            CountBits<4324>::value,
                                            CountBits<4325>::value,
                                            CountBits<4326>::value,
                                            CountBits<4327>::value,
                                            CountBits<4328>::value,
                                            CountBits<4329>::value,
                                            CountBits<4330>::value,
                                            CountBits<4331>::value,
                                            CountBits<4332>::value,
                                            CountBits<4333>::value,
                                            CountBits<4334>::value,
                                            CountBits<4335>::value,
                                            CountBits<4336>::value,
                                            CountBits<4337>::value,
                                            CountBits<4338>::value,
                                            CountBits<4339>::value,
                                            CountBits<4340>::value,
                                            CountBits<4341>::value,
                                            CountBits<4342>::value,
                                            CountBits<4343>::value,
                                            CountBits<4344>::value,
                                            CountBits<4345>::value,
                                            CountBits<4346>::value,
                                            CountBits<4347>::value,
                                            CountBits<4348>::value,
                                            CountBits<4349>::value,
                                            CountBits<4350>::value,
                                            CountBits<4351>::value,
                                            CountBits<4352>::value,
                                            CountBits<4353>::value,
                                            CountBits<4354>::value,
                                            CountBits<4355>::value,
                                            CountBits<4356>::value,
                                            CountBits<4357>::value,
                                            CountBits<4358>::value,
                                            CountBits<4359>::value,
                                            CountBits<4360>::value,
                                            CountBits<4361>::value,
                                            CountBits<4362>::value,
                                            CountBits<4363>::value,
                                            CountBits<4364>::value,
                                            CountBits<4365>::value,
                                            CountBits<4366>::value,
                                            CountBits<4367>::value,
                                            CountBits<4368>::value,
                                            CountBits<4369>::value,
                                            CountBits<4370>::value,
                                            CountBits<4371>::value,
                                            CountBits<4372>::value,
                                            CountBits<4373>::value,
                                            CountBits<4374>::value,
                                            CountBits<4375>::value,
                                            CountBits<4376>::value,
                                            CountBits<4377>::value,
                                            CountBits<4378>::value,
                                            CountBits<4379>::value,
                                            CountBits<4380>::value,
                                            CountBits<4381>::value,
                                            CountBits<4382>::value,
                                            CountBits<4383>::value,
                                            CountBits<4384>::value,
                                            CountBits<4385>::value,
                                            CountBits<4386>::value,
                                            CountBits<4387>::value,
                                            CountBits<4388>::value,
                                            CountBits<4389>::value,
                                            CountBits<4390>::value,
                                            CountBits<4391>::value,
                                            CountBits<4392>::value,
                                            CountBits<4393>::value,
                                            CountBits<4394>::value,
                                            CountBits<4395>::value,
                                            CountBits<4396>::value,
                                            CountBits<4397>::value,
                                            CountBits<4398>::value,
                                            CountBits<4399>::value,
                                            CountBits<4400>::value,
                                            CountBits<4401>::value,
                                            CountBits<4402>::value,
                                            CountBits<4403>::value,
                                            CountBits<4404>::value,
                                            CountBits<4405>::value,
                                            CountBits<4406>::value,
                                            CountBits<4407>::value,
                                            CountBits<4408>::value,
                                            CountBits<4409>::value,
                                            CountBits<4410>::value,
                                            CountBits<4411>::value,
                                            CountBits<4412>::value,
                                            CountBits<4413>::value,
                                            CountBits<4414>::value,
                                            CountBits<4415>::value,
                                            CountBits<4416>::value,
                                            CountBits<4417>::value,
                                            CountBits<4418>::value,
                                            CountBits<4419>::value,
                                            CountBits<4420>::value,
                                            CountBits<4421>::value,
                                            CountBits<4422>::value,
                                            CountBits<4423>::value,
                                            CountBits<4424>::value,
                                            CountBits<4425>::value,
                                            CountBits<4426>::value,
                                            CountBits<4427>::value,
                                            CountBits<4428>::value,
                                            CountBits<4429>::value,
                                            CountBits<4430>::value,
                                            CountBits<4431>::value,
                                            CountBits<4432>::value,
                                            CountBits<4433>::value,
                                            CountBits<4434>::value,
                                            CountBits<4435>::value,
                                            CountBits<4436>::value,
                                            CountBits<4437>::value,
                                            CountBits<4438>::value,
                                            CountBits<4439>::value,
                                            CountBits<4440>::value,
                                            CountBits<4441>::value,
                                            CountBits<4442>::value,
                                            CountBits<4443>::value,
                                            CountBits<4444>::value,
                                            CountBits<4445>::value,
                                            CountBits<4446>::value,
                                            CountBits<4447>::value,
                                            CountBits<4448>::value,
                                            CountBits<4449>::value,
                                            CountBits<4450>::value,
                                            CountBits<4451>::value,
                                            CountBits<4452>::value,
                                            CountBits<4453>::value,
                                            CountBits<4454>::value,
                                            CountBits<4455>::value,
                                            CountBits<4456>::value,
                                            CountBits<4457>::value,
                                            CountBits<4458>::value,
                                            CountBits<4459>::value,
                                            CountBits<4460>::value,
                                            CountBits<4461>::value,
                                            CountBits<4462>::value,
                                            CountBits<4463>::value,
                                            CountBits<4464>::value,
                                            CountBits<4465>::value,
                                            CountBits<4466>::value,
                                            CountBits<4467>::value,
                                            CountBits<4468>::value,
                                            CountBits<4469>::value,
                                            CountBits<4470>::value,
                                            CountBits<4471>::value,
                                            CountBits<4472>::value,
                                            CountBits<4473>::value,
                                            CountBits<4474>::value,
                                            CountBits<4475>::value,
                                            CountBits<4476>::value,
                                            CountBits<4477>::value,
                                            CountBits<4478>::value,
                                            CountBits<4479>::value,
                                            CountBits<4480>::value,
                                            CountBits<4481>::value,
                                            CountBits<4482>::value,
                                            CountBits<4483>::value,
                                            CountBits<4484>::value,
                                            CountBits<4485>::value,
                                            CountBits<4486>::value,
                                            CountBits<4487>::value,
                                            CountBits<4488>::value,
                                            CountBits<4489>::value,
                                            CountBits<4490>::value,
                                            CountBits<4491>::value,
                                            CountBits<4492>::value,
                                            CountBits<4493>::value,
                                            CountBits<4494>::value,
                                            CountBits<4495>::value,
                                            CountBits<4496>::value,
                                            CountBits<4497>::value,
                                            CountBits<4498>::value,
                                            CountBits<4499>::value,
                                            CountBits<4500>::value,
                                            CountBits<4501>::value,
                                            CountBits<4502>::value,
                                            CountBits<4503>::value,
                                            CountBits<4504>::value,
                                            CountBits<4505>::value,
                                            CountBits<4506>::value,
                                            CountBits<4507>::value,
                                            CountBits<4508>::value,
                                            CountBits<4509>::value,
                                            CountBits<4510>::value,
                                            CountBits<4511>::value,
                                            CountBits<4512>::value,
                                            CountBits<4513>::value,
                                            CountBits<4514>::value,
                                            CountBits<4515>::value,
                                            CountBits<4516>::value,
                                            CountBits<4517>::value,
                                            CountBits<4518>::value,
                                            CountBits<4519>::value,
                                            CountBits<4520>::value,
                                            CountBits<4521>::value,
                                            CountBits<4522>::value,
                                            CountBits<4523>::value,
                                            CountBits<4524>::value,
                                            CountBits<4525>::value,
                                            CountBits<4526>::value,
                                            CountBits<4527>::value,
                                            CountBits<4528>::value,
                                            CountBits<4529>::value,
                                            CountBits<4530>::value,
                                            CountBits<4531>::value,
                                            CountBits<4532>::value,
                                            CountBits<4533>::value,
                                            CountBits<4534>::value,
                                            CountBits<4535>::value,
                                            CountBits<4536>::value,
                                            CountBits<4537>::value,
                                            CountBits<4538>::value,
                                            CountBits<4539>::value,
                                            CountBits<4540>::value,
                                            CountBits<4541>::value,
                                            CountBits<4542>::value,
                                            CountBits<4543>::value,
                                            CountBits<4544>::value,
                                            CountBits<4545>::value,
                                            CountBits<4546>::value,
                                            CountBits<4547>::value,
                                            CountBits<4548>::value,
                                            CountBits<4549>::value,
                                            CountBits<4550>::value,
                                            CountBits<4551>::value,
                                            CountBits<4552>::value,
                                            CountBits<4553>::value,
                                            CountBits<4554>::value,
                                            CountBits<4555>::value,
                                            CountBits<4556>::value,
                                            CountBits<4557>::value,
                                            CountBits<4558>::value,
                                            CountBits<4559>::value,
                                            CountBits<4560>::value,
                                            CountBits<4561>::value,
                                            CountBits<4562>::value,
                                            CountBits<4563>::value,
                                            CountBits<4564>::value,
                                            CountBits<4565>::value,
                                            CountBits<4566>::value,
                                            CountBits<4567>::value,
                                            CountBits<4568>::value,
                                            CountBits<4569>::value,
                                            CountBits<4570>::value,
                                            CountBits<4571>::value,
                                            CountBits<4572>::value,
                                            CountBits<4573>::value,
                                            CountBits<4574>::value,
                                            CountBits<4575>::value,
                                            CountBits<4576>::value,
                                            CountBits<4577>::value,
                                            CountBits<4578>::value,
                                            CountBits<4579>::value,
                                            CountBits<4580>::value,
                                            CountBits<4581>::value,
                                            CountBits<4582>::value,
                                            CountBits<4583>::value,
                                            CountBits<4584>::value,
                                            CountBits<4585>::value,
                                            CountBits<4586>::value,
                                            CountBits<4587>::value,
                                            CountBits<4588>::value,
                                            CountBits<4589>::value,
                                            CountBits<4590>::value,
                                            CountBits<4591>::value,
                                            CountBits<4592>::value,
                                            CountBits<4593>::value,
                                            CountBits<4594>::value,
                                            CountBits<4595>::value,
                                            CountBits<4596>::value,
                                            CountBits<4597>::value,
                                            CountBits<4598>::value,
                                            CountBits<4599>::value,
                                            CountBits<4600>::value,
                                            CountBits<4601>::value,
                                            CountBits<4602>::value,
                                            CountBits<4603>::value,
                                            CountBits<4604>::value,
                                            CountBits<4605>::value,
                                            CountBits<4606>::value,
                                            CountBits<4607>::value

};

enum PFRefBits {
  kRefTrackBit = 0x1,
  kRefGsfTrackBit = 0x2,
  kRefMuonBit = 0x4,
  kRefDisplacedVertexDauBit = 0x8,
  kRefDisplacedVertexMotBit = 0x10,
  kRefConversionBit = 0x20,
  kRefV0Bit = 0x40,
  kRefGsfElectronBit = 0x80,
  kRefPFElectronExtraBit = 0x100,
  kRefPhotonBit = 0x200,
  kRefPFPhotonExtraBit = 0x400,
  kRefSuperClusterBit = 0x800,
  kRefPFEGammaExtraBit = 0x1000
};
enum PFRefMasks {
  kRefTrackMask = 0,
  kRefGsfTrackMask = kRefTrackMask + kRefTrackBit,
  kRefMuonMask = kRefGsfTrackMask + kRefGsfTrackBit,
  kRefDisplacedVertexDauMask = kRefMuonMask + kRefMuonBit,
  kRefDisplacedVertexMotMask = kRefDisplacedVertexDauMask + kRefDisplacedVertexDauBit,
  kRefConversionMask = kRefDisplacedVertexMotMask + kRefDisplacedVertexMotBit,
  kRefV0Mask = kRefConversionMask + kRefConversionBit,
  kRefGsfElectronMask = kRefV0Mask + kRefV0Bit,
  kRefPFElectronExtraMask = kRefGsfElectronMask + kRefGsfElectronBit,
  kRefPhotonMask = kRefPFElectronExtraMask + kRefPFElectronExtraBit,
  kRefPFPhotonExtraMask = kRefPhotonMask + kRefPhotonBit,
  kRefSuperClusterMask = kRefPFPhotonExtraMask + kRefPFPhotonExtraBit,
  kRefPFEGammaExtraMask = kRefSuperClusterMask + kRefSuperClusterBit
};

#define GETREF(_class_, _mask_, _bit_)                                                   \
  edm::ProductID prodID;                                                                 \
  size_t index, aIndex;                                                                  \
  typedef edm::Ref<std::vector<_class_> > RefType;                                       \
  if (getRefInfo(_mask_, _bit_, prodID, index, aIndex)) {                                \
    if (refsCollectionCache_.empty() || refsCollectionCache_[aIndex] == 0)               \
      return RefType(prodID, index, getter_);                                            \
    else {                                                                               \
      _class_ const* t = reinterpret_cast<_class_ const*>(refsCollectionCache_[aIndex]); \
      return RefType(prodID, t, index);                                                  \
    }                                                                                    \
  }                                                                                      \
  return RefType()