by andete. Original documents available at: https://github.com/andete/ym2413/tree/master/results

<< YM2413 Reverse Engineering Notes 2015-03-27 | YM2413 Reverse Engineering Notes | YM2413 Reverse Engineering Notes 2015-11-28 >>

In my last post I mentioned some ideas for future tests that require knowing the exact content of the internal YM2413 sine and exponential tables. In this post I'll try to figure out their content.

This post is heavily inspired by the "OPLx decapsulated" article written by Matthew Gambrell and Olli Niemitalo:

https://docs.google.com/document/d/18IGx18NQY_Q1PJVZ-bHywao9bhsDoAqoIn1rIm42nwo/edit

That article gives the content of the tables for OPL2 and OPL3. Since our chip (YM2413 or OPLL) is derived from OPL2 there is a good chance the tables are the same. On the other hand many other internal calculations are done with less precision in OPLL compared to OPL2/3, so also the tables may store values with less precision.

Die shots

Take a look at these pictures:

  log(sin())exp()
OPLL
OPL3

These images are regions taken from

(I rotated the OPL3 pictures by 180 degrees to match the orientation of the OPLL pictures.)

These pictures show die-shots of the OPLL (1st row) and OPL3 (2nd row) sin-table (1st column) and exp-table (2nd column). Notice how the structure of the corresponding tables is almost identical between OPLL and OPL3.

(I'm not 100% sure about this paragraph.) The individual 0 and 1 bits in the ROM can be seen as two different colors for the 'dots' in the middle of each image (though the image is not always very clear, sometimes the colors are so close that it's hard to decide between a 0 or a 1 bit). When you compare the corresponding tables between OPLL and OPL3, the pattern of 0 and 1 bits seems to match (at least in those regions where the picture is clear enough).

Combined (same structure, same 0/1-pattern) these items strongly suggest the ROMS are indeed identical between OPLL, OPL2 and OPL3.

Both the sine (actually logarithm-of-sine) and exponential tables have 256 entries. The sine table only stores the 1st quadrant of the sine. The log-sin values go from 0 to 2137 (so 12 bits per entry). The exp table stores values between 0 and 1018 (so 10 bits).

