On Mon, Aug 12, 2024, at 12:47, Joel Jacobson wrote: >> 2). Attempt to fix the formulae incorporating maxdigits mentioned >> above. This part really made my brain hurt, and I'm still not quite >> sure that I've got it right. In particular, it needs double-checking >> to ensure that it's not losing accuracy in the reduced-rscale case. > > To test if there are any differences that actually matter in the result, > I patched mul_var to log what combinations that occur when running > the test suite:
I expanded the test to generate 10k different random numerics for each of the reduced rscale cases. This actually found some differences, where the last decimal digit differs by one, except in one case where the last decimal digit differs by two. Not sure if this is a real problem though, since these differences might not affect the result of the SQL-callable functions. The case found with the smallest rscale adjustment was this one: -[ RECORD 1 ]------+-------------------------------- var1 | 0.0000000000009873307197037692 var2 | 0.426697279270850 rscale_adjustment | -15 expected | 0.0000000000004212913318381285 numeric_mul_rscale | 0.0000000000004212913318381284 diff | -0.0000000000000000000000000001 Here is a count grouped by diff: diff | count --------------+---------- 0.000e+00 | 14114384 1.000e-108 | 1 1.000e-211 | 1 1.000e-220 | 2 1.000e-228 | 6 1.000e-232 | 2 1.000e-235 | 1 1.000e-28 | 13 1.000e-36 | 1 1.000e-51 | 2 1.000e-67 | 1 1.000e-68 | 1 1.000e-80 | 1 -1.000e-1024 | 2485 -1.000e-108 | 3 -1.000e-144 | 2520 -1.000e-16 | 2514 -1.000e-228 | 4 -1.000e-232 | 1 -1.000e-27 | 36 -1.000e-28 | 538 -1.000e-32 | 2513 -1.000e-48 | 2473 -1.000e-68 | 1 -1.000e-80 | 2494 -2.000e-16 | 2 (26 rows) Should I investigate where each reduced rscale case originates from, and then try to test the actual SQL-callable functions with values that cause the same inputs to mul_var as the cases found, or do we feel confident these differences are not problematic? Regards, Joel
test-mul_var-init.sql
Description: Binary data
test-mul_var-verify.sql
Description: Binary data
1,1,11,1,-1 1,1,11,2,-2 1,1,11,3,-3 1,1,11,4,-8 1,1,13,1,-1 1,1,14,2,-2 1,1,15,3,-3 1,1,16,4,-8 1,1,32,30,-16 1,1,32,31,-17 1,1,32,32,-18 1,1,46,46,-46 1,1,8,8,-1 1,1,8,8,-2 1,1,8,8,-3 1,1,8,8,-4 1,1,8,8,-5 1,10,28,38,-38 1,12,0,46,-11 1,13,0,51,-9 1,13,51,51,-51 1,14,0,57,-9 1,17,0,67,-9 1,18,62,72,-72 1,2,26,8,-8 1,2,80,77,-77 1,25,0,97,-11 1,27,0,108,-11 1,27,108,108,-108 1,29,0,114,-11 1,29,0,114,-9 1,3,0,1016,-8 1,3,0,1072,-8 1,3,28,17,-17 1,3,68,17,-17 1,4,0,26,-8 1,4,26,26,-26 1,4,27,15,-15 1,4,28,15,-15 1,4,7,19,-19 1,5,0,17,-9 1,5,0,18,-10 1,5,17,17,-17 1,5,18,18,-18 1,5,7,36,-36 1,53,0,209,-9 1,53,0,210,-10 1,54,211,218,-218 1,55,0,218,-9 1,57,0,226,-9 1,57,0,228,-9 1,58,0,232,-9 1,58,220,229,-229 1,58,222,231,-231 1,58,232,232,-232 1,59,0,234,-9 1,59,0,235,-9 1,59,226,235,-235 1,59,228,237,-237 1,59,235,235,-235 1,6,0,25,-10 1,6,0,25,-9 1,6,28,28,-28 1,7,0,25,-10 1,7,0,25,-9 1,7,0,26,-10 1,7,0,26,-11 1,7,0,28,-8 1,7,26,26,-26 1,8,0,33,-9 1,8,26,33,-33 1,8,27,34,-34 1,8,33,33,-33 1,9,0,33,-10 1,9,0,33,-9 1,9,0,34,-10 1,9,0,34,-11 1,9,0,34,-9 1,9,0,35,-9 1,9,0,36,-8 1,9,0,37,-8 1,9,27,36,-36 1,9,33,33,-33 1,9,34,34,-34 1,9,35,35,-35 10,10,29,29,-37 10,10,36,36,-44 10,10,37,37,-37 10,10,38,38,-39 10,10,38,38,-48 10,10,61,61,-37 10,12,46,46,-46 10,13,51,51,-51 10,15,57,57,-57 10,17,67,67,-67 10,18,62,72,-72 10,25,97,97,-97 10,27,108,108,-108 10,29,114,114,-114 10,53,209,209,-209 10,53,210,210,-210 10,54,211,218,-218 10,55,218,218,-218 10,57,226,226,-226 10,57,228,228,-228 10,58,220,229,-229 10,58,222,231,-231 10,58,232,232,-232 10,59,226,235,-235 10,59,228,237,-237 10,59,234,234,-234 10,59,235,235,-235 10,60,229,239,-239 11,11,45,45,-37 11,11,53,45,-37 11,12,46,46,-46 11,13,51,51,-51 11,15,57,57,-57 11,17,67,67,-67 11,18,62,72,-72 11,25,97,97,-97 11,27,108,108,-108 11,29,114,114,-114 11,53,209,209,-209 11,53,210,210,-210 11,54,211,218,-218 11,55,218,218,-218 11,57,226,226,-226 11,57,228,228,-228 11,58,220,229,-229 11,58,222,231,-231 11,58,232,232,-232 11,59,226,235,-235 11,59,228,237,-237 11,59,234,234,-234 11,59,235,235,-235 11,60,229,239,-239 12,12,34,34,-42 12,12,45,45,-45 12,12,46,46,-46 12,13,38,26,-46 12,13,51,51,-51 12,15,57,57,-57 12,17,67,67,-67 12,18,62,72,-72 12,25,97,97,-97 12,27,108,108,-108 12,29,114,114,-114 12,53,209,209,-209 12,53,210,210,-210 12,54,211,218,-218 12,55,218,218,-218 12,57,226,226,-226 12,57,228,228,-228 12,58,220,229,-229 12,58,222,231,-231 12,58,232,232,-232 12,59,226,235,-235 12,59,228,237,-237 12,59,234,234,-234 12,59,235,235,-235 12,60,229,239,-239 13,13,40,40,-48 13,13,42,42,-50 13,13,46,46,-46 13,13,51,51,-51 13,15,57,57,-57 13,17,67,67,-67 13,18,62,72,-72 13,25,97,97,-97 13,27,108,108,-108 13,29,114,114,-114 13,53,209,209,-209 13,53,210,210,-210 13,54,211,218,-218 13,55,218,218,-218 13,57,226,226,-226 13,57,228,228,-228 13,58,220,229,-229 13,58,222,231,-231 13,58,232,232,-232 13,59,226,235,-235 13,59,228,237,-237 13,59,234,234,-234 13,59,235,235,-235 13,60,229,239,-239 136,136,354,354,-538 136,137,490,450,-542 137,137,170,398,-546 137,137,450,450,-546 137,137,498,498,-546 137,137,522,522,-546 14,15,57,57,-57 14,17,67,67,-67 14,18,62,72,-72 14,25,97,97,-97 14,27,108,108,-108 14,29,114,114,-114 14,53,209,209,-209 14,53,210,210,-210 14,54,211,218,-218 14,55,218,218,-218 14,57,226,226,-226 14,57,228,228,-228 14,58,220,229,-229 14,58,222,231,-231 14,58,232,232,-232 14,59,226,235,-235 14,59,228,237,-237 14,59,234,234,-234 14,59,235,235,-235 14,60,229,239,-239 140,140,490,490,-554 140,140,522,522,-554 140,140,538,538,-554 140,140,546,546,-554 140,140,553,553,-552 140,140,554,554,-554 141,141,290,290,-562 141,141,426,426,-562 141,141,554,554,-562 15,15,57,57,-57 15,17,67,67,-67 15,18,62,72,-72 15,25,97,97,-97 15,27,108,108,-108 15,29,114,114,-114 15,53,209,209,-209 15,53,210,210,-210 15,54,211,218,-218 15,55,218,218,-218 15,57,226,226,-226 15,57,228,228,-228 15,58,220,229,-229 15,58,222,231,-231 15,58,232,232,-232 15,59,226,235,-235 15,59,228,237,-237 15,59,234,234,-234 15,59,235,235,-235 15,60,229,239,-239 16,17,67,67,-67 16,25,97,97,-97 16,27,108,108,-108 16,29,114,114,-114 16,53,209,209,-209 16,53,210,210,-210 16,54,211,218,-218 16,55,218,218,-218 16,57,226,226,-226 16,57,228,228,-228 16,58,220,229,-229 16,58,222,231,-231 16,58,232,232,-232 16,59,226,235,-235 16,59,228,237,-237 16,59,234,234,-234 16,59,235,235,-235 17,17,39,39,-63 17,17,63,63,-63 17,17,67,67,-67 17,25,97,97,-97 17,27,108,108,-108 17,29,114,114,-114 17,53,209,209,-209 17,53,210,210,-210 17,54,211,218,-218 17,55,218,218,-218 17,57,226,226,-226 17,57,228,228,-228 17,58,220,229,-229 17,58,222,231,-231 17,58,232,232,-232 17,59,226,235,-235 17,59,228,237,-237 17,59,234,234,-234 17,59,235,235,-235 17,60,229,239,-239 18,18,1082,1082,-2086 18,18,55,55,-71 18,18,63,63,-71 18,18,68,68,-67 18,18,69,69,-69 18,18,72,72,-82 18,25,97,97,-97 18,27,108,108,-108 18,29,114,114,-114 18,53,209,209,-209 18,53,210,210,-210 18,54,211,218,-218 18,55,218,218,-218 18,57,226,226,-226 18,57,228,228,-228 18,58,220,229,-229 18,58,222,231,-231 18,58,232,232,-232 18,59,226,235,-235 18,59,228,237,-237 18,59,234,234,-234 18,59,235,235,-235 18,60,229,239,-239 19,19,102,102,-70 19,19,190,190,-70 19,19,310,310,-70 19,19,45,45,-69 19,19,69,69,-69 19,19,72,72,-81 19,19,78,78,-70 19,19,86,86,-70 19,25,97,97,-97 19,27,108,108,-108 19,29,114,114,-114 19,53,210,210,-210 19,54,211,218,-218 19,55,218,218,-218 19,57,226,226,-226 19,57,228,228,-228 19,58,220,229,-229 19,58,222,231,-231 19,58,232,232,-232 19,59,226,235,-235 19,59,228,237,-237 19,59,234,234,-234 19,59,235,235,-235 19,60,229,239,-239 2,10,28,38,-38 2,10,77,80,-77 2,11,77,80,-77 2,12,46,46,-46 2,12,77,80,-77 2,13,51,51,-51 2,13,77,80,-77 2,14,77,80,-77 2,15,57,57,-57 2,15,77,80,-77 2,16,1,58,-1 2,16,77,80,-77 2,17,67,67,-67 2,17,77,80,-77 2,18,62,72,-72 2,18,77,80,-77 2,19,77,80,-77 2,2,26,8,-8 2,2,77,77,-74 2,2,8,1,-1 2,2,80,77,-77 2,25,97,97,-97 2,27,108,108,-108 2,29,114,114,-114 2,3,1,8,-1 2,3,28,17,-17 2,3,68,17,-17 2,3,77,80,-77 2,3,8,26,-8 2,4,27,15,-15 2,4,28,15,-15 2,4,77,80,-77 2,4,8,26,-8 2,5,17,17,-17 2,5,18,18,-18 2,5,553,21,-21 2,5,77,80,-77 2,5,8,26,-8 2,53,209,209,-209 2,53,210,210,-210 2,54,211,218,-218 2,55,218,218,-218 2,57,226,226,-226 2,57,228,228,-228 2,58,220,229,-229 2,58,222,231,-231 2,58,232,232,-232 2,59,226,235,-235 2,59,228,237,-237 2,59,234,234,-234 2,59,235,235,-235 2,6,1,24,-1 2,6,25,25,-25 2,6,77,80,-77 2,6,8,26,-8 2,60,229,239,-239 2,7,1,24,-1 2,7,25,25,-25 2,7,26,26,-26 2,7,69,1082,-1082 2,7,77,80,-77 2,8,26,33,-33 2,8,27,34,-34 2,8,33,33,-33 2,8,36,36,-36 2,8,37,37,-37 2,8,77,80,-77 2,9,27,36,-36 2,9,33,33,-33 2,9,34,34,-34 2,9,35,35,-35 2,9,77,80,-77 20,20,134,134,-78 20,20,550,550,-78 20,20,61,61,-77 20,20,69,69,-77 20,20,78,78,-78 20,25,97,97,-97 20,27,108,108,-108 20,29,114,114,-114 20,53,209,209,-209 20,53,210,210,-210 20,54,211,218,-218 20,55,218,218,-218 20,57,226,226,-226 20,57,228,228,-228 20,58,220,229,-229 20,58,222,231,-231 20,58,232,232,-232 20,59,226,235,-235 20,59,228,237,-237 20,59,234,234,-234 20,59,235,235,-235 20,60,229,239,-239 21,21,80,80,-79 21,21,81,81,-81 21,25,97,97,-97 21,27,108,108,-108 21,29,114,114,-114 21,53,209,209,-209 21,53,210,210,-210 21,54,211,218,-218 21,55,218,218,-218 21,57,226,226,-226 21,57,228,228,-228 21,58,220,229,-229 21,58,222,231,-231 21,58,232,232,-232 21,59,226,235,-235 21,59,228,237,-237 21,59,234,234,-234 21,59,235,235,-235 21,60,229,239,-239 22,22,81,81,-81 22,25,97,97,-97 22,27,108,108,-108 22,29,114,114,-114 22,53,209,209,-209 22,53,210,210,-210 22,54,211,218,-218 22,55,218,218,-218 22,57,226,226,-226 22,57,228,228,-228 22,58,220,229,-229 22,58,222,231,-231 22,58,232,232,-232 22,59,226,235,-235 22,59,228,237,-237 22,59,234,234,-234 22,59,235,235,-235 22,60,229,239,-239 23,25,97,97,-97 23,27,108,108,-108 23,29,114,114,-114 23,53,209,209,-209 23,53,210,210,-210 23,54,211,218,-218 23,55,218,218,-218 23,57,226,226,-226 23,57,228,228,-228 23,58,220,229,-229 23,58,222,231,-231 23,58,232,232,-232 23,59,226,235,-235 23,59,228,237,-237 23,59,234,234,-234 23,59,235,235,-235 23,60,229,239,-239 24,25,97,97,-97 24,27,108,108,-108 24,29,114,114,-114 24,53,209,209,-209 24,53,210,210,-210 24,54,211,218,-218 24,55,218,218,-218 24,57,226,226,-226 24,57,228,228,-228 24,58,220,229,-229 24,58,222,231,-231 24,58,232,232,-232 24,59,226,235,-235 24,59,228,237,-237 24,59,234,234,-234 24,59,235,235,-235 24,60,229,239,-239 25,25,97,97,-97 25,27,108,108,-108 25,29,114,114,-114 25,53,210,210,-210 25,54,211,218,-218 25,57,226,226,-226 25,57,228,228,-228 25,58,220,229,-229 25,58,222,231,-231 25,58,232,232,-232 25,59,226,235,-235 25,59,228,237,-237 25,59,234,234,-234 25,59,235,235,-235 25,60,229,239,-239 26,27,108,108,-108 26,29,114,114,-114 26,53,209,209,-209 26,53,210,210,-210 26,54,211,218,-218 26,55,218,218,-218 26,57,228,228,-228 26,58,220,229,-229 26,58,222,231,-231 26,58,232,232,-232 26,59,226,235,-235 26,59,228,237,-237 26,59,234,234,-234 26,59,235,235,-235 26,60,229,239,-239 27,27,108,108,-108 27,29,114,114,-114 27,53,209,209,-209 27,53,210,210,-210 27,54,211,218,-218 27,55,218,218,-218 27,57,226,226,-226 27,57,228,228,-228 27,58,220,229,-229 27,58,222,231,-231 27,58,232,232,-232 27,59,226,235,-235 27,59,228,237,-237 27,59,234,234,-234 27,59,235,235,-235 27,60,229,239,-239 28,29,114,114,-114 28,53,209,209,-209 28,53,210,210,-210 28,54,211,218,-218 28,55,218,218,-218 28,57,226,226,-226 28,57,228,228,-228 28,58,220,229,-229 28,58,222,231,-231 28,58,232,232,-232 28,59,226,235,-235 28,59,228,237,-237 28,59,234,234,-234 28,59,235,235,-235 28,60,229,239,-239 29,29,114,114,-114 29,53,209,209,-209 29,53,210,210,-210 29,54,211,218,-218 29,55,218,218,-218 29,57,226,226,-226 29,57,228,228,-228 29,58,220,229,-229 29,58,222,231,-231 29,58,232,232,-232 29,59,226,235,-235 29,59,228,237,-237 29,59,234,234,-234 29,59,235,235,-235 3,10,17,68,-17 3,10,28,38,-38 3,11,17,68,-17 3,12,17,68,-17 3,12,46,46,-46 3,13,17,68,-17 3,13,51,51,-51 3,14,17,68,-17 3,15,57,57,-57 3,17,67,67,-67 3,18,62,72,-72 3,25,97,97,-97 3,27,108,108,-108 3,29,114,114,-114 3,3,1016,1016,-1016 3,3,1072,1072,-1072 3,3,1096,1096,-8 3,3,136,136,-8 3,3,144,144,-8 3,3,16,16,-8 3,3,17,17,-6 3,3,24,24,-8 3,3,264,264,-8 3,3,28,17,-17 3,3,280,280,-8 3,3,40,40,-8 3,3,552,552,-8 3,3,68,17,-17 3,3,72,72,-8 3,4,17,28,-17 3,4,17,68,-17 3,4,27,15,-15 3,4,28,15,-15 3,5,17,17,-17 3,5,17,28,-17 3,5,17,68,-17 3,5,18,18,-18 3,5,553,21,-21 3,51,8,200,-200 3,53,210,210,-210 3,54,211,218,-218 3,55,218,218,-218 3,57,226,226,-226 3,57,228,228,-228 3,58,220,229,-229 3,58,222,231,-231 3,58,232,232,-232 3,59,226,235,-235 3,59,228,237,-237 3,59,234,234,-234 3,59,235,235,-235 3,6,17,28,-17 3,6,17,68,-17 3,6,25,25,-25 3,6,28,28,-28 3,60,229,239,-239 3,7,17,68,-17 3,7,25,25,-25 3,7,26,26,-26 3,7,69,1082,-1082 3,8,17,68,-17 3,8,26,33,-33 3,8,27,34,-34 3,8,33,33,-33 3,9,17,68,-17 3,9,27,36,-36 3,9,33,33,-33 3,9,34,34,-34 3,9,35,35,-35 30,53,209,209,-209 30,53,210,210,-210 30,54,211,218,-218 30,55,218,218,-218 30,57,226,226,-226 30,57,228,228,-228 30,58,220,229,-229 30,58,222,231,-231 30,58,232,232,-232 30,59,226,235,-235 30,59,228,237,-237 30,59,234,234,-234 30,59,235,235,-235 30,60,229,239,-239 31,53,209,209,-209 31,53,210,210,-210 31,54,211,218,-218 31,55,218,218,-218 31,57,226,226,-226 31,57,228,228,-228 31,58,220,229,-229 31,58,222,231,-231 31,58,232,232,-232 31,59,226,235,-235 31,59,228,237,-237 31,59,234,234,-234 31,59,235,235,-235 31,60,229,239,-239 32,53,209,209,-209 32,53,210,210,-210 32,54,211,218,-218 32,55,218,218,-218 32,57,226,226,-226 32,57,228,228,-228 32,58,220,229,-229 32,58,222,231,-231 32,58,232,232,-232 32,59,226,235,-235 32,59,228,237,-237 32,59,234,234,-234 32,59,235,235,-235 32,60,229,239,-239 33,53,209,209,-209 33,53,210,210,-210 33,54,211,218,-218 33,55,218,218,-218 33,57,226,226,-226 33,57,228,228,-228 33,58,220,229,-229 33,58,222,231,-231 33,58,232,232,-232 33,59,226,235,-235 33,59,228,237,-237 33,59,234,234,-234 33,59,235,235,-235 33,60,229,239,-239 34,53,209,209,-209 34,53,210,210,-210 34,54,211,218,-218 34,55,218,218,-218 34,57,226,226,-226 34,57,228,228,-228 34,58,220,229,-229 34,58,222,231,-231 34,58,232,232,-232 34,59,226,235,-235 34,59,228,237,-237 34,59,234,234,-234 34,59,235,235,-235 34,60,229,239,-239 35,53,209,209,-209 35,53,210,210,-210 35,54,211,218,-218 35,57,226,226,-226 35,57,228,228,-228 35,58,220,229,-229 35,58,222,231,-231 35,58,232,232,-232 35,59,226,235,-235 35,59,228,237,-237 35,59,234,234,-234 35,59,235,235,-235 35,60,229,239,-239 36,53,209,209,-209 36,53,210,210,-210 36,54,211,218,-218 36,55,218,218,-218 36,57,226,226,-226 36,57,228,228,-228 36,58,220,229,-229 36,58,222,231,-231 36,58,232,232,-232 36,59,228,237,-237 36,59,234,234,-234 36,59,235,235,-235 36,60,229,239,-239 37,137,138,498,-146 37,53,209,209,-209 37,53,210,210,-210 37,54,211,218,-218 37,55,218,218,-218 37,57,226,226,-226 37,57,228,228,-228 37,58,220,229,-229 37,58,222,231,-231 37,58,232,232,-232 37,59,226,235,-235 37,59,228,237,-237 37,59,234,234,-234 37,59,235,235,-235 37,60,229,239,-239 38,53,209,209,-209 38,53,210,210,-210 38,54,211,218,-218 38,55,218,218,-218 38,57,226,226,-226 38,57,228,228,-228 38,58,220,229,-229 38,58,222,231,-231 38,58,232,232,-232 38,59,226,235,-235 38,59,228,237,-237 38,59,234,234,-234 38,59,235,235,-235 38,60,229,239,-239 39,53,209,209,-209 39,53,210,210,-210 39,54,211,218,-218 39,55,218,218,-218 39,57,226,226,-226 39,57,228,228,-228 39,58,220,229,-229 39,58,222,231,-231 39,58,232,232,-232 39,59,226,235,-235 39,59,228,237,-237 39,59,234,234,-234 39,59,235,235,-235 39,60,229,239,-239 4,10,28,38,-38 4,12,46,46,-46 4,13,51,51,-51 4,13,9,32,-9 4,15,57,57,-57 4,17,67,67,-67 4,18,62,72,-72 4,25,97,97,-97 4,27,108,108,-108 4,29,114,114,-114 4,4,15,15,-2 4,4,15,15,-3 4,4,16,16,-16 4,4,19,19,-22 4,4,19,19,-31 4,4,24,24,-16 4,4,26,26,-26 4,4,27,15,-15 4,4,28,15,-15 4,4,32,32,-16 4,4,48,48,-16 4,4,520,520,-16 4,4,80,80,-16 4,5,15,27,-15 4,5,15,28,-15 4,5,17,17,-17 4,5,18,18,-18 4,5,553,21,-21 4,53,209,209,-209 4,53,210,210,-210 4,54,211,218,-218 4,55,218,218,-218 4,57,226,226,-226 4,57,228,228,-228 4,58,220,229,-229 4,58,222,231,-231 4,58,232,232,-232 4,59,226,235,-235 4,59,228,237,-237 4,59,234,234,-234 4,59,235,235,-235 4,6,15,27,-15 4,6,15,28,-15 4,6,25,25,-25 4,60,229,239,-239 4,7,25,25,-25 4,7,26,26,-26 4,7,69,1082,-1082 4,8,26,33,-33 4,8,27,34,-34 4,8,33,33,-33 4,8,36,36,-36 4,8,37,37,-37 4,9,27,36,-36 4,9,33,33,-33 4,9,34,34,-34 4,9,35,35,-35 40,53,209,209,-209 40,53,210,210,-210 40,54,211,218,-218 40,55,218,218,-218 40,57,226,226,-226 40,57,228,228,-228 40,58,220,229,-229 40,58,222,231,-231 40,58,232,232,-232 40,59,226,235,-235 40,59,228,237,-237 40,59,234,234,-234 40,59,235,235,-235 40,60,229,239,-239 41,53,209,209,-209 41,53,210,210,-210 41,54,211,218,-218 41,55,218,218,-218 41,57,226,226,-226 41,57,228,228,-228 41,58,220,229,-229 41,58,222,231,-231 41,58,232,232,-232 41,59,226,235,-235 41,59,228,237,-237 41,59,234,234,-234 41,59,235,235,-235 41,60,229,239,-239 42,53,209,209,-209 42,53,210,210,-210 42,54,211,218,-218 42,55,218,218,-218 42,57,226,226,-226 42,57,228,228,-228 42,58,220,229,-229 42,58,222,231,-231 42,58,232,232,-232 42,59,226,235,-235 42,59,228,237,-237 42,59,234,234,-234 42,59,235,235,-235 42,60,229,239,-239 43,53,209,209,-209 43,53,210,210,-210 43,54,211,218,-218 43,55,218,218,-218 43,57,226,226,-226 43,57,228,228,-228 43,58,220,229,-229 43,58,222,231,-231 43,58,232,232,-232 43,59,226,235,-235 43,59,228,237,-237 43,59,234,234,-234 43,59,235,235,-235 43,60,229,239,-239 44,53,209,209,-209 44,53,210,210,-210 44,54,211,218,-218 44,55,218,218,-218 44,57,228,228,-228 44,58,220,229,-229 44,58,222,231,-231 44,58,232,232,-232 44,59,226,235,-235 44,59,228,237,-237 44,59,234,234,-234 44,59,235,235,-235 44,60,229,239,-239 45,53,209,209,-209 45,53,210,210,-210 45,54,211,218,-218 45,55,218,218,-218 45,57,226,226,-226 45,57,228,228,-228 45,58,220,229,-229 45,58,222,231,-231 45,58,232,232,-232 45,59,226,235,-235 45,59,228,237,-237 45,59,234,234,-234 45,59,235,235,-235 45,60,229,239,-239 46,53,209,209,-209 46,53,210,210,-210 46,54,211,218,-218 46,55,218,218,-218 46,57,226,226,-226 46,57,228,228,-228 46,58,220,229,-229 46,58,222,231,-231 46,58,232,232,-232 46,59,226,235,-235 46,59,228,237,-237 46,59,234,234,-234 46,59,235,235,-235 46,60,229,239,-239 47,53,209,209,-209 47,53,210,210,-210 47,54,211,218,-218 47,55,218,218,-218 47,57,226,226,-226 47,57,228,228,-228 47,58,220,229,-229 47,58,222,231,-231 47,58,232,232,-232 47,59,226,235,-235 47,59,228,237,-237 47,59,234,234,-234 47,59,235,235,-235 47,60,229,239,-239 48,53,209,209,-209 48,53,210,210,-210 48,54,211,218,-218 48,55,218,218,-218 48,57,226,226,-226 48,57,228,228,-228 48,58,220,229,-229 48,58,222,231,-231 48,58,232,232,-232 48,59,226,235,-235 48,59,228,237,-237 48,59,234,234,-234 48,59,235,235,-235 48,60,229,239,-239 49,53,209,209,-209 49,53,210,210,-210 49,54,211,218,-218 49,55,218,218,-218 49,57,226,226,-226 49,57,228,228,-228 49,58,220,229,-229 49,58,222,231,-231 49,58,232,232,-232 49,59,226,235,-235 49,59,228,237,-237 49,59,234,234,-234 49,59,235,235,-235 49,60,229,239,-239 5,10,21,553,-21 5,10,28,38,-38 5,100,21,553,-21 5,101,21,553,-21 5,102,21,553,-21 5,103,21,553,-21 5,105,21,553,-21 5,106,21,553,-21 5,107,21,553,-21 5,108,21,553,-21 5,109,21,553,-21 5,11,15,32,-15 5,110,21,553,-21 5,111,21,553,-21 5,112,21,553,-21 5,113,21,553,-21 5,114,21,553,-21 5,115,21,553,-21 5,116,21,553,-21 5,117,21,553,-21 5,119,21,553,-21 5,12,20,45,-20 5,12,21,553,-21 5,12,46,46,-46 5,120,21,553,-21 5,121,21,553,-21 5,122,21,553,-21 5,123,21,553,-21 5,124,21,553,-21 5,125,21,553,-21 5,126,21,553,-21 5,127,21,553,-21 5,128,21,553,-21 5,129,21,553,-21 5,13,51,51,-51 5,130,21,553,-21 5,131,21,553,-21 5,132,21,553,-21 5,133,21,553,-21 5,134,21,553,-21 5,135,21,553,-21 5,14,21,553,-21 5,15,21,553,-21 5,15,57,57,-57 5,16,21,553,-21 5,17,21,553,-21 5,17,67,67,-67 5,18,21,553,-21 5,18,62,72,-72 5,19,21,553,-21 5,20,21,553,-21 5,21,21,553,-21 5,22,21,553,-21 5,23,21,553,-21 5,24,21,553,-21 5,25,21,553,-21 5,25,97,97,-97 5,26,21,553,-21 5,27,108,108,-108 5,27,21,553,-21 5,28,21,553,-21 5,29,114,114,-114 5,29,21,553,-21 5,30,21,553,-21 5,31,21,553,-21 5,32,21,553,-21 5,33,21,553,-21 5,34,21,553,-21 5,35,21,553,-21 5,36,21,553,-21 5,38,21,553,-21 5,39,21,553,-21 5,40,21,553,-21 5,41,21,553,-21 5,42,21,553,-21 5,43,21,553,-21 5,45,21,553,-21 5,46,21,553,-21 5,48,21,553,-21 5,49,21,553,-21 5,5,17,17,-17 5,5,18,18,-18 5,5,36,36,-56 5,5,36,36,-65 5,5,553,21,-21 5,50,21,553,-21 5,51,21,553,-21 5,52,21,553,-21 5,53,209,209,-209 5,53,21,553,-21 5,53,210,210,-210 5,54,21,553,-21 5,54,211,218,-218 5,55,21,553,-21 5,55,218,218,-218 5,56,21,553,-21 5,57,21,553,-21 5,57,226,226,-226 5,57,228,228,-228 5,58,21,553,-21 5,58,220,229,-229 5,58,222,231,-231 5,58,232,232,-232 5,59,21,553,-21 5,59,228,237,-237 5,59,234,234,-234 5,59,235,235,-235 5,6,21,553,-21 5,6,25,25,-25 5,6,28,28,-28 5,60,21,553,-21 5,60,229,239,-239 5,61,21,553,-21 5,62,21,553,-21 5,63,21,553,-21 5,64,21,553,-21 5,65,21,553,-21 5,66,21,553,-21 5,67,21,553,-21 5,68,21,553,-21 5,69,21,553,-21 5,7,21,553,-21 5,7,25,25,-25 5,7,26,26,-26 5,7,69,1082,-1082 5,70,21,553,-21 5,71,21,553,-21 5,72,21,553,-21 5,73,21,553,-21 5,74,21,553,-21 5,76,21,553,-21 5,77,21,553,-21 5,78,21,553,-21 5,79,21,553,-21 5,8,21,553,-21 5,8,26,33,-33 5,8,27,34,-34 5,8,33,33,-33 5,8,36,36,-36 5,80,21,553,-21 5,81,21,553,-21 5,82,21,553,-21 5,83,21,553,-21 5,84,21,553,-21 5,85,21,553,-21 5,86,21,553,-21 5,87,21,553,-21 5,88,21,553,-21 5,89,21,553,-21 5,9,21,553,-21 5,9,27,36,-36 5,9,33,33,-33 5,9,34,34,-34 5,9,35,35,-35 5,90,21,553,-21 5,91,21,553,-21 5,92,21,553,-21 5,93,21,553,-21 5,94,21,553,-21 5,95,21,553,-21 5,97,21,553,-21 5,98,21,553,-21 5,99,21,553,-21 50,53,209,209,-209 50,53,210,210,-210 50,54,211,218,-218 50,55,218,218,-218 50,57,226,226,-226 50,57,228,228,-228 50,58,220,229,-229 50,58,222,231,-231 50,58,232,232,-232 50,59,226,235,-235 50,59,228,237,-237 50,59,234,234,-234 50,59,235,235,-235 50,60,229,239,-239 51,53,209,209,-209 51,53,210,210,-210 51,54,200,209,-200 51,54,211,218,-218 51,55,218,218,-218 51,56,200,217,-200 51,56,200,219,-200 51,57,200,223,-200 51,57,226,226,-226 51,57,228,228,-228 51,58,200,225,-200 51,58,200,226,-200 51,58,220,229,-229 51,58,222,231,-231 51,58,232,232,-232 51,59,226,235,-235 51,59,228,237,-237 51,59,234,234,-234 51,59,235,235,-235 51,60,229,239,-239 52,53,209,209,-209 52,53,210,210,-210 52,54,211,218,-218 52,55,218,218,-218 52,57,226,226,-226 52,57,228,228,-228 52,58,220,229,-229 52,58,222,231,-231 52,58,232,232,-232 52,59,226,235,-235 52,59,228,237,-237 52,59,234,234,-234 52,59,235,235,-235 52,60,229,239,-239 53,53,209,209,-209 53,53,210,210,-210 53,55,218,218,-218 53,57,226,226,-226 53,57,228,228,-228 53,58,220,229,-229 53,58,222,231,-231 53,58,232,232,-232 53,59,226,235,-235 53,59,228,237,-237 53,59,234,234,-234 53,59,235,235,-235 53,60,229,239,-239 54,54,212,212,-212 54,54,218,218,-225 54,55,218,218,-218 54,57,226,226,-226 54,57,228,228,-228 54,58,220,229,-229 54,58,222,231,-231 54,58,232,232,-232 54,59,226,235,-235 54,59,228,237,-237 54,59,234,234,-234 54,59,235,235,-235 54,60,229,239,-239 55,55,218,218,-218 55,55,218,218,-224 55,57,226,226,-226 55,57,228,228,-228 55,58,222,231,-231 55,58,232,232,-232 55,59,226,235,-235 55,59,228,237,-237 55,59,234,234,-234 55,59,235,235,-235 55,60,229,239,-239 56,56,221,221,-221 56,57,226,226,-226 56,57,228,228,-228 56,58,232,232,-232 56,59,226,235,-235 56,59,228,237,-237 56,59,234,234,-234 56,59,235,235,-235 56,60,229,239,-239 57,57,221,221,-221 57,57,223,223,-223 57,57,226,226,-226 57,57,228,228,-228 57,58,232,232,-232 57,59,234,234,-234 57,59,235,235,-235 57,60,229,239,-239 58,58,221,221,-229 58,58,223,223,-231 58,58,227,227,-227 58,58,229,229,-229 58,58,229,229,-238 58,58,231,231,-240 58,58,232,232,-232 58,59,234,234,-234 58,59,235,235,-235 59,59,221,221,-229 59,59,222,222,-230 59,59,227,227,-235 59,59,229,229,-229 59,59,229,229,-237 59,59,230,230,-230 59,59,231,231,-239 59,59,234,234,-234 59,59,235,235,-235 59,59,235,235,-244 59,59,237,237,-246 6,10,28,38,-38 6,12,46,46,-46 6,13,51,51,-51 6,15,57,57,-57 6,17,67,67,-67 6,18,62,72,-72 6,25,97,97,-97 6,27,108,108,-108 6,29,114,114,-114 6,53,209,209,-209 6,53,210,210,-210 6,54,211,218,-218 6,55,218,218,-218 6,57,226,226,-226 6,57,228,228,-228 6,58,220,229,-229 6,58,222,231,-231 6,58,232,232,-232 6,59,226,235,-235 6,59,228,237,-237 6,59,234,234,-234 6,59,235,235,-235 6,6,25,25,-25 6,7,25,25,-25 6,7,26,26,-26 6,7,28,28,-28 6,7,69,1082,-1082 6,8,26,33,-33 6,8,27,34,-34 6,8,33,33,-33 6,9,27,36,-36 6,9,33,33,-33 6,9,34,34,-34 6,9,35,35,-35 60,60,229,229,-237 60,60,230,230,-238 60,60,235,235,-243 60,60,237,237,-245 60,60,239,239,-249 61,61,239,239,-248 7,10,1082,69,-1082 7,11,1082,69,-1082 7,12,1082,69,-1082 7,12,46,46,-46 7,13,1082,69,-1082 7,13,51,51,-51 7,14,1082,69,-1082 7,15,1082,69,-1082 7,16,1082,69,-1082 7,17,1082,69,-1082 7,17,67,67,-67 7,18,62,72,-72 7,25,97,97,-97 7,27,108,108,-108 7,29,114,114,-114 7,53,209,209,-209 7,53,210,210,-210 7,54,211,218,-218 7,55,218,218,-218 7,57,226,226,-226 7,57,228,228,-228 7,58,220,229,-229 7,58,222,231,-231 7,58,232,232,-232 7,59,226,235,-235 7,59,228,237,-237 7,59,234,234,-234 7,59,235,235,-235 7,60,229,239,-239 7,7,1082,1082,-2095 7,7,24,24,-2 7,7,25,25,-25 7,7,26,26,-26 7,7,27,27,-18 7,7,28,28,-19 7,7,28,28,-28 7,7,69,1082,-1082 7,8,1082,69,-1082 7,8,33,33,-33 7,8,37,37,-37 7,9,1082,69,-1082 7,9,33,33,-33 7,9,34,34,-34 7,9,35,35,-35 8,12,46,46,-46 8,13,25,42,-29 8,13,51,51,-51 8,15,57,57,-57 8,17,67,67,-67 8,18,62,72,-72 8,25,97,97,-97 8,27,108,108,-108 8,29,114,114,-114 8,53,209,209,-209 8,53,210,210,-210 8,54,211,218,-218 8,55,218,218,-218 8,57,226,226,-226 8,57,228,228,-228 8,58,220,229,-229 8,58,222,231,-231 8,58,232,232,-232 8,59,226,235,-235 8,59,228,237,-237 8,59,234,234,-234 8,59,235,235,-235 8,60,229,239,-239 8,8,24,24,-16 8,8,24,24,-8 8,8,26,26,-25 8,8,27,27,-27 8,8,28,28,-27 8,8,28,28,-28 8,8,32,32,-19 8,8,33,33,-33 8,8,33,33,-40 8,8,34,34,-41 8,8,36,36,-28 8,9,33,33,-33 8,9,34,34,-34 8,9,35,35,-35 8,9,36,36,-36 8,9,37,37,-37 9,12,46,46,-46 9,13,51,51,-51 9,15,57,57,-57 9,17,67,67,-67 9,18,62,72,-72 9,25,97,97,-97 9,27,108,108,-108 9,29,114,114,-114 9,53,209,209,-209 9,53,210,210,-210 9,54,211,218,-218 9,55,218,218,-218 9,57,226,226,-226 9,57,228,228,-228 9,58,220,229,-229 9,58,222,231,-231 9,58,232,232,-232 9,59,226,235,-235 9,59,228,237,-237 9,59,234,234,-234 9,59,235,235,-235 9,60,229,239,-239 9,9,28,28,-36 9,9,29,29,-29 9,9,32,32,-22 9,9,33,33,-33 9,9,33,33,-39 9,9,34,34,-34 9,9,34,34,-40 9,9,35,35,-35 9,9,36,36,-36 9,9,36,36,-45 9,9,37,37,-29 9,9,37,37,-37 9,9,45,45,-29 99,99,384,384,-246