Hi!
I have moved from using WAVEFORM_PULSE to using WAVEFORM_ARBITRARY
array to avoid problems with overtones exceeding 22 khz, and it works really nice. Now tones are clean and nice.
But now i can't change the duty cycle of the sound, which is boring :/
I did look into the synth_waveform.cpp file, but's it's kinda hard to understand it.
Does someone have a clue or an idea how to do it?
If someone wanna try it out, here is the massive int16_t [40][256] array with data:
And an example how to use it, when you have a midiNote:
I have moved from using WAVEFORM_PULSE to using WAVEFORM_ARBITRARY
array to avoid problems with overtones exceeding 22 khz, and it works really nice. Now tones are clean and nice.
But now i can't change the duty cycle of the sound, which is boring :/
I did look into the synth_waveform.cpp file, but's it's kinda hard to understand it.
Does someone have a clue or an idea how to do it?
If someone wanna try it out, here is the massive int16_t [40][256] array with data:
Code:
const int16_t squareTable[40][256] = {
{0, 23299, 23180, 23116, 23218, 23149, 23160, 23195, 23146, 23177, 23179, 23152, 23183, 23167, 23160, 23183, 23160, 23169, 23178, 23159, 23175, 23172, 23161, 23178, 23166, 23166, 23177, 23163, 23171, 23174, 23162, 23174, 23169, 23164, 23176, 23165, 23168, 23175, 23163, 23172, 23172, 23164, 23174, 23168, 23166, 23175, 23165, 23170, 23173, 23164, 23172, 23170, 23165, 23174, 23167, 23168, 23174, 23165, 23171, 23172, 23165, 23173, 23169, 23166, 23174, 23166, 23169, 23173, 23165, 23172, 23171, 23165, 23174, 23168, 23167, 23174, 23165, 23170, 23173, 23164, 23173, 23170, 23165, 23175, 23166, 23168, 23174, 23164, 23171, 23172, 23164, 23175, 23168, 23165, 23176, 23164, 23169, 23174, 23162, 23174, 23171, 23163, 23177, 23166, 23166, 23178, 23161, 23172, 23175, 23159, 23178, 23169, 23160, 23183, 23160, 23167, 23183, 23152, 23179, 23177, 23146, 23195, 23160, 23149, 23218, 23116, 23180, 23299, -3, -23299, -23180, -23116, -23218, -23149, -23160, -23195, -23146, -23177, -23179, -23152, -23183, -23167, -23160, -23183, -23160, -23169, -23178, -23159, -23175, -23172, -23161, -23178, -23166, -23166, -23177, -23163, -23171, -23174, -23162, -23174, -23169, -23164, -23176, -23165, -23168, -23175, -23163, -23172, -23171, -23164, -23174, -23168, -23166, -23175, -23165, -23170, -23173, -23164, -23173, -23170, -23165, -23174, -23167, -23168, -23174, -23165, -23171, -23172, -23165, -23173, -23169, -23166, -23174, -23166, -23169, -23173, -23164, -23172, -23171, -23165, -23174, -23168, -23167, -23174, -23165, -23170, -23173, -23164, -23173, -23170, -23165, -23175, -23166, -23168, -23174, -23164, -23172, -23172, -23163, -23175, -23168, -23165, -23176, -23164, -23169, -23174, -23162, -23174, -23171, -23163, -23177, -23166, -23166, -23178, -23161, -23172, -23175, -23159, -23178, -23169, -23160, -23183, -23160, -23167, -23183, -23152, -23179, -23177, -23146, -23195, -23160, -23149, -23217, -23116, -23180, -23299},
{0, 23007, 23170, 23225, 23228, 23202, 23169, 23145, 23140, 23151, 23169, 23185, 23189, 23182, 23169, 23158, 23154, 23159, 23169, 23178, 23181, 23177, 23169, 23162, 23159, 23162, 23169, 23176, 23178, 23175, 23169, 23163, 23161, 23164, 23169, 23175, 23177, 23174, 23169, 23164, 23162, 23164, 23169, 23174, 23176, 23174, 23169, 23165, 23163, 23165, 23169, 23174, 23175, 23173, 23169, 23165, 23163, 23165, 23169, 23173, 23175, 23173, 23169, 23165, 23164, 23165, 23169, 23173, 23175, 23173, 23169, 23165, 23163, 23165, 23169, 23173, 23175, 23174, 23169, 23165, 23163, 23165, 23169, 23174, 23176, 23174, 23169, 23164, 23162, 23164, 23169, 23174, 23177, 23175, 23169, 23164, 23161, 23163, 23169, 23176, 23178, 23176, 23169, 23162, 23159, 23162, 23169, 23178, 23181, 23178, 23169, 23159, 23154, 23158, 23169, 23182, 23189, 23185, 23169, 23151, 23140, 23145, 23169, 23202, 23228, 23225, 23170, 23007, -2, -23007, -23170, -23225, -23228, -23202, -23169, -23145, -23140, -23151, -23169, -23185, -23189, -23182, -23169, -23158, -23154, -23159, -23169, -23178, -23181, -23178, -23169, -23162, -23159, -23162, -23169, -23176, -23178, -23175, -23169, -23163, -23161, -23164, -23169, -23175, -23177, -23174, -23169, -23164, -23162, -23164, -23169, -23174, -23176, -23174, -23169, -23165, -23163, -23165, -23169, -23174, -23175, -23173, -23169, -23165, -23163, -23165, -23169, -23173, -23175, -23173, -23169, -23165, -23164, -23165, -23169, -23173, -23175, -23173, -23169, -23165, -23163, -23165, -23169, -23174, -23175, -23174, -23169, -23165, -23163, -23165, -23169, -23174, -23176, -23174, -23169, -23164, -23162, -23164, -23169, -23174, -23177, -23175, -23169, -23164, -23161, -23163, -23169, -23176, -23178, -23176, -23169, -23162, -23159, -23162, -23169, -23177, -23181, -23178, -23169, -23159, -23154, -23158, -23169, -23182, -23189, -23185, -23169, -23151, -23140, -23145, -23169, -23202, -23228, -23225, -23170, -23007},
{0, 23370, 23168, 23104, 23239, 23130, 23169, 23197, 23134, 23191, 23169, 23151, 23193, 23154, 23169, 23183, 23151, 23181, 23169, 23159, 23184, 23159, 23169, 23178, 23157, 23178, 23169, 23161, 23180, 23162, 23169, 23176, 23160, 23176, 23169, 23163, 23178, 23163, 23169, 23175, 23161, 23175, 23169, 23164, 23177, 23164, 23169, 23175, 23162, 23174, 23169, 23164, 23176, 23164, 23169, 23174, 23162, 23174, 23169, 23164, 23176, 23164, 23169, 23174, 23162, 23174, 23169, 23164, 23176, 23164, 23169, 23174, 23162, 23174, 23169, 23164, 23176, 23164, 23169, 23174, 23162, 23175, 23169, 23164, 23177, 23164, 23169, 23175, 23161, 23175, 23169, 23163, 23178, 23163, 23169, 23176, 23160, 23176, 23169, 23162, 23180, 23161, 23169, 23178, 23157, 23178, 23169, 23159, 23184, 23159, 23169, 23181, 23151, 23183, 23169, 23154, 23193, 23151, 23169, 23191, 23134, 23197, 23169, 23130, 23239, 23104, 23168, 23370, -2, -23370, -23168, -23104, -23239, -23130, -23169, -23197, -23134, -23191, -23169, -23151, -23193, -23154, -23169, -23183, -23151, -23181, -23169, -23159, -23184, -23159, -23169, -23178, -23157, -23178, -23169, -23161, -23180, -23162, -23169, -23176, -23160, -23176, -23169, -23163, -23178, -23163, -23169, -23175, -23161, -23175, -23169, -23164, -23177, -23164, -23169, -23175, -23162, -23174, -23169, -23164, -23176, -23164, -23169, -23174, -23162, -23174, -23169, -23164, -23176, -23164, -23169, -23174, -23162, -23174, -23169, -23164, -23176, -23164, -23169, -23174, -23162, -23174, -23169, -23164, -23176, -23164, -23169, -23174, -23162, -23175, -23169, -23164, -23177, -23164, -23169, -23175, -23161, -23175, -23169, -23163, -23178, -23163, -23169, -23176, -23160, -23176, -23169, -23162, -23180, -23161, -23169, -23178, -23157, -23178, -23169, -23159, -23184, -23159, -23169, -23181, -23151, -23183, -23169, -23154, -23193, -23151, -23169, -23191, -23134, -23197, -23169, -23130, -23239, -23104, -23168, -23370},
{0, 23470, 23062, 23197, 23185, 23130, 23218, 23122, 23208, 23144, 23179, 23174, 23154, 23191, 23145, 23191, 23154, 23176, 23171, 23160, 23184, 23153, 23184, 23158, 23175, 23170, 23163, 23180, 23157, 23181, 23160, 23174, 23169, 23164, 23178, 23159, 23180, 23161, 23174, 23169, 23166, 23176, 23160, 23178, 23162, 23174, 23168, 23166, 23175, 23161, 23178, 23162, 23174, 23168, 23167, 23175, 23162, 23177, 23162, 23174, 23168, 23167, 23174, 23162, 23177, 23162, 23174, 23167, 23168, 23174, 23162, 23178, 23162, 23175, 23167, 23168, 23174, 23162, 23178, 23161, 23175, 23166, 23168, 23174, 23162, 23179, 23160, 23176, 23166, 23169, 23174, 23161, 23180, 23159, 23178, 23164, 23169, 23174, 23160, 23181, 23157, 23180, 23163, 23170, 23175, 23158, 23184, 23153, 23184, 23160, 23171, 23176, 23154, 23191, 23145, 23191, 23154, 23174, 23179, 23144, 23208, 23122, 23218, 23130, 23185, 23197, 23062, 23470, -2, -23470, -23062, -23197, -23185, -23130, -23218, -23122, -23208, -23144, -23179, -23174, -23154, -23191, -23145, -23191, -23154, -23176, -23171, -23160, -23184, -23153, -23184, -23158, -23175, -23170, -23163, -23180, -23157, -23181, -23160, -23174, -23169, -23164, -23178, -23159, -23180, -23161, -23174, -23169, -23166, -23176, -23160, -23178, -23162, -23174, -23168, -23166, -23175, -23161, -23178, -23162, -23174, -23168, -23167, -23175, -23162, -23177, -23162, -23174, -23168, -23167, -23174, -23162, -23177, -23162, -23174, -23167, -23168, -23174, -23162, -23178, -23162, -23175, -23167, -23168, -23174, -23162, -23178, -23161, -23175, -23166, -23168, -23174, -23162, -23179, -23160, -23176, -23166, -23169, -23174, -23161, -23180, -23159, -23178, -23164, -23169, -23174, -23160, -23181, -23157, -23180, -23163, -23170, -23175, -23158, -23184, -23153, -23184, -23160, -23171, -23176, -23154, -23191, -23145, -23191, -23154, -23174, -23179, -23144, -23208, -23122, -23218, -23130, -23185, -23197, -23062, -23470},
{0, 23331, 23306, 23047, 23170, 23242, 23122, 23148, 23219, 23152, 23141, 23203, 23169, 23141, 23190, 23179, 23144, 23178, 23185, 23149, 23169, 23187, 23156, 23162, 23187, 23163, 23158, 23184, 23169, 23156, 23179, 23175, 23156, 23174, 23178, 23158, 23169, 23181, 23161, 23165, 23181, 23165, 23161, 23180, 23169, 23159, 23177, 23173, 23159, 23173, 23176, 23160, 23169, 23179, 23162, 23165, 23179, 23166, 23162, 23178, 23169, 23160, 23176, 23173, 23160, 23173, 23176, 23160, 23169, 23178, 23162, 23166, 23179, 23165, 23162, 23178, 23169, 23160, 23177, 23173, 23159, 23173, 23177, 23159, 23169, 23180, 23161, 23165, 23181, 23165, 23161, 23181, 23169, 23157, 23178, 23174, 23156, 23175, 23179, 23156, 23169, 23184, 23158, 23163, 23187, 23162, 23156, 23187, 23169, 23149, 23185, 23178, 23144, 23179, 23190, 23141, 23169, 23203, 23141, 23152, 23219, 23148, 23122, 23242, 23170, 23047, 23306, 23331, -1, -23331, -23306, -23047, -23170, -23242, -23122, -23148, -23219, -23152, -23141, -23203, -23169, -23141, -23190, -23179, -23144, -23178, -23185, -23149, -23169, -23187, -23156, -23162, -23187, -23163, -23158, -23184, -23169, -23156, -23179, -23175, -23156, -23174, -23178, -23157, -23169, -23181, -23161, -23165, -23181, -23165, -23161, -23180, -23169, -23159, -23177, -23173, -23159, -23173, -23177, -23160, -23169, -23179, -23162, -23165, -23179, -23166, -23162, -23178, -23169, -23160, -23176, -23173, -23160, -23173, -23176, -23160, -23169, -23178, -23162, -23166, -23179, -23165, -23162, -23179, -23169, -23160, -23177, -23173, -23159, -23173, -23177, -23159, -23169, -23180, -23161, -23165, -23181, -23165, -23161, -23181, -23169, -23157, -23178, -23174, -23156, -23175, -23179, -23156, -23169, -23184, -23158, -23163, -23187, -23162, -23156, -23187, -23169, -23149, -23185, -23178, -23144, -23179, -23190, -23141, -23169, -23203, -23141, -23152, -23219, -23148, -23122, -23242, -23170, -23047, -23306, -23331},
{0, 22741, 23007, 23111, 23170, 23206, 23225, 23231, 23228, 23218, 23203, 23186, 23169, 23155, 23145, 23140, 23139, 23143, 23150, 23160, 23169, 23178, 23185, 23189, 23190, 23188, 23183, 23176, 23169, 23163, 23157, 23154, 23153, 23155, 23158, 23163, 23169, 23175, 23179, 23182, 23183, 23182, 23179, 23174, 23169, 23164, 23160, 23158, 23157, 23158, 23161, 23165, 23169, 23174, 23178, 23180, 23181, 23180, 23177, 23174, 23169, 23165, 23161, 23159, 23158, 23159, 23161, 23165, 23169, 23174, 23177, 23180, 23181, 23180, 23178, 23174, 23169, 23165, 23161, 23158, 23157, 23158, 23160, 23164, 23169, 23174, 23179, 23182, 23183, 23182, 23179, 23175, 23169, 23163, 23158, 23155, 23153, 23154, 23157, 23163, 23169, 23176, 23183, 23188, 23190, 23189, 23185, 23178, 23169, 23160, 23150, 23143, 23139, 23140, 23145, 23155, 23169, 23186, 23203, 23218, 23228, 23231, 23225, 23206, 23170, 23111, 23007, 22741, -1, -22741, -23007, -23111, -23170, -23206, -23225, -23231, -23228, -23218, -23203, -23186, -23169, -23155, -23145, -23140, -23139, -23143, -23150, -23160, -23169, -23178, -23185, -23189, -23190, -23188, -23183, -23176, -23169, -23163, -23157, -23154, -23153, -23155, -23158, -23163, -23169, -23175, -23179, -23182, -23183, -23182, -23179, -23174, -23169, -23164, -23160, -23158, -23157, -23158, -23161, -23165, -23169, -23174, -23178, -23180, -23181, -23180, -23177, -23174, -23169, -23165, -23161, -23159, -23158, -23159, -23161, -23165, -23169, -23174, -23177, -23180, -23181, -23180, -23178, -23174, -23169, -23165, -23161, -23158, -23157, -23158, -23160, -23164, -23169, -23174, -23179, -23182, -23183, -23182, -23179, -23175, -23169, -23163, -23158, -23155, -23153, -23154, -23157, -23163, -23169, -23176, -23183, -23188, -23190, -23189, -23185, -23178, -23169, -23160, -23150, -23143, -23139, -23140, -23145, -23155, -23169, -23186, -23203, -23218, -23228, -23231, -23225, -23206, -23170, -23111, -23007, -22741},
{0, 23356, 23370, 22998, 23168, 23273, 23104, 23138, 23239, 23146, 23129, 23216, 23169, 23129, 23198, 23184, 23134, 23182, 23192, 23141, 23169, 23195, 23151, 23159, 23194, 23160, 23153, 23190, 23169, 23150, 23184, 23177, 23150, 23176, 23182, 23153, 23169, 23185, 23157, 23163, 23186, 23163, 23158, 23184, 23169, 23155, 23180, 23175, 23154, 23175, 23180, 23156, 23169, 23182, 23159, 23164, 23183, 23164, 23159, 23182, 23169, 23157, 23179, 23174, 23156, 23175, 23179, 23157, 23169, 23182, 23160, 23164, 23183, 23164, 23159, 23182, 23169, 23156, 23180, 23175, 23154, 23175, 23180, 23155, 23169, 23184, 23158, 23163, 23186, 23163, 23157, 23185, 23169, 23153, 23182, 23176, 23150, 23177, 23184, 23150, 23169, 23190, 23153, 23160, 23194, 23159, 23150, 23195, 23169, 23141, 23192, 23182, 23134, 23184, 23198, 23129, 23169, 23216, 23129, 23146, 23239, 23138, 23104, 23273, 23168, 22998, 23370, 23356, -1, -23356, -23370, -22998, -23168, -23273, -23104, -23138, -23239, -23146, -23129, -23216, -23169, -23129, -23198, -23184, -23134, -23182, -23192, -23141, -23169, -23195, -23150, -23159, -23194, -23160, -23153, -23190, -23169, -23150, -23184, -23177, -23150, -23176, -23182, -23153, -23169, -23185, -23157, -23163, -23186, -23163, -23158, -23184, -23169, -23155, -23180, -23175, -23154, -23175, -23180, -23156, -23169, -23182, -23159, -23164, -23183, -23164, -23159, -23182, -23169, -23157, -23179, -23174, -23156, -23175, -23179, -23157, -23169, -23182, -23159, -23164, -23183, -23164, -23159, -23182, -23169, -23156, -23180, -23175, -23154, -23175, -23180, -23155, -23169, -23184, -23158, -23163, -23186, -23163, -23157, -23185, -23169, -23153, -23182, -23176, -23150, -23177, -23184, -23150, -23169, -23190, -23153, -23160, -23194, -23159, -23151, -23195, -23169, -23141, -23192, -23182, -23134, -23184, -23198, -23129, -23169, -23216, -23129, -23146, -23239, -23138, -23104, -23273, -23168, -22998, -23370, -23356},
{0, 23045, 23463, 23314, 23075, 23045, 23181, 23263, 23201, 23109, 23118, 23196, 23224, 23172, 23123, 23146, 23199, 23204, 23158, 23133, 23163, 23199, 23189, 23151, 23142, 23173, 23196, 23178, 23148, 23151, 23181, 23192, 23169, 23148, 23159, 23185, 23187, 23162, 23149, 23166, 23187, 23181, 23157, 23152, 23173, 23187, 23174, 23154, 23157, 23178, 23186, 23168, 23153, 23162, 23182, 23183, 23163, 23153, 23168, 23185, 23178, 23158, 23155, 23173, 23185, 23173, 23155, 23158, 23178, 23185, 23168, 23153, 23163, 23183, 23182, 23162, 23153, 23168, 23186, 23178, 23157, 23154, 23174, 23187, 23173, 23152, 23157, 23181, 23187, 23166, 23149, 23162, 23187, 23185, 23159, 23148, 23169, 23192, 23181, 23151, 23148, 23178, 23196, 23173, 23142, 23151, 23189, 23199, 23163, 23133, 23158, 23204, 23199, 23146, 23123, 23172, 23224, 23196, 23118, 23109, 23201, 23263, 23181, 23045, 23075, 23314, 23463, 23045, -1, -23045, -23463, -23314, -23075, -23045, -23181, -23263, -23201, -23109, -23118, -23196, -23224, -23172, -23123, -23146, -23199, -23204, -23158, -23133, -23163, -23199, -23189, -23151, -23142, -23173, -23196, -23178, -23148, -23151, -23181, -23192, -23169, -23148, -23159, -23185, -23187, -23162, -23149, -23166, -23187, -23181, -23157, -23152, -23173, -23187, -23174, -23154, -23157, -23178, -23186, -23168, -23153, -23162, -23182, -23183, -23163, -23153, -23168, -23185, -23178, -23158, -23155, -23173, -23185, -23173, -23155, -23158, -23178, -23185, -23168, -23153, -23163, -23183, -23182, -23162, -23153, -23168, -23186, -23178, -23157, -23154, -23174, -23187, -23173, -23152, -23157, -23181, -23187, -23166, -23149, -23162, -23187, -23185, -23159, -23148, -23169, -23192, -23181, -23151, -23148, -23178, -23196, -23173, -23142, -23151, -23189, -23199, -23163, -23133, -23158, -23204, -23199, -23146, -23123, -23172, -23224, -23196, -23118, -23109, -23201, -23263, -23181, -23045, -23075, -23314, -23463, -23045},
{0, 23556, 23331, 22910, 23306, 23202, 23047, 23262, 23170, 23096, 23242, 23156, 23122, 23229, 23148, 23139, 23220, 23143, 23152, 23211, 23140, 23161, 23204, 23139, 23169, 23197, 23139, 23175, 23191, 23140, 23180, 23185, 23142, 23184, 23179, 23144, 23187, 23174, 23147, 23189, 23169, 23150, 23190, 23165, 23154, 23190, 23161, 23158, 23190, 23158, 23161, 23189, 23155, 23165, 23188, 23153, 23169, 23186, 23151, 23173, 23183, 23150, 23177, 23180, 23150, 23180, 23177, 23150, 23183, 23173, 23151, 23186, 23169, 23153, 23188, 23165, 23155, 23189, 23161, 23158, 23190, 23158, 23161, 23190, 23154, 23165, 23190, 23150, 23169, 23189, 23147, 23174, 23187, 23144, 23179, 23184, 23142, 23185, 23180, 23140, 23191, 23175, 23139, 23197, 23169, 23139, 23204, 23162, 23140, 23211, 23152, 23143, 23220, 23139, 23148, 23229, 23122, 23156, 23242, 23096, 23170, 23262, 23047, 23202, 23306, 22910, 23331, 23556, 0, -23556, -23331, -22910, -23306, -23202, -23047, -23262, -23170, -23096, -23242, -23156, -23122, -23229, -23148, -23139, -23220, -23143, -23152, -23211, -23140, -23162, -23204, -23139, -23169, -23197, -23139, -23175, -23191, -23140, -23180, -23185, -23142, -23184, -23179, -23144, -23187, -23174, -23147, -23189, -23169, -23150, -23190, -23165, -23154, -23190, -23161, -23158, -23190, -23158, -23161, -23189, -23155, -23165, -23188, -23153, -23169, -23186, -23151, -23173, -23183, -23150, -23177, -23180, -23150, -23180, -23177, -23150, -23183, -23173, -23151, -23186, -23169, -23153, -23188, -23165, -23155, -23189, -23161, -23158, -23190, -23158, -23161, -23190, -23154, -23165, -23190, -23150, -23169, -23189, -23147, -23174, -23187, -23144, -23179, -23184, -23142, -23185, -23180, -23140, -23191, -23175, -23139, -23197, -23169, -23139, -23204, -23162, -23140, -23211, -23152, -23143, -23220, -23139, -23148, -23229, -23122, -23156, -23242, -23096, -23170, -23262, -23047, -23202, -23306, -22909, -23331, -23556},
{0, 22259, 22741, 22913, 23006, 23067, 23111, 23145, 23170, 23191, 23206, 23218, 23226, 23230, 23232, 23232, 23229, 23225, 23219, 23212, 23204, 23195, 23186, 23178, 23169, 23161, 23154, 23148, 23144, 23140, 23138, 23137, 23137, 23138, 23141, 23144, 23148, 23153, 23158, 23164, 23169, 23175, 23180, 23184, 23188, 23191, 23193, 23194, 23194, 23193, 23192, 23189, 23186, 23183, 23178, 23174, 23169, 23165, 23160, 23156, 23153, 23150, 23148, 23147, 23146, 23147, 23148, 23150, 23153, 23156, 23160, 23165, 23169, 23174, 23178, 23182, 23186, 23189, 23192, 23193, 23194, 23194, 23193, 23191, 23188, 23184, 23180, 23175, 23169, 23164, 23158, 23153, 23148, 23144, 23141, 23138, 23137, 23137, 23138, 23140, 23144, 23148, 23154, 23161, 23169, 23178, 23186, 23195, 23204, 23212, 23219, 23225, 23229, 23232, 23232, 23230, 23226, 23218, 23206, 23191, 23170, 23145, 23111, 23067, 23006, 22913, 22741, 22259, 0, -22259, -22741, -22913, -23006, -23067, -23111, -23145, -23170, -23191, -23206, -23218, -23226, -23230, -23232, -23232, -23229, -23225, -23219, -23212, -23204, -23195, -23186, -23178, -23169, -23161, -23154, -23148, -23144, -23140, -23138, -23137, -23137, -23138, -23141, -23144, -23148, -23153, -23158, -23164, -23169, -23175, -23180, -23184, -23188, -23191, -23193, -23194, -23194, -23193, -23192, -23189, -23186, -23183, -23178, -23174, -23169, -23165, -23160, -23156, -23153, -23150, -23148, -23147, -23146, -23147, -23148, -23150, -23153, -23156, -23160, -23165, -23169, -23174, -23178, -23183, -23186, -23189, -23192, -23193, -23194, -23194, -23193, -23191, -23188, -23184, -23180, -23175, -23169, -23164, -23158, -23153, -23148, -23144, -23141, -23138, -23137, -23137, -23138, -23140, -23144, -23148, -23154, -23161, -23169, -23178, -23186, -23195, -23204, -23212, -23219, -23225, -23229, -23232, -23232, -23230, -23226, -23218, -23206, -23191, -23170, -23145, -23111, -23067, -23006, -22913, -22741, -22259},
{0, 23852, 23356, 22805, 23370, 23209, 22998, 23303, 23168, 23066, 23273, 23148, 23103, 23255, 23138, 23127, 23241, 23131, 23145, 23229, 23128, 23159, 23218, 23127, 23169, 23209, 23127, 23178, 23200, 23128, 23185, 23191, 23131, 23190, 23183, 23134, 23194, 23176, 23138, 23197, 23169, 23142, 23199, 23163, 23147, 23199, 23158, 23153, 23199, 23153, 23158, 23197, 23149, 23164, 23195, 23146, 23169, 23192, 23144, 23175, 23189, 23142, 23180, 23184, 23142, 23184, 23180, 23142, 23189, 23175, 23144, 23192, 23169, 23146, 23195, 23164, 23149, 23197, 23158, 23153, 23199, 23153, 23158, 23199, 23147, 23163, 23199, 23142, 23169, 23197, 23138, 23176, 23194, 23134, 23183, 23190, 23131, 23191, 23185, 23128, 23200, 23178, 23127, 23209, 23169, 23127, 23218, 23159, 23128, 23229, 23145, 23131, 23241, 23127, 23138, 23255, 23103, 23148, 23273, 23066, 23168, 23303, 22998, 23209, 23370, 22805, 23356, 23852, 0, -23852, -23356, -22805, -23370, -23209, -22998, -23303, -23168, -23066, -23273, -23148, -23103, -23255, -23138, -23127, -23241, -23131, -23145, -23229, -23128, -23159, -23218, -23127, -23169, -23209, -23127, -23178, -23200, -23128, -23185, -23191, -23131, -23190, -23183, -23134, -23194, -23176, -23138, -23197, -23169, -23142, -23199, -23163, -23147, -23199, -23158, -23153, -23199, -23153, -23158, -23197, -23149, -23164, -23195, -23146, -23169, -23192, -23144, -23175, -23189, -23142, -23180, -23184, -23142, -23184, -23180, -23142, -23189, -23175, -23144, -23192, -23169, -23146, -23195, -23164, -23149, -23197, -23158, -23153, -23199, -23153, -23158, -23199, -23147, -23163, -23199, -23142, -23169, -23197, -23138, -23176, -23194, -23134, -23183, -23190, -23131, -23191, -23185, -23128, -23200, -23178, -23127, -23209, -23169, -23127, -23218, -23159, -23128, -23229, -23145, -23131, -23241, -23127, -23138, -23255, -23103, -23148, -23273, -23066, -23168, -23303, -22998, -23209, -23370, -22805, -23356, -23852},
{0, 24062, 23077, 22946, 23477, 22916, 23289, 23191, 23049, 23317, 23059, 23203, 23213, 23077, 23264, 23112, 23169, 23221, 23094, 23233, 23143, 23150, 23222, 23109, 23210, 23164, 23139, 23220, 23122, 23193, 23179, 23133, 23215, 23135, 23178, 23190, 23130, 23209, 23147, 23165, 23197, 23131, 23201, 23158, 23155, 23201, 23134, 23192, 23169, 23147, 23203, 23139, 23182, 23179, 23141, 23202, 23146, 23172, 23188, 23138, 23199, 23154, 23163, 23194, 23137, 23194, 23163, 23154, 23199, 23138, 23188, 23172, 23146, 23202, 23141, 23179, 23182, 23139, 23203, 23147, 23169, 23192, 23134, 23201, 23155, 23158, 23201, 23131, 23197, 23165, 23147, 23209, 23130, 23190, 23178, 23135, 23215, 23133, 23179, 23193, 23122, 23220, 23139, 23164, 23210, 23109, 23222, 23150, 23143, 23233, 23094, 23221, 23169, 23112, 23264, 23077, 23213, 23203, 23059, 23317, 23049, 23191, 23289, 22916, 23477, 22946, 23077, 24062, 0, -24062, -23077, -22946, -23477, -22916, -23289, -23191, -23049, -23317, -23059, -23203, -23213, -23077, -23264, -23112, -23169, -23221, -23094, -23233, -23143, -23150, -23222, -23109, -23210, -23164, -23139, -23220, -23122, -23193, -23179, -23133, -23215, -23135, -23178, -23190, -23130, -23209, -23147, -23165, -23197, -23131, -23201, -23158, -23155, -23201, -23134, -23192, -23169, -23147, -23203, -23139, -23182, -23179, -23141, -23202, -23146, -23172, -23188, -23138, -23199, -23154, -23163, -23194, -23137, -23194, -23163, -23154, -23199, -23138, -23188, -23172, -23146, -23202, -23141, -23179, -23182, -23139, -23203, -23147, -23169, -23192, -23134, -23201, -23155, -23158, -23201, -23131, -23197, -23165, -23147, -23209, -23130, -23190, -23178, -23135, -23215, -23133, -23179, -23193, -23122, -23220, -23139, -23164, -23210, -23109, -23222, -23150, -23143, -23233, -23094, -23221, -23169, -23112, -23264, -23077, -23213, -23203, -23059, -23317, -23049, -23191, -23289, -22916, -23477, -22946, -23077, -24062},
{0, 22261, 23556, 23686, 23331, 22975, 22909, 23100, 23306, 23338, 23202, 23058, 23046, 23156, 23264, 23264, 23170, 23085, 23094, 23177, 23245, 23230, 23155, 23100, 23120, 23188, 23233, 23209, 23146, 23110, 23137, 23195, 23224, 23195, 23140, 23118, 23150, 23200, 23216, 23183, 23136, 23125, 23160, 23203, 23210, 23174, 23134, 23132, 23169, 23206, 23203, 23165, 23132, 23138, 23177, 23207, 23197, 23158, 23131, 23145, 23184, 23208, 23191, 23151, 23131, 23151, 23191, 23208, 23184, 23145, 23131, 23158, 23197, 23207, 23177, 23138, 23132, 23165, 23203, 23206, 23169, 23132, 23134, 23174, 23210, 23203, 23160, 23125, 23136, 23183, 23216, 23200, 23150, 23118, 23140, 23195, 23224, 23195, 23137, 23110, 23146, 23209, 23233, 23188, 23120, 23100, 23155, 23230, 23245, 23177, 23094, 23085, 23170, 23264, 23264, 23156, 23046, 23058, 23202, 23338, 23306, 23099, 22909, 22975, 23331, 23686, 23556, 22261, 0, -22261, -23556, -23686, -23331, -22975, -22909, -23100, -23306, -23338, -23202, -23058, -23046, -23156, -23264, -23264, -23170, -23085, -23094, -23177, -23245, -23230, -23155, -23100, -23120, -23188, -23233, -23209, -23146, -23110, -23137, -23195, -23224, -23195, -23140, -23118, -23150, -23200, -23216, -23183, -23136, -23125, -23160, -23203, -23210, -23174, -23134, -23132, -23169, -23206, -23203, -23165, -23132, -23138, -23177, -23207, -23197, -23158, -23131, -23145, -23184, -23208, -23191, -23151, -23131, -23151, -23191, -23208, -23184, -23145, -23131, -23158, -23197, -23207, -23177, -23138, -23132, -23165, -23203, -23206, -23169, -23132, -23134, -23174, -23210, -23203, -23160, -23125, -23136, -23183, -23216, -23200, -23150, -23118, -23140, -23195, -23224, -23195, -23137, -23110, -23146, -23209, -23233, -23188, -23120, -23100, -23155, -23230, -23245, -23177, -23094, -23085, -23170, -23264, -23264, -23156, -23046, -23058, -23202, -23338, -23306, -23099, -22909, -22975, -23331, -23686, -23556, -22261},
{0, 21345, 22259, 22577, 22741, 22842, 22912, 22965, 23006, 23039, 23066, 23090, 23111, 23128, 23144, 23158, 23170, 23181, 23191, 23200, 23207, 23214, 23219, 23224, 23228, 23231, 23234, 23235, 23236, 23237, 23236, 23236, 23234, 23232, 23230, 23227, 23224, 23221, 23217, 23213, 23208, 23204, 23199, 23194, 23189, 23184, 23179, 23174, 23169, 23164, 23160, 23155, 23151, 23147, 23143, 23139, 23136, 23133, 23131, 23128, 23127, 23125, 23124, 23123, 23123, 23123, 23124, 23125, 23127, 23128, 23131, 23133, 23136, 23139, 23143, 23147, 23151, 23155, 23160, 23164, 23169, 23174, 23179, 23184, 23189, 23194, 23199, 23204, 23208, 23213, 23217, 23221, 23224, 23227, 23230, 23232, 23234, 23236, 23236, 23237, 23236, 23235, 23234, 23231, 23228, 23224, 23219, 23214, 23207, 23200, 23191, 23181, 23170, 23158, 23144, 23128, 23111, 23090, 23066, 23039, 23006, 22965, 22912, 22842, 22741, 22577, 22259, 21345, 0, -21345, -22259, -22577, -22741, -22842, -22912, -22965, -23006, -23039, -23066, -23090, -23111, -23128, -23144, -23158, -23170, -23181, -23191, -23200, -23207, -23214, -23219, -23224, -23228, -23231, -23234, -23235, -23236, -23237, -23236, -23236, -23234, -23232, -23230, -23227, -23224, -23221, -23217, -23213, -23208, -23204, -23199, -23194, -23189, -23184, -23179, -23174, -23169, -23164, -23160, -23155, -23151, -23147, -23143, -23139, -23136, -23133, -23131, -23128, -23127, -23125, -23124, -23123, -23123, -23123, -23124, -23125, -23127, -23128, -23131, -23133, -23136, -23139, -23143, -23147, -23151, -23155, -23160, -23164, -23169, -23174, -23179, -23184, -23189, -23194, -23199, -23204, -23208, -23213, -23217, -23221, -23224, -23227, -23230, -23232, -23234, -23236, -23236, -23237, -23236, -23235, -23234, -23231, -23228, -23224, -23219, -23214, -23207, -23200, -23191, -23181, -23170, -23158, -23144, -23128, -23111, -23090, -23066, -23039, -23006, -22965, -22912, -22842, -22741, -22577, -22259, -21345},
{0, 22491, 23852, 23887, 23357, 22872, 22804, 23085, 23371, 23405, 23209, 23008, 22996, 23155, 23305, 23302, 23168, 23049, 23063, 23182, 23276, 23254, 23148, 23071, 23100, 23197, 23259, 23225, 23136, 23086, 23124, 23207, 23246, 23205, 23128, 23097, 23142, 23213, 23236, 23188, 23123, 23107, 23157, 23218, 23226, 23175, 23119, 23117, 23169, 23221, 23217, 23164, 23116, 23125, 23180, 23223, 23209, 23153, 23115, 23134, 23190, 23224, 23200, 23143, 23115, 23143, 23200, 23224, 23190, 23134, 23115, 23153, 23209, 23223, 23180, 23125, 23116, 23164, 23217, 23221, 23169, 23117, 23119, 23175, 23226, 23218, 23157, 23107, 23123, 23188, 23236, 23213, 23142, 23097, 23128, 23205, 23246, 23207, 23124, 23086, 23136, 23225, 23259, 23197, 23100, 23071, 23148, 23254, 23276, 23182, 23063, 23049, 23168, 23302, 23305, 23155, 22996, 23008, 23209, 23405, 23371, 23085, 22804, 22872, 23357, 23887, 23852, 22491, 0, -22491, -23852, -23887, -23357, -22872, -22804, -23085, -23371, -23405, -23209, -23008, -22996, -23155, -23305, -23302, -23168, -23049, -23063, -23182, -23276, -23254, -23148, -23071, -23100, -23197, -23259, -23225, -23136, -23086, -23124, -23207, -23246, -23205, -23128, -23097, -23142, -23213, -23236, -23188, -23123, -23107, -23157, -23218, -23226, -23175, -23119, -23117, -23169, -23221, -23217, -23164, -23116, -23125, -23180, -23223, -23209, -23153, -23115, -23134, -23190, -23224, -23200, -23143, -23115, -23143, -23200, -23224, -23190, -23134, -23115, -23153, -23209, -23223, -23180, -23125, -23116, -23164, -23217, -23221, -23169, -23117, -23119, -23175, -23226, -23218, -23157, -23107, -23123, -23188, -23236, -23213, -23142, -23097, -23128, -23205, -23246, -23207, -23124, -23086, -23136, -23225, -23259, -23197, -23100, -23071, -23148, -23254, -23276, -23182, -23063, -23049, -23168, -23302, -23305, -23155, -22996, -23008, -23209, -23405, -23371, -23085, -22804, -22872, -23357, -23887, -23852, -22491},
{0, 24427, 24063, 22372, 23077, 23684, 22945, 22922, 23478, 23176, 22914, 23318, 23290, 22966, 23191, 23331, 23047, 23102, 23320, 23133, 23055, 23276, 23205, 23048, 23215, 23252, 23072, 23155, 23270, 23117, 23108, 23258, 23169, 23085, 23225, 23213, 23086, 23182, 23240, 23110, 23140, 23246, 23147, 23109, 23231, 23187, 23098, 23200, 23219, 23106, 23163, 23236, 23131, 23129, 23233, 23166, 23108, 23214, 23200, 23104, 23182, 23225, 23119, 23147, 23234, 23147, 23119, 23225, 23182, 23104, 23200, 23214, 23108, 23166, 23233, 23129, 23131, 23236, 23163, 23106, 23219, 23200, 23098, 23187, 23231, 23109, 23147, 23246, 23140, 23110, 23240, 23182, 23086, 23213, 23225, 23085, 23169, 23258, 23108, 23117, 23270, 23155, 23072, 23252, 23215, 23048, 23205, 23276, 23055, 23133, 23320, 23102, 23047, 23331, 23191, 22966, 23290, 23318, 22914, 23176, 23478, 22922, 22945, 23684, 23077, 22372, 24063, 24427, 0, -24427, -24063, -22372, -23077, -23684, -22945, -22922, -23478, -23176, -22914, -23318, -23290, -22966, -23191, -23331, -23047, -23102, -23320, -23133, -23055, -23276, -23205, -23048, -23215, -23252, -23072, -23154, -23270, -23117, -23108, -23258, -23169, -23085, -23225, -23213, -23086, -23182, -23240, -23110, -23140, -23246, -23147, -23109, -23231, -23187, -23098, -23200, -23219, -23106, -23163, -23236, -23131, -23129, -23233, -23166, -23108, -23214, -23200, -23104, -23182, -23225, -23119, -23147, -23234, -23147, -23119, -23225, -23182, -23104, -23200, -23214, -23108, -23166, -23233, -23129, -23131, -23236, -23163, -23106, -23219, -23200, -23098, -23187, -23231, -23109, -23147, -23246, -23140, -23110, -23240, -23182, -23086, -23213, -23225, -23085, -23169, -23258, -23108, -23117, -23270, -23155, -23072, -23252, -23215, -23048, -23205, -23276, -23055, -23133, -23320, -23102, -23047, -23331, -23191, -22966, -23290, -23318, -22914, -23176, -23478, -22922, -22945, -23684, -23077, -22372, -24063, -24427},
{0, 25781, 22261, 23209, 23557, 22610, 23687, 22794, 23332, 23211, 22974, 23438, 22906, 23354, 23099, 23121, 23309, 22984, 23342, 23052, 23203, 23220, 23054, 23311, 23040, 23250, 23155, 23117, 23270, 23051, 23271, 23111, 23170, 23223, 23077, 23271, 23086, 23212, 23178, 23113, 23255, 23079, 23239, 23139, 23152, 23227, 23087, 23251, 23110, 23190, 23193, 23109, 23248, 23094, 23220, 23158, 23139, 23232, 23091, 23240, 23126, 23173, 23206, 23103, 23246, 23103, 23206, 23173, 23126, 23240, 23091, 23232, 23139, 23158, 23220, 23094, 23248, 23109, 23193, 23190, 23110, 23251, 23087, 23227, 23152, 23139, 23239, 23079, 23255, 23113, 23178, 23212, 23086, 23271, 23077, 23223, 23170, 23111, 23271, 23051, 23270, 23117, 23155, 23250, 23040, 23311, 23054, 23220, 23203, 23052, 23342, 22984, 23309, 23121, 23099, 23354, 22906, 23438, 22974, 23211, 23332, 22794, 23687, 22610, 23557, 23209, 22261, 25781, 0, -25781, -22261, -23209, -23557, -22610, -23687, -22794, -23332, -23211, -22974, -23438, -22906, -23354, -23099, -23121, -23309, -22984, -23342, -23052, -23203, -23220, -23054, -23311, -23040, -23250, -23155, -23117, -23270, -23051, -23271, -23111, -23170, -23223, -23077, -23271, -23086, -23212, -23178, -23113, -23255, -23079, -23239, -23139, -23152, -23227, -23087, -23251, -23110, -23190, -23193, -23109, -23248, -23094, -23220, -23158, -23139, -23232, -23091, -23240, -23126, -23173, -23206, -23103, -23246, -23103, -23206, -23173, -23126, -23240, -23091, -23232, -23139, -23158, -23220, -23094, -23248, -23109, -23193, -23190, -23110, -23251, -23087, -23227, -23152, -23139, -23239, -23079, -23255, -23113, -23178, -23212, -23086, -23271, -23077, -23223, -23170, -23111, -23271, -23051, -23270, -23117, -23155, -23250, -23040, -23311, -23054, -23220, -23203, -23052, -23342, -22984, -23309, -23121, -23099, -23354, -22906, -23438, -22974, -23211, -23332, -22794, -23687, -22610, -23557, -23209, -22261, -25781},
{0, 26184, 21344, 24330, 22258, 23870, 22575, 23660, 22738, 23538, 22840, 23458, 22909, 23399, 22961, 23354, 23002, 23318, 23035, 23288, 23063, 23263, 23087, 23241, 23108, 23221, 23126, 23204, 23142, 23189, 23157, 23175, 23170, 23162, 23182, 23151, 23193, 23140, 23203, 23131, 23212, 23122, 23220, 23114, 23227, 23108, 23234, 23101, 23240, 23096, 23245, 23091, 23249, 23087, 23253, 23084, 23256, 23081, 23258, 23079, 23260, 23078, 23261, 23077, 23261, 23077, 23261, 23078, 23260, 23079, 23258, 23081, 23256, 23084, 23253, 23087, 23249, 23091, 23245, 23096, 23240, 23101, 23234, 23108, 23227, 23114, 23220, 23122, 23212, 23131, 23203, 23140, 23193, 23151, 23182, 23162, 23170, 23175, 23157, 23189, 23142, 23204, 23126, 23221, 23108, 23241, 23087, 23263, 23063, 23288, 23035, 23318, 23002, 23354, 22961, 23399, 22909, 23458, 22840, 23538, 22738, 23660, 22575, 23870, 22258, 24330, 21344, 26184, 0, -26184, -21344, -24330, -22258, -23870, -22575, -23660, -22738, -23538, -22840, -23458, -22909, -23399, -22961, -23354, -23002, -23318, -23035, -23288, -23063, -23263, -23087, -23241, -23108, -23221, -23126, -23204, -23142, -23189, -23157, -23175, -23170, -23162, -23182, -23151, -23193, -23140, -23203, -23131, -23212, -23122, -23220, -23114, -23227, -23108, -23234, -23101, -23240, -23096, -23245, -23091, -23249, -23087, -23253, -23084, -23256, -23081, -23258, -23079, -23260, -23078, -23261, -23077, -23261, -23077, -23261, -23078, -23260, -23079, -23258, -23081, -23256, -23084, -23253, -23087, -23249, -23091, -23245, -23096, -23240, -23101, -23234, -23108, -23227, -23114, -23220, -23122, -23212, -23131, -23203, -23140, -23193, -23151, -23182, -23162, -23170, -23175, -23157, -23189, -23142, -23204, -23126, -23221, -23108, -23241, -23087, -23263, -23063, -23288, -23035, -23318, -23002, -23354, -22961, -23399, -22909, -23458, -22840, -23538, -22738, -23660, -22575, -23870, -22258, -24330, -21344, -26183},
{0, 25674, 22491, 22922, 23852, 22328, 23889, 22674, 23358, 23263, 22870, 23556, 22800, 23419, 23083, 23088, 23375, 22905, 23411, 23009, 23210, 23247, 23002, 23371, 22988, 23280, 23154, 23091, 23313, 23002, 23312, 23089, 23168, 23248, 23038, 23313, 23052, 23228, 23184, 23089, 23291, 23041, 23267, 23128, 23144, 23252, 23053, 23285, 23086, 23197, 23203, 23084, 23281, 23062, 23240, 23153, 23126, 23258, 23059, 23269, 23108, 23175, 23221, 23075, 23278, 23075, 23221, 23175, 23108, 23269, 23059, 23258, 23126, 23153, 23240, 23062, 23281, 23084, 23203, 23197, 23086, 23285, 23053, 23252, 23144, 23128, 23267, 23041, 23291, 23089, 23184, 23228, 23052, 23313, 23038, 23248, 23168, 23089, 23312, 23002, 23313, 23091, 23154, 23280, 22988, 23371, 23002, 23247, 23210, 23009, 23411, 22905, 23375, 23088, 23083, 23419, 22800, 23556, 22870, 23263, 23358, 22674, 23889, 22328, 23852, 22922, 22491, 25674, 0, -25674, -22491, -22922, -23852, -22328, -23889, -22674, -23358, -23263, -22870, -23556, -22800, -23419, -23083, -23088, -23375, -22905, -23411, -23009, -23210, -23247, -23002, -23371, -22988, -23280, -23154, -23091, -23313, -23002, -23312, -23089, -23168, -23248, -23038, -23313, -23052, -23228, -23184, -23089, -23291, -23041, -23267, -23128, -23144, -23252, -23053, -23285, -23086, -23197, -23203, -23084, -23281, -23062, -23240, -23153, -23126, -23258, -23059, -23269, -23108, -23175, -23221, -23075, -23278, -23075, -23221, -23175, -23108, -23269, -23059, -23258, -23126, -23153, -23240, -23062, -23281, -23084, -23203, -23197, -23086, -23285, -23053, -23252, -23144, -23128, -23267, -23041, -23291, -23089, -23184, -23228, -23052, -23313, -23038, -23248, -23168, -23089, -23312, -23002, -23313, -23091, -23154, -23280, -22988, -23371, -23002, -23247, -23210, -23009, -23411, -22905, -23375, -23088, -23083, -23419, -22800, -23556, -22870, -23263, -23358, -22674, -23889, -22328, -23852, -22922, -22491, -25674},
{0, 24518, 24311, 21445, 24138, 23209, 22447, 23871, 22951, 22842, 23691, 22858, 23067, 23542, 22836, 23211, 23412, 22855, 23304, 23297, 22899, 23358, 23198, 22960, 23381, 23118, 23029, 23377, 23059, 23100, 23353, 23020, 23167, 23313, 23003, 23225, 23263, 23006, 23270, 23209, 23025, 23299, 23156, 23059, 23312, 23108, 23101, 23308, 23071, 23148, 23290, 23047, 23195, 23259, 23037, 23237, 23220, 23042, 23269, 23176, 23061, 23290, 23132, 23092, 23298, 23092, 23132, 23290, 23061, 23176, 23269, 23042, 23220, 23237, 23037, 23259, 23195, 23047, 23290, 23148, 23071, 23308, 23101, 23108, 23312, 23059, 23156, 23299, 23025, 23209, 23270, 23006, 23263, 23225, 23003, 23313, 23167, 23020, 23353, 23100, 23059, 23377, 23029, 23118, 23381, 22960, 23198, 23358, 22899, 23297, 23304, 22855, 23412, 23211, 22836, 23542, 23067, 22858, 23691, 22842, 22951, 23871, 22447, 23209, 24138, 21445, 24311, 24518, 0, -24518, -24311, -21445, -24138, -23209, -22447, -23871, -22951, -22842, -23691, -22858, -23067, -23542, -22836, -23211, -23412, -22855, -23304, -23297, -22899, -23358, -23198, -22960, -23381, -23118, -23029, -23377, -23059, -23100, -23353, -23020, -23167, -23313, -23003, -23225, -23263, -23006, -23270, -23209, -23025, -23299, -23156, -23059, -23312, -23108, -23101, -23308, -23071, -23148, -23290, -23047, -23195, -23259, -23037, -23237, -23220, -23042, -23269, -23176, -23061, -23290, -23132, -23092, -23298, -23092, -23132, -23290, -23061, -23176, -23269, -23042, -23220, -23237, -23037, -23259, -23195, -23047, -23290, -23148, -23071, -23308, -23101, -23108, -23312, -23059, -23156, -23299, -23025, -23209, -23270, -23006, -23263, -23225, -23003, -23313, -23167, -23020, -23353, -23100, -23059, -23377, -23029, -23118, -23381, -22960, -23198, -23358, -22899, -23297, -23304, -22855, -23412, -23211, -22836, -23542, -23067, -22858, -23691, -22842, -22951, -23871, -22447, -23209, -24138, -21445, -24311, -24518},
{0, 22813, 25710, 21814, 22404, 24339, 23056, 22347, 23676, 23527, 22556, 23198, 23656, 22875, 22903, 23566, 23182, 22804, 23358, 23390, 22872, 23132, 23459, 23040, 22971, 23399, 23224, 22921, 23257, 23351, 22982, 23102, 23384, 23111, 22996, 23323, 23247, 22976, 23204, 23334, 23040, 23083, 23343, 23153, 23009, 23276, 23264, 23009, 23168, 23325, 23080, 23067, 23316, 23185, 23015, 23242, 23279, 23033, 23139, 23322, 23111, 23051, 23296, 23214, 23016, 23214, 23296, 23051, 23111, 23322, 23139, 23033, 23279, 23242, 23015, 23185, 23316, 23067, 23080, 23325, 23168, 23009, 23264, 23276, 23009, 23153, 23343, 23083, 23040, 23334, 23204, 22976, 23247, 23323, 22996, 23111, 23384, 23102, 22982, 23351, 23257, 22921, 23224, 23399, 22971, 23040, 23459, 23132, 22872, 23390, 23358, 22804, 23182, 23566, 22903, 22875, 23656, 23198, 22556, 23527, 23676, 22347, 23056, 24339, 22404, 21814, 25710, 22813, 0, -22813, -25710, -21814, -22404, -24339, -23056, -22347, -23676, -23527, -22556, -23198, -23656, -22875, -22903, -23566, -23182, -22804, -23358, -23390, -22872, -23132, -23459, -23040, -22971, -23399, -23224, -22921, -23257, -23351, -22982, -23102, -23384, -23111, -22996, -23323, -23247, -22976, -23204, -23334, -23040, -23083, -23343, -23153, -23009, -23276, -23264, -23009, -23168, -23325, -23080, -23067, -23316, -23185, -23015, -23242, -23279, -23033, -23139, -23322, -23111, -23051, -23296, -23214, -23016, -23214, -23296, -23051, -23111, -23322, -23139, -23033, -23279, -23242, -23015, -23185, -23316, -23067, -23080, -23325, -23168, -23009, -23264, -23276, -23009, -23153, -23343, -23083, -23040, -23334, -23204, -22976, -23247, -23323, -22996, -23111, -23384, -23102, -22982, -23351, -23257, -22921, -23224, -23399, -22971, -23040, -23459, -23132, -22872, -23390, -23358, -22804, -23182, -23566, -22903, -22875, -23656, -23198, -22556, -23527, -23676, -22347, -23056, -24339, -22404, -21814, -25710, -22813},
{0, 20740, 26188, 23600, 21332, 22996, 24346, 23260, 22234, 23113, 23897, 23207, 22541, 23142, 23698, 23189, 22693, 23154, 23588, 23182, 22783, 23159, 23518, 23178, 22842, 23162, 23471, 23175, 22882, 23164, 23437, 23174, 22912, 23166, 23412, 23172, 22934, 23166, 23393, 23172, 22951, 23167, 23379, 23171, 22963, 23168, 23369, 23171, 22973, 23168, 23361, 23170, 22979, 23168, 23355, 23170, 22984, 23169, 23351, 23170, 22987, 23169, 23350, 23169, 22988, 23169, 23350, 23169, 22987, 23170, 23351, 23169, 22984, 23170, 23355, 23168, 22979, 23170, 23361, 23168, 22973, 23171, 23369, 23168, 22963, 23171, 23379, 23167, 22951, 23172, 23393, 23166, 22934, 23172, 23412, 23166, 22912, 23174, 23437, 23164, 22882, 23175, 23471, 23162, 22842, 23178, 23518, 23159, 22783, 23182, 23588, 23154, 22693, 23189, 23698, 23142, 22541, 23207, 23897, 23113, 22234, 23260, 24346, 22996, 21332, 23600, 26188, 20740, 0, -20740, -26188, -23600, -21332, -22996, -24346, -23260, -22234, -23113, -23897, -23207, -22541, -23142, -23698, -23189, -22693, -23154, -23588, -23182, -22783, -23159, -23518, -23178, -22842, -23162, -23471, -23175, -22882, -23164, -23437, -23174, -22912, -23166, -23412, -23172, -22934, -23166, -23393, -23172, -22951, -23167, -23379, -23171, -22963, -23168, -23369, -23171, -22973, -23168, -23361, -23170, -22979, -23168, -23355, -23170, -22984, -23169, -23351, -23170, -22987, -23169, -23350, -23169, -22988, -23169, -23350, -23169, -22987, -23170, -23351, -23169, -22984, -23170, -23355, -23168, -22979, -23170, -23361, -23168, -22973, -23171, -23369, -23168, -22963, -23171, -23379, -23167, -22951, -23172, -23393, -23166, -22934, -23172, -23412, -23166, -22912, -23174, -23437, -23164, -22882, -23175, -23471, -23162, -22842, -23178, -23518, -23159, -22783, -23182, -23588, -23154, -22693, -23189, -23698, -23142, -22541, -23207, -23897, -23113, -22234, -23260, -24346, -22996, -21332, -23600, -26188, -20740},
{0, 18537, 25769, 25284, 22297, 21442, 23141, 24335, 23668, 22428, 22443, 23461, 23886, 23240, 22565, 22838, 23543, 23628, 23042, 22688, 23065, 23552, 23442, 22939, 22806, 23214, 23523, 23294, 22891, 22920, 23313, 23470, 23175, 22882, 23028, 23375, 23401, 23081, 22902, 23127, 23405, 23322, 23012, 22944, 23214, 23408, 23240, 22968, 23003, 23286, 23387, 23160, 22949, 23073, 23339, 23346, 23086, 22953, 23147, 23372, 23289, 23025, 22979, 23221, 23383, 23221, 22979, 23025, 23289, 23372, 23147, 22953, 23086, 23346, 23339, 23073, 22949, 23160, 23387, 23286, 23003, 22968, 23240, 23408, 23214, 22944, 23012, 23322, 23405, 23127, 22902, 23081, 23401, 23375, 23028, 22882, 23175, 23470, 23314, 22920, 22891, 23294, 23523, 23214, 22806, 22939, 23442, 23552, 23065, 22688, 23042, 23628, 23543, 22838, 22565, 23240, 23886, 23461, 22443, 22428, 23668, 24335, 23141, 21442, 22297, 25284, 25769, 18537, 0, -18537, -25769, -25284, -22297, -21442, -23141, -24335, -23668, -22428, -22443, -23461, -23886, -23240, -22565, -22838, -23543, -23628, -23042, -22688, -23065, -23552, -23442, -22939, -22806, -23214, -23523, -23294, -22891, -22920, -23313, -23470, -23175, -22882, -23028, -23375, -23401, -23081, -22902, -23127, -23405, -23322, -23012, -22944, -23214, -23408, -23240, -22968, -23003, -23286, -23387, -23160, -22949, -23073, -23339, -23346, -23086, -22953, -23147, -23372, -23289, -23025, -22979, -23221, -23383, -23221, -22979, -23025, -23289, -23372, -23147, -22953, -23086, -23346, -23339, -23073, -22949, -23160, -23387, -23286, -23003, -22968, -23240, -23408, -23214, -22944, -23012, -23322, -23405, -23127, -22902, -23081, -23401, -23375, -23028, -22882, -23175, -23470, -23313, -22920, -22891, -23294, -23523, -23214, -22806, -22939, -23442, -23552, -23065, -22688, -23042, -23628, -23543, -22838, -22565, -23240, -23886, -23461, -22443, -22428, -23668, -24335, -23141, -21442, -22297, -25284, -25769, -18537},
{0, 16452, 24707, 26100, 24076, 21745, 21551, 23069, 24258, 24059, 22954, 22239, 22636, 23531, 23900, 23438, 22726, 22570, 23085, 23631, 23619, 23114, 22702, 22840, 23328, 23600, 23378, 22934, 22775, 23066, 23451, 23500, 23177, 22856, 22901, 23244, 23485, 23363, 23026, 22860, 23049, 23365, 23449, 23215, 22933, 22925, 23194, 23426, 23363, 23080, 22902, 23031, 23314, 23426, 23246, 22978, 22931, 23156, 23392, 23372, 23120, 22923, 23009, 23277, 23420, 23277, 23009, 22923, 23120, 23372, 23392, 23156, 22931, 22978, 23246, 23426, 23314, 23031, 22902, 23080, 23363, 23426, 23194, 22925, 22933, 23215, 23449, 23365, 23049, 22860, 23026, 23363, 23485, 23244, 22901, 22856, 23177, 23500, 23451, 23066, 22775, 22934, 23378, 23600, 23328, 22840, 22702, 23114, 23619, 23631, 23085, 22570, 22726, 23438, 23900, 23531, 22636, 22239, 22954, 24059, 24258, 23069, 21551, 21745, 24076, 26100, 24707, 16452, 0, -16452, -24707, -26100, -24076, -21745, -21551, -23069, -24258, -24059, -22954, -22239, -22636, -23531, -23900, -23438, -22726, -22570, -23085, -23631, -23619, -23114, -22702, -22840, -23328, -23600, -23378, -22934, -22775, -23066, -23451, -23500, -23177, -22856, -22901, -23244, -23485, -23363, -23026, -22860, -23049, -23365, -23449, -23215, -22933, -22925, -23194, -23426, -23363, -23080, -22902, -23031, -23314, -23426, -23246, -22978, -22931, -23156, -23392, -23372, -23120, -22923, -23009, -23277, -23420, -23277, -23009, -22923, -23120, -23372, -23392, -23156, -22931, -22978, -23246, -23426, -23314, -23031, -22902, -23080, -23363, -23426, -23194, -22925, -22933, -23215, -23449, -23365, -23049, -22860, -23026, -23363, -23485, -23244, -22901, -22856, -23177, -23500, -23451, -23066, -22775, -22934, -23378, -23600, -23328, -22840, -22702, -23114, -23619, -23631, -23085, -22570, -22726, -23438, -23900, -23531, -22636, -22239, -22954, -24059, -24258, -23069, -21551, -21745, -24076, -26100, -24707, -16452},
{0, 14086, 22815, 25991, 25712, 23718, 21809, 21384, 22402, 23730, 24348, 23985, 23053, 22319, 22335, 22990, 23687, 23902, 23534, 22911, 22536, 22689, 23202, 23639, 23677, 23316, 22857, 22670, 22889, 23312, 23595, 23528, 23181, 22836, 22770, 23025, 23380, 23551, 23414, 23085, 22831, 22855, 23129, 23424, 23506, 23319, 23014, 22838, 22932, 23214, 23451, 23459, 23234, 22958, 22854, 23007, 23286, 23467, 23407, 23155, 22914, 22880, 23080, 23350, 23472, 23350, 23080, 22880, 22914, 23155, 23407, 23467, 23286, 23007, 22854, 22958, 23234, 23459, 23451, 23214, 22932, 22838, 23014, 23319, 23506, 23424, 23129, 22855, 22831, 23085, 23414, 23551, 23380, 23025, 22770, 22836, 23181, 23528, 23595, 23312, 22889, 22670, 22857, 23316, 23677, 23639, 23202, 22689, 22536, 22911, 23534, 23902, 23687, 22990, 22335, 22319, 23053, 23985, 24348, 23730, 22402, 21384, 21809, 23718, 25712, 25991, 22815, 14086, 0, -14086, -22815, -25991, -25712, -23718, -21809, -21384, -22402, -23730, -24348, -23985, -23053, -22319, -22335, -22990, -23687, -23902, -23534, -22911, -22536, -22689, -23202, -23639, -23677, -23316, -22857, -22670, -22889, -23312, -23595, -23528, -23181, -22836, -22770, -23025, -23380, -23551, -23414, -23085, -22831, -22855, -23129, -23424, -23506, -23319, -23014, -22838, -22932, -23214, -23451, -23459, -23234, -22958, -22854, -23007, -23286, -23467, -23407, -23155, -22914, -22880, -23080, -23350, -23472, -23350, -23080, -22880, -22914, -23155, -23407, -23467, -23286, -23007, -22854, -22958, -23234, -23459, -23451, -23214, -22932, -22838, -23014, -23319, -23506, -23424, -23129, -22855, -22831, -23085, -23414, -23551, -23380, -23025, -22770, -22836, -23181, -23528, -23595, -23312, -22889, -22670, -22857, -23316, -23677, -23639, -23202, -22689, -22536, -22911, -23534, -23902, -23687, -22990, -22335, -22319, -23053, -23985, -24348, -23730, -22402, -21384, -21809, -23718, -25712, -25991, -22815, -14086},
{0, 12138, 20742, 25046, 26192, 25379, 23599, 21951, 21322, 21858, 22997, 23990, 24359, 24028, 23259, 22514, 22216, 22491, 23115, 23693, 23919, 23707, 23205, 22712, 22512, 22703, 23144, 23564, 23731, 23570, 23188, 22808, 22653, 22804, 23156, 23495, 23632, 23499, 23180, 22862, 22731, 22859, 23161, 23456, 23575, 23458, 23175, 22892, 22775, 22890, 23165, 23434, 23544, 23435, 23172, 22908, 22798, 22907, 23168, 23425, 23530, 23425, 23170, 22912, 22805, 22912, 23170, 23425, 23530, 23425, 23168, 22907, 22798, 22908, 23172, 23435, 23544, 23434, 23165, 22890, 22775, 22892, 23175, 23458, 23575, 23456, 23161, 22859, 22731, 22862, 23180, 23499, 23632, 23495, 23156, 22804, 22653, 22808, 23188, 23570, 23731, 23564, 23144, 22703, 22512, 22712, 23205, 23707, 23919, 23693, 23115, 22491, 22216, 22514, 23259, 24028, 24359, 23990, 22997, 21858, 21322, 21951, 23599, 25379, 26192, 25046, 20742, 12138, 0, -12138, -20742, -25046, -26192, -25379, -23599, -21951, -21322, -21858, -22997, -23990, -24359, -24028, -23259, -22514, -22216, -22491, -23115, -23693, -23919, -23707, -23205, -22712, -22512, -22703, -23144, -23564, -23731, -23570, -23188, -22808, -22653, -22804, -23156, -23495, -23632, -23499, -23180, -22862, -22731, -22859, -23161, -23456, -23575, -23458, -23175, -22892, -22775, -22890, -23165, -23434, -23544, -23435, -23172, -22908, -22798, -22907, -23168, -23425, -23530, -23425, -23170, -22912, -22805, -22912, -23170, -23425, -23530, -23425, -23168, -22907, -22798, -22908, -23172, -23435, -23544, -23434, -23165, -22890, -22775, -22892, -23175, -23458, -23575, -23456, -23161, -22859, -22731, -22862, -23180, -23499, -23632, -23495, -23156, -22804, -22653, -22808, -23188, -23570, -23731, -23564, -23144, -22703, -22512, -22712, -23205, -23707, -23919, -23693, -23115, -22491, -22216, -22514, -23259, -24028, -24359, -23990, -22997, -21858, -21322, -21951, -23599, -25379, -26192, -25046, -20742, -12138},
{0, 10056, 18044, 23105, 25577, 26191, 25557, 24194, 22687, 21616, 21325, 21794, 22698, 23618, 24222, 24355, 24034, 23417, 22753, 22300, 22221, 22515, 23031, 23548, 23876, 23912, 23665, 23239, 22805, 22532, 22521, 22762, 23145, 23514, 23730, 23721, 23501, 23158, 22828, 22640, 22665, 22886, 23208, 23502, 23656, 23619, 23408, 23106, 22832, 22694, 22746, 22963, 23255, 23505, 23621, 23559, 23345, 23062, 22821, 22717, 22794, 23017, 23297, 23524, 23610, 23524, 23297, 23017, 22794, 22717, 22821, 23062, 23345, 23559, 23621, 23505, 23255, 22963, 22746, 22694, 22832, 23106, 23408, 23619, 23656, 23502, 23208, 22886, 22665, 22640, 22828, 23158, 23501, 23721, 23730, 23514, 23145, 22762, 22521, 22532, 22805, 23239, 23665, 23912, 23876, 23548, 23031, 22515, 22221, 22300, 22753, 23417, 24034, 24355, 24222, 23618, 22698, 21794, 21325, 21616, 22687, 24194, 25557, 26191, 25577, 23105, 18044, 10056, 0, -10056, -18044, -23105, -25577, -26191, -25557, -24194, -22687, -21616, -21325, -21794, -22698, -23618, -24222, -24355, -24034, -23417, -22753, -22300, -22221, -22515, -23031, -23548, -23876, -23912, -23665, -23239, -22805, -22532, -22521, -22762, -23145, -23514, -23730, -23721, -23501, -23158, -22828, -22640, -22665, -22886, -23208, -23502, -23656, -23619, -23408, -23106, -22832, -22694, -22746, -22963, -23255, -23505, -23621, -23559, -23345, -23062, -22821, -22717, -22794, -23017, -23297, -23524, -23610, -23524, -23297, -23017, -22794, -22717, -22821, -23062, -23345, -23559, -23621, -23505, -23255, -22963, -22746, -22694, -22832, -23106, -23408, -23619, -23656, -23502, -23208, -22886, -22665, -22640, -22828, -23158, -23501, -23721, -23730, -23514, -23145, -22762, -22521, -22532, -22805, -23239, -23665, -23912, -23876, -23548, -23031, -22515, -22221, -22300, -22753, -23417, -24034, -24355, -24222, -23618, -22698, -21794, -21325, -21616, -22687, -24194, -25557, -26191, -25577, -23105, -18044, -10056},
{0, 8602, 15888, 21132, 24325, 25861, 26183, 25641, 24545, 23242, 22105, 21429, 21346, 21788, 22547, 23360, 24004, 24342, 24327, 24001, 23471, 22890, 22423, 22198, 22262, 22577, 23031, 23486, 23820, 23953, 23863, 23586, 23202, 22821, 22551, 22467, 22585, 22862, 23212, 23532, 23738, 23778, 23648, 23386, 23067, 22781, 22611, 22603, 22756, 23023, 23322, 23570, 23700, 23679, 23515, 23254, 22968, 22740, 22635, 22684, 22872, 23142, 23415, 23615, 23689, 23615, 23415, 23142, 22872, 22684, 22635, 22740, 22968, 23254, 23515, 23679, 23700, 23570, 23322, 23023, 22756, 22603, 22611, 22781, 23067, 23386, 23648, 23778, 23738, 23532, 23212, 22862, 22585, 22467, 22551, 22821, 23202, 23586, 23863, 23953, 23820, 23486, 23031, 22577, 22262, 22198, 22423, 22890, 23471, 24001, 24327, 24342, 24005, 23360, 22547, 21788, 21346, 21429, 22105, 23242, 24545, 25641, 26183, 25861, 24325, 21132, 15888, 8602, 0, -8602, -15888, -21132, -24325, -25861, -26183, -25641, -24545, -23242, -22105, -21429, -21346, -21788, -22547, -23360, -24004, -24342, -24327, -24001, -23471, -22890, -22423, -22198, -22262, -22577, -23031, -23486, -23820, -23953, -23863, -23586, -23202, -22821, -22551, -22467, -22585, -22862, -23212, -23532, -23738, -23778, -23648, -23386, -23067, -22781, -22611, -22603, -22756, -23023, -23322, -23570, -23700, -23679, -23515, -23254, -22968, -22740, -22635, -22684, -22872, -23142, -23415, -23615, -23689, -23615, -23415, -23142, -22872, -22684, -22635, -22740, -22968, -23254, -23515, -23679, -23700, -23570, -23322, -23023, -22756, -22603, -22611, -22781, -23067, -23386, -23648, -23778, -23738, -23532, -23212, -22862, -22585, -22467, -22551, -22821, -23202, -23586, -23863, -23953, -23820, -23486, -23031, -22577, -22262, -22198, -22423, -22890, -23471, -24001, -24327, -24342, -24004, -23360, -22547, -21788, -21346, -21429, -22105, -23242, -24545, -25641, -26183, -25861, -24325, -21132, -15888, -8602},
{0, 7858, 14705, 19917, 23382, 25340, 26137, 26072, 25385, 24313, 23125, 22101, 21462, 21312, 21621, 22248, 23000, 23689, 24174, 24380, 24296, 23964, 23472, 22936, 22485, 22219, 22194, 22400, 22770, 23206, 23602, 23873, 23968, 23876, 23625, 23276, 22911, 22616, 22460, 22478, 22657, 22950, 23281, 23572, 23759, 23805, 23702, 23477, 23182, 22886, 22660, 22557, 22601, 22780, 23046, 23334, 23578, 23722, 23736, 23617, 23393, 23115, 22847, 22654, 22584, 22654, 22847, 23115, 23393, 23617, 23736, 23722, 23578, 23334, 23046, 22780, 22601, 22557, 22660, 22886, 23182, 23477, 23702, 23805, 23759, 23572, 23281, 22950, 22657, 22478, 22460, 22616, 22911, 23276, 23625, 23876, 23968, 23873, 23602, 23206, 22770, 22400, 22194, 22219, 22485, 22936, 23472, 23964, 24296, 24380, 24174, 23689, 23000, 22248, 21621, 21312, 21462, 22101, 23125, 24313, 25385, 26072, 26137, 25340, 23382, 19917, 14705, 7858, 0, -7858, -14705, -19917, -23382, -25340, -26137, -26072, -25385, -24313, -23125, -22101, -21462, -21312, -21621, -22248, -23000, -23689, -24174, -24380, -24296, -23964, -23472, -22936, -22485, -22219, -22194, -22400, -22770, -23206, -23602, -23873, -23968, -23876, -23625, -23276, -22911, -22616, -22460, -22478, -22657, -22950, -23281, -23572, -23759, -23805, -23702, -23477, -23182, -22886, -22660, -22557, -22601, -22780, -23046, -23334, -23578, -23722, -23736, -23617, -23393, -23115, -22847, -22654, -22584, -22654, -22847, -23115, -23393, -23617, -23736, -23722, -23578, -23334, -23046, -22780, -22601, -22557, -22660, -22886, -23182, -23477, -23702, -23805, -23759, -23572, -23281, -22950, -22657, -22478, -22460, -22616, -22911, -23276, -23625, -23876, -23968, -23873, -23602, -23206, -22770, -22400, -22194, -22219, -22485, -22936, -23472, -23964, -24296, -24380, -24174, -23689, -23000, -22248, -21621, -21312, -21462, -22101, -23125, -24313, -25385, -26072, -26137, -25340, -23382, -19917, -14705, -7858},
{0, 6338, 12139, 17004, 20748, 23386, 25058, 25943, 26207, 25984, 25390, 24547, 23593, 22673, 21924, 21444, 21283, 21432, 21832, 22390, 23003, 23575, 24029, 24315, 24412, 24320, 24065, 23689, 23252, 22819, 22456, 22217, 22135, 22215, 22436, 22757, 23123, 23476, 23765, 23953, 24018, 23954, 23776, 23510, 23196, 22882, 22616, 22439, 22377, 22438, 22610, 22863, 23155, 23442, 23681, 23838, 23893, 23838, 23684, 23451, 23174, 22894, 22655, 22494, 22437, 22494, 22655, 22894, 23174, 23451, 23684, 23838, 23893, 23838, 23681, 23442, 23155, 22863, 22610, 22438, 22377, 22439, 22616, 22882, 23196, 23510, 23776, 23954, 24018, 23953, 23765, 23476, 23123, 22757, 22436, 22215, 22135, 22217, 22456, 22819, 23252, 23689, 24065, 24320, 24412, 24315, 24029, 23575, 23003, 22390, 21832, 21432, 21283, 21444, 21924, 22673, 23593, 24547, 25390, 25984, 26207, 25943, 25058, 23386, 20748, 17004, 12139, 6338, 0, -6338, -12139, -17004, -20748, -23386, -25058, -25943, -26207, -25984, -25390, -24547, -23593, -22673, -21924, -21444, -21283, -21432, -21832, -22390, -23003, -23575, -24029, -24315, -24412, -24320, -24065, -23689, -23252, -22819, -22456, -22217, -22135, -22215, -22436, -22757, -23123, -23476, -23765, -23953, -24018, -23954, -23776, -23510, -23196, -22882, -22616, -22439, -22377, -22438, -22610, -22863, -23155, -23442, -23681, -23838, -23893, -23838, -23684, -23451, -23174, -22894, -22655, -22494, -22437, -22494, -22655, -22894, -23174, -23451, -23684, -23838, -23893, -23838, -23681, -23442, -23155, -22863, -22610, -22438, -22377, -22439, -22616, -22882, -23196, -23510, -23776, -23954, -24018, -23953, -23765, -23476, -23123, -22757, -22436, -22215, -22135, -22217, -22456, -22819, -23252, -23689, -24065, -24320, -24412, -24315, -24029, -23575, -23003, -22390, -21832, -21432, -21283, -21444, -21924, -22673, -23593, -24547, -25390, -25984, -26207, -25943, -25058, -23386, -20748, -17004, -12139, -6338},
{0, 5565, 10765, 15307, 19021, 21864, 23892, 25213, 25949, 26209, 26085, 25653, 24994, 24195, 23351, 22560, 21912, 21473, 21277, 21327, 21593, 22019, 22539, 23083, 23586, 23997, 24281, 24420, 24410, 24261, 23994, 23643, 23249, 22857, 22514, 22259, 22120, 22111, 22227, 22449, 22746, 23079, 23408, 23695, 23912, 24036, 24059, 23979, 23807, 23564, 23276, 22977, 22702, 22484, 22348, 22311, 22377, 22535, 22766, 23040, 23325, 23586, 23796, 23931, 23978, 23931, 23796, 23586, 23325, 23040, 22766, 22535, 22377, 22311, 22348, 22484, 22702, 22977, 23276, 23564, 23807, 23979, 24059, 24036, 23912, 23695, 23408, 23079, 22746, 22449, 22227, 22111, 22120, 22259, 22514, 22857, 23249, 23643, 23994, 24261, 24410, 24420, 24281, 23997, 23586, 23083, 22539, 22019, 21593, 21327, 21277, 21473, 21912, 22560, 23351, 24195, 24994, 25653, 26085, 26209, 25949, 25213, 23892, 21864, 19021, 15307, 10765, 5565, 0, -5565, -10765, -15307, -19021, -21864, -23892, -25213, -25949, -26209, -26085, -25653, -24994, -24195, -23351, -22560, -21912, -21473, -21277, -21327, -21593, -22019, -22539, -23083, -23586, -23997, -24281, -24420, -24410, -24261, -23994, -23643, -23249, -22857, -22514, -22259, -22120, -22111, -22227, -22449, -22746, -23079, -23408, -23695, -23912, -24036, -24059, -23979, -23807, -23564, -23276, -22977, -22702, -22484, -22348, -22311, -22377, -22535, -22766, -23040, -23325, -23586, -23796, -23931, -23978, -23931, -23796, -23586, -23325, -23040, -22766, -22535, -22377, -22311, -22348, -22484, -22702, -22977, -23276, -23564, -23807, -23979, -24059, -24036, -23912, -23695, -23408, -23079, -22746, -22449, -22227, -22111, -22120, -22259, -22514, -22857, -23249, -23643, -23994, -24261, -24410, -24420, -24281, -23997, -23586, -23083, -22539, -22019, -21593, -21327, -21277, -21473, -21912, -22560, -23351, -24195, -24994, -25653, -26085, -26209, -25949, -25213, -23892, -21864, -19021, -15307, -10765, -5565},
{0, 4785, 9336, 13456, 17008, 19925, 22207, 23898, 25071, 25801, 26159, 26208, 25998, 25579, 24999, 24315, 23587, 22877, 22246, 21743, 21406, 21252, 21281, 21476, 21804, 22225, 22694, 23166, 23602, 23969, 24244, 24413, 24470, 24415, 24259, 24016, 23708, 23362, 23007, 22673, 22389, 22180, 22063, 22046, 22128, 22299, 22540, 22827, 23135, 23435, 23703, 23919, 24066, 24135, 24121, 24027, 23861, 23635, 23369, 23084, 22805, 22556, 22360, 22234, 22191, 22234, 22360, 22556, 22805, 23084, 23369, 23635, 23861, 24027, 24121, 24135, 24066, 23919, 23703, 23435, 23135, 22827, 22540, 22299, 22128, 22046, 22063, 22180, 22389, 22673, 23007, 23362, 23708, 24016, 24259, 24415, 24470, 24413, 24244, 23969, 23602, 23166, 22694, 22225, 21804, 21476, 21281, 21252, 21406, 21743, 22246, 22877, 23587, 24315, 24999, 25579, 25998, 26208, 26159, 25801, 25071, 23898, 22207, 19925, 17008, 13456, 9336, 4785, 0, -4785, -9336, -13456, -17008, -19925, -22207, -23898, -25071, -25801, -26159, -26208, -25998, -25579, -24999, -24315, -23587, -22877, -22246, -21743, -21406, -21252, -21281, -21476, -21804, -22225, -22694, -23166, -23602, -23969, -24244, -24413, -24470, -24415, -24259, -24016, -23708, -23362, -23007, -22673, -22389, -22180, -22063, -22046, -22128, -22299, -22540, -22827, -23135, -23435, -23703, -23919, -24066, -24135, -24121, -24027, -23861, -23635, -23369, -23084, -22805, -22556, -22360, -22234, -22191, -22234, -22360, -22556, -22805, -23084, -23369, -23635, -23861, -24027, -24121, -24135, -24066, -23919, -23703, -23435, -23135, -22827, -22540, -22299, -22128, -22046, -22063, -22180, -22389, -22673, -23007, -23362, -23708, -24016, -24259, -24415, -24470, -24413, -24244, -23969, -23602, -23166, -22694, -22225, -21804, -21476, -21281, -21252, -21406, -21743, -22246, -22877, -23587, -24315, -24999, -25579, -25998, -26208, -26159, -25801, -25071, -23898, -22207, -19925, -17008, -13456, -9336, -4785},
{0, 3997, 7859, 11461, 14710, 17542, 19931, 21877, 23406, 24556, 25373, 25899, 26175, 26235, 26109, 25825, 25412, 24898, 24316, 23703, 23095, 22528, 22034, 21641, 21367, 21223, 21210, 21320, 21538, 21843, 22209, 22610, 23019, 23412, 23766, 24066, 24297, 24451, 24525, 24517, 24431, 24273, 24054, 23786, 23485, 23168, 22855, 22564, 22313, 22118, 21990, 21936, 21959, 22056, 22219, 22438, 22696, 22978, 23266, 23543, 23792, 24001, 24157, 24255, 24288, 24255, 24157, 24001, 23792, 23543, 23266, 22978, 22696, 22438, 22219, 22056, 21959, 21936, 21990, 22118, 22313, 22564, 22855, 23168, 23485, 23786, 24054, 24273, 24431, 24517, 24525, 24451, 24297, 24066, 23766, 23412, 23019, 22610, 22209, 21843, 21538, 21320, 21210, 21223, 21367, 21641, 22034, 22528, 23095, 23703, 24316, 24898, 25412, 25825, 26109, 26235, 26175, 25899, 25373, 24556, 23406, 21877, 19931, 17542, 14710, 11461, 7859, 3997, 0, -3997, -7859, -11461, -14710, -17542, -19931, -21877, -23406, -24556, -25373, -25899, -26175, -26235, -26109, -25825, -25412, -24898, -24316, -23703, -23095, -22528, -22034, -21641, -21367, -21223, -21210, -21320, -21538, -21843, -22209, -22610, -23019, -23412, -23766, -24066, -24297, -24451, -24525, -24517, -24431, -24273, -24054, -23786, -23485, -23168, -22855, -22564, -22313, -22118, -21990, -21936, -21959, -22056, -22219, -22438, -22696, -22978, -23266, -23543, -23792, -24001, -24157, -24255, -24288, -24255, -24157, -24001, -23792, -23543, -23266, -22978, -22696, -22438, -22219, -22056, -21959, -21936, -21990, -22118, -22313, -22564, -22855, -23168, -23485, -23786, -24054, -24273, -24431, -24517, -24525, -24451, -24297, -24066, -23766, -23412, -23019, -22610, -22209, -21843, -21538, -21320, -21210, -21223, -21367, -21641, -22034, -22528, -23095, -23703, -24316, -24898, -25412, -25825, -26109, -26235, -26175, -25899, -25373, -24556, -23406, -21877, -19931, -17542, -14710, -11461, -7859, -3997},
{0, 3204, 6339, 9338, 12144, 14714, 17017, 19038, 20773, 22230, 23424, 24375, 25107, 25642, 26001, 26204, 26268, 26209, 26040, 25776, 25432, 25021, 24561, 24071, 23567, 23071, 22601, 22174, 21805, 21508, 21292, 21161, 21118, 21160, 21281, 21472, 21722, 22018, 22346, 22690, 23037, 23374, 23688, 23969, 24209, 24402, 24542, 24627, 24655, 24627, 24545, 24412, 24233, 24014, 23764, 23490, 23203, 22915, 22635, 22375, 22146, 21957, 21816, 21729, 21699, 21729, 21816, 21957, 22146, 22375, 22635, 22915, 23203, 23490, 23764, 24014, 24233, 24412, 24545, 24627, 24655, 24627, 24542, 24402, 24209, 23969, 23688, 23374, 23037, 22690, 22346, 22018, 21722, 21472, 21281, 21160, 21118, 21161, 21292, 21508, 21805, 22174, 22601, 23071, 23567, 24071, 24561, 25021, 25432, 25776, 26040, 26209, 26268, 26204, 26001, 25642, 25107, 24375, 23424, 22230, 20773, 19038, 17017, 14714, 12144, 9338, 6339, 3204, 0, -3204, -6339, -9338, -12144, -14714, -17017, -19038, -20773, -22230, -23424, -24375, -25107, -25642, -26001, -26204, -26268, -26209, -26040, -25776, -25432, -25021, -24561, -24071, -23567, -23071, -22601, -22174, -21805, -21508, -21292, -21161, -21118, -21160, -21281, -21472, -21722, -22018, -22346, -22690, -23037, -23374, -23688, -23969, -24209, -24402, -24542, -24627, -24655, -24627, -24545, -24412, -24233, -24014, -23764, -23490, -23203, -22915, -22635, -22375, -22146, -21957, -21816, -21729, -21699, -21729, -21816, -21957, -22146, -22375, -22635, -22915, -23203, -23490, -23764, -24014, -24233, -24412, -24545, -24627, -24655, -24627, -24542, -24402, -24209, -23969, -23688, -23374, -23037, -22690, -22346, -22018, -21722, -21472, -21281, -21160, -21118, -21161, -21292, -21508, -21805, -22174, -22601, -23071, -23567, -24071, -24561, -25021, -25432, -25776, -26040, -26209, -26268, -26204, -26001, -25642, -25107, -24375, -23424, -22230, -20773, -19038, -17017, -14714, -12144, -9338, -6339, -3204},
{0, 3204, 6339, 9338, 12144, 14714, 17017, 19038, 20773, 22230, 23424, 24375, 25107, 25642, 26001, 26204, 26268, 26209, 26040, 25776, 25432, 25021, 24561, 24071, 23567, 23071, 22601, 22174, 21805, 21508, 21292, 21161, 21118, 21160, 21281, 21472, 21722, 22018, 22346, 22690, 23037, 23374, 23688, 23969, 24209, 24402, 24542, 24627, 24655, 24627, 24545, 24412, 24233, 24014, 23764, 23490, 23203, 22915, 22635, 22375, 22146, 21957, 21816, 21729, 21699, 21729, 21816, 21957, 22146, 22375, 22635, 22915, 23203, 23490, 23764, 24014, 24233, 24412, 24545, 24627, 24655, 24627, 24542, 24402, 24209, 23969, 23688, 23374, 23037, 22690, 22346, 22018, 21722, 21472, 21281, 21160, 21118, 21161, 21292, 21508, 21805, 22174, 22601, 23071, 23567, 24071, 24561, 25021, 25432, 25776, 26040, 26209, 26268, 26204, 26001, 25642, 25107, 24375, 23424, 22230, 20773, 19038, 17017, 14714, 12144, 9338, 6339, 3204, 0, -3204, -6339, -9338, -12144, -14714, -17017, -19038, -20773, -22230, -23424, -24375, -25107, -25642, -26001, -26204, -26268, -26209, -26040, -25776, -25432, -25021, -24561, -24071, -23567, -23071, -22601, -22174, -21805, -21508, -21292, -21161, -21118, -21160, -21281, -21472, -21722, -22018, -22346, -22690, -23037, -23374, -23688, -23969, -24209, -24402, -24542, -24627, -24655, -24627, -24545, -24412, -24233, -24014, -23764, -23490, -23203, -22915, -22635, -22375, -22146, -21957, -21816, -21729, -21699, -21729, -21816, -21957, -22146, -22375, -22635, -22915, -23203, -23490, -23764, -24014, -24233, -24412, -24545, -24627, -24655, -24627, -24542, -24402, -24209, -23969, -23688, -23374, -23037, -22690, -22346, -22018, -21722, -21472, -21281, -21160, -21118, -21161, -21292, -21508, -21805, -22174, -22601, -23071, -23567, -24071, -24561, -25021, -25432, -25776, -26040, -26209, -26268, -26204, -26001, -25642, -25107, -24375, -23424, -22230, -20773, -19038, -17017, -14714, -12144, -9338, -6339, -3204},
{0, 2407, 4785, 7105, 9340, 11467, 13467, 15325, 17031, 18577, 19964, 21190, 22263, 23187, 23971, 24625, 25158, 25580, 25900, 26126, 26266, 26327, 26316, 26238, 26099, 25905, 25661, 25374, 25051, 24697, 24322, 23932, 23537, 23144, 22762, 22399, 22064, 21762, 21501, 21284, 21117, 21002, 20940, 20931, 20974, 21067, 21205, 21385, 21600, 21845, 22114, 22399, 22694, 22991, 23285, 23570, 23839, 24088, 24312, 24508, 24673, 24803, 24897, 24955, 24974, 24955, 24897, 24803, 24673, 24508, 24312, 24088, 23839, 23570, 23285, 22991, 22694, 22399, 22114, 21845, 21600, 21385, 21205, 21067, 20974, 20931, 20940, 21002, 21117, 21284, 21501, 21762, 22064, 22399, 22762, 23144, 23537, 23932, 24322, 24697, 25051, 25374, 25661, 25905, 26099, 26238, 26316, 26327, 26266, 26126, 25900, 25580, 25158, 24625, 23971, 23187, 22263, 21190, 19964, 18577, 17031, 15325, 13467, 11467, 9340, 7105, 4785, 2407, 0, -2407, -4785, -7105, -9340, -11467, -13467, -15325, -17031, -18577, -19964, -21190, -22263, -23187, -23971, -24625, -25158, -25580, -25900, -26126, -26266, -26327, -26316, -26238, -26099, -25905, -25661, -25374, -25051, -24697, -24322, -23932, -23537, -23144, -22762, -22399, -22064, -21762, -21501, -21284, -21117, -21002, -20940, -20931, -20974, -21067, -21205, -21385, -21600, -21845, -22114, -22399, -22694, -22991, -23285, -23570, -23839, -24088, -24312, -24508, -24673, -24803, -24897, -24955, -24974, -24955, -24897, -24803, -24673, -24508, -24312, -24088, -23839, -23570, -23285, -22991, -22694, -22399, -22114, -21845, -21600, -21385, -21205, -21067, -20974, -20931, -20940, -21002, -21117, -21284, -21501, -21762, -22064, -22399, -22762, -23144, -23537, -23932, -24322, -24697, -25051, -25374, -25661, -25905, -26099, -26238, -26316, -26327, -26266, -26126, -25900, -25580, -25158, -24625, -23971, -23187, -22263, -21190, -19964, -18577, -17031, -15325, -13467, -11467, -9340, -7105, -4785, -2407},
{0, 2407, 4785, 7105, 9340, 11467, 13467, 15325, 17031, 18577, 19964, 21190, 22263, 23187, 23971, 24625, 25158, 25580, 25900, 26126, 26266, 26327, 26316, 26238, 26099, 25905, 25661, 25374, 25051, 24697, 24322, 23932, 23537, 23144, 22762, 22399, 22064, 21762, 21501, 21284, 21117, 21002, 20940, 20931, 20974, 21067, 21205, 21385, 21600, 21845, 22114, 22399, 22694, 22991, 23285, 23570, 23839, 24088, 24312, 24508, 24673, 24803, 24897, 24955, 24974, 24955, 24897, 24803, 24673, 24508, 24312, 24088, 23839, 23570, 23285, 22991, 22694, 22399, 22114, 21845, 21600, 21385, 21205, 21067, 20974, 20931, 20940, 21002, 21117, 21284, 21501, 21762, 22064, 22399, 22762, 23144, 23537, 23932, 24322, 24697, 25051, 25374, 25661, 25905, 26099, 26238, 26316, 26327, 26266, 26126, 25900, 25580, 25158, 24625, 23971, 23187, 22263, 21190, 19964, 18577, 17031, 15325, 13467, 11467, 9340, 7105, 4785, 2407, 0, -2407, -4785, -7105, -9340, -11467, -13467, -15325, -17031, -18577, -19964, -21190, -22263, -23187, -23971, -24625, -25158, -25580, -25900, -26126, -26266, -26327, -26316, -26238, -26099, -25905, -25661, -25374, -25051, -24697, -24322, -23932, -23537, -23144, -22762, -22399, -22064, -21762, -21501, -21284, -21117, -21002, -20940, -20931, -20974, -21067, -21205, -21385, -21600, -21845, -22114, -22399, -22694, -22991, -23285, -23570, -23839, -24088, -24312, -24508, -24673, -24803, -24897, -24955, -24974, -24955, -24897, -24803, -24673, -24508, -24312, -24088, -23839, -23570, -23285, -22991, -22694, -22399, -22114, -21845, -21600, -21385, -21205, -21067, -20974, -20931, -20940, -21002, -21117, -21284, -21501, -21762, -22064, -22399, -22762, -23144, -23537, -23932, -24322, -24697, -25051, -25374, -25661, -25905, -26099, -26238, -26316, -26327, -26266, -26126, -25900, -25580, -25158, -24625, -23971, -23187, -22263, -21190, -19964, -18577, -17031, -15325, -13467, -11467, -9340, -7105, -4785, -2407},
{0, 1606, 3205, 4786, 6342, 7864, 9346, 10780, 12162, 13485, 14747, 15942, 17069, 18126, 19113, 20028, 20873, 21649, 22356, 22998, 23576, 24094, 24552, 24956, 25306, 25607, 25860, 26068, 26234, 26360, 26447, 26498, 26515, 26499, 26451, 26374, 26269, 26137, 25979, 25798, 25595, 25372, 25130, 24872, 24600, 24317, 24024, 23724, 23421, 23116, 22814, 22516, 22226, 21947, 21681, 21431, 21199, 20989, 20802, 20641, 20506, 20400, 20323, 20277, 20262, 20277, 20323, 20400, 20506, 20641, 20802, 20989, 21199, 21431, 21681, 21947, 22226, 22516, 22814, 23116, 23421, 23724, 24024, 24317, 24600, 24872, 25130, 25372, 25595, 25798, 25979, 26137, 26269, 26374, 26451, 26499, 26515, 26498, 26447, 26360, 26234, 26068, 25860, 25607, 25306, 24956, 24552, 24094, 23576, 22998, 22356, 21649, 20873, 20028, 19113, 18126, 17069, 15942, 14747, 13485, 12162, 10780, 9346, 7864, 6342, 4786, 3205, 1606, 0, -1606, -3205, -4786, -6342, -7864, -9346, -10780, -12162, -13485, -14747, -15942, -17069, -18126, -19113, -20028, -20873, -21649, -22356, -22998, -23576, -24094, -24552, -24956, -25306, -25607, -25860, -26068, -26234, -26360, -26447, -26498, -26515, -26499, -26451, -26374, -26269, -26137, -25979, -25798, -25595, -25372, -25130, -24872, -24600, -24317, -24024, -23724, -23421, -23116, -22814, -22516, -22226, -21947, -21681, -21431, -21199, -20989, -20802, -20641, -20506, -20400, -20323, -20277, -20262, -20277, -20323, -20400, -20506, -20641, -20802, -20989, -21199, -21431, -21681, -21947, -22226, -22516, -22814, -23116, -23421, -23724, -24024, -24317, -24600, -24872, -25130, -25372, -25595, -25798, -25979, -26137, -26269, -26374, -26451, -26499, -26515, -26498, -26447, -26360, -26234, -26068, -25860, -25607, -25306, -24956, -24552, -24094, -23576, -22998, -22356, -21649, -20873, -20028, -19113, -18126, -17069, -15942, -14747, -13485, -12162, -10780, -9346, -7864, -6342, -4786, -3205, -1606},
{0, 1606, 3205, 4786, 6342, 7864, 9346, 10780, 12162, 13485, 14747, 15942, 17069, 18126, 19113, 20028, 20873, 21649, 22356, 22998, 23576, 24094, 24552, 24956, 25306, 25607, 25860, 26068, 26234, 26360, 26447, 26498, 26515, 26499, 26451, 26374, 26269, 26137, 25979, 25798, 25595, 25372, 25130, 24872, 24600, 24317, 24024, 23724, 23421, 23116, 22814, 22516, 22226, 21947, 21681, 21431, 21199, 20989, 20802, 20641, 20506, 20400, 20323, 20277, 20262, 20277, 20323, 20400, 20506, 20641, 20802, 20989, 21199, 21431, 21681, 21947, 22226, 22516, 22814, 23116, 23421, 23724, 24024, 24317, 24600, 24872, 25130, 25372, 25595, 25798, 25979, 26137, 26269, 26374, 26451, 26499, 26515, 26498, 26447, 26360, 26234, 26068, 25860, 25607, 25306, 24956, 24552, 24094, 23576, 22998, 22356, 21649, 20873, 20028, 19113, 18126, 17069, 15942, 14747, 13485, 12162, 10780, 9346, 7864, 6342, 4786, 3205, 1606, 0, -1606, -3205, -4786, -6342, -7864, -9346, -10780, -12162, -13485, -14747, -15942, -17069, -18126, -19113, -20028, -20873, -21649, -22356, -22998, -23576, -24094, -24552, -24956, -25306, -25607, -25860, -26068, -26234, -26360, -26447, -26498, -26515, -26499, -26451, -26374, -26269, -26137, -25979, -25798, -25595, -25372, -25130, -24872, -24600, -24317, -24024, -23724, -23421, -23116, -22814, -22516, -22226, -21947, -21681, -21431, -21199, -20989, -20802, -20641, -20506, -20400, -20323, -20277, -20262, -20277, -20323, -20400, -20506, -20641, -20802, -20989, -21199, -21431, -21681, -21947, -22226, -22516, -22814, -23116, -23421, -23724, -24024, -24317, -24600, -24872, -25130, -25372, -25595, -25798, -25979, -26137, -26269, -26374, -26451, -26499, -26515, -26498, -26447, -26360, -26234, -26068, -25860, -25607, -25306, -24956, -24552, -24094, -23576, -22998, -22356, -21649, -20873, -20028, -19113, -18126, -17069, -15942, -14747, -13485, -12162, -10780, -9346, -7864, -6342, -4786, -3205, -1606},
{0, 1606, 3205, 4786, 6342, 7864, 9346, 10780, 12162, 13485, 14747, 15942, 17069, 18126, 19113, 20028, 20873, 21649, 22356, 22998, 23576, 24094, 24552, 24956, 25306, 25607, 25860, 26068, 26234, 26360, 26447, 26498, 26515, 26499, 26451, 26374, 26269, 26137, 25979, 25798, 25595, 25372, 25130, 24872, 24600, 24317, 24024, 23724, 23421, 23116, 22814, 22516, 22226, 21947, 21681, 21431, 21199, 20989, 20802, 20641, 20506, 20400, 20323, 20277, 20262, 20277, 20323, 20400, 20506, 20641, 20802, 20989, 21199, 21431, 21681, 21947, 22226, 22516, 22814, 23116, 23421, 23724, 24024, 24317, 24600, 24872, 25130, 25372, 25595, 25798, 25979, 26137, 26269, 26374, 26451, 26499, 26515, 26498, 26447, 26360, 26234, 26068, 25860, 25607, 25306, 24956, 24552, 24094, 23576, 22998, 22356, 21649, 20873, 20028, 19113, 18126, 17069, 15942, 14747, 13485, 12162, 10780, 9346, 7864, 6342, 4786, 3205, 1606, 0, -1606, -3205, -4786, -6342, -7864, -9346, -10780, -12162, -13485, -14747, -15942, -17069, -18126, -19113, -20028, -20873, -21649, -22356, -22998, -23576, -24094, -24552, -24956, -25306, -25607, -25860, -26068, -26234, -26360, -26447, -26498, -26515, -26499, -26451, -26374, -26269, -26137, -25979, -25798, -25595, -25372, -25130, -24872, -24600, -24317, -24024, -23724, -23421, -23116, -22814, -22516, -22226, -21947, -21681, -21431, -21199, -20989, -20802, -20641, -20506, -20400, -20323, -20277, -20262, -20277, -20323, -20400, -20506, -20641, -20802, -20989, -21199, -21431, -21681, -21947, -22226, -22516, -22814, -23116, -23421, -23724, -24024, -24317, -24600, -24872, -25130, -25372, -25595, -25798, -25979, -26137, -26269, -26374, -26451, -26499, -26515, -26498, -26447, -26360, -26234, -26068, -25860, -25607, -25306, -24956, -24552, -24094, -23576, -22998, -22356, -21649, -20873, -20028, -19113, -18126, -17069, -15942, -14747, -13485, -12162, -10780, -9346, -7864, -6342, -4786, -3205, -1606}
};
And an example how to use it, when you have a midiNote:
Code:
float freq = (pow(2.0, (midiNote - 69.0) / 12.0) * 440.0); //convert midinote to freq.
int waveTable = midiNote / 3; //uses array 0 for midinote 0-2, array 1 for midinote 3-5, array 2 for midinote 6-8 and so on.
oscillator.arbitraryWaveform(squareTable[waveTable], 172.0); //172 is just a dummy number
oscillator.begin(WAVEFORM_ARBITRARY);
oscillator.frequency(freq);