summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2017-12-07 15:58:46 +0100
committerAraq <rumpf_a@web.de>2017-12-07 15:58:46 +0100
commit226532f8f39e8d37d392282ed57aa891c0e69736 (patch)
tree3658c550a82aa15a1669ee535866371c79f4923e
parent7c9a3161daaf971303779c9d2199474b2d955082 (diff)
downloadNim-226532f8f39e8d37d392282ed57aa891c0e69736.tar.gz
cleanup todo.txt
-rw-r--r--lib/system/mmdisp.nim3
-rw-r--r--tests/fragmentation/data.nim7629
-rw-r--r--tests/fragmentation/tfragment_alloc.nim19
-rw-r--r--tests/fragmentation/tfragment_gc.nim16
-rw-r--r--todo.txt2
5 files changed, 7666 insertions, 3 deletions
diff --git a/lib/system/mmdisp.nim b/lib/system/mmdisp.nim
index d65d8a10e..9ac039e19 100644
--- a/lib/system/mmdisp.nim
+++ b/lib/system/mmdisp.nim
@@ -42,7 +42,8 @@ type
 # Page size of the system; in most cases 4096 bytes. For exotic OS or
 # CPU this needs to be changed:
 const
-  PageShift = when defined(cpu16): 8 else: 12
+  PageShift = when defined(cpu16): 8 else: 12 # \
+    # my tests showed no improvments for using larger page sizes.
   PageSize = 1 shl PageShift
   PageMask = PageSize-1
 
