Entropy Piano Tuner  1.1.3 (documentation not yet complete) An open-source experimental software for piano tuning by entropy minimization
hammerknock.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright 2015 Haye Hinrichsen, Christoph Wick
3  *
4  * This file is part of Entropy Piano Tuner.
5  *
6  * Entropy Piano Tuner is free software: you can redistribute it and/or modify
8  * Free Software Foundation, either version 3 of the License, or (at your
9  * option) any later version.
10  *
11  * Entropy Piano Tuner is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14  * more details.
15  *
16  * You should have received a copy of the GNU General Public License along with
17  * Entropy Piano Tuner. If not, see http://www.gnu.org/licenses/.
18  *****************************************************************************/
19
34
35 const std::vector<std::vector<int>>Synthesizer::mHammerKnockFFT=
36 {{4,4,3,0,-2,-2,-2,0,1,2,0,-2,0,0,-4,-6,-6,-4,-5,-7,-6,
37 -3,1,5,10,11,9,7,6,7,8,9,8,4,3,3,4,5,4,0,-5,-5,-1,3,
38 3,2,2,3,4,8,13,19,26,26,13,-4,-13,-13,-9,-5,-3,-1,-2,-4,
39 -6,-5,-3,-1,-1,-3,-4,-5,-4,-5,-6,-5,-2,1,2,2,2,3,5,6,7,
40 9,9,6,0,-9,-20,-21,-6,8,10,5,-4,-13,-17,-20,-22,-24,-25,
41 -23,-18,-4,15,31,37,30,15,5,-2,-14,-25,-30,-27,-22,-21,-22,
42 -21,-19,-22,-27,-28,-22,-14,-8,-3,3,8,11,19,23,19,14,15,17,
43 14,7,-3,-12,-12,-3,11,25,31,34,42,52,58,54,46,36,25,16,13,
44 15,22,26,18,5,-6,-9,-8,-7,-7,-5,-3,-3,-3,1,4,4,1,-6,-14,
45 -21,-26,-29,-35,-48,-61,-71,-75,-66,-42,-17,-4,-3,-4,-2,1,1,
46 -2,-5,-4,1,9,12,6,-1,-5,-6,-6,-7,-4,3,11,16,17,13,7,2,2,
47 5,9,17,27,35,38,35,31,31,35,38,36,30,22,12,6,5,4,-1,-9,
48 -14,-14,-12,-10,-7,-6,-6,-6,-9,-14,-17,-18,-21,-23,-22,-20,
49 -20,-24,-26,-27,-29,-27,-17,-1,14,26,33,34,31,21,7,-6,-16,
50 -25,-31,-32,-27,-16,-7,-5,-8,-9,-6,-5,-8,-14,-17,-17,-14,-8,
51 1,10,15,17,15,14,14,17,22,24,22,20,20,18,12,7,4,3,0,-6,
52 -12,-17,-22,-29,-38,-49,-62,-68,-63,-55,-48,-44,-41,-38,-33,
53 -26,-19,-10,3,15,22,23,21,19,20,22,26,30,33,36,39,42,44,
54 43,41,38,33,28,24,26,34,40,40,35,30,25,19,16,14,11,7,2,
55 -4,-10,-13,-13,-12,-12,-13,-12,-11,-9,-8,-6,-4,-4,-8,-12,
56 -15,-17,-19,-19,-16,-10,-2,4,6,9,12,11,5,-2,-6,-3,2,4,5,
57 3,-2,-9,-16,-22,-25,-25,-24,-25,-30,-38,-43,-41,-37,-35,-34,
58 -29,-21,-15,-12,-11,-10,-4,7,19,31,36,36,33,29,26,23,21,17,
59 13,7,3,-2,-9,-16,-20,-20,-18,-17,-17,-17,-14,-8,-3,0,3,9,
60 14,18,19,16,12,9,8,10,19,30,39,43,43,38,31,21,11,4,1,1,
61 0,-1,-1,0,1,3,4,4,4,4,4,1,-3,-7,-8,-8,-10,-13,-14,-14,
62 -13,-11,-8,-7,-6,-5,-2,1,2,2,1,-2,-4,-5,-5,-3,0,4,6,5,3,
63 1,-1,-2,-3,-5,-7,-9,-10,-10,-8,-6,-5,-6,-6,-6,-4,-1,2,4,
64 6,7,7,6,6,6,6,6,5,3,2,1,-2,-8,-12,-16,-21,-24,-25,-25,
65 -24,-23,-22,-21,-17,-13,-9,-7,-7,-7,-6,-5,-5,-5,-4,-1,2,6,
66 11,17,22,24,22,18,16,14,11,8,5,3,2,4,8,14,17,18,16,15,
67 15,17,19,20,19,18,17,18,20,22,24,23,20,17,15,15,18,23,25,
68 21,12,6,5,7,8,5,1,-1,-1,0,0,-2,-6,-10,-13,-13,-12,-10,-9,
69 -10,-14,-16,-19,-20,-19,-20,-22,-27,-32,-37,-38,-35,-30,-27,
70 -25,-25,-24,-23,-20,-14,-10,-7,-5,-2,2,4,5,5,4,3,3,3,3,3,
71 0,-2,-2,1,5,8,7,4,3,3,3,1,-2,-4,-5,-4,-3,-1,2,5,7,8,7,
72 5,2,-1,-5,-8,-11,-14,-18,-21,-22,-22,-20,-20,-21,-24,-27,
73 -29,-28,-24,-20,-17,-15,-13,-12,-13,-14,-13,-11,-10,-9,-8,-6,
74 -4,-2,-1,0,1,4,8,12,13,11,7,4,3,3,3,3,4,3,3,2,1,1,2,
75 3,4,3,3,1,-1,-4,-4,-4,-4,-4,-3,-1,2,7,12,17,22,26,29,33,
76 38,43,44,39,33,29,25,20,15,11,10,11,13,14,14,16,18,20,23,
77 23,20,15,11,7,6,7,10,13,13,12,11,13,14,15,14,12,9,4,0,
78 -4,-6,-5,-2,1,2,1,0,-2,-3,-4,-4,-5,-7,-9,-7,-2,1,1,2,4,
79 6,6,6,5,3,2,3,4,5,5,6,7,6,3,1,2,5,6,6,3,-2,-7,-10,
80 -12,-13,-14,-15,-15,-12,-9,-9,-11,-16,-18,-16,-13,-11,-10,
81 -12,-12,-12,-10,-9,-8,-7,-7,-9,-10,-10,-8,-4,-1,3,5,5,3,1,
82 1,1,0,2,6,11,15,19,22,25,27,30,32,32,29,28,29,30,27,21,
83 16,13,11,9,8,7,6,2,-5,-12,-15,-15,-14,-14,-13,-11,-10,-9,
84 -8,-7,-5,-5,-8,-13,-17,-24,-32,-38,-40,-41,-42,-42,-42,-43,
85 -45,-45,-39,-29,-22,-18,-16,-14,-10,-6,-2,-2,-4,-7,-8,-7,-5,
86 -1,5,8,7,5,5,5,6,10,12,10,6,2,3,7,7,1,-7,-14,-18,-19,
87 -17,-15,-18,-26,-30,-28,-25,-26,-28,-28,-27,-25,-21,-16,-16,
88 -19,-18,-15,-15,-19,-21,-21,-23,-27,-31,-32,-29,-28,-31,-36,
89 -37,-33,-28,-22,-18,-19,-19,-11,2,14,21,23,20,17,17,21,26,
90 30,34,38,43,47,53,60,66,64,59,57,57,49,38,36,40,45,47,42,
91 35,29,26,26,28,33,39,44,50,53,51,46,41,37,32,30,33,39,44,
92 47,50,49,47,46,46,44,40,33,25,16,8,2,-3,-10,-18,-23,-26,
93 -26,-25,-25,-28,-35,-44,-51,-54,-56,-58,-59,-57,-53,-49,-48,
94 -48,-47,-43,-38,-34,-32,-30,-29,-27,-25,-21,-16,-10,-5,-2,0,
95 2,2,0,-4,-6,-7,-8,-9,-10,-8,-2,6,13,16,16,16,16,15,11,8,
96 6,7,9,8,7,5,4,3,2,1,0,-3,-5,-4,-2,-2,-3,-3,-3,-1,2,3,
97 0,-3,-5,-7,-9,-11,-14,-15,-14,-13,-9,-5,-2,-1,-1,-4,-8,-12,
98 -14,-14,-10,-6,-2,-1,-1,-1,-1,0,1,2,1,-1,-2,-3,-5,-6,-6,
99 -7,-7,-9,-10,-11,-11,-11,-10,-9,-7,-6,-4,-1,1,2,3,5,8,11,
100 13,14,14,11,8,4,2,1,1,2,3,5,6,7,6,3,0,-1,0,1,0,-3,-8,
101 -12,-14,-15,-13,-10,-8,-8,-9,-10,-11,-9,-6,-4,-3,-1,0,0,0,
102 0,-1,0,1,4,6,8,9,11,12,13,12,10,6,4,2,0,-1,-2,-2,-1,-1,
103 0,0,-3,-5,-6,-5,-4,-4,-5,-6,-7,-7,-5,-4,-4,-5,-6,-5,-5,
104 -7,-8,-7,-5,-2,1,7,11,13,11,9,8,7,8,9,10,10,9,10,11,11,
105 10,9,8,9,10,10,8,9,10,10,8,7,9,9,7,4,2,0,-2,-4,-6,-8,
106 -9,-12,-13,-13,-11,-8,-5,-3,-2,-3,-5,-6,-4,0,3,4,4,4,2,1,
107 2,4,7,8,7,6,4,3,1,0,0,2,6,9,13,17,20,22,22,22,22,21,
108 16,13,10,9,9,10,10,10,8,6,5,5,6,5,4,3,4,4,3,1,0,-1,-3,
109 -4,-6,-8,-11,-14,-17,-18,-17,-14,-11,-7,-2,3,6,7,4,1,1,3,
110 6,8,8,9,10,12,13,12,11,11,11,10,10,9,9,8,7,6,5,2,-3,-8,
111 -12,-12,-12,-11,-12,-13,-12,-11,-9,-8,-7,-7,-7,-7,-8,-8,-7,
112 -6,-7,-10,-11,-11,-10,-8,-6,-4,-4,-5,-8,-10,-9,-8,-8,-8,-9,
113 -9,-10,-12,-13,-13,-12,-10,-8,-7,-8,-11,-14,-14,-11,-6,-3,0,
114 2,4,5,2,0,-2,-3,-4,-4,-3,-2,-4,-6,-8,-10,-11,-12,-13,-13,
115 -11,-10,-9,-10,-9,-6,-3,-1,-1,-1,-3,-7,-8,-8,-6,-4,-2,-1,
116 -1,-1,-1,0,1,1,1,1,0,1,1,0,0,0,0,1,2,4,3,1,-2,-4,-4,
117 -2,2,6,8,10,10,9,8,7,6,5,5,6,7,8,8,7,7,6,6,8,11,11,
118 11,10,9,7,5,3,0,-2,-4,-4,-3,-2,-1,-2,-5,-7,-7,-5,-4,-3,
119 -2,-1,0,0,-1,0,0,-1,-2,-3,-3,-3,-4,-5,-6,-6,-5,-4,-4,-3,
120 -1,0,2,2,1,0,0,1,3,4,5,9,14,18,19,20,19,19,17,13,9,6,
121 3,2,0,-2,-4,-4,-4,-4,-4,-5,-5,-6,-6,-6,-5,-3,-1,-1,-1,1,
122 0,-2,-4,-5,-5,-6,-6,-4,-2,-2,-3,-5,-5,-4,-2,0,1,3,3,4,6,
123 9,11,12,11,9,9,10,12,14,16,17,18,20,24,26,26,24,24,24,22,
124 19,16,12,8,6,7,7,6,4,2,-1,-3,-5,-8,-10,-11,-12,-15,-14,
125 -11,-7,-5,-4,-3,-3,-3,-5,-6,-6,-6,-3,0,3,2,0,-2,-2,-2,-1,
126 0,1,3,3,2,2,2,3,4,3,3,4,4,3,1,0,0,0,0,0,2,3,2,2,1,
127 0,-1,-1,-1,-2,-4,-5,-5,-4,-5,-5,-4,-4,-4,-3,-3,-3,-4,-4,
128 -4,-4,-4,-4,-3,-2,-2,-2,-1,0,1,0,0,-1,-3,-4,-3,-2,-2,-2,
129 -3,-3,-3,-2,0,1,1,1,1,0,-1,-1,0,1,2,4,5,6,6,6,6,6,6,
130 7,8,8,8,7,5,2,-1,-3,-6,-9,-11,-12,-13,-15,-17,-19,-21,-22,
131 -23,-23,-24,-26,-27,-25,-21,-18,-14,-10,-5,-1,2,2,2,3,5,7,
132 9,10,11,12,12,12,13,13,12,10,10,12,13,14,15,15,15,14,13,
133 12,12,11,9,9,9,9,9,8,6,4,1,-1,-2,-3,-2,-3,-3,-5,-6,-7,
134 -7,-7,-7,-7,-7,-7,-7,-8,-8,-8,-8,-9,-9,-10,-9,-8,-7,-8,
135 -10,-11,-11,-12,-12,-12,-11,-9,-7,-6,-6,-7,-7,-7,-7,-7,-7,
136 -8,-8,-8,-7,-6,-6,-6,-6,-6,-6,-7,-8,-10,-11,-11,-11,-10,
137 -10,-10,-9,-7,-6,-6,-6,-6,-5,-5,-4,-3,-1,0,1,2,1,0,-1,-3,
138 -3,-2,-1,1,1,0,-1,0,2,4,6,7,9,9,8,7,6,5,6,7,7,6,6,5,
139 5,4,3,2,3,3,3,2,4,7,10,11,10,7,6,5,6,6,5,5,6,6,5,5,
140 5,5,6,8,7,6,3,1,1,0,0,-1,-2,-1,0,1,2,3,3,3,1,0,-1,-2,
141 -3,-5,-6,-7,-7,-7,-9,-11,-14,-16,-16,-16,-15,-14,-11,-9,-6,
142 -3,-2,-1,-1,-1,-1,0,3,4,4,3,1,0,0,-1,-1,-3,-4,-5,-5,-3,
143 -2,-1,-1,-3,-3,-4,-4,-4,-4,-3,-2,-1,-2,-2,-3,-4,-6,-7,-7,
144 -7,-6,-5,-5,-5,-4,-4,-4,-6,-7,-7,-7,-6,-6,-4,-2,0,1,2,5,
145 8,11,13,15,18,19,20,20,19,18,18,18,18,17,15,13,11,11,11,
146 11,11,11,11,11,10,8,7,6,6,5,6,7,9,10,12,13,13,13,13,13,
147 12,11,10,9,8,8,9,10,12,13,11,11,11,11,11,12,12,11,10,8,
148 7,6,7,9,10,11,12,13,14,14,14,14,14,13,13,12,12,11,10,9,
149 8,7,6,4,3,4,4,4,4,4,4,4,4,3,1,-1,-2,-3,-3,-4,-5,-6,-6,
150 -7,-6,-5,-5,-6,-8,-8,-8,-7,-7,-6,-6,-8,-9,-10,-9,-8,-7,-7,
151 -7,-7,-8,-8,-7,-7,-7,-7,-7,-8,-8,-8,-8,-8,-8,-7,-6,-7,-8,
152 -8,-7,-6,-5,-5,-6,-8,-9,-9,-9,-8,-8,-8,-7,-8,-7,-6,-5,-5,
153 -5,-5,-4,-4,-5,-5,-6,-5,-5,-5,-5,-5,-6,-6,-7,-7,-7,-7,-7,
154 -7,-7,-8,-8,-7,-6,-4,-3,-2,-2,-2,-2,-3,-4,-4,-4,-4,-4,-4,
155 -4,-3,-2,1,3,3,3,2,2,1,-1,-3,-4,-3,-2,-2,-1,2,5,7,7,6,
156 5,3,-1,-4,-7,-8,-8,-9,-9,-10,-11,-11,-12,-11,-11,-10,-9,-9,
157 -8,-7,-7,-6,-5,-4,-4,-4,-4,-4,-4,-3,-2,-2,-1,-2,-2,-2,-2,
158 -1,-1,0,0,0,0,0,1,2,1,0,-1,0,1,2,2,0,-2,-4,-3,-2,-1,
159 -1,0,0,0,1,1,2,2,3,4,5,5,5,5,5,4,3,2,2,2,1,-1,-2,-3,
160 -4,-4,-4,-4,-4,-4,-5,-5,-4,-4,-4,-4,-4,-5,-4,-4,-3,-3,-4,
161 -4,-4,-4,-4,-3,-3,-2,-1,0,0,1,1,1,1,1,2,3,4,4,5,5,5,6,
162 6,6,6,6,6,6,7,7,7,7,7,7,7,6,7,7,7,7,8,9,10,10,10,9,
163 9,8,7,7,6,7,7,8,8,7,7,6,6,6,6,6,7,7,6,6,6,6,6,5,4,
164 3,3,3,3,3,4,5,6,7,6,5,3,2,1,0,-1,-2,-2,-3,-4,-6,-7,-7,
165 -7,-7,-7,-8,-9,-9,-9,-8,-7,-6,-7,-7,-7,-7,-6,-6,-6,-5,-5,
166 -4,-3,-2,-2,-2,-2,-2,-1,0,1,0,-1,-2,-2,-3,-3,-3,-2,-1,-1,
167 -2,-3,-4,-5,-5,-5,-4,-3,-3,-4,-5,-6,-5,-3,-2,-1,-1,-1,-2,
168 -2,-1,1,2,2,1,1,1,1,1,2,3,3,4,4,4,4,5,6,7,8,8,9,8,7,
169 6,5,5,5,5,6,7,8,9,10,10,11,11,12,12,11,11,10,9,7,6,5,
170 5,5,4,4,4,4,3,3,3,3,3,4,4,4,3,2,1,0,0,0,0,0,-1,-1,
171 -1,-2,-3,-4,-5,-5,-5,-5,-4,-3,-3,-4,-4,-3,-2,-2,-3,-4,-3,
172 -3,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3,-3,-2,-2,-2,-2,-2,-3,-3,
173 -3,-2,-1,-1,-2,-2,-1,0,1,2,3,2,1,0,-1,-1,-1,-1,-3,-4,-4,
174 -4,-4,-5,-5,-5,-5,-5,-6,-7,-8,-8,-8,-7,-7,-7,-6,-6,-6,-6,
175 -6,-6,-6,-5,-5,-6,-7,-8,-8,-8,-7,-5,-4,-3,-3,-3,-4,-4,-3,
176 -3,-2,-1,-2,-2,-2,-2,-2,-2,-3,-4,-4,-4,-4,-3,-3,-4,-5,-6,
177 -6,-6,-6,-7,-6,-5,-3,-2,-1,-1,-1,-1,-2,-2,-3,-3,-4,-3,-2,
178 0,0,1,2,3,4,4,4,3,3,3,2,3,3,4,4,4,5,6,7,7,7,7,6,6,
179 6,5,5,4,4,4,4,5,4,4,3,3,4,5,6,6,6,5,4,4,5,6,7,7,7,
180 7,8,8,8,6,5,4,3,2,1,1,0,0,-1,-3,-5,-5,-4,-3,-3,-2,-1,
181 1,2,1,1,0,1,3,5,6,7,7,6,5,5,5,4,4,4,4,4,5,5,5,5,5,
182 4,4,3,1,0,0,-1,-1,-2,-2,-3,-3,-2,-2,-1,0,0,0,-1,-2,-2,
183 -1,-1,-1,-2,-3,-3,-3,-2,0,1,1,1,2,2,2,3,4,4,4,4,4,5,5,
184 6,6,6,6,6,6,5,5,5,6,6,5,3,2,1,1,2,2,3,4,4,4,3,3,2,
185 2,2,1,0,-1,-1,0,0,0,0,-1,-2,-2,-2,-3,-2,-3,-3,-4,-4,-4,
186 -4,-4,-4,-4,-3,-2,-2,-1,-1,-2,-3,-3,-3,-3,-4,-4,-5,-5,-4,
187 -4,-4,-4,-4},{0,2,4,5,3,1,-1,-1,-1,1,3,2,1,3,4,1,-2,-3,
188 -2,-4,-9,-12,-12,-12,-9,-4,-1,-1,-1,-2,-1,1,5,5,3,2,2,3,
189 6,8,5,-1,-4,-3,-1,-2,-3,-4,-6,-7,-7,-4,4,19,31,29,19,9,
190 4,2,3,4,6,7,4,2,0,2,4,4,3,2,2,2,-1,-3,-5,-4,-3,-1,-1,
191 -1,0,1,3,6,10,16,19,20,13,-4,-13,-6,6,16,19,17,12,8,4,
192 -1,-9,-17,-27,-36,-34,-21,-1,18,27,27,29,29,22,10,1,-2,-2,
193 -4,-7,-7,-7,-11,-21,-29,-33,-33,-33,-33,-30,-30,-27,-18,-10,
194 -9,-10,-6,0,4,2,-7,-22,-34,-39,-35,-28,-25,-23,-16,0,15,26,
195 32,34,30,24,18,19,29,41,43,37,28,23,21,18,16,16,17,15,16,
196 20,26,32,36,38,37,34,33,35,34,24,9,-14,-39,-55,-52,-39,-28,
197 -26,-24,-21,-16,-14,-16,-19,-22,-20,-10,-3,-2,-6,-10,-12,-16,
198 -22,-26,-24,-18,-11,-5,-5,-9,-14,-19,-24,-26,-24,-17,-7,1,4,
199 4,6,13,23,30,35,36,32,29,30,33,31,24,18,14,12,12,14,15,
200 17,19,19,16,14,12,8,4,3,4,2,-3,-7,-14,-25,-36,-40,-36,-26,
201 -13,2,16,28,34,33,29,22,12,0,-11,-16,-13,-6,-4,-6,-7,-4,
202 -1,-2,-7,-14,-21,-26,-28,-25,-19,-13,-8,-7,-7,-8,-4,3,8,11,
203 15,21,25,25,25,27,31,34,34,33,34,34,34,30,19,2,-15,-25,
204 -29,-33,-37,-42,-48,-54,-58,-62,-63,-58,-48,-39,-34,-32,-33,
205 -34,-33,-31,-28,-25,-22,-17,-11,-4,2,6,9,10,6,1,0,7,17,24,
206 28,31,31,31,31,33,34,35,35,31,25,20,17,15,13,10,8,7,7,6,
207 8,12,14,13,11,8,4,-3,-9,-13,-13,-10,-6,-3,2,10,15,14,9,5,
208 5,9,14,19,24,26,25,21,16,12,10,11,13,9,-1,-10,-16,-20,-26,
209 -32,-35,-35,-33,-34,-38,-44,-47,-45,-37,-25,-14,-6,0,3,7,10,
210 14,17,18,18,19,19,15,7,0,-5,-7,-10,-15,-20,-24,-25,-24,-25,
211 -26,-23,-18,-12,-8,-7,-9,-13,-20,-24,-22,-14,-3,9,18,26,30,
212 30,26,20,17,15,13,11,9,8,8,9,10,11,12,15,17,18,16,13,12,
213 12,11,7,3,0,-3,-3,-3,-4,-5,-5,-4,-2,1,3,4,3,1,-2,-4,-5,
214 -4,0,4,6,7,7,7,7,7,6,5,2,-1,-3,-3,-3,-3,-4,-6,-9,-9,-8,
215 -7,-5,-2,0,1,2,4,5,7,9,11,12,14,17,18,17,16,13,8,3,-1,
216 -5,-8,-11,-14,-18,-20,-19,-17,-16,-17,-17,-17,-18,-19,-22,
217 -24,-26,-26,-27,-25,-20,-12,-6,-3,-2,0,1,1,-1,-3,-7,-12,
218 -15,-14,-10,-6,-4,-4,-5,-5,-4,-1,1,2,1,1,1,3,6,11,13,13,
219 12,10,9,12,19,27,30,27,22,21,24,26,26,24,22,23,24,26,27,
220 26,23,19,17,17,19,22,22,21,20,17,16,17,18,18,16,10,2,-5,
221 -9,-10,-10,-12,-14,-17,-21,-23,-22,-20,-20,-20,-18,-15,-12,
222 -9,-7,-6,-6,-5,-4,-2,-1,-2,-6,-8,-7,-4,0,2,2,2,4,6,6,4,
223 2,-1,-2,-3,-3,-2,1,5,9,12,15,16,17,17,16,16,14,11,7,4,2,
224 2,3,2,0,-6,-12,-16,-17,-17,-17,-16,-15,-15,-16,-18,-19,-20,
225 -20,-22,-23,-23,-22,-21,-21,-22,-23,-23,-19,-13,-9,-6,-7,-8,
226 -9,-10,-10,-9,-9,-9,-9,-9,-10,-11,-11,-10,-9,-8,-7,-8,-10,
227 -13,-15,-17,-19,-22,-26,-29,-32,-33,-32,-30,-28,-26,-23,-20,
228 -13,-3,5,10,11,13,14,14,10,6,3,2,2,1,1,1,2,5,10,14,16,
229 16,13,10,7,5,7,9,10,9,9,10,13,16,19,22,23,21,18,14,10,7,
230 7,9,11,12,12,11,10,9,9,8,4,-1,-3,-1,0,0,0,2,4,6,7,7,6,
231 4,5,6,6,6,9,12,12,10,8,9,12,16,20,22,21,18,16,14,12,9,
232 6,4,4,7,9,8,3,-2,-3,-3,-1,-1,-3,-5,-6,-7,-6,-6,-5,-6,-8,
233 -11,-14,-16,-16,-15,-12,-9,-7,-8,-9,-10,-13,-16,-19,-19,-18,
234 -16,-14,-11,-8,-5,0,6,10,11,14,19,25,29,29,29,28,28,28,29,
235 32,36,37,34,28,23,21,19,17,15,15,16,16,16,19,24,28,30,32,
236 34,31,25,19,15,10,6,2,-2,-7,-15,-24,-28,-27,-24,-23,-24,
237 -24,-22,-19,-14,-11,-11,-14,-16,-18,-19,-18,-12,-8,-7,-7,-6,
238 -7,-5,0,5,8,7,5,8,15,21,22,20,16,11,7,10,14,12,5,-1,-2,
239 -2,-4,-8,-11,-14,-17,-15,-11,-11,-13,-12,-9,-8,-9,-10,-9,-9,
240 -13,-19,-23,-22,-22,-27,-36,-43,-48,-51,-51,-52,-59,-69,-72,
241 -67,-59,-51,-46,-46,-49,-52,-53,-52,-50,-49,-47,-45,-43,-38,
242 -27,-15,-9,-7,0,8,6,-1,-5,-2,4,11,13,10,6,1,-3,-6,-7,-4,
243 0,8,17,21,24,25,24,19,14,13,16,20,27,33,38,42,47,54,61,
244 68,72,74,73,71,71,70,67,62,56,52,50,51,53,55,52,45,37,31,
245 25,17,9,4,1,-1,-4,-9,-14,-17,-17,-17,-18,-20,-22,-24,-27,
246 -28,-28,-26,-22,-19,-16,-12,-8,-7,-8,-9,-10,-12,-16,-21,-25,
247 -26,-21,-15,-10,-7,-4,1,4,4,2,1,2,5,6,7,7,7,8,8,9,8,6,
248 3,4,4,4,3,2,0,2,6,10,10,10,10,9,8,6,2,-1,-5,-7,-7,-5,
249 -2,2,5,5,3,-1,-6,-10,-11,-9,-7,-5,-4,-4,-5,-4,-2,1,2,2,
250 3,3,2,1,1,1,0,-1,-3,-5,-7,-9,-11,-12,-13,-14,-14,-13,-13,
251 -13,-14,-13,-11,-8,-5,-1,3,5,5,4,2,1,-1,-1,-1,1,3,7,8,8,
252 6,5,6,9,12,12,9,5,1,-3,-5,-5,-3,-3,-5,-7,-10,-12,-11,-11,
253 -11,-10,-9,-8,-8,-9,-10,-12,-12,-11,-10,-8,-7,-4,-1,3,6,7,
254 7,6,6,5,3,2,1,1,2,3,4,3,1,-1,-1,0,0,-1,-2,-4,-6,-5,-4,
255 -4,-5,-7,-7,-7,-10,-13,-15,-17,-19,-19,-15,-11,-7,-6,-5,-6,
256 -7,-6,-5,-4,-4,-4,-3,-1,0,1,0,-1,1,2,2,2,3,5,6,5,6,8,
257 11,13,12,12,12,11,10,9,8,6,2,-2,-5,-7,-8,-7,-5,-4,-4,-7,
258 -11,-12,-10,-8,-6,-5,-5,-6,-8,-9,-8,-5,-3,-2,-2,-2,-3,-6,
259 -9,-12,-14,-14,-14,-12,-9,-5,-2,1,5,9,12,12,11,9,8,8,10,
260 11,12,12,11,10,11,12,12,11,11,12,14,14,14,14,14,14,15,14,
261 13,11,8,2,-3,-7,-10,-12,-13,-11,-7,-3,0,-1,-4,-6,-5,-3,-2,
262 -2,-2,0,3,5,7,7,9,10,11,12,13,15,16,17,20,23,24,23,19,
263 15,12,12,11,8,6,4,4,3,4,5,5,5,5,5,4,5,6,6,4,2,0,-1,
264 -1,1,3,6,6,4,2,2,2,3,2,2,3,3,1,-2,-4,-5,-4,-3,-1,0,-3,
265 -8,-12,-13,-12,-10,-9,-6,-2,1,2,2,2,1,0,0,2,4,4,4,2,1,
266 0,-3,-5,-7,-7,-7,-8,-11,-12,-11,-9,-7,-5,-3,-3,-6,-9,-11,
267 -12,-11,-10,-9,-9,-9,-9,-8,-7,-7,-6,-7,-6,-6,-6,-6,-7,-7,
268 -8,-8,-6,-4,-3,-3,-6,-9,-13,-14,-13,-12,-9,-6,-4,-3,-3,-3,
269 -3,-5,-5,-4,-3,-2,-1,-1,-1,-3,-3,-2,1,3,5,7,8,10,10,10,
270 9,7,5,3,2,3,5,5,2,-1,-2,-2,-3,-4,-3,-2,-2,-1,-1,-1,0,0,
271 0,0,-1,-1,-1,-3,-5,-6,-7,-7,-9,-9,-9,-8,-7,-7,-7,-9,-10,
272 -11,-12,-13,-15,-14,-10,-6,-2,2,5,9,12,13,13,12,11,11,10,
273 8,6,5,5,4,3,3,2,0,-2,-3,-4,-4,-3,-3,-2,1,2,1,-1,-1,-3,
274 -5,-7,-7,-5,-5,-6,-8,-11,-12,-13,-13,-12,-12,-13,-14,-14,
275 -12,-9,-7,-7,-8,-10,-11,-10,-9,-8,-7,-7,-6,-1,4,7,8,12,15,
276 18,20,21,20,17,16,17,18,19,20,20,19,19,18,15,13,12,8,3,0,
277 -1,0,0,0,2,3,3,2,0,-2,-4,-4,-2,2,3,2,1,-1,-2,-2,-2,-1,
278 0,1,1,1,1,1,2,2,3,4,6,6,5,4,4,3,2,2,4,5,6,6,7,6,6,
279 7,7,7,6,5,4,4,3,2,2,2,2,2,2,2,2,1,1,0,-1,-1,-1,-1,-1,
280 -2,-1,0,1,2,3,2,1,0,-1,0,0,0,-1,-2,-3,-3,-2,-1,0,0,1,
281 0,-2,-3,-3,-3,-2,-1,0,1,2,3,3,4,4,6,8,10,13,15,17,18,
282 18,18,17,15,14,13,12,11,10,8,5,3,1,-1,-4,-9,-15,-19,-21,
283 -23,-25,-25,-23,-20,-18,-18,-18,-18,-17,-15,-14,-12,-10,-9,
284 -8,-7,-5,-3,-3,-4,-4,-4,-2,-1,1,3,5,6,7,8,9,9,9,9,11,
285 12,13,15,16,16,15,14,12,12,12,12,12,11,10,9,9,8,7,7,7,7,
286 7,6,6,6,5,5,4,3,3,4,4,4,4,3,1,0,-1,-3,-4,-4,-3,-2,-1,
287 -1,-2,-1,-1,-1,-1,-2,-3,-3,-3,-3,-2,-2,-2,-1,-1,0,-1,-2,
288 -4,-6,-6,-7,-8,-9,-10,-10,-9,-9,-10,-10,-10,-11,-12,-12,-11,
289 -10,-8,-7,-6,-6,-7,-8,-10,-10,-10,-9,-9,-10,-12,-12,-12,-12,
290 -11,-9,-7,-5,-4,-4,-5,-5,-4,-3,-2,-2,-2,-1,-1,-1,-2,-3,-3,
291 -4,-5,-7,-8,-6,-2,1,2,1,1,0,1,1,1,1,2,2,2,2,2,2,3,6,
292 8,8,7,6,6,6,5,4,2,2,3,3,3,5,7,8,8,8,9,9,9,8,7,7,7,
293 8,8,6,3,-1,-4,-6,-8,-10,-12,-12,-11,-10,-8,-7,-7,-8,-8,-8,
294 -5,-3,0,0,-1,-1,0,0,0,0,-2,-4,-5,-5,-3,-2,-2,-2,-3,-3,
295 -4,-5,-6,-5,-5,-4,-3,-2,-2,-3,-4,-5,-7,-7,-8,-8,-9,-9,-9,
296 -8,-8,-10,-12,-14,-15,-17,-19,-20,-20,-20,-22,-23,-23,-22,
297 -20,-19,-17,-15,-12,-9,-7,-6,-5,-4,-2,0,1,2,1,-1,-1,0,0,
298 0,0,1,2,3,2,1,0,-2,-3,-4,-5,-5,-4,-2,-1,0,1,2,3,3,3,3,
299 3,1,0,-1,0,2,4,3,3,3,4,4,5,6,7,7,6,5,3,2,2,3,3,4,5,
300 6,8,9,10,11,11,12,14,14,15,15,15,16,16,16,15,13,13,14,14,
301 14,14,15,16,17,18,18,17,16,16,16,15,15,14,13,11,11,12,13,
302 12,11,9,9,8,9,10,10,9,8,6,6,6,6,6,6,6,5,5,5,5,5,5,5,
303 5,4,4,3,3,2,3,3,3,2,1,1,2,4,4,4,3,2,1,1,0,0,0,0,-1,
304 -2,-1,-1,-1,-1,0,0,1,1,0,0,0,0,1,1,1,1,1,0,0,-1,-1,-1,
305 -1,-2,-4,-5,-6,-6,-5,-4,-3,-2,-2,-1,-2,-3,-3,-3,-4,-4,-5,
306 -6,-7,-7,-5,-3,-2,-1,0,2,3,2,0,-2,-3,-4,-5,-5,-4,-1,2,5,
307 7,10,12,11,9,7,6,5,4,4,3,2,0,-2,-3,-4,-5,-5,-5,-6,-6,
308 -6,-7,-6,-6,-5,-6,-6,-7,-7,-7,-6,-6,-5,-5,-5,-6,-6,-6,-6,
309 -5,-5,-5,-5,-5,-4,-3,-2,-3,-4,-4,-3,-1,0,0,-2,-4,-5,-5,
310 -5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4,-3,-2,-1,0,2,2,2,2,3,3,
311 4,3,3,2,1,0,0,0,0,-1,-2,-3,-3,-3,-3,-3,-3,-4,-5,-5,-4,
312 -4,-5,-6,-7,-7,-8,-8,-9,-9,-9,-8,-8,-8,-8,-9,-9,-9,-9,-9,
313 -8,-8,-8,-7,-7,-7,-6,-6,-5,-5,-5,-5,-5,-4,-4,-4,-3,-3,-3,
314 -3,-3,-3,-4,-4,-3,-2,-1,0,1,2,2,2,2,1,1,1,2,2,3,3,3,4,
315 3,3,3,3,4,5,5,5,5,6,6,7,6,6,5,4,4,4,4,5,7,9,10,11,
316 11,11,11,11,11,10,10,11,10,9,7,6,6,6,6,5,3,1,1,1,1,1,
317 1,0,-1,-2,-2,-2,-3,-3,-4,-4,-3,-3,-2,-3,-3,-3,-3,-1,0,1,
318 1,0,0,-1,-2,-2,-1,0,1,1,1,0,-1,-2,-3,-3,-3,-2,-3,-5,-6,
319 -7,-7,-6,-6,-5,-5,-6,-7,-7,-6,-5,-5,-5,-6,-6,-7,-7,-7,-7,
320 -6,-6,-6,-7,-7,-7,-6,-5,-4,-3,-1,0,0,-1,-2,-2,-3,-4,-4,
321 -4,-3,-3,-2,-1,0,1,3,4,5,7,8,8,8,7,7,6,6,6,6,6,6,6,6,
322 6,6,6,7,8,9,9,8,8,7,7,7,8,8,8,8,8,8,8,7,6,4,3,3,3,
323 4,4,3,2,3,4,4,3,3,3,3,3,2,2,2,2,1,1,0,0,0,0,0,1,1,
324 2,1,0,0,0,0,1,1,0,-1,-1,-1,0,2,4,5,5,5,4,5,6,6,5,5,
325 4,5,5,4,4,4,4,4,4,3,2,1,0,0,-1,-1,0,0,0,-1,-1,-1,-1,
326 -1,0,0,-1,-3,-4,-5,-6,-6,-5,-4,-4,-4,-4,-4,-5,-4,-3,-3,
327 -2,-3,-2,-2,-1,-1,-1,-2,-3,-3,-3,-2,-2,-2,-2,-3,-4,-5,-6,
328 -7,-8,-9,-8,-8,-7,-6,-5,-5,-5,-6,-6,-8,-9,-10,-10,-10,-10,
329 -10,-9,-8,-7,-6,-6,-6,-6,-6,-7,-7,-6,-7,-7,-7,-7,-6,-4,-3,
330 -2,-2,-2,-2,-1,-1,-1,-2,-2,-2,-2,-1,-1,-2,-3,-3,-3,-2,-1,
331 0,0,-1,-1,-2,-2,-2,-1,0,1,1,3,4,5,6,6,6,6,6,5,5,5,5,
332 5,3,1,-1,-1,-2,-3,-4,-4,-3,-2,-2,-3,-5,-5,-5,-3,-2,0,1,
333 1,1,1,1,1,1,1,2,2,2,3,3,4,5,6,6,6,6,5,5,5,5,4,3,2,
334 1,0,0,1,1,2,2,1,0,0,0,1,1,0,-1,-2,-3,-4,-4,-3,-3,-3,
335 -3,-3,-3,-3,-2,-2,-2,-1,-1,-1,-1,0,1,2,2,3,3,3,3,4,5,6,
336 7,6,5,4,3,3,3,3,4,5,6,6,6,6,7,7,7,7,6,5,5,6,7,7,7,
337 6,6,6,5,6,6,5,5,4,4,4,3,2,2,2,2,3,4,4,4,4,4,4,4,4,
338 3,3,2,2,2,3,3},{2,2,1,-1,0,1,-1,-3,-1,3,3,2,3,2,-3,-6,
339 -5,-1,0,-3,-4,-1,2,6,13,14,11,9,9,9,9,9,7,1,-3,-4,-2,1,
340 2,-4,-12,-13,-12,-10,-10,-8,-5,-3,-3,-4,-1,5,14,17,10,4,6,
341 10,8,4,2,3,4,4,5,7,9,9,4,-3,-8,-10,-11,-11,-9,-6,-3,-1,
342 -1,0,2,3,4,3,1,2,1,-4,-9,-16,-25,-23,-4,14,19,11,-3,-15,
343 -21,-24,-25,-26,-23,-14,-1,19,43,58,57,43,27,21,17,7,-2,-8,
344 -16,-30,-43,-43,-34,-26,-24,-25,-25,-16,-3,7,12,13,7,2,5,
345 14,15,4,-9,-15,-16,-12,-3,12,34,55,64,53,37,28,21,12,11,
346 22,32,23,2,-23,-33,-19,8,30,37,34,27,20,10,-2,-12,-14,-13,
347 -14,-14,-13,-12,-12,-13,-14,-16,-17,-18,-19,-23,-31,-41,-52,
348 -61,-62,-43,-7,21,25,20,16,12,10,9,9,9,10,9,4,-2,-5,-5,
349 -3,-3,-6,-6,-2,6,10,9,7,7,10,15,22,28,31,32,32,31,29,27,
350 24,18,12,7,6,9,12,11,10,8,3,-3,-9,-15,-19,-21,-21,-22,-27,
351 -34,-38,-37,-34,-32,-28,-23,-18,-14,-11,-9,-9,-10,-9,-1,13,
352 28,38,43,41,34,23,11,-3,-15,-24,-30,-34,-34,-26,-11,3,5,0,
353 -3,-1,-1,-5,-12,-16,-15,-11,-5,4,14,21,24,22,20,21,23,27,
354 29,27,25,23,20,16,14,14,15,15,15,15,10,-2,-19,-36,-53,-71,
355 -83,-85,-80,-71,-63,-56,-47,-37,-25,-15,-7,2,12,21,26,25,20,
356 13,9,8,9,10,14,21,28,35,38,39,41,44,43,40,40,43,42,35,26,
357 15,6,4,6,8,9,9,7,1,-8,-15,-19,-20,-21,-23,-24,-22,-20,-19,
358 -18,-17,-18,-20,-21,-18,-14,-11,-8,-1,10,22,31,34,36,38,39,
359 34,22,10,2,1,6,11,12,7,1,-7,-14,-20,-22,-20,-21,-33,-52,
360 -71,-82,-86,-85,-82,-78,-75,-70,-64,-59,-53,-39,-19,1,16,23,
361 25,26,25,20,15,10,9,9,10,9,7,5,8,15,22,27,30,33,35,34,
362 29,24,21,20,21,23,25,25,26,28,31,35,40,45,49,52,53,50,42,
363 30,18,8,1,-4,-7,-9,-10,-10,-9,-8,-8,-10,-12,-15,-18,-23,
364 -28,-30,-31,-30,-30,-31,-31,-29,-24,-18,-10,-5,-5,-8,-9,-7,
365 -4,-2,-2,-2,-2,0,2,5,8,12,14,12,8,4,1,-1,-4,-7,-10,-13,
366 -15,-16,-16,-11,-6,-1,2,6,8,8,9,9,9,8,9,10,13,16,17,17,
367 15,12,7,2,0,0,-2,-7,-15,-21,-24,-26,-27,-29,-30,-29,-28,
368 -24,-19,-15,-13,-13,-13,-13,-13,-12,-10,-9,-9,-6,-1,7,15,23,
369 26,24,21,19,17,13,9,5,3,3,4,5,7,8,7,6,4,3,3,3,2,1,0,
370 2,5,9,14,18,17,16,19,24,30,37,43,45,39,30,21,17,16,12,5,
371 -2,-4,-4,-4,-4,-7,-10,-12,-13,-14,-14,-12,-10,-10,-11,-11,
372 -12,-12,-11,-11,-14,-19,-23,-27,-27,-22,-16,-11,-9,-7,-8,-8,
373 -5,-1,0,0,1,4,8,8,7,7,7,7,5,2,-1,-3,-3,-3,0,4,8,9,6,
374 2,3,5,5,4,2,0,-1,-1,-1,1,3,5,7,7,5,2,-1,-4,-5,-6,-6,
375 -5,-6,-7,-10,-11,-11,-11,-13,-17,-21,-25,-26,-24,-20,-17,-16,
376 -15,-16,-16,-15,-12,-11,-10,-9,-7,-4,0,3,3,3,5,8,12,14,16,
377 14,10,5,1,-2,-6,-9,-10,-11,-12,-13,-13,-12,-10,-7,-4,-2,-1,
378 -1,-3,-5,-5,-3,-1,0,0,-1,-1,2,6,11,15,19,24,30,36,40,40,
379 35,29,24,19,14,10,8,7,6,5,4,5,7,9,9,9,10,10,7,2,-2,-2,
380 0,4,7,8,8,8,7,7,8,9,8,6,4,2,0,-1,0,3,6,6,5,3,3,5,9,
381 12,13,11,9,9,12,14,14,10,6,3,3,7,11,12,13,13,12,11,10,9,
382 7,6,5,4,6,7,6,2,-2,-8,-15,-19,-20,-18,-18,-21,-21,-16,-12,
383 -15,-21,-26,-29,-28,-24,-21,-19,-18,-18,-20,-21,-23,-25,-25,
384 -25,-24,-25,-27,-26,-23,-17,-13,-10,-12,-17,-18,-16,-13,-12,
385 -9,-5,-2,1,3,6,8,10,13,15,15,14,14,16,16,14,12,11,14,16,
386 13,10,8,7,4,0,-2,-6,-8,-8,-6,-2,3,7,10,10,9,12,16,20,19,
387 12,0,-13,-19,-20,-20,-19,-19,-19,-20,-21,-18,-13,-8,-3,0,2,
388 3,6,11,18,20,16,11,10,10,12,14,15,16,15,14,15,17,16,17,
389 19,18,13,7,8,14,16,12,5,1,-3,-5,-6,-6,-8,-12,-13,-9,-7,
390 -7,-7,-3,2,4,6,8,8,6,3,0,-5,-10,-13,-16,-24,-36,-47,-51,
391 -48,-45,-47,-54,-58,-57,-53,-49,-47,-48,-48,-43,-35,-26,-22,
392 -25,-28,-28,-20,-10,-1,3,3,7,15,25,38,49,52,48,45,52,64,
393 66,61,58,61,66,69,65,56,46,41,38,39,42,47,51,52,47,35,24,
394 18,15,12,15,21,28,33,37,39,40,40,36,28,21,18,19,20,16,6,
395 -3,-9,-14,-18,-19,-17,-15,-18,-21,-25,-32,-44,-58,-70,-79,
396 -88,-94,-95,-90,-80,-69,-61,-55,-49,-43,-35,-28,-22,-17,-11,
397 -6,-3,1,4,6,8,8,8,7,6,3,1,0,-1,-3,-3,-1,4,12,19,22,22,
398 22,24,25,22,18,13,11,11,9,6,5,4,3,2,1,-1,-3,-5,-6,-5,-2,
399 -1,-3,-5,-4,2,5,3,-2,-4,-4,-7,-11,-14,-13,-9,-5,-1,4,8,
400 12,14,12,8,5,4,4,7,9,10,10,9,8,7,6,3,1,1,3,4,3,2,2,2,
401 3,4,3,0,-4,-7,-8,-8,-8,-8,-7,-5,-2,-1,-2,-2,1,6,9,11,11,
402 9,6,3,2,2,3,5,6,6,7,9,10,10,6,2,0,0,0,-2,-6,-11,-15,
403 -19,-20,-18,-15,-12,-11,-11,-11,-10,-9,-6,-3,-1,1,3,6,9,11,
404 12,13,16,19,20,20,20,21,21,20,16,10,5,2,1,-1,-4,-5,-4,-2,
405 -1,-2,-4,-7,-8,-8,-7,-8,-9,-10,-10,-11,-12,-11,-10,-10,-12,
406 -13,-15,-18,-20,-20,-18,-15,-13,-10,-7,-5,-5,-5,-5,-4,-4,-3,
407 0,3,4,5,6,7,7,4,1,0,2,5,4,0,-3,-4,-6,-8,-8,-6,-3,0,0,
408 -3,-7,-11,-13,-14,-14,-14,-16,-19,-20,-19,-16,-12,-8,-4,-2,
409 -2,-4,-4,-2,0,2,4,5,6,7,11,14,16,17,18,18,18,19,18,18,
410 18,20,23,26,30,34,36,38,38,39,39,38,32,27,22,20,20,21,19,
411 15,10,5,0,-4,-9,-15,-19,-19,-20,-21,-23,-23,-20,-16,-13,-12,
412 -14,-18,-21,-23,-23,-22,-19,-16,-14,-10,-5,-1,2,2,-2,-5,-3,
413 2,8,10,11,13,16,17,17,17,17,18,18,17,15,13,12,13,12,11,9,
414 4,0,-3,-5,-6,-7,-8,-8,-8,-9,-10,-12,-11,-8,-7,-7,-10,-11,
415 -11,-11,-9,-8,-9,-12,-14,-14,-12,-9,-7,-5,-5,-5,-6,-6,-7,
416 -7,-8,-9,-10,-9,-8,-5,-3,-2,-3,-3,-5,-7,-10,-13,-15,-14,
417 -12,-8,-6,-4,-1,2,3,2,2,3,3,4,5,7,8,8,7,5,2,0,0,3,6,
418 7,4,0,-3,-2,0,-1,-3,-4,-7,-9,-10,-10,-9,-8,-6,-5,-5,-5,
419 -3,1,4,6,7,5,2,1,2,2,2,3,3,2,1,0,-1,-1,0,1,3,7,11,13,
420 14,17,20,22,21,19,16,14,15,19,20,19,15,12,10,10,12,15,18,
421 18,18,18,16,13,11,7,4,1,-1,-2,-2,-1,-1,-1,-4,-6,-8,-9,
422 -11,-14,-15,-15,-14,-15,-15,-15,-14,-14,-15,-16,-17,-17,-18,
423 -20,-20,-19,-18,-17,-17,-16,-14,-11,-10,-8,-5,-2,1,4,8,10,
424 10,11,16,21,24,25,27,27,25,22,19,15,10,6,1,-4,-8,-11,-14,
425 -16,-17,-17,-17,-16,-15,-14,-10,-6,-1,3,6,7,6,3,-1,-3,-5,
426 -8,-9,-8,-5,-3,-3,-4,-5,-4,-2,1,3,5,7,7,7,8,9,9,6,4,3,
427 5,8,10,11,10,10,10,9,8,2,-4,-9,-11,-14,-16,-16,-16,-17,
428 -17,-18,-16,-14,-14,-16,-17,-15,-12,-12,-12,-12,-13,-14,-12,
429 -6,0,4,6,7,8,8,8,9,10,12,16,19,20,17,14,13,14,14,12,11,
430 11,11,11,10,9,8,9,10,11,12,12,10,7,5,4,4,5,7,8,10,10,9,
431 8,6,4,2,1,-1,-2,-3,-5,-7,-8,-10,-9,-9,-8,-8,-7,-7,-6,-6,
432 -6,-5,-4,-4,-5,-4,-3,-2,-2,-2,-2,-3,-4,-5,-6,-7,-8,-8,-8,
433 -8,-8,-8,-8,-7,-6,-4,-2,0,-1,-2,-2,-1,0,3,4,4,5,7,9,9,
434 9,9,9,9,10,12,13,15,16,17,16,13,9,4,-1,-6,-9,-11,-13,-16,
435 -20,-24,-28,-33,-38,-40,-41,-40,-39,-37,-36,-35,-33,-29,-25,
436 -21,-18,-16,-13,-9,-6,-4,-2,0,3,6,9,12,14,14,14,14,15,16,
437 18,20,22,24,23,22,22,22,21,20,19,19,18,17,16,14,12,12,14,
438 17,19,19,19,18,16,13,10,8,6,5,4,3,1,0,-1,-2,-2,-2,-2,-2,
439 -2,-2,-1,-1,-3,-5,-7,-7,-6,-6,-5,-4,-2,0,1,0,-1,-2,-1,-1,
440 -1,-2,-2,-2,-2,-2,-3,-3,-2,-1,-2,-3,-4,-6,-8,-9,-10,-10,
441 -9,-8,-8,-7,-7,-6,-7,-7,-7,-7,-7,-5,-3,0,1,2,2,1,-1,-3,
442 -5,-5,-5,-4,-3,-4,-5,-5,-3,-2,-1,0,1,2,2,1,0,-1,-1,-1,
443 -1,-1,-2,-2,-1,0,0,1,1,2,2,2,2,4,7,11,12,11,9,9,10,11,
444 12,13,13,14,14,14,14,15,16,18,20,20,19,17,15,14,14,12,11,
445 9,9,8,8,9,9,9,7,4,2,0,-2,-4,-7,-10,-13,-14,-15,-16,-16,
446 -17,-18,-18,-18,-18,-17,-16,-15,-15,-14,-12,-10,-10,-11,-12,
447 -12,-11,-10,-9,-8,-8,-7,-6,-5,-4,-4,-4,-5,-4,-3,-1,-1,-2,
448 -3,-4,-6,-8,-9,-10,-10,-8,-7,-6,-7,-8,-9,-9,-9,-9,-9,-8,
449 -8,-7,-7,-8,-8,-7,-6,-5,-4,-4,-4,-3,-1,2,5,5,5,5,6,7,9,
450 11,12,13,15,17,19,19,19,18,16,13,12,12,10,8,8,9,9,10,10,
451 9,7,4,2,1,1,2,1,1,2,3,5,7,7,6,5,5,5,4,3,2,1,2,2,3,
452 4,3,0,-2,-2,-2,-1,1,2,2,0,-2,-4,-5,-5,-4,-3,-2,-3,-2,-1,
453 1,2,2,1,0,0,-1,-2,-4,-5,-5,-5,-5,-5,-6,-7,-7,-7,-6,-5,
454 -4,-4,-3,-2,-2,-3,-4,-4,-3,-1,-1,0,0,1,2,5,8,10,9,6,4,
455 2,2,1,0,-1,-2,-2,-2,-2,-2,-2,-3,-3,-2,-1,0,1,1,1,1,3,4,
456 5,5,5,4,4,5,4,2,0,0,2,3,5,5,4,1,-1,-1,0,0,0,-1,-1,-1,
457 0,2,2,2,1,0,-1,-2,-3,-4,-4,-4,-3,-2,-2,-3,-4,-4,-4,-3,
458 -3,-3,-3,-3,-4,-5,-5,-4,-3,-2,-1,-1,0,0,0,1,2,1,1,0,-1,
459 -2,-3,-3,-2,0,2,2,-1,-4,-6,-8,-9,-10,-11,-12,-11,-10,-8,
460 -5,-1,2,5,8,11,11,9,7,6,5,4,3,3,3,2,1,1,1,1,2,2,1,1,
461 1,2,3,4,4,5,5,5,5,5,5,5,4,3,2,1,1,1,1,2,3,4,3,3,2,
462 2,1,1,1,0,0,0,0,0,0,1,2,3,3,4,4,4,4,4,4,4,4,5,6,7,
463 7,7,6,5,4,3,1,0,1,2,0,-2,-5,-7,-8,-8,-9,-8,-8,-7,-7,-6,
464 -6,-6,-6,-7,-6,-5,-4,-3,-3,-3,-5,-5,-5,-5,-4,-4,-5,-4,-4,
465 -3,-2,-3,-3,-4,-4,-4,-3,-2,-1,-1,-1,-1,-1,-1,0,0,1,2,3,
466 4,4,4,3,3,3,4,4,4,3,2,3,3,4,6,7,9,9,9,8,8,8,8,7,7,
467 6,6,6,5,4,3,2,1,1,1,2,2,2,1,0,-1,-1,-2,-3,-4,-5,-6,-6,
468 -6,-7,-6,-4,-1,1,3,3,3,2,2,0,-1,-2,-3,-4,-6,-8,-8,-7,-6,
469 -6,-6,-6,-5,-4,-3,-2,-1,-1,-2,-3,-3,-4,-4,-4,-4,-4,-3,-2,
470 -1,-1,-1,-3,-3,-3,-3,-4,-4,-5,-5,-5,-6,-7,-7,-7,-6,-6,-7,
471 -7,-7,-7,-7,-6,-6,-5,-6,-7,-8,-8,-7,-7,-6,-5,-4,-3,-2,-1,
472 1,3,4,3,2,1,0,0,1,1,3,4,4,4,4,4,4,3,3,4,4,4,4,5,5,
473 4,4,5,7,9,9,9,9,10,10,11,12,13,14,15,16,16,16,15,14,12,
474 11,10,9,7,6,5,4,3,2,2,2,1,1,-1,-2,-4,-6,-8,-9,-9,-8,-7,
475 -7,-6,-6,-5,-5,-5,-6,-7,-8,-8,-7,-6,-6,-6,-5,-5,-5,-6,-6,
476 -5,-4,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2,-1,-1,-1,-2,-3,-3,
477 -3,-1,0,1,1,1,1,1,2,3,5,6,7,7,8,8,8,7,6,5,3,3,3,4,5,
478 5,4,4,4,4,3,2,1,0,-2,-3,-4,-5,-5,-4,-3,-2,-1,0,0,0,0,
479 -1,-1,-1,0,1,2,2,3,2,1,0,-1,0,0,1,1,1,0,0,-1,-1,-1,-2,
480 -3,-4,-6,-6,-6,-7,-7,-7,-7,-7,-6,-6,-6,-5,-5,-4,-4,-3,-2,
481 -2,-1,-1,-1,-2,-2,-1,0,1,1,1,2,2,2,2,2,1,1,0,-1,-2,-3,
482 -2,-1,-1,-1,-1,0,2,3,4,5,5,4,4,3,3,2,1,0,0,1,2,2,2,2,
483 2,3,3,4,3,3,3,3,3,4,5,7,9,9,9,9,10,9,8,7,6,6,5,5,5,
484 5,4,2,1,-1,-2,-2,-2,-1,-1,0,0,0,-2,-3,-5,-5,-5,-5,-5,-5,
485 -5,-4,-4,-3,-1,1,2,2,2,1,1,1,2,2,2,1,1,-1,-3,-4,-6,-7,
486 -8,-10,-13,-15,-15,-13,-11,-10,-9,-10,-11,-12,-13,-14,-13,
487 -12,-14,-15,-16,-16,-14,-11,-9,-7,-7,-6,-6,-5,-4,-2,0,1,2,
488 3,3,4,5,6,7,8,9,9,10,10,11,11,12,12,11,10,9,9,10,11,13,
489 15,16,17,17,17,16,15,14,14,13,12,10,9,8,9,9,9,8,8,7,6,
490 5,4,4,3,2,1,1,0,0,0,0,1,1,1,2,1,1,1,1,0,0,0,1,1,1,
491 1,2,2,2,1},{0,1,2,1,-1,1,2,-1,-4,-3,0,0,1,4,5,1,-4,-5,
492 -2,-2,-6,-9,-10,-12,-9,-2,2,2,3,4,6,8,12,13,10,6,4,5,10,
493 14,10,4,0,-2,-4,-7,-9,-7,-7,-10,-13,-15,-13,-2,5,2,-2,0,
494 5,6,3,2,2,3,2,3,5,11,16,16,13,9,5,1,-2,-4,-4,-3,-2,-2,
495 -2,-1,2,4,5,6,9,12,12,10,2,-17,-27,-17,0,14,20,15,6,-1,
496 -8,-17,-28,-39,-48,-51,-42,-20,7,25,29,28,33,37,36,35,36,
497 34,20,0,-11,-12,-12,-15,-24,-33,-34,-29,-21,-13,-7,-10,-16,
498 -13,0,7,3,-7,-19,-30,-41,-49,-49,-35,-8,15,22,22,22,19,9,
499 6,19,38,45,35,7,-19,-27,-16,3,19,28,35,40,41,34,26,22,20,
500 17,15,14,15,15,15,15,14,14,15,18,19,15,7,-9,-35,-63,-71,
501 -51,-28,-17,-12,-9,-7,-7,-6,-5,-2,1,5,4,0,-4,-6,-5,-7,-13,
502 -19,-19,-14,-11,-11,-14,-17,-19,-18,-14,-8,-2,4,9,13,18,22,
503 25,26,23,18,16,19,23,26,30,33,35,34,32,27,23,21,22,21,17,
504 9,0,-6,-11,-15,-19,-20,-20,-20,-19,-19,-21,-28,-36,-38,-32,
505 -20,-6,10,23,32,38,38,34,26,17,7,-7,-20,-26,-19,-8,-3,-4,
506 -5,-1,2,0,-7,-15,-22,-27,-30,-28,-21,-13,-7,-6,-6,-5,-1,5,
507 10,14,18,21,22,23,23,25,28,33,41,52,62,67,66,60,48,28,6,
508 -13,-26,-35,-42,-50,-56,-58,-58,-57,-56,-53,-45,-35,-24,-17,
509 -15,-18,-21,-23,-26,-30,-32,-30,-25,-19,-14,-10,-4,3,7,9,14,
510 24,33,38,38,34,27,22,22,24,27,32,36,37,33,26,22,19,15,10,
511 6,3,2,1,0,0,-3,-9,-15,-18,-20,-25,-30,-31,-28,-19,-10,-2,
512 5,16,29,37,37,31,24,21,24,32,39,43,46,45,42,38,39,47,56,
513 57,47,31,14,-1,-13,-23,-32,-42,-50,-57,-69,-81,-86,-82,-70,
514 -57,-47,-38,-29,-22,-20,-20,-22,-23,-23,-22,-22,-26,-32,-35,
515 -34,-30,-26,-21,-15,-9,-4,-3,-5,-7,-9,-10,-9,-8,-9,-9,-9,
516 -8,-6,-2,4,12,23,35,46,52,53,51,47,41,37,33,29,26,24,24,
517 25,26,27,26,26,25,22,16,11,7,4,1,-5,-11,-16,-19,-19,-14,
518 -9,-7,-10,-12,-12,-11,-9,-9,-10,-11,-12,-12,-10,-7,-2,4,8,
519 9,9,9,9,9,7,4,1,-3,-10,-15,-17,-16,-15,-13,-11,-8,-7,-5,
520 -4,-3,-3,-4,-3,0,5,9,14,18,21,20,19,20,23,26,26,22,17,13,
521 9,5,0,-5,-10,-15,-17,-17,-15,-14,-15,-16,-18,-19,-21,-22,
522 -25,-29,-32,-34,-32,-26,-17,-10,-5,-2,1,3,4,2,0,-3,-4,-6,
523 -5,-4,-2,-1,-1,-2,-3,-4,-4,-6,-9,-13,-16,-17,-16,-13,-9,
524 -11,-13,-14,-12,-8,0,13,24,31,31,29,30,34,35,31,27,23,22,
525 23,23,22,19,17,15,12,9,9,10,10,9,9,8,7,10,12,12,8,3,-5,
526 -12,-15,-14,-12,-11,-10,-12,-14,-13,-11,-10,-12,-12,-9,-5,-3,
527 -2,-1,1,3,5,4,2,-1,-4,-6,-7,-4,1,4,3,1,1,4,6,6,6,4,3,
528 1,0,1,2,5,8,11,13,13,13,11,10,9,9,10,11,11,9,9,10,11,
529 11,10,6,-1,-7,-9,-9,-9,-9,-10,-12,-14,-15,-16,-16,-18,-19,
530 -20,-20,-18,-15,-15,-16,-16,-13,-9,-4,2,7,8,8,7,6,4,2,-1,
531 -3,-5,-8,-12,-14,-15,-15,-15,-13,-11,-11,-13,-15,-17,-18,-18,
532 -18,-19,-22,-26,-27,-28,-28,-28,-26,-24,-18,-10,0,8,13,15,
533 16,16,14,11,9,9,7,5,2,2,3,4,4,5,8,11,11,7,2,-2,-3,-2,
534 1,2,3,3,3,3,5,7,8,8,7,6,3,0,-1,0,2,3,2,0,-3,-3,-1,3,
535 5,5,3,3,6,10,13,14,11,6,3,5,8,10,12,14,16,17,18,19,19,
536 20,19,19,23,27,30,33,34,32,26,21,19,19,17,12,9,13,18,19,
537 16,10,4,1,1,1,2,3,4,4,3,1,-2,-4,-5,-6,-9,-14,-19,-20,
538 -19,-15,-11,-12,-17,-21,-22,-24,-26,-27,-27,-26,-25,-24,-23,
539 -21,-19,-16,-12,-11,-10,-8,-5,-2,-1,-3,-3,1,5,7,7,8,10,9,
540 8,6,2,-3,-7,-10,-10,-9,-6,-3,-2,-2,0,6,16,25,30,27,18,10,
541 6,2,-1,-2,-5,-11,-17,-21,-22,-22,-21,-19,-20,-21,-22,-18,-9,
542 -3,-3,-5,-6,-6,-6,-4,-2,0,0,0,2,4,4,7,13,16,14,9,9,16,
543 22,24,23,21,18,16,16,16,14,8,5,5,5,2,0,1,5,7,11,16,20,
544 24,28,30,31,32,35,38,38,30,18,9,7,8,5,-4,-14,-21,-24,-26,
545 -30,-37,-46,-51,-50,-46,-43,-48,-57,-65,-68,-67,-63,-63,-68,
546 -72,-73,-71,-62,-48,-41,-43,-46,-39,-26,-18,-17,-16,-11,-1,
547 11,18,19,16,13,10,8,10,16,25,36,42,39,33,28,22,15,11,11,
548 15,19,24,30,38,47,52,51,49,49,53,62,66,64,62,59,55,50,48,
549 51,54,56,60,65,67,64,56,47,35,20,3,-14,-26,-32,-36,-38,-41,
550 -45,-48,-47,-46,-45,-44,-41,-39,-36,-33,-29,-26,-22,-19,-16,
551 -13,-12,-12,-13,-14,-16,-20,-25,-28,-28,-24,-18,-14,-11,-8,
552 -2,4,7,7,6,7,8,9,8,7,8,8,7,8,7,5,2,-1,-1,1,2,-1,-5,
553 -5,-1,4,5,3,3,4,2,-3,-10,-13,-16,-17,-17,-15,-12,-7,-1,1,
554 0,-2,-4,-4,-3,-1,1,3,4,5,6,6,5,3,2,3,4,4,3,3,4,5,8,
555 10,10,7,4,2,1,-2,-4,-6,-7,-5,-5,-8,-10,-10,-7,-4,0,4,5,
556 4,2,1,0,0,0,1,2,3,6,10,13,14,12,11,12,15,16,16,13,8,3,
557 -2,-5,-6,-6,-7,-8,-11,-13,-15,-15,-15,-16,-16,-16,-15,-13,
558 -11,-11,-10,-6,-3,0,2,5,9,15,19,21,20,18,17,16,15,12,10,
559 9,11,13,14,13,10,9,9,9,9,8,8,7,5,4,4,5,6,6,5,4,0,-4,
560 -8,-10,-12,-13,-12,-11,-9,-10,-10,-10,-10,-12,-12,-11,-9,-8,
561 -7,-4,-1,2,2,-1,-2,0,5,6,6,5,4,2,-1,-4,-4,-1,3,6,6,5,
562 3,0,-3,-3,-3,-5,-10,-15,-19,-22,-22,-21,-19,-17,-18,-20,-21,
563 -22,-22,-22,-22,-22,-24,-24,-23,-21,-18,-16,-15,-14,-13,-12,
564 -12,-13,-14,-15,-15,-13,-10,-6,-1,3,7,12,19,25,27,26,25,24,
565 27,31,35,37,38,37,37,36,33,27,23,20,18,14,8,4,3,4,6,9,8,
566 6,2,-2,-7,-11,-13,-15,-18,-19,-17,-13,-9,-7,-10,-16,-18,-17,
567 -14,-12,-11,-9,-6,-3,-1,0,2,5,8,10,11,11,12,14,17,20,22,
568 21,19,17,16,15,13,12,11,11,11,8,5,4,6,8,8,6,4,3,2,3,5,
569 5,2,-1,-4,-5,-5,-3,-1,0,0,0,0,0,0,-1,-2,-4,-6,-6,-5,-3,
570 -2,0,1,2,2,-1,-4,-9,-12,-13,-14,-15,-15,-13,-11,-9,-9,-9,
571 -8,-9,-8,-7,-5,-3,0,2,2,0,-3,-4,-2,1,5,6,3,0,1,3,4,4,
572 3,1,-2,-4,-6,-8,-9,-9,-9,-11,-13,-14,-13,-10,-7,-4,-4,-5,
573 -6,-6,-7,-7,-6,-5,-5,-6,-7,-9,-11,-14,-16,-17,-16,-14,-13,
574 -13,-10,-6,-2,2,3,1,-2,-1,3,8,10,9,7,5,3,3,6,9,12,15,
575 18,20,22,23,23,21,20,18,17,16,17,18,20,19,18,18,17,15,13,
576 10,9,9,7,6,6,6,5,4,3,2,1,-1,-4,-7,-8,-9,-11,-14,-16,-18,
577 -18,-20,-21,-22,-22,-22,-20,-18,-17,-18,-18,-15,-10,-6,-1,4,
578 10,14,17,20,23,24,24,23,21,18,15,12,8,4,1,-2,-5,-8,-11,
579 -13,-12,-10,-7,-3,2,5,5,5,4,2,-1,-5,-6,-5,-4,-4,-6,-8,
580 -10,-10,-10,-8,-6,-5,-4,-4,-1,1,3,2,1,-1,-2,1,4,6,8,10,
581 13,18,22,22,19,16,14,11,8,6,5,3,0,-3,-3,-3,-4,-7,-10,-10,
582 -10,-10,-11,-13,-17,-22,-26,-25,-22,-20,-17,-16,-15,-15,-15,
583 -15,-16,-14,-11,-5,-1,-1,-2,-1,0,1,2,1,2,3,4,4,2,1,2,3,
584 4,6,9,10,9,7,5,4,4,4,6,9,11,13,14,15,15,14,14,14,14,13,
585 13,11,9,7,5,4,3,3,2,2,2,1,1,1,2,1,0,0,1,2,2,3,4,4,4,
586 4,4,2,1,0,-1,-1,-3,-4,-5,-7,-8,-8,-6,-5,-5,-6,-7,-8,-8,
587 -7,-7,-7,-6,-4,-2,-2,-1,0,1,1,2,3,6,9,13,18,22,26,28,29,
588 28,26,25,25,25,25,24,23,20,15,9,3,-3,-8,-11,-14,-18,-22,
589 -26,-29,-30,-30,-32,-33,-33,-32,-31,-32,-32,-32,-31,-30,-28,
590 -25,-22,-21,-21,-20,-19,-19,-18,-16,-12,-9,-7,-5,-4,-2,-1,0,
591 2,3,3,4,5,4,1,-1,0,3,6,9,11,14,16,16,16,15,15,14,14,14,
592 13,12,11,10,9,8,8,8,7,7,8,10,9,7,5,4,2,1,0,-1,0,2,4,
593 4,4,3,3,4,4,4,4,4,4,4,3,3,4,5,6,7,7,6,5,3,1,0,-1,-2,
594 -2,-2,-2,-2,-3,-3,-5,-6,-8,-8,-7,-6,-4,-2,0,1,1,0,-2,-3,
595 -4,-4,-4,-4,-6,-7,-7,-7,-7,-7,-6,-5,-4,-3,-3,-4,-5,-5,-4,
596 -5,-6,-7,-8,-8,-8,-9,-9,-9,-9,-10,-12,-13,-12,-8,-6,-5,-6,
597 -7,-7,-6,-5,-4,-3,-2,-2,-2,-1,-1,0,3,6,9,11,12,12,13,14,
598 15,15,14,15,15,15,16,19,21,22,22,23,23,24,24,23,21,19,16,
599 14,13,12,10,8,6,4,2,1,0,-1,-2,-3,-2,-1,0,-1,-2,-4,-5,-5,
600 -5,-5,-6,-6,-6,-5,-4,-3,-3,-4,-5,-3,-2,0,1,2,2,2,0,-2,
601 -4,-5,-5,-3,-3,-3,-4,-5,-6,-7,-8,-8,-9,-9,-9,-10,-11,-12,
602 -13,-13,-13,-14,-15,-17,-18,-18,-17,-15,-14,-15,-15,-15,-15,
603 -15,-14,-13,-12,-11,-8,-5,-2,1,3,3,3,4,5,4,2,2,3,4,5,7,
604 9,9,7,5,4,3,3,2,0,-1,-1,1,3,4,5,5,5,6,6,6,5,4,4,4,6,
605 8,8,7,5,4,2,3,4,6,8,8,7,4,2,1,1,1,1,0,-1,0,1,3,4,4,
606 5,5,6,6,5,4,3,2,3,2,1,0,-1,-2,-3,-4,-4,-4,-3,-3,-2,-3,
607 -5,-6,-6,-6,-6,-6,-6,-7,-8,-6,-2,1,4,4,4,3,3,4,4,3,2,1,
608 0,0,0,-1,-2,-3,-4,-4,-4,-3,-3,-4,-4,-4,-2,-1,0,0,1,2,3,
609 4,3,1,-1,0,1,3,5,6,5,3,2,3,3,2,2,1,0,1,3,4,4,5,5,5,
610 5,4,3,2,1,2,2,2,2,1,1,0,0,0,0,0,0,0,-2,-3,-4,-3,-3,
611 -3,-2,-2,-2,-2,-1,1,1,2,2,2,1,-1,-2,-2,0,3,5,5,5,3,2,
612 0,-2,-4,-7,-10,-13,-15,-15,-15,-14,-13,-9,-5,-1,0,0,0,0,0,
613 0,0,0,0,-1,-1,-2,-2,-1,-1,-2,-3,-3,-3,-3,-3,-2,-1,-1,-1,
614 0,1,2,3,3,3,2,1,1,0,0,0,1,2,2,2,2,3,2,2,2,1,0,0,0,
615 0,-1,-2,-2,-1,-1,0,0,1,1,2,1,1,1,2,2,4,6,7,8,9,9,9,8,
616 8,9,11,12,11,10,8,7,5,3,3,2,1,1,1,1,1,0,-1,-2,-2,-2,0,
617 1,0,0,-1,-2,-2,-2,-2,-3,-4,-3,-3,-2,-2,-3,-4,-5,-6,-5,-5,
618 -5,-5,-4,-5,-5,-5,-6,-6,-6,-6,-5,-4,-3,-3,-3,-3,-3,-3,-2,
619 -2,-3,-3,-4,-5,-5,-4,-3,-1,0,1,2,2,3,4,4,4,5,6,7,7,7,
620 7,7,6,5,5,6,7,7,8,8,8,8,7,7,6,5,4,3,1,-1,-3,-4,-2,-1,
621 1,3,5,6,7,7,7,7,7,6,5,3,1,1,0,0,-1,-1,-2,-2,-2,0,1,2,
622 1,1,1,0,0,0,0,-1,-1,-1,1,2,2,2,2,2,2,2,2,1,1,1,0,0,
623 -1,-1,-1,-1,-2,-3,-3,-4,-4,-5,-4,-3,-3,-5,-6,-7,-8,-9,-10,
624 -10,-11,-11,-11,-11,-10,-8,-7,-5,-5,-6,-7,-8,-8,-9,-8,-7,
625 -7,-6,-6,-5,-5,-6,-6,-6,-6,-6,-6,-6,-6,-7,-8,-8,-7,-6,-5,
626 -5,-5,-5,-4,-4,-3,-2,-1,0,3,5,7,8,9,10,11,12,12,12,12,
627 12,12,11,11,11,11,12,13,13,13,12,11,8,6,5,4,4,3,3,3,3,
628 4,4,3,2,1,0,0,0,-1,-1,-1,-1,-1,-3,-4,-4,-3,-3,-3,-3,-3,
629 -3,-3,-3,-4,-4,-5,-4,-3,-2,-3,-3,-4,-5,-6,-6,-6,-6,-5,-5,
630 -6,-7,-7,-7,-6,-4,-3,-2,-1,0,1,3,3,3,2,1,1,2,2,3,3,4,
631 5,6,6,6,7,7,6,5,3,1,0,0,-1,-2,-1,0,0,1,1,0,-1,-1,-1,
632 -1,0,1,3,3,3,2,2,1,2,2,3,4,4,4,4,4,5,6,6,5,4,3,2,1,
633 1,-1,-2,-2,-3,-3,-4,-4,-5,-5,-5,-5,-5,-4,-4,-4,-4,-5,-5,
634 -5,-5,-4,-4,-4,-3,-2,-2,-1,-1,0,0,0,-1,-2,-3,-4,-4,-4,-5,
635 -6,-6,-6,-5,-3,-2,-1,-1,0,0,0,0,0,-2,-3,-3,-2,-2,-3,-3,
636 -3,-3,-2,-2,-2,-2,-3,-3,-4,-5,-4,-3,-1,0,1,2,4,5,6,6,6,
637 6,6,7,8,9,9,9,8,7,6,5,5,4,5,6,7,7,7,6,5,4,3,2,1,1,
638 0,-1,-2,-2,-2,0,2,3,3,3,3,4,5,6,7,8,10,10,10,10,10,9,
639 9,8,6,2,0,-1,-1,0,1,1,1,-1,-2,-3,-3,-3,-5,-7,-11,-13,
640 -15,-15,-15,-14,-14,-15,-16,-17,-17,-17,-16,-16,-15,-15,-14,
641 -15,-15,-14,-13,-12,-12,-11,-10,-9,-9,-8,-6,-5,-5,-5,-6,-7,
642 -8,-8,-7,-5,-3,-1,1,3,4,4,5,6,8,8,7,6,6,7,8,8,8,9,10,
643 10,9,9,9,9,9,8,7,7,6,5,5,5,5,5,6,6,6,6,6,5,5,5,5,5,
644 5,6,6,7,8}};
645
static const std::vector< std::vector< int > > mHammerKnockFFT
Hammerknock Fourier data.
Definition: synthesizer.h:155