diff options
author | Takamichi Horikawa <takamichiho@gmail.com> | 2017-04-15 01:00:20 +0900 |
---|---|---|
committer | Takamichi Horikawa <takamichiho@gmail.com> | 2017-04-15 01:00:20 +0900 |
commit | 680ab52d9e151676b8f90d105b23d2d0d89b0471 (patch) | |
tree | 5a05e82900393d2e1ecdf034cf1735d4ebfaec98 /fft | |
parent | 428126ee4c8802a4b5f9c9ee491d54013857741b (diff) |
add fmdsp fft analyzer
Diffstat (limited to 'fft')
-rw-r--r-- | fft/fft.c | 154 | ||||
-rw-r--r-- | fft/fft.h | 35 | ||||
-rw-r--r-- | fft/fftwindow.h | 1026 |
3 files changed, 1215 insertions, 0 deletions
diff --git a/fft/fft.c b/fft/fft.c new file mode 100644 index 0000000..69c0971 --- /dev/null +++ b/fft/fft.c @@ -0,0 +1,154 @@ +#include "fft.h" +#include <math.h> +#include <string.h> + +void fft_write(struct fmplayer_fft_data *data, const int16_t *buf, unsigned len) { + if (len > FFTLEN) { + unsigned discard = FFTLEN - len; + buf += discard*2; + len = FFTLEN; + } + unsigned towrite = FFTLEN - data->ind; + if (towrite > len) towrite = len; + for (unsigned i = 0; i < towrite; i++) { + data->buf[data->ind+i] = ((uint32_t)buf[2*i+0] + buf[2*i+1]) / 2; + } + data->ind = (data->ind + towrite) % FFTLEN; + buf += towrite*2; + len -= towrite; + + for (unsigned i = 0; i < len; i++) { + data->buf[i] = ((uint32_t)buf[2*i+0] + buf[2*i+1]) / 2; + } + data->ind = (data->ind + len) % FFTLEN; +} + +static const uint16_t fftfreqtab[FFTDISPLEN+1] = { + 0, + 18, 19, 21, 22, 23, 25, 26, 28, 29, 31, + 33, 35, 37, 39, 42, 44, 47, 50, 53, 56, + 59, 63, 66, 70, 75, 79, 84, 89, 94, 100, + 106, 112, 119, 126, 133, 141, 150, 158, 168, 178, + 189, 200, 212, 224, 238, 252, 267, 283, 300, 317, + 336, 356, 378, 400, 424, 449, 476, 504, 534, 566, + 600, 635, 673, 713, 756, 801, 848, 899, 952, 1009, +}; + +enum { + HFFTLENBIT = 12, + HFFTLEN = 1<<HFFTLENBIT, +}; + +static uint16_t window[FFTLEN]; +static float tritab[FFTLEN + FFTLEN/4]; + +void fft_init_table(void) { + const double pi = acos(0.0) * 2.0; + double alpha = 0.54; + double beta = 1.0 - alpha; + for (unsigned i = 0; i < FFTLEN; i++) { + double v = alpha - beta * cos(2.0*pi*i/(FFTLEN-1)); + window[i] = v * (1<<16); + } + for (unsigned i = 0; i < (FFTLEN + FFTLEN/4); i++) { + tritab[i] = sin(2.0*pi*i/FFTLEN); + } +} + +static float coscalc(unsigned i) { + return tritab[(i & (FFTLEN-1)) + FFTLEN/4]; +} + +static float sincalc(unsigned i) { + return tritab[i & (FFTLEN-1)]; +} + +static float ar(unsigned i) { + return 0.5f*(1.0f-sincalc(i)); +} + +static float ai(unsigned i) { + return -0.5f*coscalc(i); +} + +static float br(unsigned i) { + return 0.5f*(1.0f+sincalc(i)); +} + +static float bi(unsigned i) { + return 0.5f*coscalc(i); +} + +static void fft_real(float *fftbuf) { + unsigned b = 0; + for (unsigned i = 0; i < HFFTLEN; i++) { + unsigned ii = 0; + for (unsigned bit = 0; bit < HFFTLENBIT; bit++) { + ii |= ((i >> bit) & 1u) << (HFFTLENBIT-bit-1); + } + fftbuf[(!b)*FFTLEN+i*2+0] = fftbuf[b*FFTLEN+ii*2+0]; + fftbuf[(!b)*FFTLEN+i*2+1] = fftbuf[b*FFTLEN+ii*2+1]; + } + b = !b; + for (unsigned bit = 0; bit < HFFTLENBIT; bit++) { + for (unsigned i = 0; i < HFFTLEN; i++) { + unsigned ei = i & ~(1u<<bit); + unsigned oi = i | (1u<<bit); + float are = fftbuf[b*FFTLEN+oi*2+0]; + float aim = fftbuf[b*FFTLEN+oi*2+1]; + float bre = coscalc(i<<(HFFTLENBIT-bit)); + float bim = sincalc(i<<(HFFTLENBIT-bit)); + float cre = are*bre - aim*bim; + float cim = are*bim + aim*bre; + fftbuf[(!b)*FFTLEN+i*2+0] = fftbuf[b*FFTLEN+ei*2+0] + cre; + fftbuf[(!b)*FFTLEN+i*2+1] = fftbuf[b*FFTLEN+ei*2+1] + cim; + } + b = !b; + } + for (unsigned i = 0; i < HFFTLEN; i++) { + float xr = fftbuf[b*FFTLEN+i*2+0]; + float rxr = fftbuf[b*FFTLEN+0]; + if (i) rxr = fftbuf[b*FFTLEN+(HFFTLEN-i)*2+0]; + float xi = fftbuf[b*FFTLEN+i*2+1]; + float rxi = fftbuf[b*FFTLEN+1]; + if (i) rxi = fftbuf[b*FFTLEN+(HFFTLEN-i)*2+1]; + fftbuf[(!b)*FFTLEN+i*2+0] = xr * ar(i) - xi * ai(i) + rxr * br(i) + rxi * bi(i); + fftbuf[(!b)*FFTLEN+i*2+1] = xi * ar(i) + xr * ai(i) + rxr * bi(i) - rxi * br(i); + } + if (!b) { + memcpy(fftbuf, fftbuf+FFTLEN, FFTLEN*sizeof(fftbuf[0])); + } +} + +void fft_calc(struct fmplayer_fft_disp_data *ddata, struct fmplayer_fft_input_data *idata) { + for (int i = 0; i < FFTLEN; i++) { + int fi = (i + idata->fdata.ind) % FFTLEN; + idata->work[i] = (((int32_t)idata->fdata.buf[fi]) * window[i]) >> 16; + } + for (int i = 0; i < FFTLEN; i++) { + idata->fwork[i] = ((float)idata->work[i])/32768; + } + fft_real(idata->fwork); + for (int i = 1; i < FFTLEN/2; i++) { + float re = idata->fwork[i*2]; + float im = idata->fwork[i*2+1]; + idata->fwork[i] = sqrtf((re*re) + (im*im)); + } + for (int i = 0; i < FFTLEN/2; i++) { + idata->fwork[i] = idata->fwork[i] / sqrtf(FFTLEN); + } + float dbuf[FFTDISPLEN]; + for (int i = 0; i < FFTDISPLEN; i++) { + dbuf[i] = 0.0f; + for (int j = fftfreqtab[i]; j < fftfreqtab[i+1]; j++) { + dbuf[i] += idata->fwork[j]; + } + dbuf[i] /= fftfreqtab[i+1] - fftfreqtab[i]; + } + for (int i = 0; i < FFTDISPLEN; i++) { + float res = (dbuf[i] > (1.0f / 256)) ? (4.0f*log2f(dbuf[i]) + 32.0f) : 0.0f; + if (res > 31.0f) res = 31.0f; + if (res < 0.0f) res = 0.0f; + ddata->buf[i] = res; + } +} diff --git a/fft/fft.h b/fft/fft.h new file mode 100644 index 0000000..b446739 --- /dev/null +++ b/fft/fft.h @@ -0,0 +1,35 @@ +#ifndef MYON_FMPLAYER_FFT_FFT_H_INCLUDED +#define MYON_FMPLAYER_FFT_FFT_H_INCLUDED + +#include <stdint.h> + +enum { + FFTLEN = 8192, + FFTDISPLEN = 70, +}; + +struct fmplayer_fft_data { + int16_t buf[FFTLEN]; + unsigned ind; +}; + +struct fmplayer_fft_input_data { + struct fmplayer_fft_data fdata; + int16_t work[FFTLEN]; + double dwork[FFTLEN]; + float fwork[FFTLEN*2]; +}; + +struct fmplayer_fft_disp_data { + // 0 - 31 + // 4 per 6db + uint8_t buf[FFTDISPLEN]; +}; + +void fft_init_table(void); + +void fft_write(struct fmplayer_fft_data *data, const int16_t *buf, unsigned len); + +void fft_calc(struct fmplayer_fft_disp_data *ddata, struct fmplayer_fft_input_data *idata); + +#endif // MYON_FMPLAYER_FFT_FFT_H_INCLUDED diff --git a/fft/fftwindow.h b/fft/fftwindow.h new file mode 100644 index 0000000..7dd26dc --- /dev/null +++ b/fft/fftwindow.h @@ -0,0 +1,1026 @@ +static const uint16_t window[8192] = { + 5242, 5242, 5242, 5242, 5243, 5243, 5243, 5243, + 5243, 5243, 5243, 5243, 5244, 5244, 5244, 5244, + 5245, 5245, 5245, 5246, 5246, 5246, 5247, 5247, + 5247, 5248, 5248, 5249, 5249, 5250, 5250, 5251, + 5251, 5252, 5253, 5253, 5254, 5255, 5255, 5256, + 5257, 5257, 5258, 5259, 5260, 5260, 5261, 5262, + 5263, 5264, 5265, 5265, 5266, 5267, 5268, 5269, + 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5278, + 5279, 5280, 5281, 5282, 5283, 5285, 5286, 5287, + 5288, 5290, 5291, 5292, 5294, 5295, 5296, 5298, + 5299, 5301, 5302, 5303, 5305, 5306, 5308, 5309, + 5311, 5313, 5314, 5316, 5317, 5319, 5321, 5322, + 5324, 5326, 5328, 5329, 5331, 5333, 5335, 5336, + 5338, 5340, 5342, 5344, 5346, 5348, 5350, 5352, + 5354, 5356, 5358, 5360, 5362, 5364, 5366, 5368, + 5370, 5372, 5374, 5376, 5379, 5381, 5383, 5385, + 5388, 5390, 5392, 5394, 5397, 5399, 5401, 5404, + 5406, 5409, 5411, 5414, 5416, 5419, 5421, 5424, + 5426, 5429, 5431, 5434, 5436, 5439, 5442, 5444, + 5447, 5450, 5452, 5455, 5458, 5461, 5464, 5466, + 5469, 5472, 5475, 5478, 5481, 5484, 5486, 5489, + 5492, 5495, 5498, 5501, 5504, 5507, 5511, 5514, + 5517, 5520, 5523, 5526, 5529, 5532, 5536, 5539, + 5542, 5545, 5549, 5552, 5555, 5559, 5562, 5565, + 5569, 5572, 5576, 5579, 5582, 5586, 5589, 5593, + 5596, 5600, 5604, 5607, 5611, 5614, 5618, 5622, + 5625, 5629, 5633, 5636, 5640, 5644, 5648, 5651, + 5655, 5659, 5663, 5667, 5671, 5675, 5678, 5682, + 5686, 5690, 5694, 5698, 5702, 5706, 5710, 5714, + 5719, 5723, 5727, 5731, 5735, 5739, 5743, 5748, + 5752, 5756, 5760, 5765, 5769, 5773, 5778, 5782, + 5786, 5791, 5795, 5799, 5804, 5808, 5813, 5817, + 5822, 5826, 5831, 5835, 5840, 5845, 5849, 5854, + 5858, 5863, 5868, 5872, 5877, 5882, 5887, 5891, + 5896, 5901, 5906, 5911, 5915, 5920, 5925, 5930, + 5935, 5940, 5945, 5950, 5955, 5960, 5965, 5970, + 5975, 5980, 5985, 5990, 5995, 6001, 6006, 6011, + 6016, 6021, 6027, 6032, 6037, 6042, 6048, 6053, + 6058, 6064, 6069, 6074, 6080, 6085, 6091, 6096, + 6102, 6107, 6113, 6118, 6124, 6129, 6135, 6140, + 6146, 6152, 6157, 6163, 6169, 6174, 6180, 6186, + 6192, 6197, 6203, 6209, 6215, 6221, 6226, 6232, + 6238, 6244, 6250, 6256, 6262, 6268, 6274, 6280, + 6286, 6292, 6298, 6304, 6310, 6316, 6322, 6329, + 6335, 6341, 6347, 6353, 6359, 6366, 6372, 6378, + 6385, 6391, 6397, 6404, 6410, 6416, 6423, 6429, + 6436, 6442, 6448, 6455, 6461, 6468, 6475, 6481, + 6488, 6494, 6501, 6507, 6514, 6521, 6527, 6534, + 6541, 6548, 6554, 6561, 6568, 6575, 6581, 6588, + 6595, 6602, 6609, 6616, 6623, 6630, 6636, 6643, + 6650, 6657, 6664, 6671, 6678, 6686, 6693, 6700, + 6707, 6714, 6721, 6728, 6735, 6743, 6750, 6757, + 6764, 6772, 6779, 6786, 6793, 6801, 6808, 6815, + 6823, 6830, 6838, 6845, 6853, 6860, 6868, 6875, + 6883, 6890, 6898, 6905, 6913, 6920, 6928, 6936, + 6943, 6951, 6959, 6966, 6974, 6982, 6990, 6997, + 7005, 7013, 7021, 7029, 7036, 7044, 7052, 7060, + 7068, 7076, 7084, 7092, 7100, 7108, 7116, 7124, + 7132, 7140, 7148, 7156, 7164, 7172, 7180, 7189, + 7197, 7205, 7213, 7221, 7230, 7238, 7246, 7255, + 7263, 7271, 7280, 7288, 7296, 7305, 7313, 7322, + 7330, 7338, 7347, 7355, 7364, 7373, 7381, 7390, + 7398, 7407, 7415, 7424, 7433, 7441, 7450, 7459, + 7467, 7476, 7485, 7494, 7502, 7511, 7520, 7529, + 7538, 7547, 7555, 7564, 7573, 7582, 7591, 7600, + 7609, 7618, 7627, 7636, 7645, 7654, 7663, 7672, + 7681, 7691, 7700, 7709, 7718, 7727, 7736, 7746, + 7755, 7764, 7773, 7783, 7792, 7801, 7811, 7820, + 7829, 7839, 7848, 7857, 7867, 7876, 7886, 7895, + 7905, 7914, 7924, 7933, 7943, 7952, 7962, 7972, + 7981, 7991, 8001, 8010, 8020, 8030, 8039, 8049, + 8059, 8069, 8078, 8088, 8098, 8108, 8118, 8128, + 8137, 8147, 8157, 8167, 8177, 8187, 8197, 8207, + 8217, 8227, 8237, 8247, 8257, 8267, 8277, 8288, + 8298, 8308, 8318, 8328, 8338, 8349, 8359, 8369, + 8379, 8390, 8400, 8410, 8421, 8431, 8441, 8452, + 8462, 8472, 8483, 8493, 8504, 8514, 8525, 8535, + 8546, 8556, 8567, 8577, 8588, 8599, 8609, 8620, + 8630, 8641, 8652, 8662, 8673, 8684, 8695, 8705, + 8716, 8727, 8738, 8749, 8759, 8770, 8781, 8792, + 8803, 8814, 8825, 8836, 8847, 8858, 8869, 8880, + 8891, 8902, 8913, 8924, 8935, 8946, 8957, 8968, + 8979, 8990, 9002, 9013, 9024, 9035, 9047, 9058, + 9069, 9080, 9092, 9103, 9114, 9126, 9137, 9148, + 9160, 9171, 9183, 9194, 9205, 9217, 9228, 9240, + 9251, 9263, 9275, 9286, 9298, 9309, 9321, 9332, + 9344, 9356, 9367, 9379, 9391, 9403, 9414, 9426, + 9438, 9450, 9461, 9473, 9485, 9497, 9509, 9521, + 9532, 9544, 9556, 9568, 9580, 9592, 9604, 9616, + 9628, 9640, 9652, 9664, 9676, 9688, 9700, 9712, + 9725, 9737, 9749, 9761, 9773, 9785, 9798, 9810, + 9822, 9834, 9847, 9859, 9871, 9884, 9896, 9908, + 9921, 9933, 9945, 9958, 9970, 9983, 9995, 10008, + 10020, 10033, 10045, 10058, 10070, 10083, 10095, 10108, + 10121, 10133, 10146, 10158, 10171, 10184, 10196, 10209, + 10222, 10235, 10247, 10260, 10273, 10286, 10299, 10311, + 10324, 10337, 10350, 10363, 10376, 10389, 10402, 10414, + 10427, 10440, 10453, 10466, 10479, 10492, 10506, 10519, + 10532, 10545, 10558, 10571, 10584, 10597, 10610, 10624, + 10637, 10650, 10663, 10676, 10690, 10703, 10716, 10730, + 10743, 10756, 10770, 10783, 10796, 10810, 10823, 10836, + 10850, 10863, 10877, 10890, 10904, 10917, 10931, 10944, + 10958, 10971, 10985, 10999, 11012, 11026, 11039, 11053, + 11067, 11080, 11094, 11108, 11121, 11135, 11149, 11163, + 11176, 11190, 11204, 11218, 11232, 11245, 11259, 11273, + 11287, 11301, 11315, 11329, 11343, 11357, 11371, 11385, + 11399, 11413, 11427, 11441, 11455, 11469, 11483, 11497, + 11511, 11525, 11539, 11554, 11568, 11582, 11596, 11610, + 11625, 11639, 11653, 11667, 11682, 11696, 11710, 11724, + 11739, 11753, 11767, 11782, 11796, 11811, 11825, 11840, + 11854, 11868, 11883, 11897, 11912, 11926, 11941, 11955, + 11970, 11985, 11999, 12014, 12028, 12043, 12058, 12072, + 12087, 12102, 12116, 12131, 12146, 12160, 12175, 12190, + 12205, 12220, 12234, 12249, 12264, 12279, 12294, 12309, + 12323, 12338, 12353, 12368, 12383, 12398, 12413, 12428, + 12443, 12458, 12473, 12488, 12503, 12518, 12533, 12548, + 12563, 12579, 12594, 12609, 12624, 12639, 12654, 12669, + 12685, 12700, 12715, 12730, 12746, 12761, 12776, 12792, + 12807, 12822, 12837, 12853, 12868, 12884, 12899, 12914, + 12930, 12945, 12961, 12976, 12992, 13007, 13023, 13038, + 13054, 13069, 13085, 13100, 13116, 13131, 13147, 13163, + 13178, 13194, 13210, 13225, 13241, 13257, 13272, 13288, + 13304, 13320, 13335, 13351, 13367, 13383, 13398, 13414, + 13430, 13446, 13462, 13478, 13494, 13510, 13525, 13541, + 13557, 13573, 13589, 13605, 13621, 13637, 13653, 13669, + 13685, 13701, 13717, 13734, 13750, 13766, 13782, 13798, + 13814, 13830, 13846, 13863, 13879, 13895, 13911, 13927, + 13944, 13960, 13976, 13993, 14009, 14025, 14041, 14058, + 14074, 14091, 14107, 14123, 14140, 14156, 14172, 14189, + 14205, 14222, 14238, 14255, 14271, 14288, 14304, 14321, + 14337, 14354, 14371, 14387, 14404, 14420, 14437, 14454, + 14470, 14487, 14504, 14520, 14537, 14554, 14570, 14587, + 14604, 14621, 14637, 14654, 14671, 14688, 14705, 14721, + 14738, 14755, 14772, 14789, 14806, 14823, 14840, 14856, + 14873, 14890, 14907, 14924, 14941, 14958, 14975, 14992, + 15009, 15026, 15043, 15060, 15078, 15095, 15112, 15129, + 15146, 15163, 15180, 15197, 15215, 15232, 15249, 15266, + 15283, 15301, 15318, 15335, 15353, 15370, 15387, 15404, + 15422, 15439, 15456, 15474, 15491, 15508, 15526, 15543, + 15561, 15578, 15596, 15613, 15630, 15648, 15665, 15683, + 15700, 15718, 15735, 15753, 15771, 15788, 15806, 15823, + 15841, 15858, 15876, 15894, 15911, 15929, 15947, 15964, + 15982, 16000, 16018, 16035, 16053, 16071, 16088, 16106, + 16124, 16142, 16160, 16177, 16195, 16213, 16231, 16249, + 16267, 16285, 16302, 16320, 16338, 16356, 16374, 16392, + 16410, 16428, 16446, 16464, 16482, 16500, 16518, 16536, + 16554, 16572, 16590, 16608, 16626, 16645, 16663, 16681, + 16699, 16717, 16735, 16753, 16772, 16790, 16808, 16826, + 16844, 16863, 16881, 16899, 16917, 16936, 16954, 16972, + 16991, 17009, 17027, 17046, 17064, 17082, 17101, 17119, + 17138, 17156, 17174, 17193, 17211, 17230, 17248, 17267, + 17285, 17304, 17322, 17341, 17359, 17378, 17396, 17415, + 17433, 17452, 17471, 17489, 17508, 17526, 17545, 17564, + 17582, 17601, 17620, 17638, 17657, 17676, 17695, 17713, + 17732, 17751, 17769, 17788, 17807, 17826, 17845, 17863, + 17882, 17901, 17920, 17939, 17958, 17977, 17995, 18014, + 18033, 18052, 18071, 18090, 18109, 18128, 18147, 18166, + 18185, 18204, 18223, 18242, 18261, 18280, 18299, 18318, + 18337, 18356, 18375, 18394, 18413, 18432, 18452, 18471, + 18490, 18509, 18528, 18547, 18567, 18586, 18605, 18624, + 18643, 18663, 18682, 18701, 18720, 18740, 18759, 18778, + 18798, 18817, 18836, 18856, 18875, 18894, 18914, 18933, + 18952, 18972, 18991, 19011, 19030, 19049, 19069, 19088, + 19108, 19127, 19147, 19166, 19186, 19205, 19225, 19244, + 19264, 19283, 19303, 19322, 19342, 19362, 19381, 19401, + 19420, 19440, 19460, 19479, 19499, 19519, 19538, 19558, + 19578, 19597, 19617, 19637, 19656, 19676, 19696, 19716, + 19735, 19755, 19775, 19795, 19814, 19834, 19854, 19874, + 19894, 19914, 19933, 19953, 19973, 19993, 20013, 20033, + 20053, 20073, 20093, 20113, 20132, 20152, 20172, 20192, + 20212, 20232, 20252, 20272, 20292, 20312, 20332, 20352, + 20372, 20392, 20413, 20433, 20453, 20473, 20493, 20513, + 20533, 20553, 20573, 20594, 20614, 20634, 20654, 20674, + 20694, 20715, 20735, 20755, 20775, 20795, 20816, 20836, + 20856, 20876, 20897, 20917, 20937, 20958, 20978, 20998, + 21019, 21039, 21059, 21080, 21100, 21120, 21141, 21161, + 21181, 21202, 21222, 21243, 21263, 21284, 21304, 21324, + 21345, 21365, 21386, 21406, 21427, 21447, 21468, 21488, + 21509, 21529, 21550, 21570, 21591, 21612, 21632, 21653, + 21673, 21694, 21715, 21735, 21756, 21776, 21797, 21818, + 21838, 21859, 21880, 21900, 21921, 21942, 21962, 21983, + 22004, 22025, 22045, 22066, 22087, 22108, 22128, 22149, + 22170, 22191, 22211, 22232, 22253, 22274, 22295, 22316, + 22336, 22357, 22378, 22399, 22420, 22441, 22462, 22482, + 22503, 22524, 22545, 22566, 22587, 22608, 22629, 22650, + 22671, 22692, 22713, 22734, 22755, 22776, 22797, 22818, + 22839, 22860, 22881, 22902, 22923, 22944, 22965, 22986, + 23007, 23028, 23049, 23071, 23092, 23113, 23134, 23155, + 23176, 23197, 23218, 23240, 23261, 23282, 23303, 23324, + 23346, 23367, 23388, 23409, 23430, 23452, 23473, 23494, + 23515, 23537, 23558, 23579, 23600, 23622, 23643, 23664, + 23686, 23707, 23728, 23750, 23771, 23792, 23814, 23835, + 23856, 23878, 23899, 23920, 23942, 23963, 23985, 24006, + 24028, 24049, 24070, 24092, 24113, 24135, 24156, 24178, + 24199, 24221, 24242, 24264, 24285, 24307, 24328, 24350, + 24371, 24393, 24414, 24436, 24457, 24479, 24500, 24522, + 24543, 24565, 24587, 24608, 24630, 24651, 24673, 24695, + 24716, 24738, 24760, 24781, 24803, 24825, 24846, 24868, + 24890, 24911, 24933, 24955, 24976, 24998, 25020, 25041, + 25063, 25085, 25107, 25128, 25150, 25172, 25194, 25215, + 25237, 25259, 25281, 25302, 25324, 25346, 25368, 25390, + 25412, 25433, 25455, 25477, 25499, 25521, 25543, 25564, + 25586, 25608, 25630, 25652, 25674, 25696, 25718, 25739, + 25761, 25783, 25805, 25827, 25849, 25871, 25893, 25915, + 25937, 25959, 25981, 26003, 26025, 26047, 26069, 26091, + 26113, 26135, 26157, 26179, 26201, 26223, 26245, 26267, + 26289, 26311, 26333, 26355, 26377, 26399, 26421, 26443, + 26465, 26488, 26510, 26532, 26554, 26576, 26598, 26620, + 26642, 26664, 26687, 26709, 26731, 26753, 26775, 26797, + 26820, 26842, 26864, 26886, 26908, 26930, 26953, 26975, + 26997, 27019, 27042, 27064, 27086, 27108, 27130, 27153, + 27175, 27197, 27219, 27242, 27264, 27286, 27309, 27331, + 27353, 27375, 27398, 27420, 27442, 27465, 27487, 27509, + 27532, 27554, 27576, 27599, 27621, 27643, 27666, 27688, + 27710, 27733, 27755, 27777, 27800, 27822, 27845, 27867, + 27889, 27912, 27934, 27957, 27979, 28001, 28024, 28046, + 28069, 28091, 28114, 28136, 28158, 28181, 28203, 28226, + 28248, 28271, 28293, 28316, 28338, 28361, 28383, 28406, + 28428, 28451, 28473, 28496, 28518, 28541, 28563, 28586, + 28608, 28631, 28653, 28676, 28698, 28721, 28744, 28766, + 28789, 28811, 28834, 28856, 28879, 28902, 28924, 28947, + 28969, 28992, 29014, 29037, 29060, 29082, 29105, 29128, + 29150, 29173, 29195, 29218, 29241, 29263, 29286, 29309, + 29331, 29354, 29377, 29399, 29422, 29445, 29467, 29490, + 29513, 29535, 29558, 29581, 29603, 29626, 29649, 29671, + 29694, 29717, 29740, 29762, 29785, 29808, 29830, 29853, + 29876, 29899, 29921, 29944, 29967, 29990, 30012, 30035, + 30058, 30081, 30103, 30126, 30149, 30172, 30195, 30217, + 30240, 30263, 30286, 30308, 30331, 30354, 30377, 30400, + 30422, 30445, 30468, 30491, 30514, 30537, 30559, 30582, + 30605, 30628, 30651, 30674, 30696, 30719, 30742, 30765, + 30788, 30811, 30833, 30856, 30879, 30902, 30925, 30948, + 30971, 30994, 31016, 31039, 31062, 31085, 31108, 31131, + 31154, 31177, 31200, 31222, 31245, 31268, 31291, 31314, + 31337, 31360, 31383, 31406, 31429, 31452, 31475, 31497, + 31520, 31543, 31566, 31589, 31612, 31635, 31658, 31681, + 31704, 31727, 31750, 31773, 31796, 31819, 31842, 31865, + 31888, 31911, 31934, 31957, 31980, 32003, 32025, 32048, + 32071, 32094, 32117, 32140, 32163, 32186, 32209, 32232, + 32255, 32278, 32301, 32324, 32347, 32370, 32393, 32416, + 32439, 32462, 32485, 32509, 32532, 32555, 32578, 32601, + 32624, 32647, 32670, 32693, 32716, 32739, 32762, 32785, + 32808, 32831, 32854, 32877, 32900, 32923, 32946, 32969, + 32992, 33015, 33038, 33061, 33084, 33108, 33131, 33154, + 33177, 33200, 33223, 33246, 33269, 33292, 33315, 33338, + 33361, 33384, 33407, 33430, 33454, 33477, 33500, 33523, + 33546, 33569, 33592, 33615, 33638, 33661, 33684, 33707, + 33731, 33754, 33777, 33800, 33823, 33846, 33869, 33892, + 33915, 33938, 33962, 33985, 34008, 34031, 34054, 34077, + 34100, 34123, 34146, 34169, 34193, 34216, 34239, 34262, + 34285, 34308, 34331, 34354, 34377, 34401, 34424, 34447, + 34470, 34493, 34516, 34539, 34562, 34585, 34609, 34632, + 34655, 34678, 34701, 34724, 34747, 34770, 34794, 34817, + 34840, 34863, 34886, 34909, 34932, 34955, 34978, 35002, + 35025, 35048, 35071, 35094, 35117, 35140, 35163, 35187, + 35210, 35233, 35256, 35279, 35302, 35325, 35348, 35372, + 35395, 35418, 35441, 35464, 35487, 35510, 35533, 35557, + 35580, 35603, 35626, 35649, 35672, 35695, 35718, 35742, + 35765, 35788, 35811, 35834, 35857, 35880, 35903, 35927, + 35950, 35973, 35996, 36019, 36042, 36065, 36088, 36112, + 36135, 36158, 36181, 36204, 36227, 36250, 36273, 36296, + 36320, 36343, 36366, 36389, 36412, 36435, 36458, 36481, + 36504, 36528, 36551, 36574, 36597, 36620, 36643, 36666, + 36689, 36712, 36736, 36759, 36782, 36805, 36828, 36851, + 36874, 36897, 36920, 36943, 36966, 36990, 37013, 37036, + 37059, 37082, 37105, 37128, 37151, 37174, 37197, 37220, + 37244, 37267, 37290, 37313, 37336, 37359, 37382, 37405, + 37428, 37451, 37474, 37497, 37520, 37544, 37567, 37590, + 37613, 37636, 37659, 37682, 37705, 37728, 37751, 37774, + 37797, 37820, 37843, 37866, 37889, 37912, 37935, 37958, + 37982, 38005, 38028, 38051, 38074, 38097, 38120, 38143, + 38166, 38189, 38212, 38235, 38258, 38281, 38304, 38327, + 38350, 38373, 38396, 38419, 38442, 38465, 38488, 38511, + 38534, 38557, 38580, 38603, 38626, 38649, 38672, 38695, + 38718, 38741, 38764, 38787, 38810, 38833, 38856, 38879, + 38902, 38925, 38948, 38971, 38994, 39017, 39039, 39062, + 39085, 39108, 39131, 39154, 39177, 39200, 39223, 39246, + 39269, 39292, 39315, 39338, 39361, 39384, 39406, 39429, + 39452, 39475, 39498, 39521, 39544, 39567, 39590, 39613, + 39636, 39658, 39681, 39704, 39727, 39750, 39773, 39796, + 39819, 39841, 39864, 39887, 39910, 39933, 39956, 39979, + 40002, 40024, 40047, 40070, 40093, 40116, 40139, 40161, + 40184, 40207, 40230, 40253, 40276, 40298, 40321, 40344, + 40367, 40390, 40412, 40435, 40458, 40481, 40504, 40526, + 40549, 40572, 40595, 40618, 40640, 40663, 40686, 40709, + 40731, 40754, 40777, 40800, 40822, 40845, 40868, 40891, + 40913, 40936, 40959, 40981, 41004, 41027, 41050, 41072, + 41095, 41118, 41140, 41163, 41186, 41209, 41231, 41254, + 41277, 41299, 41322, 41345, 41367, 41390, 41413, 41435, + 41458, 41481, 41503, 41526, 41549, 41571, 41594, 41616, + 41639, 41662, 41684, 41707, 41730, 41752, 41775, 41797, + 41820, 41842, 41865, 41888, 41910, 41933, 41955, 41978, + 42001, 42023, 42046, 42068, 42091, 42113, 42136, 42158, + 42181, 42203, 42226, 42248, 42271, 42293, 42316, 42339, + 42361, 42384, 42406, 42428, 42451, 42473, 42496, 42518, + 42541, 42563, 42586, 42608, 42631, 42653, 42676, 42698, + 42720, 42743, 42765, 42788, 42810, 42833, 42855, 42877, + 42900, 42922, 42945, 42967, 42989, 43012, 43034, 43056, + 43079, 43101, 43123, 43146, 43168, 43191, 43213, 43235, + 43258, 43280, 43302, 43324, 43347, 43369, 43391, 43414, + 43436, 43458, 43481, 43503, 43525, 43547, 43570, 43592, + 43614, 43636, 43659, 43681, 43703, 43725, 43747, 43770, + 43792, 43814, 43836, 43859, 43881, 43903, 43925, 43947, + 43969, 43992, 44014, 44036, 44058, 44080, 44102, 44124, + 44147, 44169, 44191, 44213, 44235, 44257, 44279, 44301, + 44323, 44346, 44368, 44390, 44412, 44434, 44456, 44478, + 44500, 44522, 44544, 44566, 44588, 44610, 44632, 44654, + 44676, 44698, 44720, 44742, 44764, 44786, 44808, 44830, + 44852, 44874, 44896, 44918, 44940, 44962, 44984, 45006, + 45027, 45049, 45071, 45093, 45115, 45137, 45159, 45181, + 45203, 45224, 45246, 45268, 45290, 45312, 45334, 45355, + 45377, 45399, 45421, 45443, 45465, 45486, 45508, 45530, + 45552, 45573, 45595, 45617, 45639, 45660, 45682, 45704, + 45726, 45747, 45769, 45791, 45812, 45834, 45856, 45878, + 45899, 45921, 45943, 45964, 45986, 46008, 46029, 46051, + 46072, 46094, 46116, 46137, 46159, 46180, 46202, 46224, + 46245, 46267, 46288, 46310, 46331, 46353, 46375, 46396, + 46418, 46439, 46461, 46482, 46504, 46525, 46547, 46568, + 46590, 46611, 46632, 46654, 46675, 46697, 46718, 46740, + 46761, 46783, 46804, 46825, 46847, 46868, 46889, 46911, + 46932, 46954, 46975, 46996, 47018, 47039, 47060, 47082, + 47103, 47124, 47145, 47167, 47188, 47209, 47231, 47252, + 47273, 47294, 47316, 47337, 47358, 47379, 47401, 47422, + 47443, 47464, 47485, 47506, 47528, 47549, 47570, 47591, + 47612, 47633, 47655, 47676, 47697, 47718, 47739, 47760, + 47781, 47802, 47823, 47844, 47865, 47886, 47907, 47929, + 47950, 47971, 47992, 48013, 48034, 48055, 48076, 48097, + 48117, 48138, 48159, 48180, 48201, 48222, 48243, 48264, + 48285, 48306, 48327, 48348, 48368, 48389, 48410, 48431, + 48452, 48473, 48494, 48514, 48535, 48556, 48577, 48598, + 48618, 48639, 48660, 48681, 48701, 48722, 48743, 48764, + 48784, 48805, 48826, 48847, 48867, 48888, 48909, 48929, + 48950, 48971, 48991, 49012, 49032, 49053, 49074, 49094, + 49115, 49135, 49156, 49177, 49197, 49218, 49238, 49259, + 49279, 49300, 49320, 49341, 49361, 49382, 49402, 49423, + 49443, 49464, 49484, 49505, 49525, 49545, 49566, 49586, + 49607, 49627, 49647, 49668, 49688, 49708, 49729, 49749, + 49769, 49790, 49810, 49830, 49851, 49871, 49891, 49912, + 49932, 49952, 49972, 49993, 50013, 50033, 50053, 50073, + 50094, 50114, 50134, 50154, 50174, 50194, 50215, 50235, + 50255, 50275, 50295, 50315, 50335, 50355, 50375, 50395, + 50415, 50436, 50456, 50476, 50496, 50516, 50536, 50556, + 50576, 50596, 50615, 50635, 50655, 50675, 50695, 50715, + 50735, 50755, 50775, 50795, 50815, 50834, 50854, 50874, + 50894, 50914, 50934, 50953, 50973, 50993, 51013, 51033, + 51052, 51072, 51092, 51112, 51131, 51151, 51171, 51190, + 51210, 51230, 51250, 51269, 51289, 51308, 51328, 51348, + 51367, 51387, 51407, 51426, 51446, 51465, 51485, 51504, + 51524, 51543, 51563, 51582, 51602, 51621, 51641, 51660, + 51680, 51699, 51719, 51738, 51758, 51777, 51796, 51816, + 51835, 51855, 51874, 51893, 51913, 51932, 51951, 51971, + 51990, 52009, 52029, 52048, 52067, 52086, 52106, 52125, + 52144, 52163, 52183, 52202, 52221, 52240, 52259, 52278, + 52298, 52317, 52336, 52355, 52374, 52393, 52412, 52431, + 52450, 52469, 52489, 52508, 52527, 52546, 52565, 52584, + 52603, 52622, 52641, 52660, 52678, 52697, 52716, 52735, + 52754, 52773, 52792, 52811, 52830, 52849, 52867, 52886, + 52905, 52924, 52943, 52961, 52980, 52999, 53018, 53037, + 53055, 53074, 53093, 53111, 53130, 53149, 53168, 53186, + 53205, 53224, 53242, 53261, 53279, 53298, 53317, 53335, + 53354, 53372, 53391, 53409, 53428, 53446, 53465, 53483, + 53502, 53520, 53539, 53557, 53576, 53594, 53613, 53631, + 53650, 53668, 53686, 53705, 53723, 53741, 53760, 53778, + 53796, 53815, 53833, 53851, 53870, 53888, 53906, 53924, + 53943, 53961, 53979, 53997, 54015, 54034, 54052, 54070, + 54088, 54106, 54124, 54142, 54160, 54179, 54197, 54215, + 54233, 54251, 54269, 54287, 54305, 54323, 54341, 54359, + 54377, 54395, 54413, 54431, 54449, 54466, 54484, 54502, + 54520, 54538, 54556, 54574, 54592, 54609, 54627, 54645, + 54663, 54681, 54698, 54716, 54734, 54752, 54769, 54787, + 54805, 54822, 54840, 54858, 54875, 54893, 54911, 54928, + 54946, 54963, 54981, 54999, 55016, 55034, 55051, 55069, + 55086, 55104, 55121, 55139, 55156, 55174, 55191, 55208, + 55226, 55243, 55261, 55278, 55295, 55313, 55330, 55347, + 55365, 55382, 55399, 55417, 55434, 55451, 55469, 55486, + 55503, 55520, 55537, 55555, 55572, 55589, 55606, 55623, + 55640, 55658, 55675, 55692, 55709, 55726, 55743, 55760, + 55777, 55794, 55811, 55828, 55845, 55862, 55879, 55896, + 55913, 55930, 55947, 55964, 55981, 55998, 56014, 56031, + 56048, 56065, 56082, 56099, 56115, 56132, 56149, 56166, + 56182, 56199, 56216, 56233, 56249, 56266, 56283, 56299, + 56316, 56333, 56349, 56366, 56382, 56399, 56416, 56432, + 56449, 56465, 56482, 56498, 56515, 56531, 56548, 56564, + 56581, 56597, 56614, 56630, 56646, 56663, 56679, 56696, + 56712, 56728, 56745, 56761, 56777, 56793, 56810, 56826, + 56842, 56859, 56875, 56891, 56907, 56923, 56940, 56956, + 56972, 56988, 57004, 57020, 57036, 57052, 57068, 57085, + 57101, 57117, 57133, 57149, 57165, 57181, 57197, 57213, + 57229, 57244, 57260, 57276, 57292, 57308, 57324, 57340, + 57356, 57371, 57387, 57403, 57419, 57435, 57450, 57466, + 57482, 57498, 57513, 57529, 57545, 57560, 57576, 57592, + 57607, 57623, 57639, 57654, 57670, 57685, 57701, 57716, + 57732, 57748, 57763, 57779, 57794, 57809, 57825, 57840, + 57856, 57871, 57887, 57902, 57917, 57933, 57948, 57963, + 57979, 57994, 58009, 58025, 58040, 58055, 58070, 58086, + 58101, 58116, 58131, 58146, 58162, 58177, 58192, 58207, + 58222, 58237, 58252, 58267, 58282, 58297, 58312, 58327, + 58342, 58357, 58372, 58387, 58402, 58417, 58432, 58447, + 58462, 58477, 58492, 58506, 58521, 58536, 58551, 58566, + 58581, 58595, 58610, 58625, 58640, 58654, 58669, 58684, + 58698, 58713, 58728, 58742, 58757, 58771, 58786, 58801, + 58815, 58830, 58844, 58859, 58873, 58888, 58902, 58917, + 58931, 58946, 58960, 58974, 58989, 59003, 59018, 59032, + 59046, 59061, 59075, 59089, 59103, 59118, 59132, 59146, + 59160, 59175, 59189, 59203, 59217, 59231, 59246, 59260, + 59274, 59288, 59302, 59316, 59330, 59344, 59358, 59372, + 59386, 59400, 59414, 59428, 59442, 59456, 59470, 59484, + 59498, 59512, 59525, 59539, 59553, 59567, 59581, 59595, + 59608, 59622, 59636, 59650, 59663, 59677, 59691, 59704, + 59718, 59732, 59745, 59759, 59773, 59786, 59800, 59813, + 59827, 59840, 59854, 59867, 59881, 59894, 59908, 59921, + 59935, 59948, 59962, 59975, 59988, 60002, 60015, 60028, + 60042, 60055, 60068, 60082, 60095, 60108, 60121, 60134, + 60148, 60161, 60174, 60187, 60200, 60213, 60227, 60240, + 60253, 60266, 60279, 60292, 60305, 60318, 60331, 60344, + 60357, 60370, 60383, 60396, 60409, 60422, 60434, 60447, + 60460, 60473, 60486, 60499, 60511, 60524, 60537, 60550, + 60562, 60575, 60588, 60600, 60613, 60626, 60638, 60651, + 60664, 60676, 60689, 60701, 60714, 60727, 60739, 60752, + 60764, 60777, 60789, 60801, 60814, 60826, 60839, 60851, + 60863, 60876, 60888, 60900, 60913, 60925, 60937, 60950, + 60962, 60974, 60986, 60999, 61011, 61023, 61035, 61047, + 61059, 61071, 61084, 61096, 61108, 61120, 61132, 61144, + 61156, 61168, 61180, 61192, 61204, 61216, 61228, 61240, + 61251, 61263, 61275, 61287, 61299, 61311, 61322, 61334, + 61346, 61358, 61369, 61381, 61393, 61405, 61416, 61428, + 61440, 61451, 61463, 61474, 61486, 61498, 61509, 61521, + 61532, 61544, 61555, 61567, 61578, 61590, 61601, 61612, + 61624, 61635, 61647, 61658, 61669, 61681, 61692, 61703, + 61714, 61726, 61737, 61748, 61759, 61771, 61782, 61793, + 61804, 61815, 61826, 61837, 61849, 61860, 61871, 61882, + 61893, 61904, 61915, 61926, 61937, 61948, 61959, 61970, + 61980, 61991, 62002, 62013, 62024, 62035, 62046, 62056, + 62067, 62078, 62089, 62099, 62110, 62121, 62131, 62142, + 62153, 62163, 62174, 62185, 62195, 62206, 62216, 62227, + 62237, 62248, 62258, 62269, 62279, 62290, 62300, 62311, + 62321, 62331, 62342, 62352, 62362, 62373, 62383, 62393, + 62404, 62414, 62424, 62434, 62445, 62455, 62465, 62475, + 62485, 62495, 62505, 62516, 62526, 62536, 62546, 62556, + 62566, 62576, 62586, 62596, 62606, 62616, 62626, 62635, + 62645, 62655, 62665, 62675, 62685, 62695, 62704, 62714, + 62724, 62734, 62743, 62753, 62763, 62772, 62782, 62792, + 62801, 62811, 62821, 62830, 62840, 62849, 62859, 62868, + 62878, 62887, 62897, 62906, 62916, 62925, 62935, 62944, + 62953, 62963, 62972, 62981, 62991, 63000, 63009, 63018, + 63028, 63037, 63046, 63055, 63064, 63074, 63083, 63092, + 63101, 63110, 63119, 63128, 63137, 63146, 63155, 63164, + 63173, 63182, 63191, 63200, 63209, 63218, 63227, 63236, + 63245, 63253, 63262, 63271, 63280, 63289, 63297, 63306, + 63315, 63324, 63332, 63341, 63350, 63358, 63367, 63375, + 63384, 63393, 63401, 63410, 63418, 63427, 63435, 63444, + 63452, 63461, 63469, 63477, 63486, 63494, 63502, 63511, + 63519, 63527, 63536, 63544, 63552, 63561, 63569, 63577, + 63585, 63593, 63601, 63610, 63618, 63626, 63634, 63642, + 63650, 63658, 63666, 63674, 63682, 63690, 63698, 63706, + 63714, 63722, 63730, 63738, 63745, 63753, 63761, 63769, + 63777, 63784, 63792, 63800, 63808, 63815, 63823, 63831, + 63838, 63846, 63854, 63861, 63869, 63876, 63884, 63892, + 63899, 63907, 63914, 63922, 63929, 63936, 63944, 63951, + 63959, 63966, 63973, 63981, 63988, 63995, 64003, 64010, + 64017, 64024, 64032, 64039, 64046, 64053, 64060, 64068, + 64075, 64082, 64089, 64096, 64103, 64110, 64117, 64124, + 64131, 64138, 64145, 64152, 64159, 64166, 64173, 64179, + 64186, 64193, 64200, 64207, 64213, 64220, 64227, 64234, + 64240, 64247, 64254, 64260, 64267, 64274, 64280, 64287, + 64294, 64300, 64307, 64313, 64320, 64326, 64333, 64339, + 64346, 64352, 64358, 64365, 64371, 64377, 64384, 64390, + 64396, 64403, 64409, 64415, 64422, 64428, 64434, 64440, + 64446, 64452, 64459, 64465, 64471, 64477, 64483, 64489, + 64495, 64501, 64507, 64513, 64519, 64525, 64531, 64537, + 64543, 64549, 64554, 64560, 64566, 64572, 64578, 64583, + 64589, 64595, 64601, 64606, 64612, 64618, 64623, 64629, + 64635, 64640, 64646, 64651, 64657, 64662, 64668, 64673, + 64679, 64684, 64690, 64695, 64701, 64706, 64711, 64717, + 64722, 64728, 64733, 64738, 64743, 64749, 64754, 64759, + 64764, 64770, 64775, 64780, 64785, 64790, 64795, 64800, + 64805, 64810, 64815, 64820, 64825, 64830, 64835, 64840, + 64845, 64850, 64855, 64860, 64865, 64870, 64874, 64879, + 64884, 64889, 64894, 64898, 64903, 64908, 64912, 64917, + 64922, 64926, 64931, 64936, 64940, 64945, 64949, 64954, + 64958, 64963, 64967, 64972, 64976, 64981, 64985, 64989, + 64994, 64998, 65003, 65007, 65011, 65015, 65020, 65024, + 65028, 65032, 65037, 65041, 65045, 65049, 65053, 65057, + 65061, 65065, 65070, 65074, 65078, 65082, 65086, 65090, + 65094, 65097, 65101, 65105, 65109, 65113, 65117, 65121, + 65125, 65128, 65132, 65136, 65140, 65143, 65147, 65151, + 65154, 65158, 65162, 65165, 65169, 65173, 65176, 65180, + 65183, 65187, 65190, 65194, 65197, 65201, 65204, 65207, + 65211, 65214, 65218, 65221, 65224, 65228, 65231, 65234, + 65237, 65241, 65244, 65247, 65250, 65253, 65256, 65260, + 65263, 65266, 65269, 65272, 65275, 65278, 65281, 65284, + 65287, 65290, 65293, 65296, 65299, 65302, 65304, 65307, + 65310, 65313, 65316, 65319, 65321, 65324, 65327, 65329, + 65332, 65335, 65337, 65340, 65343, 65345, 65348, 65350, + 65353, 65356, 65358, 65361, 65363, 65366, 65368, 65370, + 65373, 65375, 65378, 65380, 65382, 65385, 65387, 65389, + 65391, 65394, 65396, 65398, 65400, 65403, 65405, 65407, + 65409, 65411, 65413, 65415, 65417, 65419, 65421, 65423, + 65425, 65427, 65429, 65431, 65433, 65435, 65437, 65439, + 65441, 65442, 65444, 65446, 65448, 65449, 65451, 65453, + 65455, 65456, 65458, 65460, 65461, 65463, 65464, 65466, + 65468, 65469, 65471, 65472, 65474, 65475, 65477, 65478, + 65479, 65481, 65482, 65484, 65485, 65486, 65488, 65489, + 65490, 65491, 65493, 65494, 65495, 65496, 65497, 65499, + 65500, 65501, 65502, 65503, 65504, 65505, 65506, 65507, + 65508, 65509, 65510, 65511, 65512, 65513, 65514, 65515, + 65515, 65516, 65517, 65518, 65519, 65519, 65520, 65521, + 65522, 65522, 65523, 65524, 65524, 65525, 65526, 65526, + 65527, 65527, 65528, 65528, 65529, 65529, 65530, 65530, + 65531, 65531, 65531, 65532, 65532, 65532, 65533, 65533, + 65533, 65534, 65534, 65534, 65534, 65535, 65535, 65535, + 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, + 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, + 65535, 65535, 65535, 65534, 65534, 65534, 65534, 65533, + 65533, 65533, 65532, 65532, 65532, 65531, 65531, 65531, + 65530, 65530, 65529, 65529, 65528, 65528, 65527, 65527, + 65526, 65526, 65525, 65524, 65524, 65523, 65522, 65522, + 65521, 65520, 65519, 65519, 65518, 65517, 65516, 65515, + 65515, 65514, 65513, 65512, 65511, 65510, 65509, 65508, + 65507, 65506, 65505, 65504, 65503, 65502, 65501, 65500, + 65499, 65497, 65496, 65495, 65494, 65493, 65491, 65490, + 65489, 65488, 65486, 65485, 65484, 65482, 65481, 65479, + 65478, 65477, 65475, 65474, 65472, 65471, 65469, 65468, + 65466, 65464, 65463, 65461, 65460, 65458, 65456, 65455, + 65453, 65451, 65449, 65448, 65446, 65444, 65442, 65441, + 65439, 65437, 65435, 65433, 65431, 65429, 65427, 65425, + 65423, 65421, 65419, 65417, 65415, 65413, 65411, 65409, + 65407, 65405, 65403, 65400, 65398, 65396, 65394, 65391, + 65389, 65387, 65385, 65382, 65380, 65378, 65375, 65373, + 65370, 65368, 65366, 65363, 65361, 65358, 65356, 65353, + 65350, 65348, 65345, 65343, 65340, 65337, 65335, 65332, + 65329, 65327, 65324, 65321, 65319, 65316, 65313, 65310, + 65307, 65304, 65302, 65299, 65296, 65293, 65290, 65287, + 65284, 65281, 65278, 65275, 65272, 65269, 65266, 65263, + 65260, 65256, 65253, 65250, 65247, 65244, 65241, 65237, + 65234, 65231, 65228, 65224, 65221, 65218, 65214, 65211, + 65207, 65204, 65201, 65197, 65194, 65190, 65187, 65183, + 65180, 65176, 65173, 65169, 65165, 65162, 65158, 65154, + 65151, 65147, 65143, 65140, 65136, 65132, 65128, 65125, + 65121, 65117, 65113, 65109, 65105, 65101, 65097, 65094, + 65090, 65086, 65082, 65078, 65074, 65070, 65065, 65061, + 65057, 65053, 65049, 65045, 65041, 65037, 65032, 65028, + 65024, 65020, 65015, 65011, 65007, 65003, 64998, 64994, + 64989, 64985, 64981, 64976, 64972, 64967, 64963, 64958, + 64954, 64949, 64945, 64940, 64936, 64931, 64926, 64922, + 64917, 64912, 64908, 64903, 64898, 64894, 64889, 64884, + 64879, 64874, 64870, 64865, 64860, 64855, 64850, 64845, + 64840, 64835, 64830, 64825, 64820, 64815, 64810, 64805, + 64800, 64795, 64790, 64785, 64780, 64775, 64770, 64764, + 64759, 64754, 64749, 64743, 64738, 64733, 64728, 64722, + 64717, 64711, 64706, 64701, 64695, 64690, 64684, 64679, + 64673, 64668, 64662, 64657, 64651, 64646, 64640, 64635, + 64629, 64623, 64618, 64612, 64606, 64601, 64595, 64589, + 64583, 64578, 64572, 64566, 64560, 64554, 64549, 64543, + 64537, 64531, 64525, 64519, 64513, 64507, 64501, 64495, + 64489, 64483, 64477, 64471, 64465, 64459, 64452, 64446, + 64440, 64434, 64428, 64422, 64415, 64409, 64403, 64396, + 64390, 64384, 64377, 64371, 64365, 64358, 64352, 64346, + 64339, 64333, 64326, 64320, 64313, 64307, 64300, 64294, + 64287, 64280, 64274, 64267, 64260, 64254, 64247, 64240, + 64234, 64227, 64220, 64213, 64207, 64200, 64193, 64186, + 64179, 64173, 64166, 64159, 64152, 64145, 64138, 64131, + 64124, 64117, 64110, 64103, 64096, 64089, 64082, 64075, + 64068, 64060, 64053, 64046, 64039, 64032, 64024, 64017, + 64010, 64003, 63995, 63988, 63981, 63973, 63966, 63959, + 63951, 63944, 63936, 63929, 63922, 63914, 63907, 63899, + 63892, 63884, 63876, 63869, 63861, 63854, 63846, 63838, + 63831, 63823, 63815, 63808, 63800, 63792, 63784, 63777, + 63769, 63761, 63753, 63745, 63738, 63730, 63722, 63714, + 63706, 63698, 63690, 63682, 63674, 63666, 63658, 63650, + 63642, 63634, 63626, 63618, 63610, 63601, 63593, 63585, + 63577, 63569, 63561, 63552, 63544, 63536, 63527, 63519, + 63511, 63502, 63494, 63486, 63477, 63469, 63461, 63452, + 63444, 63435, 63427, 63418, 63410, 63401, 63393, 63384, + 63375, 63367, 63358, 63350, 63341, 63332, 63324, 63315, + 63306, 63297, 63289, 63280, 63271, 63262, 63253, 63245, + 63236, 63227, 63218, 63209, 63200, 63191, 63182, 63173, + 63164, 63155, 63146, 63137, 63128, 63119, 63110, 63101, + 63092, 63083, 63074, 63064, 63055, 63046, 63037, 63028, + 63018, 63009, 63000, 62991, 62981, 62972, 62963, 62953, + 62944, 62935, 62925, 62916, 62906, 62897, 62887, 62878, + 62868, 62859, 62849, 62840, 62830, 62821, 62811, 62801, + 62792, 62782, 62772, 62763, 62753, 62743, 62734, 62724, + 62714, 62704, 62695, 62685, 62675, 62665, 62655, 62645, + 62635, 62626, 62616, 62606, 62596, 62586, 62576, 62566, + 62556, 62546, 62536, 62526, 62516, 62505, 62495, 62485, + 62475, 62465, 62455, 62445, 62434, 62424, 62414, 62404, + 62393, 62383, 62373, 62362, 62352, 62342, 62331, 62321, + 62311, 62300, 62290, 62279, 62269, 62258, 62248, 62237, + 62227, 62216, 62206, 62195, 62185, 62174, 62163, 62153, + 62142, 62131, 62121, 62110, 62099, 62089, 62078, 62067, + 62056, 62046, 62035, 62024, 62013, 62002, 61991, 61980, + 61970, 61959, 61948, 61937, 61926, 61915, 61904, 61893, + 61882, 61871, 61860, 61849, 61837, 61826, 61815, 61804, + 61793, 61782, 61771, 61759, 61748, 61737, 61726, 61714, + 61703, 61692, 61681, 61669, 61658, 61647, 61635, 61624, + 61612, 61601, 61590, 61578, 61567, 61555, 61544, 61532, + 61521, 61509, 61498, 61486, 61474, 61463, 61451, 61440, + 61428, 61416, 61405, 61393, 61381, 61369, 61358, 61346, + 61334, 61322, 61311, 61299, 61287, 61275, 61263, 61251, + 61240, 61228, 61216, 61204, 61192, 61180, 61168, 61156, + 61144, 61132, 61120, 61108, 61096, 61084, 61071, 61059, + 61047, 61035, 61023, 61011, 60999, 60986, 60974, 60962, + 60950, 60937, 60925, 60913, 60900, 60888, 60876, 60863, + 60851, 60839, 60826, 60814, 60801, 60789, 60777, 60764, + 60752, 60739, 60727, 60714, 60701, 60689, 60676, 60664, + 60651, 60638, 60626, 60613, 60600, 60588, 60575, 60562, + 60550, 60537, 60524, 60511, 60499, 60486, 60473, 60460, + 60447, 60434, 60422, 60409, 60396, 60383, 60370, 60357, + 60344, 60331, 60318, 60305, 60292, 60279, 60266, 60253, + 60240, 60227, 60213, 60200, 60187, 60174, 60161, 60148, + 60134, 60121, 60108, 60095, 60082, 60068, 60055, 60042, + 60028, 60015, 60002, 59988, 59975, 59962, 59948, 59935, + 59921, 59908, 59894, 59881, 59867, 59854, 59840, 59827, + 59813, 59800, 59786, 59773, 59759, 59745, 59732, 59718, + 59704, 59691, 59677, 59663, 59650, 59636, 59622, 59608, + 59595, 59581, 59567, 59553, 59539, 59525, 59512, 59498, + 59484, 59470, 59456, 59442, 59428, 59414, 59400, 59386, + 59372, 59358, 59344, 59330, 59316, 59302, 59288, 59274, + 59260, 59246, 59231, 59217, 59203, 59189, 59175, 59160, + 59146, 59132, 59118, 59103, 59089, 59075, 59061, 59046, + 59032, 59018, 59003, 58989, 58974, 58960, 58946, 58931, + 58917, 58902, 58888, 58873, 58859, 58844, 58830, 58815, + 58801, 58786, 58771, 58757, 58742, 58728, 58713, 58698, + 58684, 58669, 58654, 58640, 58625, 58610, 58595, 58581, + 58566, 58551, 58536, 58521, 58506, 58492, 58477, 58462, + 58447, 58432, 58417, 58402, 58387, 58372, 58357, 58342, + 58327, 58312, 58297, 58282, 58267, 58252, 58237, 58222, + 58207, 58192, 58177, 58162, 58146, 58131, 58116, 58101, + 58086, 58070, 58055, 58040, 58025, 58009, 57994, 57979, + 57963, 57948, 57933, 57917, 57902, 57887, 57871, 57856, + 57840, 57825, 57809, 57794, 57779, 57763, 57748, 57732, + 57716, 57701, 57685, 57670, 57654, 57639, 57623, 57607, + 57592, 57576, 57560, 57545, 57529, 57513, 57498, 57482, + 57466, 57450, 57435, 57419, 57403, 57387, 57371, 57356, + 57340, 57324, 57308, 57292, 57276, 57260, 57244, 57229, + 57213, 57197, 57181, 57165, 57149, 57133, 57117, 57101, + 57085, 57068, 57052, 57036, 57020, 57004, 56988, 56972, + 56956, 56940, 56923, 56907, 56891, 56875, 56859, 56842, + 56826, 56810, 56793, 56777, 56761, 56745, 56728, 56712, + 56696, 56679, 56663, 56646, 56630, 56614, 56597, 56581, + 56564, 56548, 56531, 56515, 56498, 56482, 56465, 56449, + 56432, 56416, 56399, 56382, 56366, 56349, 56333, 56316, + 56299, 56283, 56266, 56249, 56233, 56216, 56199, 56182, + 56166, 56149, 56132, 56115, 56099, 56082, 56065, 56048, + 56031, 56014, 55998, 55981, 55964, 55947, 55930, 55913, + 55896, 55879, 55862, 55845, 55828, 55811, 55794, 55777, + 55760, 55743, 55726, 55709, 55692, 55675, 55658, 55640, + 55623, 55606, 55589, 55572, 55555, 55537, 55520, 55503, + 55486, 55469, 55451, 55434, 55417, 55399, 55382, 55365, + 55347, 55330, 55313, 55295, 55278, 55261, 55243, 55226, + 55208, 55191, 55174, 55156, 55139, 55121, 55104, 55086, + 55069, 55051, 55034, 55016, 54999, 54981, 54963, 54946, + 54928, 54911, 54893, 54875, 54858, 54840, 54822, 54805, + 54787, 54769, 54752, 54734, 54716, 54698, 54681, 54663, + 54645, 54627, 54609, 54592, 54574, 54556, 54538, 54520, + 54502, 54484, 54466, 54449, 54431, 54413, 54395, 54377, + 54359, 54341, 54323, 54305, 54287, 54269, 54251, 54233, + 54215, 54197, 54179, 54160, 54142, 54124, 54106, 54088, + 54070, 54052, 54034, 54015, 53997, 53979, 53961, 53943, + 53924, 53906, 53888, 53870, 53851, 53833, 53815, 53796, + 53778, 53760, 53741, 53723, 53705, 53686, 53668, 53650, + 53631, 53613, 53594, 53576, 53557, 53539, 53520, 53502, + 53483, 53465, 53446, 53428, 53409, 53391, 53372, 53354, + 53335, 53317, 53298, 53279, 53261, 53242, 53224, 53205, + 53186, 53168, 53149, 53130, 53111, 53093, 53074, 53055, + 53037, 53018, 52999, 52980, 52961, 52943, 52924, 52905, + 52886, 52867, 52849, 52830, 52811, 52792, 52773, 52754, + 52735, 52716, 52697, 52678, 52660, 52641, 52622, 52603, + 52584, 52565, 52546, 52527, 52508, 52489, 52469, 52450, + 52431, 52412, 52393, 52374, 52355, 52336, 52317, 52298, + 52278, 52259, 52240, 52221, 52202, 52183, 52163, 52144, + 52125, 52106, 52086, 52067, 52048, 52029, 52009, 51990, + 51971, 51951, 51932, 51913, 51893, 51874, 51855, 51835, + 51816, 51796, 51777, 51758, 51738, 51719, 51699, 51680, + 51660, 51641, 51621, 51602, 51582, 51563, 51543, 51524, + 51504, 51485, 51465, 51446, 51426, 51407, 51387, 51367, + 51348, 51328, 51308, 51289, 51269, 51250, 51230, 51210, + 51190, 51171, 51151, 51131, 51112, 51092, 51072, 51052, + 51033, 51013, 50993, 50973, 50953, 50934, 50914, 50894, + 50874, 50854, 50834, 50815, 50795, 50775, 50755, 50735, + 50715, 50695, 50675, 50655, 50635, 50615, 50596, 50576, + 50556, 50536, 50516, 50496, 50476, 50456, 50436, 50415, + 50395, 50375, 50355, 50335, 50315, 50295, 50275, 50255, + 50235, 50215, 50194, 50174, 50154, 50134, 50114, 50094, + 50073, 50053, 50033, 50013, 49993, 49972, 49952, 49932, + 49912, 49891, 49871, 49851, 49830, 49810, 49790, 49769, + 49749, 49729, 49708, 49688, 49668, 49647, 49627, 49607, + 49586, 49566, 49545, 49525, 49505, 49484, 49464, 49443, + 49423, 49402, 49382, 49361, 49341, 49320, 49300, 49279, + 49259, 49238, 49218, 49197, 49177, 49156, 49135, 49115, + 49094, 49074, 49053, 49032, 49012, 48991, 48971, 48950, + 48929, 48909, 48888, 48867, 48847, 48826, 48805, 48784, + 48764, 48743, 48722, 48701, 48681, 48660, 48639, 48618, + 48598, 48577, 48556, 48535, 48514, 48494, 48473, 48452, + 48431, 48410, 48389, 48368, 48348, 48327, 48306, 48285, + 48264, 48243, 48222, 48201, 48180, 48159, 48138, 48117, + 48097, 48076, 48055, 48034, 48013, 47992, 47971, 47950, + 47929, 47907, 47886, 47865, 47844, 47823, 47802, 47781, + 47760, 47739, 47718, 47697, 47676, 47655, 47633, 47612, + 47591, 47570, 47549, 47528, 47506, 47485, 47464, 47443, + 47422, 47401, 47379, 47358, 47337, 47316, 47294, 47273, + 47252, 47231, 47209, 47188, 47167, 47145, 47124, 47103, + 47082, 47060, 47039, 47018, 46996, 46975, 46954, 46932, + 46911, 46889, 46868, 46847, 46825, 46804, 46783, 46761, + 46740, 46718, 46697, 46675, 46654, 46632, 46611, 46590, + 46568, 46547, 46525, 46504, 46482, 46461, 46439, 46418, + 46396, 46375, 46353, 46331, 46310, 46288, 46267, 46245, + 46224, 46202, 46180, 46159, 46137, 46116, 46094, 46072, + 46051, 46029, 46008, 45986, 45964, 45943, 45921, 45899, + 45878, 45856, 45834, 45812, 45791, 45769, 45747, 45726, + 45704, 45682, 45660, 45639, 45617, 45595, 45573, 45552, + 45530, 45508, 45486, 45465, 45443, 45421, 45399, 45377, + 45355, 45334, 45312, 45290, 45268, 45246, 45224, 45203, + 45181, 45159, 45137, 45115, 45093, 45071, 45049, 45027, + 45006, 44984, 44962, 44940, 44918, 44896, 44874, 44852, + 44830, 44808, 44786, 44764, 44742, 44720, 44698, 44676, + 44654, 44632, 44610, 44588, 44566, 44544, 44522, 44500, + 44478, 44456, 44434, 44412, 44390, 44368, 44346, 44323, + 44301, 44279, 44257, 44235, 44213, 44191, 44169, 44147, + 44124, 44102, 44080, 44058, 44036, 44014, 43992, 43969, + 43947, 43925, 43903, 43881, 43859, 43836, 43814, 43792, + 43770, 43747, 43725, 43703, 43681, 43659, 43636, 43614, + 43592, 43570, 43547, 43525, 43503, 43481, 43458, 43436, + 43414, 43391, 43369, 43347, 43324, 43302, 43280, 43258, + 43235, 43213, 43191, 43168, 43146, 43123, 43101, 43079, + 43056, 43034, 43012, 42989, 42967, 42945, 42922, 42900, + 42877, 42855, 42833, 42810, 42788, 42765, 42743, 42720, + 42698, 42676, 42653, 42631, 42608, 42586, 42563, 42541, + 42518, 42496, 42473, 42451, 42428, 42406, 42384, 42361, + 42339, 42316, 42293, 42271, 42248, 42226, 42203, 42181, + 42158, 42136, 42113, 42091, 42068, 42046, 42023, 42001, + 41978, 41955, 41933, 41910, 41888, 41865, 41842, 41820, + 41797, 41775, 41752, 41730, 41707, 41684, 41662, 41639, + 41616, 41594, 41571, 41549, 41526, 41503, 41481, 41458, + 41435, 41413, 41390, 41367, 41345, 41322, 41299, 41277, + 41254, 41231, 41209, 41186, 41163, 41140, 41118, 41095, + 41072, 41050, 41027, 41004, 40981, 40959, 40936, 40913, + 40891, 40868, 40845, 40822, 40800, 40777, 40754, 40731, + 40709, 40686, 40663, 40640, 40618, 40595, 40572, 40549, + 40526, 40504, 40481, 40458, 40435, 40412, 40390, 40367, + 40344, 40321, 40298, 40276, 40253, 40230, 40207, 40184, + 40161, 40139, 40116, 40093, 40070, 40047, 40024, 40002, + 39979, 39956, 39933, 39910, 39887, 39864, 39841, 39819, + 39796, 39773, 39750, 39727, 39704, 39681, 39658, 39636, + 39613, 39590, 39567, 39544, 39521, 39498, 39475, 39452, + 39429, 39406, 39384, 39361, 39338, 39315, 39292, 39269, + 39246, 39223, 39200, 39177, 39154, 39131, 39108, 39085, + 39062, 39039, 39017, 38994, 38971, 38948, 38925, 38902, + 38879, 38856, 38833, 38810, 38787, 38764, 38741, 38718, + 38695, 38672, 38649, 38626, 38603, 38580, 38557, 38534, + 38511, 38488, 38465, 38442, 38419, 38396, 38373, 38350, + 38327, 38304, 38281, 38258, 38235, 38212, 38189, 38166, + 38143, 38120, 38097, 38074, 38051, 38028, 38005, 37982, + 37958, 37935, 37912, 37889, 37866, 37843, 37820, 37797, + 37774, 37751, 37728, 37705, 37682, 37659, 37636, 37613, + 37590, 37567, 37544, 37520, 37497, 37474, 37451, 37428, + 37405, 37382, 37359, 37336, 37313, 37290, 37267, 37244, + 37220, 37197, 37174, 37151, 37128, 37105, 37082, 37059, + 37036, 37013, 36990, 36966, 36943, 36920, 36897, 36874, + 36851, 36828, 36805, 36782, 36759, 36736, 36712, 36689, + 36666, 36643, 36620, 36597, 36574, 36551, 36528, 36504, + 36481, 36458, 36435, 36412, 36389, 36366, 36343, 36320, + 36296, 36273, 36250, 36227, 36204, 36181, 36158, 36135, + 36112, 36088, 36065, 36042, 36019, 35996, 35973, 35950, + 35927, 35903, 35880, 35857, 35834, 35811, 35788, 35765, + 35742, 35718, 35695, 35672, 35649, 35626, 35603, 35580, + 35557, 35533, 35510, 35487, 35464, 35441, 35418, 35395, + 35372, 35348, 35325, 35302, 35279, 35256, 35233, 35210, + 35187, 35163, 35140, 35117, 35094, 35071, 35048, 35025, + 35002, 34978, 34955, 34932, 34909, 34886, 34863, 34840, + 34817, 34794, 34770, 34747, 34724, 34701, 34678, 34655, + 34632, 34609, 34585, 34562, 34539, 34516, 34493, 34470, + 34447, 34424, 34401, 34377, 34354, 34331, 34308, 34285, + 34262, 34239, 34216, 34193, 34169, 34146, 34123, 34100, + 34077, 34054, 34031, 34008, 33985, 33962, 33938, 33915, + 33892, 33869, 33846, 33823, 33800, 33777, 33754, 33731, + 33707, 33684, 33661, 33638, 33615, 33592, 33569, 33546, + 33523, 33500, 33477, 33454, 33430, 33407, 33384, 33361, + 33338, 33315, 33292, 33269, 33246, 33223, 33200, 33177, + 33154, 33131, 33108, 33084, 33061, 33038, 33015, 32992, + 32969, 32946, 32923, 32900, 32877, 32854, 32831, 32808, + 32785, 32762, 32739, 32716, 32693, 32670, 32647, 32624, + 32601, 32578, 32555, 32532, 32509, 32485, 32462, 32439, + 32416, 32393, 32370, 32347, 32324, 32301, 32278, 32255, + 32232, 32209, 32186, 32163, 32140, 32117, 32094, 32071, + 32048, 32025, 32003, 31980, 31957, 31934, 31911, 31888, + 31865, 31842, 31819, 31796, 31773, 31750, 31727, 31704, + 31681, 31658, 31635, 31612, 31589, 31566, 31543, 31520, + 31497, 31475, 31452, 31429, 31406, 31383, 31360, 31337, + 31314, 31291, 31268, 31245, 31222, 31200, 31177, 31154, + 31131, 31108, 31085, 31062, 31039, 31016, 30994, 30971, + 30948, 30925, 30902, 30879, 30856, 30833, 30811, 30788, + 30765, 30742, 30719, 30696, 30674, 30651, 30628, 30605, + 30582, 30559, 30537, 30514, 30491, 30468, 30445, 30422, + 30400, 30377, 30354, 30331, 30308, 30286, 30263, 30240, + 30217, 30195, 30172, 30149, 30126, 30103, 30081, 30058, + 30035, 30012, 29990, 29967, 29944, 29921, 29899, 29876, + 29853, 29830, 29808, 29785, 29762, 29740, 29717, 29694, + 29671, 29649, 29626, 29603, 29581, 29558, 29535, 29513, + 29490, 29467, 29445, 29422, 29399, 29377, 29354, 29331, + 29309, 29286, 29263, 29241, 29218, 29195, 29173, 29150, + 29128, 29105, 29082, 29060, 29037, 29014, 28992, 28969, + 28947, 28924, 28902, 28879, 28856, 28834, 28811, 28789, + 28766, 28744, 28721, 28698, 28676, 28653, 28631, 28608, + 28586, 28563, 28541, 28518, 28496, 28473, 28451, 28428, + 28406, 28383, 28361, 28338, 28316, 28293, 28271, 28248, + 28226, 28203, 28181, 28158, 28136, 28114, 28091, 28069, + 28046, 28024, 28001, 27979, 27957, 27934, 27912, 27889, + 27867, 27845, 27822, 27800, 27777, 27755, 27733, 27710, + 27688, 27666, 27643, 27621, 27599, 27576, 27554, 27532, + 27509, 27487, 27465, 27442, 27420, 27398, 27375, 27353, + 27331, 27309, 27286, 27264, 27242, 27219, 27197, 27175, + 27153, 27130, 27108, 27086, 27064, 27042, 27019, 26997, + 26975, 26953, 26930, 26908, 26886, 26864, 26842, 26820, + 26797, 26775, 26753, 26731, 26709, 26687, 26664, 26642, + 26620, 26598, 26576, 26554, 26532, 26510, 26488, 26465, + 26443, 26421, 26399, 26377, 26355, 26333, 26311, 26289, + 26267, 26245, 26223, 26201, 26179, 26157, 26135, 26113, + 26091, 26069, 26047, 26025, 26003, 25981, 25959, 25937, + 25915, 25893, 25871, 25849, 25827, 25805, 25783, 25761, + 25739, 25718, 25696, 25674, 25652, 25630, 25608, 25586, + 25564, 25543, 25521, 25499, 25477, 25455, 25433, 25412, + 25390, 25368, 25346, 25324, 25302, 25281, 25259, 25237, + 25215, 25194, 25172, 25150, 25128, 25107, 25085, 25063, + 25041, 25020, 24998, 24976, 24955, 24933, 24911, 24890, + 24868, 24846, 24825, 24803, 24781, 24760, 24738, 24716, + 24695, 24673, 24651, 24630, 24608, 24587, 24565, 24543, + 24522, 24500, 24479, 24457, 24436, 24414, 24393, 24371, + 24350, 24328, 24307, 24285, 24264, 24242, 24221, 24199, + 24178, 24156, 24135, 24113, 24092, 24070, 24049, 24028, + 24006, 23985, 23963, 23942, 23920, 23899, 23878, 23856, + 23835, 23814, 23792, 23771, 23750, 23728, 23707, 23686, + 23664, 23643, 23622, 23600, 23579, 23558, 23537, 23515, + 23494, 23473, 23452, 23430, 23409, 23388, 23367, 23346, + 23324, 23303, 23282, 23261, 23240, 23218, 23197, 23176, + 23155, 23134, 23113, 23092, 23071, 23049, 23028, 23007, + 22986, 22965, 22944, 22923, 22902, 22881, 22860, 22839, + 22818, 22797, 22776, 22755, 22734, 22713, 22692, 22671, + 22650, 22629, 22608, 22587, 22566, 22545, 22524, 22503, + 22482, 22462, 22441, 22420, 22399, 22378, 22357, 22336, + 22316, 22295, 22274, 22253, 22232, 22211, 22191, 22170, + 22149, 22128, 22108, 22087, 22066, 22045, 22025, 22004, + 21983, 21962, 21942, 21921, 21900, 21880, 21859, 21838, + 21818, 21797, 21776, 21756, 21735, 21715, 21694, 21673, + 21653, 21632, 21612, 21591, 21570, 21550, 21529, 21509, + 21488, 21468, 21447, 21427, 21406, 21386, 21365, 21345, + 21324, 21304, 21284, 21263, 21243, 21222, 21202, 21181, + 21161, 21141, 21120, 21100, 21080, 21059, 21039, 21019, + 20998, 20978, 20958, 20937, 20917, 20897, 20876, 20856, + 20836, 20816, 20795, 20775, 20755, 20735, 20715, 20694, + 20674, 20654, 20634, 20614, 20594, 20573, 20553, 20533, + 20513, 20493, 20473, 20453, 20433, 20413, 20392, 20372, + 20352, 20332, 20312, 20292, 20272, 20252, 20232, 20212, + 20192, 20172, 20152, 20132, 20113, 20093, 20073, 20053, + 20033, 20013, 19993, 19973, 19953, 19933, 19914, 19894, + 19874, 19854, 19834, 19814, 19795, 19775, 19755, 19735, + 19716, 19696, 19676, 19656, 19637, 19617, 19597, 19578, + 19558, 19538, 19519, 19499, 19479, 19460, 19440, 19420, + 19401, 19381, 19362, 19342, 19322, 19303, 19283, 19264, + 19244, 19225, 19205, 19186, 19166, 19147, 19127, 19108, + 19088, 19069, 19049, 19030, 19011, 18991, 18972, 18952, + 18933, 18914, 18894, 18875, 18856, 18836, 18817, 18798, + 18778, 18759, 18740, 18720, 18701, 18682, 18663, 18643, + 18624, 18605, 18586, 18567, 18547, 18528, 18509, 18490, + 18471, 18452, 18432, 18413, 18394, 18375, 18356, 18337, + 18318, 18299, 18280, 18261, 18242, 18223, 18204, 18185, + 18166, 18147, 18128, 18109, 18090, 18071, 18052, 18033, + 18014, 17995, 17977, 17958, 17939, 17920, 17901, 17882, + 17863, 17845, 17826, 17807, 17788, 17769, 17751, 17732, + 17713, 17695, 17676, 17657, 17638, 17620, 17601, 17582, + 17564, 17545, 17526, 17508, 17489, 17471, 17452, 17433, + 17415, 17396, 17378, 17359, 17341, 17322, 17304, 17285, + 17267, 17248, 17230, 17211, 17193, 17174, 17156, 17138, + 17119, 17101, 17082, 17064, 17046, 17027, 17009, 16991, + 16972, 16954, 16936, 16917, 16899, 16881, 16863, 16844, + 16826, 16808, 16790, 16772, 16753, 16735, 16717, 16699, + 16681, 16663, 16645, 16626, 16608, 16590, 16572, 16554, + 16536, 16518, 16500, 16482, 16464, 16446, 16428, 16410, + 16392, 16374, 16356, 16338, 16320, 16302, 16285, 16267, + 16249, 16231, 16213, 16195, 16177, 16160, 16142, 16124, + 16106, 16088, 16071, 16053, 16035, 16018, 16000, 15982, + 15964, 15947, 15929, 15911, 15894, 15876, 15858, 15841, + 15823, 15806, 15788, 15771, 15753, 15735, 15718, 15700, + 15683, 15665, 15648, 15630, 15613, 15596, 15578, 15561, + 15543, 15526, 15508, 15491, 15474, 15456, 15439, 15422, + 15404, 15387, 15370, 15353, 15335, 15318, 15301, 15283, + 15266, 15249, 15232, 15215, 15197, 15180, 15163, 15146, + 15129, 15112, 15095, 15078, 15060, 15043, 15026, 15009, + 14992, 14975, 14958, 14941, 14924, 14907, 14890, 14873, + 14856, 14840, 14823, 14806, 14789, 14772, 14755, 14738, + 14721, 14705, 14688, 14671, 14654, 14637, 14621, 14604, + 14587, 14570, 14554, 14537, 14520, 14504, 14487, 14470, + 14454, 14437, 14420, 14404, 14387, 14371, 14354, 14337, + 14321, 14304, 14288, 14271, 14255, 14238, 14222, 14205, + 14189, 14172, 14156, 14140, 14123, 14107, 14091, 14074, + 14058, 14041, 14025, 14009, 13993, 13976, 13960, 13944, + 13927, 13911, 13895, 13879, 13863, 13846, 13830, 13814, + 13798, 13782, 13766, 13750, 13734, 13717, 13701, 13685, + 13669, 13653, 13637, 13621, 13605, 13589, 13573, 13557, + 13541, 13525, 13510, 13494, 13478, 13462, 13446, 13430, + 13414, 13398, 13383, 13367, 13351, 13335, 13320, 13304, + 13288, 13272, 13257, 13241, 13225, 13210, 13194, 13178, + 13163, 13147, 13131, 13116, 13100, 13085, 13069, 13054, + 13038, 13023, 13007, 12992, 12976, 12961, 12945, 12930, + 12914, 12899, 12884, 12868, 12853, 12837, 12822, 12807, + 12792, 12776, 12761, 12746, 12730, 12715, 12700, 12685, + 12669, 12654, 12639, 12624, 12609, 12594, 12579, 12563, + 12548, 12533, 12518, 12503, 12488, 12473, 12458, 12443, + 12428, 12413, 12398, 12383, 12368, 12353, 12338, 12323, + 12309, 12294, 12279, 12264, 12249, 12234, 12220, 12205, + 12190, 12175, 12160, 12146, 12131, 12116, 12102, 12087, + 12072, 12058, 12043, 12028, 12014, 11999, 11985, 11970, + 11955, 11941, 11926, 11912, 11897, 11883, 11868, 11854, + 11840, 11825, 11811, 11796, 11782, 11767, 11753, 11739, + 11724, 11710, 11696, 11682, 11667, 11653, 11639, 11625, + 11610, 11596, 11582, 11568, 11554, 11539, 11525, 11511, + 11497, 11483, 11469, 11455, 11441, 11427, 11413, 11399, + 11385, 11371, 11357, 11343, 11329, 11315, 11301, 11287, + 11273, 11259, 11245, 11232, 11218, 11204, 11190, 11176, + 11163, 11149, 11135, 11121, 11108, 11094, 11080, 11067, + 11053, 11039, 11026, 11012, 10999, 10985, 10971, 10958, + 10944, 10931, 10917, 10904, 10890, 10877, 10863, 10850, + 10836, 10823, 10810, 10796, 10783, 10770, 10756, 10743, + 10730, 10716, 10703, 10690, 10676, 10663, 10650, 10637, + 10624, 10610, 10597, 10584, 10571, 10558, 10545, 10532, + 10519, 10506, 10492, 10479, 10466, 10453, 10440, 10427, + 10414, 10402, 10389, 10376, 10363, 10350, 10337, 10324, + 10311, 10299, 10286, 10273, 10260, 10247, 10235, 10222, + 10209, 10196, 10184, 10171, 10158, 10146, 10133, 10121, + 10108, 10095, 10083, 10070, 10058, 10045, 10033, 10020, + 10008, 9995, 9983, 9970, 9958, 9945, 9933, 9921, + 9908, 9896, 9884, 9871, 9859, 9847, 9834, 9822, + 9810, 9798, 9785, 9773, 9761, 9749, 9737, 9725, + 9712, 9700, 9688, 9676, 9664, 9652, 9640, 9628, + 9616, 9604, 9592, 9580, 9568, 9556, 9544, 9532, + 9521, 9509, 9497, 9485, 9473, 9461, 9450, 9438, + 9426, 9414, 9403, 9391, 9379, 9367, 9356, 9344, + 9332, 9321, 9309, 9298, 9286, 9275, 9263, 9251, + 9240, 9228, 9217, 9205, 9194, 9183, 9171, 9160, + 9148, 9137, 9126, 9114, 9103, 9092, 9080, 9069, + 9058, 9047, 9035, 9024, 9013, 9002, 8990, 8979, + 8968, 8957, 8946, 8935, 8924, 8913, 8902, 8891, + 8880, 8869, 8858, 8847, 8836, 8825, 8814, 8803, + 8792, 8781, 8770, 8759, 8749, 8738, 8727, 8716, + 8705, 8695, 8684, 8673, 8662, 8652, 8641, 8630, + 8620, 8609, 8599, 8588, 8577, 8567, 8556, 8546, + 8535, 8525, 8514, 8504, 8493, 8483, 8472, 8462, + 8452, 8441, 8431, 8421, 8410, 8400, 8390, 8379, + 8369, 8359, 8349, 8338, 8328, 8318, 8308, 8298, + 8288, 8277, 8267, 8257, 8247, 8237, 8227, 8217, + 8207, 8197, 8187, 8177, 8167, 8157, 8147, 8137, + 8128, 8118, 8108, 8098, 8088, 8078, 8069, 8059, + 8049, 8039, 8030, 8020, 8010, 8001, 7991, 7981, + 7972, 7962, 7952, 7943, 7933, 7924, 7914, 7905, + 7895, 7886, 7876, 7867, 7857, 7848, 7839, 7829, + 7820, 7811, 7801, 7792, 7783, 7773, 7764, 7755, + 7746, 7736, 7727, 7718, 7709, 7700, 7691, 7681, + 7672, 7663, 7654, 7645, 7636, 7627, 7618, 7609, + 7600, 7591, 7582, 7573, 7564, 7555, 7547, 7538, + 7529, 7520, 7511, 7502, 7494, 7485, 7476, 7467, + 7459, 7450, 7441, 7433, 7424, 7415, 7407, 7398, + 7390, 7381, 7373, 7364, 7355, 7347, 7338, 7330, + 7322, 7313, 7305, 7296, 7288, 7280, 7271, 7263, + 7255, 7246, 7238, 7230, 7221, 7213, 7205, 7197, + 7189, 7180, 7172, 7164, 7156, 7148, 7140, 7132, + 7124, 7116, 7108, 7100, 7092, 7084, 7076, 7068, + 7060, 7052, 7044, 7036, 7029, 7021, 7013, 7005, + 6997, 6990, 6982, 6974, 6966, 6959, 6951, 6943, + 6936, 6928, 6920, 6913, 6905, 6898, 6890, 6883, + 6875, 6868, 6860, 6853, 6845, 6838, 6830, 6823, + 6815, 6808, 6801, 6793, 6786, 6779, 6772, 6764, + 6757, 6750, 6743, 6735, 6728, 6721, 6714, 6707, + 6700, 6693, 6686, 6678, 6671, 6664, 6657, 6650, + 6643, 6636, 6630, 6623, 6616, 6609, 6602, 6595, + 6588, 6581, 6575, 6568, 6561, 6554, 6548, 6541, + 6534, 6527, 6521, 6514, 6507, 6501, 6494, 6488, + 6481, 6475, 6468, 6461, 6455, 6448, 6442, 6436, + 6429, 6423, 6416, 6410, 6404, 6397, 6391, 6385, + 6378, 6372, 6366, 6359, 6353, 6347, 6341, 6335, + 6329, 6322, 6316, 6310, 6304, 6298, 6292, 6286, + 6280, 6274, 6268, 6262, 6256, 6250, 6244, 6238, + 6232, 6226, 6221, 6215, 6209, 6203, 6197, 6192, + 6186, 6180, 6174, 6169, 6163, 6157, 6152, 6146, + 6140, 6135, 6129, 6124, 6118, 6113, 6107, 6102, + 6096, 6091, 6085, 6080, 6074, 6069, 6064, 6058, + 6053, 6048, 6042, 6037, 6032, 6027, 6021, 6016, + 6011, 6006, 6001, 5995, 5990, 5985, 5980, 5975, + 5970, 5965, 5960, 5955, 5950, 5945, 5940, 5935, + 5930, 5925, 5920, 5915, 5911, 5906, 5901, 5896, + 5891, 5887, 5882, 5877, 5872, 5868, 5863, 5858, + 5854, 5849, 5845, 5840, 5835, 5831, 5826, 5822, + 5817, 5813, 5808, 5804, 5799, 5795, 5791, 5786, + 5782, 5778, 5773, 5769, 5765, 5760, 5756, 5752, + 5748, 5743, 5739, 5735, 5731, 5727, 5723, 5719, + 5714, 5710, 5706, 5702, 5698, 5694, 5690, 5686, + 5682, 5678, 5675, 5671, 5667, 5663, 5659, 5655, + 5651, 5648, 5644, 5640, 5636, 5633, 5629, 5625, + 5622, 5618, 5614, 5611, 5607, 5604, 5600, 5596, + 5593, 5589, 5586, 5582, 5579, 5576, 5572, 5569, + 5565, 5562, 5559, 5555, 5552, 5549, 5545, 5542, + 5539, 5536, 5532, 5529, 5526, 5523, 5520, 5517, + 5514, 5511, 5507, 5504, 5501, 5498, 5495, 5492, + 5489, 5486, 5484, 5481, 5478, 5475, 5472, 5469, + 5466, 5464, 5461, 5458, 5455, 5452, 5450, 5447, + 5444, 5442, 5439, 5436, 5434, 5431, 5429, 5426, + 5424, 5421, 5419, 5416, 5414, 5411, 5409, 5406, + 5404, 5401, 5399, 5397, 5394, 5392, 5390, 5388, + 5385, 5383, 5381, 5379, 5376, 5374, 5372, 5370, + 5368, 5366, 5364, 5362, 5360, 5358, 5356, 5354, + 5352, 5350, 5348, 5346, 5344, 5342, 5340, 5338, + 5336, 5335, 5333, 5331, 5329, 5328, 5326, 5324, + 5322, 5321, 5319, 5317, 5316, 5314, 5313, 5311, + 5309, 5308, 5306, 5305, 5303, 5302, 5301, 5299, + 5298, 5296, 5295, 5294, 5292, 5291, 5290, 5288, + 5287, 5286, 5285, 5283, 5282, 5281, 5280, 5279, + 5278, 5276, 5275, 5274, 5273, 5272, 5271, 5270, + 5269, 5268, 5267, 5266, 5265, 5265, 5264, 5263, + 5262, 5261, 5260, 5260, 5259, 5258, 5257, 5257, + 5256, 5255, 5255, 5254, 5253, 5253, 5252, 5251, + 5251, 5250, 5250, 5249, 5249, 5248, 5248, 5247, + 5247, 5247, 5246, 5246, 5246, 5245, 5245, 5245, + 5244, 5244, 5244, 5244, 5243, 5243, 5243, 5243, + 5243, 5243, 5243, 5243, 5242, 5242, 5242, 5242, +}; |