diff --git a/tests/fragmentation/data.nim b/tests/fragmentation/data.nim
new file mode 100644
index 000000000..d14123c0f
--- /dev/null
+++ b/tests/fragmentation/data.nim
@@ -0,0 +1,7629 @@
+
+const sizes* = [
+  643584,
+  140800,
+  802,
+  2464928,
+  488122,
+  1161601,
+  861051,
+  1413,
+  389,
+  2412032,
+  328704,
+  323488,
+  484864,
+  31232,
+  38400,
+  87552,
+  328704,
+  242176,
+  55808,
+  32256,
+  15360,
+  15080,
+  567074,
+  1390,
+  1390,
+  366080,
+  186536,
+  314368,
+  4154,
+  3017582,
+  62658,
+  3874662,
+  227,
+  126616,
+  290,
+  261792,
+  287,
+  151200,
+  293,
+  34976,
+  293,
+  28840,
+  296,
+  20664,
+  314,
+  223232,
+  288,
+  53248,
+  326,
+  12800,
+  312,
+  473600,
+  306,
+  2676224,
+  308,
+  2846720,
+  308,
+  563712,
+  308,
+  567296,
+  308,
+  576000,
+  308,
+  577024,
+  308,
+  577536,
+  308,
+  577536,
+  308,
+  578560,
+  308,
+  578560,
+  308,
+  145920,
+  310,
+  159232,
+  312,
+  364544,
+  310,
+  178176,
+  312,
+  8032448,
+  323,
+  29392,
+  332,
+  35112,
+  394,
+  85768,
+  371,
+  88864,
+  385,
+  23840,
+  385,
+  176128,
+  386,
+  126976,
+  389,
+  24800,
+  401,
+  118784,
+  379,
+  21792,
+  385,
+  259152,
+  385,
+  172032,
+  389,
+  40960,
+  389,
+  114688,
+  403,
+  57344,
+  407,
+  7680,
+  407,
+  126216,
+  373,
+  29952,
+  367,
+  148768,
+  385,
+  27384,
+  362,
+  24832,
+  362,
+  50944,
+  364,
+  20136,
+  302,
+  32416,
+  293,
+  69296,
+  305,
+  36016,
+  308,
+  89784,
+  305,
+  5120,
+  305,
+  49152,
+  320,
+  30424,
+  331,
+  12288,
+  326,
+  62976,
+  69120,
+  72192,
+  503808,
+  77824,
+  382144,
+  163840,
+  88728,
+  1581,
+  1718096,
+  66728,
+  82172,
+  116756,
+  4554752,
+  59342,
+  45794,
+  39284,
+  66384,
+  60294,
+  83748,
+  83748,
+  262148,
+  20320,
+  28288,
+  382,
+  3072,
+  4222976,
+  161,
+  1737888,
+  2975744,
+  487424,
+  258048,
+  113664,
+  372736,
+  261632,
+  5287936,
+  80896,
+  89600,
+  503808,
+  77824,
+  554176,
+  163840,
+  84632,
+  1581,
+  1714000,
+  66728,
+  82172,
+  116756,
+  4571136,
+  59342,
+  45794,
+  39284,
+  66384,
+  60294,
+  83748,
+  83748,
+  262148,
+  20320,
+  28288,
+  4006400,
+  161,
+  2256032,
+  3150336,
+  503296,
+  245760,
+  133120,
+  358400,
+  283136,
+  5296128,
+  10752,
+  507904,
+  315392,
+  11264,
+  921600,
+  7680,
+  118784,
+  166560,
+  13312,
+  5120,
+  18768,
+  52736,
+  8192,
+  77824,
+  6656,
+  106496,
+  389120,
+  733184,
+  53248,
+  36864,
+  36864,
+  655360,
+  139264,
+  802816,
+  169864,
+  77824,
+  10752,
+  94208,
+  17808,
+  40960,
+  36864,
+  749568,
+  45056,
+  188416,
+  28672,
+  16384,
+  69632,
+  102400,
+  11776,
+  10752,
+  290816,
+  36864,
+  36864,
+  667648,
+  53248,
+  49152,
+  200704,
+  45056,
+  40960,
+  77824,
+  10240,
+  9216,
+  77504,
+  161472,
+  163528,
+  26304,
+  26312,
+  96448,
+  99016,
+  19648,
+  19656,
+  127680,
+  127680,
+  364224,
+  323272,
+  73408,
+  71368,
+  24776,
+  138944,
+  128200,
+  27328,
+  48832,
+  37576,
+  32960,
+  52928,
+  40128,
+  89792,
+  80584,
+  25792,
+  499392,
+  504520,
+  163520,
+  167624,
+  36032,
+  36040,
+  138944,
+  127688,
+  4208320,
+  4839104,
+  77504,
+  81608,
+  2768576,
+  2757832,
+  331456,
+  321728,
+  65224,
+  65216,
+  56008,
+  163520,
+  154816,
+  48832,
+  77504,
+  62656,
+  48832,
+  77504,
+  50888,
+  57024,
+  47296,
+  52928,
+  40640,
+  71360,
+  71360,
+  22208,
+  22208,
+  57024,
+  45768,
+  48832,
+  48840,
+  3720896,
+  4037832,
+  790208,
+  868040,
+  230592,
+  230592,
+  20160,
+  20160,
+  29376,
+  31944,
+  1355456,
+  1419976,
+  839360,
+  851656,
+  32960,
+  36040,
+  179904,
+  265920,
+  85696,
+  85696,
+  33472,
+  33472,
+  392896,
+  391872,
+  397008,
+  48832,
+  48832,
+  48832,
+  48832,
+  52928,
+  48832,
+  48832,
+  57024,
+  36032,
+  36032,
+  48832,
+  48840,
+  48840,
+  48832,
+  52928,
+  48832,
+  48832,
+  57024,
+  36032,
+  36032,
+  48848,
+  48848,
+  48848,
+  48848,
+  52944,
+  48848,
+  48848,
+  57040,
+  36048,
+  36048,
+  57024,
+  45760,
+  20160,
+  20160,
+  34528,
+  13024,
+  397312,
+  5120,
+  28672,
+  659456,
+  372736,
+  110592,
+  9216,
+  9728,
+  61440,
+  28672,
+  5632,
+  41984,
+  29736,
+  20056,
+  216632,
+  110184,
+  27032,
+  37472,
+  31592,
+  24376,
+  102728,
+  280912,
+  27472,
+  27936,
+  23392,
+  56624,
+  57216,
+  38744,
+  51016,
+  36696,
+  48896,
+  53024,
+  32032,
+  34120,
+  34120,
+  20256,
+  107848,
+  109928,
+  1267040,
+  46984,
+  496544,
+  1174384,
+  762288,
+  101744,
+  32664,
+  95712,
+  48480,
+  365344,
+  98448,
+  86440,
+  35312,
+  37704,
+  75664,
+  101672,
+  47912,
+  15872,
+  11168,
+  22856,
+  22856,
+  506616,
+  556824,
+  61784,
+  30008,
+  44848,
+  81816,
+  31528,
+  32768,
+  12800,
+  27000,
+  155000,
+  14712,
+  14712,
+  14712,
+  15224,
+  14712,
+  15224,
+  14712,
+  14712,
+  14712,
+  15736,
+  14712,
+  13688,
+  14200,
+  122232,
+  14200,
+  14200,
+  14200,
+  14200,
+  14200,
+  14200,
+  14712,
+  13688,
+  14200,
+  14200,
+  15224,
+  14200,
+  13688,
+  13176,
+  978296,
+  1580408,
+  134520,
+  15224,
+  15736,
+  15736,
+  15736,
+  15736,
+  15736,
+  16248,
+  15736,
+  15736,
+  15224,
+  16760,
+  15224,
+  14712,
+  15224,
+  171384,
+  175480,
+  159096,
+  171384,
+  179576,
+  171384,
+  191864,
+  175480,
+  175480,
+  171384,
+  216440,
+  167288,
+  155000,
+  155000,
+  40312,
+  27000,
+  48504,
+  14200,
+  14200,
+  14712,
+  14200,
+  14200,
+  14200,
+  14712,
+  13688,
+  14200,
+  14200,
+  14712,
+  14712,
+  13688,
+  14200,
+  52600,
+  56696,
+  146704,
+  21792,
+  286720,
+  15360,
+  13824,
+  7168,
+  7168,
+  421888,
+  36864,
+  36864,
+  110592,
+  4608,
+  4096,
+  29576,
+  29576,
+  29576,
+  29576,
+  40840,
+  30088,
+  32136,
+  27368,
+  27528,
+  315392,
+  381,
+  3072,
+  1318,
+  3072,
+  375,
+  3072,
+  378,
+  3072,
+  598016,
+  53248,
+  32768,
+  110592,
+  43696,
+  5283840,
+  196608,
+  139264,
+  397312,
+  249856,
+  163840,
+  864256,
+  372736,
+  532480,
+  36864,
+  5632,
+  110592,
+  5120,
+  129664,
+  110592,
+  10752,
+  3203072,
+  163840,
+  45056,
+  57344,
+  8192,
+  425984,
+  81920,
+  28672,
+  49152,
+  671744,
+  61440,
+  53248,
+  2879488,
+  229376,
+  15360,
+  397312,
+  684032,
+  57344,
+  110592,
+  356352,
+  696320,
+  462848,
+  53248,
+  163840,
+  11776,
+  98304,
+  470240,
+  47328,
+  745472,
+  36864,
+  974848,
+  397312,
+  5062656,
+  544768,
+  401408,
+  290816,
+  36864,
+  188416,
+  28672,
+  40960,
+  630784,
+  81920,
+  6144,
+  24576,
+  32768,
+  446464,
+  65536,
+  126976,
+  53248,
+  131072,
+  11776,
+  389120,
+  3010560,
+  278528,
+  253952,
+  143360,
+  13824,
+  258048,
+  77824,
+  237568,
+  16896,
+  212992,
+  307200,
+  32768,
+  970752,
+  131072,
+  11776,
+  98304,
+  270336,
+  28672,
+  5992448,
+  73728,
+  36864,
+  491520,
+  32768,
+  569344,
+  69632,
+  114688,
+  40960,
+  692224,
+  65536,
+  28672,
+  77824,
+  3584,
+  229376,
+  32768,
+  4096,
+  16896,
+  139264,
+  131072,
+  11264,
+  15360,
+  1282048,
+  335872,
+  49152,
+  634880,
+  835584,
+  81920,
+  98304,
+  622592,
+  61440,
+  7168,
+  839680,
+  81920,
+  5025792,
+  434176,
+  12288,
+  3584,
+  1142784,
+  188416,
+  1630208,
+  311296,
+  540672,
+  36864,
+  507904,
+  102400,
+  2056192,
+  139264,
+  167936,
+  172032,
+  4096,
+  380928,
+  8192,
+  40960,
+  4096,
+  98304,
+  7168,
+  10584,
+  81080,
+  23376,
+  1257472,
+  90112,
+  94208,
+  5120,
+  150168,
+  25600,
+  2553856,
+  69120,
+  220672,
+  51712,
+  1349120,
+  1349120,
+  167424,
+  786432,
+  515584,
+  291328,
+  1681920,
+  33792,
+  102400,
+  102912,
+  60928,
+  44032,
+  631296,
+  44544,
+  11776,
+  408576,
+  138752,
+  1849856,
+  13824,
+  33280,
+  44544,
+  17920,
+  11776,
+  9153536,
+  150016,
+  13824,
+  24576,
+  293888,
+  651264,
+  818176,
+  17920,
+  141312,
+  64512,
+  583168,
+  58368,
+  830976,
+  109568,
+  65536,
+  24576,
+  771584,
+  1545728,
+  1540608,
+  11776,
+  144896,
+  11776,
+  18944,
+  67584,
+  65536,
+  17920,
+  848896,
+  43520,
+  30720,
+  27648,
+  1935872,
+  127488,
+  11264,
+  44032,
+  583168,
+  11264,
+  67584,
+  632320,
+  38400,
+  8470528,
+  127488,
+  257536,
+  30720,
+  111104,
+  286720,
+  1711616,
+  64000,
+  240128,
+  22016,
+  86528,
+  174080,
+  16896,
+  531456,
+  17920,
+  23552,
+  20992,
+  20992,
+  22528,
+  20992,
+  19456,
+  19456,
+  20992,
+  20992,
+  11500544,
+  12260864,
+  368128,
+  14345216,
+  29184,
+  29184,
+  84480,
+  64512,
+  925696,
+  8003072,
+  141312,
+  978432,
+  2305024,
+  6658048,
+  1116160,
+  1593344,
+  1059328,
+  777216,
+  214016,
+  627200,
+  11935232,
+  1840640,
+  12438528,
+  5466624,
+  86528,
+  98816,
+  3358720,
+  145408,
+  126976,
+  73728,
+  78848,
+  94208,
+  348672,
+  76288,
+  2347008,
+  2347008,
+  2176512,
+  237056,
+  1130496,
+  416768,
+  713216,
+  1126400,
+  61440,
+  163328,
+  158208,
+  61440,
+  2173952,
+  681472,
+  33792,
+  15580160,
+  16565248,
+  463360,
+  19202560,
+  47104,
+  116736,
+  89088,
+  10677248,
+  192512,
+  1320448,
+  3324416,
+  8741888,
+  1639936,
+  2320384,
+  1482752,
+  11899392,
+  1028608,
+  296448,
+  921600,
+  15390720,
+  2292224,
+  17390080,
+  6968320,
+  125952,
+  136192,
+  4978176,
+  193536,
+  169984,
+  104960,
+  43520,
+  300,
+  112128,
+  536,
+  110592,
+  536,
+  112128,
+  536,
+  2664448,
+  1060,
+  2664448,
+  1060,
+  2664448,
+  1060,
+  71168,
+  572,
+  72192,
+  572,
+  71168,
+  572,
+  131072,
+  2416,
+  82944,
+  3084,
+  12800,
+  3508,
+  15872,
+  3576,
+  1321984,
+  1364,
+  653312,
+  2124,
+  18492416,
+  2048,
+  6656,
+  344,
+  1219584,
+  416,
+  548864,
+  2444,
+  6656,
+  344,
+  11776,
+  1008,
+  54272,
+  404,
+  63488,
+  404,
+  64000,
+  404,
+  624640,
+  5752,
+  624640,
+  5720,
+  89600,
+  1736,
+  164352,
+  1096,
+  178688,
+  1096,
+  16384,
+  352,
+  326656,
+  1368,
+  315392,
+  1368,
+  699392,
+  1004,
+  54784,
+  360,
+  75776,
+  352,
+  69120,
+  352,
+  61440,
+  352,
+  62976,
+  352,
+  61952,
+  352,
+  53760,
+  360,
+  61440,
+  352,
+  62464,
+  352,
+  33280,
+  320,
+  23552,
+  368,
+  26112,
+  360,
+  26624,
+  324,
+  26112,
+  360,
+  27648,
+  320,
+  27136,
+  320,
+  27136,
+  320,
+  28160,
+  360,
+  27648,
+  320,
+  27648,
+  320,
+  27648,
+  320,
+  33280,
+  320,
+  27648,
+  320,
+  26112,
+  360,
+  29696,
+  320,
+  31232,
+  360,
+  26112,
+  360,
+  27648,
+  320,
+  25088,
+  328,
+  27648,
+  320,
+  26624,
+  320,
+  25088,
+  328,
+  25088,
+  328,
+  25088,
+  328,
+  27648,
+  320,
+  26112,
+  360,
+  27136,
+  320,
+  27136,
+  320,
+  27648,
+  320,
+  23552,
+  368,
+  26624,
+  320,
+  25600,
+  320,
+  25600,
+  320,
+  29696,
+  320,
+  27648,
+  320,
+  26624,
+  324,
+  1927168,
+  928,
+  2015232,
+  928,
+  414720,
+  588,
+  426496,
+  588,
+  327680,
+  708,
+  1290240,
+  2608,
+  83456,
+  308,
+  86016,
+  308,
+  109056,
+  308,
+  100352,
+  348,
+  86016,
+  308,
+  109056,
+  308,
+  83968,
+  308,
+  87040,
+  308,
+  76800,
+  312,
+  87040,
+  308,
+  88576,
+  348,
+  79360,
+  348,
+  79872,
+  308,
+  75264,
+  312,
+  87552,
+  308,
+  76800,
+  312,
+  86528,
+  308,
+  88064,
+  308,
+  80384,
+  348,
+  88576,
+  308,
+  83456,
+  308,
+  79872,
+  308,
+  96768,
+  308,
+  86528,
+  308,
+  78848,
+  348,
+  82944,
+  308,
+  88576,
+  308,
+  87552,
+  308,
+  79360,
+  348,
+  69120,
+  352,
+  83968,
+  308,
+  88064,
+  308,
+  82944,
+  308,
+  70144,
+  352,
+  80384,
+  348,
+  75264,
+  312,
+  96768,
+  308,
+  10240,
+  364,
+  9728,
+  364,
+  9728,
+  364,
+  9728,
+  364,
+  9728,
+  364,
+  9728,
+  364,
+  10240,
+  364,
+  9216,
+  368,
+  9216,
+  368,
+  163840,
+  8280,
+  242176,
+  2980,
+  210432,
+  360,
+  244224,
+  360,
+  209408,
+  360,
+  212480,
+  360,
+  192512,
+  364,
+  206336,
+  360,
+  224768,
+  360,
+  193536,
+  364,
+  206336,
+  360,
+  872960,
+  1232,
+  1231872,
+  1056,
+  809472,
+  888,
+  809472,
+  992,
+  3544576,
+  2160,
+  3544576,
+  2056,
+  3580928,
+  2220,
+  2396160,
+  2568,
+  145408,
+  316,
+  160256,
+  316,
+  145408,
+  316,
+  195584,
+  364,
+  140288,
+  316,
+  126464,
+  324,
+  144896,
+  316,
+  160256,
+  316,
+  139264,
+  316,
+  216064,
+  356,
+  212992,
+  356,
+  144896,
+  316,
+  139264,
+  316,
+  140288,
+  316,
+  196608,
+  364,
+  132608,
+  316,
+  128000,
+  324,
+  249344,
+  356,
+  181760,
+  316,
+  142848,
+  316,
+  228864,
+  356,
+  144896,
+  316,
+  147456,
+  316,
+  141824,
+  316,
+  144896,
+  316,
+  214528,
+  356,
+  210944,
+  356,
+  181760,
+  316,
+  140288,
+  320,
+  142848,
+  316,
+  141824,
+  316,
+  210432,
+  356,
+  128000,
+  324,
+  132608,
+  316,
+  140288,
+  320,
+  126464,
+  324,
+  147456,
+  316,
+  26624,
+  364,
+  24576,
+  364,
+  22016,
+  368,
+  29696,
+  364,
+  22528,
+  368,
+  24576,
+  364,
+  24576,
+  364,
+  24576,
+  364,
+  25088,
+  364,
+  2791936,
+  2000,
+  161280,
+  1048,
+  169472,
+  1048,
+  5100032,
+  2612,
+  5506560,
+  1728,
+  8192,
+  380,
+  101888,
+  5804,
+  104960,
+  3332,
+  99328,
+  2872,
+  8704,
+  388,
+  35328,
+  368,
+  11244032,
+  5592,
+  11244032,
+  5592,
+  10870784,
+  5256,
+  10744320,
+  7916,
+  540160,
+  744,
+  408064,
+  720,
+  58368,
+  4604,
+  58368,
+  4604,
+  52736,
+  5008,
+  1554432,
+  4636,
+  2222080,
+  6712,
+  7168,
+  384,
+  6656,
+  400,
+  6656,
+  372,
+  272384,
+  3816,
+  235008,
+  2760,
+  8192,
+  368,
+  625664,
+  5764,
+  563200,
+  6720,
+  9728,
+  392,
+  7168,
+  404,
+  415744,
+  4688,
+  1320960,
+  6228,
+  7168,
+  376,
+  1756160,
+  4992,
+  1961472,
+  6552,
+  244736,
+  360,
+  2317824,
+  6480,
+  1916928,
+  4832,
+  6656,
+  400,
+  8192,
+  372,
+  7168,
+  372,
+  405504,
+  4152,
+  411136,
+  5580,
+  83456,
+  1784,
+  84992,
+  2280,
+  6943744,
+  6676,
+  8638976,
+  9976,
+  16384,
+  368,
+  366080,
+  5696,
+  294912,
+  6460,
+  366080,
+  5696,
+  8192,
+  380,
+  384000,
+  364,
+  622592,
+  8296,
+  564224,
+  7396,
+  359936,
+  4004,
+  700416,
+  6276,
+  7168,
+  372,
+  1648640,
+  6952,
+  1498624,
+  4620,
+  38912,
+  360,
+  6656,
+  396,
+  8255488,
+  5060,
+  7553024,
+  5084,
+  8255488,
+  5060,
+  8048640,
+  8684,
+  4229120,
+  7476,
+  4243456,
+  9716,
+  57344,
+  372,
+  483840,
+  4016,
+  484352,
+  4468,
+  20480,
+  364,
+  6948352,
+  8444,
+  5271552,
+  5800,
+  9728,
+  364,
+  12800,
+  376,
+  273920,
+  2708,
+  114176,
+  2116,
+  256512,
+  6212,
+  186368,
+  6428,
+  1016320,
+  3228,
+  379904,
+  7256,
+  508928,
+  6568,
+  470528,
+  5128,
+  468480,
+  3764,
+  13023232,
+  5424,
+  12046336,
+  7648,
+  13023232,
+  5424,
+  23040,
+  352,
+  1604096,
+  700,
+  625664,
+  708,
+  608256,
+  656,
+  722944,
+  3524,
+  1263104,
+  4232,
+  243200,
+  3632,
+  60928,
+  720,
+  1249280,
+  2216,
+  233472,
+  1212,
+  110080,
+  1104,
+  1939456,
+  2864,
+  289792,
+  1632,
+  241664,
+  2956,
+  535040,
+  3040,
+  25088,
+  688,
+  38400,
+  544,
+  24576,
+  1816,
+  10240,
+  600,
+  10752,
+  1516,
+  68096,
+  1056,
+  75776,
+  424,
+  723968,
+  2076,
+  1162240,
+  1976,
+  117248,
+  760,
+  117248,
+  3696,
+  140800,
+  892,
+  998400,
+  708,
+  1829888,
+  10068,
+  3081216,
+  10696,
+  1305600,
+  4820,
+  172032,
+  1524,
+  7168,
+  304,
+  578048,
+  2232,
+  505856,
+  2232,
+  7168,
+  288,
+  149504,
+  856,
+  38400,
+  464,
+  196608,
+  1268,
+  198656,
+  1268,
+  752128,
+  2188,
+  799232,
+  2188,
+  164864,
+  1912,
+  197120,
+  1912,
+  261632,
+  1552,
+  259584,
+  1552,
+  601600,
+  1372,
+  583680,
+  1372,
+  19968,
+  832,
+  19968,
+  832,
+  375296,
+  1556,
+  373248,
+  1556,
+  44032,
+  2192,
+  44032,
+  1696,
+  148992,
+  1272,
+  148992,
+  1272,
+  71168,
+  988,
+  71168,
+  988,
+  108032,
+  2516,
+  96768,
+  1772,
+  1223680,
+  3812,
+  1895936,
+  4020,
+  560128,
+  708,
+  392192,
+  656,
+  1083904,
+  2364,
+  294400,
+  1948,
+  446464,
+  1620,
+  451072,
+  1620,
+  1251840,
+  432,
+  611840,
+  5216,
+  47104,
+  620,
+  53248,
+  620,
+  501760,
+  3572,
+  200192,
+  3312,
+  2404352,
+  580,
+  1298944,
+  876,
+  783360,
+  772,
+  111104,
+  504,
+  491008,
+  748,
+  580096,
+  1784,
+  6215680,
+  696,
+  1199616,
+  1832,
+  1252864,
+  2000,
+  314880,
+  1076,
+  346112,
+  2008,
+  11637248,
+  2264,
+  1553920,
+  3336,
+  311296,
+  1268,
+  259584,
+  1652,
+  1376256,
+  2196,
+  1782784,
+  3148,
+  516096,
+  1248,
+  1872896,
+  3692,
+  377856,
+  316,
+  96256,
+  608,
+  62464,
+  804,
+  338432,
+  1500,
+  296960,
+  1512,
+  396800,
+  1652,
+  329216,
+  1424,
+  859648,
+  2168,
+  2535424,
+  3688,
+  1282560,
+  2192,
+  4596736,
+  5784,
+  2210816,
+  2420,
+  139776,
+  760,
+  4002304,
+  4776,
+  4817920,
+  3500,
+  26624,
+  352,
+  488448,
+  2188,
+  1078272,
+  5188,
+  808448,
+  5548,
+  76288,
+  1496,
+  50688,
+  688,
+  603648,
+  4856,
+  600064,
+  3928,
+  49152,
+  368,
+  491008,
+  3236,
+  487936,
+  3120,
+  144896,
+  2216,
+  1013248,
+  6708,
+  805888,
+  6448,
+  114688,
+  320,
+  104448,
+  328,
+  103936,
+  328,
+  112128,
+  320,
+  113152,
+  320,
+  114688,
+  320,
+  110592,
+  320,
+  113664,
+  320,
+  136192,
+  320,
+  122880,
+  320,
+  110592,
+  320,
+  111616,
+  324,
+  113152,
+  320,
+  1485824,
+  4928,
+  690688,
+  10996,
+  737280,
+  12228,
+  108032,
+  924,
+  101888,
+  740,
+  6156288,
+  4976,
+  6376448,
+  6200,
+  548352,
+  1492,
+  441344,
+  1168,
+  1564672,
+  8060,
+  1538560,
+  7084,
+  169472,
+  368,
+  521216,
+  4180,
+  133632,
+  2348,
+  134144,
+  2348,
+  1046016,
+  8576,
+  1351680,
+  4732,
+  1823232,
+  1872,
+  829440,
+  3820,
+  781312,
+  3720,
+  5850112,
+  10748,
+  4831232,
+  10408,
+  119296,
+  2012,
+  118784,
+  2012,
+  19456,
+  1652,
+  9411584,
+  320,
+  9260032,
+  320,
+  367616,
+  4564,
+  360960,
+  4372,
+  69632,
+  7804,
+  68608,
+  6724,
+  1329152,
+  7692,
+  1319424,
+  6936,
+  2029568,
+  3088,
+  115200,
+  4584,
+  139776,
+  5012,
+  2570752,
+  1576,
+  43520,
+  2792,
+  42496,
+  2792,
+  842752,
+  7988,
+  2548224,
+  11824,
+  5488128,
+  1760,
+  260096,
+  7020,
+  706048,
+  3612,
+  740352,
+  5040,
+  16384,
+  380,
+  235520,
+  2536,
+  264704,
+  2652,
+  4364288,
+  8256,
+  4176896,
+  6204,
+  16559104,
+  3220,
+  107008,
+  2052,
+  1103872,
+  3264,
+  1098752,
+  3056,
+  1177600,
+  3856,
+  1028608,
+  3404,
+  663552,
+  2212,
+  665088,
+  2396,
+  140288,
+  560,
+  90112,
+  2736,
+  141824,
+  1284,
+  6045184,
+  13232,
+  4726784,
+  12052,
+  176640,
+  4388,
+  626688,
+  3868,
+  621568,
+  3868,
+  1908224,
+  1820,
+  704512,
+  4976,
+  700928,
+  4584,
+  2672128,
+  7920,
+  2396160,
+  7872,
+  4750848,
+  4916,
+  4597248,
+  5928,
+  345600,
+  7092,
+  318976,
+  7204,
+  31744,
+  676,
+  32256,
+  676,
+  593920,
+  3824,
+  615936,
+  4292,
+  1656320,
+  9112,
+  1626112,
+  9324,
+  177152,
+  2020,
+  5765632,
+  5816,
+  56320,
+  2228,
+  61952,
+  2228,
+  1814528,
+  3612,
+  6656,
+  380,
+  16896,
+  456,
+  31744,
+  844,
+  3265024,
+  9080,
+  4318720,
+  11204,
+  192512,
+  784,
+  188416,
+  784,
+  627200,
+  11148,
+  681472,
+  11644,
+  1456640,
+  4156,
+  306176,
+  2064,
+  305152,
+  1908,
+  2410496,
+  9624,
+  3928576,
+  10028,
+  3820544,
+  9056,
+  5166080,
+  3392,
+  417792,
+  1840,
+  17920,
+  720,
+  17920,
+  720,
+  732672,
+  5100,
+  832512,
+  5676,
+  1738752,
+  4948,
+  1936896,
+  452,
+  1940480,
+  452,
+  68608,
+  3424,
+  68608,
+  3428,
+  211456,
+  4428,
+  203776,
+  4120,
+  467456,
+  3208,
+  423936,
+  4084,
+  701952,
+  5048,
+  474624,
+  5268,
+  2202112,
+  6132,
+  136704,
+  2432,
+  136704,
+  2432,
+  10240,
+  372,
+  35840,
+  824,
+  35840,
+  824,
+  365568,
+  5700,
+  365568,
+  6176,
+  155648,
+  2168,
+  156160,
+  2168,
+  24064,
+  1004,
+  35840,
+  1392,
+  337408,
+  4956,
+  341504,
+  4688,
+  77312,
+  5412,
+  79360,
+  6264,
+  2067456,
+  10360,
+  435712,
+  448,
+  1226240,
+  5600,
+  1228800,
+  5952,
+  16384,
+  324,
+  16896,
+  324,
+  16896,
+  324,
+  16896,
+  328,
+  15872,
+  332,
+  16896,
+  324,
+  17920,
+  324,
+  16384,
+  324,
+  16896,
+  324,
+  16896,
+  324,
+  15872,
+  332,
+  16896,
+  324,
+  18432,
+  324,
+  99328,
+  776,
+  2295296,
+  8784,
+  1970176,
+  7988,
+  175104,
+  7768,
+  183808,
+  8200,
+  23552,
+  1244,
+  364032,
+  4316,
+  955904,
+  6660,
+  1570304,
+  8804,
+  1491968,
+  8444,
+  725504,
+  528,
+  729088,
+  528,
+  172544,
+  928,
+  411648,
+  7312,
+  294400,
+  3532,
+  313344,
+  3416,
+  48640,
+  984,
+  48128,
+  984,
+  48128,
+  1760,
+  160768,
+  900,
+  160768,
+  900,
+  3207680,
+  2016,
+  155136,
+  4012,
+  312320,
+  4680,
+  287232,
+  2888,
+  288768,
+  2888,
+  898560,
+  4116,
+  894464,
+  4116,
+  15360,
+  364,
+  2923520,
+  6556,
+  103936,
+  2668,
+  115200,
+  4552,
+  93696,
+  920,
+  87552,
+  920,
+  384512,
+  1976,
+  374784,
+  1976,
+  122368,
+  2456,
+  4463616,
+  2788,
+  1618432,
+  1200,
+  69632,
+  1672,
+  18432,
+  328,
+  23040,
+  1268,
+  13824,
+  328,
+  80384,
+  2132,
+  363008,
+  5288,
+  363520,
+  5776,
+  47616,
+  2808,
+  206848,
+  1952,
+  214016,
+  2120,
+  1050624,
+  6560,
+  1114112,
+  7476,
+  1883648,
+  1708,
+  710144,
+  9276,
+  937472,
+  12088,
+  3946496,
+  10876,
+  3973632,
+  11776,
+  6656,
+  372,
+  56832,
+  2452,
+  2269696,
+  10188,
+  300544,
+  4128,
+  299520,
+  3920,
+  1971712,
+  7600,
+  1007104,
+  3108,
+  9728,
+  384,
+  7168,
+  364,
+  32256,
+  512,
+  28672,
+  512,
+  640000,
+  1636,
+  24064,
+  1976,
+  272896,
+  3096,
+  167936,
+  3860,
+  1135616,
+  4944,
+  96768,
+  1772,
+  1086464,
+  10516,
+  1362944,
+  7912,
+  62976,
+  656,
+  63488,
+  656,
+  63488,
+  656,
+  115712,
+  320,
+  115200,
+  320,
+  895488,
+  9612,
+  11264,
+  336,
+  271360,
+  2784,
+  394240,
+  9496,
+  53760,
+  784,
+  360448,
+  6288,
+  84480,
+  2488,
+  588288,
+  7708,
+  724480,
+  7052,
+  2811392,
+  12416,
+  2999296,
+  10636,
+  34304,
+  332,
+  38400,
+  336,
+  38400,
+  336,
+  1101312,
+  4140,
+  1100288,
+  4072,
+  13824,
+  332,
+  13312,
+  332,
+  13824,
+  332,
+  12800,
+  336,
+  11776,
+  372,
+  13312,
+  332,
+  13312,
+  332,
+  13312,
+  332,
+  15360,
+  332,
+  13312,
+  332,
+  13824,
+  332,
+  12800,
+  336,
+  13312,
+  332,
+  13312,
+  332,
+  125952,
+  3308,
+  128000,
+  3688,
+  431616,
+  2860,
+  442880,
+  3348,
+  2013184,
+  1400,
+  660992,
+  5236,
+  1506816,
+  5124,
+  707584,
+  3248,
+  706560,
+  3248,
+  1534976,
+  572,
+  1537536,
+  572,
+  2013696,
+  3344,
+  2031616,
+  3344,
+  57856,
+  2364,
+  205824,
+  1748,
+  739328,
+  1232,
+  741376,
+  1232,
+  67584,
+  1316,
+  1430528,
+  2832,
+  429568,
+  620,
+  455680,
+  620,
+  1007616,
+  5588,
+  1282048,
+  2624,
+  1265152,
+  2628,
+  4728320,
+  7148,
+  4441600,
+  6448,
+  4735488,
+  5152,
+  3809280,
+  5136,
+  4013568,
+  5852,
+  97280,
+  1332,
+  978432,
+  3564,
+  72704,
+  2504,
+  28672,
+  376,
+  2288640,
+  7400,
+  2407936,
+  7308,
+  901632,
+  8740,
+  972288,
+  9456,
+  1052160,
+  6812,
+  1026560,
+  6528,
+  1321472,
+  9780,
+  837120,
+  8460,
+  288768,
+  1108,
+  308736,
+  1108,
+  1195520,
+  1948,
+  1198080,
+  1948,
+  181248,
+  5368,
+  144384,
+  4900,
+  776704,
+  348,
+  157696,
+  5076,
+  60928,
+  444,
+  60928,
+  444,
+  209920,
+  5220,
+  246784,
+  756,
+  246272,
+  756,
+  604672,
+  8528,
+  24064,
+  564,
+  24064,
+  564,
+  47104,
+  556,
+  44032,
+  556,
+  321536,
+  2176,
+  332288,
+  2176,
+  204288,
+  2388,
+  204800,
+  2440,
+  107008,
+  912,
+  82432,
+  1448,
+  87552,
+  1996,
+  89088,
+  372,
+  922112,
+  4576,
+  508928,
+  1944,
+  528896,
+  1996,
+  5450240,
+  2776,
+  3680768,
+  15000,
+  3721728,
+  16696,
+  845312,
+  9152,
+  3270656,
+  4144,
+  1602048,
+  852,
+  1606656,
+  852,
+  36864,
+  564,
+  39936,
+  564,
+  214016,
+  3144,
+  576000,
+  4544,
+  580096,
+  4468,
+  627200,
+  6596,
+  1623040,
+  11196,
+  1107456,
+  9700,
+  2272256,
+  13208,
+  2289152,
+  13624,
+  1189376,
+  704,
+  1203712,
+  704,
+  470528,
+  6616,
+  451584,
+  5508,
+  143360,
+  1388,
+  143360,
+  1388,
+  55296,
+  2920,
+  55808,
+  2920,
+  82944,
+  2444,
+  82944,
+  2444,
+  2862592,
+  3168,
+  7680,
+  372,
+  68096,
+  1124,
+  67584,
+  1124,
+  1022976,
+  1240,
+  193024,
+  2660,
+  193536,
+  2660,
+  2833408,
+  1172,
+  195072,
+  1564,
+  512000,
+  2840,
+  131072,
+  3096,
+  313344,
+  2100,
+  89088,
+  2136,
+  86016,
+  2136,
+  1243648,
+  1840,
+  1280512,
+  1840,
+  778752,
+  1040,
+  10240,
+  388,
+  420864,
+  1660,
+  3430400,
+  5764,
+  1161216,
+  736,
+  2591232,
+  9460,
+  1972224,
+  8028,
+  583168,
+  6348,
+  468992,
+  6044,
+  553472,
+  4172,
+  551424,
+  3364,
+  1433600,
+  2712,
+  677376,
+  2552,
+  1743872,
+  5072,
+  1784320,
+  5540,
+  1024512,
+  2564,
+  1110016,
+  3572,
+  5252096,
+  11496,
+  5855744,
+  13532,
+  18944,
+  1000,
+  12800,
+  424,
+  149504,
+  512,
+  9216,
+  312,
+  84480,
+  1308,
+  20992,
+  992,
+  17920,
+  996,
+  36352,
+  1096,
+  15872,
+  996,
+  1478144,
+  1736,
+  83968,
+  432,
+  1655296,
+  2292,
+  1654272,
+  2200,
+  604160,
+  560,
+  27136,
+  2024,
+  43520,
+  656,
+  21504,
+  1316,
+  26624,
+  324,
+  412160,
+  2000,
+  163840,
+  724,
+  155136,
+  724,
+  1257472,
+  7584,
+  1146368,
+  3468,
+  18944,
+  324,
+  2123264,
+  5428,
+  2144768,
+  6080,
+  57344,
+  896,
+  80384,
+  1284,
+  1655808,
+  1172,
+  260608,
+  1280,
+  908800,
+  1356,
+  532480,
+  1196,
+  46592,
+  340,
+  61440,
+  300,
+  50176,
+  300,
+  49664,
+  300,
+  50176,
+  300,
+  49152,
+  300,
+  48640,
+  300,
+  49664,
+  300,
+  49664,
+  300,
+  48640,
+  300,
+  49664,
+  300,
+  42496,
+  340,
+  46080,
+  300,
+  50176,
+  300,
+  44032,
+  304,
+  50176,
+  300,
+  43008,
+  340,
+  48128,
+  300,
+  38400,
+  344,
+  49664,
+  300,
+  43008,
+  340,
+  44032,
+  340,
+  54272,
+  300,
+  50176,
+  300,
+  44032,
+  304,
+  48128,
+  300,
+  43520,
+  340,
+  50176,
+  300,
+  49152,
+  300,
+  44032,
+  304,
+  44032,
+  304,
+  61440,
+  300,
+  52736,
+  340,
+  54272,
+  300,
+  46080,
+  300,
+  49664,
+  300,
+  36864,
+  344,
+  17920,
+  308,
+  16896,
+  312,
+  17920,
+  308,
+  17408,
+  308,
+  17920,
+  308,
+  17920,
+  308,
+  17920,
+  308,
+  17920,
+  308,
+  16896,
+  312,
+  17408,
+  308,
+  17920,
+  308,
+  18432,
+  308,
+  17920,
+  308,
+  17408,
+  308,
+  18432,
+  308,
+  17920,
+  308,
+  18432,
+  308,
+  19456,
+  308,
+  20480,
+  308,
+  18432,
+  308,
+  16384,
+  312,
+  20480,
+  308,
+  16384,
+  312,
+  17920,
+  308,
+  18432,
+  308,
+  18432,
+  308,
+  17408,
+  308,
+  19456,
+  308,
+  721408,
+  1540,
+  20518056,
+  176,
+  25554944,
+  176,
+  17408,
+  1464,
+  17408,
+  1620,
+  78848,
+  296,
+  118784,
+  740,
+  2226688,
+  1360,
+  2097664,
+  1360,
+  2452992,
+  16100,
+  2390528,
+  15368,
+  19825152,
+  2436,
+  536064,
+  1252,
+  12187136,
+  1832,
+  26112,
+  2080,
+  26112,
+  2080,
+  26112,
+  2084,
+  26112,
+  2084,
+  25088,
+  1760,
+  25600,
+  2088,
+  25088,
+  2088,
+  25088,
+  1756,
+  25088,
+  2084,
+  25088,
+  2084,
+  23552,
+  2100,
+  23552,
+  2100,
+  23552,
+  2100,
+  23552,
+  2100,
+  168960,
+  1064,
+  171520,
+  1064,
+  168960,
+  1064,
+  6656,
+  372,
+  7168,
+  368,
+  12288,
+  704,
+  14848,
+  816,
+  3638784,
+  856,
+  3638272,
+  856,
+  3700736,
+  856,
+  11264,
+  484,
+  68096,
+  732,
+  68096,
+  732,
+  68096,
+  732,
+  118272,
+  924,
+  933376,
+  1352,
+  933376,
+  1352,
+  942080,
+  1352,
+  683008,
+  10132,
+  768512,
+  3312,
+  768000,
+  3312,
+  230912,
+  1488,
+  200704,
+  1876,
+  148480,
+  2048,
+  391680,
+  2204,
+  391680,
+  2204,
+  395264,
+  2204,
+  13061632,
+  620,
+  10336768,
+  620,
+  5653504,
+  2256,
+  6656,
+  348,
+  7680,
+  304,
+  1251840,
+  1980,
+  796672,
+  1984,
+  812544,
+  2324,
+  8192,
+  316,
+  8704,
+  304,
+  181248,
+  3020,
+  252928,
+  728,
+  176128,
+  2856,
+  9728,
+  356,
+  174080,
+  3208,
+  10752,
+  360,
+  1075712,
+  556,
+  9216,
+  360,
+  150016,
+  1260,
+  993792,
+  864,
+  27648,
+  300,
+  9489920,
+  900,
+  7684608,
+  900,
+  7966720,
+  1540,
+  2586624,
+  708,
+  1241600,
+  1180,
+  1172992,
+  1336,
+  1838592,
+  1196,
+  10906624,
+  2396,
+  11145728,
+  2580,
+  31232,
+  312,
+  6656,
+  360,
+  10752,
+  316,
+  10240,
+  316,
+  8192,
+  308,
+  8192,
+  308,
+  9216,
+  320,
+  8704,
+  312,
+  460800,
+  768,
+  1172992,
+  752,
+  247808,
+  1088,
+  1645568,
+  584,
+  8704,
+  308,
+  391680,
+  536,
+  769536,
+  1100,
+  243200,
+  8192,
+  304,
+  3034624,
+  1732,
+  8192,
+  296,
+  283648,
+  424,
+  8192,
+  316,
+  8704,
+  316,
+  6656,
+  352,
+  6656,
+  360,
+  19968,
+  316,
+  8192,
+  304,
+  9216,
+  304,
+  9216,
+  300,
+  8192,
+  296,
+  10752,
+  308,
+  26242048,
+  2764,
+  1180672,
+  764,
+  36864,
+  592,
+  522752,
+  536,
+  9728,
+  304,
+  128000,
+  420,
+  273920,
+  300,
+  26624,
+  316,
+  8704,
+  312,
+  1382912,
+  3572,
+  2391552,
+  3368,
+  1316864,
+  3200,
+  8192,
+  312,
+  8704,
+  304,
+  8192,
+  316,
+  636928,
+  1956,
+  251904,
+  752,
+  8192,
+  312,
+  35328,
+  1368,
+  811520,
+  1276,
+  306176,
+  644,
+  408576,
+  1240,
+  12288,
+  316,
+  102400,
+  504,
+  8192,
+  308,
+  2842112,
+  1100,
+  19456,
+  300,
+  32256,
+  332,
+  31744,
+  316,
+  9216,
+  324,
+  9728,
+  324,
+  14336,
+  308,
+  36352,
+  560,
+  9728,
+  320,
+  805888,
+  912,
+  221696,
+  932,
+  802304,
+  592,
+  19939840,
+  3948,
+  8192,
+  304,
+  8192,
+  316,
+  886784,
+  3224,
+  1123840,
+  3024,
+  8192,
+  316,
+  9216,
+  308,
+  8704,
+  300,
+  8704,
+  308,
+  719360,
+  924,
+  702464,
+  972,
+  13918208,
+  4076,
+  13918208,
+  3972,
+  257024,
+  432,
+  94720,
+  600,
+  1904640,
+  1580,
+  122880,
+  1372,
+  122368,
+  1252,
+  13563392,
+  1720,
+  4451328,
+  2520,
+  2031616,
+  572,
+  7577088,
+  748,
+  15872,
+  636,
+  10240,
+  308,
+  8704,
+  308,
+  9728,
+  308,
+  395776,
+  872,
+  8704,
+  304,
+  9728,
+  300,
+  240640,
+  2288,
+  1309184,
+  3864,
+  93696,
+  292,
+  93696,
+  292,
+  95232,
+  292,
+  635392,
+  572,
+  629248,
+  572,
+  629248,
+  572,
+  474624,
+  3184,
+  130560,
+  2420,
+  84480,
+  3088,
+  153088,
+  3444,
+  227840,
+  3116,
+  339456,
+  1420,
+  708096,
+  5904,
+  999936,
+  7792,
+  1446400,
+  2340,
+  1404928,
+  2340,
+  4345344,
+  14076,
+  4835328,
+  15864,
+  411136,
+  1556,
+  411648,
+  1556,
+  605696,
+  1076,
+  605184,
+  1024,
+  13824,
+  808,
+  183296,
+  1680,
+  185856,
+  1680,
+  347136,
+  1428,
+  141824,
+  340,
+  222720,
+  344,
+  721920,
+  2112,
+  4110336,
+  1348,
+  248832,
+  3588,
+  249344,
+  3680,
+  98816,
+  2896,
+  99328,
+  3012,
+  7753728,
+  852,
+  7665664,
+  852,
+  7665664,
+  852,
+  154112,
+  892,
+  155648,
+  892,
+  154112,
+  892,
+  457216,
+  1660,
+  133632,
+  2716,
+  137216,
+  888,
+  136704,
+  888,
+  136704,
+  888,
+  118272,
+  1832,
+  122368,
+  736,
+  135680,
+  736,
+  135680,
+  736,
+  63488,
+  300,
+  80384,
+  572,
+  81920,
+  572,
+  80384,
+  572,
+  104960,
+  3084,
+  166912,
+  2416,
+  14848,
+  3508,
+  18944,
+  3576,
+  267264,
+  300,
+  1542656,
+  1364,
+  765952,
+  2124,
+  23862784,
+  2048,
+  596480,
+  2444,
+  72704,
+  404,
+  72704,
+  404,
+  61440,
+  404,
+  129024,
+  504,
+  105984,
+  540,
+  108032,
+  1736,
+  28160,
+  320,
+  30720,
+  320,
+  26112,
+  328,
+  28160,
+  324,
+  28160,
+  320,
+  28160,
+  324,
+  29184,
+  320,
+  26112,
+  328,
+  28672,
+  320,
+  28672,
+  320,
+  26112,
+  328,
+  27136,
+  320,
+  28672,
+  320,
+  34304,
+  320,
+  28672,
+  320,
+  27648,
+  320,
+  27648,
+  320,
+  29184,
+  320,
+  26112,
+  328,
+  28672,
+  320,
+  27136,
+  320,
+  34304,
+  320,
+  29184,
+  320,
+  30720,
+  320,
+  28672,
+  320,
+  29184,
+  320,
+  28672,
+  320,
+  28672,
+  320,
+  2295296,
+  928,
+  2386432,
+  928,
+  561664,
+  588,
+  445952,
+  708,
+  577536,
+  588,
+  88064,
+  308,
+  88576,
+  308,
+  97792,
+  308,
+  81408,
+  308,
+  88064,
+  308,
+  77824,
+  312,
+  89088,
+  308,
+  97792,
+  308,
+  89088,
+  308,
+  83968,
+  308,
+  87040,
+  308,
+  84480,
+  308,
+  85504,
+  308,
+  81408,
+  308,
+  89600,
+  308,
+  110080,
+  308,
+  87552,
+  308,
+  110080,
+  308,
+  76288,
+  312,
+  84480,
+  308,
+  89600,
+  308,
+  83968,
+  308,
+  87552,
+  308,
+  88576,
+  308,
+  87040,
+  308,
+  76288,
+  312,
+  85504,
+  308,
+  77824,
+  312,
+  288768,
+  2980,
+  193536,
+  8280,
+  1096192,
+  1232,
+  1049088,
+  992,
+  1049088,
+  888,
+  4356608,
+  2160,
+  4356608,
+  2056,
+  2875904,
+  2568,
+  161792,
+  316,
+  127488,
+  324,
+  146432,
+  316,
+  148480,
+  316,
+  146432,
+  316,
+  144384,
+  316,
+  141312,
+  316,
+  148480,
+  316,
+  145920,
+  316,
+  129024,
+  324,
+  141312,
+  316,
+  182784,
+  316,
+  141824,
+  320,
+  142848,
+  316,
+  127488,
+  324,
+  146432,
+  316,
+  133632,
+  316,
+  161792,
+  316,
+  140288,
+  316,
+  144384,
+  316,
+  129024,
+  324,
+  133632,
+  316,
+  140288,
+  316,
+  141824,
+  320,
+  142848,
+  316,
+  145920,
+  316,
+  146432,
+  316,
+  182784,
+  316,
+  190464,
+  1048,
+  6645760,
+  2612,
+  7172608,
+  1728,
+  130048,
+  5804,
+  129536,
+  3332,
+  14091776,
+  5592,
+  13456896,
+  7916,
+  13585920,
+  5256,
+  671232,
+  744,
+  65536,
+  5008,
+  71168,
+  4604,
+  2784256,
+  6712,
+  339456,
+  3816,
+  709120,
+  6720,
+  1713152,
+  6228,
+  2441216,
+  6552,
+  2871296,
+  6480,
+  541184,
+  5580,
+  93696,
+  2280,
+  11535872,
+  9976,
+  473600,
+  5696,
+  386048,
+  6460,
+  800768,
+  8296,
+  953344,
+  6276,
+  2007040,
+  6952,
+  11059712,
+  5060,
+  10085888,
+  5084,
+  10799104,
+  8684,
+  5849600,
+  9716,
+  633344,
+  4468,
+  9155072,
+  8444,
+  327168,
+  2708,
+  235008,
+  6428,
+  1310720,
+  3228,
+  476160,
+  7256,
+  634368,
+  5128,
+  16174592,
+  5424,
+  15025152,
+  7648,
+  1963008,
+  700,
+  308224,
+  3632,
+  82944,
+  720,
+  1541632,
+  2216,
+  304640,
+  1212,
+  132608,
+  1104,
+  2478592,
+  2864,
+  383488,
+  1632,
+  302592,
+  2956,
+  29184,
+  688,
+  50176,
+  544,
+  30208,
+  1816,
+  12800,
+  600,
+  13312,
+  1516,
+  79872,
+  1056,
+  94720,
+  424,
+  148992,
+  760,
+  148992,
+  3696,
+  221696,
+  892,
+  225280,
+  1524,
+  8704,
+  304,
+  8192,
+  288,
+  188416,
+  856,
+  53760,
+  464,
+  1364480,
+  2364,
+  91648,
+  500,
+  1593856,
+  432,
+  2812416,
+  580,
+  135680,
+  504,
+  664064,
+  328,
+  626688,
+  748,
+  548864,
+  1120,
+  720896,
+  1784,
+  1544192,
+  1832,
+  1606144,
+  2000,
+  4137472,
+  3300,
+  7470592,
+  2380,
+  387584,
+  1076,
+  440320,
+  2008,
+  739840,
+  1608,
+  13512704,
+  2264,
+  1871360,
+  3336,
+  381440,
+  1268,
+  332288,
+  1652,
+  1762304,
+  2196,
+  214016,
+  1252,
+  2290176,
+  3148,
+  671232,
+  1248,
+  1467392,
+  2232,
+  80896,
+  608,
+  2438144,
+  3692,
+  489984,
+  316,
+  117760,
+  608,
+  437760,
+  1500,
+  377344,
+  1512,
+  175616,
+  760,
+  744448,
+  3928,
+  111616,
+  320,
+  112640,
+  324,
+  123904,
+  320,
+  113152,
+  320,
+  114176,
+  320,
+  114176,
+  320,
+  111616,
+  320,
+  116224,
+  320,
+  105472,
+  328,
+  114688,
+  320,
+  105472,
+  328,
+  137216,
+  320,
+  115712,
+  320,
+  882688,
+  12228,
+  155136,
+  2348,
+  144384,
+  2012,
+  23040,
+  1652,
+  89600,
+  7804,
+  161280,
+  5012,
+  754688,
+  3868,
+  34304,
+  676,
+  816128,
+  11644,
+  372736,
+  1908,
+  551424,
+  5268,
+  86016,
+  6264,
+  16896,
+  332,
+  17920,
+  324,
+  17920,
+  324,
+  18944,
+  324,
+  17920,
+  324,
+  18432,
+  324,
+  19968,
+  324,
+  17408,
+  332,
+  17920,
+  324,
+  17920,
+  324,
+  17920,
+  324,
+  17920,
+  324,
+  17920,
+  328,
+  241152,
+  8200,
+  919040,
+  528,
+  913408,
+  528,
+  371712,
+  2888,
+  1105920,
+  4116,
+  2182656,
+  1708,
+  1213440,
+  12088,
+  524288,
+  9496,
+  460800,
+  6288,
+  3119616,
+  12416,
+  47104,
+  336,
+  14848,
+  332,
+  16384,
+  332,
+  14848,
+  332,
+  13824,
+  336,
+  13824,
+  336,
+  14336,
+  332,
+  14336,
+  332,
+  14336,
+  332,
+  14848,
+  332,
+  14848,
+  332,
+  14848,
+  332,
+  14336,
+  332,
+  14336,
+  332,
+  913920,
+  3248,
+  2378240,
+  3344,
+  998912,
+  1232,
+  60416,
+  556,
+  233472,
+  2388,
+  4872192,
+  16696,
+  1746432,
+  852,
+  1432576,
+  704,
+  1444352,
+  704,
+  98304,
+  2444,
+  218112,
+  2660,
+  4998144,
+  716,
+  5272064,
+  716,
+  240128,
+  1564,
+  1604608,
+  1840,
+  1565696,
+  1840,
+  1565696,
+  1840,
+  1497088,
+  736,
+  22016,
+  1000,
+  14848,
+  424,
+  1531392,
+  2684,
+  188928,
+  512,
+  10240,
+  312,
+  97792,
+  1308,
+  24064,
+  992,
+  20480,
+  996,
+  44544,
+  1096,
+  18432,
+  996,
+  31744,
+  2024,
+  51712,
+  656,
+  25600,
+  1316,
+  35328,
+  324,
+  611328,
+  1444,
+  526848,
+  2000,
+  26112,
+  324,
+  7213568,
+  1568,
+  2115072,
+  1172,
+  316416,
+  1280,
+  646144,
+  1196,
+  1097216,
+  1356,
+  47104,
+  300,
+  50688,
+  300,
+  51200,
+  300,
+  51200,
+  300,
+  51200,
+  300,
+  45056,
+  304,
+  49664,
+  300,
+  47104,
+  300,
+  51200,
+  300,
+  49664,
+  300,
+  50688,
+  300,
+  62464,
+  300,
+  51200,
+  300,
+  50688,
+  300,
+  50688,
+  300,
+  49664,
+  300,
+  55296,
+  300,
+  45056,
+  304,
+  51200,
+  300,
+  45056,
+  304,
+  50688,
+  300,
+  55296,
+  300,
+  49664,
+  300,
+  51200,
+  300,
+  62464,
+  300,
+  51200,
+  300,
+  50688,
+  300,
+  45056,
+  304,
+  19456,
+  308,
+  19456,
+  308,
+  18944,
+  308,
+  19456,
+  308,
+  18944,
+  308,
+  18944,
+  308,
+  22016,
+  308,
+  22016,
+  308,
+  20992,
+  308,
+  18944,
+  308,
+  19456,
+  308,
+  18432,
+  308,
+  18944,
+  308,
+  19456,
+  308,
+  18944,
+  308,
+  19456,
+  308,
+  19456,
+  308,
+  17920,
+  312,
+  18944,
+  308,
+  18432,
+  308,
+  19456,
+  308,
+  17920,
+  312,
+  19456,
+  308,
+  17920,
+  312,
+  20992,
+  308,
+  19456,
+  308,
+  18944,
+  308,
+  17920,
+  312,
+  910848,
+  1540,
+  22551712,
+  176,
+  98816,
+  296,
+  139264,
+  740,
+  2679296,
+  1360,
+  2817024,
+  1360,
+  23356416,
+  2436,
+  650752,
+  1252,
+  14530048,
+  1832,
+  29696,
+  2080,
+  29184,
+  2084,
+  26624,
+  2100,
+  13312,
+  484,
+  73728,
+  732,
+  73728,
+  732,
+  74240,
+  732,
+  143872,
+  924,
+  303104,
+  1488,
+  12712448,
+  620,
+  7215616,
+  2256,
+  9216,
+  304,
+  1687552,
+  1980,
+  1063424,
+  1984,
+  1082880,
+  2324,
+  9728,
+  316,
+  10752,
+  304,
+  349696,
+  728,
+  1405440,
+  556,
+  169984,
+  1260,
+  1175552,
+  864,
+  31744,
+  300,
+  10212352,
+  900,
+  9414656,
+  1540,
+  3118080,
+  708,
+  1555456,
+  1180,
+  1391616,
+  1336,
+  2229760,
+  1196,
+  12569600,
+  2396,
+  35328,
+  312,
+  12288,
+  316,
+  12800,
+  316,
+  9216,
+  308,
+  9216,
+  308,
+  10240,
+  320,
+  10240,
+  312,
+  1125376,
+  1128,
+  547328,
+  768,
+  1424384,
+  752,
+  295424,
+  1088,
+  1996288,
+  584,
+  10752,
+  308,
+  486912,
+  536,
+  1000960,
+  1100,
+  334336,
+  9216,
+  304,
+  9728,
+  296,
+  338944,
+  424,
+  9216,
+  316,
+  10240,
+  316,
+  22528,
+  316,
+  9216,
+  304,
+  10752,
+  304,
+  10752,
+  300,
+  9216,
+  296,
+  12800,
+  308,
+  2764,
+  1433600,
+  764,
+  642048,
+  536,
+  314880,
+  300,
+  10240,
+  312,
+  1701888,
+  3200,
+  3041280,
+  3368,
+  1785344,
+  3572,
+  9216,
+  312,
+  10240,
+  304,
+  9728,
+  316,
+  867840,
+  1948,
+  300544,
+  752,
+  10240,
+  312,
+  41984,
+  1368,
+  932352,
+  1276,
+  345600,
+  644,
+  517120,
+  1240,
+  15360,
+  316,
+  111104,
+  504,
+  9216,
+  308,
+  3349504,
+  1100,
+  24576,
+  300,
+  36864,
+  332,
+  36352,
+  316,
+  10752,
+  324,
+  10752,
+  324,
+  16896,
+  308,
+  41472,
+  560,
+  11264,
+  320,
+  950272,
+  912,
+  260608,
+  932,
+  989184,
+  592,
+  24750080,
+  3948,
+  9216,
+  304,
+  9216,
+  316,
+  917504,
+  3224,
+  1547776,
+  3024,
+  9216,
+  316,
+  10752,
+  308,
+  10752,
+  300,
+  9728,
+  308,
+  872448,
+  924,
+  814592,
+  972,
+  16530944,
+  4076,
+  16530944,
+  3972,
+  290304,
+  432,
+  111616,
+  600,
+  2162688,
+  1580,
+  15892480,
+  1720,
+  5285888,
+  2520,
+  2543616,
+  572,
+  8998912,
+  748,
+  18944,
+  636,
+  10240,
+  308,
+  11776,
+  308,
+  11264,
+  308,
+  480256,
+  872,
+  10240,
+  304,
+  11264,
+  300,
+  267264,
+  2288,
+  108544,
+  292,
+  107008,
+  292,
+  107008,
+  292,
+  841728,
+  572,
+  847872,
+  572,
+  842240,
+  572,
+  219136,
+  304,
+  105984,
+  3088,
+  167424,
+  2420,
+  292352,
+  3116,
+  195584,
+  3444,
+  1740288,
+  2340,
+  1792000,
+  2340,
+  5146624,
+  1348,
+  176640,
+  892,
+  174592,
+  892,
+  174592,
+  892,
+  611840,
+  1660,
+  154112,
+  888,
+  155648,
+  888,
+  154112,
+  888,
+  197632,
+  1832,
+  301609,
+  338048,
+  64512,
+  135,
+  16384,
+  3170304,
+  1474560,
+  1474560,
+  16384,
+  3170304,
+  1024,
+  1024,
+  4096,
+  77728,
+  77728,
+  4669,
+  1224608,
+  1209752,
+  115616,
+  76696,
+  76704,
+  45472,
+  75680,
+  75680,
+  45472,
+  79264,
+  79264,
+  45984,
+  80288,
+  80288,
+  46488,
+  74144,
+  74144,
+  74136,
+  74144,
+  44960,
+  77728,
+  77728,
+  45984,
+  77728,
+  77728,
+  75168,
+  75168,
+  76704,
+  76704,
+  45472,
+  79264,
+  79264,
+  79256,
+  79264,
+  45984,
+  76704,
+  76696,
+  78752,
+  78752,
+  45984,
+  77216,
+  77216,
+  45472,
+  67488,
+  67488,
+  42912,
+  66976,
+  66976,
+  42912,
+  75680,
+  75680,
+  75680,
+  75672,
+  1056664,
+  75680,
+  75680,
+  45472,
+  77728,
+  77728,
+  45472,
+  77728,
+  77720,
+  45976,
+  76704,
+  76704,
+  45472,
+  76696,
+  76704,
+  45984,
+  54176,
+  76192,
+  76192,
+  77208,
+  77216,
+  44960,
+  77216,
+  77216,
+  76704,
+  76704,
+  77216,
+  77216,
+  76192,
+  76192,
+  44960,
+  75168,
+  75168,
+  45472,
+  77208,
+  77216,
+  4662,
+  6534,
+  63904,
+  63904,
+  42400,
+  63904,
+  63904,
+  42400,
+  3695719,
+  3878410,
+  1985867,
+  2373000,
+  174959,
+  177414,
+  143754,
+  145419,
+  162331,
+  164347,
+  154427,
+  156245,
+  44859,
+  85862,
+  86178,
+  49091,
+  77728,
+  395314,
+  1,
+  95648,
+  99744,
+  76704,
+  45472,
+  75672,
+  45472,
+  79264,
+  45984,
+  80288,
+  46496,
+  74144,
+  74144,
+  44960,
+  77728,
+  45984,
+  77720,
+  75160,
+  76696,
+  45472,
+  79264,
+  79264,
+  45984,
+  76696,
+  78752,
+  45976,
+  77208,
+  45472,
+  67488,
+  42904,
+  66976,
+  42912,
+  75672,
+  75680,
+  812440,
+  75672,
+  45472,
+  77728,
+  45472,
+  77728,
+  45984,
+  76704,
+  45472,
+  76696,
+  45984,
+  83352,
+  54176,
+  76184,
+  77208,
+  44960,
+  77216,
+  76704,
+  77216,
+  76192,
+  44952,
+  75168,
+  45472,
+  77216,
+  4662,
+  63904,
+  42400,
+  63904,
+  42392,
+  92576,
+  12704,
+  12192,
+  67584,
+  1477720,
+  7680,
+  7680,
+  962048,
+  958976,
+  6480,
+  34390,
+  136606,
+  136606,
+  156118,
+  556304,
+  556304,
+  556304,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  8774,
+  8774,
+  8774,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  136606,
+  556304,
+  556304,
+  556304,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  8774,
+  2560,
+  1024,
+  15360,
+  10752,
+  2560,
+  12288,
+  52736,
+  6656,
+  3072,
+  8582,
+  3,
+  16777270,
+  4606392,
+  70144,
+  808,
+  1233,
+  2222,
+  2090,
+  1120,
+  1317,
+  2038,
+  2574,
+  1544,
+  1215,
+  1277,
+  2053,
+  2088,
+  1560,
+  1815,
+  2177,
+  1483,
+  846,
+  1590,
+  2724,
+  1676,
+  2430,
+  1197,
+  1429,
+  1310,
+  1873,
+  1914,
+  13868,
+  8116,
+  5632,
+  11423,
+  78336,
+  6996,
+  5120,
+  1151,
+  1848,
+  1898,
+  1137,
+  1802,
+  2593,
+  4506,
+  2839,
+  410,
+  1093,
+  610,
+  848,
+  422,
+  12109,
+  5756,
+  2092,
+  5260,
+  3584,
+  5120,
+  2620,
+  80896,
+  4680,
+  3584,
+  229,
+  12800,
+  592,
+  1963,
+  1068,
+  1080,
+  701,
+  369,
+  711,
+  1485,
+  540,
+  613,
+  3148,
+  1390,
+  2432,
+  1488,
+  1282,
+  711,
+  531,
+  682,
+  468,
+  3728,
+  9216,
+  15256,
+  152064,
+  3280,
+  8192,
+  1219,
+  2204,
+  382,
+  1470,
+  734,
+  347,
+  2381,
+  370,
+  1069,
+  832,
+  1943,
+  11026,
+  1535,
+  714,
+  17920,
+  11776,
+  1141,
+  1029,
+  610,
+  384,
+  141662,
+  8016,
+  13824,
+  29602,
+  176128,
+  7380,
+  11776,
+  22718,
+  1636,
+  2557,
+  2804,
+  1756,
+  1223,
+  7091,
+  6746,
+  1323,
+  1139,
+  5106,
+  1825,
+  1624,
+  15593,
+  2462,
+  1932,
+  2563,
+  1575,
+  3258,
+  1591,
+  1921,
+  2920,
+  2226,
+  20053,
+  10426,
+  894,
+  4608,
+  7152,
+  78848,
+  814,
+  4096,
+  1050,
+  2221,
+  5322,
+  858,
+  779,
+  5310,
+  1861,
+  4670,
+  6144,
+  17152,
+  17920,
+  4106,
+  5632,
+  1200,
+  1200,
+  1192,
+  1204,
+  3594,
+  1206,
+  1192,
+  1131,
+  1131,
+  1123,
+  1135,
+  2313,
+  1137,
+  1123,
+  8508,
+  40057,
+  1648,
+  15872,
+  20463,
+  1062,
+  7168,
+  14398,
+  2560,
+  972,
+  6144,
+  1022,
+  918,
+  1398,
+  1737,
+  1445,
+  1185,
+  747,
+  1218,
+  1307,
+  712,
+  1331,
+  1022,
+  1277,
+  43151,
+  4245,
+  3898,
+  9216,
+  25149,
+  55808,
+  3496,
+  8192,
+  2351,
+  2054,
+  660,
+  248,
+  321,
+  3578,
+  1242,
+  1770,
+  2523,
+  2706,
+  2691,
+  2270,
+  1902,
+  1276,
+  476,
+  34272,
+  408,
+  4096,
+  3977,
+  2560,
+  396,
+  3584,
+  2214,
+  10719,
+  751,
+  427,
+  1150,
+  796,
+  4968,
+  37376,
+  63654,
+  79360,
+  4368,
+  28160,
+  10240,
+  27648,
+  5063,
+  2292,
+  712,
+  5480,
+  2769,
+  446,
+  218,
+  526,
+  3584,
+  2800,
+  44032,
+  504,
+  3584,
+  22016,
+  137,
+  252,
+  181,
+  17920,
+  5966,
+  164860,
+  489984,
+  14848,
+  5366,
+  951,
+  770,
+  9728,
+  12213,
+  23982,
+  11079,
+  567,
+  54687,
+  3011,
+  7220,
+  13312,
+  23306,
+  66560,
+  6424,
+  11264,
+  42483,
+  16946,
+  453,
+  49790,
+  5766,
+  3584,
+  2653,
+  85504,
+  5062,
+  3584,
+  2755,
+  311,
+  879,
+  1004,
+  717,
+  2301,
+  2009,
+  540,
+  1537,
+  836,
+  1365,
+  510,
+  488,
+  5025,
+  651,
+  11264,
+  2194,
+  1402,
+  1224,
+  1576,
+  868,
+  1592,
+  384,
+  1468,
+  1556,
+  1530,
+  1736,
+  16622,
+  75264,
+  9216,
+  1732,
+  1176,
+  1014,
+  1324,
+  760,
+  1240,
+  358,
+  1180,
+  1234,
+  1180,
+  1198,
+  27598,
+  781,
+  3102,
+  2192,
+  3130,
+  2135,
+  3091,
+  389,
+  3053,
+  3160,
+  3137,
+  3144,
+  3051,
+  1626,
+  1712,
+  1695,
+  1711,
+  1564,
+  1326,
+  772,
+  1492,
+  2048,
+  21039,
+  6740,
+  16384,
+  28156,
+  64512,
+  6210,
+  13312,
+  4208,
+  607,
+  4161,
+  2886,
+  1025,
+  555,
+  377,
+  1274,
+  663,
+  490,
+  2004,
+  1078,
+  1402,
+  4082,
+  1459,
+  2770,
+  1100,
+  663,
+  757,
+  654,
+  746,
+  1052,
+  760,
+  2089,
+  636,
+  1394,
+  640,
+  10752,
+  1314,
+  20594,
+  5772,
+  10752,
+  13349,
+  81408,
+  5012,
+  9216,
+  838,
+  2078,
+  548,
+  2218,
+  913,
+  945,
+  962,
+  1775,
+  909,
+  931,
+  1491,
+  47126,
+  4108,
+  6656,
+  12750,
+  78848,
+  3694,
+  6144,
+  2672,
+  3062,
+  94720,
+  949,
+  62743,
+  1154,
+  5120,
+  7501,
+  2560,
+  1064,
+  4608,
+  8826,
+  25358,
+  1396,
+  1332,
+  22025,
+  370,
+  7680,
+  11953,
+  12800,
+  330,
+  6656,
+  1408,
+  2046,
+  2749,
+  1158,
+  1051,
+  1078,
+  2763,
+  11286,
+  1226,
+  1220,
+  1221,
+  1604,
+  6656,
+  7379,
+  67584,
+  1464,
+  5632,
+  729,
+  1129,
+  645,
+  3054,
+  838,
+  394,
+  5120,
+  4621,
+  64512,
+  392,
+  4608,
+  592,
+  645,
+  471,
+  1248,
+  7168,
+  6613,
+  81920,
+  1188,
+  6144,
+  139,
+  1084,
+  1204,
+  1082,
+  645,
+  1928,
+  4192,
+  18369,
+  4979,
+  7110,
+  1390,
+  6656,
+  11429,
+  78848,
+  1310,
+  6144,
+  1120,
+  805,
+  5314,
+  2613,
+  1016,
+  1097,
+  591,
+  3211,
+  2542,
+  4273,
+  344,
+  402,
+  1584,
+  408,
+  1341,
+  414,
+  222486,
+  65,
+  74064,
+  22528,
+  22528,
+  133,
+  966656,
+  966656,
+  4176,
+  44632,
+  2560,
+  1024,
+  13824,
+  9728,
+  2560,
+  11264,
+  45568,
+  6656,
+  3072,
+  4848952,
+  4669136,
+  10976,
+  10976,
+  11520,
+  10976,
+  11488,
+  12288,
+  13248,
+  12800,
+  13200,
+  12720,
+  9280,
+  9504,
+  9856,
+  10064,
+  9792,
+  12304,
+  12256,
+  12336,
+  12384,
+  10976,
+  12288,
+  10224,
+  10608,
+  9472,
+  10240,
+  35808,
+  36672,
+  36656,
+  37296,
+  36672,
+  37472,
+  80896,
+  70000,
+  80896,
+  70000,
+  916684,
+  866652,
+  653588,
+  649244,
+  189124,
+  182112,
+  182096,
+  189264,
+  183276,
+  188976,
+  186728,
+  182208,
+  180452,
+  188932,
+  183412,
+  184020,
+  167620,
+  414772,
+  410464,
+  415776,
+  410988,
+  10992,
+  13552,
+  17760,
+  1330156,
+  1297136,
+  1094912,
+  1133324,
+  963568,
+  1056136,
+  1723352,
+  809512,
+  857200,
+  822568,
+  219524,
+  227628,
+  227684,
+  229412,
+  7216,
+  6352,
+  6672,
+  6672,
+  7232,
+  7216,
+  6336,
+  5168,
+  4320,
+  5200,
+  4640,
+  5168,
+  5168,
+  4304,
+  245572,
+  229444,
+  226704,
+  224248,
+  445180,
+  383780,
+  452056,
+  392232,
+  448368,
+  451860,
+  448788,
+  455620,
+  262288,
+  276064,
+  270728,
+  281096,
+  26432,
+  26544,
+  23440,
+  35888,
+  36032,
+  31760,
+  794216,
+  793256,
+  577340,
+  23408,
+  23440,
+  25024,
+  23440,
+  25024,
+  31712,
+  31776,
+  33344,
+  31808,
+  33360,
+  667232,
+  5600,
+  12896,
+  672300,
+  611212,
+  345208,
+  611556,
+  720012,
+  631992,
+  580168,
+  576004,
+  643852,
+  313856,
+  235848,
+  241972,
+  333636,
+  341072,
+  332036,
+  338776,
+  363200,
+  316440,
+  331128,
+  338140,
+  330012,
+  65,
+  57948,
+  36336,
+  36816,
+  36656,
+  876784,
+  879640,
+  9248,
+  8384,
+  8368,
+  8704,
+  9232,
+  9248,
+  8368,
+  6192,
+  5328,
+  5344,
+  5648,
+  5280,
+  6192,
+  5312,
+  84241,
+  140748,
+  154188,
+  1805996,
+  229912,
+  228504,
+  271648,
+  250668,
+  263504,
+  269048,
+  271832,
+  249924,
+  266156,
+  272460,
+  219644,
+  207484,
+  208428,
+  138196,
+  143448,
+  136176,
+  139324,
+  143684,
+  135328,
+  139800,
+  140268,
+  141608,
+  159464,
+  140808,
+  136228,
+  211780,
+  66660,
+  75340,
+  77384,
+  76356,
+  76352,
+  76084,
+  75832,
+  76104,
+  74244,
+  74476,
+  69916,
+  68464,
+  71600,
+  82744,
+  75980,
+  70896,
+  26040,
+  26489,
+  29779,
+  43318,
+  11056,
+  12400,
+  10032,
+  573308,
+  40264,
+  5680,
+  6512,
+  214808,
+  12896,
+  14432,
+  10656,
+  304568,
+  41584,
+  38480,
+  6528,
+  7728,
+  327420,
+  393764,
+  386264,
+  117092,
+  327516,
+  13457192,
+  12598388,
+  5083240,
+  27652,
+  9533888,
+  9749256,
+  840752,
+  291356,
+  271860,
+  8704,
+  290236,
+  9214528,
+  21402208,
+  14439388,
+  12875900,
+  23648676,
+  16246936,
+  12004804,
+  301876,
+  78272,
+  272840,
+  304076,
+  309956,
+  306076,
+  298668,
+  295152,
+  1422772,
+  1377980,
+  1462828,
+  75160,
+  69316,
+  206612,
+  472216,
+  419976,
+  336672,
+  413712,
+  94412,
+  99464,
+  74520,
+  76972,
+  74200,
+  76300,
+  78136,
+  76184,
+  78756,
+  74944,
+  73820,
+  76080,
+  77632,
+  73660,
+  77284,
+  73352,
+  13312,
+  11056,
+  12384,
+  17760,
+  12288,
+  202428,
+  173700,
+  173080,
+  596924,
+  581228,
+  925736,
+  914092,
+  509768,
+  878372,
+  816540,
+  523052,
+  324448,
+  351908,
+  1690384,
+  1383320,
+  441372,
+  941172,
+  439396,
+  448756,
+  2454648,
+  62944,
+  65392,
+  59024,
+  89456,
+  95488,
+  84080,
+  57936,
+  59952,
+  60752,
+  63296,
+  61024,
+  81728,
+  85360,
+  86256,
+  90736,
+  84848,
+  18214352,
+  17064020,
+  944436,
+  932572,
+  997912,
+  987736,
+  25216,
+  32512,
+  24672,
+  20448,
+  37952,
+  19904,
+  26112,
+  24784,
+  28912,
+  24832,
+  29200,
+  21504,
+  19600,
+  23120,
+  19760,
+  23008,
+  69232,
+  73216,
+  65456,
+  72192,
+  95840,
+  67328,
+  90336,
+  102400,
+  64656,
+  66464,
+  65328,
+  68848,
+  64400,
+  89856,
+  92032,
+  90288,
+  98256,
+  89456,
+  18087936,
+  5680,
+  12896,
+  257052,
+  71000,
+  839004,
+  768964,
+  68260,
+  60480,
+  2576,
+  1110940,
+  1093272,
+  826840,
+  884748,
+  254448,
+  244240,
+  225940,
+  252300,
+  243284,
+  211316,
+  223308,
+  163324,
+  166940,
+  163128,
+  165288,
+  164360,
+  157596,
+  161736,
+  160860,
+  166668,
+  155584,
+  159576,
+  158924,
+  229848,
+  5168,
+  5168,
+  5232,
+  6160,
+  5120,
+  5552,
+  5184,
+  5184,
+  5200,
+  5184,
+  6128,
+  5184,
+  7232,
+  6272,
+  6304,
+  6272,
+  5952,
+  6528,
+  5376,
+  7168,
+  5360,
+  5376,
+  6112,
+  5600,
+  6112,
+  5168,
+  7104,
+  7648,
+  6656,
+  8704,
+  7280,
+  6608,
+  7008,
+  6912,
+  6912,
+  122784,
+  84776,
+  14542540,
+  13827216,
+  13760848,
+  13697012,
+  3869801,
+  2964,
+  1555440,
+  12958,
+  16,
+  6686208,
+  3592,
+  3936,
+  358328,
+  3912,
+  788768,
+  354016,
+  3944,
+  25675936,
+  3368788,
+  1000444,
+  2475780,
+  2470724,
+  2944004,
+  93962,
+  398424,
+  696279,
+  278216,
+  278216,
+  95294,
+  24285,
+  76827,
+  75202,
+  79881,
+  91664,
+  73901,
+  63945,
+  94637,
+  47381,
+  76837,
+  75209,
+  78636,
+  87270,
+  73848,
+  63938,
+  123207,
+  170846,
+  163655,
+  167149,
+  190382,
+  153710,
+  181388,
+  192658,
+  161077,
+  155948,
+  173135,
+  167996,
+  175365,
+  175142,
+  193292,
+  176173,
+  208311,
+  184305,
+  152003,
+  166960,
+  191011,
+  172588,
+  179346,
+  181738,
+  193635,
+  172483,
+  173778,
+  196545,
+  168973,
+  133549,
+  137150,
+  133821,
+  135595,
+  137643,
+  133803,
+  135918,
+  138784,
+  134220,
+  134548,
+  133996,
+  136312,
+  134303,
+  140091,
+  139146,
+  134894,
+  142998,
+  136681,
+  134007,
+  136206,
+  137845,
+  134156,
+  135178,
+  137714,
+  139707,
+  138470,
+  136571,
+  141663,
+  136969,
+  820959,
+  837651,
+  841715,
+  852003,
+  858806,
+  815642,
+  836702,
+  862614,
+  816732,
+  829627,
+  824255,
+  838193,
+  831598,
+  855467,
+  849236,
+  832468,
+  890837,
+  856899,
+  821074,
+  813929,
+  851738,
+  822220,
+  834980,
+  854788,
+  859328,
+  857391,
+  831954,
+  870512,
+  851084,
+  60199,
+  54388,
+  55658,
+  55914,
+  55229,
+  54883,
+  55844,
+  56461,
+  55369,
+  55528,
+  55209,
+  55065,
+  55780,
+  54999,
+  55374,
+  55329,
+  58244,
+  55876,
+  55263,
+  54598,
+  55896,
+  55350,
+  55013,
+  55676,
+  55948,
+  55812,
+  57234,
+  56767,
+  55447,
+  51921,
+  50525,
+  50600,
+  51372,
+  50556,
+  50003,
+  50750,
+  51665,
+  52094,
+  50200,
+  50176,
+  50753,
+  50648,
+  50991,
+  51055,
+  50490,
+  51838,
+  50686,
+  50748,
+  49804,
+  50825,
+  50376,
+  50348,
+  50585,
+  50627,
+  50823,
+  52845,
+  50831,
+  50655,
+  80529,
+  1180712,
+  1177049,
+  1166899,
+  1170755,
+  1174183,
+  1156877,
+  1163286,
+  1172109,
+  1175470,
+  1161012,
+  1156568,
+  1165993,
+  1158947,
+  1176781,
+  1181107,
+  1161986,
+  1193441,
+  1171979,
+  1157102,
+  1168877,
+  1180549,
+  1160990,
+  1163072,
+  1172432,
+  1180765,
+  1171788,
+  1165080,
+  1184896,
+  1166673,
+  234710,
+  68593,
+  17013,
+  29907,
+  43386,
+  230849,
+  219577,
+  60300,
+  15070,
+  29907,
+  39939,
+  1586,
+  77849,
+  19410,
+  610,
+  32573,
+  1584,
+  2409,
+  41256,
+  10954,
+  610,
+  19250,
+  975360,
+  18432,
+  286208,
+  9728,
+  2546176,
+  103936,
+  2139136,
+  65536,
+  257024,
+  7680,
+  321,
+  26605,
+  8686,
+  8762,
+  30720,
+  7702016,
+  199168,
+  210432,
+  516,
+  4,
+  117416,
+  116608,
+  1462,
+  20071,
+  1392,
+  294680,
+  9766,
+  162,
+  22020,
+  1527,
+  82,
+  2560,
+  2560,
+  147456,
+  812544,
+  8017408,
+  7378944,
+  40310,
+  40310,
+  33170,
+  33170,
+  177806,
+  177806,
+  2589632,
+  7390720,
+  46287,
+  48350,
+  1618106,
+  912766,
+  1331040,
+  528404,
+  1322024,
+  404904,
+  893472,
+  377968,
+  429472,
+  7393280,
+  188278,
+  3692612,
+  16629137,
+  1523154,
+  1562816,
+  127488,
+  319,
+  1346,
+  8685,
+  5632,
+  5120,
+  162,
+  167,
+  765,
+  977,
+  565,
+  766,
+  368,
+  1136,
+  883,
+  1064,
+  417,
+  354,
+  354,
+  354,
+  529,
+  612,
+  791,
+  2085,
+  406,
+  406,
+  542,
+  595,
+  747,
+  1881,
+  354,
+  354,
+  354,
+  529,
+  529,
+  612,
+  612,
+  791,
+  791,
+  2085,
+  2085,
+  642,
+  1232,
+  2946,
+  2946,
+  4048,
+  4901,
+  8060,
+  22343,
+  2851,
+  2851,
+  3886,
+  4751,
+  7782,
+  21801,
+  2946,
+  2946,
+  4048,
+  4901,
+  8060,
+  22343,
+  569,
+  375,
+  977,
+  977,
+  1252,
+  1826,
+  2338,
+  5709,
+  1010,
+  1010,
+  1270,
+  1775,
+  2227,
+  5481,
+  977,
+  977,
+  1252,
+  1826,
+  2338,
+  5709,
+  893,
+  569,
+  569,
+  689,
+  911,
+  1250,
+  2924,
+  526,
+  526,
+  736,
+  864,
+  1199,
+  2811,
+  569,
+  569,
+  689,
+  911,
+  1250,
+  2924,
+  741,
+  175,
+  184,
+  583,
+  1185,
+  508,
+  496,
+  434,
+  857,
+  654,
+  835,
+  353,
+  547,
+  1357,
+  324,
+  618,
+  502,
+  4,
+  1648,
+  1624,
+  8000,
+  861,
+  1011,
+  991,
+  1005,
+  1058,
+  945,
+  963,
+  939,
+  945,
+  945,
+  905,
+  947,
+  914,
+  930,
+  877,
+  897,
+  884,
+  912,
+  901,
+  897,
+  906,
+  900,
+  885,
+  891,
+  906,
+  906,
+  866,
+  872,
+  928,
+  904,
+  886,
+  931,
+  881,
+  857,
+  897,
+  877,
+  904,
+  889,
+  901,
+  885,
+  839,
+  866,
+  892,
+  908,
+  920,
+  893,
+  901,
+  933,
+  874,
+  880,
+  872,
+  872,
+  896,
+  877,
+  873,
+  869,
+  868,
+  826,
+  820,
+  823,
+  814,
+  817,
+  802,
+  846,
+  1009,
+  1003,
+  988,
+  823,
+  829,
+  808,
+  814,
+  796,
+  805,
+  832,
+  838,
+  862,
+  838,
+  829,
+  803,
+  799,
+  808,
+  827,
+  823,
+  823,
+  862,
+  850,
+  838,
+  841,
+  847,
+  829,
+  838,
+  814,
+  799,
+  808,
+  790,
+  814,
+  835,
+  817,
+  835,
+  823,
+  844,
+  838,
+  814,
+  817,
+  808,
+  811,
+  832,
+  826,
+  826,
+  829,
+  823,
+  844,
+  823,
+  814,
+  829,
+  832,
+  841,
+  855,
+  832,
+  823,
+  850,
+  814,
+  820,
+  823,
+  826,
+  829,
+  829,
+  876,
+  817,
+  835,
+  814,
+  817,
+  826,
+  847,
+  826,
+  826,
+  820,
+  835,
+  796,
+  793,
+  859,
+  799,
+  796,
+  864,
+  832,
+  832,
+  787,
+  808,
+  885,
+  891,
+  882,
+  878,
+  1002,
+  1002,
+  1017,
+  1005,
+  1003,
+  1015,
+  1037,
+  1004,
+  1036,
+  1038,
+  1011,
+  1077,
+  1068,
+  1053,
+  1005,
+  1001,
+  1033,
+  1038,
+  1050,
+  1035,
+  1006,
+  1048,
+  1057,
+  1057,
+  1050,
+  1038,
+  1017,
+  1017,
+  1020,
+  1018,
+  948,
+  1035,
+  1037,
+  1033,
+  981,
+  972,
+  1036,
+  1042,
+  1054,
+  1018,
+  964,
+  998,
+  991,
+  976,
+  982,
+  976,
+  970,
+  979,
+  976,
+  1024,
+  952,
+  955,
+  1018,
+  973,
+  958,
+  1007,
+  921,
+  1050,
+  961,
+  975,
+  981,
+  954,
+  958,
+  1000,
+  979,
+  981,
+  964,
+  973,
+  970,
+  964,
+  968,
+  1010,
+  1012,
+  1027,
+  1046,
+  1012,
+  1004,
+  977,
+  967,
+  976,
+  999,
+  1005,
+  1018,
+  1012,
+  982,
+  974,
+  972,
+  1001,
+  998,
+  998,
+  968,
+  971,
+  1022,
+  1016,
+  995,
+  977,
+  1002,
+  1008,
+  1026,
+  1006,
+  1011,
+  1036,
+  990,
+  999,
+  1006,
+  966,
+  1020,
+  975,
+  929,
+  962,
+  953,
+  1016,
+  1048,
+  1000,
+  1032,
+  1000,
+  1032,
+  1008,
+  1040,
+  982,
+  991,
+  988,
+  982,
+  983,
+  998,
+  1016,
+  979,
+  976,
+  987,
+  1013,
+  1025,
+  1009,
+  1003,
+  974,
+  951,
+  978,
+  969,
+  954,
+  975,
+  975,
+  969,
+  969,
+  956,
+  972,
+  974,
+  1001,
+  1001,
+  1017,
+  996,
+  1000,
+  1024,
+  1009,
+  987,
+  984,
+  993,
+  1023,
+  1053,
+  986,
+  1011,
+  1030,
+  1011,
+  1030,
+  991,
+  991,
+  975,
+  1009,
+  987,
+  954,
+  978,
+  969,
+  966,
+  949,
+  982,
+  974,
+  956,
+  989,
+  989,
+  982,
+  956,
+  956,
+  941,
+  956,
+  986,
+  974,
+  920,
+  980,
+  1056,
+  1056,
+  1052,
+  1009,
+  1014,
+  1020,
+  1008,
+  999,
+  998,
+  1020,
+  984,
+  932,
+  929,
+  953,
+  967,
+  920,
+  932,
+  920,
+  940,
+  973,
+  962,
+  1022,
+  1008,
+  944,
+  957,
+  1045,
+  953,
+  952,
+  943,
+  952,
+  973,
+  952,
+  962,
+  938,
+  981,
+  984,
+  984,
+  998,
+  975,
+  818,
+  470294,
+  1202,
+  1181,
+  1045,
+  1135,
+  1019,
+  981,
+  1153,
+  1019,
+  962,
+  851,
+  961,
+  1206,
+  1011,
+  913,
+  830,
+  1164,
+  865,
+  1232,
+  898,
+  991,
+  970,
+  1206,
+  1168,
+  1169,
+  1214,
+  982,
+  937,
+  924,
+  973,
+  937,
+  956,
+  946,
+  1030,
+  1154,
+  1048,
+  978,
+  1011,
+  1074,
+  837,
+  1116,
+  1020,
+  1000,
+  969,
+  1116,
+  991,
+  1159,
+  1036,
+  1014,
+  912,
+  1092,
+  1067,
+  988,
+  998,
+  1055,
+  881,
+  866,
+  1019,
+  1089,
+  966,
+  1024,
+  1118,
+  1114,
+  923,
+  925,
+  959,
+  961,
+  1000,
+  1206,
+  821,
+  991,
+  824,
+  929,
+  979,
+  1061,
+  1156,
+  1131,
+  944,
+  1183,
+  995,
+  1105,
+  1022,
+  983,
+  1020,
+  920,
+  1039,
+  954,
+  1048,
+  1042,
+  1118,
+  974,
+  1243,
+  1016,
+  930,
+  1030,
+  1068,
+  1130,
+  938,
+  981,
+  1149,
+  1074,
+  959,
+  956,
+  919,
+  941,
+  950,
+  1006,
+  1020,
+  913,
+  1033,
+  867,
+  843,
+  1149,
+  957,
+  1068,
+  964,
+  941,
+  914,
+  999,
+  937,
+  837,
+  1000,
+  1089,
+  963,
+  998,
+  1022,
+  1149,
+  832,
+  855,
+  980,
+  807,
+  1062,
+  938,
+  947,
+  979,
+  1022,
+  992,
+  1030,
+  998,
+  1014,
+  961,
+  940,
+  957,
+  827,
+  1153,
+  866,
+  1114,
+  921,
+  1012,
+  944,
+  1151,
+  887,
+  1060,
+  937,
+  912,
+  1077,
+  923,
+  1037,
+  1071,
+  1192,
+  986,
+  985,
+  968,
+  994,
+  1004,
+  824,
+  1176,
+  990,
+  1040,
+  947,
+  1062,
+  1232,
+  938,
+  1148,
+  1032,
+  911,
+  895,
+  743,
+  774,
+  846,
+  5877760,
+  95104,
+  504,
+  1043968,
+  53760,
+  36,
+  36,
+  829,
+  54230,
+  45,
+  45,
+  811,
+  52828,
+  42,
+  42,
+  1055,
+  166446,
+  65,
+  65,
+  444,
+  98700,
+  53,
+  53,
+  444,
+  98752,
+  33,
+  33,
+  381,
+  1288,
+  36,
+  36,
+  6067,
+  1517020,
+  11222,
+  20076,
+  4034,
+  10124,
+  4510,
+  4150,
+  10500,
+  3816,
+  7532,
+  2500,
+  7060,
+  3124,
+  7660,
+  2560,
+  7612,
+  23024,
+  28740,
+  9932,
+  14572,
+  6256,
+  12140,
+  124744,
+  46912,
+  64756,
+  31,
+  7177,
+  995542,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  819516,
+  6537,
+  819516,
+  30,
+  7177,
+  997498,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  819522,
+  6537,
+  819522,
+  36,
+  318,
+  42996,
+  357050,
+  2242,
+  6108,
+  7442,
+  4242,
+  7500,
+  3228,
+  3686,
+  52958,
+  3754,
+  7356,
+  8924,
+  2766,
+  2846,
+  2770,
+  1479,
+  2558,
+  89110,
+  6336,
+  10140,
+  8106,
+  12492,
+  17880,
+  5428,
+  5946,
+  4008,
+  1648,
+  5276,
+  3424,
+  8372,
+  6578,
+  10812,
+  8294,
+  11572,
+  3202,
+  7772,
+  37872,
+  15974,
+  16396,
+  28690,
+  53252,
+  32834,
+  20812,
+  4288,
+  10052,
+  4746,
+  7788,
+  12934,
+  19588,
+  1154,
+  1012,
+  2764,
+  7052,
+  1008,
+  690,
+  3972,
+  1060,
+  1022,
+  1128,
+  692,
+  3964,
+  2100,
+  1062,
+  2306,
+  6252,
+  1416,
+  962,
+  972,
+  1056,
+  4500,
+  1264,
+  2870,
+  7748,
+  1992,
+  1158,
+  4676,
+  1130,
+  4612,
+  1164,
+  4684,
+  1136,
+  4636,
+  1158,
+  4668,
+  1158,
+  4700,
+  1154,
+  4660,
+  1136,
+  4644,
+  1104,
+  4564,
+  1148,
+  4652,
+  1152,
+  4692,
+  1190,
+  4764,
+  1156,
+  4692,
+  1136,
+  4628,
+  1162,
+  4692,
+  1132,
+  4620,
+  1154,
+  4684,
+  1128,
+  4668,
+  1150,
+  4660,
+  3140,
+  1202,
+  2452,
+  5604,
+  5776,
+  1546,
+  1406,
+  1120,
+  700,
+  3844,
+  680,
+  4012,
+  1116,
+  4532,
+  7646,
+  1316,
+  1014,
+  1128,
+  2570,
+  6876,
+  1472,
+  960,
+  1032,
+  1044,
+  2572,
+  1178,
+  1080,
+  4548,
+  1180,
+  1344,
+  1010,
+  1078,
+  1114,
+  1240,
+  1806,
+  5380,
+  1680,
+  5396,
+  666,
+  3940,
+  1006,
+  2326,
+  6324,
+  1144,
+  4644,
+  1356,
+  1010,
+  1028,
+  6106,
+  974,
+  1126,
+  1478,
+  1058,
+  4500,
+  2694,
+  6996,
+  2652,
+  6972,
+  1162,
+  3266,
+  1176,
+  1108,
+  1842,
+  1084,
+  1208,
+  1112,
+  4580,
+  1016,
+  1182,
+  7232,
+  12444,
+  31632,
+  29344,
+  29344,
+  8156,
+  7756,
+  12784,
+  17044,
+  3426,
+  7668,
+  3952,
+  584,
+  39622,
+  78064,
+  2826,
+  7496,
+  6270,
+  8332,
+  110927,
+  3108,
+  8700,
+  975476,
+  500344,
+  975476,
+  35700,
+  2230,
+  6460,
+  5792,
+  10036,
+  700038,
+  5324,
+  7326,
+  4418,
+  8124,
+  2058,
+  5276,
+  3698,
+  2314,
+  6044,
+  10572,
+  105198,
+  103572,
+  68300,
+  2554,
+  7484,
+  4156,
+  10156,
+  7744,
+  4148,
+  8660,
+  5154,
+  9460,
+  3958,
+  9700,
+  70670,
+  34596,
+  4572,
+  3716,
+  9768,
+  20532,
+  1786,
+  6036,
+  26824,
+  31580,
+  3724,
+  7516,
+  4070,
+  8156,
+  11662,
+  12916,
+  11968,
+  14052,
+  13876,
+  18172,
+  15402,
+  22036,
+  9956,
+  12724,
+  10380,
+  13964,
+  8122,
+  12612,
+  12616,
+  16692,
+  4166,
+  27662,
+  73928,
+  153148,
+  34544,
+  10586,
+  34544,
+  34544,
+  10586,
+  34544,
+  34544,
+  10586,
+  34544,
+  34544,
+  34544,
+  34544,
+  34544,
+  34544,
+  34544,
+  34544,
+  34544,
+  229,
+  10586,
+  229,
+  4134,
+  7628,
+  4010,
+  7148,
+  60840,
+  7160,
+  11332,
+  6450,
+  9740,
+  84218,
+  118548,
+  68062,
+  134140,
+  26432,
+  9832,
+  18844,
+  2864,
+  6574,
+  12300,
+  17868,
+  27084,
+  22396,
+  27068,
+  5378,
+  9844,
+  145968,
+  156116,
+  4588,
+  8668,
+  4754,
+  93080,
+  107772,
+  65972,
+  13482,
+  80568,
+  171806,
+  5730,
+  27262,
+  19720,
+  120372,
+  28978,
+  8198,
+  15558,
+  49800,
+  14466,
+  105144,
+  20416,
+  25830,
+  88896,
+  24836,
+  55742,
+  63380,
+  8450,
+  29398,
+  25790,
+  12086,
+  137326,
+  26092,
+  56996,
+  7526,
+  12050,
+  243776,
+  56662,
+  11166,
+  23974,
+  118782,
+  111928,
+  107186,
+  45598,
+  26536,
+  19476,
+  18622,
+  266006,
+  86868,
+  35708,
+  152552,
+  19952,
+  31048,
+  82068,
+  22124,
+  89728,
+  47188,
+  98330,
+  89444,
+  98810,
+  104296,
+  1574382,
+  94068,
+  152526,
+  205386,
+  80412,
+  216596,
+  126054,
+  38968,
+  5028,
+  66028,
+  100404,
+  144846,
+  40530,
+  35686,
+  137064,
+  88352,
+  28582,
+  8938,
+  11452,
+  20706,
+  46182,
+  44850,
+  19038,
+  10228,
+  88788,
+  72772,
+  16954,
+  143864,
+  97254,
+  254856,
+  10430,
+  16894,
+  832958,
+  24040,
+  5732,
+  106688,
+  23304,
+  9538,
+  9602,
+  8244,
+  8322,
+  76410,
+  23248,
+  12244,
+  24678,
+  24328,
+  8714,
+  16054,
+  17254,
+  8372,
+  29516,
+  142858,
+  9088,
+  61202,
+  38408,
+  111000,
+  21148,
+  6480,
+  75332,
+  15414,
+  103226,
+  24976,
+  81708,
+  85148,
+  158182,
+  53316,
+  27596,
+  13248,
+  98472,
+  10102,
+  43146,
+  58978,
+  230698,
+  55956,
+  91872,
+  32492,
+  36630,
+  26488,
+  36130,
+  19834,
+  25730,
+  18860,
+  71780,
+  44666,
+  27150,
+  6068,
+  23790,
+  61154,
+  99100,
+  6860,
+  4858,
+  31168,
+  242920,
+  75430,
+  216056,
+  103516,
+  157736,
+  207412,
+  13974,
+  15700,
+  8942,
+  11804,
+  318550,
+  364956,
+  3200,
+  8972,
+  2388,
+  4126,
+  5912,
+  12516,
+  86462,
+  76452,
+  9070,
+  790436,
+  1176964,
+  61436,
+  2190,
+  3682,
+  3864,
+  4182,
+  3864,
+  768,
+  49,
+  49,
+  49,
+  705,
+  131728,
+  47,
+  47,
+  705,
+  135800,
+  43838,
+  5884,
+  11804,
+  60908,
+  69412,
+  58210,
+  98652,
+  31186,
+  37644,
+  3452,
+  7972,
+  26808,
+  38398,
+  3852,
+  7828,
+  1044,
+  7892,
+  13524,
+  33988,
+  3386,
+  2208,
+  25160,
+  2982,
+  2712,
+  6404,
+  176484,
+  125868,
+  51026,
+  62572,
+  29228,
+  40564,
+  12568,
+  22628,
+  19112,
+  68176,
+  60244,
+  30092,
+  40810,
+  248286,
+  551212,
+  5276,
+  6980,
+  30894,
+  31930,
+  434302,
+  98426,
+  71644,
+  2656,
+  10542,
+  13516,
+  723666,
+  83830,
+  99418,
+  97762,
+  329418,
+  273392,
+  261692,
+  37444,
+  3174,
+  4370,
+  13582,
+  45834,
+  101928,
+  19080,
+  430184,
+  82502,
+  13446,
+  2140,
+  6166,
+  87594,
+  93928,
+  2460,
+  214348,
+  2154,
+  83726,
+  35016,
+  4186,
+  4794,
+  8618,
+  307862,
+  285242,
+  64914,
+  24424,
+  23620,
+  5292,
+  8186,
+  11886,
+  33690,
+  268356,
+  110094,
+  40642,
+  230496,
+  2380,
+  5136,
+  6788,
+  95530,
+  8470,
+  13622,
+  15068,
+  33734,
+  6066,
+  116538,
+  34764,
+  6694,
+  7100,
+  3798,
+  8272,
+  3442,
+  398670,
+  136934,
+  319876,
+  28282,
+  991868,
+  15784,
+  1014176,
+  243844,
+  526428,
+  45578,
+  3010,
+  7756,
+  15134,
+  2678,
+  18102,
+  8926,
+  10148,
+  2818,
+  8236,
+  20190,
+  20596,
+  6955,
+  1046848,
+  369,
+  1046848,
+  369,
+  12338,
+  3113,
+  91662,
+  471312,
+  76048,
+  15032,
+  3130,
+  128374,
+  530416,
+  75288,
+  16920,
+  3096,
+  139821,
+  486344,
+  75288,
+  125728,
+  89872,
+  89144,
+  90608,
+  404752,
+  1028,
+  19667,
+  28511,
+  65288,
+  11194,
+  155192,
+  315888,
+  36472,
+  316736,
+  13916,
+  3066,
+  126310,
+  401376,
+  76048,
+  12420,
+  3066,
+  115628,
+  400656,
+  75288,
+  125728,
+  89144,
+  89872,
+  404072,
+  212,
+  121440,
+  2810,
+  60778,
+  155128,
+  36472,
+  54392,
+  35424,
+  9033,
+  6668,
+  117460,
+  187392,
+  36472,
+  61632,
+  404072,
+  121440,
+  10476,
+  3114,
+  87177,
+  495376,
+  73480,
+  13106,
+  3130,
+  122503,
+  501216,
+  73512,
+  19440,
+  2716,
+  191560,
+  302464,
+  11126,
+  3093,
+  89526,
+  497424,
+  73480,
+  13024,
+  3097,
+  154115,
+  498672,
+  76784,
+  16988,
+  3097,
+  190046,
+  499184,
+  76784,
+  9802,
+  3097,
+  42986,
+  499184,
+  76784,
+  11446,
+  3315,
+  140902,
+  302296,
+  36472,
+  125728,
+  90608,
+  91936,
+  101216,
+  89888,
+  90608,
+  89888,
+  89144,
+  98496,
+  60608,
+  404752,
+  1081,
+  9697,
+  2777,
+  20667,
+  138512,
+  64168,
+  14848,
+  3049,
+  132659,
+  411120,
+  89072,
+  36472,
+  92144,
+  405488,
+  256,
+  19667,
+  28511,
+  65288,
+  9311,
+  166032,
+  36472,
+  316736,
+  12590,
+  3050,
+  87645,
+  271024,
+  68264,
+  14850,
+  3050,
+  153989,
+  370968,
+  73512,
+  11362,
+  3050,
+  117277,
+  370968,
+  73512,
+  36472,
+  125728,
+  92864,
+  91936,
+  92448,
+  89872,
+  79720,
+  404072,
+  256,
+  9732,
+  3046,
+  84534,
+  357856,
+  76232,
+  9782,
+  3075,
+  20816,
+  131584,
+  73480,
+  5174,
+  2939,
+  12442,
+  3114,
+  92354,
+  468752,
+  73480,
+  15038,
+  3130,
+  128291,
+  529392,
+  73512,
+  17742,
+  3097,
+  176198,
+  523248,
+  76784,
+  11729,
+  3097,
+  44389,
+  522736,
+  76784,
+  36472,
+  125728,
+  90608,
+  91936,
+  89888,
+  90608,
+  80672,
+  404752,
+  1083,
+  11897,
+  2743,
+  22579,
+  131344,
+  73480,
+  16770,
+  3049,
+  144852,
+  442864,
+  89072,
+  36472,
+  92144,
+  80880,
+  405488,
+  260,
+  12717,
+  3043,
+  56912,
+  318944,
+  89072,
+  19667,
+  28511,
+  2236928,
+  2239488,
+  48464,
+  65288,
+  11361,
+  156656,
+  10997,
+  10224,
+  8796,
+  12249,
+  8148,
+  9369,
+  8944,
+  10400,
+  494960,
+  503664,
+  473968,
+  10758,
+  12146,
+  483184,
+  163696,
+  10046,
+  10040,
+  165232,
+  8657,
+  9915,
+  71952,
+  279024,
+  60752,
+  316400,
+  36472,
+  316736,
+  1721576,
+  16797,
+  3050,
+  162256,
+  352024,
+  73512,
+  13277,
+  3050,
+  126428,
+  352024,
+  73512,
+  36472,
+  125728,
+  91936,
+  92448,
+  89872,
+  80672,
+  404072,
+  268,
+  11656,
+  3046,
+  91773,
+  388040,
+  76232,
+  11904,
+  3075,
+  22837,
+  133392,
+  73480,
+  121440,
+  12423,
+  3114,
+  92426,
+  468752,
+  73480,
+  15026,
+  3130,
+  128070,
+  529392,
+  73512,
+  19440,
+  2716,
+  191560,
+  302464,
+  13073,
+  3093,
+  94851,
+  469264,
+  73480,
+  14946,
+  3097,
+  163489,
+  470512,
+  76784,
+  18910,
+  3097,
+  199105,
+  523248,
+  76784,
+  11725,
+  3097,
+  45051,
+  522736,
+  76784,
+  11446,
+  3315,
+  140902,
+  302296,
+  36472,
+  125728,
+  90608,
+  91936,
+  101216,
+  89888,
+  90608]
diff --git a/tests/fragmentation/tfragment_alloc.nim b/tests/fragmentation/tfragment_alloc.nim
new file mode 100644
index 000000000..6ee8322c7
--- /dev/null
+++ b/tests/fragmentation/tfragment_alloc.nim
@@ -0,0 +1,19 @@
+
+
+
+include system/ansi_c
+
+import strutils, data
+
+proc main =
+  var m = 0
+  for i in 0..1000_000:
+    let size = sizes[i mod sizes.len]
+    let p = alloc(size)
+    if p == nil:
+      quit "could not serve request!"
+    dealloc p
+ #   c_fprintf(stdout, "iteration: %ld size: %ld\n", i, size)
+
+main()
+echo formatSize getOccupiedMem(), " / ", formatSize getTotalMem()
diff --git a/tests/fragmentation/tfragment_gc.nim b/tests/fragmentation/tfragment_gc.nim
new file mode 100644
index 000000000..41f86136c
--- /dev/null
+++ b/tests/fragmentation/tfragment_gc.nim
@@ -0,0 +1,16 @@
+
+
+
+#include system/ansi_c
+
+import strutils, data
+
+proc main =
+  var m = 0
+  for i in 0..1000_000:
+    let size = sizes[i mod sizes.len]
+    let p = newString(size)
+ #   c_fprintf(stdout, "iteration: %ld size: %ld\n", i, size)
+
+main()
+echo formatSize getOccupiedMem(), " / ", formatSize getTotalMem()
diff --git a/todo.txt b/todo.txt
index bc68c2168..1fae1ddac 100644
--- a/todo.txt
+++ b/todo.txt
@@ -31,7 +31,6 @@ Not critical for 1.0
 - pragmas need 'bindSym' support
 - pragmas need re-work: 'push' is dangerous, 'hasPragma' does not work
   reliably with user-defined pragmas
-- memory manager: add a measure of fragmentation
 - we need a magic thisModule symbol
 - optimize 'genericReset'; 'newException' leads to code bloat
 
@@ -52,7 +51,6 @@ Bugs
 GC
 ==
 
-- use slightly bigger blocks in the allocator
 - resizing of strings/sequences could take into account the memory that
   is allocated