From: Hamed Gorjiara Date: Thu, 6 Sep 2018 20:57:56 +0000 (-0700) Subject: Bugfix for Sudoku solver + Using Glucose instead of Pycosat X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=457ddef68a9d8645a925201aafb28a3c144b34df;p=Benchmarks_CSolver.git Bugfix for Sudoku solver + Using Glucose instead of Pycosat --- diff --git a/sudoku-csolver/.gitignore b/sudoku-csolver/.gitignore index 648641e1..ae149edf 100644 --- a/sudoku-csolver/.gitignore +++ b/sudoku-csolver/.gitignore @@ -1,9 +1,11 @@ numpy*/ pycosat*/ bin/ -solved/ +solved/* csolver *.class *.so *.pyc +*.in +*.out diff --git a/sudoku-csolver/Sudoku.py b/sudoku-csolver/Sudoku.py index d84b126b..676425d2 100644 --- a/sudoku-csolver/Sudoku.py +++ b/sudoku-csolver/Sudoku.py @@ -1,4 +1,4 @@ -import pycosat +import glucose import sys, getopt import time import numpy as np @@ -154,12 +154,13 @@ def sudoku_clauses(): # for all cells, ensure that the each cell: for i in range(1, N+1): for j in range(1, N+1): - # denotes (at least) one of the 9 digits (1 clause) - res.append([v(i, j, d) for d in range(1, N+1)]) # does not denote two different digits at once (36 clauses) for d in range(1, N+1): for dp in range(d + 1, N+1): - res.append([-v(i, j, d), -v(i, j, dp)]) + res.append([ -v(i, j, dp), -v(i, j, d)]) + # denotes (at least) one of the 9 digits (1 clause) + res.append([v(i, j, d) for d in range(1, N+1)]) + print "First one :" + str( len(res)) def valid(cells): @@ -197,10 +198,11 @@ def solve(grid): # Print number SAT clause numclause = len(clauses) print "P CNF " + str(numclause) +"(number of clauses)" - +# for c in clauses: +# print c # solve the SAT problem start = time.time() - sol = set(pycosat.solve(clauses)) + sol = set(glucose.solve(clauses, N**3)) end = time.time() print("SUDOKU SAT SOLVING TIME: "+str(end - start)) diff --git a/sudoku-csolver/csolversudoku.py b/sudoku-csolver/csolversudoku.py index f61a040c..ac1fef63 100644 --- a/sudoku-csolver/csolversudoku.py +++ b/sudoku-csolver/csolversudoku.py @@ -14,8 +14,19 @@ def replaceWithElemConstOptimization(elemConsts, problem, sudoku): for j, cell in enumerate(row): if cell != 0: problem[i][j] = elemConsts[cell-1] + +def constantCellConstraint(csolverlb, solver, elemConsts, problem, sudoku): + for i,row in enumerate(sudoku): + for j, cell in enumerate(row): + if cell != 0: + csolverlb.addConstraint(solver, generateEqualityConstraint(csolverlb, solver, problem[i][j], elemConsts[cell-1])) - +def generateEqualityConstraint(csolverlb, solver, e1, e2): + equals = csolverlb.createPredicateOperator(solver, c_uint(ps.CompOp.SATC_EQUALS)) + inp = [e1,e2] + inputs = (c_void_p*len(inp))(*inp) + b = csolverlb.applyPredicate(solver,equals, inputs, c_uint(2)) + return b def extractItemInSetOptimization(csolverlb, solver, sudoku, N): sets =[ [[i for i in range(1, N+1)] for i in range(N)] for i in range (N)] @@ -48,13 +59,10 @@ def generateSudokuConstraints(N, sudoku = None, serialize=False): s1 = [ i for i in range(1, N+1)] set1 = (c_long* len(s1))(*s1) s1 = csolverlb.createSet(solver, c_uint(1), set1, c_uint(N)) - problem = np.array([[csolverlb.getElementVar(solver,s1) for i in range(N)] for i in range(N)]) if sudoku is None else extractItemInSetOptimization(csolverlb, solver, sudoku, N) + problem = np.array([[csolverlb.getElementVar(solver,s1) for i in range(N)] for i in range(N)])# if sudoku is None else extractItemInSetOptimization(csolverlb, solver, sudoku, N) elemConsts = [csolverlb.getElementConst(solver, c_uint(1), i) for i in range(1, N+1)] - # Is it a sudoku to solve? - if sudoku is not None: - replaceWithElemConstOptimization(elemConsts, problem, sudoku) - + def valid(cells): for i, ei in enumerate(cells): for j, ej in enumerate(cells): @@ -72,32 +80,32 @@ def generateSudokuConstraints(N, sudoku = None, serialize=False): # ensure each cell at least has one value! - for i,row in enumerate(problem): - for j, elem in enumerate(row): - constr = [] - for econst in elemConsts: - s1 = csolverlb.getElementRange(solver, elem) - sconst = csolverlb.getElementRange(solver,econst) - d = [s1,sconst] - domain = (c_void_p *len(d))(*d) - equals = csolverlb.createPredicateOperator(solver, c_uint(ps.CompOp.SATC_EQUALS)) - inp = [elem,econst] - inputs = (c_void_p*len(inp))(*inp) - constr.append( csolverlb.applyPredicate(solver,equals, inputs, c_uint(2))) - b = (c_void_p*len(constr))(*constr) - b = csolverlb.applyLogicalOperation(solver, ps.LogicOps.SATC_OR, b, len(constr)) - csolverlb.addConstraint(solver,b); +# for i,row in enumerate(problem): +# for j, elem in enumerate(row): +# constr = [] +# for econst in elemConsts: +# s1 = csolverlb.getElementRange(solver, elem) +# sconst = csolverlb.getElementRange(solver,econst) +# d = [s1,sconst] +# domain = (c_void_p *len(d))(*d) +# equals = csolverlb.createPredicateOperator(solver, c_uint(ps.CompOp.SATC_EQUALS)) +# inp = [elem,econst] +# inputs = (c_void_p*len(inp))(*inp) +# constr.append( csolverlb.applyPredicate(solver,equals, inputs, c_uint(2))) +# b = (c_void_p*len(constr))(*constr) +# b = csolverlb.applyLogicalOperation(solver, ps.LogicOps.SATC_OR, b, len(constr)) +# csolverlb.addConstraint(solver,b); #ensure each cell at least has one value -# for i,row in enumerate(problem): -# for j, elem in enumerate(row): -# csolverlb.mustHaveValue(solver, elem) + for i,row in enumerate(problem): + for j, elem in enumerate(row): + csolverlb.mustHaveValue(solver, elem) # ensure rows and columns have distinct values for i in range( N): - valid(problem[:,i]) - valid(problem[i,:]) + valid(problem[:,i]) + valid(problem[i,:]) # ensure each block has distinct values root = int(N**(0.5)) @@ -105,7 +113,14 @@ def generateSudokuConstraints(N, sudoku = None, serialize=False): for i in collections: for j in collections: valid([problem[i + k % root, j + k // root] for k in range(N)]) + + # Is it a sudoku to solve? + if sudoku is not None: +# replaceWithElemConstOptimization(elemConsts, problem, sudoku) + constantCellConstraint(csolverlb, solver, elemConsts, problem, sudoku) + +# csolverlb.printConstraints(solver); #Serializing the problem before solving it .... if serialize: csolverlb.serialize(solver) diff --git a/sudoku-csolver/glucose.py b/sudoku-csolver/glucose.py new file mode 100644 index 00000000..a27ed8c2 --- /dev/null +++ b/sudoku-csolver/glucose.py @@ -0,0 +1,63 @@ + +cnf_in_filename = 'cnf.in' +cnf_out_filename = 'cnf.out' + +import subprocess +import re + +def in_file_out_file(exe_name): + ''' Run a minisat style solver''' + def solve(infilename, outfilename): + return subprocess.call( + [exe_name, infilename, outfilename] + ) + return solve + +def in_file_out_pipe(exe_name): + ''' Run a precosat style solver''' + def solve(infilename, outfilename): + with open(outfilename, 'w') as fil: + return subprocess.call( + [exe_name, infilename], + stdout=fil + ) + return solve + +#SAT_SOLVE = in_file_out_pipe('./lingeling') +#SAT_SOLVE = in_file_out_file('./cryptominisat') +SAT_SOLVE = in_file_out_file('./glucose_static') + + +def print_cnf_file(clauses, fil, maxVar): + print >> fil, 'p cnf', maxVar , len(clauses) + for (i,clause) in enumerate(clauses): + for lit in clause: + print >> fil, lit, + print >> fil, '0' + + +def get_SAT_assignments(fil): + assignments = [] + for line in fil: + if 'UNSAT' in line.upper(): + return None + for word in line.split(): + if re.match(r'-?\d+$', word): + n = int(word) + if n == 0: + return assignments + else: + assignments.append(n) + return assignments + + +def solve(clauses, maxVar): + assignments = [] + with open(cnf_in_filename, 'w') as fil: + print_cnf_file(clauses, fil, maxVar ) + + SAT_SOLVE(cnf_in_filename, cnf_out_filename) + + with open(cnf_out_filename, 'r') as fil: + assignments = get_SAT_assignments(fil) + return assignments \ No newline at end of file diff --git a/sudoku-csolver/glucose_static b/sudoku-csolver/glucose_static new file mode 100755 index 00000000..309030bd Binary files /dev/null and b/sudoku-csolver/glucose_static differ diff --git a/sudoku-csolver/parse.sh b/sudoku-csolver/parse.sh index 09d69d96..a3c5ecea 100755 --- a/sudoku-csolver/parse.sh +++ b/sudoku-csolver/parse.sh @@ -28,6 +28,7 @@ while IFS='' read -r line || [[ -n "$line" ]]; do if [[ $line == $SATTIME ]]; then number=$(echo $line|grep -Eo '[+-]?[0-9]+([.][0-9]+)?') row+=","$number + timeout=1 fi done < "$1" diff --git a/sudoku-csolver/solved/36x36.sol b/sudoku-csolver/solved/36x36.sol index d7a2079e..b5367862 100644 --- a/sudoku-csolver/solved/36x36.sol +++ b/sudoku-csolver/solved/36x36.sol @@ -1,36 +1,36 @@ -1.900000000000000000e+01 1.800000000000000000e+01 2.700000000000000000e+01 2.400000000000000000e+01 1.500000000000000000e+01 3.100000000000000000e+01 3.300000000000000000e+01 2.900000000000000000e+01 2.000000000000000000e+00 9.000000000000000000e+00 2.200000000000000000e+01 1.300000000000000000e+01 1.700000000000000000e+01 5.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 3.500000000000000000e+01 2.500000000000000000e+01 2.000000000000000000e+01 2.300000000000000000e+01 1.100000000000000000e+01 2.600000000000000000e+01 1.200000000000000000e+01 2.100000000000000000e+01 2.800000000000000000e+01 6.000000000000000000e+00 4.000000000000000000e+00 1.000000000000000000e+00 1.400000000000000000e+01 3.600000000000000000e+01 1.000000000000000000e+01 7.000000000000000000e+00 3.400000000000000000e+01 3.000000000000000000e+01 3.000000000000000000e+00 8.000000000000000000e+00 -6.000000000000000000e+00 4.000000000000000000e+00 5.000000000000000000e+00 3.400000000000000000e+01 1.200000000000000000e+01 1.000000000000000000e+00 3.200000000000000000e+01 2.800000000000000000e+01 2.300000000000000000e+01 8.000000000000000000e+00 7.000000000000000000e+00 3.100000000000000000e+01 3.000000000000000000e+00 3.300000000000000000e+01 2.700000000000000000e+01 2.200000000000000000e+01 1.000000000000000000e+01 3.000000000000000000e+01 2.400000000000000000e+01 1.900000000000000000e+01 1.800000000000000000e+01 1.600000000000000000e+01 1.300000000000000000e+01 9.000000000000000000e+00 3.500000000000000000e+01 1.700000000000000000e+01 2.600000000000000000e+01 1.500000000000000000e+01 2.100000000000000000e+01 2.000000000000000000e+01 3.600000000000000000e+01 2.900000000000000000e+01 2.500000000000000000e+01 1.100000000000000000e+01 1.400000000000000000e+01 2.000000000000000000e+00 -9.000000000000000000e+00 2.200000000000000000e+01 1.100000000000000000e+01 3.000000000000000000e+01 3.300000000000000000e+01 3.200000000000000000e+01 1.000000000000000000e+01 1.400000000000000000e+01 1.800000000000000000e+01 2.100000000000000000e+01 2.600000000000000000e+01 2.000000000000000000e+01 8.000000000000000000e+00 1.200000000000000000e+01 3.600000000000000000e+01 3.100000000000000000e+01 2.400000000000000000e+01 3.400000000000000000e+01 4.000000000000000000e+00 2.000000000000000000e+00 3.000000000000000000e+00 2.900000000000000000e+01 3.500000000000000000e+01 2.800000000000000000e+01 2.700000000000000000e+01 2.500000000000000000e+01 7.000000000000000000e+00 1.300000000000000000e+01 2.300000000000000000e+01 5.000000000000000000e+00 1.900000000000000000e+01 1.500000000000000000e+01 1.700000000000000000e+01 1.000000000000000000e+00 1.600000000000000000e+01 6.000000000000000000e+00 -3.600000000000000000e+01 3.500000000000000000e+01 2.500000000000000000e+01 2.100000000000000000e+01 2.000000000000000000e+01 2.300000000000000000e+01 1.700000000000000000e+01 1.500000000000000000e+01 2.700000000000000000e+01 1.900000000000000000e+01 1.200000000000000000e+01 1.100000000000000000e+01 9.000000000000000000e+00 4.000000000000000000e+00 1.000000000000000000e+00 1.800000000000000000e+01 6.000000000000000000e+00 1.400000000000000000e+01 2.200000000000000000e+01 5.000000000000000000e+00 3.300000000000000000e+01 3.400000000000000000e+01 7.000000000000000000e+00 1.000000000000000000e+01 2.000000000000000000e+00 3.000000000000000000e+01 3.000000000000000000e+00 1.600000000000000000e+01 2.900000000000000000e+01 8.000000000000000000e+00 1.300000000000000000e+01 3.200000000000000000e+01 2.400000000000000000e+01 2.800000000000000000e+01 3.100000000000000000e+01 2.600000000000000000e+01 -2.900000000000000000e+01 2.800000000000000000e+01 2.600000000000000000e+01 1.000000000000000000e+01 3.000000000000000000e+00 1.700000000000000000e+01 6.000000000000000000e+00 4.000000000000000000e+00 3.600000000000000000e+01 1.600000000000000000e+01 3.500000000000000000e+01 5.000000000000000000e+00 2.300000000000000000e+01 2.000000000000000000e+00 1.300000000000000000e+01 1.900000000000000000e+01 2.000000000000000000e+01 7.000000000000000000e+00 8.000000000000000000e+00 2.500000000000000000e+01 1.000000000000000000e+00 3.000000000000000000e+01 1.400000000000000000e+01 1.500000000000000000e+01 1.100000000000000000e+01 2.400000000000000000e+01 3.400000000000000000e+01 9.000000000000000000e+00 3.200000000000000000e+01 3.100000000000000000e+01 2.100000000000000000e+01 2.700000000000000000e+01 3.300000000000000000e+01 1.800000000000000000e+01 1.200000000000000000e+01 2.200000000000000000e+01 -1.600000000000000000e+01 1.300000000000000000e+01 1.400000000000000000e+01 2.000000000000000000e+00 7.000000000000000000e+00 8.000000000000000000e+00 3.400000000000000000e+01 2.400000000000000000e+01 3.000000000000000000e+00 2.500000000000000000e+01 1.000000000000000000e+00 3.000000000000000000e+01 2.800000000000000000e+01 2.100000000000000000e+01 2.900000000000000000e+01 2.600000000000000000e+01 1.100000000000000000e+01 1.500000000000000000e+01 6.000000000000000000e+00 2.700000000000000000e+01 1.700000000000000000e+01 3.600000000000000000e+01 3.100000000000000000e+01 3.200000000000000000e+01 3.300000000000000000e+01 1.000000000000000000e+01 1.800000000000000000e+01 2.200000000000000000e+01 1.900000000000000000e+01 1.200000000000000000e+01 2.000000000000000000e+01 3.500000000000000000e+01 5.000000000000000000e+00 4.000000000000000000e+00 2.300000000000000000e+01 9.000000000000000000e+00 -3.500000000000000000e+01 3.300000000000000000e+01 3.600000000000000000e+01 3.200000000000000000e+01 2.700000000000000000e+01 3.000000000000000000e+01 3.100000000000000000e+01 8.000000000000000000e+00 2.900000000000000000e+01 2.800000000000000000e+01 2.500000000000000000e+01 2.600000000000000000e+01 2.400000000000000000e+01 2.000000000000000000e+01 2.300000000000000000e+01 1.200000000000000000e+01 1.600000000000000000e+01 2.100000000000000000e+01 9.000000000000000000e+00 1.700000000000000000e+01 1.300000000000000000e+01 1.400000000000000000e+01 1.800000000000000000e+01 1.900000000000000000e+01 6.000000000000000000e+00 1.000000000000000000e+00 2.200000000000000000e+01 1.100000000000000000e+01 2.000000000000000000e+00 1.000000000000000000e+01 4.000000000000000000e+00 3.000000000000000000e+00 1.500000000000000000e+01 5.000000000000000000e+00 3.400000000000000000e+01 7.000000000000000000e+00 -1.800000000000000000e+01 3.100000000000000000e+01 1.200000000000000000e+01 7.000000000000000000e+00 2.900000000000000000e+01 2.800000000000000000e+01 3.600000000000000000e+01 3.400000000000000000e+01 3.200000000000000000e+01 2.700000000000000000e+01 3.300000000000000000e+01 2.000000000000000000e+00 1.400000000000000000e+01 1.900000000000000000e+01 3.000000000000000000e+01 9.000000000000000000e+00 2.500000000000000000e+01 1.100000000000000000e+01 1.000000000000000000e+00 2.200000000000000000e+01 1.500000000000000000e+01 2.300000000000000000e+01 2.600000000000000000e+01 5.000000000000000000e+00 4.000000000000000000e+00 3.500000000000000000e+01 1.700000000000000000e+01 2.100000000000000000e+01 2.400000000000000000e+01 3.000000000000000000e+00 8.000000000000000000e+00 2.000000000000000000e+01 6.000000000000000000e+00 1.600000000000000000e+01 1.000000000000000000e+01 1.300000000000000000e+01 -2.600000000000000000e+01 1.900000000000000000e+01 1.300000000000000000e+01 2.500000000000000000e+01 2.400000000000000000e+01 2.200000000000000000e+01 3.500000000000000000e+01 3.000000000000000000e+01 2.000000000000000000e+01 1.800000000000000000e+01 1.700000000000000000e+01 2.100000000000000000e+01 2.900000000000000000e+01 3.400000000000000000e+01 6.000000000000000000e+00 1.000000000000000000e+01 3.200000000000000000e+01 3.100000000000000000e+01 1.100000000000000000e+01 3.300000000000000000e+01 2.800000000000000000e+01 2.700000000000000000e+01 4.000000000000000000e+00 3.000000000000000000e+00 7.000000000000000000e+00 3.600000000000000000e+01 1.600000000000000000e+01 8.000000000000000000e+00 5.000000000000000000e+00 1.500000000000000000e+01 1.000000000000000000e+00 9.000000000000000000e+00 2.300000000000000000e+01 1.200000000000000000e+01 2.000000000000000000e+00 1.400000000000000000e+01 -2.300000000000000000e+01 2.100000000000000000e+01 1.500000000000000000e+01 1.600000000000000000e+01 1.700000000000000000e+01 1.400000000000000000e+01 2.400000000000000000e+01 1.200000000000000000e+01 1.900000000000000000e+01 2.200000000000000000e+01 1.300000000000000000e+01 1.000000000000000000e+01 1.000000000000000000e+00 3.000000000000000000e+00 2.000000000000000000e+00 5.000000000000000000e+00 7.000000000000000000e+00 4.000000000000000000e+00 3.600000000000000000e+01 3.200000000000000000e+01 3.500000000000000000e+01 8.000000000000000000e+00 2.900000000000000000e+01 6.000000000000000000e+00 2.600000000000000000e+01 2.700000000000000000e+01 9.000000000000000000e+00 3.400000000000000000e+01 2.000000000000000000e+01 3.300000000000000000e+01 2.800000000000000000e+01 1.100000000000000000e+01 1.800000000000000000e+01 3.100000000000000000e+01 2.500000000000000000e+01 3.000000000000000000e+01 -2.000000000000000000e+01 1.100000000000000000e+01 1.000000000000000000e+01 9.000000000000000000e+00 5.000000000000000000e+00 2.000000000000000000e+00 4.000000000000000000e+00 1.000000000000000000e+00 1.400000000000000000e+01 6.000000000000000000e+00 3.000000000000000000e+00 1.600000000000000000e+01 2.600000000000000000e+01 1.500000000000000000e+01 8.000000000000000000e+00 3.600000000000000000e+01 3.300000000000000000e+01 2.700000000000000000e+01 3.400000000000000000e+01 1.200000000000000000e+01 3.000000000000000000e+01 7.000000000000000000e+00 2.400000000000000000e+01 3.100000000000000000e+01 3.200000000000000000e+01 1.300000000000000000e+01 2.800000000000000000e+01 2.500000000000000000e+01 1.800000000000000000e+01 2.300000000000000000e+01 2.900000000000000000e+01 2.200000000000000000e+01 3.500000000000000000e+01 1.700000000000000000e+01 2.100000000000000000e+01 1.900000000000000000e+01 -4.000000000000000000e+00 6.000000000000000000e+00 1.000000000000000000e+00 8.000000000000000000e+00 3.400000000000000000e+01 3.000000000000000000e+00 2.300000000000000000e+01 1.100000000000000000e+01 1.500000000000000000e+01 7.000000000000000000e+00 5.000000000000000000e+00 9.000000000000000000e+00 3.500000000000000000e+01 2.800000000000000000e+01 2.200000000000000000e+01 1.700000000000000000e+01 1.800000000000000000e+01 1.300000000000000000e+01 2.500000000000000000e+01 2.100000000000000000e+01 2.000000000000000000e+01 1.000000000000000000e+01 1.600000000000000000e+01 2.000000000000000000e+00 3.100000000000000000e+01 2.900000000000000000e+01 1.900000000000000000e+01 1.400000000000000000e+01 1.200000000000000000e+01 3.000000000000000000e+01 3.200000000000000000e+01 3.600000000000000000e+01 2.700000000000000000e+01 2.600000000000000000e+01 3.300000000000000000e+01 2.400000000000000000e+01 -3.400000000000000000e+01 3.600000000000000000e+01 3.300000000000000000e+01 3.100000000000000000e+01 3.500000000000000000e+01 2.900000000000000000e+01 3.000000000000000000e+01 3.200000000000000000e+01 2.800000000000000000e+01 2.600000000000000000e+01 2.700000000000000000e+01 2.500000000000000000e+01 2.200000000000000000e+01 2.400000000000000000e+01 2.100000000000000000e+01 2.300000000000000000e+01 1.900000000000000000e+01 2.000000000000000000e+01 1.800000000000000000e+01 1.600000000000000000e+01 1.400000000000000000e+01 1.500000000000000000e+01 1.700000000000000000e+01 1.300000000000000000e+01 1.200000000000000000e+01 1.100000000000000000e+01 1.000000000000000000e+01 7.000000000000000000e+00 8.000000000000000000e+00 9.000000000000000000e+00 2.000000000000000000e+00 4.000000000000000000e+00 1.000000000000000000e+00 3.000000000000000000e+00 6.000000000000000000e+00 5.000000000000000000e+00 -3.200000000000000000e+01 3.000000000000000000e+01 2.800000000000000000e+01 2.700000000000000000e+01 2.600000000000000000e+01 2.500000000000000000e+01 2.900000000000000000e+01 3.600000000000000000e+01 3.500000000000000000e+01 3.300000000000000000e+01 3.100000000000000000e+01 3.400000000000000000e+01 1.800000000000000000e+01 1.600000000000000000e+01 1.500000000000000000e+01 1.400000000000000000e+01 1.300000000000000000e+01 6.000000000000000000e+00 2.300000000000000000e+01 2.400000000000000000e+01 2.200000000000000000e+01 2.100000000000000000e+01 2.000000000000000000e+01 1.100000000000000000e+01 1.900000000000000000e+01 4.000000000000000000e+00 5.000000000000000000e+00 3.000000000000000000e+00 1.000000000000000000e+00 2.000000000000000000e+00 1.700000000000000000e+01 8.000000000000000000e+00 7.000000000000000000e+00 1.000000000000000000e+01 9.000000000000000000e+00 1.200000000000000000e+01 -2.400000000000000000e+01 2.300000000000000000e+01 2.200000000000000000e+01 2.000000000000000000e+01 1.900000000000000000e+01 1.800000000000000000e+01 2.100000000000000000e+01 1.700000000000000000e+01 1.600000000000000000e+01 1.500000000000000000e+01 1.400000000000000000e+01 1.200000000000000000e+01 1.000000000000000000e+01 3.200000000000000000e+01 9.000000000000000000e+00 3.000000000000000000e+01 8.000000000000000000e+00 5.000000000000000000e+00 7.000000000000000000e+00 6.000000000000000000e+00 4.000000000000000000e+00 3.000000000000000000e+00 2.000000000000000000e+00 1.000000000000000000e+00 2.500000000000000000e+01 3.300000000000000000e+01 3.100000000000000000e+01 2.700000000000000000e+01 3.500000000000000000e+01 3.400000000000000000e+01 2.600000000000000000e+01 2.800000000000000000e+01 3.600000000000000000e+01 1.300000000000000000e+01 2.900000000000000000e+01 1.100000000000000000e+01 -2.100000000000000000e+01 1.700000000000000000e+01 1.600000000000000000e+01 1.500000000000000000e+01 1.400000000000000000e+01 1.300000000000000000e+01 2.200000000000000000e+01 2.300000000000000000e+01 1.100000000000000000e+01 2.000000000000000000e+01 1.900000000000000000e+01 1.800000000000000000e+01 7.000000000000000000e+00 1.000000000000000000e+00 4.000000000000000000e+00 3.000000000000000000e+00 2.000000000000000000e+00 1.200000000000000000e+01 5.000000000000000000e+00 3.100000000000000000e+01 1.000000000000000000e+01 9.000000000000000000e+00 3.400000000000000000e+01 8.000000000000000000e+00 2.900000000000000000e+01 3.200000000000000000e+01 3.600000000000000000e+01 6.000000000000000000e+00 2.600000000000000000e+01 2.800000000000000000e+01 3.500000000000000000e+01 2.400000000000000000e+01 3.000000000000000000e+01 3.300000000000000000e+01 2.700000000000000000e+01 2.500000000000000000e+01 -1.200000000000000000e+01 1.000000000000000000e+01 9.000000000000000000e+00 1.100000000000000000e+01 8.000000000000000000e+00 7.000000000000000000e+00 5.000000000000000000e+00 6.000000000000000000e+00 4.000000000000000000e+00 3.000000000000000000e+00 2.000000000000000000e+00 1.000000000000000000e+00 3.400000000000000000e+01 3.100000000000000000e+01 2.500000000000000000e+01 3.300000000000000000e+01 3.600000000000000000e+01 3.500000000000000000e+01 2.900000000000000000e+01 3.000000000000000000e+01 3.200000000000000000e+01 2.800000000000000000e+01 2.700000000000000000e+01 2.600000000000000000e+01 1.300000000000000000e+01 2.200000000000000000e+01 2.000000000000000000e+01 2.400000000000000000e+01 1.700000000000000000e+01 1.400000000000000000e+01 1.600000000000000000e+01 1.900000000000000000e+01 2.100000000000000000e+01 1.500000000000000000e+01 1.800000000000000000e+01 2.300000000000000000e+01 -3.000000000000000000e+00 1.000000000000000000e+00 2.000000000000000000e+00 4.000000000000000000e+00 6.000000000000000000e+00 5.000000000000000000e+00 1.300000000000000000e+01 1.000000000000000000e+01 9.000000000000000000e+00 2.400000000000000000e+01 8.000000000000000000e+00 7.000000000000000000e+00 2.700000000000000000e+01 2.600000000000000000e+01 2.800000000000000000e+01 1.100000000000000000e+01 1.700000000000000000e+01 2.900000000000000000e+01 3.500000000000000000e+01 3.600000000000000000e+01 2.500000000000000000e+01 3.300000000000000000e+01 1.900000000000000000e+01 1.200000000000000000e+01 3.000000000000000000e+01 2.300000000000000000e+01 2.100000000000000000e+01 1.800000000000000000e+01 1.500000000000000000e+01 1.600000000000000000e+01 3.400000000000000000e+01 3.100000000000000000e+01 3.200000000000000000e+01 1.400000000000000000e+01 2.200000000000000000e+01 2.000000000000000000e+01 -3.300000000000000000e+01 3.400000000000000000e+01 3.500000000000000000e+01 3.600000000000000000e+01 3.200000000000000000e+01 2.700000000000000000e+01 2.800000000000000000e+01 3.100000000000000000e+01 3.000000000000000000e+01 2.900000000000000000e+01 2.400000000000000000e+01 2.300000000000000000e+01 2.500000000000000000e+01 2.200000000000000000e+01 2.600000000000000000e+01 2.100000000000000000e+01 1.500000000000000000e+01 1.700000000000000000e+01 1.900000000000000000e+01 2.000000000000000000e+01 1.600000000000000000e+01 1.800000000000000000e+01 1.100000000000000000e+01 1.400000000000000000e+01 1.000000000000000000e+01 1.200000000000000000e+01 1.300000000000000000e+01 5.000000000000000000e+00 9.000000000000000000e+00 7.000000000000000000e+00 6.000000000000000000e+00 2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.000000000000000000e+00 3.000000000000000000e+00 -3.100000000000000000e+01 2.900000000000000000e+01 3.000000000000000000e+01 2.800000000000000000e+01 2.500000000000000000e+01 2.600000000000000000e+01 2.700000000000000000e+01 3.500000000000000000e+01 3.400000000000000000e+01 3.600000000000000000e+01 3.200000000000000000e+01 3.300000000000000000e+01 2.000000000000000000e+01 2.300000000000000000e+01 2.400000000000000000e+01 1.600000000000000000e+01 1.400000000000000000e+01 1.900000000000000000e+01 2.100000000000000000e+01 1.500000000000000000e+01 9.000000000000000000e+00 1.200000000000000000e+01 1.000000000000000000e+01 2.200000000000000000e+01 1.000000000000000000e+00 2.000000000000000000e+00 8.000000000000000000e+00 4.000000000000000000e+00 3.000000000000000000e+00 6.000000000000000000e+00 5.000000000000000000e+00 1.800000000000000000e+01 1.100000000000000000e+01 7.000000000000000000e+00 1.300000000000000000e+01 1.700000000000000000e+01 -1.500000000000000000e+01 2.400000000000000000e+01 2.300000000000000000e+01 2.200000000000000000e+01 1.800000000000000000e+01 2.100000000000000000e+01 2.600000000000000000e+01 2.500000000000000000e+01 1.700000000000000000e+01 1.400000000000000000e+01 2.000000000000000000e+01 1.900000000000000000e+01 1.300000000000000000e+01 3.600000000000000000e+01 3.300000000000000000e+01 7.000000000000000000e+00 5.000000000000000000e+00 8.000000000000000000e+00 2.000000000000000000e+00 4.000000000000000000e+00 6.000000000000000000e+00 1.000000000000000000e+00 3.000000000000000000e+00 2.900000000000000000e+01 3.400000000000000000e+01 3.100000000000000000e+01 3.500000000000000000e+01 3.200000000000000000e+01 2.700000000000000000e+01 1.100000000000000000e+01 1.200000000000000000e+01 1.000000000000000000e+01 2.800000000000000000e+01 9.000000000000000000e+00 3.000000000000000000e+01 1.600000000000000000e+01 -1.700000000000000000e+01 2.000000000000000000e+01 1.900000000000000000e+01 1.200000000000000000e+01 1.600000000000000000e+01 1.100000000000000000e+01 1.800000000000000000e+01 2.200000000000000000e+01 7.000000000000000000e+00 2.000000000000000000e+00 2.100000000000000000e+01 1.500000000000000000e+01 6.000000000000000000e+00 1.000000000000000000e+01 3.000000000000000000e+00 1.000000000000000000e+00 4.000000000000000000e+00 9.000000000000000000e+00 3.100000000000000000e+01 1.300000000000000000e+01 8.000000000000000000e+00 5.000000000000000000e+00 2.800000000000000000e+01 2.400000000000000000e+01 2.300000000000000000e+01 2.600000000000000000e+01 3.000000000000000000e+01 3.300000000000000000e+01 3.600000000000000000e+01 2.500000000000000000e+01 2.700000000000000000e+01 3.400000000000000000e+01 1.400000000000000000e+01 2.900000000000000000e+01 3.200000000000000000e+01 3.500000000000000000e+01 -1.400000000000000000e+01 3.000000000000000000e+00 8.000000000000000000e+00 1.000000000000000000e+00 1.300000000000000000e+01 1.000000000000000000e+01 1.200000000000000000e+01 9.000000000000000000e+00 6.000000000000000000e+00 5.000000000000000000e+00 1.600000000000000000e+01 4.000000000000000000e+00 3.200000000000000000e+01 3.000000000000000000e+01 1.100000000000000000e+01 2.000000000000000000e+00 3.100000000000000000e+01 2.800000000000000000e+01 2.700000000000000000e+01 7.000000000000000000e+00 3.400000000000000000e+01 1.700000000000000000e+01 2.500000000000000000e+01 3.500000000000000000e+01 2.000000000000000000e+01 1.500000000000000000e+01 2.900000000000000000e+01 1.900000000000000000e+01 2.200000000000000000e+01 1.800000000000000000e+01 2.400000000000000000e+01 2.100000000000000000e+01 2.600000000000000000e+01 2.300000000000000000e+01 3.600000000000000000e+01 3.300000000000000000e+01 -7.000000000000000000e+00 9.000000000000000000e+00 6.000000000000000000e+00 5.000000000000000000e+00 2.000000000000000000e+00 4.000000000000000000e+00 3.000000000000000000e+00 1.300000000000000000e+01 1.000000000000000000e+00 1.100000000000000000e+01 1.000000000000000000e+01 8.000000000000000000e+00 1.200000000000000000e+01 2.700000000000000000e+01 3.500000000000000000e+01 3.400000000000000000e+01 2.900000000000000000e+01 1.800000000000000000e+01 3.300000000000000000e+01 2.600000000000000000e+01 3.600000000000000000e+01 3.200000000000000000e+01 3.000000000000000000e+01 2.300000000000000000e+01 2.400000000000000000e+01 2.800000000000000000e+01 1.400000000000000000e+01 1.700000000000000000e+01 1.600000000000000000e+01 2.100000000000000000e+01 3.100000000000000000e+01 2.500000000000000000e+01 2.200000000000000000e+01 2.000000000000000000e+01 1.900000000000000000e+01 1.500000000000000000e+01 -3.000000000000000000e+01 2.000000000000000000e+00 3.400000000000000000e+01 3.000000000000000000e+00 1.000000000000000000e+00 9.000000000000000000e+00 8.000000000000000000e+00 3.300000000000000000e+01 3.100000000000000000e+01 1.700000000000000000e+01 3.600000000000000000e+01 3.500000000000000000e+01 2.100000000000000000e+01 2.900000000000000000e+01 3.200000000000000000e+01 2.800000000000000000e+01 2.700000000000000000e+01 2.600000000000000000e+01 1.600000000000000000e+01 1.800000000000000000e+01 2.400000000000000000e+01 2.500000000000000000e+01 2.300000000000000000e+01 2.000000000000000000e+01 5.000000000000000000e+00 1.900000000000000000e+01 1.500000000000000000e+01 1.200000000000000000e+01 1.300000000000000000e+01 2.200000000000000000e+01 7.000000000000000000e+00 1.400000000000000000e+01 1.000000000000000000e+01 6.000000000000000000e+00 1.100000000000000000e+01 4.000000000000000000e+00 -2.800000000000000000e+01 3.200000000000000000e+01 3.100000000000000000e+01 3.500000000000000000e+01 3.600000000000000000e+01 3.300000000000000000e+01 2.500000000000000000e+01 2.700000000000000000e+01 2.600000000000000000e+01 3.400000000000000000e+01 3.000000000000000000e+01 2.900000000000000000e+01 1.900000000000000000e+01 1.800000000000000000e+01 2.000000000000000000e+01 2.400000000000000000e+01 2.300000000000000000e+01 2.200000000000000000e+01 1.700000000000000000e+01 1.400000000000000000e+01 2.100000000000000000e+01 1.300000000000000000e+01 1.500000000000000000e+01 7.000000000000000000e+00 1.600000000000000000e+01 9.000000000000000000e+00 1.100000000000000000e+01 1.000000000000000000e+01 6.000000000000000000e+00 4.000000000000000000e+00 3.000000000000000000e+00 1.200000000000000000e+01 8.000000000000000000e+00 2.000000000000000000e+00 5.000000000000000000e+00 1.000000000000000000e+00 -2.700000000000000000e+01 5.000000000000000000e+00 7.000000000000000000e+00 6.000000000000000000e+00 2.300000000000000000e+01 2.400000000000000000e+01 2.000000000000000000e+00 2.100000000000000000e+01 2.200000000000000000e+01 3.200000000000000000e+01 2.800000000000000000e+01 1.400000000000000000e+01 3.600000000000000000e+01 3.500000000000000000e+01 3.400000000000000000e+01 2.500000000000000000e+01 3.000000000000000000e+00 3.300000000000000000e+01 3.000000000000000000e+01 1.000000000000000000e+01 1.200000000000000000e+01 1.100000000000000000e+01 9.000000000000000000e+00 4.000000000000000000e+00 1.700000000000000000e+01 8.000000000000000000e+00 1.000000000000000000e+00 2.900000000000000000e+01 3.100000000000000000e+01 2.600000000000000000e+01 1.500000000000000000e+01 1.600000000000000000e+01 1.300000000000000000e+01 1.900000000000000000e+01 2.000000000000000000e+01 1.800000000000000000e+01 -2.500000000000000000e+01 1.600000000000000000e+01 2.900000000000000000e+01 1.900000000000000000e+01 4.000000000000000000e+00 2.000000000000000000e+01 1.500000000000000000e+01 1.800000000000000000e+01 1.300000000000000000e+01 1.200000000000000000e+01 2.300000000000000000e+01 3.000000000000000000e+00 3.100000000000000000e+01 1.100000000000000000e+01 1.400000000000000000e+01 6.000000000000000000e+00 3.000000000000000000e+01 1.000000000000000000e+01 2.600000000000000000e+01 1.000000000000000000e+00 5.000000000000000000e+00 2.200000000000000000e+01 8.000000000000000000e+00 2.700000000000000000e+01 2.100000000000000000e+01 7.000000000000000000e+00 3.200000000000000000e+01 2.000000000000000000e+00 2.800000000000000000e+01 2.400000000000000000e+01 3.300000000000000000e+01 1.700000000000000000e+01 9.000000000000000000e+00 3.600000000000000000e+01 3.500000000000000000e+01 3.400000000000000000e+01 -8.000000000000000000e+00 2.600000000000000000e+01 1.800000000000000000e+01 1.700000000000000000e+01 2.200000000000000000e+01 1.200000000000000000e+01 7.000000000000000000e+00 2.000000000000000000e+01 1.000000000000000000e+01 4.000000000000000000e+00 1.100000000000000000e+01 2.400000000000000000e+01 1.500000000000000000e+01 9.000000000000000000e+00 5.000000000000000000e+00 1.300000000000000000e+01 1.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 2.900000000000000000e+01 2.000000000000000000e+00 1.900000000000000000e+01 6.000000000000000000e+00 3.400000000000000000e+01 1.400000000000000000e+01 3.000000000000000000e+00 2.500000000000000000e+01 3.600000000000000000e+01 3.300000000000000000e+01 3.500000000000000000e+01 3.000000000000000000e+01 2.300000000000000000e+01 3.100000000000000000e+01 2.700000000000000000e+01 2.800000000000000000e+01 2.100000000000000000e+01 -1.100000000000000000e+01 1.400000000000000000e+01 2.100000000000000000e+01 1.300000000000000000e+01 1.000000000000000000e+01 1.500000000000000000e+01 1.600000000000000000e+01 1.900000000000000000e+01 5.000000000000000000e+00 1.000000000000000000e+00 9.000000000000000000e+00 6.000000000000000000e+00 4.000000000000000000e+00 1.700000000000000000e+01 7.000000000000000000e+00 8.000000000000000000e+00 1.200000000000000000e+01 2.000000000000000000e+00 2.800000000000000000e+01 3.000000000000000000e+00 3.100000000000000000e+01 3.500000000000000000e+01 3.300000000000000000e+01 3.600000000000000000e+01 1.800000000000000000e+01 3.400000000000000000e+01 2.300000000000000000e+01 2.000000000000000000e+01 3.000000000000000000e+01 2.700000000000000000e+01 2.500000000000000000e+01 2.600000000000000000e+01 2.900000000000000000e+01 2.200000000000000000e+01 2.400000000000000000e+01 3.200000000000000000e+01 -2.200000000000000000e+01 2.700000000000000000e+01 3.200000000000000000e+01 3.300000000000000000e+01 3.100000000000000000e+01 3.600000000000000000e+01 2.000000000000000000e+01 2.600000000000000000e+01 2.500000000000000000e+01 3.500000000000000000e+01 3.400000000000000000e+01 2.800000000000000000e+01 3.000000000000000000e+01 1.400000000000000000e+01 1.900000000000000000e+01 2.900000000000000000e+01 2.100000000000000000e+01 3.000000000000000000e+00 1.500000000000000000e+01 1.100000000000000000e+01 7.000000000000000000e+00 6.000000000000000000e+00 5.000000000000000000e+00 1.800000000000000000e+01 8.000000000000000000e+00 1.600000000000000000e+01 1.200000000000000000e+01 2.300000000000000000e+01 4.000000000000000000e+00 1.300000000000000000e+01 9.000000000000000000e+00 1.000000000000000000e+00 2.000000000000000000e+00 2.400000000000000000e+01 1.700000000000000000e+01 1.000000000000000000e+01 -1.300000000000000000e+01 2.500000000000000000e+01 2.400000000000000000e+01 2.900000000000000000e+01 3.000000000000000000e+01 3.500000000000000000e+01 1.900000000000000000e+01 1.600000000000000000e+01 3.300000000000000000e+01 3.100000000000000000e+01 1.800000000000000000e+01 3.600000000000000000e+01 1.100000000000000000e+01 8.000000000000000000e+00 1.200000000000000000e+01 2.700000000000000000e+01 3.400000000000000000e+01 3.200000000000000000e+01 1.000000000000000000e+01 9.000000000000000000e+00 2.300000000000000000e+01 2.000000000000000000e+01 2.200000000000000000e+01 1.700000000000000000e+01 1.500000000000000000e+01 5.000000000000000000e+00 2.000000000000000000e+00 2.600000000000000000e+01 7.000000000000000000e+00 1.000000000000000000e+00 1.400000000000000000e+01 6.000000000000000000e+00 3.000000000000000000e+00 2.100000000000000000e+01 4.000000000000000000e+00 2.800000000000000000e+01 -1.000000000000000000e+01 1.500000000000000000e+01 2.000000000000000000e+01 2.600000000000000000e+01 2.800000000000000000e+01 3.400000000000000000e+01 1.400000000000000000e+01 7.000000000000000000e+00 2.400000000000000000e+01 3.000000000000000000e+01 2.900000000000000000e+01 3.200000000000000000e+01 3.300000000000000000e+01 1.300000000000000000e+01 1.800000000000000000e+01 4.000000000000000000e+00 2.200000000000000000e+01 3.600000000000000000e+01 3.000000000000000000e+00 3.500000000000000000e+01 1.900000000000000000e+01 2.000000000000000000e+00 1.000000000000000000e+00 1.600000000000000000e+01 9.000000000000000000e+00 2.100000000000000000e+01 6.000000000000000000e+00 3.100000000000000000e+01 1.100000000000000000e+01 1.700000000000000000e+01 2.300000000000000000e+01 5.000000000000000000e+00 1.200000000000000000e+01 2.500000000000000000e+01 8.000000000000000000e+00 2.700000000000000000e+01 -5.000000000000000000e+00 1.200000000000000000e+01 1.700000000000000000e+01 2.300000000000000000e+01 2.100000000000000000e+01 1.900000000000000000e+01 1.100000000000000000e+01 3.000000000000000000e+00 8.000000000000000000e+00 1.300000000000000000e+01 1.500000000000000000e+01 2.700000000000000000e+01 2.000000000000000000e+00 6.000000000000000000e+00 1.000000000000000000e+01 3.500000000000000000e+01 9.000000000000000000e+00 1.000000000000000000e+00 1.400000000000000000e+01 2.800000000000000000e+01 2.600000000000000000e+01 4.000000000000000000e+00 3.600000000000000000e+01 2.500000000000000000e+01 2.200000000000000000e+01 2.000000000000000000e+01 2.400000000000000000e+01 3.000000000000000000e+01 3.400000000000000000e+01 2.900000000000000000e+01 1.800000000000000000e+01 3.300000000000000000e+01 1.600000000000000000e+01 3.200000000000000000e+01 7.000000000000000000e+00 3.100000000000000000e+01 -2.000000000000000000e+00 7.000000000000000000e+00 3.000000000000000000e+00 1.800000000000000000e+01 9.000000000000000000e+00 6.000000000000000000e+00 1.000000000000000000e+00 5.000000000000000000e+00 2.100000000000000000e+01 2.300000000000000000e+01 4.000000000000000000e+00 2.200000000000000000e+01 1.600000000000000000e+01 2.500000000000000000e+01 1.700000000000000000e+01 1.500000000000000000e+01 2.800000000000000000e+01 2.400000000000000000e+01 1.200000000000000000e+01 8.000000000000000000e+00 2.700000000000000000e+01 3.100000000000000000e+01 3.200000000000000000e+01 3.000000000000000000e+01 3.600000000000000000e+01 1.400000000000000000e+01 3.300000000000000000e+01 3.500000000000000000e+01 1.000000000000000000e+01 1.900000000000000000e+01 1.100000000000000000e+01 1.300000000000000000e+01 2.000000000000000000e+01 3.400000000000000000e+01 2.600000000000000000e+01 2.900000000000000000e+01 -1.000000000000000000e+00 8.000000000000000000e+00 4.000000000000000000e+00 1.400000000000000000e+01 1.100000000000000000e+01 1.600000000000000000e+01 9.000000000000000000e+00 2.000000000000000000e+00 1.200000000000000000e+01 1.000000000000000000e+01 6.000000000000000000e+00 1.700000000000000000e+01 5.000000000000000000e+00 7.000000000000000000e+00 3.100000000000000000e+01 2.000000000000000000e+01 2.600000000000000000e+01 2.300000000000000000e+01 1.300000000000000000e+01 3.400000000000000000e+01 2.900000000000000000e+01 2.400000000000000000e+01 2.100000000000000000e+01 3.300000000000000000e+01 3.000000000000000000e+00 1.800000000000000000e+01 2.700000000000000000e+01 2.800000000000000000e+01 2.500000000000000000e+01 3.200000000000000000e+01 2.200000000000000000e+01 3.000000000000000000e+01 1.900000000000000000e+01 3.500000000000000000e+01 1.500000000000000000e+01 3.600000000000000000e+01 +5.000000000000000000e+00 2.700000000000000000e+01 6.000000000000000000e+00 2.000000000000000000e+00 2.100000000000000000e+01 2.200000000000000000e+01 1.900000000000000000e+01 1.400000000000000000e+01 2.900000000000000000e+01 3.200000000000000000e+01 1.100000000000000000e+01 1.500000000000000000e+01 1.700000000000000000e+01 2.500000000000000000e+01 3.000000000000000000e+00 8.000000000000000000e+00 3.300000000000000000e+01 9.000000000000000000e+00 2.400000000000000000e+01 1.600000000000000000e+01 2.800000000000000000e+01 2.000000000000000000e+01 1.000000000000000000e+01 3.600000000000000000e+01 3.500000000000000000e+01 3.000000000000000000e+01 1.200000000000000000e+01 3.100000000000000000e+01 2.300000000000000000e+01 4.000000000000000000e+00 7.000000000000000000e+00 1.000000000000000000e+00 1.800000000000000000e+01 2.600000000000000000e+01 1.300000000000000000e+01 3.400000000000000000e+01 +9.000000000000000000e+00 2.900000000000000000e+01 3.400000000000000000e+01 1.300000000000000000e+01 3.600000000000000000e+01 1.500000000000000000e+01 2.000000000000000000e+01 2.800000000000000000e+01 3.000000000000000000e+00 3.300000000000000000e+01 6.000000000000000000e+00 1.000000000000000000e+01 3.100000000000000000e+01 4.000000000000000000e+00 3.200000000000000000e+01 1.100000000000000000e+01 2.700000000000000000e+01 2.300000000000000000e+01 5.000000000000000000e+00 1.900000000000000000e+01 7.000000000000000000e+00 2.000000000000000000e+00 2.600000000000000000e+01 2.500000000000000000e+01 2.400000000000000000e+01 1.600000000000000000e+01 1.000000000000000000e+00 2.100000000000000000e+01 1.800000000000000000e+01 1.400000000000000000e+01 1.700000000000000000e+01 2.200000000000000000e+01 3.000000000000000000e+01 1.200000000000000000e+01 8.000000000000000000e+00 3.500000000000000000e+01 +3.100000000000000000e+01 4.000000000000000000e+00 2.000000000000000000e+01 1.000000000000000000e+01 2.600000000000000000e+01 3.200000000000000000e+01 1.700000000000000000e+01 2.400000000000000000e+01 1.000000000000000000e+00 1.300000000000000000e+01 3.600000000000000000e+01 2.200000000000000000e+01 1.800000000000000000e+01 2.000000000000000000e+00 1.200000000000000000e+01 3.000000000000000000e+01 1.600000000000000000e+01 2.900000000000000000e+01 3.500000000000000000e+01 3.400000000000000000e+01 3.300000000000000000e+01 2.100000000000000000e+01 8.000000000000000000e+00 1.500000000000000000e+01 7.000000000000000000e+00 6.000000000000000000e+00 9.000000000000000000e+00 3.000000000000000000e+00 2.700000000000000000e+01 1.100000000000000000e+01 2.500000000000000000e+01 1.900000000000000000e+01 2.300000000000000000e+01 5.000000000000000000e+00 1.400000000000000000e+01 2.800000000000000000e+01 +1.400000000000000000e+01 3.300000000000000000e+01 7.000000000000000000e+00 2.400000000000000000e+01 1.700000000000000000e+01 1.100000000000000000e+01 9.000000000000000000e+00 1.800000000000000000e+01 1.600000000000000000e+01 8.000000000000000000e+00 5.000000000000000000e+00 1.200000000000000000e+01 2.800000000000000000e+01 2.100000000000000000e+01 3.500000000000000000e+01 3.400000000000000000e+01 2.200000000000000000e+01 1.900000000000000000e+01 2.700000000000000000e+01 4.000000000000000000e+00 3.100000000000000000e+01 3.000000000000000000e+01 1.000000000000000000e+00 2.300000000000000000e+01 3.600000000000000000e+01 2.500000000000000000e+01 2.600000000000000000e+01 2.900000000000000000e+01 1.300000000000000000e+01 3.200000000000000000e+01 6.000000000000000000e+00 2.000000000000000000e+01 1.500000000000000000e+01 1.000000000000000000e+01 3.000000000000000000e+00 2.000000000000000000e+00 +3.500000000000000000e+01 2.500000000000000000e+01 3.000000000000000000e+01 8.000000000000000000e+00 1.200000000000000000e+01 2.800000000000000000e+01 2.000000000000000000e+00 2.300000000000000000e+01 2.100000000000000000e+01 4.000000000000000000e+00 3.400000000000000000e+01 3.100000000000000000e+01 7.000000000000000000e+00 2.600000000000000000e+01 1.000000000000000000e+00 5.000000000000000000e+00 1.300000000000000000e+01 6.000000000000000000e+00 1.800000000000000000e+01 2.900000000000000000e+01 1.700000000000000000e+01 3.000000000000000000e+00 1.100000000000000000e+01 1.400000000000000000e+01 2.200000000000000000e+01 3.300000000000000000e+01 1.900000000000000000e+01 2.000000000000000000e+01 1.000000000000000000e+01 1.500000000000000000e+01 2.700000000000000000e+01 9.000000000000000000e+00 1.600000000000000000e+01 2.400000000000000000e+01 3.200000000000000000e+01 3.600000000000000000e+01 +1.900000000000000000e+01 2.300000000000000000e+01 3.000000000000000000e+00 1.800000000000000000e+01 1.000000000000000000e+00 1.600000000000000000e+01 3.000000000000000000e+01 2.500000000000000000e+01 2.700000000000000000e+01 2.600000000000000000e+01 3.500000000000000000e+01 7.000000000000000000e+00 1.500000000000000000e+01 1.400000000000000000e+01 2.400000000000000000e+01 1.000000000000000000e+01 3.600000000000000000e+01 2.000000000000000000e+01 2.200000000000000000e+01 9.000000000000000000e+00 1.300000000000000000e+01 3.200000000000000000e+01 1.200000000000000000e+01 6.000000000000000000e+00 2.000000000000000000e+00 2.800000000000000000e+01 3.400000000000000000e+01 8.000000000000000000e+00 5.000000000000000000e+00 1.700000000000000000e+01 2.900000000000000000e+01 2.100000000000000000e+01 3.100000000000000000e+01 3.300000000000000000e+01 1.100000000000000000e+01 4.000000000000000000e+00 +1.100000000000000000e+01 3.100000000000000000e+01 1.700000000000000000e+01 2.500000000000000000e+01 2.800000000000000000e+01 8.000000000000000000e+00 3.600000000000000000e+01 2.000000000000000000e+01 1.300000000000000000e+01 2.100000000000000000e+01 3.300000000000000000e+01 5.000000000000000000e+00 1.600000000000000000e+01 3.000000000000000000e+00 3.400000000000000000e+01 2.600000000000000000e+01 7.000000000000000000e+00 1.500000000000000000e+01 2.000000000000000000e+00 6.000000000000000000e+00 1.400000000000000000e+01 2.700000000000000000e+01 2.400000000000000000e+01 1.900000000000000000e+01 1.000000000000000000e+00 3.500000000000000000e+01 3.000000000000000000e+01 1.000000000000000000e+01 2.200000000000000000e+01 2.900000000000000000e+01 3.200000000000000000e+01 1.800000000000000000e+01 1.200000000000000000e+01 9.000000000000000000e+00 4.000000000000000000e+00 2.300000000000000000e+01 +2.700000000000000000e+01 2.100000000000000000e+01 4.000000000000000000e+00 2.600000000000000000e+01 2.000000000000000000e+00 7.000000000000000000e+00 1.400000000000000000e+01 1.200000000000000000e+01 3.100000000000000000e+01 1.000000000000000000e+01 3.000000000000000000e+01 1.700000000000000000e+01 2.400000000000000000e+01 2.800000000000000000e+01 9.000000000000000000e+00 1.800000000000000000e+01 1.900000000000000000e+01 1.000000000000000000e+00 2.000000000000000000e+01 3.200000000000000000e+01 2.900000000000000000e+01 5.000000000000000000e+00 3.300000000000000000e+01 3.000000000000000000e+00 2.300000000000000000e+01 3.400000000000000000e+01 6.000000000000000000e+00 2.500000000000000000e+01 1.600000000000000000e+01 3.600000000000000000e+01 1.500000000000000000e+01 3.500000000000000000e+01 1.100000000000000000e+01 8.000000000000000000e+00 2.200000000000000000e+01 1.300000000000000000e+01 +2.300000000000000000e+01 1.800000000000000000e+01 2.400000000000000000e+01 1.900000000000000000e+01 3.500000000000000000e+01 1.000000000000000000e+00 2.200000000000000000e+01 8.000000000000000000e+00 3.400000000000000000e+01 2.900000000000000000e+01 3.200000000000000000e+01 3.000000000000000000e+00 2.000000000000000000e+01 1.100000000000000000e+01 3.300000000000000000e+01 1.200000000000000000e+01 2.500000000000000000e+01 1.000000000000000000e+01 3.000000000000000000e+01 2.800000000000000000e+01 1.500000000000000000e+01 4.000000000000000000e+00 1.600000000000000000e+01 9.000000000000000000e+00 1.300000000000000000e+01 2.700000000000000000e+01 1.700000000000000000e+01 5.000000000000000000e+00 2.100000000000000000e+01 7.000000000000000000e+00 3.600000000000000000e+01 1.400000000000000000e+01 2.000000000000000000e+00 6.000000000000000000e+00 3.100000000000000000e+01 2.600000000000000000e+01 +3.200000000000000000e+01 1.200000000000000000e+01 1.000000000000000000e+01 3.600000000000000000e+01 3.300000000000000000e+01 5.000000000000000000e+00 6.000000000000000000e+00 1.900000000000000000e+01 2.800000000000000000e+01 2.300000000000000000e+01 2.700000000000000000e+01 2.500000000000000000e+01 3.500000000000000000e+01 3.000000000000000000e+01 4.000000000000000000e+00 2.100000000000000000e+01 1.400000000000000000e+01 2.200000000000000000e+01 2.600000000000000000e+01 1.000000000000000000e+00 3.400000000000000000e+01 1.300000000000000000e+01 1.800000000000000000e+01 3.100000000000000000e+01 8.000000000000000000e+00 2.000000000000000000e+00 1.100000000000000000e+01 9.000000000000000000e+00 1.500000000000000000e+01 3.000000000000000000e+00 2.000000000000000000e+01 2.400000000000000000e+01 7.000000000000000000e+00 1.600000000000000000e+01 2.900000000000000000e+01 1.700000000000000000e+01 +1.500000000000000000e+01 9.000000000000000000e+00 2.900000000000000000e+01 2.000000000000000000e+01 2.200000000000000000e+01 1.300000000000000000e+01 1.600000000000000000e+01 2.000000000000000000e+00 1.800000000000000000e+01 1.100000000000000000e+01 2.600000000000000000e+01 3.500000000000000000e+01 6.000000000000000000e+00 2.700000000000000000e+01 5.000000000000000000e+00 3.100000000000000000e+01 2.300000000000000000e+01 1.700000000000000000e+01 1.000000000000000000e+01 7.000000000000000000e+00 2.100000000000000000e+01 3.600000000000000000e+01 2.500000000000000000e+01 8.000000000000000000e+00 4.000000000000000000e+00 2.400000000000000000e+01 1.400000000000000000e+01 3.200000000000000000e+01 1.200000000000000000e+01 1.900000000000000000e+01 1.000000000000000000e+00 3.300000000000000000e+01 2.800000000000000000e+01 3.000000000000000000e+00 3.400000000000000000e+01 3.000000000000000000e+01 +3.400000000000000000e+01 3.000000000000000000e+01 1.400000000000000000e+01 3.000000000000000000e+00 1.600000000000000000e+01 6.000000000000000000e+00 4.000000000000000000e+00 1.500000000000000000e+01 9.000000000000000000e+00 7.000000000000000000e+00 2.400000000000000000e+01 1.000000000000000000e+00 8.000000000000000000e+00 3.600000000000000000e+01 1.300000000000000000e+01 2.900000000000000000e+01 2.000000000000000000e+00 3.200000000000000000e+01 1.700000000000000000e+01 2.300000000000000000e+01 1.200000000000000000e+01 1.100000000000000000e+01 2.200000000000000000e+01 3.500000000000000000e+01 2.800000000000000000e+01 3.100000000000000000e+01 1.800000000000000000e+01 2.600000000000000000e+01 3.300000000000000000e+01 2.000000000000000000e+01 1.000000000000000000e+01 2.500000000000000000e+01 5.000000000000000000e+00 2.100000000000000000e+01 2.700000000000000000e+01 1.900000000000000000e+01 +3.000000000000000000e+01 1.900000000000000000e+01 2.200000000000000000e+01 1.200000000000000000e+01 2.300000000000000000e+01 2.100000000000000000e+01 2.400000000000000000e+01 1.000000000000000000e+00 1.500000000000000000e+01 2.000000000000000000e+01 1.800000000000000000e+01 3.200000000000000000e+01 1.100000000000000000e+01 8.000000000000000000e+00 2.600000000000000000e+01 1.600000000000000000e+01 1.700000000000000000e+01 3.500000000000000000e+01 3.600000000000000000e+01 3.100000000000000000e+01 2.700000000000000000e+01 2.500000000000000000e+01 2.900000000000000000e+01 4.000000000000000000e+00 1.000000000000000000e+01 3.000000000000000000e+00 5.000000000000000000e+00 7.000000000000000000e+00 3.400000000000000000e+01 9.000000000000000000e+00 3.300000000000000000e+01 2.800000000000000000e+01 1.400000000000000000e+01 1.300000000000000000e+01 2.000000000000000000e+00 6.000000000000000000e+00 +2.000000000000000000e+00 5.000000000000000000e+00 3.600000000000000000e+01 1.000000000000000000e+00 3.200000000000000000e+01 2.000000000000000000e+01 2.300000000000000000e+01 6.000000000000000000e+00 7.000000000000000000e+00 9.000000000000000000e+00 1.700000000000000000e+01 1.400000000000000000e+01 3.300000000000000000e+01 1.800000000000000000e+01 3.100000000000000000e+01 1.500000000000000000e+01 4.000000000000000000e+00 3.000000000000000000e+00 1.300000000000000000e+01 3.000000000000000000e+01 2.400000000000000000e+01 1.900000000000000000e+01 2.800000000000000000e+01 1.100000000000000000e+01 2.700000000000000000e+01 2.200000000000000000e+01 8.000000000000000000e+00 1.600000000000000000e+01 2.900000000000000000e+01 2.500000000000000000e+01 2.100000000000000000e+01 3.400000000000000000e+01 1.000000000000000000e+01 3.500000000000000000e+01 2.600000000000000000e+01 1.200000000000000000e+01 +1.300000000000000000e+01 1.700000000000000000e+01 2.500000000000000000e+01 1.500000000000000000e+01 2.700000000000000000e+01 3.400000000000000000e+01 8.000000000000000000e+00 3.100000000000000000e+01 1.100000000000000000e+01 5.000000000000000000e+00 2.800000000000000000e+01 3.300000000000000000e+01 1.000000000000000000e+01 2.400000000000000000e+01 2.900000000000000000e+01 1.400000000000000000e+01 2.000000000000000000e+01 1.200000000000000000e+01 3.000000000000000000e+00 2.600000000000000000e+01 2.300000000000000000e+01 6.000000000000000000e+00 3.500000000000000000e+01 1.600000000000000000e+01 2.100000000000000000e+01 1.000000000000000000e+00 4.000000000000000000e+00 1.900000000000000000e+01 2.000000000000000000e+00 1.800000000000000000e+01 9.000000000000000000e+00 3.600000000000000000e+01 2.200000000000000000e+01 3.000000000000000000e+01 7.000000000000000000e+00 3.200000000000000000e+01 +7.000000000000000000e+00 2.400000000000000000e+01 1.600000000000000000e+01 6.000000000000000000e+00 3.100000000000000000e+01 1.000000000000000000e+01 3.400000000000000000e+01 2.200000000000000000e+01 3.600000000000000000e+01 3.000000000000000000e+00 1.300000000000000000e+01 3.000000000000000000e+01 9.000000000000000000e+00 1.000000000000000000e+00 2.000000000000000000e+00 2.500000000000000000e+01 5.000000000000000000e+00 2.800000000000000000e+01 8.000000000000000000e+00 1.400000000000000000e+01 1.800000000000000000e+01 3.300000000000000000e+01 1.700000000000000000e+01 2.100000000000000000e+01 1.100000000000000000e+01 2.600000000000000000e+01 3.200000000000000000e+01 3.500000000000000000e+01 2.000000000000000000e+01 1.200000000000000000e+01 1.900000000000000000e+01 2.300000000000000000e+01 4.000000000000000000e+00 2.700000000000000000e+01 1.500000000000000000e+01 2.900000000000000000e+01 +4.000000000000000000e+00 3.000000000000000000e+00 2.800000000000000000e+01 3.300000000000000000e+01 9.000000000000000000e+00 1.800000000000000000e+01 3.500000000000000000e+01 1.600000000000000000e+01 2.600000000000000000e+01 2.700000000000000000e+01 2.900000000000000000e+01 2.000000000000000000e+00 2.100000000000000000e+01 6.000000000000000000e+00 1.900000000000000000e+01 1.300000000000000000e+01 3.000000000000000000e+01 7.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+01 3.200000000000000000e+01 2.200000000000000000e+01 3.400000000000000000e+01 1.200000000000000000e+01 3.100000000000000000e+01 1.500000000000000000e+01 2.300000000000000000e+01 3.600000000000000000e+01 1.400000000000000000e+01 2.400000000000000000e+01 5.000000000000000000e+00 1.700000000000000000e+01 8.000000000000000000e+00 2.000000000000000000e+01 2.500000000000000000e+01 1.100000000000000000e+01 +8.000000000000000000e+00 3.500000000000000000e+01 1.100000000000000000e+01 1.400000000000000000e+01 2.900000000000000000e+01 2.600000000000000000e+01 2.100000000000000000e+01 1.000000000000000000e+01 1.200000000000000000e+01 2.500000000000000000e+01 1.900000000000000000e+01 4.000000000000000000e+00 2.200000000000000000e+01 3.200000000000000000e+01 2.700000000000000000e+01 2.300000000000000000e+01 3.400000000000000000e+01 3.600000000000000000e+01 1.500000000000000000e+01 5.000000000000000000e+00 2.000000000000000000e+00 7.000000000000000000e+00 9.000000000000000000e+00 2.000000000000000000e+01 6.000000000000000000e+00 1.300000000000000000e+01 2.800000000000000000e+01 1.700000000000000000e+01 3.000000000000000000e+01 3.300000000000000000e+01 2.400000000000000000e+01 3.100000000000000000e+01 3.000000000000000000e+00 1.000000000000000000e+00 1.600000000000000000e+01 1.800000000000000000e+01 +1.200000000000000000e+01 1.500000000000000000e+01 1.900000000000000000e+01 3.200000000000000000e+01 1.100000000000000000e+01 2.000000000000000000e+00 3.300000000000000000e+01 2.700000000000000000e+01 3.000000000000000000e+01 3.500000000000000000e+01 1.000000000000000000e+01 1.800000000000000000e+01 5.000000000000000000e+00 7.000000000000000000e+00 3.600000000000000000e+01 6.000000000000000000e+00 3.100000000000000000e+01 2.600000000000000000e+01 2.300000000000000000e+01 3.000000000000000000e+00 1.600000000000000000e+01 2.900000000000000000e+01 1.400000000000000000e+01 2.200000000000000000e+01 2.500000000000000000e+01 8.000000000000000000e+00 2.000000000000000000e+01 2.400000000000000000e+01 9.000000000000000000e+00 1.000000000000000000e+00 3.400000000000000000e+01 4.000000000000000000e+00 1.300000000000000000e+01 1.700000000000000000e+01 2.800000000000000000e+01 2.100000000000000000e+01 +3.600000000000000000e+01 1.400000000000000000e+01 8.000000000000000000e+00 3.400000000000000000e+01 2.000000000000000000e+01 2.700000000000000000e+01 1.200000000000000000e+01 3.200000000000000000e+01 2.200000000000000000e+01 2.800000000000000000e+01 2.300000000000000000e+01 2.600000000000000000e+01 3.000000000000000000e+01 1.000000000000000000e+01 1.600000000000000000e+01 4.000000000000000000e+00 3.000000000000000000e+00 3.300000000000000000e+01 2.100000000000000000e+01 2.500000000000000000e+01 9.000000000000000000e+00 1.700000000000000000e+01 1.900000000000000000e+01 2.000000000000000000e+00 2.900000000000000000e+01 1.100000000000000000e+01 3.100000000000000000e+01 1.300000000000000000e+01 6.000000000000000000e+00 5.000000000000000000e+00 3.500000000000000000e+01 1.500000000000000000e+01 2.400000000000000000e+01 1.800000000000000000e+01 1.000000000000000000e+00 7.000000000000000000e+00 +2.200000000000000000e+01 2.800000000000000000e+01 1.800000000000000000e+01 9.000000000000000000e+00 1.300000000000000000e+01 1.700000000000000000e+01 5.000000000000000000e+00 2.100000000000000000e+01 8.000000000000000000e+00 1.500000000000000000e+01 2.500000000000000000e+01 1.100000000000000000e+01 2.300000000000000000e+01 2.900000000000000000e+01 1.400000000000000000e+01 2.000000000000000000e+01 2.400000000000000000e+01 3.400000000000000000e+01 6.000000000000000000e+00 3.600000000000000000e+01 3.500000000000000000e+01 1.000000000000000000e+00 3.100000000000000000e+01 7.000000000000000000e+00 1.900000000000000000e+01 4.000000000000000000e+00 1.000000000000000000e+01 1.200000000000000000e+01 2.600000000000000000e+01 3.000000000000000000e+01 1.600000000000000000e+01 3.200000000000000000e+01 2.700000000000000000e+01 2.000000000000000000e+00 3.300000000000000000e+01 3.000000000000000000e+00 +1.000000000000000000e+00 1.600000000000000000e+01 5.000000000000000000e+00 7.000000000000000000e+00 3.000000000000000000e+01 2.400000000000000000e+01 3.000000000000000000e+00 9.000000000000000000e+00 1.900000000000000000e+01 1.400000000000000000e+01 4.000000000000000000e+00 6.000000000000000000e+00 2.000000000000000000e+00 1.700000000000000000e+01 2.500000000000000000e+01 3.500000000000000000e+01 2.100000000000000000e+01 1.800000000000000000e+01 3.200000000000000000e+01 1.300000000000000000e+01 8.000000000000000000e+00 3.400000000000000000e+01 1.500000000000000000e+01 2.600000000000000000e+01 3.300000000000000000e+01 2.300000000000000000e+01 2.200000000000000000e+01 2.800000000000000000e+01 3.600000000000000000e+01 2.700000000000000000e+01 1.100000000000000000e+01 1.200000000000000000e+01 2.000000000000000000e+01 2.900000000000000000e+01 1.000000000000000000e+01 3.100000000000000000e+01 +2.100000000000000000e+01 6.000000000000000000e+00 2.600000000000000000e+01 3.500000000000000000e+01 3.000000000000000000e+00 4.000000000000000000e+00 7.000000000000000000e+00 2.900000000000000000e+01 2.000000000000000000e+00 1.000000000000000000e+00 3.100000000000000000e+01 2.000000000000000000e+01 1.200000000000000000e+01 2.200000000000000000e+01 2.800000000000000000e+01 3.200000000000000000e+01 9.000000000000000000e+00 1.300000000000000000e+01 3.300000000000000000e+01 1.100000000000000000e+01 3.000000000000000000e+01 1.000000000000000000e+01 2.700000000000000000e+01 2.400000000000000000e+01 1.600000000000000000e+01 1.400000000000000000e+01 1.500000000000000000e+01 1.800000000000000000e+01 1.700000000000000000e+01 3.400000000000000000e+01 2.300000000000000000e+01 8.000000000000000000e+00 2.500000000000000000e+01 3.600000000000000000e+01 1.900000000000000000e+01 5.000000000000000000e+00 +3.300000000000000000e+01 1.000000000000000000e+01 2.300000000000000000e+01 2.900000000000000000e+01 2.500000000000000000e+01 3.100000000000000000e+01 1.300000000000000000e+01 3.600000000000000000e+01 1.700000000000000000e+01 3.400000000000000000e+01 1.600000000000000000e+01 2.400000000000000000e+01 2.700000000000000000e+01 1.500000000000000000e+01 8.000000000000000000e+00 1.900000000000000000e+01 1.000000000000000000e+00 1.100000000000000000e+01 1.200000000000000000e+01 2.000000000000000000e+01 5.000000000000000000e+00 1.800000000000000000e+01 4.000000000000000000e+00 2.800000000000000000e+01 3.200000000000000000e+01 7.000000000000000000e+00 3.000000000000000000e+00 2.000000000000000000e+00 3.500000000000000000e+01 2.100000000000000000e+01 2.600000000000000000e+01 3.000000000000000000e+01 9.000000000000000000e+00 2.200000000000000000e+01 6.000000000000000000e+00 1.400000000000000000e+01 +1.700000000000000000e+01 1.100000000000000000e+01 3.200000000000000000e+01 4.000000000000000000e+00 7.000000000000000000e+00 1.200000000000000000e+01 1.000000000000000000e+00 3.000000000000000000e+01 2.000000000000000000e+01 3.100000000000000000e+01 9.000000000000000000e+00 3.600000000000000000e+01 2.500000000000000000e+01 3.500000000000000000e+01 2.300000000000000000e+01 3.000000000000000000e+00 6.000000000000000000e+00 5.000000000000000000e+00 1.900000000000000000e+01 3.300000000000000000e+01 1.000000000000000000e+01 2.800000000000000000e+01 2.100000000000000000e+01 1.300000000000000000e+01 1.400000000000000000e+01 1.800000000000000000e+01 2.000000000000000000e+00 3.400000000000000000e+01 8.000000000000000000e+00 1.600000000000000000e+01 2.200000000000000000e+01 2.600000000000000000e+01 2.900000000000000000e+01 1.500000000000000000e+01 2.400000000000000000e+01 2.700000000000000000e+01 +1.000000000000000000e+01 2.000000000000000000e+00 1.300000000000000000e+01 2.700000000000000000e+01 1.500000000000000000e+01 1.900000000000000000e+01 2.600000000000000000e+01 3.000000000000000000e+00 2.400000000000000000e+01 1.700000000000000000e+01 1.400000000000000000e+01 8.000000000000000000e+00 2.900000000000000000e+01 3.300000000000000000e+01 2.000000000000000000e+01 1.000000000000000000e+00 3.200000000000000000e+01 4.000000000000000000e+00 3.100000000000000000e+01 3.500000000000000000e+01 2.200000000000000000e+01 1.600000000000000000e+01 3.000000000000000000e+01 5.000000000000000000e+00 1.200000000000000000e+01 9.000000000000000000e+00 2.100000000000000000e+01 2.300000000000000000e+01 1.100000000000000000e+01 6.000000000000000000e+00 1.800000000000000000e+01 7.000000000000000000e+00 3.400000000000000000e+01 2.800000000000000000e+01 3.600000000000000000e+01 2.500000000000000000e+01 +6.000000000000000000e+00 3.600000000000000000e+01 3.500000000000000000e+01 5.000000000000000000e+00 8.000000000000000000e+00 2.300000000000000000e+01 1.000000000000000000e+01 7.000000000000000000e+00 3.200000000000000000e+01 1.900000000000000000e+01 2.200000000000000000e+01 2.700000000000000000e+01 2.600000000000000000e+01 1.600000000000000000e+01 2.100000000000000000e+01 1.700000000000000000e+01 2.800000000000000000e+01 3.000000000000000000e+01 9.000000000000000000e+00 1.800000000000000000e+01 2.500000000000000000e+01 1.400000000000000000e+01 2.000000000000000000e+01 3.400000000000000000e+01 3.000000000000000000e+00 2.900000000000000000e+01 2.400000000000000000e+01 1.500000000000000000e+01 4.000000000000000000e+00 1.300000000000000000e+01 2.000000000000000000e+00 1.100000000000000000e+01 3.300000000000000000e+01 3.100000000000000000e+01 1.200000000000000000e+01 1.000000000000000000e+00 +2.800000000000000000e+01 2.600000000000000000e+01 3.300000000000000000e+01 2.200000000000000000e+01 1.400000000000000000e+01 3.000000000000000000e+01 2.500000000000000000e+01 1.300000000000000000e+01 4.000000000000000000e+00 1.600000000000000000e+01 2.000000000000000000e+00 2.300000000000000000e+01 3.400000000000000000e+01 9.000000000000000000e+00 7.000000000000000000e+00 2.400000000000000000e+01 1.800000000000000000e+01 2.700000000000000000e+01 1.100000000000000000e+01 1.500000000000000000e+01 3.600000000000000000e+01 1.200000000000000000e+01 3.200000000000000000e+01 2.900000000000000000e+01 2.000000000000000000e+01 5.000000000000000000e+00 3.500000000000000000e+01 1.000000000000000000e+00 3.100000000000000000e+01 1.000000000000000000e+01 3.000000000000000000e+00 6.000000000000000000e+00 2.100000000000000000e+01 1.900000000000000000e+01 1.700000000000000000e+01 8.000000000000000000e+00 +3.000000000000000000e+00 3.400000000000000000e+01 3.100000000000000000e+01 1.600000000000000000e+01 1.800000000000000000e+01 9.000000000000000000e+00 2.900000000000000000e+01 5.000000000000000000e+00 3.300000000000000000e+01 1.200000000000000000e+01 2.100000000000000000e+01 2.800000000000000000e+01 1.900000000000000000e+01 1.300000000000000000e+01 1.100000000000000000e+01 2.200000000000000000e+01 1.500000000000000000e+01 1.400000000000000000e+01 7.000000000000000000e+00 8.000000000000000000e+00 6.000000000000000000e+00 2.400000000000000000e+01 2.000000000000000000e+00 1.000000000000000000e+00 1.700000000000000000e+01 3.600000000000000000e+01 2.500000000000000000e+01 2.700000000000000000e+01 3.200000000000000000e+01 2.600000000000000000e+01 3.000000000000000000e+01 1.000000000000000000e+01 3.500000000000000000e+01 4.000000000000000000e+00 2.300000000000000000e+01 2.000000000000000000e+01 +2.900000000000000000e+01 2.000000000000000000e+01 1.000000000000000000e+00 2.100000000000000000e+01 2.400000000000000000e+01 2.500000000000000000e+01 1.100000000000000000e+01 3.500000000000000000e+01 6.000000000000000000e+00 1.800000000000000000e+01 1.500000000000000000e+01 3.400000000000000000e+01 3.600000000000000000e+01 1.200000000000000000e+01 1.000000000000000000e+01 2.000000000000000000e+00 8.000000000000000000e+00 3.100000000000000000e+01 4.000000000000000000e+00 2.700000000000000000e+01 3.000000000000000000e+00 2.600000000000000000e+01 2.300000000000000000e+01 1.700000000000000000e+01 3.000000000000000000e+01 1.900000000000000000e+01 3.300000000000000000e+01 2.200000000000000000e+01 7.000000000000000000e+00 2.800000000000000000e+01 1.300000000000000000e+01 5.000000000000000000e+00 3.200000000000000000e+01 1.400000000000000000e+01 9.000000000000000000e+00 1.600000000000000000e+01 +2.000000000000000000e+01 3.200000000000000000e+01 1.200000000000000000e+01 3.000000000000000000e+01 1.000000000000000000e+01 1.400000000000000000e+01 3.100000000000000000e+01 3.300000000000000000e+01 2.500000000000000000e+01 6.000000000000000000e+00 7.000000000000000000e+00 2.100000000000000000e+01 3.000000000000000000e+00 2.300000000000000000e+01 1.500000000000000000e+01 2.800000000000000000e+01 3.500000000000000000e+01 8.000000000000000000e+00 1.600000000000000000e+01 2.000000000000000000e+00 1.900000000000000000e+01 9.000000000000000000e+00 1.300000000000000000e+01 1.800000000000000000e+01 2.600000000000000000e+01 1.700000000000000000e+01 2.700000000000000000e+01 1.100000000000000000e+01 1.000000000000000000e+00 2.200000000000000000e+01 4.000000000000000000e+00 2.900000000000000000e+01 3.600000000000000000e+01 3.400000000000000000e+01 5.000000000000000000e+00 2.400000000000000000e+01 +1.800000000000000000e+01 8.000000000000000000e+00 9.000000000000000000e+00 1.700000000000000000e+01 1.900000000000000000e+01 3.000000000000000000e+00 2.700000000000000000e+01 4.000000000000000000e+00 1.000000000000000000e+01 2.200000000000000000e+01 1.000000000000000000e+00 1.300000000000000000e+01 1.400000000000000000e+01 3.400000000000000000e+01 6.000000000000000000e+00 7.000000000000000000e+00 1.200000000000000000e+01 2.500000000000000000e+01 2.900000000000000000e+01 2.400000000000000000e+01 1.100000000000000000e+01 2.300000000000000000e+01 3.600000000000000000e+01 3.300000000000000000e+01 5.000000000000000000e+00 2.100000000000000000e+01 1.600000000000000000e+01 3.000000000000000000e+01 2.800000000000000000e+01 3.500000000000000000e+01 3.100000000000000000e+01 2.000000000000000000e+00 2.600000000000000000e+01 3.200000000000000000e+01 2.000000000000000000e+01 1.500000000000000000e+01 +2.600000000000000000e+01 1.300000000000000000e+01 1.500000000000000000e+01 2.800000000000000000e+01 6.000000000000000000e+00 3.600000000000000000e+01 1.800000000000000000e+01 1.100000000000000000e+01 3.500000000000000000e+01 2.400000000000000000e+01 2.000000000000000000e+01 1.900000000000000000e+01 4.000000000000000000e+00 5.000000000000000000e+00 2.200000000000000000e+01 2.700000000000000000e+01 2.900000000000000000e+01 2.100000000000000000e+01 3.400000000000000000e+01 1.200000000000000000e+01 1.000000000000000000e+00 3.100000000000000000e+01 3.000000000000000000e+00 1.000000000000000000e+01 9.000000000000000000e+00 3.200000000000000000e+01 7.000000000000000000e+00 1.400000000000000000e+01 2.500000000000000000e+01 2.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 1.700000000000000000e+01 2.300000000000000000e+01 3.000000000000000000e+01 3.300000000000000000e+01 +2.400000000000000000e+01 2.200000000000000000e+01 2.700000000000000000e+01 3.100000000000000000e+01 4.000000000000000000e+00 2.900000000000000000e+01 2.800000000000000000e+01 3.400000000000000000e+01 2.300000000000000000e+01 3.000000000000000000e+01 1.200000000000000000e+01 1.600000000000000000e+01 1.000000000000000000e+00 2.000000000000000000e+01 1.700000000000000000e+01 3.300000000000000000e+01 1.100000000000000000e+01 2.000000000000000000e+00 2.500000000000000000e+01 2.100000000000000000e+01 2.600000000000000000e+01 3.500000000000000000e+01 5.000000000000000000e+00 3.200000000000000000e+01 1.500000000000000000e+01 1.000000000000000000e+01 3.600000000000000000e+01 6.000000000000000000e+00 3.000000000000000000e+00 8.000000000000000000e+00 1.400000000000000000e+01 1.300000000000000000e+01 1.900000000000000000e+01 7.000000000000000000e+00 1.800000000000000000e+01 9.000000000000000000e+00 +1.600000000000000000e+01 1.000000000000000000e+00 2.100000000000000000e+01 1.100000000000000000e+01 3.400000000000000000e+01 3.300000000000000000e+01 3.200000000000000000e+01 1.700000000000000000e+01 5.000000000000000000e+00 2.000000000000000000e+00 8.000000000000000000e+00 9.000000000000000000e+00 1.300000000000000000e+01 3.100000000000000000e+01 3.000000000000000000e+01 3.600000000000000000e+01 2.600000000000000000e+01 2.400000000000000000e+01 1.400000000000000000e+01 2.200000000000000000e+01 2.000000000000000000e+01 1.500000000000000000e+01 7.000000000000000000e+00 2.700000000000000000e+01 1.800000000000000000e+01 1.200000000000000000e+01 2.900000000000000000e+01 4.000000000000000000e+00 1.900000000000000000e+01 2.300000000000000000e+01 2.800000000000000000e+01 3.000000000000000000e+00 6.000000000000000000e+00 2.500000000000000000e+01 3.500000000000000000e+01 1.000000000000000000e+01 +2.500000000000000000e+01 7.000000000000000000e+00 2.000000000000000000e+00 2.300000000000000000e+01 5.000000000000000000e+00 3.500000000000000000e+01 1.500000000000000000e+01 2.600000000000000000e+01 1.400000000000000000e+01 3.600000000000000000e+01 3.000000000000000000e+00 2.900000000000000000e+01 3.200000000000000000e+01 1.900000000000000000e+01 1.800000000000000000e+01 9.000000000000000000e+00 1.000000000000000000e+01 1.600000000000000000e+01 2.800000000000000000e+01 1.700000000000000000e+01 4.000000000000000000e+00 8.000000000000000000e+00 6.000000000000000000e+00 3.000000000000000000e+01 3.400000000000000000e+01 2.000000000000000000e+01 1.300000000000000000e+01 3.300000000000000000e+01 2.400000000000000000e+01 3.100000000000000000e+01 1.200000000000000000e+01 2.700000000000000000e+01 1.000000000000000000e+00 1.100000000000000000e+01 2.100000000000000000e+01 2.200000000000000000e+01 diff --git a/sudoku-csolver/solved/9x9.sol b/sudoku-csolver/solved/9x9.sol index 1a20fc53..ad71b8d6 100644 --- a/sudoku-csolver/solved/9x9.sol +++ b/sudoku-csolver/solved/9x9.sol @@ -1,9 +1,9 @@ +1.000000000000000000e+00 7.000000000000000000e+00 5.000000000000000000e+00 4.000000000000000000e+00 3.000000000000000000e+00 8.000000000000000000e+00 2.000000000000000000e+00 9.000000000000000000e+00 6.000000000000000000e+00 +8.000000000000000000e+00 2.000000000000000000e+00 9.000000000000000000e+00 5.000000000000000000e+00 7.000000000000000000e+00 6.000000000000000000e+00 4.000000000000000000e+00 1.000000000000000000e+00 3.000000000000000000e+00 +4.000000000000000000e+00 6.000000000000000000e+00 3.000000000000000000e+00 1.000000000000000000e+00 9.000000000000000000e+00 2.000000000000000000e+00 8.000000000000000000e+00 7.000000000000000000e+00 5.000000000000000000e+00 +5.000000000000000000e+00 4.000000000000000000e+00 2.000000000000000000e+00 9.000000000000000000e+00 1.000000000000000000e+00 3.000000000000000000e+00 7.000000000000000000e+00 6.000000000000000000e+00 8.000000000000000000e+00 +3.000000000000000000e+00 1.000000000000000000e+00 8.000000000000000000e+00 2.000000000000000000e+00 6.000000000000000000e+00 7.000000000000000000e+00 5.000000000000000000e+00 4.000000000000000000e+00 9.000000000000000000e+00 +7.000000000000000000e+00 9.000000000000000000e+00 6.000000000000000000e+00 8.000000000000000000e+00 4.000000000000000000e+00 5.000000000000000000e+00 1.000000000000000000e+00 3.000000000000000000e+00 2.000000000000000000e+00 +6.000000000000000000e+00 5.000000000000000000e+00 4.000000000000000000e+00 3.000000000000000000e+00 2.000000000000000000e+00 1.000000000000000000e+00 9.000000000000000000e+00 8.000000000000000000e+00 7.000000000000000000e+00 +2.000000000000000000e+00 3.000000000000000000e+00 1.000000000000000000e+00 7.000000000000000000e+00 8.000000000000000000e+00 9.000000000000000000e+00 6.000000000000000000e+00 5.000000000000000000e+00 4.000000000000000000e+00 9.000000000000000000e+00 8.000000000000000000e+00 7.000000000000000000e+00 6.000000000000000000e+00 5.000000000000000000e+00 4.000000000000000000e+00 3.000000000000000000e+00 2.000000000000000000e+00 1.000000000000000000e+00 -6.000000000000000000e+00 5.000000000000000000e+00 4.000000000000000000e+00 3.000000000000000000e+00 2.000000000000000000e+00 1.000000000000000000e+00 9.000000000000000000e+00 7.000000000000000000e+00 8.000000000000000000e+00 -3.000000000000000000e+00 2.000000000000000000e+00 1.000000000000000000e+00 9.000000000000000000e+00 8.000000000000000000e+00 7.000000000000000000e+00 6.000000000000000000e+00 5.000000000000000000e+00 4.000000000000000000e+00 -8.000000000000000000e+00 9.000000000000000000e+00 6.000000000000000000e+00 7.000000000000000000e+00 4.000000000000000000e+00 5.000000000000000000e+00 2.000000000000000000e+00 1.000000000000000000e+00 3.000000000000000000e+00 -7.000000000000000000e+00 4.000000000000000000e+00 5.000000000000000000e+00 2.000000000000000000e+00 1.000000000000000000e+00 3.000000000000000000e+00 8.000000000000000000e+00 9.000000000000000000e+00 6.000000000000000000e+00 -2.000000000000000000e+00 1.000000000000000000e+00 3.000000000000000000e+00 8.000000000000000000e+00 9.000000000000000000e+00 6.000000000000000000e+00 7.000000000000000000e+00 4.000000000000000000e+00 5.000000000000000000e+00 -5.000000000000000000e+00 7.000000000000000000e+00 9.000000000000000000e+00 4.000000000000000000e+00 6.000000000000000000e+00 8.000000000000000000e+00 1.000000000000000000e+00 3.000000000000000000e+00 2.000000000000000000e+00 -4.000000000000000000e+00 6.000000000000000000e+00 2.000000000000000000e+00 1.000000000000000000e+00 3.000000000000000000e+00 9.000000000000000000e+00 5.000000000000000000e+00 8.000000000000000000e+00 7.000000000000000000e+00 -1.000000000000000000e+00 3.000000000000000000e+00 8.000000000000000000e+00 5.000000000000000000e+00 7.000000000000000000e+00 2.000000000000000000e+00 4.000000000000000000e+00 6.000000000000000000e+00 9.000000000000000000e+00