The above paragraph suggests the sin and exp table respectively contain 12x256=3072 bits and 10*256=2560 bits. But the above article explains the content of the tables is actually compressed (every 2nd entry stored as the difference with the previous one). Based on the structure of the ROM I'm *guessing* there's also a second form of compression: some of the decoders seem incomplete, so some of the horizontal rows seem to be shared between different entries (very vague description because I don't fully understand it yet, though also not very important for the rest of this post).

Table lookup algorithm

Now that we (probably) know the content of the tables, let's try to use them to predict the output of a simple waveform. Though before we can do that we first need to know the algorithm to go from these table-values to the actual sound output. For this the following forum post by 'carbon14' was useful, it shows code for the exp-table lookup:

http://forums.submarine.org.uk/phpBB/viewtopic.php?f=9&t=15&sid=5769a3d72fb8a77b00b8e39b953c8423#p22

The sin-table lookup was easy enough to figure out myself.

It's probably easiest to explain an algorithm via code, so here it is:

    int logsinTable[256];
    int expTable[256];

    void initTables() {
        for (int i = 0; i < 256; ++i) {
            logsinTable[i] = round(-log2(sin((i + 0.5) * M_PI_2 / 256.0)) * 256.0);
            expTable[i] = round(exp2(i / 256.0) * 1024.0) - 1024;
        }
    }

    int lookupSin(int val) {
        bool sign   = val & 512;
        bool mirror = val & 256;
        val &= 255;
        int result = logsinTable[mirror ? val ^ 255 : val];
        if (sign) result |= 0x8000;
        return result;
    }

    int lookupExp(int val) {
        bool sign = val & 0x8000;
        int t = (expTable[(val & 255) ^ 255] | 1024) << 1;
        int result = t >> ((val & 0x7F00) >> 8);
        if (sign) result = ~result;
        return result >> 4;
    }

Here are some highlights of the code:

above, this mirroring corresponds to simply flipping all the bits of our (8-bit) table index.

  • Quadrant 3 (and 4) can be reconstructed by flipping the sign of the result. Here that's implemented by storing the sign in bit 15 of the result (an arbitrary unused bit). So we use sign-magnitude instead of the more usual 2-complements representation.

output of the lookupSin() function. It has a sign- and a magnitude-part. The magnitude is a fixed-point value with 8 fractional bits. One of the first things this lookup function does is split the input in those 3 components: sign, integral-part and fractional-part.

  • The fractional part (8 bits) is used as index in our table (256 entries). Though in this implementation we still complement that

index (underlying reason for this is that the logsin table stores minus the logarithm). It's possible (likely?) that the real hardware doesn't have this flip operation, instead the entries in the table may be stored in reverse order.

  • When initializing expTable we dropped the 10th bit (was anyway always 1). Here we add that bit again.
  • Next the integral part of the input is used to shift the value we found in the table. Mathematically we're using the property exp2(i - n) == exp2(i) / pow(2, n) to extend the logical range of the exp-table. And dividing by a power-of-2 corresponds to a right-shift operation.
  • When the sign bit of the input was set we take the complement of the result. So this creates a 1-complements result (instead of the more usual 2-complements representation). Note that this results in two possible representations for zero (+0 and -0).
  • The lower 4 bits of the result are dropped. (I'm not 100% sure, but I think that because of this step the OPLL exponential table could have been simpler compared to the OPL2/3 table).

Note that this algorithm is tailored towards a hardware implementation, or at the very least it's structured so that it can directly work on the table data 'discovered' by Matthew Gambrell and Olli Niemitalo. For an efficient software implementation you'll likely use a modified algorithm (with modified tables).

Verify the algorithm

Now that we have the tables and the algorithm, let's use them to predict the output of some simple waveforms and compare those predictions with the actual generated sound.

Let's start with the predictions. We can generate a sine waveform by simply chaining the output of the lookupSin() function to the input of the lookupExp() function. Or in code:

    for (int i = 0; i < 1024; ++i) {
        cout << lookupExp(lookupSin(i)) << endl;
    }

Actually this generates a sine wave with maximum volume. For variable volume the program becomes:

    for (int i = 0; i < 1024; ++i) {
        cout << lookupExp(lookupSin(i) + 128 * volume) << endl;
    }

So we only need to add an offset to the result of the lookupSin() function. Note that because of the sign-magnitude representation we don't need to distinguish between positive and negative values.

Here you can see the power of the exp-log-sin-approach. Each volume-step attenuates the sound by -3dB, that corresponds to multiplying the amplitude by a factor 0.7071. Though multiplication is expensive in hardware. But in a logarithm-scale we can replace multiplication with addition (later we'll see that the same trick is used to apply the envelope-attenuation). At the end we convert back to a linear scale by taking the exponential.

The large table below shows the predicted sine waves (1024 steps, shown in the rows) for the 16 different volumes (shown in the columns). Note that this uses 1-complements notation, so e.g. -256 actually means -255 and -1 means -0.

     |   0 |  1 |  2 |  3 |  4 |  5 |  6 |  7 |  8 |  9 | 10 | 11 | 12 | 13 | 14 | 15
-----+-----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----
   0 |   0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
   1 |   2    1    1    0    0    0    0    0    0    0    0    0    0    0    0    0
   2 |   3    2    1    1    0    0    0    0    0    0    0    0    0    0    0    0
   3 |   5    3    2    1    1    0    0    0    0    0    0    0    0    0    0    0
   4 |   7    4    3    2    1    1    0    0    0    0    0    0    0    0    0    0
   5 |   8    6    4    3    2    1    1    0    0    0    0    0    0    0    0    0
   6 |  10    7    5    3    2    1    1    0    0    0    0    0    0    0    0    0
   7 |  11    8    5    4    2    2    1    1    0    0    0    0    0    0    0    0
   8 |  13    9    6    4    3    2    1    1    0    0    0    0    0    0    0    0
   9 |  14   10    7    5    3    2    1    1    0    0    0    0    0    0    0    0
  10 |  16   11    8    5    4    2    2    1    1    0    0    0    0    0    0    0
  11 |  18   12    9    6    4    3    2    1    1    0    0    0    0    0    0    0
  12 |  19   13    9    6    4    3    2    1    1    0    0    0    0    0    0    0
  13 |  21   14   10    7    5    3    2    1    1    0    0    0    0    0    0    0
  14 |  22   16   11    8    5    4    2    2    1    1    0    0    0    0    0    0
  15 |  24   17   12    8    6    4    3    2    1    1    0    0    0    0    0    0
  16 |  25   18   12    9    6    4    3    2    1    1    0    0    0    0    0    0
  17 |  27   19   13    9    6    4    3    2    1    1    0    0    0    0    0    0
  18 |  28   20   14   10    7    5    3    2    1    1    0    0    0    0    0    0
  19 |  30   21   15   10    7    5    3    2    1    1    0    0    0    0    0    0
  20 |  32   22   16   11    8    5    4    2    2    1    1    0    0    0    0    0
  21 |  33   23   16   11    8    5    4    2    2    1    1    0    0    0    0    0
  22 |  35   24   17   12    8    6    4    3    2    1    1    0    0    0    0    0
  23 |  36   25   18   12    9    6    4    3    2    1    1    0    0    0    0    0
  24 |  38   27   19   13    9    6    4    3    2    1    1    0    0    0    0    0
  25 |  39   28   19   14    9    7    4    3    2    1    1    0    0    0    0    0
  26 |  41   29   20   14   10    7    5    3    2    1    1    0    0    0    0    0
  27 |  42   30   21   15   10    7    5    3    2    1    1    0    0    0    0    0
  28 |  44   31   22   15   11    7    5    3    2    1    1    0    0    0    0    0
  29 |  46   32   23   16   11    8    5    4    2    2    1    1    0    0    0    0
  30 |  47   33   23   16   11    8    5    4    2    2    1    1    0    0    0    0
  31 |  49   34   24   17   12    8    6    4    3    2    1    1    0    0    0    0
  32 |  50   35   25   17   12    8    6    4    3    2    1    1    0    0    0    0
  33 |  52   36   26   18   13    9    6    4    3    2    1    1    0    0    0    0
  34 |  53   37   26   18   13    9    6    4    3    2    1    1    0    0    0    0
  35 |  55   39   27   19   13    9    6    4    3    2    1    1    0    0    0    0
  36 |  56   40   28   20   14   10    7    5    3    2    1    1    0    0    0    0
  37 |  58   41   29   20   14   10    7    5    3    2    1    1    0    0    0    0
  38 |  59   42   29   21   14   10    7    5    3    2    1    1    0    0    0    0
  39 |  61   43   30   21   15   10    7    5    3    2    1    1    0    0    0    0
  40 |  62   44   31   22   15   11    7    5    3    2    1    1    0    0    0    0
  41 |  64   45   32   22   16   11    8    5    4    2    2    1    1    0    0    0
  42 |  65   46   32   23   16   11    8    5    4    2    2    1    1    0    0    0
  43 |  67   47   33   23   16   11    8    5    4    2    2    1    1    0    0    0
  44 |  68   48   34   24   17   12    8    6    4    3    2    1    1    0    0    0
  45 |  70   49   35   24   17   12    8    6    4    3    2    1    1    0    0    0
  46 |  71   50   35   25   17   12    8    6    4    3    2    1    1    0    0    0
  47 |  73   51   36   25   18   12    9    6    4    3    2    1    1    0    0    0
  48 |  74   52   37   26   18   13    9    6    4    3    2    1    1    0    0    0
  49 |  76   53   38   26   19   13    9    6    4    3    2    1    1    0    0    0
  50 |  77   55   38   27   19   13    9    6    4    3    2    1    1    0    0    0
  51 |  79   56   39   28   19   14    9    7    4    3    2    1    1    0    0    0
  52 |  80   57   40   28   20   14   10    7    5    3    2    1    1    0    0    0
  53 |  82   58   41   29   20   14   10    7    5    3    2    1    1    0    0    0
  54 |  83   59   41   29   20   14   10    7    5    3    2    1    1    0    0    0
  55 |  85   60   42   30   21   15   10    7    5    3    2    1    1    0    0    0
  56 |  86   61   43   30   21   15   10    7    5    3    2    1    1    0    0    0
  57 |  88   62   44   31   22   15   11    7    5    3    2    1    1    0    0    0
  58 |  89   63   44   31   22   15   11    7    5    3    2    1    1    0    0    0
  59 |  91   64   45   32   22   16   11    8    5    4    2    2    1    1    0    0
  60 |  92   65   46   32   23   16   11    8    5    4    2    2    1    1    0    0
  61 |  94   66   47   33   23   16   11    8    5    4    2    2    1    1    0    0
  62 |  95   67   47   33   23   16   11    8    5    4    2    2    1    1    0    0
  63 |  96   68   48   34   24   17   12    8    6    4    3    2    1    1    0    0
  64 |  98   69   49   34   24   17   12    8    6    4    3    2    1    1    0    0
  65 |  99   70   49   35   24   17   12    8    6    4    3    2    1    1    0    0
  66 | 101   71   50   35   25   17   12    8    6    4    3    2    1    1    0    0
  67 | 102   72   51   36   25   18   12    9    6    4    3    2    1    1    0    0
  68 | 104   73   52   36   26   18   13    9    6    4    3    2    1    1    0    0
  69 | 105   74   52   37   26   18   13    9    6    4    3    2    1    1    0    0
  70 | 107   75   53   37   26   18   13    9    6    4    3    2    1    1    0    0
  71 | 108   76   54   38   27   19   13    9    6    4    3    2    1    1    0    0
  72 | 110   77   55   38   27   19   13    9    6    4    3    2    1    1    0    0
  73 | 111   78   55   39   27   19   13    9    6    4    3    2    1    1    0    0
  74 | 112   79   56   39   28   19   14    9    7    4    3    2    1    1    0    0
  75 | 114   80   57   40   28   20   14   10    7    5    3    2    1    1    0    0
  76 | 115   81   57   40   28   20   14   10    7    5    3    2    1    1    0    0
  77 | 116   82   58   41   29   20   14   10    7    5    3    2    1    1    0    0
  78 | 118   83   59   41   29   20   14   10    7    5    3    2    1    1    0    0
  79 | 119   84   59   42   29   21   14   10    7    5    3    2    1    1    0    0
  80 | 120   85   60   42   30   21   15   10    7    5    3    2    1    1    0    0
  81 | 122   86   61   43   30   21   15   10    7    5    3    2    1    1    0    0
  82 | 123   87   61   43   30   21   15   10    7    5    3    2    1    1    0    0
  83 | 125   88   62   44   31   22   15   11    7    5    3    2    1    1    0    0
  84 | 126   89   63   44   31   22   15   11    7    5    3    2    1    1    0    0
  85 | 128   90   64   45   32   22   16   11    8    5    4    2    2    1    1    0
  86 | 129   91   64   45   32   22   16   11    8    5    4    2    2    1    1    0
  87 | 130   92   65   46   32   23   16   11    8    5    4    2    2    1    1    0
  88 | 131   93   65   46   32   23   16   11    8    5    4    2    2    1    1    0
  89 | 133   94   66   47   33   23   16   11    8    5    4    2    2    1    1    0
  90 | 134   95   67   47   33   23   16   11    8    5    4    2    2    1    1    0
  91 | 135   96   67   48   33   24   16   12    8    6    4    3    2    1    1    0
  92 | 137   97   68   48   34   24   17   12    8    6    4    3    2    1    1    0
  93 | 138   97   69   48   34   24   17   12    8    6    4    3    2    1    1    0
  94 | 140   99   70   49   35   24   17   12    8    6    4    3    2    1    1    0
  95 | 141   99   70   49   35   24   17   12    8    6    4    3    2    1    1    0
  96 | 142  100   71   50   35   25   17   12    8    6    4    3    2    1    1    0
  97 | 143  101   71   50   35   25   17   12    8    6    4    3    2    1    1    0
  98 | 145  102   72   51   36   25   18   12    9    6    4    3    2    1    1    0
  99 | 146  103   73   51   36   25   18   12    9    6    4    3    2    1    1    0
 100 | 147  104   73   52   36   26   18   13    9    6    4    3    2    1    1    0
 101 | 149  105   74   52   37   26   18   13    9    6    4    3    2    1    1    0
 102 | 150  106   75   53   37   26   18   13    9    6    4    3    2    1    1    0
 103 | 151  107   75   53   37   26   18   13    9    6    4    3    2    1    1    0
 104 | 152  107   76   53   38   26   19   13    9    6    4    3    2    1    1    0
 105 | 153  108   76   54   38   27   19   13    9    6    4    3    2    1    1    0
 106 | 155  109   77   54   38   27   19   13    9    6    4    3    2    1    1    0
 107 | 156  110   78   55   39   27   19   13    9    6    4    3    2    1    1    0
 108 | 157  111   78   55   39   27   19   13    9    6    4    3    2    1    1    0
 109 | 159  112   79   56   39   28   19   14    9    7    4    3    2    1    1    0
 110 | 160  113   80   56   40   28   20   14   10    7    5    3    2    1    1    0
 111 | 161  114   80   57   40   28   20   14   10    7    5    3    2    1    1    0
 112 | 162  114   81   57   40   28   20   14   10    7    5    3    2    1    1    0
 113 | 163  115   81   57   40   28   20   14   10    7    5    3    2    1    1    0
 114 | 165  116   82   58   41   29   20   14   10    7    5    3    2    1    1    0
 115 | 166  117   83   58   41   29   20   14   10    7    5    3    2    1    1    0
 116 | 167  118   83   59   41   29   20   14   10    7    5    3    2    1    1    0
 117 | 168  119   84   59   42   29   21   14   10    7    5    3    2    1    1    0
 118 | 169  119   84   59   42   29   21   14   10    7    5    3    2    1    1    0
 119 | 171  120   85   60   42   30   21   15   10    7    5    3    2    1    1    0
 120 | 172  121   86   60   43   30   21   15   10    7    5    3    2    1    1    0
 121 | 173  122   86   61   43   30   21   15   10    7    5    3    2    1    1    0
 122 | 174  123   87   61   43   30   21   15   10    7    5    3    2    1    1    0
 123 | 175  124   87   62   43   31   21   15   10    7    5    3    2    1    1    0
 124 | 176  124   88   62   44   31   22   15   11    7    5    3    2    1    1    0
 125 | 177  125   88   62   44   31   22   15   11    7    5    3    2    1    1    0
 126 | 179  126   89   63   44   31   22   15   11    7    5    3    2    1    1    0
 127 | 180  127   90   63   45   31   22   15   11    7    5    3    2    1    1    0
 128 | 181  128   90   64   45   32   22   16   11    8    5    4    2    2    1    1
 129 | 182  128   91   64   45   32   22   16   11    8    5    4    2    2    1    1
 130 | 183  129   91   64   45   32   22   16   11    8    5    4    2    2    1    1
 131 | 184  130   92   65   46   32   23   16   11    8    5    4    2    2    1    1
 132 | 185  131   92   65   46   32   23   16   11    8    5    4    2    2    1    1
 133 | 186  131   93   65   46   32   23   16   11    8    5    4    2    2    1    1
 134 | 187  132   93   66   46   33   23   16   11    8    5    4    2    2    1    1
 135 | 188  133   94   66   47   33   23   16   11    8    5    4    2    2    1    1
 136 | 189  134   94   67   47   33   23   16   11    8    5    4    2    2    1    1
 137 | 190  134   95   67   47   33   23   16   11    8    5    4    2    2    1    1
 138 | 191  135   95   67   47   33   23   16   11    8    5    4    2    2    1    1
 139 | 192  136   96   68   48   34   24   17   12    8    6    4    3    2    1    1
 140 | 193  137   96   68   48   34   24   17   12    8    6    4    3    2    1    1
 141 | 194  137   97   68   48   34   24   17   12    8    6    4    3    2    1    1
 142 | 195  138   97   69   48   34   24   17   12    8    6    4    3    2    1    1
 143 | 196  139   98   69   49   34   24   17   12    8    6    4    3    2    1    1
 144 | 198  140   99   70   49   35   24   17   12    8    6    4    3    2    1    1
 145 | 199  140   99   70   49   35   24   17   12    8    6    4    3    2    1    1
 146 | 199  141   99   70   49   35   24   17   12    8    6    4    3    2    1    1
 147 | 200  141  100   70   50   35   25   17   12    8    6    4    3    2    1    1
 148 | 201  142  100   71   50   35   25   17   12    8    6    4    3    2    1    1
 149 | 202  143  101   71   50   35   25   17   12    8    6    4    3    2    1    1
 150 | 203  144  101   72   50   36   25   18   12    9    6    4    3    2    1    1
 151 | 204  144  102   72   51   36   25   18   12    9    6    4    3    2    1    1
 152 | 205  145  102   72   51   36   25   18   12    9    6    4    3    2    1    1
 153 | 206  146  103   73   51   36   25   18   12    9    6    4    3    2    1    1
 154 | 207  146  103   73   51   36   25   18   12    9    6    4    3    2    1    1
 155 | 208  147  104   73   52   36   26   18   13    9    6    4    3    2    1    1
 156 | 209  147  104   73   52   36   26   18   13    9    6    4    3    2    1    1
 157 | 210  148  105   74   52   37   26   18   13    9    6    4    3    2    1    1
 158 | 211  149  105   74   52   37   26   18   13    9    6    4    3    2    1    1
 159 | 211  149  105   74   52   37   26   18   13    9    6    4    3    2    1    1
 160 | 213  150  106   75   53   37   26   18   13    9    6    4    3    2    1    1
 161 | 213  151  106   75   53   37   26   18   13    9    6    4    3    2    1    1
 162 | 214  151  107   75   53   37   26   18   13    9    6    4    3    2    1    1
 163 | 215  152  107   76   53   38   26   19   13    9    6    4    3    2    1    1
 164 | 215  152  107   76   53   38   26   19   13    9    6    4    3    2    1    1
 165 | 217  153  108   76   54   38   27   19   13    9    6    4    3    2    1    1
 166 | 217  153  108   76   54   38   27   19   13    9    6    4    3    2    1    1
 167 | 218  154  109   77   54   38   27   19   13    9    6    4    3    2    1    1
 168 | 219  155  109   77   54   38   27   19   13    9    6    4    3    2    1    1
 169 | 220  155  110   77   55   38   27   19   13    9    6    4    3    2    1    1
 170 | 221  156  110   78   55   39   27   19   13    9    6    4    3    2    1    1
 171 | 221  156  110   78   55   39   27   19   13    9    6    4    3    2    1    1
 172 | 222  157  111   78   55   39   27   19   13    9    6    4    3    2    1    1
 173 | 223  158  111   79   55   39   27   19   13    9    6    4    3    2    1    1
 174 | 224  158  112   79   56   39   28   19   14    9    7    4    3    2    1    1
 175 | 224  159  112   79   56   39   28   19   14    9    7    4    3    2    1    1
 176 | 225  159  112   79   56   39   28   19   14    9    7    4    3    2    1    1
 177 | 226  159  113   79   56   39   28   19   14    9    7    4    3    2    1    1
 178 | 227  160  113   80   56   40   28   20   14   10    7    5    3    2    1    1
 179 | 227  161  113   80   56   40   28   20   14   10    7    5    3    2    1    1
 180 | 228  161  114   80   57   40   28   20   14   10    7    5    3    2    1    1
 181 | 229  162  114   81   57   40   28   20   14   10    7    5    3    2    1    1
 182 | 229  162  114   81   57   40   28   20   14   10    7    5    3    2    1    1
 183 | 230  162  115   81   57   40   28   20   14   10    7    5    3    2    1    1
 184 | 231  163  115   81   57   40   28   20   14   10    7    5    3    2    1    1
 185 | 231  163  115   81   57   40   28   20   14   10    7    5    3    2    1    1
 186 | 232  164  116   82   58   41   29   20   14   10    7    5    3    2    1    1
 187 | 232  164  116   82   58   41   29   20   14   10    7    5    3    2    1    1
 188 | 233  165  116   82   58   41   29   20   14   10    7    5    3    2    1    1
 189 | 234  165  117   82   58   41   29   20   14   10    7    5    3    2    1    1
 190 | 234  166  117   83   58   41   29   20   14   10    7    5    3    2    1    1
 191 | 235  166  117   83   58   41   29   20   14   10    7    5    3    2    1    1
 192 | 236  166  118   83   59   41   29   20   14   10    7    5    3    2    1    1
 193 | 236  167  118   83   59   41   29   20   14   10    7    5    3    2    1    1
 194 | 237  167  118   83   59   41   29   20   14   10    7    5    3    2    1    1
 195 | 238  168  119   84   59   42   29   21   14   10    7    5    3    2    1    1
 196 | 238  168  119   84   59   42   29   21   14   10    7    5    3    2    1    1
 197 | 239  169  119   84   59   42   29   21   14   10    7    5    3    2    1    1
 198 | 239  169  119   84   59   42   29   21   14   10    7    5    3    2    1    1
 199 | 239  169  119   84   59   42   29   21   14   10    7    5    3    2    1    1
 200 | 240  170  120   85   60   42   30   21   15   10    7    5    3    2    1    1
 201 | 241  170  120   85   60   42   30   21   15   10    7    5    3    2    1    1
 202 | 241  171  120   85   60   42   30   21   15   10    7    5    3    2    1    1
 203 | 241  171  120   85   60   42   30   21   15   10    7    5    3    2    1    1
 204 | 242  171  121   85   60   42   30   21   15   10    7    5    3    2    1    1
 205 | 243  172  121   86   60   43   30   21   15   10    7    5    3    2    1    1
 206 | 243  172  121   86   60   43   30   21   15   10    7    5    3    2    1    1
 207 | 243  172  121   86   60   43   30   21   15   10    7    5    3    2    1    1
 208 | 244  172  122   86   61   43   30   21   15   10    7    5    3    2    1    1
 209 | 245  173  122   86   61   43   30   21   15   10    7    5    3    2    1    1
 210 | 245  173  122   86   61   43   30   21   15   10    7    5    3    2    1    1
 211 | 245  173  122   86   61   43   30   21   15   10    7    5    3    2    1    1
 212 | 246  174  123   87   61   43   30   21   15   10    7    5    3    2    1    1
 213 | 246  174  123   87   61   43   30   21   15   10    7    5    3    2    1    1
 214 | 247  174  123   87   61   43   30   21   15   10    7    5    3    2    1    1
 215 | 247  174  123   87   61   43   30   21   15   10    7    5    3    2    1    1
 216 | 247  175  123   87   61   43   30   21   15   10    7    5    3    2    1    1
 217 | 248  175  124   87   62   43   31   21   15   10    7    5    3    2    1    1
 218 | 248  175  124   87   62   43   31   21   15   10    7    5    3    2    1    1
 219 | 249  176  124   88   62   44   31   22   15   11    7    5    3    2    1    1
 220 | 249  176  124   88   62   44   31   22   15   11    7    5    3    2    1    1
 221 | 249  176  124   88   62   44   31   22   15   11    7    5    3    2    1    1
 222 | 249  176  124   88   62   44   31   22   15   11    7    5    3    2    1    1
 223 | 250  177  125   88   62   44   31   22   15   11    7    5    3    2    1    1
 224 | 250  177  125   88   62   44   31   22   15   11    7    5    3    2    1    1
 225 | 250  177  125   88   62   44   31   22   15   11    7    5    3    2    1    1
 226 | 251  177  125   88   62   44   31   22   15   11    7    5    3    2    1    1
 227 | 251  177  125   88   62   44   31   22   15   11    7    5    3    2    1    1
 228 | 251  178  125   89   62   44   31   22   15   11    7    5    3    2    1    1
 229 | 251  178  125   89   62   44   31   22   15   11    7    5    3    2    1    1
 230 | 251  178  125   89   62   44   31   22   15   11    7    5    3    2    1    1
 231 | 252  178  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 232 | 252  178  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 233 | 252  178  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 234 | 253  179  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 235 | 253  179  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 236 | 253  179  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 237 | 253  179  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 238 | 253  179  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 239 | 253  179  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 240 | 253  179  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 241 | 254  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 242 | 254  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 243 | 254  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 244 | 254  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 245 | 254  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 246 | 254  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 247 | 254  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 248 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 249 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 250 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 251 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 252 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 253 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 254 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 255 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 256 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 257 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 258 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 259 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 260 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 261 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 262 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 263 | 255  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 264 | 254  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 265 | 254  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 266 | 254  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 267 | 254  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 268 | 254  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 269 | 254  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 270 | 254  180  127   90   63   45   31   22   15   11    7    5    3    2    1    1
 271 | 253  179  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 272 | 253  179  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 273 | 253  179  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 274 | 253  179  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 275 | 253  179  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 276 | 253  179  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 277 | 253  179  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 278 | 252  178  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 279 | 252  178  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 280 | 252  178  126   89   63   44   31   22   15   11    7    5    3    2    1    1
 281 | 251  178  125   89   62   44   31   22   15   11    7    5    3    2    1    1
 282 | 251  178  125   89   62   44   31   22   15   11    7    5    3    2    1    1
 283 | 251  178  125   89   62   44   31   22   15   11    7    5    3    2    1    1
 284 | 251  177  125   88   62   44   31   22   15   11    7    5    3    2    1    1
 285 | 251  177  125   88   62   44   31   22   15   11    7    5    3    2    1    1
 286 | 250  177  125   88   62   44   31   22   15   11    7    5    3    2    1    1
 287 | 250  177  125   88   62   44   31   22   15   11    7    5    3    2    1    1
 288 | 250  177  125   88   62   44   31   22   15   11    7    5    3    2    1    1
 289 | 249  176  124   88   62   44   31   22   15   11    7    5    3    2    1    1
 290 | 249  176  124   88   62   44   31   22   15   11    7    5    3    2    1    1
 291 | 249  176  124   88   62   44   31   22   15   11    7    5    3    2    1    1
 292 | 249  176  124   88   62   44   31   22   15   11    7    5    3    2    1    1
 293 | 248  175  124   87   62   43   31   21   15   10    7    5    3    2    1    1
 294 | 248  175  124   87   62   43   31   21   15   10    7    5    3    2    1    1
 295 | 247  175  123   87   61   43   30   21   15   10    7    5    3    2    1    1
 296 | 247  174  123   87   61   43   30   21   15   10    7    5    3    2    1    1
 297 | 247  174  123   87   61   43   30   21   15   10    7    5    3    2    1    1
 298 | 246  174  123   87   61   43   30   21   15   10    7    5    3    2    1    1
 299 | 246  174  123   87   61   43   30   21   15   10    7    5    3    2    1    1
 300 | 245  173  122   86   61   43   30   21   15   10    7    5    3    2    1    1
 301 | 245  173  122   86   61   43   30   21   15   10    7    5    3    2    1    1
 302 | 245  173  122   86   61   43   30   21   15   10    7    5    3    2    1    1
 303 | 244  172  122   86   61   43   30   21   15   10    7    5    3    2    1    1
 304 | 243  172  121   86   60   43   30   21   15   10    7    5    3    2    1    1
 305 | 243  172  121   86   60   43   30   21   15   10    7    5    3    2    1    1
 306 | 243  172  121   86   60   43   30   21   15   10    7    5    3    2    1    1
 307 | 242  171  121   85   60   42   30   21   15   10    7    5    3    2    1    1
 308 | 241  171  120   85   60   42   30   21   15   10    7    5    3    2    1    1
 309 | 241  171  120   85   60   42   30   21   15   10    7    5    3    2    1    1
 310 | 241  170  120   85   60   42   30   21   15   10    7    5    3    2    1    1
 311 | 240  170  120   85   60   42   30   21   15   10    7    5    3    2    1    1
 312 | 239  169  119   84   59   42   29   21   14   10    7    5    3    2    1    1
 313 | 239  169  119   84   59   42   29   21   14   10    7    5    3    2    1    1
 314 | 239  169  119   84   59   42   29   21   14   10    7    5    3    2    1    1
 315 | 238  168  119   84   59   42   29   21   14   10    7    5    3    2    1    1
 316 | 238  168  119   84   59   42   29   21   14   10    7    5    3    2    1    1
 317 | 237  167  118   83   59   41   29   20   14   10    7    5    3    2    1    1
 318 | 236  167  118   83   59   41   29   20   14   10    7    5    3    2    1    1
 319 | 236  166  118   83   59   41   29   20   14   10    7    5    3    2    1    1
 320 | 235  166  117   83   58   41   29   20   14   10    7    5    3    2    1    1
 321 | 234  166  117   83   58   41   29   20   14   10    7    5    3    2    1    1
 322 | 234  165  117   82   58   41   29   20   14   10    7    5    3    2    1    1
 323 | 233  165  116   82   58   41   29   20   14   10    7    5    3    2    1    1
 324 | 232  164  116   82   58   41   29   20   14   10    7    5    3    2    1    1
 325 | 232  164  116   82   58   41   29   20   14   10    7    5    3    2    1    1
 326 | 231  163  115   81   57   40   28   20   14   10    7    5    3    2    1    1
 327 | 231  163  115   81   57   40   28   20   14   10    7    5    3    2    1    1
 328 | 230  162  115   81   57   40   28   20   14   10    7    5    3    2    1    1
 329 | 229  162  114   81   57   40   28   20   14   10    7    5    3    2    1    1
 330 | 229  162  114   81   57   40   28   20   14   10    7    5    3    2    1    1
 331 | 228  161  114   80   57   40   28   20   14   10    7    5    3    2    1    1
 332 | 227  161  113   80   56   40   28   20   14   10    7    5    3    2    1    1
 333 | 227  160  113   80   56   40   28   20   14   10    7    5    3    2    1    1
 334 | 226  159  113   79   56   39   28   19   14    9    7    4    3    2    1    1
 335 | 225  159  112   79   56   39   28   19   14    9    7    4    3    2    1    1
 336 | 224  159  112   79   56   39   28   19   14    9    7    4    3    2    1    1
 337 | 224  158  112   79   56   39   28   19   14    9    7    4    3    2    1    1
 338 | 223  158  111   79   55   39   27   19   13    9    6    4    3    2    1    1
 339 | 222  157  111   78   55   39   27   19   13    9    6    4    3    2    1    1
 340 | 221  156  110   78   55   39   27   19   13    9    6    4    3    2    1    1
 341 | 221  156  110   78   55   39   27   19   13    9    6    4    3    2    1    1
 342 | 220  155  110   77   55   38   27   19   13    9    6    4    3    2    1    1
 343 | 219  155  109   77   54   38   27   19   13    9    6    4    3    2    1    1
 344 | 218  154  109   77   54   38   27   19   13    9    6    4    3    2    1    1
 345 | 217  153  108   76   54   38   27   19   13    9    6    4    3    2    1    1
 346 | 217  153  108   76   54   38   27   19   13    9    6    4    3    2    1    1
 347 | 215  152  107   76   53   38   26   19   13    9    6    4    3    2    1    1
 348 | 215  152  107   76   53   38   26   19   13    9    6    4    3    2    1    1
 349 | 214  151  107   75   53   37   26   18   13    9    6    4    3    2    1    1
 350 | 213  151  106   75   53   37   26   18   13    9    6    4    3    2    1    1
 351 | 213  150  106   75   53   37   26   18   13    9    6    4    3    2    1    1
 352 | 211  149  105   74   52   37   26   18   13    9    6    4    3    2    1    1
 353 | 211  149  105   74   52   37   26   18   13    9    6    4    3    2    1    1
 354 | 210  148  105   74   52   37   26   18   13    9    6    4    3    2    1    1
 355 | 209  147  104   73   52   36   26   18   13    9    6    4    3    2    1    1
 356 | 208  147  104   73   52   36   26   18   13    9    6    4    3    2    1    1
 357 | 207  146  103   73   51   36   25   18   12    9    6    4    3    2    1    1
 358 | 206  146  103   73   51   36   25   18   12    9    6    4    3    2    1    1
 359 | 205  145  102   72   51   36   25   18   12    9    6    4    3    2    1    1
 360 | 204  144  102   72   51   36   25   18   12    9    6    4    3    2    1    1
 361 | 203  144  101   72   50   36   25   18   12    9    6    4    3    2    1    1
 362 | 202  143  101   71   50   35   25   17   12    8    6    4    3    2    1    1
 363 | 201  142  100   71   50   35   25   17   12    8    6    4    3    2    1    1
 364 | 200  141  100   70   50   35   25   17   12    8    6    4    3    2    1    1
 365 | 199  141   99   70   49   35   24   17   12    8    6    4    3    2    1    1
 366 | 199  140   99   70   49   35   24   17   12    8    6    4    3    2    1    1
 367 | 198  140   99   70   49   35   24   17   12    8    6    4    3    2    1    1
 368 | 196  139   98   69   49   34   24   17   12    8    6    4    3    2    1    1
 369 | 195  138   97   69   48   34   24   17   12    8    6    4    3    2    1    1
 370 | 194  137   97   68   48   34   24   17   12    8    6    4    3    2    1    1
 371 | 193  137   96   68   48   34   24   17   12    8    6    4    3    2    1    1
 372 | 192  136   96   68   48   34   24   17   12    8    6    4    3    2    1    1
 373 | 191  135   95   67   47   33   23   16   11    8    5    4    2    2    1    1
 374 | 190  134   95   67   47   33   23   16   11    8    5    4    2    2    1    1
 375 | 189  134   94   67   47   33   23   16   11    8    5    4    2    2    1    1
 376 | 188  133   94   66   47   33   23   16   11    8    5    4    2    2    1    1
 377 | 187  132   93   66   46   33   23   16   11    8    5    4    2    2    1    1
 378 | 186  131   93   65   46   32   23   16   11    8    5    4    2    2    1    1
 379 | 185  131   92   65   46   32   23   16   11    8    5    4    2    2    1    1
 380 | 184  130   92   65   46   32   23   16   11    8    5    4    2    2    1    1
 381 | 183  129   91   64   45   32   22   16   11    8    5    4    2    2    1    1
 382 | 182  128   91   64   45   32   22   16   11    8    5    4    2    2    1    1
 383 | 181  128   90   64   45   32   22   16   11    8    5    4    2    2    1    1
 384 | 180  127   90   63   45   31   22   15   11    7    5    3    2    1    1    0
 385 | 179  126   89   63   44   31   22   15   11    7    5    3    2    1    1    0
 386 | 177  125   88   62   44   31   22   15   11    7    5    3    2    1    1    0
 387 | 176  124   88   62   44   31   22   15   11    7    5    3    2    1    1    0
 388 | 175  124   87   62   43   31   21   15   10    7    5    3    2    1    1    0
 389 | 174  123   87   61   43   30   21   15   10    7    5    3    2    1    1    0
 390 | 173  122   86   61   43   30   21   15   10    7    5    3    2    1    1    0
 391 | 172  121   86   60   43   30   21   15   10    7    5    3    2    1    1    0
 392 | 171  120   85   60   42   30   21   15   10    7    5    3    2    1    1    0
 393 | 169  119   84   59   42   29   21   14   10    7    5    3    2    1    1    0
 394 | 168  119   84   59   42   29   21   14   10    7    5    3    2    1    1    0
 395 | 167  118   83   59   41   29   20   14   10    7    5    3    2    1    1    0
 396 | 166  117   83   58   41   29   20   14   10    7    5    3    2    1    1    0
 397 | 165  116   82   58   41   29   20   14   10    7    5    3    2    1    1    0
 398 | 163  115   81   57   40   28   20   14   10    7    5    3    2    1    1    0
 399 | 162  114   81   57   40   28   20   14   10    7    5    3    2    1    1    0
 400 | 161  114   80   57   40   28   20   14   10    7    5    3    2    1    1    0
 401 | 160  113   80   56   40   28   20   14   10    7    5    3    2    1    1    0
 402 | 159  112   79   56   39   28   19   14    9    7    4    3    2    1    1    0
 403 | 157  111   78   55   39   27   19   13    9    6    4    3    2    1    1    0
 404 | 156  110   78   55   39   27   19   13    9    6    4    3    2    1    1    0
 405 | 155  109   77   54   38   27   19   13    9    6    4    3    2    1    1    0
 406 | 153  108   76   54   38   27   19   13    9    6    4    3    2    1    1    0
 407 | 152  107   76   53   38   26   19   13    9    6    4    3    2    1    1    0
 408 | 151  107   75   53   37   26   18   13    9    6    4    3    2    1    1    0
 409 | 150  106   75   53   37   26   18   13    9    6    4    3    2    1    1    0
 410 | 149  105   74   52   37   26   18   13    9    6    4    3    2    1    1    0
 411 | 147  104   73   52   36   26   18   13    9    6    4    3    2    1    1    0
 412 | 146  103   73   51   36   25   18   12    9    6    4    3    2    1    1    0
 413 | 145  102   72   51   36   25   18   12    9    6    4    3    2    1    1    0
 414 | 143  101   71   50   35   25   17   12    8    6    4    3    2    1    1    0
 415 | 142  100   71   50   35   25   17   12    8    6    4    3    2    1    1    0
 416 | 141   99   70   49   35   24   17   12    8    6    4    3    2    1    1    0
 417 | 140   99   70   49   35   24   17   12    8    6    4    3    2    1    1    0
 418 | 138   97   69   48   34   24   17   12    8    6    4    3    2    1    1    0
 419 | 137   97   68   48   34   24   17   12    8    6    4    3    2    1    1    0
 420 | 135   96   67   48   33   24   16   12    8    6    4    3    2    1    1    0
 421 | 134   95   67   47   33   23   16   11    8    5    4    2    2    1    1    0
 422 | 133   94   66   47   33   23   16   11    8    5    4    2    2    1    1    0
 423 | 131   93   65   46   32   23   16   11    8    5    4    2    2    1    1    0
 424 | 130   92   65   46   32   23   16   11    8    5    4    2    2    1    1    0
 425 | 129   91   64   45   32   22   16   11    8    5    4    2    2    1    1    0
 426 | 128   90   64   45   32   22   16   11    8    5    4    2    2    1    1    0
 427 | 126   89   63   44   31   22   15   11    7    5    3    2    1    1    0    0
 428 | 125   88   62   44   31   22   15   11    7    5    3    2    1    1    0    0
 429 | 123   87   61   43   30   21   15   10    7    5    3    2    1    1    0    0
 430 | 122   86   61   43   30   21   15   10    7    5    3    2    1    1    0    0
 431 | 120   85   60   42   30   21   15   10    7    5    3    2    1    1    0    0
 432 | 119   84   59   42   29   21   14   10    7    5    3    2    1    1    0    0
 433 | 118   83   59   41   29   20   14   10    7    5    3    2    1    1    0    0
 434 | 116   82   58   41   29   20   14   10    7    5    3    2    1    1    0    0
 435 | 115   81   57   40   28   20   14   10    7    5    3    2    1    1    0    0
 436 | 114   80   57   40   28   20   14   10    7    5    3    2    1    1    0    0
 437 | 112   79   56   39   28   19   14    9    7    4    3    2    1    1    0    0
 438 | 111   78   55   39   27   19   13    9    6    4    3    2    1    1    0    0
 439 | 110   77   55   38   27   19   13    9    6    4    3    2    1    1    0    0
 440 | 108   76   54   38   27   19   13    9    6    4    3    2    1    1    0    0
 441 | 107   75   53   37   26   18   13    9    6    4    3    2    1    1    0    0
 442 | 105   74   52   37   26   18   13    9    6    4    3    2    1    1    0    0
 443 | 104   73   52   36   26   18   13    9    6    4    3    2    1    1    0    0
 444 | 102   72   51   36   25   18   12    9    6    4    3    2    1    1    0    0
 445 | 101   71   50   35   25   17   12    8    6    4    3    2    1    1    0    0
 446 |  99   70   49   35   24   17   12    8    6    4    3    2    1    1    0    0
 447 |  98   69   49   34   24   17   12    8    6    4    3    2    1    1    0    0
 448 |  96   68   48   34   24   17   12    8    6    4    3    2    1    1    0    0
 449 |  95   67   47   33   23   16   11    8    5    4    2    2    1    1    0    0
 450 |  94   66   47   33   23   16   11    8    5    4    2    2    1    1    0    0
 451 |  92   65   46   32   23   16   11    8    5    4    2    2    1    1    0    0
 452 |  91   64   45   32   22   16   11    8    5    4    2    2    1    1    0    0
 453 |  89   63   44   31   22   15   11    7    5    3    2    1    1    0    0    0
 454 |  88   62   44   31   22   15   11    7    5    3    2    1    1    0    0    0
 455 |  86   61   43   30   21   15   10    7    5    3    2    1    1    0    0    0
 456 |  85   60   42   30   21   15   10    7    5    3    2    1    1    0    0    0
 457 |  83   59   41   29   20   14   10    7    5    3    2    1    1    0    0    0
 458 |  82   58   41   29   20   14   10    7    5    3    2    1    1    0    0    0
 459 |  80   57   40   28   20   14   10    7    5    3    2    1    1    0    0    0
 460 |  79   56   39   28   19   14    9    7    4    3    2    1    1    0    0    0
 461 |  77   55   38   27   19   13    9    6    4    3    2    1    1    0    0    0
 462 |  76   53   38   26   19   13    9    6    4    3    2    1    1    0    0    0
 463 |  74   52   37   26   18   13    9    6    4    3    2    1    1    0    0    0
 464 |  73   51   36   25   18   12    9    6    4    3    2    1    1    0    0    0
 465 |  71   50   35   25   17   12    8    6    4    3    2    1    1    0    0    0
 466 |  70   49   35   24   17   12    8    6    4    3    2    1    1    0    0    0
 467 |  68   48   34   24   17   12    8    6    4    3    2    1    1    0    0    0
 468 |  67   47   33   23   16   11    8    5    4    2    2    1    1    0    0    0
 469 |  65   46   32   23   16   11    8    5    4    2    2    1    1    0    0    0
 470 |  64   45   32   22   16   11    8    5    4    2    2    1    1    0    0    0
 471 |  62   44   31   22   15   11    7    5    3    2    1    1    0    0    0    0
 472 |  61   43   30   21   15   10    7    5    3    2    1    1    0    0    0    0
 473 |  59   42   29   21   14   10    7    5    3    2    1    1    0    0    0    0
 474 |  58   41   29   20   14   10    7    5    3    2    1    1    0    0    0    0
 475 |  56   40   28   20   14   10    7    5    3    2    1    1    0    0    0    0
 476 |  55   39   27   19   13    9    6    4    3    2    1    1    0    0    0    0
 477 |  53   37   26   18   13    9    6    4    3    2    1    1    0    0    0    0
 478 |  52   36   26   18   13    9    6    4    3    2    1    1    0    0    0    0
 479 |  50   35   25   17   12    8    6    4    3    2    1    1    0    0    0    0
 480 |  49   34   24   17   12    8    6    4    3    2    1    1    0    0    0    0
 481 |  47   33   23   16   11    8    5    4    2    2    1    1    0    0    0    0
 482 |  46   32   23   16   11    8    5    4    2    2    1    1    0    0    0    0
 483 |  44   31   22   15   11    7    5    3    2    1    1    0    0    0    0    0
 484 |  42   30   21   15   10    7    5    3    2    1    1    0    0    0    0    0
 485 |  41   29   20   14   10    7    5    3    2    1    1    0    0    0    0    0
 486 |  39   28   19   14    9    7    4    3    2    1    1    0    0    0    0    0
 487 |  38   27   19   13    9    6    4    3    2    1    1    0    0    0    0    0
 488 |  36   25   18   12    9    6    4    3    2    1    1    0    0    0    0    0
 489 |  35   24   17   12    8    6    4    3    2    1    1    0    0    0    0    0
 490 |  33   23   16   11    8    5    4    2    2    1    1    0    0    0    0    0
 491 |  32   22   16   11    8    5    4    2    2    1    1    0    0    0    0    0
 492 |  30   21   15   10    7    5    3    2    1    1    0    0    0    0    0    0
 493 |  28   20   14   10    7    5    3    2    1    1    0    0    0    0    0    0
 494 |  27   19   13    9    6    4    3    2    1    1    0    0    0    0    0    0
 495 |  25   18   12    9    6    4    3    2    1    1    0    0    0    0    0    0
 496 |  24   17   12    8    6    4    3    2    1    1    0    0    0    0    0    0
 497 |  22   16   11    8    5    4    2    2    1    1    0    0    0    0    0    0
 498 |  21   14   10    7    5    3    2    1    1    0    0    0    0    0    0    0
 499 |  19   13    9    6    4    3    2    1    1    0    0    0    0    0    0    0
 500 |  18   12    9    6    4    3    2    1    1    0    0    0    0    0    0    0
 501 |  16   11    8    5    4    2    2    1    1    0    0    0    0    0    0    0
 502 |  14   10    7    5    3    2    1    1    0    0    0    0    0    0    0    0
 503 |  13    9    6    4    3    2    1    1    0    0    0    0    0    0    0    0
 504 |  11    8    5    4    2    2    1    1    0    0    0    0    0    0    0    0
 505 |  10    7    5    3    2    1    1    0    0    0    0    0    0    0    0    0
 506 |   8    6    4    3    2    1    1    0    0    0    0    0    0    0    0    0
 507 |   7    4    3    2    1    1    0    0    0    0    0    0    0    0    0    0
 508 |   5    3    2    1    1    0    0    0    0    0    0    0    0    0    0    0
 509 |   3    2    1    1    0    0    0    0    0    0    0    0    0    0    0    0
 510 |   2    1    1    0    0    0    0    0    0    0    0    0    0    0    0    0
 511 |   0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 512 |  -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1
 513 |  -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1
 514 |  -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1
 515 |  -6   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1
 516 |  -8   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1
 517 |  -9   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1   -1
 518 | -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1   -1
 519 | -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1
 520 | -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1
 521 | -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1
 522 | -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1
 523 | -19  -13  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1
 524 | -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1
 525 | -22  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1
 526 | -23  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1   -1   -1   -1
 527 | -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1
 528 | -26  -19  -13  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1
 529 | -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1
 530 | -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1
 531 | -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1
 532 | -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1   -1   -1
 533 | -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1   -1   -1
 534 | -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1
 535 | -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1
 536 | -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1
 537 | -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1
 538 | -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1
 539 | -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1
 540 | -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1
 541 | -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1   -1
 542 | -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1   -1
 543 | -50  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1
 544 | -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1
 545 | -53  -37  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1
 546 | -54  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1
 547 | -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1
 548 | -57  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1
 549 | -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1
 550 | -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1
 551 | -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1
 552 | -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1
 553 | -65  -46  -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1
 554 | -66  -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1
 555 | -68  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1
 556 | -69  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1   -1
 557 | -71  -50  -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1   -1
 558 | -72  -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1   -1
 559 | -74  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1
 560 | -75  -53  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1
 561 | -77  -54  -39  -27  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1
 562 | -78  -56  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1
 563 | -80  -57  -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2   -1   -1   -1
 564 | -81  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1
 565 | -83  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1
 566 | -84  -60  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1
 567 | -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1
 568 | -87  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1
 569 | -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1   -1   -1
 570 | -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1   -1   -1
 571 | -92  -65  -46  -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1
 572 | -93  -66  -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1
 573 | -95  -67  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1
 574 | -96  -68  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1
 575 | -97  -69  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1
 576 | -99  -70  -50  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1
 577 |-100  -71  -50  -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1
 578 |-102  -72  -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1
 579 |-103  -73  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2   -1   -1
 580 |-105  -74  -53  -37  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1
 581 |-106  -75  -53  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1
 582 |-108  -76  -54  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1
 583 |-109  -77  -55  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1
 584 |-111  -78  -56  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1
 585 |-112  -79  -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1
 586 |-113  -80  -57  -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2   -1   -1
 587 |-115  -81  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1
 588 |-116  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1
 589 |-117  -83  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1
 590 |-119  -84  -60  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1
 591 |-120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1
 592 |-121  -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1
 593 |-123  -87  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1
 594 |-124  -88  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1
 595 |-126  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1   -1
 596 |-127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1   -1
 597 |-129  -91  -65  -46  -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1
 598 |-130  -92  -65  -46  -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1
 599 |-131  -93  -66  -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1
 600 |-132  -94  -66  -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1
 601 |-134  -95  -67  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1
 602 |-135  -96  -68  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1
 603 |-136  -97  -68  -49  -34  -25  -17  -13   -9   -7   -5   -4   -3   -2   -2   -1
 604 |-138  -98  -69  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1
 605 |-139  -98  -70  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1
 606 |-141 -100  -71  -50  -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1
 607 |-142 -100  -71  -50  -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1
 608 |-143 -101  -72  -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1
 609 |-144 -102  -72  -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1
 610 |-146 -103  -73  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2   -1
 611 |-147 -104  -74  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2   -1
 612 |-148 -105  -74  -53  -37  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1
 613 |-150 -106  -75  -53  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1
 614 |-151 -107  -76  -54  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1
 615 |-152 -108  -76  -54  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1
 616 |-153 -108  -77  -54  -39  -27  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1
 617 |-154 -109  -77  -55  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1
 618 |-156 -110  -78  -55  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1
 619 |-157 -111  -79  -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1
 620 |-158 -112  -79  -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1
 621 |-160 -113  -80  -57  -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2   -1
 622 |-161 -114  -81  -57  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1
 623 |-162 -115  -81  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1
 624 |-163 -115  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1
 625 |-164 -116  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1
 626 |-166 -117  -83  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1
 627 |-167 -118  -84  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1
 628 |-168 -119  -84  -60  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1
 629 |-169 -120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2   -1
 630 |-170 -120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2   -1
 631 |-172 -121  -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1
 632 |-173 -122  -87  -61  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1
 633 |-174 -123  -87  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1
 634 |-175 -124  -88  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1
 635 |-176 -125  -88  -63  -44  -32  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1
 636 |-177 -125  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1
 637 |-178 -126  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1
 638 |-180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1
 639 |-181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1
 640 |-182 -129  -91  -65  -46  -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2
 641 |-183 -129  -92  -65  -46  -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2
 642 |-184 -130  -92  -65  -46  -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2
 643 |-185 -131  -93  -66  -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 644 |-186 -132  -93  -66  -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 645 |-187 -132  -94  -66  -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 646 |-188 -133  -94  -67  -47  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 647 |-189 -134  -95  -67  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 648 |-190 -135  -95  -68  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 649 |-191 -135  -96  -68  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 650 |-192 -136  -96  -68  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 651 |-193 -137  -97  -69  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 652 |-194 -138  -97  -69  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 653 |-195 -138  -98  -69  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 654 |-196 -139  -98  -70  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 655 |-197 -140  -99  -70  -50  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 656 |-199 -141 -100  -71  -50  -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 657 |-200 -141 -100  -71  -50  -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 658 |-200 -142 -100  -71  -50  -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 659 |-201 -142 -101  -71  -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2
 660 |-202 -143 -101  -72  -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2
 661 |-203 -144 -102  -72  -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2
 662 |-204 -145 -102  -73  -51  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2
 663 |-205 -145 -103  -73  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2
 664 |-206 -146 -103  -73  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2
 665 |-207 -147 -104  -74  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2
 666 |-208 -147 -104  -74  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2
 667 |-209 -148 -105  -74  -53  -37  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 668 |-210 -148 -105  -74  -53  -37  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 669 |-211 -149 -106  -75  -53  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 670 |-212 -150 -106  -75  -53  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 671 |-212 -150 -106  -75  -53  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 672 |-214 -151 -107  -76  -54  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 673 |-214 -152 -107  -76  -54  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 674 |-215 -152 -108  -76  -54  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 675 |-216 -153 -108  -77  -54  -39  -27  -20  -14  -10   -7   -5   -4   -3   -2   -2
 676 |-216 -153 -108  -77  -54  -39  -27  -20  -14  -10   -7   -5   -4   -3   -2   -2
 677 |-218 -154 -109  -77  -55  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 678 |-218 -154 -109  -77  -55  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 679 |-219 -155 -110  -78  -55  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 680 |-220 -156 -110  -78  -55  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 681 |-221 -156 -111  -78  -56  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 682 |-222 -157 -111  -79  -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 683 |-222 -157 -111  -79  -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 684 |-223 -158 -112  -79  -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 685 |-224 -159 -112  -80  -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 686 |-225 -159 -113  -80  -57  -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2
 687 |-225 -160 -113  -80  -57  -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2
 688 |-226 -160 -113  -80  -57  -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2
 689 |-227 -160 -114  -80  -57  -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2
 690 |-228 -161 -114  -81  -57  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 691 |-228 -162 -114  -81  -57  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 692 |-229 -162 -115  -81  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 693 |-230 -163 -115  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 694 |-230 -163 -115  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 695 |-231 -163 -116  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 696 |-232 -164 -116  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 697 |-232 -164 -116  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 698 |-233 -165 -117  -83  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 699 |-233 -165 -117  -83  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 700 |-234 -166 -117  -83  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 701 |-235 -166 -118  -83  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 702 |-235 -167 -118  -84  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 703 |-236 -167 -118  -84  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 704 |-237 -167 -119  -84  -60  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 705 |-237 -168 -119  -84  -60  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 706 |-238 -168 -119  -84  -60  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 707 |-239 -169 -120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2
 708 |-239 -169 -120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2
 709 |-240 -170 -120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2
 710 |-240 -170 -120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2
 711 |-240 -170 -120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2
 712 |-241 -171 -121  -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 713 |-242 -171 -121  -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 714 |-242 -172 -121  -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 715 |-242 -172 -121  -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 716 |-243 -172 -122  -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 717 |-244 -173 -122  -87  -61  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 718 |-244 -173 -122  -87  -61  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 719 |-244 -173 -122  -87  -61  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 720 |-245 -173 -123  -87  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 721 |-246 -174 -123  -87  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 722 |-246 -174 -123  -87  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 723 |-246 -174 -123  -87  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 724 |-247 -175 -124  -88  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 725 |-247 -175 -124  -88  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 726 |-248 -175 -124  -88  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 727 |-248 -175 -124  -88  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 728 |-248 -176 -124  -88  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 729 |-249 -176 -125  -88  -63  -44  -32  -22  -16  -11   -8   -6   -4   -3   -2   -2
 730 |-249 -176 -125  -88  -63  -44  -32  -22  -16  -11   -8   -6   -4   -3   -2   -2
 731 |-250 -177 -125  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 732 |-250 -177 -125  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 733 |-250 -177 -125  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 734 |-250 -177 -125  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 735 |-251 -178 -126  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 736 |-251 -178 -126  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 737 |-251 -178 -126  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 738 |-252 -178 -126  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 739 |-252 -178 -126  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 740 |-252 -179 -126  -90  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 741 |-252 -179 -126  -90  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 742 |-252 -179 -126  -90  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 743 |-253 -179 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 744 |-253 -179 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 745 |-253 -179 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 746 |-254 -180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 747 |-254 -180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 748 |-254 -180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 749 |-254 -180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 750 |-254 -180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 751 |-254 -180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 752 |-254 -180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 753 |-255 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 754 |-255 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 755 |-255 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 756 |-255 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 757 |-255 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 758 |-255 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 759 |-255 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 760 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 761 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 762 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 763 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 764 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 765 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 766 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 767 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 768 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 769 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 770 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 771 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 772 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 773 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 774 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 775 |-256 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 776 |-255 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 777 |-255 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 778 |-255 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 779 |-255 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 780 |-255 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 781 |-255 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 782 |-255 -181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 783 |-254 -180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 784 |-254 -180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 785 |-254 -180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 786 |-254 -180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 787 |-254 -180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 788 |-254 -180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 789 |-254 -180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 790 |-253 -179 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 791 |-253 -179 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 792 |-253 -179 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 793 |-252 -179 -126  -90  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 794 |-252 -179 -126  -90  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 795 |-252 -179 -126  -90  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 796 |-252 -178 -126  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 797 |-252 -178 -126  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 798 |-251 -178 -126  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 799 |-251 -178 -126  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 800 |-251 -178 -126  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 801 |-250 -177 -125  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 802 |-250 -177 -125  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 803 |-250 -177 -125  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 804 |-250 -177 -125  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2
 805 |-249 -176 -125  -88  -63  -44  -32  -22  -16  -11   -8   -6   -4   -3   -2   -2
 806 |-249 -176 -125  -88  -63  -44  -32  -22  -16  -11   -8   -6   -4   -3   -2   -2
 807 |-248 -176 -124  -88  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 808 |-248 -175 -124  -88  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 809 |-248 -175 -124  -88  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 810 |-247 -175 -124  -88  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 811 |-247 -175 -124  -88  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 812 |-246 -174 -123  -87  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 813 |-246 -174 -123  -87  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 814 |-246 -174 -123  -87  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 815 |-245 -173 -123  -87  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 816 |-244 -173 -122  -87  -61  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 817 |-244 -173 -122  -87  -61  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 818 |-244 -173 -122  -87  -61  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 819 |-243 -172 -122  -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 820 |-242 -172 -121  -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 821 |-242 -172 -121  -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 822 |-242 -171 -121  -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 823 |-241 -171 -121  -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2
 824 |-240 -170 -120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2
 825 |-240 -170 -120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2
 826 |-240 -170 -120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2
 827 |-239 -169 -120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2
 828 |-239 -169 -120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2
 829 |-238 -168 -119  -84  -60  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 830 |-237 -168 -119  -84  -60  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 831 |-237 -167 -119  -84  -60  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 832 |-236 -167 -118  -84  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 833 |-235 -167 -118  -84  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 834 |-235 -166 -118  -83  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 835 |-234 -166 -117  -83  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 836 |-233 -165 -117  -83  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 837 |-233 -165 -117  -83  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2
 838 |-232 -164 -116  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 839 |-232 -164 -116  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 840 |-231 -163 -116  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 841 |-230 -163 -115  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 842 |-230 -163 -115  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 843 |-229 -162 -115  -81  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 844 |-228 -162 -114  -81  -57  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 845 |-228 -161 -114  -81  -57  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2
 846 |-227 -160 -114  -80  -57  -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2
 847 |-226 -160 -113  -80  -57  -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2
 848 |-225 -160 -113  -80  -57  -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2
 849 |-225 -159 -113  -80  -57  -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2
 850 |-224 -159 -112  -80  -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 851 |-223 -158 -112  -79  -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 852 |-222 -157 -111  -79  -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 853 |-222 -157 -111  -79  -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 854 |-221 -156 -111  -78  -56  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 855 |-220 -156 -110  -78  -55  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 856 |-219 -155 -110  -78  -55  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 857 |-218 -154 -109  -77  -55  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 858 |-218 -154 -109  -77  -55  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2
 859 |-216 -153 -108  -77  -54  -39  -27  -20  -14  -10   -7   -5   -4   -3   -2   -2
 860 |-216 -153 -108  -77  -54  -39  -27  -20  -14  -10   -7   -5   -4   -3   -2   -2
 861 |-215 -152 -108  -76  -54  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 862 |-214 -152 -107  -76  -54  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 863 |-214 -151 -107  -76  -54  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 864 |-212 -150 -106  -75  -53  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 865 |-212 -150 -106  -75  -53  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 866 |-211 -149 -106  -75  -53  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 867 |-210 -148 -105  -74  -53  -37  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 868 |-209 -148 -105  -74  -53  -37  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2
 869 |-208 -147 -104  -74  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2
 870 |-207 -147 -104  -74  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2
 871 |-206 -146 -103  -73  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2
 872 |-205 -145 -103  -73  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2
 873 |-204 -145 -102  -73  -51  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2
 874 |-203 -144 -102  -72  -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2
 875 |-202 -143 -101  -72  -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2
 876 |-201 -142 -101  -71  -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2
 877 |-200 -142 -100  -71  -50  -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 878 |-200 -141 -100  -71  -50  -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 879 |-199 -141 -100  -71  -50  -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 880 |-197 -140  -99  -70  -50  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 881 |-196 -139  -98  -70  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 882 |-195 -138  -98  -69  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 883 |-194 -138  -97  -69  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 884 |-193 -137  -97  -69  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2
 885 |-192 -136  -96  -68  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 886 |-191 -135  -96  -68  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 887 |-190 -135  -95  -68  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 888 |-189 -134  -95  -67  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 889 |-188 -133  -94  -67  -47  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 890 |-187 -132  -94  -66  -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 891 |-186 -132  -93  -66  -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 892 |-185 -131  -93  -66  -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2
 893 |-184 -130  -92  -65  -46  -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2
 894 |-183 -129  -92  -65  -46  -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2
 895 |-182 -129  -91  -65  -46  -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2
 896 |-181 -128  -91  -64  -46  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1
 897 |-180 -127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1
 898 |-178 -126  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1
 899 |-177 -125  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1
 900 |-176 -125  -88  -63  -44  -32  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1
 901 |-175 -124  -88  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1
 902 |-174 -123  -87  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1
 903 |-173 -122  -87  -61  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1
 904 |-172 -121  -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1
 905 |-170 -120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2   -1
 906 |-169 -120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2   -1
 907 |-168 -119  -84  -60  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1
 908 |-167 -118  -84  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1
 909 |-166 -117  -83  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1
 910 |-164 -116  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1
 911 |-163 -115  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1
 912 |-162 -115  -81  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1
 913 |-161 -114  -81  -57  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1
 914 |-160 -113  -80  -57  -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2   -1
 915 |-158 -112  -79  -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1
 916 |-157 -111  -79  -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1
 917 |-156 -110  -78  -55  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1
 918 |-154 -109  -77  -55  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1
 919 |-153 -108  -77  -54  -39  -27  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1
 920 |-152 -108  -76  -54  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1
 921 |-151 -107  -76  -54  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1
 922 |-150 -106  -75  -53  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1
 923 |-148 -105  -74  -53  -37  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1
 924 |-147 -104  -74  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2   -1
 925 |-146 -103  -73  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2   -1
 926 |-144 -102  -72  -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1
 927 |-143 -101  -72  -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1
 928 |-142 -100  -71  -50  -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1
 929 |-141 -100  -71  -50  -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1
 930 |-139  -98  -70  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1
 931 |-138  -98  -69  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1
 932 |-136  -97  -68  -49  -34  -25  -17  -13   -9   -7   -5   -4   -3   -2   -2   -1
 933 |-135  -96  -68  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1
 934 |-134  -95  -67  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1
 935 |-132  -94  -66  -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1
 936 |-131  -93  -66  -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1
 937 |-130  -92  -65  -46  -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1
 938 |-129  -91  -65  -46  -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1
 939 |-127  -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1   -1
 940 |-126  -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1   -1
 941 |-124  -88  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1
 942 |-123  -87  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1
 943 |-121  -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1
 944 |-120  -85  -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1
 945 |-119  -84  -60  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1
 946 |-117  -83  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1
 947 |-116  -82  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1
 948 |-115  -81  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1
 949 |-113  -80  -57  -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2   -1   -1
 950 |-112  -79  -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1
 951 |-111  -78  -56  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1
 952 |-109  -77  -55  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1
 953 |-108  -76  -54  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1
 954 |-106  -75  -53  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1
 955 |-105  -74  -53  -37  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1
 956 |-103  -73  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2   -1   -1
 957 |-102  -72  -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1
 958 |-100  -71  -50  -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1
 959 | -99  -70  -50  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1
 960 | -97  -69  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1
 961 | -96  -68  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1
 962 | -95  -67  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1
 963 | -93  -66  -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1
 964 | -92  -65  -46  -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1
 965 | -90  -64  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1   -1   -1
 966 | -89  -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1   -1   -1
 967 | -87  -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1
 968 | -86  -61  -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1
 969 | -84  -60  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1
 970 | -83  -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1
 971 | -81  -58  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1
 972 | -80  -57  -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2   -1   -1   -1
 973 | -78  -56  -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1
 974 | -77  -54  -39  -27  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1
 975 | -75  -53  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1
 976 | -74  -52  -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1
 977 | -72  -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1   -1
 978 | -71  -50  -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1   -1
 979 | -69  -49  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1   -1
 980 | -68  -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1
 981 | -66  -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1
 982 | -65  -46  -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1
 983 | -63  -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1
 984 | -62  -44  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1
 985 | -60  -43  -30  -22  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1
 986 | -59  -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1
 987 | -57  -41  -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1
 988 | -56  -40  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1
 989 | -54  -38  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1
 990 | -53  -37  -27  -19  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1
 991 | -51  -36  -26  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1
 992 | -50  -35  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1
 993 | -48  -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1   -1
 994 | -47  -33  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1   -1
 995 | -45  -32  -23  -16  -12   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1
 996 | -43  -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1
 997 | -42  -30  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1
 998 | -40  -29  -20  -15  -10   -8   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1
 999 | -39  -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1
1000 | -37  -26  -19  -13  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1
1001 | -36  -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1
1002 | -34  -24  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1   -1   -1
1003 | -33  -23  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1   -1   -1
1004 | -31  -22  -16  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1
1005 | -29  -21  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1
1006 | -28  -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1
1007 | -26  -19  -13  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1
1008 | -25  -18  -13   -9   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1
1009 | -23  -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1   -1   -1   -1
1010 | -22  -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1
1011 | -20  -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1
1012 | -19  -13  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1
1013 | -17  -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1
1014 | -15  -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1
1015 | -14  -10   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1
1016 | -12   -9   -6   -5   -3   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1
1017 | -11   -8   -6   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1   -1
1018 |  -9   -7   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1   -1
1019 |  -8   -5   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1
1020 |  -6   -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1
1021 |  -4   -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1
1022 |  -3   -2   -2   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1
1023 |  -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1   -1

Let's now measure these waveforms. I set mod.ML=0, mod.WF=1, car.ML=8 and car.WF=0. This makes sure that for 4 out of 8 sine periods the modulator is really zero (so that there is no influence of the modulator on the carrier) and that we measure a 'pure' sine wave (in earlier posts I already mentioned small discrepancies caused by a not fully suppressed modulator). Here are the detailed setting values:

OperatorAMPMEGKRMLKLTLWFFBARDRSLRR
modulator0010000631000151515
carrier0010080 0 15000015
reg#0x20 = 0x00key-off
reg#0x10 = 0x01fnum=1
reg#0x30 = 0x0.custom instrument / volume (0-15)
reg#0x20 = 0x10key-on / block=0

I used a very low frequency (block=0, fnum=1). Because of this (and because car.ML=8) one full sine period takes 32x1024 samples. We know that the (logical) sine table only has 1024 entries, so each entry is repeated 32 times. I average those 32 values (before converting ADC values to YM2413 values) to reduce measurement noise. Though unfortunately, as we'll see below, there still is some noise present.

I'm happy to report that for volumes 1-15, the predictions match

These graphs show the predicted values in blue and the measured values in red. Only the first halve of the full sine is shown, the second half is more or less symmetrical (actually it matches better than the part that's shown). Often the blue and red lines completely overlap (meaning the prediction is perfect). The second graph zooms in on the top. There we clearly see that the red line contains noise. E.g. it shows spikes where we expect a smooth curve, and it's not symmetrical around x=256.

These errors occur only for amplitudes above ~214 (~470 on the graph), in earlier measurements we already noticed that there is considerably more noise near the extreme amplitudes. Volumes 1-14 all have amplitudes below 180 (436 on the graph), so there we have no measurement errors.

So I attribute these differences for volume=0 to measurement errors and therefor conclude that both the content of our sin and exp tables and the algorithm that uses those tables is correct.

By looking closely at the predictions-table we can make the following additional observations:

Envelope levels

We already saw how the volume is taken into account in the algorithm: each volume-step corresponds to an increase of 128 in the intermediate result that's used as index in the (logical) exponential table.

Each volume-level (0..15) corresponds to a -3dB attenuation. Each envelope-level (0..127) corresponds to -0.375dB attenuation. So following that rule, an envelope step corresponds to an increase by 16 in the exponential table. The algorithm then becomes:

lookupExp(lookupSin(i) + 128 * volume + 16 * eg_level)

I'll likely use that in my next post to improve the attack-rate envelope measurements.

<< YM2413 Reverse Engineering Notes 2015-03-27 | YM2413 Reverse Engineering Notes | YM2413 Reverse Engineering Notes 2015-11-28 >>




Return to top
0.252s