(root)/
gcc-13.2.0/
libgcc/
config/
libbid/
bid128_2_str_tables.c
       1  /* Copyright (C) 2007-2023 Free Software Foundation, Inc.
       2  
       3  This file is part of GCC.
       4  
       5  GCC is free software; you can redistribute it and/or modify it under
       6  the terms of the GNU General Public License as published by the Free
       7  Software Foundation; either version 3, or (at your option) any later
       8  version.
       9  
      10  GCC is distributed in the hope that it will be useful, but WITHOUT ANY
      11  WARRANTY; without even the implied warranty of MERCHANTABILITY or
      12  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
      13  for more details.
      14  
      15  Under Section 7 of GPL version 3, you are granted additional
      16  permissions described in the GCC Runtime Library Exception, version
      17  3.1, as published by the Free Software Foundation.
      18  
      19  You should have received a copy of the GNU General Public License and
      20  a copy of the GCC Runtime Library Exception along with this program;
      21  see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
      22  <http://www.gnu.org/licenses/>.  */
      23  
      24  #include "bid_internal.h"
      25  
      26  UINT64 Twoto60_m_10to18 = 152921504606846976LL;
      27  UINT64 Twoto60 = 0x1000000000000000LL;
      28  UINT64 Inv_Tento9 = 2305843009LL;	/* floor(2^61/10^9) */
      29  UINT32 Twoto30_m_10to9 = 73741824;
      30  UINT32 Tento9 = 1000000000;
      31  UINT32 Tento6 = 1000000;
      32  UINT32 Tento3 = 1000;
      33  
      34  const char midi_tbl[1000][3] = {
      35    "000", "001", "002", "003", "004", "005", "006", "007", "008", "009",
      36    "010", "011", "012", "013", "014", "015", "016", "017", "018", "019",
      37    "020", "021", "022", "023", "024", "025", "026", "027", "028", "029",
      38    "030", "031", "032", "033", "034", "035", "036", "037", "038", "039",
      39    "040", "041", "042", "043", "044", "045", "046", "047", "048", "049",
      40    "050", "051", "052", "053", "054", "055", "056", "057", "058", "059",
      41    "060", "061", "062", "063", "064", "065", "066", "067", "068", "069",
      42    "070", "071", "072", "073", "074", "075", "076", "077", "078", "079",
      43    "080", "081", "082", "083", "084", "085", "086", "087", "088", "089",
      44    "090", "091", "092", "093", "094", "095", "096", "097", "098", "099",
      45    "100", "101", "102", "103", "104", "105", "106", "107", "108", "109",
      46    "110", "111", "112", "113", "114", "115", "116", "117", "118", "119",
      47    "120", "121", "122", "123", "124", "125", "126", "127", "128", "129",
      48    "130", "131", "132", "133", "134", "135", "136", "137", "138", "139",
      49    "140", "141", "142", "143", "144", "145", "146", "147", "148", "149",
      50    "150", "151", "152", "153", "154", "155", "156", "157", "158", "159",
      51    "160", "161", "162", "163", "164", "165", "166", "167", "168", "169",
      52    "170", "171", "172", "173", "174", "175", "176", "177", "178", "179",
      53    "180", "181", "182", "183", "184", "185", "186", "187", "188", "189",
      54    "190", "191", "192", "193", "194", "195", "196", "197", "198", "199",
      55    "200", "201", "202", "203", "204", "205", "206", "207", "208", "209",
      56    "210", "211", "212", "213", "214", "215", "216", "217", "218", "219",
      57    "220", "221", "222", "223", "224", "225", "226", "227", "228", "229",
      58    "230", "231", "232", "233", "234", "235", "236", "237", "238", "239",
      59    "240", "241", "242", "243", "244", "245", "246", "247", "248", "249",
      60    "250", "251", "252", "253", "254", "255", "256", "257", "258", "259",
      61    "260", "261", "262", "263", "264", "265", "266", "267", "268", "269",
      62    "270", "271", "272", "273", "274", "275", "276", "277", "278", "279",
      63    "280", "281", "282", "283", "284", "285", "286", "287", "288", "289",
      64    "290", "291", "292", "293", "294", "295", "296", "297", "298", "299",
      65    "300", "301", "302", "303", "304", "305", "306", "307", "308", "309",
      66    "310", "311", "312", "313", "314", "315", "316", "317", "318", "319",
      67    "320", "321", "322", "323", "324", "325", "326", "327", "328", "329",
      68    "330", "331", "332", "333", "334", "335", "336", "337", "338", "339",
      69    "340", "341", "342", "343", "344", "345", "346", "347", "348", "349",
      70    "350", "351", "352", "353", "354", "355", "356", "357", "358", "359",
      71    "360", "361", "362", "363", "364", "365", "366", "367", "368", "369",
      72    "370", "371", "372", "373", "374", "375", "376", "377", "378", "379",
      73    "380", "381", "382", "383", "384", "385", "386", "387", "388", "389",
      74    "390", "391", "392", "393", "394", "395", "396", "397", "398", "399",
      75    "400", "401", "402", "403", "404", "405", "406", "407", "408", "409",
      76    "410", "411", "412", "413", "414", "415", "416", "417", "418", "419",
      77    "420", "421", "422", "423", "424", "425", "426", "427", "428", "429",
      78    "430", "431", "432", "433", "434", "435", "436", "437", "438", "439",
      79    "440", "441", "442", "443", "444", "445", "446", "447", "448", "449",
      80    "450", "451", "452", "453", "454", "455", "456", "457", "458", "459",
      81    "460", "461", "462", "463", "464", "465", "466", "467", "468", "469",
      82    "470", "471", "472", "473", "474", "475", "476", "477", "478", "479",
      83    "480", "481", "482", "483", "484", "485", "486", "487", "488", "489",
      84    "490", "491", "492", "493", "494", "495", "496", "497", "498", "499",
      85    "500", "501", "502", "503", "504", "505", "506", "507", "508", "509",
      86    "510", "511", "512", "513", "514", "515", "516", "517", "518", "519",
      87    "520", "521", "522", "523", "524", "525", "526", "527", "528", "529",
      88    "530", "531", "532", "533", "534", "535", "536", "537", "538", "539",
      89    "540", "541", "542", "543", "544", "545", "546", "547", "548", "549",
      90    "550", "551", "552", "553", "554", "555", "556", "557", "558", "559",
      91    "560", "561", "562", "563", "564", "565", "566", "567", "568", "569",
      92    "570", "571", "572", "573", "574", "575", "576", "577", "578", "579",
      93    "580", "581", "582", "583", "584", "585", "586", "587", "588", "589",
      94    "590", "591", "592", "593", "594", "595", "596", "597", "598", "599",
      95    "600", "601", "602", "603", "604", "605", "606", "607", "608", "609",
      96    "610", "611", "612", "613", "614", "615", "616", "617", "618", "619",
      97    "620", "621", "622", "623", "624", "625", "626", "627", "628", "629",
      98    "630", "631", "632", "633", "634", "635", "636", "637", "638", "639",
      99    "640", "641", "642", "643", "644", "645", "646", "647", "648", "649",
     100    "650", "651", "652", "653", "654", "655", "656", "657", "658", "659",
     101    "660", "661", "662", "663", "664", "665", "666", "667", "668", "669",
     102    "670", "671", "672", "673", "674", "675", "676", "677", "678", "679",
     103    "680", "681", "682", "683", "684", "685", "686", "687", "688", "689",
     104    "690", "691", "692", "693", "694", "695", "696", "697", "698", "699",
     105    "700", "701", "702", "703", "704", "705", "706", "707", "708", "709",
     106    "710", "711", "712", "713", "714", "715", "716", "717", "718", "719",
     107    "720", "721", "722", "723", "724", "725", "726", "727", "728", "729",
     108    "730", "731", "732", "733", "734", "735", "736", "737", "738", "739",
     109    "740", "741", "742", "743", "744", "745", "746", "747", "748", "749",
     110    "750", "751", "752", "753", "754", "755", "756", "757", "758", "759",
     111    "760", "761", "762", "763", "764", "765", "766", "767", "768", "769",
     112    "770", "771", "772", "773", "774", "775", "776", "777", "778", "779",
     113    "780", "781", "782", "783", "784", "785", "786", "787", "788", "789",
     114    "790", "791", "792", "793", "794", "795", "796", "797", "798", "799",
     115    "800", "801", "802", "803", "804", "805", "806", "807", "808", "809",
     116    "810", "811", "812", "813", "814", "815", "816", "817", "818", "819",
     117    "820", "821", "822", "823", "824", "825", "826", "827", "828", "829",
     118    "830", "831", "832", "833", "834", "835", "836", "837", "838", "839",
     119    "840", "841", "842", "843", "844", "845", "846", "847", "848", "849",
     120    "850", "851", "852", "853", "854", "855", "856", "857", "858", "859",
     121    "860", "861", "862", "863", "864", "865", "866", "867", "868", "869",
     122    "870", "871", "872", "873", "874", "875", "876", "877", "878", "879",
     123    "880", "881", "882", "883", "884", "885", "886", "887", "888", "889",
     124    "890", "891", "892", "893", "894", "895", "896", "897", "898", "899",
     125    "900", "901", "902", "903", "904", "905", "906", "907", "908", "909",
     126    "910", "911", "912", "913", "914", "915", "916", "917", "918", "919",
     127    "920", "921", "922", "923", "924", "925", "926", "927", "928", "929",
     128    "930", "931", "932", "933", "934", "935", "936", "937", "938", "939",
     129    "940", "941", "942", "943", "944", "945", "946", "947", "948", "949",
     130    "950", "951", "952", "953", "954", "955", "956", "957", "958", "959",
     131    "960", "961", "962", "963", "964", "965", "966", "967", "968", "969",
     132    "970", "971", "972", "973", "974", "975", "976", "977", "978", "979",
     133    "980", "981", "982", "983", "984", "985", "986", "987", "988", "989",
     134    "990", "991", "992", "993", "994", "995", "996", "997", "998", "999"
     135  };
     136  
     137  const UINT64 mod10_18_tbl[9][128] = {
     138    // 2^59 = 576460752303423488, A and B breakdown, where data = A*10^18 + B 
     139  
     140    {
     141     0LL, 0LL, 0LL, 576460752303423488LL,
     142     //  0*2^59,  1*2^59
     143     1LL, 152921504606846976LL, 1LL, 729382256910270464LL,
     144     //  2*2^59,  3*2^59
     145     2LL, 305843009213693952LL, 2LL, 882303761517117440LL,
     146     //  4*2^59,  5*2^59
     147     3LL, 458764513820540928LL, 4LL, 35225266123964416LL,
     148     //  6*2^59,  7*2^59
     149     4LL, 611686018427387904LL, 5LL, 188146770730811392LL,
     150     //  8*2^59,  9*2^59
     151     5LL, 764607523034234880LL, 6LL, 341068275337658368LL,
     152     // 10*2^59, 11*2^59
     153     6LL, 917529027641081856LL, 7LL, 493989779944505344LL,
     154     // 12*2^59, 13*2^59
     155     8LL, 70450532247928832LL, 8LL, 646911284551352320LL,
     156     // 14*2^59, 15*2^59
     157     9LL, 223372036854775808LL, 9LL, 799832789158199296LL,
     158     // 16*2^59, 17*2^59
     159     10LL, 376293541461622784LL, 10LL, 952754293765046272LL,
     160     // 18*2^59, 19*2^59
     161     11LL, 529215046068469760LL, 12LL, 105675798371893248LL,
     162     // 20*2^59, 21*2^59
     163     12LL, 682136550675316736LL, 13LL, 258597302978740224LL,
     164     // 22*2^59, 23*2^59
     165     13LL, 835058055282163712LL, 14LL, 411518807585587200LL,
     166     // 24*2^59, 25*2^59
     167     14LL, 987979559889010688LL, 15LL, 564440312192434176LL,
     168     // 26*2^59, 27*2^59
     169     16LL, 140901064495857664LL, 16LL, 717361816799281152LL,
     170     // 28*2^59, 29*2^59
     171     17LL, 293822569102704640LL, 17LL, 870283321406128128LL,
     172     // 30*2^59, 31*2^59
     173     18LL, 446744073709551616LL, 19LL, 23204826012975104LL,
     174     // 32*2^59, 33*2^59
     175     19LL, 599665578316398592LL, 20LL, 176126330619822080LL,
     176     // 34*2^59, 35*2^59
     177     20LL, 752587082923245568LL, 21LL, 329047835226669056LL,
     178     // 36*2^59, 37*2^59
     179     21LL, 905508587530092544LL, 22LL, 481969339833516032LL,
     180     // 38*2^59, 39*2^59
     181     23LL, 58430092136939520LL, 23LL, 634890844440363008LL,
     182     // 40*2^59, 41*2^59
     183     24LL, 211351596743786496LL, 24LL, 787812349047209984LL,
     184     // 42*2^59, 43*2^59
     185     25LL, 364273101350633472LL, 25LL, 940733853654056960LL,
     186     // 44*2^59, 45*2^59
     187     26LL, 517194605957480448LL, 27LL, 93655358260903936LL,
     188     // 46*2^59, 47*2^59
     189     27LL, 670116110564327424LL, 28LL, 246576862867750912LL,
     190     // 48*2^59, 49*2^59
     191     28LL, 823037615171174400LL, 29LL, 399498367474597888LL,
     192     // 50*2^59, 51*2^59
     193     29LL, 975959119778021376LL, 30LL, 552419872081444864LL,
     194     // 52*2^59, 53*2^59
     195     31LL, 128880624384868352LL, 31LL, 705341376688291840LL,
     196     // 54*2^59, 55*2^59
     197     32LL, 281802128991715328LL, 32LL, 858262881295138816LL,
     198     // 56*2^59, 57*2^59
     199     33LL, 434723633598562304LL, 34LL, 11184385901985792LL,
     200     // 58*2^59, 59*2^59
     201     34LL, 587645138205409280LL, 35LL, 164105890508832768LL,
     202     // 60*2^59, 61*2^59
     203     35LL, 740566642812256256LL, 36LL, 317027395115679744LL,
     204     // 62*2^59, 63*2^59
     205     },
     206  
     207    {
     208     // 2^65 = 36*10^18 + 893488147419103232
     209     0LL, 0LL, 36LL, 893488147419103232LL,
     210     //  0*2^65,  1*2^65
     211     73LL, 786976294838206464LL, 110LL, 680464442257309696LL,
     212     //  2*2^65,  3*2^65
     213     147LL, 573952589676412928LL, 184LL, 467440737095516160LL,
     214     //  4*2^65,  5*2^65
     215     221LL, 360928884514619392LL, 258LL, 254417031933722624LL,
     216     //  6*2^65,  7*2^65
     217     295LL, 147905179352825856LL, 332LL, 41393326771929088LL,
     218     //  8*2^65,  9*2^65
     219     368LL, 934881474191032320LL, 405LL, 828369621610135552LL,
     220     //  0*2^65,  1*2^65
     221     442LL, 721857769029238784LL, 479LL, 615345916448342016LL,
     222     //  2*2^65,  3*2^65
     223     516LL, 508834063867445248LL, 553LL, 402322211286548480LL,
     224     //  4*2^65,  5*2^65
     225     590LL, 295810358705651712LL, 627LL, 189298506124754944LL,
     226     //  6*2^65,  7*2^65
     227     664LL, 82786653543858176LL, 700LL, 976274800962961408LL,
     228     //  8*2^65,  9*2^65
     229     737LL, 869762948382064640LL, 774LL, 763251095801167872LL,
     230     //  0*2^65,  1*2^65
     231     811LL, 656739243220271104LL, 848LL, 550227390639374336LL,
     232     //  2*2^65,  3*2^65
     233     885LL, 443715538058477568LL, 922LL, 337203685477580800LL,
     234     //  4*2^65,  5*2^65
     235     959LL, 230691832896684032LL, 996LL, 124179980315787264LL,
     236     //  6*2^65,  7*2^65
     237     1033LL, 17668127734890496LL, 1069LL, 911156275153993728LL,
     238     //  8*2^65,  9*2^65
     239     1106LL, 804644422573096960LL, 1143LL, 698132569992200192LL,
     240     //  0*2^65,  1*2^65
     241     1180LL, 591620717411303424LL, 1217LL, 485108864830406656LL,
     242     //  2*2^65,  3*2^65
     243     1254LL, 378597012249509888LL, 1291LL, 272085159668613120LL,
     244     //  4*2^65,  5*2^65
     245     1328LL, 165573307087716352LL, 1365LL, 59061454506819584LL,
     246     //  6*2^65,  7*2^65
     247     1401LL, 952549601925922816LL, 1438LL, 846037749345026048LL,
     248     //  8*2^65,  9*2^65
     249     1475LL, 739525896764129280LL, 1512LL, 633014044183232512LL,
     250     //  0*2^65,  1*2^65
     251     1549LL, 526502191602335744LL, 1586LL, 419990339021438976LL,
     252     //  2*2^65,  3*2^65
     253     1623LL, 313478486440542208LL, 1660LL, 206966633859645440LL,
     254     //  4*2^65,  5*2^65
     255     1697LL, 100454781278748672LL, 1733LL, 993942928697851904LL,
     256     //  6*2^65,  7*2^65
     257     1770LL, 887431076116955136LL, 1807LL, 780919223536058368LL,
     258     //  8*2^65,  9*2^65
     259     1844LL, 674407370955161600LL, 1881LL, 567895518374264832LL,
     260     //  0*2^65,  1*2^65
     261     1918LL, 461383665793368064LL, 1955LL, 354871813212471296LL,
     262     //  2*2^65,  3*2^65
     263     1992LL, 248359960631574528LL, 2029LL, 141848108050677760LL,
     264     //  4*2^65,  5*2^65
     265     2066LL, 35336255469780992LL, 2102LL, 928824402888884224LL,
     266     //  6*2^65,  7*2^65
     267     2139LL, 822312550307987456LL, 2176LL, 715800697727090688LL,
     268     //  8*2^65,  9*2^65
     269     2213LL, 609288845146193920LL, 2250LL, 502776992565297152LL,
     270     //  0*2^65,  1*2^65
     271     2287LL, 396265139984400384LL, 2324LL, 289753287403503616LL,
     272     //  2*2^65,  3*2^65
     273     },
     274  
     275    {
     276     0LL, 0LL, 2361LL, 183241434822606848LL,
     277     4722LL, 366482869645213696LL, 7083LL, 549724304467820544LL,
     278     9444LL, 732965739290427392LL, 11805LL, 916207174113034240LL,
     279     14167LL, 99448608935641088LL, 16528LL, 282690043758247936LL,
     280     18889LL, 465931478580854784LL, 21250LL, 649172913403461632LL,
     281     23611LL, 832414348226068480LL, 25973LL, 15655783048675328LL,
     282     28334LL, 198897217871282176LL, 30695LL, 382138652693889024LL,
     283     33056LL, 565380087516495872LL, 35417LL, 748621522339102720LL,
     284     37778LL, 931862957161709568LL, 40140LL, 115104391984316416LL,
     285     42501LL, 298345826806923264LL, 44862LL, 481587261629530112LL,
     286     47223LL, 664828696452136960LL, 49584LL, 848070131274743808LL,
     287     51946LL, 31311566097350656LL, 54307LL, 214553000919957504LL,
     288     56668LL, 397794435742564352LL, 59029LL, 581035870565171200LL,
     289     61390LL, 764277305387778048LL, 63751LL, 947518740210384896LL,
     290     66113LL, 130760175032991744LL, 68474LL, 314001609855598592LL,
     291     70835LL, 497243044678205440LL, 73196LL, 680484479500812288LL,
     292     75557LL, 863725914323419136LL, 77919LL, 46967349146025984LL,
     293     80280LL, 230208783968632832LL, 82641LL, 413450218791239680LL,
     294     85002LL, 596691653613846528LL, 87363LL, 779933088436453376LL,
     295     89724LL, 963174523259060224LL, 92086LL, 146415958081667072LL,
     296     94447LL, 329657392904273920LL, 96808LL, 512898827726880768LL,
     297     99169LL, 696140262549487616LL, 101530LL, 879381697372094464LL,
     298     103892LL, 62623132194701312LL, 106253LL, 245864567017308160LL,
     299     108614LL, 429106001839915008LL, 110975LL, 612347436662521856LL,
     300     113336LL, 795588871485128704LL, 115697LL, 978830306307735552LL,
     301     118059LL, 162071741130342400LL, 120420LL, 345313175952949248LL,
     302     122781LL, 528554610775556096LL, 125142LL, 711796045598162944LL,
     303     127503LL, 895037480420769792LL, 129865LL, 78278915243376640LL,
     304     132226LL, 261520350065983488LL, 134587LL, 444761784888590336LL,
     305     136948LL, 628003219711197184LL, 139309LL, 811244654533804032LL,
     306     141670LL, 994486089356410880LL, 144032LL, 177727524179017728LL,
     307     146393LL, 360968959001624576LL, 148754LL, 544210393824231424LL,
     308     },
     309  
     310    {
     311     0LL, 0LL, 151115LL, 727451828646838272LL,
     312     302231LL, 454903657293676544LL, 453347LL, 182355485940514816LL,
     313     604462LL, 909807314587353088LL, 755578LL, 637259143234191360LL,
     314     906694LL, 364710971881029632LL, 1057810LL, 92162800527867904LL,
     315     1208925LL, 819614629174706176LL, 1360041LL, 547066457821544448LL,
     316     1511157LL, 274518286468382720LL, 1662273LL, 1970115115220992LL,
     317     1813388LL, 729421943762059264LL, 1964504LL, 456873772408897536LL,
     318     2115620LL, 184325601055735808LL, 2266735LL, 911777429702574080LL,
     319     2417851LL, 639229258349412352LL, 2568967LL, 366681086996250624LL,
     320     2720083LL, 94132915643088896LL, 2871198LL, 821584744289927168LL,
     321     3022314LL, 549036572936765440LL, 3173430LL, 276488401583603712LL,
     322     3324546LL, 3940230230441984LL, 3475661LL, 731392058877280256LL,
     323     3626777LL, 458843887524118528LL, 3777893LL, 186295716170956800LL,
     324     3929008LL, 913747544817795072LL, 4080124LL, 641199373464633344LL,
     325     4231240LL, 368651202111471616LL, 4382356LL, 96103030758309888LL,
     326     4533471LL, 823554859405148160LL, 4684587LL, 551006688051986432LL,
     327     4835703LL, 278458516698824704LL, 4986819LL, 5910345345662976LL,
     328     5137934LL, 733362173992501248LL, 5289050LL, 460814002639339520LL,
     329     5440166LL, 188265831286177792LL, 5591281LL, 915717659933016064LL,
     330     5742397LL, 643169488579854336LL, 5893513LL, 370621317226692608LL,
     331     6044629LL, 98073145873530880LL, 6195744LL, 825524974520369152LL,
     332     6346860LL, 552976803167207424LL, 6497976LL, 280428631814045696LL,
     333     6649092LL, 7880460460883968LL, 6800207LL, 735332289107722240LL,
     334     6951323LL, 462784117754560512LL, 7102439LL, 190235946401398784LL,
     335     7253554LL, 917687775048237056LL, 7404670LL, 645139603695075328LL,
     336     7555786LL, 372591432341913600LL, 7706902LL, 100043260988751872LL,
     337     7858017LL, 827495089635590144LL, 8009133LL, 554946918282428416LL,
     338     8160249LL, 282398746929266688LL, 8311365LL, 9850575576104960LL,
     339     8462480LL, 737302404222943232LL, 8613596LL, 464754232869781504LL,
     340     8764712LL, 192206061516619776LL, 8915827LL, 919657890163458048LL,
     341     9066943LL, 647109718810296320LL, 9218059LL, 374561547457134592LL,
     342     9369175LL, 102013376103972864LL, 9520290LL, 829465204750811136LL,
     343     },
     344  
     345    {
     346     0LL, 0LL, 9671406LL, 556917033397649408LL,
     347     19342813LL, 113834066795298816LL, 29014219LL, 670751100192948224LL,
     348     38685626LL, 227668133590597632LL, 48357032LL, 784585166988247040LL,
     349     58028439LL, 341502200385896448LL, 67699845LL, 898419233783545856LL,
     350     77371252LL, 455336267181195264LL, 87042659LL, 12253300578844672LL,
     351     96714065LL, 569170333976494080LL, 106385472LL, 126087367374143488LL,
     352     116056878LL, 683004400771792896LL, 125728285LL, 239921434169442304LL,
     353     135399691LL, 796838467567091712LL, 145071098LL, 353755500964741120LL,
     354     154742504LL, 910672534362390528LL, 164413911LL, 467589567760039936LL,
     355     174085318LL, 24506601157689344LL, 183756724LL, 581423634555338752LL,
     356     193428131LL, 138340667952988160LL, 203099537LL, 695257701350637568LL,
     357     212770944LL, 252174734748286976LL, 222442350LL, 809091768145936384LL,
     358     232113757LL, 366008801543585792LL, 241785163LL, 922925834941235200LL,
     359     251456570LL, 479842868338884608LL, 261127977LL, 36759901736534016LL,
     360     270799383LL, 593676935134183424LL, 280470790LL, 150593968531832832LL,
     361     290142196LL, 707511001929482240LL, 299813603LL, 264428035327131648LL,
     362     309485009LL, 821345068724781056LL, 319156416LL, 378262102122430464LL,
     363     328827822LL, 935179135520079872LL, 338499229LL, 492096168917729280LL,
     364     348170636LL, 49013202315378688LL, 357842042LL, 605930235713028096LL,
     365     367513449LL, 162847269110677504LL, 377184855LL, 719764302508326912LL,
     366     386856262LL, 276681335905976320LL, 396527668LL, 833598369303625728LL,
     367     406199075LL, 390515402701275136LL, 415870481LL, 947432436098924544LL,
     368     425541888LL, 504349469496573952LL, 435213295LL, 61266502894223360LL,
     369     444884701LL, 618183536291872768LL, 454556108LL, 175100569689522176LL,
     370     464227514LL, 732017603087171584LL, 473898921LL, 288934636484820992LL,
     371     483570327LL, 845851669882470400LL, 493241734LL, 402768703280119808LL,
     372     502913140LL, 959685736677769216LL, 512584547LL, 516602770075418624LL,
     373     522255954LL, 73519803473068032LL, 531927360LL, 630436836870717440LL,
     374     541598767LL, 187353870268366848LL, 551270173LL, 744270903666016256LL,
     375     560941580LL, 301187937063665664LL, 570612986LL, 858104970461315072LL,
     376     580284393LL, 415022003858964480LL, 589955799LL, 971939037256613888LL,
     377     599627206LL, 528856070654263296LL, 609298613LL, 85773104051912704LL,
     378     },
     379  
     380    {
     381     0LL, 0LL, 618970019LL, 642690137449562112LL,
     382     1237940039LL, 285380274899124224LL, 1856910058LL,
     383     928070412348686336LL,
     384     2475880078LL, 570760549798248448LL, 3094850098LL,
     385     213450687247810560LL,
     386     3713820117LL, 856140824697372672LL, 4332790137LL,
     387     498830962146934784LL,
     388     4951760157LL, 141521099596496896LL, 5570730176LL,
     389     784211237046059008LL,
     390     6189700196LL, 426901374495621120LL, 6808670216LL,
     391     69591511945183232LL,
     392     7427640235LL, 712281649394745344LL, 8046610255LL,
     393     354971786844307456LL,
     394     8665580274LL, 997661924293869568LL, 9284550294LL,
     395     640352061743431680LL,
     396     9903520314LL, 283042199192993792LL, 10522490333LL,
     397     925732336642555904LL,
     398     11141460353LL, 568422474092118016LL, 11760430373LL,
     399     211112611541680128LL,
     400     12379400392LL, 853802748991242240LL, 12998370412LL,
     401     496492886440804352LL,
     402     13617340432LL, 139183023890366464LL, 14236310451LL,
     403     781873161339928576LL,
     404     14855280471LL, 424563298789490688LL, 15474250491LL,
     405     67253436239052800LL,
     406     16093220510LL, 709943573688614912LL, 16712190530LL,
     407     352633711138177024LL,
     408     17331160549LL, 995323848587739136LL, 17950130569LL,
     409     638013986037301248LL,
     410     18569100589LL, 280704123486863360LL, 19188070608LL,
     411     923394260936425472LL,
     412     19807040628LL, 566084398385987584LL, 20426010648LL,
     413     208774535835549696LL,
     414     21044980667LL, 851464673285111808LL, 21663950687LL,
     415     494154810734673920LL,
     416     22282920707LL, 136844948184236032LL, 22901890726LL,
     417     779535085633798144LL,
     418     23520860746LL, 422225223083360256LL, 24139830766LL,
     419     64915360532922368LL,
     420     24758800785LL, 707605497982484480LL, 25377770805LL,
     421     350295635432046592LL,
     422     25996740824LL, 992985772881608704LL, 26615710844LL,
     423     635675910331170816LL,
     424     27234680864LL, 278366047780732928LL, 27853650883LL,
     425     921056185230295040LL,
     426     28472620903LL, 563746322679857152LL, 29091590923LL,
     427     206436460129419264LL,
     428     29710560942LL, 849126597578981376LL, 30329530962LL,
     429     491816735028543488LL,
     430     30948500982LL, 134506872478105600LL, 31567471001LL,
     431     777197009927667712LL,
     432     32186441021LL, 419887147377229824LL, 32805411041LL,
     433     62577284826791936LL,
     434     33424381060LL, 705267422276354048LL, 34043351080LL,
     435     347957559725916160LL,
     436     34662321099LL, 990647697175478272LL, 35281291119LL,
     437     633337834625040384LL,
     438     35900261139LL, 276027972074602496LL, 36519231158LL,
     439     918718109524164608LL,
     440     37138201178LL, 561408246973726720LL, 37757171198LL,
     441     204098384423288832LL,
     442     38376141217LL, 846788521872850944LL, 38995111237LL,
     443     489478659322413056LL,
     444     },
     445  
     446    {
     447     0LL, 0LL, 39614081257LL, 132168796771975168LL,
     448     79228162514LL, 264337593543950336LL, 118842243771LL,
     449     396506390315925504LL,
     450     158456325028LL, 528675187087900672LL, 198070406285LL,
     451     660843983859875840LL,
     452     237684487542LL, 793012780631851008LL, 277298568799LL,
     453     925181577403826176LL,
     454     316912650057LL, 57350374175801344LL, 356526731314LL,
     455     189519170947776512LL,
     456     396140812571LL, 321687967719751680LL, 435754893828LL,
     457     453856764491726848LL,
     458     475368975085LL, 586025561263702016LL, 514983056342LL,
     459     718194358035677184LL,
     460     554597137599LL, 850363154807652352LL, 594211218856LL,
     461     982531951579627520LL,
     462     633825300114LL, 114700748351602688LL, 673439381371LL,
     463     246869545123577856LL,
     464     713053462628LL, 379038341895553024LL, 752667543885LL,
     465     511207138667528192LL,
     466     792281625142LL, 643375935439503360LL, 831895706399LL,
     467     775544732211478528LL,
     468     871509787656LL, 907713528983453696LL, 911123868914LL,
     469     39882325755428864LL,
     470     950737950171LL, 172051122527404032LL, 990352031428LL,
     471     304219919299379200LL,
     472     1029966112685LL, 436388716071354368LL, 1069580193942LL,
     473     568557512843329536LL,
     474     1109194275199LL, 700726309615304704LL, 1148808356456LL,
     475     832895106387279872LL,
     476     1188422437713LL, 965063903159255040LL, 1228036518971LL,
     477     97232699931230208LL,
     478     1267650600228LL, 229401496703205376LL, 1307264681485LL,
     479     361570293475180544LL,
     480     1346878762742LL, 493739090247155712LL, 1386492843999LL,
     481     625907887019130880LL,
     482     1426106925256LL, 758076683791106048LL, 1465721006513LL,
     483     890245480563081216LL,
     484     1505335087771LL, 22414277335056384LL, 1544949169028LL,
     485     154583074107031552LL,
     486     1584563250285LL, 286751870879006720LL, 1624177331542LL,
     487     418920667650981888LL,
     488     1663791412799LL, 551089464422957056LL, 1703405494056LL,
     489     683258261194932224LL,
     490     1743019575313LL, 815427057966907392LL, 1782633656570LL,
     491     947595854738882560LL,
     492     1822247737828LL, 79764651510857728LL, 1861861819085LL,
     493     211933448282832896LL,
     494     1901475900342LL, 344102245054808064LL, 1941089981599LL,
     495     476271041826783232LL,
     496     1980704062856LL, 608439838598758400LL, 2020318144113LL,
     497     740608635370733568LL,
     498     2059932225370LL, 872777432142708736LL, 2099546306628LL,
     499     4946228914683904LL,
     500     2139160387885LL, 137115025686659072LL, 2178774469142LL,
     501     269283822458634240LL,
     502     2218388550399LL, 401452619230609408LL, 2258002631656LL,
     503     533621416002584576LL,
     504     2297616712913LL, 665790212774559744LL, 2337230794170LL,
     505     797959009546534912LL,
     506     2376844875427LL, 930127806318510080LL, 2416458956685LL,
     507     62296603090485248LL,
     508     2456073037942LL, 194465399862460416LL, 2495687119199LL,
     509     326634196634435584LL,
     510     },
     511  
     512    {
     513     0LL, 0LL, 2535301200456LL, 458802993406410752LL,
     514     5070602400912LL, 917605986812821504LL, 7605903601369LL,
     515     376408980219232256LL,
     516     10141204801825LL, 835211973625643008LL, 12676506002282LL,
     517     294014967032053760LL,
     518     15211807202738LL, 752817960438464512LL, 17747108403195LL,
     519     211620953844875264LL,
     520     20282409603651LL, 670423947251286016LL, 22817710804108LL,
     521     129226940657696768LL,
     522     25353012004564LL, 588029934064107520LL, 27888313205021LL,
     523     46832927470518272LL,
     524     30423614405477LL, 505635920876929024LL, 32958915605933LL,
     525     964438914283339776LL,
     526     35494216806390LL, 423241907689750528LL, 38029518006846LL,
     527     882044901096161280LL,
     528     40564819207303LL, 340847894502572032LL, 43100120407759LL,
     529     799650887908982784LL,
     530     45635421608216LL, 258453881315393536LL, 48170722808672LL,
     531     717256874721804288LL,
     532     50706024009129LL, 176059868128215040LL, 53241325209585LL,
     533     634862861534625792LL,
     534     55776626410042LL, 93665854941036544LL, 58311927610498LL,
     535     552468848347447296LL,
     536     60847228810955LL, 11271841753858048LL, 63382530011411LL,
     537     470074835160268800LL,
     538     65917831211867LL, 928877828566679552LL, 68453132412324LL,
     539     387680821973090304LL,
     540     70988433612780LL, 846483815379501056LL, 73523734813237LL,
     541     305286808785911808LL,
     542     76059036013693LL, 764089802192322560LL, 78594337214150LL,
     543     222892795598733312LL,
     544     81129638414606LL, 681695789005144064LL, 83664939615063LL,
     545     140498782411554816LL,
     546     86200240815519LL, 599301775817965568LL, 88735542015976LL,
     547     58104769224376320LL,
     548     91270843216432LL, 516907762630787072LL, 93806144416888LL,
     549     975710756037197824LL,
     550     96341445617345LL, 434513749443608576LL, 98876746817801LL,
     551     893316742850019328LL,
     552     101412048018258LL, 352119736256430080LL, 103947349218714LL,
     553     810922729662840832LL,
     554     106482650419171LL, 269725723069251584LL, 109017951619627LL,
     555     728528716475662336LL,
     556     111553252820084LL, 187331709882073088LL, 114088554020540LL,
     557     646134703288483840LL,
     558     116623855220997LL, 104937696694894592LL, 119159156421453LL,
     559     563740690101305344LL,
     560     121694457621910LL, 22543683507716096LL, 124229758822366LL,
     561     481346676914126848LL,
     562     126765060022822LL, 940149670320537600LL, 129300361223279LL,
     563     398952663726948352LL,
     564     131835662423735LL, 857755657133359104LL, 134370963624192LL,
     565     316558650539769856LL,
     566     136906264824648LL, 775361643946180608LL, 139441566025105LL,
     567     234164637352591360LL,
     568     141976867225561LL, 692967630759002112LL, 144512168426018LL,
     569     151770624165412864LL,
     570     147047469626474LL, 610573617571823616LL, 149582770826931LL,
     571     69376610978234368LL,
     572     152118072027387LL, 528179604384645120LL, 154653373227843LL,
     573     986982597791055872LL,
     574     157188674428300LL, 445785591197466624LL, 159723975628756LL,
     575     904588584603877376LL,
     576     },
     577  
     578    {
     579     0LL, 0LL, 162259276829213LL, 363391578010288128LL,
     580     324518553658426LL, 726783156020576256LL, 486777830487640LL,
     581     90174734030864384LL,
     582     649037107316853LL, 453566312041152512LL, 811296384146066LL,
     583     816957890051440640LL,
     584     973555660975280LL, 180349468061728768LL, 1135814937804493LL,
     585     543741046072016896LL,
     586     1298074214633706LL, 907132624082305024LL, 1460333491462920LL,
     587     270524202092593152LL,
     588     1622592768292133LL, 633915780102881280LL, 1784852045121346LL,
     589     997307358113169408LL,
     590     1947111321950560LL, 360698936123457536LL, 2109370598779773LL,
     591     724090514133745664LL,
     592     2271629875608987LL, 87482092144033792LL, 2433889152438200LL,
     593     450873670154321920LL,
     594     2596148429267413LL, 814265248164610048LL, 2758407706096627LL,
     595     177656826174898176LL,
     596     2920666982925840LL, 541048404185186304LL, 3082926259755053LL,
     597     904439982195474432LL,
     598     3245185536584267LL, 267831560205762560LL, 3407444813413480LL,
     599     631223138216050688LL,
     600     3569704090242693LL, 994614716226338816LL, 3731963367071907LL,
     601     358006294236626944LL,
     602     3894222643901120LL, 721397872246915072LL, 4056481920730334LL,
     603     84789450257203200LL,
     604     4218741197559547LL, 448181028267491328LL, 4381000474388760LL,
     605     811572606277779456LL,
     606     4543259751217974LL, 174964184288067584LL, 4705519028047187LL,
     607     538355762298355712LL,
     608     4867778304876400LL, 901747340308643840LL, 5030037581705614LL,
     609     265138918318931968LL,
     610     5192296858534827LL, 628530496329220096LL, 5354556135364040LL,
     611     991922074339508224LL,
     612     5516815412193254LL, 355313652349796352LL, 5679074689022467LL,
     613     718705230360084480LL,
     614     5841333965851681LL, 82096808370372608LL, 6003593242680894LL,
     615     445488386380660736LL,
     616     6165852519510107LL, 808879964390948864LL, 6328111796339321LL,
     617     172271542401236992LL,
     618     6490371073168534LL, 535663120411525120LL, 6652630349997747LL,
     619     899054698421813248LL,
     620     6814889626826961LL, 262446276432101376LL, 6977148903656174LL,
     621     625837854442389504LL,
     622     7139408180485387LL, 989229432452677632LL, 7301667457314601LL,
     623     352621010462965760LL,
     624     7463926734143814LL, 716012588473253888LL, 7626186010973028LL,
     625     79404166483542016LL,
     626     7788445287802241LL, 442795744493830144LL, 7950704564631454LL,
     627     806187322504118272LL,
     628     8112963841460668LL, 169578900514406400LL, 8275223118289881LL,
     629     532970478524694528LL,
     630     8437482395119094LL, 896362056534982656LL, 8599741671948308LL,
     631     259753634545270784LL,
     632     8762000948777521LL, 623145212555558912LL, 8924260225606734LL,
     633     986536790565847040LL,
     634     9086519502435948LL, 349928368576135168LL, 9248778779265161LL,
     635     713319946586423296LL,
     636     9411038056094375LL, 76711524596711424LL, 9573297332923588LL,
     637     440103102606999552LL,
     638     9735556609752801LL, 803494680617287680LL, 9897815886582015LL,
     639     166886258627575808LL,
     640     10060075163411228LL, 530277836637863936LL, 10222334440240441LL,
     641     893669414648152064LL}
     642  };