• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This file derives from SFMT 1.3.3
3  * (http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html), which was
4  * released under the terms of the following license:
5  *
6  *   Copyright (c) 2006,2007 Mutsuo Saito, Makoto Matsumoto and Hiroshima
7  *   University. All rights reserved.
8  *
9  *   Redistribution and use in source and binary forms, with or without
10  *   modification, are permitted provided that the following conditions are
11  *   met:
12  *
13  *       * Redistributions of source code must retain the above copyright
14  *         notice, this list of conditions and the following disclaimer.
15  *       * Redistributions in binary form must reproduce the above
16  *         copyright notice, this list of conditions and the following
17  *         disclaimer in the documentation and/or other materials provided
18  *         with the distribution.
19  *       * Neither the name of the Hiroshima University nor the names of
20  *         its contributors may be used to endorse or promote products
21  *         derived from this software without specific prior written
22  *         permission.
23  *
24  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
27  *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
28  *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29  *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30  *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31  *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32  *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33  *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35  */
36 #include "test/jemalloc_test.h"
37 
38 #define BLOCK_SIZE 10000
39 #define BLOCK_SIZE64 (BLOCK_SIZE / 2)
40 #define COUNT_1 1000
41 #define COUNT_2 700
42 
43 static const uint32_t init_gen_rand_32_expected[] = {
44 	3440181298U, 1564997079U, 1510669302U, 2930277156U, 1452439940U,
45 	3796268453U,  423124208U, 2143818589U, 3827219408U, 2987036003U,
46 	2674978610U, 1536842514U, 2027035537U, 2534897563U, 1686527725U,
47 	 545368292U, 1489013321U, 1370534252U, 4231012796U, 3994803019U,
48 	1764869045U,  824597505U,  862581900U, 2469764249U,  812862514U,
49 	 359318673U,  116957936U, 3367389672U, 2327178354U, 1898245200U,
50 	3206507879U, 2378925033U, 1040214787U, 2524778605U, 3088428700U,
51 	1417665896U,  964324147U, 2282797708U, 2456269299U,  313400376U,
52 	2245093271U, 1015729427U, 2694465011U, 3246975184U, 1992793635U,
53 	 463679346U, 3721104591U, 3475064196U,  856141236U, 1499559719U,
54 	3522818941U, 3721533109U, 1954826617U, 1282044024U, 1543279136U,
55 	1301863085U, 2669145051U, 4221477354U, 3896016841U, 3392740262U,
56 	 462466863U, 1037679449U, 1228140306U,  922298197U, 1205109853U,
57 	1872938061U, 3102547608U, 2742766808U, 1888626088U, 4028039414U,
58 	 157593879U, 1136901695U, 4038377686U, 3572517236U, 4231706728U,
59 	2997311961U, 1189931652U, 3981543765U, 2826166703U,   87159245U,
60 	1721379072U, 3897926942U, 1790395498U, 2569178939U, 1047368729U,
61 	2340259131U, 3144212906U, 2301169789U, 2442885464U, 3034046771U,
62 	3667880593U, 3935928400U, 2372805237U, 1666397115U, 2460584504U,
63 	 513866770U, 3810869743U, 2147400037U, 2792078025U, 2941761810U,
64 	3212265810U,  984692259U,  346590253U, 1804179199U, 3298543443U,
65 	 750108141U, 2880257022U,  243310542U, 1869036465U, 1588062513U,
66 	2983949551U, 1931450364U, 4034505847U, 2735030199U, 1628461061U,
67 	2539522841U,  127965585U, 3992448871U,  913388237U,  559130076U,
68 	1202933193U, 4087643167U, 2590021067U, 2256240196U, 1746697293U,
69 	1013913783U, 1155864921U, 2715773730U,  915061862U, 1948766573U,
70 	2322882854U, 3761119102U, 1343405684U, 3078711943U, 3067431651U,
71 	3245156316U, 3588354584U, 3484623306U, 3899621563U, 4156689741U,
72 	3237090058U, 3880063844U,  862416318U, 4039923869U, 2303788317U,
73 	3073590536U,  701653667U, 2131530884U, 3169309950U, 2028486980U,
74 	 747196777U, 3620218225U,  432016035U, 1449580595U, 2772266392U,
75 	 444224948U, 1662832057U, 3184055582U, 3028331792U, 1861686254U,
76 	1104864179U,  342430307U, 1350510923U, 3024656237U, 1028417492U,
77 	2870772950U,  290847558U, 3675663500U,  508431529U, 4264340390U,
78 	2263569913U, 1669302976U,  519511383U, 2706411211U, 3764615828U,
79 	3883162495U, 4051445305U, 2412729798U, 3299405164U, 3991911166U,
80 	2348767304U, 2664054906U, 3763609282U,  593943581U, 3757090046U,
81 	2075338894U, 2020550814U, 4287452920U, 4290140003U, 1422957317U,
82 	2512716667U, 2003485045U, 2307520103U, 2288472169U, 3940751663U,
83 	4204638664U, 2892583423U, 1710068300U, 3904755993U, 2363243951U,
84 	3038334120U,  547099465U,  771105860U, 3199983734U, 4282046461U,
85 	2298388363U,  934810218U, 2837827901U, 3952500708U, 2095130248U,
86 	3083335297U,   26885281U, 3932155283U, 1531751116U, 1425227133U,
87 	 495654159U, 3279634176U, 3855562207U, 3957195338U, 4159985527U,
88 	 893375062U, 1875515536U, 1327247422U, 3754140693U, 1028923197U,
89 	1729880440U,  805571298U,  448971099U, 2726757106U, 2749436461U,
90 	2485987104U,  175337042U, 3235477922U, 3882114302U, 2020970972U,
91 	 943926109U, 2762587195U, 1904195558U, 3452650564U,  108432281U,
92 	3893463573U, 3977583081U, 2636504348U, 1110673525U, 3548479841U,
93 	4258854744U,  980047703U, 4057175418U, 3890008292U,  145653646U,
94 	3141868989U, 3293216228U, 1194331837U, 1254570642U, 3049934521U,
95 	2868313360U, 2886032750U, 1110873820U,  279553524U, 3007258565U,
96 	1104807822U, 3186961098U,  315764646U, 2163680838U, 3574508994U,
97 	3099755655U,  191957684U, 3642656737U, 3317946149U, 3522087636U,
98 	 444526410U,  779157624U, 1088229627U, 1092460223U, 1856013765U,
99 	3659877367U,  368270451U,  503570716U, 3000984671U, 2742789647U,
100 	 928097709U, 2914109539U,  308843566U, 2816161253U, 3667192079U,
101 	2762679057U, 3395240989U, 2928925038U, 1491465914U, 3458702834U,
102 	3787782576U, 2894104823U, 1296880455U, 1253636503U,  989959407U,
103 	2291560361U, 2776790436U, 1913178042U, 1584677829U,  689637520U,
104 	1898406878U,  688391508U, 3385234998U,  845493284U, 1943591856U,
105 	2720472050U,  222695101U, 1653320868U, 2904632120U, 4084936008U,
106 	1080720688U, 3938032556U,  387896427U, 2650839632U,   99042991U,
107 	1720913794U, 1047186003U, 1877048040U, 2090457659U,  517087501U,
108 	4172014665U, 2129713163U, 2413533132U, 2760285054U, 4129272496U,
109 	1317737175U, 2309566414U, 2228873332U, 3889671280U, 1110864630U,
110 	3576797776U, 2074552772U,  832002644U, 3097122623U, 2464859298U,
111 	2679603822U, 1667489885U, 3237652716U, 1478413938U, 1719340335U,
112 	2306631119U,  639727358U, 3369698270U,  226902796U, 2099920751U,
113 	1892289957U, 2201594097U, 3508197013U, 3495811856U, 3900381493U,
114 	 841660320U, 3974501451U, 3360949056U, 1676829340U,  728899254U,
115 	2047809627U, 2390948962U,  670165943U, 3412951831U, 4189320049U,
116 	1911595255U, 2055363086U,  507170575U,  418219594U, 4141495280U,
117 	2692088692U, 4203630654U, 3540093932U,  791986533U, 2237921051U,
118 	2526864324U, 2956616642U, 1394958700U, 1983768223U, 1893373266U,
119 	 591653646U,  228432437U, 1611046598U, 3007736357U, 1040040725U,
120 	2726180733U, 2789804360U, 4263568405U,  829098158U, 3847722805U,
121 	1123578029U, 1804276347U,  997971319U, 4203797076U, 4185199713U,
122 	2811733626U, 2343642194U, 2985262313U, 1417930827U, 3759587724U,
123 	1967077982U, 1585223204U, 1097475516U, 1903944948U,  740382444U,
124 	1114142065U, 1541796065U, 1718384172U, 1544076191U, 1134682254U,
125 	3519754455U, 2866243923U,  341865437U,  645498576U, 2690735853U,
126 	1046963033U, 2493178460U, 1187604696U, 1619577821U,  488503634U,
127 	3255768161U, 2306666149U, 1630514044U, 2377698367U, 2751503746U,
128 	3794467088U, 1796415981U, 3657173746U,  409136296U, 1387122342U,
129 	1297726519U,  219544855U, 4270285558U,  437578827U, 1444698679U,
130 	2258519491U,  963109892U, 3982244073U, 3351535275U,  385328496U,
131 	1804784013U,  698059346U, 3920535147U,  708331212U,  784338163U,
132 	 785678147U, 1238376158U, 1557298846U, 2037809321U,  271576218U,
133 	4145155269U, 1913481602U, 2763691931U,  588981080U, 1201098051U,
134 	3717640232U, 1509206239U,  662536967U, 3180523616U, 1133105435U,
135 	2963500837U, 2253971215U, 3153642623U, 1066925709U, 2582781958U,
136 	3034720222U, 1090798544U, 2942170004U, 4036187520U,  686972531U,
137 	2610990302U, 2641437026U, 1837562420U,  722096247U, 1315333033U,
138 	2102231203U, 3402389208U, 3403698140U, 1312402831U, 2898426558U,
139 	 814384596U,  385649582U, 1916643285U, 1924625106U, 2512905582U,
140 	2501170304U, 4275223366U, 2841225246U, 1467663688U, 3563567847U,
141 	2969208552U,  884750901U,  102992576U,  227844301U, 3681442994U,
142 	3502881894U, 4034693299U, 1166727018U, 1697460687U, 1737778332U,
143 	1787161139U, 1053003655U, 1215024478U, 2791616766U, 2525841204U,
144 	1629323443U,    3233815U, 2003823032U, 3083834263U, 2379264872U,
145 	3752392312U, 1287475550U, 3770904171U, 3004244617U, 1502117784U,
146 	 918698423U, 2419857538U, 3864502062U, 1751322107U, 2188775056U,
147 	4018728324U,  983712955U,  440071928U, 3710838677U, 2001027698U,
148 	3994702151U,   22493119U, 3584400918U, 3446253670U, 4254789085U,
149 	1405447860U, 1240245579U, 1800644159U, 1661363424U, 3278326132U,
150 	3403623451U,   67092802U, 2609352193U, 3914150340U, 1814842761U,
151 	3610830847U,  591531412U, 3880232807U, 1673505890U, 2585326991U,
152 	1678544474U, 3148435887U, 3457217359U, 1193226330U, 2816576908U,
153 	 154025329U,  121678860U, 1164915738U,  973873761U,  269116100U,
154 	  52087970U,  744015362U,  498556057U,   94298882U, 1563271621U,
155 	2383059628U, 4197367290U, 3958472990U, 2592083636U, 2906408439U,
156 	1097742433U, 3924840517U,  264557272U, 2292287003U, 3203307984U,
157 	4047038857U, 3820609705U, 2333416067U, 1839206046U, 3600944252U,
158 	3412254904U,  583538222U, 2390557166U, 4140459427U, 2810357445U,
159 	 226777499U, 2496151295U, 2207301712U, 3283683112U,  611630281U,
160 	1933218215U, 3315610954U, 3889441987U, 3719454256U, 3957190521U,
161 	1313998161U, 2365383016U, 3146941060U, 1801206260U,  796124080U,
162 	2076248581U, 1747472464U, 3254365145U,  595543130U, 3573909503U,
163 	3758250204U, 2020768540U, 2439254210U,   93368951U, 3155792250U,
164 	2600232980U, 3709198295U, 3894900440U, 2971850836U, 1578909644U,
165 	1443493395U, 2581621665U, 3086506297U, 2443465861U,  558107211U,
166 	1519367835U,  249149686U,  908102264U, 2588765675U, 1232743965U,
167 	1001330373U, 3561331654U, 2259301289U, 1564977624U, 3835077093U,
168 	 727244906U, 4255738067U, 1214133513U, 2570786021U, 3899704621U,
169 	1633861986U, 1636979509U, 1438500431U,   58463278U, 2823485629U,
170 	2297430187U, 2926781924U, 3371352948U, 1864009023U, 2722267973U,
171 	1444292075U,  437703973U, 1060414512U,  189705863U,  910018135U,
172 	4077357964U,  884213423U, 2644986052U, 3973488374U, 1187906116U,
173 	2331207875U,  780463700U, 3713351662U, 3854611290U,  412805574U,
174 	2978462572U, 2176222820U,  829424696U, 2790788332U, 2750819108U,
175 	1594611657U, 3899878394U, 3032870364U, 1702887682U, 1948167778U,
176 	  14130042U,  192292500U,  947227076U,   90719497U, 3854230320U,
177 	 784028434U, 2142399787U, 1563449646U, 2844400217U,  819143172U,
178 	2883302356U, 2328055304U, 1328532246U, 2603885363U, 3375188924U,
179 	 933941291U, 3627039714U, 2129697284U, 2167253953U, 2506905438U,
180 	1412424497U, 2981395985U, 1418359660U, 2925902456U,   52752784U,
181 	3713667988U, 3924669405U,  648975707U, 1145520213U, 4018650664U,
182 	3805915440U, 2380542088U, 2013260958U, 3262572197U, 2465078101U,
183 	1114540067U, 3728768081U, 2396958768U,  590672271U,  904818725U,
184 	4263660715U,  700754408U, 1042601829U, 4094111823U, 4274838909U,
185 	2512692617U, 2774300207U, 2057306915U, 3470942453U,   99333088U,
186 	1142661026U, 2889931380U,   14316674U, 2201179167U,  415289459U,
187 	 448265759U, 3515142743U, 3254903683U,  246633281U, 1184307224U,
188 	2418347830U, 2092967314U, 2682072314U, 2558750234U, 2000352263U,
189 	1544150531U,  399010405U, 1513946097U,  499682937U,  461167460U,
190 	3045570638U, 1633669705U,  851492362U, 4052801922U, 2055266765U,
191 	 635556996U,  368266356U, 2385737383U, 3218202352U, 2603772408U,
192 	 349178792U,  226482567U, 3102426060U, 3575998268U, 2103001871U,
193 	3243137071U,  225500688U, 1634718593U, 4283311431U, 4292122923U,
194 	3842802787U,  811735523U,  105712518U,  663434053U, 1855889273U,
195 	2847972595U, 1196355421U, 2552150115U, 4254510614U, 3752181265U,
196 	3430721819U, 3828705396U, 3436287905U, 3441964937U, 4123670631U,
197 	 353001539U,  459496439U, 3799690868U, 1293777660U, 2761079737U,
198 	 498096339U, 3398433374U, 4080378380U, 2304691596U, 2995729055U,
199 	4134660419U, 3903444024U, 3576494993U,  203682175U, 3321164857U,
200 	2747963611U,   79749085U, 2992890370U, 1240278549U, 1772175713U,
201 	2111331972U, 2655023449U, 1683896345U, 2836027212U, 3482868021U,
202 	2489884874U,  756853961U, 2298874501U, 4013448667U, 4143996022U,
203 	2948306858U, 4132920035U, 1283299272U,  995592228U, 3450508595U,
204 	1027845759U, 1766942720U, 3861411826U, 1446861231U,   95974993U,
205 	3502263554U, 1487532194U,  601502472U, 4129619129U,  250131773U,
206 	2050079547U, 3198903947U, 3105589778U, 4066481316U, 3026383978U,
207 	2276901713U,  365637751U, 2260718426U, 1394775634U, 1791172338U,
208 	2690503163U, 2952737846U, 1568710462U,  732623190U, 2980358000U,
209 	1053631832U, 1432426951U, 3229149635U, 1854113985U, 3719733532U,
210 	3204031934U,  735775531U,  107468620U, 3734611984U,  631009402U,
211 	3083622457U, 4109580626U,  159373458U, 1301970201U, 4132389302U,
212 	1293255004U,  847182752U, 4170022737U,   96712900U, 2641406755U,
213 	1381727755U,  405608287U, 4287919625U, 1703554290U, 3589580244U,
214 	2911403488U,    2166565U, 2647306451U, 2330535117U, 1200815358U,
215 	1165916754U,  245060911U, 4040679071U, 3684908771U, 2452834126U,
216 	2486872773U, 2318678365U, 2940627908U, 1837837240U, 3447897409U,
217 	4270484676U, 1495388728U, 3754288477U, 4204167884U, 1386977705U,
218 	2692224733U, 3076249689U, 4109568048U, 4170955115U, 4167531356U,
219 	4020189950U, 4261855038U, 3036907575U, 3410399885U, 3076395737U,
220 	1046178638U,  144496770U,  230725846U, 3349637149U,   17065717U,
221 	2809932048U, 2054581785U, 3608424964U, 3259628808U,  134897388U,
222 	3743067463U,  257685904U, 3795656590U, 1562468719U, 3589103904U,
223 	3120404710U,  254684547U, 2653661580U, 3663904795U, 2631942758U,
224 	1063234347U, 2609732900U, 2332080715U, 3521125233U, 1180599599U,
225 	1935868586U, 4110970440U,  296706371U, 2128666368U, 1319875791U,
226 	1570900197U, 3096025483U, 1799882517U, 1928302007U, 1163707758U,
227 	1244491489U, 3533770203U,  567496053U, 2757924305U, 2781639343U,
228 	2818420107U,  560404889U, 2619609724U, 4176035430U, 2511289753U,
229 	2521842019U, 3910553502U, 2926149387U, 3302078172U, 4237118867U,
230 	 330725126U,  367400677U,  888239854U,  545570454U, 4259590525U,
231 	 134343617U, 1102169784U, 1647463719U, 3260979784U, 1518840883U,
232 	3631537963U, 3342671457U, 1301549147U, 2083739356U,  146593792U,
233 	3217959080U,  652755743U, 2032187193U, 3898758414U, 1021358093U,
234 	4037409230U, 2176407931U, 3427391950U, 2883553603U,  985613827U,
235 	3105265092U, 3423168427U, 3387507672U,  467170288U, 2141266163U,
236 	3723870208U,  916410914U, 1293987799U, 2652584950U,  769160137U,
237 	3205292896U, 1561287359U, 1684510084U, 3136055621U, 3765171391U,
238 	 639683232U, 2639569327U, 1218546948U, 4263586685U, 3058215773U,
239 	2352279820U,  401870217U, 2625822463U, 1529125296U, 2981801895U,
240 	1191285226U, 4027725437U, 3432700217U, 4098835661U,  971182783U,
241 	2443861173U, 3881457123U, 3874386651U,  457276199U, 2638294160U,
242 	4002809368U,  421169044U, 1112642589U, 3076213779U, 3387033971U,
243 	2499610950U, 3057240914U, 1662679783U,  461224431U, 1168395933U
244 };
245 static const uint32_t init_by_array_32_expected[] = {
246 	2920711183U, 3885745737U, 3501893680U,  856470934U, 1421864068U,
247 	 277361036U, 1518638004U, 2328404353U, 3355513634U,   64329189U,
248 	1624587673U, 3508467182U, 2481792141U, 3706480799U, 1925859037U,
249 	2913275699U,  882658412U,  384641219U,  422202002U, 1873384891U,
250 	2006084383U, 3924929912U, 1636718106U, 3108838742U, 1245465724U,
251 	4195470535U,  779207191U, 1577721373U, 1390469554U, 2928648150U,
252 	 121399709U, 3170839019U, 4044347501U,  953953814U, 3821710850U,
253 	3085591323U, 3666535579U, 3577837737U, 2012008410U, 3565417471U,
254 	4044408017U,  433600965U, 1637785608U, 1798509764U,  860770589U,
255 	3081466273U, 3982393409U, 2451928325U, 3437124742U, 4093828739U,
256 	3357389386U, 2154596123U,  496568176U, 2650035164U, 2472361850U,
257 	   3438299U, 2150366101U, 1577256676U, 3802546413U, 1787774626U,
258 	4078331588U, 3706103141U,  170391138U, 3806085154U, 1680970100U,
259 	1961637521U, 3316029766U,  890610272U, 1453751581U, 1430283664U,
260 	3051057411U, 3597003186U,  542563954U, 3796490244U, 1690016688U,
261 	3448752238U,  440702173U,  347290497U, 1121336647U, 2540588620U,
262 	 280881896U, 2495136428U,  213707396U,   15104824U, 2946180358U,
263 	 659000016U,  566379385U, 2614030979U, 2855760170U,  334526548U,
264 	2315569495U, 2729518615U,  564745877U, 1263517638U, 3157185798U,
265 	1604852056U, 1011639885U, 2950579535U, 2524219188U,  312951012U,
266 	1528896652U, 1327861054U, 2846910138U, 3966855905U, 2536721582U,
267 	 855353911U, 1685434729U, 3303978929U, 1624872055U, 4020329649U,
268 	3164802143U, 1642802700U, 1957727869U, 1792352426U, 3334618929U,
269 	2631577923U, 3027156164U,  842334259U, 3353446843U, 1226432104U,
270 	1742801369U, 3552852535U, 3471698828U, 1653910186U, 3380330939U,
271 	2313782701U, 3351007196U, 2129839995U, 1800682418U, 4085884420U,
272 	1625156629U, 3669701987U,  615211810U, 3294791649U, 4131143784U,
273 	2590843588U, 3207422808U, 3275066464U,  561592872U, 3957205738U,
274 	3396578098U,   48410678U, 3505556445U, 1005764855U, 3920606528U,
275 	2936980473U, 2378918600U, 2404449845U, 1649515163U,  701203563U,
276 	3705256349U,   83714199U, 3586854132U,  922978446U, 2863406304U,
277 	3523398907U, 2606864832U, 2385399361U, 3171757816U, 4262841009U,
278 	3645837721U, 1169579486U, 3666433897U, 3174689479U, 1457866976U,
279 	3803895110U, 3346639145U, 1907224409U, 1978473712U, 1036712794U,
280 	 980754888U, 1302782359U, 1765252468U,  459245755U, 3728923860U,
281 	1512894209U, 2046491914U,  207860527U,  514188684U, 2288713615U,
282 	1597354672U, 3349636117U, 2357291114U, 3995796221U,  945364213U,
283 	1893326518U, 3770814016U, 1691552714U, 2397527410U,  967486361U,
284 	 776416472U, 4197661421U,  951150819U, 1852770983U, 4044624181U,
285 	1399439738U, 4194455275U, 2284037669U, 1550734958U, 3321078108U,
286 	1865235926U, 2912129961U, 2664980877U, 1357572033U, 2600196436U,
287 	2486728200U, 2372668724U, 1567316966U, 2374111491U, 1839843570U,
288 	  20815612U, 3727008608U, 3871996229U,  824061249U, 1932503978U,
289 	3404541726U,  758428924U, 2609331364U, 1223966026U, 1299179808U,
290 	 648499352U, 2180134401U,  880821170U, 3781130950U,  113491270U,
291 	1032413764U, 4185884695U, 2490396037U, 1201932817U, 4060951446U,
292 	4165586898U, 1629813212U, 2887821158U,  415045333U,  628926856U,
293 	2193466079U, 3391843445U, 2227540681U, 1907099846U, 2848448395U,
294 	1717828221U, 1372704537U, 1707549841U, 2294058813U, 2101214437U,
295 	2052479531U, 1695809164U, 3176587306U, 2632770465U,   81634404U,
296 	1603220563U,  644238487U,  302857763U,  897352968U, 2613146653U,
297 	1391730149U, 4245717312U, 4191828749U, 1948492526U, 2618174230U,
298 	3992984522U, 2178852787U, 3596044509U, 3445573503U, 2026614616U,
299 	 915763564U, 3415689334U, 2532153403U, 3879661562U, 2215027417U,
300 	3111154986U, 2929478371U,  668346391U, 1152241381U, 2632029711U,
301 	3004150659U, 2135025926U,  948690501U, 2799119116U, 4228829406U,
302 	1981197489U, 4209064138U,  684318751U, 3459397845U,  201790843U,
303 	4022541136U, 3043635877U,  492509624U, 3263466772U, 1509148086U,
304 	 921459029U, 3198857146U,  705479721U, 3835966910U, 3603356465U,
305 	 576159741U, 1742849431U,  594214882U, 2055294343U, 3634861861U,
306 	 449571793U, 3246390646U, 3868232151U, 1479156585U, 2900125656U,
307 	2464815318U, 3960178104U, 1784261920U,   18311476U, 3627135050U,
308 	 644609697U,  424968996U,  919890700U, 2986824110U,  816423214U,
309 	4003562844U, 1392714305U, 1757384428U, 2569030598U,  995949559U,
310 	3875659880U, 2933807823U, 2752536860U, 2993858466U, 4030558899U,
311 	2770783427U, 2775406005U, 2777781742U, 1931292655U,  472147933U,
312 	3865853827U, 2726470545U, 2668412860U, 2887008249U,  408979190U,
313 	3578063323U, 3242082049U, 1778193530U,   27981909U, 2362826515U,
314 	 389875677U, 1043878156U,  581653903U, 3830568952U,  389535942U,
315 	3713523185U, 2768373359U, 2526101582U, 1998618197U, 1160859704U,
316 	3951172488U, 1098005003U,  906275699U, 3446228002U, 2220677963U,
317 	2059306445U,  132199571U,  476838790U, 1868039399U, 3097344807U,
318 	 857300945U,  396345050U, 2835919916U, 1782168828U, 1419519470U,
319 	4288137521U,  819087232U,  596301494U,  872823172U, 1526888217U,
320 	 805161465U, 1116186205U, 2829002754U, 2352620120U,  620121516U,
321 	 354159268U, 3601949785U,  209568138U, 1352371732U, 2145977349U,
322 	4236871834U, 1539414078U, 3558126206U, 3224857093U, 4164166682U,
323 	3817553440U, 3301780278U, 2682696837U, 3734994768U, 1370950260U,
324 	1477421202U, 2521315749U, 1330148125U, 1261554731U, 2769143688U,
325 	3554756293U, 4235882678U, 3254686059U, 3530579953U, 1215452615U,
326 	3574970923U, 4057131421U,  589224178U, 1000098193U,  171190718U,
327 	2521852045U, 2351447494U, 2284441580U, 2646685513U, 3486933563U,
328 	3789864960U, 1190528160U, 1702536782U, 1534105589U, 4262946827U,
329 	2726686826U, 3584544841U, 2348270128U, 2145092281U, 2502718509U,
330 	1027832411U, 3571171153U, 1287361161U, 4011474411U, 3241215351U,
331 	2419700818U,  971242709U, 1361975763U, 1096842482U, 3271045537U,
332 	  81165449U,  612438025U, 3912966678U, 1356929810U,  733545735U,
333 	 537003843U, 1282953084U,  884458241U,  588930090U, 3930269801U,
334 	2961472450U, 1219535534U, 3632251943U,  268183903U, 1441240533U,
335 	3653903360U, 3854473319U, 2259087390U, 2548293048U, 2022641195U,
336 	2105543911U, 1764085217U, 3246183186U,  482438805U,  888317895U,
337 	2628314765U, 2466219854U,  717546004U, 2322237039U,  416725234U,
338 	1544049923U, 1797944973U, 3398652364U, 3111909456U,  485742908U,
339 	2277491072U, 1056355088U, 3181001278U,  129695079U, 2693624550U,
340 	1764438564U, 3797785470U,  195503713U, 3266519725U, 2053389444U,
341 	1961527818U, 3400226523U, 3777903038U, 2597274307U, 4235851091U,
342 	4094406648U, 2171410785U, 1781151386U, 1378577117U,  654643266U,
343 	3424024173U, 3385813322U,  679385799U,  479380913U,  681715441U,
344 	3096225905U,  276813409U, 3854398070U, 2721105350U,  831263315U,
345 	3276280337U, 2628301522U, 3984868494U, 1466099834U, 2104922114U,
346 	1412672743U,  820330404U, 3491501010U,  942735832U,  710652807U,
347 	3972652090U,  679881088U,   40577009U, 3705286397U, 2815423480U,
348 	3566262429U,  663396513U, 3777887429U, 4016670678U,  404539370U,
349 	1142712925U, 1140173408U, 2913248352U, 2872321286U,  263751841U,
350 	3175196073U, 3162557581U, 2878996619U,   75498548U, 3836833140U,
351 	3284664959U, 1157523805U,  112847376U,  207855609U, 1337979698U,
352 	1222578451U,  157107174U,  901174378U, 3883717063U, 1618632639U,
353 	1767889440U, 4264698824U, 1582999313U,  884471997U, 2508825098U,
354 	3756370771U, 2457213553U, 3565776881U, 3709583214U,  915609601U,
355 	 460833524U, 1091049576U,   85522880U,    2553251U,  132102809U,
356 	2429882442U, 2562084610U, 1386507633U, 4112471229U,   21965213U,
357 	1981516006U, 2418435617U, 3054872091U, 4251511224U, 2025783543U,
358 	1916911512U, 2454491136U, 3938440891U, 3825869115U, 1121698605U,
359 	3463052265U,  802340101U, 1912886800U, 4031997367U, 3550640406U,
360 	1596096923U,  610150600U,  431464457U, 2541325046U,  486478003U,
361 	 739704936U, 2862696430U, 3037903166U, 1129749694U, 2611481261U,
362 	1228993498U,  510075548U, 3424962587U, 2458689681U,  818934833U,
363 	4233309125U, 1608196251U, 3419476016U, 1858543939U, 2682166524U,
364 	3317854285U,  631986188U, 3008214764U,  613826412U, 3567358221U,
365 	3512343882U, 1552467474U, 3316162670U, 1275841024U, 4142173454U,
366 	 565267881U,  768644821U,  198310105U, 2396688616U, 1837659011U,
367 	 203429334U,  854539004U, 4235811518U, 3338304926U, 3730418692U,
368 	3852254981U, 3032046452U, 2329811860U, 2303590566U, 2696092212U,
369 	3894665932U,  145835667U,  249563655U, 1932210840U, 2431696407U,
370 	3312636759U,  214962629U, 2092026914U, 3020145527U, 4073039873U,
371 	2739105705U, 1308336752U,  855104522U, 2391715321U,   67448785U,
372 	 547989482U,  854411802U, 3608633740U,  431731530U,  537375589U,
373 	3888005760U,  696099141U,  397343236U, 1864511780U,   44029739U,
374 	1729526891U, 1993398655U, 2010173426U, 2591546756U,  275223291U,
375 	1503900299U, 4217765081U, 2185635252U, 1122436015U, 3550155364U,
376 	 681707194U, 3260479338U,  933579397U, 2983029282U, 2505504587U,
377 	2667410393U, 2962684490U, 4139721708U, 2658172284U, 2452602383U,
378 	2607631612U, 1344296217U, 3075398709U, 2949785295U, 1049956168U,
379 	3917185129U, 2155660174U, 3280524475U, 1503827867U,  674380765U,
380 	1918468193U, 3843983676U,  634358221U, 2538335643U, 1873351298U,
381 	3368723763U, 2129144130U, 3203528633U, 3087174986U, 2691698871U,
382 	2516284287U,   24437745U, 1118381474U, 2816314867U, 2448576035U,
383 	4281989654U,  217287825U,  165872888U, 2628995722U, 3533525116U,
384 	2721669106U,  872340568U, 3429930655U, 3309047304U, 3916704967U,
385 	3270160355U, 1348884255U, 1634797670U,  881214967U, 4259633554U,
386 	 174613027U, 1103974314U, 1625224232U, 2678368291U, 1133866707U,
387 	3853082619U, 4073196549U, 1189620777U,  637238656U,  930241537U,
388 	4042750792U, 3842136042U, 2417007212U, 2524907510U, 1243036827U,
389 	1282059441U, 3764588774U, 1394459615U, 2323620015U, 1166152231U,
390 	3307479609U, 3849322257U, 3507445699U, 4247696636U,  758393720U,
391 	 967665141U, 1095244571U, 1319812152U,  407678762U, 2640605208U,
392 	2170766134U, 3663594275U, 4039329364U, 2512175520U,  725523154U,
393 	2249807004U, 3312617979U, 2414634172U, 1278482215U,  349206484U,
394 	1573063308U, 1196429124U, 3873264116U, 2400067801U,  268795167U,
395 	 226175489U, 2961367263U, 1968719665U,   42656370U, 1010790699U,
396 	 561600615U, 2422453992U, 3082197735U, 1636700484U, 3977715296U,
397 	3125350482U, 3478021514U, 2227819446U, 1540868045U, 3061908980U,
398 	1087362407U, 3625200291U,  361937537U,  580441897U, 1520043666U,
399 	2270875402U, 1009161260U, 2502355842U, 4278769785U,  473902412U,
400 	1057239083U, 1905829039U, 1483781177U, 2080011417U, 1207494246U,
401 	1806991954U, 2194674403U, 3455972205U,  807207678U, 3655655687U,
402 	 674112918U,  195425752U, 3917890095U, 1874364234U, 1837892715U,
403 	3663478166U, 1548892014U, 2570748714U, 2049929836U, 2167029704U,
404 	 697543767U, 3499545023U, 3342496315U, 1725251190U, 3561387469U,
405 	2905606616U, 1580182447U, 3934525927U, 4103172792U, 1365672522U,
406 	1534795737U, 3308667416U, 2841911405U, 3943182730U, 4072020313U,
407 	3494770452U, 3332626671U,   55327267U,  478030603U,  411080625U,
408 	3419529010U, 1604767823U, 3513468014U,  570668510U,  913790824U,
409 	2283967995U,  695159462U, 3825542932U, 4150698144U, 1829758699U,
410 	 202895590U, 1609122645U, 1267651008U, 2910315509U, 2511475445U,
411 	2477423819U, 3932081579U,  900879979U, 2145588390U, 2670007504U,
412 	 580819444U, 1864996828U, 2526325979U, 1019124258U,  815508628U,
413 	2765933989U, 1277301341U, 3006021786U,  855540956U,  288025710U,
414 	1919594237U, 2331223864U,  177452412U, 2475870369U, 2689291749U,
415 	 865194284U,  253432152U, 2628531804U, 2861208555U, 2361597573U,
416 	1653952120U, 1039661024U, 2159959078U, 3709040440U, 3564718533U,
417 	2596878672U, 2041442161U,   31164696U, 2662962485U, 3665637339U,
418 	1678115244U, 2699839832U, 3651968520U, 3521595541U,  458433303U,
419 	2423096824U,   21831741U,  380011703U, 2498168716U,  861806087U,
420 	1673574843U, 4188794405U, 2520563651U, 2632279153U, 2170465525U,
421 	4171949898U, 3886039621U, 1661344005U, 3424285243U,  992588372U,
422 	2500984144U, 2993248497U, 3590193895U, 1535327365U,  515645636U,
423 	 131633450U, 3729760261U, 1613045101U, 3254194278U,   15889678U,
424 	1493590689U,  244148718U, 2991472662U, 1401629333U,  777349878U,
425 	2501401703U, 4285518317U, 3794656178U,  955526526U, 3442142820U,
426 	3970298374U,  736025417U, 2737370764U, 1271509744U,  440570731U,
427 	 136141826U, 1596189518U,  923399175U,  257541519U, 3505774281U,
428 	2194358432U, 2518162991U, 1379893637U, 2667767062U, 3748146247U,
429 	1821712620U, 3923161384U, 1947811444U, 2392527197U, 4127419685U,
430 	1423694998U, 4156576871U, 1382885582U, 3420127279U, 3617499534U,
431 	2994377493U, 4038063986U, 1918458672U, 2983166794U, 4200449033U,
432 	 353294540U, 1609232588U,  243926648U, 2332803291U,  507996832U,
433 	2392838793U, 4075145196U, 2060984340U, 4287475136U,   88232602U,
434 	2491531140U, 4159725633U, 2272075455U,  759298618U,  201384554U,
435 	 838356250U, 1416268324U,  674476934U,   90795364U,  141672229U,
436 	3660399588U, 4196417251U, 3249270244U, 3774530247U,   59587265U,
437 	3683164208U,   19392575U, 1463123697U, 1882205379U,  293780489U,
438 	2553160622U, 2933904694U,  675638239U, 2851336944U, 1435238743U,
439 	2448730183U,  804436302U, 2119845972U,  322560608U, 4097732704U,
440 	2987802540U,  641492617U, 2575442710U, 4217822703U, 3271835300U,
441 	2836418300U, 3739921620U, 2138378768U, 2879771855U, 4294903423U,
442 	3121097946U, 2603440486U, 2560820391U, 1012930944U, 2313499967U,
443 	 584489368U, 3431165766U,  897384869U, 2062537737U, 2847889234U,
444 	3742362450U, 2951174585U, 4204621084U, 1109373893U, 3668075775U,
445 	2750138839U, 3518055702U,  733072558U, 4169325400U,  788493625U
446 };
447 static const uint64_t init_gen_rand_64_expected[] = {
448 	KQU(16924766246869039260), KQU( 8201438687333352714),
449 	KQU( 2265290287015001750), KQU(18397264611805473832),
450 	KQU( 3375255223302384358), KQU( 6345559975416828796),
451 	KQU(18229739242790328073), KQU( 7596792742098800905),
452 	KQU(  255338647169685981), KQU( 2052747240048610300),
453 	KQU(18328151576097299343), KQU(12472905421133796567),
454 	KQU(11315245349717600863), KQU(16594110197775871209),
455 	KQU(15708751964632456450), KQU(10452031272054632535),
456 	KQU(11097646720811454386), KQU( 4556090668445745441),
457 	KQU(17116187693090663106), KQU(14931526836144510645),
458 	KQU( 9190752218020552591), KQU( 9625800285771901401),
459 	KQU(13995141077659972832), KQU( 5194209094927829625),
460 	KQU( 4156788379151063303), KQU( 8523452593770139494),
461 	KQU(14082382103049296727), KQU( 2462601863986088483),
462 	KQU( 3030583461592840678), KQU( 5221622077872827681),
463 	KQU( 3084210671228981236), KQU(13956758381389953823),
464 	KQU(13503889856213423831), KQU(15696904024189836170),
465 	KQU( 4612584152877036206), KQU( 6231135538447867881),
466 	KQU(10172457294158869468), KQU( 6452258628466708150),
467 	KQU(14044432824917330221), KQU(  370168364480044279),
468 	KQU(10102144686427193359), KQU(  667870489994776076),
469 	KQU( 2732271956925885858), KQU(18027788905977284151),
470 	KQU(15009842788582923859), KQU( 7136357960180199542),
471 	KQU(15901736243475578127), KQU(16951293785352615701),
472 	KQU(10551492125243691632), KQU(17668869969146434804),
473 	KQU(13646002971174390445), KQU( 9804471050759613248),
474 	KQU( 5511670439655935493), KQU(18103342091070400926),
475 	KQU(17224512747665137533), KQU(15534627482992618168),
476 	KQU( 1423813266186582647), KQU(15821176807932930024),
477 	KQU(   30323369733607156), KQU(11599382494723479403),
478 	KQU(  653856076586810062), KQU( 3176437395144899659),
479 	KQU(14028076268147963917), KQU(16156398271809666195),
480 	KQU( 3166955484848201676), KQU( 5746805620136919390),
481 	KQU(17297845208891256593), KQU(11691653183226428483),
482 	KQU(17900026146506981577), KQU(15387382115755971042),
483 	KQU(16923567681040845943), KQU( 8039057517199388606),
484 	KQU(11748409241468629263), KQU(  794358245539076095),
485 	KQU(13438501964693401242), KQU(14036803236515618962),
486 	KQU( 5252311215205424721), KQU(17806589612915509081),
487 	KQU( 6802767092397596006), KQU(14212120431184557140),
488 	KQU( 1072951366761385712), KQU(13098491780722836296),
489 	KQU( 9466676828710797353), KQU(12673056849042830081),
490 	KQU(12763726623645357580), KQU(16468961652999309493),
491 	KQU(15305979875636438926), KQU(17444713151223449734),
492 	KQU( 5692214267627883674), KQU(13049589139196151505),
493 	KQU(  880115207831670745), KQU( 1776529075789695498),
494 	KQU(16695225897801466485), KQU(10666901778795346845),
495 	KQU( 6164389346722833869), KQU( 2863817793264300475),
496 	KQU( 9464049921886304754), KQU( 3993566636740015468),
497 	KQU( 9983749692528514136), KQU(16375286075057755211),
498 	KQU(16042643417005440820), KQU(11445419662923489877),
499 	KQU( 7999038846885158836), KQU( 6721913661721511535),
500 	KQU( 5363052654139357320), KQU( 1817788761173584205),
501 	KQU(13290974386445856444), KQU( 4650350818937984680),
502 	KQU( 8219183528102484836), KQU( 1569862923500819899),
503 	KQU( 4189359732136641860), KQU(14202822961683148583),
504 	KQU( 4457498315309429058), KQU(13089067387019074834),
505 	KQU(11075517153328927293), KQU(10277016248336668389),
506 	KQU( 7070509725324401122), KQU(17808892017780289380),
507 	KQU(13143367339909287349), KQU( 1377743745360085151),
508 	KQU( 5749341807421286485), KQU(14832814616770931325),
509 	KQU( 7688820635324359492), KQU(10960474011539770045),
510 	KQU(   81970066653179790), KQU(12619476072607878022),
511 	KQU( 4419566616271201744), KQU(15147917311750568503),
512 	KQU( 5549739182852706345), KQU( 7308198397975204770),
513 	KQU(13580425496671289278), KQU(17070764785210130301),
514 	KQU( 8202832846285604405), KQU( 6873046287640887249),
515 	KQU( 6927424434308206114), KQU( 6139014645937224874),
516 	KQU(10290373645978487639), KQU(15904261291701523804),
517 	KQU( 9628743442057826883), KQU(18383429096255546714),
518 	KQU( 4977413265753686967), KQU( 7714317492425012869),
519 	KQU( 9025232586309926193), KQU(14627338359776709107),
520 	KQU(14759849896467790763), KQU(10931129435864423252),
521 	KQU( 4588456988775014359), KQU(10699388531797056724),
522 	KQU(  468652268869238792), KQU( 5755943035328078086),
523 	KQU( 2102437379988580216), KQU( 9986312786506674028),
524 	KQU( 2654207180040945604), KQU( 8726634790559960062),
525 	KQU(  100497234871808137), KQU( 2800137176951425819),
526 	KQU( 6076627612918553487), KQU( 5780186919186152796),
527 	KQU( 8179183595769929098), KQU( 6009426283716221169),
528 	KQU( 2796662551397449358), KQU( 1756961367041986764),
529 	KQU( 6972897917355606205), KQU(14524774345368968243),
530 	KQU( 2773529684745706940), KQU( 4853632376213075959),
531 	KQU( 4198177923731358102), KQU( 8271224913084139776),
532 	KQU( 2741753121611092226), KQU(16782366145996731181),
533 	KQU(15426125238972640790), KQU(13595497100671260342),
534 	KQU( 3173531022836259898), KQU( 6573264560319511662),
535 	KQU(18041111951511157441), KQU( 2351433581833135952),
536 	KQU( 3113255578908173487), KQU( 1739371330877858784),
537 	KQU(16046126562789165480), KQU( 8072101652214192925),
538 	KQU(15267091584090664910), KQU( 9309579200403648940),
539 	KQU( 5218892439752408722), KQU(14492477246004337115),
540 	KQU(17431037586679770619), KQU( 7385248135963250480),
541 	KQU( 9580144956565560660), KQU( 4919546228040008720),
542 	KQU(15261542469145035584), KQU(18233297270822253102),
543 	KQU( 5453248417992302857), KQU( 9309519155931460285),
544 	KQU(10342813012345291756), KQU(15676085186784762381),
545 	KQU(15912092950691300645), KQU( 9371053121499003195),
546 	KQU( 9897186478226866746), KQU(14061858287188196327),
547 	KQU(  122575971620788119), KQU(12146750969116317754),
548 	KQU( 4438317272813245201), KQU( 8332576791009527119),
549 	KQU(13907785691786542057), KQU(10374194887283287467),
550 	KQU( 2098798755649059566), KQU( 3416235197748288894),
551 	KQU( 8688269957320773484), KQU( 7503964602397371571),
552 	KQU(16724977015147478236), KQU( 9461512855439858184),
553 	KQU(13259049744534534727), KQU( 3583094952542899294),
554 	KQU( 8764245731305528292), KQU(13240823595462088985),
555 	KQU(13716141617617910448), KQU(18114969519935960955),
556 	KQU( 2297553615798302206), KQU( 4585521442944663362),
557 	KQU(17776858680630198686), KQU( 4685873229192163363),
558 	KQU(  152558080671135627), KQU(15424900540842670088),
559 	KQU(13229630297130024108), KQU(17530268788245718717),
560 	KQU(16675633913065714144), KQU( 3158912717897568068),
561 	KQU(15399132185380087288), KQU( 7401418744515677872),
562 	KQU(13135412922344398535), KQU( 6385314346100509511),
563 	KQU(13962867001134161139), KQU(10272780155442671999),
564 	KQU(12894856086597769142), KQU(13340877795287554994),
565 	KQU(12913630602094607396), KQU(12543167911119793857),
566 	KQU(17343570372251873096), KQU(10959487764494150545),
567 	KQU( 6966737953093821128), KQU(13780699135496988601),
568 	KQU( 4405070719380142046), KQU(14923788365607284982),
569 	KQU( 2869487678905148380), KQU( 6416272754197188403),
570 	KQU(15017380475943612591), KQU( 1995636220918429487),
571 	KQU( 3402016804620122716), KQU(15800188663407057080),
572 	KQU(11362369990390932882), KQU(15262183501637986147),
573 	KQU(10239175385387371494), KQU( 9352042420365748334),
574 	KQU( 1682457034285119875), KQU( 1724710651376289644),
575 	KQU( 2038157098893817966), KQU( 9897825558324608773),
576 	KQU( 1477666236519164736), KQU(16835397314511233640),
577 	KQU(10370866327005346508), KQU(10157504370660621982),
578 	KQU(12113904045335882069), KQU(13326444439742783008),
579 	KQU(11302769043000765804), KQU(13594979923955228484),
580 	KQU(11779351762613475968), KQU( 3786101619539298383),
581 	KQU( 8021122969180846063), KQU(15745904401162500495),
582 	KQU(10762168465993897267), KQU(13552058957896319026),
583 	KQU(11200228655252462013), KQU( 5035370357337441226),
584 	KQU( 7593918984545500013), KQU( 5418554918361528700),
585 	KQU( 4858270799405446371), KQU( 9974659566876282544),
586 	KQU(18227595922273957859), KQU( 2772778443635656220),
587 	KQU(14285143053182085385), KQU( 9939700992429600469),
588 	KQU(12756185904545598068), KQU( 2020783375367345262),
589 	KQU(   57026775058331227), KQU(  950827867930065454),
590 	KQU( 6602279670145371217), KQU( 2291171535443566929),
591 	KQU( 5832380724425010313), KQU( 1220343904715982285),
592 	KQU(17045542598598037633), KQU(15460481779702820971),
593 	KQU(13948388779949365130), KQU(13975040175430829518),
594 	KQU(17477538238425541763), KQU(11104663041851745725),
595 	KQU(15860992957141157587), KQU(14529434633012950138),
596 	KQU( 2504838019075394203), KQU( 7512113882611121886),
597 	KQU( 4859973559980886617), KQU( 1258601555703250219),
598 	KQU(15594548157514316394), KQU( 4516730171963773048),
599 	KQU(11380103193905031983), KQU( 6809282239982353344),
600 	KQU(18045256930420065002), KQU( 2453702683108791859),
601 	KQU(  977214582986981460), KQU( 2006410402232713466),
602 	KQU( 6192236267216378358), KQU( 3429468402195675253),
603 	KQU(18146933153017348921), KQU(17369978576367231139),
604 	KQU( 1246940717230386603), KQU(11335758870083327110),
605 	KQU(14166488801730353682), KQU( 9008573127269635732),
606 	KQU(10776025389820643815), KQU(15087605441903942962),
607 	KQU( 1359542462712147922), KQU(13898874411226454206),
608 	KQU(17911176066536804411), KQU( 9435590428600085274),
609 	KQU(  294488509967864007), KQU( 8890111397567922046),
610 	KQU( 7987823476034328778), KQU(13263827582440967651),
611 	KQU( 7503774813106751573), KQU(14974747296185646837),
612 	KQU( 8504765037032103375), KQU(17340303357444536213),
613 	KQU( 7704610912964485743), KQU( 8107533670327205061),
614 	KQU( 9062969835083315985), KQU(16968963142126734184),
615 	KQU(12958041214190810180), KQU( 2720170147759570200),
616 	KQU( 2986358963942189566), KQU(14884226322219356580),
617 	KQU(  286224325144368520), KQU(11313800433154279797),
618 	KQU(18366849528439673248), KQU(17899725929482368789),
619 	KQU( 3730004284609106799), KQU( 1654474302052767205),
620 	KQU( 5006698007047077032), KQU( 8196893913601182838),
621 	KQU(15214541774425211640), KQU(17391346045606626073),
622 	KQU( 8369003584076969089), KQU( 3939046733368550293),
623 	KQU(10178639720308707785), KQU( 2180248669304388697),
624 	KQU(   62894391300126322), KQU( 9205708961736223191),
625 	KQU( 6837431058165360438), KQU( 3150743890848308214),
626 	KQU(17849330658111464583), KQU(12214815643135450865),
627 	KQU(13410713840519603402), KQU( 3200778126692046802),
628 	KQU(13354780043041779313), KQU(  800850022756886036),
629 	KQU(15660052933953067433), KQU( 6572823544154375676),
630 	KQU(11030281857015819266), KQU(12682241941471433835),
631 	KQU(11654136407300274693), KQU( 4517795492388641109),
632 	KQU( 9757017371504524244), KQU(17833043400781889277),
633 	KQU(12685085201747792227), KQU(10408057728835019573),
634 	KQU(   98370418513455221), KQU( 6732663555696848598),
635 	KQU(13248530959948529780), KQU( 3530441401230622826),
636 	KQU(18188251992895660615), KQU( 1847918354186383756),
637 	KQU( 1127392190402660921), KQU(11293734643143819463),
638 	KQU( 3015506344578682982), KQU(13852645444071153329),
639 	KQU( 2121359659091349142), KQU( 1294604376116677694),
640 	KQU( 5616576231286352318), KQU( 7112502442954235625),
641 	KQU(11676228199551561689), KQU(12925182803007305359),
642 	KQU( 7852375518160493082), KQU( 1136513130539296154),
643 	KQU( 5636923900916593195), KQU( 3221077517612607747),
644 	KQU(17784790465798152513), KQU( 3554210049056995938),
645 	KQU(17476839685878225874), KQU( 3206836372585575732),
646 	KQU( 2765333945644823430), KQU(10080070903718799528),
647 	KQU( 5412370818878286353), KQU( 9689685887726257728),
648 	KQU( 8236117509123533998), KQU( 1951139137165040214),
649 	KQU( 4492205209227980349), KQU(16541291230861602967),
650 	KQU( 1424371548301437940), KQU( 9117562079669206794),
651 	KQU(14374681563251691625), KQU(13873164030199921303),
652 	KQU( 6680317946770936731), KQU(15586334026918276214),
653 	KQU(10896213950976109802), KQU( 9506261949596413689),
654 	KQU( 9903949574308040616), KQU( 6038397344557204470),
655 	KQU(  174601465422373648), KQU(15946141191338238030),
656 	KQU(17142225620992044937), KQU( 7552030283784477064),
657 	KQU( 2947372384532947997), KQU(  510797021688197711),
658 	KQU( 4962499439249363461), KQU(   23770320158385357),
659 	KQU(  959774499105138124), KQU( 1468396011518788276),
660 	KQU( 2015698006852312308), KQU( 4149400718489980136),
661 	KQU( 5992916099522371188), KQU(10819182935265531076),
662 	KQU(16189787999192351131), KQU(  342833961790261950),
663 	KQU(12470830319550495336), KQU(18128495041912812501),
664 	KQU( 1193600899723524337), KQU( 9056793666590079770),
665 	KQU( 2154021227041669041), KQU( 4963570213951235735),
666 	KQU( 4865075960209211409), KQU( 2097724599039942963),
667 	KQU( 2024080278583179845), KQU(11527054549196576736),
668 	KQU(10650256084182390252), KQU( 4808408648695766755),
669 	KQU( 1642839215013788844), KQU(10607187948250398390),
670 	KQU( 7076868166085913508), KQU(  730522571106887032),
671 	KQU(12500579240208524895), KQU( 4484390097311355324),
672 	KQU(15145801330700623870), KQU( 8055827661392944028),
673 	KQU( 5865092976832712268), KQU(15159212508053625143),
674 	KQU( 3560964582876483341), KQU( 4070052741344438280),
675 	KQU( 6032585709886855634), KQU(15643262320904604873),
676 	KQU( 2565119772293371111), KQU(  318314293065348260),
677 	KQU(15047458749141511872), KQU( 7772788389811528730),
678 	KQU( 7081187494343801976), KQU( 6465136009467253947),
679 	KQU(10425940692543362069), KQU(  554608190318339115),
680 	KQU(14796699860302125214), KQU( 1638153134431111443),
681 	KQU(10336967447052276248), KQU( 8412308070396592958),
682 	KQU( 4004557277152051226), KQU( 8143598997278774834),
683 	KQU(16413323996508783221), KQU(13139418758033994949),
684 	KQU( 9772709138335006667), KQU( 2818167159287157659),
685 	KQU(17091740573832523669), KQU(14629199013130751608),
686 	KQU(18268322711500338185), KQU( 8290963415675493063),
687 	KQU( 8830864907452542588), KQU( 1614839084637494849),
688 	KQU(14855358500870422231), KQU( 3472996748392519937),
689 	KQU(15317151166268877716), KQU( 5825895018698400362),
690 	KQU(16730208429367544129), KQU(10481156578141202800),
691 	KQU( 4746166512382823750), KQU(12720876014472464998),
692 	KQU( 8825177124486735972), KQU(13733447296837467838),
693 	KQU( 6412293741681359625), KQU( 8313213138756135033),
694 	KQU(11421481194803712517), KQU( 7997007691544174032),
695 	KQU( 6812963847917605930), KQU( 9683091901227558641),
696 	KQU(14703594165860324713), KQU( 1775476144519618309),
697 	KQU( 2724283288516469519), KQU(  717642555185856868),
698 	KQU( 8736402192215092346), KQU(11878800336431381021),
699 	KQU( 4348816066017061293), KQU( 6115112756583631307),
700 	KQU( 9176597239667142976), KQU(12615622714894259204),
701 	KQU(10283406711301385987), KQU( 5111762509485379420),
702 	KQU( 3118290051198688449), KQU( 7345123071632232145),
703 	KQU( 9176423451688682359), KQU( 4843865456157868971),
704 	KQU(12008036363752566088), KQU(12058837181919397720),
705 	KQU( 2145073958457347366), KQU( 1526504881672818067),
706 	KQU( 3488830105567134848), KQU(13208362960674805143),
707 	KQU( 4077549672899572192), KQU( 7770995684693818365),
708 	KQU( 1398532341546313593), KQU(12711859908703927840),
709 	KQU( 1417561172594446813), KQU(17045191024194170604),
710 	KQU( 4101933177604931713), KQU(14708428834203480320),
711 	KQU(17447509264469407724), KQU(14314821973983434255),
712 	KQU(17990472271061617265), KQU( 5087756685841673942),
713 	KQU(12797820586893859939), KQU( 1778128952671092879),
714 	KQU( 3535918530508665898), KQU( 9035729701042481301),
715 	KQU(14808661568277079962), KQU(14587345077537747914),
716 	KQU(11920080002323122708), KQU( 6426515805197278753),
717 	KQU( 3295612216725984831), KQU(11040722532100876120),
718 	KQU(12305952936387598754), KQU(16097391899742004253),
719 	KQU( 4908537335606182208), KQU(12446674552196795504),
720 	KQU(16010497855816895177), KQU( 9194378874788615551),
721 	KQU( 3382957529567613384), KQU( 5154647600754974077),
722 	KQU( 9801822865328396141), KQU( 9023662173919288143),
723 	KQU(17623115353825147868), KQU( 8238115767443015816),
724 	KQU(15811444159859002560), KQU( 9085612528904059661),
725 	KQU( 6888601089398614254), KQU(  258252992894160189),
726 	KQU( 6704363880792428622), KQU( 6114966032147235763),
727 	KQU(11075393882690261875), KQU( 8797664238933620407),
728 	KQU( 5901892006476726920), KQU( 5309780159285518958),
729 	KQU(14940808387240817367), KQU(14642032021449656698),
730 	KQU( 9808256672068504139), KQU( 3670135111380607658),
731 	KQU(11211211097845960152), KQU( 1474304506716695808),
732 	KQU(15843166204506876239), KQU( 7661051252471780561),
733 	KQU(10170905502249418476), KQU( 7801416045582028589),
734 	KQU( 2763981484737053050), KQU( 9491377905499253054),
735 	KQU(16201395896336915095), KQU( 9256513756442782198),
736 	KQU( 5411283157972456034), KQU( 5059433122288321676),
737 	KQU( 4327408006721123357), KQU( 9278544078834433377),
738 	KQU( 7601527110882281612), KQU(11848295896975505251),
739 	KQU(12096998801094735560), KQU(14773480339823506413),
740 	KQU(15586227433895802149), KQU(12786541257830242872),
741 	KQU( 6904692985140503067), KQU( 5309011515263103959),
742 	KQU(12105257191179371066), KQU(14654380212442225037),
743 	KQU( 2556774974190695009), KQU( 4461297399927600261),
744 	KQU(14888225660915118646), KQU(14915459341148291824),
745 	KQU( 2738802166252327631), KQU( 6047155789239131512),
746 	KQU(12920545353217010338), KQU(10697617257007840205),
747 	KQU( 2751585253158203504), KQU(13252729159780047496),
748 	KQU(14700326134672815469), KQU(14082527904374600529),
749 	KQU(16852962273496542070), KQU(17446675504235853907),
750 	KQU(15019600398527572311), KQU(12312781346344081551),
751 	KQU(14524667935039810450), KQU( 5634005663377195738),
752 	KQU(11375574739525000569), KQU( 2423665396433260040),
753 	KQU( 5222836914796015410), KQU( 4397666386492647387),
754 	KQU( 4619294441691707638), KQU(  665088602354770716),
755 	KQU(13246495665281593610), KQU( 6564144270549729409),
756 	KQU(10223216188145661688), KQU( 3961556907299230585),
757 	KQU(11543262515492439914), KQU(16118031437285993790),
758 	KQU( 7143417964520166465), KQU(13295053515909486772),
759 	KQU(   40434666004899675), KQU(17127804194038347164),
760 	KQU( 8599165966560586269), KQU( 8214016749011284903),
761 	KQU(13725130352140465239), KQU( 5467254474431726291),
762 	KQU( 7748584297438219877), KQU(16933551114829772472),
763 	KQU( 2169618439506799400), KQU( 2169787627665113463),
764 	KQU(17314493571267943764), KQU(18053575102911354912),
765 	KQU(11928303275378476973), KQU(11593850925061715550),
766 	KQU(17782269923473589362), KQU( 3280235307704747039),
767 	KQU( 6145343578598685149), KQU(17080117031114086090),
768 	KQU(18066839902983594755), KQU( 6517508430331020706),
769 	KQU( 8092908893950411541), KQU(12558378233386153732),
770 	KQU( 4476532167973132976), KQU(16081642430367025016),
771 	KQU( 4233154094369139361), KQU( 8693630486693161027),
772 	KQU(11244959343027742285), KQU(12273503967768513508),
773 	KQU(14108978636385284876), KQU( 7242414665378826984),
774 	KQU( 6561316938846562432), KQU( 8601038474994665795),
775 	KQU(17532942353612365904), KQU(17940076637020912186),
776 	KQU( 7340260368823171304), KQU( 7061807613916067905),
777 	KQU(10561734935039519326), KQU(17990796503724650862),
778 	KQU( 6208732943911827159), KQU(  359077562804090617),
779 	KQU(14177751537784403113), KQU(10659599444915362902),
780 	KQU(15081727220615085833), KQU(13417573895659757486),
781 	KQU(15513842342017811524), KQU(11814141516204288231),
782 	KQU( 1827312513875101814), KQU( 2804611699894603103),
783 	KQU(17116500469975602763), KQU(12270191815211952087),
784 	KQU(12256358467786024988), KQU(18435021722453971267),
785 	KQU(  671330264390865618), KQU(  476504300460286050),
786 	KQU(16465470901027093441), KQU( 4047724406247136402),
787 	KQU( 1322305451411883346), KQU( 1388308688834322280),
788 	KQU( 7303989085269758176), KQU( 9323792664765233642),
789 	KQU( 4542762575316368936), KQU(17342696132794337618),
790 	KQU( 4588025054768498379), KQU(13415475057390330804),
791 	KQU(17880279491733405570), KQU(10610553400618620353),
792 	KQU( 3180842072658960139), KQU(13002966655454270120),
793 	KQU( 1665301181064982826), KQU( 7083673946791258979),
794 	KQU(  190522247122496820), KQU(17388280237250677740),
795 	KQU( 8430770379923642945), KQU(12987180971921668584),
796 	KQU( 2311086108365390642), KQU( 2870984383579822345),
797 	KQU(14014682609164653318), KQU(14467187293062251484),
798 	KQU(  192186361147413298), KQU(15171951713531796524),
799 	KQU( 9900305495015948728), KQU(17958004775615466344),
800 	KQU(14346380954498606514), KQU(18040047357617407096),
801 	KQU( 5035237584833424532), KQU(15089555460613972287),
802 	KQU( 4131411873749729831), KQU( 1329013581168250330),
803 	KQU(10095353333051193949), KQU(10749518561022462716),
804 	KQU( 9050611429810755847), KQU(15022028840236655649),
805 	KQU( 8775554279239748298), KQU(13105754025489230502),
806 	KQU(15471300118574167585), KQU(   89864764002355628),
807 	KQU( 8776416323420466637), KQU( 5280258630612040891),
808 	KQU( 2719174488591862912), KQU( 7599309137399661994),
809 	KQU(15012887256778039979), KQU(14062981725630928925),
810 	KQU(12038536286991689603), KQU( 7089756544681775245),
811 	KQU(10376661532744718039), KQU( 1265198725901533130),
812 	KQU(13807996727081142408), KQU( 2935019626765036403),
813 	KQU( 7651672460680700141), KQU( 3644093016200370795),
814 	KQU( 2840982578090080674), KQU(17956262740157449201),
815 	KQU(18267979450492880548), KQU(11799503659796848070),
816 	KQU( 9942537025669672388), KQU(11886606816406990297),
817 	KQU( 5488594946437447576), KQU( 7226714353282744302),
818 	KQU( 3784851653123877043), KQU(  878018453244803041),
819 	KQU(12110022586268616085), KQU(  734072179404675123),
820 	KQU(11869573627998248542), KQU(  469150421297783998),
821 	KQU(  260151124912803804), KQU(11639179410120968649),
822 	KQU( 9318165193840846253), KQU(12795671722734758075),
823 	KQU(15318410297267253933), KQU(  691524703570062620),
824 	KQU( 5837129010576994601), KQU(15045963859726941052),
825 	KQU( 5850056944932238169), KQU(12017434144750943807),
826 	KQU( 7447139064928956574), KQU( 3101711812658245019),
827 	KQU(16052940704474982954), KQU(18195745945986994042),
828 	KQU( 8932252132785575659), KQU(13390817488106794834),
829 	KQU(11582771836502517453), KQU( 4964411326683611686),
830 	KQU( 2195093981702694011), KQU(14145229538389675669),
831 	KQU(16459605532062271798), KQU(  866316924816482864),
832 	KQU( 4593041209937286377), KQU( 8415491391910972138),
833 	KQU( 4171236715600528969), KQU(16637569303336782889),
834 	KQU( 2002011073439212680), KQU(17695124661097601411),
835 	KQU( 4627687053598611702), KQU( 7895831936020190403),
836 	KQU( 8455951300917267802), KQU( 2923861649108534854),
837 	KQU( 8344557563927786255), KQU( 6408671940373352556),
838 	KQU(12210227354536675772), KQU(14294804157294222295),
839 	KQU(10103022425071085127), KQU(10092959489504123771),
840 	KQU( 6554774405376736268), KQU(12629917718410641774),
841 	KQU( 6260933257596067126), KQU( 2460827021439369673),
842 	KQU( 2541962996717103668), KQU(  597377203127351475),
843 	KQU( 5316984203117315309), KQU( 4811211393563241961),
844 	KQU(13119698597255811641), KQU( 8048691512862388981),
845 	KQU(10216818971194073842), KQU( 4612229970165291764),
846 	KQU(10000980798419974770), KQU( 6877640812402540687),
847 	KQU( 1488727563290436992), KQU( 2227774069895697318),
848 	KQU(11237754507523316593), KQU(13478948605382290972),
849 	KQU( 1963583846976858124), KQU( 5512309205269276457),
850 	KQU( 3972770164717652347), KQU( 3841751276198975037),
851 	KQU(10283343042181903117), KQU( 8564001259792872199),
852 	KQU(16472187244722489221), KQU( 8953493499268945921),
853 	KQU( 3518747340357279580), KQU( 4003157546223963073),
854 	KQU( 3270305958289814590), KQU( 3966704458129482496),
855 	KQU( 8122141865926661939), KQU(14627734748099506653),
856 	KQU(13064426990862560568), KQU( 2414079187889870829),
857 	KQU( 5378461209354225306), KQU(10841985740128255566),
858 	KQU(  538582442885401738), KQU( 7535089183482905946),
859 	KQU(16117559957598879095), KQU( 8477890721414539741),
860 	KQU( 1459127491209533386), KQU(17035126360733620462),
861 	KQU( 8517668552872379126), KQU(10292151468337355014),
862 	KQU(17081267732745344157), KQU(13751455337946087178),
863 	KQU(14026945459523832966), KQU( 6653278775061723516),
864 	KQU(10619085543856390441), KQU( 2196343631481122885),
865 	KQU(10045966074702826136), KQU(10082317330452718282),
866 	KQU( 5920859259504831242), KQU( 9951879073426540617),
867 	KQU( 7074696649151414158), KQU(15808193543879464318),
868 	KQU( 7385247772746953374), KQU( 3192003544283864292),
869 	KQU(18153684490917593847), KQU(12423498260668568905),
870 	KQU(10957758099756378169), KQU(11488762179911016040),
871 	KQU( 2099931186465333782), KQU(11180979581250294432),
872 	KQU( 8098916250668367933), KQU( 3529200436790763465),
873 	KQU(12988418908674681745), KQU( 6147567275954808580),
874 	KQU( 3207503344604030989), KQU(10761592604898615360),
875 	KQU(  229854861031893504), KQU( 8809853962667144291),
876 	KQU(13957364469005693860), KQU( 7634287665224495886),
877 	KQU(12353487366976556874), KQU( 1134423796317152034),
878 	KQU( 2088992471334107068), KQU( 7393372127190799698),
879 	KQU( 1845367839871058391), KQU(  207922563987322884),
880 	KQU(11960870813159944976), KQU(12182120053317317363),
881 	KQU(17307358132571709283), KQU(13871081155552824936),
882 	KQU(18304446751741566262), KQU( 7178705220184302849),
883 	KQU(10929605677758824425), KQU(16446976977835806844),
884 	KQU(13723874412159769044), KQU( 6942854352100915216),
885 	KQU( 1726308474365729390), KQU( 2150078766445323155),
886 	KQU(15345558947919656626), KQU(12145453828874527201),
887 	KQU( 2054448620739726849), KQU( 2740102003352628137),
888 	KQU(11294462163577610655), KQU(  756164283387413743),
889 	KQU(17841144758438810880), KQU(10802406021185415861),
890 	KQU( 8716455530476737846), KQU( 6321788834517649606),
891 	KQU(14681322910577468426), KQU(17330043563884336387),
892 	KQU(12701802180050071614), KQU(14695105111079727151),
893 	KQU( 5112098511654172830), KQU( 4957505496794139973),
894 	KQU( 8270979451952045982), KQU(12307685939199120969),
895 	KQU(12425799408953443032), KQU( 8376410143634796588),
896 	KQU(16621778679680060464), KQU( 3580497854566660073),
897 	KQU( 1122515747803382416), KQU(  857664980960597599),
898 	KQU( 6343640119895925918), KQU(12878473260854462891),
899 	KQU(10036813920765722626), KQU(14451335468363173812),
900 	KQU( 5476809692401102807), KQU(16442255173514366342),
901 	KQU(13060203194757167104), KQU(14354124071243177715),
902 	KQU(15961249405696125227), KQU(13703893649690872584),
903 	KQU(  363907326340340064), KQU( 6247455540491754842),
904 	KQU(12242249332757832361), KQU(  156065475679796717),
905 	KQU( 9351116235749732355), KQU( 4590350628677701405),
906 	KQU( 1671195940982350389), KQU(13501398458898451905),
907 	KQU( 6526341991225002255), KQU( 1689782913778157592),
908 	KQU( 7439222350869010334), KQU(13975150263226478308),
909 	KQU(11411961169932682710), KQU(17204271834833847277),
910 	KQU(  541534742544435367), KQU( 6591191931218949684),
911 	KQU( 2645454775478232486), KQU( 4322857481256485321),
912 	KQU( 8477416487553065110), KQU(12902505428548435048),
913 	KQU(  971445777981341415), KQU(14995104682744976712),
914 	KQU( 4243341648807158063), KQU( 8695061252721927661),
915 	KQU( 5028202003270177222), KQU( 2289257340915567840),
916 	KQU(13870416345121866007), KQU(13994481698072092233),
917 	KQU( 6912785400753196481), KQU( 2278309315841980139),
918 	KQU( 4329765449648304839), KQU( 5963108095785485298),
919 	KQU( 4880024847478722478), KQU(16015608779890240947),
920 	KQU( 1866679034261393544), KQU(  914821179919731519),
921 	KQU( 9643404035648760131), KQU( 2418114953615593915),
922 	KQU(  944756836073702374), KQU(15186388048737296834),
923 	KQU( 7723355336128442206), KQU( 7500747479679599691),
924 	KQU(18013961306453293634), KQU( 2315274808095756456),
925 	KQU(13655308255424029566), KQU(17203800273561677098),
926 	KQU( 1382158694422087756), KQU( 5090390250309588976),
927 	KQU(  517170818384213989), KQU( 1612709252627729621),
928 	KQU( 1330118955572449606), KQU(  300922478056709885),
929 	KQU(18115693291289091987), KQU(13491407109725238321),
930 	KQU(15293714633593827320), KQU( 5151539373053314504),
931 	KQU( 5951523243743139207), KQU(14459112015249527975),
932 	KQU( 5456113959000700739), KQU( 3877918438464873016),
933 	KQU(12534071654260163555), KQU(15871678376893555041),
934 	KQU(11005484805712025549), KQU(16353066973143374252),
935 	KQU( 4358331472063256685), KQU( 8268349332210859288),
936 	KQU(12485161590939658075), KQU(13955993592854471343),
937 	KQU( 5911446886848367039), KQU(14925834086813706974),
938 	KQU( 6590362597857994805), KQU( 1280544923533661875),
939 	KQU( 1637756018947988164), KQU( 4734090064512686329),
940 	KQU(16693705263131485912), KQU( 6834882340494360958),
941 	KQU( 8120732176159658505), KQU( 2244371958905329346),
942 	KQU(10447499707729734021), KQU( 7318742361446942194),
943 	KQU( 8032857516355555296), KQU(14023605983059313116),
944 	KQU( 1032336061815461376), KQU( 9840995337876562612),
945 	KQU( 9869256223029203587), KQU(12227975697177267636),
946 	KQU(12728115115844186033), KQU( 7752058479783205470),
947 	KQU(  729733219713393087), KQU(12954017801239007622)
948 };
949 static const uint64_t init_by_array_64_expected[] = {
950 	KQU( 2100341266307895239), KQU( 8344256300489757943),
951 	KQU(15687933285484243894), KQU( 8268620370277076319),
952 	KQU(12371852309826545459), KQU( 8800491541730110238),
953 	KQU(18113268950100835773), KQU( 2886823658884438119),
954 	KQU( 3293667307248180724), KQU( 9307928143300172731),
955 	KQU( 7688082017574293629), KQU(  900986224735166665),
956 	KQU( 9977972710722265039), KQU( 6008205004994830552),
957 	KQU(  546909104521689292), KQU( 7428471521869107594),
958 	KQU(14777563419314721179), KQU(16116143076567350053),
959 	KQU( 5322685342003142329), KQU( 4200427048445863473),
960 	KQU( 4693092150132559146), KQU(13671425863759338582),
961 	KQU( 6747117460737639916), KQU( 4732666080236551150),
962 	KQU( 5912839950611941263), KQU( 3903717554504704909),
963 	KQU( 2615667650256786818), KQU(10844129913887006352),
964 	KQU(13786467861810997820), KQU(14267853002994021570),
965 	KQU(13767807302847237439), KQU(16407963253707224617),
966 	KQU( 4802498363698583497), KQU( 2523802839317209764),
967 	KQU( 3822579397797475589), KQU( 8950320572212130610),
968 	KQU( 3745623504978342534), KQU(16092609066068482806),
969 	KQU( 9817016950274642398), KQU(10591660660323829098),
970 	KQU(11751606650792815920), KQU( 5122873818577122211),
971 	KQU(17209553764913936624), KQU( 6249057709284380343),
972 	KQU(15088791264695071830), KQU(15344673071709851930),
973 	KQU( 4345751415293646084), KQU( 2542865750703067928),
974 	KQU(13520525127852368784), KQU(18294188662880997241),
975 	KQU( 3871781938044881523), KQU( 2873487268122812184),
976 	KQU(15099676759482679005), KQU(15442599127239350490),
977 	KQU( 6311893274367710888), KQU( 3286118760484672933),
978 	KQU( 4146067961333542189), KQU(13303942567897208770),
979 	KQU( 8196013722255630418), KQU( 4437815439340979989),
980 	KQU(15433791533450605135), KQU( 4254828956815687049),
981 	KQU( 1310903207708286015), KQU(10529182764462398549),
982 	KQU(14900231311660638810), KQU( 9727017277104609793),
983 	KQU( 1821308310948199033), KQU(11628861435066772084),
984 	KQU( 9469019138491546924), KQU( 3145812670532604988),
985 	KQU( 9938468915045491919), KQU( 1562447430672662142),
986 	KQU(13963995266697989134), KQU( 3356884357625028695),
987 	KQU( 4499850304584309747), KQU( 8456825817023658122),
988 	KQU(10859039922814285279), KQU( 8099512337972526555),
989 	KQU(  348006375109672149), KQU(11919893998241688603),
990 	KQU( 1104199577402948826), KQU(16689191854356060289),
991 	KQU(10992552041730168078), KQU( 7243733172705465836),
992 	KQU( 5668075606180319560), KQU(18182847037333286970),
993 	KQU( 4290215357664631322), KQU( 4061414220791828613),
994 	KQU(13006291061652989604), KQU( 7140491178917128798),
995 	KQU(12703446217663283481), KQU( 5500220597564558267),
996 	KQU(10330551509971296358), KQU(15958554768648714492),
997 	KQU( 5174555954515360045), KQU( 1731318837687577735),
998 	KQU( 3557700801048354857), KQU(13764012341928616198),
999 	KQU(13115166194379119043), KQU( 7989321021560255519),
1000 	KQU( 2103584280905877040), KQU( 9230788662155228488),
1001 	KQU(16396629323325547654), KQU(  657926409811318051),
1002 	KQU(15046700264391400727), KQU( 5120132858771880830),
1003 	KQU( 7934160097989028561), KQU( 6963121488531976245),
1004 	KQU(17412329602621742089), KQU(15144843053931774092),
1005 	KQU(17204176651763054532), KQU(13166595387554065870),
1006 	KQU( 8590377810513960213), KQU( 5834365135373991938),
1007 	KQU( 7640913007182226243), KQU( 3479394703859418425),
1008 	KQU(16402784452644521040), KQU( 4993979809687083980),
1009 	KQU(13254522168097688865), KQU(15643659095244365219),
1010 	KQU( 5881437660538424982), KQU(11174892200618987379),
1011 	KQU(  254409966159711077), KQU(17158413043140549909),
1012 	KQU( 3638048789290376272), KQU( 1376816930299489190),
1013 	KQU( 4622462095217761923), KQU(15086407973010263515),
1014 	KQU(13253971772784692238), KQU( 5270549043541649236),
1015 	KQU(11182714186805411604), KQU(12283846437495577140),
1016 	KQU( 5297647149908953219), KQU(10047451738316836654),
1017 	KQU( 4938228100367874746), KQU(12328523025304077923),
1018 	KQU( 3601049438595312361), KQU( 9313624118352733770),
1019 	KQU(13322966086117661798), KQU(16660005705644029394),
1020 	KQU(11337677526988872373), KQU(13869299102574417795),
1021 	KQU(15642043183045645437), KQU( 3021755569085880019),
1022 	KQU( 4979741767761188161), KQU(13679979092079279587),
1023 	KQU( 3344685842861071743), KQU(13947960059899588104),
1024 	KQU(  305806934293368007), KQU( 5749173929201650029),
1025 	KQU(11123724852118844098), KQU(15128987688788879802),
1026 	KQU(15251651211024665009), KQU( 7689925933816577776),
1027 	KQU(16732804392695859449), KQU(17087345401014078468),
1028 	KQU(14315108589159048871), KQU( 4820700266619778917),
1029 	KQU(16709637539357958441), KQU( 4936227875177351374),
1030 	KQU( 2137907697912987247), KQU(11628565601408395420),
1031 	KQU( 2333250549241556786), KQU( 5711200379577778637),
1032 	KQU( 5170680131529031729), KQU(12620392043061335164),
1033 	KQU(   95363390101096078), KQU( 5487981914081709462),
1034 	KQU( 1763109823981838620), KQU( 3395861271473224396),
1035 	KQU( 1300496844282213595), KQU( 6894316212820232902),
1036 	KQU(10673859651135576674), KQU( 5911839658857903252),
1037 	KQU(17407110743387299102), KQU( 8257427154623140385),
1038 	KQU(11389003026741800267), KQU( 4070043211095013717),
1039 	KQU(11663806997145259025), KQU(15265598950648798210),
1040 	KQU(  630585789434030934), KQU( 3524446529213587334),
1041 	KQU( 7186424168495184211), KQU(10806585451386379021),
1042 	KQU(11120017753500499273), KQU( 1586837651387701301),
1043 	KQU(17530454400954415544), KQU( 9991670045077880430),
1044 	KQU( 7550997268990730180), KQU( 8640249196597379304),
1045 	KQU( 3522203892786893823), KQU(10401116549878854788),
1046 	KQU(13690285544733124852), KQU( 8295785675455774586),
1047 	KQU(15535716172155117603), KQU( 3112108583723722511),
1048 	KQU(17633179955339271113), KQU(18154208056063759375),
1049 	KQU( 1866409236285815666), KQU(13326075895396412882),
1050 	KQU( 8756261842948020025), KQU( 6281852999868439131),
1051 	KQU(15087653361275292858), KQU(10333923911152949397),
1052 	KQU( 5265567645757408500), KQU(12728041843210352184),
1053 	KQU( 6347959327507828759), KQU(  154112802625564758),
1054 	KQU(18235228308679780218), KQU( 3253805274673352418),
1055 	KQU( 4849171610689031197), KQU(17948529398340432518),
1056 	KQU(13803510475637409167), KQU(13506570190409883095),
1057 	KQU(15870801273282960805), KQU( 8451286481299170773),
1058 	KQU( 9562190620034457541), KQU( 8518905387449138364),
1059 	KQU(12681306401363385655), KQU( 3788073690559762558),
1060 	KQU( 5256820289573487769), KQU( 2752021372314875467),
1061 	KQU( 6354035166862520716), KQU( 4328956378309739069),
1062 	KQU(  449087441228269600), KQU( 5533508742653090868),
1063 	KQU( 1260389420404746988), KQU(18175394473289055097),
1064 	KQU( 1535467109660399420), KQU( 8818894282874061442),
1065 	KQU(12140873243824811213), KQU(15031386653823014946),
1066 	KQU( 1286028221456149232), KQU( 6329608889367858784),
1067 	KQU( 9419654354945132725), KQU( 6094576547061672379),
1068 	KQU(17706217251847450255), KQU( 1733495073065878126),
1069 	KQU(16918923754607552663), KQU( 8881949849954945044),
1070 	KQU(12938977706896313891), KQU(14043628638299793407),
1071 	KQU(18393874581723718233), KQU( 6886318534846892044),
1072 	KQU(14577870878038334081), KQU(13541558383439414119),
1073 	KQU(13570472158807588273), KQU(18300760537910283361),
1074 	KQU(  818368572800609205), KQU( 1417000585112573219),
1075 	KQU(12337533143867683655), KQU(12433180994702314480),
1076 	KQU(  778190005829189083), KQU(13667356216206524711),
1077 	KQU( 9866149895295225230), KQU(11043240490417111999),
1078 	KQU( 1123933826541378598), KQU( 6469631933605123610),
1079 	KQU(14508554074431980040), KQU(13918931242962026714),
1080 	KQU( 2870785929342348285), KQU(14786362626740736974),
1081 	KQU(13176680060902695786), KQU( 9591778613541679456),
1082 	KQU( 9097662885117436706), KQU(  749262234240924947),
1083 	KQU( 1944844067793307093), KQU( 4339214904577487742),
1084 	KQU( 8009584152961946551), KQU(16073159501225501777),
1085 	KQU( 3335870590499306217), KQU(17088312653151202847),
1086 	KQU( 3108893142681931848), KQU(16636841767202792021),
1087 	KQU(10423316431118400637), KQU( 8008357368674443506),
1088 	KQU(11340015231914677875), KQU(17687896501594936090),
1089 	KQU(15173627921763199958), KQU(  542569482243721959),
1090 	KQU(15071714982769812975), KQU( 4466624872151386956),
1091 	KQU( 1901780715602332461), KQU( 9822227742154351098),
1092 	KQU( 1479332892928648780), KQU( 6981611948382474400),
1093 	KQU( 7620824924456077376), KQU(14095973329429406782),
1094 	KQU( 7902744005696185404), KQU(15830577219375036920),
1095 	KQU(10287076667317764416), KQU(12334872764071724025),
1096 	KQU( 4419302088133544331), KQU(14455842851266090520),
1097 	KQU(12488077416504654222), KQU( 7953892017701886766),
1098 	KQU( 6331484925529519007), KQU( 4902145853785030022),
1099 	KQU(17010159216096443073), KQU(11945354668653886087),
1100 	KQU(15112022728645230829), KQU(17363484484522986742),
1101 	KQU( 4423497825896692887), KQU( 8155489510809067471),
1102 	KQU(  258966605622576285), KQU( 5462958075742020534),
1103 	KQU( 6763710214913276228), KQU( 2368935183451109054),
1104 	KQU(14209506165246453811), KQU( 2646257040978514881),
1105 	KQU( 3776001911922207672), KQU( 1419304601390147631),
1106 	KQU(14987366598022458284), KQU( 3977770701065815721),
1107 	KQU(  730820417451838898), KQU( 3982991703612885327),
1108 	KQU( 2803544519671388477), KQU(17067667221114424649),
1109 	KQU( 2922555119737867166), KQU( 1989477584121460932),
1110 	KQU(15020387605892337354), KQU( 9293277796427533547),
1111 	KQU(10722181424063557247), KQU(16704542332047511651),
1112 	KQU( 5008286236142089514), KQU(16174732308747382540),
1113 	KQU(17597019485798338402), KQU(13081745199110622093),
1114 	KQU( 8850305883842258115), KQU(12723629125624589005),
1115 	KQU( 8140566453402805978), KQU(15356684607680935061),
1116 	KQU(14222190387342648650), KQU(11134610460665975178),
1117 	KQU( 1259799058620984266), KQU(13281656268025610041),
1118 	KQU(  298262561068153992), KQU(12277871700239212922),
1119 	KQU(13911297774719779438), KQU(16556727962761474934),
1120 	KQU(17903010316654728010), KQU( 9682617699648434744),
1121 	KQU(14757681836838592850), KQU( 1327242446558524473),
1122 	KQU(11126645098780572792), KQU( 1883602329313221774),
1123 	KQU( 2543897783922776873), KQU(15029168513767772842),
1124 	KQU(12710270651039129878), KQU(16118202956069604504),
1125 	KQU(15010759372168680524), KQU( 2296827082251923948),
1126 	KQU(10793729742623518101), KQU(13829764151845413046),
1127 	KQU(17769301223184451213), KQU( 3118268169210783372),
1128 	KQU(17626204544105123127), KQU( 7416718488974352644),
1129 	KQU(10450751996212925994), KQU( 9352529519128770586),
1130 	KQU(  259347569641110140), KQU( 8048588892269692697),
1131 	KQU( 1774414152306494058), KQU(10669548347214355622),
1132 	KQU(13061992253816795081), KQU(18432677803063861659),
1133 	KQU( 8879191055593984333), KQU(12433753195199268041),
1134 	KQU(14919392415439730602), KQU( 6612848378595332963),
1135 	KQU( 6320986812036143628), KQU(10465592420226092859),
1136 	KQU( 4196009278962570808), KQU( 3747816564473572224),
1137 	KQU(17941203486133732898), KQU( 2350310037040505198),
1138 	KQU( 5811779859134370113), KQU(10492109599506195126),
1139 	KQU( 7699650690179541274), KQU( 1954338494306022961),
1140 	KQU(14095816969027231152), KQU( 5841346919964852061),
1141 	KQU(14945969510148214735), KQU( 3680200305887550992),
1142 	KQU( 6218047466131695792), KQU( 8242165745175775096),
1143 	KQU(11021371934053307357), KQU( 1265099502753169797),
1144 	KQU( 4644347436111321718), KQU( 3609296916782832859),
1145 	KQU( 8109807992218521571), KQU(18387884215648662020),
1146 	KQU(14656324896296392902), KQU(17386819091238216751),
1147 	KQU(17788300878582317152), KQU( 7919446259742399591),
1148 	KQU( 4466613134576358004), KQU(12928181023667938509),
1149 	KQU(13147446154454932030), KQU(16552129038252734620),
1150 	KQU( 8395299403738822450), KQU(11313817655275361164),
1151 	KQU(  434258809499511718), KQU( 2074882104954788676),
1152 	KQU( 7929892178759395518), KQU( 9006461629105745388),
1153 	KQU( 5176475650000323086), KQU(11128357033468341069),
1154 	KQU(12026158851559118955), KQU(14699716249471156500),
1155 	KQU(  448982497120206757), KQU( 4156475356685519900),
1156 	KQU( 6063816103417215727), KQU(10073289387954971479),
1157 	KQU( 8174466846138590962), KQU( 2675777452363449006),
1158 	KQU( 9090685420572474281), KQU( 6659652652765562060),
1159 	KQU(12923120304018106621), KQU(11117480560334526775),
1160 	KQU(  937910473424587511), KQU( 1838692113502346645),
1161 	KQU(11133914074648726180), KQU( 7922600945143884053),
1162 	KQU(13435287702700959550), KQU( 5287964921251123332),
1163 	KQU(11354875374575318947), KQU(17955724760748238133),
1164 	KQU(13728617396297106512), KQU( 4107449660118101255),
1165 	KQU( 1210269794886589623), KQU(11408687205733456282),
1166 	KQU( 4538354710392677887), KQU(13566803319341319267),
1167 	KQU(17870798107734050771), KQU( 3354318982568089135),
1168 	KQU( 9034450839405133651), KQU(13087431795753424314),
1169 	KQU(  950333102820688239), KQU( 1968360654535604116),
1170 	KQU(16840551645563314995), KQU( 8867501803892924995),
1171 	KQU(11395388644490626845), KQU( 1529815836300732204),
1172 	KQU(13330848522996608842), KQU( 1813432878817504265),
1173 	KQU( 2336867432693429560), KQU(15192805445973385902),
1174 	KQU( 2528593071076407877), KQU(  128459777936689248),
1175 	KQU( 9976345382867214866), KQU( 6208885766767996043),
1176 	KQU(14982349522273141706), KQU( 3099654362410737822),
1177 	KQU(13776700761947297661), KQU( 8806185470684925550),
1178 	KQU( 8151717890410585321), KQU(  640860591588072925),
1179 	KQU(14592096303937307465), KQU( 9056472419613564846),
1180 	KQU(14861544647742266352), KQU(12703771500398470216),
1181 	KQU( 3142372800384138465), KQU( 6201105606917248196),
1182 	KQU(18337516409359270184), KQU(15042268695665115339),
1183 	KQU(15188246541383283846), KQU(12800028693090114519),
1184 	KQU( 5992859621101493472), KQU(18278043971816803521),
1185 	KQU( 9002773075219424560), KQU( 7325707116943598353),
1186 	KQU( 7930571931248040822), KQU( 5645275869617023448),
1187 	KQU( 7266107455295958487), KQU( 4363664528273524411),
1188 	KQU(14313875763787479809), KQU(17059695613553486802),
1189 	KQU( 9247761425889940932), KQU(13704726459237593128),
1190 	KQU( 2701312427328909832), KQU(17235532008287243115),
1191 	KQU(14093147761491729538), KQU( 6247352273768386516),
1192 	KQU( 8268710048153268415), KQU( 7985295214477182083),
1193 	KQU(15624495190888896807), KQU( 3772753430045262788),
1194 	KQU( 9133991620474991698), KQU( 5665791943316256028),
1195 	KQU( 7551996832462193473), KQU(13163729206798953877),
1196 	KQU( 9263532074153846374), KQU( 1015460703698618353),
1197 	KQU(17929874696989519390), KQU(18257884721466153847),
1198 	KQU(16271867543011222991), KQU( 3905971519021791941),
1199 	KQU(16814488397137052085), KQU( 1321197685504621613),
1200 	KQU( 2870359191894002181), KQU(14317282970323395450),
1201 	KQU(13663920845511074366), KQU( 2052463995796539594),
1202 	KQU(14126345686431444337), KQU( 1727572121947022534),
1203 	KQU(17793552254485594241), KQU( 6738857418849205750),
1204 	KQU( 1282987123157442952), KQU(16655480021581159251),
1205 	KQU( 6784587032080183866), KQU(14726758805359965162),
1206 	KQU( 7577995933961987349), KQU(12539609320311114036),
1207 	KQU(10789773033385439494), KQU( 8517001497411158227),
1208 	KQU(10075543932136339710), KQU(14838152340938811081),
1209 	KQU( 9560840631794044194), KQU(17445736541454117475),
1210 	KQU(10633026464336393186), KQU(15705729708242246293),
1211 	KQU( 1117517596891411098), KQU( 4305657943415886942),
1212 	KQU( 4948856840533979263), KQU(16071681989041789593),
1213 	KQU(13723031429272486527), KQU( 7639567622306509462),
1214 	KQU(12670424537483090390), KQU( 9715223453097197134),
1215 	KQU( 5457173389992686394), KQU(  289857129276135145),
1216 	KQU(17048610270521972512), KQU(  692768013309835485),
1217 	KQU(14823232360546632057), KQU(18218002361317895936),
1218 	KQU( 3281724260212650204), KQU(16453957266549513795),
1219 	KQU( 8592711109774511881), KQU(  929825123473369579),
1220 	KQU(15966784769764367791), KQU( 9627344291450607588),
1221 	KQU(10849555504977813287), KQU( 9234566913936339275),
1222 	KQU( 6413807690366911210), KQU(10862389016184219267),
1223 	KQU(13842504799335374048), KQU( 1531994113376881174),
1224 	KQU( 2081314867544364459), KQU(16430628791616959932),
1225 	KQU( 8314714038654394368), KQU( 9155473892098431813),
1226 	KQU(12577843786670475704), KQU( 4399161106452401017),
1227 	KQU( 1668083091682623186), KQU( 1741383777203714216),
1228 	KQU( 2162597285417794374), KQU(15841980159165218736),
1229 	KQU( 1971354603551467079), KQU( 1206714764913205968),
1230 	KQU( 4790860439591272330), KQU(14699375615594055799),
1231 	KQU( 8374423871657449988), KQU(10950685736472937738),
1232 	KQU(  697344331343267176), KQU(10084998763118059810),
1233 	KQU(12897369539795983124), KQU(12351260292144383605),
1234 	KQU( 1268810970176811234), KQU( 7406287800414582768),
1235 	KQU(  516169557043807831), KQU( 5077568278710520380),
1236 	KQU( 3828791738309039304), KQU( 7721974069946943610),
1237 	KQU( 3534670260981096460), KQU( 4865792189600584891),
1238 	KQU(16892578493734337298), KQU( 9161499464278042590),
1239 	KQU(11976149624067055931), KQU(13219479887277343990),
1240 	KQU(14161556738111500680), KQU(14670715255011223056),
1241 	KQU( 4671205678403576558), KQU(12633022931454259781),
1242 	KQU(14821376219869187646), KQU(  751181776484317028),
1243 	KQU( 2192211308839047070), KQU(11787306362361245189),
1244 	KQU(10672375120744095707), KQU( 4601972328345244467),
1245 	KQU(15457217788831125879), KQU( 8464345256775460809),
1246 	KQU(10191938789487159478), KQU( 6184348739615197613),
1247 	KQU(11425436778806882100), KQU( 2739227089124319793),
1248 	KQU(  461464518456000551), KQU( 4689850170029177442),
1249 	KQU( 6120307814374078625), KQU(11153579230681708671),
1250 	KQU( 7891721473905347926), KQU(10281646937824872400),
1251 	KQU( 3026099648191332248), KQU( 8666750296953273818),
1252 	KQU(14978499698844363232), KQU(13303395102890132065),
1253 	KQU( 8182358205292864080), KQU(10560547713972971291),
1254 	KQU(11981635489418959093), KQU( 3134621354935288409),
1255 	KQU(11580681977404383968), KQU(14205530317404088650),
1256 	KQU( 5997789011854923157), KQU(13659151593432238041),
1257 	KQU(11664332114338865086), KQU( 7490351383220929386),
1258 	KQU( 7189290499881530378), KQU(15039262734271020220),
1259 	KQU( 2057217285976980055), KQU(  555570804905355739),
1260 	KQU(11235311968348555110), KQU(13824557146269603217),
1261 	KQU(16906788840653099693), KQU( 7222878245455661677),
1262 	KQU( 5245139444332423756), KQU( 4723748462805674292),
1263 	KQU(12216509815698568612), KQU(17402362976648951187),
1264 	KQU(17389614836810366768), KQU( 4880936484146667711),
1265 	KQU( 9085007839292639880), KQU(13837353458498535449),
1266 	KQU(11914419854360366677), KQU(16595890135313864103),
1267 	KQU( 6313969847197627222), KQU(18296909792163910431),
1268 	KQU(10041780113382084042), KQU( 2499478551172884794),
1269 	KQU(11057894246241189489), KQU( 9742243032389068555),
1270 	KQU(12838934582673196228), KQU(13437023235248490367),
1271 	KQU(13372420669446163240), KQU( 6752564244716909224),
1272 	KQU( 7157333073400313737), KQU(12230281516370654308),
1273 	KQU( 1182884552219419117), KQU( 2955125381312499218),
1274 	KQU(10308827097079443249), KQU( 1337648572986534958),
1275 	KQU(16378788590020343939), KQU(  108619126514420935),
1276 	KQU( 3990981009621629188), KQU( 5460953070230946410),
1277 	KQU( 9703328329366531883), KQU(13166631489188077236),
1278 	KQU( 1104768831213675170), KQU( 3447930458553877908),
1279 	KQU( 8067172487769945676), KQU( 5445802098190775347),
1280 	KQU( 3244840981648973873), KQU(17314668322981950060),
1281 	KQU( 5006812527827763807), KQU(18158695070225526260),
1282 	KQU( 2824536478852417853), KQU(13974775809127519886),
1283 	KQU( 9814362769074067392), KQU(17276205156374862128),
1284 	KQU(11361680725379306967), KQU( 3422581970382012542),
1285 	KQU(11003189603753241266), KQU(11194292945277862261),
1286 	KQU( 6839623313908521348), KQU(11935326462707324634),
1287 	KQU( 1611456788685878444), KQU(13112620989475558907),
1288 	KQU(  517659108904450427), KQU(13558114318574407624),
1289 	KQU(15699089742731633077), KQU( 4988979278862685458),
1290 	KQU( 8111373583056521297), KQU( 3891258746615399627),
1291 	KQU( 8137298251469718086), KQU(12748663295624701649),
1292 	KQU( 4389835683495292062), KQU( 5775217872128831729),
1293 	KQU( 9462091896405534927), KQU( 8498124108820263989),
1294 	KQU( 8059131278842839525), KQU(10503167994254090892),
1295 	KQU(11613153541070396656), KQU(18069248738504647790),
1296 	KQU(  570657419109768508), KQU( 3950574167771159665),
1297 	KQU( 5514655599604313077), KQU( 2908460854428484165),
1298 	KQU(10777722615935663114), KQU(12007363304839279486),
1299 	KQU( 9800646187569484767), KQU( 8795423564889864287),
1300 	KQU(14257396680131028419), KQU( 6405465117315096498),
1301 	KQU( 7939411072208774878), KQU(17577572378528990006),
1302 	KQU(14785873806715994850), KQU(16770572680854747390),
1303 	KQU(18127549474419396481), KQU(11637013449455757750),
1304 	KQU(14371851933996761086), KQU( 3601181063650110280),
1305 	KQU( 4126442845019316144), KQU(10198287239244320669),
1306 	KQU(18000169628555379659), KQU(18392482400739978269),
1307 	KQU( 6219919037686919957), KQU( 3610085377719446052),
1308 	KQU( 2513925039981776336), KQU(16679413537926716955),
1309 	KQU(12903302131714909434), KQU( 5581145789762985009),
1310 	KQU(12325955044293303233), KQU(17216111180742141204),
1311 	KQU( 6321919595276545740), KQU( 3507521147216174501),
1312 	KQU( 9659194593319481840), KQU(11473976005975358326),
1313 	KQU(14742730101435987026), KQU(  492845897709954780),
1314 	KQU(16976371186162599676), KQU(17712703422837648655),
1315 	KQU( 9881254778587061697), KQU( 8413223156302299551),
1316 	KQU( 1563841828254089168), KQU( 9996032758786671975),
1317 	KQU(  138877700583772667), KQU(13003043368574995989),
1318 	KQU( 4390573668650456587), KQU( 8610287390568126755),
1319 	KQU(15126904974266642199), KQU( 6703637238986057662),
1320 	KQU( 2873075592956810157), KQU( 6035080933946049418),
1321 	KQU(13382846581202353014), KQU( 7303971031814642463),
1322 	KQU(18418024405307444267), KQU( 5847096731675404647),
1323 	KQU( 4035880699639842500), KQU(11525348625112218478),
1324 	KQU( 3041162365459574102), KQU( 2604734487727986558),
1325 	KQU(15526341771636983145), KQU(14556052310697370254),
1326 	KQU(12997787077930808155), KQU( 9601806501755554499),
1327 	KQU(11349677952521423389), KQU(14956777807644899350),
1328 	KQU(16559736957742852721), KQU(12360828274778140726),
1329 	KQU( 6685373272009662513), KQU(16932258748055324130),
1330 	KQU(15918051131954158508), KQU( 1692312913140790144),
1331 	KQU(  546653826801637367), KQU( 5341587076045986652),
1332 	KQU(14975057236342585662), KQU(12374976357340622412),
1333 	KQU(10328833995181940552), KQU(12831807101710443149),
1334 	KQU(10548514914382545716), KQU( 2217806727199715993),
1335 	KQU(12627067369242845138), KQU( 4598965364035438158),
1336 	KQU(  150923352751318171), KQU(14274109544442257283),
1337 	KQU( 4696661475093863031), KQU( 1505764114384654516),
1338 	KQU(10699185831891495147), KQU( 2392353847713620519),
1339 	KQU( 3652870166711788383), KQU( 8640653276221911108),
1340 	KQU( 3894077592275889704), KQU( 4918592872135964845),
1341 	KQU(16379121273281400789), KQU(12058465483591683656),
1342 	KQU(11250106829302924945), KQU( 1147537556296983005),
1343 	KQU( 6376342756004613268), KQU(14967128191709280506),
1344 	KQU(18007449949790627628), KQU( 9497178279316537841),
1345 	KQU( 7920174844809394893), KQU(10037752595255719907),
1346 	KQU(15875342784985217697), KQU(15311615921712850696),
1347 	KQU( 9552902652110992950), KQU(14054979450099721140),
1348 	KQU( 5998709773566417349), KQU(18027910339276320187),
1349 	KQU( 8223099053868585554), KQU( 7842270354824999767),
1350 	KQU( 4896315688770080292), KQU(12969320296569787895),
1351 	KQU( 2674321489185759961), KQU( 4053615936864718439),
1352 	KQU(11349775270588617578), KQU( 4743019256284553975),
1353 	KQU( 5602100217469723769), KQU(14398995691411527813),
1354 	KQU( 7412170493796825470), KQU(  836262406131744846),
1355 	KQU( 8231086633845153022), KQU( 5161377920438552287),
1356 	KQU( 8828731196169924949), KQU(16211142246465502680),
1357 	KQU( 3307990879253687818), KQU( 5193405406899782022),
1358 	KQU( 8510842117467566693), KQU( 6070955181022405365),
1359 	KQU(14482950231361409799), KQU(12585159371331138077),
1360 	KQU( 3511537678933588148), KQU( 2041849474531116417),
1361 	KQU(10944936685095345792), KQU(18303116923079107729),
1362 	KQU( 2720566371239725320), KQU( 4958672473562397622),
1363 	KQU( 3032326668253243412), KQU(13689418691726908338),
1364 	KQU( 1895205511728843996), KQU( 8146303515271990527),
1365 	KQU(16507343500056113480), KQU(  473996939105902919),
1366 	KQU( 9897686885246881481), KQU(14606433762712790575),
1367 	KQU( 6732796251605566368), KQU( 1399778120855368916),
1368 	KQU(  935023885182833777), KQU(16066282816186753477),
1369 	KQU( 7291270991820612055), KQU(17530230393129853844),
1370 	KQU(10223493623477451366), KQU(15841725630495676683),
1371 	KQU(17379567246435515824), KQU( 8588251429375561971),
1372 	KQU(18339511210887206423), KQU(17349587430725976100),
1373 	KQU(12244876521394838088), KQU( 6382187714147161259),
1374 	KQU(12335807181848950831), KQU(16948885622305460665),
1375 	KQU(13755097796371520506), KQU(14806740373324947801),
1376 	KQU( 4828699633859287703), KQU( 8209879281452301604),
1377 	KQU(12435716669553736437), KQU(13970976859588452131),
1378 	KQU( 6233960842566773148), KQU(12507096267900505759),
1379 	KQU( 1198713114381279421), KQU(14989862731124149015),
1380 	KQU(15932189508707978949), KQU( 2526406641432708722),
1381 	KQU(   29187427817271982), KQU( 1499802773054556353),
1382 	KQU(10816638187021897173), KQU( 5436139270839738132),
1383 	KQU( 6659882287036010082), KQU( 2154048955317173697),
1384 	KQU(10887317019333757642), KQU(16281091802634424955),
1385 	KQU(10754549879915384901), KQU(10760611745769249815),
1386 	KQU( 2161505946972504002), KQU( 5243132808986265107),
1387 	KQU(10129852179873415416), KQU(  710339480008649081),
1388 	KQU( 7802129453068808528), KQU(17967213567178907213),
1389 	KQU(15730859124668605599), KQU(13058356168962376502),
1390 	KQU( 3701224985413645909), KQU(14464065869149109264),
1391 	KQU( 9959272418844311646), KQU(10157426099515958752),
1392 	KQU(14013736814538268528), KQU(17797456992065653951),
1393 	KQU(17418878140257344806), KQU(15457429073540561521),
1394 	KQU( 2184426881360949378), KQU( 2062193041154712416),
1395 	KQU( 8553463347406931661), KQU( 4913057625202871854),
1396 	KQU( 2668943682126618425), KQU(17064444737891172288),
1397 	KQU( 4997115903913298637), KQU(12019402608892327416),
1398 	KQU(17603584559765897352), KQU(11367529582073647975),
1399 	KQU( 8211476043518436050), KQU( 8676849804070323674),
1400 	KQU(18431829230394475730), KQU(10490177861361247904),
1401 	KQU( 9508720602025651349), KQU( 7409627448555722700),
1402 	KQU( 5804047018862729008), KQU(11943858176893142594),
1403 	KQU(11908095418933847092), KQU( 5415449345715887652),
1404 	KQU( 1554022699166156407), KQU( 9073322106406017161),
1405 	KQU( 7080630967969047082), KQU(18049736940860732943),
1406 	KQU(12748714242594196794), KQU( 1226992415735156741),
1407 	KQU(17900981019609531193), KQU(11720739744008710999),
1408 	KQU( 3006400683394775434), KQU(11347974011751996028),
1409 	KQU( 3316999628257954608), KQU( 8384484563557639101),
1410 	KQU(18117794685961729767), KQU( 1900145025596618194),
1411 	KQU(17459527840632892676), KQU( 5634784101865710994),
1412 	KQU( 7918619300292897158), KQU( 3146577625026301350),
1413 	KQU( 9955212856499068767), KQU( 1873995843681746975),
1414 	KQU( 1561487759967972194), KQU( 8322718804375878474),
1415 	KQU(11300284215327028366), KQU( 4667391032508998982),
1416 	KQU( 9820104494306625580), KQU(17922397968599970610),
1417 	KQU( 1784690461886786712), KQU(14940365084341346821),
1418 	KQU( 5348719575594186181), KQU(10720419084507855261),
1419 	KQU(14210394354145143274), KQU( 2426468692164000131),
1420 	KQU(16271062114607059202), KQU(14851904092357070247),
1421 	KQU( 6524493015693121897), KQU( 9825473835127138531),
1422 	KQU(14222500616268569578), KQU(15521484052007487468),
1423 	KQU(14462579404124614699), KQU(11012375590820665520),
1424 	KQU(11625327350536084927), KQU(14452017765243785417),
1425 	KQU( 9989342263518766305), KQU( 3640105471101803790),
1426 	KQU( 4749866455897513242), KQU(13963064946736312044),
1427 	KQU(10007416591973223791), KQU(18314132234717431115),
1428 	KQU( 3286596588617483450), KQU( 7726163455370818765),
1429 	KQU( 7575454721115379328), KQU( 5308331576437663422),
1430 	KQU(18288821894903530934), KQU( 8028405805410554106),
1431 	KQU(15744019832103296628), KQU(  149765559630932100),
1432 	KQU( 6137705557200071977), KQU(14513416315434803615),
1433 	KQU(11665702820128984473), KQU(  218926670505601386),
1434 	KQU( 6868675028717769519), KQU(15282016569441512302),
1435 	KQU( 5707000497782960236), KQU( 6671120586555079567),
1436 	KQU( 2194098052618985448), KQU(16849577895477330978),
1437 	KQU(12957148471017466283), KQU( 1997805535404859393),
1438 	KQU( 1180721060263860490), KQU(13206391310193756958),
1439 	KQU(12980208674461861797), KQU( 3825967775058875366),
1440 	KQU(17543433670782042631), KQU( 1518339070120322730),
1441 	KQU(16344584340890991669), KQU( 2611327165318529819),
1442 	KQU(11265022723283422529), KQU( 4001552800373196817),
1443 	KQU(14509595890079346161), KQU( 3528717165416234562),
1444 	KQU(18153222571501914072), KQU( 9387182977209744425),
1445 	KQU(10064342315985580021), KQU(11373678413215253977),
1446 	KQU( 2308457853228798099), KQU( 9729042942839545302),
1447 	KQU( 7833785471140127746), KQU( 6351049900319844436),
1448 	KQU(14454610627133496067), KQU(12533175683634819111),
1449 	KQU(15570163926716513029), KQU(13356980519185762498)
1450 };
1451 
TEST_BEGIN(test_gen_rand_32)1452 TEST_BEGIN(test_gen_rand_32) {
1453 	uint32_t array32[BLOCK_SIZE] JEMALLOC_ATTR(aligned(16));
1454 	uint32_t array32_2[BLOCK_SIZE] JEMALLOC_ATTR(aligned(16));
1455 	int i;
1456 	uint32_t r32;
1457 	sfmt_t *ctx;
1458 
1459 	assert_d_le(get_min_array_size32(), BLOCK_SIZE,
1460 	    "Array size too small");
1461 	ctx = init_gen_rand(1234);
1462 	fill_array32(ctx, array32, BLOCK_SIZE);
1463 	fill_array32(ctx, array32_2, BLOCK_SIZE);
1464 	fini_gen_rand(ctx);
1465 
1466 	ctx = init_gen_rand(1234);
1467 	for (i = 0; i < BLOCK_SIZE; i++) {
1468 		if (i < COUNT_1) {
1469 			assert_u32_eq(array32[i], init_gen_rand_32_expected[i],
1470 			    "Output mismatch for i=%d", i);
1471 		}
1472 		r32 = gen_rand32(ctx);
1473 		assert_u32_eq(r32, array32[i],
1474 		    "Mismatch at array32[%d]=%x, gen=%x", i, array32[i], r32);
1475 	}
1476 	for (i = 0; i < COUNT_2; i++) {
1477 		r32 = gen_rand32(ctx);
1478 		assert_u32_eq(r32, array32_2[i],
1479 		    "Mismatch at array32_2[%d]=%x, gen=%x", i, array32_2[i],
1480 		    r32);
1481 	}
1482 	fini_gen_rand(ctx);
1483 }
1484 TEST_END
1485 
TEST_BEGIN(test_by_array_32)1486 TEST_BEGIN(test_by_array_32) {
1487 	uint32_t array32[BLOCK_SIZE] JEMALLOC_ATTR(aligned(16));
1488 	uint32_t array32_2[BLOCK_SIZE] JEMALLOC_ATTR(aligned(16));
1489 	int i;
1490 	uint32_t ini[4] = {0x1234, 0x5678, 0x9abc, 0xdef0};
1491 	uint32_t r32;
1492 	sfmt_t *ctx;
1493 
1494 	assert_d_le(get_min_array_size32(), BLOCK_SIZE,
1495 	    "Array size too small");
1496 	ctx = init_by_array(ini, 4);
1497 	fill_array32(ctx, array32, BLOCK_SIZE);
1498 	fill_array32(ctx, array32_2, BLOCK_SIZE);
1499 	fini_gen_rand(ctx);
1500 
1501 	ctx = init_by_array(ini, 4);
1502 	for (i = 0; i < BLOCK_SIZE; i++) {
1503 		if (i < COUNT_1) {
1504 			assert_u32_eq(array32[i], init_by_array_32_expected[i],
1505 			    "Output mismatch for i=%d", i);
1506 		}
1507 		r32 = gen_rand32(ctx);
1508 		assert_u32_eq(r32, array32[i],
1509 		    "Mismatch at array32[%d]=%x, gen=%x", i, array32[i], r32);
1510 	}
1511 	for (i = 0; i < COUNT_2; i++) {
1512 		r32 = gen_rand32(ctx);
1513 		assert_u32_eq(r32, array32_2[i],
1514 		    "Mismatch at array32_2[%d]=%x, gen=%x", i, array32_2[i],
1515 		    r32);
1516 	}
1517 	fini_gen_rand(ctx);
1518 }
1519 TEST_END
1520 
TEST_BEGIN(test_gen_rand_64)1521 TEST_BEGIN(test_gen_rand_64) {
1522 	uint64_t array64[BLOCK_SIZE64] JEMALLOC_ATTR(aligned(16));
1523 	uint64_t array64_2[BLOCK_SIZE64] JEMALLOC_ATTR(aligned(16));
1524 	int i;
1525 	uint64_t r;
1526 	sfmt_t *ctx;
1527 
1528 	assert_d_le(get_min_array_size64(), BLOCK_SIZE64,
1529 	    "Array size too small");
1530 	ctx = init_gen_rand(4321);
1531 	fill_array64(ctx, array64, BLOCK_SIZE64);
1532 	fill_array64(ctx, array64_2, BLOCK_SIZE64);
1533 	fini_gen_rand(ctx);
1534 
1535 	ctx = init_gen_rand(4321);
1536 	for (i = 0; i < BLOCK_SIZE64; i++) {
1537 		if (i < COUNT_1) {
1538 			assert_u64_eq(array64[i], init_gen_rand_64_expected[i],
1539 			    "Output mismatch for i=%d", i);
1540 		}
1541 		r = gen_rand64(ctx);
1542 		assert_u64_eq(r, array64[i],
1543 		    "Mismatch at array64[%d]=%"FMTx64", gen=%"FMTx64, i,
1544 		    array64[i], r);
1545 	}
1546 	for (i = 0; i < COUNT_2; i++) {
1547 		r = gen_rand64(ctx);
1548 		assert_u64_eq(r, array64_2[i],
1549 		    "Mismatch at array64_2[%d]=%"FMTx64" gen=%"FMTx64"", i,
1550 		    array64_2[i], r);
1551 	}
1552 	fini_gen_rand(ctx);
1553 }
1554 TEST_END
1555 
TEST_BEGIN(test_by_array_64)1556 TEST_BEGIN(test_by_array_64) {
1557 	uint64_t array64[BLOCK_SIZE64] JEMALLOC_ATTR(aligned(16));
1558 	uint64_t array64_2[BLOCK_SIZE64] JEMALLOC_ATTR(aligned(16));
1559 	int i;
1560 	uint64_t r;
1561 	uint32_t ini[] = {5, 4, 3, 2, 1};
1562 	sfmt_t *ctx;
1563 
1564 	assert_d_le(get_min_array_size64(), BLOCK_SIZE64,
1565 	    "Array size too small");
1566 	ctx = init_by_array(ini, 5);
1567 	fill_array64(ctx, array64, BLOCK_SIZE64);
1568 	fill_array64(ctx, array64_2, BLOCK_SIZE64);
1569 	fini_gen_rand(ctx);
1570 
1571 	ctx = init_by_array(ini, 5);
1572 	for (i = 0; i < BLOCK_SIZE64; i++) {
1573 		if (i < COUNT_1) {
1574 			assert_u64_eq(array64[i], init_by_array_64_expected[i],
1575 			    "Output mismatch for i=%d", i);
1576 		}
1577 		r = gen_rand64(ctx);
1578 		assert_u64_eq(r, array64[i],
1579 		    "Mismatch at array64[%d]=%"FMTx64" gen=%"FMTx64, i,
1580 		    array64[i], r);
1581 	}
1582 	for (i = 0; i < COUNT_2; i++) {
1583 		r = gen_rand64(ctx);
1584 		assert_u64_eq(r, array64_2[i],
1585 		    "Mismatch at array64_2[%d]=%"FMTx64" gen=%"FMTx64, i,
1586 		    array64_2[i], r);
1587 	}
1588 	fini_gen_rand(ctx);
1589 }
1590 TEST_END
1591 
1592 int
main(void)1593 main(void) {
1594 	return test(
1595 	    test_gen_rand_32,
1596 	    test_by_array_32,
1597 	    test_gen_rand_64,
1598 	    test_by_array_64);
1599 }
1600