miden-crypto/src/dsa/rpo_falcon512/tests.rs
src/dsa/rpo_falcon512/tests.rsRaw
1use super::{math::Polynomial, Deserializable, Serializable, Word};
2use crate::{
3 dsa::rpo_falcon512::{SecretKey, CHACHA_SEED_LEN, SIG_NONCE_LEN},
4 ONE,
5};
6use alloc::vec::Vec;
7use rand::RngCore;
8use rand::SeedableRng;
9use rand_chacha::ChaCha20Rng;
10use rand_core::impls;
11use sha3::{
12 digest::{core_api::XofReaderCoreWrapper, ExtendableOutput, Update, XofReader},
13 Shake256, Shake256ReaderCore,
14};
15use winter_math::FieldElement;
16
17const NUM_TEST_VECTORS: usize = 12;
18
19#[test]
20fn test_falcon_verification() {
21 let seed = [0_u8; 32];
22 let mut rng = ChaCha20Rng::from_seed(seed);
23
24 // generate random keys
25 let sk = SecretKey::with_rng(&mut rng);
26 let pk = sk.public_key();
27
28 // test secret key serialization/deserialization
29 let mut buffer = vec![];
30 sk.write_into(&mut buffer);
31 let sk_deserialized = SecretKey::read_from_bytes(&buffer).unwrap();
32 assert_eq!(sk.short_lattice_basis(), sk_deserialized.short_lattice_basis());
33
34 // sign a random message
35 let message: Word = [ONE; 4];
36 let signature = sk.sign_with_rng(message, &mut rng);
37
38 // make sure the signature verifies correctly
39 assert!(pk.verify(message, &signature));
40
41 // a signature should not verify against a wrong message
42 let message2: Word = [ONE.double(); 4];
43 assert!(!pk.verify(message2, &signature));
44
45 // a signature should not verify against a wrong public key
46 let sk2 = SecretKey::with_rng(&mut rng);
47 assert!(!sk2.public_key().verify(message, &signature))
48}
49
50/// Tests the Falcon512 implementation using the test vectors in
51/// https://github.com/tprest/falcon.py/blob/88d01ede1d7fa74a8392116bc5149dee57af93f2/scripts/sign_KAT.py#L1131
52#[test]
53fn test_signature_gen_reference_impl() {
54 // message and initial seed used for generating the test vectors in the reference implementation
55 let message = b"data1";
56 let seed = b"external";
57
58 // the reference implementation uses SHAKE256 for generating:
59 // 1. The nonce for the hash-to-point algorithm.
60 // 2. The seed used for initializing the ChaCha20 PRNG which is used in signature generation.
61 let mut rng_shake = Shake256Testing::new(seed.to_vec());
62
63 // the test vectors in the reference implementation include test vectors for signatures with
64 // parameter N = 2^i for i = 1..10, where N is the exponent of the monic irreducible polynomial
65 // phi. We are only interested in the test vectors for N = 2^9 = 512 and thus need to "sync"
66 // the SHAKE256 PRNG before we can use it in testing the test vectors that are relevant for
67 // N = 512.
68 // The following makes the necessary calls to the PRNG in order to prepare it for use with
69 // the test vectors for N = 512.
70 sync_rng(&mut rng_shake);
71
72 for i in 0..NUM_TEST_VECTORS {
73 // construct the four polynomials defining the secret key for this test vector
74 let [f, g, big_f, big_g] = SK_POLYS[i];
75 let f = Polynomial::new(f.to_vec());
76 let g = Polynomial::new(g.to_vec());
77 let big_f = Polynomial::new(big_f.to_vec());
78 let big_g = Polynomial::new(big_g.to_vec());
79
80 // we generate the secret key using the above four polynomials
81 let sk = SecretKey::from_short_lattice_basis([g, -f, big_g, -big_f]);
82
83 // we compare the signature as a polynomial
84 let signature =
85 sk.sign_with_rng_testing(message, &mut rng_shake, SYNC_DATA_FOR_TEST_VECTOR[i].0 * 8);
86 let sig_coef: Vec<i16> =
87 signature.sig_poly().coefficients.iter().map(|c| c.balanced_value()).collect();
88 assert_eq!(sig_coef, EXPECTED_SIG_POLYS[i]);
89
90 // we compare the encoded signature including the nonce
91 let sig_bytes = signature.to_bytes();
92 let expected_sig_bytes = EXPECTED_SIG[i];
93 let hex_expected_sig_bytes = hex::decode(expected_sig_bytes).unwrap();
94
95 // we remove the headers when comparing as RPO_FALCON512 uses a different header format.
96 // we also remove the public key from the RPO_FALCON512 signature as this is not part of
97 // the signature in the reference implementation
98 assert_eq!(&hex_expected_sig_bytes[2..], &sig_bytes[2..2 + 664]);
99 }
100}
101
102/// A function to help with "syncing" the SHAKE256 PRNG so that it can be used with the test vectors
103/// for Falcon512.
104fn sync_rng<R: RngCore>(rng_shake: &mut R) {
105 for (bytes, num_seed_sampled) in SYNC_DATA.iter() {
106 let mut dummy = vec![0_u8; bytes * 8];
107 rng_shake.fill_bytes(&mut dummy);
108 let mut nonce_bytes = [0u8; SIG_NONCE_LEN];
109 rng_shake.fill_bytes(&mut nonce_bytes);
110
111 for _ in 0..*num_seed_sampled {
112 let mut chacha_seed = [0_u8; CHACHA_SEED_LEN];
113 rng_shake.fill_bytes(&mut chacha_seed);
114 }
115 }
116}
117
118/// A PRNG based on SHAKE256 used for testing.
119///
120/// DO NOT USE IN PRODUCTION.
121pub struct Shake256Testing(XofReaderCoreWrapper<Shake256ReaderCore>);
122
123impl Shake256Testing {
124 pub fn new(data: Vec<u8>) -> Self {
125 let mut hasher = Shake256::default();
126 hasher.update(&data);
127 let result = hasher.finalize_xof();
128
129 Self(result)
130 }
131
132 fn fill_bytes(&mut self, des: &mut [u8]) {
133 self.0.read(des)
134 }
135}
136
137impl RngCore for Shake256Testing {
138 fn next_u32(&mut self) -> u32 {
139 impls::next_u32_via_fill(self)
140 }
141
142 fn next_u64(&mut self) -> u64 {
143 impls::next_u64_via_u32(self)
144 }
145
146 fn fill_bytes(&mut self, dest: &mut [u8]) {
147 self.fill_bytes(dest)
148 }
149
150 fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand::Error> {
151 self.fill_bytes(dest);
152 Ok(())
153 }
154}
155
156/// A PRNG based on ChaCha20 used for testing.
157///
158/// DO NOT USE IN PRODUCTION.
159#[derive(Clone, PartialEq, Eq)]
160pub struct ChaCha {
161 state: Vec<u32>,
162 s: Vec<u32>,
163 ctr: u64,
164 buffer: Vec<u8>,
165}
166
167impl ChaCha {
168 pub fn new(src: Vec<u8>) -> Self {
169 let mut s = vec![0_u32; 14];
170 for i in 0..14 {
171 let bytes = &src[(4 * i)..(4 * (i + 1))];
172 let value = u32::from_le_bytes(bytes.try_into().unwrap());
173 s[i] = value;
174 }
175 Self {
176 state: vec![0_u32; 16],
177 ctr: s[12] as u64 + ((s[13] as u64) << 32),
178 s,
179 buffer: vec![0_u8; 0],
180 }
181 }
182 #[inline(always)]
183 fn qround(&mut self, a: usize, b: usize, c: usize, d: usize) {
184 self.state[a] = self.state[a].wrapping_add(self.state[b]);
185 self.state[d] = Self::roll(self.state[d] ^ self.state[a], 16);
186 self.state[c] = self.state[c].wrapping_add(self.state[d]);
187 self.state[b] = Self::roll(self.state[b] ^ self.state[c], 12);
188 self.state[a] = self.state[a].wrapping_add(self.state[b]);
189 self.state[d] = Self::roll(self.state[d] ^ self.state[a], 8);
190 self.state[c] = self.state[c].wrapping_add(self.state[d]);
191 self.state[b] = Self::roll(self.state[b] ^ self.state[c], 7);
192 }
193
194 fn update(&mut self) -> Vec<u32> {
195 const CW: [u32; 4] = [0x61707865, 0x3320646e, 0x79622d32, 0x6b206574];
196
197 self.state = vec![0_u32; 16];
198 self.state[0] = CW[0];
199 self.state[1] = CW[1];
200 self.state[2] = CW[2];
201 self.state[3] = CW[3];
202
203 for i in 0..10 {
204 self.state[i + 4] = self.s[i]
205 }
206
207 self.state[14] = self.s[10] ^ ((self.ctr & 0xffffffff) as u32);
208 self.state[15] = self.s[11] ^ ((self.ctr >> 32) as u32);
209
210 let state = self.state.clone();
211
212 for _ in 0..10 {
213 self.qround(0, 4, 8, 12);
214 self.qround(1, 5, 9, 13);
215 self.qround(2, 6, 10, 14);
216 self.qround(3, 7, 11, 15);
217 self.qround(0, 5, 10, 15);
218 self.qround(1, 6, 11, 12);
219 self.qround(2, 7, 8, 13);
220 self.qround(3, 4, 9, 14);
221 }
222
223 for (i, s) in self.state.iter_mut().enumerate().take(16) {
224 *s = (*s).wrapping_add(state[i]);
225 }
226
227 self.ctr += 1;
228 self.state.clone()
229 }
230
231 fn block_update(&mut self) -> Vec<u32> {
232 let mut block = vec![0_u32; 16 * 8];
233 for i in 0..8 {
234 let updated = self.update();
235 block
236 .iter_mut()
237 .skip(i)
238 .step_by(8)
239 .zip(updated.iter())
240 .for_each(|(b, &u)| *b = u);
241 }
242 block
243 }
244
245 fn random_bytes(&mut self, k: usize) -> Vec<u8> {
246 if k > self.buffer.len() {
247 let block = self.block_update();
248 self.buffer = block.iter().flat_map(|&e| e.to_le_bytes().to_vec()).collect();
249 }
250 let out = (self.buffer[..k]).to_vec();
251 self.buffer = self.buffer[k..].to_vec();
252
253 out
254 }
255
256 fn roll(x: u32, n: usize) -> u32 {
257 (x << n) ^ (x >> (32 - n))
258 }
259}
260
261impl RngCore for ChaCha {
262 fn next_u32(&mut self) -> u32 {
263 impls::next_u32_via_fill(self)
264 }
265
266 fn next_u64(&mut self) -> u64 {
267 impls::next_u64_via_u32(self)
268 }
269
270 fn fill_bytes(&mut self, dest: &mut [u8]) {
271 let len = dest.len();
272 let buffer = self.random_bytes(len);
273 dest.iter_mut().enumerate().for_each(|(i, d)| *d = buffer[i])
274 }
275
276 fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand::Error> {
277 self.fill_bytes(dest);
278 Ok(())
279 }
280}
281
282/// Helper data to indicate the number of bytes the should be draw from the SHAKE256-based PRNG
283/// in order to sync its state to the state of the PRNG in the reference implementation during
284/// testing of the Falcon512 test vectors.
285const SYNC_DATA_FOR_TEST_VECTOR: [(usize, usize); NUM_TEST_VECTORS] = [
286 (135376, 1),
287 (127224, 1),
288 (61580, 1),
289 (41060, 1),
290 (28736, 1),
291 (123204, 1),
292 (49268, 1),
293 (151816, 1),
294 (106628, 1),
295 (49212, 1),
296 (65672, 1),
297 (53332, 1),
298];
299
300/// Helper data to indicate the number of bytes the should be draw from the SHAKE256-based PRNG
301/// in order to sync its state to the state of the PRNG in the reference implementation before
302/// testing of the Falcon512 test vectors.
303const SYNC_DATA: [(usize, usize); 96] = [
304 (75776, 2),
305 (8192, 3),
306 (29696, 1),
307 (20480, 1),
308 (12288, 1),
309 (4096, 1),
310 (48128, 1),
311 (24576, 1),
312 (6144, 1),
313 (37888, 1),
314 (39936, 1),
315 (56320, 1),
316 (18432, 1),
317 (29696, 1),
318 (10240, 2),
319 (5120, 1),
320 (27136, 1),
321 (39424, 1),
322 (11264, 4),
323 (15872, 1),
324 (15360, 3),
325 (10240, 2),
326 (11776, 1),
327 (7168, 1),
328 (18176, 3),
329 (30208, 2),
330 (163072, 1),
331 (17920, 1),
332 (110848, 2),
333 (18944, 2),
334 (119296, 1),
335 (19200, 2),
336 (14080, 1),
337 (69376, 1),
338 (75776, 2),
339 (109056, 1),
340 (9344, 1),
341 (37632, 1),
342 (17152, 2),
343 (118528, 1),
344 (4608, 1),
345 (4352, 2),
346 (20736, 2),
347 (27392, 1),
348 (4096, 1),
349 (8576, 1),
350 (26880, 1),
351 (26880, 1),
352 (75456, 1),
353 (4928, 1),
354 (16704, 3),
355 (12352, 1),
356 (16832, 1),
357 (67456, 1),
358 (46720, 1),
359 (24960, 1),
360 (45760, 1),
361 (20800, 1),
362 (8320, 1),
363 (13184, 2),
364 (53696, 1),
365 (8320, 1),
366 (66112, 1),
367 (12640, 1),
368 (4192, 1),
369 (8224, 1),
370 (4192, 1),
371 (4128, 1),
372 (37504, 1),
373 (4160, 1),
374 (12384, 1),
375 (16704, 1),
376 (86672, 1),
377 (37088, 1),
378 (24800, 1),
379 (32944, 1),
380 (12400, 1),
381 (12368, 1),
382 (12352, 1),
383 (29072, 1),
384 (45440, 1),
385 (8256, 1),
386 (4160, 1),
387 (53664, 1),
388 (37040, 1),
389 (20536, 1),
390 (4112, 1),
391 (16456, 1),
392 (20536, 1),
393 (20544, 1),
394 (69912, 1),
395 (28824, 1),
396 (36992, 1),
397 (8216, 1),
398 (74048, 1),
399 (12352, 1),
400];
401
402/// The encoded test vector signatures.
403const EXPECTED_SIG: [&str; NUM_TEST_VECTORS] = [
404 "39938882ef322e8a46b93c6d67c47f31f92a30e31e181b6c6e57760d2a08f254a7e798b27956333e7f928bc01928dac4dcfbf93ba6decb4c21f5c30cd8796cece9626113f8dae0e21e9cef91a383bfa6f139462d5a964b567efb1269bb2989f24acd165110d6a50caa263eb8e8f60fd5fed2f231498167beccf199ca66d347378794b719665f6c74194d89308b2119acf270cf5ff9f1f70b45dd93a67b5dcc41b28c0a6a9db0a2275f470a3fc1620843d1ad45b44687a3ca692935d675df9bbefe5cec12f9af8cc53e04175d56b92a29b40d869836698a0e8452c992856cb74a906f0ed4ddb8aa1e0a2f645db18903d046768e5fb7ef13d1b3a8064129987e4b53428b7549d735e672908eb08861a63c3ee698b5c8a0dab8aed4acea186a89bd33ac92576ab758ad30fddd11698f54717afc36b093a053166b022f99e50dbb718bba87eea9ad491e1e778e1afd4ed92dd05621b48847ebbf0d517e3a2a943f33803434854b225d8cbb8f1e4bd252c9826a629b3ca9da85216d07771ca6538cf6f198f1e55cfd52c9232ffb941445533d30dfae6fd4e5cf63e2250e0593ed92a3df09898ea7dbb6d941179a42275dd93afab392d959075eb104b97375c7259e23703d036f25c92a8f9e6904e64675504bad272068a7bf34d18f665818899fddbf3a5c9bc694cd99a9913bd74f7c36e5422af91eb64371f16c5b28c3454dc360df8442ed2a4edc6956abd7adc4091302ddc3b98cbc47899eaacf250a476b4faa72e434f6767135b24d747e65eb9100e86f3084beb952c3be19369908cade8923d7e4ca32edabb2a593d4b7a5fd82b5d34ca9204010ec9161847d604c7b288a59f8848b548970d814b8d0a4f96e1b433848343a2c6c6cf7af3f84aec9d269d9be632c5c57672d948839ea863208cdc0000000000000000000000000",
405 "3990524b2f19ea93992641f81adfa0779d4aa5db24a4ddc243e94b85f8f63da5e443658926af37d1b506a9a992d428b32748aa3a80e911d4564a4332878b5d32779af56668bfdcd5faa414bfa77b95031e47373778eb2ceacef0e9aed21a97f0700f5d918d8a606384adf0c0eeb6797c00d4ba5f26273538569135cd586230b767d952b6c192521d1aaee594ea3d6b1fe363b21064abe172867919c825ad528e39877b11569662b6c5c73b4932dc159b71069398bfaea1b487fcd9583e192fea62da26dfaa287d8fbf9d5eae42b7895a63524c79265352b13b880989ea9bfe02f0f9f975532d931fccfe5d60da05c39a62c836792f8a3e12e6e7759b7753d5198c95b2f644690a5f58763d3b5b14a97a72cda6d97a6b4daecf97c7111c5275b44437cb8ecdc25a0a0ff1bef8b250a5a2e699b368c7bbe6eab4be97a2957957d6e9bb0faa9326f9568cca5a636f2653c6ee635c986d9d84753cff5ac17834c1385a066adf43c5633719cf34c15588d997d7a13782d19704363ea1d22858d41be56eb5c0842d0422fcf4261075f1af2178e849715249dce1af4c8583427258eadac0b03f721c62b7fcf33939a5fccadd264e830f0b58a7992b1c99f69c406ef03912e7b54342a11a8930d3259332c555e891119bca3c8d3905e2229ef334c854e405ba53431af462a74e48d9aa06cfed3b30897f3bf6e9d0496a549cc6636d9cd7287178947682bf8b982ab2b44a976071d3230233332189ca405256e776b25c881a85932c6a2a1af6f29e2abeda2d4a5f53be39f37e5d99db15af4a288dde537117d4153ebd5297946b99cebacabc4ee265cb698da59cc5f5492389dc964fc92cd2d665c64eb7f08f2a8ad660c8bb90c3dc0866111bde7c91d60f6a81d2ebd16af48ed7cd6079741abc414c922470680000000000000000000000",
406 "3919c9011564865ced4e03fa8e7c9b2b0f103e9fe24dbe9f28a4b5db5821dce0d70495ac617fcfd6038cba4de75bf78737b3b317a6478268f08d7c95f7d9202e4a04de2434ee86d988d4397557a2c78122b475bfe9a7b2e75388ba0344cebaea22c335267ba2f48e61d1c58b785473525271baa911bd35e8def50900ed4caa7854d709afc8f36cd02562199dc76fe6b644111d833cda7819cc7a5b58947e8c8cccf9af2cb07963c9f699516018b481cf61c80a248fa1bd78c18048efc86f366293a4847902224bcf1d3cb8bc54e4d0c7149c45df69377a6c6c4474ee1403f336b0e7673d4be6c1ea54361452009e266b6b0d1181221cf814f7779ef8dab9183fe94ea54730eace00a3fcab9ab0a8f6fe9374bb292868236a2640c4680a7410a540b5f10849a4dbcb6c7093bb49b6a9878b88d4601bdd6559b1649e8e019e54eeb508ee2e9c8636105670c5a76ef336fa9c76eea7b29871660fe6bf2ae8dd5878c72ea7b8405f08b3785d2ebb88f92bbaffac17f41f38c9d554bb3134afa8d834415cce30e40e4369e85dfe464b6f3aec13552e1b3376f026a108d9f4120b5a39b4fa9634390cb9c5ba484e6e36ad62fbd27468beb61d62b36785cfd1853e339ca365342ed315838a78c8495d80df73481e077cd5153671c4deccbb46051c70d1751afca525edd91ec53636b8d220db78a4308fecb5515cbebba4bfcdeaf3acc7fbeffd9a62d5f8fdd9335dd297013b8295b5b3dad5f0bbaf83aecaf3b1449917a5699aef39f5c25899782f4c8dadc8db0bf68067f1ee6a6d8835c9445dbccec54dcc43757d4396083c3a185e5cc2f7583e3148ac56ba7991152d075aedfb8c76e48ee1f5431d048cf1599659f3f366e669c1674433f1e75e666fd41b5ecb39b577dbea1ff2ebc2aaa3d398bffab1000000000000000000000000",
407 "39e40755a7c0fa1c134750a89c9316b75d5fa430de8cd0b9a15cfaaad412cfdf409ce8aef76ee383ee56d7a62adc07d4f2dab1c46ea1ef9a467ab1d8cc8d603f72f6564e741059b2ae93aaac86abf7e77e605c5e076d3cde6e1775ee4c8e310ee25b371a9d78d641c27eb022a98a5e52fbd84f3f9233825458257f369938707b556a0d85e553f497457e3b19b94d31f50e637d31415b4a3c522e87e129cb3187fda068e678f5fc31e7af18fe3ecd15f3dd844bb83a0f57c8cb32ad74f9a29de5e6733bd681f742ff66b8405bf8ae8c49644b63cf7066d93d3d4f755dd03badceebaa315b67811de3f36d047baf4a4d520ab76d1952eeb93a3ab31c54abfc763102c57f51a6733ccab1686aa6cfded9c450e930072d0ca9b8aeb69648f2de9302fff972b6382631db24ab9d39d2786ad56ce2b308aa2e563621427de8f0713cd653fb176d5937f2e47850ca6d016d6192390e755fd912878724db7b33129f6529fb78d1279923dd21d11a3e7b78b74c680cfbcfaa79d4388d46d46852de566b14e5c01b8cdc1d1afa7ae02200df2f2e5b05b65066fb717c8bbb9e84a6891895e12c98c52c43b639a527549fb050b40cf24e7f4aa2df91fcba2decaa6081d518161483bebe624b2a457ede5411d4b3b258954b86c2ca9b7475419c633743f25cf50b62cfb5abffd5cdc50ed6d1a4ecaae35cf961a67a7f1c7b7326252f0084cfd39c0298a844c9d92f79209d64fd53bbf919152fbac9d08af449d145e245364efdb32aa632cfabc0fb7b899d3e14f27bf2f0b76575bb99ecd84133ddeaa8ed19776d21be589bf50985f733e6edbcabd3e7ca7c93cfe19fb22af569e66791c321ab23ba421d82f85b5151d7bee532596c8bcf70a32edbc8044a86a6703dbb66925ce8cc5a9dfd29a44b75696108d1b5300000000000000000000000",
408 "396eb67cbb302365e81f5bcecabc6a80f1c2419de4369eec77b35421e777ec63595c39ec77d4b1db6aa06488839e8a5daebd750537e2b136582cdba9b1479a6402ccd0c6931face2e1bf79d8ac5bbf34751793c65124542fd1b0f8aee699c93accf187679ce809f1b63a18d049bb6d626f4e7f7495b85487a3a9b6e7c9ae67c33b8bdb681f984eb1eb44e3a3ebddf85cb00624d4c6de2efdcd69e498db8e3956e818e7d29c8612f85feaddc65ca635d91b82fe7132effde5aa6f108bad1e3dd5656b6ee2d0fd482ad54c355f00fbca12e9fbd6dace18ff5c2100370e8a15c0925298137ad2c335b2e20470d86ce3c1bb48be93fa6b47ba95ff2f8df54113566ffd261f4a5c117fa46f66ffaa1ece7b5ddda7579e68d40e67256e7bcfacc050731ceeb6d6a5f764e4ed9cd963409c8f21ee98f99259474a557abfef9635ef2ac91b9b7e7660aca456d83319bb414a81d62114367b150e11728d8a3f3b9fea6fd0733a9b0335f1cae90cd230580712689ab03f9c56e50cac6952c4a3922a6a6368794c26bd9bcda250568d45df72158dfc7651798eb3d1ccbd909c95f1362607a30294b639136ad75373e479134f3092d5cf4573a913a45e4dee70a2f06b2f077150e3b4cd0e8d19517406b44d9a5a8c9ee123497fb514ed7c71330c628685f735c7a2d3a4292dba5a8cebe0160c55fdf3e9e8afe801719aa62db8e29b73ab1d208eeacccaa91b5e7efe9bd09cba32c2048039e8b9e1c2d66e54a84f5de9af6bf5cf04074d6b8169fa0ce29ae2547936f32acdcb0dd3a6f7c07a9788dd75c4d3bdfb3fa387b0efcfcd5caaed5c809d5bed15e3ea6eff4c769883a7cc62f9b8565a85f4d95cc8aa0484bcd11b7fde224567134b475a0a3c5f1380bee76cd9838edb4469285af0c2752bf52b5cd7b2a6d7e000000000000000000000",
409 "39a3040e1e17129693200dd7ddf41b55e3c3bc64524b86b7c30f77d1897c53aa06a2663b71f7874b7d5393408dbe6163dbcf9aac4c13a748b1e6ef9a7f52a567b8c6281d448d00a266d895cf9a462e520699b22a4bf76e645f588f1ab07e70fa988c5d41c6a3700c9205b630f8d431e10c03bd2c9ca5ae1757d12cbb0a63b6ca2edf5340743154c8b8b44f1414cddece5820fd75bf03da6c2c2e2257a14f78bbd4f999671b999c05e29826a939c366e199d756150a8bd6db2745f68d1a9d0abca93eff14c143b94fa50fd7af41968eee278ce415057097bf66ff3b7ce6e9d3249e9e222d7763faf1b2ca3bacbf658e37011550b6390cee1e58876867198fa2ebb740fbfd19b4622f69f7b5770f57ab924b6d1d6c2192e759f68967618336be5dfd7d6a5ab84dd3ae95a0b23a31da65540c2241039860b2e631a44b6c3296171fc982bd8f9acc9cfd166c4e6e3368f27a70456692b0e43f26319cfb6ac6cee088d9ec4607de3c6ed5413e797c7519c445cef417953288d3dd98044b77eb5d32f18bad74c10ccfe52d4a54bafc674f33c64d2b12343b6b277729f60329013d9e0b55eee097468ccd2f423050270fb19af8c298069e606c56ec18f959ecdc9733510bb6fd500b06a1f9c8d7d922f47faeacc1b83e15daec9224c0e7ed0ddc272c9c6f92398b704898e1d4c72718d7ef46c6687a5a84be9c3216772d93a2a9f5c77b21e75574e6767f5bc8d9ceed47c99aa47534f2aeed56bec7f6b0f6cc0a3e20ec8465030d9c67c321cf3b5c9d02ea5523af629170ebe8ec70744b5303fc66e67c6b9ae6b1676fb43ebe7ad1543acedc1ea6d41588d571891548ee24c6beaf4a26a359521f352176753588afb116f22c86ae606579081bb3c5ab9243ae5c53afc699063be8713a621bece46aa72320000000000000000000000000",
410 "39fa7971d10c07ff2f265fd449591aac4d48cf198a8b58145d2fd0a5864b14f2daf90b272f282484eff796963638fffdb3c72d5bbd9e89aac5273a5707b0a29428fec3b586d7c0602e27cde8d0297386e0f2e9e558368d0a3d1c8dfacac8dd9fdd1d6d56faf02089c20b887d60d146f5cca492655b5ce1e5274c82a98665b66d2d476cc126d33adb2a8c9929249759cf4fd144e30ae54058a4f1803f9c9455ddd8e2a007df512a31d96f8d33243dede21e6eb8f6bdadd9a3653379bf3dca55a1aa33c85bff83cb3194effa3e67a6254a4537d5ae49b2eb3d879e0f9c1702c7bcd3a7e72bf8c2347eb4410ddcd8fabb7372579bab0e219a203a995ef3ecac0da461d0b3481d486765cce440b58125a2fccc30d064dc4fc3b2fe2e31ac5a0c74eac34300cd14d9cab1ba3206f8d56f77e5113aa596ca160cae39cb034eea7a499e6236e7aac94b22cb4694797a5ae0088997abea76ce4c4b401af3b07409d16e9952a33aae7f2f3520433b75cba34b186938103eb719b1d4bbf1d22cac63a1e4e53a4389460b80420a0e1b3891ab113e62ae92e0b3c75d644713f673dd36cf6b27ec3c5f9f3b6720d42babe12470a451b489a563d8c5e622d47eae11643cde922728ae68a943076be2ce5b7a2c731fd5bacd95fa47e5aca0c86e9b64389aa9a64b65aaa7a28ecec4a1770601d099cd100829e8d438cc72af867f3831a7bae1b2c3bf5f7e8ba2bc6d1494590267af6e76b991c1e89d965a0426ee965799ac54dfe50fe78529f98b4d0522545351ae4cd62b9a92f63d90b9e392eaced119720c9d72d17914fd5a4cb0f4e14af1762a39be3aae98a698ec56d1d28937ee5d722ac42c51d73d8be8a7082dff6f314057fd0e5b5a6391c682c291b20894b1c2843636377d853581a339f55c651ecc8a41f9ff8e9e104000000000000000",
411 "39aa4cac72b666b9847d138ef6f0698fe9e58317bc6e2d1913240da31cbc639e182165f25bfbb16549c495abee5ef1437eacfa6b14c8d6afdfaee611c9c0bf2b56ab40eea44163ba3072ca498a6265a6a4cda6f17670ed51ec3dbefc97174aca4ea765c208ad7865e7ab41df4037d810f637dc10a831b4923ac29299b903bca99e06e65d1445f478494f9757e014043212c2e4f26ca225046448ca9bc434d27615989b1dccc3c5aa8b31321495a0a70e3495b0b7d86d88c6b1e2bf28e81a14c6e519aaede3e46ad26a0f0a21a6a21b195f07e52bc01985b3a450edb66c1e2864b98fcab2f0f34cbeeaf191dc160e2ee9073cba960e6c8d67238e66d2f29146beaa5a37e936b13fe376cd5aa2f372179f586bf0180c02a3d2c2f39ae8839a8fddbfbc48c35192ffdb6c6cda34b01509ef50c5c99a651ecb67ffaac6b13daaa641686b2cd142856372346dbf508bfb100476324494b52e9130404d54315f573fecc9489645a26248668978b9a35156fed9c88c304f951598bd4311924cf8311b4e5fd35de5d6d9de9c0e0185d4149df5f79f12e1c1bfb009b44dcaae704b5ec1aca1ac363c5216ae3dc4c5682c9a56ca1abe222d9da718d2e87b6d3217b7e0105c1d11c5d4f26b7b6d53086514025a52bcc7278dd5cead321ec5764d4d7cc8177134ab125541b290268d7c18d13cbbca1271e18ee73a04b307c269a15522daba23d004648ba8d84de4f72f8a5015a80be91e863188549cdffc92df043592b44ba7a926b67add310fcf0326a04f9e9c6ab7bd5f59295e7d52395015216fe4dcf0719cf867eb25df8b30c0caac261d1a2bbc7e1f879ed71edc8a77832916b5fb7ae4b1e867d9aba2c02b6c43f1f7b8c07810dcb1c9219977e3bd9fde324a82bb91bdf2f2aac6c139c9bc2539005f6e46ab4480000000000000000000",
412 "3942143340bb245de675d10769dc963a1a3c190360b60f6dbe3d6c5915bc72aaeb0d219ff0d8a7700464854b953e024e368bd64aba8ae05dee5ad1b9b1765334cfbf1a2407c2b0448446170ed9adafba2c54de08618bca21ee3a17c710358d974408b2fcc0b12e1bd1d5cb4832e476bc843f4b9b8710ba23309fb187895834b9e4558a8e9f5bda0921e06268ec0194fb294dca82820bb791d28461572e488f4f77642e904c3af007e5d9b08a1464c8a1b4de9c5d89e23ed7d4716e72311395b7fa705101e94aa2d436d127494a6189b042f1d29b3a16c8f464b74303884c0cae8537bbde91356d11446b13139cd4572f8771325614f59612443c90f24b85f1381f944bbbbd83ae7f4826f2791e19a7131b74327d3b45c5fc60e529943a0a60100925c6788e7aeb4b5d33609934cbc6d189c357d0d2831c99dd72ae0a0b9443b5d2c6dfe787c9f0eb32ca14b4c594ec325d32e0719f6eb997c9e3d8430b378465d17575d2ff1068ea86c4bbed5a4c7b278805c8a7eef2758d6f53fbbed6636517241f159bef4d9648b22de57d7e49a55be8f94db14c892a211f083b12687b6f846588569305d2c7bfeba7b077935b98527e98f9743385662078a41b0e6fda318f6f19fd0c227b19e0c1939f24ba14fad5d8adc72b94ccb7aad27086e721fb0d4a9d4cd8e762c577b88e9cc7d29674a1ce46573db59ea6dc82091a5eac7f9ea77ec4e7186d120497342e0e08dbb1cf4d857268d24c9f0253558a28cc975796c3d68f2f788962101318d3214da9b8409896450244b4712a03d10b4d656d0701c376551e42c57760e0e4e330dcf8f2f7bdc91b9e4b539d8beee86d510e45f0d7f5328e258214609524c128b0c514cddd0b0947acc75d0539af7c940dd33068e9519c4e59967fea716829c17377fd6afcf64680000000000000000000",
413 "396ce0802634c44851f6aaa20b4494967e4b7dfd7d9a54311232fa9b41058394bbb1b940f3feac871022da639d2c01caac10c93311116e757785c32997c2d9f5711269a8db62925ce1f4adbd89fa965474b2654307d26e54f849ac8b6e0ad609c9a12e091f3e035eeef834bdb31bfd5aea71a917075ac81974ea68714ec317238ff9d2520b77ba2854bbc6c9a7608cfeaeb673a1451d949950874358c4d909e4350c60082c0886a80c13725c9d2f3d55224f5644a9a736265f04faa5872df088f4f96e26d5a46d1648b30709dcc9849b04f673f149e981fc5cf5058170f974d3e7b21f8ac2269f6db13544f4925c12e7cdd1ccb70890a0e28a4d9f6bb2333cb600cf5966d7f429a22c62005472786c5528e0430cd6388fbb89ca0b2f1945128ddf88587331d6bb41d0634a52011338b90779277eee08133a82230e1b24aae65b793d18d73b5e51e7f12cb6396ad1d9927f1aaf440d526ecde9b996a2dae31257a516a84c84dd9c05862fd9625c96e4d92a733724cca430694d5623475bd643a2c73616d639f78942e0ea64654f5f67ebaf3f0b072279b6c14f6c3fb2bf9ca91f48fbb012352635475f1036659cae51f1de8e052d0b70a21986a5f6fa51a43344e48ec6f59c84b189ac9cfcbbaee16fa0073b9c8c2a6d5998dc2486c673bed41388cd520da0cb9e6ae271e188535337add11d1f4d2e1264d45c19a56ddc9e77d20f6466d0f41a81b0b6b6ee4940d3751479abca5b7f249608d0f17e1a1e1f157df944a590833eb1e2e3271b65c390cd2d17cffaab31d424fc0331b494324deeadac6fd2045cc62ecc5c87bd79db16f306677a4ec359e2cecabaef4efb9461de940774c5125f08f0b6a59900bcfc4ef407c6aa6cc8b8dc2e55aeae5b2f25fe9acf1533334c84ca7b558ff45efcedc2bebb4a4e6200000000000000",
414 "397debc135313dbd031dc06b5b3c7219ef6bd2ae1eddda47026b2efc71a4260a157f565602e39820702870f7f714c8d8d8f76c3b549aaf513bb4dba7ab620404704d1a17c8cdcefb14c341c7997e90f227add8476664813f8c2b78193345ea4c48a549097c9d4b757efa76a2c84c4747c7f8d49223298c68f77871b99decff52088f0e235ffca3081c5a38d2a3c69bbe8acab4044661ff5e5cec8d2af6e9771c29bee2c919242f1a36ae5717fc22c035bc6767e49bcc5126a735028ccba55e9ca35675b4fb9dbab56d3832f94b0d7d83c57128b35682188b23cae3e229dc5de9d782117222ae68e97ecd122bbdcca7a184d84a236946f6148cec234e1c5bf1454b0d82c7e0ce251297beeb02bec1b1489282b61ed60988d0a9eb5da3757d967cd355388463b457a6a3f9867efd1cee9a01658ea4156e973f0d53d0e6a7944dec008050d5f455d545900286e5c8153bd396b8bc93ebdcacc9ab57664f14b1593676162f4367dc7c2378681a4e861d06ea30ac382b8c49b691b3dba9a5cb2a442bbb6d56bb71b9b524ad113034ca9339ad921fc21a91672974272c8de41ff8593b4bdb77866ccadcd026d34517b1166c57d52f41d9450b14cd60e754060edd2a9c7ff405751352343f670f82a2ffecf948eb47b9a7e5c20b1269bf7b365cc3a28832a6c956cd6ed2379994e6345e7a677f3882922b062fbd9ecc93427db6d1a4ca1f58c56aa2bdc9e54379da71a050c307bda25970db43f7b0419be65cc88dacb35b5d709003296d21259f848d3170c86c1fa4a79b2d8a59e9ed4c2af4f43707b288ffe2d30325a345a32498e07d59356b02a5204a7a1ac31ced81854633109e1f0f088a9947e1177392863a8673be2c8ed234d0ac3012459cc99ab454a42cf988d0d7546e760e7b475e6bd59cf3d2400000000000000000000000",
415 "396ef355a73884a445da06224862bff01b287645d9d7f5a187302b60dd511a377cbac676d9711835365bce36f14442da80ee3ab713d30aad4b90378fda5d0b1567cb6f9b57df363edde062dada21c547aef9ea9dd9a308fc4638c33129f5ae8fc46291a1f659bf480ac09c2238ff8f469e8aa7938a64da8faa85fca2d048bd659e2a5ad63d53cd380749d0bfed523b293868e78e4cb96418c46cb3eda764868dc688fe1ce773a48e48f3e9072a0cc4d4366b7e211f9b4b382e460e9b475bd999ad718a927ada526da52e867300dd91bd01cd6d8e64c1414358249f0df8fffaf2906ad669c4d86b50e89a1ab44ee44b22353842e3286f412ce26756d6d30084f1f19cbeed013ebcf958fedf31f59643d3b5b322da109828eee6c964b896ce5446ab697c89be9bec9097b44c891ee528e4689d10c26e649874518066d4f4148313e6caf12f4454bcd791864305b3d7e0fec8b1295ba1309893e7c706c2c2ad9a67063e94fda738e8073114e37e7219fde753792973940674c1356c5625ee45f2b1bd7f97b7a41519640914b49a5cf3dae96e989e9d29289abe93ceb4a5c785992a6d84dc259b19a5e78523e0a7f4170e4365485a75f53896a30ec24150784ce1912659071e1d0b9a224d817b9eb35a034daa67ff1115c94774ee382dbfee614d42de95f65c4c67d3bdd1936559c24e89b1d27be6c33b20204f06ae70cd3d636c929c393244f9c2fbb3a69e10ebb80e7f6e359b4959291babb558a5e872d19e217485c4af42b2398477c3fcc26cd75a5c3cf0a28c231950dbd0795edb1644cb2104548439b44420f944130fb28b9588197c092dfc2870fa9d5e34e7e0e04adaf3c3ad4edb4330751e76e11f211b05e23f197b1527dccf74e3c44a248298431759d564bc4f4fa5552e3e442d6cbbb45fa8278a000000000000000000",
416];
417
418/// The polynomial test vector signatures.
419const EXPECTED_SIG_POLYS: [[i16; 512]; NUM_TEST_VECTORS] = [
420 [
421 -18, 23, 128, -18, 155, 226, -57, -111, -73, -186, -55, 101, 332, 15, 348, -134, -48, -101,
422 231, -285, 226, -132, 63, 155, 240, -324, -105, -29, -228, -35, 135, -381, -188, 185, 24,
423 106, -169, -18, -299, -123, -88, 38, 183, -20, -9, -100, 299, -34, -148, 16, -173, 168,
424 -149, 403, -117, -14, 30, -3, -106, -126, -37, -72, -138, 304, 103, 125, 51, -12, -28, 76,
425 -52, -35, 55, 271, 203, -198, 230, 125, 99, 65, 41, 226, 48, 150, 8, -26, -158, 184, -30,
426 127, -79, 159, -66, -34, -93, 167, 51, -53, -57, 144, -50, 408, 205, 78, -48, 196, 58,
427 -244, -66, 31, -193, -264, 136, -104, -173, 22, -290, -33, -81, -202, -36, 73, 221, -157,
428 -95, 183, -119, -101, -29, 4, 124, -47, 25, 20, -368, 5, -46, 86, 242, 209, 54, 131, -6,
429 176, -179, 177, 135, 8, 331, 178, 66, 108, 110, 170, 6, -97, -309, -187, -197, 67, -2, 23,
430 228, 118, -140, 160, -360, 25, -180, -75, -109, -119, 19, -163, -157, 0, -144, 41, 48,
431 -377, 234, -161, 22, -341, 58, -205, -230, -202, 8, -470, 16, -6, 49, -67, -92, -294, 107,
432 34, 6, -43, 21, -309, 89, -168, -6, 337, -317, -157, -146, 43, 106, 110, 98, 105, 15, -59,
433 196, 105, 30, 81, -11, -47, -6, -300, 167, 2, 177, -26, -385, 124, -158, 195, -187, -326,
434 247, 67, -110, 211, 234, 35, -7, 59, -398, -47, -41, -182, 45, -32, 88, 13, 72, 8, -122,
435 -95, 141, 69, -113, -34, 82, 15, -25, -256, -33, 200, 82, -273, 374, -151, -71, 158, 175,
436 293, 100, -130, -41, 20, -51, -277, -90, 138, 139, -32, -93, -142, 76, 334, -30, -188, -24,
437 -99, -149, -79, -170, 100, 291, 127, -185, 389, 149, 51, -422, -191, 243, -122, 185, -207,
438 -15, 273, 67, 2, -19, -347, 298, -111, 9, 403, -84, -118, -219, -50, 132, 121, 200, 19, 93,
439 -178, -87, -299, -201, -50, 484, -87, 88, 4, 114, -77, -302, -201, -286, 27, 3, -160, -55,
440 37, -146, 212, -115, -154, 4, -76, 25, -42, 4, 117, 73, -272, -34, 61, -243, 180, -143,
441 -153, -1, 273, -31, -187, -121, -37, -147, -227, 41, 182, -26, 306, 59, -46, 61, -97, 238,
442 80, 149, -370, -235, -16, -56, -241, -177, -50, 152, -34, 77, -6, -131, -248, 16, 118, 170,
443 187, -70, 42, -42, -107, -45, -392, 162, -129, -59, 14, -204, -23, 17, -68, -30, 85, 60,
444 168, 72, -90, -39, -170, -75, 33, 207, -29, 56, 53, 100, 53, -35, -230, 122, -72, 0, -80,
445 -60, -260, 47, 92, 82, -135, -112, -147, -166, 8, -21, 378, 164, -107, -100, -148, -151,
446 -181, -217, 331, 189, 45, -82, -125, 133, -46, 52, -277, 160, 128, 14, -274, 97, 8, -117,
447 130, -143, -148, 20, 103, -324, 34, -170, 18, -195, -129, 302, -161, 39, -22, -195, -33,
448 184, 32, -33, -34, -13, 283, -239, 121, -248, 43, 100, -210, -167, -27, -204, -278, 241,
449 246, -203, -20, 144, -207, 80, -12, 132, -27,
450 ],
451 [
452 6, 211, 76, 173, 266, 230, 186, 149, 157, 1, -164, 157, 21, 293, 12, -276, -98, -46, 178,
453 -222, -175, 89, 180, 127, 243, 95, 84, 261, 255, 59, -185, 64, -271, 28, -57, 119, 157,
454 -150, -85, 59, -135, 53, -52, 141, 47, -65, -128, -107, 228, -13, 20, -1, 284, 171, -112,
455 -1, -58, -51, -23, -384, -169, -82, -242, -9, -26, 184, 218, 147, 243, 216, -8, -5, 246,
456 -246, 82, 109, 134, 293, 14, 26, 93, -150, 78, 71, 90, -15, -227, -14, -16, 134, 42, -112,
457 114, 12, -228, -28, 4, 235, 82, 156, -332, -94, -8, 86, 44, -10, -310, 113, -29, 329, -22,
458 -193, 102, -56, 6, 295, -11, -117, -168, -52, 15, -243, -21, 7, -134, 47, -84, -139, -162,
459 -55, -469, 67, -88, -119, -231, 94, 92, 10, -188, 171, 49, 210, 49, -329, -20, -169, 226,
460 -220, 257, -9, -341, -63, -192, 248, -115, -101, -42, 50, -178, -15, -76, -124, 117, 6,
461 -160, 112, -333, -267, 6, -158, 47, 148, -112, 174, -57, -58, -155, -221, 189, 198, -12,
462 171, -23, 228, 154, 138, 253, -135, -143, 187, 236, 74, 175, 185, -155, 54, -23, 205, -38,
463 -46, -287, 252, -196, 156, 73, -45, 196, 13, -101, -14, -27, 137, -32, 65, -252, -62, -241,
464 -18, 138, 104, 243, 179, -155, 24, -110, -243, -213, -37, -233, -104, 74, 249, 223, 110,
465 183, -7, -42, 166, 55, -149, -291, -20, 105, 155, -100, -20, -227, -92, -141, -73, 13, 231,
466 -132, -84, -103, -117, 344, 376, -550, 184, 488, -26, 111, 67, -10, -12, -56, -28, -102,
467 176, 85, 17, 230, 253, -232, 55, 5, 198, 240, 13, 159, 67, 72, 66, -141, 6, -114, 110, 107,
468 386, 139, 260, 23, -207, 9, 264, -87, -141, -356, 120, -80, 37, -10, 36, 59, 184, -175,
469 434, 96, -289, -201, -14, 219, 224, 224, -123, 33, -140, 91, -124, -230, -73, -154, 383,
470 -21, 116, 178, -208, -7, 139, 98, 60, -18, 99, 166, -118, 56, 1, 119, 3, 162, 115, -181,
471 525, 80, 26, 146, -6, 178, 100, -153, -10, 87, 68, 401, -27, -148, -228, -295, 5, -196, 20,
472 -367, -154, -16, 83, 288, 110, 41, 451, -175, 24, 83, 206, 163, -26, 64, -51, -118, 315,
473 -132, 47, -78, -251, -83, 321, 173, 170, 57, 25, 155, -51, 53, -276, -69, -68, 199, -32,
474 95, -11, 176, 85, 171, 18, 75, 224, -199, 306, -385, -25, 434, -9, -20, 129, 165, -57,
475 -187, 100, 370, 131, 66, -275, 227, 197, 141, -109, -202, -98, 87, -54, 22, 202, 253, 59,
476 -327, -243, -249, -89, 187, -10, -175, 40, 196, -59, -20, -56, 23, -296, 83, -87, 84, 75,
477 -148, -174, -28, -215, 229, 120, 59, 275, 114, -52, -13, 331, -204, 253, 329, 156, 59, 37,
478 39, -329, 102, 173, -153, -198, 58, -63, 8, -229, 197, -44, -259, 151, -200, -7, 368, 12,
479 -132, 27, -60, -242, 157, -3, -181, 3, 75, 94, 22, 94, 35, 107, -205, -1, -75, 65, 87, 144,
480 76, 164, 35, 6,
481 ],
482 [
483 -12, 116, 55, 58, -191, -97, -27, -51, 358, 250, -17, -321, -35, -132, -47, 165, -119,
484 -178, 129, -201, 130, -188, 33, 78, -80, -182, -8, -168, -75, 213, -104, 99, -257, 21, 199,
485 111, -116, -39, 101, -157, 56, 151, 1, 68, -157, -215, 196, 97, 309, 51, -314, 250, 28,
486 -135, 156, 98, -316, 81, -26, 293, 56, -58, 338, 27, -38, 378, -61, -340, 416, -90, 50, 83,
487 -133, 53, -4, -47, -17, -77, 102, 130, 88, 12, -29, -14, -63, 53, 228, 132, 29, 134, -102,
488 -39, 259, -204, -233, -53, 18, 31, 198, 25, 51, -205, -101, 428, -101, 158, 62, -166, 209,
489 -128, -139, 160, -207, -263, 129, 146, 159, 13, -87, 280, -128, 35, 254, 13, -77, 177, 167,
490 292, 158, 258, 146, 121, -199, 60, 241, -98, 206, 308, -270, 73, -8, 119, -52, 183, -105,
491 227, -8, 285, -348, 320, -121, 54, 97, -29, 57, -84, 124, -176, -234, 80, -48, 325, 128,
492 188, 179, 237, -6, 17, 130, 16, -79, 2, 61, -59, -30, -113, 106, -72, -3, -381, 78, 74, 28,
493 -135, 89, -256, 71, -114, 92, -555, 81, -91, -116, 183, 46, -20, 168, -32, 155, 68, -272,
494 -8, -288, 78, 260, 74, 2, -47, 16, 265, -36, -55, 45, 99, 265, -93, 73, 237, 332, -98,
495 -196, -40, -128, -61, -44, 214, -177, -146, -104, -320, -158, 83, 117, 80, 29, -11, 206,
496 140, -48, 133, -284, -139, 187, -222, -155, -373, -199, -59, 83, -50, 48, -69, 176, -124,
497 -47, -149, -81, 245, -7, 24, -75, 83, -184, 129, -112, 150, -316, 116, 117, -56, 287, 43,
498 117, -126, 96, 255, 7, -156, -19, 213, 75, 358, 52, 223, 70, -131, 144, 92, -156, -263, 3,
499 33, 105, -80, 119, -370, -18, -55, 58, -344, 181, 75, 13, 179, -91, -257, -168, 8, -51,
500 -208, 32, 235, 28, -52, -373, 227, 142, 12, 115, 22, -210, 9, -27, 155, 90, -11, -94, 167,
501 282, 253, -48, -342, 89, 103, 11, 191, 152, 79, 25, -28, 70, -20, -161, -218, -10, -3, 20,
502 -355, 265, 93, 1, 125, -154, 3, -1, -190, -298, 211, -156, -68, -61, 50, -346, -129, 156,
503 -195, 151, 70, 254, 202, 175, -315, 30, -138, -49, 107, 154, 144, -54, -98, 33, 8, -125,
504 173, 209, 114, -117, -186, 47, -102, -106, -231, 358, -126, -119, -125, 52, -139, 95, 31,
505 246, 179, 247, 169, -192, 59, 261, 219, 108, -237, -43, -66, -221, -240, -215, -21, -78,
506 -266, 166, 23, 74, -166, -46, -359, -117, -4, 226, -23, 5, -339, 155, 238, 155, -5, -118,
507 0, -31, -143, -205, 54, -264, -174, 40, 151, -60, -29, 277, -57, 16, -58, 253, 142, 96, 7,
508 14, 268, 249, -332, 123, 344, -113, 20, 21, 21, 349, -230, 145, 203, 135, 107, 111, -56,
509 -14, -313, 29, -7, -426, -14, 4, 25, -197, -153, -150, -115, -102, -27, 179, 312, 231, 16,
510 -31, 158, -87, 307, -191, 65, 107, -50, -28, -181, -223, -62, 67, -124, 117, -66, 213, 30,
511 57, 23, -126, 88,
512 ],
513 [
514 86, -175, 177, 91, 1, -234, -101, 106, -270, 27, 80, -111, 52, 25, -85, 29, 25, 163, 352,
515 -123, 175, -21, 295, -208, 5, 182, 215, 167, 213, -16, -42, -123, -231, -121, 2, -69, -64,
516 -219, 60, -60, -184, 247, 123, 166, 156, -136, -220, 45, 439, -41, -431, -44, 519, 191,
517 224, 149, 177, 303, 75, -94, -4, -103, -100, 25, -130, 209, -130, 95, -155, 178, -67, 7,
518 106, 90, 6, -5, -74, 79, -36, 244, 95, 29, 25, 114, 52, -15, 80, -204, -62, 177, 133, -52,
519 71, 20, 151, 15, -4, 206, 358, -7, -251, 131, 28, -286, -107, -112, -271, -107, -140, -252,
520 -246, -34, 124, -110, -132, 46, -65, -32, -106, -370, -150, -149, -46, 190, -34, 59, -23,
521 51, 51, 122, -160, -247, 11, -379, -430, 129, -63, 21, -419, 37, 162, 236, -103, 240, -155,
522 -19, -39, 83, -58, 93, -160, -221, -57, -58, -469, -10, -182, -224, 29, -71, -77, 360, 30,
523 -87, 202, 181, 32, 86, -219, 153, 75, 117, -19, 199, 89, 156, 82, 95, -199, -140, 2, -10,
524 -253, 154, -28, -158, -149, -139, 141, 211, -31, 251, -156, 276, -210, -256, -203, 12, 211,
525 -197, -86, -37, 164, -101, 250, 304, 127, -249, -74, -49, -130, -140, -347, 165, 115, 206,
526 -210, -97, 86, 86, -156, 89, 8, 212, 114, 227, -136, 194, -119, 71, 391, 60, -44, 79, -88,
527 118, -299, 55, -101, -17, -66, 12, 77, 192, 237, -134, 35, 33, -157, 95, -306, 168, -97,
528 -146, -54, -108, -24, 41, -108, 202, -251, -227, 146, -230, 35, -186, 14, 17, 71, -30,
529 -188, 110, 49, 192, -159, -103, -170, -231, 67, 17, 81, 362, -161, 45, -74, -26, -138, -75,
530 128, -56, -27, 135, 26, -116, -107, 385, 128, -190, 249, -203, -2, -182, 65, 55, -439, 124,
531 151, -92, -232, 41, 68, 24, 43, -4, 100, -140, 459, 14, -49, -154, 73, -170, 191, -2, 139,
532 259, -100, 57, -250, 212, 111, -17, -249, -209, -61, 42, 176, 3, 212, -129, -261, 135,
533 -117, -358, 37, 170, 21, -118, -229, 132, -84, 231, -18, -137, 82, -195, -5, 170, -183,
534 157, 65, 56, -12, -442, -377, 115, -168, 236, 103, -53, 87, -255, 92, -56, 67, 235, -163,
535 167, -149, 113, 92, -114, -6, 51, -39, -99, 30, -57, 294, 169, -480, 9, 191, 57, -128, 204,
536 80, 275, 315, 175, -100, 4, -214, 191, 83, 119, -228, -145, 75, -221, -19, 322, 94, 146,
537 -209, 23, 274, 77, 167, -251, -153, 84, -12, 103, -43, -1, -109, -220, 51, 79, 138, -100,
538 -111, -23, 139, -217, 117, 375, -30, -539, 4, -30, -94, 469, -346, -151, -219, 33, 124,
539 226, -191, 194, -5, -238, -287, -187, -60, 87, 79, 190, 79, 36, -103, -97, 191, -145, 94,
540 218, -230, -158, 284, -16, -299, 29, -292, 14, -2, -112, 237, 405, -87, 125, -20, -18, -22,
541 -145, -103, 112, 198, 118, -60, 0, 18, 195, 76, -64, -109, -182, -36, 174, -81, 177, -41,
542 -63, 202, -164, 45, -171, 300, 8, -163, -41,
543 ],
544 [
545 -160, -274, 144, -207, 20, 118, 117, -215, 193, 55, -197, -9, 101, 5, 54, -84, -177, 158,
546 -166, 0, 230, -33, 154, 49, -117, 56, 112, -191, -231, -10, -139, -95, 180, -212, 377,
547 -355, 68, 34, 66, -378, -48, -241, 375, -166, -329, -214, -286, -135, -158, -78, 257, -113,
548 236, -80, -653, 38, -219, -172, 55, 206, -125, -36, 91, 10, 33, -81, -41, 109, -287, 53,
549 -25, -97, 59, 23, 109, 64, -121, 9, -172, -235, 19, 413, -117, -93, -112, 114, -256, -265,
550 -41, 155, -98, -95, 243, 105, -329, -13, 113, -142, 86, -336, -142, -116, 206, 268, 47, 11,
551 -122, 110, -198, 114, 49, 93, 163, -193, -124, -68, -151, -127, 249, -170, -188, 8, 117,
552 71, 30, -213, -21, 219, -220, 232, -122, 32, 86, 84, -6, 87, -128, -119, 168, 46, 191,
553 -235, -53, 184, -15, -107, 136, 256, -184, -209, 10, -64, 36, 202, -257, -189, -37, 12,
554 -45, 302, 258, -195, -6, -156, -96, -187, 34, -116, 63, 205, -35, -58, 43, -124, 252, -62,
555 208, 147, 89, 127, -210, -7, -293, 240, 23, -116, 27, -179, -255, 80, -108, -207, -46, -93,
556 78, 222, -102, 26, 3, 51, 165, -57, -222, -117, 432, 65, -24, -78, -86, -53, 82, -247, -19,
557 167, -51, 182, 227, 130, -72, -356, -110, 49, -230, 37, 40, -82, 42, 122, 127, -190, 227,
558 123, -149, -274, -57, 111, -29, 176, 217, 34, 109, 134, -12, -187, 261, 336, -342, 8, 195,
559 -30, -10, 398, 279, 70, -266, -121, -57, -253, 55, -208, -76, -84, -304, -26, -113, -21,
560 -292, -154, 280, 480, -68, 180, 181, -1, -121, -10, -185, 12, 88, -165, 172, 40, -457, 211,
561 204, -308, -357, -4, -175, -27, -155, 18, 133, -163, 69, -62, -200, 88, -63, 29, 40, 121,
562 157, -30, 28, -23, 356, 313, 479, 310, 304, -104, -129, 169, -49, -273, -181, -46, 77,
563 -287, 158, 147, 60, -4, 173, 115, -34, 115, 338, 186, 23, 38, -238, -66, 23, 6, 101, -65,
564 -56, 80, -199, -166, -33, -163, 153, 69, -288, -429, 182, -37, 81, 39, 112, 163, 37, -125,
565 209, 187, 252, -68, -152, -140, 195, 11, -92, -302, -104, 105, -292, 201, -183, 173, 25,
566 -47, 0, 96, -10, 255, -115, -83, -34, 255, 256, 113, 181, 177, -439, -325, -311, -85, 285,
567 132, -221, 230, -149, 72, -53, -79, -63, 77, -80, 185, -81, 300, 130, 128, -207, 279, -97,
568 -5, 89, 114, 74, 9, -215, -105, 94, -47, -174, -96, 1, -38, 107, 2, -39, -208, -156, 205,
569 -68, 81, -73, 367, -149, -27, 300, -186, -211, -111, 1, -84, 120, 27, 221, -68, -167, -111,
570 -51, -244, -67, -48, -95, 319, -43, 42, 118, 92, 257, -85, 125, 197, -99, -84, -59, -250,
571 -14, -294, 135, 190, -140, 124, -184, 217, -168, 381, -50, 371, 149, 130, 137, -102, 17,
572 111, -119, 273, 21, 56, 52, 104, -86, 389, -98, -369, -192, 125, -29, 102, -280, -199, -54,
573 17, 201, 139, 248, -4, -84, 95, 82, 107, 53, -217, 77, 95,
574 ],
575 [
576 83, 38, 258, -55, -152, 99, -55, 190, -42, -9, 4, -83, 72, 99, -27, 124, -39, -234, 82,
577 103, 113, 24, 64, -212, 163, 0, 68, -155, -137, 115, -333, 24, 114, 160, -166, -306, 210,
578 126, -91, 306, 253, -8, -227, 344, -121, -7, -41, 17, 151, 65, -141, 27, 0, -146, 2, -310,
579 -7, -141, 140, -609, -128, -94, 44, 185, 173, -66, -85, -104, 44, 502, 204, -219, -148,
580 118, -373, -288, -80, -10, 76, 407, 104, 188, 193, 179, -94, -28, 96, 7, -215, 111, -1,
581 -218, -48, 225, -196, 43, -161, 61, -69, -189, 190, -153, -156, -57, 51, 129, -98, 176,
582 181, 295, -195, -27, 12, -157, -85, 10, 10, 23, 219, -178, -209, -118, 282, -41, -161, 222,
583 210, -119, -241, 176, 67, 114, 62, 168, -122, -107, -32, -22, 29, -56, 188, -28, 133, 133,
584 -194, 123, -108, -63, -29, 124, -77, -167, 178, 39, 463, 145, -46, -88, -253, -227, -150,
585 199, -214, 126, -278, -70, -192, 149, 66, -49, -16, -29, -7, 172, 14, -33, 56, -24, -244,
586 117, -183, 3, -95, -81, 54, 24, 23, 105, -239, -43, 112, -106, -106, -329, 45, 104, -86,
587 -260, -18, -78, 103, -180, 44, -216, -259, -53, -101, -63, 223, 234, 106, -194, -186, -215,
588 171, 5, 35, 326, -218, -149, 64, -132, 32, 3, 48, -2, -279, -140, -164, 45, 97, 169, -5,
589 -15, -73, 133, -236, -243, 230, 57, -244, 102, -9, -27, 25, 104, -100, -105, -258, 89, 201,
590 97, -16, -377, -140, -28, -118, -427, -51, 240, 17, 103, 354, -1, -495, -227, -90, 208,
591 190, -101, -99, 81, 56, 145, -78, -360, 249, 76, 196, -39, 246, -128, 18, -59, -235, 116,
592 -23, 24, 117, 349, -386, -25, -249, 173, 169, 75, 95, 25, -39, 51, -12, 52, 88, 163, 14,
593 -53, 167, -92, 79, 352, -20, 257, -108, -96, 106, 123, 240, 46, 282, -25, 75, -417, -2,
594 130, -67, -88, -26, -113, 138, -128, -39, 304, -177, 110, -387, -114, 103, 102, -201, -76,
595 -40, 11, 109, -245, 0, 96, -168, -121, -17, 223, -274, 378, -126, 245, -280, -312, -112,
596 93, 93, 36, 146, -1, -31, 232, -59, 9, -150, 56, -190, 35, 177, -312, 162, -398, -84, -142,
597 56, -141, -123, -163, -12, -33, -82, -168, 47, 462, -16, 231, -203, -19, 197, 79, 220, -94,
598 -16, -231, 85, -295, -29, 63, 91, -17, 359, -93, 81, -100, -26, 72, -84, -39, 42, -93, 85,
599 223, -15, -90, -7, 108, -129, 415, 135, -16, 153, 515, -51, 25, -97, 33, -158, -90, -73,
600 -160, 373, 84, 157, -236, 72, 112, -87, -35, 99, 135, 18, -41, 3, -120, -27, 51, -70, 243,
601 243, 98, -29, 125, 67, -87, -30, 104, 340, -214, -91, 7, 211, -296, 88, 26, 220, -393, 84,
602 29, -265, -141, -245, -233, 147, 70, 229, 33, -102, 200, 246, -84, -172, 21, -236, 22,
603 -228, 356, -43, 304, -21, -200, 131, -89, -69, 343, 292, -343, 241, 58, -120, -166, 262,
604 -223, 270, 186, -136, -62, -28, 26, 83, 291,
605 ],
606 [
607 -119, 301, 227, -270, -127, -118, -286, -203, 91, 379, -104, 181, 98, 295, -82, 240, -364,
608 325, 66, 31, -48, -90, -6, -47, 1, 129, -68, -243, -104, -160, 75, 184, -312, -101, -39,
609 42, -131, -163, 266, -104, -72, -191, 229, -17, 246, -125, -35, 219, 86, -117, -64, 132,
610 184, 5, -136, -117, 6, 148, -189, -76, 329, 166, 86, -174, -67, -20, 186, -144, 84, -134,
611 -22, -179, -37, 81, -182, -130, 54, 51, 219, -149, 281, -18, 36, 37, -44, -207, 191, 148,
612 56, -133, -74, 129, -138, 188, -256, -124, -201, 149, -93, -49, -10, 256, -119, -40, 298,
613 -14, -22, -113, 76, -402, -239, -188, 271, -58, -71, 107, -53, 246, -163, -20, -27, -27,
614 -103, 114, 42, -33, 212, -158, 139, -127, -3, -150, -12, 78, -255, 287, -30, 305, 82, 34,
615 55, -171, 242, 182, 117, 61, 271, -96, -115, 5, -129, -143, -102, 186, -121, -21, -120,
616 -132, -35, -235, 144, 13, -57, 99, -85, -311, -313, 222, -58, 97, -136, -282, 1, -41, 43,
617 -60, -246, 472, -52, 152, -80, 102, 160, -84, 12, -217, -76, -72, 2, -556, 37, 69, -371,
618 -390, -32, -147, -68, -248, -217, -252, 113, 26, -139, 262, -83, 470, -33, 0, -282, 77,
619 185, 88, -314, -272, -318, -42, -61, -319, 196, 58, 331, 108, 66, -259, 220, -206, 224,
620 -167, -84, -361, 51, -24, 155, -207, 214, 169, -145, -22, 154, 71, 175, 173, -448, 273,
621 -23, 87, -41, -182, -73, 18, -544, -303, -344, -336, 314, 110, 50, 74, 25, -42, -79, -75,
622 -26, 160, 12, -91, 92, 244, -37, 152, -36, -64, 3, -86, -198, -49, -169, -95, 285, 150, 88,
623 -14, 271, 185, 186, 270, 40, -2, -320, 264, 65, -6, -156, 163, 88, 19, -204, 215, 37, -2,
624 -286, -215, 228, 156, 191, -28, -110, 54, -30, -44, 191, -7, 23, -79, 187, -28, 6, 66, 245,
625 -112, 164, -66, 34, 155, 162, -165, -143, -140, 121, 145, -40, -122, 112, 150, 271, -317,
626 162, -330, 92, -34, 458, -3, 107, -69, 185, -55, 69, 28, -15, -85, 117, 182, 95, 72, -249,
627 -44, 65, 33, 116, -182, 270, 181, 333, -18, -50, -42, 207, 148, -89, -305, 66, -476, -128,
628 -80, 51, 180, 0, 261, -104, -168, -198, -142, 87, -134, -124, -65, 154, -110, 112, -50,
629 -135, -122, -119, -209, -209, 120, -180, 201, 150, 130, -30, 251, -78, -174, -17, -3, -162,
630 -217, -22, 386, 183, -82, -21, -76, -172, 211, -254, 67, -115, -261, 79, -24, 105, 193,
631 162, 209, 437, -174, 179, 98, 243, 201, -236, -108, 11, 188, -201, -85, 187, 17, 174, 134,
632 58, -203, 23, 34, 191, 218, 50, -7, 462, 74, -98, -88, 81, -27, -199, 215, 177, 52, -14,
633 -10, -180, -82, 146, -191, -75, 92, 149, -136, 98, 157, -207, -11, -209, 184, 5, 127, -55,
634 177, 129, 127, -33, -22, -301, -142, 156, -32, 225, 163, -144, 18, 172, -66, 136, -49, 227,
635 -223, -261, -556, -291, -79, 85, -12, 71, 230, 20, 7, -79, -120, -83, -388,
636 ],
637 [
638 -68, 171, 223, -75, -188, 195, -122, 103, -38, 98, 306, -173, 126, -122, -92, -132, -73,
639 -129, -249, 106, -42, -160, -221, 546, 99, 244, -3, 44, 329, -138, -9, 301, -297, -155, 55,
640 151, -284, -90, 71, 97, -91, -95, 37, -11, 74, -20, 58, 315, 112, 132, 90, -97, 303, -106,
641 -32, -223, 0, -62, -513, -236, -62, -577, 208, -13, 329, 157, -261, 41, 311, 3, 249, 76,
642 -224, -57, 46, 148, 23, -35, -4, 41, -101, -43, -480, 192, 12, 137, -5, -19, -147, -148,
643 18, 132, -273, 153, 77, -324, -38, 167, -133, -24, 310, -92, -152, -98, -42, 150, -9, 161,
644 165, -32, 462, -70, 165, -48, 111, 97, 236, 24, -172, -98, 254, 199, 131, 138, -13, -148,
645 -26, 93, 120, -370, -171, 38, 65, -66, 16, -38, 324, -49, 43, -65, -114, 43, -256, -152,
646 108, -338, 67, 109, 102, -3, -394, -18, -204, -249, 217, -97, -333, -23, -58, 120, -17,
647 -312, 96, -69, -186, 263, -101, -169, -3, 182, 26, -28, 156, -76, -52, 249, 34, 26, -245,
648 203, 27, -361, -53, 19, -252, -187, -26, 106, 23, 311, 11, -159, 97, 95, 1, 1, 0, 81, -82,
649 -5, -206, -46, 144, -205, 31, 118, -125, -68, 152, -40, -18, -127, 109, 227, -155, 154,
650 352, 80, 61, -340, -11, 166, -166, 71, 101, 103, -255, 342, -172, 61, 213, 562, 232, -44,
651 102, 276, 66, 227, -72, -163, -55, -340, 23, -236, 128, 29, 281, 146, 203, 75, 72, 176,
652 257, -42, 140, 223, 92, -255, -281, 72, 44, 22, 403, 292, -282, 431, 243, 26, 149, -63,
653 108, -72, 152, -130, -114, 197, -24, 122, 140, 281, 166, -240, -8, -52, -75, -116, -46,
654 -101, -45, 231, -105, -1, -128, -5, -296, 73, -62, 125, -79, 18, -67, 6, -125, 0, 54, 147,
655 -74, 92, -321, 107, -176, -44, 195, 97, 99, -138, 139, 220, -366, 177, 360, 100, -165, -50,
656 141, 252, 145, -51, 105, -140, -37, -33, -219, -166, 11, -55, -320, 5, -3, 196, -69, -41,
657 -73, 91, -54, -170, -260, -148, 320, 301, 74, -358, -73, -70, -85, -157, 105, 33, -88, 93,
658 38, 205, -371, 2, -220, 52, 342, 165, 208, -50, 160, 180, -47, 262, -162, -101, -60, 194,
659 56, -97, 29, -28, -336, 44, -3, -194, -38, 10, 338, 237, 244, 30, 128, 281, 151, 70, -4,
660 -60, 61, -23, -138, 192, 90, 129, -116, 30, 140, -140, 10, 295, -63, -242, 45, -96, 141,
661 -18, 104, 46, 189, 36, -45, 189, -186, -136, -121, -64, -147, 64, 190, -105, -141, 91,
662 -189, 253, -18, 43, -159, 338, -74, 129, 200, 111, -73, 115, -3, 25, -543, -31, 345, 119,
663 -69, 48, -1, 42, 353, -135, 282, 93, -71, -67, -97, -207, -302, -109, -145, 59, -259, 72,
664 235, 126, -189, -201, -143, 12, -246, -43, 69, 0, 219, -136, -120, -119, 113, 1, -64, 13,
665 -278, -329, 12, -151, -120, -94, -31, -188, -146, 208, 93, -17, 123, -75, -149, 88, -176,
666 57, -147, -353, 206, 128, 125, 370, -42, -162,
667 ],
668 [
669 100, 10, 174, 83, -192, 423, -180, 122, -18, 221, 21, -129, -94, -203, 104, -57, 98, -217,
670 179, 51, -95, 282, 288, -112, 344, 402, 17, 11, 14, -179, 237, -247, 278, 211, -96, 268,
671 -11, -148, 143, -199, 11, -455, 131, 227, -151, 272, 150, 254, -129, -137, -195, -104, -85,
672 -22, 32, -279, 29, 222, 136, -250, 243, -67, 16, 244, 25, 9, -374, -7, 18, 96, -37, -158,
673 149, -10, 285, -117, 251, 4, 33, -64, -9, 199, -256, -20, -246, 202, -185, 193, 388, 118,
674 -228, -82, 8, -133, 114, -457, 30, 61, -315, 11, 328, 48, -87, 128, -249, -89, 481, 66,
675 281, -145, 13, 77, -83, 151, -9, -196, -118, 253, 156, 238, -72, -8, 185, 109, -381, -193,
676 400, -233, 42, 22, 195, -180, 167, 293, 332, -9, 96, 11, -14, 41, 231, 139, -17, -81, 37,
677 372, -1, -136, 304, -21, -161, 55, 119, 250, 147, 219, 145, 17, 88, 305, -206, -40, 92,
678 380, -220, 178, 216, 207, 101, 265, 16, -100, 271, 37, -5, -226, -64, -249, 18, -93, -61,
679 135, 115, -116, 4, -60, 60, 414, -154, -68, -13, 372, -19, -83, 104, 241, -252, -3, 169,
680 50, 14, 261, -128, 0, 36, 113, 188, 28, -107, 218, 107, 76, -176, 178, -166, 120, -180, -9,
681 -6, 223, 269, 65, 28, 51, 117, -149, -193, 5, -148, 14, -46, 172, -55, -115, -7, -19, -67,
682 89, 44, 66, 301, -267, 78, -134, 46, 50, -64, -198, -118, -343, -23, -19, -143, -260, -5,
683 55, 8, -151, 151, 221, -82, -382, 6, 157, 195, -137, -223, -171, 294, -108, 188, 0, 370,
684 79, -59, -19, 88, -45, -84, -125, -62, -44, -13, 40, 242, 7, -10, -27, -94, 182, 100, 150,
685 22, -229, -117, -242, 52, 86, -244, -114, 54, -138, -273, 298, 8, -112, 135, -265, -33,
686 -219, -112, 153, -136, 218, 176, 116, 99, -63, -215, 61, 135, -100, -45, -152, 73, -116,
687 -15, 46, 12, -66, 358, 3, -138, 6, -263, -191, -419, -143, -188, -31, -33, 8, 61, 25, -65,
688 134, 57, -100, 46, 138, -117, 215, -10, -56, -74, -202, -153, -189, 218, 184, 13, -28, 15,
689 -48, -169, 78, 76, -49, -29, 278, 93, -220, 285, -204, -116, 331, -82, 142, -72, -21, -30,
690 -53, 189, 54, -328, 4, 154, 122, 99, -121, -84, -95, 226, -334, -6, -162, 130, 174, -161,
691 -65, -258, -183, -142, -105, 225, 242, -163, 36, -19, -64, 41, 85, 148, 198, -18, -85,
692 -203, -7, 346, -101, -350, 18, -136, 257, -140, -166, 138, -309, -184, 130, -137, -145,
693 130, 18, -35, 18, 192, -104, 139, 53, 171, -32, -192, -195, -217, 81, -200, 98, 247, -3,
694 263, 56, -152, -57, -99, -23, 123, -313, 27, 60, 173, 57, -177, -247, -80, -181, 16, -72,
695 380, -47, -84, -148, -68, 96, 266, -130, 210, 176, 40, 97, 148, 76, -59, 66, -4, 71, 89,
696 157, -208, 206, -175, -242, 64, -186, -280, -35, 74, 25, -9, -150, -150, -127, 83, 22, 261,
697 -193, -77, -63, -86, 95, 61, 163,
698 ],
699 [
700 34, -52, -142, -82, -256, -74, 344, 12, 166, -8, 145, -57, -43, 248, 112, -20, -23, -5,
701 103, -43, 273, 52, -40, -54, -138, 37, -284, -116, 219, -236, 191, 331, 81, -37, 166, 80,
702 -3, -210, -185, 79, 265, -44, 22, -312, 90, -130, -73, 194, 240, 35, -79, 1, 94, -93, -96,
703 -37, -347, -13, -253, 107, 83, 26, 34, -65, -173, -272, -151, 58, 308, -325, -216, -11, 35,
704 31, -231, 293, 5, 119, 244, 66, 75, 120, -178, -167, -258, -31, -43, 347, -78, 266, 199,
705 -20, 50, 450, -80, -172, -9, 356, 60, 141, 140, -256, 5, 258, 141, 192, -130, -313, 242,
706 -82, -103, 213, 162, 189, 228, 170, -295, -305, -23, -130, -245, 300, -203, -112, 17, -83,
707 -203, -68, -181, -164, -180, 100, 150, -3, 9, -57, 422, 38, -130, -108, -79, -138, 317, -1,
708 -120, 115, -296, 224, 112, -114, -211, 190, -108, 15, -10, -132, 52, -118, -310, 181, 19,
709 -36, 37, -130, 115, -77, -35, 50, -184, 402, 65, -266, 73, 103, -53, -306, -25, -203, -256,
710 -30, 101, 54, 255, 138, -290, 483, 256, 81, -19, -6, -10, 330, -64, 268, -26, -270, 159,
711 -220, 185, 5, 431, -148, 68, 70, -95, 16, 97, -25, 157, -46, -32, -208, -269, 202, 0, 275,
712 -69, -144, -222, 167, -123, 240, 130, -157, 132, 152, -195, -146, 85, -153, -55, 39, 326,
713 -174, -90, -485, -103, -226, 101, 99, 173, 104, -89, 36, -252, -42, -104, 131, 210, -315,
714 -317, -57, 173, 22, -302, -265, 94, 40, 106, 9, 289, -315, -192, 97, 23, -217, -137, -201,
715 -313, -178, 83, 179, -329, -153, 33, 6, 41, 85, 17, 199, 239, 356, -209, -142, -48, 237,
716 -142, -119, 18, 11, 135, 76, 153, 207, 125, 191, 117, -79, -5, 263, 19, -155, -176, 207,
717 -48, -125, 43, -115, 170, 159, 35, -93, 257, 26, 294, -298, -87, -392, -307, 359, 92, 71,
718 -14, -104, -64, 203, 139, -66, 16, -152, -169, -118, -116, 70, 33, 180, 313, 29, 27, -44,
719 -200, 172, -9, 345, -79, -151, -215, -66, -62, 256, -78, -206, 152, 211, -299, -24, -184,
720 292, -49, 57, -62, -296, 56, 25, 84, 6, -32, -279, -102, 220, 56, -97, 16, 205, 179, -235,
721 -465, -81, -105, 75, 265, -147, 69, -259, -165, -183, -73, -78, -116, 7, 228, -155, 143, 6,
722 64, -48, 237, -183, -329, 64, -38, -212, 71, 181, -357, 109, -377, 37, 132, -33, -69, -112,
723 -33, -67, -197, 125, -114, 18, 44, 264, -159, 99, -11, 281, -70, -50, -67, 33, 52, 104,
724 124, -255, 85, 49, -168, 39, -320, -24, -52, 168, -146, -61, -171, -172, -191, 160, 279,
725 -140, 246, -11, 33, -94, 121, -310, 367, -259, -29, -210, -216, -44, -98, -29, 42, -215,
726 -105, -62, -330, -135, -233, 1, -186, -266, 37, -481, -225, -309, 230, 0, 121, -369, -94,
727 1, -227, 84, -307, 407, -184, 114, 90, -85, -22, -23, 37, -381, -44, -98, 76, -25, 76, 9,
728 41, -90, 88, -126, 23, 254, -91, 10, -117, -52, 73, -24,
729 ],
730 [
731 168, -67, -63, 241, 306, -49, 99, -187, -135, -170, 181, 122, 19, 118, 54, -83, -171, -392,
732 385, -321, -163, 11, -72, -27, 59, -88, 332, -32, -71, 50, -250, 271, 19, -45, -48, 29,
733 307, 160, 63, 152, 91, -1, 166, -34, -234, 305, 20, 210, 137, -242, -84, 110, 95, 381, -90,
734 150, 9, 17, -35, -71, -113, 210, 290, -20, -140, -35, -59, -391, -57, 59, -51, -122, 32,
735 17, -67, 17, 95, -249, 152, 3, 22, 156, -165, 286, -38, -223, 21, 42, -288, 17, 48, -255,
736 249, -78, -17, 74, 251, -82, -220, -66, 55, -56, 100, 281, 161, -227, 155, 92, 220, 127,
737 -132, 480, -45, -198, -89, -242, 55, 177, 146, -41, -26, 2, 25, 46, 42, -105, -148, -299,
738 -86, -39, -57, -183, 90, 365, -65, 47, 169, -6, 125, 7, 21, -137, 150, -171, 260, -8, 228,
739 -229, -71, -8, 78, -69, -317, -87, 260, 279, 145, 92, -35, 75, -108, -162, 21, -61, -153,
740 573, -4, -48, 40, 155, 40, -61, 138, 25, -48, 154, -67, 22, -120, 197, 300, -176, 99, -96,
741 -156, 40, 169, -111, 117, 2, 125, 6, -138, 146, 193, 364, -237, -130, -8, -161, 207, 107,
742 104, -58, 125, 44, -243, 181, 334, 8, -14, -34, 250, -40, -124, -134, -123, -104, -78,
743 -211, 0, 101, 157, 32, 86, -82, -79, -6, 83, -33, -26, 60, 68, -61, 256, 0, 195, 223, 149,
744 -213, 150, 256, 195, -75, 160, 83, 250, -203, 241, -100, 62, 123, 299, -147, 90, 246, -19,
745 -138, 98, 100, -51, 225, -11, -33, 103, -56, -112, 27, -6, 131, 167, 268, -208, -58, 152,
746 216, -193, 113, 146, -54, 163, -30, -58, 52, 114, -277, 16, 93, -54, -42, -46, -56, -57,
747 234, 165, -290, 304, -166, 210, -28, -45, 292, -380, 141, 34, -28, 75, 194, -331, 27, -144,
748 -127, 267, 187, 175, -183, -97, 182, -21, 243, 130, -52, -34, 23, 354, 102, -10, -245, 175,
749 135, -148, 66, -138, -26, -3, 58, 192, -3, 110, 42, 56, -127, -288, 221, 147, 72, -33,
750 -246, -67, -193, 69, -127, 103, -20, 157, -35, -57, 79, -535, 5, 146, -38, -123, -179,
751 -279, -135, 148, 134, 211, -18, 347, -45, -52, 27, -25, 41, -24, -34, -103, 76, -95, -156,
752 261, 34, 96, -11, -94, -30, -281, 308, 62, -54, -163, 166, 67, -342, -10, -42, 21, -92, 60,
753 80, -60, -218, -70, 2, 268, -3, -61, 68, 101, -6, -308, -123, -176, 134, -190, -279, -401,
754 -53, 44, -45, 221, -194, 256, -20, 365, 265, 103, -194, 154, -11, 12, 13, 7, -210, 335,
755 -50, -177, 44, -105, -90, 48, 87, 207, 13, -3, -50, 17, -127, 22, 304, -18, -163, 22, 281,
756 294, -64, -245, -147, 90, -129, 202, 130, 207, 141, -262, -78, -304, -133, 24, -24, 9, -67,
757 -67, -132, 277, -148, -248, 151, -206, 168, -14, 323, -78, -241, -17, -52, 154, -161, 97,
758 257, 34, -28, -275, -171, 277, 200, 103, -24, 410, -46, 81, 115, 96, -207, -35, 222, -175,
759 89, -158, -361,
760 ],
761 [
762 91, -156, -55, 148, 16, 237, 1, -56, -85, 369, -105, 10, 90, 174, 131, -99, -365, 372, 98,
763 89, -101, 111, 54, 223, -243, -15, 110, -224, -139, -45, 324, -197, 30, 119, -30, 83, 246,
764 -547, 31, 17, 156, -134, -137, 62, 107, 71, -196, -138, 410, -246, 102, -250, 129, 224,
765 184, 17, -15, -113, -81, 207, 149, 60, 56, 76, 54, 71, -42, 11, -114, 22, 4, 23, 217, -286,
766 82, -173, -143, 83, -154, -320, -210, -80, 127, -181, 35, 357, 184, -35, 188, -73, 174,
767 484, -140, 283, 103, -54, 315, 33, 70, -70, 17, -248, -206, -92, -210, 28, 35, -159, 32,
768 -74, 134, -9, 80, -179, 111, -136, 31, 54, 44, -193, -72, -3, 77, 199, 239, -25, 53, 220,
769 -10, 36, -235, -293, 54, -293, 372, -28, -128, -315, 27, -288, -205, -310, -76, 176, 193,
770 141, -130, 39, -6, -120, -127, -107, -20, 6, 90, -154, -68, -48, -173, 14, 147, 141, 104,
771 59, 162, 228, 26, 184, 11, 153, 13, -208, 44, -68, -157, 237, -52, -128, 9, -71, -12, -75,
772 -93, 192, 62, 121, -229, -15, -91, -204, -117, 44, 143, 187, 108, -145, -308, 9, 389, -93,
773 -283, 44, 302, 45, 185, 196, -42, -52, 124, 147, -116, -62, -402, 175, -162, -273, 30,
774 -202, 327, 282, 314, 268, 311, -146, -135, 148, -128, -155, 207, 261, 262, 190, -50, 120,
775 175, 145, 75, -26, -228, -134, 396, 108, -107, -96, -125, 34, -137, 171, -80, 48, 305, 190,
776 -113, -131, -5, 10, 108, -166, -65, 159, 41, -118, 57, -14, 0, -204, 20, -70, -121, -16,
777 -31, -60, -84, -60, 169, -206, 192, -285, -130, -171, -10, -137, -238, 23, -21, 27, -47,
778 -101, -91, -420, 81, 44, 130, 20, 361, -37, -158, -237, -82, -186, -9, -83, 202, 40, 181,
779 -116, 60, -86, 169, -71, 267, -18, 77, 353, -184, 44, -49, 52, 121, -66, 35, -193, 63, 193,
780 -67, 33, 229, 161, -167, 253, 56, 173, 152, -216, 32, 208, -353, -284, -273, 50, -144, -71,
781 14, 11, 180, 146, -304, 123, 189, -26, -288, -38, -170, -31, -120, 145, 242, 199, -83, 113,
782 -2, -55, -123, 48, 205, 139, -233, 125, 302, 49, 62, 59, -314, -147, -149, -284, 167, 147,
783 -14, 39, 124, -48, -29, 288, 130, -96, -43, 184, -154, -491, -182, 293, -67, 166, 162,
784 -115, 11, -93, 186, -39, 136, -215, -192, -79, -91, 26, -155, 165, -18, 163, -85, -181, 98,
785 175, 142, 104, -286, 11, 200, 369, 94, 10, -17, -152, 29, -97, -124, -4, -179, 117, 75,
786 271, -225, 148, -132, -12, 80, -55, 65, -74, -109, 98, -273, -150, 264, 277, 136, -77, 196,
787 264, -114, 144, 48, -246, 69, -21, 272, -23, -257, 45, -248, 67, 15, 83, 87, 154, -79, -3,
788 130, 219, 121, -67, 90, 187, -308, -280, -212, -231, -184, 287, 8, -176, 120, 31, 153,
789 -236, 210, -375, -30, -83, 286, 18, 146, 261, -260, -11, 89, -42, -18, -226, -105, -233,
790 341, 113, -228, 139, 108, 247, -34, -122, 4, -98,
791 ],
792];
793
794/// The secret key polynomials used for generating the test vector signatures
795const SK_POLYS: [[[i16; 512]; 4]; NUM_TEST_VECTORS] = [
796 [
797 [
798 1, -3, 0, 4, 0, 5, -3, -4, 4, -2, -6, 4, -2, 6, -5, 7, 7, -1, 1, 6, -2, 1, 6, -3, 3, 0,
799 7, 0, 3, -1, 0, 1, 0, 0, 2, 2, -7, 2, -7, -5, 1, 7, 3, 0, -3, 2, 7, -3, -8, -1, 5, 2,
800 5, 1, 5, -6, 2, -2, 3, 0, -9, 0, 1, 2, -11, 1, -7, 0, 5, -2, -3, 7, 4, 3, -3, 10, -1,
801 -2, 10, 2, 8, -8, 0, -2, 6, -5, -1, 2, 0, 1, -4, 1, -6, -2, 0, 0, 2, 2, 0, 0, -7, 8,
802 -3, 1, -9, 0, 4, -8, 2, 2, -2, -2, -6, -7, 4, 1, 0, 2, 4, 6, -2, 1, -6, -1, 0, -9, 5,
803 2, 0, 1, 2, -4, -3, 4, -3, 6, 2, 7, -2, -1, 2, -5, -6, 2, 6, 1, -2, 4, 10, -4, 0, 1, 2,
804 -6, 0, 3, -2, -1, 1, 2, -4, 6, 0, -7, 2, -4, 3, 4, 0, -5, 2, -4, 0, -1, -1, -4, 3, -4,
805 2, -3, -2, 0, -7, 3, 5, -5, 0, 4, 1, 3, 6, 9, -1, -2, -2, 4, 1, 11, 4, -2, 5, -4, -4,
806 2, -1, 4, -1, 0, 0, -2, 3, 0, -4, -6, -1, -2, -1, -6, 2, 2, -1, 1, 1, -4, -9, -4, -5,
807 -2, -3, 0, 2, 3, -1, 2, -1, 0, -4, -5, -4, -2, 0, 4, -4, -6, -2, -1, 0, -3, 0, -4, 7,
808 2, 1, -4, 4, 3, 6, -5, 2, 1, -2, 2, 2, 0, -4, 0, -1, -4, 5, -1, 1, -1, -3, -3, 3, 6, 2,
809 -7, 5, -3, -2, -1, -1, 3, -2, 2, -2, -5, -5, -6, -8, 2, 0, 3, 1, 3, -7, 7, 2, -4, -4,
810 0, 0, -10, -1, 0, -1, 0, -9, 2, -5, 2, 4, -6, 3, -1, 5, -2, -6, -3, 1, 4, -4, 0, -3, 1,
811 3, -5, 4, -2, -2, -3, 9, -2, 1, -1, -3, -2, 4, 8, -1, -3, 4, 2, 3, 4, -4, 1, 7, -8, 0,
812 2, -2, -3, -1, 1, -5, -3, -10, -1, -5, 2, -1, 3, -1, -1, 5, -1, -5, 1, -6, -1, 1, -5,
813 -4, -10, 3, 2, 3, 1, 6, -5, -3, 3, -9, -1, 4, -6, -2, 2, -1, 4, 2, -8, 1, 3, 2, -1, 3,
814 -3, 3, 2, -3, -11, 4, -2, 2, 2, -4, 5, 1, 8, 1, 2, 5, -2, 3, -7, -5, -2, 0, 5, 3, -3,
815 3, 6, -3, -3, -4, -4, 0, 2, -2, 5, -7, 7, -1, 3, -1, -4, 3, -1, -3, 1, -3, 4, -3, 1,
816 -1, -1, 2, 3, 2, -3, -6, -2, 5, 3, 0, -3, -2, -5, 7, 4, -3, 8, -1, 4, -3, -4, 1, 1, -1,
817 5, -1, 0, -1, 2, -3, -1, 0, 3, -2, 0, -2, 7, 1, -5, 5, -2, -3, 4, -5, 5, 2, -3, 0, -5,
818 0, -4, 0, 3, 3, -1, -5, 3, 3, 4, 2, 0, 8, 7,
819 ],
820 [
821 -4, -7, 4, -2, 3, 3, -2, 4, -7, -1, -2, 6, 5, 0, -1, 5, 1, 3, -5, 7, 1, 2, -9, 5, -1,
822 1, 7, 3, 1, -2, 4, 0, 2, -3, 2, -4, 5, 5, -4, 0, -2, -2, -5, 3, -7, -2, 3, -3, -7, -5,
823 5, -3, 3, -5, -1, 0, -2, 7, 6, -2, -10, -3, 4, -2, -3, 2, -4, -1, -6, 1, 1, -6, 2, 0,
824 7, 3, -3, 1, -8, -3, 0, -5, -4, -3, -2, 1, 0, -3, 6, -7, 4, 2, -3, -1, 4, -7, 0, 5, -1,
825 3, 3, -8, -3, 1, -3, 0, -5, -2, 0, -3, 3, 1, -7, -4, 4, 3, 1, -1, -7, 1, 0, -4, -1, 2,
826 0, 6, 3, -3, 5, -3, -2, 5, 0, -4, 0, 2, 0, 0, -1, 2, -1, -7, 3, -1, 3, -1, -1, -7, 2,
827 -4, -5, 9, -2, 1, 1, -8, 6, -9, 2, 2, 3, -3, 4, -3, 2, 3, -3, 2, -3, -3, -2, 1, -3, -5,
828 -7, -4, -2, 11, 1, 0, 0, 4, 4, -3, -1, -4, 3, -2, 1, -10, 9, 4, 1, -3, 0, 2, -3, 5, 0,
829 -8, -3, 0, -2, -1, 1, -3, 5, 1, -2, 2, 0, 2, 11, 2, -2, 1, 0, 3, 0, 8, 1, 6, -1, 1, -2,
830 -2, -1, 8, 0, 0, -3, -1, 7, 4, -3, -6, -5, 4, 1, 1, 4, 5, -1, 0, -6, 1, -4, 2, 4, 5, 3,
831 -1, -2, 4, 2, -8, 0, 1, -2, 1, 5, -1, -8, 6, -1, -3, 0, 5, 0, 4, -1, -4, 1, 2, 11, 1,
832 -6, -2, -5, -4, -3, 3, 2, 4, 1, 6, 4, 4, -2, -3, -3, 3, -9, -1, 6, -2, -1, -3, 4, 1, 4,
833 1, 3, -8, 0, 2, 0, 3, -2, -2, -2, -7, 2, 1, -5, 0, -8, -1, -7, 2, -1, 2, 4, 6, -5, 0,
834 -5, 1, 7, 3, -1, 8, -1, 4, -3, -5, 0, 0, -6, 0, -2, 8, -3, -9, -4, -5, 3, -5, 2, -4,
835 -2, 1, -1, -1, -4, 2, -2, 6, -6, 3, 0, 3, -7, 4, 2, -3, -5, 3, -7, 3, -3, -2, -4, 4, 4,
836 -3, -3, -4, 5, 0, -2, -2, 2, -2, -1, 3, -5, 1, 3, 3, -6, 2, -2, 1, -3, -7, 2, 4, 2, -4,
837 0, 0, 7, 1, 6, 2, 3, -3, 7, 3, 3, -4, 3, 4, 5, 0, -5, 0, -8, 0, -5, -1, 2, 4, 0, -2, 0,
838 -3, 4, 4, 5, -3, 5, -4, 0, 1, -7, 0, 1, -1, -7, -4, -4, -5, 5, 7, 0, -3, 0, -3, -2, -6,
839 -8, -3, -6, -1, -3, 1, -4, 2, 5, 7, 1, 2, 1, -2, -6, 1, -6, -4, 0, 7, -1, 0, 6, 3, -3,
840 -7, 1, -5, -6, -8, -5, -1, 0, 2, 4, -8, 2, 2, -8, -3, -2, -1, 0, 4, 5, -2, 1, 3, 4, -3,
841 -4, 6, 1, -1, -6, 2, -12, 2, 4, 2,
842 ],
843 [
844 30, -32, -19, 0, -14, 46, -28, -18, 1, 19, -26, -9, 41, -47, 17, -16, 31, 17, 2, 27, 0,
845 15, 13, 25, -14, -2, -19, -29, -18, 19, -3, 13, 16, 48, 1, -13, -24, 3, 7, -11, 75, 18,
846 10, 7, 11, -25, 47, -32, -21, 18, 14, 40, 14, 8, -42, -15, -12, 20, 43, -14, 54, -24,
847 23, 29, -13, 46, -38, -7, -4, -29, -17, 39, 10, -6, 11, 18, -12, -23, -36, 52, 3, 5,
848 29, -11, 35, -34, -9, 40, -7, 26, -15, 67, -67, -2, -40, 4, 1, 38, -25, 11, 42, 36, 36,
849 55, -10, 13, 6, -31, 78, 43, 26, 7, 9, -11, 21, 30, -4, -6, 5, 40, 0, 21, 15, -37, 67,
850 13, 79, 11, 21, -21, 11, -60, -2, -6, -36, 14, 26, -2, 23, -15, -22, -18, -30, 64, 9,
851 10, 22, -6, -57, -13, -44, 7, 6, 8, 6, 25, 7, 21, 24, 51, -47, 9, 41, -12, -17, 26,
852 -24, -3, 20, -20, -39, -2, 11, -13, 27, 23, 65, -81, 22, 12, -12, 1, -4, 37, 38, 5, 31,
853 -30, 32, -4, 34, -16, 15, 28, -36, -2, 35, 45, -27, -3, 39, 16, 6, 4, 26, -13, 45, -38,
854 28, 24, -10, 12, 26, 13, -15, -4, -25, -31, 37, 20, -36, 77, -18, 29, 1, 28, 6, 12,
855 -26, 53, -4, -18, 18, -9, 2, 3, -29, 2, 8, 34, 26, 5, 19, -8, 25, 10, -4, 14, 2, -2,
856 30, -24, 41, 9, -5, -10, 14, -9, 36, 47, 13, 19, 5, 13, -32, -16, 1, 4, 40, 33, 23, -5,
857 0, 25, -15, 28, 28, -28, 4, -6, -18, -10, -14, 46, -46, 37, 49, -7, -2, 21, 33, 6, -29,
858 7, -20, -3, -30, 45, -2, 11, 4, -1, -48, 37, 47, 0, 8, -20, 4, 9, -30, -56, -34, 10,
859 13, 31, -52, 39, -14, 26, -25, -13, -6, 22, 27, 18, -16, 9, 13, 10, 34, -26, 18, 9, 13,
860 7, 46, 14, 24, 35, -25, -2, -5, 22, 8, -7, 2, 22, -1, -1, -11, -8, 25, -13, 40, -37, 5,
861 -24, 53, -37, 2, -31, -18, -1, -6, -10, -19, -37, -20, 15, 47, 32, 14, -6, 67, -25, 3,
862 -7, 14, 21, 28, -14, -18, -2, 13, 8, 13, 16, -14, 85, 12, 19, 34, -11, 5, -30, -48, 5,
863 -12, 41, 3, 56, -8, -36, -11, -6, -16, -5, 5, 27, -14, -22, -24, -9, 22, -16, 36, 31,
864 6, -4, -1, 7, 25, 7, 10, 12, -4, -35, 24, 13, -16, -24, -5, -31, -27, 8, 16, -14, -4,
865 31, 23, 9, -6, -7, -39, 32, -4, 24, -3, 0, -9, 7, -60, -13, 20, 4, -7, 9, 34, -29, 20,
866 -25, 5, 21, 4, 8, -29, -4, -18, 51, -5, -8, -29, -5, -3, -26, 2, -33, 16, -4, 27, -6,
867 -3, -22, -7, -5, 22, -39, -5, -8, -83, -18, -33, 14, 17, 18, 23, 1, -9, 5, -5, 35, 16,
868 -22, 41, 19, -25, -5, -6, -14, 42, 8,
869 ],
870 [
871 -25, -14, 10, 8, 28, 18, 7, 12, 34, -18, -5, 2, 12, 17, 4, -18, -30, -12, -11, -18, 27,
872 39, 42, 53, 55, 16, -56, -33, 9, -15, 20, -3, 6, -35, -8, 12, -2, 28, 25, 30, -38, -6,
873 -34, -3, -14, -2, 21, -27, 32, 40, 53, -15, 18, 6, 19, -20, -33, -4, 22, 4, -5, 7, 60,
874 3, 21, 17, -57, -19, 7, -8, 18, -13, 9, 2, 3, -29, -7, -22, -1, -19, -18, 7, -12, 40,
875 -2, 48, 0, 17, 0, -11, 2, -43, -19, -20, 41, 5, -30, 16, -19, 32, 33, -14, -9, 15, 14,
876 26, -35, -40, -31, 52, 5, 52, -11, -2, -1, 2, -12, -21, 52, 9, -2, -24, -33, -41, 29,
877 -1, 5, 41, 33, -2, -37, 1, -34, -21, 3, 23, 2, 37, -23, -24, 14, -9, 5, -19, 0, 40, 15,
878 -42, -26, -1, 1, 35, -3, 45, 32, 8, 43, -18, -3, -18, 6, -52, 30, -12, -24, 28, 1, -3,
879 8, 44, 49, 13, 33, 18, 36, -31, -37, 32, -19, 31, -13, 27, -7, 23, -43, 47, 27, -9, 45,
880 -9, 24, 50, -6, 15, 44, -29, 2, 59, 2, 30, -4, -24, 5, -26, 14, 29, 36, 38, 66, -16,
881 34, -9, 31, -11, -21, 12, 2, -14, -14, 41, -22, 31, 7, 21, -45, 48, -13, -8, -41, -43,
882 -40, -2, 19, 20, 37, -22, 54, -27, -7, 7, 10, -20, -14, -12, -26, 53, 18, 19, 15, -8,
883 9, 3, 10, 9, -3, -19, 3, -20, 27, 29, 43, 22, -28, -42, -44, -4, -20, -12, 10, 23, 29,
884 -28, -32, 3, 51, 57, 21, 19, 41, -45, 7, 3, 0, -40, 40, 32, 19, 39, 5, -10, 26, 22, 14,
885 -1, 29, 66, -49, 24, 4, 3, -29, -3, -3, 12, -42, -16, 44, 9, -3, -21, 1, -27, 33, -22,
886 -8, 5, 27, 3, -49, 66, -23, 6, -48, 26, -27, 31, 5, 5, -29, 24, 9, 44, 53, -34, -16, 1,
887 69, -3, 27, -10, 10, 5, -9, 11, -9, -16, -39, -8, 20, -13, -31, -26, 23, -3, 15, -1,
888 -7, 32, 27, -52, 14, -18, 4, 9, 1, 20, 11, 42, -4, -11, 19, 19, -28, -9, -38, -36, -6,
889 6, 36, 6, 37, 7, 53, -33, -25, -11, 23, -39, 39, -34, 13, -16, 11, -34, 22, -9, -14,
890 23, 3, 7, 15, -30, 38, -28, -6, 4, 75, 3, 33, 20, -32, -41, -36, 24, -40, 5, 14, -5,
891 -27, -16, 33, 27, 25, 27, 19, -27, -11, -19, -38, -24, -31, -28, 2, -10, 23, 15, 42,
892 56, 2, -11, 24, -12, -14, -10, -26, 2, -47, 26, 13, -4, -20, -12, -12, 40, 21, -33, 13,
893 22, 21, 17, -26, 39, -29, 40, -11, -7, -1, 9, -1, 32, -8, 8, -9, -34, 28, 20, 1, 24,
894 -22, -6, -33, 17, 38, -6, -12, 0, 29, -33, 56, -27, 21, -16, 12, -47, 16, 25, -61, 7,
895 -6, -45, 0, 11, 34, 24, 30, 15, -23, -28, -24, -45, 25, -30,
896 ],
897 ],
898 [
899 [
900 1, -3, 1, 4, 1, 3, -1, 0, 6, -1, 2, 1, -2, 0, -2, 2, 2, 4, -1, 4, -5, 1, -2, 1, -4, 1,
901 -3, 4, -6, -2, -1, 4, -1, 10, -1, -3, 9, -4, 2, 5, 1, 1, -3, 5, 5, -8, 10, 3, 2, 6, 1,
902 8, 7, 2, 6, -1, 1, -1, 7, 3, -2, -4, 5, -1, -1, 0, 3, 0, 3, 13, 0, -1, 7, 5, 6, -5, -1,
903 0, 3, 3, 0, 1, 0, -4, -4, 5, -3, 3, 4, 0, -2, 3, 6, -8, 0, 2, 5, -3, -2, -3, 4, 0, 7,
904 6, 5, -3, -6, -3, 7, -2, -6, 1, 0, 0, -3, 8, 2, -2, -4, -2, -1, 0, 9, -1, 7, 5, 5, 0,
905 1, -3, 3, -3, -8, 1, -2, 7, -4, 3, -3, -6, 0, 0, -2, -5, 4, 1, 0, 4, -2, 2, -2, -3, -1,
906 -3, -1, -5, 4, -2, -6, -4, -2, -1, 1, 0, 5, -3, -2, 2, -1, -1, 0, -2, 0, 6, 2, -5, 1,
907 -6, -1, 3, 2, -1, -4, 11, -4, 4, 6, 1, -3, 2, -1, -4, 2, 1, -4, 8, -6, -1, 3, 2, 6, -1,
908 5, -3, 4, 1, 7, 3, -3, 5, -2, 2, 6, 0, 1, 2, -1, 0, -6, -1, 0, 4, -10, 2, 2, -4, -4, 6,
909 -5, 7, 0, 3, 2, 8, -2, 3, -3, 0, -1, 2, -1, -6, -9, 2, -2, 0, 6, -1, 1, -3, 1, -2, -3,
910 -1, 0, 5, 2, 4, -3, -2, 5, 8, 2, 2, -5, -4, 6, -3, 4, 1, 2, -3, 1, -2, 0, 2, -1, 2, 3,
911 1, 3, -1, -1, -3, 1, -3, 2, 6, -4, -1, -1, 3, -3, 2, -7, -9, -2, -11, 2, 3, -3, -6, 7,
912 1, -3, -3, -3, 5, 1, 2, -1, 0, 3, 1, -1, 2, 5, 1, 2, 1, -2, 5, -1, 0, -5, -2, 0, -4, 1,
913 4, 4, -2, 3, -2, 0, -3, -3, 0, 0, 1, 8, 1, -4, -10, 0, -3, -8, -1, 1, -2, -1, -4, -3,
914 4, -6, 1, 0, 3, 3, -1, -5, 9, -7, -2, -3, 4, 0, 1, 3, -4, -1, -5, 6, -9, -7, 0, 8, 1,
915 5, -5, 8, -3, 1, -3, 1, -2, 4, -7, -1, 1, -8, 3, 0, 5, 1, -8, 0, 1, -5, 0, 5, -1, -5,
916 6, 3, -7, 3, -6, 0, 5, 0, 0, 1, 4, 6, 1, 4, -9, 3, 0, -6, -4, 0, -1, 4, 4, -2, -2, -1,
917 -3, 7, 6, -6, -4, 10, -3, -2, 3, 4, 1, -3, -4, 4, -1, 3, 10, 13, 4, 9, -3, 3, 2, 7, 8,
918 0, -2, 3, -5, -6, -1, 0, 2, -6, 6, 5, 3, -2, -4, -3, 4, -2, 1, 7, -6, -4, 2, 2, 0, 0,
919 -3, 5, 1, -5, -4, -5, -1, -5, 0, 0, -7, 3, 1, 1, -10, -6, -10, -1, -1, -7, -2, -6, 2,
920 4, 0, -7, 1, -3, -6, 2, 0, 7, -1,
921 ],
922 [
923 1, 5, 4, 2, 1, 9, -6, 3, -4, 4, 5, 6, -5, 0, 7, 0, -1, 5, 9, 1, -8, -5, -8, -1, 0, 5,
924 -4, -2, -1, 4, -2, 2, 2, 8, 4, -4, 11, 6, 0, 2, -3, 0, -2, -8, 5, -7, -4, -5, -3, -1,
925 -3, 5, 1, -1, -1, -2, 9, -9, 2, -4, 6, -3, -5, 7, 4, -2, 4, -4, -1, -9, 5, -1, -2, -2,
926 2, -7, -2, 3, 4, 1, 2, 7, 1, -3, -4, -1, 2, -4, 1, -5, 5, 9, 3, 1, 0, -7, 3, -1, 6, -2,
927 -1, 4, -6, -3, -2, -7, 7, 7, -1, 2, 2, -3, 1, 4, -1, 4, -3, -1, 6, -3, 0, -2, -4, -1,
928 2, 10, 6, -9, -3, 4, -5, -3, -10, 3, 1, -1, 0, 2, 3, -1, 2, -2, -2, -9, 3, 0, -1, -1,
929 -3, 4, -4, 3, 4, 1, -6, 1, 4, -4, -3, 0, 0, 0, -3, 1, 8, 6, -3, -1, 0, -1, -11, 4, 1,
930 0, -3, -1, -3, -2, -6, -4, 0, 1, 5, 2, 4, -4, 0, 8, 3, -2, 5, -11, -6, -8, 0, 0, -1,
931 -2, 0, 3, 7, -6, 5, 6, -1, 3, 4, -6, -3, 2, -4, 9, 4, 2, -4, 2, -3, -1, 0, -4, 3, -2,
932 -5, 2, 1, -6, -4, -1, -2, -1, 0, -8, -5, -1, 0, 0, 1, 2, 2, -6, 0, -1, -11, 0, 7, 3, 0,
933 1, -2, -4, -5, -4, 4, -3, 2, 3, 4, -2, 0, -3, 1, -5, 1, -5, -2, -1, -6, 1, 2, -4, 6,
934 -4, -3, -4, 2, 1, -2, 2, -4, 0, -3, 2, 0, 1, 1, 2, 7, -1, 3, -5, -2, -6, -1, 0, -3, 1,
935 -3, 3, -1, 2, 2, 5, -2, -5, 0, -3, 2, 1, 2, -2, -4, 0, 0, -3, 1, -8, 1, 1, 5, 1, 5, 5,
936 -6, 1, 0, -3, 5, 1, -5, -2, 4, 1, -4, 6, -6, -2, -4, 3, 3, 0, 5, -3, 1, 7, -1, 3, 1,
937 -9, 2, 3, 0, 1, -3, 2, 7, -2, -2, 6, 8, 4, 2, -5, 1, 6, 2, 2, 7, 1, -3, 2, -4, -2, 2,
938 5, 3, -3, -1, 2, 6, 0, 0, -5, -4, -2, -1, 5, -12, -3, -3, -2, -2, 1, 0, 2, -6, 3, -4,
939 0, -3, 4, -9, -1, -7, -4, 2, -3, 7, 4, -5, -1, 7, -3, -3, 5, 5, -1, 10, -2, 3, 5, 0, 4,
940 3, 1, -3, -1, 0, -6, 0, 3, 1, -9, 4, 5, -1, -4, 7, 0, 7, -6, -5, -1, -3, 4, 0, -5, 4,
941 1, -11, -3, -3, 4, 4, 1, 1, 3, -6, -4, 2, 3, 2, 9, 1, -1, -2, 2, 5, 5, -1, 1, 3, -1, 3,
942 2, 4, 1, 3, 4, -1, 2, 0, -1, 1, 0, -3, 3, 6, -3, 2, 2, 1, -2, -7, 1, -1, -4, 2, 0, 2,
943 3, 0, -2, -2, -4, -3, 6, -2, 2, -4, 3, 0, 2,
944 ],
945 [
946 37, 14, 1, -10, 2, -6, 18, -37, 3, 13, -29, 7, 36, -39, -2, 24, 18, -28, 9, -15, 27,
947 -20, -30, 34, -43, -30, -6, 57, 3, -45, 0, 41, 26, -14, -12, 14, 29, 16, -8, 15, 3,
948 -38, 19, -59, -9, 3, -10, 35, 9, 25, 31, 16, -20, -6, -11, -28, 4, 7, 12, 15, -32, 18,
949 -21, -25, -28, -29, 5, -43, 12, 40, 44, -19, -19, -58, 4, 18, -10, 11, 33, -37, 7, -6,
950 2, 63, -36, 21, 48, -5, 5, -36, 25, -21, -21, 14, 23, 24, -2, 15, -10, 7, -6, -2, 24,
951 1, 6, 1, 48, -24, 4, 8, -21, -10, -6, 24, 10, 2, 13, 23, -2, 3, -44, -10, 11, 29, 45,
952 -4, 17, 1, 8, 0, -41, -22, -12, -2, 16, 11, 23, -2, -25, -12, 11, -11, 27, 4, -42, 50,
953 -7, 8, -7, 45, -5, -44, 25, 18, 2, -3, -4, 27, -10, 13, 29, -7, 17, 16, -23, 3, -21,
954 36, 5, -2, -48, -49, -20, -3, 1, 11, -11, -6, -17, 50, -22, 37, -25, 11, -44, -59, -21,
955 -9, 34, -17, 1, 28, -7, -32, 3, 13, -59, -61, -10, -44, -50, -14, -27, 10, -42, 9, -39,
956 11, -50, -34, 5, -20, 14, 14, 23, -36, -48, 2, 27, -32, -27, -19, 14, -8, 28, 19, -12,
957 14, -1, 24, -25, -25, -36, 24, 2, -10, 4, -16, -14, 44, 15, -23, -25, -43, 41, -15, 40,
958 46, -7, 15, -16, 61, 11, 7, -33, 4, 11, -51, -13, 16, 6, 0, -24, -1, 6, -5, 7, 31, -29,
959 0, 28, 70, -20, -31, -19, 2, -22, -41, -13, -25, -6, -31, 11, 17, -3, -10, -13, -18,
960 -53, 39, -11, -28, 9, 2, -59, -16, -52, 24, -22, 10, 40, 48, -2, -19, -14, 11, 14, -28,
961 35, 27, 12, 16, 19, 24, 48, -3, 9, 31, -45, -23, -2, 44, 6, 45, 23, 33, 24, 36, 10,
962 -32, 5, -11, -29, -13, 16, 30, 37, -8, -82, 14, 10, -7, 5, 80, -3, -19, 2, 2, 11, -26,
963 13, 3, 20, -7, 10, -4, 45, -40, -5, 16, -13, 1, 17, -23, 19, -83, 8, 2, 16, -21, 28,
964 -6, 19, 25, 3, -7, 9, 67, 15, -2, 19, 43, -17, -15, -20, 21, -23, -4, -56, -14, -10,
965 -14, 34, 20, 11, -40, -49, -33, 13, 33, 3, -46, -5, -13, -12, 18, 10, -37, 20, 11, -33,
966 0, 20, -2, -16, -29, -2, -76, -19, -46, -4, -25, 13, -20, -13, 11, -9, 21, -42, -9, 16,
967 28, 7, 0, -27, -27, -11, -30, -8, 5, 9, -8, 7, 34, 10, 17, 5, 0, 11, -14, -19, -20, 24,
968 -1, -5, -74, 32, 23, 21, -34, -10, 2, -20, -10, 21, -34, 0, -22, 68, 12, -1, -1, -15,
969 -29, -25, 28, -17, 42, 8, 14, 21, 23, -48, 9, 14, -17, 0, 42, 44, -15, -49, 15, 13,
970 -38, -40, 25, -7, -14, -7, 28, 41, -25, 7, 17, 8, -6, -2, 36, -11, -12, 3, 44,
971 ],
972 [
973 -28, -47, -5, 4, 11, 24, -3, -22, -50, -26, 20, 44, 22, 14, 12, 2, -43, -22, -35, 28,
974 -14, -29, -6, 36, 22, 21, -22, -28, 23, 4, 37, -6, 10, -48, 24, -6, 4, -13, 8, 49, -3,
975 20, 44, -19, -19, -12, -5, -14, -19, 52, 2, 23, -24, -29, -13, 48, 45, 42, 48, 3, 30,
976 6, -56, -48, -35, -28, -19, -26, 17, 43, -4, 19, -24, -11, -41, 46, 32, -1, 7, 11, -43,
977 -51, 2, 21, -30, -4, 16, 13, 4, -40, -10, 12, 12, -15, 20, 26, -43, -4, -25, 16, -23,
978 -29, 16, -4, -46, 32, 15, 28, 8, -47, -3, -17, -41, 29, 18, 4, -19, 11, -4, -39, 19,
979 26, -25, -32, 16, 5, -19, -31, -58, 2, 16, 22, 73, 22, 7, -8, -23, -10, -23, 10, -20,
980 31, -26, 9, 31, -8, 16, 20, 38, -27, 26, -2, 30, -21, -32, -19, 33, 8, 61, -11, 9, -1,
981 -23, -15, -3, 13, 6, 13, -39, -33, -41, 3, -35, 4, 40, 13, 32, -21, 15, 57, 55, -51,
982 -49, -2, -49, -24, -11, 18, 21, 29, 2, 3, -21, -36, -12, 36, -13, 7, -6, -32, 5, -23,
983 -1, 12, 36, 2, -14, -36, -1, 13, 22, -4, -18, 7, 6, -8, -1, 17, 23, -21, 32, -25, -40,
984 -84, -26, -16, -33, -7, -16, 34, 12, -6, 49, -10, 2, -6, 8, 13, -26, 28, -49, 16, -21,
985 -36, 45, -23, -11, 28, 13, 12, -16, -26, 0, 54, 14, 22, 18, -7, -30, -22, 5, 36, 5, 15,
986 22, -26, 11, -7, 41, 23, -18, 16, -17, -34, -17, 23, 28, 41, 31, 24, 55, -29, -58, -10,
987 41, 35, -46, 6, 56, -22, -5, 31, 15, -7, -6, -14, -29, -17, 34, 37, -18, -9, -39, 3,
988 -6, -18, 25, -6, 3, 21, 3, 42, -1, 15, -26, -30, -50, -25, -4, 39, -10, 0, 53, -15,
989 -51, 35, 10, 24, -17, -44, -18, 6, -35, 3, 9, 17, 4, -9, 35, -59, -9, 4, 13, 0, 32,
990 -27, 36, -46, -32, -21, 15, -46, 42, 17, 39, -14, 25, 47, 64, -27, 19, -5, -56, -5, 56,
991 44, 8, 6, -21, 35, -37, -6, 32, 1, 12, 11, 16, 17, 33, -87, 20, 43, -19, 4, 35, -3,
992 -34, -38, 5, -15, 14, -28, -30, 15, 19, 0, -5, -6, -38, 32, 8, -7, 15, 22, 9, -23, -16,
993 45, 63, -37, -6, 52, 14, 7, -11, -9, 5, -7, -11, 51, 7, -16, -1, 48, -53, 5, -28, -6,
994 8, -13, 40, 25, -20, 5, -2, -31, -29, -27, 18, -35, -7, -29, 11, -7, -30, -18, 41, -2,
995 -10, 21, -12, -67, 12, -9, 17, -17, 10, 69, -20, 1, 21, -4, 10, -35, 38, 16, 42, 25, 9,
996 -24, 36, -39, -26, 56, -23, 22, 2, 12, -11, -31, 26, 0, -18, 17, -12, 45, 15, 59, -37,
997 -33, -20, 5, 1, -12, 9, -49, -39, -41, -45, -5, 22, -5, 19, -14, 9, -27, -2, -22, -20,
998 -40, -54, 21,
999 ],
1000 ],
1001 [
1002 [
1003 3, 5, 0, -2, -1, 7, 4, 2, 0, -3, -4, 3, -2, -4, 6, -1, -5, 9, 1, -6, 4, 0, 3, 0, -4,
1004 -5, -1, 1, -6, 3, -6, 5, -4, -3, -2, 1, -7, 1, 3, -6, -5, 6, -3, 0, 1, -3, 5, 3, 1, -1,
1005 -4, -5, -2, -4, -5, 3, 2, 2, 2, 0, 1, 0, 5, -1, -2, 10, -4, -3, 2, 2, 3, 5, -1, 2, -5,
1006 0, 1, 0, -3, -4, 4, 6, -1, 1, -10, 0, 7, 2, 4, 4, 2, 9, -4, -2, 5, -7, 5, -1, -4, -8,
1007 3, 1, -3, -3, -5, 2, 3, -8, 6, 1, -4, -1, 0, -1, 4, -3, -3, 4, 1, -5, -2, 1, 3, 5, -4,
1008 -3, -2, -2, -3, 1, 2, -2, -4, 2, 4, -2, -1, 5, -4, 9, -6, 4, 7, 2, 5, 6, -4, -1, 3, -6,
1009 -1, -5, -4, -7, 0, 0, -1, -4, 5, 1, -3, 4, 4, 0, 1, -2, 2, 6, 0, 1, 9, 0, 0, -5, -7, 1,
1010 -4, -1, 1, -4, 1, 2, 0, -3, 5, -6, 1, -1, 2, 0, 0, 5, 8, -2, -1, -5, -1, 3, -6, -1, 3,
1011 1, 4, 1, -1, -5, 3, -4, 2, 0, 9, 1, 2, -3, 5, -2, 6, -3, -4, 1, -6, 1, 0, 4, -4, 4, -5,
1012 13, 6, -6, 2, 1, 1, 3, 5, 7, 5, 1, -3, 0, -6, -1, -5, 5, 3, 5, -2, 6, -2, 9, 3, -2, -5,
1013 -4, -6, 6, 0, -5, -12, -1, 0, -3, -4, 3, -3, 4, -1, -2, -2, -2, -4, 4, -1, -7, 4, -1,
1014 -3, -4, 3, 4, 11, -10, -4, 2, 3, 3, 1, 2, 7, 0, -4, 2, -8, -2, -1, -7, 2, 4, -1, -4, 5,
1015 1, 6, 1, -1, 7, 1, 7, 3, 0, 3, 7, 7, 0, 0, -1, -1, 1, -4, -4, 6, 4, 3, -1, -1, 3, -3,
1016 -2, 4, 5, -3, -1, -2, 0, -3, -3, 2, 2, 7, 0, 5, 6, -5, 2, -3, 1, 0, 1, -1, -5, 8, 6, 4,
1017 3, -2, 1, -1, 0, 0, -1, -6, 1, -4, 2, 0, -2, -6, 6, 2, -3, 6, 6, 4, -1, 1, 1, -5, 4,
1018 -4, -3, -3, -5, 0, -7, -6, -3, -1, -4, 2, 0, 4, 0, 1, 6, 1, 8, 1, 4, 1, 3, 3, -1, -1,
1019 -2, 2, -3, 0, -3, 0, 0, -5, -6, -1, 1, -2, 4, 3, 5, -4, 2, 3, -2, -3, -4, -1, -3, 0, 5,
1020 1, -9, 1, 8, 1, -7, 2, -5, -3, 1, 3, -1, 1, -4, 4, 1, -8, -5, -1, 6, 2, 1, 5, -2, 4,
1021 -5, -4, 5, 2, 0, -1, 5, 2, 5, 4, 0, -4, 0, 9, -2, -6, -8, 2, -3, 5, -3, 7, -15, 0, 0,
1022 -8, -6, -5, 6, 4, -6, 2, 5, -5, 0, 4, 5, -2, 2, -5, 2, -6, -6, 0, 3, 4, 4, 6, -4, -1,
1023 5, 0, -5, -11, -2, -1, -4, 1, 4,
1024 ],
1025 [
1026 7, -1, -4, 0, 2, -1, 1, -6, -5, 8, 0, 2, 2, -3, 2, 6, -1, -1, -4, 2, -2, -2, -6, -1,
1027 -1, -7, 3, -6, 0, -3, -1, 5, -2, 6, 2, 2, -2, -6, -5, 1, 4, -9, 1, 1, 0, 2, 6, 3, -1,
1028 -7, 6, -3, -2, -5, -7, -6, -5, -4, 9, -2, -2, 9, -9, 5, 3, 4, -3, -5, -5, 4, 0, 8, 0,
1029 -1, 3, 5, -10, 2, 4, -3, -4, 2, -3, -4, 0, 1, -7, -3, 3, 4, -2, -2, 4, -2, 5, 3, -2,
1030 -5, -2, -3, -2, 4, 1, -3, 6, 0, 1, -2, 11, -5, -3, 4, 1, 3, -3, -7, -7, 2, 1, 3, -2,
1031 -2, 0, 3, 8, 3, 10, 0, -1, -6, -12, 2, 5, 2, -6, 3, -3, 0, -1, 3, 4, -1, -1, -3, -8, 2,
1032 -5, 3, 3, -5, 2, -9, -3, 5, 0, 6, -4, 5, -2, -2, 3, 2, 4, 10, -3, 1, 0, 7, 2, 1, 2, -2,
1033 -6, 1, -2, 1, 2, -2, 6, -7, 1, 1, 4, 2, 2, 7, 7, 5, -5, -1, 4, -3, -2, -2, -2, -1, 2,
1034 -6, 11, 4, 1, 2, 5, -2, 1, 3, -2, -5, 1, 5, 4, 1, -2, -1, -2, 3, 0, 3, 0, 7, -7, 5, 2,
1035 0, 8, -2, -7, 8, 2, -3, -2, -1, 4, 5, 6, -5, -2, 2, 0, 4, 0, 7, 4, -7, 1, 4, 0, 3, 2,
1036 -1, -3, -4, 3, -1, -1, 3, 3, -2, -3, 9, -3, -1, 3, -6, 1, 0, 0, -1, -7, -6, 0, -7, 0,
1037 -1, 8, -3, 0, 3, 0, -5, 1, 4, -2, 5, -3, 2, 0, 5, -2, -8, -2, 8, 0, -1, 5, -1, 1, -3,
1038 -3, -1, -1, -4, 1, 5, 3, 0, 6, 4, 2, 6, 0, -2, -3, 1, -1, 1, 5, -4, -1, 2, -7, 0, 0, 0,
1039 4, 6, 2, -3, -1, 7, 5, 2, 2, 4, 3, -4, -1, 2, 2, 2, 4, 2, -2, 0, -6, 3, -2, 1, 4, 6,
1040 -4, -3, 1, -2, 2, 5, -4, 4, 6, 13, 1, 0, -1, -3, 2, 4, 2, 2, 4, -4, 1, 0, -1, -4, 3, 5,
1041 1, 7, -5, 0, -7, -2, -9, 0, -2, 0, -2, 0, 4, -2, 2, 4, 2, -1, -8, 4, 0, -9, -2, -8, -1,
1042 -4, 1, 0, 1, 1, 2, -3, 3, 2, 0, 2, -9, -1, 0, 6, -2, 5, -8, 3, 4, -1, 8, -2, 5, -2, 6,
1043 1, 1, 9, 0, 1, 4, -2, -2, 2, 0, 5, 2, -1, -2, 0, -5, -2, 4, -2, 6, -1, -2, 2, 3, -3, 7,
1044 -2, -1, -3, -2, -2, -4, -2, 0, -4, 1, 1, 3, -5, -1, -2, -3, 4, 3, 3, -1, 2, -2, 3, 1,
1045 -3, -1, -5, -1, 4, -4, 0, 0, 4, -5, 0, -7, -2, 3, 4, 7, 4, 4, 0, -4, 0, -6, 0, 2, 5,
1046 -3, -5, 1, 0, -5, -1, 0, -4, 1, -1,
1047 ],
1048 [
1049 -26, -49, -55, 0, 5, 50, -10, -3, -16, 36, 0, -28, -26, -4, 1, -46, 31, -22, 3, -27,
1050 -9, 39, -46, 8, -10, -10, -35, 27, 46, 27, -9, -5, 31, 40, 21, -39, -36, -11, -6, 14,
1051 -38, 9, -37, -7, -9, 40, 10, -29, 5, 10, -25, 20, 1, -39, -14, 30, -12, 17, -13, -15,
1052 81, -14, -60, 27, -1, -35, -7, -29, 27, 6, -8, -11, 2, -8, -2, -5, -42, -25, 24, -13,
1053 13, -9, -5, -42, -18, 14, 39, -28, -23, 21, 20, -6, -55, 40, -31, -1, 10, 62, 18, -13,
1054 21, 58, 7, -17, -38, 1, -41, 32, -9, -33, -15, -35, 66, 5, -52, 13, 2, -29, 27, 5, -7,
1055 52, 0, -14, 43, 46, 19, 49, -1, 17, -14, -31, 10, -25, -15, 32, 4, -29, -34, 6, -8,
1056 -37, -42, 3, -41, -46, 0, -43, 8, -20, 2, -21, 3, 45, 5, -11, -1, 4, 22, 11, -9, -27,
1057 -19, 16, 32, -8, -38, 11, 49, 5, 46, -28, -44, -25, -24, 24, -14, 10, -2, 43, -7, -5,
1058 26, -6, 0, -36, 18, 23, 0, 3, 42, 26, 35, -16, -1, -16, -12, -33, -56, 12, 16, 62, -13,
1059 46, 8, -15, 15, 12, 28, 61, 45, -12, 17, -5, 9, -5, -2, 2, 69, -20, 39, -5, -29, 11,
1060 -40, -44, 20, -12, -26, -55, -29, 30, 11, 5, 43, 20, -12, -36, 2, -22, -28, -32, -3,
1061 10, 16, -34, -57, -27, -22, -38, 25, -30, -12, -50, 1, -21, 39, -13, -10, 22, 13, 1, 6,
1062 -6, -5, 23, 19, -12, -41, 17, 35, 34, -1, -1, 30, -2, 14, 17, -2, -3, -40, 5, -13, -9,
1063 -12, -8, -47, -15, 0, 3, -7, 37, -7, 5, 8, -30, 8, 21, 16, 14, -3, -14, -3, 45, -27, 2,
1064 -13, 9, -12, 45, 10, 19, -36, 6, 38, 32, -3, -58, -17, -2, 16, -7, 40, 4, 17, 16, 1,
1065 -2, 17, -45, 35, 18, -15, -10, -10, 13, 7, 0, 3, 16, 27, -18, 1, 16, 13, -16, 3, -11,
1066 24, -10, 68, 12, -32, 4, 10, 36, 5, 35, -5, -1, -18, -22, 14, 6, 13, -8, 33, 18, -24,
1067 -61, -30, 42, 36, -3, -37, 49, -53, 38, 60, -13, 12, 8, -14, 35, 11, -45, 19, -46, -16,
1068 -28, -1, -26, -60, -32, -21, 52, -73, -18, 31, -10, -2, 22, -20, 38, -14, 3, 19, 30,
1069 21, -7, -39, -21, 23, -14, -16, 16, -6, 12, -2, 30, 31, -29, -33, 30, 13, 19, -12, 30,
1070 -3, 58, 24, -30, 3, -35, 39, -6, -2, -34, 34, 27, 6, 93, 4, -15, -15, -7, 15, -1, 2,
1071 -16, 30, -2, -42, -22, 14, -8, -9, 18, -14, 40, -16, -42, -14, -11, -36, -25, 1, -9,
1072 -46, 4, -6, -29, -36, 8, 23, -14, -72, -34, -10, 5, -17, 6, 16, -2, 24, -34, 7, 16,
1073 -18, 13, -1, 14, -14, -1, 4, -40, -40, -4, -35, -22, -6, -18, 11, 6, -44, 20, -48, 27,
1074 34, 26, -37, -67,
1075 ],
1076 [
1077 23, 62, 37, 50, 0, -28, -5, -15, 16, -34, 19, -42, -43, 8, -14, -29, 60, 58, 4, -10,
1078 -33, -9, -15, 26, 2, -2, -43, 20, -18, -9, -6, 21, -14, -10, 28, -33, -12, 38, 10, -75,
1079 5, -10, -4, 19, -35, 30, 48, -42, -20, -38, 3, -3, -19, -4, -29, -41, 12, -18, -22, -4,
1080 -12, 5, 32, -8, 35, -26, 21, -47, 12, 1, -28, 28, -63, -63, 27, 20, -8, 53, 17, -5,
1081 -19, 5, -25, 8, -4, -6, 2, -36, 37, 14, -50, 29, 25, 0, -2, 34, -26, 4, 35, -27, -31,
1082 13, -29, 3, -24, -36, 28, -20, 38, 30, -35, -10, -25, -19, -35, -17, 11, 2, 24, -64,
1083 15, 45, -20, -15, -3, 53, -30, 48, -21, -6, -9, -14, 10, -29, -7, 26, -6, -18, 66, 2,
1084 4, -37, -62, -22, -15, 24, 3, 20, -15, -4, 45, -19, -7, 38, -12, -12, -19, 0, 16, -32,
1085 -6, -56, -14, 8, -16, 28, 2, 38, -29, 5, 2, -6, 7, 1, -31, 7, 14, -1, 5, 45, -15, 17,
1086 1, -18, 5, 3, -14, -46, 45, -6, 53, -31, 3, 15, -28, 65, 19, 7, -15, 35, 24, 21, 2, 19,
1087 -3, 2, 7, -23, 17, 51, 45, -58, 27, 35, -11, -3, -57, -6, -10, 24, 25, -8, 4, -19, -16,
1088 32, 6, 40, 3, -27, 33, -6, -5, 4, 31, 1, -33, 1, 10, 6, 30, -5, 23, -36, 35, 19, 5, 5,
1089 0, 1, -5, -3, -2, -16, 42, -30, -4, -8, 27, 10, -24, -23, -37, -19, 58, -43, -59, 2,
1090 -19, -12, -12, -50, -20, 1, -19, -32, -12, -4, -62, -9, -6, 27, -5, 3, 5, -19, 40, -2,
1091 6, -24, 15, -42, -13, 33, 5, -29, 12, 60, -34, 24, -58, 21, 1, -14, -9, -16, -28, -18,
1092 24, -34, -11, 16, 27, -21, 48, 4, 18, 18, -2, 31, 8, -14, 32, -20, -33, 2, 4, 1, 43, 4,
1093 14, -3, 15, 23, 14, -40, -16, 3, -21, 30, 5, -28, 12, -23, -21, -21, 9, 10, 28, 10,
1094 -68, 49, -10, 16, -26, 19, -1, -3, -29, 2, 17, 23, 16, -44, -31, -23, 23, -17, 5, -9,
1095 -28, 33, -9, -19, 17, 2, 12, -8, 6, -10, 32, 6, -16, -4, 45, -4, 18, -48, -22, -15, 9,
1096 32, -36, 23, -11, 33, -1, -7, -38, -6, 11, -15, 22, 59, 14, -41, -34, -4, 5, 13, 53,
1097 -21, 43, 36, 17, 14, -5, 53, -11, 2, -33, 33, -27, 15, -29, -13, 17, 12, 18, 2, 26,
1098 -14, 8, -23, -4, 15, 8, -15, 10, -23, 30, 11, -6, -23, -6, 22, 7, -12, 21, -9, -24, -7,
1099 28, 39, -18, 13, 2, -32, 19, -10, 36, -13, 32, 4, -37, -36, -4, -53, 9, -25, -1, 6, 49,
1100 -31, -72, -34, -36, 38, 27, -16, -24, -41, -4, -31, 6, 1, -32, 48, 4, -40, -31, 8, 32,
1101 16, -42, 9, -26, -10, -32, -25, -6, -7, 2, 29, 12, -35, -36, -34, -17, 8, 24, -45,
1102 ],
1103 ],
1104 [
1105 [
1106 5, 0, 1, -6, -1, -1, -3, -4, 2, -2, 2, -3, -4, -6, 2, 2, -1, -1, -3, -5, 3, -3, 5, 2,
1107 1, 0, -10, 2, 1, -2, -1, 6, 0, -4, 5, -2, 0, 8, 1, -4, -1, 4, 5, 3, -9, 5, -3, 8, 6,
1108 -3, -5, 2, 5, -6, -4, 2, 0, 0, -1, -6, 2, -5, 3, -1, 2, -2, 6, -2, -6, 1, 3, 1, 4, 4,
1109 0, 5, 4, 1, 8, -1, -7, -6, -4, 1, 2, 8, -2, -7, 2, -1, -6, 0, 0, -1, -3, 7, 1, -3, -3,
1110 9, 0, -6, -6, 2, -5, 2, -2, -5, 8, 6, -4, 2, -1, -4, 0, -3, -4, 3, 8, -3, 1, -1, -5, 0,
1111 2, -1, -3, 0, -2, 1, 6, 1, 3, 3, -2, -9, 1, 1, -5, 0, 1, 5, -6, -1, 0, -6, -2, -3, -3,
1112 1, -11, 7, 0, 3, 1, -3, -6, -5, 2, 5, 0, -1, 3, -5, -5, 2, 1, 3, -2, 0, -1, 0, -2, 2,
1113 5, -5, 7, -2, 2, -3, -2, -2, 0, -9, 2, 1, -1, 1, 3, 1, 1, -3, 2, -6, -2, -1, 4, 2, -5,
1114 2, 6, 2, -4, 0, 1, -1, 0, -5, 0, -6, 0, -3, 0, -1, 5, 8, 4, 1, 2, 3, 3, 8, 2, -8, 2, 0,
1115 1, 4, 3, 2, -2, -7, 3, -3, 4, -2, 4, -4, 4, -4, -2, 1, 2, -2, -10, 1, -1, -8, -2, -2,
1116 -2, -2, -3, 0, 1, -5, 3, 7, -2, -9, 1, -2, 1, -4, -2, 3, -4, 2, 0, 3, 0, -4, 2, -1, -6,
1117 -4, 3, 8, 10, 0, -3, -8, 3, 1, -2, -4, 1, -5, 0, 10, 3, -3, -3, -9, -2, 1, 2, 1, -5, 2,
1118 -9, -8, -5, 4, -1, -1, -1, 2, 0, 0, -6, -3, 1, -1, 11, -3, -7, 0, -2, 4, 8, 0, -5, 3,
1119 -3, 0, 4, 2, 2, 2, -4, -1, -3, -2, 2, 4, -8, 8, 4, -2, 1, 0, 3, 7, 6, -2, -2, -1, -1,
1120 -5, 7, 2, 3, -1, -1, -1, -7, 1, -2, 6, 5, -4, 0, -4, 3, 6, 0, -2, 1, -6, 5, -3, 3, 4,
1121 1, 3, 1, -7, 5, -3, 2, -7, 0, 1, -4, -1, -2, -2, -10, 5, -2, 1, 8, -1, -2, -2, 6, 8, 4,
1122 4, 9, 3, 0, 2, 4, -2, -7, 7, -1, 4, -2, 2, 1, -2, -2, 1, -2, -9, 3, -4, 6, -2, -1, 1,
1123 0, 1, -10, -2, 4, -2, 1, 2, -4, -2, 2, 4, 4, 7, -2, -4, 3, 2, 0, 2, -4, 1, 2, 5, 0, 2,
1124 3, -12, 2, -4, -1, 4, 0, 8, -1, -3, 5, -11, -4, 2, 3, 3, 1, -8, -3, 0, 0, -1, -2, 3, 6,
1125 -7, 3, -1, -4, -4, -9, 5, -4, 7, 5, -1, 3, -4, 2, -5, -1, 1, 2, 2, -5, -1, -4, -3, 4,
1126 -2, 1, 2, -2, -3, -6, -2, 2, 2, 1, -1, 5, -1,
1127 ],
1128 [
1129 1, 3, -2, -1, 5, 4, 3, -3, -5, -4, -1, -3, -2, -2, -1, -4, 2, 4, -8, 2, 4, 5, -7, 3,
1130 -1, -1, -1, 8, 0, -6, 1, -3, 2, -8, -1, -2, -1, 2, -1, 4, 5, 1, -3, 4, 8, -4, 2, 5, 1,
1131 -4, -9, -3, -4, 1, -4, 1, 0, -1, -6, 0, -4, 5, -4, 2, -7, 2, 2, 0, 5, -2, -2, -1, -3,
1132 -5, 6, -1, 4, -3, -3, -2, -1, -9, 4, 2, 2, 8, 4, -3, 3, 0, 4, 3, 0, -3, -1, -6, -7, -9,
1133 3, 1, -1, 0, 0, 0, -4, -2, 10, -3, -6, -4, -4, -7, 0, 0, -5, 7, -4, 6, 2, -9, 0, 4, 3,
1134 -4, 1, 1, 5, 3, 6, 0, -5, -7, -3, -4, -1, 6, -4, 0, -3, 2, -8, 1, 1, 0, 3, 5, 1, -1, 2,
1135 0, 1, -5, 0, -3, 3, 3, 4, -2, -5, -2, 1, -1, -9, -6, 10, 0, 0, 4, -2, 6, 2, 4, 0, 1, 0,
1136 -5, -4, -4, 0, 2, 4, 2, -2, -6, 3, -3, -1, 1, 3, -7, -1, -1, -2, 1, -2, 8, -2, 2, 0, 1,
1137 4, 7, 0, 2, 0, 4, 3, 1, -4, -8, 0, 12, 2, 13, 4, -3, -2, 5, -6, 0, -5, 10, 1, -4, -3,
1138 0, -3, 0, 0, 4, -3, 3, 2, -1, 3, -3, -3, 3, 3, 0, 0, -5, 2, -2, 3, 2, 3, -3, 11, 2, 0,
1139 5, 1, 0, -2, 3, 0, 0, -4, -6, 6, -4, 11, 4, -2, 0, -2, 0, 6, -7, -3, -8, -8, 1, 0, 5,
1140 1, 2, -1, -2, 6, -1, 3, 2, 6, -1, 5, -2, 9, 10, -5, -5, -4, 3, 7, 1, 1, 0, 3, 0, 2, 1,
1141 2, -11, -3, -2, 1, -1, 0, 4, -2, 4, 4, -4, -3, 4, 2, 2, 0, -5, -3, 3, -3, 0, 5, 3, -1,
1142 1, 0, 2, 4, 5, 1, -2, -2, 0, -1, 1, -2, -5, -5, -1, 2, -4, -2, -2, -6, -6, -5, 0, 4,
1143 -3, 3, 2, -4, 0, 2, -5, 0, -2, -2, 2, -2, 6, -5, -1, 2, 0, -1, -7, -2, 1, -2, 1, 0, 6,
1144 0, -4, 1, -8, 2, 2, -6, -3, -3, -6, 4, 1, -5, 3, -2, -3, 0, -1, 0, -1, 1, -1, 0, -4,
1145 -3, 4, 1, -2, 3, -1, 4, 2, -4, 9, -2, 1, 2, -3, -2, 3, 4, 5, -3, -7, 5, 0, -2, 12, 4,
1146 4, -8, 4, 8, 3, -6, -3, 0, -6, 0, -3, 1, 2, 2, -6, -1, 5, -1, -1, 3, -1, 3, 1, 1, -4,
1147 -4, 3, 0, -8, 6, 7, -3, 2, 2, -1, -2, -2, 7, -1, 4, -3, -1, -5, 4, -2, -7, -5, -4, 2,
1148 -2, -3, -3, 6, 9, 5, 2, -3, -6, -2, 2, -1, -6, 1, -2, -1, -1, -4, 7, 0, -1, -3, -7, -4,
1149 -3, 5, -4, -5, 3, 7, -2, 7, 5, 2, 5, -7, -2, 0,
1150 ],
1151 [
1152 -15, 27, 0, 18, -32, 60, -11, -31, -20, -22, -2, -26, -50, 15, -15, 0, 23, -46, 15,
1153 -12, 53, 15, 9, 0, -40, 15, -7, 25, -12, -60, 28, -23, -28, 18, 31, 16, -20, -37, -6,
1154 30, 33, -17, -32, 29, 14, 34, 43, -24, -4, -15, 5, 35, -14, -30, 13, 30, 39, 9, 2, -49,
1155 -9, 28, -19, 31, 6, 26, 30, -17, 28, -7, -8, 14, -56, -1, -24, 19, 48, -23, -2, 35,
1156 -26, 31, 29, -5, 50, 8, -11, 0, 21, -21, -6, 34, 16, 27, -37, -68, 38, 0, -5, 0, 52,
1157 59, -27, -3, -10, -13, 9, -20, 77, -17, 0, 17, 17, -22, -3, -11, -9, 15, -21, 9, -3,
1158 -33, 38, -1, -11, 9, 16, 9, -23, -5, -25, -4, -10, -19, 4, -55, -11, 15, 21, -21, -25,
1159 16, 0, 14, -4, -23, 38, -18, 4, 45, -58, -32, 11, 25, 33, -26, 5, -27, -24, 6, 34, -3,
1160 27, -18, 5, -23, 3, -6, -22, -36, 7, 28, -42, 49, 18, -3, 25, -36, -44, 1, -10, 29, 19,
1161 17, -9, 2, -7, -5, 4, 42, -73, 9, 12, -25, 31, -16, -39, -36, 12, -2, 45, -6, 0, 36, 6,
1162 -40, 9, 9, -21, -51, 6, -6, -46, -25, 4, -6, -7, 16, -6, -17, -28, 42, -8, -29, 46, 21,
1163 -28, 5, -33, 59, 0, -43, -8, -28, 8, 8, 3, 58, 2, 14, -27, 6, -19, 13, 40, -21, -18,
1164 -2, 2, 27, -6, -24, 32, -34, -1, 7, 23, 9, -29, 2, -4, -7, 4, 11, -5, -18, -16, 12, 14,
1165 -4, 54, -26, -40, -43, 2, -22, 21, -1, -22, -1, -10, 14, 38, 2, -20, 13, -38, -9, 23,
1166 21, -3, 7, -2, -11, 26, 17, -2, 3, 14, 11, 47, -20, 36, 17, 0, 45, 16, -38, 12, -12,
1167 -7, 39, 11, 7, 2, -22, 31, 67, -4, -7, -19, -15, -15, -21, 3, -2, 33, -38, -3, 8, -22,
1168 14, -28, -18, -15, -24, -46, 7, 6, 2, 9, 28, -2, 3, 25, 39, 22, -32, 3, -5, 70, -28,
1169 -19, 36, 2, -65, 20, -10, 10, -28, 23, 7, 23, 4, 25, 52, -22, 40, 10, -10, -2, -8, -2,
1170 27, -41, 15, 31, 23, -31, -15, -37, -39, -9, 40, -23, 33, 11, 14, -11, -7, -36, 26,
1171 -30, -37, 20, 26, -8, 31, 24, -44, -16, -6, 20, -4, -20, 27, 69, -4, -33, -21, -5, -14,
1172 15, -32, -1, -7, -43, -63, -3, 0, -13, 59, -40, 29, 0, 25, -4, -16, -15, 20, -24, 26,
1173 -41, 35, -6, -40, -5, 7, 31, 7, -28, -30, 2, -36, -48, -12, -26, 47, 29, 11, -11, -17,
1174 -20, 0, -26, 5, 35, -6, -16, 0, 18, -14, -3, 3, -52, -18, 18, -7, 61, -29, -50, 40,
1175 -27, -2, -45, 41, -12, -26, 41, 5, -25, -31, -28, 30, -5, 7, 45, 25, -44, 46, -5, -35,
1176 4, 34, -13, 7, -8, 27, 18, 19, -5, 14, -21, -17, -11, -17, -26, -22, 20, -25, -2, 28,
1177 ],
1178 [
1179 12, 1, -9, -42, -2, -77, 18, 4, 27, -16, -57, 11, 49, 23, 10, -9, -44, 3, -4, 13, -58,
1180 -56, -20, -29, -30, 33, 35, -23, -27, -30, 6, 21, 32, -7, -6, 6, -47, -16, -1, 18, 13,
1181 -10, -23, -22, -22, 2, 17, 2, 10, -53, 15, 4, -4, 28, -39, -38, 28, -8, -25, 13, 4,
1182 -29, 8, -29, 1, -1, 4, 51, 7, 12, -5, -10, -63, 13, 22, -58, -21, 20, 9, -7, -8, 4, 25,
1183 -85, -51, -1, 4, -8, -8, -39, 6, 17, 15, 13, 11, -22, -6, 40, -11, -17, 9, -12, -36,
1184 -3, -18, 9, -21, -19, 35, 14, -23, 0, 31, 34, -1, -3, -11, 22, -5, -1, 0, -23, -58, -1,
1185 31, 21, -10, 41, 32, 39, 10, 9, 10, -48, -44, 20, -4, -51, 6, 1, 18, 15, 5, 9, 8, -21,
1186 40, 36, -5, 12, -49, 18, 0, 18, 49, 29, 49, -16, -20, 15, 19, -10, -7, -11, -11, 30,
1187 20, -21, 34, 35, 52, 10, 14, 18, 29, -39, -11, 12, -13, -4, 6, 7, -10, -17, -3, 29, 5,
1188 -25, -29, 15, 31, 25, 33, 23, -11, 30, 4, -32, 42, -33, -26, -15, -42, 48, 4, -12, 37,
1189 -9, 13, -5, 25, -19, 10, 4, 14, 26, 12, -6, -20, -44, -7, 19, -2, -50, 4, -3, 24, -4,
1190 -24, 16, 4, -6, -22, -15, 61, 46, 0, -26, -35, -17, 16, 6, 24, -13, -28, -41, -31, 23,
1191 5, -9, 19, 2, 10, 49, 34, 6, -10, 32, -30, 3, -39, 3, 41, 6, -48, 11, 8, 13, 18, -16,
1192 -2, 6, -1, -17, -14, -17, 55, 35, -4, 8, -18, 10, -3, 13, -22, 43, 3, -28, -18, 42,
1193 -12, 4, -11, 18, -44, -9, -16, 36, 16, -1, -21, -7, -18, 14, -23, -22, -1, -8, 50, -2,
1194 16, -4, -4, 34, -26, -36, -6, -36, 32, -23, 13, 30, -16, -13, 18, 6, -4, 17, -6, -25,
1195 -28, 3, 13, 38, 3, -56, -41, 26, 21, 47, -21, 21, 9, -14, -15, 18, 4, -11, -16, -24,
1196 -8, 6, -26, -22, 36, 16, -10, 12, -25, -15, 26, -23, -2, 6, -15, 34, 7, -74, 3, 2, -8,
1197 33, 24, -4, 28, -18, -34, 44, -5, -43, 10, 4, -8, -15, -1, -26, 52, -24, 35, 63, 0,
1198 -58, 25, -4, -12, -14, -9, -14, -67, 5, 10, 41, -22, 6, 15, 24, 3, 15, -15, 37, 10, 27,
1199 4, -54, 6, 3, -21, -17, -13, -34, 33, -53, 12, 16, 15, -12, 12, -6, 18, -22, 0, 0, -11,
1200 -6, 17, -36, 4, 15, 4, 30, -32, -33, -40, -35, -41, 18, 21, 9, -17, 24, 14, 30, 6, 38,
1201 15, -25, -34, 13, -2, -4, -4, -19, -32, -26, -77, -56, 41, 0, 50, -46, 3, -3, 28, 24,
1202 -9, -5, 1, -18, 7, 5, -7, -21, 13, -15, 11, 19, -16, 13, -12, 14, -23, 21, -42, 37, 24,
1203 25, -17, -35, -13, 51, 17, -1, 30, -6, -8, 16, -12, -14, 8, 8, -7, -39,
1204 ],
1205 ],
1206 [
1207 [
1208 1, -1, 3, -8, 2, 0, -7, 1, -4, -2, -1, -5, -3, 0, 0, -4, -10, 1, -2, 0, 2, 4, -1, -5,
1209 2, -2, 4, 6, -2, -4, 3, 9, -1, 3, 4, -1, -7, 4, -3, 7, 9, -1, 0, -7, -4, 6, 5, -3, 1,
1210 -9, 2, 1, 4, -1, -3, -5, -9, -6, -4, 6, -9, 0, -4, 3, -4, -1, 4, -2, -2, -4, -5, 3, 6,
1211 9, 3, 0, -2, 6, -3, 3, 3, -4, -4, 6, -5, -3, 3, -4, -4, 6, -10, -2, -7, 4, 2, 5, -5, 2,
1212 1, 4, 1, -1, 0, 2, 3, -2, -5, -2, -2, 1, 13, -2, -1, -5, -4, 0, 0, 2, 1, 8, 2, 4, 0, 6,
1213 2, -4, 5, 0, 1, -10, -4, 2, 10, -8, 0, 2, -2, 2, 3, -4, 3, 4, -1, 4, -4, -5, 3, -5, -4,
1214 -8, -4, 3, -6, 3, 2, -2, -3, -1, -4, -3, 1, -1, 1, -5, -2, -5, 1, 3, -7, -6, 6, -6, 5,
1215 -2, 10, 0, -8, -5, 0, 4, -2, 3, 3, 0, -3, -8, -1, 2, -8, -5, 2, 2, -1, 1, -1, 5, -1, 0,
1216 7, 7, -2, -4, -5, 0, 2, 6, 2, -3, 2, 5, -5, 5, 1, 6, -2, 6, -1, 2, -1, 5, -3, -2, -7,
1217 0, -4, -1, -3, 0, -4, 4, 0, 2, -2, -1, 1, -7, 2, 1, 1, 0, -6, 2, 0, -3, -7, -1, -3, 4,
1218 -1, 1, 0, -5, 8, -4, -2, -3, -2, 1, 2, -4, 0, 1, 8, -3, -5, 2, 3, 1, 3, -5, 6, 1, 3,
1219 -2, -4, 5, -1, 4, 0, -8, -9, -2, 2, -6, 0, -3, -5, -1, -6, 0, -1, 0, -5, -8, 3, 8, -8,
1220 -1, -5, 3, -2, 1, 7, 2, -1, -3, 1, 1, -7, 1, -8, -1, 5, -1, -3, -3, 2, 6, 3, -2, 1, 0,
1221 0, 3, 5, -1, 8, 1, 3, -1, 0, -5, 6, 1, 2, 6, 2, -2, -3, -5, 3, 1, -1, -2, -1, 5, -1, 1,
1222 3, 6, -1, 4, 1, 2, 3, -6, 4, 4, 0, 5, 4, -5, 1, -1, 7, 3, -4, 5, -1, 1, 4, 4, -2, -1,
1223 -6, 0, 7, 0, 4, -6, -7, -5, -2, 1, 1, -6, 0, 1, -5, 7, -7, 0, 0, -4, -3, 4, 0, -3, -4,
1224 2, 3, 3, -3, -3, 0, -8, 3, -4, -6, -4, 3, -9, 0, -1, -3, -3, -3, 0, 1, -8, -1, 7, -3,
1225 1, -3, 5, 5, 0, 0, 0, 6, -2, 7, -10, 2, -8, 0, -6, 0, 5, -1, -3, 6, 4, 1, 0, 1, 0, 3,
1226 1, -3, -4, 1, 2, -6, -1, 1, -1, -3, 1, -2, -7, 2, 1, 0, 2, 1, -5, 4, 5, -2, 6, -9, -1,
1227 -4, -1, -6, -2, -2, -4, 5, -5, -8, 2, -3, 0, 0, 2, -5, 1, -8, 5, 1, -4, -1, 7, -8, 1,
1228 5, 6, 3, 6, 4, -1, -1, -7, 3, 5, -1, -1, 8, -1,
1229 ],
1230 [
1231 7, -5, 1, -1, -1, -9, -1, -1, 0, 3, 1, 2, 2, -2, 9, -3, 0, -4, -2, 2, -7, 8, 7, -6, 2,
1232 3, -1, -2, 5, 4, -3, 4, 5, -2, 4, -4, -2, -2, -1, 0, 0, -5, -3, 8, 2, 3, 1, 3, -3, 1,
1233 -3, 1, -6, -7, 2, 0, -4, 1, -3, -3, -4, -3, 1, 0, -3, 0, 2, 5, -3, -1, 1, 7, -8, -7, 4,
1234 -1, 3, -7, -3, -5, -5, 6, 0, -6, -5, 1, -3, 3, 6, -2, -3, 1, -1, 0, -2, 2, 1, -1, 0, 1,
1235 2, 3, 5, 6, 0, 2, -1, 3, 5, -2, 3, -1, 1, -6, -4, -1, -4, 3, -4, 0, 1, 3, -2, 0, -2, 6,
1236 -1, -2, 2, -3, 3, 2, 0, 1, 2, 4, 1, -3, -5, -1, -3, 2, -4, 1, 3, -1, 4, 2, -6, -2, -3,
1237 -3, -3, 0, -4, 2, -6, 4, -2, 8, 1, -1, -1, 1, -3, 0, -4, -12, -8, 2, 3, -6, -7, -1, 3,
1238 6, 0, -9, -4, -1, -1, 1, -1, 7, -1, 3, 2, -8, 5, -6, -8, 1, -1, 1, 3, 6, 3, 5, -4, -10,
1239 -3, 2, 4, 1, 1, 1, -5, 0, -2, 8, -2, -6, 1, -1, -1, -1, 2, 3, 3, -6, 2, -12, 3, 4, 3,
1240 0, -1, -6, 5, -2, 3, 0, -3, 4, 3, 0, -6, -4, 3, -1, 6, -9, 3, 1, 5, 1, -4, 1, 4, 1, -1,
1241 -2, -1, -3, 1, 1, -3, -6, -1, 6, 0, -1, 2, -1, 2, -6, 0, 2, 3, 1, 3, -5, 1, 3, 4, 1, 4,
1242 1, -4, -5, 4, 3, -1, -12, -8, 4, -1, -4, -5, -2, -4, 5, -1, -1, 1, -3, 1, 6, 3, 4, 2,
1243 -4, -3, 8, 1, 3, 2, -2, -7, 1, -4, 3, 2, 1, -1, 0, -1, -2, 0, 0, -3, 4, 3, -2, 3, -1,
1244 7, 3, -3, -4, 2, 2, -1, -6, -4, 7, -6, -8, -4, -3, -2, 6, -3, 8, 4, 6, 7, 6, -1, 0, -1,
1245 1, 2, 1, 3, 0, 6, 3, -1, 2, 9, 2, -1, 5, -3, 2, 5, 8, 0, 2, -6, -2, -4, 1, -8, 4, 5, 5,
1246 9, -2, -6, 0, 2, -2, 0, -2, 4, 4, -13, 2, -1, 1, -3, -1, -4, -2, 2, -2, 9, -4, 3, 3,
1247 -6, -4, -4, -2, 1, 10, 4, -1, -7, -1, 2, 7, -2, 2, 0, 2, 0, -1, -1, -2, 1, -2, 3, 4,
1248 14, -1, 2, -2, -4, 0, 6, 0, 2, 0, 8, 6, 4, 1, -1, -2, -1, -2, -5, -6, -3, 1, -4, 0, 2,
1249 4, 2, -2, -7, 4, 4, 2, -1, 1, -9, -6, -3, 4, 2, -4, 2, 0, 1, 1, 0, 0, 0, 2, -5, 4, 9,
1250 5, -4, -1, -2, -1, 10, -1, 3, -3, 2, 7, 7, 4, 3, 1, 0, -2, 0, 2, 2, -6, -2, -1, -1, -4,
1251 -4, 0, -3, -2, 3, 0, 0, 5, 5, 6,
1252 ],
1253 [
1254 4, -45, 38, 41, -3, -57, 26, -7, 70, -36, -17, -41, 18, -19, 11, 13, 28, 12, -41, 16,
1255 16, -4, 42, 12, 25, 6, 16, -17, 11, -13, 38, -44, 24, 42, 0, 48, 30, 9, -6, -21, 33,
1256 -5, -27, 57, -42, -19, 43, 15, -30, 6, 10, 5, -87, 27, 37, -9, 10, 22, -5, -18, 2, 37,
1257 13, 21, -10, 20, -4, 15, 52, -15, -15, -40, 3, -21, 94, 10, -37, 18, -18, -4, -24, 19,
1258 32, 27, -33, 0, -18, 38, 8, 51, -44, -36, 6, -2, -10, 28, -4, 18, 13, -34, 61, 20, 2,
1259 8, 11, 36, 3, 53, -45, 51, -43, -1, -27, 22, -9, -12, -20, -6, 13, -31, -30, 46, 1, 52,
1260 2, -9, 6, -38, -6, -22, 27, -62, 10, -28, 4, -21, 13, 14, -9, -15, -63, 4, 14, 5, 32,
1261 -11, 46, 15, -20, -21, -1, -56, 25, -29, 45, -24, 14, -13, -33, -22, 39, -49, 14, 14,
1262 23, 20, -40, -22, -25, 9, 21, -10, -3, 2, -17, -31, 25, 24, -36, -36, 15, 31, -6, -37,
1263 -12, 38, -14, -13, -2, 22, -2, -5, -34, 6, 31, -7, 25, 32, -13, -29, 1, 27, -54, -12,
1264 -21, -38, 3, -21, 29, -49, -81, -9, 7, 20, -2, -11, 1, 31, 15, 9, -36, -5, -45, -22,
1265 44, -87, -21, 20, 19, -10, -13, -4, 37, 7, -28, 49, 23, -6, -34, 20, 29, -5, 19, -16,
1266 30, 56, 4, 63, 1, 34, -13, 29, 32, 2, 44, -8, 17, -10, -35, 10, 2, 2, -36, -16, 12, 30,
1267 41, -62, 18, 0, 0, 0, 40, -21, 13, -2, -36, 1, -36, -48, 5, -21, -28, 22, -14, -12, 20,
1268 31, 19, -4, -15, -16, -5, -6, 54, -28, 1, -60, -32, 59, -4, -11, -44, -62, 26, 3, 12,
1269 -22, -26, -25, -30, -3, -16, -8, -30, 39, 6, -5, 33, -21, -13, -18, -24, 38, 38, 0, 41,
1270 -9, -6, -55, 9, 25, 3, -67, 3, -18, -33, 20, -28, -10, -15, -16, 30, 20, -16, -23, -26,
1271 -11, -12, 13, -11, 13, 48, -18, -13, -12, -8, -17, -7, 23, -70, -4, -33, 9, -37, -22,
1272 2, -26, -23, 2, -40, -2, -17, 38, -12, 5, 4, -2, -24, 25, -9, 6, -7, 26, -37, 29, 68,
1273 2, 22, 23, 23, -15, 5, 5, 10, 82, -24, 50, 30, 5, -1, 29, -13, -15, 25, -25, 41, -31,
1274 2, -4, 42, 11, 28, -6, 27, 10, -11, -2, 23, -5, 25, 14, 50, 0, 2, 19, 1, -44, 6, 53,
1275 49, -24, -8, -45, -7, -50, -22, -21, 38, -57, -59, -40, 19, 0, -30, 43, 20, -7, -9, 1,
1276 -4, -27, -3, -4, 28, -3, -85, 18, 4, 33, -73, 14, -15, 13, -9, 17, 74, 46, 36, -25,
1277 -18, -2, 42, -4, -12, -21, -3, -16, 53, 7, -6, 21, -18, 57, 57, 50, -3, 51, -3, 38, 24,
1278 28, 30, 38, -43, 11, 29, 5, 22, -8, 42, 5, 12, 3, -6, 21, -45, 15, -56, 30, 11, -34,
1279 ],
1280 [
1281 -67, -18, 20, -20, -29, 0, -47, -7, -23, -2, 14, 19, -15, 21, 21, -28, -3, -25, -6,
1282 -12, -28, 34, 29, 53, -11, 12, 18, 14, -19, 10, -9, 23, -22, -12, -20, -25, 6, -27,
1283 -21, -35, -11, -27, -37, 40, 36, 25, 23, -13, -44, -26, 17, 6, 20, -13, -46, 21, -29,
1284 11, -5, -8, -41, -39, 33, -37, 28, 19, -54, -29, 15, 8, 4, 4, 15, 29, 7, -5, 25, -10,
1285 -15, 20, 9, -7, -5, 23, 2, -20, -19, -32, 13, -14, 19, 22, -11, 63, 28, -34, -17, 43,
1286 47, 18, 40, -8, -4, -7, 51, 19, -11, 14, -33, 6, -29, -23, -6, -32, -17, 16, 0, -15,
1287 33, -46, -14, -24, 28, -15, 22, 5, -31, -6, 8, 7, -10, 12, 12, 23, -22, -33, -26, -9,
1288 -46, 18, -20, -53, -16, -6, 31, 38, 34, 8, 52, -1, -46, 31, -22, 6, 7, 13, 0, 29, 11,
1289 -12, 11, -7, 55, 36, 17, 7, -28, 15, 49, -15, -28, 8, 73, 27, 35, -24, -43, 3, -8, 8,
1290 -29, 25, 63, 20, 31, 42, -20, 18, -27, -13, -24, -14, -8, 15, 19, -4, 42, 22, 8, -2,
1291 -6, -54, -16, 7, -25, -31, -27, 26, 2, -13, -15, 48, -19, -29, 26, -15, 17, -3, -4,
1292 -29, 9, 3, 23, -63, -19, -6, -20, 14, 61, 41, -9, -3, 43, 35, -22, 6, -17, 18, 33, -11,
1293 -2, -27, 21, 10, 42, -31, 29, -14, 16, -13, -21, -10, 2, 5, 40, -41, 20, 5, 56, -19, 4,
1294 -1, -9, 24, -14, -9, 14, 6, -1, -2, 18, -1, 19, -22, -43, 0, 1, 40, 29, -21, 0, -46,
1295 15, -19, -14, -45, -1, 0, 30, 4, -33, -15, 36, -13, 62, -14, -3, 31, 32, -43, 4, 7, 0,
1296 -4, -5, -3, 35, -18, 21, 65, -21, -19, -25, 22, -20, 5, -30, -12, 9, -37, 23, -2, -34,
1297 11, 14, -40, 12, -18, -6, -33, 20, -47, -21, -36, -7, 36, 0, 0, -39, 11, -47, 20, -17,
1298 9, -65, 14, -2, 8, -40, 26, 1, 8, -35, -34, -24, 24, 14, -5, -23, 36, 3, -38, -78, 38,
1299 -44, 14, 17, -16, -2, -3, -16, -15, 22, -6, -13, 6, -16, 31, 4, 15, 32, 31, 33, -21,
1300 27, -3, 4, 10, -9, 1, 43, -44, -24, 23, -11, 30, 1, -16, -8, 39, 15, 51, -29, -30, -2,
1301 6, 27, -9, -28, 19, 16, 13, -17, 61, 44, 18, 25, -11, -62, 22, -9, -17, 19, -1, 2, -43,
1302 -13, -35, -21, -28, 31, -5, -20, -5, -12, 29, 20, 28, -3, 11, 49, -17, -45, -55, 7,
1303 -34, -49, 18, 21, 31, 0, 4, 2, -6, 3, 17, 7, -32, 61, 26, -1, 20, -9, -27, 14, -8, 60,
1304 -13, -4, -11, 28, 17, -23, 15, -29, 15, 0, 38, 23, 26, 50, 15, 17, -58, -42, -16, 49,
1305 41, -16, 19, 17, 24, 26, -39, 30, 5, 48, 11, 5, 25, -27, -23, -4, -18, 17, -13, 12,
1306 -16, 34, 53, 9, -1,
1307 ],
1308 ],
1309 [
1310 [
1311 2, -2, -4, 5, 0, 10, 0, 2, -1, 4, 0, 0, -6, 3, 5, 5, 5, -2, -2, 2, -5, -3, -1, 3, 2,
1312 -2, -1, -6, -2, -4, -4, 3, -2, 1, 2, -5, 3, -1, -4, -1, -3, 1, -3, -3, -1, 2, -2, -5,
1313 -2, 1, -5, 1, 5, 4, 0, 3, 7, -8, -3, -7, 0, 1, 3, 1, -3, 5, 3, 2, 5, 0, -4, 4, 3, 0,
1314 -8, -3, -2, 1, -4, -3, -2, -8, 1, -4, -7, -4, -3, 2, -6, 0, -6, 4, 7, 4, 3, 0, 0, 1,
1315 -5, -3, 0, 5, -2, -4, 3, 1, -1, -5, 6, 11, -8, 2, 3, -2, -1, 0, -4, 0, -1, -6, 1, -5,
1316 5, -1, 3, 2, 3, 9, -1, 2, 1, 1, 2, 3, 1, 4, 4, 0, -1, 6, -5, -2, 0, -6, 6, 1, 0, -3,
1317 -4, -3, -3, 4, 1, 2, 4, -5, 1, 1, 5, 3, -7, 0, -1, -4, 3, -1, -3, 2, 3, 0, 8, -8, 7, 5,
1318 -4, -5, 5, 0, 3, 1, -7, -5, 0, -6, -1, 0, -5, -3, 5, -3, -1, -3, 3, -2, -2, -12, 1, -4,
1319 4, 9, 4, -1, -1, -1, 4, 0, -4, -8, -2, 1, -1, 11, 8, -3, -5, -1, 3, 0, -6, 2, -3, -3,
1320 -5, 1, 3, -4, 5, -1, -6, 2, 2, 3, -4, 3, -13, -8, 3, 1, 5, 4, -2, -2, 1, -1, 13, -2, 0,
1321 1, 3, 2, 6, -4, -2, 9, 10, -5, -7, 10, 2, -1, 4, -2, 4, 4, -2, -3, 3, 2, 3, 0, -2, 0,
1322 -2, 0, 4, -3, 1, 1, 0, 3, -8, -8, -3, 1, -2, -5, 0, 2, 4, -3, -5, 2, -2, -2, -4, -8, 5,
1323 1, 0, -1, -4, 4, -1, 0, 3, -9, -7, -3, -3, 5, 2, 10, 2, 2, -7, -4, -2, 0, -3, 2, -6, 3,
1324 4, 4, 2, 1, -2, 5, 0, -5, 2, 2, 4, 5, -7, -1, 12, -3, 0, 1, -2, -3, -4, -4, -4, -3, 1,
1325 0, -4, -1, 3, 6, 5, -3, -1, -7, 3, -5, -2, 12, -1, -4, -4, -1, 9, -1, 0, -6, -1, -2,
1326 -5, 0, -1, -4, -1, 5, 0, 0, 4, 5, 2, -6, 1, -1, -3, -2, 0, 10, -6, 0, 1, -5, -6, 5, -2,
1327 -4, 3, 1, 4, -4, -1, 0, 0, -1, 1, -5, -3, 5, -5, 1, 2, -3, -3, -3, 4, -2, -5, 8, 3, 6,
1328 0, -2, 5, -2, -2, 1, -1, 5, 0, -1, -2, 0, -1, 0, -2, -3, -7, -3, -5, 0, -2, 7, 2, -6,
1329 -2, 0, -3, -2, 9, 0, -1, 0, 1, 1, -6, -5, -2, -3, -4, 3, 5, 8, -2, -2, 1, -2, -7, -3,
1330 -8, 1, 5, 0, -1, 2, -1, 2, -4, 3, -5, -3, 2, 4, -7, -2, 5, 5, 6, 5, 2, -4, 0, -2, -7,
1331 0, 1, 0, 4, 1, 0, 4, 0, -2, -2, -1, -6, 3, 0, -9, -2, 5, 7, -1,
1332 ],
1333 [
1334 -1, 10, -8, 6, 5, 3, 7, -2, 10, 5, 0, 5, 3, -1, -1, -5, 3, -1, 1, 0, -2, 0, -4, -2, 2,
1335 7, 2, 5, 8, -4, -7, -2, 5, 3, -6, 1, -3, -1, 11, 2, -4, 7, 2, -2, 4, 7, 4, 0, 9, -1, 1,
1336 -6, 4, -4, 0, 7, 10, -2, -3, 1, 4, 1, -1, 2, 0, -7, 0, -3, -5, 6, -3, 3, -3, 4, 3, 0,
1337 -5, 7, 3, -3, -6, 1, -2, 3, -3, -1, -5, 7, -5, -2, 0, -3, -5, -1, -9, 6, 3, -7, 3, -1,
1338 1, -6, 0, 2, 0, 4, 1, 1, 6, -3, -4, 4, -1, 0, 2, 0, 2, -9, 7, -4, -5, 5, -2, 7, -1, -4,
1339 1, 0, -10, 3, -1, -4, 0, -6, 5, -1, -3, -2, -2, -6, -6, 6, -1, -2, 5, -4, 2, -6, 6, 2,
1340 1, -1, 4, 3, -2, -1, -2, -5, -3, 0, -4, -6, 2, -2, 4, -2, 0, -4, 0, 5, -3, 1, -3, -2,
1341 1, -4, 1, -3, 1, 1, -1, -2, 4, 0, -6, -7, 4, -5, 2, 5, -3, -4, -2, 2, 3, -2, -2, -8,
1342 -2, -4, -7, -2, 6, -3, 4, 0, -3, -8, 5, 0, -2, -2, 4, 0, 2, 6, 4, -1, -7, 2, -1, 5, 2,
1343 -1, 6, -2, -1, -1, 7, 4, -2, 5, 3, 2, 3, 4, 0, 1, 3, 1, -7, 1, 6, 2, 4, -3, 0, -5, -1,
1344 -4, 6, 0, -1, 4, -6, 0, -8, -3, 6, 0, -1, -6, 0, 0, 1, -2, 1, -1, 1, 0, 3, -1, -2, -3,
1345 3, 3, -2, 1, -3, 2, 4, -2, 0, -2, 3, -4, 2, -3, 4, -4, 3, -8, 2, 0, -4, 11, 9, 4, 6,
1346 -1, 4, 2, 5, 3, 7, -4, 4, 4, -3, 5, 2, 5, -7, -5, 3, 3, 3, -2, -2, 0, 4, -4, -5, -5, 2,
1347 2, 2, 5, 4, -7, 6, -10, -4, 6, -3, 3, -7, -1, 5, 3, -3, 0, -3, 5, -2, 3, 4, -3, -10, 1,
1348 -5, -8, 2, -1, 1, -10, 6, 1, -1, 7, 4, 0, -5, 0, -4, -1, -1, 1, 3, -6, -3, -5, 1, 3, 2,
1349 3, -11, -5, -1, -2, -5, 6, 4, 1, -2, 0, 3, -1, 5, 3, -2, 1, 1, 0, 4, 7, -5, -6, 5, 1,
1350 6, -2, 2, 0, 3, 5, -1, 2, -7, -5, -3, 2, -1, 4, 2, 2, 0, -7, 3, -1, -5, -2, 0, 0, 1, 2,
1351 -5, 2, -3, 2, -4, -3, -8, -5, 4, 1, 0, -5, -8, 5, -1, -4, 0, -2, 1, -2, 2, -1, -1, -4,
1352 4, -3, 5, 2, -2, 0, 0, -4, -4, 6, -2, 5, -2, 8, -2, -3, 5, 2, 5, 0, -9, 1, 1, -4, 1, 3,
1353 -4, 0, 5, -4, -4, 7, 2, 3, -3, 0, -4, -1, 4, -5, -7, -1, 8, 3, -2, -5, 2, 4, 1, 2, 1,
1354 1, 6, -6, -1, -8, -2, -5, -2, 0, -2, -1,
1355 ],
1356 [
1357 -43, -39, -37, -14, 14, 27, 39, 22, 25, 10, -36, 27, 49, -24, 2, -7, -22, 52, 42, 22,
1358 -14, 12, -24, -35, -29, -21, 2, 62, -52, -3, -41, -13, 28, -27, -60, -15, -15, -29, 4,
1359 6, 6, 16, -40, -12, -15, 0, -24, -15, -7, 10, 57, 1, -28, 35, 23, -43, -38, -13, 11,
1360 10, 40, 18, 22, -17, -32, 38, -30, -37, -20, -34, -18, 57, 59, 2, 40, -22, -39, -40,
1361 -9, -16, 6, 18, 18, 18, 6, 18, 12, -15, -25, -7, -53, -38, -32, 5, -4, 20, 37, -20, 47,
1362 4, 7, -3, -9, 58, -17, -6, -22, 7, 10, -18, -32, 66, 23, 9, -8, 28, -5, 25, 28, -25,
1363 -29, 14, -19, 11, -27, 20, 23, 13, -23, -36, 14, 6, -20, 22, -14, -1, -15, -2, 29, 19,
1364 -15, -15, -14, 5, -6, 16, -28, -12, 42, 15, -14, 37, -26, 3, 13, -44, 26, 23, 17, 36,
1365 71, 23, -19, 14, -33, -22, 44, -52, -28, 10, -6, 69, 45, -30, -30, -15, -60, -57, -44,
1366 -9, 19, 4, -43, 7, 2, 30, 28, 7, -3, -35, 29, -9, 45, 36, -13, 40, -47, -71, 4, -38, 0,
1367 6, -22, -21, -14, 1, 10, -60, -20, -7, 23, 4, -41, -24, 43, 6, -31, -7, -52, 37, -5,
1368 -30, -21, -13, 15, 24, 34, 12, 2, -11, 7, -17, 8, 36, 26, 8, -51, -8, 30, 25, 11, -52,
1369 -78, -25, -23, 0, 28, 26, 12, 29, 24, 13, -15, 33, -16, -3, -16, -1, -4, 22, 78, 21,
1370 -6, 32, 36, 0, 43, -18, -9, -34, 15, 27, 61, -9, 11, -12, -1, -10, -10, -29, 23, 24, 2,
1371 -38, 35, 20, -9, -26, -10, -11, 50, 21, 40, 19, -1, -37, 32, -29, -1, 57, 36, -25, -51,
1372 -48, -1, -24, -26, -40, 16, -38, 5, 82, -55, -28, -12, -1, 10, 9, 1, 20, 32, -8, -20,
1373 -28, -7, 32, -17, -14, -34, -23, -20, -2, 7, -63, -18, 34, -13, 22, -1, 9, 5, -54, -32,
1374 3, -4, 3, -8, -14, 5, -6, 5, -35, -27, 10, 4, 4, 12, -7, 39, 30, 13, 23, 11, 22, -55,
1375 -8, 55, -21, 8, 6, 3, 28, 14, -75, 19, -44, -25, -4, -3, -2, -7, 31, 15, 15, -26, -25,
1376 -8, 20, -13, 40, 5, -2, 61, 12, -6, 10, 1, 15, 9, -60, 45, 19, -24, 45, -16, 16, -36,
1377 11, -4, -17, -12, 12, -38, -14, 18, -8, 22, -6, -50, -19, -9, 24, -16, -1, 4, 34, 5,
1378 -6, 14, 29, -7, 26, -34, 32, 9, 7, 18, -5, 10, 14, -51, -3, 4, 6, -40, 0, 5, -8, 12,
1379 12, -24, -44, 16, -4, -36, -5, -49, 19, 19, 18, -7, -25, -31, -46, -47, 32, -8, 16, 31,
1380 9, 8, -7, -8, 9, 34, -11, -50, 4, -13, -1, -14, 63, 44, -21, -43, -26, 5, -25, 44, 27,
1381 -48, -16, 24, 28, 1, -55, 1, -15, -31, -18, 6, 20, 65, 5, 9, -8, -8, -15, 3, -2, -20,
1382 -12,
1383 ],
1384 [
1385 64, -9, 13, -38, 18, 34, -37, -16, 27, 3, 0, -58, -44, 64, -5, 16, 7, 4, -12, 13, 20,
1386 13, -5, 32, 19, -36, -3, 24, -9, 10, -37, 27, -31, -51, 39, 44, 55, 19, 31, -13, -6,
1387 -2, -9, -18, 61, 61, -10, -27, 8, 10, 21, -31, -4, 9, -6, 27, 50, -23, 20, -5, -4, 9,
1388 22, 61, -19, 18, 33, 37, 14, -33, -16, 38, -33, -44, 49, -34, 39, 16, -35, -29, 20,
1389 -19, -27, 21, -19, 3, 2, 25, -51, 37, -5, 7, -31, -27, -35, 0, 8, -26, -31, 0, -12, 14,
1390 1, 15, -38, 7, -26, 32, -51, 51, -40, 6, -10, 30, -16, -4, 5, -22, -23, -34, -15, -8,
1391 -25, 9, -3, 40, -44, -20, -16, -12, -18, 41, -28, 13, 48, 13, 4, -35, 17, 4, -11, -9,
1392 0, 12, 62, 12, -20, 17, -30, 33, 18, -14, 6, -15, 43, 3, -28, 41, -40, -44, -4, -29,
1393 55, 5, 23, 51, 1, 43, -10, -9, 15, 9, -39, 25, 9, 13, -14, 29, -4, -53, 25, 13, -10,
1394 -15, -33, 2, -11, -2, -39, -4, -20, -33, 1, -6, 2, 7, 19, 14, -3, -37, 17, -6, 30, 17,
1395 -46, 0, -18, 0, -23, -19, 36, 14, -13, 4, -38, 15, 7, 7, -32, 36, -26, -30, 80, -33, 6,
1396 -29, -22, 24, -11, 16, 51, 10, -5, 41, -22, -2, -29, 90, -5, -40, 59, 21, 26, 18, -16,
1397 -4, -50, 15, 20, -32, -13, 2, -19, 21, -29, -8, 31, -20, -23, -21, 8, 26, -1, -18, 19,
1398 -71, 40, 5, -8, 47, -29, 36, -5, 17, -12, 11, 34, 24, -40, -73, -10, -20, 26, -21, -18,
1399 -11, 30, 42, -8, -23, 4, -27, -15, -40, 31, 12, 2, 20, 21, 20, -2, -14, 43, -38, 52,
1400 41, -4, -20, 40, -6, 36, -21, -35, 1, -33, 14, -20, 7, -17, -27, -7, 21, 17, -18, -68,
1401 13, 31, -5, -8, 6, 37, 67, 4, 32, 23, -31, 4, 37, -8, -24, 10, 37, -27, 29, -1, -29, 0,
1402 31, 10, -9, 9, 6, -7, -15, -10, -1, -27, -13, 1, -42, -10, 17, 12, 28, -61, 10, 44, 10,
1403 -40, 5, -6, -10, -25, -10, 1, 3, 19, -31, -33, -15, -53, 39, -5, -14, 13, 14, -59, -14,
1404 -7, -48, 8, 57, 15, 22, 2, -14, 1, -11, 38, -4, 4, 47, -31, 19, -11, -15, 11, -12, 40,
1405 0, -68, 3, 19, 10, 54, 16, 6, -25, -22, 26, -24, 41, -15, -25, -4, 5, -6, 30, -1, -1,
1406 27, -66, -31, 46, 19, -19, 35, 46, 9, -4, -15, 5, -33, 20, 8, 16, -1, 13, 26, -17, -32,
1407 28, 14, 22, 0, 42, -2, -1, -11, 8, -6, 16, 3, 9, -37, 25, 19, -32, -62, -2, -41, -16,
1408 -21, 31, 18, 2, 8, -43, 1, 4, -43, 76, -12, -7, 12, -12, 26, 55, 21, -27, 0, 28, 13,
1409 -72, 32, -13, -17, -24, -34, -10, 2, -16, 15, -62, -33, 15, -20, -5, 15, -14, 2, 7,
1410 ],
1411 ],
1412 [
1413 [
1414 -1, -6, 2, -7, -3, 3, 0, 1, -3, -4, 0, 5, 7, 6, -2, 2, 2, 4, -2, 0, -1, 2, 0, -7, 4, 6,
1415 0, 0, 0, 5, 2, -4, -9, -6, 4, -4, 1, 6, -2, 4, 5, 1, 7, -2, -4, 4, -2, 1, 2, -2, 5, -4,
1416 7, -3, -7, -7, 0, 1, 2, -9, 4, -7, -3, 4, 0, -3, -3, 4, 3, 4, -3, -4, 2, -3, 0, -1, 0,
1417 -2, 2, -6, 0, 2, 1, -1, 2, -4, 1, 0, 6, 4, 1, -7, 1, -1, 2, 6, -7, -3, 0, 2, 2, -6, 1,
1418 -1, 0, 6, -2, -6, -2, 3, 5, -2, -8, 1, 1, -5, 7, -2, -4, -7, 5, 2, -5, -1, 1, 1, -1, 2,
1419 -2, 0, -3, -4, -2, 1, 5, -7, -3, 5, 7, 0, 0, -4, 2, -4, -11, -2, 6, 2, -1, -1, 4, 4, 3,
1420 1, 6, 2, 4, 2, 1, 2, -2, -1, 2, 7, -4, -4, -1, -3, -7, -2, 1, 6, -1, 3, 2, 0, 4, 5, -6,
1421 3, -1, -1, -4, 2, 6, 3, 2, 1, -1, 1, -3, -2, -5, -3, 1, -6, 4, 2, -6, 2, 5, 4, -5, 0,
1422 9, 1, 0, 1, -3, 3, 1, 0, 1, -3, 0, -3, 5, 0, -3, 1, 3, 3, 3, -1, -5, 1, -7, -6, 5, 5,
1423 -2, 2, 3, -5, 0, -7, 2, -3, 4, -6, 5, -4, -3, -3, -3, 2, -1, 2, -3, 0, -5, -6, 1, 1,
1424 -2, 0, 3, 4, 1, -3, -1, 0, 5, -4, 4, 5, -6, -2, 2, -4, -2, -6, -4, 5, -2, 1, 4, -5, -4,
1425 -2, -2, -9, -2, 3, 2, -3, 5, 3, 5, -8, 0, 5, 0, -3, -4, -1, 5, 4, 0, -1, -4, -4, 4, 0,
1426 1, -2, 0, 3, -11, 2, 4, 0, 1, -4, 3, -4, 3, 9, 8, -2, 3, 4, -3, -5, 6, -5, 4, 4, -2,
1427 -4, -3, 2, 3, -4, -6, 3, 0, 3, 1, 3, 0, 4, 1, 3, -9, 3, -1, 1, -1, -2, 5, 1, 2, -2, -7,
1428 0, 1, -2, 11, 3, 8, 1, -3, 3, -3, -3, 2, 3, 3, -2, 3, -5, 3, 9, -3, 6, -2, 10, 4, 9,
1429 -2, -5, -1, 2, 0, -3, 1, 2, 2, -5, -1, -6, 2, 3, -2, 4, 3, -8, -5, 1, -4, -6, 5, -3, 4,
1430 -2, 3, 0, 3, 5, 4, -8, -3, 5, -2, 0, -9, 0, 7, -6, -2, 2, -1, -2, 3, 2, -6, 1, 1, -4,
1431 6, 1, -11, -4, -1, -7, -1, 1, -3, 2, 4, 2, -10, 3, 1, -2, -7, 5, -6, 2, 0, -2, -4, -1,
1432 -4, 0, -5, -1, 8, 3, -1, 0, -1, 0, 2, 0, 7, -2, 8, -5, 1, -1, 7, 1, -6, -1, 5, 2, -1,
1433 3, 9, -11, -2, -4, 1, 0, -1, 0, -2, 2, -5, -8, -3, 6, 11, 2, 1, 2, 6, 0, -2, -3, -1, 6,
1434 1, 3, 5, 0, 1, -2, 4, -3,
1435 ],
1436 [
1437 -1, 1, -6, 3, 0, 0, 2, 3, -5, 0, 2, 1, 2, 0, 2, 6, -3, -2, 1, 0, -1, 3, 2, -2, 2, -4,
1438 -5, -2, 3, 2, 2, 6, -1, 4, 2, -4, 6, -4, 2, -1, -7, 1, -5, -2, -4, 2, 0, 0, 2, 5, -1,
1439 -1, -2, -6, 5, -3, -7, -3, 3, 2, -4, 5, -2, -5, -8, 4, 4, -1, 5, 1, 8, 1, 4, -9, 1, 1,
1440 5, -1, -1, -2, -4, 3, 2, 1, 4, 3, -3, 0, 1, -2, 2, 1, 8, 2, 8, -4, -1, -4, -7, 3, 4, 1,
1441 -6, 3, -1, 4, 7, 3, 10, 4, -9, 3, 3, 0, 6, -1, 6, 0, 0, 1, 0, -5, 4, 2, 2, 3, 4, -1, 0,
1442 3, -4, 0, 4, 2, -2, 1, 0, 0, -1, -2, 1, -9, -3, 3, 2, 6, -1, -5, -3, 0, 7, -4, -1, 1,
1443 -4, 1, 1, 0, -1, 0, 0, -4, 4, -9, -5, 1, 2, -1, -1, 5, -2, 2, 0, -6, 1, -9, -1, -1, 3,
1444 -7, 2, -3, -1, 1, 5, -5, 3, -1, 2, 6, 4, -2, 3, 2, 4, 0, 0, 4, -5, -5, 1, 1, 2, -6, 7,
1445 5, 3, 2, -6, -5, 5, 9, 1, 2, 6, 2, -5, 3, -1, -3, -6, -4, -3, -5, 0, 3, -2, 1, -1, 2,
1446 -3, 6, -2, -2, 0, -2, 3, -7, 1, 3, -1, 4, -1, 0, -2, 0, 1, 0, -3, -3, 5, 1, -2, -3, 1,
1447 -2, 7, 0, -2, 2, -4, 3, 6, 5, 5, -1, 9, 4, 4, 8, -4, -9, -5, 9, 0, -6, 5, 3, 4, 1, 5,
1448 -1, 1, 2, -7, 0, -2, -6, 4, 0, -3, -4, 1, -6, 2, 1, 0, 0, 5, -3, 5, -2, -4, 3, -4, 3,
1449 4, 1, 0, -3, -2, -2, 2, 4, -3, -8, 2, 4, 7, 3, 6, -1, 4, -3, -7, 3, -3, 0, 6, -1, 8,
1450 -7, -2, 8, -7, 0, -4, 1, -2, -3, 1, -3, 3, 4, -4, -5, 1, 4, -3, 1, 2, -1, -5, -5, -1,
1451 0, 3, 3, 1, -3, 0, 1, -3, -6, 5, -3, -6, -6, -7, 8, -2, 0, 4, 1, 0, 1, 3, 2, 0, 2, 4,
1452 1, -1, 10, 0, 12, -2, 0, -1, -1, 0, 7, -3, -3, -2, 2, -2, 2, 2, -6, -2, -1, 2, 3, 5,
1453 -4, 1, -9, 2, 0, 1, 4, 2, 1, -8, 2, -11, 0, -5, 0, 0, 7, -8, -2, 7, -10, 1, -1, 5, 1,
1454 -1, 4, 1, -1, -5, -7, 2, 0, 3, 3, -2, -1, -9, -1, 3, -2, 6, -3, -3, 6, 8, 3, 3, 2, -7,
1455 8, 5, -2, -8, -1, 3, -5, -3, -1, 0, 2, 1, 6, 4, -6, -3, 2, -1, -2, -1, 7, -2, 2, 3, -6,
1456 7, -2, 1, -2, -4, 2, 6, 0, -6, -13, 2, 6, 0, -5, 5, 8, 7, -2, -3, 4, -2, -4, -4, 8, 9,
1457 -3, -4, 1, 5, 4, 4, -3,
1458 ],
1459 [
1460 -9, 1, -14, -22, 20, 43, 37, 21, -12, -20, 38, 19, 21, -3, 20, 13, 28, -36, 23, -9, 44,
1461 79, 11, 4, 8, 26, -1, 6, -18, -37, 43, 19, -28, 11, -29, 0, 29, -15, 0, 5, -16, 82,
1462 -11, -6, -13, 4, 25, 32, -27, -2, -25, 21, -6, -33, -3, -2, 15, 32, -32, 22, 21, 10,
1463 52, 18, -1, 6, -6, 8, 42, -10, -6, -25, 5, -5, 17, 35, -69, -14, -7, -11, -14, 5, 2, 5,
1464 -9, -48, 3, -1, 10, -34, 14, 41, 6, -14, -2, 0, 1, -12, -69, -30, 4, 20, -22, 3, 12,
1465 -25, 7, -74, -2, 39, 11, 20, 20, -33, -42, -13, 0, 11, -16, 6, 5, 13, 26, 9, -15, -70,
1466 -34, 60, -22, -33, -15, 1, 20, -38, -10, -35, -39, 31, 2, -32, -15, -4, 30, -28, -41,
1467 -9, 18, 27, -11, 6, -38, 7, 32, -19, -8, -10, 23, 44, -5, -23, 26, 15, 7, 26, 1, -52,
1468 10, 43, 40, 1, 11, -37, 46, 3, -12, 0, -21, -7, -13, 4, -17, -7, 71, 7, 2, -1, 32, -16,
1469 -29, -54, 34, -11, -3, -20, -3, 34, 9, -14, -19, 45, 16, 61, 34, 24, 27, 19, 7, -17,
1470 -16, 7, 23, 5, -40, -1, -11, -8, 21, 2, 40, -27, -13, 36, 3, 2, -3, 2, 22, 12, 10, -1,
1471 16, 61, -13, -66, -28, -33, 2, 4, 58, -2, 16, -49, 6, 21, -25, -38, -6, 27, 19, 20, 20,
1472 29, 0, -6, -27, -25, -21, -6, 25, -1, -24, 8, -49, 56, 20, -50, 4, -3, 21, -24, -21,
1473 -13, 19, -1, 0, -2, -22, -6, -32, -24, -37, 33, 23, -7, 34, -5, 18, 31, -4, -40, 1,
1474 -54, -10, 52, 3, -18, -18, -19, 11, 30, -30, -47, -5, 27, -5, -12, 17, 28, -1, 22, -11,
1475 25, -23, 9, -6, -19, -45, 8, -10, 1, -23, 8, 24, -47, 16, -16, 32, 8, -10, 8, -6, -17,
1476 25, -19, 17, 40, 3, -28, 70, 5, -8, -35, -2, 16, 45, 0, -50, 18, 50, -48, 31, -7, 4,
1477 -35, -18, 2, -22, 22, 56, 8, 15, 8, 5, 53, -17, 1, -11, 7, -31, 1, -10, -28, 19, 4,
1478 -18, -9, 19, -21, 12, 4, 17, -31, -19, -8, 75, 21, -1, -19, 57, -41, 18, -51, -28, 13,
1479 27, 3, -20, -37, 28, -17, -6, 13, -17, 59, -34, 20, -11, 33, 35, 49, -15, -4, 3, 4, 46,
1480 -9, -31, 8, 17, -17, 40, -3, 28, -1, 11, 4, 24, 12, -38, 48, -2, 13, -37, 12, 2, 12,
1481 -7, -38, 27, -27, -23, 57, -75, 6, 16, -10, 0, 37, 18, 6, -2, -17, 27, 16, 46, -32, 30,
1482 -21, 23, 20, -19, 9, -13, -1, -6, -19, -10, 31, 4, 22, 45, 24, -33, -6, 19, 7, -23,
1483 -19, 32, 47, 18, 8, -3, -10, 2, -7, -26, -68, 28, 19, -5, -25, -38, -24, 11, -8, 27, 4,
1484 -12, 43, -8, -49, -54, 9, -6, -66, 26, 7, -23, -8, 12, 11,
1485 ],
1486 [
1487 6, -3, -57, 13, -19, -21, 3, -82, 8, -56, -23, -1, 21, -19, -23, 17, 29, 8, -53, -33,
1488 -12, 2, -14, 11, 15, -52, -27, 23, -5, -5, 22, 6, -34, 29, 29, -9, -40, 5, 12, -9, 7,
1489 -16, 37, -41, -25, -24, -17, -10, -42, 1, 9, -2, 11, -6, -4, 17, 39, 26, -1, -34, 19,
1490 -29, -28, -47, -7, -28, -1, 9, 1, 7, -26, -8, -7, 22, -21, 4, -7, 29, 10, 28, 14, 22,
1491 -22, 2, -24, -9, 3, -21, -44, 26, -13, 14, 1, 50, 29, -34, -5, 1, -24, 27, 36, 39, 1,
1492 -13, 31, -28, -33, 33, 10, 15, -27, 74, 2, -19, 24, 40, -45, -18, 10, 23, 19, -64, 51,
1493 7, 10, 6, -47, -20, 22, -1, -53, 1, -23, 7, 2, 11, -23, -25, 17, -19, -16, -27, -24,
1494 -41, -31, -4, 39, 20, 17, -32, 17, 25, -18, 23, 4, 48, 35, -17, 27, 6, -19, 4, 12, 34,
1495 7, 9, -22, -6, 46, 13, 29, -33, 41, 18, 12, -21, 35, -9, 15, -49, 5, -2, 39, 11, -49,
1496 -10, -1, 10, -3, 22, -45, -22, 28, -46, -16, -40, -61, 79, -19, 45, -2, -9, 10, -11,
1497 25, -29, -37, -25, 26, -64, 24, 38, 46, 8, -4, 6, -15, 8, -22, 36, 30, -38, -26, 23,
1498 21, -2, -29, 0, 40, -26, 19, -28, -4, -25, -19, -7, 26, 40, -29, -7, -15, 53, -1, 3,
1499 -13, -25, 29, 22, -32, -16, -38, -31, -28, -13, 23, 25, 8, -60, 8, 9, -10, 14, -9, 34,
1500 10, -65, 14, -14, 7, -16, 18, -21, -4, -10, 9, -40, 15, -35, -24, 19, 13, 15, 19, -9,
1501 2, 23, 10, 6, 12, -28, -42, 36, -11, -6, 51, -3, 17, 20, -37, -8, 18, -36, -27, 13,
1502 -33, 24, 8, -29, 50, -36, -22, -3, 13, -10, -23, 13, -15, 3, 35, -33, -4, 26, -31, -1,
1503 -24, -41, 16, -23, 17, 11, 1, 26, -20, -27, -52, 2, 78, 14, 1, 18, -1, 12, 18, 10, 41,
1504 -6, 21, 12, 4, 11, 25, -16, -25, 1, 18, 52, -20, -26, 20, 9, 44, -34, -28, 12, 24, -34,
1505 43, 38, -22, 17, -41, -16, -13, 2, -5, 49, 2, -36, 5, 7, 8, -27, 16, -28, 43, 34, -4,
1506 -3, -43, -13, 49, 2, 7, 16, 38, 12, -6, -3, 8, 21, -8, -9, 19, 34, 7, -22, -51, -24, 1,
1507 4, -34, 24, -17, -1, 36, -10, 15, 8, 8, 25, 1, -4, -33, -32, 4, -50, -14, 18, -6, -20,
1508 55, -34, 5, -25, -29, 21, 1, 22, -8, 24, 7, -20, -39, -20, -11, -38, -50, -5, -34, 22,
1509 28, 44, 33, 9, -7, 10, 8, -6, 14, 4, 16, 1, -45, 3, -10, 31, -12, -6, -45, -38, -59,
1510 -2, 18, -1, 17, 13, 26, 24, 10, 36, 27, 9, -19, -35, -91, -13, 31, -40, -61, -8, 0, 4,
1511 22, -13, 12, -37, -10, -30, 38, 9, -10, 24, -30, 27, -13, 40, -27, -28, 21, -20, 33,
1512 -31,
1513 ],
1514 ],
1515 [
1516 [
1517 1, 0, 3, 3, -2, -3, -2, 2, 0, -3, -3, -2, 1, 0, 0, -2, 5, 3, -1, 3, 3, 1, 9, 1, -3, -2,
1518 -1, 6, -1, -2, -1, -5, 2, 0, 5, -2, -3, 2, 1, -3, -3, 10, 0, 3, 5, -1, -3, 6, 5, -4, 1,
1519 -5, 5, -3, -1, 5, 5, 2, 4, -2, -2, -5, -2, -3, -5, -6, -8, 0, 4, -2, 4, 0, -1, -7, 7,
1520 -4, -6, 2, 1, 7, 1, -5, 3, 2, -6, 6, -1, 4, 2, -4, 5, -4, -8, -2, 0, -2, 8, -1, -1, -1,
1521 2, -5, -2, 3, -2, 7, 1, 1, 3, -3, -2, 5, 0, -2, -1, 1, 6, 5, 2, 0, -4, 2, 1, 1, 3, 4,
1522 -6, -2, -2, 0, -3, 1, 0, 4, -4, -9, 0, 8, 0, 4, -3, 3, 1, 2, 2, 4, -7, 3, 9, -1, 1, -3,
1523 -1, -4, -1, 3, -1, -1, -1, 0, -5, -5, 5, -6, -4, 0, -3, -2, 4, -1, -3, 7, 1, -4, 1, -1,
1524 7, -7, -2, -2, 6, 5, 1, -5, -7, 1, -1, -3, 0, -8, -2, -7, 0, -10, 2, 4, 0, -4, -2, -5,
1525 5, -2, 3, 4, 5, 4, 2, 2, 4, 2, 1, 1, -7, 6, 3, 4, -6, 8, 0, -1, 8, -3, 2, -3, 6, -5,
1526 -5, 5, 7, 0, 0, -1, -1, 2, 1, 0, 1, -4, -1, -1, 5, 2, 2, -7, -4, 0, -3, -5, 1, 3, 1,
1527 -2, 6, 5, 9, -6, 8, 2, 4, -3, 4, 10, -5, -1, -2, 0, 2, 6, 3, 1, 7, 1, 2, -1, -3, 5, -2,
1528 -6, -2, -3, 5, -4, -2, -2, 1, 1, 6, 0, -1, 6, 6, -4, 6, 1, -1, -3, 3, -8, 5, 6, -8, -3,
1529 -3, 8, -1, -5, -4, 0, -1, -1, -1, -6, -5, -11, 3, -6, -4, 3, -2, -1, -2, -5, 3, -2, 2,
1530 -7, 2, 9, 1, -2, 2, -1, 0, 1, 7, 0, 4, 0, -2, 1, 3, 0, -3, -1, -3, 1, 7, 0, 0, -1, 0,
1531 3, 0, 6, -5, -8, 4, 0, 5, -3, 0, 4, 5, 5, -9, 4, 0, 1, 1, 2, 0, 6, 1, -6, 0, 5, 2, -2,
1532 -4, -7, 1, 0, -3, 3, 2, -5, -3, 1, 3, 5, 0, 4, -3, -4, 4, 12, 4, 0, -2, 0, 3, -8, 4, 0,
1533 1, 8, -3, 2, 2, -3, -5, 5, -1, 2, 3, 1, 2, 6, 1, 4, -5, 7, -9, 1, 2, 6, -4, 2, 2, 3,
1534 -4, 2, 0, 2, -11, -4, -1, 0, -6, 0, 3, -1, 5, -2, 4, 4, 1, -1, 1, -6, -4, 0, -2, 2, 3,
1535 -4, -3, 0, 7, -5, 7, 3, -4, 2, 1, -4, 4, 2, 3, 4, 1, -5, -5, -6, 0, 8, 1, 5, -2, 3, 7,
1536 1, 8, 1, 7, -3, -5, 1, 1, 0, 1, 2, -7, -6, 4, 6, -2, -1, 1, 4, -2, -3, 2, 3, 0, 3, 2,
1537 0, 3, 0, -4, 0,
1538 ],
1539 [
1540 2, 2, -1, 6, -2, -3, 0, 6, -3, 3, -3, 2, -7, -2, 4, 6, 1, -1, -7, 2, -3, -2, 3, 3, 4,
1541 -2, -2, -1, -5, 3, 6, -1, -2, -10, 1, 6, 3, -5, 6, 1, 6, -2, -2, -2, -3, -6, 1, -5, 1,
1542 1, 3, 2, 4, 1, -6, 0, -2, 4, -2, 6, -3, -5, -2, 1, -3, 2, 0, 2, 1, 0, 0, 3, 6, -3, 0,
1543 -2, -7, 3, -2, -3, 6, -6, 3, 3, -4, -3, 1, 0, 0, -1, -2, 4, 3, -1, -3, -5, 4, 6, 3, 3,
1544 5, -2, 0, 2, -3, -2, -3, -2, 1, -4, 2, 7, 10, -1, -2, -3, 5, 1, -3, 7, 1, 0, 1, -2, -2,
1545 5, 3, -2, 6, -2, 8, 0, -4, 2, 9, 11, -3, 8, -4, -4, -5, 0, -1, -1, -7, 3, 4, 0, 0, 6,
1546 5, -2, -3, 0, 0, -4, -3, 0, 3, 0, -9, -2, -8, 8, 1, 1, 3, -3, 3, -2, -8, 1, 2, -2, 6,
1547 1, 1, 7, 9, -5, -4, 6, 3, 5, 7, 0, 0, 4, 6, 10, 0, 2, -3, -5, -3, 8, 1, -8, -2, 1, 4,
1548 -9, 1, 6, 0, 0, 4, 9, 4, 1, 9, 3, 0, 1, 6, -6, -6, -3, -3, 0, 6, 3, -9, -2, 2, 9, -1,
1549 0, 0, 12, -5, 0, -5, 1, 3, 3, -1, 0, -1, 1, 8, -5, -2, -5, -5, -2, 0, 1, 4, 3, 4, 9, 7,
1550 0, 8, -8, -5, 1, 0, 2, 9, -2, -4, -2, -1, -12, 5, 2, -4, 0, 0, -1, -9, 4, 1, -6, 3, -1,
1551 0, 1, -7, -2, -1, 1, -3, -1, 4, 4, 0, -3, -4, -4, -2, -2, -2, -6, 1, 6, 5, 6, 0, -7, 7,
1552 7, -2, 1, -2, -8, -6, 2, 1, 1, 0, -1, -2, -1, 1, -3, -8, -9, 0, -1, -1, -1, -3, 6, -10,
1553 1, 4, -3, -3, -8, -1, 0, 0, -3, 6, 4, 1, 2, -3, -7, 4, 4, 1, -1, -1, 0, 3, 1, 3, -3, 2,
1554 -4, 0, 4, -3, -1, 1, -2, 0, -6, 2, 1, -1, -3, -1, 7, 1, -4, 1, 5, 2, -2, 6, 6, 0, -7,
1555 -1, -2, -3, 0, 1, 1, 6, -2, -1, 5, -5, 0, -1, 5, 1, -8, -3, 2, -7, -3, -4, 1, 4, -5, 2,
1556 1, -5, 3, 2, 5, 2, -7, 3, 0, 4, -1, -7, -2, 3, 3, 3, 3, -1, -3, 2, 1, 0, 2, -2, 2, 5,
1557 3, 5, 7, 4, 3, -2, -4, -4, 5, 0, 6, 1, -1, 0, 0, 0, -6, -2, -1, -1, -5, -2, -1, 6, 0,
1558 0, 7, -2, -1, 4, 2, 4, 6, 0, 0, 1, -1, -11, 1, -4, -3, -3, 7, -5, 6, 0, 7, -8, 4, -3,
1559 4, -1, -2, -3, -2, -7, -1, -1, 1, -2, -6, 2, 1, -3, -1, -2, -3, -8, -2, 4, -2, 0, 5,
1560 -3, 6, 0, 1, 1, -2, 6, -2, 2, 3,
1561 ],
1562 [
1563 -23, 23, -23, -7, -1, 5, 32, 47, -29, -18, -43, 41, 43, 5, -28, -18, -53, -9, -2, -8,
1564 10, -18, -16, -54, -24, 6, -3, 6, 26, 15, 5, -2, 52, 22, 36, -26, -6, 32, 13, -3, 28,
1565 -13, 23, -25, -32, 25, -8, 9, 7, 49, 6, -7, -34, -6, 53, 24, 5, 43, 7, -2, 17, 24, 24,
1566 -27, -29, 1, 31, 15, 15, -35, 40, -5, 14, 14, 1, -14, -18, -7, -29, 1, -18, -2, 7, -6,
1567 28, 8, 25, 24, -36, 23, 2, 5, 2, -6, -8, 14, -26, -1, 52, 2, -12, -27, -7, 26, 5, -25,
1568 -28, -17, 2, -32, 8, 46, 2, 17, 2, 11, -19, 8, -3, -11, 30, -1, -4, 5, 6, 21, -29, -9,
1569 19, -26, -11, 2, -17, -8, 10, 9, -25, -12, -65, -5, -24, 20, -3, -44, -11, -63, 11,
1570 -10, 0, -25, 14, 16, -43, -17, -8, 20, -4, 22, -28, -18, -4, 24, 32, 3, -2, 12, 9, 21,
1571 -39, -1, 7, -12, 1, -58, 10, 6, 8, 14, 18, 0, 13, 54, -19, 54, 19, 33, -41, -28, 40,
1572 57, -7, -40, -4, 7, -40, -3, 1, 27, 25, -5, -12, -23, 44, 12, -27, 5, -36, -12, -12,
1573 18, -13, 28, -44, 17, 13, 30, 26, -12, 10, -15, 52, 29, -47, -5, -42, 6, -12, -21, -29,
1574 0, -5, -37, -15, 6, 55, -8, -10, -18, 21, 9, -14, -24, 29, 19, 7, 5, -4, 13, 8, -43,
1575 -58, 22, 16, -66, 14, -9, -17, -13, 72, -35, -6, -23, -3, 22, -1, -15, -2, -27, -7, -6,
1576 -2, -21, 13, -31, -24, 28, 41, 16, 41, 32, -27, 30, -16, 10, 8, 12, -42, 0, -21, -4,
1577 -21, -28, -25, -32, 41, -41, 82, -3, -9, -13, 20, 26, 36, -25, 4, 6, 17, -35, 7, 2, 4,
1578 -33, 52, 37, 48, -28, -30, 18, 34, -54, -39, 45, -11, -3, 32, -27, 2, -12, 5, 13, -3,
1579 27, -19, -37, 8, -28, -15, 39, 2, -36, -40, -27, -1, 50, 21, 6, -8, 13, 35, 6, -18, 19,
1580 -20, -69, 16, 12, 33, 9, -21, -24, -27, 29, 34, 0, -5, -15, 31, -2, -18, -59, 20, -27,
1581 -50, -29, -46, 48, -3, 48, 3, 37, 11, 0, -1, -14, 16, 25, -35, -10, -47, -25, -2, -10,
1582 -23, 43, 10, -27, -52, -29, 43, 45, 34, -1, -61, 35, 13, -17, -53, -1, -37, -12, -12,
1583 -21, -4, 21, 3, -39, -22, 30, 9, 20, -60, -7, -26, -11, -60, 4, 22, -39, 16, 22, 44, 6,
1584 43, 6, -11, 20, 21, -25, 26, -26, -13, -48, 9, 15, -33, 1, -34, 0, 0, -2, -24, 14, -28,
1585 -36, -20, 3, 56, -8, 4, 27, -30, -5, 29, 12, 42, 31, -2, 23, -12, 18, 36, -13, 12, 31,
1586 -13, -11, 9, 6, -6, 31, -11, -11, -3, -13, 40, 68, -63, -27, -45, 7, -17, 29, 8, 11, 1,
1587 -12, -24, 13, 76, -13, -43, -5, -14, 7, 32, 17, -33, 28, -34, -12, -3, 30,
1588 ],
1589 [
1590 17, -17, -39, -70, 26, -3, -35, 27, 5, 34, 4, 5, 46, -9, -13, -14, -45, 10, 46, -34,
1591 39, 6, -52, -26, -24, 54, 77, -9, 10, 22, 21, 13, -19, 0, -10, -41, -26, -18, 40, -23,
1592 52, 30, -32, -2, 19, 52, 17, 2, -12, -35, -15, -33, 19, -10, 1, 5, -23, 32, -63, -35,
1593 35, 16, 2, 7, 4, 28, 40, 46, -21, -35, -2, -39, 1, 11, 15, 36, -40, -20, 20, -36, 0, 6,
1594 31, 31, -1, -9, -23, 5, -38, -16, 16, 7, -14, -31, 0, -27, 38, 8, -44, -33, -34, -39,
1595 -27, 11, -15, -22, 2, -42, -11, -2, -25, -1, -11, 22, -1, -17, -32, -14, 7, -33, 11,
1596 -8, -52, -52, -16, -31, 4, -11, 12, 4, -7, 45, -24, -1, -41, -18, -11, 37, -26, 18, 14,
1597 8, -22, 59, 3, -3, -20, -41, 43, -39, -8, -16, -14, -26, -41, -32, -34, -6, 46, -5, 50,
1598 13, 9, -10, 28, -32, -10, 8, 14, 33, 21, -79, -75, 18, -43, 3, -40, 6, -37, -7, 18,
1599 -17, 20, 23, -23, -13, -20, -13, 55, 35, 6, -3, 21, 29, 19, 19, 20, -8, -19, -2, 3, 4,
1600 -35, 12, 5, -9, 29, 6, -41, 22, 20, 35, -8, 19, 36, 16, -30, 8, -50, 34, -43, 30, 12,
1601 -23, -4, -15, 20, -41, -15, 30, 8, -3, 17, -7, 53, -1, -7, 2, 30, 4, -13, -26, -16, 45,
1602 64, 31, 0, 7, 7, -29, -66, -15, 2, 29, -33, 4, -10, -22, 38, 20, -48, 50, -35, 12, 46,
1603 26, -20, -5, -2, -27, -32, 4, 2, -19, 18, -46, 14, 49, -20, 22, 3, 38, -6, -9, -7, 7,
1604 -8, -17, -36, -4, -9, 40, 42, -15, -22, -35, 12, 78, -3, -51, 0, 20, -41, -55, -43, 35,
1605 -10, -34, 9, 23, 41, -8, -7, -21, 43, -35, -3, -16, 45, -4, -26, -16, 17, -4, 47, -11,
1606 15, 18, -17, -4, 11, -31, -32, -47, 15, 6, -16, 33, -28, 0, -1, -12, 16, 60, -25, -15,
1607 9, 22, -20, 10, 17, -45, -28, 45, 29, -39, -19, 12, 28, 7, 27, -3, 8, -33, -23, 7, 49,
1608 -31, -12, -13, 51, 32, 55, -26, 6, -37, -29, 7, -28, -21, 23, -14, 3, -21, 0, 21, 2,
1609 58, 3, 1, 2, -26, 49, 61, 2, -7, -8, 20, -76, -25, 2, -16, -9, -73, -37, 1, 23, -21,
1610 -23, -25, 17, 23, 56, 23, 21, 2, -40, -15, 1, -18, 29, -25, -17, 0, -28, -5, 19, 26,
1611 -34, -1, 17, 27, 20, 2, 33, 8, -13, -29, -29, 28, 0, -4, 15, 30, -5, 22, 11, 29, 57,
1612 -29, -24, 21, -49, -14, -76, -53, -13, 32, 12, 0, 12, -5, 21, 33, -21, 34, -8, 26, -22,
1613 20, -13, -4, -40, 47, -32, 5, 21, -44, 39, -7, -10, -41, -5, 19, 26, 42, 15, -42, 67,
1614 15, -30, -22, -1, -25, -3, -20, -9, 42, 30, -2, -20, -31, -24, -24, 7, 3, 0, 48, -11,
1615 43, -6, -14,
1616 ],
1617 ],
1618 [
1619 [
1620 -5, -1, -2, 2, 0, -3, -1, 0, 6, 4, -3, -6, 2, 0, 1, 2, 8, 2, 3, -1, -2, -3, -6, 6, -6,
1621 -4, -4, 2, 3, -1, 6, -6, -1, 6, -3, -5, 7, -2, -1, 3, 1, -2, -1, -2, -8, 6, 1, 4, 1, 7,
1622 5, -5, 2, 2, -5, -1, -2, -5, -2, -2, -4, -1, 3, -1, -3, 1, 3, 2, -2, 3, 4, 1, -1, 1, 1,
1623 -1, 4, 3, 3, 4, -4, -1, -7, -3, -4, -4, 9, -2, 4, 3, -1, -10, -11, 4, 1, -2, 5, -2, 4,
1624 0, 3, -4, -2, -1, -1, -1, 4, -4, -8, -6, -2, 0, 1, 0, 8, 6, 2, -12, -5, -3, 2, -6, -1,
1625 -5, 0, 0, -1, 1, 0, 2, 5, -3, 0, -4, -1, -4, -6, -5, -3, 1, 4, -2, 6, -2, 0, -3, 3,
1626 -10, 1, -3, -4, -1, 1, 1, 1, -1, -1, 6, -2, 1, 3, 0, -1, 3, 6, 2, 0, -7, 5, 5, -6, 1,
1627 5, -4, -2, -3, 0, 1, 0, -3, -4, 1, 6, -4, -1, -3, 7, 8, 2, -3, 0, 3, 3, -3, -1, 3, -1,
1628 -5, -1, 2, 2, -4, 0, -3, 5, -2, -4, 7, -2, 2, 4, -2, -1, 3, -1, 11, -6, 1, -3, 5, 1,
1629 -5, 3, 1, -2, 0, 2, 2, -5, -2, -5, -2, -4, -4, 4, 4, 2, 5, -4, 0, -3, -2, -1, 1, -4, 0,
1630 3, -6, 2, -2, -9, 4, -2, 7, 6, -2, 6, -5, 2, -9, 4, -3, 12, 6, -1, 3, 2, -2, 2, 4, -3,
1631 -4, -3, 2, -2, 0, 2, -2, 10, 0, 6, -7, 3, 3, -4, 3, 5, -4, 6, -2, -2, 1, 3, -7, 2, -2,
1632 -3, 6, 2, 2, 2, 6, -2, 1, -4, 7, 5, 3, 6, 2, -2, -3, -3, 3, 3, -5, 2, -2, 4, 1, -8, 2,
1633 2, 1, -2, -6, -6, 2, 1, -1, -2, 2, -4, -5, 0, 2, 10, 0, 2, 2, 1, 4, -6, -3, -2, -2, 0,
1634 0, -7, 5, -1, 3, -2, -1, 1, -2, 1, 6, 1, -1, 6, 6, 1, 3, 1, -4, 3, -6, -8, -2, -3, 4,
1635 -1, 1, 4, 8, -4, -3, 4, -2, 0, -2, -2, 2, -4, -5, 9, -9, 0, 4, -6, 2, 0, 0, -3, -2, 1,
1636 -2, -6, -6, 3, 2, -1, -9, 0, 11, -7, -3, -6, 0, 0, 1, 2, -3, 1, -6, 3, -3, 3, 4, 1, -2,
1637 1, 4, -2, -2, -3, 4, -1, 0, 0, 2, 2, 5, -3, -5, -2, 1, -6, -8, 5, 3, 4, -1, -3, -2, 2,
1638 5, -1, -1, 1, 1, 6, -5, 5, 2, -1, -2, -1, 0, -3, -4, 11, 1, -5, -2, 8, -5, 2, 4, -6, 1,
1639 7, 5, 0, -3, -2, -2, -5, -5, -1, -4, 0, 0, -2, -1, -1, -3, 3, -2, -8, 1, -3, 1, 0, 3,
1640 5, 9, -7, 2, -4, -2, 3, 4, 1, -3, 6, -2, -1, -1, -3, 0,
1641 ],
1642 [
1643 0, -3, -3, 0, -6, 1, 1, -5, 3, 3, 4, -8, 1, 5, -9, 3, -5, -7, -4, 5, -4, 4, 2, 0, 3, 3,
1644 2, -3, 8, -6, -5, -1, 2, 0, 0, 0, -3, 0, 1, -1, -7, 7, 2, 0, -2, -2, -1, -2, -3, 0, 1,
1645 1, -2, -11, -5, 6, -2, 2, -6, 6, 0, -3, 4, 3, 2, 0, -1, 5, -6, -4, 7, 3, 1, 7, 2, 1, 3,
1646 5, 6, 3, 6, 3, 0, -7, 0, 1, -5, -7, 4, -8, -4, 3, 4, -1, 1, 0, 3, -7, 5, 1, 4, -6, 2,
1647 0, -2, 0, -1, -4, 6, 4, 2, 7, 6, -5, 2, 7, 0, 3, -2, 4, 6, 3, 9, 0, 3, -1, 2, -3, -2,
1648 6, -7, -3, 3, -2, -1, -3, 2, 2, 4, 2, -6, 3, -2, -5, -1, 0, 5, -1, -8, 5, 1, 2, -2, 2,
1649 2, -2, 0, 1, 8, -1, 3, -1, 6, -5, -7, -4, 5, -3, 0, 5, 5, -6, -1, -4, 6, -8, 4, 3, 3,
1650 3, 4, 5, -1, -1, 0, -2, 4, 11, 2, 0, 6, -11, -4, 6, 12, -1, 7, 4, -6, 1, 4, 1, 6, 1,
1651 -2, 0, 2, -3, -2, 1, 0, -2, -3, -8, 4, -1, 0, 0, 3, -2, 4, -2, 0, -1, 7, 0, 0, -1, 2,
1652 -4, 2, 3, 5, 0, 8, 0, -4, -7, -3, 5, -7, -4, -2, -3, 5, 8, 6, 3, 1, -2, 1, 6, -1, -7,
1653 5, 1, -8, -1, -3, 1, -3, -1, 4, 4, -1, -4, -5, -2, -1, -7, -3, -4, 5, -2, 1, 2, 6, 5,
1654 6, -1, 4, -2, -2, -1, 0, 0, 4, -1, 1, -1, 2, 0, -1, -3, -5, 2, -4, -6, -2, 4, -8, -4,
1655 -2, 1, -2, -2, -2, 1, 2, 0, -5, -3, 0, 4, -2, 3, -13, -11, -1, -2, 1, 3, 7, 0, 1, 4, 3,
1656 -1, -3, -1, 3, 7, -3, -5, 2, 2, 0, 1, -1, 1, 3, -2, 6, -3, -1, -3, -6, 5, -7, -6, 4,
1657 -3, -4, 9, -3, -4, 7, 0, -3, 2, -3, -9, -3, 3, -7, 0, -2, -2, 1, -3, 0, -2, 1, 1, 10,
1658 5, -3, -6, 6, -5, -3, 0, 1, -4, -2, -6, -2, 2, -6, -1, -7, 4, 2, -2, 4, -2, -6, 5, -1,
1659 8, -1, -1, 3, 0, -5, 0, -5, 2, 3, 9, -1, -6, 1, 0, 6, 1, -2, 3, 2, 7, -1, 0, 4, 6, 0,
1660 -13, 0, 3, -2, 9, 5, 2, -2, 3, -1, -4, 6, 0, 4, -2, -3, -3, 0, -2, 1, -3, -3, -5, 0,
1661 -2, -3, 6, 0, -2, -3, 4, 1, -2, 0, -2, -2, 0, 5, -5, 0, 2, 6, 5, -1, 1, 2, 1, -5, -7,
1662 -7, -4, -1, 4, 6, -4, 0, 3, -2, 2, 0, 4, 2, -7, 2, 9, -4, -3, 1, 3, 4, -9, 7, 2, -3,
1663 -5, -6, -4, 2, 5, 3, 3, 2, -2, 0, 2, -1, -3,
1664 ],
1665 [
1666 19, 12, -12, -25, -8, -4, -9, 1, -24, 62, 19, 18, -7, 0, -38, 9, -33, -25, 49, 1, 77,
1667 2, 16, 7, -51, 29, -42, 13, 9, -13, -22, -13, 50, -3, -53, 54, -15, 22, -69, -18, -12,
1668 -3, 27, -5, -11, 17, -43, 39, 10, -14, 33, -13, 56, -16, 14, 15, -34, -8, 21, 15, -11,
1669 -7, 42, 23, 16, 8, -25, -5, -45, 20, -3, 20, 1, 8, -1, 11, -9, -36, 42, 26, 47, -33,
1670 -4, 58, 11, -4, -71, -62, 9, 27, -33, 25, 21, 79, 34, 20, -57, -2, 30, -7, -22, 58, 4,
1671 43, 33, 9, 3, -63, -15, -9, 24, 8, -26, 4, -18, 6, -48, 18, -25, 27, 8, 28, -18, 19,
1672 -8, 25, -15, 15, 32, -36, 24, -45, 7, 12, -13, 17, 36, -30, 29, -47, -53, 19, 16, -5,
1673 -3, 60, 12, 0, -44, -28, -21, -48, -31, -12, 60, 59, -11, -31, 45, -29, -35, 13, -11,
1674 -5, -20, -27, -8, 5, -10, -20, -11, 50, 44, -9, 0, 49, -1, 22, -49, -13, 0, 28, -40,
1675 -43, 18, -9, 27, -34, -1, -33, 5, 34, -1, -9, 31, -18, -8, 5, -23, -11, -30, 45, -16,
1676 -18, 13, -2, -40, 68, 28, -44, 27, 9, 8, -7, -24, 39, -2, -14, 19, 27, 6, 4, -32, -41,
1677 14, 8, -28, 49, -35, 31, 43, -44, -19, -17, -62, -6, -3, -2, 40, -18, -28, 32, -34,
1678 -13, -9, -37, 25, -12, 0, -13, -4, 8, 32, 16, -10, -38, -17, 8, 18, -2, -43, -24, 11,
1679 -25, -26, 23, 22, 30, 54, -10, 2, 0, -11, -42, -3, -12, -17, -5, 51, -20, 14, -17, 4,
1680 -31, -5, 41, -44, -6, 12, -51, 35, 31, 13, 37, -21, 18, -8, -33, 24, -69, -8, -17, 18,
1681 12, 1, -6, -15, 31, 23, -25, 35, -34, 32, 11, -73, 4, 4, 2, 47, -24, 12, 8, 3, -29, 47,
1682 -24, -57, -41, 53, 13, -10, -26, 20, 8, 35, -12, 4, 23, 17, 14, -24, -24, 55, -10, 16,
1683 -23, -36, -40, -8, -14, 14, 2, -5, -19, 38, -52, 27, -18, -3, 46, -21, 29, 48, 5, 36,
1684 -12, -3, -6, 18, 28, -4, -21, -52, 44, -41, 12, -20, -32, 68, 4, -1, 3, -30, 12, 29,
1685 -14, -13, 17, 11, -9, 8, 43, 9, 33, -9, 21, -35, 5, -30, -10, 21, 28, 27, 11, 49, -24,
1686 33, 6, -22, 6, -1, -48, 7, 31, 65, -42, 12, 2, -18, 25, 5, -43, 13, -25, -16, 31, -22,
1687 -6, 45, 33, -11, -10, 60, -3, 9, 2, 27, -16, -43, -23, -7, -26, 38, -48, 8, 43, -15,
1688 -2, -3, 9, 36, -7, -20, 32, 0, 0, 4, -5, 15, 12, 14, -9, -6, -12, -39, -12, 3, 18, -9,
1689 -1, 58, -1, 14, -53, -22, 22, 14, 27, -16, 17, 2, -4, -6, -36, -31, 39, 15, 16, 30, 6,
1690 7, -37, -6, -63, -30, -20, -22, 1, 18, 1, 13, -27, 9, 42, -3, 25, 10, 10, 15, -35, 6,
1691 20,
1692 ],
1693 [
1694 -48, -19, -27, 23, -36, -8, 0, 54, -6, -27, 5, 12, 0, -9, 32, -4, -14, 9, 42, -17, -34,
1695 -22, -34, 15, -37, 32, 17, 14, 29, 12, 5, 10, -47, -7, 26, -19, 7, 21, -22, -26, -12,
1696 -9, 4, 29, 58, 22, -16, -2, -19, -24, -34, 16, 34, -48, -31, 0, 14, -11, -79, 8, -5, 0,
1697 -5, -24, 31, -21, -9, -24, -27, -7, -9, 2, 19, -4, -38, 42, -3, -22, -3, -1, -7, -7,
1698 -21, 52, -13, -3, -13, 29, 32, -13, -2, 16, -29, 55, -10, -38, -35, 11, -21, -52, 26,
1699 10, -22, 16, -8, 6, -1, -53, -21, 33, -30, -34, 25, 24, 5, -7, -23, 25, -4, 6, 21, 31,
1700 -2, -15, 13, 11, -33, 44, 41, -64, -26, 34, -44, -17, -12, 58, -6, -1, 19, 8, 21, 18,
1701 -21, -2, -30, -50, -27, 8, -44, -44, 4, 24, 5, -9, -34, 18, -5, -16, 5, -17, -23, 15,
1702 -11, 19, 4, 47, 15, -29, -3, 18, 3, 13, -5, 25, -29, -2, 9, -22, 38, 6, 7, -11, -70,
1703 -3, -7, 3, 6, 0, 23, 23, -15, 6, 5, 13, -14, -2, -3, 58, 23, 21, 11, 41, 5, -6, -40, 6,
1704 -39, -16, 6, -14, 22, -37, -22, 18, -30, 17, -16, 59, 0, -14, 25, -60, -23, 26, -37,
1705 50, -31, 19, -12, 6, 81, -21, -20, 24, -23, -7, 16, 34, 3, -49, -33, 47, 15, -11, 47,
1706 -34, 8, 27, 24, -11, -6, 24, -14, -23, 17, -16, -12, -14, 20, -31, 7, -25, -21, 44, 42,
1707 -13, 11, 10, 5, -21, 25, 20, -13, -7, 12, 41, 3, 17, 23, -30, -35, -25, 28, -13, -7,
1708 43, 8, 55, 54, 2, 18, 28, -33, 26, 38, -32, -27, -67, -25, 4, -2, -3, -8, 9, 18, 11, 7,
1709 14, 23, 52, 21, -37, 8, -1, 47, 10, 21, -32, 3, 10, 4, 2, 36, -20, 11, 2, 68, 20, -15,
1710 49, 16, -31, -10, -12, 5, 22, -2, -24, 6, 4, 49, -14, 1, -28, 14, -9, 12, -13, 14, -49,
1711 6, 25, 7, -2, 14, -11, -8, -7, 36, 13, 39, 6, 29, 10, -23, 27, -21, -12, -2, -20, 35,
1712 4, 7, 14, -3, -59, 14, -11, -11, -9, 15, 25, -10, 14, 8, -31, 42, -32, -3, -18, -19,
1713 -33, 7, -2, -26, -26, 74, 16, 8, 56, 5, 14, 55, -44, 38, -20, -20, -18, -19, 52, -79,
1714 -35, 1, -43, 31, 51, -27, 21, 12, -21, -50, 37, 34, -20, 35, -18, 11, -65, 18, -19, -7,
1715 13, 10, -70, 9, 27, 21, 0, 33, 12, -26, -3, 16, -8, 21, 9, 17, -61, 10, -4, 25, 26, -7,
1716 39, 8, -43, 15, -1, -11, -4, -15, -2, -23, -73, 13, -3, -4, 2, 10, 30, -14, 2, -15, 10,
1717 -22, 19, -42, 6, -42, -22, 6, -5, 12, 13, -7, -11, -18, 17, -16, 5, 2, -29, 48, -7, 19,
1718 2, -47, -21, 6, -33, 26, -16, -5, -44, -25, 6, -43, -54, 27, 38, 11, -10,
1719 ],
1720 ],
1721 [
1722 [
1723 1, 5, -5, 1, -7, 1, 8, 0, -6, 0, 2, -2, -2, -2, 0, -4, -4, -8, -6, 4, -2, 0, 2, 4, -4,
1724 -5, 4, -3, -5, 2, -2, 10, 1, -2, 1, -2, 3, 6, -5, 6, 4, -1, 0, 4, 2, 1, -9, 0, 8, -6,
1725 1, -7, -2, 2, -6, 0, -7, 0, -8, 2, 7, -4, 5, 2, -1, 0, -9, -6, 0, 0, 4, 3, 3, 3, 4, -4,
1726 3, 1, -1, 0, -2, -2, 5, -6, -1, 4, -2, -5, 1, -1, -2, -1, 2, -1, 0, 0, 3, -2, -1, 0,
1727 -2, -3, -3, 1, -4, -5, -2, 0, 1, 3, 3, 0, -10, 7, 4, 4, 0, 7, -2, 1, -4, 7, 1, 7, 0, 3,
1728 1, -1, -1, 1, -3, -2, -4, 0, 3, 0, -5, -1, -5, 0, -2, 1, -2, -6, 1, -3, -4, 0, -1, 8,
1729 4, 2, 1, 8, -1, 2, 4, 7, 0, 5, 5, -3, -3, 5, -1, -3, 1, -3, -1, -4, -2, 4, 4, -1, 5, 1,
1730 3, -4, -6, -6, -2, -1, -12, 0, 0, 9, -1, -1, 4, -6, 0, -2, -2, 4, -2, 1, 1, 2, -2, 5,
1731 1, -8, 4, 2, -2, 6, -5, -2, 3, 2, -6, 4, 0, -1, -2, 5, 0, -2, -3, 7, -2, 4, 2, 1, 10,
1732 0, 5, -4, -7, 1, 3, -5, 5, 3, 6, -1, -3, -7, 0, -8, -3, -4, -9, 0, -1, -6, -2, -3, 0,
1733 -3, 6, 8, 2, 1, -6, -4, 4, -2, -1, 1, 4, 3, 0, 1, 3, -4, 0, -7, -1, 2, -1, -1, -1, -6,
1734 0, 2, 2, -4, 3, -1, 4, 7, -1, 2, 2, -6, 0, 0, -9, 1, -4, 0, 0, 3, 2, 0, -3, -3, 2, 4,
1735 6, -6, -2, 3, 5, -3, 5, -1, -1, 1, 3, 0, -4, -1, 1, 3, 3, 0, 4, -2, -1, 5, 6, 5, -4, 1,
1736 3, -1, 7, 0, 1, -5, 1, 3, -4, -3, 4, -9, -3, -3, -7, -3, 6, -3, 3, -1, 2, 7, 2, -1, 3,
1737 4, 3, 2, -7, 7, -10, -2, 6, 8, 1, 2, -1, -3, -4, 1, 0, 0, -2, -1, 0, 0, -2, 7, 3, -2,
1738 5, -3, 3, 0, 4, 0, 3, -3, 4, -2, 3, -4, 2, -2, -6, -4, -6, 3, -4, -6, 0, -7, 5, -2, -6,
1739 -4, -1, 5, -5, 2, 1, 2, -7, -3, -3, -3, 0, -3, -1, 0, 3, -8, -1, 0, -1, 2, 12, -1, -2,
1740 0, 3, -8, -5, -1, 0, -3, -2, -3, 4, 3, -2, -2, 3, 6, -1, 6, 3, -5, -1, 1, -3, -9, 2, 4,
1741 -1, -2, -3, 2, 7, 2, -3, 2, -4, -5, 6, 1, -3, -5, -2, -2, 4, 4, 3, -2, -3, 3, 2, -2, 1,
1742 4, 3, -6, 3, -1, 7, 0, 6, 3, 4, 4, 0, 3, 0, -1, 1, -1, 2, -8, -8, 0, 4, 4, -2, 3, -2,
1743 -2, 1, -3, -15, 0, -1, -1, 3, -5, -10, 2,
1744 ],
1745 [
1746 8, -8, 1, -6, 7, -1, 5, 4, -2, 5, -5, 8, 4, -3, 2, -5, 4, 1, -1, -1, -1, -6, -4, -4, 0,
1747 -1, -9, -2, 4, -4, -4, 1, 6, 3, 1, -3, 0, 2, 4, 7, 0, 5, -2, 0, 0, 0, 2, -5, -3, -4,
1748 11, 1, 4, 5, -2, 0, -1, -4, -1, 2, 2, -2, 2, 6, 4, 3, 3, 0, 2, 5, -6, 5, 9, -4, -6, 3,
1749 -4, 0, 0, -5, 11, -5, 4, -1, 3, 8, 0, -8, -4, -8, -5, -4, 0, 1, -8, -1, 10, 7, -3, 7,
1750 -2, 2, 2, 0, 6, -4, -4, 1, 3, -8, 1, 5, 1, 5, -3, 0, 4, -3, -3, 3, -2, -5, -4, -1, -1,
1751 -1, -1, -6, 9, 2, 1, 2, 1, 4, 0, 4, 0, 6, 0, 5, -3, 2, -1, 2, 8, 5, -5, -1, 5, -3, -9,
1752 1, 5, 0, 0, 1, 4, -5, -2, -2, 2, -1, -1, 1, 8, 1, -1, 2, 7, 4, 0, 0, -4, -3, 2, 1, 6,
1753 7, -1, -7, -2, 2, -7, -4, 1, -1, 5, 2, 1, -1, 0, -4, 11, 3, -2, -1, -4, 0, 0, -4, -3,
1754 0, 2, -2, 4, 8, -3, 1, 6, -2, -2, -1, -2, -4, -6, -1, 1, 1, -4, 1, -2, -3, 2, 4, 5, -8,
1755 0, 2, 9, 0, 1, 3, 0, 3, 0, 0, 2, -1, 2, 1, -1, 0, -1, 4, 1, 3, 3, 4, 0, -4, 4, 4, -2,
1756 2, 3, 7, 5, -8, -2, -9, 1, 1, -6, 7, 5, -1, -1, -8, -3, -2, 4, -2, -4, 1, 5, 3, 2, -2,
1757 6, 1, -7, 1, 0, -1, -7, -5, 3, -2, 1, -2, 1, 2, -3, 5, 0, -4, -2, 7, 5, -1, 0, -2, 0,
1758 3, -7, -6, -7, -5, -1, 8, 0, -8, 2, 4, -3, -2, -2, -2, -8, 4, 1, -1, 3, -5, 9, -1, 2,
1759 -3, -1, 3, -3, 1, -5, -7, -2, 1, -1, -1, 4, -6, -6, 7, -2, -2, 2, 6, 1, 3, -3, -4, 4,
1760 4, -3, -4, -1, -6, -2, -6, -3, -1, -2, 7, -2, 2, 4, 4, 3, -1, -1, 4, 3, 1, 5, -1, -4,
1761 -4, 2, -5, 2, 2, 3, 5, -2, -3, -3, -4, 7, 0, 6, 2, 2, -2, -9, -2, 0, 4, -3, -7, -2, 5,
1762 0, 1, 1, 3, -3, -2, 1, -5, -2, 3, 1, -1, -2, -1, 3, -6, 0, 4, 8, 8, -7, -6, 2, -7, -3,
1763 5, 9, 1, -3, -1, 5, -3, 5, -2, 3, 2, 5, 4, 4, 6, 0, 2, -4, 0, -3, 3, 2, 10, 1, 1, -1,
1764 -1, 3, -1, 2, -1, -3, 2, -1, 6, -8, -5, -9, 4, -8, 1, 1, -2, 0, 5, 1, 5, 1, -1, 2, 4,
1765 -2, -6, 4, -3, -3, -1, 0, -7, -1, -4, -3, 3, -1, -1, -2, 2, -4, 1, 1, 1, 1, -7, -2, 4,
1766 3, -6, 4, -12, -1, 1, -1, 9, 2, -5, -2, 1,
1767 ],
1768 [
1769 6, -22, 16, 16, -37, -17, 21, 12, -27, -28, -35, -16, -9, 33, 30, 11, -51, -4, -2, -17,
1770 -27, 21, 4, -1, 64, -4, -56, 3, 8, -8, 8, -11, 43, -5, 45, 4, -6, 11, 32, -11, 28, -37,
1771 -29, 11, -43, -36, -3, -29, -4, -46, -17, 19, -49, -9, 18, 2, 1, -42, -6, -4, -27, 5,
1772 -20, -18, -22, 33, -42, -48, -1, 34, -8, 17, -6, 17, 4, -51, -17, 27, -1, -27, -2, -2,
1773 1, 28, 12, 49, -35, 9, 16, -23, 27, 4, -8, 34, -46, 30, 11, 5, -30, 4, -45, 10, -57,
1774 -31, -42, -50, -51, -11, -14, 27, 12, 17, -4, 18, 15, -23, 25, 18, 16, 12, 0, 0, 61,
1775 35, 48, -5, 11, -13, -1, -24, 55, -6, 19, -2, 14, -16, -15, -20, -25, -64, 44, -9, 2,
1776 22, -35, 33, 46, 28, 21, 19, -11, 41, -5, 34, -29, 0, -28, -27, 6, 22, -17, 22, -6, 45,
1777 18, 6, -6, -1, -19, 12, -31, 16, 12, -24, 10, 9, 35, 3, -30, -15, -20, -16, 6, -1, -19,
1778 -37, -6, -5, 35, -9, -33, 16, 0, 27, 30, 70, 3, 4, -9, -19, 43, 36, -28, -5, -34, -2,
1779 6, -17, -4, -22, 29, -16, 25, 9, -15, -56, -10, -10, -38, -10, 48, -4, 16, -30, -17, 0,
1780 -14, -37, 0, -22, -27, -45, -51, 23, -21, 17, -28, -7, -24, 9, -8, 11, 20, 18, -23, 4,
1781 6, 15, -19, 24, -70, 3, -24, 26, -33, -9, -25, 10, 35, 35, -52, 21, -10, -34, 8, 19,
1782 -43, 17, -47, -7, 20, -5, -2, -3, -1, 39, 16, -9, -7, -28, 18, -14, -16, 39, 16, -5,
1783 10, 30, 30, 5, 73, 19, 21, -52, -42, 41, -1, 12, 4, 29, -22, 47, 15, 14, -1, -20, -4,
1784 32, -9, 10, -9, -2, -13, 14, 13, -3, 0, 4, 23, 50, 17, 13, -4, -15, 29, -15, -15, -10,
1785 33, 16, -5, 17, 1, 16, -59, 55, -19, -14, 16, -14, -30, 26, -18, 31, -2, -12, -21, -9,
1786 6, 14, 20, 34, -10, -18, 14, -16, 14, -12, -10, 44, -2, 13, 16, -30, 0, 11, -27, -8,
1787 34, -5, 13, -17, -11, -36, 8, -69, -11, -3, -20, -1, 21, -16, 43, -40, 13, -11, -36, 0,
1788 -40, 1, 4, -11, 21, 18, -55, -12, -16, -35, 9, 33, 10, 28, -12, 46, -2, -1, -27, -24,
1789 20, 18, 22, 13, -17, 13, 14, 25, -1, 16, -8, -12, 32, -31, 51, -59, 7, -33, -8, 4, 3,
1790 37, 48, -16, 21, 7, 7, -39, -39, 19, 3, 27, 25, 55, -18, -25, -35, -3, 22, -2, -21, 25,
1791 13, 18, 2, 42, 5, 10, 47, -15, 27, 7, -5, -14, 5, 7, 9, -39, 10, -21, -30, -15, -35,
1792 29, 4, -15, 17, 13, -39, -23, -6, 41, -11, 19, -26, 37, -51, -15, -20, -5, -16, 37, 26,
1793 46, 13, -22, -15, -22, -63, -7, -1, 37, 6, -43, -8, 9, 5, 14, 7, -44, -11, -4, -15,
1794 -24,
1795 ],
1796 [
1797 31, 39, -25, -1, 13, -2, -21, -10, 22, 2, -19, 3, 53, -27, -7, -11, -22, 25, -28, -1,
1798 17, 34, -37, 23, 4, -1, 3, -33, 25, -1, -2, 4, -8, 6, 21, 39, 49, -1, -26, 22, -7, 39,
1799 26, -16, -53, -16, -24, -26, 26, 11, -24, -9, 12, 17, 20, 35, 11, -5, 29, -22, -25, 1,
1800 -44, -46, -14, 15, -24, -23, 35, 34, 47, -12, -1, 19, 2, -25, 28, 19, 20, -27, 5, 24,
1801 -31, -23, -3, 22, -23, 46, 51, 30, 7, -14, -5, -5, -5, 19, -22, 1, 30, 15, 61, 4, 29,
1802 31, 9, 3, 10, 10, -50, 4, 6, 28, -23, -26, -31, -1, 10, 14, 43, -39, 9, 23, 27, 3, -15,
1803 8, -16, -26, -9, -11, -8, 0, -50, -28, -8, -25, 63, 28, -13, 22, 17, -28, -36, 15, 20,
1804 -2, -47, 14, 29, -1, -2, -15, 22, -32, -44, -46, 9, -38, -39, -11, 9, -7, 11, 21, 15,
1805 -46, 28, 27, 40, 17, 18, -31, -46, -16, -32, -2, -35, -47, 17, -18, 20, -15, -21, 15,
1806 24, 53, -18, -5, 17, 34, -4, 34, -27, 9, -42, 4, -12, -29, -58, -18, 64, 12, -24, 40,
1807 23, -2, -7, 2, 25, 1, 12, 1, 23, 16, -43, 8, 27, 12, -13, 22, -44, 0, 10, -21, 0, -18,
1808 38, -11, 8, -37, 14, -45, -1, -38, 2, 43, 19, 30, 19, -4, -1, 30, -4, -23, 8, -6, -7,
1809 15, 55, 35, -65, -25, -20, 11, 9, 13, -2, 20, -43, 28, -69, 39, -6, -26, -6, 6, -18,
1810 21, 45, 11, 18, 9, -9, 33, 9, -22, -17, -46, 21, 18, 52, -10, -16, -57, -25, -6, -18,
1811 5, -28, 20, -1, -34, -3, -18, -8, 17, 12, -62, -5, -52, 9, 15, -22, -22, -44, 10, -17,
1812 -29, 8, -35, 21, 20, 32, -43, 24, -15, -2, -19, -39, -62, -14, -17, -34, 7, -31, -28,
1813 -41, 2, -13, 6, -3, 13, 20, -19, 37, -36, -13, -11, 15, 10, -25, -2, -15, 16, -22, -59,
1814 -23, 36, -10, 16, 32, -36, -63, -18, -9, -25, -22, -47, 12, -3, 13, 34, 59, -40, 47,
1815 -49, -20, -6, 0, 36, -23, -17, -10, 5, 11, -16, 29, -4, 14, 38, 72, -2, 0, -45, 21,
1816 -35, 34, -11, -28, -31, -33, 5, 4, -1, -50, 26, 14, -9, -41, -22, 32, 50, 32, -1, 1,
1817 -22, -1, 37, 19, -7, -7, -34, 24, 13, -24, -34, -60, 24, 3, -22, -4, -3, 25, 5, -22, 4,
1818 -18, -6, 35, -13, -6, 8, 8, 45, 6, 9, 2, -33, -25, 9, 8, -23, -22, 14, 12, 5, -8, -35,
1819 3, 56, 21, 42, -13, 16, 14, -51, -24, -18, -5, -5, 6, -3, 31, -42, -25, -8, 29, 1, -14,
1820 23, 26, 27, -13, -7, 33, 12, -16, -44, -36, -58, -31, -2, -9, 31, -7, -12, 26, 1, -23,
1821 -44, 1, -38, 26, 6, -27, 0, -14, 41, 8, 22, -58, 13, -3, 2, 19, 0, 33, -13, 28, -25,
1822 -1, -33,
1823 ],
1824 ],
1825 [
1826 [
1827 -2, -2, -2, -10, 6, 1, 0, -7, 0, 3, 4, -12, 1, -3, -5, 4, -1, 4, -3, 4, -4, 7, 3, -2,
1828 -4, 2, 2, 0, -1, 1, -2, 0, 0, 11, -3, -4, -3, -6, 5, 1, -1, -5, 4, 6, -2, -3, -1, -2,
1829 3, -2, 0, -1, 1, -2, 9, -7, -3, 0, -2, -6, -5, 0, -3, 0, 6, 5, 5, 3, -5, -1, 12, -3,
1830 -4, -1, 4, -4, 0, 2, -5, -1, -2, 2, 4, 7, 4, 2, 12, 0, -4, 8, 0, 2, 2, 0, 9, 0, -7, 1,
1831 -2, -2, -1, 1, 1, -2, 7, -1, -4, 6, 7, 2, -2, 6, 1, -3, -4, -3, 2, 3, -1, 3, -3, -5,
1832 -6, 2, 1, 8, 5, -2, -1, 3, 6, -7, 0, 2, 9, 1, 0, -3, -3, 4, -4, 2, -1, 2, -2, -2, 1,
1833 -3, 2, -5, 0, 7, 3, 5, -4, -1, -3, -3, -1, -1, 8, 4, 4, -4, -4, -6, -2, 0, 5, -1, 2,
1834 -6, 3, 3, -4, 5, -8, -3, 1, 9, 5, 0, 3, 5, -2, 3, -10, -5, 6, 2, 3, -1, -4, -2, 1, -1,
1835 0, 5, 3, 6, 6, -1, -10, 1, -2, -2, 0, 7, -4, 2, -7, 7, -2, -1, -4, 0, -10, -4, -1, 0,
1836 3, -1, 3, 0, 0, 1, -5, 0, 3, -2, -9, -3, 3, -4, -2, 5, 2, 2, 6, -3, 2, 5, 2, 4, -2, 7,
1837 0, 3, 2, -3, 9, 3, -5, -3, 5, -6, 5, -4, 1, 1, -5, -1, 1, -1, -9, -7, -3, 1, 12, 0, 1,
1838 5, 0, -3, -1, 5, 2, -5, -1, 3, -5, 1, -4, -3, -8, 2, 0, -1, -4, 3, -2, 0, 4, -2, -3,
1839 -4, 3, 8, 3, 8, 5, -2, -1, -1, -3, -4, 0, 2, 1, 3, 7, -3, -1, -4, -3, -7, 1, 0, 5, -1,
1840 -3, 6, -1, -3, 5, -3, 5, -1, 1, -5, -1, -7, 2, 1, -1, 1, -1, 4, 2, 6, 2, -4, -4, -5,
1841 -5, -7, 4, 1, -4, -6, 7, -3, 4, 2, 6, -4, -1, 2, 9, 4, -4, 4, 0, -1, 1, 1, 5, 7, -16,
1842 -3, -2, -2, -1, -1, -2, 4, -1, -5, -1, 0, 7, 3, -5, 4, 7, 6, 8, -5, 2, 3, 2, 0, 1, -6,
1843 -3, -6, 3, -1, 0, 1, -4, 2, -7, 1, -2, 0, 0, 0, -4, 1, -1, -1, 2, -1, 2, -3, -3, -4,
1844 -4, -1, -1, -2, 5, -2, 6, 5, 1, 1, -5, -3, 6, 5, -5, 8, -3, -5, -1, 1, -1, -1, -6, 4,
1845 1, -1, 3, -4, 3, 2, 2, 4, 5, 5, -2, 7, -2, 0, -4, -4, -4, -11, 0, 2, -1, 1, 6, -2, -6,
1846 -1, -2, -3, -2, -5, 0, 1, -2, -3, -3, -3, 4, -4, -4, -2, 1, -4, -1, -7, -5, 1, 6, -4,
1847 1, -4, 1, 2, -2, 4, 10, 4, 1, 0, 3, -4, 4, 4, -6, -3, 4, -5, -1, -7, 2, -4,
1848 ],
1849 [
1850 1, 0, 1, 0, 4, -8, -6, 0, 0, -1, -2, 9, 3, -1, 3, 0, 0, -2, -2, 4, 3, 2, 3, 1, 4, 0,
1851 -5, -1, -6, 1, -3, -6, -3, 3, -6, -1, -1, -4, 2, 2, -4, -5, 4, -6, -2, 4, -4, 4, -1, 0,
1852 -4, -4, 1, 1, -2, 0, -11, 3, -1, 2, 0, 3, -1, 1, -5, -2, -1, -4, 0, 2, 1, -2, -9, 3, 4,
1853 -5, 5, 2, 2, -2, 2, 2, 0, -6, 2, -1, 5, -3, 1, 1, 0, 1, 3, 0, -1, 0, -5, -4, -4, -8,
1854 -7, 1, -2, 4, 0, 1, -3, -5, 4, 3, 2, 1, 0, 0, -2, -7, 4, -3, -4, -4, 0, 3, 1, -9, 2, 0,
1855 -1, 4, 0, 0, -7, 1, -2, 1, 5, 4, 0, 5, 2, -3, -1, 4, 9, -3, 3, -8, 7, 1, 3, 10, -7, 3,
1856 4, 2, 0, -1, 0, 0, 0, -7, 10, -9, 8, 0, -11, -1, 1, -8, -3, 1, -1, -1, 2, 1, 1, -4, 0,
1857 -5, 2, -3, -5, 4, 0, -3, -5, -2, 6, 0, 6, 4, -5, -1, -1, 3, 7, -4, -3, 6, 5, 1, 5, -1,
1858 1, -4, 4, -4, 1, -5, 1, -13, -5, 0, 4, -9, -2, 1, -2, 0, 3, -5, -1, 3, 7, -1, -3, 5, 5,
1859 8, 9, 5, -4, 3, 1, 1, -2, 1, 4, 4, -3, -2, 3, -1, 7, 4, 1, -2, 4, 7, 2, -4, -5, 1, 1,
1860 -2, -5, -3, -4, -2, 1, -5, -2, -3, 0, 0, -3, -3, -2, -1, -9, -1, 1, -4, 5, -4, -1, 3,
1861 1, 2, 5, -3, -4, 0, -1, 4, 5, 4, 0, -1, 9, -4, -5, 0, 0, 2, -3, 6, 5, 2, 0, -8, -1, 10,
1862 -4, 3, 1, -7, 1, -6, 0, -3, 9, 3, 6, -2, 2, -4, 2, 5, -3, 2, 1, -1, 5, 4, 3, -1, -1, 3,
1863 -3, -3, -3, -4, -6, 1, -1, 5, -5, 4, 11, -2, 0, -1, 1, 5, -5, -3, 1, 0, 5, -2, -1, -2,
1864 2, 0, -1, 3, -1, -3, 3, 3, 3, 10, 3, -3, 0, 1, 4, 0, 0, -5, 5, 2, -2, -1, 6, 5, 4, 5,
1865 -2, -3, -1, -5, 1, -2, 3, 0, 2, 2, 4, 0, -5, 4, -2, 5, -4, -1, 7, -2, -2, -1, -4, 1,
1866 -3, 9, -5, -2, 3, -2, -2, 0, 2, -1, -4, 5, -3, -8, 4, -7, -1, -7, 1, 5, -3, 1, 0, 7, 5,
1867 2, 3, 3, -7, 5, 4, 2, 6, 4, 1, -4, -3, -6, 5, -5, 0, 0, -7, 2, -1, 4, 2, -2, 4, 0, 0,
1868 5, 1, 0, 4, -8, 6, 4, 4, 1, -1, 4, 2, 2, 0, 6, 2, 1, 5, 0, 0, -3, -2, -4, 0, 3, -1, 3,
1869 -4, -6, -2, -9, -5, 5, 4, 4, 5, 1, -3, 11, -1, -2, -5, -1, -6, -4, -5, -5, 7, 5, 3, 0,
1870 1, 2, -1, -1, 0, -3, -1, 1,
1871 ],
1872 [
1873 -21, 36, 31, 26, 40, -4, 4, 6, 2, -7, 9, 60, 19, 5, -36, 13, -19, 7, -5, -20, 19, -14,
1874 -17, 24, -8, 14, -51, -4, -4, 2, 1, -26, 53, -10, 0, 30, -11, 1, -5, -15, -52, -2, 16,
1875 0, -7, 13, 28, 18, -18, -30, 38, -5, 33, -8, -15, 5, -66, -28, 7, 36, 20, 21, 1, -27,
1876 -11, -19, 22, -21, 29, 22, -1, 13, -14, 13, -20, -38, -30, -26, 18, -21, 7, -50, 39,
1877 -15, 2, -5, 11, -17, -31, 27, 19, 26, 51, -1, -1, -13, 22, -56, 15, 1, 3, -3, -19, 24,
1878 -51, -9, -7, 5, 1, 8, -13, -15, -4, 33, 61, -12, 24, -26, 5, 14, -35, 63, -9, 12, 46,
1879 -10, -5, 10, -22, -19, 9, 1, 0, 30, 4, 11, 16, -59, -19, 17, 18, 13, 34, -28, 4, -29,
1880 13, -26, -44, 49, 17, -21, -20, -5, -25, -3, -5, 39, -4, 2, -20, 8, 37, 25, 16, -38,
1881 -18, 36, -48, 15, -17, 19, 23, 19, 2, -2, -8, 16, -14, 7, -5, 20, -32, -17, 0, 8, 42,
1882 24, 5, 54, -33, -50, 11, -49, -15, 61, -9, -49, -25, 48, -13, -27, -13, 34, 10, 4, 13,
1883 31, 2, -13, -23, 24, -35, 26, -18, -35, -10, 22, -51, -13, -12, 10, -6, -26, -1, -28,
1884 -46, -34, 2, -7, -1, -29, 42, 15, 25, 29, -5, 9, 46, 10, -39, -39, -22, -3, -48, -19,
1885 -29, -51, 26, -25, 4, 20, -2, 16, -39, -30, 15, -37, 12, -33, -9, 2, -37, -21, 80, -5,
1886 18, -8, -58, -25, 11, 10, 30, -38, 2, 25, 1, -10, 8, 18, -20, -51, -6, -58, 27, 49, 26,
1887 23, 8, 5, -16, 23, 15, 19, -21, -10, 30, -12, 13, -21, 38, -2, -12, -42, 8, 15, 1, 0,
1888 -52, -33, 40, -10, 17, 40, -17, -15, 37, 3, -9, 17, 29, -65, 0, 26, 29, 22, -14, 15,
1889 60, -23, -49, -2, -10, 14, 1, 27, -50, -62, -20, -39, 10, -4, 29, -21, -22, -16, 22,
1890 51, -14, 6, 45, -14, -9, 2, -8, -6, -35, -46, 12, 36, 5, -40, -28, 74, -23, 45, -6, 41,
1891 -25, -58, -50, -30, -36, -27, 22, 43, 16, 44, -35, -26, -38, 9, 9, -16, 27, 36, -7, 25,
1892 47, -37, -15, 42, 20, -19, -4, 19, -46, 12, -105, -16, -16, -60, -31, -19, 20, -3, 27,
1893 -35, 17, 31, -19, -21, -9, 39, 21, 5, 20, -21, -15, -6, -42, -4, 10, -42, 38, 26, -15,
1894 27, -19, -35, 30, 43, -31, -2, -4, 1, -10, 17, 31, 7, 35, 3, 1, 11, -9, -4, 9, -44, 22,
1895 -7, 6, -29, -1, 12, -55, -32, -24, 26, 21, 5, -16, -33, -4, 20, -8, -23, 26, -4, 7, 6,
1896 -21, 10, -26, -7, 11, -6, -14, 16, 20, 3, 61, 14, -68, -5, 4, 4, 16, -46, 40, -15, 11,
1897 31, 23, -12, -19, -68, -4, 5, -9, 2, 15, 16, 34, 36, 26, -29, 20, -68, 37, -16, -6, -5,
1898 ],
1899 [
1900 -10, -46, 68, 27, 11, 24, -26, 19, 2, 11, -2, 29, 40, 14, 13, -3, -20, -15, -4, 30, 44,
1901 26, -18, 12, -27, -20, -17, 44, -21, -31, -53, -39, -43, -45, -8, -31, 5, 72, -27, 27,
1902 -9, 2, 7, -32, -2, -10, 33, 4, 1, 33, -9, 12, 8, 19, 18, 35, -36, 3, -3, -12, -2, -34,
1903 10, -1, -44, -19, -29, 22, 10, 1, 49, -26, 20, 3, 38, 27, -11, 23, 25, 6, 5, -42, -28,
1904 -4, -15, 1, -7, 26, 5, -26, -6, -23, 2, 2, 1, 3, -37, 12, -7, 8, 27, -24, 21, -15, 9,
1905 -4, -6, 34, 10, -14, 33, -13, 8, -14, 2, 14, 11, 3, -13, -24, 15, -36, -16, -18, 19,
1906 -12, 11, 4, 13, 33, 11, 13, -5, 6, -2, 3, 47, 6, 40, -8, -19, 20, -25, 3, -9, -4, -12,
1907 -3, -23, 15, 17, -9, 35, -19, -8, 10, -3, 15, 38, -14, -18, 33, 21, 28, 33, -13, 42,
1908 15, 43, -22, 39, -14, -4, 0, -16, -45, 16, -53, 11, 41, -56, 14, -18, -1, -24, -24, 44,
1909 25, 5, -18, 27, 3, -40, 17, 2, 43, 8, 4, 11, -4, 20, 37, 23, 0, -17, -26, -2, 10, 23,
1910 14, 23, -7, -23, 14, -20, 5, -9, 5, -13, 7, 22, 1, 33, 19, 50, -9, 40, 39, 60, 40, 11,
1911 3, 21, 0, -27, -3, 23, -9, 37, 22, -15, 30, -33, 20, 9, 20, 31, 25, 36, -2, 5, 8, -13,
1912 0, 28, 10, -12, -22, -38, -6, -22, 8, 0, 9, -64, -8, -27, -41, 24, -55, 32, -20, -3,
1913 26, -34, 10, 58, 17, 40, 21, 16, 41, 10, 9, 5, -1, -1, 23, 27, -25, -21, 63, 3, -27,
1914 16, -31, -5, -72, -1, -27, -3, -5, 38, 30, 35, 28, -64, 18, 9, -26, 10, 29, 22, -3, 24,
1915 -29, 36, -11, 4, 55, -5, 8, 9, 17, -32, 16, 10, 47, 23, -15, -18, -23, 3, -38, 71, -3,
1916 3, -17, 44, 18, 23, -23, 8, -40, -25, 4, -40, -32, 12, -13, 61, -29, -9, 43, 26, -47,
1917 2, -33, -23, 8, -17, 12, 29, -5, 33, -3, 10, 49, 38, -23, 15, 50, 7, -26, 27, -23, 9,
1918 17, -14, -37, 37, 4, -5, -8, -6, 33, 16, 24, 51, -36, -5, 13, -10, 16, -9, -15, 27,
1919 -51, 67, -16, 20, 14, -2, 15, -32, -39, -32, -13, -39, 10, -18, -17, 10, 1, -14, 0, 2,
1920 0, -43, -25, -11, -10, 0, 4, -20, -17, -31, 33, 42, 43, 14, 47, -10, -41, 18, -6, -52,
1921 -37, -18, 4, -1, -4, -20, -19, -2, -42, -17, 0, -33, -32, 0, -4, 39, 33, 11, 38, -37,
1922 10, -8, -21, 9, -26, 50, 55, 11, 14, 5, 5, 21, -19, -25, 45, -64, 22, -19, -16, 20, 6,
1923 7, 7, 64, -25, 9, 48, -24, 11, -11, 16, -1, 13, 3, -37, 14, -9, 6, 1, -46, -32, -21,
1924 -40, -10, 7, 5, -36, 13, 44, 8, 1, 17, 3, -34, 39,
1925 ],
1926 ],
1927 [
1928 [
1929 -7, 2, 3, 3, 6, 5, -2, 1, 5, -1, 3, 0, 2, 2, 5, -3, 2, 1, 4, 0, 6, 0, 4, 3, -1, -6, 1,
1930 -2, 0, 1, -3, -7, 2, 2, -1, 2, 6, -5, -6, 3, 0, 8, 3, 3, 8, -1, 1, -13, 0, -1, 4, -7,
1931 -10, -1, -2, 5, 5, 1, 1, -1, 4, -2, -2, 1, 1, -1, 1, 1, -3, 3, 8, 3, -1, 3, -1, 2, 1,
1932 2, 1, 1, -5, 3, 5, 4, 4, 6, -1, 1, 1, -5, -1, 4, -1, 7, 2, -1, -6, 4, -2, 2, 6, 2, 9,
1933 -4, -7, 2, 5, 2, 6, -2, 4, -2, -4, -3, 3, 3, 1, 0, 10, -6, 11, -2, 10, -9, -2, 1, -6,
1934 5, -5, 0, -4, 7, -1, -1, -5, 0, 5, 0, 3, 5, 5, 0, 2, -1, -1, 5, -3, 0, -3, 2, -5, 2, 7,
1935 5, -4, -4, -3, 9, 0, 0, -2, -1, -1, 4, 2, -1, 0, -1, 3, -7, 4, 6, 6, 5, 2, -1, -3, 5,
1936 -8, -5, 4, -3, -2, -3, -5, 9, 2, 0, -1, 1, 7, 0, 5, -4, 3, -6, 0, 3, -1, -6, -4, 3, -3,
1937 9, 10, 3, 0, 2, -3, 5, 0, -5, -1, 4, 0, 5, 3, 3, -9, -6, 5, -5, 1, -8, -6, 4, 3, -6, 1,
1938 -1, -2, 3, -3, 1, -2, -2, 2, 3, -1, 1, 5, -2, 2, -2, 2, 3, 3, 3, 5, -2, 11, 4, -3, -1,
1939 5, -7, 3, 3, 5, 4, -1, 5, -4, -7, -5, 2, -5, -3, -2, -1, 4, -2, -1, 0, -3, 2, 4, -3, 3,
1940 1, 4, 0, 3, 0, 1, -5, 3, 1, 3, 0, -5, -6, -4, -4, 6, 3, 7, -3, 3, 5, -1, -2, -2, -4, 1,
1941 -9, -6, -3, -6, 3, 2, -3, -3, -4, 2, 8, 1, 3, -7, -2, -2, 3, -1, -1, 4, -2, 3, 2, 5,
1942 -4, -5, 0, -2, 4, 1, -1, -2, -1, -2, -4, 1, -1, 1, -3, 1, -1, 0, -3, 5, -4, -3, 7, -2,
1943 1, 0, 1, 4, 1, 0, 0, -5, 4, 1, 4, 0, -2, 1, 4, -3, 1, 0, -2, -2, 8, -1, -2, 2, -1, -1,
1944 -1, -1, 7, -7, 0, 5, -7, 5, -5, 0, -4, -1, 1, -7, -2, 1, 1, -2, -1, 1, -2, -3, -4, 5,
1945 -4, 1, 4, -5, -7, 1, 4, 0, -6, -7, 2, 9, 0, -5, 1, -8, -6, -1, 3, 1, 8, -10, 2, 0, 4,
1946 -6, -5, -4, -1, 3, 0, 4, -2, -8, 0, -5, 3, -3, 1, 3, -2, 3, 0, 6, 2, 0, -9, -4, 0, -5,
1947 3, 0, -4, 4, 3, 1, -3, 2, 9, 2, -5, 2, -8, -2, -1, 4, -1, -4, 4, 4, 1, -4, -8, -1, -4,
1948 5, 2, -3, 2, 0, 2, -1, 1, 7, -1, -1, 0, -1, 0, 0, 5, -4, 2, 0, -5, 5, -5, 8, -2, 2, 3,
1949 0, -1, -4, -2, -4, 6, 3, -8,
1950 ],
1951 [
1952 4, -4, -3, -2, 1, 5, -7, -5, 3, 4, -4, -4, 3, 10, -6, -1, 5, -7, -3, -4, -4, 3, -3, 7,
1953 2, -4, 2, 2, -2, 0, 7, 3, -2, -1, -1, -2, -2, -2, -1, -6, -6, 0, -3, 4, 7, 2, 1, 2, -3,
1954 1, -3, -10, 2, 2, -2, 0, -5, -1, -1, 6, -3, -4, 9, 3, -7, 7, 1, 4, 2, 1, 2, 5, -1, -4,
1955 -5, -7, 1, 6, 4, -2, -2, 1, 4, -4, 0, -1, 8, 2, 8, -2, 4, 2, -7, 0, -4, 5, -2, -2, -1,
1956 2, -3, -7, 2, -7, -1, 5, -4, 3, -4, -2, 0, 3, 0, 3, 1, 1, 2, 3, -8, 1, 1, -3, 10, -4,
1957 1, 5, 3, -6, 4, -2, -4, -3, 2, -1, -2, -1, -3, 1, -5, 1, 2, 7, 0, -5, 1, 6, -1, 2, 3,
1958 -5, -1, 1, -2, -3, 2, 0, 6, 1, -3, 0, 1, -1, 0, 7, 2, -1, -6, -6, 12, 3, 0, 7, 2, 9,
1959 -4, -5, 4, 0, -5, 5, -5, 6, 0, -2, 0, -1, 3, 4, 6, -5, -1, -7, 2, 2, 1, 3, 0, 6, 5, 1,
1960 4, -2, -10, -8, -3, 1, 1, -3, -5, 4, 0, 4, 3, 3, -1, -2, -7, 1, 6, 1, 0, -3, 3, -1, -2,
1961 -3, -10, -1, -2, -4, 4, -1, -6, 1, 8, -2, 6, -2, -2, -2, 0, -4, -2, -3, 5, -4, 2, -4,
1962 0, 4, 1, 2, 2, 3, -1, 2, 6, 9, 2, -6, 0, 6, -2, 1, -11, -1, 5, -2, -5, 0, 3, -2, -1,
1963 -1, -2, 5, -1, 4, 0, -7, -5, 3, 8, 4, 0, -1, 2, -1, 1, 0, -1, 2, -4, 6, -6, -1, -10,
1964 -4, 8, 6, 3, 4, -1, 2, 2, 8, 0, 0, 6, 1, -3, -1, 0, 1, -5, 4, 0, -5, -3, 10, 0, -7, -3,
1965 -3, -6, -2, -5, 0, -7, -4, -3, 4, 2, 0, 1, 3, -2, 2, -3, -3, -9, 6, 1, -6, -1, 2, -3,
1966 -1, 0, -8, 1, -5, 2, 0, -2, -6, -1, -3, 1, 2, -1, 2, 5, 9, -1, 2, 2, 4, 2, 2, -5, 1, 3,
1967 1, -5, 0, 3, -4, -3, 4, -4, 1, 1, -2, 1, 0, 1, -4, 0, 2, -4, -2, -2, -3, 5, 1, -2, 0,
1968 -3, -8, 4, 3, 5, 6, -3, -5, -2, -2, -6, 5, 1, 5, -1, -9, 1, 3, 0, -2, -3, -5, -5, 1,
1969 -2, 4, -1, 1, -3, 1, -2, -3, 5, 5, -2, 0, -1, 4, 1, -2, -7, -1, 3, -9, -7, 0, 4, 4, 6,
1970 1, -9, 4, 3, -1, 4, -4, -2, 7, 1, 2, 5, 3, -4, -10, 3, -3, -1, 7, -6, 3, 2, -5, -1, -1,
1971 4, 0, 1, -5, -1, -1, -5, -1, -5, -2, 2, 0, 5, 2, -1, -4, -1, 3, 1, 2, -3, 2, 9, 6, -6,
1972 5, -6, -3, -5, 0, 7, -1, -8, 0, -1, -3, 4, 1, -2, 0,
1973 ],
1974 [
1975 13, 30, 48, 15, 4, -25, -16, -20, 39, 27, 10, -29, 21, 16, 49, -14, 29, -39, 32, 26,
1976 -17, -33, 19, 0, 12, 4, 30, 9, -27, 41, 66, -29, -3, 26, 39, -58, 22, 0, -17, -18, 32,
1977 41, -12, -5, 19, 39, -10, 45, -43, 13, 28, 49, -1, -31, 3, -48, -6, 28, 2, 11, -2, 40,
1978 16, 23, -31, 1, 30, 8, -10, -51, 24, -43, 37, 4, 26, 27, -31, 5, -10, 12, 20, -17, 14,
1979 22, 10, 7, 5, 14, 5, -14, -3, 20, 19, -5, -20, 5, 10, 7, -13, -53, -39, 4, -24, -10,
1980 -6, -32, -2, 7, -12, 50, 2, -3, 11, 3, 20, 6, -26, -25, -12, 32, -2, 45, 12, -25, 21,
1981 -13, -7, -42, 28, 14, -32, 20, 47, 13, -3, -8, -31, -18, 26, 24, 5, 8, -26, -5, -26,
1982 27, 4, 0, 23, 63, 30, -3, 13, 41, 42, 4, 54, 35, 25, -4, 10, -3, 5, -8, -36, 6, -56,
1983 47, -17, 50, 17, -11, -29, -43, -8, -7, -15, 17, 3, -15, -27, 49, -14, 5, -21, 5, -27,
1984 -72, 12, 4, 33, -15, 6, 37, -10, 8, 25, 37, -36, 0, 8, -35, 1, -13, -15, -11, 15, -21,
1985 20, 11, 2, -2, -65, -5, 23, -8, -1, -33, 14, 9, 28, 40, -19, -10, 12, 43, -5, 57, 21,
1986 -14, 47, -59, -4, -18, -4, 10, -62, 9, -12, -43, 49, 4, -50, -21, 3, 23, 16, -4, -21,
1987 -15, -2, -3, 13, -25, -18, 52, -13, -12, 12, -22, -2, -8, 36, -11, 50, 11, 36, 15, 22,
1988 34, -24, -6, -16, 43, -36, -19, 9, -8, 12, -7, -17, -9, -3, 11, -12, 45, -1, 25, -8,
1989 -42, -4, -22, 10, -42, 30, -38, 5, -3, 19, 2, -2, 25, -14, -7, 1, -2, 0, -3, -20, -35,
1990 -10, -3, -25, -35, 0, 40, -8, -27, -35, -35, 0, -7, 6, -5, -11, 41, 17, 5, -10, -6,
1991 -22, -37, 11, -10, -28, 10, -27, -2, -17, -3, -80, 11, -5, 41, -3, -2, 17, -22, 7, -52,
1992 20, -4, -10, 19, -39, 8, 36, -16, -43, 30, 16, -21, 10, -4, 22, 8, 0, -7, -32, 13, -22,
1993 34, -4, 10, 2, -11, -23, 7, 30, -2, -25, -8, -3, 35, 1, 14, -40, 54, -41, 22, 5, 29,
1994 58, -21, 15, 1, 23, -44, 26, 8, 8, -36, 29, -9, 70, 3, 4, 5, -15, -15, -4, -56, -9, 10,
1995 10, -60, 7, -23, -10, -3, -8, 16, -6, -17, 41, -40, -33, -4, -23, -22, 14, 2, 9, -1,
1996 27, 31, -31, -9, -8, -38, -47, 10, 4, 3, -33, 43, -23, 4, 16, 24, -20, 10, 0, -36, 0,
1997 -74, -42, -17, 50, 3, 8, 28, 29, -2, -29, 39, -6, -26, -12, -10, 46, 1, -1, -17, -12,
1998 -2, -56, 13, -40, 22, -32, -10, 92, -32, 31, -22, 23, 19, -4, -30, -23, 8, -34, 6, -13,
1999 -14, -25, 12, 22, -11, 8, -18, 9, -44, 13, -27, 32, -22, 0, -40, 63, 38,
2000 ],
2001 [
2002 -72, 21, -29, -41, 28, 23, 27, -61, -68, -14, -9, 1, 22, 43, 26, 22, -30, 41, 11, -25,
2003 27, -46, -20, 30, -36, -6, -33, 3, 45, 17, -41, -24, -18, -13, 58, -24, 15, 20, -4,
2004 -21, 2, 14, 0, -18, 1, 19, 31, 10, -55, 21, 12, -38, -11, -30, 22, 13, 15, -15, -38, 5,
2005 14, -23, -1, 24, 24, -52, 1, 10, -1, 59, 32, 9, 9, -1, -3, 6, 29, 53, -44, -44, 12, 24,
2006 13, 35, -4, -38, 6, 30, 20, -14, -10, 3, 33, 21, 25, 29, 49, -48, 31, 47, -30, -6, -7,
2007 2, -28, 14, 25, 12, -17, 10, -20, -13, -10, -20, -12, 30, -2, 14, 6, 28, -1, 12, -28,
2008 -65, 8, 36, -60, 4, -29, -20, 39, -7, -19, 45, 15, -55, -11, 19, 57, 14, 12, -48, 15,
2009 38, -47, 0, 16, -41, -37, -55, -7, 1, 12, -29, -20, 49, 1, -11, 52, 22, 24, -20, -9,
2010 -6, -1, 24, -17, -35, -18, 40, -29, -27, 3, -8, 3, 2, 16, 44, 23, 8, 40, -12, 31, 24,
2011 -91, -14, -2, 39, 15, -23, -39, -9, 7, 38, 45, -42, 16, 16, 34, -39, 48, 52, 45, -15,
2012 37, -19, -31, 21, 41, 48, -11, -38, 20, -33, -28, 4, -6, 1, -1, 25, 11, 26, -18, 31,
2013 -38, 29, 18, -43, -4, 6, 20, -29, -45, 4, -20, 56, 39, -7, -32, -45, -16, -16, -14,
2014 -32, 21, -31, -9, 13, -25, 9, 15, 40, -32, -12, -1, -40, 4, 4, -13, -1, 0, 37, -4, -67,
2015 -41, -23, 3, -9, -48, 12, 6, 31, -2, 22, 6, -3, -20, -2, 21, 0, -27, -11, 5, 19, 20,
2016 22, -16, -7, 10, 22, 31, -15, -3, -10, 28, -17, -12, -54, -6, -8, -34, -5, -28, -9, -6,
2017 10, 41, -17, 3, 24, 23, 9, 15, -1, 1, -3, -26, 15, 15, -15, 9, 17, -2, 13, -32, -23,
2018 -35, 34, 4, 13, 24, 14, -4, -3, 28, -51, 9, -32, -21, 21, -31, -46, -12, 27, 2, -13,
2019 23, -5, -2, 33, -34, -39, -1, 22, 11, 52, 15, -61, 8, -35, -18, -47, -8, -7, 0, -34,
2020 29, 1, -1, -25, 30, 12, -2, 13, -11, -14, -6, -11, 22, -19, -5, -29, -9, 38, 14, -33,
2021 -32, -19, -21, -10, 1, 42, -29, 31, -23, -24, 53, -12, -17, -25, 14, 34, 37, -17, 3,
2022 -22, -12, 32, -56, 3, 0, -17, 6, 22, -22, 12, -34, -25, -13, 51, -17, -15, 8, 1, 22, 8,
2023 34, 12, 12, 1, -44, 0, 31, 2, -25, -25, -11, 8, 22, 15, 47, 35, 15, -31, 8, 17, -8,
2024 -41, -32, -1, 29, 20, -20, -18, 42, 13, -48, 33, -3, -1, -20, 29, -11, -1, -3, -12,
2025 -13, -38, -4, -6, 13, -19, 6, -9, 19, 53, -28, -47, 4, -29, -36, -21, 29, 26, -22, 6,
2026 14, 19, -16, 15, 3, -43, -23, 8, -9, 28, 1, -48, -22, 18, -28, 17, 2, 19, -19, 18, 17,
2027 51, 21, -36, -11, 41,
2028 ],
2029 ],
2030];